--- linux-2.6.35.orig/MAINTAINERS +++ linux-2.6.35/MAINTAINERS @@ -5061,6 +5061,14 @@ F: include/linux/selinux* F: security/selinux/ +APPARMOR SECURITY MODULE +M: John Johansen +L: apparmor@lists.ubuntu.com (subscribers-only, general discussion) +W: apparmor.wiki.kernel.org +T: git git://git.kernel.org/pub/scm/linux/kernel/git/jj/apparmor-dev.git +S: Supported +F: security/apparmor/ + SENSABLE PHANTOM M: Jiri Slaby S: Maintained --- linux-2.6.35.orig/Makefile +++ linux-2.6.35/Makefile @@ -1,8 +1,8 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 35 -EXTRAVERSION = -NAME = Sheep on Meth +EXTRAVERSION = .7 +NAME = Yokohama # *DOCUMENTATION* # To see a list of typical targets execute "make help" @@ -340,13 +340,22 @@ AFLAGS_KERNEL = CFLAGS_GCOV = -fprofile-arcs -ftest-coverage +# Prefer linux-backports-modules +ifneq ($(KBUILD_SRC),) +ifneq ($(shell if test -e $(KBUILD_OUTPUT)/ubuntu-build; then echo yes; fi),yes) +UBUNTUINCLUDE := -I/usr/src/linux-headers-lbm-$(KERNELRELEASE) +endif +endif # Use LINUXINCLUDE when you must reference the include/ directory. # Needed to be compatible with the O= option -LINUXINCLUDE := -I$(srctree)/arch/$(hdr-arch)/include -Iinclude \ +LINUXINCLUDE := $(UBUNTUINCLUDE) -I$(srctree)/arch/$(hdr-arch)/include -Iinclude \ $(if $(KBUILD_SRC), -I$(srctree)/include) \ -include include/generated/autoconf.h +# UBUNTU: Include our third party driver stuff too +LINUXINCLUDE += -Iubuntu/include $(if $(KBUILD_SRC),-I$(srctree)/ubuntu/include) + KBUILD_CPPFLAGS := -D__KERNEL__ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ @@ -478,7 +487,7 @@ # Objects we will link into vmlinux / subdirs we need to visit init-y := init/ -drivers-y := drivers/ sound/ firmware/ +drivers-y := drivers/ sound/ firmware/ ubuntu/ net-y := net/ libs-y := lib/ core-y := usr/ --- linux-2.6.35.orig/arch/alpha/kernel/proto.h +++ linux-2.6.35/arch/alpha/kernel/proto.h @@ -156,9 +156,6 @@ /* es1888.c */ extern void es1888_init(void); -/* ns87312.c */ -extern void ns87312_enable_ide(long ide_base); - /* ../lib/fpreg.c */ extern void alpha_write_fp_reg (unsigned long reg, unsigned long val); extern unsigned long alpha_read_fp_reg (unsigned long reg); --- linux-2.6.35.orig/arch/alpha/kernel/err_marvel.c +++ linux-2.6.35/arch/alpha/kernel/err_marvel.c @@ -109,7 +109,7 @@ #define IO7__ERR_CYC__CYCLE__M (0x7) printk("%s Packet In Error: %s\n" - "%s Error in %s, cycle %ld%s%s\n", + "%s Error in %s, cycle %lld%s%s\n", err_print_prefix, packet_desc[EXTRACT(err_cyc, IO7__ERR_CYC__PACKET)], err_print_prefix, @@ -313,7 +313,7 @@ } printk("%s Up Hose Garbage Symptom:\n" - "%s Source Port: %ld - Dest PID: %ld - OpCode: %s\n", + "%s Source Port: %lld - Dest PID: %lld - OpCode: %s\n", err_print_prefix, err_print_prefix, EXTRACT(ugbge_sym, IO7__PO7_UGBGE_SYM__UPH_SRC_PORT), @@ -552,7 +552,7 @@ #define IO7__POX_SPLCMPLT__REM_BYTE_COUNT__M (0xfff) printk("%s Split Completion Error:\n" - "%s Source (Bus:Dev:Func): %ld:%ld:%ld\n", + "%s Source (Bus:Dev:Func): %lld:%lld:%lld\n", err_print_prefix, err_print_prefix, EXTRACT(spl_cmplt, IO7__POX_SPLCMPLT__SOURCE_BUS), --- linux-2.6.35.orig/arch/alpha/kernel/sys_cabriolet.c +++ linux-2.6.35/arch/alpha/kernel/sys_cabriolet.c @@ -33,7 +33,7 @@ #include "irq_impl.h" #include "pci_impl.h" #include "machvec_impl.h" - +#include "pc873xx.h" /* Note mask bit is true for DISABLED irqs. */ static unsigned long cached_irq_mask = ~0UL; @@ -236,17 +236,30 @@ } static inline void __init +cabriolet_enable_ide(void) +{ + if (pc873xx_probe() == -1) { + printk(KERN_ERR "Probing for PC873xx Super IO chip failed.\n"); + } else { + printk(KERN_INFO "Found %s Super IO chip at 0x%x\n", + pc873xx_get_model(), pc873xx_get_base()); + + pc873xx_enable_ide(); + } +} + +static inline void __init cabriolet_init_pci(void) { common_init_pci(); - ns87312_enable_ide(0x398); + cabriolet_enable_ide(); } static inline void __init cia_cab_init_pci(void) { cia_init_pci(); - ns87312_enable_ide(0x398); + cabriolet_enable_ide(); } /* --- linux-2.6.35.orig/arch/alpha/kernel/sys_takara.c +++ linux-2.6.35/arch/alpha/kernel/sys_takara.c @@ -29,7 +29,7 @@ #include "irq_impl.h" #include "pci_impl.h" #include "machvec_impl.h" - +#include "pc873xx.h" /* Note mask bit is true for DISABLED irqs. */ static unsigned long cached_irq_mask[2] = { -1, -1 }; @@ -264,7 +264,14 @@ alpha_mv.pci_map_irq = takara_map_irq_srm; cia_init_pci(); - ns87312_enable_ide(0x26e); + + if (pc873xx_probe() == -1) { + printk(KERN_ERR "Probing for PC873xx Super IO chip failed.\n"); + } else { + printk(KERN_INFO "Found %s Super IO chip at 0x%x\n", + pc873xx_get_model(), pc873xx_get_base()); + pc873xx_enable_ide(); + } } --- linux-2.6.35.orig/arch/s390/include/asm/compat.h +++ linux-2.6.35/arch/s390/include/asm/compat.h @@ -181,7 +181,7 @@ #endif -static inline void __user *compat_alloc_user_space(long len) +static inline void __user *arch_compat_alloc_user_space(long len) { unsigned long stack; --- linux-2.6.35.orig/arch/sparc/include/asm/oplib_64.h +++ linux-2.6.35/arch/sparc/include/asm/oplib_64.h @@ -185,9 +185,8 @@ char *buf, int buflen); /* Retain physical memory to the caller across soft resets. */ -extern unsigned long prom_retain(const char *name, - unsigned long pa_low, unsigned long pa_high, - long size, long align); +extern int prom_retain(const char *name, unsigned long size, + unsigned long align, unsigned long *paddr); /* Load explicit I/D TLB entries into the calling processor. */ extern long prom_itlb_load(unsigned long index, @@ -287,26 +286,6 @@ extern int prom_ihandle2path(int handle, char *buffer, int bufsize); /* Client interface level routines. */ -extern long p1275_cmd(const char *, long, ...); - -#if 0 -#define P1275_SIZE(x) ((((long)((x) / 32)) << 32) | (x)) -#else -#define P1275_SIZE(x) x -#endif - -/* We support at most 16 input and 1 output argument */ -#define P1275_ARG_NUMBER 0 -#define P1275_ARG_IN_STRING 1 -#define P1275_ARG_OUT_BUF 2 -#define P1275_ARG_OUT_32B 3 -#define P1275_ARG_IN_FUNCTION 4 -#define P1275_ARG_IN_BUF 5 -#define P1275_ARG_IN_64B 6 - -#define P1275_IN(x) ((x) & 0xf) -#define P1275_OUT(x) (((x) << 4) & 0xf0) -#define P1275_INOUT(i,o) (P1275_IN(i)|P1275_OUT(o)) -#define P1275_ARG(n,x) ((x) << ((n)*3 + 8)) +extern void p1275_cmd_direct(unsigned long *); #endif /* !(__SPARC64_OPLIB_H) */ --- linux-2.6.35.orig/arch/sparc/include/asm/compat.h +++ linux-2.6.35/arch/sparc/include/asm/compat.h @@ -167,7 +167,7 @@ return (u32)(unsigned long)uptr; } -static inline void __user *compat_alloc_user_space(long len) +static inline void __user *arch_compat_alloc_user_space(long len) { struct pt_regs *regs = current_thread_info()->kregs; unsigned long usp = regs->u_regs[UREG_I6]; --- linux-2.6.35.orig/arch/sparc/include/asm/atomic_64.h +++ linux-2.6.35/arch/sparc/include/asm/atomic_64.h @@ -20,14 +20,14 @@ #define atomic64_set(v, i) (((v)->counter) = i) extern void atomic_add(int, atomic_t *); -extern void atomic64_add(int, atomic64_t *); +extern void atomic64_add(long, atomic64_t *); extern void atomic_sub(int, atomic_t *); -extern void atomic64_sub(int, atomic64_t *); +extern void atomic64_sub(long, atomic64_t *); extern int atomic_add_ret(int, atomic_t *); -extern int atomic64_add_ret(int, atomic64_t *); +extern long atomic64_add_ret(long, atomic64_t *); extern int atomic_sub_ret(int, atomic_t *); -extern int atomic64_sub_ret(int, atomic64_t *); +extern long atomic64_sub_ret(long, atomic64_t *); #define atomic_dec_return(v) atomic_sub_ret(1, v) #define atomic64_dec_return(v) atomic64_sub_ret(1, v) @@ -91,7 +91,7 @@ ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n))) #define atomic64_xchg(v, new) (xchg(&((v)->counter), new)) -static inline int atomic64_add_unless(atomic64_t *v, long a, long u) +static inline long atomic64_add_unless(atomic64_t *v, long a, long u) { long c, old; c = atomic64_read(v); --- linux-2.6.35.orig/arch/sparc/include/asm/fb.h +++ linux-2.6.35/arch/sparc/include/asm/fb.h @@ -1,5 +1,6 @@ #ifndef _SPARC_FB_H_ #define _SPARC_FB_H_ +#include #include #include #include @@ -18,6 +19,9 @@ struct device *dev = info->device; struct device_node *node; + if (console_set_on_cmdline) + return 0; + node = dev->of_node; if (node && node == of_console_device) --- linux-2.6.35.orig/arch/sparc/include/asm/rwsem-const.h +++ linux-2.6.35/arch/sparc/include/asm/rwsem-const.h @@ -5,7 +5,7 @@ #define RWSEM_UNLOCKED_VALUE 0x00000000 #define RWSEM_ACTIVE_BIAS 0x00000001 #define RWSEM_ACTIVE_MASK 0x0000ffff -#define RWSEM_WAITING_BIAS 0xffff0000 +#define RWSEM_WAITING_BIAS (-0x00010000) #define RWSEM_ACTIVE_READ_BIAS RWSEM_ACTIVE_BIAS #define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS) --- linux-2.6.35.orig/arch/sparc/include/asm/parport.h +++ linux-2.6.35/arch/sparc/include/asm/parport.h @@ -228,6 +228,10 @@ .name = "parallel", .compatible = "ns87317-ecpp", }, + { + .name = "parallel", + .compatible = "pnpALI,1533,3", + }, {}, }; --- linux-2.6.35.orig/arch/sparc/prom/misc_64.c +++ linux-2.6.35/arch/sparc/prom/misc_64.c @@ -20,10 +20,17 @@ int prom_service_exists(const char *service_name) { - int err = p1275_cmd("test", P1275_ARG(0, P1275_ARG_IN_STRING) | - P1275_INOUT(1, 1), service_name); + unsigned long args[5]; - if (err) + args[0] = (unsigned long) "test"; + args[1] = 1; + args[2] = 1; + args[3] = (unsigned long) service_name; + args[4] = (unsigned long) -1; + + p1275_cmd_direct(args); + + if (args[4]) return 0; return 1; } @@ -31,30 +38,47 @@ void prom_sun4v_guest_soft_state(void) { const char *svc = "SUNW,soft-state-supported"; + unsigned long args[3]; if (!prom_service_exists(svc)) return; - p1275_cmd(svc, P1275_INOUT(0, 0)); + args[0] = (unsigned long) svc; + args[1] = 0; + args[2] = 0; + p1275_cmd_direct(args); } /* Reset and reboot the machine with the command 'bcommand'. */ void prom_reboot(const char *bcommand) { + unsigned long args[4]; + #ifdef CONFIG_SUN_LDOMS if (ldom_domaining_enabled) ldom_reboot(bcommand); #endif - p1275_cmd("boot", P1275_ARG(0, P1275_ARG_IN_STRING) | - P1275_INOUT(1, 0), bcommand); + args[0] = (unsigned long) "boot"; + args[1] = 1; + args[2] = 0; + args[3] = (unsigned long) bcommand; + + p1275_cmd_direct(args); } /* Forth evaluate the expression contained in 'fstring'. */ void prom_feval(const char *fstring) { + unsigned long args[5]; + if (!fstring || fstring[0] == 0) return; - p1275_cmd("interpret", P1275_ARG(0, P1275_ARG_IN_STRING) | - P1275_INOUT(1, 1), fstring); + args[0] = (unsigned long) "interpret"; + args[1] = 1; + args[2] = 1; + args[3] = (unsigned long) fstring; + args[4] = (unsigned long) -1; + + p1275_cmd_direct(args); } EXPORT_SYMBOL(prom_feval); @@ -68,6 +92,7 @@ */ void prom_cmdline(void) { + unsigned long args[3]; unsigned long flags; local_irq_save(flags); @@ -76,7 +101,11 @@ smp_capture(); #endif - p1275_cmd("enter", P1275_INOUT(0, 0)); + args[0] = (unsigned long) "enter"; + args[1] = 0; + args[2] = 0; + + p1275_cmd_direct(args); #ifdef CONFIG_SMP smp_release(); @@ -90,22 +119,32 @@ */ void notrace prom_halt(void) { + unsigned long args[3]; + #ifdef CONFIG_SUN_LDOMS if (ldom_domaining_enabled) ldom_power_off(); #endif again: - p1275_cmd("exit", P1275_INOUT(0, 0)); + args[0] = (unsigned long) "exit"; + args[1] = 0; + args[2] = 0; + p1275_cmd_direct(args); goto again; /* PROM is out to get me -DaveM */ } void prom_halt_power_off(void) { + unsigned long args[3]; + #ifdef CONFIG_SUN_LDOMS if (ldom_domaining_enabled) ldom_power_off(); #endif - p1275_cmd("SUNW,power-off", P1275_INOUT(0, 0)); + args[0] = (unsigned long) "SUNW,power-off"; + args[1] = 0; + args[2] = 0; + p1275_cmd_direct(args); /* if nothing else helps, we just halt */ prom_halt(); @@ -114,10 +153,15 @@ /* Set prom sync handler to call function 'funcp'. */ void prom_setcallback(callback_func_t funcp) { + unsigned long args[5]; if (!funcp) return; - p1275_cmd("set-callback", P1275_ARG(0, P1275_ARG_IN_FUNCTION) | - P1275_INOUT(1, 1), funcp); + args[0] = (unsigned long) "set-callback"; + args[1] = 1; + args[2] = 1; + args[3] = (unsigned long) funcp; + args[4] = (unsigned long) -1; + p1275_cmd_direct(args); } /* Get the idprom and stuff it into buffer 'idbuf'. Returns the @@ -173,57 +217,61 @@ } /* Load explicit I/D TLB entries. */ +static long tlb_load(const char *type, unsigned long index, + unsigned long tte_data, unsigned long vaddr) +{ + unsigned long args[9]; + + args[0] = (unsigned long) prom_callmethod_name; + args[1] = 5; + args[2] = 1; + args[3] = (unsigned long) type; + args[4] = (unsigned int) prom_get_mmu_ihandle(); + args[5] = vaddr; + args[6] = tte_data; + args[7] = index; + args[8] = (unsigned long) -1; + + p1275_cmd_direct(args); + + return (long) args[8]; +} + long prom_itlb_load(unsigned long index, unsigned long tte_data, unsigned long vaddr) { - return p1275_cmd(prom_callmethod_name, - (P1275_ARG(0, P1275_ARG_IN_STRING) | - P1275_ARG(2, P1275_ARG_IN_64B) | - P1275_ARG(3, P1275_ARG_IN_64B) | - P1275_INOUT(5, 1)), - "SUNW,itlb-load", - prom_get_mmu_ihandle(), - /* And then our actual args are pushed backwards. */ - vaddr, - tte_data, - index); + return tlb_load("SUNW,itlb-load", index, tte_data, vaddr); } long prom_dtlb_load(unsigned long index, unsigned long tte_data, unsigned long vaddr) { - return p1275_cmd(prom_callmethod_name, - (P1275_ARG(0, P1275_ARG_IN_STRING) | - P1275_ARG(2, P1275_ARG_IN_64B) | - P1275_ARG(3, P1275_ARG_IN_64B) | - P1275_INOUT(5, 1)), - "SUNW,dtlb-load", - prom_get_mmu_ihandle(), - /* And then our actual args are pushed backwards. */ - vaddr, - tte_data, - index); + return tlb_load("SUNW,dtlb-load", index, tte_data, vaddr); } int prom_map(int mode, unsigned long size, unsigned long vaddr, unsigned long paddr) { - int ret = p1275_cmd(prom_callmethod_name, - (P1275_ARG(0, P1275_ARG_IN_STRING) | - P1275_ARG(3, P1275_ARG_IN_64B) | - P1275_ARG(4, P1275_ARG_IN_64B) | - P1275_ARG(6, P1275_ARG_IN_64B) | - P1275_INOUT(7, 1)), - prom_map_name, - prom_get_mmu_ihandle(), - mode, - size, - vaddr, - 0, - paddr); + unsigned long args[11]; + int ret; + args[0] = (unsigned long) prom_callmethod_name; + args[1] = 7; + args[2] = 1; + args[3] = (unsigned long) prom_map_name; + args[4] = (unsigned int) prom_get_mmu_ihandle(); + args[5] = (unsigned int) mode; + args[6] = size; + args[7] = vaddr; + args[8] = 0; + args[9] = paddr; + args[10] = (unsigned long) -1; + + p1275_cmd_direct(args); + + ret = (int) args[10]; if (ret == 0) ret = -1; return ret; @@ -231,40 +279,51 @@ void prom_unmap(unsigned long size, unsigned long vaddr) { - p1275_cmd(prom_callmethod_name, - (P1275_ARG(0, P1275_ARG_IN_STRING) | - P1275_ARG(2, P1275_ARG_IN_64B) | - P1275_ARG(3, P1275_ARG_IN_64B) | - P1275_INOUT(4, 0)), - prom_unmap_name, - prom_get_mmu_ihandle(), - size, - vaddr); + unsigned long args[7]; + + args[0] = (unsigned long) prom_callmethod_name; + args[1] = 4; + args[2] = 0; + args[3] = (unsigned long) prom_unmap_name; + args[4] = (unsigned int) prom_get_mmu_ihandle(); + args[5] = size; + args[6] = vaddr; + + p1275_cmd_direct(args); } /* Set aside physical memory which is not touched or modified * across soft resets. */ -unsigned long prom_retain(const char *name, - unsigned long pa_low, unsigned long pa_high, - long size, long align) -{ - /* XXX I don't think we return multiple values correctly. - * XXX OBP supposedly returns pa_low/pa_high here, how does - * XXX it work? - */ +int prom_retain(const char *name, unsigned long size, + unsigned long align, unsigned long *paddr) +{ + unsigned long args[11]; - /* If align is zero, the pa_low/pa_high args are passed, - * else they are not. + args[0] = (unsigned long) prom_callmethod_name; + args[1] = 5; + args[2] = 3; + args[3] = (unsigned long) "SUNW,retain"; + args[4] = (unsigned int) prom_get_memory_ihandle(); + args[5] = align; + args[6] = size; + args[7] = (unsigned long) name; + args[8] = (unsigned long) -1; + args[9] = (unsigned long) -1; + args[10] = (unsigned long) -1; + + p1275_cmd_direct(args); + + if (args[8]) + return (int) args[8]; + + /* Next we get "phys_high" then "phys_low". On 64-bit + * the phys_high cell is don't care since the phys_low + * cell has the full value. */ - if (align == 0) - return p1275_cmd("SUNW,retain", - (P1275_ARG(0, P1275_ARG_IN_BUF) | P1275_INOUT(5, 2)), - name, pa_low, pa_high, size, align); - else - return p1275_cmd("SUNW,retain", - (P1275_ARG(0, P1275_ARG_IN_BUF) | P1275_INOUT(3, 2)), - name, size, align); + *paddr = args[10]; + + return 0; } /* Get "Unumber" string for the SIMM at the given @@ -277,62 +336,129 @@ unsigned long phys_addr, char *buf, int buflen) { - return p1275_cmd(prom_callmethod_name, - (P1275_ARG(0, P1275_ARG_IN_STRING) | - P1275_ARG(3, P1275_ARG_OUT_BUF) | - P1275_ARG(6, P1275_ARG_IN_64B) | - P1275_INOUT(8, 2)), - "SUNW,get-unumber", prom_get_memory_ihandle(), - buflen, buf, P1275_SIZE(buflen), - 0, phys_addr, syndrome_code); + unsigned long args[12]; + + args[0] = (unsigned long) prom_callmethod_name; + args[1] = 7; + args[2] = 2; + args[3] = (unsigned long) "SUNW,get-unumber"; + args[4] = (unsigned int) prom_get_memory_ihandle(); + args[5] = buflen; + args[6] = (unsigned long) buf; + args[7] = 0; + args[8] = phys_addr; + args[9] = (unsigned int) syndrome_code; + args[10] = (unsigned long) -1; + args[11] = (unsigned long) -1; + + p1275_cmd_direct(args); + + return (int) args[10]; } /* Power management extensions. */ void prom_sleepself(void) { - p1275_cmd("SUNW,sleep-self", P1275_INOUT(0, 0)); + unsigned long args[3]; + + args[0] = (unsigned long) "SUNW,sleep-self"; + args[1] = 0; + args[2] = 0; + p1275_cmd_direct(args); } int prom_sleepsystem(void) { - return p1275_cmd("SUNW,sleep-system", P1275_INOUT(0, 1)); + unsigned long args[4]; + + args[0] = (unsigned long) "SUNW,sleep-system"; + args[1] = 0; + args[2] = 1; + args[3] = (unsigned long) -1; + p1275_cmd_direct(args); + + return (int) args[3]; } int prom_wakeupsystem(void) { - return p1275_cmd("SUNW,wakeup-system", P1275_INOUT(0, 1)); + unsigned long args[4]; + + args[0] = (unsigned long) "SUNW,wakeup-system"; + args[1] = 0; + args[2] = 1; + args[3] = (unsigned long) -1; + p1275_cmd_direct(args); + + return (int) args[3]; } #ifdef CONFIG_SMP void prom_startcpu(int cpunode, unsigned long pc, unsigned long arg) { - p1275_cmd("SUNW,start-cpu", P1275_INOUT(3, 0), cpunode, pc, arg); + unsigned long args[6]; + + args[0] = (unsigned long) "SUNW,start-cpu"; + args[1] = 3; + args[2] = 0; + args[3] = (unsigned int) cpunode; + args[4] = pc; + args[5] = arg; + p1275_cmd_direct(args); } void prom_startcpu_cpuid(int cpuid, unsigned long pc, unsigned long arg) { - p1275_cmd("SUNW,start-cpu-by-cpuid", P1275_INOUT(3, 0), - cpuid, pc, arg); + unsigned long args[6]; + + args[0] = (unsigned long) "SUNW,start-cpu-by-cpuid"; + args[1] = 3; + args[2] = 0; + args[3] = (unsigned int) cpuid; + args[4] = pc; + args[5] = arg; + p1275_cmd_direct(args); } void prom_stopcpu_cpuid(int cpuid) { - p1275_cmd("SUNW,stop-cpu-by-cpuid", P1275_INOUT(1, 0), - cpuid); + unsigned long args[4]; + + args[0] = (unsigned long) "SUNW,stop-cpu-by-cpuid"; + args[1] = 1; + args[2] = 0; + args[3] = (unsigned int) cpuid; + p1275_cmd_direct(args); } void prom_stopself(void) { - p1275_cmd("SUNW,stop-self", P1275_INOUT(0, 0)); + unsigned long args[3]; + + args[0] = (unsigned long) "SUNW,stop-self"; + args[1] = 0; + args[2] = 0; + p1275_cmd_direct(args); } void prom_idleself(void) { - p1275_cmd("SUNW,idle-self", P1275_INOUT(0, 0)); + unsigned long args[3]; + + args[0] = (unsigned long) "SUNW,idle-self"; + args[1] = 0; + args[2] = 0; + p1275_cmd_direct(args); } void prom_resumecpu(int cpunode) { - p1275_cmd("SUNW,resume-cpu", P1275_INOUT(1, 0), cpunode); + unsigned long args[4]; + + args[0] = (unsigned long) "SUNW,resume-cpu"; + args[1] = 1; + args[2] = 0; + args[3] = (unsigned int) cpunode; + p1275_cmd_direct(args); } #endif --- linux-2.6.35.orig/arch/sparc/prom/devops_64.c +++ linux-2.6.35/arch/sparc/prom/devops_64.c @@ -18,16 +18,32 @@ int prom_devopen(const char *dstr) { - return p1275_cmd ("open", P1275_ARG(0,P1275_ARG_IN_STRING)| - P1275_INOUT(1,1), - dstr); + unsigned long args[5]; + + args[0] = (unsigned long) "open"; + args[1] = 1; + args[2] = 1; + args[3] = (unsigned long) dstr; + args[4] = (unsigned long) -1; + + p1275_cmd_direct(args); + + return (int) args[4]; } /* Close the device described by device handle 'dhandle'. */ int prom_devclose(int dhandle) { - p1275_cmd ("close", P1275_INOUT(1,0), dhandle); + unsigned long args[4]; + + args[0] = (unsigned long) "close"; + args[1] = 1; + args[2] = 0; + args[3] = (unsigned int) dhandle; + + p1275_cmd_direct(args); + return 0; } @@ -37,5 +53,15 @@ void prom_seek(int dhandle, unsigned int seekhi, unsigned int seeklo) { - p1275_cmd ("seek", P1275_INOUT(3,1), dhandle, seekhi, seeklo); + unsigned long args[7]; + + args[0] = (unsigned long) "seek"; + args[1] = 3; + args[2] = 1; + args[3] = (unsigned int) dhandle; + args[4] = seekhi; + args[5] = seeklo; + args[6] = (unsigned long) -1; + + p1275_cmd_direct(args); } --- linux-2.6.35.orig/arch/sparc/prom/console_64.c +++ linux-2.6.35/arch/sparc/prom/console_64.c @@ -21,14 +21,22 @@ inline int prom_nbgetchar(void) { + unsigned long args[7]; char inc; - if (p1275_cmd("read", P1275_ARG(1,P1275_ARG_OUT_BUF)| - P1275_INOUT(3,1), - prom_stdin, &inc, P1275_SIZE(1)) == 1) + args[0] = (unsigned long) "read"; + args[1] = 3; + args[2] = 1; + args[3] = (unsigned int) prom_stdin; + args[4] = (unsigned long) &inc; + args[5] = 1; + args[6] = (unsigned long) -1; + + p1275_cmd_direct(args); + + if (args[6] == 1) return inc; - else - return -1; + return -1; } /* Non blocking put character to console device, returns -1 if @@ -37,12 +45,22 @@ inline int prom_nbputchar(char c) { + unsigned long args[7]; char outc; outc = c; - if (p1275_cmd("write", P1275_ARG(1,P1275_ARG_IN_BUF)| - P1275_INOUT(3,1), - prom_stdout, &outc, P1275_SIZE(1)) == 1) + + args[0] = (unsigned long) "write"; + args[1] = 3; + args[2] = 1; + args[3] = (unsigned int) prom_stdout; + args[4] = (unsigned long) &outc; + args[5] = 1; + args[6] = (unsigned long) -1; + + p1275_cmd_direct(args); + + if (args[6] == 1) return 0; else return -1; @@ -67,7 +85,15 @@ void prom_puts(const char *s, int len) { - p1275_cmd("write", P1275_ARG(1,P1275_ARG_IN_BUF)| - P1275_INOUT(3,1), - prom_stdout, s, P1275_SIZE(len)); + unsigned long args[7]; + + args[0] = (unsigned long) "write"; + args[1] = 3; + args[2] = 1; + args[3] = (unsigned int) prom_stdout; + args[4] = (unsigned long) s; + args[5] = len; + args[6] = (unsigned long) -1; + + p1275_cmd_direct(args); } --- linux-2.6.35.orig/arch/sparc/prom/cif.S +++ linux-2.6.35/arch/sparc/prom/cif.S @@ -9,18 +9,18 @@ #include .text - .globl prom_cif_interface -prom_cif_interface: - sethi %hi(p1275buf), %o0 - or %o0, %lo(p1275buf), %o0 - ldx [%o0 + 0x010], %o1 ! prom_cif_stack - save %o1, -192, %sp - ldx [%i0 + 0x008], %l2 ! prom_cif_handler + .globl prom_cif_direct +prom_cif_direct: + sethi %hi(p1275buf), %o1 + or %o1, %lo(p1275buf), %o1 + ldx [%o1 + 0x0010], %o2 ! prom_cif_stack + save %o2, -192, %sp + ldx [%i1 + 0x0008], %l2 ! prom_cif_handler mov %g4, %l0 mov %g5, %l1 mov %g6, %l3 call %l2 - add %i0, 0x018, %o0 ! prom_args + mov %i0, %o0 ! prom_args mov %l0, %g4 mov %l1, %g5 mov %l3, %g6 --- linux-2.6.35.orig/arch/sparc/prom/tree_64.c +++ linux-2.6.35/arch/sparc/prom/tree_64.c @@ -16,22 +16,39 @@ #include #include +static int prom_node_to_node(const char *type, int node) +{ + unsigned long args[5]; + + args[0] = (unsigned long) type; + args[1] = 1; + args[2] = 1; + args[3] = (unsigned int) node; + args[4] = (unsigned long) -1; + + p1275_cmd_direct(args); + + return (int) args[4]; +} + /* Return the child of node 'node' or zero if no this node has no * direct descendent. */ inline int __prom_getchild(int node) { - return p1275_cmd ("child", P1275_INOUT(1, 1), node); + return prom_node_to_node("child", node); } inline int prom_getchild(int node) { int cnode; - if(node == -1) return 0; + if (node == -1) + return 0; cnode = __prom_getchild(node); - if(cnode == -1) return 0; - return (int)cnode; + if (cnode == -1) + return 0; + return cnode; } EXPORT_SYMBOL(prom_getchild); @@ -39,10 +56,12 @@ { int cnode; - if(node == -1) return 0; - cnode = p1275_cmd ("parent", P1275_INOUT(1, 1), node); - if(cnode == -1) return 0; - return (int)cnode; + if (node == -1) + return 0; + cnode = prom_node_to_node("parent", node); + if (cnode == -1) + return 0; + return cnode; } /* Return the next sibling of node 'node' or zero if no more siblings @@ -50,7 +69,7 @@ */ inline int __prom_getsibling(int node) { - return p1275_cmd(prom_peer_name, P1275_INOUT(1, 1), node); + return prom_node_to_node(prom_peer_name, node); } inline int prom_getsibling(int node) @@ -72,11 +91,21 @@ */ inline int prom_getproplen(int node, const char *prop) { - if((!node) || (!prop)) return -1; - return p1275_cmd ("getproplen", - P1275_ARG(1,P1275_ARG_IN_STRING)| - P1275_INOUT(2, 1), - node, prop); + unsigned long args[6]; + + if (!node || !prop) + return -1; + + args[0] = (unsigned long) "getproplen"; + args[1] = 2; + args[2] = 1; + args[3] = (unsigned int) node; + args[4] = (unsigned long) prop; + args[5] = (unsigned long) -1; + + p1275_cmd_direct(args); + + return (int) args[5]; } EXPORT_SYMBOL(prom_getproplen); @@ -87,19 +116,25 @@ inline int prom_getproperty(int node, const char *prop, char *buffer, int bufsize) { + unsigned long args[8]; int plen; plen = prom_getproplen(node, prop); - if ((plen > bufsize) || (plen == 0) || (plen == -1)) { + if ((plen > bufsize) || (plen == 0) || (plen == -1)) return -1; - } else { - /* Ok, things seem all right. */ - return p1275_cmd(prom_getprop_name, - P1275_ARG(1,P1275_ARG_IN_STRING)| - P1275_ARG(2,P1275_ARG_OUT_BUF)| - P1275_INOUT(4, 1), - node, prop, buffer, P1275_SIZE(plen)); - } + + args[0] = (unsigned long) prom_getprop_name; + args[1] = 4; + args[2] = 1; + args[3] = (unsigned int) node; + args[4] = (unsigned long) prop; + args[5] = (unsigned long) buffer; + args[6] = bufsize; + args[7] = (unsigned long) -1; + + p1275_cmd_direct(args); + + return (int) args[7]; } EXPORT_SYMBOL(prom_getproperty); @@ -110,7 +145,7 @@ { int intprop; - if(prom_getproperty(node, prop, (char *) &intprop, sizeof(int)) != -1) + if (prom_getproperty(node, prop, (char *) &intprop, sizeof(int)) != -1) return intprop; return -1; @@ -126,7 +161,8 @@ int retval; retval = prom_getint(node, property); - if(retval == -1) return deflt; + if (retval == -1) + return deflt; return retval; } @@ -138,7 +174,8 @@ int retval; retval = prom_getproplen(node, prop); - if(retval == -1) return 0; + if (retval == -1) + return 0; return 1; } EXPORT_SYMBOL(prom_getbool); @@ -152,7 +189,8 @@ int len; len = prom_getproperty(node, prop, user_buf, ubuf_size); - if(len != -1) return; + if (len != -1) + return; user_buf[0] = 0; } EXPORT_SYMBOL(prom_getstring); @@ -164,7 +202,8 @@ { char namebuf[128]; prom_getproperty(node, "name", namebuf, sizeof(namebuf)); - if(strcmp(namebuf, name) == 0) return 1; + if (strcmp(namebuf, name) == 0) + return 1; return 0; } @@ -190,16 +229,29 @@ } EXPORT_SYMBOL(prom_searchsiblings); +static const char *prom_nextprop_name = "nextprop"; + /* Return the first property type for node 'node'. * buffer should be at least 32B in length */ inline char *prom_firstprop(int node, char *buffer) { + unsigned long args[7]; + *buffer = 0; - if(node == -1) return buffer; - p1275_cmd ("nextprop", P1275_ARG(2,P1275_ARG_OUT_32B)| - P1275_INOUT(3, 0), - node, (char *) 0x0, buffer); + if (node == -1) + return buffer; + + args[0] = (unsigned long) prom_nextprop_name; + args[1] = 3; + args[2] = 1; + args[3] = (unsigned int) node; + args[4] = 0; + args[5] = (unsigned long) buffer; + args[6] = (unsigned long) -1; + + p1275_cmd_direct(args); + return buffer; } EXPORT_SYMBOL(prom_firstprop); @@ -210,9 +262,10 @@ */ inline char *prom_nextprop(int node, const char *oprop, char *buffer) { + unsigned long args[7]; char buf[32]; - if(node == -1) { + if (node == -1) { *buffer = 0; return buffer; } @@ -220,10 +273,17 @@ strcpy (buf, oprop); oprop = buf; } - p1275_cmd ("nextprop", P1275_ARG(1,P1275_ARG_IN_STRING)| - P1275_ARG(2,P1275_ARG_OUT_32B)| - P1275_INOUT(3, 0), - node, oprop, buffer); + + args[0] = (unsigned long) prom_nextprop_name; + args[1] = 3; + args[2] = 1; + args[3] = (unsigned int) node; + args[4] = (unsigned long) oprop; + args[5] = (unsigned long) buffer; + args[6] = (unsigned long) -1; + + p1275_cmd_direct(args); + return buffer; } EXPORT_SYMBOL(prom_nextprop); @@ -231,12 +291,19 @@ int prom_finddevice(const char *name) { + unsigned long args[5]; + if (!name) return 0; - return p1275_cmd(prom_finddev_name, - P1275_ARG(0,P1275_ARG_IN_STRING)| - P1275_INOUT(1, 1), - name); + args[0] = (unsigned long) "finddevice"; + args[1] = 1; + args[2] = 1; + args[3] = (unsigned long) name; + args[4] = (unsigned long) -1; + + p1275_cmd_direct(args); + + return (int) args[4]; } EXPORT_SYMBOL(prom_finddevice); @@ -247,7 +314,7 @@ *buf = 0; do { prom_nextprop(node, buf, buf); - if(!strcmp(buf, prop)) + if (!strcmp(buf, prop)) return 1; } while (*buf); return 0; @@ -260,6 +327,8 @@ int prom_setprop(int node, const char *pname, char *value, int size) { + unsigned long args[8]; + if (size == 0) return 0; if ((pname == 0) || (value == 0)) @@ -271,19 +340,37 @@ return 0; } #endif - return p1275_cmd ("setprop", P1275_ARG(1,P1275_ARG_IN_STRING)| - P1275_ARG(2,P1275_ARG_IN_BUF)| - P1275_INOUT(4, 1), - node, pname, value, P1275_SIZE(size)); + args[0] = (unsigned long) "setprop"; + args[1] = 4; + args[2] = 1; + args[3] = (unsigned int) node; + args[4] = (unsigned long) pname; + args[5] = (unsigned long) value; + args[6] = size; + args[7] = (unsigned long) -1; + + p1275_cmd_direct(args); + + return (int) args[7]; } EXPORT_SYMBOL(prom_setprop); inline int prom_inst2pkg(int inst) { + unsigned long args[5]; int node; - node = p1275_cmd ("instance-to-package", P1275_INOUT(1, 1), inst); - if (node == -1) return 0; + args[0] = (unsigned long) "instance-to-package"; + args[1] = 1; + args[2] = 1; + args[3] = (unsigned int) inst; + args[4] = (unsigned long) -1; + + p1275_cmd_direct(args); + + node = (int) args[4]; + if (node == -1) + return 0; return node; } @@ -296,17 +383,28 @@ int node, inst; inst = prom_devopen (path); - if (inst == 0) return 0; - node = prom_inst2pkg (inst); - prom_devclose (inst); - if (node == -1) return 0; + if (inst == 0) + return 0; + node = prom_inst2pkg(inst); + prom_devclose(inst); + if (node == -1) + return 0; return node; } int prom_ihandle2path(int handle, char *buffer, int bufsize) { - return p1275_cmd("instance-to-path", - P1275_ARG(1,P1275_ARG_OUT_BUF)| - P1275_INOUT(3, 1), - handle, buffer, P1275_SIZE(bufsize)); + unsigned long args[7]; + + args[0] = (unsigned long) "instance-to-path"; + args[1] = 3; + args[2] = 1; + args[3] = (unsigned int) handle; + args[4] = (unsigned long) buffer; + args[5] = bufsize; + args[6] = (unsigned long) -1; + + p1275_cmd_direct(args); + + return (int) args[6]; } --- linux-2.6.35.orig/arch/sparc/prom/p1275.c +++ linux-2.6.35/arch/sparc/prom/p1275.c @@ -22,13 +22,11 @@ long prom_callback; /* 0x00 */ void (*prom_cif_handler)(long *); /* 0x08 */ unsigned long prom_cif_stack; /* 0x10 */ - unsigned long prom_args [23]; /* 0x18 */ - char prom_buffer [3000]; } p1275buf; extern void prom_world(int); -extern void prom_cif_interface(void); +extern void prom_cif_direct(unsigned long *args); extern void prom_cif_callback(void); /* @@ -36,114 +34,20 @@ */ DEFINE_RAW_SPINLOCK(prom_entry_lock); -long p1275_cmd(const char *service, long fmt, ...) +void p1275_cmd_direct(unsigned long *args) { - char *p, *q; unsigned long flags; - int nargs, nrets, i; - va_list list; - long attrs, x; - - p = p1275buf.prom_buffer; raw_local_save_flags(flags); raw_local_irq_restore(PIL_NMI); raw_spin_lock(&prom_entry_lock); - p1275buf.prom_args[0] = (unsigned long)p; /* service */ - strcpy (p, service); - p = (char *)(((long)(strchr (p, 0) + 8)) & ~7); - p1275buf.prom_args[1] = nargs = (fmt & 0x0f); /* nargs */ - p1275buf.prom_args[2] = nrets = ((fmt & 0xf0) >> 4); /* nrets */ - attrs = fmt >> 8; - va_start(list, fmt); - for (i = 0; i < nargs; i++, attrs >>= 3) { - switch (attrs & 0x7) { - case P1275_ARG_NUMBER: - p1275buf.prom_args[i + 3] = - (unsigned)va_arg(list, long); - break; - case P1275_ARG_IN_64B: - p1275buf.prom_args[i + 3] = - va_arg(list, unsigned long); - break; - case P1275_ARG_IN_STRING: - strcpy (p, va_arg(list, char *)); - p1275buf.prom_args[i + 3] = (unsigned long)p; - p = (char *)(((long)(strchr (p, 0) + 8)) & ~7); - break; - case P1275_ARG_OUT_BUF: - (void) va_arg(list, char *); - p1275buf.prom_args[i + 3] = (unsigned long)p; - x = va_arg(list, long); - i++; attrs >>= 3; - p = (char *)(((long)(p + (int)x + 7)) & ~7); - p1275buf.prom_args[i + 3] = x; - break; - case P1275_ARG_IN_BUF: - q = va_arg(list, char *); - p1275buf.prom_args[i + 3] = (unsigned long)p; - x = va_arg(list, long); - i++; attrs >>= 3; - memcpy (p, q, (int)x); - p = (char *)(((long)(p + (int)x + 7)) & ~7); - p1275buf.prom_args[i + 3] = x; - break; - case P1275_ARG_OUT_32B: - (void) va_arg(list, char *); - p1275buf.prom_args[i + 3] = (unsigned long)p; - p += 32; - break; - case P1275_ARG_IN_FUNCTION: - p1275buf.prom_args[i + 3] = - (unsigned long)prom_cif_callback; - p1275buf.prom_callback = va_arg(list, long); - break; - } - } - va_end(list); - prom_world(1); - prom_cif_interface(); + prom_cif_direct(args); prom_world(0); - attrs = fmt >> 8; - va_start(list, fmt); - for (i = 0; i < nargs; i++, attrs >>= 3) { - switch (attrs & 0x7) { - case P1275_ARG_NUMBER: - (void) va_arg(list, long); - break; - case P1275_ARG_IN_STRING: - (void) va_arg(list, char *); - break; - case P1275_ARG_IN_FUNCTION: - (void) va_arg(list, long); - break; - case P1275_ARG_IN_BUF: - (void) va_arg(list, char *); - (void) va_arg(list, long); - i++; attrs >>= 3; - break; - case P1275_ARG_OUT_BUF: - p = va_arg(list, char *); - x = va_arg(list, long); - memcpy (p, (char *)(p1275buf.prom_args[i + 3]), (int)x); - i++; attrs >>= 3; - break; - case P1275_ARG_OUT_32B: - p = va_arg(list, char *); - memcpy (p, (char *)(p1275buf.prom_args[i + 3]), 32); - break; - } - } - va_end(list); - x = p1275buf.prom_args [nargs + 3]; - raw_spin_unlock(&prom_entry_lock); raw_local_irq_restore(flags); - - return x; } void prom_cif_init(void *cif_handler, void *cif_stack) --- linux-2.6.35.orig/arch/parisc/kernel/firmware.c +++ linux-2.6.35/arch/parisc/kernel/firmware.c @@ -1123,7 +1123,6 @@ */ int pdc_iodc_print(const unsigned char *str, unsigned count) { - static int posx; /* for simple TAB-Simulation... */ unsigned int i; unsigned long flags; @@ -1133,19 +1132,12 @@ iodc_dbuf[i+0] = '\r'; iodc_dbuf[i+1] = '\n'; i += 2; - posx = 0; goto print; - case '\t': - while (posx & 7) { - iodc_dbuf[i] = ' '; - i++, posx++; - } - break; case '\b': /* BS */ - posx -= 2; + i--; /* overwrite last */ default: iodc_dbuf[i] = str[i]; - i++, posx++; + i++; break; } } --- linux-2.6.35.orig/arch/parisc/include/asm/compat.h +++ linux-2.6.35/arch/parisc/include/asm/compat.h @@ -147,7 +147,7 @@ return (u32)(unsigned long)uptr; } -static __inline__ void __user *compat_alloc_user_space(long len) +static __inline__ void __user *arch_compat_alloc_user_space(long len) { struct pt_regs *regs = ¤t->thread.regs; return (void __user *)regs->gr[30]; --- linux-2.6.35.orig/arch/x86/Kconfig +++ linux-2.6.35/arch/x86/Kconfig @@ -247,6 +247,11 @@ config KTIME_SCALAR def_bool X86_32 + +config ARCH_CPU_PROBE_RELEASE + def_bool y + depends on HOTPLUG_CPU + source "init/Kconfig" source "kernel/Kconfig.freezer" @@ -390,6 +395,12 @@ # Following is an alphabetically sorted list of 32 bit extended platforms # Please maintain the alphabetic order if and when there are additions +config X86_LPIA + bool "LPIA-compatible" + depends on X86_32 && X86_PC + help + Choose this option if your computer is an LPIA platform. + config X86_ELAN bool "AMD Elan" depends on X86_32 @@ -870,6 +881,14 @@ Additional support for intel specific MCE features such as the thermal monitor. +config X86_MCE_XEON75XX + tristate "Intel Xeon 7500 series corrected memory error driver" + depends on X86_MCE_INTEL && PCI + ---help--- + Add support for a Intel Xeon 7500 series specific memory error driver. + This allows to report the DIMM and physical address on a corrected + memory error machine check event. + config X86_MCE_AMD def_bool y prompt "AMD MCE features" @@ -2117,6 +2136,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "drivers/firmware/Kconfig" source "fs/Kconfig" --- linux-2.6.35.orig/arch/x86/configs/x86_64_defconfig +++ linux-2.6.35/arch/x86/configs/x86_64_defconfig @@ -1456,6 +1456,7 @@ # CONFIG_SENSORS_GL518SM is not set # CONFIG_SENSORS_GL520SM is not set # CONFIG_SENSORS_CORETEMP is not set +# CONFIG_SENSORS_PKGTEMP is not set # CONFIG_SENSORS_IT87 is not set # CONFIG_SENSORS_LM63 is not set # CONFIG_SENSORS_LM75 is not set --- linux-2.6.35.orig/arch/x86/configs/i386_defconfig +++ linux-2.6.35/arch/x86/configs/i386_defconfig @@ -1471,6 +1471,7 @@ # CONFIG_SENSORS_GL518SM is not set # CONFIG_SENSORS_GL520SM is not set # CONFIG_SENSORS_CORETEMP is not set +# CONFIG_SENSORS_PKGTEMP is not set # CONFIG_SENSORS_IT87 is not set # CONFIG_SENSORS_LM63 is not set # CONFIG_SENSORS_LM75 is not set --- linux-2.6.35.orig/arch/x86/xen/enlighten.c +++ linux-2.6.35/arch/x86/xen/enlighten.c @@ -335,6 +335,24 @@ xen_mc_issue(PARAVIRT_LAZY_CPU); } +#ifdef CONFIG_X86_32 +static void xen_load_user_cs_desc(int cpu, struct mm_struct *mm) +{ + void *gdt; + xmaddr_t mgdt; + u64 descriptor; + struct desc_struct user_cs; + + gdt = &get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS]; + mgdt = virt_to_machine(gdt); + + user_cs = mm->context.user_cs; + descriptor = (u64) user_cs.a | ((u64) user_cs.b) << 32; + + HYPERVISOR_update_descriptor(mgdt.maddr, descriptor); +} +#endif /*CONFIG_X86_32*/ + static void xen_load_gdt(const struct desc_ptr *dtr) { unsigned long va = dtr->address; @@ -776,6 +794,7 @@ { cr4 &= ~X86_CR4_PGE; cr4 &= ~X86_CR4_PSE; + cr4 &= ~X86_CR4_OSXSAVE; native_write_cr4(cr4); } @@ -927,7 +946,7 @@ }; static const struct pv_time_ops xen_time_ops __initdata = { - .sched_clock = xen_sched_clock, + .sched_clock = xen_clocksource_read, }; static const struct pv_cpu_ops xen_cpu_ops __initdata = { @@ -961,6 +980,9 @@ .load_tr_desc = paravirt_nop, .set_ldt = xen_set_ldt, +#ifdef CONFIG_X86_32 + .load_user_cs_desc = xen_load_user_cs_desc, +#endif /*CONFIG_X86_32*/ .load_gdt = xen_load_gdt, .load_idt = xen_load_idt, .load_tls = xen_load_tls, --- linux-2.6.35.orig/arch/x86/xen/time.c +++ linux-2.6.35/arch/x86/xen/time.c @@ -155,45 +155,6 @@ account_idle_ticks(ticks); } -/* - * Xen sched_clock implementation. Returns the number of unstolen - * nanoseconds, which is nanoseconds the VCPU spent in RUNNING+BLOCKED - * states. - */ -unsigned long long xen_sched_clock(void) -{ - struct vcpu_runstate_info state; - cycle_t now; - u64 ret; - s64 offset; - - /* - * Ideally sched_clock should be called on a per-cpu basis - * anyway, so preempt should already be disabled, but that's - * not current practice at the moment. - */ - preempt_disable(); - - now = xen_clocksource_read(); - - get_runstate_snapshot(&state); - - WARN_ON(state.state != RUNSTATE_running); - - offset = now - state.state_entry_time; - if (offset < 0) - offset = 0; - - ret = state.time[RUNSTATE_blocked] + - state.time[RUNSTATE_running] + - offset; - - preempt_enable(); - - return ret; -} - - /* Get the TSC speed from Xen */ unsigned long xen_tsc_khz(void) { --- linux-2.6.35.orig/arch/x86/power/cpu.c +++ linux-2.6.35/arch/x86/power/cpu.c @@ -113,6 +113,7 @@ void save_processor_state(void) { __save_processor_state(&saved_context); + save_sched_clock_state(); } #ifdef CONFIG_X86_32 EXPORT_SYMBOL(save_processor_state); @@ -229,6 +230,7 @@ void restore_processor_state(void) { __restore_processor_state(&saved_context); + restore_sched_clock_state(); } #ifdef CONFIG_X86_32 EXPORT_SYMBOL(restore_processor_state); --- linux-2.6.35.orig/arch/x86/ia32/ia32entry.S +++ linux-2.6.35/arch/x86/ia32/ia32entry.S @@ -50,7 +50,12 @@ /* * Reload arg registers from stack in case ptrace changed them. * We don't reload %eax because syscall_trace_enter() returned - * the value it wants us to use in the table lookup. + * the %rax value we should see. Instead, we just truncate that + * value to 32 bits again as we did on entry from user mode. + * If it's a new value set by user_regset during entry tracing, + * this matches the normal truncation of the user-mode value. + * If it's -1 to make us punt the syscall, then (u32)-1 is still + * an appropriately invalid value. */ .macro LOAD_ARGS32 offset, _r9=0 .if \_r9 @@ -60,6 +65,7 @@ movl \offset+48(%rsp),%edx movl \offset+56(%rsp),%esi movl \offset+64(%rsp),%edi + movl %eax,%eax /* zero extension */ .endm .macro CFI_STARTPROC32 simple @@ -153,7 +159,7 @@ testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10) CFI_REMEMBER_STATE jnz sysenter_tracesys - cmpl $(IA32_NR_syscalls-1),%eax + cmpq $(IA32_NR_syscalls-1),%rax ja ia32_badsys sysenter_do_call: IA32_ARG_FIXUP @@ -195,7 +201,7 @@ movl $AUDIT_ARCH_I386,%edi /* 1st arg: audit arch */ call audit_syscall_entry movl RAX-ARGOFFSET(%rsp),%eax /* reload syscall number */ - cmpl $(IA32_NR_syscalls-1),%eax + cmpq $(IA32_NR_syscalls-1),%rax ja ia32_badsys movl %ebx,%edi /* reload 1st syscall arg */ movl RCX-ARGOFFSET(%rsp),%esi /* reload 2nd syscall arg */ @@ -248,7 +254,7 @@ call syscall_trace_enter LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */ RESTORE_REST - cmpl $(IA32_NR_syscalls-1),%eax + cmpq $(IA32_NR_syscalls-1),%rax ja int_ret_from_sys_call /* sysenter_tracesys has set RAX(%rsp) */ jmp sysenter_do_call CFI_ENDPROC @@ -314,7 +320,7 @@ testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10) CFI_REMEMBER_STATE jnz cstar_tracesys - cmpl $IA32_NR_syscalls-1,%eax + cmpq $IA32_NR_syscalls-1,%rax ja ia32_badsys cstar_do_call: IA32_ARG_FIXUP 1 @@ -367,7 +373,7 @@ LOAD_ARGS32 ARGOFFSET, 1 /* reload args from stack in case ptrace changed it */ RESTORE_REST xchgl %ebp,%r9d - cmpl $(IA32_NR_syscalls-1),%eax + cmpq $(IA32_NR_syscalls-1),%rax ja int_ret_from_sys_call /* cstar_tracesys has set RAX(%rsp) */ jmp cstar_do_call END(ia32_cstar_target) @@ -425,7 +431,7 @@ orl $TS_COMPAT,TI_status(%r10) testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10) jnz ia32_tracesys - cmpl $(IA32_NR_syscalls-1),%eax + cmpq $(IA32_NR_syscalls-1),%rax ja ia32_badsys ia32_do_call: IA32_ARG_FIXUP @@ -444,7 +450,7 @@ call syscall_trace_enter LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */ RESTORE_REST - cmpl $(IA32_NR_syscalls-1),%eax + cmpq $(IA32_NR_syscalls-1),%rax ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */ jmp ia32_do_call END(ia32_syscall) --- linux-2.6.35.orig/arch/x86/kernel/traps.c +++ linux-2.6.35/arch/x86/kernel/traps.c @@ -109,6 +109,78 @@ dec_preempt_count(); } +#ifdef CONFIG_X86_32 +static inline int +__compare_user_cs_desc(const struct desc_struct *desc1, + const struct desc_struct *desc2) +{ + return ((desc1->limit0 != desc2->limit0) || + (desc1->limit != desc2->limit) || + (desc1->base0 != desc2->base0) || + (desc1->base1 != desc2->base1) || + (desc1->base2 != desc2->base2)); +} + +/* + * lazy-check for CS validity on exec-shield binaries: + * + * the original non-exec stack patch was written by + * Solar Designer . Thanks! + */ +static int +check_lazy_exec_limit(int cpu, struct pt_regs *regs, long error_code) +{ + struct desc_struct *desc1, *desc2; + struct vm_area_struct *vma; + unsigned long limit; + + if (current->mm == NULL) + return 0; + + limit = -1UL; + if (current->mm->context.exec_limit != -1UL) { + limit = PAGE_SIZE; + spin_lock(¤t->mm->page_table_lock); + for (vma = current->mm->mmap; vma; vma = vma->vm_next) + if ((vma->vm_flags & VM_EXEC) && (vma->vm_end > limit)) + limit = vma->vm_end; + vma = get_gate_vma(current); + if (vma && (vma->vm_flags & VM_EXEC) && (vma->vm_end > limit)) + limit = vma->vm_end; + spin_unlock(¤t->mm->page_table_lock); + if (limit >= TASK_SIZE) + limit = -1UL; + current->mm->context.exec_limit = limit; + } + set_user_cs(¤t->mm->context.user_cs, limit); + + desc1 = ¤t->mm->context.user_cs; + desc2 = get_cpu_gdt_table(cpu) + GDT_ENTRY_DEFAULT_USER_CS; + + if (__compare_user_cs_desc(desc1, desc2)) { + /* + * The CS was not in sync - reload it and retry the + * instruction. If the instruction still faults then + * we won't hit this branch next time around. + */ + if (print_fatal_signals >= 2) { + printk(KERN_ERR "#GPF fixup (%ld[seg:%lx]) at %08lx, CPU#%d.\n", + error_code, error_code/8, regs->ip, + smp_processor_id()); + printk(KERN_ERR "exec_limit: %08lx, user_cs: %08x/%08x, CPU_cs: %08x/%08x.\n", + current->mm->context.exec_limit, + desc1->a, desc1->b, desc2->a, desc2->b); + } + + load_user_cs_desc(cpu, current->mm); + + return 1; + } + + return 0; +} +#endif + static void __kprobes do_trap(int trapnr, int signr, char *str, struct pt_regs *regs, long error_code, siginfo_t *info) @@ -265,6 +337,29 @@ if (!user_mode(regs)) goto gp_in_kernel; +#ifdef CONFIG_X86_32 +{ + int cpu; + int ok; + + cpu = get_cpu(); + ok = check_lazy_exec_limit(cpu, regs, error_code); + put_cpu(); + + if (ok) + return; + + if (print_fatal_signals) { + printk(KERN_ERR "#GPF(%ld[seg:%lx]) at %08lx, CPU#%d.\n", + error_code, error_code/8, regs->ip, smp_processor_id()); + printk(KERN_ERR "exec_limit: %08lx, user_cs: %08x/%08x.\n", + current->mm->context.exec_limit, + current->mm->context.user_cs.a, + current->mm->context.user_cs.b); + } +} +#endif /*CONFIG_X86_32*/ + tsk->thread.error_code = error_code; tsk->thread.trap_no = 13; @@ -801,19 +896,37 @@ } #ifdef CONFIG_X86_32 +/* + * The fixup code for errors in iret jumps to here (iret_exc). It loses + * the original trap number and erorr code. The bogus trap 32 and error + * code 0 are what the vanilla kernel delivers via: + * DO_ERROR_INFO(32, SIGSEGV, "iret exception", iret_error, ILL_BADSTK, 0, 1) + * + * NOTE: Because of the final "1" in the macro we need to enable interrupts. + * + * In case of a general protection fault in the iret instruction, we + * need to check for a lazy CS update for exec-shield. + */ dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code) { - siginfo_t info; + int ok; + int cpu; + local_irq_enable(); - info.si_signo = SIGILL; - info.si_errno = 0; - info.si_code = ILL_BADSTK; - info.si_addr = NULL; - if (notify_die(DIE_TRAP, "iret exception", - regs, error_code, 32, SIGILL) == NOTIFY_STOP) - return; - do_trap(32, SIGILL, "iret exception", regs, error_code, &info); + cpu = get_cpu(); + ok = check_lazy_exec_limit(cpu, regs, error_code); + put_cpu(); + + if (!ok && notify_die(DIE_TRAP, "iret exception", regs, + error_code, 32, SIGSEGV) != NOTIFY_STOP) { + siginfo_t info; + info.si_signo = SIGSEGV; + info.si_errno = 0; + info.si_code = ILL_BADSTK; + info.si_addr = 0; + do_trap(32, SIGSEGV, "iret exception", regs, error_code, &info); + } } #endif --- linux-2.6.35.orig/arch/x86/kernel/mpparse.c +++ linux-2.6.35/arch/x86/kernel/mpparse.c @@ -274,6 +274,18 @@ void __init default_smp_read_mpc_oem(struct mpc_table *mpc) { } +static void __init smp_register_lapic_address(unsigned long address) +{ + mp_lapic_addr = address; + + set_fixmap_nocache(FIX_APIC_BASE, address); + if (boot_cpu_physical_apicid == -1U) { + boot_cpu_physical_apicid = read_apic_id(); + apic_version[boot_cpu_physical_apicid] = + GET_APIC_VERSION(apic_read(APIC_LVR)); + } +} + static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early) { char str[16]; @@ -295,6 +307,10 @@ if (early) return 1; + /* Initialize the lapic mapping */ + if (!acpi_lapic) + smp_register_lapic_address(mpc->lapic); + if (mpc->oemptr) x86_init.mpparse.smp_read_mpc_oem(mpc); --- linux-2.6.35.orig/arch/x86/kernel/process.c +++ linux-2.6.35/arch/x86/kernel/process.c @@ -700,6 +700,16 @@ unsigned long arch_randomize_brk(struct mm_struct *mm) { unsigned long range_end = mm->brk + 0x02000000; - return randomize_range(mm->brk, range_end, 0) ? : mm->brk; + unsigned long bump = 0; +#ifdef CONFIG_X86_32 + /* in the case of NX emulation, shove the brk segment way out of the + way of the exec randomization area, since it can collide with + future allocations if not. */ + if ( (mm->get_unmapped_exec_area == arch_get_unmapped_exec_area) && + (mm->brk < 0x08000000) ) { + bump = (TASK_SIZE/6); + } +#endif + return bump + (randomize_range(mm->brk, range_end, 0) ? : mm->brk); } --- linux-2.6.35.orig/arch/x86/kernel/e820.c +++ linux-2.6.35/arch/x86/kernel/e820.c @@ -71,7 +71,7 @@ * Note: this function only works correct if the e820 table is sorted and * not-overlapping, which is the case */ -int __init e820_all_mapped(u64 start, u64 end, unsigned type) +int e820_all_mapped(u64 start, u64 end, unsigned type) { int i; @@ -98,6 +98,7 @@ } return 0; } +EXPORT_SYMBOL_GPL(e820_all_mapped); /* * Add a memory region to the kernel e820 map. --- linux-2.6.35.orig/arch/x86/kernel/early-quirks.c +++ linux-2.6.35/arch/x86/kernel/early-quirks.c @@ -18,7 +18,6 @@ #include #include #include -#include static void __init fix_hypertransport_config(int num, int slot, int func) { @@ -192,21 +191,6 @@ } #endif -/* - * Force the read back of the CMP register in hpet_next_event() - * to work around the problem that the CMP register write seems to be - * delayed. See hpet_next_event() for details. - * - * We do this on all SMBUS incarnations for now until we have more - * information about the affected chipsets. - */ -static void __init ati_hpet_bugs(int num, int slot, int func) -{ -#ifdef CONFIG_HPET_TIMER - hpet_readback_cmp = 1; -#endif -} - #define QFLAG_APPLY_ONCE 0x1 #define QFLAG_APPLIED 0x2 #define QFLAG_DONE (QFLAG_APPLY_ONCE|QFLAG_APPLIED) @@ -236,8 +220,6 @@ PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs }, { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS, PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs_contd }, - { PCI_VENDOR_ID_ATI, PCI_ANY_ID, - PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_hpet_bugs }, {} }; --- linux-2.6.35.orig/arch/x86/kernel/hpet.c +++ linux-2.6.35/arch/x86/kernel/hpet.c @@ -36,7 +36,6 @@ unsigned long hpet_address; u8 hpet_blockid; /* OS timer block num */ u8 hpet_msi_disable; -u8 hpet_readback_cmp; #ifdef CONFIG_PCI_MSI static unsigned long hpet_num_timers; @@ -396,23 +395,27 @@ * at that point and we would wait for the next hpet interrupt * forever. We found out that reading the CMP register back * forces the transfer so we can rely on the comparison with - * the counter register below. + * the counter register below. If the read back from the + * compare register does not match the value we programmed + * then we might have a real hardware problem. We can not do + * much about it here, but at least alert the user/admin with + * a prominent warning. * - * That works fine on those ATI chipsets, but on newer Intel - * chipsets (ICH9...) this triggers due to an erratum: Reading - * the comparator immediately following a write is returning - * the old value. + * An erratum on some chipsets (ICH9,..), results in + * comparator read immediately following a write returning old + * value. Workaround for this is to read this value second + * time, when first read returns old value. * - * We restrict the read back to the affected ATI chipsets (set - * by quirks) and also run it with hpet=verbose for debugging - * purposes. + * In fact the write to the comparator register is delayed up + * to two HPET cycles so the workaround we tried to restrict + * the readback to those known to be borked ATI chipsets + * failed miserably. So we give up on optimizations forever + * and penalize all HPET incarnations unconditionally. */ - if (hpet_readback_cmp || hpet_verbose) { - u32 cmp = hpet_readl(HPET_Tn_CMP(timer)); - - if (cmp != cnt) + if (unlikely((u32)hpet_readl(HPET_Tn_CMP(timer)) != cnt)) { + if (hpet_readl(HPET_Tn_CMP(timer)) != cnt) printk_once(KERN_WARNING - "hpet: compare register read back failed.\n"); + "hpet: compare register read back failed.\n"); } return (s32)(hpet_readl(HPET_COUNTER) - cnt) >= 0 ? -ETIME : 0; --- linux-2.6.35.orig/arch/x86/kernel/paravirt.c +++ linux-2.6.35/arch/x86/kernel/paravirt.c @@ -345,6 +345,9 @@ .read_tscp = native_read_tscp, .load_tr_desc = native_load_tr_desc, .set_ldt = native_set_ldt, +#ifdef CONFIG_X86_32 + .load_user_cs_desc = native_load_user_cs_desc, +#endif /*CONFIG_X86_32*/ .load_gdt = native_load_gdt, .load_idt = native_load_idt, .store_gdt = native_store_gdt, --- linux-2.6.35.orig/arch/x86/kernel/tsc.c +++ linux-2.6.35/arch/x86/kernel/tsc.c @@ -626,6 +626,44 @@ local_irq_restore(flags); } +static unsigned long long cyc2ns_suspend; + +void save_sched_clock_state(void) +{ + if (!sched_clock_stable) + return; + + cyc2ns_suspend = sched_clock(); +} + +/* + * Even on processors with invariant TSC, TSC gets reset in some the + * ACPI system sleep states. And in some systems BIOS seem to reinit TSC to + * arbitrary value (still sync'd across cpu's) during resume from such sleep + * states. To cope up with this, recompute the cyc2ns_offset for each cpu so + * that sched_clock() continues from the point where it was left off during + * suspend. + */ +void restore_sched_clock_state(void) +{ + unsigned long long offset; + unsigned long flags; + int cpu; + + if (!sched_clock_stable) + return; + + local_irq_save(flags); + + __get_cpu_var(cyc2ns_offset) = 0; + offset = cyc2ns_suspend - sched_clock(); + + for_each_possible_cpu(cpu) + per_cpu(cyc2ns_offset, cpu) = offset; + + local_irq_restore(flags); +} + #ifdef CONFIG_CPU_FREQ /* Frequency scaling support. Adjust the TSC based timer when the cpu frequency --- linux-2.6.35.orig/arch/x86/kernel/smpboot.c +++ linux-2.6.35/arch/x86/kernel/smpboot.c @@ -91,6 +91,25 @@ static DEFINE_PER_CPU(struct task_struct *, idle_thread_array); #define get_idle_for_cpu(x) (per_cpu(idle_thread_array, x)) #define set_idle_for_cpu(x, p) (per_cpu(idle_thread_array, x) = (p)) + +/* + * We need this for trampoline_base protection from concurrent accesses when + * off- and onlining cores wildly. + */ +static DEFINE_MUTEX(x86_cpu_hotplug_driver_mutex); + +void cpu_hotplug_driver_lock() +{ + mutex_lock(&x86_cpu_hotplug_driver_mutex); +} + +void cpu_hotplug_driver_unlock() +{ + mutex_unlock(&x86_cpu_hotplug_driver_mutex); +} + +ssize_t arch_cpu_probe(const char *buf, size_t count) { return -1; } +ssize_t arch_cpu_release(const char *buf, size_t count) { return -1; } #else static struct task_struct *idle_thread_array[NR_CPUS] __cpuinitdata ; #define get_idle_for_cpu(x) (idle_thread_array[(x)]) @@ -816,6 +835,13 @@ if (cpumask_test_cpu(cpu, cpu_callin_mask)) break; /* It has booted */ udelay(100); + /* + * Allow other tasks to run while we wait for the + * AP to come online. This also gives a chance + * for the MTRR work(triggered by the AP coming online) + * to be completed in the stop machine context. + */ + schedule(); } if (cpumask_test_cpu(cpu, cpu_callin_mask)) --- linux-2.6.35.orig/arch/x86/kernel/process_32.c +++ linux-2.6.35/arch/x86/kernel/process_32.c @@ -243,7 +243,10 @@ void start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp) { + int cpu; + set_user_gs(regs, 0); + regs->fs = 0; set_fs(USER_DS); regs->ds = __USER_DS; @@ -252,6 +255,11 @@ regs->cs = __USER_CS; regs->ip = new_ip; regs->sp = new_sp; + + cpu = get_cpu(); + load_user_cs_desc(cpu, current->mm); + put_cpu(); + /* * Free the old FP and other extended state */ @@ -311,6 +319,9 @@ if (preload_fpu) prefetch(next->fpu.state); + if (next_p->mm) + load_user_cs_desc(cpu, next_p->mm); + /* * Reload esp0. */ @@ -404,3 +415,40 @@ return 0; } +static void modify_cs(struct mm_struct *mm, unsigned long limit) +{ + mm->context.exec_limit = limit; + set_user_cs(&mm->context.user_cs, limit); + if (mm == current->mm) { + int cpu; + + cpu = get_cpu(); + load_user_cs_desc(cpu, mm); + put_cpu(); + } +} + +void arch_add_exec_range(struct mm_struct *mm, unsigned long limit) +{ + if (limit > mm->context.exec_limit) + modify_cs(mm, limit); +} + +void arch_remove_exec_range(struct mm_struct *mm, unsigned long old_end) +{ + struct vm_area_struct *vma; + unsigned long limit = PAGE_SIZE; + + if (old_end == mm->context.exec_limit) { + for (vma = mm->mmap; vma; vma = vma->vm_next) + if ((vma->vm_flags & VM_EXEC) && (vma->vm_end > limit)) + limit = vma->vm_end; + modify_cs(mm, limit); + } +} + +void arch_flush_exec_range(struct mm_struct *mm) +{ + mm->context.exec_limit = 0; + set_user_cs(&mm->context.user_cs, 0); +} --- linux-2.6.35.orig/arch/x86/kernel/cpu/perf_event_p4.c +++ linux-2.6.35/arch/x86/kernel/cpu/perf_event_p4.c @@ -457,6 +457,8 @@ event->hw.config |= event->attr.config & (p4_config_pack_escr(P4_ESCR_MASK_HT) | p4_config_pack_cccr(P4_CCCR_MASK_HT)); + + event->hw.config &= ~P4_CCCR_FORCE_OVF; } rc = x86_setup_perfctr(event); @@ -581,6 +583,7 @@ cpuc = &__get_cpu_var(cpu_hw_events); for (idx = 0; idx < x86_pmu.num_counters; idx++) { + int overflow; if (!test_bit(idx, cpuc->active_mask)) continue; @@ -591,12 +594,14 @@ WARN_ON_ONCE(hwc->idx != idx); /* it might be unflagged overflow */ - handled = p4_pmu_clear_cccr_ovf(hwc); + overflow = p4_pmu_clear_cccr_ovf(hwc); val = x86_perf_event_update(event); - if (!handled && (val & (1ULL << (x86_pmu.cntval_bits - 1)))) + if (!overflow && (val & (1ULL << (x86_pmu.cntval_bits - 1)))) continue; + handled += overflow; + /* event overflow for sure */ data.period = event->hw.last_period; @@ -612,7 +617,7 @@ inc_irq_stat(apic_perf_irqs); } - return handled; + return handled > 0; } /* --- linux-2.6.35.orig/arch/x86/kernel/cpu/addon_cpuid_features.c +++ linux-2.6.35/arch/x86/kernel/cpu/addon_cpuid_features.c @@ -30,8 +30,11 @@ const struct cpuid_bit *cb; static const struct cpuid_bit __cpuinitconst cpuid_bits[] = { + { X86_FEATURE_DTS, CR_EAX, 0, 0x00000006 }, { X86_FEATURE_IDA, CR_EAX, 1, 0x00000006 }, { X86_FEATURE_ARAT, CR_EAX, 2, 0x00000006 }, + { X86_FEATURE_PLN, CR_EAX, 4, 0x00000006 }, + { X86_FEATURE_PTS, CR_EAX, 6, 0x00000006 }, { X86_FEATURE_APERFMPERF, CR_ECX, 0, 0x00000006 }, { X86_FEATURE_CPB, CR_EDX, 9, 0x80000007 }, { X86_FEATURE_NPT, CR_EDX, 0, 0x8000000a }, --- linux-2.6.35.orig/arch/x86/kernel/cpu/common.c +++ linux-2.6.35/arch/x86/kernel/cpu/common.c @@ -802,6 +802,22 @@ /* Filter out anything that depends on CPUID levels we don't have */ filter_cpuid_features(c, true); +#ifdef CONFIG_X86_32 + /* + * emulation of NX with segment limits unfortunately means + * we have to disable the fast system calls, due to the way that + * sysexit clears the segment limits on return. + * If we have either disabled exec-shield on the boot command line, + * or we have NX, then we don't need to do this. + */ + if (exec_shield != 0) { +#ifdef CONFIG_X86_PAE + if (!test_cpu_cap(c, X86_FEATURE_NX)) +#endif + clear_cpu_cap(c, X86_FEATURE_SEP); + } +#endif /* CONFIG_X86_32 */ + /* If the model name is still unset, do table lookup. */ if (!c->x86_model_id[0]) { const char *p; --- linux-2.6.35.orig/arch/x86/kernel/cpu/perf_event_intel.c +++ linux-2.6.35/arch/x86/kernel/cpu/perf_event_intel.c @@ -491,33 +491,78 @@ * Intel Errata AAP53 (model 30) * Intel Errata BD53 (model 44) * - * These chips need to be 'reset' when adding counters by programming - * the magic three (non counting) events 0x4300D2, 0x4300B1 and 0x4300B5 - * either in sequence on the same PMC or on different PMCs. + * The official story: + * These chips need to be 'reset' when adding counters by programming the + * magic three (non-counting) events 0x4300B5, 0x4300D2, and 0x4300B1 either + * in sequence on the same PMC or on different PMCs. + * + * In practise it appears some of these events do in fact count, and + * we need to programm all 4 events. */ -static void intel_pmu_nhm_enable_all(int added) +static void intel_pmu_nhm_workaround(void) { - if (added) { - struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); - int i; - - wrmsrl(MSR_ARCH_PERFMON_EVENTSEL0 + 0, 0x4300D2); - wrmsrl(MSR_ARCH_PERFMON_EVENTSEL0 + 1, 0x4300B1); - wrmsrl(MSR_ARCH_PERFMON_EVENTSEL0 + 2, 0x4300B5); + struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); + static const unsigned long nhm_magic[4] = { + 0x4300B5, + 0x4300D2, + 0x4300B1, + 0x4300B1 + }; + struct perf_event *event; + int i; + + /* + * The Errata requires below steps: + * 1) Clear MSR_IA32_PEBS_ENABLE and MSR_CORE_PERF_GLOBAL_CTRL; + * 2) Configure 4 PERFEVTSELx with the magic events and clear + * the corresponding PMCx; + * 3) set bit0~bit3 of MSR_CORE_PERF_GLOBAL_CTRL; + * 4) Clear MSR_CORE_PERF_GLOBAL_CTRL; + * 5) Clear 4 pairs of ERFEVTSELx and PMCx; + */ + + /* + * The real steps we choose are a little different from above. + * A) To reduce MSR operations, we don't run step 1) as they + * are already cleared before this function is called; + * B) Call x86_perf_event_update to save PMCx before configuring + * PERFEVTSELx with magic number; + * C) With step 5), we do clear only when the PERFEVTSELx is + * not used currently. + * D) Call x86_perf_event_set_period to restore PMCx; + */ - wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, 0x3); - wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, 0x0); + /* We always operate 4 pairs of PERF Counters */ + for (i = 0; i < 4; i++) { + event = cpuc->events[i]; + if (event) + x86_perf_event_update(event); + } + + for (i = 0; i < 4; i++) { + wrmsrl(MSR_ARCH_PERFMON_EVENTSEL0 + i, nhm_magic[i]); + wrmsrl(MSR_ARCH_PERFMON_PERFCTR0 + i, 0x0); + } - for (i = 0; i < 3; i++) { - struct perf_event *event = cpuc->events[i]; + wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, 0xf); + wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, 0x0); - if (!event) - continue; + for (i = 0; i < 4; i++) { + event = cpuc->events[i]; + if (event) { + x86_perf_event_set_period(event); __x86_pmu_enable_event(&event->hw, - ARCH_PERFMON_EVENTSEL_ENABLE); - } + ARCH_PERFMON_EVENTSEL_ENABLE); + } else + wrmsrl(MSR_ARCH_PERFMON_EVENTSEL0 + i, 0x0); } +} + +static void intel_pmu_nhm_enable_all(int added) +{ + if (added) + intel_pmu_nhm_workaround(); intel_pmu_enable_all(added); } --- linux-2.6.35.orig/arch/x86/kernel/cpu/vmware.c +++ linux-2.6.35/arch/x86/kernel/cpu/vmware.c @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -51,7 +52,7 @@ static unsigned long vmware_get_tsc_khz(void) { - uint64_t tsc_hz; + uint64_t tsc_hz, lpj; uint32_t eax, ebx, ecx, edx; VMWARE_PORT(GETHZ, eax, ebx, ecx, edx); @@ -62,6 +63,13 @@ printk(KERN_INFO "TSC freq read from hypervisor : %lu.%03lu MHz\n", (unsigned long) tsc_hz / 1000, (unsigned long) tsc_hz % 1000); + + if (!preset_lpj) { + lpj = ((u64)tsc_hz * 1000); + do_div(lpj, HZ); + preset_lpj = lpj; + } + return tsc_hz; } --- linux-2.6.35.orig/arch/x86/kernel/cpu/mcheck/mce-xeon75xx.c +++ linux-2.6.35/arch/x86/kernel/cpu/mcheck/mce-xeon75xx.c @@ -0,0 +1,427 @@ +/* + * Xeon 7500 series specific machine check support code. + * Copyright 2009, 2010 Intel Corporation + * Author: Andi Kleen + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; version 2 + * of the License. + * + * Implement Xeon 7500 series specific code to retrieve the physical address + * and DIMM information for corrected memory errors. + * + * Interface: mce->aux0/aux1 is mapped to a struct pfa_dimm with pad + * redefined to DIMM valid bits. Consumers check CPUID and bank and + * then interpret aux0/aux1 + */ + +/* #define DEBUG 1 */ /* disable for production */ +#define pr_fmt(x) "MCE: " x + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "mce-internal.h" + +#define PFA_SIG "$PFA" +#define PFA_SIG_LEN 4 + +/* DIMM description */ +struct aux_pfa_dimm { + u8 fbd_channel_id; + u8 ddr_channel_id; + u8 ddr_dimm_id; + u8 ddr_rank_id; + u8 ddr_dimm_bank_id; + u8 ddr_dimm_row_id; + u8 ddr_dimm_column_id; + u8 valid; +} __attribute__((packed)); + +struct pfa_dimm { + u8 fbd_channel_id; + u8 ddr_channel_id; + u8 ddr_dimm_id; + u8 ddr_rank_id; + u8 ddr_dimm_bank_id; + u32 ddr_dimm_row_id; + u32 ddr_dimm_column_id; +} __attribute__((packed)); + +/* Memory translation table in memory. */ +struct pfa_table { + u8 sig[PFA_SIG_LEN]; /* Signature: '$PFA' */ + u16 len; /* total length */ + u16 revision; /* 0x11 */ + u8 checksum; /* 8bit sum to zero */ + u8 db_value; /* mailbox port command value */ + u8 db_port; /* mailbox port */ + /* end of header; end of checksum */ + u8 command; /* input command */ + u32 valid; /* valid input/output bits */ + u16 status; /* output status */ + u8 socket_id; /* input socket id*/ + u8 bank_id; /* input MCE bank id */ + u32 pad1; + u64 mbox_address; + u64 physical_addr; /* physical address */ + struct pfa_dimm dimm[2]; + /* + * topology information follows: not used for now. + */ +} __attribute__((packed)); + +/* DIMM valid bits in valid: DIMM0: 8..12; DIMM1 16..20 */ +#define DIMM_VALID_BITS(val, num) (((val) >> (4 + (num) * 8)) & DIMM_VALID_ALL) +#define DIMM_SET_VALID(val, num) ((val) << (4 + (num) * 8)) + +enum { + MCE_BANK_MBOX0 = 8, + MCE_BANK_MBOX1 = 9, + + PFA_REVISION = 0x11, /* v1.1 */ + + /* Status bits for valid field */ + PFA_VALID_MA = (1 << 0), + PFA_VALID_SOCKETID = (1 << 1), + PFA_VALID_BANKID = (1 << 2), + PFA_VALID_PA = (1 << 3), + + /* DIMM valid bits in valid */ + /* use with DIMM_VALID_BITS/DIMM_SET_VALID for pfa->valid */ + DIMM_VALID_FBD_CHAN = (1 << 0), + DIMM_VALID_DDR_CHAN = (1 << 1), + DIMM_VALID_DDR_DIMM = (1 << 2), + DIMM_VALID_DDR_RANK = (1 << 3), + DIMM_VALID_DIMM_BANK = (1 << 4), + DIMM_VALID_DIMM_ROW = (1 << 5), + DIMM_VALID_DIMM_COLUMN = (1 << 6), + DIMM_VALID_ALL = 0x7f, + + PFA_DIMM_VALID_MASK = DIMM_SET_VALID(DIMM_VALID_ALL, 0) + | DIMM_SET_VALID(DIMM_VALID_ALL, 1), + + /* Values for status field */ + PFA_STATUS_SUCCESS = 0, + PFA_STATUS_SOCKET_INVALID = (1 << 1), + PFA_STATUS_MBOX_INVALID = (1 << 2), + PFA_STATUS_MA_INVALID = (1 << 3), + PFA_STATUS_PA_INVALID = (1 << 4), + + /* Values for command field */ + PFA_CMD_GET_MEM_CORR_ERR_PA = 0, + PFA_CMD_PA_TO_DIMM_ADDR = 1, + PFA_CMD_DIMM_TO_PA = 2, + PFA_CMD_GET_TOPOLOGY = 3, + + /* PCI device IDs and the base register */ + ICH_PFA_CFG = 0x8c, /* SCRATCH4 */ + PCI_DEVICE_ID_BXB_ICH_LEGACY0 = 0x3422, +}; + +static struct pfa_table *pfa_table __read_mostly; +static int memerr_max_conv_rate __read_mostly = 100; +static int memerr_min_interval __read_mostly = 500; +static int pfa_lost; /* for diagnosis */ + +enum { + RATE_LIMIT_PERIOD = USEC_PER_SEC, /* in us; period of rate limit */ +}; + +module_param(memerr_max_conv_rate, int, 0644); +MODULE_PARM_DESC(memerr_max_conv_rate, + "Maximum number of memory error conversions each second; 0 to disable"); +module_param(memerr_min_interval, int, 0644); +MODULE_PARM_DESC(memerr_min_interval, + "Minimum time delta between two memory conversions; in us; default 500"); + +static int notest; +static int nocsum; +module_param(notest, int, 0); +module_param(nocsum, int, 0); + +static u64 encode_dimm(struct pfa_dimm *d, u8 valid) +{ + union { + struct aux_pfa_dimm d; + u64 v; + } p; + + BUILD_BUG_ON(sizeof(struct aux_pfa_dimm) != sizeof(u64)); + p.d.fbd_channel_id = d->fbd_channel_id; + p.d.ddr_channel_id = d->ddr_channel_id; + p.d.ddr_dimm_id = d->ddr_dimm_id; + p.d.ddr_rank_id = d->ddr_rank_id; + p.d.ddr_dimm_bank_id = d->ddr_dimm_bank_id; + p.d.ddr_dimm_row_id = d->ddr_dimm_row_id; + if (p.d.ddr_dimm_row_id != d->ddr_dimm_row_id) /* truncated? */ + valid &= ~DIMM_VALID_DIMM_ROW; + p.d.ddr_dimm_column_id = d->ddr_dimm_column_id; + if (p.d.ddr_dimm_column_id != d->ddr_dimm_column_id) + valid &= ~DIMM_VALID_DIMM_COLUMN; + p.d.valid = valid; + pr_debug("PFA fbd_ch %u ddr_ch %u dimm %u rank %u bank %u valid %x\n", + d->fbd_channel_id, + d->ddr_channel_id, + d->ddr_dimm_id, + d->ddr_rank_id, + d->ddr_dimm_bank_id, + valid); + return p.v; +} + +static u8 csum(u8 *table, u16 len) +{ + u8 sum = 0; + int i; + for (i = 0; i < len; i++) + sum += *table++; + return sum; +} + +/* + * Execute a command through the mailbox interface. + */ +static int +pfa_command(unsigned bank, unsigned socketid, unsigned command, unsigned valid) +{ + pfa_table->bank_id = bank; + pfa_table->socket_id = socketid; + pfa_table->valid = valid | PFA_VALID_SOCKETID; + pfa_table->command = command; + + outb(pfa_table->db_value, pfa_table->db_port); + + mb(); /* Reread fields after they got changed */ + + if (pfa_table->status != PFA_STATUS_SUCCESS) { + pr_debug("Memory PFA command %d failed: socket:%d bank:%d status:%x\n", + command, socketid, bank, pfa_table->status); + return -pfa_table->status; + } + return 0; +} + +/* + * Retrieve physical address and DIMMs. + */ +static int translate_memory_error(struct mce *m) +{ + struct pfa_table *pfa = pfa_table; + u64 status; + int ret; + u32 valid; + int cpu = smp_processor_id(); + + /* Make sure our structures match the specification */ + BUILD_BUG_ON(offsetof(struct pfa_table, physical_addr) != 0x20); + BUILD_BUG_ON(offsetof(struct pfa_table, status) != 0x10); + BUILD_BUG_ON(offsetof(struct pfa_table, physical_addr) != 0x20); + BUILD_BUG_ON(offsetof(struct pfa_table, dimm[1].ddr_dimm_column_id) != + 0x3e); + + /* Ask for PA/DIMMs of last error */ + if (pfa_command(m->bank, m->socketid, + PFA_CMD_GET_MEM_CORR_ERR_PA, PFA_VALID_BANKID) < 0) + return -1; + + /* + * Recheck machine check bank. If the overflow bit was set + * there was a race. Don't use the information in this case. + */ + rdmsrl(MSR_IA32_MCx_STATUS(m->bank), status); + if (status & MCI_STATUS_OVER) { + pr_debug("%d: overflow race on bank %d\n", cpu, m->bank); + return -1; + } + + ret = -1; + valid = pfa->valid; + if (valid & PFA_VALID_PA) { + m->status |= MCI_STATUS_ADDRV; + m->addr = pfa_table->physical_addr; + pr_debug("%d: got physical address %llx valid %x\n", + cpu, m->addr, valid); + ret = 0; + } + + /* When DIMM information was supplied pass it out */ + if (valid & PFA_DIMM_VALID_MASK) { + m->aux0 = encode_dimm(&pfa->dimm[0], DIMM_VALID_BITS(valid, 0)); + m->aux1 = encode_dimm(&pfa->dimm[1], DIMM_VALID_BITS(valid, 1)); + ret = 0; + } + + return ret; +} + +/* + * Xeon 75xx specific mce poll method to retrieve the physical address + * and DIMM information. + */ +static void xeon75xx_mce_poll(struct mce *m) +{ + static DEFINE_SPINLOCK(convert_lock); /* Protect table and static */ + static unsigned long cperm; + static ktime_t last, last_int; + unsigned long flags; + ktime_t now; + s64 delta; + + /* Memory error? */ + if (m->bank != MCE_BANK_MBOX0 && m->bank != MCE_BANK_MBOX1) + return; + if (m->status & MCI_STATUS_OVER) + return; + if (memerr_max_conv_rate == 0) + return; + + spin_lock_irqsave(&convert_lock, flags); + /* + * Rate limit conversions. The conversion takes some time, + * but it's not good to use all the CPU time during a error + * flood. + * Enforce maximum number per second and minimum interval. + * The ktime call should use TSC on this machine and be fast. + */ + now = ktime_get(); + delta = ktime_us_delta(now, last); + if (delta >= RATE_LIMIT_PERIOD) { + cperm = 0; + last = now; + } + if (ktime_us_delta(now, last_int) >= memerr_min_interval && + ++cperm <= memerr_max_conv_rate) { + if (translate_memory_error(m) < 0) { + /* On error stop converting for the next second */ + cperm = memerr_max_conv_rate; + pr_debug("PFA translation failed\n"); + } + } else + pfa_lost++; + last_int = now; + spin_unlock_irqrestore(&convert_lock, flags); +} + +static struct pci_device_id bxb_mce_pciids[] = { + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_BXB_ICH_LEGACY0) }, + {} +}; + +static int __init xeon75xx_mce_init(void) +{ + u32 addr = 0; + struct pci_dev *dev; + + if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL || + boot_cpu_data.x86 != 6 || + boot_cpu_data.x86_model != 0x2e) + return -ENODEV; + + /* + * Get table address from register in IOH. + * This just looks up the device, because we don't want to "own" it. + */ + dev = NULL; + while ((dev = pci_get_device(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, dev)) + != NULL) { + if (!pci_match_id(bxb_mce_pciids, dev)) + continue; + pci_read_config_dword(dev, ICH_PFA_CFG, &addr); + if (addr) + break; + } + pci_dev_put(dev); + if (!addr) + return -ENODEV; + + if (!e820_all_mapped(addr, addr + PAGE_SIZE, E820_RESERVED)) { + pr_info("PFA table at %x not e820 reserved\n", addr); + return -ENODEV; + } + + pfa_table = (__force struct pfa_table *)ioremap_cache(addr, PAGE_SIZE); + if (!pfa_table) { + pr_err("Cannot map PFA table at %x\n", addr); + return -EIO; + } + + if (memcmp(&pfa_table->sig, PFA_SIG, PFA_SIG_LEN) || + pfa_table->len < sizeof(struct pfa_table) || + /* assume newer versions are compatible */ + pfa_table->revision < PFA_REVISION) { + pr_info("PFA table at %x invalid\n", addr); + goto error_unmap; + } + + if (!nocsum && csum((u8 *)pfa_table, + offsetof(struct pfa_table, command))) { + pr_info("PFA table at %x length %u has invalid checksum\n", + addr, pfa_table->len); + goto error_unmap; + } + + /* Not strictly needed today */ + if (pfa_table->len > PAGE_SIZE) { + unsigned len = roundup(pfa_table->len, PAGE_SIZE); + iounmap(pfa_table); + pfa_table = (__force void *)ioremap_cache(addr, len); + if (!pfa_table) { + pr_err("Cannot remap %u bytes PFA table at %x\n", + len, addr); + return -EIO; + } + } + + if (!notest) { + int status = pfa_command(0, 0, PFA_CMD_GET_TOPOLOGY, 0); + if (status < 0) { + pr_err("Test of PFA table failed: %x\n", -status); + goto error_unmap; + } + } + + pr_info("Found Xeon75xx PFA memory error translation table at %x\n", + addr); + mb(); + mce_cpu_specific_poll = xeon75xx_mce_poll; + return 0; + +error_unmap: + iounmap(pfa_table); + return -ENODEV; +} + +MODULE_DEVICE_TABLE(pci, bxb_mce_pciids); +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Andi Kleen"); +MODULE_DESCRIPTION("Intel Xeon 75xx specific DIMM error reporting"); + +#ifdef CONFIG_MODULE +static void __exit xeon75xx_mce_exit(void) +{ + mce_cpu_specific_poll = NULL; + wmb(); + /* Wait for all machine checks to finish before really unloading */ + synchronize_rcu(); + iounmap(pfa_table); +} + +module_init(xeon75xx_mce_init); +module_exit(xeon75xx_mce_exit); +#else +/* When built-in run as soon as the PCI subsystem is up */ +fs_initcall(xeon75xx_mce_init); +#endif --- linux-2.6.35.orig/arch/x86/kernel/cpu/mcheck/therm_throt.c +++ linux-2.6.35/arch/x86/kernel/cpu/mcheck/therm_throt.c @@ -34,15 +34,25 @@ /* How long to wait between reporting thermal events */ #define CHECK_INTERVAL (300 * HZ) +#define THERMAL_THROTTLING_EVENT 0 +#define POWER_LIMIT_EVENT 1 + /* - * Current thermal throttling state: + * Current thermal event state: */ -struct thermal_state { - bool is_throttled; - +struct _thermal_state { + bool new_event; + int event; u64 next_check; - unsigned long throttle_count; - unsigned long last_throttle_count; + unsigned long count; + unsigned long last_count; +}; + +struct thermal_state { + struct _thermal_state core_throttle; + struct _thermal_state core_power_limit; + struct _thermal_state package_throttle; + struct _thermal_state package_power_limit; }; static DEFINE_PER_CPU(struct thermal_state, thermal_state); @@ -53,11 +63,13 @@ #ifdef CONFIG_SYSFS #define define_therm_throt_sysdev_one_ro(_name) \ - static SYSDEV_ATTR(_name, 0444, therm_throt_sysdev_show_##_name, NULL) + static SYSDEV_ATTR(_name, 0444, \ + therm_throt_sysdev_show_##_name, \ + NULL) \ -#define define_therm_throt_sysdev_show_func(name) \ +#define define_therm_throt_sysdev_show_func(event, name) \ \ -static ssize_t therm_throt_sysdev_show_##name( \ +static ssize_t therm_throt_sysdev_show_##event##_##name( \ struct sys_device *dev, \ struct sysdev_attribute *attr, \ char *buf) \ @@ -66,30 +78,42 @@ ssize_t ret; \ \ preempt_disable(); /* CPU hotplug */ \ - if (cpu_online(cpu)) \ + if (cpu_online(cpu)) { \ ret = sprintf(buf, "%lu\n", \ - per_cpu(thermal_state, cpu).name); \ - else \ + per_cpu(thermal_state, cpu).event.name); \ + } else \ ret = 0; \ preempt_enable(); \ \ return ret; \ } -define_therm_throt_sysdev_show_func(throttle_count); -define_therm_throt_sysdev_one_ro(throttle_count); +define_therm_throt_sysdev_show_func(core_throttle, count); +define_therm_throt_sysdev_one_ro(core_throttle_count); + +define_therm_throt_sysdev_show_func(core_power_limit, count); +define_therm_throt_sysdev_one_ro(core_power_limit_count); + +define_therm_throt_sysdev_show_func(package_throttle, count); +define_therm_throt_sysdev_one_ro(package_throttle_count); + +define_therm_throt_sysdev_show_func(package_power_limit, count); +define_therm_throt_sysdev_one_ro(package_power_limit_count); static struct attribute *thermal_throttle_attrs[] = { - &attr_throttle_count.attr, + &attr_core_throttle_count.attr, NULL }; -static struct attribute_group thermal_throttle_attr_group = { +static struct attribute_group thermal_attr_group = { .attrs = thermal_throttle_attrs, .name = "thermal_throttle" }; #endif /* CONFIG_SYSFS */ +#define CORE_LEVEL 0 +#define PACKAGE_LEVEL 1 + /*** * therm_throt_process - Process thermal throttling event from interrupt * @curr: Whether the condition is current or not (boolean), since the @@ -106,39 +130,70 @@ * 1 : Event should be logged further, and a message has been * printed to the syslog. */ -static int therm_throt_process(bool is_throttled) +static int therm_throt_process(bool new_event, int event, int level) { - struct thermal_state *state; - unsigned int this_cpu; - bool was_throttled; + struct _thermal_state *state; + unsigned int this_cpu = smp_processor_id(); + bool old_event; u64 now; + struct thermal_state *pstate = &per_cpu(thermal_state, this_cpu); - this_cpu = smp_processor_id(); now = get_jiffies_64(); - state = &per_cpu(thermal_state, this_cpu); + if (level == CORE_LEVEL) { + if (event == THERMAL_THROTTLING_EVENT) + state = &pstate->core_throttle; + else if (event == POWER_LIMIT_EVENT) + state = &pstate->core_power_limit; + else + return 0; + } else if (level == PACKAGE_LEVEL) { + if (event == THERMAL_THROTTLING_EVENT) + state = &pstate->package_throttle; + else if (event == POWER_LIMIT_EVENT) + state = &pstate->package_power_limit; + else + return 0; + } else + return 0; - was_throttled = state->is_throttled; - state->is_throttled = is_throttled; + old_event = state->new_event; + state->new_event = new_event; - if (is_throttled) - state->throttle_count++; + if (new_event) + state->count++; if (time_before64(now, state->next_check) && - state->throttle_count != state->last_throttle_count) + state->count != state->last_count) return 0; state->next_check = now + CHECK_INTERVAL; - state->last_throttle_count = state->throttle_count; + state->last_count = state->count; /* if we just entered the thermal event */ - if (is_throttled) { - printk(KERN_CRIT "CPU%d: Temperature above threshold, cpu clock throttled (total events = %lu)\n", this_cpu, state->throttle_count); + if (new_event) { + if (event == THERMAL_THROTTLING_EVENT) + printk(KERN_CRIT "CPU%d: %s temperature above threshold, cpu clock throttled (total events = %lu)\n", + this_cpu, + level == CORE_LEVEL ? "Core" : "Package", + state->count); + else + printk(KERN_CRIT "CPU%d: %s power limit notification (total events = %lu)\n", + this_cpu, + level == CORE_LEVEL ? "Core" : "Package", + state->count); add_taint(TAINT_MACHINE_CHECK); return 1; } - if (was_throttled) { - printk(KERN_INFO "CPU%d: Temperature/speed normal\n", this_cpu); + if (old_event) { + if (event == THERMAL_THROTTLING_EVENT) + printk(KERN_INFO "CPU%d: %s temperature/speed normal\n", + this_cpu, + level == CORE_LEVEL ? "Core" : "Package"); + else + printk(KERN_INFO "CPU%d: %s power limit normal\n", + this_cpu, + level == CORE_LEVEL ? "Core" : "Package"); return 1; } @@ -147,15 +202,35 @@ #ifdef CONFIG_SYSFS /* Add/Remove thermal_throttle interface for CPU device: */ -static __cpuinit int thermal_throttle_add_dev(struct sys_device *sys_dev) +static __cpuinit int thermal_throttle_add_dev(struct sys_device *sys_dev, + unsigned int cpu) { - return sysfs_create_group(&sys_dev->kobj, - &thermal_throttle_attr_group); + int err; + struct cpuinfo_x86 *c = &cpu_data(cpu); + + err = sysfs_create_group(&sys_dev->kobj, &thermal_attr_group); + if (err) + return err; + + if (cpu_has(c, X86_FEATURE_PLN)) + err = sysfs_add_file_to_group(&sys_dev->kobj, + &attr_core_power_limit_count.attr, + thermal_attr_group.name); + if (cpu_has(c, X86_FEATURE_PTS)) + err = sysfs_add_file_to_group(&sys_dev->kobj, + &attr_package_throttle_count.attr, + thermal_attr_group.name); + if (cpu_has(c, X86_FEATURE_PLN)) + err = sysfs_add_file_to_group(&sys_dev->kobj, + &attr_package_power_limit_count.attr, + thermal_attr_group.name); + + return err; } static __cpuinit void thermal_throttle_remove_dev(struct sys_device *sys_dev) { - sysfs_remove_group(&sys_dev->kobj, &thermal_throttle_attr_group); + sysfs_remove_group(&sys_dev->kobj, &thermal_attr_group); } /* Mutex protecting device creation against CPU hotplug: */ @@ -177,7 +252,7 @@ case CPU_UP_PREPARE: case CPU_UP_PREPARE_FROZEN: mutex_lock(&therm_cpu_lock); - err = thermal_throttle_add_dev(sys_dev); + err = thermal_throttle_add_dev(sys_dev, cpu); mutex_unlock(&therm_cpu_lock); WARN_ON(err); break; @@ -213,7 +288,7 @@ #endif /* connect live CPUs to sysfs */ for_each_online_cpu(cpu) { - err = thermal_throttle_add_dev(get_cpu_sysdev(cpu)); + err = thermal_throttle_add_dev(get_cpu_sysdev(cpu), cpu); WARN_ON(err); } #ifdef CONFIG_HOTPLUG_CPU @@ -226,14 +301,50 @@ #endif /* CONFIG_SYSFS */ +/* + * Set up the most two significant bit to notify mce log that this thermal + * event type. + * This is a temp solution. May be changed in the future with mce log + * infrasture. + */ +#define CORE_THROTTLED (0) +#define CORE_POWER_LIMIT ((__u64)1 << 62) +#define PACKAGE_THROTTLED ((__u64)2 << 62) +#define PACKAGE_POWER_LIMIT ((__u64)3 << 62) + /* Thermal transition interrupt handler */ static void intel_thermal_interrupt(void) { __u64 msr_val; + struct cpuinfo_x86 *c = &cpu_data(smp_processor_id()); rdmsrl(MSR_IA32_THERM_STATUS, msr_val); - if (therm_throt_process((msr_val & THERM_STATUS_PROCHOT) != 0)) - mce_log_therm_throt_event(msr_val); + + if (therm_throt_process(msr_val & THERM_STATUS_PROCHOT, + THERMAL_THROTTLING_EVENT, + CORE_LEVEL) != 0) + mce_log_therm_throt_event(CORE_THROTTLED | msr_val); + + if (cpu_has(c, X86_FEATURE_PLN)) + if (therm_throt_process(msr_val & THERM_STATUS_POWER_LIMIT, + POWER_LIMIT_EVENT, + CORE_LEVEL) != 0) + mce_log_therm_throt_event(CORE_POWER_LIMIT | msr_val); + + if (cpu_has(c, X86_FEATURE_PTS)) { + rdmsrl(MSR_IA32_PACKAGE_THERM_STATUS, msr_val); + if (therm_throt_process(msr_val & PACKAGE_THERM_STATUS_PROCHOT, + THERMAL_THROTTLING_EVENT, + PACKAGE_LEVEL) != 0) + mce_log_therm_throt_event(PACKAGE_THROTTLED | msr_val); + if (cpu_has(c, X86_FEATURE_PLN)) + if (therm_throt_process(msr_val & + PACKAGE_THERM_STATUS_POWER_LIMIT, + POWER_LIMIT_EVENT, + PACKAGE_LEVEL) != 0) + mce_log_therm_throt_event(PACKAGE_POWER_LIMIT + | msr_val); + } } static void unexpected_thermal_interrupt(void) @@ -335,8 +446,26 @@ apic_write(APIC_LVTTHMR, h); rdmsr(MSR_IA32_THERM_INTERRUPT, l, h); - wrmsr(MSR_IA32_THERM_INTERRUPT, - l | (THERM_INT_LOW_ENABLE | THERM_INT_HIGH_ENABLE), h); + if (cpu_has(c, X86_FEATURE_PLN)) + wrmsr(MSR_IA32_THERM_INTERRUPT, + l | (THERM_INT_LOW_ENABLE + | THERM_INT_HIGH_ENABLE | THERM_INT_PLN_ENABLE), h); + else + wrmsr(MSR_IA32_THERM_INTERRUPT, + l | (THERM_INT_LOW_ENABLE | THERM_INT_HIGH_ENABLE), h); + + if (cpu_has(c, X86_FEATURE_PTS)) { + rdmsr(MSR_IA32_PACKAGE_THERM_INTERRUPT, l, h); + if (cpu_has(c, X86_FEATURE_PLN)) + wrmsr(MSR_IA32_PACKAGE_THERM_INTERRUPT, + l | (PACKAGE_THERM_INT_LOW_ENABLE + | PACKAGE_THERM_INT_HIGH_ENABLE + | PACKAGE_THERM_INT_PLN_ENABLE), h); + else + wrmsr(MSR_IA32_PACKAGE_THERM_INTERRUPT, + l | (PACKAGE_THERM_INT_LOW_ENABLE + | PACKAGE_THERM_INT_HIGH_ENABLE), h); + } smp_thermal_vector = intel_thermal_interrupt; --- linux-2.6.35.orig/arch/x86/kernel/cpu/mcheck/mce-internal.h +++ linux-2.6.35/arch/x86/kernel/cpu/mcheck/mce-internal.h @@ -28,6 +28,8 @@ extern struct mce_bank *mce_banks; +extern void (*mce_cpu_specific_poll)(struct mce *); + #ifdef CONFIG_ACPI_APEI int apei_write_mce(struct mce *m); ssize_t apei_read_mce(struct mce *m, u64 *record_id); --- linux-2.6.35.orig/arch/x86/kernel/cpu/mcheck/Makefile +++ linux-2.6.35/arch/x86/kernel/cpu/mcheck/Makefile @@ -2,6 +2,7 @@ obj-$(CONFIG_X86_ANCIENT_MCE) += winchip.o p5.o obj-$(CONFIG_X86_MCE_INTEL) += mce_intel.o +obj-$(CONFIG_X86_MCE_XEON75XX) += mce-xeon75xx.o obj-$(CONFIG_X86_MCE_AMD) += mce_amd.o obj-$(CONFIG_X86_MCE_THRESHOLD) += threshold.o obj-$(CONFIG_X86_MCE_INJECT) += mce-inject.o --- linux-2.6.35.orig/arch/x86/kernel/cpu/mcheck/mce.c +++ linux-2.6.35/arch/x86/kernel/cpu/mcheck/mce.c @@ -118,6 +118,9 @@ .priority = -1, }; +void (*mce_cpu_specific_poll)(struct mce *); +EXPORT_SYMBOL_GPL(mce_cpu_specific_poll); + /* MCA banks polled by the period polling timer for corrected events */ DEFINE_PER_CPU(mce_banks_t, mce_poll_banks) = { [0 ... BITS_TO_LONGS(MAX_NR_BANKS)-1] = ~0UL @@ -391,6 +394,11 @@ wrmsrl(msr, v); } +static int under_injection(void) +{ + return __get_cpu_var(injectm).finished; +} + /* * Simple lockless ring to communicate PFNs from the exception handler with the * process context work function. This is vastly simplified because there's @@ -594,6 +602,10 @@ if (!(flags & MCP_TIMESTAMP)) m.tsc = 0; + + if (mce_cpu_specific_poll && !under_injection() && !mce_dont_log_ce) + mce_cpu_specific_poll(&m); + /* * Don't get the IP here because it's unlikely to * have anything to do with the actual error location. --- linux-2.6.35.orig/arch/x86/kernel/cpu/mtrr/main.c +++ linux-2.6.35/arch/x86/kernel/cpu/mtrr/main.c @@ -35,6 +35,7 @@ #include /* FIXME: kvm_para.h needs this */ +#include #include #include #include @@ -143,22 +144,28 @@ mtrr_type smp_type; }; +static DEFINE_PER_CPU(struct cpu_stop_work, mtrr_work); + /** - * ipi_handler - Synchronisation handler. Executed by "other" CPUs. + * mtrr_work_handler - Synchronisation handler. Executed by "other" CPUs. * @info: pointer to mtrr configuration data * * Returns nothing. */ -static void ipi_handler(void *info) +static int mtrr_work_handler(void *info) { #ifdef CONFIG_SMP struct set_mtrr_data *data = info; unsigned long flags; + atomic_dec(&data->count); + while (!atomic_read(&data->gate)) + cpu_relax(); + local_irq_save(flags); atomic_dec(&data->count); - while (!atomic_read(&data->gate)) + while (atomic_read(&data->gate)) cpu_relax(); /* The master has cleared me to execute */ @@ -173,12 +180,13 @@ } atomic_dec(&data->count); - while (atomic_read(&data->gate)) + while (!atomic_read(&data->gate)) cpu_relax(); atomic_dec(&data->count); local_irq_restore(flags); #endif + return 0; } static inline int types_compatible(mtrr_type type1, mtrr_type type2) @@ -198,7 +206,7 @@ * * This is kinda tricky, but fortunately, Intel spelled it out for us cleanly: * - * 1. Send IPI to do the following: + * 1. Queue work to do the following on all processors: * 2. Disable Interrupts * 3. Wait for all procs to do so * 4. Enter no-fill cache mode @@ -215,14 +223,17 @@ * 15. Enable interrupts. * * What does that mean for us? Well, first we set data.count to the number - * of CPUs. As each CPU disables interrupts, it'll decrement it once. We wait - * until it hits 0 and proceed. We set the data.gate flag and reset data.count. - * Meanwhile, they are waiting for that flag to be set. Once it's set, each + * of CPUs. As each CPU announces that it started the rendezvous handler by + * decrementing the count, We reset data.count and set the data.gate flag + * allowing all the cpu's to proceed with the work. As each cpu disables + * interrupts, it'll decrement data.count once. We wait until it hits 0 and + * proceed. We clear the data.gate flag and reset data.count. Meanwhile, they + * are waiting for that flag to be cleared. Once it's cleared, each * CPU goes through the transition of updating MTRRs. * The CPU vendors may each do it differently, * so we call mtrr_if->set() callback and let them take care of it. * When they're done, they again decrement data->count and wait for data.gate - * to be reset. + * to be set. * When we finish, we wait for data.count to hit 0 and toggle the data.gate flag * Everyone then enables interrupts and we all continue on. * @@ -234,6 +245,9 @@ { struct set_mtrr_data data; unsigned long flags; + int cpu; + + preempt_disable(); data.smp_reg = reg; data.smp_base = base; @@ -246,10 +260,15 @@ atomic_set(&data.gate, 0); /* Start the ball rolling on other CPUs */ - if (smp_call_function(ipi_handler, &data, 0) != 0) - panic("mtrr: timed out waiting for other CPUs\n"); + for_each_online_cpu(cpu) { + struct cpu_stop_work *work = &per_cpu(mtrr_work, cpu); + + if (cpu == smp_processor_id()) + continue; + + stop_one_cpu_nowait(cpu, mtrr_work_handler, &data, work); + } - local_irq_save(flags); while (atomic_read(&data.count)) cpu_relax(); @@ -259,6 +278,16 @@ smp_wmb(); atomic_set(&data.gate, 1); + local_irq_save(flags); + + while (atomic_read(&data.count)) + cpu_relax(); + + /* Ok, reset count and toggle gate */ + atomic_set(&data.count, num_booting_cpus() - 1); + smp_wmb(); + atomic_set(&data.gate, 0); + /* Do our MTRR business */ /* @@ -279,7 +308,7 @@ atomic_set(&data.count, num_booting_cpus() - 1); smp_wmb(); - atomic_set(&data.gate, 0); + atomic_set(&data.gate, 1); /* * Wait here for everyone to have seen the gate change @@ -289,6 +318,7 @@ cpu_relax(); local_irq_restore(flags); + preempt_enable(); } /** --- linux-2.6.35.orig/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c +++ linux-2.6.35/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c @@ -46,6 +46,7 @@ CPU_DOTHAN_A1, CPU_DOTHAN_A2, CPU_DOTHAN_B0, + CPU_DOTHAN_C0, CPU_MP4HT_D0, CPU_MP4HT_E0, }; @@ -55,6 +56,7 @@ [CPU_DOTHAN_A1] = { 6, 13, 1 }, [CPU_DOTHAN_A2] = { 6, 13, 2 }, [CPU_DOTHAN_B0] = { 6, 13, 6 }, + [CPU_DOTHAN_C0] = { 6, 13, 8 }, [CPU_MP4HT_D0] = {15, 3, 4 }, [CPU_MP4HT_E0] = {15, 4, 1 }, }; @@ -197,6 +199,88 @@ }; #undef OP + +#define OPEX(mhz, base, mva, mvb, mvc, mvd) \ +{ \ + .frequency = (mhz) * 1000, \ + .index = (((mhz)/(base)) << 8) | ((mva - 700) / 16) \ +} + +/* Intel Pentium M processor 730 / 1.60 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_1596[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1116, 1111, 1084, 1079), + OPEX(1330, 133, 1244, 1233, 1180, 1169), + OPEX(1596, 133, 1356, 1356, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; + +/* Intel Pentium M processor 740 / 1.73 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_1729[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1100, 1093, 1068, 1066), + OPEX(1330, 133, 1212, 1198, 1148, 1143), + OPEX(1729, 133, 1356, 1356, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; + +/* Intel Pentium M processor 750 / 1.86 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_1862[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1084, 1080, 1068, 1056), + OPEX(1330, 133, 1180, 1172, 1132, 1124), + OPEX(1596, 133, 1276, 1264, 1196, 1192), + OPEX(1862, 133, 1356, 1356, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; + +/* Intel Pentium M processor 760 / 2.00 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_1995[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1084, 1070, 1052, 1048), + OPEX(1330, 133, 1164, 1152, 1116, 1109), + OPEX(1596, 133, 1244, 1233, 1180, 1169), + OPEX(1995, 133, 1356, 1356, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; +/* Intel Pentium M processor 770 / 2.13 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_2128[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1068, 1065, 1052, 1042), + OPEX(1330, 133, 1148, 1142, 1100, 1097), + OPEX(1596, 133, 1228, 1218, 1164, 1151), + OPEX(1862, 133, 1308, 1295, 1212, 1206), + OPEX(2128, 133, 1372, 1372, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; + +/* Intel Pentium M processor 780 / 2.26 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_2261[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1068, 1064, 1052, 1037), + OPEX(1330, 133, 1148, 1139, 1100, 1087), + OPEX(1596, 133, 1228, 1215, 1148, 1136), + OPEX(1862, 133, 1292, 1291, 1196, 1186), + OPEX(2261, 133, 1404, 1404, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; + +#undef OPEX + +#define SONOMA(cpuid, max, base, name) \ +{ .cpu_id = cpuid, \ + .model_name = "Intel(R) Pentium(R) M processor " name "GHz", \ + .max_freq = (max)*1000, \ + .op_points = sonoma_##max, \ +} + + #define _BANIAS(cpuid, max, name) \ { .cpu_id = cpuid, \ .model_name = "Intel(R) Pentium(R) M processor " name "MHz", \ @@ -219,6 +303,15 @@ BANIAS(1600), BANIAS(1700), + /* Builtin tables for Dothan C0 CPUs, a.k.a Sonoma */ + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1596, 133, "1.60"), + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1729, 133, "1.73"), + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1862, 133, "1.86"), + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1995, 133, "2.00"), + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 2128, 133, "2.13"), + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 2261, 133, "2.26"), + + /* NULL model_name is a wildcard */ { &cpu_ids[CPU_DOTHAN_A1], NULL, 0, NULL }, { &cpu_ids[CPU_DOTHAN_A2], NULL, 0, NULL }, --- linux-2.6.35.orig/arch/x86/kernel/apic/io_apic.c +++ linux-2.6.35/arch/x86/kernel/apic/io_apic.c @@ -1728,6 +1728,8 @@ struct irq_pin_list *entry; cfg = desc->chip_data; + if (!cfg) + continue; entry = cfg->irq_2_pin; if (!entry) continue; @@ -3397,7 +3399,7 @@ cfg = desc->chip_data; - read_msi_msg_desc(desc, &msg); + get_cached_msi_msg_desc(desc, &msg); msg.data &= ~MSI_DATA_VECTOR_MASK; msg.data |= MSI_DATA_VECTOR(cfg->vector); --- linux-2.6.35.orig/arch/x86/kernel/apic/apic.c +++ linux-2.6.35/arch/x86/kernel/apic/apic.c @@ -1606,7 +1606,7 @@ * acpi lapic path already maps that address in * acpi_register_lapic_address() */ - if (!acpi_lapic) + if (!acpi_lapic && !smp_found_config) set_fixmap_nocache(FIX_APIC_BASE, apic_phys); apic_printk(APIC_VERBOSE, "mapped APIC to %08lx (%08lx)\n", --- linux-2.6.35.orig/arch/x86/kvm/vmx.c +++ linux-2.6.35/arch/x86/kvm/vmx.c @@ -177,6 +177,7 @@ static DEFINE_PER_CPU(struct vmcs *, vmxarea); static DEFINE_PER_CPU(struct vmcs *, current_vmcs); static DEFINE_PER_CPU(struct list_head, vcpus_on_cpu); +static DEFINE_PER_CPU(struct desc_ptr, host_gdt); static unsigned long *vmx_io_bitmap_a; static unsigned long *vmx_io_bitmap_b; @@ -812,6 +813,7 @@ wrmsrl(MSR_KERNEL_GS_BASE, vmx->msr_host_kernel_gs_base); } #endif + load_gdt(&__get_cpu_var(host_gdt)); } static void vmx_load_host_state(struct vcpu_vmx *vmx) @@ -1314,6 +1316,8 @@ ept_sync_global(); + store_gdt(&__get_cpu_var(host_gdt)); + return 0; } --- linux-2.6.35.orig/arch/x86/kvm/mmu.c +++ linux-2.6.35/arch/x86/kvm/mmu.c @@ -799,8 +799,12 @@ ret = handler(kvm, &memslot->rmap[gfn_offset], data); for (j = 0; j < KVM_NR_PAGE_SIZES - 1; ++j) { - int idx = gfn_offset; - idx /= KVM_PAGES_PER_HPAGE(PT_DIRECTORY_LEVEL + j); + unsigned long idx; + int nr; + + nr = KVM_PAGES_PER_HPAGE(PT_DIRECTORY_LEVEL+j); + idx = (memslot->base_gfn+gfn_offset) / nr - + memslot->base_gfn / nr; ret |= handler(kvm, &memslot->lpage_info[j][idx].rmap_pde, data); --- linux-2.6.35.orig/arch/x86/kvm/x86.c +++ linux-2.6.35/arch/x86/kvm/x86.c @@ -5438,6 +5438,11 @@ int user_alloc) { int npages = memslot->npages; + int map_flags = MAP_PRIVATE | MAP_ANONYMOUS; + + /* Prevent internal slot pages from being moved by fork()/COW. */ + if (memslot->id >= KVM_MEMORY_SLOTS) + map_flags = MAP_SHARED | MAP_ANONYMOUS; /*To keep backward compatibility with older userspace, *x86 needs to hanlde !user_alloc case. @@ -5450,7 +5455,7 @@ userspace_addr = do_mmap(NULL, 0, npages * PAGE_SIZE, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, + map_flags, 0); up_write(¤t->mm->mmap_sem); --- linux-2.6.35.orig/arch/x86/kvm/emulate.c +++ linux-2.6.35/arch/x86/kvm/emulate.c @@ -345,10 +345,10 @@ DstMem | SrcNone | ModRM, DstMem | SrcNone | ModRM, 0, 0, 0, 0, [Group4*8] = - ByteOp | DstMem | SrcNone | ModRM, ByteOp | DstMem | SrcNone | ModRM, + ByteOp | DstMem | SrcNone | ModRM | Lock, ByteOp | DstMem | SrcNone | ModRM | Lock, 0, 0, 0, 0, 0, 0, [Group5*8] = - DstMem | SrcNone | ModRM, DstMem | SrcNone | ModRM, + DstMem | SrcNone | ModRM | Lock, DstMem | SrcNone | ModRM | Lock, SrcMem | ModRM | Stack, 0, SrcMem | ModRM | Stack, SrcMem | ModRM | Src2Mem16 | ImplicitOps, SrcMem | ModRM | Stack, 0, --- linux-2.6.35.orig/arch/x86/kvm/paging_tmpl.h +++ linux-2.6.35/arch/x86/kvm/paging_tmpl.h @@ -324,8 +324,32 @@ break; } - if (is_shadow_present_pte(*sptep) && !is_large_pte(*sptep)) - continue; + if (is_shadow_present_pte(*sptep) && !is_large_pte(*sptep)) { + struct kvm_mmu_page *child; + unsigned direct_access; + + if (level != gw->level) + continue; + + /* + * For the direct sp, if the guest pte's dirty bit + * changed form clean to dirty, it will corrupt the + * sp's access: allow writable in the read-only sp, + * so we should update the spte at this point to get + * a new sp with the correct access. + */ + direct_access = gw->pt_access & gw->pte_access; + if (!is_dirty_gpte(gw->ptes[gw->level - 1])) + direct_access &= ~ACC_WRITE_MASK; + + child = page_header(*sptep & PT64_BASE_ADDR_MASK); + if (child->role.access == direct_access) + continue; + + mmu_page_remove_parent_pte(child, sptep); + __set_spte(sptep, shadow_trap_nonpresent_pte); + kvm_flush_remote_tlbs(vcpu->kvm); + } if (is_large_pte(*sptep)) { rmap_remove(vcpu->kvm, sptep); --- linux-2.6.35.orig/arch/x86/oprofile/nmi_int.c +++ linux-2.6.35/arch/x86/oprofile/nmi_int.c @@ -568,8 +568,13 @@ int error; error = sysdev_class_register(&oprofile_sysclass); - if (!error) - error = sysdev_register(&device_oprofile); + if (error) + return error; + + error = sysdev_register(&device_oprofile); + if (error) + sysdev_class_unregister(&oprofile_sysclass); + return error; } @@ -580,8 +585,10 @@ } #else -#define init_sysfs() do { } while (0) -#define exit_sysfs() do { } while (0) + +static inline int init_sysfs(void) { return 0; } +static inline void exit_sysfs(void) { } + #endif /* CONFIG_PM */ static int __init p4_init(char **cpu_type) @@ -634,6 +641,18 @@ if (force_arch_perfmon && cpu_has_arch_perfmon) return 0; + /* + * Documentation on identifying Intel processors by CPU family + * and model can be found in the Intel Software Developer's + * Manuals (SDM): + * + * http://www.intel.com/products/processor/manuals/ + * + * As of May 2010 the documentation for this was in the: + * "Intel 64 and IA-32 Architectures Software Developer's + * Manual Volume 3B: System Programming Guide", "Table B-1 + * CPUID Signature Values of DisplayFamily_DisplayModel". + */ switch (cpu_model) { case 0 ... 2: *cpu_type = "i386/ppro"; @@ -652,15 +671,18 @@ case 14: *cpu_type = "i386/core"; break; - case 15: case 23: + case 0x0f: + case 0x16: + case 0x17: *cpu_type = "i386/core_2"; break; + case 0x1a: + case 0x1e: case 0x2e: - case 26: spec = &op_arch_perfmon_spec; *cpu_type = "i386/core_i7"; break; - case 28: + case 0x1c: *cpu_type = "i386/atom"; break; default: @@ -682,6 +704,8 @@ char *cpu_type = NULL; int ret = 0; + using_nmi = 0; + if (!cpu_has_apic) return -ENODEV; @@ -761,7 +785,10 @@ mux_init(ops); - init_sysfs(); + ret = init_sysfs(); + if (ret) + return ret; + using_nmi = 1; printk(KERN_INFO "oprofile: using NMI interrupt.\n"); return 0; --- linux-2.6.35.orig/arch/x86/mm/setup_nx.c +++ linux-2.6.35/arch/x86/mm/setup_nx.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -23,6 +24,9 @@ disable_nx = 0; } else if (!strncmp(str, "off", 3)) { disable_nx = 1; +#ifdef CONFIG_X86_32 + exec_shield = 0; +#endif } x86_configure_nx(); return 0; @@ -40,8 +44,18 @@ void __init x86_report_nx(void) { if (!cpu_has_nx) { +#ifdef CONFIG_X86_32 + if (exec_shield) + printk(KERN_INFO "NX (Execute Disable) protection: " + "approximated by x86 segment limits\n"); + else + printk(KERN_INFO "NX (Execute Disable) protection: " + "approximation disabled by kernel command " + "line option\n"); +#else printk(KERN_NOTICE "Notice: NX (Execute Disable) protection " "missing in CPU or disabled in BIOS!\n"); +#endif } else { #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) if (disable_nx) { --- linux-2.6.35.orig/arch/x86/mm/kmmio.c +++ linux-2.6.35/arch/x86/mm/kmmio.c @@ -45,6 +45,8 @@ * Protected by kmmio_lock, when linked into kmmio_page_table. */ int count; + + bool scheduled_for_release; }; struct kmmio_delayed_release { @@ -398,8 +400,11 @@ BUG_ON(f->count < 0); if (!f->count) { disarm_kmmio_fault_page(f); - f->release_next = *release_list; - *release_list = f; + if (!f->scheduled_for_release) { + f->release_next = *release_list; + *release_list = f; + f->scheduled_for_release = true; + } } } @@ -471,8 +476,10 @@ prevp = &f->release_next; } else { *prevp = f->release_next; + f->release_next = NULL; + f->scheduled_for_release = false; } - f = f->release_next; + f = *prevp; } spin_unlock_irqrestore(&kmmio_lock, flags); @@ -510,6 +517,9 @@ kmmio_count--; spin_unlock_irqrestore(&kmmio_lock, flags); + if (!release_list) + return; + drelease = kmalloc(sizeof(*drelease), GFP_ATOMIC); if (!drelease) { pr_crit("leaking kmmio_fault_page objects.\n"); --- linux-2.6.35.orig/arch/x86/mm/mmap.c +++ linux-2.6.35/arch/x86/mm/mmap.c @@ -124,13 +124,23 @@ */ void arch_pick_mmap_layout(struct mm_struct *mm) { - if (mmap_is_legacy()) { + if (mmap_is_legacy() +#ifdef CONFIG_X86_32 + && !(2 & exec_shield) +#endif + ) { mm->mmap_base = mmap_legacy_base(); mm->get_unmapped_area = arch_get_unmapped_area; mm->unmap_area = arch_unmap_area; } else { mm->mmap_base = mmap_base(); mm->get_unmapped_area = arch_get_unmapped_area_topdown; +#ifdef CONFIG_X86_32 + if (!(current->personality & READ_IMPLIES_EXEC) + && !(__supported_pte_mask & _PAGE_NX) + && mmap_is_ia32()) + mm->get_unmapped_exec_area = arch_get_unmapped_exec_area; +#endif mm->unmap_area = arch_unmap_area_topdown; } } --- linux-2.6.35.orig/arch/x86/mm/fault.c +++ linux-2.6.35/arch/x86/mm/fault.c @@ -802,8 +802,10 @@ up_read(&mm->mmap_sem); /* Kernel mode? Handle exceptions or die: */ - if (!(error_code & PF_USER)) + if (!(error_code & PF_USER)) { no_context(regs, error_code, address); + return; + } /* User-space => ok to do another page fault: */ if (is_prefetch(regs, error_code, address)) --- linux-2.6.35.orig/arch/x86/mm/tlb.c +++ linux-2.6.35/arch/x86/mm/tlb.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -131,6 +132,12 @@ union smp_flush_state *f; cpu = smp_processor_id(); + +#ifdef CONFIG_X86_32 + if (current->active_mm) + load_user_cs_desc(cpu, current->active_mm); +#endif + /* * orig_rax contains the negated interrupt vector. * Use that to determine where the sender put the data. --- linux-2.6.35.orig/arch/x86/mm/testmmiotrace.c +++ linux-2.6.35/arch/x86/mm/testmmiotrace.c @@ -90,6 +90,27 @@ iounmap(p); } +/* + * Tests how mmiotrace behaves in face of multiple ioremap / iounmaps in + * a short time. We had a bug in deferred freeing procedure which tried + * to free this region multiple times (ioremap can reuse the same address + * for many mappings). + */ +static void do_test_bulk_ioremapping(void) +{ + void __iomem *p; + int i; + + for (i = 0; i < 10; ++i) { + p = ioremap_nocache(mmio_address, PAGE_SIZE); + if (p) + iounmap(p); + } + + /* Force freeing. If it will crash we will know why. */ + synchronize_rcu(); +} + static int __init init(void) { unsigned long size = (read_far) ? (8 << 20) : (16 << 10); @@ -104,6 +125,7 @@ "and writing 16 kB of rubbish in there.\n", size >> 10, mmio_address); do_test(size); + do_test_bulk_ioremapping(); pr_info("All done.\n"); return 0; } --- linux-2.6.35.orig/arch/x86/lib/atomic64_386_32.S +++ linux-2.6.35/arch/x86/lib/atomic64_386_32.S @@ -25,150 +25,172 @@ CFI_ADJUST_CFA_OFFSET -4 .endm -.macro BEGIN func reg -$v = \reg +#define BEGIN(op) \ +.macro endp; \ + CFI_ENDPROC; \ +ENDPROC(atomic64_##op##_386); \ +.purgem endp; \ +.endm; \ +ENTRY(atomic64_##op##_386); \ + CFI_STARTPROC; \ + LOCK v; -ENTRY(atomic64_\func\()_386) - CFI_STARTPROC - LOCK $v +#define ENDP endp -.macro RETURN - UNLOCK $v +#define RET \ + UNLOCK v; \ ret -.endm - -.macro END_ - CFI_ENDPROC -ENDPROC(atomic64_\func\()_386) -.purgem RETURN -.purgem END_ -.purgem END -.endm - -.macro END -RETURN -END_ -.endm -.endm -BEGIN read %ecx - movl ($v), %eax - movl 4($v), %edx -END - -BEGIN set %esi - movl %ebx, ($v) - movl %ecx, 4($v) -END - -BEGIN xchg %esi - movl ($v), %eax - movl 4($v), %edx - movl %ebx, ($v) - movl %ecx, 4($v) -END - -BEGIN add %ecx - addl %eax, ($v) - adcl %edx, 4($v) -END - -BEGIN add_return %ecx - addl ($v), %eax - adcl 4($v), %edx - movl %eax, ($v) - movl %edx, 4($v) -END - -BEGIN sub %ecx - subl %eax, ($v) - sbbl %edx, 4($v) -END +#define RET_ENDP \ + RET; \ + ENDP + +#define v %ecx +BEGIN(read) + movl (v), %eax + movl 4(v), %edx +RET_ENDP +#undef v + +#define v %esi +BEGIN(set) + movl %ebx, (v) + movl %ecx, 4(v) +RET_ENDP +#undef v + +#define v %esi +BEGIN(xchg) + movl (v), %eax + movl 4(v), %edx + movl %ebx, (v) + movl %ecx, 4(v) +RET_ENDP +#undef v + +#define v %ecx +BEGIN(add) + addl %eax, (v) + adcl %edx, 4(v) +RET_ENDP +#undef v + +#define v %ecx +BEGIN(add_return) + addl (v), %eax + adcl 4(v), %edx + movl %eax, (v) + movl %edx, 4(v) +RET_ENDP +#undef v + +#define v %ecx +BEGIN(sub) + subl %eax, (v) + sbbl %edx, 4(v) +RET_ENDP +#undef v -BEGIN sub_return %ecx +#define v %ecx +BEGIN(sub_return) negl %edx negl %eax sbbl $0, %edx - addl ($v), %eax - adcl 4($v), %edx - movl %eax, ($v) - movl %edx, 4($v) -END - -BEGIN inc %esi - addl $1, ($v) - adcl $0, 4($v) -END - -BEGIN inc_return %esi - movl ($v), %eax - movl 4($v), %edx + addl (v), %eax + adcl 4(v), %edx + movl %eax, (v) + movl %edx, 4(v) +RET_ENDP +#undef v + +#define v %esi +BEGIN(inc) + addl $1, (v) + adcl $0, 4(v) +RET_ENDP +#undef v + +#define v %esi +BEGIN(inc_return) + movl (v), %eax + movl 4(v), %edx addl $1, %eax adcl $0, %edx - movl %eax, ($v) - movl %edx, 4($v) -END - -BEGIN dec %esi - subl $1, ($v) - sbbl $0, 4($v) -END - -BEGIN dec_return %esi - movl ($v), %eax - movl 4($v), %edx + movl %eax, (v) + movl %edx, 4(v) +RET_ENDP +#undef v + +#define v %esi +BEGIN(dec) + subl $1, (v) + sbbl $0, 4(v) +RET_ENDP +#undef v + +#define v %esi +BEGIN(dec_return) + movl (v), %eax + movl 4(v), %edx subl $1, %eax sbbl $0, %edx - movl %eax, ($v) - movl %edx, 4($v) -END + movl %eax, (v) + movl %edx, 4(v) +RET_ENDP +#undef v -BEGIN add_unless %ecx +#define v %ecx +BEGIN(add_unless) addl %eax, %esi adcl %edx, %edi - addl ($v), %eax - adcl 4($v), %edx + addl (v), %eax + adcl 4(v), %edx cmpl %eax, %esi je 3f 1: - movl %eax, ($v) - movl %edx, 4($v) + movl %eax, (v) + movl %edx, 4(v) movl $1, %eax 2: -RETURN + RET 3: cmpl %edx, %edi jne 1b xorl %eax, %eax jmp 2b -END_ +ENDP +#undef v -BEGIN inc_not_zero %esi - movl ($v), %eax - movl 4($v), %edx +#define v %esi +BEGIN(inc_not_zero) + movl (v), %eax + movl 4(v), %edx testl %eax, %eax je 3f 1: addl $1, %eax adcl $0, %edx - movl %eax, ($v) - movl %edx, 4($v) + movl %eax, (v) + movl %edx, 4(v) movl $1, %eax 2: -RETURN + RET 3: testl %edx, %edx jne 1b jmp 2b -END_ +ENDP +#undef v -BEGIN dec_if_positive %esi - movl ($v), %eax - movl 4($v), %edx +#define v %esi +BEGIN(dec_if_positive) + movl (v), %eax + movl 4(v), %edx subl $1, %eax sbbl $0, %edx js 1f - movl %eax, ($v) - movl %edx, 4($v) + movl %eax, (v) + movl %edx, 4(v) 1: -END +RET_ENDP +#undef v --- linux-2.6.35.orig/arch/x86/include/asm/msr-index.h +++ linux-2.6.35/arch/x86/include/asm/msr-index.h @@ -224,12 +224,14 @@ #define MSR_IA32_THERM_CONTROL 0x0000019a #define MSR_IA32_THERM_INTERRUPT 0x0000019b -#define THERM_INT_LOW_ENABLE (1 << 0) -#define THERM_INT_HIGH_ENABLE (1 << 1) +#define THERM_INT_HIGH_ENABLE (1 << 0) +#define THERM_INT_LOW_ENABLE (1 << 1) +#define THERM_INT_PLN_ENABLE (1 << 24) #define MSR_IA32_THERM_STATUS 0x0000019c #define THERM_STATUS_PROCHOT (1 << 0) +#define THERM_STATUS_POWER_LIMIT (1 << 10) #define MSR_THERM2_CTL 0x0000019d @@ -239,6 +241,17 @@ #define MSR_IA32_TEMPERATURE_TARGET 0x000001a2 +#define MSR_IA32_PACKAGE_THERM_STATUS 0x000001b1 + +#define PACKAGE_THERM_STATUS_PROCHOT (1 << 0) +#define PACKAGE_THERM_STATUS_POWER_LIMIT (1 << 10) + +#define MSR_IA32_PACKAGE_THERM_INTERRUPT 0x000001b2 + +#define PACKAGE_THERM_INT_HIGH_ENABLE (1 << 0) +#define PACKAGE_THERM_INT_LOW_ENABLE (1 << 1) +#define PACKAGE_THERM_INT_PLN_ENABLE (1 << 24) + /* MISC_ENABLE bits: architectural */ #define MSR_IA32_MISC_ENABLE_FAST_STRING (1ULL << 0) #define MSR_IA32_MISC_ENABLE_TCC (1ULL << 1) --- linux-2.6.35.orig/arch/x86/include/asm/cpufeature.h +++ linux-2.6.35/arch/x86/include/asm/cpufeature.h @@ -162,6 +162,9 @@ #define X86_FEATURE_IDA (7*32+ 0) /* Intel Dynamic Acceleration */ #define X86_FEATURE_ARAT (7*32+ 1) /* Always Running APIC Timer */ #define X86_FEATURE_CPB (7*32+ 2) /* AMD Core Performance Boost */ +#define X86_FEATURE_PLN (7*32+ 5) /* Intel Power Limit Notification */ +#define X86_FEATURE_PTS (7*32+ 6) /* Intel Package Thermal Status */ +#define X86_FEATURE_DTS (7*32+ 7) /* Digital Thermal Sensor */ /* Virtualization flags: Linux defined */ #define X86_FEATURE_TPR_SHADOW (8*32+ 0) /* Intel TPR Shadow */ --- linux-2.6.35.orig/arch/x86/include/asm/cmpxchg_64.h +++ linux-2.6.35/arch/x86/include/asm/cmpxchg_64.h @@ -5,13 +5,11 @@ #define __xg(x) ((volatile long *)(x)) -static inline void set_64bit(volatile unsigned long *ptr, unsigned long val) +static inline void set_64bit(volatile u64 *ptr, u64 val) { *ptr = val; } -#define _set_64bit set_64bit - extern void __xchg_wrong_size(void); extern void __cmpxchg_wrong_size(void); @@ -26,26 +24,26 @@ switch (size) { \ case 1: \ asm volatile("xchgb %b0,%1" \ - : "=q" (__x) \ - : "m" (*__xg(ptr)), "0" (__x) \ + : "=q" (__x), "+m" (*__xg(ptr)) \ + : "0" (__x) \ : "memory"); \ break; \ case 2: \ asm volatile("xchgw %w0,%1" \ - : "=r" (__x) \ - : "m" (*__xg(ptr)), "0" (__x) \ + : "=r" (__x), "+m" (*__xg(ptr)) \ + : "0" (__x) \ : "memory"); \ break; \ case 4: \ asm volatile("xchgl %k0,%1" \ - : "=r" (__x) \ - : "m" (*__xg(ptr)), "0" (__x) \ + : "=r" (__x), "+m" (*__xg(ptr)) \ + : "0" (__x) \ : "memory"); \ break; \ case 8: \ asm volatile("xchgq %0,%1" \ - : "=r" (__x) \ - : "m" (*__xg(ptr)), "0" (__x) \ + : "=r" (__x), "+m" (*__xg(ptr)) \ + : "0" (__x) \ : "memory"); \ break; \ default: \ @@ -71,27 +69,27 @@ __typeof__(*(ptr)) __new = (new); \ switch (size) { \ case 1: \ - asm volatile(lock "cmpxchgb %b1,%2" \ - : "=a"(__ret) \ - : "q"(__new), "m"(*__xg(ptr)), "0"(__old) \ + asm volatile(lock "cmpxchgb %b2,%1" \ + : "=a" (__ret), "+m" (*__xg(ptr)) \ + : "q" (__new), "0" (__old) \ : "memory"); \ break; \ case 2: \ - asm volatile(lock "cmpxchgw %w1,%2" \ - : "=a"(__ret) \ - : "r"(__new), "m"(*__xg(ptr)), "0"(__old) \ + asm volatile(lock "cmpxchgw %w2,%1" \ + : "=a" (__ret), "+m" (*__xg(ptr)) \ + : "r" (__new), "0" (__old) \ : "memory"); \ break; \ case 4: \ - asm volatile(lock "cmpxchgl %k1,%2" \ - : "=a"(__ret) \ - : "r"(__new), "m"(*__xg(ptr)), "0"(__old) \ + asm volatile(lock "cmpxchgl %k2,%1" \ + : "=a" (__ret), "+m" (*__xg(ptr)) \ + : "r" (__new), "0" (__old) \ : "memory"); \ break; \ case 8: \ - asm volatile(lock "cmpxchgq %1,%2" \ - : "=a"(__ret) \ - : "r"(__new), "m"(*__xg(ptr)), "0"(__old) \ + asm volatile(lock "cmpxchgq %2,%1" \ + : "=a" (__ret), "+m" (*__xg(ptr)) \ + : "r" (__new), "0" (__old) \ : "memory"); \ break; \ default: \ --- linux-2.6.35.orig/arch/x86/include/asm/paravirt_types.h +++ linux-2.6.35/arch/x86/include/asm/paravirt_types.h @@ -118,6 +118,9 @@ void (*store_gdt)(struct desc_ptr *); void (*store_idt)(struct desc_ptr *); void (*set_ldt)(const void *desc, unsigned entries); +#ifdef CONFIG_X86_32 + void (*load_user_cs_desc)(int cpu, struct mm_struct *mm); +#endif unsigned long (*store_tr)(void); void (*load_tls)(struct thread_struct *t, unsigned int cpu); #ifdef CONFIG_X86_64 --- linux-2.6.35.orig/arch/x86/include/asm/compat.h +++ linux-2.6.35/arch/x86/include/asm/compat.h @@ -205,7 +205,7 @@ return (u32)(unsigned long)uptr; } -static inline void __user *compat_alloc_user_space(long len) +static inline void __user *arch_compat_alloc_user_space(long len) { struct pt_regs *regs = task_pt_regs(current); return (void __user *)regs->sp - len; --- linux-2.6.35.orig/arch/x86/include/asm/desc.h +++ linux-2.6.35/arch/x86/include/asm/desc.h @@ -5,6 +5,7 @@ #include #include #include +#include static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *info) @@ -93,6 +94,9 @@ #define load_TLS(t, cpu) native_load_tls(t, cpu) #define set_ldt native_set_ldt +#ifdef CONFIG_X86_32 +#define load_user_cs_desc native_load_user_cs_desc +#endif /*CONFIG_X86_32*/ #define write_ldt_entry(dt, entry, desc) \ native_write_ldt_entry(dt, entry, desc) @@ -392,4 +396,25 @@ _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS); } +#ifdef CONFIG_X86_32 +static inline void set_user_cs(struct desc_struct *desc, unsigned long limit) +{ + limit = (limit - 1) / PAGE_SIZE; + desc->a = limit & 0xffff; + desc->b = (limit & 0xf0000) | 0x00c0fb00; +} + +static inline void native_load_user_cs_desc(int cpu, struct mm_struct *mm) +{ + get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs; +} + +#define arch_add_exec_range arch_add_exec_range +#define arch_remove_exec_range arch_remove_exec_range +#define arch_flush_exec_range arch_flush_exec_range +extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit); +extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit); +extern void arch_flush_exec_range(struct mm_struct *mm); +#endif /* CONFIG_X86_32 */ + #endif /* _ASM_X86_DESC_H */ --- linux-2.6.35.orig/arch/x86/include/asm/mce.h +++ linux-2.6.35/arch/x86/include/asm/mce.h @@ -67,6 +67,8 @@ __u32 socketid; /* CPU socket ID */ __u32 apicid; /* CPU initial apic ID */ __u64 mcgcap; /* MCGCAP MSR: machine check capabilities of CPU */ + __u64 aux0; /* model specific */ + __u64 aux1; /* model specific */ }; /* --- linux-2.6.35.orig/arch/x86/include/asm/mmu.h +++ linux-2.6.35/arch/x86/include/asm/mmu.h @@ -7,12 +7,19 @@ /* * The x86 doesn't have a mmu context, but * we put the segment information here. + * + * exec_limit is used to track the range PROT_EXEC + * mappings span. */ typedef struct { void *ldt; int size; struct mutex lock; void *vdso; +#ifdef CONFIG_X86_32 + struct desc_struct user_cs; + unsigned long exec_limit; +#endif } mm_context_t; #ifdef CONFIG_SMP --- linux-2.6.35.orig/arch/x86/include/asm/cmpxchg_32.h +++ linux-2.6.35/arch/x86/include/asm/cmpxchg_32.h @@ -27,20 +27,20 @@ switch (size) { \ case 1: \ asm volatile("xchgb %b0,%1" \ - : "=q" (__x) \ - : "m" (*__xg(ptr)), "0" (__x) \ + : "=q" (__x), "+m" (*__xg(ptr)) \ + : "0" (__x) \ : "memory"); \ break; \ case 2: \ asm volatile("xchgw %w0,%1" \ - : "=r" (__x) \ - : "m" (*__xg(ptr)), "0" (__x) \ + : "=r" (__x), "+m" (*__xg(ptr)) \ + : "0" (__x) \ : "memory"); \ break; \ case 4: \ asm volatile("xchgl %0,%1" \ - : "=r" (__x) \ - : "m" (*__xg(ptr)), "0" (__x) \ + : "=r" (__x), "+m" (*__xg(ptr)) \ + : "0" (__x) \ : "memory"); \ break; \ default: \ @@ -53,60 +53,33 @@ __xchg((v), (ptr), sizeof(*ptr)) /* - * The semantics of XCHGCMP8B are a bit strange, this is why - * there is a loop and the loading of %%eax and %%edx has to - * be inside. This inlines well in most cases, the cached - * cost is around ~38 cycles. (in the future we might want - * to do an SIMD/3DNOW!/MMX/FPU 64-bit store here, but that - * might have an implicit FPU-save as a cost, so it's not - * clear which path to go.) + * CMPXCHG8B only writes to the target if we had the previous + * value in registers, otherwise it acts as a read and gives us the + * "new previous" value. That is why there is a loop. Preloading + * EDX:EAX is a performance optimization: in the common case it means + * we need only one locked operation. * - * cmpxchg8b must be used with the lock prefix here to allow - * the instruction to be executed atomically, see page 3-102 - * of the instruction set reference 24319102.pdf. We need - * the reader side to see the coherent 64bit value. + * A SIMD/3DNOW!/MMX/FPU 64-bit store here would require at the very + * least an FPU save and/or %cr0.ts manipulation. + * + * cmpxchg8b must be used with the lock prefix here to allow the + * instruction to be executed atomically. We need to have the reader + * side to see the coherent 64bit value. */ -static inline void __set_64bit(unsigned long long *ptr, - unsigned int low, unsigned int high) +static inline void set_64bit(volatile u64 *ptr, u64 value) { + u32 low = value; + u32 high = value >> 32; + u64 prev = *ptr; + asm volatile("\n1:\t" - "movl (%0), %%eax\n\t" - "movl 4(%0), %%edx\n\t" - LOCK_PREFIX "cmpxchg8b (%0)\n\t" + LOCK_PREFIX "cmpxchg8b %0\n\t" "jnz 1b" - : /* no outputs */ - : "D"(ptr), - "b"(low), - "c"(high) - : "ax", "dx", "memory"); -} - -static inline void __set_64bit_constant(unsigned long long *ptr, - unsigned long long value) -{ - __set_64bit(ptr, (unsigned int)value, (unsigned int)(value >> 32)); -} - -#define ll_low(x) *(((unsigned int *)&(x)) + 0) -#define ll_high(x) *(((unsigned int *)&(x)) + 1) - -static inline void __set_64bit_var(unsigned long long *ptr, - unsigned long long value) -{ - __set_64bit(ptr, ll_low(value), ll_high(value)); + : "=m" (*ptr), "+A" (prev) + : "b" (low), "c" (high) + : "memory"); } -#define set_64bit(ptr, value) \ - (__builtin_constant_p((value)) \ - ? __set_64bit_constant((ptr), (value)) \ - : __set_64bit_var((ptr), (value))) - -#define _set_64bit(ptr, value) \ - (__builtin_constant_p(value) \ - ? __set_64bit(ptr, (unsigned int)(value), \ - (unsigned int)((value) >> 32)) \ - : __set_64bit(ptr, ll_low((value)), ll_high((value)))) - extern void __cmpxchg_wrong_size(void); /* @@ -121,21 +94,21 @@ __typeof__(*(ptr)) __new = (new); \ switch (size) { \ case 1: \ - asm volatile(lock "cmpxchgb %b1,%2" \ - : "=a"(__ret) \ - : "q"(__new), "m"(*__xg(ptr)), "0"(__old) \ + asm volatile(lock "cmpxchgb %b2,%1" \ + : "=a" (__ret), "+m" (*__xg(ptr)) \ + : "q" (__new), "0" (__old) \ : "memory"); \ break; \ case 2: \ - asm volatile(lock "cmpxchgw %w1,%2" \ - : "=a"(__ret) \ - : "r"(__new), "m"(*__xg(ptr)), "0"(__old) \ + asm volatile(lock "cmpxchgw %w2,%1" \ + : "=a" (__ret), "+m" (*__xg(ptr)) \ + : "r" (__new), "0" (__old) \ : "memory"); \ break; \ case 4: \ - asm volatile(lock "cmpxchgl %1,%2" \ - : "=a"(__ret) \ - : "r"(__new), "m"(*__xg(ptr)), "0"(__old) \ + asm volatile(lock "cmpxchgl %2,%1" \ + : "=a" (__ret), "+m" (*__xg(ptr)) \ + : "r" (__new), "0" (__old) \ : "memory"); \ break; \ default: \ @@ -180,12 +153,12 @@ unsigned long long new) { unsigned long long prev; - asm volatile(LOCK_PREFIX "cmpxchg8b %3" - : "=A"(prev) - : "b"((unsigned long)new), - "c"((unsigned long)(new >> 32)), - "m"(*__xg(ptr)), - "0"(old) + asm volatile(LOCK_PREFIX "cmpxchg8b %1" + : "=A" (prev), + "+m" (*__xg(ptr)) + : "b" ((unsigned long)new), + "c" ((unsigned long)(new >> 32)), + "0" (old) : "memory"); return prev; } @@ -195,12 +168,12 @@ unsigned long long new) { unsigned long long prev; - asm volatile("cmpxchg8b %3" - : "=A"(prev) - : "b"((unsigned long)new), - "c"((unsigned long)(new >> 32)), - "m"(*__xg(ptr)), - "0"(old) + asm volatile("cmpxchg8b %1" + : "=A" (prev), + "+m" (*__xg(ptr)) + : "b" ((unsigned long)new), + "c" ((unsigned long)(new >> 32)), + "0" (old) : "memory"); return prev; } --- linux-2.6.35.orig/arch/x86/include/asm/hpet.h +++ linux-2.6.35/arch/x86/include/asm/hpet.h @@ -68,7 +68,6 @@ extern u8 hpet_blockid; extern int hpet_force_user; extern u8 hpet_msi_disable; -extern u8 hpet_readback_cmp; extern int is_hpet_enabled(void); extern int hpet_enable(void); extern void hpet_disable(void); --- linux-2.6.35.orig/arch/x86/include/asm/dma-mapping.h +++ linux-2.6.35/arch/x86/include/asm/dma-mapping.h @@ -152,8 +152,6 @@ { struct dma_map_ops *ops = get_dma_ops(dev); - WARN_ON(irqs_disabled()); /* for portability */ - if (dma_release_from_coherent(dev, get_order(size), vaddr)) return; --- linux-2.6.35.orig/arch/x86/include/asm/paravirt.h +++ linux-2.6.35/arch/x86/include/asm/paravirt.h @@ -289,6 +289,12 @@ { PVOP_VCALL2(pv_cpu_ops.set_ldt, addr, entries); } +#ifdef CONFIG_X86_32 +static inline void load_user_cs_desc(unsigned int cpu, struct mm_struct *mm) +{ + PVOP_VCALL2(pv_cpu_ops.load_user_cs_desc, cpu, mm); +} +#endif /*CONFIG_X86_32*/ static inline void store_gdt(struct desc_ptr *dtr) { PVOP_VCALL1(pv_cpu_ops.store_gdt, dtr); --- linux-2.6.35.orig/arch/x86/include/asm/tsc.h +++ linux-2.6.35/arch/x86/include/asm/tsc.h @@ -59,5 +59,7 @@ extern void check_tsc_sync_target(void); extern int notsc_setup(char *); +extern void save_sched_clock_state(void); +extern void restore_sched_clock_state(void); #endif /* _ASM_X86_TSC_H */ --- linux-2.6.35.orig/arch/x86/vdso/vdso32-setup.c +++ linux-2.6.35/arch/x86/vdso/vdso32-setup.c @@ -331,7 +331,7 @@ if (compat) addr = VDSO_HIGH_BASE; else { - addr = get_unmapped_area(NULL, 0, PAGE_SIZE, 0, 0); + addr = get_unmapped_area_prot(NULL, 0, PAGE_SIZE, 0, 0, 1); if (IS_ERR_VALUE(addr)) { ret = addr; goto up_fail; --- linux-2.6.35.orig/arch/x86/pci/acpi.c +++ linux-2.6.35/arch/x86/pci/acpi.c @@ -34,6 +34,15 @@ DMI_MATCH(DMI_PRODUCT_NAME, "x3800"), }, }, + /* https://bugzilla.kernel.org/show_bug.cgi?id=16007 */ + /* 2006 AMD HT/VIA system with two host bridges */ + { + .callback = set_use_crs, + .ident = "ASRock ALiveSATA2-GLAN", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "ALiveSATA2-GLAN"), + }, + }, {} }; --- linux-2.6.35.orig/arch/powerpc/Kconfig +++ linux-2.6.35/arch/powerpc/Kconfig @@ -982,6 +982,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "fs/Kconfig" source "arch/powerpc/sysdev/qe_lib/Kconfig" --- linux-2.6.35.orig/arch/powerpc/Makefile +++ linux-2.6.35/arch/powerpc/Makefile @@ -163,9 +163,11 @@ # Default to zImage, override when needed all: zImage -BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.% +# With make 3.82 we cannot mix normal and wildcard targets +BOOT_TARGETS1 := zImage zImage.initrd uImage +BOOT_TARGETS2 := zImage% dtbImage% treeImage.% cuImage.% simpleImage.% -PHONY += $(BOOT_TARGETS) +PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2) boot := arch/$(ARCH)/boot @@ -180,10 +182,16 @@ zImage: relocs_check endif -$(BOOT_TARGETS): vmlinux +$(BOOT_TARGETS1): vmlinux + $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) +$(BOOT_TARGETS2): vmlinux + $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) + + +bootwrapper_install: $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) -bootwrapper_install %.dtb: +%.dtb: $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) define archhelp --- linux-2.6.35.orig/arch/powerpc/kernel/perf_event_fsl_emb.c +++ linux-2.6.35/arch/powerpc/kernel/perf_event_fsl_emb.c @@ -569,6 +569,7 @@ struct perf_sample_data data; perf_sample_data_init(&data, 0); + data.period = event->hw.last_period; if (perf_event_overflow(event, nmi, &data, regs)) { /* --- linux-2.6.35.orig/arch/powerpc/kernel/time.c +++ linux-2.6.35/arch/powerpc/kernel/time.c @@ -616,20 +616,11 @@ * some CPUs will continuue to take decrementer exceptions */ set_dec(DECREMENTER_MAX); -#ifdef CONFIG_PPC32 +#if defined(CONFIG_PPC32) && defined(CONFIG_PMAC) if (atomic_read(&ppc_n_lost_interrupts) != 0) do_IRQ(regs); #endif - now = get_tb_or_rtc(); - if (now < decrementer->next_tb) { - /* not time for this event yet */ - now = decrementer->next_tb - now; - if (now <= DECREMENTER_MAX) - set_dec((int)now); - trace_timer_interrupt_exit(regs); - return; - } old_regs = set_irq_regs(regs); irq_enter(); @@ -645,8 +636,16 @@ get_lppaca()->int_dword.fields.decr_int = 0; #endif - if (evt->event_handler) - evt->event_handler(evt); + now = get_tb_or_rtc(); + if (now >= decrementer->next_tb) { + decrementer->next_tb = ~(u64)0; + if (evt->event_handler) + evt->event_handler(evt); + } else { + now = decrementer->next_tb - now; + if (now <= DECREMENTER_MAX) + set_dec((int)now); + } #ifdef CONFIG_PPC_ISERIES if (firmware_has_feature(FW_FEATURE_ISERIES) && hvlpevent_is_pending()) --- linux-2.6.35.orig/arch/powerpc/include/asm/compat.h +++ linux-2.6.35/arch/powerpc/include/asm/compat.h @@ -134,7 +134,7 @@ return (u32)(unsigned long)uptr; } -static inline void __user *compat_alloc_user_space(long len) +static inline void __user *arch_compat_alloc_user_space(long len) { struct pt_regs *regs = current->thread.regs; unsigned long usp = regs->gpr[1]; --- linux-2.6.35.orig/arch/blackfin/mach-bf561/boards/acvilon.c +++ linux-2.6.35/arch/blackfin/mach-bf561/boards/acvilon.c @@ -284,6 +284,7 @@ static struct platform_nand_data bfin_plat_nand_data = { .chip = { + .nr_chips = 1, .chip_delay = 30, #ifdef CONFIG_MTD_PARTITIONS .part_probe_types = part_probes, --- linux-2.6.35.orig/arch/blackfin/mach-bf537/boards/stamp.c +++ linux-2.6.35/arch/blackfin/mach-bf537/boards/stamp.c @@ -400,6 +400,7 @@ static struct platform_nand_data bfin_plat_nand_data = { .chip = { + .nr_chips = 1, .chip_delay = 30, #ifdef CONFIG_MTD_PARTITIONS .part_probe_types = part_probes, --- linux-2.6.35.orig/arch/ia64/kernel/msi_ia64.c +++ linux-2.6.35/arch/ia64/kernel/msi_ia64.c @@ -25,7 +25,7 @@ if (irq_prepare_move(irq, cpu)) return -1; - read_msi_msg(irq, &msg); + get_cached_msi_msg(irq, &msg); addr = msg.address_lo; addr &= MSI_ADDR_DEST_ID_MASK; --- linux-2.6.35.orig/arch/ia64/kernel/fsys.S +++ linux-2.6.35/arch/ia64/kernel/fsys.S @@ -420,22 +420,31 @@ ;; RSM_PSR_I(p0, r18, r19) // mask interrupt delivery - mov ar.ccv=0 andcm r14=r14,r17 // filter out SIGKILL & SIGSTOP + mov r8=EINVAL // default to EINVAL #ifdef CONFIG_SMP - mov r17=1 - ;; - cmpxchg4.acq r18=[r31],r17,ar.ccv // try to acquire the lock - mov r8=EINVAL // default to EINVAL + // __ticket_spin_trylock(r31) + ld4 r17=[r31] ;; + mov.m ar.ccv=r17 + extr.u r9=r17,17,15 + adds r19=1,r17 + extr.u r18=r17,0,15 + ;; + cmp.eq p6,p7=r9,r18 + ;; +(p6) cmpxchg4.acq r9=[r31],r19,ar.ccv +(p6) dep.z r20=r19,1,15 // next serving ticket for unlock +(p7) br.cond.spnt.many .lock_contention + ;; + cmp4.eq p0,p7=r9,r17 + adds r31=2,r31 +(p7) br.cond.spnt.many .lock_contention ld8 r3=[r2] // re-read current->blocked now that we hold the lock - cmp4.ne p6,p0=r18,r0 -(p6) br.cond.spnt.many .lock_contention ;; #else ld8 r3=[r2] // re-read current->blocked now that we hold the lock - mov r8=EINVAL // default to EINVAL #endif add r18=IA64_TASK_PENDING_OFFSET+IA64_SIGPENDING_SIGNAL_OFFSET,r16 add r19=IA64_TASK_SIGNAL_OFFSET,r16 @@ -490,7 +499,9 @@ (p6) br.cond.spnt.few 1b // yes -> retry #ifdef CONFIG_SMP - st4.rel [r31]=r0 // release the lock + // __ticket_spin_unlock(r31) + st2.rel [r31]=r20 + mov r20=0 // i must not leak kernel bits... #endif SSM_PSR_I(p0, p9, r31) ;; @@ -512,7 +523,8 @@ .sig_pending: #ifdef CONFIG_SMP - st4.rel [r31]=r0 // release the lock + // __ticket_spin_unlock(r31) + st2.rel [r31]=r20 // release the lock #endif SSM_PSR_I(p0, p9, r17) ;; --- linux-2.6.35.orig/arch/ia64/include/asm/compat.h +++ linux-2.6.35/arch/ia64/include/asm/compat.h @@ -199,7 +199,7 @@ } static __inline__ void __user * -compat_alloc_user_space (long len) +arch_compat_alloc_user_space (long len) { struct pt_regs *regs = task_pt_regs(current); return (void __user *) (((regs->r12 & 0xffffffff) & -16) - len); --- linux-2.6.35.orig/arch/ia64/sn/kernel/msi_sn.c +++ linux-2.6.35/arch/ia64/sn/kernel/msi_sn.c @@ -175,7 +175,7 @@ * Release XIO resources for the old MSI PCI address */ - read_msi_msg(irq, &msg); + get_cached_msi_msg(irq, &msg); sn_pdev = (struct pcidev_info *)sn_irq_info->irq_pciioinfo; pdev = sn_pdev->pdi_linux_pcidev; provider = SN_PCIDEV_BUSPROVIDER(pdev); --- linux-2.6.35.orig/arch/mips/include/asm/compat.h +++ linux-2.6.35/arch/mips/include/asm/compat.h @@ -145,7 +145,7 @@ return (u32)(unsigned long)uptr; } -static inline void __user *compat_alloc_user_space(long len) +static inline void __user *arch_compat_alloc_user_space(long len) { struct pt_regs *regs = (struct pt_regs *) ((unsigned long) current_thread_info() + THREAD_SIZE - 32) - 1; --- linux-2.6.35.orig/arch/arm/Kconfig +++ linux-2.6.35/arch/arm/Kconfig @@ -1027,6 +1027,18 @@ is not correctly implemented in PL310 as clean lines are not invalidated as a result of these operations. Note that this errata uses Texas Instrument's secure monitor api. + +config ARM_ERRATA_720789 + bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID" + depends on CPU_V7 && SMP + help + This option enables the workaround for the 720789 Cortex-A9 (prior to + r2p0) erratum. A faulty ASID can be sent to the other CPUs for the + broadcasted CP15 TLB maintenance operations TLBIASIDIS and TLBIMVAIS. + As a consequence of this erratum, some TLB entries which should be + invalidated are not, resulting in an incoherency in the system page + tables. The workaround changes the TLB flushing routines to invalidate + entries regardless of the ASID. endmenu source "arch/arm/common/Kconfig" @@ -1375,6 +1387,18 @@ However, if the CPU data cache is using a write-allocate mode, this option is unlikely to provide any performance gain. +config CC_STACKPROTECTOR + bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" + help + This option turns on the -fstack-protector GCC feature. This + feature puts, at the beginning of functions, a canary value on + the stack just before the return address, and validates + the value just before actually returning. Stack based buffer + overflows (that need to overwrite this return address) now also + overwrite the canary, which gets detected and the attack is then + neutralized via a kernel panic. + This feature requires gcc version 4.2 or above. + endmenu menu "Boot options" @@ -1669,6 +1693,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "fs/Kconfig" source "arch/arm/Kconfig.debug" --- linux-2.6.35.orig/arch/arm/Makefile +++ linux-2.6.35/arch/arm/Makefile @@ -34,6 +34,10 @@ KBUILD_CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog endif +ifeq ($(CONFIG_CC_STACKPROTECTOR),y) +KBUILD_CFLAGS +=-fstack-protector +endif + ifeq ($(CONFIG_CPU_BIG_ENDIAN),y) KBUILD_CPPFLAGS += -mbig-endian AS += -EB --- linux-2.6.35.orig/arch/arm/mach-mx3/mach-qong.c +++ linux-2.6.35/arch/arm/mach-mx3/mach-qong.c @@ -169,6 +169,7 @@ static struct platform_nand_data qong_nand_data = { .chip = { + .nr_chips = 1, .chip_delay = 20, .options = 0, }, --- linux-2.6.35.orig/arch/arm/mach-orion5x/ts78xx-setup.c +++ linux-2.6.35/arch/arm/mach-orion5x/ts78xx-setup.c @@ -216,6 +216,7 @@ static struct platform_nand_data ts78xx_ts_nand_data = { .chip = { + .nr_chips = 1, .part_probe_types = ts_nand_part_probes, .partitions = ts78xx_ts_nand_parts, .nr_partitions = ARRAY_SIZE(ts78xx_ts_nand_parts), --- linux-2.6.35.orig/arch/arm/plat-omap/include/plat/cpu.h +++ linux-2.6.35/arch/arm/plat-omap/include/plat/cpu.h @@ -389,6 +389,62 @@ #define OMAP4430_REV_ES1_0 0x44300044 /* + * Silicon revisions + */ +#define OMAP_ES_1_0 0x00 +#define OMAP_ES_2_0 0x10 +#define OMAP_ES_2_1 0x20 +#define OMAP_ES_3_0 0x30 +#define OMAP_ES_3_1 0x40 + +#define OMAP_REV_MASK 0x0000ff00 +#define OMAP_REV_BITS ((omap_rev() & OMAP_REV_MASK) >> 8) + +#define OMAP_REV_IS(revid) \ +static inline u8 omap_rev_is_ ##revid (void) \ +{ \ + return (OMAP_REV_BITS == OMAP_ES_ ##revid) ? 1 : 0; \ +} + +#define OMAP_REV_LT(revid) \ +static inline u8 omap_rev_lt_ ##revid (void) \ +{ \ + return (OMAP_REV_BITS < OMAP_ES_ ##revid) ? 1 : 0; \ +} + +#define OMAP_REV_LE(revid) \ +static inline u8 omap_rev_le_ ##revid (void) \ +{ \ + return (OMAP_REV_BITS <= OMAP_ES_ ##revid) ? 1 : 0; \ +} + +#define OMAP_REV_GT(revid) \ +static inline u8 omap_rev_gt_ ##revid (void) \ +{ \ + return (OMAP_REV_BITS > OMAP_ES_ ##revid) ? 1 : 0; \ +} + +#define OMAP_REV_GE(revid) \ +static inline u8 omap_rev_ge_ ##revid (void) \ +{ \ + return (OMAP_REV_BITS >= OMAP_ES_ ##revid) ? 1 : 0; \ +} + +#define OMAP_REV_FUNCTIONS(revid) \ + OMAP_REV_IS(revid) \ + OMAP_REV_LT(revid) \ + OMAP_REV_LE(revid) \ + OMAP_REV_GT(revid) \ + OMAP_REV_GE(revid) + +OMAP_REV_FUNCTIONS(1_0) +OMAP_REV_FUNCTIONS(2_0) +OMAP_REV_FUNCTIONS(2_1) +OMAP_REV_FUNCTIONS(3_0) +OMAP_REV_FUNCTIONS(3_1) + +/* + * omap_chip bits * * CHIP_IS_OMAP{2420,2430,3430} indicate that a particular structure is --- linux-2.6.35.orig/arch/arm/mach-ixp4xx/ixdp425-setup.c +++ linux-2.6.35/arch/arm/mach-ixp4xx/ixdp425-setup.c @@ -100,6 +100,7 @@ static struct platform_nand_data ixdp425_flash_nand_data = { .chip = { + .nr_chips = 1, .chip_delay = 30, .options = NAND_NO_AUTOINCR, #ifdef CONFIG_MTD_PARTITIONS --- linux-2.6.35.orig/arch/arm/plat-mxc/gpio.c +++ linux-2.6.35/arch/arm/plat-mxc/gpio.c @@ -214,13 +214,16 @@ struct mxc_gpio_port *port = container_of(chip, struct mxc_gpio_port, chip); u32 l; + unsigned long flags; + spin_lock_irqsave(&port->lock, flags); l = __raw_readl(port->base + GPIO_GDIR); if (dir) l |= 1 << offset; else l &= ~(1 << offset); __raw_writel(l, port->base + GPIO_GDIR); + spin_unlock_irqrestore(&port->lock, flags); } static void mxc_gpio_set(struct gpio_chip *chip, unsigned offset, int value) @@ -229,9 +232,12 @@ container_of(chip, struct mxc_gpio_port, chip); void __iomem *reg = port->base + GPIO_DR; u32 l; + unsigned long flags; + spin_lock_irqsave(&port->lock, flags); l = (__raw_readl(reg) & (~(1 << offset))) | (value << offset); __raw_writel(l, reg); + spin_unlock_irqrestore(&port->lock, flags); } static int mxc_gpio_get(struct gpio_chip *chip, unsigned offset) @@ -285,6 +291,8 @@ port[i].chip.base = i * 32; port[i].chip.ngpio = 32; + spin_lock_init(&port[i].lock); + /* its a serious configuration bug when it fails */ BUG_ON( gpiochip_add(&port[i].chip) < 0 ); --- linux-2.6.35.orig/arch/arm/plat-mxc/include/mach/gpio.h +++ linux-2.6.35/arch/arm/plat-mxc/include/mach/gpio.h @@ -19,6 +19,7 @@ #ifndef __ASM_ARCH_MXC_GPIO_H__ #define __ASM_ARCH_MXC_GPIO_H__ +#include #include #include @@ -36,6 +37,7 @@ int virtual_irq_start; struct gpio_chip chip; u32 both_edges; + spinlock_t lock; }; int mxc_gpio_init(struct mxc_gpio_port*, int); --- linux-2.6.35.orig/arch/arm/kernel/entry-armv.S +++ linux-2.6.35/arch/arm/kernel/entry-armv.S @@ -741,6 +741,11 @@ mov r4, #0xffff0fff str r3, [r4, #-15] @ TLS val at 0xffff0ff0 #endif +#if defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_SMP) + ldr r7, [r2, #TI_TASK] + ldr r8, =__stack_chk_guard + ldr r7, [r7, #TSK_STACK_CANARY] +#endif #ifdef CONFIG_MMU mcr p15, 0, r6, c3, c0, 0 @ Set domain register #endif @@ -749,6 +754,9 @@ ldr r0, =thread_notify_head mov r1, #THREAD_NOTIFY_SWITCH bl atomic_notifier_call_chain +#if defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_SMP) + str r7, [r8] +#endif THUMB( mov ip, r4 ) mov r0, r5 ARM( ldmia r4, {r4 - sl, fp, sp, pc} ) @ Load all regs saved previously --- linux-2.6.35.orig/arch/arm/kernel/entry-common.S +++ linux-2.6.35/arch/arm/kernel/entry-common.S @@ -382,11 +382,13 @@ sys_sigreturn_wrapper: add r0, sp, #S_OFF + mov why, #0 @ prevent syscall restart handling b sys_sigreturn ENDPROC(sys_sigreturn_wrapper) sys_rt_sigreturn_wrapper: add r0, sp, #S_OFF + mov why, #0 @ prevent syscall restart handling b sys_rt_sigreturn ENDPROC(sys_rt_sigreturn_wrapper) --- linux-2.6.35.orig/arch/arm/kernel/process.c +++ linux-2.6.35/arch/arm/kernel/process.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -36,6 +37,12 @@ #include #include +#ifdef CONFIG_CC_STACKPROTECTOR +#include +unsigned long __stack_chk_guard __read_mostly; +EXPORT_SYMBOL(__stack_chk_guard); +#endif + static const char *processor_modes[] = { "USER_26", "FIQ_26" , "IRQ_26" , "SVC_26" , "UK4_26" , "UK5_26" , "UK6_26" , "UK7_26" , "UK8_26" , "UK9_26" , "UK10_26", "UK11_26", "UK12_26", "UK13_26", "UK14_26", "UK15_26", @@ -426,3 +433,9 @@ } while (count ++ < 16); return 0; } + +unsigned long arch_randomize_brk(struct mm_struct *mm) +{ + unsigned long range_end = mm->brk + 0x02000000; + return randomize_range(mm->brk, range_end, 0) ? : mm->brk; +} --- linux-2.6.35.orig/arch/arm/kernel/asm-offsets.c +++ linux-2.6.35/arch/arm/kernel/asm-offsets.c @@ -40,6 +40,9 @@ int main(void) { DEFINE(TSK_ACTIVE_MM, offsetof(struct task_struct, active_mm)); +#ifdef CONFIG_CC_STACKPROTECTOR + DEFINE(TSK_STACK_CANARY, offsetof(struct task_struct, stack_canary)); +#endif BLANK(); DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count)); --- linux-2.6.35.orig/arch/arm/mach-pxa/cm-x300.c +++ linux-2.6.35/arch/arm/mach-pxa/cm-x300.c @@ -745,9 +745,10 @@ { cm_x300_init_mfp(); - pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); + if (cpu_is_pxa300()) + pxa_set_ffuart_info(NULL); cm_x300_init_da9030(); cm_x300_init_dm9000(); --- linux-2.6.35.orig/arch/arm/mach-omap2/board-omap3beagle.c +++ linux-2.6.35/arch/arm/mach-omap2/board-omap3beagle.c @@ -53,6 +53,93 @@ #define NAND_BLOCK_SIZE SZ_128K +/* + * OMAP3 Beagle revision + * Run time detection of Beagle revision is done by reading GPIO. + * GPIO ID - + * AXBX = GPIO173, GPIO172, GPIO171: 1 1 1 + * C1_3 = GPIO173, GPIO172, GPIO171: 1 1 0 + * C4 = GPIO173, GPIO172, GPIO171: 1 0 1 + * XM = GPIO173, GPIO172, GPIO171: 0 0 0 + */ +enum { + OMAP3BEAGLE_BOARD_UNKN = 0, + OMAP3BEAGLE_BOARD_AXBX, + OMAP3BEAGLE_BOARD_C1_3, + OMAP3BEAGLE_BOARD_C4, + OMAP3BEAGLE_BOARD_XM, +}; + +static u8 omap3_beagle_version; + +static u8 omap3_beagle_get_rev(void) +{ + return omap3_beagle_version; +} + +static void __init omap3_beagle_init_rev(void) +{ + int ret; + u16 beagle_rev = 0; + + omap_mux_init_gpio(171, OMAP_PIN_INPUT_PULLUP); + omap_mux_init_gpio(172, OMAP_PIN_INPUT_PULLUP); + omap_mux_init_gpio(173, OMAP_PIN_INPUT_PULLUP); + + ret = gpio_request(171, "rev_id_0"); + if (ret < 0) + goto fail0; + + ret = gpio_request(172, "rev_id_1"); + if (ret < 0) + goto fail1; + + ret = gpio_request(173, "rev_id_2"); + if (ret < 0) + goto fail2; + + gpio_direction_input(171); + gpio_direction_input(172); + gpio_direction_input(173); + + beagle_rev = gpio_get_value(171) | (gpio_get_value(172) << 1) + | (gpio_get_value(173) << 2); + + switch (beagle_rev) { + case 7: + printk(KERN_INFO "OMAP3 Beagle Rev: Ax/Bx\n"); + omap3_beagle_version = OMAP3BEAGLE_BOARD_AXBX; + break; + case 6: + printk(KERN_INFO "OMAP3 Beagle Rev: C1/C2/C3\n"); + omap3_beagle_version = OMAP3BEAGLE_BOARD_C1_3; + break; + case 5: + printk(KERN_INFO "OMAP3 Beagle Rev: C4\n"); + omap3_beagle_version = OMAP3BEAGLE_BOARD_C4; + break; + case 0: + printk(KERN_INFO "OMAP3 Beagle Rev: xM\n"); + omap3_beagle_version = OMAP3BEAGLE_BOARD_XM; + break; + default: + printk(KERN_INFO "OMAP3 Beagle Rev: unknown %hd\n", beagle_rev); + omap3_beagle_version = OMAP3BEAGLE_BOARD_UNKN; + } + + return; + +fail2: + gpio_free(172); +fail1: + gpio_free(171); +fail0: + printk(KERN_ERR "Unable to get revision detection GPIO pins\n"); + omap3_beagle_version = OMAP3BEAGLE_BOARD_UNKN; + + return; +} + static struct mtd_partition omap3beagle_nand_partitions[] = { /* All the partition sizes are listed in terms of NAND block size */ { @@ -93,20 +180,6 @@ .dev_ready = NULL, }; -static struct resource omap3beagle_nand_resource = { - .flags = IORESOURCE_MEM, -}; - -static struct platform_device omap3beagle_nand_device = { - .name = "omap2-nand", - .id = -1, - .dev = { - .platform_data = &omap3beagle_nand_data, - }, - .num_resources = 1, - .resource = &omap3beagle_nand_resource, -}; - /* DSS */ static int beagle_enable_dvi(struct omap_dss_device *dssdev) @@ -162,13 +235,20 @@ static struct regulator_consumer_supply beagle_vdac_supply = REGULATOR_SUPPLY("vdda_dac", "omapdss"); -static struct regulator_consumer_supply beagle_vdvi_supply = - REGULATOR_SUPPLY("vdds_dsi", "omapdss"); +static struct regulator_consumer_supply beagle_vdds_supplies[] = { + REGULATOR_SUPPLY("vdds_dsi", "omapdss"), + REGULATOR_SUPPLY("vdds_sdi", "omapdss"), +}; static void __init beagle_display_init(void) { int r; + if (cpu_is_omap3630()) + beagle_dvi_device.reset_gpio = 129; + else + beagle_dvi_device.reset_gpio = 170; + r = gpio_request(beagle_dvi_device.reset_gpio, "DVI reset"); if (r < 0) { printk(KERN_ERR "Unable to get DVI reset GPIO\n"); @@ -202,7 +282,10 @@ static int beagle_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { - if (system_rev >= 0x20 && system_rev <= 0x34301000) { + if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) { + mmc[0].gpio_wp = -EINVAL; + } else if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C1_3) || + (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C4)) { omap_mux_init_gpio(23, OMAP_PIN_INPUT); mmc[0].gpio_wp = 23; } else { @@ -220,12 +303,26 @@ * power switch and overcurrent detect */ - gpio_request(gpio + 1, "EHCI_nOC"); - gpio_direction_input(gpio + 1); - - /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ - gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); - gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + if (cpu_is_omap3630()) { + gpio_request(gpio + 1, "nDVI_PWR_EN"); + gpio_direction_output(gpio + 1, 0); + + /* On the xM A3 DVI_PUP was moved to an empty GPIO pin on the TPS65950 */ + gpio_request(gpio + 2, "DVI_PUP"); + gpio_direction_output(gpio + 2, 1); + + /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ + gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); + gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); + } + else { + gpio_request(gpio + 1, "EHCI_nOC"); + gpio_direction_input(gpio + 1); + + /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ + gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); + gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + } /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; @@ -291,7 +388,6 @@ /* VPLL2 for digital video outputs */ static struct regulator_init_data beagle_vpll2 = { .constraints = { - .name = "VDVI", .min_uV = 1800000, .max_uV = 1800000, .valid_modes_mask = REGULATOR_MODE_NORMAL @@ -299,8 +395,8 @@ .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, - .num_consumer_supplies = 1, - .consumer_supplies = &beagle_vdvi_supply, + .num_consumer_supplies = ARRAY_SIZE(beagle_vdds_supplies), + .consumer_supplies = beagle_vdds_supplies, }; static struct twl4030_usb_data beagle_usb_data = { @@ -339,13 +435,19 @@ }, }; +static struct i2c_board_info __initdata beagle_i2c_eeprom[] = { + { + I2C_BOARD_INFO("eeprom", 0x50), + }, +}; + static int __init omap3_beagle_i2c_init(void) { omap_register_i2c_bus(1, 2600, beagle_i2c_boardinfo, ARRAY_SIZE(beagle_i2c_boardinfo)); /* Bus 3 is attached to the DVI port where devices like the pico DLP * projector don't work reliably with 400kHz */ - omap_register_i2c_bus(3, 100, NULL, 0); + omap_register_i2c_bus(3, 100, beagle_i2c_eeprom, ARRAY_SIZE(beagle_i2c_eeprom)); return 0; } @@ -452,7 +554,7 @@ omap3beagle_nand_data.gpmc_baseaddr = (void *) (gpmc_base_add); printk(KERN_INFO "Registering NAND on CS%d\n", nandcs); - if (platform_device_register(&omap3beagle_nand_device) < 0) + if (gpmc_nand_init(&omap3beagle_nand_data) < 0) printk(KERN_ERR "Unable to register NAND device\n"); } } @@ -486,16 +588,12 @@ static void __init omap3_beagle_init(void) { omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); + omap3_beagle_init_rev(); omap3_beagle_i2c_init(); platform_add_devices(omap3_beagle_devices, ARRAY_SIZE(omap3_beagle_devices)); omap_serial_init(); - omap_mux_init_gpio(170, OMAP_PIN_INPUT); - gpio_request(170, "DVI_nPD"); - /* REVISIT leave DVI powered down until it's needed ... */ - gpio_direction_output(170, true); - usb_musb_init(&musb_board_data); usb_ehci_init(&ehci_pdata); omap3beagle_flash_init(); --- linux-2.6.35.orig/arch/arm/mach-omap2/board-overo.c +++ linux-2.6.35/arch/arm/mach-omap2/board-overo.c @@ -40,6 +40,7 @@ #include #include +#include #include #include #include @@ -139,16 +140,6 @@ }, }; -static struct resource overo_smsc911x2_resources[] = { - { - .name = "smsc911x2-memory", - .flags = IORESOURCE_MEM, - }, - { - .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, - }, -}; - static struct smsc911x_platform_config overo_smsc911x_config = { .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, @@ -196,6 +187,81 @@ static inline void __init overo_init_smsc911x(void) { return; } #endif +/* DSS */ +static int lcd_enabled; +static int dvi_enabled; + +#define OVERO_GPIO_LCD_EN 144 +#define OVERO_GPIO_LCD_BL 145 + +static void __init overo_display_init(void) +{ + if ((gpio_request(OVERO_GPIO_LCD_EN, "OVERO_GPIO_LCD_EN") == 0) && + (gpio_direction_output(OVERO_GPIO_LCD_EN, 1) == 0)) + gpio_export(OVERO_GPIO_LCD_EN, 0); + else + printk(KERN_ERR "could not obtain gpio for " + "OVERO_GPIO_LCD_EN\n"); + + if ((gpio_request(OVERO_GPIO_LCD_BL, "OVERO_GPIO_LCD_BL") == 0) && + (gpio_direction_output(OVERO_GPIO_LCD_BL, 1) == 0)) + gpio_export(OVERO_GPIO_LCD_BL, 0); + else + printk(KERN_ERR "could not obtain gpio for " + "OVERO_GPIO_LCD_BL\n"); +} + +static int overo_panel_enable_dvi(struct omap_dss_device *dssdev) +{ + if (lcd_enabled) { + printk(KERN_ERR "cannot enable DVI, LCD is enabled\n"); + return -EINVAL; + } + dvi_enabled = 1; + + return 0; +} + +static void overo_panel_disable_dvi(struct omap_dss_device *dssdev) +{ + dvi_enabled = 0; +} + +static struct omap_dss_device overo_dvi_device = { + .type = OMAP_DISPLAY_TYPE_DPI, + .name = "dvi", + .driver_name = "generic_panel", + .phy.dpi.data_lines = 24, + .platform_enable = overo_panel_enable_dvi, + .platform_disable = overo_panel_disable_dvi, +}; + +static struct omap_dss_device *overo_dss_devices[] = { + &overo_dvi_device, +}; + +static struct omap_dss_board_info overo_dss_data = { + .num_devices = ARRAY_SIZE(overo_dss_devices), + .devices = overo_dss_devices, + .default_device = &overo_dvi_device, +}; + +static struct platform_device overo_dss_device = { + .name = "omapdss", + .id = -1, + .dev = { + .platform_data = &overo_dss_data, + }, +}; + +static struct regulator_consumer_supply overo_vdda_dac_supply = + REGULATOR_SUPPLY("vdda_dac", "omapdss"); + +static struct regulator_consumer_supply overo_vdds_supplies[] = { + REGULATOR_SUPPLY("vdds_dsi", "omapdss"), + REGULATOR_SUPPLY("vdds_sdi", "omapdss"), +}; + static struct mtd_partition overo_nand_partitions[] = { { .name = "xloader", @@ -341,6 +407,34 @@ .consumer_supplies = &overo_vmmc1_supply, }; +/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */ +static struct regulator_init_data overo_vdac = { + .constraints = { + .min_uV = 1800000, + .max_uV = 1800000, + .valid_modes_mask = REGULATOR_MODE_NORMAL + | REGULATOR_MODE_STANDBY, + .valid_ops_mask = REGULATOR_CHANGE_MODE + | REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies = 1, + .consumer_supplies = &overo_vdda_dac_supply, +}; + +/* VPLL2 for digital video outputs */ +static struct regulator_init_data overo_vpll2 = { + .constraints = { + .min_uV = 1800000, + .max_uV = 1800000, + .valid_modes_mask = REGULATOR_MODE_NORMAL + | REGULATOR_MODE_STANDBY, + .valid_ops_mask = REGULATOR_CHANGE_MODE + | REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies = ARRAY_SIZE(overo_vdds_supplies), + .consumer_supplies = overo_vdds_supplies, +}; + static struct twl4030_codec_audio_data overo_audio_data = { .audio_mclk = 26000000, }; @@ -359,6 +453,8 @@ .usb = &overo_usb_data, .codec = &overo_codec_data, .vmmc1 = &overo_vmmc1, + .vdac = &overo_vdac, + .vpll2 = &overo_vpll2, }; static struct i2c_board_info __initdata overo_i2c_boardinfo[] = { @@ -379,23 +475,8 @@ return 0; } -static struct platform_device overo_lcd_device = { - .name = "overo_lcd", - .id = -1, -}; - -static struct omap_lcd_config overo_lcd_config __initdata = { - .ctrl_name = "internal", -}; - -static struct omap_board_config_kernel overo_config[] __initdata = { - { OMAP_TAG_LCD, &overo_lcd_config }, -}; - static void __init overo_init_irq(void) { - omap_board_config = overo_config; - omap_board_config_size = ARRAY_SIZE(overo_config); omap2_init_common_hw(mt46h32m32lf6_sdrc_params, mt46h32m32lf6_sdrc_params); omap_init_irq(); @@ -403,7 +484,7 @@ } static struct platform_device *overo_devices[] __initdata = { - &overo_lcd_device, + &overo_dss_device, }; static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { @@ -442,6 +523,7 @@ usb_ehci_init(&ehci_pdata); overo_ads7846_init(); overo_init_smsc911x(); + overo_display_init(); /* Ensure SDRC pins are mux'd for self-refresh */ omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); --- linux-2.6.35.orig/arch/arm/mach-omap2/board-omap3evm.c +++ linux-2.6.35/arch/arm/mach-omap2/board-omap3evm.c @@ -514,9 +514,9 @@ }; /* VPLL2 for digital video outputs */ -static struct regulator_consumer_supply omap3_evm_vpll2_supply = { - .supply = "vdvi", - .dev = &omap3_evm_lcd_device.dev, +static struct regulator_consumer_supply omap3_evm_vdds_supplies[] = { + REGULATOR_SUPPLY("vdds_sdi", "omapdss"), + REGULATOR_SUPPLY("vdds_dsi", "omapdss"), }; static struct regulator_init_data omap3_evm_vpll2 = { @@ -530,8 +530,8 @@ .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, - .num_consumer_supplies = 1, - .consumer_supplies = &omap3_evm_vpll2_supply, + .num_consumer_supplies = ARRAY_SIZE(omap3_evm_vdds_supplies), + .consumer_supplies = omap3_evm_vdds_supplies, }; static struct twl4030_platform_data omap3evm_twldata = { @@ -618,6 +618,13 @@ }, }; +static struct platform_device omap3_evm_nop_usb_device = { + .name = "nop_usb_xceiv", + .id = -1, + .resource = NULL, + .num_resources = 0, +}; + static struct omap_board_config_kernel omap3_evm_config[] __initdata = { }; @@ -632,6 +639,7 @@ static struct platform_device *omap3_evm_devices[] __initdata = { &omap3_evm_dss_device, + &omap3_evm_nop_usb_device, }; static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = { @@ -680,9 +688,6 @@ omap_serial_init(); - /* OMAP3EVM uses ISP1504 phy and so register nop transceiver */ - usb_nop_xceiv_register(); - if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) { /* enable EHCI VBUS using GPIO22 */ omap_mux_init_gpio(22, OMAP_PIN_INPUT_PULLUP); --- linux-2.6.35.orig/arch/arm/mach-omap2/board-igep0020.c +++ linux-2.6.35/arch/arm/mach-omap2/board-igep0020.c @@ -38,12 +38,61 @@ #define IGEP2_SMSC911X_CS 5 #define IGEP2_SMSC911X_GPIO 176 #define IGEP2_GPIO_USBH_NRESET 24 -#define IGEP2_GPIO_LED0_GREEN 26 -#define IGEP2_GPIO_LED0_RED 27 -#define IGEP2_GPIO_LED1_RED 28 -#define IGEP2_GPIO_DVI_PUP 170 -#define IGEP2_GPIO_WIFI_NPD 94 -#define IGEP2_GPIO_WIFI_NRESET 95 +#define IGEP2_GPIO_LED0_GREEN 26 +#define IGEP2_GPIO_LED0_RED 27 +#define IGEP2_GPIO_LED1_RED 28 +#define IGEP2_GPIO_DVI_PUP 170 + +#define IGEP2_RB_GPIO_WIFI_NPD 94 +#define IGEP2_RB_GPIO_WIFI_NRESET 95 +#define IGEP2_RB_GPIO_BT_NRESET 137 +#define IGEP2_RC_GPIO_WIFI_NPD 138 +#define IGEP2_RC_GPIO_WIFI_NRESET 139 +#define IGEP2_RC_GPIO_BT_NRESET 137 + +/* + * IGEP2 Hardware Revision Table + * + * -------------------------------------------------------------------------- + * | Id. | Hw Rev. | HW0 (28) | WIFI_NPD | WIFI_NRESET | BT_NRESET | + * -------------------------------------------------------------------------- + * | 0 | B | high | gpio94 | gpio95 | - | + * | 0 | B/C (B-compatible) | high | gpio94 | gpio95 | gpio137 | + * | 1 | C | low | gpio138 | gpio139 | gpio137 | + * -------------------------------------------------------------------------- + */ + +#define IGEP2_BOARD_HWREV_B 0 +#define IGEP2_BOARD_HWREV_C 1 + +static u8 hwrev; + +static void __init igep2_get_revision(void) +{ + u8 ret; + + omap_mux_init_gpio(IGEP2_GPIO_LED1_RED, OMAP_PIN_INPUT); + + if ((gpio_request(IGEP2_GPIO_LED1_RED, "GPIO_HW0_REV") == 0) && + (gpio_direction_input(IGEP2_GPIO_LED1_RED) == 0)) { + ret = gpio_get_value(IGEP2_GPIO_LED1_RED); + if (ret == 0) { + pr_info("IGEP2: Hardware Revision C (B-NON compatible)\n"); + hwrev = IGEP2_BOARD_HWREV_C; + } else if (ret == 1) { + pr_info("IGEP2: Hardware Revision B/C (B compatible)\n"); + hwrev = IGEP2_BOARD_HWREV_B; + } else { + pr_err("IGEP2: Unknown Hardware Revision\n"); + hwrev = -1; + } + } else { + pr_warning("IGEP2: Could not obtain gpio GPIO_HW0_REV\n"); + pr_err("IGEP2: Unknown Hardware Revision\n"); + } + + gpio_free(IGEP2_GPIO_LED1_RED); +} #if defined(CONFIG_MTD_ONENAND_OMAP2) || \ defined(CONFIG_MTD_ONENAND_OMAP2_MODULE) @@ -211,10 +260,6 @@ .supply = "vmmc", }; -static struct regulator_consumer_supply igep2_vmmc2_supply = { - .supply = "vmmc", -}; - /* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */ static struct regulator_init_data igep2_vmmc1 = { .constraints = { @@ -230,21 +275,6 @@ .consumer_supplies = &igep2_vmmc1_supply, }; -/* VMMC2 for OMAP VDD_MMC2 (i/o) and MMC2 WIFI */ -static struct regulator_init_data igep2_vmmc2 = { - .constraints = { - .min_uV = 1850000, - .max_uV = 3150000, - .valid_modes_mask = REGULATOR_MODE_NORMAL - | REGULATOR_MODE_STANDBY, - .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE - | REGULATOR_CHANGE_MODE - | REGULATOR_CHANGE_STATUS, - }, - .num_consumer_supplies = 1, - .consumer_supplies = &igep2_vmmc2_supply, -}; - static struct omap2_hsmmc_info mmc[] = { { .mmc = 1, @@ -252,15 +282,88 @@ .gpio_cd = -EINVAL, .gpio_wp = -EINVAL, }, +#if defined(CONFIG_LIBERTAS_SDIO) || defined(CONFIG_LIBERTAS_SDIO_MODULE) { .mmc = 2, .wires = 4, .gpio_cd = -EINVAL, .gpio_wp = -EINVAL, }, +#endif {} /* Terminator */ }; +#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE) +#include + +static struct gpio_led igep2_gpio_leds[] = { + [0] = { + .name = "gpio-led:red:d0", + .gpio = IGEP2_GPIO_LED0_RED, + .default_trigger = "default-off" + }, + [1] = { + .name = "gpio-led:green:d0", + .gpio = IGEP2_GPIO_LED0_GREEN, + .default_trigger = "default-off", + }, + [2] = { + .name = "gpio-led:red:d1", + .gpio = IGEP2_GPIO_LED1_RED, + .default_trigger = "default-off", + }, + [3] = { + .name = "gpio-led:green:d1", + .default_trigger = "heartbeat", + .gpio = -EINVAL, /* gets replaced */ + }, +}; + +static struct gpio_led_platform_data igep2_led_pdata = { + .leds = igep2_gpio_leds, + .num_leds = ARRAY_SIZE(igep2_gpio_leds), +}; + +static struct platform_device igep2_led_device = { + .name = "leds-gpio", + .id = -1, + .dev = { + .platform_data = &igep2_led_pdata, + }, +}; + +static void __init igep2_leds_init(void) +{ + platform_device_register(&igep2_led_device); +} + +#else +static inline void igep2_leds_init(void) +{ + if ((gpio_request(IGEP2_GPIO_LED0_RED, "gpio-led:red:d0") == 0) && + (gpio_direction_output(IGEP2_GPIO_LED0_RED, 1) == 0)) { + gpio_export(IGEP2_GPIO_LED0_RED, 0); + gpio_set_value(IGEP2_GPIO_LED0_RED, 0); + } else + pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_RED\n"); + + if ((gpio_request(IGEP2_GPIO_LED0_GREEN, "gpio-led:green:d0") == 0) && + (gpio_direction_output(IGEP2_GPIO_LED0_GREEN, 1) == 0)) { + gpio_export(IGEP2_GPIO_LED0_GREEN, 0); + gpio_set_value(IGEP2_GPIO_LED0_GREEN, 0); + } else + pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_GREEN\n"); + + if ((gpio_request(IGEP2_GPIO_LED1_RED, "gpio-led:red:d1") == 0) && + (gpio_direction_output(IGEP2_GPIO_LED1_RED, 1) == 0)) { + gpio_export(IGEP2_GPIO_LED1_RED, 0); + gpio_set_value(IGEP2_GPIO_LED1_RED, 0); + } else + pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_RED\n"); + +} +#endif + static int igep2_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { @@ -268,20 +371,48 @@ mmc[0].gpio_cd = gpio + 0; omap2_hsmmc_init(mmc); - /* link regulators to MMC adapters ... we "know" the + /* + * link regulators to MMC adapters ... we "know" the * regulators will be set up only *after* we return. - */ + */ igep2_vmmc1_supply.dev = mmc[0].dev; - igep2_vmmc2_supply.dev = mmc[1].dev; + + /* + * REVISIT: need ehci-omap hooks for external VBUS + * power switch and overcurrent detect + */ + if ((gpio_request(gpio + 1, "GPIO_EHCI_NOC") < 0) || + (gpio_direction_input(gpio + 1) < 0)) + pr_err("IGEP2: Could not obtain gpio for EHCI NOC"); + + /* + * TWL4030_GPIO_MAX + 0 == ledA, GPIO_USBH_CPEN + * (out, active low) + */ + if ((gpio_request(gpio + TWL4030_GPIO_MAX, "GPIO_USBH_CPEN") < 0) || + (gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0) < 0)) + pr_err("IGEP2: Could not obtain gpio for USBH_CPEN"); + + /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */ +#if !defined(CONFIG_LEDS_GPIO) && !defined(CONFIG_LEDS_GPIO_MODULE) + if ((gpio_request(gpio+TWL4030_GPIO_MAX+1, "gpio-led:green:d1") == 0) + && (gpio_direction_output(gpio + TWL4030_GPIO_MAX + 1, 1) == 0)) { + gpio_export(gpio + TWL4030_GPIO_MAX + 1, 0); + gpio_set_value(gpio + TWL4030_GPIO_MAX + 1, 0); + } else + pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_GREEN\n"); +#else + igep2_gpio_leds[3].gpio = gpio + TWL4030_GPIO_MAX + 1; +#endif return 0; }; -static struct twl4030_gpio_platform_data igep2_gpio_data = { +static struct twl4030_gpio_platform_data igep2_twl4030_gpio_pdata = { .gpio_base = OMAP_MAX_GPIO_LINES, .irq_base = TWL4030_GPIO_IRQ_BASE, .irq_end = TWL4030_GPIO_IRQ_END, - .use_leds = false, + .use_leds = true, .setup = igep2_twl_gpio_setup, }; @@ -310,8 +441,16 @@ .platform_disable = igep2_disable_dvi, }; +static struct omap_dss_device igep2_tv_device = { + .name = "tv", + .driver_name = "venc", + .type = OMAP_DISPLAY_TYPE_VENC, + .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, +}; + static struct omap_dss_device *igep2_dss_devices[] = { - &igep2_dvi_device + &igep2_dvi_device, + &igep2_tv_device, }; static struct omap_dss_board_info igep2_dss_data = { @@ -328,9 +467,29 @@ }, }; -static struct regulator_consumer_supply igep2_vpll2_supply = { - .supply = "vdds_dsi", - .dev = &igep2_dss_device.dev, +static struct regulator_consumer_supply igep2_vdda_dac_supply = { + .supply = "vdda_dac", + .dev = &igep2_dss_device.dev, +}; + +/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */ +static struct regulator_init_data igep2_vdac = { + .constraints = { + .min_uV = 1800000, + .max_uV = 1800000, + .valid_modes_mask = REGULATOR_MODE_NORMAL + | REGULATOR_MODE_STANDBY, + .valid_ops_mask = REGULATOR_CHANGE_MODE + | REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies = 1, + .consumer_supplies = &igep2_vdda_dac_supply, +}; + +/* VPLL2 for digital video outputs */ +static struct regulator_consumer_supply igep2_vdds_supplies[] = { + REGULATOR_SUPPLY("vdds_sdi", "omapdss"), + REGULATOR_SUPPLY("vdds_dsi", "omapdss"), }; static struct regulator_init_data igep2_vpll2 = { @@ -344,8 +503,8 @@ .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, - .num_consumer_supplies = 1, - .consumer_supplies = &igep2_vpll2_supply, + .num_consumer_supplies = ARRAY_SIZE(igep2_vdds_supplies), + .consumer_supplies = igep2_vdds_supplies, }; static void __init igep2_display_init(void) @@ -355,47 +514,6 @@ pr_err("IGEP v2: Could not obtain gpio GPIO_DVI_PUP\n"); } -#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE) -#include - -static struct gpio_led igep2_gpio_leds[] = { - { - .name = "led0:red", - .gpio = IGEP2_GPIO_LED0_RED, - }, - { - .name = "led0:green", - .default_trigger = "heartbeat", - .gpio = IGEP2_GPIO_LED0_GREEN, - }, - { - .name = "led1:red", - .gpio = IGEP2_GPIO_LED1_RED, - }, -}; - -static struct gpio_led_platform_data igep2_led_pdata = { - .leds = igep2_gpio_leds, - .num_leds = ARRAY_SIZE(igep2_gpio_leds), -}; - -static struct platform_device igep2_led_device = { - .name = "leds-gpio", - .id = -1, - .dev = { - .platform_data = &igep2_led_pdata, - }, -}; - -static void __init igep2_init_led(void) -{ - platform_device_register(&igep2_led_device); -} - -#else -static inline void igep2_init_led(void) {} -#endif - static struct platform_device *igep2_devices[] __initdata = { &igep2_dss_device, }; @@ -425,14 +543,13 @@ /* platform_data for children goes here */ .usb = &igep2_usb_data, .codec = &igep2_codec_data, - .gpio = &igep2_gpio_data, + .gpio = &igep2_twl4030_gpio_pdata, .vmmc1 = &igep2_vmmc1, - .vmmc2 = &igep2_vmmc2, .vpll2 = &igep2_vpll2, - + .vdac = &igep2_vdac, }; -static struct i2c_board_info __initdata igep2_i2c_boardinfo[] = { +static struct i2c_board_info __initdata igep2_i2c1_boardinfo[] = { { I2C_BOARD_INFO("twl4030", 0x48), .flags = I2C_CLIENT_WAKE, @@ -441,14 +558,29 @@ }, }; -static int __init igep2_i2c_init(void) +static struct i2c_board_info __initdata igep2_i2c3_boardinfo[] = { + { + I2C_BOARD_INFO("eeprom", 0x50), + }, +}; + +static void __init igep2_i2c_init(void) { - omap_register_i2c_bus(1, 2600, igep2_i2c_boardinfo, - ARRAY_SIZE(igep2_i2c_boardinfo)); - /* Bus 3 is attached to the DVI port where devices like the pico DLP - * projector don't work reliably with 400kHz */ - omap_register_i2c_bus(3, 100, NULL, 0); - return 0; + int ret; + + ret = omap_register_i2c_bus(1, 2600, igep2_i2c1_boardinfo, + ARRAY_SIZE(igep2_i2c1_boardinfo)); + if (ret) + pr_warning("IGEP2: Could not register I2C1 bus (%d)\n", ret); + + /* + * Bus 3 is attached to the DVI port where devices like the pico DLP + * projector don't work reliably with 400kHz + */ + ret = omap_register_i2c_bus(3, 100, igep2_i2c3_boardinfo, + ARRAY_SIZE(igep2_i2c3_boardinfo)); + if (ret) + pr_warning("IGEP2: Could not register I2C3 bus (%d)\n", ret); } static struct omap_musb_board_data musb_board_data = { @@ -476,9 +608,57 @@ #define board_mux NULL #endif +#if defined(CONFIG_LIBERTAS_SDIO) || defined(CONFIG_LIBERTAS_SDIO_MODULE) + +static void __init igep2_wlan_bt_init(void) +{ + unsigned npd, wreset, btreset; + + /* GPIO's for WLAN-BT combo depends on hardware revision */ + if (hwrev == IGEP2_BOARD_HWREV_B) { + npd = IGEP2_RB_GPIO_WIFI_NPD; + wreset = IGEP2_RB_GPIO_WIFI_NRESET; + btreset = IGEP2_RB_GPIO_BT_NRESET; + } else if (hwrev == IGEP2_BOARD_HWREV_C) { + npd = IGEP2_RC_GPIO_WIFI_NPD; + wreset = IGEP2_RC_GPIO_WIFI_NRESET; + btreset = IGEP2_RC_GPIO_BT_NRESET; + } else + return; + + /* Set GPIO's for WLAN-BT combo module */ + if ((gpio_request(npd, "GPIO_WIFI_NPD") == 0) && + (gpio_direction_output(npd, 1) == 0)) { + gpio_export(npd, 0); + } else + pr_warning("IGEP2: Could not obtain gpio GPIO_WIFI_NPD\n"); + + if ((gpio_request(wreset, "GPIO_WIFI_NRESET") == 0) && + (gpio_direction_output(wreset, 1) == 0)) { + gpio_export(wreset, 0); + gpio_set_value(wreset, 0); + udelay(10); + gpio_set_value(wreset, 1); + } else + pr_warning("IGEP2: Could not obtain gpio GPIO_WIFI_NRESET\n"); + + if ((gpio_request(btreset, "GPIO_BT_NRESET") == 0) && + (gpio_direction_output(btreset, 1) == 0)) { + gpio_export(btreset, 0); + } else + pr_warning("IGEP2: Could not obtain gpio GPIO_BT_NRESET\n"); +} +#else +static inline void __init igep2_wlan_bt_init(void) { } +#endif + static void __init igep2_init(void) { omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); + + /* Get IGEP2 hardware revision */ + igep2_get_revision(); + /* Register I2C busses and drivers */ igep2_i2c_init(); platform_add_devices(igep2_devices, ARRAY_SIZE(igep2_devices)); omap_serial_init(); @@ -486,50 +666,16 @@ usb_ehci_init(&ehci_pdata); igep2_flash_init(); - igep2_init_led(); + igep2_leds_init(); igep2_display_init(); igep2_init_smsc911x(); - /* GPIO userspace leds */ -#if !defined(CONFIG_LEDS_GPIO) && !defined(CONFIG_LEDS_GPIO_MODULE) - if ((gpio_request(IGEP2_GPIO_LED0_RED, "led0:red") == 0) && - (gpio_direction_output(IGEP2_GPIO_LED0_RED, 1) == 0)) { - gpio_export(IGEP2_GPIO_LED0_RED, 0); - gpio_set_value(IGEP2_GPIO_LED0_RED, 0); - } else - pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_RED\n"); - - if ((gpio_request(IGEP2_GPIO_LED0_GREEN, "led0:green") == 0) && - (gpio_direction_output(IGEP2_GPIO_LED0_GREEN, 1) == 0)) { - gpio_export(IGEP2_GPIO_LED0_GREEN, 0); - gpio_set_value(IGEP2_GPIO_LED0_GREEN, 0); - } else - pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_GREEN\n"); + /* + * WLAN-BT combo module from MuRata wich has a Marvell WLAN + * (88W8686) + CSR Bluetooth chipset. Uses SDIO interface. + */ + igep2_wlan_bt_init(); - if ((gpio_request(IGEP2_GPIO_LED1_RED, "led1:red") == 0) && - (gpio_direction_output(IGEP2_GPIO_LED1_RED, 1) == 0)) { - gpio_export(IGEP2_GPIO_LED1_RED, 0); - gpio_set_value(IGEP2_GPIO_LED1_RED, 0); - } else - pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_RED\n"); -#endif - - /* GPIO W-LAN + Bluetooth combo module */ - if ((gpio_request(IGEP2_GPIO_WIFI_NPD, "GPIO_WIFI_NPD") == 0) && - (gpio_direction_output(IGEP2_GPIO_WIFI_NPD, 1) == 0)) { - gpio_export(IGEP2_GPIO_WIFI_NPD, 0); -/* gpio_set_value(IGEP2_GPIO_WIFI_NPD, 0); */ - } else - pr_warning("IGEP v2: Could not obtain gpio GPIO_WIFI_NPD\n"); - - if ((gpio_request(IGEP2_GPIO_WIFI_NRESET, "GPIO_WIFI_NRESET") == 0) && - (gpio_direction_output(IGEP2_GPIO_WIFI_NRESET, 1) == 0)) { - gpio_export(IGEP2_GPIO_WIFI_NRESET, 0); - gpio_set_value(IGEP2_GPIO_WIFI_NRESET, 0); - udelay(10); - gpio_set_value(IGEP2_GPIO_WIFI_NRESET, 1); - } else - pr_warning("IGEP v2: Could not obtain gpio GPIO_WIFI_NRESET\n"); } static void __init igep2_map_io(void) --- linux-2.6.35.orig/arch/arm/mach-omap2/board-4430sdp.c +++ linux-2.6.35/arch/arm/mach-omap2/board-4430sdp.c @@ -110,8 +110,16 @@ .id = -1, }; +static struct platform_device sdp4430_nop_usb_device = { + .name = "nop_usb_xceiv", + .id = -1, + .resource = NULL, + .num_resources = 0, +}; + static struct platform_device *sdp4430_devices[] __initdata = { &sdp4430_lcd_device, + &sdp4430_nop_usb_device, }; static struct omap_lcd_config sdp4430_lcd_config __initdata = { @@ -374,8 +382,6 @@ platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); omap_serial_init(); omap4_twl6030_hsmmc_init(mmc); - /* OMAP4 SDP uses internal transceiver so register nop transceiver */ - usb_nop_xceiv_register(); /* FIXME: allow multi-omap to boot until musb is updated for omap4 */ if (!cpu_is_omap44xx()) usb_musb_init(&musb_board_data); --- linux-2.6.35.orig/arch/arm/mach-versatile/Kconfig +++ linux-2.6.35/arch/arm/mach-versatile/Kconfig @@ -3,14 +3,14 @@ config ARCH_VERSATILE_PB bool "Support Versatile/PB platform" - select CPU_ARM926T + select CPU_V7 default y help Include support for the ARM(R) Versatile/PB platform. config MACH_VERSATILE_AB bool "Support Versatile/AB platform" - select CPU_ARM926T + select CPU_V7 help Include support for the ARM(R) Versatile/AP platform. --- linux-2.6.35.orig/arch/arm/mach-at91/at91sam9g45_devices.c +++ linux-2.6.35/arch/arm/mach-at91/at91sam9g45_devices.c @@ -46,7 +46,7 @@ .end = AT91_BASE_SYS + AT91_DMA + SZ_512 - 1, .flags = IORESOURCE_MEM, }, - [2] = { + [1] = { .start = AT91SAM9G45_ID_DMA, .end = AT91SAM9G45_ID_DMA, .flags = IORESOURCE_IRQ, --- linux-2.6.35.orig/arch/arm/mm/mmap.c +++ linux-2.6.35/arch/arm/mm/mmap.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -80,6 +81,9 @@ start_addr = addr = TASK_UNMAPPED_BASE; mm->cached_hole_size = 0; } + /* 8 bits of randomness in 20 address space bits */ + if (current->flags & PF_RANDOMIZE) + addr += (get_random_int() % (1 << 8)) << PAGE_SHIFT; full_search: if (do_align) --- linux-2.6.35.orig/arch/arm/include/asm/elf.h +++ linux-2.6.35/arch/arm/include/asm/elf.h @@ -121,4 +121,7 @@ extern void elf_set_personality(const struct elf32_hdr *); #define SET_PERSONALITY(ex) elf_set_personality(&(ex)) +extern unsigned long arch_randomize_brk(struct mm_struct *mm); +#define arch_randomize_brk arch_randomize_brk + #endif --- linux-2.6.35.orig/arch/arm/include/asm/tlbflush.h +++ linux-2.6.35/arch/arm/include/asm/tlbflush.h @@ -378,7 +378,11 @@ if (tlb_flag(TLB_V6_I_ASID)) asm("mcr p15, 0, %0, c8, c5, 2" : : "r" (asid) : "cc"); if (tlb_flag(TLB_V7_UIS_ASID)) +#ifdef CONFIG_ARM_ERRATA_720789 + asm("mcr p15, 0, %0, c8, c3, 0" : : "r" (zero) : "cc"); +#else asm("mcr p15, 0, %0, c8, c3, 2" : : "r" (asid) : "cc"); +#endif if (tlb_flag(TLB_BTB)) { /* flush the branch target cache */ @@ -424,7 +428,11 @@ if (tlb_flag(TLB_V6_I_PAGE)) asm("mcr p15, 0, %0, c8, c5, 1" : : "r" (uaddr) : "cc"); if (tlb_flag(TLB_V7_UIS_PAGE)) +#ifdef CONFIG_ARM_ERRATA_720789 + asm("mcr p15, 0, %0, c8, c3, 3" : : "r" (uaddr & PAGE_MASK) : "cc"); +#else asm("mcr p15, 0, %0, c8, c3, 1" : : "r" (uaddr) : "cc"); +#endif if (tlb_flag(TLB_BTB)) { /* flush the branch target cache */ --- linux-2.6.35.orig/arch/arm/include/asm/ptrace.h +++ linux-2.6.35/arch/arm/include/asm/ptrace.h @@ -158,15 +158,24 @@ */ static inline int valid_user_regs(struct pt_regs *regs) { - if (user_mode(regs) && (regs->ARM_cpsr & PSR_I_BIT) == 0) { - regs->ARM_cpsr &= ~(PSR_F_BIT | PSR_A_BIT); - return 1; + unsigned long mode = regs->ARM_cpsr & MODE_MASK; + + /* + * Always clear the F (FIQ) and A (delayed abort) bits + */ + regs->ARM_cpsr &= ~(PSR_F_BIT | PSR_A_BIT); + + if ((regs->ARM_cpsr & PSR_I_BIT) == 0) { + if (mode == USR_MODE) + return 1; + if (elf_hwcap & HWCAP_26BIT && mode == USR26_MODE) + return 1; } /* * Force CPSR to something logical... */ - regs->ARM_cpsr &= PSR_f | PSR_s | (PSR_x & ~PSR_A_BIT) | PSR_T_BIT | MODE32_BIT; + regs->ARM_cpsr &= PSR_f | PSR_s | PSR_x | PSR_T_BIT | MODE32_BIT; if (!(elf_hwcap & HWCAP_26BIT)) regs->ARM_cpsr |= USR_MODE; --- linux-2.6.35.orig/arch/arm/include/asm/stackprotector.h +++ linux-2.6.35/arch/arm/include/asm/stackprotector.h @@ -0,0 +1,38 @@ +/* + * GCC stack protector support. + * + * Stack protector works by putting predefined pattern at the start of + * the stack frame and verifying that it hasn't been overwritten when + * returning from the function. The pattern is called stack canary + * and gcc expects it to be defined by a global variable called + * "__stack_chk_guard" on ARM. This unfortunately means that on SMP + * we cannot have a different canary value per task. + */ + +#ifndef _ASM_STACKPROTECTOR_H +#define _ASM_STACKPROTECTOR_H 1 + +#include +#include + +extern unsigned long __stack_chk_guard; + +/* + * Initialize the stackprotector canary value. + * + * NOTE: this must only be called from functions that never return, + * and it must always be inlined. + */ +static __always_inline void boot_init_stack_canary(void) +{ + unsigned long canary; + + /* Try to get a semi random initial value. */ + get_random_bytes(&canary, sizeof(canary)); + canary ^= LINUX_VERSION_CODE; + + current->stack_canary = canary; + __stack_chk_guard = current->stack_canary; +} + +#endif /* _ASM_STACKPROTECTOR_H */ --- linux-2.6.35.orig/crypto/algboss.c +++ linux-2.6.35/crypto/algboss.c @@ -206,6 +206,7 @@ return NOTIFY_OK; } +#ifdef CONFIG_CRYPTO_MANAGER_TESTS static int cryptomgr_test(void *data) { struct crypto_test_param *param = data; @@ -266,6 +267,7 @@ err: return NOTIFY_OK; } +#endif /* CONFIG_CRYPTO_MANAGER_TESTS */ static int cryptomgr_notify(struct notifier_block *this, unsigned long msg, void *data) @@ -273,8 +275,10 @@ switch (msg) { case CRYPTO_MSG_ALG_REQUEST: return cryptomgr_schedule_probe(data); +#ifdef CONFIG_CRYPTO_MANAGER_TESTS case CRYPTO_MSG_ALG_REGISTER: return cryptomgr_schedule_test(data); +#endif } return NOTIFY_DONE; --- linux-2.6.35.orig/crypto/testmgr.c +++ linux-2.6.35/crypto/testmgr.c @@ -22,6 +22,17 @@ #include #include "internal.h" + +#ifndef CONFIG_CRYPTO_MANAGER_TESTS + +/* a perfect nop */ +int alg_test(const char *driver, const char *alg, u32 type, u32 mask) +{ + return 0; +} + +#else + #include "testmgr.h" /* @@ -2530,4 +2541,7 @@ non_fips_alg: return -EINVAL; } + +#endif /* CONFIG_CRYPTO_MANAGER_TESTS */ + EXPORT_SYMBOL_GPL(alg_test); --- linux-2.6.35.orig/crypto/Kconfig +++ linux-2.6.35/crypto/Kconfig @@ -96,6 +96,14 @@ select CRYPTO_BLKCIPHER2 select CRYPTO_PCOMP +config CRYPTO_MANAGER_TESTS + bool "Run algolithms' self-tests" + default y + depends on CRYPTO_MANAGER2 + help + Run cryptomanager's tests for the new crypto algorithms being + registered. + config CRYPTO_GF128MUL tristate "GF(2^128) multiplication functions (EXPERIMENTAL)" depends on EXPERIMENTAL --- linux-2.6.35.orig/debian/changelog +++ linux-2.6.35/debian/changelog @@ -0,0 +1,4684 @@ +linux (2.6.35-23.40) maverick-proposed; urgency=low + + [ Brad Figg ] + + * No change rebuild. + + -- Brad Figg Wed, 17 Nov 2010 12:01:53 -0800 + +linux (2.6.35-23.39) maverick-proposed; urgency=low + + [ Brad Figg ] + - LP: #676214 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: ARM: OMAP3: beagle: use GPIO2 on the xM A3 to turn DVI on + - LP: #663642 + + -- Brad Figg Tue, 16 Nov 2010 11:32:19 -0800 + +linux (2.6.35-23.38) maverick-proposed; urgency=low + + [ Brad Figg ] + + * Revert "SAUCE: ARM: OMAP3: beagle: use GPIO2 on the xM A3 to turn DVI + on" + + [ Upstream Kernel Changes ] + + * Revert "(upstream) ALSA: hda - Apply ALC269 VAIO fix-up to all Sony + laptops with ALC269" + * Revert "ALSA: HDA: Correctly apply position_fix quirks for ATI and VIA + controllers" + * Buglink Fixup for reverted unverified fixes + + -- Brad Figg Mon, 15 Nov 2010 11:34:55 -0800 + +linux (2.6.35-23.37) maverick-proposed; urgency=low + + [ Brad Figg ] + + * ARM: Temporarily disable module check for armel + + -- Brad Figg Thu, 04 Nov 2010 11:44:18 -0700 + +linux (2.6.35-23.36) maverick-proposed; urgency=low + + [ Andy Whitcroft ] + + * reduce disk usage during buildd builds + - LP: #645653 + + [ Brad Figg ] + + * ARM: Temporarily disable module check for armel + + [ Enric Balletbo i Serra ] + + * ARM: igepv2: Adding support for VBUS and overcurrent + - LP: #651589 + * ARM: igepv2: Fix and improve LED handling + - LP: #654582 + * ARM: igepv2: Introduce function to dectect HW version + - LP: #654586 + * ARM: igepv2: Fix handling of GPIOs for WLAN-BT combo + - LP: #654590 + * ARM: igepv2: Add i2c eeprom driver to read EDID + - LP: #654594 + * ARM: igepv2: Remove VMMC2 regulator + - LP: #654595 + + [ Leann Ogasawara ] + + * ARM: Temporarily disable module check for armel + + [ Mathieu Poirier ] + + * SAUCE: ARM: Add DSS2 support for Overo board + - LP: #660811 + + [ Maurus Cuelenaere ] + + * SAUCE: ARM: OMAP3: Add S-Video output to IGEPv2 board + - LP: #607250 + + [ Ricardo Salveti de Araujo ] + + * [Config] Remove CONFIG_FIXED_PHY and move CONFIG_SMSC911X from m to y + for omap + - LP: #645689 + * SAUCE: ARM: OMAP3: Adding vdd_sdi regulator supply to IGEPv2 board + - LP: #607250 + * SAUCE: ARM: OMAP3: beagle: use GPIO2 on the xM A3 to turn DVI on + - See: #663642 + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) ALSA: HDA: Use model=auto for LG R510" + * Revert "(pre-stable) ALSA: hda - Rename iMic to Int Mic on Lenovo + NB0763" + * Revert "Input: appletouch - fix integer overflow issue" + * Revert "ALSA: hda - Handle pin NID 0x1a on ALC259/269" + * Revert "ALSA: hda - Handle missing NID 0x1b on ALC259 codec" + * Revert "(pre-stable) ALSA: hda - Add a new hp-laptop model for Conexant + 5066, tested on HP G60" + * Revert "mmc: build fix: mmc_pm_notify is only available with + CONFIG_PM=y" + * Revert "mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume" + * Revert "(pre-stable) bounce: call flush_dcache_page() after + bounce_copy_vec()" + * Revert "Input: i8042 - reset keyboard controller wehen resuming from + S2R" + * Revert "ALSA: HDA: Enable internal speaker on Dell M101z" + * Revert "(pre-stable) drm/i915: don't enable self-refresh on Ironlake" + * Revert "drm/i915: Allow LVDS on pipe A on gen4+" + * (pre-stable) ACPI: enable repeated PCIEXP wakeup by clearing + PCIEXP_WAKE_STS on resume + - LP: #613381 + * (upstream) ALSA: hda - Apply ALC269 VAIO fix-up to all Sony laptops + with ALC269 + - See: #546769, #598938, #637291, #642892, #648871, #655386 + * hwmon: (ads7871) Fix ads7871_probe error paths + * hwmon: (k8temp) Differentiate between AM2 and ASB1 + * xen: handle events as edge-triggered + * xen: use percpu interrupts for IPIs and VIRQs + * xfs: fix untrusted inode number lookup + * xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE + * ALSA: HDA: Use model=auto for LG R510 + - LP: #495134 + * ALSA: hda - Rename iMic to Int Mic on Lenovo NB0763 + - LP: #605101 + * libata-sff: remove harmful BUG_ON from ata_bmdma_qc_issue + * sata_mv: fix broken DSM/TRIM support (v2) + * pata_cmd64x: revert commit d62f5576 + * writeback: write_cache_pages doesn't terminate at nr_to_write <= 0 + * x86, tsc, sched: Recompute cyc2ns_offset's during resume from sleep + states + * perf, x86, Pentium4: Clear the P4_CCCR_FORCE_OVF flag + * netfilter: fix CONFIG_COMPAT support + * PCI: MSI: Remove unsafe and unnecessary hardware access + * PCI: MSI: Restore read_msi_msg_desc(); add get_cached_msi_msg_desc() + * direct-io: move aio_complete into ->end_io + * ext4: move aio completion after unwritten extent conversion + * xfs: move aio completion after unwritten extent conversion + * ALSA: hda - Handle missing NID 0x1b on ALC259 codec + * ALSA: hda - Handle pin NID 0x1a on ALC259/269 + * Staging: rt2870sta: Add more device IDs from vendor drivers + * staging: hv: Fix missing functions for net_device_ops + * staging: hv: Fixed bounce kmap problem by using correct index + * staging: hv: Fixed the value of the 64bit-hole inside ring buffer + * staging: hv: Increased storvsc ringbuffer and max_io_requests + * staging: hv: Fixed lockup problem with bounce_buffer scatter list + * fuse: flush background queue on connection close + * mac80211: delete work timer + * ath9k_htc: Fix disconnect issue in HT40 mode. + * ath9k_hw: Fix EEPROM uncompress block reading on AR9003 + * ath9k_hw: fix parsing of HT40 5 GHz CTLs + * ocfs2: Fix incorrect checksum validation error + * serial: bfin_sport_uart: restore transmit frame sync fix + * USB: ehci-ppc-of: problems in unwind + * USB: Fix kernel oops with g_ether and Windows + * USB: CP210x Add new device ID + * USB: cp210x: Add B&G H3000 link cable ID + * usb: allow drivers to use allocated bandwidth until unbound + * USB: ftdi_sio: Added custom PIDs for ChamSys products + * usb: serial: mos7840: Add USB ID to support the B&B Electronics + USOPTL4-2P. + * usb: serial: mos7840: Add USB IDs to support more B&B USB/RS485 + converters. + * ima: always maintain counters + * USB: cxacru: Use a bulk/int URB to access the command endpoint + * USB: cdc-acm: Adding second ACM channel support for various Nokia and + one Samsung phones + * USB: cdc-acm: Add pseudo modem without AT command capabilities + * USB: cdc-acm: Fixing crash when ACM probing interfaces with no endpoint + descriptors. + * ALSA: hda - Add a new hp-laptop model for Conexant 5066, tested on HP + G60 + - LP: #587388 + * ALSA: usb-audio: fix detection of vendor-specific device protocol + settings + * ALSA: virtuoso: work around missing reset in the Xonar DS Windows + driver + * ALSA: virtuoso: fix setting of Xonar DS line-in/mic-in controls + * ALSA: usb - Release capture substream URBs properly + * ALSA: hda - Add quirk for Lenovo T400s + * ALSA: hda - Add errata initverb sequence for CS42xx codecs + * ALSA: hda - Fix wrong HP pin detection in + snd_hda_parse_pin_def_config() + * ALSA: usb-audio: Assume first control interface is for audio + * ALSA: hda - patch_nvhdmi.c: Add missing codec IDs, unify names + * swap: prevent reuse during hibernation + * swap: discard while swapping only if SWAP_FLAG_DISCARD + * swap: do not send discards as barriers + * sysfs: checking for NULL instead of ERR_PTR + * oprofile: fix crash when accessing freed task structs + * oprofile, x86: fix init_sysfs error handling + * oprofile, x86: fix init_sysfs() function stub + * HID: Set Report ID properly for Output reports on the Control endpoint. + * libata: skip EH autopsy and recovery during suspend + * libata,pata_via: revert ata_wait_idle() removal from + ata_sff/via_tf_load() + * ahci: fix hang on failed softreset + * O_DIRECT: fix the splitting up of contiguous I/O + * tracing: Fix a race in function profile + * tracing: Do not allow llseek to set_ftrace_filter + * tracing: t_start: reset FTRACE_ITER_HASH in case of seek/pread + * irda: off by one + * hp_accel: add quirks for HP ProBook 532x and HP Mini 5102 + * gcov: fix null-pointer dereference for certain module types + * tmio_mmc: don't clear unhandled pending interrupts + * mmc: fix the use of kunmap_atomic() in tmio_mmc.h + * mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume + * mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y + * statfs() gives ESTALE error + * minix: fix regression in minix_mkdir() + * bounce: call flush_dcache_page() after bounce_copy_vec() + * mm: compaction: handle active and inactive fairly in too_many_isolated + * kernel/groups.c: fix integer overflow in groups_search + * binfmt_misc: fix binfmt_misc priority + * Input: i8042 - fix device removal on unload + * Input: i8042 - reset keyboard controller wehen resuming from S2R + * memory hotplug: fix next block calculation in is_removable + * perf: Initialize callchains roots's childen hits + * powerpc/perf_event: Reduce latency of calling perf_event_do_pending + * p54: fix tx feedback status flag check + * ath5k: check return value of ieee80211_get_tx_rate + * RDMA/cxgb3: Don't exceed the max HW CQ depth + * x86, tsc: Fix a preemption leak in restore_sched_clock_state() + * ALSA: HDA: Enable internal speaker on Dell M101z + - LP: #640254 + * x86: hpet: Work around hardware stupidity + * arm: fix really nasty sigreturn bug + * hwmon: (emc1403) Remove unnecessary hwmon_device_unregister + * hwmon: (f75375s) Shift control mode to the correct bit position + * hwmon: (f75375s) Do not overwrite values read from registers + * apm_power: Add missing break statement + * cifs: fix potential double put of TCP session reference + * NFS: Fix a typo in nfs_sockaddr_match_ipaddr6 + * SUNRPC: Fix race corrupting rpc upcall + * agp/intel: Promote warning about failure to setup flush to error. + * drm/radeon/kms: fix a regression on r7xx AGP due to the HDP flush fix + * drm/i915: Enable MI_FLUSH on Sandybridge + * drm/radeon/kms: force legacy pll algo for RV515 LVDS + * drm/radeon/kms: force legacy pll algo for RV620 LVDS + * drm/radeon/kms: properly set crtc high base on r7xx + * drm/radeon/kms/evergreen: fix gpu hangs in userspace accel code + * drm/radeon/kms/evergreen: fix backend setup + * i915: return -EFAULT if copy_to_user fails + * i915_gem: return -EFAULT if copy_to_user fails + * drm/i915/dp: Really try 5 times before giving up. + * drm/i915: Allocate the PCI resource for the MCHBAR + * drm/i915: overlay on gen2 can't address above 1G + * drm/i915: Prevent double dpms on + * drm/i915: don't enable self-refresh on Ironlake + * drm: Only decouple the old_fb from the crtc is we call mode_set* + * Linux 2.6.35.5 + - LP: #645522 + * usb: musb_debugfs: don't use the struct file private_data field with + seq_files + * USB: serial/mos*: prevent reading uninitialized stack memory + * bridge: Clear INET control block of SKBs passed into ip_fragment(). + * gro: fix different skb headrooms + * gro: Re-fix different skb headrooms + * rds: fix a leak of kernel memory + * net: RPS needs to depend upon USE_GENERIC_SMP_HELPERS + * tcp: Combat per-cpu skew in orphan tests. + * tcp: fix three tcp sysctls tuning + * tcp: select(writefds) don't hang up when a peer close connection + * tcp: Prevent overzealous packetization by SWS logic. + * udp: add rehash on connect() + * UNIX: Do not loop forever at unix_autobind(). + * l2tp: test for ethernet header in l2tp_eth_dev_recv() + * net: blackhole route should always be recalculated + * sparc64: Get rid of indirect p1275 PROM call buffer. + * drivers/net/usb/hso.c: prevent reading uninitialized memory + * drivers/net/cxgb3/cxgb3_main.c: prevent reading uninitialized stack + memory + * drivers/net/eql.c: prevent reading uninitialized stack memory + * bonding: correctly process non-linear skbs + * Staging: vt6655: fix buffer overflow + * net/llc: make opt unsigned in llc_ui_setsockopt() + * mm: fix swapin race condition + * mm: further fix swapin race condition + * virtio: console: Prevent userspace from submitting NULL buffers + * virtio: console: Fix poll blocking even though there is data to read + * agp/intel: fix physical address mask bits for sandybridge + * agp/intel: fix dma mask bits on sandybridge + * hw breakpoints: Fix pid namespace bug + * pid: make setpgid() system call use RCU read-side critical section + * sched: Fix user time incorrectly accounted as system time on 32-bit + * oprofile: Add Support for Intel CPU Family 6 / Model 22 (Intel Celeron + 540) + * drm/i915,agp/intel: Add second set of PCI-IDs for B43 + * bdi: Initialize noop_backing_dev_info properly + * char: Mark /dev/zero and /dev/kmem as not capable of writeback + * drivers/pci/intel-iommu.c: fix build with older gcc's + * mmap: call unlink_anon_vmas() in __split_vma() in case of error + * drivers/video/sis/sis_main.c: prevent reading uninitialized stack + memory + * rtc: s3c: balance state changes of wakeup flag + * Prevent freeing uninitialized pointer in compat_do_readv_writev + * /proc/vmcore: fix seeking + * vmscan: check all_unreclaimable in direct reclaim path + * percpu: fix pcpu_last_unit_cpu + * aio: do not return ERESTARTSYS as a result of AIO + * aio: check for multiplication overflow in do_io_submit + * x86 platform drivers: hp-wmi Reorder event id processing + * GFS2: gfs2_logd should be using interruptible waits + * drm/nv50: initialize ramht_refs list for faked 0 channel + * inotify: send IN_UNMOUNT events + * SCSI: mptsas: fix hangs caused by ATA pass-through + * KVM: Keep slot ID in memory slot structure + * KVM: Prevent internal slots from being COWed + * KVM: MMU: fix direct sp's access corrupted + * KVM: x86: emulator: inc/dec can have lock prefix + * KVM: MMU: fix mmu notifier invalidate handler for huge spte + * KVM: VMX: Fix host GDT.LIMIT corruption + * IA64: fix siglock + * IA64: Optimize ticket spinlocks in fsys_rt_sigprocmask + * xfs: prevent reading uninitialized stack memory + * drivers/video/via/ioctl.c: prevent reading uninitialized stack memory + * AT91: change dma resource index + * PM: Prevent waiting forever on asynchronous resume after failing + suspend + * PM / Hibernate: Avoid hitting OOM during preallocation of memory + * x86, asm: Use a lower case name for the end macro in atomic64_386_32.S + * Fix call to replaced SuperIO functions + * mm: page allocator: drain per-cpu lists after direct reclaim allocation + fails + * mm: page allocator: calculate a better estimate of NR_FREE_PAGES when + memory is low and kswapd is awake + * mm: page allocator: update free page counters after pages are placed on + the free list + * guard page for stacks that grow upwards + * Fix unprotected access to task credentials in waitid() + * sctp: Do not reset the packet during sctp_packet_config(). + * drm/i915: Ensure that the crtcinfo is populated during mode_fixup() + * alpha: Fix printk format errors + * Linux 2.6.35.6 + - LP: #649208 + * Xen: fix typo in previous patch + * Linux 2.6.35.7 + - LP: #651425 + * ALSA: HDA: Correctly apply position_fix quirks for ATI and VIA + controllers + - See: #465942, #580749, #587546 + * ALSA: hda - add ideapad model for Conexant 5051 codec + * intel_ips: potential null dereference + * drm/i915: Silence sparse over duplicate members in static initializer + - LP: #663442 + * drm/i915: Use 128k alignment for untiled display surface on i965 (v2) + - LP: #663442 + * drm/i915: Include a generation number in the device info + - LP: #663442 + * drm/i915: Fix Sandybridge fence registers + - LP: #663442 + * drm/i915/suspend: s/IS_IRONLAKE/HAS_PCH_SPLIT/ + - LP: #663442 + * drm/i915: Fix 945GM regression in e259befd + - LP: #663442 + * hwmon: coretemp: update hotplug condition check + - LP: #664181 + * hwmon: coretemp: enable coretemp device add operation failure + - LP: #664181 + * drivers/hwmon/coretemp.c: remove unneeded #ifdef CONFIG_HOTPLUG_CPU + - LP: #664181 + * fix "hwmon: coretemp: update hotplug condition check" + - LP: #664181 + * hwmon: (coretemp) Fix harmless build warning + - LP: #664181 + * x86/hwmon: fix module init for hotplug-but-no-device-found case + - LP: #664181 + * x86/hwmon: fix initialization of coretemp + - LP: #664181 + * x86/hwmon: register alternate sibling upon CPU removal + - LP: #664181 + * hwmon (coretemp): Fix build breakage if SMP is undefined + - LP: #664181 + * x86/hwmon: avoid deadlock on CPU removal in pkgtemp + - LP: #664181 + * x86/hwmon: don't leak device attribute file from pkgtemp_probe() and + pkgtemp_remove() + - LP: #664181 + * x86/hwmon: fix initialization of pkgtemp + - LP: #664181 + * x86/hwmon: pkgtemp has no dependency on PCI + - LP: #664181 + + -- Brad Figg Fri, 22 Oct 2010 08:18:59 -0700 + +linux (2.6.35-22.35) maverick-security; urgency=low + + [ Upstream Kernel Changes ] + + * v4l: disable dangerous buggy compat function + - CVE-2010-2963 + * Local privilege escalation vulnerability in RDS sockets + - CVE-2010-3904 + + -- Steve Conklin Thu, 14 Oct 2010 13:33:49 -0500 + +linux (2.6.35-22.34) maverick-proposed; urgency=low + + [ John Johansen ] + + * SAUCE: Return correct error code for mediated network connections + - LP: #647071 + + [ Upstream Kernel Changes ] + + * irda: Correctly clean up self->ias_obj on irda_bind() failure. + - CVE-2010-2954 + * wireless extensions: fix kernel heap content leak + - CVE-2010-2955 + * KEYS: Fix RCU no-lock warning in keyctl_session_to_parent() + - CVE-2010-2960 + * KEYS: Fix bug in keyctl_session_to_parent() if parent has no session + keyring + - CVE-2010-2960 + * ALSA: seq/oss - Fix double-free at error path of snd_seq_oss_open() + - CVE-2010-3080 + * intel_idle: PCI quirk to prevent Lenovo Ideapad s10-3 boot hang + - LP: #634702 + * drm/i915: Rephrase pwrite bounds checking to avoid any potential + overflow + - CVE-2010-2962 + * drm/i915: Skip pread/pwrite if size to copy is 0. + - CVE-2010-2962 + * drm/i915: Sanity check pread/pwrite + - CVE-2010-2962 + * Fix pktcdvd ioctl dev_minor range check + - CVE-2010-3437 + * Fix out-of-bounds reading in sctp_asoc_get_hmac() + - CVE-2010-3705 + * ocfs2: Don't walk off the end of fast symlinks. + - CVE-2010-NNN2 + + -- Leann Ogasawara Mon, 20 Sep 2010 08:36:53 -0700 + +linux (2.6.35-22.33) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops" + - LP: #641320 + + [ Brian Rogers ] + + * SAUCE: ir-core: Fix null dereferences in the protocols sysfs interface + - LP: #624701 + + [ Christopher James Halse Rogers ] + + * SAUCE: Nouveau: Add quirk framework to disable acceleration + - LP: #544088, #546393 + * SAUCE: Nouveau: Disable acceleration on MacBook Pros + - LP: #546393 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: allow newer tools to load policy on older + kernels" + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + + [ Mathieu J. Poirier ] + + * SAUCE: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * ALSA: HDA: Enable internal speaker on Dell M101z + - LP: #640254 + + -- Leann Ogasawara Fri, 17 Sep 2010 13:21:28 -0700 + +linux (2.6.35-22.32) maverick; urgency=low + + [ Arjan van de Ven ] + + * SAUCE: libata: Add ALPM power state accounting to the AHCI driver + + [ David Henningsson ] + + * SAUCE: ALSA: HDA: Enable internal mic on Dell E6410 and Dell E6510 + - LP: #605047, #628961 + + [ John Johansen ] + + * [Upstream] AppArmor: Fix splitting an fqname into separate namespace + and profile names + - LP: #615947 + * [Upstream] AppArmor: Fix locking from removal of profile namespace + - LP: #615947 + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + * SAUCE: Improve Amazon EBS performance for EC2 + - LP: #634316 + + [ Leann Ogasawara ] + + * Revert "SAUCE: i915 KMS -- blacklist i855" + * Revert "SAUCE: i915 KMS -- blacklist i845g" + * Revert "SAUCE: i915 KMS -- blacklist i830" + * Revert "SAUCE: i915 KMS -- support disabling KMS for known broken + devices" + * execute module-inclusion within a subshell + - LP: #621175 + + [ Upstream Kernel Changes ] + + * (pre-stable) bounce: call flush_dcache_page() after bounce_copy_vec() + - LP: #633227 + * (pre-stable) drm/i915: don't enable self-refresh on Ironlake + - LP: #629711 + * (pre-stable) mm: Move vma_stack_continue into mm.h + * x86, hwmon: Fix unsafe smp_processor_id() in thermal_throttle_add_dev + - LP: #601073 + * PM / Runtime: Make runtime_status attribute not debug-only (v. 2) + * PM / Runtime: Add runtime PM statistics (v3) + * compat: Make compat_alloc_user_space() incorporate the access_ok() + - CVE-2010-3081 + * x86-64, compat: Test %rax for the syscall number, not %eax + - CVE-2010-3301 + * x86-64, compat: Retruncate rax after ia32 syscall entry tracing + - CVE-2010-3301 + + -- Leann Ogasawara Tue, 14 Sep 2010 08:46:49 -0700 + +linux (2.6.35-21.31) maverick; urgency=low + + [ Andy Whitcroft ] + + * bodge linux-libc-dev package version due to ti-omap4 error + * linux-libc-dev -- ensure we can only build this on debian.master + + -- Leann Ogasawara Mon, 13 Sep 2010 09:54:31 -0700 + +linux (2.6.35-21.30) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + + [ Daniel Lezcano ] + + * SAUCE: fix compilation warning when CONFIG_SECURITY is not set + + [ Henrik Rydberg ] + + * SAUCE: Input: wacom - add fuzz parameters to features + * SAUCE: Input: wacom - collect device quirks into single function + * SAUCE: Input: wacom - add support for the Bamboo Touch trackpad + * SAUCE: Input: wacom - add a quirk for low resolution Bamboo devices + * SAUCE: hid: ntrig: Remove unused device ids + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Correct logic for quirks + * SAUCE: hid: ntrig: zero-initialize ntrig struct + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Leann Ogasawara ] + + * SAUCE: ndiswrapper: Initialize buffer index and check its value + - LP: #613796 + + [ Manoj Iyer ] + + * SAUCE: Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops + - LP: #632884 + + [ Ping Cheng ] + + * SAUCE: Input: wacom - parse the Bamboo device family + + [ Rafi Rubin ] + + * SAUCE: hid: ntrig: identify firmware version (wiggled) + + [ Tim Gardner ] + + * [Config] CONFIG_NL80211_TESTMODE=n + + [ Upstream Kernel Changes ] + + * Revert "input: mt: Add support for the Bamboo Touch trackpad" + * e1000e: initial support for 82579 LOMs + * e1000e: correct MAC-PHY interconnect register offset for 82579 + * (pre-stable) ALSA: hda - Add a new hp-laptop model for Conexant 5066, + tested on HP G60 + - LP: #587388 + * DSS2: Don't power off a panel twice + - LP: #588243 + * mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y + * Input: i8042 - reset keyboard controller wehen resuming from S2R + - LP: #86820 + * ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs + - LP: #414795 + * agp/intel: Support the extended physical addressing bits on + Sandybridge. + - LP: #632488 + * drm/i915,intel_agp: Add support for Sandybridge D0 + - LP: #632488 + * (pre-stable) intel_agp,i915: Add more sandybridge graphics device ids + - LP: #632488 + * mmc: omap: fix for bus width which improves SD card's peformance. + + -- Leann Ogasawara Tue, 07 Sep 2010 09:58:52 -0700 + +linux (2.6.35-20.29) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: i915 KMS -- support disabling KMS for known broken devices + - LP: #563277 + * SAUCE: i915 KMS -- blacklist i830 + - LP: #542208, #563277 + * SAUCE: i915 KMS -- blacklist i845g + - LP: #541492, #563277 + * SAUCE: i915 KMS -- blacklist i855 + - LP: #511001, #541511, #563277 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_PKGTEMP=m + - LP: #601073 + * ARM: Temporarily disable module check for armel + * rebase to v2.6.35.4 + * [Config] update configs following rebase to v2.6.35.4 + + [ Ricardo Salveti de Araujo ] + + * [Config] Change CONFIG_LEDS_TRIGGER_HEARTBEAT from module to built-in + in Omap + + [ Tim Gardner ] + + * [Config] Added be2net, be2scsi to udebs + - LP: #628776 + + [ Upstream Kernel Changes ] + + * x86, cpu: Package Level Thermal Control, Power Limit Notification + definitions + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: thermal throttling handler + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: power limit + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp documentation + - LP: #601073 + * hid: 3m: Adjust to sequential MT HID protocol + * hid: 3m: Convert to MT slots + * hid: 3m: Correct touchscreen emulation + * hid: 3m: Adjust major / minor axes to scale + * input: bcm5974: Adjust major / minor to scale + * HID: magicmouse: don't allow hidinput to initialize the device + * HID: magicmouse: simplify multitouch feature request + * HID: magicmouse: simplify touch data bit manipulation + * HID: magicmouse: simplify touch down logic + * HID: magicmouse: remove timestamp logic + * HID: magicmouse: enable Magic Trackpad support + * HID: magicmouse: Adjust major / minor axes to scale + * mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume + - LP: #477106 + * drm/i915: fix VGA plane disable for Ironlake+ + - LP: #602281 + + -- Leann Ogasawara Mon, 30 Aug 2010 08:38:01 -0700 + +linux (2.6.35-19.28) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.27. Some armel udebs were accidentally deleted + from the archive and a no-change rebuild was attempted. However, the ABI + did not get bumped and resulted in build failures for 2.6.35-19.27. Fix + up the ABI and re-upload. + + -- Leann Ogasawara Sat, 28 Aug 2010 16:42:27 -0700 + +linux (2.6.35-19.27) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.26. Some armel udebs were accidentally deleted + from the archive. + + -- Leann Ogasawara Fri, 27 Aug 2010 08:58:35 -0700 + +linux (2.6.35-19.26) maverick; urgency=low + + [ Upstream Kernel Changes ] + + * ARM: OMAP: Beagle: revision detection + * ARM: OMAP: Beagle: only Cx boards use pin 23 for write protect + * ARM: OMAP: Beagle: no gpio_wp pin connection on xM + + -- Leann Ogasawara Thu, 26 Aug 2010 09:15:09 -0700 + +linux (2.6.35-19.25) maverick; urgency=low + + [ Jarod Wilson ] + + * SAUCE: Bring in staging/lirc from 2.6.36 + - LP: #609234 + * SAUCE: Update ir-core to linuxtv/other which should be merged for + 2.6.36. + - LP: #609234 + * SAUCE: Fix memleaks in imon and mceusb drivers + - LP: #609234 + * SAUCE: Bring in streamzap support from linuxtv/other + - LP: #609234 + + [ Mario Limonciello ] + + * Remove ubuntu/lirc in favor of staging/lirc from 2.6.36 + - LP: #609234 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: adding i2c eeprom driver to read EDID + - LP: #608279 + + [ Upstream Kernel Changes ] + + * intel_idle: disable module support + - LP: #615265 + * (pre-stable) ALSA: hda - Ensure codec patch files are checked for the + correct codec ID + * (pre-stable) ALSA: hda - Rename iMic to Int Mic on Lenovo NB0763 + - LP: #605101 + * (pre-stable) ALSA: HDA: Use model=auto for LG R510 + - LP: #495134 + * (pre-stable) ALSA: HDA: Add Sony VAIO quirk for ALC269 + - LP: #519066 + * (pre-stable) ALSA: HDA: Fix front mic on Dell Precision M6500 + - LP: #519066 + * input: mt: Initialize slots to unused (rev2) + * input: mt: Add support for the Bamboo Touch trackpad + * hid: Add a hid quirk for input sync override + + -- Leann Ogasawara Mon, 23 Aug 2010 12:42:52 -0700 + +linux (2.6.35-18.24) maverick; urgency=low + + [ Colin Watson ] + + * Pass DEB_MAINT_PARAMS to hook scripts + + [ Leann Ogasawara ] + + * [Config] Add CONFIG_INPUT_UINPUT=y to config enforcer + - LP: #584812 + * rebase to v2.6.35.3 + + [ Upstream Kernel Changes ] + + * (pre-stable) dell-wmi: Add support for eject key on Dell Studio 1555 + - LP: #609234 + * can: add limit for nframes and clean up signed/unsigned variables + - CVE-2010-2959 + * drm: Initialize ioctl struct when no user data is present + - CVE-2010-2803 + * ARM: initial stack protector (-fstack-protector) support + * ARM: stack protector: change the canary value per task + * [ARM] implement arch_randomize_brk() + * [ARM] add address randomization to mmap() + * ARM: fix ASLR of PIE executables + + -- Leann Ogasawara Sun, 22 Aug 2010 19:22:04 -0700 + +linux (2.6.35-17.23) maverick; urgency=low + + [ Jeremy Kerr ] + + * [Config] build-in uinput module + - LP: #584812 + + [ Leann Ogasawara ] + + * Revert "[Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS" + * Revert "[Config] [FTBS] ia64: Temporarily disable gpiolib" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MTD_NAND_DENALI" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MFD_JANZ_CMODIO" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_INFINIBAND_QIB" + * [Config] Enable INTEL_IPS + - LP: #601057 + * Remove ia64 support + * [Config] Update portsconfigs after removing ia64 support + * Remove sparc support + * [Config] Update portsconfigs after removing sparc support + + [ Linus Torvalds ] + + * (pre-stable) mm: fix page table unmap for stack guard page properly + + [ Mathieu J. Poirier ] + + * SAUCE: (no-up) ARM: Resetting power_mode to its original value. + - LP: #591941 + + [ Upstream Kernel Changes ] + + * timer: add on-stack deferrable timer interfaces + - LP: #601057 + * x86 platform driver: intelligent power sharing driver + - LP: #601057 + * IPS driver: add GPU busy and turbo checking + - LP: #601057 + * X86: intel_ips, check for kzalloc properly + - LP: #601057 + * ips driver: make it less chatty + - LP: #601057 + + -- Leann Ogasawara Tue, 17 Aug 2010 09:38:08 -0700 + +linux (2.6.35-16.22) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- more agressivly clean up after depmod on purge + - LP: #618591 + + [ Henrik Rydberg ] + + * SAUCE: hid: 3m: Simplify touchsreen emulation logic + + [ Leann Ogasawara ] + + * ubuntu: iscsitarget -- version 1.4.20.2 + * ubuntu: rtl8192se -- update to version 0017.0507.2010 + * rebase to v2.6.35.2 + * [Config] update configs following rebase to v2.6.35.2 + * [Config] update ports configs following rebase to v2.6.35.2 + + [ Luke Yelavich ] + + * [Config] Enable new firewire stack on powerpc + + [ Mathieu J. Poirier ] + + * SAUCE: (drop after 2.6.35) ARM: Using gpmc function to init nand flash. + - LP: #608266 + + -- Leann Ogasawara Thu, 12 Aug 2010 09:58:01 -0700 + +linux (2.6.35-15.21) maverick; urgency=low + + [ Luke Yelavich ] + + * [Config] CONFIG_SND_USB_UA101=m for all architectures + + [ Upstream Kernel Changes ] + + * Input: introduce MT event slots + * Input: document the MT event slot protocol + * (pre-stable) sched: Revert nohz_ratelimit() for now + * (pre-stable) drm/radeon/kms: add missing copy from user + - LP: #606081 + + [ Leann Ogasawara ] + + * rebase to v2.6.35.1 + + -- Leann Ogasawara Mon, 09 Aug 2010 09:24:04 -0700 + +linux (2.6.35-14.20) maverick; urgency=low + + [ Andy Whitcroft ] + + * update Vcs-Git to point to maverick repo + * debian -- include the debian packaging in the -source package + - LP: #608674 + * select debian source format 1.0 + * add support for building selected stages of kernel + - LP: #603087 + * cleanup conditional dependancy handling + - LP: #603087 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Handle missing NID 0x1b on ALC259 codec + - LP: #582199, #586418, #588031 + * ALSA: hda - Handle pin NID 0x1a on ALC259/269 + - LP: #582199, #586418, #588031 + * sched: Revert nohz_ratelimit() for now + + -- Leann Ogasawara Tue, 03 Aug 2010 08:46:47 -0700 + +linux (2.6.35-14.19) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35 + + -- Leann Ogasawara Sun, 01 Aug 2010 10:35:56 -0700 + +linux (2.6.35-13.18) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: (no-up) Modularize vesafb -- fix initialisation + * SAUCE: add tracing for user initiated readahead requests + * SAUCE: vt -- maintain bootloader screen mode and content until vt + switch + * SAUCE: vt -- allow grub to request automatic vt_handoff + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: drm -- stop early access to drm devices + + [ Bryan Wu ] + + * CONFIG: compile in OTG driver and Transceiver driver + - LP: #566645 + * remove OTG modules from modules list file + + [ John Johansen ] + + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-27 + - LP: #581525, #599450 + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-29 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: AppArmor: Allow dfa backward compatibility with broken userspace + * SAUCE: fix pv-ops for legacy Xen + * SAUCE: blkfront: default to sd devices + * [Config] Build in drivers required for Xen pv-ops + + [ Leann Ogasawara ] + + * Revert "[Upstream] i915: Use the correct mask to detect i830 aperture + size." + + [ Lee Jones ] + + * SAUCE: ARM: OMAP: Add macros for comparing silicon revision + - LP: #608095 + * SAUCE: OMAP: DSS2: check for both cpu type and revision, rather than + just revision + - LP: #608095 + * SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX + - LP: #608095 + * SAUCE: ARM: OMAP: Beagle: support twl gpio differences on xM + - LP: #608095 + + [ Upstream Kernel Changes ] + + * agp/intel: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + -- Leann Ogasawara Fri, 30 Jul 2010 15:46:59 -0700 + +linux (2.6.35-12.17) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + * [Config] update configs following rebase to v2.6.35-rc6 + * [Config] update ports configs following rebase to v2.6.35-rc6 + * SAUCE: [FTBS] armel: define KEY_F10 and KEYF11 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + + -- Leann Ogasawara Fri, 23 Jul 2010 16:16:38 +0200 + +linux (2.6.35-11.16) maverick; urgency=low + + [ Leann Ogasawara ] + + * Bump ABI for new compiler update + + -- Leann Ogasawara Fri, 23 Jul 2010 10:24:58 +0200 + +linux (2.6.35-10.15) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "SAUCE: ensure vga16fb loads if no other driver claims the VGA + device" + * [Config] Enable CONFIG_M686=y + - LP: #592495 + + [ Upstream Kernel Changes ] + + * tracing: Add alignment to syscall metadata declarations + + -- Leann Ogasawara Tue, 20 Jul 2010 18:18:49 +0200 + +linux (2.6.35-9.14) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- update to b37c575759dc4535ccc03241c584ad5fe69e3b25 + + [ John Johansen ] + + * [Config] Enable DRBD as a module + + [ Kees Cook ] + + * SAUCE: Yama: verify inode is symlink to avoid bind mounts + - LP: #604407 + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] ports: Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + * [Config] ports: Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + + [ Lee Jones ] + + * Stop ARM boards crashing when CUPS is loaded + - LP: #601226 + + [ Upstream Kernel Changes ] + + * perf probe: Support tracing an entry of array + * perf probe: Support static and global variables + + -- Leann Ogasawara Fri, 16 Jul 2010 14:38:17 -0700 + +linux (2.6.35-8.13) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: Yama: check PTRACE using thread group leader + * SAUCE: Yama: search for PTRACE exceptions via thread group leader + - LP: #603716 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc5 + * [Config] update configs following rebase to v2.6.35-rc5 + + [ Nicolas Pitre ] + + * SAUCE: make ndiswrapper available on X86 only + + [ Tim Gardner ] + + * [Config] Added ums-cypress to udeb + - LP: #576066 + * SAUCE: fix build error with CONFIG_BLK_DEV_INITRD=n + * [Config] CONFIG_NDISWRAPPER=m across all configs + + [ Upstream Kernel Changes ] + + * HID: magicmouse: report last touch up + * rebase to 2.6.35-rc5 + + -- Leann Ogasawara Tue, 13 Jul 2010 18:57:59 -0700 + +linux (2.6.35-7.12) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] i915: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35) drm/radeon/kms: add ioport register access + (squashed) + + -- Tim Gardner Thu, 08 Jul 2010 09:53:13 -0600 + +linux (2.6.35-7.11) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_X86_MRST=n + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35-rc5) writeback: remove writeback_inodes_wbc + * (drop after 2.6.35-rc5) writeback: split writeback_inodes_wb + * (drop after 2.6.35-rc5) writeback: simplify the write back thread queue + + -- Tim Gardner Tue, 06 Jul 2010 18:39:08 -0600 + +linux (2.6.35-7.10) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: security: create task_free security callback + * SAUCE: Yama: add PTRACE exception tracking and interface + * SAUCE: security: unconditionally chain to Yama LSM + * Revert "SAUCE: ptrace: restrict ptrace scope to children" + * Revert "SAUCE: fs: block hardlinks to non-accessible sources" + * Revert "SAUCE: fs: block cross-uid sticky symlinks" + * [Upstream] security: Yama LSM + * [Config] Enable CONFIG_SECURITY_YAMA=y + + [ Tim Gardner ] + + * [Config] updateconfigs/updateportsconfigs after rebase to 2.6.35-rc4 + + [ Upstream Kernel Changes ] + + * rebase to 2.6.35-rc4 + + -- Leann Ogasawara Thu, 01 Jul 2010 08:55:57 -0700 + +linux (2.6.35-6.9) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] direct_splice_actor() should not use pos in sd + - LP: #588861 + + -- Leann Ogasawara Mon, 28 Jun 2010 12:35:49 -0700 + +linux (2.6.35-6.8) maverick; urgency=low + + [ Mathieu J. Poirier ] + + * ARM: Adding regulator supply for vdds_sdi. + - LP: #597904 + + -- Leann Ogasawara Sun, 27 Jun 2010 16:34:43 -0700 + +linux (2.6.35-6.7) maverick; urgency=low + + [ Alberto Milone ] + + * [Upstream] Add support for the ATIF ACPI method to the radeon driver + + [ Chase Douglas ] + + * [Upstream] HID: magicmouse: scroll on entire surface, not just middle + of mouse + * [Upstream] HID: magicmouse: disable and add module param for scroll + acceleration + * [Upstream] HID: magicmouse: properly account for scroll movement in + state + * [Upstream] HID: magicmouse: add param for scroll speed + * [Upstream] HID: magicmouse: enable horizontal scrolling + + [ Henrik Rydberg ] + + * [Upstream] Input: evdev - convert to dynamic event buffer + * [Upstream] Input: evdev - use driver hint to compute size of event + buffer + * [Upstream] Input: bcm5974 - set the average number of events per MT + event packet + * [Upstream] Input: hid-input - use a larger event buffer for MT devices + * [Upstream] Input: evdev - never leave the client buffer empty after + write + + [ John Johansen ] + + * SAUCE: AppArmor: -- mainline 2010-06-23 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: fs: block hardlinks to non-accessible sources AppArmor portion + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_INTR_REMAP=y + - LP: #597091 + * [Config] Enable CONFIG_X86_X2APIC + - LP: #597091 + + [ Mathieu J. Poirier ] + + * [Config] ARM: Turning off CONFIG_CPU_IDLE on omap + - LP: #594382 + + -- Leann Ogasawara Thu, 24 Jun 2010 12:19:48 -0700 + +linux (2.6.35-5.6) maverick; urgency=low + + [ Amit Kucheria ] + + * [Config] update omap flavour description + + [ Andy Whitcroft ] + + * update to ubuntu-debian:508b7aa34b578c0d1e51bfb571f2bfb824dc65ac + - LP: #570500, #576274 + * SAUCE: add option to hand off all kernel parameters to init + - LP: #586386 + * [Config] enable passing all kernel command line to init + - LP: #586386 + * [Config] disable CONFIG_VMI + - LP: #537601 + * [Config] enable CONFIG_IPV6_SIT_6RD + - LP: #591869 + * [Config] enable CONFIG_VMWARE_BALOON as module + - LP: #592039 + + [ Leann Ogasawara ] + + * Revert "SAUCE: pm: Config option to disable handling of console during + suspend/resume" + - LP: #594885 + * [Config] Remove CONFIG_PM_DISABLE_CONSOLE + * [Config] ports: enable passing all kernel command line to init + - LP: #586386 + * [Config] Enable CONFIG_FB_VESA=y for x86 + * [Config] Add CONFIG_FRAMEBUFFER_CONSOLE=y to config enforcer + * [Config] Add CONFIG_FB_VESA=y for x86 to config enforcer + * [Config] Enable CONFIG_TASK_DELAY_ACCT=y + - LP: #493156 + + [ Mathieu Poirier ] + + * ARM: Adding MosChip MCS7830 to nic-usb + - LP: #584920 + + [ Upstream Kernel Changes ] + + * Revert "[Upstream] docbook: need xmldoclinks for all doc types" + * docbook: need xmldoclinks for all doc types + * perf probe: Add kernel source path option + + -- Leann Ogasawara Thu, 17 Jun 2010 08:05:29 -0700 + +linux (2.6.35-4.5) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "[Upstream] (evdev) Use driver hint to compute the evdev buffer + size (rev2)" + * Revert "[Upstream] (evdev) Convert to dynamic event buffer (rev4)" + * Revert "[Upstream] (evdev) Use multi-reader buffer to save space + (rev4)" + * Revert "SAUCE: drivers: Remove some duplicate device entries in various + modules" + * [Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID + * [Upstream] Revert "USB: Adding support for HTC Smartphones to ipaq" + * [Upstream] p54usb: Comment out duplicate Medion MD40900 device id + + [ Tim Gardner ] + + * [Config] CONFIG_NFS_FSCACHE=y + - LP: #440522 + * [Config] CONFIG_FSCACHE_STATS=y, CONFIG_FSCACHE_HISTOGRAM=y + - LP: #440522 + + -- Leann Ogasawara Wed, 16 Jun 2010 08:43:07 -0700 + +linux (2.6.35-3.4) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- ensure the version number is clean + + [ Henrik Rydberg ] + + * [Upstream] Introduce MT event slots (rev 5) + * [Upstream] Document the MT event slot protocol (rev5) + * [Upstream] (evdev) Use multi-reader buffer to save space (rev4) + * [Upstream] (evdev) Convert to dynamic event buffer (rev4) + * [Upstream] (evdev) Use driver hint to compute the evdev buffer size + (rev2) + + [ Leann Ogasawara ] + + * Revert "SAUCE: Add MODULE_ALIAS for Dell WMI module" + * Revert "SAUCE: hostap: send events on data interface as well as master + interface" + * Revert "Fix webcam having USB ID 0ac8:303b" + * Revert "SAUCE: toshiba_acpi -- pull in current -dev version of driver" + * rebase to v2.6.35-rc3 + + [ Maxim Levitsky ] + + * [Config] Enable new Smartmedia/xD translation layer + - LP: #202490 + + [ Upstream Kernel Changes ] + + * net: fix deliver_no_wcard regression on loopback device + + [ Upstream changes ] + + * rebased to v2.6.35-rc3 + + -- Leann Ogasawara Thu, 10 Jun 2010 16:15:22 -0700 + +linux (2.6.35-2.3) maverick; urgency=low + + [ Bryan Wu ] + + * CONFIG: enforce -- make sure we disable CONFIG_LOCALVERSION_AUTO + + [ Leann Ogasawara ] + + * [Config] armel: Enable CONFIG_BNX2=m + * [Config] ports: Enable CONFIG_BNX2X=m + * SAUCE: armel: define get_dma_ops to fix FTBS + + [ Tim Gardner ] + + * [Upstream] net: Print num_rx_queues imbalance warning only when there + are allocated queues + - LP: #591416 + + -- Leann Ogasawara Wed, 09 Jun 2010 08:27:41 -0700 + +linux (2.6.35-2.2) maverick; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i: make armel configuration versatile flavour specific + - LP: #588805 + * [Config] d-i: enable .udebs for omap flavour + - LP: #588805 + + [ Kees Cook ] + + * ptrace: limit scope to attach only (allow read) + - LP: #589656 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc2 + * [Config] update configs following rebase to v2.6.35-rc2 + * [Config] update port configs following rebase to v2.6.35-rc2 + + [ Lee Jones ] + + * Enable perf to be more helpful when perf_ does not exist. + - LP: #570500 + * 'fdr editconfig' modification. Easily skip over unwanted menuconfigs. + + [ Tim Gardner ] + + * [Config] Update bnx2 udeb firmware files + - LP: #589304 + + [ Upstream changes ] + + * rebased to v2.6.35-rc2 + + -- Leann Ogasawara Mon, 07 Jun 2010 09:45:04 -0700 + +linux (2.6.35-1.1) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601 + - LP: #587888 + * ubuntu: AUFS -- track changes to the arguements to fop fsync() + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc1 + * [Config] update configs following rebase to v2.6.35-rc1 + * [Config] update port configs following rebase to v2.6.35-rc1 + * SAUCE: lirc: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: convert multicast list to list_head + * [Config] [FTBS] armel: Temporarily disable CONFIG_GPIO_JANZ_TTL + * [Config] [FTBS] ia64: Temporarily disable gpiolib + * [Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS + * [Config] [FTBS] sparc: Temporarily disable CONFIG_INFINIBAND_QIB + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_DT3155 + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MTD_NAND_DENALI + * [Config] [FTBS] armel: Temporarily disable bnx2 + * [Config] [FTBS] armel: Temporarily disable CONFIG_SERIAL_UARTLITE + * SAUCE: [FTBS] armel: Don't include asm/agp.h for ttm + * SAUCE: [FTBS] armel: include linux/dma-mapping.h + * SAUCE: [FTBS] armel: replace omap_set_gpio_debounce with + gpio_set_debounce + + [ Upstream Kernel Changes ] + + * of/usb: fix build error due to of_node pointer move + * n2_crypto: Fix build after of_device/of_platform_driver changes. + * powerpc/fsl-booke: fix the case where we are not in the first page + * powerpc/fsl-booke: Move the entry setup code into a seperate file + * powerpc/kexec: Add support for FSL-BookE + * greth: Fix build after OF device conversions. + + [ Upstream changes ] + + * rebased to v2.6.35-rc1 + + -- Leann Ogasawara Fri, 04 Jun 2010 23:01:52 -0700 + +linux (2.6.35-1.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 02 Jun 2010 15:17:41 -0700 + +linux (2.6.34-5.14) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] Added module inclusion support + * [Config] Added virtual flavour module inclusion list and d-i package + definitions + + -- Leann Ogasawara Wed, 02 Jun 2010 12:58:14 -0700 + +linux (2.6.34-5.13) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2 20091209" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-standalone.patch)" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-base.patch)" + * ubuntu: AUFS -- aufs2 base patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- aufs2 standalone patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601 + - LP: #587888 + * [Config] AUFS -- enable aufs options + - LP: #587888 + + -- Leann Ogasawara Tue, 01 Jun 2010 08:56:43 -0700 + +linux (2.6.34-5.12) maverick; urgency=low + + [ Andy Whitcroft ] + + * enforce -- ensure SYSFS compatibility is disabled + + [ Chase Douglas ] + + * build with libdw-dev for perf probe symbol support + * maverick ftrace configuration changes + + [ Kees Cook ] + + * Revert "SAUCE: x86: brk away from exec rand area" + * Revert "SAUCE: [um] Don't use nx_enabled under UML" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: x86: implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + * SAUCE: ptrace: restrict ptrace scope to children + + [ Leann Ogasawara ] + + * Add new omap flavour to getabis + * [Config] Enable CONFIG_FRAMEBUFFER_CONSOLE=y for all archs + - LP: #585490 + * build/modules: Temorarily add ignore.modules + * ubuntu: iscsitarget -- version 1.4.20.1 + + [ Loïc Minier ] + + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + -- Leann Ogasawara Fri, 28 May 2010 08:27:17 -0700 + +linux (2.6.34-4.11) maverick; urgency=low + + [ Amit Kucheria ] + + * SAUCE: omap: remove calls to usb_nop_xceiv_register from board files + * [Config] Add support for OMAP-mainline flavour + + [ Andy Whitcroft ] + + * SAUCE: powerpc: fix compile error when ptrace.h is included from + userspace + - LP: #583733 + + [ Chase Douglas ] + + * Revert "SAUCE: Don't register vga16fb framebuffer if other framebuffers + are present" + * Revert "SAUCE: Disable function tracing after hitting __schedule_bug" + * Revert "SAUCE: drm/i915: don't change DRM configuration when releasing + load detect pipe" + + [ Kees Cook ] + + * SAUCE: fs: block cross-uid sticky symlinks + * SAUCE: fs: block hardlinks to non-accessible sources + + [ Koen Kooi ] + + * SAUCE: board-omap3-beagle: add DSS2 support + + [ Leann Ogasawara ] + + * Revert "staging/go7007 -- disable" + * Revert "[Config] staging/winbond -- disable" + * Revert "Disable 4MB page tables for Atom, work around errata AAE44" + * Revert "SAUCE: sync before umount to reduce time taken by ext4 umount" + * Revert "SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit + controller" + * Revert "SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT" + * Revert "SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros" + * Revert "SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps" + * Revert "SAUCE: r8169: disable TSO by default for RTL8111/8168B + chipsets." + * Revert "[Upstream] b43: Declare all possible firmware files." + * Revert "add Breaks: against hardy lvm2" + * Revert "SAUCE: Guest OS does not recognize a lun with non zero target + id on Vmware ESX Server" + * Revert "SAUCE: Catch nonsense keycodes and silently ignore" + * [Config] Enable CONFIG_ECRYPT_FS=y for ports + * [Config] Enable CONFIG_USB=y for armel and sparc + * [Config] Enable CONFIG_SCSI=y for ia64 and sparc + * [Config] Enable CONFIG_RFKILL=y for ports + * [Config] Enable CONFIG_ATH9K_DEBUGFS=y + * [Config] Enable CONFIG_IWMC3200TOP_DEBUGFS=y + * [Config] Enable CONFIG_RCU_FAST_NO_HZ=y + * [Config] Enable CONFIG_IWLWIFI_DEVICE_TRACING=y + * [Config] Enable CONFIG_LIBERTAS_MESH=y + * [Config] Enable CONFIG_MMC_RICOH_MMC=y + * [Config] CONFIG_RT2800USB_UNKNOWN=y + * [Config] Enable CONFIG_VGA_SWITCHEROO=y + * [Config] Enable CONFIG_CEPH_FS=m + * [Config] Enable CONFIG_CRYPTO_PCRYPT=m + * [Config] Enable CONFIG_EEEPC_WMI=m + * [Config] Enable CONFIG_RT2800PCI=m + * [Config] Enable CONFIG_SCSI_HPSA=m + * [Config] Enable CONFIG_VHOST_NET=m + * [Config] Disable CONFIG_SND_HDA_INPUT_BEEP_MODE by default + - LP: #582350 + * [Config] Disable CONFIG_SOUND_OSS* and CONFIG_SND_*OSS + - LP: #579300 + * [Config] Enable CONFIG_PCIEASPM=y + - LP: #333990 + * [Config] updateconfigs for OMAP flavour + + [ Loïc Minier ] + + * Enable perf tools on armel + + [ Tim Gardner ] + + * SAUCE: Updated ndiswrapper to 1.56 + - LP: #582555 + * [Config] Added virtual flavour + * [Config] Remove support for sub-flavours + * [Config] Removed amd64 preempt flavour + * [Config] updateconfigs, updateportsconfigs after flavour munging + + -- Leann Ogasawara Tue, 25 May 2010 09:34:55 -0700 + +linux (2.6.34-3.10) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34 + + [ Upstream changes ] + + * rebased to v2.6.34 + + -- Leann Ogasawara Tue, 18 May 2010 17:35:35 -0700 + +linux (2.6.34-2.9) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] [FTBS] Disable comedi for armel + + -- Leann Ogasawara Thu, 13 May 2010 23:20:55 +0200 + +linux (2.6.34-2.8) maverick; urgency=low + + [ Leann Ogasawara ] + + * Drop lpia + * [Config] [FTBS] disable KVM + * [Config] [FTBS] disable ipr for armel + + -- Leann Ogasawara Thu, 13 May 2010 16:07:52 +0200 + +linux (2.6.34-2.7) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] disable CONFIG_SCSI_IPR on powerpc + * [Config] Remove 386 flavour per UDS discussion + + -- Leann Ogasawara Wed, 12 May 2010 18:26:43 +0200 + +linux (2.6.34-1.6) maverick; urgency=low + + [ Chase Douglas ] + + * enforce CONFIG_TMPFS_POSIX_ACL=y + - LP: #575940 + * don't force module dependency checking + - LP: #577029 + + [ Kees Cook ] + + * SAUCE: mmap_min_addr check CAP_SYS_RAWIO only for write + - LP: #568844 + + [ Leann Ogasawara ] + + * Revert "SAUCE: ata: blacklist FUJITSU MHW2160BH PL" + * rebase to v2.6.34-rc7 + * [Config] update configs following rebase to v2.6.34-rc7 + * [Config] update port configs following rebase to v2.6.34-rc7 + * Add btrfs to the udebs + + [ Tim Gardner ] + + * [Config] Add atl1c to nic-modules udeb + - LP: #557130 + + [ Upstream changes ] + + * rebased to v2.6.34-rc7 + + -- Leann Ogasawara Tue, 11 May 2010 11:29:08 +0200 + +linux (2.6.34-1.5) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc6 + * [Config] update configs following rebase to v2.6.34-rc6 + * [Config] update port configs following rebase to v2.6.34-rc6 + + [ Upstream changes ] + + * rebased to v2.6.34-rc6 + + -- Leann Ogasawara Fri, 30 Apr 2010 15:54:05 +0100 + +linux (2.6.34-1.4) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc5 + * [Config] update ports configs following rebase to v2.6.34-rc5 + + [ Upstream changes ] + + * rebased to v2.6.34-rc5 + + -- Leann Ogasawara Thu, 22 Apr 2010 15:36:12 -0700 + +linux (2.6.34-1.3) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc4 + * [Config] update configs following rebase to v2.6.34-rc4 + * [Config] update port configs following rebase to v2.6.34-rc4 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc4 + + [ Upstream changes ] + + * rebased to v2.6.34-rc4 + + -- Leann Ogasawara Tue, 13 Apr 2010 18:33:44 -0700 + +linux (2.6.34-1.2) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Temorarily disable building linux-doc + * rebase to v2.6.34-rc3 + * [Config] update configs following rebase to v2.6.34-rc3 + * [Config] update port configs following rebase to v2.6.34-rc3 + + [ Upstream changes ] + + * rebased to v2.6.34-rc3 + + -- Leann Ogasawara Tue, 30 Mar 2010 16:55:44 -0700 + +linux (2.6.34-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc2 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc2 + * [Config] update port configs following rebase to v2.6.34-rc2 + * [Config] update configs following rebase to v2.6.34-rc2 + + [ Upstream changes ] + + * rebased to v2.6.34-rc2 + + -- Leann Ogasawara Wed, 24 Mar 2010 23:00:39 -0700 + +linux (2.6.33-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * ubuntu: dm-raid4-5 -- update to compile with 2.6.33 + * ubuntu: lirc -- drop explicit include of linux/autoconf.h + * ubuntu: lirc -- pass kfifo to kfifo_alloc and move spinlock + * ubuntu: lirc -- rename kfifo_put and kfifo_get + * ubuntu: iscsitarget -- rename daddr inet_sock field + * rebased to v2.6.33 + * [Config] update configs following rebase to v2.6.33 + * [Config] update ports configs following rebase to v2.6.33 + + [ Upstream changes ] + + * rebased to v2.6.33 + + -- Leann Ogasawara Tue, 23 Mar 2010 03:55:46 -0700 + +linux (2.6.33-0.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 17 Mar 2010 07:48:56 -0700 + +linux (2.6.32-16.25) lucid; urgency=low + + [ Andy Whitcroft ] + + * linux-tools -- move to Suggests: with explicit seeding + - LP: #534635 + + [ Tim Gardner ] + + * [Config] CONFIG_HID=m + + [ Upstream Kernel Changes ] + + * (pre-stable) sched: Fix SMT scheduler regression in + find_busiest_queue() + * KVM: introduce kvm_vcpu_on_spin + * KVM: VMX: Add support for Pause-Loop Exiting + + -- Andy Whitcroft Tue, 09 Mar 2010 14:13:51 +0000 + +linux (2.6.32-16.24) lucid; urgency=low + + [ Andy Whitcroft ] + + * armel -- perf userspace does not support arm + * ia64 -- libelf-dev/binutils-dev to not provide necessary libraries + + -- Andy Whitcroft Sat, 06 Mar 2010 11:42:12 +0000 + +linux (2.6.32-16.23) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: PM report driver and device suspend/resume times -- move config + * update to standards version 3.8.4.0 + * printenv -- expose all of the package selectors + * source package -- cleanup source content control + * doc package -- ensure we do build package content on buildd + * lintian -- correct the address in the debian/copyright + * lintian -- update debhelper package version dependancy + * lintian -- fix ghostscript dependancy + * lintian -- add required misc:Depends + * lintian -- move our debhelper compat level to debian/compat + * perf -- build the kernel carried tools + * perf -- add linux-tools carrying the version switches and manuals + * SAUCE: fix up Kconfig for staging drivers + * [Config] enable NOUVEAU etc following drm backport + * update DRM to mainline v2.6.33 + * [Config] Remove AppArmor config options that no longer exist (ports) + * [Config] updateportsconfigs following drm update + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-03-04 + * SAUCE: AppArmor: Reintroduce AppArmor 2.4 compatibility + * SAUCE: AppArmor: replace strim with strstrip for 2.6.32 kernels + * [Config] Remove AppArmor config options that no longer exist + + [ Manoj Iyer ] + + * ubuntu: rtl8192se -- version 2010-0115,0014 + - LP: #530275 + * [Config] added CONFIG_RTL8192SE module. + - LP: #530275 + + [ Tim Gardner ] + + * [Config] Added vmw_pvscsi to d-i/scsi-modules + - LP: #531017 + * [Upstream] netfilter: xt_recent: Add an entry reaper + + [ Upstream Kernel Changes ] + + * Revert "KVM: x86 emulator: Check CPL level during privilege instruction + emulation" + * Revert "KVM: x86 emulator: Fix popf emulation" + * Revert "KVM: x86 emulator: Check IOPL level during io instruction + emulation" + * Revert "KVM: x86 emulator: Add Virtual-8086 mode of emulation" + * Revert "KVM: fix memory access during x86 emulation." + * Add vlan (8021.Q) module package for d-i. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + * [Upstream] docbook: need xmldoclinks for all doc types + * x86: set_personality_ia32() misses force_personality32 + * lib: Introduce generic list_sort function + * drm/nv50: Implement ctxprog/state generation. + * drm/nv50: Remove redundant/incorrect ctxvals initialisation. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + + -- Andy Whitcroft Fri, 05 Mar 2010 15:40:38 +0000 + +linux (2.6.32-15.22) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT" + * Revert "SAUCE: PM report driver and device suspend/resume times." + * [Config] set CONFIG_SR_REPORT_TIME_LIMIT + + [ Manoj Iyer ] + + * SAUCE: PM report driver and device suspend/resume times. + + -- Andy Whitcroft Tue, 02 Mar 2010 01:35:37 +0000 + +linux (2.6.32-15.21) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/i915: Increase fb alignment to 64k" + * Revert "[Config] lenovo-sl-laptop -- enable" + * Revert "ubuntu: lenovo-sl-laptop -- git tip (b19a08f81f)" + * armel -- cramfs module will no longer be built + * d-i -- make all modules optional + * rename the debug packages to match archive standard + - LP: #527837 + * lenovo-sl-laptop is no longer built + + [ Colin Ian King ] + + * Disable 4MB page tables for Atom, work around errata AAE44 + - LP: #523112 + + [ Colin Watson ] + + * ubuntu: dm-raid4-5: Depend on XOR_BLOCKS + * ubuntu: fsam7400: Depend on CHECK_SIGNATURE + + [ Jesse Barnes ] + + * SAUCE: drm/i915: don't change DRM configuration when releasing load + detect pipe + - LP: #488328 + + [ Loïc Minier ] + + * [Config] armel Update versatile initrd configs + - LP: #524893 + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + [ Manoj Iyer ] + + * [Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT + + [ Mario Limonciello ] + + * SAUCE: v3 - Add Dell Business Class Netbook LED driver + + [ Rafael J. Wysocki ] + + * SAUCE: PM report driver and device suspend/resume times. + + [ Surbhi Palande ] + + * Revert "[Upstream] e1000e: enhance frame fragment detection" + - CVE-2009-4538 + * Revert "[Upstream] e1000: enhance frame fragment detection" + - CVE-2009-4536 + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_LEDS_DELL_NETBOOKS=m + * SAUCE: (pre-stable) netfilter: xt_recent: fix buffer overflow + * SAUCE: (pre-stable) netfilter: xt_recent: fix false match + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) eCryptfs: Add getattr function" + * Fix potential crash with sys_move_pages + * futex_lock_pi() key refcnt fix + * futex: Handle user space corruption gracefully + * futex: Handle futex value corruption gracefully + * Fix race in tty_fasync() properly + * hwmon: (w83781d) Request I/O ports individually for probing + * hwmon: (lm78) Request I/O ports individually for probing + * hwmon: (adt7462) Wrong ADT7462_VOLT_COUNT + * ALSA: ctxfi - fix PTP address initialization + * drm/i915: disable hotplug detect before Ironlake CRT detect + * drm/i915: enable self-refresh on 965 + * drm/i915: Disable SR when more than one pipe is enabled + * drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup. + * drm/i915: Add HP nx9020/SamsungSX20S to ACPI LID quirk list + * drm/i915: Fix the incorrect DMI string for Samsung SX20S laptop + * drm/i915: Add MALATA PC-81005 to ACPI LID quirk list + * usb: r8a66597-hcd: Flush the D-cache for the pipe-in transfer buffers. + * i2c-tiny-usb: Fix on big-endian systems + * drm/i915: handle FBC and self-refresh better + * drm/i915: Increase fb alignment to 64k + * drm/i915: Update write_domains on active list after flush. + * regulator: Fix display of null constraints for regulators + * ALSA: hda-intel: Avoid divide by zero crash + * CPUFREQ: Fix use after free of struct powernow_k8_data + * freeze_bdev: don't deactivate successfully frozen MS_RDONLY sb + * cciss: Make cciss_seq_show handle holes in the h->drv[] array + * ioat: fix infinite timeout checking in ioat2_quiesce + * resource: add helpers for fetching rlimits + * fs/exec.c: restrict initial stack space expansion to rlimit + * cifs: fix length calculation for converted unicode readdir names + * NFS: Fix a reference leak in nfs_wb_cancel_page() + * NFS: Try to commit unstable writes in nfs_release_page() + * NFSv4: Don't allow posix locking against servers that don't support it + * NFSv4: Ensure that the NFSv4 locking can recover from stateid errors + * NFS: Fix an Oops when truncating a file + * NFS: Fix a umount race + * NFS: Fix a bug in nfs_fscache_release_page() + * NFS: Fix the mapping of the NFSERR_SERVERFAULT error + * md: fix 'degraded' calculation when starting a reshape. + * V4L/DVB: dvb-core: fix initialization of feeds list in demux filter + * Export the symbol of getboottime and mmonotonic_to_bootbased + * kvmclock: count total_sleep_time when updating guest clock + * KVM: PIT: control word is write-only + * tpm_infineon: fix suspend/resume handler for pnp_driver + * amd64_edac: Do not falsely trigger kerneloops + * netfilter: nf_conntrack: fix memory corruption with multiple namespaces + * netfilter: nf_conntrack: per netns nf_conntrack_cachep + * netfilter: nf_conntrack: restrict runtime expect hashsize modifications + * netfilter: xtables: compat out of scope fix + * netfilter: nf_conntrack: fix hash resizing with namespaces + * drm/i915: remove full registers dump debug + * drm/i915: add i915_lp_ring_sync helper + * drm/i915: Don't wait interruptible for possible plane buffer flush + * dasd: remove strings from s390dbf + * crypto: padlock-sha - Add import/export support + * wmi: Free the allocated acpi objects through wmi_get_event_data + * dell-wmi, hp-wmi, msi-wmi: check wmi_get_event_data() return value + * /dev/mem: introduce size_inside_page() + * devmem: check vmalloc address on kmem read/write + * devmem: fix kmem write bug on memory holes + * SCSI: mptfusion : mptscsih_abort return value should be SUCCESS instead + of value 0. + * sh: Couple kernel and user write page perm bits for CONFIG_X2TLB + * ALSA: hda - use WARN_ON_ONCE() for zero-division detection + * dst: call cond_resched() in dst_gc_task() + * ALSA: hda - Improved MacBook (Pro) 5,1 / 5,2 support + * befs: fix leak + * rtc-fm3130: add missing braces + * Call flush_dcache_page after PIO data transfers in libata-sff.c + * ahci: add Acer G725 to broken suspend list + * pktgen: Fix freezing problem + * x86/amd-iommu: Fix IOMMU-API initialization for iommu=pt + * x86/amd-iommu: Fix deassignment of a device from the pt_domain + * x86: Re-get cfg_new in case reuse/move irq_desc + * Staging: fix rtl8187se compilation errors with mac80211 + * ALSA: usb-audio - Avoid Oops after disconnect + * serial: 8250: add serial transmitter fully empty test + * sysfs: sysfs_sd_setattr set iattrs unconditionally + * class: Free the class private data in class_release + * USB: usbfs: only copy the actual data received + * USB: usbfs: properly clean up the as structure on error paths + * rtl8187: Add new device ID + * ACPI: Add NULL pointer check in acpi_bus_start + * ACPI: fix High cpu temperature with 2.6.32 + * drm/radeon/kms: use udelay for short delays + * NFS: Too many GETATTR and ACCESS calls after direct I/O + * eCryptfs: Add getattr function + * b43: Fix throughput regression + * ath9k: Fix sequence numbers for PAE frames + * mac80211: Fix probe request filtering in IBSS mode + * iwlwifi: Fix to set correct ht configuration + * dm stripe: avoid divide by zero with invalid stripe count + * dm log: userspace fix overhead_size calcuations + * Linux 2.6.32.9 + * sfc: Fix SFE4002 initialisation + * sfc: Fix sign of efx_mcdi_poll_reboot() error in efx_mcdi_poll() + * sfc: SFE4002/SFN4112F: Widen temperature and voltage tolerances + * (pre-stable) HID: handle joysticks with large number of buttons + - LP: #492056 + * (pre-stable) HID: extend mask for BUTTON usage page + - LP: #492056 + * PM: Measure device suspend and resume times + * e1000: enhance frame fragment detection + - CVE-2009-4536 + * e1000e: enhance frame fragment detection + - CVE-2009-4538 + * KVM: fix memory access during x86 emulation. + - CVE-2010-0306 + * KVM: x86 emulator: Add Virtual-8086 mode of emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check IOPL level during io instruction emulation + - CVE-2010-0306 + * KVM: x86 emulator: Fix popf emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check CPL level during privilege instruction + emulation + - CVE-2010-0306 + * Input: wacom - ensure the device is initialized properly upon resume + * Input: wacom - add defines for packet lengths of various devices + * Input: wacom - add support for new LCD tablets + - LP: #516777 + + -- Andy Whitcroft Mon, 01 Mar 2010 22:56:28 +0000 + +linux (2.6.32-14.20) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebuild following the GCC update to match compiler for out of tree modules + * Revert "[Config] drbd -- enable" + * Revert "ubuntu: drbd -- version 8.3.1" + * SAUCE: khubd -- switch USB product/manufacturer/serial handling to RCU + - LP: #510937 + + -- Andy Whitcroft Fri, 19 Feb 2010 18:47:18 +0000 + +linux (2.6.32-14.19) lucid; urgency=low + + [ Andy Whitcroft ] + + * ensure we build the source package contents when enabled + - LP: #522308 + * [Config] enable CONFIG_X86_MCE_XEON75XX + * SAUCE: AppArmor -- add linux/kref.h for struct kref + * [Config] enable CONFIG_HID_ORTEK + * enable udeb generation for arm versatile flavour + - LP: #522515 + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-02-18 + - LP: #439560, #496110, #507069 + + [ Johnathon Harris ] + + * SAUCE: HID: add support for Ortek WKB-2000 + - LP: #405390 + + [ Upstream Kernel Changes ] + + * tpm_tis: TPM_STS_DATA_EXPECT workaround + - LP: #490487 + * x86, mce: Xeon75xx specific interface to get corrected memory error + information + * x86, mce: Rename cpu_specific_poll to mce_cpu_specific_poll + * x86, mce: Make xeon75xx memory driver dependent on PCI + * drm/edid: Unify detailed block parsing between base and extension + blocks + - LP: #500999 + * (pre-stable) eCryptfs: Add getattr function + - LP: #390833 + + -- Andy Whitcroft Thu, 18 Feb 2010 19:22:02 +0000 + +linux (2.6.32-13.18) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "enforcer -- make the enforcement configuration common" + * Revert "(pre-stable) Input: ALPS - add interleaved protocol support + (Dell E6x00 series)" + * Revert "(pre-stable) driver-core: fix devtmpfs crash on s390" + * Revert "(pre-stable) Driver-Core: devtmpfs - set root directory mode to + 0755" + * Revert "SAUCE: Adds support for COMPAL JHL90 webcam" + * Revert "SAUCE: fix kernel oops in VirtualBox during paravirt patching" + * Revert "SAUCE: make fc transport removal of target configurable" + * enforcer -- make the enforcement configuration common + * getabis -- add preempt flavour to the list + * [Config] enforce DEVTMPFS options + * [Config] armel -- cleanup to-be builtin modules + * [Config] cleanup ports configs + * [Config] enable CRYPTO_GHASH_CLMUL_NI_INTEL + - LP: #485536 + * add printdebian target to find branch target + * distclean -- do not remove debian.env + * [Config] generic-pae switch to M586TSC + - LP: #519448 + * git-ubuntu-log -- commonise duplicated log handling + * git-ubuntu-log -- tighten up Bug: NNNN matching + * git-ubuntu-log -- sort the bug numbers + + [ Chris Wilson ] + + * (pre-stable) drm/i915: Increase fb alignment to 64k + - LP: #404064 + + [ Eric Miao ] + + * arm -- enable ubuntu/ directory + + [ Huang Ying ] + + * SAUCE: crypto: ghash - Add PCLMULQDQ accelerated implementation + * SAUCE: crypto: ghash-intel - Fix building failure on x86_32 + + [ Loïc Minier ] + + * [Config] cleanup preempt configuration + * [Config] versatile: Fix video output + - LP: #517594 + * [Config] armel DEFAULT_MMAP_MIN_ADDR=32768 + * [Config] Large update to armel/versatile + * [Config] versatile: Add RTC support + * [Config] armel: Enable NEON + * [Config] versatile: Builtin MMC support + * [Config] versatile Builtin SCSI controller + * [Config] armel Disable dma_cache_sync callers + * [Config] armel Disable asm/time.h users + * [Config] armel Disable out of range udelay() + * [Config] armel Disable flush_cache_range() users + * [Config] armel -- Enable ubuntu/ drivers + + [ Steve Conklin ] + + * SAUCE: drm/i915: Add display hotplug event on Ironlake + * SAUCE: drm/i915: Add ACPI OpRegion support for Ironlake + + [ Upstream Kernel Changes ] + + * Revert "[Upstream]: oprofile/x86: add Xeon 7500 series support" + * Revert "Revert "[Bluetooth] Eliminate checks for impossible conditions + in IRQ handler"" + * clockevent: Don't remove broadcast device when cpu is dead + * clockevents: Add missing include to pacify sparse + * ACPI: don't cond_resched if irq is disabled + * be2net: Add support for next generation of BladeEngine device. + * be2net: Add the new PCI IDs to PCI_DEVICE_TABLE. + * mpt2sas: New device SAS2208 support is added + * ar9170: Add support for D-Link DWA 160 A2 + * powerpc/fsl: Add PCI device ids for new QoirQ chips + * davinci: dm646x: Add support for 3.x silicon revision + * Input: ALPS - add interleaved protocol support (Dell E6x00 series) + * Driver-Core: devtmpfs - set root directory mode to 0755 + * driver-core: fix devtmpfs crash on s390 + * vfs: get_sb_single() - do not pass options twice + * ALSA: hda - Add PCI IDs for Nvidia G2xx-series + * V4L/DVB (13569): smsusb: add autodetection support for five additional + Hauppauge USB IDs + * USB: mos7840: add device IDs for B&B electronics devices + * USB: ftdi_sio: add USB device ID's for B&B Electronics line + * V4L/DVB (13168): Add support for Asus Europa Hybrid DVB-T card (SAA7134 + SubVendor ID: 0x1043 Device ID: 0x4847) + * iTCO_wdt: Add support for Intel Ibex Peak + * atl1c:use common_task instead of reset_task and link_chg_task + * atl1e:disable NETIF_F_TSO6 for hardware limit + * V4L/DVB (13680a): DocBook/media: copy images after building HTML + * V4L/DVB (13680b): DocBook/media: create links for included sources + * netfilter: xtables: fix conntrack match v1 ipt-save output + * partitions: read whole sector with EFI GPT header + * partitions: use sector size for EFI GPT + * ALSA: ice1724 - Patch for suspend/resume for ESI Juli@ + * sched: Fix isolcpus boot option + * sched: Fix missing sched tunable recalculation on cpu add/remove + * nohz: Prevent clocksource wrapping during idle + * nfsd: Fix sort_pacl in fs/nfsd/nf4acl.c to actually sort groups + * timers, init: Limit the number of per cpu calibration bootup messages + * PCI: Always set prefetchable base/limit upper32 registers + * iscsi class: modify handling of replacement timeout + * NFS: Revert default r/wsize behavior + * HID: fixup quirk for NCR devices + * scsi_devinfo: update Hitachi entries (v2) + * scsi_dh: create sysfs file, dh_state for all SCSI disk devices + * scsi_transport_fc: remove invalid BUG_ON + * lpfc: fix hang on SGI ia64 platform + * libfc: fix typo in retry check on received PRLI + * libfc: fix ddp in fc_fcp for 0 xid + * fcoe: remove redundant checking of netdev->netdev_ops + * libfc: Fix wrong scsi return status under FC_DATA_UNDRUN + * libfc: lport: fix minor documentation errors + * libfc: don't WARN_ON in lport_timeout for RESET state + * fcoe: initialize return value in fcoe_destroy + * libfc: Fix frags in frame exceeding SKB_MAX_FRAGS in fc_fcp_send_data + * libfc: fix memory corruption caused by double frees and bad error + handling + * libfc: fix free of fc_rport_priv with timer pending + * libfc: remote port gets stuck in restart state without really + restarting + * fcoe, libfc: fix an libfc issue with queue ramp down in libfc + * fcoe: Fix checking san mac address + * fcoe: Fix getting san mac for VLAN interface + * qlge: Remove explicit setting of PCI Dev CTL reg. + * qlge: Set PCIE max read request size. + * qlge: Don't fail open when port is not initialized. + * qlge: Add handler for DCBX firmware event. + * qlge: Bonding fix for mode 6. + * PCI: AER: fix aer inject result in kernel oops + * DMI: allow omitting ident strings in DMI tables + * Input: i8042 - remove identification strings from DMI tables + * Input: i8042 - add Gigabyte M1022M to the noloop list + * Input: i8042 - add Dritek quirk for Acer Aspire 5610. + * ALSA: hda - select IbexPeak handler for Calpella + * ALSA: hda - Fix quirk for Maxdata obook4-1 + * ALSA: hda - Add missing Line-Out and PCM switches as slave + * iTCO_wdt.c - cleanup chipset documentation + * iTCO_wdt: add PCI ID for the Intel EP80579 (Tolapai) SoC + * iTCO_wdt: Add Intel Cougar Point and PCH DeviceIDs + * ahci: disable SNotification capability for ich8 + * ata_piix: fix MWDMA handling on PIIX3 + * md: fix small irregularity with start_ro module parameter + * V4L/DVB (13826): uvcvideo: Fix controls blacklisting + * cio: fix double free in case of probe failure + * cio: dont panic in non-fatal conditions + * netiucv: displayed TX bytes value much too high + * ipc ns: fix memory leak (idr) + * ALSA: hda - Fix HP T5735 automute + * hwmon: (fschmd) Fix a memleak on multiple opens of /dev/watchdog + * UBI: fix memory leak in update path + * UBI: initialise update marker + * ASoC: fix a memory-leak in wm8903 + * mac80211: check that ieee80211_set_power_mgmt only handles STA + interfaces. + * cfg80211: fix channel setting for wext + * KVM: S390: fix potential array overrun in intercept handling + * KVM: only allow one gsi per fd + * KVM: Fix race between APIC TMR and IRR + * KVM: MMU: bail out pagewalk on kvm_read_guest error + * KVM: x86: Fix host_mapping_level() + * KVM: x86: Fix probable memory leak of vcpu->arch.mce_banks + * KVM: x86: Fix leak of free lapic date in kvm_arch_vcpu_init() + * KVM: fix lock imbalance in kvm_*_irq_source_id() + * KVM: only clear irq_source_id if irqchip is present + * IPoIB: Clear ipoib_neigh.dgid in ipoib_neigh_alloc() + * x86: Reenable TSC sync check at boot, even with NONSTOP_TSC + * ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C + - LP: #516325 + * iwlwifi: Fix throughput stall issue in HT mode for 5000 + * fnctl: f_modown should call write_lock_irqsave/restore + * x86, msr/cpuid: Pass the number of minors when unregistering MSR and + CPUID drivers. + * Linux 2.6.32.7 + * scsi_lib: Fix bug in completion of bidi commands + * mptsas: Fix issue with chain pools allocation on katmai + * mm: add new 'read_cache_page_gfp()' helper function + * drm/i915: Selectively enable self-reclaim + * firewire: ohci: fix crashes with TSB43AB23 on 64bit systems + * S390: fix single stepped svcs with TRACE_IRQFLAGS=y + * x86: Set hotpluggable nodes in nodes_possible_map + * x86: Remove "x86 CPU features in debugfs" (CONFIG_X86_CPU_DEBUG) + * libata: retry FS IOs even if it has failed with AC_ERR_INVALID + * zcrypt: Do not remove coprocessor for error 8/72 + * dasd: fix possible NULL pointer errors + * ACPI: Add a generic API for _OSC -v2 + * ACPI: Add platform-wide _OSC support. + * ACPI: fix OSC regression that caused aer and pciehp not to load + * ACPI: Advertise to BIOS in _OSC: _OST on _PPC changes + * UBI: fix volume creation input checking + * e1000/e1000e: don't use small hardware rx buffers + * drm/i915: Reload hangcheck timer too for Ironlake + * Fix a leak in affs_fill_super() + * Fix failure exits in bfs_fill_super() + * fix oops in fs/9p late mount failure + * fix leak in romfs_fill_super() + * Fix remount races with symlink handling in affs + * fix affs parse_options() + * Fix failure exit in ipathfs + * mm: fix migratetype bug which slowed swapping + * FDPIC: Respect PT_GNU_STACK exec protection markings when creating + NOMMU stack + * Split 'flush_old_exec' into two functions + * sparc: TIF_ABI_PENDING bit removal + * x86: get rid of the insane TIF_ABI_PENDING bit + * Input: winbond-cir - remove dmesg spam + * x86: Disable HPET MSI on ATI SB700/SB800 + * iwlwifi: set default aggregation frame count limit to 31 + * drm/i915: only enable hotplug for detected outputs + * firewire: core: add_descriptor size check + * SECURITY: selinux, fix update_rlimit_cpu parameter + * regulator: Specify REGULATOR_CHANGE_STATUS for WM835x LED constraints + * x86: Add Dell OptiPlex 760 reboot quirk + - LP: #488319 + * x86: Add quirk for Intel DG45FC board to avoid low memory corruption + * x86/amd-iommu: Fix possible integer overflow + * clocksource: fix compilation if no GENERIC_TIME + * tcp: update the netstamp_needed counter when cloning sockets + * sky2: Fix oops in sky2_xmit_frame() after TX timeout + * net: restore ip source validation + * af_packet: Don't use skb after dev_queue_xmit() + * ax25: netrom: rose: Fix timer oopses + * KVM: allow userspace to adjust kvmclock offset + * oprofile/x86: add Xeon 7500 series support + * oprofile/x86: fix crash when profiling more than 28 events + * libata: retry link resume if necessary + * mm: percpu-vmap fix RCU list walking + * mm: purge fragmented percpu vmap blocks + * block: fix bio_add_page for non trivial merge_bvec_fn case + * Fix 'flush_old_exec()/setup_new_exec()' split + * random: drop weird m_time/a_time manipulation + * random: Remove unused inode variable + * block: fix bugs in bio-integrity mempool usage + * usb: r8a66597-hdc disable interrupts fix + * connector: Delete buggy notification code. + * be2net: Bug fix to support newer generation of BE ASIC + * be2net: Fix memset() arg ordering. + * mm: flush dcache before writing into page to avoid alias + * mac80211: fix NULL pointer dereference when ftrace is enabled + * imxfb: correct location of callbacks in suspend and resume + * mx3fb: some debug and initialisation fixes + * starfire: clean up properly if firmware loading fails + * kernel/cred.c: use kmem_cache_free + * uartlite: fix crash when using as console + * pktcdvd: removing device does not remove its sysfs dir + * ath9k: fix eeprom INI values override for 2GHz-only cards + * ath9k: fix beacon slot/buffer leak + * powerpc: TIF_ABI_PENDING bit removal + * NET: fix oops at bootime in sysctl code + * Linux 2.6.32.8 + + -- Andy Whitcroft Wed, 10 Feb 2010 18:56:52 +0000 + +linux (2.6.32-12.17) lucid; urgency=low + + [ Andy Whitcroft ] + + * restore linux-image prefix -- master + * enforce -- we require SELINUX enabled -- master + * enforce -- ensure APPARMOR is our default LSM -- master + * make doc package completely optional -- master + * make source package completely optional -- master + * make linux-libc-dev completly optional -- master + * convert package disable to a deps list -- master + * allow common headers to switch from indep to arch -- master + * convert binary package disable to a deps list -- master + * add configuration option for a full source build tree -- master + * add support for uImage kernels in package control scripts + * getabis -- cleanup and parameterise repository list -- master + * getabis -- move configuration to etc/getabi -- master + * kernelconfig -- move configuration to etc -- master + * rules -- make debian/debian.env master for branch name + * set the current branch name -- master + * pull back common debian.master files into debian -- master + * enforcer -- make the enforcement configuration common + * insert-changes -- correctly link to debian/rules in DROOT + + [ Colin Watson ] + + * future-proof ddeb handling against buildd changes + + [ Eric Miao ] + + * SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} depend on + X86 + + [ Loïc Minier ] + + * Add modules.builtin.bin to prerm rm list + - LP: #516584 + + [ Tim Gardner ] + + * [Config] Implement the amd64 preempt flavour + + [ Upstream Kernel Changes ] + + * syslog: distinguish between /proc/kmsg and syscalls + - LP: #515623 + * sfc: Fix polling for slow MCDI operations + * sfc: Fix conditions for MDIO self-test + * sfc: QT202x: Remove unreliable MMD check at initialisation + * sfc: Add workspace for GMAC bug workaround to MCDI MAC_STATS buffer + * sfc: Use fixed-size buffers for MCDI NVRAM requests + + -- Andy Whitcroft Fri, 05 Feb 2010 07:09:31 +0000 + +linux (2.6.32-12.16) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: acpi battery -- delay first lookup of the battery until + first use" + * SAUCE: acpi battery -- move first lookup asynchronous + - LP: #507211 + * [Config] update configs to cleanup generic configs + * [Config] disable CONFIG_X86_CPU_DEBUG for amd64 + * [Config] enable USER_NS + - LP: #480739, #509808 + + [ Heiko Carstens ] + + * (pre-stable) driver-core: fix devtmpfs crash on s390 + - LP: #512370 + + [ John Johansen ] + + * [Config] for server and virtual flavours make CONFIG_SCSI_SYM53C8XX_2=y + - LP: #494565 + * [Config] VIRTIO=y for server/virtual flavours + - LP: #494565 + + [ Kay Sievers ] + + * (pre-stable) Driver-Core: devtmpfs - set root directory mode to 0755 + - LP: #512370 + + [ Kees Cook ] + + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + + [ Leann Ogasawara ] + + * [Upstream] e1000: enhance frame fragment detection + - CVE-2009-4536 + * [Upstream] e1000e: enhance frame fragment detection + - CVE-2009-4538 + + [ Sebastian Kapfer ] + + * (pre-stable) Input: ALPS - add interleaved protocol support (Dell E6x00 + series) + - LP: #296610 + + [ Upstream Kernel Changes ] + + * inotify: do not reuse watch descriptors + - LP: #485556 + * inotify: only warn once for inotify problems + * revert "drivers/video/s3c-fb.c: fix clock setting for Samsung SoC + Framebuffer" + * memcg: ensure list is empty at rmdir + * drm/i915: remove loop in Ironlake interrupt handler + * block: Fix incorrect reporting of partition alignment + * x86, mce: Thermal monitoring depends on APIC being enabled + * futexes: Remove rw parameter from get_futex_key() + * page allocator: update NR_FREE_PAGES only when necessary + * x86, apic: use physical mode for IBM summit platforms + * edac: i5000_edac critical fix panic out of bounds + * x86: SGI UV: Fix mapping of MMIO registers + * mfd: WM835x GPIO direction register is not locked + * mfd: Correct WM835x ISINK ramp time defines + * ALSA: hda - Fix missing capture mixer for ALC861/660 codecs + * V4L/DVB (13868): gspca - sn9c20x: Fix test of unsigned. + * reiserfs: truncate blocks not used by a write + * HID: add device IDs for new model of Apple Wireless Keyboard + * PCI/cardbus: Add a fixup hook and fix powerpc + * Input: pmouse - move Sentelic probe down the list + * asus-laptop: add Lenovo SL hotkey support + * sched: Fix cpu_clock() in NMIs, on !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK + * sparc64: Fix NMI programming when perf events are active. + * sparc64: Fix Niagara2 perf event handling. + * i2c: Do not use device name after device_unregister + * i2c/pca: Don't use *_interruptible + * serial/8250_pnp: add a new Fujitsu Wacom Tablet PC device + * sched: Fix task priority bug + * vfs: Fix vmtruncate() regression + * Linux 2.6.32.5 + * x86, msr/cpuid: Register enough minors for the MSR and CPUID drivers + * V4L/DVB (13900): gspca - sunplus: Fix bridge exchanges. + * Staging: asus_oled: fix oops in 2.6.32.2 + * Staging: hv: fix smp problems in the hyperv core code + * tty: fix race in tty_fasync + * ecryptfs: use after free + * ecryptfs: initialize private persistent file before dereferencing + pointer + * nozomi: quick fix for the close/close bug + * serial: 8250_pnp: use wildcard for serial Wacom tablets + * usb: serial: fix memory leak in generic driver + * USB: fix bitmask merge error + * USB: Don't use GFP_KERNEL while we cannot reset a storage device + * USB: EHCI: fix handling of unusual interrupt intervals + * USB: EHCI & UHCI: fix race between root-hub suspend and port resume + * USB: add missing delay during remote wakeup + * USB: add speed values for USB 3.0 and wireless controllers + * ACPI: EC: Accelerate query execution + * ACPI: EC: Add wait for irq storm + * SCSI: enclosure: fix oops while iterating enclosure_status array + * drm/i915: Read the response after issuing DDC bus switch command + * drm/i915: try another possible DDC bus for the SDVO device with + multiple outputs + * block: bdev_stack_limits wrapper + * DM: Fix device mapper topology stacking + * x86/PCI/PAT: return EINVAL for pci mmap WC request for !pat_enabled + * USB: fix usbstorage for 2770:915d delivers no FAT + * vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREE + * perf timechart: Use tid not pid for COMM change + * perf events: Dont report side-band events on each cpu for + per-task-per-cpu events + * perf: Honour event state for aux stream data + * Linux 2.6.32.6 + + -- Andy Whitcroft Wed, 27 Jan 2010 16:40:23 +0000 + +linux (2.6.32-11.15) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/radeon/kms: fix crtc vblank update for r600" + * Revert "(pre-stable) sched: Fix balance vs hotplug race" + * Revert "[Upstream] acerhdf: Limit modalias matching to supported + boards" + * Revert "[Upstream] mmc: prevent dangling block device from accessing + stale queues" + * Revert "SAUCE: Fix nx_enable reporting" + * Revert "SAUCE: [x86] fix report of cs-limit nx-emulation" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: i915 -- disable powersave by default + - LP: #492392 + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Tim Gardner ] + + * [Upstream] b43: Declare all possible firmware files. + - LP: #488636 + * [Config] updateconfigs after adding pvscsi + - LP: #497156 + * [Config] CONFIG_BT=m + + [ Upstream Kernel Changes ] + + * Revert "x86: Side-step lguest problem by only building cmpxchg8b_emu + for pre-Pentium" + * SCSI: ipr: fix EEH recovery + * SCSI: qla2xxx: dpc thread can execute before scsi host has been added + * SCSI: st: fix mdata->page_order handling + * SCSI: fc class: fix fc_transport_init error handling + * sched: Fix task_hot() test order + * x86, cpuid: Add "volatile" to asm in native_cpuid() + * sched: Select_task_rq_fair() must honour SD_LOAD_BALANCE + * clockevents: Prevent clockevent_devices list corruption on cpu hotplug + * pata_hpt3x2n: fix clock turnaround + * pata_cmd64x: fix overclocking of UDMA0-2 modes + * ASoC: wm8974: fix a wrong bit definition + * sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer + * ALSA: hda - Fix missing capsrc_nids for ALC88x + * acerhdf: limit modalias matching to supported + - LP: #435958 + * ACPI: EC: Fix MSI DMI detection + * ACPI: Use the return result of ACPI lid notifier chain correctly + * powerpc: Handle VSX alignment faults correctly in little-endian mode + * ASoC: Do not write to invalid registers on the wm9712. + * drm/radeon: fix build on 64-bit with some compilers. + * USB: emi62: fix crash when trying to load EMI 6|2 firmware + * USB: option: support hi speed for modem Haier CE100 + * USB: Fix a bug on appledisplay.c regarding signedness + * USB: musb: gadget_ep0: avoid SetupEnd interrupt + * Bluetooth: Prevent ill-timed autosuspend in USB driver + * USB: rename usb_configure_device + * USB: fix bugs in usb_(de)authorize_device + * drivers/net/usb: Correct code taking the size of a pointer + * x86: SGI UV: Fix writes to led registers on remote uv hubs + * md: Fix unfortunate interaction with evms + * dma: at_hdmac: correct incompatible type for argument 1 of + 'spin_lock_bh' + * dma-debug: Do not add notifier when dma debugging is disabled. + * dma-debug: Fix bug causing build warning + * cifs: NULL out tcon, pSesInfo, and srvTcp pointers when chasing DFS + referrals + * x86/amd-iommu: Fix initialization failure panic + * ioat3: fix p-disabled q-continuation + * ioat2,3: put channel hardware in known state at init + * KVM: MMU: remove prefault from invlpg handler + * KVM: LAPIC: make sure IRR bitmap is scanned after vm load + * Libertas: fix buffer overflow in lbs_get_essid() + * iwmc3200wifi: fix array out-of-boundary access + * mac80211: fix propagation of failed hardware reconfigurations + * mac80211: fix WMM AP settings application + * mac80211: Fix IBSS merge + * cfg80211: fix race between deauth and assoc response + * ath5k: fix SWI calibration interrupt storm + * ath9k: wake hardware for interface IBSS/AP/Mesh removal + * ath9k: Fix TX queue draining + * ath9k: fix missed error codes in the tx status check + * ath9k: wake hardware during AMPDU TX actions + * ath9k: fix suspend by waking device prior to stop + * ath9k_hw: Fix possible OOB array indexing in gen_timer_index[] on + 64-bit + * ath9k_hw: Fix AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_BB and its shift value + in 0x4054 + * iwl3945: disable power save + * iwl3945: fix panic in iwl3945 driver + * iwlwifi: fix EEPROM/OTP reading endian annotations and a bug + * iwlwifi: fix more eeprom endian bugs + * iwlwifi: fix 40MHz operation setting on cards that do not allow it + * mac80211: fix race with suspend and dynamic_ps_disable_work + * NOMMU: Optimise away the {dac_,}mmap_min_addr tests + * 'sysctl_max_map_count' should be non-negative + * kernel/sysctl.c: fix the incomplete part of + sysctl_max_map_count-should-be-non-negative.patch + * V4L/DVB (13596): ov511.c typo: lock => unlock + * x86/ptrace: make genregs[32]_get/set more robust + * memcg: avoid oom-killing innocent task in case of use_hierarchy + * e100: Fix broken cbs accounting due to missing memset. + * ipv6: reassembly: use seperate reassembly queues for conntrack and + local delivery + * netfilter: fix crashes in bridge netfilter caused by fragment jumps + * hwmon: (sht15) Off-by-one error in array index + incorrect constants + * b43: avoid PPC fault during resume + * Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture + support + * sched: Fix balance vs hotplug race + * drm/radeon/kms: fix crtc vblank update for r600 + * drm: disable all the possible outputs/crtcs before entering KMS mode + * S390: dasd: support DIAG access for read-only devices + * xen: fix is_disconnected_device/exists_disconnected_device + * xen: improvement to wait_for_devices() + * xen: wait up to 5 minutes for device connetion + * orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled + * udf: Try harder when looking for VAT inode + * Add unlocked version of inode_add_bytes() function + * quota: decouple fs reserved space from quota reservation + * ext4: Convert to generic reserved quota's space management. + * ext4: fix sleep inside spinlock issue with quota and dealloc (#14739) + * x86, msr: Unify rdmsr_on_cpus/wrmsr_on_cpus + * cpumask: use modern cpumask style in drivers/edac/amd64_edac.c + * amd64_edac: unify MCGCTL ECC switching + * x86, msr: Add support for non-contiguous cpumasks + * x86, msr: msrs_alloc/free for CONFIG_SMP=n + * amd64_edac: fix driver instance freeing + * amd64_edac: make driver loading more robust + * amd64_edac: fix forcing module load/unload + * sched: Sched_rt_periodic_timer vs cpu hotplug + * ext4: Update documentation to correct the inode_readahead_blks option + name + * lguest: fix bug in setting guest GDT entry + * vmscan: do not evict inactive pages when skipping an active list scan + * ksm: fix mlockfreed to munlocked + * rt2x00: Disable powersaving for rt61pci and rt2800pci. + * generic_permission: MAY_OPEN is not write access + * Linux 2.6.32.3 + * untangle the do_mremap() mess + * fasync: split 'fasync_helper()' into separate add/remove functions + * ASoC: fix params_rate() macro use in several codecs + * modules: Skip empty sections when exporting section notes + * exofs: simple_write_end does not mark_inode_dirty + * nfsd: make sure data is on disk before calling ->fsync + * sunrpc: fix peername failed on closed listener + * SUNRPC: Fix up an error return value in + gss_import_sec_context_kerberos() + * SUNRPC: Fix the return value in gss_import_sec_context() + * sunrpc: on successful gss error pipe write, don't return error + * drm/i915: Update LVDS connector status when receiving ACPI LID event + * drm/i915: fix order of fence release wrt flushing + * drm/i915: Permit pinning whilst the device is 'suspended' + * drm: remove address mask param for drm_pci_alloc() + * drm/i915: Enable/disable the dithering for LVDS based on VBT setting + * drm/i915: Make the BPC in FDI rx/transcoder be consistent with that in + pipeconf on Ironlake + * drm/i915: Select the correct BPC for LVDS on Ironlake + * drm/i915: fix unused var + * rtc_cmos: convert shutdown to new pnp_driver->shutdown + * drivers/cpuidle/governors/menu.c: fix undefined reference to + `__udivdi3' + * cgroups: fix 2.6.32 regression causing BUG_ON() in cgroup_diput() + * lib/rational.c needs module.h + * dma-debug: allow DMA_BIDIRECTIONAL mappings to be synced with + DMA_FROM_DEVICE and + * kernel/signal.c: fix kernel information leak with print-fatal-signals=1 + * mmc_block: add dev_t initialization check + * mmc_block: fix probe error cleanup bug + * mmc_block: fix queue cleanup + * ALSA: hda - Fix ALC861-VD capture source mixer + * ALSA: ac97: Add Dell Dimension 2400 to Headphone/Line Jack Sense + blacklist + * ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2 + - LP: #498863 + * ASoC: Fix WM8350 DSP mode B configuration + * netfilter: ebtables: enforce CAP_NET_ADMIN + * netfilter: nf_ct_ftp: fix out of bounds read in update_nl_seq() + * hwmon: (coretemp) Fix TjMax for Atom N450/D410/D510 CPUs + * hwmon: (adt7462) Fix pin 28 monitoring + * quota: Fix dquot_transfer for filesystems different from ext4 + * xen: fix hang on suspend. + * iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr + * ath5k: Fix eeprom checksum check for custom sized eeproms + * cfg80211: fix syntax error on user regulatory hints + * iwl: off by one bug + * mac80211: add missing sanity checks for action frames + * drm/i915: remove render reclock support + * libertas: Remove carrier signaling from the scan code + * kernel/sysctl.c: fix stable merge error in NOMMU mmap_min_addr + * mac80211: fix skb buffering issue (and fixes to that) + * fix braindamage in audit_tree.c untag_chunk() + * fix more leaks in audit_tree.c tag_chunk() + * module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE=y + * ipv6: skb_dst() can be NULL in ipv6_hop_jumbo(). + * agp/intel-agp: Clear entire GTT on startup + * Linux 2.6.32.4 + * ethtool: Add reset operation + * gro: Name the GRO result enumeration type + * gro: Change all receive functions to return GRO result codes + * sfc: 10Xpress: Initialise pause advertising flags + * sfc: 10Xpress: Report support for pause frames + * sfc: Remove redundant header gmii.h + * sfc: Remove redundant hardware initialisation + * sfc: Rename Falcon-specific board code and types + * sfc: Remove boards.h, moving last remaining declaration to falcon.h + * sfc: Remove versioned bitfield macros + * sfc: Move RX data FIFO thresholds out of struct efx_nic_type + * sfc: Update hardware definitions for Siena + * sfc: Rename register I/O header and functions used by both Falcon and + Siena + * sfc: Eliminate indirect lookups of queue size constants + * sfc: Define DMA address mask explicitly in terms of descriptor field + width + * sfc: Move all TX DMA length limiting into tx.c + * sfc: Change order of device removal to reverse of probe order + * sfc: Remove declarations of nonexistent functions + * sfc: Move efx_xmit_done() declaration into correct stanza + * sfc: Move shared members of struct falcon_nic_data into struct efx_nic + * sfc: Maintain interrupt moderation values in ticks, not microseconds + * sfc: Removed kernel-doc for nonexistent member of efx_phy_operations + * sfc: Remove pointless abstraction of memory BAR number + * sfc: Remove incorrect assertion from efx_pci_remove_main() + * sfc: Remove unnecessary tests of efx->membase + * sfc: Move MTD probe after netdev registration and name allocation + * sfc: Remove unused code for non-autoneg speed/duplex switching + * sfc: Rename 'xfp' file and functions to reflect reality + * sfc: Really allow RX checksum offload to be disabled + * sfc: Feed GRO result into RX allocation policy and interrupt moderation + * sfc: Enable heuristic selection between page and skb RX buffers + * sfc: Remove pointless abstraction of memory BAR number (2) + * sfc: Remove redundant gotos from __efx_rx_packet() + * sfc: Remove ridiculously paranoid assertions + * sfc: Move assertions and buffer cleanup earlier in efx_rx_packet_lro() + * sfc: Record RX queue number on GRO path + * sfc: SFT9001: Reset LED configuration correctly after blinking + * sfc: Use a single blink implementation + * sfc: Rename efx_board::init_leds to init_phy and use for SFN4111T + * sfc: Make board information explicitly Falcon-specific + * sfc: Move definition of struct falcon_nic_data into falcon.h + * sfc: Move struct falcon_board into struct falcon_nic_data + * sfc: Move all I2C stuff into struct falcon_board + * sfc: Gather link state fields in struct efx_nic into new struct + efx_link_state + * sfc: Remove unnecessary casts to struct sk_buff * + * sfc: Remove redundant efx_xmit() function + * sfc: Combine high-level header files + * sfc: Log interrupt and reset type names, not numbers + * sfc: Fix descriptor cache sizes + * sfc: Treat all MAC registers as 128-bit + * sfc: Strengthen EFX_ASSERT_RESET_SERIALISED + * sfc: Comment corrections + * sfc: Remove unused constant + * sfc: Clean up struct falcon_board and struct falcon_board_data + * sfc: Fix bugs in RX queue flushing + * sfc: Remove unused function efx_flush_queues() + * sfc: Only switch Falcon MAC clocks as necessary + * sfc: Hold MAC lock for longer in efx_init_port() + * sfc: Split MAC stats DMA initiation and completion + * sfc: Move Falcon board/PHY/MAC monitoring code to falcon.c + * sfc: Simplify XMAC link polling + * sfc: Change MAC promiscuity and multicast hash at the same time + * sfc: Move inline comment into kernel-doc + * sfc: Do not set net_device::trans_start in self-test + * sfc: Simplify PHY polling + * sfc: QT202x: Reset before reading PHY id + * sfc: Replace MDIO spinlock with mutex + * sfc: Always start Falcon using the XMAC + * sfc: Limit some hardware workarounds to Falcon + * sfc: Remove EFX_WORKAROUND_9141 macro + * sfc: Remove another unused workaround macro + * sfc: Remove some redundant whitespace + * sfc: Decouple NIC revision number from Falcon PCI revision number + * sfc: Move descriptor cache base addresses to struct efx_nic_type + * sfc: Clean up RX event handling + * sfc: Remove redundant writes to INT_ADR_KER + * sfc: Remove duplicate hardware structure definitions + * sfc: Turn pause frame generation on and off at the MAC, not the RX FIFO + * sfc: Move Falcon NIC operations to efx_nic_type + * sfc: Refactor link configuration + * sfc: Generalise link state monitoring + * sfc: Add power-management and wake-on-LAN support + * sfc: Implement ethtool reset operation + * sfc: Add efx_nic_type operation for register self-test + * sfc: Add efx_nic_type operation for NVRAM self-test + * sfc: Add efx_nic_type operation for identity LED control + * sfc: Separate shared NIC code from Falcon-specific and rename + accordingly + * sfc: Fold falcon_probe_nic_variant() into falcon_probe_nic() + * sfc: Extend loopback mode enumeration + * sfc: Remove static PHY data and enumerations + * sfc: Extend MTD driver for use with new NICs + * sfc: Allow for additional checksum offload features + * sfc: Rename falcon.h to nic.h + * sfc: Move shared NIC code from falcon.c to new source file nic.c + * sfc: Add firmware protocol definitions (MCDI) + * sfc: Add support for SFC9000 family (1) + * sfc: Add support for SFC9000 family (2) + * sfc: Implement TSO for TCP/IPv6 + * sfc: Update version, copyright dates, authors + * drivers/net/sfc: Correct code taking the size of a pointer + * sfc: Move PHY software state initialisation from init() into probe() + * sfc: Include XGXS in XMAC link status check except in XGMII loopback + * sfc: Fix DMA mapping cleanup in case of an error in TSO + * sfc: QT2025C: Work around PHY bug + * sfc: QT2025C: Switch into self-configure mode when not in loopback + * sfc: QT2025C: Work around PHY firmware initialisation bug + * sfc: QT2025C: Add error message for suspected bad SFP+ cables + * sfc: Disable TX descriptor prefetch watchdog + * [SCSI] vmw_pvscsi: SCSI driver for VMware's virtual HBA. + - LP: #497156 + + -- Andy Whitcroft Tue, 19 Jan 2010 16:12:47 +0000 + +linux (2.6.32-10.14) lucid; urgency=low + + [ Alex Deucher ] + + * SAUCE: drm/radeon/kms: fix LVDS setup on r4xx + - LP: #493795 + + [ Andy Whitcroft ] + + * Revert "(pre-stable) acpi: Use the ARB_DISABLE for the CPU which model + id is less than 0x0f." + * config-check -- ensure the checks get run at build time + * config-check -- check the processed config during updateconfigs + * config-check -- CONFIG_SECCOMP may not be present + * TUN is now built in ignore + * SAUCE: acpi battery -- delay first lookup of the battery until first + use + * SAUCE: async_populate_rootfs: move rootfs init earlier + * ubuntu: AppArmor -- update to mainline 2010-01-06 + * SAUCE: move RLIMIT_CORE pipe dumper marker to 1 + - LP: #498525 + + [ Dave Airlie ] + + * (pre-stable) drm/radeon/kms: fix crtc vblank update for r600 + + [ Leann Ogasawara ] + + * Add asix to nic-usb-modules file + - LP: #499785 + + [ Peter Zijlstra ] + + * (pre-stable) sched: Fix balance vs hotplug race + + [ Tim Gardner ] + + * [Config] Enable CONFIG_FUNCTION_TRACER + - LP: #497989 + * [Config] Drop lpia from getabis + * [Config] Build in TUN/TAP driver + - LP: #499491 + * [Config] DH_COMPAT=5 + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) drm/i915: Avoid NULL dereference with + component_only tv_modes" + * Revert "(pre-stable) drm/i915: Fix sync to vblank when VGA output is + turned off" + * USB: usb-storage: fix bug in fill_inquiry + * USB: option: add pid for ZTE + * firewire: ohci: handle receive packets with a data length of zero + * rcu: Prepare for synchronization fixes: clean up for non-NO_HZ handling + of ->completed counter + * rcu: Fix synchronization for rcu_process_gp_end() uses of ->completed + counter + * rcu: Fix note_new_gpnum() uses of ->gpnum + * rcu: Remove inline from forward-referenced functions + * perf_event: Fix invalid type in ioctl definition + * perf_event: Initialize data.period in perf_swevent_hrtimer() + * perf: Don't free perf_mmap_data until work has been done + * PM / Runtime: Fix lockdep warning in __pm_runtime_set_status() + * sched: Check for an idle shared cache in select_task_rq_fair() + * sched: Fix affinity logic in select_task_rq_fair() + * sched: Rate-limit newidle + * sched: Fix and clean up rate-limit newidle code + * x86/amd-iommu: attach devices to pre-allocated domains early + * x86/amd-iommu: un__init iommu_setup_msi + * x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking + up the PCI tree + * x86: Fix iommu=nodac parameter handling + * x86: GART: pci-gart_64.c: Use correct length in strncmp + * x86: ASUS P4S800 reboot=bios quirk + - LP: #366682 + * x86, apic: Enable lapic nmi watchdog on AMD Family 11h + * ssb: Fix range check in sprom write + * ath5k: allow setting txpower to 0 + * ath5k: enable EEPROM checksum check + * hrtimer: Fix /proc/timer_list regression + * ALSA: hrtimer - Fix lock-up + * ALSA: hda - Terradici HDA controllers does not support 64-bit mode + * KVM: x86 emulator: limit instructions to 15 bytes + * KVM: s390: Fix prefix register checking in arch/s390/kvm/sigp.c + * KVM: s390: Make psw available on all exits, not just a subset + * KVM: fix irq_source_id size verification + * KVM: x86: include pvclock MSRs in msrs_to_save + * x86: Prevent GCC 4.4.x (pentium-mmx et al) function prologue wreckage + * x86: Use -maccumulate-outgoing-args for sane mcount prologues + * x86, mce: don't restart timer if disabled + * x86/mce: Set up timer unconditionally + * x86: SGI UV: Fix BAU initialization + * x86: Fix duplicated UV BAU interrupt vector + * x86: Add new Intel CPU cache size descriptors + * x86: Fix typo in Intel CPU cache size descriptor + * pata_hpt{37x|3x2n}: fix timing register masks (take 2) + * s390: clear high-order bits of registers after sam64 + * V4L/DVB: Fix test in copy_reg_bits() + * bsdacct: fix uid/gid misreporting + * UBI: flush wl before clearing update marker + * jbd2: don't wipe the journal on a failed journal checksum + * USB: xhci: Add correct email and files to MAINTAINERS entry. + * USB: musb_gadget_ep0: fix unhandled endpoint 0 IRQs, again + * USB: option.c: add support for D-Link DWM-162-U5 + * USB: usbtmc: repeat usb_bulk_msg until whole message is transfered + * USB: usb-storage: add BAD_SENSE flag + * USB: Close usb_find_interface race v3 + * pxa/em-x270: fix usb hub power up/reset sequence + * hfs: fix a potential buffer overflow + * SUNRPC: IS_ERR/PTR_ERR confusion + * NFS: Fix nfs_migrate_page() + * md/bitmap: protect against bitmap removal while being updated. + * futex: Take mmap_sem for get_user_pages in fault_in_user_writeable + * devpts_get_tty() should validate inode + * debugfs: fix create mutex racy fops and private data + * Driver core: fix race in dev_driver_string + * Serial: Do not read IIR in serial8250_start_tx when UART_BUG_TXEN + * mac80211: Fix bug in computing crc over dynamic IEs in beacon + * mac80211: Fixed bug in mesh portal paths + * mac80211: Revert 'Use correct sign for mesh active path refresh' + * mac80211: fix scan abort sanity checks + * wireless: correctly report signal value for IEEE80211_HW_SIGNAL_UNSPEC + * rtl8187: Fix wrong rfkill switch mask for some models + * x86: Fix bogus warning in apic_noop.apic_write() + * mm: hugetlb: fix hugepage memory leak in mincore() + * mm: hugetlb: fix hugepage memory leak in walk_page_range() + * powerpc/windfarm: Add detection for second cpu pump + * powerpc/therm_adt746x: Record pwm invert bit at module load time] + * powerpc: Fix usage of 64-bit instruction in 32-bit altivec code + * drm/radeon/kms: Add quirk for HIS X1300 board + * drm/radeon/kms: handle vblanks properly with dpms on + * drm/radeon/kms: fix legacy crtc2 dpms + * drm/radeon/kms: fix vram setup on rs600 + * drm/radeon/kms: rs6xx/rs740: clamp vram to aperture size + * drm/ttm: Fix build failure due to missing struct page + * drm/i915: Set the error code after failing to insert new offset into mm + ht. + * drm/i915: Add the missing clonemask for display port on Ironlake + * xen/xenbus: make DEVICE_ATTR()s static + * xen: re-register runstate area earlier on resume. + * xen: restore runstate_info even if !have_vcpu_info_placement + * xen: correctly restore pfn_to_mfn_list_list after resume + * xen: register timer interrupt with IRQF_TIMER + * xen: register runstate on secondary CPUs + * xen: don't call dpm_resume_noirq() with interrupts disabled. + * xen: register runstate info for boot CPU early + * xen: call clock resume notifier on all CPUs + * xen: improve error handling in do_suspend. + * xen: don't leak IRQs over suspend/resume. + * xen: use iret for return from 64b kernel to 32b usermode + * xen: explicitly create/destroy stop_machine workqueues outside + suspend/resume region. + * Xen balloon: fix totalram_pages counting. + * xen: try harder to balloon up under memory pressure. + * dm exception store: free tmp_store on persistent flag error + * dm snapshot: only take lock for statustype info not table + * dm crypt: move private iv fields to structs + * dm crypt: restructure essiv error path + * dm: avoid _hash_lock deadlock + * dm snapshot: cope with chunk size larger than origin + * dm crypt: separate essiv allocation from initialisation + * dm crypt: make wipe message also wipe essiv key + * slc90e66: fix UDMA handling + * tcp: Stalling connections: Fix timeout calculation routine + * ip_fragment: also adjust skb->truesize for packets not owned by a + socket + * b44 WOL setup: one-bit-off stack corruption kernel panic fix + * sparc64: Don't specify IRQF_SHARED for LDC interrupts. + * sparc64: Fix overly strict range type matching for PCI devices. + * sparc64: Fix stack debugging IRQ stack regression. + * sparc: Set UTS_MACHINE correctly. + * b43legacy: avoid PPC fault during resume + * tracing: Fix event format export + * ath9k: Fix TX hang poll routine + * ath9k: fix processing of TX PS null data frames + * ath9k: Fix maximum tx fifo settings for single stream devices + * ath9k: fix tx status reporting + * mac80211: Fix dynamic power save for scanning. + * drm/i915: Fix sync to vblank when VGA output is turned off + * memcg: fix memory.memsw.usage_in_bytes for root cgroup + * thinkpad-acpi: fix default brightness_mode for R50e/R51 + * thinkpad-acpi: preserve rfkill state across suspend/resume + * ipw2100: fix rebooting hang with driver loaded + * matroxfb: fix problems with display stability + * acerhdf: add new BIOS versions + * asus-laptop: change light sens default values. + * vmalloc: conditionalize build of pcpu_get_vm_areas() + * ACPI: Use the ARB_DISABLE for the CPU which model id is less than 0x0f. + * net: Fix userspace RTM_NEWLINK notifications. + * ext3: Fix data / filesystem corruption when write fails to copy data + * V4L/DVB (13116): gspca - ov519: Webcam 041e:4067 added. + * bcm63xx_enet: fix compilation failure after get_stats_count removal + * x86: Under BIOS control, restore AP's APIC_LVTTHMR to the BSP value + * drm/i915: Avoid NULL dereference with component_only tv_modes + * drm/i915: PineView only has LVDS and CRT ports + * drm/i915: Fix LVDS stability issue on Ironlake + * mm: sigbus instead of abusing oom + * ipvs: zero usvc and udest + * jffs2: Fix long-standing bug with symlink garbage collection. + * intel-iommu: Detect DMAR in hyperspace at probe time. + * intel-iommu: Apply BIOS sanity checks for interrupt remapping too. + * intel-iommu: Check for an RMRR which ends before it starts. + * intel-iommu: Fix oops with intel_iommu=igfx_off + * intel-iommu: ignore page table validation in pass through mode + * netfilter: xtables: document minimal required version + * perf_event: Fix incorrect range check on cpu number + * implement early_io{re,un}map for ia64 + * Linux 2.6.32.2 + + -- Andy Whitcroft Thu, 07 Jan 2010 15:28:43 +0000 + +linux (2.6.32-9.13) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_B43_PHY_LP + - LP: #493059 + * include modules.builtin in the binary debs + * config-check -- add a configuration enforcer + * config-check -- add a unit-test suite to the checker + * [Config] Enable CONFIG_SYN_COOKIES for versatile + * [Config] Enable CONFIG_SECURITY_SMACK for ports + * [Config] Enable CONFIG_SECURITY_FILE_CAPABILITIES for ports + * [Config] Disable CONFIG_COMPAT_BRK for ports + * getabis -- add armel versatile to the list + + [ Brad Figg ] + + * SAUCE: Increase the default prealloc buffer for HDA audio devices + (non-modem) + + [ Manoj Iyer ] + + * ubuntu: onmibook -- Added missing BOM file + + [ Tim Gardner ] + + * ubuntu: fsam7400 -- Cleanup Makefile + + [ Upstream Kernel Changes ] + + * Revert "ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT" + * signal: Fix alternate signal stack check + * SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects + * SCSI: osd_protocol.h: Add missing #include + * SCSI: megaraid_sas: fix 64 bit sense pointer truncation + * ext4: fix potential buffer head leak when add_dirent_to_buf() returns + ENOSPC + * ext4: avoid divide by zero when trying to mount a corrupted file system + * ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails + * ext4: fix lock order problem in ext4_move_extents() + * ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT + * ext4: plug a buffer_head leak in an error path of ext4_iget() + * ext4: make sure directory and symlink blocks are revoked + * ext4: fix i_flags access in ext4_da_writepages_trans_blocks() + * ext4: journal all modifications in ext4_xattr_set_handle + * ext4: don't update the superblock in ext4_statfs() + * ext4: fix uninit block bitmap initialization when s_meta_first_bg is + non-zero + * ext4: fix block validity checks so they work correctly with meta_bg + * ext4: avoid issuing unnecessary barriers + * ext4: fix error handling in ext4_ind_get_blocks() + * ext4: make trim/discard optional (and off by default) + * ext4: make "norecovery" an alias for "noload" + * ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT + * ext4: initialize moved_len before calling ext4_move_extents() + * ext4: move_extent_per_page() cleanup + * jbd2: Add ENOMEM checking in and for + jbd2_journal_write_metadata_buffer() + * ext4: Return the PTR_ERR of the correct pointer in + setup_new_group_blocks() + * ext4: Avoid data / filesystem corruption when write fails to copy data + * ext4: wait for log to commit when umounting + * ext4: remove blocks from inode prealloc list on failure + * ext4: ext4_get_reserved_space() must return bytes instead of blocks + * ext4: quota macros cleanup + * ext4: fix incorrect block reservation on quota transfer. + * ext4: Wait for proper transaction commit on fsync + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + * ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem) + * Linux 2.6.32.1 + * kbuild: generate modules.builtin + * (pre-stable) drm/i915: Fix sync to vblank when VGA output is turned off + - LP: #494461 + * (pre-stable) drm/i915: Avoid NULL dereference with component_only + tv_modes + - LP: #494045 + + [ Zhao Yakui ] + + * (pre-stable) acpi: Use the ARB_DISABLE for the CPU which model id is + less than 0x0f. + - LP: #481765 + + -- Andy Whitcroft Thu, 17 Dec 2009 15:41:21 +0000 + +linux (2.6.32-8.12) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: AppArmor -- add linux/err.h for ERR_PTR + + -- Andy Whitcroft Sat, 12 Dec 2009 10:56:16 +0000 + +linux (2.6.32-8.11) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches + up" + * Revert "SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition." + * Revert "SAUCE: AppArmor: Fix refcounting bug causing leak of creds" + * Revert "SAUCE: AppArmor: Fix cap audit_caching preemption disabling" + * Revert "SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds" + * Revert "SAUCE: AppArmor: Fix oops after profile removal" + * Revert "SAUCE: AppArmor: AppArmor disallows truncate of deleted files." + * Revert "SAUCE: AppArmor: AppArmor fails to audit change_hat correctly" + * Revert "SAUCE: AppArmor: Policy load and replacement can fail to alloc + mem" + * Revert "SAUCE: AppArmor: AppArmor wrongly reports allow perms as + denied" + * Revert "SAUCE: AppArmor: Fix mediation of "deleted" paths" + * Revert "SAUCE: AppArmor: Fix off by 2 error in getprocattr mem + allocation" + * Revert "SAUCE: AppArmor: Set error code after structure + initialization." + * Revert "AppArmor -- fix pstrace_may_access rename" + * Revert "ubuntu: AppArmor security module" + * Revert "SAUCE: Add config option to set a default LSM" + * Revert "ubuntu: fsam7400 -- sw kill switch driver" + * Revert "[Config] fsam7400 -- enable" + * Revert "[Config] AUFS -- enable" + * Revert "ubuntu: AUFS -- aufs2-30 20090727" + * Revert "ubuntu: AUFS -- export various core functions -- fixes" + * Revert "ubuntu: AUFS -- export various core functions" + * Revert "[Config] ubuntu/iscsitarget -- disable" + * Revert "[Config] iscsitarget -- enable" + * Revert "ubuntu: iscsitarget -- SVN revision r214" + * update Vcs-Git to point to the correct repository + - LP: #493589 + * update build environment overrides to lucid + - LP: #493589 + * [Config] enable CONFIG_DEVTMPFS + * [Config] update all configs following AppArmor 2009-12-08 update + * SAUCE: isapnp_init: make isa PNP scans occur async + * [Config] fsam7400 -- enable + * [Config] omnibook -- enable + * [Config] cleanup CONFIG_AUDIT + * ubuntu: AUFS -- export various core functions (aufs2-base.patch) + * ubuntu: AUFS -- export various core functions (aufs2-standalone.patch) + * ubuntu: AUFS -- aufs2 20091209 + * [Config] AUFS -- enable + * [Config] iscsitarget -- enable + + [ Arjan van de Ven ] + + * SAUCE: KMS: cache the EDID information of the LVDS + + [ Colin Watson ] + + * bnx2: update d-i firmware filenames + - LP: #494052 + * add cdc_ether to nic-usb-modules udeb + - LP: #495060 + + [ John Johansen ] + + * ubuntu: AppArmor -- mainline 2009-10-08 + + [ Manoj Iyer ] + + * ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M 7400 + * ubuntu: omnibook -- support Toshiba (HP) netbooks + * ubuntu: iscsitarget --- version 1.4.19 + - LP: #494693 + + [ Surbhi Palande ] + + * SAUCE: Make populate_rootfs asynchronous + + [ Tim Gardner ] + + * Parallelize flavour builds and packaging + * [Config] Enable CONFIG_KSM + + [ Upstream Kernel Changes ] + + * Config option to set a default LSM + * LSM: Add security_path_chroot(). + * LSM: Add security_path_chroot(). + * LSM: Move security_path_chmod()/security_path_chown() to after + mutex_lock(). + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + + -- Andy Whitcroft Fri, 11 Dec 2009 17:45:19 +0000 + +linux (2.6.32-7.10) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_THUMB2_KERNEL to fix arm FTBFS + + -- Andy Whitcroft Sun, 06 Dec 2009 12:56:48 +0000 + +linux (2.6.32-7.9) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: set /proc/acpi/video/*/DOS to 4 by default + - LP: #458982 + * SAUCE: ensure vga16fb loads if no other driver claims the VGA device + * [Config] update configs following versatile switch to V7 + * rebased to v2.6.32 + * [Config] update configs following rebase to v2.6.32 + * [Config] update ports configs following rebase to v2.6.32 + * SAUCE: default ATI Radeon KMS to off until userspace catches up + + [ Arjan van de Ven ] + + * SAUCE: vfs: Add a trace point in the mark_inode_dirty function + + [ Leann Ogasawara ] + + * [SCSI] megaraid_sas: remove sysfs poll_mode_io world writeable + permissions + - CVE-2009-3939 + + [ Loic Minier ] + + * SAUCE: select a v7 CPU for versatile + + [ Takashi Iwai ] + + * SAUCE: ALSA: hda - Add power on/off counter + + [ Upstream changes ] + + * rebased to v2.6.32 + + -- Andy Whitcroft Fri, 04 Dec 2009 10:44:50 +0000 + +linux (2.6.32-6.8) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable SSB devices for armel + + -- Andy Whitcroft Sat, 28 Nov 2009 12:16:40 +0000 + +linux (2.6.32-6.7) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches up" + * Revert "SAUCE: Dell XPS710 reboot quirk" + * Revert "SAUCE: Link acpi-cpufreq.o first" + * Revert "SAUCE: LPIA Logical reset of USB port on resume" + * Revert "SAUCE: LPIA Reboot fix for Intel Crownbeach development boards" + * Revert "SAUCE: Enable HDMI audio codec on Studio XPS 1340" + * Revert "SAUCE: Dell laptop digital mic does not work, PCI 1028:0271" + * Revert "Add Dell Dimension 9200 reboot quirk" + * Revert "SAUCE: Correctly blacklist Thinkpad r40e in ACPI" + * Revert "SAUCE: tulip: Define ULI PCI ID's" + * Revert "SAUCE: Lower warning level of some PCI messages" + * Revert "mac80211: fix two issues in debugfs" + Drop a number of known redundant commits as identified in the Ubuntu + delta review blueprint. + + * reenable armel versatile flavour + * [Config] disable CONFIG_USB_DEVICEFS + + [ Tim Gardner ] + + * [Config] udeb: Add squashfs to fs-core-modules + - LP: #352615 + * [Config] Create a real squashfs udeb + - LP: #352615 + + + -- Andy Whitcroft Fri, 27 Nov 2009 17:31:16 +0000 + +linux (2.6.32-5.6) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc8 + * update configs following rebase to v2.6.32-rc8 + * update ports configs since rebase to v2.6.32-rc8 + * [Config] enable cgroup options + - LP: #480739 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc8 + + -- Andy Whitcroft Mon, 23 Nov 2009 11:16:14 +0000 + +linux (2.6.32-4.5) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * rebase to v2.6.32-rc7 + * resync with Karmic proposed + + [ John Johansen ] + + * SAUCE: AppArmor: Fix oops after profile removal + - LP: #475619 + * SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds + - LP: #437258 + * SAUCE: AppArmor: Fix cap audit_caching preemption disabling + - LP: #479102 + * SAUCE: AppArmor: Fix refcounting bug causing leak of creds + - LP: #479115 + * SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition. + - LP: #480112 + + [ Ubuntu Changes ] + + * resync with Karmic proposed (ddbc670a86a3dee18541a3734149f250ff307adf) + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc7 + + -- Andy Whitcroft Fri, 13 Nov 2009 11:35:13 +0000 + +linux (2.6.32-3.4) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * [Upstream] add local prefix to oss local change_bits + + [ Upstream Kernel Changes ] + + * mtd/maps: gpio-addr-flash: pull in linux/ headers rather than asm/ + * mtd/maps: gpio-addr-flash: depend on GPIO arch support + + -- Andy Whitcroft Wed, 11 Nov 2009 14:47:04 +0000 + +linux (2.6.32-3.3) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc6 + * [Config] update configs following rebase to v2.6.32-rc6 + * [Config] update ports configs following rebase to v2.6.32-rc6 + * resync with Karmic Ubuntu-2.6.31-15.49 + * [Config] add module ignores for broken drivers + + [ John Johansen ] + + * SAUCE: AppArmor: AppArmor wrongly reports allow perms as denied + - LP: #453335 + * SAUCE: AppArmor: Policy load and replacement can fail to alloc mem + - LP: #458299 + * SAUCE: AppArmor: AppArmor fails to audit change_hat correctly + - LP: #462824 + * SAUCE: AppArmor: AppArmor disallows truncate of deleted files. + - LP: #451375 + + [ Kees Cook ] + + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Scott James Remnant ] + + * Revert "SAUCE: trace: add trace_event for the open() syscall" + * SAUCE: trace: add trace events for open(), exec() and uselib() + - LP: #462111 + + [ Stefan Bader ] + + * SAUCE: Fix sub-flavour script to not stop on missing directories + - LP: #453073 + + [ Ubuntu Changes ] + + * resync with Karmic Ubuntu-2.6.31-15.49 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc6 + - LP: #464552 + + -- Andy Whitcroft Tue, 10 Nov 2009 15:00:57 +0000 + +linux (2.6.32-2.2) lucid; urgency=low + + [ Andy Whitcroft ] + + * install the full changelog with the binary package + * changelog -- explicitly note rebases and clean history + * reinstate armel.mk with no flavours + - LP: #449637 + * [Upstream] block: silently error unsupported empty barriers too + - LP: #420423 + * [Config] udate configs following karmic resync + * [Config] update ports configs following karmic resync + * [Upstream] lirc -- follow removal of .id element + + [ Colin Watson ] + + * Use section 'admin' rather than 'base' + * Add more e100 firmware to nic-modules + - LP: #451872 + * Add qla1280 firmware to scsi-modules + - LP: #381037 + + [ John Johansen ] + + * SAUCE: AppArmor: Set error code after structure initialization. + - LP: #427948 + * SAUCE: AppArmor: Fix off by 2 error in getprocattr mem allocation + - LP: #446595 + * SAUCE: AppArmor: Fix mediation of "deleted" paths + + [ Kees Cook ] + + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + + [ Leann Ogasawara ] + + * SAUCE: (drop after 2.6.31) input: Add support for filtering input + events + - LP: #430809 + * SAUCE: (drop after 2.6.31) dell-laptop: Trigger rfkill updates on wifi + toggle switch press + - LP: #430809 + + [ Luke Yelavich ] + + * SAUCE: Add sr_mod to the scsi-modules udeb for powerpc + * [Config] Add sd_mod to scsi-modules udeb for powerpc + + [ Mario Limonciello ] + + * SAUCE: Update to LIRC 0.8.6 + - LP: #432678 + * SAUCE: dell-laptop: Store the HW switch status internally rather than + requerying every time + - LP: #430809 + * SAUCE: dell-laptop: Blacklist machines not supporting dell-laptop + - LP: #430809 + + [ Stefan Bader ] + + * [Upstream] acerhdf: Limit modalias matching to supported boards + - LP: #435958 + + [ Tim Gardner ] + + * [Upstream] i915: Fix i2c init message + - LP: #409361 + * [Config] Add sym53c8xx.ko to virtual sub-flavour + - LP: #439415 + * [Config] Add d101m_ucode.bin to d-i/firmware/nic-modules + - LP: #439456 + * [Config] Set default I/O scheduler back to CFQ for desktop flavours + - LP: #381300 + * SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros + - LP: #430694 + * SAUCE: Use MODULE_IMPORT macro to tie intel_agp to i915 + - LP: #430694 + * [Config] CONFIG_GFS2_FS_LOCKING_DLM=y + - LP: #416325 + * SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT + - LP: #430694 + * SAUCE: Raise the default console 'quiet' level to 2 + * [Config] CONFIG_X86_PAT=y + * [Config] Add armel arch to linux-libc-dev arches. + - LP: #449637 + * [Config] CONFIG_X86_MCE + * [Upstream] (drop after 2.6.31) Input: synaptics - add another Protege + M300 to rate blacklist + - LP: #433801 + + [ Upstream Kernel Changes ] + + * sgi-gru: Fix kernel stack buffer overrun, CVE-2009-2584 + * drm/i915: Fix FDI M/N setting according with correct color depth + - LP: #416792 + + -- Andy Whitcroft Thu, 22 Oct 2009 16:53:33 +0100 + +linux (2.6.32-1.1) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc3 + * [Config] update configs following rebase to 2.6.32-rc3 + * [Config] update ports configs following rebase to 2.6.32-rc3 + * AppArmor -- fix pstrace_may_access rename + * staging/android -- disable + * ubuntu: dm-raid-45 -- update to compile with 2.6.32 + * ubuntu: drbd -- disable + * staging/comdi -- disable + * staging/go7007 -- disable + * [Config] staging/winbond -- disable + * [Config] ubuntu/iscsitarget -- disable + * [d-i] cbc and ecb are builtin make them optional in udebs + * rebase to v2.6.32-rc5 + * [Config] update configs following rebase to v2.6.32-rc5 + * [Config] update ports configs following rebase to v2.6.31-rc5 + + [ Tim Gardner ] + + * [Config] Add cpio as a build dependency. + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc3 + * rebase to v2.6.32-rc5 + + -- Andy Whitcroft Mon, 05 Oct 2009 15:48:58 +0100 + +linux (2.6.31-11.37) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Increase kernel log buffer to 256K for amd64 flavours + - LP: #424810 + * [Config] Set HZ=100 for amd64 flavours + - LP: #438234 + * [Upstream] e1000e: Emit notice instead of an error when + pci_enable_pcie_error_reporting() fails + - LP: #436370 + + [ Upstream Kernel Changes ] + + * n_tty: honor opost flag for echoes + * n_tty: move echoctl check and clean up logic + - LP: #438310 + + * Revert "[Upstream] drm/i915: Check that the relocation points to within + the target" - Use upstream cherry-pick. + * drm/i915: Check that the relocation points to within the target + - LP: #429241 + + * drm/i915: fix tiling on IGDNG + * drm/i915: add B43 chipset support + * agp/intel: Add B43 chipset support + Intel request from kernel team mailing list. + + * HID: completely remove apple mightymouse from blacklist + - LP: #428111 + + -- Tim Gardner Mon, 28 Sep 2009 11:47:29 -0600 + +linux (2.6.31-11.36) karmic; urgency=low + + [ Brian Rogers ] + + * SAUCE: (drop after 2.6.31) em28xx: ir-kbd-i2c init data needs a + persistent object + * SAUCE: (drop after 2.6.31) saa7134: ir-kbd-i2c init data needs a + persistent object + + [ Takashi Iwai ] + + * [Upstream] ALSA: hda - Add another entry for Nvidia HDMI device + - LP: #416482 + + [ Tyler Hicks ] + + * SAUCE: (drop after 2.6.31) eCryptfs: Prevent lower dentry from going + negative during unlink + + [ Upstream Kernel Changes ] + + * sg: fix oops in the error path in sg_build_indirect() + * mpt2sas : Rescan topology from Interrupt context instead of work thread + * mpt2sas: Prevent sending command to FW while Host Reset + * mpt2sas: setting SDEV into RUNNING state from Interrupt context + * mpt2sas: Raid 10 Volume is showing as Raid 1E in dmesg + * SCSI: fix oops during scsi scanning + * SCSI: libsrp: fix memory leak in srp_ring_free() + * cfg80211: fix looping soft lockup in find_ie() + * ath5k: write PCU registers on initial reset + * binfmt_elf: fix PT_INTERP bss handling + * TPM: Fixup boot probe timeout for tpm_tis driver + * md: Fix "strchr" [drivers/md/dm-log-userspace.ko] undefined! + * x86/amd-iommu: fix broken check in amd_iommu_flush_all_devices + * fix undefined reference to user_shm_unlock + * perf_counter: Fix buffer overflow in perf_copy_attr() + * perf_counter: Start counting time enabled when group leader gets + enabled + * powerpc/perf_counters: Reduce stack usage of power_check_constraints + * powerpc: Fix bug where perf_counters breaks oprofile + * powerpc/ps3: Workaround for flash memory I/O error + * block: don't assume device has a request list backing in nr_requests + store + * agp/intel: remove restore in resume + * ALSA: cs46xx - Fix minimum period size + * ASoC: Fix WM835x Out4 capture enumeration + * sound: oxygen: work around MCE when changing volume + * mlx4_core: Allocate and map sufficient ICM memory for EQ context + * perf stat: Change noise calculation to use stddev + * x86: Fix x86_model test in es7000_apic_is_cluster() + * x86/i386: Make sure stack-protector segment base is cache aligned + * PCI: apply nv_msi_ht_cap_quirk on resume too + * x86, pat: Fix cacheflush address in change_page_attr_set_clr() + * ARM: 5691/1: fix cache aliasing issues between kmap() and kmap_atomic() + with highmem + * KVM guest: do not batch pte updates from interrupt context + * KVM: Fix coalesced interrupt reporting in IOAPIC + * KVM: VMX: Check cpl before emulating debug register access + * KVM guest: fix bogus wallclock physical address calculation + * KVM: x86: Disallow hypercalls for guest callers in rings > 0 + * KVM: VMX: Fix cr8 exiting control clobbering by EPT + * KVM: x86 emulator: Implement zero-extended immediate decoding + * KVM: MMU: make __kvm_mmu_free_some_pages handle empty list + * KVM: x86 emulator: fix jmp far decoding (opcode 0xea) + * KVM: limit lapic periodic timer frequency + * libata: fix off-by-one error in ata_tf_read_block() + * PCI quirk: update 82576 device ids in SR-IOV quirks list + * PCI: Unhide the SMBus on the Compaq Evo D510 USDT + * powerpc/pseries: Fix to handle slb resize across migration + * Linux 2.6.31.1 + + -- Tim Gardner Thu, 24 Sep 2009 13:04:28 -0600 + +linux (2.6.31-10.35) karmic; urgency=low + + [ Amit Kucheria ] + + * Disable CONFIG_UEVENT_HELPER_PATH + + [ Andy Whitcroft ] + + * [Config] Enable CONFIG_USB_GADGET_DUMMY_HCD + * remove the tlsup driver + * remove lmpcm logitech driver support + + [ Bryan Wu ] + + * Add 3 missing files to prerm remove file list + - LP: #345623, #415832 + + [ Chris Wilson ] + + * [Upstream] drm/i915: Check that the relocation points to within the + target + - LP: #429241 + + [ Luke Yelavich ] + + * [Config] Set CONFIG_EXT4_FS=y on ports architectures + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Tim Gardner ] + + * Revert "[Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) white-list" + Upstream suggests that this is not the right approach. + + * [Config] Set default I/O scheduler to DEADLINE + CFQ seems to have some load related problems which are often exacerbated by sreadahead. + - LP: #381300 + + [ ubuntu@tjworld.net ] + + * SAUCE: ipw2200: Enable LED by default + - LP: #21367 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Add support for new AMD HD audio devices + - LP: #430564 + + -- Andy Whitcroft Wed, 16 Sep 2009 15:37:49 +0100 + +linux (2.6.31-10.34) karmic; urgency=low + + [ Ted Tso ] + + * [Upstream] ext3: Don't update superblock write time when filesystem is + read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 16:00:45 -0600 + +linux (2.6.31-10.33) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] dvb-usb: fix tuning with Cinergy T2 + - LP: #421258 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + (really, really fix it this time) + - LP: #423426 + * [Config] Set CONFIG_CACHEFILES=m for all flavours + + [ Upstream Kernel Changes ] + + * ext4: Don't update superblock write time when filesystem is read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 07:50:21 -0600 + +linux (2.6.31-10.32) karmic; urgency=low + + [ Eric Miao ] + + * [Config] enable module support for memory stick + - LP: #159951 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + - LP: #423426 + + -- Tim Gardner Thu, 10 Sep 2009 15:57:55 -0600 + +linux (2.6.31-10.31) karmic; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.31 final + + [ Colin Watson ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + + [ Ike Panhc ] + + * [Upstream] Pull latest update of lenovo-sl-laptop + + [ Peter Feuerer ] + + * [Upstream] (drop after 2.6.31) acerhdf: fix fan control for AOA150 + model + - LP: #426691 + + [ Tim Gardner ] + + * [Config] De-macro some package names. + + [ Upstream Changes ] + + * rebase to 2.6.31 final. + + -- Andy Whitcroft Thu, 10 Sep 2009 09:38:10 +0100 + +linux (2.6.31-10.30) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Enable CONFIG_USB_DEVICEFS + - LP: #417748 + * [Config] Populate the config-update template a bit more + + [ Andy Whitcroft ] + + * rebase to v2.6.31-rc9 + * [Config] update configs following rebase to v2.6.31-rc9 + * [Config] update ports configs following rebase to v2.6.31-rc9 + + [ Colin Ian King ] + + * SAUCE: wireless: hostap, fix oops due to early probing interrupt + - LP: #254837 + + [ Jerone Young ] + + * [Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) + white-list + - LP: #281732 + + [ John Johansen ] + + * SAUCE: AppArmor: Fix profile attachment for regexp based profile names + - LP: #419308 + * SAUCE: AppArmor: Return the correct error codes on profile + addition/removal + - LP: #408473 + * SAUCE: AppArmor: Fix OOPS in profile listing, and display full list + - LP: #408454 + * SAUCE: AppArmor: Fix mapping of pux to new internal permission format + - LP: #419222 + * SAUCE: AppArmor: Fix change_profile failure + - LP: #401931 + * SAUCE: AppArmor: Tell git to ignore generated include files + - LP: #419505 + + [ Stefan Bader ] + + * [Upstream] acpi: video: Loosen strictness of video bus detection code + - LP: #333386 + * SAUCE: Remove ov511 driver from ubuntu subdirectory + + [ Tim Gardner ] + + * [Config] Exclude char-modules from non-x86 udeb creation + * SAUCE: Notify the ACPI call chain of AC events + * [Config] CONFIG_SATA_VIA=m + - LP: #403385 + * [Config] Build in all phylib support modules. + * [Config] Don't fail when sub-flavour files are missing + - LP: #423426 + * [Config] Set CONFIG_LSM_MMAP_MIN_ADDR=0 + - LP: #423513 + + [ Upstream ] + + * Rebased against v2.6.31-rc9 + + -- Andy Whitcroft Mon, 07 Sep 2009 11:33:45 +0100 + +linux (2.6.31-9.29) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] agp/intel: support for new chip variant of IGDNG mobile + - LP: #419993 + * [Config] d-i/modules: Add new char-modules file, initialize with + intel-agp + - LP: #420605 + + [ Upstream ] + + * Rebased against 2.6.31-rc8 plus some inotify regression patches: + up through git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + adda766193ea1cf3137484a9521972d080d0b7af. + + -- Tim Gardner Fri, 28 Aug 2009 06:31:30 -0600 + +linux (2.6.31-8.28) karmic; urgency=low + + [ Ike Panhc ] + + * [Config] Let nic-shared-modules depends on crypto-modules + - LP: #360966 + + [ Leann Ogasawara ] + + * [Upstream] (drop after 2.6.31) drm/i915: increase default latency + constant + - LP: #412492 + + [ Mario Limonciello ] + + * [Upstream]: (drop after 2.6.31) dell-laptop: don't change softblock + status if HW switch is disabled + - LP: #418721 + * [Upstream]: (drop after 2.6.31) compal-laptop: Add support for known + Compal made Dell laptops + * [Upstream]: (drop after 2.6.31) compal-laptop: Replace sysfs support + with rfkill support + + [ Tim Gardner ] + + * [Config] Add acpiphp to virtual sub-flavour + - LP: #364916 + * Drop KSM patch set for now because of instabilities with encrypted swap. + - LP: #418781 + + -- Tim Gardner Wed, 26 Aug 2009 08:14:26 -0600 + +linux (2.6.31-7.27) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] updateconfigs updateportsconfigs after 2.6.31-rc7 rebase + * SAUCE: (drop after 2.6.31) Added KSM from mmotm-2009-08-20-19-18 + Replaces previous ksm patches from 2.6.31-6.25 + * [Config] KSM=y + + [ Upstream ] + + * Rebased against v2.6.31-rc7 + + -- Tim Gardner Sat, 22 Aug 2009 20:32:11 -0600 + +linux (2.6.31-6.26) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_AUFS_BR_RAMFS + - LP: #414738 + * split out debian directory ready for abstraction + * add printdebian target to find branch target + * abstracted debian -- debian/files is not abstracted + * abstracted debian -- packages must be built in debian/ + * abstracted debian -- kernel-wedge needs to work in debian/ + * abstracted debian -- ensure we install the copyright file + * abstracted-debian -- drop the debian directories from headers + * abstracted-debian -- drop the debian directories from headers part 2 + * SAUCE: ubuntu-insert-changes -- follow abstracted debian + * [Upstream] aoe: ensure we initialise the request_queue correctly V2 + - LP: #410198 + + [ Luke Yelavich ] + + * [Config] Ports: Disable CONFIG_CPU_FREQ_DEBUG on powerpc-smp + * [Config] Ports: Re-enable windfarm modules on powerpc64-smp + - LP: #413150 + * [Config] Ports: Build all cpu frequency scaling governors into ports + kernels + * [Config] Ports: Build ext2 and ext3 modules into ports kernels + * [Config] Ports: CONFIG_PACKET=y for all ports kernels + * [Config] Ports: Enable PS3 network driver + + [ Stefan Bader ] + + * abstracted debian -- call $(DEBIAN)/rules using make + + [ Tim Gardner ] + + * [Config] Abstract the debian directory + * SAUCE: Improve error reporting in postinst + - LP: #358564 + + -- Tim Gardner Sun, 16 Aug 2009 20:33:28 -0600 + +linux (2.6.31-6.25) karmic; urgency=low + + [ Andy Whitcroft ] + + * script to generate Ubuntu changes from changelog + * [Config] standardise ANDROID options + * [Config] standardise CONFIG_ATM as module + * [Config] standardise CONFIG_LIB80211 as module + * [Config] disable CONFIG_PRINT_QUOTA_WARNING + * [Config] set CONFIG_CRAMFS as module + * [Config] enable CONFIG_DAB and modules + * [Config] set CONFIG_MAC80211_HWSIM as module + * [Config] set CONFIG_NET_CLS_FLOW as module + * [Config] set CONFIG_NF_CONNTRACK_SANE as module + * [Config] set CONFIG_NF_CT_PROTO_DCCP as module + * [Config] set CONFIG_RTC_DRV_DS1511 as module + * [Config] set CONFIG_RTC_DRV_R9701 as module + * [Config] set CONFIG_RTC_DRV_S35390A as module + * [Config] set CONFIG_TOIM3232_DONGLE as module + * [Config] standardise CONFIG_USB_MIDI_GADGET as module + * [Config] standardise CONFIG_USB_G_PRINTER as module + * [Config] standardise CONFIG_USB_SERIAL_IR as module + * [Config] set CONFIG_USB_SERIAL_IUU as module + * [Config] standardise CONFIG_USB_STORAGE_CYPRESS_ATACB as module + * [Config] standardise CONFIG_USB_STORAGE_ONETOUCH as module + * cleanup remains of dm-loop + * drop thinkpad ec and smapi support + * drop appleir + * [Config] update configs following rebase to v2.6.31-rc6 + * rebase to v2.6.31-rc6 + + [ Hugh Dickins ] + + * SAUCE: ksm patch 1, drop after 2.6.31 + * SAUCE: ksm patch 2, drop after 2.6.31 + * SAUCE: ksm patch 3, drop after 2.6.31 + * SAUCE: ksm patch 4, drop after 2.6.31 + * SAUCE: ksm patch 5, drop after 2.6.31 + * SAUCE: ksm patch 7, drop after 2.6.31 + + [ Izik Eidus ] + + * SAUCE: ksm patch 0, drop after 2.6.31 + * SAUCE: ksm patch 6, drop after 2.6.31 + * SAUCE: ksm patch 8, drop after 2.6.31 + * SAUCE: ksm patch 9, drop after 2.6.31 + + [ Luke Yelavich ] + + * [Config] Ports: Re-add PS3 modules to udebs + + [ Michael Casadevall ] + + * [Config] Update SPARC config and d-i files to reflect what can be built + + [ Tim Gardner ] + + * [Config] Removed armel package support + * [Config] Enabled CONFIG_KSM=y + + [ Upstream Kernel Changes ] + + * Rebased against v2.6.31-rc6 + * ARM: Cleanup: Revert "ARM: Add more cache memory types macros" + * ARM: Cleanup: Revert "Do not use OOB with MLC NAND" + * ARM: Cleanup: Revert "ARM: Make ARM arch aware of ubuntu/ drivers" + * ARM: Cleanup: Revert "ARM: IMX51: Make video capture drivers compile" + * ARM: Cleanup: Revert "ARM: IMX51: Fix isl29003 HWMON driver for i2c + changes" + * ARM: Cleanup: Revert "ARM: IMX51: IPU irq handler deadlock fix" + * ARM: Cleanup: Revert "ARM: IMX51: Babbage 2.5 needs a different system + revision" + * ARM: Cleanup: Revert "ARM: IMX51: Compile-in the IMX51 cpufreq driver + by default" + * ARM: Cleanup: Revert "ARM: IMX51: Enable ZONE_DMA for ARCH_MXC" + * ARM: Cleanup: Revert "ARM: IMX51: Make ARCH_MXC auto-enable + ARCH_MXC_CANONICAL" + * ARM: Cleanup: Revert "ARM: IMX51: Unconditionally disable + CONFIG_GPIOLIB" + * ARM: Cleanup: Revert "ARM: IMX51: Minimal changes for USB to work on + 2.6.31" + * ARM: Cleanup: Revert "ARM: IMX51: Fix plat-mxc/timer.c to handle imx51" + * ARM: Cleanup: Revert "ARM: IMX51: Make it compile." + * ARM: Cleanup: Revert "ARM: IMX51: Clean-up the craziness of including + mxc_uart.h _everywhere_" + * ARM: Cleanup: Revert "ARM: IMX51: Move board-mx51* header files to the + correct location" + * ARM: Cleanup: Revert "ARM: IMX51: Changed from snd_card_new to + snd_card_create" + * ARM: Cleanup: Revert "ARM: IMX51: Fix up merge error in Kconfig" + * ARM: Cleanup: Revert "ARM: IMX51: mxc_timer_init prototype" + * ARM: Cleanup: Revert "ARM: IMX51: Removed the mxc_gpio_port structure." + * ARM: Cleanup: Revert "ARM: IMX51: Added external declaration for + mxc_map_io." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: snd_soc_machine structure replaced + with snd_soc_card." + * ARM: Cleanup: Revert "ARM: IMX51: codec structure was moved to the card + structure" + * ARM: Cleanup: Revert "ARM: IMX51: Hack to add defines for + DMA_MODE_READ/WRITE/MASK" + * ARM: Cleanup: Revert "ARM: IMX51: Add SoC and board support for + Freescale mx51 platform" + * Driver core: add new device to bus's list before probing + * [Upstream] (drop after 2.6.31) ALSA: hda - Reduce click noise at + power-saving + - LP: #381693, #399750, #380892 + + -- Andy Whitcroft Fri, 14 Aug 2009 11:32:23 +0100 + +linux (2.6.31-5.24) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Make video capture drivers compile + * [Config] IMX51: Config updates + + [ Andy Whitcroft ] + + * remove leftovers of dm-bbr + + [ Leann Ogasawara ] + + * Add pata_cs5535 to pata-modules + - LP: #318805 + + [ Luke Yelavich ] + + * [Config] CONFIG_PPC64=y for powerpc64-smp + * [Config] Set the maximum number of CPUs to 1024 for powerpc64-smp + * [Config] CONFIG_PPC_PS3=y for powerpc64-smp + * [Config] CONFIG_PPC_MAPLE=y on powerpc64-smp + * [Config] CONFIG_PPC_PASEMI=y on powerpc64-smp + * [Config] CONFIG_CPU_FREQ_PMAC64=y on powerpc64-smp + * [Config] Enable all PS3 drivers in powerpc64-smp + + [ Mario Limonciello ] + + * LIRC -- fix lirc-i2c 2.6.31 compilation + + [ Matthew Garrett ] + + * [Upstream] dell-laptop: Fix rfkill state queries + + [ Tim Gardner ] + + * [Config] Ignore armel ABI and module changes + * [Config] Update configs after rebase against 2.6.31-rc5 + + [ Upstream ] + + * Rebased to 2.6.31-rc5 + + -- Andy Whitcroft Tue, 28 Jul 2009 10:10:09 +0100 + +linux (2.6.31-4.23) karmic; urgency=low + + [ Andy Whitcroft ] + + * AUFS -- update to aufs2-30 20090727 + * [Config] enable AUFS FUSE support + + [ Luke Yelavich ] + + * [Config] CONFIG_JFS_FS=m on sparc + + [ Tim Gardner ] + + * [Upstream] dell-laptop: Fix rfkill state setting. + + -- Andy Whitcroft Mon, 27 Jul 2009 11:11:47 +0100 + +linux (2.6.31-4.22) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Add SoC and board support for Freescale mx51 platform + * ARM: IMX51: Move board-mx51* header files to the correct location + * ARM: IMX51: Clean-up the craziness of including mxc_uart.h _everywhere_ + * ARM: IMX51: Make it compile. + * ARM: IMX51: Unconditionally disable CONFIG_GPIOLIB + * ARM: IMX51: Make ARCH_MXC auto-enable ARCH_MXC_CANONICAL + * ARM: IMX51: Enable ZONE_DMA for ARCH_MXC + * ARM: IMX51: Compile-in the IMX51 cpufreq driver by default + * ARM: IMX51: Fix isl29003 HWMON driver for i2c changes + * ARM: USB: musb: Refer to musb_otg_timer_func under correct #ifdef + * ARM: staging: udlfb: Add vmalloc.h include + * UBUNTU [Config]: Bring imx51 config upto date with other flavours + + [ Brad Figg ] + + * ARM: IMX51: Hack to add defines for DMA_MODE_READ/WRITE/MASK + * ARM: IMX51: codec structure was moved to the card structure + * ARM: IMX51: snd_soc_machine structure replaced with snd_soc_card. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Added external declaration for mxc_map_io. + * ARM: IMX51: Removed the mxc_gpio_port structure. + * ARM: IMX51: mxc_timer_init prototype + * ARM: IMX51: Fix up merge error in Kconfig + * ARM: IMX51: Changed from snd_card_new to snd_card_create + + [ Dinh Nguyen ] + + * ARM: IMX51: Fix plat-mxc/timer.c to handle imx51 + * ARM: IMX51: Minimal changes for USB to work on 2.6.31 + * ARM: IMX51: Babbage 2.5 needs a different system revision + * ARM: IMX51: IPU irq handler deadlock fix + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_CAN=m + - LP: #327243 + * [Config] Enabled CONFIG_SERIAL=m + - LP: #397189 + + -- Tim Gardner Fri, 24 Jul 2009 06:19:10 -0600 + +linux (2.6.31-4.21) karmic; urgency=low + + [ Amit Kucheria ] + + * dm-raid-4-5: Add missing brackets around test_bit() + + [ John Johansen ] + + * AppArmor: Fix change_profile failing lpn401931 + * AppArmor: Fix determination of forced AUDIT messages. + * AppArmor: Fix oops in auditing of the policy interface offset + + -- Andy Whitcroft Thu, 23 Jul 2009 19:18:30 +0100 + +linux (2.6.31-4.20) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: iscsitarget -- update to SVN revision r214 + * SAUCE: iscsitarget -- renable driver + * [Config] consolidate lpia/lpia and i386/generic configs + * [Config] enable CRYPTO modules for all architectures + * [Config] enable cryptoloop + * [Config] enable various filesystems for armel + * [Config] sync i386 generic and generic-pae + * [Config] add the 386 (486 processors and above) flavour + * [Config] re-set DEFAULT_MMAP_MIN_ADDR + - LP: #399914 + * add genconfigs/genportsconfigs to extract the built configs + * updateconfigs -- alter concatenation order allow easier updates + * intelfb -- INTELFB now conflicts with DRM_I915 + * printchanges -- rebase tree does not have stable tags use changelog + * AppArmor: fix argument size missmatch on 64 bit builds + + [ Ike Panhc ] + + * Ship bnx2x firmware in nic-modules udeb + - LP: #360966 + + [ Jeff Mahoney ] + + * AppArmor: fix build failure on ia64 + + [ John Johansen ] + + * AppArmour: ensure apparmor enabled parmater is off if AppArmor fails to + initialize. + * AppArmour: fix auditing of domain transitions to include target profile + information + * AppArmor: fix C99 violation + * AppArmor: revert reporting of create to write permission. + * SAUCE: Add config option to set a default LSM + * [Config] enable AppArmor by default + * AppArmor: Fix NULL pointer dereference oops in profile attachment. + + [ Keith Packard ] + + * SAUCE: drm/i915: Allow frame buffers up to 4096x4096 on 915/945 class + hardware + - LP: #351756 + + [ Luke Yelavich ] + + * [Config] add .o files found in arch/powerpc/lib to all powerpc kernel + header packages + - LP: #355344 + + [ Michael Casadevall ] + + * [Config] update SPARC config files to allow success build + + [ Scott James Remnant ] + + * SAUCE: trace: add trace_event for the open() syscall + + [ Stefan Bader ] + + * SAUCE: jfs: Fix early release of acl in jfs_get_acl + - LP: #396780 + + [ Tim Gardner ] + + * [Upstream] Fix Soltech TA12 volume hotkeys not sending key release + - LP: #397499 + * [Upstream] USB Option driver - Add USB ID for Novatel MC727/U727/USB727 + refresh + - LP: #365291 + * [Config] SSB/B44 are common across all arches/flavours. + + [ Upstream ] + + * Rebased to 2.6.31-rc4 + + -- Andy Whitcroft Thu, 23 Jul 2009 08:41:39 +0100 + +linux (2.6.31-3.19) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] Disabled NDISWRAPPER" + * ndiswrapper -- fix i386 compilation failures on cmpxchg8b + * AUFS -- export various core functions + * AUFS -- export various core functions -- fixes + * AUFS -- core filesystem + * AUFS -- track changes in v2.6.31 + * [Config] Enable AUFS + * droppped 'iwl3945: do not send scan command if channel count zero' as it + is already upstream but failed to auto-drop on rebase. + + [ Eric Paris ] + + * SAUCE: fsnotify: use def_bool in kconfig instead of letting the user + choose + * SAUCE: inotify: check filename before dropping repeat events + * SAUCE: fsnotify: fix inotify tail drop check with path entries + + -- Andy Whitcroft Tue, 14 Jul 2009 12:52:55 +0100 + +linux (2.6.31-3.18) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "Add splice-2.6.23.patch from AUFS to export a symbol needed by + AUFS" + * Revert "Add put_filp.patch from AUFS to export a symbol needed by AUFS" + * Revert "Add sec_perm-2.6.24.patch from AUFS - export + security_inode_permission" + * clear out left over AUFS files and modifications + + [ Luke Yelavich ] + + * [Config] Enable CONFIG_USB_ISP116X_HCD on sparc + * SAUCE: Explicitly include header files to allow apparmor to build on + powerpc + * [Config] Enable CONFIG_BLK_DEV_IDECD on powerpc + + [ Tim Gardner ] + + * [Config] Dropped ubuntu/misc/wireless/acx + * [Config] Disabled NDISWRAPPER until the compile issues are fixed. + + [ Upstream ] + + * Rebased to 2.6.31-rc3 + + -- Andy Whitcroft Fri, 10 Jul 2009 18:59:33 +0100 + +linux (2.6.31-2.17) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_BLK_DEV_CRYPTOLOOP=m for sparc + * compcache -- remove redundant Kconfig entries part 2 + * compcache -- clean up CCFLAGS declarations + * [Config] enable AppArmor + * AppArmor: fix operator precidence issue in as_path_link + + [ John Johansen ] + + * AppArmor security module + * AppArmor: Correct mapping of file permissions. + * AppArmor: Turn auditing of ptrace on + + [ Luke Yelavich ] + + * [Config] disable CONFIG_DM_RAID45 on powerpc + + -- Andy Whitcroft Fri, 10 Jul 2009 15:02:05 +0100 + +linux (2.6.31-2.16) karmic; urgency=low + + [ Andy Whitcroft ] + + * compcache -- remove redundant Kconfig entries + added ignore and ignore.modules for all arches since the compcache update + changes the modules names as well as some compcache ABI values. + + [ Manoj Iyer ] + + * SAUCE: updated dm-raid45 module version to 2009.04.24 (2.6.30-rc3) + * SAUCE: update compcache version to 0.5.3 + + [ Tim Gardner ] + + * [Config]: Fix sparc FTBS by adding ignore.modules + + -- Tim Gardner Mon, 06 Jul 2009 13:35:29 -0600 + +linux (2.6.31-2.15) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: default ATI Radeon KMS to off until userspace catches up + * [Config] Update configs following rebase to 2.6.31-rc2 + * [Config] update ports configs following update to 2.6.31-rc2 + + [ Luke Yelavich ] + + * [Config] powerpc - Disable CONFIG_RDS + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + [ Upstream Kernel Changes ] + + * rebased to mainline 2.6.31-rc2 + + -- Andy Whitcroft Sat, 04 Jul 2009 17:39:13 +0100 + +linux (2.6.31-1.14) karmic; urgency=low + + [ Andy Whitcroft ] + + * update ndiswrapper to 1.55 + * remove leftovers of gfs + * [Config] powerpc: enable CONFIG_PPC_DISABLE_WERROR + + [ Luke Yelavich ] + + * [Config] re-enable and build the ide-pmac driver into powerpc kernels + * [Config] Build the ServerWorks Frodo / Apple K2 SATA driver into the + kernel + + [ Manoj Iyer ] + + * Remove snd-bt-sco ubuntu driver + + [ Michael Casadevall ] + + * [Config] updates ia64 config and d-i folders to allow succesful build + * [Config] Update powerpc and sparc for 2.6.31 + + [ Upstream Kernel Changes ] + + * intel-iommu: fix Identity Mapping to be arch independent + - LP: #384695 + * ACPI: video: prevent NULL deref in acpi_get_pci_dev() + + -- Andy Whitcroft Tue, 30 Jun 2009 17:47:32 +0100 + +linux (2.6.31-1.13) karmic; urgency=low + + [ Andy Whitcroft ] + + * REBASE: rebased to mainline 2.6.31-rc1 + - "UBUNTU: SAUCE: UHCI USB quirk for resume" + no longer applies, using deprecated interfaces, LPIA only, dropped + - "UBUNTU: SAUCE: Mask off garbage in Dell WMI scan code data" + changes now upstream, dropped + * [Config] Update configs following rebase to 2.6.31-rc1 + * [Config] update ports configs following update to 2.6.31-rc1 + + * [Config] disable broken staging driver CONFIG_STLC45XX + * SAUCE: fix compcache to use updates accessors + * [Config] disable staging driver CONFIG_VT6655 + * SAUCE: fix DRDB to use updates accessors + * [Disable] ndiswrapper needs update + * [Disable] LIRC I2C needs update + * [Disable] CONFIG_LENOVO_SL_LAPTOP needs update + * [Config] disable I2C_DESIGNWARE does not compile + * [Config] disable CONFIG_TLSUP for lpia + * [Config] disable CONFIG_FB_UDL for arm + * SAUCE: disable adding scsi headers to linux-libc-dev + + [ Mario Limonciello ] + + * SAUCE: Add LIRC drivers + + -- Andy Whitcroft Thu, 25 Jun 2009 12:06:22 +0100 + +linux (2.6.30-10.12) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] split out the ports configs into their own family + * [Config] update configs following introduction of ports family + + [ Upstream Kernel Changes ] + + * Revert "Rename linux-doc-PKGVER to linux-doc and clean up its + description". Fixes linux-doc package name conflicts for now. + - LP: #382115 + + -- Tim Gardner Mon, 22 Jun 2009 09:17:14 -0600 + +linux (2.6.30-10.11) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Comment splitconfig.pl and misc cleanup + * [Config] Rename all configs to the new naming scheme + * [Config] Splitconfig rework + * [Config] Rename scripts/misc/oldconfig to kernelconfig + * [Config] Fix build system for new config split + * [Config] Run updateconfigs after the splitconfig rework + + [ Andy Whitcroft ] + + * Revert "SAUCE: Default to i915.modeset=0 if CONFIG_DRM_I915_KMS=y" + * [Config] standardise CONFIG_STAGING=y + * [Config] standardise CONFIG_RD_LZMA=y + * [Config] CONFIG_PCI_IOV=y + * [Config] CONFIG_PCI_STUB=m + * [Config] merge kernel configs more agressively + + [ Colin Watson ] + + * [Config] Run kernel-wedge in $(builddir) rather than at the top level + * [Config] Add support for including firmware in udebs + * [Config] Ship bnx2 firmware in nic-modules udeb + - LP: #384861 + + [ Luke Yelavich ] + + * [Config] ports - Import of ports architectures into kernel packaging + infrastructure + * [Config] ports - Do not update ports kernel configurations by default + * [Config] ports - Disable ABI checking for ports architectures + * [Config] ports - Build drivers in ubuntu sub-directory on powerpc + * [Config] ports - Add control.d/vars.* files for ports architectures + * [Config] ports - Add ports architectures for linux-libc-dev + * [Config] ports - Create powerpc specific message-modules and + block-modules udebs + * [Config] ports - Add configuration files for ports architectures + + [ Manoj Iyer ] + + * [Config] Enable CONFIG_BLK_DEV_AEC62XX=m for amd64 and i386 + - LP: #329864 + + [ Michael Casadevall ] + + * [Config] ports - Fix compression of kernels + + [ Stefan Bader ] + + * [Upstream] mmc: prevent dangling block device from accessing stale + queues + - LP: #383668 + + [ Tim Gardner ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + * [Config] Implement i386 generic and generic-pae flavours + * [Config] ports - Add control info after integrating ports arches + * [Config] Removed auto-generated files from git + * [Config] Added netxen_nic to nic-modules + - LP: #389603 + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + -- Tim Gardner Mon, 15 Jun 2009 14:38:26 -0600 + +linux (2.6.30-9.10) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_SECURITY_TOMOYO=y (amd64, i386, lpia) + * [Config] CONFIG_KEXEC_JUMP=y (amd64, lpia) + * [Config] CONFIG_LENOVO_SL_LAPTOP=m (amd64, lpia) + * [Config] CONFIG_POHMELFS_CRYPTO=y (i386, amd64) + * [Config] CONFIG_SERIAL_MAX3100=m (i386, amd64, lpia) + * [Config] CONFIG_VIDEO_GO7007=m (amd64, i386) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30 final + + -- Andy Whitcroft Fri, 05 Jun 2009 11:42:53 +0100 + +linux (2.6.30-8.9) karmic; urgency=low + + [ Andy Whitcroft ] + + * Config update removed the following options: + CONFIG_EDAC_AMD8111=m + CONFIG_EDAC_AMD8131=m + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc8 + + -- Andy Whitcroft Wed, 03 Jun 2009 09:21:13 +0100 + +linux (2.6.30-7.8) karmic; urgency=low + + [ Andy Whitcroft ] + + * Enabled NEW configration options: + Paravirtualization layer for spinlocks (PARAVIRT_SPINLOCKS) [N/y/?] Y + Cisco FNIC Driver (FCOE_FNIC) [N/m/y/?] M + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc7 + + -- Andy Whitcroft Sat, 23 May 2009 23:47:24 +0100 + +linux (2.6.30-6.7) karmic; urgency=low + + [ Andy Whitcroft ] + + * Dropped: UBUNTU: SAUCE: input: Blacklist digitizers from joydev.c (now + upstream) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc6 + + -- Andy Whitcroft Mon, 18 May 2009 18:05:54 +0100 + +linux (2.6.30-5.6) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enable Keyspan USB serial device firmware in kernel module + - LP: #334285 + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc5 + + -- Tim Gardner Mon, 11 May 2009 12:02:16 -0600 + +linux (2.6.30-4.5) karmic; urgency=low + + [ Colin Watson ] + + * Build-Conflict with findutils (= 4.4.1-1ubuntu1), to avoid + /usr/include/asm/* going missing + - LP: #373214 + + -- Stefan Bader Fri, 08 May 2009 11:09:08 +0200 + +linux (2.6.30-3.4) karmic; urgency=low + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + + [ Stefan Bader ] + + * SAUCE: input: Blacklist digitizers from joydev.c + - LP: #300143 + + -- Tim Gardner Fri, 01 May 2009 14:00:42 -0600 + +linux (2.6.30-2.3) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enabled CC_STACKPROTECTOR=y for all x86en + - LP: #369152 + * SAUCE: Default to i915_modeset=0 if CONFIG_DRM_I915_KMS=y + * [Config] CONFIG_DRM_I915_KMS=y + * [Config] Set CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR to appropriate ARCH + minimums + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc4 + + -- Tim Gardner Thu, 30 Apr 2009 09:17:05 -0600 + +linux (2.6.30-1.2) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] armel: disable staging drivers, fixes FTBS + * [Config] armel imx51: Disable CONFIG_MTD_NAND_MXC, fixes FTBS + + [ Upstream Kernel Changes ] + + * mpt2sas: Change reset_type enum to avoid namespace collision. + Submitted upstream. + + -- Tim Gardner Tue, 28 Apr 2009 16:54:41 -0600 + +linux (2.6.30-1.1) karmic; urgency=low + + * Initial release after rebasing against v2.6.30-rc3 + + -- Tim Gardner Thu, 12 Mar 2009 19:16:07 -0600 --- linux-2.6.35.orig/debian/rules +++ linux-2.6.35/debian/rules @@ -0,0 +1,235 @@ +#!/usr/bin/make -f +# +# $(DEBIAN)/rules for Ubuntu linux +# +# Use this however you want, just give credit where credit is due. +# +# Copyright (c) 2007 Ben Collins +# + +DEBIAN=$(shell awk -F= '($$1 == "DEBIAN") { print $$2 }' $$new; \ + done + flavours="$(wildcard $(DEBIAN)/control.d/vars.* $(DEBIAN)/sub-flavours/*.vars)";\ + for i in $$flavours; do \ + $(SHELL) $(DROOT)/scripts/control-create $$i | \ + sed -e 's/PKGVER/$(release)/g' \ + -e 's/ABINUM/$(abinum)/g' \ + -e 's/SRCPKGNAME/$(src_pkg_name)/g' \ + >> $(DEBIAN)/control.stub; \ + done + cp $(DEBIAN)/control.stub $(DEBIAN)/control + +.PHONY: debian/control +debian/control: $(DEBIAN)/control.stub + rm -rf $(builddir)/modules $(builddir)/firmware \ + $(builddir)/kernel-versions $(builddir)/package-list \ + $(builddir)/$(DEBIAN) + mkdir -p $(builddir)/modules/$(arch)/ + cp $(DEBIAN)/d-i/modules/* $(builddir)/modules/$(arch)/ + mkdir -p $(builddir)/firmware/$(arch)/ + cp $(DEBIAN)/d-i/firmware/* $(builddir)/firmware/$(arch)/ + cp $(DEBIAN)/d-i/package-list $(DEBIAN)/d-i/kernel-versions $(builddir)/ + touch $(builddir)/modules/$(arch)/kernel-image + # kernel-wedge needs to poke around in $(DEBIAN)/ + ln -nsf $(CURDIR)/debian $(builddir)/debian + + # Some files may need to differ between architectures + if [ -d $(DEBIAN)/d-i/modules-$(arch) ]; then \ + cp $(DEBIAN)/d-i/modules-$(arch)/* \ + $(builddir)/modules/$(arch)/; \ + fi + if [ -d $(DEBIAN)/d-i/firmware-$(arch) ]; then \ + cp $(DEBIAN)/d-i/firmware-$(arch)/* \ + $(builddir)/firmware/$(arch)/; \ + fi + + # Remove unwanted stuff for this architecture + if [ -r "$(DEBIAN)/d-i/exclude-modules.$(arch)" ]; then \ + (cat $(DEBIAN)/d-i/exclude-modules.$(arch); \ + ls $(builddir)/modules/$(arch)/) | sort | uniq -d | \ + (cd $(builddir)/modules/$(arch)/; xargs rm -f); \ + fi + if [ -r "$(DEBIAN)/d-i/exclude-firmware.$(arch)" ]; then \ + (cat $(DEBIAN)/d-i/exclude-firmware.$(arch); \ + ls $(builddir)/firmware/$(arch)/) | sort | uniq -d | \ + (cd $(builddir)/firmware/$(arch)/; xargs rm -f); \ + fi + + # Per flavour module lists + flavour_modules=`ls $(DEBIAN)/d-i/modules.$(arch)-* 2>/dev/null` \ + || true; \ + if [ "$$flavour_modules" != "" ]; then \ + for flav in $$flavour_modules; do \ + name=`echo $$flav | sed 's/.*\/modules.$(arch)-//'`; \ + mkdir $(builddir)/modules/$(arch)-$$name; \ + (cd $(builddir)/modules/; tar cf - `cat ../$$flav`) | \ + (cd $(builddir)/modules/$(arch)-$$name/; tar xf -); \ + touch $(builddir)/modules/$(arch)-$$name/kernel-image; \ + done; \ + fi + flavour_firmware=`ls $(DEBIAN)/d-i/firmware.$(arch)-* 2>/dev/null` \ + || true; \ + if [ "$$flavour_firmware" != "" ]; then \ + for flav in $$flavour_firmware; do \ + name=`echo $$flav | sed 's/.*\/firmware.$(arch)-//'`; \ + mkdir $(builddir)/firmware/$(arch)-$$name; \ + (cd $(builddir)/firmware/; tar cf - `cat ../$$flav`) | \ + (cd $(builddir)/firmware/$(arch)-$$name/; tar xf -);\ + touch $(builddir)/firmware/$(arch)-$$name/kernel-image; \ + done; \ + fi + + # Some files may need to differ between flavours + flavour_module_dirs=`ls -d $(DEBIAN)/d-i/modules-$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_module_dirs" ]; then \ + for flav in $$flavour_module_dirs; do \ + name=`echo $$flav | sed 's/.*\/modules-$(arch)-//'`; \ + [ -d $(builddir)/modules/$(arch)-$$name ] || \ + cp -a $(builddir)/modules/$(arch) \ + modules/$(arch)-$$name; \ + cp $$flav/* $(builddir)/modules/$(arch)-$$name/; \ + done; \ + fi + flavour_firmware_dirs=`ls -d $(DEBIAN)/d-i/firmware-$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_firmware_dirs" ]; then \ + for flav in $$flavour_firmware_dirs; do \ + name=`echo $$flav | sed 's/.*\/firmware-$(arch)-//'`; \ + [ -d $(builddir)/firmware/$(arch)-$$name ] || \ + cp -a $(builddir)/firmware/$(arch) \ + firmware/$(arch)-$$name; \ + cp $$flav/* $(builddir)/firmware/$(arch)-$$name/; \ + done; \ + fi + + # Remove unwanted stuff for each flavour + flavour_exclude=`ls $(DEBIAN)/d-i/exclude-modules.$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_exclude" ]; then \ + for flav in $$flavour_exclude; do \ + name=`echo $$flav | sed 's/.*\/exclude-modules.$(arch)-//'`;\ + [ -d $(builddir)/modules/$(arch)-$$name ] || \ + cp -a $(builddir)/modules/$(arch) \ + $(builddir)/modules/$(arch)-$$name; \ + (cat $$flav; \ + ls $(builddir)/modules/$(arch)-$$name) | \ + sort | uniq -d | \ + (cd $(builddir)/modules/$(arch)-$$name/; \ + xargs rm -f); \ + done; \ + fi + flavour_exclude=`ls $(DEBIAN)/d-i/exclude-firmware.$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_exclude" ]; then \ + for flav in $$flavour_exclude; do \ + name=`echo $$flav | sed 's/.*\/exclude-firmware.$(arch)-//'`;\ + [ -d $(builddir)/firmware/$(arch)-$$name ] || \ + cp -a $(builddir)/firmware/$(arch) \ + $(builddir)/firmware/$(arch)-$$name; \ + (cat $$flav; \ + ls $(builddir)/firmware/$(arch)-$$name) | \ + sort | uniq -d | \ + (cd $(builddir)/firmware/$(arch)-$$name/; \ + xargs rm -f); \ + done; \ + fi + + if [ ! -d $(builddir)/modules/$(build_arch) ]; then \ + mkdir -p $(builddir)/modules/$(build_arch); \ + cp $(builddir)/modules/$(arch)/* \ + $(builddir)/modules/$(build_arch); \ + fi + if [ ! -d $(builddir)/firmware/$(build_arch) ]; then \ + mkdir -p $(builddir)/firmware/$(build_arch); \ + cp $(builddir)/firmware/$(arch)/* \ + $(builddir)/firmware/$(build_arch); \ + fi + + cp $(DEBIAN)/control.stub debian/control.stub + cd $(builddir) && kernel-wedge gen-control > $(CURDIR)/debian/control --- linux-2.6.35.orig/debian/copyright +++ linux-2.6.35/debian/copyright @@ -0,0 +1,29 @@ +This is the Ubuntu prepackaged version of the Linux kernel. +Linux was written by Linus Torvalds +and others. + +This package was put together by the Ubuntu Kernel Team, from +sources retrieved from upstream linux git. +The sources may be found at most Linux ftp sites, including +ftp://ftp.kernel.org/pub/linux/kernel/ + +This package is currently maintained by the +Ubuntu Kernel Team + +Linux is copyrighted by Linus Torvalds and others. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 dated June, 1991. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Ubuntu Linux systems, the complete text of the GNU General +Public License v2 can be found in `/usr/share/common-licenses/GPL-2'. --- linux-2.6.35.orig/debian/compat +++ linux-2.6.35/debian/compat @@ -0,0 +1 @@ +5 --- linux-2.6.35.orig/debian/control.stub +++ linux-2.6.35/debian/control.stub @@ -0,0 +1,585 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.8.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, binutils-dev, rsync, libdw-dev +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Build-Conflicts: findutils (= 4.4.1-1ubuntu1) +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-maverick.git + +Package: linux-source-2.6.35 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-2.6 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 2.6.35 with Ubuntu patches + This package provides the source code for the Linux kernel version + 2.6.35. + . + This package is mainly meant for other packages to use, in order to build + custom flavours. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-2.6 +Replaces: linux-doc-2.6 +Description: Linux kernel specific documentation for version 2.6.35 + This package provides the various documents in the 2.6.35 kernel + Documentation/ subdirectory. These document kernel subsystems, APIs, device + drivers, and so on. See + /usr/share/doc/linux-doc/00-INDEX for a list of what is + contained in each file. + +Package: linux-tools-common +Architecture: all +Section: admin +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel specific tools for version 2.6.35 + This package provides the architecture independent parts for kernel + version locked tools in the 2.6.35 kernel source. + +Package: linux-headers-2.6.35-23 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-2.6 +Description: Header files related to Linux kernel version 2.6.35 + This package provides kernel header files for version 2.6.35, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc armel +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. They are NOT meant to be used to build third-party modules for + your kernel. Use linux-headers-* packages for that. + +Package: linux-tools-2.6.35-23 +Architecture: i386 amd64 powerpc armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel tools for version 2.6.35-23 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.35-23 on + DESC. + + +Package: linux-image-2.6.35-23-generic +Architecture: i386 amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86/x86_64 + This package provides kernel header files for version 2.6.35 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86/x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-generic-pae +Architecture: i386 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86 + This package contains the Linux kernel image for version 2.6.35 on + x86. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward 32 bit desktop systems with more then 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86 + This package provides kernel header files for version 2.6.35 on + x86. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86 + This package provides a kernel debug image for version 2.6.35 on + x86. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-omap +Architecture: armel +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on TI OMAP3-based systems + This package contains the Linux kernel image for version 2.6.35 on + TI OMAP3-based systems. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on TI OMAP3-based systems + This package provides kernel header files for version 2.6.35 on + TI OMAP3-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-omap-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on TI OMAP3-based systems + This package provides a kernel debug image for version 2.6.35 on + TI OMAP3-based systems. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.35 on + 32-bit PowerPC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 32-bit PowerPC + This package provides kernel header files for version 2.6.35 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 32-bit PowerPC + This package provides a kernel debug image for version 2.6.35 on + 32-bit PowerPC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc64-smp +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.35 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.35 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc64-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.35 on + 64-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc-smp +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.35 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.35 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.35 on + 32-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-server +Architecture: amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, kvm-api-4, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Server processors. + . + Geared toward 64 bit server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-server meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86_64 + This package provides kernel header files for version 2.6.35 on + x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-server-dbgsym +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-versatile +Architecture: armel +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on Versatile-based systems + This package contains the Linux kernel image for version 2.6.35 on + Versatile-based systems. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Versatile processors. + . + PB, AB, Qemu, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-versatile meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on Versatile-based systems + This package provides kernel header files for version 2.6.35 on + Versatile-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-versatile-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on Versatile-based systems + This package provides a kernel debug image for version 2.6.35 on + Versatile-based systems. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-virtual +Architecture: i386 amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86/x86_64 + This package provides kernel header files for version 2.6.35 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86/x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. --- linux-2.6.35.orig/debian/control +++ linux-2.6.35/debian/control @@ -0,0 +1,1178 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.8.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, binutils-dev, rsync, libdw-dev +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Build-Conflicts: findutils (= 4.4.1-1ubuntu1) +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-maverick.git + +Package: linux-source-2.6.35 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-2.6 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 2.6.35 with Ubuntu patches + This package provides the source code for the Linux kernel version + 2.6.35. + . + This package is mainly meant for other packages to use, in order to build + custom flavours. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-2.6 +Replaces: linux-doc-2.6 +Description: Linux kernel specific documentation for version 2.6.35 + This package provides the various documents in the 2.6.35 kernel + Documentation/ subdirectory. These document kernel subsystems, APIs, device + drivers, and so on. See + /usr/share/doc/linux-doc/00-INDEX for a list of what is + contained in each file. + +Package: linux-tools-common +Architecture: all +Section: admin +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel specific tools for version 2.6.35 + This package provides the architecture independent parts for kernel + version locked tools in the 2.6.35 kernel source. + +Package: linux-headers-2.6.35-23 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-2.6 +Description: Header files related to Linux kernel version 2.6.35 + This package provides kernel header files for version 2.6.35, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc armel +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. They are NOT meant to be used to build third-party modules for + your kernel. Use linux-headers-* packages for that. + +Package: linux-tools-2.6.35-23 +Architecture: i386 amd64 powerpc armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel tools for version 2.6.35-23 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.35-23 on + DESC. + + +Package: linux-image-2.6.35-23-generic +Architecture: i386 amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86/x86_64 + This package provides kernel header files for version 2.6.35 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86/x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-generic-pae +Architecture: i386 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86 + This package contains the Linux kernel image for version 2.6.35 on + x86. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward 32 bit desktop systems with more then 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86 + This package provides kernel header files for version 2.6.35 on + x86. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86 + This package provides a kernel debug image for version 2.6.35 on + x86. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-omap +Architecture: armel +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on TI OMAP3-based systems + This package contains the Linux kernel image for version 2.6.35 on + TI OMAP3-based systems. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on TI OMAP3-based systems + This package provides kernel header files for version 2.6.35 on + TI OMAP3-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-omap-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on TI OMAP3-based systems + This package provides a kernel debug image for version 2.6.35 on + TI OMAP3-based systems. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.35 on + 32-bit PowerPC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 32-bit PowerPC + This package provides kernel header files for version 2.6.35 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 32-bit PowerPC + This package provides a kernel debug image for version 2.6.35 on + 32-bit PowerPC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc64-smp +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.35 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.35 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc64-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.35 on + 64-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc-smp +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.35 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.35 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.35 on + 32-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-server +Architecture: amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, kvm-api-4, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Server processors. + . + Geared toward 64 bit server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-server meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86_64 + This package provides kernel header files for version 2.6.35 on + x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-server-dbgsym +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-versatile +Architecture: armel +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on Versatile-based systems + This package contains the Linux kernel image for version 2.6.35 on + Versatile-based systems. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Versatile processors. + . + PB, AB, Qemu, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-versatile meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on Versatile-based systems + This package provides kernel header files for version 2.6.35 on + Versatile-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-versatile-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on Versatile-based systems + This package provides a kernel debug image for version 2.6.35 on + Versatile-based systems. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-virtual +Architecture: i386 amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86/x86_64 + This package provides kernel header files for version 2.6.35 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86/x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: kernel-image-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: kernel-image +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: extra +Description: Linux kernel binary image for the Debian installer + This package contains the Linux kernel image for the Debian installer + boot images. It does _not_ provide a usable kernel for your full + Debian system. + +Package: nic-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: nic-modules +Depends: kernel-image-2.6.35-23-generic-di, nic-shared-modules-2.6.35-23-generic-di, virtio-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Network interface support + +Package: nic-shared-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: nic-shared-modules +Depends: kernel-image-2.6.35-23-generic-di, crypto-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: serial-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: serial-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Serial port support + +Package: ppp-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: ppp-modules +Depends: kernel-image-2.6.35-23-generic-di, nic-shared-modules-2.6.35-23-generic-di, serial-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: PPP (serial port) networking support + +Package: firewire-core-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: firewire-core-modules +Depends: kernel-image-2.6.35-23-generic-di, storage-core-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Firewire (IEEE-1394) Support + +Package: scsi-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: scsi-modules +Depends: kernel-image-2.6.35-23-generic-di, storage-core-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: SCSI storage support + +Package: plip-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: plip-modules +Depends: kernel-image-2.6.35-23-generic-di, nic-shared-modules-2.6.35-23-generic-di, parport-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: PLIP (parallel port) networking support + +Package: floppy-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: floppy-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Floppy driver support + +Package: fat-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: fat-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: nfs-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: nfs-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: NFS filesystem drivers + Includes the NFS client driver, and supporting modules. + +Package: md-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: md-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: usb-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: usb-modules +Depends: kernel-image-2.6.35-23-generic-di, storage-core-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Core USB support + +Package: pcmcia-storage-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: pcmcia-storage-modules +Depends: kernel-image-2.6.35-23-generic-di, scsi-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: PCMCIA storage support + +Package: fb-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: fb-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Framebuffer modules + +Package: input-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: input-modules +Depends: kernel-image-2.6.35-23-generic-di, usb-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Support for various input methods + +Package: mouse-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: mouse-modules +Depends: kernel-image-2.6.35-23-generic-di, input-modules-2.6.35-23-generic-di, usb-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: irda-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: irda-modules +Depends: kernel-image-2.6.35-23-generic-di, nic-shared-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Support for Infrared protocols + +Package: parport-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: parport-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Parallel port support + +Package: nic-pcmcia-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: nic-pcmcia-modules +Depends: kernel-image-2.6.35-23-generic-di, nic-shared-modules-2.6.35-23-generic-di, nic-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: PCMCIA network interface support + +Package: pcmcia-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: pcmcia-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: PCMCIA Modules + +Package: nic-usb-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: nic-usb-modules +Depends: kernel-image-2.6.35-23-generic-di, nic-shared-modules-2.6.35-23-generic-di, usb-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: USB network interface support + +Package: sata-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: sata-modules +Depends: kernel-image-2.6.35-23-generic-di, storage-core-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: SATA storage support + +Package: crypto-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: crypto-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: char-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: char-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Character module support + +Package: fs-core-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: fs-core-modules, jfs-modules, reiserfs-modules, xfs-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: fs-secondary-modules, ntfs-modules, hfs-modules +Depends: kernel-image-2.6.35-23-generic-di, fat-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Extra filesystem modules + This includes support for Windows NTFS and MacOS HFS/HFSPlus + +Package: pata-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: pata-modules +Depends: kernel-image-2.6.35-23-generic-di, storage-core-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: PATA support modules + +Package: storage-core-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: storage-core-modules, loop-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Core storage support + Includes core SCSI, LibATA, USB-Storage. Also includes related block + devices for CD, Disk and Tape medium (and IDE Floppy). + +Package: block-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: block-modules +Depends: kernel-image-2.6.35-23-generic-di, storage-core-modules-2.6.35-23-generic-di, parport-modules-2.6.35-23-generic-di, virtio-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Block storage devices + This package contains the block storage devices, including DAC960 and + paraide. + +Package: message-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: message-modules +Depends: kernel-image-2.6.35-23-generic-di, storage-core-modules-2.6.35-23-generic-di, scsi-modules-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: Fusion and i2o storage modules + This package containes the fusion and i2o storage modules. + +Package: virtio-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: virtio-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: standard +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: squashfs-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: squashfs-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: vlan-modules-2.6.35-23-generic-di +XC-Package-Type: udeb +Provides: vlan-modules +Depends: kernel-image-2.6.35-23-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-generic +Section: debian-installer +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. + +Package: kernel-image-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: kernel-image +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: extra +Description: Linux kernel binary image for the Debian installer + This package contains the Linux kernel image for the Debian installer + boot images. It does _not_ provide a usable kernel for your full + Debian system. + +Package: nic-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: nic-modules +Depends: kernel-image-2.6.35-23-virtual-di, nic-shared-modules-2.6.35-23-virtual-di, virtio-modules-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: Network interface support + +Package: nic-shared-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: nic-shared-modules +Depends: kernel-image-2.6.35-23-virtual-di, crypto-modules-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: ppp-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: ppp-modules +Depends: kernel-image-2.6.35-23-virtual-di, nic-shared-modules-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: PPP (serial port) networking support + +Package: scsi-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: scsi-modules +Depends: kernel-image-2.6.35-23-virtual-di, storage-core-modules-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: SCSI storage support + +Package: floppy-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: floppy-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: Floppy driver support + +Package: fat-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: fat-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: md-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: md-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: fb-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: fb-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: Framebuffer modules + +Package: mouse-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: mouse-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: irda-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: irda-modules +Depends: kernel-image-2.6.35-23-virtual-di, nic-shared-modules-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: Support for Infrared protocols + +Package: parport-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: parport-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: Parallel port support + +Package: sata-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: sata-modules +Depends: kernel-image-2.6.35-23-virtual-di, storage-core-modules-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: SATA storage support + +Package: crypto-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: crypto-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: fs-core-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: fs-core-modules, jfs-modules, reiserfs-modules, xfs-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: fs-secondary-modules, ntfs-modules, hfs-modules +Depends: kernel-image-2.6.35-23-virtual-di, fat-modules-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: Extra filesystem modules + This includes support for Windows NTFS and MacOS HFS/HFSPlus + +Package: storage-core-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: storage-core-modules, loop-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: Core storage support + Includes core SCSI, LibATA, USB-Storage. Also includes related block + devices for CD, Disk and Tape medium (and IDE Floppy). + +Package: block-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: block-modules +Depends: kernel-image-2.6.35-23-virtual-di, storage-core-modules-2.6.35-23-virtual-di, parport-modules-2.6.35-23-virtual-di, virtio-modules-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: Block storage devices + This package contains the block storage devices, including DAC960 and + paraide. + +Package: message-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: message-modules +Depends: kernel-image-2.6.35-23-virtual-di, storage-core-modules-2.6.35-23-virtual-di, scsi-modules-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: Fusion and i2o storage modules + This package containes the fusion and i2o storage modules. + +Package: virtio-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: virtio-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: standard +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: squashfs-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: squashfs-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: vlan-modules-2.6.35-23-virtual-di +XC-Package-Type: udeb +Provides: vlan-modules +Depends: kernel-image-2.6.35-23-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-23-virtual +Section: debian-installer +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. --- linux-2.6.35.orig/debian/debian.env +++ linux-2.6.35/debian/debian.env @@ -0,0 +1 @@ +DEBIAN=debian.master --- linux-2.6.35.orig/debian/stamps/keep-dir +++ linux-2.6.35/debian/stamps/keep-dir @@ -0,0 +1 @@ +Place holder --- linux-2.6.35.orig/debian/control-scripts/postrm +++ linux-2.6.35/debian/control-scripts/postrm @@ -0,0 +1,361 @@ +#! /usr/bin/perl +# -*- Mode: Cperl -*- +# image.postrm --- +# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com ) +# Created On : Sat May 15 11:05:13 1999 +# Created On Node : glaurung.green-gryphon.com +# Last Modified By : Manoj Srivastava +# Last Modified On : Wed Sep 13 11:26:19 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 57 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# $Id: image.postrm,v 1.31 2003/10/07 16:24:20 srivasta Exp $ +# + + +# +#use strict; #for debugging +use Cwd 'abs_path'; + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $initrd = "YES"; # initrd kernel +my $do_initrd = ''; # Normally, we don't +my $warn_initrd = 'YES'; # Normally we do +my $use_hard_links = ''; # hardlinks do not work across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # we shall not create a dangling link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my @boilerplate = (); +my @silotemplate = (); +my @quiktemplate = (); +my @palotemplate = (); +my @vmelilotemplate = (); +my $bootdevice = ''; +my $rootdevice = ''; +my $rootdisk = ''; +my $rootpartition = ''; +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_modules = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +chdir('/') or die "could not chdir to /:$!\n"; +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $warn_initrd = '' if /^\s*warn_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $warn_initrd = "Yes" if /^\s*warn_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + +if ($link_in_boot) { + $image_dest = "/$image_dir/"; + $image_dest =~ s|^/*|/|o; +} + +$image_dest = "$image_dest/"; +$image_dest =~ s|/+$|/|o; + +# The destdir may be gone by now. +if (-d "$image_dest") { + chdir("$image_dest") or die "could not chdir to $image_dest:$!\n"; +} + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) {$kimage = "vmlinuz"} # Hmm. empty +elsif ($kimage =~ m/^b?uImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz +elsif ($kimage =~ m/^b?zImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage;} +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage;} +else {$kimage = "vmlinuz"} # default + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +sub remove_sym_link { + my $bad_image = $_[0]; + + warn "Removing symbolic link $bad_image \n"; + if ($loader =~ /lilo/i) + { + warn "Unless you used the optional flag in lilo, \n"; + } + warn " you may need to re-run your boot loader" . ($loader ? "[$loader]":"") + . "\n"; + # Remove the dangling link + unlink "$bad_image"; +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +sub CanonicalizePath { + my $path = join '/', @_; + my @work = split '/', $path; + my @out; + my $is_absolute; + + if (@work && $work[0] eq "") { $is_absolute = 1; shift @work; } + + while (@work) { + my $seg = shift @work; + if ($seg eq "." || $seg eq "") { + } elsif ($seg eq "..") { + if (@out && $out[-1] ne "..") { + pop @out; + } else { + # Leading "..", or "../..", etc. + push @out, $seg; + } + } else { + push @out, $seg; + } + } + + unshift @out, "" if $is_absolute; + return join('/', @out); +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +# This removes dangling symlinks. What do we do about hard links? Surely a +# something with the nane $image_dest . "$kimage" ought not to be left behind? +sub image_magic { + my $kimage = $_[0]; + my $image_dest = $_[1]; + + if (-l "$kimage") { + # There is a symbolic link + my $force_move = 0; + my $vmlinuz_target = readlink "$kimage"; + my $real_target = ''; + $real_target = abs_path($vmlinuz_target) if defined ($vmlinuz_target); + if (!defined($vmlinuz_target) || ! -f "$real_target") { + # what, a dangling symlink? + warn "The link " . $image_dest . "$kimage is a damaged link\n"; + # Remove the dangling link + &remove_sym_link("$kimage"); + } + else { + my $canonical_target = CanonicalizePath("$vmlinuz_target"); + if (! -e $canonical_target) { + warn "The link " . $image_dest . "$kimage is a dangling link\n"; + &remove_sym_link("$kimage"); + } + } + } +} + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + warn "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + warn "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if ($postrm_hook) { + &run_hook("postrm", $postrm_hook); +} +if (-d "/etc/kernel/postrm.d") { + warn "Examining /etc/kernel/postrm.d .\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postrm.d") && + die "Failed to process /etc/kernel/postrm.d"; +} +if (-d "/etc/kernel/postrm.d/$version") { + warn "Examining /etc/kernel/postrm.d/$version .\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postrm.d/$version") && + die "Failed to process /etc/kernel/postrm.d/$version"; +} + +# check and remove damaged and dangling symlinks +if ($ARGV[0] !~ /upgrade/) { + system("$ramdisk -d -k " . $version . " > /dev/null 2>&1"); + if (-f $realimageloc . "initrd.img-$version.bak") { + unlink $realimageloc . "initrd.img-$version.bak"; + } + image_magic($kimage, $image_dest); + image_magic($kimage . ".old", $image_dest); + image_magic("initrd.img", $image_dest) if $initrd; + image_magic("initrd.img.old", $image_dest) if $initrd; +} + +exit 0; + +__END__ + + + + + + --- linux-2.6.35.orig/debian/control-scripts/preinst +++ linux-2.6.35/debian/control-scripts/preinst @@ -0,0 +1,306 @@ +#! /usr/bin/perl +# -*- Mode: Cperl -*- +# image.preinst --- +# Author : Manoj Srivastava ( srivasta@tiamat.datasync.com ) +# Created On : Sun Jun 14 03:38:02 1998 +# Created On Node : tiamat.datasync.com +# Last Modified By : Manoj Srivastava +# Last Modified On : Sun Sep 24 14:04:42 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 99 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# + +# +#use strict; #for debugging + +use Debconf::Client::ConfModule qw(:all); +version('2.0'); +my $capb=capb("backup"); + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom + # or elilo +my $image_dir = "/boot"; # where the image is located +my $initrd = "YES"; # initrd kernel +my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_src_link = 'YES'; # There is no harm in checking the link +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # There is no harm in checking the link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs. +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +#known variables +my @boilerplate = (); +my @silotemplate = (); +my @quiktemplate = (); +my @palotemplate = (); +my @vmelilotemplate = (); +my $bootdevice = ''; +my $rootdevice = ''; +my $rootdisk = ''; +my $rootpartition = ''; +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_loader = ''; +my $warn_reboot = ''; # Warn that we are installing a version of + # the kernel we are running + +my $modules_base = '/lib/modules'; + +die "Pre inst Internal error. Aborting." unless $version; + +exit 0 if $ARGV[0] =~ /abort-upgrade/; +exit 1 unless $ARGV[0] =~ /(install|upgrade)/; + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_src_link = '' if /^\s*relink_src_link\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_src_link = 'Yes' if /^\s*relink_src_link\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + $have_conffile = "Yes"; # stop perl complaining + } +} + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + +# About to upgrade this package from version $2 TO THIS VERSION. +# "prerm upgrade" has already been called for the old version of +# this package. + +sub find_initrd_tool { + my $hostversion = shift; + my $version = shift; + my @ramdisks = + grep { + my $args = + "$_ " . + "--supported-host-version=$hostversion " . + "--supported-target-version=$version " . + "1>/dev/null 2>&1" + ; + system($args) == 0; + } + split (/[:,\s]+/, $ramdisk); +} + +sub check { + my $version = shift; + my $lib_modules="$modules_base/$version"; + my $message = ''; + + if (-d "$lib_modules") { + opendir(DIR, $lib_modules) || die "can’t opendir $lib_modules: $!"; + my @children = readdir(DIR); + if ($#children > 1) { + my @dirs = grep { -d "$lib_modules/$_" } @children; + if ($#dirs > 1) { # we have subdirs + my $dir_message=''; + for my $dir (@dirs) { + if ($dir =~/kernel$/) { + $dir_message="An older install was detected.\n"; + } + else { + $dir_message="Module sub-directories were detected.\n" + unless $dir_message; + } + } + $message += $dir_message if $dir_message; + } + + my @links = grep { -l "$lib_modules/$_" } @children; + if ($#links > -1) { + my $links_message = ''; + for my $link (@links) { + next if ($link =~ /^build$/); + next if ($link =~ /^source$/); + $links_message = "Symbolic links were detected in $modules_base/$version.\n"; + } + $message += $links_message if $links_message; + } + my @files = grep { -f "$lib_modules/$_" } @children; + $message += "Additional files also exist in $modules_base/$version.\n" + if ($#files > -1); + } + } + else { $message .= "$lib_modules does not exist. ";} + return $message; +} + +if (-d "$modules_base/$version") { + my $errors=check($version); + warn "Info:\n$errors\n" if $errors; +} + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if (-x "$preinst_hook") { + &run_hook("preinst", $preinst_hook); +} +if (-d "/etc/kernel/preinst.d") { + print STDERR "Examining /etc/kernel/preinst.d/\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version" . + " /etc/kernel/preinst.d") && + die "Failed to process /etc/kernel/preinst.d"; +} +if (-d "/etc/kernel/preinst.d/$version") { + print STDERR "Examining /etc/kernel/preinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version" . + " /etc/kernel/preinst.d/$version") && + die "Failed to process /etc/kernel/preinst.d/$version"; +} +print STDERR "Done.\n"; + +exit 0; + +__END__ + + --- linux-2.6.35.orig/debian/control-scripts/prerm +++ linux-2.6.35/debian/control-scripts/prerm @@ -0,0 +1,312 @@ +#! /usr/bin/perl +# -*- Mode: Perl -*- +# image.prerm --- +# Author : root ( root@melkor.pilgrim.umass.edu ) +# Created On : Fri May 17 03:28:59 1996 +# Created On Node : melkor.pilgrim.umass.edu +# Last Modified By : Manoj Srivastava +# Last Modified On : Sat Aug 5 13:14:17 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 85 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# +# $Id: image.prerm,v 1.22 2003/10/07 16:24:20 srivasta Exp $ +# +# +#use strict; + +$|=1; +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlinks = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $initrd = "YES"; # initrd kernel +my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # There is no harm in checking the link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +my $DEBUG = 0; + +# Variables used +my $image=''; +my $ret=0; +my $seen=''; +my $answer=''; +my $running = ''; +my $WouldInvalidate = 0; + +if ($ARGV[0] && ($ARGV[0] =~ /remove/ || $ARGV[0] =~ /upgrade/)) { + if (-l "/usr/doc/linux-image-$version") { + unlink "/usr/doc/linux-image-$version"; + } +} + +# Ignore all invocations uxcept when called on to remove +exit 0 unless ($ARGV[0] && $ARGV[0] =~ /remove/) ; + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) { $kimage = "vmlinuz";} # Hmm. empty +elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz +elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; } +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; } +else { $kimage = "vmlinuz";} # Default + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + +#check to see if we are trying to remove a running kernel +# if so we abort right now. +chop($running=`uname -r`); +if ($running eq $version) { + print STDERR "WARN: Proceeding with removing running kernel image.\n"; +} + +#Now, they have an alternate kernel which they are currently running + +# This is just us being nice to lilo users. + +chdir("/") or die "could not chdir to /:$!\n"; + +if (-f "/etc/$loader.conf") { #I know, could be a link, but .. + open (LILO, "/etc/$loader.conf") || &success(); # this is not critical + while () { + chop; + s/\#.*//; # nix the comments + next unless /^\s*image\s*=\s(\S+)/o; + $image = $1; + if ($image && -e $image) { + while (defined($image) && -l $image) { + $image = readlink ($image); + } + if (defined($image) && -e $image) { + $WouldInvalidate |= $image =~ /$kimage-$version/; + } + else { + &success(); # invalid $loader.conf file + } + } + else { + &success(); # invalid $loader.conf file + } + } + close (LILO); + if ($WouldInvalidate) { + print STFERR "WARN: Proceeding with removing running kernel image.\n"; + &success(); + } +} + + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if (-x "$prerm_hook") { + &run_hook("prerm", $prerm_hook); +} +if (-d "/etc/kernel/prerm.d") { + print STDERR "Examining /etc/kernel/prerm.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version /etc/kernel/prerm.d") && + die "Failed to process /etc/kernel/prerm.d"; +} +if (-d "/etc/kernel/prerm.d/$version") { + print STDERR "Examining /etc/kernel/prerm.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version " . + "/etc/kernel/prerm.d/$version") && + die "Failed to process /etc/kernel/prerm.d/$version"; +} + +sub success () { + # NOTE: need to keep this list in sync with rules.d/2-binary-arch.mk + my %files_to_keep = ( + 'modules.builtin' => 1, + 'modules.order' => 1, + ); + my $short; + for my $file () { + $short = $file; $short =~ s,.*/,,; + if (!defined $files_to_keep{$short}) { + unlink "$file"; + } + } + exit 0; +} + + + +&success(); +exit 0; +__END__ + + + + + --- linux-2.6.35.orig/debian/control-scripts/postinst +++ linux-2.6.35/debian/control-scripts/postinst @@ -0,0 +1,1095 @@ +#! /usr/bin/perl +# OriginalAuthor : Manoj Srivastava ( srivasta@pilgrim.umass.edu ) +# +# Customized for Ubuntu by: Ben Collins + +#use strict; #for debugging +use Cwd 'abs_path'; + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom, arcboot or delo +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $relative_links = ""; # target machine defined +my $initrd = "YES"; # initrd kernel +my $do_initrd = ''; # Normally we do not +my $use_hard_links = ''; # hardlinks do not work across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs. +my $notifier = "/usr/share/update-notifier/notify-reboot-required"; +my $package_name = "linux-image-$version"; +my $explicit_do_loader = 'Yes'; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; +$Loader = "ARCBOOT" if $loader =~ /^arcboot/io; +$Loader = "DELO" if $loader =~ /^delo/io; + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $silent_modules = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +my $modules_base = '/lib/modules'; +my $CONF_LOC = '/etc/kernel-img.conf'; + +# Ignore all invocations except when called on to configure. +exit 0 unless $ARGV[0] =~ /configure/; + +my $DEBUG = 0; + +# Do some preliminary sanity checks here to ensure we actually have an +# valid image dir +chdir('/') or die "could not chdir to /:$!\n"; +die "Internal Error: ($image_dir) is not a directory!\n" + unless -d $image_dir; + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; +die "Internal Error: ($realimageloc) is not a directory!\n" + unless -d $realimageloc; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlink\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $explicit_do_loader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $explicit_do_loader = "YES" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + + + +# For some versions of kernel-package, we had this warning in the +# postinst, but the rules did not really interpolate the value in. +# Here is a sanity check. +my $pattern = "=" . "I"; +$initrd=~ s/^$pattern$//; + +if ($link_in_boot) { + $image_dest = "/$image_dir/"; # same as realimageloc +} + +# Tack on at least one trainling / +$image_dest = "$image_dest/"; +$image_dest =~ s|^/*|/|o; +$image_dest =~ s|/+$|/|o; + +if (! -d "$image_dest") { + die "Expected Image Destination dir ($image_dest) to be a valid directory!\n"; +} + +# sanity +if (!($do_bootfloppy || $do_bootloader)) { + $do_boot_enable = ''; +} +if ($do_symlink && $no_symlink) { + warn "Both do_symlinks and no_symlinks options enabled; disabling no_symlinks\n"; + $no_symlink = 0; +} + +# most of our work is done in $image_dest (nominally /) +chdir("$image_dest") or die "could not chdir to $image_dest:$!\n"; + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) { $kimage = "vmlinuz"; } # Hmm. empty +elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz +elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; } +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; } +else { $kimage = "vmlinuz"; } # Default + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + + +die "Internal Error: Could not find image (" . $realimageloc + . "$kimage-$version)\n" unless -e $realimageloc + . "$kimage-$version"; + +# search for the boot loader in the path +my $loader_exec; +($loader_exec = $loader) =~ s|.*/||; +my ($loaderloc) = grep -x, map "$_/$loader_exec", + map { length($_) ? $_ : "." } split /:/, $ENV{PATH}; + + +###################################################################### +###################################################################### +########### Test whether a relative symlinkwould be OK ####### +###################################################################### +###################################################################### +sub test_relative { + my %params = @_; + my $cwd; + + die "Internal Error: Missing Required paramater 'Old Dir' " + unless $params{'Old Dir'}; + die "Internal Error: Missing Required paramater New Dir' " + unless $params{'New Dir'}; + + + die "Internal Error: No such dir $params{'Old Dir'} " + unless -d $params{'Old Dir'}; + die "Internal Error: No such dir $params{'New Dir'} " + unless -d $params{'New Dir'}; + + warn "Test relative: testing $params{'Old Dir'} -> $params{'New Dir'}" + if $DEBUG; + chomp($cwd = `pwd`); + chdir ($params{'New Dir'}) or die "Could not chdir to $params{'New Dir'}:$!"; + my $ok = 0; + $params{'Old Dir'} =~ s|^/*||o; + if (-d $params{'Old Dir'} ) { + if (defined $params{'Test File'}) { + if (-e $params{'Old Dir'} . $params{'Test File'}) { + $ok = 1; + } + } else { + $ok = 1; # well, backward compatibility + } + } + chdir ($cwd) or die "Could not chdir to $params{'New Dir'}:$!"; + return $ok; +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +# sub CanonicalizePath { +# my $path = join '/', @_; +# my @work = split '/', $path; +# my @out; +# my $is_absolute; + +# if (@work && $work[0] eq "") { +# $is_absolute = 1; shift @work; +# } + +# while (@work) { +# my $seg = shift @work; +# if ($seg eq "." || $seg eq "") { +# } +# elsif ($seg eq "..") { +# if (@out && $out[-1] ne "..") { +# pop @out; +# } +# else { +# # Leading "..", or "../..", etc. +# push @out, $seg; +# } +# } +# else { +# push @out, $seg; +# } +# } + +# unshift @out, "" if $is_absolute; +# return join('/', @out); +# } +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### + +sub spath { + my %params = @_; + + die "Missing Required paramater 'Old'" unless $params{'Old'}; + die "Missing Required paramater 'New'" unless $params{'New'}; + + my @olddir = split '/', `readlink -q -m $params{'Old'}`; + my @newdir = split '/', `readlink -q -m $params{'New'}`; + my @outdir = @olddir; + + my $out = ''; + my $i; + for ($i = 0; $i <= $#olddir && $i <= $#newdir; $i++) { + $out++ if ($olddir[$i] ne $newdir[$i]); + shift @outdir unless $out; + unshift @outdir, ".." if $out; + } + if ($#newdir > $#olddir) { + for ($i=0; $i < $#newdir; $i++) { + unshift @outdir, ".."; + } + } + return join ('/', @outdir); +} +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### + + +# This routine actually moves the kernel image +# From: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12) +# To: $image_dest/$kimage-$version (/vmlinuz-2.6.12) +# Note that the image is moved to a versioned destination, but ordinary +# symlinks we create otherwise are not normally versioned +sub really_move_image { + my $src_dir = $_[0]; + my $target = $_[1]; + my $dest_dir = $_[2]; + + warn "Really move image: src_dir=$src_dir, target=$target,\n destdir=$dest_dir" + if $DEBUG; + if (-e "$target") { + # we should be in dir $dest_dir == $image_dest /, normally + rename("$target", "$target.$$") || + die "failed to move " . $dest_dir . "$target:$!"; + warn "mv $target $target.$$" if $DEBUG; + } + warn "mv -f $src_dir$target $target" if $DEBUG; + my $ret = system("mv -f " . $src_dir . "$target " . + " $target"); + if ($ret) { + die("Failed to move " . $src_dir . "$target to " + . $dest_dir . "$target.\n"); + } + # Ok, now we may clobber the previous .old files + if (-e "$target.$$") { + rename("$target.$$", "$target.old") || + die "failed to move " . $dest_dir . "$target:$!"; + warn "mv $target.$$ $target " if $DEBUG; + } +} + +# Normally called after really_move_image; and only called if we asked for +# reversed link this routine reverses the symbolic link that is notmally +# created. Since the real kernel image has been moved over to +# $image_dest/$kimage-$version. So, this routine links +# From: $image_dest/$kimage-$version (/vmlinuz-2.6.12) +# To: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12) +sub really_reverse_link { + my $src_dir = $_[0]; + my $link_name = $_[1]; + my $dest_dir = $_[2]; + warn "Really reverse link: src_dir=$src_dir, link name=$link_name\n" . + "\tdestdir=$dest_dir" if $DEBUG; + + my $Old = $dest_dir; + if (test_relative ('Old Dir' => $Old, 'New Dir' => $src_dir, + 'Test File' => "$link_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$src_dir" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + link($Old . "$link_name", $src_dir . "$link_name") || + die("Failed to link " . $dest_dir . "$link_name to " . $src_dir . + "$link_name .\n"); + warn "ln " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG; + } + else { + symlink($Old . "$link_name", $src_dir . "$link_name") || + die("Failed to symbolic-link " . $dest_dir . "$link_name to " . $src_dir + . "$link_name : $!\n"); + warn "ln -s " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG; + } +} + +# This routine is invoked if there is a symbolic link in place +# in $image_dest/$kimage -- so a symlink exists in the destination. +# What we are trying to determine is if we need to move the symbolic link over +# to the the .old location +sub move_p { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + my $force_move = 0; + warn "Move?: kimage=$kimage, image_dest=$image_dest, \n" . + "\timage_name=$image_name, src_dir=$src_dir" if $DEBUG; + + if ($no_symlink || $reverse_symlink) { + # we do not want links, yet we have a symbolic link here! + warn "found a symbolic link in " . $image_dest . "$kimage \n" . + "even though no_symlink is defined\n" if $no_symlink; + warn "found a symbolic link in " . $image_dest . "$kimage \n" . + "even though reverse_symlink is defined\n" if $reverse_symlink; + # make sure we change this state of affairs + $force_move = 1; + return $force_move; + } + + warn "DEBUG: OK. We found symlink, and we should have a symlink here.\n" + if $DEBUG; + my $vmlinuz_target = readlink "$kimage"; + my $real_target = ''; + my $target = `readlink -q -m "${realimageloc}${kimage-$version}"`; + $real_target = abs_path($vmlinuz_target) if defined($vmlinuz_target); + + if (!defined($vmlinuz_target) || ! -f "$real_target") { + # what, a dangling symlink? + warn "The link " . $image_dest . "$kimage is a dangling link" . + "to $real_target\n"; + $force_move = 1; + return $force_move; + } + + + warn "DEBUG: The link $kimage points to ($vmlinuz_target)\n" if $DEBUG; + warn "DEBUG: ($vmlinuz_target) is really ($real_target)\n" if $DEBUG; + my $cwd; + chomp ($cwd=`pwd`); + if ($vmlinuz_target !~ m|^/|o) { + $vmlinuz_target = $cwd . "/" . $vmlinuz_target; + $vmlinuz_target =~ s|/+|/|o; + } + $vmlinuz_target = `readlink -q -m $vmlinuz_target`; + + if ("$vmlinuz_target" ne "$target") { + warn "DEBUG: We need to handle this.\n" if $DEBUG; + if ($minimal_swap) { + warn "DEBUG: Minimal swap.\n" if $DEBUG; + if (-l "$kimage.old") { + warn "DEBUG: There is an old link at $kimage.old\n" if $DEBUG; + my $old_target = readlink "$kimage.old"; + my $real_old_target = ''; + $real_old_target=abs_path($old_target) if defined ($old_target); + + if ($real_old_target && -f "$real_old_target") { + if ($old_target !~ m|^/|o) { + $old_target = $cwd . "/" . $old_target; + $old_target =~ s|/+|/|o; + } + $old_target = `readlink -q -m $old_target`; + if ("$old_target" ne "$target") { + $force_move = 1; + warn "DEBUG: Old link ($old_target) does not point to us ($target)\n" + if $DEBUG; + } + else { # The .old points to the current + warn "$kimage.old --> $target -- doing nothing"; + $force_move = 0; + } + } + else { + warn "DEBUG: Well, the old link does not exist -- so we move\n" + if $DEBUG; + $force_move = 1; + } + } + else { + warn "DEBUG: No .old link -- OK to move\n" + if $DEBUG; + $force_move = 1; + } + } + else { + warn "DEBUG: ok, minimal swap is no-- so we move.\n" + if $DEBUG; + $force_move = 1; + } + } + else { # already have proper link + warn "$kimage($vmlinuz_target) points to $target ($real_target) -- doing nothing"; + $force_move = 0; + } + return $force_move; +} + + +# This routine moves the symbolic link around (/vmlinuz -> /vmlinuz.old) +# It pays attention to whether we should the fact whether we should be using +# hard links or not. +sub really_move_link { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "really_move_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # don't clobber $kimage.old quite yet + rename("$kimage", "$kimage.$$") || + die "failed to move " . $image_dest . "$kimage:$!"; + warn "mv $kimage $kimage.$$" if $DEBUG; + my $Old = $src_dir; + my $cwd; + + chomp($cwd=`pwd`); + if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd, + 'Test File' => "$image_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + warn "ln ${Old}${image_name} $kimage" if $DEBUG; + if (! link("${Old}${image_name}", "$kimage")) { + rename("$kimage.$$", "$kimage"); + die("Failed to link ${Old}${image_name} to " . + "${image_dest}${kimage}.\n"); + } + } + else { + warn "ln -s ${Old}${image_name} $kimage" if $DEBUG; + if (! symlink("${Old}${image_name}", "$kimage")) { + rename("$kimage.$$", "$kimage"); + die("Failed to symbolic-link ${Old}${image_name} to " . + "${image_dest}${kimage}: $!\n"); + } + } + + # Ok, now we may clobber the previous .old file + if (-l "$kimage.old" || ! -e "$kimage.old" ) { + rename("$kimage.$$", "$kimage.old"); + warn "mv $kimage.$$ $kimage.old" if $DEBUG; + } + else { + warn "$kimage.old is not a symlink, not clobbering\n"; + warn "rm $kimage.$$"; + unlink "$kimage.$$" if $DEBUG; + } +} + +# This routine handles a request to do symlinks, but there is no +# symlink file already there. Either we are supposed to use copy, or we are +# installing on a pristine system, or the user does not want symbolic links at +# all. We use a configuration file to tell the last two cases apart, creating +# a config file if needed. +sub handle_missing_link { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "handle_missing_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + if ($no_symlink) { + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc . + "$image_name " . " $kimage"); + if ($ret) { + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + elsif ($reverse_symlink) { + warn "mv -f $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("mv -f " . $realimageloc . "$image_name " + . "$kimage"); + if ($ret) { + die("Failed to move " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + else { + if (! $have_conffile) { + my $ret; + my $answer=''; + $do_symlink = "Yes"; + + if (open(CONF, ">$CONF_LOC")) { + print CONF "# Kernel Image management overrides\n"; + print CONF "# See kernel-img.conf(5) for details\n"; + if ($loader =~ /palo/i) { + print CONF "link_in_boot = Yes\n"; + print CONF "do_symlinks = Yes\n"; + print CONF "relative_links = Yes\n"; + print CONF "do_bootloader = No\n"; + } else { + print CONF "do_symlinks = $do_symlink\n"; + } + close CONF; + } + $have_conffile = "Yes"; + } + } + + if (! $no_symlink && $do_symlink =~ /Yes/i) { + my $Old = $realimageloc; + my $New = $image_dest; + my $Name = "$image_name"; + my $Link_Dest = "$kimage"; + + if ($reverse_symlink) { + $Old = $image_dest; + $New = $realimageloc; + $Name = "$kimage"; + $Link_Dest = $realimageloc . "$image_name"; + } + if (test_relative ('Old Dir' => $Old, + 'New Dir' => $New, + 'Test File' => $Name)) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$New" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + symlink($Old . "$Name", "$Link_Dest") || + die("Failed to symbolic-link ${Old}$Name to $Link_Dest: $!\n"); + warn "ln -s ${Old}$Name $Link_Dest" if $DEBUG; + + } +} + +# This routine handles the rest of the cases, where the user has requested +# non-traditional handling, like using cp, or reverse symlinks, or hard links. +sub handle_non_symlinks { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "handle_non_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # Save the current image. We do this in all four cases + rename("$kimage", "$kimage.$$") || + die "failed to move " . $image_dest . "$kimage:$!"; + warn "mv $kimage $kimage.$$" if $DEBUG; + + ##,#### + # case One + #`#### + if ($no_symlink) { + # Maybe /$image_dest is on a dos system? + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc + . "$image_name " . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + rename("$kimage.$$", "$kimage"); + warn "mv $kimage.$$ $kimage" if $DEBUG; + } + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + ##,#### + # case Two + #`#### + elsif ($reverse_symlink) { # Maybe /$image_dest is on a dos system? + warn "mv -f $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("mv -f " . $realimageloc . "$image_name " + . $image_dest . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + rename("$kimage.$$", "$kimage"); + warn "mv $kimage.$$ $kimage" if $DEBUG; + } + die("Failed to move " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + my $Old = $image_dest; + if (test_relative ('Old Dir' => $Old, 'New Dir' => $realimageloc, + 'Test File' => "$kimage")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$realimageloc" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + warn "ln " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG; + if (! link($Old . "$kimage", $realimageloc . "$image_name")) { + warn "Could not link " . $image_dest . + "$kimage to $image_name :$!"; + } + } + else { + warn "ln -s " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG; + if (! symlink($Old . "$kimage", $realimageloc . "$image_name")) { + warn "Could not symlink " . $image_dest . + "$kimage to $image_name :$!"; + } + } + } + ##,#### + # case Three + #`#### + elsif ($use_hard_links =~ m/YES/i ) { + # Ok then. this ought to be a hard link, and hence fair game + # don't clobber $kimage.old quite yet + my $Old = $realimageloc; + my $cwd; + chomp($cwd=`pwd`); + if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd, + 'Test File' => "$image_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + warn "ln " . $Old . "$image_name " . "$kimage" if $DEBUG; + if (! link($Old . "$image_name", "$kimage")) { + warn "mv $kimage.$$ $kimage" if $DEBUG; + rename("$kimage.$$", "$kimage"); + die("Failed to link " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + ##,#### + # case Four + #`#### + else { + # We just use cp + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc + . "$image_name " . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + warn "mv $kimage.$$ $kimage" if $DEBUG; + rename("$kimage.$$", "$kimage"); + } + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + # Ok, now we may clobber the previous .old file + warn "mv $kimage.$$ $kimage.old if -e $kimage.$$" if $DEBUG; + rename("$kimage.$$", "$kimage.old") if -e "$kimage.$$"; +} + +# This routine is responsible for setting up the symbolic links +# So, the actual kernel image lives in +# $realimageloc/$image_name (/boot/vmlinuz-2.6.12). +# This routine creates symbolic links in $image_dest/$kimage (/vmlinuz) +sub image_magic { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = "$kimage-$version"; + my $src_dir = $realimageloc; + warn "image_magic: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # Well, in any case, if the destination (the symlink we are trying + # to create) is a directory, we should do nothing, except throw a + # diagnostic. + if (-d "$kimage" ) { + die ("Hmm. $kimage is a directory, which I did not expect. I am\n" . + "trying to create a symbolic link with that name linked to \n" . + "$image_dest . Since a directory exists here, my assumptions \n" . + "are way off, and I am aborting.\n" ); + exit (3); + } + + if ($move_image) { # Maybe $image_dest is in on dos, or something? + # source dir, link name, dest dir + really_move_image( $realimageloc, $image_name, $image_dest); + really_reverse_link($realimageloc, $image_name, $image_dest) + if $reverse_symlink; + return; + } + + if (-l "$kimage") { # There is a symbolic link + warn "DEBUG: There is a symlink for $kimage\n" if $DEBUG; + my $force_move = move_p($kimage, $image_dest, $image_name, $src_dir); + + if ($force_move) { + really_move_link($kimage, $image_dest, $image_name, $src_dir); + } + } + elsif (! -e "$kimage") { + # Hmm. Pristine system? How can that be? Installing from scratch? + # Or maybe the user does not want a symbolic link here. + # Possibly they do not want a link here. (we should be in / + # here[$image_dest, really] + handle_missing_link($kimage, $image_dest, $image_name, $src_dir); + } + elsif (-e "$kimage" ) { + # OK, $kimage exists -- but is not a link + handle_non_symlinks($kimage, $image_dest, $image_name, $src_dir); + } +} + +###################################################################### +###################################################################### +###################################################################### +###################################################################### + +# We may not have any modules installed +if ( -d "$modules_base/$version" ) { + print STDERR "Running depmod.\n"; + my $ret = system("depmod -a $version"); + if ($ret) { + print STDERR "Failed to run depmod\n"; + exit(1); + } +} + + + +sub find_initrd_tool { + my $hostversion = shift; + my $version = shift; + print STDERR "Finding valid ramdisk creators.\n"; + my @ramdisks = + grep { + my $args = + "$_ " . + "--supported-host-version=$hostversion " . + "--supported-target-version=$version " . + "1>/dev/null 2>&1" + ; + system($args) == 0; + } + split (/[:,\s]+/, $ramdisk); +} + +# The initrd symlink should probably be in the same dir that the +# symlinks are in +if ($initrd) { + my $success = 0; + + # Update-initramfs is called slightly different than mkinitrd and + # mkinitramfs. XXX It should really be made compatible with this stuff + # some how. + my $upgrading = 1; + if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + $upgrading = 0; + } + my $ret = system("$ramdisk " . ($upgrading ? "-u" : "-c") . " -k " . $version . " >&2"); + $success = 1 unless $ret; + die "Failed to create initrd image.\n" unless $success; + if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + image_magic("initrd.img", $image_dest); + } + else { + if (! -e "initrd.img") { + handle_missing_link("initrd.img", $image_dest, "initrd.img-$version", + $realimageloc); + } + else { + print STDERR + "Not updating initrd symbolic links since we are being updated/reinstalled \n"; + print STDERR + "($ARGV[1] was configured last, according to dpkg)\n"; + } + } + + if ($initrd && -l "initrd" ) { + unlink "initrd"; + } + + if ($initrd && -l "$image_dir/initrd" && ! $link_in_boot) { + unlink "$image_dir/initrd"; + } +} +else { # Not making an initrd emage + if (-l "initrd.img") { + # Ooh, last image was an initrd image? in any case, we should move it. + my $target = readlink "initrd.img"; + my $real_target = ''; + $real_target = abs_path($target) if defined ($target); + + if (!defined($target) || ! -f "$real_target") { + # Eh. dangling link. can safely be removed. + unlink("initrd.img"); + } else { + if (-l "initrd.img.old" || ! -e "initrd.img.old" ) { + rename("initrd.img", "initrd.img.old"); + } else { + warn "initrd.img.old is not a symlink, not clobbering\n"; + unlink("initrd.img"); + } + } + } +} + +# Warn of a reboot +if (-x $notifier) { + system($notifier); +} + +# Let programs know not to hibernate if the kernel that would be used for +# resume-from-hibernate is likely to differ from the currently running kernel. +system("mountpoint -q /var/run"); +if ($? eq 0) { + system("touch /var/run/do-not-hibernate"); +} + +# Only change the symlinks if we are not being upgraded +if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + image_magic($kimage, $image_dest); +} +else { + if (! -e "$kimage") { + handle_missing_link($kimage, $image_dest, "$kimage-$version", + $realimageloc); + } + else { + print STDERR + "Not updating image symbolic links since we are being updated/reinstalled \n"; + print STDERR + "($ARGV[1] was configured last, according to dpkg)\n"; + } +} + +# We used to have System.* files in / +if (-e "/System.map" || -e "/System.old") { + unlink '/System.map' if -e '/System.map'; + unlink '/System.old' if -e '/System.old'; +} + +# creating some info about kernel and initrd +if ($DEBUG) { + my $ksize=sprintf("%.0f",(stat($realimageloc . + "$kimage-$version"))[7]/1024)."kB"; + my $initrdsize=''; + if ($initrd) { + $initrdsize=sprintf("%.0f",(stat($realimageloc . + "initrd.img-$version"))[7]/1024)."kB"; + } + + print STDERR <<"EOMSG"; +A new kernel image has been installed at $realimageloc$kimage-$version + (Size: $ksize) + +Symbolic links, unless otherwise specified, can be found in $image_dest + +EOMSG + ; + + if ($initrd) { + print STDERR <<"EOMSGA"; + + Initial rootdisk image: ${realimageloc}initrd.img-$version (Size: $initrdsize) +EOMSGA + ; + } +} + +# set the env var stem +$ENV{'STEM'} = "linux"; +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if ($postinst_hook) { + &run_hook("postinst", $postinst_hook); +} + +if (-d "/etc/kernel/postinst.d") { + print STDERR "Examining /etc/kernel/postinst.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postinst.d") && + die "Failed to process /etc/kernel/postinst.d"; +} + +if (-d "/etc/kernel/postinst.d/$version") { + print STDERR "Examining /etc/kernel/postinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postinst.d/$version") && + die "Failed to process /etc/kernel/postinst.d/$version"; +} + +LOADER: { + last unless $do_boot_enable; # Exit if explicitly asked to + + last if $loader =~ /silo/i; # SILO does not have to be executed. + last if $loader =~ /yaboot/i; # yaboot does not have to be executed. + last if $loader =~ /milo/i; # MILO does not have to be executed. + last if $loader =~ /nettrom/i; # NETTROM does not have to be executed. + last if $loader =~ /arcboot/i; # ARCBOOT does not have to be executed. + last if $loader =~ /delo/i; # DELO does not have to be executed. + last if $loader =~ /quik/i; # maintainer asked quik invocation to be ignored + + last unless $loaderloc; + last unless -x $loaderloc; + last unless $do_bootloader; + + if (-T "/etc/$loader.conf") { + # Trust and use the existing lilo.conf. + print STDERR "You already have a $Loader configuration in /etc/$loader.conf\n"; + my $ret = &run_lilo(); + exit $ret if $ret; + } +} + + +sub run_lilo (){ + my $ret; + # Try and figure out if the user really wants lilo to be run -- + # since the default is to run the boot laoder, which is ! grub -- but + # the user may be using grub now, and not changed the default. + + # So, if the user has explicitly asked for the loader to be run, or + # if there is no postinst hook, or if there is no grub installed -- + # we are OK. Or else, we ask. + if ($explicit_do_loader || (! ($postinst_hook && -x '/usr/sbin/grub'))) { + print STDERR "Running boot loader as requested\n"; + } else { + print STDERR "Ok, not running $loader\n"; + } + if ($loader =~ /^lilo/io or $loader =~ /vmelilo/io) { + print STDERR "Testing $loader.conf ... \n"; + unlink $temp_file_name; # security + $ret = system("$loaderloc -t >$temp_file_name 2>&1"); + if ($ret) { + print STDERR "Boot loader test failed\n"; + return $ret; + } + unlink "$temp_file_name"; + print STDERR "Testing successful.\n"; + print STDERR "Installing the "; + print STDERR "partition " if $loader =~ /^lilo/io; + print STDERR "boot sector... \n"; + } + + print STDERR "Running $loaderloc ... \n"; + if ($loader =~ /^elilo/io) { + $ret = system("$loaderloc 2>&1 | tee $temp_file_name"); + } else { + $ret = system("$loaderloc >$temp_file_name 2>&1"); + } + if ($ret) { + print STDERR "Boot loader failed to run\n"; + return $ret; + } + unlink $temp_file_name; + print STDERR "Installation successful.\n"; + return 0; +} + +exit 0; + +__END__ + --- linux-2.6.35.orig/debian/control-scripts/headers-postinst +++ linux-2.6.35/debian/control-scripts/headers-postinst @@ -0,0 +1,126 @@ +#!/usr/bin/perl +# -*- Mode: Cperl -*- +# debian.postinst --- +# Author : Manoj Srivastava ( srivasta@pilgrim.umass.edu ) +# Created On : Sat Apr 27 05:42:43 1996 +# Created On Node : melkor.pilgrim.umass.edu +# Last Modified By : Manoj Srivastava +# Last Modified On : Sat Aug 5 13:20:22 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 45 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# +# +# arch-tag: 1c716174-2f0a-476d-a626-a1322e62503a +# + + +$|=1; + +# Predefined values: +my $version = "=V"; +my $kimage = "=K"; +my $package_name = "linux-image-$version"; + + +# Ignore all invocations uxcept when called on to configure. +exit 0 unless ($ARGV[0] && $ARGV[0] =~ /configure/); + +#known variables +my $image_dest = "/"; +my $realimageloc = "/boot/"; +my $silent_modules = ''; +my $modules_base = '/lib/modules'; +my $CONF_LOC = '/etc/kernel-img.conf'; +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +chdir '/usr/src' or die "Could not chdir to /usr/src:$!"; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $header_postinst_hook = "$1" if /^\s*header_postinst_hook\s*=\s*(\S+)/ig; + } + close CONF; + } +} + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +## Run user hook script here, if any +if (-x "$header_postinst_hook") { + &run_hook("postinst", $header_postinst_hook); +} + +if (-d "/etc/kernel/header_postinst.d") { + print STDERR "Examining /etc/kernel/header_postinst.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +if (-d "/etc/kernel/header_postinst.d/$version") { + print STDERR "Examining /etc/kernel/header_postinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/header_postinst.d/$version") && + die "Failed to process /etc/kernel/header_postinst.d/$version"; +} + +exit 0; + +__END__ --- linux-2.6.35.orig/debian/tools/perf +++ linux-2.6.35/debian/tools/perf @@ -0,0 +1,16 @@ +#!/bin/bash +full_version=`uname -r` + +# Removing flavour from version i.e. generic or server. +flavour_abi=${full_version#*-} +flavour=${flavour_abi#*-} +version=${full_version%-$flavour} +perf="perf_$version" + +if ! which "$perf" > /dev/null; then + echo "$perf not found" >&2 + echo "You may need to install linux-tools-$version" >&2 + exit 2 +fi + +exec "$perf" "$@" --- linux-2.6.35.orig/debian/scripts/config-check +++ linux-2.6.35/debian/scripts/config-check @@ -0,0 +1,389 @@ +#!/usr/bin/perl +# +# check-config -- check the current config for issues +# +use strict; + +my $P = 'check-config'; + +my $test = -1; +if ($ARGV[0] eq '--test') { + $test = $ARGV[1] + 0; +} elsif ($#ARGV != 4) { + die "Usage: $P \n"; +} + +my ($config, $arch, $flavour, $commonconfig, $warn_only) = @ARGV; + +my $checks = "$commonconfig/enforce"; +my %values = (); + +# If we are in overridden then still perform the checks and emit the messages +# but do not return failure. Those items marked FATAL will alway trigger +# failure. +my $fail_exit = 1; +$fail_exit = 0 if ($warn_only eq 'true' || $warn_only eq '1'); +my $exit_val = 0; + +# Predicate execution engine. +sub pred_first { + my ($rest) = @_; + my $depth = 0; + my $off; + my $char; + my $pred; + + for ($off = 0; $off <= length($rest); $off++) { + $char = substr($rest, $off, 1); + if ($char eq '(') { + $depth++; + } elsif ($char eq ')') { + $depth--; + } elsif ($depth == 0 && $char eq '&') { + last; + } elsif ($depth == 0 && $char eq '|') { + last; + } + } + if ($depth > 0) { + die "$P: $rest: missing close parenthesis ')'\n"; + } elsif ($depth < 0) { + die "$P: $rest: missing open parenthesis '('\n"; + } + + ($pred, $rest) = (substr($rest, 0, $off), substr($rest, $off + 1)); + + $pred =~ s/^\s*//; + $pred =~ s/\s*$//; + + #print "pred<$pred> rest<$rest> char<$char>\n"; + ($pred, $rest, $char); +} + +sub pred_do { + my ($pred) = @_; + my (@a) = split(' ', $pred); + + if ($a[0] eq 'arch') { + die "$P: $pred: malformed -- $pred \n" if ($#a != 1); + #print " *** ARCH<$arch ?? $a[1]>\n"; + return ($arch eq $a[1]) + } elsif ($a[0] eq 'flavour') { + die "$P: $pred: malformed -- $pred \n" if ($#a != 1); + #print " *** FLAVOUR<$flavour ?? $a[1]>\n"; + return ($flavour eq $a[1]) + } elsif ($a[0] eq 'value') { + die "$P: $pred: malformed -- $pred \n" if ($#a != 2); + #print " *** CHECK<$a[1] $a[2] ?? " . $values{$a[1]} . ">\n"; + return ($values{$a[1]} eq $a[2]); + } elsif ($a[0] eq 'exists') { + die "$P: $pred: malformed -- $pred \n" if ($#a != 1); + return (defined $values{$a[1]}); + } else { + die "$P: $pred: unknown predicate\n"; + } + return 1; +} +sub pred_exec { + my ($rest) = @_; + my $pred; + my $res; + my $sep; + + #print "pred_exec<$rest>\n"; + + ($pred, $rest, $sep) = pred_first($rest); + + # Leading ! implies inversion. + if ($pred =~ /^\s*!\s*(.*)$/) { + #print " invert<$1>\n"; + $res = !pred_exec($1); + + # Recurse left for complex expressions. + } elsif ($pred =~ /^\s*\((.*)\)\s*$/) { + #print " left<$1>\n"; + $res = pred_exec($1); + + # Check for common syntax issues. + } elsif ($pred eq '') { + if ($sep eq '&' || $sep eq '|') { + die "$P: $pred$rest: malformed binary operator\n"; + } else { + die "$P: $pred$rest: syntax error\n"; + } + + # A predicate, execute it. + } else { + #print " DO<$pred> sep<$sep>\n"; + $res = pred_do($pred); + } + + #print " pre-return res<$res> sep<$sep>\n"; + if ($sep eq '') { + # + + # Recurse right for binary operators -- note these are lazy. + } elsif ($sep eq '&' || $sep eq '|') { + #print " right<$rest> ? sep<$sep> res<$res>\n"; + if ($rest =~ /^\s*($|\||\&)/) { + die "$P: $pred$rest: malformed binary operator\n"; + } + if (($res && $sep eq '&') || (!$res && $sep eq '|')) { + #print " right<$rest>\n"; + $res = pred_exec($rest); + } + + } else { + die "$P: $pred$rest: malformed predicate\n"; + } + #print " return res<$res> sep<$sep>\n"; + return $res; +} + +# +# PREDICATE TESTS +# +my $test_total = 1; +my $test_good = 0; +sub pred_test { + my ($pred, $eres, $eerr) = @_; + my ($res, $err, $fail); + + $test_total++; + if ($test != 0 && $test != $test_total - 1) { + return; + } + + eval { + $res = pred_exec($pred); + }; + $err = $@; + chomp($err); + + $res = !!$res; + $eres = !!$eres; + + $fail = ''; + if (defined $eres && $res != $eres) { + $fail = "result missmatch, expected $eres returned $res"; + } + if (defined $eerr && $err eq '') { + $fail = "error missmatch, expected '$eerr' returned success"; + } elsif (defined $eerr && $err !~ /$eerr/) { + $fail = "error missmatch, expected '$eerr' returned '$err'"; + } elsif (!defined $eerr && $err ne '') { + $fail = "error missmatch, expected success returned '$err'"; + } + + if ($fail eq '') { + $test_good++; + } else { + print "$pred: $test_total: FAIL: $fail\n"; + } + #print "TEST<$pred> eres<$eres> eerr<$eerr> res<$res> err<$err>\n"; +} +if ($test >= 0) { + $arch = 'MYARCH'; + $flavour = 'MYFLAVOUR'; + %values = ( 'ENABLED' => 'y', 'DISABLED' => 'n' ); + + # Errors. + my $eunkn = 'unknown predicate'; + my $epred = 'malformed'; + my $eclose = 'missing close parenthesis'; + my $eopen = 'missing open parenthesis'; + my $ebinary = 'malformed binary operator'; + + # Basic predicate tests. + print "TEST: $test_total: basic predicate tests ...\n"; + + pred_test('nosuchcommand', undef, $eunkn); + pred_test('arch', undef, $epred); + pred_test('arch MYARCH MYARCH', undef, $epred); + pred_test('arch MYARCH', 1, undef); + pred_test('arch NOTMYARCH', 0, undef); + + pred_test('flavour', undef, $epred); + pred_test('flavour MYFLAVOUR myflavour', undef, $epred); + pred_test('flavour MYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR', 0, undef); + + pred_test('value', undef, $epred); + pred_test('value ENABLED', undef, $epred); + pred_test('value ENABLED ENABLED ENABLED', undef, $epred); + pred_test('value ENABLED y', 1, undef); + pred_test('value ENABLED n', 0, undef); + pred_test('value DISABLED n', 1, undef); + pred_test('value DISABLED y', 0, undef); + + pred_test('exists', undef, $epred); + pred_test('exists ENABLED ENABLED', undef, $epred); + pred_test('exists ENABLED', 1, undef); + pred_test('exists DISABLED', 1, undef); + pred_test('exists MISSING', 0, undef); + + print "TEST: $test_total: inversion tests ...\n"; + pred_test('!exists ENABLED', 0, undef); + pred_test('!exists MISSING', 1, undef); + pred_test('!!exists ENABLED', 1, undef); + pred_test('!!exists MISSING', 0, undef); + pred_test('!!!exists ENABLED', 0, undef); + pred_test('!!!exists MISSING', 1, undef); + + print "TEST: $test_total: parentheses tests ...\n"; + pred_test('(exists ENABLED)', 1, undef); + pred_test('((exists ENABLED))', 1, undef); + pred_test('(((exists ENABLED)))', 1, undef); + pred_test('(exists MISSING)', 0, undef); + pred_test('((exists MISSING))', 0, undef); + pred_test('(((exists MISSING)))', 0, undef); + + pred_test('(!exists ENABLED)', 0, undef); + pred_test('((!exists ENABLED))', 0, undef); + pred_test('(((!exists ENABLED)))', 0, undef); + pred_test('(!exists MISSING)', 1, undef); + pred_test('((!exists MISSING))', 1, undef); + pred_test('(((!exists MISSING)))', 1, undef); + + pred_test('((!(exists ENABLED)))', 0, undef); + pred_test('((!(exists MISSING)))', 1, undef); + pred_test('(!((exists ENABLED)))', 0, undef); + pred_test('(!((exists MISSING)))', 1, undef); + pred_test('!(((exists ENABLED)))', 0, undef); + pred_test('!(((exists MISSING)))', 1, undef); + pred_test('!((!(exists ENABLED)))', 1, undef); + pred_test('!((!(exists MISSING)))', 0, undef); + pred_test('!(!(!(exists ENABLED)))', 0, undef); + pred_test('!(!(!(exists MISSING)))', 1, undef); + + pred_test('(', undef, $eclose); + pred_test('()(', undef, $eclose); + pred_test('(())(', undef, $eclose); + pred_test('((()))(', undef, $eclose); + pred_test('(()', undef, $eclose); + pred_test('((())', undef, $eclose); + pred_test('(((()))', undef, $eclose); + pred_test('(()()', undef, $eclose); + pred_test('((())()', undef, $eclose); + + pred_test(')', undef, $eopen); + pred_test('())', undef, $eopen); + pred_test('(()))', undef, $eopen); + pred_test('((())))', undef, $eopen); + + print "TEST: $test_total: binary and tests ...\n"; + + pred_test('exists ENABLED &', undef, $ebinary); + pred_test('& exists ENABLED', undef, $ebinary); + pred_test('exists ENABLED & & exists ENABLED', undef, $ebinary); + + pred_test('exists MISSING & exists MISSING', 0, undef); + pred_test('exists MISSING & exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists MISSING', 0, undef); + pred_test('exists ENABLED & exists ENABLED', 1, undef); + + pred_test('exists MISSING & exists MISSING & exists MISSING', 0, undef); + pred_test('exists MISSING & exists MISSING & exists ENABLED', 0, undef); + pred_test('exists MISSING & exists ENABLED & exists MISSING', 0, undef); + pred_test('exists MISSING & exists ENABLED & exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists MISSING & exists MISSING', 0, undef); + pred_test('exists ENABLED & exists MISSING & exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists ENABLED & exists MISSING', 0, undef); + pred_test('exists ENABLED & exists ENABLED & exists ENABLED', 1, undef); + + print "TEST: $test_total: binary or tests ...\n"; + + pred_test('exists ENABLED |', undef, $ebinary); + pred_test('| exists ENABLED', undef, $ebinary); + pred_test('exists ENABLED | | exists ENABLED', undef, $ebinary); + + pred_test('exists MISSING | exists MISSING', 0, undef); + pred_test('exists MISSING | exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists MISSING', 1, undef); + pred_test('exists ENABLED | exists ENABLED', 1, undef); + + pred_test('exists MISSING | exists MISSING | exists MISSING', 0, undef); + pred_test('exists MISSING | exists MISSING | exists ENABLED', 1, undef); + pred_test('exists MISSING | exists ENABLED | exists MISSING', 1, undef); + pred_test('exists MISSING | exists ENABLED | exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists MISSING | exists MISSING', 1, undef); + pred_test('exists ENABLED | exists MISSING | exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists ENABLED | exists MISSING', 1, undef); + pred_test('exists ENABLED | exists ENABLED | exists ENABLED', 1, undef); + + print "TEST: $test_total: binary or/and combination tests ...\n"; + + pred_test('exists MISSING | exists MISSING & exists MISSING', 0, undef); + pred_test('exists MISSING | exists MISSING & exists ENABLED', 0, undef); + pred_test('exists MISSING | exists ENABLED & exists MISSING', 0, undef); + pred_test('exists MISSING | exists ENABLED & exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists MISSING & exists MISSING', 1, undef); + pred_test('exists ENABLED | exists MISSING & exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists ENABLED & exists MISSING', 1, undef); + pred_test('exists ENABLED | exists ENABLED & exists ENABLED', 1, undef); + + print "TEST: $test_total: binary and/or combination tests ...\n"; + + pred_test('exists MISSING & exists MISSING | exists MISSING', 0, undef); + pred_test('exists MISSING & exists MISSING | exists ENABLED', 0, undef); + pred_test('exists MISSING & exists ENABLED | exists MISSING', 0, undef); + pred_test('exists MISSING & exists ENABLED | exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists MISSING | exists MISSING', 0, undef); + pred_test('exists ENABLED & exists MISSING | exists ENABLED', 1, undef); + pred_test('exists ENABLED & exists ENABLED | exists MISSING', 1, undef); + pred_test('exists ENABLED & exists ENABLED | exists ENABLED', 1, undef); + + $test_total--; + print "TEST: $test_good/$test_total succeeded\n"; + + exit $exit_val; +} + +# Load up the current configuration values -- FATAL if this fails +print "$P: $config: loading config\n"; +open(CONFIG, "<$config") || die "$P: $config: open failed -- $! -- aborting\n"; +while () { + # Pull out values. + /^#*\s*(CONFIG_\w+)[\s=](.*)$/ or next; + if ($2 eq 'is not set') { + $values{$1} = 'n'; + } else { + $values{$1} = $2; + } +} +close(CONFIG); + +# FATAL: Check if we have an enforcement list. +my $pass = 0; +my $total = 0; +my $line = ''; +print "$P: $checks: loading checks\n"; +open(CHECKS, "<$checks") || die "$P: $checks: open failed -- $! -- aborting\n"; +while () { + /^#/ && next; + chomp; + + $line .= $_; + if ($line =~ /\\$/) { + chop($line); + $line .= " "; + next; + } + $line =~ /^\s*$/ && next; + + #print "CHECK: <$line>\n"; + $total++; + my $result = pred_exec($line); + if (!$result) { + print "$P: FAIL: $line\n"; + $exit_val = $fail_exit; + } else { + $pass++; + } + + $line = ''; +} +close(CHECKS); + +print "$P: $pass/$total checks passed -- exit $exit_val\n"; +exit $exit_val; --- linux-2.6.35.orig/debian/scripts/control-create +++ linux-2.6.35/debian/scripts/control-create @@ -0,0 +1,25 @@ +#!/bin/bash + +. debian/debian.env + +vars=$1 + +. $vars + +if [ "$is_sub" = "" ]; then + flavour=$(basename $vars | sed 's/.*\.//') + stub=${DEBIAN}/control.d/flavour-control.stub +else + flavour=$(basename $vars .vars) + stub=${DEBIAN}/sub-flavours/control.stub +fi + +cat $stub | grep -v '^#' | sed \ + -e "s#FLAVOUR#$flavour#g" \ + -e "s#DESC#$desc#g" \ + -e "s#ARCH#$arch#g" \ + -e "s#SUPPORTED#$supported#g" \ + -e "s#TARGET#$target#g" \ + -e "s#BOOTLOADER#$bootloader#g" \ + -e "s#=PROVIDES=#$provides#g" \ + -e "s#=CONFLICTS=#$conflicts#g" --- linux-2.6.35.orig/debian/scripts/module-check +++ linux-2.6.35/debian/scripts/module-check @@ -0,0 +1,120 @@ +#!/usr/bin/perl -w + +$flavour = shift; +$prev_abidir = shift; +$abidir = shift; +$skipmodule = shift; + +print "II: Checking modules for $flavour..."; + +if (-f "$prev_abidir/ignore.modules" + or -f "$prev_abidir/$flavour.ignore.modules") { + print "explicitly ignoring modules\n"; + exit(0); +} + +if (not -f "$abidir/$flavour.modules" or not -f + "$prev_abidir/$flavour.modules") { + print "previous or current modules file missing!\n"; + print " $abidir/$flavour.modules\n"; + print " $prev_abidir/$flavour.modules\n"; + if (defined($skipmodule)) { + exit(0); + } else { + exit(1); + } +} + +print "\n"; + +my %modules; +my %modules_ignore; +my $missing = 0; +my $new = 0; +my $errors = 0; + +# See if we have any ignores +if (-f "$prev_abidir/../modules.ignore") { + my $ignore = 0; + open(IGNORE, "< $prev_abidir/../modules.ignore") or + die "Could not open $prev_abidir/../modules.ignore"; + print " reading modules to ignore..."; + while () { + chomp; + next if /\s*#/; + $modules_ignore{$_} = 1; + $ignore++; + } + close(IGNORE); + print "read $ignore modules.\n"; +} + +# Read new modules first +print " reading new modules..."; +$new_count = 0; +open(NEW, "< $abidir/$flavour.modules") or + die "Could not open $abidir/$flavour.modules"; +while () { + chomp; + $modules{$_} = 1; + $new_count++; +} +close(NEW); +print "read $new_count modules.\n"; + +# Now the old modules, checking for missing ones +print " reading old modules..."; +$old_count = 0; +open(OLD, "< $prev_abidir/$flavour.modules") or + die "Could not open $prev_abidir/$flavour.modules"; +while () { + chomp; + if (not defined($modules{$_})) { + print "\n" if not $missing; + $missing++; + if (not defined($modules_ignore{$_})) { + print " MISS: $_\n"; + $errors++; + } else { + print " MISS: $_ (ignored)\n"; + } + } else { + $modules{$_}++; + } + $old_count++; +} +close(OLD); +# Check for new modules +foreach $mod (keys(%modules)) { + if ($modules{$mod} < 2) { + print "\n" if not $missing and not $new; + print " NEW : $mod\n"; + $new++; + } +} +if ($new or $missing) { + print " read $old_count modules : new($new) missing($missing)\n"; +} else { + print "read $old_count modules.\n"; +} + + +# Let's see where we stand... +if ($errors) { + if (defined($skipmodule)) { + print "WW: Explicitly asked to ignore failures (probably not good)\n"; + } else { + print "EE: Missing modules (start begging for mercy)\n"; + exit 1 + } +} + +if ($new) { + print "II: New modules (you've been busy, wipe the poop off your nose)\n"; +} else { + print "II: No new modules (hope you're happy, slacker)\n"; +} + +print "II: Done\n"; + +exit(0); --- linux-2.6.35.orig/debian/scripts/link-headers +++ linux-2.6.35/debian/scripts/link-headers @@ -0,0 +1,42 @@ +#!/bin/bash -e + +. debian/debian.env + +hdrdir="$1" +symdir="$2" +flavour="$3" + +echo "Symlinking and copying headers for $flavour..." + +excludes="( -path ./debian -prune -o -path ./${DEBIAN} -prune -o -path ./.git ) -prune -o" + +( +find . $excludes -type f \ + \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \ + -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) -print +find ./include ./scripts -name .gitignore -prune -o -type f -print +find ./include -mindepth 1 -maxdepth 1 $excludes -type d -print +) | ( +while read file; do + dir=$file + lastdir=$file + + if [ -e "$hdrdir/$file" -o -L "$hdrdir/$file" ]; then + continue + fi + + while [ ! -e "$hdrdir/$dir" -a ! -L "$hdrdir/$dir" ]; do + lastdir=$dir + dir=`dirname $dir` + done + # If the last item to exist is a symlink we assume all is good + if [ ! -L "$hdrdir/$dir" ]; then + # Turns things like "./foo" into "../" + deref="`echo -n $lastdir | sed -e 's/^\.//' -e's,/[^/]*,../,g'`" + item="`echo -n $lastdir | sed -e 's/^\.\///'`" + ln -s $deref$symdir/$item $hdrdir/$item + fi +done +) + +exit --- linux-2.6.35.orig/debian/scripts/abi-check +++ linux-2.6.35/debian/scripts/abi-check @@ -0,0 +1,210 @@ +#!/usr/bin/perl -w + +my $flavour = shift; +my $prev_abinum = shift; +my $abinum = shift; +my $prev_abidir = shift; +my $abidir = shift; +my $skipabi = shift; + +my $fail_exit = 1; +my $EE = "EE:"; +my $errors = 0; +my $abiskip = 0; + +my $count; + +print "II: Checking ABI for $flavour...\n"; + +if (-f "$prev_abidir/ignore" + or -f "$prev_abidir/$flavour.ignore" or "$skipabi" eq "true") { + print "WW: Explicitly asked to ignore ABI, running in no-fail mode\n"; + $fail_exit = 0; + $abiskip = 1; + $EE = "WW:"; +} + +if ($prev_abinum != $abinum) { + print "II: Different ABI's, running in no-fail mode\n"; + $fail_exit = 0; + $EE = "WW:"; +} + +if (not -f "$abidir/$flavour" or not -f "$prev_abidir/$flavour") { + print "EE: Previous or current ABI file missing!\n"; + print " $abidir/$flavour\n" if not -f "$abidir/$flavour"; + print " $prev_abidir/$flavour\n" if not -f "$prev_abidir/$flavour"; + + # Exit if the ABI files are missing, but return status based on whether + # skip ABI was indicated. + if ("$abiskip" eq "1") { + exit(0); + } else { + exit(1); + } +} + +my %symbols; +my %symbols_ignore; +my %modules_ignore; +my %module_syms; + +# See if we have any ignores +my $ignore = 0; +print " Reading symbols/modules to ignore..."; + +for $file ("$prev_abidir/../blacklist", "$prev_abidir/../../perm-blacklist") { + if (-f $file) { + open(IGNORE, "< $file") or + die "Could not open $file"; + while () { + chomp; + if ($_ =~ m/M: (.*)/) { + $modules_ignore{$1} = 1; + } else { + $symbols_ignore{$_} = 1; + } + $ignore++; + } + close(IGNORE); + } +} +print "read $ignore symbols/modules.\n"; + +sub is_ignored($$) { + my ($mod, $sym) = @_; + + die "Missing module name in is_ignored()" if not defined($mod); + die "Missing symbol name in is_ignored()" if not defined($sym); + + if (defined($symbols_ignore{$sym}) or defined($modules_ignore{$mod})) { + return 1; + } + return 0; +} + +# Read new syms first +print " Reading new symbols ($abinum)..."; +$count = 0; +open(NEW, "< $abidir/$flavour") or + die "Could not open $abidir/$flavour"; +while () { + chomp; + m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/; + $symbols{$4}{'type'} = $1; + $symbols{$4}{'loc'} = $2; + $symbols{$4}{'hash'} = $3; + $module_syms{$2} = 0; + $count++; +} +close(NEW); +print "read $count symbols.\n"; + +# Now the old symbols, checking for missing ones +print " Reading old symbols ($prev_abinum)..."; +$count = 0; +open(OLD, "< $prev_abidir/$flavour") or + die "Could not open $prev_abidir/$flavour"; +while () { + chomp; + m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/; + $symbols{$4}{'old_type'} = $1; + $symbols{$4}{'old_loc'} = $2; + $symbols{$4}{'old_hash'} = $3; + $count++; +} +close(OLD); + +print "read $count symbols.\n"; + +print "II: Checking for missing symbols in new ABI..."; +$count = 0; +foreach $sym (keys(%symbols)) { + if (!defined($symbols{$sym}{'type'})) { + print "\n" if not $count; + printf(" MISS : %s%s\n", $sym, + is_ignored($symbols{$sym}{'old_loc'}, $sym) ? " (ignored)" : ""); + $count++ if !is_ignored($symbols{$sym}{'old_loc'}, $sym); + } +} +print " " if $count; +print "found $count missing symbols\n"; +if ($count) { + print "$EE Symbols gone missing (what did you do!?!)\n"; + $errors++; +} + + +print "II: Checking for new symbols in new ABI..."; +$count = 0; +foreach $sym (keys(%symbols)) { + if (!defined($symbols{$sym}{'old_type'})) { + print "\n" if not $count; + print " NEW : $sym\n"; + $count++; + } +} +print " " if $count; +print "found $count new symbols\n"; +if ($count and $prev_abinum == $abinum) { + print "WW: Found new symbols within same ABI. Not recommended\n"; +} + +print "II: Checking for changes to ABI...\n"; +$count = 0; +my $moved = 0; +my $changed_type = 0; +my $changed_hash = 0; +foreach $sym (keys(%symbols)) { + if (!defined($symbols{$sym}{'old_type'}) or + !defined($symbols{$sym}{'type'})) { + next; + } + + # Changes in location don't hurt us, but log it anyway + if ($symbols{$sym}{'loc'} ne $symbols{$sym}{'old_loc'}) { + printf(" MOVE : %-40s : %s => %s\n", $sym, $symbols{$sym}{'old_loc'}, + $symbols{$sym}{'loc'}); + $moved++; + } + + # Changes to export type are only bad if new type isn't + # EXPORT_SYMBOL. Changing things to GPL are bad. + if ($symbols{$sym}{'type'} ne $symbols{$sym}{'old_type'}) { + printf(" TYPE : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_type'}. + $symbols{$sym}{'type'}, is_ignored($symbols{$sym}{'loc'}, $sym) + ? " (ignored)" : ""); + $changed_type++ if $symbols{$sym}{'type'} ne "EXPORT_SYMBOL" + and !is_ignored($symbols{$sym}{'loc'}, $sym); + } + + # Changes to the hash are always bad + if ($symbols{$sym}{'hash'} ne $symbols{$sym}{'old_hash'}) { + printf(" HASH : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_hash'}, + $symbols{$sym}{'hash'}, is_ignored($symbols{$sym}{'loc'}, $sym) + ? " (ignored)" : ""); + $changed_hash++ if !is_ignored($symbols{$sym}{'loc'}, $sym); + $module_syms{$symbols{$sym}{'loc'}}++; + } +} + +print "WW: $moved symbols changed location\n" if $moved; +print "$EE $changed_type symbols changed export type and weren't ignored\n" if $changed_type; +print "$EE $changed_hash symbols changed hash and weren't ignored\n" if $changed_hash; + +$errors++ if $changed_hash or $changed_type; +if ($changed_hash) { + print "II: Module hash change summary...\n"; + foreach $mod (sort { $module_syms{$b} <=> $module_syms{$a} } keys %module_syms) { + next if ! $module_syms{$mod}; + printf(" %-40s: %d\n", $mod, $module_syms{$mod}); + } +} + +print "II: Done\n"; + +if ($errors) { + exit($fail_exit); +} else { + exit(0); +} --- linux-2.6.35.orig/debian/scripts/sub-flavour +++ linux-2.6.35/debian/scripts/sub-flavour @@ -0,0 +1,67 @@ +#!/bin/bash + +. debian/debian.env + +echo "SUB_PROCESS $FROM => $TO" + +export from_pkg="linux-image-$ABI_RELEASE-$FROM" +export to_pkg="linux-image-$ABI_RELEASE-$TO" + +from_moddir="debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM" +to_moddir="debian/$to_pkg/lib/modules/$ABI_RELEASE-$FROM" + +install -d "debian/$to_pkg/boot" +install -m644 debian/$from_pkg/boot/{vmlinuz,System.map,config}-$ABI_RELEASE-$FROM \ + debian/$to_pkg/boot/ + +# +# Print some warnings if there are files in the sub-flavours list +# that do not actually exist. +# +cat ${DEBIAN}/sub-flavours/$TO.list | while read line +do +( + cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel; + # + # If its a wildcard, then check that there are files that match. + # + if echo "$line" | grep '\*' > /dev/null + then + if [ `eval find "$line" -name '*.ko' 2>/dev/null|wc -l` -lt 1 ] + then + echo SUB_INST Warning - No files in $line + fi + # + # Else it should be a single file reference. + # + elif [ ! -f "$line" ] + then + echo SUB_INST Warning - could not find "$line" + fi +) +done + +cat ${DEBIAN}/sub-flavours/$TO.list | while read line; do + ( + cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel; + if echo "$line" | grep '\*' > /dev/null + then + eval find "$line" -name '*.ko' 2>/dev/null || true + elif [ -f "$line" ] + then + echo "$line" + fi + ); +done | while read mod; do + echo "SUB_INST checking: $mod" + fromdir="/lib/modules/$ABI_RELEASE-$FROM/" + egrep "^($fromdir)?kernel/$mod:" \ + $from_moddir/modules.dep | sed -e "s|^$fromdir||" -e 's/://' -e 's/ /\n/g' | \ + while read m; do + m="${fromdir}$m" + test -f debian/$to_pkg/$m && continue + echo "SUB_INST installing: $m" + install -D -m644 debian/$from_pkg/$m \ + debian/$to_pkg/$m + done +done --- linux-2.6.35.orig/debian/scripts/module-inclusion +++ linux-2.6.35/debian/scripts/module-inclusion @@ -0,0 +1,51 @@ +#!/bin/bash + +# +# Build a new directory of modules based on an inclusion list. +# The includsion list format must be a bash regular expression. +# +# usage: $0 ROOT INCLUSION_LIST +# example: $0 debian/build/build-virtual debian.master/control.d/virtual.inclusion-list +ROOT=$1 +ILIST=$2 + +NROOT=${ROOT}.new + +# +# Prep a destination directory. +# +mkdir -p ${NROOT} +rsync -a --exclude="*.ko" ${ROOT}/ ${NROOT} + +cat ${ILIST} |while read i +do + # + # 'find' blurts a warning if it cannot find any ko files. + # + if echo "$i" | grep '\*' > /dev/null + then + (cd ${ROOT}; eval find "${i}" -name "*.ko") |while read f + do + mkdir -p ${NROOT}/`dirname $f` + cp ${ROOT}/$f ${NROOT}/$f + done + else + if [ -f "${ROOT}/$i" ] + then + mkdir -p ${NROOT}/`dirname $i` + cp ${ROOT}/$i ${NROOT}/$i + else + echo Warning: Could not find ${ROOT}/$i + fi + fi + +done + +# +# Cleanup +# +rm -rf ${ROOT} +mv ${NROOT} ${ROOT} + +exit 0 + --- linux-2.6.35.orig/debian/scripts/misc/splitconfig.pl +++ linux-2.6.35/debian/scripts/misc/splitconfig.pl @@ -0,0 +1,111 @@ +#!/usr/bin/perl -w + +%allconfigs = (); +%common = (); + +print "Reading config's ...\n"; + +opendir(DIR, "."); + +while (defined($config = readdir(DIR))) { + # Only config.* + next if $config !~ /^config\..*/; + # Nothing that is disabled, or remnant + next if $config =~ /.*\.(default|disabled|stub)$/; + + %{$allconfigs{$config}} = (); + + print " processing $config ... "; + + open(CONFIG, "< $config"); + + while () { + # Skip comments + /^#*\s*CONFIG_(\w+)[\s=](.*)$/ or next; + + ${$allconfigs{$config}}{$1} = $2; + + $common{$1} = $2; + } + + close(CONFIG); + + print "done.\n"; +} + +closedir(DIR); + +print "\n"; + +print "Merging lists ... \n"; + +# %options - pointer to flavour config inside the allconfigs array +for $config (keys(%allconfigs)) { + my %options = %{$allconfigs{$config}}; + + print " processing $config ... "; + + for $key (keys(%common)) { + next if not defined $common{$key}; + + # If we don't have the common option, then it isn't + # common. If we do have that option, it must have the same + # value. EXCEPT where this file does not have a value at all + # which may safely be merged with any other value; the value + # will be elided during recombination of the parts. + if (!defined($options{$key})) { + # Its ok really ... let it merge + } elsif (not defined($options{$key})) { + undef $common{$key}; + } elsif ($common{$key} ne $options{$key}) { + undef $common{$key}; + } + } + + print "done.\n"; +} + +print "\n"; + +print "Creating common config ... "; + +open(COMMON, "> config.common"); +print COMMON "#\n# Common config options automatically generated by splitconfig.pl\n#\n"; + +for $key (sort(keys(%common))) { + if (not defined $common{$key}) { + print COMMON "# CONFIG_$key is UNMERGABLE\n"; + } elsif ($common{$key} eq "is not set") { + print COMMON "# CONFIG_$key is not set\n"; + } else { + print COMMON "CONFIG_$key=$common{$key}\n"; + } +} +close(COMMON); + +print "done.\n\n"; + +print "Creating stub configs ...\n"; + +for $config (keys(%allconfigs)) { + my %options = %{$allconfigs{$config}}; + + print " processing $config ... "; + + open(STUB, "> $config"); + print STUB "#\n# Config options for $config automatically generated by splitconfig.pl\n#\n"; + + for $key (sort(keys(%options))) { + next if defined $common{$key}; + + if ($options{$key} =~ /^is /) { + print STUB "# CONFIG_$key $options{$key}\n"; + } else { + print STUB "CONFIG_$key=$options{$key}\n"; + } + } + + close(STUB); + + print "done.\n"; +} --- linux-2.6.35.orig/debian/scripts/misc/git-ubuntu-log +++ linux-2.6.35/debian/scripts/misc/git-ubuntu-log @@ -0,0 +1,232 @@ +#!/usr/bin/perl -w + +use strict; +use Text::Wrap; + +my $kernel_auth = "Upstream Kernel Changes"; + +my (%map, @reverts); +my $pstate = 1; +my $no_kern_log = 0; +my $print_shas = 0; +my $first_print = 1; + +while (@ARGV) { + my $opt = $ARGV[0]; + shift; + if ($opt eq "--no-kern-log") { + $no_kern_log = 1; + } elsif ($opt eq "--print-shas") { + $print_shas = 1; + } else { + print STDERR "Unknown options: $opt\n"; + exit(1); + } +} + +sub check_reverts($) { + my ($entry) = @_; + my ($check); + + foreach $check (reverse @reverts) { + my $desc = "Revert \"" . $entry->{'desc'} . "\""; + if ($check->{'desc'} eq $desc) { + @reverts = grep($_->{'desc'} ne $desc, @reverts); + return 1; + } + } + + return 0; +} + +sub add_entry($) { + my ($entry) = @_; + my $key = $entry->{'author'}; + + # store description in array, in email->{desc list} map + if (exists $map{$key}) { + # grab ref + my $obj = $map{$key}; + + # add desc to array + push(@$obj, $entry); + } else { + # create new array, containing 1 item + my @arr = ($entry); + + # store ref to array + $map{$key} = \@arr; + } +} + +sub shortlog_entry($$$$$) { + my ($name, $desc, $bug, $cve, $commit) = @_; + my $entry; + + $desc =~ s#/pub/scm/linux/kernel/git/#/.../#g; + $desc =~ s#\[PATCH\] ##g; + + $desc =~ s#^\s*##g; + $desc =~ s# *UBUNTU: ##g; + + $entry->{'desc'} = $desc; + if ($bug ne '') { + $entry->{'bugno'} = $bug; + } + $entry->{'cve'} = $cve; + $entry->{'commit'} = $commit; + $entry->{'author'} = $name; + + if ($desc =~ /^Revert "/) { + push(@reverts, $entry); + return; + } + + return if check_reverts($entry); + + add_entry($entry); +} + +# sort comparison function +sub by_name($$) { + my ($a, $b) = @_; + + uc($a) cmp uc($b); +} + +sub shortlog_output { + my ($obj, $key, $entry); + + foreach $key (sort by_name keys %map) { + next if $key eq $kernel_auth and $no_kern_log; + + print "\n" unless $first_print; + $first_print = 0; + + # output author + printf " [ %s ]\n\n", $key; + + # output author's 1-line summaries + $obj = $map{$key}; + foreach $entry (reverse @$obj) { + print wrap(" * ", " ", $entry->{'desc'}) . "\n"; + # For non upstream changes, add other info. + if ($key ne $kernel_auth) { + if ($print_shas) { + print " - GIT-SHA " . $entry->{'commit'} . + "\n"; + } + } + if (defined($entry->{'bugno'})) { + print " - LP: #" . $entry->{'bugno'} . "\n"; + } + if (defined($entry->{'cve'})) { + print " - " . $entry->{'cve'} . "\n"; + } + } + } +} + +sub changelog_input { + my ($author, $desc, $commit, $entry, $cve); + + while () { + # get commit + if ($pstate == 1) { + next unless /^commit (.*)/; + + $commit = $1; + + $pstate++; + } + + # get author and email + elsif ($pstate == 2) { + my ($email); + + next unless /^[Aa]uthor:?\s*(.*?)\s*<(.*)>/; + + $author = $1; + $email = $2; + $desc = undef; + $cve = undef; + + # cset author fixups + if (!$author) { + $author = $email; + } + $pstate++; + } + + # skip to blank line + elsif ($pstate == 3) { + next unless /^\s*$/; + $pstate++; + } + + # skip to non-blank line + elsif ($pstate == 4) { + next unless /^\s*?(.*)/; + my $ignore = 0; + my $do_ignore = 0; + my $bug = undef; + my %bugz = (); + my $k; + + # skip lines that are obviously not + # a 1-line cset description + next if /^\s*From: /; + + chomp; + $desc = $1; + + if ($desc =~ /^ *(Revert "|)UBUNTU:/) { + $do_ignore = 1; + } else { + $do_ignore = 0; + $author = $kernel_auth; + $ignore = 1 if $desc =~ /Merge /; + } + while () { + $ignore = 1 if ($do_ignore && /^ *Ignore: yes/i); + if (/^ *Bug: *(#|)([0-9#,\s]*)\s*$/i) { + foreach $k (split('(,|\s)\s*(#|)', $2)) { + $bugz{$k} = 1 if (($k ne '') and ($k =~ /[0-9]+/)); + } + } + elsif (/^ *BugLink: *http.*:\/\/.*\/([0-9]+)/i) { + $bugz{$1} = 1; + } + elsif (/^ *(CVE-.*)/) { + $cve = $1 + } + last if /^commit /; + } + + $bug = join(", #", sort keys(%bugz)); + if (!$ignore) { + &shortlog_entry($author, $desc, $bug, + $cve, $commit, 0); + } + + $pstate = 1; + if ($_ && /^commit (.*)/) { + $commit = $1; + $pstate++; + } + } + + else { + die "invalid parse state $pstate"; + } + } + + foreach $entry (@reverts) { + add_entry($entry); + } +} + +&changelog_input; +&shortlog_output; + +exit(0); --- linux-2.6.35.orig/debian/scripts/misc/insert-changes.pl +++ linux-2.6.35/debian/scripts/misc/insert-changes.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl -w + +my $debian; +$droot = $ARGV[0] if (defined $ARGV[0]); +$droot = 'debian' if (!defined $droot); +$debian = $ARGV[1] if (defined $ARGV[1]); +$debian = 'debian.master' if (!defined $debian); + +system("make -s -f $droot/rules printchanges > $debian/changes"); + +open(CHANGELOG, "< $debian/changelog") or die "Cannot open changelog"; +open(CHANGES, "< $debian/changes") or die "Cannot open new changes"; +open(NEW, "> $debian/changelog.new") or die "Cannot open new changelog"; + +$printed = 0; + +while () { + if (/^ CHANGELOG: /) { + next if $printed; + + while () { + print NEW; + } + + $printed = 1; + } else { + print NEW; + } +} + +close(NEW); +close(CHANGES); +close(CHANGELOG); + +rename("$debian/changelog.new", "$debian/changelog"); +unlink("$debian/changes"); --- linux-2.6.35.orig/debian/scripts/misc/getabis +++ linux-2.6.35/debian/scripts/misc/getabis @@ -0,0 +1,76 @@ +#!/bin/bash + +. debian/debian.env + +if [ "$#" != "2" ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi + +ver=$1 +revision=$2 +abi=$(echo $revision | awk -F. '{print $1}') + +verabi=$ver-$abi +verfull=$ver-$revision + +WGET="wget --quiet -c" + +abidir="`pwd`/$DEBIAN/abi/$verfull" +tmpdir="`pwd`/abi-tmp-$verfull" +origdir="`pwd`" + +test -d $tmpdir || mkdir $tmpdir + +getall() { + arch=$1 + shift + + mkdir -p $abidir/$arch + + for sub in $@; do + if [ -f $abidir/$arch/$sub ]; then + echo "Exists: $sub" + continue + fi + echo -n "Fetching $sub..." + filename=linux-image-${verabi}-${sub}_${verfull}_${arch}.deb + cd $tmpdir + for r in "${repo_list[@]}" + do + if ! [ -f $filename ]; then + $WGET $r/$filename + fi + done + if [ "$?" = "0" ]; then + echo -n "extracting..." + dpkg-deb --extract $filename tmp + if [ -f tmp/boot/abi-* ]; then + mv tmp/boot/abi-* $abidir/$arch/$sub + else + echo -n "NO ABI FILE..." + fi + (cd tmp; find lib/modules/$verabi-$sub/kernel -name '*.ko') | \ + sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > \ + $abidir/$arch/$sub.modules + rm -rf tmp $filename + echo "done." + else + echo "FAILED." + fi + cd $origdir + done +} + +# MAIN + +# Setup abi directory +mkdir -p $abidir +echo $abi > $abidir/abiname + +# NOTE: The flavours are hardcoded, because they may have changed from the +# current build. + +. $DEBIAN/etc/getabis + +rmdir $tmpdir --- linux-2.6.35.orig/debian/scripts/misc/retag +++ linux-2.6.35/debian/scripts/misc/retag @@ -0,0 +1,34 @@ +#!/usr/bin/perl -w + +open(TAGS, "git tag -l |") or die "Could not get list of tags"; +@tags = ; +close(TAGS); + +open(LOGS, "git log --pretty=short |") or die "ERROR: Calling git log"; +my $commit = ""; + +while () { + my $origtag; + + if (m|^commit (.*)$|) { + $commit = $1; + next; + } + + m|\s*UBUNTU: (Ubuntu-2\.6\..*)| or next; + + $tag = $1; + + ($origtag) = grep(/^$tag.orig$/, @tags); + + if (!defined($origtag)) { + print "I: Adding original tag for $tag\n"; + system("git tag -m $tag $tag.orig $tag"); + } + + print "I: Tagging $tag => $commit\n"; + + system("git tag -f -m $tag $tag $commit"); +} + +close(LOGS); --- linux-2.6.35.orig/debian/scripts/misc/insert-ubuntu-changes +++ linux-2.6.35/debian/scripts/misc/insert-ubuntu-changes @@ -0,0 +1,58 @@ +#!/usr/bin/perl + +if ($#ARGV != 2) { + die "Usage: $0 \n"; +} +my ($changelog, $end, $start) = @ARGV; + +$end =~ s/.*\.//; +$start =~ s/.*\.//; + +my @changes = (); +my $output = 0; +open(CHG, ") { + if (/^\S+\s+\((.*\.(\d+))\)/) { + if ($2 <= $end) { + last; + } + if ($2 == $start) { + $output = 1; + } + if ($output) { + push(@changes, "\n [ Ubuntu: $1 ]\n\n"); + next; + } + } + next if ($output == 0); + + next if (/^\s*$/); + next if (/^\s--/); + next if (/^\s\s[^\*\s]/); + + push(@changes, $_); +} +close(CHG); + +open(CHANGELOG, "< $changelog") or die "Cannot open changelog"; +open(NEW, "> $changelog.new") or die "Cannot open new changelog"; + +$printed = 3; +while () { + if (/^ CHANGELOG: /) { + $printed--; + print NEW; + if ($printed == 0) { + print NEW @changes; + } + next; + } + print NEW; +} + +close(NEW); +close(CHANGELOG); + +rename("$changelog.new", "$changelog"); --- linux-2.6.35.orig/debian/scripts/misc/kernelconfig +++ linux-2.6.35/debian/scripts/misc/kernelconfig @@ -0,0 +1,171 @@ +#!/bin/bash + +. debian/debian.env + +# Script to merge all configs and run 'make silentoldconfig' on it to wade out bad juju. +# Then split the configs into distro-commmon and flavour-specific parts + +# We have to be in the top level kernel source directory +if [ ! -f MAINTAINERS ] || [ ! -f Makefile ]; then + echo "This does not appear to be the kernel source directory." 1>&2 + exit 1 +fi + +mode=${1:?"Usage: $0 [oldconfig|editconfig]"} +case "$mode" in + oldconfig) ;; # All is good + defaultconfig) ;; # All is good + editconfig) ;; # All is good + genconfig) ;; # All is good + *) echo "$0 called with invalid mode" 1>&2 + exit 1 ;; +esac +kerneldir="`pwd`" +confdir="$kerneldir/${DEBIAN}/config" +sharedconfdir="$kerneldir/debian.master/config" +variant="$2" + +. $DEBIAN/etc/kernelconfig + +bindir="`pwd`/${DROOT}/scripts/misc" +common_conf="$confdir/config.common.$family" +tmpdir=`mktemp -d` +mkdir "$tmpdir/CONFIGS" + +if [ "$mode" = "genconfig" ]; then + keep=1 + mode="oldconfig" + test -d CONFIGS || mkdir CONFIGS +fi + +for arch in $archs; do + rm -rf build + mkdir build + + # Map debian archs to kernel archs + case "$arch" in + amd64) kernarch="x86_64" ;; + lpia) kernarch="x86" ;; + sparc) kernarch="sparc64" ;; + armel) kernarch="arm" ;; + *) kernarch="$arch" ;; + esac + + archconfdir=$confdir/$arch + flavourconfigs=$(cd $archconfdir && ls config.flavour.*) + + # Merge configs + # We merge config.common.ubuntu + config.common. + + # config.flavour. + + for config in $flavourconfigs; do + fullconf="$tmpdir/$arch-$config-full" + case $config in + *) + : >"$fullconf" + if [ -f $common_conf ]; then + cat $common_conf >> "$fullconf" + fi + if [ -f $archconfdir/config.common.$arch ]; then + cat $archconfdir/config.common.$arch >> "$fullconf" + fi + cat "$archconfdir/$config" >>"$fullconf" + if [ -f $confdir/OVERRIDES ]; then + cat $confdir/OVERRIDES >> "$fullconf" + fi + ;; + esac + done + + for config in $flavourconfigs; do + if [ -f $archconfdir/$config ]; then + fullconf="$tmpdir/$arch-$config-full" + cat "$fullconf" > build/.config + # Call oldconfig or menuconfig + case "$mode" in + oldconfig) + # Weed out incorrect config parameters + echo "* Run silentoldconfig on $arch/$config ..." + make O=`pwd`/build ARCH=$kernarch silentoldconfig ;; + defaultconfig) + # Weed out incorrect config parameters + echo "* Run oldconfig on $arch/$config ..." + make O=`pwd`/build ARCH=$kernarch oldconfig ;; + editconfig) + # Interactively edit config parameters + while : ; do + echo -n "Do you want to edit config: $arch/$config? [Y/n] " + read choice + + case "$choice" in + y* | Y* | "" ) + make O=`pwd`/build ARCH=$kernarch menuconfig + break ;; + n* | N* ) + break ;; + *) + echo "Entry not valid" + esac + done + ;; + *) # Bad! + exit 1 ;; + esac + cat build/.config > $archconfdir/$config + cat build/.config > "$tmpdir/CONFIGS/$arch-$config" + if [ "$keep" = "1" ]; then + cat build/.config > CONFIGS/$arch-$config + fi + else + echo "!! Config not found $archconfdir/$config..." + fi + done + + echo "Running splitconfig.pl for $arch" + echo + + # Can we make this more robust by avoiding $tmpdir completely? + # This approach was used for now because I didn't want to change + # splitconfig.pl + (cd $archconfdir; $bindir/splitconfig.pl; mv config.common \ + config.common.$arch; cp config.common.$arch $tmpdir) +done + +rm -f $common_conf + +# Now run splitconfig.pl on all the config.common. copied to +# $tmpdir +(cd $tmpdir; $bindir/splitconfig.pl) +( + cd $confdir; + rm -f *-full + grep -v 'is UNMERGABLE' <$tmpdir/config.common >$common_conf + for arch in $archs; do + grep -v 'is UNMERGABLE' <$tmpdir/config.common.$arch \ + >$arch/config.common.$arch + done +) + +echo "" +echo "Running config-check for all configurations ..." +echo "" +fail=0 +for arch in $archs; do + archconfdir=$confdir/$arch + flavourconfigs=$(cd $archconfdir && ls config.flavour.*) + for config in $flavourconfigs; do + if [ -f $archconfdir/$config ]; then + fullconf="$tmpdir/CONFIGS/$arch-$config" + "$bindir/../config-check" "$fullconf" "$arch" "$config" "$sharedconfdir" "0" || let "fail=$fail+1" + fi + done +done + +if [ "$fail" != 0 ]; then + echo "" + echo "*** ERROR: $fail config-check failures detected" + echo "" +fi + +rm -rf build + --- linux-2.6.35.orig/debian/source/format +++ linux-2.6.35/debian/source/format @@ -0,0 +1 @@ +1.0 --- linux-2.6.35.orig/debian/commit-templates/missing-modules +++ linux-2.6.35/debian/commit-templates/missing-modules @@ -0,0 +1,3 @@ +UBUNTU: build/modules: Add modules that have intentionally gone missing + +Ignore: yes --- linux-2.6.35.orig/debian/commit-templates/newrelease +++ linux-2.6.35/debian/commit-templates/newrelease @@ -0,0 +1,3 @@ +UBUNTU: Start new release + +Ignore: yes --- linux-2.6.35.orig/debian/commit-templates/upstream-patch +++ linux-2.6.35/debian/commit-templates/upstream-patch @@ -0,0 +1,27 @@ +# Ubuntu commit template. +# +# NOTE: This gets reformatted for debian/changelog +# +# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be +# referenced to the Author in the debian/changelog entry. +# +# The text following is the short message that will be placed in the +# changelog. Extra text on the following lines will be ignored, but left +# in the git commit. Lines with # will be ignored in the commit. +# +# OriginalAuthor allows for alternate attribution. +# +# OriginalLocation allows for a URL or description of where the patch came +# from. +# +# BugLink is a URL to a Malone bug. +# +# Ignore: yes will keep this commit from showing up in the changelog. +# +UBUNTU: [Upstream] + +# OriginalAuthor: +# OriginalLocation: +# BugLink: http://bugs.launchpad.net/bugs/ +# Ignore: yes +# Other text below here. --- linux-2.6.35.orig/debian/commit-templates/config-updates +++ linux-2.6.35/debian/commit-templates/config-updates @@ -0,0 +1,15 @@ +# +# This template is used for commit messages that don't need to +# show up in debian/changelog. Administrative stuff like config +# updates, ABI bumps, etc. Setting 'Ignore: yes' prevents +# 'debian/rules insertchanges' from inserting this commit meesage +# as a changelog entry. +# +# Please give a one-line description of the config change followed +# by a detailed explanation if necessary + +UBUNTU: [Config] XXXX + +# BugLink: http://bugs.launchpad.net/bugs/ +# Ignore: yes +# Other text below here. --- linux-2.6.35.orig/debian/commit-templates/bumpabi +++ linux-2.6.35/debian/commit-templates/bumpabi @@ -0,0 +1,3 @@ +UBUNTU: Bump ABI + +Ignore: yes --- linux-2.6.35.orig/debian/commit-templates/external-driver +++ linux-2.6.35/debian/commit-templates/external-driver @@ -0,0 +1,20 @@ +# Ubuntu external driver commit. +# +# NOTE: This gets reformatted for README.Ubuntu-External-Drivers and +# debian/changelog. +# +# This is only needed when a driver is added, updated or removed. It is +# not needed when patches or fixes are applied to the driver. If the +# driver is being removed, add the line: +# +# Removing: yes +# +# to the commit, and you can remove all other tags (except UBUNTU:). +# +UBUNTU: + +ExternalDriver: +Description: +Url: +Mask: +Version: --- linux-2.6.35.orig/debian/commit-templates/sauce-patch +++ linux-2.6.35/debian/commit-templates/sauce-patch @@ -0,0 +1,40 @@ +# Ubuntu commit template. +# +# NOTE: This gets reformatted for debian/changelog +# +# +# SAUCE refers to the fact that this patch might not go upstream, but we need to +# carry it to successive releases. In most cases you DONOT want to use this +# template. +# +# An example of a SAUCE patch is the ACPI DSDT-in-initramfs patch which has been +# refused upstream, but still provides useful functionality to users with broken +# BIOSes. +# +#------------------------------------------------------------------------- +# +# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be +# referenced to the Author in the debian/changelog entry. +# +# The text following is the short message that will be placed in the +# changelog. Extra text on the following lines will be ignored, but left +# in the git commit. Lines with # will be ignored in the commit. +# +# OriginalAuthor allows for alternate attribution. +# +# OriginalLocation allows for a URL or description of where the patch came +# from. +# +# BugLink is a URL to a Malone bug. +# +# Ignore: yes will keep this commit from showing up in the changelog. +# +UBUNTU: SAUCE: + + + +# OriginalAuthor: +# OriginalLocation: +# BugLink: http://bugs.launchpad.net/bugs/ +# Ignore: yes +# Other text below here. --- linux-2.6.35.orig/debian/rules.d/5-udebs.mk +++ linux-2.6.35/debian/rules.d/5-udebs.mk @@ -0,0 +1,38 @@ +# Do udebs if not disabled in the arch-specific makefile +binary-udebs: binary-debs debian/control +ifeq ($(disable_d_i),) + @$(MAKE) --no-print-directory -f $(DROOT)/rules DEBIAN=$(DEBIAN) \ + do-binary-udebs +endif + +do-binary-udebs: + dh_testdir + dh_testroot + + # unpack the kernels into a temporary directory + mkdir -p debian/d-i-${arch} + + imagelist=$$(cat $(builddir)/kernel-versions | grep ^${arch} | awk '{print $$4}') && \ + for i in $$imagelist; do \ + dpkg -x $$(ls ../linux-image-$$i\_$(release)-$(revision)_${arch}.deb) \ + debian/d-i-${arch}; \ + /sbin/depmod -b debian/d-i-${arch} $$i; \ + done + + # kernel-wedge will error if no modules unless this is touched + touch $(CURDIR)/debian/build/no-modules + + touch ignore-dups + export SOURCEDIR=$(CURDIR)/debian/d-i-${arch} && \ + cd $(builddir) && \ + kernel-wedge install-files && \ + kernel-wedge check + + # Build just the udebs + dilist=$$(dh_listpackages -s | grep "\-di$$") && \ + [ -z "$dilist" ] || \ + for i in $$dilist; do \ + dh_fixperms -p$$i; \ + dh_gencontrol -p$$i; \ + dh_builddeb -p$$i; \ + done --- linux-2.6.35.orig/debian/rules.d/2-binary-arch.mk +++ linux-2.6.35/debian/rules.d/2-binary-arch.mk @@ -0,0 +1,404 @@ +# We don't want make removing intermediary stamps +.SECONDARY : + +# Prepare the out-of-tree build directory +ifeq ($(do_full_source),true) +build_cd = cd $(builddir)/build-$*; # +build_O = +else +build_cd = +build_O = O=$(builddir)/build-$* +endif + +prepare-%: $(stampdir)/stamp-prepare-% + @# Empty for make to be happy +$(stampdir)/stamp-prepare-%: $(stampdir)/stamp-prepare-tree-% prepare-checks-% + @touch $@ +$(stampdir)/stamp-prepare-tree-%: target_flavour = $* +$(stampdir)/stamp-prepare-tree-%: $(commonconfdir)/config.common.$(family) $(archconfdir)/config.common.$(arch) $(archconfdir)/config.flavour.% + @echo "Preparing $*..." + install -d $(builddir)/build-$* + touch $(builddir)/build-$*/ubuntu-build + [ "$(do_full_source)" != 'true' ] && true || \ + rsync -a --exclude debian --exclude debian.master --exclude $(DEBIAN) * $(builddir)/build-$* + cat $^ | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(release)$(extraversion)"/' > $(builddir)/build-$*/.config + find $(builddir)/build-$* -name "*.ko" | xargs rm -f + $(build_cd) $(kmake) $(build_O) silentoldconfig prepare scripts + touch $@ + +# Do the actual build, including image and modules +build-%: $(stampdir)/stamp-build-% + @# Empty for make to be happy +$(stampdir)/stamp-build-%: target_flavour = $* +$(stampdir)/stamp-build-%: prepare-% + @echo "Building $*..." + $(build_cd) $(kmake) $(build_O) $(conc_level) $(build_image) + $(build_cd) $(kmake) $(build_O) $(conc_level) modules + @touch $@ + +# Install the finished build +install-%: pkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$* +install-%: bindoc = $(pkgdir)/usr/share/doc/$(bin_pkg_name)-$* +install-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym +install-%: basepkg = $(hdrs_pkg_name) +install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$* +install-%: target_flavour = $* +install-%: $(stampdir)/stamp-build-% checks-% + dh_testdir + dh_testroot + dh_clean -k -p$(bin_pkg_name)-$* + dh_clean -k -p$(hdrs_pkg_name)-$* + dh_clean -k -p$(dbg_pkg_name)-$* + + # The main image + # compress_file logic required because not all architectures + # generate a zImage automatically out of the box +ifeq ($(compress_file),) + install -m644 -D $(builddir)/build-$*/$(kernel_file) \ + $(pkgdir)/boot/$(install_file)-$(abi_release)-$* +else + install -d $(pkgdir)/boot + gzip -c9v $(builddir)/build-$*/$(kernel_file) > \ + $(pkgdir)/boot/$(install_file)-$(abi_release)-$* + chmod 644 $(pkgdir)/boot/$(install_file)-$(abi_release)-$* +endif + + install -m644 $(builddir)/build-$*/.config \ + $(pkgdir)/boot/config-$(abi_release)-$* + install -m644 $(abidir)/$* \ + $(pkgdir)/boot/abi-$(abi_release)-$* + install -m644 $(builddir)/build-$*/System.map \ + $(pkgdir)/boot/System.map-$(abi_release)-$* +ifeq ($(no_dumpfile),) + makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \ + -x $(builddir)/build-$*/vmlinux +endif + + $(build_cd) $(kmake) $(build_O) modules_install \ + INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(pkgdir)/ \ + INSTALL_FW_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$* + + # + # Remove all modules not in the inclusion list. + # + if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \ + $(SHELL) $(DROOT)/scripts/module-inclusion $(pkgdir)/lib/modules/$(abi_release)-$*/kernel \ + $(DEBIAN)/control.d/$(target_flavour).inclusion-list 2>&1 | \ + tee $(target_flavour).inclusion-list.log; \ + /sbin/depmod -b $(pkgdir) -ea -F $(pkgdir)/boot/System.map-$(abi_release)-$* \ + $(abi_release)-$* 2>&1 |tee $(target_flavour).depmod.log; \ + fi + +ifeq ($(no_dumpfile),) + makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \ + -x $(builddir)/build-$*/vmlinux +endif + rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/build + rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/source + + # Some initramfs-tools specific modules + install -d $(pkgdir)/lib/modules/$(abi_release)-$*/initrd + if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko ]; then\ + ln -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko \ + $(pkgdir)/lib/modules/$(abi_release)-$*/initrd/; \ + fi + + # Now the image scripts + install -d $(pkgdir)/DEBIAN + for script in postinst postrm preinst prerm; do \ + sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/g' \ + -e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \ + $(DROOT)/control-scripts/$$script > $(pkgdir)/DEBIAN/$$script; \ + chmod 755 $(pkgdir)/DEBIAN/$$script; \ + done + + # Install the full changelog. +ifeq ($(do_doc_package),true) + install -d $(bindoc) + cat $(DEBIAN)/changelog $(DEBIAN)/changelog.historical | \ + gzip -9 >$(bindoc)/changelog.Debian.old.gz + chmod 644 $(bindoc)/changelog.Debian.old.gz +endif + +ifneq ($(skipsub),true) + for sub in $($(*)_sub); do \ + if ! (TO=$$sub FROM=$* ABI_RELEASE=$(abi_release) $(SHELL) \ + $(DROOT)/scripts/sub-flavour); then exit 1; fi; \ + /sbin/depmod -b debian/$(bin_pkg_name)-$$sub \ + -ea -F debian/$(bin_pkg_name)-$$sub/boot/System.map-$(abi_release)-$* \ + $(abi_release)-$*; \ + install -d debian/$(bin_pkg_name)-$$sub/DEBIAN; \ + for script in postinst postrm preinst prerm; do \ + sed -e 's/=V/$(abi_release)-$*/g' \ + -e 's/=K/$(install_file)/g' \ + -e 's/=L/$(loader)/g' \ + -e 's@=B@$(build_arch)@g' \ + $(DROOT)/control-scripts/$$script > \ + debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\ + chmod 755 debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\ + done; \ + done +endif + +ifneq ($(skipdbg),true) + # Debug image is simple + install -m644 -D $(builddir)/build-$*/vmlinux \ + $(dbgpkgdir)/usr/lib/debug/boot/vmlinux-$(abi_release)-$* + $(build_cd) $(kmake) $(build_O) modules_install \ + INSTALL_MOD_PATH=$(dbgpkgdir)/usr/lib/debug + rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/build + rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/source + rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/modules.* + rm -fr $(dbgpkgdir)/usr/lib/debug/lib/firmware +endif + + # The flavour specific headers image + # TODO: Would be nice if we didn't have to dupe the original builddir + install -d -m755 $(hdrdir) + cat $(builddir)/build-$*/.config | \ + sed -e 's/.*CONFIG_DEBUG_INFO=.*/# CONFIG_DEBUG_INFO is not set/g' > \ + $(hdrdir)/.config + chmod 644 $(hdrdir)/.config + $(kmake) O=$(hdrdir) silentoldconfig prepare scripts + # We'll symlink this stuff + rm -f $(hdrdir)/Makefile + rm -rf $(hdrdir)/include2 + # powerpc seems to need some .o files for external module linking. Add them in. +ifeq ($(arch),powerpc) + mkdir -p $(hdrdir)/arch/powerpc/lib + cp $(builddir)/build-$*/arch/powerpc/lib/*.o $(hdrdir)/arch/powerpc/lib +endif + # Script to symlink everything up + $(SHELL) $(DROOT)/scripts/link-headers "$(hdrdir)" "$(basepkg)" "$*" + # Setup the proper asm symlink + rm -f $(hdrdir)/include/asm + ln -s asm-$(asm_link) $(hdrdir)/include/asm + # The build symlink + install -d debian/$(basepkg)-$*/lib/modules/$(abi_release)-$* + ln -s /usr/src/$(basepkg)-$* \ + debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*/build + # And finally the symvers + install -m644 $(builddir)/build-$*/Module.symvers \ + $(hdrdir)/Module.symvers + + # Now the header scripts + install -d $(CURDIR)/debian/$(basepkg)-$*/DEBIAN + for script in postinst; do \ + sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/g' \ + $(DROOT)/control-scripts/headers-$$script > \ + $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \ + chmod 755 $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \ + done + + # At the end of the package prep, call the tests + DPKG_ARCH="$(arch)" KERN_ARCH="$(build_arch)" FLAVOUR="$*" \ + VERSION="$(abi_release)" REVISION="$(revision)" \ + PREV_REVISION="$(prev_revision)" ABI_NUM="$(abinum)" \ + PREV_ABI_NUM="$(prev_abinum)" BUILD_DIR="$(builddir)/build-$*" \ + INSTALL_DIR="$(pkgdir)" SOURCE_DIR="$(CURDIR)" \ + run-parts -v $(DROOT)/tests + + # + # Remove files which are generated at installation by postinst, + # except for modules.order and modules.builtin + # + # NOTE: need to keep this list in sync with postrm + # + mkdir $(pkgdir)/lib/modules/$(abi_release)-$*/_ + mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.order \ + $(pkgdir)/lib/modules/$(abi_release)-$*/_ + if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin ] ; then \ + mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin \ + $(pkgdir)/lib/modules/$(abi_release)-$*/_; \ + fi + rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.* + mv $(pkgdir)/lib/modules/$(abi_release)-$*/_/* \ + $(pkgdir)/lib/modules/$(abi_release)-$* + rmdir $(pkgdir)/lib/modules/$(abi_release)-$*/_ + +headers_tmp := $(CURDIR)/debian/tmp-headers +headers_dir := $(CURDIR)/debian/linux-libc-dev + +hmake := $(MAKE) -C $(CURDIR) O=$(headers_tmp) SUBLEVEL=$(SUBLEVEL) \ + EXTRAVERSION=-$(abinum) INSTALL_HDR_PATH=$(headers_tmp)/install \ + SHELL="$(SHELL)" ARCH=$(header_arch) + +install-arch-headers: + dh_testdir + dh_testroot + dh_clean -k -plinux-libc-dev + + rm -rf $(headers_tmp) + install -d $(headers_tmp) $(headers_dir)/usr/include/ + + $(hmake) $(defconfig) + mv $(headers_tmp)/.config $(headers_tmp)/.config.old + sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \ + -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \ + $(headers_tmp)/.config.old > $(headers_tmp)/.config + $(hmake) silentoldconfig + $(hmake) headers_install + + ( cd $(headers_tmp)/install/include/ && \ + find . -name '.' -o -name '.*' -prune -o -print | \ + cpio -pvd --preserve-modification-time \ + $(headers_dir)/usr/include/ ) + + rm -rf $(headers_tmp) + +binary-arch-headers: install-arch-headers + dh_testdir + dh_testroot +ifeq ($(do_libc_dev_package),true) +ifneq ($(DEBIAN),debian.master) + echo "non-master branch building linux-libc-dev, aborting" + exit 1 +endif + dh_installchangelogs -plinux-libc-dev + dh_installdocs -plinux-libc-dev + dh_compress -plinux-libc-dev + dh_fixperms -plinux-libc-dev + dh_installdeb -plinux-libc-dev + dh_gencontrol -plinux-libc-dev -- $(libc_dev_version) + dh_md5sums -plinux-libc-dev + dh_builddeb -plinux-libc-dev +endif + +binary-%: pkgimg = $(bin_pkg_name)-$* +binary-%: pkghdr = $(hdrs_pkg_name)-$* +binary-%: dbgpkg = $(bin_pkg_name)-$*-dbgsym +binary-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym +binary-%: install-% + dh_testdir + dh_testroot + + dh_installchangelogs -p$(pkgimg) + dh_installdocs -p$(pkgimg) + dh_compress -p$(pkgimg) + dh_fixperms -p$(pkgimg) + dh_installdeb -p$(pkgimg) + dh_shlibdeps -p$(pkgimg) + dh_gencontrol -p$(pkgimg) + dh_md5sums -p$(pkgimg) + dh_builddeb -p$(pkgimg) -- -Zbzip2 -z9 + + dh_installchangelogs -p$(pkghdr) + dh_installdocs -p$(pkghdr) + dh_compress -p$(pkghdr) + dh_fixperms -p$(pkghdr) + dh_shlibdeps -p$(pkghdr) + dh_installdeb -p$(pkghdr) + dh_gencontrol -p$(pkghdr) + dh_md5sums -p$(pkghdr) + dh_builddeb -p$(pkghdr) + +ifneq ($(skipsub),true) + @set -e; for sub in $($(*)_sub); do \ + pkg=$(bin_pkg_name)-$$sub; \ + dh_installchangelogs -p$$pkg; \ + dh_installdocs -p$$pkg; \ + dh_compress -p$$pkg; \ + dh_fixperms -p$$pkg; \ + dh_shlibdeps -p$$pkg; \ + dh_installdeb -p$$pkg; \ + dh_gencontrol -p$$pkg; \ + dh_md5sums -p$$pkg; \ + dh_builddeb -p$$pkg; \ + done +endif + +ifneq ($(skipdbg),true) + dh_installchangelogs -p$(dbgpkg) + dh_installdocs -p$(dbgpkg) + dh_compress -p$(dbgpkg) + dh_fixperms -p$(dbgpkg) + dh_installdeb -p$(dbgpkg) + dh_gencontrol -p$(dbgpkg) + dh_md5sums -p$(dbgpkg) + dh_builddeb -p$(dbgpkg) + + # Hokay...here's where we do a little twiddling... + # Renaming the debug package prevents it from getting into + # the primary archive, and therefore prevents this very large + # package from being mirrored. It is instead, through some + # archive admin hackery, copied to http://ddebs.ubuntu.com. + # + mv ../$(dbgpkg)_$(release)-$(revision)_$(arch).deb \ + ../$(dbgpkg)_$(release)-$(revision)_$(arch).ddeb + set -e; \ + if grep -qs '^Build-Debug-Symbols: yes$$' /CurrentlyBuilding; then \ + sed -i '/^$(dbgpkg)_/s/\.deb /.ddeb /' debian/files; \ + else \ + grep -v '^$(dbgpkg)_.*$$' debian/files > debian/files.new; \ + mv debian/files.new debian/files; \ + fi + # Now, the package wont get into the archive, but it will get put + # into the debug system. +endif +ifneq ($(full_build),false) + # Clean out this flavours build directory. + rm -rf $(builddir)/build-$* + # Clean out the debugging package source directory. + rm -rf $(dbgpkgdir) +endif + +$(stampdir)/stamp-flavours: + @echo $(flavours) > $@ + +# +# per-architecture packages +# +$(stampdir)/stamp-prepare-perarch: + @echo "Preparing perarch ..." +ifeq ($(do_tools),true) + install -d $(builddir)/tools-$* + for i in *; do ln -s $(CURDIR)/$$i $(builddir)/tools-$*/; done + rm $(builddir)/tools-$*/tools + rsync -a tools/ $(builddir)/tools-$*/tools/ +endif + touch $@ + +$(stampdir)/stamp-build-perarch: prepare-perarch +ifeq ($(do_tools),true) + cd $(builddir)/tools-$*/tools/perf && make +endif + @touch $@ + +install-perarch: toolspkgdir = $(CURDIR)/debian/$(tools_pkg_name) +install-perarch: $(stampdir)/stamp-build-perarch + # Add the tools. +ifeq ($(do_tools),true) + install -d $(toolspkgdir)/usr/bin + install -s -m755 $(builddir)/tools-$*/tools/perf/perf \ + $(toolspkgdir)/usr/bin/perf_$(abi_release) +endif + +binary-perarch: toolspkg = $(tools_pkg_name) +binary-perarch: install-perarch + @# Empty for make to be happy +ifeq ($(do_tools),true) + dh_installchangelogs -p$(toolspkg) + dh_installdocs -p$(toolspkg) + dh_compress -p$(toolspkg) + dh_fixperms -p$(toolspkg) + dh_shlibdeps -p$(toolspkg) + dh_installdeb -p$(toolspkg) + dh_gencontrol -p$(toolspkg) + dh_md5sums -p$(toolspkg) + dh_builddeb -p$(toolspkg) +endif + +binary-debs: binary-perarch $(stampdir)/stamp-flavours $(addprefix binary-,$(flavours)) + +build-arch-deps-$(do_flavour_image_package) += $(addprefix build-,$(flavours)) +build-arch: $(build-arch-deps-true) + +binary-arch-deps-$(do_flavour_image_package) = binary-debs +ifeq ($(AUTOBUILD),) +binary-arch-deps-$(do_flavour_image_package) += binary-udebs +endif +binary-arch-deps-$(do_libc_dev_package) += binary-arch-headers +ifneq ($(do_common_headers_indep),true) +binary-arch-deps-$(do_flavour_header_package) += binary-headers +endif +binary-arch: $(binary-arch-deps-true) --- linux-2.6.35.orig/debian/rules.d/0-common-vars.mk +++ linux-2.6.35/debian/rules.d/0-common-vars.mk @@ -0,0 +1,200 @@ +# +# The source package name will be the first token from $(DEBIAN)/changelog +# +src_pkg_name=$(shell sed -n '1s/^\(.*\) (.*).*$$/\1/p' $(DEBIAN)/changelog) + +# Get some version info +series := maverick +release := $(shell sed -n '1s/^$(src_pkg_name).*(\(.*\)-.*).*$$/\1/p' $(DEBIAN)/changelog) +revisions := $(shell sed -n 's/^$(src_pkg_name)\ .*($(release)-\(.*\)).*$$/\1/p' $(DEBIAN)/changelog | tac) +revision ?= $(word $(words $(revisions)),$(revisions)) +prev_revisions := $(filter-out $(revision),0.0 $(revisions)) +prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions)) + +family=ubuntu + +# This is an internally used mechanism for the daily kernel builds. It +# creates packages whose ABI is suffixed with a minimal representation of +# the current git HEAD sha. If .git/HEAD is not present, then it uses the +# uuidgen program, +# +# AUTOBUILD can also be used by anyone wanting to build a custom kernel +# image, or rebuild the entire set of Ubuntu packages using custom patches +# or configs. +AUTOBUILD= + +# +# This is a way to support some external variables. A good example is +# a local setup for ccache and distcc See LOCAL_ENV_CC and +# LOCAL_ENV_DISTCC_HOSTS in the definition of kmake. +# For example: +# LOCAL_ENV_CC="ccache distcc" +# LOCAL_ENV_DISTCC_HOSTS="localhost 10.0.2.5 10.0.2.221" +# +-include $(CURDIR)/../.$(series)-env + +ifneq ($(AUTOBUILD),) +skipabi = true +skipmodule = true +skipdbg = true +gitver=$(shell if test -f .git/HEAD; then cat .git/HEAD; else uuidgen; fi) +gitverpre=$(shell echo $(gitver) | cut -b -3) +gitverpost=$(shell echo $(gitver) | cut -b 38-40) +abi_suffix = -$(gitverpre)$(gitverpost) +endif + +ifneq ($(NOKERNLOG),) +ubuntu_log_opts += --no-kern-log +endif +ifneq ($(PRINTSHAS),) +ubuntu_log_opts += --print-shas +endif + +# Get the kernels own extra version to be added to the release signature. +extraversion=$(shell awk '/EXTRAVERSION =/ { print $$3 }' in DEB_BUILD_OPTIONS (see #209008) +# +# These 2 environment variables set the -j value of the kernel build. For example, +# CONCURRENCY_LEVEL=16 fakeroot $(DEBIAN)/rules binary-debs +# or +# DEB_BUILD_OPTIONS=parallel=16 fakeroot $(DEBIAN)/rules binary-debs +# +# The default is to use the number of CPUs. +# +COMMA=, +DEB_BUILD_OPTIONS_PARA = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) +ifneq (,$(DEB_BUILD_OPTIONS_PARA)) + CONCURRENCY_LEVEL := $(DEB_BUILD_OPTIONS_PARA) +endif + +ifeq ($(CONCURRENCY_LEVEL),) + # Check the environment + CONCURRENCY_LEVEL := $(shell echo $$CONCURRENCY_LEVEL) + # No? Then build with the number of CPUs on the host. + ifeq ($(CONCURRENCY_LEVEL),) + CONCURRENCY_LEVEL := $(shell expr `getconf _NPROCESSORS_ONLN` \* 1) + endif + # Oh hell, give 'em one + ifeq ($(CONCURRENCY_LEVEL),) + CONCURRENCY_LEVEL := 1 + endif +endif + +conc_level = -j$(CONCURRENCY_LEVEL) + +# target_flavour is filled in for each step +kmake = make ARCH=$(build_arch) \ + EXTRAVERSION=-$(abinum)-$(target_flavour) \ + CONFIG_DEBUG_SECTION_MISMATCH=y SUBLEVEL=$(SUBLEVEL) \ + KBUILD_BUILD_VERSION="$(uploadnum)" \ + LOCALVERSION= localver-extra= +ifneq ($(LOCAL_ENV_CC),) +kmake += CC=$(LOCAL_ENV_CC) DISTCC_HOSTS=$(LOCAL_ENV_DISTCC_HOSTS) +endif --- linux-2.6.35.orig/debian/rules.d/1-maintainer.mk +++ linux-2.6.35/debian/rules.d/1-maintainer.mk @@ -0,0 +1,141 @@ +# The following targets are for the maintainer only! do not run if you don't +# know what they do. + +.PHONY: printenv updateconfigs printchanges insertchanges startnewrelease diffupstream help updateportsconfigs editportsconfigs + +help: + @echo "These are the targets in addition to the normal $(DEBIAN) ones:" + @echo + @echo " printenv : Print some variables used in the build" + @echo + @echo " updateconfigs : Update core arch configs" + @echo + @echo " editconfigs : Update core arch configs interractively" + @echo " genconfigs : Generate core arch configs in CONFIGS/*" + @echo + @echo " updateportsconfigs : Update ports arch configs" + @echo + @echo " editportsconfigs : Update ports arch configs interactivly" + @echo " genportconfigs : Generate ports arch configs in CONFIGS/*" + @echo + @echo " printchanges : Print the current changelog entries (from git)" + @echo + @echo " insertchanges : Insert current changelog entries (from git)" + @echo + @echo " startnewrelease : Start a new changelog set" + @echo + @echo " diffupstream : Diff stock kernel code against upstream (git)" + @echo + @echo " help : If you are kernel hacking, you need the professional" + @echo " version of this" + @echo + @echo "Environment variables:" + @echo + @echo " NOKERNLOG : Do not add upstream kernel commits to changelog" + @echo " CONCURRENCY_LEVEL=X" + @echo " : Use -jX for kernel compile" + @echo " PRINTSHAS : Include SHAs for commits in changelog" + +printdebian: + @echo "$(DEBIAN)" + +updateconfigs: + dh_testdir; + $(SHELL) $(DROOT)/scripts/misc/kernelconfig oldconfig + rm -rf build + +defaultconfigs: + dh_testdir; + yes "" | $(SHELL) $(DROOT)/scripts/misc/kernelconfig defaultconfig + rm -rf build + +editconfigs: + dh_testdir + $(SHELL) $(DROOT)/scripts/misc/kernelconfig editconfig + rm -rf build + +genconfigs: + dh_testdir + $(SHELL) $(DROOT)/scripts/misc/kernelconfig genconfig + rm -rf build + +updateportsconfigs: + dh_testdir; + $(SHELL) $(DROOT)/scripts/misc/kernelconfig oldconfig ports + rm -rf build + +editportsconfigs: + dh_testdir + $(SHELL) $(DROOT)/scripts/misc/kernelconfig editconfig ports + rm -rf build + +genportsconfigs: + dh_testdir + $(SHELL) $(DROOT)/scripts/misc/kernelconfig genconfig ports + rm -rf build + +printenv: + dh_testdir + @echo "src package name = $(src_pkg_name)" + @echo "release = $(release)" + @echo "revisions = $(revisions)" + @echo "revision = $(revision)" + @echo "uploadnum = $(uploadnum)" + @echo "prev_revisions = $(prev_revisions)" + @echo "prev_revision = $(prev_revision)" + @echo "abinum = $(abinum)" + @echo "gitver = $(gitver)" + @echo "flavours = $(flavours)" + @echo "skipabi = $(skipabi)" + @echo "skipmodule = $(skipmodule)" + @echo "skipdbg = $(skipdbg)" + @echo "ubuntu_log_opts = $(ubuntu_log_opts)" +ifneq ($(SUBLEVEL),) + @echo "SUBLEVEL = $(SUBLEVEL)" +endif + @echo "CONCURRENCY_LEVEL = $(CONCURRENCY_LEVEL)" + @echo "bin package name = $(bin_pkg_name)" + @echo "hdr package name = $(hdrs_pkg_name)" + @echo "doc package name = $(doc_pkg_name)" + @echo "do_doc_package = $(do_doc_package)" + @echo "do_doc_package_content = $(do_doc_package_content)" + @echo "do_source_package = $(do_source_package)" + @echo "do_source_package_content = $(do_source_package_content)" + @echo "do_libc_dev_package = $(do_libc_dev_package)" + @echo "do_flavour_image_package = $(do_flavour_image_package)" + @echo "do_flavour_header_package = $(do_flavour_header_package)" + @echo "do_common_headers_indep = $(do_common_headers_indep)" + @echo "do_full_source = $(do_full_source)" + @echo "do_tools = $(do_tools)" + @echo "full_build = $(full_build)" + @echo "libc_dev_version = $(libc_dev_version)" + +printchanges: + @baseCommit=$$(git log --pretty=format:'%H %s' | \ + awk '/UBUNTU: '".*Ubuntu-$(release)-$(prev_revision)"'$$/ { print $$1; exit }'); \ + git log "$$baseCommit"..HEAD | \ + perl -w -f $(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts) + +insertchanges: + @perl -w -f $(DROOT)/scripts/misc/insert-changes.pl $(DROOT) $(DEBIAN) + +diffupstream: + @git diff-tree -p refs/remotes/linux-2.6/master..HEAD $(shell ls | grep -vE '^(ubuntu|$(DEBIAN)|\.git.*)') + +startnewrelease: + dh_testdir + @nextminor=$(shell expr `echo $(revision) | awk -F. '{print $$2}'` + 1); \ + now="$(shell date -R)"; \ + echo "Creating new changelog set for $(abi_release).$$nextminor..."; \ + echo -e "$(src_pkg_name) ($(abi_release).$$nextminor) UNRELEASED; urgency=low\n" > $(DEBIAN)/changelog.new; \ + echo " CHANGELOG: Do not edit directly. Autogenerated at release." >> \ + $(DEBIAN)/changelog.new; \ + echo " CHANGELOG: Use the printchanges target to see the curent changes." \ + >> $(DEBIAN)/changelog.new; \ + echo " CHANGELOG: Use the insertchanges target to create the final log." \ + >> $(DEBIAN)/changelog.new; \ + echo -e "\n -- $$DEBFULLNAME <$$DEBEMAIL> $$now\n" >> \ + $(DEBIAN)/changelog.new ; \ + cat $(DEBIAN)/changelog >> $(DEBIAN)/changelog.new; \ + mv $(DEBIAN)/changelog.new $(DEBIAN)/changelog + --- linux-2.6.35.orig/debian/rules.d/4-checks.mk +++ linux-2.6.35/debian/rules.d/4-checks.mk @@ -0,0 +1,34 @@ +# Check ABI for package against last release (if not same abinum) +abi-%: $(abidir)/% + @# Empty for make to be happy +$(abidir)/%: $(stampdir)/stamp-build-% + install -d $(abidir) + sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/' \ + $(builddir)/build-$*/Module.symvers | sort > $@ + +abi-check-%: $(abidir)/% + @perl -f $(DROOT)/scripts/abi-check "$*" "$(prev_abinum)" "$(abinum)" \ + "$(prev_abidir)" "$(abidir)" "$(skipabi)" + +# Check the module list against the last release (always) +module-%: $(abidir)/%.modules + @# Empty for make to be happy +$(abidir)/%.modules: $(stampdir)/stamp-build-% + install -d $(abidir) + find $(builddir)/build-$*/ -name \*.ko | \ + sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > $@ + +module-check-%: $(abidir)/%.modules + @perl -f $(DROOT)/scripts/module-check "$*" \ + "$(prev_abidir)" "$(abidir)" $(skipmodule) + +checks-%: abi-check-% module-check-% + @# Will be calling more stuff later + +# Check the config against the known options list. +config-prepare-check-%: $(stampdir)/stamp-prepare-tree-% + @perl -f $(DROOT)/scripts/config-check \ + $(builddir)/build-$*/.config "$(arch)" "$*" "$(sharedconfdir)" "$(skipconfig)" + +prepare-checks-%: config-prepare-check-% + @# Will be calling more stuff later --- linux-2.6.35.orig/debian/rules.d/3-binary-indep.mk +++ linux-2.6.35/debian/rules.d/3-binary-indep.mk @@ -0,0 +1,131 @@ +build-indep: + +docpkg = $(doc_pkg_name) +docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg) +install-doc: + dh_testdir + dh_testroot + dh_clean -k -p$(docpkg) + + install -d $(docdir) +ifeq ($(do_doc_package_content),true) + # First the html docs. We skip these for autobuilds + if [ -z "$(AUTOBUILD)" ]; then \ + install -d $(docdir)/$(doc_pkg_name)-tmp; \ + $(kmake) O=$(docdir)/$(doc_pkg_name)-tmp htmldocs; \ + mv $(docdir)/$(doc_pkg_name)-tmp/Documentation/DocBook \ + $(docdir)/html; \ + rm -rf $(docdir)/$(doc_pkg_name)-tmp; \ + fi +endif + # Copy the rest + cp -a Documentation/* $(docdir) + rm -rf $(docdir)/DocBook + find $(docdir) -name .gitignore | xargs rm -f + +indep_hdrpkg = $(hdrs_pkg_name) +indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg) +install-headers: + dh_testdir + dh_testroot + dh_clean -k -p$(indep_hdrpkg) + + install -d $(indep_hdrdir) + find . -path './debian' -prune -o -path './$(DEBIAN)' -prune \ + -o -path './include/*' -prune \ + -o -path './scripts/*' -prune -o -type f \ + \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \ + -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) \ + -print | cpio -pd --preserve-modification-time $(indep_hdrdir) + cp -a drivers/media/dvb/dvb-core/*.h $(indep_hdrdir)/drivers/media/dvb/dvb-core + cp -a drivers/media/video/*.h $(indep_hdrdir)/drivers/media/video + cp -a drivers/media/dvb/frontends/*.h $(indep_hdrdir)/drivers/media/dvb/frontends + cp -a scripts include $(indep_hdrdir) + (find arch -name include -type d -print | \ + xargs -n1 -i: find : -type f) | \ + cpio -pd --preserve-modification-time $(indep_hdrdir) + +srcpkg = $(src_pkg_name)-source-$(release) +srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg) +balldir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)/$(srcpkg) +install-source: + dh_testdir + dh_testroot + dh_clean -k -p$(srcpkg) + + install -d $(srcdir) +ifeq ($(do_source_package_content),true) + find . -path './debian' -prune -o -path './$(DEBIAN)' -prune -o \ + -path './.*' -prune -o -print | \ + cpio -pd --preserve-modification-time $(balldir) + (cd $(srcdir); tar cf - $(srcpkg)) | bzip2 -9c > \ + $(srcdir)/$(srcpkg).tar.bz2 + rm -rf $(balldir) + find './debian' './$(DEBIAN)' \ + -path './debian/linux-*' -prune -o \ + -path './debian/$(src_pkg_name)-*' -prune -o \ + -path './debian/build' -prune -o \ + -path './debian/files' -prune -o \ + -path './debian/stamps' -prune -o \ + -path './debian/tmp' -prune -o \ + -print | \ + cpio -pd --preserve-modification-time $(srcdir) + ln -s $(srcpkg)/$(srcpkg).tar.bz2 $(srcdir)/.. +endif + +install-tools: toolspkg = $(tools_common_pkg_name) +install-tools: toolsbin = $(CURDIR)/debian/$(toolspkg)/usr/bin +install-tools: toolsman = $(CURDIR)/debian/$(toolspkg)/usr/share/man +install-tools: + dh_testdir + dh_testroot + dh_clean -k -p$(toolspkg) + + install -d $(toolsbin) + install -d $(toolsman)/man1 + + install -m755 debian/tools/perf $(toolsbin)/perf + + install -d $(builddir)/tools + for i in *; do ln -s $(CURDIR)/$$i $(builddir)/tools/; done + rm $(builddir)/tools/tools + rsync -a tools/ $(builddir)/tools/tools/ + + cd $(builddir)/tools/tools/perf && make man + install -m644 $(builddir)/tools/tools/perf/Documentation/*.1 \ + $(toolsman)/man1 + +ifeq ($(do_common_headers_indep),true) +install-indep-deps-$(do_flavour_header_package) += install-headers +endif +install-indep-deps-$(do_doc_package) += install-doc +install-indep-deps-$(do_source_package) += install-source +install-indep-deps-$(do_tools) += install-tools +install-indep: $(install-indep-deps-true) + +# This is just to make it easy to call manually. Normally done in +# binary-indep target during builds. +binary-headers: install-headers + dh_testdir + dh_testroot + dh_installchangelogs -p$(indep_hdrpkg) + dh_installdocs -p$(indep_hdrpkg) + dh_compress -p$(indep_hdrpkg) + dh_fixperms -p$(indep_hdrpkg) + dh_installdeb -p$(indep_hdrpkg) + dh_gencontrol -p$(indep_hdrpkg) + dh_md5sums -p$(indep_hdrpkg) + dh_builddeb -p$(indep_hdrpkg) + +binary-indep: install-indep + dh_testdir + dh_testroot + + dh_installchangelogs -i + dh_installdocs -i + dh_compress -i + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i --- linux-2.6.35.orig/debian/docs/README.inclusion-list +++ linux-2.6.35/debian/docs/README.inclusion-list @@ -0,0 +1,51 @@ +This README describes the reason for, and the use of, module +inclusion lists. + +The original Hardy release had the notion of sub-flavours, +e.g., a flavour that was constructed as a subset of an existing flavour. +For example, the virtual flavour was extracted from the server flavour using +a subset of the server flavour modules. However, there were some difficult +mainteneance issues with regard to packaging, make rules, and scripts. This +re-implementation of the sub-flavours philosophy is hopefully simpler, +and retrofitable to all releases. + +A module inclusion list looks at the problem of of constructing a package +from the perspective of what modules do we _want_ in the package, as opposed +to what modules we _don't_ want. As the kernel matures, more and more devices are added +which makes the problem of configuration maintenance a real pain in the ass. +If we took the approach of disabling all of the config options that we don't want, +then the differences between flavours will quickly become quite large, making +it difficult to quickly compare the individual flavour configs. Each time a +new config option is added then we also have to make a decision about disabling in +order to continue to keep the minimal number of modules. + +A module inclusion list is applied on a per-flavour basis. For example, +debian./control.d/${flavour}.inclusion-list. For example, the +config for virtual is very close to server and generic, but the inclusion list +causes the virtual package to be constructed with _only_ the modules described +in the inclusion list. + +The inclusion list format is a simple bash regular expression list of files. For example, + +arch/*/{crypto,kernel,oprofile} +drivers/acpi/* +drivers/ata/ahci.ko + +These 3 regular expression forms are suitable for expansion by bash and as inputs to 'find'. +See debian/scripts/module-inclusion for details. + +There are 2 log files created as a side effect of the application of the module +inclusion list; $(flavour).inclusion-list.log and $(flavour).depmod.log. + +$(flavour).inclusion-list.log : This log is created while the inclusion list +modules are being copied. If any are missing, then those warnings go in this log. +While its not considered a fatal error, you should endevour to correct your inclusion +list such that there are no missing modules. + +$(flavour).depmod.log : The log is created as a result of running depmod on the +resulting set of modules. If there are missing symbols then you'll find that information +here. Again, you should modify your inclusion list such that there are no missing +symbols. + +Tim Gardner +June 2, 2010 --- linux-2.6.35.orig/debian/tests/check-aliases +++ linux-2.6.35/debian/tests/check-aliases @@ -0,0 +1,24 @@ +#!/usr/bin/perl -w + +my %map; + +print "Checking for dupe aliases in $ENV{'FLAVOUR'}...\n"; + +$aliases = + "$ENV{'INSTALL_DIR'}/lib/modules/$ENV{'VERSION'}-$ENV{'FLAVOUR'}/modules.alias"; + +open(ALIASES, "< $aliases") or die "Could not open $aliases"; + +while () { + chomp; + my ($junk, $alias, $module) = split; + + if (defined($map{$alias})) { + printf("%s %20s / %-20s : %s \n", ("$map{$alias}" eq "$module") + ? "INT" : " ", $map{$alias}, $module, $alias); + } else { + $map{$alias} = $module; + } +} + +exit(0); --- linux-2.6.35.orig/debian/tests/README +++ linux-2.6.35/debian/tests/README @@ -0,0 +1,21 @@ +Scripts placed in this directory get called one at a time by run-parts(8). +The scripts are expected to perform some sort of sanity checks on the +finished build. Scripts will be called once for each flavour. + +Some environment variables are exported to make life a little easier: + +DPKG_ARCH : The dpkg architecture (e.g. "amd64") +KERN_ARCH : The kernel architecture (e.g. "x86_64") +FLAVOUR : The specific flavour for this run (e.g. "generic") +VERSION : The full version of this build (e.g. 2.6.22-1) +REVISION : The exact revision of this build (e.g. 1.3) +PREV_REVISION : The revision prior to this one +ABI_NUM : The specific ABI number for this build (e.g. 2) +PREV_ABI_NUM : The previous ABI number. Can be the same as ABI_NUM. +BUILD_DIR : The directory where this build took place +INSTALL_DIR : The directory where the package is prepared +SOURCE_DIR : Where the main kernel source is + +Scripts are expected to have a zero exit status when no problems occur, +and non-zero when an error occurs that should stop the build. Scripts +should print whatever info they deem needed to deduce the problem. --- linux-2.6.35.orig/fs/super.c +++ linux-2.6.35/fs/super.c @@ -305,8 +305,13 @@ if (s) { up_write(&s->s_umount); destroy_super(s); + s = NULL; } down_write(&old->s_umount); + if (unlikely(!(old->s_flags & MS_BORN))) { + deactivate_locked_super(old); + goto retry; + } return old; } } @@ -909,6 +914,7 @@ goto out_free_secdata; BUG_ON(!mnt->mnt_sb); WARN_ON(!mnt->mnt_sb->s_bdi); + mnt->mnt_sb->s_flags |= MS_BORN; error = security_sb_kern_mount(mnt->mnt_sb, flags, secdata); if (error) --- linux-2.6.35.orig/fs/block_dev.c +++ linux-2.6.35/fs/block_dev.c @@ -681,8 +681,8 @@ if (!bd_may_claim(bdev, whole, holder)) return -EBUSY; - /* if someone else is claiming, wait for it to finish */ - if (whole->bd_claiming && whole->bd_claiming != holder) { + /* if claiming is already in progress, wait for it to finish */ + if (whole->bd_claiming) { wait_queue_head_t *wq = bit_waitqueue(&whole->bd_claiming, 0); DEFINE_WAIT(wait); @@ -1339,10 +1339,12 @@ /* * hooks: /n/, see "layering violations". */ - ret = devcgroup_inode_permission(bdev->bd_inode, perm); - if (ret != 0) { - bdput(bdev); - return ret; + if (!for_part) { + ret = devcgroup_inode_permission(bdev->bd_inode, perm); + if (ret != 0) { + bdput(bdev); + return ret; + } } lock_kernel(); --- linux-2.6.35.orig/fs/binfmt_elf.c +++ linux-2.6.35/fs/binfmt_elf.c @@ -74,7 +74,7 @@ .hasvdso = 1 }; -#define BAD_ADDR(x) ((unsigned long)(x) >= TASK_SIZE) +#define BAD_ADDR(x) IS_ERR_VALUE(x) static int set_brk(unsigned long start, unsigned long end) { @@ -701,6 +701,13 @@ break; } +#ifdef CONFIG_X86_32 + if (current->personality == PER_LINUX && (exec_shield & 2)) { + executable_stack = EXSTACK_DISABLE_X; + current->flags |= PF_RANDOMIZE; + } +#endif + /* Some simple consistency checks for the interpreter */ if (elf_interpreter) { retval = -ELIBBAD; @@ -717,6 +724,15 @@ if (retval) goto out_free_dentry; +#if defined(CONFIG_X86_32) && !defined(CONFIG_UML) + /* + * Turn off the CS limit completely if exec-shield disabled or + * NX active: + */ + if (!exec_shield || executable_stack != EXSTACK_DISABLE_X || (__supported_pte_mask & _PAGE_NX)) + arch_add_exec_range(current->mm, -1); +#endif + /* OK, This is the point of no return */ current->flags &= ~PF_FORKNOEXEC; current->mm->def_flags = def_flags; @@ -724,7 +740,11 @@ /* Do this immediately, since STACK_TOP as used in setup_arg_pages may depend on the personality. */ SET_PERSONALITY(loc->elf_ex); - if (elf_read_implies_exec(loc->elf_ex, executable_stack)) + if (elf_read_implies_exec(loc->elf_ex, executable_stack) +#ifdef CONFIG_X86_32 + && !(exec_shield & 2) +#endif + ) current->personality |= READ_IMPLIES_EXEC; if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space) @@ -800,7 +820,7 @@ * default mmap base, as well as whatever program they * might try to exec. This is because the brk will * follow the loader, and is not movable. */ -#ifdef CONFIG_X86 +#if defined(CONFIG_X86) || defined(CONFIG_ARM) load_bias = 0; #else load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); @@ -890,7 +910,7 @@ interpreter, &interp_map_addr, load_bias); - if (!IS_ERR((void *)elf_entry)) { + if (!BAD_ADDR(elf_entry)) { /* * load_elf_interp() returns relocation * adjustment --- linux-2.6.35.orig/fs/open.c +++ linux-2.6.35/fs/open.c @@ -32,6 +32,9 @@ #include "internal.h" +#define CREATE_TRACE_POINTS +#include + int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, struct file *filp) { @@ -59,6 +62,7 @@ mutex_unlock(&dentry->d_inode->i_mutex); return ret; } +EXPORT_SYMBOL(do_truncate); static long do_sys_truncate(const char __user *pathname, loff_t length) { @@ -890,6 +894,7 @@ } else { fsnotify_open(f->f_path.dentry); fd_install(fd, f); + trace_do_sys_open(tmp, flags, mode); } } putname(tmp); --- linux-2.6.35.orig/fs/char_dev.c +++ linux-2.6.35/fs/char_dev.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "internal.h" @@ -39,7 +40,9 @@ #endif /* permit direct mmap, for read, write or exec */ BDI_CAP_MAP_DIRECT | - BDI_CAP_READ_MAP | BDI_CAP_WRITE_MAP | BDI_CAP_EXEC_MAP), + BDI_CAP_READ_MAP | BDI_CAP_WRITE_MAP | BDI_CAP_EXEC_MAP | + /* no writeback happens */ + BDI_CAP_NO_ACCT_AND_WRITEBACK), }; static struct kobj_map *cdev_map; --- linux-2.6.35.orig/fs/binfmt_misc.c +++ linux-2.6.35/fs/binfmt_misc.c @@ -723,7 +723,7 @@ { int err = register_filesystem(&bm_fs_type); if (!err) { - err = register_binfmt(&misc_format); + err = insert_binfmt(&misc_format); if (err) unregister_filesystem(&bm_fs_type); } --- linux-2.6.35.orig/fs/inode.c +++ linux-2.6.35/fs/inode.c @@ -1626,3 +1626,7 @@ inode->i_mode = mode; } EXPORT_SYMBOL(inode_init_owner); + +#define CREATE_TRACE_POINTS +#include + --- linux-2.6.35.orig/fs/compat.c +++ linux-2.6.35/fs/compat.c @@ -1150,7 +1150,7 @@ { compat_ssize_t tot_len; struct iovec iovstack[UIO_FASTIOV]; - struct iovec *iov; + struct iovec *iov = iovstack; ssize_t ret; io_fn_t fn; iov_fn_t fnv; --- linux-2.6.35.orig/fs/fs-writeback.c +++ linux-2.6.35/fs/fs-writeback.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "internal.h" #define inode_to_bdi(inode) ((inode)->i_mapping->backing_dev_info) @@ -910,6 +911,8 @@ if ((inode->i_state & flags) == flags) return; + trace_dirty_inode(inode, current); + if (unlikely(block_dump)) block_dump___mark_inode_dirty(inode); --- linux-2.6.35.orig/fs/exec.c +++ linux-2.6.35/fs/exec.c @@ -56,6 +56,8 @@ #include #include +#include + #include #include #include @@ -685,6 +687,8 @@ fsnotify_open(file->f_path.dentry); + trace_open_exec(name); + err = deny_write_access(file); if (err) goto exit; --- linux-2.6.35.orig/fs/direct-io.c +++ linux-2.6.35/fs/direct-io.c @@ -218,7 +218,7 @@ * filesystems can use it to hold additional state between get_block calls and * dio_complete. */ -static int dio_complete(struct dio *dio, loff_t offset, int ret) +static int dio_complete(struct dio *dio, loff_t offset, int ret, bool is_async) { ssize_t transferred = 0; @@ -239,14 +239,6 @@ transferred = dio->i_size - offset; } - if (dio->end_io && dio->result) - dio->end_io(dio->iocb, offset, transferred, - dio->map_bh.b_private); - - if (dio->flags & DIO_LOCKING) - /* lockdep: non-owner release */ - up_read_non_owner(&dio->inode->i_alloc_sem); - if (ret == 0) ret = dio->page_errors; if (ret == 0) @@ -254,6 +246,17 @@ if (ret == 0) ret = transferred; + if (dio->end_io && dio->result) { + dio->end_io(dio->iocb, offset, transferred, + dio->map_bh.b_private, ret, is_async); + } else if (is_async) { + aio_complete(dio->iocb, ret, 0); + } + + if (dio->flags & DIO_LOCKING) + /* lockdep: non-owner release */ + up_read_non_owner(&dio->inode->i_alloc_sem); + return ret; } @@ -277,8 +280,7 @@ spin_unlock_irqrestore(&dio->bio_lock, flags); if (remaining == 0) { - int ret = dio_complete(dio, dio->iocb->ki_pos, 0); - aio_complete(dio->iocb, ret, 0); + dio_complete(dio, dio->iocb->ki_pos, 0, true); kfree(dio); } } @@ -632,7 +634,7 @@ int ret = 0; if (dio->bio) { - loff_t cur_offset = dio->block_in_file << dio->blkbits; + loff_t cur_offset = dio->cur_page_fs_offset; loff_t bio_next_offset = dio->logical_offset_in_bio + dio->bio->bi_size; @@ -657,7 +659,7 @@ * Submit now if the underlying fs is about to perform a * metadata read */ - if (dio->boundary) + else if (dio->boundary) dio_bio_submit(dio); } @@ -1126,7 +1128,7 @@ spin_unlock_irqrestore(&dio->bio_lock, flags); if (ret2 == 0) { - ret = dio_complete(dio, offset, ret); + ret = dio_complete(dio, offset, ret, false); kfree(dio); } else BUG_ON(ret != -EIOCBQUEUED); --- linux-2.6.35.orig/fs/namespace.c +++ linux-2.6.35/fs/namespace.c @@ -1279,6 +1279,7 @@ } return 0; } +EXPORT_SYMBOL(iterate_mounts); static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end) { @@ -1984,7 +1985,7 @@ if (flags & MS_RDONLY) mnt_flags |= MNT_READONLY; - flags &= ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE | + flags &= ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE | MS_BORN | MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT | MS_STRICTATIME); --- linux-2.6.35.orig/fs/namei.c +++ linux-2.6.35/fs/namei.c @@ -348,6 +348,7 @@ return 0; } +EXPORT_SYMBOL(deny_write_access); /** * path_get - get a reference to a path @@ -1178,7 +1179,7 @@ * needs parent already locked. Doesn't follow mounts. * SMP-safe. */ -static struct dentry *lookup_hash(struct nameidata *nd) +struct dentry *lookup_hash(struct nameidata *nd) { int err; @@ -1187,8 +1188,9 @@ return ERR_PTR(err); return __lookup_hash(&nd->last, nd->path.dentry, nd); } +EXPORT_SYMBOL(lookup_hash); -static int __lookup_one_len(const char *name, struct qstr *this, +int __lookup_one_len(const char *name, struct qstr *this, struct dentry *base, int len) { unsigned long hash; @@ -1209,6 +1211,7 @@ this->hash = end_name_hash(hash); return 0; } +EXPORT_SYMBOL(__lookup_one_len); /** * lookup_one_len - filesystem helper to lookup single pathname component --- linux-2.6.35.orig/fs/aio.c +++ linux-2.6.35/fs/aio.c @@ -712,8 +712,16 @@ */ ret = retry(iocb); - if (ret != -EIOCBRETRY && ret != -EIOCBQUEUED) + if (ret != -EIOCBRETRY && ret != -EIOCBQUEUED) { + /* + * There's no easy way to restart the syscall since other AIO's + * may be already running. Just fail this IO with EINTR. + */ + if (unlikely(ret == -ERESTARTSYS || ret == -ERESTARTNOINTR || + ret == -ERESTARTNOHAND || ret == -ERESTART_RESTARTBLOCK)) + ret = -EINTR; aio_complete(iocb, ret, 0); + } out: spin_lock_irq(&ctx->ctx_lock); @@ -1659,6 +1667,9 @@ if (unlikely(nr < 0)) return -EINVAL; + if (unlikely(nr > LONG_MAX/sizeof(*iocbpp))) + nr = LONG_MAX/sizeof(*iocbpp); + if (unlikely(!access_ok(VERIFY_READ, iocbpp, (nr*sizeof(*iocbpp))))) return -EFAULT; --- linux-2.6.35.orig/fs/signalfd.c +++ linux-2.6.35/fs/signalfd.c @@ -88,6 +88,7 @@ err |= __put_user(kinfo->si_tid, &uinfo->ssi_tid); err |= __put_user(kinfo->si_overrun, &uinfo->ssi_overrun); err |= __put_user((long) kinfo->si_ptr, &uinfo->ssi_ptr); + err |= __put_user(kinfo->si_int, &uinfo->ssi_int); break; case __SI_POLL: err |= __put_user(kinfo->si_band, &uinfo->ssi_band); @@ -111,6 +112,7 @@ err |= __put_user(kinfo->si_pid, &uinfo->ssi_pid); err |= __put_user(kinfo->si_uid, &uinfo->ssi_uid); err |= __put_user((long) kinfo->si_ptr, &uinfo->ssi_ptr); + err |= __put_user(kinfo->si_int, &uinfo->ssi_int); break; default: /* --- linux-2.6.35.orig/fs/splice.c +++ linux-2.6.35/fs/splice.c @@ -1104,8 +1104,8 @@ /* * Attempt to initiate a splice from pipe to file. */ -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, - loff_t *ppos, size_t len, unsigned int flags) +long do_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags) { ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); @@ -1128,13 +1128,14 @@ return splice_write(pipe, out, ppos, len, flags); } +EXPORT_SYMBOL(do_splice_from); /* * Attempt to initiate a splice from a file to a pipe. */ -static long do_splice_to(struct file *in, loff_t *ppos, - struct pipe_inode_info *pipe, size_t len, - unsigned int flags) +long do_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) { ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); @@ -1154,6 +1155,7 @@ return splice_read(in, ppos, pipe, len, flags); } +EXPORT_SYMBOL(do_splice_to); /** * splice_direct_to_actor - splices data directly between two non-pipes --- linux-2.6.35.orig/fs/nfs/super.c +++ linux-2.6.35/fs/nfs/super.c @@ -431,7 +431,15 @@ goto out_err; error = server->nfs_client->rpc_ops->statfs(server, fh, &res); + if (unlikely(error == -ESTALE)) { + struct dentry *pd_dentry; + pd_dentry = dget_parent(dentry); + if (pd_dentry != NULL) { + nfs_zap_caches(pd_dentry->d_inode); + dput(pd_dentry); + } + } nfs_free_fattr(res.fattr); if (error < 0) goto out_err; @@ -652,6 +660,13 @@ if (nfss->options & NFS_OPTION_FSCACHE) seq_printf(m, ",fsc"); + + if (nfss->flags & NFS_MOUNT_LOOKUP_CACHE_NONEG) { + if (nfss->flags & NFS_MOUNT_LOOKUP_CACHE_NONE) + seq_printf(m, ",lookupcache=none"); + else + seq_printf(m, ",lookupcache=pos"); + } } /* --- linux-2.6.35.orig/fs/nfs/nfs4proc.c +++ linux-2.6.35/fs/nfs/nfs4proc.c @@ -2023,7 +2023,8 @@ struct rpc_cred *cred; struct nfs4_state *state; struct dentry *res; - fmode_t fmode = nd->intent.open.flags & (FMODE_READ | FMODE_WRITE | FMODE_EXEC); + int open_flags = nd->intent.open.flags; + fmode_t fmode = open_flags & (FMODE_READ | FMODE_WRITE | FMODE_EXEC); if (nd->flags & LOOKUP_CREATE) { attr.ia_mode = nd->intent.open.create_mode; @@ -2031,8 +2032,9 @@ if (!IS_POSIXACL(dir)) attr.ia_mode &= ~current_umask(); } else { + open_flags &= ~O_EXCL; attr.ia_valid = 0; - BUG_ON(nd->intent.open.flags & O_CREAT); + BUG_ON(open_flags & O_CREAT); } cred = rpc_lookup_cred(); @@ -2041,7 +2043,7 @@ parent = dentry->d_parent; /* Protect against concurrent sillydeletes */ nfs_block_sillyrename(parent); - state = nfs4_do_open(dir, &path, fmode, nd->intent.open.flags, &attr, cred); + state = nfs4_do_open(dir, &path, fmode, open_flags, &attr, cred); put_rpccred(cred); if (IS_ERR(state)) { if (PTR_ERR(state) == -ENOENT) { --- linux-2.6.35.orig/fs/nfs/dir.c +++ linux-2.6.35/fs/nfs/dir.c @@ -1103,7 +1103,7 @@ if ((openflags & (O_CREAT|O_EXCL)) == (O_CREAT|O_EXCL)) goto no_open_dput; /* We can't create new files, or truncate existing ones here */ - openflags &= ~(O_CREAT|O_TRUNC); + openflags &= ~(O_CREAT|O_EXCL|O_TRUNC); /* * Note: we're not holding inode->i_mutex and so may be racing with --- linux-2.6.35.orig/fs/nfs/client.c +++ linux-2.6.35/fs/nfs/client.c @@ -274,7 +274,7 @@ sin1->sin6_scope_id != sin2->sin6_scope_id) return 0; - return ipv6_addr_equal(&sin1->sin6_addr, &sin1->sin6_addr); + return ipv6_addr_equal(&sin1->sin6_addr, &sin2->sin6_addr); } #else /* !defined(CONFIG_IPV6) && !defined(CONFIG_IPV6_MODULE) */ static int nfs_sockaddr_match_ipaddr6(const struct sockaddr *sa1, --- linux-2.6.35.orig/fs/fuse/dev.c +++ linux-2.6.35/fs/fuse/dev.c @@ -1552,6 +1552,14 @@ } } +static void end_queued_requests(struct fuse_conn *fc) +{ + fc->max_background = UINT_MAX; + flush_bg_queue(fc); + end_requests(fc, &fc->pending); + end_requests(fc, &fc->processing); +} + /* * Abort all requests. * @@ -1578,8 +1586,7 @@ fc->connected = 0; fc->blocked = 0; end_io_requests(fc); - end_requests(fc, &fc->pending); - end_requests(fc, &fc->processing); + end_queued_requests(fc); wake_up_all(&fc->waitq); wake_up_all(&fc->blocked_waitq); kill_fasync(&fc->fasync, SIGIO, POLL_IN); @@ -1594,8 +1601,9 @@ if (fc) { spin_lock(&fc->lock); fc->connected = 0; - end_requests(fc, &fc->pending); - end_requests(fc, &fc->processing); + fc->blocked = 0; + end_queued_requests(fc); + wake_up_all(&fc->blocked_waitq); spin_unlock(&fc->lock); fuse_conn_put(fc); } --- linux-2.6.35.orig/fs/jfs/xattr.c +++ linux-2.6.35/fs/jfs/xattr.c @@ -86,46 +86,25 @@ #define EA_MALLOC 0x0008 +static int is_known_namespace(const char *name) +{ + if (strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN) && + strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN) && + strncmp(name, XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN) && + strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN)) + return false; + + return true; +} + /* * These three routines are used to recognize on-disk extended attributes * that are in a recognized namespace. If the attribute is not recognized, * "os2." is prepended to the name */ -static inline int is_os2_xattr(struct jfs_ea *ea) +static int is_os2_xattr(struct jfs_ea *ea) { - /* - * Check for "system." - */ - if ((ea->namelen >= XATTR_SYSTEM_PREFIX_LEN) && - !strncmp(ea->name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN)) - return false; - /* - * Check for "user." - */ - if ((ea->namelen >= XATTR_USER_PREFIX_LEN) && - !strncmp(ea->name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)) - return false; - /* - * Check for "security." - */ - if ((ea->namelen >= XATTR_SECURITY_PREFIX_LEN) && - !strncmp(ea->name, XATTR_SECURITY_PREFIX, - XATTR_SECURITY_PREFIX_LEN)) - return false; - /* - * Check for "trusted." - */ - if ((ea->namelen >= XATTR_TRUSTED_PREFIX_LEN) && - !strncmp(ea->name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN)) - return false; - /* - * Add any other valid namespace prefixes here - */ - - /* - * We assume it's OS/2's flat namespace - */ - return true; + return !is_known_namespace(ea->name); } static inline int name_size(struct jfs_ea *ea) @@ -764,13 +743,23 @@ if (!strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN)) return can_set_system_xattr(inode, name, value, value_len); + if (!strncmp(name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN)) { + /* + * This makes sure that we aren't trying to set an + * attribute in a different namespace by prefixing it + * with "os2." + */ + if (is_known_namespace(name + XATTR_OS2_PREFIX_LEN)) + return -EOPNOTSUPP; + return 0; + } + /* * Don't allow setting an attribute in an unknown namespace. */ if (strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) && strncmp(name, XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN) && - strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN) && - strncmp(name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN)) + strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)) return -EOPNOTSUPP; return 0; @@ -952,19 +941,8 @@ int xattr_size; ssize_t size; int namelen = strlen(name); - char *os2name = NULL; char *value; - if (strncmp(name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN) == 0) { - os2name = kmalloc(namelen - XATTR_OS2_PREFIX_LEN + 1, - GFP_KERNEL); - if (!os2name) - return -ENOMEM; - strcpy(os2name, name + XATTR_OS2_PREFIX_LEN); - name = os2name; - namelen -= XATTR_OS2_PREFIX_LEN; - } - down_read(&JFS_IP(inode)->xattr_sem); xattr_size = ea_get(inode, &ea_buf, 0); @@ -1002,8 +980,6 @@ out: up_read(&JFS_IP(inode)->xattr_sem); - kfree(os2name); - return size; } @@ -1012,6 +988,19 @@ { int err; + if (strncmp(name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN) == 0) { + /* + * skip past "os2." prefix + */ + name += XATTR_OS2_PREFIX_LEN; + /* + * Don't allow retrieving properly prefixed attributes + * by prepending them with "os2." + */ + if (is_known_namespace(name)) + return -EOPNOTSUPP; + } + err = __jfs_getxattr(dentry->d_inode, name, data, buf_size); return err; --- linux-2.6.35.orig/fs/sysfs/file.c +++ linux-2.6.35/fs/sysfs/file.c @@ -340,7 +340,7 @@ char *p; p = d_path(&file->f_path, last_sysfs_file, sizeof(last_sysfs_file)); - if (p) + if (!IS_ERR(p)) memmove(last_sysfs_file, p, strlen(p) + 1); /* need attr_sd for attr and ops, its parent for kobj */ --- linux-2.6.35.orig/fs/ext4/super.c +++ linux-2.6.35/fs/ext4/super.c @@ -241,7 +241,7 @@ if (sb->s_flags & MS_RDONLY) return ERR_PTR(-EROFS); - vfs_check_frozen(sb, SB_FREEZE_WRITE); + vfs_check_frozen(sb, SB_FREEZE_TRANS); /* Special case here: if the journal has aborted behind our * backs (eg. EIO in the commit thread), then we still need to * take the FS itself readonly cleanly. */ @@ -3491,7 +3491,7 @@ journal = EXT4_SB(sb)->s_journal; if (journal) { - vfs_check_frozen(sb, SB_FREEZE_WRITE); + vfs_check_frozen(sb, SB_FREEZE_TRANS); ret = ext4_journal_force_commit(journal); } --- linux-2.6.35.orig/fs/ext4/inode.c +++ linux-2.6.35/fs/ext4/inode.c @@ -3668,6 +3668,8 @@ return ret; } + if (io->iocb) + aio_complete(io->iocb, io->result, 0); /* clear the DIO AIO unwritten flag */ io->flag = 0; return ret; @@ -3767,6 +3769,8 @@ io->offset = 0; io->size = 0; io->page = NULL; + io->iocb = NULL; + io->result = 0; INIT_WORK(&io->work, ext4_end_io_work); INIT_LIST_HEAD(&io->list); } @@ -3775,7 +3779,8 @@ } static void ext4_end_io_dio(struct kiocb *iocb, loff_t offset, - ssize_t size, void *private) + ssize_t size, void *private, int ret, + bool is_async) { ext4_io_end_t *io_end = iocb->private; struct workqueue_struct *wq; @@ -3784,7 +3789,7 @@ /* if not async direct IO or dio with 0 bytes write, just return */ if (!io_end || !size) - return; + goto out; ext_debug("ext4_end_io_dio(): io_end 0x%p" "for inode %lu, iocb 0x%p, offset %llu, size %llu\n", @@ -3795,12 +3800,18 @@ if (io_end->flag != EXT4_IO_UNWRITTEN){ ext4_free_io_end(io_end); iocb->private = NULL; +out: + if (is_async) + aio_complete(iocb, ret, 0); return; } io_end->offset = offset; io_end->size = size; - io_end->flag = EXT4_IO_UNWRITTEN; + if (is_async) { + io_end->iocb = iocb; + io_end->result = ret; + } wq = EXT4_SB(io_end->inode->i_sb)->dio_unwritten_wq; /* queue the work to convert unwritten extents to written */ --- linux-2.6.35.orig/fs/ext4/ext4.h +++ linux-2.6.35/fs/ext4/ext4.h @@ -167,13 +167,15 @@ }; #define EXT4_IO_UNWRITTEN 0x1 typedef struct ext4_io_end { - struct list_head list; /* per-file finished AIO list */ + struct list_head list; /* per-file finished IO list */ struct inode *inode; /* file being written to */ unsigned int flag; /* unwritten or not */ struct page *page; /* page struct for buffer write */ loff_t offset; /* offset in the file */ ssize_t size; /* size of the extent */ struct work_struct work; /* data work queue */ + struct kiocb *iocb; /* iocb struct for AIO */ + int result; /* error value for AIO */ } ext4_io_end_t; /* --- linux-2.6.35.orig/fs/xfs/xfs_ialloc.c +++ linux-2.6.35/fs/xfs/xfs_ialloc.c @@ -1217,7 +1217,6 @@ struct xfs_inobt_rec_incore rec; struct xfs_btree_cur *cur; struct xfs_buf *agbp; - xfs_agino_t startino; int error; int i; @@ -1231,13 +1230,13 @@ } /* - * derive and lookup the exact inode record for the given agino. If the - * record cannot be found, then it's an invalid inode number and we - * should abort. + * Lookup the inode record for the given agino. If the record cannot be + * found, then it's an invalid inode number and we should abort. Once + * we have a record, we need to ensure it contains the inode number + * we are looking up. */ cur = xfs_inobt_init_cursor(mp, tp, agbp, agno); - startino = agino & ~(XFS_IALLOC_INODES(mp) - 1); - error = xfs_inobt_lookup(cur, startino, XFS_LOOKUP_EQ, &i); + error = xfs_inobt_lookup(cur, agino, XFS_LOOKUP_LE, &i); if (!error) { if (i) error = xfs_inobt_get_rec(cur, &rec, &i); @@ -1250,6 +1249,11 @@ if (error) return error; + /* check that the returned record contains the required inode */ + if (rec.ir_startino > agino || + rec.ir_startino + XFS_IALLOC_INODES(mp) <= agino) + return EINVAL; + /* for untrusted inodes check it is allocated first */ if ((flags & XFS_IGET_UNTRUSTED) && (rec.ir_free & XFS_INOBT_MASK(agino - rec.ir_startino))) --- linux-2.6.35.orig/fs/xfs/xfs_inode.c +++ linux-2.6.35/fs/xfs/xfs_inode.c @@ -1927,6 +1927,11 @@ return 0; } +/* + * A big issue when freeing the inode cluster is is that we _cannot_ skip any + * inodes that are in memory - they all must be marked stale and attached to + * the cluster buffer. + */ STATIC void xfs_ifree_cluster( xfs_inode_t *free_ip, @@ -1958,8 +1963,6 @@ } for (j = 0; j < nbufs; j++, inum += ninodes) { - int found = 0; - blkno = XFS_AGB_TO_DADDR(mp, XFS_INO_TO_AGNO(mp, inum), XFS_INO_TO_AGBNO(mp, inum)); @@ -1978,7 +1981,9 @@ /* * Walk the inodes already attached to the buffer and mark them * stale. These will all have the flush locks held, so an - * in-memory inode walk can't lock them. + * in-memory inode walk can't lock them. By marking them all + * stale first, we will not attempt to lock them in the loop + * below as the XFS_ISTALE flag will be set. */ lip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *); while (lip) { @@ -1990,11 +1995,11 @@ &iip->ili_flush_lsn, &iip->ili_item.li_lsn); xfs_iflags_set(iip->ili_inode, XFS_ISTALE); - found++; } lip = lip->li_bio_list; } + /* * For each inode in memory attempt to add it to the inode * buffer and set it up for being staled on buffer IO @@ -2006,6 +2011,7 @@ * even trying to lock them. */ for (i = 0; i < ninodes; i++) { +retry: read_lock(&pag->pag_ici_lock); ip = radix_tree_lookup(&pag->pag_ici_root, XFS_INO_TO_AGINO(mp, (inum + i))); @@ -2016,38 +2022,36 @@ continue; } - /* don't try to lock/unlock the current inode */ + /* + * Don't try to lock/unlock the current inode, but we + * _cannot_ skip the other inodes that we did not find + * in the list attached to the buffer and are not + * already marked stale. If we can't lock it, back off + * and retry. + */ if (ip != free_ip && !xfs_ilock_nowait(ip, XFS_ILOCK_EXCL)) { read_unlock(&pag->pag_ici_lock); - continue; + delay(1); + goto retry; } read_unlock(&pag->pag_ici_lock); - if (!xfs_iflock_nowait(ip)) { - if (ip != free_ip) - xfs_iunlock(ip, XFS_ILOCK_EXCL); - continue; - } - + xfs_iflock(ip); xfs_iflags_set(ip, XFS_ISTALE); - if (xfs_inode_clean(ip)) { - ASSERT(ip != free_ip); - xfs_ifunlock(ip); - xfs_iunlock(ip, XFS_ILOCK_EXCL); - continue; - } + /* + * we don't need to attach clean inodes or those only + * with unlogged changes (which we throw away, anyway). + */ iip = ip->i_itemp; - if (!iip) { - /* inode with unlogged changes only */ + if (!iip || xfs_inode_clean(ip)) { ASSERT(ip != free_ip); ip->i_update_core = 0; xfs_ifunlock(ip); xfs_iunlock(ip, XFS_ILOCK_EXCL); continue; } - found++; iip->ili_last_fields = iip->ili_format.ilf_fields; iip->ili_format.ilf_fields = 0; @@ -2063,8 +2067,7 @@ xfs_iunlock(ip, XFS_ILOCK_EXCL); } - if (found) - xfs_trans_stale_inode_buf(tp, bp); + xfs_trans_stale_inode_buf(tp, bp); xfs_trans_binval(tp, bp); } --- linux-2.6.35.orig/fs/xfs/linux-2.6/xfs_aops.h +++ linux-2.6.35/fs/xfs/linux-2.6/xfs_aops.h @@ -37,6 +37,8 @@ size_t io_size; /* size of the extent */ xfs_off_t io_offset; /* offset in the file */ struct work_struct io_work; /* xfsdatad work queue */ + struct kiocb *io_iocb; + int io_result; } xfs_ioend_t; extern const struct address_space_operations xfs_address_space_operations; --- linux-2.6.35.orig/fs/xfs/linux-2.6/xfs_ioctl.c +++ linux-2.6.35/fs/xfs/linux-2.6/xfs_ioctl.c @@ -794,6 +794,8 @@ { struct fsxattr fa; + memset(&fa, 0, sizeof(struct fsxattr)); + xfs_ilock(ip, XFS_ILOCK_SHARED); fa.fsx_xflags = xfs_ip2xflags(ip); fa.fsx_extsize = ip->i_d.di_extsize << ip->i_mount->m_sb.sb_blocklog; --- linux-2.6.35.orig/fs/xfs/linux-2.6/xfs_aops.c +++ linux-2.6.35/fs/xfs/linux-2.6/xfs_aops.c @@ -275,8 +275,11 @@ xfs_finish_ioend(ioend, 0); /* ensure we don't spin on blocked ioends */ delay(1); - } else + } else { + if (ioend->io_iocb) + aio_complete(ioend->io_iocb, ioend->io_result, 0); xfs_destroy_ioend(ioend); + } } /* @@ -309,6 +312,8 @@ atomic_inc(&XFS_I(ioend->io_inode)->i_iocount); ioend->io_offset = 0; ioend->io_size = 0; + ioend->io_iocb = NULL; + ioend->io_result = 0; INIT_WORK(&ioend->io_work, xfs_end_io); return ioend; @@ -1599,9 +1604,12 @@ struct kiocb *iocb, loff_t offset, ssize_t size, - void *private) + void *private, + int ret, + bool is_async) { xfs_ioend_t *ioend = iocb->private; + bool complete_aio = is_async; /* * Non-NULL private data means we need to issue a transaction to @@ -1627,7 +1635,14 @@ if (ioend->io_type == IO_READ) { xfs_finish_ioend(ioend, 0); } else if (private && size > 0) { - xfs_finish_ioend(ioend, is_sync_kiocb(iocb)); + if (is_async) { + ioend->io_iocb = iocb; + ioend->io_result = ret; + complete_aio = false; + xfs_finish_ioend(ioend, 0); + } else { + xfs_finish_ioend(ioend, 1); + } } else { /* * A direct I/O write ioend starts it's life in unwritten @@ -1645,6 +1660,9 @@ * against double-freeing. */ iocb->private = NULL; + + if (complete_aio) + aio_complete(iocb, ret, 0); } STATIC ssize_t --- linux-2.6.35.orig/fs/nilfs2/super.c +++ linux-2.6.35/fs/nilfs2/super.c @@ -336,9 +336,10 @@ list_add(&sbi->s_list, &nilfs->ns_supers); up_write(&nilfs->ns_super_sem); + err = -ENOMEM; sbi->s_ifile = nilfs_ifile_new(sbi, nilfs->ns_inode_size); if (!sbi->s_ifile) - return -ENOMEM; + goto delist; down_read(&nilfs->ns_segctor_sem); err = nilfs_cpfile_get_checkpoint(nilfs->ns_cpfile, cno, 0, &raw_cp, @@ -369,6 +370,7 @@ nilfs_mdt_destroy(sbi->s_ifile); sbi->s_ifile = NULL; + delist: down_write(&nilfs->ns_super_sem); list_del_init(&sbi->s_list); up_write(&nilfs->ns_super_sem); --- linux-2.6.35.orig/fs/notify/group.c +++ linux-2.6.35/fs/notify/group.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include "fsnotify.h" @@ -169,6 +170,7 @@ fsnotify_recalc_global_mask(); fsnotify_destroy_group(group); } +EXPORT_SYMBOL(fsnotify_put_group); /* * Simply run the fsnotify_groups list and find a group which matches @@ -252,3 +254,4 @@ return group; } +EXPORT_SYMBOL(fsnotify_obtain_group); --- linux-2.6.35.orig/fs/notify/inode_mark.c +++ linux-2.6.35/fs/notify/inode_mark.c @@ -105,6 +105,7 @@ if (atomic_dec_and_test(&entry->refcnt)) entry->free_mark(entry); } +EXPORT_SYMBOL(fsnotify_put_mark); /* * Recalculate the mask of events relevant to a given inode locked. @@ -215,6 +216,7 @@ if (unlikely(atomic_dec_and_test(&group->num_marks))) fsnotify_final_destroy_group(group); } +EXPORT_SYMBOL(fsnotify_destroy_mark_by_entry); /* * Given a group, destroy all of the marks associated with that group. @@ -281,6 +283,7 @@ } return NULL; } +EXPORT_SYMBOL(fsnotify_find_mark_entry); /* * Nothing fancy, just initialize lists and locks and counters. @@ -297,6 +300,7 @@ entry->inode = NULL; entry->free_mark = free_mark; } +EXPORT_SYMBOL(fsnotify_init_mark); /* * Attach an initialized mark entry to a given group and inode. @@ -352,6 +356,7 @@ return ret; } +EXPORT_SYMBOL(fsnotify_add_mark); /** * fsnotify_unmount_inodes - an sb is unmounting. handle any watched inodes. --- linux-2.6.35.orig/fs/notify/inotify/inotify_user.c +++ linux-2.6.35/fs/notify/inotify/inotify_user.c @@ -96,8 +96,11 @@ { __u32 mask; - /* everything should accept their own ignored and cares about children */ - mask = (FS_IN_IGNORED | FS_EVENT_ON_CHILD); + /* + * everything should accept their own ignored, cares about children, + * and should receive events when the inode is unmounted + */ + mask = (FS_IN_IGNORED | FS_EVENT_ON_CHILD | FS_UNMOUNT); /* mask off the flags used to open the fd */ mask |= (arg & (IN_ALL_EVENTS | IN_ONESHOT)); --- linux-2.6.35.orig/fs/minix/namei.c +++ linux-2.6.35/fs/minix/namei.c @@ -115,7 +115,7 @@ inode_inc_link_count(dir); - inode = minix_new_inode(dir, mode, &err); + inode = minix_new_inode(dir, S_IFDIR | mode, &err); if (!inode) goto out_dir; --- linux-2.6.35.orig/fs/ocfs2/inode.c +++ linux-2.6.35/fs/ocfs2/inode.c @@ -488,7 +488,11 @@ OCFS2_BH_IGNORE_CACHE); } else { status = ocfs2_read_blocks_sync(osb, args->fi_blkno, 1, &bh); - if (!status) + /* + * If buffer is in jbd, then its checksum may not have been + * computed as yet. + */ + if (!status && !buffer_jbd(bh)) status = ocfs2_validate_inode_block(osb->sb, bh); } if (status < 0) { --- linux-2.6.35.orig/fs/ocfs2/aops.c +++ linux-2.6.35/fs/ocfs2/aops.c @@ -578,7 +578,9 @@ static void ocfs2_dio_end_io(struct kiocb *iocb, loff_t offset, ssize_t bytes, - void *private) + void *private, + int ret, + bool is_async) { struct inode *inode = iocb->ki_filp->f_path.dentry->d_inode; int level; @@ -592,6 +594,9 @@ if (!level) up_read(&inode->i_alloc_sem); ocfs2_rw_unlock(inode, level); + + if (is_async) + aio_complete(iocb, ret, 0); } /* --- linux-2.6.35.orig/fs/ocfs2/symlink.c +++ linux-2.6.35/fs/ocfs2/symlink.c @@ -128,7 +128,7 @@ } /* Fast symlinks can't be large */ - len = strlen(target); + len = strnlen(target, ocfs2_fast_symlink_chars(inode->i_sb)); link = kzalloc(len + 1, GFP_NOFS); if (!link) { status = -ENOMEM; --- linux-2.6.35.orig/fs/ocfs2/refcounttree.c +++ linux-2.6.35/fs/ocfs2/refcounttree.c @@ -2436,16 +2436,26 @@ len = min((u64)cpos + clusters, le64_to_cpu(rec.r_cpos) + le32_to_cpu(rec.r_clusters)) - cpos; /* - * If the refcount rec already exist, cool. We just need - * to check whether there is a split. Otherwise we just need - * to increase the refcount. - * If we will insert one, increases recs_add. - * * We record all the records which will be inserted to the * same refcount block, so that we can tell exactly whether * we need a new refcount block or not. + * + * If we will insert a new one, this is easy and only happens + * during adding refcounted flag to the extent, so we don't + * have a chance of spliting. We just need one record. + * + * If the refcount rec already exists, that would be a little + * complicated. we may have to: + * 1) split at the beginning if the start pos isn't aligned. + * we need 1 more record in this case. + * 2) split int the end if the end pos isn't aligned. + * we need 1 more record in this case. + * 3) split in the middle because of file system fragmentation. + * we need 2 more records in this case(we can't detect this + * beforehand, so always think of the worst case). */ if (rec.r_refcount) { + recs_add += 2; /* Check whether we need a split at the beginning. */ if (cpos == start_cpos && cpos != le64_to_cpu(rec.r_cpos)) --- linux-2.6.35.orig/fs/ocfs2/acl.c +++ linux-2.6.35/fs/ocfs2/acl.c @@ -290,12 +290,30 @@ int ocfs2_check_acl(struct inode *inode, int mask) { - struct posix_acl *acl = ocfs2_get_acl(inode, ACL_TYPE_ACCESS); + struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); + struct buffer_head *di_bh = NULL; + struct posix_acl *acl; + int ret = -EAGAIN; - if (IS_ERR(acl)) + if (!(osb->s_mount_opt & OCFS2_MOUNT_POSIX_ACL)) + return ret; + + ret = ocfs2_read_inode_block(inode, &di_bh); + if (ret < 0) { + mlog_errno(ret); + return ret; + } + + acl = ocfs2_get_acl_nolock(inode, ACL_TYPE_ACCESS, di_bh); + + brelse(di_bh); + + if (IS_ERR(acl)) { + mlog_errno(PTR_ERR(acl)); return PTR_ERR(acl); + } if (acl) { - int ret = posix_acl_permission(inode, acl, mask); + ret = posix_acl_permission(inode, acl, mask); posix_acl_release(acl); return ret; } @@ -344,7 +362,7 @@ { struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); struct posix_acl *acl = NULL; - int ret = 0; + int ret = 0, ret2; mode_t mode; if (!S_ISLNK(inode->i_mode)) { @@ -381,7 +399,12 @@ mode = inode->i_mode; ret = posix_acl_create_masq(clone, &mode); if (ret >= 0) { - ret = ocfs2_acl_set_mode(inode, di_bh, handle, mode); + ret2 = ocfs2_acl_set_mode(inode, di_bh, handle, mode); + if (ret2) { + mlog_errno(ret2); + ret = ret2; + goto cleanup; + } if (ret > 0) { ret = ocfs2_set_acl(handle, inode, di_bh, ACL_TYPE_ACCESS, --- linux-2.6.35.orig/fs/ocfs2/dlm/dlmrecovery.c +++ linux-2.6.35/fs/ocfs2/dlm/dlmrecovery.c @@ -1997,6 +1997,8 @@ struct list_head *queue; struct dlm_lock *lock, *next; + assert_spin_locked(&dlm->spinlock); + assert_spin_locked(&res->spinlock); res->state |= DLM_LOCK_RES_RECOVERING; if (!list_empty(&res->recovering)) { mlog(0, @@ -2326,19 +2328,15 @@ /* zero the lvb if necessary */ dlm_revalidate_lvb(dlm, res, dead_node); if (res->owner == dead_node) { - if (res->state & DLM_LOCK_RES_DROPPING_REF) - mlog(0, "%s:%.*s: owned by " - "dead node %u, this node was " - "dropping its ref when it died. " - "continue, dropping the flag.\n", - dlm->name, res->lockname.len, - res->lockname.name, dead_node); - - /* the wake_up for this will happen when the - * RECOVERING flag is dropped later */ - res->state &= ~DLM_LOCK_RES_DROPPING_REF; + if (res->state & DLM_LOCK_RES_DROPPING_REF) { + mlog(ML_NOTICE, "Ignore %.*s for " + "recovery as it is being freed\n", + res->lockname.len, + res->lockname.name); + } else + dlm_move_lockres_to_recovery_list(dlm, + res); - dlm_move_lockres_to_recovery_list(dlm, res); } else if (res->owner == dlm->node_num) { dlm_free_dead_locks(dlm, res, dead_node); __dlm_lockres_calc_usage(dlm, res); --- linux-2.6.35.orig/fs/ocfs2/dlm/dlmthread.c +++ linux-2.6.35/fs/ocfs2/dlm/dlmthread.c @@ -92,19 +92,27 @@ * truly ready to be freed. */ int __dlm_lockres_unused(struct dlm_lock_resource *res) { - if (!__dlm_lockres_has_locks(res) && - (list_empty(&res->dirty) && !(res->state & DLM_LOCK_RES_DIRTY))) { - /* try not to scan the bitmap unless the first two - * conditions are already true */ - int bit = find_next_bit(res->refmap, O2NM_MAX_NODES, 0); - if (bit >= O2NM_MAX_NODES) { - /* since the bit for dlm->node_num is not - * set, inflight_locks better be zero */ - BUG_ON(res->inflight_locks != 0); - return 1; - } - } - return 0; + int bit; + + if (__dlm_lockres_has_locks(res)) + return 0; + + if (!list_empty(&res->dirty) || res->state & DLM_LOCK_RES_DIRTY) + return 0; + + if (res->state & DLM_LOCK_RES_RECOVERING) + return 0; + + bit = find_next_bit(res->refmap, O2NM_MAX_NODES, 0); + if (bit < O2NM_MAX_NODES) + return 0; + + /* + * since the bit for dlm->node_num is not set, inflight_locks better + * be zero + */ + BUG_ON(res->inflight_locks != 0); + return 1; } @@ -152,45 +160,25 @@ spin_unlock(&dlm->spinlock); } -static int dlm_purge_lockres(struct dlm_ctxt *dlm, +static void dlm_purge_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res) { int master; int ret = 0; - spin_lock(&res->spinlock); - if (!__dlm_lockres_unused(res)) { - mlog(0, "%s:%.*s: tried to purge but not unused\n", - dlm->name, res->lockname.len, res->lockname.name); - __dlm_print_one_lock_resource(res); - spin_unlock(&res->spinlock); - BUG(); - } - - if (res->state & DLM_LOCK_RES_MIGRATING) { - mlog(0, "%s:%.*s: Delay dropref as this lockres is " - "being remastered\n", dlm->name, res->lockname.len, - res->lockname.name); - /* Re-add the lockres to the end of the purge list */ - if (!list_empty(&res->purge)) { - list_del_init(&res->purge); - list_add_tail(&res->purge, &dlm->purge_list); - } - spin_unlock(&res->spinlock); - return 0; - } + assert_spin_locked(&dlm->spinlock); + assert_spin_locked(&res->spinlock); master = (res->owner == dlm->node_num); - if (!master) - res->state |= DLM_LOCK_RES_DROPPING_REF; - spin_unlock(&res->spinlock); mlog(0, "purging lockres %.*s, master = %d\n", res->lockname.len, res->lockname.name, master); if (!master) { + res->state |= DLM_LOCK_RES_DROPPING_REF; /* drop spinlock... retake below */ + spin_unlock(&res->spinlock); spin_unlock(&dlm->spinlock); spin_lock(&res->spinlock); @@ -208,31 +196,35 @@ mlog(0, "%s:%.*s: dlm_deref_lockres returned %d\n", dlm->name, res->lockname.len, res->lockname.name, ret); spin_lock(&dlm->spinlock); + spin_lock(&res->spinlock); } - spin_lock(&res->spinlock); if (!list_empty(&res->purge)) { mlog(0, "removing lockres %.*s:%p from purgelist, " "master = %d\n", res->lockname.len, res->lockname.name, res, master); list_del_init(&res->purge); - spin_unlock(&res->spinlock); dlm_lockres_put(res); dlm->purge_count--; - } else - spin_unlock(&res->spinlock); + } + + if (!__dlm_lockres_unused(res)) { + mlog(ML_ERROR, "found lockres %s:%.*s: in use after deref\n", + dlm->name, res->lockname.len, res->lockname.name); + __dlm_print_one_lock_resource(res); + BUG(); + } __dlm_unhash_lockres(res); /* lockres is not in the hash now. drop the flag and wake up * any processes waiting in dlm_get_lock_resource. */ if (!master) { - spin_lock(&res->spinlock); res->state &= ~DLM_LOCK_RES_DROPPING_REF; spin_unlock(&res->spinlock); wake_up(&res->wq); - } - return 0; + } else + spin_unlock(&res->spinlock); } static void dlm_run_purge_list(struct dlm_ctxt *dlm, @@ -251,17 +243,7 @@ lockres = list_entry(dlm->purge_list.next, struct dlm_lock_resource, purge); - /* Status of the lockres *might* change so double - * check. If the lockres is unused, holding the dlm - * spinlock will prevent people from getting and more - * refs on it -- there's no need to keep the lockres - * spinlock. */ spin_lock(&lockres->spinlock); - unused = __dlm_lockres_unused(lockres); - spin_unlock(&lockres->spinlock); - - if (!unused) - continue; purge_jiffies = lockres->last_used + msecs_to_jiffies(DLM_PURGE_INTERVAL_MS); @@ -273,15 +255,29 @@ * in tail order, we can stop at the first * unpurgable resource -- anyone added after * him will have a greater last_used value */ + spin_unlock(&lockres->spinlock); break; } + /* Status of the lockres *might* change so double + * check. If the lockres is unused, holding the dlm + * spinlock will prevent people from getting and more + * refs on it. */ + unused = __dlm_lockres_unused(lockres); + if (!unused || + (lockres->state & DLM_LOCK_RES_MIGRATING)) { + mlog(0, "lockres %s:%.*s: is in use or " + "being remastered, used %d, state %d\n", + dlm->name, lockres->lockname.len, + lockres->lockname.name, !unused, lockres->state); + list_move_tail(&dlm->purge_list, &lockres->purge); + spin_unlock(&lockres->spinlock); + continue; + } + dlm_lockres_get(lockres); - /* This may drop and reacquire the dlm spinlock if it - * has to do migration. */ - if (dlm_purge_lockres(dlm, lockres)) - BUG(); + dlm_purge_lockres(dlm, lockres); dlm_lockres_put(lockres); --- linux-2.6.35.orig/fs/ocfs2/dlm/dlmmaster.c +++ linux-2.6.35/fs/ocfs2/dlm/dlmmaster.c @@ -511,8 +511,6 @@ atomic_dec(&dlm->res_cur_count); - dlm_put(dlm); - if (!hlist_unhashed(&res->hash_node) || !list_empty(&res->granted) || !list_empty(&res->converting) || @@ -585,8 +583,6 @@ res->migration_pending = 0; res->inflight_locks = 0; - /* put in dlm_lockres_release */ - dlm_grab(dlm); res->dlm = dlm; kref_init(&res->refs); @@ -3050,8 +3046,6 @@ /* check for pre-existing lock */ spin_lock(&dlm->spinlock); res = __dlm_lookup_lockres(dlm, name, namelen, hash); - spin_lock(&dlm->master_lock); - if (res) { spin_lock(&res->spinlock); if (res->state & DLM_LOCK_RES_RECOVERING) { @@ -3069,14 +3063,15 @@ spin_unlock(&res->spinlock); } + spin_lock(&dlm->master_lock); /* ignore status. only nonzero status would BUG. */ ret = dlm_add_migration_mle(dlm, res, mle, &oldmle, name, namelen, migrate->new_master, migrate->master); -unlock: spin_unlock(&dlm->master_lock); +unlock: spin_unlock(&dlm->spinlock); if (oldmle) { --- linux-2.6.35.orig/fs/ecryptfs/inode.c +++ linux-2.6.35/fs/ecryptfs/inode.c @@ -264,7 +264,7 @@ printk(KERN_ERR "%s: Out of memory whilst attempting " "to allocate ecryptfs_dentry_info struct\n", __func__); - goto out_dput; + goto out_put; } ecryptfs_set_dentry_lower(ecryptfs_dentry, lower_dentry); ecryptfs_set_dentry_lower_mnt(ecryptfs_dentry, lower_mnt); @@ -339,8 +339,9 @@ out_free_kmem: kmem_cache_free(ecryptfs_header_cache_2, page_virt); goto out; -out_dput: +out_put: dput(lower_dentry); + mntput(lower_mnt); d_drop(ecryptfs_dentry); out: return rc; --- linux-2.6.35.orig/fs/ecryptfs/file.c +++ linux-2.6.35/fs/ecryptfs/file.c @@ -199,7 +199,7 @@ "the persistent file for the dentry with name " "[%s]; rc = [%d]\n", __func__, ecryptfs_dentry->d_name.name, rc); - goto out; + goto out_free; } } if ((ecryptfs_inode_to_private(inode)->lower_file->f_flags & O_RDONLY) @@ -207,7 +207,7 @@ rc = -EPERM; printk(KERN_WARNING "%s: Lower persistent file is RO; eCryptfs " "file must hence be opened RO\n", __func__); - goto out; + goto out_free; } ecryptfs_set_file_lower( file, ecryptfs_inode_to_private(inode)->lower_file); @@ -292,12 +292,40 @@ return rc; } -static int ecryptfs_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, unsigned long arg); +static long +ecryptfs_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct file *lower_file = NULL; + long rc = -ENOTTY; + + if (ecryptfs_file_to_private(file)) + lower_file = ecryptfs_file_to_lower(file); + if (lower_file && lower_file->f_op && lower_file->f_op->unlocked_ioctl) + rc = lower_file->f_op->unlocked_ioctl(lower_file, cmd, arg); + return rc; +} + +#ifdef CONFIG_COMPAT +static long +ecryptfs_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct file *lower_file = NULL; + long rc = -ENOIOCTLCMD; + + if (ecryptfs_file_to_private(file)) + lower_file = ecryptfs_file_to_lower(file); + if (lower_file && lower_file->f_op && lower_file->f_op->compat_ioctl) + rc = lower_file->f_op->compat_ioctl(lower_file, cmd, arg); + return rc; +} +#endif const struct file_operations ecryptfs_dir_fops = { .readdir = ecryptfs_readdir, - .ioctl = ecryptfs_ioctl, + .unlocked_ioctl = ecryptfs_unlocked_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = ecryptfs_compat_ioctl, +#endif .open = ecryptfs_open, .flush = ecryptfs_flush, .release = ecryptfs_release, @@ -313,7 +341,10 @@ .write = do_sync_write, .aio_write = generic_file_aio_write, .readdir = ecryptfs_readdir, - .ioctl = ecryptfs_ioctl, + .unlocked_ioctl = ecryptfs_unlocked_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = ecryptfs_compat_ioctl, +#endif .mmap = generic_file_mmap, .open = ecryptfs_open, .flush = ecryptfs_flush, @@ -322,20 +353,3 @@ .fasync = ecryptfs_fasync, .splice_read = generic_file_splice_read, }; - -static int -ecryptfs_ioctl(struct inode *inode, struct file *file, unsigned int cmd, - unsigned long arg) -{ - int rc = 0; - struct file *lower_file = NULL; - - if (ecryptfs_file_to_private(file)) - lower_file = ecryptfs_file_to_lower(file); - if (lower_file && lower_file->f_op && lower_file->f_op->ioctl) - rc = lower_file->f_op->ioctl(ecryptfs_inode_to_lower(inode), - lower_file, cmd, arg); - else - rc = -ENOTTY; - return rc; -} --- linux-2.6.35.orig/fs/proc/task_mmu.c +++ linux-2.6.35/fs/proc/task_mmu.c @@ -210,6 +210,7 @@ int flags = vma->vm_flags; unsigned long ino = 0; unsigned long long pgoff = 0; + unsigned long start; dev_t dev = 0; int len; @@ -220,8 +221,14 @@ pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; } + /* We don't show the stack guard page in /proc/maps */ + start = vma->vm_start; + if (vma->vm_flags & VM_GROWSDOWN) + if (!vma_stack_continue(vma->vm_prev, vma->vm_start)) + start += PAGE_SIZE; + seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n", - vma->vm_start, + start, vma->vm_end, flags & VM_READ ? 'r' : '-', flags & VM_WRITE ? 'w' : '-', --- linux-2.6.35.orig/fs/proc/version_signature.c +++ linux-2.6.35/fs/proc/version_signature.c @@ -0,0 +1,31 @@ +#include +#include +#include +#include +#include +#include + +static int version_signature_proc_show(struct seq_file *m, void *v) +{ + seq_printf(m, "%s\n", CONFIG_VERSION_SIGNATURE); + return 0; +} + +static int version_signature_proc_open(struct inode *inode, struct file *file) +{ + return single_open(file, version_signature_proc_show, NULL); +} + +static const struct file_operations version_signature_proc_fops = { + .open = version_signature_proc_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +static int __init proc_version_signature_init(void) +{ + proc_create("version_signature", 0, NULL, &version_signature_proc_fops); + return 0; +} +module_init(proc_version_signature_init); --- linux-2.6.35.orig/fs/proc/vmcore.c +++ linux-2.6.35/fs/proc/vmcore.c @@ -163,7 +163,7 @@ static const struct file_operations proc_vmcore_operations = { .read = read_vmcore, - .llseek = generic_file_llseek, + .llseek = default_llseek, }; static struct vmcore* __init get_new_element(void) --- linux-2.6.35.orig/fs/proc/Makefile +++ linux-2.6.35/fs/proc/Makefile @@ -26,3 +26,4 @@ proc-$(CONFIG_PROC_DEVICETREE) += proc_devtree.o proc-$(CONFIG_PRINTK) += kmsg.o proc-$(CONFIG_PROC_PAGE_MONITOR) += page.o +proc-y += version_signature.o --- linux-2.6.35.orig/fs/gfs2/log.c +++ linux-2.6.35/fs/gfs2/log.c @@ -932,7 +932,7 @@ do { prepare_to_wait(&sdp->sd_logd_waitq, &wait, - TASK_UNINTERRUPTIBLE); + TASK_INTERRUPTIBLE); if (!gfs2_ail_flush_reqd(sdp) && !gfs2_jrnl_flush_reqd(sdp) && !kthread_should_stop()) --- linux-2.6.35.orig/fs/cifs/connect.c +++ linux-2.6.35/fs/cifs/connect.c @@ -1647,9 +1647,6 @@ if (ses) { cFYI(1, "Existing smb sess found (status=%d)", ses->status); - /* existing SMB ses has a server reference already */ - cifs_put_tcp_session(server); - mutex_lock(&ses->session_mutex); rc = cifs_negotiate_protocol(xid, ses); if (rc) { @@ -1672,6 +1669,9 @@ } } mutex_unlock(&ses->session_mutex); + + /* existing SMB ses has a server reference already */ + cifs_put_tcp_session(server); FreeXid(xid); return ses; } --- linux-2.6.35.orig/init/initramfs.c +++ linux-2.6.35/init/initramfs.c @@ -8,6 +8,7 @@ #include #include #include +#include static __initdata char *message; static void __init error(char *x) @@ -568,7 +569,9 @@ } #endif -static int __init populate_rootfs(void) +LIST_HEAD(populate_rootfs_domain); + +static void __init async_populate_rootfs(void) { char *err = unpack_to_rootfs(__initramfs_start, __initramfs_end - __initramfs_start); @@ -582,7 +585,7 @@ initrd_end - initrd_start); if (!err) { free_initrd(); - return 0; + return; } else { clean_rootfs(); unpack_to_rootfs(__initramfs_start, @@ -606,6 +609,25 @@ free_initrd(); #endif } - return 0; + return; } + +static int __initdata rootfs_populated; + +static int __init populate_rootfs_early(void) +{ + if (num_online_cpus() > 1) { + rootfs_populated = 1; + async_schedule_domain(async_populate_rootfs, NULL, + &populate_rootfs_domain); + } +} +static int __init populate_rootfs(void) +{ + if (!rootfs_populated) + async_schedule_domain(async_populate_rootfs, NULL, + &populate_rootfs_domain); +} + +earlyrootfs_initcall(populate_rootfs_early); rootfs_initcall(populate_rootfs); --- linux-2.6.35.orig/init/main.c +++ linux-2.6.35/init/main.c @@ -107,6 +107,11 @@ */ #define MAX_INIT_ARGS CONFIG_INIT_ENV_ARG_LIMIT #define MAX_INIT_ENVS CONFIG_INIT_ENV_ARG_LIMIT +#ifdef CONFIG_INIT_PASS_ALL_PARAMS +#define INIT_PASS_FUNCTION pass_all_bootoptions +#else +#define INIT_PASS_FUNCTION pass_unknown_bootoptions +#endif extern void time_init(void); /* Default late time init is NULL. archs can override this later. */ @@ -251,7 +256,7 @@ static int __init quiet_kernel(char *str) { - console_loglevel = 4; + console_loglevel = 2; return 0; } @@ -267,10 +272,11 @@ early_param("loglevel", loglevel); /* - * Unknown boot options get handed to init, unless they look like - * unused parameters (modprobe will find them in /proc/cmdline). + * Select boot options to hand to init. If all is set hand off them all + * otherwise only hand off unused ones which do not apply to modules + * (modprobe will find them in /proc/cmdline). */ -static int __init unknown_bootoption(char *param, char *val) +static int __init pass_bootoption(char *param, char *val, int all) { /* Change NUL term back to "=", to make "param" the whole string. */ if (val) { @@ -286,11 +292,11 @@ } /* Handle obsolete-style parameters */ - if (obsolete_checksetup(param)) + if (obsolete_checksetup(param) && !all) return 0; /* Unused module parameter. */ - if (strchr(param, '.') && (!val || strchr(param, '.') < val)) + if (!all && strchr(param, '.') && (!val || strchr(param, '.') < val)) return 0; if (panic_later) @@ -321,6 +327,16 @@ } return 0; } +static int __init pass_unknown_bootoptions(char *param, char *val, int known) +{ + if (known) + return 0; + return pass_bootoption(param, val, 0); +} +static int __init pass_all_bootoptions(char *param, char *val, int known) +{ + return pass_bootoption(param, val, 1); +} #ifdef CONFIG_DEBUG_PAGEALLOC int __read_mostly debug_pagealloc_enabled = 0; @@ -460,10 +476,13 @@ } /* Check for early params. */ -static int __init do_early_param(char *param, char *val) +static int __init do_early_param(char *param, char *val, int known) { struct obs_kernel_param *p; + if (known) + return 0; + for (p = __setup_start; p < __setup_end; p++) { if ((p->early && strcmp(param, p->str) == 0) || (strcmp(param, "console") == 0 && @@ -584,7 +603,7 @@ parse_early_param(); parse_args("Booting kernel", static_command_line, __start___param, __stop___param - __start___param, - &unknown_bootoption); + &INIT_PASS_FUNCTION); /* * These use large bootmem allocations and must precede * kmem_cache_init() @@ -908,6 +927,12 @@ (void) sys_dup(0); (void) sys_dup(0); /* + * We need to ensure that the filesystem is ready by this point, wait for + * async_populate_rootfs to complete. + */ + async_synchronize_full_domain(&populate_rootfs_domain); + + /* * check if there is an early userspace init. If yes, let it do all * the work */ --- linux-2.6.35.orig/init/noinitramfs.c +++ linux-2.6.35/init/noinitramfs.c @@ -22,6 +22,8 @@ #include #include +LIST_HEAD(populate_rootfs_domain); + /* * Create a simple rootfs that is similar to the default initramfs */ --- linux-2.6.35.orig/init/version.c +++ linux-2.6.35/init/version.c @@ -39,7 +39,11 @@ /* FIXED STRINGS! Don't touch! */ const char linux_banner[] = "Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@" - LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n"; + LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION +#ifdef CONFIG_VERSION_SIGNATURE + " (" CONFIG_VERSION_SIGNATURE ")" +#endif + "\n"; const char linux_proc_banner[] = "%s version %s" --- linux-2.6.35.orig/init/Kconfig +++ linux-2.6.35/init/Kconfig @@ -75,6 +75,13 @@ Maximum of each of the number of arguments and environment variables passed to init from the kernel command line. +config INIT_PASS_ALL_PARAMS + bool "Pass all (known and unknown) kernel parameters to init" + default n + help + Pass all kernel command line parameters to init, this includes + those consumed by kernel modules. This is useful for upstart + based systems. If in doubt say N. config CROSS_COMPILE string "Cross-compiler tool prefix" @@ -184,6 +191,15 @@ endchoice +config VERSION_SIGNATURE + string "Arbitrary version signature" + help + This string will be created in a file, /proc/version_signature. It + is useful in determining arbitrary data about your kernel. For instance, + if you have several kernels of the same version, but need to keep track + of a revision of the same kernel, but not affect it's ability to load + compatible modules, this is the easiest way to do that. + config SWAP bool "Support for paging of anonymous memory (swap)" depends on MMU && BLOCK --- linux-2.6.35.orig/debian.master/changelog +++ linux-2.6.35/debian.master/changelog @@ -0,0 +1,4684 @@ +linux (2.6.35-23.40) maverick-proposed; urgency=low + + [ Brad Figg ] + + * No change rebuild. + + -- Brad Figg Wed, 17 Nov 2010 12:01:53 -0800 + +linux (2.6.35-23.39) maverick-proposed; urgency=low + + [ Brad Figg ] + - LP: #676214 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: ARM: OMAP3: beagle: use GPIO2 on the xM A3 to turn DVI on + - LP: #663642 + + -- Brad Figg Tue, 16 Nov 2010 11:32:19 -0800 + +linux (2.6.35-23.38) maverick-proposed; urgency=low + + [ Brad Figg ] + + * Revert "SAUCE: ARM: OMAP3: beagle: use GPIO2 on the xM A3 to turn DVI + on" + + [ Upstream Kernel Changes ] + + * Revert "(upstream) ALSA: hda - Apply ALC269 VAIO fix-up to all Sony + laptops with ALC269" + * Revert "ALSA: HDA: Correctly apply position_fix quirks for ATI and VIA + controllers" + * Buglink Fixup for reverted unverified fixes + + -- Brad Figg Mon, 15 Nov 2010 11:34:55 -0800 + +linux (2.6.35-23.37) maverick-proposed; urgency=low + + [ Brad Figg ] + + * ARM: Temporarily disable module check for armel + + -- Brad Figg Thu, 04 Nov 2010 11:44:18 -0700 + +linux (2.6.35-23.36) maverick-proposed; urgency=low + + [ Andy Whitcroft ] + + * reduce disk usage during buildd builds + - LP: #645653 + + [ Brad Figg ] + + * ARM: Temporarily disable module check for armel + + [ Enric Balletbo i Serra ] + + * ARM: igepv2: Adding support for VBUS and overcurrent + - LP: #651589 + * ARM: igepv2: Fix and improve LED handling + - LP: #654582 + * ARM: igepv2: Introduce function to dectect HW version + - LP: #654586 + * ARM: igepv2: Fix handling of GPIOs for WLAN-BT combo + - LP: #654590 + * ARM: igepv2: Add i2c eeprom driver to read EDID + - LP: #654594 + * ARM: igepv2: Remove VMMC2 regulator + - LP: #654595 + + [ Leann Ogasawara ] + + * ARM: Temporarily disable module check for armel + + [ Mathieu Poirier ] + + * SAUCE: ARM: Add DSS2 support for Overo board + - LP: #660811 + + [ Maurus Cuelenaere ] + + * SAUCE: ARM: OMAP3: Add S-Video output to IGEPv2 board + - LP: #607250 + + [ Ricardo Salveti de Araujo ] + + * [Config] Remove CONFIG_FIXED_PHY and move CONFIG_SMSC911X from m to y + for omap + - LP: #645689 + * SAUCE: ARM: OMAP3: Adding vdd_sdi regulator supply to IGEPv2 board + - LP: #607250 + * SAUCE: ARM: OMAP3: beagle: use GPIO2 on the xM A3 to turn DVI on + - See: #663642 + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) ALSA: HDA: Use model=auto for LG R510" + * Revert "(pre-stable) ALSA: hda - Rename iMic to Int Mic on Lenovo + NB0763" + * Revert "Input: appletouch - fix integer overflow issue" + * Revert "ALSA: hda - Handle pin NID 0x1a on ALC259/269" + * Revert "ALSA: hda - Handle missing NID 0x1b on ALC259 codec" + * Revert "(pre-stable) ALSA: hda - Add a new hp-laptop model for Conexant + 5066, tested on HP G60" + * Revert "mmc: build fix: mmc_pm_notify is only available with + CONFIG_PM=y" + * Revert "mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume" + * Revert "(pre-stable) bounce: call flush_dcache_page() after + bounce_copy_vec()" + * Revert "Input: i8042 - reset keyboard controller wehen resuming from + S2R" + * Revert "ALSA: HDA: Enable internal speaker on Dell M101z" + * Revert "(pre-stable) drm/i915: don't enable self-refresh on Ironlake" + * Revert "drm/i915: Allow LVDS on pipe A on gen4+" + * (pre-stable) ACPI: enable repeated PCIEXP wakeup by clearing + PCIEXP_WAKE_STS on resume + - LP: #613381 + * (upstream) ALSA: hda - Apply ALC269 VAIO fix-up to all Sony laptops + with ALC269 + - See: #546769, #598938, #637291, #642892, #648871, #655386 + * hwmon: (ads7871) Fix ads7871_probe error paths + * hwmon: (k8temp) Differentiate between AM2 and ASB1 + * xen: handle events as edge-triggered + * xen: use percpu interrupts for IPIs and VIRQs + * xfs: fix untrusted inode number lookup + * xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE + * ALSA: HDA: Use model=auto for LG R510 + - LP: #495134 + * ALSA: hda - Rename iMic to Int Mic on Lenovo NB0763 + - LP: #605101 + * libata-sff: remove harmful BUG_ON from ata_bmdma_qc_issue + * sata_mv: fix broken DSM/TRIM support (v2) + * pata_cmd64x: revert commit d62f5576 + * writeback: write_cache_pages doesn't terminate at nr_to_write <= 0 + * x86, tsc, sched: Recompute cyc2ns_offset's during resume from sleep + states + * perf, x86, Pentium4: Clear the P4_CCCR_FORCE_OVF flag + * netfilter: fix CONFIG_COMPAT support + * PCI: MSI: Remove unsafe and unnecessary hardware access + * PCI: MSI: Restore read_msi_msg_desc(); add get_cached_msi_msg_desc() + * direct-io: move aio_complete into ->end_io + * ext4: move aio completion after unwritten extent conversion + * xfs: move aio completion after unwritten extent conversion + * ALSA: hda - Handle missing NID 0x1b on ALC259 codec + * ALSA: hda - Handle pin NID 0x1a on ALC259/269 + * Staging: rt2870sta: Add more device IDs from vendor drivers + * staging: hv: Fix missing functions for net_device_ops + * staging: hv: Fixed bounce kmap problem by using correct index + * staging: hv: Fixed the value of the 64bit-hole inside ring buffer + * staging: hv: Increased storvsc ringbuffer and max_io_requests + * staging: hv: Fixed lockup problem with bounce_buffer scatter list + * fuse: flush background queue on connection close + * mac80211: delete work timer + * ath9k_htc: Fix disconnect issue in HT40 mode. + * ath9k_hw: Fix EEPROM uncompress block reading on AR9003 + * ath9k_hw: fix parsing of HT40 5 GHz CTLs + * ocfs2: Fix incorrect checksum validation error + * serial: bfin_sport_uart: restore transmit frame sync fix + * USB: ehci-ppc-of: problems in unwind + * USB: Fix kernel oops with g_ether and Windows + * USB: CP210x Add new device ID + * USB: cp210x: Add B&G H3000 link cable ID + * usb: allow drivers to use allocated bandwidth until unbound + * USB: ftdi_sio: Added custom PIDs for ChamSys products + * usb: serial: mos7840: Add USB ID to support the B&B Electronics + USOPTL4-2P. + * usb: serial: mos7840: Add USB IDs to support more B&B USB/RS485 + converters. + * ima: always maintain counters + * USB: cxacru: Use a bulk/int URB to access the command endpoint + * USB: cdc-acm: Adding second ACM channel support for various Nokia and + one Samsung phones + * USB: cdc-acm: Add pseudo modem without AT command capabilities + * USB: cdc-acm: Fixing crash when ACM probing interfaces with no endpoint + descriptors. + * ALSA: hda - Add a new hp-laptop model for Conexant 5066, tested on HP + G60 + - LP: #587388 + * ALSA: usb-audio: fix detection of vendor-specific device protocol + settings + * ALSA: virtuoso: work around missing reset in the Xonar DS Windows + driver + * ALSA: virtuoso: fix setting of Xonar DS line-in/mic-in controls + * ALSA: usb - Release capture substream URBs properly + * ALSA: hda - Add quirk for Lenovo T400s + * ALSA: hda - Add errata initverb sequence for CS42xx codecs + * ALSA: hda - Fix wrong HP pin detection in + snd_hda_parse_pin_def_config() + * ALSA: usb-audio: Assume first control interface is for audio + * ALSA: hda - patch_nvhdmi.c: Add missing codec IDs, unify names + * swap: prevent reuse during hibernation + * swap: discard while swapping only if SWAP_FLAG_DISCARD + * swap: do not send discards as barriers + * sysfs: checking for NULL instead of ERR_PTR + * oprofile: fix crash when accessing freed task structs + * oprofile, x86: fix init_sysfs error handling + * oprofile, x86: fix init_sysfs() function stub + * HID: Set Report ID properly for Output reports on the Control endpoint. + * libata: skip EH autopsy and recovery during suspend + * libata,pata_via: revert ata_wait_idle() removal from + ata_sff/via_tf_load() + * ahci: fix hang on failed softreset + * O_DIRECT: fix the splitting up of contiguous I/O + * tracing: Fix a race in function profile + * tracing: Do not allow llseek to set_ftrace_filter + * tracing: t_start: reset FTRACE_ITER_HASH in case of seek/pread + * irda: off by one + * hp_accel: add quirks for HP ProBook 532x and HP Mini 5102 + * gcov: fix null-pointer dereference for certain module types + * tmio_mmc: don't clear unhandled pending interrupts + * mmc: fix the use of kunmap_atomic() in tmio_mmc.h + * mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume + * mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y + * statfs() gives ESTALE error + * minix: fix regression in minix_mkdir() + * bounce: call flush_dcache_page() after bounce_copy_vec() + * mm: compaction: handle active and inactive fairly in too_many_isolated + * kernel/groups.c: fix integer overflow in groups_search + * binfmt_misc: fix binfmt_misc priority + * Input: i8042 - fix device removal on unload + * Input: i8042 - reset keyboard controller wehen resuming from S2R + * memory hotplug: fix next block calculation in is_removable + * perf: Initialize callchains roots's childen hits + * powerpc/perf_event: Reduce latency of calling perf_event_do_pending + * p54: fix tx feedback status flag check + * ath5k: check return value of ieee80211_get_tx_rate + * RDMA/cxgb3: Don't exceed the max HW CQ depth + * x86, tsc: Fix a preemption leak in restore_sched_clock_state() + * ALSA: HDA: Enable internal speaker on Dell M101z + - LP: #640254 + * x86: hpet: Work around hardware stupidity + * arm: fix really nasty sigreturn bug + * hwmon: (emc1403) Remove unnecessary hwmon_device_unregister + * hwmon: (f75375s) Shift control mode to the correct bit position + * hwmon: (f75375s) Do not overwrite values read from registers + * apm_power: Add missing break statement + * cifs: fix potential double put of TCP session reference + * NFS: Fix a typo in nfs_sockaddr_match_ipaddr6 + * SUNRPC: Fix race corrupting rpc upcall + * agp/intel: Promote warning about failure to setup flush to error. + * drm/radeon/kms: fix a regression on r7xx AGP due to the HDP flush fix + * drm/i915: Enable MI_FLUSH on Sandybridge + * drm/radeon/kms: force legacy pll algo for RV515 LVDS + * drm/radeon/kms: force legacy pll algo for RV620 LVDS + * drm/radeon/kms: properly set crtc high base on r7xx + * drm/radeon/kms/evergreen: fix gpu hangs in userspace accel code + * drm/radeon/kms/evergreen: fix backend setup + * i915: return -EFAULT if copy_to_user fails + * i915_gem: return -EFAULT if copy_to_user fails + * drm/i915/dp: Really try 5 times before giving up. + * drm/i915: Allocate the PCI resource for the MCHBAR + * drm/i915: overlay on gen2 can't address above 1G + * drm/i915: Prevent double dpms on + * drm/i915: don't enable self-refresh on Ironlake + * drm: Only decouple the old_fb from the crtc is we call mode_set* + * Linux 2.6.35.5 + - LP: #645522 + * usb: musb_debugfs: don't use the struct file private_data field with + seq_files + * USB: serial/mos*: prevent reading uninitialized stack memory + * bridge: Clear INET control block of SKBs passed into ip_fragment(). + * gro: fix different skb headrooms + * gro: Re-fix different skb headrooms + * rds: fix a leak of kernel memory + * net: RPS needs to depend upon USE_GENERIC_SMP_HELPERS + * tcp: Combat per-cpu skew in orphan tests. + * tcp: fix three tcp sysctls tuning + * tcp: select(writefds) don't hang up when a peer close connection + * tcp: Prevent overzealous packetization by SWS logic. + * udp: add rehash on connect() + * UNIX: Do not loop forever at unix_autobind(). + * l2tp: test for ethernet header in l2tp_eth_dev_recv() + * net: blackhole route should always be recalculated + * sparc64: Get rid of indirect p1275 PROM call buffer. + * drivers/net/usb/hso.c: prevent reading uninitialized memory + * drivers/net/cxgb3/cxgb3_main.c: prevent reading uninitialized stack + memory + * drivers/net/eql.c: prevent reading uninitialized stack memory + * bonding: correctly process non-linear skbs + * Staging: vt6655: fix buffer overflow + * net/llc: make opt unsigned in llc_ui_setsockopt() + * mm: fix swapin race condition + * mm: further fix swapin race condition + * virtio: console: Prevent userspace from submitting NULL buffers + * virtio: console: Fix poll blocking even though there is data to read + * agp/intel: fix physical address mask bits for sandybridge + * agp/intel: fix dma mask bits on sandybridge + * hw breakpoints: Fix pid namespace bug + * pid: make setpgid() system call use RCU read-side critical section + * sched: Fix user time incorrectly accounted as system time on 32-bit + * oprofile: Add Support for Intel CPU Family 6 / Model 22 (Intel Celeron + 540) + * drm/i915,agp/intel: Add second set of PCI-IDs for B43 + * bdi: Initialize noop_backing_dev_info properly + * char: Mark /dev/zero and /dev/kmem as not capable of writeback + * drivers/pci/intel-iommu.c: fix build with older gcc's + * mmap: call unlink_anon_vmas() in __split_vma() in case of error + * drivers/video/sis/sis_main.c: prevent reading uninitialized stack + memory + * rtc: s3c: balance state changes of wakeup flag + * Prevent freeing uninitialized pointer in compat_do_readv_writev + * /proc/vmcore: fix seeking + * vmscan: check all_unreclaimable in direct reclaim path + * percpu: fix pcpu_last_unit_cpu + * aio: do not return ERESTARTSYS as a result of AIO + * aio: check for multiplication overflow in do_io_submit + * x86 platform drivers: hp-wmi Reorder event id processing + * GFS2: gfs2_logd should be using interruptible waits + * drm/nv50: initialize ramht_refs list for faked 0 channel + * inotify: send IN_UNMOUNT events + * SCSI: mptsas: fix hangs caused by ATA pass-through + * KVM: Keep slot ID in memory slot structure + * KVM: Prevent internal slots from being COWed + * KVM: MMU: fix direct sp's access corrupted + * KVM: x86: emulator: inc/dec can have lock prefix + * KVM: MMU: fix mmu notifier invalidate handler for huge spte + * KVM: VMX: Fix host GDT.LIMIT corruption + * IA64: fix siglock + * IA64: Optimize ticket spinlocks in fsys_rt_sigprocmask + * xfs: prevent reading uninitialized stack memory + * drivers/video/via/ioctl.c: prevent reading uninitialized stack memory + * AT91: change dma resource index + * PM: Prevent waiting forever on asynchronous resume after failing + suspend + * PM / Hibernate: Avoid hitting OOM during preallocation of memory + * x86, asm: Use a lower case name for the end macro in atomic64_386_32.S + * Fix call to replaced SuperIO functions + * mm: page allocator: drain per-cpu lists after direct reclaim allocation + fails + * mm: page allocator: calculate a better estimate of NR_FREE_PAGES when + memory is low and kswapd is awake + * mm: page allocator: update free page counters after pages are placed on + the free list + * guard page for stacks that grow upwards + * Fix unprotected access to task credentials in waitid() + * sctp: Do not reset the packet during sctp_packet_config(). + * drm/i915: Ensure that the crtcinfo is populated during mode_fixup() + * alpha: Fix printk format errors + * Linux 2.6.35.6 + - LP: #649208 + * Xen: fix typo in previous patch + * Linux 2.6.35.7 + - LP: #651425 + * ALSA: HDA: Correctly apply position_fix quirks for ATI and VIA + controllers + - See: #465942, #580749, #587546 + * ALSA: hda - add ideapad model for Conexant 5051 codec + * intel_ips: potential null dereference + * drm/i915: Silence sparse over duplicate members in static initializer + - LP: #663442 + * drm/i915: Use 128k alignment for untiled display surface on i965 (v2) + - LP: #663442 + * drm/i915: Include a generation number in the device info + - LP: #663442 + * drm/i915: Fix Sandybridge fence registers + - LP: #663442 + * drm/i915/suspend: s/IS_IRONLAKE/HAS_PCH_SPLIT/ + - LP: #663442 + * drm/i915: Fix 945GM regression in e259befd + - LP: #663442 + * hwmon: coretemp: update hotplug condition check + - LP: #664181 + * hwmon: coretemp: enable coretemp device add operation failure + - LP: #664181 + * drivers/hwmon/coretemp.c: remove unneeded #ifdef CONFIG_HOTPLUG_CPU + - LP: #664181 + * fix "hwmon: coretemp: update hotplug condition check" + - LP: #664181 + * hwmon: (coretemp) Fix harmless build warning + - LP: #664181 + * x86/hwmon: fix module init for hotplug-but-no-device-found case + - LP: #664181 + * x86/hwmon: fix initialization of coretemp + - LP: #664181 + * x86/hwmon: register alternate sibling upon CPU removal + - LP: #664181 + * hwmon (coretemp): Fix build breakage if SMP is undefined + - LP: #664181 + * x86/hwmon: avoid deadlock on CPU removal in pkgtemp + - LP: #664181 + * x86/hwmon: don't leak device attribute file from pkgtemp_probe() and + pkgtemp_remove() + - LP: #664181 + * x86/hwmon: fix initialization of pkgtemp + - LP: #664181 + * x86/hwmon: pkgtemp has no dependency on PCI + - LP: #664181 + + -- Brad Figg Fri, 22 Oct 2010 08:18:59 -0700 + +linux (2.6.35-22.35) maverick-security; urgency=low + + [ Upstream Kernel Changes ] + + * v4l: disable dangerous buggy compat function + - CVE-2010-2963 + * Local privilege escalation vulnerability in RDS sockets + - CVE-2010-3904 + + -- Steve Conklin Thu, 14 Oct 2010 13:33:49 -0500 + +linux (2.6.35-22.34) maverick-proposed; urgency=low + + [ John Johansen ] + + * SAUCE: Return correct error code for mediated network connections + - LP: #647071 + + [ Upstream Kernel Changes ] + + * irda: Correctly clean up self->ias_obj on irda_bind() failure. + - CVE-2010-2954 + * wireless extensions: fix kernel heap content leak + - CVE-2010-2955 + * KEYS: Fix RCU no-lock warning in keyctl_session_to_parent() + - CVE-2010-2960 + * KEYS: Fix bug in keyctl_session_to_parent() if parent has no session + keyring + - CVE-2010-2960 + * ALSA: seq/oss - Fix double-free at error path of snd_seq_oss_open() + - CVE-2010-3080 + * intel_idle: PCI quirk to prevent Lenovo Ideapad s10-3 boot hang + - LP: #634702 + * drm/i915: Rephrase pwrite bounds checking to avoid any potential + overflow + - CVE-2010-2962 + * drm/i915: Skip pread/pwrite if size to copy is 0. + - CVE-2010-2962 + * drm/i915: Sanity check pread/pwrite + - CVE-2010-2962 + * Fix pktcdvd ioctl dev_minor range check + - CVE-2010-3437 + * Fix out-of-bounds reading in sctp_asoc_get_hmac() + - CVE-2010-3705 + * ocfs2: Don't walk off the end of fast symlinks. + - CVE-2010-NNN2 + + -- Leann Ogasawara Mon, 20 Sep 2010 08:36:53 -0700 + +linux (2.6.35-22.33) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops" + - LP: #641320 + + [ Brian Rogers ] + + * SAUCE: ir-core: Fix null dereferences in the protocols sysfs interface + - LP: #624701 + + [ Christopher James Halse Rogers ] + + * SAUCE: Nouveau: Add quirk framework to disable acceleration + - LP: #544088, #546393 + * SAUCE: Nouveau: Disable acceleration on MacBook Pros + - LP: #546393 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: allow newer tools to load policy on older + kernels" + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + + [ Mathieu J. Poirier ] + + * SAUCE: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * ALSA: HDA: Enable internal speaker on Dell M101z + - LP: #640254 + + -- Leann Ogasawara Fri, 17 Sep 2010 13:21:28 -0700 + +linux (2.6.35-22.32) maverick; urgency=low + + [ Arjan van de Ven ] + + * SAUCE: libata: Add ALPM power state accounting to the AHCI driver + + [ David Henningsson ] + + * SAUCE: ALSA: HDA: Enable internal mic on Dell E6410 and Dell E6510 + - LP: #605047, #628961 + + [ John Johansen ] + + * [Upstream] AppArmor: Fix splitting an fqname into separate namespace + and profile names + - LP: #615947 + * [Upstream] AppArmor: Fix locking from removal of profile namespace + - LP: #615947 + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + * SAUCE: Improve Amazon EBS performance for EC2 + - LP: #634316 + + [ Leann Ogasawara ] + + * Revert "SAUCE: i915 KMS -- blacklist i855" + * Revert "SAUCE: i915 KMS -- blacklist i845g" + * Revert "SAUCE: i915 KMS -- blacklist i830" + * Revert "SAUCE: i915 KMS -- support disabling KMS for known broken + devices" + * execute module-inclusion within a subshell + - LP: #621175 + + [ Upstream Kernel Changes ] + + * (pre-stable) bounce: call flush_dcache_page() after bounce_copy_vec() + - LP: #633227 + * (pre-stable) drm/i915: don't enable self-refresh on Ironlake + - LP: #629711 + * (pre-stable) mm: Move vma_stack_continue into mm.h + * x86, hwmon: Fix unsafe smp_processor_id() in thermal_throttle_add_dev + - LP: #601073 + * PM / Runtime: Make runtime_status attribute not debug-only (v. 2) + * PM / Runtime: Add runtime PM statistics (v3) + * compat: Make compat_alloc_user_space() incorporate the access_ok() + - CVE-2010-3081 + * x86-64, compat: Test %rax for the syscall number, not %eax + - CVE-2010-3301 + * x86-64, compat: Retruncate rax after ia32 syscall entry tracing + - CVE-2010-3301 + + -- Leann Ogasawara Tue, 14 Sep 2010 08:46:49 -0700 + +linux (2.6.35-21.31) maverick; urgency=low + + [ Andy Whitcroft ] + + * bodge linux-libc-dev package version due to ti-omap4 error + * linux-libc-dev -- ensure we can only build this on debian.master + + -- Leann Ogasawara Mon, 13 Sep 2010 09:54:31 -0700 + +linux (2.6.35-21.30) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + + [ Daniel Lezcano ] + + * SAUCE: fix compilation warning when CONFIG_SECURITY is not set + + [ Henrik Rydberg ] + + * SAUCE: Input: wacom - add fuzz parameters to features + * SAUCE: Input: wacom - collect device quirks into single function + * SAUCE: Input: wacom - add support for the Bamboo Touch trackpad + * SAUCE: Input: wacom - add a quirk for low resolution Bamboo devices + * SAUCE: hid: ntrig: Remove unused device ids + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Correct logic for quirks + * SAUCE: hid: ntrig: zero-initialize ntrig struct + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Leann Ogasawara ] + + * SAUCE: ndiswrapper: Initialize buffer index and check its value + - LP: #613796 + + [ Manoj Iyer ] + + * SAUCE: Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops + - LP: #632884 + + [ Ping Cheng ] + + * SAUCE: Input: wacom - parse the Bamboo device family + + [ Rafi Rubin ] + + * SAUCE: hid: ntrig: identify firmware version (wiggled) + + [ Tim Gardner ] + + * [Config] CONFIG_NL80211_TESTMODE=n + + [ Upstream Kernel Changes ] + + * Revert "input: mt: Add support for the Bamboo Touch trackpad" + * e1000e: initial support for 82579 LOMs + * e1000e: correct MAC-PHY interconnect register offset for 82579 + * (pre-stable) ALSA: hda - Add a new hp-laptop model for Conexant 5066, + tested on HP G60 + - LP: #587388 + * DSS2: Don't power off a panel twice + - LP: #588243 + * mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y + * Input: i8042 - reset keyboard controller wehen resuming from S2R + - LP: #86820 + * ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs + - LP: #414795 + * agp/intel: Support the extended physical addressing bits on + Sandybridge. + - LP: #632488 + * drm/i915,intel_agp: Add support for Sandybridge D0 + - LP: #632488 + * (pre-stable) intel_agp,i915: Add more sandybridge graphics device ids + - LP: #632488 + * mmc: omap: fix for bus width which improves SD card's peformance. + + -- Leann Ogasawara Tue, 07 Sep 2010 09:58:52 -0700 + +linux (2.6.35-20.29) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: i915 KMS -- support disabling KMS for known broken devices + - LP: #563277 + * SAUCE: i915 KMS -- blacklist i830 + - LP: #542208, #563277 + * SAUCE: i915 KMS -- blacklist i845g + - LP: #541492, #563277 + * SAUCE: i915 KMS -- blacklist i855 + - LP: #511001, #541511, #563277 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_PKGTEMP=m + - LP: #601073 + * ARM: Temporarily disable module check for armel + * rebase to v2.6.35.4 + * [Config] update configs following rebase to v2.6.35.4 + + [ Ricardo Salveti de Araujo ] + + * [Config] Change CONFIG_LEDS_TRIGGER_HEARTBEAT from module to built-in + in Omap + + [ Tim Gardner ] + + * [Config] Added be2net, be2scsi to udebs + - LP: #628776 + + [ Upstream Kernel Changes ] + + * x86, cpu: Package Level Thermal Control, Power Limit Notification + definitions + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: thermal throttling handler + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: power limit + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp documentation + - LP: #601073 + * hid: 3m: Adjust to sequential MT HID protocol + * hid: 3m: Convert to MT slots + * hid: 3m: Correct touchscreen emulation + * hid: 3m: Adjust major / minor axes to scale + * input: bcm5974: Adjust major / minor to scale + * HID: magicmouse: don't allow hidinput to initialize the device + * HID: magicmouse: simplify multitouch feature request + * HID: magicmouse: simplify touch data bit manipulation + * HID: magicmouse: simplify touch down logic + * HID: magicmouse: remove timestamp logic + * HID: magicmouse: enable Magic Trackpad support + * HID: magicmouse: Adjust major / minor axes to scale + * mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume + - LP: #477106 + * drm/i915: fix VGA plane disable for Ironlake+ + - LP: #602281 + + -- Leann Ogasawara Mon, 30 Aug 2010 08:38:01 -0700 + +linux (2.6.35-19.28) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.27. Some armel udebs were accidentally deleted + from the archive and a no-change rebuild was attempted. However, the ABI + did not get bumped and resulted in build failures for 2.6.35-19.27. Fix + up the ABI and re-upload. + + -- Leann Ogasawara Sat, 28 Aug 2010 16:42:27 -0700 + +linux (2.6.35-19.27) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.26. Some armel udebs were accidentally deleted + from the archive. + + -- Leann Ogasawara Fri, 27 Aug 2010 08:58:35 -0700 + +linux (2.6.35-19.26) maverick; urgency=low + + [ Upstream Kernel Changes ] + + * ARM: OMAP: Beagle: revision detection + * ARM: OMAP: Beagle: only Cx boards use pin 23 for write protect + * ARM: OMAP: Beagle: no gpio_wp pin connection on xM + + -- Leann Ogasawara Thu, 26 Aug 2010 09:15:09 -0700 + +linux (2.6.35-19.25) maverick; urgency=low + + [ Jarod Wilson ] + + * SAUCE: Bring in staging/lirc from 2.6.36 + - LP: #609234 + * SAUCE: Update ir-core to linuxtv/other which should be merged for + 2.6.36. + - LP: #609234 + * SAUCE: Fix memleaks in imon and mceusb drivers + - LP: #609234 + * SAUCE: Bring in streamzap support from linuxtv/other + - LP: #609234 + + [ Mario Limonciello ] + + * Remove ubuntu/lirc in favor of staging/lirc from 2.6.36 + - LP: #609234 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: adding i2c eeprom driver to read EDID + - LP: #608279 + + [ Upstream Kernel Changes ] + + * intel_idle: disable module support + - LP: #615265 + * (pre-stable) ALSA: hda - Ensure codec patch files are checked for the + correct codec ID + * (pre-stable) ALSA: hda - Rename iMic to Int Mic on Lenovo NB0763 + - LP: #605101 + * (pre-stable) ALSA: HDA: Use model=auto for LG R510 + - LP: #495134 + * (pre-stable) ALSA: HDA: Add Sony VAIO quirk for ALC269 + - LP: #519066 + * (pre-stable) ALSA: HDA: Fix front mic on Dell Precision M6500 + - LP: #519066 + * input: mt: Initialize slots to unused (rev2) + * input: mt: Add support for the Bamboo Touch trackpad + * hid: Add a hid quirk for input sync override + + -- Leann Ogasawara Mon, 23 Aug 2010 12:42:52 -0700 + +linux (2.6.35-18.24) maverick; urgency=low + + [ Colin Watson ] + + * Pass DEB_MAINT_PARAMS to hook scripts + + [ Leann Ogasawara ] + + * [Config] Add CONFIG_INPUT_UINPUT=y to config enforcer + - LP: #584812 + * rebase to v2.6.35.3 + + [ Upstream Kernel Changes ] + + * (pre-stable) dell-wmi: Add support for eject key on Dell Studio 1555 + - LP: #609234 + * can: add limit for nframes and clean up signed/unsigned variables + - CVE-2010-2959 + * drm: Initialize ioctl struct when no user data is present + - CVE-2010-2803 + * ARM: initial stack protector (-fstack-protector) support + * ARM: stack protector: change the canary value per task + * [ARM] implement arch_randomize_brk() + * [ARM] add address randomization to mmap() + * ARM: fix ASLR of PIE executables + + -- Leann Ogasawara Sun, 22 Aug 2010 19:22:04 -0700 + +linux (2.6.35-17.23) maverick; urgency=low + + [ Jeremy Kerr ] + + * [Config] build-in uinput module + - LP: #584812 + + [ Leann Ogasawara ] + + * Revert "[Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS" + * Revert "[Config] [FTBS] ia64: Temporarily disable gpiolib" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MTD_NAND_DENALI" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MFD_JANZ_CMODIO" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_INFINIBAND_QIB" + * [Config] Enable INTEL_IPS + - LP: #601057 + * Remove ia64 support + * [Config] Update portsconfigs after removing ia64 support + * Remove sparc support + * [Config] Update portsconfigs after removing sparc support + + [ Linus Torvalds ] + + * (pre-stable) mm: fix page table unmap for stack guard page properly + + [ Mathieu J. Poirier ] + + * SAUCE: (no-up) ARM: Resetting power_mode to its original value. + - LP: #591941 + + [ Upstream Kernel Changes ] + + * timer: add on-stack deferrable timer interfaces + - LP: #601057 + * x86 platform driver: intelligent power sharing driver + - LP: #601057 + * IPS driver: add GPU busy and turbo checking + - LP: #601057 + * X86: intel_ips, check for kzalloc properly + - LP: #601057 + * ips driver: make it less chatty + - LP: #601057 + + -- Leann Ogasawara Tue, 17 Aug 2010 09:38:08 -0700 + +linux (2.6.35-16.22) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- more agressivly clean up after depmod on purge + - LP: #618591 + + [ Henrik Rydberg ] + + * SAUCE: hid: 3m: Simplify touchsreen emulation logic + + [ Leann Ogasawara ] + + * ubuntu: iscsitarget -- version 1.4.20.2 + * ubuntu: rtl8192se -- update to version 0017.0507.2010 + * rebase to v2.6.35.2 + * [Config] update configs following rebase to v2.6.35.2 + * [Config] update ports configs following rebase to v2.6.35.2 + + [ Luke Yelavich ] + + * [Config] Enable new firewire stack on powerpc + + [ Mathieu J. Poirier ] + + * SAUCE: (drop after 2.6.35) ARM: Using gpmc function to init nand flash. + - LP: #608266 + + -- Leann Ogasawara Thu, 12 Aug 2010 09:58:01 -0700 + +linux (2.6.35-15.21) maverick; urgency=low + + [ Luke Yelavich ] + + * [Config] CONFIG_SND_USB_UA101=m for all architectures + + [ Upstream Kernel Changes ] + + * Input: introduce MT event slots + * Input: document the MT event slot protocol + * (pre-stable) sched: Revert nohz_ratelimit() for now + * (pre-stable) drm/radeon/kms: add missing copy from user + - LP: #606081 + + [ Leann Ogasawara ] + + * rebase to v2.6.35.1 + + -- Leann Ogasawara Mon, 09 Aug 2010 09:24:04 -0700 + +linux (2.6.35-14.20) maverick; urgency=low + + [ Andy Whitcroft ] + + * update Vcs-Git to point to maverick repo + * debian -- include the debian packaging in the -source package + - LP: #608674 + * select debian source format 1.0 + * add support for building selected stages of kernel + - LP: #603087 + * cleanup conditional dependancy handling + - LP: #603087 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Handle missing NID 0x1b on ALC259 codec + - LP: #582199, #586418, #588031 + * ALSA: hda - Handle pin NID 0x1a on ALC259/269 + - LP: #582199, #586418, #588031 + * sched: Revert nohz_ratelimit() for now + + -- Leann Ogasawara Tue, 03 Aug 2010 08:46:47 -0700 + +linux (2.6.35-14.19) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35 + + -- Leann Ogasawara Sun, 01 Aug 2010 10:35:56 -0700 + +linux (2.6.35-13.18) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: (no-up) Modularize vesafb -- fix initialisation + * SAUCE: add tracing for user initiated readahead requests + * SAUCE: vt -- maintain bootloader screen mode and content until vt + switch + * SAUCE: vt -- allow grub to request automatic vt_handoff + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: drm -- stop early access to drm devices + + [ Bryan Wu ] + + * CONFIG: compile in OTG driver and Transceiver driver + - LP: #566645 + * remove OTG modules from modules list file + + [ John Johansen ] + + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-27 + - LP: #581525, #599450 + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-29 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: AppArmor: Allow dfa backward compatibility with broken userspace + * SAUCE: fix pv-ops for legacy Xen + * SAUCE: blkfront: default to sd devices + * [Config] Build in drivers required for Xen pv-ops + + [ Leann Ogasawara ] + + * Revert "[Upstream] i915: Use the correct mask to detect i830 aperture + size." + + [ Lee Jones ] + + * SAUCE: ARM: OMAP: Add macros for comparing silicon revision + - LP: #608095 + * SAUCE: OMAP: DSS2: check for both cpu type and revision, rather than + just revision + - LP: #608095 + * SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX + - LP: #608095 + * SAUCE: ARM: OMAP: Beagle: support twl gpio differences on xM + - LP: #608095 + + [ Upstream Kernel Changes ] + + * agp/intel: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + -- Leann Ogasawara Fri, 30 Jul 2010 15:46:59 -0700 + +linux (2.6.35-12.17) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + * [Config] update configs following rebase to v2.6.35-rc6 + * [Config] update ports configs following rebase to v2.6.35-rc6 + * SAUCE: [FTBS] armel: define KEY_F10 and KEYF11 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + + -- Leann Ogasawara Fri, 23 Jul 2010 16:16:38 +0200 + +linux (2.6.35-11.16) maverick; urgency=low + + [ Leann Ogasawara ] + + * Bump ABI for new compiler update + + -- Leann Ogasawara Fri, 23 Jul 2010 10:24:58 +0200 + +linux (2.6.35-10.15) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "SAUCE: ensure vga16fb loads if no other driver claims the VGA + device" + * [Config] Enable CONFIG_M686=y + - LP: #592495 + + [ Upstream Kernel Changes ] + + * tracing: Add alignment to syscall metadata declarations + + -- Leann Ogasawara Tue, 20 Jul 2010 18:18:49 +0200 + +linux (2.6.35-9.14) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- update to b37c575759dc4535ccc03241c584ad5fe69e3b25 + + [ John Johansen ] + + * [Config] Enable DRBD as a module + + [ Kees Cook ] + + * SAUCE: Yama: verify inode is symlink to avoid bind mounts + - LP: #604407 + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] ports: Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + * [Config] ports: Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + + [ Lee Jones ] + + * Stop ARM boards crashing when CUPS is loaded + - LP: #601226 + + [ Upstream Kernel Changes ] + + * perf probe: Support tracing an entry of array + * perf probe: Support static and global variables + + -- Leann Ogasawara Fri, 16 Jul 2010 14:38:17 -0700 + +linux (2.6.35-8.13) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: Yama: check PTRACE using thread group leader + * SAUCE: Yama: search for PTRACE exceptions via thread group leader + - LP: #603716 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc5 + * [Config] update configs following rebase to v2.6.35-rc5 + + [ Nicolas Pitre ] + + * SAUCE: make ndiswrapper available on X86 only + + [ Tim Gardner ] + + * [Config] Added ums-cypress to udeb + - LP: #576066 + * SAUCE: fix build error with CONFIG_BLK_DEV_INITRD=n + * [Config] CONFIG_NDISWRAPPER=m across all configs + + [ Upstream Kernel Changes ] + + * HID: magicmouse: report last touch up + * rebase to 2.6.35-rc5 + + -- Leann Ogasawara Tue, 13 Jul 2010 18:57:59 -0700 + +linux (2.6.35-7.12) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] i915: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35) drm/radeon/kms: add ioport register access + (squashed) + + -- Tim Gardner Thu, 08 Jul 2010 09:53:13 -0600 + +linux (2.6.35-7.11) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_X86_MRST=n + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35-rc5) writeback: remove writeback_inodes_wbc + * (drop after 2.6.35-rc5) writeback: split writeback_inodes_wb + * (drop after 2.6.35-rc5) writeback: simplify the write back thread queue + + -- Tim Gardner Tue, 06 Jul 2010 18:39:08 -0600 + +linux (2.6.35-7.10) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: security: create task_free security callback + * SAUCE: Yama: add PTRACE exception tracking and interface + * SAUCE: security: unconditionally chain to Yama LSM + * Revert "SAUCE: ptrace: restrict ptrace scope to children" + * Revert "SAUCE: fs: block hardlinks to non-accessible sources" + * Revert "SAUCE: fs: block cross-uid sticky symlinks" + * [Upstream] security: Yama LSM + * [Config] Enable CONFIG_SECURITY_YAMA=y + + [ Tim Gardner ] + + * [Config] updateconfigs/updateportsconfigs after rebase to 2.6.35-rc4 + + [ Upstream Kernel Changes ] + + * rebase to 2.6.35-rc4 + + -- Leann Ogasawara Thu, 01 Jul 2010 08:55:57 -0700 + +linux (2.6.35-6.9) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] direct_splice_actor() should not use pos in sd + - LP: #588861 + + -- Leann Ogasawara Mon, 28 Jun 2010 12:35:49 -0700 + +linux (2.6.35-6.8) maverick; urgency=low + + [ Mathieu J. Poirier ] + + * ARM: Adding regulator supply for vdds_sdi. + - LP: #597904 + + -- Leann Ogasawara Sun, 27 Jun 2010 16:34:43 -0700 + +linux (2.6.35-6.7) maverick; urgency=low + + [ Alberto Milone ] + + * [Upstream] Add support for the ATIF ACPI method to the radeon driver + + [ Chase Douglas ] + + * [Upstream] HID: magicmouse: scroll on entire surface, not just middle + of mouse + * [Upstream] HID: magicmouse: disable and add module param for scroll + acceleration + * [Upstream] HID: magicmouse: properly account for scroll movement in + state + * [Upstream] HID: magicmouse: add param for scroll speed + * [Upstream] HID: magicmouse: enable horizontal scrolling + + [ Henrik Rydberg ] + + * [Upstream] Input: evdev - convert to dynamic event buffer + * [Upstream] Input: evdev - use driver hint to compute size of event + buffer + * [Upstream] Input: bcm5974 - set the average number of events per MT + event packet + * [Upstream] Input: hid-input - use a larger event buffer for MT devices + * [Upstream] Input: evdev - never leave the client buffer empty after + write + + [ John Johansen ] + + * SAUCE: AppArmor: -- mainline 2010-06-23 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: fs: block hardlinks to non-accessible sources AppArmor portion + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_INTR_REMAP=y + - LP: #597091 + * [Config] Enable CONFIG_X86_X2APIC + - LP: #597091 + + [ Mathieu J. Poirier ] + + * [Config] ARM: Turning off CONFIG_CPU_IDLE on omap + - LP: #594382 + + -- Leann Ogasawara Thu, 24 Jun 2010 12:19:48 -0700 + +linux (2.6.35-5.6) maverick; urgency=low + + [ Amit Kucheria ] + + * [Config] update omap flavour description + + [ Andy Whitcroft ] + + * update to ubuntu-debian:508b7aa34b578c0d1e51bfb571f2bfb824dc65ac + - LP: #570500, #576274 + * SAUCE: add option to hand off all kernel parameters to init + - LP: #586386 + * [Config] enable passing all kernel command line to init + - LP: #586386 + * [Config] disable CONFIG_VMI + - LP: #537601 + * [Config] enable CONFIG_IPV6_SIT_6RD + - LP: #591869 + * [Config] enable CONFIG_VMWARE_BALOON as module + - LP: #592039 + + [ Leann Ogasawara ] + + * Revert "SAUCE: pm: Config option to disable handling of console during + suspend/resume" + - LP: #594885 + * [Config] Remove CONFIG_PM_DISABLE_CONSOLE + * [Config] ports: enable passing all kernel command line to init + - LP: #586386 + * [Config] Enable CONFIG_FB_VESA=y for x86 + * [Config] Add CONFIG_FRAMEBUFFER_CONSOLE=y to config enforcer + * [Config] Add CONFIG_FB_VESA=y for x86 to config enforcer + * [Config] Enable CONFIG_TASK_DELAY_ACCT=y + - LP: #493156 + + [ Mathieu Poirier ] + + * ARM: Adding MosChip MCS7830 to nic-usb + - LP: #584920 + + [ Upstream Kernel Changes ] + + * Revert "[Upstream] docbook: need xmldoclinks for all doc types" + * docbook: need xmldoclinks for all doc types + * perf probe: Add kernel source path option + + -- Leann Ogasawara Thu, 17 Jun 2010 08:05:29 -0700 + +linux (2.6.35-4.5) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "[Upstream] (evdev) Use driver hint to compute the evdev buffer + size (rev2)" + * Revert "[Upstream] (evdev) Convert to dynamic event buffer (rev4)" + * Revert "[Upstream] (evdev) Use multi-reader buffer to save space + (rev4)" + * Revert "SAUCE: drivers: Remove some duplicate device entries in various + modules" + * [Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID + * [Upstream] Revert "USB: Adding support for HTC Smartphones to ipaq" + * [Upstream] p54usb: Comment out duplicate Medion MD40900 device id + + [ Tim Gardner ] + + * [Config] CONFIG_NFS_FSCACHE=y + - LP: #440522 + * [Config] CONFIG_FSCACHE_STATS=y, CONFIG_FSCACHE_HISTOGRAM=y + - LP: #440522 + + -- Leann Ogasawara Wed, 16 Jun 2010 08:43:07 -0700 + +linux (2.6.35-3.4) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- ensure the version number is clean + + [ Henrik Rydberg ] + + * [Upstream] Introduce MT event slots (rev 5) + * [Upstream] Document the MT event slot protocol (rev5) + * [Upstream] (evdev) Use multi-reader buffer to save space (rev4) + * [Upstream] (evdev) Convert to dynamic event buffer (rev4) + * [Upstream] (evdev) Use driver hint to compute the evdev buffer size + (rev2) + + [ Leann Ogasawara ] + + * Revert "SAUCE: Add MODULE_ALIAS for Dell WMI module" + * Revert "SAUCE: hostap: send events on data interface as well as master + interface" + * Revert "Fix webcam having USB ID 0ac8:303b" + * Revert "SAUCE: toshiba_acpi -- pull in current -dev version of driver" + * rebase to v2.6.35-rc3 + + [ Maxim Levitsky ] + + * [Config] Enable new Smartmedia/xD translation layer + - LP: #202490 + + [ Upstream Kernel Changes ] + + * net: fix deliver_no_wcard regression on loopback device + + [ Upstream changes ] + + * rebased to v2.6.35-rc3 + + -- Leann Ogasawara Thu, 10 Jun 2010 16:15:22 -0700 + +linux (2.6.35-2.3) maverick; urgency=low + + [ Bryan Wu ] + + * CONFIG: enforce -- make sure we disable CONFIG_LOCALVERSION_AUTO + + [ Leann Ogasawara ] + + * [Config] armel: Enable CONFIG_BNX2=m + * [Config] ports: Enable CONFIG_BNX2X=m + * SAUCE: armel: define get_dma_ops to fix FTBS + + [ Tim Gardner ] + + * [Upstream] net: Print num_rx_queues imbalance warning only when there + are allocated queues + - LP: #591416 + + -- Leann Ogasawara Wed, 09 Jun 2010 08:27:41 -0700 + +linux (2.6.35-2.2) maverick; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i: make armel configuration versatile flavour specific + - LP: #588805 + * [Config] d-i: enable .udebs for omap flavour + - LP: #588805 + + [ Kees Cook ] + + * ptrace: limit scope to attach only (allow read) + - LP: #589656 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc2 + * [Config] update configs following rebase to v2.6.35-rc2 + * [Config] update port configs following rebase to v2.6.35-rc2 + + [ Lee Jones ] + + * Enable perf to be more helpful when perf_ does not exist. + - LP: #570500 + * 'fdr editconfig' modification. Easily skip over unwanted menuconfigs. + + [ Tim Gardner ] + + * [Config] Update bnx2 udeb firmware files + - LP: #589304 + + [ Upstream changes ] + + * rebased to v2.6.35-rc2 + + -- Leann Ogasawara Mon, 07 Jun 2010 09:45:04 -0700 + +linux (2.6.35-1.1) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601 + - LP: #587888 + * ubuntu: AUFS -- track changes to the arguements to fop fsync() + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc1 + * [Config] update configs following rebase to v2.6.35-rc1 + * [Config] update port configs following rebase to v2.6.35-rc1 + * SAUCE: lirc: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: convert multicast list to list_head + * [Config] [FTBS] armel: Temporarily disable CONFIG_GPIO_JANZ_TTL + * [Config] [FTBS] ia64: Temporarily disable gpiolib + * [Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS + * [Config] [FTBS] sparc: Temporarily disable CONFIG_INFINIBAND_QIB + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_DT3155 + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MTD_NAND_DENALI + * [Config] [FTBS] armel: Temporarily disable bnx2 + * [Config] [FTBS] armel: Temporarily disable CONFIG_SERIAL_UARTLITE + * SAUCE: [FTBS] armel: Don't include asm/agp.h for ttm + * SAUCE: [FTBS] armel: include linux/dma-mapping.h + * SAUCE: [FTBS] armel: replace omap_set_gpio_debounce with + gpio_set_debounce + + [ Upstream Kernel Changes ] + + * of/usb: fix build error due to of_node pointer move + * n2_crypto: Fix build after of_device/of_platform_driver changes. + * powerpc/fsl-booke: fix the case where we are not in the first page + * powerpc/fsl-booke: Move the entry setup code into a seperate file + * powerpc/kexec: Add support for FSL-BookE + * greth: Fix build after OF device conversions. + + [ Upstream changes ] + + * rebased to v2.6.35-rc1 + + -- Leann Ogasawara Fri, 04 Jun 2010 23:01:52 -0700 + +linux (2.6.35-1.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 02 Jun 2010 15:17:41 -0700 + +linux (2.6.34-5.14) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] Added module inclusion support + * [Config] Added virtual flavour module inclusion list and d-i package + definitions + + -- Leann Ogasawara Wed, 02 Jun 2010 12:58:14 -0700 + +linux (2.6.34-5.13) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2 20091209" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-standalone.patch)" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-base.patch)" + * ubuntu: AUFS -- aufs2 base patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- aufs2 standalone patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601 + - LP: #587888 + * [Config] AUFS -- enable aufs options + - LP: #587888 + + -- Leann Ogasawara Tue, 01 Jun 2010 08:56:43 -0700 + +linux (2.6.34-5.12) maverick; urgency=low + + [ Andy Whitcroft ] + + * enforce -- ensure SYSFS compatibility is disabled + + [ Chase Douglas ] + + * build with libdw-dev for perf probe symbol support + * maverick ftrace configuration changes + + [ Kees Cook ] + + * Revert "SAUCE: x86: brk away from exec rand area" + * Revert "SAUCE: [um] Don't use nx_enabled under UML" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: x86: implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + * SAUCE: ptrace: restrict ptrace scope to children + + [ Leann Ogasawara ] + + * Add new omap flavour to getabis + * [Config] Enable CONFIG_FRAMEBUFFER_CONSOLE=y for all archs + - LP: #585490 + * build/modules: Temorarily add ignore.modules + * ubuntu: iscsitarget -- version 1.4.20.1 + + [ Loïc Minier ] + + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + -- Leann Ogasawara Fri, 28 May 2010 08:27:17 -0700 + +linux (2.6.34-4.11) maverick; urgency=low + + [ Amit Kucheria ] + + * SAUCE: omap: remove calls to usb_nop_xceiv_register from board files + * [Config] Add support for OMAP-mainline flavour + + [ Andy Whitcroft ] + + * SAUCE: powerpc: fix compile error when ptrace.h is included from + userspace + - LP: #583733 + + [ Chase Douglas ] + + * Revert "SAUCE: Don't register vga16fb framebuffer if other framebuffers + are present" + * Revert "SAUCE: Disable function tracing after hitting __schedule_bug" + * Revert "SAUCE: drm/i915: don't change DRM configuration when releasing + load detect pipe" + + [ Kees Cook ] + + * SAUCE: fs: block cross-uid sticky symlinks + * SAUCE: fs: block hardlinks to non-accessible sources + + [ Koen Kooi ] + + * SAUCE: board-omap3-beagle: add DSS2 support + + [ Leann Ogasawara ] + + * Revert "staging/go7007 -- disable" + * Revert "[Config] staging/winbond -- disable" + * Revert "Disable 4MB page tables for Atom, work around errata AAE44" + * Revert "SAUCE: sync before umount to reduce time taken by ext4 umount" + * Revert "SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit + controller" + * Revert "SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT" + * Revert "SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros" + * Revert "SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps" + * Revert "SAUCE: r8169: disable TSO by default for RTL8111/8168B + chipsets." + * Revert "[Upstream] b43: Declare all possible firmware files." + * Revert "add Breaks: against hardy lvm2" + * Revert "SAUCE: Guest OS does not recognize a lun with non zero target + id on Vmware ESX Server" + * Revert "SAUCE: Catch nonsense keycodes and silently ignore" + * [Config] Enable CONFIG_ECRYPT_FS=y for ports + * [Config] Enable CONFIG_USB=y for armel and sparc + * [Config] Enable CONFIG_SCSI=y for ia64 and sparc + * [Config] Enable CONFIG_RFKILL=y for ports + * [Config] Enable CONFIG_ATH9K_DEBUGFS=y + * [Config] Enable CONFIG_IWMC3200TOP_DEBUGFS=y + * [Config] Enable CONFIG_RCU_FAST_NO_HZ=y + * [Config] Enable CONFIG_IWLWIFI_DEVICE_TRACING=y + * [Config] Enable CONFIG_LIBERTAS_MESH=y + * [Config] Enable CONFIG_MMC_RICOH_MMC=y + * [Config] CONFIG_RT2800USB_UNKNOWN=y + * [Config] Enable CONFIG_VGA_SWITCHEROO=y + * [Config] Enable CONFIG_CEPH_FS=m + * [Config] Enable CONFIG_CRYPTO_PCRYPT=m + * [Config] Enable CONFIG_EEEPC_WMI=m + * [Config] Enable CONFIG_RT2800PCI=m + * [Config] Enable CONFIG_SCSI_HPSA=m + * [Config] Enable CONFIG_VHOST_NET=m + * [Config] Disable CONFIG_SND_HDA_INPUT_BEEP_MODE by default + - LP: #582350 + * [Config] Disable CONFIG_SOUND_OSS* and CONFIG_SND_*OSS + - LP: #579300 + * [Config] Enable CONFIG_PCIEASPM=y + - LP: #333990 + * [Config] updateconfigs for OMAP flavour + + [ Loïc Minier ] + + * Enable perf tools on armel + + [ Tim Gardner ] + + * SAUCE: Updated ndiswrapper to 1.56 + - LP: #582555 + * [Config] Added virtual flavour + * [Config] Remove support for sub-flavours + * [Config] Removed amd64 preempt flavour + * [Config] updateconfigs, updateportsconfigs after flavour munging + + -- Leann Ogasawara Tue, 25 May 2010 09:34:55 -0700 + +linux (2.6.34-3.10) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34 + + [ Upstream changes ] + + * rebased to v2.6.34 + + -- Leann Ogasawara Tue, 18 May 2010 17:35:35 -0700 + +linux (2.6.34-2.9) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] [FTBS] Disable comedi for armel + + -- Leann Ogasawara Thu, 13 May 2010 23:20:55 +0200 + +linux (2.6.34-2.8) maverick; urgency=low + + [ Leann Ogasawara ] + + * Drop lpia + * [Config] [FTBS] disable KVM + * [Config] [FTBS] disable ipr for armel + + -- Leann Ogasawara Thu, 13 May 2010 16:07:52 +0200 + +linux (2.6.34-2.7) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] disable CONFIG_SCSI_IPR on powerpc + * [Config] Remove 386 flavour per UDS discussion + + -- Leann Ogasawara Wed, 12 May 2010 18:26:43 +0200 + +linux (2.6.34-1.6) maverick; urgency=low + + [ Chase Douglas ] + + * enforce CONFIG_TMPFS_POSIX_ACL=y + - LP: #575940 + * don't force module dependency checking + - LP: #577029 + + [ Kees Cook ] + + * SAUCE: mmap_min_addr check CAP_SYS_RAWIO only for write + - LP: #568844 + + [ Leann Ogasawara ] + + * Revert "SAUCE: ata: blacklist FUJITSU MHW2160BH PL" + * rebase to v2.6.34-rc7 + * [Config] update configs following rebase to v2.6.34-rc7 + * [Config] update port configs following rebase to v2.6.34-rc7 + * Add btrfs to the udebs + + [ Tim Gardner ] + + * [Config] Add atl1c to nic-modules udeb + - LP: #557130 + + [ Upstream changes ] + + * rebased to v2.6.34-rc7 + + -- Leann Ogasawara Tue, 11 May 2010 11:29:08 +0200 + +linux (2.6.34-1.5) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc6 + * [Config] update configs following rebase to v2.6.34-rc6 + * [Config] update port configs following rebase to v2.6.34-rc6 + + [ Upstream changes ] + + * rebased to v2.6.34-rc6 + + -- Leann Ogasawara Fri, 30 Apr 2010 15:54:05 +0100 + +linux (2.6.34-1.4) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc5 + * [Config] update ports configs following rebase to v2.6.34-rc5 + + [ Upstream changes ] + + * rebased to v2.6.34-rc5 + + -- Leann Ogasawara Thu, 22 Apr 2010 15:36:12 -0700 + +linux (2.6.34-1.3) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc4 + * [Config] update configs following rebase to v2.6.34-rc4 + * [Config] update port configs following rebase to v2.6.34-rc4 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc4 + + [ Upstream changes ] + + * rebased to v2.6.34-rc4 + + -- Leann Ogasawara Tue, 13 Apr 2010 18:33:44 -0700 + +linux (2.6.34-1.2) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Temorarily disable building linux-doc + * rebase to v2.6.34-rc3 + * [Config] update configs following rebase to v2.6.34-rc3 + * [Config] update port configs following rebase to v2.6.34-rc3 + + [ Upstream changes ] + + * rebased to v2.6.34-rc3 + + -- Leann Ogasawara Tue, 30 Mar 2010 16:55:44 -0700 + +linux (2.6.34-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc2 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc2 + * [Config] update port configs following rebase to v2.6.34-rc2 + * [Config] update configs following rebase to v2.6.34-rc2 + + [ Upstream changes ] + + * rebased to v2.6.34-rc2 + + -- Leann Ogasawara Wed, 24 Mar 2010 23:00:39 -0700 + +linux (2.6.33-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * ubuntu: dm-raid4-5 -- update to compile with 2.6.33 + * ubuntu: lirc -- drop explicit include of linux/autoconf.h + * ubuntu: lirc -- pass kfifo to kfifo_alloc and move spinlock + * ubuntu: lirc -- rename kfifo_put and kfifo_get + * ubuntu: iscsitarget -- rename daddr inet_sock field + * rebased to v2.6.33 + * [Config] update configs following rebase to v2.6.33 + * [Config] update ports configs following rebase to v2.6.33 + + [ Upstream changes ] + + * rebased to v2.6.33 + + -- Leann Ogasawara Tue, 23 Mar 2010 03:55:46 -0700 + +linux (2.6.33-0.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 17 Mar 2010 07:48:56 -0700 + +linux (2.6.32-16.25) lucid; urgency=low + + [ Andy Whitcroft ] + + * linux-tools -- move to Suggests: with explicit seeding + - LP: #534635 + + [ Tim Gardner ] + + * [Config] CONFIG_HID=m + + [ Upstream Kernel Changes ] + + * (pre-stable) sched: Fix SMT scheduler regression in + find_busiest_queue() + * KVM: introduce kvm_vcpu_on_spin + * KVM: VMX: Add support for Pause-Loop Exiting + + -- Andy Whitcroft Tue, 09 Mar 2010 14:13:51 +0000 + +linux (2.6.32-16.24) lucid; urgency=low + + [ Andy Whitcroft ] + + * armel -- perf userspace does not support arm + * ia64 -- libelf-dev/binutils-dev to not provide necessary libraries + + -- Andy Whitcroft Sat, 06 Mar 2010 11:42:12 +0000 + +linux (2.6.32-16.23) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: PM report driver and device suspend/resume times -- move config + * update to standards version 3.8.4.0 + * printenv -- expose all of the package selectors + * source package -- cleanup source content control + * doc package -- ensure we do build package content on buildd + * lintian -- correct the address in the debian/copyright + * lintian -- update debhelper package version dependancy + * lintian -- fix ghostscript dependancy + * lintian -- add required misc:Depends + * lintian -- move our debhelper compat level to debian/compat + * perf -- build the kernel carried tools + * perf -- add linux-tools carrying the version switches and manuals + * SAUCE: fix up Kconfig for staging drivers + * [Config] enable NOUVEAU etc following drm backport + * update DRM to mainline v2.6.33 + * [Config] Remove AppArmor config options that no longer exist (ports) + * [Config] updateportsconfigs following drm update + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-03-04 + * SAUCE: AppArmor: Reintroduce AppArmor 2.4 compatibility + * SAUCE: AppArmor: replace strim with strstrip for 2.6.32 kernels + * [Config] Remove AppArmor config options that no longer exist + + [ Manoj Iyer ] + + * ubuntu: rtl8192se -- version 2010-0115,0014 + - LP: #530275 + * [Config] added CONFIG_RTL8192SE module. + - LP: #530275 + + [ Tim Gardner ] + + * [Config] Added vmw_pvscsi to d-i/scsi-modules + - LP: #531017 + * [Upstream] netfilter: xt_recent: Add an entry reaper + + [ Upstream Kernel Changes ] + + * Revert "KVM: x86 emulator: Check CPL level during privilege instruction + emulation" + * Revert "KVM: x86 emulator: Fix popf emulation" + * Revert "KVM: x86 emulator: Check IOPL level during io instruction + emulation" + * Revert "KVM: x86 emulator: Add Virtual-8086 mode of emulation" + * Revert "KVM: fix memory access during x86 emulation." + * Add vlan (8021.Q) module package for d-i. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + * [Upstream] docbook: need xmldoclinks for all doc types + * x86: set_personality_ia32() misses force_personality32 + * lib: Introduce generic list_sort function + * drm/nv50: Implement ctxprog/state generation. + * drm/nv50: Remove redundant/incorrect ctxvals initialisation. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + + -- Andy Whitcroft Fri, 05 Mar 2010 15:40:38 +0000 + +linux (2.6.32-15.22) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT" + * Revert "SAUCE: PM report driver and device suspend/resume times." + * [Config] set CONFIG_SR_REPORT_TIME_LIMIT + + [ Manoj Iyer ] + + * SAUCE: PM report driver and device suspend/resume times. + + -- Andy Whitcroft Tue, 02 Mar 2010 01:35:37 +0000 + +linux (2.6.32-15.21) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/i915: Increase fb alignment to 64k" + * Revert "[Config] lenovo-sl-laptop -- enable" + * Revert "ubuntu: lenovo-sl-laptop -- git tip (b19a08f81f)" + * armel -- cramfs module will no longer be built + * d-i -- make all modules optional + * rename the debug packages to match archive standard + - LP: #527837 + * lenovo-sl-laptop is no longer built + + [ Colin Ian King ] + + * Disable 4MB page tables for Atom, work around errata AAE44 + - LP: #523112 + + [ Colin Watson ] + + * ubuntu: dm-raid4-5: Depend on XOR_BLOCKS + * ubuntu: fsam7400: Depend on CHECK_SIGNATURE + + [ Jesse Barnes ] + + * SAUCE: drm/i915: don't change DRM configuration when releasing load + detect pipe + - LP: #488328 + + [ Loïc Minier ] + + * [Config] armel Update versatile initrd configs + - LP: #524893 + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + [ Manoj Iyer ] + + * [Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT + + [ Mario Limonciello ] + + * SAUCE: v3 - Add Dell Business Class Netbook LED driver + + [ Rafael J. Wysocki ] + + * SAUCE: PM report driver and device suspend/resume times. + + [ Surbhi Palande ] + + * Revert "[Upstream] e1000e: enhance frame fragment detection" + - CVE-2009-4538 + * Revert "[Upstream] e1000: enhance frame fragment detection" + - CVE-2009-4536 + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_LEDS_DELL_NETBOOKS=m + * SAUCE: (pre-stable) netfilter: xt_recent: fix buffer overflow + * SAUCE: (pre-stable) netfilter: xt_recent: fix false match + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) eCryptfs: Add getattr function" + * Fix potential crash with sys_move_pages + * futex_lock_pi() key refcnt fix + * futex: Handle user space corruption gracefully + * futex: Handle futex value corruption gracefully + * Fix race in tty_fasync() properly + * hwmon: (w83781d) Request I/O ports individually for probing + * hwmon: (lm78) Request I/O ports individually for probing + * hwmon: (adt7462) Wrong ADT7462_VOLT_COUNT + * ALSA: ctxfi - fix PTP address initialization + * drm/i915: disable hotplug detect before Ironlake CRT detect + * drm/i915: enable self-refresh on 965 + * drm/i915: Disable SR when more than one pipe is enabled + * drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup. + * drm/i915: Add HP nx9020/SamsungSX20S to ACPI LID quirk list + * drm/i915: Fix the incorrect DMI string for Samsung SX20S laptop + * drm/i915: Add MALATA PC-81005 to ACPI LID quirk list + * usb: r8a66597-hcd: Flush the D-cache for the pipe-in transfer buffers. + * i2c-tiny-usb: Fix on big-endian systems + * drm/i915: handle FBC and self-refresh better + * drm/i915: Increase fb alignment to 64k + * drm/i915: Update write_domains on active list after flush. + * regulator: Fix display of null constraints for regulators + * ALSA: hda-intel: Avoid divide by zero crash + * CPUFREQ: Fix use after free of struct powernow_k8_data + * freeze_bdev: don't deactivate successfully frozen MS_RDONLY sb + * cciss: Make cciss_seq_show handle holes in the h->drv[] array + * ioat: fix infinite timeout checking in ioat2_quiesce + * resource: add helpers for fetching rlimits + * fs/exec.c: restrict initial stack space expansion to rlimit + * cifs: fix length calculation for converted unicode readdir names + * NFS: Fix a reference leak in nfs_wb_cancel_page() + * NFS: Try to commit unstable writes in nfs_release_page() + * NFSv4: Don't allow posix locking against servers that don't support it + * NFSv4: Ensure that the NFSv4 locking can recover from stateid errors + * NFS: Fix an Oops when truncating a file + * NFS: Fix a umount race + * NFS: Fix a bug in nfs_fscache_release_page() + * NFS: Fix the mapping of the NFSERR_SERVERFAULT error + * md: fix 'degraded' calculation when starting a reshape. + * V4L/DVB: dvb-core: fix initialization of feeds list in demux filter + * Export the symbol of getboottime and mmonotonic_to_bootbased + * kvmclock: count total_sleep_time when updating guest clock + * KVM: PIT: control word is write-only + * tpm_infineon: fix suspend/resume handler for pnp_driver + * amd64_edac: Do not falsely trigger kerneloops + * netfilter: nf_conntrack: fix memory corruption with multiple namespaces + * netfilter: nf_conntrack: per netns nf_conntrack_cachep + * netfilter: nf_conntrack: restrict runtime expect hashsize modifications + * netfilter: xtables: compat out of scope fix + * netfilter: nf_conntrack: fix hash resizing with namespaces + * drm/i915: remove full registers dump debug + * drm/i915: add i915_lp_ring_sync helper + * drm/i915: Don't wait interruptible for possible plane buffer flush + * dasd: remove strings from s390dbf + * crypto: padlock-sha - Add import/export support + * wmi: Free the allocated acpi objects through wmi_get_event_data + * dell-wmi, hp-wmi, msi-wmi: check wmi_get_event_data() return value + * /dev/mem: introduce size_inside_page() + * devmem: check vmalloc address on kmem read/write + * devmem: fix kmem write bug on memory holes + * SCSI: mptfusion : mptscsih_abort return value should be SUCCESS instead + of value 0. + * sh: Couple kernel and user write page perm bits for CONFIG_X2TLB + * ALSA: hda - use WARN_ON_ONCE() for zero-division detection + * dst: call cond_resched() in dst_gc_task() + * ALSA: hda - Improved MacBook (Pro) 5,1 / 5,2 support + * befs: fix leak + * rtc-fm3130: add missing braces + * Call flush_dcache_page after PIO data transfers in libata-sff.c + * ahci: add Acer G725 to broken suspend list + * pktgen: Fix freezing problem + * x86/amd-iommu: Fix IOMMU-API initialization for iommu=pt + * x86/amd-iommu: Fix deassignment of a device from the pt_domain + * x86: Re-get cfg_new in case reuse/move irq_desc + * Staging: fix rtl8187se compilation errors with mac80211 + * ALSA: usb-audio - Avoid Oops after disconnect + * serial: 8250: add serial transmitter fully empty test + * sysfs: sysfs_sd_setattr set iattrs unconditionally + * class: Free the class private data in class_release + * USB: usbfs: only copy the actual data received + * USB: usbfs: properly clean up the as structure on error paths + * rtl8187: Add new device ID + * ACPI: Add NULL pointer check in acpi_bus_start + * ACPI: fix High cpu temperature with 2.6.32 + * drm/radeon/kms: use udelay for short delays + * NFS: Too many GETATTR and ACCESS calls after direct I/O + * eCryptfs: Add getattr function + * b43: Fix throughput regression + * ath9k: Fix sequence numbers for PAE frames + * mac80211: Fix probe request filtering in IBSS mode + * iwlwifi: Fix to set correct ht configuration + * dm stripe: avoid divide by zero with invalid stripe count + * dm log: userspace fix overhead_size calcuations + * Linux 2.6.32.9 + * sfc: Fix SFE4002 initialisation + * sfc: Fix sign of efx_mcdi_poll_reboot() error in efx_mcdi_poll() + * sfc: SFE4002/SFN4112F: Widen temperature and voltage tolerances + * (pre-stable) HID: handle joysticks with large number of buttons + - LP: #492056 + * (pre-stable) HID: extend mask for BUTTON usage page + - LP: #492056 + * PM: Measure device suspend and resume times + * e1000: enhance frame fragment detection + - CVE-2009-4536 + * e1000e: enhance frame fragment detection + - CVE-2009-4538 + * KVM: fix memory access during x86 emulation. + - CVE-2010-0306 + * KVM: x86 emulator: Add Virtual-8086 mode of emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check IOPL level during io instruction emulation + - CVE-2010-0306 + * KVM: x86 emulator: Fix popf emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check CPL level during privilege instruction + emulation + - CVE-2010-0306 + * Input: wacom - ensure the device is initialized properly upon resume + * Input: wacom - add defines for packet lengths of various devices + * Input: wacom - add support for new LCD tablets + - LP: #516777 + + -- Andy Whitcroft Mon, 01 Mar 2010 22:56:28 +0000 + +linux (2.6.32-14.20) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebuild following the GCC update to match compiler for out of tree modules + * Revert "[Config] drbd -- enable" + * Revert "ubuntu: drbd -- version 8.3.1" + * SAUCE: khubd -- switch USB product/manufacturer/serial handling to RCU + - LP: #510937 + + -- Andy Whitcroft Fri, 19 Feb 2010 18:47:18 +0000 + +linux (2.6.32-14.19) lucid; urgency=low + + [ Andy Whitcroft ] + + * ensure we build the source package contents when enabled + - LP: #522308 + * [Config] enable CONFIG_X86_MCE_XEON75XX + * SAUCE: AppArmor -- add linux/kref.h for struct kref + * [Config] enable CONFIG_HID_ORTEK + * enable udeb generation for arm versatile flavour + - LP: #522515 + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-02-18 + - LP: #439560, #496110, #507069 + + [ Johnathon Harris ] + + * SAUCE: HID: add support for Ortek WKB-2000 + - LP: #405390 + + [ Upstream Kernel Changes ] + + * tpm_tis: TPM_STS_DATA_EXPECT workaround + - LP: #490487 + * x86, mce: Xeon75xx specific interface to get corrected memory error + information + * x86, mce: Rename cpu_specific_poll to mce_cpu_specific_poll + * x86, mce: Make xeon75xx memory driver dependent on PCI + * drm/edid: Unify detailed block parsing between base and extension + blocks + - LP: #500999 + * (pre-stable) eCryptfs: Add getattr function + - LP: #390833 + + -- Andy Whitcroft Thu, 18 Feb 2010 19:22:02 +0000 + +linux (2.6.32-13.18) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "enforcer -- make the enforcement configuration common" + * Revert "(pre-stable) Input: ALPS - add interleaved protocol support + (Dell E6x00 series)" + * Revert "(pre-stable) driver-core: fix devtmpfs crash on s390" + * Revert "(pre-stable) Driver-Core: devtmpfs - set root directory mode to + 0755" + * Revert "SAUCE: Adds support for COMPAL JHL90 webcam" + * Revert "SAUCE: fix kernel oops in VirtualBox during paravirt patching" + * Revert "SAUCE: make fc transport removal of target configurable" + * enforcer -- make the enforcement configuration common + * getabis -- add preempt flavour to the list + * [Config] enforce DEVTMPFS options + * [Config] armel -- cleanup to-be builtin modules + * [Config] cleanup ports configs + * [Config] enable CRYPTO_GHASH_CLMUL_NI_INTEL + - LP: #485536 + * add printdebian target to find branch target + * distclean -- do not remove debian.env + * [Config] generic-pae switch to M586TSC + - LP: #519448 + * git-ubuntu-log -- commonise duplicated log handling + * git-ubuntu-log -- tighten up Bug: NNNN matching + * git-ubuntu-log -- sort the bug numbers + + [ Chris Wilson ] + + * (pre-stable) drm/i915: Increase fb alignment to 64k + - LP: #404064 + + [ Eric Miao ] + + * arm -- enable ubuntu/ directory + + [ Huang Ying ] + + * SAUCE: crypto: ghash - Add PCLMULQDQ accelerated implementation + * SAUCE: crypto: ghash-intel - Fix building failure on x86_32 + + [ Loïc Minier ] + + * [Config] cleanup preempt configuration + * [Config] versatile: Fix video output + - LP: #517594 + * [Config] armel DEFAULT_MMAP_MIN_ADDR=32768 + * [Config] Large update to armel/versatile + * [Config] versatile: Add RTC support + * [Config] armel: Enable NEON + * [Config] versatile: Builtin MMC support + * [Config] versatile Builtin SCSI controller + * [Config] armel Disable dma_cache_sync callers + * [Config] armel Disable asm/time.h users + * [Config] armel Disable out of range udelay() + * [Config] armel Disable flush_cache_range() users + * [Config] armel -- Enable ubuntu/ drivers + + [ Steve Conklin ] + + * SAUCE: drm/i915: Add display hotplug event on Ironlake + * SAUCE: drm/i915: Add ACPI OpRegion support for Ironlake + + [ Upstream Kernel Changes ] + + * Revert "[Upstream]: oprofile/x86: add Xeon 7500 series support" + * Revert "Revert "[Bluetooth] Eliminate checks for impossible conditions + in IRQ handler"" + * clockevent: Don't remove broadcast device when cpu is dead + * clockevents: Add missing include to pacify sparse + * ACPI: don't cond_resched if irq is disabled + * be2net: Add support for next generation of BladeEngine device. + * be2net: Add the new PCI IDs to PCI_DEVICE_TABLE. + * mpt2sas: New device SAS2208 support is added + * ar9170: Add support for D-Link DWA 160 A2 + * powerpc/fsl: Add PCI device ids for new QoirQ chips + * davinci: dm646x: Add support for 3.x silicon revision + * Input: ALPS - add interleaved protocol support (Dell E6x00 series) + * Driver-Core: devtmpfs - set root directory mode to 0755 + * driver-core: fix devtmpfs crash on s390 + * vfs: get_sb_single() - do not pass options twice + * ALSA: hda - Add PCI IDs for Nvidia G2xx-series + * V4L/DVB (13569): smsusb: add autodetection support for five additional + Hauppauge USB IDs + * USB: mos7840: add device IDs for B&B electronics devices + * USB: ftdi_sio: add USB device ID's for B&B Electronics line + * V4L/DVB (13168): Add support for Asus Europa Hybrid DVB-T card (SAA7134 + SubVendor ID: 0x1043 Device ID: 0x4847) + * iTCO_wdt: Add support for Intel Ibex Peak + * atl1c:use common_task instead of reset_task and link_chg_task + * atl1e:disable NETIF_F_TSO6 for hardware limit + * V4L/DVB (13680a): DocBook/media: copy images after building HTML + * V4L/DVB (13680b): DocBook/media: create links for included sources + * netfilter: xtables: fix conntrack match v1 ipt-save output + * partitions: read whole sector with EFI GPT header + * partitions: use sector size for EFI GPT + * ALSA: ice1724 - Patch for suspend/resume for ESI Juli@ + * sched: Fix isolcpus boot option + * sched: Fix missing sched tunable recalculation on cpu add/remove + * nohz: Prevent clocksource wrapping during idle + * nfsd: Fix sort_pacl in fs/nfsd/nf4acl.c to actually sort groups + * timers, init: Limit the number of per cpu calibration bootup messages + * PCI: Always set prefetchable base/limit upper32 registers + * iscsi class: modify handling of replacement timeout + * NFS: Revert default r/wsize behavior + * HID: fixup quirk for NCR devices + * scsi_devinfo: update Hitachi entries (v2) + * scsi_dh: create sysfs file, dh_state for all SCSI disk devices + * scsi_transport_fc: remove invalid BUG_ON + * lpfc: fix hang on SGI ia64 platform + * libfc: fix typo in retry check on received PRLI + * libfc: fix ddp in fc_fcp for 0 xid + * fcoe: remove redundant checking of netdev->netdev_ops + * libfc: Fix wrong scsi return status under FC_DATA_UNDRUN + * libfc: lport: fix minor documentation errors + * libfc: don't WARN_ON in lport_timeout for RESET state + * fcoe: initialize return value in fcoe_destroy + * libfc: Fix frags in frame exceeding SKB_MAX_FRAGS in fc_fcp_send_data + * libfc: fix memory corruption caused by double frees and bad error + handling + * libfc: fix free of fc_rport_priv with timer pending + * libfc: remote port gets stuck in restart state without really + restarting + * fcoe, libfc: fix an libfc issue with queue ramp down in libfc + * fcoe: Fix checking san mac address + * fcoe: Fix getting san mac for VLAN interface + * qlge: Remove explicit setting of PCI Dev CTL reg. + * qlge: Set PCIE max read request size. + * qlge: Don't fail open when port is not initialized. + * qlge: Add handler for DCBX firmware event. + * qlge: Bonding fix for mode 6. + * PCI: AER: fix aer inject result in kernel oops + * DMI: allow omitting ident strings in DMI tables + * Input: i8042 - remove identification strings from DMI tables + * Input: i8042 - add Gigabyte M1022M to the noloop list + * Input: i8042 - add Dritek quirk for Acer Aspire 5610. + * ALSA: hda - select IbexPeak handler for Calpella + * ALSA: hda - Fix quirk for Maxdata obook4-1 + * ALSA: hda - Add missing Line-Out and PCM switches as slave + * iTCO_wdt.c - cleanup chipset documentation + * iTCO_wdt: add PCI ID for the Intel EP80579 (Tolapai) SoC + * iTCO_wdt: Add Intel Cougar Point and PCH DeviceIDs + * ahci: disable SNotification capability for ich8 + * ata_piix: fix MWDMA handling on PIIX3 + * md: fix small irregularity with start_ro module parameter + * V4L/DVB (13826): uvcvideo: Fix controls blacklisting + * cio: fix double free in case of probe failure + * cio: dont panic in non-fatal conditions + * netiucv: displayed TX bytes value much too high + * ipc ns: fix memory leak (idr) + * ALSA: hda - Fix HP T5735 automute + * hwmon: (fschmd) Fix a memleak on multiple opens of /dev/watchdog + * UBI: fix memory leak in update path + * UBI: initialise update marker + * ASoC: fix a memory-leak in wm8903 + * mac80211: check that ieee80211_set_power_mgmt only handles STA + interfaces. + * cfg80211: fix channel setting for wext + * KVM: S390: fix potential array overrun in intercept handling + * KVM: only allow one gsi per fd + * KVM: Fix race between APIC TMR and IRR + * KVM: MMU: bail out pagewalk on kvm_read_guest error + * KVM: x86: Fix host_mapping_level() + * KVM: x86: Fix probable memory leak of vcpu->arch.mce_banks + * KVM: x86: Fix leak of free lapic date in kvm_arch_vcpu_init() + * KVM: fix lock imbalance in kvm_*_irq_source_id() + * KVM: only clear irq_source_id if irqchip is present + * IPoIB: Clear ipoib_neigh.dgid in ipoib_neigh_alloc() + * x86: Reenable TSC sync check at boot, even with NONSTOP_TSC + * ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C + - LP: #516325 + * iwlwifi: Fix throughput stall issue in HT mode for 5000 + * fnctl: f_modown should call write_lock_irqsave/restore + * x86, msr/cpuid: Pass the number of minors when unregistering MSR and + CPUID drivers. + * Linux 2.6.32.7 + * scsi_lib: Fix bug in completion of bidi commands + * mptsas: Fix issue with chain pools allocation on katmai + * mm: add new 'read_cache_page_gfp()' helper function + * drm/i915: Selectively enable self-reclaim + * firewire: ohci: fix crashes with TSB43AB23 on 64bit systems + * S390: fix single stepped svcs with TRACE_IRQFLAGS=y + * x86: Set hotpluggable nodes in nodes_possible_map + * x86: Remove "x86 CPU features in debugfs" (CONFIG_X86_CPU_DEBUG) + * libata: retry FS IOs even if it has failed with AC_ERR_INVALID + * zcrypt: Do not remove coprocessor for error 8/72 + * dasd: fix possible NULL pointer errors + * ACPI: Add a generic API for _OSC -v2 + * ACPI: Add platform-wide _OSC support. + * ACPI: fix OSC regression that caused aer and pciehp not to load + * ACPI: Advertise to BIOS in _OSC: _OST on _PPC changes + * UBI: fix volume creation input checking + * e1000/e1000e: don't use small hardware rx buffers + * drm/i915: Reload hangcheck timer too for Ironlake + * Fix a leak in affs_fill_super() + * Fix failure exits in bfs_fill_super() + * fix oops in fs/9p late mount failure + * fix leak in romfs_fill_super() + * Fix remount races with symlink handling in affs + * fix affs parse_options() + * Fix failure exit in ipathfs + * mm: fix migratetype bug which slowed swapping + * FDPIC: Respect PT_GNU_STACK exec protection markings when creating + NOMMU stack + * Split 'flush_old_exec' into two functions + * sparc: TIF_ABI_PENDING bit removal + * x86: get rid of the insane TIF_ABI_PENDING bit + * Input: winbond-cir - remove dmesg spam + * x86: Disable HPET MSI on ATI SB700/SB800 + * iwlwifi: set default aggregation frame count limit to 31 + * drm/i915: only enable hotplug for detected outputs + * firewire: core: add_descriptor size check + * SECURITY: selinux, fix update_rlimit_cpu parameter + * regulator: Specify REGULATOR_CHANGE_STATUS for WM835x LED constraints + * x86: Add Dell OptiPlex 760 reboot quirk + - LP: #488319 + * x86: Add quirk for Intel DG45FC board to avoid low memory corruption + * x86/amd-iommu: Fix possible integer overflow + * clocksource: fix compilation if no GENERIC_TIME + * tcp: update the netstamp_needed counter when cloning sockets + * sky2: Fix oops in sky2_xmit_frame() after TX timeout + * net: restore ip source validation + * af_packet: Don't use skb after dev_queue_xmit() + * ax25: netrom: rose: Fix timer oopses + * KVM: allow userspace to adjust kvmclock offset + * oprofile/x86: add Xeon 7500 series support + * oprofile/x86: fix crash when profiling more than 28 events + * libata: retry link resume if necessary + * mm: percpu-vmap fix RCU list walking + * mm: purge fragmented percpu vmap blocks + * block: fix bio_add_page for non trivial merge_bvec_fn case + * Fix 'flush_old_exec()/setup_new_exec()' split + * random: drop weird m_time/a_time manipulation + * random: Remove unused inode variable + * block: fix bugs in bio-integrity mempool usage + * usb: r8a66597-hdc disable interrupts fix + * connector: Delete buggy notification code. + * be2net: Bug fix to support newer generation of BE ASIC + * be2net: Fix memset() arg ordering. + * mm: flush dcache before writing into page to avoid alias + * mac80211: fix NULL pointer dereference when ftrace is enabled + * imxfb: correct location of callbacks in suspend and resume + * mx3fb: some debug and initialisation fixes + * starfire: clean up properly if firmware loading fails + * kernel/cred.c: use kmem_cache_free + * uartlite: fix crash when using as console + * pktcdvd: removing device does not remove its sysfs dir + * ath9k: fix eeprom INI values override for 2GHz-only cards + * ath9k: fix beacon slot/buffer leak + * powerpc: TIF_ABI_PENDING bit removal + * NET: fix oops at bootime in sysctl code + * Linux 2.6.32.8 + + -- Andy Whitcroft Wed, 10 Feb 2010 18:56:52 +0000 + +linux (2.6.32-12.17) lucid; urgency=low + + [ Andy Whitcroft ] + + * restore linux-image prefix -- master + * enforce -- we require SELINUX enabled -- master + * enforce -- ensure APPARMOR is our default LSM -- master + * make doc package completely optional -- master + * make source package completely optional -- master + * make linux-libc-dev completly optional -- master + * convert package disable to a deps list -- master + * allow common headers to switch from indep to arch -- master + * convert binary package disable to a deps list -- master + * add configuration option for a full source build tree -- master + * add support for uImage kernels in package control scripts + * getabis -- cleanup and parameterise repository list -- master + * getabis -- move configuration to etc/getabi -- master + * kernelconfig -- move configuration to etc -- master + * rules -- make debian/debian.env master for branch name + * set the current branch name -- master + * pull back common debian.master files into debian -- master + * enforcer -- make the enforcement configuration common + * insert-changes -- correctly link to debian/rules in DROOT + + [ Colin Watson ] + + * future-proof ddeb handling against buildd changes + + [ Eric Miao ] + + * SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} depend on + X86 + + [ Loïc Minier ] + + * Add modules.builtin.bin to prerm rm list + - LP: #516584 + + [ Tim Gardner ] + + * [Config] Implement the amd64 preempt flavour + + [ Upstream Kernel Changes ] + + * syslog: distinguish between /proc/kmsg and syscalls + - LP: #515623 + * sfc: Fix polling for slow MCDI operations + * sfc: Fix conditions for MDIO self-test + * sfc: QT202x: Remove unreliable MMD check at initialisation + * sfc: Add workspace for GMAC bug workaround to MCDI MAC_STATS buffer + * sfc: Use fixed-size buffers for MCDI NVRAM requests + + -- Andy Whitcroft Fri, 05 Feb 2010 07:09:31 +0000 + +linux (2.6.32-12.16) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: acpi battery -- delay first lookup of the battery until + first use" + * SAUCE: acpi battery -- move first lookup asynchronous + - LP: #507211 + * [Config] update configs to cleanup generic configs + * [Config] disable CONFIG_X86_CPU_DEBUG for amd64 + * [Config] enable USER_NS + - LP: #480739, #509808 + + [ Heiko Carstens ] + + * (pre-stable) driver-core: fix devtmpfs crash on s390 + - LP: #512370 + + [ John Johansen ] + + * [Config] for server and virtual flavours make CONFIG_SCSI_SYM53C8XX_2=y + - LP: #494565 + * [Config] VIRTIO=y for server/virtual flavours + - LP: #494565 + + [ Kay Sievers ] + + * (pre-stable) Driver-Core: devtmpfs - set root directory mode to 0755 + - LP: #512370 + + [ Kees Cook ] + + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + + [ Leann Ogasawara ] + + * [Upstream] e1000: enhance frame fragment detection + - CVE-2009-4536 + * [Upstream] e1000e: enhance frame fragment detection + - CVE-2009-4538 + + [ Sebastian Kapfer ] + + * (pre-stable) Input: ALPS - add interleaved protocol support (Dell E6x00 + series) + - LP: #296610 + + [ Upstream Kernel Changes ] + + * inotify: do not reuse watch descriptors + - LP: #485556 + * inotify: only warn once for inotify problems + * revert "drivers/video/s3c-fb.c: fix clock setting for Samsung SoC + Framebuffer" + * memcg: ensure list is empty at rmdir + * drm/i915: remove loop in Ironlake interrupt handler + * block: Fix incorrect reporting of partition alignment + * x86, mce: Thermal monitoring depends on APIC being enabled + * futexes: Remove rw parameter from get_futex_key() + * page allocator: update NR_FREE_PAGES only when necessary + * x86, apic: use physical mode for IBM summit platforms + * edac: i5000_edac critical fix panic out of bounds + * x86: SGI UV: Fix mapping of MMIO registers + * mfd: WM835x GPIO direction register is not locked + * mfd: Correct WM835x ISINK ramp time defines + * ALSA: hda - Fix missing capture mixer for ALC861/660 codecs + * V4L/DVB (13868): gspca - sn9c20x: Fix test of unsigned. + * reiserfs: truncate blocks not used by a write + * HID: add device IDs for new model of Apple Wireless Keyboard + * PCI/cardbus: Add a fixup hook and fix powerpc + * Input: pmouse - move Sentelic probe down the list + * asus-laptop: add Lenovo SL hotkey support + * sched: Fix cpu_clock() in NMIs, on !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK + * sparc64: Fix NMI programming when perf events are active. + * sparc64: Fix Niagara2 perf event handling. + * i2c: Do not use device name after device_unregister + * i2c/pca: Don't use *_interruptible + * serial/8250_pnp: add a new Fujitsu Wacom Tablet PC device + * sched: Fix task priority bug + * vfs: Fix vmtruncate() regression + * Linux 2.6.32.5 + * x86, msr/cpuid: Register enough minors for the MSR and CPUID drivers + * V4L/DVB (13900): gspca - sunplus: Fix bridge exchanges. + * Staging: asus_oled: fix oops in 2.6.32.2 + * Staging: hv: fix smp problems in the hyperv core code + * tty: fix race in tty_fasync + * ecryptfs: use after free + * ecryptfs: initialize private persistent file before dereferencing + pointer + * nozomi: quick fix for the close/close bug + * serial: 8250_pnp: use wildcard for serial Wacom tablets + * usb: serial: fix memory leak in generic driver + * USB: fix bitmask merge error + * USB: Don't use GFP_KERNEL while we cannot reset a storage device + * USB: EHCI: fix handling of unusual interrupt intervals + * USB: EHCI & UHCI: fix race between root-hub suspend and port resume + * USB: add missing delay during remote wakeup + * USB: add speed values for USB 3.0 and wireless controllers + * ACPI: EC: Accelerate query execution + * ACPI: EC: Add wait for irq storm + * SCSI: enclosure: fix oops while iterating enclosure_status array + * drm/i915: Read the response after issuing DDC bus switch command + * drm/i915: try another possible DDC bus for the SDVO device with + multiple outputs + * block: bdev_stack_limits wrapper + * DM: Fix device mapper topology stacking + * x86/PCI/PAT: return EINVAL for pci mmap WC request for !pat_enabled + * USB: fix usbstorage for 2770:915d delivers no FAT + * vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREE + * perf timechart: Use tid not pid for COMM change + * perf events: Dont report side-band events on each cpu for + per-task-per-cpu events + * perf: Honour event state for aux stream data + * Linux 2.6.32.6 + + -- Andy Whitcroft Wed, 27 Jan 2010 16:40:23 +0000 + +linux (2.6.32-11.15) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/radeon/kms: fix crtc vblank update for r600" + * Revert "(pre-stable) sched: Fix balance vs hotplug race" + * Revert "[Upstream] acerhdf: Limit modalias matching to supported + boards" + * Revert "[Upstream] mmc: prevent dangling block device from accessing + stale queues" + * Revert "SAUCE: Fix nx_enable reporting" + * Revert "SAUCE: [x86] fix report of cs-limit nx-emulation" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: i915 -- disable powersave by default + - LP: #492392 + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Tim Gardner ] + + * [Upstream] b43: Declare all possible firmware files. + - LP: #488636 + * [Config] updateconfigs after adding pvscsi + - LP: #497156 + * [Config] CONFIG_BT=m + + [ Upstream Kernel Changes ] + + * Revert "x86: Side-step lguest problem by only building cmpxchg8b_emu + for pre-Pentium" + * SCSI: ipr: fix EEH recovery + * SCSI: qla2xxx: dpc thread can execute before scsi host has been added + * SCSI: st: fix mdata->page_order handling + * SCSI: fc class: fix fc_transport_init error handling + * sched: Fix task_hot() test order + * x86, cpuid: Add "volatile" to asm in native_cpuid() + * sched: Select_task_rq_fair() must honour SD_LOAD_BALANCE + * clockevents: Prevent clockevent_devices list corruption on cpu hotplug + * pata_hpt3x2n: fix clock turnaround + * pata_cmd64x: fix overclocking of UDMA0-2 modes + * ASoC: wm8974: fix a wrong bit definition + * sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer + * ALSA: hda - Fix missing capsrc_nids for ALC88x + * acerhdf: limit modalias matching to supported + - LP: #435958 + * ACPI: EC: Fix MSI DMI detection + * ACPI: Use the return result of ACPI lid notifier chain correctly + * powerpc: Handle VSX alignment faults correctly in little-endian mode + * ASoC: Do not write to invalid registers on the wm9712. + * drm/radeon: fix build on 64-bit with some compilers. + * USB: emi62: fix crash when trying to load EMI 6|2 firmware + * USB: option: support hi speed for modem Haier CE100 + * USB: Fix a bug on appledisplay.c regarding signedness + * USB: musb: gadget_ep0: avoid SetupEnd interrupt + * Bluetooth: Prevent ill-timed autosuspend in USB driver + * USB: rename usb_configure_device + * USB: fix bugs in usb_(de)authorize_device + * drivers/net/usb: Correct code taking the size of a pointer + * x86: SGI UV: Fix writes to led registers on remote uv hubs + * md: Fix unfortunate interaction with evms + * dma: at_hdmac: correct incompatible type for argument 1 of + 'spin_lock_bh' + * dma-debug: Do not add notifier when dma debugging is disabled. + * dma-debug: Fix bug causing build warning + * cifs: NULL out tcon, pSesInfo, and srvTcp pointers when chasing DFS + referrals + * x86/amd-iommu: Fix initialization failure panic + * ioat3: fix p-disabled q-continuation + * ioat2,3: put channel hardware in known state at init + * KVM: MMU: remove prefault from invlpg handler + * KVM: LAPIC: make sure IRR bitmap is scanned after vm load + * Libertas: fix buffer overflow in lbs_get_essid() + * iwmc3200wifi: fix array out-of-boundary access + * mac80211: fix propagation of failed hardware reconfigurations + * mac80211: fix WMM AP settings application + * mac80211: Fix IBSS merge + * cfg80211: fix race between deauth and assoc response + * ath5k: fix SWI calibration interrupt storm + * ath9k: wake hardware for interface IBSS/AP/Mesh removal + * ath9k: Fix TX queue draining + * ath9k: fix missed error codes in the tx status check + * ath9k: wake hardware during AMPDU TX actions + * ath9k: fix suspend by waking device prior to stop + * ath9k_hw: Fix possible OOB array indexing in gen_timer_index[] on + 64-bit + * ath9k_hw: Fix AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_BB and its shift value + in 0x4054 + * iwl3945: disable power save + * iwl3945: fix panic in iwl3945 driver + * iwlwifi: fix EEPROM/OTP reading endian annotations and a bug + * iwlwifi: fix more eeprom endian bugs + * iwlwifi: fix 40MHz operation setting on cards that do not allow it + * mac80211: fix race with suspend and dynamic_ps_disable_work + * NOMMU: Optimise away the {dac_,}mmap_min_addr tests + * 'sysctl_max_map_count' should be non-negative + * kernel/sysctl.c: fix the incomplete part of + sysctl_max_map_count-should-be-non-negative.patch + * V4L/DVB (13596): ov511.c typo: lock => unlock + * x86/ptrace: make genregs[32]_get/set more robust + * memcg: avoid oom-killing innocent task in case of use_hierarchy + * e100: Fix broken cbs accounting due to missing memset. + * ipv6: reassembly: use seperate reassembly queues for conntrack and + local delivery + * netfilter: fix crashes in bridge netfilter caused by fragment jumps + * hwmon: (sht15) Off-by-one error in array index + incorrect constants + * b43: avoid PPC fault during resume + * Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture + support + * sched: Fix balance vs hotplug race + * drm/radeon/kms: fix crtc vblank update for r600 + * drm: disable all the possible outputs/crtcs before entering KMS mode + * S390: dasd: support DIAG access for read-only devices + * xen: fix is_disconnected_device/exists_disconnected_device + * xen: improvement to wait_for_devices() + * xen: wait up to 5 minutes for device connetion + * orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled + * udf: Try harder when looking for VAT inode + * Add unlocked version of inode_add_bytes() function + * quota: decouple fs reserved space from quota reservation + * ext4: Convert to generic reserved quota's space management. + * ext4: fix sleep inside spinlock issue with quota and dealloc (#14739) + * x86, msr: Unify rdmsr_on_cpus/wrmsr_on_cpus + * cpumask: use modern cpumask style in drivers/edac/amd64_edac.c + * amd64_edac: unify MCGCTL ECC switching + * x86, msr: Add support for non-contiguous cpumasks + * x86, msr: msrs_alloc/free for CONFIG_SMP=n + * amd64_edac: fix driver instance freeing + * amd64_edac: make driver loading more robust + * amd64_edac: fix forcing module load/unload + * sched: Sched_rt_periodic_timer vs cpu hotplug + * ext4: Update documentation to correct the inode_readahead_blks option + name + * lguest: fix bug in setting guest GDT entry + * vmscan: do not evict inactive pages when skipping an active list scan + * ksm: fix mlockfreed to munlocked + * rt2x00: Disable powersaving for rt61pci and rt2800pci. + * generic_permission: MAY_OPEN is not write access + * Linux 2.6.32.3 + * untangle the do_mremap() mess + * fasync: split 'fasync_helper()' into separate add/remove functions + * ASoC: fix params_rate() macro use in several codecs + * modules: Skip empty sections when exporting section notes + * exofs: simple_write_end does not mark_inode_dirty + * nfsd: make sure data is on disk before calling ->fsync + * sunrpc: fix peername failed on closed listener + * SUNRPC: Fix up an error return value in + gss_import_sec_context_kerberos() + * SUNRPC: Fix the return value in gss_import_sec_context() + * sunrpc: on successful gss error pipe write, don't return error + * drm/i915: Update LVDS connector status when receiving ACPI LID event + * drm/i915: fix order of fence release wrt flushing + * drm/i915: Permit pinning whilst the device is 'suspended' + * drm: remove address mask param for drm_pci_alloc() + * drm/i915: Enable/disable the dithering for LVDS based on VBT setting + * drm/i915: Make the BPC in FDI rx/transcoder be consistent with that in + pipeconf on Ironlake + * drm/i915: Select the correct BPC for LVDS on Ironlake + * drm/i915: fix unused var + * rtc_cmos: convert shutdown to new pnp_driver->shutdown + * drivers/cpuidle/governors/menu.c: fix undefined reference to + `__udivdi3' + * cgroups: fix 2.6.32 regression causing BUG_ON() in cgroup_diput() + * lib/rational.c needs module.h + * dma-debug: allow DMA_BIDIRECTIONAL mappings to be synced with + DMA_FROM_DEVICE and + * kernel/signal.c: fix kernel information leak with print-fatal-signals=1 + * mmc_block: add dev_t initialization check + * mmc_block: fix probe error cleanup bug + * mmc_block: fix queue cleanup + * ALSA: hda - Fix ALC861-VD capture source mixer + * ALSA: ac97: Add Dell Dimension 2400 to Headphone/Line Jack Sense + blacklist + * ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2 + - LP: #498863 + * ASoC: Fix WM8350 DSP mode B configuration + * netfilter: ebtables: enforce CAP_NET_ADMIN + * netfilter: nf_ct_ftp: fix out of bounds read in update_nl_seq() + * hwmon: (coretemp) Fix TjMax for Atom N450/D410/D510 CPUs + * hwmon: (adt7462) Fix pin 28 monitoring + * quota: Fix dquot_transfer for filesystems different from ext4 + * xen: fix hang on suspend. + * iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr + * ath5k: Fix eeprom checksum check for custom sized eeproms + * cfg80211: fix syntax error on user regulatory hints + * iwl: off by one bug + * mac80211: add missing sanity checks for action frames + * drm/i915: remove render reclock support + * libertas: Remove carrier signaling from the scan code + * kernel/sysctl.c: fix stable merge error in NOMMU mmap_min_addr + * mac80211: fix skb buffering issue (and fixes to that) + * fix braindamage in audit_tree.c untag_chunk() + * fix more leaks in audit_tree.c tag_chunk() + * module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE=y + * ipv6: skb_dst() can be NULL in ipv6_hop_jumbo(). + * agp/intel-agp: Clear entire GTT on startup + * Linux 2.6.32.4 + * ethtool: Add reset operation + * gro: Name the GRO result enumeration type + * gro: Change all receive functions to return GRO result codes + * sfc: 10Xpress: Initialise pause advertising flags + * sfc: 10Xpress: Report support for pause frames + * sfc: Remove redundant header gmii.h + * sfc: Remove redundant hardware initialisation + * sfc: Rename Falcon-specific board code and types + * sfc: Remove boards.h, moving last remaining declaration to falcon.h + * sfc: Remove versioned bitfield macros + * sfc: Move RX data FIFO thresholds out of struct efx_nic_type + * sfc: Update hardware definitions for Siena + * sfc: Rename register I/O header and functions used by both Falcon and + Siena + * sfc: Eliminate indirect lookups of queue size constants + * sfc: Define DMA address mask explicitly in terms of descriptor field + width + * sfc: Move all TX DMA length limiting into tx.c + * sfc: Change order of device removal to reverse of probe order + * sfc: Remove declarations of nonexistent functions + * sfc: Move efx_xmit_done() declaration into correct stanza + * sfc: Move shared members of struct falcon_nic_data into struct efx_nic + * sfc: Maintain interrupt moderation values in ticks, not microseconds + * sfc: Removed kernel-doc for nonexistent member of efx_phy_operations + * sfc: Remove pointless abstraction of memory BAR number + * sfc: Remove incorrect assertion from efx_pci_remove_main() + * sfc: Remove unnecessary tests of efx->membase + * sfc: Move MTD probe after netdev registration and name allocation + * sfc: Remove unused code for non-autoneg speed/duplex switching + * sfc: Rename 'xfp' file and functions to reflect reality + * sfc: Really allow RX checksum offload to be disabled + * sfc: Feed GRO result into RX allocation policy and interrupt moderation + * sfc: Enable heuristic selection between page and skb RX buffers + * sfc: Remove pointless abstraction of memory BAR number (2) + * sfc: Remove redundant gotos from __efx_rx_packet() + * sfc: Remove ridiculously paranoid assertions + * sfc: Move assertions and buffer cleanup earlier in efx_rx_packet_lro() + * sfc: Record RX queue number on GRO path + * sfc: SFT9001: Reset LED configuration correctly after blinking + * sfc: Use a single blink implementation + * sfc: Rename efx_board::init_leds to init_phy and use for SFN4111T + * sfc: Make board information explicitly Falcon-specific + * sfc: Move definition of struct falcon_nic_data into falcon.h + * sfc: Move struct falcon_board into struct falcon_nic_data + * sfc: Move all I2C stuff into struct falcon_board + * sfc: Gather link state fields in struct efx_nic into new struct + efx_link_state + * sfc: Remove unnecessary casts to struct sk_buff * + * sfc: Remove redundant efx_xmit() function + * sfc: Combine high-level header files + * sfc: Log interrupt and reset type names, not numbers + * sfc: Fix descriptor cache sizes + * sfc: Treat all MAC registers as 128-bit + * sfc: Strengthen EFX_ASSERT_RESET_SERIALISED + * sfc: Comment corrections + * sfc: Remove unused constant + * sfc: Clean up struct falcon_board and struct falcon_board_data + * sfc: Fix bugs in RX queue flushing + * sfc: Remove unused function efx_flush_queues() + * sfc: Only switch Falcon MAC clocks as necessary + * sfc: Hold MAC lock for longer in efx_init_port() + * sfc: Split MAC stats DMA initiation and completion + * sfc: Move Falcon board/PHY/MAC monitoring code to falcon.c + * sfc: Simplify XMAC link polling + * sfc: Change MAC promiscuity and multicast hash at the same time + * sfc: Move inline comment into kernel-doc + * sfc: Do not set net_device::trans_start in self-test + * sfc: Simplify PHY polling + * sfc: QT202x: Reset before reading PHY id + * sfc: Replace MDIO spinlock with mutex + * sfc: Always start Falcon using the XMAC + * sfc: Limit some hardware workarounds to Falcon + * sfc: Remove EFX_WORKAROUND_9141 macro + * sfc: Remove another unused workaround macro + * sfc: Remove some redundant whitespace + * sfc: Decouple NIC revision number from Falcon PCI revision number + * sfc: Move descriptor cache base addresses to struct efx_nic_type + * sfc: Clean up RX event handling + * sfc: Remove redundant writes to INT_ADR_KER + * sfc: Remove duplicate hardware structure definitions + * sfc: Turn pause frame generation on and off at the MAC, not the RX FIFO + * sfc: Move Falcon NIC operations to efx_nic_type + * sfc: Refactor link configuration + * sfc: Generalise link state monitoring + * sfc: Add power-management and wake-on-LAN support + * sfc: Implement ethtool reset operation + * sfc: Add efx_nic_type operation for register self-test + * sfc: Add efx_nic_type operation for NVRAM self-test + * sfc: Add efx_nic_type operation for identity LED control + * sfc: Separate shared NIC code from Falcon-specific and rename + accordingly + * sfc: Fold falcon_probe_nic_variant() into falcon_probe_nic() + * sfc: Extend loopback mode enumeration + * sfc: Remove static PHY data and enumerations + * sfc: Extend MTD driver for use with new NICs + * sfc: Allow for additional checksum offload features + * sfc: Rename falcon.h to nic.h + * sfc: Move shared NIC code from falcon.c to new source file nic.c + * sfc: Add firmware protocol definitions (MCDI) + * sfc: Add support for SFC9000 family (1) + * sfc: Add support for SFC9000 family (2) + * sfc: Implement TSO for TCP/IPv6 + * sfc: Update version, copyright dates, authors + * drivers/net/sfc: Correct code taking the size of a pointer + * sfc: Move PHY software state initialisation from init() into probe() + * sfc: Include XGXS in XMAC link status check except in XGMII loopback + * sfc: Fix DMA mapping cleanup in case of an error in TSO + * sfc: QT2025C: Work around PHY bug + * sfc: QT2025C: Switch into self-configure mode when not in loopback + * sfc: QT2025C: Work around PHY firmware initialisation bug + * sfc: QT2025C: Add error message for suspected bad SFP+ cables + * sfc: Disable TX descriptor prefetch watchdog + * [SCSI] vmw_pvscsi: SCSI driver for VMware's virtual HBA. + - LP: #497156 + + -- Andy Whitcroft Tue, 19 Jan 2010 16:12:47 +0000 + +linux (2.6.32-10.14) lucid; urgency=low + + [ Alex Deucher ] + + * SAUCE: drm/radeon/kms: fix LVDS setup on r4xx + - LP: #493795 + + [ Andy Whitcroft ] + + * Revert "(pre-stable) acpi: Use the ARB_DISABLE for the CPU which model + id is less than 0x0f." + * config-check -- ensure the checks get run at build time + * config-check -- check the processed config during updateconfigs + * config-check -- CONFIG_SECCOMP may not be present + * TUN is now built in ignore + * SAUCE: acpi battery -- delay first lookup of the battery until first + use + * SAUCE: async_populate_rootfs: move rootfs init earlier + * ubuntu: AppArmor -- update to mainline 2010-01-06 + * SAUCE: move RLIMIT_CORE pipe dumper marker to 1 + - LP: #498525 + + [ Dave Airlie ] + + * (pre-stable) drm/radeon/kms: fix crtc vblank update for r600 + + [ Leann Ogasawara ] + + * Add asix to nic-usb-modules file + - LP: #499785 + + [ Peter Zijlstra ] + + * (pre-stable) sched: Fix balance vs hotplug race + + [ Tim Gardner ] + + * [Config] Enable CONFIG_FUNCTION_TRACER + - LP: #497989 + * [Config] Drop lpia from getabis + * [Config] Build in TUN/TAP driver + - LP: #499491 + * [Config] DH_COMPAT=5 + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) drm/i915: Avoid NULL dereference with + component_only tv_modes" + * Revert "(pre-stable) drm/i915: Fix sync to vblank when VGA output is + turned off" + * USB: usb-storage: fix bug in fill_inquiry + * USB: option: add pid for ZTE + * firewire: ohci: handle receive packets with a data length of zero + * rcu: Prepare for synchronization fixes: clean up for non-NO_HZ handling + of ->completed counter + * rcu: Fix synchronization for rcu_process_gp_end() uses of ->completed + counter + * rcu: Fix note_new_gpnum() uses of ->gpnum + * rcu: Remove inline from forward-referenced functions + * perf_event: Fix invalid type in ioctl definition + * perf_event: Initialize data.period in perf_swevent_hrtimer() + * perf: Don't free perf_mmap_data until work has been done + * PM / Runtime: Fix lockdep warning in __pm_runtime_set_status() + * sched: Check for an idle shared cache in select_task_rq_fair() + * sched: Fix affinity logic in select_task_rq_fair() + * sched: Rate-limit newidle + * sched: Fix and clean up rate-limit newidle code + * x86/amd-iommu: attach devices to pre-allocated domains early + * x86/amd-iommu: un__init iommu_setup_msi + * x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking + up the PCI tree + * x86: Fix iommu=nodac parameter handling + * x86: GART: pci-gart_64.c: Use correct length in strncmp + * x86: ASUS P4S800 reboot=bios quirk + - LP: #366682 + * x86, apic: Enable lapic nmi watchdog on AMD Family 11h + * ssb: Fix range check in sprom write + * ath5k: allow setting txpower to 0 + * ath5k: enable EEPROM checksum check + * hrtimer: Fix /proc/timer_list regression + * ALSA: hrtimer - Fix lock-up + * ALSA: hda - Terradici HDA controllers does not support 64-bit mode + * KVM: x86 emulator: limit instructions to 15 bytes + * KVM: s390: Fix prefix register checking in arch/s390/kvm/sigp.c + * KVM: s390: Make psw available on all exits, not just a subset + * KVM: fix irq_source_id size verification + * KVM: x86: include pvclock MSRs in msrs_to_save + * x86: Prevent GCC 4.4.x (pentium-mmx et al) function prologue wreckage + * x86: Use -maccumulate-outgoing-args for sane mcount prologues + * x86, mce: don't restart timer if disabled + * x86/mce: Set up timer unconditionally + * x86: SGI UV: Fix BAU initialization + * x86: Fix duplicated UV BAU interrupt vector + * x86: Add new Intel CPU cache size descriptors + * x86: Fix typo in Intel CPU cache size descriptor + * pata_hpt{37x|3x2n}: fix timing register masks (take 2) + * s390: clear high-order bits of registers after sam64 + * V4L/DVB: Fix test in copy_reg_bits() + * bsdacct: fix uid/gid misreporting + * UBI: flush wl before clearing update marker + * jbd2: don't wipe the journal on a failed journal checksum + * USB: xhci: Add correct email and files to MAINTAINERS entry. + * USB: musb_gadget_ep0: fix unhandled endpoint 0 IRQs, again + * USB: option.c: add support for D-Link DWM-162-U5 + * USB: usbtmc: repeat usb_bulk_msg until whole message is transfered + * USB: usb-storage: add BAD_SENSE flag + * USB: Close usb_find_interface race v3 + * pxa/em-x270: fix usb hub power up/reset sequence + * hfs: fix a potential buffer overflow + * SUNRPC: IS_ERR/PTR_ERR confusion + * NFS: Fix nfs_migrate_page() + * md/bitmap: protect against bitmap removal while being updated. + * futex: Take mmap_sem for get_user_pages in fault_in_user_writeable + * devpts_get_tty() should validate inode + * debugfs: fix create mutex racy fops and private data + * Driver core: fix race in dev_driver_string + * Serial: Do not read IIR in serial8250_start_tx when UART_BUG_TXEN + * mac80211: Fix bug in computing crc over dynamic IEs in beacon + * mac80211: Fixed bug in mesh portal paths + * mac80211: Revert 'Use correct sign for mesh active path refresh' + * mac80211: fix scan abort sanity checks + * wireless: correctly report signal value for IEEE80211_HW_SIGNAL_UNSPEC + * rtl8187: Fix wrong rfkill switch mask for some models + * x86: Fix bogus warning in apic_noop.apic_write() + * mm: hugetlb: fix hugepage memory leak in mincore() + * mm: hugetlb: fix hugepage memory leak in walk_page_range() + * powerpc/windfarm: Add detection for second cpu pump + * powerpc/therm_adt746x: Record pwm invert bit at module load time] + * powerpc: Fix usage of 64-bit instruction in 32-bit altivec code + * drm/radeon/kms: Add quirk for HIS X1300 board + * drm/radeon/kms: handle vblanks properly with dpms on + * drm/radeon/kms: fix legacy crtc2 dpms + * drm/radeon/kms: fix vram setup on rs600 + * drm/radeon/kms: rs6xx/rs740: clamp vram to aperture size + * drm/ttm: Fix build failure due to missing struct page + * drm/i915: Set the error code after failing to insert new offset into mm + ht. + * drm/i915: Add the missing clonemask for display port on Ironlake + * xen/xenbus: make DEVICE_ATTR()s static + * xen: re-register runstate area earlier on resume. + * xen: restore runstate_info even if !have_vcpu_info_placement + * xen: correctly restore pfn_to_mfn_list_list after resume + * xen: register timer interrupt with IRQF_TIMER + * xen: register runstate on secondary CPUs + * xen: don't call dpm_resume_noirq() with interrupts disabled. + * xen: register runstate info for boot CPU early + * xen: call clock resume notifier on all CPUs + * xen: improve error handling in do_suspend. + * xen: don't leak IRQs over suspend/resume. + * xen: use iret for return from 64b kernel to 32b usermode + * xen: explicitly create/destroy stop_machine workqueues outside + suspend/resume region. + * Xen balloon: fix totalram_pages counting. + * xen: try harder to balloon up under memory pressure. + * dm exception store: free tmp_store on persistent flag error + * dm snapshot: only take lock for statustype info not table + * dm crypt: move private iv fields to structs + * dm crypt: restructure essiv error path + * dm: avoid _hash_lock deadlock + * dm snapshot: cope with chunk size larger than origin + * dm crypt: separate essiv allocation from initialisation + * dm crypt: make wipe message also wipe essiv key + * slc90e66: fix UDMA handling + * tcp: Stalling connections: Fix timeout calculation routine + * ip_fragment: also adjust skb->truesize for packets not owned by a + socket + * b44 WOL setup: one-bit-off stack corruption kernel panic fix + * sparc64: Don't specify IRQF_SHARED for LDC interrupts. + * sparc64: Fix overly strict range type matching for PCI devices. + * sparc64: Fix stack debugging IRQ stack regression. + * sparc: Set UTS_MACHINE correctly. + * b43legacy: avoid PPC fault during resume + * tracing: Fix event format export + * ath9k: Fix TX hang poll routine + * ath9k: fix processing of TX PS null data frames + * ath9k: Fix maximum tx fifo settings for single stream devices + * ath9k: fix tx status reporting + * mac80211: Fix dynamic power save for scanning. + * drm/i915: Fix sync to vblank when VGA output is turned off + * memcg: fix memory.memsw.usage_in_bytes for root cgroup + * thinkpad-acpi: fix default brightness_mode for R50e/R51 + * thinkpad-acpi: preserve rfkill state across suspend/resume + * ipw2100: fix rebooting hang with driver loaded + * matroxfb: fix problems with display stability + * acerhdf: add new BIOS versions + * asus-laptop: change light sens default values. + * vmalloc: conditionalize build of pcpu_get_vm_areas() + * ACPI: Use the ARB_DISABLE for the CPU which model id is less than 0x0f. + * net: Fix userspace RTM_NEWLINK notifications. + * ext3: Fix data / filesystem corruption when write fails to copy data + * V4L/DVB (13116): gspca - ov519: Webcam 041e:4067 added. + * bcm63xx_enet: fix compilation failure after get_stats_count removal + * x86: Under BIOS control, restore AP's APIC_LVTTHMR to the BSP value + * drm/i915: Avoid NULL dereference with component_only tv_modes + * drm/i915: PineView only has LVDS and CRT ports + * drm/i915: Fix LVDS stability issue on Ironlake + * mm: sigbus instead of abusing oom + * ipvs: zero usvc and udest + * jffs2: Fix long-standing bug with symlink garbage collection. + * intel-iommu: Detect DMAR in hyperspace at probe time. + * intel-iommu: Apply BIOS sanity checks for interrupt remapping too. + * intel-iommu: Check for an RMRR which ends before it starts. + * intel-iommu: Fix oops with intel_iommu=igfx_off + * intel-iommu: ignore page table validation in pass through mode + * netfilter: xtables: document minimal required version + * perf_event: Fix incorrect range check on cpu number + * implement early_io{re,un}map for ia64 + * Linux 2.6.32.2 + + -- Andy Whitcroft Thu, 07 Jan 2010 15:28:43 +0000 + +linux (2.6.32-9.13) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_B43_PHY_LP + - LP: #493059 + * include modules.builtin in the binary debs + * config-check -- add a configuration enforcer + * config-check -- add a unit-test suite to the checker + * [Config] Enable CONFIG_SYN_COOKIES for versatile + * [Config] Enable CONFIG_SECURITY_SMACK for ports + * [Config] Enable CONFIG_SECURITY_FILE_CAPABILITIES for ports + * [Config] Disable CONFIG_COMPAT_BRK for ports + * getabis -- add armel versatile to the list + + [ Brad Figg ] + + * SAUCE: Increase the default prealloc buffer for HDA audio devices + (non-modem) + + [ Manoj Iyer ] + + * ubuntu: onmibook -- Added missing BOM file + + [ Tim Gardner ] + + * ubuntu: fsam7400 -- Cleanup Makefile + + [ Upstream Kernel Changes ] + + * Revert "ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT" + * signal: Fix alternate signal stack check + * SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects + * SCSI: osd_protocol.h: Add missing #include + * SCSI: megaraid_sas: fix 64 bit sense pointer truncation + * ext4: fix potential buffer head leak when add_dirent_to_buf() returns + ENOSPC + * ext4: avoid divide by zero when trying to mount a corrupted file system + * ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails + * ext4: fix lock order problem in ext4_move_extents() + * ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT + * ext4: plug a buffer_head leak in an error path of ext4_iget() + * ext4: make sure directory and symlink blocks are revoked + * ext4: fix i_flags access in ext4_da_writepages_trans_blocks() + * ext4: journal all modifications in ext4_xattr_set_handle + * ext4: don't update the superblock in ext4_statfs() + * ext4: fix uninit block bitmap initialization when s_meta_first_bg is + non-zero + * ext4: fix block validity checks so they work correctly with meta_bg + * ext4: avoid issuing unnecessary barriers + * ext4: fix error handling in ext4_ind_get_blocks() + * ext4: make trim/discard optional (and off by default) + * ext4: make "norecovery" an alias for "noload" + * ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT + * ext4: initialize moved_len before calling ext4_move_extents() + * ext4: move_extent_per_page() cleanup + * jbd2: Add ENOMEM checking in and for + jbd2_journal_write_metadata_buffer() + * ext4: Return the PTR_ERR of the correct pointer in + setup_new_group_blocks() + * ext4: Avoid data / filesystem corruption when write fails to copy data + * ext4: wait for log to commit when umounting + * ext4: remove blocks from inode prealloc list on failure + * ext4: ext4_get_reserved_space() must return bytes instead of blocks + * ext4: quota macros cleanup + * ext4: fix incorrect block reservation on quota transfer. + * ext4: Wait for proper transaction commit on fsync + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + * ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem) + * Linux 2.6.32.1 + * kbuild: generate modules.builtin + * (pre-stable) drm/i915: Fix sync to vblank when VGA output is turned off + - LP: #494461 + * (pre-stable) drm/i915: Avoid NULL dereference with component_only + tv_modes + - LP: #494045 + + [ Zhao Yakui ] + + * (pre-stable) acpi: Use the ARB_DISABLE for the CPU which model id is + less than 0x0f. + - LP: #481765 + + -- Andy Whitcroft Thu, 17 Dec 2009 15:41:21 +0000 + +linux (2.6.32-8.12) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: AppArmor -- add linux/err.h for ERR_PTR + + -- Andy Whitcroft Sat, 12 Dec 2009 10:56:16 +0000 + +linux (2.6.32-8.11) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches + up" + * Revert "SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition." + * Revert "SAUCE: AppArmor: Fix refcounting bug causing leak of creds" + * Revert "SAUCE: AppArmor: Fix cap audit_caching preemption disabling" + * Revert "SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds" + * Revert "SAUCE: AppArmor: Fix oops after profile removal" + * Revert "SAUCE: AppArmor: AppArmor disallows truncate of deleted files." + * Revert "SAUCE: AppArmor: AppArmor fails to audit change_hat correctly" + * Revert "SAUCE: AppArmor: Policy load and replacement can fail to alloc + mem" + * Revert "SAUCE: AppArmor: AppArmor wrongly reports allow perms as + denied" + * Revert "SAUCE: AppArmor: Fix mediation of "deleted" paths" + * Revert "SAUCE: AppArmor: Fix off by 2 error in getprocattr mem + allocation" + * Revert "SAUCE: AppArmor: Set error code after structure + initialization." + * Revert "AppArmor -- fix pstrace_may_access rename" + * Revert "ubuntu: AppArmor security module" + * Revert "SAUCE: Add config option to set a default LSM" + * Revert "ubuntu: fsam7400 -- sw kill switch driver" + * Revert "[Config] fsam7400 -- enable" + * Revert "[Config] AUFS -- enable" + * Revert "ubuntu: AUFS -- aufs2-30 20090727" + * Revert "ubuntu: AUFS -- export various core functions -- fixes" + * Revert "ubuntu: AUFS -- export various core functions" + * Revert "[Config] ubuntu/iscsitarget -- disable" + * Revert "[Config] iscsitarget -- enable" + * Revert "ubuntu: iscsitarget -- SVN revision r214" + * update Vcs-Git to point to the correct repository + - LP: #493589 + * update build environment overrides to lucid + - LP: #493589 + * [Config] enable CONFIG_DEVTMPFS + * [Config] update all configs following AppArmor 2009-12-08 update + * SAUCE: isapnp_init: make isa PNP scans occur async + * [Config] fsam7400 -- enable + * [Config] omnibook -- enable + * [Config] cleanup CONFIG_AUDIT + * ubuntu: AUFS -- export various core functions (aufs2-base.patch) + * ubuntu: AUFS -- export various core functions (aufs2-standalone.patch) + * ubuntu: AUFS -- aufs2 20091209 + * [Config] AUFS -- enable + * [Config] iscsitarget -- enable + + [ Arjan van de Ven ] + + * SAUCE: KMS: cache the EDID information of the LVDS + + [ Colin Watson ] + + * bnx2: update d-i firmware filenames + - LP: #494052 + * add cdc_ether to nic-usb-modules udeb + - LP: #495060 + + [ John Johansen ] + + * ubuntu: AppArmor -- mainline 2009-10-08 + + [ Manoj Iyer ] + + * ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M 7400 + * ubuntu: omnibook -- support Toshiba (HP) netbooks + * ubuntu: iscsitarget --- version 1.4.19 + - LP: #494693 + + [ Surbhi Palande ] + + * SAUCE: Make populate_rootfs asynchronous + + [ Tim Gardner ] + + * Parallelize flavour builds and packaging + * [Config] Enable CONFIG_KSM + + [ Upstream Kernel Changes ] + + * Config option to set a default LSM + * LSM: Add security_path_chroot(). + * LSM: Add security_path_chroot(). + * LSM: Move security_path_chmod()/security_path_chown() to after + mutex_lock(). + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + + -- Andy Whitcroft Fri, 11 Dec 2009 17:45:19 +0000 + +linux (2.6.32-7.10) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_THUMB2_KERNEL to fix arm FTBFS + + -- Andy Whitcroft Sun, 06 Dec 2009 12:56:48 +0000 + +linux (2.6.32-7.9) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: set /proc/acpi/video/*/DOS to 4 by default + - LP: #458982 + * SAUCE: ensure vga16fb loads if no other driver claims the VGA device + * [Config] update configs following versatile switch to V7 + * rebased to v2.6.32 + * [Config] update configs following rebase to v2.6.32 + * [Config] update ports configs following rebase to v2.6.32 + * SAUCE: default ATI Radeon KMS to off until userspace catches up + + [ Arjan van de Ven ] + + * SAUCE: vfs: Add a trace point in the mark_inode_dirty function + + [ Leann Ogasawara ] + + * [SCSI] megaraid_sas: remove sysfs poll_mode_io world writeable + permissions + - CVE-2009-3939 + + [ Loic Minier ] + + * SAUCE: select a v7 CPU for versatile + + [ Takashi Iwai ] + + * SAUCE: ALSA: hda - Add power on/off counter + + [ Upstream changes ] + + * rebased to v2.6.32 + + -- Andy Whitcroft Fri, 04 Dec 2009 10:44:50 +0000 + +linux (2.6.32-6.8) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable SSB devices for armel + + -- Andy Whitcroft Sat, 28 Nov 2009 12:16:40 +0000 + +linux (2.6.32-6.7) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches up" + * Revert "SAUCE: Dell XPS710 reboot quirk" + * Revert "SAUCE: Link acpi-cpufreq.o first" + * Revert "SAUCE: LPIA Logical reset of USB port on resume" + * Revert "SAUCE: LPIA Reboot fix for Intel Crownbeach development boards" + * Revert "SAUCE: Enable HDMI audio codec on Studio XPS 1340" + * Revert "SAUCE: Dell laptop digital mic does not work, PCI 1028:0271" + * Revert "Add Dell Dimension 9200 reboot quirk" + * Revert "SAUCE: Correctly blacklist Thinkpad r40e in ACPI" + * Revert "SAUCE: tulip: Define ULI PCI ID's" + * Revert "SAUCE: Lower warning level of some PCI messages" + * Revert "mac80211: fix two issues in debugfs" + Drop a number of known redundant commits as identified in the Ubuntu + delta review blueprint. + + * reenable armel versatile flavour + * [Config] disable CONFIG_USB_DEVICEFS + + [ Tim Gardner ] + + * [Config] udeb: Add squashfs to fs-core-modules + - LP: #352615 + * [Config] Create a real squashfs udeb + - LP: #352615 + + + -- Andy Whitcroft Fri, 27 Nov 2009 17:31:16 +0000 + +linux (2.6.32-5.6) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc8 + * update configs following rebase to v2.6.32-rc8 + * update ports configs since rebase to v2.6.32-rc8 + * [Config] enable cgroup options + - LP: #480739 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc8 + + -- Andy Whitcroft Mon, 23 Nov 2009 11:16:14 +0000 + +linux (2.6.32-4.5) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * rebase to v2.6.32-rc7 + * resync with Karmic proposed + + [ John Johansen ] + + * SAUCE: AppArmor: Fix oops after profile removal + - LP: #475619 + * SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds + - LP: #437258 + * SAUCE: AppArmor: Fix cap audit_caching preemption disabling + - LP: #479102 + * SAUCE: AppArmor: Fix refcounting bug causing leak of creds + - LP: #479115 + * SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition. + - LP: #480112 + + [ Ubuntu Changes ] + + * resync with Karmic proposed (ddbc670a86a3dee18541a3734149f250ff307adf) + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc7 + + -- Andy Whitcroft Fri, 13 Nov 2009 11:35:13 +0000 + +linux (2.6.32-3.4) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * [Upstream] add local prefix to oss local change_bits + + [ Upstream Kernel Changes ] + + * mtd/maps: gpio-addr-flash: pull in linux/ headers rather than asm/ + * mtd/maps: gpio-addr-flash: depend on GPIO arch support + + -- Andy Whitcroft Wed, 11 Nov 2009 14:47:04 +0000 + +linux (2.6.32-3.3) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc6 + * [Config] update configs following rebase to v2.6.32-rc6 + * [Config] update ports configs following rebase to v2.6.32-rc6 + * resync with Karmic Ubuntu-2.6.31-15.49 + * [Config] add module ignores for broken drivers + + [ John Johansen ] + + * SAUCE: AppArmor: AppArmor wrongly reports allow perms as denied + - LP: #453335 + * SAUCE: AppArmor: Policy load and replacement can fail to alloc mem + - LP: #458299 + * SAUCE: AppArmor: AppArmor fails to audit change_hat correctly + - LP: #462824 + * SAUCE: AppArmor: AppArmor disallows truncate of deleted files. + - LP: #451375 + + [ Kees Cook ] + + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Scott James Remnant ] + + * Revert "SAUCE: trace: add trace_event for the open() syscall" + * SAUCE: trace: add trace events for open(), exec() and uselib() + - LP: #462111 + + [ Stefan Bader ] + + * SAUCE: Fix sub-flavour script to not stop on missing directories + - LP: #453073 + + [ Ubuntu Changes ] + + * resync with Karmic Ubuntu-2.6.31-15.49 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc6 + - LP: #464552 + + -- Andy Whitcroft Tue, 10 Nov 2009 15:00:57 +0000 + +linux (2.6.32-2.2) lucid; urgency=low + + [ Andy Whitcroft ] + + * install the full changelog with the binary package + * changelog -- explicitly note rebases and clean history + * reinstate armel.mk with no flavours + - LP: #449637 + * [Upstream] block: silently error unsupported empty barriers too + - LP: #420423 + * [Config] udate configs following karmic resync + * [Config] update ports configs following karmic resync + * [Upstream] lirc -- follow removal of .id element + + [ Colin Watson ] + + * Use section 'admin' rather than 'base' + * Add more e100 firmware to nic-modules + - LP: #451872 + * Add qla1280 firmware to scsi-modules + - LP: #381037 + + [ John Johansen ] + + * SAUCE: AppArmor: Set error code after structure initialization. + - LP: #427948 + * SAUCE: AppArmor: Fix off by 2 error in getprocattr mem allocation + - LP: #446595 + * SAUCE: AppArmor: Fix mediation of "deleted" paths + + [ Kees Cook ] + + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + + [ Leann Ogasawara ] + + * SAUCE: (drop after 2.6.31) input: Add support for filtering input + events + - LP: #430809 + * SAUCE: (drop after 2.6.31) dell-laptop: Trigger rfkill updates on wifi + toggle switch press + - LP: #430809 + + [ Luke Yelavich ] + + * SAUCE: Add sr_mod to the scsi-modules udeb for powerpc + * [Config] Add sd_mod to scsi-modules udeb for powerpc + + [ Mario Limonciello ] + + * SAUCE: Update to LIRC 0.8.6 + - LP: #432678 + * SAUCE: dell-laptop: Store the HW switch status internally rather than + requerying every time + - LP: #430809 + * SAUCE: dell-laptop: Blacklist machines not supporting dell-laptop + - LP: #430809 + + [ Stefan Bader ] + + * [Upstream] acerhdf: Limit modalias matching to supported boards + - LP: #435958 + + [ Tim Gardner ] + + * [Upstream] i915: Fix i2c init message + - LP: #409361 + * [Config] Add sym53c8xx.ko to virtual sub-flavour + - LP: #439415 + * [Config] Add d101m_ucode.bin to d-i/firmware/nic-modules + - LP: #439456 + * [Config] Set default I/O scheduler back to CFQ for desktop flavours + - LP: #381300 + * SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros + - LP: #430694 + * SAUCE: Use MODULE_IMPORT macro to tie intel_agp to i915 + - LP: #430694 + * [Config] CONFIG_GFS2_FS_LOCKING_DLM=y + - LP: #416325 + * SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT + - LP: #430694 + * SAUCE: Raise the default console 'quiet' level to 2 + * [Config] CONFIG_X86_PAT=y + * [Config] Add armel arch to linux-libc-dev arches. + - LP: #449637 + * [Config] CONFIG_X86_MCE + * [Upstream] (drop after 2.6.31) Input: synaptics - add another Protege + M300 to rate blacklist + - LP: #433801 + + [ Upstream Kernel Changes ] + + * sgi-gru: Fix kernel stack buffer overrun, CVE-2009-2584 + * drm/i915: Fix FDI M/N setting according with correct color depth + - LP: #416792 + + -- Andy Whitcroft Thu, 22 Oct 2009 16:53:33 +0100 + +linux (2.6.32-1.1) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc3 + * [Config] update configs following rebase to 2.6.32-rc3 + * [Config] update ports configs following rebase to 2.6.32-rc3 + * AppArmor -- fix pstrace_may_access rename + * staging/android -- disable + * ubuntu: dm-raid-45 -- update to compile with 2.6.32 + * ubuntu: drbd -- disable + * staging/comdi -- disable + * staging/go7007 -- disable + * [Config] staging/winbond -- disable + * [Config] ubuntu/iscsitarget -- disable + * [d-i] cbc and ecb are builtin make them optional in udebs + * rebase to v2.6.32-rc5 + * [Config] update configs following rebase to v2.6.32-rc5 + * [Config] update ports configs following rebase to v2.6.31-rc5 + + [ Tim Gardner ] + + * [Config] Add cpio as a build dependency. + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc3 + * rebase to v2.6.32-rc5 + + -- Andy Whitcroft Mon, 05 Oct 2009 15:48:58 +0100 + +linux (2.6.31-11.37) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Increase kernel log buffer to 256K for amd64 flavours + - LP: #424810 + * [Config] Set HZ=100 for amd64 flavours + - LP: #438234 + * [Upstream] e1000e: Emit notice instead of an error when + pci_enable_pcie_error_reporting() fails + - LP: #436370 + + [ Upstream Kernel Changes ] + + * n_tty: honor opost flag for echoes + * n_tty: move echoctl check and clean up logic + - LP: #438310 + + * Revert "[Upstream] drm/i915: Check that the relocation points to within + the target" - Use upstream cherry-pick. + * drm/i915: Check that the relocation points to within the target + - LP: #429241 + + * drm/i915: fix tiling on IGDNG + * drm/i915: add B43 chipset support + * agp/intel: Add B43 chipset support + Intel request from kernel team mailing list. + + * HID: completely remove apple mightymouse from blacklist + - LP: #428111 + + -- Tim Gardner Mon, 28 Sep 2009 11:47:29 -0600 + +linux (2.6.31-11.36) karmic; urgency=low + + [ Brian Rogers ] + + * SAUCE: (drop after 2.6.31) em28xx: ir-kbd-i2c init data needs a + persistent object + * SAUCE: (drop after 2.6.31) saa7134: ir-kbd-i2c init data needs a + persistent object + + [ Takashi Iwai ] + + * [Upstream] ALSA: hda - Add another entry for Nvidia HDMI device + - LP: #416482 + + [ Tyler Hicks ] + + * SAUCE: (drop after 2.6.31) eCryptfs: Prevent lower dentry from going + negative during unlink + + [ Upstream Kernel Changes ] + + * sg: fix oops in the error path in sg_build_indirect() + * mpt2sas : Rescan topology from Interrupt context instead of work thread + * mpt2sas: Prevent sending command to FW while Host Reset + * mpt2sas: setting SDEV into RUNNING state from Interrupt context + * mpt2sas: Raid 10 Volume is showing as Raid 1E in dmesg + * SCSI: fix oops during scsi scanning + * SCSI: libsrp: fix memory leak in srp_ring_free() + * cfg80211: fix looping soft lockup in find_ie() + * ath5k: write PCU registers on initial reset + * binfmt_elf: fix PT_INTERP bss handling + * TPM: Fixup boot probe timeout for tpm_tis driver + * md: Fix "strchr" [drivers/md/dm-log-userspace.ko] undefined! + * x86/amd-iommu: fix broken check in amd_iommu_flush_all_devices + * fix undefined reference to user_shm_unlock + * perf_counter: Fix buffer overflow in perf_copy_attr() + * perf_counter: Start counting time enabled when group leader gets + enabled + * powerpc/perf_counters: Reduce stack usage of power_check_constraints + * powerpc: Fix bug where perf_counters breaks oprofile + * powerpc/ps3: Workaround for flash memory I/O error + * block: don't assume device has a request list backing in nr_requests + store + * agp/intel: remove restore in resume + * ALSA: cs46xx - Fix minimum period size + * ASoC: Fix WM835x Out4 capture enumeration + * sound: oxygen: work around MCE when changing volume + * mlx4_core: Allocate and map sufficient ICM memory for EQ context + * perf stat: Change noise calculation to use stddev + * x86: Fix x86_model test in es7000_apic_is_cluster() + * x86/i386: Make sure stack-protector segment base is cache aligned + * PCI: apply nv_msi_ht_cap_quirk on resume too + * x86, pat: Fix cacheflush address in change_page_attr_set_clr() + * ARM: 5691/1: fix cache aliasing issues between kmap() and kmap_atomic() + with highmem + * KVM guest: do not batch pte updates from interrupt context + * KVM: Fix coalesced interrupt reporting in IOAPIC + * KVM: VMX: Check cpl before emulating debug register access + * KVM guest: fix bogus wallclock physical address calculation + * KVM: x86: Disallow hypercalls for guest callers in rings > 0 + * KVM: VMX: Fix cr8 exiting control clobbering by EPT + * KVM: x86 emulator: Implement zero-extended immediate decoding + * KVM: MMU: make __kvm_mmu_free_some_pages handle empty list + * KVM: x86 emulator: fix jmp far decoding (opcode 0xea) + * KVM: limit lapic periodic timer frequency + * libata: fix off-by-one error in ata_tf_read_block() + * PCI quirk: update 82576 device ids in SR-IOV quirks list + * PCI: Unhide the SMBus on the Compaq Evo D510 USDT + * powerpc/pseries: Fix to handle slb resize across migration + * Linux 2.6.31.1 + + -- Tim Gardner Thu, 24 Sep 2009 13:04:28 -0600 + +linux (2.6.31-10.35) karmic; urgency=low + + [ Amit Kucheria ] + + * Disable CONFIG_UEVENT_HELPER_PATH + + [ Andy Whitcroft ] + + * [Config] Enable CONFIG_USB_GADGET_DUMMY_HCD + * remove the tlsup driver + * remove lmpcm logitech driver support + + [ Bryan Wu ] + + * Add 3 missing files to prerm remove file list + - LP: #345623, #415832 + + [ Chris Wilson ] + + * [Upstream] drm/i915: Check that the relocation points to within the + target + - LP: #429241 + + [ Luke Yelavich ] + + * [Config] Set CONFIG_EXT4_FS=y on ports architectures + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Tim Gardner ] + + * Revert "[Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) white-list" + Upstream suggests that this is not the right approach. + + * [Config] Set default I/O scheduler to DEADLINE + CFQ seems to have some load related problems which are often exacerbated by sreadahead. + - LP: #381300 + + [ ubuntu@tjworld.net ] + + * SAUCE: ipw2200: Enable LED by default + - LP: #21367 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Add support for new AMD HD audio devices + - LP: #430564 + + -- Andy Whitcroft Wed, 16 Sep 2009 15:37:49 +0100 + +linux (2.6.31-10.34) karmic; urgency=low + + [ Ted Tso ] + + * [Upstream] ext3: Don't update superblock write time when filesystem is + read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 16:00:45 -0600 + +linux (2.6.31-10.33) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] dvb-usb: fix tuning with Cinergy T2 + - LP: #421258 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + (really, really fix it this time) + - LP: #423426 + * [Config] Set CONFIG_CACHEFILES=m for all flavours + + [ Upstream Kernel Changes ] + + * ext4: Don't update superblock write time when filesystem is read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 07:50:21 -0600 + +linux (2.6.31-10.32) karmic; urgency=low + + [ Eric Miao ] + + * [Config] enable module support for memory stick + - LP: #159951 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + - LP: #423426 + + -- Tim Gardner Thu, 10 Sep 2009 15:57:55 -0600 + +linux (2.6.31-10.31) karmic; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.31 final + + [ Colin Watson ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + + [ Ike Panhc ] + + * [Upstream] Pull latest update of lenovo-sl-laptop + + [ Peter Feuerer ] + + * [Upstream] (drop after 2.6.31) acerhdf: fix fan control for AOA150 + model + - LP: #426691 + + [ Tim Gardner ] + + * [Config] De-macro some package names. + + [ Upstream Changes ] + + * rebase to 2.6.31 final. + + -- Andy Whitcroft Thu, 10 Sep 2009 09:38:10 +0100 + +linux (2.6.31-10.30) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Enable CONFIG_USB_DEVICEFS + - LP: #417748 + * [Config] Populate the config-update template a bit more + + [ Andy Whitcroft ] + + * rebase to v2.6.31-rc9 + * [Config] update configs following rebase to v2.6.31-rc9 + * [Config] update ports configs following rebase to v2.6.31-rc9 + + [ Colin Ian King ] + + * SAUCE: wireless: hostap, fix oops due to early probing interrupt + - LP: #254837 + + [ Jerone Young ] + + * [Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) + white-list + - LP: #281732 + + [ John Johansen ] + + * SAUCE: AppArmor: Fix profile attachment for regexp based profile names + - LP: #419308 + * SAUCE: AppArmor: Return the correct error codes on profile + addition/removal + - LP: #408473 + * SAUCE: AppArmor: Fix OOPS in profile listing, and display full list + - LP: #408454 + * SAUCE: AppArmor: Fix mapping of pux to new internal permission format + - LP: #419222 + * SAUCE: AppArmor: Fix change_profile failure + - LP: #401931 + * SAUCE: AppArmor: Tell git to ignore generated include files + - LP: #419505 + + [ Stefan Bader ] + + * [Upstream] acpi: video: Loosen strictness of video bus detection code + - LP: #333386 + * SAUCE: Remove ov511 driver from ubuntu subdirectory + + [ Tim Gardner ] + + * [Config] Exclude char-modules from non-x86 udeb creation + * SAUCE: Notify the ACPI call chain of AC events + * [Config] CONFIG_SATA_VIA=m + - LP: #403385 + * [Config] Build in all phylib support modules. + * [Config] Don't fail when sub-flavour files are missing + - LP: #423426 + * [Config] Set CONFIG_LSM_MMAP_MIN_ADDR=0 + - LP: #423513 + + [ Upstream ] + + * Rebased against v2.6.31-rc9 + + -- Andy Whitcroft Mon, 07 Sep 2009 11:33:45 +0100 + +linux (2.6.31-9.29) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] agp/intel: support for new chip variant of IGDNG mobile + - LP: #419993 + * [Config] d-i/modules: Add new char-modules file, initialize with + intel-agp + - LP: #420605 + + [ Upstream ] + + * Rebased against 2.6.31-rc8 plus some inotify regression patches: + up through git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + adda766193ea1cf3137484a9521972d080d0b7af. + + -- Tim Gardner Fri, 28 Aug 2009 06:31:30 -0600 + +linux (2.6.31-8.28) karmic; urgency=low + + [ Ike Panhc ] + + * [Config] Let nic-shared-modules depends on crypto-modules + - LP: #360966 + + [ Leann Ogasawara ] + + * [Upstream] (drop after 2.6.31) drm/i915: increase default latency + constant + - LP: #412492 + + [ Mario Limonciello ] + + * [Upstream]: (drop after 2.6.31) dell-laptop: don't change softblock + status if HW switch is disabled + - LP: #418721 + * [Upstream]: (drop after 2.6.31) compal-laptop: Add support for known + Compal made Dell laptops + * [Upstream]: (drop after 2.6.31) compal-laptop: Replace sysfs support + with rfkill support + + [ Tim Gardner ] + + * [Config] Add acpiphp to virtual sub-flavour + - LP: #364916 + * Drop KSM patch set for now because of instabilities with encrypted swap. + - LP: #418781 + + -- Tim Gardner Wed, 26 Aug 2009 08:14:26 -0600 + +linux (2.6.31-7.27) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] updateconfigs updateportsconfigs after 2.6.31-rc7 rebase + * SAUCE: (drop after 2.6.31) Added KSM from mmotm-2009-08-20-19-18 + Replaces previous ksm patches from 2.6.31-6.25 + * [Config] KSM=y + + [ Upstream ] + + * Rebased against v2.6.31-rc7 + + -- Tim Gardner Sat, 22 Aug 2009 20:32:11 -0600 + +linux (2.6.31-6.26) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_AUFS_BR_RAMFS + - LP: #414738 + * split out debian directory ready for abstraction + * add printdebian target to find branch target + * abstracted debian -- debian/files is not abstracted + * abstracted debian -- packages must be built in debian/ + * abstracted debian -- kernel-wedge needs to work in debian/ + * abstracted debian -- ensure we install the copyright file + * abstracted-debian -- drop the debian directories from headers + * abstracted-debian -- drop the debian directories from headers part 2 + * SAUCE: ubuntu-insert-changes -- follow abstracted debian + * [Upstream] aoe: ensure we initialise the request_queue correctly V2 + - LP: #410198 + + [ Luke Yelavich ] + + * [Config] Ports: Disable CONFIG_CPU_FREQ_DEBUG on powerpc-smp + * [Config] Ports: Re-enable windfarm modules on powerpc64-smp + - LP: #413150 + * [Config] Ports: Build all cpu frequency scaling governors into ports + kernels + * [Config] Ports: Build ext2 and ext3 modules into ports kernels + * [Config] Ports: CONFIG_PACKET=y for all ports kernels + * [Config] Ports: Enable PS3 network driver + + [ Stefan Bader ] + + * abstracted debian -- call $(DEBIAN)/rules using make + + [ Tim Gardner ] + + * [Config] Abstract the debian directory + * SAUCE: Improve error reporting in postinst + - LP: #358564 + + -- Tim Gardner Sun, 16 Aug 2009 20:33:28 -0600 + +linux (2.6.31-6.25) karmic; urgency=low + + [ Andy Whitcroft ] + + * script to generate Ubuntu changes from changelog + * [Config] standardise ANDROID options + * [Config] standardise CONFIG_ATM as module + * [Config] standardise CONFIG_LIB80211 as module + * [Config] disable CONFIG_PRINT_QUOTA_WARNING + * [Config] set CONFIG_CRAMFS as module + * [Config] enable CONFIG_DAB and modules + * [Config] set CONFIG_MAC80211_HWSIM as module + * [Config] set CONFIG_NET_CLS_FLOW as module + * [Config] set CONFIG_NF_CONNTRACK_SANE as module + * [Config] set CONFIG_NF_CT_PROTO_DCCP as module + * [Config] set CONFIG_RTC_DRV_DS1511 as module + * [Config] set CONFIG_RTC_DRV_R9701 as module + * [Config] set CONFIG_RTC_DRV_S35390A as module + * [Config] set CONFIG_TOIM3232_DONGLE as module + * [Config] standardise CONFIG_USB_MIDI_GADGET as module + * [Config] standardise CONFIG_USB_G_PRINTER as module + * [Config] standardise CONFIG_USB_SERIAL_IR as module + * [Config] set CONFIG_USB_SERIAL_IUU as module + * [Config] standardise CONFIG_USB_STORAGE_CYPRESS_ATACB as module + * [Config] standardise CONFIG_USB_STORAGE_ONETOUCH as module + * cleanup remains of dm-loop + * drop thinkpad ec and smapi support + * drop appleir + * [Config] update configs following rebase to v2.6.31-rc6 + * rebase to v2.6.31-rc6 + + [ Hugh Dickins ] + + * SAUCE: ksm patch 1, drop after 2.6.31 + * SAUCE: ksm patch 2, drop after 2.6.31 + * SAUCE: ksm patch 3, drop after 2.6.31 + * SAUCE: ksm patch 4, drop after 2.6.31 + * SAUCE: ksm patch 5, drop after 2.6.31 + * SAUCE: ksm patch 7, drop after 2.6.31 + + [ Izik Eidus ] + + * SAUCE: ksm patch 0, drop after 2.6.31 + * SAUCE: ksm patch 6, drop after 2.6.31 + * SAUCE: ksm patch 8, drop after 2.6.31 + * SAUCE: ksm patch 9, drop after 2.6.31 + + [ Luke Yelavich ] + + * [Config] Ports: Re-add PS3 modules to udebs + + [ Michael Casadevall ] + + * [Config] Update SPARC config and d-i files to reflect what can be built + + [ Tim Gardner ] + + * [Config] Removed armel package support + * [Config] Enabled CONFIG_KSM=y + + [ Upstream Kernel Changes ] + + * Rebased against v2.6.31-rc6 + * ARM: Cleanup: Revert "ARM: Add more cache memory types macros" + * ARM: Cleanup: Revert "Do not use OOB with MLC NAND" + * ARM: Cleanup: Revert "ARM: Make ARM arch aware of ubuntu/ drivers" + * ARM: Cleanup: Revert "ARM: IMX51: Make video capture drivers compile" + * ARM: Cleanup: Revert "ARM: IMX51: Fix isl29003 HWMON driver for i2c + changes" + * ARM: Cleanup: Revert "ARM: IMX51: IPU irq handler deadlock fix" + * ARM: Cleanup: Revert "ARM: IMX51: Babbage 2.5 needs a different system + revision" + * ARM: Cleanup: Revert "ARM: IMX51: Compile-in the IMX51 cpufreq driver + by default" + * ARM: Cleanup: Revert "ARM: IMX51: Enable ZONE_DMA for ARCH_MXC" + * ARM: Cleanup: Revert "ARM: IMX51: Make ARCH_MXC auto-enable + ARCH_MXC_CANONICAL" + * ARM: Cleanup: Revert "ARM: IMX51: Unconditionally disable + CONFIG_GPIOLIB" + * ARM: Cleanup: Revert "ARM: IMX51: Minimal changes for USB to work on + 2.6.31" + * ARM: Cleanup: Revert "ARM: IMX51: Fix plat-mxc/timer.c to handle imx51" + * ARM: Cleanup: Revert "ARM: IMX51: Make it compile." + * ARM: Cleanup: Revert "ARM: IMX51: Clean-up the craziness of including + mxc_uart.h _everywhere_" + * ARM: Cleanup: Revert "ARM: IMX51: Move board-mx51* header files to the + correct location" + * ARM: Cleanup: Revert "ARM: IMX51: Changed from snd_card_new to + snd_card_create" + * ARM: Cleanup: Revert "ARM: IMX51: Fix up merge error in Kconfig" + * ARM: Cleanup: Revert "ARM: IMX51: mxc_timer_init prototype" + * ARM: Cleanup: Revert "ARM: IMX51: Removed the mxc_gpio_port structure." + * ARM: Cleanup: Revert "ARM: IMX51: Added external declaration for + mxc_map_io." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: snd_soc_machine structure replaced + with snd_soc_card." + * ARM: Cleanup: Revert "ARM: IMX51: codec structure was moved to the card + structure" + * ARM: Cleanup: Revert "ARM: IMX51: Hack to add defines for + DMA_MODE_READ/WRITE/MASK" + * ARM: Cleanup: Revert "ARM: IMX51: Add SoC and board support for + Freescale mx51 platform" + * Driver core: add new device to bus's list before probing + * [Upstream] (drop after 2.6.31) ALSA: hda - Reduce click noise at + power-saving + - LP: #381693, #399750, #380892 + + -- Andy Whitcroft Fri, 14 Aug 2009 11:32:23 +0100 + +linux (2.6.31-5.24) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Make video capture drivers compile + * [Config] IMX51: Config updates + + [ Andy Whitcroft ] + + * remove leftovers of dm-bbr + + [ Leann Ogasawara ] + + * Add pata_cs5535 to pata-modules + - LP: #318805 + + [ Luke Yelavich ] + + * [Config] CONFIG_PPC64=y for powerpc64-smp + * [Config] Set the maximum number of CPUs to 1024 for powerpc64-smp + * [Config] CONFIG_PPC_PS3=y for powerpc64-smp + * [Config] CONFIG_PPC_MAPLE=y on powerpc64-smp + * [Config] CONFIG_PPC_PASEMI=y on powerpc64-smp + * [Config] CONFIG_CPU_FREQ_PMAC64=y on powerpc64-smp + * [Config] Enable all PS3 drivers in powerpc64-smp + + [ Mario Limonciello ] + + * LIRC -- fix lirc-i2c 2.6.31 compilation + + [ Matthew Garrett ] + + * [Upstream] dell-laptop: Fix rfkill state queries + + [ Tim Gardner ] + + * [Config] Ignore armel ABI and module changes + * [Config] Update configs after rebase against 2.6.31-rc5 + + [ Upstream ] + + * Rebased to 2.6.31-rc5 + + -- Andy Whitcroft Tue, 28 Jul 2009 10:10:09 +0100 + +linux (2.6.31-4.23) karmic; urgency=low + + [ Andy Whitcroft ] + + * AUFS -- update to aufs2-30 20090727 + * [Config] enable AUFS FUSE support + + [ Luke Yelavich ] + + * [Config] CONFIG_JFS_FS=m on sparc + + [ Tim Gardner ] + + * [Upstream] dell-laptop: Fix rfkill state setting. + + -- Andy Whitcroft Mon, 27 Jul 2009 11:11:47 +0100 + +linux (2.6.31-4.22) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Add SoC and board support for Freescale mx51 platform + * ARM: IMX51: Move board-mx51* header files to the correct location + * ARM: IMX51: Clean-up the craziness of including mxc_uart.h _everywhere_ + * ARM: IMX51: Make it compile. + * ARM: IMX51: Unconditionally disable CONFIG_GPIOLIB + * ARM: IMX51: Make ARCH_MXC auto-enable ARCH_MXC_CANONICAL + * ARM: IMX51: Enable ZONE_DMA for ARCH_MXC + * ARM: IMX51: Compile-in the IMX51 cpufreq driver by default + * ARM: IMX51: Fix isl29003 HWMON driver for i2c changes + * ARM: USB: musb: Refer to musb_otg_timer_func under correct #ifdef + * ARM: staging: udlfb: Add vmalloc.h include + * UBUNTU [Config]: Bring imx51 config upto date with other flavours + + [ Brad Figg ] + + * ARM: IMX51: Hack to add defines for DMA_MODE_READ/WRITE/MASK + * ARM: IMX51: codec structure was moved to the card structure + * ARM: IMX51: snd_soc_machine structure replaced with snd_soc_card. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Added external declaration for mxc_map_io. + * ARM: IMX51: Removed the mxc_gpio_port structure. + * ARM: IMX51: mxc_timer_init prototype + * ARM: IMX51: Fix up merge error in Kconfig + * ARM: IMX51: Changed from snd_card_new to snd_card_create + + [ Dinh Nguyen ] + + * ARM: IMX51: Fix plat-mxc/timer.c to handle imx51 + * ARM: IMX51: Minimal changes for USB to work on 2.6.31 + * ARM: IMX51: Babbage 2.5 needs a different system revision + * ARM: IMX51: IPU irq handler deadlock fix + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_CAN=m + - LP: #327243 + * [Config] Enabled CONFIG_SERIAL=m + - LP: #397189 + + -- Tim Gardner Fri, 24 Jul 2009 06:19:10 -0600 + +linux (2.6.31-4.21) karmic; urgency=low + + [ Amit Kucheria ] + + * dm-raid-4-5: Add missing brackets around test_bit() + + [ John Johansen ] + + * AppArmor: Fix change_profile failing lpn401931 + * AppArmor: Fix determination of forced AUDIT messages. + * AppArmor: Fix oops in auditing of the policy interface offset + + -- Andy Whitcroft Thu, 23 Jul 2009 19:18:30 +0100 + +linux (2.6.31-4.20) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: iscsitarget -- update to SVN revision r214 + * SAUCE: iscsitarget -- renable driver + * [Config] consolidate lpia/lpia and i386/generic configs + * [Config] enable CRYPTO modules for all architectures + * [Config] enable cryptoloop + * [Config] enable various filesystems for armel + * [Config] sync i386 generic and generic-pae + * [Config] add the 386 (486 processors and above) flavour + * [Config] re-set DEFAULT_MMAP_MIN_ADDR + - LP: #399914 + * add genconfigs/genportsconfigs to extract the built configs + * updateconfigs -- alter concatenation order allow easier updates + * intelfb -- INTELFB now conflicts with DRM_I915 + * printchanges -- rebase tree does not have stable tags use changelog + * AppArmor: fix argument size missmatch on 64 bit builds + + [ Ike Panhc ] + + * Ship bnx2x firmware in nic-modules udeb + - LP: #360966 + + [ Jeff Mahoney ] + + * AppArmor: fix build failure on ia64 + + [ John Johansen ] + + * AppArmour: ensure apparmor enabled parmater is off if AppArmor fails to + initialize. + * AppArmour: fix auditing of domain transitions to include target profile + information + * AppArmor: fix C99 violation + * AppArmor: revert reporting of create to write permission. + * SAUCE: Add config option to set a default LSM + * [Config] enable AppArmor by default + * AppArmor: Fix NULL pointer dereference oops in profile attachment. + + [ Keith Packard ] + + * SAUCE: drm/i915: Allow frame buffers up to 4096x4096 on 915/945 class + hardware + - LP: #351756 + + [ Luke Yelavich ] + + * [Config] add .o files found in arch/powerpc/lib to all powerpc kernel + header packages + - LP: #355344 + + [ Michael Casadevall ] + + * [Config] update SPARC config files to allow success build + + [ Scott James Remnant ] + + * SAUCE: trace: add trace_event for the open() syscall + + [ Stefan Bader ] + + * SAUCE: jfs: Fix early release of acl in jfs_get_acl + - LP: #396780 + + [ Tim Gardner ] + + * [Upstream] Fix Soltech TA12 volume hotkeys not sending key release + - LP: #397499 + * [Upstream] USB Option driver - Add USB ID for Novatel MC727/U727/USB727 + refresh + - LP: #365291 + * [Config] SSB/B44 are common across all arches/flavours. + + [ Upstream ] + + * Rebased to 2.6.31-rc4 + + -- Andy Whitcroft Thu, 23 Jul 2009 08:41:39 +0100 + +linux (2.6.31-3.19) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] Disabled NDISWRAPPER" + * ndiswrapper -- fix i386 compilation failures on cmpxchg8b + * AUFS -- export various core functions + * AUFS -- export various core functions -- fixes + * AUFS -- core filesystem + * AUFS -- track changes in v2.6.31 + * [Config] Enable AUFS + * droppped 'iwl3945: do not send scan command if channel count zero' as it + is already upstream but failed to auto-drop on rebase. + + [ Eric Paris ] + + * SAUCE: fsnotify: use def_bool in kconfig instead of letting the user + choose + * SAUCE: inotify: check filename before dropping repeat events + * SAUCE: fsnotify: fix inotify tail drop check with path entries + + -- Andy Whitcroft Tue, 14 Jul 2009 12:52:55 +0100 + +linux (2.6.31-3.18) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "Add splice-2.6.23.patch from AUFS to export a symbol needed by + AUFS" + * Revert "Add put_filp.patch from AUFS to export a symbol needed by AUFS" + * Revert "Add sec_perm-2.6.24.patch from AUFS - export + security_inode_permission" + * clear out left over AUFS files and modifications + + [ Luke Yelavich ] + + * [Config] Enable CONFIG_USB_ISP116X_HCD on sparc + * SAUCE: Explicitly include header files to allow apparmor to build on + powerpc + * [Config] Enable CONFIG_BLK_DEV_IDECD on powerpc + + [ Tim Gardner ] + + * [Config] Dropped ubuntu/misc/wireless/acx + * [Config] Disabled NDISWRAPPER until the compile issues are fixed. + + [ Upstream ] + + * Rebased to 2.6.31-rc3 + + -- Andy Whitcroft Fri, 10 Jul 2009 18:59:33 +0100 + +linux (2.6.31-2.17) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_BLK_DEV_CRYPTOLOOP=m for sparc + * compcache -- remove redundant Kconfig entries part 2 + * compcache -- clean up CCFLAGS declarations + * [Config] enable AppArmor + * AppArmor: fix operator precidence issue in as_path_link + + [ John Johansen ] + + * AppArmor security module + * AppArmor: Correct mapping of file permissions. + * AppArmor: Turn auditing of ptrace on + + [ Luke Yelavich ] + + * [Config] disable CONFIG_DM_RAID45 on powerpc + + -- Andy Whitcroft Fri, 10 Jul 2009 15:02:05 +0100 + +linux (2.6.31-2.16) karmic; urgency=low + + [ Andy Whitcroft ] + + * compcache -- remove redundant Kconfig entries + added ignore and ignore.modules for all arches since the compcache update + changes the modules names as well as some compcache ABI values. + + [ Manoj Iyer ] + + * SAUCE: updated dm-raid45 module version to 2009.04.24 (2.6.30-rc3) + * SAUCE: update compcache version to 0.5.3 + + [ Tim Gardner ] + + * [Config]: Fix sparc FTBS by adding ignore.modules + + -- Tim Gardner Mon, 06 Jul 2009 13:35:29 -0600 + +linux (2.6.31-2.15) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: default ATI Radeon KMS to off until userspace catches up + * [Config] Update configs following rebase to 2.6.31-rc2 + * [Config] update ports configs following update to 2.6.31-rc2 + + [ Luke Yelavich ] + + * [Config] powerpc - Disable CONFIG_RDS + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + [ Upstream Kernel Changes ] + + * rebased to mainline 2.6.31-rc2 + + -- Andy Whitcroft Sat, 04 Jul 2009 17:39:13 +0100 + +linux (2.6.31-1.14) karmic; urgency=low + + [ Andy Whitcroft ] + + * update ndiswrapper to 1.55 + * remove leftovers of gfs + * [Config] powerpc: enable CONFIG_PPC_DISABLE_WERROR + + [ Luke Yelavich ] + + * [Config] re-enable and build the ide-pmac driver into powerpc kernels + * [Config] Build the ServerWorks Frodo / Apple K2 SATA driver into the + kernel + + [ Manoj Iyer ] + + * Remove snd-bt-sco ubuntu driver + + [ Michael Casadevall ] + + * [Config] updates ia64 config and d-i folders to allow succesful build + * [Config] Update powerpc and sparc for 2.6.31 + + [ Upstream Kernel Changes ] + + * intel-iommu: fix Identity Mapping to be arch independent + - LP: #384695 + * ACPI: video: prevent NULL deref in acpi_get_pci_dev() + + -- Andy Whitcroft Tue, 30 Jun 2009 17:47:32 +0100 + +linux (2.6.31-1.13) karmic; urgency=low + + [ Andy Whitcroft ] + + * REBASE: rebased to mainline 2.6.31-rc1 + - "UBUNTU: SAUCE: UHCI USB quirk for resume" + no longer applies, using deprecated interfaces, LPIA only, dropped + - "UBUNTU: SAUCE: Mask off garbage in Dell WMI scan code data" + changes now upstream, dropped + * [Config] Update configs following rebase to 2.6.31-rc1 + * [Config] update ports configs following update to 2.6.31-rc1 + + * [Config] disable broken staging driver CONFIG_STLC45XX + * SAUCE: fix compcache to use updates accessors + * [Config] disable staging driver CONFIG_VT6655 + * SAUCE: fix DRDB to use updates accessors + * [Disable] ndiswrapper needs update + * [Disable] LIRC I2C needs update + * [Disable] CONFIG_LENOVO_SL_LAPTOP needs update + * [Config] disable I2C_DESIGNWARE does not compile + * [Config] disable CONFIG_TLSUP for lpia + * [Config] disable CONFIG_FB_UDL for arm + * SAUCE: disable adding scsi headers to linux-libc-dev + + [ Mario Limonciello ] + + * SAUCE: Add LIRC drivers + + -- Andy Whitcroft Thu, 25 Jun 2009 12:06:22 +0100 + +linux (2.6.30-10.12) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] split out the ports configs into their own family + * [Config] update configs following introduction of ports family + + [ Upstream Kernel Changes ] + + * Revert "Rename linux-doc-PKGVER to linux-doc and clean up its + description". Fixes linux-doc package name conflicts for now. + - LP: #382115 + + -- Tim Gardner Mon, 22 Jun 2009 09:17:14 -0600 + +linux (2.6.30-10.11) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Comment splitconfig.pl and misc cleanup + * [Config] Rename all configs to the new naming scheme + * [Config] Splitconfig rework + * [Config] Rename scripts/misc/oldconfig to kernelconfig + * [Config] Fix build system for new config split + * [Config] Run updateconfigs after the splitconfig rework + + [ Andy Whitcroft ] + + * Revert "SAUCE: Default to i915.modeset=0 if CONFIG_DRM_I915_KMS=y" + * [Config] standardise CONFIG_STAGING=y + * [Config] standardise CONFIG_RD_LZMA=y + * [Config] CONFIG_PCI_IOV=y + * [Config] CONFIG_PCI_STUB=m + * [Config] merge kernel configs more agressively + + [ Colin Watson ] + + * [Config] Run kernel-wedge in $(builddir) rather than at the top level + * [Config] Add support for including firmware in udebs + * [Config] Ship bnx2 firmware in nic-modules udeb + - LP: #384861 + + [ Luke Yelavich ] + + * [Config] ports - Import of ports architectures into kernel packaging + infrastructure + * [Config] ports - Do not update ports kernel configurations by default + * [Config] ports - Disable ABI checking for ports architectures + * [Config] ports - Build drivers in ubuntu sub-directory on powerpc + * [Config] ports - Add control.d/vars.* files for ports architectures + * [Config] ports - Add ports architectures for linux-libc-dev + * [Config] ports - Create powerpc specific message-modules and + block-modules udebs + * [Config] ports - Add configuration files for ports architectures + + [ Manoj Iyer ] + + * [Config] Enable CONFIG_BLK_DEV_AEC62XX=m for amd64 and i386 + - LP: #329864 + + [ Michael Casadevall ] + + * [Config] ports - Fix compression of kernels + + [ Stefan Bader ] + + * [Upstream] mmc: prevent dangling block device from accessing stale + queues + - LP: #383668 + + [ Tim Gardner ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + * [Config] Implement i386 generic and generic-pae flavours + * [Config] ports - Add control info after integrating ports arches + * [Config] Removed auto-generated files from git + * [Config] Added netxen_nic to nic-modules + - LP: #389603 + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + -- Tim Gardner Mon, 15 Jun 2009 14:38:26 -0600 + +linux (2.6.30-9.10) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_SECURITY_TOMOYO=y (amd64, i386, lpia) + * [Config] CONFIG_KEXEC_JUMP=y (amd64, lpia) + * [Config] CONFIG_LENOVO_SL_LAPTOP=m (amd64, lpia) + * [Config] CONFIG_POHMELFS_CRYPTO=y (i386, amd64) + * [Config] CONFIG_SERIAL_MAX3100=m (i386, amd64, lpia) + * [Config] CONFIG_VIDEO_GO7007=m (amd64, i386) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30 final + + -- Andy Whitcroft Fri, 05 Jun 2009 11:42:53 +0100 + +linux (2.6.30-8.9) karmic; urgency=low + + [ Andy Whitcroft ] + + * Config update removed the following options: + CONFIG_EDAC_AMD8111=m + CONFIG_EDAC_AMD8131=m + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc8 + + -- Andy Whitcroft Wed, 03 Jun 2009 09:21:13 +0100 + +linux (2.6.30-7.8) karmic; urgency=low + + [ Andy Whitcroft ] + + * Enabled NEW configration options: + Paravirtualization layer for spinlocks (PARAVIRT_SPINLOCKS) [N/y/?] Y + Cisco FNIC Driver (FCOE_FNIC) [N/m/y/?] M + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc7 + + -- Andy Whitcroft Sat, 23 May 2009 23:47:24 +0100 + +linux (2.6.30-6.7) karmic; urgency=low + + [ Andy Whitcroft ] + + * Dropped: UBUNTU: SAUCE: input: Blacklist digitizers from joydev.c (now + upstream) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc6 + + -- Andy Whitcroft Mon, 18 May 2009 18:05:54 +0100 + +linux (2.6.30-5.6) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enable Keyspan USB serial device firmware in kernel module + - LP: #334285 + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc5 + + -- Tim Gardner Mon, 11 May 2009 12:02:16 -0600 + +linux (2.6.30-4.5) karmic; urgency=low + + [ Colin Watson ] + + * Build-Conflict with findutils (= 4.4.1-1ubuntu1), to avoid + /usr/include/asm/* going missing + - LP: #373214 + + -- Stefan Bader Fri, 08 May 2009 11:09:08 +0200 + +linux (2.6.30-3.4) karmic; urgency=low + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + + [ Stefan Bader ] + + * SAUCE: input: Blacklist digitizers from joydev.c + - LP: #300143 + + -- Tim Gardner Fri, 01 May 2009 14:00:42 -0600 + +linux (2.6.30-2.3) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enabled CC_STACKPROTECTOR=y for all x86en + - LP: #369152 + * SAUCE: Default to i915_modeset=0 if CONFIG_DRM_I915_KMS=y + * [Config] CONFIG_DRM_I915_KMS=y + * [Config] Set CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR to appropriate ARCH + minimums + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc4 + + -- Tim Gardner Thu, 30 Apr 2009 09:17:05 -0600 + +linux (2.6.30-1.2) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] armel: disable staging drivers, fixes FTBS + * [Config] armel imx51: Disable CONFIG_MTD_NAND_MXC, fixes FTBS + + [ Upstream Kernel Changes ] + + * mpt2sas: Change reset_type enum to avoid namespace collision. + Submitted upstream. + + -- Tim Gardner Tue, 28 Apr 2009 16:54:41 -0600 + +linux (2.6.30-1.1) karmic; urgency=low + + * Initial release after rebasing against v2.6.30-rc3 + + -- Tim Gardner Thu, 12 Mar 2009 19:16:07 -0600 --- linux-2.6.35.orig/debian.master/copyright +++ linux-2.6.35/debian.master/copyright @@ -0,0 +1,29 @@ +This is the Ubuntu prepackaged version of the Linux kernel. +Linux was written by Linus Torvalds +and others. + +This package was put together by the Ubuntu Kernel Team, from +sources retrieved from upstream linux git. +The sources may be found at most Linux ftp sites, including +ftp://ftp.kernel.org/pub/linux/kernel/ + +This package is currently maintained by the +Ubuntu Kernel Team + +Linux is copyrighted by Linus Torvalds and others. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 dated June, 1991. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Ubuntu Linux systems, the complete text of the GNU General +Public License v2 can be found in `/usr/share/common-licenses/GPL-2'. --- linux-2.6.35.orig/debian.master/control.stub.in +++ linux-2.6.35/debian.master/control.stub.in @@ -0,0 +1,90 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.8.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, binutils-dev, rsync, libdw-dev +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Build-Conflicts: findutils (= 4.4.1-1ubuntu1) +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-maverick.git + +Package: SRCPKGNAME-source-PKGVER +Architecture: all +Section: devel +Priority: optional +Provides: SRCPKGNAME-source, SRCPKGNAME-source-2.6 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version PKGVER with Ubuntu patches + This package provides the source code for the Linux kernel version + PKGVER. + . + This package is mainly meant for other packages to use, in order to build + custom flavours. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: SRCPKGNAME-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: SRCPKGNAME-doc-2.6 +Replaces: SRCPKGNAME-doc-2.6 +Description: Linux kernel specific documentation for version PKGVER + This package provides the various documents in the PKGVER kernel + Documentation/ subdirectory. These document kernel subsystems, APIs, device + drivers, and so on. See + /usr/share/doc/SRCPKGNAME-doc/00-INDEX for a list of what is + contained in each file. + +Package: SRCPKGNAME-tools-common +Architecture: all +Section: admin +Priority: optional +Depends: ${misc:Depends} +Replaces: SRCPKGNAME-tools (<= 2.6.32-16.25) +Description: Linux kernel specific tools for version PKGVER + This package provides the architecture independent parts for kernel + version locked tools in the PKGVER kernel source. + +Package: linux-headers-PKGVER-ABINUM +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Provides: SRCPKGNAME-headers, SRCPKGNAME-headers-2.6 +Description: Header files related to Linux kernel version PKGVER + This package provides kernel header files for version PKGVER, for sites + that want the latest kernel headers. Please read + /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details + +Package: SRCPKGNAME-libc-dev +Architecture: i386 amd64 powerpc armel +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), SRCPKGNAME-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), SRCPKGNAME-kernel-headers, libdrm-dev +Provides: SRCPKGNAME-kernel-headers +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. They are NOT meant to be used to build third-party modules for + your kernel. Use SRCPKGNAME-headers-* packages for that. + +Package: linux-tools-PKGVER-ABINUM +Architecture: i386 amd64 powerpc armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel tools for version PKGVER-ABINUM + This package provides the architecture dependant parts for kernel + version locked tools for version PKGVER-ABINUM on + DESC. + --- linux-2.6.35.orig/debian.master/changelog.historical +++ linux-2.6.35/debian.master/changelog.historical @@ -0,0 +1,4171 @@ + +linux (2.6.28-9.31) jaunty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: cpufreq-nforce2: probe failures are not errors + - LP: #332170 + * SAUCE: mmc: add MODALIAS linkage for MMC/SD devices + - LP: #30335 + * remove test-suspend script + - LP: #333856 + + [ Kees Cook ] + + * handle relative paths in modules.dep + Fixes 2.6.28-9.30 FTBS. + + [ Upstream Kernel Changes ] + + * ricoh_mmc: Handle newer models of Ricoh controllers + + -- Tim Gardner Wed, 11 Mar 2009 08:19:24 -0600 + +linux (2.6.28-9.30) jaunty; urgency=low + + [ Amit Kucheria ] + + * ARM:mx51 Add SoC and board support for mx51 platforms + * ARM:mx51 Add CONFIG_ARCH_MXC_CANONICAL to disable parts of Freescale's + code + * MMC: Add support for 8-bit cards + * Add ARM:MX51 SoC support to the build system + * ARM: Make ARM arch aware of ubuntu/ drivers + * ARM: Add imx51 configuration + * Disable d-i modules for imx51 and mv78xx0 + * Disable Apparmor on boot for ARM + * Updating imx51 config + + [ Jason Liu ] + + * Do not use OOB with MLC NAND + + [ Richard Zhu ] + + * Support the eMMC4.3 card + + [ Rob Herring ] + + * ARM: Add more cache memory types macros + + [ Tim Gardner ] + + * Set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y for i386/amd64/lpia + + [ Manoj Iyer ] + + * Enable CONFIG_RTL8187SE=m + + [ Upstream Kernel Changes ] + + * USB: EHCI: slow down ITD reuse + - LP: #329437 + + -- Tim Gardner Sun, 08 Mar 2009 14:14:15 -0600 + +linux (2.6.28-9.29) jaunty; urgency=low + + [ Andy Whitcroft ] + + * link-headers -- only link directories which do not already exist + - LP: #315252 + + [ Daniel Marjamäki ] + + * SAUCE: (drop after 2.6.28) netxen: fix memory leak in + drivers/net/netxen_nic_init.c + - LP: #330813 + + [ Dhananjay Phadke ] + + * SAUCE: (drop after 2.6.28) netxen: fix endianness in firmware commands + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix ipv6 offload and tx cleanup + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix link speed reporting for some + boards + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: firmware init fix + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: cleanup mac list on driver unload + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: hold tx lock while sending firmware + commands + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: handle dma mapping failures + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: avoid invalid iounmap + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: include ipv6.h (fixes build failure) + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix vlan tso/checksum offload + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: reduce memory footprint + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: revert jumbo ringsize + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix msi-x interrupt handling + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: remove pcie workaround + - LP: #330813 + + [ Hannes Eder ] + + * SAUCE: (drop after 2.6.28) drivers/net/netxen: fix sparse warnings: use + NULL pointer instead of plain integer + - LP: #330813 + + [ Huaxu Wan ] + + * SAUCE: report rfkill changes event if interface is down + - LP: #193970 + + [ Tim Gardner ] + + * MV78XX0 must specify a target in the vars definition. + + [ Upstream Kernel Changes ] + + * Revert "ext4: wait on all pending commits in ext4_sync_fs()" + * jbd2: Fix return value of jbd2_journal_start_commit() + * jbd2: Avoid possible NULL dereference in + jbd2_journal_begin_ordered_truncate() + * ext4: Fix to read empty directory blocks correctly in 64k + * ext4: Fix lockdep warning + * ext4: Initialize preallocation list_head's properly + * ext4: Implement range_cyclic in ext4_da_writepages instead of + write_cache_pages + * ext4: Fix NULL dereference in ext4_ext_migrate()'s error handling + * ext4: Add fallback for find_group_flex + * ext4: Fix deadlock in ext4_write_begin() and ext4_da_write_begin() + * Added mv78xx0 flavor + + -- Tim Gardner Fri, 06 Mar 2009 06:13:31 -0700 + +linux (2.6.28-8.28) jaunty; urgency=low + + [ Alexey Starikovskiy ] + + * SAUCE: ACPI: EC: Limit workaround for ASUS notebooks even more + - LP: #288385 + + [ Scott James Remnant ] + + * SAUCE: Auto-load esp module when device opened. + * SAUCE: Auto-load bridge module when socket opened. + * SAUCE: Auto-load af_netlink module when socket opened. + * SAUCE: Auto-load wanrouter module when socket opened. + * SAUCE: Auto-load ip_queue module when socket opened. + * SAUCE: Auto-load ip6_queue module when socket opened. + * SAUCE: Auto-load cn module when socket opened. + * SAUCE: Auto-load scsi_transport_iscsi module when socket opened. + * SAUCE: Auto-load ftl module when device opened. + * SAUCE: Auto-load pcd module when device opened. + * SAUCE: Auto-load pf module when device opened. + * SAUCE: Auto-load nftl module when device opened. + * SAUCE: Auto-load mousedev module when psaux device opened. + * SAUCE: Auto-load mousedev module when /dev/input/mice opened. + * SAUCE: Auto-load rng-core module when device opened. + * SAUCE: Auto-load openprom module when device opened. + * SAUCE: Auto-load applicom module when device opened. + * SAUCE: Auto-load toshiba module when device opened. + * SAUCE: Auto-load cyclades module when device opened. + * SAUCE: Auto-load riscom8 module when device opened. + * SAUCE: Auto-load specialix module when device opened. + * SAUCE: Auto-load videodev module when device opened. + * SAUCE: Auto-load i2c_dev module when device opened. + * SAUCE: Auto-load mtdchar module when device opened. + * SAUCE: Auto-load pt module when device opened. + * SAUCE: Auto-load pg module when device opened. + * SAUCE: Auto-load cdc_acm module when device opened. + * SAUCE: Auto-load msr module when device opened. + * SAUCE: Auto-load cpuid module when device opened. + * SAUCE: quickcam: Enable double-buffering by default + * SAUCE: libata: Ignore HPA by default. + * SAUCE: hostap: Change initial operation mode to managed (infra) + * SAUCE: floppy: Provide a PnP device table in the module. + - LP: #255651 + * SAUCE: Auto-load mwave module when device opened. + * Build CONFIG_FUSE_FS into kernel, not as module. + + [ Stefan Bader ] + + * Enable build of ext4 as a module on LPIA + - LP: #331848 + + [ Tim Gardner ] + + * Update configs to fix LPIA FTBS + + -- Tim Gardner Thu, 05 Mar 2009 10:43:24 -0700 + +linux (2.6.28-8.27) jaunty; urgency=low + + [ Amit Kucheria ] + + * Updating configs (arm:ixp4xx) + + [ Andy Whitcroft ] + + * SAUCE: enable Intel HDMI output + + [ Manoj Iyer ] + + * SAUCE: Added quirk for Linksys WUSB600N USB wifi-n networking adapter + - LP: #323473 + + [ Steve Beattie ] + + * fix apparmor memory leak on unlinked file ops + - LP: #329489 + + [ Tim Gardner ] + + * SAUCE: Dell XPS710 reboot quirk + - LP: #323592 + * SAUCE: (drop after 2.6.28) ieee80211: Add infrastructure to obsolete + scan results + - LP: #336055 + * Add modules.order to the linux-image package. + + [ Upstream Kernel Changes ] + + * iwlwifi: fix time interval misuse in iwl_poll_{direct_}bit + * x86: only scan the root bus in early PCI quirks + - LP: #267295 + * ALSA: hda - Intel HDMI audio support + * ALSA: hda - Fix unused function in patch_intelhdmi.c + * ALSA: handle SiI1392 HDMI codec in patch_intelhdmi.c + * ALSA: hda-intel: reorder HDMI audio enabling sequence + * ALSA: introduce snd_print_pcm_rates() + * ALSA: create hda_eld.c for ELD routines and proc interface + * ALSA: ELD proc interface for HDMI sinks + * ALSA: hda: make standalone hdmi_fill_audio_infoframe() + * ALSA: hda: make global snd_print_channel_allocation() + * ALSA: hda: HDMI channel allocations for audio infoframe + * ALSA: hda: HDMI channel mapping cleanups + * ALSA: hda: minor code cleanups + * ALSA: hda: rename sink_eld to hdmi_eld + * ALSA: hda - Release ELD proc file + * ALSA: hda - minor HDMI code cleanups + * ALSA: hda - report selected CA index for Audio InfoFrame + * ALSA: hda - Add Intel vendor id string + + -- Tim Gardner Wed, 25 Feb 2009 14:23:46 -0700 + +linux (2.6.28-8.26) jaunty; urgency=low + + [ Amit Kucheria ] + + * Updating configs (armel:ixp4xx) + - LP: #331510 + + [ Tim Gardner ] + + * Add more missing modules + + -- Tim Gardner Tue, 24 Feb 2009 06:58:53 -0700 + +linux (2.6.28-8.25) jaunty; urgency=low + + [ Scott James Remnant ] + + * SAUCE: Prefer powernow-k8 to acpi-cpufreq + * Change CONFIG_X86_P4_CLOCKMOD to be a module again. + + [ Tim Gardner ] + + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Initialize the new + group descriptor when resizing the filesystem" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add sanity check + to make_indexed_dir" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: only use + i_size_high for regular files" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add sanity checks + for the superblock before mounting the filesystem" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix + s_dirty_blocks_counter if block allocation failed with nodelalloc" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Init the complete + page while building buddy cache" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Don't allow new + groups to be added during block allocation" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: mark the + blocks/inode bitmap beyond end of group as used" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Use new + buffer_head flag to check uninit group bitmaps initialization" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix the race + between read_inode_bitmap() and ext4_new_inode()" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix race between + read_block_bitmap() and mark_diskspace_used()" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: don't use blocks + freed but not yet committed in buddy cache init" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: cleanup mballoc + header files" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Use + EXT4_GROUP_INFO_NEED_INIT_BIT during resize" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add blocks added + during resize to bitmap" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Don't overwrite + allocation_context ac_status" + * Revert "SAUCE: (revert before 2.6.28.y update) jbd2: Add barrier not + supported test to journal_wait_on_commit_record" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Widen type of + ext4_sb_info.s_mb_maxs[]" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: avoid ext4_error + when mounting a fs with a single bg" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix the delalloc + writepages to allocate blocks at the right offset." + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: tone down + ext4_da_writepages warnings" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add support for + non-native signed/unsigned htree hash algorithms" + * Enabled X86_ACPI_CPUFREQ=y + + [ Upstream Kernel Changes ] + + * ath9k: quiet harmless ForceXPAon messages + - LP: #321474 + * [WATCHDOG] iTCO_wdt: fix SMI_EN regression 2 + - LP: #314050 + * pid: implement ns_of_pid + * mqueue: fix si_pid value in mqueue do_notify() + * powerpc/vsx: Fix VSX alignment handler for regs 32-63 + * sata_nv: give up hardreset on nf2 + * Fix Intel IOMMU write-buffer flushing + * SCSI: libiscsi: fix iscsi pool leak + * x86/cpa: make sure cpa is safe to call in lazy mmu mode + * sched: SCHED_OTHER vs SCHED_IDLE isolation + * x86, vm86: fix preemption bug + * Add support for VT6415 PCIE PATA IDE Host Controller + * ext2/xip: refuse to change xip flag during remount with busy inodes + * 3c505: do not set pcb->data.raw beyond its size + * Bluetooth: Fix TX error path in btsdio driver + * ext4: Add support for non-native signed/unsigned htree hash algorithms + * ext4: tone down ext4_da_writepages warnings + * ext4: Fix the delalloc writepages to allocate blocks at the right + offset. + * ext4: avoid ext4_error when mounting a fs with a single bg + * ext4: Widen type of ext4_sb_info.s_mb_maxs[] + * jbd2: Add barrier not supported test to journal_wait_on_commit_record + * ext4: Don't overwrite allocation_context ac_status + * ext4: Add blocks added during resize to bitmap + * ext4: Use EXT4_GROUP_INFO_NEED_INIT_BIT during resize + * ext4: cleanup mballoc header files + * ext4: don't use blocks freed but not yet committed in buddy cache init + * ext4: Fix race between read_block_bitmap() and mark_diskspace_used() + * ext4: Fix the race between read_inode_bitmap() and ext4_new_inode() + * ext4: Use new buffer_head flag to check uninit group bitmaps + initialization + * ext4: mark the blocks/inode bitmap beyond end of group as used + * ext4: Don't allow new groups to be added during block allocation + * ext4: Init the complete page while building buddy cache + * ext4: Fix s_dirty_blocks_counter if block allocation failed with + nodelalloc + * ext4: Add sanity checks for the superblock before mounting the + filesystem + * ext4: only use i_size_high for regular files + * ext4: Add sanity check to make_indexed_dir + * ext4: Initialize the new group descriptor when resizing the filesystem + * Fix longstanding "error: storage size of '__mod_dmi_device_table' isn't + known" + * Linux 2.6.28.7 + + -- Tim Gardner Thu, 19 Feb 2009 06:45:55 -0700 + +linux (2.6.28-8.24) jaunty; urgency=low + + [ Scott James Remnant ] + + * Change CPU_FREQ_DEFAULT_GOV_ONDEMAND to y + * SAUCE: Link acpi-cpufreq.o first + + [ Tim Gardner ] + + * Build in CPU Frequency scaling drivers + + -- Tim Gardner Wed, 18 Feb 2009 06:12:24 -0700 + +linux (2.6.28-8.23) jaunty; urgency=low + + [ Andy Whitcroft ] + + * include the kernel configuration in the sub-flavour images + - LP: #328859 + + [ Tim Gardner ] + + * Revert "SAUCE: (drop after 2.6.28) [eCryptfs] Regression in unencrypted + filename symlinks" in favor of upstream commit. + * Fix compile issues with qc-usb + * SAUCE: (remove after 2.6.28) V4L/DVB (10216): saa7127: fix broken + S-Video with saa7129 + - LP: #329267 + + [ Upstream Kernel Changes ] + + * Subject:SAUCE: LP#193970 iwlagn: fix hw-rfkill while the interface is + down + - LP: #193970 + * x86, vmi: put a missing paravirt_release_pmd in pgd_dtor + * nbd: fix I/O hang on disconnected nbds + * mac80211: restrict to AP in outgoing interface heuristic + * w1: w1 temp calculation overflow fix + * zd1211rw: adding 0ace:0xa211 as a ZD1211 device + * zd1211rw: treat MAXIM_NEW_RF(0x08) as UW2453_RF(0x09) for TP-Link + WN322/422G + * parport: parport_serial, don't bind netmos ibm 0299 + * syscall define: fix uml compile bug + * kernel-doc: fix syscall wrapper processing + * Fix page writeback thinko, causing Berkeley DB slowdown + * write-back: fix nr_to_write counter + * writeback: fix break condition + * mm: rearrange exit_mmap() to unlock before arch_exit_mmap + * powerpc/fsl-booke: Fix mapping functions to use phys_addr_t + * lockd: fix regression in lockd's handling of blocked locks + * sctp: Fix crc32c calculations on big-endian arhes. + * sctp: Correctly start rtx timer on new packet transmissions. + * sctp: Properly timestamp outgoing data chunks for rtx purposes + * net: Fix frag_list handling in skb_seq_read + * net: Fix OOPS in skb_seq_read(). + * drivers/net/skfp: if !capable(CAP_NET_ADMIN): inverted logic + * ipv4: fix infinite retry loop in IP-Config + * net: Fix userland breakage wrt. linux/if_tunnel.h + * net: packet socket packet_lookup_frame fix + * packet: Avoid lock_sock in mmap handler + * sungem: Soft lockup in sungem on Netra AC200 when switching interface + up + * udp: Fix UDP short packet false positive + * udp: increments sk_drops in __udp_queue_rcv_skb() + * ipv6: Disallow rediculious flowlabel option sizes. + * ipv6: Copy cork options in ip6_append_data + * net: 4 bytes kernel memory disclosure in SO_BSDCOMPAT gsopt try #2 + * sky2: fix hard hang with netconsoling and iface going up + * tun: Add some missing TUN compat ioctl translations. + * tun: Fix unicast filter overflow + * virtio_net: Fix MAX_PACKET_LEN to support 802.1Q VLANs + * tcp: splice as many packets as possible at once + * tcp: Fix length tcp_splice_data_recv passes to skb_splice_bits. + * sparc: Enable syscall wrappers for 64-bit (CVE-2009-0029) + * sparc64: Annotate sparc64 specific syscalls with SYSCALL_DEFINEx() + * ALSA: hda - Add missing terminator in slave dig-out array + * ALSA: mtpav - Fix initial value for input hwport + * HID: adjust report descriptor fixup for MS 1028 receiver + * ide/libata: fix ata_id_is_cfa() (take 4) + * libata: fix EH device failure handling + * netfilter: fix tuple inversion for Node information request + * netfilter: xt_sctp: sctp chunk mapping doesn't work + * x86: microcode_amd: fix wrong handling of equivalent CPU id + * ide-cd: fix DMA for non bio-backed requests + * net: Fix data corruption when splicing from sockets. + * Linux 2.6.28.6 + * eCryptfs: Regression in unencrypted filename symlinks + + -- Tim Gardner Mon, 16 Feb 2009 06:43:51 -0700 + +linux (2.6.28-8.22) jaunty; urgency=low + + [ Amit Kucheria ] + + * Remove perm-blacklist + + [ Andy Whitcroft ] + + * SAUCE: psmouse/synaptics: ensure we reset the device on resume + - LP: #317270 + + [ Tim Gardner ] + + * Add lpia to getabi script + * SAUCE: tracer for sreadahead + + -- Amit Kucheria Fri, 13 Feb 2009 15:23:21 +0200 + +linux (2.6.28-8.21) jaunty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: switch the Asus Pundit P1-AH2 to old acpi sleep ordering + - LP: #327267 + + [ Tim Gardner ] + + * Added LPIA arch support + * Added libdrm-dev as a 'Replaces' to linux-libc-dev + * SAUCE: LPIA support for 9202 HDA Sigmatel codec + * SAUCE: Add an X86_LPIA Kconfig option + * SAUCE: UHCI USB quirk for resume + * SAUCE: LPIA Reboot fix for Intel Crownbeach development boards + * SAUCE: LPIA Logical reset of USB port on resume + * Set CONFIG_WIRELESS_OLD_REGULATORY=n, added wireless-crda + as an install dependency. + + [ Upstream Kernel Changes ] + + * Revert "Revert "x86, early_ioremap: fix fencepost error"" + - LP: #312554 + * drm/i915: capture last_vblank count at IRQ uninstall time too + - LP: #320813 + * drm/i915: add get_vblank_counter function for GM45 + - LP: #320813 + * Staging: comedi: fix Kbuild + * Staging: meilhaus: fix Kbuild + * Staging: android: binder: fix arm build errors + * Staging: android: timed_gpio: Fix build to build on kernels after + 2.6.25. + * Staging: android: fix build error on 64bit boxes + * Staging: android: Add lowmemorykiller documentation. + * Staging: android: task_get_unused_fd_flags: fix the wrong usage of + tsk->signal + * staging: agnx: drivers/staging/agnx/agnx.h needs + * Staging: usbip: usbip_start_threads(): handle kernel_thread failure + * Staging: poch: fix verification of memory area + * Documentation: move DMA-mapping.txt to Doc/PCI/ + * sgi-xp: fix writing past the end of kzalloc()'d space + * do_wp_page: fix regression with execute in place + * wait: prevent exclusive waiter starvation + * shm: fix shmctl(SHM_INFO) lockup with !CONFIG_SHMEM + * revert "rlimit: permit setting RLIMIT_NOFILE to RLIM_INFINITY" + * prevent kprobes from catching spurious page faults + * sound: usb-audio: handle wMaxPacketSize for FIXED_ENDPOINT devices + * md: Ensure an md array never has too many devices. + * md: Fix a bug in linear.c causing which_dev() to return the wrong + device. + * ACPI: Enable bit 11 in _PDC to advertise hw coord + * ACPI: dock: Don't eval _STA on every show_docked sysfs read + * ieee1394: ohci1394: increase AT req. retries, fix ack_busy_X from + Panasonic camcorders and others + * firewire: ohci: increase AT req. retries, fix ack_busy_X from Panasonic + camcorders and others + * firewire: sbp2: fix DMA mapping leak on the failure path + * firewire: sbp2: add workarounds for 2nd and 3rd generation iPods + * ieee1394: sbp2: add workarounds for 2nd and 3rd generation iPods + * module: remove over-zealous check in __module_get() + * x86: APIC: enable workaround on AMD Fam10h CPUs + * eeepc-laptop: fix oops when changing backlight brightness during + eeepc-laptop init + * eeepc-laptop: Add support for extended hotkeys + * e1000: fix bug with shared interrupt during reset + * e1000: Fix PCI enable to honor the need_ioport flag + * agp/intel: Fix broken ® symbol in device name. + * ALSA: hda - Add quirk for FSC Amilo Xi2550 + * ALSA: hda - Add missing COEF initialization for ALC887 + * ALSA: hda - Add missing initialization for ALC272 + * asus_acpi: Add R1F support + * panasonic-laptop: fix X[ ARRAY_SIZE(X) ] + * ACPI: Skip the first two elements in the _BCL package + * ACPI: proc_dir_entry 'video/VGA' already registered + * ACPI: disable ACPI cleanly when bad RSDP found + * ACPICA: Fix table entry truncation calculation + * PCI: properly clean up ASPM link state on device remove + * PCI: return error on failure to read PCI ROMs + * seq_file: move traverse so it can be used from seq_read + * seq_file: fix big-enough lseek() + read() + * serial: set correct baud_base for Oxford Semiconductor Ltd EXSYS + EX-41092 Dual 16950 Serial adapter + * Add support for '8-port RS-232 MIC-3620 from advantech' + * mm: fix error case in mlock downgrade reversion + * elf core dump: fix get_user use + * ACPI: video: Fix reversed brightness behavior on ThinkPad SL series + * ipw2200: fix scanning while associated + * XFS: set b_error from bio error in xfs_buf_bio_end_io + * Revert USB: option: add Pantech cards + * USB: option: New mobile broadband modems to be supported + * USB: new id for ti_usb_3410_5052 driver + * USB: two more usb ids for ti_usb_3410_5052 + * USB: usb-storage: add Pentax to the bad-vendor list + * sata_via: Add VT8261 support + * nbd: do not allow two clients at the same time + * sctp: Fix another socket race during accept/peeloff + * Linux 2.6.28.5 + + -- Tim Gardner Mon, 09 Feb 2009 16:11:28 -0700 + +linux (2.6.28-7.20) jaunty; urgency=low + + [ Tim Gardner ] + + * SAUCE: Input: atkbd - Samsung NC10 key repeat fix + + [ Upstream Kernel Changes ] + + * Manually revert "mlock: downgrade mmap sem while populating mlocked + regions" + * xen: make sysfs files behave as their names suggest + * sata_mv: fix 8-port timeouts on 508x/6081 chips + * m68knommu: set NO_DMA + * PCI/MSI: bugfix/utilize for msi_capability_init() + * x86: use early clobbers in usercopy*.c + * netfilter: ctnetlink: fix scheduling while atomic + * orinoco: move kmalloc(..., GFP_KERNEL) outside spinlock in + orinoco_ioctl_set_genie + * fbdev/atyfb: Fix DSP config on some PowerMacs & PowerBooks + * kmalloc: return NULL instead of link failure + * sata_nv: rename nv_nf2_hardreset() + * sata_nv: fix MCP5x reset + * sata_nv: ck804 has borked hardreset too + * Fix memory corruption in console selection + * Add enable_ms to jsm driver + * nfsd: only set file_lock.fl_lmops in nfsd4_lockt if a stateowner is + found + * nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT + * iwlwifi: fix rs_get_rate WARN_ON() + * p54: fix lm87 checksum endianness + * p54: fix p54_read_eeprom to cope with tx_hdr_len + * p54usb: rewriting rx/tx routines to make use of usb_anchor's facilities + * minstrel: fix warning if lowest supported rate index is not 0 + * PCI: irq and pci_ids patch for Intel Tigerpoint DeviceIDs + * cpuidle: Add decaying history logic to menu idle predictor + * ACPI: Avoid array address overflow when _CST MWAIT hint bits are set + * video: always update the brightness when poking "brightness" + * Newly inserted battery might differ from one just removed, so update of + battery info fields is required. + * ACPI: Do not modify SCI_EN directly + * dlm: initialize file_lock struct in GETLK before copying conflicting + lock + * sata_mv: Fix chip type for Hightpoint RocketRaid 1740/1742 + * ACPICA: Allow multiple backslash prefix in namepaths + * Linux 2.6.28.4 + + -- Tim Gardner Sat, 07 Feb 2009 18:53:42 -0700 + +linux (2.6.28-7.19) jaunty; urgency=low + + * Fix missing modules FTBS + + -- Tim Gardner Thu, 05 Feb 2009 15:28:15 -0700 + +linux (2.6.28-7.18) jaunty; urgency=low + + [ Alok Kataria ] + + * SAUCE: (drop after 2.6.29) x86: add a synthetic TSC_RELIABLE feature + bit + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: add X86_FEATURE_HYPERVISOR feature bit + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: Hypervisor detection and get tsc_freq + from hypervisor + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: Add a synthetic TSC_RELIABLE feature + bit. + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: Skip verification by the watchdog for + TSC clocksource. + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: VMware: Fix vmware_get_tsc code + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: vmware: look for DMI string in the + product serial key + - LP: #319945 + + [ Andy Whitcroft ] + + * SAUCE: toshiba_acpi -- pull in current -dev version of driver + - LP: #269831 + * SAUCE: toshiba_acpi -- add acpi hotkey kernel thread + - LP: #269831 + * move toshiba laptops back from tlsup to toshiba_acpi + - LP: #269831 + + [ Aneesh Kumar K.V ] + + * SAUCE: (revert before 2.6.28.y update) ext4: Fix the delalloc + writepages to allocate blocks at the right offset. + * SAUCE: (revert before 2.6.28.y update) ext4: avoid ext4_error when + mounting a fs with a single bg + * SAUCE: (revert before 2.6.28.y update) ext4: Don't overwrite + allocation_context ac_status + * SAUCE: (revert before 2.6.28.y update) ext4: Add blocks added during + resize to bitmap + * SAUCE: (revert before 2.6.28.y update) ext4: Use + EXT4_GROUP_INFO_NEED_INIT_BIT during resize + * SAUCE: (revert before 2.6.28.y update) ext4: cleanup mballoc header + files + * SAUCE: (revert before 2.6.28.y update) ext4: don't use blocks freed but + not yet committed in buddy cache init + * SAUCE: (revert before 2.6.28.y update) ext4: Fix race between + read_block_bitmap() and mark_diskspace_used() + * SAUCE: (revert before 2.6.28.y update) ext4: Fix the race between + read_inode_bitmap() and ext4_new_inode() + * SAUCE: (revert before 2.6.28.y update) ext4: Use new buffer_head flag + to check uninit group bitmaps initialization + * SAUCE: (revert before 2.6.28.y update) ext4: mark the blocks/inode + bitmap beyond end of group as used + * SAUCE: (revert before 2.6.28.y update) ext4: Don't allow new groups to + be added during block allocation + * SAUCE: (revert before 2.6.28.y update) ext4: Init the complete page + while building buddy cache + * SAUCE: (revert before 2.6.28.y update) ext4: Fix s_dirty_blocks_counter + if block allocation failed with nodelalloc + + [ Hannes Eder ] + + * SAUCE: (drop after 2.6.29) x86: vmware - fix sparse warnings + - LP: #319945 + + [ Luke Yelavich ] + + * hid modules have hyphens instead of underscores in their names + + [ Mark Fasheh ] + + * SAUCE: (revert before 2.6.28.y update) jbd2: Add BH_JBDPrivateStart + + [ Theodore Ts'o ] + + * SAUCE: (revert before 2.6.28.y update) ext4: Add support for non-native + signed/unsigned htree hash algorithms + * SAUCE: (revert before 2.6.28.y update) ext4: tone down + ext4_da_writepages warnings + * SAUCE: (revert before 2.6.28.y update) jbd2: Add barrier not supported + test to journal_wait_on_commit_record + * SAUCE: (revert before 2.6.28.y update) ext4: Add sanity checks for the + superblock before mounting the filesystem + * SAUCE: (revert before 2.6.28.y update) ext4: only use i_size_high for + regular files + * SAUCE: (revert before 2.6.28.y update) ext4: Add sanity check to + make_indexed_dir + * SAUCE: (revert before 2.6.28.y update) jbd2: On a __journal_expect() + assertion failure printk "JBD2", not "EXT3-fs" + * SAUCE: (revert before 2.6.28.y update) ext4: Initialize the new group + descriptor when resizing the filesystem + + [ Tyler Hicks ] + + * SAUCE: (drop after 2.6.28) [eCryptfs] Regression in unencrypted + filename symlinks + - LP: #322532 + + [ Upstream Kernel Changes ] + + * Input: atkbd - broaden the Dell DMI signatures + - LP: #261721 + * ti_usb_3410_5052: support alternate firmware + * ath5k: fix mesh point operation + * mac80211: decrement ref count to netdev after launching mesh discovery + * inotify: clean up inotify_read and fix locking problems + * fuse: destroy bdi on umount + * fuse: fix missing fput on error + * fuse: fix NULL deref in fuse_file_alloc() + * x86, mm: fix pte_free() + * klist.c: bit 0 in pointer can't be used as flag + * sysfs: fix problems with binary files + * x86: fix page attribute corruption with cpa() + * USB: fix toggle mismatch in disable_endpoint paths + * sound: virtuoso: enable UART on Xonar HDAV1.3 + * USB: usbmon: Implement compat_ioctl + * USB: fix char-device disconnect handling + * USB: storage: add unusual devs entry + * alpha: nautilus - fix compile failure with gcc-4.3 + * alpha: fix vmalloc breakage + * resources: skip sanity check of busy resources + * rtl8187: Add termination packet to prevent stall + * it821x: Add ultra_mask quirk for Vortex86SX + * libata: pata_via: support VX855, future chips whose IDE controller use + 0x0571 + * serial_8250: support for Sealevel Systems Model 7803 COMM+8 + * drm: stash AGP include under the do-we-have-AGP ifdef + * Fix OOPS in mmap_region() when merging adjacent VM_LOCKED file segments + * bnx2x: Block nvram access when the device is inactive + * ext3: Add sanity check to make_indexed_dir + * rtl8187: Fix error in setting OFDM power settings for RTL8187L + * epoll: drop max_user_instances and rely only on max_user_watches + * gpiolib: fix request related issue + * sgi-xpc: Remove NULL pointer dereference. + * sgi-xpc: ensure flags are updated before bte_copy + * include/linux: Add bsg.h to the Kernel exported headers + * ALSA: hda - Fix PCM reference NID for STAC/IDT analog outputs + * ALSA: hda - add another MacBook Pro 4, 1 subsystem ID + * ALSA: hda - Add quirk for HP DV6700 laptop + * crypto: authenc - Fix zero-length IV crash + * crypto: ccm - Fix handling of null assoc data + * x86, pat: fix reserve_memtype() for legacy 1MB range + * x86, pat: fix PTE corruption issue while mapping RAM using /dev/mem + * PCI hotplug: fix lock imbalance in pciehp + * dmaengine: fix dependency chaining + * NET: net_namespace, fix lock imbalance + * relay: fix lock imbalance in relay_late_setup_files + * Linux 2.6.28.3 + * ALSA: Enable SPDIF output on ALC655 + * ALSA: hda - Add ASUS V1Sn support + * ALSA: hda - support detecting HD Audio devices with PCI class code + * ALSA: hda: alc883 model for ASUS P5Q-EM boards + * ALSA: hda - Add quirk for MSI 7260 mobo + * ALSA: hda - Add quirk for Sony VAIO VGN-SR19XN + * ALSA: oxygen: add Claro halo support + * ALSA: hda - Add a new function to seek for a codec ID + * ALSA: patch_sigmatel: Add missing Gateway entries and autodetection + * ALSA: hda - More fixes on Gateway entries + * ALSA: hda - Add MCP67 HDMI support + * ALSA: hda - fix name for ALC1200 + * LSA: hda - Add HP Acacia detection + * ALSA: hda - Add quirk for HP 2230s + * ALSA: hda - Add quirk for Dell Inspiron Mini9 + * ALSA: hda - add support for Intel DX58SO board + * ALSA: hda - Fix silent headphone output on Panasonic CF-74 + * ALSA: USB quirk for Logitech Quickcam Pro 9000 name + * ALSA: hda - add quirks for some 82801H variants to use ALC883_MITAC + + [ Yasunori Goto ] + + * SAUCE: (revert before 2.6.28.y update) ext4: Widen type of + ext4_sb_info.s_mb_maxs[] + + -- Tim Gardner Mon, 02 Feb 2009 23:07:13 -0700 + +linux (2.6.28-6.17) jaunty; urgency=low + + [ Amit Kucheria ] + + * Updating configs: ARMEL/versatile + + -- Amit Kucheria Fri, 30 Jan 2009 13:36:59 +0200 + +linux (2.6.28-6.16) jaunty; urgency=low + + [ Luke Yelavich ] + + * Add hid quirks to input-modules udeb + + [ Tim Gardner ] + + * Revert "[arm] Fix kexec on ARM by properly calling the relocation + function". This patch was deemed 'bogus' by Russell King on the + ARM mailing list. + + [ Upstream Kernel Changes ] + + * PCI: keep ASPM link state consistent throughout PCIe hierarchy + * security: introduce missing kfree + * rt2x00: add USB ID for the Linksys WUSB200. + * p54usb: Add USB ID for Thomson Speedtouch 121g + * lib/idr.c: use kmem_cache_zalloc() for the idr_layer cache + * sgi-xp: eliminate false detection of no heartbeat + * sched: fix update_min_vruntime + * IA64: Turn on CONFIG_HAVE_UNSTABLE_CLOCK + * sound: virtuoso: do not overwrite EEPROM on Xonar D2/D2X + * ALSA: hda - Add quirk for another HP dv5 + * ALSA: hda - Fix HP dv5 mic input + * ALSA: hda - Don't reset HP pinctl in patch_sigmatel.c + * ALSA: hda - make laptop-eapd model back for AD1986A + * drivers/net/irda/irda-usb.c: fix buffer overflow + * usb-storage: add last-sector hacks + * usb-storage: set CAPACITY_HEURISTICS flag for bad vendors + * pkt_sched: sch_htb: Fix deadlock in hrtimers triggered by HTB + * ipv6: Fix fib6_dump_table walker leak + * sctp: Avoid memory overflow while FWD-TSN chunk is received with bad + stream ID + * pkt_sched: cls_u32: Fix locking in u32_change() + * r6040: fix wrong logic in mdio code + * r6040: save and restore MIER correctly in the interrupt routine + * r6040: bump release number to 0.19 + * tcp: don't mask EOF and socket errors on nonblocking splice receive + * p54usb: fix traffic stalls / packet drop + * netfilter: x_tables: fix match/target revision lookup + * netfilter: ebtables: fix inversion in match code + * netfilter: nf_conntrack: fix ICMP/ICMPv6 timeout sysctls on big-endian + * dell_rbu: use scnprintf() instead of less secure sprintf() + * powerpc: is_hugepage_only_range() must account for both 4kB and 64kB + slices + * hwmon: (abituguru3) Fix CONFIG_DMI=n fallback to probe + * mm: write_cache_pages cyclic fix + * mm: write_cache_pages early loop termination + * mm: write_cache_pages writepage error fix + * mm: write_cache_pages integrity fix + * mm: write_cache_pages cleanups + * mm: write_cache_pages optimise page cleaning + * mm: write_cache_pages terminate quickly + * mm: write_cache_pages more terminate quickly + * mm: do_sync_mapping_range integrity fix + * mm: direct IO starvation improvement + * fs: remove WB_SYNC_HOLD + * fs: sync_sb_inodes fix + * fs: sys_sync fix + * Linux 2.6.28.2 + + -- Tim Gardner Sun, 25 Jan 2009 13:36:16 -0700 + +linux (2.6.28-5.15) jaunty; urgency=low + + [ Tim Gardner ] + + * Revert "Enabled CONFIG_PID_NS=y for i386/amd64" + Somehow this commit also reverted the 7 prior commits (which is bad). + * Enabled CONFIG_PID_NS=y for i386/amd64 (version 2) + + -- Tim Gardner Thu, 22 Jan 2009 13:48:34 -0700 + +linux (2.6.28-5.14) jaunty; urgency=low + + [ Ben Collins ] + + * lirc_gpio: Forward ported to current kernel (jaunty) + * configs: Enable LIRC_GPIO on 64-bit/32-bit x86 + - LP: #298791 + + [ Jeff Layton ] + + * SAUCE: cifs: make sure we allocate enough storage for socket address + - LP: #318565 + + [ Tim Gardner ] + + * check-abi: Return success when ABI skip is requested and no ABI files exist. + This ought to fix the armel FTBS. + + -- Tim Gardner Thu, 22 Jan 2009 06:42:49 -0700 + +linux (2.6.28-5.13) jaunty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: don't use buggy _BCL/_BCM/_BQC for backlight control" + + [ Tim Gardner ] + + * Fix udeb generation breakage caused by the previous armel versatile + flavour config update. + + -- Tim Gardner Wed, 21 Jan 2009 12:38:35 -0700 + +linux (2.6.28-5.12) jaunty; urgency=low + + [ Ante ] + + * Update drbd to 8.3.0 + + [ Dave Airlie ] + + * i915/drm: provide compat defines for userspace for certain struct + + [ Eric Anholt ] + + * drm/i915: Don't double-unpin buffers if we take a signal in + * drm/i915: Don't complain when interrupted while pinning in execbuffers. + * drm/i915: Don't allow objects to get bound while VT switched. + + [ Jani Monoses ] + + * Fix webcam having USB ID 0ac8:303b + - LP: #292086 + + [ Jesse Barnes ] + + * drm/i915: set vblank enabled flag correctly across IRQ + * drm/i915: don't enable vblanks on disabled pipes + + [ Michael Casadevall ] + + * [arm] Fix kexec on ARM by properly calling the relocation function + + [ Tim Gardner ] + + * Enabled CONFIG_PID_NS=y for i386/amd64 + * SAUCE: Increase ATA_TMOUT_PMP_SRST_WAIT to 5 seconds. + - LP: #318978 + * Update armel versatile config + - LP: #314789 + * Enabled CONFIG_RT2860=m for i386/amd64 + * Enabled CONFIG_RT2870=m for i386/amd64 + + [ Upstream Kernel Changes ] + + * Input: atkbd - add keyboard quirk for HP Pavilion ZV6100 laptop + - LP: #291878 + * ALSA: hda - Add quirk for another HP dv7 + * ALSA: hda - Add quirk for HP6730B laptop + * ALSA: caiaq - Fix Oops with MIDI + * ALSA: hda - Fix typos for AD1882 codecs + * x86: fix intel x86_64 llc_shared_map/cpu_llc_id anomolies + * x86: default to SWIOTLB=y on x86_64 + * CIFS: make sure that DFS pathnames are properly formed + * ring-buffer: prevent false positive warning + * ring-buffer: fix dangling commit race + * iwlwifi: use GFP_KERNEL to allocate Rx SKB memory + * tx493[89]ide: Fix length for __ide_flush_dcache_range + * tx4939ide: Do not use zero count PRD entry + * SCSI: eata: fix the data buffer accessors conversion regression + * USB: emi26: fix oops on load + * x86, UV: remove erroneous BAU initialization + * x86: fix incorrect __read_mostly on _boot_cpu_pda + * vmalloc.c: fix flushing in vmap_page_range() + * fs: symlink write_begin allocation context fix + * cgroups: fix a race between cgroup_clone and umount + * dm raid1: fix error count + * dm log: fix dm_io_client leak on error paths + * minix: fix add link's wrong position calculation + * md: fix bitmap-on-external-file bug. + * sched_clock: prevent scd->clock from moving backwards, take #2 + * devices cgroup: allow mkfifo + * SCSI: aha152x_cs: Fix regression that keeps driver from using shared + interrupts + * ioat: fix self test for multi-channel case + * USB: isp1760: use a specific PLX bridge instead of any bdridge + * USB: isp1760: Fix probe in PCI glue code + * USB: unusual_devs.h additions for Pentax K10D + * inotify: fix type errors in interfaces + * Move compat system call declarations to compat header file + * Convert all system calls to return a long + * Rename old_readdir to sys_old_readdir + * Remove __attribute__((weak)) from sys_pipe/sys_pipe2 + * Make sys_pselect7 static + * Make sys_syslog a conditional system call + * System call wrapper infrastructure + * powerpc: Enable syscall wrappers for 64-bit + * s390: enable system call wrappers + * System call wrapper special cases + * System call wrappers part 01 + * System call wrappers part 02 + * System call wrappers part 03 + * System call wrappers part 04 + * System call wrappers part 05 + * System call wrappers part 06 + * System call wrappers part 07 + * System call wrappers part 08 + * System call wrappers part 09 + * System call wrappers part 10 + * System call wrappers part 11 + * System call wrappers part 12 + * System call wrappers part 13 + * System call wrappers part 14 + * System call wrappers part 15 + * System call wrappers part 16 + * System call wrappers part 17 + * System call wrappers part 18 + * System call wrappers part 19 + * System call wrappers part 20 + * System call wrappers part 21 + * System call wrappers part 22 + * System call wrappers part 23 + * System call wrappers part 24 + * System call wrappers part 25 + * System call wrappers part 26 + * System call wrappers part 27 + * System call wrappers part 28 + * System call wrappers part 29 + * System call wrappers part 30 + * System call wrappers part 31 + * System call wrappers part 32 + * System call wrappers part 33 + * s390 specific system call wrappers + * x86: fix RIP printout in early_idt_handler + * Fix timeouts in sys_pselect7 + * USB: another unusual_devs entry for another bad Argosy storage device + * USB: storage: extend unusual range for 067b:3507 + * USB: storage: recognizing and enabling Nokia 5200 cell phoes + * HID: fix error condition propagation in hid-sony driver + * fix switch_names() breakage in short-to-short case + * nfs: remove redundant tests on reading new pages + * eCryptfs: check readlink result was not an error before using it + * mvsas: increase port type detection delay to suit Seagate's 10k6 drive ST3450856SS 0003 + * x86: avoid theoretical vmalloc fault loop + * ath9k: enable RXing of beacons on STA/IBSS + * mm lockless pagecache barrier fix + * powerpc: Disable Collaborative Memory Manager for kdump + * ibmvfc: Delay NPIV login retry and add retries + * ibmvfc: Improve async event handling + * getrusage: RUSAGE_THREAD should return ru_utime and ru_stime + * ath5k: ignore the return value of ath5k_hw_noise_floor_calibration + * mm: fix assertion + * XFS: truncate readdir offsets to signed 32 bit values + * Linux 2.6.28.1 + * eCryptfs: Filename Encryption: Tag 70 packets + * eCryptfs: Filename Encryption: Header updates + * eCryptfs: Filename Encryption: Encoding and encryption functions + * eCryptfs: Filename Encryption: filldir, lookup, and readlink + * eCryptfs: Filename Encryption: mount option + * eCryptfs: Replace %Z with %z + * eCryptfs: Fix data types (int/size_t) + * eCryptfs: kerneldoc for ecryptfs_parse_tag_70_packet() + * eCryptfs: Clean up ecryptfs_decode_from_filename() + * fs/ecryptfs/inode.c: cleanup kerneldoc + * staging-p80211: Kill directly reference of netdev->priv + * staging-slicoss: Kill directly reference of netdev->priv + * staging-winbond: Kill directly reference of netdev->priv + * Staging: go7007: fixes due to video_usercopy api change + * Staging: go7007: fixes due v4l2_file_operations api change + * staging: correct dubious use of !x & y + * Staging: w35und: make wb35_probe() and wb35_disconnect() funtions static + * Staging: w35und: remove unused wb35_open() and wb35_close() functions + * Staging: w35und: use msleep() and udelay() + * Staging: w35und: remove the no-op pa_stall_execution macro + * Staging: w35und: purb typedef removal + * Staging: w35und: reg queue struct typedef removal + * Staging: w35und: wb35reg struct typedef removal + * Staging: w35und: padapter struct typedef removal + * Staging: w35und: merge wblinux struct to adapter + * Staging: w35und: wb35_probe() cleanup + * Staging: w35und: remove usb_submit_urb wrapper function + * Staging: w35und: remove usb_alloc_urb wrapper function + * w35und: remove dead code from wbusb_f.h + * Staging: w35und: remove true/false boolean macros + * Staging: w35und: OS_MEMORY_ALLOC wrapper removal + * Staging: w35und: usb_put_dev() is missing from wb35_disconnect() + * Staging: w35und: remove macro magic from MLME_GetNextPacket() + * Staging: w35und: plug memory leak in wbsoft_tx() + * Staging: w35und: move supported band initialization out of wb35_probe() + * Staging: w35und: remove timer wrappers + * Staging: w35und: remove atomic op wrappers + * Staging: w35und: remove memcpy/memcmp wrappers + * Staging: w35und: remove abs() and BIT() macros + * Staging: w35und: remove unused macros from common.h + * Staging: w35und: remove unused link status code + * Staging: w35und: #include cleanup + * Staging: w35und: remove some dead code + * Staging: w35und: move source files to one directory + * Staging: w35und: move struct wbsoft_priv to core.h and use it + * Staging: w35und: remove ->adapter from struct _HW_DATA_T + * Staging: w35und: clean up adapter.h a bit + * Staging: w35und: merge struct wb35_adapter to struct wbsoft_priv + * Staging: w35und: remove global struct ieee80211_hw + * Staging: w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros + * Staging: w35und: clean up wblinux.c a bit + * Staging: w35und: remove unused ->ShutDowned member from struct + LOCAL_PARA + * Staging: w35und: move global wbsoft_enabled to struct wbsoft_priv + * Staging: w35und: move packet_came() to wb35rx.c + * Staging: w35und: remove ->skb_array from struct wbsoft_priv + * Staging: w35und: remove ->shutdown from struct wbsoft_priv + * Staging: w35und: make functions local to mds.c static + * Staging: w35und: make functions local to mlmetxrx.c static + * Staging: w35und: remove dead code from mto.c + * Staging: w35und: make functions local to wb35rx.c static + * Staging: w35und: make functions local to wb35tx.c static + * Staging: w35und: remove dead code from wbhal.c + * Staging: w35und: remove rxisr.c as dead code + * Staging: w35und: fix Kconfig + * Staging: w35und: fix config build warnings + * Staging: wlan-ng: Remove PCI/PLX/PCMCIA files. + * Staging: wlan-ng: Update Help text to mention prism3 devices. + * Staging: wlan-ng: Delete PCI/PLX/PCMCIA-specific code. + * Staging: wlan-ng: Make wlan-ng use WEXT mode by default. + * Staging: wlan-ng: Eliminate more <2.6 kernel support. + * Staging: wlan-ng: Eliminate all backwards-compatibility for <2.6.13 kernels. + * Staging: wlan-ng: Eliminate a boatload of tertiaryAP-only code. + * Staging: wlan-ng: Remove AP-only code from MLME functions. + * Staging: wlan-ng: Get rid of the MTU tests in the rx conversion path. + * Staging: wlan-ng: Eliminate one more rx mtu test. + * Staging: wlan-ng: Eliminate local 'version.h' + * Staging: wlan-ng: Eliminate usage of procfs. + * Staging: wlan-ng: Use standard kernel integer (u32/s32/etc) types. + * Staging: wlan-ng: Eliminate all backwards-compatible kernel code. + * Staging: wlan-ng: Wireless Extension support is mandatory. + * Staging: wlan-ng: use WIRELESS_EXT, not CONFIG_WIRELESS_EXT + * Staging: wlan-ng: Delete a large pile of now-unused code. + * Staging: wlan-ng: Delete a pile of unused mibs. And fix WEXT SET_TXPOWER. + * Staging: wlan-ng: Consolidate wlan-ng into a single module. + * Staging: wlan-ng: Purge all MIBs not used internally. + * Staging: wlan-ng: p80211netdev.c fix netdev alloc to prevent oops on device start + * Staging: wlan-ng: prism2_usb.c always enable the card in probe_usb + * Staging: wlan-ng: hfa384x_usb.c use newest version of 384x_drvr_start + * Staging: wlan-ng: p80211wext.c add latest changes & remove extra nulls from wext_handlers + * Staging: wlan-ng: p80211wext don't set default key id twice + * Staging: wlan-ng: hfa384x_usbin_callback: check for hardware removed + * Staging: wlan-ng: p80211conv.c copy code from wlan-ng-devel branch to not drop packets + * Staging: wlan-ng: remove unused #include + * Staging: wlan-ng: p80211wext.c: use ARRAY_SIZE + * Staging: wlan-ng: fix compiler warnings + * Staging: wlan-ng: skb_p80211_to_ether() - payload_length is unsigned, check before subtraction + * Staging: at76_usb: update drivers/staging/at76_usb w/ mac80211 port + * Staging: at76_usb: fix build breakage + * Staging: at76_usb: remove compiler warnings + * Staging: at76_usb: fix up all remaining checkpatch.pl warnings + * Staging: at76_usb: cleanup dma on stack issues + * Staging: poch: Block size bug fix + * Staging: poch: Update TODO list + * Staging: poch: Correct pages from bytes. + * Staging: poch: minor fixes + * Staging: poch: Fix build warnings + * Staging: poch: Rx control register init + * Staging: poch: Fix user space protocol syncing + * Staging: poch: Fine grained locking + * Staging: sxg: remove typedefs + * Staging: sxg: break the build in a cleaner way when !x86 + * Staging: sxg: update README + * staging: struct device - replace bus_id with dev_name(), dev_set_name() + * Staging: echo: remove typedefs + * Staging: echo: Lindent drivers/staging/echo + * Staging: go7007: saa7134 updates + * Staging: go7007: add sensoray 2250/2251 support + * Staging: go7007: Convert driver to use video_ioctl2 + * Staging: go7007: annotate code pointers + * Staging: go7007: fix minor build warnings + * Staging: go7007: small cleanup + * Staging: go7007: add some more v4l2 ioctls + * Staging: et131x: Cleanup et131x_debug.h defines + * Staging: et131x: fix build failure + * Staging: et131x: remove unused variable in et1310_tx.c + * Staging: usbip: cleanup kerneldoc + * Staging: slicoss: use kzalloc + * Staging: slicoss: use correct type for memory allcations + * Staging: slicoss: use request_firmware + * Staging: add agnx wireless driver + * Staging: agnx: fix build errors due to ssid removal + * Staging: agnx: fix build errors due to rate control API changes + * Staging: agnx: fix build warnings + * Staging: add otus Atheros wireless network driver + * Staging: otus: fix netdev->priv usage + * Staging: otus: fix name clash + * Staging: otus: fix urb callback function type + * Staging: otus: remove dependence on kernel version + * Staging: add rt2860 wireless driver + * Staging: rt2860: disable root hack for reading files + * Staging: rt2860: fix up netdev->priv usage + * Staging: rt2860: use standard bit-reverse function + * Staging: rt2860: Fix minor compiler warnings + * Staging: rt2860: enable WPA_SUPPLICANT support + * Staging: Add ServerEngines benet 10Gb ethernet driver + * Staging: benet: fix netif api breakage + * Staging: benet: fix up netdev->priv change + * Staging: benet: build is broken unless CONFIG_NETPOLL is enabled + * Staging: benet: patch to remove subdirectories + * Staging: benet: fix build errors when CONFIG_NETPOLL is off + * Staging: benet: fix build error. + * Staging: benet: patch to use offsetof() instead of AMAP_BYTE_OFFSET() + * Staging: benet: fix problems reported by checkpatch + * Staging: benet: cleanup a check while posting rx buffers + * Staging: add comedi core + * Staging: comedi: fix up a lot of checkpatch.pl warnings + * Staging: comedi: fix checkpatch.pl errors in comedi_fops.c + * Staging: comedi: fix build error in comedilib.h + * Staging: comedi: add kcomedilib to the tree + * Staging: comedi: set up infrastructure for individual drivers + * Staging: comedi: add local copy of interrupt.h + * Staging: comedi: add pci and usb wrapper header files + * Staging: comedi: comedi driver common function module + * Staging: comedi: add mite comedi pci driver + * Staging: comedi: add usb usbdux driver + * Staging: comedi: add usb usbduxfast driver + * Staging: comedi: add usb dt9812 driver + * Staging: comedi: add comedi_bond driver + * Staging: comedi: add comedi_test driver + * Staging: comedi: add comedi_parport driver + * Staging: comedi: dt9812: fix up a lot of coding style issues + * Staging: comedi: dt9812: remove dt9812.h + * Staging: comedi: dt9812: remove typedefs + * Staging: comedi: dt9812: fix sparse warnings + * Staging: comedi: usbdux: remove kernel version checks + * Staging: comedi: usbdux: code style cleanups + * Staging: comedi: usbdux: remove // comments + * Staging: comedi: usbdux: fix up printk calls + * Staging: comedi: usbdux: remove checkpatch.pl warnings + * Staging: comedi: usbdux: remove typedef + * Staging: comedi: usbdux: remove comedi usb wrappers + * Staging: comedi: usbduxfast: remove comedi usb wrappers + * Staging: comedi: dt9812: remove #ifdef that is not needed + * Staging: comedi: remove usb wrappers + * Staging: comedi: remove PCI wrappers + * Staging: comedi: add icp_multi driver + * Staging: comedi: add me4000 driver + * Staging: comedi: fix checkpatch.pl issues in comedi_bond.c + * Staging: comedi: fix checkpatch.pl issues in comedi_fc.c + * Staging: comedi: remove typedefs from comedi_bond.c + * Staging: comedi: fix sparse issues in comedi_bond.c + * Staging: comedi: fix checkpatch.pl issues in comedi_test.c + * Staging: comedi: fix sparse issues in comedi_test.c + * Staging: comedi: remove typedefs from comedi_test.c + * Staging: comedi: fix comedi_parport.c checkpatch.pl issues. + * Staging: comedi: fix comedi_fc.h checkpatch.pl issues. + * Staging: comedi: fix comedi_pci.h checkpatch.pl issues. + * Staging: comedi: comedi_pci.h: remove unneeded wrapper + * Staging: comedi: comedi_pci.h: remove comedi_pci_enable_no_regions + * Staging: comedi: comedi_pci.h: remove comedi_pci_disable_no_regions + * Staging: comedi: add s626 driver + * Staging: comedi: add rtd520 driver + * Staging: comedi: add me_daq driver + * Staging: comedi: me_daq: fix checkpatch.pl issues + * Staging: comedi: me_daq: remove typedefs + * Staging: comedi: me_daq: fix sparse issues + * Staging: comedi: fix checkpatch.pl warning in interrupt.h + * Staging: comedi: fix build if CONFIG_PROC_FS is not set + * Staging: add asus_oled driver + * Staging: asus_oled: fix build dependancy + * Staging: Add the Meilhaus ME-IDS driver package + * Staging: meilhaus: fix __symbol_get problems + * Staging: add lcd-panel driver + * Staging: panel: major checkpatch cleanup + * Staging: panel: remove ifdefs and code for pre-2.6 kernels + * Staging: panel: remove support for smartcards + * Staging: add Driver for Altera PCI Express Chaining DMA reference design + * Staging: add rtl8187se driver + * Staging: rtl8187se: remove unneeded files + * Staging: rtl8187se: make the built module be the proper name + * Staging: rtl8187se: remove duplicate pci ids + * Staging: me4000: switch to list_for_each*() + * Staging: usbip: switch to list_for_each_entry() + * Staging: add princeton instruments usb camera driver + * Staging: add mimio xi driver + * Staging: add rt2870 wireless driver + * Staging: rt2870: disable root hack for reading files + * Staging: rt2870: fix up netdev->priv usage + * Staging: add frontier tranzport and alphatrack drivers + * Staging: frontier: remove unused alphatrack_sysfs.c file + * Staging: frontier: fix compiler warnings + * Staging: add epl stack + * Staging: epl: run Lindent on all kernel/*.h files + * Staging: epl: run Lindent on all user/*.h files + * Staging: epl: run Lindent on *.h files + * Staging: epl: run Lindent on *.c files + * Staging: epl: hr timers all run in hard irq context now + * Staging: epl: fix netdev->priv b0rkage + * Staging: add android framework + * Staging: android: add binder driver + * Staging: android: binder: Fix gcc warnings about improper format specifiers for size_t in printk + * staging: android: binder: Fix use of euid + * Staging: android: add logging driver + * Staging: android: add ram_console driver + * Staging: android: add timed_gpio driver + * Staging: android: timed_gpio: Rename android_timed_gpio to timed_gpio + * Staging: android: remove dummy android.c driver + * Staging: android: add lowmemorykiller driver + * Staging: android: binder: fix build errors + * staging: __FUNCTION__ is gcc-specific, use __func__ + * V4L/DVB (10176a): Switch remaining clear_user_page users over to + clear_user_highpage + + [ Zhenyu Wang ] + + * agp/intel: add support for G41 chipset + + -- Tim Gardner Sun, 18 Jan 2009 20:22:54 -0700 + +linux (2.6.28-4.11) jaunty; urgency=low + + [ Mario Limonciello ] + + * SAUCE: Enable HDMI audio codec on Studio XPS 1340 + - LP: #309508 + + [ Tim Gardner ] + + * Fix armel d-i FTBSs + + [ Upstream Kernel Changes ] + + * USB: re-enable interface after driver unbinds + + -- Tim Gardner Tue, 13 Jan 2009 16:33:08 -0700 + +linux (2.6.28-4.10) jaunty; urgency=low + + [ Andy Whitcroft ] + + * update kernel bootloader recommends: to prefer grub + - LP: #314004 + * SAUCE: don't use buggy _BCL/_BCM/_BQC for backlight control + - LP: #311716 + * SAUCE: test-suspend -- add the suspend test scripts + - LP: #316419 + + [ Colin Watson ] + + * Enable udebs for armel + + [ Tim Gardner ] + + * SAUCE: Dell laptop digital mic does not work, PCI 1028:0271 + - LP: #309508 + * Enable CIFS_XATTR=y and CONFIG_CIFS_POSIX=y + - LP: #220658 + + -- Tim Gardner Thu, 08 Jan 2009 10:38:22 -0700 + +linux (2.6.28-4.9) jaunty; urgency=low + + [ Tim Gardner ] + + * Restore DM_CRYPT, AES, ECB, and CBC as modules. This fixes + some installer issues with encrypted /home and Private directories. + * Take one more stab at building armel without module or ABI errors. + + -- Tim Gardner Tue, 06 Jan 2009 08:38:23 -0700 + +linux (2.6.28-4.8) jaunty; urgency=low + + * Fix i386/amd64 FTBS by ignoring all module and ABI changes, + not something you would normally do, but I'm sure the ABI + has not changed. This will probably also allow the ARM builds to complete. + + -- Tim Gardner Mon, 05 Jan 2009 14:42:58 -0700 + +linux (2.6.28-4.7) jaunty; urgency=low + + [ Tim Gardner ] + + * Enable CONFIG_ATH5K=m for i386/amd64 + - LP: #306719 + * Build all i386/amd64 AGP/DRM components as modules. + - LP: #312721 + * git commands are now installed outside the default $PATH + Use 'git CMD' instead of 'git-CMD'. + * Build in most PATA/SATA drivers. This should allow most i386/amd64 systems to boot + without an initramfs, though some support work is still required in initramfs-tools + and grub. + - LP: #311730 + + -- Tim Gardner Fri, 02 Jan 2009 07:33:09 -0700 + +linux (2.6.28-4.6) jaunty; urgency=low + + [ Tim Gardner ] + + * Enable CONFIG_X86_E_POWERSAVER=m for i386 generic + - LP: #237405 + * Build i386 AGP drivers as modules + - LP: #312721 + * Build i386 DRM as a module + - LP: #312721 + + [ Upstream Kernel Changes ] + + * drm/i915: Add missing userland definitions for gem init/execbuffer. + - LP: #308387 + + -- Tim Gardner Mon, 29 Dec 2008 09:16:47 -0700 + +linux (2.6.28-4.5) jaunty; urgency=low + + [ Andy Whitcroft ] + + * clean up module dependancy information on package removal/purge + - LP: #300773 + + [ Tim Gardner ] + + * Update iscsitarget to 0.4.17 + * Build in ext{234} + * Build in Crypto modules AES, CBC, ECB + * Build in ACPI AC,BATTERY,BUTTON,FAN,PCI_SLOT,PROCESSOR,SBS,THERMAL,WMI + * Build in AGP intel,via,sis,ali,amd,amd64,efficeon,nvidia,sworks + * Build in ata,dev_dm,dev_loop,dev_md,dev_sd,dev_sr + * Build in BT l2cap,rfcomm,sco + * Reduce CONFIG_LEGACY_PTY_COUNT to 0 + * Build in CDROM_PKTCDVD and CHR_DEV_SG + * Build in CPU_FREQ + GOV_CONSERVATIVE,GOV_ONDEMAND,GOV_POWERSAVE,GOV_USERSPACE,STAT,TABLE + * Build in DM CRYPT,MIRROR,MULTIPATH,SNAPSHOT + * Build in DRM + * Build in HID + * Build in HOTPLUG PCI,PCIE + * Build in I2C + * Build in IEEE1394 OHCI1394 + * Build in INPUT EVDEV + * Build in IPV6 + * Build in MMC + * Build in PACKET + * Enable both IEEE1394 (Firewire) stacks as modules + - LP: #276463 + * Disable SUNRPC_REGISTER_V4 + - LP: #306016 + * Enable dm-raid4-5 + - LP: #309378 + * Build in PPP + * Build in RFKILL + * Build in USB SERIAL + + [ Upstream Kernel Changes ] + + * Rebased to v2.6.28 + + -- Tim Gardner Thu, 18 Dec 2008 21:18:44 -0700 + +linux (2.6.28-3.4) jaunty; urgency=low + + [ Tim Gardner ] + + * Build ecryptfs into the kernel + - LP: #302870 + * Deprecated gnbd + + [ Upstream Kernel Changes ] + + * Rebased to v2.6.28-rc8 + + -- Tim Gardner Wed, 10 Dec 2008 22:45:13 -0700 + +linux (2.6.28-2.3) jaunty; urgency=low + + [ Andy Whitcroft ] + + * update the templates so that we have spaces following the title line + + [ Tim Gardner ] + + * Add upload number to kernel version signature. This has the side effect + of renaming kernel packages back to the original way, e.g., without '-ub' + in the name. + + -- Tim Gardner Thu, 04 Dec 2008 12:18:31 -0700 + +linux (2.6.28-2.2) jaunty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) version: Implement version_signature proc file." + * SAUCE: (no-up) version: Implement version_signature proc file. + * SAUCE: serial: RS485 ioctl structure uses __u32 include linux/types.h + - LP: #303711 + + [ Tim Gardner ] + + * UBUNTU: Removed CONFIG_DRM_VIA_CHROME9 since it is upstream. + * UBUNTU: Removed ubuntu/via_chrome9 + + [ Upstream Kernel Changes ] + + * Rebased to v2.6.28-rc7 + + -- Tim Gardner Tue, 02 Dec 2008 07:33:32 -0700 + +linux (2.6.28-1.1) jaunty; urgency=low + + [ Amit Kucheria ] + + * SAUCE: make fc transport removal of target configurable + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + * SAUCE: Adds support for COMPAL JHL90 webcam + * Map armel to arm to all editconfigs to work correctly + * Add armel to getabis for completeness sake + * Add -ub to our versioning to allow kerneloops.org to identify us + + [ Andy Whitcroft ] + + * Fix Vcs-Git path for the kernel repository. + - LP: #296915 + + [ Ben Collins ] + + * SAUCE: Lower warning level of some PCI messages + - LP: #159241 + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: (no-up) version: Implement version_signature proc file. + * SAUCE: (no-up) connector.h: Add idx/val for drbd + * SAUCE: (no-up) swap: Add notify_swap_entry_free callback for compcache + * SAUCE: drivers: Remove some duplicate device entries in various modules + * SAUCE: (no-up) [AppArmor] merge with upstream subversion r1291 + * SAUCE: (no-up) Enable ubuntu extra subdirectory + * SAUCE: (no-up) ACPI: initramfs DSDT override support + * ubuntu: Add drbd module + * ubuntu: Add iscsitarget module + * ubuntu: Add BOM for iscsitarget + * ubuntu: Add squashfs driver + * SAUCE: (no-up) Check for squashfs superblock in initramfs mounting. + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Added et131x driver + * ubuntu: Add dm-raid4-5 driver + * ubuntu: Add ndiswrapper driver + * ubuntu: Added ram backed compressed swap module (compcache) + * ubuntu: Add misc drivers from hardy lum + * ubuntu: Add heci driver 3.2.0.24 + * ubuntu: Add ov511 and bt-sco drivers + * ubuntu: Add acx, prism2_usb wireless drivers + * ubuntu: Add at76 driver to build + * ubuntu: Add fsam7400 sw kill switch driver + * ubuntu: Added qc-usb driver + * ubuntu: e1000e: Upgraded module to 0.4.1.7 + * ubuntu: Added rfkill drivers + * ubuntu: VIA - Add VIA DRM Chrome9 3D engine + * ubuntu: unionfs: Added v1.4 module from hardy + * ubuntu: Add LIRC driver + * ubuntu: Add GFS driver + * ubuntu: New tlsup driver for toshiba laptops + * SAUCE: (no-up) Export lookup_has for aufs + * SAUCE: (no-up) Modularize vesafb + * ubuntu: Config files + * Disable some modules that need porting to 2.6.28 + * ubuntu: Fixup headers creation to include arch/*/include + * ubuntu/module-check: Ignore comment lines + + [ Chuck Short ] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + + [ cking ] + + * SAUCE: Enable speedstep for sonoma processors. + + [ Colin Ian King ] + + * ubuntu: Add dm-loop + * SAUCE: cx88: Support Leadtek WinFast DTV2000 H version J. + * SAUCE: fix kernel oops in VirtualBox during paravirt patching + * SAUCE: qc-usb: Enable Logitech QuickCam Messenger + * SAUCE: appleir: Enable driver for new MacBook Pro + + [ Colin Watson ] + + * Enable configfs, fuse, jfs, reiserfs, and xfs for armel + * Extend debian/d-i/ modules handling to make armel easier to support + * Create udebs for armel + + [ Fabio M. Di Nitto ] + + * ubuntu: update GFS Cluster File System + + [ Kees Cook ] + + * SAUCE: AppArmor: update to upstream subversion r1302 + + [ Leann Ogasawara ] + + * Add automatic model setting for Samsung Q45 + * Add Dell Dimension 9200 reboot quirk + + [ Mackenzie Morgan ] + + * SAUCE: Add quirk for ASUS Z37E to make sound audible after resume + + [ Matthew Garrett ] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [ Michael Frey (Senior Manager, MID ] + + * SAUCE: Send HCI_RESET for Broadcomm 2046 + + [ Michael Haas ] + + * add proper aufs source tree from 20080922 + * Fix AUFS compilation in vfsub.c + * Add splice-2.6.23.patch from AUFS to export a symbol needed by AUFS + * Add put_filp.patch from AUFS to export a symbol needed by AUFS + * Add deny_write_access.patch from AUFS - export deny_write_access + * Add sec_perm-2.6.24.patch from AUFS - export security_inode_permission + * make sure TMPFS_MAGIC is defined in AUFS Makefile + * SAUCE: Revert aufs changes from AppArmor merge + + [ Mohamed Abbas ] + + * SAUCE: iwlagn -- fix rfkill when on when driver loaded + + [ Phillip Lougher ] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [ Stefan Bader ] + + * SAUCE: (no-up) Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: mmc: Increase power_up deleay to fix TI readers + * gfs1: GFS1 can't create more than 4kb file + * uvcvideo: Commit streaming parameters when enabling the video stream. + + [ Tim Gardner ] + + * SAUCE: Add extra headers to linux-libc-dev + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: (no-up) Take care of orinoco_cs overlap with hostap_cs + * ubuntu: Add GNBD driver + * SAUCE: e1000e: Map NV RAM dynamically only when needed. + * SAUCE: Correctly blacklist Thinkpad r40e in ACPI + * SAUCE: Update Wacom tablet driver to 1.49 + * SAUCE: Fix Wacom tablet 1.49 porting errors + * SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit controller + * SAUCE: Fix Oops in wlan_setup + * SAUCE: ipw2200: change default policy for auto-associate + * Dell Wireless 365 needs BTUSB_RESET quirk. + * ndiswrapper remote buffer overflows on long ESSIDs (CVE 2008-4395) + * Disabled ubuntu/e1000e config + + [ Upstream Kernel Changes ] + + * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ + handler" + * Revert "x86, early_ioremap: fix fencepost error" + * mac80211: fix two issues in debugfs + * iwl3945: do not send scan command if channel count zero + + -- Ben Collins Fri, 07 Nov 2008 09:37:42 -0700 + +linux (2.6.27-8.17) intrepid-proposed; urgency=low + + [ John W. Linville ] + + * SAUCE: iwlagn: avoid sleep in softirq context + -LP: #286285 + + [ Tim Gardner ] + + * Dell Wireless 365 needs BTUSB_RESET quirk. + - LP: #293670 + * SAUCE: ALSA: hda: make a STAC_DELL_EQ option (version 2) + - LP: #293271 + + [ Upstream Kernel Changes ] + + * iwlagn: downgrade BUG_ON in interrupt + * Input: atkbd - expand Latitude's force release quirk to other Dells + * fbcon_set_all_vcs: fix kernel crash when switching the rotated consoles + * modules: fix module "notes" kobject leak + * Driver core: Fix cleanup in device_create_vargs(). + * Driver core: Clarify device cleanup. + * ath9k/mac80211: disallow fragmentation in ath9k, report to userspace + * md: Fix rdev_size_store with size == 0 + * xfs: fix remount rw with unrecognized options + * OHCI: Allow broken controllers to auto-stop + * USB: OHCI: fix endless polling behavior + * USB: Fix s3c2410_udc usb speed handling + * USB: EHCI: log a warning if ehci-hcd is not loaded first + * usb gadget: cdc ethernet notification bugfix + * usb: musb_hdrc build fixes + * drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831) + * DVB: au0828: add support for another USB id for Hauppauge HVR950Q + * DVB: sms1xxx: support two new revisions of the Hauppauge WinTV + MiniStick + * security: avoid calling a NULL function pointer in + drivers/video/tvaudio.c + * Linux 2.6.27.3 + -LP: #294152 + + * gpiolib: fix oops in gpio_get_value_cansleep() + * edac cell: fix incorrect edac_mode + * x86 ACPI: fix breakage of resume on 64-bit UP systems with SMP kernel + * sched: fix the wrong mask_len + * USB: cdc-wdm: make module autoload work + * USB: don't rebind drivers after failed resume or reset + * USB: fix memory leak in cdc-acm + * USB: Speedtouch: add pre_reset and post_reset routines + * dm kcopyd: avoid queue shuffle + * dm snapshot: fix primary_pe race + * amd_iommu: fix nasty bug that caused ILLEGAL_DEVICE_TABLE_ENTRY errors + * CIFS: fix saving of resume key before CIFSFindNext + * netfilter: xt_iprange: fix range inversion match + * netfilter: snmp nat leaks memory in case of failure + * netfilter: restore lost ifdef guarding defrag exception + * anon_vma_prepare: properly lock even newly allocated entries + * hvc_console: Fix free_irq in spinlocked section + * ACPI Suspend: Enable ACPI during resume if SCI_EN is not set + * ACPI suspend: Blacklist HP xw4600 Workstation for old code ordering + * ACPI suspend: Always use the 32-bit waking vector + * proc: fix vma display mismatch between /proc/pid/{maps,smaps} + * SCSI: scsi_dh: add Dell product information into rdac device handler + * PCI hotplug: cpqphp: fix kernel NULL pointer dereference + * V4L/DVB (9300): pvrusb2: Fix deadlock problem + * Linux 2.6.27.4 + -LP: #294155 + + -- Tim Gardner Tue, 04 Nov 2008 12:16:07 -0700 + +linux (2.6.27-7.16) intrepid-security; urgency=low + + [ Tim Gardner ] + + * ndiswrapper remote buffer overflows on long ESSIDs (CVE 2008-4395) + - LP: #275860 + + [ Upstream Kernel Changes ] + + * ext[234]: Avoid printk floods in the face of directory corruption + (CVE-2008-3528) + + -- Tim Gardner Mon, 03 Nov 2008 13:34:42 -0700 + +linux (2.6.27-7.15) intrepid-security; urgency=low + + [ Upstream Kernel Changes ] + + * tcp: Restore ordering of TCP options for the sake of inter-operability + - LP: #264019 + + -- Tim Gardner Mon, 27 Oct 2008 19:28:06 -0600 + +linux (2.6.27-7.14) intrepid; urgency=low + + [ Tim Gardner ] + + * Disable ath5k in 2.6.27 + - LP: #288148 + + -- Tim Gardner Thu, 23 Oct 2008 07:40:43 -0600 + +linux (2.6.27-7.13) intrepid; urgency=low + + [ Stefan Bader ] + + * gfs1: GFS1 can't create more than 4kb file + + [ Tim Gardner ] + + * Revert "SAUCE: x86: Reserve FIRST_DEVICE_VECTOR in used_vectors + bitmap.". Use upstream commit to avoid future conflicts. + * Revert "STABLE queue: mac80211: fix two issues in debugfs". + Use upstream commit to avoid future conflicts. + * Revert "x86, early_ioremap: fix fencepost error" + Use upstream commit to avoid future conflicts. + + [ Upstream Kernel Changes ] + + * sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq + * x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap. + * mac80211: fix two issues in debugfs + * Fix barrier fail detection in XFS + * tty: Termios locking - sort out real_tty confusions and lock reads + * CIFS: make sure we have the right resume info before calling + CIFSFindNext + * rfkill: update LEDs for all state changes + * libertas: clear current command on card removal + * b43legacy: Fix failure in rate-adjustment mechanism + * x86, early_ioremap: fix fencepost error + * x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC + * x86: improve UP kernel when CPU-hotplug and SMP is enabled + * sky2: Fix WOL regression + * netdrvr: atl1e: Don't take the mdio_lock in atl1e_probe + * Linux 2.6.27.2 + + [ Amit Kucheria ] + + * Ubuntu: agp: Fix stolen memory counting on G4X. + -LP: 285572 + + [ Scott Remnant ] + + * add MODULE_ALIAS to load ipmi_devintf with ipmi_si + + -- Tim Gardner Sun, 19 Oct 2008 10:06:21 -0600 + +linux (2.6.27-7.12) intrepid; urgency=low + + [ Chuck Short ] + + * xen: Add xen modules to virtual flavours. + + [ Mario Limonciello ] + + * SAUCE: Add back in lost commit for Apple BT Wireless Keyboard + - LP: #162083 + + [ Tim Gardner ] + + * Remove depmod created files from packages. + - LP: #250511 + * Changed default TCP congestion algorithm to 'cubic' (again) + - LP: #278801 + * Update configs for 'disable CONFIG_DYNAMIC_FTRACE' + - LP: #263555 + + [ Upstream Kernel Changes ] + + * x86: register a platform RTC device if PNP doesn't describe it + * disable CONFIG_DYNAMIC_FTRACE due to possible memory corruption on + module unload + + -- Tim Gardner Fri, 17 Oct 2008 11:25:39 -0600 + +linux (2.6.27-7.11) intrepid; urgency=low + + [ Amit Kucheria ] + + * STABLE queue: mac80211: fix two issues in debugfs + - LP: #275227 + * SAUCE: Adds support for COMPAL JHL90 webcam + + [ Ben Collins ] + + * SAUCE: (no-up) x86: Quiet "Kernel alive" messages + - LP: #39985 + * SAUCE: (no-up) Modularize vesafb + * build/config: Enable vesafb module + * build: Switch to vesafb as preferred. + + [ Leann Ogasawara ] + + * Add Dell Dimension 9200 reboot quirk + - LP: #271370 + + [ Michael Haas ] + + * SAUCE: Revert aufs changes from AppArmor merge + + [ Tim Gardner ] + + * fix virtio udeb layout + - LP: #257739 + * Enabled CONFIG_EXT4DEV_FS=m + * Changed default TCP congestion algorithm to 'cubic' + - LP: #278801 + * SAUCE: ipw2200: change default policy for auto-associate + - LP: #264104 + + [ Upstream Kernel Changes ] + + * x86, early_ioremap: fix fencepost error + - LP: #263543 + + -- Tim Gardner Sat, 11 Oct 2008 08:07:42 -0600 + +linux (2.6.27-7.10) intrepid; urgency=low + + [ Alexey Starikovskiy ] + + * SAUCE: ACPI: EC: do transaction from interrupt context + - LP: #277802 + + [ Ben Collins ] + + * build/d-i: Change virtio-modules udeb to prio standard + + [ Colin Ian King ] + + * SAUCE: Blacklist IBM 2656 in serio/i8042 + - LP: #21558 + + [ Henrik Rydberg ] + + * Revert "SAUCE: applesmc: Add MacBookAir" + * SAUCE: [PATCH 1/5] hwmon: applesmc: Specified number of bytes to read + should match actual + * SAUCE: [PATCH 2/5] hwmon: applesmc: Fix the 'wait status failed: c != + 8' problem + * SAUCE: [PATCH 3/5] hwmon: applesmc: Prolong status wait + * SAUCE: [PATCH 4/5] hwmon: applesmc: Allow for variable ALV0 and ALV1 + package length + * SAUCE: [PATCH 5/5] hwmon: applesmc: Add support for Macbook Air + * SAUCE: hwmon: applesmc: Add support for Macbook Pro 4 + * SAUCE: hwmon: applesmc: Add support for Macbook Pro 3 + * SAUCE: hwmon: applesmc: Lighter wait mechanism, drastic improvement + + [ Leann Ogasawara ] + + * Add automatic model setting for Samsung Q45 + - LP: #200210 + + [ Tim Gardner ] + + * SAUCE: Correctly blacklist Thinkpad r40e in ACPI + - LP: #278794 + * SAUCE: Update Wacom tablet driver to 1.49 + - LP: #260675 + * SAUCE: ALPS touchpad for Dell Latitude E6500/E6400 + - LP: #270643 + * SAUCE: Fix Wacom tablet 1.49 porting errors + * SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit controller + * SAUCE: Fix Oops in wlan_setup + - LP: #263309 + + [ Upstream Kernel Changes ] + + * ath9k: fix oops on trying to hold the wrong spinlock + * [Bluetooth] Fix double frees on error paths of btusb and bpa10x drivers + * [Bluetooth] Add reset quirk for new Targus and Belkin dongles + * [Bluetooth] Add reset quirk for A-Link BlueUSB21 dongle + * Revert "ax25: Fix std timer socket destroy handling." + * ax25: Quick fix for making sure unaccepted sockets get destroyed. + * netrom: Fix sock_orphan() use in nr_release + * Revert "V4L/DVB (8904): cx88: add missing unlock_kernel" + * SLOB: fix bogus ksize calculation + * net: only invoke dev->change_rx_flags when device is UP + * tcp: Fix possible double-ack w/ user dma + * net: Fix netdev_run_todo dead-lock + * tcp: Fix tcp_hybla zero congestion window growth with small rho and large cwnd. + * [MIPS] Sibyte: Register PIO PATA device only for Swarm and Litte Sur + * eeepc-laptop: Fix hwmon interface + * hwmon: (it87) Prevent power-off on Shuttle SN68PT + * hwmon: Define sysfs interface for energy consumption register + * hwmon: (adt7473) Fix some bogosity in documentation file + * hwmon: (abituguru3) Enable reading from AUX3 fan on Abit AT8 32X + * hwmon: (abituguru3) Enable DMI probing feature on Abit AT8 32X + * [CPUFREQ] correct broken links and email addresses + * SLOB: fix bogus ksize calculation fix + * Don't allow splice() to files opened with O_APPEND + * Linux 2.6.27 + + -- Tim Gardner Wed, 08 Oct 2008 21:19:34 -0600 + +linux (2.6.27-6.9) intrepid; urgency=low + + [ Kees Cook ] + + * SAUCE: AppArmor: update to upstream subversion r1302 + - LP: #269921 + + [ Stefan Bader ] + + * Update configuration files to be compliant to desktop specs + - LP: #279019 + + [ Tim Gardner ] + + * Add support in e1000e for a couple of ICH10 PCI IDs + * Enable CONFIG_INPUT_PCSPKR=m + - LP: #275453 + + [ Upstream Kernel Changes ] + + * V4L/DVB (8559a): Fix a merge conflict at gspca/sonixb + * V4L/DVB (8789): wm8739: remove wrong kfree + * V4L/DVB (8883): w9968cf: Fix order of usb_alloc_urb validation + * V4L/DVB (8884): em28xx-audio: fix memory leak + * V4L/DVB (8885): cpia2_usb: fix memory leak + * V4L/DVB (8886): ov511: fix memory leak + * V4L/DVB (8887): gspca: fix memory leak + * V4L/DVB (8892): pvrusb2: Handle USB ID 2040:2950 same as 2040:2900 + * V4L/DVB (8904): cx88: add missing unlock_kernel + * V4L/DVB (8905): ov511: fix exposure sysfs attribute bug + * V4L/DVB (8909): gspca: PAC 7302 webcam 093a:262a added. + * hrtimer: migrate pending list on cpu offline + * hrtimer: fix migration of CB_IRQSAFE_NO_SOFTIRQ hrtimers + * hrtimer: mark migration state + * hrtimer: prevent migration of per CPU hrtimers + * [IA64] Put the space for cpu0 per-cpu area into .data section + * powerpc: Fix PCI in Holly device tree + * powerpc: Fix failure to shutdown with CPU hotplug + * mfd: Fix Kconfig accroding to the new gpiolib symbols + * mfd: Fix asic3 compilation + * x86: fix typo in enable_mtrr_cleanup early parameter + * ipsec: Fix pskb_expand_head corruption in xfrm_state_check_space + * iucv: Fix mismerge again. + * ALSA: ASoC: Fix cs4270 error path + * ALSA: hda - Fix model for Dell Inspiron 1525 + * sctp: Fix kernel panic while process protocol violation parameter + * x86: Fix broken LDT access in VMI + * x86, vmi: fix broken LDT access + * tcp: Fix NULL dereference in tcp_4_send_ack() + * ipv6: NULL pointer dereferrence in tcp_v6_send_ack + * XFRM,IPv6: initialize ip6_dst_blackhole_ops.kmem_cachep + * af_key: Free dumping state on socket close + * dm: always allow one page in dm_merge_bvec + * dm: cope with access beyond end of device in dm_merge_bvec + * dm mpath: add missing path switching locking + * MN10300: Fix IRQ handling + * pxa2xx_spi: fix build breakage + * e1000e: write protect ICHx NVM to prevent malicious write/erase + * powerpc: Fix boot hang regression on MPC8544DS + * ASoC: Set correct name for WM8753 rec mixer output + * ALSA: snd-powermac: mixers for PowerMac G4 AGP + * ALSA: snd-powermac: HP detection for 1st iMac G3 SL + * fbcon: fix monochrome color value calculation + * inotify: fix lock ordering wrt do_page_fault's mmap_sem + * braille_console: only register notifiers when the braille console is used + * fix error-path NULL deref in alloc_posix_timer() + * memory hotplug: missing zone->lock in test_pages_isolated() + * mm: tiny-shmem nommu fix + * mm: handle initialising compound pages at orders greater than MAX_ORDER + * e1000e: reset swflag after resetting hardware + * e1000e: do not ever sleep in interrupt context + * e1000e: remove phy read from inside spinlock + * e1000e: drop stats lock + * e1000e: debug contention on NVM SWFLAG + * e1000e: update version from k4 to k6 + * Check mapped ranges on sysfs resource files + * e1000e: Fix incorrect debug warning + * [MIPS] Build fix: Fix irq flags type + * [MIPS] SMTC: Build fix: Fix filename in Makefile + * [MIPS] SMTC: Fix holes in SMTC and FPU affinity support. + * [MIPS] SMTC: Close tiny holes in the SMTC IPI replay system. + * [MIPS] SMTC: Fix SMTC dyntick support. + * [S390] nohz: Fix __udelay. + * [S390] qdio: prevent stack clobber + * Fix init/main.c to use regular printk with '%pF' for initcall fn + * x86 setup: correct segfault in generation of 32-bit reloc kernel + * selinux: Fix an uninitialized variable BUG/panic in selinux_secattr_to_sid() + * rtc: fix kernel panic on second use of SIGIO nofitication + * fbdev: fix recursive notifier and locking when fbdev console is blanked + * orion_spi: fix handling of default transfer speed + * include/linux/stacktrace.h: declare struct task_struct + * cpusets: remove pj from cpuset maintainers + * MAINTAINERS: add mailing list for man-pages + * SubmitChecklist: interfaces changes should CC linux-api@ + * Documentation/HOWTO: info about interface changes should CC linux-api@vger + * dw_dmac: fix copy/paste bug in tasklet + * leds-fsg: change order of initialization and deinitialization + * leds-pca955x: add proper error handling and fix bogus memory handling + * ACPI: Make /proc/acpi/wakeup interface handle PCI devices (again) + * clockevents: check broadcast tick device not the clock events device + * V4L/DVB (8919): cx18: Fix tuner audio input for Compro H900 cards + * V4L/DVB (8926): gspca: Bad fix of leak memory (changeset 43d2ead315b1). + * V4L/DVB (8933): gspca: Disable light frquency for zc3xx cs2102 Kokom. + * V4L/DVB (8935): em28xx-cards: Remove duplicate entry (EM2800_BOARD_KWORLD_USB2800) + * V4L/DVB (8955): bttv: Prevent NULL pointer dereference in radio_open + * V4L/DVB (8957): zr36067: Restore the default pixel format + * V4L/DVB (8958): zr36067: Return proper bytes-per-line value + * V4L/DVB (8960): drivers/media/video/cafe_ccic.c needs mm.h + * V4L/DVB (8961): zr36067: Fix RGBR pixel format + * V4L/DVB (8963): s2255drv field count fix + * V4L/DVB (8967): Use correct XC3028L firmware for AMD ATI TV Wonder 600 + * V4L/DVB (8978): sms1xxx: fix product name for Hauppauge WinTV MiniStick + * V4L/DVB (8979): sms1xxx: Add new USB product ID for Hauppauge WinTV MiniStick + * V4L/DVB (9029): Fix deadlock in demux code + * V4L/DVB (9037): Fix support for Hauppauge Nova-S SE + * V4L/DVB (9043): S5H1420: Fix size of shadow-array to avoid overflow + * V4L/DVB (9053): fix buffer overflow in uvc-video + * V4L/DVB (9075): gspca: Bad check of returned status in i2c_read() spca561. + * V4L/DVB (9080): gspca: Add a delay after writing to the sonixj sensors. + * V4L/DVB (9092): gspca: Bad init values for sonixj ov7660. + * V4L/DVB (9099): em28xx: Add detection for K-WORLD DVB-T 310U + * V4L/DVB (9103): em28xx: HVR-900 B3C0 - fix audio clicking issue + * x86: gart iommu have direct mapping when agp is present too + * ide-cd: temporary tray close fix + * ide-dma: fix ide_build_dmatable() for TRM290 + * IDE: Fix platform device registration in Swarm IDE driver (v2) + * ide-cd: Optiarc DVD RW AD-7200A does play audio + * ide: workaround for bogus gcc warning in ide_sysfs_register_port() + * [MIPS] Fix CMP Kconfig configuration and mark as broken. + * [MIPS] IP27: Fix build errors if CONFIG_MAPPED_KERNEL=y + * x86 ACPI: Blacklist two HP machines with buggy BIOSes + * kgdb, x86: Avoid invoking kgdb_nmicallback twice per NMI + * kgdb: call touch_softlockup_watchdog on resume + * atmel-mci: Initialize BLKR before sending data transfer command + * Marker depmod fix core kernel list + * Linux 2.6.27-rc9 + + -- Tim Gardner Sun, 05 Oct 2008 21:27:49 -0600 + +linux (2.6.27-5.8) intrepid; urgency=low + + [ Amit Kucheria ] + + * Update AUFS-related Kconfig + - LP: #264048 + + [ Michael Haas ] + + * add proper aufs source tree from 20080922 + * Fix AUFS compilation in vfsub.c + * Add splice-2.6.23.patch from AUFS to export a symbol needed by AUFS + * Add put_filp.patch from AUFS to export a symbol needed by AUFS + * apply (modified) lhash.patch from AUFS to export __lookup_hash() + * Add deny_write_access.patch from AUFS - export deny_write_access + * Add sec_perm-2.6.24.patch from AUFS - export security_inode_permission + * make sure TMPFS_MAGIC is defined in AUFS Makefile + + [ Tim Gardner ] + + * Enabled CONFIG_IPWIRELESS + - LP: #274748 + * Enabled CONFIG_E1000E, disabled CONFIG_E1000E_NEW + This takes advantage of the upstream NVM protection fix in + commit 4a7703582836f55a1cbad0e2c1c6ebbee3f9b3a7. + + [ Upstream Kernel Changes ] + + * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ + handler" + * [SCSI] qla2xxx: Defer enablement of RISC interrupts until ISP + initialization completes. + * PCI: Fix pcie_aspm=force + * PCI: fix compiler warnings in pci_get_subsys() + * UBIFS: create the name of the background thread in every case + * UBIFS: TNC / GC race fixes + * UBIFS: remove incorrect assert + * UBIFS: fix printk format warnings + * AMD IOMMU: set iommu sunc flag after command queuing + * AMD IOMMU: protect completion wait loop with iommu lock + * sparc64: Fix disappearing PCI devices on e3500. + * x86, oprofile: BUG scheduling while atomic + * ALSA: ASoC: Fix at32-pcm build breakage with PM enabled + * ath9k: connectivity is lost after Group rekeying is done + * wireless: zd1211rw: add device ID fix wifi dongle "trust nw-3100" + * [IA64] Ski simulator doesn't need check_sal_cache_flush + * [IA64] kexec fails on systems with blocks of uncached memory + * ath9k: Fix IRQ nobody cared issue with ath9k + * [Bluetooth] Fix I/O errors on MacBooks with Broadcom chips + * [Bluetooth] Fix wrong URB handling of btusb driver + * [Bluetooth] Fix USB disconnect handling of btusb driver + * sparc64: Fix missing devices due to PCI bridge test in + of_create_pci_dev(). + * [WATCHDOG] ibmasr: remove unnecessary spin_unlock() + * [WATCHDOG] wdt285: fix sparse warnings + * [WATCHDOG] unlocked_ioctl changes + * x86: fix 27-rc crash on vsmp due to paravirt during module load + * sched: fix init_hrtick() section mismatch warning + * clockevents: prevent cpu online to interfere with nohz + * x86: prevent stale state of c1e_mask across CPU offline/online + * clockevents: prevent stale tick_next_period for onlining CPUs + * clockevents: check broadcast device not tick device + * clockevents: prevent mode mismatch on cpu online + * x86: prevent C-states hang on AMD C1E enabled machines + * x86: c1e_idle: don't mark TSC unstable if CPU has invariant TSC + * timers: fix build error in !oneshot case + * ALSA: ASoC: maintainers - update email address for Liam Girdwood + * ibmasr: remove unnecessary spin_unlock() + * smb.h: do not include linux/time.h in userspace + * kernel-doc: allow structs whose members are all private + * kexec: fix segmentation fault in kimage_add_entry + * Documentation/DMA-mapping.txt: update for pci_dma_mapping_error() + changes + * sys_paccept: disable paccept() until API design is resolved + * mm: tiny-shmem fix lock ordering: mmap_sem vs i_mutex + * Documentation/sysctl/kernel.txt: fix softlockup_thresh description + * memcg: check under limit at shrink_usage + * atmel_serial: update the powersave handler to match serial core + * [SCSI] Fix hang with split requests + * USB Storage: Sierra: Non-configurable TRU-Install + * USB Serial: Sierra: Device addition & version rev + * USB: ehci: fix some ehci hangs and crashes + * USB: Fix the Nokia 6300 storage-mode. + * USB: Correct Sierra Wireless USB EVDO Modem Device ID + * USB: fix hcd interrupt disabling + * USB: update of Documentation/usb/anchors.txt + * usb gadget: fix omap_udc DMA regression + * USB: Fixing Nokia 3310c in storage mode + * usb: musb: fix include path + * USB: fix EHCI periodic transfers + * usb-serial: Add Siemens EF81 to PL-2303 hack triggers + * USB: SERIAL CP2101 add device IDs + * USB: unusual_devs addition for RockChip MP3 player + * USB: fsl_usb2_udc: fix VDBG() format string + * usb serial: ti_usb_3410_5052 obviously broken by firmware changes + * USB: ftdi_sio: Add 0x5050/0x0900 USB IDs (Papouch Quido USB 4/4) + * USB: serial: add ZTE CDMA Tech id to option driver + * USB Serial: Sierra: Add MC8785 VID/PID + * USB: drivers/usb/musb/: disable it on SuperH + * usb: ftdi_sio: add support for Domintell devices + * usb: unusual devs patch for Nokia 5310 Music Xpress + * USB: revert recovery from transient errors + * [MIPS] au1000: Fix gpio direction + * [MIPS] Fixe the definition of PTRS_PER_PGD + * x86: prevent stale state of c1e_mask across CPU offline/online, fix + * x86: disable apm on the olpc + * i2c-powermac: Fix section for probe and remove functions + * i2c-dev: Return correct error code on class_create() failure + * i2c: Fix mailing lists in two MAINTAINERS entries + * ath9k: disable MIB interrupts to fix interrupt storm + * 9p: implement proper trans module refcounting and unregistration + * 9p-trans_fd: fix trans_fd::p9_conn_destroy() + * 9p-trans_fd: clean up p9_conn_create() + * 9p-trans_fd: don't do fs segment mangling in p9_fd_poll() + * 9p-trans_fd: fix and clean up module init/exit paths + * 9p: introduce missing kfree + * 9p: use an IS_ERR test rather than a NULL test + * 9p: fix put_data error handling + * netfilter: ip6t_{hbh,dst}: Rejects not-strict mode on rule insertion + * MN10300: Move asm-arm/cnt32_to_63.h to include/linux/ + * MN10300: Make sched_clock() report time since boot + * ALSA: fix locking in snd_pcm_open*() and snd_rawmidi_open*() + * ALSA: remove unneeded power_mutex lock in snd_pcm_drop + * IPoIB: Fix crash when path record fails after path flush + * [XFS] Fix extent list corruption in xfs_iext_irec_compact_full(). + * [XFS] Remove xfs_iext_irec_compact_full() + * kgdb: could not write to the last of valid memory with kgdb + * kgdb, x86, arm, mips, powerpc: ignore user space single stepping + * kgdb, x86_64: gdb serial has BX and DX reversed + * kgdb, x86_64: fix PS CS SS registers in gdb serial + * kgdboc,tty: Fix tty polling search to use name correctly + * ARM: Delete ARM's own cnt32_to_63.h + * m32r: remove the unused NOHIGHMEM option + * m32r: don't offer CONFIG_ISA + * m32r: export empty_zero_page + * m32r: export __ndelay + * m32r/kernel/: cleanups + * [MIPS] au1000: Make sure GPIO value is zero or one + * [MIPS] IP27: Switch to dynamic interrupt routing avoding panic on + error. + * [MIPS] BCM47xx: Fix build error due to missing PCI functions + * [SSB] Initialise dma_mask for SSB_BUSTYPE_SSB devices + * Swarm: Fix crash due to missing initialization + * ide-tape: fix vendor strings + * ide: note that IDE generic may prevent other drivers from attaching + * cdrom: update ioctl documentation + * [SCSI] qlogicpti: fix sg list traversal error in continuation entries + * sata_nv: reinstate nv_hardreset() for non generic controllers + * scsi: fix fall out of sg-chaining patch in qlogicpti + * ALSA: make the CS4270 driver a new-style I2C driver + * ALSA: ASoC: Fix another cs4270 error path + * Fix NULL pointer dereference in proc_sys_compare + * kconfig: fix silentoldconfig + * kconfig: readd lost change count + * mm owner: fix race between swapoff and exit + * Linux 2.6.27-rc8 + * e1000e: write protect ICHx NVM to prevent malicious write/erase + + -- Amit Kucheria Tue, 30 Sep 2008 18:22:35 +0300 + +linux (2.6.27-4.7) intrepid; urgency=low + + [ Ben Collins ] + + * build/abi: Add gfs1 to perm blacklist + * build/abi: Ignored changes in gfs2 symbols + + [ Fabio M. Di Nitto ] + + * Revert "SAUCE: Export gfs2 symbols required for gfs1 kernel module" + * ubuntu: update GFS Cluster File System + + [ Stefan Bader ] + + * SAUCE: x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap. + - LP: #276334 + + [ Tim Gardner ] + + * Revert "Disable e1000e until the NVRAM corruption problem is found." + * Add atl1e and atl2 to Debian installer bits + - LP: #273904 + * SAUCE: e1000e: Map NV RAM dynamically only when needed. + - LP: #263555 + + -- Tim Gardner Fri, 26 Sep 2008 20:51:22 -0600 + +linux (2.6.27-4.6) intrepid; urgency=low + + [ Tim Gardner ] + + * Disable e1000e until the NVRAM corruption problem is found. + - LP: #263555 + + [ Upstream Kernel Changes ] + + * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ + handler" + + -- Ben Collins Tue, 23 Sep 2008 09:53:57 -0400 + +linux (2.6.27-4.5) intrepid; urgency=low + + [ Upstream Kernel Changes ] + + * Revert "b43/b43legacy: add RFKILL_STATE_HARD_BLOCKED support" + * udf: Fix lock inversion between iprune_mutex and alloc_mutex (v2) + * udf: Fix error paths in udf_new_inode() + * [SCSI] sd: select CRC_T10DIF only when necessary + * [SCSI] zfcp: Fix request queue locking + * [SCSI] zfcp: Correctly query end flag in gpn_ft response + * [SCSI] zfcp: Simplify ccw notify handler + * [SCSI] zfcp: Fix reference counter for remote ports + * [SCSI] zfcp: channel cannot be detached due to refcount imbalance + * [SCSI] zfcp: Remove duplicated unlikely() macros. + * [SCSI] scsi_dh: make check_sense return ADD_TO_MLQUEUE + * [SCSI] make scsi_check_sense HARDWARE_ERROR return ADD_TO_MLQUEUE on + retry + * [SCSI] fix check of PQ and PDT bits for WLUNs + * pcm037: add rts/cts support for serial port + * i.MX serial: fix init failure + * imx serial: set RXD mux bit on i.MX27 and i.MX31 + * imx serial: fix rts handling for non imx1 based hardware + * mlx4_core: Set RAE and init mtt_sz field in FRMR MPT entries + * udf: add llseek method + * PCI/iommu: blacklist DMAR on Intel G31/G33 chipsets + * PCI: Fix printk warnings in probe.c + * PCI: Fix printk warnings in setup-bus.c + * PCI Hotplug: fakephp: fix deadlock... again + * clockevents: remove WARN_ON which was used to gather information + * ocfs2: Fix a bug in direct IO read. + * arch/x86/kernel/kdebugfs.c: introduce missing kfree + * [IA64] fix compile failure with non modular builds + * [IA64] fix up bte.h + * [IA64] arch/ia64/sn/pci/tioca_provider.c: introduce missing kfree + * PCI: fix pciehp_free_irq() + * [IA64] prevent ia64 from invoking irq handlers on offline CPUs + * ide: Fix pointer arithmetic in hpt3xx driver code (3rd try) + * add deprecated ide-scsi to feature-removal-schedule.txt + * swiotlb: fix back-off path when memory allocation fails + * sparc64: Fix interrupt register calculations on Psycho and Sabre. + * VIDEO_SH_MOBILE_CEU should depend on HAS_DMA + * m68k: Update defconfigs for 2.6.27-rc6 + * sparc32: Fix function signature of of_bus_sbus_get_flags(). + * sched: fix 2.6.27-rc5 couldn't boot on tulsa machine randomly + * sched: fix deadlock in setting scheduler parameter to zero + * KVM: SVM: fix random segfaults with NPT enabled + * KVM: SVM: fix guest global tlb flushes with NPT + * KVM: VMX: Always return old for clear_flush_young() when using EPT + * clocksource, acpi_pm.c: fix check for monotonicity + * [ARM] OMAP: Fix MMC device data + * block: disable sysfs parts of the disk command filter + * ath9k: Assign seq# when mac80211 requests this + * sg: disable interrupts inside sg_copy_buffer + * MN10300: Change the fault handler to check in_atomic() not + in_interrupt() + * [Bluetooth] Fix regression from using default link policy + * netlink: fix overrun in attribute iteration + * x86: fix possible x86_64 and EFI regression + * sparc64: Fix PCI error interrupt registry on PSYCHO. + * sparc: Fix user_regset 'n' field values. + * niu: panic on reset + * PCI: re-add debug prints for unmodified BARs + * [ARM] 5245/1: Fix warning about unused return value in drivers/pcmcia + * [ARM] 5246/1: tosa: add proper clock alias for tc6393xb clock + * [ARM] 5247/1: tosa: SW_EAR_IN support + * [ARM] Fix PCI_DMA_BUS_IS_PHYS for ARM + * ata: duplicate variable sparse warning + * sata_inic162x: enable LED blinking + * [libata] LBA28/LBA48 off-by-one bug in ata.h + * proc: more debugging for "already registered" case + * include/linux/ioport.h: add missing macro argument for devm_release_* + family + * cpuset: avoid changing cpuset's cpus when -errno returned + * cpuset: hotplug documentation fix + * coredump_filter: add description of bit 4 + * bfs: fix Lockdep warning + * mm: ifdef Quicklists in /proc/meminfo + * spi_mpc83xx: fix clockrate calculation for low speed + * spi_mpc83xx: reject invalid transfer sizes + * pxa2xx_spi: chipselect bugfixes + * pxa2xx_spi: dma bugfixes + * mm: mark the correct zone as full when scanning zonelists + * Documentation/ABI: /sys/class/gpio + * MAINTAINERS: fix USB VIDEO CLASS mail list address + * ia64: fix panic during `modprobe -r xpc' + * atmel_lcdfb: disable LCD and DMA engines when suspending + * spi_s3c24xx: fix section warning + * rescan_partitions(): make device capacity errors non-fatal + * memstick: fix MSProHG 8-bit interface mode support + * Add Uwe Kleine-König to .mailmap + * xen: fix for xen guest with mem > 3.7G + * x86/paravirt: Remove duplicate paravirt_pagetable_setup_{start, done}() + * crypto: talitos - Avoid consecutive packets going out with same IV + * slub: fixed uninitialized counter in struct kmem_cache_node + * udp: Fix rcv socket locking + * IB/mlx4: Fix up fast register page list format + * [MIPS] VR41xx: unsigned irq cannot be negative + * x86: completely disable NOPL on 32 bits + * [S390] cio: Fix driver_data handling for ccwgroup devices. + * [S390] cio: fix orb initialization in cio_start_key + * sparc64: Fix OOPS in psycho_pcierr_intr_other(). + * sparc64: Fix SMP bootup with CONFIG_STACK_DEBUG or ftrace. + * RDMA/nes: Fix client side QP destroy + * IPoIB: Fix deadlock on RTNL between bcast join comp and ipoib_stop() + * clockevents: make device shutdown robust + * powerpc: Fix interrupt values for DMA2 in MPC8610 HPCD device tree + * hpplus: fix build regression + * Fix PNP build failure, bugzilla #11276 + * warn: Turn the netdev timeout WARN_ON() into a WARN() + * [XFS] Move memory allocations for log tracing out of the critical path + * [XFS] Fix regression introduced by remount fixup + * [XFS] Prevent direct I/O from mapping extents beyond eof + * [XFS] Fix barrier status change detection. + * [XFS] Prevent lockdep false positives when locking two inodes. + * [XFS] Fix use-after-free with buffers + * [XFS] Don't do I/O beyond eof when unreserving space + * powerpc: Holly board needs dtbImage target + * Fix compile failure with non modular builds + * [ARM] 5249/1: davinci: remove redundant check in davinci_psc_config() + * [ARM] omap: back out 'internal_clock' support + * sctp: set the skb->ip_summed correctly when sending over loopback. + * [ARM] 5255/1: Update jornada ssp to remove build errors/warnings + * sctp: do not enable peer features if we can't do them. + * sctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH + * bnx2: Promote vector field in bnx2_irq structure from u16 to unsigned + int + * forcedeth: call restore mac addr in nv_shutdown path + * e1000: prevent corruption of EEPROM/NVM + * e100: Use pci_pme_active to clear PME_Status and disable PME# + * md: Don't wait UNINTERRUPTIBLE for other resync to finish + * atstk1000: fix build breakage with BOARD_ATSTK100X_SW2_CUSTOM=y + * avr32: add .gitignore files + * avr32: add generic_find_next_le_bit bit function + * avr32: fix sys_sync_file_range() call convention + * avr32: nmi_enter() without nmi_exit() + * KVM: ia64: 'struct fdesc' build fix + * hwmon: (atxp1) Fix device detection logic + * hwmon: (it87) Fix fan tachometer reading in IT8712F rev 0x7 (I) + * hwmon: (ad7414) Make ad7414_update_device() static + * tmio_mmc: fix compilation with debug enabled + * atmel-mci: debugfs: enable clock before dumping regs + * atmel-mci: Fix memory leak in atmci_regs_show + * atmel-mci: Fix bogus debugfs file size + * atmel-mci: Set MMC_CAP_NEEDS_POLL if no detect_pin + * mmc_block: handle error from mmc_register_driver() + * mmc_test: initialize mmc_test_lock statically + * [MIPS] Fix 64-bit IP checksum code + * [MIPS] SMTC: Clear TIF_FPUBOUND on clone / fork. + * [MIPS] Fix potential latency problem due to non-atomic cpu_wait. + * [MIPS] vmlinux.lds.S: handle .text.* + * MAINTAINERS: Trivial whitespace cleanups + * MAINTAINERS: Various fixes + * Linux 2.6.27-rc7 + + -- Tim Gardner Sun, 21 Sep 2008 21:49:28 -0600 + +linux (2.6.27-3.4) intrepid; urgency=low + + [ Colin Ian King ] + + * SAUCE: fix kernel oops in VirtualBox during paravirt patching + - LP: #246067 + * SAUCE: qc-usb: Enable Logitech QuickCam Messenger + - LP: #209901 + * SAUCE: appleir: Enable driver for new MacBook Pro + - LP: #157919 + + [ Tim Gardner ] + + * Enabled CONFIG_DEBUG_RODATA=y + + [ Upstream Kernel Changes ] + + * Revert "ALSA: hda - Added model selection for iMac 24"" + * Revert "x86: fix HPET regression in 2.6.26 versus 2.6.25, check hpet + against BAR, v3" + * Revert "[ARM] use the new byteorder headers" + * Revert "mac80211: Use IWEVASSOCREQIE instead of IWEVCUSTOM" + * Revert "crypto: camellia - Use kernel-provided bitops, unaligned access + helpers" + * svcrdma: Fix race between svc_rdma_recvfrom thread and the dto_tasklet + * sched, cpuset: rework sched domains and CPU hotplug handling (v4) + * ACPI: Fix now signed module parameter. + * ACPI: Change package length error to warning + * ACPI: Fix now signed module parameter. + * ACPI: Fix typo in "Disable MWAIT via DMI on broken Compal board" + * acpi: add checking for NULL early param + * UBIFS: fix zero-length truncations + * Input: bcm5974 - add maintainer entry + * sh64: re-add the __strnlen_user() prototype + * sh: fix ptrace_64.c:user_disable_single_step() + * PNPACPI: ignore the producer/consumer bit for extended IRQ descriptors + * UBIFS: always read hashed-key nodes under TNC mutex + * UBIFS: allow for racing between GC and TNC + * [CIFS] Fix plaintext authentication + * sparc32: Implement smp_call_function_single(). + * sh: crash kernel resource fix + * sh: fix kexec entry point for crash kernels + * sh: fix platform_resource_setup_memory() section mismatch + * sh: update Migo-R defconfig + * sh: update AP325RXA defconfig + * sh: fix semtimedop syscall + * cifs: fix O_APPEND on directio mounts + * [CIFS] update cifs change log + * [CIFS] Turn off Unicode during session establishment for plaintext + authentication + * ACPI: thinkpad-acpi: wan radio control is not experimental + * sparc: Fix resource flags for PCI children in OF device tree. + * remove blk_register_filter and blk_unregister_filter in gendisk + * ALSA: oxygen: fix distorted output on AK4396-based cards + * ipv6: When we droped a packet, we should return NET_RX_DROP instead of + 0 + * pkt_sched: Fix locking of qdisc_root with qdisc_root_sleeping_lock() + * net: Unbreak userspace usage of linux/mroute.h + * Don't trigger softlockup detector on network fs blocked tasks + * Resource handling: add 'insert_resource_expand_to_fit()' function + * sparc64: setup_valid_addr_bitmap_from_pavail() should be __init + * UBIFS: do not update min_idx_lebs in stafs + * UBIFS: push empty flash hack down + * UBIFS: remove incorrect index space check + * UBIFS: improve statfs reporting + * UBIFS: fix assertion + * UBIFS: add forgotten gc_idx_lebs component + * UBIFS: introduce LEB overhead + * UBIFS: improve statfs reporting even more + * UBIFS: fill f_fsid + * drm/radeon: downgrade debug message from info to debug. + * Remove invalidate_partition call from do_md_stop. + * Fix problem with waiting while holding rcu read lock in md/bitmap.c + * ALSA: hda: Distortion fix for dell_m6_core_init + * ALSA: ASoC: fix pxa2xx-i2s clk_get call + * block: restore original behavior of /proc/partition when there's no + partition + * debugobjects: fix lockdep warning + * avr32: Fix lockup after Java stack underflow in user mode + * avr32: pm_standby low-power ram bug fix + * nfsd: fix compound state allocation error handling + * sunrpc: fix possible overrun on read of /proc/sys/sunrpc/transports + * nfsd: fix buffer overrun decoding NFSv4 acl + * audit: Moved variable declaration to beginning of function + * Fix modules_install on RO nfs-exported trees. + * Remove '#include ' from mm/page_isolation.c + * dabusb_fpga_download(): fix a memory leak + * [MTD] mtdchar.c: Fix regression in MEMGETREGIONINFO ioctl() + * ALSA: hda - Fix ALC663 auto-probe + * ALSA: hda - Add mic-boost controls to ALC662/663 auto configuration + * Un-break printk strings in x86 PCI probing code + * kernel/resource.c: fix new kernel-doc warning + * softlockup: minor cleanup, don't check task->state twice + * fix typo in arch/parisc/hpux/fs.c + * m68k: atari_keyb_init operator precedence fix + * ACPI: Fix typo in "Disable MWAIT via DMI on broken Compal board" + * don't diff generated firmware files + * IDE: compile fix for sff_dma_ops + * IDE: palm_bk3710: fix compile warning for unused variable + * ide: fix hwif_to_node() + * palm_bk3710: improve IDE registration + * ide-disk: remove stale init_idedisk_capacity() documentation + * ide/Kconfig: mark ide-scsi as deprecated + * net/wireless/Kconfig: clarify the description for + CONFIG_WIRELESS_EXT_SYSFS + * iwlwifi: do not use GFP_DMA in iwl_tx_queue_init + * iwlwifi: workaround interrupt handling no some platforms + * iwlwifi: fix apm_stop (wrong bit polarity for FLAG_INIT_DONE) + * iwlwifi: fix 64bit platform firmware loading + * orinoco: Multicast to the specified addresses + * wireless/libertas/if_cs.c: fix memory leaks + * mac80211: Fix debugfs union misuse and pointer corruption + * rt2x00: Compiler warning unmasked by fix of BUILD_BUG_ON + * ath9k: Incorrect key used when group and pairwise ciphers are + different. + * ath9: Fix ath_rx_flush_tid() for IRQs disabled kernel warning message. + * net/xfrm: Use an IS_ERR test rather than a NULL test + * ipv: Re-enable IP when MTU > 68 + * NTFS: update homepage + * mm: make setup_zone_migrate_reserve() aware of overlapping nodes + * VFS: fix dio write returning EIO when try_to_release_page fails + * acer-wmi: remove debugfs entries upon unloading + * mm/bootmem: silence section mismatch warning - + contig_page_data/bootmem_node_data + * MAINTAINERS: add a maintainer for the BCM5974 multitouch driver + * 8250: improve workaround for UARTs that don't re-assert THRE correctly + * mmc: at91_mci: don't use coherent dma buffers + * pid_ns: zap_pid_ns_processes: fix the ->child_reaper changing + * pid_ns: (BUG 11391) change ->child_reaper when init->group_leader exits + * cirrusfb: check_par fixes + * devcgroup: fix race against rmdir() + * mm: show quicklist usage in /proc/meminfo + * mm: size of quicklists shouldn't be proportional to the number of CPUs + * ipc: document the new auto_msgmni proc file + * hp-wmi: update to match current rfkill semantics + * hp-wmi: add proper hotkey support + * tdfxfb: fix SDRAM memory size detection + * tdfxfb: fix frame buffer name overrun + * rtc_time_to_tm: fix signed/unsigned arithmetic + * ibft: fix target info parsing in ibft module + * sysfs: document files in /sys/firmware/sgi_uv/ + * rtc-cmos: wake again from S5 + * pm_qos_requirement might sleep + * drivers/char/random.c: fix a race which can lead to a bogus BUG() + * ipsec: Fix deadlock in xfrm_state management. + * [x86] Fix TSC calibration issues + * tipc: Don't use structure names which easily globally conflict. + * sparc64: Fix IPI call locking. + * [ARM] omap: fix gpio.c build error + * sparc64: Prevent sparc64 from invoking irq handlers on offline CPUs + * powerpc: Fix uninitialised variable in VSX alignment code + * powerpc: Only make kernel text pages of linear mapping executable + * powerpc: Make sure _etext is after all kernel text + * powerpc: Work around gcc's -fno-omit-frame-pointer bug + * powerpc: Fix build error with 64K pages and !hugetlbfs + * powerpc: Fix for getting CPU number in power_save_ppc32_restore() + * UBIFS: amend f_fsid + * net/usb/pegasus: avoid hundreds of diagnostics + * ixgbe: initialize interrupt throttle rate + * pcnet-cs, axnet_cs: add new IDs, remove dup ID with less info + * netxen: Remove workaround for chipset quirk + * Split up PIT part of TSC calibration from native_calibrate_tsc + * iwlwifi: W/A for the TSF correction in IBSS + * iwlwifi: fix hidden ssid discovery in passive channels + * iwlwifi: remove false rxon if rx chain changes + * iwlwifi: fix station mimo power save values + * iwlwifi: fix rx_chain computation + * iwlwifi: fix Tx cmd memory allocation failure handling + * iwlwifi: call apm stop on exit + * iwlwifi: fix STATUS_EXIT_PENDING is not set on pci_remove + * ath9k: Fix TX status reporting + * ath9k: Fix TX control flag use for no ACK and RTS/CTS + * V4L/DVB (8555): au8522: add mechanism to configure IF frequency for vsb + and qam + * V4L/DVB (8556): au0828: add support for Hauppauge Woodbury + * V4L/DVB (8598): au8522: clean up function au8522_set_if + * V4L/DVB (8599): au8522: remove if frequency settings from vsb/qam + modulation tables + * V4L/DVB (8600): au0828: explicitly set 6 MHz IF frequency in + hauppauge_hvr950q_config + * V4L/DVB (8629): v4l2-ioctl: do not try to handle private V4L1 ioctls + * V4L/DVB (8633): ivtv: update ivtv version number + * V4L/DVB (8648): ivtv: improve CC support + * V4L/DVB (8660): gspca: Simplify the scan of URB packets in pac7311. + * V4L/DVB (8661): gspca: Bug in the previous changeset about pac7311. + * V4L/DVB (8663): gspca: Webcam 0c45:6128 added in sonixj. + * V4L/DVB (8664): gspca: The bridge/sensor of the webcam 093a:2621 is a + PAC 7302. + * V4L/DVB (8665): gspca: Fix the 640x480 resolution of the webcam + 093a:2621. + * V4L/DVB (8666): gspca: Bad scanning of frames in pac7311. + * V4L/DVB (8667): gspca: Bad probe of Z-Star/Vimicro webcams with pas106 + sensor. + * V4L/DVB (8668): gspca: Conflict GSPCA / ET61X251 for the webcam + 102c:6251. + * V4L/DVB (8669): gspca: Add white balance control for spca561 rev 012A. + * V4L/DVB (8671): gspca: Remove the unused field 'dev_name' of the device + structure. + * V4L/DVB (8672): gspca: Big rewrite of spca561. + * V4L/DVB (8673): gspca: Bad frame scanning again and bad init in + pac7311. + * V4L/DVB (8674): gspca: Webcam 0c45:612e added in sonixj. + * V4L/DVB (8675): gspca: Pixmap PJPG (Pixart 73xx JPEG) added, generated + by pac7311. + * V4L/DVB (8678): Remove the dead CONFIG_RADIO_MIROPCM20{,_RDS} code + * V4L/DVB (8681): v4l2-ioctl.c: fix warning + * V4L/DVB (8682): V4L: fix return value of register video func + * V4L/DVB (8701): cx18: Add missing lock for when the irq handler + manipulates the queues + * V4L/DVB (8703): gspca: Do controls work for spca561 revision 12a. + * V4L/DVB (8705): gspca: Adjust some control limits in spca561. + * V4L/DVB (8706): Make contrast and brightness work for pac7302. + * V4L/DVB (8707): gspca: Colors, hflip and vflip controls added for + pac7302. + * V4L/DVB (8709): gspca: Fix initialization and controls of sn9x110 - + ov7630. + * V4L/DVB (8710): gspca: Bad color control in sonixj. + * V4L/DVB (8711): gspca: Bad controls and quantization table of pac7311. + * V4L/DVB (8712): gspca: Bad start of sonixj webcams since changeset + a8779025e7e8. + * V4L/DVB (8713): gspca: Bad color control again in sonixj. + * V4L/DVB (8714): gspca: Bad start of sn9c110 and sensor om6802. + * V4L/DVB (8715): gspca: Change the name of some webcam in the gspca doc. + * V4L/DVB (8716): gspca: Bad start of sn9c110 and sensor ov7630. + * V4L/DVB (8717): gspca: Frame buffer too small for small resolutions + (sonixj and t613). + * V4L/DVB (8718): gspca: suspend/resume added. + * V4L/DVB (8719): gspca: Have VIDIOC_QUERYCTRL more compliant to the + spec. + * V4L/DVB (8720): gspca: V4L2_CAP_SENSOR_UPSIDE_DOWN added as a cap for + some webcams. + * V4L/DVB (8722): sms1xxx: fix typo in license header + * V4L/DVB (8726): link tuner before saa7134 + * V4L/DVB (8727): V4L1: make PMS not autoprobe when builtin. + * V4L/DVB (8728): 1-make-pms-not-autoprobe-when-builtin update + * V4L/DVB (8749): Fix error code, when camera is not turned on by sonypi + * V4L/DVB (8750): V4L: check inval in video_register_device_index() + * V4L/DVB (8751): vivi: Fix some issues at vivi register routine + * V4L/DVB (8757): v4l-dvb: fix a bunch of sparse warnings + * V4L/DVB (8769): cx18: Simplify queue flush logic to prevent oops in + cx18_flush_queues() + * V4L/DVB (8778): radio: fix incorrect video_register_device result check + * V4L/DVB (8779): v4l: fix more incorrect video_register_device result + checks + * V4L/DVB (8790): saa7115: call i2c_set_clientdata only when state != + NULL + * V4L/DVB (8803): s5h1409: Enable QAM_AUTO mode + * V4L/DVB (8804): s5h1411: Enable QAM_AUTO mode + * V4L/DVB (8805): Steven Toth email address change + * V4L/DVB (8809): gspca: Revert commit + 9a9335776548d01525141c6e8f0c12e86bbde982 + * V4L/DVB (8810): gspca: Compile error when CONFIG_PM not defined. + * V4L/DVB (8812): gspca: Do pac73xx webcams work. + * V4L/DVB (8813): gspca: Adjust SOF detection for pac73xx. + * V4L/DVB (8814): gspca: Set DISABLED the disabled controls at query + control time. + * V4L/DVB (8815): gspca: Fix problems with disabled controls. + * V4L/DVB (8816): gspca: Set disabled ctrls and fix a register pb with + ovxxxx in sonixb. + * V4L/DVB (8817): gspca: LED and proble changes in sonixb. + * V4L/DVB (8818): gspca: Reinitialize the device on resume. + * V4L/DVB (8819): gspca: Initialize the ov519 at open time and source + cleanup. + * V4L/DVB (8820): gspca: Change initialization and gamma of zc3xx - + pas106. + * V4L/DVB (8822): gspca: Change some subdriver functions for + suspend/resume. + * V4L/DVB (8823): gspca: H and V flips work for ov7670 only in ov519. + * V4L/DVB (8824): gspca: Too much code removed in the suspend/resume + changeset. + * V4L/DVB (8825): gspca: More controls for pac73xx and new webcam + 093a:2624. + * V4L/DVB (8826): gspca: Webcam Labtec 2200 (093a:2626) added in pac7311. + * V4L/DVB (8827): gspca: Stop pac7302 autogain oscillation. + * V4L/DVB (8828): gspca: Set the clock at the end of initialization in + sonixj. + * V4L/DVB (8829): gspca: Have a clean kmalloc-ated buffer for USB + exchanges. + * V4L/DVB (8830): gspca: Move some probe code to the new init function. + * V4L/DVB (8831): gspca: Resolve webcam conflicts between some drivers. + * V4L/DVB (8832): gspca: Bad pixelformat of vc0321 webcams. + * V4L/DVB (8833): gspca: Cleanup the sonixb code. + * V4L/DVB (8834): gspca: Have a bigger buffer for sn9c10x compressed + images. + * V4L/DVB (8835): gspca: Same pixfmt as the sn9c102 driver and raw Bayer + added in sonixb. + * V4L/DVB (8837): dvb: fix I2C adapters name size + * V4L/DVB (8839): dib0700: add comment to identify 35th USB id pair + * V4L/DVB (8840): dib0700: add basic support for Hauppauge Nova-TD-500 + (84xxx) + * V4L/DVB (8842): vivi_release(): fix use-after-free + * V4L/DVB (8843): tda10048_firmware_upload(): fix a memory leak + * V4L/DVB (8844): dabusb_fpga_download(): fix a memory leak + * bnx2x: Accessing un-mapped page + * SELinux: memory leak in security_context_to_sid_core + * x86: add io delay quirk for Presario F700 + * mmap: fix petty bug in anonymous shared mmap offset handling + * x86: Change warning message in TSC calibration. + * PCI: fix pbus_size_mem() resource alignment for CardBus controllers + * [ARM] omap: fix build error in ohci-omap.c + * [ARM] remove unused #include + * ACPI: Make Len Brown the ACPI maintainer again + * fujitsu-laptop: fix regression for P8010 in 2.6.27-rc + * ACPI: Avoid bogus timeout about SMbus check + * acer-wmi: remove debugfs entries upon unloading + * forgotten refcount on sysctl root table + * V4L/DVB (8868): gspca: Support for vga modes with sif sensors in + sonixb. + * V4L/DVB (8869): gspca: Move the Sonix webcams with TAS5110C1B from + sn9c102 to gspca. + * V4L/DVB (8870): gspca: Fix dark room problem with sonixb. + * V4L/DVB (8872): gspca: Bad image format and offset with rev072a of + spca561. + * V4L/DVB (8873): gspca: Bad image offset with rev012a of spca561 and + adjust exposure. + * V4L/DVB (8874): gspca: Adjust hstart for sn9c103/ov7630 and update + usb-id's. + * [ARM] omap: fix virtual vs physical address space confusions + * V4L/DVB (8876): budget: udelay changed to mdelay + * V4L/DVB (8877): b2c2 and bt8xx: udelay to mdelay + * V4L/DVB (8880): PATCH: Fix parents on some webcam drivers + * V4L/DVB (8881): gspca: After 'while (retry--) {...}', retry will be -1 + but not 0. + * powerpc/spufs: Fix multiple get_spu_context() + * powerpc/spufs: Fix race for a free SPU + * Input: bcm5974 - small formatting cleanup + * Input: bcm5974 - improve finger tracking and counting + * Input: bcm5974 - add BTN_TOUCH event for mousedev benefit + * Input: i8042 - make Lenovo 3000 N100 blacklist entry more specific + * sh: resume_kernel fix for kernel oops built with CONFIG_BKL_PREEMPT=y. + * sh64: resume_kernel fix for kernel oops built with + CONFIG_BKL_PREEMPT=y. + * i2c: fix i2c-sh_mobile timing issues + * clockevents: prevent clockevent event_handler ending up handler_noop + * clockevents: prevent endless loop in periodic broadcast handler + * clockevents: enforce reprogram in oneshot setup + * clockevents: prevent multiple init/shutdown + * clockevents: prevent endless loop lockup + * HPET: make minimum reprogramming delta useful + * [MTD] [NAND] tmio_nand: fix base address programming + * Fix conditional export of kvh.h and a.out.h to userspace. + * async_tx: fix the bug in async_tx_run_dependencies + * sched_clock: fix NOHZ interaction + * sched: fix process time monotonicity + * UBIFS: fix division by zero + * UBIFS: make minimum fanout 3 + * [MIPS] Fix data bus error recovery + * [MIPS] Fix WARNING: at kernel/smp.c:290 + * [MIPS] TXx9: Fix txx9_pcode initialization + * [MIPS] TX39xx: Add missing local_flush_icache_range initialization + * [MIPS] Probe initrd header only if explicitly specified + * res_counter: fix off-by-one bug in setting limit + * forcedeth: fix kexec regression + * atmel_lcdfb: fix oops in rmmod when framebuffer fails to register + * tracehook: comment pasto fixes + * drivers/mmc/card/block.c: fix refcount leak in mmc_block_open() + * x86: boot: stub out unimplemented CPU feature words + * x86: add NOPL as a synthetic CPU feature bit + * x86: use X86_FEATURE_NOPL in alternatives + * clockevents: broadcast fixup possible waiters + * x86: HPET fix moronic 32/64bit thinko + * x86: HPET: read back compare register before reading counter + * Fix CONFIG_AC97_BUS dependency + * [ARM] 5241/1: provide ioremap_wc() + * ntp: fix calculation of the next jiffie to trigger RTC sync + * clocksource, acpi_pm.c: use proper read function also in errata mode + * clocksource, acpi_pm.c: check for monotonicity + * x86: delay early cpu initialization until cpuid is done + * x86: move mtrr cpu cap setting early in early_init_xxxx + * sched: arch_reinit_sched_domains() must destroy domains to force + rebuild + * x86, xen: Use native_pte_flags instead of native_pte_val for .pte_flags + * x86: pda_init(): fix memory leak when using CPU hotplug + * x86: cpu_init(): fix memory leak when using CPU hotplug + * powerpc/spufs: Fix possible scheduling of a context to multiple SPEs + * netfilter: nf_conntrack_sip: de-static helper pointers + * netfilter: nf_conntrack_gre: more locking around keymap list + * netfilter: nf_conntrack_gre: nf_ct_gre_keymap_flush() fixlet + * netfilter: nf_conntrack_irc: make sure string is terminated before + calling simple_strtoul + * pkt_sched: Fix qdisc state in net_tx_action() + * powerpc: Fix rare boot build breakage + * ahci, pata_marvell: play nicely together + * sata_mv: add RocketRaid 1720 PCI ID to driver + * ahci: disable PMP for marvell ahcis + * sata_nv: disable hardreset for generic + * libata-sff: kill spurious WARN_ON() in ata_hsm_move() + * pata_sil680: remove duplicate pcim_enable_device + * ahci: RAID mode SATA patch for Intel Ibex Peak DeviceIDs + * [MIPS] IP22: Fix detection of second HPC3 on Challenge S + * xen: fix 2.6.27-rc5 xen balloon driver warnings + * x86: disable static NOPLs on 32 bits + * netns : fix kernel panic in timewait socket destruction + * bridge: don't allow setting hello time to zero + * NFS: Restore missing hunk in NFS mount option parser + * usb: fix null deferences in low level usb serial + * Fix format of MAINTAINERS + * sparc64: Disable timer interrupts in fixup_irqs(). + * [Bluetooth] Fix reference counting during ACL config stage + * [Bluetooth] Enforce correct authentication requirements + * [Bluetooth] Reject L2CAP connections on an insecure ACL link + * [S390] CVE-2008-1514: prevent ptrace padding area read/write in 31-bit + mode + * [S390] cio: Correct cleanup on error. + * [S390] cio: handle ssch() return codes correctly. + * [S390] cio: allow offline processing for disconnected devices + * ipsec: Restore larval states and socket policies in dump + * update Documentation/filesystems/Locking for 2.6.27 changes + * MAINTAINERS: add Atheros maintainer for atlx + * lib: Correct printk %pF to work on all architectures + * x86: fix memmap=exactmap boot argument + * clockevents: remove WARN_ON which was used to gather information + * ipv6: Fix OOPS in ip6_dst_lookup_tail(). + * Linux 2.6.27-rc6 + + -- Ben Collins Tue, 02 Sep 2008 12:45:56 -0400 + +linux (2.6.27-2.3) intrepid; urgency=low + + [ Ben Collins ] + + * build/retag: Make script save .orig of tags for later use + * ubuntu/lirc: Fix device_create call + * build/firmware: Put in-kernel firmware into version specific subdir + - LP: #262115 + * Rebase on linux-2.6 git. + * ABI bump + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (no-up) Apparmor warning fixes + + [ John Johansen ] + + * SAUCE: (no-up) Proper AppArmor ptrace updates for newer lsm API + + [ Mackenzie Morgan ] + + * SAUCE: Add quirk for ASUS Z37E to make sound audible after resume + - LP: #25896 + + -- Ben Collins Wed, 27 Aug 2008 14:03:05 -0400 + +linux (2.6.27-1.2) intrepid; urgency=low + + [ Amit Kucheria ] + + * SAUCE: make fc transport removal of target configurable + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + + [ Ben Collins ] + + * SAUCE: Lower warning level of some PCI messages + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: (no-up) version: Implement version_signature proc file. + * SAUCE: (no-up) connector.h: Add idx/val for drbd + * SAUCE: (no-up) swap: Add notify_swap_entry_free callback for compcache + * SAUCE: drivers: Remove some duplicate device entries in various modules + * SAUCE: (no-up) [AppArmor] merge with upstream subversion r1291 + * SAUCE: apparmor: Update for changes to ptrace lsm hooks + * SAUCE: (no-up) Enable ubuntu extra subdirectory + * SAUCE: applesmc: Add MacBookAir + * SAUCE: (no-up) ACPI: initramfs DSDT override support + * ubuntu: Add drbd module + * ubuntu: Add iscsitarget module + * ubuntu: Add BOM for iscsitarget + * ubuntu: Add squashfs driver + * SAUCE: (no-up) Check for squashfs superblock in initramfs mounting. + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Added et131x driver + * ubuntu: Add dm-raid4-5 driver + * ubuntu: Add ndiswrapper driver + * ubuntu: Added ram backed compressed swap module (compcache) + * ubuntu: Add misc drivers from hardy lum + * ubuntu: Add heci driver 3.2.0.24 + * ubuntu: Add ov511 and bt-sco drivers + * ubuntu: Add acx, prism2_usb wireless drivers + * ubuntu: Add at76 driver to build + * ubuntu: Add fsam7400 sw kill switch driver + * ubuntu: Added qc-usb driver + * ubuntu: e1000e: Upgraded module to 0.4.1.7 + * ubuntu: Added rfkill drivers + * ubuntu: VIA - Add VIA DRM Chrome9 3D engine + * ubuntu: unionfs: Added v1.4 module from hardy + * ubuntu: Add LIRC driver + * ubuntu: Add GFS driver + * ubuntu: New tlsup driver for toshiba laptops + * Update config files + * build/d-i: Remove obsolete dm modules + + [ Chuck Short ] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + + [ Colin Ian King ] + + * ubuntu: Add dm-loop + * SAUCE: Enable speedstep for sonoma processors. + + [ Dennis Noordsij ] + + * SAUCE: Work around ACPI corruption upon suspend on some Dell machines. + + [ Fabio M. Di Nitto ] + + * SAUCE: Export gfs2 symbols required for gfs1 kernel module + + [ Matthew Garrett ] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [ Michael Frey (Senior Manager, MID ] + + * SAUCE: Send HCI_RESET for Broadcomm 2046 + + [ Phillip Lougher ] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [ Stefan Bader ] + + * SAUCE: (no-up) Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: mmc: Increase power_up deleay to fix TI readers + + [ Tim Gardner ] + + * SAUCE: Add extra headers to linux-libc-dev + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: (no-up) Take care of orinoco_cs overlap with hostap_cs + * ubuntu: Add GNBD driver + + -- Ben Collins Sat, 23 Aug 2008 15:48:35 -0400 + +linux (2.6.27-0.0) intrepid; urgency=low + + * Not uploaded, placeholder for new release + + -- Ben Collins Sat, 23 Aug 2008 15:48:35 -0400 + +linux (2.6.26-5.17) intrepid; urgency=low + + [ Ben Collins ] + + * build/abi: Add tosh_smm symbol to blacklist + + -- Ben Collins Fri, 15 Aug 2008 09:29:34 -0400 + +linux (2.6.26-5.16) intrepid; urgency=low + + [ Ben Collins ] + + * Revert "SAUCE: toshiba_acpi: Rewrote most of the proc entry bits." + * Revert "SAUCE: Update toshiba_acpi.c to version 0.19a" + * build/config: Disable in-kernel toshiba driver(s) + * ubuntu/tlsup: New driver for toshiba laptops + * build/config: Enable TLSUP driver + * SAUCE: e1000e: Fix E1000E_ENABLED logic to check for our E1000E_NEW + driver as well + * ubuntu/e1000e: Remove E1000E_ENABLED option in local config + * build/config: Update configs to have E1000E_ENABLED set + * ubuntu/prism2: Remove duplicate device + + [ Fabio M. Di Nitto ] + + * SAUCE: Export gfs2 symbols required for gfs1 kernel module + + [ Stefan Bader ] + + * SAUCE: x86: HPET rework for SB700 + - LP: #255910 + + [ Tim Gardner ] + + * Add GNBD driver + * Enable GNBD driver + * SAUCE: Add GFS driver + * SAUCE: Enable gfs driver configs + * b43: Linksys WMP54G (BCM4306/3) card in a PCI format has an SPROM + coding + + [ Upstream Kernel Changes ] + + * KVM: x86 emulator: emulate clflush + * USB: quirk PLL power down mode + + -- Ben Collins Mon, 11 Aug 2008 13:19:28 -0400 + +linux (2.6.26-5.15) intrepid; urgency=low + + [ Ben Collins ] + + * Revert "SAUCE: Add blacklist support to fix Belkin bluetooth dongle." + - Superceded by upstream changes. + * build/config: New option enabled for uvcvideo + * build/control: Add Vcs-Git meta data to control file + * SAUCE: toshiba_acpi: Rewrote most of the new code + * abi/perm-blacklist: Add emu10k1 driver to blacklist + + [ Upstream Kernel Changes ] + + * pxamci: trivial fix of DMA alignment register bit clearing + * udplite: Protection against coverage value wrap-around + * ipv6: use timer pending + * ipv6: __KERNEL__ ifdef struct ipv6_devconf + * hdlcdrv: Fix CRC calculation. + * quota: fix possible infinite loop in quota code + * isofs: fix minor filesystem corruption + * KVM: VMX: Fix a wrong usage of vmcs_config + * KVM: SVM: fix suspend/resume support + * KVM: mmu_shrink: kvm_mmu_zap_page requires slots_lock to be held + * KVM: VMX: Add ept_sync_context in flush_tlb + * KVM: x86 emulator: Fix HLT instruction + * KVM: MMU: nuke shadowed pgtable pages and ptes on memslot destruction + * KVM: MMU: Fix potential race setting upper shadow ptes on nonpae hosts + * Patch Upstream: x86 ptrace: fix PTRACE_GETFPXREGS error + * rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall + * Fix typos from signal_32/64.h merge + * x86 reboot quirks: add Dell Precision WorkStation T5400 + * USB: fix usb serial pm counter decrement for disconnected interfaces + * x86, suspend, acpi: enter Big Real Mode + * markers: fix duplicate modpost entry + * Fix build on COMPAT platforms when CONFIG_EPOLL is disabled + * proc: fix /proc/*/pagemap some more + * cpusets: fix wrong domain attr updates + * x86: fix crash due to missing debugctlmsr on AMD K6-3 + * ide-cd: fix oops when using growisofs + * rtc-at91rm9200: avoid spurious irqs + * vmlinux.lds: move __attribute__((__cold__)) functions back into final + .text section + * ARM: fix fls() for 64-bit arguments + * tcp: Clear probes_out more aggressively in tcp_ack(). + * sparc64: Fix lockdep issues in LDC protocol layer. + * sparc64: Fix cpufreq notifier registry. + * sparc64: Do not define BIO_VMERGE_BOUNDARY. + * iop-adma: fix platform driver hotplug/coldplug + * myri10ge: do not forget to setup the single slice pointers + * myri10ge: do not use mgp->max_intr_slots before loading the firmware + * ALSA: trident - pause s/pdif output + * V4L: cx18: Upgrade to newer firmware & update documentation + * DVB: dib0700: add support for Hauppauge Nova-TD Stick 52009 + * V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing + * V4L: uvcvideo: Use GFP_NOIO when allocating memory during resume + * V4L: uvcvideo: Don't free URB buffers on suspend + * V4L: uvcvideo: Make input device support optional + * V4L: uvcvideo: Add support for Medion Akoya Mini E1210 integrated + webcam + * V4L: saa7134: Copy tuner data earlier to avoid overwriting manual tuner + type + * V4L: cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1 + * DVB: cx23885: Ensure PAD_CTRL is always reset to a sensible default + * DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not + stream + * DVB: cx23885: Reallocated the sram to avoid concurrent VIDB/C issues + * DVB: cx23885: SRAM changes for the 885 and 887 silicon parts + * x86: fix kernel_physical_mapping_init() for large x86 systems + * eCryptfs: use page_alloc not kmalloc to get a page of memory + * UML - Fix boot crash + * ixgbe: remove device ID for unsupported device + * mpc52xx_psc_spi: fix block transfer + * tmpfs: fix kernel BUG in shmem_delete_inode + * markers: fix markers read barrier for multiple probes + * VFS: increase pseudo-filesystem block size to PAGE_SIZE + * cpufreq acpi: only call _PPC after cpufreq ACPI init funcs got called + already + * b43legacy: Release mutex in error handling code + * ath5k: don't enable MSI, we cannot handle it yet + * Fix off-by-one error in iov_iter_advance() + * Linux 2.6.26.1 + * ftrace: remove unneeded documentation + * romfs_readpage: don't report errors for pages beyond i_size + * netfilter: nf_nat_sip: c= is optional for session + * SCSI: bsg: fix bsg_mutex hang with device removal + * x86: idle process - add checking for NULL early param + * x86: io delay - add checking for NULL early param + * Close race in md_probe + * Kprobe smoke test lockdep warning + * netfilter: xt_time: fix time's time_mt()'s use of do_div() + * linear: correct disk numbering error check + * SCSI: ch: fix ch_remove oops + * NFS: Ensure we zap only the access and acl caches when setting new acls + * jbd: fix race between free buffer and commit transaction + * Input: i8042 - add Intel D845PESV to nopnp list + * Input: i8042 - add Gericom Bellagio to nomux blacklist + * Input: i8042 - add Acer Aspire 1360 to nomux blacklist + * Bluetooth: Signal user-space for HIDP and BNEP socket errors + * Add compat handler for PTRACE_GETSIGINFO + * ALSA: hda - Fix wrong volumes in AD1988 auto-probe mode + * ALSA: hda - Fix DMA position inaccuracy + * ALSA: hda - Add missing Thinkpad Z60m support + * ALSA: emu10k1 - Fix inverted Analog/Digital mixer switch on Audigy2 + * vfs: fix lookup on deleted directory + * Ath5k: fix memory corruption + * Ath5k: kill tasklets on shutdown + * sound: ensure device number is valid in snd_seq_oss_synth_make_info + * Linux 2.6.26.2 + + -- Ben Collins Sun, 03 Aug 2008 13:25:02 -0400 + +linux (2.6.26-5.14) intrepid; urgency=low + + [ Ben Collins ] + + * SAUCE: applesmc: Add MacBookAir + * build: Do not build ddeb unless we are on the buildd + * build: control: Consistency in arch fields. + * SAUCE: Update toshiba_acpi.c to version 0.19a + - LP: #77026 + * build: Added perm blacklist support and per-module support to abi-check + - Blacklist p80211 module from abi checks + * ubuntu/lirc: Get rid of drivers symlink and use real include stuff + + + [ Colin Ian King ] + + * SAUCE: acerhk module - add support for Amilo A1650g keyboard + - LP: #84159 + * SAUCE: rt2x00: Fix OOPS on failed creation of rt2x00lib workqueue + - LP: #249242 + + [ Mario Limonciello ] + + * Add LIRC back in + + [ Tim Gardner ] + + * Makefile race condition can lead to ndiswrapper build failure + - LP: #241547 + * update linux-wlan-ng (prism2_usb) to upstream version 1861 + - LP: #245026 + + [ Upstream Kernel Changes ] + + * Fix typos from signal_32/64.h merge + + -- Ben Collins Fri, 01 Aug 2008 00:05:01 -0400 + +linux (2.6.26-5.13) intrepid; urgency=low + + [ Ben Collins ] + + * build: Make makedumpfile an amd64/i386 only build-dep + * ubuntu/acerhk: Fixup assembly to compile with newer binutils + + -- Ben Collins Sat, 26 Jul 2008 16:41:50 -0400 + +linux (2.6.26-4.12) intrepid; urgency=low + + [ Ben Collins ] + + * e1000e: Upgraded module to 0.4.1.7 upstream. Placed in ubuntu/, + in-kernel driver disabled + * config: Disable e1000e in-kernel, and enable newer driver in ubuntu/ + * rfkill: Update to 1.3 drivers, and move to common location + * ubuntu: Actually link kconfig/kbuild into rfkill subdir + * config: Enable loading dsdt from initramfs + - LP: #246222 + * ubuntu: [compcache] Update to fix crashes in improper BUG() + * build: Create a retag scripts to recover tags from rebases + * build: Updates for dbg pkg + * build: Make sure no empty lines show up in debian/files + * ubuntu: atl1e: Add new driver from 2.6.27-pre-rc1 + - LP: #243894 + * sys_getcwd: Fix some brokeness introduced by AppArmor __d_path + changes + - LP: #251223 + * ubuntu: unionfs: Added v1.4 module from hardy + * build: Add sub-flavour infrastructure, and virtual subflav + + [ Eric Piel ] + + * ACPI: Allow custom DSDT tables to be loaded from initramfs + + [ Kees Cook ] + + * AppArmor: Smack VFS patches + + [ Mario Limonciello ] + + * Work around ACPI corruption upon suspend on some Dell machines. + - LP: #183033 + + [ Tim Gardner ] + + * Export usbhid_modify_dquirk for LBM module bcm5974 + - LP: #250838 + * VIA - Add VIA DRM Chrome9 3D engine + - LP: #251862 + * Define TRUE/FALSE for VIA DRM driver. + + -- Ben Collins Tue, 15 Jul 2008 12:51:39 -0400 + +linux (2.6.26-4.11) intrepid; urgency=low + + [ Ben Collins ] + + * config: Enable bcm5974 driver in all configs + + [ 2.6.26-4.10 ] + + [ Amit Kucheria ] + + * Fix typo in GSPCA Makefile and make it compile + + [ Ben Collins ] + + * ubuntu: Remove UVC driver in favor of in-kernel one (-rc9) + * config: Updates for -rc9 + * ubuntu: Add acx, prism2_usb wireless drivers + * config: Enable prism2_usb and acx drivers. + * ubuntu: Add at76 driver to build + * config: Enable at76_usb driver. + * iscsitarget: Fix prototype for bi_end_io callback. + * acx: Fix section type mismatch warnings + * fsam7400: Add sw kill switch driver + * config: Enable fsam7400 driver + * qc-usb: Added new driver + * config: Enable qc-usb driver + * drbd: Remove built-in connector usage + * drbd: Do not define idx/val for connector here + * connector.h: Add idx/val for drbd + * bcm5974: Added new driver + + [ Kees Cook ] + + * SAUCE: [AppArmor] merge with upstream subversion r1291 + * SAUCE: [AppArmor] fix typo in selinux_inode_link + * SAUCE: [AppArmor] aufs patches + + [ Michael Frey (Senior Manager, MID ] + + * SAUCE: Send HCI_RESET for Broadcomm 2046 + - LP: #241749 + + [ Tim Gardner ] + + * SAUCE: Medion Akoya Mini E1210 + + [ Upstream Kernel Changes ] + + * Revert "BAST: Remove old IDE driver" + * ARM: OMAP: DMA: Don't mark channel active in omap_enable_channel_irq + * ARM: OMAP: Correcting the gpmc prefetch control register address + * debugobjects: fix lockdep warning + * [ARM] 5115/1: pxafb: fix ifdef for command line option handling + * [ARM] 5116/1: pxafb: cleanup and fix order of failure handling + * [ARM] 5109/1: Mark rtc sa1100 driver as wakeup source before + registering it + * [ARM] Export dma_sync_sg_for_device() + * fix cgroup-inflicted breakage in block_dev.c + * [patch for 2.6.26 2/4] vfs: utimensat(): be consistent with utime() for + immutable and append-only files + * [patch for 2.6.26 1/4] vfs: utimensat(): ignore tv_sec if tv_nsec == + UTIME_OMIT or UTIME_NOW + * [patch for 2.6.26 3/4] vfs: utimensat(): fix error checking for + {UTIME_NOW,UTIME_OMIT} case + * [patch for 2.6.26 4/4] vfs: utimensat(): fix write access check for + futimens() + * [patch 1/4] vfs: path_{get,put}() cleanups + * [patch 2/4] fs: make struct file arg to d_path const + * [patch 3/4] vfs: fix ERR_PTR abuse in generic_readlink + * [patch 4/4] flock: remove unused fields from file_lock_operations + * [patch 3/3] vfs: make d_path() consistent across mount operations + * [patch 1/3] vfs: dcache sparse fixes + * [patch 2/3] vfs: dcache cleanups + * udf: Fix regression in UDF anchor block detection + * [SCSI] ses: Fix timeout + * netfilter: ip6table_mangle: don't reroute in LOCAL_IN + * [SCSI] esp: Fix OOPS in esp_reset_cleanup(). + * kernel/audit.c: nlh->nlmsg_type is gotten more than once + * audit: fix kernel-doc parameter notation + * remove useless argument type in audit_filter_user() + * Blackfin arch: fix bug - kernel boot fails when Spinlock and rw-lock + debugging enabled + * Blackfin arch: fix up section mismatch warning + * mac80211: implement EU regulatory domain + * b43: Do not return TX_BUSY from op_tx + * b43legacy: Do not return TX_BUSY from op_tx + * b43: Fix possible MMIO access while device is down + * b43legacy: Fix possible NULL pointer dereference in DMA code + * rt2x00: Fix unbalanced mutex locking + * iwlwifi: improve scanning band selection management + * [SCSI] esp: tidy up target reference counting + * [ARM] 5117/1: pxafb: fix __devinit/exit annotations + * thermal: Create CONFIG_THERMAL_HWMON=n + * ACPI: don't walk tables if ACPI was disabled + * dock: bay: Don't call acpi_walk_namespace() when ACPI is disabled. + * x86: shift bits the right way in native_read_tscp + * x86: section/warning fixes + * V4L/DVB (8004): Fix INPUT dependency at budget-ci + * V4L/DVB (8005): Fix OOPS if frontend is null + * V4L/DVB (8007): cx18/cx25840: the S-Video LUMA input can use all + In1-In8 inputs + * V4L/DVB (8008): cx18: remove duplicate audio and video input enums + * V4L/DVB (8010): em28xx: Properly register extensions for already + attached devices + * V4L/DVB (8011): em28xx: enable DVB for HVR-900 + * V4L/DVB (8012): gl861: sleep a little to avoid I2C errors + * V4L/DVB (8013): gl861: remove useless identify_state + * V4L/DVB (8015): gl861: replace non critical msleep(0) with msleep(1) to + be on the safe side + * V4L/DVB (8017): Ensure em28xx extensions only get run against devs that + support them + * V4L/DVB (8018): Add em2860 chip ID + * V4L/DVB (8020): Fix callbacks functions of saa7134_empress + * V4L/DVB (8022): saa7134: fix race between opening and closing the + device + * V4L/DVB (8026): Avoids an OOPS if dev struct can't be successfully + recovered + * V4L/DVB (8027): saa7134: Avermedia A700: only s-video and composite + input are working + * V4L/DVB (8028): Improve error messages for tda1004x attach + * V4L/DVB (8029): Improve error message at tda1004x_attach + * V4L/DVB (8034): tda18271: fix IF notch frequency handling + * V4L/DVB (8035): tda18271: dont touch EB14 if rf_cal lookup is out of + range + * V4L/DVB (8036): tda18271: toggle rf agc speed mode on TDA18271HD/C2 + only + * V4L/DVB (8037): tda18271: ensure that the thermometer is off during + channel configuration + * V4L/DVB (8039): pxa-camera: fix platform_get_irq() error handling. + * V4L/DVB (8040): soc-camera: remove soc_camera_host_class class + * V4L/DVB (8042): DVB-USB UMT-010 channel scan oops + * V4L/DVB (8043): au0828: add support for additional USB device id's + * V4L/DVB (8044): au8522: tuning optimizations + * V4L/DVB (8048): saa7134: Fix entries for Avermedia A16d and Avermedia + E506 + * V4L/DVB (8061): cx18: only select tuner / frontend modules if + !DVB_FE_CUSTOMISE + * V4L/DVB (8063): cx18: Fix unintended auto configurations in + cx18-av-core + * V4L/DVB (8066): cx18: Fix audio mux input definitions for HVR-1600 Line + In 2 and FM radio + * V4L/DVB (8067): cx18: Fix firmware load for case when digital capture + happens first + * V4L/DVB (8068): cx18: Add I2C slave reset via GPIO upon initialization + * V4L/DVB (8069): cx18: Fix S-Video and Compsite inputs for the Yuan + MPC718 and enable card entry + * V4L/DVB (8071): tda10023: Fix possible kernel oops during + initialisation + * V4L/DVB (8073): av7110: Catch another type of ARM crash + * V4L/DVB (8074): av7110: OSD transfers should not be interrupted + * V4L/DVB (8075): stv0299: Uncorrected block count and bit error rate + fixed + * V4L/DVB (8092): videodev: simplify and fix standard enumeration + * V4L/DVB (8096): au8522: prevent false-positive lock status + * V4L/DVB (8097): xc5000: check device hardware state to determine if + firmware download is needed + * V4L/DVB (8100): V4L/vivi: fix possible memory leak in vivi_fillbuff + * V4L/DVB (8108): Fix open/close race in saa7134 + * s2io: fix documentation about intr_type + * tc35815: Mark carrier-off before starting PHY + * tc35815: Fix receiver hangup on Rx FIFO overflow + * ixgbe: fix EEH recovery during reset on PPC + * igb: fix EEH recovery during reset on PPC + * e1000e: fix EEH recovery during reset on PPC + * pcnet_cs, axnet_cs: clear bogus interrupt before request_irq + * drivers/net/r6040.c: Eliminate double sizeof + * ipg: fix jumbo frame compilation + * ipg: use NULL, not zero, for pointers + * [netdrvr] 3c59x: remove irqs_disabled warning from local_bh_enable + * [netdrvr] netxen: fix netxen_pci_tbl[] breakage + * e100: Do pci_dma_sync after skb_alloc for proper operation on ixp4xx + * e1000: only enable TSO6 via ethtool when using correct hardware + * [netdrvr] Fix IOMMU overflow checking in s2io.c + * qla3xxx: Hold RTNL while calling dev_close() + * Hold RTNL while calling dev_close() + * sata_uli: hardreset is broken + * rt2x00: Fix lock dependency errror + * prism: islpci_eth.c endianness fix + * mac80211: fix an oops in several failure paths in key allocation + * firewire: fw-sbp2: fix parsing of logical unit directories + * kbuild: fix a.out.h export to userspace with O= build. + * Ensure interrupted recovery completed properly (v1 metadata plus + bitmap) + * Don't acknowlege that stripe-expand is complete until it really is. + * Fix error paths if md_probe fails. + * hamradio: remove unused variable + * tcp: calculate tcp_mem based on low memory instead of all memory + * tcp: fix for splice receive when used with software LRO + * af_unix: fix 'poll for write'/connected DGRAM sockets + * netdevice: Fix typo of dev_unicast_add() comment + * pkt_sched: ERR_PTR() ususally encodes an negative errno, not positive. + * pkt_sched: Remove CONFIG_NET_SCH_RR + * include/linux/netdevice.h: don't export MAX_HEADER to userspace + * tcp: /proc/net/tcp rto,ato values not scaled properly (v2) + * netlink: Fix some doc comments in net/netlink/attr.c + * CONNECTOR: add a proc entry to list connectors + * inet fragments: fix race between inet_frag_find and + inet_frag_secret_rebuild + * net/inet_lro: remove setting skb->ip_summed when not LRO-able + * netlabel: Fix a problem when dumping the default IPv6 static labels + * ipv6 route: Convert rt6_device_match() to use RT6_LOOKUP_F_xxx flags. + * sched: fix cpu hotplug + * Fix and clean top .gitignore + * x86: fix cpu hotplug crash + * ptrace GET/SET FPXREGS broken + * Input: add KEY_MEDIA_REPEAT definition + * Input: fix locking in force-feedback core + * [ARM] 5131/1: Annotate platform_secondary_init with trace_hardirqs_off + * ide: fix /proc/ide/ide?/mate reporting + * netfilter: nf_conntrack_tcp: fixing to check the lower bound of valid + ACK + * textsearch: fix Boyer-Moore text search bug + * hostap: don't report useless WDS frames by default + * hostap: fix sparse warnings + * mac80211: don't accept WEP keys other than WEP40 and WEP104 + * V4L/DVB (8145a): USB Video Class driver + * [IA64] Bugfix for system with 32 cpus + * [IA64] export account_system_vtime + * sched: fix divide error when trying to configure rt_period to zero + * x86: fix NODES_SHIFT Kconfig range + * block: Fix the starving writes bug in the anticipatory IO scheduler + * Properly notify block layer of sync writes + * rcu: fix hotplug vs rcu race + * I2C: S3C2410: Check ACK on byte transmission + * I2C: S3C2410: Fixup error codes returned rom a transfer. + * I2C: S3C2410: Add MODULE_ALIAS() for s3c2440 device. + * PCI: Restrict VPD read permission to root + * powerpc/bootwrapper: update for initrd with simpleImage + * i2c: Documentation: fix device matching description + * i2c: Fix bad hint about irqs in i2c.h + * powerpc/legacy_serial: Bail if reg-offset/shift properties are present + * powerpc/mpc5200: Fix lite5200b suspend/resume + * ipv4: fix sysctl documentation of time related values + * net-sched: change tcf_destroy_chain() to clear start of filter list + * net-sched: fix filter destruction in atm/hfsc qdisc destruction + * netlink: Unneeded local variable + * net: Tyop of sk_filter() comment + * netdevice: Fix wrong string handle in kernel command line parsing + * net: fib_rules: fix error code for unsupported families + * dm crypt: use cond_resched + * V4L/DVB (8178): uvc: Fix compilation breakage for the other drivers, if + uvc is selected + * PCI: Limit VPD read/write lengths for Broadcom 5706, 5708, 5709 rev. + * PCI: acpiphp: cleanup notify handler on all root bridges + * drivers/input/ff-core.c needs + * DRM/i915: only use tiled blits on 965+ + * tty: Fix inverted logic in send_break + * x86: fix Intel Mac booting with EFI + * arch/x86/mm/init_64.c: early_memtest(): fix types + * 9p: fix O_APPEND in legacy mode + * slub: Do not use 192 byte sized cache if minimum alignment is 128 byte + * Do not overwrite nr_zones on !NUMA when initialising zlcache_ptr + * [MIPS] IP32: Fix unexpected irq 71 + * [MIPS] IP22: Fix crashes due to wrong L1_CACHE_BYTES + * [MIPS] cevt-txx9: Reset timer counter on initialization + * hrtimer: prevent migration for raising softirq + * svcrpc: fix handling of garbage args + * OHCI: Fix problem if SM501 and another platform driver is selected + * USB: fix cdc-acm resume() + * USB: ehci - fix timer regression + * USB: ohci - record data toggle after unlink + * USB: mass storage: new id for US_SC_CYP_ATACB + * sisusbvga: Fix oops on disconnect. + * USB: New device ID for ftdi_sio driver + * USB: fix interrupt disabling for HCDs with shared interrupt handlers + * USB: don't lose disconnections during suspend + * USB: another option device id + * USB: add a pl2303 device id + * USB: fix Oops on loading ipaq module since 2.6.26 + * USB: adding comment for ipaq forcing number of ports + * [MIPS] Fix bug in atomic_sub_if_positive. + * xen: fix address truncation in pte mfn<->pfn conversion + * sata_sil24: add DID for another adaptec flavor + * ahci: always clear all bits in irq_stat + * libata-sff: improve HSM violation reporting + * sata_mv: safer logic for limit_warnings + * Update maintainers for powerpc + * Christoph has moved + * mm: dirty page accounting vs VM_MIXEDMAP + * rtc: rtc_read_alarm() handles wraparound + * firmware: fix the request_firmware() dummy + * serial: fix serial_match_port() for dynamic major tty-device numbers + * get_user_pages(): fix possible page leak on oom + * rtc-x1205: Fix alarm set + * rtc: fix CMOS time error after writing /proc/acpi/alarm + * pci: VT3336 can't do MSI either + * Miguel Ojeda has moved + * ext3: add missing unlock to error path in ext3_quota_write() + * ext4: add missing unlock to an error path in ext4_quota_write() + * reiserfs: add missing unlock to an error path in reiserfs_quota_write() + * ecryptfs: remove unnecessary mux from ecryptfs_init_ecryptfs_miscdev() + * lib: taint kernel in common report_bug() WARN path. + * gpio: pca953x (i2c) handles max7310 too + * fsl_diu_fb: fix build with CONFIG_PM=y, plus fix some warnings + * Update taskstats-struct document for scaled time accounting + * cciss: fix regression that no device nodes are created if no logical + drives are configured. + * delay accounting: maintainer update + * Doc*/kernel-parameters.txt: fix stale references + * hdaps: add support for various newer Lenovo thinkpads + * mn10300: export certain arch symbols required to build allmodconfig + * mn10300: provide __ucmpdi2() for MN10300 + * Introduce rculist.h + * man-pages is supported + * ntfs: update help text + * add kernel-doc for simple_read_from_buffer and memory_read_from_buffer + * w100fb: do not depend on SHARPSL + * w100fb: add 80 MHz modeline + * MFD maintainer + * cgroups: document the effect of attaching PID 0 to a cgroup + * spi: fix the read path in spidev + * doc: doc maintainers + * security: filesystem capabilities: fix fragile setuid fixup code + * security: filesystem capabilities: fix CAP_SETPCAP handling + * Alpha Linux kernel fails with inconsistent kallsyms data + * cpusets: document proc status cpus and mems allowed lists + * MAINTAINERS: update the email address of Andreas Dilger + * cciss: read config to obtain max outstanding commands per controller + * olpc: sdhci: add quirk for the Marvell CaFe's vdd/powerup issue + * olpc: sdhci: add quirk for the Marvell CaFe's interrupt timeout + * cpumask: introduce new APIs + * mm: switch node meminfo Active & Inactive pages to Kbytes + * Update MAINTAINERS file for the TPM device driver + * devcgroup: fix odd behaviour when writing 'a' to devices.allow + * doc: document the relax_domain_level kernel boot argument + * mmc: don't use DMA on newer ENE controllers + * mempolicy: mask off internal flags for userspace API + * x86 ACPI: normalize segment descriptor register on resume + * x86 ACPI: fix resume from suspend to RAM on uniprocessor x86-64 + * softlockup: print a module list on being stuck + * ide: fix hwif->gendev refcounting + * ide: ide_unregister() warm-plug bugfix + * ide: ide_unregister() locking bugfix + * ahci: give another shot at clearing all bits in irq_stat + * Fix clear_refs_write() use of struct mm_walk + * Move _RET_IP_ and _THIS_IP_ to include/linux/kernel.h + * Fix pagemap_read() use of struct mm_walk + * Linux 2.6.26-rc9 + * Revert "USB: don't explicitly reenable root-hub status interrupts" + * Revert "PCI: Correct last two HP entries in the bfsort whitelist" + * iwlwifi: fix incorrect 5GHz rates reported in monitor mode + * iwlwifi: drop skb silently for Tx request in monitor mode + * libertas: support USB persistence on suspend/resume (resend) + * tcp: net/ipv4/tcp.c needs linux/scatterlist.h + * tcp: fix a size_t < 0 comparison in tcp_read_sock + * bridge: fix use-after-free in br_cleanup_bridges() + * Add missing skb->dev assignment in Frame Relay RX code + * forcedeth: fix lockdep warning on ethtool -s + * ehea: fix might sleep problem + * ehea: add MODULE_DEVICE_TABLE + * ehea: fix race condition + * ehea: Access iph->tot_len with correct endianness + * pasemi_mac: Access iph->tot_len with correct endianness + * ibm_newemac: Fixes kernel crashes when speed of cable connected changes + * ibm_newemac: Fixes entry of short packets + * fs_enet: restore promiscuous and multicast settings in restart() + * can: add sanity checks + * x86: KVM guest: Add memory clobber to hypercalls + * KVM: IOAPIC: Fix level-triggered irq injection hang + * [SCSI] erase invalid data returned by device + * pxamci: fix byte aligned DMA transfers + * vsprintf: split out '%s' handling logic + * vsprintf: split out '%p' handling logic + * vsprintf: add infrastructure support for extended '%p' specifiers + * vsprintf: add support for '%pS' and '%pF' pointer formats + * powerpc: Fix unterminated of_device_id array in legacy_serial.c + * [UML] fix gcc ICEs and unresolved externs + * ocfs2/dlm: Fixes oops in dlm_new_lockres() + * hostap_cs: correct poor NULL checks in suspend/resume routines + * drivers/net/wireless/iwlwifi/iwl-3945.c Fix type issue on 64bit + * mac80211: move netif_carrier_on to after + ieee80211_bss_info_change_notify + * mac80211: Only flush workqueue when last interface was removed + * zd1211rw: add ID for AirTies WUS-201 + * ssb-pcicore: Fix IRQ-vector init on embedded devices + * mac80211: don't report selected IBSS when not found + * crypto: tcrypt - Fix memory leak in test_cipher + * sctp: Mark the tsn as received after all allocations finish + * [S390] protect _PAGE_SPECIAL bit against mprotect + * irda: via-ircc proper dma freeing + * irda: New device ID for nsc-ircc + * irda: Fix netlink error path return value + * [SCSI] mptspi: fix oops in mptspi_dv_renegotiate_work() + * Correct hash flushing from huge_ptep_set_wrprotect() + * ide: add __ide_default_irq() inline helper + * palm_bk3710: fix IDECLK period calculation + * it8213: fix return value in it8213_init_one() + * [MIPS] Atlas, decstation: Fix section mismatches triggered by + defconfigs + * [MIPS] Fix 32bit kernels on R4k with 128 byte cache line size + * NFS: Fix readdir cache invalidation + * SUNRPC: Fix a double-free in rpcbind + * SUNRPC: Fix an rpcbind breakage for the case of IPv6 lookups + * reiserfs: discard prealloc in reiserfs_delete_inode + * Fix broken fix for fsl-diu-db + * RDMA/cxgb3: Fix regression caused by class_device -> device conversion + * ipv6: fix race between ipv6_del_addr and DAD timer + * sctp: Add documentation for sctp sysctl variable + * kernel/printk.c: Made printk_recursion_bug_msg static. + * powerpc: Add missing reference to coherent_dma_mask + * rc80211_pid: Fix fast_start parameter handling + * rt2x00: Disable synchronization during initialization + * zd1211rw: stop beacons on remove_interface + * libertas: fix memory alignment problems on the blackfin + * netfilter: nf_conntrack_tcp: fix endless loop + * netfilter: nf_nat_snmp_basic: fix a range check in NAT for SNMP + * md: ensure all blocks are uptodate or locked when syncing + * sched: fix cpu hotplug + * x86: fix /dev/mem compatibility under PAT + * crypto: chainiv - Invoke completion function + * ocfs2: Fix flags in ocfs2_file_lock + * kernel/kprobes.c: Made kprobe_blacklist static. + * arch/x86/kernel/.gitignore: Added vmlinux.lds to .gitignore file + because it shouldn't be tracked. + * ftrace: Documentation + * Fix PREEMPT_RCU without HOTPLUG_CPU + * sched: fix cpu hotplug, cleanup + * exec: fix stack excutability without PT_GNU_STACK + * slub: Fix use-after-preempt of per-CPU data structure + * Documentation: clarify tcp_{r,w}mem sysctl docs + * ip: sysctl documentation cleanup + * tcp: correct kcalloc usage + * ipv4: fib_trie: Fix lookup error return + * netlabel: netlink_unicast calls kfree_skb on error path by itself + * ipv6: missed namespace context in ipv6_rthdr_rcv + * xfrm: Add a XFRM_STATE_AF_UNSPEC flag to xfrm_usersa_info + * tun: Persistent devices can get stuck in xoff state + * tpm: add Intel TPM TIS device HID + * rapidio: fix device reference counting + * Fix name of Russell King in various comments + * rtc: fix reported IRQ rate for when HPET is enabled + * libata-acpi: filter out DIPM enable + * Added Targa Visionary 1000 IDE adapter to pata_sis.c + * libata-acpi: don't call sleeping function from invalid context + * Fix reference counting race on log buffers + * [SCSI] ipr: Fix HDIO_GET_IDENTITY oops for SATA devices + * IPMI: return correct value from ipmi_write + * x86: fix ldt limit for 64 bit + * [SCSI] fusion: default MSI to disabled for SPI and FC controllers + * [SCSI] bsg: fix oops on remove + * drivers/char/pcmcia/ipwireless/hardware.c fix resource leak + * drivers/isdn/i4l/isdn_common.c fix small resource leak + * fbdev: bugfix for multiprocess defio + * serial8250: sanity check nr_uarts on all paths. + * ov7670: clean up ov7670_read semantics + * rtc-fm3130: fix chip naming + * rtc-pcf8563: add chip id + * OProfile kernel maintainership changes + * frv: fix irqs_disabled() to return an int, not an unsigned long + * cifs: fix inode leak in cifs_get_inode_info_unix + * cifs: fix wksidarr declaration to be big-endian friendly + * cpusets, hotplug, scheduler: fix scheduler domain breakage + * Documentation/HOWTO: correct wrong kernel bugzilla FAQ URL + * devcgroup: always show positive major/minor num + * devcgroup: fix permission check when adding entry to child cgroup + * Linux 2.6.26 + + -- Ben Collins Mon, 14 Jul 2008 13:41:50 -0400 + +linux (2.6.26-3.9) intrepid; urgency=low + + * abi: Add dca and ioatdma to modules.ignore + + [ 2.6.26-3.8 ] + + [ Ben Collins ] + + * ubuntu: Add heci driver 3.2.0.24 + * ubuntu: Add heci to kconfig/kbuild + * config: Enable heci module on all flavours + * dm-bbr: Update to get it to compile with 2.6.26 + * config: Enable dm-bbr + * ubuntu: Add some media drivers + * config: Enable misc media drivers + * udeb: Switch to uvesafb in fb-modules + * abi: Add more modules to ignore (known) + + [ 2.6.26-3.7 ] + + [Amit Kucheria] + + * SAUCE: make fc transport removal of target configurable + - LP: #163075 + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + + [Ben Collins] + + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: irda: Default to dongle type 9 on IBM hardware + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: version: Implement version_signature proc file. + * build: Cleanup arches + * build: Remove remnants of unused binary-custom infrastructure + * build: Remove disable_d_i (not needed) and cleanup ppa build stuff + * ubuntu: New modules, acer-acpi + * build: Remove -virtual, and rebuild configs + * ubuntu: Add drbd module + * acer-acpi: Fix makefile + * x86/Kconfig: Fix missing quote for ubuntu Kconfig source + * ubuntu: Add iscsitarget module + * ubuntu: Added Amiga FS driver + * ubuntu: Add squashfs driver + * ubuntu: Remove asfs (Amiga FS). Need to be in linux-ports instead + * squashfs: Move headers to real include directory + * build/configs: The Great Config Consistency Check of 2008 + * ubuntu: Move third-party includes to ubuntu/include + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Add dm-radi4-5 driver + * build: Add CONFIG_DEBUG_SECTION_MISMATCH=y to get old style warnings + from build + * ubuntu/Makefile: Fixup dm-raid4-5 and add kludge for kbuild + * squashfs: Fixes for VFS changes + * ubuntu/dm-raid4-5: Fixups for moved/renamed headers/functions in core + md + * ubuntu: Add ndiswrapper driver + * d-i: Update module listings + * build: Disable xd block device (ancient) + * ndiswrapper: Fixup makefile + * d-i: Remove efi-modules. The only module, efivars, is built-in + * build: Remove install-source, obsolete and caused build failure + * Ubuntu-2.6.26-1.3 + * build: linux-doc rules got broken when disabling html side. Fixed now. + * Ubuntu-2.6.26-1.4 + * x86: Update to -rc6 allows CONFIG_PCI_OLPC to work with PCI_GOANY + * d-i: Make virtio-ring optional (it's built-in on i386) + * Ubuntu-2.6.26-1.4 + * Ubuntu-2.6.26-1.5 + * config: Enable DVB devices + * ubuntu/aufs: Make aufs a bool config, since it needs to be built-in + * config: Build aufs into the kernels + * build: Fix arguments passed to link-headers script + * config: Disable early printk + * d-i: Move isofs to storage-core and kill st (scsi tape) from list + * config: Enable non-promiscuous access to /dev/mem + * x86: Add option to disable decompression info messages + * config: Enable no-bz-chatter config options + * build: Re-add linux-source package + * d-i: Re-add socket-modules. Accidentally removed + - LP: #241295 + * Ubuntu-2.6.26-2.6 + * Use makedumpfile to generate a vmcoreinfo file. + * build: Build-Depend on makedumpfile for vmcoreinfo generation + * build: Remove debug print from git-ubuntu-log + * Updated configs for -rc7 + * build: postinst, do not call depmod with -F + * config: Enable rtc-cmos as a built-in driver. + * control: Provide ndiswrapper-modules-1.9 + * build: Generate vmcoreinfo in image build for crashdumps without debug + image + * config: Disable vesafb, since we'll prefer uvesafb + * build: Copy uvesafb module to initrd mod directory + * abi-check: New, more robust script + * config: Enable heap randomization by default + * abi-check: Cleanup output and call with perl (not $SHELL) + * abi: Ignore missing vesafb (known) + * config: Disable pcspkr (in favor of snd-pcsp) + * swap: Add notify_swap_entry_free callback for compcache + * compcache: Added ram backed compressed swap module + * ubuntu: Enable kbuild and kconfig for compcache + * config: Enable compcache and tlsf allocator as modules + * config: Updated for -rc8. Disables XEN on i386 + * config: Switch i386-server to 64G, enable PAE, 64-bit res, and XEN + * ubuntu: Add misc drivers from hardy lum + * ubuntu: Enable build of misc/ subdir + * config: Enable misc drivers + * aufs: Fix warning about single non-string-literal arg to printf style + function + * drivers: Remove some duplicate device entries in various modules + * config: Disable some duplicate drivers + * keyspan: Remove duplicate device ID's + * check-aliases: Cleanup output, and fix rolling checks + * ubuntu: Disable dm-bbr for now + * dm-bbr: First cut at forward portiong. Still needs work. + * ubuntu: Disable dm-bbr in kbuild/kconfig + + [Chuck Short] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + - LP: #175834 + * SAUCE: [USB]: add ASUS LCM to the blacklist + + [Colin Ian King] + + * SAUCE: airprime.c supports more devices + - LP: #208250 + * SAUCE: Enable speedstep for sonoma processors. + - LP: #132271 + * Add dm-loop + * Add dm-loop BOM + + [Kyle McMartin] + + * SAUCE: fix orinoco_cs oops + + [Mario Limonciello] + + * SAUCE: Enable Reset and SCO workaround on Dell 410 BT adapter + + [Matthew Garrett] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [Phillip Lougher] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [Stefan Bader] + + * SAUCE: Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: Always use SCO protocol (disable eSCO support) Bug: #39414 + * SAUCE: mmc: Increase power_up deleay to fix TI readers OriginalAuthor: + Pascal Terjan Bug: #137686 + * SAUCE: Add blacklist support to fix Belkin bluetooth dongle. Bug: + #140511 + * SAUCE: Lower warning level of pci resource allocation messages. Bug: + 159241 + * SAUCE: Lower message level for PCI memory and I/O allocation. + - LP: #159241 + * Modify log generation to catch bug numbers when adding with git-am. + + [Tim Gardner] + + * Added the debian directory. Ignore: yes + * Add support for UBUNTUINCLUDE Ignore: yes + * LUM headers go in /usr/src Ignore: yes + * First pass at 2.6.25 configs Ignore: yes + * i386 -generic builds. Ignore: yes + * SAUCE: Increase CONFIG_IDE_MAX_HWIFS to 8 (from 4) + * SAUCE: Add extra headers to linux-libc-dev OriginalAuthor: Soren Hansen + OriginalLocation: + https://lists.ubuntu.com/archives/kernel-team/2007-November/001891.html + * Set CONFIG_DEVKMEM=n Ignore: yes + * Enabled ALSA and CGROUPS for i386 Ignore: yes + * Enabled amd64 configs. Ignore: yes + * CONFIG_STANDALONE=n Ignore: yes + * CONFIG_BLK_DEV_4DRIVES=n for i386 Ignore: yes + * CONFIG: CONFIG_DEFAULT_RELATIME=y for all flavours. Ignore: yes + * Set CONFIG_EDD_OFF=y Ignore: yes + * SAUCE: Blacklist Bluetooth Dell Wireless 370 for SCO MTU + OriginalAuthor: Mario Limonciello Bug: + #209715 + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: frame buffer regression - screen blank except for blinking + cursor after fbcon vtswitch OriginalAuthor: Matthew Garrett + Bug: #201591 + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + OriginalAuthor: Klaus S. Madsen + OriginalAuthor: Chuck Short + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: orinoco_cs.ko missing + * Set CONFIG_FB_VESA=m for i386/amd64 Ignore: yes + * Set CONFIG_PM_DISABLE_CONSOLE=y for all flavours Ignore: yes + * Thorough review of amd64 -generic config Ignore: yes + * Build PPA packages for Hardy until the Intrepid archive is opened. + * Deleted obsolete flavours Ignore: yes + * Don't build docs for PPA Ignore: yes + * Build all standard packages in PPA. Ignore: yes + * Remove duplicate USB ids + * SAUCE: DVB-USB UMT-010 driver oops on install Bug: #115284 + * Update configs after rebase to 2.6.26-rc1 Ignore: yes + * Update configs after rebase Ignore: yes + * Disable V4L until the build issues get ironed out. Ignore: yes + * Update configs after rebase. Ignore: yes + * Another device enable pass Ignore: yes + * Update configs after merge. Ignore: yes + * SAUCE: fn key doesn't work in hardy with macbook pro fourth generation + (4,1) + - LP: #207127 + * Enabled CONFIG_CIFS_DFS_UPCALL=y and CONFIG_CIFS_UPCALL=y + - LP: #236830 + + [Upstream Kernel Changes] + + * Revert "[WATCHDOG] hpwdt: Add CFLAGS to get driver working" + * mac80211: detect driver tx bugs + * hwmon: (lm85) Fix function RANGE_TO_REG() + * hwmon: (adt7473) Initialize max_duty_at_overheat before use + * hwmon: Update the sysfs interface documentation + * hwmon: (abituguru3) Identify Abit AW8D board as such + * hwmon: (w83791d) new maintainer + * hwmon: (abituguru3) update driver detection + * hwmon: (lm75) sensor reading bugfix + * ipv6: Remove options header when setsockopt's optlen is 0 + * ipv6: Drop packets for loopback address from outside of the box. + * sched: rt: dont stop the period timer when there are tasks wanting to + run + * sched: fix wait_for_completion_timeout() spurious failure under heavy + load + * x86: fix NULL pointer deref in __switch_to + * xen: Use wmb instead of rmb in xen_evtchn_do_upcall(). + * xen: mask unwanted pte bits in __supported_pte_mask + * xen: don't drop NX bit + * sched: refactor wait_for_completion_timeout() + * Ext4: Fix online resize block group descriptor corruption + * [IA64] SN2: security hole in sn2_ptc_proc_write + * alpha: fix module load failures on smp (bug #10926) + * alpha: link failure fix + * alpha: fix compile failures with gcc-4.3 (bug #10438) + * alpha: resurrect Cypress IDE quirk + * pppoe: warning fix + * sctp: Make sure N * sizeof(union sctp_addr) does not overflow. + * netns: Don't receive new packets in a dead network namespace. + * Add return value to reserve_bootmem_node() + * Slab: Fix memory leak in fallback_alloc() + * Fix performance regression on lmbench select benchmark + * ALSA: aw2 - Fix Oops at initialization + * ALSA: sb - Fix wrong assertions + * futexes: fix fault handling in futex_lock_pi + * IB/mthca: Clear ICM pages before handing to FW + * tty_driver: Update required method documentation + * removed unused var real_tty on n_tty_ioctl() + * Fix ZERO_PAGE breakage with vmware + * mm: fix race in COW logic + * NFS: Reduce the NFS mount code stack usage. + * NFS: Fix filehandle size comparisons in the mount code + * NFS: nfs_updatepage(): don't mark page as dirty if an error occurred + * alpha: fix compile error in arch/alpha/mm/init.c + * KVM: Fix race between timer migration and vcpu migration + * KVM: close timer injection race window in __vcpu_run + * KVM: MMU: Fix rmap_write_protect() hugepage iteration bug + * KVM: MMU: large page update_pte issue with non-PAE 32-bit guests + (resend) + * KVM: MMU: Fix oops on guest userspace access to guest pagetable + * KVM: ioapic: fix lost interrupt when changing a device's irq + * KVM: VMX: Fix host msr corruption with preemption enabled + * [GFS2] BUG: unable to handle kernel paging request at ffff81002690e000 + * xen: remove support for non-PAE 32-bit + * kgdb: documentation update - remove kgdboe + * kgdb: sparse fix + * [IA64] Fix boot failure on ia64/sn2 + * [IA64] Handle count==0 in sn2_ptc_proc_write() + * [IA64] Eliminate NULL test after alloc_bootmem in iosapic_alloc_rte() + * [GFS2] fix gfs2 block allocation (cleaned up) + * x86: Add structs and functions for paravirt clocksource + * x86: Make xen use the paravirt clocksource structs and functions + * KVM: Make kvm host use the paravirt clocksource structs + * x86: KVM guest: Use the paravirt clocksource structs and functions + * KVM: Remove now unused structs from kvm_para.h + * enable bus mastering on i915 at resume time + * Linux 2.6.26-rc8 + * # Ubuntu external driver commit. + * # Ubuntu commit template. + + -- Ben Collins Sat, 21 Jun 2008 09:05:15 -0400 + +linux (2.6.26-2.6) intrepid; urgency=low + + [Ben Collins] + + * Revert "SAUCE: Export symbols for aufs (in lum) (not needed) + * config: Enable DVB devices + * ubuntu/aufs: Make aufs a bool config, since it needs to be built-in + * config: Build aufs into the kernels + * build: Fix arguments passed to link-headers script + * config: Disable early printk + * d-i: Move isofs to storage-core and kill st (scsi tape) from list + * config: Enable non-promiscuous access to /dev/mem + * x86: Add option to disable decompression info messages + * config: Enable no-bz-chatter config options + * build: Re-add linux-source package + * d-i: Re-add socket-modules. Accidentally removed + - LP: #241295 + + [Colin Ian King] + + * Add dm-loop + + [Tim Gardner] + + * Revert "SAUCE: USB bluetooth device 0x0e5e:0x6622 floods errors to + syslog (merged upstream) + + -- Ben Collins Mon, 16 Jun 2008 10:56:01 -0400 + +linux (2.6.26-1.5) intrepid; urgency=low + + * d-i: Make virtio-ring optional (it's built-in on i386) + * Rebased on 2.6.26-rc6 + + [Ubuntu-2.6.26-1.4 Changes below] + + * build: linux-doc rules got broken when disabling html side. Fixed now. + + [Ubuntu-2.6.26-1.3 Changes below] + + * build: Remove install-source, obsolete and caused build failure + + [Ubuntu-2.6.26-1.2 Changes below] + + * Remove efi-modules from d-i module list (efivars is built-in). Caused a + build failure. + * Patch to arch/x86/xen/time.c to remove __divdi3 usage (build failure on + i386). + + [Ubuntu-2.6.26-1.1 Changes below] + + [Amit Kucheria] + + * SAUCE: make fc transport removal of target configurable + * SAUCE: Add AGP support for Radeon Mobility 9000 chipset + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + + [Ben Collins] + + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: irda: Default to dongle type 9 on IBM hardware + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: version: Implement version_signature proc file. + * build: Remove remnants of unused binary-custom infrastructure + * mmc_block: Fix bad allocation on 64-bit (zero len array) + * ubuntu: New modules, acer-acpi + * build: Remove -virtual, and rebuild configs + * ubuntu: Add drbd module + * ubuntu: Add iscsitarget module + * ubuntu: Add squashfs driver + * build/configs: The Great Config Consistency Check of 2008 + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Add dm-radi4-5 driver + * build: Add CONFIG_DEBUG_SECTION_MISMATCH=y to get old style warnings + from build + * squashfs: Fixes for VFS changes + * ubuntu/dm-raid4-5: Fixups for moved/renamed headers/functions in core + md + * ubuntu: Add ndiswrapper driver + * d-i: Update module listings + + [Chuck Short] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + * SAUCE: [USB]: add ASUS LCM to the blacklist + + [Colin Ian King] + + * SAUCE: Enable speedstep for sonoma processors. + * SAUCE: airprime.c supports more devices + + [Kyle McMartin] + + * SAUCE: fix orinoco_cs oops + + [Mario Limonciello] + + * SAUCE: Enable Reset and SCO workaround on Dell 410 BT adapter + + [Matthew Garrett] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [Phillip Lougher] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [Stefan Bader] + + * SAUCE: Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: Always use SCO protocol (disable eSCO support) Bug: #39414 + * SAUCE: mmc: Increase power_up deleay to fix TI readers + * SAUCE: Add blacklist support to fix Belkin bluetooth dongle. + * SAUCE: Lower warning level of pci resource allocation messages. + * SAUCE: Lower message level for PCI memory and I/O allocation. + - LP: #159241 + * Modify log generation to catch bug numbers when adding with git-am. + + [Tim Gardner] + + * SAUCE: hdaps module does not load on Thinkpad T61P + * SAUCE: Add extra headers to linux-libc-dev + * SAUCE: Export symbols for aufs (in lum). + * SAUCE: USB bluetooth device 0x0e5e:0x6622 floods errors to syslog + * SAUCE: Blacklist Bluetooth Dell Wireless 370 for SCO MTU + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: frame buffer regression - screen blank except for blinking + cursor after fbcon vtswitch + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: Modualrize vesafb + * SAUCE: DVB-USB UMT-010 driver oops on install + * SAUCE: fn key doesn't work in hardy with macbook pro fourth generation + (4,1) + - LP: #207127 + + -- Ben Collins Wed, 11 Jun 2008 05:28:35 -0400 --- linux-2.6.35.orig/debian.master/NOTES +++ linux-2.6.35/debian.master/NOTES @@ -0,0 +1,4 @@ +eSCO patch removed. Replaced upstream with a disable_esco module parm. +airprime: Module gone, use option driver instead +AppArmor: Patch is all there and ported. Ooops when enabled, so default + off (still can be enabled apparmor=1) --- linux-2.6.35.orig/debian.master/control.stub +++ linux-2.6.35/debian.master/control.stub @@ -0,0 +1,585 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.8.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, binutils-dev, rsync, libdw-dev +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Build-Conflicts: findutils (= 4.4.1-1ubuntu1) +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-maverick.git + +Package: linux-source-2.6.35 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-2.6 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 2.6.35 with Ubuntu patches + This package provides the source code for the Linux kernel version + 2.6.35. + . + This package is mainly meant for other packages to use, in order to build + custom flavours. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-2.6 +Replaces: linux-doc-2.6 +Description: Linux kernel specific documentation for version 2.6.35 + This package provides the various documents in the 2.6.35 kernel + Documentation/ subdirectory. These document kernel subsystems, APIs, device + drivers, and so on. See + /usr/share/doc/linux-doc/00-INDEX for a list of what is + contained in each file. + +Package: linux-tools-common +Architecture: all +Section: admin +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel specific tools for version 2.6.35 + This package provides the architecture independent parts for kernel + version locked tools in the 2.6.35 kernel source. + +Package: linux-headers-2.6.35-23 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-2.6 +Description: Header files related to Linux kernel version 2.6.35 + This package provides kernel header files for version 2.6.35, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc armel +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. They are NOT meant to be used to build third-party modules for + your kernel. Use linux-headers-* packages for that. + +Package: linux-tools-2.6.35-23 +Architecture: i386 amd64 powerpc armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel tools for version 2.6.35-23 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.35-23 on + DESC. + + +Package: linux-image-2.6.35-23-generic +Architecture: i386 amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86/x86_64 + This package provides kernel header files for version 2.6.35 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86/x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-generic-pae +Architecture: i386 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86 + This package contains the Linux kernel image for version 2.6.35 on + x86. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward 32 bit desktop systems with more then 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86 + This package provides kernel header files for version 2.6.35 on + x86. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86 + This package provides a kernel debug image for version 2.6.35 on + x86. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-omap +Architecture: armel +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on TI OMAP3-based systems + This package contains the Linux kernel image for version 2.6.35 on + TI OMAP3-based systems. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on TI OMAP3-based systems + This package provides kernel header files for version 2.6.35 on + TI OMAP3-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-omap-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on TI OMAP3-based systems + This package provides a kernel debug image for version 2.6.35 on + TI OMAP3-based systems. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.35 on + 32-bit PowerPC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 32-bit PowerPC + This package provides kernel header files for version 2.6.35 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 32-bit PowerPC + This package provides a kernel debug image for version 2.6.35 on + 32-bit PowerPC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc64-smp +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.35 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.35 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc64-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.35 on + 64-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc-smp +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.35 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.35 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.35 on + 32-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-server +Architecture: amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, kvm-api-4, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Server processors. + . + Geared toward 64 bit server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-server meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86_64 + This package provides kernel header files for version 2.6.35 on + x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-server-dbgsym +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-versatile +Architecture: armel +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on Versatile-based systems + This package contains the Linux kernel image for version 2.6.35 on + Versatile-based systems. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Versatile processors. + . + PB, AB, Qemu, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-versatile meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on Versatile-based systems + This package provides kernel header files for version 2.6.35 on + Versatile-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-versatile-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on Versatile-based systems + This package provides a kernel debug image for version 2.6.35 on + Versatile-based systems. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-virtual +Architecture: i386 amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86/x86_64 + This package provides kernel header files for version 2.6.35 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86/x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. --- linux-2.6.35.orig/debian.master/control +++ linux-2.6.35/debian.master/control @@ -0,0 +1,585 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.8.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, binutils-dev, rsync, libdw-dev +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Build-Conflicts: findutils (= 4.4.1-1ubuntu1) +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-maverick.git + +Package: linux-source-2.6.35 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-2.6 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 2.6.35 with Ubuntu patches + This package provides the source code for the Linux kernel version + 2.6.35. + . + This package is mainly meant for other packages to use, in order to build + custom flavours. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-2.6 +Replaces: linux-doc-2.6 +Description: Linux kernel specific documentation for version 2.6.35 + This package provides the various documents in the 2.6.35 kernel + Documentation/ subdirectory. These document kernel subsystems, APIs, device + drivers, and so on. See + /usr/share/doc/linux-doc/00-INDEX for a list of what is + contained in each file. + +Package: linux-tools-common +Architecture: all +Section: admin +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel specific tools for version 2.6.35 + This package provides the architecture independent parts for kernel + version locked tools in the 2.6.35 kernel source. + +Package: linux-headers-2.6.35-23 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-2.6 +Description: Header files related to Linux kernel version 2.6.35 + This package provides kernel header files for version 2.6.35, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc armel +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. They are NOT meant to be used to build third-party modules for + your kernel. Use linux-headers-* packages for that. + +Package: linux-tools-2.6.35-23 +Architecture: i386 amd64 powerpc armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel tools for version 2.6.35-23 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.35-23 on + DESC. + + +Package: linux-image-2.6.35-23-generic +Architecture: i386 amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86/x86_64 + This package provides kernel header files for version 2.6.35 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86/x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-generic-pae +Architecture: i386 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86 + This package contains the Linux kernel image for version 2.6.35 on + x86. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward 32 bit desktop systems with more then 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86 + This package provides kernel header files for version 2.6.35 on + x86. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86 + This package provides a kernel debug image for version 2.6.35 on + x86. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-omap +Architecture: armel +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on TI OMAP3-based systems + This package contains the Linux kernel image for version 2.6.35 on + TI OMAP3-based systems. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on TI OMAP3-based systems + This package provides kernel header files for version 2.6.35 on + TI OMAP3-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-omap-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on TI OMAP3-based systems + This package provides a kernel debug image for version 2.6.35 on + TI OMAP3-based systems. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.35 on + 32-bit PowerPC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 32-bit PowerPC + This package provides kernel header files for version 2.6.35 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 32-bit PowerPC + This package provides a kernel debug image for version 2.6.35 on + 32-bit PowerPC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc64-smp +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.35 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.35 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc64-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.35 on + 64-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-powerpc-smp +Architecture: powerpc +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.35 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.35 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.35 on + 32-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-server +Architecture: amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, kvm-api-4, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Server processors. + . + Geared toward 64 bit server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-server meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86_64 + This package provides kernel header files for version 2.6.35 on + x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-server-dbgsym +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-versatile +Architecture: armel +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on Versatile-based systems + This package contains the Linux kernel image for version 2.6.35 on + Versatile-based systems. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Versatile processors. + . + PB, AB, Qemu, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-versatile meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on Versatile-based systems + This package provides kernel header files for version 2.6.35 on + Versatile-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-versatile-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on Versatile-based systems + This package provides a kernel debug image for version 2.6.35 on + Versatile-based systems. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-image-2.6.35-23-virtual +Architecture: i386 amd64 +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9 +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.35 | linux-source-2.6.35, linux-tools +Description: Linux kernel image for version 2.6.35 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.35 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.35-23-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-23, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.35 on x86/x86_64 + This package provides kernel header files for version 2.6.35 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.35-23/debian.README.gz for details. + +Package: linux-image-2.6.35-23-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.35 on x86/x86_64 + This package provides a kernel debug image for version 2.6.35 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. --- linux-2.6.35.orig/debian.master/etc/getabis +++ linux-2.6.35/debian.master/etc/getabis @@ -0,0 +1,13 @@ +repo_list=( + "http://archive.ubuntu.com/ubuntu/pool/main/l/linux" + "http://ports.ubuntu.com/ubuntu-ports/pool/main/l/linux" + "http://archive.ubuntu.com/ubuntu/pool/universe/l/linux" + "http://ports.ubuntu.com/ubuntu-ports/pool/universe/l/linux" +) + +getall armel versatile omap +getall amd64 generic server virtual +getall i386 generic generic-pae virtual + +# Ports arches and flavours. +getall powerpc powerpc powerpc-smp powerpc64-smp --- linux-2.6.35.orig/debian.master/etc/kernelconfig +++ linux-2.6.35/debian.master/etc/kernelconfig @@ -0,0 +1,7 @@ +if [ "$variant" = "ports" ]; then + archs="powerpc" + family='ports' +else + archs="amd64 i386 armel" + family='ubuntu' +fi --- linux-2.6.35.orig/debian.master/config/config.common.ubuntu +++ linux-2.6.35/debian.master/config/config.common.ubuntu @@ -0,0 +1,5051 @@ +# +# Common config options automatically generated by splitconfig.pl +# +CONFIG_3C359=m +CONFIG_3C515=m +# CONFIG_4KSTACKS is not set +CONFIG_60XX_WDT=m +CONFIG_6PACK=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_8129=y +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_9P_FS=m +# CONFIG_9P_FSCACHE is not set +CONFIG_AB3100_CORE=y +CONFIG_AB3100_OTP=m +CONFIG_AB3550_CORE=y +CONFIG_AB8500_CORE=y +CONFIG_ABX500_CORE=y +CONFIG_ABYSS=m +CONFIG_AC3200=m +CONFIG_AC97_BUS=m +# CONFIG_ACCESSIBILITY is not set +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_ACERHDF=m +CONFIG_ACER_WMI=m +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_ACPI=y +CONFIG_ACPI_AC=y +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_EINJ=m +CONFIG_ACPI_APEI_GHES=m +# CONFIG_ACPI_ASUS is not set +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_CMPC=m +CONFIG_ACPI_CONTAINER=y +# CONFIG_ACPI_CUSTOM_DSDT is not set +CONFIG_ACPI_CUSTOM_DSDT_FILE="" +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_FAN=y +CONFIG_ACPI_HED=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_HOTPLUG_MEMORY=m +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_PCI_SLOT=y +CONFIG_ACPI_POWER_METER=m +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_PROCESSOR_AGGREGATOR=m +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_SBS=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_THERMAL=y +CONFIG_ACPI_TOSHIBA=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_WMI=y +CONFIG_ACQUIRE_WDT=m +CONFIG_ACT200L_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_AD525X_DPOT=m +CONFIG_AD525X_DPOT_I2C=m +CONFIG_AD525X_DPOT_SPI=m +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_ADIS16209=m +CONFIG_ADIS16220=m +CONFIG_ADIS16240=m +CONFIG_ADIS16255=m +CONFIG_ADIS16260=m +CONFIG_ADIS16300=m +CONFIG_ADIS16350=m +CONFIG_ADIS16400=m +CONFIG_ADM8211=m +CONFIG_ADVANTECH_WDT=m +CONFIG_AEABI=y +CONFIG_AFFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_AFS_FS=m +# CONFIG_AFS_FSCACHE is not set +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_AGP_ALI=m +CONFIG_AGP_AMD=m +CONFIG_AGP_ATI=m +CONFIG_AGP_EFFICEON=m +CONFIG_AGP_INTEL=m +CONFIG_AGP_NVIDIA=m +CONFIG_AGP_SIS=m +CONFIG_AGP_SWORKS=m +CONFIG_AGP_VIA=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_AIO=y +CONFIG_AIRO=m +CONFIG_AIRO_CS=m +CONFIG_ALIGNMENT_TRAP=y +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_ALI_FIR=m +CONFIG_AMD8111_ETH=m +CONFIG_AMD_IOMMU=y +CONFIG_AMD_IOMMU_STATS=y +CONFIG_AMIGA_PARTITION=y +CONFIG_ANON_INODES=y +CONFIG_APM=m +# CONFIG_APM_ALLOW_INTS is not set +# CONFIG_APM_CPU_IDLE is not set +# CONFIG_APM_DISPLAY_BLANK is not set +# CONFIG_APM_DO_ENABLE is not set +# CONFIG_APM_IGNORE_USER_SUSPEND is not set +CONFIG_APM_POWER=m +CONFIG_APPLICOM=m +CONFIG_APRICOT=m +CONFIG_AR9170_LEDS=y +CONFIG_AR9170_USB=m +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CNS3XXX is not set +CONFIG_ARCH_CPU_PROBE_RELEASE=y +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_EBSA110 is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y +# CONFIG_ARCH_EP93XX is not set +CONFIG_ARCH_FLATMEM_ENABLE=y +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_H720X is not set +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_DEFAULT_IDLE=y +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_LOKI is not set +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_ARCH_MEMORY_PROBE=y +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_NOMADIK is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_NUC93X is not set +# CONFIG_ARCH_OMAP1 is not set +# CONFIG_ARCH_OMAP2 is not set +CONFIG_ARCH_OMAP2PLUS=y +CONFIG_ARCH_OMAP3=y +CONFIG_ARCH_OMAP3430=y +# CONFIG_ARCH_OMAP4 is not set +CONFIG_ARCH_OMAP_OTG=y +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_PNX4008 is not set +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_ARCH_PROC_KCORE_TEXT=y +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_REALVIEW is not set +CONFIG_ARCH_REQUIRE_GPIOLIB=y +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P6440 is not set +# CONFIG_ARCH_S5P6442 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_SHMOBILE is not set +CONFIG_ARCH_SPARSEMEM_ENABLE=y +# CONFIG_ARCH_STMP3XXX is not set +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +# CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_USES_GETTIMEOFFSET is not set +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_VERSATILE_PB=y +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_W90X900 is not set +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_ARCNET=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_ARCNET_COM20020_ISA=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARM=y +CONFIG_ARM_AMBA=y +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +# CONFIG_ARM_ERRATA_458693 is not set +# CONFIG_ARM_ERRATA_460075 is not set +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_THUMB=y +# CONFIG_ARM_THUMBEE is not set +CONFIG_ARM_TIMER_SP804=y +CONFIG_ARM_UNWIND=y +CONFIG_ARM_VIC=y +CONFIG_ARM_VIC_NR=2 +# CONFIG_ARPD is not set +CONFIG_ASK_IP_FIB_HASH=y +CONFIG_ASUS_LAPTOP=m +CONFIG_ASUS_OLED=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_ASYNC_RAID6_TEST=m +CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y +CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y +CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y +CONFIG_ASYNC_XOR=m +CONFIG_AT1700=m +CONFIG_AT76C50X_USB=m +CONFIG_ATA=y +CONFIG_ATAGS_PROC=y +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_ACPI=y +CONFIG_ATA_BMDMA=y +CONFIG_ATA_GENERIC=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_ATA_PIIX=y +CONFIG_ATA_SFF=y +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_DEBUGFS=y +CONFIG_ATH9K_HTC=m +CONFIG_ATH9K_HTC_DEBUGFS=y +CONFIG_ATH9K_HW=m +CONFIG_ATH_COMMON=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATL1=m +CONFIG_ATL1C=m +CONFIG_ATL1E=m +CONFIG_ATL2=m +CONFIG_ATMEL=m +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_BR2684=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_FORE200E_TX_RETRY=16 +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_LANAI=m +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +CONFIG_ATM_SOLOS=m +CONFIG_ATM_TCP=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ATP=m +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_GENERIC=y +CONFIG_AUDIT_TREE=y +CONFIG_AUFS_BDEV_LOOP=y +# CONFIG_AUFS_BRANCH_MAX_1023 is not set +CONFIG_AUFS_BRANCH_MAX_127=y +# CONFIG_AUFS_BRANCH_MAX_32767 is not set +# CONFIG_AUFS_BRANCH_MAX_511 is not set +CONFIG_AUFS_BR_FUSE=y +CONFIG_AUFS_BR_HFSPLUS=y +CONFIG_AUFS_BR_RAMFS=y +# CONFIG_AUFS_DEBUG is not set +# CONFIG_AUFS_EXPORT is not set +CONFIG_AUFS_FS=m +# CONFIG_AUFS_HNOTIFY is not set +CONFIG_AUFS_POLL=y +# CONFIG_AUFS_RDU is not set +# CONFIG_AUFS_SHWH is not set +# CONFIG_AUFS_SP_IATTR is not set +CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS_FS=m +CONFIG_AUXDISPLAY=y +CONFIG_AVERATEC_5100P=m +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_AX88796=m +# CONFIG_AX88796_93CX6 is not set +CONFIG_B43LEGACY_DEBUG=y +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +CONFIG_B43LEGACY_HWRNG=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PIO=y +# CONFIG_B43LEGACY_PIO_MODE is not set +# CONFIG_B43_DEBUG is not set +CONFIG_B43_HWRNG=y +CONFIG_B43_LEDS=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_PCI_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +CONFIG_B43_PHY_LP=y +CONFIG_B43_PIO=y +# CONFIG_B43_SDIO is not set +CONFIG_B44_PCI=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_BACKLIGHT_88PM860X=m +CONFIG_BACKLIGHT_ADP5520=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_CARILLO_RANCH=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DA903X=m +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_MAX8925=m +CONFIG_BACKLIGHT_MBP_NVIDIA=m +CONFIG_BACKLIGHT_PCF50633=m +CONFIG_BACKLIGHT_PROGEAR=m +CONFIG_BACKLIGHT_SAHARA=m +CONFIG_BACKLIGHT_WM831X=m +# CONFIG_BACKTRACE_SELF_TEST is not set +CONFIG_BASE_FULL=y +CONFIG_BASE_SMALL=0 +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_BATTERY_BQ27x00=m +CONFIG_BATTERY_DA9030=m +CONFIG_BATTERY_DS2760=m +CONFIG_BATTERY_DS2782=m +CONFIG_BATTERY_MAX17040=m +CONFIG_BATTERY_OLPC=m +CONFIG_BAYCOM_EPP=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BE2ISCSI=m +CONFIG_BE2NET=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BINARY_PRINTF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +CONFIG_BITREVERSE=y +# CONFIG_BLK_CGROUP is not set +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_COMPCACHE=m +# CONFIG_BLK_DEV_COMPCACHE_DEBUG is not set +# CONFIG_BLK_DEV_COMPCACHE_STATS is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_DM=y +CONFIG_BLK_DEV_DRBD=m +CONFIG_BLK_DEV_FD=m +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_MD=y +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_OSD=m +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_XD is not set +# CONFIG_BLK_DEV_XIP is not set +CONFIG_BLOCK=y +CONFIG_BLOCK_COMPAT=y +CONFIG_BNX2=m +CONFIG_BNX2X=m +CONFIG_BONDING=m +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_BOOT_TRACER is not set +CONFIG_BOUNCE=y +CONFIG_BPQETHER=m +CONFIG_BRANCH_PROFILE_NONE=y +CONFIG_BRIDGE=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_NFLOG=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BROADCOM_PHY=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_BT_ATH3K=m +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIVHCI=m +CONFIG_BT_HIDP=m +CONFIG_BT_L2CAP=m +# CONFIG_BT_L2CAP_EXT_FEATURES is not set +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_SCO=m +CONFIG_BUG=y +CONFIG_C101=m +CONFIG_C2PORT=m +CONFIG_C2PORT_DURAMAR_2150=m +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set +CONFIG_CAIF=m +# CONFIG_CAIF_DEBUG is not set +CONFIG_CAIF_NETDEV=m +CONFIG_CAIF_TTY=m +CONFIG_CALGARY_IOMMU=y +CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y +CONFIG_CAN=m +CONFIG_CAN_BCM=m +# CONFIG_CAN_CALC_BITTIMING is not set +# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_CAN_DEV=m +CONFIG_CAN_EMS_PCI=m +CONFIG_CAN_EMS_USB=m +CONFIG_CAN_JANZ_ICAN3=m +CONFIG_CAN_KVASER_PCI=m +CONFIG_CAN_MCP251X=m +CONFIG_CAN_PLX_PCI=m +CONFIG_CAN_PM_TRACE=y +CONFIG_CAN_RAW=m +CONFIG_CAN_SJA1000=m +CONFIG_CAN_SJA1000_ISA=m +CONFIG_CAN_SJA1000_PLATFORM=m +# CONFIG_CAN_TI_HECC is not set +CONFIG_CAN_VCAN=m +CONFIG_CAPI_AVM=y +CONFIG_CAPI_EICON=y +CONFIG_CAPI_TRACE=y +CONFIG_CARDBUS=y +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +# CONFIG_CARMINE_DRAM_CUSTOM is not set +CONFIG_CASSINI=m +CONFIG_CB710_CORE=m +# CONFIG_CB710_DEBUG is not set +CONFIG_CB710_DEBUG_ASSUMPTIONS=y +CONFIG_CC_STACKPROTECTOR=y +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +# CONFIG_CEPH_FS_PRETTYDEBUG is not set +CONFIG_CFAG12864B=m +CONFIG_CFAG12864B_RATE=20 +CONFIG_CFG80211=m +CONFIG_CFG80211_DEBUGFS=y +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_REG_DEBUG=y +CONFIG_CFG80211_WEXT=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_CPUACCT=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_MEM_RES_CTLR=y +CONFIG_CGROUP_NS=y +CONFIG_CGROUP_SCHED=y +CONFIG_CHARGER_PCF50633=m +CONFIG_CHECK_SIGNATURE=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T3_DEPENDS=y +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4_DEPENDS=y +CONFIG_CHR_DEV_OSST=m +CONFIG_CHR_DEV_SCH=m +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_ST=m +CONFIG_CICADA_PHY=y +CONFIG_CIFS=m +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_XATTR=y +CONFIG_CISS_SCSI_TAPE=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_CLS_U32_MARK=y +# CONFIG_CLS_U32_PERF is not set +CONFIG_CMDLINE="" +# CONFIG_CMDLINE_BOOL is not set +CONFIG_CNIC=m +CONFIG_CODA_FS=m +CONFIG_COMEDI_8255=m +CONFIG_COMEDI_ACL7225B=m +CONFIG_COMEDI_ADDI_APCI_035=m +CONFIG_COMEDI_ADDI_APCI_1032=m +CONFIG_COMEDI_ADDI_APCI_1500=m +CONFIG_COMEDI_ADDI_APCI_1516=m +CONFIG_COMEDI_ADDI_APCI_1564=m +CONFIG_COMEDI_ADDI_APCI_16XX=m +CONFIG_COMEDI_ADDI_APCI_2016=m +CONFIG_COMEDI_ADDI_APCI_2032=m +CONFIG_COMEDI_ADDI_APCI_2200=m +CONFIG_COMEDI_ADDI_APCI_3001=m +CONFIG_COMEDI_ADDI_APCI_3120=m +CONFIG_COMEDI_ADDI_APCI_3501=m +CONFIG_COMEDI_ADDI_APCI_3XXX=m +CONFIG_COMEDI_ADL_PCI6208=m +CONFIG_COMEDI_ADL_PCI7230=m +CONFIG_COMEDI_ADL_PCI7296=m +CONFIG_COMEDI_ADL_PCI7432=m +CONFIG_COMEDI_ADL_PCI8164=m +CONFIG_COMEDI_ADL_PCI9111=m +CONFIG_COMEDI_ADL_PCI9118=m +CONFIG_COMEDI_ADQ12B=m +CONFIG_COMEDI_ADV_PCI1710=m +CONFIG_COMEDI_ADV_PCI1723=m +CONFIG_COMEDI_ADV_PCI_DIO=m +CONFIG_COMEDI_AIO_AIO12_8=m +CONFIG_COMEDI_AIO_IIRO_16=m +CONFIG_COMEDI_AMPLC_DIO200=m +CONFIG_COMEDI_AMPLC_PC236=m +CONFIG_COMEDI_AMPLC_PC263=m +CONFIG_COMEDI_AMPLC_PCI224=m +CONFIG_COMEDI_AMPLC_PCI230=m +CONFIG_COMEDI_BOND=m +CONFIG_COMEDI_C6XDIGIO=m +CONFIG_COMEDI_CB_DAS16_CS=m +CONFIG_COMEDI_CB_PCIDAS=m +CONFIG_COMEDI_CB_PCIDAS64=m +CONFIG_COMEDI_CB_PCIDDA=m +CONFIG_COMEDI_CB_PCIDIO=m +CONFIG_COMEDI_CB_PCIMDAS=m +CONFIG_COMEDI_CB_PCIMDDA=m +CONFIG_COMEDI_CONTEC_PCI_DIO=m +CONFIG_COMEDI_DAQBOARD2000=m +CONFIG_COMEDI_DAS08=m +CONFIG_COMEDI_DAS08_CS=m +CONFIG_COMEDI_DAS16=m +CONFIG_COMEDI_DAS16M1=m +CONFIG_COMEDI_DAS1800=m +CONFIG_COMEDI_DAS6402=m +CONFIG_COMEDI_DAS800=m +# CONFIG_COMEDI_DEBUG is not set +CONFIG_COMEDI_DMM32AT=m +CONFIG_COMEDI_DT2801=m +CONFIG_COMEDI_DT2811=m +CONFIG_COMEDI_DT2814=m +CONFIG_COMEDI_DT2815=m +CONFIG_COMEDI_DT2817=m +CONFIG_COMEDI_DT282X=m +CONFIG_COMEDI_DT3000=m +CONFIG_COMEDI_DT9812=m +CONFIG_COMEDI_FC=m +CONFIG_COMEDI_FL512=m +CONFIG_COMEDI_GSC_HPDI=m +CONFIG_COMEDI_ICP_MULTI=m +CONFIG_COMEDI_II_PCI20KC=m +CONFIG_COMEDI_ISA_DRIVERS=m +CONFIG_COMEDI_JR3_PCI=m +CONFIG_COMEDI_KCOMEDILIB=m +CONFIG_COMEDI_KE_COUNTER=m +CONFIG_COMEDI_ME4000=m +CONFIG_COMEDI_ME_DAQ=m +CONFIG_COMEDI_MISC_DRIVERS=m +CONFIG_COMEDI_MITE=m +CONFIG_COMEDI_MPC624=m +CONFIG_COMEDI_MULTIQ3=m +CONFIG_COMEDI_NI_6527=m +CONFIG_COMEDI_NI_65XX=m +CONFIG_COMEDI_NI_660X=m +CONFIG_COMEDI_NI_670X=m +CONFIG_COMEDI_NI_ATMIO=m +CONFIG_COMEDI_NI_ATMIO16D=m +CONFIG_COMEDI_NI_AT_A2150=m +CONFIG_COMEDI_NI_AT_AO=m +CONFIG_COMEDI_NI_COMMON=m +CONFIG_COMEDI_NI_DAQ_700_CS=m +CONFIG_COMEDI_NI_DAQ_DIO24_CS=m +CONFIG_COMEDI_NI_LABPC=m +CONFIG_COMEDI_NI_LABPC_CS=m +CONFIG_COMEDI_NI_MIO_CS=m +CONFIG_COMEDI_NI_PCIDIO=m +CONFIG_COMEDI_NI_PCIMIO=m +CONFIG_COMEDI_NI_TIO=m +CONFIG_COMEDI_PARPORT=m +CONFIG_COMEDI_PCI_DRIVERS=m +CONFIG_COMEDI_PCL711=m +CONFIG_COMEDI_PCL724=m +CONFIG_COMEDI_PCL725=m +CONFIG_COMEDI_PCL726=m +CONFIG_COMEDI_PCL730=m +CONFIG_COMEDI_PCL812=m +CONFIG_COMEDI_PCL816=m +CONFIG_COMEDI_PCL818=m +CONFIG_COMEDI_PCM3724=m +CONFIG_COMEDI_PCM3730=m +CONFIG_COMEDI_PCMAD=m +CONFIG_COMEDI_PCMCIA_DRIVERS=m +CONFIG_COMEDI_PCMDA12=m +CONFIG_COMEDI_PCMMIO=m +CONFIG_COMEDI_PCMUIO=m +CONFIG_COMEDI_POC=m +CONFIG_COMEDI_QUATECH_DAQP_CS=m +CONFIG_COMEDI_RTD520=m +CONFIG_COMEDI_RTI800=m +CONFIG_COMEDI_RTI802=m +CONFIG_COMEDI_S526=m +CONFIG_COMEDI_S626=m +CONFIG_COMEDI_SERIAL2002=m +CONFIG_COMEDI_SKEL=m +CONFIG_COMEDI_SSV_DNP=m +CONFIG_COMEDI_TEST=m +CONFIG_COMEDI_UNIOXX5=m +CONFIG_COMEDI_USBDUX=m +CONFIG_COMEDI_USBDUXFAST=m +CONFIG_COMEDI_USB_DRIVERS=m +CONFIG_COMEDI_VMK80XX=m +CONFIG_COMMON_CLKDEV=y +# CONFIG_COMPACTION is not set +CONFIG_COMPAL_LAPTOP=m +CONFIG_COMPAT=y +CONFIG_COMPAT_BINFMT_ELF=y +# CONFIG_COMPAT_BRK is not set +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +CONFIG_COMPAT_NETLINK_MESSAGES=y +# CONFIG_COMPAT_VDSO is not set +CONFIG_COMPUTONE=m +CONFIG_CONFIGFS_FS=m +CONFIG_CONNECTOR=y +CONFIG_CONSOLE_POLL=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_CONSTRUCTORS=y +CONFIG_CONTEXT_SWITCH_TRACER=y +# CONFIG_COPS is not set +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_COSA=m +# CONFIG_CPA_DEBUG is not set +CONFIG_CPU5_WDT=m +CONFIG_CPUSETS=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y +# CONFIG_CPU_DCACHE_DISABLE is not set +CONFIG_CPU_FREQ=y +# CONFIG_CPU_FREQ_DEBUG is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_HAS_PMU=y +# CONFIG_CPU_ICACHE_DISABLE is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR=y +CONFIG_CPU_SUP_CYRIX_32=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_TRANSMETA_32=y +CONFIG_CPU_SUP_UMC_32=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_V7=y +CONFIG_CRAMFS=m +CONFIG_CRASH_DUMP=y +CONFIG_CRC16=y +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC_T10DIF=y +CONFIG_CROSS_COMPILE="" +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_AES_NI_INTEL=m +CONFIG_CRYPTO_AES_X86_64=m +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_DEV_GEODE=m +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_CRYPTO_DEV_OMAP_SHAM=m +CONFIG_CRYPTO_DEV_PADLOCK=y +CONFIG_CRYPTO_DEV_PADLOCK_AES=m +CONFIG_CRYPTO_DEV_PADLOCK_SHA=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_FPU=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_LZO=m +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_MANAGER_TESTS is not set +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_PCOMP=y +CONFIG_CRYPTO_PCRYPT=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SALSA20_586=m +CONFIG_CRYPTO_SALSA20_X86_64=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_586=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_TWOFISH_X86_64=m +CONFIG_CRYPTO_VMAC=m +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_ZLIB=m +CONFIG_CRYSTALHD=m +CONFIG_CS5535_GPIO=m +# CONFIG_CS5535_MFGPT is not set +CONFIG_CS89x0=m +CONFIG_CUSE=m +CONFIG_CXT1E1=m +CONFIG_CYCLADES=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +# CONFIG_CYZ_INTR is not set +CONFIG_DAB=y +CONFIG_DAVICOM_PHY=y +CONFIG_DCA=m +CONFIG_DCB=y +CONFIG_DCDBAS=m +CONFIG_DE2104X=m +CONFIG_DE2104X_DSL=0 +CONFIG_DE4X5=m +CONFIG_DE600=m +CONFIG_DE620=m +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_BOOT_PARAMS is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_CREDENTIALS is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_DRIVER is not set +CONFIG_DEBUG_ERRORS=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_DEBUG_FS=y +# CONFIG_DEBUG_GPIO is not set +# CONFIG_DEBUG_HIGHMEM is not set +# CONFIG_DEBUG_ICEDCC is not set +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_LIST is not set +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_NX_TEST is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_DEBUG_RODATA=y +# CONFIG_DEBUG_RODATA_TEST is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set +CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +CONFIG_DECNET=m +CONFIG_DECNET_NF_GRABULATOR=m +# CONFIG_DECNET_ROUTER is not set +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_LZO=y +# CONFIG_DEFAULT_BIC is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_HTCP is not set +# CONFIG_DEFAULT_HYBLA is not set +CONFIG_DEFAULT_IO_DELAY_TYPE=1 +# CONFIG_DEFAULT_NOOP is not set +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_SECURITY="apparmor" +CONFIG_DEFAULT_SECURITY_APPARMOR=y +# CONFIG_DEFAULT_SECURITY_DAC is not set +# CONFIG_DEFAULT_SECURITY_SELINUX is not set +# CONFIG_DEFAULT_SECURITY_SMACK is not set +# CONFIG_DEFAULT_SECURITY_TOMOYO is not set +# CONFIG_DEFAULT_SECURITY_YAMA is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_DEFAULT_VEGAS is not set +# CONFIG_DEFAULT_VENO is not set +# CONFIG_DEFAULT_WESTWOOD is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_DELL_LAPTOP=m +CONFIG_DELL_RBU=m +CONFIG_DELL_WMI=m +CONFIG_DEPCA=m +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_DEVKMEM is not set +CONFIG_DEVPORT=y +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DEV_APPLETALK=m +CONFIG_DE_AOC=y +CONFIG_DIGIEPCA=m +CONFIG_DIRECT_GBPAGES=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_DL2K is not set +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +# CONFIG_DM9000 is not set +CONFIG_DM9102=m +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set +# CONFIG_DMAR is not set +# CONFIG_DMATEST is not set +# CONFIG_DMA_API_DEBUG is not set +CONFIG_DMA_ENGINE=y +CONFIG_DMI=y +CONFIG_DMIID=y +CONFIG_DM_CRYPT=m +# CONFIG_DM_DEBUG is not set +# CONFIG_DM_DELAY is not set +# CONFIG_DM_LOG_USERSPACE is not set +CONFIG_DM_MIRROR=y +CONFIG_DM_MULTIPATH=y +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_SNAPSHOT=y +CONFIG_DM_UEVENT=y +CONFIG_DM_ZERO=m +CONFIG_DNET=m +CONFIG_DNOTIFY=y +CONFIG_DONGLE=y +CONFIG_DOUBLEFAULT=y +CONFIG_DRAGONRISE_FF=y +# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_DRM=m +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +CONFIG_DRM_I915_KMS=y +CONFIG_DRM_KMS_HELPER=m +CONFIG_DRM_MGA=m +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_NOUVEAU_BACKLIGHT=y +CONFIG_DRM_NOUVEAU_DEBUG=y +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON_KMS=y +CONFIG_DRM_SAVAGE=m +CONFIG_DRM_SIS=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_TTM=m +CONFIG_DRM_VIA=m +# CONFIG_DRM_VMWGFX is not set +CONFIG_DS1682=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +# CONFIG_DT3155_CCIR is not set +CONFIG_DTLK=m +CONFIG_DUMMY=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_DVB_AF9013=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_B2C2_FLEXCOP=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_BT8XX=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_CAPTURE_DRIVERS=y +CONFIG_DVB_CORE=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_DM1105=m +CONFIG_DVB_DRX397XD=m +CONFIG_DVB_DS3000=m +# CONFIG_DVB_DUMMY_FE is not set +CONFIG_DVB_DYNAMIC_MINORS=y +CONFIG_DVB_EC100=m +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_FIREWIRE=y +CONFIG_DVB_FIREDTV_IEEE1394=y +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_DVB_HOPPER=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_L64781=m +CONFIG_DVB_LGDT3304=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGS8GL5=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_LNBP21=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_MB86A16=m +CONFIG_DVB_MT312=m +CONFIG_DVB_MT352=m +CONFIG_DVB_NGENE=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_PLL=m +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_PT1=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_S5H1411=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_S921=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STV0297=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV6110x=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_USB=m +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_CXUSB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_VES1820=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_ZL10353=m +CONFIG_DX_SEP=m +# CONFIG_DYNAMIC_DEBUG is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_E2100=m +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +CONFIG_ECHO=m +CONFIG_ECONET=m +CONFIG_ECONET_AUNUDP=y +CONFIG_ECONET_NATIVE=y +CONFIG_ECRYPT_FS=y +CONFIG_EDAC=y +CONFIG_EDAC_AMD64=m +# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set +CONFIG_EDAC_AMD76X=m +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_E7XXX=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I3200=m +CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I7CORE=m +CONFIG_EDAC_I82860=m +CONFIG_EDAC_I82875P=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_MCE=y +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_R82600=m +CONFIG_EDAC_X38=m +CONFIG_EDD=y +CONFIG_EDD_OFF=y +CONFIG_EEEPC_LAPTOP=m +CONFIG_EEEPC_WMI=m +CONFIG_EEPROM_93CX6=m +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EEXPRESS=m +CONFIG_EEXPRESS_PRO=m +CONFIG_EFI=y +CONFIG_EFI_PARTITION=y +CONFIG_EFI_VARS=y +CONFIG_EFS_FS=m +CONFIG_EISA=y +CONFIG_EISA_NAMES=y +CONFIG_EISA_PCI_EISA=y +CONFIG_EISA_VIRTUAL_ROOT=y +CONFIG_EISA_VLB_PRIMING=y +CONFIG_EL1=m +CONFIG_EL16=m +CONFIG_EL2=m +CONFIG_EL3=m +CONFIG_ELF_CORE=y +CONFIG_ELMC=m +CONFIG_ELMC_II=m +CONFIG_ELPLUS=m +# CONFIG_EMBEDDED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENC28J60 is not set +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_ENIC=m +CONFIG_EPIC100=m +CONFIG_EPOLL=y +CONFIG_EQUALIZER=m +CONFIG_ES3210=m +CONFIG_ESI_DONGLE=m +CONFIG_ET131X=m +# CONFIG_ET131X_DEBUG is not set +CONFIG_ETH16I=m +CONFIG_ETHOC=m +CONFIG_EUROTECH_WDT=m +CONFIG_EVENTFD=y +CONFIG_EVENT_TRACING=y +CONFIG_EWRK3=m +# CONFIG_EXOFS_DEBUG is not set +CONFIG_EXOFS_FS=m +CONFIG_EXPERIMENTAL=y +CONFIG_EXPORTFS=m +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XATTR=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_DEFAULTS_TO_ORDERED=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT3_FS_XATTR=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXTRA_FIRMWARE="" +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FARSYNC=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_FS=m +# CONFIG_FAULT_INJECTION is not set +CONFIG_FB=y +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_3DFX_I2C=y +CONFIG_FB_ARC=m +CONFIG_FB_ARK=m +CONFIG_FB_ASILIANT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY128=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_BROADSHEET=m +CONFIG_FB_CARILLO_RANCH=m +CONFIG_FB_CARMINE=m +CONFIG_FB_CARMINE_DRAM_EVAL=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_CIRRUS=m +CONFIG_FB_CYBER2000=m +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_EFI=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_GX=m +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_GEODE_LX=m +CONFIG_FB_HECUBA=m +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_I810=m +# CONFIG_FB_I810_GTF is not set +CONFIG_FB_IMSTT=y +CONFIG_FB_KYRO=m +CONFIG_FB_LE80578=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MB862XX=m +CONFIG_FB_MB862XX_PCI_GDC=y +CONFIG_FB_METRONOME=m +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_N411=m +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_BACKLIGHT=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_I2C=y +CONFIG_FB_OMAP2=y +CONFIG_FB_OMAP2_DEBUG_SUPPORT=y +CONFIG_FB_OMAP2_NUM_FBS=3 +# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set +# CONFIG_FB_OMAP_LCD_VGA is not set +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_PM3=m +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_BACKLIGHT=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_I2C=y +CONFIG_FB_S3=m +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_SM501=m +CONFIG_FB_SM7XX=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +CONFIG_FB_TRIDENT=m +CONFIG_FB_UDL=m +CONFIG_FB_VGA16=m +CONFIG_FB_VIA=m +# CONFIG_FB_VIA_DIRECT_PROCFS is not set +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FB_VT8623=m +CONFIG_FB_XGI=m +CONFIG_FCOE=m +CONFIG_FCOE_FNIC=m +CONFIG_FDDI=y +CONFIG_FEALNX=m +CONFIG_FIB_RULES=y +CONFIG_FILE_LOCKING=y +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_NET=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_OHCI_DEBUG=y +# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +CONFIG_FIREWIRE_SBP2=m +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_FONT_10x18 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FONT_ACORN_8x8=y +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_SUN8x16 is not set +CONFIG_FORCEDETH=m +# CONFIG_FPE_FASTFPE is not set +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FRAME_POINTER=y +CONFIG_FRAME_WARN=1024 +CONFIG_FREEZER=y +CONFIG_FSCACHE=m +# CONFIG_FSCACHE_DEBUG is not set +CONFIG_FSCACHE_HISTOGRAM=y +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_FSCACHE_STATS=y +CONFIG_FSNOTIFY=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FTRACE=y +CONFIG_FTRACE_MCOUNT_RECORD=y +CONFIG_FTRACE_NMI_ENTER=y +# CONFIG_FTRACE_STARTUP_TEST is not set +CONFIG_FTRACE_SYSCALLS=y +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_FUNCTION_GRAPH_TRACER=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FUSE_FS=y +CONFIG_FUSION=y +CONFIG_FUSION_CTL=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_LOGGING=y +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_SAS=m +CONFIG_FUSION_SPI=m +CONFIG_FUTEX=y +CONFIG_FW_LOADER=y +CONFIG_GACT_PROB=y +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GARP=m +CONFIG_GART_IOMMU=y +# CONFIG_GCOV_KERNEL is not set +CONFIG_GENERIC_ACL=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_FIND_LAST_BIT=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_TRACER=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=y +CONFIG_GIGASET_BASE=m +# CONFIG_GIGASET_CAPI is not set +# CONFIG_GIGASET_DEBUG is not set +# CONFIG_GIGASET_DUMMYLL is not set +CONFIG_GIGASET_I4L=y +CONFIG_GIGASET_M101=m +CONFIG_GIGASET_M105=m +CONFIG_GIRBIL_DONGLE=m +CONFIG_GPIOLIB=y +CONFIG_GPIO_ADP5520=m +CONFIG_GPIO_ADP5588=m +# CONFIG_GPIO_BT8XX is not set +CONFIG_GPIO_CS5535=m +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_LANGWELL=y +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX7301=m +CONFIG_GPIO_MAX730X=m +CONFIG_GPIO_MC33880=m +CONFIG_GPIO_MCP23S08=m +CONFIG_GPIO_PCA953X_IRQ=y +# CONFIG_GPIO_PL061 is not set +CONFIG_GPIO_RDC321X=m +CONFIG_GPIO_SCH=m +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_TC35892=y +CONFIG_GPIO_TIMBERDALE=y +CONFIG_GPIO_UCB1400=y +CONFIG_GPIO_WM831X=m +CONFIG_GPIO_WM8350=m +CONFIG_GPIO_WM8994=m +CONFIG_GREENASIA_FF=y +CONFIG_HAMACHI=m +CONFIG_HAMRADIO=y +CONFIG_HANGCHECK_TIMER=m +CONFIG_HAPPYMEAL=m +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_TLS_REG=y +CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_KMEMCHECK=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ATOMIC_IOMAP=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_EARLY_RES=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FTRACE_NMI_ENTER=y +CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_IDE=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_KVM=y +CONFIG_HAVE_KVM_EVENTFD=y +CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +CONFIG_HAVE_MTD_OTP=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HDLC=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_X25=m +CONFIG_HDQ_MASTER_OMAP=m +# CONFIG_HEADERS_CHECK is not set +CONFIG_HERMES=m +CONFIG_HERMES_CACHE_FW_ON_INIT=y +# CONFIG_HERMES_PRISM is not set +CONFIG_HFSPLUS_FS=m +CONFIG_HFS_FS=m +CONFIG_HIBERNATION=y +CONFIG_HID=m +CONFIG_HIDRAW=y +CONFIG_HID_3M_PCT=m +CONFIG_HID_A4TECH=m +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CANDO=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +CONFIG_HID_EGALAX=m +CONFIG_HID_EZKEY=m +CONFIG_HID_GREENASIA=m +CONFIG_HID_GYRATION=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_KYE=m +CONFIG_HID_LOGITECH=m +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_MOSART=m +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PID=y +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_HID_SONY=m +CONFIG_HID_STANTUM=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID_THRUSTMASTER=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_WACOM=m +CONFIG_HID_WACOM_POWER_SUPPLY=y +CONFIG_HID_ZEROPLUS=m +CONFIG_HID_ZYDACRON=m +CONFIG_HIGHPTE=y +CONFIG_HIPPI=y +CONFIG_HISAX_16_0=y +CONFIG_HISAX_16_3=y +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_ASUSCOM=y +CONFIG_HISAX_AVM_A1=y +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_BKM_A4T=y +# CONFIG_HISAX_DEBUG is not set +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_ENTERNOW_PCI=y +CONFIG_HISAX_EURO=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_HFCS=y +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_HSTSAPHIR=y +CONFIG_HISAX_ISURF=y +CONFIG_HISAX_IX1MICROR2=y +CONFIG_HISAX_MAX_CARDS=8 +CONFIG_HISAX_MIC=y +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_NICCY=y +# CONFIG_HISAX_NO_KEYPAD is not set +# CONFIG_HISAX_NO_LLC is not set +# CONFIG_HISAX_NO_SENDCOMPLETE is not set +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_SPORTSTER=y +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_TELEINT=y +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_TELES_CS=m +CONFIG_HISAX_W6692=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_CS=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTESS_SV11=m +CONFIG_HOTPLUG=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_COMPAQ=m +CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_IBM=m +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HOTPLUG_PCI_SHPC=m +CONFIG_HP100=m +CONFIG_HPET=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_HPET_MMAP=y +CONFIG_HPET_TIMER=y +CONFIG_HPFS_FS=m +CONFIG_HPLAN=m +CONFIG_HPLAN_PLUS=m +CONFIG_HP_ILO=m +# CONFIG_HP_WATCHDOG is not set +CONFIG_HP_WMI=m +CONFIG_HTC_I2CPLD=y +CONFIG_HTC_PASIC3=m +CONFIG_HT_IRQ=y +CONFIG_HUGETLBFS=y +CONFIG_HVC_DRIVER=y +CONFIG_HVC_IRQ=y +CONFIG_HVC_XEN=y +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_HWMON_VID=m +# CONFIG_HWPOISON_INJECT is not set +CONFIG_HW_CONSOLE=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_VIA=m +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_HYPERV=m +CONFIG_HYPERV_BLOCK=m +CONFIG_HYPERV_NET=m +CONFIG_HYPERV_STORAGE=m +CONFIG_HYPERV_UTILS=m +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +# CONFIG_HZ_1000 is not set +# CONFIG_HZ_300 is not set +CONFIG_I2C=y +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_COMPAT=y +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CORE is not set +CONFIG_I2C_DESIGNWARE=m +CONFIG_I2C_GPIO=m +# CONFIG_I2C_HELPER_AUTO is not set +CONFIG_I2C_I801=m +CONFIG_I2C_ISCH=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_NFORCE2_S4985=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_OMAP=y +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PCA_ISA=m +CONFIG_I2C_PCA_PLATFORM=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_SCMI=m +CONFIG_I2C_SI470X=m +CONFIG_I2C_SI4713=m +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_SMBUS=m +CONFIG_I2C_STUB=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VERSATILE=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_XILINX=m +CONFIG_I2O=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_BUS=m +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_PROC=m +CONFIG_I2O_SCSI=m +CONFIG_I6300ESB_WDT=m +CONFIG_I7300_IDLE=m +CONFIG_I7300_IDLE_IOAT_CHANNEL=y +CONFIG_I82092=m +CONFIG_I82365=m +CONFIG_I8K=m +# CONFIG_IA32_AOUT is not set +CONFIG_IA32_EMULATION=y +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_IBMLANA=m +CONFIG_IBMLS=m +# CONFIG_IBMMCA_SCSI_DEV_RESET is not set +CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y +CONFIG_IBMOL=m +CONFIG_IBMTR=m +CONFIG_IBM_ASM=m +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_ZMII is not set +CONFIG_ICPLUS_PHY=y +CONFIG_ICS932S401=m +CONFIG_ICST=y +# CONFIG_IDE is not set +CONFIG_IDE_PHISON=m +CONFIG_IEEE1394=m +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_ETH1394=m +CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y +CONFIG_IEEE1394_OHCI1394=m +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE802154=m +CONFIG_IEEE802154_DRIVERS=m +# CONFIG_IEEE802154_FAKEHARD is not set +CONFIG_IFB=m +CONFIG_IGB=m +CONFIG_IGBVF=m +CONFIG_IGB_DCA=y +CONFIG_IIO=m +CONFIG_IIO_GPIO_TRIGGER=m +CONFIG_IIO_PERIODIC_RTC_TRIGGER=m +CONFIG_IIO_RING_BUFFER=y +CONFIG_IIO_SW_RING=m +CONFIG_IIO_TRIGGER=y +# CONFIG_IKCONFIG is not set +# CONFIG_IMA is not set +CONFIG_INET=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET_AH=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_INET_DIAG=y +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_LRO=y +CONFIG_INET_TCP_DIAG=y +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_AMSO1100=m +CONFIG_INFINIBAND_AMSO1100_DEBUG=y +CONFIG_INFINIBAND_CXGB3=m +# CONFIG_INFINIBAND_CXGB3_DEBUG is not set +CONFIG_INFINIBAND_CXGB4=m +CONFIG_INFINIBAND_IPATH=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_ISER=m +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +# CONFIG_INFINIBAND_NES is not set +CONFIG_INFINIBAND_QIB=m +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFTL=m +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_INIT_PASS_ALL_PARAMS=y +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_INPUT=y +CONFIG_INPUT_88PM860X_ONKEY=m +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_AD714X_SPI=m +# CONFIG_INPUT_APANEL is not set +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_MAX8925_ONKEY=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_PCAP=m +CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_WINBOND_CIR=m +CONFIG_INPUT_WISTRON_BTNS=m +CONFIG_INPUT_WM831X_ON=m +CONFIG_INPUT_YEALINK=m +CONFIG_INSTRUCTION_DECODER=y +CONFIG_INTEL_IDLE=y +CONFIG_INTEL_IOATDMA=m +CONFIG_INTEL_IPS=m +CONFIG_INTEL_MENLOW=m +# CONFIG_IOMMU_DEBUG is not set +# CONFIG_IOMMU_STRESS is not set +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_NOOP=y +# CONFIG_IO_DELAY_0X80 is not set +CONFIG_IO_DELAY_0XED=y +# CONFIG_IO_DELAY_NONE is not set +CONFIG_IO_DELAY_TYPE_0X80=0 +CONFIG_IO_DELAY_TYPE_0XED=1 +CONFIG_IO_DELAY_TYPE_NONE=3 +CONFIG_IO_DELAY_TYPE_UDELAY=2 +# CONFIG_IO_DELAY_UDELAY is not set +CONFIG_IP1000=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IPC_NS=y +CONFIG_IPDDP=m +CONFIG_IPDDP_DECAP=y +CONFIG_IPDDP_ENCAP=y +CONFIG_IPMI_DEVICE_INTERFACE=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_POWEROFF=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPPP_FILTER=y +CONFIG_IPV6=y +# CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_MROUTE is not set +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT_6RD=y +# CONFIG_IPV6_SUBTREES is not set +CONFIG_IPV6_TUNNEL=m +CONFIG_IPW2100=m +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2100_MONITOR=y +CONFIG_IPW2200=m +# CONFIG_IPW2200_DEBUG is not set +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPWIRELESS=m +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +CONFIG_IP_DCCP_CCID3=y +# CONFIG_IP_DCCP_CCID3_DEBUG is not set +CONFIG_IP_DCCP_CCID3_RTO=100 +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_DCCP_TFRC_LIB=y +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_MULTICAST=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_IP_PNP is not set +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_SCTP=m +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_IPV6=y +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_SCTP=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_TAB_BITS=12 +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_WRR=m +CONFIG_IRCOMM=m +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_DEBUG=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +CONFIG_IRLAN=m +CONFIG_IRNET=m +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_IRTTY_SIR=m +CONFIG_IR_CORE=m +CONFIG_IR_IMON=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_STREAMZAP=m +CONFIG_ISA=y +CONFIG_ISAPNP=y +CONFIG_ISA_DMA_API=y +CONFIG_ISCSI_IBFT=m +CONFIG_ISCSI_IBFT_FIND=y +CONFIG_ISCSI_TCP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIDRV=m +CONFIG_ISDN_CAPI_CAPIFS=m +CONFIG_ISDN_CAPI_CAPIFS_BOOL=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVERSION=m +CONFIG_ISDN_DRV_ACT2000=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_B1ISA=m +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_ISDN_DRV_AVMB1_T1ISA=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_ISDN_DRV_HISAX=m +CONFIG_ISDN_DRV_ICN=m +CONFIG_ISDN_DRV_LOOP=m +CONFIG_ISDN_DRV_PCBIT=m +CONFIG_ISDN_DRV_SC=m +CONFIG_ISDN_HDLC=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_MPP=y +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_TTY_FAX=y +CONFIG_ISDN_X25=y +# CONFIG_ISI is not set +CONFIG_ISL29003=m +CONFIG_ISO9660_FS=m +CONFIG_ISP1301_OMAP=m +CONFIG_ISTALLION=m +CONFIG_IT8712F_WDT=m +CONFIG_IT87_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_ITCO_WDT=m +CONFIG_IWL3945=m +CONFIG_IWL4965=y +CONFIG_IWL5000=y +CONFIG_IWLAGN=m +CONFIG_IWLWIFI=m +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLWIFI_DEVICE_TRACING=y +CONFIG_IWM=m +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWM_DEBUG is not set +CONFIG_IWM_TRACING=y +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBEVF=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGBE_DCB=y +CONFIG_JBD=y +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +# CONFIG_JBD_DEBUG is not set +CONFIG_JFFS2_CMODE_FAVOURLZO=y +# CONFIG_JFFS2_CMODE_NONE is not set +# CONFIG_JFFS2_CMODE_PRIORITY is not set +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_SUMMARY is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_JME=m +CONFIG_JOLIET=y +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_WALKERA0701=m +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_K8_NB=y +CONFIG_K8_NUMA=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_KARMA_PARTITION=y +CONFIG_KDB_KEYBOARD=y +# CONFIG_KERNEL_BZIP2 is not set +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_LZO is not set +CONFIG_KEXEC=y +CONFIG_KEXEC_JUMP=y +CONFIG_KEYBOARD_ADP5520=m +CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_MATRIX=m +CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_OPENCORES=m +# CONFIG_KEYBOARD_QT2160 is not set +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_TWL4030=m +CONFIG_KEYS=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +CONFIG_KGDB=y +CONFIG_KGDB_KDB=y +CONFIG_KGDB_LOW_LEVEL_TRAP=y +CONFIG_KGDB_SERIAL_CONSOLE=y +# CONFIG_KGDB_TESTS is not set +CONFIG_KINGSUN_DONGLE=m +# CONFIG_KMEMTRACE is not set +CONFIG_KPROBES=y +# CONFIG_KPROBES_SANITY_TEST is not set +CONFIG_KPROBE_EVENT=y +CONFIG_KRETPROBES=y +CONFIG_KS0108=m +CONFIG_KS0108_DELAY=2 +CONFIG_KS0108_PORT=0x378 +CONFIG_KS8842=m +CONFIG_KS8851=m +CONFIG_KS8851_MLL=m +CONFIG_KS959_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +# CONFIG_KSYM_TRACER is not set +CONFIG_KSZ884X_PCI=m +CONFIG_KVM=m +CONFIG_KVM_AMD=m +CONFIG_KVM_APIC_ARCHITECTURE=y +CONFIG_KVM_CLOCK=y +CONFIG_KVM_GUEST=y +CONFIG_KVM_INTEL=m +CONFIG_KVM_MMIO=y +CONFIG_KXSD9=m +CONFIG_L2TP=m +CONFIG_L2TP_DEBUGFS=m +# CONFIG_L2TP_V3 is not set +CONFIG_LANCE=m +CONFIG_LANMEDIA=m +CONFIG_LATENCYTOP=y +CONFIG_LBDAF=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_ILI9320=m +CONFIG_LCD_L4F00242T03=m +CONFIG_LCD_LMS283GF05=m +CONFIG_LCD_LTV350QV=m +CONFIG_LCD_PLATFORM=m +CONFIG_LCD_S6E63M0=m +CONFIG_LCD_TDO24M=m +CONFIG_LCD_VGG2432A4=m +# CONFIG_LDM_DEBUG is not set +CONFIG_LDM_PARTITION=y +CONFIG_LEDS=y +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_ADP5520=m +CONFIG_LEDS_ALIX2=m +CONFIG_LEDS_BD2802=m +# CONFIG_LEDS_CLEVO_MAIL is not set +CONFIG_LEDS_CPU=y +CONFIG_LEDS_DA903X=m +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_DELL_NETBOOKS=m +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GPIO_PLATFORM=y +CONFIG_LEDS_INTEL_SS4200=m +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_MC13783=m +CONFIG_LEDS_NET48XX=m +CONFIG_LEDS_NET5501=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_WM831X_STATUS=m +CONFIG_LEDS_WM8350=m +CONFIG_LEDS_WRAP=m +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=0 +# CONFIG_LGUEST is not set +# CONFIG_LGUEST_GUEST is not set +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +CONFIG_LIB80211_CRYPT_WEP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_LIBCRC32C=m +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_CS=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_SDIO=m +CONFIG_LIBERTAS_SPI=m +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +CONFIG_LIBIPW=m +CONFIG_LIBIPW_DEBUG=y +CONFIG_LINE6_USB=m +CONFIG_LIRC=m +CONFIG_LIRC_BT829=m +CONFIG_LIRC_ENE0100=m +CONFIG_LIRC_I2C=m +CONFIG_LIRC_IGORPLUGUSB=m +CONFIG_LIRC_IMON=m +CONFIG_LIRC_IT87=m +CONFIG_LIRC_ITE8709=m +# CONFIG_LIRC_PARALLEL is not set +CONFIG_LIRC_SASEM=m +CONFIG_LIRC_SERIAL=m +CONFIG_LIRC_SERIAL_TRANSMITTER=y +CONFIG_LIRC_SIR=m +CONFIG_LIRC_STAGING=y +CONFIG_LIRC_TTUSBIR=m +CONFIG_LIRC_ZILOG=m +CONFIG_LIS3L02DQ=m +CONFIG_LITELINK_DONGLE=m +# CONFIG_LKDTM is not set +CONFIG_LNE390=m +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCKD=m +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_LOCKD_V4=y +CONFIG_LOCK_KERNEL=y +# CONFIG_LOCK_STAT is not set +# CONFIG_LOGFS is not set +CONFIG_LOGIG940_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGITECH_FF=y +# CONFIG_LOGO is not set +CONFIG_LP486E=m +CONFIG_LPC_SCH=m +# CONFIG_LP_CONSOLE is not set +CONFIG_LRU_CACHE=m +CONFIG_LSI_ET1011C_PHY=y +CONFIG_LSM_MMAP_MIN_ADDR=0 +CONFIG_LTPC=m +CONFIG_LXT_PHY=y +CONFIG_LZO_COMPRESS=m +CONFIG_LZO_DECOMPRESS=y +CONFIG_M25PXX_USE_FAST_READ=y +# CONFIG_M386 is not set +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586MMX is not set +# CONFIG_M586TSC is not set +CONFIG_MA600_DONGLE=m +CONFIG_MAC80211=m +CONFIG_MAC80211_DEBUGFS=y +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_HWSIM=m +CONFIG_MAC80211_LEDS=y +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MACHZ_WDT=m +# CONFIG_MACH_CM_T35 is not set +# CONFIG_MACH_DEVKIT8000 is not set +CONFIG_MACH_IGEP0020=y +CONFIG_MACH_NOKIA_RX51=y +CONFIG_MACH_OMAP3517EVM=y +CONFIG_MACH_OMAP3EVM=y +CONFIG_MACH_OMAP3_BEAGLE=y +CONFIG_MACH_OMAP3_PANDORA=y +CONFIG_MACH_OMAP3_TOUCHBOOK=y +CONFIG_MACH_OMAP_3430SDP=y +CONFIG_MACH_OMAP_3630SDP=y +CONFIG_MACH_OMAP_LDP=y +CONFIG_MACH_OMAP_ZOOM2=y +CONFIG_MACH_OMAP_ZOOM3=y +CONFIG_MACH_OVERO=y +CONFIG_MACH_SBC3530=y +CONFIG_MACH_VERSATILE_AB=y +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MACVLAN=m +# CONFIG_MACVTAP is not set +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_MAC_PARTITION=y +CONFIG_MADGEMC=m +CONFIG_MAGIC_SYSRQ=y +CONFIG_MANTIS_CORE=m +CONFIG_MARVELL_PHY=y +# CONFIG_MATH_EMULATION is not set +# CONFIG_MATOM is not set +CONFIG_MAX1363=m +CONFIG_MAX1363_RING_BUFFER=y +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_MAX8925_POWER=m +# CONFIG_MAXSMP is not set +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MCA=y +CONFIG_MCA_LEGACY=y +# CONFIG_MCA_PROC_FS is not set +# CONFIG_MCORE2 is not set +CONFIG_MCP2120_DONGLE=m +# CONFIG_MCRUSOE is not set +CONFIG_MCS_FIR=m +# CONFIG_MCYRIXIII is not set +CONFIG_MD=y +CONFIG_MDA_CONSOLE=m +CONFIG_MDIO=m +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_GPIO=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_FAULTY=m +CONFIG_MD_LINEAR=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_RAID6_PQ=m +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_TUNER=m +# CONFIG_MEDIA_TUNER_CUSTOMISE is not set +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +# CONFIG_MEFFICEON is not set +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_SAS=m +CONFIG_MEMORY_FAILURE=y +CONFIG_MEMORY_HOTPLUG_SPARSE=y +CONFIG_MEMORY_HOTREMOVE=y +# CONFIG_MEMSTICK_DEBUG is not set +CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_TIFM_MS=m +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +# CONFIG_MEMTEST is not set +CONFIG_MFD_88PM860X=y +CONFIG_MFD_CORE=y +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MC13783=m +CONFIG_MFD_PCF50633=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set +CONFIG_MFD_SUPPORT=y +CONFIG_MFD_TC35892=y +CONFIG_MFD_TIMBERDALE=m +CONFIG_MFD_WM831X=y +CONFIG_MFD_WM8350=y +CONFIG_MFD_WM8350_I2C=y +CONFIG_MFD_WM8400=m +CONFIG_MFD_WM8994=y +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +CONFIG_MG_DISK=m +CONFIG_MG_DISK_RES=0 +CONFIG_MICREL_PHY=m +CONFIG_MICROCODE=m +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_MIGRATION=y +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_DEVICES=y +CONFIG_MISC_FILESYSTEMS=y +CONFIG_MISDN=m +CONFIG_MISDN_AVMFRITZ=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_MISDN_INFINEON=m +CONFIG_MISDN_IPAC=m +CONFIG_MISDN_ISAR=m +CONFIG_MISDN_L1OIP=m +CONFIG_MISDN_NETJET=m +CONFIG_MISDN_SPEEDFAX=m +CONFIG_MISDN_W6692=m +CONFIG_MIXCOMWD=m +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +CONFIG_MKISS=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_INFINIBAND=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_MMC_CB710=m +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_OMAP=m +CONFIG_MMC_OMAP_HS=y +CONFIG_MMC_RICOH_MMC=y +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDRICOH_CS=m +CONFIG_MMC_SPI=m +# CONFIG_MMC_TEST is not set +CONFIG_MMC_TIFM_SD=m +# CONFIG_MMC_TMIO is not set +# CONFIG_MMC_UNSAFE_RESUME is not set +CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_WBSD=m +CONFIG_MMIOTRACE=y +# CONFIG_MMIOTRACE_TEST is not set +CONFIG_MMU=y +CONFIG_MMU_NOTIFIER=y +CONFIG_MM_OWNER=y +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MOUSE_APPLETOUCH=m +# CONFIG_MOUSE_ATIXL is not set +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_GPIO=m +CONFIG_MOUSE_INPORT=m +CONFIG_MOUSE_LOGIBM=m +CONFIG_MOUSE_PC110PAD=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_OLPC=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +# CONFIG_MPENTIUM4 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MPSC is not set +CONFIG_MRST_RAR_HANDLER=m +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +CONFIG_MSI_LAPTOP=m +CONFIG_MSI_WMI=m +CONFIG_MSPRO_BLOCK=m +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTDRAM_TOTAL_SIZE=4096 +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_BLOCK2MTD=m +CONFIG_MTD_BLOCK_RO=m +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_GEOMETRY is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_NOSWAP=y +CONFIG_MTD_CK804XROM=m +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_DATAFLASH_OTP=y +# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_DOCECC=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCPROBE_ADDRESS=0 +# CONFIG_MTD_DOCPROBE_ADVANCED is not set +CONFIG_MTD_ESB2ROM=m +CONFIG_MTD_ICHXROM=m +# CONFIG_MTD_IMPA7 is not set +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_L440GX=m +CONFIG_MTD_LPDDR=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_MAP_BANK_WIDTH_1=y +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_CS553X=m +CONFIG_MTD_NAND_DENALI=m +CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018 +CONFIG_MTD_NAND_DISKONCHIP=m +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_GPIO is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +CONFIG_MTD_NAND_OMAP2=y +CONFIG_MTD_NAND_OMAP_PREFETCH=y +CONFIG_MTD_NAND_OMAP_PREFETCH_DMA=y +CONFIG_MTD_NAND_RICOH=m +# CONFIG_MTD_NAND_TMIO is not set +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +CONFIG_MTD_NETSC520=m +CONFIG_MTD_NETtel=m +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_GENERIC=m +CONFIG_MTD_ONENAND_OMAP2=m +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_SIM=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_OOPS=m +# CONFIG_MTD_OTP is not set +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_PCI=m +CONFIG_MTD_PCMCIA=m +# CONFIG_MTD_PCMCIA_ANONYMOUS is not set +# CONFIG_MTD_PHYSMAP_COMPAT is not set +CONFIG_MTD_PISMO=m +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_QINFO_PROBE=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_SCx200_DOCFLASH=m +CONFIG_MTD_TESTS=m +CONFIG_MTD_TS5500=m +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_BEB_RESERVE=1 +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_MTD_UBI_GLUEBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +# CONFIG_MULTICORE_RAID456 is not set +# CONFIG_MUSB_PIO_ONLY is not set +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +CONFIG_MWAVE=m +# CONFIG_MWINCHIP3D is not set +# CONFIG_MWINCHIPC6 is not set +CONFIG_MWL8K=m +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_N2=m +CONFIG_NAMESPACES=y +CONFIG_NATIONAL_PHY=y +CONFIG_NATSEMI=m +CONFIG_NCPFS_EXTRAS=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_PACKET_SIGNING=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_STRONG=y +CONFIG_NCP_FS=m +CONFIG_NDISWRAPPER=m +CONFIG_NE2000=m +CONFIG_NE2K_PCI=m +CONFIG_NE2_MCA=m +CONFIG_NE3210=m +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEON=y +CONFIG_NET=y +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETDEVICES=y +CONFIG_NETDEV_1000=y +CONFIG_NETDEV_10000=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETLABEL=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NETROM=m +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NETWORK_SECMARK=y +CONFIG_NETXEN_NIC=m +CONFIG_NET_9P=m +# CONFIG_NET_9P_DEBUG is not set +CONFIG_NET_9P_RDMA=m +CONFIG_NET_9P_VIRTIO=m +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_CLS=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_FW=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_DMA=y +# CONFIG_NET_DROP_MONITOR is not set +CONFIG_NET_DSA=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6123_61_65=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_ETHERNET=y +CONFIG_NET_FC=y +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_NET_IPIP=m +CONFIG_NET_ISA=y +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_NET_NS=y +CONFIG_NET_PCI=y +CONFIG_NET_PCMCIA=y +CONFIG_NET_PKTGEN=m +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NET_SB1000=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_FIFO=y +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCTPPROBE=m +CONFIG_NET_TULIP=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_NET_VENDOR_RACAL=y +CONFIG_NET_VENDOR_SMC=y +CONFIG_NEW_LEDS=y +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_NFS_FS=m +CONFIG_NFS_FSCACHE=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +# CONFIG_NFS_V4_1 is not set +CONFIG_NFTL_RW=y +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NI52=m +CONFIG_NI65=m +CONFIG_NILFS2_FS=m +CONFIG_NIU=m +# CONFIG_NL80211_TESTMODE is not set +CONFIG_NLATTR=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_NODES_SHIFT=6 +CONFIG_NODES_SPAN_OTHER_NODES=y +# CONFIG_NOHIGHMEM is not set +CONFIG_NOP_TRACER=y +CONFIG_NORTEL_HERMES=m +CONFIG_NOZOMI=m +CONFIG_NO_BOOTMEM=y +CONFIG_NS83820=m +CONFIG_NSC_FIR=m +CONFIG_NSC_GPIO=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS=m +# CONFIG_NTFS_RW is not set +CONFIG_NUMA=y +# CONFIG_NUMA_EMU is not set +CONFIG_NUMA_IRQ_DESC=y +CONFIG_NVRAM=m +# CONFIG_N_GSM is not set +CONFIG_N_HDLC=m +CONFIG_OABI_COMPAT=y +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_OCFS2_DEBUG_MASKLOG=y +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_STATS=y +CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_OLPC=y +CONFIG_OMAP2_DSS=y +# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set +CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y +CONFIG_OMAP2_DSS_DPI=y +# CONFIG_OMAP2_DSS_DSI is not set +# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0 +# CONFIG_OMAP2_DSS_RFBI is not set +CONFIG_OMAP2_DSS_SDI=y +CONFIG_OMAP2_DSS_VENC=y +CONFIG_OMAP2_VRAM=y +CONFIG_OMAP2_VRAM_SIZE=6 +CONFIG_OMAP2_VRFB=y +CONFIG_OMAP3_EMU=y +# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set +# CONFIG_OMAP3_SDRC_AC_TIMING is not set +CONFIG_OMAP_32K_TIMER=y +CONFIG_OMAP_32K_TIMER_HZ=128 +CONFIG_OMAP_DM_TIMER=y +# CONFIG_OMAP_MBOX_FWK is not set +CONFIG_OMAP_MCBSP=y +# CONFIG_OMAP_MPU_TIMER is not set +CONFIG_OMAP_MUX=y +# CONFIG_OMAP_MUX_DEBUG is not set +CONFIG_OMAP_MUX_WARNINGS=y +CONFIG_OMAP_PACKAGE_CBB=y +CONFIG_OMAP_PACKAGE_CBP=y +CONFIG_OMAP_PACKAGE_CUS=y +# CONFIG_OMAP_PM_NONE is not set +CONFIG_OMAP_PM_NOOP=y +CONFIG_OMAP_RESET_CLOCKS=y +CONFIG_OMAP_WATCHDOG=m +CONFIG_OMFS_FS=m +CONFIG_OMNIBOOK=m +CONFIG_OPROFILE=m +# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set +CONFIG_OPTIMIZE_INLINING=y +CONFIG_OPTPROBES=y +CONFIG_ORINOCO_USB=m +CONFIG_OSF_PARTITION=y +# CONFIG_OTUS is not set +CONFIG_P54_COMMON=m +CONFIG_P54_LEDS=y +CONFIG_P54_PCI=m +CONFIG_P54_SPI=m +CONFIG_P54_USB=m +CONFIG_PACKARDBELL_E5=m +CONFIG_PACKET=y +CONFIG_PADATA=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_PAGE_OFFSET=0xC0000000 +# CONFIG_PAGE_POISONING is not set +CONFIG_PANASONIC_LAPTOP=m +CONFIG_PANEL=m +CONFIG_PANEL_ACX565AKM=m +# CONFIG_PANEL_CHANGE_MESSAGE is not set +CONFIG_PANEL_GENERIC=y +CONFIG_PANEL_PARPORT=0 +CONFIG_PANEL_PROFILE=5 +CONFIG_PANEL_SHARP_LQ043T1DG01=y +CONFIG_PANEL_SHARP_LS037V7DW01=y +CONFIG_PANEL_TOPPOLY_TDO35S=y +CONFIG_PANEL_TPO_TD043MTEA1=y +CONFIG_PANTHERLORD_FF=y +CONFIG_PARAVIRT=y +CONFIG_PARAVIRT_CLOCK=y +# CONFIG_PARAVIRT_DEBUG is not set +CONFIG_PARAVIRT_GUEST=y +CONFIG_PARAVIRT_SPINLOCKS=y +CONFIG_PARIDE=m +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_BPCK6=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_EPAT=m +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PG=m +CONFIG_PARIDE_PT=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_AX88796=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_NOT_PC=y +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_PC_FIFO=y +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_SERIAL=m +CONFIG_PARTITION_ADVANCED=y +CONFIG_PATA_ACPI=y +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +CONFIG_PATA_ATP867X=m +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +CONFIG_PATA_CS5530=m +CONFIG_PATA_CS5535=m +CONFIG_PATA_CS5536=m +CONFIG_PATA_CYPRESS=m +CONFIG_PATA_EFAR=m +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m +CONFIG_PATA_HPT3X3=m +# CONFIG_PATA_HPT3X3_DMA is not set +CONFIG_PATA_ISAPNP=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_LEGACY=m +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_QDI=m +CONFIG_PATA_RADISYS=m +CONFIG_PATA_RDC=m +CONFIG_PATA_RZ1000=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_SCH=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=y +# CONFIG_PATA_TOSHIBA is not set +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_WINBOND_VLB=m +# CONFIG_PC300TOO is not set +CONFIG_PC8736x_GPIO=m +CONFIG_PC87413_WDT=m +CONFIG_PCCARD_NONSTATIC=y +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +CONFIG_PCI=y +CONFIG_PCI200SYN=m +CONFIG_PCIEAER=y +# CONFIG_PCIEAER_INJECT is not set +CONFIG_PCIEASPM=y +# CONFIG_PCIEASPM_DEBUG is not set +CONFIG_PCIEPORTBUS=y +# CONFIG_PCIE_ECRC is not set +CONFIG_PCIE_PME=y +CONFIG_PCIPCWATCHDOG=m +CONFIG_PCI_ATMEL=m +CONFIG_PCI_BIOS=y +CONFIG_PCI_CNB20LE_QUIRK=y +# CONFIG_PCI_DEBUG is not set +CONFIG_PCI_DIRECT=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_GOANY=y +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GODIRECT is not set +# CONFIG_PCI_GOMMCONFIG is not set +# CONFIG_PCI_GOOLPC is not set +CONFIG_PCI_IOAPIC=y +CONFIG_PCI_IOV=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_MSI=y +CONFIG_PCI_OLPC=y +CONFIG_PCI_QUIRKS=y +CONFIG_PCI_STUB=m +CONFIG_PCMCIA=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_PCMCIA_AXNET=m +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_NINJA_SCSI=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_PROBE=y +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_PCNET32=m +CONFIG_PCSPKR_PLATFORM=y +CONFIG_PCWATCHDOG=m +CONFIG_PD6729=m +CONFIG_PDA_POWER=m +CONFIG_PDC_ADMA=y +CONFIG_PERF_COUNTERS=y +CONFIG_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PHANTOM=m +CONFIG_PHONE=m +CONFIG_PHONET=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m +CONFIG_PHYLIB=y +CONFIG_PID_NS=y +# CONFIG_PLAT_SPEAR is not set +CONFIG_PLAT_VERSATILE=y +CONFIG_PLIP=m +CONFIG_PLX_HERMES=m +CONFIG_PM=y +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +# CONFIG_PM_ADVANCED_DEBUG is not set +CONFIG_PM_OPS=y +CONFIG_PM_RUNTIME=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_STD_PARTITION="" +CONFIG_PM_TEST_SUSPEND=y +CONFIG_PM_TRACE=y +CONFIG_PM_TRACE_RTC=y +# CONFIG_PM_VERBOSE is not set +CONFIG_PNP=y +CONFIG_PNPACPI=y +CONFIG_PNPBIOS=y +CONFIG_PNPBIOS_PROC_FS=y +CONFIG_PNP_DEBUG_MESSAGES=y +CONFIG_POHMELFS=m +CONFIG_POHMELFS_CRYPTO=y +# CONFIG_POHMELFS_DEBUG is not set +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PPDEV=m +CONFIG_PPP=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPS=m +# CONFIG_PPS_CLIENT_KTIMER is not set +CONFIG_PPS_CLIENT_LDISC=m +# CONFIG_PPS_DEBUG is not set +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINTK_TIME=y +CONFIG_PRISM54=m +CONFIG_PROC_EVENTS=y +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_VMCORE=y +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +CONFIG_PROFILING=y +CONFIG_PROTEON=m +# CONFIG_PROVE_LOCKING is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLGE=m +CONFIG_QNX4FS_FS=m +CONFIG_QSEMI_PHY=y +CONFIG_QUOTA=y +CONFIG_QUOTACTL=y +CONFIG_QUOTACTL_COMPAT=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_QUOTA_TREE=m +# CONFIG_R6040 is not set +CONFIG_R8169=m +CONFIG_R8169_VLAN=y +CONFIG_R8187SE=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_AZTECH=m +CONFIG_RADIO_CADET=m +CONFIG_RADIO_GEMTEK=m +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAESTRO=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MIROPCM20=m +CONFIG_RADIO_RTRACK=m +CONFIG_RADIO_RTRACK2=m +CONFIG_RADIO_SAA7706H=m +CONFIG_RADIO_SF16FMI=m +CONFIG_RADIO_SF16FMR2=m +CONFIG_RADIO_SI470X=y +CONFIG_RADIO_SI4713=m +CONFIG_RADIO_TEA5764=m +CONFIG_RADIO_TEF6862=m +CONFIG_RADIO_TERRATEC=m +CONFIG_RADIO_TIMBERDALE=m +CONFIG_RADIO_TRUST=m +CONFIG_RADIO_TYPHOON=m +CONFIG_RADIO_ZOLTRIX=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMOOPS=m +CONFIG_RAMZSWAP_STATS=y +CONFIG_RAR_REGISTER=m +CONFIG_RAW_DRIVER=m +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_RCU_FANOUT_EXACT is not set +CONFIG_RCU_FAST_NO_HZ=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RC_MAP=m +CONFIG_RDS=m +# CONFIG_RDS_DEBUG is not set +CONFIG_RDS_RDMA=m +CONFIG_RDS_TCP=m +CONFIG_RD_BZIP2=y +CONFIG_RD_GZIP=y +CONFIG_RD_LZMA=y +CONFIG_RD_LZO=y +CONFIG_REALTEK_PHY=y +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_88PM8607=y +CONFIG_REGULATOR_AB3100=m +CONFIG_REGULATOR_BQ24022=m +CONFIG_REGULATOR_DA903X=m +# CONFIG_REGULATOR_DUMMY is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +CONFIG_REGULATOR_LP3971=m +CONFIG_REGULATOR_MAX1586=m +CONFIG_REGULATOR_MAX8649=m +CONFIG_REGULATOR_MAX8660=m +CONFIG_REGULATOR_MAX8925=m +CONFIG_REGULATOR_MC13783=m +# CONFIG_REGULATOR_PCAP is not set +CONFIG_REGULATOR_PCF50633=m +CONFIG_REGULATOR_TPS65023=m +CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TWL4030=y +CONFIG_REGULATOR_USERSPACE_CONSUMER=m +CONFIG_REGULATOR_VIRTUAL_CONSUMER=m +CONFIG_REGULATOR_WM831X=m +CONFIG_REGULATOR_WM8350=m +CONFIG_REGULATOR_WM8400=m +CONFIG_REGULATOR_WM8994=m +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_FS=m +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_REISERFS_FS_XATTR=y +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_RELAY=y +CONFIG_RELOCATABLE=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_LEDS=y +CONFIG_RING_BUFFER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +# CONFIG_RING_BUFFER_BENCHMARK is not set +CONFIG_RISCOM8=m +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_ROCKETPORT=m +CONFIG_ROMFS_BACKED_BY_BLOCK=y +# CONFIG_ROMFS_BACKED_BY_BOTH is not set +# CONFIG_ROMFS_BACKED_BY_MTD is not set +CONFIG_ROMFS_FS=m +CONFIG_ROMFS_ON_BLOCK=y +CONFIG_ROSE=m +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPS=y +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT2500USB=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_PCI=y +CONFIG_RT2800PCI_RT30XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800USB=m +# CONFIG_RT2800USB_RT30XX is not set +# CONFIG_RT2800USB_RT35XX is not set +CONFIG_RT2800_LIB=m +CONFIG_RT2860=m +CONFIG_RT2870=m +CONFIG_RT2X00=m +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_HT=y +CONFIG_RT2X00_LIB_LEDS=y +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT61PCI=m +CONFIG_RT73USB=m +CONFIG_RTC_CLASS=y +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_DRV_AB3100=m +CONFIG_RTC_DRV_AB8500=m +CONFIG_RTC_DRV_BQ32K=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1305=m +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1390=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_DS3234=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_M41T94=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_MAX8925=m +CONFIG_RTC_DRV_MC13783=m +CONFIG_RTC_DRV_MSM6242=m +CONFIG_RTC_DRV_PCAP=m +CONFIG_RTC_DRV_PCF2123=m +CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_R9701=m +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_WM831X=m +CONFIG_RTC_DRV_WM8350=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_LIB=y +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_RTL8192E=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192SU=m +CONFIG_RTL8192U=m +CONFIG_RT_GROUP_SCHED=y +CONFIG_RT_MUTEXES=y +# CONFIG_RT_MUTEX_TESTER is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_RXKAD=m +CONFIG_S2IO=m +# CONFIG_SAMPLES is not set +CONFIG_SAMSUNG_LAPTOP=m +CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_INIC162X=m +CONFIG_SATA_MV=m +CONFIG_SATA_NV=m +CONFIG_SATA_PMP=y +CONFIG_SATA_PROMISE=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SIL=m +CONFIG_SATA_SIL24=m +CONFIG_SATA_SIS=m +CONFIG_SATA_SVW=m +CONFIG_SATA_SX4=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m +CONFIG_SBC7240_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m +CONFIG_SBC_FITPC2_WATCHDOG=m +CONFIG_SBE_PMCC4_NCOMM=y +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_SC1200_WDT=m +CONFIG_SC520_WDT=m +CONFIG_SC92031=m +CONFIG_SCA3000=m +CONFIG_SCC=m +# CONFIG_SCC_DELAY is not set +# CONFIG_SCC_TRXECHO is not set +CONFIG_SCHEDSTATS=y +CONFIG_SCHED_DEBUG=y +CONFIG_SCHED_HRTICK=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_TRACER=y +CONFIG_SCSI=y +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m +CONFIG_SCSI_7000FASST=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_AHA152X=m +CONFIG_SCSI_AHA1542=m +CONFIG_SCSI_AHA1740=m +CONFIG_SCSI_AIC79XX=m +CONFIG_SCSI_AIC7XXX=m +# CONFIG_SCSI_AIC7XXX_OLD is not set +CONFIG_SCSI_AIC94XX=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_ARCMSR_AER=y +CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_DH=y +CONFIG_SCSI_DH_ALUA=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DMA=y +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_DTC3280=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_ENCLOSURE=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_FD_MCS=m +# CONFIG_SCSI_FLASHPOINT is not set +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_GENERIC_NCR5380=m +CONFIG_SCSI_GENERIC_NCR5380_MMIO=m +CONFIG_SCSI_GENERIC_NCR53C400=y +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_IBMMCA=m +CONFIG_SCSI_IMM=m +CONFIG_SCSI_IN2000=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_IPR_TRACE is not set +CONFIG_SCSI_IPS=m +CONFIG_SCSI_ISCSI_ATTRS=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_LPFC_DEBUG_FS=y +CONFIG_SCSI_MOD=y +CONFIG_SCSI_MPT2SAS=m +# CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT2SAS_MAX_SGE=128 +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_MVSAS=m +CONFIG_SCSI_MVSAS_DEBUG=y +CONFIG_SCSI_NCR53C406A=m +CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 +CONFIG_SCSI_NCR53C8XX_MAX_TAGS=4 +CONFIG_SCSI_NCR53C8XX_SYNC=5 +CONFIG_SCSI_NCR_D700=m +CONFIG_SCSI_NCR_Q720=m +CONFIG_SCSI_NETLINK=y +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_PAS16=m +CONFIG_SCSI_PM8001=m +CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLOGIC_FAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SAS_LIBSAS=m +# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_SIM710=m +CONFIG_SCSI_SRP=m +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C416=m +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_T128=m +CONFIG_SCSI_TGT=m +CONFIG_SCSI_U14_34F=m +CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y +CONFIG_SCSI_U14_34F_MAX_TAGS=8 +CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y +CONFIG_SCSI_ULTRASTOR=m +CONFIG_SCSI_WAIT_SCAN=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +CONFIG_SCTP_HMAC_MD5=y +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCx200=m +CONFIG_SCx200HR_TIMER=m +CONFIG_SCx200_ACB=m +CONFIG_SCx200_GPIO=m +CONFIG_SCx200_I2C=m +CONFIG_SCx200_I2C_SCL=12 +CONFIG_SCx200_I2C_SDA=13 +CONFIG_SCx200_WDT=m +CONFIG_SDIO_UART=m +CONFIG_SDLA=m +CONFIG_SEALEVEL_4021=m +CONFIG_SECCOMP=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_APPARMOR=y +CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 +CONFIG_SECURITY_APPARMOR_COMPAT_24=y +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +CONFIG_SECURITY_PATH=y +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_DISABLE=y +# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set +CONFIG_SECURITY_SMACK=y +CONFIG_SECURITY_TOMOYO=y +CONFIG_SECURITY_YAMA=y +CONFIG_SEEQ8005=m +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADCXX=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_ADS7871=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_APPLESMC=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ATK0110=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_LIS3_I2C=m +CONFIG_SENSORS_LIS3_SPI=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MC13783_ADC=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_PKGTEMP=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_TSL2563=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VIA_CPUTEMP=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_WM831X=m +CONFIG_SENSORS_WM8350=m +CONFIG_SERIAL_8250_ACCENT=m +CONFIG_SERIAL_8250_BOCA=m +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_EXAR_ST16C554=m +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FOURPORT=m +CONFIG_SERIAL_8250_HUB6=m +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_MCA=m +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +# CONFIG_SERIAL_AMBA_PL010 is not set +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_MAX3100=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIO=y +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_I8042=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_RAW=m +CONFIG_SERIO_SERPORT=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_SFI=y +CONFIG_SGI_IOC4=m +CONFIG_SGI_PARTITION=y +CONFIG_SHMEM=y +CONFIG_SIGMATEL_FIR=m +CONFIG_SIGNALFD=y +CONFIG_SIS190=m +CONFIG_SIS900=m +CONFIG_SKFP=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKISA=m +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +CONFIG_SLABINFO=y +CONFIG_SLHC=y +CONFIG_SLICOSS=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_SLIP_SMART=y +# CONFIG_SLOB is not set +CONFIG_SLOW_WORK=y +# CONFIG_SLOW_WORK_DEBUG is not set +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_SMC911X=m +CONFIG_SMC9194=m +CONFIG_SMCTR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_SMP=y +CONFIG_SMSC37B787_WDT=m +CONFIG_SMSC9420=m +CONFIG_SMSC_PHY=y +CONFIG_SMSC_SCH311X_WDT=m +CONFIG_SMS_SDIO_DRV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_USB_DRV=m +CONFIG_SM_FTL=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_AD1889=m +CONFIG_SND_ADLIB=m +CONFIG_SND_ALS100=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ARM=y +CONFIG_SND_ARMAACI=m +CONFIG_SND_ASIHPI=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT2320=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4236=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_DARLA24=m +# CONFIG_SND_DEBUG is not set +CONFIG_SND_DMA_SGBUF=y +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_ECHO3G=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_GINA20=m +CONFIG_SND_GINA24=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_ATIHDMI=y +CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CIRRUS=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_INTELHDMI=y +CONFIG_SND_HDA_CODEC_NVHDMI=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_ELD=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=0 +CONFIG_SND_HDA_INPUT_JACK=y +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HIFIER=m +CONFIG_SND_HRTIMER=m +CONFIG_SND_HWDEP=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGODJX=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_ISA=y +CONFIG_SND_JACK=y +CONFIG_SND_JAZZ16=m +CONFIG_SND_KORG1212=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_LX6464ES=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MIA=m +CONFIG_SND_MIRO=m +CONFIG_SND_MIXART=m +CONFIG_SND_MONA=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_MSND_CLASSIC=m +CONFIG_SND_MSND_PINNACLE=m +CONFIG_SND_MTS64=m +CONFIG_SND_NM256=m +CONFIG_SND_OMAP_SOC=y +# CONFIG_SND_OMAP_SOC_AM3517EVM is not set +CONFIG_SND_OMAP_SOC_IGEP0020=y +CONFIG_SND_OMAP_SOC_MCBSP=y +CONFIG_SND_OMAP_SOC_OMAP3EVM=y +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y +CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=y +CONFIG_SND_OMAP_SOC_OVERO=y +CONFIG_SND_OMAP_SOC_RX51=m +CONFIG_SND_OMAP_SOC_SDP3430=y +CONFIG_SND_OMAP_SOC_ZOOM2=y +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL4_LIB=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_OXYGEN=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_PCI=y +CONFIG_SND_PCMCIA=y +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCSP=m +CONFIG_SND_PCXHR=m +CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SB16=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SB16_DSP=m +CONFIG_SND_SB8=m +CONFIG_SND_SB8_DSP=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SC6000=m +# CONFIG_SND_SEQUENCER_OSS is not set +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_SGALAXY=m +CONFIG_SND_SIS7019=m +CONFIG_SND_SOC_AD1836=m +CONFIG_SND_SOC_AD193X=m +CONFIG_SND_SOC_AD73311=m +CONFIG_SND_SOC_ADS117X=m +CONFIG_SND_SOC_AK4104=m +CONFIG_SND_SOC_AK4535=m +CONFIG_SND_SOC_AK4642=m +CONFIG_SND_SOC_AK4671=m +CONFIG_SND_SOC_ALL_CODECS=m +CONFIG_SND_SOC_CS4270=m +CONFIG_SND_SOC_DA7210=m +CONFIG_SND_SOC_L3=m +CONFIG_SND_SOC_MAX9877=m +CONFIG_SND_SOC_PCM3008=m +CONFIG_SND_SOC_SPDIF=m +CONFIG_SND_SOC_SSM2602=m +CONFIG_SND_SOC_TLV320AIC23=m +CONFIG_SND_SOC_TLV320AIC26=m +CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TLV320DAC33=m +CONFIG_SND_SOC_TPA6130A2=m +CONFIG_SND_SOC_TWL6040=m +CONFIG_SND_SOC_UDA134X=m +CONFIG_SND_SOC_UDA1380=m +CONFIG_SND_SOC_WM2000=m +CONFIG_SND_SOC_WM8350=m +CONFIG_SND_SOC_WM8400=m +CONFIG_SND_SOC_WM8510=m +CONFIG_SND_SOC_WM8523=m +CONFIG_SND_SOC_WM8580=m +CONFIG_SND_SOC_WM8711=m +CONFIG_SND_SOC_WM8727=m +CONFIG_SND_SOC_WM8728=m +CONFIG_SND_SOC_WM8731=m +CONFIG_SND_SOC_WM8750=m +CONFIG_SND_SOC_WM8753=m +CONFIG_SND_SOC_WM8776=m +CONFIG_SND_SOC_WM8900=m +CONFIG_SND_SOC_WM8903=m +CONFIG_SND_SOC_WM8904=m +CONFIG_SND_SOC_WM8940=m +CONFIG_SND_SOC_WM8955=m +CONFIG_SND_SOC_WM8960=m +CONFIG_SND_SOC_WM8961=m +CONFIG_SND_SOC_WM8971=m +CONFIG_SND_SOC_WM8974=m +CONFIG_SND_SOC_WM8978=m +CONFIG_SND_SOC_WM8988=m +CONFIG_SND_SOC_WM8990=m +CONFIG_SND_SOC_WM8993=m +CONFIG_SND_SOC_WM8994=m +CONFIG_SND_SOC_WM9081=m +CONFIG_SND_SOC_WM9090=m +CONFIG_SND_SOC_WM_HUBS=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_SPI=y +CONFIG_SND_SSCAPE=m +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_TRIDENT=m +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_US122L=m +CONFIG_SND_USB_USX2Y=m +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VMASTER=y +CONFIG_SND_VX222=m +CONFIG_SND_VXPOCKET=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_WAVEFRONT=m +CONFIG_SND_WSS_LIB=m +CONFIG_SND_YMFPCI=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_SOFT_WATCHDOG=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SONYPI=m +CONFIG_SONYPI_COMPAT=y +CONFIG_SONY_LAPTOP=m +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +# CONFIG_SOUND_PRIME is not set +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_STATIC=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSE_IRQ=y +CONFIG_SPECIALIX=m +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +# CONFIG_SPI_DW_MMIO is not set +CONFIG_SPI_DW_PCI=m +CONFIG_SPI_GPIO=m +CONFIG_SPI_LM70_LLP=m +CONFIG_SPI_MASTER=y +CONFIG_SPI_OMAP24XX=m +# CONFIG_SPI_PL022 is not set +CONFIG_SPI_TLE62X0=m +# CONFIG_SPI_XILINX is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_SQUASHFS_XATTRS=y +CONFIG_SR_REPORT_TIME_LIMIT=100 +CONFIG_SSB=m +CONFIG_SSB_BLOCKIO=y +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +# CONFIG_SSB_PCMCIAHOST is not set +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +CONFIG_SSB_SDIOHOST_POSSIBLE=y +CONFIG_SSB_SPROM=y +CONFIG_SSFDC=m +CONFIG_STACKTRACE=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_STAGING=y +# CONFIG_STAGING_EXCLUDE_BUILD is not set +CONFIG_STALDRV=y +CONFIG_STALLION=m +CONFIG_STE10XP=y +CONFIG_STOP_MACHINE=y +CONFIG_STP=m +CONFIG_STRICT_DEVMEM=y +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_ST_BT=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_XPRT_RDMA=m +CONFIG_SUN_PARTITION=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_SUSPEND_NVS=y +CONFIG_SWAP=y +CONFIG_SWIOTLB=y +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_CS=m +CONFIG_SYNCLINK_GT=m +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_SYSFS=y +# CONFIG_SYSFS_DEPRECATED_V2 is not set +# CONFIG_SYSPROF_TRACER is not set +CONFIG_SYSV68_PARTITION=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_SYSV_FS=m +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TABLET_USB_WACOM=m +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_TASK_XACCT=y +CONFIG_TC1100_WMI=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TCG_NSC=m +CONFIG_TCG_TIS=m +CONFIG_TCIC=m +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_MD5SIG=y +CONFIG_TEHUTI=m +CONFIG_TEKRAM_DONGLE=m +CONFIG_TELCLOCK=m +CONFIG_TEST_POWER=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +CONFIG_THERMAL_HWMON=y +CONFIG_THINKPAD_ACPI=m +CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y +# CONFIG_THINKPAD_ACPI_DEBUG is not set +CONFIG_THINKPAD_ACPI_DEBUGFACILITIES=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THRUSTMASTER_FF=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_TICK_ONESHOT=y +CONFIG_TIFM_7XX1=m +CONFIG_TIFM_CORE=m +CONFIG_TIGON3=m +CONFIG_TIMB_DMA=m +CONFIG_TIMERFD=y +CONFIG_TIMER_STATS=y +# CONFIG_TINY_RCU is not set +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_TI_DAC7512=m +CONFIG_TI_DAVINCI_EMAC=m +CONFIG_TI_ST=m +CONFIG_TLAN=m +CONFIG_TMD_HERMES=m +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_TOIM3232_DONGLE=m +CONFIG_TOPSTAR_LAPTOP=m +# CONFIG_TOSHIBA is not set +CONFIG_TOSHIBA_BT_RFKILL=m +CONFIG_TOSHIBA_FIR=m +CONFIG_TOUCHSCREEN_88PM860X=m +CONFIG_TOUCHSCREEN_AD7877=m +CONFIG_TOUCHSCREEN_AD7879=m +CONFIG_TOUCHSCREEN_AD7879_I2C=m +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_DA9034=m +CONFIG_TOUCHSCREEN_DYNAPRO=m +CONFIG_TOUCHSCREEN_EETI=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_HAMPSHIRE=m +CONFIG_TOUCHSCREEN_HTCPEN=m +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_MC13783=m +CONFIG_TOUCHSCREEN_MCS5000=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_PCAP=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_TOUCHIT213=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_TPS6507X=m +CONFIG_TOUCHSCREEN_TSC2007=m +CONFIG_TOUCHSCREEN_UCB1400=m +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_E2I=y +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_ETT_TC5UH=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_JASTEC=y +CONFIG_TOUCHSCREEN_USB_NEXIO=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y +CONFIG_TOUCHSCREEN_W90X900=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_WM9705=y +CONFIG_TOUCHSCREEN_WM9712=y +CONFIG_TOUCHSCREEN_WM9713=y +CONFIG_TOUCHSCREEN_WM97XX=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +CONFIG_TR=y +CONFIG_TRACEPOINTS=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACING=y +CONFIG_TRACING_SUPPORT=y +CONFIG_TRANZPORT=m +# CONFIG_TREE_PREEMPT_RCU is not set +CONFIG_TREE_RCU=y +# CONFIG_TREE_RCU_TRACE is not set +CONFIG_TULIP=m +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_TWL4030_CODEC=y +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_WATCHDOG=m +CONFIG_TYPHOON=m +# CONFIG_UACCESS_WITH_MEMCPY is not set +CONFIG_UBIFS_FS=m +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +# CONFIG_UBIFS_FS_DEBUG is not set +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_XATTR=y +CONFIG_UBIFS_FS_ZLIB=y +CONFIG_UCB1400_CORE=m +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y +CONFIG_UEVENT_HELPER_PATH="" +# CONFIG_UFS_DEBUG is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +CONFIG_UID16=y +CONFIG_UIO=m +CONFIG_UIO_AEC=m +CONFIG_UIO_CIF=m +CONFIG_UIO_NETX=m +CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SERCOS3=m +CONFIG_ULI526X=m +CONFIG_ULTRA=m +CONFIG_ULTRA32=m +CONFIG_ULTRAMCA=m +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_USB=y +CONFIG_USBPCWATCHDOG=m +CONFIG_USB_ACM=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_ATM=m +CONFIG_USB_AUDIO=m +CONFIG_USB_BELKIN=y +CONFIG_USB_C67X00_HCD=m +CONFIG_USB_CATC=m +CONFIG_USB_CDC_COMPOSITE=m +CONFIG_USB_CDC_PHONET=m +CONFIG_USB_CXACRU=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_DABUSB=m +# CONFIG_USB_DEBUG is not set +# CONFIG_USB_DEVICEFS is not set +# CONFIG_USB_DEVICE_CLASS is not set +CONFIG_USB_DSBR=m +CONFIG_USB_DUMMY_HCD=m +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_EPSON2888=y +CONFIG_USB_ETH=m +# CONFIG_USB_ETH_EEM is not set +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_EZUSB=y +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_FUNCTIONFS=m +CONFIG_USB_FUNCTIONFS_ETH=y +CONFIG_USB_FUNCTIONFS_GENERIC=y +CONFIG_USB_FUNCTIONFS_RNDIS=y +CONFIG_USB_GADGETFS=m +# CONFIG_USB_GADGET_AMD5536UDC is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_CI13XXX is not set +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_GADGET_FSL_QE is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_IMX is not set +# CONFIG_USB_GADGET_LANGWELL is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_PXA25X is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_R8A66597 is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_S3C_HSOTG is not set +CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_G_HID=m +CONFIG_USB_G_MULTI_CDC=y +CONFIG_USB_G_MULTI_RNDIS=y +CONFIG_USB_G_NOKIA=m +CONFIG_USB_G_PRINTER=m +CONFIG_USB_G_SERIAL=m +CONFIG_USB_G_WEBCAM=m +CONFIG_USB_HID=m +CONFIG_USB_HIDDEV=y +CONFIG_USB_HSO=m +CONFIG_USB_HWA_HCD=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_INVENTRA_DMA=y +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_IPHETH=m +CONFIG_USB_IP_COMMON=m +# CONFIG_USB_IP_DEBUG_ENABLE is not set +CONFIG_USB_IP_HOST=m +CONFIG_USB_IP_VHCI_HCD=m +CONFIG_USB_IRDA=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1760_HCD=m +CONFIG_USB_KAWETH=m +CONFIG_USB_KC2190=y +CONFIG_USB_KONICAWC=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +# CONFIG_USB_LIBUSUAL is not set +CONFIG_USB_M5602=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MIDI_GADGET=m +CONFIG_USB_MR800=m +# CONFIG_USB_MUSB_DEBUG is not set +CONFIG_USB_MUSB_HDRC_HCD=y +# CONFIG_USB_MUSB_HOST is not set +CONFIG_USB_MUSB_OTG=y +# CONFIG_USB_MUSB_PERIPHERAL is not set +CONFIG_USB_MUSB_SOC=y +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_INT51X1=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_ZAURUS=m +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_HCD_OMAP3=y +# CONFIG_USB_OHCI_HCD_SSB is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_OTG_UTILS=y +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OV511 is not set +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PRINTER=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_RIO500=m +CONFIG_USB_RTL8150=m +CONFIG_USB_S2255=m +CONFIG_USB_SE401=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_DEBUG=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7715_PARPORT=y +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_SI470X=m +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_DATAFAB=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STV06XX=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_SUSPEND=y +CONFIG_USB_TEST=m +# CONFIG_USB_TI_CPPI_DMA is not set +CONFIG_USB_TMC=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_U132_HCD=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_ULPI=y +CONFIG_USB_USBNET=m +CONFIG_USB_USS720=m +CONFIG_USB_VICAM=m +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_W9968CF=m +CONFIG_USB_WDM=m +CONFIG_USB_WHCI_HCD=m +CONFIG_USB_WUSB=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set +CONFIG_USB_XHCI_HCD=m +# CONFIG_USB_XHCI_HCD_DEBUGGING is not set +CONFIG_USB_XUSBATM=m +CONFIG_USB_ZD1201=m +CONFIG_USB_ZERO=m +# CONFIG_USB_ZERO_HNPTEST is not set +CONFIG_USB_ZR364XX=m +CONFIG_USER_NS=y +CONFIG_USER_RETURN_NOTIFIER=y +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_UTS_NS=y +CONFIG_UWB=m +CONFIG_UWB_HWA=m +CONFIG_UWB_I1480U=m +CONFIG_UWB_I1480U_WLP=m +CONFIG_UWB_WHCI=m +CONFIG_UWB_WLP=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_V4L_USB_DRIVERS=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_VERSION_SIGNATURE="" +CONFIG_VETH=m +CONFIG_VFAT_FS=m +CONFIG_VFP=y +CONFIG_VFPv3=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_VGA_SWITCHEROO=y +CONFIG_VHOST_NET=m +CONFIG_VIA_FIR=m +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_VIA_VELOCITY=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_VMALLOC=m +# CONFIG_VIDEO_ADV7180 is not set +# CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_AK881X=m +CONFIG_VIDEO_ALLOW_V4L1=y +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_CX23885=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX25840=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_DT3155=m +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_FB_IVTV=m +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_GO7007=m +CONFIG_VIDEO_GO7007_OV7640=m +CONFIG_VIDEO_GO7007_SAA7113=m +CONFIG_VIDEO_GO7007_SAA7115=m +CONFIG_VIDEO_GO7007_SONY_TUNER=m +CONFIG_VIDEO_GO7007_TW2804=m +CONFIG_VIDEO_GO7007_TW9903=m +CONFIG_VIDEO_GO7007_UDA1342=m +CONFIG_VIDEO_GO7007_USB=m +CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_IR_I2C=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_MEDIA=m +CONFIG_VIDEO_MEM2MEM_TESTDEV=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_OMAP2_VOUT=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_PMS=m +CONFIG_VIDEO_PVRUSB2=m +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_PVRUSB2_DVB=y +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_SAA7164=m +CONFIG_VIDEO_SAA717X=m +# CONFIG_VIDEO_SAA7191 is not set +CONFIG_VIDEO_SH_MOBILE_CEU=m +CONFIG_VIDEO_STRADIS=m +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_TDA9875 is not set +# CONFIG_VIDEO_THS7303 is not set +CONFIG_VIDEO_TLG2300=m +# CONFIG_VIDEO_TLV320AIC23B is not set +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=y +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_TVEEPROM=m +# CONFIG_VIDEO_TVP514X is not set +CONFIG_VIDEO_TVP7002=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_V4L1=m +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_VP27SMPX=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_CONSOLE=m +CONFIG_VIRTUALIZATION=y +CONFIG_VIRT_TO_BUS=y +CONFIG_VITESSE_PHY=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLSI_FIR=m +CONFIG_VM86=y +CONFIG_VME_BUS=m +CONFIG_VME_USER=m +# CONFIG_VMI is not set +CONFIG_VMIVME_7805=m +# CONFIG_VMSPLIT_1G is not set +# CONFIG_VMSPLIT_2G is not set +CONFIG_VMSPLIT_3G=y +CONFIG_VMWARE_BALLOON=m +CONFIG_VMWARE_PVSCSI=m +CONFIG_VMXNET3=m +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VORTEX=m +CONFIG_VT=y +# CONFIG_VT6655 is not set +CONFIG_VT_CONSOLE=y +CONFIG_VXFS_FS=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_W1=m +CONFIG_W1_CON=y +CONFIG_W1_MASTER_DS1WM=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_GPIO=m +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_THERM=m +CONFIG_W35UND=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83697UG_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_WAFER_WDT=m +CONFIG_WANXL=m +CONFIG_WAN_ROUTER_DRIVERS=m +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WD80x3=m +CONFIG_WDT=m +CONFIG_WDTPCI=m +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PRIV=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WIMAX=m +CONFIG_WIMAX_DEBUG_LEVEL=8 +CONFIG_WIMAX_I2400M=m +CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 +CONFIG_WIMAX_IWMC3200_SDIO=y +CONFIG_WINBOND_840=m +CONFIG_WINBOND_FIR=m +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL1251_SPI=m +CONFIG_WL1271=m +CONFIG_WL1271_SDIO=m +CONFIG_WL1271_SPI=m +CONFIG_WL12XX=m +CONFIG_WLAGS49_H2=m +CONFIG_WLAGS49_H25=m +CONFIG_WLAN=y +CONFIG_WM831X_BACKUP=m +CONFIG_WM831X_POWER=m +CONFIG_WM831X_WATCHDOG=m +CONFIG_WM8350_POWER=m +# CONFIG_WORKQUEUE_TRACER is not set +CONFIG_X86=y +# CONFIG_X86_32_NON_STANDARD is not set +CONFIG_X86_32_SMP=y +CONFIG_X86_64_ACPI_NUMA=y +CONFIG_X86_64_SMP=y +CONFIG_X86_ACPI_CPUFREQ=y +# CONFIG_X86_ANCIENT_MCE is not set +CONFIG_X86_APM_BOOT=y +# CONFIG_X86_BIGSMP is not set +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +CONFIG_X86_BSWAP=y +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_CMOV=y +CONFIG_X86_CMPXCHG=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CPU=y +CONFIG_X86_CPUFREQ_NFORCE2=y +CONFIG_X86_CPUID=m +CONFIG_X86_DEBUGCTLMSR=y +# CONFIG_X86_DECODER_SELFTEST is not set +# CONFIG_X86_ELAN is not set +CONFIG_X86_EXTENDED_PLATFORM=y +CONFIG_X86_E_POWERSAVER=m +CONFIG_X86_GENERIC=y +CONFIG_X86_GX_SUSPMOD=y +CONFIG_X86_HT=y +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_INVLPG=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_LONGHAUL=y +CONFIG_X86_LONGRUN=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_AMD=y +CONFIG_X86_MCE_INJECT=m +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_THRESHOLD=y +CONFIG_X86_MCE_XEON75XX=m +CONFIG_X86_MPPARSE=y +# CONFIG_X86_MRST is not set +CONFIG_X86_MSR=m +CONFIG_X86_NEED_RELOCS=y +CONFIG_X86_P4_CLOCKMOD=m +CONFIG_X86_PAE=y +CONFIG_X86_PAT=y +CONFIG_X86_PCC_CPUFREQ=m +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_X86_PM_TIMER=y +CONFIG_X86_POPAD_OK=y +CONFIG_X86_POWERNOW_K6=y +CONFIG_X86_POWERNOW_K7=y +CONFIG_X86_POWERNOW_K7_ACPI=y +CONFIG_X86_POWERNOW_K8=y +CONFIG_X86_PPRO_FENCE=y +# CONFIG_X86_PTDUMP is not set +# CONFIG_X86_RDC321X is not set +CONFIG_X86_REBOOTFIXUPS=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_RESERVE_LOW_64K=y +CONFIG_X86_SPEEDSTEP_CENTRINO=y +CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y +CONFIG_X86_SPEEDSTEP_ICH=y +CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y +CONFIG_X86_SPEEDSTEP_SMI=y +CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +CONFIG_X86_THERMAL_VECTOR=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_X86_TSC=y +CONFIG_X86_USE_PPRO_CHECKSUM=y +# CONFIG_X86_UV is not set +# CONFIG_X86_VERBOSE_BOOTUP is not set +# CONFIG_X86_VSMP is not set +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_XADD=y +CONFIG_XEN=y +CONFIG_XENFS=m +CONFIG_XEN_BALLOON=y +CONFIG_XEN_COMPAT_XENFS=y +# CONFIG_XEN_DEBUG_FS is not set +CONFIG_XEN_DEV_EVTCHN=m +CONFIG_XEN_FBDEV_FRONTEND=m +CONFIG_XEN_KBDDEV_FRONTEND=m +CONFIG_XEN_MAX_DOMAIN_MEMORY=32 +CONFIG_XEN_SAVE_RESTORE=y +CONFIG_XEN_SCRUB_PAGES=y +CONFIG_XEN_SYS_HYPERVISOR=y +CONFIG_XFRM=y +CONFIG_XFRM_IPCOMP=m +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_USER=m +# CONFIG_XFS_DEBUG is not set +CONFIG_XFS_FS=m +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_QUOTA=y +CONFIG_XFS_RT=y +# CONFIG_XIP_KERNEL is not set +CONFIG_XOR_BLOCKS=m +CONFIG_YAM=m +CONFIG_YELLOWFIN=m +CONFIG_YENTA=m +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_ZEROPLUS_FF=y +CONFIG_ZISOFS=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZNET=m +CONFIG_ZONE_DMA=y --- linux-2.6.35.orig/debian.master/config/enforce +++ linux-2.6.35/debian.master/config/enforce @@ -0,0 +1,60 @@ +# +# SECURITY items +# +# Ensure this option is enabled. +value CONFIG_COMPAT_BRK n +value CONFIG_DEVKMEM n +value CONFIG_LSM_MMAP_MIN_ADDR 0 +value CONFIG_SECURITY y +!exists CONFIG_SECURITY_FILE_CAPABILITIES | value CONFIG_SECURITY_FILE_CAPABILITIES y +value CONFIG_SECURITY_SELINUX y +value CONFIG_SECURITY_SMACK y +value CONFIG_SECURITY_YAMA y +value CONFIG_SYN_COOKIES y +value CONFIG_DEFAULT_SECURITY_APPARMOR y +# For architectures which support this option ensure it is enabled. +!exists CONFIG_SECCOMP | value CONFIG_SECCOMP y +!exists CONFIG_CC_STACKPROTECTOR | value CONFIG_CC_STACKPROTECTOR y +!exists CONFIG_DEBUG_RODATA | value CONFIG_DEBUG_RODATA y +!exists CONFIG_STRICT_DEVMEM | value CONFIG_STRICT_DEVMEM y +# For architectures which support this option ensure it is disabled. +!exists CONFIG_COMPAT_VDSO | value CONFIG_COMPAT_VDSO n +# Default to 32768 for armel, 65536 for everything else. +( arch armel & value CONFIG_DEFAULT_MMAP_MIN_ADDR 32768 ) | \ + ( value CONFIG_DEFAULT_MMAP_MIN_ADDR 65536) + +# CONFIG_USB_DEVICE_FS breaks udev USB firmware loading and is deprecated +# ensure it is disabled. +value CONFIG_USB_DEVICEFS n + +# upstart requires DEVTMPFS be enabled and mounted by default. +value CONFIG_DEVTMPFS y +value CONFIG_DEVTMPFS_MOUNT y + +# some /dev nodes require POSIX ACLs, like /dev/dsp +value CONFIG_TMPFS_POSIX_ACL y + +# Ramdisk size should be a minimum of 64M +value CONFIG_BLK_DEV_RAM_SIZE 65536 + +# LVM requires dm_mod built in to activate correctly (LP: #560717) +value CONFIG_BLK_DEV_DM y + +# sysfs: ensure all DEPRECATED items are off +value CONFIG_SYSFS_DEPRECATED_V2 n +!exists CONFIG_SYSFS_DEPRECATED | value CONFIG_SYSFS_DEPRECATED n + +# automatically add local version will cause packaging failure +value CONFIG_LOCALVERSION_AUTO n + +# provide framebuffer console form the start +# UbuntuSpec:foundations-m-grub2-boot-framebuffer +value CONFIG_FRAMEBUFFER_CONSOLE y + +# GRUB changes will rely on built in vesafb on x86, +# UbuntuSpec:foundations-m-grub2-boot-framebuffer +(( arch i386 | arch amd64 ) & value CONFIG_FB_VESA y) | \ + value CONFIG_FB_VESA m | !exists CONFIG_FB_VESA + +# Build in uinput module so that it's always available (LP: 584812) +value CONFIG_INPUT_UINPUT y --- linux-2.6.35.orig/debian.master/config/config.common.ports +++ linux-2.6.35/debian.master/config/config.common.ports @@ -0,0 +1,4251 @@ +# +# Common config options automatically generated by splitconfig.pl +# +CONFIG_3C359=m +# CONFIG_40x is not set +# CONFIG_44x is not set +CONFIG_64BIT=y +CONFIG_6PACK=m +CONFIG_6xx=y +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_8129=y +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_9P_FS=m +# CONFIG_9P_FSCACHE is not set +CONFIG_AB3100_CORE=y +CONFIG_AB3100_OTP=m +CONFIG_AB3550_CORE=y +CONFIG_AB8500_CORE=y +CONFIG_ABX500_CORE=y +CONFIG_ABYSS=m +CONFIG_AC97_BUS=m +# CONFIG_ACCESSIBILITY is not set +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_ACT200L_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_AD525X_DPOT=m +CONFIG_AD525X_DPOT_I2C=m +CONFIG_AD525X_DPOT_SPI=m +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_ADB=y +CONFIG_ADB_CUDA=y +CONFIG_ADB_MACIO=y +CONFIG_ADB_PMU=y +CONFIG_ADB_PMU_LED=y +# CONFIG_ADB_PMU_LED_IDE is not set +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_ADIS16255=m +CONFIG_ADM8211=m +# CONFIG_ADVANCED_OPTIONS is not set +CONFIG_AFFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_AFS_FS=m +# CONFIG_AFS_FSCACHE is not set +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_AGP=m +CONFIG_AGP_UNINORTH=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_AIO=y +CONFIG_AIRO=m +CONFIG_AIRO_CS=m +# CONFIG_ALIM7101_WDT is not set +CONFIG_ALI_FIR=m +CONFIG_ALTIVEC=y +CONFIG_AMD8111_ETH=m +# CONFIG_AMIGAONE is not set +CONFIG_AMIGA_PARTITION=y +CONFIG_ANON_INODES=y +CONFIG_ANSLCD=m +CONFIG_APM_EMULATION=m +CONFIG_APM_POWER=m +CONFIG_APPLE_AIRPORT=m +CONFIG_APPLICOM=m +CONFIG_AR9170_LEDS=y +CONFIG_AR9170_USB=m +CONFIG_ARCH_CPU_PROBE_RELEASE=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_HAS_ILOG2_U32=y +CONFIG_ARCH_HAS_ILOG2_U64=y +CONFIG_ARCH_HAS_WALK_MEMORY=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_ARCH_MEMORY_PROBE=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_WANTS_FREEZER_CONTROL=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_ARCNET=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_RIM_I=m +# CONFIG_ARPD is not set +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_ASUS_OLED is not set +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_ASYNC_RAID6_TEST=m +CONFIG_ASYNC_XOR=m +CONFIG_AT76C50X_USB=m +CONFIG_ATA=y +CONFIG_ATALK=m +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_BMDMA=y +CONFIG_ATA_GENERIC=m +CONFIG_ATA_OVER_ETH=m +CONFIG_ATA_PIIX=m +CONFIG_ATA_SFF=y +CONFIG_ATA_VERBOSE_ERROR=y +# CONFIG_ATH5K is not set +CONFIG_ATH9K=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_DEBUGFS=y +CONFIG_ATH9K_HTC=m +CONFIG_ATH9K_HTC_DEBUGFS=y +CONFIG_ATH9K_HW=m +CONFIG_ATH_COMMON=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATL1=m +CONFIG_ATL1C=m +CONFIG_ATL1E=m +CONFIG_ATL2=m +CONFIG_ATM=m +CONFIG_ATMEL=m +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_FORE200E_TX_RETRY=16 +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_LANAI=m +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +CONFIG_ATM_SOLOS=m +CONFIG_ATM_TCP=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_ARCH=y +CONFIG_AUDIT_TREE=y +CONFIG_AUFS_BDEV_LOOP=y +# CONFIG_AUFS_BRANCH_MAX_1023 is not set +CONFIG_AUFS_BRANCH_MAX_127=y +# CONFIG_AUFS_BRANCH_MAX_32767 is not set +# CONFIG_AUFS_BRANCH_MAX_511 is not set +CONFIG_AUFS_BR_FUSE=y +CONFIG_AUFS_BR_HFSPLUS=y +CONFIG_AUFS_BR_RAMFS=y +# CONFIG_AUFS_DEBUG is not set +# CONFIG_AUFS_EXPORT is not set +CONFIG_AUFS_FS=m +# CONFIG_AUFS_HNOTIFY is not set +CONFIG_AUFS_POLL=y +# CONFIG_AUFS_RDU is not set +# CONFIG_AUFS_SHWH is not set +# CONFIG_AUFS_SP_IATTR is not set +CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS_FS=m +CONFIG_AUXDISPLAY=y +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_B43=m +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_DEBUG=y +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +CONFIG_B43LEGACY_HWRNG=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PIO=y +# CONFIG_B43LEGACY_PIO_MODE is not set +# CONFIG_B43_DEBUG is not set +CONFIG_B43_HWRNG=y +CONFIG_B43_LEDS=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_PCI_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +CONFIG_B43_PHY_LP=y +CONFIG_B43_PIO=y +# CONFIG_B43_SDIO is not set +CONFIG_B44=m +CONFIG_B44_PCI=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_BACKLIGHT_88PM860X=m +CONFIG_BACKLIGHT_ADP5520=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DA903X=m +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_MAX8925=m +CONFIG_BACKLIGHT_PCF50633=m +CONFIG_BACKLIGHT_WM831X=m +# CONFIG_BACKTRACE_SELF_TEST is not set +CONFIG_BASE_FULL=y +CONFIG_BASE_SMALL=0 +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_BATTERY_BQ27x00=m +CONFIG_BATTERY_DA9030=m +CONFIG_BATTERY_DS2760=m +CONFIG_BATTERY_DS2782=m +CONFIG_BATTERY_MAX17040=m +CONFIG_BATTERY_PMU=m +CONFIG_BAYCOM_EPP=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +# CONFIG_BDI_SWITCH is not set +CONFIG_BE2ISCSI=m +CONFIG_BE2NET=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BINARY_PRINTF=y +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +CONFIG_BITREVERSE=y +# CONFIG_BLK_CGROUP is not set +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_3W_XXXX_RAID=m +# CONFIG_BLK_DEV_AEC62XX is not set +# CONFIG_BLK_DEV_ALI15X3 is not set +# CONFIG_BLK_DEV_AMD74XX is not set +CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_CMD64X is not set +CONFIG_BLK_DEV_COMPCACHE=m +# CONFIG_BLK_DEV_COMPCACHE_DEBUG is not set +# CONFIG_BLK_DEV_COMPCACHE_STATS is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_CS5520 is not set +# CONFIG_BLK_DEV_CS5530 is not set +CONFIG_BLK_DEV_DAC960=m +# CONFIG_BLK_DEV_DELKIN is not set +CONFIG_BLK_DEV_DM=y +# CONFIG_BLK_DEV_DRBD is not set +CONFIG_BLK_DEV_FD=m +# CONFIG_BLK_DEV_GENERIC is not set +# CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_HPT366 is not set +CONFIG_BLK_DEV_IDECD=y +CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDEDMA=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_IDEDMA_SFF=y +CONFIG_BLK_DEV_IDEPCI=y +# CONFIG_BLK_DEV_IDETAPE is not set +CONFIG_BLK_DEV_IDE_PMAC=y +CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_BLK_DEV_IT8172 is not set +# CONFIG_BLK_DEV_IT8213 is not set +# CONFIG_BLK_DEV_IT821X is not set +# CONFIG_BLK_DEV_JMICRON is not set +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_NBD=m +# CONFIG_BLK_DEV_NS87415 is not set +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_OSD=m +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_PDC202XX_OLD is not set +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_PLATFORM is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +# CONFIG_BLK_DEV_SC1200 is not set +CONFIG_BLK_DEV_SD=m +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SL82C105 is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_BLK_DEV_SVWKS is not set +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_TC86C001 is not set +# CONFIG_BLK_DEV_TRIFLEX is not set +# CONFIG_BLK_DEV_TRM290 is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_BLK_DEV_XIP is not set +CONFIG_BLOCK=y +CONFIG_BLOCK_COMPAT=y +CONFIG_BMAC=m +CONFIG_BNX2=m +CONFIG_BNX2X=m +CONFIG_BONDING=m +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_BOOTX_TEXT is not set +# CONFIG_BOOT_TRACER is not set +CONFIG_BOUNCE=y +CONFIG_BPQETHER=m +CONFIG_BRANCH_PROFILE_NONE=y +CONFIG_BRIDGE=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_NFLOG=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIQ_PANEL=m +CONFIG_BROADCOM_PHY=m +CONFIG_BROKEN_ON_SMP=y +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_BT=m +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_BT_ATH3K=m +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIVHCI=m +CONFIG_BT_HIDP=m +CONFIG_BT_L2CAP=m +# CONFIG_BT_L2CAP_EXT_FEATURES is not set +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_SCO=m +CONFIG_BUG=y +CONFIG_C2PORT=m +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set +CONFIG_CAIF=m +# CONFIG_CAIF_DEBUG is not set +CONFIG_CAIF_NETDEV=m +CONFIG_CAIF_TTY=m +CONFIG_CAN=m +CONFIG_CAN_BCM=m +# CONFIG_CAN_CALC_BITTIMING is not set +# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_CAN_DEV=m +CONFIG_CAN_EMS_PCI=m +CONFIG_CAN_EMS_USB=m +CONFIG_CAN_JANZ_ICAN3=m +CONFIG_CAN_KVASER_PCI=m +CONFIG_CAN_MCP251X=m +CONFIG_CAN_MSCAN=m +CONFIG_CAN_PLX_PCI=m +CONFIG_CAN_RAW=m +CONFIG_CAN_SJA1000=m +CONFIG_CAN_SJA1000_OF_PLATFORM=m +CONFIG_CAN_SJA1000_PLATFORM=m +CONFIG_CAN_VCAN=m +CONFIG_CARDBUS=y +# CONFIG_CARDMAN_4000 is not set +# CONFIG_CARDMAN_4040 is not set +# CONFIG_CARMINE_DRAM_CUSTOM is not set +CONFIG_CASSINI=m +CONFIG_CB710_CORE=m +# CONFIG_CB710_DEBUG is not set +CONFIG_CB710_DEBUG_ASSUMPTIONS=y +CONFIG_CBE_CPUFREQ_SPU_GOVERNOR=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEPH_FS=m +# CONFIG_CEPH_FS_PRETTYDEBUG is not set +CONFIG_CFG80211=m +CONFIG_CFG80211_DEBUGFS=y +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +CONFIG_CGROUPS=y +# CONFIG_CGROUP_CPUACCT is not set +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_NS=y +# CONFIG_CGROUP_SCHED is not set +CONFIG_CHARGER_PCF50633=m +CONFIG_CHECK_SIGNATURE=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T3_DEPENDS=y +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4_DEPENDS=y +CONFIG_CHR_DEV_OSST=m +CONFIG_CHR_DEV_SCH=m +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_ST=m +CONFIG_CICADA_PHY=m +CONFIG_CIFS=m +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_WEAK_PW_HASH=y +# CONFIG_CIFS_XATTR is not set +CONFIG_CISS_SCSI_TAPE=y +CONFIG_CLS_U32_MARK=y +# CONFIG_CLS_U32_PERF is not set +# CONFIG_CMDLINE_BOOL is not set +CONFIG_CNIC=m +CONFIG_CODA_FS=m +# CONFIG_CODE_PATCHING_SELFTEST is not set +# CONFIG_COMEDI is not set +# CONFIG_COMPACTION is not set +CONFIG_COMPAT=y +CONFIG_COMPAT_BINFMT_ELF=y +# CONFIG_COMPAT_BRK is not set +CONFIG_COMPAT_NETLINK_MESSAGES=y +CONFIG_COMPUTONE=m +CONFIG_CONFIGFS_FS=m +CONFIG_CONNECTOR=m +CONFIG_CONSOLE_POLL=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_CONSTRUCTORS=y +CONFIG_CONTEXT_SWITCH_TRACER=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_CPUSETS=y +CONFIG_CPU_FREQ=y +# CONFIG_CPU_FREQ_DEBUG is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_PMAC=y +CONFIG_CPU_FREQ_PMAC64=y +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +CONFIG_CRAMFS=m +# CONFIG_CRASH_DUMP is not set +CONFIG_CRC16=y +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC_T10DIF=m +CONFIG_CROSS_COMPILE="" +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_CCM is not set +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CRYPTD=m +# CONFIG_CRYPTO_CTR is not set +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=m +# CONFIG_CRYPTO_DEV_HIFN_795X is not set +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_FIPS=y +# CONFIG_CRYPTO_GCM is not set +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_MANAGER_TESTS is not set +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_PCOMP=y +CONFIG_CRYPTO_PCRYPT=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +# CONFIG_CRYPTO_SALSA20 is not set +CONFIG_CRYPTO_SEED=m +# CONFIG_CRYPTO_SEQIV is not set +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_VMAC=m +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_ZLIB=m +CONFIG_CRYSTALHD=m +CONFIG_CUSE=m +CONFIG_CXT1E1=m +CONFIG_CYCLADES=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +# CONFIG_CYZ_INTR is not set +# CONFIG_DAB is not set +CONFIG_DAVICOM_PHY=m +CONFIG_DCB=y +CONFIG_DE2104X=m +CONFIG_DE2104X_DSL=0 +CONFIG_DE4X5=m +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_DEBUGGER=y +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_CREDENTIALS is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_DEBUG_FS=y +# CONFIG_DEBUG_GPIO is not set +# CONFIG_DEBUG_HIGHMEM is not set +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +CONFIG_DECNET=m +CONFIG_DECNET_NF_GRABULATOR=m +# CONFIG_DECNET_ROUTER is not set +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_LZO=y +# CONFIG_DEFAULT_BIC is not set +CONFIG_DEFAULT_CFQ=y +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_HTCP is not set +# CONFIG_DEFAULT_HYBLA is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +# CONFIG_DEFAULT_NOOP is not set +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_SECURITY="apparmor" +CONFIG_DEFAULT_SECURITY_APPARMOR=y +# CONFIG_DEFAULT_SECURITY_DAC is not set +# CONFIG_DEFAULT_SECURITY_SELINUX is not set +# CONFIG_DEFAULT_SECURITY_SMACK is not set +# CONFIG_DEFAULT_SECURITY_TOMOYO is not set +# CONFIG_DEFAULT_SECURITY_YAMA is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_DEFAULT_UIMAGE is not set +# CONFIG_DEFAULT_VEGAS is not set +# CONFIG_DEFAULT_VENO is not set +# CONFIG_DEFAULT_WESTWOOD is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_DEVKMEM is not set +CONFIG_DEVPORT=y +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DEV_APPLETALK=m +CONFIG_DIGIEPCA=m +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_DISPLAY_SUPPORT=m +CONFIG_DL2K=m +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +CONFIG_DM9102=m +# CONFIG_DMADEVICES is not set +# CONFIG_DMA_API_DEBUG is not set +CONFIG_DM_CRYPT=m +# CONFIG_DM_DEBUG is not set +# CONFIG_DM_DELAY is not set +# CONFIG_DM_LOG_USERSPACE is not set +CONFIG_DM_MIRROR=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +# CONFIG_DM_RAID45 is not set +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_UEVENT=y +CONFIG_DM_ZERO=m +CONFIG_DNET=m +CONFIG_DNOTIFY=y +CONFIG_DONGLE=y +CONFIG_DRAGONRISE_FF=y +CONFIG_DRM=m +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_KMS_HELPER=m +CONFIG_DRM_MGA=m +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_NOUVEAU_BACKLIGHT=y +CONFIG_DRM_NOUVEAU_DEBUG=y +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_KMS=y +CONFIG_DRM_SAVAGE=m +CONFIG_DRM_SIS=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_TTM=m +CONFIG_DRM_VIA=m +# CONFIG_DRM_VMWGFX is not set +CONFIG_DS1682=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DT3155=m +# CONFIG_DT3155_CCIR is not set +CONFIG_DTC=y +CONFIG_DUMMY=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_DVB_AF9013=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_B2C2_FLEXCOP=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_BT8XX=m +# CONFIG_DVB_BUDGET_CORE is not set +CONFIG_DVB_CAPTURE_DRIVERS=y +CONFIG_DVB_CORE=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_DM1105=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_DYNAMIC_MINORS=y +# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_FIREWIRE=y +CONFIG_DVB_FIREDTV_IEEE1394=y +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_DVB_HOPPER=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_L64781=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_LNBP21=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_MB86A16=m +CONFIG_DVB_MT312=m +CONFIG_DVB_MT352=m +CONFIG_DVB_NGENE=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_PLL=m +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_PT1=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_S5H1411=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STV0297=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV6110x=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_USB=m +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_CXUSB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_DW2102=m +# CONFIG_DVB_USB_EC168 is not set +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_VES1820=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_ZL10353=m +# CONFIG_DYNAMIC_DEBUG is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +# CONFIG_E200 is not set +CONFIG_EARLY_PRINTK=y +# CONFIG_ECHO is not set +CONFIG_ECONET=m +CONFIG_ECONET_AUNUDP=y +CONFIG_ECONET_NATIVE=y +CONFIG_ECRYPT_FS=y +CONFIG_EDAC=y +# CONFIG_EDAC_AMD8111 is not set +# CONFIG_EDAC_AMD8131 is not set +# CONFIG_EDAC_CPC925 is not set +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_MM_EDAC=m +# CONFIG_EDAC_PASEMI is not set +CONFIG_EEH=y +CONFIG_EEPROM_93CX6=m +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EFI_PARTITION=y +CONFIG_EFS_FS=m +# CONFIG_ELECTRA_CF is not set +CONFIG_ELF_CORE=y +# CONFIG_EMBEDDED is not set +# CONFIG_EMBEDDED6xx is not set +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENC28J60 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +CONFIG_ENIC=m +CONFIG_EPIC100=m +CONFIG_EPOLL=y +CONFIG_EQUALIZER=m +CONFIG_ESI_DONGLE=m +# CONFIG_ET131X is not set +CONFIG_ETHOC=m +CONFIG_EVENTFD=y +CONFIG_EVENT_TRACING=y +# CONFIG_EXOFS_DEBUG is not set +CONFIG_EXOFS_FS=m +CONFIG_EXPERIMENTAL=y +CONFIG_EXPORTFS=m +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XATTR=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_DEFAULTS_TO_ORDERED=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT3_FS_XATTR=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXTRA_FIRMWARE="" +CONFIG_EXTRA_TARGETS="" +# CONFIG_EZX_PCAP is not set +CONFIG_FARSYNC=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_FS=m +# CONFIG_FAULT_INJECTION is not set +CONFIG_FB=y +CONFIG_FB_3DFX=y +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_3DFX_I2C=y +CONFIG_FB_ARK=m +CONFIG_FB_ASILIANT=y +CONFIG_FB_ATY=y +CONFIG_FB_ATY128=y +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_BROADSHEET=m +CONFIG_FB_CARMINE=m +CONFIG_FB_CARMINE_DRAM_EVAL=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_CIRRUS=m +CONFIG_FB_CONTROL=y +CONFIG_FB_CT65550=y +CONFIG_FB_CYBER2000=m +CONFIG_FB_DDC=y +CONFIG_FB_DEFERRED_IO=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_IBM_GXT4500=m +CONFIG_FB_IMSTT=y +CONFIG_FB_KYRO=m +CONFIG_FB_MACMODES=y +CONFIG_FB_MATROX=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MB862XX=m +CONFIG_FB_MB862XX_PCI_GDC=y +CONFIG_FB_METRONOME=m +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_BACKLIGHT=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_I2C=y +CONFIG_FB_OF=y +CONFIG_FB_PLATINUM=y +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_PM3=m +CONFIG_FB_PS3=y +CONFIG_FB_PS3_DEFAULT_SIZE_M=9 +CONFIG_FB_RADEON=y +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_BACKLIGHT=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_I2C=y +CONFIG_FB_S1D13XXX=m +CONFIG_FB_S3=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_SM501=m +CONFIG_FB_SM7XX=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +CONFIG_FB_TRIDENT=m +# CONFIG_FB_UDL is not set +CONFIG_FB_UVESA=m +CONFIG_FB_VALKYRIE=y +# CONFIG_FB_VGA16 is not set +CONFIG_FB_VIA=m +# CONFIG_FB_VIA_DIRECT_PROCFS is not set +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VOODOO1=y +CONFIG_FB_VT8623=m +CONFIG_FB_XGI=m +CONFIG_FCOE=m +CONFIG_FDDI=y +CONFIG_FEALNX=m +CONFIG_FIB_RULES=y +CONFIG_FILE_LOCKING=y +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_NET=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_OHCI_DEBUG=y +# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +CONFIG_FIREWIRE_SBP2=m +CONFIG_FIRMWARE_EDID=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_FIXED_PHY=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FORCEDETH=m +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FRAME_POINTER=y +CONFIG_FRAME_WARN=1024 +CONFIG_FREEZER=y +# CONFIG_FSAM7400 is not set +CONFIG_FSCACHE=m +# CONFIG_FSCACHE_DEBUG is not set +CONFIG_FSCACHE_HISTOGRAM=y +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_FSCACHE_STATS=y +# CONFIG_FSL_ULI1575 is not set +CONFIG_FSNOTIFY=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FTL=m +CONFIG_FTRACE=y +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_FTR_FIXUP_SELFTEST is not set +CONFIG_FUNCTION_GRAPH_TRACER=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUSE_FS=y +CONFIG_FUSION=y +CONFIG_FUSION_CTL=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_LOGGING=y +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_SAS=m +CONFIG_FUSION_SPI=m +CONFIG_FUTEX=y +CONFIG_FW_LOADER=y +CONFIG_GACT_PROB=y +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GARP=m +# CONFIG_GCOV_KERNEL is not set +CONFIG_GELIC_NET=m +CONFIG_GELIC_WIRELESS=y +CONFIG_GENERIC_ACL=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_GENERIC_FIND_LAST_BIT=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y +CONFIG_GENERIC_HWEIGHT=y +# CONFIG_GENERIC_IOMAP is not set +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_NVRAM=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_TRACER=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=y +CONFIG_GIRBIL_DONGLE=m +CONFIG_GPIOLIB=y +CONFIG_GPIO_ADP5520=m +CONFIG_GPIO_ADP5588=m +CONFIG_GPIO_CS5535=m +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_JANZ_TTL=m +CONFIG_GPIO_LANGWELL=y +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX7301=m +CONFIG_GPIO_MAX730X=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_MC33880=m +CONFIG_GPIO_MCP23S08=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_RDC321X=m +CONFIG_GPIO_SCH=m +# CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_TC35892=y +CONFIG_GPIO_TIMBERDALE=y +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_UCB1400=y +CONFIG_GPIO_WM831X=m +CONFIG_GPIO_WM8350=m +CONFIG_GPIO_WM8994=m +CONFIG_GPIO_XILINX=y +CONFIG_GREENASIA_FF=y +CONFIG_HAMACHI=m +CONFIG_HAMRADIO=y +CONFIG_HANGCHECK_TIMER=m +CONFIG_HAPPYMEAL=m +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +# CONFIG_HAS_RAPIDIO is not set +# CONFIG_HAVE_AOUT is not set +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HAVE_IDE=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_HAVE_MTD_OTP=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_SYSCALL_WRAPPERS=y +# CONFIG_HCALL_STATS is not set +CONFIG_HDLC=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_X25=m +# CONFIG_HEADERS_CHECK is not set +CONFIG_HERMES=m +CONFIG_HERMES_CACHE_FW_ON_INIT=y +# CONFIG_HERMES_PRISM is not set +CONFIG_HFSPLUS_FS=m +CONFIG_HFS_FS=m +CONFIG_HIBERNATION=y +CONFIG_HID=m +CONFIG_HIDRAW=y +CONFIG_HID_3M_PCT=m +CONFIG_HID_A4TECH=m +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CANDO=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +CONFIG_HID_EGALAX=m +CONFIG_HID_EZKEY=m +CONFIG_HID_GREENASIA=m +CONFIG_HID_GYRATION=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_KYE=m +CONFIG_HID_LOGITECH=m +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_MOSART=m +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PID=y +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_HID_SONY=m +CONFIG_HID_STANTUM=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID_THRUSTMASTER=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_WACOM=m +CONFIG_HID_WACOM_POWER_SUPPLY=y +CONFIG_HID_ZEROPLUS=m +CONFIG_HID_ZYDACRON=m +CONFIG_HIGHMEM=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HIPPI=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_CS=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_PLX=m +CONFIG_HOTPLUG=y +CONFIG_HOTPLUG_CPU=y +# CONFIG_HOTPLUG_PCI is not set +CONFIG_HP100=m +CONFIG_HPFS_FS=m +CONFIG_HTC_I2CPLD=y +CONFIG_HTC_PASIC3=m +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y +# CONFIG_HVC_CONSOLE is not set +CONFIG_HVC_DRIVER=y +CONFIG_HVC_RTAS=y +CONFIG_HVC_UDBG=y +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_HWMON_VID=m +CONFIG_HW_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_PASEMI=y +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +CONFIG_I2C=y +CONFIG_I2C_ALGOBIT=y +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_COMPAT=y +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CORE is not set +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_HYDRA=m +CONFIG_I2C_I801=m +CONFIG_I2C_ISCH=m +CONFIG_I2C_MPC=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +# CONFIG_I2C_PASEMI is not set +CONFIG_I2C_PCA_PLATFORM=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_POWERMAC=y +CONFIG_I2C_SI470X=m +CONFIG_I2C_SI4713=m +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_SMBUS=m +CONFIG_I2C_STUB=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_XILINX=m +CONFIG_I2O=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_BUS=m +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_PROC=m +CONFIG_I2O_SCSI=m +CONFIG_I82092=m +# CONFIG_IBMEBUS is not set +CONFIG_IBMLS=m +CONFIG_IBMOL=m +# CONFIG_IBMVETH is not set +CONFIG_IBMVIO=y +# CONFIG_IBM_BSR is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_ZMII is not set +CONFIG_ICPLUS_PHY=m +CONFIG_ICS932S401=m +CONFIG_IDE=y +CONFIG_IDEPCI_PCIBUS_ORDER=y +CONFIG_IDE_ATAPI=y +CONFIG_IDE_GD=y +CONFIG_IDE_GD_ATA=y +# CONFIG_IDE_GD_ATAPI is not set +# CONFIG_IDE_PHISON is not set +CONFIG_IDE_PROC_FS=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_TIMINGS=y +CONFIG_IDE_XFER_MODE=y +CONFIG_IEEE1394=m +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_ETH1394=m +CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y +CONFIG_IEEE1394_OHCI1394=m +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE802154=m +CONFIG_IEEE802154_DRIVERS=m +# CONFIG_IEEE802154_FAKEHARD is not set +CONFIG_IFB=m +# CONFIG_IGB is not set +CONFIG_IGBVF=m +# CONFIG_IIO is not set +# CONFIG_IKCONFIG is not set +# CONFIG_IMA is not set +CONFIG_INET=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET_AH=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_INET_DIAG=y +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_LRO=y +CONFIG_INET_TCP_DIAG=y +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_AMSO1100=m +CONFIG_INFINIBAND_AMSO1100_DEBUG=y +CONFIG_INFINIBAND_CXGB3=m +# CONFIG_INFINIBAND_CXGB3_DEBUG is not set +CONFIG_INFINIBAND_CXGB4=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_ISER=m +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +# CONFIG_INFINIBAND_NES is not set +CONFIG_INFINIBAND_QIB=m +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFTL=m +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_INIT_PASS_ALL_PARAMS=y +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_INPUT=y +CONFIG_INPUT_88PM860X_ONKEY=m +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_AD714X_SPI=m +CONFIG_INPUT_ADBHID=y +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_EVDEV=m +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_MAX8925_ONKEY=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_WM831X_ON=m +CONFIG_INPUT_YEALINK=m +CONFIG_IOMMU_HELPER=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_NOOP=y +CONFIG_IP1000=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +# CONFIG_IPC_NS is not set +CONFIG_IPDDP=m +CONFIG_IPDDP_DECAP=y +CONFIG_IPDDP_ENCAP=y +# CONFIG_IPIC is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_POWEROFF=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPV6=m +# CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_IPV6_MULTIPLE_TABLES is not set +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT_6RD=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPW2100=m +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2100_MONITOR=y +CONFIG_IPW2200=m +# CONFIG_IPW2200_DEBUG is not set +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +CONFIG_IPW2200_RADIOTAP=y +# CONFIG_IPWIRELESS is not set +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +CONFIG_IP_DCCP_CCID3=y +# CONFIG_IP_DCCP_CCID3_DEBUG is not set +CONFIG_IP_DCCP_CCID3_RTO=100 +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_DCCP_TFRC_LIB=y +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_MULTICAST=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_IP_PNP is not set +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_SCTP=m +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_IPV6=y +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_SCTP=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_TAB_BITS=12 +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_WRR=m +CONFIG_IRCOMM=m +CONFIG_IRDA=m +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_DEBUG=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +CONFIG_IRLAN=m +CONFIG_IRNET=m +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_IRQ_ALL_CPUS is not set +CONFIG_IRQ_PER_CPU=y +CONFIG_IRTTY_SIR=m +CONFIG_IR_CORE=m +CONFIG_IR_IMON=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_STREAMZAP=m +# CONFIG_ISA is not set +CONFIG_ISA_DMA_API=y +CONFIG_ISCSI_TCP=m +# CONFIG_ISDN is not set +# CONFIG_ISI is not set +CONFIG_ISL29003=m +CONFIG_ISO9660_FS=m +CONFIG_ISTALLION=m +# CONFIG_IWL3945 is not set +# CONFIG_IWL4965 is not set +CONFIG_IWL5000=y +CONFIG_IWLAGN=m +CONFIG_IWLWIFI=m +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLWIFI_DEVICE_TRACING=y +CONFIG_IWM=m +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +CONFIG_IWMC3200TOP_DEBUGFS=y +# CONFIG_IWM_DEBUG is not set +CONFIG_IWM_TRACING=y +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBEVF=m +CONFIG_IXGBE_DCB=y +CONFIG_JBD=y +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +# CONFIG_JBD_DEBUG is not set +CONFIG_JFFS2_CMODE_FAVOURLZO=y +# CONFIG_JFFS2_CMODE_NONE is not set +# CONFIG_JFFS2_CMODE_PRIORITY is not set +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_SUMMARY is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_JME=m +CONFIG_JOLIET=y +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_WALKERA0701=m +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_KARMA_PARTITION=y +CONFIG_KDB_KEYBOARD=y +CONFIG_KEXEC=y +CONFIG_KEYBOARD_ADP5520=m +CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_MATRIX=m +CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_OPENCORES=m +# CONFIG_KEYBOARD_QT2160 is not set +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_TWL4030=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYS=y +CONFIG_KEYS_COMPAT=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +CONFIG_KGDB_KDB=y +CONFIG_KGDB_SERIAL_CONSOLE=y +# CONFIG_KGDB_TESTS is not set +CONFIG_KINGSUN_DONGLE=m +# CONFIG_KMEMTRACE is not set +CONFIG_KPROBES=y +# CONFIG_KPROBES_SANITY_TEST is not set +CONFIG_KPROBE_EVENT=y +CONFIG_KRETPROBES=y +CONFIG_KS0108=m +CONFIG_KS0108_DELAY=2 +CONFIG_KS0108_PORT=0x378 +CONFIG_KS8842=m +CONFIG_KS8851=m +CONFIG_KS8851_MLL=m +CONFIG_KS959_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KSM=y +CONFIG_KSZ884X_PCI=m +CONFIG_KVM=y +CONFIG_KVM_BOOK3S_32=m +CONFIG_KVM_BOOK3S_32_HANDLER=y +# CONFIG_KVM_BOOK3S_64 is not set +CONFIG_KVM_BOOK3S_HANDLER=y +CONFIG_KVM_MMIO=y +CONFIG_L2TP=m +CONFIG_L2TP_DEBUGFS=m +# CONFIG_L2TP_V3 is not set +CONFIG_LANMEDIA=m +CONFIG_LAPB=m +CONFIG_LAPBETHER=m +CONFIG_LBDAF=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_ILI9320=m +CONFIG_LCD_L4F00242T03=m +CONFIG_LCD_LMS283GF05=m +CONFIG_LCD_LTV350QV=m +CONFIG_LCD_PLATFORM=m +CONFIG_LCD_S6E63M0=m +CONFIG_LCD_TDO24M=m +CONFIG_LCD_VGG2432A4=m +# CONFIG_LDM_DEBUG is not set +CONFIG_LDM_PARTITION=y +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_ADP5520=m +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_DA903X=m +CONFIG_LEDS_DAC124S085=m +# CONFIG_LEDS_GPIO is not set +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_MC13783=m +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_PCA955X is not set +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +# CONFIG_LEDS_TRIGGER_IDE_DISK is not set +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_WM831X_STATUS=m +CONFIG_LEDS_WM8350=m +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=0 +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +CONFIG_LIB80211_CRYPT_WEP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_LIBCRC32C=m +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_CS=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y +CONFIG_LIBERTAS_SDIO=m +CONFIG_LIBERTAS_SPI=m +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +# CONFIG_LINE6_USB is not set +CONFIG_LIRC=m +CONFIG_LIRC_BT829=m +CONFIG_LIRC_I2C=m +CONFIG_LIRC_IGORPLUGUSB=m +CONFIG_LIRC_IMON=m +# CONFIG_LIRC_PARALLEL is not set +CONFIG_LIRC_SASEM=m +CONFIG_LIRC_SERIAL=m +CONFIG_LIRC_SERIAL_TRANSMITTER=y +CONFIG_LIRC_SIR=m +CONFIG_LIRC_STAGING=y +CONFIG_LIRC_TTUSBIR=m +CONFIG_LIRC_ZILOG=m +CONFIG_LITELINK_DONGLE=m +# CONFIG_LKDTM is not set +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCKD=m +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_LOCKD_V4=y +CONFIG_LOCK_KERNEL=y +# CONFIG_LOCK_STAT is not set +# CONFIG_LOGFS is not set +CONFIG_LOGIG940_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGITECH_FF=y +# CONFIG_LOGO is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOWMEM_SIZE=0x30000000 +# CONFIG_LPARCFG is not set +CONFIG_LPC_SCH=m +# CONFIG_LP_CONSOLE is not set +CONFIG_LSI_ET1011C_PHY=m +CONFIG_LSM_MMAP_MIN_ADDR=0 +CONFIG_LXT_PHY=m +CONFIG_LZO_DECOMPRESS=y +CONFIG_M25PXX_USE_FAST_READ=y +CONFIG_MA600_DONGLE=m +CONFIG_MAC80211=m +CONFIG_MAC80211_DEBUGFS=y +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_HWSIM=m +CONFIG_MAC80211_LEDS=y +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MACE=m +# CONFIG_MACE_AAUI_PORT is not set +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MACVLAN=m +# CONFIG_MACVTAP is not set +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_MAC_FLOPPY=m +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MANTIS_CORE=m +CONFIG_MARVELL_PHY=m +CONFIG_MAX8925_POWER=m +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MCP2120_DONGLE=m +CONFIG_MCS_FIR=m +CONFIG_MD=y +CONFIG_MDIO=m +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +CONFIG_MD_FAULTY=m +CONFIG_MD_LINEAR=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_RAID6_PQ=m +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_TUNER=m +# CONFIG_MEDIA_TUNER_CUSTOMISE is not set +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_SAS=m +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTPLUG_SPARSE=y +# CONFIG_MEMORY_HOTREMOVE is not set +# CONFIG_MEMSTICK is not set +CONFIG_MFD_88PM860X=y +CONFIG_MFD_CORE=y +CONFIG_MFD_JANZ_CMODIO=m +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MC13783=m +CONFIG_MFD_PCF50633=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set +CONFIG_MFD_SUPPORT=y +CONFIG_MFD_TC35892=y +CONFIG_MFD_TIMBERDALE=m +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_WM831X=y +CONFIG_MFD_WM8350=y +CONFIG_MFD_WM8350_I2C=y +CONFIG_MFD_WM8400=m +CONFIG_MFD_WM8994=y +CONFIG_MICREL_PHY=m +CONFIG_MIGRATION=y +CONFIG_MII=m +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_DEVICES=y +CONFIG_MISC_FILESYSTEMS=y +CONFIG_MKISS=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_INFINIBAND=m +CONFIG_MMC=m +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_MMC_CB710=m +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_RICOH_MMC=y +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_OF=m +CONFIG_MMC_SDHCI_OF_ESDHC=y +CONFIG_MMC_SDHCI_OF_HLWD=y +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDRICOH_CS=m +CONFIG_MMC_SPI=m +# CONFIG_MMC_TEST is not set +CONFIG_MMC_TIFM_SD=m +# CONFIG_MMC_UNSAFE_RESUME is not set +CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_WBSD=m +CONFIG_MMU=y +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_GPIO=m +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOXA_INTELLIO=m +# CONFIG_MOXA_SMARTIO is not set +# CONFIG_MPC5121_ADS is not set +# CONFIG_MPC5121_GENERIC is not set +CONFIG_MPIC=y +CONFIG_MPIC_BROKEN_REGREAD=y +CONFIG_MPIC_U3_HT_IRQS=y +# CONFIG_MPIC_WEIRD is not set +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +# CONFIG_MSI_BITMAP_SELFTEST is not set +CONFIG_MTD=m +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTD_ABSENT=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_AR7_PARTS=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK2MTD=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_MTD_CFI=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CHAR=m +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_CONCAT=m +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_DATAFLASH_OTP=y +# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCECC=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCPROBE_ADDRESS=0 +# CONFIG_MTD_DOCPROBE_ADVANCED is not set +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_GPIO_ADDR=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_LPDDR=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_MAP_BANK_WIDTH_1=y +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_DENALI=m +CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018 +CONFIG_MTD_NAND_DISKONCHIP=m +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_FSL_ELBC is not set +CONFIG_MTD_NAND_IDS=m +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +CONFIG_MTD_NAND_NANDSIM=m +# CONFIG_MTD_NAND_PASEMI is not set +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_NAND_RICOH=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_OF_PARTS is not set +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_GENERIC=m +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_SIM=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_OOPS=m +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_PCI=m +CONFIG_MTD_PCMCIA=m +# CONFIG_MTD_PCMCIA_ANONYMOUS is not set +CONFIG_MTD_PHRAM=m +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +CONFIG_MTD_PHYSMAP_OF=m +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_QINFO_PROBE=m +CONFIG_MTD_RAM=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS=m +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +CONFIG_MTD_ROM=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MTD_SST25L=m +CONFIG_MTD_TESTS=m +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_BEB_RESERVE=1 +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_MTD_UBI_GLUEBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +# CONFIG_MULTICORE_RAID456 is not set +CONFIG_MV643XX_ETH=m +CONFIG_MWL8K=m +CONFIG_MYRI10GE=m +CONFIG_NAMESPACES=y +CONFIG_NATIONAL_PHY=m +CONFIG_NATSEMI=m +CONFIG_NCPFS_EXTRAS=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_PACKET_SIGNING=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_STRONG=y +CONFIG_NCP_FS=m +CONFIG_NE2K_PCI=m +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NET=y +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETDEVICES=y +CONFIG_NETDEV_1000=y +CONFIG_NETDEV_10000=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +# CONFIG_NETFILTER_XT_MATCH_OWNER is not set +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETLABEL=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NETROM=m +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NETWORK_SECMARK=y +CONFIG_NETXEN_NIC=m +CONFIG_NET_9P=m +# CONFIG_NET_9P_DEBUG is not set +CONFIG_NET_9P_RDMA=m +CONFIG_NET_9P_VIRTIO=m +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_CLS=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_CGROUP=y +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_FW=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_U32=m +CONFIG_NET_DCCPPROBE=m +# CONFIG_NET_DROP_MONITOR is not set +CONFIG_NET_DSA=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6123_61_65=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_ETHERNET=y +CONFIG_NET_FC=y +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_NET_IPIP=m +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_NET_NS=y +CONFIG_NET_PCI=y +CONFIG_NET_PCMCIA=y +CONFIG_NET_PKTGEN=m +CONFIG_NET_POCKET=y +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_FIFO=y +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCTPPROBE=m +CONFIG_NET_TCPPROBE=m +CONFIG_NET_TULIP=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_NEW_LEDS=y +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_NFS_FS=m +CONFIG_NFS_FSCACHE=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +# CONFIG_NFS_V4_1 is not set +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NILFS2_FS=m +# CONFIG_NIU is not set +# CONFIG_NL80211_TESTMODE is not set +CONFIG_NLATTR=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_NODES_SHIFT=8 +CONFIG_NODES_SPAN_OTHER_NODES=y +CONFIG_NOP_TRACER=y +CONFIG_NOP_USB_XCEIV=m +# CONFIG_NORTEL_HERMES is not set +# CONFIG_NOZOMI is not set +CONFIG_NO_HZ=y +CONFIG_NR_IRQS=512 +CONFIG_NS83820=m +CONFIG_NSC_FIR=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS=m +# CONFIG_NTFS_RW is not set +CONFIG_NUMA=y +CONFIG_NVRAM=y +# CONFIG_N_GSM is not set +CONFIG_N_HDLC=m +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_OCFS2_DEBUG_MASKLOG=y +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_STATS=y +CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +CONFIG_OF=y +CONFIG_OF_DEVICE=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_I2C=y +CONFIG_OF_MDIO=y +CONFIG_OF_SPI=y +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_OMFS_FS=m +CONFIG_OPROFILE=m +CONFIG_ORINOCO_USB=m +CONFIG_OSF_PARTITION=y +# CONFIG_OTUS is not set +CONFIG_P54_COMMON=m +CONFIG_P54_LEDS=y +CONFIG_P54_PCI=m +CONFIG_P54_SPI=m +CONFIG_P54_USB=m +CONFIG_PACKET=y +CONFIG_PADATA=y +CONFIG_PAGEFLAGS_EXTENDED=y +# CONFIG_PANEL is not set +CONFIG_PANTHERLORD_FF=y +CONFIG_PARIDE=m +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_BPCK6=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_EPAT=m +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PG=m +CONFIG_PARIDE_PT=m +CONFIG_PARPORT=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_AX88796=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_NOT_PC=y +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_PC_FIFO=y +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_SERIAL=m +CONFIG_PARTITION_ADVANCED=y +# CONFIG_PASEMI_MAC is not set +# CONFIG_PATA_ALI is not set +CONFIG_PATA_AMD=m +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +CONFIG_PATA_ATP867X=m +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_CMD64X is not set +CONFIG_PATA_CS5520=m +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CYPRESS is not set +CONFIG_PATA_EFAR=m +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_LEGACY=m +CONFIG_PATA_MACIO=m +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_NS87415 is not set +CONFIG_PATA_OF_PLATFORM=m +CONFIG_PATA_OLDPIIX=m +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_OPTIDMA is not set +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m +# CONFIG_PATA_PDC_OLD is not set +CONFIG_PATA_PLATFORM=m +# CONFIG_PATA_RADISYS is not set +CONFIG_PATA_RDC=m +CONFIG_PATA_RZ1000=m +# CONFIG_PATA_SC1200 is not set +CONFIG_PATA_SCH=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=m +# CONFIG_PATA_TOSHIBA is not set +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +# CONFIG_PC300TOO is not set +CONFIG_PCCARD=m +CONFIG_PCCARD_NONSTATIC=y +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +CONFIG_PCI=y +CONFIG_PCI200SYN=m +CONFIG_PCIEAER=y +# CONFIG_PCIEAER_INJECT is not set +CONFIG_PCIEASPM=y +# CONFIG_PCIEASPM_DEBUG is not set +CONFIG_PCIEPORTBUS=y +# CONFIG_PCIE_ECRC is not set +CONFIG_PCIPCWATCHDOG=m +CONFIG_PCI_ATMEL=m +# CONFIG_PCI_DEBUG is not set +CONFIG_PCI_DOMAINS=y +# CONFIG_PCI_IOV is not set +CONFIG_PCI_MSI=y +CONFIG_PCI_QUIRKS=y +# CONFIG_PCI_STUB is not set +CONFIG_PCI_SYSCALL=y +CONFIG_PCMCIA=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_PCMCIA_AXNET=m +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_NINJA_SCSI=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_PCNET32=m +CONFIG_PCSPKR_PLATFORM=y +CONFIG_PD6729=m +CONFIG_PDA_POWER=m +CONFIG_PDC_ADMA=m +CONFIG_PERF_COUNTERS=y +CONFIG_PERF_EVENTS=y +CONFIG_PHANTOM=m +CONFIG_PHONE=m +CONFIG_PHONET=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m +CONFIG_PHYLIB=y +# CONFIG_PHYP_DUMP is not set +CONFIG_PHYSICAL_START=0x00000000 +# CONFIG_PID_NS is not set +CONFIG_PLIP=m +# CONFIG_PLX_HERMES is not set +CONFIG_PM=y +CONFIG_PMAC_APM_EMU=m +CONFIG_PMAC_BACKLIGHT=y +CONFIG_PMAC_BACKLIGHT_LEGACY=y +CONFIG_PMAC_MEDIABAY=y +CONFIG_PMAC_RACKMETER=m +CONFIG_PMAC_SMU=y +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_OPS=y +CONFIG_PM_RUNTIME=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_STD_PARTITION="" +# CONFIG_POHMELFS is not set +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_POWER3=y +CONFIG_POWER4=y +# CONFIG_POWER4_ONLY is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PPC=y +CONFIG_PPC32=y +# CONFIG_PPC601_SYNC_FIX is not set +# CONFIG_PPC_16K_PAGES is not set +# CONFIG_PPC_256K_PAGES is not set +CONFIG_PPC_4K_PAGES=y +# CONFIG_PPC_64K_PAGES is not set +# CONFIG_PPC_82xx is not set +# CONFIG_PPC_83xx is not set +# CONFIG_PPC_85xx is not set +# CONFIG_PPC_86xx is not set +# CONFIG_PPC_8xx is not set +# CONFIG_PPC_BOOK3E_64 is not set +CONFIG_PPC_BOOK3S=y +CONFIG_PPC_BOOK3S_32=y +CONFIG_PPC_BOOK3S_64=y +# CONFIG_PPC_CELLEB is not set +# CONFIG_PPC_CELL_NATIVE is not set +# CONFIG_PPC_CELL_QPACE is not set +CONFIG_PPC_CHRP=y +# CONFIG_PPC_CLOCK is not set +# CONFIG_PPC_DCR_MMIO is not set +# CONFIG_PPC_DCR_NATIVE is not set +CONFIG_PPC_DISABLE_WERROR=y +# CONFIG_PPC_EARLY_DEBUG is not set +# CONFIG_PPC_EMULATED_STATS is not set +CONFIG_PPC_FPU=y +CONFIG_PPC_HAS_HASH_64K=y +CONFIG_PPC_HAVE_PMU_SUPPORT=y +CONFIG_PPC_I8259=y +# CONFIG_PPC_IBM_CELL_BLADE is not set +# CONFIG_PPC_INDIRECT_IO is not set +# CONFIG_PPC_ISERIES is not set +CONFIG_PPC_MAPLE=y +# CONFIG_PPC_MPC52xx is not set +CONFIG_PPC_MSI_BITMAP=y +CONFIG_PPC_NATIVE=y +CONFIG_PPC_OF=y +CONFIG_PPC_OF_BOOT_TRAMPOLINE=y +# CONFIG_PPC_OF_PLATFORM_PCI is not set +CONFIG_PPC_PASEMI=y +CONFIG_PPC_PASEMI_CPUFREQ=y +CONFIG_PPC_PASEMI_IOMMU=y +# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set +CONFIG_PPC_PASEMI_MDIO=y +CONFIG_PPC_PCI_CHOICE=y +CONFIG_PPC_PERF_CTRS=y +CONFIG_PPC_PMAC=y +CONFIG_PPC_PMAC64=y +CONFIG_PPC_PS3=y +CONFIG_PPC_PSERIES=y +CONFIG_PPC_RTAS=y +CONFIG_PPC_RTAS_DAEMON=y +# CONFIG_PPC_SMLPAR is not set +# CONFIG_PPC_SPLPAR is not set +CONFIG_PPC_STD_MMU=y +CONFIG_PPC_STD_MMU_32=y +CONFIG_PPC_STD_MMU_64=y +CONFIG_PPC_UDBG_16550=y +CONFIG_PPDEV=m +CONFIG_PPP=m +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPS=m +# CONFIG_PPS_CLIENT_KTIMER is not set +CONFIG_PPS_CLIENT_LDISC=m +# CONFIG_PPS_DEBUG is not set +# CONFIG_PQ2ADS is not set +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINTK_TIME=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PRINT_STACK_DEPTH=64 +# CONFIG_PRISM2_USB is not set +CONFIG_PRISM54=m +CONFIG_PROC_DEVICETREE=y +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_PROC_SYSCTL=y +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +CONFIG_PROFILING=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_PS3_ADVANCED is not set +CONFIG_PS3_DISK=m +# CONFIG_PS3_DYNAMIC_DMA is not set +CONFIG_PS3_FLASH=m +CONFIG_PS3_HTAB_SIZE=20 +CONFIG_PS3_LPM=m +CONFIG_PS3_PS3AV=y +CONFIG_PS3_ROM=m +CONFIG_PS3_STORAGE=m +CONFIG_PS3_SYS_MANAGER=y +CONFIG_PS3_VRAM=m +CONFIG_PS3_VUART=y +CONFIG_PSERIES_MSI=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLGE=m +CONFIG_QNX4FS_FS=m +CONFIG_QSEMI_PHY=m +CONFIG_QUOTA=y +CONFIG_QUOTACTL=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_QUOTA_TREE=m +CONFIG_R3964=m +# CONFIG_R6040 is not set +CONFIG_R8169=m +CONFIG_R8169_VLAN=y +CONFIG_R8187SE=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAESTRO=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_SAA7706H=m +CONFIG_RADIO_SI470X=y +CONFIG_RADIO_SI4713=m +CONFIG_RADIO_TEA5764=m +CONFIG_RADIO_TEF6862=m +CONFIG_RADIO_TIMBERDALE=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMOOPS=m +CONFIG_RAMZSWAP=m +CONFIG_RAMZSWAP_STATS=y +# CONFIG_RAR_REGISTER is not set +CONFIG_RAW_DRIVER=m +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_RCU_FANOUT_EXACT is not set +CONFIG_RCU_FAST_NO_HZ=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RC_MAP=m +# CONFIG_RDS is not set +CONFIG_RD_BZIP2=y +CONFIG_RD_GZIP=y +CONFIG_RD_LZMA=y +CONFIG_RD_LZO=y +# CONFIG_REALTEK_PHY is not set +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_88PM8607=y +CONFIG_REGULATOR_AB3100=m +CONFIG_REGULATOR_BQ24022=m +CONFIG_REGULATOR_DA903X=m +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +CONFIG_REGULATOR_LP3971=m +CONFIG_REGULATOR_MAX1586=m +CONFIG_REGULATOR_MAX8649=m +CONFIG_REGULATOR_MAX8660=m +CONFIG_REGULATOR_MAX8925=m +CONFIG_REGULATOR_MC13783=m +CONFIG_REGULATOR_PCF50633=m +CONFIG_REGULATOR_TPS65023=m +CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TWL4030=y +CONFIG_REGULATOR_USERSPACE_CONSUMER=m +CONFIG_REGULATOR_VIRTUAL_CONSUMER=m +CONFIG_REGULATOR_WM831X=m +CONFIG_REGULATOR_WM8350=m +CONFIG_REGULATOR_WM8400=m +CONFIG_REGULATOR_WM8994=m +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_FS=m +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_REISERFS_FS_XATTR=y +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_RELAY=y +# CONFIG_RELOCATABLE is not set +# CONFIG_RESOURCE_COUNTERS is not set +CONFIG_RFD_FTL=m +CONFIG_RFKILL=y +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_LEDS=y +CONFIG_RING_BUFFER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +# CONFIG_RING_BUFFER_BENCHMARK is not set +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_ROCKETPORT=m +CONFIG_ROMFS_BACKED_BY_BLOCK=y +# CONFIG_ROMFS_BACKED_BY_BOTH is not set +# CONFIG_ROMFS_BACKED_BY_MTD is not set +CONFIG_ROMFS_FS=m +CONFIG_ROMFS_ON_BLOCK=y +CONFIG_ROSE=m +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_RPS=y +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT2500USB=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_PCI=y +CONFIG_RT2800PCI_RT30XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800USB=m +# CONFIG_RT2800USB_RT30XX is not set +# CONFIG_RT2800USB_RT35XX is not set +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00=m +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_CRYPTO=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_HT=y +CONFIG_RT2X00_LIB_LEDS=y +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT61PCI=m +CONFIG_RT73USB=m +CONFIG_RTAS_ERROR_LOGGING=y +# CONFIG_RTAS_FLASH is not set +CONFIG_RTAS_PROC=y +CONFIG_RTC_CLASS=y +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_DRV_AB3100=m +CONFIG_RTC_DRV_AB8500=m +CONFIG_RTC_DRV_BQ32K=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1305=m +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1390=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_DS3234=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_GENERIC=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_M41T94=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_MAX8925=m +CONFIG_RTC_DRV_MC13783=m +CONFIG_RTC_DRV_MSM6242=m +CONFIG_RTC_DRV_PCF2123=m +CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_PS3=m +CONFIG_RTC_DRV_R9701=m +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_STK17TA8=m +# CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_WM831X=m +CONFIG_RTC_DRV_WM8350=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_LIB=y +# CONFIG_RTL8180 is not set +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +# CONFIG_RTL8192E is not set +# CONFIG_RTL8192SU is not set +CONFIG_RTL8192U=m +CONFIG_RT_MUTEXES=y +# CONFIG_RT_MUTEX_TESTER is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_RXKAD=m +CONFIG_S2IO=m +# CONFIG_SAMPLES is not set +CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_INIC162X=m +CONFIG_SATA_MV=m +CONFIG_SATA_NV=m +CONFIG_SATA_PMP=y +CONFIG_SATA_PROMISE=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SIL=m +CONFIG_SATA_SIL24=m +CONFIG_SATA_SIS=m +CONFIG_SATA_SVW=y +CONFIG_SATA_SX4=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m +CONFIG_SBE_PMCC4_NCOMM=y +CONFIG_SC92031=m +# CONFIG_SCANLOG is not set +CONFIG_SCHED_DEBUG=y +CONFIG_SCHED_HRTICK=y +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_SCHED_SMT=y +# CONFIG_SCHED_TRACER is not set +CONFIG_SCSI=y +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_AIC79XX=m +CONFIG_SCSI_AIC7XXX=m +# CONFIG_SCSI_AIC7XXX_OLD is not set +CONFIG_SCSI_AIC94XX=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_ARCMSR_AER=y +CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_DH=m +CONFIG_SCSI_DH_ALUA=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DMA=y +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_HPTIOP=m +# CONFIG_SCSI_IBMVFC is not set +# CONFIG_SCSI_IBMVSCSI is not set +# CONFIG_SCSI_IBMVSCSIS is not set +CONFIG_SCSI_IMM=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +# CONFIG_SCSI_IPR is not set +CONFIG_SCSI_IPS=m +CONFIG_SCSI_ISCSITARGET=m +CONFIG_SCSI_ISCSI_ATTRS=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_MAC53C94=m +CONFIG_SCSI_MESH=m +CONFIG_SCSI_MESH_RESET_DELAY_MS=4000 +CONFIG_SCSI_MESH_SYNC_RATE=5 +CONFIG_SCSI_MOD=y +CONFIG_SCSI_MPT2SAS=m +# CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT2SAS_MAX_SGE=128 +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_MVSAS is not set +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_NSP32=m +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_PM8001=m +CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_PROC_FS=y +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SAS_LIBSAS=m +# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SRP=m +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_TGT=m +CONFIG_SCSI_WAIT_SCAN=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +CONFIG_SCTP_HMAC_MD5=y +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SDIO_UART=m +CONFIG_SECCOMP=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_APPARMOR=y +CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 +CONFIG_SECURITY_APPARMOR_COMPAT_24=y +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +CONFIG_SECURITY_PATH=y +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_DISABLE=y +# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set +CONFIG_SECURITY_SMACK=y +CONFIG_SECURITY_TOMOYO=y +CONFIG_SECURITY_YAMA=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADCXX=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +# CONFIG_SENSORS_ADS7828 is not set +CONFIG_SENSORS_ADS7871=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_AMS=m +CONFIG_SENSORS_AMS_I2C=y +CONFIG_SENSORS_AMS_PMU=y +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LIS3_I2C=m +CONFIG_SENSORS_LIS3_SPI=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MC13783_ADC=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +# CONFIG_SENSORS_W83L786NG is not set +CONFIG_SENSORS_WM831X=m +CONFIG_SENSORS_WM8350=m +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_PCI=m +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_CORE=m +CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m +# CONFIG_SERIAL_ICOM is not set +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_MAX3100=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIAL_OF_PLATFORM=m +CONFIG_SERIAL_PMACZILOG=m +# CONFIG_SERIAL_PMACZILOG_TTYS is not set +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_UARTLITE=m +CONFIG_SERIO=y +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_I8042=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_RAW=m +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_XILINX_XPS_PS2=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_SGI_IOC4=m +CONFIG_SGI_PARTITION=y +CONFIG_SHMEM=y +CONFIG_SIGMATEL_FIR=m +CONFIG_SIGNALFD=y +CONFIG_SIMPLE_GPIO=y +CONFIG_SIS190=m +CONFIG_SIS900=m +CONFIG_SKFP=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +# CONFIG_SLAB is not set +CONFIG_SLABINFO=y +CONFIG_SLHC=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_SLIP_SMART=y +# CONFIG_SLOB is not set +CONFIG_SLOW_WORK=y +# CONFIG_SLOW_WORK_DEBUG is not set +CONFIG_SLUB=y +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_SMC_IRCC_FIR=m +CONFIG_SMSC9420=m +CONFIG_SMSC_PHY=m +CONFIG_SMS_SDIO_DRV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_USB_DRV=m +# CONFIG_SM_FTL is not set +CONFIG_SND=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_AD1889=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_AOA=m +CONFIG_SND_AOA_FABRIC_LAYOUT=m +CONFIG_SND_AOA_ONYX=m +CONFIG_SND_AOA_SOUNDBUS=m +CONFIG_SND_AOA_SOUNDBUS_I2S=m +CONFIG_SND_AOA_TAS=m +CONFIG_SND_AOA_TOONIE=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +CONFIG_SND_BT87X_OVERCLOCK=y +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_DARLA24=m +# CONFIG_SND_DEBUG is not set +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_ECHO3G=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_GINA20=m +CONFIG_SND_GINA24=m +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_ATIHDMI=y +CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CIRRUS=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_INTELHDMI=y +CONFIG_SND_HDA_CODEC_NVHDMI=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_ELD=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=0 +CONFIG_SND_HDA_INPUT_JACK=y +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +# CONFIG_SND_HIFIER is not set +CONFIG_SND_HRTIMER=m +CONFIG_SND_HWDEP=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGODJX=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_JACK=y +CONFIG_SND_KORG1212=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_LX6464ES=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MIA=m +CONFIG_SND_MIXART=m +# CONFIG_SND_MIXER_OSS is not set +CONFIG_SND_MONA=m +CONFIG_SND_MPU401=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_NM256=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL3_LIB_SEQ=m +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_OXYGEN is not set +CONFIG_SND_PCI=y +CONFIG_SND_PCM=m +CONFIG_SND_PCMCIA=y +# CONFIG_SND_PCM_OSS is not set +CONFIG_SND_PCXHR=m +CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_POWERMAC=m +CONFIG_SND_POWERMAC_AUTO_DRC=y +CONFIG_SND_PPC=y +CONFIG_SND_PS3=m +CONFIG_SND_PS3_DEFAULT_START_DELAY=2000 +CONFIG_SND_RAWMIDI=m +CONFIG_SND_RAWMIDI_SEQ=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SB16_DSP=m +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SEQUENCER=m +# CONFIG_SND_SEQUENCER_OSS is not set +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_SOC=m +CONFIG_SND_SOC_AD1836=m +CONFIG_SND_SOC_AD193X=m +CONFIG_SND_SOC_AD73311=m +CONFIG_SND_SOC_ADS117X=m +CONFIG_SND_SOC_AK4104=m +CONFIG_SND_SOC_AK4535=m +CONFIG_SND_SOC_AK4642=m +CONFIG_SND_SOC_AK4671=m +CONFIG_SND_SOC_ALL_CODECS=m +CONFIG_SND_SOC_CS4270=m +CONFIG_SND_SOC_DA7210=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_L3=m +CONFIG_SND_SOC_MAX9877=m +CONFIG_SND_SOC_PCM3008=m +CONFIG_SND_SOC_SPDIF=m +CONFIG_SND_SOC_SSM2602=m +CONFIG_SND_SOC_TLV320AIC23=m +CONFIG_SND_SOC_TLV320AIC26=m +CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TLV320DAC33=m +CONFIG_SND_SOC_TPA6130A2=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_SOC_TWL6040=m +CONFIG_SND_SOC_UDA134X=m +CONFIG_SND_SOC_UDA1380=m +CONFIG_SND_SOC_WM2000=m +CONFIG_SND_SOC_WM8350=m +CONFIG_SND_SOC_WM8400=m +CONFIG_SND_SOC_WM8510=m +CONFIG_SND_SOC_WM8523=m +CONFIG_SND_SOC_WM8580=m +CONFIG_SND_SOC_WM8711=m +CONFIG_SND_SOC_WM8727=m +CONFIG_SND_SOC_WM8728=m +CONFIG_SND_SOC_WM8731=m +CONFIG_SND_SOC_WM8750=m +CONFIG_SND_SOC_WM8753=m +CONFIG_SND_SOC_WM8776=m +CONFIG_SND_SOC_WM8900=m +CONFIG_SND_SOC_WM8903=m +CONFIG_SND_SOC_WM8904=m +CONFIG_SND_SOC_WM8940=m +CONFIG_SND_SOC_WM8955=m +CONFIG_SND_SOC_WM8960=m +CONFIG_SND_SOC_WM8961=m +CONFIG_SND_SOC_WM8971=m +CONFIG_SND_SOC_WM8974=m +CONFIG_SND_SOC_WM8978=m +CONFIG_SND_SOC_WM8988=m +CONFIG_SND_SOC_WM8990=m +CONFIG_SND_SOC_WM8993=m +CONFIG_SND_SOC_WM8994=m +CONFIG_SND_SOC_WM9081=m +CONFIG_SND_SOC_WM9090=m +CONFIG_SND_SOC_WM_HUBS=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_SPI=y +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_TIMER=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_USX2Y=m +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRMIDI=m +# CONFIG_SND_VIRTUOSO is not set +CONFIG_SND_VMASTER=y +CONFIG_SND_VX222=m +CONFIG_SND_VXPOCKET=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_YMFPCI=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_SOFT_WATCHDOG=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=m +# CONFIG_SOUND_OSS_CORE is not set +# CONFIG_SOUND_PRIME is not set +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSE_IRQ=y +CONFIG_SPECIALIX=m +CONFIG_SPI=y +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_DESIGNWARE=y +CONFIG_SPI_DW_PCI=m +CONFIG_SPI_GPIO=m +CONFIG_SPI_LM70_LLP=m +CONFIG_SPI_MASTER=y +CONFIG_SPI_SPIDEV=m +CONFIG_SPI_TLE62X0=m +# CONFIG_SPI_XILINX is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SPU_BASE=y +CONFIG_SPU_FS=m +CONFIG_SPU_FS_64K_LS=y +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_SQUASHFS_XATTRS=y +CONFIG_SR_REPORT_TIME_LIMIT=100 +CONFIG_SSB=m +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_BLOCKIO=y +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +# CONFIG_SSB_PCMCIAHOST is not set +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +CONFIG_SSB_SDIOHOST_POSSIBLE=y +CONFIG_SSB_SPROM=y +CONFIG_SSFDC=m +CONFIG_STACKTRACE=y +CONFIG_STACKTRACE_SUPPORT=y +# CONFIG_STACK_TRACER is not set +CONFIG_STAGING=y +# CONFIG_STAGING_EXCLUDE_BUILD is not set +CONFIG_STALDRV=y +CONFIG_STALLION=m +CONFIG_STANDALONE=y +CONFIG_STE10XP=m +CONFIG_STOP_MACHINE=y +CONFIG_STP=m +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_ST_BT=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_SUNGEM=m +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_XPRT_RDMA=m +CONFIG_SUN_PARTITION=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_SUSPEND_NVS=y +CONFIG_SWAP=y +CONFIG_SWIOTLB=y +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_CS=m +CONFIG_SYNCLINK_GT=m +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_SYSFS=y +# CONFIG_SYSFS_DEPRECATED_V2 is not set +CONFIG_SYSV68_PARTITION=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_SYSV_FS=m +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_KBTAB=m +# CONFIG_TABLET_USB_WACOM is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_TASK_SIZE=0xc0000000 +CONFIG_TASK_XACCT=y +CONFIG_TAU=y +# CONFIG_TAU_AVERAGE is not set +# CONFIG_TAU_INT is not set +CONFIG_TCG_ATMEL=m +CONFIG_TCG_NSC=m +# CONFIG_TCG_TIS is not set +CONFIG_TCG_TPM=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_MD5SIG=y +CONFIG_TEHUTI=m +CONFIG_TEKRAM_DONGLE=m +CONFIG_TEST_POWER=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +# CONFIG_THERMAL is not set +CONFIG_THERM_ADT746X=m +CONFIG_THERM_PM72=m +CONFIG_THERM_WINDTUNNEL=m +CONFIG_THRUSTMASTER_FF=y +CONFIG_TICK_ONESHOT=y +CONFIG_TIFM_7XX1=m +CONFIG_TIFM_CORE=m +CONFIG_TIGON3=m +CONFIG_TIMERFD=y +CONFIG_TIMER_STATS=y +# CONFIG_TINY_RCU is not set +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_TI_DAC7512=m +CONFIG_TI_ST=m +CONFIG_TLAN=m +# CONFIG_TMD_HERMES is not set +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_TOIM3232_DONGLE=m +CONFIG_TOSHIBA_FIR=m +CONFIG_TOUCHSCREEN_88PM860X=m +CONFIG_TOUCHSCREEN_AD7877=m +CONFIG_TOUCHSCREEN_AD7879=m +CONFIG_TOUCHSCREEN_AD7879_I2C=m +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_DA9034=m +CONFIG_TOUCHSCREEN_DYNAPRO=m +CONFIG_TOUCHSCREEN_EETI=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_HAMPSHIRE=m +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_MC13783=m +CONFIG_TOUCHSCREEN_MCS5000=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_TOUCHIT213=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_TPS6507X=m +CONFIG_TOUCHSCREEN_TSC2007=m +CONFIG_TOUCHSCREEN_UCB1400=m +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_E2I=y +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_ETT_TC5UH=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_JASTEC=y +CONFIG_TOUCHSCREEN_USB_NEXIO=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y +CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_WM9705=y +CONFIG_TOUCHSCREEN_WM9712=y +CONFIG_TOUCHSCREEN_WM9713=y +CONFIG_TOUCHSCREEN_WM97XX=m +CONFIG_TPS6507X=m +CONFIG_TR=y +CONFIG_TRACEPOINTS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACING=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_TRANZPORT is not set +# CONFIG_TREE_PREEMPT_RCU is not set +CONFIG_TREE_RCU=y +# CONFIG_TREE_RCU_TRACE is not set +CONFIG_TTPCI_EEPROM=m +CONFIG_TULIP=m +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_TUN=y +# CONFIG_TUNE_CELL is not set +CONFIG_TWL4030_CODEC=y +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_USB=m +CONFIG_TWL4030_WATCHDOG=m +CONFIG_TYPHOON=m +CONFIG_U3_DART=y +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +# CONFIG_UBIFS_FS_DEBUG is not set +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_XATTR=y +CONFIG_UBIFS_FS_ZLIB=y +CONFIG_UCB1400_CORE=m +CONFIG_UDBG_RTAS_CONSOLE=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y +CONFIG_UEVENT_HELPER_PATH="" +# CONFIG_UFS_DEBUG is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +CONFIG_UIO=m +CONFIG_UIO_AEC=m +CONFIG_UIO_CIF=m +CONFIG_UIO_NETX=m +CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SERCOS3=m +CONFIG_ULI526X=m +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_USB=y +CONFIG_USBPCWATCHDOG=m +CONFIG_USB_ACM=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_ATM=m +CONFIG_USB_AUDIO=m +CONFIG_USB_BELKIN=y +CONFIG_USB_C67X00_HCD=m +CONFIG_USB_CATC=m +CONFIG_USB_CDC_COMPOSITE=m +CONFIG_USB_CDC_PHONET=m +CONFIG_USB_CXACRU=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +# CONFIG_USB_DEBUG is not set +# CONFIG_USB_DEVICEFS is not set +# CONFIG_USB_DEVICE_CLASS is not set +CONFIG_USB_DSBR=m +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y +CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PPC_OF=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_EPSON2888=y +CONFIG_USB_ET61X251=m +CONFIG_USB_ETH=m +# CONFIG_USB_ETH_EEM is not set +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_EZUSB=y +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_FUNCTIONFS=m +CONFIG_USB_FUNCTIONFS_ETH=y +CONFIG_USB_FUNCTIONFS_GENERIC=y +CONFIG_USB_FUNCTIONFS_RNDIS=y +CONFIG_USB_GADGET=m +CONFIG_USB_GADGETFS=m +# CONFIG_USB_GADGET_AMD5536UDC is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_CI13XXX is not set +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_FSL_QE is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_IMX is not set +# CONFIG_USB_GADGET_LANGWELL is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_MUSB_HDRC is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_PXA25X is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_R8A66597 is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_S3C_HSOTG is not set +CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GL860=m +CONFIG_USB_GOKU=m +CONFIG_USB_GPIO_VBUS=m +CONFIG_USB_GSPCA=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_G_HID=m +# CONFIG_USB_G_MULTI is not set +CONFIG_USB_G_NOKIA=m +CONFIG_USB_G_PRINTER=m +CONFIG_USB_G_SERIAL=m +CONFIG_USB_G_WEBCAM=m +CONFIG_USB_HID=m +CONFIG_USB_HIDDEV=y +CONFIG_USB_HSO=m +CONFIG_USB_HWA_HCD=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_IPHETH=m +# CONFIG_USB_IP_COMMON is not set +CONFIG_USB_IRDA=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_ISP1760_HCD=m +CONFIG_USB_KAWETH=m +CONFIG_USB_KC2190=y +CONFIG_USB_KONICAWC=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +# CONFIG_USB_LIBUSUAL is not set +CONFIG_USB_M5602=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MIDI_GADGET=m +CONFIG_USB_MON=y +CONFIG_USB_MR800=m +CONFIG_USB_NET2280=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_INT51X1=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_RNDIS_HOST=m +# CONFIG_USB_NET_RNDIS_WLAN is not set +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +# CONFIG_USB_NET_ZAURUS is not set +CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y +CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PCI=y +CONFIG_USB_OHCI_HCD_PPC_OF=y +CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_OTG is not set +CONFIG_USB_OTG_UTILS=y +# CONFIG_USB_OV511 is not set +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PRINTER=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_RIO500=m +CONFIG_USB_RTL8150=m +CONFIG_USB_S2255=m +CONFIG_USB_SE401=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_DEBUG=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7715_PARPORT=y +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SEVSEG=m +# CONFIG_USB_SI470X is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SN9C102=m +CONFIG_USB_SPEEDTOUCH=m +# CONFIG_USB_STKWEBCAM is not set +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_DATAFAB=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STV06XX=m +CONFIG_USB_STV680=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_SUSPEND=y +CONFIG_USB_TEST=m +CONFIG_USB_TMC=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_U132_HCD=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_USBNET=m +CONFIG_USB_USS720=m +CONFIG_USB_VICAM=m +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_W9968CF=m +CONFIG_USB_WDM=m +CONFIG_USB_WHCI_HCD=m +CONFIG_USB_WUSB=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set +CONFIG_USB_XHCI_HCD=m +# CONFIG_USB_XHCI_HCD_DEBUGGING is not set +CONFIG_USB_XUSBATM=m +CONFIG_USB_ZC0301=m +CONFIG_USB_ZD1201=m +CONFIG_USB_ZERO=m +CONFIG_USB_ZR364XX=m +# CONFIG_USER_NS is not set +CONFIG_USE_GENERIC_SMP_HELPERS=y +# CONFIG_UTS_NS is not set +CONFIG_UWB=m +CONFIG_UWB_HWA=m +CONFIG_UWB_I1480U=m +CONFIG_UWB_I1480U_WLP=m +CONFIG_UWB_WHCI=m +CONFIG_UWB_WLP=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_V4L_USB_DRIVERS=y +CONFIG_VERSION_SIGNATURE="" +CONFIG_VETH=m +CONFIG_VFAT_FS=m +CONFIG_VGASTATE=m +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_VGA_CONSOLE is not set +CONFIG_VHOST_NET=m +CONFIG_VIA_FIR=m +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_VIA_VELOCITY=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_ADV7180=m +CONFIG_VIDEO_ADV7343=m +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_AK881X=m +CONFIG_VIDEO_ALLOW_V4L1=y +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_CX23885=m +# CONFIG_VIDEO_CX25821 is not set +CONFIG_VIDEO_CX25840=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DT3155=m +CONFIG_VIDEO_EM28XX=m +# CONFIG_VIDEO_EM28XX_ALSA is not set +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_FB_IVTV=m +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_VIDEO_GO7007 is not set +CONFIG_VIDEO_HDPVR=m +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_IR_I2C=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_MEDIA=m +CONFIG_VIDEO_MEM2MEM_TESTDEV=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_MT9V011=m +# CONFIG_VIDEO_MXB is not set +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_VIDEO_PVRUSB2=m +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_PVRUSB2_DVB=y +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_SAA7164=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_THS7303=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=y +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TVP514X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_TVP7002=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_V4L1=m +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_VP27SMPX=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_ZR36060=m +# CONFIG_VIRQ_DEBUG is not set +CONFIG_VIRTIO=m +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_CONSOLE=m +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_RING=m +CONFIG_VIRTUALIZATION=y +CONFIG_VIRT_CPU_ACCOUNTING=y +CONFIG_VIRT_TO_BUS=y +CONFIG_VITESSE_PHY=m +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLSI_FIR=m +# CONFIG_VME_BUS is not set +CONFIG_VMXNET3=m +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VORTEX=m +# CONFIG_VSX is not set +CONFIG_VT=y +# CONFIG_VT6655 is not set +# CONFIG_VT6656 is not set +CONFIG_VT_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_VXFS_FS=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_W1=m +CONFIG_W1_CON=y +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_GPIO=m +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_THERM=m +# CONFIG_W35UND is not set +CONFIG_WAN=y +CONFIG_WANXL=m +CONFIG_WAN_ROUTER=m +CONFIG_WAN_ROUTER_DRIVERS=m +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_RTAS=m +CONFIG_WDTPCI=m +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PRIV=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WIMAX=m +CONFIG_WIMAX_DEBUG_LEVEL=8 +CONFIG_WIMAX_I2400M=m +CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WIMAX_IWMC3200_SDIO=y +CONFIG_WINBOND_840=m +CONFIG_WINBOND_FIR=m +CONFIG_WINDFARM=m +CONFIG_WINDFARM_PM112=m +CONFIG_WINDFARM_PM121=m +CONFIG_WINDFARM_PM81=m +CONFIG_WINDFARM_PM91=m +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL1251_SPI=m +CONFIG_WL1271=m +CONFIG_WL1271_SPI=m +CONFIG_WL12XX=m +CONFIG_WLAGS49_H2=m +CONFIG_WLAGS49_H25=m +CONFIG_WLAN=y +CONFIG_WM831X_BACKUP=m +CONFIG_WM831X_POWER=m +CONFIG_WM831X_WATCHDOG=m +CONFIG_WM8350_POWER=m +CONFIG_WM8350_WATCHDOG=m +# CONFIG_WORKQUEUE_TRACER is not set +CONFIG_X25=m +CONFIG_X25_ASY=m +CONFIG_XFRM=y +CONFIG_XFRM_IPCOMP=m +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_USER=m +# CONFIG_XFS_DEBUG is not set +CONFIG_XFS_FS=m +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_QUOTA=y +CONFIG_XFS_RT=y +CONFIG_XICS=y +CONFIG_XILINX_EMACLITE=m +CONFIG_XILINX_LL_TEMAC=m +# CONFIG_XMON is not set +CONFIG_XOR_BLOCKS=m +CONFIG_XPS_USB_HCD_XILINX=y +CONFIG_YAM=m +CONFIG_YELLOWFIN=m +CONFIG_YENTA=m +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_ZEROPLUS_FF=y +CONFIG_ZISOFS=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZONE_DMA=y +CONFIG_ZONE_DMA_FLAG=1 --- linux-2.6.35.orig/debian.master/config/armel/config.flavour.versatile +++ linux-2.6.35/debian.master/config/armel/config.flavour.versatile @@ -0,0 +1,177 @@ +# +# Config options for config.flavour.versatile automatically generated by splitconfig.pl +# +CONFIG_APM_EMULATION=m +# CONFIG_ARCH_OMAP is not set +CONFIG_ARCH_VERSATILE=y +# CONFIG_ARM_ERRATA_430973 is not set +CONFIG_ARM_L1_CACHE_SHIFT=5 +# CONFIG_ATALK is not set +# CONFIG_ATM is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_B44 is not set +# CONFIG_BT is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CDROM_PKTCDVD is not set +CONFIG_CEPH_FS=m +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_CRYPTO_HMAC=y +CONFIG_DISPLAY_SUPPORT=m +CONFIG_DM_RAID45=m +# CONFIG_DVB_FE_CUSTOMISE is not set +# CONFIG_DVB_USB_EC168 is not set +CONFIG_FB_ARMCLCD=y +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_DDC=m +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_SVGALIB=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_UVESA=m +CONFIG_FIRMWARE_EDID=y +CONFIG_FIXED_PHY=y +# CONFIG_FTL is not set +# CONFIG_GAMEPORT is not set +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_TWL4030=m +CONFIG_HIGHMEM=y +# CONFIG_HIGH_RES_TIMERS is not set +# CONFIG_HTC_EGPIO is not set +# CONFIG_HWMON is not set +CONFIG_HZ=100 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_IRDA is not set +# CONFIG_ISDN is not set +CONFIG_IWMC3200TOP_DEBUGFS=y +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_KSM=y +# CONFIG_LAPB is not set +CONFIG_LEDS_CLASS=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LLC=y +# CONFIG_LLC2 is not set +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_MEMSTICK=m +# CONFIG_MFD_ASIC3 is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_MFD_TMIO is not set +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=m +# CONFIG_MOUSE_PS2 is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MTD_ABSENT is not set +CONFIG_MTD_AR7_PARTS=m +CONFIG_MTD_ARM_INTEGRATOR=y +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +# CONFIG_MTD_CFI_AMDSTD is not set +CONFIG_MTD_CFI_INTELEXT=y +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_CONCAT is not set +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_JEDECPROBE is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_NAND is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_ONENAND is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_PLATRAM is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set +CONFIG_NET_CLS_CGROUP=y +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_U32=m +CONFIG_NET_DCCPPROBE=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_TCPPROBE=m +# CONFIG_NFTL is not set +CONFIG_NOP_USB_XCEIV=m +# CONFIG_NO_HZ is not set +# CONFIG_OC_ETM is not set +# CONFIG_PARPORT is not set +CONFIG_PCI_SYSCALL=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PRISM2_USB=m +CONFIG_RAMZSWAP=m +# CONFIG_RFD_FTL is not set +CONFIG_RFKILL=y +# CONFIG_RPCSEC_GSS_SPKM3 is not set +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_CMOS=y +# CONFIG_RTC_DRV_PL030 is not set +CONFIG_RTC_DRV_PL031=y +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_SCSI_ISCSITARGET=m +CONFIG_SCSI_PROC_FS=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIO_AMBAKMI=y +CONFIG_SLAB=y +CONFIG_SLIP=m +# CONFIG_SLUB is not set +CONFIG_SMC91X=y +CONFIG_SMSC911X=m +CONFIG_SND=m +# CONFIG_SND_MIXER_OSS is not set +# CONFIG_SND_MPU401 is not set +CONFIG_SND_PCM=m +# CONFIG_SND_PCM_OSS is not set +CONFIG_SND_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_TIMER=m +CONFIG_SOUND=m +# CONFIG_SOUND_OSS_CORE is not set +# CONFIG_SPI is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_THERMAL=y +# CONFIG_TIPC is not set +CONFIG_TTPCI_EEPROM=m +CONFIG_TUN=y +# CONFIG_TWL4030_POWER is not set +CONFIG_TWL4030_USB=m +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_TT_NEWSCHED=y +# CONFIG_USB_GADGET is not set +CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_MUSB_HDRC is not set +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OTG is not set +CONFIG_USB_SERIAL_QUATECH2=m +CONFIG_USB_SERIAL_QUATECH_USB2=m +CONFIG_VGASTATE=m +# CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_WAN is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_WATCHDOG is not set +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_USB=m +# CONFIG_X25 is not set --- linux-2.6.35.orig/debian.master/config/armel/config.flavour.omap +++ linux-2.6.35/debian.master/config/armel/config.flavour.omap @@ -0,0 +1,177 @@ +# +# Config options for config.flavour.omap automatically generated by splitconfig.pl +# +# CONFIG_APM_EMULATION is not set +CONFIG_ARCH_OMAP=y +# CONFIG_ARCH_VERSATILE is not set +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ATALK=m +CONFIG_ATM=m +CONFIG_B43=m +CONFIG_B43LEGACY=m +CONFIG_B44=m +CONFIG_BT=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=m +# CONFIG_CEPH_FS is not set +# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not set +CONFIG_CRYPTO_HMAC=m +CONFIG_DISPLAY_SUPPORT=y +# CONFIG_DM_RAID45 is not set +CONFIG_DVB_FE_CUSTOMISE=y +CONFIG_DVB_USB_EC168=m +CONFIG_FB_ARMCLCD=m +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_DDC is not set +CONFIG_FB_S1D13XXX=m +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_TILEBLITTING is not set +# CONFIG_FB_UVESA is not set +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FIXED_PHY is not set +CONFIG_FTL=m +CONFIG_GAMEPORT=m +# CONFIG_GPIO_MAX732X is not set +CONFIG_GPIO_PCA953X=y +# CONFIG_GPIO_PCF857X is not set +CONFIG_GPIO_TWL4030=y +# CONFIG_HIGHMEM is not set +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HTC_EGPIO=y +CONFIG_HWMON=y +CONFIG_HZ=128 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_IRDA=m +CONFIG_ISDN=y +# CONFIG_IWMC3200TOP_DEBUGFS is not set +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +# CONFIG_KSM is not set +CONFIG_LAPB=m +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +# CONFIG_LIBERTAS_MESH is not set +CONFIG_LLC=m +CONFIG_LLC2=m +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_MEMSTICK is not set +CONFIG_MFD_ASIC3=y +CONFIG_MFD_T7L66XB=y +CONFIG_MFD_TC6387XB=y +CONFIG_MFD_TC6393XB=y +CONFIG_MFD_TMIO=y +CONFIG_MMC_ARMMMCI=m +CONFIG_MMC_SDHCI=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MTD_ABSENT=m +# CONFIG_MTD_AR7_PARTS is not set +# CONFIG_MTD_ARM_INTEGRATOR is not set +CONFIG_MTD_CFI=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_CONCAT=m +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_ONENAND=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_RAM=m +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_ROM=m +CONFIG_MTD_SLRAM=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +# CONFIG_NET_CLS_CGROUP is not set +# CONFIG_NET_CLS_FLOW is not set +# CONFIG_NET_CLS_U32 is not set +# CONFIG_NET_DCCPPROBE is not set +# CONFIG_NET_SCH_INGRESS is not set +# CONFIG_NET_TCPPROBE is not set +CONFIG_NFTL=m +CONFIG_NOP_USB_XCEIV=y +CONFIG_NO_HZ=y +CONFIG_OC_ETM=y +CONFIG_PARPORT=m +# CONFIG_PCI_SYSCALL is not set +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_PRISM2_USB is not set +# CONFIG_RAMZSWAP is not set +CONFIG_RFD_FTL=m +CONFIG_RFKILL=m +CONFIG_RPCSEC_GSS_SPKM3=m +# CONFIG_RT2800USB_UNKNOWN is not set +CONFIG_RT2X00_LIB_DEBUGFS=y +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_PL030=m +CONFIG_RTC_DRV_PL031=m +CONFIG_RTC_DRV_TWL4030=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_SCSI_ISCSITARGET is not set +# CONFIG_SCSI_PROC_FS is not set +# CONFIG_SCSI_SPI_ATTRS is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_AMBA_PL011=m +# CONFIG_SERIO_AMBAKMI is not set +# CONFIG_SLAB is not set +CONFIG_SLIP=y +CONFIG_SLUB=y +CONFIG_SMC91X=m +CONFIG_SMSC911X=y +CONFIG_SND=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_MPU401=m +CONFIG_SND_PCM=y +CONFIG_SND_PCM_OSS=m +CONFIG_SND_SOC=y +CONFIG_SND_SOC_I2C_AND_SPI=y +CONFIG_SND_SOC_TWL4030=y +CONFIG_SND_TIMER=y +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=y +CONFIG_SPI=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_THERMAL=m +CONFIG_TIPC=m +# CONFIG_TTPCI_EEPROM is not set +CONFIG_TUN=m +CONFIG_TWL4030_POWER=y +CONFIG_TWL4030_USB=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_USB_EHCI_HCD=y +# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_GADGET=y +CONFIG_USB_GPIO_VBUS=y +CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OTG=y +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set +# CONFIG_VGASTATE is not set +CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_WAN=y +CONFIG_WAN_ROUTER=m +CONFIG_WATCHDOG=y +# CONFIG_WIMAX_I2400M_SDIO is not set +# CONFIG_WIMAX_I2400M_USB is not set +CONFIG_X25=m --- linux-2.6.35.orig/debian.master/config/armel/config.common.armel +++ linux-2.6.35/debian.master/config/armel/config.common.armel @@ -0,0 +1,132 @@ +# +# Config options for config.common.armel automatically generated by splitconfig.pl +# +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +CONFIG_ASYNC_TX_DMA=y +CONFIG_ATM_BR2684_IPFILTER=y +CONFIG_ATM_DUMMY=m +# CONFIG_COMEDI is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +# CONFIG_DRM_RADEON is not set +# CONFIG_DT3155 is not set +CONFIG_EZX_PCAP=y +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +# CONFIG_FB_SAVAGE is not set +CONFIG_FB_VESA=m +CONFIG_FLATMEM_MANUAL=y +CONFIG_FONTS=y +# CONFIG_FSAM7400 is not set +# CONFIG_FUNCTION_TRACER is not set +# CONFIG_GPIO_JANZ_TTL is not set +CONFIG_HAVE_AOUT=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_INTR_REMAP is not set +# CONFIG_IPMI_HANDLER is not set +# CONFIG_LAPBETHER is not set +# CONFIG_M686 is not set +# CONFIG_MFD_JANZ_CMODIO is not set +CONFIG_MII=y +CONFIG_MMC_BLOCK=y +CONFIG_MTD=y +# CONFIG_MTD_ALAUDA is not set +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CHAR=y +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_GPIO_ADDR is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_SST25L is not set +# CONFIG_MUTEX_SPIN_ON_OWNER is not set +CONFIG_NEED_DMA_MAP_STATE=y +# CONFIG_NET_POCKET is not set +# CONFIG_PCCARD is not set +# CONFIG_PHYS_ADDR_T_64BIT is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_POCH is not set +# CONFIG_R3964 is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_OSD_INITIATOR is not set +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SERIAL_8250_PCI=m +# CONFIG_SERIAL_UARTLITE is not set +# CONFIG_SND_ALI5451 is not set +# CONFIG_SND_EMU10K1_SEQ is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_RAWMIDI_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_SEQUENCER is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_SPI_DESIGNWARE=m +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SSB_B43_PCI_BRIDGE is not set +# CONFIG_STACK_TRACER is not set +CONFIG_STANDALONE=y +# CONFIG_SUNGEM is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_TCG_TPM is not set +# CONFIG_USB_ET61X251 is not set +CONFIG_USB_GADGET_DEBUG_FS=y +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_MUSB_HDRC=y +CONFIG_USB_GSPCA_SN9C20X_EVDEV=y +CONFIG_USB_G_MULTI=m +# CONFIG_USB_ISP1362_HCD is not set +CONFIG_USB_MON=m +# CONFIG_USB_QUICKCAM_MESSENGER is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_STV680 is not set +CONFIG_USB_UHCI_HCD=m +# CONFIG_USB_ZC0301 is not set +# CONFIG_VGA_CONSOLE is not set +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_BT819 is not set +# CONFIG_VIDEO_BT856 is not set +# CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_CPIA is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +# CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_OVCAMCHIP is not set +# CONFIG_VIDEO_SAA6588 is not set +# CONFIG_VIDEO_SAA7110 is not set +# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_TDA7432 is not set +# CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TEA6415C is not set +# CONFIG_VIDEO_TEA6420 is not set +# CONFIG_VIDEO_TVAUDIO is not set +# CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_VPX3220 is not set +CONFIG_VIRTIO=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_RING=m +# CONFIG_VME_CA91CX42 is not set +# CONFIG_VME_TSI148 is not set +# CONFIG_VT6656 is not set +# CONFIG_WM8350_WATCHDOG is not set +# CONFIG_X25_ASY is not set +# CONFIG_X86_X2APIC is not set +CONFIG_XEN_BLKDEV_FRONTEND=m +CONFIG_XEN_NETDEV_FRONTEND=m +CONFIG_ZONE_DMA_FLAG=0 --- linux-2.6.35.orig/debian.master/config/amd64/config.common.amd64 +++ linux-2.6.35/debian.master/config/amd64/config.common.amd64 @@ -0,0 +1,295 @@ +# +# Config options for config.common.amd64 automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +CONFIG_ACPI_BLACKLIST_YEAR=0 +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SUPPORTS_MSI=y +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_ATALK=m +CONFIG_ATM=m +# CONFIG_ATM_BR2684_IPFILTER is not set +# CONFIG_ATM_DUMMY is not set +CONFIG_AUDIT_ARCH=y +CONFIG_B43=m +CONFIG_B43LEGACY=m +CONFIG_B44=m +CONFIG_BT=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=y +CONFIG_CEPH_FS=m +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_COMEDI=m +CONFIG_CRYPTO_HMAC=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_DISPLAY_SUPPORT=m +CONFIG_DM_RAID45=m +CONFIG_DRM_RADEON=m +CONFIG_DT3155=m +# CONFIG_DVB_FE_CUSTOMISE is not set +# CONFIG_DVB_USB_EC168 is not set +# CONFIG_EZX_PCAP is not set +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_DDC=m +CONFIG_FB_S1D13XXX=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_UVESA=m +CONFIG_FB_VESA=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FIXED_PHY=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_FONTS is not set +CONFIG_FSAM7400=m +CONFIG_FTL=m +CONFIG_FUNCTION_TRACER=y +CONFIG_GAMEPORT=m +CONFIG_GENERIC_CPU=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GPIO_JANZ_TTL=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_TWL4030=m +# CONFIG_HAVE_AOUT is not set +CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HWMON=y +CONFIG_HZ=100 +CONFIG_HZ_100=y +# CONFIG_HZ_250 is not set +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INTR_REMAP=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_HELPER=y +CONFIG_IPMI_HANDLER=m +CONFIG_IRDA=m +CONFIG_ISDN=y +CONFIG_IWMC3200TOP_DEBUGFS=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KSM=y +# CONFIG_KTIME_SCALAR is not set +CONFIG_LAPB=m +CONFIG_LAPBETHER=m +CONFIG_LEDS_CLASS=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_LOG_BUF_SHIFT=18 +# CONFIG_M686 is not set +CONFIG_MEMSTICK=m +CONFIG_MFD_JANZ_CMODIO=m +# CONFIG_MFD_TMIO is not set +CONFIG_MII=m +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MTD=m +CONFIG_MTD_ABSENT=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_AR7_PARTS=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CFI=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CHAR=m +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_CONCAT=m +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_GPIO_ADDR=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_RAM=m +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_ROM=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MTD_SST25L=m +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NEED_DMA_MAP_STATE=y +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set +CONFIG_NET_CLS_CGROUP=y +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_U32=m +CONFIG_NET_DCCPPROBE=m +CONFIG_NET_POCKET=y +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_TCPPROBE=m +CONFIG_NFTL=m +CONFIG_NOP_USB_XCEIV=m +CONFIG_NO_HZ=y +CONFIG_NR_CPUS=64 +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_PARPORT=m +CONFIG_PCCARD=m +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_PHYSICAL_START=0x200000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PM_DEBUG=y +CONFIG_POCH=m +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PRISM2_USB=m +CONFIG_R3964=m +CONFIG_RAMZSWAP=m +CONFIG_RCU_FANOUT=64 +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_RFD_FTL=m +CONFIG_RFKILL=y +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_IPR=m +CONFIG_SCSI_ISCSITARGET=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_PROC_FS=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_UARTLITE=m +# CONFIG_SLAB is not set +CONFIG_SLIP=m +CONFIG_SLUB=y +CONFIG_SMSC911X=m +CONFIG_SND=m +CONFIG_SND_ALI5451=m +CONFIG_SND_EMU10K1_SEQ=m +# CONFIG_SND_MIXER_OSS is not set +CONFIG_SND_MPU401=m +CONFIG_SND_MTPAV=m +CONFIG_SND_OPL3_LIB_SEQ=m +# CONFIG_SND_OPL4_LIB_SEQ is not set +CONFIG_SND_PCM=m +# CONFIG_SND_PCM_OSS is not set +CONFIG_SND_RAWMIDI_SEQ=m +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_TIMER=m +CONFIG_SOUND=m +# CONFIG_SOUND_OSS_CORE is not set +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPI=y +CONFIG_SPI_DESIGNWARE=y +CONFIG_SPI_SPIDEV=m +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_STACK_TRACER=y +# CONFIG_STANDALONE is not set +CONFIG_SUNGEM=m +CONFIG_SYS_HYPERVISOR=y +CONFIG_TCG_TPM=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_THERMAL=y +CONFIG_TIPC=m +CONFIG_TTPCI_EEPROM=m +CONFIG_TUN=y +CONFIG_TWL4030_USB=m +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_ET61X251=m +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_DUMMY_HCD=y +# CONFIG_USB_GADGET_MUSB_HDRC is not set +CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_GSPCA_SN9C20X_EVDEV is not set +# CONFIG_USB_G_MULTI is not set +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_MON=y +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OTG is not set +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_SERIAL_QUATECH2=m +CONFIG_USB_SERIAL_QUATECH_USB2=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_ZC0301=m +CONFIG_VGASTATE=m +CONFIG_VGA_CONSOLE=y +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_MT9V011=m +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VME_CA91CX42=m +CONFIG_VME_TSI148=m +CONFIG_VT6656=m +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_WAN=y +CONFIG_WAN_ROUTER=m +CONFIG_WATCHDOG=y +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_X25=m +CONFIG_X25_ASY=m +# CONFIG_X86_32 is not set +CONFIG_X86_64=y +CONFIG_X86_INTERNODE_CACHE_SHIFT=7 +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_X86_X2APIC=y +CONFIG_ZONE_DMA32=y +CONFIG_ZONE_DMA_FLAG=1 --- linux-2.6.35.orig/debian.master/config/amd64/config.flavour.generic +++ linux-2.6.35/debian.master/config/amd64/config.flavour.generic @@ -0,0 +1,18 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_MEMORY_HOTPLUG is not set +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_RING=m +CONFIG_XEN_BLKDEV_FRONTEND=m +CONFIG_XEN_NETDEV_FRONTEND=m --- linux-2.6.35.orig/debian.master/config/amd64/config.flavour.virtual +++ linux-2.6.35/debian.master/config/amd64/config.flavour.virtual @@ -0,0 +1,18 @@ +# +# Config options for config.flavour.virtual automatically generated by splitconfig.pl +# +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_MEMORY_HOTPLUG=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_RING=y +CONFIG_XEN_BLKDEV_FRONTEND=y +CONFIG_XEN_NETDEV_FRONTEND=y --- linux-2.6.35.orig/debian.master/config/amd64/config.flavour.server +++ linux-2.6.35/debian.master/config/amd64/config.flavour.server @@ -0,0 +1,18 @@ +# +# Config options for config.flavour.server automatically generated by splitconfig.pl +# +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_MEMORY_HOTPLUG=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_RING=y +CONFIG_XEN_BLKDEV_FRONTEND=m +CONFIG_XEN_NETDEV_FRONTEND=m --- linux-2.6.35.orig/debian.master/config/i386/config.flavour.generic +++ linux-2.6.35/debian.master/config/i386/config.flavour.generic @@ -0,0 +1,15 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_HIGHMEM4G=y +# CONFIG_HIGHMEM64G is not set +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_VIRTIO=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_RING=m --- linux-2.6.35.orig/debian.master/config/i386/config.flavour.virtual +++ linux-2.6.35/debian.master/config/i386/config.flavour.virtual @@ -0,0 +1,17 @@ +# +# Config options for config.flavour.virtual automatically generated by splitconfig.pl +# +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SYS_HYPERVISOR=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_RING=y +CONFIG_XEN_BLKDEV_FRONTEND=y +CONFIG_XEN_NETDEV_FRONTEND=y --- linux-2.6.35.orig/debian.master/config/i386/config.common.i386 +++ linux-2.6.35/debian.master/config/i386/config.common.i386 @@ -0,0 +1,298 @@ +# +# Config options for config.common.i386 automatically generated by splitconfig.pl +# +# CONFIG_64BIT is not set +CONFIG_ACPI_BLACKLIST_YEAR=2000 +CONFIG_AGP=m +CONFIG_AGP_AMD64=m +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_ASYNC_TX_DMA=y +CONFIG_ATALK=m +CONFIG_ATM=m +# CONFIG_ATM_BR2684_IPFILTER is not set +# CONFIG_ATM_DUMMY is not set +# CONFIG_AUDIT_ARCH is not set +CONFIG_B43=m +CONFIG_B43LEGACY=m +CONFIG_B44=m +CONFIG_BT=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=y +CONFIG_CEPH_FS=m +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_COMEDI=m +CONFIG_CRYPTO_HMAC=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_DISPLAY_SUPPORT=m +CONFIG_DM_RAID45=m +CONFIG_DRM_RADEON=m +CONFIG_DT3155=m +# CONFIG_DVB_FE_CUSTOMISE is not set +# CONFIG_DVB_USB_EC168 is not set +# CONFIG_EZX_PCAP is not set +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_DDC=m +CONFIG_FB_S1D13XXX=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_UVESA=m +CONFIG_FB_VESA=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FIXED_PHY=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_FONTS is not set +CONFIG_FSAM7400=m +CONFIG_FTL=m +CONFIG_FUNCTION_TRACER=y +CONFIG_GAMEPORT=m +# CONFIG_GENERIC_CPU is not set +# CONFIG_GENERIC_TIME_VSYSCALL is not set +CONFIG_GPIO_JANZ_TTL=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_TWL4030=m +CONFIG_HAVE_AOUT=y +# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HIGHMEM=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HWMON=y +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +CONFIG_ILLEGAL_POINTER_VALUE=0 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_INTR_REMAP is not set +# CONFIG_IOMMU_API is not set +# CONFIG_IOMMU_HELPER is not set +CONFIG_IPMI_HANDLER=m +CONFIG_IRDA=m +CONFIG_ISDN=y +CONFIG_IWMC3200TOP_DEBUGFS=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KSM=y +CONFIG_KTIME_SCALAR=y +CONFIG_LAPB=m +CONFIG_LAPBETHER=m +CONFIG_LEDS_CLASS=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_M686=y +CONFIG_MEMSTICK=m +CONFIG_MFD_JANZ_CMODIO=m +# CONFIG_MFD_TMIO is not set +CONFIG_MII=m +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MTD=m +CONFIG_MTD_ABSENT=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_AR7_PARTS=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CFI=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CHAR=m +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_CONCAT=m +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_GPIO_ADDR=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_RAM=m +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_ROM=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MTD_SST25L=m +CONFIG_MUTEX_SPIN_ON_OWNER=y +# CONFIG_NEED_DMA_MAP_STATE is not set +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set +CONFIG_NET_CLS_CGROUP=y +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_U32=m +CONFIG_NET_DCCPPROBE=m +CONFIG_NET_POCKET=y +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_TCPPROBE=m +CONFIG_NFTL=m +CONFIG_NOP_USB_XCEIV=m +CONFIG_NO_HZ=y +CONFIG_NR_CPUS=8 +CONFIG_OUTPUT_FORMAT="elf32-i386" +CONFIG_PARPORT=m +CONFIG_PCCARD=m +CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_PHYSICAL_START=0x100000 +CONFIG_PM_DEBUG=y +CONFIG_POCH=m +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PRISM2_USB=m +CONFIG_R3964=m +CONFIG_RAMZSWAP=m +CONFIG_RCU_FANOUT=32 +CONFIG_REGULATOR_DEBUG=y +CONFIG_RFD_FTL=m +CONFIG_RFKILL=y +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_IPR=m +CONFIG_SCSI_ISCSITARGET=m +CONFIG_SCSI_NSP32=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_PROC_FS=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_UARTLITE=m +# CONFIG_SLAB is not set +CONFIG_SLIP=m +CONFIG_SLUB=y +CONFIG_SMSC911X=m +CONFIG_SND=m +CONFIG_SND_ALI5451=m +CONFIG_SND_EMU10K1_SEQ=m +# CONFIG_SND_MIXER_OSS is not set +CONFIG_SND_MPU401=m +CONFIG_SND_MTPAV=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_OPL4_LIB_SEQ=m +CONFIG_SND_PCM=m +# CONFIG_SND_PCM_OSS is not set +CONFIG_SND_RAWMIDI_SEQ=m +CONFIG_SND_SBAWE_SEQ=m +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_TIMER=m +CONFIG_SOUND=m +# CONFIG_SOUND_OSS_CORE is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_SPI=y +CONFIG_SPI_DESIGNWARE=y +CONFIG_SPI_SPIDEV=m +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_STACK_TRACER=y +# CONFIG_STANDALONE is not set +CONFIG_SUNGEM=m +CONFIG_TCG_TPM=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_THERMAL=y +CONFIG_TIPC=m +CONFIG_TTPCI_EEPROM=m +CONFIG_TUN=y +CONFIG_TWL4030_USB=m +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_ET61X251=m +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_DUMMY_HCD=y +# CONFIG_USB_GADGET_MUSB_HDRC is not set +CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_GSPCA_SN9C20X_EVDEV is not set +# CONFIG_USB_G_MULTI is not set +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_MON=y +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OTG is not set +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_SERIAL_QUATECH2=m +CONFIG_USB_SERIAL_QUATECH_USB2=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_ZC0301=m +CONFIG_VGASTATE=m +CONFIG_VGA_CONSOLE=y +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_MT9V011=m +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VME_CA91CX42=m +CONFIG_VME_TSI148=m +CONFIG_VT6656=m +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_WAN=y +CONFIG_WAN_ROUTER=m +CONFIG_WATCHDOG=y +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_X25=m +CONFIG_X25_ASY=m +CONFIG_X86_32=y +# CONFIG_X86_64 is not set +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_MINIMUM_CPU_FAMILY=5 +CONFIG_X86_SPEEDSTEP_LIB=y +# CONFIG_X86_X2APIC is not set +# CONFIG_ZONE_DMA32 is not set +CONFIG_ZONE_DMA_FLAG=1 --- linux-2.6.35.orig/debian.master/config/i386/config.flavour.generic-pae +++ linux-2.6.35/debian.master/config/i386/config.flavour.generic-pae @@ -0,0 +1,17 @@ +# +# Config options for config.flavour.generic-pae automatically generated by splitconfig.pl +# +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SYS_HYPERVISOR=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_RING=y +CONFIG_XEN_BLKDEV_FRONTEND=m +CONFIG_XEN_NETDEV_FRONTEND=m --- linux-2.6.35.orig/debian.master/config/powerpc/config.flavour.powerpc-smp +++ linux-2.6.35/debian.master/config/powerpc/config.flavour.powerpc-smp @@ -0,0 +1,50 @@ +# +# Config options for config.flavour.powerpc-smp automatically generated by splitconfig.pl +# +# CONFIG_ARCH_NO_VIRT_TO_BUS is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_CFG80211_REG_DEBUG=y +# CONFIG_CRYPTO_LZO is not set +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FLATMEM_MANUAL=y +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_GENERIC_TBSYNC=y +# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set +# CONFIG_HP_ILO is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_I2C_GPIO=m +CONFIG_KERNEL_START=0xc0000000 +# CONFIG_KGDB is not set +# CONFIG_LATENCYTOP is not set +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set +CONFIG_LZO_COMPRESS=m +CONFIG_MAX_ACTIVE_REGIONS=32 +# CONFIG_MMIO_NVRAM is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y +# CONFIG_NEED_DMA_MAP_STATE is not set +# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set +CONFIG_NR_CPUS=4 +CONFIG_PAGE_OFFSET=0xc0000000 +# CONFIG_PHYS_ADDR_T_64BIT is not set +# CONFIG_PPC64 is not set +# CONFIG_PPC_970_NAP is not set +# CONFIG_PPC_CELL is not set +CONFIG_PPC_INDIRECT_PCI=y +# CONFIG_PPC_MM_SLICES is not set +CONFIG_PPC_MPC106=y +CONFIG_RCU_FANOUT=32 +# CONFIG_RISCOM8 is not set +# CONFIG_SCHEDSTATS is not set +CONFIG_SCSI_LPFC_DEBUG_FS=y +CONFIG_SMP=y +# CONFIG_SPARSEMEM_MANUAL is not set +# CONFIG_TPS65010 is not set +# CONFIG_UBIFS_FS is not set +# CONFIG_USB_GADGET_DUALSPEED is not set +CONFIG_USB_GADGET_GOKU=y +# CONFIG_USB_GADGET_NET2280 is not set +CONFIG_WORD_SIZE=32 --- linux-2.6.35.orig/debian.master/config/powerpc/config.flavour.powerpc64-smp +++ linux-2.6.35/debian.master/config/powerpc/config.flavour.powerpc64-smp @@ -0,0 +1,50 @@ +# +# Config options for config.flavour.powerpc64-smp automatically generated by splitconfig.pl +# +CONFIG_ARCH_NO_VIRT_TO_BUS=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ATA_NONSTANDARD=y +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CRYPTO_LZO=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_SYS_IMAGEBLIT=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_FORCE_MAX_ZONEORDER=13 +CONFIG_GENERIC_TBSYNC=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HP_ILO=m +CONFIG_HUGETLB_PAGE=y +# CONFIG_I2C_GPIO is not set +CONFIG_KERNEL_START=0xc000000000000000 +CONFIG_KGDB=y +CONFIG_LATENCYTOP=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LZO_COMPRESS=y +CONFIG_MAX_ACTIVE_REGIONS=256 +CONFIG_MMIO_NVRAM=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NR_CPUS=1024 +CONFIG_PAGE_OFFSET=0xc000000000000000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PPC64=y +CONFIG_PPC_970_NAP=y +CONFIG_PPC_CELL=y +# CONFIG_PPC_INDIRECT_PCI is not set +CONFIG_PPC_MM_SLICES=y +# CONFIG_PPC_MPC106 is not set +CONFIG_RCU_FANOUT=64 +CONFIG_RISCOM8=m +CONFIG_SCHEDSTATS=y +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +CONFIG_SMP=y +CONFIG_SPARSEMEM_MANUAL=y +# CONFIG_TPS65010 is not set +CONFIG_UBIFS_FS=m +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_GADGET_GOKU is not set +CONFIG_USB_GADGET_NET2280=y +CONFIG_WORD_SIZE=64 --- linux-2.6.35.orig/debian.master/config/powerpc/config.flavour.powerpc +++ linux-2.6.35/debian.master/config/powerpc/config.flavour.powerpc @@ -0,0 +1,49 @@ +# +# Config options for config.flavour.powerpc automatically generated by splitconfig.pl +# +# CONFIG_ARCH_NO_VIRT_TO_BUS is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +# CONFIG_ATA_NONSTANDARD is not set +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CRYPTO_LZO=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FLATMEM_MANUAL=y +CONFIG_FORCE_MAX_ZONEORDER=11 +# CONFIG_GENERIC_TBSYNC is not set +# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set +CONFIG_HP_ILO=m +# CONFIG_HUGETLB_PAGE is not set +CONFIG_I2C_GPIO=m +CONFIG_KERNEL_START=0xc0000000 +CONFIG_KGDB=y +CONFIG_LATENCYTOP=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_LZO_COMPRESS=m +CONFIG_MAX_ACTIVE_REGIONS=32 +# CONFIG_MMIO_NVRAM is not set +# CONFIG_MUTEX_SPIN_ON_OWNER is not set +# CONFIG_NEED_DMA_MAP_STATE is not set +# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set +CONFIG_PAGE_OFFSET=0xc0000000 +# CONFIG_PHYS_ADDR_T_64BIT is not set +# CONFIG_PPC64 is not set +# CONFIG_PPC_970_NAP is not set +# CONFIG_PPC_CELL is not set +CONFIG_PPC_INDIRECT_PCI=y +# CONFIG_PPC_MM_SLICES is not set +CONFIG_PPC_MPC106=y +CONFIG_RCU_FANOUT=32 +CONFIG_RISCOM8=m +CONFIG_SCHEDSTATS=y +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +# CONFIG_SMP is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_TPS65010=m +CONFIG_UBIFS_FS=m +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_GADGET_GOKU is not set +CONFIG_USB_GADGET_NET2280=y +CONFIG_WORD_SIZE=32 --- linux-2.6.35.orig/debian.master/config/powerpc/config.common.powerpc +++ linux-2.6.35/debian.master/config/powerpc/config.common.powerpc @@ -0,0 +1,3 @@ +# +# Config options for config.common.powerpc automatically generated by splitconfig.pl +# --- linux-2.6.35.orig/debian.master/d-i/exclude-modules.powerpc +++ linux-2.6.35/debian.master/d-i/exclude-modules.powerpc @@ -0,0 +1,5 @@ +efi-modules +fb-modules +acpi-modules +virtio-modules +char-modules --- linux-2.6.35.orig/debian.master/d-i/package-list +++ linux-2.6.35/debian.master/d-i/package-list @@ -0,0 +1,190 @@ +Package: kernel-image + +Package: char-modules +Depends: kernel-image +Priority: standard +Description: Character module support + +Package: fat-modules +Depends: kernel-image +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: fb-modules +Depends: kernel-image +Priority: standard +Description: Framebuffer modules + +Package: firewire-core-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: Firewire (IEEE-1394) Support + +Package: floppy-modules +Depends: kernel-image +Priority: standard +Description: Floppy driver support + +Package: fs-core-modules +Depends: kernel-image +Priority: standard +Provides: jfs-modules, reiserfs-modules, xfs-modules +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules +Depends: kernel-image, fat-modules +Priority: standard +Provides: ntfs-modules, hfs-modules +Description: Extra filesystem modules + This includes support for Windows NTFS and MacOS HFS/HFSPlus + +Package: input-modules +Depends: kernel-image, usb-modules +Priority: standard +Description: Support for various input methods + +Package: irda-modules +Depends: kernel-image, nic-shared-modules +Priority: standard +Description: Support for Infrared protocols + +Package: md-modules +Depends: kernel-image +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: nic-modules +Depends: kernel-image, nic-shared-modules, virtio-modules +Priority: standard +Description: Network interface support + +Package: nic-pcmcia-modules +Depends: kernel-image, nic-shared-modules, nic-modules +Priority: standard +Description: PCMCIA network interface support + +Package: nic-usb-modules +Depends: kernel-image, nic-shared-modules, usb-modules +Priority: standard +Description: USB network interface support + +Package: nic-shared-modules +Depends: kernel-image, crypto-modules +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: parport-modules +Depends: kernel-image +Priority: standard +Description: Parallel port support + +Package: pata-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: PATA support modules + +Package: pcmcia-modules +Depends: kernel-image +Priority: standard +Description: PCMCIA Modules + +Package: pcmcia-storage-modules +Depends: kernel-image, scsi-modules +Priority: standard +Description: PCMCIA storage support + +Package: plip-modules +Depends: kernel-image, nic-shared-modules, parport-modules +Priority: standard +Description: PLIP (parallel port) networking support + +Package: ppp-modules +Depends: kernel-image, nic-shared-modules, serial-modules +Priority: standard +Description: PPP (serial port) networking support + +Package: sata-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: SATA storage support + +Package: scsi-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: SCSI storage support + +Package: serial-modules +Depends: kernel-image +Priority: standard +Description: Serial port support + +Package: storage-core-modules +Depends: kernel-image +Priority: standard +Provides: loop-modules +Description: Core storage support + Includes core SCSI, LibATA, USB-Storage. Also includes related block + devices for CD, Disk and Tape medium (and IDE Floppy). + +Package: usb-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: Core USB support + +Package: nfs-modules +Priority: standard +Depends: kernel-image +Description: NFS filesystem drivers + Includes the NFS client driver, and supporting modules. + +Package: block-modules +Priority: standard +Depends: kernel-image, storage-core-modules, parport-modules, virtio-modules +Description: Block storage devices + This package contains the block storage devices, including DAC960 and + paraide. + +Package: message-modules +Priority: standard +Depends: kernel-image, storage-core-modules, scsi-modules +Description: Fusion and i2o storage modules + This package containes the fusion and i2o storage modules. + +Package: crypto-modules +Priority: extra +Depends: kernel-image +Description: crypto modules + This package contains crypto modules. + +Package: virtio-modules +Priority: standard +Depends: kernel-image +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: socket-modules +Depends: kernel-image +Priority: standard +Description: Unix socket support + +Package: mouse-modules +Depends: kernel-image, input-modules, usb-modules +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: squashfs-modules +Depends: kernel-image +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: vlan-modules +Depends: kernel-image +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. + --- linux-2.6.35.orig/debian.master/d-i/exclude-firmware.armel-omap +++ linux-2.6.35/debian.master/d-i/exclude-firmware.armel-omap @@ -0,0 +1,2 @@ +nic-modules +scsi-modules --- linux-2.6.35.orig/debian.master/d-i/exclude-modules.sparc +++ linux-2.6.35/debian.master/d-i/exclude-modules.sparc @@ -0,0 +1,10 @@ +efi-modules +nic-pcmcia-modules +pcmcia-modules +pcmcia-storage-modules +irda-modules +floppy-modules +fb-modules +acpi-modules +virtio-modules +char-modules --- linux-2.6.35.orig/debian.master/d-i/exclude-modules.ia64 +++ linux-2.6.35/debian.master/d-i/exclude-modules.ia64 @@ -0,0 +1,5 @@ +irda-modules +floppy-modules +fb-modules +virtio-modules +char-modules --- linux-2.6.35.orig/debian.master/d-i/exclude-modules.armel-versatile +++ linux-2.6.35/debian.master/d-i/exclude-modules.armel-versatile @@ -0,0 +1,20 @@ +crypto-modules +fb-modules +fs-core-modules +fs-secondary-modules +nic-modules +nic-pcmcia-modules +nic-usb-modules +scsi-modules +storage-core-modules +nfs-modules +pcmcia-modules +parport-modules +serial-modules +plip-modules +pcmcia-storage-modules +mouse-modules +irda-modules +floppy-modules +char-modules +virtio-modules --- linux-2.6.35.orig/debian.master/d-i/kernel-versions.in +++ linux-2.6.35/debian.master/d-i/kernel-versions.in @@ -0,0 +1,15 @@ +# arch version flavour installedname suffix bdep +amd64 PKGVER-ABINUM generic PKGVER-ABINUM-generic - +amd64 PKGVER-ABINUM virtual PKGVER-ABINUM-virtual - + +i386 PKGVER-ABINUM generic PKGVER-ABINUM-generic - +i386 PKGVER-ABINUM generic-pae PKGVER-ABINUM-generic-pae - +i386 PKGVER-ABINUM virtual PKGVER-ABINUM-virtual - + +armel PKGVER-ABINUM versatile PKGVER-ABINUM-versatile - +armel PKGVER-ABINUM omap PKGVER-ABINUM-omap - + +# Ports +# arch version flavour installedname suffix bdep +powerpc PKGVER-ABINUM powerpc PKGVER-ABINUM-powerpc - +powerpc PKGVER-ABINUM powerpc64-smp PKGVER-ABINUM-powerpc64-smp - --- linux-2.6.35.orig/debian.master/d-i/exclude-modules.i386-virtual +++ linux-2.6.35/debian.master/d-i/exclude-modules.i386-virtual @@ -0,0 +1,12 @@ +pata-modules +serial-modules +firewire-core-modules +plip-modules +usb-modules +pcmcia-storage-modules +input-modules +nic-pcmcia-modules +pcmcia-modules +nic-usb-modules +char-modules +nfs-modules --- linux-2.6.35.orig/debian.master/d-i/exclude-modules.amd64-virtual +++ linux-2.6.35/debian.master/d-i/exclude-modules.amd64-virtual @@ -0,0 +1,12 @@ +pata-modules +serial-modules +firewire-core-modules +plip-modules +usb-modules +pcmcia-storage-modules +input-modules +nic-pcmcia-modules +pcmcia-modules +nic-usb-modules +char-modules +nfs-modules --- linux-2.6.35.orig/debian.master/d-i/exclude-modules.armel-omap +++ linux-2.6.35/debian.master/d-i/exclude-modules.armel-omap @@ -0,0 +1,11 @@ +serial-modules +firewire-core-modules +floppy-modules +pcmcia-storage-modules +fb-modules +nic-pcmcia-modules +pcmcia-modules +char-modules +pata-modules +message-modules +virtio-modules --- linux-2.6.35.orig/debian.master/d-i/kernel-versions +++ linux-2.6.35/debian.master/d-i/kernel-versions @@ -0,0 +1,15 @@ +# arch version flavour installedname suffix bdep +amd64 2.6.35-23 generic 2.6.35-23-generic - +amd64 2.6.35-23 virtual 2.6.35-23-virtual - + +i386 2.6.35-23 generic 2.6.35-23-generic - +i386 2.6.35-23 generic-pae 2.6.35-23-generic-pae - +i386 2.6.35-23 virtual 2.6.35-23-virtual - + +armel 2.6.35-23 versatile 2.6.35-23-versatile - +armel 2.6.35-23 omap 2.6.35-23-omap - + +# Ports +# arch version flavour installedname suffix bdep +powerpc 2.6.35-23 powerpc 2.6.35-23-powerpc - +powerpc 2.6.35-23 powerpc64-smp 2.6.35-23-powerpc64-smp - --- linux-2.6.35.orig/debian.master/d-i/modules/fs-core-modules +++ linux-2.6.35/debian.master/d-i/modules/fs-core-modules @@ -0,0 +1,3 @@ +jfs ? +reiserfs ? +xfs ? --- linux-2.6.35.orig/debian.master/d-i/modules/sata-modules +++ linux-2.6.35/debian.master/d-i/modules/sata-modules @@ -0,0 +1,14 @@ +ahci.ko ? +sata_inic162x.ko ? +sata_mv.ko ? +sata_nv.ko ? +sata_promise.ko ? +sata_qstor.ko ? +sata_sil24.ko ? +sata_sil.ko ? +sata_sis.ko ? +sata_svw.ko ? +sata_sx4.ko ? +sata_uli.ko ? +sata_via.ko ? +sata_vsc.ko ? --- linux-2.6.35.orig/debian.master/d-i/modules/md-modules +++ linux-2.6.35/debian.master/d-i/modules/md-modules @@ -0,0 +1,13 @@ +dm-crypt ? +dm-zero ? +faulty ? +linear ? +multipath ? +raid0 ? +raid1 ? +raid10 ? +raid456 ? + +# Extras +dm-raid4-5 ? +dm-loop ? --- linux-2.6.35.orig/debian.master/d-i/modules/nfs-modules +++ linux-2.6.35/debian.master/d-i/modules/nfs-modules @@ -0,0 +1,4 @@ +nfs ? +nfs_acl ? +lockd ? +sunrpc ? --- linux-2.6.35.orig/debian.master/d-i/modules/pcmcia-storage-modules +++ linux-2.6.35/debian.master/d-i/modules/pcmcia-storage-modules @@ -0,0 +1,6 @@ +pata_pcmcia ? +qlogic_cs ? +fdomain_cs ? +aha152x_cs ? +nsp_cs ? +sym53c500_cs ? --- linux-2.6.35.orig/debian.master/d-i/modules/floppy-modules +++ linux-2.6.35/debian.master/d-i/modules/floppy-modules @@ -0,0 +1 @@ +floppy ? --- linux-2.6.35.orig/debian.master/d-i/modules/usb-modules +++ linux-2.6.35/debian.master/d-i/modules/usb-modules @@ -0,0 +1,9 @@ +ehci-hcd ? +isp116x-hcd ? +isp1760 ? +ohci-hcd ? +r8a66597-hcd ? +sl811_cs ? +sl811-hcd ? +u132-hcd ? +uhci-hcd ? --- linux-2.6.35.orig/debian.master/d-i/modules/virtio-modules +++ linux-2.6.35/debian.master/d-i/modules/virtio-modules @@ -0,0 +1,4 @@ +virtio_balloon ? +virtio_pci ? +virtio_ring ? +virtio-rng ? --- linux-2.6.35.orig/debian.master/d-i/modules/fat-modules +++ linux-2.6.35/debian.master/d-i/modules/fat-modules @@ -0,0 +1,7 @@ +fat ? +vfat ? + +# Supporting modules ? +nls_cp437 ? +nls_iso8859-1 ? +nls_utf8 ? --- linux-2.6.35.orig/debian.master/d-i/modules/block-modules +++ linux-2.6.35/debian.master/d-i/modules/block-modules @@ -0,0 +1,30 @@ +aoe ? +aten ? +bpck ? +bpck6 ? +cciss ? +comm ? +cpqarray ? +DAC960 ? +dstr ? +epat ? +epia ? +fit2 ? +fit3 ? +friq ? +frpw ? +kbic ? +ktti ? +nbd ? +on20 ? +on26 ? +paride ? +pcd ? +pd ? +pf ? +pg ? +pt ? +sx8 ? +umem ? +virtio_blk ? +xen-blkfront ? --- linux-2.6.35.orig/debian.master/d-i/modules/crypto-modules +++ linux-2.6.35/debian.master/d-i/modules/crypto-modules @@ -0,0 +1,8 @@ +aes_generic ? +blowfish ? +twofish ? +serpent ? +sha256_generic ? +cbc ? +ecb ? +crc32c ? --- linux-2.6.35.orig/debian.master/d-i/modules/message-modules +++ linux-2.6.35/debian.master/d-i/modules/message-modules @@ -0,0 +1,14 @@ +mptbase ? +mptctl ? +mptfc ? +mptlan ? +mptsas ? +mpt2sas ? +mptscsih ? +mptspi ? +i2o_block ? +i2o_bus ? +i2o_config ? +i2o_core ? +i2o_proc ? +i2o_scsi ? --- linux-2.6.35.orig/debian.master/d-i/modules/irda-modules +++ linux-2.6.35/debian.master/d-i/modules/irda-modules @@ -0,0 +1,30 @@ +act200l-sir ? +actisys-sir ? +ali-ircc ? +donauboe ? +esi-sir ? +girbil-sir ? +ircomm ? +ircomm-tty ? +irda ? +irda-usb ? +irlan ? +irnet ? +irport ? +irtty-sir ? +kingsun-sir ? +ks959-sir ? +ksdazzle-sir ? +litelink-sir ? +ma600-sir ? +mcp2120-sir ? +mcs7780 ? +nsc-ircc ? +old_belkin-sir ? +sir-dev ? +smsc-ircc2 ? +stir4200 ? +tekram-sir ? +via-ircc ? +vlsi_ir ? +w83977af_ir ? --- linux-2.6.35.orig/debian.master/d-i/modules/nic-pcmcia-modules +++ linux-2.6.35/debian.master/d-i/modules/nic-pcmcia-modules @@ -0,0 +1,19 @@ +3c574_cs ? +3c589_cs ? +airo_cs ? +atmel_cs ? +axnet_cs ? +com20020_cs ? +fmvj18x_cs ? +ibmtr_cs ? +netwave_cs ? +nmclan_cs ? +orinoco_cs ? +pcnet_cs ? +ray_cs ? +smc91c92_cs ? +wavelan_cs ? +wl3501_cs ? +xirc2ps_cs ? +xircom_cb ? +xircom_tulip_cb ? --- linux-2.6.35.orig/debian.master/d-i/modules/mouse-modules +++ linux-2.6.35/debian.master/d-i/modules/mouse-modules @@ -0,0 +1,2 @@ +psmouse ? +usbmouse ? --- linux-2.6.35.orig/debian.master/d-i/modules/fs-secondary-modules +++ linux-2.6.35/debian.master/d-i/modules/fs-secondary-modules @@ -0,0 +1,5 @@ +btrfs ? +fuse ? +ntfs ? +hfs ? +hfsplus ? --- linux-2.6.35.orig/debian.master/d-i/modules/input-modules +++ linux-2.6.35/debian.master/d-i/modules/input-modules @@ -0,0 +1,21 @@ +hid-a4tech ? +hid-apple ? +hid-belkin ? +hid-bright ? +hid-cherry ? +hid-chicony ? +hid-cypress ? +hid-dell ? +hid-ezkey ? +hid-gyration ? +hid-logitech ? +hid-microsoft ? +hid-monterey ? +hid-petalynx ? +hid-pl ? +hid-samsung ? +hid-sony ? +hid-sunplus ? +hid-tmff ? +hid-zpff ? +usbhid ? --- linux-2.6.35.orig/debian.master/d-i/modules/pata-modules +++ linux-2.6.35/debian.master/d-i/modules/pata-modules @@ -0,0 +1,46 @@ +pata_ali.ko ? +pata_amd.ko ? +pata_artop.ko ? +pata_atiixp.ko ? +pata_atp867x.ko ? +pata_cmd640.ko ? +pata_cmd64x.ko ? +pata_cs5520.ko ? +pata_cs5530.ko ? +pata_cs5535.ko ? +pata_cs5536.ko ? +pata_cypress.ko ? +pata_efar.ko ? +pata_hpt366.ko ? +pata_hpt37x.ko ? +pata_hpt3x2n.ko ? +pata_hpt3x3.ko ? +pata_isapnp.ko ? +pata_it8213.ko ? +pata_it821x.ko ? +pata_jmicron.ko ? +pata_legacy.ko ? +pata_marvell.ko ? +pata_mpiix.ko ? +pata_netcell.ko ? +pata_ninja32.ko ? +pata_ns87410.ko ? +pata_ns87415.ko ? +pata_oldpiix.ko ? +pata_optidma.ko ? +pata_opti.ko ? +pata_pcmcia.ko ? +pata_pdc2027x.ko ? +pata_pdc202xx_old.ko ? +pata_qdi.ko ? +pata_radisys.ko ? +pata_rdc.ko ? +pata_rz1000.ko ? +pata_sc1200.ko ? +pata_sch.ko ? +pata_serverworks.ko ? +pata_sil680.ko ? +pata_sl82c105.ko ? +pata_triflex.ko ? +pata_via.ko ? +pata_winbond.ko ? --- linux-2.6.35.orig/debian.master/d-i/modules/nic-modules +++ linux-2.6.35/debian.master/d-i/modules/nic-modules @@ -0,0 +1,156 @@ +3c359 ? +3c501 ? +3c503 ? +3c505 ? +3c507 ? +3c509 ? +3c515 ? +3c523 ? +3c527 ? +3c59x ? +8139cp ? +8139too ? +82596 ? +abyss ? +ac3200 ? +adm8211 ? +airo ? +airport ? +amd8111e ? +arc4 ? +arcnet ? +arc-rawmode ? +arc-rimi ? +arlan ? +at1700 ? +atl1 ? +atl1c ? +atl1e ? +atl2 ? +atmel ? +atmel_pci ? +b44 ? +bcm43xx ? +bcm43xx-mac80211 ? +be2net ? +bmac ? +bnx2 ? +bnx2x ? +bonding ? +cassini ? +com20020 ? +com20020-pci ? +com90io ? +com90xx ? +cs89x0 ? +de2104x ? +de4x5 ? +de600 ? +de620 ? +defxx ? +depca ? +dl2k ? +dmfe ? +dummy ? +e100 ? +e1000 ? +e1000e ? +e2100 ? +eepro ? +eepro100 ? +eexpress ? +epic100 ? +eql ? +es3210 ? +eth16i ? +ewrk3 ? +fealnx ? +forcedeth ? +igb ? +ps3_gelic ? +hamachi ? +hermes ? +hp ? +hp100 ? +hp-plus ? +ibmtr ? +ipddp ? +ipw2100 ? +ipw2200 ? +ipw3945 ? +ixgb ? +lance ? +lanstreamer ? +lasi_82596 ? +lne390 ? +lp486e ? +mace ? +mv643xx_eth ? +myri_sbus ? +natsemi ? +ne ? +ne2 ? +ne2k-pci ? +ne3210 ? +netconsole ? +netxen_nic ? +ni5010 ? +ni52 ? +ni65 ? +niu ? +ns83820 ? +olympic ? +orinoco ? +orinoco_pci ? +orinoco_plx ? +orinoco_tmd ? +pcnet32 ? +prism54 ? +r8169 ? +rate_control ? +rfc1051 ? +rfc1201 ? +rrunner ? +rt2400 ? +rt2500 ? +rt61pci ? +s2io ? +shaper ? +sis190 ? +sis900 ? +spidernet ? +skfp ? +skge ? +sk98lin ? +sky2 ? +smc9194 ? +smc-ultra ? +smc-ultra32 ? +starfire ? +strip ? +sunbmac ? +sundance ? +sungem ? +sungem_phy ? +sunhme ? +sunlance ? +sunqe ? +sunvnet ? +tg3 ? +tlan ? +tms380tr ? +tmspci ? +tulip ? +tun ? +typhoon ? +uli526x ? +via-rhine ? +via-velocity ? +virtio_net ? +wavelan ? +wd ? +winbond-840 ? +yellowfin ? +znet ? +vmxnet3 ? +xen-netfront ? --- linux-2.6.35.orig/debian.master/d-i/modules/fb-modules +++ linux-2.6.35/debian.master/d-i/modules/fb-modules @@ -0,0 +1,3 @@ +fbcon ? +vesafb ? +vga16fb ? --- linux-2.6.35.orig/debian.master/d-i/modules/scsi-modules +++ linux-2.6.35/debian.master/d-i/modules/scsi-modules @@ -0,0 +1,117 @@ +# SCSI +raid_class ? +scsi_transport_spi ? +scsi_transport_fc ? +scsi_transport_iscsi ? +scsi_transport_sas ? +iscsi_tcp ? +libiscsi ? +amiga7xx ? +a3000 ? +a2091 ? +gvp11 ? +mvme147 ? +sgiwd93 ? +cyberstorm ? +cyberstormII ? +blz2060 ? +blz1230 ? +fastlane ? +oktagon_esp_mod ? +atari_scsi ? +mac_scsi ? +mac_esp ? +sun3_scsi ? +mvme16x ? +bvme6000 ? +sim710 ? +advansys ? +psi240i ? +BusLogic ? +dpt_i2o ? +u14-34f ? +ultrastor ? +aha152x ? +aha1542 ? +aha1740 ? +aic7xxx_old ? +ips ? +fd_mcs ? +fdomain ? +in2000 ? +g_NCR5380 ? +g_NCR5380_mmio ? +NCR53c406a ? +NCR_D700 ? +NCR_Q720_mod ? +sym53c416 ? +qlogicfas408 ? +qla1280 ? +pas16 ? +seagate ? +seagate ? +t128 ? +dmx3191d ? +dtc ? +zalon7xx ? +eata_pio ? +wd7000 ? +mca_53c9x ? +ibmmca ? +eata ? +dc395x ? +tmscsim ? +megaraid ? +atp870u ? +esp ? +gdth ? +initio ? +a100u2w ? +qlogicpti ? +ide-scsi ? +mesh ? +mac53c94 ? +pluto ? +dec_esp ? +3w-xxxx ? +3w-9xxx ? +ppa ? +imm ? +jazz_esp ? +sun3x_esp ? +fcal ? +lasi700 ? +nsp32 ? +ipr ? +hptiop ? +stex ? +osst ? +sg ? +ch ? +scsi_debug ? +aacraid ? +aic7xxx ? +aic79xx ? +aic94xx ? +arcmsr ? +acornscsi_mod ? +arxescsi ? +cumana_1 ? +cumana_2 ? +ecoscsi ? +oak ? +powertec ? +eesox ? +ibmvscsic ? +libsas ? +lpfc ? +megaraid_mm ? +megaraid_mbox ? +megaraid_sas ? +qla2xxx ? +sym53c8xx ? +qla4xxx ? +mvsas ? +vmw_pvscsi ? +ums-cypress ? +be2scsi ? --- linux-2.6.35.orig/debian.master/d-i/modules/parport-modules +++ linux-2.6.35/debian.master/d-i/modules/parport-modules @@ -0,0 +1,2 @@ +parport ? +parport_pc ? --- linux-2.6.35.orig/debian.master/d-i/modules/vlan-modules +++ linux-2.6.35/debian.master/d-i/modules/vlan-modules @@ -0,0 +1,3 @@ +slp ? +garp ? +8021q ? --- linux-2.6.35.orig/debian.master/d-i/modules/char-modules +++ linux-2.6.35/debian.master/d-i/modules/char-modules @@ -0,0 +1 @@ +intel-agp ? --- linux-2.6.35.orig/debian.master/d-i/modules/storage-core-modules +++ linux-2.6.35/debian.master/d-i/modules/storage-core-modules @@ -0,0 +1,10 @@ +# Core stacks +usb-storage ? + +# Block level + +# Loop modules +cryptoloop ? + +# Needs to be here for better cdrom initrd layout +isofs ? --- linux-2.6.35.orig/debian.master/d-i/modules/nic-usb-modules +++ linux-2.6.35/debian.master/d-i/modules/nic-usb-modules @@ -0,0 +1,27 @@ +catc ? +kaweth ? +pegasus ? +prism2_usb ? +rtl8150 ? +usbnet ? +zd1211rw ? +zd1201 ? +rt2500usb ? +rt73usb ? +rt2570 ? +cdc_ether ? +asix ? +cdc_eem ? +cdc_ether ? +cdc-phonet ? +cdc_subset ? +dm9601 ? +gl620a ? +hso ? +int51x1 ? +mcs7830 ? +net1080 ? +plusb ? +rndis_host ? +smsc95xx ? +zaurus ? --- linux-2.6.35.orig/debian.master/d-i/modules/serial-modules +++ linux-2.6.35/debian.master/d-i/modules/serial-modules @@ -0,0 +1,3 @@ +generic_serial ? +serial_cs ? +synclink_cs ? --- linux-2.6.35.orig/debian.master/d-i/modules/nic-shared-modules +++ linux-2.6.35/debian.master/d-i/modules/nic-shared-modules @@ -0,0 +1,22 @@ +# PHY +8390 ? +mii ? + +# CRC modules +crc-ccitt ? +crc-itu-t ? +libcrc32c ? + +# mac80211 stuff +mac80211 ? +cfg80211 ? + +# rt2x00 lib (since rt2x00 is split across usb/pci/cb +rt2x00lib ? + +# Wireless 802.11 modules +lib80211 ? +cfg80211 ? +lib80211_crypt_ccmp ? +lib80211_crypt_tkip ? +lib80211_crypt_wep ? --- linux-2.6.35.orig/debian.master/d-i/modules/ppp-modules +++ linux-2.6.35/debian.master/d-i/modules/ppp-modules @@ -0,0 +1,6 @@ +ppp_async ? +ppp_deflate ? +ppp_mppe ? +pppoe ? +pppox ? +ppp_synctty ? --- linux-2.6.35.orig/debian.master/d-i/modules/squashfs-modules +++ linux-2.6.35/debian.master/d-i/modules/squashfs-modules @@ -0,0 +1 @@ +squashfs ? --- linux-2.6.35.orig/debian.master/d-i/modules/pcmcia-modules +++ linux-2.6.35/debian.master/d-i/modules/pcmcia-modules @@ -0,0 +1,8 @@ +i82092 ? +i82365 ? +pcmcia ? +pcmcia_core ? +pd6729 ? +rsrc_nonstatic ? +tcic ? +yenta_socket ? --- linux-2.6.35.orig/debian.master/d-i/modules/firewire-core-modules +++ linux-2.6.35/debian.master/d-i/modules/firewire-core-modules @@ -0,0 +1,4 @@ +ieee1394 ? +ohci1394 ? +sbp2 ? +eth1394 ? --- linux-2.6.35.orig/debian.master/d-i/modules/plip-modules +++ linux-2.6.35/debian.master/d-i/modules/plip-modules @@ -0,0 +1 @@ +plip ? --- linux-2.6.35.orig/debian.master/d-i/modules-sparc/block-modules +++ linux-2.6.35/debian.master/d-i/modules-sparc/block-modules @@ -0,0 +1,9 @@ +aoe +cciss +comm +cpqarray ? +DAC960 +nbd +sx8 +umem +virtio_blk ? --- linux-2.6.35.orig/debian.master/d-i/modules-sparc/message-modules +++ linux-2.6.35/debian.master/d-i/modules-sparc/message-modules @@ -0,0 +1,13 @@ +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +i2o_block +i2o_bus +i2o_config ? +i2o_core +i2o_proc +i2o_scsi --- linux-2.6.35.orig/debian.master/d-i/modules-powerpc/block-modules +++ linux-2.6.35/debian.master/d-i/modules-powerpc/block-modules @@ -0,0 +1,31 @@ +aoe +aten +bpck +bpck6 ? +cciss +comm +cpqarray ? +DAC960 +dstr +epat +epia +fit2 +fit3 +friq +frpw +kbic +ktti +nbd +on20 +on26 +paride +pcd +pd +pf +pg +ps3disk ? +ps3vram ? +pt +sx8 +umem +virtio_blk ? --- linux-2.6.35.orig/debian.master/d-i/modules-powerpc/message-modules +++ linux-2.6.35/debian.master/d-i/modules-powerpc/message-modules @@ -0,0 +1,13 @@ +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +i2o_block +i2o_bus +i2o_config ? +i2o_core +i2o_proc +i2o_scsi --- linux-2.6.35.orig/debian.master/d-i/modules-powerpc/nic-modules +++ linux-2.6.35/debian.master/d-i/modules-powerpc/nic-modules @@ -0,0 +1,152 @@ +3c359 ? +3c501 ? +3c503 ? +3c505 ? +3c507 ? +3c509 ? +3c515 ? +3c523 ? +3c527 ? +3c59x ? +8139cp ? +8139too ? +82596 ? +abyss ? +ac3200 ? +adm8211 ? +airo ? +airport ? +amd8111e ? +arc4 ? +arcnet ? +arc-rawmode ? +arc-rimi ? +arlan ? +at1700 ? +atl1 ? +atl1e ? +atl2 ? +atmel ? +atmel_pci ? +b44 ? +bcm43xx ? +bcm43xx-mac80211 ? +bmac ? +bnx2 ? +bnx2x ? +bonding ? +cassini ? +com20020 ? +com20020-pci ? +com90io ? +com90xx ? +cs89x0 ? +de2104x ? +de4x5 ? +de600 ? +de620 ? +defxx ? +depca ? +dl2k ? +dmfe ? +dummy ? +e100 ? +e1000 ? +e1000e ? +e2100 ? +eepro ? +eepro100 ? +eexpress ? +epic100 ? +eql ? +es3210 ? +eth16i ? +ewrk3 ? +fealnx ? +forcedeth ? +igb ? +hamachi ? +hermes ? +hp ? +hp100 ? +hp-plus ? +ibmtr ? +ipddp ? +ipw2100 ? +ipw2200 ? +ipw3945 ? +ixgb ? +lance ? +lanstreamer ? +lasi_82596 ? +lne390 ? +lp486e ? +mace ? +mv643xx_eth ? +myri_sbus ? +natsemi ? +ne ? +ne2 ? +ne2k-pci ? +ne3210 ? +netconsole ? +netxen_nic ? +ni5010 ? +ni52 ? +ni65 ? +niu ? +ns83820 ? +olympic ? +orinoco ? +orinoco_pci ? +orinoco_plx ? +orinoco_tmd ? +pcnet32 ? +prism54 ? +ps3_gelic ? +r8169 ? +rate_control ? +rfc1051 ? +rfc1201 ? +rrunner ? +rt2400 ? +rt2500 ? +rt61pci ? +s2io ? +shaper ? +sis190 ? +sis900 ? +spidernet ? +skfp ? +skge ? +sk98lin ? +sky2 ? +smc9194 ? +smc-ultra ? +smc-ultra32 ? +starfire ? +strip ? +sunbmac ? +sundance ? +sungem ? +sungem_phy ? +sunhme ? +sunlance ? +sunqe ? +sunvnet ? +tg3 ? +tlan ? +tms380tr ? +tmspci ? +tulip ? +tun ? +typhoon ? +uli526x ? +via-rhine ? +via-velocity ? +virtio_net ? +wavelan ? +wd ? +winbond-840 ? +yellowfin ? +znet ? --- linux-2.6.35.orig/debian.master/d-i/modules-powerpc/scsi-modules +++ linux-2.6.35/debian.master/d-i/modules-powerpc/scsi-modules @@ -0,0 +1,116 @@ +# SCSI +raid_class ? +scsi_transport_spi ? +scsi_transport_fc ? +scsi_transport_iscsi ? +scsi_transport_sas ? +iscsi_tcp ? +libiscsi ? +amiga7xx ? +a3000 ? +a2091 ? +gvp11 ? +mvme147 ? +sgiwd93 ? +cyberstorm ? +cyberstormII ? +blz2060 ? +blz1230 ? +fastlane ? +oktagon_esp_mod ? +atari_scsi ? +mac_scsi ? +mac_esp ? +sun3_scsi ? +mvme16x ? +bvme6000 ? +sim710 ? +advansys ? +psi240i ? +BusLogic ? +dpt_i2o ? +u14-34f ? +ultrastor ? +aha152x ? +aha1542 ? +aha1740 ? +aic7xxx_old ? +ips ? +fd_mcs ? +fdomain ? +in2000 ? +g_NCR5380 ? +g_NCR5380_mmio ? +NCR53c406a ? +NCR_D700 ? +NCR_Q720_mod ? +sym53c416 ? +qlogicfas408 ? +qla1280 ? +pas16 ? +seagate ? +seagate ? +t128 ? +dmx3191d ? +dtc ? +zalon7xx ? +eata_pio ? +wd7000 ? +mca_53c9x ? +ibmmca ? +eata ? +dc395x ? +tmscsim ? +megaraid ? +atp870u ? +esp ? +gdth ? +initio ? +a100u2w ? +qlogicpti ? +ide-scsi ? +mesh ? +mac53c94 ? +pluto ? +dec_esp ? +3w-xxxx ? +3w-9xxx ? +ppa ? +imm ? +jazz_esp ? +sun3x_esp ? +fcal ? +lasi700 ? +nsp32 ? +ipr ? +hptiop ? +stex ? +osst ? +sg ? +ch ? +scsi_debug ? +aacraid ? +aic7xxx ? +aic79xx ? +aic94xx ? +arcmsr ? +acornscsi_mod ? +arxescsi ? +cumana_1 ? +cumana_2 ? +ecoscsi ? +oak ? +powertec ? +eesox ? +ibmvscsic ? +libsas ? +lpfc ? +megaraid_mm ? +megaraid_mbox ? +megaraid_sas ? +qla2xxx ? +sym53c8xx ? +qla4xxx ? +mvsas ? +sr_mod ? +sd_mod ? --- linux-2.6.35.orig/debian.master/d-i/modules-powerpc/storage-core-modules +++ linux-2.6.35/debian.master/d-i/modules-powerpc/storage-core-modules @@ -0,0 +1,13 @@ +# Core stacks +usb-storage ? + +# Block level + +# Loop modules +cryptoloop + +# Needs to be here for better cdrom initrd layout +isofs + +ps3stor_lib ? +ps3rom ? --- linux-2.6.35.orig/debian.master/d-i/firmware/nic-modules +++ linux-2.6.35/debian.master/d-i/firmware/nic-modules @@ -0,0 +1,10 @@ +bnx2/bnx2-mips-06-5.0.0.j6.fw +bnx2/bnx2-mips-09-5.0.0.j15.fw +bnx2/bnx2-rv2p-06-5.0.0.j3.fw +bnx2/bnx2-rv2p-09-5.0.0.j10.fw +bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw +bnx2x-e1-5.2.13.0.fw +bnx2x-e1h-5.2.13.0.fw +e100/d101m_ucode.bin +e100/d101s_ucode.bin +e100/d102e_ucode.bin --- linux-2.6.35.orig/debian.master/d-i/firmware/scsi-modules +++ linux-2.6.35/debian.master/d-i/firmware/scsi-modules @@ -0,0 +1,3 @@ +qlogic/1040.bin +qlogic/12160.bin +qlogic/1280.bin --- linux-2.6.35.orig/debian.master/d-i/firmware/README.txt +++ linux-2.6.35/debian.master/d-i/firmware/README.txt @@ -0,0 +1,4 @@ +# +# Place the names of udeb modules into this directory that require +# runtime firmware. +# --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/abiname +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/abiname @@ -0,0 +1 @@ +23 --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/armel/versatile.modules +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/armel/versatile.modules @@ -0,0 +1,1763 @@ +3c359 +3c59x +3w-9xxx +3w-sas +3w-xxxx +6pack +8021q +8139cp +8139too +8250 +8250_pci +8390 +88pm860x_bl +88pm860x_onkey +9p +9pnet +9pnet_rdma +a100u2w +aacraid +ab3100 +ab3100-otp +abyss +ac97_bus +acecad +acenic +act_gact +act_ipt +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad525x_dpot +ad525x_dpot-i2c +ad714x +ad714x-i2c +adfs +adm8211 +adp5520_bl +adp5520-gpio +adp5520-keys +adp5588-gpio +adp5588-keys +adp8860_bl +adutux +aes_generic +af_802154 +af9013 +affs +af_key +af-rxrpc +ah4 +ah6 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +alphatrack +altera_jtaguart +altera_ps2 +altera_uart +amd8111e +ansi_cprng +anubis +aoe +apm-emulation +apm_power +appledisplay +appletouch +applicom +ar7part +ar9170usb +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asix +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at76c50x-usb +atbm8830 +ath +ath5k +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atmel +atmel_pci +aty128fb +atyfb +aufs +authenc +auth_rpcgss +autofs +autofs4 +ax25 +ax88796 +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +batman-adv +baycom_ser_fdx +baycom_ser_hdx +bcm3510 +bcm5974 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +binfmt_aout +binfmt_misc +block2mtd +blowfish +bnx2 +bnx2i +bnx2x +bonding +bpqether +bq24022 +bq27x00_battery +bridge +broadsheetfb +bsd_comp +btrfs +budget +budget-ci +budget-core +c67x00 +cachefiles +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capmode +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +ch +ch341 +ch7006 +chnl_net +cifs +cirrusfb +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cnic +coda +com20020 +com20020-pci +com90io +com90xx +configfs +core +cp210x +cpqarray +cramfs +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +crystalhd +cs5535-gpio +ctr +cts +cuse +cx22700 +cx22702 +cx24113 +cx24116 +cx24123 +cxgb +cxgb3 +cxgb3i +cxgb4 +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da903x +da903x_bl +dabusb +DAC960 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +de2104x +de4x5 +decnet +deflate +defxx +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +display +dlm +dm1105 +dm9601 +dm-crypt +dmfe +dm-queue-length +dm-raid45 +dm-service-time +dmx3191d +dm-zero +dnet +dn_rtmsg +dpt_i2o +drbd +drm +drm_kms_helper +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2782_battery +ds3000 +dummy +dv1394 +dvb-core +dvb-pll +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +e100 +e1000 +e1000e +earth-pt1 +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +echo +econet +eeprom +eeprom_93cx6 +efs +ehci-hcd +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +em_u32 +enclosure +enic +epca +epic100 +eql +esp4 +esp6 +et131x +eth1394 +ethoc +evbug +exportfs +fat +faulty +fb_ddc +fb_sys_fops +fcoe +fcrypt +fdomain +fealnx +ff-memless +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +forcedeth +freevxfs +fscache +ftdi-elan +ftdi_sio +funsoft +g450_pll +garmin_gps +garp +gcm +generic_bl +gf128mul +gfs2 +ghash-generic +gl620a +gluebi +gpio_keys +gpio_mouse +gpio_vbus +gtco +hamachi +hdlcdrv +hfs +hfsplus +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-microsoft +hid-monterey +hid-mosart +hid-ntrig +hid-ortek +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-zpff +hid-zydacron +hifn_795x +hopper +hostap +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpilo +hpsa +hptiop +hso +htc-pasic3 +hwa-hc +hwa-rc +i1480-dfu-usb +i1480-est +i1480u-wlp +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-designware +i2c-dev +i2c-gpio +i2c-i801 +i2c-isch +i2c-matroxfb +i2c-nforce2 +i2c-ocores +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-versatile +i2c-via +i2c-viapro +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ib_mthca +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ics932s401 +idmouse +ieee1394 +ieee802154 +ifb +igb +igbvf +iio-trig-gpio +iio-trig-periodic-rtc +imon +industrialio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipg +ip_gre +ipheth +ipip +ip_queue +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ir-common +ir-core +ir-jvc-decoder +ir-lirc-codec +ir-nec-decoder +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +ir-usb +iscsi_tcp +iscsi_trgt +isight_firmware +isl29003 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1760 +istallion +it8761e_gpio +itd1000 +iuu_phoenix +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ixgb +ixgbe +ixj +jffs2 +jfs +jmb38x_ms +jme +jsm +kafs +kaweth +kbtab +keyspan +keyspan_pda +keyspan_remote +khazad +kl5kusb105 +kobil_sct +ks8842 +ks8851_mll +ksz884x +kvaser_pci +kyrofb +l2tp_core +l2tp_debugfs +l2tp_ppp +l64781 +lanstreamer +lcd +ldusb +led-class +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-da903x +leds-gpio +leds-lp3944 +leds-lt3593 +leds-pca9532 +leds-pca955x +leds-regulator +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libcrc32c +libertas +libertas_sdio +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libsas +libsrp +line6usb +linear +lirc_bt829 +lirc_dev +lirc_i2c +lirc_igorplugusb +lirc_imon +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lm8323 +lnbp21 +lockd +lp3971 +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +lzo +lzo_compress +mac80211 +mac80211_hwsim +macmodes +macvlan +mantis +mantis_core +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1363 +max1586 +max17040_battery +max2165 +max6875 +max7300 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +mb862xxfb +mb862xxfb_accel +mb86a16 +mc44s803 +mceusb +mcs7830 +mct_u232 +md4 +mdc800 +mdio +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +memrar +memstick +metronomefb +mga +mg_disk +michael_mic +micrel +microtek +minix +mkiss +mlx4_core +mlx4_en +mlx4_ib +mos7720 +mos7840 +moto_modem +moxa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +mspro_block +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mtd_nandecctest +mtd_oobtest +mtdoops +mtd_pagetest +mtd_readtest +mtd_speedtest +mtd_stresstest +mtd_subpagetest +mtd_torturetest +multipath +mvsas +mwl8k +mxl5005s +mxl5007t +mxser +myri10ge +nand_ecc +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +netconsole +netrom +netxen_nic +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nf_tproxy_core +ngene +n_hdlc +nilfs2 +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nop-usb-xceiv +nouveau +nozomi +ns83820 +ntfs +nvidiafb +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ohci1394 +ohci-hcd +olympic +omfs +omninet +opencores-kbd +oprofile +opticon +option +orinoco +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osst +oti6858 +output +oxu210hp-hcd +p54common +p54pci +p54usb +p8023 +pata_ali +pata_amd +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_oldpiix +pata_opti +pata_optidma +pata_pdc2027x +pata_pdc202xx_old +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pca953x +pcbc +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcilynx +pcips2 +pci-stub +pcnet32 +pda_power +pegasus +phantom +phison +phonedev +phonet +pismo +pktgen +pl2303 +platform_lcd +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pn_pep +pohmelfs +powermate +ppp_async +ppp_deflate +ppp_mppe +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +prism2_usb +prism54 +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qnx4 +qt1010 +quatech_usb2 +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192e_pci +r8192s_usb +r8192u_usb +r8a66597-hcd +radeonfb +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +rar_register +raw +raw1394 +rc-adstech-dvb-t-pci +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avertv-303 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-empty +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge-new +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-lirc +rc-manli +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc5-hauppauge-new +rc-rc5-tv +rc-rc6-mce +rc-real-audio-220-32-keys +rc-streamzap +rc-tbs-nec +rc-terratec-cinergy-xs +rc-tevii-nec +rc-tt-1500 +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-gpio +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +reiserfs +rfc1051 +rfc1201 +ring_sw +rio500 +riscom8 +rivafb +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rrunner +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2870sta +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-ab3100 +rtc-bq32k +rtc-bq4802 +rtc-ds1286 +rtc-ds1307 +rtc-ds1374 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-fm3130 +rtc-isl1208 +rtc-m41t80 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max8925 +rtc-msm6242 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-rp5c01 +rtc-rs5c372 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-test +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl8150 +rtl8180 +rtl8187 +rxkad +s2io +s3fb +s5h1411 +s5h1420 +saa7146 +safe_serial +salsa20_generic +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +sbp2 +sc92031 +sch_cbq +sch_drr +sch_dsmark +sch_gpio +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_multiq +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci +sdhci-pci +sdhci-pltfm +sdio_uart +seed +sep_driver +seqiv +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha1_generic +sha256_generic +sha512_generic +si21xx +siemens_mpi +sierra +sierra_net +sis190 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_platform +skfp +skge +sky2 +sl811-hcd +slip +sm501 +sm501fb +sm7xx +smbfs +smc911x +sm_ftl +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-aaci +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4xxx-adda +snd-als300 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1x +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-atihdmi +snd-hda-codec-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-idt +snd-hda-codec-intelhdmi +snd-hda-codec-nvhdmi +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hifier +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401-uart +snd-nm256 +snd-opl3-lib +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcxhr +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-ads117x +snd-soc-ak4535 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-core +snd-soc-cs4270 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-tlv320aic23 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wm2000 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8776 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-timer +snd-trident +snd-ua101 +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-ymfpci +soundcore +sparse-keymap +spcp8x5 +specialix +squashfs +ssb +ssfdc +sstfb +st +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sunhme +sunrpc +svcrdma +svgalib +sx8 +symbolserial +synaptics_i2c +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +tca6416-keypad +tcp_probe +tcrypt +tda10021 +tda10023 +tda1004x +tda10086 +tda18271 +tda665x +tda8083 +tda826x +tda827x +tda8290 +tda9887 +tdfx +tdfxfb +tea +tea5761 +tea5767 +tehuti +test_power +tg3 +tgr192 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timbuart +timeriomem-rng +ti_usb_3410_5052 +tlan +tmiofb +tms380tr +tmscsim +tmspci +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +trancevibrator +tranzport +tridentfb +ts_bm +ts_fsm +ts_kmp +tsl2550 +tsl2563 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tulip +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +twl4030-gpio +twl4030_keypad +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twofish +twofish_common +typhoon +u132-hcd +ubi +ubifs +ucb1400_core +udf +udlfb +ufs +uhci-hcd +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-sddr09 +ums-sddr55 +ums-usbat +usb8xxx +usb_debug +usbhid +usbip +usbip_common_mod +usblcd +usbled +usblp +usbmon +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usb_wwan +userspace-consumer +uvesafb +uwb +vcan +ves1820 +ves1x93 +veth +vfat +vgastate +vhci-hcd +via +viafb +via-rhine +via-sdmmc +via-velocity +video1394 +virtual +visor +vivopay-serial +vmac +vme +vme_user +vme_vmivme7805 +vmxnet3 +vt8623fb +vxge +w1_bq27000 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w35und +wacom +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +wire +wl1251 +wl1251_sdio +wlp +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-gpio +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm8350-gpiolib +wm8350_power +wm8350-regulator +wm8400-core +wm8400-regulator +wm8994-gpio +wm8994-regulator +wp512 +wusb-cbaf +wusbcore +wusb-wa +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xhci-hcd +xor +xprtrdma +x_tables +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_iprange +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xvmalloc +yam +yealink +yellowfin +zaurus +zd1201 +zd1211rw +zio +zl10039 +zl10353 +zlib +zlib_deflate --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/armel/omap.modules +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/armel/omap.modules @@ -0,0 +1,1762 @@ +6pack +8021q +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +a3d +ab3100 +ab3100-otp +ac97_bus +acecad +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad714x +ad714x-i2c +ad714x-spi +ad7414 +ad7418 +ad7877 +ad7879 +adcxx +adfs +adi +adis16209 +adis16220 +adis16240 +adis16255 +adis16260 +adis16300 +adis16350 +adis16400 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm9240 +adp5520_bl +adp5520-gpio +adp5520-keys +adp5588-gpio +adp5588-keys +adp8860_bl +ads7828 +ads7846 +ads7871 +adt7411 +adt7462 +adt7470 +adt7475 +adummy +adutux +aes_generic +af_802154 +af9013 +affs +af_key +af-rxrpc +ah4 +ah6 +ahci_platform +aiptek +aircable +ak881x +alphatrack +altera_jtaguart +altera_ps2 +altera_uart +amba-clcd +amba-pl011 +amc6821 +analog +ansi_cprng +anubis +aoe +appledisplay +appletalk +appletouch +ar9170usb +arc4 +ark3116 +arptable_filter +arp_tables +arpt_mangle +asc7621 +asix +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +atbm8830 +ath +ath3k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atm +atmtcp +atxp1 +au0828 +au8522 +aufs +authenc +auth_rpcgss +autofs +autofs4 +ax25 +ax88796 +b1 +b1pcmcia +b2c2-flexcop +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +befs +belkin_sa +bfs +bfusb +binfmt_aout +binfmt_misc +block2mtd +blowfish +bluetooth +bnep +bonding +bpa10x +bpqether +bq24022 +bq27x00_battery +br2684 +bridge +broadsheetfb +bsd_comp +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +btusb +bw-qcam +c67x00 +cachefiles +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capi +capidrv +capifs +cast5 +cast6 +catc +ccm +cdc-acm +cdc_eem +cdc_ether +cdc-phonet +cdc_subset +cdc-wdm +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +chnl_net +cifs +clip +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cm109 +cmtp +cobra +coda +configfs +core +cp210x +cpia2 +c-qcam +cramfs +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +cs5345 +cs53l32a +ctr +cts +cuse +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx24110 +cx24113 +cx24116 +cx24123 +cx25840 +cxacru +cyberjack +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +dabusb +davinci_emac +db9 +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +decnet +deflate +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +dlci +dlm +dm9601 +dm-crypt +dme1737 +dm-queue-length +dm-service-time +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +drbd +drx397xD +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2782_battery +ds3000 +dsbr100 +dss1_divert +dummy +dvb-core +dvb-pll +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dw_spi +dynapro +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ec100 +echo +econet +eeprom +eeprom_93cx6 +eeti_ts +efs +elo +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_usb +em_text +em_u32 +enclosure +eql +esi-sir +esp4 +esp6 +ethoc +evbug +exportfs +f71805f +f71882fg +f75375s +fat +faulty +fb_sys_fops +fcrypt +ff-memless +freevxfs +fscache +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +g_file_storage +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_multi +g_nokia +gpio_keys +gpio_mouse +g_printer +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +g_zero +hampshire +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +hfc4s8s_l1 +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-wacom +hid-zpff +hid-zydacron +hisax +hisax_st5481 +hmac +hostap +hp4x +hpfs +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +i1480-dfu-usb +i1480-est +i1480u-wlp +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-designware +i2c-dev +i2c-gpio +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-simtec +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-xiic +ibmcam +ics932s401 +idmouse +ieee802154 +ifb +iforce +iio-trig-gpio +iio-trig-periodic-rtc +ili9320 +imon +industrialio +inexio +inftl +input-polldev +int51x1 +interact +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ip_gre +ipheth +ipip +ip_queue +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipx +ircomm +ir-common +ircomm-tty +ir-core +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isdnloop +isight_firmware +isl29003 +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1301_omap +isp1760 +it87 +it8761e_gpio +itd1000 +iuu_phoenix +iwmc3200top +iwmc3200wifi +jedec_probe +jffs2 +jfs +joydev +joydump +kafs +kaweth +kbtab +kernelcapi +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +kxsd9 +l1oip +l2cap +l2tp_core +l2tp_debugfs +l2tp_ppp +l4f00242t03 +l64781 +lapb +lcd +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lp3944 +leds-lt3593 +leds-mc13783 +leds-pca9532 +leds-pca955x +leds-regulator +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-timer +legousbtower +lgdt3304 +lgdt3305 +lgdt330x +lgs8gl5 +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libcrc32c +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libiscsi +libiscsi_tcp +libsas +lightning +line6usb +linear +lirc_dev +lirc_i2c +lirc_igorplugusb +lirc_imon +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lms283gf05 +lnbp21 +lockd +lp +lp3971 +lpddr_cmds +lru_cache +lrw +ltc4215 +ltc4245 +ltv350qv +lzo +lzo_compress +m25p80 +m52790 +ma600-sir +mac80211 +mac80211_hwsim +macvlan +magellan +map_absent +map_ram +map_rom +matrix_keypad +max1111 +max1363 +max1586 +max1619 +max17040_battery +max2165 +max3100 +max63xx_wdt +max6650 +max6875 +max7300 +max7301 +max730x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +mb862xxfb +mb862xxfb_accel +mb86a16 +mc13783-adc +mc13783-core +mc13783-regulator +mc13783_ts +mc33880 +mc44s803 +mceusb +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mem2mem_testdev +metronomefb +mg_disk +michael_mic +micrel +microtek +minix +mISDN_core +mISDN_dsp +mk712 +mkiss +mmci +mmc_spi +mos7720 +mos7840 +moto_modem +mpoa +msdos +msp3400 +mt2060 +mt20xx +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v022 +mtdconcat +mtd_nandecctest +mtd_oobtest +mtdoops +mtd_pagetest +mtdram +mtd_readtest +mtd_speedtest +mtd_stresstest +mtd_subpagetest +mtd_torturetest +mtouch +multipath +mxl5005s +mxl5007t +navman +nbd +ncpfs +net1080 +netconsole +netrom +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +nf_tproxy_core +n_hdlc +nilfs2 +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +ns558 +ntfs +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +old_belkin-sir +omap +omap2 +omap2_mcspi +omap_hdq +omap-sham +omap-vout +omap_wdt +omfs +omninet +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +osst +oti6858 +ov7670 +ov772x +ov9640 +oxu210hp-hcd +p54common +p54spi +p54usb +p8022 +p8023 +panel +panel-acx565akm +parkbd +parport +parport_ax88796 +pc87360 +pc87427 +pcap_keys +pcap_ts +pcbc +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pcwd_usb +pda_power +pegasus +penmount +phonedev +phonet +phram +physmap +pktcdvd +pktgen +pl2303 +platform_lcd +plat-ram +plip +plusb +pn_pep +pohmelfs +poseidon +powermate +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +psmouse +psnap +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qnx4 +qt1010 +quota_tree +quota_v1 +quota_v2 +r8a66597-hcd +radio-i2c-si470x +radio-mr800 +radio-si4713 +radio-tea5764 +radio-usb-si470x +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +rc-adstech-dvb-t-pci +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avertv-303 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-empty +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge-new +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-lirc +rc-manli +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc5-hauppauge-new +rc-rc5-tv +rc-rc6-mce +rc-real-audio-220-32-keys +rc-streamzap +rc-tbs-nec +rc-terratec-cinergy-xs +rc-tevii-nec +rc-tt-1500 +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rds +rds_tcp +redboot +reed_solomon +reiserfs +rfcomm +rfd_ftl +rfkill +ring_sw +rio500 +riscom8 +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rt2500usb +rt2800lib +rt2800usb +rt2870sta +rt2x00lib +rt2x00usb +rt73usb +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3234 +rtc-fm3130 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-mc13783 +rtc-msm6242 +rtc-pcap +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-pl030 +rtc-pl031 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2255drv +s5h1409 +s5h1411 +s5h1420 +s6e63m0 +s921 +saa5246a +saa5249 +saa7115 +saa7127 +saa717x +saa7706h +safe_serial +salsa20_generic +sata_mv +sca3000 +sch_atm +sch_cbq +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_multiq +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci-pltfm +sdio_uart +se401 +seed +seqiv +ser_gigaset +serio_raw +sermouse +serpent +serport +ses +sha1_generic +sha256_generic +sha512_generic +sh_mobile_ceu_camera +sht15 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sir-dev +sisusbvga +sit +sja1000 +sja1000_platform +sl811-hcd +slram +sm501 +sm501fb +sm7xx +smbfs +smc911x +smc91x +sm_ftl +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc95xx +smsdvb +smsmdtv +smssdio +smsusb +snd-aaci +snd-ac97-codec +snd-dummy +snd-hrtimer +snd-hwdep +snd-mixer-oss +snd-mpu401 +snd-mpu401-uart +snd-mts64 +snd-pcm-oss +snd-portman2x4 +snd-rawmidi +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-cs4270 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-rx51 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wm2000 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8776 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-ua101 +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +soc_camera +soc_camera_platform +soc_mediabus +softdog +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +specialix +speedtch +spi_bitbang +spi_butterfly +spi_gpio +spi_lm70llp +squashfs +ssb +ssfdc +st +stb0899 +stb6000 +stb6100 +st_drv +stinger +stir4200 +stkwebcam +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sunkbd +sunrpc +symbolserial +synaptics_i2c +syscopyarea +sysfillrect +sysimgblt +sysv +tca6416-keypad +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10086 +tda18271 +tda665x +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9887 +tdo24m +tea +tea5761 +tea5767 +tef6862 +tekram-sir +test_power +tgr192 +thermal_sys +thmc50 +ti_dac7512 +timb_dma +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tle62x0 +tm6000 +tm6000-alsa +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +toim3232-sir +touchit213 +touchright +touchwin +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +trancevibrator +tranzport +ts_bm +tsc2007 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tua6100 +tun +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tveeprom +tvp7002 +tw9910 +twidjoy +twl4030_keypad +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twofish +twofish_common +u132-hcd +ubi +ubifs +ucb1400_core +ucb1400_ts +udf +udlfb +ueagle-atm +ufs +uio +uio_pdrv +uio_pdrv_genirq +ultracam +ums-alauda +ums-cypress +ums-datafab +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-sddr09 +ums-sddr55 +ums-usbat +upd64031a +upd64083 +usb8xxx +usbatm +usb_debug +usb_gigaset +usbhid +usbip +usbip_common_mod +usblcd +usbled +usblp +usbmon +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +uss720 +uvcvideo +uwb +v4l1-compat +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vgg2432a4 +vhci-hcd +vicam +videobuf-core +videobuf-dma-contig +videobuf-dvb +videobuf-vmalloc +videodev +virtual +visor +vivi +vivopay-serial +vmac +vp27smpx +vsxxxaa +vt1211 +w1_bq27000 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w35und +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_w8001 +walkera0701 +wanrouter +warrior +whiteheat +wimax +wire +wl1251 +wl1251_sdio +wl1251_spi +wl1271 +wl1271_sdio +wl1271_spi +wlp +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-gpio +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x_wdt +wm8350-gpiolib +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-gpio +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xor +xpad +x_tables +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_iprange +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xvmalloc +yam +yealink +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr364xx --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/armel/omap +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/armel/omap @@ -0,0 +1,8277 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x8fd38ed6 drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xd3526f9b drbd_set_st_err_str +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x11f05c8f i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xcfd4111b i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x291b4142 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x606f4f99 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x60fee0ff i2c_pcf_add_bus +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0ce81f10 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1a6eb0c3 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x31250fd2 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4c42f644 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x524b3004 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5e2ab5ea gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x63c89a58 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x86c3d940 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xeb2dec00 gameport_unregister_port +EXPORT_SYMBOL drivers/input/input-polldev 0x41643a4d input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x809d1654 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa53c0245 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf1ff9d86 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x10f053fa ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x6a773d6e ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xc10cbd2b ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xfd77d450 ad714x_disable +EXPORT_SYMBOL drivers/input/sparse-keymap 0x51d4892c sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x892a1336 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb81a34fa sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xc6727fe6 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xfbce87b6 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xfeafd5f4 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x62d39354 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xb448fec8 capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0086422a capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x08538c78 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x425bd73c capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x46e89c71 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x69a5059a attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x793b10b5 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x98cf3f58 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xade65be3 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb8f31b1a capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd4183c61 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0708cfb1 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0c218795 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x131717e4 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x19c4bc57 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x29f1aa26 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5368926c b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6dea0dd8 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x82f1ff48 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8dd45346 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb2bfbe27 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbcc509bb b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbf06033c b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xce628d2c b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x0db7aff6 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x65c54e6b isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x69208ebc register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xebd3fb4b isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x08d82c71 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0a0ef2ca mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x103e231b confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1455133a mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1ece3ba5 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2069ac1f get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x226ea2a4 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b8d8e1b mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2d8b7941 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4649801e dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4687bbf4 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4eef7633 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4f8f51b9 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5ff6b209 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6314a796 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x779c66ca recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x94b8d90b create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9ff63d5d mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb2aedafe bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb72ff426 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbca5da52 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfca30b74 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 0x25eb605c ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/ir-core 0xaf1d359c ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x104b2fa2 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x31ae1669 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x35f38c4f lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xa802b17a lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xafffd867 lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xb60d8e24 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xb841d21f lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xbbc1f2f8 lirc_get_pdata +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xea7f48b4 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xf3266e9c mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xadfe6edd mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x5b254d5e mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x1d248236 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xf9926cf9 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x06dbafd8 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xe51bdc12 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0bc76608 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x268e2b6d flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x321fec03 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3b1e8079 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x609fdae9 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x63685ee6 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x74cde5c8 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7cd34450 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7fd1df83 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x936b26f5 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9370121d flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa712756b flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdee95238 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00c77124 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x06dbdf8b dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x101dd0ad dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15c26f49 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1ee420d0 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f8be22c dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31409c4b dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x38aa159a dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5e80ec71 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6225816a dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x640a9ee1 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x687066ad dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6f1829a1 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x733022cd dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x742682d8 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x746b02ad dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76830f7c dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8060a1a6 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x808c7131 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x838018a7 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a2ef94 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x883c17c6 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b3c91f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x927b5924 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa408ee2f dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa5cbd962 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb3ecf0af dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb5f93340 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc9f452e dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc33b37b3 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcd6c036b dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed9e5ee7 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf487376d dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb25f454 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x40ab5b94 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4ce0d386 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x5c2e146d dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x62eea510 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xadce8144 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb618d00f dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf4ed68f4 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xae391000 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x09304621 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x09455ae3 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5f60f5a7 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x65eb4674 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x71d5a945 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x73bb5c39 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb1e086f5 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xda966853 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe8c5fda8 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf9dc8152 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfafb6348 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x656f35fc af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xd9c2a5f2 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xa082bbd6 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xfb9a5071 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xf24e10b4 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x40f0608d cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x1924b0e7 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x7dd0934c cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xeb5d68b8 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xafedb764 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xd3a24eb7 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xf4dbb861 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x69c2cf70 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7eef60dd dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7fc534a6 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x9ea0c877 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xbfc4d3c8 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4bbde796 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x5104734a dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x568c2a4b dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x5fc65e3a dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8fcd871b dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xa7a6724d dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xaee130b6 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xba26379e dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x06181d95 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x15a3cc5c dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x37d55808 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x89de61a4 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xaa0f3fd6 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xae43ee12 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf6d75eda dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x91327007 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xcab6138a dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x50bc9601 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6755e221 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6cd81d53 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x84fa16ef dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8d1bfecc dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x91620cf0 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x983de1ac dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf094d02a dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x008979c9 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x65687ba5 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x74c56f74 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7f499a6e dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9a1f58a6 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa54e23da dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb6626544 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd6c67535 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xea63bb5b dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xec6355f6 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf9697de0 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x22f7bdff dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad57c1ad dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xce1df011 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd6712935 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/drx397xD 0xc6df9604 drx397xD_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xe9d41a0f ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xe5a8efc3 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0x332634bf ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x4478e68e isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x6642a711 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x81ef5713 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x503274cb itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x13c605a8 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x75f552a1 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x8b61f545 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gl5 0x803ece7e lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xbefd04fa lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x153775e3 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x28f22199 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x75705eb9 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x35209ecf mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x23925e27 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x153d7d58 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xad4d5506 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x754b04ba or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xb7cf60c2 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x0f789953 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xba454c5e s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xd4c78bd4 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xd5a02a05 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x8cde4e44 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x36a5e13d sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x042d8d57 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x3ef7ece4 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xa3b4f67b stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xc8f372a2 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x4776f4d7 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xdb6a067a stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xbe9438c3 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xf2feff70 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x9496bc2f stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xe9370c6e stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x92c27706 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x23e8165e tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x46bf1743 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x4569cdf9 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xa57c454b tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xcc6d64f7 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x9fe02b43 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0xa5e040c8 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xdb1a1fc8 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x6a370ab1 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x47bb32a2 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x0ff7fc6d tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x8cdd9189 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x87ac1c71 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0xe1a22b05 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x1bf1736b zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xe65d1af7 zl10353_attach +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x1fdd5c93 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xdb684b4e cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x454ea6b7 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x4b596520 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x03e8def3 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x09741d4b gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x2e64c0db gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x4b473b94 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xbfb6c16a gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc83a947f gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc94e3a80 gspca_get_i_frame +EXPORT_SYMBOL drivers/media/video/soc_camera 0x06709a3d soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x35dce4d3 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x85b22987 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xbda96d1e soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x9ecc91c0 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0xb18ff643 tveeprom_read +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x02bdc9c0 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x091d9d33 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0b6022b5 usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x41cce45d usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x4ff67a80 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x59e71f78 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x79172f82 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xadcd846e RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xceba1b71 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd26d1f7c RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x23ef16eb v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2ac655c6 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd1fb4299 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x728830ee v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x96b3be99 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xd7bae89d v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xd9ad61f0 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x0d86ac0b videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x32074261 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x38e2da45 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x3dd4d1f0 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x8d18ac18 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc5f0c508 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x27b5ddbd video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x336573ec video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3f3e5391 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x45a09e5d video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x7a1ff9b7 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x94ca3546 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x9a2d7abd video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xfbd1c484 video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0xfe4a4776 video_device_alloc +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xb19f5533 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xe1b5cf97 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x0340dcf2 mc13783_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x1927947e mc13783_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3d52abb9 mc13783_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x43487ea3 mc13783_lock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x559ad461 mc13783_irq_free +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x574fdb3c mc13783_unlock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x69381a0b mc13783_irq_request +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x7160ccdb mc13783_irq_status +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xa08a688c mc13783_reg_write +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xa672b41a mc13783_reg_read +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xf8a28afb mc13783_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xf976ccae mc13783_irq_mask +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x058839dd ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x3b0e867e ad_dpot_probe +EXPORT_SYMBOL drivers/misc/c2port/core 0x285ed06a c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xe3f18571 c2port_device_unregister +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x85592256 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x95f816f7 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd4b9f334 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xf2716b4b mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xd4901297 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x784ec37f mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xc561496a mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x41903eaf flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x59265a97 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x687ea7d5 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xdbb22fbf onenand_default_bbt +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x32e88ffd hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa455fbc1 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa85ef102 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc15a9c87 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe8e0eb11 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x13970b30 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x23766a96 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x31363ebd sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x33293034 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x34d67ea7 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x38a87e86 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x634dc4ab sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9ecdd40c irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc64f53ae sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd19fa679 sirdev_raw_write +EXPORT_SYMBOL drivers/net/pppox 0x04662632 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x700caf55 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe3d60232 register_pppox_proto +EXPORT_SYMBOL drivers/net/wan/hdlc 0x027d1c5e hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x043aa526 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0f596691 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3f456136 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x470ae513 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x92abc5e0 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa47cbc22 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xaca539e3 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf0bd3080 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf3c2a56a hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xff139768 hdlc_open +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00b5dca8 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x78ee3908 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xeb482506 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf0f9c25a ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1587dcd7 ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x28c43ca2 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x76b65109 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa531cb05 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xbd2b840b ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xcb9c93c8 ath9k_cmn_rx_skb_preprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xdd464010 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0468bcc6 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04875abb ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x051baf36 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x053f3df0 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07d13a7f ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f439d99 ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1040c732 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14fad21e ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1588a2fb ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19b4879b ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a3356cc ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c17310b ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d5a4612 ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2042ac22 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22ef3b28 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2898bd59 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2aa9207e ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b233883 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d369ce9 ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31e54db2 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31ec2c3b ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x333ba42f ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34d750e7 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x350ed200 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3728cb61 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x375919b3 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49a0efcb ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ae0e1aa ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b3b3032 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d902a8b ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5768b944 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a2dfebd ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x628e38df ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65244749 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68a3282a ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cbafc2a ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fd6b7ab ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70864d99 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73a252f3 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77c8a2ad ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7cb119c9 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7eaee670 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85600339 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d602713 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9079a260 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9109d855 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x957bcb28 ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x95982882 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x95a3953f ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9895e4b2 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9faba235 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0ce8527 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa15e1159 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa28a7dd6 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa43a0e2a ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa477c843 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8639add ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9688f98 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae2a5ace ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb052bd22 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb19ef4a0 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1bf047d ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb38c46f1 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb420399f ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb447f5dd ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb928d5ae ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb53ba26 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb82baf1 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc042b2cd ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9c2f1f8 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1245eab ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe28e5a3c ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe52e65cf ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe53a2a46 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6b79f72 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeac4cad6 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeeb5c6a9 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2523f76 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2a2e5fd ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf990300b ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc1d80a5 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd5ef98a ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x17de6b1c hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1a2b93c5 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x22df0cec prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x39087b25 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x43e014dd hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4690c952 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x49c49d74 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4e152602 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7faf26ac hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x85360474 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x85ca891c hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x900e4182 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa3270873 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa3834420 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa38f3190 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa92dcefd hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb59a6b60 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb9469cdd hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcd20c3fc hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd53aaa2f hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd8f8b2f8 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe3c060d5 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xec75e17c hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xee6e1a94 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfe581457 hostap_add_interface +EXPORT_SYMBOL drivers/parport/parport 0x012e6ce8 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x21417521 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x28d44ad1 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x433a15f2 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x4932fb36 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4effc952 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x567ac6cf parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x6def7e16 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x73456023 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x7ae7480f parport_read +EXPORT_SYMBOL drivers/parport/parport 0x7e669147 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x8120c0d7 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x836ae1e7 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x904f2f0e parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x9e0800ee parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x9fe884c2 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xa014d0cd parport_write +EXPORT_SYMBOL drivers/parport/parport 0xa06cdc74 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xa53a1522 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xb17d47d1 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xb6b27631 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xbc5efb3c parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xc485f423 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xd0707259 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xd458f7e6 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xd490af50 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xdc4d2634 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xe0a0796d parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xeb4fdb80 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xf3872149 parport_find_base +EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xff2160a6 pps_register_source +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1022220e fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1ed04c75 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6575cdf3 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x977bc66a fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa1783d22 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd1895986 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfc9221de fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x05a0bfa4 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x090499d3 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e834eca fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ebf2395 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0f11271b libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1aa68c0e fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1ba7e7db fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c222b4f fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c9dd78e fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22600041 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2622bcbd fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x282413bd fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x28be4fd8 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2f8cdba3 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2f97c74d fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x336919e3 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x39b0eb9a fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a2a105f fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c16068a fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4dd45483 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4f14c0ed fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5f9184e9 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e6171f6 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75231b13 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f3751eb fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9c3da0f1 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa67b93ae fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa8abc2ff fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa9a7b603 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0e24f18 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc216c3b1 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3da1603 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc62654e1 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc6396548 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb81e991 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcf430d78 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd0319f5a fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd1fdb9b7 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe332e62b fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe5b218b4 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf070304b fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfcde781d fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/raid_class 0x96026c65 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xc5a69c16 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xdccc53fe raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x17c53465 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x34a1baaf fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5639bd61 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x805a20a7 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9d29a51d fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9fa7c998 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb22c22ec fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb9a69777 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbb553b3c fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc1554d61 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xeeb7139d fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf7d06de1 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xffa9851a fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x01307db6 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x058fb881 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x06344e0e sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x15e69214 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x21eb3327 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x403cf94a sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x44fb4132 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x56e645a9 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x571b215f sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5d44bd8f sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5f530525 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x63afa233 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x74d0f86b sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x82b1b303 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa581ca49 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa71a27eb sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa9531310 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xafee9b00 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb5602d12 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbdf5a452 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbeacc845 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbfb5a277 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc7d1d59c sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd376dca1 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe62989bd sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe4dfdf6 sas_release_transport +EXPORT_SYMBOL drivers/spi/dw_spi 0x5a1cfbcf dw_spi_add_host +EXPORT_SYMBOL drivers/spi/dw_spi 0x828f29c4 dw_spi_suspend_host +EXPORT_SYMBOL drivers/spi/dw_spi 0xd92ec842 dw_spi_resume_host +EXPORT_SYMBOL drivers/spi/dw_spi 0xed6ed80e dw_spi_remove_host +EXPORT_SYMBOL drivers/ssb/ssb 0x182f153a ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x2fdf0d69 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x303bd480 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x359d1415 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x4c75496e ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x544627f2 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x647ad3cb ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x6a7b444e ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x6d673dcb __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x7221eb2b ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x77e3e44b ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x7f9227c7 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x97375325 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x9a9523d9 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xa93d80a3 ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0xb540c342 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd3833a14 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdea9ffe7 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xe5eff1e7 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xedfffcf9 ssb_bus_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0a3db5d1 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0dd19a73 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0f49234a iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1253aabf iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1348010a iio_free_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x14714698 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x16ee0d04 iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1f5eaf49 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1faff21f iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2aa69570 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3a6821e1 __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3c293e34 iio_read_ring_bps +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x46cbd964 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4dbd92a5 iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4eb9f9a1 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x553fc319 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x596aad37 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5b3ebadb iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6ed9a57f iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x72acce15 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x74ca3bc4 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x74eb08f4 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x77cf3e51 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7cdd2c4e iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x82a23e78 iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x88b78aeb iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8b5df2cb iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x96174e46 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x97430f08 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9879978c iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9ffd6c13 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xac5e40f8 iio_get_new_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xacb65497 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xad46d3bb iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb2f77bce iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb7278d98 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc8abbb61 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcc163dda iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xccc623bf iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xddb194ad iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf760ed61 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x06248a05 iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x08edc6a6 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x21c21783 iio_set_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x39463012 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x39e4014a iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4159f1c0 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x552d3ea1 iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x5e08856c iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x974d7e91 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xa81cb90f iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xac3792b9 iio_get_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbe132942 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc571ce95 iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x15069fc2 variax_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x1848d7c7 pod_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xea71b1b5 variax_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xf23bca60 pod_create_files +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x7e3aa7ab tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x8f06dcae tm6000_register_extension +EXPORT_SYMBOL drivers/telephony/phonedev 0x2d6aa819 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x5c841fa4 phone_register_device +EXPORT_SYMBOL drivers/thermal/thermal_sys 0x06b48a5e thermal_cooling_device_register +EXPORT_SYMBOL drivers/thermal/thermal_sys 0x249823b9 thermal_cooling_device_unregister +EXPORT_SYMBOL drivers/thermal/thermal_sys 0x4a549ac9 thermal_zone_device_register +EXPORT_SYMBOL drivers/thermal/thermal_sys 0x86337e68 thermal_zone_device_unregister +EXPORT_SYMBOL drivers/thermal/thermal_sys 0x98799c30 thermal_zone_bind_cooling_device +EXPORT_SYMBOL drivers/thermal/thermal_sys 0xa346266d thermal_zone_unbind_cooling_device +EXPORT_SYMBOL drivers/thermal/thermal_sys 0xf8437245 thermal_zone_device_update +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xd9efa46a sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0a5981b4 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x153c3e59 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x237fbdf5 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3338614b usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5208059c usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x76683f7f usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7e7db609 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9587d1d4 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xafcde53b usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb24b7767 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc44bc90c usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdf370ccb usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe26356ea usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe981d7a6 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xb56e23e4 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xc894d207 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x091f567a lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xdfc4e9e7 lcd_device_unregister +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xafabded1 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/syscopyarea 0x30723e83 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x66df9668 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x71c96219 sys_imageblit +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x1852bcbe w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x7314fd82 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x2dc61ad7 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x36b0b0ad w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x97089f26 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb4b31f20 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x7405daf0 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x96b14e3a w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xb0f22e38 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xd5cd1190 w1_unregister_family +EXPORT_SYMBOL fs/configfs/configfs 0x23a35a4b config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x24613917 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x2ae068b4 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x40871aa3 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x4d82bbb7 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x6c7df199 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x71243528 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x79efa505 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x85546a30 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xc8eb8bf1 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xd9644f7b configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xe55214fe config_group_init +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x09e74aa6 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x1551d68d fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x1cea243f __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x27fa4db7 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x29abe44f __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x2e200cbd fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x365b54f3 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x37b4824a __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3a2c57fe fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4a313b86 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x4c5fc548 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x5cda210e __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x6f8537ae fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x765bc1de __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8b5b7641 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x9295653c fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x9a025fd6 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xae149fe0 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xaf3b100a __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb022207a __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xb2ba78c0 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xb5f96b03 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xbacaf23a __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xd619f039 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xd7c0439b fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xf1bcfe60 fscache_io_error +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/quota/quota_tree 0x5caf4f25 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x66549fe9 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa55d7c61 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xd93993cc qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xfdedd19b qtree_release_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0d4d3b43 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x271fc9fa lc_create +EXPORT_SYMBOL lib/lru_cache 0x3e388460 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x4c7de110 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x65c89450 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x7cf49497 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xa0ca903e lc_del +EXPORT_SYMBOL lib/lru_cache 0xc125bfd8 lc_put +EXPORT_SYMBOL lib/lru_cache 0xc168d8e0 lc_set +EXPORT_SYMBOL lib/lru_cache 0xc7653d47 lc_find +EXPORT_SYMBOL lib/lru_cache 0xcc45c58d lc_get +EXPORT_SYMBOL lib/lru_cache 0xd1694494 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xe18ca60c lc_changed +EXPORT_SYMBOL lib/lru_cache 0xea6ed204 lc_reset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8022 0x228ee233 unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xdb6aea93 register_8022_client +EXPORT_SYMBOL net/802/p8023 0xce90b4a1 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xdfc74f7f destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x7ea384ed unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0x93eb75d6 register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x0c15c670 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x19b5247b p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x1a20238b p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x1eaa6212 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x28df3594 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x343d78ce p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3548b074 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x4fa6f3c8 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x588539b7 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x740597bc p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x7cb8d035 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7cefa63e p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x8a1c430e p9_client_version +EXPORT_SYMBOL net/9p/9pnet 0x8cac7c4c p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x91194b15 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x93439276 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x94c4ff02 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa2bce8b7 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xab9f8826 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xb38d2e09 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xcd110439 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xd0c332cb p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xd14b0dd3 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xd9882152 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xe3e565e6 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xea4b28e0 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xee7a1d13 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xf180c16f v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xf81e9f2a p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xfb3fe8ea p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xfc7b7405 p9_client_rename +EXPORT_SYMBOL net/appletalk/appletalk 0x0c5d83f7 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x0cf6a7c9 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x389cf584 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x56780471 atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x037fde46 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x1ec36dd2 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x35114eec atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x57363623 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x591f17a1 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x71b8efad register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x8269acbc atm_charge +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb7774e6c atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xb86e5895 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xd3e244b6 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf46b71b9 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf5eab1ab vcc_sklist_lock +EXPORT_SYMBOL net/ax25/ax25 0x117d4047 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x381567eb ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x3d904cc0 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x41ea21b4 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x42461343 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x57f52268 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9a810de9 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xbe542c5e ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe7d2301a ax25_send_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x05602cfd bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0e645741 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x13c681ca hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x16514fca bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1a032fc3 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1a69c6d2 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x25d24113 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3fe22e82 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4dea8ae4 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e7059ff hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x60c7fadf bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x66c7de90 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x761935da bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7847078d hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x809c14b9 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x81961db7 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x86138dc5 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x868f6f74 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x98fe7c17 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a8a0009 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9b612e38 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb5f27d05 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb66e38c2 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xba7ca772 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0474fd0 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc5071e96 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc66ccbfa hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcbf64100 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd1cba7d4 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5cbafd1 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xef746780 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf615fe6c hci_send_acl +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x203ca0f3 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5b6b453e ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7624c526 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x805d3eab ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x06b514b9 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x0e095a5c cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x0f9571d2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x2686b065 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x287681c2 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x2c1c6ecc cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x3817c26c cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x4021a406 cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4f2d8111 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x5446778f cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x55a3eb6e cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x56fd0dbe cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x6c6c70ab cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x6e82f6d3 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x706f1c27 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x7fe92e0d cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0x835f9ffe cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x864de4a7 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x8a152bbd cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x8d5d7bb6 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0x94f851f3 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0xa632f982 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xb2a524a7 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xcc3915d6 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0xcd8c0148 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xd3b943f5 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0xd825a02c cfpkt_info +EXPORT_SYMBOL net/caif/caif 0xe6ee1ccd cfpkt_create +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf6051e0c cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xfa5bada6 cfpkt_queue +EXPORT_SYMBOL net/can/can 0x2b47ae66 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x43c179e3 can_send +EXPORT_SYMBOL net/can/can 0x4889e88f can_proto_unregister +EXPORT_SYMBOL net/can/can 0xab1dd6c7 can_proto_register +EXPORT_SYMBOL net/can/can 0xad05e65c can_rx_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x20630621 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4b468c06 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4ed47746 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6db97a53 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6fe83fe3 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x78a798ad ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7c725a37 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8e0b8248 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9cf986a9 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbaa5b372 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xdabb4339 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe61afa5f ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe79cda75 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x2d0b08e1 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x3ed4510c arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xf8d090d7 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x43358c2c ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x55787ee0 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xa0187b1d ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x21b90f5f nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x612f3448 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6ac278e1 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x72bf5a68 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x77c63980 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd0be1104 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xdb76a66a nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x101d2d42 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xdd196f11 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3d2426eb ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3fa8be68 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x57f16e10 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xdd8a6c99 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0xe3410c92 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xe9d6b026 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x2b5e2071 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x32f4df66 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x83e25b09 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x02721765 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0e030690 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0e592118 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0f19b1bb ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x18e6995a ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5c14a560 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8e6ce33c ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa74e472f ircomm_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x09adc588 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x108cdfb1 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x12ee3f35 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x1a6db888 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x22caf86e hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x2ce2a065 irlap_close +EXPORT_SYMBOL net/irda/irda 0x2d3765bc hashbin_find +EXPORT_SYMBOL net/irda/irda 0x308de06f irlap_open +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x4479ef51 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4a5c3be1 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x538d5d22 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x572583cf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x5c09c02c irttp_dup +EXPORT_SYMBOL net/irda/irda 0x5f55c3a2 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x6753572c irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x74c6eb16 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x75f99d22 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7750b49e irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7aa1ddbc irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x7de04a81 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x7e1b47be irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x80da7829 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x8195d9e5 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x840353ea irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x85087268 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x8db6938e iriap_open +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x9483e0a7 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9df05e2b alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xa0f18301 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xaa920412 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0xb529e580 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xb5c93e6b irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xb710786e hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbc7f00e4 proc_irda +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbf285a4c hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc3a512dd hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xd3ee3142 iriap_close +EXPORT_SYMBOL net/irda/irda 0xd411cd88 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xdb7b937a irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xeb00bdb0 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xedf805a9 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0xef16660b hashbin_new +EXPORT_SYMBOL net/l2tp/l2tp_core 0x70a46a27 l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0xca5bb822 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x48476567 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x8743a323 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x9a430c33 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xad6f2e5f lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xb71ba7f6 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xb85711f4 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xbbe65168 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xc6b298ac lapb_data_received +EXPORT_SYMBOL net/llc/llc 0x04563e78 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x0c4cd0d1 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x3b0d9718 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x4bf0f827 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x9656f8a0 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xb99b34b7 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xb9a9263d llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xd63bc899 llc_mac_hdr_init +EXPORT_SYMBOL net/mac80211/mac80211 0x00891b2b ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x04c4dbb7 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x14dbfdfd ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x15de99cf __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x1781b180 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x1e73449c ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x2ba4a482 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x30770a64 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x30dd6201 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x3aa4eca4 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x3e519691 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x49c4c93a __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x4e46a18f ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x56e9a88e ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x5a4560ea ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x787131c4 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x7b34bbea ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x8a9c2672 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x8cbf22bb __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x8f7e3aad ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x9430904f ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xad046888 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xaf3da002 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xba5a7d1f ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc57e4943 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xc7f48278 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc92e2ba8 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xc95dfd82 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xcd01b20f ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xd230691d ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xdb2c4361 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xdf0daed4 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xe22431f4 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe3172d5c ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xf78b0df5 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xf795628c ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xf8621c92 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x109baf86 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1c69e8c1 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2a1dfd99 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3e147870 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x68c7c16a ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa19c4064 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa30acbe1 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xce82b762 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdab39b06 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe30c260e ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf5381d23 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x52a8c655 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xaf2a44f6 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x639fee6b nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x14fa7ca1 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x2d5a32d1 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x434afead xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x531bb8ff xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x71f8179f xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc0b5891d xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xd98b97de xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xf2172538 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xfb7bcf3f xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xfc02e90a xt_register_matches +EXPORT_SYMBOL net/phonet/phonet 0x150e3a4f pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x2d042445 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x490fe544 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x583cd845 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x7733f0e5 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x955cd468 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xf8a68420 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xfd4da734 pn_skb_send +EXPORT_SYMBOL net/rfkill/rfkill 0x163182b5 rfkill_init_sw_state +EXPORT_SYMBOL net/rfkill/rfkill 0x426e69d8 rfkill_set_led_trigger_name +EXPORT_SYMBOL net/rfkill/rfkill 0x5cbbdd59 rfkill_set_hw_state +EXPORT_SYMBOL net/rfkill/rfkill 0x5e3a6cc8 rfkill_get_led_trigger_name +EXPORT_SYMBOL net/rfkill/rfkill 0x6a8f3fd7 rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x85601779 rfkill_pause_polling +EXPORT_SYMBOL net/rfkill/rfkill 0x8a543737 rfkill_unregister +EXPORT_SYMBOL net/rfkill/rfkill 0x916e16c7 rfkill_alloc +EXPORT_SYMBOL net/rfkill/rfkill 0xa1c74d42 rfkill_set_states +EXPORT_SYMBOL net/rfkill/rfkill 0xb2cc313c rfkill_resume_polling +EXPORT_SYMBOL net/rfkill/rfkill 0xc217b368 rfkill_blocked +EXPORT_SYMBOL net/rfkill/rfkill 0xe4f5ca33 rfkill_destroy +EXPORT_SYMBOL net/rfkill/rfkill 0xf156aa16 rfkill_set_sw_state +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x05fb683b rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0b2766dc rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0ded6c8c rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0e472e18 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2b7027b1 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x59d336f3 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x705aeacf rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7a0ebc90 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x869af48e rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa8280680 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc2e93d5f rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcb4d8e2e rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe3f1b3f3 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe5e41b61 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xeaf964dc rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/sunrpc/sunrpc 0x34a20efb svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0baafced tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x0eefb2ce tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x14415b58 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x1e6acacf tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x4cda338f tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x50698765 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x7982602c tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x808a2496 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x8a64c545 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x8d22880c tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x8ecab4be tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x979d02df tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xf99e16f7 tipc_forward_buf2port +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x890d76f0 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0xbaccbca0 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xea9df10d wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x03cea43f wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x052a329c cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x058871eb wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x074c80fb cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x1703e1bd cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x1b5c0166 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x1e13dd66 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x26468dc5 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x298079bf cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x2bf551a9 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x36352a19 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x37eaaecc ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x445680d6 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x47582efe cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x50b364f5 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x5346c5a2 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x5c83641c regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x5ce027dc cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6ab80230 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7141eb84 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x7dd38b91 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x80cf7532 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x86e8969b ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x8d2cfd3a ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9c08acca __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xa77ffaa7 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xad73a692 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xae078be3 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb1fa7e50 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xbea66241 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc7914310 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xc934fe39 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xc9cfb6a9 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xcbbb6b87 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xd0c77592 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xdb506b6f cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe5463f23 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xed049013 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xee0758bb cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xf341340a __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xf3e2ac75 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0xfdb6f3b2 cfg80211_rx_action +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x34100565 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0x3c93365e lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x8c3e78e2 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xaf781f7a lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xb9deaade lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xbefda199 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xc5288d54 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xdf9ce961 lib80211_unregister_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0xe8ca5a88 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0xb59e975d snd_mixer_oss_ioctl_card +EXPORT_SYMBOL sound/core/snd-hwdep 0x20915d2b snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x02820a5c snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x141b1575 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3710c66e snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x371aa702 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x37523b65 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3eb0275f snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x559257d8 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x704f573e snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x732105d6 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x922f39fe snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa1c984e9 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa9fd985f snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb03ed25d snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb5c093be snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc22f4ced snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcb72de7e snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdb8bce02 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x187ccd76 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x049a3aab snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x07d498c4 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0ab72001 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x169e5558 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x174f70ac snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1c757b9e snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2c003946 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x353f99ec snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x44142713 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5eb0ce16 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6f65f870 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x83f547ab snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x97978b8c snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa23e85d3 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc8ac5465 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe586b478 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf0761e46 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x28cb7967 uda134x_dai +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x46cfde0c snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0008db29 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x0038b00d eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x0054989b default_file_splice_read +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0081030e omap_vram_reserve +EXPORT_SYMBOL vmlinux 0x00b15a26 __find_get_block +EXPORT_SYMBOL vmlinux 0x00bb4136 I_BDEV +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00eacbc3 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x011a0e3d generic_writepages +EXPORT_SYMBOL vmlinux 0x011c2146 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x012555e0 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x01424f59 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x01632aa9 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x01809f30 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a3d310 omap_set_dma_channel_mode +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01d30388 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x01e66d66 d_path +EXPORT_SYMBOL vmlinux 0x01fa9600 dm_snap_cow +EXPORT_SYMBOL vmlinux 0x01ff5bee generic_setxattr +EXPORT_SYMBOL vmlinux 0x020754d3 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x024bf88f omap_modify_dma_chain_params +EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table +EXPORT_SYMBOL vmlinux 0x02573b36 omap_disable_dma_irq +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL vmlinux 0x02938497 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a38a06 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02a9b76b inet_bind +EXPORT_SYMBOL vmlinux 0x02d2ec2d writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x02d99bf2 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x0302c48b idr_destroy +EXPORT_SYMBOL vmlinux 0x03073b97 omap_writel +EXPORT_SYMBOL vmlinux 0x0307514d cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x031ba9bf atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x0327df77 module_refcount +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x035565d9 omapdss_default_get_recommended_bpp +EXPORT_SYMBOL vmlinux 0x0363440a vfs_mknod +EXPORT_SYMBOL vmlinux 0x0377bc8d dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038ac022 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL vmlinux 0x038ee70b bd_claim +EXPORT_SYMBOL vmlinux 0x0399a04e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x03b210ab dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x03ba8342 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e75374 open_by_devnum +EXPORT_SYMBOL vmlinux 0x03f76ccc mmc_host_enable +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0400429e set_irq_chip +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04323e09 proto_register +EXPORT_SYMBOL vmlinux 0x043a403d jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x044b3aca kernel_connect +EXPORT_SYMBOL vmlinux 0x045a0d38 deactivate_super +EXPORT_SYMBOL vmlinux 0x047866e9 neigh_create +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04976bc2 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x04b70cf6 inet_release +EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine +EXPORT_SYMBOL vmlinux 0x04ffe49d key_negate_and_link +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05267b0b input_flush_device +EXPORT_SYMBOL vmlinux 0x0533c062 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x054e7342 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x056f6fee uart_suspend_port +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion +EXPORT_SYMBOL vmlinux 0x05e312ae snd_jack_set_key +EXPORT_SYMBOL vmlinux 0x060db402 eth_type_trans +EXPORT_SYMBOL vmlinux 0x06123bca cdev_del +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0632e677 secpath_dup +EXPORT_SYMBOL vmlinux 0x06627fd2 bd_set_size +EXPORT_SYMBOL vmlinux 0x066502d8 nonseekable_open +EXPORT_SYMBOL vmlinux 0x0670be47 __nla_reserve +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0684208f alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x06aa9950 bioset_free +EXPORT_SYMBOL vmlinux 0x06c27273 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x06c5b08d phy_find_first +EXPORT_SYMBOL vmlinux 0x06d3388a kobject_put +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06d9090c tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x06f5de5f d_instantiate +EXPORT_SYMBOL vmlinux 0x06f65bf1 devm_ioremap +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x072bd94f d_alloc +EXPORT_SYMBOL vmlinux 0x07304aa7 sg_miter_next +EXPORT_SYMBOL vmlinux 0x073305fa read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x076888e0 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x0771fdf7 nf_afinfo +EXPORT_SYMBOL vmlinux 0x0784f721 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x078c74cd tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a5f503 omap_readw +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b1713f take_over_console +EXPORT_SYMBOL vmlinux 0x07c40651 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0x07c8a441 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d838a2 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07dc1aee pneigh_lookup +EXPORT_SYMBOL vmlinux 0x07ef577e page_symlink +EXPORT_SYMBOL vmlinux 0x080c71a7 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x082bc7f7 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x08504c7f devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x08732f0e xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x088b2631 complete_request_key +EXPORT_SYMBOL vmlinux 0x08a02e93 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x08a33080 clk_round_rate +EXPORT_SYMBOL vmlinux 0x08a4c534 omap_mcbsp_get_rx_delay +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x0930a51f scsi_execute +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x094587c5 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x094a9b66 downgrade_write +EXPORT_SYMBOL vmlinux 0x095db287 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x0985ae51 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x0986be29 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099f8c04 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x09c425b4 mapping_tagged +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09ce9165 posix_lock_file +EXPORT_SYMBOL vmlinux 0x09e4957c filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x09e4b9f0 snd_register_device_for_dev +EXPORT_SYMBOL vmlinux 0x09e67502 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x09ef257b remove_proc_entry +EXPORT_SYMBOL vmlinux 0x09f57d02 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x09ff6bcf set_device_ro +EXPORT_SYMBOL vmlinux 0x0a14b030 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x0a1bebc5 kernel_execve +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a445575 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x0a4745a8 kthread_bind +EXPORT_SYMBOL vmlinux 0x0a585089 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x0a7972eb max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x0a98e8a2 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0aab5102 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b148748 amba_find_device +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b30e39a ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize +EXPORT_SYMBOL vmlinux 0x0b36de0f truncate_pagecache +EXPORT_SYMBOL vmlinux 0x0b427bb9 cdrom_open +EXPORT_SYMBOL vmlinux 0x0b6e043e simple_write_end +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bb487a7 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x0bba351a security_path_mknod +EXPORT_SYMBOL vmlinux 0x0bc3ffb5 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x0bc5d0d1 pipe_to_file +EXPORT_SYMBOL vmlinux 0x0bcf3d66 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x0bde3222 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x0c0250a4 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x0c03c579 nf_log_register +EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout +EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0c4bf628 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca2ac03 consume_skb +EXPORT_SYMBOL vmlinux 0x0cab3b2f kobject_add +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cd67825 dquot_transfer +EXPORT_SYMBOL vmlinux 0x0cdd158d sg_alloc_table +EXPORT_SYMBOL vmlinux 0x0d0deade vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d61c647 netif_napi_del +EXPORT_SYMBOL vmlinux 0x0d6293c5 dst_destroy +EXPORT_SYMBOL vmlinux 0x0d77fe70 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x0d868947 snd_pcm_notify +EXPORT_SYMBOL vmlinux 0x0d96bdac neigh_lookup +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da461c5 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x0db3877d ___dma_single_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x0dbfcbb9 snd_timer_resolution +EXPORT_SYMBOL vmlinux 0x0dee6898 skb_set_dev +EXPORT_SYMBOL vmlinux 0x0df2fd0f neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x0df7b2dd dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x0df7d435 journal_start_commit +EXPORT_SYMBOL vmlinux 0x0e029b03 snd_dma_free_pages +EXPORT_SYMBOL vmlinux 0x0e141b00 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x0e3001a5 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x0e40038f read_cache_pages +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5fd162 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x0e6b18f4 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x0e79a393 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x0e7dd82a start_tty +EXPORT_SYMBOL vmlinux 0x0e81dff9 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x0e9cc04d d_prune_aliases +EXPORT_SYMBOL vmlinux 0x0e9f91ec blk_init_tags +EXPORT_SYMBOL vmlinux 0x0eae495f seq_release_private +EXPORT_SYMBOL vmlinux 0x0ebe92a5 open_exec +EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init +EXPORT_SYMBOL vmlinux 0x0ee94e04 read_cache_page +EXPORT_SYMBOL vmlinux 0x0f1bab7e user_revoke +EXPORT_SYMBOL vmlinux 0x0f93d831 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0faa5471 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb0c73c dma_map_sg +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff61f99 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x10358755 genphy_read_status +EXPORT_SYMBOL vmlinux 0x1049c61f ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x1050a18d ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x105f4bf7 elv_rb_del +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x10898604 notify_change +EXPORT_SYMBOL vmlinux 0x108e6271 journal_errno +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x109742d3 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x10a84478 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x10aeede1 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x10b26d86 omap_dss_register_driver +EXPORT_SYMBOL vmlinux 0x10bbe167 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112748bd omap_vrfb_adjust_size +EXPORT_SYMBOL vmlinux 0x1152dc1b inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11862102 arp_find +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1204cf2e find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x1214e455 skb_find_text +EXPORT_SYMBOL vmlinux 0x121f28b1 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x122a0ac0 snd_ctl_add +EXPORT_SYMBOL vmlinux 0x124088d0 tty_throttle +EXPORT_SYMBOL vmlinux 0x124e438f netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x1253555b napi_frags_finish +EXPORT_SYMBOL vmlinux 0x128f3815 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x12d7cd08 pipe_lock +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e4104f inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x12e4c424 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12f7394a scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13086497 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x133327c2 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x13386a87 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x13ccdebf __serio_register_port +EXPORT_SYMBOL vmlinux 0x14273200 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x142bd2bf snd_pcm_stop +EXPORT_SYMBOL vmlinux 0x144a7ae6 blk_register_region +EXPORT_SYMBOL vmlinux 0x144bc7e9 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x146047bd d_find_alias +EXPORT_SYMBOL vmlinux 0x1476b371 napi_complete +EXPORT_SYMBOL vmlinux 0x147b07b1 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x14842984 journal_restart +EXPORT_SYMBOL vmlinux 0x14a918fc netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x14ca115c kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x14d4212d input_allocate_device +EXPORT_SYMBOL vmlinux 0x150cc0c8 blk_run_queue +EXPORT_SYMBOL vmlinux 0x15101b22 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x151cdf31 journal_destroy +EXPORT_SYMBOL vmlinux 0x15331242 omap_iounmap +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15677c54 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x1594c93f __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x15960974 blk_init_queue +EXPORT_SYMBOL vmlinux 0x1598c348 d_splice_alias +EXPORT_SYMBOL vmlinux 0x15ae9f08 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x15e98291 nand_correct_data +EXPORT_SYMBOL vmlinux 0x15f20c73 ioremap_page +EXPORT_SYMBOL vmlinux 0x15f8c713 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x160b782c clk_disable +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x164e32b2 __devm_release_region +EXPORT_SYMBOL vmlinux 0x1650576c inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x165eff61 block_write_begin +EXPORT_SYMBOL vmlinux 0x166c8b63 default_llseek +EXPORT_SYMBOL vmlinux 0x166e74a2 cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0x1677abb1 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x169051ba dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x16aef261 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x16b3afdb snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL vmlinux 0x16d57eec vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x16dd54bf eth_validate_addr +EXPORT_SYMBOL vmlinux 0x16e9c62d generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x16eb667a dcache_dir_close +EXPORT_SYMBOL vmlinux 0x16fbf4ce skb_pull +EXPORT_SYMBOL vmlinux 0x170aee64 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x170e4cdd sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x170ec140 seq_printf +EXPORT_SYMBOL vmlinux 0x171d3dbb iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x175236f4 omap_mcbsp_start +EXPORT_SYMBOL vmlinux 0x1770bd60 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17c41c65 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x181bde84 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x182fcdf2 dev_addr_add +EXPORT_SYMBOL vmlinux 0x18353f28 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x183903ce __bread +EXPORT_SYMBOL vmlinux 0x183d3f9b snd_pcm_set_ops +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x18548a2b tcp_check_req +EXPORT_SYMBOL vmlinux 0x186a730a jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x1886001a poll_initwait +EXPORT_SYMBOL vmlinux 0x1888d7c7 tcp_poll +EXPORT_SYMBOL vmlinux 0x18ad2809 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x18b065e3 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x18d5e1e7 snd_jack_report +EXPORT_SYMBOL vmlinux 0x18ee958f proto_unregister +EXPORT_SYMBOL vmlinux 0x18fe000e dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x195ee279 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x196713b1 find_vma +EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock +EXPORT_SYMBOL vmlinux 0x197c48dc __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x197dc3b3 omap_set_dma_src_burst_mode +EXPORT_SYMBOL vmlinux 0x19854802 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a3c3ce tty_port_open +EXPORT_SYMBOL vmlinux 0x19aac787 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x19ca7e85 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x19e6c722 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x19fbc53d nla_put +EXPORT_SYMBOL vmlinux 0x1a0d599a blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x1a12c6dc dma_unmap_sg +EXPORT_SYMBOL vmlinux 0x1a48db04 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x1a4c5e00 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a71a523 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x1a753781 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x1a882364 down_killable +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1adabd45 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x1aeae22e blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x1af9e5dc ilookup +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b79f66a __elv_add_request +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba8a46c bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x1baba4c0 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x1babe60e omap_st_set_chgain +EXPORT_SYMBOL vmlinux 0x1bb203de xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x1bb54eb2 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x1be024ea should_remove_suid +EXPORT_SYMBOL vmlinux 0x1bf68ffc generic_removexattr +EXPORT_SYMBOL vmlinux 0x1c02a801 fput +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c3cd567 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x1c451631 udplite_prot +EXPORT_SYMBOL vmlinux 0x1ca77e69 task_nice +EXPORT_SYMBOL vmlinux 0x1cbe91d4 security_file_permission +EXPORT_SYMBOL vmlinux 0x1cc26c9c tcf_action_exec +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc +EXPORT_SYMBOL vmlinux 0x1d019fd3 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL vmlinux 0x1d035bf8 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x1d0af479 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x1d0d811d inet_frag_kill +EXPORT_SYMBOL vmlinux 0x1d22967c call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x1d2b8370 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3642b6 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc65dfe fb_pan_display +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd7439d jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x1deafd0e inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x1e017566 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x1e15a33d phy_start +EXPORT_SYMBOL vmlinux 0x1e2ca85b __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x1e477fbb tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e74c37d skb_seq_read +EXPORT_SYMBOL vmlinux 0x1e78f855 eth_header +EXPORT_SYMBOL vmlinux 0x1e8573da bdi_init +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea07dea snd_ctl_free_one +EXPORT_SYMBOL vmlinux 0x1ea78be1 fget +EXPORT_SYMBOL vmlinux 0x1ec948b9 dput +EXPORT_SYMBOL vmlinux 0x1efacd5a tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f0fb717 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x1f4f3404 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x1f6da824 __kfree_skb +EXPORT_SYMBOL vmlinux 0x1f7a9b65 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x1f874886 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x1f911a16 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd3b12a dm_table_get +EXPORT_SYMBOL vmlinux 0x1fec086d bdget +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20021998 set_security_override +EXPORT_SYMBOL vmlinux 0x20115e9c do_sync_write +EXPORT_SYMBOL vmlinux 0x2028f70f tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x203f7ad5 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x205ec8de omap_dispc_register_isr +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x207b30a3 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x20a1c926 send_sig_info +EXPORT_SYMBOL vmlinux 0x20d3fa8a phy_device_free +EXPORT_SYMBOL vmlinux 0x20de83d1 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x20e44a0d single_open +EXPORT_SYMBOL vmlinux 0x20fea739 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x2104734b cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x2110f1f0 soft_cursor +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x211add17 eth_header_cache +EXPORT_SYMBOL vmlinux 0x211af9bd set_page_dirty +EXPORT_SYMBOL vmlinux 0x211d8d53 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x21456ef3 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x2154386d bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2176df3c get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x2179cdc8 dquot_disable +EXPORT_SYMBOL vmlinux 0x218941b2 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x21cce3f2 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x21d9a124 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x21daac35 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x21f2104f bmap +EXPORT_SYMBOL vmlinux 0x21ff8ff3 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x220e73ae dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x22131cfb down_write_trylock +EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x223cc898 omap_vrfb_max_height +EXPORT_SYMBOL vmlinux 0x2246053f check_disk_change +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2271b4f3 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x22844116 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228b54c6 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x228ca676 mem_map +EXPORT_SYMBOL vmlinux 0x22935dbc sk_stop_timer +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22bab29e __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x22ed6ada sg_miter_start +EXPORT_SYMBOL vmlinux 0x22f94f89 generic_read_dir +EXPORT_SYMBOL vmlinux 0x2314b849 snd_ctl_make_virtual_master +EXPORT_SYMBOL vmlinux 0x23152fd7 get_sb_single +EXPORT_SYMBOL vmlinux 0x2321f371 seq_write +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x2380a75f ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x23a0641b phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23d77d12 sock_create_kern +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x23ffec39 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x240ad7b1 ppp_input_error +EXPORT_SYMBOL vmlinux 0x2429fe63 simple_empty +EXPORT_SYMBOL vmlinux 0x243abc61 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x244b4fe3 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x2456698a filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL vmlinux 0x24ad2f91 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x24bede38 snd_pcm_lib_readv +EXPORT_SYMBOL vmlinux 0x24d3fff1 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x257e0db3 netlink_unicast +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25a0513e rtnl_notify +EXPORT_SYMBOL vmlinux 0x25bc96bb bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x25c7c8f6 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x25cd0f75 seq_path +EXPORT_SYMBOL vmlinux 0x25d130f3 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25e2458e skb_copy +EXPORT_SYMBOL vmlinux 0x25efd582 dev_add_pack +EXPORT_SYMBOL vmlinux 0x25f86f92 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x25f9a9b2 __register_binfmt +EXPORT_SYMBOL vmlinux 0x25fb11e8 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x261091f1 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x261c1766 __backtrace +EXPORT_SYMBOL vmlinux 0x263d5a6a omap_mcbsp_spi_master_xmit_word_poll +EXPORT_SYMBOL vmlinux 0x2643b87b __breadahead +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2658c54c softnet_data +EXPORT_SYMBOL vmlinux 0x265a49a9 security_path_chown +EXPORT_SYMBOL vmlinux 0x26789de0 tty_check_change +EXPORT_SYMBOL vmlinux 0x2684dab2 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator +EXPORT_SYMBOL vmlinux 0x26c47245 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x26c8e6dc snd_pcm_limit_hw_rates +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f2d7eb sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x27035975 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x2708e51e init_net +EXPORT_SYMBOL vmlinux 0x27205aa1 bio_copy_user +EXPORT_SYMBOL vmlinux 0x27223610 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x272bed8a blk_free_tags +EXPORT_SYMBOL vmlinux 0x2742719a kobject_del +EXPORT_SYMBOL vmlinux 0x27558066 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x2779d5f1 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x277af174 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279c3788 iput +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27ed1b1d __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x282afdc8 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x282b443e journal_force_commit +EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x2873d5c5 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x287adbd7 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x288f96d0 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x2897d0f7 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x2897fc48 omap_cfg_reg +EXPORT_SYMBOL vmlinux 0x2899f3ca iget_locked +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b173af genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x28e385e7 neigh_for_each +EXPORT_SYMBOL vmlinux 0x29358393 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x29417c40 amba_device_register +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29976c55 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x29b15d63 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29e78d57 add_mtd_partitions +EXPORT_SYMBOL vmlinux 0x29f2ec74 set_create_files_as +EXPORT_SYMBOL vmlinux 0x2a1c10a9 uart_register_driver +EXPORT_SYMBOL vmlinux 0x2a616c17 dst_release +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a7f35f0 ilookup5 +EXPORT_SYMBOL vmlinux 0x2a87521d inetdev_by_index +EXPORT_SYMBOL vmlinux 0x2a912bd8 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x2a9778a8 serio_close +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa7e293 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x2aafa043 vfs_rename +EXPORT_SYMBOL vmlinux 0x2ac56933 misc_register +EXPORT_SYMBOL vmlinux 0x2aef529a blk_integrity_register +EXPORT_SYMBOL vmlinux 0x2af07989 km_state_expired +EXPORT_SYMBOL vmlinux 0x2af6253d block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0fd2ce skb_copy_bits +EXPORT_SYMBOL vmlinux 0x2b10f3ba journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x2b191c5d sync_inode +EXPORT_SYMBOL vmlinux 0x2b1fb0c3 tcp_child_process +EXPORT_SYMBOL vmlinux 0x2b517a86 proc_create_data +EXPORT_SYMBOL vmlinux 0x2b51b34d journal_forget +EXPORT_SYMBOL vmlinux 0x2b6053ac __destroy_inode +EXPORT_SYMBOL vmlinux 0x2b656455 phy_disconnect +EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit +EXPORT_SYMBOL vmlinux 0x2b7235c3 nobh_writepage +EXPORT_SYMBOL vmlinux 0x2b86372f genphy_config_advert +EXPORT_SYMBOL vmlinux 0x2b888f30 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create +EXPORT_SYMBOL vmlinux 0x2b91fc63 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2be5708f tcf_register_action +EXPORT_SYMBOL vmlinux 0x2be7aaca eth_header_parse +EXPORT_SYMBOL vmlinux 0x2c3626c1 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x2c37b965 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x2c4a48b0 register_md_personality +EXPORT_SYMBOL vmlinux 0x2c4c30e1 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x2c60016c wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x2c9d3c04 sk_common_release +EXPORT_SYMBOL vmlinux 0x2ca38bc5 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL vmlinux 0x2cc2c994 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x2ce3150b tc_classify +EXPORT_SYMBOL vmlinux 0x2ceb6dc1 do_splice_to +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2cfa06aa fb_show_logo +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d2f5ed0 generic_listxattr +EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock +EXPORT_SYMBOL vmlinux 0x2d3ac01c __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x2d8503ba tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d8ecf85 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x2dacab39 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x2ddaabcf snd_dma_get_reserved_buf +EXPORT_SYMBOL vmlinux 0x2ddec420 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x2de5e097 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e30abd6 skb_put +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e736c6e phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x2e74335a xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x2e827165 inet6_release +EXPORT_SYMBOL vmlinux 0x2ec08fee ___dma_page_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x2ee7eb08 scsi_unregister +EXPORT_SYMBOL vmlinux 0x2f106d81 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x2f36e8bb jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x2f3d1330 del_mtd_partitions +EXPORT_SYMBOL vmlinux 0x2f51546b blkdev_fsync +EXPORT_SYMBOL vmlinux 0x2fa25287 kfree_skb +EXPORT_SYMBOL vmlinux 0x2fbef711 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x2fde962c ip6_route_output +EXPORT_SYMBOL vmlinux 0x302479fd tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x302aae92 ipv4_specific +EXPORT_SYMBOL vmlinux 0x303ade63 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x3051e7f1 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x3056a4d3 sock_release +EXPORT_SYMBOL vmlinux 0x308aad56 omap_vrfb_min_phys_size +EXPORT_SYMBOL vmlinux 0x309fffe1 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x3101793b kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x311eae23 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x313341a3 _set_bit_le +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x316a93b7 dev_mc_init +EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit +EXPORT_SYMBOL vmlinux 0x318addee wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31ee39db bio_split +EXPORT_SYMBOL vmlinux 0x31f96687 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x3208eb46 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0x32589820 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x3266f58a dev_close +EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x327879ad tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x32867e67 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x32b0d068 igrab +EXPORT_SYMBOL vmlinux 0x32b50b45 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x32bf2c0d ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x3323f47f kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x3330f754 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x33451d07 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x33543faa rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x337f43a4 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x337f74bf nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x33f12867 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x33f236fc tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x340a906f vfs_getattr +EXPORT_SYMBOL vmlinux 0x34158141 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x3449259d _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x349f3ef8 ip_route_output_key +EXPORT_SYMBOL vmlinux 0x34ae4333 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x34b37579 alloc_file +EXPORT_SYMBOL vmlinux 0x34b3f7d7 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x34ba82b2 handle_sysrq +EXPORT_SYMBOL vmlinux 0x35044932 omap_dss_start_device +EXPORT_SYMBOL vmlinux 0x350b5134 noop_llseek +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x354d5800 dev_addr_init +EXPORT_SYMBOL vmlinux 0x356925e6 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x357eab0d tty_kref_put +EXPORT_SYMBOL vmlinux 0x358c0dde sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x35a84947 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x35da67f4 omap_writew +EXPORT_SYMBOL vmlinux 0x35f1fbcd block_write_full_page +EXPORT_SYMBOL vmlinux 0x3601c1ba generic_unplug_device +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3612c10f tmio_core_mmc_enable +EXPORT_SYMBOL vmlinux 0x36148300 _snd_ctl_add_slave +EXPORT_SYMBOL vmlinux 0x363dcc17 register_sound_special +EXPORT_SYMBOL vmlinux 0x368f9e61 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x3695dad6 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x36ac083f nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x36cb10c8 ftrace_event_seq +EXPORT_SYMBOL vmlinux 0x36da7ad0 tcf_em_register +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36fb6700 put_tty_driver +EXPORT_SYMBOL vmlinux 0x373483a3 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x376e1ba6 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x377a1885 omap_mcbsp_get_tx_delay +EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x378d63f5 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x37907492 set_disk_ro +EXPORT_SYMBOL vmlinux 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37b9473c xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37e2f2c5 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x38133c8b dqstats +EXPORT_SYMBOL vmlinux 0x38165664 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x3819b198 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x3823392d genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x38273b3d vc_cons +EXPORT_SYMBOL vmlinux 0x3854a8ed snd_ctl_rename_id +EXPORT_SYMBOL vmlinux 0x387981bf tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x3883638e omap_dss_get_overlay +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a11430 fb_find_mode +EXPORT_SYMBOL vmlinux 0x38c989f3 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x38e8378d pgprot_kernel +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x3911554c inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x39241aa2 netlink_set_err +EXPORT_SYMBOL vmlinux 0x392c2266 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x393abc3d dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x395762fe tty_devnum +EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3987bc3a i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x3989faa2 netpoll_setup +EXPORT_SYMBOL vmlinux 0x3994b997 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL vmlinux 0x39e39baa vc_resize +EXPORT_SYMBOL vmlinux 0x39e706ea snd_info_register +EXPORT_SYMBOL vmlinux 0x39f00364 snd_card_file_remove +EXPORT_SYMBOL vmlinux 0x3a12bbf3 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a608b7d dquot_scan_active +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3b0befc8 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x3b1a7f13 netpoll_poll +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b3a5e23 kill_litter_super +EXPORT_SYMBOL vmlinux 0x3b3c2947 dm_io +EXPORT_SYMBOL vmlinux 0x3b6d3048 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x3b790ef6 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x3b9198a9 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x3b91f3af snd_free_pages +EXPORT_SYMBOL vmlinux 0x3bbef4d2 blkdev_get +EXPORT_SYMBOL vmlinux 0x3bc5ef9e lock_fb_info +EXPORT_SYMBOL vmlinux 0x3bcf4acb wake_up_process +EXPORT_SYMBOL vmlinux 0x3bd0c59e cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bdc7949 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x3beacf3b snd_device_free +EXPORT_SYMBOL vmlinux 0x3c1d03b4 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c3b38ba nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x3c494e77 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x3c4cb632 kdb_current_task +EXPORT_SYMBOL vmlinux 0x3c6ff365 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x3c7832ef dma_pool_free +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3caa5621 dev_get_stats +EXPORT_SYMBOL vmlinux 0x3cae7029 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x3cd0b0c8 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d391f93 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x3d39cc5d mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3dad0dcf read_dev_sector +EXPORT_SYMBOL vmlinux 0x3dbc82df ip_setsockopt +EXPORT_SYMBOL vmlinux 0x3dfbafa1 generic_setattr +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e13ab90 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x3e235ff6 register_qdisc +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e5ce925 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e98d594 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x3eac205c set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x3ec2be41 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee6d21d find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x3ef71411 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x3f121799 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x3f2e00a5 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3fd32ee0 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x3fd7a190 register_exec_domain +EXPORT_SYMBOL vmlinux 0x3fd869c5 blk_get_request +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ffc5c51 __bio_clone +EXPORT_SYMBOL vmlinux 0x40410b7a d_alloc_root +EXPORT_SYMBOL vmlinux 0x40474a93 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x407a3275 omap_start_dma +EXPORT_SYMBOL vmlinux 0x40850783 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x4086476b xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x40908857 __page_symlink +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a6f522 __arm_ioremap +EXPORT_SYMBOL vmlinux 0x40a9b3bd security_path_rename +EXPORT_SYMBOL vmlinux 0x40efdd53 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41420768 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414aab90 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x4154c77e cdev_alloc +EXPORT_SYMBOL vmlinux 0x41605b5d get_phy_id +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x416b2522 omap_get_var_config +EXPORT_SYMBOL vmlinux 0x4170da28 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41b33015 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x41d963ea tty_unthrottle +EXPORT_SYMBOL vmlinux 0x4207244c key_alloc +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x4220ea19 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x424cad3e simple_pin_fs +EXPORT_SYMBOL vmlinux 0x42640ea7 simple_fill_super +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42eb359c filp_open +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x433eb572 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x4347b971 idr_init +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x4364a46d bio_phys_segments +EXPORT_SYMBOL vmlinux 0x43868001 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x439ab5f2 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43b9d5f9 copy_io_context +EXPORT_SYMBOL vmlinux 0x43c16c24 journal_abort +EXPORT_SYMBOL vmlinux 0x43d60b3b kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x43d632e9 nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x43e4c883 follow_down +EXPORT_SYMBOL vmlinux 0x43f1851b scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x43fbbb79 override_creds +EXPORT_SYMBOL vmlinux 0x44032ed0 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x440d669f scsi_print_sense +EXPORT_SYMBOL vmlinux 0x441ed159 omap_get_dma_src_pos +EXPORT_SYMBOL vmlinux 0x442495c9 tmio_core_mmc_resume +EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x444bf25e xfrm_lookup +EXPORT_SYMBOL vmlinux 0x445c938d netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x445d1250 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x44623830 register_nls +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x448212fa down_trylock +EXPORT_SYMBOL vmlinux 0x44a2a89b netif_rx_ni +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44e02592 __rta_fill +EXPORT_SYMBOL vmlinux 0x44e695c5 journal_create +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f25c2a mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0x45266e1d scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x45478fde set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x459c161c omap_dss_find_device +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45aa00a7 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45c7ec76 do_splice_from +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45d2bf0a inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x4601ab4e max8925_reg_write +EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table +EXPORT_SYMBOL vmlinux 0x4628dc33 omap_vram_alloc +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x469d4f6b snd_add_device_sysfs_file +EXPORT_SYMBOL vmlinux 0x46a21606 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x46bf76ab inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x46c50891 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46d936c0 cdrom_release +EXPORT_SYMBOL vmlinux 0x4704fe2a ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x4715688d icmpv6_send +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x474747f2 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x474dd7aa udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x476af88f __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47ea8a19 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x47f80988 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x47f9635c do_map_probe +EXPORT_SYMBOL vmlinux 0x47fe8bdf dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x4801bb32 dev_uc_add +EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48986509 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x48a3331e stop_tty +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48ae08a3 register_sound_dsp +EXPORT_SYMBOL vmlinux 0x48d6a176 dquot_file_open +EXPORT_SYMBOL vmlinux 0x491d58df force_sig +EXPORT_SYMBOL vmlinux 0x492f9fe9 mpage_writepages +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4962bcdd generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x4969dac1 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x4988a177 i2c_master_send +EXPORT_SYMBOL vmlinux 0x49acc641 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49defb36 journal_get_write_access +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49e45008 input_set_keycode +EXPORT_SYMBOL vmlinux 0x49fb031f kmem_cache_size +EXPORT_SYMBOL vmlinux 0x4a0a7da9 generic_setlease +EXPORT_SYMBOL vmlinux 0x4a34d20b inode_init_always +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a37454b skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x4a37af33 ___dma_single_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x4a39e5a1 omap_set_dma_src_params +EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL vmlinux 0x4a6b3c02 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x4a6fe91f km_policy_notify +EXPORT_SYMBOL vmlinux 0x4a835c63 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x4a93cd94 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4add7a5b mii_link_ok +EXPORT_SYMBOL vmlinux 0x4af2e476 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x4afe8565 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b16e5c4 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove +EXPORT_SYMBOL vmlinux 0x4b2a395b unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x4b2d158f __blk_end_request +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b5204db mpage_readpage +EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x4b789d5c dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x4bb251ca blk_plug_device +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bd37739 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x4bdb371c blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x4c1053df devm_iounmap +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c20a5b2 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c2bc23d skb_free_datagram +EXPORT_SYMBOL vmlinux 0x4c34fa57 inet_listen +EXPORT_SYMBOL vmlinux 0x4c468c19 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x4c566214 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x4c5d0728 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x4c6164ee do_sync_read +EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states +EXPORT_SYMBOL vmlinux 0x4c655619 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x4c833ee7 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x4c8d0403 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x4c937002 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x4c939227 input_free_device +EXPORT_SYMBOL vmlinux 0x4c95e08f init_task +EXPORT_SYMBOL vmlinux 0x4caf62bb udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd717ac bdget_disk +EXPORT_SYMBOL vmlinux 0x4cef52e7 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x4ceff559 sync_blockdev +EXPORT_SYMBOL vmlinux 0x4d00c6be elv_rb_find +EXPORT_SYMBOL vmlinux 0x4d05c464 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x4d0cb6c9 noop_fsync +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d110c56 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x4d14508e input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x4d1e7119 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d538048 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x4d5728ed lro_flush_all +EXPORT_SYMBOL vmlinux 0x4d57920d blk_complete_request +EXPORT_SYMBOL vmlinux 0x4d5ab173 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x4d5b4410 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL vmlinux 0x4dbe9f1a lease_get_mtime +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dd0a746 elevator_exit +EXPORT_SYMBOL vmlinux 0x4dd0bb69 ip6_xmit +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e002ad0 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x4e014ba0 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e0c66d0 register_sound_midi +EXPORT_SYMBOL vmlinux 0x4e208c98 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x4e2eb5b9 con_is_bound +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e506013 omap_dma_link_lch +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e824de0 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4ea32edd abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x4ec2232d qdisc_reset +EXPORT_SYMBOL vmlinux 0x4ecf4a99 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x4f073d4c xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x4f149834 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2c82e8 cont_write_begin +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f62bb52 snd_dma_alloc_pages +EXPORT_SYMBOL vmlinux 0x4f72fbb4 uart_match_port +EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free +EXPORT_SYMBOL vmlinux 0x4fc71b77 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x4fcbee49 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x4fd77b2d slow_work_cancel +EXPORT_SYMBOL vmlinux 0x5013851b snd_pcm_lib_writev +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50225ebf set_blocksize +EXPORT_SYMBOL vmlinux 0x502bc33a sock_create_lite +EXPORT_SYMBOL vmlinux 0x502d687d mb_cache_create +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506d97f5 omap_readl +EXPORT_SYMBOL vmlinux 0x5079ab01 keyring_clear +EXPORT_SYMBOL vmlinux 0x507f6023 mmc_host_disable +EXPORT_SYMBOL vmlinux 0x5092373e skb_queue_tail +EXPORT_SYMBOL vmlinux 0x5093fa82 _clear_bit_le +EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new +EXPORT_SYMBOL vmlinux 0x50ccff03 omap_dma_set_prio_lch +EXPORT_SYMBOL vmlinux 0x50d4143c netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x50f6cc46 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu +EXPORT_SYMBOL vmlinux 0x5117f429 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x513bf982 md_check_recovery +EXPORT_SYMBOL vmlinux 0x514d1f50 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x515865bc jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x5169161d omap_free_dma_chain +EXPORT_SYMBOL vmlinux 0x518021a1 dev_trans_start +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x51a73056 try_to_release_page +EXPORT_SYMBOL vmlinux 0x51cb729f netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x51d83114 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x51dac05b arp_xmit +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e35485 ll_rw_block +EXPORT_SYMBOL vmlinux 0x51e37c32 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52137092 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x52475b9e kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x5263dfdb slow_work_register_user +EXPORT_SYMBOL vmlinux 0x52724474 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x52730c55 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52b22290 input_event +EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x52ec851d blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530b58ba mark_page_accessed +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5337f87a sock_kmalloc +EXPORT_SYMBOL vmlinux 0x533a93af sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x53477c62 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x53700d68 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x538c8b77 is_container_init +EXPORT_SYMBOL vmlinux 0x53921f0a phy_attach_direct +EXPORT_SYMBOL vmlinux 0x53ae0f38 omap_st_enable +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54748f93 sock_no_listen +EXPORT_SYMBOL vmlinux 0x54a64796 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x54afdc2b elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x552146cd snd_pcm_hw_constraint_list +EXPORT_SYMBOL vmlinux 0x553c649e dquot_operations +EXPORT_SYMBOL vmlinux 0x55410b44 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x5570b32e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55e5ce95 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x560d0ee7 snd_pcm_lib_write +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x561c1e6e ps2_begin_command +EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x562e3c33 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5676dedc md_done_sync +EXPORT_SYMBOL vmlinux 0x56789ac5 omap_set_dma_color_mode +EXPORT_SYMBOL vmlinux 0x56b18cb0 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x56b54c3e dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56f38346 get_sb_ns +EXPORT_SYMBOL vmlinux 0x5718ede1 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x5728b397 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57445d48 search_binary_handler +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x57698fa7 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x57746214 inet6_getname +EXPORT_SYMBOL vmlinux 0x57a455bb fb_set_cmap +EXPORT_SYMBOL vmlinux 0x57a57def dev_disable_lro +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57b4b74c nf_register_hook +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e3d123 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x57ffe175 file_remove_suid +EXPORT_SYMBOL vmlinux 0x58248a7e tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x5835038f __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x58427045 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x5849fb44 phy_attach +EXPORT_SYMBOL vmlinux 0x58516557 omap_set_dma_src_data_pack +EXPORT_SYMBOL vmlinux 0x586818d2 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x587dc363 module_put +EXPORT_SYMBOL vmlinux 0x5886b466 revalidate_disk +EXPORT_SYMBOL vmlinux 0x58a20fcf sock_wfree +EXPORT_SYMBOL vmlinux 0x58c7c2c6 cdev_index +EXPORT_SYMBOL vmlinux 0x58f954cc mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x59074bcb dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x594fd546 omap_prcm_get_reset_sources +EXPORT_SYMBOL vmlinux 0x596fd12a scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x59af56ea snd_info_create_module_entry +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59e0b5c8 prepare_binprm +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x5a03513c mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x5a0dd258 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x5a24c1c7 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x5a3b115a kstat +EXPORT_SYMBOL vmlinux 0x5a3d791a blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x5a4f844b find_or_create_page +EXPORT_SYMBOL vmlinux 0x5a5cee8e jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x5a64d5c8 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a90e3d5 key_put +EXPORT_SYMBOL vmlinux 0x5a942231 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL vmlinux 0x5a957f4c phy_start_aneg +EXPORT_SYMBOL vmlinux 0x5aa8f0f6 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x5ab4a8ac tty_name +EXPORT_SYMBOL vmlinux 0x5ae0d47f clocksource_register +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b25dee8 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x5b3b26cb bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b99f90a snd_ctl_new1 +EXPORT_SYMBOL vmlinux 0x5bb4df07 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x5be2888a seq_release +EXPORT_SYMBOL vmlinux 0x5be4337e setup_new_exec +EXPORT_SYMBOL vmlinux 0x5bf4a1eb sg_last +EXPORT_SYMBOL vmlinux 0x5bf6eaec ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x5c017ced generic_getxattr +EXPORT_SYMBOL vmlinux 0x5c0b4676 path_get +EXPORT_SYMBOL vmlinux 0x5c23f798 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x5c481b33 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x5c87a83c mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x5c8ba195 ps2_command +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5cc7d044 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x5d110533 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x5d181b34 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x5d46cc02 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x5d66f824 write_one_page +EXPORT_SYMBOL vmlinux 0x5d76c3a8 arp_send +EXPORT_SYMBOL vmlinux 0x5d77a810 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x5d7ad37e omap_mcbsp_set_rx_threshold +EXPORT_SYMBOL vmlinux 0x5dacb29b xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x5dad1f53 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x5db1f8bc iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x5dc91dc9 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x5dd4221e security_file_mmap +EXPORT_SYMBOL vmlinux 0x5e2491f9 mddev_congested +EXPORT_SYMBOL vmlinux 0x5e4af592 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x5e60eb27 omap_dma_unlink_lch +EXPORT_SYMBOL vmlinux 0x5e72b541 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL vmlinux 0x5e958431 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eca99b8 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f11f6ba elv_rb_add +EXPORT_SYMBOL vmlinux 0x5f1bd170 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x5f340465 vfs_statfs +EXPORT_SYMBOL vmlinux 0x5f3d396a posix_acl_permission +EXPORT_SYMBOL vmlinux 0x5f4f99a9 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x5f58260c ___pskb_trim +EXPORT_SYMBOL vmlinux 0x5f5ecf64 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5fc0dee5 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x5fdbdfe4 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x5fea5985 seq_open +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6010cf41 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x60146f6f cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x6020b6ba jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap +EXPORT_SYMBOL vmlinux 0x605ed6a0 set_groups +EXPORT_SYMBOL vmlinux 0x6060f0ea unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x60731256 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x608e7ed7 inet_accept +EXPORT_SYMBOL vmlinux 0x6099ca6f devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60ee5f3c dm_io_client_create +EXPORT_SYMBOL vmlinux 0x60f71cfa complete +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x61120475 register_key_type +EXPORT_SYMBOL vmlinux 0x611e28f5 sk_filter +EXPORT_SYMBOL vmlinux 0x61225bac cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6151ac55 scsi_device_get +EXPORT_SYMBOL vmlinux 0x61615665 rt6_lookup +EXPORT_SYMBOL vmlinux 0x6165c8e0 fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61a5886a journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x61a79f08 __irq_regs +EXPORT_SYMBOL vmlinux 0x61b67ce6 unregister_nls +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c89bf9 install_exec_creds +EXPORT_SYMBOL vmlinux 0x61e9a287 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x61ebf6e8 inode_permission +EXPORT_SYMBOL vmlinux 0x620bab61 vfs_link +EXPORT_SYMBOL vmlinux 0x62145a2f bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x6218a77e inode_needs_sync +EXPORT_SYMBOL vmlinux 0x622be66b tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x623a2a5e tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x6257d054 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627f09a4 dma_mmap_coherent +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628c6b59 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x6293337f slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x629ad04b ip_defrag +EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock +EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask +EXPORT_SYMBOL vmlinux 0x62f396ab security_path_mkdir +EXPORT_SYMBOL vmlinux 0x631ad42f brioctl_set +EXPORT_SYMBOL vmlinux 0x631f19a7 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x636b3461 omap_dss_get_num_overlays +EXPORT_SYMBOL vmlinux 0x637412c0 dst_alloc +EXPORT_SYMBOL vmlinux 0x637f423f dqget +EXPORT_SYMBOL vmlinux 0x63ae93e7 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x63e95f37 inet_ioctl +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x643b5e73 inet_addr_type +EXPORT_SYMBOL vmlinux 0x643c729f __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x644f83e6 skb_append +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x646e0a34 thaw_super +EXPORT_SYMBOL vmlinux 0x648ebc7f blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a40758 scsi_print_command +EXPORT_SYMBOL vmlinux 0x64c7c56e mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x64c7dd68 journal_extend +EXPORT_SYMBOL vmlinux 0x6502617d skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654d1270 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x6572c89a jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x65899c98 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x658f7ff5 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x65a00934 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x65a765ee ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x65bd988b ip_fragment +EXPORT_SYMBOL vmlinux 0x65e46a70 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x65f4c923 vm_map_ram +EXPORT_SYMBOL vmlinux 0x662dce23 omap_mcbsp_set_spi_mode +EXPORT_SYMBOL vmlinux 0x663d3355 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x66660b78 usb_gadget_unregister_driver +EXPORT_SYMBOL vmlinux 0x66812325 sk_stream_error +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x668f0a71 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x669caec6 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x66a0ebf5 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x66b664a1 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL vmlinux 0x66c6667f tty_write_room +EXPORT_SYMBOL vmlinux 0x66cade7d i2c_register_driver +EXPORT_SYMBOL vmlinux 0x66e982e9 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x66ee4e5c serial8250_register_port +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x67166fdf kthread_create +EXPORT_SYMBOL vmlinux 0x67265d21 snd_card_free +EXPORT_SYMBOL vmlinux 0x673271b5 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x673d26f0 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x67464227 redraw_screen +EXPORT_SYMBOL vmlinux 0x67540b01 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x6785d87f dquot_free_inode +EXPORT_SYMBOL vmlinux 0x67a248cb register_console +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67b8fea7 omapdss_dpi_display_disable +EXPORT_SYMBOL vmlinux 0x67be1d3d cpu_active_mask +EXPORT_SYMBOL vmlinux 0x67f3508d get_io_context +EXPORT_SYMBOL vmlinux 0x684efdf6 journal_wipe +EXPORT_SYMBOL vmlinux 0x685d19b8 blk_start_request +EXPORT_SYMBOL vmlinux 0x6874ca37 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x687c3dca tty_hangup +EXPORT_SYMBOL vmlinux 0x68923c8d max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x68950808 sock_i_uid +EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL vmlinux 0x68af42fe blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x68c1baba sock_no_accept +EXPORT_SYMBOL vmlinux 0x68f8ed66 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x69000de1 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x6939ab91 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x6943e44c ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x6945845e i2c_verify_client +EXPORT_SYMBOL vmlinux 0x696824cc dm_table_event +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6973606c omap_st_get_chgain +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a9ab80 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x69b28ba6 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x69b6f8d9 omap_set_dma_transfer_params +EXPORT_SYMBOL vmlinux 0x69bdbdc3 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69ded9fa security_inode_readlink +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e28f7f dqput +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0e1c22 inode_init_owner +EXPORT_SYMBOL vmlinux 0x6a2b5292 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x6a3d05fc cpu_user +EXPORT_SYMBOL vmlinux 0x6a536a82 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x6a559116 rtc_lock +EXPORT_SYMBOL vmlinux 0x6a668880 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a8357d4 delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x6a91fe24 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x6a9bb1a0 filp_close +EXPORT_SYMBOL vmlinux 0x6a9e7d82 usb_gadget_register_driver +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6afaff2b release_firmware +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b21b3fe ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x6b21d2b4 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy +EXPORT_SYMBOL vmlinux 0x6b8eaa4a tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x6b9f8990 omap_dss_stop_device +EXPORT_SYMBOL vmlinux 0x6bc2dbb8 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bddba0b thaw_bdev +EXPORT_SYMBOL vmlinux 0x6beebbea file_update_time +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c25ddce pagecache_write_end +EXPORT_SYMBOL vmlinux 0x6c4cda47 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x6c561b97 __alloc_skb +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6d2cff snd_unregister_device +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c747ab4 snd_timer_global_new +EXPORT_SYMBOL vmlinux 0x6c90c732 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x6c9bed7e mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x6cccc672 blk_end_request +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6ce73f29 i2c_release_client +EXPORT_SYMBOL vmlinux 0x6d03d099 path_lookup +EXPORT_SYMBOL vmlinux 0x6d0b9874 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x6d205a80 skb_queue_head +EXPORT_SYMBOL vmlinux 0x6d21864f mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d5cd253 dev_uc_del +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d9848a6 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x6d995675 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x6dcf49c7 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x6de50f8a generic_write_checks +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df7efc8 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x6e1503a3 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x6e184d5c key_validate +EXPORT_SYMBOL vmlinux 0x6e20b27c framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x6e351c3c journal_start +EXPORT_SYMBOL vmlinux 0x6e488923 phy_connect +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL vmlinux 0x6f070382 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x6f0a7111 snd_card_file_add +EXPORT_SYMBOL vmlinux 0x6f29f589 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x6f33bcd3 omap_mcbsp_pollwrite +EXPORT_SYMBOL vmlinux 0x6f38946e sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x6f5e23ef filemap_fault +EXPORT_SYMBOL vmlinux 0x6f7370b6 dquot_drop +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f9a3545 omapdss_sdi_display_disable +EXPORT_SYMBOL vmlinux 0x6fbd3a83 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fdaab48 iget5_locked +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x7028ecce kernel_bind +EXPORT_SYMBOL vmlinux 0x702df646 input_inject_event +EXPORT_SYMBOL vmlinux 0x7050b385 security_inode_permission +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x706139ef mii_check_media +EXPORT_SYMBOL vmlinux 0x7065b223 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x7081bea5 inet_put_port +EXPORT_SYMBOL vmlinux 0x709cc168 seq_puts +EXPORT_SYMBOL vmlinux 0x70a01d45 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x70a0834b snd_info_free_entry +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d9e46e __lookup_one_len +EXPORT_SYMBOL vmlinux 0x70e777b8 dget_locked +EXPORT_SYMBOL vmlinux 0x70e95023 sk_run_filter +EXPORT_SYMBOL vmlinux 0x70f482ec snd_info_create_card_entry +EXPORT_SYMBOL vmlinux 0x71192f0f nf_ct_attach +EXPORT_SYMBOL vmlinux 0x71265aa1 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x7169ebd4 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x717ce612 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x718bd3a8 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71ae6e3e sock_no_bind +EXPORT_SYMBOL vmlinux 0x71ba97c1 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x71c78eeb dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x720fc896 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x724e0775 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x725f1524 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x72b8bed4 request_firmware +EXPORT_SYMBOL vmlinux 0x72bb3545 genphy_resume +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x73482c25 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x735a115a remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x7373ea57 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x739906fb blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x73c40439 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x73db7930 register_framebuffer +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f68e75 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x7409b901 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x740fc248 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x744aa50a dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a15c55 mmc_add_host +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c276f4 replace_mount_options +EXPORT_SYMBOL vmlinux 0x74c970b3 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x74d55e2c tty_port_close_end +EXPORT_SYMBOL vmlinux 0x74d7326d blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x74da5e2c amba_driver_register +EXPORT_SYMBOL vmlinux 0x753d7ee1 sk_free +EXPORT_SYMBOL vmlinux 0x75619178 clk_set_parent +EXPORT_SYMBOL vmlinux 0x756e288a __f_setown +EXPORT_SYMBOL vmlinux 0x75923f16 unregister_key_type +EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait +EXPORT_SYMBOL vmlinux 0x75b3887b invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75d8a568 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x75f534bb scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x75f7a1f2 snd_pcm_hw_param_last +EXPORT_SYMBOL vmlinux 0x75f869b8 register_sound_special_device +EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb +EXPORT_SYMBOL vmlinux 0x7608112a snd_ctl_find_numid +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7616476d blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x764952d9 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x765f75fb pgprot_user +EXPORT_SYMBOL vmlinux 0x7667e881 generic_fillattr +EXPORT_SYMBOL vmlinux 0x76694591 omap_mcbsp_get_max_tx_threshold +EXPORT_SYMBOL vmlinux 0x767c5210 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x76881360 leds_event +EXPORT_SYMBOL vmlinux 0x76b571a9 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x76bc92f7 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x770d5e09 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x770f9e8e mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x778388c9 journal_flush +EXPORT_SYMBOL vmlinux 0x77aa6fc2 keyring_search +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e7ba43 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f49dd9 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x782bf40b filemap_flush +EXPORT_SYMBOL vmlinux 0x7830a3ac vfs_read +EXPORT_SYMBOL vmlinux 0x78451e2f submit_bio +EXPORT_SYMBOL vmlinux 0x7845a149 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x7854398b scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x785d9ac0 sk_dst_check +EXPORT_SYMBOL vmlinux 0x78614e1b input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x78651949 snd_dma_reserve_buf +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x78ae312c kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x78c985a3 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x78d14391 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x78d2aa1c grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x78fdb6d0 snd_ctl_boolean_mono_info +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x7947a565 cpu_cache +EXPORT_SYMBOL vmlinux 0x796a17cf tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x797bd5b4 dentry_unhash +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b001bf unlock_buffer +EXPORT_SYMBOL vmlinux 0x79cca79d loop_register_transfer +EXPORT_SYMBOL vmlinux 0x79db596f neigh_parms_release +EXPORT_SYMBOL vmlinux 0x7a05298d blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x7a0d666c skb_trim +EXPORT_SYMBOL vmlinux 0x7a14ca24 simple_write_begin +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a2fbf91 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a49f667 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x7a4ddebf cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x7a5acdd8 tty_vhangup +EXPORT_SYMBOL vmlinux 0x7a66b713 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x7a697ac1 scsi_init_io +EXPORT_SYMBOL vmlinux 0x7a6db324 snd_power_wait +EXPORT_SYMBOL vmlinux 0x7a815d6c __scm_destroy +EXPORT_SYMBOL vmlinux 0x7a83b191 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x7a871136 dquot_enable +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a92c340 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x7a9cebff mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x7aa74043 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7ad32ea4 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x7ae4102a vfs_readv +EXPORT_SYMBOL vmlinux 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL vmlinux 0x7b032b40 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x7b1912e5 snd_card_register +EXPORT_SYMBOL vmlinux 0x7b296345 vmtruncate +EXPORT_SYMBOL vmlinux 0x7b2ccf15 tty_port_put +EXPORT_SYMBOL vmlinux 0x7b3c393d path_put +EXPORT_SYMBOL vmlinux 0x7b429309 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x7b53201b blk_rq_init +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b7636c4 key_task_permission +EXPORT_SYMBOL vmlinux 0x7b8f89fc inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7bb85dc4 md_integrity_register +EXPORT_SYMBOL vmlinux 0x7bcc5a3a fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be1b30d gpmc_prefetch_status +EXPORT_SYMBOL vmlinux 0x7c061232 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x7c12e154 input_release_device +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7c99ca4b devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x7ca7aac8 bio_alloc +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7cc589ab xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x7d059b69 vfs_unlink +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d3944e0 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x7d43484d elv_queue_empty +EXPORT_SYMBOL vmlinux 0x7d4a7123 single_release +EXPORT_SYMBOL vmlinux 0x7d51c991 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x7d649be7 contig_page_data +EXPORT_SYMBOL vmlinux 0x7d83353f simple_setattr +EXPORT_SYMBOL vmlinux 0x7d9cc76e xfrm_register_km +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de43599 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x7e138979 input_grab_device +EXPORT_SYMBOL vmlinux 0x7e185166 devm_free_irq +EXPORT_SYMBOL vmlinux 0x7e329c27 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e511fad bio_unmap_user +EXPORT_SYMBOL vmlinux 0x7e577d85 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x7e65f004 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x7e70d78c km_report +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ea72ba2 dma_pool_create +EXPORT_SYMBOL vmlinux 0x7ec44bb8 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x7ed08943 serio_rescan +EXPORT_SYMBOL vmlinux 0x7ee7005d cad_pid +EXPORT_SYMBOL vmlinux 0x7f227858 blkdev_put +EXPORT_SYMBOL vmlinux 0x7f248fa3 __napi_complete +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f33a63b omap_get_dma_chain_dst_pos +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7f699acf neigh_table_init +EXPORT_SYMBOL vmlinux 0x7f69cf34 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x7f745424 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x7f9bbdb4 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x7fde3c50 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x8021b4e3 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x8046be77 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x804fc9ca omap_mcbsp_free +EXPORT_SYMBOL vmlinux 0x805e2941 simple_getattr +EXPORT_SYMBOL vmlinux 0x8062285b clk_get_parent +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x80706598 scsi_host_put +EXPORT_SYMBOL vmlinux 0x807b0f3c netif_carrier_off +EXPORT_SYMBOL vmlinux 0x807b2a32 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x80b8512a uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x80c388e7 simple_setsize +EXPORT_SYMBOL vmlinux 0x80d81308 omap_vrfb_release_ctx +EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x80de231a idr_remove +EXPORT_SYMBOL vmlinux 0x80e87e19 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x80fbbac2 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x81003ee2 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x81206117 bio_map_kern +EXPORT_SYMBOL vmlinux 0x813ed040 idr_remove_all +EXPORT_SYMBOL vmlinux 0x814abf6f nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814f5826 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f14c9 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x81ae017a dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81e787c1 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x81e8e5e4 dpi_set_timings +EXPORT_SYMBOL vmlinux 0x81ea99c8 snd_ctl_find_id +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820a892f inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x820c4c1f vfs_writev +EXPORT_SYMBOL vmlinux 0x82129cb9 clk_set_rate +EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x8234cc6e omap_dss_put_device +EXPORT_SYMBOL vmlinux 0x823d3abb nobh_write_end +EXPORT_SYMBOL vmlinux 0x824a4367 tmio_core_mmc_pwr +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8262f64b tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x82740f65 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82aea8c4 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x82b05b7c console_start +EXPORT_SYMBOL vmlinux 0x82c3ee84 kill_pgrp +EXPORT_SYMBOL vmlinux 0x82ca50c6 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x82ca6e4f snd_ctl_register_ioctl +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82edda15 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x82f0c27f flush_signals +EXPORT_SYMBOL vmlinux 0x82f9a22e textsearch_register +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x8345986a filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x83680340 inet_frags_init +EXPORT_SYMBOL vmlinux 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL vmlinux 0x8371daff sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x837ced2e sock_create +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x8397dc51 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x83f7a775 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x8402fcda register_filesystem +EXPORT_SYMBOL vmlinux 0x8412b4d0 phy_device_register +EXPORT_SYMBOL vmlinux 0x844f3bb3 mmc_release_host +EXPORT_SYMBOL vmlinux 0x848022cc kill_block_super +EXPORT_SYMBOL vmlinux 0x84825a98 mmc_resume_host +EXPORT_SYMBOL vmlinux 0x8494cdb7 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x849c832a bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84bbb808 snd_unregister_oss_device +EXPORT_SYMBOL vmlinux 0x84bfe681 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x84c485a6 simple_map_init +EXPORT_SYMBOL vmlinux 0x84d246a4 snd_ctl_remove +EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x851b52d9 udp_disconnect +EXPORT_SYMBOL vmlinux 0x85385efb __scsi_add_device +EXPORT_SYMBOL vmlinux 0x8541d494 display_device_unregister +EXPORT_SYMBOL vmlinux 0x85529d4d vfs_write +EXPORT_SYMBOL vmlinux 0x855816b3 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8570977d tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x85765fee omap_enable_dma_irq +EXPORT_SYMBOL vmlinux 0x85799791 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x857dba4a no_llseek +EXPORT_SYMBOL vmlinux 0x85873037 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x85880fd4 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x859c44a3 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x859c7a6d unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x85a0297d xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x85b3f81b poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x85bf5850 blk_insert_request +EXPORT_SYMBOL vmlinux 0x85c32540 xrlim_allow +EXPORT_SYMBOL vmlinux 0x85c8254b inet6_bind +EXPORT_SYMBOL vmlinux 0x85d9d654 bioset_create +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85eac048 dev_addr_del +EXPORT_SYMBOL vmlinux 0x86452401 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8671d0c4 snd_pcm_mmap_data +EXPORT_SYMBOL vmlinux 0x867ba351 ether_setup +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86ca2384 fb_get_mode +EXPORT_SYMBOL vmlinux 0x86eed4ce dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x86f0cd51 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x86f7c1cb put_page +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870268bb datagram_poll +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x875c8c25 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL vmlinux 0x8779a966 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x8784e195 bio_add_page +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878d47de tcp_splice_read +EXPORT_SYMBOL vmlinux 0x87c602f3 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new +EXPORT_SYMBOL vmlinux 0x87e88221 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88159a64 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x88215005 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x8838ffe6 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x884ac196 generic_write_end +EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait +EXPORT_SYMBOL vmlinux 0x88beaeeb cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x88fa02f4 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x8904cf79 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x89662af2 clk_get +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897f16f4 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x898c5aff xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x898ebcb0 dentry_open +EXPORT_SYMBOL vmlinux 0x899d73d9 aio_put_req +EXPORT_SYMBOL vmlinux 0x89a3c4f4 omap_get_dma_chain_index +EXPORT_SYMBOL vmlinux 0x89aada57 __netif_schedule +EXPORT_SYMBOL vmlinux 0x89b87067 key_unlink +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89d81503 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x89f051f2 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x8a1c96fd dquot_initialize +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a79b0b6 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a80c5a6 snd_pcm_lib_read +EXPORT_SYMBOL vmlinux 0x8a8b7cd0 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aaa5ea4 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x8b0aa8e3 input_open_device +EXPORT_SYMBOL vmlinux 0x8b106f08 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x8b35a321 amba_release_regions +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b81c866 give_up_console +EXPORT_SYMBOL vmlinux 0x8bb65a17 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x8bb971d2 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x8bd2f9a6 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8beee122 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x8c0362bb snd_pcm_hw_constraint_step +EXPORT_SYMBOL vmlinux 0x8c2466a9 simple_release_fs +EXPORT_SYMBOL vmlinux 0x8c4d6523 omap_dma_chain_a_transfer +EXPORT_SYMBOL vmlinux 0x8c4fb87a scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x8c5e92ed register_quota_format +EXPORT_SYMBOL vmlinux 0x8c6a20e5 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x8caeba96 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x8cc8c601 neigh_destroy +EXPORT_SYMBOL vmlinux 0x8ccda6f2 load_nls_default +EXPORT_SYMBOL vmlinux 0x8cd8c339 omap_free_dma +EXPORT_SYMBOL vmlinux 0x8cf51d15 up +EXPORT_SYMBOL vmlinux 0x8d0771ff lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x8d0bf75c i2c_transfer +EXPORT_SYMBOL vmlinux 0x8d496e07 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5e92a3 bio_clone +EXPORT_SYMBOL vmlinux 0x8d6576b5 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d81363c blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x8dcec9a6 mpage_writepage +EXPORT_SYMBOL vmlinux 0x8dee7314 nand_default_bbt +EXPORT_SYMBOL vmlinux 0x8df1c13a kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL vmlinux 0x8dfacf3d blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e0c77d7 sk_alloc +EXPORT_SYMBOL vmlinux 0x8e1ccc5a generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x8e3261b5 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e877863 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x8e93ff3c ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x8ea5ac3a tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x8ead6769 xfrm_input +EXPORT_SYMBOL vmlinux 0x8eae5eaa journal_init_inode +EXPORT_SYMBOL vmlinux 0x8eb5a5a2 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ee90693 snd_card_create +EXPORT_SYMBOL vmlinux 0x8f11b6a4 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x8f22c9d4 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f56ed01 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x8f595b11 snd_major +EXPORT_SYMBOL vmlinux 0x8f678b07 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8fa4130a omap_set_dma_callback +EXPORT_SYMBOL vmlinux 0x8fbbde16 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x8fc27981 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9045551b vfs_follow_link +EXPORT_SYMBOL vmlinux 0x905986ad dquot_destroy +EXPORT_SYMBOL vmlinux 0x90691839 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90d7312a blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x90ed14f3 input_register_handler +EXPORT_SYMBOL vmlinux 0x910bea56 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x910fd266 __brelse +EXPORT_SYMBOL vmlinux 0x9112ef6f kset_register +EXPORT_SYMBOL vmlinux 0x912363a8 phy_detach +EXPORT_SYMBOL vmlinux 0x91313674 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x91343338 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x91463775 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x916ebcd8 snd_card_set_id +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x91a0c81b skb_unlink +EXPORT_SYMBOL vmlinux 0x91cc4ffe f_setown +EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x921c89ef i2c_del_driver +EXPORT_SYMBOL vmlinux 0x9231bb2e vfs_create +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923f7115 d_alloc_name +EXPORT_SYMBOL vmlinux 0x926ec73d blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x9273e7bd block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x929eecac __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x92ed7f31 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x93033c55 deny_write_access +EXPORT_SYMBOL vmlinux 0x9304a874 clk_enable +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930f3be4 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x9338bb17 seq_lseek +EXPORT_SYMBOL vmlinux 0x93773c10 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x93a52ce0 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a9dc20 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x93bc4ed6 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x93bfbc23 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x93ca51f1 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x93e690fd omap_mcbsp_recv_word +EXPORT_SYMBOL vmlinux 0x93faf401 input_close_device +EXPORT_SYMBOL vmlinux 0x93fbdb3c ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9426e1ea lock_rename +EXPORT_SYMBOL vmlinux 0x9447bf2a sk_release_kernel +EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a0b956 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x94a7b5a3 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x94ac95fe pskb_copy +EXPORT_SYMBOL vmlinux 0x94af632e complete_all +EXPORT_SYMBOL vmlinux 0x94c19222 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94df1865 arp_create +EXPORT_SYMBOL vmlinux 0x951e1b76 security_path_unlink +EXPORT_SYMBOL vmlinux 0x952d4aa0 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x953b8bbc __dquot_free_space +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x958d8afe jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x95cd3b2e may_umount +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x960a9e84 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x9611eb74 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x96263a68 md_error +EXPORT_SYMBOL vmlinux 0x9629d4f1 md_register_thread +EXPORT_SYMBOL vmlinux 0x962a2ed9 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x962ade1a get_user_pages +EXPORT_SYMBOL vmlinux 0x96434c8c kset_unregister +EXPORT_SYMBOL vmlinux 0x964aca2a __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x964faf30 get_gendisk +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x968d5899 vfs_symlink +EXPORT_SYMBOL vmlinux 0x96b39b6e omap_start_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0x96b3aeb5 dquot_acquire +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x970992a2 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x970b3a6e tcp_close +EXPORT_SYMBOL vmlinux 0x971d0a15 netif_device_detach +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x9738414f snd_card_free_when_closed +EXPORT_SYMBOL vmlinux 0x973d6380 elv_add_request +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976b0907 generic_file_open +EXPORT_SYMBOL vmlinux 0x9771a783 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x9796a5b1 current_fs_time +EXPORT_SYMBOL vmlinux 0x97f31e6a qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x9805dad3 vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x980cb1f7 snd_register_oss_device +EXPORT_SYMBOL vmlinux 0x982ce16c jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x983bae7e ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x9841522e freeze_super +EXPORT_SYMBOL vmlinux 0x9855754b clk_add_alias +EXPORT_SYMBOL vmlinux 0x9857f319 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9898df81 netlink_ack +EXPORT_SYMBOL vmlinux 0x9899233a commit_creds +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98a16391 pid_task +EXPORT_SYMBOL vmlinux 0x98c2fc62 revert_creds +EXPORT_SYMBOL vmlinux 0x98c9f2a1 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x98e6c4e4 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x98fbbeb3 input_register_device +EXPORT_SYMBOL vmlinux 0x98fe097a invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x98fe51e1 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x992229e3 request_key +EXPORT_SYMBOL vmlinux 0x99228e80 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x995add68 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x996cf199 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x998654ef module_layout +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999b5807 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb +EXPORT_SYMBOL vmlinux 0x999c97ec save_mount_options +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a2c284 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a14f219 is_bad_inode +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2305df posix_test_lock +EXPORT_SYMBOL vmlinux 0x9a421f77 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x9a68c197 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x9aab0ff3 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x9ab38c27 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x9abcc5e6 d_delete +EXPORT_SYMBOL vmlinux 0x9ada2714 scsi_host_get +EXPORT_SYMBOL vmlinux 0x9aec1bbf do_truncate +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b520f86 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b7146d0 __getblk +EXPORT_SYMBOL vmlinux 0x9b737400 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x9b7fb99d gpmc_prefetch_reset +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bad403d nlmsg_notify +EXPORT_SYMBOL vmlinux 0x9baf27ac down_read_trylock +EXPORT_SYMBOL vmlinux 0x9bb16089 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x9bcc1cc8 nla_append +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bd27e65 map_destroy +EXPORT_SYMBOL vmlinux 0x9c00f6a5 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c1f46d7 netif_device_attach +EXPORT_SYMBOL vmlinux 0x9c3e0b7b snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9c668cde journal_load +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c746255 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x9c8eabd3 key_link +EXPORT_SYMBOL vmlinux 0x9c9c4b62 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x9ca01a32 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x9ca097cb __put_cred +EXPORT_SYMBOL vmlinux 0x9ca806b2 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x9cae8b91 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cbbc0f9 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x9cbf8cfd __neigh_event_send +EXPORT_SYMBOL vmlinux 0x9cd60539 sg_free_table +EXPORT_SYMBOL vmlinux 0x9cdc1f84 fasync_helper +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d019f0a snd_pcm_kernel_ioctl +EXPORT_SYMBOL vmlinux 0x9d130ab0 ___dma_page_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x9d1de227 vfs_llseek +EXPORT_SYMBOL vmlinux 0x9d382acd phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d765a80 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x9d9905a1 omapdss_default_get_resolution +EXPORT_SYMBOL vmlinux 0x9df061d6 security_path_link +EXPORT_SYMBOL vmlinux 0x9df6c0de generic_readlink +EXPORT_SYMBOL vmlinux 0x9e0cb84d scsi_print_result +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e3fda2e find_get_page +EXPORT_SYMBOL vmlinux 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL vmlinux 0x9e71dddd bio_put +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9eb13baf serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x9ec366df blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x9ec4603f netlink_dump_start +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9ee1ac91 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x9ee8401f dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f0815cf bio_pair_release +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f2ea373 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x9f41d31f clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x9f43d4c8 netdev_set_master +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f48f3bc __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0x9f4ef5cd dev_change_flags +EXPORT_SYMBOL vmlinux 0x9f4f0b34 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x9f53d6ee dma_mmap_writecombine +EXPORT_SYMBOL vmlinux 0x9f7b8d2d drop_super +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get +EXPORT_SYMBOL vmlinux 0x9fb378ee mdiobus_write +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fdddaae pagevec_lookup +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe8aa34 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x9ff1eac2 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xa00c78e2 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xa01496b9 register_con_driver +EXPORT_SYMBOL vmlinux 0xa014da01 omapdss_sdi_display_enable +EXPORT_SYMBOL vmlinux 0xa015a2e0 find_inode_number +EXPORT_SYMBOL vmlinux 0xa0257bd8 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa053aa3a dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa0600ede register_netdev +EXPORT_SYMBOL vmlinux 0xa0790dfb dm_get_device +EXPORT_SYMBOL vmlinux 0xa099c3e6 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xa09a3592 snd_pcm_hw_refine +EXPORT_SYMBOL vmlinux 0xa09c4179 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b31d56 scsi_add_device +EXPORT_SYMBOL vmlinux 0xa0bd1414 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0fade29 del_timer +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa15cc4e1 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xa185c10d tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa19d2cb1 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c8a26b mii_check_link +EXPORT_SYMBOL vmlinux 0xa1f43ae1 sock_no_getname +EXPORT_SYMBOL vmlinux 0xa201b5ac framebuffer_release +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa25c9143 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xa25fb0d4 key_type_keyring +EXPORT_SYMBOL vmlinux 0xa26d1822 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xa275418b scsi_scan_host +EXPORT_SYMBOL vmlinux 0xa27a3075 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xa29458ba __register_chrdev +EXPORT_SYMBOL vmlinux 0xa297cc7c tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xa2a51fa3 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2beecd6 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xa2f2b33c phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xa31881cb skb_pad +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa37ddb06 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xa3b960d4 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xa3cbaa95 mmc_request_done +EXPORT_SYMBOL vmlinux 0xa3e1b510 follow_pfn +EXPORT_SYMBOL vmlinux 0xa406946b napi_reuse_skb +EXPORT_SYMBOL vmlinux 0xa4158b42 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xa4183f8a ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xa4220181 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xa42e31e0 tty_free_termios +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa43fa621 aio_complete +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa449f9c5 udp_poll +EXPORT_SYMBOL vmlinux 0xa45be686 journal_check_available_features +EXPORT_SYMBOL vmlinux 0xa4610bc6 omap_rev +EXPORT_SYMBOL vmlinux 0xa46b798d nf_log_unregister +EXPORT_SYMBOL vmlinux 0xa48f5b09 omap_dma_set_global_params +EXPORT_SYMBOL vmlinux 0xa4b42c55 omap_set_dma_priority +EXPORT_SYMBOL vmlinux 0xa4c29461 omap_st_is_enabled +EXPORT_SYMBOL vmlinux 0xa4c53418 mnt_pin +EXPORT_SYMBOL vmlinux 0xa52ea883 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xa54f95b1 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5bcd20e mmc_free_host +EXPORT_SYMBOL vmlinux 0xa5c3f2d7 iget_failed +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5f7cfdc bio_integrity_split +EXPORT_SYMBOL vmlinux 0xa5fa4698 dev_get_flags +EXPORT_SYMBOL vmlinux 0xa608ff18 omap_dss_unregister_driver +EXPORT_SYMBOL vmlinux 0xa612a87c bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL vmlinux 0xa61b1d53 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xa61e4362 omap_request_dma +EXPORT_SYMBOL vmlinux 0xa623099a mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa646bcd0 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL vmlinux 0xa65ed979 kernel_accept +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6c543a4 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa706bd07 kernel_read +EXPORT_SYMBOL vmlinux 0xa718820c seq_open_private +EXPORT_SYMBOL vmlinux 0xa74f2501 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xa74fec8d ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xa75aedd9 get_disk +EXPORT_SYMBOL vmlinux 0xa774965b bio_init +EXPORT_SYMBOL vmlinux 0xa7a1bc57 unload_nls +EXPORT_SYMBOL vmlinux 0xa7a52621 release_sock +EXPORT_SYMBOL vmlinux 0xa7d71e05 skb_tx_hash +EXPORT_SYMBOL vmlinux 0xa81c44ff snd_timer_stop +EXPORT_SYMBOL vmlinux 0xa82a36eb bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xa86fe6bd i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xa870ebe6 may_umount_tree +EXPORT_SYMBOL vmlinux 0xa8a03efe lock_sock_nested +EXPORT_SYMBOL vmlinux 0xa8b5c4d2 audit_log_format +EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xa8e6b32b blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9100e5e devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa911cb11 simple_transaction_read +EXPORT_SYMBOL vmlinux 0xa928f5ba blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xa92cc323 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xa950a01a lock_may_read +EXPORT_SYMBOL vmlinux 0xa95394d8 inode_init_once +EXPORT_SYMBOL vmlinux 0xa95a7076 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xa95bed7a clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xa964dd13 gpmc_cs_request +EXPORT_SYMBOL vmlinux 0xa96d8e86 submit_bh +EXPORT_SYMBOL vmlinux 0xa97240a0 __lock_buffer +EXPORT_SYMBOL vmlinux 0xa9769eca security_task_getsecid +EXPORT_SYMBOL vmlinux 0xa9fa2ef2 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xaa231893 tc6393xb_lcd_set_power +EXPORT_SYMBOL vmlinux 0xaa282d77 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xaa5927f9 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xaa6b089a tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xaa808e5a test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa94c694 __init_rwsem +EXPORT_SYMBOL vmlinux 0xaab7224d bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xaada1e15 dev_driver_string +EXPORT_SYMBOL vmlinux 0xaafbe8f5 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab0da793 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xab4049d1 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xab455eb0 up_read +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab93688f elv_register_queue +EXPORT_SYMBOL vmlinux 0xaba34281 dpi_check_timings +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd6d436 snd_seq_root +EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac38f606 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xac5f0a84 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits +EXPORT_SYMBOL vmlinux 0xac6311a5 input_register_handle +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6e67b5 skb_checksum +EXPORT_SYMBOL vmlinux 0xac715a89 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xac799074 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xac7d846f abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xacc08235 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacea53f3 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf65f3b blk_sync_queue +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad25bb20 init_timer_key +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad5447bb dm_unregister_target +EXPORT_SYMBOL vmlinux 0xad7018e8 snd_device_new +EXPORT_SYMBOL vmlinux 0xad90f913 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xada0ee0b mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb3d81e up_write +EXPORT_SYMBOL vmlinux 0xadc87873 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae0882f2 omap_mcbsp_request +EXPORT_SYMBOL vmlinux 0xae361c56 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xae567b6d rwsem_is_locked +EXPORT_SYMBOL vmlinux 0xae6d4251 fb_blank +EXPORT_SYMBOL vmlinux 0xae8e8dc4 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xaec0da5f vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaed66b9d scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xaeecdbf8 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xaef06bd6 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xaf0d98f0 phy_driver_register +EXPORT_SYMBOL vmlinux 0xaf0de75b tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xaf1a51df udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf46e5cc block_write_end +EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality +EXPORT_SYMBOL vmlinux 0xaf52c451 genphy_update_link +EXPORT_SYMBOL vmlinux 0xaf572f62 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf86784b sget +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xaff6a72c simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xb0498f5a put_io_context +EXPORT_SYMBOL vmlinux 0xb05aacd5 block_sync_page +EXPORT_SYMBOL vmlinux 0xb0654874 write_inode_now +EXPORT_SYMBOL vmlinux 0xb06b641c netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xb0780f30 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xb08287f1 unlock_super +EXPORT_SYMBOL vmlinux 0xb0971a38 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xb0a9b5b2 snd_card_disconnect +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d9ceaf __scm_send +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ffe68d xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xb11f5897 request_key_async +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb15a3ac4 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xb17b2c30 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xb18e6948 omap_dss_pal_timings +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1b22911 down_write +EXPORT_SYMBOL vmlinux 0xb1b40992 names_cachep +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1d37369 dev_uc_init +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb254148d blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xb25b7356 fd_install +EXPORT_SYMBOL vmlinux 0xb260fb02 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26ef287 dm_table_get_md +EXPORT_SYMBOL vmlinux 0xb27e62a7 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL vmlinux 0xb28f1c92 omap_mcbsp_stop +EXPORT_SYMBOL vmlinux 0xb294b007 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xb2b11c45 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xb2d846b3 clk_unregister +EXPORT_SYMBOL vmlinux 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL vmlinux 0xb2f2b056 d_validate +EXPORT_SYMBOL vmlinux 0xb2f89c03 i2c_use_client +EXPORT_SYMBOL vmlinux 0xb34a3ef3 __inet6_hash +EXPORT_SYMBOL vmlinux 0xb34a8347 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xb35499f3 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xb35f4318 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb388bce6 blk_peek_request +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc +EXPORT_SYMBOL vmlinux 0xb3e4d2e0 page_readlink +EXPORT_SYMBOL vmlinux 0xb3efc72d down +EXPORT_SYMBOL vmlinux 0xb3fa90c2 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0xb401f584 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xb4025378 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xb41f89f3 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb43599c9 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xb454d10a ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb499bbda wireless_send_event +EXPORT_SYMBOL vmlinux 0xb4ae1042 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL vmlinux 0xb4c8f38a omap_dma_chain_status +EXPORT_SYMBOL vmlinux 0xb4efa8e8 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5402ae2 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb545875d mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xb58200a4 new_inode +EXPORT_SYMBOL vmlinux 0xb594e866 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5bb8632 sock_rfree +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5e0ed6b lookup_one_len +EXPORT_SYMBOL vmlinux 0xb620ebd3 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xb6278809 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xb6290666 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0xb6431a93 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xb6749261 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67e1bc7 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6a8adf2 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c62339 phy_print_status +EXPORT_SYMBOL vmlinux 0xb6ce2b85 del_gendisk +EXPORT_SYMBOL vmlinux 0xb717b99e i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xb74c44c9 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xb771ac6c bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xb7741279 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xb77816b6 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xb7b11d22 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2 +EXPORT_SYMBOL vmlinux 0xb7d5210c phy_stop +EXPORT_SYMBOL vmlinux 0xb7ee728e set_bh_page +EXPORT_SYMBOL vmlinux 0xb813d6a9 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find +EXPORT_SYMBOL vmlinux 0xb823b0ff ps2_drain +EXPORT_SYMBOL vmlinux 0xb837be93 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85f17c3 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xb8637e3d tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xb8673dd1 free_netdev +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb872f052 snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb898f206 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8b2cc91 inet_shutdown +EXPORT_SYMBOL vmlinux 0xb8c5df05 bh_submit_read +EXPORT_SYMBOL vmlinux 0xb8c8d22a uart_resume_port +EXPORT_SYMBOL vmlinux 0xb8dae947 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xb8f1d109 journal_update_format +EXPORT_SYMBOL vmlinux 0xb908c4aa skb_split +EXPORT_SYMBOL vmlinux 0xb9273dd3 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xb939829f generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xb952a230 cdev_init +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL vmlinux 0xb97ac634 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9a8f03b omap_stop_dma +EXPORT_SYMBOL vmlinux 0xb9aa56ab simple_rename +EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2 +EXPORT_SYMBOL vmlinux 0xb9b23e4e phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xb9c3ab5b snd_timer_continue +EXPORT_SYMBOL vmlinux 0xb9d5ced7 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xb9e38683 omap_mcbsp_xmit_word +EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up +EXPORT_SYMBOL vmlinux 0xba2c22d6 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xba351884 snd_pcm_period_elapsed +EXPORT_SYMBOL vmlinux 0xba36c3e9 unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0xba454159 omap_dss_get_device +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba925029 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbac11860 nf_log_packet +EXPORT_SYMBOL vmlinux 0xbac483b4 snd_timer_open +EXPORT_SYMBOL vmlinux 0xbb0b022c vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xbb158516 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb386989 sock_update_classid +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb618441 skb_clone +EXPORT_SYMBOL vmlinux 0xbb6cfc86 bio_endio +EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1 +EXPORT_SYMBOL vmlinux 0xbb8ab697 skb_insert +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbcf8d15 block_commit_write +EXPORT_SYMBOL vmlinux 0xbbdb16e1 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xbc02d6fd sock_init_data +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc2e1e5d dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0xbc30e832 unlock_rename +EXPORT_SYMBOL vmlinux 0xbc701ca3 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xbc763cd9 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xbca74e5d scsi_device_put +EXPORT_SYMBOL vmlinux 0xbceaabe9 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xbd17e892 __break_lease +EXPORT_SYMBOL vmlinux 0xbd1eeac9 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xbd25d4c7 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xbd3f7807 bd_release +EXPORT_SYMBOL vmlinux 0xbd475c26 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xbd4f72a0 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xbd5a2793 __devm_request_region +EXPORT_SYMBOL vmlinux 0xbd69e9fd snd_pcm_lib_free_pages +EXPORT_SYMBOL vmlinux 0xbdcbc100 mod_timer +EXPORT_SYMBOL vmlinux 0xbde40d82 d_invalidate +EXPORT_SYMBOL vmlinux 0xbdec0db2 omap_readb +EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdfddb4a audit_log_start +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe5a52d3 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xbe5f2e61 sock_wake_async +EXPORT_SYMBOL vmlinux 0xbe606b17 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe78c606 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xbe91b260 block_read_full_page +EXPORT_SYMBOL vmlinux 0xbebf424f generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xbed3cbec nand_scan_bbt +EXPORT_SYMBOL vmlinux 0xbededb27 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef85208 blk_unplug +EXPORT_SYMBOL vmlinux 0xbf08fa47 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock +EXPORT_SYMBOL vmlinux 0xbf2ee019 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xbf4691b8 dquot_alloc +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8dbcb9 simple_unlink +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb4801c inet_sendmsg +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc0169836 udp_ioctl +EXPORT_SYMBOL vmlinux 0xc027d9fb generic_permission +EXPORT_SYMBOL vmlinux 0xc027f14d skb_gso_segment +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc047bc3f omap_mcbsp_spi_master_recv_word_poll +EXPORT_SYMBOL vmlinux 0xc04a6e9a blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xc0560495 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc06a38fb sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xc07a5ecf udp_sendmsg +EXPORT_SYMBOL vmlinux 0xc0802e6d journal_dirty_data +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc089cf84 set_binfmt +EXPORT_SYMBOL vmlinux 0xc0957553 bdi_destroy +EXPORT_SYMBOL vmlinux 0xc09e8065 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xc0a6a8c5 omap_set_dma_dest_burst_mode +EXPORT_SYMBOL vmlinux 0xc0b0538e tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xc0b6394e netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xc0b6419f dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0xc0cf95f9 omap_vrfb_request_ctx +EXPORT_SYMBOL vmlinux 0xc0e31150 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xc0e88118 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc149588d scsi_get_command +EXPORT_SYMBOL vmlinux 0xc1601a4f _change_bit_le +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc1627aee input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xc177269c scsi_register +EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d0b292 snd_component_add +EXPORT_SYMBOL vmlinux 0xc1fc4511 _test_and_change_bit_le +EXPORT_SYMBOL vmlinux 0xc205cff6 snd_pcm_new +EXPORT_SYMBOL vmlinux 0xc212f841 pipe_unlock +EXPORT_SYMBOL vmlinux 0xc21e4c4f tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xc22da2a0 scsi_put_command +EXPORT_SYMBOL vmlinux 0xc24c6e48 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2702e57 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xc27487dd __bug +EXPORT_SYMBOL vmlinux 0xc2782ed3 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xc28b55d2 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xc2a98494 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xc2b1c1e2 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xc2c7f5c6 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xc2cf6411 snd_timer_notify +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2d91ff2 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc321f1fa tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xc338747c __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc3696d10 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xc37c36e1 omap_writeb +EXPORT_SYMBOL vmlinux 0xc3a15b80 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xc3a6fc97 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xc3c0f659 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL vmlinux 0xc3ca15fa generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d87778 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xc4280422 nla_reserve +EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each +EXPORT_SYMBOL vmlinux 0xc4637516 init_special_inode +EXPORT_SYMBOL vmlinux 0xc4828e34 icmp_send +EXPORT_SYMBOL vmlinux 0xc494fb88 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a0f21b udp_prot +EXPORT_SYMBOL vmlinux 0xc4a4a3ab snd_pcm_suspend_all +EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit +EXPORT_SYMBOL vmlinux 0xc4d4c3ae mmc_card_awake +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e7d0f9 omap_mcbsp_get_dma_op_mode +EXPORT_SYMBOL vmlinux 0xc4f22f8c dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xc4f903de unlock_page +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc50aaeb8 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xc5205877 omap_dss_get_next_device +EXPORT_SYMBOL vmlinux 0xc52da066 omap_set_dma_dest_params +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc54d6d96 kobject_set_name +EXPORT_SYMBOL vmlinux 0xc5713c1f vmap +EXPORT_SYMBOL vmlinux 0xc57745da abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xc601202e __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xc60e8768 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xc6126d60 vm_insert_page +EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xc6a50b96 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xc6c1a4d6 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xc6d533e1 down_read +EXPORT_SYMBOL vmlinux 0xc6d7a34e dquot_commit +EXPORT_SYMBOL vmlinux 0xc6d8a886 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xc6f7d08b __napi_schedule +EXPORT_SYMBOL vmlinux 0xc7002e91 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc72d8b0f dma_sync_wait +EXPORT_SYMBOL vmlinux 0xc7484d53 snd_timer_pause +EXPORT_SYMBOL vmlinux 0xc753caa1 nf_reinject +EXPORT_SYMBOL vmlinux 0xc754eded copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xc7579ba6 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xc76e7cf6 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a8b58b tcp_parse_options +EXPORT_SYMBOL vmlinux 0xc7b8d91b d_lookup +EXPORT_SYMBOL vmlinux 0xc7d2c62d mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xc7d6c004 arp_tbl +EXPORT_SYMBOL vmlinux 0xc7e1647b invalidate_partition +EXPORT_SYMBOL vmlinux 0xc7e905bb tty_register_driver +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7eee87e get_mem_type +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc809318b scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8578dbc netif_napi_add +EXPORT_SYMBOL vmlinux 0xc874be8e netdev_features_change +EXPORT_SYMBOL vmlinux 0xc875b293 free_buffer_head +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc881f58f skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xc89ac142 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8cfa870 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xc8d35f68 kobject_init +EXPORT_SYMBOL vmlinux 0xc8ec6298 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xc90754f7 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xc9142293 omap_dss_ntsc_timings +EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible +EXPORT_SYMBOL vmlinux 0xc9241c9c mdiobus_scan +EXPORT_SYMBOL vmlinux 0xc9450996 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xc94595f0 omap_chip_is +EXPORT_SYMBOL vmlinux 0xc950620c xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xc959cccd generic_file_fsync +EXPORT_SYMBOL vmlinux 0xc95e504c bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xc980ffaa snd_pcm_hw_param_first +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc99f91ae dev_remove_pack +EXPORT_SYMBOL vmlinux 0xc9b45bad tcp_prot +EXPORT_SYMBOL vmlinux 0xc9ee137d nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xca0f69d4 tty_set_operations +EXPORT_SYMBOL vmlinux 0xca10f21c tty_register_device +EXPORT_SYMBOL vmlinux 0xca221d05 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xca423cf1 d_add_ci +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca6ce4a4 follow_up +EXPORT_SYMBOL vmlinux 0xca8f1cb3 add_disk +EXPORT_SYMBOL vmlinux 0xca99f7d0 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xcaaf3f11 unregister_console +EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcaee086c genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xcaf5a5bc dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0xcaf727c7 snd_timer_interrupt +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcb45af08 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb8d79b5 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xcb8e09a9 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xcbcf7b71 dm_table_put +EXPORT_SYMBOL vmlinux 0xcbe579fe tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0xcbee2160 __nla_put +EXPORT_SYMBOL vmlinux 0xcbf29853 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xcc027df6 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xcc14fe19 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xcc24496b vfs_readlink +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc48b1bc get_phy_device +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc52b1fc dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8659ec blk_put_request +EXPORT_SYMBOL vmlinux 0xcc8716be xfrm_state_update +EXPORT_SYMBOL vmlinux 0xcc88d656 register_netdevice +EXPORT_SYMBOL vmlinux 0xcc88fa1c nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xcc9ecabb dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xcca8176e iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xccbc174f devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xccbf56da make_EII_client +EXPORT_SYMBOL vmlinux 0xcccca482 _test_and_clear_bit_le +EXPORT_SYMBOL vmlinux 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL vmlinux 0xcd0cbd3b bdi_unregister +EXPORT_SYMBOL vmlinux 0xcd2d1343 scsi_free_command +EXPORT_SYMBOL vmlinux 0xcd30b95a tmio_core_mmc_clk_div +EXPORT_SYMBOL vmlinux 0xcd430774 get_fs_type +EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcd5ad737 generic_make_request +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcda115ba jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xcda5989f generic_show_options +EXPORT_SYMBOL vmlinux 0xcdb1e5c1 get_write_access +EXPORT_SYMBOL vmlinux 0xcdbcb614 snd_jack_new +EXPORT_SYMBOL vmlinux 0xcdd1b6a4 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xcddd9a51 free_task +EXPORT_SYMBOL vmlinux 0xcde6ec41 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xcdfc5266 omapfb_update_window +EXPORT_SYMBOL vmlinux 0xce09b6d1 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce7143e2 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xce7ed430 dev_mc_del +EXPORT_SYMBOL vmlinux 0xce8cbf6f skb_push +EXPORT_SYMBOL vmlinux 0xced93186 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf1a86f4 simple_link +EXPORT_SYMBOL vmlinux 0xcf2df854 have_submounts +EXPORT_SYMBOL vmlinux 0xcf3bf95e dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xcf4a8cfc genphy_suspend +EXPORT_SYMBOL vmlinux 0xcf5600ca d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xcf5c3c76 mii_nway_restart +EXPORT_SYMBOL vmlinux 0xcfa95adf snd_pcm_new_stream +EXPORT_SYMBOL vmlinux 0xcfb6f0fb __bforget +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfdaf9cf lease_modify +EXPORT_SYMBOL vmlinux 0xd0139134 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd071a2b8 amba_request_regions +EXPORT_SYMBOL vmlinux 0xd0729ac2 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xd08b5dab qdisc_destroy +EXPORT_SYMBOL vmlinux 0xd0a27693 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL vmlinux 0xd0d49a66 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fe2d44 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xd10ae58c snd_pcm_set_sync +EXPORT_SYMBOL vmlinux 0xd1157735 release_and_free_resource +EXPORT_SYMBOL vmlinux 0xd1218ddd dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xd15e353d phy_device_create +EXPORT_SYMBOL vmlinux 0xd19ecbe2 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xd1a08104 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0xd1a88564 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xd1f3f1d3 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xd2385e7a do_SAK +EXPORT_SYMBOL vmlinux 0xd24aba92 log_start_commit +EXPORT_SYMBOL vmlinux 0xd24adfaf bdi_register +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2813b48 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xd285b9c0 kick_iocb +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2baec0d __dquot_transfer +EXPORT_SYMBOL vmlinux 0xd2cc8004 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xd2eddca3 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xd2efd3d7 kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0xd2fe1264 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xd319a99a send_sig +EXPORT_SYMBOL vmlinux 0xd324079a input_get_keycode +EXPORT_SYMBOL vmlinux 0xd329a7f9 mdiobus_register +EXPORT_SYMBOL vmlinux 0xd3340a18 ip_dev_find +EXPORT_SYMBOL vmlinux 0xd3391658 d_genocide +EXPORT_SYMBOL vmlinux 0xd3425c16 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xd34b61bd nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xd34e2f88 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xd353c2c6 register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0xd358229e jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xd3809208 journal_stop +EXPORT_SYMBOL vmlinux 0xd383ce1b netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xd3a5c978 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd3df1c4b lock_super +EXPORT_SYMBOL vmlinux 0xd3f22464 journal_ack_err +EXPORT_SYMBOL vmlinux 0xd415bf75 kill_fasync +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd4348112 load_nls +EXPORT_SYMBOL vmlinux 0xd4454074 locks_init_lock +EXPORT_SYMBOL vmlinux 0xd46356b9 dma_find_channel +EXPORT_SYMBOL vmlinux 0xd480a8e9 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xd482cf15 clear_inode +EXPORT_SYMBOL vmlinux 0xd4c6aa45 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xd4fb4ccf dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xd50021e7 skb_store_bits +EXPORT_SYMBOL vmlinux 0xd503608a sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xd5152710 sg_next +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd56e9485 omap_set_dma_dest_index +EXPORT_SYMBOL vmlinux 0xd588cd1a skb_dequeue +EXPORT_SYMBOL vmlinux 0xd5978315 fb_set_var +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b376b1 km_state_notify +EXPORT_SYMBOL vmlinux 0xd5b63560 sound_class +EXPORT_SYMBOL vmlinux 0xd5f25853 fb_class +EXPORT_SYMBOL vmlinux 0xd6014ee2 d_move +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd65fdabd snd_pcm_open_substream +EXPORT_SYMBOL vmlinux 0xd662eb09 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xd67304f2 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xd67311a4 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xd678f524 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xd67f5aba __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xd688c693 log_wait_commit +EXPORT_SYMBOL vmlinux 0xd694c8f4 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xd69a3ab0 proc_mkdir +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6aa6d82 scsi_execute_req +EXPORT_SYMBOL vmlinux 0xd6c96da7 backlight_device_register +EXPORT_SYMBOL vmlinux 0xd6d2039f blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xd6ea4037 audit_log_end +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7318f13 bdput +EXPORT_SYMBOL vmlinux 0xd734c9c7 d_rehash +EXPORT_SYMBOL vmlinux 0xd76d242e clk_register +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd79f9b3f __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xd7aa7df7 genl_register_ops +EXPORT_SYMBOL vmlinux 0xd7cc303d omap_mcbsp_set_io_type +EXPORT_SYMBOL vmlinux 0xd7dc35d9 inode_setattr +EXPORT_SYMBOL vmlinux 0xd7de8b6c scsi_remove_device +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd84fa07a eth_change_mtu +EXPORT_SYMBOL vmlinux 0xd86baf71 sock_map_fd +EXPORT_SYMBOL vmlinux 0xd8891f8e simple_statfs +EXPORT_SYMBOL vmlinux 0xd8899be4 console_stop +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8b59e93 __pagevec_release +EXPORT_SYMBOL vmlinux 0xd8bdaa6b bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xd8bfe7a7 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xd8c407e6 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f68883 omap_mcbsp_pollread +EXPORT_SYMBOL vmlinux 0xd8f764b0 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xd8fc0fd4 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xd9207d1f sock_sendmsg +EXPORT_SYMBOL vmlinux 0xd9298bde mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd955d2b7 omap_set_dma_dest_data_pack +EXPORT_SYMBOL vmlinux 0xd96c676e fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xd96ff587 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd9aeebcd close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda2bcb44 netif_rx +EXPORT_SYMBOL vmlinux 0xda5ea696 _test_and_set_bit_le +EXPORT_SYMBOL vmlinux 0xda674553 __invalidate_device +EXPORT_SYMBOL vmlinux 0xda7696fe skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xda79c766 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda84a1f7 file_permission +EXPORT_SYMBOL vmlinux 0xda8a5661 snd_ctl_unregister_ioctl +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda93e586 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xdaa01c14 journal_revoke +EXPORT_SYMBOL vmlinux 0xdaad0959 inet_select_addr +EXPORT_SYMBOL vmlinux 0xdac1d544 __dst_free +EXPORT_SYMBOL vmlinux 0xdad55d29 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xdadac322 serio_open +EXPORT_SYMBOL vmlinux 0xdae18128 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xdae6bad4 set_anon_super +EXPORT_SYMBOL vmlinux 0xdb032515 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xdb1cd620 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xdb2178c7 __sg_free_table +EXPORT_SYMBOL vmlinux 0xdb4292e4 omap_set_dma_params +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb8d1156 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xdbbf206c __omap_get_config +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0a752e __lock_page +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4c20df dm_register_target +EXPORT_SYMBOL vmlinux 0xdc743e29 omap_dss_get_overlay_manager +EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb2fcf7 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xdcb421a4 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xdcd05c87 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xdd0971a5 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd47b8e0 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xdd51141c tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd7b305b scsi_scan_target +EXPORT_SYMBOL vmlinux 0xddaaed69 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xddb3a22f htc_egpio_get_wakeup_irq +EXPORT_SYMBOL vmlinux 0xdddcbd99 empty_zero_page +EXPORT_SYMBOL vmlinux 0xdddd014c simple_dir_operations +EXPORT_SYMBOL vmlinux 0xde0b1675 kill_anon_super +EXPORT_SYMBOL vmlinux 0xde15c042 omap_set_dma_src_index +EXPORT_SYMBOL vmlinux 0xde2b0381 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xde3dafe7 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xde46d4b8 sock_i_ino +EXPORT_SYMBOL vmlinux 0xde692d94 omap_get_dma_chain_src_pos +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde88bbeb netpoll_send_skb +EXPORT_SYMBOL vmlinux 0xde9143b1 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdead2355 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xdf0490b1 snd_pcm_hw_rule_add +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf5a7491 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6ea200 simple_rmdir +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf963ba5 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xdf9b9db2 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xdfac44a5 get_super +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfd91ce9 omap_type +EXPORT_SYMBOL vmlinux 0xe0029ea0 serio_reconnect +EXPORT_SYMBOL vmlinux 0xe01e3e91 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0842c5f __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xe08a4aee journal_set_features +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0ca1b9e set_bdi_congested +EXPORT_SYMBOL vmlinux 0xe0d367f4 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xe0fd40c0 km_policy_expired +EXPORT_SYMBOL vmlinux 0xe106154f omap_vram_get_info +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11a4d67 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe1442f37 prepare_creds +EXPORT_SYMBOL vmlinux 0xe158168b free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xe16a90e2 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock +EXPORT_SYMBOL vmlinux 0xe174a0d4 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1794a74 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xe18b821b journal_clear_err +EXPORT_SYMBOL vmlinux 0xe1e1705f proc_symlink +EXPORT_SYMBOL vmlinux 0xe1e4ae67 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xe20a0b96 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xe20c9214 snd_iprintf +EXPORT_SYMBOL vmlinux 0xe229be03 find_lock_page +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2531653 inet_frag_find +EXPORT_SYMBOL vmlinux 0xe261a760 snd_ctl_notify +EXPORT_SYMBOL vmlinux 0xe26bed7b da903x_query_status +EXPORT_SYMBOL vmlinux 0xe28214c3 register_sound_mixer +EXPORT_SYMBOL vmlinux 0xe2b52e58 kern_path +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2da4b7f dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe2fc332b ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xe320a768 bio_map_user +EXPORT_SYMBOL vmlinux 0xe327a100 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xe33f8965 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xe36aa275 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xe37d10ae omap_dispc_unregister_isr +EXPORT_SYMBOL vmlinux 0xe384c0fa tcp_shutdown +EXPORT_SYMBOL vmlinux 0xe3bb48f6 init_buffer +EXPORT_SYMBOL vmlinux 0xe3c3040a kill_pid +EXPORT_SYMBOL vmlinux 0xe3fea976 display_device_register +EXPORT_SYMBOL vmlinux 0xe4067241 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0xe4924f3d tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xe4a75725 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +EXPORT_SYMBOL vmlinux 0xe4f629d7 cdev_add +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52dd6ae tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xe53ed6bc snd_jack_set_parent +EXPORT_SYMBOL vmlinux 0xe5445af6 omap_get_dma_dst_pos +EXPORT_SYMBOL vmlinux 0xe54f8161 udp_proc_register +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe560a718 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL vmlinux 0xe56fc931 neigh_update +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5796f2c bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5bcdd76 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xe5c5595c __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d454e8 noop_qdisc +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6131722 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL vmlinux 0xe647c686 gpmc_prefetch_enable +EXPORT_SYMBOL vmlinux 0xe6551ed2 sock_register +EXPORT_SYMBOL vmlinux 0xe6744a89 omap_clear_dma +EXPORT_SYMBOL vmlinux 0xe6825091 vfs_readdir +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a2b2c2 dma_alloc_writecombine +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6c7d411 bio_free +EXPORT_SYMBOL vmlinux 0xe6cc3b60 clk_get_rate +EXPORT_SYMBOL vmlinux 0xe6d1158b scsi_device_resume +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0xe70d571f make_bad_inode +EXPORT_SYMBOL vmlinux 0xe712d2ca blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on +EXPORT_SYMBOL vmlinux 0xe75f3919 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xe775ebdd security_path_truncate +EXPORT_SYMBOL vmlinux 0xe77a8381 blk_make_request +EXPORT_SYMBOL vmlinux 0xe78fc6b6 fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0xe7c2f128 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xe7cb90ef dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0xe7cec7b1 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7ff383e blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xe8043518 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe82743f9 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xe82a5154 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xe847fb13 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xe86a3453 snd_pcm_release_substream +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace +EXPORT_SYMBOL vmlinux 0xe88fe9b6 ps2_init +EXPORT_SYMBOL vmlinux 0xe893ee47 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape +EXPORT_SYMBOL vmlinux 0xe8e93272 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe93040d3 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xe936f336 mdiobus_read +EXPORT_SYMBOL vmlinux 0xe953399d md_write_end +EXPORT_SYMBOL vmlinux 0xe95a7e3c snd_cards +EXPORT_SYMBOL vmlinux 0xe98a87f1 dcache_lock +EXPORT_SYMBOL vmlinux 0xe9944555 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xe9a0a759 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xe9ce8b95 omap_ioremap +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0a8559 mdiobus_free +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea147363 printk +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea3aba8d splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xea3f8651 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xea4d627b xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xea5edbfb __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea88b6b4 backlight_force_update +EXPORT_SYMBOL vmlinux 0xeaa69ae3 serio_interrupt +EXPORT_SYMBOL vmlinux 0xeabb98a6 snd_card_proc_new +EXPORT_SYMBOL vmlinux 0xeac2833e scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xeac931f1 lookup_hash +EXPORT_SYMBOL vmlinux 0xeadbd994 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb1a6dee bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xeb1b120e omap_set_dma_write_mode +EXPORT_SYMBOL vmlinux 0xeb23bd51 dev_mc_add +EXPORT_SYMBOL vmlinux 0xeb369157 mpage_readpages +EXPORT_SYMBOL vmlinux 0xeb3f14b4 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xeb6d56aa security_path_chmod +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeba678e8 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xebc0bf7e scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebe21f72 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xebea7331 sock_no_connect +EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high +EXPORT_SYMBOL vmlinux 0xebfeba4f unregister_con_driver +EXPORT_SYMBOL vmlinux 0xec109fb7 journal_check_used_features +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec29a106 page_put_link +EXPORT_SYMBOL vmlinux 0xec3c2757 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec4f94e3 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xec7a9b1c generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xec8e36f1 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xecb1f38d key_revoke +EXPORT_SYMBOL vmlinux 0xeccf7226 create_mnt_ns +EXPORT_SYMBOL vmlinux 0xecd94958 bdev_read_only +EXPORT_SYMBOL vmlinux 0xed47c25c tcf_hash_create +EXPORT_SYMBOL vmlinux 0xed49fb9b mntput_no_expire +EXPORT_SYMBOL vmlinux 0xed4a6c15 kernel_listen +EXPORT_SYMBOL vmlinux 0xed7100e2 inode_change_ok +EXPORT_SYMBOL vmlinux 0xed824084 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xed8502d6 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xed854dac omap_stop_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedba7064 user_path_at +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xee215dce thaw_process +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee374ff9 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xee4e94fe snd_timer_new +EXPORT_SYMBOL vmlinux 0xee88faea lock_may_write +EXPORT_SYMBOL vmlinux 0xee975681 dst_discard +EXPORT_SYMBOL vmlinux 0xee9a1678 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb2880b ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xeeb48879 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xeebdbad8 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xeed93954 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xeedfd5cf __seq_open_private +EXPORT_SYMBOL vmlinux 0xeefab4b4 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xeefe9dd0 blk_start_queue +EXPORT_SYMBOL vmlinux 0xef0794c6 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xef67cf36 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef745218 seq_read +EXPORT_SYMBOL vmlinux 0xef8b8ab2 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xefb66a95 omap_request_dma_chain +EXPORT_SYMBOL vmlinux 0xefd6cf06 __aeabi_unwind_cpp_pr0 +EXPORT_SYMBOL vmlinux 0xefdd2345 sg_init_one +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe2154c omapdss_dpi_display_enable +EXPORT_SYMBOL vmlinux 0xefe26173 freeze_bdev +EXPORT_SYMBOL vmlinux 0xefec312f omap_get_dma_active_status +EXPORT_SYMBOL vmlinux 0xefffd1c6 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf001716d dcache_readdir +EXPORT_SYMBOL vmlinux 0xf00228d0 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xf018cb60 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xf057ca69 simple_lookup +EXPORT_SYMBOL vmlinux 0xf0705c76 block_prepare_write +EXPORT_SYMBOL vmlinux 0xf07cf3e4 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xf0e45a74 ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0faf657 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf102e766 tty_port_init +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf136c279 add_timer +EXPORT_SYMBOL vmlinux 0xf1536da7 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xf1569a35 __ps2_command +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf176aa2c splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a0b687 kthread_stop +EXPORT_SYMBOL vmlinux 0xf1a3c919 omap_mcbsp_set_tx_threshold +EXPORT_SYMBOL vmlinux 0xf1ac94d3 register_sysrq_key +EXPORT_SYMBOL vmlinux 0xf1b011ec iunique +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f6e6a5 snd_timer_close +EXPORT_SYMBOL vmlinux 0xf1ff7f99 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xf2059687 snd_timer_start +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf21ac8ff snd_timer_global_register +EXPORT_SYMBOL vmlinux 0xf22c8f36 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xf245d0a9 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xf25671d7 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xf25ab97a end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xf261a357 sock_no_poll +EXPORT_SYMBOL vmlinux 0xf26a510f mmc_register_driver +EXPORT_SYMBOL vmlinux 0xf26df746 omap_vram_free +EXPORT_SYMBOL vmlinux 0xf2883470 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xf28e1e3e omap_st_disable +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2ab474b tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xf2ae4ede ppp_input +EXPORT_SYMBOL vmlinux 0xf2c75063 snd_mixer_oss_notify_callback +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3147b17 lookup_bdev +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf32b58a7 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0xf33165de journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf363ce0d inet_getname +EXPORT_SYMBOL vmlinux 0xf365ac79 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xf3698381 dm_put_device +EXPORT_SYMBOL vmlinux 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL vmlinux 0xf389eb02 block_truncate_page +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3a38c77 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xf3a53310 dev_addr_flush +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3e4c235 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xf3eb34b7 abort_creds +EXPORT_SYMBOL vmlinux 0xf3ec969d md_barrier_request +EXPORT_SYMBOL vmlinux 0xf42e57bc register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xf455ee08 write_cache_pages +EXPORT_SYMBOL vmlinux 0xf45e0d1c unregister_netdev +EXPORT_SYMBOL vmlinux 0xf47b8922 skb_make_writable +EXPORT_SYMBOL vmlinux 0xf48cd709 km_new_mapping +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf496b926 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xf49a6cca security_d_instantiate +EXPORT_SYMBOL vmlinux 0xf4dfcfe3 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xf4e279c6 file_fsync +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4fe4a75 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xf504e626 tcp_connect +EXPORT_SYMBOL vmlinux 0xf5164b60 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xf516bcd0 dev_load +EXPORT_SYMBOL vmlinux 0xf535fde4 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xf536e274 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf54ba601 omap_mcbsp_config +EXPORT_SYMBOL vmlinux 0xf54eaa6f inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf58fb355 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c7bfc3 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5e1199c i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xf5e6a44a sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf619484b bdevname +EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf650fa4b set_user_nice +EXPORT_SYMBOL vmlinux 0xf662e850 fsync_bdev +EXPORT_SYMBOL vmlinux 0xf684330f skb_queue_purge +EXPORT_SYMBOL vmlinux 0xf6858225 snd_pcm_suspend +EXPORT_SYMBOL vmlinux 0xf68797e6 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xf6960016 create_proc_entry +EXPORT_SYMBOL vmlinux 0xf6b4fe6d __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d7e5d6 snd_pcm_link_rwlock +EXPORT_SYMBOL vmlinux 0xf6e9c54a neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f3cef6 omap_vrfb_setup +EXPORT_SYMBOL vmlinux 0xf6f93e3d security_path_symlink +EXPORT_SYMBOL vmlinux 0xf72bf7fc tcf_hash_search +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf7647fe6 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL vmlinux 0xf76e19d9 iterate_mounts +EXPORT_SYMBOL vmlinux 0xf77bdcb2 registered_fb +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7909195 alloc_disk +EXPORT_SYMBOL vmlinux 0xf7c61815 get_omap3_evm_rev +EXPORT_SYMBOL vmlinux 0xf7d6d43d md_write_start +EXPORT_SYMBOL vmlinux 0xf7def6b5 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf80ed0ee scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf8211939 generic_write_sync +EXPORT_SYMBOL vmlinux 0xf83806fd flush_old_exec +EXPORT_SYMBOL vmlinux 0xf853bbca omap_vrfb_map_angle +EXPORT_SYMBOL vmlinux 0xf853d178 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xf88c3301 sg_init_table +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8913836 do_munmap +EXPORT_SYMBOL vmlinux 0xf8922071 napi_get_frags +EXPORT_SYMBOL vmlinux 0xf8a44883 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xf8cc949c dquot_release +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf90c155d init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0xf92166eb ps2_end_command +EXPORT_SYMBOL vmlinux 0xf9373c67 touch_atime +EXPORT_SYMBOL vmlinux 0xf94f1aa1 netdev_state_change +EXPORT_SYMBOL vmlinux 0xf96b987f km_query +EXPORT_SYMBOL vmlinux 0xf97716cd generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9a73fc5 sk_wait_data +EXPORT_SYMBOL vmlinux 0xf9c8e73d md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xf9ecd849 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xfa08c713 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xfa1bfd2b irq_stat +EXPORT_SYMBOL vmlinux 0xfa2e8c4c dev_open +EXPORT_SYMBOL vmlinux 0xfa326f44 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xfa3ffc74 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xfa56549b bitmap_unplug +EXPORT_SYMBOL vmlinux 0xfa7694df xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xfa8ea723 vfs_fsync +EXPORT_SYMBOL vmlinux 0xfa981bab elv_abort_queue +EXPORT_SYMBOL vmlinux 0xfab6785d path_is_under +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfafdc288 input_unregister_device +EXPORT_SYMBOL vmlinux 0xfb07297a tc6393xb_lcd_mode +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb16a856 tty_port_close +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfba52470 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xfbc08286 tty_shutdown +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd71775 snd_ctl_remove_id +EXPORT_SYMBOL vmlinux 0xfbdd6d03 misc_deregister +EXPORT_SYMBOL vmlinux 0xfbddeef1 put_disk +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc710596 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xfc9e2364 update_region +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd48a5d unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd0296b0 dquot_resume +EXPORT_SYMBOL vmlinux 0xfd195c62 omap_mcbsp_xmit_buffer +EXPORT_SYMBOL vmlinux 0xfd296ef2 scsi_prep_return +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd7b67ca journal_init_dev +EXPORT_SYMBOL vmlinux 0xfd8184e7 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xfd82604f directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL vmlinux 0xfddc74f2 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xfdee1db5 input_set_capability +EXPORT_SYMBOL vmlinux 0xfdf3d578 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe18cbfa snd_pcm_lib_ioctl +EXPORT_SYMBOL vmlinux 0xfe225273 omap_mcbsp_recv_buffer +EXPORT_SYMBOL vmlinux 0xfe47cf9b snd_device_register +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfea33237 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xfea7d91a register_cdrom +EXPORT_SYMBOL vmlinux 0xfeb94881 register_gifconf +EXPORT_SYMBOL vmlinux 0xfebc698e mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfeec44dd mfd_add_devices +EXPORT_SYMBOL vmlinux 0xfeec98cb __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff0672dd simple_readpage +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff24860b in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xff261096 kobject_get +EXPORT_SYMBOL vmlinux 0xff2b0fa1 omap_mcbsp_get_max_rx_threshold +EXPORT_SYMBOL vmlinux 0xff606567 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff770534 elevator_init +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff99e8da end_page_writeback +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb90418 poll_freewait +EXPORT_SYMBOL vmlinux 0xffc050f0 __free_pages +EXPORT_SYMBOL vmlinux 0xffc26285 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xffd2cf99 omap_dss_get_num_overlay_managers +EXPORT_SYMBOL vmlinux 0xffd41799 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffe56c73 mnt_unpin +EXPORT_SYMBOL vmlinux 0xffe615a5 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xfff0c2ab snd_timer_global_free +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x8153227a crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x02b2904d async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xcd3431da async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xe740b526 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x66a90931 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x72c6065b async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x058e9926 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x0e510b13 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x14412559 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x14927f35 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x12fc8c79 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x39656002 async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x2b7b663d cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x39176df5 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x45eca9f6 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x9e953de9 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xde53d38d cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xe0821ef1 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xe673794e cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x811e858a twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2587ef05 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x66d08769 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7ba912e9 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x85008778 ahci_sht +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9546846e ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xad7e6a88 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xaff75cf4 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb0de1210 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc38f783f ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcc659235 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdd2e6380 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xed04110a ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf50c1201 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3763d9e4 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4cbb9c5e btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x540c7864 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd945ecf6 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf0dfa0ce btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf399a7d0 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf66d8e26 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf8c5be09 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xc4f5cd5f __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xf6cc0092 __max730x_probe +EXPORT_SYMBOL_GPL drivers/hid/hid 0x03fef091 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x12d28699 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x17e9c997 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19e22838 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x24bdc0db hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x29e9918f hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x39b80d5e hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4984f782 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6604e4be hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6d239d72 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x734c04b2 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x73fac785 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7be011f3 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fef4627 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9b6f40cb hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaabeb3ff hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb493ab20 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbf380cd5 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc14e007c hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc2672aa6 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc795cb1b hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd030dc01 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd8c1c587 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xef2cd5be hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfee505ed hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xff3bdd7b hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xb9b44502 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x87652036 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xc68c7bd2 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xfc2f8fa0 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xfdf4f233 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x1a3faeeb lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x419cd44f lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x542e4c43 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe154f89e lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xf35173c0 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x916e7951 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xfea0912a i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x18112478 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x09f666f9 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x132dd7b5 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x14487ba3 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3b088183 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x535d6516 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5792f4bf wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x74f9d685 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8c737e66 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa171d587 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb9bab57f wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc2efbf4e wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc55c6667 wm9713_codec +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1acefa93 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1d5c5859 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x26a84836 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x29216441 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2cad842f gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x300d82fa gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x308c94ae gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3b060b19 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x61757e07 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x63228e0c gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x733c46b3 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x91a19564 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x924c963c gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9c0d14ff gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb9ddf123 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc5f10c00 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd1dc2664 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x3158ab39 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xded22c8b ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xeacc78f8 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x03bd7f09 ir_unregister_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x147355f3 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x293e00da __ir_input_register +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4b9d5e96 ir_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4f7d7957 ir_repeat +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9b65611d ir_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9ce1a3b4 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xb5c3114f ir_input_unregister +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xb77522fd ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xde3fc8d9 get_rc_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf190292d ir_register_map +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x54ec9420 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x0ac3bfd2 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x4c287175 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xac53d8cd tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x151b5126 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xeb89c2bf tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x9a870eb9 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xbf53cf4b tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xe9c34bc9 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x1de8fbd7 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xb49fda0d tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x412cc104 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/lgdt3304 0x56a046ac lgdt3304_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/s921 0x1b96caf4 s921_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x08e38343 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0a4b1ef0 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x155aea7f smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x16a8138b smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x223666c7 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x29d96576 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37e1a9c2 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x54abfe36 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x55d39e25 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x55e811fa sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6391771d sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x76c774a3 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x88162271 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xaef7caf9 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb38076a6 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb6a35214 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xddcd3685 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe46c7493 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xea2b6ded smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x265b2818 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6a92367c cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6ab259a7 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6e2ddda3 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x7358794d cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb87b52ec cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xbdb55c9b cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc69068f0 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xec6ac85e cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfc5993e9 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfff607d9 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0a49eb9a em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0bbc01b3 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x1846532e em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x223d6b62 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x37163b42 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x406ecf9e em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0x149c627c omap_vout_new_format +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0x6e8f579f omap_vout_try_window +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0x9dea2c48 omap_vout_new_crop +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0xd49da048 omap_vout_new_window +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0xfada383c omap_vout_default_crop +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x258bd4bd v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x657e318a v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x751f7751 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xddd559d6 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xe2ce5b13 v4l2_i2c_new_subdev_cfg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf79a94a7 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x03c8f4a9 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x231251c7 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x234719f8 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x6e8b1a27 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x03585628 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0c60f761 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1a1c0079 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x29b967e9 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x533e4709 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x56cebb72 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5f2f7bbf v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x671f9ba7 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x78cc234f v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa9a6ce4a v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd6b820b8 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe10cb7ca v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xeadb7b92 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfb62f01a v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0d9d7dad videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x10bbb3de videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x118572de videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1ec4b260 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1f7bfd61 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x24de0af8 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x38696518 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x47c6de2e videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x51278333 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x56c00e94 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x68179dbe videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x800189c0 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x82630e3f videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x89dba399 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa3310e81 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa62ab6d3 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa9be1a55 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb7674d07 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb83fea21 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcb6adaf8 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcdfc10aa videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe642cd69 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe7af57e2 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf61231ef videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfb91424a videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x2b0710d4 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xd8070e9d videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xf6d30f36 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x42cfe1b0 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x59778838 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x6684ba67 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x05f13d98 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0bb610b1 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x10d03c8e v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3d080911 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4aadf9b6 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x59a0e7ad v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5e45e6d3 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5fd6b0e8 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6e605b52 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9ff4a2b9 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa2af373e v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa3103f05 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa9b45092 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xae95b073 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb36f37cb v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb495eb41 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd709370a v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd7adf997 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0xe1f0785b mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x184bbec4 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x18f6f665 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x332af280 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x63d2b077 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x73a81e8b pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x755f753b pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc022e55d pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc658d525 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcfc1ccbe pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdb7582a1 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe5d9fbb6 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x822e42b8 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xdf12f81a pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x09dd54a2 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2b2b2236 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2e482728 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xae7aa00f pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb5912a02 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa2ebfc16 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xbeac5133 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xcf01e7f4 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd0382680 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd9f5cbc8 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xf7c68818 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x3c5eeb61 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x4af2dc21 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x557cd36f wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x889fd7df wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x718178de enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8e56cdb1 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x93db2a42 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xa5c2cc12 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xcdeb3eab enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xecde54be enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfc3bf02f enclosure_register +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x1b052182 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x321fda21 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x646fc974 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x4f021c5e cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb0052835 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xe230df73 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x84dccc79 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x7d4c5bd4 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x888335d3 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x9a9fe056 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xfc95d072 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x4bfafada DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x56800d98 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x68087f8b onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xebaee1d7 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1d8da450 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2741659a ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x374a0bfb ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x91ec3b0f ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x961eb103 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa646071b ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa80c1497 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb7656753 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe3f7b0fc ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xebe663ec ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xece7c74e ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf0f62775 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf2aa65b2 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1b4679f0 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1d98749f open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2adb0344 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3ad88aaf can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x49808c05 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x56fc600f unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6ebd8475 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7de5ab39 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7f6dee00 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x856baaa1 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa92403a3 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe7a4304f alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x07d82bea register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc7668a17 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xee9e8e91 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xf64cc116 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x2dac6907 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x50ba91c0 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x58849ad5 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x89550094 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd7cf8fe9 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/tun 0xbb146897 tun_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x244c8489 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x889b6539 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0f85b028 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x2b7bb15a generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xbebd0e9d rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc093abc0 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xca98dbd3 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf7819ece rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0888eb49 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0af7c8d6 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0cdd9de6 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1568353a usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1f8ae37e usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x27903f74 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x37af4afc usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3b42857f usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3f38fb5f usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x50bfea68 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x547282f9 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x65883964 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x67f75ab5 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x697d6441 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7015a86d usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x85598d5f usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa1fedaa3 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xab4f7e34 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb1fdc336 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb55c3e10 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb8875714 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbe803376 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd4e1b519 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xec2ae19b usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x028f70b8 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x04f9bce8 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1ca0c127 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x41403c66 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6596ad8c lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x71a2f1a2 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x79fd58b8 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7cd5fa9d lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x81a7a41a lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9114fcaf lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x94beb807 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa3569ae8 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe74153e5 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xef1810d8 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x19ec7f43 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3781e0dc lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x58e2e5b0 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x81a1673a lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x93ed653c lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x966b6073 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xaab3252d lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb466d390 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x57f8bec2 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xd09ca5c6 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x10d386ce p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2d7fb246 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x80ad9a11 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x87c12ef5 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x986693e5 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa2c52e99 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbcb95d42 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xda753149 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe3c4cbb1 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x06c1b612 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x10b4b9cf rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x15317309 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1c0d9685 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25d4dc00 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x275db8cd rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x38178f15 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x68c68604 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6b9573c1 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x80229062 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x815cb8d0 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x846cb5e5 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x95b43acc rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x98325369 rt2800_rt2x00debug +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa68c20ec rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae323837 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaf460bdf rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc42bb31 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc1c0b6ca rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdb9f3124 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe0276e3a rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe06af255 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe69efc62 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeaf0cf77 rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf449be2e rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x007ba129 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0750410b rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x18372cc7 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1c943459 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1dd1f5c5 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2219ff16 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x460c400f rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x52d0ac94 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5b1314de rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7fd8d35a rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9c514fe5 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xac51ddb6 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb01feae0 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb24a172c rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc3a93d06 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc5349a3a rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc5447713 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xce3083c2 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdfeeed3e rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe81547fd rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf020c567 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf25e1b2e rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf492f821 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x094ce187 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x200ef52a rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x31372f6c rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x44823a02 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x489cb4ec rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x547445b0 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x583f8d4a rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x89358910 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9870a200 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9b21b018 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa73acce9 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbfcc8bcd rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc8eab98b rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcbb5ee5b rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xee352ef8 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf2803b00 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x211669a5 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x3808416f wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xdf23b506 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x40fd7222 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x5628574b wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x6cd7e086 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xb0ffef1e wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xb8952859 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x54c764b3 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x99454fc4 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xecbf6f4c pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0d59d4ef wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x39d5bb89 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x610a6435 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x83e7414c wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb2fb47ea wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xce9aac0e wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xcedda350 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4a4add2e fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05bb5142 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x065b0c8e iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x090f77dd iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0ed180aa iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ef428d5 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x277f9bc3 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2dfa2d9f iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x358c016c iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3899bc6d iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3978b128 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c038582 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c113c35 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x44e958ab iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x511bc5b4 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x65ba7ca7 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6972f8a0 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a5529a5 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6b0b9ec9 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7530628c iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x781f7276 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x827ac65d iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8a4368b3 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8ac467fb iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x914755a7 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa3a534a6 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xac6ccce8 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaf1dfdf8 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb1f8c4e5 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2054409 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6c83ec5 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbb443a74 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc3904247 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc405c1b4 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc62d27f6 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd148ee9c __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd5d34db1 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd878f0c8 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd93a3e96 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdd0ba088 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xde4d2897 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeb8adaec iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf35ec50a iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x052dfd59 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x08d3a827 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0ebd6c61 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3a0e40b4 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x63eae0f7 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8459fb4d iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8bafacd4 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa0254a14 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaab983b9 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaebb8625 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb08c46f3 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbb86a028 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xea8f54e9 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xeda9bd33 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xedc62f4d iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfe1f359c iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x24976b75 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x24cc3d64 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2dfd1760 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x30c62153 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x38d07b97 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x406d2e27 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4a232dda sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a3e0ae3 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x65023553 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6548f40d sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x75c5e6b7 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x82634944 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x884a8d2b sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x927fc77f sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9e77bc83 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa483dac7 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa5dbb19e sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf8d3804 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb9f65c1c sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xda6b831d sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe206c655 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe7e333e9 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf2e9cf6a sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3562e972 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3d2826e5 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5269a1d9 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x53f6a3db scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9186a83e scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xafb84ae5 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc4196491 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xcc4f2b70 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd15ba5c8 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x03115abf iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x03a693cf iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0b540330 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x19014f2f iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x40a586a0 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4ad066d1 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4dc3b802 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5474512d iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x54fd6f00 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6190dfe0 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6264bb4e iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69fe6014 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7f01b75f iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8c3eaa3b iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x99ca2fef iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa1014754 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa61232ed iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa92fe0f4 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd46ca063 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xebd7225e iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeecf181a iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf5c0fd38 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x12228bd4 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe127d417 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe6254933 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf4c154e4 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2312bf71 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x28376829 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x80adfbc7 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x98440e86 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa74b39eb srp_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x4ff2fb46 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x6298bee1 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa9f21831 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xc1f6399d spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xe2afb3a3 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xff99f73d spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x346523d2 st_register +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x5c05ccac tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xc6146068 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xe648d59c tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x069fb603 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x30150050 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x37412b17 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5235a32a usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5361ace8 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5a1435b3 usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5af8e85f usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7d5a4663 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7ddd9243 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x8d4ae29d dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x94dcaa67 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x981c7ecf usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xcb33664c usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xee768e76 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf3bea2b9 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/uio/uio 0x71a6160b uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xbfdd5420 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xd86b1549 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x39c7e50a usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x48e1b614 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2a720760 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x58dae78e ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5f3e8e04 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6a09dd14 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x94829bbb usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcf8a2f65 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe3182e3d usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf442c67f usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfd7f6ca0 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x07168914 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0f55335b ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1f0fc4ca usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2991c994 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2c771ef2 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3a01fb6f ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ee09657 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4427b7c9 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5c9db5d3 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5f08e6a3 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6183e18c usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6cb2d67e usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x72d6b914 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8476cf8c usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa09229ba usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb398b2ec usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc088f8d6 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd12eb703 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf7390f0b usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x03ecbfa2 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x15b48662 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x26cd1f5e usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x27d48bbd usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2c9ef7b6 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3e616c0b usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x44ac1c01 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4e2dcb2e usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x53f93310 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5cd3c750 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x64455fdb usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x73832e2d usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x84ddd028 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9305e757 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa42dd851 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb20240b1 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb90387ec usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd58b474b usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd7372bc6 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdb4db0ff usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe524a0e7 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe6b039e1 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe78d3bed usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x1367b0e8 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x3f3e9654 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x57440378 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8e34cdff wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc2da11de __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x06203295 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1ad0330b __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x234ffaf3 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x26aaf474 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2f104a42 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4e47b7cd wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6d471ad4 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x704b2662 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x77169930 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb62d9623 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc71f4623 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe71e2d79 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xeb748382 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf56b8eba wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfd1c585a wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xff0649f2 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa2692e49 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa565b167 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xbcf6de74 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x01aa41d1 uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x070e041e uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x329c78a3 uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x3898490f uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x88b3f687 uwb_pca_base_priority_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd06997e1 uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe307e93f uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe6b83119 uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x03e406f1 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x05ea16d6 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1434d37f uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x16a3831d uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1795c86b uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x18689a10 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1aacded7 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x20d42365 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x23b6b723 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x25a015d2 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x279b3a22 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3399a5cf uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3872c923 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3fcdd489 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x45e030c4 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x46e7c13d uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4dc1d0ea uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5d8fbf60 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5dbf9d67 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e2d1193 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62bfff3c uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b8e5184 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x707315dc uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7900963e uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x81337a74 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c882093 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9f91129a uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa33207c8 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa9dea795 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb74e508c uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbe37817d uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd2439151 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd69062fa uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe22c7202 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xea48ba91 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xecd3fc16 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfc7a9370 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0de814a7 wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x14300d8a wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x197296c7 wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1dda4d0b wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x242702bb wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2a3f5ff2 wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2acdd284 wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x30ed3275 wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x38f75a85 wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x42d0b2ba wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x566daac2 wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x61fc7716 wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x64bf9f64 wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6c28a89b wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7a43edb4 wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7aba132c wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8a9394e2 wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8e0b0fbb wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8f814905 wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa2bc58f1 wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xac8c2540 wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb1f10c44 wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xbfdaf04f wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc8d96e69 wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xca482244 wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xce74cba3 wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd255ca0e wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd841f1ae wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe3791352 wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe748c363 wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe8151b18 wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xec69b81b wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x24b72b21 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5b5a4135 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5e2c8189 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x842800ae ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd62d82a1 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xdd5cc194 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xfcb75766 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x50c03782 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xc22d250b fb_sys_read +EXPORT_SYMBOL_GPL drivers/w1/wire 0x37296314 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3bc1f3c9 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x72f6a6e3 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa451b731 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa4c09b39 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd3d4ff2d w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdb979876 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xfe3ae552 w1_reset_select_slave +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x75342fd7 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x966ff2a6 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xe258b49f dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xc094a41f exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xd0db2101 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x06489897 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x08a49ff5 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x1015ecba fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x2c9cc46b fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x421727b7 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x44180d70 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x49786b70 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x55d52bc2 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x6455f2be fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x7140cacb fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x80bd7ccd __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x9dc87f43 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xaa6f5b8c fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xba39be31 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xbdd2e569 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xc12fdde9 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xd067bb86 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xfbffff3b fat_setattr +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x26e6d40d nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x30792a96 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3723bd03 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x45158ebc nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x79c42316 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x3242963f nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x53122857 nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x02caed97 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x28079ad0 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2bbe29e0 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4219a202 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc6493cfe o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xef9ea7df o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfb3a372c o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x14a8dc43 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x23beb4dd dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3ab1bc5d dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4ce0a250 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x505c7e6a dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb9e83bf0 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7213c5b8 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xcff27785 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xf1321ef9 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x0ce73555 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x1ce02c55 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x7e17a42e garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xc3a01bf3 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xeaf669bb garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xfb890684 garp_request_leave +EXPORT_SYMBOL_GPL net/802/stp 0x24003368 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x40cf2a97 stp_proto_register +EXPORT_SYMBOL_GPL net/ax25/ax25 0xab58479a ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xe721b00c bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x03192350 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0e021d32 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1034d1cd dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1ade93ca dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x25a1dc26 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x26ed80e0 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e0af191 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x34d41399 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x413eead7 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x414fd034 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4579aff0 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x457efe4a dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x46de9093 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x54f52ca2 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x598a2ae0 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5cdb95fc dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x624cee38 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f0dd5a2 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7655819b dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x85bd45a8 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x87fb45e3 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x89752274 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8fe5d997 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaad8ca5b dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb73a571b dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc9f4b5dd dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf3f5ac0 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xda89ab84 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf3676f2 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe6db09c8 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3c6abea dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfa8f912d dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfaf4adf5 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x43830a59 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6b9fc7aa dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x71ea19ad dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa39ce391 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xaaef4350 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xcfd2d0c0 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xcbe18cbc arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x31c39e71 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x689ee589 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x153b7dc5 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x24abeb9e nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x525c7d0e nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6837140b nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8e98c55f nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd150addf nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd616df2f nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe0556c61 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x30468a56 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9faf6ff8 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa828d868 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xdeb70b64 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfb84ef7b tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x2ce1e64e ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x11183cd1 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x48365dd4 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x486034e8 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x49eec810 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x57a3e500 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x57e1c783 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6c5ce89f l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x719ddd4c l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7610e394 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x87752c33 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x938efbf7 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x946e9730 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb43b1f0c l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb60e86a4 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd5cd406a l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfaf58438 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xff9023d3 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3e7816d7 ieee80211_find_sta_by_hw +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6995c365 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc36d9956 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00f1249e nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0119e229 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0276e73b nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0664dfb9 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x08c2184c nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0979eb96 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x09a6619a nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x124aee42 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x129b8bbc nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22cbd9d1 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x242ca0d5 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2468ca4f nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x256607d2 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3596cdd9 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ba668d3 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ca5d5ae nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f9051e3 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d070762 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4e078d4e __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5803f671 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5f65d3ff __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62e34319 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63077357 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a3594f3 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x708f3ac7 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73a6b553 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75c7c506 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7634d580 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81925269 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8587eb67 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85baad69 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8d8b3d20 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95ccc7bd nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9904a00f nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa5b32a26 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb4c9f488 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5b1aa1e __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7b189e5 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb9580a30 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc03fd68b nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0c05931 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1270367 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc4747816 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7069332 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca5b3390 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca78c5b2 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbb64de9 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd470461c nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe056d595 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3c4b1f3 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4a9a035 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4e8ccb3 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6ae5074 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe70ded12 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe74e5c09 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe883e990 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef81ef8b __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef9026bb nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9e2c8dc nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbe10a73 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfed34cb7 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xd15c4551 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xe8cb93c9 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x02f61c4f get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x23999200 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x52681675 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x621b0ef0 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x757f1663 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x81e85e4d set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x861b79e1 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc1f4e7ce nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcf8eb118 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe0cd44f7 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xda648d9c nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x08290da1 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3ecadad4 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x42ef83f1 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x942f1d0c nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x28be8121 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x8e652ea2 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x04139475 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2aca65df ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x338a6413 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x46807d22 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x53788df3 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x93ddc6c1 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x966752a4 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9cc8b934 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa12535ff nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc2b7247c nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xcb80549b nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xce388a6f nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdef87cb6 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xd0f1e6b0 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x83039666 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xbe075265 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0bfeb25e nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x468dbf59 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x60cb3b07 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x74996f71 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb91bace3 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcfa12db5 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x6c69bee7 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x11177365 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b634f9e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2fa9de05 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3ae04530 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3ae4d30d xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x479ba0b8 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x596756fa xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6b3a5603 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6f1ab906 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8d14dde7 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9f029448 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc1805b57 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc9e7307a xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf83439cb xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x1c6d83da xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf1db4ae3 xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x0ffd3b27 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x12ef80ae rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x14e6299f rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x34514d49 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x3ea8975e rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x3fe80943 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x43a3687a rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x4635bc64 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x497ce730 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x56005d00 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x737f7ab8 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7612127d rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x79116ff9 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x797e5887 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x85dc6b32 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x87a38ad3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9f0f60f8 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xa3185125 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xb3863f30 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xc0d5a6f6 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xd0735030 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xd37c8b57 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xe92d2d74 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xf055bbd8 rds_inc_addref +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x20d20ba1 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xb3392ffa rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x046c5aff gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x06b96a57 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1adf0cba gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2ae853d5 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x537ad6e7 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6d36b4ba gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbfad4fa1 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd31c1f1f gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xeba23dc3 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf9bc8e41 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xfd57dc28 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0078476e rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01552756 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02eab2a0 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0349a6b3 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04fc24a8 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x057d6a51 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x059089bd rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0604d594 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06619a00 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x074a9f27 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09c10885 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a1c98e3 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a7ffb08 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cd92e08 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e3253e1 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e510aa9 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e8e2df1 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f01f649 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f6737f0 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f8a0b19 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x141114dd rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1446e6e7 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x154d559c rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15a5a4c1 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x166cf62c rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1717eb45 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1766a118 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17c6f4a9 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a4fe1f7 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e3a8095 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ac0afec xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c9e63fd svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f73a541 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3078bf92 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30c2b20a svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32124974 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3362bc45 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35a99553 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39cc7ce9 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c746e67 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3dd8f0d5 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40ae99bf xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4595ad79 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46a99c14 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49ed0f76 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c354ca0 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d29a551 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f390337 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f42d625 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x525c379b svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5484d9c3 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59beb703 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5abd0bef svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b63f0b6 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c02db8b rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c45e5f5 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5dc824e2 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ed5be28 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5efc190b rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fe2bfa3 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x600f033d rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60a84fc0 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x615319ba svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6216c832 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63afd4c9 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6491d34b csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65a2bb6b svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x690b19f7 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a528e76 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c89fd5b xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cd1880a rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e648377 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70e4e5c6 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73587f5d xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7389ac64 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79139453 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x794efaa6 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e042422 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83310de1 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83f5d778 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88b26831 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88daef4e svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a743f00 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c1dc9fb svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e5c9500 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9021f67e rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x954e76be xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97a5a2ed rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97bb782a rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97cf5b0d xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97f71707 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x981a7cc0 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x986e4fa4 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a1da701 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9aae6e9d rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9abbe0cd auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eccd588 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9fb04a95 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4a2e902 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6b16e43 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8f39fe6 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab1e885a svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab6daeaf xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac02ed01 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac335203 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2480866 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3c1db8c rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb43cf13d xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb79742c2 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7a84c71 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb841aec9 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2380dba unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc361032c rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5b8e69a rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc874e4df read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8c42aa1 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb64e26f xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb9b3fbc rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc7af84e rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2107168 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3936c0e __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7fa1136 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf2a4b6b rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe011e88f xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe133bbc8 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1a53b18 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe357da56 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe530fe0e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7ccf241 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeaecbd8b svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf16c85bf rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf361b2cb xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf82518a5 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf83aee9c xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa4249fe xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb2db065 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbef8a54 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc27850c rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd1750bf svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfeb8b7a5 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffbfd458 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0b6e3199 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0bd23169 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2acb7886 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x33194f52 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3f85cf66 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5352b472 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x61cc3745 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8352bb0e wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x92030d3c wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa2bb8635 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe53d3c82 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xedd182e8 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf6fa5c87 wimax_msg_len +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x17d116dd cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1a9cb4e9 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1c0cc2bf cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1fb658ac cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2bd02c54 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x38553514 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4361b10c cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6aed2562 cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x718654ec cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x762c0f26 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x76bc9523 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7b437136 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7cdeb890 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7f2ef699 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x87325253 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x87716e5c cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8860684e cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8f258ebf cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb0d43580 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb321ed43 cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb4b9b22f cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb5968bbc cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbd81d3c9 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbdbb4b90 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc67c839b cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcc29c0c2 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdc981f8c cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdd5031ac cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xeee0413f cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf29e49f1 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfaf41fda cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xff99b051 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1a254dd5 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x2348aeb1 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x6248e4f2 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x973484fd ipcomp_init_state +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x6d88f842 ad1836_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xe41da8f3 soc_codec_dev_ad1836 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x325bad1d soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x947093c0 ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x3a2396d2 soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xc746056e ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x5b15cdbd soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x7743e3d1 ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x3bf1ca24 soc_codec_device_ak4104 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x04ec1e48 soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xcb8581ff ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x5c5731e4 soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x9da8882a ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x2ad4e019 ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x753cdc7e soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x09d7459b cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x307d2794 soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x53cb70cb soc_codec_dev_da7210 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x59ea0832 da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x31d5c29f max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x2035cce8 soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xd801fa60 pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x6dde3cca dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x2b80c923 soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x71e6d2f9 ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x81ebc6a6 soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xd26f20b9 tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x3a9ddf49 aic26_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xb22ed756 aic26_soc_codec_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x29350f23 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x5beba1bb aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x63cd6928 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x6e95476c soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x761ea17a aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xa9b8bfe1 aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xedc19339 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x91d62c12 dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xe09476e3 soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x035afd55 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x7861fe59 twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xfb8204ce soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x45b5272e soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x2216df1b uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x740f1b47 soc_codec_dev_uda1380 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x45eced48 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x814634c8 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xf628f0f2 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x534de607 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x0f862bc5 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x906f9ef5 soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xb26b28d6 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xb60968d0 wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x0b7364a7 soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xeef44e6e wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x6db8998b soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xa1be8cbe wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x16c2e48d wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x44d37411 soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x6269a204 soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x8426e70e wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x28c75866 wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xdeaa6041 soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x8ab6799e soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xcf76a1e6 wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x0d2e6551 soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x3e201333 wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xbf58494f wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xdd2eb42f soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x17d4afd0 wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xc0b8f9dc soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x67d65e2b wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xeb95aa1f soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x95668a34 soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xf6fbfd10 wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x26ac4c04 soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x50669245 wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x0d811fc7 soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x63564696 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xd6f2e0eb wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x42c08900 soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xcbf7d053 wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x21a5e4d8 soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xa429b656 wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x52932c51 wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x5d107aaa soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x222130b6 soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x33b6a77f wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x3b3a01f7 soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xf8ea74da wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x3af86bc0 soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x5e9d7f6e wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x0e50eedd wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x478f9f85 soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x79922ea6 wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xeb3ad089 soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x8fda5e4f wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xe06697b4 soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x297d778b soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xc5fed796 wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x02502448 soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x436aa538 wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x4949d535 wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x4d11b28f soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x79074309 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x71cc4ac7 soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xa0e100ef wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x691511b1 soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x2474e9d5 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x322a65d3 xv_malloc +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6931db78 xv_free +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x9092cdbb xv_create_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xf5cdafcf xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x00259bd0 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x00460395 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x0047baf9 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x004d39a6 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00bff5db dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f22e3b usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01633d72 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x017c71ec crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01f599d9 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x02428f40 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x025aff38 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x0300115f sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x0309832e hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03970d33 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x03ce53e2 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04031b78 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x041f52b9 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04d31634 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x053cd771 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL vmlinux 0x053df1be register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055243c4 put_device +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x0579e01c fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x05d45c6f cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x06129bde ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x0615f41d sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x062c818f omap_dm_timer_set_match +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06565077 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x0660f44d snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x0691f2ca ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x0693c213 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x06fbc489 pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x07049593 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x0720301b regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x076df77d usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x079e3bdd page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07eabd3a dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x0830dd26 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x085e54f7 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x086954de blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x0878bde8 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x087b515b ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x087e7f65 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x087eba15 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x088b7e2b sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x088db801 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x08977711 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x08bdaeae __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x095f32e8 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x098a95a6 omap_dm_timer_set_prescaler +EXPORT_SYMBOL_GPL vmlinux 0x09be5e7b crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x09e4e131 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x09f7365b kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x0a05f274 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x0a2db7bd bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x0a407fc5 input_class +EXPORT_SYMBOL_GPL vmlinux 0x0a497057 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x0a4c1841 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x0a528e45 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x0b01178b scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b1aedba __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x0b23ec89 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x0b379463 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x0b4bfe9e show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x0b66185c ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x0bd3268f __put_net +EXPORT_SYMBOL_GPL vmlinux 0x0bf7735f cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c7398d1 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0c74e9dc disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x0c7cf86e crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0ce0cf25 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0ce4763c snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL vmlinux 0x0d3d6d56 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x0d756a14 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x0dae0988 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x0db557e0 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x0e16d508 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x0e47baa9 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x0e5199e8 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x0e754f44 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x0e8163e7 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x0e9f9b76 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x0ec5710e cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0ed40fda rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x0f5c1a18 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x0fa32cd6 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x0fa69d6b tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x0fcb1ed7 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x109470db mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x10b4b3c7 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init +EXPORT_SYMBOL_GPL vmlinux 0x1147de79 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x116a5755 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x11df6b6b sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x11f1873b snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x125ccb8d relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12a30954 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x12bc2189 snd_soc_register_platform +EXPORT_SYMBOL_GPL vmlinux 0x12ea2571 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x1306fe24 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x133ebda1 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x134a8319 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x136f56c1 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x138a11bc blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x13a35323 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13d53dbe dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x13d94bdf fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x141dbd9f ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x142891c2 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x144f98c7 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14ad320b __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1514718d ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x1545afc3 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x1545f4de register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x158e5324 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b5f17e ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x16744b13 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x168e3b24 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x1699e2cd fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x16cf1c2f inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x16ddfc7a inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x16fd6b75 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x1700ab13 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x17142764 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x1719efa6 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x17e37a05 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x1808f3bd inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x18d55bcb disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x197cc37b bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x19811114 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x198a7fd1 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x199562b7 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19cdf012 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x1a1ff95e setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a3a42e4 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x1a9965aa ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1b2a0281 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x1b2addda regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x1b44bcb5 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x1b6ff294 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1b95441f tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c2d0528 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x1c729700 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x1c77ad0b uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x1c7a54e6 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cb1611a bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1d4a3b78 dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x1dce9dbe skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1e2a845f snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x1e738b11 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e86621e ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ec50e1e snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL vmlinux 0x1efb7533 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x1f4192aa inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x1f45b7f4 snd_soc_register_dai +EXPORT_SYMBOL_GPL vmlinux 0x1f89c5db rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x1fac57ce usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x1fb852f6 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x1fc8503c cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x20117eda omap_dm_timer_get_fclk +EXPORT_SYMBOL_GPL vmlinux 0x201b398c snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x201ca012 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x202a7519 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x207f290c snd_soc_limit_volume +EXPORT_SYMBOL_GPL vmlinux 0x209622b6 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x20a20f39 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x20adda65 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x20b5f808 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20cb3689 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x20f4622d dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x2134b4d0 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x2158efea dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x2180e9e7 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x21955bce crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x21e7a3a5 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x2231e1b4 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x223448fd crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x223b03f3 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22bddcf7 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x23451f24 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2371969b filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x238cfee0 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x23c1bd61 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x23c970d2 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x23da4403 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x2418e2ea ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x24d43d15 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x24ea392c tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f88d00 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x25204c4d kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x25c5b7a3 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x25c5ed01 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x25e55471 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x25e79dcf rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2655bd4b __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x265d6aee scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x2664b1e8 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x26b2b3ee dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26f15a15 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x272bc634 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x2745cee7 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2788f182 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x278a4df0 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27d35bef perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x27e8c2ea ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x280b7593 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x281a5bea inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x283e8132 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28fc159b fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x290db38b __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x293c7e10 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x2a04dbe2 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2aba0390 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x2b0d8c48 __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x2b5b8843 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x2b73e084 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2bcd3686 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2bf561c0 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c33c94b tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x2c67bd22 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x2cb3baf1 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x2cbf810c crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cfb769d ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x2d5958b2 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x2da70d5f usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x2db190e5 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x2ddf9ef6 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2de162c0 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2e180efb snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e4f8117 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x2e8f7d98 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x2e939676 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ed390fb regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2f14b683 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f4ba56e device_move +EXPORT_SYMBOL_GPL vmlinux 0x2f7f5078 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x2fa8a133 sdhci_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x2fada433 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fd9b1f7 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x2ff8631b ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x30451938 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30b32934 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x30db85a5 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x31d0853e wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x31d16069 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x31de6218 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31eaf80d cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x3200cc9e inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x3239d3b2 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x3269d4c4 snd_soc_add_controls +EXPORT_SYMBOL_GPL vmlinux 0x32cacad7 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32dbff68 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x32f67528 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x32fc38d2 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x330d602b xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x33543301 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x335f1e08 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x335f3b76 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x336e065e blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x33be8e5a crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x33cd3dc6 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x33f74d57 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x34074227 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x34132523 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x341643ba omap_dm_timer_modify_idlect_mask +EXPORT_SYMBOL_GPL vmlinux 0x3422aa16 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x345d1714 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x34731fd7 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x3479388b pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x347c44b0 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x34940361 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x34954fc9 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x35169c72 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x3548cc47 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x35b5c521 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x35d1dcef usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35e527c0 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x35e5ac2b dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x35f7796e sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x3649b2ce udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x36aa38f4 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x36d98807 parse_mtd_partitions +EXPORT_SYMBOL_GPL vmlinux 0x36e6eafa br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x36f7e270 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next +EXPORT_SYMBOL_GPL vmlinux 0x37e3b4ee do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x382c3f44 snd_soc_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x3834185b blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x386b3b4d snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0x3895c376 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38df2a0e devres_add +EXPORT_SYMBOL_GPL vmlinux 0x39785802 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL vmlinux 0x399b358c bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x39a84c7b omap_dm_timer_set_pwm +EXPORT_SYMBOL_GPL vmlinux 0x39bb7e2c vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x39df990c __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39eedabf usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x3a15f71d snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x3a206954 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a84db84 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x3a9a5a81 omap_dm_timer_write_counter +EXPORT_SYMBOL_GPL vmlinux 0x3ab79385 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3b33e29e disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x3b42abf4 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3b6a06c5 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x3b6e1df9 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x3b87606b put_pid +EXPORT_SYMBOL_GPL vmlinux 0x3bbcac81 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x3bbfb884 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c1dd4e3 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cbe902a mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d309dbe dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x3d3684bf inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3db91586 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x3dbab1be inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de97956 omap_dm_timer_read_status +EXPORT_SYMBOL_GPL vmlinux 0x3df3961a class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3e03b51a fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x3e178b54 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x3e7af21d sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x3e9c7cad inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x3ec12845 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x3ec74cd9 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3f210e75 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f29ac7c ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x3f6ec900 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x3f8b7c2e bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x3fe40dbf ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x3ffb63af crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4072e6de crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40e902b8 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x40faa828 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x4103d83e snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x411a5bd4 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x41417033 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x419d5200 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x41a32c01 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL vmlinux 0x41c8e8c6 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x41ded7c7 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x41fac261 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x427f7f3c tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x428b1bf0 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x42b3203e __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x42f15ed5 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x433d308d usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x434b1df3 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL vmlinux 0x4377237e nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x43d83dfd put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x43f36115 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x44023638 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x444c6c3a usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x447fad3f locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x44806b38 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x44835317 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448c1ac2 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44f2ddde sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x450a308d tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x4539bf6c sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x454153fd inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45ce6ab0 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x45e37f68 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x4640dfec usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46d9f744 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x46e0226e i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47cebc4a sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x47e4eadd blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x47eea9f8 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x47f57510 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x482a913f wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4842417d debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x484969ea cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x486031b0 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x486277e7 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x489d8733 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48b9344b usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x48f7b5ec wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x4902f8a4 snd_soc_register_codec +EXPORT_SYMBOL_GPL vmlinux 0x4925ad4e usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x49790bb3 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a40e02 omap_dm_timer_stop +EXPORT_SYMBOL_GPL vmlinux 0x49d6b9df usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x49d8a90c snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL vmlinux 0x49e6fb30 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x4a121ec8 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x4a1d80ce raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x4a368723 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x4a6b8b1f eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x4ac22351 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x4b059382 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4ba9c828 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4be62033 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0x4c20ecf1 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x4c62fcea ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c7a7feb vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4cb9e264 snd_soc_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x4ce9b20e tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d5c27fa device_register +EXPORT_SYMBOL_GPL vmlinux 0x4d7910ef scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x4d883b26 deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x4e008a51 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x4e256936 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x4e466615 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x4ea1b50e sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x4eae1d78 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efb4d74 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x4f1f6d0c adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x4f2790ad get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x4f2fc2fe deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x4f3af1fb usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x4f3fa278 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x4f4eef03 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x4f7570e9 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x502c0efa ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x5075ec94 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x508f824c ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x50a4c04f snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL vmlinux 0x50b600f2 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50ddf683 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f17226 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50f7ba98 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x514a7e46 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x529454a6 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x52d0ab2d device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53b88693 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x54064d2d rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x542bf83c omap_dm_timer_trigger +EXPORT_SYMBOL_GPL vmlinux 0x542e49f9 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x547ddf19 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5494b807 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54958f98 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x54991efe ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x54c6652f dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x54dccbdf blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x54e91dda device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x555a11b9 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x5607381d snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x561729f5 tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0x5628bf55 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x562fd8af ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5645aee5 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x565c1b93 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x56728164 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x56a2b2f2 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x56e24af9 device_add +EXPORT_SYMBOL_GPL vmlinux 0x56e74a46 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56eeb942 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x57093bd5 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x57342554 omap_dm_timer_set_load +EXPORT_SYMBOL_GPL vmlinux 0x573c9d43 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x574a5694 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57cb47e7 snd_soc_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x582241ba led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x5852eccd da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x5894a2fe ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x58d355a7 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x58e219fb rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x58e61778 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x59043346 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x59833121 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x598fe5e1 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x599d0cb6 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x59ca4a40 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x59d541d0 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a960c19 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x5a96c3e4 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL vmlinux 0x5a99b141 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x5af47bf0 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x5afded3d usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x5b24ae68 pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0x5b4affc2 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x5bdd06e0 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x5beffddc debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c164a5b crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x5c3ca181 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5cb73934 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x5cbb075d get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x5cc0e3b3 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x5cc1d68c __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x5ceddc5b elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d30a3ae crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x5d39cccf wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5d4a4572 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x5d525367 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x5d6ead32 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5db1d473 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x5db84097 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e21f3b5 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x5e87f23a usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5ea53f74 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x5ec76e25 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x5f1dd0fa usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x5f5c0703 omap_dm_timer_set_int_enable +EXPORT_SYMBOL_GPL vmlinux 0x5f60e3e7 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5fccb6bb hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x605ff0dc ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x6087a328 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60b5c393 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x60c3be39 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x60ce8c35 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x61106d95 nand_scan +EXPORT_SYMBOL_GPL vmlinux 0x61d184a3 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x61d747d8 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x620263d9 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x62820ba4 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x6287beea wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x62899960 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62b24ed1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x62ecf779 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x6306b989 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x637d11fd generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x63bf30cc snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL vmlinux 0x63d4980e get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x63f1719c device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x646c7262 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x6486d2d3 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x6496718b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x64a0e7d0 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x64d12346 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x64da27e3 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x64eb821f hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x650a50f1 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x65337590 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x656eaee8 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65f8b8a3 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662f3d8f ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67dcacb4 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x6803a9af ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x68179d58 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x683aec88 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6856ab7e rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6863986e fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x68694857 usb_bus_start_enum +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x688b61c1 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68a3d865 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x68c40cc0 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x690b6acc usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x6920adfd crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x69b6a3cf ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x69d25a6e ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69fb14b7 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x69feffda class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x6a1286e7 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6b0433e1 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x6b0ed02e regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6b1f8647 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b443cbb power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x6b65a1ae usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x6b72ab2c register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6be73dad devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c5e1fa8 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x6c75dd26 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6ce1a72d dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x6cf73275 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6d546af1 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x6d57ce10 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x6d5d52ba usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x6d7ac4f6 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6d964bc9 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x6d99b75a snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL vmlinux 0x6e332ba8 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x6e3f665c adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6ea97e10 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x6ec61340 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x6f06a9dd snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL vmlinux 0x6f0ebbde unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x6f143559 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6ff0e2ff unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70077535 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7015a373 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL vmlinux 0x70347682 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x7039d364 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x705ebb82 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x70789714 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70d61046 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x70f703e2 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x7104ac54 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x710b2af6 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71ed1e0d ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x71f29592 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x722cf624 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7292f5bc shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x729e17e4 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x72db3949 nand_scan_ident +EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x73323bec del_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x73935c0b ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x7398bbda pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73b606ea inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x73c1a13a snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x73e99247 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x73f31b3f ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x73fffc48 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x74280aea omap_dm_timer_request +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x7483ecd9 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74dca3ec usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x75010d8f snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0x7507ec41 omap_dm_timer_set_source +EXPORT_SYMBOL_GPL vmlinux 0x7567c530 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x75850944 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75bd1809 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x75bd7a3b inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75ea125c unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x75ed6e0e ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x75fc1e01 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x76000cc6 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x765bb626 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7671224b eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x76906fb4 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x769b86ee ref_module +EXPORT_SYMBOL_GPL vmlinux 0x76a596bb ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x76b6d20a debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x76d80ab0 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x76f3ed7a ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x771ec8b9 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x774103c3 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x7755ccb4 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x778fe49f __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x7796bfbf cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x77a76a2e skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x77ae2b0a tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x77c743ac usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x788bbf12 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x78abaa24 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x78be83b6 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x78c5a0f7 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7908ace1 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79a30ff4 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x79a41cc5 armpmu_get_pmu_id +EXPORT_SYMBOL_GPL vmlinux 0x79c59409 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x79f3249f register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7aab7890 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x7acf3bf3 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b3de5d1 register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x7b4b9b5d ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x7b832e77 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x7ba201c0 __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x7bac8eb5 sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0x7bde4e55 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x7be26e9a inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x7bf1d4b2 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7bf9d3ba relay_open +EXPORT_SYMBOL_GPL vmlinux 0x7c300155 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x7c6784ef ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x7cac9a3e usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x7d0fa342 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x7d44cbd2 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d886da7 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x7da37c9f kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7db3ab38 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7de0904a snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0x7df085f6 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e5e838f ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e855846 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7ea251e3 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7ece5c9a xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f1f9dcc ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7f4bbab0 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f6f3df2 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x7f7cc7fa ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x7fd0ac23 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fd38778 armpmu_get_max_events +EXPORT_SYMBOL_GPL vmlinux 0x7fd8c3c1 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff651ae usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x801c435d regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8039730f sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x80738daf anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80d3fdde single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x81134333 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81656dab wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x81924547 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x81c23096 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x823940f4 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x823ad7c4 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8293775f inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82a6c005 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x82b8f40c crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82ded629 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x839c16ec snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x83f8cb45 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x840d412b soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL vmlinux 0x842d77a2 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x84578cb9 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x846380e0 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x84834c6d driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x849b990a crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x84a01be8 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x84c7e48b sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x84ee5aa3 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x84ffcfc1 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x856ba716 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x85871a55 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x859013e2 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x861ab3b8 pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8651e6c2 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a597ed pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x86e53fd5 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x870f65ce dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x8719d9fb register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x873335ae init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x873bd63b flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x876677bd kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x878bc255 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x87d884d4 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x87df5a1c skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x87fe90fc __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x892cb4cd snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x8974ce2b __class_create +EXPORT_SYMBOL_GPL vmlinux 0x897afdac dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x89b149db rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x89d8ef0c crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x8a0d13a5 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x8a104bcf wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x8a12a08c ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x8a49d3bc fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x8aa44bc5 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x8afed182 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x8b1ddd35 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x8b34ed45 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x8b4240d1 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x8b442424 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x8b5cc157 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x8b65c0ca usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8bdce011 __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0x8bec0115 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x8c28e9a5 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x8c3cc320 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8c3f3057 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x8c6ca1c8 register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x8c75a0f6 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x8c9ea6c7 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x8c9eadb7 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x8d1692b3 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x8d340d06 user_match +EXPORT_SYMBOL_GPL vmlinux 0x8d362fac sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x8d7156ca ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x8d9934d0 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x8db799f4 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x8e14910b sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x8e2e878c bus_register +EXPORT_SYMBOL_GPL vmlinux 0x8e30004b blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x8e874f0f crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x8e941dcd crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x8e96f93d ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x8f0d8799 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x8f3cc768 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8f4d8f61 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x8f54cd07 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x8f60b443 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x8f69a242 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x8f6cc978 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8faa7440 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x8fad5525 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8fd2012e omap_dm_timer_enable +EXPORT_SYMBOL_GPL vmlinux 0x9026574c snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x9056aacc twl4030_dai +EXPORT_SYMBOL_GPL vmlinux 0x907a3d3d dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90d86fcb snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL vmlinux 0x911af138 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9173c454 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x919d26ba tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x91ab1909 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x91ab56d7 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x91c9fa42 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x91dda801 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x91ea28f3 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x920f835a platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x92117966 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x924118a7 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x925ddcd9 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x926b1006 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x927290cb pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x929877cd init_pmu +EXPORT_SYMBOL_GPL vmlinux 0x92badbdf vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x92d68497 snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0x92f2d8e8 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9308992a xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x93227a5c snd_soc_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x934744e0 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x936e258f add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x9379d568 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x9414a2b9 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x9427e742 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x945ba83d device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x947a773f snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL vmlinux 0x94829f14 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x9482e262 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9513045b sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9530d6a0 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x95547411 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x956f21ea register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x9582114b shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x9599b58b snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0x95c4ab81 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x95e29781 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x95fe5ef7 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x965f6a89 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9686698f omap_dm_timer_set_load_start +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x971f6c77 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x97413b7c ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x97460ed2 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x979bc62c netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x97a608fe led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x97aa9350 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x97bbebef ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x982f0051 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x98959b92 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x98c0b338 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL vmlinux 0x98cad668 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x98ce54bb sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x98f44d12 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x98f8a212 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x9904bcf6 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x992ff4f3 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x993b00bc simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x994ae741 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x995b38b2 mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x997d34d9 ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0x998b5dec class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a74859a crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x9a74acde driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x9a79b741 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x9a7c355e input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x9aca7833 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x9acc1bb9 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x9af9363b cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x9afa3f53 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9b2b27f2 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x9b3eacac crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x9b59fb8d sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x9b62837f fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b69cd21 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bcb41ef default_mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0x9bd98b18 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x9be200ea perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x9be3d77a transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x9c39ee77 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9c4d20e4 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x9c870bec debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x9c8e1e33 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d064ef9 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x9d29288a dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0x9d4d82e6 ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0x9d581a41 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x9d7a8092 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x9df38326 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x9e07f824 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x9e092a1c irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0x9e1f62cc generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x9e4152ad tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x9e487509 nand_release +EXPORT_SYMBOL_GPL vmlinux 0x9e4ee358 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x9e5401c2 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x9e689bd6 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x9eb76035 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x9ee0b078 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x9f2d26f6 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x9f3308e8 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f8de82e tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x9fbdb7d5 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x9fce0b07 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9febb816 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x9fefdb60 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa01e27b5 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xa0217e50 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xa02921a1 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xa0562017 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa058621c pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xa0774e3e led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xa0849770 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xa0a17ba0 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xa0c54f88 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xa0f48855 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xa135f51f crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xa13eedaf eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xa1948f3c raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xa19b3116 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa1a5256d device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xa1a5e185 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0xa1c46817 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xa1cd24ce sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xa21c727a tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xa2250b44 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xa225d8ef find_module +EXPORT_SYMBOL_GPL vmlinux 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL vmlinux 0xa2e937db disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa3830b02 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xa3938bb3 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xa3bb6078 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xa4010f20 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa4118a0d remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xa466965c snd_soc_cnew +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4bd679d aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xa4f2a00f proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xa5276608 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xa533e911 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xa55f8cda platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xa56cfd41 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xa56f4166 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xa57afc74 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa5c33025 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5dd6fae arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xa5df7c23 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa7138604 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xa7579218 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xa7c8db3e skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xa7ccce10 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL vmlinux 0xa7cf3723 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xa7db00e7 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xa7ddb506 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa7f39ca4 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa80d2d44 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xa82ba8a9 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xa83c240c md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xa852bfa7 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa866ebbb pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa900a632 omap_dm_timer_free +EXPORT_SYMBOL_GPL vmlinux 0xa9483bb2 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xa9803181 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa98bbc58 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa99ccbae blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xa99f0663 __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0xa9be9210 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9ce1536 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaa98af9d pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xaa9f7d7a user_update +EXPORT_SYMBOL_GPL vmlinux 0xaac455f0 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xaad6881f shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xab3f85be sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6e6487 get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0xab6f94fe ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xab8e7281 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xabc553f9 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xacdc16f9 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacffff1d security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xad25b0d4 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad31aa4d cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xad373767 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xad4cdf54 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xad5e18c5 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xada49db8 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xadb3b499 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xadbefb4d xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadea9b08 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xadf9d025 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xae026e73 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae0de63c dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0xae6203d9 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xae87f6c6 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xaef085b6 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xaf3861a5 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xaf3c0d8a sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf4af04a tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xaf636b46 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xaf6e093f rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xaf6e2730 nand_lock +EXPORT_SYMBOL_GPL vmlinux 0xaf8e743d snd_soc_register_dais +EXPORT_SYMBOL_GPL vmlinux 0xaffe0b31 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xb00e083e scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xb05a07d0 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL vmlinux 0xb08bfd81 platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb0cb9627 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xb0d6ed4c devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb0e02824 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xb0fdbf14 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1947824 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xb1985c61 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1f1aa0f sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0xb2176053 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb227f489 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xb2448bfd snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xb2e0e321 get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xb2efbb07 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xb2ff7152 pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0xb3456109 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xb386db73 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3d6175a unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xb3f0902f usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb3f2f759 mmput +EXPORT_SYMBOL_GPL vmlinux 0xb413836c securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xb44c3391 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xb4a80d4c skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xb4ab7a4a spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb507ede8 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xb5369197 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xb56d9c15 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb599ca5c noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6070e99 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb60e3088 __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0xb62787a4 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb62c331f i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xb6383928 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xb6457f96 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xb6502063 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb65e5e11 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xb6840293 unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0xb68e8822 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b20881 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xb6ec7740 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb792fb6b ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb7be7d6b tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xb7c52815 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xb7c5f73a ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xb813bd7f ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb82a1384 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0xb865c703 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xb8781730 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xb8f0ee46 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xb8fdad5f eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xb9146913 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xb917b6d7 return_address +EXPORT_SYMBOL_GPL vmlinux 0xb9294a5b scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xb93010f0 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb943a9d4 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xb96180c8 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xb978f993 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb9a8ea76 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xb9b51d37 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb9ca83e2 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0c1797 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0xba16d226 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xba398c82 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xba5316ca sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xba801d9a inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xbaaa87c2 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xbad42256 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbaf7720f dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb21aba6 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xbb2c4516 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xbb3e7e35 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xbb63d09b wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xbb7e9e91 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xbb903e2e tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xbb9a2c75 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xbbaf5085 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xbbfb8bb2 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xbbfcbcc9 reserve_pmu +EXPORT_SYMBOL_GPL vmlinux 0xbc078dd6 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xbc1ccff9 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xbc325d18 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xbc32c40e rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xbc4eb563 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xbc5380be user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xbcb05f38 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xbd1334ac blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xbd1c3269 dapm_reg_event +EXPORT_SYMBOL_GPL vmlinux 0xbd25d185 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbd25e8df simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xbd5674f1 snd_soc_free_pcms +EXPORT_SYMBOL_GPL vmlinux 0xbd72343e __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xbda99b15 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xbdc190fe sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3734b5 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xbe3b03fd get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xbe7c591a dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0xbea8d757 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xbecabda6 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xbedc62da schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0xbef904ee snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0xbf6e3ce1 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xbfa82b63 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xbfce5225 get_device +EXPORT_SYMBOL_GPL vmlinux 0xbfcf7f8f fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xbff4887e seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xc00e0a42 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xc012a363 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xc02810f2 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc04e5160 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xc0a391fe ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xc0bdf5df ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c4a2d2 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xc0d0d729 device_create +EXPORT_SYMBOL_GPL vmlinux 0xc0e3313b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc18195a9 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0xc1abdff9 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xc1bf85e8 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xc1db0a63 ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc20b1e8e debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xc213acf2 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc24a127c ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xc25cb825 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xc29b8555 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xc2a4ada0 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xc2d31620 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL vmlinux 0xc3354934 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xc34da84d class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xc34e317b ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3527505 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3a6455f sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xc3ab2742 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xc402347f crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc44f1abb devres_get +EXPORT_SYMBOL_GPL vmlinux 0xc460daec __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xc476befc hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc49f3b43 omap_dm_timer_request_specific +EXPORT_SYMBOL_GPL vmlinux 0xc4ce0afd inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc4d27574 snd_soc_jack_report +EXPORT_SYMBOL_GPL vmlinux 0xc4f1079b inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0xc4fa2a29 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xc55c522c sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc578ac00 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xc5b1d204 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xc5ec0a9a snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6621cdf tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xc6829b16 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xc685eb03 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0xc6e0402b __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xc6fa8300 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xc70ef97b sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xc733de4a snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0xc737d2f1 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL vmlinux 0xc76d05f7 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xc775a187 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL vmlinux 0xc853b147 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc871e561 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8c4639f omap_soc_platform +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc8f25de6 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc96203b7 sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0xc984dfd6 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc9b654ea snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9f29570 ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xc9f5e872 nand_scan_tail +EXPORT_SYMBOL_GPL vmlinux 0xc9fe06d1 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xca2b929c unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xca3f9bed driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xca5c4106 nand_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xca720808 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac2c64e inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xcad33a84 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xcad64905 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcaf507f6 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xcb04a770 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xcb0e4f24 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xcb8f22f5 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc060dd7 timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc34abd7 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0xcc5ab895 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xcca61545 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0xccb8cb65 rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xcd27f6c7 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL vmlinux 0xcd2d6c17 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xcd2eb679 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xcd5d032d hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xcd763643 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xcd796717 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xcda4b805 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcddb4012 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce77d702 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xce95cfef sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xcea44b96 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xced8323e inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xcf3a971e crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xcf4a5e18 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xcf56efd0 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcf92d864 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd0073d98 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xd035e50d vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd046bfa3 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xd0536738 get_sb_mtd +EXPORT_SYMBOL_GPL vmlinux 0xd058444a usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xd05c2153 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xd0626f43 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd0b83bbf tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1971f35 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1f4390f bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd205d724 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xd21a0690 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd22bfbd4 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xd23063d3 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd28ca527 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xd2bc793c crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xd2d4ea0a sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd2f0295a power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xd307ea31 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xd3b9fb2f inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xd3ed44fb release_pmu +EXPORT_SYMBOL_GPL vmlinux 0xd409435e gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xd41dae9c omap_mcbsp_dai +EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd424d9a6 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0xd42fe894 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xd45e69e3 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xd4b4a91f ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xd4cf668f led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd4ee16c5 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd51a610d blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xd53da4e3 omap_dm_timers_active +EXPORT_SYMBOL_GPL vmlinux 0xd5408a7b wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd56e8776 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xd57b7121 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xd58292fe sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xd5996b56 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd631667c pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xd68f4e4e skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xd6cfc6dd rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xd6ef2b81 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd6fcfa19 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL vmlinux 0xd7060b1e usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd76113b7 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd788742d perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd7dcc20b add_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xd8253739 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd8970008 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xd898cb42 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xd8a66f1d regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd8fbcdca ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xd91a710d usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xd931754e bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd9407cac ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xd9419670 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xd95ffc0b omap_dm_timer_start +EXPORT_SYMBOL_GPL vmlinux 0xd975f079 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xd978d3dd usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xd97eed51 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xd987caa6 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xd9b9cd98 register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0xd9be22cc regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xd9bf66a7 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd9e29f4d gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xd9eef782 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xd9feb9c4 omap_dm_timer_read_counter +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda5abe78 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xda785a23 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdaa1dd75 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdad13808 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xdaeddd35 omap_dm_timer_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb02240b wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb74dc2e crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xdba1f43d enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdbabf003 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0xdbc5b06e dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xdbdfc702 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xdbfbb5b6 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc55f87e rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xdc6c921a inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xdc863fef debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xdce2f39a dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xdd0ea538 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdd1362f6 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xdd49067a usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xdd5b8601 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xdd60f4b8 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xdd8973e0 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xdda1d997 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xddb776e6 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xde19ad13 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xde200c4c crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde68c0e5 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xde96a725 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xdeaa5591 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xdec3f828 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xdf135d17 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xdf5a62ae fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xdfebdc0c rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xdffdd88b device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01e3cd1 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xe064f77d usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xe06eb2ba class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe0756580 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xe0807855 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe08b4bfb handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0fe8822 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xe150ccd1 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe18c81fa __class_register +EXPORT_SYMBOL_GPL vmlinux 0xe19ef00b queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe22136d4 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xe2ea5b98 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xe36084df crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xe365c040 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xe3993edc aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xe3a6a535 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xe3f7e6f8 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xe40c6945 otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0xe41125ce snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL vmlinux 0xe4626c3c usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4a7757c crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xe4ba89f4 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xe4dd279b crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xe4f2e44a ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe500a08b debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xe51420ec rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xe527ceca kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xe5606cb2 omap_dm_timer_disable +EXPORT_SYMBOL_GPL vmlinux 0xe5c6d6b6 get_driver +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe6308274 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe64cb2c2 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6608653 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xe6654bef snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0xe67b451b dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7170cc1 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xe775952e crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe7a34924 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0xe7d8239b proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xe823d15d sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe917e733 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0xe921125d snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL vmlinux 0xe9275e86 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9ab0835 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea20fa81 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xea3ef700 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea557827 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xeacd66e4 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb22351b debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xeb298684 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xeb4172ff put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xeb613dbc i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0xeb760ec2 user_read +EXPORT_SYMBOL_GPL vmlinux 0xeb770d4d ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xebe7ac75 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xec1284e9 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec6532b0 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xeceea02c tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xed034ef7 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xed4d384b shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xed64ae63 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xed6b4600 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xeda63db3 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xee428830 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xee61e200 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xee64e45a omap_mcbsp_st_add_controls +EXPORT_SYMBOL_GPL vmlinux 0xee6b4506 use_mm +EXPORT_SYMBOL_GPL vmlinux 0xee7c147a ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xee88dae5 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0xee946c2a ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xeec61b20 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefbd6cce relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xf0e38129 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xf10fd7b3 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xf15931ee sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xf16d01e0 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1c9ee93 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xf2cfe33b ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xf2ebdcb0 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31f4448 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf36d802f ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xf37984bd unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf3ae2433 pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b8f456 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf4194357 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xf420cf98 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xf42c99ed transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf44e2adb ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf5124229 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xf519f26d crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5603a3d elv_register +EXPORT_SYMBOL_GPL vmlinux 0xf58690d4 snd_soc_new_pcms +EXPORT_SYMBOL_GPL vmlinux 0xf5a4a150 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5bed192 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xf5c8cbe0 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xf6a198ee ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xf6b29369 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf6b6a6e2 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xf6d28f8a wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xf6e4b8e0 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf71d2337 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xf7305172 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xf73779b1 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xf73bea06 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xf74c8e39 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xf74e1f62 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xf76866a6 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf77a2281 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xf77aaa11 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0xf799db81 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xf7b01018 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf7eef360 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xf82a1fdb usb_string +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf880d76b cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xf894ce57 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xf8b72d13 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf925f172 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf9569c6e nand_unlock +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a1ef2e led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xf9aa4c6f cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xf9aaad17 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xf9d1a6af __module_address +EXPORT_SYMBOL_GPL vmlinux 0xf9d85419 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa06fef2 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xfa5081cf aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xfa52df5e fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xfa707a67 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xfa78ae74 css_id +EXPORT_SYMBOL_GPL vmlinux 0xfadbe54a class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb3aa679 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xfba481a2 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xfbac1391 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xfbbdb6f9 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc174d3e bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xfc48f942 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xfc5504f8 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xfc6428fa snd_soc_unregister_codec +EXPORT_SYMBOL_GPL vmlinux 0xfcad8a1b spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xfcc52539 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xfcf09faf ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xfcfbffc6 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xfd329189 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xfd409818 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xfd628b38 device_del +EXPORT_SYMBOL_GPL vmlinux 0xfd876896 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfda48a0a dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0xfdd1bef8 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdf301e9 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xfe2d86c2 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xfe95ae0b omap_dm_timer_write_status +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff1cb17c fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xff2371fc gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xff358c97 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffe5b817 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xfffd73ea usb_sg_cancel --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/armel/versatile +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/armel/versatile @@ -0,0 +1,9029 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x8fd38ed6 drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xd3526f9b drbd_set_st_err_str +EXPORT_SYMBOL drivers/char/apm-emulation 0x129e74f2 apm_get_power_status +EXPORT_SYMBOL drivers/char/apm-emulation 0xdf3329b8 apm_queue_event +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0436f8b4 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x056f46e9 fw_core_initiate_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x15fcc01d fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1d1f6e33 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2640979a fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x26aac7c5 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x28e39acf fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2a8c983a fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3348c5e7 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x53ce7e63 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x66df5cf1 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7633e8a5 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x797e7144 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x83955161 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb40f9eaa fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb769781e fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb8516664 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xca85f7d4 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdd0308e7 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe2fecc61 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf206f382 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfe663ae9 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfe953bf9 fw_core_handle_response +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01638b10 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01a95cc0 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02a8a60f drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x067961ce drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x087f3893 drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b4a3ace drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b642148 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c2411ae drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cf947cc drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d0a939c drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e490f8b drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10be2a23 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1104633c drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11b080a1 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15108a51 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x167a0354 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1717c9c7 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17c722ff drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19634588 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a8275ba drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dac8b5c drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eee807b drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23162745 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x281036df drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28b336cb drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x290efa3a drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ac85e36 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x301f5029 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x333dc991 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3354964a drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bf12e0 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3847607c drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a016c3 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d02e929 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fcf52bf drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47413755 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4981c817 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b1beecc drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ce753ff drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d952777 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f7eff33 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ff27cf3 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56c975a9 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5959b913 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5978ca0c drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b5e53b4 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ecc18eb drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5eedb51b drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fd1b50f drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6548da08 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65a7af55 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65bc46bc drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67131e25 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67329fc6 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b10a493 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d15f564 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e4869 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e5fb46d drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ebf7f30 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ef2e544 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x728a31f9 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x791f6723 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79fe688c drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x803923fb drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8311c51e drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84e6cbf0 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x865d6409 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87be23e3 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87c617cf drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89436a66 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a847b1c drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c11276b drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d3f636e drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ecfc56c drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9485814f drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99db2fd0 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9faf3731 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fd0afa8 drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa07c3e60 drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3b0003c drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5a85947 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa63c9ac9 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa80a5a18 drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab005518 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab5cc81f drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabca465b drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafeedde6 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb39c2174 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5a7fdbb drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb686b6f5 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd8b5c77 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4bcaef2 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7586a26 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8797c70 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc951841b drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd5e5b27 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd6b4431 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0390028 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd81c4fbc drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8f6dea4 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9bd98e9 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb043e30 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde39e408 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfdba73b drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe00bdb20 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0cd99b5 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe42d902c drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe791da41 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe995277d drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecb0a2e2 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xede263d1 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee86c61c drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef61b545 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf14e942a drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1c9ff69 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42b67ec drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf81a8f52 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfad0b5ce drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdc19d9d drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x05855848 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08d079db drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x11a41824 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1b5f73e5 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1b73b6f5 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2e0c6c45 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4dd9986b drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6c19274c drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x82ffa8d2 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8633982d drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x89f710b2 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8b1327b8 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91d034cc drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa2edcee8 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaae1bbaa drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xab6ca680 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb19e6f64 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb4394047 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb4ca95e4 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbd4b2951 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc227bb4e drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcbd63937 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcd44b884 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xddc1ed07 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe15220e6 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe45c4aa8 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe79182f4 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xef33587a drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0555cd5c ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x09d8b3c8 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b5ee647 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d5c6d93 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0f7d485c ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x115839d5 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d672330 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x23bbb853 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2ce9cb95 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x390b7180 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x42fea97e ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x43f4a006 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x46d4a03a ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b68233b ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53ce04b1 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x549761ab ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x54a18f74 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x57e0d83d ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5b7ad5a9 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5eb1b02e ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fb8acaf ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x82169828 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83436757 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86ce3c88 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x897be978 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d862ead ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x97b43bcd ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9ce00888 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9e1b145c ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2c7632b ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabb0a47d ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb0be7a0b ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb25ff305 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb977bfc1 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb99e8006 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc028ed2d ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc0ee49cc ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc20c28e5 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc52f676f ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5c614ac ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd603b6de ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd79db104 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdcce664f ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdeb857e6 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5531167 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6c639b5 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xec76b50a ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xed2a03c9 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf1c371fa ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf7c404e5 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf89507a1 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc61f109 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc9f7f92 ttm_read_unlock +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x1c66505b i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xed241fa9 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x29a2316f i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xee5d03d4 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x1429fb40 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x47f023d8 amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x008220fb hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0581513d hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x10a08c0a hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1c78a770 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1c8e6e6a hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1db847c1 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x21272798 hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x26d420ad hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2c80fb80 hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3394d21b hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3757ed10 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3abcff92 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3b0f412a hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3baa3621 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3e28a745 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x44ada62d hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x47ca2862 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x481a2316 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4b3f2e6a hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x549ef6ad hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x647c037a hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6673b7d5 hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x674a4d94 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6774a318 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b026e3e hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6c2ba378 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x70e68ae0 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x720f5092 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7243169c hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x75bd06ca hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7739b94b hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x79b2c9b1 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x819c85a5 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x83a339c0 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8c4650b8 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8d9c7170 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8f801b14 hpsb_lock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x938baa71 hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b523a2a hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa4feb4f0 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa6ad2f41 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xacccc618 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb04fe032 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb2c72d68 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbc3eb071 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbcf24ed9 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbfd692ab hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc214731a hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc2ae768c hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc4db1aa0 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd76b384 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd058d6d0 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd3530fa1 dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd3ddda32 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd713cbb1 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdb6b48b7 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdbc7034e hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdee42f7a hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe0356c44 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf44b2bad hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf6fb1f2f hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfa8297d0 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xff50b5bf hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x1501f9e7 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x5329f092 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xebe8355e ohci1394_stop_context +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x10faf4e5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xea9ed28a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xee034f38 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xf111aa96 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00bf7887 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00f541d1 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x14037eca ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x21a7e15a ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x318f595a ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x37d0130e ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4023de13 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4f7a10ae ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5c234bfa ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6b1c8b1b ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x701c8081 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7e72e7dc ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8f86313c ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb28d992b ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb956de9c ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbbe70935 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf40d88b3 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04345009 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b42a63f ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x227d8640 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x240ad4ba ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x247b9ec5 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d063363 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d0be6fe ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f67cd31 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30bb5f68 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3915935e ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f6cd598 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d8ab95d ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x512d06e2 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x59091474 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60416325 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x64ef1c34 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69e9a17a ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6bf1a8ce ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x70a822a2 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73378bc9 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7454a0be ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78ad6429 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e1f73a2 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e911ed3 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fac3d48 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x82fb2689 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83b32db0 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84fd10bc ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87f9e1b9 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89a8fccf ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ae195dd ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e3b7c8d ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x971038ff ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x988881da ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x988d13f9 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x995050d8 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9f9dce04 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaafc7d4f ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad9d22da ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb28c974a ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb2a3340c ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb753e20d ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb474f04 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe67c5da ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc10b094f ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8c04096 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xca1286bd ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd08a87d5 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3d5feb5 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd8b3778 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe19b3ed1 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2e6d6be ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe3108597 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe576757b ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe5af3e69 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6069ebd ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xee446c5a ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf3e5777e ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5f23354 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6596ec5 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8347215 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfaed9109 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfde26db4 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfe03196f ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfe98f60d ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff4ad9a5 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0132b390 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1342bf3c ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x71330e66 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7360c302 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x832ebb91 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa3bf37c3 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb7f8eeac ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb849087c ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe25417c7 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe539c9e9 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf02402cd ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfe37f90a ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0deeb8b7 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3c21ec1a ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x75246607 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x76ebce27 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90480d64 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xcf94a66a ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe7e39038 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xecd345fa ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf4e24c7c ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x14a29008 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x21e2eb46 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2b08f610 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8544c1cf iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xae77e958 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb7f8631e iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbea0081e iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf9686d31 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x039b94ee rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1e394978 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2606d86e rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x26feaabc rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2e716186 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x511fc173 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x837aaecd rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x88072957 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x88f49721 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9070c22b rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x91605dca rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa8899e7d rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb2435508 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2db54f4 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdc444373 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe4ed0a89 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xecc1b514 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf7966d1d rdma_resolve_addr +EXPORT_SYMBOL drivers/input/input-polldev 0x41643a4d input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x809d1654 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa53c0245 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf1ff9d86 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x10f053fa ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x6a773d6e ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xc10cbd2b ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xfd77d450 ad714x_disable +EXPORT_SYMBOL drivers/input/sparse-keymap 0x51d4892c sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x892a1336 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb81a34fa sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xc6727fe6 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xfbce87b6 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xfeafd5f4 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 0x66af9cef ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/ir-core 0xea4f69f0 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x0431d410 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x0d3ffbb1 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x46215957 lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x7b52f503 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xc846116d lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xd7d82f8a lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xe910b4fa lirc_get_pdata +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xf2455cb3 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xcab793a6 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x9ad335db mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x9671030c mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x26c9c995 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x64731188 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xaebb4e64 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xc6c4302f qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0xe61cfd0d xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xbd6a5177 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x03331c5b flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2fa445ab flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x40797bcf flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x45608712 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4c1c9ad8 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x579ad273 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b4578bf flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6f1ac1f6 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7068d248 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7ec2e483 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x82aecd01 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x86033585 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9bac0706 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9d5bb4ff flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa4bd8405 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa64b5ac5 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa9a319cb flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbced2f0d flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdbe83140 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe464e009 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x01711f5f dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15c26f49 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31409c4b dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x38aa159a dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x38bbee89 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5a66bee9 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5e80ec71 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6225816a dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x687066ad dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7235e541 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x733022cd dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x742682d8 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x746b02ad dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7c6a95f4 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a2ef94 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x883c17c6 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b3c91f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x927b5924 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x994769a3 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa408ee2f dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa5cbd962 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb3ecf0af dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb434b205 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb5f93340 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcd6c036b dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd3a4cce6 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe7406b72 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xec5e3e37 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed9e5ee7 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf0f4acc0 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf487376d dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf71d456d dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb25f454 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc105a50 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x31895a8d dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x708b74c8 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8a9a4170 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb9985b12 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xcd7d7d2a dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe9a7b275 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf2ded04e dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x3c11c1b2 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x1f58f8e0 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x239d519d dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x30fbfa31 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x619a7ff7 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x958681b3 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb8877881 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xcefb6977 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdaa064c8 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdacbb931 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xed7ca78e dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfe0f752c dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x53052fbf af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x325ae52a atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x372f9c9b bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x68a6f08f cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x5df2cfa9 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x0a107198 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xf7b80143 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x72407075 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x3c345a38 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x924fad21 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x195d1a8b dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7309606b dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x95aae7b1 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xbd9c8ecf dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xf6771f61 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x09f9ee06 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x1627ec25 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4581fe7e dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4ad78b16 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4c765fd3 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6d13b783 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb285c730 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf6384678 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x4a1af045 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x228af183 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x328dffb0 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x336cdcae dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x38780302 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x3bc74ced dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa4d6bf79 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xd17a5982 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xd7dac708 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0a6f4b41 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x224eb297 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x533f3f45 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x63c350c9 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x96d7b4c4 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xbefde710 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xdea23fb3 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xfc21a87a dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0f55e2b4 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x18505969 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1b290660 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x64b63688 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x73e419b1 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x78d8dfcc dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7dab01d5 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9106e1f0 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x962ae16e dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x978e2aba dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe9443332 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x63130341 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x9e0e5bf3 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xe20aa68f dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xfec1d600 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xd2ecbe7b ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x2c0eb519 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x76540154 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x53476a71 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xe58d34db itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x28fea1dc l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x08d12040 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xb1dba05d lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xf68cadd9 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x88b03baf lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xd9eb6a79 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x10065573 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xddf1bfa7 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x8077ebc5 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x8797288f nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xb42a6815 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xbcee3922 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x585031bc s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xb3343f45 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x91dce160 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x1372795a stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x04ba101f stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x8b724ae9 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xfe429b09 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xa3b14ab6 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x68e9e689 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xd1fa63b3 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x3ffc3497 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x35b26226 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x1850c0a0 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x94695483 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x276ddcff tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x8b75d972 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xe264f8ce tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x5841eb51 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x055b98a7 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x41f2fff3 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x4fa27147 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x6bee3fb6 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x7435a5e2 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x7231768f zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x22cdaac2 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x35e3b410 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x8ddb2fcf ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xa61c2e05 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/memstick/core/memstick 0x05b53008 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x091e86b4 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1b7c50bd memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1f7c469c memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2153e859 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x370011e5 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x488253b8 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5c347cd5 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6bad9301 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0xab9a65f3 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd0de5192 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe32729f9 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xead317aa memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xeb538191 memstick_free_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0dc01ed7 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1124162a mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2de32f3c mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x33b335fb mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x39d18b9d mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3aa05bb5 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4296fb4b mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x448578a6 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x513a4860 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5c9d3119 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x64779fdb mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x661375ab mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7467e280 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x88b88565 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8b99d2fd mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8c2ea1a4 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x912733be mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9cbd94a9 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa15c66f5 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa78abcd6 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbe98e0c9 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbf2a22f5 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc7fa2c39 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd92236a1 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdbd0e5f1 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe2bbf040 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf4dde15d mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf53e574a mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xffceb8e5 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x08270ffa mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0a936cda mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x152b3102 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x197998ba mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2627e874 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x28cdb331 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x35d99b9e mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x41c23e9a mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x44665a83 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x513a819b mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x537668e5 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x552c991d mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x591a63c3 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5ffc67e1 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6b5a6c64 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x71288d49 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8d6b703e mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x91adfb04 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x96d7ecce mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9d80531c mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9dc5ce8a mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf32d8476 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf64c732f mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf755693e mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf8e1fc04 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfb1a69bf mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x06692ee7 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x09c4f568 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1534a748 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1a216cc3 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1d5387f7 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x310f21a6 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x37434b5d i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x55fcec74 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6a64324c i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x712d0725 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7760fd2d i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8c9aea04 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb0be24e1 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbf066b07 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc469cb2d i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd8a3d28b i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe5dcb99c i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xef588fe2 i2o_msg_get_wait +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xb19f5533 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xe1b5cf97 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x058839dd ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x3b0e867e ad_dpot_probe +EXPORT_SYMBOL drivers/misc/c2port/core 0x5289cdb5 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0x86d6ed84 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x418af2bd ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xf122a197 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x235f4bf6 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x24fcfacb tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x3b0d9d01 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x459d0d01 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x4df7ada5 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x50ca86d2 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x57167be4 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x58f60c17 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x9264c116 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xa9f6053c tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xbf2db278 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xdfffc7b7 tifm_eject +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xeaea11e5 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x075e03fa nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x8c687175 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/net/8390 0x0604f77c ei_close +EXPORT_SYMBOL drivers/net/8390 0x09382c4a ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0x2f87780c ei_poll +EXPORT_SYMBOL drivers/net/8390 0x5df1f443 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x629aad12 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0x73c14a4a ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0x91aa760b ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x9c80257e __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xb0e41c6a ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0xd5a55d3a ei_open +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0970419c arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2eac1c05 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x528a3620 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x702f20d6 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x72fbda21 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x89e5175a arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8c5485b4 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa242f1c6 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb5216886 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf86074fb arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x2e2d4c13 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3521f019 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xa7fa5e50 com20020_found +EXPORT_SYMBOL drivers/net/bnx2 0xc226072b bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x9ae975ef bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0x9d5d9113 cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x13d137e5 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x18c7591c cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x21dd8c4f dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3489a110 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4343f7f3 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x498626dc t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4f143e62 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5a6131e9 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5a8396eb t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8e81807a cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa6e42522 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xac21e5a1 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc8fd0525 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd7f05f1c t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfb42d49d t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfe838c5a cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0c2c1070 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2648a338 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3692446b cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x4f4ff354 cxgb4_netdev_by_hwid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5d49e35c cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5d7f5d4f cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6ea1f124 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x75c17c97 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x76381df7 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x80ed42cd cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x9ad6baba cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa3ffc6d8 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb23aaaec cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb2929ec1 cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb7a586da cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc88fca8c cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd8d3d9ec cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdd1605e5 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xec3012ed cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xfe7ad4ac cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x174a0738 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1e7146b6 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9d1e43cd hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa8b40d69 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd1afe201 hdlcdrv_register +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/pppox 0x23b68f10 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x95fcfa93 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xec11e4a4 pppox_ioctl +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x6bbf04e4 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x8efc4be1 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa2823c9c tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xeeacbe35 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xffdb450c tmsdev_init +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x63f4391e i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x48c925c7 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53925849 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xaff019fa ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf6568ad6 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6cc696e1 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x95f8cd7d ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb955e1f4 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xcfa3b027 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xcfd4efd9 ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xdb3b190c ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xdc0f233a ath9k_cmn_rx_skb_preprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04413721 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08bc65e8 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09919714 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b6c8dce ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f0b3a55 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13e3f5f3 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ac88800 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b8c8d2b ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20978c8b ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24ca09b0 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2614afcc ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2829a1f9 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b0be97a ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ed36f30 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34475c2f ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3525f57f ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x39badc74 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b86cfc1 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40be548d ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43d4eb7d ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x446a55c5 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4767deba ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d735431 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4de82d8a ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fca9813 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54a5a03c ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56546e4a ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57d39d3d ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e5e727d ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60b88c14 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64f0b876 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x670e933b ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b0a0acd ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ea961f9 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70baefba ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71cda69e ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x733f7e55 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76b5598b ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x774b16d0 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7cf25eee ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d604c02 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x822d5acc ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82b9b289 ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8374bf95 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x876b77ab ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8da7164a ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8df2e267 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ea456d8 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x928a0db5 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x930b9ba0 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9412b333 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x95bb2304 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x974bd726 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98cdf2bd ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a234388 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a35a8dc ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ca40235 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d68ba37 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6ec0ae9 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa971a426 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa04f7cf ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1ff9c4c ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb30cfa9f ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb93c7925 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd83968e ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3d8e00d ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7496e52 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7b52459 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca09e546 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3431af2 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5f65a13 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe22e4bda ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3508c56 ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe51f24f4 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe59e5fb4 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe9101848 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb50d3ec ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xedfd5e35 ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf05d524c ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3fa5131 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8eb297a ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfcd1307e ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/atmel 0x40562327 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x4898ac67 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xb08c0537 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0a6179c7 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x113cc071 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x16c42d59 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21251c73 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x26222478 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3328c9ae hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x355b4150 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3593fb88 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3f067c2d hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x438e099d prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4abedaa8 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5ba83fe9 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x74015a4a hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x85116178 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8b37cf3f hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8b49b3d4 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa1fe1ee3 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa663ae2f hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa926f5a0 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb0420293 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbcc6268c hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc19504da hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xddebd152 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf38958ab hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfe3c1288 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1210b0ba libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x22778a14 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x47fae38e libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x48da4003 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4a7792a2 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x55d6ca5d libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x60397929 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6c2ff021 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x700412f2 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7b9086ce libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x83c9d2b2 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8442df99 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x84555083 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x87150ea4 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9ac1ca9d libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9f3299f0 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc3c5603b libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcb6be31b libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd508d0f0 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd686c609 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf4279c85 free_libipw +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00e6f048 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03c27d07 iwl_add_bssid_station +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0603e72f iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09594e59 iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1276609e iwl_tt_exit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x15ecbd4c iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1c63b14e iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1ef7a6db iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x261749f6 iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x265ad7e9 iwl_good_plcp_health +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x28a8d9a4 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b5b9e3d iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2c3229a8 iwl_rf_kill_ct_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2da303a6 iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2f067180 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x301fd3aa iwl_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32397704 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3422d98f iwl_set_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x355381b5 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x356681e6 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x36ad6188 iwl_tt_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37981890 iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3d8a05e6 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4747a19e iwl_sta_rx_agg_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x47791b2d iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x47f32357 iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x494d2318 iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c94cd54 iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4f38f985 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4f39de5d iwl_rx_missed_beacon_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50744a6d iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50d20b8b iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5455ee01 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5509b71b iwl_dump_csr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x55fa6b08 iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x56b9ae35 iwl_set_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x578e9e7c iwl_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5813c625 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58b1af12 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58e92c24 iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ad52e26 iwl_sensitivity_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5e2eac70 iwl_hw_detect +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5e86f1dd iwl_eeprom_get_mac +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x65069dea iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x684d1a91 iwl_toggle_tx_ant +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6bc3aa3a iwlcore_eeprom_acquire_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6d210344 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72581374 iwl_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7292e54d iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72a5989d iwl_dump_fh +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7310a1e9 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7349765c iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7456aa0a iwl_remove_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7cc7b9d4 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7dd36675 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x80d703b0 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x828d6d09 iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8314c72a iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x854a4ddb iwl_tt_handler +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x858fab27 iwl_set_rxon_chain +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85b452bd iwl_calib_free_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85d3b150 iwl_ht_enabled +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x869b31f7 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89e3d349 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89eb4ea7 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8e7fceb4 iwl_eeprom_check_version +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8ea2efdc iwl_send_calib_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x930314e5 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9322a080 iwl_mac_beacon_update +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93961ccc iwl_init_sensitivity +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9a9119e1 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9abf93b5 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa062dd52 iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa20d9cf4 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa2b66d73 iwl_tt_exit_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa4d71a7c iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6f5814d iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9fee6fa iwl_sta_modify_sleep_tx_count +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xabe64d82 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae079874 iwl_sta_rx_agg_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xafe55532 iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb027eaf1 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb1f28e17 iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb1f71853 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb268aa5f iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb35a642c iwlcore_rts_tx_cmd_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb3dac2b8 iwl_reply_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb3fd4468 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb54437ca iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb5aff642 iwl_restore_default_wep_keys +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb711cf57 iwl_reset_run_time_calib +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8aeaa44 iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb9650112 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbc9b75fe iwl_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbc9c8ca3 iwl_sta_tx_modify_enable_tid +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbd36edba iwl_verify_ucode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbd5613f4 iwl_tx_ant_restriction +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbf4b02ae iwl_tt_enter_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc36df88d iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc49edc8c iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc5208a28 iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc6b93f4b iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcaf90345 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcb282cb5 iwl_chain_noise_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcb2bade9 iwl_remove_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xccb24dab iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd504aaa iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xce62baad iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd49e342d iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd64c50a3 iwlcore_eeprom_verify_signature +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd64dc343 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd9402083 iwl_setup_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdf497d34 iwlcore_eeprom_release_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3a82617 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3badd9b iwl_sta_modify_ps_wake +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe64a1533 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe777824d iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe81de8cd iwl_rx_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8360056 iwl_free_tfds_in_queue +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xebc9a589 iwl_update_tkip_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf16eefbe iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf1a550d9 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa461401 iwl_set_hw_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa576f9a iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff4017c2 iwlcore_eeprom_enhanced_txpower +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff4d7299 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x367f9c37 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x57deec18 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x62991aaf hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x743a65fa orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x819b618f orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x824fa1db orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x837a3da5 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x85e5e1cd __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa2a43231 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa3ce6d53 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb24b65a7 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc88f260e orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdaf380bd free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xed156cd2 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf00484d0 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf4979f32 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfdfc6fc7 orinoco_if_add +EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe631d3f3 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x24ef18f3 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x342afa69 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x836a5439 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8aa94b01 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa807784f fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa8f4686e fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xba0e5a95 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0766b427 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x091a329c fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x110919e2 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x121e7178 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x198da445 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1993f5f0 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c9dd78e fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1f597e9d fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21e1aa8e fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x348e0c85 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4475e871 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x45ac5611 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4f6e3a36 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x50fc959c fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6393689b fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x679da546 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x685a040e libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e6171f6 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7218132b fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75a505f9 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7aa3b41b fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f3751eb fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8f3c2ea3 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98657f77 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f7d730c fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa4d568b8 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xacd627de fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb26be82d fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb888f7e6 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb931f189 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb93332b3 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc1dd444d fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc82522a7 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb81e991 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcd80c837 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce6681d4 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcf430d78 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdf12a550 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe15e9435 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe5844411 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf0c5ba44 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfcde781d fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xd32e12eb mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/raid_class 0x0da601f3 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x12726c7a raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x95551fe5 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1fd15861 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x353556c2 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x456dfdde fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6acf4129 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6b89cc56 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7434db89 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa29c1c5a fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc2b686b5 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcd1971ce fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdbbcccec scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe672cfd0 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe675927b fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe69c0aaa fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x02270988 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x11f62b08 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x14e9c23e sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x272cecc6 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x28dc5356 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2c477405 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x348c3d8c sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3595b51d sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3c1f9e31 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x46551b71 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x59191661 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x60e94deb sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x66e10558 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6877ae72 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x689173d0 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7d23fe84 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x82a1c101 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8453330e sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x871aff83 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa7a5dc57 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb6432ce8 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc1691145 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd3d04358 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeb7286c3 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf524548f sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf6f42c31 sas_rphy_free +EXPORT_SYMBOL drivers/serial/8250 0x17d3e024 serial8250_register_port +EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/ssb/ssb 0x086f8f7e ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x0a6992e5 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x0e8d792e ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x176c53e0 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x190be94d ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x1e425e67 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x2203b5e9 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x28ec0be5 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x437dd50e ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x4a0b1894 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x56db3cca ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x59f24d45 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x5ee31649 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x60ee3bc9 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x799e67c8 ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x7b41683c ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x8cfcfbd2 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xafa5fd7f ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc5e69f9e ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xe3b9c6a2 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xf44bd0fd ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xfc1167e9 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xfd171a2d ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x05f0e57d iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0dd19a73 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0f49234a iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0f5e2068 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1253aabf iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1348010a iio_free_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1437da40 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x14714698 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x16ee0d04 iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x18806a65 __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1f5eaf49 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1faff21f iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2aa69570 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3c293e34 iio_read_ring_bps +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x459f0356 iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x46cbd964 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4eb9f9a1 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x553d5a6b iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x553fc319 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x596aad37 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6d3d56f5 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x74ca3bc4 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x74eb08f4 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7cdd2c4e iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x88b78aeb iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x97430f08 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9879978c iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xac5c1847 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xac5e40f8 iio_get_new_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xad46d3bb iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb2f77bce iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb7278d98 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbe24111e iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc8abbb61 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcc163dda iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xccc623bf iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd755ef93 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xddb194ad iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe1affae7 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf16e539c iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf760ed61 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x06248a05 iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x08edc6a6 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x21c21783 iio_set_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x39463012 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x39e4014a iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4159f1c0 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x552d3ea1 iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x5e08856c iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x974d7e91 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xa81cb90f iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xac3792b9 iio_get_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbe132942 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc571ce95 iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x5bb662dd variax_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x7657b9ca pod_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x7fc91fbb pod_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x93d174c4 variax_create_files +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x3cb44311 rar_release +EXPORT_SYMBOL drivers/staging/memrar/memrar 0xaf94751b rar_handle_to_bus +EXPORT_SYMBOL drivers/staging/memrar/memrar 0xc7723e22 rar_reserve +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x6cce72cd rar_get_address +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x013d792c SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x086c35a3 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0bce8dd6 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x183fdb35 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1e6e9bc4 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x227614bd ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x23157c1d ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x26afd46a ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2c6bd3ab ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2ea42803 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2f558c45 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x30f48762 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x36f3db8e ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x39342fe5 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x40019670 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x43162a71 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x46404b8d ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x48ad1065 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c569884 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50d4beb0 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x574ef9f3 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x58158dcf Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6e36beb9 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x72e91417 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x746834fe Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e547435 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x865aed49 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86d7d462 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x882415ba ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c0cbf49 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c9df15e ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9018bfed ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x941812fa ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x94828098 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x98f6cc5d ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a3f7ead ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a70a871 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9aaa7cba ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9d4c642a ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa052e08e ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa894c547 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xab3cdc35 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xad2e6d30 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xae867442 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbc490e75 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc1cf3229 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc2ff85e0 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc4ab10f2 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd95d69cf ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd9a15465 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd6f534d ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe3dcf4ad HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa168ef4 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfbd5d15e ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0c4511b6 vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x1730ee12 vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x251b9ed8 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x3d1af350 vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x48eeb622 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x4ae911d8 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x4d7ca8ce vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x66227eae vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x75a28ca4 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x93dff61f vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x94b2590f vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0xb98a3c8a vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xcd8a6ab0 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xcfbd7f5b vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xdab0c728 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xdf047a44 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe5965438 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xe8cd656c vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xeb2cce20 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0xeb57a59e vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf586369e vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0xf8a94617 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xfa597201 vme_slot_get +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 0x1bd1037c ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x2d6aa819 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x5c841fa4 phone_register_device +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x71461ce1 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4ad8a043 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x535ef29e usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x61a05535 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8204f256 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8605d8df usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9a0f45b1 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9de76d14 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa8f1d819 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xac1e985b usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe0dcfc3a usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xebe60d9e usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf71c943a usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfb61afc3 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfba7e686 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x47209b0b usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xf0033a73 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x519044a3 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xa16e26ad lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x66607695 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x8ea83e78 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x91db5c3c cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0xdf65f7fe cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x8541d494 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0xe3fea976 display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/macmodes 0xed948116 mac_find_mode +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x3e68cc23 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x75b1fcd5 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xaa8a6e81 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x3960a9e0 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x39a76077 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x5212b079 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xe05905cf matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x6fd4f116 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xefa9449b matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x0b88ac95 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x0ed5a284 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x2a747c35 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xb79091f8 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x275e31e3 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xd6fb5e22 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x11d14f6f matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xad6868a3 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xbbf4e27e matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xec6e52cd matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xf960a0c6 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x1ab6759a mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x126819db video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x570898f8 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x2868b510 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x64318fdb svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x67fe6701 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x83a9c717 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x92611f2f svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xb0adeea5 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf82a2173 svga_tilecursor +EXPORT_SYMBOL drivers/video/syscopyarea 0xbd0604d4 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x3666ac6f sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x54400235 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x1852bcbe w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x7314fd82 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x2dc61ad7 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x36b0b0ad w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x97089f26 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb4b31f20 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x04cb0eea w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x14dd4d9b w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xb1738c24 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xfc85e07e w1_remove_master_device +EXPORT_SYMBOL fs/configfs/configfs 0x23a35a4b config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x24613917 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x2ae068b4 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x40871aa3 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x4d82bbb7 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x6c7df199 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x71243528 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x79efa505 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x85546a30 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xc8eb8bf1 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xd9644f7b configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xe55214fe config_group_init +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x12d33a25 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x14df392a __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x1c08fef4 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3c369d3f fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x5d72a411 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x657baf7d __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x67f1549c __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x70be4489 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x84069658 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x8601b7f6 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8a9a5921 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x96b07182 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x979af730 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xa3f05c8c fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xaa0b8554 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xb164669d __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xb7c0a76a __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xb8db4d9a fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xc12f0232 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xc36e0fa4 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xc65eff70 fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0xcc56dc64 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xdfc73159 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xecea56ee fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xed1591ff fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xfaee57c1 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/quota/quota_tree 0x5caf4f25 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x66549fe9 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa55d7c61 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xd93993cc qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xfdedd19b qtree_release_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0180b648 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x2003bad9 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x2e3e383f lc_find +EXPORT_SYMBOL lib/lru_cache 0x3a68c511 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x4f6f5d87 lc_set +EXPORT_SYMBOL lib/lru_cache 0x759de724 lc_create +EXPORT_SYMBOL lib/lru_cache 0x91f5db6a lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x95ffb059 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x9fd98834 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0xc65c6ee3 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0xc8f54604 lc_put +EXPORT_SYMBOL lib/lru_cache 0xd4544a78 lc_changed +EXPORT_SYMBOL lib/lru_cache 0xe3230e4c lc_get +EXPORT_SYMBOL lib/lru_cache 0xfd3782c6 lc_del +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x26b6e6b4 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xdcd27e86 make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0856ce44 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x0c15c670 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x155e01e8 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x1a20238b p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x20a57a47 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x264044e4 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x2984e04f p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x343d78ce p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3c94915e p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x413e2434 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x4f557f91 p9_client_version +EXPORT_SYMBOL net/9p/9pnet 0x55b83db1 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x740597bc p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x8b09c7d8 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x94c4ff02 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x980dfb60 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa2bce8b7 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xa454a4da p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xa9b6a00a p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xb38d2e09 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xb7478c1f p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xb8a2abec p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xbdfda85b p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xcd6092e1 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xd0c332cb p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xdfd202ae p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe77a63f2 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xf180c16f v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xf3be56cd p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xf6efcdbf p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xfc5c3334 p9_client_destroy +EXPORT_SYMBOL net/ax25/ax25 0x01715010 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x0a44718d ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2640cc40 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x304654bd ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x348033a6 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x72c99de3 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9085ef07 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xa19d8370 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdbe220c7 ax25_find_cb +EXPORT_SYMBOL net/bridge/bridge 0x7354ae19 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x888fe30e ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x8e90a719 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb9051463 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x06b514b9 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x0e095a5c cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x0f9571d2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x2686b065 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x287681c2 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x2c1c6ecc cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x3817c26c cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x4021a406 cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4f2d8111 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x5446778f cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x55a3eb6e cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x56fd0dbe cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x6c6c70ab cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x6e82f6d3 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x706f1c27 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x7fe92e0d cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0x835f9ffe cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x864de4a7 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x8a152bbd cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x8d5d7bb6 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0x94f851f3 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0xa632f982 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xb2a524a7 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xcc3915d6 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0xcd8c0148 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xd3b943f5 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0xd825a02c cfpkt_info +EXPORT_SYMBOL net/caif/caif 0xe6ee1ccd cfpkt_create +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf6051e0c cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xfa5bada6 cfpkt_queue +EXPORT_SYMBOL net/can/can 0x039ce0cc can_rx_register +EXPORT_SYMBOL net/can/can 0x0677668d can_proto_register +EXPORT_SYMBOL net/can/can 0xb8e2f982 can_send +EXPORT_SYMBOL net/can/can 0xd6345a4b can_rx_unregister +EXPORT_SYMBOL net/can/can 0xd6fcd3f9 can_proto_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x015010b2 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x01b19aec wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x04336b97 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4b698647 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4e46a95a wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x70b783b7 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x793e21c5 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7e41ef37 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x81b5741a wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd359d39d wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd4579fd8 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd818150b ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf8ce45c3 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x1ba1fc94 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xb79fd069 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe7f025ff arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x502247ce ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x9bdcb0ae ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb8b014eb ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2699c916 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x473b6b1e __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9ed5ae61 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa4e5a64d nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe7add991 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf11d92d3 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf6e56839 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/tunnel4 0x621a8430 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xd7df4902 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xaa77e0e3 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xaced02fc ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb6fb11bb ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe9f60d48 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x3cd937c9 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xfab90729 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x15333851 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xb8039043 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xf5b8d9a6 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/l2tp/l2tp_core 0x3ebd3012 l2tp_recv_common +EXPORT_SYMBOL net/l2tp/l2tp_core 0xd628ed88 l2tp_tunnel_destruct +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x0ebf52b1 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x10bf8c6f ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x146fb4e5 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x1f5314ba ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x35b10fc3 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x372154b2 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x38a8ab25 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x3a534a90 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x3a55805f ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x432dba64 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x434c404c ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x478e5ffc ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x4e01bcfa rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x4f4bb011 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x54775143 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x61fc0711 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x6eb2fa4b ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x703a96d2 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x750fd59d ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x7864a582 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x907cb9e9 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x9171bd9a ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x9a28d3dd ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa6b404ba wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xaa5a33d4 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xacbf6e07 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xbafa88d4 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd01b2926 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd0f94da3 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xd45040be ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xd84a0a18 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xe2d15275 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xe43f3863 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe6a817d5 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xeede9ebd ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xf1127c0b ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xf3970461 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x032132d5 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x15dcd133 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x43daa283 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x44c5efa7 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x99618f9e ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9d865c98 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9e826cf3 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb4783474 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdb1c49e2 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdbd318fd ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf4f6ac73 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb7ccf120 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xebb4c961 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xfea7315e nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x1e0dec19 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x2977dd72 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x2c203ffb xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x43287ec9 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x6079312d xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x78b68777 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x9a21a495 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xbcac5e53 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xd1212cda xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xd3c14f98 xt_unregister_match +EXPORT_SYMBOL net/phonet/phonet 0x10b3d73c phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x1f1cdf92 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x4a3bb3df pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x57133fc4 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x5cfc4069 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x694a82ce pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xb099094e pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xd2382eec phonet_header_ops +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0936ed10 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1ce2bab9 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1fd2c3b3 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2b7027b1 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4eea9dd9 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4f76ba80 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5d4cba30 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6651e649 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x87283f41 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa1286be5 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xade79810 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xca0932d2 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe5e41b61 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe8af880e rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf631c0a2 rxrpc_kernel_send_data +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8a8d5fd2 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x248b9ea2 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xf2543062 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x01df48c6 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x02f39889 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x082d9835 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x08fda90f cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x091b470c cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0eb8cd77 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x16eb1108 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x2039b83a cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x299a4393 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x3cd12790 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x3d6608b5 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x4010af70 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x4fd9ade2 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x50b5f4ef __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x5984a382 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6f5a6a1a cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x7b2be57a __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x83eb06c6 cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0x88749c4e cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x93f81ecc cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x97cc0a07 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xa9761140 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xaa0ff2cf wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xab775269 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xabba645b regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xad3cb88b cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xae328d01 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xb0a2b0fa cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb22496b3 cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xb436e79e cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xc1645e8b ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0xc50c663c ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xcf14b477 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xd804f568 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xd8321c0d ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xdf231379 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xe6f033eb cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0xe86bb934 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xe879a32d freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xebe75d5b __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xf12d3696 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xfb7e1c38 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x34100565 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0x3c93365e lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x8c3e78e2 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xaf781f7a lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xb9deaade lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xbefda199 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xc5288d54 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xdf9ce961 lib80211_unregister_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0xe8ca5a88 ac97_bus_type +EXPORT_SYMBOL sound/core/snd 0x032577a2 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x0c42f790 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x18a1db80 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x19e18057 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x1b120d8e snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x1b45de32 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x1ef7662e snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x1f8f646d snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x293f76c6 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x29f52500 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x2a3f58c6 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x37867ddf snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x43cb2748 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b162848 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x4b6d80cb snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x4d1ce4d0 snd_cards +EXPORT_SYMBOL sound/core/snd 0x5219f010 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x55118b1f snd_card_create +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x68d9f17e snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x7807ae77 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x79867a09 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x84a1edc9 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x88fc81b3 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x90dfb66f snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x962bfd5f snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x969f2ff9 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x9b3f6b0e snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa04ad110 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xab15bbff snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb52c8773 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xb9846269 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xba5078a4 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xc3cf1854 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0xc73d6566 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xc7e4f03d snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xc9bf1662 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xcaae242e snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xcb987010 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd0f19d5a snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xd8c331c9 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xdd29061f _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xf046ccf3 snd_info_register +EXPORT_SYMBOL sound/core/snd 0xf352081f snd_ctl_remove +EXPORT_SYMBOL sound/core/snd-hwdep 0x8ebfd0de snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x0e029b03 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2ddaabcf snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x4f62bb52 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x5a942231 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x78651949 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0954d9da snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x0a24b4a6 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x0c688ed3 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x192717b3 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x2003c847 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x2293dab5 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x25b826fc snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x2a3ff7e7 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x30f30d16 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x32018737 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x3643b007 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3c968a98 snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL sound/core/snd-pcm 0x45881877 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x51fcfb1f snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x64673c44 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6ba84dfb snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x6d95488f snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x772a2fe3 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x772ab8d6 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x7ab44c0a snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x7cdb6e0a snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x83fc550a snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x84cd45d3 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x95c95df0 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x9fd30fa4 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xaafe741e snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xad41c097 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xb13c2e85 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xb504946b _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xb5f6d5e3 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbcf61956 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xbf301868 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xc403406d snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xc5493360 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xc6dfacf5 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xc7d3a99b snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xd0402382 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd265ddff snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xea0feaee snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf4802603 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xf6d7e5d6 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06ab6040 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2d8025be snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2f1a3cfc snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2ffe95aa snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x438eecb7 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x67637db2 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7840b186 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x84e259b1 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9b16ee85 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa02a41e3 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa1f1013f snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd439c865 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd74909e5 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe8d88d67 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xee8434a7 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xefc2567d snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf8878aaf snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-timer 0x05b69ca7 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x09bad966 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x2cdb0cd3 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x467b97d4 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x76a24c3f snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x9535a913 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x96439f50 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x99819891 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x9c1799e2 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xa7d015cf snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xa91ce8f6 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xc9fcd329 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xe7b0603c snd_timer_global_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x9fe2fcbc snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x13a668a6 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2076eac4 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x26637951 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5e631b74 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbb584882 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcfcb7c9f snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xed076747 snd_opl3_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x032ceb8f snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3734a47c snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x462c1d51 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x652b3a7c snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x87096407 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x96414ec8 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc50abdc5 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc7768499 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfe1c2ed0 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x237dcb20 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x48e876c2 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x98242945 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa0c8bca3 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa459485e snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xab24794c snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x02e3c2f4 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x2052da37 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x2413bffa snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xbb630add snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x08a66aa6 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xf53da8b2 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x013ab9d3 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x53d83081 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x86f6a61a snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb1c00990 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb5a5ff15 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x3c6e0ba5 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x47a8dcd9 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x4ebc3864 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x88f65255 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x8ac5d3c9 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xd966cc58 snd_i2c_bus_create +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0ef9aa4b snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1056efac snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1ba57a32 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x45552cc3 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5aa279cc snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5fd2fe5e snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6437ac5f snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x79478173 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9c64edcf snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9f970c98 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xacc7a746 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbd42c49c snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbd6c56ca snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd0dc79b1 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdf5cc2df snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe87ff157 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xed331f53 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x12cf1f7d snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1820bffb snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x35954550 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3c2174f5 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x64b1d0e6 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7d2c4f13 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8ab57b96 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8ae18591 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe988d35a snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xd8f64d08 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x199f302e snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4bec1a1a snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xcf7aa0e2 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1a9a2b89 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2aabb68d oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x62ab04c5 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x63830c17 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6876b0af oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6f43d915 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x752ae726 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7f364124 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x813c287c oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x88dd79dc oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8fe6ae4c oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9147d0ee oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x97ab3bdb oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9ad1bd17 oxygen_default_i2s_mclk +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9c880b84 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xaabf1da6 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc5c8a062 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdc337699 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdfc6fb12 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xea7c6763 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf03a386f oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf81d8d11 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1e390a07 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4b43195e snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7ba1f5cc snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x98187d02 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xff9fb21a snd_trident_alloc_voice +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x91a32f3c uda134x_dai +EXPORT_SYMBOL sound/soundcore 0xca722c1c sound_class +EXPORT_SYMBOL sound/synth/snd-util-mem 0x33dc5202 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x43178f7e snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5d25ada3 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x694c6b7a snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x74624765 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x80b8d66f snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc535653c snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe6ce4268 __snd_util_mem_free +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xe0d663d3 snd_usbmidi_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x4d12e455 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x7416d97b dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x7686279a dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xbf91bac9 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xea53a99c dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xfa070ff7 dm_mem_cache_client_create +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x001dd84a xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x005abebf hippi_type_trans +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00dc8fcc register_netdev +EXPORT_SYMBOL vmlinux 0x00e2410b tty_set_operations +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user +EXPORT_SYMBOL vmlinux 0x00ef099b mddev_congested +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0103907d blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x01136439 pipe_unlock +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01263bcf tty_shutdown +EXPORT_SYMBOL vmlinux 0x012b6c4b jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x01424f59 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x018f2b2b security_path_truncate +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01b4b046 pci_find_capability +EXPORT_SYMBOL vmlinux 0x01e3e198 clkdev_add +EXPORT_SYMBOL vmlinux 0x01e947e3 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x02034fe4 freeze_super +EXPORT_SYMBOL vmlinux 0x020d290e __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table +EXPORT_SYMBOL vmlinux 0x02534306 tr_type_trans +EXPORT_SYMBOL vmlinux 0x02539f03 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x028a4324 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x02932a61 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a5c1e2 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02b41669 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x02e1c8fd d_add_ci +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02fd74f9 scsi_print_command +EXPORT_SYMBOL vmlinux 0x0302c48b idr_destroy +EXPORT_SYMBOL vmlinux 0x031ba9bf atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x032f6261 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x033313a8 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x0334795d icst307_s2div +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x035d0d89 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x0377bc8d dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038e3027 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x039b8bd6 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x03b092c3 input_release_device +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03eb39df vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0400429e set_irq_chip +EXPORT_SYMBOL vmlinux 0x04068e93 bdi_init +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x044ac5ab fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x0450c1a1 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04a28077 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x04af35b1 bio_clone +EXPORT_SYMBOL vmlinux 0x04c47356 md_register_thread +EXPORT_SYMBOL vmlinux 0x04cd669c md_write_start +EXPORT_SYMBOL vmlinux 0x04d706e1 simple_rename +EXPORT_SYMBOL vmlinux 0x04e97b1f tty_port_init +EXPORT_SYMBOL vmlinux 0x04f1a859 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x04ffe49d key_negate_and_link +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x052c22c6 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x055da2e7 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x05609004 set_blocksize +EXPORT_SYMBOL vmlinux 0x057ac4e5 pci_request_regions +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05840494 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x059e53c8 lookup_one_len +EXPORT_SYMBOL vmlinux 0x05a5b746 bdi_register +EXPORT_SYMBOL vmlinux 0x05aa41f5 __lookup_one_len +EXPORT_SYMBOL vmlinux 0x05b84bff __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x05b9d2d9 kmap +EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion +EXPORT_SYMBOL vmlinux 0x05eef7c5 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x060dca8f xfrm_lookup +EXPORT_SYMBOL vmlinux 0x0613776a scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061a3e9e input_unregister_handle +EXPORT_SYMBOL vmlinux 0x06504a4d scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x066581db pcim_enable_device +EXPORT_SYMBOL vmlinux 0x066661d4 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x066e1d6e genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x0677f039 __f_setown +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06b48a5e thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x06ccaf6c noop_qdisc +EXPORT_SYMBOL vmlinux 0x06d3388a kobject_put +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06f65bf1 devm_ioremap +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0716a462 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x0725efba scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x0726fd62 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x0728f21f dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x073fc778 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x07462ad3 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x07743190 dquot_destroy +EXPORT_SYMBOL vmlinux 0x07915886 clk_round_rate +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a2df25 poll_freewait +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07ae0bcc backlight_device_register +EXPORT_SYMBOL vmlinux 0x07b4156a fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x07b665be lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07e811a8 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x080d3160 neigh_for_each +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082de854 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x082fdc74 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x0834b7c2 sock_no_bind +EXPORT_SYMBOL vmlinux 0x0838b44e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x08504c7f devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x085b68ff skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x08694b5c get_sb_ns +EXPORT_SYMBOL vmlinux 0x0888dd27 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x088b2631 complete_request_key +EXPORT_SYMBOL vmlinux 0x088ece7b tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x0899cdf0 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08db8a03 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x0920dea1 thaw_process +EXPORT_SYMBOL vmlinux 0x09298b81 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x094587c5 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x0948180d sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x094a9b66 downgrade_write +EXPORT_SYMBOL vmlinux 0x09748a2d __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x09804f6f simple_write_begin +EXPORT_SYMBOL vmlinux 0x0986be29 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a172c1 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x09a1c0a3 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09dc4905 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x09ef257b remove_proc_entry +EXPORT_SYMBOL vmlinux 0x09f3a202 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x0a188f60 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x0a1bebc5 kernel_execve +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a285f4d touch_atime +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a354134 sk_filter +EXPORT_SYMBOL vmlinux 0x0a49c97f neigh_compat_output +EXPORT_SYMBOL vmlinux 0x0a4aa6a1 init_net +EXPORT_SYMBOL vmlinux 0x0a6b8fcf scm_detach_fds +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0ac9df99 inet6_release +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ae3dd3e dquot_alloc +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b148748 amba_find_device +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b881b62 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x0ba6487f ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x0badc255 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x0bdf8dd3 free_buffer_head +EXPORT_SYMBOL vmlinux 0x0bec3384 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x0bf21235 nf_reinject +EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout +EXPORT_SYMBOL vmlinux 0x0c1f20cf bio_sector_offset +EXPORT_SYMBOL vmlinux 0x0c2efc91 soft_cursor +EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0c38d106 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x0c4d0b2d cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7985a1 scsi_host_put +EXPORT_SYMBOL vmlinux 0x0c86ed57 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c974ca1 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cab3b2f kobject_add +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cdd158d sg_alloc_table +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d436453 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x0d49d458 uart_register_driver +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d7c6a4a blk_remove_plug +EXPORT_SYMBOL vmlinux 0x0d8f203a remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x0d8fc43f journal_set_features +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da7f587 dev_addr_add +EXPORT_SYMBOL vmlinux 0x0db3877d ___dma_single_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x0dc41803 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x0dc793e2 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x0e1447e5 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x0e1f36e3 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x0e4c6836 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5856b8 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x0e596a97 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x0e5de780 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x0e6573ff bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x0e79a393 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x0eae495f seq_release_private +EXPORT_SYMBOL vmlinux 0x0ec78c78 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init +EXPORT_SYMBOL vmlinux 0x0f17b976 d_genocide +EXPORT_SYMBOL vmlinux 0x0f1bab7e user_revoke +EXPORT_SYMBOL vmlinux 0x0f824a96 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x0f852952 dput +EXPORT_SYMBOL vmlinux 0x0fa19344 dev_open +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb79044 dm_register_target +EXPORT_SYMBOL vmlinux 0x0fbcd265 phy_find_first +EXPORT_SYMBOL vmlinux 0x0fdad53f md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff1fc2a disk_stack_limits +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x10327e79 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x103536fe dev_alloc_name +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x108c0dec cdev_del +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10e47bd2 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x10e5da37 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11036958 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11095bc2 blk_insert_request +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x113c0bfa alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116ba1f2 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x11ca4790 put_disk +EXPORT_SYMBOL vmlinux 0x11cc3b34 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1280ccc1 vfs_rename +EXPORT_SYMBOL vmlinux 0x12849ad2 skb_put +EXPORT_SYMBOL vmlinux 0x129fb8b4 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x12a99944 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x12aa3aac tcp_ioctl +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12ee6af2 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13204206 dev_get_stats +EXPORT_SYMBOL vmlinux 0x132d94b5 kill_fasync +EXPORT_SYMBOL vmlinux 0x139cd229 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x13ab50a1 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x13bc9443 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x13c2583b i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x1427f2c4 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x1450d20c get_user_pages +EXPORT_SYMBOL vmlinux 0x149dd538 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x14addc41 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x151276b8 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x1543e129 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x1545e765 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15c0ab05 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x15f20c73 ioremap_page +EXPORT_SYMBOL vmlinux 0x160957bc journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x161f0ed9 path_get +EXPORT_SYMBOL vmlinux 0x161f1164 input_grab_device +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16368c63 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x166e74a2 cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0x16724375 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x168d84cd dquot_commit_info +EXPORT_SYMBOL vmlinux 0x169d101e mdiobus_scan +EXPORT_SYMBOL vmlinux 0x16b48804 pci_get_class +EXPORT_SYMBOL vmlinux 0x170aee64 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x170ec140 seq_printf +EXPORT_SYMBOL vmlinux 0x1717a3e8 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x171d0ae3 dma_unmap_sg +EXPORT_SYMBOL vmlinux 0x17556ebb xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x177928ea tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17ddb88a blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f872cc skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x181bde84 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x185e5865 generic_readlink +EXPORT_SYMBOL vmlinux 0x1891790b sock_init_data +EXPORT_SYMBOL vmlinux 0x18bd75dd netpoll_print_options +EXPORT_SYMBOL vmlinux 0x18cc6f4b skb_checksum_help +EXPORT_SYMBOL vmlinux 0x18d83e57 scsi_device_get +EXPORT_SYMBOL vmlinux 0x191257c1 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x19651933 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock +EXPORT_SYMBOL vmlinux 0x197d96a7 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x19c50a16 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a31787d input_get_keycode_big +EXPORT_SYMBOL vmlinux 0x1a4bb22f blk_integrity_register +EXPORT_SYMBOL vmlinux 0x1a57a50b tty_name +EXPORT_SYMBOL vmlinux 0x1a5bd03e __alloc_skb +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a804b1d get_write_access +EXPORT_SYMBOL vmlinux 0x1a882364 down_killable +EXPORT_SYMBOL vmlinux 0x1a93aa96 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x1a9df6cc malloc_sizes +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa30cc0 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1aecbe18 cont_write_begin +EXPORT_SYMBOL vmlinux 0x1afb561c inet_addr_type +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6610e5 unlock_page +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb5d5ca jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x1bbbd1df jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c33814b dquot_drop +EXPORT_SYMBOL vmlinux 0x1c549bcc scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s +EXPORT_SYMBOL vmlinux 0x1c91831c pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x1c934494 generic_make_request +EXPORT_SYMBOL vmlinux 0x1ca43bcb inet_del_protocol +EXPORT_SYMBOL vmlinux 0x1cc61e6b read_dev_sector +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cc6fe04 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x1ccde6cb lock_sock_fast +EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc +EXPORT_SYMBOL vmlinux 0x1ced885c neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x1d0d811d inet_frag_kill +EXPORT_SYMBOL vmlinux 0x1d209df9 register_8022_client +EXPORT_SYMBOL vmlinux 0x1d22967c call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3e2d86 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x1d61213d brioctl_set +EXPORT_SYMBOL vmlinux 0x1d7533ef skb_copy_expand +EXPORT_SYMBOL vmlinux 0x1d80468d redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x1d9f047d find_or_create_page +EXPORT_SYMBOL vmlinux 0x1da9b874 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de3e74d mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x1e08b65d netif_receive_skb +EXPORT_SYMBOL vmlinux 0x1e25d009 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x1e2e7462 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x1e40ae05 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7686b7 netlink_unicast +EXPORT_SYMBOL vmlinux 0x1e9ecc28 __lock_buffer +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea32509 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x1ea672d3 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x1eb64596 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x1ece7c84 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f3d5d30 __kfree_skb +EXPORT_SYMBOL vmlinux 0x1f5bef95 d_validate +EXPORT_SYMBOL vmlinux 0x1f799a6a mmc_free_host +EXPORT_SYMBOL vmlinux 0x1f80587f bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x1f876840 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x1f99d720 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x1fab3b11 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x1fb70449 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x1fb737a4 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x1fbd745a mdiobus_register +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x1ff966c2 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20021998 set_security_override +EXPORT_SYMBOL vmlinux 0x201fab3d unregister_8022_client +EXPORT_SYMBOL vmlinux 0x203160fd __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x205b6439 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208a8cf7 elv_register_queue +EXPORT_SYMBOL vmlinux 0x20a56cd3 phy_disconnect +EXPORT_SYMBOL vmlinux 0x20b550a7 lock_may_read +EXPORT_SYMBOL vmlinux 0x20bdfaae ip_route_output_key +EXPORT_SYMBOL vmlinux 0x20e44a0d single_open +EXPORT_SYMBOL vmlinux 0x20e8a186 ip6_xmit +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x211533bd pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x2126ec81 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x212ce48d have_submounts +EXPORT_SYMBOL vmlinux 0x21408642 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216f9ae1 simple_readpage +EXPORT_SYMBOL vmlinux 0x2183f13c blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x21ae90d5 prepare_binprm +EXPORT_SYMBOL vmlinux 0x21bb6d3d dev_uc_sync +EXPORT_SYMBOL vmlinux 0x21d2d2b6 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x21d9e2b8 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x21dc6065 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x21e7f9cf inet_release +EXPORT_SYMBOL vmlinux 0x2201c9d7 __bread +EXPORT_SYMBOL vmlinux 0x220d61a5 mtd_do_chip_probe +EXPORT_SYMBOL vmlinux 0x22131cfb down_write_trylock +EXPORT_SYMBOL vmlinux 0x22137910 generic_setxattr +EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get +EXPORT_SYMBOL vmlinux 0x2220afaa jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x223b0311 set_device_ro +EXPORT_SYMBOL vmlinux 0x22490c08 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22e89eb5 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x231c24f6 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x2321f371 seq_write +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x238b44c8 clear_inode +EXPORT_SYMBOL vmlinux 0x23ab5435 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x242c9693 block_write_full_page +EXPORT_SYMBOL vmlinux 0x243db2e0 is_container_init +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24743156 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x2487b26a dquot_enable +EXPORT_SYMBOL vmlinux 0x24919445 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x249823b9 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x24a79bf0 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x24affea8 gen_pool_create +EXPORT_SYMBOL vmlinux 0x24ead7db filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2536cdbb setup_new_exec +EXPORT_SYMBOL vmlinux 0x254f18c0 pci_choose_state +EXPORT_SYMBOL vmlinux 0x257422c7 xfrm_input +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25cd0f75 seq_path +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25e96707 dev_uc_del +EXPORT_SYMBOL vmlinux 0x2609c2e8 block_read_full_page +EXPORT_SYMBOL vmlinux 0x261178cb clk_get +EXPORT_SYMBOL vmlinux 0x261c1766 __backtrace +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x265d67d8 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x2688f22a arp_create +EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator +EXPORT_SYMBOL vmlinux 0x26948a47 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x26aa2872 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x26d31b63 inode_init_once +EXPORT_SYMBOL vmlinux 0x26e5d8a5 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26ef7376 sock_no_accept +EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x2701da1a xfrm_register_km +EXPORT_SYMBOL vmlinux 0x2704a36e blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x270c8e31 start_tty +EXPORT_SYMBOL vmlinux 0x2742719a kobject_del +EXPORT_SYMBOL vmlinux 0x275897ca i2c_clients_command +EXPORT_SYMBOL vmlinux 0x277af174 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x27840f87 dev_mc_add +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x278de9ca d_instantiate +EXPORT_SYMBOL vmlinux 0x278f2c4d tty_unthrottle +EXPORT_SYMBOL vmlinux 0x27aaefca locks_copy_lock +EXPORT_SYMBOL vmlinux 0x27afb8e5 nf_log_packet +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27be2349 vga_get +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27db114e tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x27ddf1b6 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x280d7c0f put_page +EXPORT_SYMBOL vmlinux 0x280e7bcb inet_put_port +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next +EXPORT_SYMBOL vmlinux 0x28355172 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x286234d6 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x2866aec7 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x287023c4 security_file_mmap +EXPORT_SYMBOL vmlinux 0x2878112a netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a66d77 I_BDEV +EXPORT_SYMBOL vmlinux 0x28c5065d register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x28c8bd92 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x28cc5171 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x28ceb3b9 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x28f614df shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x29001310 security_path_symlink +EXPORT_SYMBOL vmlinux 0x29417c40 amba_device_register +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295ae122 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x296cf3c2 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x297cc080 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x299c5f8b jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29be4444 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x29ccde9e nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x29d41c52 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x29e78d57 add_mtd_partitions +EXPORT_SYMBOL vmlinux 0x29f08c8d nf_register_hook +EXPORT_SYMBOL vmlinux 0x29feb65f rtnl_create_link +EXPORT_SYMBOL vmlinux 0x2a09218b ppp_input +EXPORT_SYMBOL vmlinux 0x2a283a2c try_to_release_page +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a5b269e block_sync_page +EXPORT_SYMBOL vmlinux 0x2a96a47d blkdev_put +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa7e293 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x2aa9bea8 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x2ac56933 misc_register +EXPORT_SYMBOL vmlinux 0x2acc6fc9 find_inode_number +EXPORT_SYMBOL vmlinux 0x2b061661 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b28652d sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x2b2f7293 udp_disconnect +EXPORT_SYMBOL vmlinux 0x2b3dc4f3 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x2b44c939 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x2b517a86 proc_create_data +EXPORT_SYMBOL vmlinux 0x2b52773c block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit +EXPORT_SYMBOL vmlinux 0x2b78d551 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x2b853118 registered_fb +EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bcf127f netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x2bf5546e block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x2c1adf61 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x2c2cd6c3 sk_run_filter +EXPORT_SYMBOL vmlinux 0x2c350d72 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x2c3767df eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x2c9645af set_user_nice +EXPORT_SYMBOL vmlinux 0x2cac34c8 dm_snap_cow +EXPORT_SYMBOL vmlinux 0x2cc24657 icmp_send +EXPORT_SYMBOL vmlinux 0x2ce0a80f ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x2cf059c9 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2cfe6c65 get_sb_single +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1ecaf8 dev_addr_del +EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock +EXPORT_SYMBOL vmlinux 0x2d52b7cd pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x2d7132c5 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x2d79e38f input_close_device +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d958d38 delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x2dd1c9ea __nla_put +EXPORT_SYMBOL vmlinux 0x2dd67734 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x2deea68f ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e469aa9 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e64c958 do_munmap +EXPORT_SYMBOL vmlinux 0x2e81c824 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x2e9faa47 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x2ebedde7 bio_map_user +EXPORT_SYMBOL vmlinux 0x2ec08fee ___dma_page_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x2ed4905c write_cache_pages +EXPORT_SYMBOL vmlinux 0x2efcab95 dquot_acquire +EXPORT_SYMBOL vmlinux 0x2f13ea0a scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x2f29382d dquot_scan_active +EXPORT_SYMBOL vmlinux 0x2f2b1609 netdev_state_change +EXPORT_SYMBOL vmlinux 0x2f3af724 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x2f3d1330 del_mtd_partitions +EXPORT_SYMBOL vmlinux 0x2f5768af dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x2f5a9f2e tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x2f61f6c8 block_write_begin +EXPORT_SYMBOL vmlinux 0x2f93bd00 phy_attach +EXPORT_SYMBOL vmlinux 0x2fb6915f __secpath_destroy +EXPORT_SYMBOL vmlinux 0x2fd619e2 eth_header +EXPORT_SYMBOL vmlinux 0x2fdb7695 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x2fddaaee nf_hook_slow +EXPORT_SYMBOL vmlinux 0x2fe24e6c xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x2ff38a69 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x3004f7ae skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x3011341b generic_writepages +EXPORT_SYMBOL vmlinux 0x30192a0a qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x301d8299 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x3033d8de filemap_fault +EXPORT_SYMBOL vmlinux 0x30490ea6 bdget +EXPORT_SYMBOL vmlinux 0x3049b386 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x306372c8 bdput +EXPORT_SYMBOL vmlinux 0x30864d25 i2c_release_client +EXPORT_SYMBOL vmlinux 0x30e39299 should_remove_suid +EXPORT_SYMBOL vmlinux 0x30e45f3b dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30f42e85 console_stop +EXPORT_SYMBOL vmlinux 0x30fd1962 blk_start_queue +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x3123f613 mmc_host_disable +EXPORT_SYMBOL vmlinux 0x313341a3 _set_bit_le +EXPORT_SYMBOL vmlinux 0x3141fcd6 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3168bcd3 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit +EXPORT_SYMBOL vmlinux 0x3182b128 skb_trim +EXPORT_SYMBOL vmlinux 0x3190a618 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31e29ebb blk_complete_request +EXPORT_SYMBOL vmlinux 0x31e8f68a sock_create +EXPORT_SYMBOL vmlinux 0x31f9c55c truncate_pagecache +EXPORT_SYMBOL vmlinux 0x3237f99f module_put +EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x3292f3e2 gen_pool_add +EXPORT_SYMBOL vmlinux 0x329e467b simple_pin_fs +EXPORT_SYMBOL vmlinux 0x32ab535d skb_push +EXPORT_SYMBOL vmlinux 0x32df2714 module_layout +EXPORT_SYMBOL vmlinux 0x335c5e59 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x33991371 register_snap_client +EXPORT_SYMBOL vmlinux 0x33a9f3c1 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x33bda167 console_start +EXPORT_SYMBOL vmlinux 0x33d21244 deactivate_super +EXPORT_SYMBOL vmlinux 0x343f2ee3 sg_miter_next +EXPORT_SYMBOL vmlinux 0x3440cad6 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x3463cbe0 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x3494e0c2 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c459ed serio_reconnect +EXPORT_SYMBOL vmlinux 0x34e23c10 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x34eb969a pci_bus_type +EXPORT_SYMBOL vmlinux 0x35114fc6 mmc_release_host +EXPORT_SYMBOL vmlinux 0x352d09d3 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x354c3d23 udp_ioctl +EXPORT_SYMBOL vmlinux 0x3565bc0c cpu_user +EXPORT_SYMBOL vmlinux 0x357b4c8f ip_route_input_common +EXPORT_SYMBOL vmlinux 0x35810adb unregister_binfmt +EXPORT_SYMBOL vmlinux 0x35960cb5 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35d0a9b6 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x35d0f507 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x35e9623a open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3617df69 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x36572e54 free_netdev +EXPORT_SYMBOL vmlinux 0x3677c089 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36ac8b04 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x36bc6d6c redraw_screen +EXPORT_SYMBOL vmlinux 0x36cb10c8 ftrace_event_seq +EXPORT_SYMBOL vmlinux 0x36ceb0da scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x36d2a7bd kill_pid +EXPORT_SYMBOL vmlinux 0x36d9e6af tc_classify_compat +EXPORT_SYMBOL vmlinux 0x36e25d32 dma_mmap_writecombine +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x372ffb4e ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x3796f5ab ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x37a2cf30 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37ab5f0c __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c0f250 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x37d96888 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x38023f20 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x38133c8b dqstats +EXPORT_SYMBOL vmlinux 0x381dffc5 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x38396cd3 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x3859aa39 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x385c351e input_register_handle +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38cd2012 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x38e3d803 path_put +EXPORT_SYMBOL vmlinux 0x38e8378d pgprot_kernel +EXPORT_SYMBOL vmlinux 0x38e8e07e sock_setsockopt +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x38f8a7cf pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x38f8cc47 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x398a7365 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x399c2183 make_EII_client +EXPORT_SYMBOL vmlinux 0x39b3855f iterate_mounts +EXPORT_SYMBOL vmlinux 0x39bbf473 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x3a115781 sk_wait_data +EXPORT_SYMBOL vmlinux 0x3a124de3 register_exec_domain +EXPORT_SYMBOL vmlinux 0x3a1d1161 inet_accept +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a2c4bb5 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x3a2db5a1 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x3a427c8d journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3a48d116 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x3a528a89 journal_ack_err +EXPORT_SYMBOL vmlinux 0x3a5fe914 sync_inode +EXPORT_SYMBOL vmlinux 0x3a778095 mapping_tagged +EXPORT_SYMBOL vmlinux 0x3a846073 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x3a8daaaf clkdev_alloc +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3b5478d8 mii_nway_restart +EXPORT_SYMBOL vmlinux 0x3bb96402 input_inject_event +EXPORT_SYMBOL vmlinux 0x3bcff7e9 blk_make_request +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c7ce068 dm_table_get +EXPORT_SYMBOL vmlinux 0x3c8f84c3 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cbd3e0b dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf280f3 __free_pages +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d425472 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x3d497ebd mmc_card_awake +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3db73389 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x3dc1bcaa blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x3dc6d7d3 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e1214f3 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x3e22f11b pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x3e3485b6 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e51132a rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x3e6472d1 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e94d84e dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x3ebf7691 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x3ec67c1f __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x3ec7815f bio_put +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edbb4f7 journal_update_format +EXPORT_SYMBOL vmlinux 0x3ee283ff lock_super +EXPORT_SYMBOL vmlinux 0x3ef71411 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x3f071698 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x3f146c81 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x3f1bc197 km_policy_notify +EXPORT_SYMBOL vmlinux 0x3f1dedc2 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x3f2575eb update_region +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4d87af sk_common_release +EXPORT_SYMBOL vmlinux 0x3f98965a dcache_dir_close +EXPORT_SYMBOL vmlinux 0x3fb0700e nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x3fb8afeb log_start_commit +EXPORT_SYMBOL vmlinux 0x3fbeb754 iget_locked +EXPORT_SYMBOL vmlinux 0x3fc319c8 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x3fdf472e blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x3fe01ae5 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ffeda10 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x4000f9fb dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x401abdc2 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x4022f64e pci_clear_master +EXPORT_SYMBOL vmlinux 0x4030d3ab sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4061d569 __napi_complete +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x40713825 give_up_console +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40996480 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a6f522 __arm_ioremap +EXPORT_SYMBOL vmlinux 0x40e385cc read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4121c713 inode_change_ok +EXPORT_SYMBOL vmlinux 0x41304a6d generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x41307d52 bdi_unregister +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41436c94 km_report +EXPORT_SYMBOL vmlinux 0x41478438 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414aab90 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41b33015 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x41c20ac3 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x41c37935 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x41ca6871 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x41d6e264 contig_page_data +EXPORT_SYMBOL vmlinux 0x4201c62d elv_rb_add +EXPORT_SYMBOL vmlinux 0x4207244c key_alloc +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42186862 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x424c4279 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x4252432d dev_remove_pack +EXPORT_SYMBOL vmlinux 0x426c0385 skb_pull +EXPORT_SYMBOL vmlinux 0x427153e3 journal_stop +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x429decc2 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x42c12b29 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x42d625b2 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x42f32dd6 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x42fa02e3 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43099179 skb_tx_hash +EXPORT_SYMBOL vmlinux 0x4324e7cb mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x4347b971 idr_init +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x4398923f bio_phys_segments +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43b9d5f9 copy_io_context +EXPORT_SYMBOL vmlinux 0x43c0a60f blk_peek_request +EXPORT_SYMBOL vmlinux 0x43e672c3 rtnl_notify +EXPORT_SYMBOL vmlinux 0x43fbbb79 override_creds +EXPORT_SYMBOL vmlinux 0x43fce0dc clk_set_rate +EXPORT_SYMBOL vmlinux 0x44172137 sk_alloc +EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x444c2a50 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x44623830 register_nls +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x44778edc mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x448212fa down_trylock +EXPORT_SYMBOL vmlinux 0x4482fdf8 skb_set_dev +EXPORT_SYMBOL vmlinux 0x44a08f55 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44ccb9cf bdget_disk +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f37b89 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x451e2a0d file_fsync +EXPORT_SYMBOL vmlinux 0x45478fde set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x455761e2 journal_destroy +EXPORT_SYMBOL vmlinux 0x45667fbb scsi_prep_return +EXPORT_SYMBOL vmlinux 0x456fa997 blk_rq_init +EXPORT_SYMBOL vmlinux 0x457250a7 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4579e499 deny_write_access +EXPORT_SYMBOL vmlinux 0x457c43d7 register_con_driver +EXPORT_SYMBOL vmlinux 0x45888b32 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45babb4a iput +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45c211d4 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x45c22468 bdevname +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45d2bf0a inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x45f74941 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table +EXPORT_SYMBOL vmlinux 0x4618e198 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x462b92f4 napi_frags_finish +EXPORT_SYMBOL vmlinux 0x468caaec bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x46c3a693 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x46c50891 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46e83c06 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x46f5c983 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x4700bc76 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x471cab4a i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x471d9c05 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x471e05a2 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x47299bb0 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x4757ab99 rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x475970ac inet_getname +EXPORT_SYMBOL vmlinux 0x475ea425 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x477461cd blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x47797c6c scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x4785d013 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47ea8a19 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x47fe8bdf dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x4803d491 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x48191f15 proto_register +EXPORT_SYMBOL vmlinux 0x481f7ab9 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x483504f5 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x4902e5f8 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x4905525b dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x4923df42 i2c_master_send +EXPORT_SYMBOL vmlinux 0x492e4f41 page_put_link +EXPORT_SYMBOL vmlinux 0x493a83a1 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x4959fa0d dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x495bf96c add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4972ac78 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x4977d069 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x49a2b8ae pci_set_mwi +EXPORT_SYMBOL vmlinux 0x49a52360 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49c8c9a9 input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x49ccf298 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x49d95ea8 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x49e0d1c5 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49e19142 mpage_writepage +EXPORT_SYMBOL vmlinux 0x4a1aa12c blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x4a1ae452 mnt_unpin +EXPORT_SYMBOL vmlinux 0x4a22cd25 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a37af33 ___dma_single_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x4a403b48 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x4a6c5f7e alloc_disk_node +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ab6acc9 generic_read_dir +EXPORT_SYMBOL vmlinux 0x4ad4fee2 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x4ad67efb balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x4adac85a softnet_data +EXPORT_SYMBOL vmlinux 0x4ae12227 ilookup5 +EXPORT_SYMBOL vmlinux 0x4ae1fea0 kill_litter_super +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4aff3ff7 journal_start +EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove +EXPORT_SYMBOL vmlinux 0x4b33c697 dquot_file_open +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b422856 km_query +EXPORT_SYMBOL vmlinux 0x4b62833e scsi_register_interface +EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bdc86ce do_sync_read +EXPORT_SYMBOL vmlinux 0x4be1fdcb set_anon_super +EXPORT_SYMBOL vmlinux 0x4bf0136e arp_xmit +EXPORT_SYMBOL vmlinux 0x4c0185d8 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x4c1053df devm_iounmap +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c3ffd23 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states +EXPORT_SYMBOL vmlinux 0x4c86c87e rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x4c8832f6 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd18d89 sk_dst_check +EXPORT_SYMBOL vmlinux 0x4ce69a9b pcim_iounmap +EXPORT_SYMBOL vmlinux 0x4ce834b0 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x4ceb2fcf tty_throttle +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d70af11 do_splice_from +EXPORT_SYMBOL vmlinux 0x4d80cf4c kmem_cache_create +EXPORT_SYMBOL vmlinux 0x4d9ff96b vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x4dac8066 bio_alloc +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4ddfe1cd ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x4debf3eb tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4dec6c6a ppp_unit_number +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e10d5ee xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x4e1cd357 nobh_writepage +EXPORT_SYMBOL vmlinux 0x4e28af65 input_register_handler +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e65203f generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e85feda xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x4ec549b9 generic_getxattr +EXPORT_SYMBOL vmlinux 0x4ed69b85 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x4ee80202 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x4efba614 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x4f0f08a8 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x4f136a66 d_invalidate +EXPORT_SYMBOL vmlinux 0x4f1694b0 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f566998 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x4f59c298 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x4f673322 security_path_chmod +EXPORT_SYMBOL vmlinux 0x4f8624b1 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x4f9fa8b6 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x4fb17cf5 dev_add_pack +EXPORT_SYMBOL vmlinux 0x4fc9f82d mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x4ff17c5d init_special_inode +EXPORT_SYMBOL vmlinux 0x50019752 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5078dbda lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x5079ab01 keyring_clear +EXPORT_SYMBOL vmlinux 0x507c6c51 vfs_read +EXPORT_SYMBOL vmlinux 0x5093fa82 _clear_bit_le +EXPORT_SYMBOL vmlinux 0x50a23921 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x50be74e8 kthread_create +EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new +EXPORT_SYMBOL vmlinux 0x50f6cc46 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu +EXPORT_SYMBOL vmlinux 0x5117b9a1 install_exec_creds +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x514e4149 mmc_request_done +EXPORT_SYMBOL vmlinux 0x514e8dc1 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x51727232 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x5175d226 blk_unplug +EXPORT_SYMBOL vmlinux 0x518dedd8 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x5195b964 secpath_dup +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e1f380 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5207131d tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x52214d7a sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x524d65a9 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x525521c0 skb_queue_head +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x5277f2b7 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x528da904 blk_init_queue +EXPORT_SYMBOL vmlinux 0x528df931 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x52f0af23 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x5300bd1d journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530d7110 skb_append +EXPORT_SYMBOL vmlinux 0x532ba057 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533acb11 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x533ed745 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x535094e1 inet_ioctl +EXPORT_SYMBOL vmlinux 0x5366002c fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0x5372ee6e phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x537cec3f spi_dv_device +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53893001 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x53914716 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53eb4b57 inet6_bind +EXPORT_SYMBOL vmlinux 0x53fd68a9 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x53fddd08 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x5420c4f1 pci_release_regions +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542c6fa8 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x548f7c60 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x54a7f070 skb_unlink +EXPORT_SYMBOL vmlinux 0x54ce8a4e ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54faa6b9 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x5514c922 security_path_rename +EXPORT_SYMBOL vmlinux 0x55182dfb sock_no_poll +EXPORT_SYMBOL vmlinux 0x551bfb16 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x557b7843 wake_up_process +EXPORT_SYMBOL vmlinux 0x558e6797 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x5598ea92 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x559ca4e8 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55cb2545 dma_alloc_writecombine +EXPORT_SYMBOL vmlinux 0x55e165cb tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x55f3e394 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x56202abf get_phy_id +EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x562e3c33 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x56356c6f llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x564cf0a7 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x56509f2f ip6_frag_match +EXPORT_SYMBOL vmlinux 0x56713153 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x56864ce4 scsi_unregister +EXPORT_SYMBOL vmlinux 0x56a2edde test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x56c3d81e llc_sap_open +EXPORT_SYMBOL vmlinux 0x56c77a0b mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56fc52cf fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0x572992e3 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573c02ee __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x57466a49 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x574ba0fc nobh_write_begin +EXPORT_SYMBOL vmlinux 0x574d3445 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x5766d86b simple_lookup +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x57698fa7 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x57969257 dqget +EXPORT_SYMBOL vmlinux 0x57a0e3c0 free_task +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57aa6747 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57cf4de0 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x57d4c230 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57f4a5a7 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x5816e940 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x58348f40 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x58528647 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x585c2e3d blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x58678b8d tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x586818d2 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x58863216 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x58a5781e create_empty_buffers +EXPORT_SYMBOL vmlinux 0x58d0c8ab security_inode_permission +EXPORT_SYMBOL vmlinux 0x58e94935 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x590ab3bd phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x5923ac59 km_new_mapping +EXPORT_SYMBOL vmlinux 0x59268d48 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x592e7245 set_binfmt +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594a3bef pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x595739d4 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x596457e2 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x59889397 simple_fill_super +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59e32b9c notify_change +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x5a3b115a kstat +EXPORT_SYMBOL vmlinux 0x5a51822d pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a90e3d5 key_put +EXPORT_SYMBOL vmlinux 0x5a96253b nobh_write_end +EXPORT_SYMBOL vmlinux 0x5ad0755d in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x5ae0d47f clocksource_register +EXPORT_SYMBOL vmlinux 0x5ae25347 tcf_em_register +EXPORT_SYMBOL vmlinux 0x5af94174 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x5b0bdec3 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x5b145c84 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b26fb59 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x5b2bd72e ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b9f8a30 vfs_writev +EXPORT_SYMBOL vmlinux 0x5bc0772f elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x5bde59a2 sock_no_getname +EXPORT_SYMBOL vmlinux 0x5be2888a seq_release +EXPORT_SYMBOL vmlinux 0x5bf4a1eb sg_last +EXPORT_SYMBOL vmlinux 0x5c0efabc dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x5c50f357 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x5c77529a tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x5c8a164b kthread_bind +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5c9cc988 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x5cc2b8fc tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x5cce39b4 follow_pfn +EXPORT_SYMBOL vmlinux 0x5d119ef7 scsi_execute +EXPORT_SYMBOL vmlinux 0x5d181b34 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x5d1aa409 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x5d42ac30 sock_release +EXPORT_SYMBOL vmlinux 0x5d7551aa xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x5d8787c7 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x5d9e0945 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x5dec4c62 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x5e1087b9 tty_port_open +EXPORT_SYMBOL vmlinux 0x5e353ec5 dst_destroy +EXPORT_SYMBOL vmlinux 0x5e3ae843 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x5e459550 backlight_force_update +EXPORT_SYMBOL vmlinux 0x5e46eb0a get_super +EXPORT_SYMBOL vmlinux 0x5e4a84fe kdb_current_task +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb4a017 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x5ebf3090 d_delete +EXPORT_SYMBOL vmlinux 0x5eca99b8 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x5ecb60e3 open_exec +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed2712c n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x5ed8b5fc lease_modify +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5efc154f journal_forget +EXPORT_SYMBOL vmlinux 0x5f1d8ffa tcp_read_sock +EXPORT_SYMBOL vmlinux 0x5f515dfc pci_get_slot +EXPORT_SYMBOL vmlinux 0x5f51f360 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x5f570895 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x5f671749 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x5f6a2a63 audit_log_end +EXPORT_SYMBOL vmlinux 0x5f6c82a0 phy_print_status +EXPORT_SYMBOL vmlinux 0x5f7190a1 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f81f077 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x5fea5985 seq_open +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600916f2 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x600e9105 get_fs_type +EXPORT_SYMBOL vmlinux 0x600ea346 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x601adacb lookup_hash +EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap +EXPORT_SYMBOL vmlinux 0x605ed6a0 set_groups +EXPORT_SYMBOL vmlinux 0x6065b080 blk_start_request +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60aee31e iget5_locked +EXPORT_SYMBOL vmlinux 0x60d382c7 page_readlink +EXPORT_SYMBOL vmlinux 0x60e0ff8c scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x60f71cfa complete +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x610966b3 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x610a0908 submit_bio +EXPORT_SYMBOL vmlinux 0x61120475 register_key_type +EXPORT_SYMBOL vmlinux 0x61175030 do_SAK +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128ad19 block_commit_write +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6163ad08 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61a79f08 __irq_regs +EXPORT_SYMBOL vmlinux 0x61a828f9 follow_up +EXPORT_SYMBOL vmlinux 0x61b67ce6 unregister_nls +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61dbf958 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x61e2ec59 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x61f312f1 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x61f4dd67 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x6224712e inode_init_always +EXPORT_SYMBOL vmlinux 0x622dbcbe tty_port_hangup +EXPORT_SYMBOL vmlinux 0x62383ed8 dqput +EXPORT_SYMBOL vmlinux 0x623a0b07 __rta_fill +EXPORT_SYMBOL vmlinux 0x62426581 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x629f5c2d replace_mount_options +EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock +EXPORT_SYMBOL vmlinux 0x62cc001f __pci_register_driver +EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask +EXPORT_SYMBOL vmlinux 0x62d3f2db __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x62ea1c8f __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x62f3dae8 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x632d28ba save_mount_options +EXPORT_SYMBOL vmlinux 0x633e2ff5 __register_chrdev +EXPORT_SYMBOL vmlinux 0x635546a6 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x638cb385 spi_release_transport +EXPORT_SYMBOL vmlinux 0x63ca669c default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x63cbaa83 dquot_resume +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x63fb4d5c find_vma +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x644a5c38 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a072b4 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x64c8c1e5 pipe_lock +EXPORT_SYMBOL vmlinux 0x64ea9a38 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x64f0f5a9 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x65049de0 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654682e6 generic_fillattr +EXPORT_SYMBOL vmlinux 0x65556ea5 input_allocate_device +EXPORT_SYMBOL vmlinux 0x655c4439 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x658f7ff5 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x659b40cc dev_addr_flush +EXPORT_SYMBOL vmlinux 0x65b5ec8e scsi_print_result +EXPORT_SYMBOL vmlinux 0x65db84f9 pci_dev_put +EXPORT_SYMBOL vmlinux 0x65f78b75 put_tty_driver +EXPORT_SYMBOL vmlinux 0x660a703b alloc_fcdev +EXPORT_SYMBOL vmlinux 0x660beb37 serio_rescan +EXPORT_SYMBOL vmlinux 0x660ed402 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x6612b320 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x6627c36e register_qdisc +EXPORT_SYMBOL vmlinux 0x66659579 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x668820a3 arp_find +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66cb29d0 sock_update_classid +EXPORT_SYMBOL vmlinux 0x66e62e4e kill_block_super +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x6710fdbc udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x6717284b phy_detach +EXPORT_SYMBOL vmlinux 0x6751cdc6 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x67617415 fput +EXPORT_SYMBOL vmlinux 0x67ad43c4 bio_add_page +EXPORT_SYMBOL vmlinux 0x67b0f73d kernel_getpeername +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67be1d3d cpu_active_mask +EXPORT_SYMBOL vmlinux 0x67f3508d get_io_context +EXPORT_SYMBOL vmlinux 0x683b929d xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x6872c64e ip_setsockopt +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x687d1820 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x68bd6b30 noop_llseek +EXPORT_SYMBOL vmlinux 0x68da7d3c __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s +EXPORT_SYMBOL vmlinux 0x691c1d15 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x691f0285 block_prepare_write +EXPORT_SYMBOL vmlinux 0x692b4390 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x693c6816 skb_split +EXPORT_SYMBOL vmlinux 0x694dbdbe input_mt_create_slots +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69be70f7 simple_statfs +EXPORT_SYMBOL vmlinux 0x69c84dc5 __page_symlink +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e3f175 netif_rx +EXPORT_SYMBOL vmlinux 0x69f6fb6e sk_receive_skb +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a64fd6e phy_connect +EXPORT_SYMBOL vmlinux 0x6a66d1b5 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a8e0bad tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x6ab41023 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x6ab8e947 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x6aca692a tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ae3cf30 llc_sap_close +EXPORT_SYMBOL vmlinux 0x6af39cf4 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x6af527c9 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x6afd87fa dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x6afdd75d neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x6b0372d6 sock_create_lite +EXPORT_SYMBOL vmlinux 0x6b0eadb1 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x6b19443d pipe_to_file +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b34b5bc bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x6b38a471 add_disk +EXPORT_SYMBOL vmlinux 0x6b4a7baa sk_free +EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy +EXPORT_SYMBOL vmlinux 0x6b5f9748 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x6b8f8b51 scsi_register +EXPORT_SYMBOL vmlinux 0x6ba8fd74 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bd3f30b dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6c1cbfd3 simple_link +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c204636 cdrom_open +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c9b5221 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x6cace8cf dquot_initialize +EXPORT_SYMBOL vmlinux 0x6cbf53d4 do_splice_to +EXPORT_SYMBOL vmlinux 0x6cd0ba56 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6ceae29e netif_rx_ni +EXPORT_SYMBOL vmlinux 0x6d0aaf79 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d297c3b generic_delete_inode +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d3aaf22 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x6d5f103a generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d6b4d53 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d854549 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x6d8667ac skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x6dcf7cf6 ps2_init +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e08fd54 vfs_getattr +EXPORT_SYMBOL vmlinux 0x6e0c6304 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x6e184d5c key_validate +EXPORT_SYMBOL vmlinux 0x6e2fe999 dev_get_flags +EXPORT_SYMBOL vmlinux 0x6e4da75b posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x6e68baca blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x6e6da8b6 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x6e6e9884 drop_super +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e94ca7f __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea74d98 simple_unlink +EXPORT_SYMBOL vmlinux 0x6ed4c739 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x6eea1feb task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x6eedab2f sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x6f295c8c pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x6f5f5af8 dm_table_event +EXPORT_SYMBOL vmlinux 0x6f60f807 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x6f67da92 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x6f69b9e1 mb_cache_create +EXPORT_SYMBOL vmlinux 0x6f6a095f blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f991bc1 bio_pair_release +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd166ac scsi_host_get +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x7012f9cd neigh_connected_output +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x701d3ab7 dst_discard +EXPORT_SYMBOL vmlinux 0x70303d56 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x70977ebd serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x709cc168 seq_puts +EXPORT_SYMBOL vmlinux 0x70a08db4 igrab +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c9b837 pci_map_rom +EXPORT_SYMBOL vmlinux 0x70d68fd9 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x70decf8a try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x70eca73a file_update_time +EXPORT_SYMBOL vmlinux 0x7105b1f0 scsi_add_device +EXPORT_SYMBOL vmlinux 0x71118e50 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71341658 check_disk_change +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x7139c2aa i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x713e0893 mpage_writepages +EXPORT_SYMBOL vmlinux 0x7146bf5f __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x714ae009 bio_endio +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71765fa5 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x717975a6 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x7192fea5 scsi_device_put +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71d0a512 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x71f6cb4c gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x7214ac13 search_binary_handler +EXPORT_SYMBOL vmlinux 0x7229b3ed pci_iomap +EXPORT_SYMBOL vmlinux 0x723492e9 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x72623f62 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x728da8f0 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x7292528e inode_init_owner +EXPORT_SYMBOL vmlinux 0x729b107c dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x729eeb76 icmpv6_send +EXPORT_SYMBOL vmlinux 0x72b7dc2b dma_map_sg +EXPORT_SYMBOL vmlinux 0x72bac1d4 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72c81a55 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x72c81cf1 kernel_connect +EXPORT_SYMBOL vmlinux 0x72d29d32 mmc_add_host +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72fc47d0 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x7326f281 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x7347fca0 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x7359cafd find_get_page +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x73908ee3 tty_free_termios +EXPORT_SYMBOL vmlinux 0x7393ba6f jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73e27063 inet_listen +EXPORT_SYMBOL vmlinux 0x741ebbb3 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x743dddda __lock_page +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x7453294a d_lookup +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x7494ab37 skb_insert +EXPORT_SYMBOL vmlinux 0x749b2fc4 may_umount +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74da5e2c amba_driver_register +EXPORT_SYMBOL vmlinux 0x750818c8 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x75756c13 vfs_mknod +EXPORT_SYMBOL vmlinux 0x75923f16 unregister_key_type +EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75cacf64 vfs_symlink +EXPORT_SYMBOL vmlinux 0x75d198f2 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x765e147d bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x765f75fb pgprot_user +EXPORT_SYMBOL vmlinux 0x76881360 leds_event +EXPORT_SYMBOL vmlinux 0x76a8f234 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x76b455e0 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x76b9e972 skb_find_text +EXPORT_SYMBOL vmlinux 0x76bc92f7 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d41f96 revalidate_disk +EXPORT_SYMBOL vmlinux 0x76deaa3a mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x76f26d09 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x76f94714 write_one_page +EXPORT_SYMBOL vmlinux 0x77040fb8 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x77053e60 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x770f9e8e mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x778de5f5 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div +EXPORT_SYMBOL vmlinux 0x7796144e pid_task +EXPORT_SYMBOL vmlinux 0x77a20bb7 elv_rb_del +EXPORT_SYMBOL vmlinux 0x77a9f367 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x77aa6fc2 keyring_search +EXPORT_SYMBOL vmlinux 0x77b673fa inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x77b831c6 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77be8ce8 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x77d1f3ae vfs_mkdir +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f0f0e0 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77fe9a92 pci_disable_device +EXPORT_SYMBOL vmlinux 0x78226cb4 clk_enable +EXPORT_SYMBOL vmlinux 0x7832a63c generic_write_checks +EXPORT_SYMBOL vmlinux 0x78672212 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x78777d13 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x78789e6f mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x787b9cd2 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x787dc360 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x7893e865 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x78cab09f jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f16800 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x78f17858 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x790a02c8 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x79263b6f cfi_varsize_frob +EXPORT_SYMBOL vmlinux 0x7926cfcd sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x794523bd slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x7947a565 cpu_cache +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7982bdac tty_check_change +EXPORT_SYMBOL vmlinux 0x7996d489 lock_may_write +EXPORT_SYMBOL vmlinux 0x79984b8c scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79af9fbe mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x79c1b67b pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x7a063e1b posix_lock_file +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a38d619 fb_blank +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a4ddebf cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x7a7c12f9 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x7a98428b generic_permission +EXPORT_SYMBOL vmlinux 0x7a9cebff mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x7a9ea951 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x7ac183a2 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7ad1a888 xrlim_allow +EXPORT_SYMBOL vmlinux 0x7b0c64a1 tty_write_room +EXPORT_SYMBOL vmlinux 0x7b31f1ab xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b7636c4 key_task_permission +EXPORT_SYMBOL vmlinux 0x7b886d4f sock_create_kern +EXPORT_SYMBOL vmlinux 0x7bae959a unlock_buffer +EXPORT_SYMBOL vmlinux 0x7bc65e27 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be41a1a dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x7becac47 do_truncate +EXPORT_SYMBOL vmlinux 0x7bf6532e pci_set_power_state +EXPORT_SYMBOL vmlinux 0x7bfb830c llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x7c070ee4 page_symlink +EXPORT_SYMBOL vmlinux 0x7c2fd03e clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x7c4728e2 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x7c52dc38 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x7c578867 ppp_input_error +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c6fec6c rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7c99ca4b devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7cfb2af6 journal_errno +EXPORT_SYMBOL vmlinux 0x7d0d6b51 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d17dba3 ps2_end_command +EXPORT_SYMBOL vmlinux 0x7d3b1254 pci_enable_device +EXPORT_SYMBOL vmlinux 0x7d4a7123 single_release +EXPORT_SYMBOL vmlinux 0x7d78947a vfs_llseek +EXPORT_SYMBOL vmlinux 0x7d918483 bd_claim +EXPORT_SYMBOL vmlinux 0x7da327b5 dev_uc_add +EXPORT_SYMBOL vmlinux 0x7dae0a3d simple_setattr +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7db99cc5 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de13aa1 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x7e01a5fa task_nice +EXPORT_SYMBOL vmlinux 0x7e0958fa vfs_readdir +EXPORT_SYMBOL vmlinux 0x7e185166 devm_free_irq +EXPORT_SYMBOL vmlinux 0x7e1938d8 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e3c5661 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x7e405330 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x7e4a8112 vfs_unlink +EXPORT_SYMBOL vmlinux 0x7e885730 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ea52cbb bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x7ec18c32 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x7eff9cb6 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x7f0903ec kunmap_high +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2649de pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x7f3d2f65 elv_add_request +EXPORT_SYMBOL vmlinux 0x7f4c05ce journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7fb38107 skb_dequeue +EXPORT_SYMBOL vmlinux 0x7fcb83c8 tty_register_driver +EXPORT_SYMBOL vmlinux 0x7fce4f35 dev_mc_del +EXPORT_SYMBOL vmlinux 0x7fe8d195 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x7fedda3e tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x7ff6a585 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x800bfad4 d_rehash +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x803b7a8b scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x8085f9e8 bioset_create +EXPORT_SYMBOL vmlinux 0x80894132 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8093e609 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x80ae2637 stop_tty +EXPORT_SYMBOL vmlinux 0x80cd531b blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x80cf0643 init_task +EXPORT_SYMBOL vmlinux 0x80d223ee security_path_mknod +EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x80de231a idr_remove +EXPORT_SYMBOL vmlinux 0x81003ee2 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x811fc79b elevator_init +EXPORT_SYMBOL vmlinux 0x812e29d8 scsi_put_command +EXPORT_SYMBOL vmlinux 0x813ed040 idr_remove_all +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815b67da __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x816294d7 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x816b1d12 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x817a591b neigh_create +EXPORT_SYMBOL vmlinux 0x819aa7b2 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d99230 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x81df802f scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x81e2a826 cdev_init +EXPORT_SYMBOL vmlinux 0x81ecb689 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x81fe108c do_sync_write +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820a892f inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x82139b18 inode_permission +EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x823dae22 netdev_set_master +EXPORT_SYMBOL vmlinux 0x8249266b scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x825cbf84 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8262f64b tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x826a713b cdrom_release +EXPORT_SYMBOL vmlinux 0x82879579 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82ea8c07 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x82ecdfcb bio_init +EXPORT_SYMBOL vmlinux 0x82f52abb bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x82f9a22e textsearch_register +EXPORT_SYMBOL vmlinux 0x83053173 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x831d090a rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x831d98ff tcf_exts_change +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x8332faf6 vfs_readlink +EXPORT_SYMBOL vmlinux 0x83680340 inet_frags_init +EXPORT_SYMBOL vmlinux 0x83708086 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x8371daff sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x83741f16 release_firmware +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838ddac0 i2c_use_client +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x839824d4 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b22b53 register_gifconf +EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x83d81ca3 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x8419aaa9 tcp_close +EXPORT_SYMBOL vmlinux 0x84679f3b pci_match_id +EXPORT_SYMBOL vmlinux 0x847b0d1a __invalidate_device +EXPORT_SYMBOL vmlinux 0x8483b813 sock_rfree +EXPORT_SYMBOL vmlinux 0x84958e9f sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x84ab8c68 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84b80817 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x84caacb8 simple_setsize +EXPORT_SYMBOL vmlinux 0x84ccd8a3 i2c_transfer +EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x84df81ba genphy_suspend +EXPORT_SYMBOL vmlinux 0x8507b421 write_inode_now +EXPORT_SYMBOL vmlinux 0x850e7e6d mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x85247a09 unlock_rename +EXPORT_SYMBOL vmlinux 0x8549fd4a bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x85576f0f wireless_send_event +EXPORT_SYMBOL vmlinux 0x855816b3 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x855ea304 dquot_release +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8585b9e1 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x85a7c667 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e2da17 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x85e3dd74 __brelse +EXPORT_SYMBOL vmlinux 0x85e561d4 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x863df875 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x8642f548 sget +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a3c925 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x86aca9a0 phy_stop +EXPORT_SYMBOL vmlinux 0x86b937f2 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x86ba131c mii_check_link +EXPORT_SYMBOL vmlinux 0x86ead609 bio_free +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x87045b67 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x87075eef tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x871123f3 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x8726b6ce thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0x873e0163 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x87764db6 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x8779a966 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87d3be7c arp_broken_ops +EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new +EXPORT_SYMBOL vmlinux 0x87eefc5d cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8814a4cc sock_wmalloc +EXPORT_SYMBOL vmlinux 0x8827c42c i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x8847f7a5 alloc_trdev +EXPORT_SYMBOL vmlinux 0x884d0c40 md_write_end +EXPORT_SYMBOL vmlinux 0x88538a58 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x888352fd nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait +EXPORT_SYMBOL vmlinux 0x8894825e neigh_lookup +EXPORT_SYMBOL vmlinux 0x8897786a mpage_readpages +EXPORT_SYMBOL vmlinux 0x88e84a46 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x88eae58c dquot_quota_off +EXPORT_SYMBOL vmlinux 0x88eb8217 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x8921497c open_by_devnum +EXPORT_SYMBOL vmlinux 0x892704d4 dentry_unhash +EXPORT_SYMBOL vmlinux 0x8929dbf3 dm_get_device +EXPORT_SYMBOL vmlinux 0x89315cac filp_open +EXPORT_SYMBOL vmlinux 0x8937485e security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x89437fc6 __ps2_command +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x895b9cc4 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89a1f6c2 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x89a94ca5 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x89b87067 key_unlink +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a0bfd4a dst_release +EXPORT_SYMBOL vmlinux 0x8a13fbf5 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x8a251660 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a729f89 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8acc18d4 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x8ad308fa km_state_expired +EXPORT_SYMBOL vmlinux 0x8ae0e33a uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x8ae8e51f filp_close +EXPORT_SYMBOL vmlinux 0x8aea88e4 journal_create +EXPORT_SYMBOL vmlinux 0x8afb3564 vmap +EXPORT_SYMBOL vmlinux 0x8b1d7440 md_error +EXPORT_SYMBOL vmlinux 0x8b35a321 amba_release_regions +EXPORT_SYMBOL vmlinux 0x8b4a8ba6 inet6_getname +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b9960d9 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x8bb3f3a5 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x8bc61911 __elv_add_request +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8beea712 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x8c01bdbc qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x8c036fdb get_sb_nodev +EXPORT_SYMBOL vmlinux 0x8c0e1e92 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x8c127a2f serio_open +EXPORT_SYMBOL vmlinux 0x8c3cedca blk_get_request +EXPORT_SYMBOL vmlinux 0x8c79e284 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x8c9efd74 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x8cc758f1 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x8ccda6f2 load_nls_default +EXPORT_SYMBOL vmlinux 0x8cf51d15 up +EXPORT_SYMBOL vmlinux 0x8d3f9019 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x8d496e07 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x8d4dbd6c unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x8d4f52ae shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d78eacf netlink_set_err +EXPORT_SYMBOL vmlinux 0x8d90a874 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x8da8d18b ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x8dac7e46 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x8dd5722a vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x8dd68338 md_done_sync +EXPORT_SYMBOL vmlinux 0x8dea3825 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e14ac53 dm_put_device +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e88567f nf_afinfo +EXPORT_SYMBOL vmlinux 0x8e99124c posix_acl_permission +EXPORT_SYMBOL vmlinux 0x8e9da5cb uart_add_one_port +EXPORT_SYMBOL vmlinux 0x8ea9469e ip_defrag +EXPORT_SYMBOL vmlinux 0x8eb469a6 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x8ed88e1d fasync_helper +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f02d209 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x8f07ca98 journal_clear_err +EXPORT_SYMBOL vmlinux 0x8f110736 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x8f24925e bmap +EXPORT_SYMBOL vmlinux 0x8f29f4f8 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f4be9cf sock_recvmsg +EXPORT_SYMBOL vmlinux 0x8f678b07 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f8efa5c register_quota_format +EXPORT_SYMBOL vmlinux 0x8ffd522b vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9051fec5 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x90659e0a genphy_update_link +EXPORT_SYMBOL vmlinux 0x90a344c6 input_free_device +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x9112ef6f kset_register +EXPORT_SYMBOL vmlinux 0x9132cc81 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x913d4239 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x9148f149 mdiobus_write +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x917e823e tty_port_put +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x91c0980e icst_hz +EXPORT_SYMBOL vmlinux 0x91cd593c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x92152fb0 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923c7437 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x926f2498 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x927bf657 module_refcount +EXPORT_SYMBOL vmlinux 0x929eecac __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x92b08c5f aio_complete +EXPORT_SYMBOL vmlinux 0x92bc8615 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x92d6aa37 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x92f3308b inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x9300a60f ilookup +EXPORT_SYMBOL vmlinux 0x9303f24b sync_blockdev +EXPORT_SYMBOL vmlinux 0x93171d48 dcache_readdir +EXPORT_SYMBOL vmlinux 0x9338bb17 seq_lseek +EXPORT_SYMBOL vmlinux 0x9346f0a7 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x9353c81d mii_check_media +EXPORT_SYMBOL vmlinux 0x9366fd4b scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x936c02c6 napi_complete +EXPORT_SYMBOL vmlinux 0x93741ee7 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x93772258 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x9389c30f security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x93a2fae1 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b49f80 dev_close +EXPORT_SYMBOL vmlinux 0x93c8ed7d tcp_shutdown +EXPORT_SYMBOL vmlinux 0x93d07dd0 dma_pool_create +EXPORT_SYMBOL vmlinux 0x93d599c2 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x93e9347c blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x93ef237a dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940348de pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x9412e619 phy_device_register +EXPORT_SYMBOL vmlinux 0x9440d51f __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x94540d41 serio_interrupt +EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex +EXPORT_SYMBOL vmlinux 0x94727910 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x94828bc5 eth_type_trans +EXPORT_SYMBOL vmlinux 0x948498fc get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94af632e complete_all +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94e815a3 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x950aad9a __scsi_put_command +EXPORT_SYMBOL vmlinux 0x95227b79 fget +EXPORT_SYMBOL vmlinux 0x9533ae0b nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x9541c764 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x9569284b generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x95792ce9 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x958a6567 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x95c020e8 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x96174ab0 security_path_link +EXPORT_SYMBOL vmlinux 0x96281598 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x9632920c simple_transaction_set +EXPORT_SYMBOL vmlinux 0x96434c8c kset_unregister +EXPORT_SYMBOL vmlinux 0x964b3b6b journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x9656f8a0 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0x96684853 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x968ce243 vga_put +EXPORT_SYMBOL vmlinux 0x9697a190 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x96a8c31a abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x96b2ba42 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x96befd35 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x96c297ff set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x96c6eb7e udp_sendmsg +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96fb5e94 ether_setup +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x972968d7 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9781a135 bdi_destroy +EXPORT_SYMBOL vmlinux 0x97f38a77 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x981a886d __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x9855754b clk_add_alias +EXPORT_SYMBOL vmlinux 0x9856a2c1 posix_test_lock +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988d8a08 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x9899233a commit_creds +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98b244ee md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x98b8e92b tty_kref_put +EXPORT_SYMBOL vmlinux 0x98bf78d8 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x98c2fc62 revert_creds +EXPORT_SYMBOL vmlinux 0x98fda5d3 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x991423a3 __blk_end_request +EXPORT_SYMBOL vmlinux 0x992229e3 request_key +EXPORT_SYMBOL vmlinux 0x998001ee journal_init_dev +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99aea31a rfkill_destroy +EXPORT_SYMBOL vmlinux 0x99b4a64f dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bc1d91 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99c84277 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a14a82d scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x9a14f219 is_bad_inode +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a460c44 vga_tryget +EXPORT_SYMBOL vmlinux 0x9a5fc9c2 scsi_get_command +EXPORT_SYMBOL vmlinux 0x9a8db81b nla_append +EXPORT_SYMBOL vmlinux 0x9ac1b4f7 force_sig +EXPORT_SYMBOL vmlinux 0x9ad06a11 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x9ad09320 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x9ad27d84 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x9ad47bce ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x9adbe247 sg_miter_start +EXPORT_SYMBOL vmlinux 0x9ae7c599 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x9af5ecd0 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x9b251ddd llc_sap_find +EXPORT_SYMBOL vmlinux 0x9b33de68 d_find_alias +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b4d836d blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x9b550840 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x9b6092f7 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b773d30 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bac70bd dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x9baf27ac down_read_trylock +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bd27e65 map_destroy +EXPORT_SYMBOL vmlinux 0x9bdcf6ad pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x9be8bdfe ip_dev_find +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c080d31 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x9c1ab55e bitmap_unplug +EXPORT_SYMBOL vmlinux 0x9c2391b5 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x9c31f663 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c7084f0 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x9c8eabd3 key_link +EXPORT_SYMBOL vmlinux 0x9ca097cb __put_cred +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc45408 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x9cd60539 sg_free_table +EXPORT_SYMBOL vmlinux 0x9ce29851 neigh_destroy +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d03b366 names_cachep +EXPORT_SYMBOL vmlinux 0x9d130ab0 ___dma_page_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d645740 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d7230a3 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x9d747eaf inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x9d7a78d4 journal_restart +EXPORT_SYMBOL vmlinux 0x9d937cb4 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e4a1ed3 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x9e4ce68e arp_tbl +EXPORT_SYMBOL vmlinux 0x9e5a0c55 dev_change_flags +EXPORT_SYMBOL vmlinux 0x9e694d37 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e96c8e3 __napi_schedule +EXPORT_SYMBOL vmlinux 0x9e97f3d2 journal_load +EXPORT_SYMBOL vmlinux 0x9e998ef0 generic_show_options +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0d61b md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x9ed1e795 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9efada1a end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x9f09b554 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f223745 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f65150c fb_pan_display +EXPORT_SYMBOL vmlinux 0x9f77ecbf tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get +EXPORT_SYMBOL vmlinux 0x9fb0b3ae udplite_prot +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fb92cbe audit_log_format +EXPORT_SYMBOL vmlinux 0x9fc0fc7e xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ffd7d83 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xa0015293 page_address +EXPORT_SYMBOL vmlinux 0xa02fde36 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa038d5f6 vfs_follow_link +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa063fa77 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xa07ac24b irq_stat +EXPORT_SYMBOL vmlinux 0xa0943371 vmtruncate +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0bc7a28 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xa0be1396 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0e1ec4f udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xa0ebd18c udp_proc_register +EXPORT_SYMBOL vmlinux 0xa0ee369c vm_insert_page +EXPORT_SYMBOL vmlinux 0xa0f158a3 flush_signals +EXPORT_SYMBOL vmlinux 0xa0fade29 del_timer +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa11cf369 mii_link_ok +EXPORT_SYMBOL vmlinux 0xa11def06 journal_flush +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12bfccf scsi_register_driver +EXPORT_SYMBOL vmlinux 0xa1338cab i2c_register_driver +EXPORT_SYMBOL vmlinux 0xa137d1d1 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa185c10d tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa1951bc2 kmap_atomic +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1b8c4af thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa236d9bf ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xa251a277 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xa25e88e1 cfi_read_pri +EXPORT_SYMBOL vmlinux 0xa25fb0d4 key_type_keyring +EXPORT_SYMBOL vmlinux 0xa29066ce blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa3004cc8 kernel_read +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa3350a0e netif_device_attach +EXPORT_SYMBOL vmlinux 0xa3400d0c tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa36a7f48 uart_match_port +EXPORT_SYMBOL vmlinux 0xa3a4bed7 sk_reset_txq +EXPORT_SYMBOL vmlinux 0xa3c80ea9 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xa3cad027 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xa412821c input_open_device +EXPORT_SYMBOL vmlinux 0xa418c7b8 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xa41e1d42 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa43dd439 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa451c600 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0xa458fa5b dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xa4664eca kmem_cache_free +EXPORT_SYMBOL vmlinux 0xa4a0cff4 netdev_features_change +EXPORT_SYMBOL vmlinux 0xa4aa09a9 blkdev_get +EXPORT_SYMBOL vmlinux 0xa50f5c8e deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xa510ebbc vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xa52ea883 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa5754de8 cdev_index +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xa58f6bed scsi_init_io +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa599609e insert_inode_locked +EXPORT_SYMBOL vmlinux 0xa5b40c02 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xa5c3f2d7 iget_failed +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5f2962f journal_init_inode +EXPORT_SYMBOL vmlinux 0xa60a9451 __nla_reserve +EXPORT_SYMBOL vmlinux 0xa62a30cf qdisc_reset +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa678f13e poll_initwait +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68ca3a5 set_bdi_congested +EXPORT_SYMBOL vmlinux 0xa6b81113 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xa6ca0b56 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xa6d2f527 sock_wake_async +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6ebd762 input_event +EXPORT_SYMBOL vmlinux 0xa6f8fc45 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xa718820c seq_open_private +EXPORT_SYMBOL vmlinux 0xa7350b5e input_unregister_device +EXPORT_SYMBOL vmlinux 0xa74da95e thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0xa7a1bc57 unload_nls +EXPORT_SYMBOL vmlinux 0xa7ab836a ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xa7c43bdf scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xa7cce445 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xa7d5334d unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xa7d8539c fb_show_logo +EXPORT_SYMBOL vmlinux 0xa7ef6ab0 elevator_exit +EXPORT_SYMBOL vmlinux 0xa81554e0 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xa83dbc68 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xa8685dd1 vfs_create +EXPORT_SYMBOL vmlinux 0xa8c07e9c kernel_listen +EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xa8d47c09 i2c_del_driver +EXPORT_SYMBOL vmlinux 0xa8d626a5 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xa8ec49bc dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9100e5e devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa91bd6aa dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xa92e51f6 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xa93d83d8 scsi_execute_req +EXPORT_SYMBOL vmlinux 0xa9922834 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xa9a7a602 inet_select_addr +EXPORT_SYMBOL vmlinux 0xa9a7ae92 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xa9d3c1ac inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xa9d6c0a0 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xaa06d689 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xaa4a0165 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xaa5927f9 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa820ef4 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xaa94c694 __init_rwsem +EXPORT_SYMBOL vmlinux 0xaac5a15e fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0xaada1e15 dev_driver_string +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab058b7d pci_fixup_device +EXPORT_SYMBOL vmlinux 0xab27b841 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0xab455eb0 up_read +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab9053b3 __break_lease +EXPORT_SYMBOL vmlinux 0xabbfd9ad sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabedc848 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac13abf7 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xac3b291b phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0xac405fcd fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xac442599 tcp_poll +EXPORT_SYMBOL vmlinux 0xac4ba3f6 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xac595726 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xac5e3a81 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6babb4 audit_log_start +EXPORT_SYMBOL vmlinux 0xac849153 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xacae657c skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xacc75c71 lro_flush_all +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacdaa0fa dev_trans_start +EXPORT_SYMBOL vmlinux 0xacdc109e unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacfd6990 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad04e607 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xad25bb20 init_timer_key +EXPORT_SYMBOL vmlinux 0xad3fd34f locks_remove_posix +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad4def73 send_sig +EXPORT_SYMBOL vmlinux 0xad5fc470 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xad705674 netlink_ack +EXPORT_SYMBOL vmlinux 0xad753734 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xad94e908 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xadb3d81e up_write +EXPORT_SYMBOL vmlinux 0xadc87873 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xadd5ff21 __inet6_hash +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae2b9c9a dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xae567b6d rwsem_is_locked +EXPORT_SYMBOL vmlinux 0xae9554f2 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xaebea4f6 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaef06bd6 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xaefe6e05 generic_setlease +EXPORT_SYMBOL vmlinux 0xaf10d972 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0xaf114d6b thaw_super +EXPORT_SYMBOL vmlinux 0xaf3cb070 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf482cb7 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xaf4986b7 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf68460a jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xaf83ecb5 scsi_ioctl +EXPORT_SYMBOL vmlinux 0xaf8a74d4 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xafa14f0d framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xafa9a6fe inetdev_by_index +EXPORT_SYMBOL vmlinux 0xafaf3bce alloc_file +EXPORT_SYMBOL vmlinux 0xafc8f9c0 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xafddff89 __bio_clone +EXPORT_SYMBOL vmlinux 0xb0498f5a put_io_context +EXPORT_SYMBOL vmlinux 0xb0581b9b journal_lock_updates +EXPORT_SYMBOL vmlinux 0xb05ec834 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xb0637a89 phy_start +EXPORT_SYMBOL vmlinux 0xb079d00b pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xb0a1860c register_md_personality +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ffe07a blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xb11f5897 request_key_async +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1594c16 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xb16c8443 sock_i_uid +EXPORT_SYMBOL vmlinux 0xb17962c1 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1b22911 down_write +EXPORT_SYMBOL vmlinux 0xb1b37423 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xb1bcef8f journal_force_commit +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1f2b7c9 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22eff4e scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2405edb scm_fp_dup +EXPORT_SYMBOL vmlinux 0xb24156ce ip6_route_output +EXPORT_SYMBOL vmlinux 0xb260a4ce rt6_lookup +EXPORT_SYMBOL vmlinux 0xb264b043 skb_make_writable +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2c01901 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xb3111198 sock_i_ino +EXPORT_SYMBOL vmlinux 0xb31978cd vc_resize +EXPORT_SYMBOL vmlinux 0xb3328d7c security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb378a2cb fb_class +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3ae08aa phy_start_aneg +EXPORT_SYMBOL vmlinux 0xb3b862c4 inet_bind +EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc +EXPORT_SYMBOL vmlinux 0xb3d8a164 sock_register +EXPORT_SYMBOL vmlinux 0xb3e657f6 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xb3efc72d down +EXPORT_SYMBOL vmlinux 0xb4025378 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xb4063ac3 ps2_drain +EXPORT_SYMBOL vmlinux 0xb41a4dd6 elv_rb_find +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb43e7091 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xb4412955 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xb4423df5 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xb469ddeb mdiobus_free +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47098d6 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xb4868a71 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xb49c929a netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xb4a457ec vfs_rmdir +EXPORT_SYMBOL vmlinux 0xb4c2a61b rfkill_register +EXPORT_SYMBOL vmlinux 0xb4cdfde9 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xb4ea1d7a blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xb50288bc pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb53e524f input_set_capability +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5633fd2 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xb58e47a0 eth_header_parse +EXPORT_SYMBOL vmlinux 0xb5a0647c lro_receive_skb +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a52ddf xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb60041c7 kern_path +EXPORT_SYMBOL vmlinux 0xb6431a93 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xb655139c inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6d0c582 ps2_command +EXPORT_SYMBOL vmlinux 0xb73e6b56 init_buffer +EXPORT_SYMBOL vmlinux 0xb75bd482 dm_table_put +EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xb7937d97 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xb7b11d22 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2 +EXPORT_SYMBOL vmlinux 0xb7e35792 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xb7ee0fb2 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find +EXPORT_SYMBOL vmlinux 0xb836b55a sock_no_connect +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb874b491 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xb880abbd bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8ccac7e ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xb8d93d33 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0xb8e2d89a file_remove_suid +EXPORT_SYMBOL vmlinux 0xb91a85d1 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xb92f8bfc slow_work_cancel +EXPORT_SYMBOL vmlinux 0xb9300e0c unbind_con_driver +EXPORT_SYMBOL vmlinux 0xb94c3f2a tc_classify +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb9638fa2 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99641cf skb_seq_read +EXPORT_SYMBOL vmlinux 0xb99f3b9b generic_file_open +EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2 +EXPORT_SYMBOL vmlinux 0xb9dc8ac5 block_write_end +EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up +EXPORT_SYMBOL vmlinux 0xb9fb1146 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xb9fd483e pskb_expand_head +EXPORT_SYMBOL vmlinux 0xba0e5307 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba4b626f tcf_action_exec +EXPORT_SYMBOL vmlinux 0xba559709 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xba5e715e ll_rw_block +EXPORT_SYMBOL vmlinux 0xba676de4 dev_uc_init +EXPORT_SYMBOL vmlinux 0xba721cfb km_policy_expired +EXPORT_SYMBOL vmlinux 0xba7513bf fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xba94097e xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbac56d0e __sk_dst_check +EXPORT_SYMBOL vmlinux 0xbac9f9d6 netif_napi_del +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb44b7d4 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xbb4f6c53 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb676d66 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1 +EXPORT_SYMBOL vmlinux 0xbb758fb1 pci_restore_state +EXPORT_SYMBOL vmlinux 0xbb8346ba dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xbb98cee2 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbc0ca64e pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc1b396d __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xbc5baa0a filemap_flush +EXPORT_SYMBOL vmlinux 0xbc62c984 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xbc65546b mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0xbc65f9ec bd_set_size +EXPORT_SYMBOL vmlinux 0xbc8af5a1 slow_work_register_user +EXPORT_SYMBOL vmlinux 0xbc8cb370 gen_pool_free +EXPORT_SYMBOL vmlinux 0xbca955be xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xbcaec89e skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xbcbb6b02 mem_map +EXPORT_SYMBOL vmlinux 0xbcc9c3dc netlink_dump_start +EXPORT_SYMBOL vmlinux 0xbceaabe9 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xbd2c59d3 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xbd79e682 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0xbd7ba8b2 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xbdcbc100 mod_timer +EXPORT_SYMBOL vmlinux 0xbde0e344 register_framebuffer +EXPORT_SYMBOL vmlinux 0xbde67498 tty_devnum +EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdfd8923 do_map_probe +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe1cf54b __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xbe253740 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xbe471818 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe6a62d3 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xbe6a6a2e napi_get_frags +EXPORT_SYMBOL vmlinux 0xbe977079 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xbeb97a9b blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xbebe0a69 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xbec067ed clk_get_sys +EXPORT_SYMBOL vmlinux 0xbee1c2c3 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf08fa47 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock +EXPORT_SYMBOL vmlinux 0xbf357a4c bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xbf504f89 tcp_connect +EXPORT_SYMBOL vmlinux 0xbf625ef4 end_page_writeback +EXPORT_SYMBOL vmlinux 0xbf6e59a4 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf82b709 pcim_iomap +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfbf5df0 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xbfc5c667 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xbfd27218 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xbfdec96f neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xbfdf5bf4 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xbfe18ca8 read_cache_pages +EXPORT_SYMBOL vmlinux 0xbfe7aeb8 kunmap +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff1f894 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc01f2529 get_gendisk +EXPORT_SYMBOL vmlinux 0xc04210b5 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xc07939f7 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xc07d1586 set_create_files_as +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc08e8684 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xc0933542 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xc0a117b5 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xc0aa108e register_console +EXPORT_SYMBOL vmlinux 0xc0c30bcc udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xc0e1b3fa serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xc0e88118 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc13db488 register_cdrom +EXPORT_SYMBOL vmlinux 0xc15ca2d7 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xc15dfb05 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0xc1601a4f _change_bit_le +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc163f97b flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xc177c17d __serio_register_port +EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1dafb54 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xc1e42b65 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xc1fc4511 _test_and_change_bit_le +EXPORT_SYMBOL vmlinux 0xc226f579 del_gendisk +EXPORT_SYMBOL vmlinux 0xc22f4046 pci_set_master +EXPORT_SYMBOL vmlinux 0xc2364c65 journal_start_commit +EXPORT_SYMBOL vmlinux 0xc250fe47 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc27487dd __bug +EXPORT_SYMBOL vmlinux 0xc283e27f phy_driver_register +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fe597e spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0xc33835e1 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xc33b0a78 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xc33c68b0 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xc33dccd8 udp_prot +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc368364d vfs_fsync +EXPORT_SYMBOL vmlinux 0xc3a169cc cdev_alloc +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3dc20e3 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each +EXPORT_SYMBOL vmlinux 0xc473d0ac pci_assign_resource +EXPORT_SYMBOL vmlinux 0xc4882119 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc525a682 nla_reserve +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5461eb1 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xc54d6d96 kobject_set_name +EXPORT_SYMBOL vmlinux 0xc55e4dbb jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xc5c041df backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xc5d29386 nonseekable_open +EXPORT_SYMBOL vmlinux 0xc5e373ac simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xc61b5b1b consume_skb +EXPORT_SYMBOL vmlinux 0xc654aecf tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xc660fa61 dev_addr_init +EXPORT_SYMBOL vmlinux 0xc68f45d6 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xc68fccaa tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xc6a08353 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xc6a3841b arp_send +EXPORT_SYMBOL vmlinux 0xc6c71215 clkdev_drop +EXPORT_SYMBOL vmlinux 0xc6d533e1 down_read +EXPORT_SYMBOL vmlinux 0xc6f7604e kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xc7274e70 log_wait_commit +EXPORT_SYMBOL vmlinux 0xc72d8b0f dma_sync_wait +EXPORT_SYMBOL vmlinux 0xc7560098 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xc75699a2 clk_disable +EXPORT_SYMBOL vmlinux 0xc7672dbd dev_gro_receive +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7d8c56c journal_release_buffer +EXPORT_SYMBOL vmlinux 0xc7da473b default_llseek +EXPORT_SYMBOL vmlinux 0xc7e2eb3c default_file_splice_read +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7eee87e get_mem_type +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc80733ba tcp_prot +EXPORT_SYMBOL vmlinux 0xc813ab17 mdiobus_read +EXPORT_SYMBOL vmlinux 0xc827f9af lock_fb_info +EXPORT_SYMBOL vmlinux 0xc829aa06 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xc83ca4db nf_log_register +EXPORT_SYMBOL vmlinux 0xc845dbf8 cfi_fixup +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc87592c9 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8c98151 file_permission +EXPORT_SYMBOL vmlinux 0xc8ce7af1 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xc8d35f68 kobject_init +EXPORT_SYMBOL vmlinux 0xc8d8d8e4 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xc8dbc9cf d_obtain_alias +EXPORT_SYMBOL vmlinux 0xc900c4bc block_truncate_page +EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9ac2c01 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xc9c4abf8 fsync_bdev +EXPORT_SYMBOL vmlinux 0xc9d90137 take_over_console +EXPORT_SYMBOL vmlinux 0xc9eb88bf kill_anon_super +EXPORT_SYMBOL vmlinux 0xca080f3f pci_save_state +EXPORT_SYMBOL vmlinux 0xca3491e5 neigh_update +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca76e1d4 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xca780da6 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xca8cf93f pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xca99f7d0 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xcab06587 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcaf8584c sock_kmalloc +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcb194f9d netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xcb1957e8 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xcb2f1e02 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xcb541f54 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xcb5ad96b __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xcb69c9bb read_cache_page +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb82a01c xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xcb8d79b5 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xcb90a5c3 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xcb9f86aa scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xcba05286 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xcbea7441 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xcbfb2db7 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc4bd8e7 get_phy_device +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc55792f simple_write_end +EXPORT_SYMBOL vmlinux 0xcc6c3fa3 dquot_operations +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc95e423 skb_recycle_check +EXPORT_SYMBOL vmlinux 0xcc9e4d51 km_state_notify +EXPORT_SYMBOL vmlinux 0xcc9ecabb dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xcca55331 may_umount_tree +EXPORT_SYMBOL vmlinux 0xccaa4fd6 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0xccbc174f devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xcccca482 _test_and_clear_bit_le +EXPORT_SYMBOL vmlinux 0xccd36916 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xccd3dfd9 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xcd354495 journal_revoke +EXPORT_SYMBOL vmlinux 0xcd431c5a nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xcd464e04 blk_init_tags +EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcde144e5 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xcde77be2 neigh_table_init +EXPORT_SYMBOL vmlinux 0xcdf3b1f9 pci_iounmap +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce1a32f7 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xce22580f neigh_seq_start +EXPORT_SYMBOL vmlinux 0xce25c2a4 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce6d9366 bdev_read_only +EXPORT_SYMBOL vmlinux 0xce77a1c9 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xce883171 __pagevec_release +EXPORT_SYMBOL vmlinux 0xce923972 security_file_permission +EXPORT_SYMBOL vmlinux 0xcea2c7f6 genphy_read_status +EXPORT_SYMBOL vmlinux 0xcece9b0f dm_io +EXPORT_SYMBOL vmlinux 0xcf0e8154 md_integrity_register +EXPORT_SYMBOL vmlinux 0xcf1292af d_alloc_root +EXPORT_SYMBOL vmlinux 0xcf190a3c pci_get_device +EXPORT_SYMBOL vmlinux 0xcf2fc728 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xcf4a88e3 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xcf5d142f scsi_scan_target +EXPORT_SYMBOL vmlinux 0xcf6b5c47 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xcfa85bfe mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xcfb061ca i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfbc52ad ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd049f432 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xd04c116f netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xd05b4b8b netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xd06b4d2a d_move +EXPORT_SYMBOL vmlinux 0xd071a2b8 amba_request_regions +EXPORT_SYMBOL vmlinux 0xd0843f64 genphy_resume +EXPORT_SYMBOL vmlinux 0xd08c3245 get_disk +EXPORT_SYMBOL vmlinux 0xd0a2bae9 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0ab1a17 dma_pool_free +EXPORT_SYMBOL vmlinux 0xd0c2622f thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xd0e276e9 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f34b02 generic_write_sync +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd1181d17 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xd119ef0e generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xd11ecbbd elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xd12e6b81 simple_set_mnt +EXPORT_SYMBOL vmlinux 0xd132837a pci_read_vpd +EXPORT_SYMBOL vmlinux 0xd13c5a63 create_mnt_ns +EXPORT_SYMBOL vmlinux 0xd1518482 pci_request_region +EXPORT_SYMBOL vmlinux 0xd18ceeb9 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0xd1a08104 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0xd1a98a4a qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xd1c4e798 dquot_disable +EXPORT_SYMBOL vmlinux 0xd1c9cdb5 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xd22be14f request_firmware +EXPORT_SYMBOL vmlinux 0xd2377670 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd26f673e uart_resume_port +EXPORT_SYMBOL vmlinux 0xd28c4407 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd298bca5 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xd33cdacf pci_pme_active +EXPORT_SYMBOL vmlinux 0xd35e3361 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xd365ac32 framebuffer_release +EXPORT_SYMBOL vmlinux 0xd38800c8 __blk_run_queue +EXPORT_SYMBOL vmlinux 0xd3d63876 security_path_chown +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd4348112 load_nls +EXPORT_SYMBOL vmlinux 0xd44431c0 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xd46356b9 dma_find_channel +EXPORT_SYMBOL vmlinux 0xd46c85a3 inet_shutdown +EXPORT_SYMBOL vmlinux 0xd4878d60 phy_device_free +EXPORT_SYMBOL vmlinux 0xd48aa2cb serio_close +EXPORT_SYMBOL vmlinux 0xd5004907 dquot_transfer +EXPORT_SYMBOL vmlinux 0xd5152710 sg_next +EXPORT_SYMBOL vmlinux 0xd51c0ea8 sock_no_listen +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd528aeb6 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xd52e82f5 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xd5452309 __dst_free +EXPORT_SYMBOL vmlinux 0xd553f5d3 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd56b2fe8 d_splice_alias +EXPORT_SYMBOL vmlinux 0xd57c5aa1 register_netdevice +EXPORT_SYMBOL vmlinux 0xd599b2d2 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xd5adadbd datagram_poll +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5c39161 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xd5c41b18 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xd5d7775d mpage_readpage +EXPORT_SYMBOL vmlinux 0xd5d93a0d __find_get_block +EXPORT_SYMBOL vmlinux 0xd5e6affb security_path_unlink +EXPORT_SYMBOL vmlinux 0xd5fafbbe pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6500502 vc_cons +EXPORT_SYMBOL vmlinux 0xd666d437 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xd69a3ab0 proc_mkdir +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6bc8838 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xd6d505af ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6eed16a netif_device_detach +EXPORT_SYMBOL vmlinux 0xd70184cb sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xd7107542 noop_fsync +EXPORT_SYMBOL vmlinux 0xd745952f blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xd747b612 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0xd75dba8c tty_vhangup +EXPORT_SYMBOL vmlinux 0xd75dc827 fb_set_var +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd7911993 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7bbd357 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xd7be8514 invalidate_partition +EXPORT_SYMBOL vmlinux 0xd7d1d0a6 clk_put +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd80328bb __kmalloc_track_caller +EXPORT_SYMBOL vmlinux 0xd8100d12 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xd8137ad7 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd84e0503 cdev_add +EXPORT_SYMBOL vmlinux 0xd8724ed9 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xd87add14 kernel_accept +EXPORT_SYMBOL vmlinux 0xd87b9bbf lookup_bdev +EXPORT_SYMBOL vmlinux 0xd888ef7f ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xd89e61b5 vfs_write +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8a53f4a journal_wipe +EXPORT_SYMBOL vmlinux 0xd8a6bac1 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xd8bfe7a7 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xd8c4990a fb_set_cmap +EXPORT_SYMBOL vmlinux 0xd8cdd3d4 skb_clone +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92ba787 follow_down +EXPORT_SYMBOL vmlinux 0xd9379ce2 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xd9476626 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xd95b40c1 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xd97035b4 blk_free_tags +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9880206 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd9aab53c __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9ed5864 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda37c165 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xda39a446 tty_register_device +EXPORT_SYMBOL vmlinux 0xda3b7f30 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xda415615 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xda5ea696 _test_and_set_bit_le +EXPORT_SYMBOL vmlinux 0xda75e7d6 dquot_commit +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda909c66 locks_init_lock +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdab80c1d sk_stop_timer +EXPORT_SYMBOL vmlinux 0xdad36cf9 genl_register_ops +EXPORT_SYMBOL vmlinux 0xdb0d06c9 input_set_keycode +EXPORT_SYMBOL vmlinux 0xdb2178c7 __sg_free_table +EXPORT_SYMBOL vmlinux 0xdb217934 vfs_statfs +EXPORT_SYMBOL vmlinux 0xdb800358 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb9f4834 blk_register_region +EXPORT_SYMBOL vmlinux 0xdbc39b76 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd4f335 inode_setattr +EXPORT_SYMBOL vmlinux 0xdbd8a822 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xdbef3ddd nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc25ef6c d_alloc_name +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc372342 __register_binfmt +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc454260 f_setown +EXPORT_SYMBOL vmlinux 0xdc591492 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init +EXPORT_SYMBOL vmlinux 0xdc908bc8 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xdc9d9c39 new_inode +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdcad444d inode_get_bytes +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcea90fb set_page_dirty +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd314c1e netpoll_setup +EXPORT_SYMBOL vmlinux 0xdd3ba408 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xdd512f60 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd6f9b8e submit_bh +EXPORT_SYMBOL vmlinux 0xdd7fe3e3 generic_removexattr +EXPORT_SYMBOL vmlinux 0xdd8ddea0 netpoll_poll +EXPORT_SYMBOL vmlinux 0xdd90d9bf eth_header_cache +EXPORT_SYMBOL vmlinux 0xdddcbd99 empty_zero_page +EXPORT_SYMBOL vmlinux 0xdddf7d5b __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xdde8ecc0 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xde2b0381 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xde3e1027 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xde4f8a49 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xde5fded1 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xde6b7bb7 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde76bcb4 fd_install +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdeb87ffd generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xdebaa1a3 invalidate_inodes +EXPORT_SYMBOL vmlinux 0xdebfdd55 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xdec4dffc md_check_recovery +EXPORT_SYMBOL vmlinux 0xdf04512d xfrm_state_add +EXPORT_SYMBOL vmlinux 0xdf154b9b phy_device_create +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf55fe3a tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf680edc bio_map_kern +EXPORT_SYMBOL vmlinux 0xdf6cebbf __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf963ba5 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xdfa610f7 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfb042e8 path_lookup +EXPORT_SYMBOL vmlinux 0xdfc09fd9 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfe9ddfe tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xe0475de2 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xe06840b2 kthread_stop +EXPORT_SYMBOL vmlinux 0xe075988e tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe094c762 __scm_destroy +EXPORT_SYMBOL vmlinux 0xe0953cd7 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xe0adef11 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0bef318 icst_hz_to_vco +EXPORT_SYMBOL vmlinux 0xe0e64d79 iunique +EXPORT_SYMBOL vmlinux 0xe0ef94fa pci_release_region +EXPORT_SYMBOL vmlinux 0xe109465d netif_carrier_off +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1243b19 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe1442f37 prepare_creds +EXPORT_SYMBOL vmlinux 0xe158168b free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xe15e9296 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1c29f22 lock_rename +EXPORT_SYMBOL vmlinux 0xe1d02ed5 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xe1d1d0b0 con_is_bound +EXPORT_SYMBOL vmlinux 0xe1e1705f proc_symlink +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2531653 inet_frag_find +EXPORT_SYMBOL vmlinux 0xe279583d jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xe279d0e0 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xe28ae4b1 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xe296290c qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe30e1419 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xe3690de7 dma_mmap_coherent +EXPORT_SYMBOL vmlinux 0xe36aa275 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xe3768df3 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xe393ceb1 kernel_bind +EXPORT_SYMBOL vmlinux 0xe3dcc053 freeze_bdev +EXPORT_SYMBOL vmlinux 0xe3e550e7 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xe404cb4d ppp_channel_index +EXPORT_SYMBOL vmlinux 0xe44d943a input_flush_device +EXPORT_SYMBOL vmlinux 0xe485da18 scsi_free_command +EXPORT_SYMBOL vmlinux 0xe4b31a1b blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xe4c723ff pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +EXPORT_SYMBOL vmlinux 0xe4cdb89d __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xe4d3bb9a generic_write_end +EXPORT_SYMBOL vmlinux 0xe4f28610 simple_release_fs +EXPORT_SYMBOL vmlinux 0xe507a390 journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52dd6ae tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58e72bc blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xe5bcdd76 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d99774 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6017f9e cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xe60cfd9f fb_set_suspend +EXPORT_SYMBOL vmlinux 0xe61d4405 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xe6272fea generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xe62efb22 __devm_release_region +EXPORT_SYMBOL vmlinux 0xe639f34e dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xe6567193 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6b80115 generic_setattr +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6c5a264 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xe6d97ca7 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f71d20 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xe6f7edcd skb_checksum +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe705448c ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0xe70d571f make_bad_inode +EXPORT_SYMBOL vmlinux 0xe714f3e4 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xe72a134c jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xe72eca2f cad_pid +EXPORT_SYMBOL vmlinux 0xe7393e22 kfree_skb +EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on +EXPORT_SYMBOL vmlinux 0xe76ca3aa vga_client_register +EXPORT_SYMBOL vmlinux 0xe76f777b put_mnt_ns +EXPORT_SYMBOL vmlinux 0xe774b005 bd_release +EXPORT_SYMBOL vmlinux 0xe788ccdc neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xe7cb90ef dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0xe7cbe592 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe81fcce2 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xe82743f9 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xe828d561 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xe82a5154 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xe8547d56 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace +EXPORT_SYMBOL vmlinux 0xe87f114e inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape +EXPORT_SYMBOL vmlinux 0xe8afd9e2 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xe8e6db9d vfs_link +EXPORT_SYMBOL vmlinux 0xe8fffa88 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9671ec0 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xe98a87f1 dcache_lock +EXPORT_SYMBOL vmlinux 0xe9b2bcb4 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xe9d91c36 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xe9ff6be5 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea07867c generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea147363 printk +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea2eccd7 thaw_bdev +EXPORT_SYMBOL vmlinux 0xea355d62 ipv4_specific +EXPORT_SYMBOL vmlinux 0xea7045e3 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea870694 simple_empty +EXPORT_SYMBOL vmlinux 0xeaa0a6f9 generic_unplug_device +EXPORT_SYMBOL vmlinux 0xeaa6e744 tcp_child_process +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeae769bf abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xeafaf52e jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xeb04b3bc dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0xeb140124 blk_run_queue +EXPORT_SYMBOL vmlinux 0xeb1848dd jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb9832eb sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xeba1eda4 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xeba452d8 simple_rmdir +EXPORT_SYMBOL vmlinux 0xeba61ddd mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xebc404ae set_bh_page +EXPORT_SYMBOL vmlinux 0xebcc4ceb slab_buffer_size +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebee2890 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xebf1cdc5 generic_listxattr +EXPORT_SYMBOL vmlinux 0xebf1f281 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec16e974 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xec20376f nla_put +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xec6db156 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xec7d1f59 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xec8f94ef user_path_at +EXPORT_SYMBOL vmlinux 0xecb1f38d key_revoke +EXPORT_SYMBOL vmlinux 0xecbf4d7e max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xecc50de5 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xecca3d07 journal_get_write_access +EXPORT_SYMBOL vmlinux 0xed120b77 flush_old_exec +EXPORT_SYMBOL vmlinux 0xed2411aa nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xed4d611b dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xed57ba70 pci_find_bus +EXPORT_SYMBOL vmlinux 0xed612c8f __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xed6f0d47 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xed755170 __netif_schedule +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda40282 pci_dev_get +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xeddc6b3c __devm_request_region +EXPORT_SYMBOL vmlinux 0xede2de08 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xede5883f vfs_readv +EXPORT_SYMBOL vmlinux 0xee26d731 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee39f246 kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0xee61eba9 d_alloc +EXPORT_SYMBOL vmlinux 0xee9444e0 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeec615f9 proto_unregister +EXPORT_SYMBOL vmlinux 0xeedfd5cf __seq_open_private +EXPORT_SYMBOL vmlinux 0xeee1fc35 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xeefab4b4 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xef0bbd6b elv_queue_empty +EXPORT_SYMBOL vmlinux 0xef17931c genphy_config_advert +EXPORT_SYMBOL vmlinux 0xef3865f7 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xef39b8a6 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xef525d71 simple_getattr +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef6ecd77 mnt_pin +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef745218 seq_read +EXPORT_SYMBOL vmlinux 0xef97b8c8 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xefaef3c8 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xefd6cf06 __aeabi_unwind_cpp_pr0 +EXPORT_SYMBOL vmlinux 0xefdd2345 sg_init_one +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xeff8df2f jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00af19b icst_clk_set +EXPORT_SYMBOL vmlinux 0xf0168d83 bio_split +EXPORT_SYMBOL vmlinux 0xf016d6d5 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xf05091b7 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xf07cb7ff fb_get_mode +EXPORT_SYMBOL vmlinux 0xf087cb3b handle_sysrq +EXPORT_SYMBOL vmlinux 0xf0a701dc dst_alloc +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0faf657 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf11c9de3 journal_extend +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf122dcaa unlock_new_inode +EXPORT_SYMBOL vmlinux 0xf1321b43 kmap_high +EXPORT_SYMBOL vmlinux 0xf136c279 add_timer +EXPORT_SYMBOL vmlinux 0xf15b73a0 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xf174a793 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19731f7 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xf198a9c0 __bforget +EXPORT_SYMBOL vmlinux 0xf1d204d8 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2205d1c udp_poll +EXPORT_SYMBOL vmlinux 0xf2318108 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xf273bec6 aio_put_req +EXPORT_SYMBOL vmlinux 0xf28e9c3b __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a6df82 sock_wfree +EXPORT_SYMBOL vmlinux 0xf2c37f46 no_llseek +EXPORT_SYMBOL vmlinux 0xf2c57f43 bioset_free +EXPORT_SYMBOL vmlinux 0xf2ea8324 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xf2ebb9a7 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xf30f538e __breadahead +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3159a88 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf359e2f4 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xf361ee5b pci_select_bars +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf39f3d0c sg_miter_stop +EXPORT_SYMBOL vmlinux 0xf3adf870 journal_abort +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3eb34b7 abort_creds +EXPORT_SYMBOL vmlinux 0xf3f5d053 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xf412214e blk_end_request +EXPORT_SYMBOL vmlinux 0xf427e584 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0xf444c5aa linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xf46620b6 llc_add_pack +EXPORT_SYMBOL vmlinux 0xf46c4695 skb_copy +EXPORT_SYMBOL vmlinux 0xf47806a2 path_is_under +EXPORT_SYMBOL vmlinux 0xf48a1218 vm_map_ram +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4bd4e55 unregister_netdev +EXPORT_SYMBOL vmlinux 0xf4bd84c4 fb_find_mode +EXPORT_SYMBOL vmlinux 0xf4c0cfea dev_mc_init +EXPORT_SYMBOL vmlinux 0xf4dc700d skb_store_bits +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf5164b60 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xf5308e53 input_register_device +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf5504b4b blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xf55e7347 tcf_register_action +EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf58717f8 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xf5a3c864 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xf5b539d5 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cc3097 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5e8cd63 md_barrier_request +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf63e39c2 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xf68bb1aa scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xf695f7e7 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xf6960016 create_proc_entry +EXPORT_SYMBOL vmlinux 0xf6a50e93 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xf6a80e6a inode_needs_sync +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6db0937 skb_pad +EXPORT_SYMBOL vmlinux 0xf6dceabe pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf700c26b pskb_copy +EXPORT_SYMBOL vmlinux 0xf70ec7f1 alloc_disk +EXPORT_SYMBOL vmlinux 0xf71d4311 blk_plug_device +EXPORT_SYMBOL vmlinux 0xf720a5b7 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf737361f sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf77c2f55 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf7818c38 rfkill_unregister +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf78eaadb current_fs_time +EXPORT_SYMBOL vmlinux 0xf795ddc1 clk_get_rate +EXPORT_SYMBOL vmlinux 0xf79bfcb0 unregister_console +EXPORT_SYMBOL vmlinux 0xf7ad76ad tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0xf7adb4dc tty_port_close +EXPORT_SYMBOL vmlinux 0xf7bdea32 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xf7d11cd8 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf8168aaf ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xf81d2e64 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xf82a1ccd da903x_query_status +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf849750e dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xf8727d6b dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xf88c3301 sg_init_table +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf89810bd ip_fragment +EXPORT_SYMBOL vmlinux 0xf8a3b44d jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xf8b2acbd blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xf8bfab38 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xf8cc93ef sk_stream_error +EXPORT_SYMBOL vmlinux 0xf8f408f8 register_filesystem +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf90c155d init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0xf91b2cea block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xf91fe236 __scm_send +EXPORT_SYMBOL vmlinux 0xf937f008 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9afacaa scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xf9bb533e blk_put_request +EXPORT_SYMBOL vmlinux 0xf9d74899 kunmap_atomic +EXPORT_SYMBOL vmlinux 0xf9dafe07 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xfa42867a set_disk_ro +EXPORT_SYMBOL vmlinux 0xfa49f377 release_sock +EXPORT_SYMBOL vmlinux 0xfa4b818d abx500_register_ops +EXPORT_SYMBOL vmlinux 0xfa518734 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xfa7c02b0 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xfa817cfb qdisc_list_del +EXPORT_SYMBOL vmlinux 0xfa887b66 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xfa89c809 tcp_check_req +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0xfaee60b9 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0be908 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb39b5d0 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb76feb8 bio_copy_user +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbdd6d03 misc_deregister +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbfe5b98 dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc204cc1 bh_submit_read +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3fafd3 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xfc550e17 input_get_keycode +EXPORT_SYMBOL vmlinux 0xfc7eaa2c cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcad9792 dentry_open +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc6c94d __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xfcca92c1 netif_napi_add +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd09bea8 dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0xfd19f754 __destroy_inode +EXPORT_SYMBOL vmlinux 0xfd1bbdc0 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xfd1e5b7d find_lock_page +EXPORT_SYMBOL vmlinux 0xfd23da22 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd4b9c16 icst_clk_round +EXPORT_SYMBOL vmlinux 0xfd4bdb28 send_sig_info +EXPORT_SYMBOL vmlinux 0xfd626a93 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xfd71ab09 dev_load +EXPORT_SYMBOL vmlinux 0xfd741c63 d_path +EXPORT_SYMBOL vmlinux 0xfd7ec291 pci_target_state +EXPORT_SYMBOL vmlinux 0xfd8f3d66 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xfd95d2cd kill_pgrp +EXPORT_SYMBOL vmlinux 0xfd963f84 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xfd99f7e9 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xfd9f9768 flush_dcache_page +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfddadb5f iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe13f235 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfea99bf9 kick_iocb +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfec9f5a2 sock_map_fd +EXPORT_SYMBOL vmlinux 0xfed59601 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfeec44dd mfd_add_devices +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1cbefe xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff20d6da __getblk +EXPORT_SYMBOL vmlinux 0xff261096 kobject_get +EXPORT_SYMBOL vmlinux 0xff3f5d55 unlock_super +EXPORT_SYMBOL vmlinux 0xff621105 tty_hangup +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff8e954f elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff9c9df5 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb4ee6d dget_locked +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x2495d348 crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x02b2904d async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x05f5acf5 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xf300018a async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xbc78966b async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xe719ab2f async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x058e9926 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x0e510b13 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x14412559 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x14927f35 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x12fc8c79 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x39656002 async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x16258db3 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x2205b128 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x3ce79b6c cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x55f31e45 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x97c7eb14 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xc8ce820f cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xf3e0153e cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x24d874b8 twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00308631 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x55c49c39 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9931cfad ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xafaa2896 ahci_sht +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb63dcc62 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc0698669 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc8dc185d ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcb476015 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd9feb8bc ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdaa1e471 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdb5b1b3f ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe020b2b9 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe45f9eaa ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xc4f5cd5f __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xf6cc0092 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x5c7c892b drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xb8b906d0 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0aa5f797 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x12d28699 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x12df026b hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x12fde5ae hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1dff3d3e hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x24bdc0db hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x28df6dfe hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x39b80d5e hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3ad748b3 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x58243ff6 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6c435b8c hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6d239d72 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7c11e3a0 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9aeb9b92 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9b6f40cb hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9d88e6be hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa54d8a9f hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb766bd22 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc66ee74a hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe8a24529 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xec164ebf hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf6ef3998 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfac201c2 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfb4cba1d hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfba20bcc hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfbcc0db6 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x7f6e8cdf roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0789d44f usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xc2bd3be2 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xccf386d8 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xdb14e268 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x3fb8753f i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x9dec7c90 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x0b5c0c1e hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x55f23607 hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x18112478 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x97a608fe led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xa0562017 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xcaf507f6 led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xd4cf668f led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x3158ab39 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xded22c8b ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xeacc78f8 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x03bd7f09 ir_unregister_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x293e00da __ir_input_register +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4b9d5e96 ir_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4f7d7957 ir_repeat +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x808357f3 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9b65611d ir_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xb5c3114f ir_input_unregister +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xbfdc5a15 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xc183a4fd ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xde3fc8d9 get_rc_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf190292d ir_register_map +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0ed41a1a saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0ff725d5 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x568eb27f saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x5f00b1e6 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x5fd1ec75 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6773050a saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7c8ba368 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8f1d30a7 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc39b2987 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe092f5f0 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf6958ae9 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x1e943f87 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x284ab3fe mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x7f07e694 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xe838a32e tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x79239768 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xcdddba49 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xe2aa7d56 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x80034e2d tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xe4ca3e50 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x953ad38e tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xdd5fdfe9 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x8e97d0bd simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x152c995c gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1986df50 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2dccb593 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x48abdc5e mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x50d54903 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x52dec82c mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x575faf94 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8fc3e433 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb905f288 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbc849530 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc6178f37 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc6bdab26 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xca2a270b ir_mantis +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd118f11f mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd6861f0b mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdc710de6 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xeaefcffb mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xee725932 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0d9c0f59 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x179b3b8e sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2980ed4f smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2e738da7 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3372282b sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x622143a1 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6a29c498 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6c25f8e1 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7a4c30bf smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7e31406e smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x84707915 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8b1ea7f0 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8f6810e3 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa6b7397b smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc7b58f8e sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc90125c9 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc94ea730 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd007f6e8 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfd1cc9af smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x6f6ca5d7 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x8266edc9 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x966c4bd9 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa0027234 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa87e3692 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb47e0e77 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xcfa1d582 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x049a8d04 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x21a25f49 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x28fc680e i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x66516984 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xbe28c3e9 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf26cb21b i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf8550e6e i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfe88e135 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x05e690c1 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x06c28c15 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x26a3a6d5 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4921e512 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4e8b1f6a pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x665ecb27 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6e21ac8e pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb1991a9c pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xbde01137 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc0913070 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xde9aaf50 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x76279450 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xcd989af7 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2b76010d pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x328c43f2 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x8e6ecb3f pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe3e77d8e pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xffdb3f64 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1ec2ad0e sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2c197b73 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7331cf4b sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x77f96312 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa3e67725 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x17126e53 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x199c302d wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x3b3ac50b wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x493888e4 wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6814ed0b wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x59c8dad2 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc0414128 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xebfa6192 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xeec37e56 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x718178de enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8e56cdb1 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x93db2a42 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xa5c2cc12 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xcdeb3eab enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xecde54be enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfc3bf02f enclosure_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x587847a6 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x65b93525 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x69549cf6 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbc78b19c sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbc90bb2f sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd6f498ce sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x08f21375 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1433c0af ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x27340470 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5f42fefd ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7c34c40a ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x92c975b9 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9d162c83 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9f7e0c3e ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb4975749 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc17c5d8b ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd220ed16 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdd08043e ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5a87598 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x066b1a73 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0ca5afac can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x239c865d close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5043cc92 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x629bc82a unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6dc97e9c alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x74387516 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x91eadd23 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x92e77d71 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa78f3fd9 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xaf579a2e open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc58fbb81 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x12459499 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x45a3e738 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x8399b9e5 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x87282db5 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x576460e5 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x635b194a macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x70a0406a macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xaeed9fef macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd18a4a9f macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01d31dec mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x02d9892e mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x033a1b79 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x03ab1758 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x044733d4 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x05d0df6e mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b72bc23 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0d70f8d8 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x174023d7 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1ff444d3 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2a5b4929 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2ac5ddd2 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2bd86190 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2fd8f8f2 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3022b414 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x44c0a862 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4532e8fb mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x46794eb4 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4bf5f8f8 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x50ce0ac9 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x58ddcc80 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6736579d mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6f9358ac mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7142a787 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7a78fe3c mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x840c4765 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x84c7c94d mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x989ec1e9 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa0720c71 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xac7baaeb mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb3603820 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb656cf95 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc0c806c3 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc3abaf3a mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc48366ef mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc6a710ab mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc7e2281e mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcab19648 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd2ae7831 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd6961df0 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd8d3809a mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xda8d3fdf mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdb673cb2 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdfe838b8 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe14f2b27 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe1f76862 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe4d5bb8d mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe5aae172 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf19160ff mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf34c0874 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf4f7e902 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf80ac67f mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfcab5c42 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x105aad44 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x906bb7ca usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x3dd95a59 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x96ed7502 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9e56aabe rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc2c3defa rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd681b212 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf7ef859b rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x17c49071 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1abd3795 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1d8f7a1a usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x41b174ad usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4e3a1ae1 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x549564da usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x553a31bd usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x576a495a usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x58bec93b usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7e4993c8 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7ece66c7 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8379d365 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8b71ec42 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x92dafd9b usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9b673e26 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa16a1774 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa8c25487 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbe90aead usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbfdb74d3 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd7caab30 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xda7e0fb7 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdfee68a3 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf13acccb usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf8eb8caa usbnet_open +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x049d4b3e i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0ad5606a i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3ecc4241 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x49ea635f i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x59331515 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x64bda3df i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6e9c2377 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6f859330 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x76b901f4 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x83bb5e83 i2400m_cmd_get_state +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x88202407 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8bad9b8d i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9fad8e00 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xadf39469 i2400m_set_init_config +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdfbac59f i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe7216d85 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe954c500 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfc6fbeaf i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xc112b7aa libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x4d796b33 iwl_dealloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xc9d59038 iwl_alloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xcb7790e0 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x02cea0cd __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0a62ebaf lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0f5a2ec7 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1052eff9 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x17cd7c23 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3aa21138 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6a34b5c3 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x82b239bd lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x883585a7 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x91dd713f lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x98a5aed7 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xacba223b lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb3badfb4 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb8f0dbed lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0dc9b4b1 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x48345620 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x48acb4eb lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7d46efd6 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xae435077 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd595f152 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf56e0b72 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf982f403 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x044533e4 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x5f496813 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x16439c0f p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7662410d p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7e34efff p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb316b25f p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb72c406f p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb9a81711 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd3913975 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdf9b0c4f p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xea7de9c0 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0c5fb3ab rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x134afade rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x24230ea4 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2ee16992 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x32e83dbf rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x42defe10 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x62eeeb06 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x66fbe637 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x70a849df rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x71633abe rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x77b2b167 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x803d2461 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x93e15d4e rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa5680634 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb47319cd rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb9c56868 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcb745f7c rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcc6029e9 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6afd932 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6d3e975 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe9e559cb rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xea0a1071 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xed577501 rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf9f2fd00 rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x06cfe9da rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x10de9a7e rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x156a685e rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x28bdec5d rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2fee77b7 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35739b8b rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x374101da rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4bfaf490 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4d37165e rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x54376426 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x634f1a3d rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x653b80c0 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x677ae938 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b2ebb85 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7a6e6c07 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x857de817 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8eeb1561 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9aab4d8b rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa5950b7e rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc2bc7f8f rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcbb27d62 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xef2f1c55 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf3116412 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x01439b0d rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x103d0b00 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x216263f5 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3b8eca3f rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4631b4ef rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7d683b66 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa8c4fbfd rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbd8df021 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd4df5809 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1e428e8a rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1f67d566 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x39575d38 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x399b0108 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x52a0a390 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5c787e91 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5f5556cc rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x65d45656 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x851a3c6c rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x85595647 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8b4a43cb rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9327b136 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc50d0e4d rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd157efc7 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd8a7703f rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe53e2727 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x57f88095 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x63ac41c7 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xba976347 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x006b151a pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xbe80c71b pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xd8015f8a pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0e1a1f34 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x13555657 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x33e37372 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6c222479 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb5b4432e wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc18f2d01 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x2efb9577 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x25099007 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x037fdcb2 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x046bb7c7 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08994195 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b62c544 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1e551a9f iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x246bd7a3 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x26104ecb __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ece6c1a iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b14d03e iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b49811c iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x42cb02a9 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4c202000 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52ba303b iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5652b63c iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5c149e44 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x662bd1f7 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a78920e iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7376cf96 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x758312a9 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x77b0731f iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x786f4b4d iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7ffc77b3 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x88e375d1 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8b9ec65d __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a6db755 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9bf1f68a iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ca63cf7 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9db18905 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xadeaf334 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcce7c197 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcd2f8978 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcec964e5 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdb8aa5d8 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0952830 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe189e373 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe2fe8955 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe35a3a9e iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe8feb460 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9ca215a iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xee783027 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xef9fb36b iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf85f408d iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x01adc209 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4048840d iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x42fa8727 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x56c7aff6 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5a4f2da9 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x60eb029d iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x61c807ee iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x62a3ea29 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6922ef3d iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7510611a iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbf6d7162 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcd13b5a7 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf06e7b38 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf3a3c65d iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf45e7d09 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf6d39c57 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x028c57c2 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x06004af3 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0a16bb54 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0c02cf2b sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x10bba465 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1eb6b6e0 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x290eb27e sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2ab70bf3 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3efbfb93 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x44b83dfc sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x48a56f8f sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5c25841f sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e58d865 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x641d1110 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x67cd3951 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7304c9ba __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7c3ac80b sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x84275b77 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9e9f7952 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xabd38b87 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc370e3ed sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcdf1dc26 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd94d54f1 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2558bdb8 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x51e024dd srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x646f66d4 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9ebd372b srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xcad08a26 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd03d6701 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00b1398d scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x08626a05 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbc889e4d scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc237d7f4 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xcbdc8380 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd06d74dd scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xdde22c6c scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe295a0a0 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfff5ad8a scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ac7ea63 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0c359359 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x166edd79 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1aa10d03 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2e35d9b1 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x38f99e5b iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4f6cdae2 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57ad1c7a iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5fa93192 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x603512a5 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x643137c5 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x874bacca iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8848b792 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8939ed7e iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8adf1b2d iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f77a66b iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x93a785c5 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa3df25da iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xac9606ff iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbf6b3764 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd593394e iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xda8885ed iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00432743 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x0d64d0b0 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x5f33b527 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x6c15d46b sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x32272174 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x4767163c srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x9ac6704e srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc408a04b srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xed027b03 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x5f275a41 pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xb5c464f2 pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xf69ae8dc pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xf84feb64 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x32663da3 st_register +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0b0267f1 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x13bb643e dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x30967c96 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3e14745c usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6a05f9f5 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x702b5bce sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x716b7cca usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7862a8a3 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x83604399 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x95d0ffa6 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa40da2d2 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd77bd956 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xde776ed3 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe4271e92 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xef2334ec usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1d04822c uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x525739f6 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc2e07058 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0f919e50 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1430a24d usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x47014a6e usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6e83b04c usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x865a7cc0 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8c528ed6 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb5567518 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xbf930bec usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfabaa6ed usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0346b62a usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0b624147 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x14c58d08 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x16187c40 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1c9c006d usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x200af592 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x24d7fb57 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2b5441ae usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3a749ca7 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4f5347f2 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x52ed88f9 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7e418d6c usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8c8d0de0 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa75f06e9 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb12ba277 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb68575f5 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xce595168 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd0e0c012 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe441d8b3 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x059e382a usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x09aff5e6 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0a3b41a4 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x18017e2d usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1de7728d usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x269a2fcb usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3f4d2926 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x435f3d01 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4c3698e3 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4fec7832 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6496fd93 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6b05a57f fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6b84e5fe usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7a2bbafc usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8ed55267 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa1c86d70 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb858d5f3 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xba220802 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbd8eb6f6 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc3039a20 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdd23755d usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe039991f usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf4e1a5a8 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x02b8ff83 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x04d93520 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x83e4ac7e __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcfebe409 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xe5f305cf rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2700ed12 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2fe64d28 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3faba00f __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4198c1e2 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x432613c8 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6211bb9c wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x67185601 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x76807292 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7cb10aa8 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f6b7365 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xae69e1cf wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb8083507 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xca43a434 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xeaa03aa4 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfb4390fc wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfd38ebad wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa2692e49 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa565b167 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xbcf6de74 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x01aa41d1 uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x070e041e uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x329c78a3 uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x3898490f uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x88b3f687 uwb_pca_base_priority_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd06997e1 uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe307e93f uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe6b83119 uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x38401eaf umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x66fa65d2 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8aece40b umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8bed3f95 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8eae755a __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x94d22ded umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe360ba96 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfcf298d1 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x05ea16d6 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1434d37f uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1463f89b uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x16a3831d uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1aacded7 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x20d42365 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x23b6b723 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x279b3a22 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x321ce85c uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3399a5cf uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3fcdd489 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x45e030c4 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4dc1d0ea uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5d454eb6 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5d8fbf60 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5dbf9d67 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e2d1193 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62bfff3c uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b8e5184 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6e338dd8 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x707315dc uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7900963e uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x797abe12 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c882093 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9f91129a uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa1358357 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa33207c8 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa9dea795 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb74e508c uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbe37817d uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd2439151 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd69062fa uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe22c7202 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe27a8a25 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe47d5dd0 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xecd3fc16 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfc7a9370 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xabe720a9 whci_wait_for +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0c9886a3 wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x16c08e16 wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1b01d21d wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1b9bbe21 wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x21560b09 wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x290cca9a wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3e3c5db7 wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x42d0b2ba wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x43669c34 wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4d7e4196 wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5f733e4a wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x67c42ea5 wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6c28a89b wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x75048e82 wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x777e7f74 wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x78edd1f4 wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7a1e5d57 wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8603a649 wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8af79359 wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8b5d6684 wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8eccf810 wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9a45767f wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa7f17af5 wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb0b8e245 wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb1e0992e wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc5f82c0e wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe360001f wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe44312dd wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe5b048e4 wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe748c363 wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf8d8436d wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xfc5d5b57 wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0xe5fdd51e fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x1dfe1a20 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x9f62be71 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x726c3f4f sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xaed76b51 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x765e23dd viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb3529fbb viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x37296314 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3bc1f3c9 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x72f6a6e3 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa451b731 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa4c09b39 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd3d4ff2d w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdb979876 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xfe3ae552 w1_reset_select_slave +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x54f0f846 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xbf28afde dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xf52f2322 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xa332c3f7 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xb8f03af2 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x0cfda4a6 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x1ac139a9 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x1c153ab0 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x3d7f9b90 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x42285d34 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x4f5fb7d9 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x62c678a6 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x65ca7b0e fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x715ce048 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x7896c460 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x7ec9016f fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x80bd7ccd __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0xb23aac8e fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xc13717ed fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xd067bb86 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xf547c44d fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xf7229b6a fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xf7638055 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x37d42f0f nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x5b545eda nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x82c251c7 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb7584f8e nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc07cc88d nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x81cfb6a5 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xa0e9f6bb nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x042900ae o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0fa412fa o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3a6c914d o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x433f60e3 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4ffcf3f3 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x69c73a7a o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xdcdee9a7 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x44bb16fd dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6975242e dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7b0bf629 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x938f3719 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa5d9be65 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xeeeb0cac dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7213c5b8 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xcff27785 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xf1321ef9 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL net/802/garp 0x2b9ab465 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x74aab04d garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xaf94a155 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xb5b17a3e garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xc4e886f4 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xede7ac12 garp_request_leave +EXPORT_SYMBOL_GPL net/802/stp 0x31c6e117 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0xbec7829a stp_proto_unregister +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xef7b5dd1 ax25_register_pid +EXPORT_SYMBOL_GPL net/dccp/dccp 0x06a40b5b dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x070ad6cf dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a6a9175 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1f20017a dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2644374c dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x26a061e3 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3226e951 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c46a569 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e8f9c43 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x412a8cd3 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x51eb77b4 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6bf415de dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7863e8a5 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x82026985 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86d23fbc dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9ce6e319 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9fd00f29 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3acb220 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xac21cfdf dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5320aa1 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5ed9348 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcc158cd8 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd7150090 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe72fabad inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe7cd3c8f dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9f499aa dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xece4cb69 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf16479ea dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf90ee513 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfa34eb30 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfd738bc8 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfdc54e58 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfe3668ff dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1a5ff7b5 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x533b93d9 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa18211db dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbe83f012 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd52958c3 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd8736149 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x58ea2cdb arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x93716238 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xddd4fd87 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x2cef2322 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x46c03919 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x47e3b788 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x505d0a86 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7a47a90f nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8aa1d815 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9101bb41 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf7a753e9 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xd7de2b46 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0f83feed l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x160d08d7 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x17569e7d l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x34bdee10 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3c9a1efc l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x45431ba9 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x70f5c760 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x724544e1 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x84173a12 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8845c714 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8ae4c5d9 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x969c9650 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9a0f5ddb l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa93b3b05 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcd8c96c2 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd0f12145 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xea8dd7c4 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6f3bfe84 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8eecad26 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa825f348 ieee80211_find_sta_by_hw +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00dfe2ea nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0107324b nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f586f00 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1293f388 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12e3e3d5 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1fc82325 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x236d97af __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26298478 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26b55eee nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27883fcb nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a155c5c nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30c32397 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ff0661a __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4447a43a nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49077b73 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c67fe5e nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4fed8de2 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x540397ad nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58ff20a7 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67221cee nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a56bd53 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74b0a68e nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7671c6b8 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ec3eb11 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f523662 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x82ed0589 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x83d37d38 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x84d41bee __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85217b8c nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8805d05a nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x885eea8c seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x891f4ed1 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89f29872 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e1c0d69 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92c74638 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x99933e5b nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e204d27 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa5dc2a26 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa68d648b nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab0ec73c print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xadf549c9 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2892670 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb292c53 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe5ad081 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc4f27dbd nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca878f7a nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcb9614f6 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd5292a29 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6d9038d nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdaacbedc nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb427cbc nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb7aedfe nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdd26b324 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde9fb957 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe92faba6 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea15d907 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeea4c5d3 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7b0b0bf __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa49b709 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbe6fa97 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfed870ae nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x05a790dc nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x65aeaf0b nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x291536f9 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x53e76642 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x555141c7 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x705be6db set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xaf532f28 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb0364fc4 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd0f6b2ee nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd2e5e515 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xecaa8685 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf87966bf nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x2953ba4b nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9897eb3d nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9ad47604 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xdc8cf398 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfb9ad3db nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x580e0589 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xaf7c5f1f nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0516fdec ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x14727d2e nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1d0202e6 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x21fe4f7e nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x51af41a1 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x77f6e7db ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x89b7fe0d nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xaffe8942 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb204d348 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xcd4ea362 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdfbc2803 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xeccd045c ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xefe0592c nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x63d01a3e nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x92aa6e8a nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xfb0a7ed8 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x577d7fd6 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8b54c33f nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa1c1d41b nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb8d6e3ef nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbbe96366 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbc64b661 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x4c952195 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0cb71a34 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0f794b4f xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1a3fd396 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b634f9e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x22f4be2b xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x53a35f02 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x610babab xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x73621086 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7f18b664 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x87fb0241 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x88c2d0da xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x90f4f033 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb03158bc xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe5e9a6da xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x1c6d83da xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf1db4ae3 xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x042427e9 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x08a667cf rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x0bda1132 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x12ef80ae rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x23c84cfd rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x294d1311 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x4a126eeb rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x4d9abf12 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x5f7c9a11 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x6455d122 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x809e891e rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x87a38ad3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xa1909fd6 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xa1a230ed rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xa9b0d029 rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xc5446440 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xd8c0bd74 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xe9853636 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xe9d56dd5 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xedb589ea rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xee782722 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xf41869a0 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xf5a16580 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xfba2ddf0 rds_conn_drop +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xbafb1613 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xe4a8dd21 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x15c86f9b gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x428b2797 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x61cb0d77 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x62441397 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7ce68f91 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb6a6afda svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbcdccfcf gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xdb976968 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xdf75fadc gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe6453a65 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xeca4fec5 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x059089bd rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x080d82f7 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08a5df38 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08ae508d xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x091eff71 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0af3ac41 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c119227 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c50a15f xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f03205c svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f10bff1 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x115f0e9c svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x154d559c rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1717eb45 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18576be0 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ae9e1b5 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c127b3b rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e521186 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f1ef46b svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2077ff97 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21babd6c xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24130bbe rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2494e3ee svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27f2b816 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28e610fa auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b86d192 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2bebe76a xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2caefb2c rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d8410b1 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e6803f5 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f721bad rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30895b6f svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30d6a7c7 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x318d8e82 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32f3d5f4 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35fbe52e xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36085ce9 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b6924fd svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3bdbd5ed xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c124c2b xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c7c6180 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d26338b rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d93989f rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e23eb87 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e5b0870 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ec9e434 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x415e74d6 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x439d480c rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x453ecd8b xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4677436c rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x487b0a66 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4aca34eb rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bf3c90b svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c7da523 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d29a551 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ee13c3e sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x515eefc5 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51f9829f xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52bcb491 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52c9d949 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58ca027a unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x595b7128 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c2bc64d rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cbd3f30 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5da77796 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ecb4caf put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x638ba2b2 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63deefe9 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67781809 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a528e76 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6af8646a xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d98e68b xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eaa44ab xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71ba7e4a auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72d64b0e rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7389ac64 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79139453 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a803a93 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7afa5a62 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fe18298 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80fe0113 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x825ceab2 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8294034f svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x839de60c read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83a94310 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8874275b svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88f03f6d rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x891ba19b xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b2a6546 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cd31ca4 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fb71775 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9074546e rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x917e876b __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94701bd3 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x984c5c8b rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x986813ab rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0ff2ab5 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa142e32b svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1b93065 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa28b452f rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa41bdce5 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa594c250 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5cf1a3e svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa70ca3b4 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa79fbbd0 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8c9722d svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa6d3b6a xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacf68a29 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadf06291 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae21e670 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae475b6c xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb218498f rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6f6c327 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8476542 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb4ae312 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc49af44 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcb9ecb6 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe49f9db svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc20a762f xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc315bcad xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc99cb9b6 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca570746 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcaa850be rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd70a14fa rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8a1b4c1 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb277e71 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe147ee69 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe381a138 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4625753 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4be52fa xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe504fa01 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe671b091 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee52a667 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeef3b74a cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2385a56 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2e6dcb7 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4161e33 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf58227f1 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6031b6d rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf61d5a90 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfafce81f sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb4db7c4 rpcauth_unregister +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1413fd8b wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x636d5dbb wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x761e6b72 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7e684c89 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x974d06eb wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x9b7799d9 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc14928e1 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc77dd2ad wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd0b41729 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf630e90b wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf9ed5c7a wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfe35d5d5 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xff6c0d6c wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x065fd9df cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x094ba592 cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x09800563 cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1925bfd2 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2edb8e14 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3bfd11b3 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x41571fa9 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x41a14158 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4285b0ac cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x44337b08 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x554f2caa cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x61eb5063 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x62ea3a94 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x63171f72 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x66977f84 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7094f539 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7268ba28 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7b50b91c cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9ccb58a9 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8ce0a87 cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb09430e5 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb2064f2e cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb3a7df6c cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbdbb6985 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc3156f5e cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc92a77e3 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcaba7fa3 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcaf8d8e6 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcca849f5 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcf9cbc47 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd6ec67d8 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdbc5daf9 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00a5655a ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1818011f ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x35709ecc ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9ce19edd ipcomp_input +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0d901879 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x49a13102 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x751d25bf snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x78728af6 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa8670db3 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbb4a8924 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x043b1652 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x061ac0a8 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bb35ca4 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ef6d39f snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1009768c snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x109d32f9 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x114fb5ac snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11f6d3b1 snd_hdmi_get_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15bae31b snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16456f8b snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16a241b0 snd_hda_eld_proc_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1813bc00 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x190b9985 snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1958d650 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c856d37 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d50f5d8 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24a2b544 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28947d68 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x298f38d5 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2bddcdd0 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d51076a snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30a2a432 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x367af940 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4491d402 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45cf6bad snd_hdmi_show_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47a3b386 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b8baf08 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ce29ad8 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x503f6add snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x515eb208 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x53081016 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x537e631e snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55ceebea snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a87cddd snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b8a6cf8 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d78f13d snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f4d8ea1 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x602ca20e snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62169de4 snd_hdmi_get_eld_size +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x625c4a3c snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62cffe2f snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x64bfcb23 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68048851 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e1a1b30 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ffd3e7b snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x742741c9 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74e4a4c0 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77c7f8ba snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x782bd9f2 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78389540 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x812e74a5 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81d00c49 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b070f42 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d591f43 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x947af986 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8077e85 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8cbab13 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaca33c9d snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xace8f412 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae62f89f snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf297f5d snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf4f2a09 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb331f948 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb65f3a3c snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba195b3e snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6c65a47 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcda65130 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1bf66ee snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd23c47fc snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd7fa2fd3 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9337176 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd99016c1 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9dc1d77 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdba9d80d snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc2cad1e snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc731e5a snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe138fba3 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe415353a snd_hda_eld_proc_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe45c2352 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe5edf910 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb15fa24 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed99c7fb snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef537a45 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1eb132a snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9af800a snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9b5ce01 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfcae36a3 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd57bf53 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x9af2c1b6 ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xf8883880 soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x7e2e5335 ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xb457aabe soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xce2bb58a ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xd561f1d1 soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xc507d389 ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xce3f8bd5 soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x932ada5c ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x9684a479 soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x2456b26f ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xbfef49e3 soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x075517ed cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xd65af1cc soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x57685a44 da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x9918e556 soc_codec_dev_da7210 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x2cbc7116 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x6169ac3b pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xae41f084 soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x7b07a992 dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xa5f4f54f soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xc88e84a2 ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x9c39803c soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xb9cb109f tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x07c2509d soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x2fd8705a aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x4c347b18 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xbfc08b45 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe15c1008 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe8fb64d5 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf062fbe9 aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xc80c681a dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xfd463079 soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x06ec48ce tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x0a797d47 soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x755172e0 twl4030_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x75f638a2 soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xc109a802 twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0xcbc11b42 soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xc7110737 uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xfa7b272b soc_codec_dev_uda1380 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x0a14251c wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5a1fde9c wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x70e15532 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x532f7f3d wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x202cd2f2 soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x452631d4 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x8c8a7593 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xed3c7090 wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xb5c1562e wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xbb3028a0 soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xa76b0c16 soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xaf3cdec8 wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x1840b6fb wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x8e00e18c soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x4b47355e wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xa8ba3799 soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x1479f5dc soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x26450a10 wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x4065ec03 soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xc1f4f390 wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x30a24145 wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xc7fdf0cc soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x17fd21b2 soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xb1da1b39 wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x0a6b6c41 soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x1956fda6 wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x21463f82 soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xb5b07fe6 wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x399a2f40 wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x5fb51fa9 soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x5ee4c033 wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xec7fd999 soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xc7528a5a soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xd870b29d wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xef1c2bd8 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x88131c9d soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xc5758225 wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xaaabe420 wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xeb767145 soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x5c117e27 wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x97c3ef37 soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x3d34f509 wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xe8f2a52b soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xf1e9946a soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xf66826ac wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x501f2d18 wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xf02bfe5d soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x00d2bcab wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x8d5c0a18 soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x21e94514 soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x77107cd0 wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x2ab50229 soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x81580c39 wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xcb7c85e0 wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xe3aee216 soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x4de8f74e wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xc883b1d5 soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x86280765 wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x87c22712 soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xf2a2b6b2 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xae635299 wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xbb1fdf5a soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0xa3c6842c soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0193435b snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x03c08c75 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06690431 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ccefc91 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14ec07d3 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c40b0a4 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1da22319 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x28f64b0c snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ad80cf0 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2c8cffa4 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ca8c400 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31be345f snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31da75b5 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x326785af snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x357c6418 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3888ef87 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38df3124 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39b80624 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x435df6a5 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43e27a1c snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c9962e0 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f6bbc0c snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x53df42e9 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x565159d3 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x56fa492a snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x586d1b6d snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6171ecee dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x643cab16 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x674bc062 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x698ef756 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6d38036e snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6d7b9f3d snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x701cf2c4 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x76e63890 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e255bc6 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80dcd7a2 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88523ce2 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9448e351 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96ec2aa5 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d27c15b snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d336c77 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa60f3e7e snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa9d1c37e snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa074ac5 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac39a373 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaca4c1b1 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7ffcf4d snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb87c4fdd snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb907f0fb snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb9769cf3 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc44d7c4 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbfd03858 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc430359a snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc6405706 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc7068409 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca002a98 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc3147f0 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd412d39 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0bad5f6 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0c811ab snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0e9db2b snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0f0db0b snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8a93566 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdad8376d snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc0f62bb snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde3a51c4 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde4f116d snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdf2af1f9 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe218fd07 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe65bc3ce snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7fe0331 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec8118eb snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0ad682e snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc975f88 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd5e748a snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfed23d88 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfeecabe1 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x2474e9d5 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x322a65d3 xv_malloc +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6931db78 xv_free +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x9092cdbb xv_create_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xf5cdafcf xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x00460395 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x0054730f ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0056b68d wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x00637ea9 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00c8497a sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x00c87463 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00e1ff8f inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x015118fc ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x0163d0b1 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01c1d3e4 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x02aa8df5 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x0322bef0 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03970d33 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0399c3a8 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x03a1fbe4 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x03a62d37 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x03b7c7fe ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x0436cf33 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x0440c642 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x047791aa generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x04949d14 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x04be3650 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x04d1e9d9 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x04d5bed0 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x04d76cdc sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0539d15a queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x0543c620 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055243c4 put_device +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x057e343f crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x0599eede blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x05a9b343 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x05c79820 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x05eb569f usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x05f45e97 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x061d1c15 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x06291c18 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x07221d72 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x07554273 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x07a68b49 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x08335f9f inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x087e7f65 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x087eba15 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x088b7e2b sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x088d39cc tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x08977711 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09f7365b kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x09fa3be1 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x0a05f274 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b23e350 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x0b37d676 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x0b4bfe9e show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x0b775b2f wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0b9dacf3 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x0bbdb1f9 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x0bdc8ec9 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x0be3b4a0 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c2d6363 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x0c4793b8 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x0c7cf86e crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0ce0cf25 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0d1795a1 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x0db841f2 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x0e754f44 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x0eacbafd inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x0eb57641 get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x0eb92e31 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f288279 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x0f3eceff pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x0f699cdb wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0f84dd95 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x0fd5af40 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x0fddecf7 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x0fe578f8 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1067335e crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x10e7613b lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x10f4e154 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init +EXPORT_SYMBOL_GPL vmlinux 0x11e60912 dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x1213ef87 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x1242b7ac crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x1249b9f7 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x1273d664 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x128cc070 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x12a30954 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x12b13baa inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x12bf38bc tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x12d0cab7 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x12fe9b49 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x130dfbb1 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x14017915 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14ad320b __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x14e8146c rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1518bf70 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x1545f4de register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x158c5672 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15fa19c0 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x164bb596 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x166518e5 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x167642cd ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x17142764 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x17293168 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x185a91bd sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x18b2746e scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1976c7b8 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x197777ea hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x197cc37b bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x1a1ff95e setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a83eb95 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x1a862974 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x1a9965aa ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1aa598ad relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x1ac20629 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1b6ff294 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1b704a9a xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x1b7914aa inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x1b90d251 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba7e580 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x1c27458c ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x1c729700 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x1c84dd0f dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cb1611a bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1d1f6719 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x1da4e2de rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x1dbc86ee console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e8704bf ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x1eab6998 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1f6fded2 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x1f7d93f4 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x1f937a19 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x1faf37fb dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fdc8a77 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x1fe9acec cfi_cmdset_0001 +EXPORT_SYMBOL_GPL vmlinux 0x20931c3b crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x20a20f39 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c4175d ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x20cb3689 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x212a281d sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2158efea dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x21a660aa dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x21deb2c9 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x22463756 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x22805e73 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22c07da4 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x22f51875 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x230c53bc vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x23518a67 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x2351e5ac fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2369be7e da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23a18e90 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x23b2b194 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x23b79b67 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x23c1bd61 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x2404be08 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x24e3abd9 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f88d00 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x25204c4d kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x25bcd7bf vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x25c5ed01 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x25d80e78 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x262ac0c6 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x2655bd4b __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x267dd3a5 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x268757fb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x26ba4cf6 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x2726901a __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x2784c197 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x27863665 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27bd7176 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x27ca7430 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x27e8c2ea ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x2865cb9e cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x28b2c980 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x28d0b963 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x28d21735 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28fc4dc2 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x293fa610 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x295265e2 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x29b192a3 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x29c53a80 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x2a0bea9b mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x2a17e13a fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x2a1c9c34 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x2a4d333f dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a76cf78 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2aba0390 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x2b12f370 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x2b278d84 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x2b76ee84 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2bcb6c66 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x2bdef446 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c8639be otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x2cb3baf1 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x2cccc1b9 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d1bac2f rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x2d221e49 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x2d4c8987 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2d824267 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2d972b6c crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2da1daf7 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x2dbb92db ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x2e13f0bd blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x2e3f3f1e usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e4f8117 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x2e8e573c ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x2e8f7d98 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x2e939676 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ea5fe95 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2f069737 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x2f0b2758 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x2f14b683 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2f4ba56e device_move +EXPORT_SYMBOL_GPL vmlinux 0x2f7dc992 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2f86e6ac scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x302a9887 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x30451938 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30c79204 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x30e1affe ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x3108524c inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x314e5f45 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x3170451b ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x31dd926e ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0x31de6218 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x3213ae50 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x32451f2e sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x327d10a8 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x327eaacd __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x32c2d1be scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32dbff68 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x32f0be40 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x330d8276 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3346bc1d sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x336e065e blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x3375d976 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x33c6a1ce ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x340a86e1 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x34107a47 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x34132523 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x342000a6 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34504abc dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x34643373 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x347611a9 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x34940361 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x34c62b79 cfi_qry_present +EXPORT_SYMBOL_GPL vmlinux 0x34c89234 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x34e4c01f ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x34e8ac41 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x35348d06 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x358bfd13 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x35a3cab9 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x35b5c521 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x35d68916 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35e5ac2b dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x3643faee debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x365ec1fc __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x367b7e04 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x36aa38f4 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x36d98807 parse_mtd_partitions +EXPORT_SYMBOL_GPL vmlinux 0x372a4b75 __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x37382c3a rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next +EXPORT_SYMBOL_GPL vmlinux 0x37c61aaa ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x383fb71a usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x384e917c wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x3860799b usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x3894a59b ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38df2a0e devres_add +EXPORT_SYMBOL_GPL vmlinux 0x391bf062 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x3969af2e regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x3995b689 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x399b358c bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39ec5813 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x3a01cf4b skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x3a03f05d shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x3a0af418 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3b42abf4 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3b6638ea usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c6d52d8 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d26fc27 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d44f531 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x3d83f494 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3d8da420 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x3da597ae crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3db91586 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x3dc00a80 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3df3961a class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3e11e245 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x3e178b54 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x3e2bc7b0 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x3e8c9dff vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x3ebba545 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x3ec12845 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x3ec74cd9 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3ecc0bc1 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x3efd977f fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x3f210e75 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f9edf34 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x405f485e sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40e902b8 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x40faa828 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x40fea4c6 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4116a049 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x41411bd7 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x41bbe834 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x41c8d5ef adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x41d5d88c wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x41fac261 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x425580c0 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x427de28d sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x428b1bf0 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x42c8508f usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x42f15ed5 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x430021ba wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x434ade41 get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0x439cff4b __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x43f1459e simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x44023638 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x44536215 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448c1ac2 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x44980407 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x44a826a5 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x44d42c54 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x451d1528 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x455e1616 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x4562e59c free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4579223e sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x4589e8e7 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45e37f68 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x461f56df ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x46211bf0 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x467210f8 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x4672ce18 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46e5b9b8 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x46e81fb0 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x46fce175 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472e09c8 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x473722ab put_pid +EXPORT_SYMBOL_GPL vmlinux 0x476adb4e sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x47cebc4a sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x47ed106e sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x47eea9f8 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x480f4044 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x4863ead3 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48bfbe1e sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x494ea1d0 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x49624193 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x496c5f3e unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x4989228e usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49d67118 __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x49e6fb30 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x4a376d21 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x4a6b8b1f eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x4a9db975 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x4ac22351 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x4b059382 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4b16e02a get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x4b9560b8 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x4be62033 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0x4c62fcea ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4cd205a4 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4cf59b0e sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x4d10e034 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d5c27fa device_register +EXPORT_SYMBOL_GPL vmlinux 0x4d7ed571 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x4d883b26 deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x4dac3e64 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x4e0df257 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x4e256936 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x4e92d4d7 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x4eb11e97 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f2e752f alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x4f7290f1 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x4f9af975 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x5075ec94 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x508f824c ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x50a2a9ab rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e58dd0 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5130f220 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x514a7e46 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x5185d7fd security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x51fa9bf8 cfi_qry_mode_off +EXPORT_SYMBOL_GPL vmlinux 0x5236cae2 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x5236f269 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x52c80ed2 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x52d0ab2d device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x534d76e1 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x5354d9aa proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x539d4fd2 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x53a5cd48 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x53b0a033 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x53d3ae54 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x53e9bd32 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x544053d7 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x545d1b96 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54991efe ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x553f6232 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x55cc3aa7 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x55d4ae62 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x55d6d5eb tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0x55f77fd3 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565a4fa0 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56627327 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x56728164 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x5680bd22 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x56ab0d4a ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x56e24af9 device_add +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5721042c blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x573d3d15 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x574a5694 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57deb979 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x58112195 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x581954ea ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x582241ba led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x585e3425 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x5894a2fe ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x589d6aee crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x58d355a7 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x58d4cb50 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x591b0150 put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x597b8bdc ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x599d0cb6 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x59b0469c usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x59c7e92f css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x59ca4a40 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x59cac2d8 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x59d541d0 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x59fef23f nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x5a1e7368 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a90582c __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x5a9ef00d ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5aa93d75 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x5ab530a2 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x5af6feb5 tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5b134eb0 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x5b4b2b01 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x5b62cf3a lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x5b7ae9af regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5bb96585 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x5bbfb078 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5bde6bc4 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x5beffddc debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c3ca181 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5cbf8ee9 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x5cc0e3b3 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x5cd173ae debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x5ce6a51d crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x5ce8208b __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x5d052acb ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d2bac07 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x5d2de8f2 cfi_qry_mode_on +EXPORT_SYMBOL_GPL vmlinux 0x5d3e332b register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x5d4a4572 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5da402f3 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e06f003 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x5e42ac8d usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x5e4a14f7 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x5e4a6d12 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x5e902aee kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x5f36b2e6 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x5f60e3e7 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5ff8db2c usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce8c35 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x611c605d unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x61d747d8 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x61f6a6c4 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x627ab1f0 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x627fb3a0 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x62899960 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62b24ed1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x62ce97fc pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0x62fb7573 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x63546aac ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x63596a0d crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x635beee4 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x6394fead dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x63a02140 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x63f1719c device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x6426fc8c pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x646c7262 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x6496718b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x649c0a79 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x64a0e7d0 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x64da27e3 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x652dceaa uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x65439d7a usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x65521a10 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x656eaee8 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x65758ef8 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x657cff97 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x65a767d5 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d1309e hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65f8b8a3 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x661abfe2 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x662f3d8f ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66892666 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67cc06b9 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x67e276b9 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x67e87379 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x6800a97e wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x6800cd25 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x683aec88 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6863986e fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x688b61c1 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68bc0aa6 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x69744f5e free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x69c13ebb rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x69d25a6e ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69feffda class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x6a1edaf4 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a900d79 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x6abf96dd dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x6ae74842 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x6b1611ae pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x6b1fb804 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b3e62b1 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x6b443cbb power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x6b5d47aa tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x6b730df5 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x6b7699b3 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6bbc49a6 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x6bcdb9d8 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x6be73dad devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x6be99dcf dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x6c11dd27 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x6c2d2f85 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x6c2d497c ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c6c3c58 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cdc45e5 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6d7ac4f6 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6d9134bf blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x6dd071c6 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x6deaf436 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x6e332ba8 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x6e39a97e ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e997442 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6ea38a8c usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x6ebe9543 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x6f03b448 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x6f0ebbde unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x6f185116 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f55927c usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x6fa16a90 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x6fc19918 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x6fe45878 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x6ff0e2ff unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70077535 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x703d0899 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x705ebb82 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x7097f6ff da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x70ab9208 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x7104ac54 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x71493e27 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x715c24d7 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71f29592 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x7213bd71 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x72374aef fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x729e17e4 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x730d3b2f sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x733aceb8 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x736b212f sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x737e6466 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73b9a237 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x73e585e3 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x747d202e __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x7483ecd9 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74dca3ec usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x751a367d usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x75419820 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75eeba6c pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7671224b eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x76b6d20a debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x76d80ab0 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x76e13006 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x76eb487a ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x770fa915 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77e2a223 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x7875acae fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7884b401 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x788bbf12 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x78abaa24 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x78c5a0f7 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x78d30fff ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x7908ace1 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x79408322 dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7948c57a rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x79705130 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x79a30ff4 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x79a41cc5 armpmu_get_pmu_id +EXPORT_SYMBOL_GPL vmlinux 0x79f358c9 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x7a19922b mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x7a27dc63 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x7a5913c5 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x7a65a956 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7a6c79a8 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7b5f1f04 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x7b7b982f ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x7baba7d3 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7bc9ff2c scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x7c265597 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x7c6784ef ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x7c681bec mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x7cacca4d __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x7cf4cd43 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x7d08a3b3 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x7d11febb usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7d2f3df1 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x7d45705c sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x7d4edde1 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x7d577f8f regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ddc68cf dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0x7df2188b regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e29f847 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e7d437d dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x7e855846 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7f0c9983 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x7f1f9dcc ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7f2f0789 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x7f4bbab0 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f503b2b usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x7f673c94 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x7fd38778 armpmu_get_max_events +EXPORT_SYMBOL_GPL vmlinux 0x7fd51225 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7fef5f93 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x8053d739 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x808fabed __module_address +EXPORT_SYMBOL_GPL vmlinux 0x80ce39b4 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8200f638 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x828795d2 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82a6c005 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x82bc2429 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x832bb985 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x83d27c3c inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x83f540d8 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x841ad346 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x84309cd3 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x848c232a sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x84982718 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x84c4b409 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x84e6ddf7 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x84ee5aa3 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x85376925 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x853acdff udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x856920bc dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x85871a55 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d2d950 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x85e82dc4 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x867856e8 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x868081f5 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x869fe102 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x86e53fd5 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x87119ecc scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x873335ae init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x87656e8f del_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x879f4867 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x87a56677 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x884b9ffe pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x8884e4f2 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8944c6ec scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x8974ce2b __class_create +EXPORT_SYMBOL_GPL vmlinux 0x89a8fdc6 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x8a2dd1d3 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x8a45635b ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x8a4b0688 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x8afed182 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x8b1ddd35 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x8b2cb80b usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x8b4240d1 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x8b4ec703 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b99fb9b usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x8c0d9bcf usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x8c25389c fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x8c369540 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x8c3cc320 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8c44c229 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x8c6ca1c8 register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x8c800d40 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x8c9ea6c7 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x8c9eadb7 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x8cb8a32d sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x8d0eeaab dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x8d340d06 user_match +EXPORT_SYMBOL_GPL vmlinux 0x8d408349 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x8d7156ca ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x8db799f4 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x8de1ffb8 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x8e2e878c bus_register +EXPORT_SYMBOL_GPL vmlinux 0x8e7626ee tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x8f154946 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x8f357c6a usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x8f54cd07 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x8f69a242 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f813a15 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fad5525 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9017b897 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x9021f5f3 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x90225440 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x907a3d3d dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90e5f630 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x90eaf626 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x90f2bb1b __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x9121aebc ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x91598fb4 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9173c454 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x91ab56d7 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x91be41cb dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x91c5cca1 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x91c9fa42 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x91cd463f ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x91d0ece1 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x91dda801 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x91ef5b8d find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x920eda42 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x920f835a platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x929877cd init_pmu +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92e33d51 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x930a0355 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x9369d394 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x9427e742 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x942d9486 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x942f5c4b ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x944849be regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x945ba83d device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x94625a9e tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x946cb101 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x947b849d ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x9488fe54 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x94a0ef7f relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94c7a67e ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x954c2c21 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x956f21ea register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x95ceab14 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x9601f87e rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x960a8a18 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x961187d6 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96361199 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x9637626a pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x979652e5 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x97bb7be5 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x97da1dc5 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x98179740 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x982129c1 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x988766a1 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x98946e22 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x98cad668 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x992a4069 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x995b38b2 mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x998b5dec class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x999303e6 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x99cbeb2b sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x99d958ec usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a445940 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x9a49e8dc inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0x9a4dd1da anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x9a74acde driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x9a87cb7f crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x9adc7735 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9b133e15 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x9b76306d unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bd98b18 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x9be3d77a transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x9c3d5ab1 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x9c5bdf28 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x9c7ea071 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x9c9761c6 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9ccad2dd wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x9cee29d7 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x9d05e38d blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x9d0b821e crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x9d1d5269 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x9d672603 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x9ddd5c16 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9dfed87c dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x9e1f62cc generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x9e1f8be4 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x9e37d292 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x9e4eeb06 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x9e5401c2 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x9e5e260a usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x9e92e753 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x9ea5db98 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x9eb76035 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x9ec0f30f sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x9efed02c ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x9f2458c8 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f9c1a65 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd18396 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x9fd7ddc1 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x9fdf68b0 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa02921a1 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xa058621c pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xa0774e3e led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xa0898dfc crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa0aa3781 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa12a96aa pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xa182f0bd sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xa19b3116 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa1a5e185 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0xa1cc7781 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xa1fe2d11 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xa2d3b95e crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xa2e18bdc register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xa2e4aa85 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa2f88e96 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xa3152920 __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xa3873cc9 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa411e993 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xa42224cd __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4ce5c5a fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0xa50d58d1 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xa55f8cda platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xa57afc74 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa5c33025 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5d405fe scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xa5dd6fae arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa629f057 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xa644be75 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xa700a4c2 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xa709ed35 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xa73a085f __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xa73b60ca crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xa753abce default_mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0xa7894cde tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xa7a39a48 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xa7b0c26d dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0xa7b3767a css_depth +EXPORT_SYMBOL_GPL vmlinux 0xa7cf3723 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xa7ddb506 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa8442eea wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xa84504ba crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa866ebbb pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xa870c38a crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xa8817687 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xa8901371 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa925a142 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xa954ffd6 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xa98bbc58 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaa98af9d pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xaa9f7d7a user_update +EXPORT_SYMBOL_GPL vmlinux 0xaaaa3702 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xaac4a17e crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xaade92ad ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xab11a043 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab7fb178 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xab909920 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xabc8fc53 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xac04f8da ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xac316798 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xac53e50f queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xac7be6d3 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xacaee6c1 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0xacaf2803 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xacc2e179 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xace1d8bb device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xad25b0d4 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xada49db8 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xada5b583 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xadc020c7 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadd0b515 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xadf622a9 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaeb27181 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xafeddfd5 input_class +EXPORT_SYMBOL_GPL vmlinux 0xb02b0ab0 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xb08bfd81 platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb0bfe860 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xb0c56b67 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xb0d69dfc inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xb0d6ed4c devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb0fdbf14 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb119e5f0 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1947824 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1f7c086 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xb2176053 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb23428cb vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xb254ca2d ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xb28f6107 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xb2bd707b fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb2e2e5b5 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xb2efbb07 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xb2f5516f __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xb31b4b4e rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xb328d693 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xb3c47f65 css_id +EXPORT_SYMBOL_GPL vmlinux 0xb40b36b1 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xb4591603 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb492d363 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xb49ff6fb inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xb4d47ea0 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb5369197 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xb56d9c15 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xb583d591 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xb58daab6 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6502063 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb65e6b3e ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb68e8822 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c9afe9 tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb6cd844b usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb74ec0fe ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xb78af394 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb80c9bc8 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xb81000dc regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xb83e7816 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb88fbe3a usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xb8e2c235 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xb917b6d7 return_address +EXPORT_SYMBOL_GPL vmlinux 0xb95b78c7 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xb96180c8 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xb994a00c crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xb9a8ea76 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xb9b0506d usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xb9c2e3b0 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xb9c2fe2c inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xb9c43eca ref_module +EXPORT_SYMBOL_GPL vmlinux 0xb9e2aa09 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba431252 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xbaab1a3d xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xbaadfb3e regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbaeff059 pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb21aba6 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xbb2c4516 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xbb8df1b9 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xbb9a2c75 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xbbbcaf1b remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xbbfcbcc9 reserve_pmu +EXPORT_SYMBOL_GPL vmlinux 0xbbffd90c rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xbc5380be user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xbd25d185 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbd9bd8e9 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xbdb5e191 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xbdc59963 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xbdc8db9a securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xbdcfaea1 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbde57017 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbdfdd7bf __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe19f04a i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xbe3734b5 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xbe5f3409 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xbe67a172 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xbecabda6 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xbedc62da schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0xbf1c4ac8 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xbf2696ec usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xbf27cce3 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xbf31bf88 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xbf6a9651 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xbfce5225 get_device +EXPORT_SYMBOL_GPL vmlinux 0xbfdeb029 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc01f602a tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc04e5160 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xc0695e60 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c4a2d2 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xc0d0d729 device_create +EXPORT_SYMBOL_GPL vmlinux 0xc0e3313b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0xc0ee3157 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc141777f ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xc15412a5 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc18195a9 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0xc1e0418d sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xc20b1e8e debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc29b8555 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xc2c25407 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xc2f5ae29 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xc301b0f5 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xc318f73c seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xc31aacc8 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xc3453b25 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc34da84d class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3527505 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc379796a tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0xc38fc281 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3cea2b1 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc44f1abb devres_get +EXPORT_SYMBOL_GPL vmlinux 0xc450f674 pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0xc456bbd3 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xc46eb5e6 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xc472c063 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xc4864ade fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4a3b33d usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xc4b69503 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xc4f3d070 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xc4f8dbac tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xc50d70a6 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0xc514e0dc register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xc51bca00 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xc53f0acb usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xc55c522c sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc56c5b76 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xc578ac00 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xc57986cf mmput +EXPORT_SYMBOL_GPL vmlinux 0xc58cf7af ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xc5b1d204 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc685eb03 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0xc6e0402b __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xc6f5c5a4 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xc72eb18b wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xc732e0b7 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xc73aec5c crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xc75b04c5 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc7645143 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xc76d05f7 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xc7779589 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xc7e1565e usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xc7f3faea ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xc802f881 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xc806404a kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xc844cc59 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xc853b147 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc88dccd2 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xc8b32b8c __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0xc8bc19d2 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc8f25de6 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc93ae385 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc96520ec shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xc9b2beb5 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca3f9bed driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xca41d0cb sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0xca464b21 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xca57d0d1 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca9aea72 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xca9f40ee each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcae0241c dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xcb04a770 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xcb0e4f24 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xcbbda3c1 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xcbf0dad6 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xcc060dd7 timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc4b83cb usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xcc5ab895 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xcccad300 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xcccc064b md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccf564c8 inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xccf96454 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xcd9bbd74 add_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xcda363b7 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xcdab0d67 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce03dc0d tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xce03f232 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xce51f305 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xce65c104 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce77d702 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xce8a345e aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xce8ba5ac adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xcea44b96 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xcf127439 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xcf21c407 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xcf4a5e18 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcf92d864 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xcfb46d8d regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd00206e6 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd046bfa3 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xd0536738 get_sb_mtd +EXPORT_SYMBOL_GPL vmlinux 0xd0626f43 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd084e412 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd11be0a7 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd18d2df8 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xd1971f35 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1ed0646 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xd1f4390f bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd21a0690 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd2361cb5 unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2d44da5 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xd2f0295a power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xd37c3f7f kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xd3d3babd rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd3ed44fb release_pmu +EXPORT_SYMBOL_GPL vmlinux 0xd40098eb cfi_cmdset_0003 +EXPORT_SYMBOL_GPL vmlinux 0xd406500a ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd409435e gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xd416acd1 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd49a06ac ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xd49c0bc6 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xd4ee16c5 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd50c3317 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xd53445f9 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xd562d0dd ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5eac77c find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xd633207c dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xd6359c9e blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xd65c4b2b dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xd66397f0 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xd67ae8a4 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xd68e0474 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xd6dcb698 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd74efe3f pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd76113b7 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd788742d perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd807c7c0 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xd819dd86 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xd887599c ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xd8b74e6e ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd8f9af3b skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xd908988a ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xd9154d60 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xd9157f6d sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xd931754e bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd999fc26 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xd9bf66a7 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd9e29f4d gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xd9eef782 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xda06a151 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda6b8939 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xda774beb usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xda785a23 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdaa1dd75 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdad3f4c5 dm_put +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb00b3b3 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb70e061 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xdba1f43d enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdbbd1870 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xdbfbb5b6 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc4fe660 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xdc863fef debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xdcc864b6 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xdccf8648 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xdce2f39a dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xdd556525 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xde21a133 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xdf0bcb08 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xdf3b5ccf destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xdf3f0aaa blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xdf7e1f13 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xdf7f156f blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xdf99c7ca relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xdfd24fda init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xdffdd88b device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01e3cd1 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xe02523da tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xe06eb2ba class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe0807855 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe08b4bfb handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xe08bcbe2 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xe09301a8 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xe0adc5ca get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0d9a2b6 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xe1169de9 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xe1370eb7 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xe15ac98a tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xe18c81fa __class_register +EXPORT_SYMBOL_GPL vmlinux 0xe19d3b12 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xe1bf4e87 kmem_cache_name +EXPORT_SYMBOL_GPL vmlinux 0xe1e914d3 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe222bd7c shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xe23c1072 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xe275dc90 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xe2a12dee usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xe2cd2723 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe2f8762f noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xe357a3d9 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xe37774a7 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xe37f9db0 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xe3e0384d ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xe3f5e5b7 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xe3f7e6f8 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xe43db84d crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xe45156e1 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xe451d688 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xe48cdf10 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe527ceca kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xe57072f8 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xe59ebd2c regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe5c6d6b6 get_driver +EXPORT_SYMBOL_GPL vmlinux 0xe5fea257 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe60b435b sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xe60c447e ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe694dd7e get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xe6a68179 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xe6d4b5ab __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xe6d6d542 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6f7b8eb rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xe6fde064 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xe72baece raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7390d19 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xe73e6bec input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xe751157b ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe7ab30c0 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xe7ad4404 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xe7aebda7 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xe7bb7184 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xe7ca2f1d d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xe7d8239b proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xe8561f42 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe917e733 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9c3b96c dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea158554 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0xea20fa81 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xea38ae5f fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xeaa27470 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xeaa45b5f wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xeaa972d8 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb22351b debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xeb343d73 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xeb3c84d3 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xeb760ec2 user_read +EXPORT_SYMBOL_GPL vmlinux 0xeb770d4d ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xeb870f9f regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xebb3c529 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec2e485f ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xec3f8ca1 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xec4e4d4e queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0xecc8272b blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xeccb1d24 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xed0a84c5 register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0xed2b7b8c __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xed64ae63 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xed9e2d7b inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xeda3319f pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xeda63db3 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xedb715c4 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xedd1b3fa ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xedf521e0 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xee7c147a ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xeedaccd1 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xef0ec4a7 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0xef677abe cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xef687a68 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef8629df pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xefaa3c63 find_module +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xf04d84e4 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf050f9fc usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xf07ece1a ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xf0835536 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xf15931ee sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1cd28ea __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xf1f5dfdf ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xf1f71b9b crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xf20f3a2c dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xf244edcf sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xf271cb78 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xf2e9dfb6 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf3086edb sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf37984bd unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf3ac1a7f dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xf3b2fba0 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf42c99ed transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf4455345 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xf44e2adb ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf49a37bb tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xf4e4e2e3 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xf5203377 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5597c7e hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xf55c1604 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5abcb79 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0xf5eb4651 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6eaad54 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xf70f66c3 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf71d2337 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xf7305172 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xf73779b1 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xf75269c2 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xf75732b6 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xf75e8ffb regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xf76866a6 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf77a2281 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xf77aaa11 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0xf79883e4 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xf7d84afc i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf88debe2 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xf8a37c89 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf925f172 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf9501c54 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL vmlinux 0xf998bbd6 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a1ef2e led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xf9d85419 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa432404 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xfa83bc52 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfaab7339 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xfab3ff52 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xfabc105f sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xfadbe54a class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xfaf4f027 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb5b062f crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xfb901b9f shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xfbafe7a8 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xfbb472d1 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xfbb652d6 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xfbbb87d6 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xfbbdb6f9 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc174d3e bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xfc2ba8f5 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xfc3d1865 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xfc48f942 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xfc4f9d2f sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xfc6c7dd9 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xfc8a28e8 dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0xfcb9387c kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xfcb9892b dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xfce00ace crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xfcefcefa ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xfcfbffc6 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xfd238fc4 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xfd628b38 device_del +EXPORT_SYMBOL_GPL vmlinux 0xfd876896 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfdbdae36 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xfdd1bef8 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfde9cd1a regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xfdf301e9 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xfe459e00 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfe82a2e9 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfec393c5 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff0d2103 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0xff2371fc gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xff29a57b dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff691373 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xff92acef ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xffa10a91 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffd231f8 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xffe895ec rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xfffef25e fuse_request_send_background --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/amd64/server +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/amd64/server @@ -0,0 +1,11157 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x5d04d00b kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xbdcd0a18 kvm_cpu_has_pending_timer +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/acpi/video 0xdc7ed085 acpi_video_get_edid +EXPORT_SYMBOL drivers/atm/suni 0x818d7eb2 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xe12b440a uPD98402_init +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x8fd38ed6 drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xd3526f9b drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/paride/paride 0x029d5146 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x46b213c1 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x5b6f03fa pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x808324d4 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x836bbb9d pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x877a20f6 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xaff988db pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xb475f496 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xb879f625 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xc8d5c469 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xd359327c pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xf73812f0 pi_release +EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL drivers/char/agp/intel-agp 0xfcc4aec2 intel_max_stolen +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x098a3b61 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1c33f644 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1c9bbc51 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1f7800d3 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x301a1c0f ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x320bd29f ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x37c16904 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x38d1b12c ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4ff9829e ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6538376c ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x68497f43 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x70def5bd ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x729e473b ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x735ef48a ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7ce20988 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7e120cec ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x945b9079 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x999dc22e ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb986edc4 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbf5db4ce ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc505f3f9 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcb8880e5 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcaece0f ipmi_set_my_address +EXPORT_SYMBOL drivers/char/nsc_gpio 0x28fce86f nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0x2aeebbe9 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0xcd57cf8c nsc_gpio_read +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/edac/edac_core 0x22f79e78 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0x5cd27e73 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xd97bb923 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/firewire/firewire-core 0x01b48a9b fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x07cbf961 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0d419bfb fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16b77cac fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1f9f443f fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x22d79a4a fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x234c1cf0 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x239c100a fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x24457c13 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x26c20be1 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x272b2603 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x49a29946 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e86dd83 fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4f0c4262 fw_core_initiate_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5c767dc2 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6fb6815f fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x73a2a27b fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x73afa388 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9dbd341e fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa58bc2fc fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb4cc896d fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbe9f34f6 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd486e00b fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd78bd6a3 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf387b954 fw_send_response +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x014e10aa drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x015fe1f5 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0438b38a drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x047bca76 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06c64882 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a2b5da7 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0db37f99 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e6be1d4 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x127e9a1a drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a945f8 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14f5f1b9 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1856b6f9 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a217a31 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1abf31fe drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20fd36be drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23bc4e1f drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25ebd767 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x269cc479 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28de4b07 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2951d407 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ceda3ee drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ef54271 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f5fd26f drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f69f0e9 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x357fd9f7 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3751c8fd drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3972cb84 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ad7da56 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ada24d5 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e9c1c6b drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x404adc30 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x456d3ea7 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45bf9289 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46d02dfe drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x481fc0bc drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x482d58b6 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a009446 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a344a38 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f84bb39 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x518e5282 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51d48ee1 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5440b099 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54bbf231 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54fbc155 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56187ddd drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x563b6a8a drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5741a431 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57645c85 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5811978f drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59eeda47 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e6f33a8 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x611df268 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62d90d1e drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x643fbb98 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x649f32cb drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6512a827 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67f2ef12 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a6d19e4 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6aa1eb64 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x751dafd9 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75d8bdaa drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76382c5a drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a60c058 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bb0600d drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c8fb3ad drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e871097 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f28c6a1 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85b87c7d drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x885fd0ab drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e38c53d drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e5321e0 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95b25f0b drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95b92a94 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9cd3db6e drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3d726de drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa49bdfcd drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa51602b2 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa51ac57c drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5a626be drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa63297ac drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7b44aa0 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8b8773c drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacb807e5 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad904fd1 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadb19ddf drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadd5f6c5 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb05b683a drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb514f558 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95157c0 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb77d74f drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfe77b1d drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc049b0aa drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc38c80d7 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc483464e drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc623f15f drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca88c92c drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbb49c7b drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd77d985 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0279c91 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd16383a8 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd48b2bc8 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdaa05f51 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd3ec2ac drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe068882a drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2578f1b drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe46ea53d drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8326622 drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9281b94 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9804089 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecdc4917 drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0dcc980 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1897e93 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1dccabe drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3da2e8b drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf99dd9b0 drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa5b319f drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa5d0e50 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaf6094e drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb23a48f drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc575d92 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc886016 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe6e6038 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeae0530 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12abe029 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x37922858 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x55265652 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56134f57 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x564818cb drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56b22130 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6bd725f8 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6d87a7c4 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7cc36651 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8bd712da drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ed5e60a drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9709de8e drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99abc5f5 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa129de51 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa3e42e73 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa5721a5d drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaf07cbc0 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb093c5f4 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5132d36 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbf0f933d drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc480ae98 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc5417a87 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc57eb910 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcc9a93f8 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd2ac17c8 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4a4545c drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe96701d9 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9106509 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x04cad234 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07db5e8b ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19db9d0f ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c8bc052 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ec98563 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x20310cf9 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x210340d5 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b191a62 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f026af0 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36e1d161 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a7dcba8 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45d9bec2 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x48359de6 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x48863d30 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x59224adb ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ab24179 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5bf59093 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6069d536 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62dfcef9 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62ef7137 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x69913ec9 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x69ed48a9 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7141dccc ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x74df407f ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78923b7a ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85ee09fd ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88e4ab0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x90e8f620 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab0fda6c ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb71fd1d0 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64022a6 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc823d627 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc8a036e4 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc9d3b473 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca3c55d1 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd1d1641d ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd778e032 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd2233ed ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd7920f6 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdeced4d4 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdf2ffea1 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6652d73 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xedd02bc8 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xee6c638d ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa696d55 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc96fa68 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x43e0adb2 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xf0c11789 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x47eac6a4 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x9d7b8dc7 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x6433f7c2 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xf4c09341 amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x043f8322 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x063d8a80 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x098051f3 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x099ac1e9 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x16cf3f6e hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193d4b3e csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1b4236b2 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x225443e9 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x23662804 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2c5fa02f hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x31c4f61d hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x325509a0 hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x33d48513 hpsb_lock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37cd2e24 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x464e9db4 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4835c9dd hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4d9b40d9 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x554b947a hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5b7ed3e0 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x606cf241 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x611b107c hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x646a5aa3 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6476693b hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6864ad06 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x699abfc5 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6cde719e hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x70ec1bb9 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x71dd0910 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7d1a650a hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8232068a hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x87027e9b hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8779a48a hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x887c199d hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8fc8af2c hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x91521bca hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x916726be dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x922be22a hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x927ffcdd hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9585babd hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa7fbb7f4 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa86cc567 hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8898205 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaa4fb318 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xacbac6ef hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xad8432c7 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb44d65b3 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb9a3eb8f hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xba9e3ca9 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc16ef5de hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc195fda1 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc399c480 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc75c7089 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd1304ecf hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd5a1f0a4 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd5a5c07a hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe63be6ba hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf212d087 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3c12dd8 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf4224597 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf4da8e24 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf7afcd34 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf9f2b582 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba3dadc hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xff77dccb hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x73c3cb80 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x92313f68 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xdbef6f03 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd920f95b rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x03665c60 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x05795d01 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0fdde913 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1956e263 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x47a0d77d ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x53f25b7e ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6463f174 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7392fb4e ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x87112eb0 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9b95fe1c ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9e405708 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9f12e82f ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb0349c66 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb7d52726 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb91f7480 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbfa528e8 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfbaefd04 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a9ebbb0 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16782638 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a6a6a0f ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23d7e5b2 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x254533ae ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28312782 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a096118 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2bc868db ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33d16620 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3429bc4c ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x35ff9063 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39577778 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45ba06d0 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47963f91 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x499d628c ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d29f95f ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x599f54ad ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a5ae5e4 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a980430 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ab6d937 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6899b6a0 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x696673b5 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ebdee94 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ee663d9 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76c77d16 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77b2fa6f ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b614ff5 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b742609 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7cdafa47 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e7815bd ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81274c42 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8863becf ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a5abd8f ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ced4f8f ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90016b1e ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x946d2382 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x95ead1ee ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9636a99b ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x988e1483 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d34b259 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9f1f00f1 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa0527e1b ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa087dbc5 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac382aea ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf75a217 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb89e607e ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb3c63ff ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbcb2e1fc ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc219023e ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc3fa75e2 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4eca125 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcaf9bd6b ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcbffea33 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd167f2d0 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4b9300f ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdcae88b2 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd3fa3d7 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd60b016 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe04ae222 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe11772f0 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2835803 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8b845a1 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8bffcda ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe92aef55 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf256345a ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf71eb617 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1feb4fe3 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x35bd0dda ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x37836fc5 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3b094366 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x41e18793 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x631ec60a ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x65ab18a3 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6fe26beb ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x74c11f49 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8de1a7ac ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcdfe4d68 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcf97273b ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x09a31213 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x33349926 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x381f4e8b ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x53a436d7 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb4a7fb32 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc2dd861e ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfb78235f ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x510a1bb9 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x63de0762 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x92eb7fb5 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbdd4d7db iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc0ed998e iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc1dc1fc7 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xce016d04 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe0cf8390 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x06182ab0 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0926761f rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x14e06817 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1fa7dee3 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2add3f64 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x39c6f4e8 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x44325ba2 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x66b348f9 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67c5c999 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x69cf4652 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6b9ffe3e rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8fa4428f rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa303e00e rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa30cfaa7 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa8b113d1 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc071511b rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2d929b6 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf7191df9 rdma_bind_addr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1f92dd9d gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8043f907 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xac0772e8 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb8c38563 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbc6bf2db __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbf92d4c1 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd5893066 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xda279d62 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xeb5a4444 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/input-polldev 0xa7aea5f0 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xaa5af9b1 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xda7789f3 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf646c416 input_free_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb0ea0fb6 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd9682dab ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xeb8c452b ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf6ad0c10 ad714x_enable +EXPORT_SYMBOL drivers/input/sparse-keymap 0x33657b3d sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3528787c sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4df0d563 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7b07f0c2 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa5c82d10 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe9fa9363 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x06dbad7c capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x70c40475 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x15957f95 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1a0b5084 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x68410fb4 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x72853cc6 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8753888a detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa691fb15 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa9ff66ff attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb1d4093c capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc2025561 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc29aa9e3 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x00b6ca67 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0506573f b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1c699c65 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2842e72f b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x83062a83 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcb8210c5 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd02abaea b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd9ba7134 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdb8d3817 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdc40ec1c b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdf189250 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe4eb0aff b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe97faac0 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xeed26e98 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf92461f4 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1417ae1a t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x271445dc b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3b62d9c3 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6e7f0862 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x772f8d0d b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8f6ad9e3 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc50f9f63 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdcfecada b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf484df15 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x6c89d272 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x4472bb4b mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x4f103518 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x8c44f0a2 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xcd60dbb3 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x6a68c018 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xba04f0de mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x967acc01 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x2b679c02 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x67eddee0 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x74020eae isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x8098f3f6 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x9affc1ee isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x99cc5fff isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa752b60b register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xdf12d48f isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0d339c19 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x24b4c2e2 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x300c0a79 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4d6da8d0 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x505f9a92 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7c8db62b get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x810d4b9a recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x84794577 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8b3af205 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9c17e671 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9ff82a28 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa0506bb7 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xaf7396f6 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb6ffe502 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb98086de recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc36c77e8 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc613a5d1 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcc83a48a mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd00b49a3 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdc44f40c mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe3548a59 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xed173169 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 0x61b27eae ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/ir-core 0x66e4b64d ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x2fa1ab72 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x51849481 lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x8ad60ec7 lirc_get_pdata +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x92a9f9be lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xcc2a4009 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xd0c2c537 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xd89e7591 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xe4f8e0be lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x2685ed60 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xb0cef51a mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xedf8b9e5 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x5d40737c mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x6b65fc91 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x06484e41 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xc9d2dd36 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x08fd5720 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x10a2fe8b xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x16f6719c flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x294adb2e flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2cf7c779 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2fde3a83 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4834df4a flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4f49cf65 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x569f84d1 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b2e3096 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b6a05e2 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6847c8f1 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6e64fd60 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x75b979ba flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x79358b36 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb6d03ab6 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc44caa62 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd0e2f18c flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd15a5bae flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe509f9a6 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf3a6ee5f flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf730acc6 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x4583bbed bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x48614066 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x66572622 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xbc1032c5 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0ca32260 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0e88506e dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x47940889 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4eb61230 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x59b0d9b5 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x766634b5 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf27f42de dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf63f5e39 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xfdd7719e dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xfc45b2a4 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x01ada5ef dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x280842a4 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f7bdd06 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x373b1b77 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a2b3c0b dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a3aab99 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4dc0b8a6 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5550c372 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x62740499 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x66960b21 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6d964eb1 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x75dc0370 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76627e35 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x77aacbc6 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7d8904b9 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x82b5658d dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8e33ccd2 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9b221fc9 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa1125438 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac466ae7 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xaebab6ff dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc147d2cd dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca4feed5 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcb4eae10 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2fd6512 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd32e6483 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd8fc8ee7 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe161f960 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe1d7ba13 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe4906a74 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5abcbae dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe66489a0 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xefe94e7c dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf5ee0fd0 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x134fc00c dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x369be42f dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xbce86fcb dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd1f014f2 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd3b80a89 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe460d7cc dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xeb43d0b2 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd0d2e79d af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x38237b35 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x54e4bfe7 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x563439ae dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x614138b4 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6f334a02 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x75b10d10 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7c335483 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x838ea94e dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x925b8bc7 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa39c3442 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd077241b dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xc8c0feaf af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x59b329d3 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x92e71194 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xddf59c49 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x72a16399 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x51016fa9 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x99cbc3ca cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x32813652 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x33d11af1 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x584fcb9a cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x0237820a cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x820126fa cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x2e5535c4 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x5f266b61 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x61d2d1d8 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xbc455d45 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xfede6b18 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x35ea6f70 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7d8a8e78 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7edcf017 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9a46682d dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb3e69bc1 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xce9595bd dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xef56a67a dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xfff16d6b dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x8492b26e dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x0dde5e38 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x263644b6 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x720a173a dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x77da932d dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8800264e dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd142fd80 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x77684d06 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xcd96d1e9 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x12a76c25 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x30c5a040 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3d2628b2 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8eeec970 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9b66a147 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcaec2a85 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd524469e dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xfb0e7639 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0f084f2f dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1404178c dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x402f5b61 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4138d31a dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb56ae5c5 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc82da323 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd020526c dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdf798876 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf6d6ef09 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xfe4071d8 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xff36041e dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3ad17398 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x66231f8d dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xae1123e0 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xb5b19fd6 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x98fb6314 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xff715878 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xd771a379 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xf54be2e6 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xe2c6b99b isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xa0360c10 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x62e97cb3 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x06ed7e4e lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x954e1bdb lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x8179d696 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x158d1f6e lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xe0be60a4 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x52ab25a4 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x31b85041 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x15839c83 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x9c5b0773 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xa5773dcd nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xfc2d7e91 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xa6fcac2d or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x950450da s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x85feb607 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x234c106e s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x99e7ab6c s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x9d2f4160 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xac1cec02 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x9e948068 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xd4d7c69b stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x6de4acf8 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xc2f7444b stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x9e6db54c stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x6e3bcde3 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xc3905e31 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x6607c42b stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xbd253886 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x6833a4d3 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x005e9d05 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x42bffb98 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x21bb46ce tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x70f758e2 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x30c84023 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x59d9619f tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x23698056 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x65cbe35c tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x5bf56ce5 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x620b94f4 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xfd003756 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xc1a7a6ee tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x6b105f0b ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x06def019 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x6884b9c7 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x2a4f6f1c zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xc68cac7e zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xbc070026 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x436ed1c8 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x68a9d002 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x35af958e bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbf1ac9e6 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xdc0e5ddd bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x3e509d1e btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xf4dc5f1e btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cpia 0x294c6f66 cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cpia 0x952c4f8d cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2281ce0a cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x407e9f96 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x81d6dfd5 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xd2f15d55 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xfc65d4ed cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x352e26b0 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x5cc33ef3 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xb8c8c0c4 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xf735b11a vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x06c6aca5 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x36a3c479 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x7a561c8c cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x871cef9d cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8cb60311 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xbf9e719b cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2830ded1 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2eb5c033 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x59f47d75 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8ebce523 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xab75e4ad cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xede25174 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1a145f8f cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1b4ae621 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2a98ea11 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2eba9f82 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x39e5ed2b cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x40547a7c cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x45573eec cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4b55279d cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4d70e9a9 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x532eb494 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xad2ab8e2 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb5a32a2b cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbf2164a1 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2ba7451 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2fb3fe1 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd5a15197 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdd1a8cbe cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe4429bb2 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe62ca27c cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf0a3c87d cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf57fd871 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xff2fbd24 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x0a4e3e8c em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x28b05e2f em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x1491de63 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x15373bae gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x4ca5f0eb gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6ec084c1 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa690cca6 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xb8f27505 gspca_get_i_frame +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd4985bbe gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x199a0830 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x19b68031 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2e6db25d ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x304004ab ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4d1905ff ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7522523f ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7a689f13 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9e4b2adf ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xaa4ce0d8 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbc6691d0 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcd0b9f62 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x05580af0 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0eb5ccb7 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2f515570 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4eddb54a saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x829205f8 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x841a144f saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9bd61631 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9c7d1921 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa4fa3322 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbb2d87e7 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbe21e0cf saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xdbe7f5d5 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x24419dc5 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x4c2d4ba4 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x7ba0c0b3 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xe56cb778 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x38d00cf8 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xa695d1fb tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0d6c3add usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0fb32160 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x16f5b280 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x6fa1e3b5 usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xa3a86d54 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xc61115a0 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x7a6935a1 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x3abbbff5 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa49e61cb v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x774e16a6 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x89d237c7 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xb5ec28a0 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xed5a872d v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x09602f39 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x3e2cce04 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb7467e95 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc0a16d43 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc52d9f0f videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xd8a089f1 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x17a23042 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x29eb406f video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x32764905 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x36cca238 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x446c15b5 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x4bced313 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x569bb1bd video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x6f75561f video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xc966a324 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1c7d2449 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x4ef3ea38 videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x84d399fc videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xe50181a5 videocodec_unregister +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0c58e7d7 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0ec84feb memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1f7c49ed memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x34fa7cc3 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x491a043b memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x96ca8f9e memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa05ca53e memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xad35c218 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb7fa8274 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbba089f0 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc503e39c memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf97215cf memstick_free_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x006e88f4 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00dc217d mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x037d04a3 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0b8299cb mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0f60fe0a mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x148a8225 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1b3942e4 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x228bfb8d mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x282c12e5 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3b21f6b2 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3f2fbb41 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4210af4b mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x44d4bef7 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x533c1e26 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x566a152f mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6197e01c mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x744e0a71 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x77af40c1 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8f901258 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa8531e56 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbea59826 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbfeffb1e mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2daa8c6 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcb6ace8c mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xccca2830 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcf07987c mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd39a8fa5 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd56f53dd mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3cc5576 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x109eaac8 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1f5f0ee6 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x21634fd2 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x24ba8f6e mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x280c6d4b mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2a2ebda0 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3121b9f8 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x34f99396 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x35983b71 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4ce00813 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5b5fe0d5 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a6921ff mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x89c92ed1 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9af99a4f mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa1868e20 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xacd581fd mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb164671b mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbc053f6b mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc0406e1a mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc84b9d49 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcd7ce628 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xce748f76 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdc82d2cd mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe8bca8ac mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xefaff52d mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfb664130 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1b780ba6 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1d8cff8b i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x20ba385a i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x21492dd7 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x26a56cc9 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x37ebdbde i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4a7d9ac6 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4af62446 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4f1fdb0c i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5044b050 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x573f688d i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5c90cef5 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x607758b3 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6f0625a5 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9a23250b i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4a882c8 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc474417f i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd0d3df06 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdc0cbc62 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdcca9e79 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xeaa66da1 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf36a3c3e i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x193ee58d pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x39fd1da8 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2b8299cb mc13783_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3ba445f6 mc13783_reg_write +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x42240be1 mc13783_irq_status +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x4ef7deb3 mc13783_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x53f073d2 mc13783_lock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x65107301 mc13783_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x91e88829 mc13783_irq_free +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x92fb032c mc13783_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xaaa4dd0b mc13783_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xb979ac97 mc13783_unlock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe757f318 mc13783_reg_read +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xf95c2e21 mc13783_irq_request +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x890c3e7e ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xfc01b45b ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x0e43cf13 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x804befd8 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x6558c860 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xfec38845 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x07495056 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x211d0a80 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x3f5ceb5d tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x44cd2f30 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x6acd2b70 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x77be0a83 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8c38a19c tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x8d2b0087 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9b86a83d tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xe908bc03 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xea7014b5 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xfd4f4122 tifm_free_device +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x28926be3 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7cd723ce cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa727a07b cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xedb7ea9d cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0d543593 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x2de1c9d5 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7bf685ac do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb8dd9d02 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xeb706e48 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x8bb2e095 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xc631bed5 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0xbc68ca72 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xc28dc5c4 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x3ad12d5d mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xbc6f0c34 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe4c24577 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf7dc921e nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xc207e4c8 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xe6a475f4 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x227675aa flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5b24ed59 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x63cd4753 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xd2e7bbd3 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/8390 0x440994ff ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x52e91c7f ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0x530fce58 ei_open +EXPORT_SYMBOL drivers/net/8390 0x57746493 ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0x835278da ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0xb3eeb988 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xb704d5be __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xbcaf3590 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0xdad5d3ae ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xee5959ec ei_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00ad0a7d arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x32a65e98 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5b80803e arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8b920735 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8dbacb46 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa1b124f8 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa676510f arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc4551c88 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xcf4074df arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xef4ea7eb arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x6b097c0f com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x8c1f0808 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xaca70adc com20020_check +EXPORT_SYMBOL drivers/net/bnx2 0x28a3b229 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x740d9176 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0xcbd97a54 cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1350d100 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2383e74b cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x57d845a8 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5e77e812 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7e30ef5c t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x867d1566 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xacc1c965 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xae53be7c t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbcc7f42f cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbdfc84d7 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbedb6083 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc17f041b cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe0d88633 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe30272d7 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xea78e12d cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf74ab383 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0457c631 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x1f6692c4 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x25996b1c cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2a0fc225 cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x44c99c3d cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x670828a8 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8dee5ef0 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8fd169af cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x9fcbcf66 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa8342704 cxgb4_netdev_by_hwid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xaa369dfa cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc611b38c cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd7434534 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe62cfaf4 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3966676a hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xbc0354d6 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc442dc4c hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xda896cf4 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe66135cf hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x341c1ee8 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5c5c3832 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7e16745b sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8897f96a sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9395ac35 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9e9956d7 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa9e2b296 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbde501bf sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcfffa800 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe0a1e525 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mii 0x03859093 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x2e73e1bb mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x3548daf1 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x38dd31a7 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x8b30f075 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xb44e111a mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xc2bfbc21 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xf7053ee2 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x20269b18 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x36cc1f7a register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x6b18cbee pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x93b26227 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x27ed5f32 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x3a0c5899 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x75d4b03a tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd679de1d tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf152746c tmsdev_init +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x07364158 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x12dbb2f7 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1ca3935c detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2751f68f hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4fba2adc alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5271c0d7 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x54a5ce3b hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7684ca33 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7e54eada hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe34491fa unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe877507c unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xc0b344c7 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x0b355881 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x6cfe849e init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xc9e214cb stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1815f79a ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a9ab94b ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1e9fd437 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x90903861 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x20c194e3 ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x45752b41 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x68b9c8e7 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xab75927c ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xba7a2f8d ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe9c8064e ath9k_cmn_rx_skb_preprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xeffef22e ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0308e8df ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x173d0ed8 ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1adae6a4 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1dd22974 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2353c75c ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23b07776 ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x245dba63 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26330ebf ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b658949 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b7bed45 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2fa20113 ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35e77490 ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36668507 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b43ccaa ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eed28a5 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f147be5 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x484f2cac ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x489085c2 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49811e7a ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4990e06a ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b713468 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b722699 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c8066bd ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4cb1aaef ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e4ee6b2 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f6acf3c ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x529e29f8 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x533c0143 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x566a6ec9 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56a951a5 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56f80d8b ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5727e8b9 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5728e619 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x58b9ca46 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x590ec2ad ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5bcbe06e ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c0ea366 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ecccf83 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f9970c6 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60e71aae ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66f343fc ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a7e3843 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73cb0b3e ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7aa2e349 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ceb98f9 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80d33f44 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82eaf6f9 ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83b0cfbc ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x866a84ab ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x880b8613 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8db577ad ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8fdfe8d0 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bc400e1 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f42e37e ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa29ade27 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xacdf2071 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae1c3ca0 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0608ffe ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4296c79 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb74ce6c ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe0cf0c2 ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe810e37 ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf8b5a4f ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4d4bdbc ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc71c15b0 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7d84641 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca3f6e55 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1a7ceca ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd43c9861 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd63e92d9 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8ee9eb5 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda1ad850 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda8fbf6b ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbf3d72f ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfe491c2 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1450f8a ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe304e651 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe65e5a03 ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xebe1216f ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xecc3e050 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1074361 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8d526b3 ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/atmel 0x134478a2 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x20122882 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xc55bdf2a init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x05815336 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0d8fde63 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0da2b1b3 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12b4eb2d hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21e33edc hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2d76a3e2 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x328946e2 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3a91af76 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x459db54a hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4923162b hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4e329f33 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x573ce7e9 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5846dfb6 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x62c15c55 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6ada4504 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6b902656 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7a6f6e70 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8298af11 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9ba0332f hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xacb94ff7 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb3fa347e hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc3a7fe0b hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcd2f64a4 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd7dbe696 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf3b5f58b hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0949f1fe libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x10a01415 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x185ca23b libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2f74700d libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3b798f6d libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4092ca5f libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x423b349e libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x759d21b2 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x80f77e0f libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8335ecf0 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x90a2f23c libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x98e1dc6d libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa07051df libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa79b10b7 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa7d016e9 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb525fd99 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb66f5685 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc0fcd433 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xebe9647f free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf474da23 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf8e10b0e libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00a2a4d1 iwl_rx_missed_beacon_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01af828d iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x026ecb03 iwlcore_eeprom_release_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0efe4baf iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x138584a8 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x150e3faa iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x160fd34d iwl_tt_exit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x169ef0cd iwl_update_tkip_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18e4afd6 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a4c03fd iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d346273 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d6663fd iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d89d2ef iwl_rx_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1dd785db iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1eb94f63 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x20a2e6f9 iwl_dump_csr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x23f16cf1 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24619956 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24bcc670 iwl_init_sensitivity +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x276b4e75 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x312b87d5 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x34629d52 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35640f2e iwlcore_rts_tx_cmd_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x356a71ff iwl_set_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35bfbee8 iwl_set_hw_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x38310373 iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x38ec8512 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39e3ceef iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3b12d911 iwl_rf_kill_ct_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c1b9554 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3d3e6781 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3e89d852 iwl_sta_modify_sleep_tx_count +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40e53d5e iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x422fe75b iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x437d87d2 iwl_sta_rx_agg_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44ea7271 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x476957d9 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48606a5c iwl_tt_exit_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4973f5a3 iwlcore_eeprom_verify_signature +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a62641c iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a8d02ef iwl_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e21b677 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4f94df92 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4fefa682 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50424463 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x517ba903 iwl_ht_enabled +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5377ca95 iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x53f259b4 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x55e7b247 iwl_chain_noise_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5730c576 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57466dd5 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57dea2ac iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x581b00bd iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x583765b4 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5b894f49 iwl_good_plcp_health +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c5704b8 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d55f49b iwl_tt_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x601b2165 iwlcore_eeprom_enhanced_txpower +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x61543332 iwl_add_bssid_station +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62d228d3 iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63c123da iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x67dde537 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6958985e iwl_hw_detect +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c5a1199 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6e936686 iwl_tt_enter_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x75dfdcb7 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x77525415 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ab94f57 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7de25804 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8075621f iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x80f69698 iwl_sta_rx_agg_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x856433ac iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85f7ddeb iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x862c365b iwl_tx_ant_restriction +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86cb0438 iwl_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8969f792 iwl_set_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89fd20f7 iwl_dump_fh +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8ff021a8 iwl_calib_free_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x916e8df3 iwl_eeprom_check_version +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92b346b4 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92fd3f2d iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93e236cb iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x96cc0edc iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x98284c57 iwl_remove_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac93a4cb iwl_sta_modify_ps_wake +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xad8c92a2 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf2da7ac iwl_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb092f24d iwl_mac_beacon_update +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb18e65c5 iwl_restore_default_wep_keys +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb77b4e71 iwl_sensitivity_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8a2871e iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbd743d27 iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc04ed39e iwl_reset_run_time_calib +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc57384a8 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc57a9878 iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc5c4d64d iwl_setup_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc79a6500 iwl_send_calib_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca458cbc iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcceb919a iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xce028382 iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf8067a9 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd0f865d4 iwl_toggle_tx_ant +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd6867434 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdb37e7d5 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc2c4a50 iwl_set_rxon_chain +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde2ff919 iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde75067b iwl_remove_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdea2b9c3 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe409d591 iwl_sta_tx_modify_enable_tid +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67856e1 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe769e91c iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8d4eb41 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec9bd5cc iwl_tt_handler +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xed036024 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xee1792e2 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeef6843e iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf1ef436c iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2d0f90f iwl_eeprom_get_mac +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf35d71a5 iwlcore_eeprom_acquire_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf44d4a00 iwl_verify_ucode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf59feab7 iwl_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf65c8f98 iwl_reply_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf87f1c4d iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf96a4797 iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfeef0203 iwl_free_tfds_in_queue +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x00d5e2da orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x10471776 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x29e993f4 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3e6718b0 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4582b47d orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x51eb8b22 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5ab62990 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x60759065 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x625c85ab orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x704c6433 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x70fd262d orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb46d43f9 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd5880ade __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd6016490 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdd19d70f orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf9b9e8c4 orinoco_if_add +EXPORT_SYMBOL drivers/parport/parport 0x0a7ff7c0 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x11588877 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x13d5d868 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x204fad27 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x3151e58b parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x31f81a61 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x331ce6bc parport_release +EXPORT_SYMBOL drivers/parport/parport 0x374139c3 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4ef26575 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x5346c296 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x5855cd81 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x5c8c89ba parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x5fbd5b2e parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x702eadb0 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x72174726 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x766d590f parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x76ae43bf parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x77a4006d parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x78bcb849 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x7a733bba parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x85b52c77 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x8b350f5b parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa78ec4ba parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xd129fc15 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xd20c3a0d parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xdae4c74e parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xdd271535 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xdee8f9bf parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xf43155cd parport_write +EXPORT_SYMBOL drivers/parport/parport 0xf66eb9b6 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport_pc 0xf1f3e7e5 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xf91e2179 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0ffd6121 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x13c0c3ab pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x32fa4c55 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x40d3d7d9 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x606c606b pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6a38eb4b pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8ad697e1 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8b095f60 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x979361ac pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa6e46fdb pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbd8123c9 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3224141 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd2865b6a __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd43ca239 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe3dd6205 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xecd71a86 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xefd6cbfd pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x68e64109 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6d217098 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fb55f58 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa207c69f pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaa92ca78 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb42e9b30 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd8880aa3 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xea6e940f pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf70c545b pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfe732285 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x1ad84eef pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x496136cb pccard_static_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xc88ecee9 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0d00d12a fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0e27a893 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x23ba942c fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5e21c63a fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x82a72700 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x87d4635c fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb7bf2def fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09fa468a fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14b08093 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14e65e1a fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16a8caa5 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1df4e40d fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2061ec1b fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21717ab8 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24ede91d fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x350ca179 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x39681e80 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3a4033e3 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4188ba03 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x41d477e9 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x510c5b7c fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x530ae3f8 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x60143337 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66da9d8e fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6cfc734b fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e6c6e89 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f8c48d1 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x74a1a6a5 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x86ca33c9 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8cc73275 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a9fe083 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ca055ea fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ed7e969 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f1e3a78 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaa452552 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0140f95 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1360829 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb6bbd900 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb81f0bab fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc46012da fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce6cb4a9 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce70158f fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce9fb6fd fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd713af09 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd8b14ac4 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd99836aa fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xda2289bc fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2554f63 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xec94eabd _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x55240534 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0093c452 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06703b46 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0cfcc011 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0f8d3e38 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1a056cb6 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1a334aaa osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x243324b2 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x25760af5 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2c5acaa9 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3878fa6d osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x40da47d8 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x41c20ece osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4288bee1 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4f5b96c7 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x54bfe028 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7081d1f9 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x73a38af3 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x74f37fa9 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7efe0d40 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7f3f8f6e osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8433c3ed osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x95990ed2 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97605cd4 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x998abe0f osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa0b8eca0 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa63101f3 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa889e48f osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa9544a83 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc25b67ed osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd40334bd osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd5aa5756 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdf0eb5fe osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/osd 0x0ba3bac7 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x4c8d3fec osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6ece13ac osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7d08ce9e osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9fa4206e osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb352df08 osduld_put_device +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3f31051b qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x48ca80ca qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x58af1b93 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb8153151 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd0d71a21 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe56b7ae1 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x573816f1 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x790ee396 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xbdb123e4 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2040bb9f fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2db752ac fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x31d930d3 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x336e759b fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3e17c80e fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4ce07ef9 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5a5f1a31 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7d8e59a3 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x952488d5 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9bb6617c fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd2cd8555 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xde9f9adc scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfa0b87df fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x05469f53 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1abe41ae sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1bbcfd89 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2d412273 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x30d34e90 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3325b44e sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x334c29a0 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x46365bf7 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4891e20a sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x50e0764d sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x52624772 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5f17ea66 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6120eae3 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x630f32ae sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x669e880e sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7830a7ec scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c15012b sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x85798512 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa80b66f5 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb23094f4 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc7e74bc5 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd99728c sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdf29f4a2 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf9a2e1a3 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe1ca92e sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe7d412b sas_phy_free +EXPORT_SYMBOL drivers/ssb/ssb 0x0b21ba1f ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x20ff2aa4 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x2cac3715 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x40f2414a __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x45930fbc ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x47782225 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x4f2de613 ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x5145b879 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x57504500 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x5a901121 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x5f59aa51 ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x6b76ab82 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x7956f0a1 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x7c570f45 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x7d4a89a1 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x847b8e65 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xbac52f63 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xbe79de99 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc99589e5 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xcf62c217 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xec8c8bfc ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xfee532a9 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xff987651 ssb_pcihost_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x00296220 comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0ba27b93 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x5f7208af comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x71796b38 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x79fdcb34 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8724e143 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8b8fa62e comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa4169689 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc48151a0 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc5e8767b comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc9631831 comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb05e99d comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe31f46af comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe45fd4b4 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xed1309ee comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x23ffad83 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x69b704eb subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xb26afb2b subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xf7d04ef3 subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x19d7303e cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x2522f0e3 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x34545ecb cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x39e7af18 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3c4883be mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3cb79c39 mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x47ce42e9 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4956cadb mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5e68dd06 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6906ece2 mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6931db6b mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x695ddabf mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x721405ff mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7f9d008b mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9771dd9d mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x977560f2 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x983c8961 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9cd5996a mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9f25b97a mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc90ef542 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe79d6d14 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf11acbd4 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfcccebdd mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x1cb5b41c subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x7c91ccd8 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x7e4a077d subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xc4111177 subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0xff01ac8c comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x24028c0e comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x4d41bcab comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x66a0a06a comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x6ff9895a comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xb603c6d6 comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xd3cc1d3c comedi_close +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x034962ae cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x147bec08 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x167de4a9 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x2eaa21a0 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x2f6449d6 cx25821_dev_get +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x588108ea cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x5dfd02be cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x9039246b cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x1902e3f4 go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x8ed15fb5 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xbbdc069a go7007_snd_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xbfb9bc3f go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xcb87327c go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe0a37e95 go7007_read_addr +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe8c3825a go7007_snd_init +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xea51e537 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xf1e2e4ca go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x69679c04 vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xe4597365 vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0477eaff __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0cb2e95e iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1753d77a iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1bae256a iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x23e2149d iio_read_ring_bps +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x23f43b73 iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2c7e8071 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x333ee519 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x356a00f7 iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x35dcfbe5 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x36579e6c iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3927d2a4 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x49fd6502 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5eef6ddb iio_free_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x72b2d80c iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x77e43de2 iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7d82851d iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7edf6482 iio_get_new_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7fb3698e iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x89348e82 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9120d717 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x97026074 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x985fff58 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9a5f7475 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9ce372db iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa1076e05 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa364b369 iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa4325651 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa7f5dafd iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb0ebdf51 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb3f89f12 iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb66aa76a iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb7c81b35 iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb9be22cc iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc33f9990 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc544f1e8 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd66abfcf iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdc740988 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe0158144 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf5a41ad8 iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x02c6caee iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0af30ce3 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x226fbbe1 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4136ac28 iio_set_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4c44b163 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4f99e1ff iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x5448149f iio_get_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x761a67cb iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb60ed9e1 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbf7206ae iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc7e6a04e iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xcd83c31a iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe9678793 iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xa4e82d87 pod_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xb008b37f variax_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xc4f2fe4e variax_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xe4a131e9 pod_remove_files +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x11452eff rar_reserve +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x785e5269 rar_release +EXPORT_SYMBOL drivers/staging/memrar/memrar 0xd0382ff3 rar_handle_to_bus +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x0072de2f rar_get_address +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10a7985a ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x12a1c5a2 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17ea1c89 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1a25bafd ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1a34b74b ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x201102e0 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20e47ef5 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x242566fe ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x256d2456 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2af37648 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3098ce55 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3142f53c ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3387399a ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42d14329 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a243935 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4ce335a6 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4feb943d ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x52aed9a1 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5789d033 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x599acbe0 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b45c70a ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b563c96 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x64de674d ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d54e58e ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71eb483e ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x72ec057a ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7758644a ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f4c4cb2 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x87326433 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x88f8b28b ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8afeef73 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a07cf15 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9ad2c13b ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9caf479b ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9fdc56c3 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa2499c96 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa559d0c0 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa9e97de8 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb6d341cd ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbabdd330 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf97801b ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc3afacfa ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc82bbe60 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd2fb531a ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd3e89128 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd44a4181 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd8ebf3ca Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde3099fd ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe83f6345 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecfc96f0 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeec2d94e IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xefe9e7a5 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf64d12de ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfc768ab3 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x41c3497a tm6000_register_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xb3ece4c2 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x047f8b85 vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x0575a973 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x11b8b0f4 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x2da6b116 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x3fb712ce vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154 vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x5d150e74 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x5fffd071 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x684c76d3 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7754663b vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x86f484ea vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x8b851f35 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x8bbd078c vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x96e8825d vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x97e340eb vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9bacc655 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x9d279035 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xa6bd2e26 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0xb9d0fc37 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xd49852c2 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xeaad9ff4 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 0xa462eb75 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x39e3cb50 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x6ebf64c0 phone_register_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x0535f634 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x752cd160 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xc10f8277 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x5e4e7c37 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x13ee4f94 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1b54a125 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1cbf006c usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x656f42a6 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x72bf4081 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x791873a2 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x829a2acc usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8560ba95 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x954c44e8 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa2644f81 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb65d7639 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xca6f55a4 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcece3786 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf46005da usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x250ea57a usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xe2e22597 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x38feb6af lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xb454a44f lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x153ecf79 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x436a9bba cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x67cbc967 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0xcf58333f cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x1f6c09b9 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x23b2a137 display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xc295ff7a mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xae3f8d09 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc9078d39 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xfe7c7199 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x5c4e15f4 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6be8b06e DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc5b95e88 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xdbfe68f2 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x2c558548 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xd2360e8b matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x01255f23 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xbcfea9a3 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xcc1fbb86 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd3565606 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x07f2ce42 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x981068df matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x7bd14bd9 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x8224af47 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa3099a1a matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa873d2bf matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb93816f3 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xdfab01c7 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x694e0f9c video_output_register +EXPORT_SYMBOL drivers/video/output 0xddc3fe36 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x15dac265 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1bf41060 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x903e607e svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xbb938d9e svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xd62602e4 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xdd038256 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xe9de61ed svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0xd4eba4b0 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x673144fd sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xcfa7265f sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x3d1ad6cf w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xa578bc8a w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x3d3ff1e3 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6765d388 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xbf1a35d0 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd0e625b3 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x16718449 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x178d2dac w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xa8106045 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xf8aad39a w1_register_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x0ebdb6c4 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x0f69e26f config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x0fb0b3c3 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x44cd54ad config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x5bb17d99 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x92fc864a config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xaa02c70f config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xb15302ed config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xd2462a53 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xd27d9492 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xd3a4c9f8 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xfa43359d config_group_find_item +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x292efdc8 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x298e4e0c __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x2be17204 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x44ecfd3c fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x5b3721de __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x5b687cfc __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x5fe2c604 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x6944a15a __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x780ee8b8 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x7a70502f __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8d6d33db fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xab1a79b7 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xc08d1630 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xc74c0c00 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xc80f8fa8 fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0xcafc020c __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xd6923e5d fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xd99eefa8 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xdd56964f fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xdf554557 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xeaa494b8 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xeac42ff2 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xeccc6d41 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xeee0d5fc fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xef9a7b22 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xfd901469 __fscache_unregister_netfs +EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/quota/quota_tree 0x241902f0 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x499ad0fd qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x7b46946b qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xe13f8e5e qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xf55e7606 qtree_delete_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x12b9b7be lc_reset +EXPORT_SYMBOL lib/lru_cache 0x1730df11 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x3300b71b lc_create +EXPORT_SYMBOL lib/lru_cache 0x6676121e lc_get +EXPORT_SYMBOL lib/lru_cache 0x7956b0f0 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x79e974c5 lc_set +EXPORT_SYMBOL lib/lru_cache 0x7d40a63f lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x7fca3b45 lc_put +EXPORT_SYMBOL lib/lru_cache 0x9496a4e8 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x96d83587 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xbeb91553 lc_find +EXPORT_SYMBOL lib/lru_cache 0xc46dd3fa lc_changed +EXPORT_SYMBOL lib/lru_cache 0xd544d04a lc_del +EXPORT_SYMBOL lib/lru_cache 0xe3ebb5a6 lc_element_by_index +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x0f784c15 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x784f6347 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x06b0ee76 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x07d75f18 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0x19b4857e p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x25858d8d p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x2e303f96 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x339747f9 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x3476e63d p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x370524cc p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x467fd093 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x46f80520 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x4c69d99b p9_client_version +EXPORT_SYMBOL net/9p/9pnet 0x51bb5e39 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x6a1f7762 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x6f6d72e3 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x7d8b7bce p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x7d9551dc p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x816356a1 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x8ba823ba p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x9c831e88 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa75932e1 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xacfbf022 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xb08bfb69 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xbbccabec p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xc046e11f v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xc993b3a1 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xd644b420 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xde59b37b p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe87bc9ec v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xf1364f05 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xf71b4e42 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xf8bcceb8 p9_tag_lookup +EXPORT_SYMBOL net/appletalk/appletalk 0x0ffa1a4b atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x463f51e6 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xd3c6c9b4 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xf5917953 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x36fdeec2 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x3c8ca358 atm_charge +EXPORT_SYMBOL net/atm/atm 0x98ac04b9 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa6a1753b vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xa940afa4 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xa9e99546 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xae96dbf9 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xb101452b atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xdbf1a6c9 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xe799de66 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xff582d79 atm_dev_register +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x1ba3cfad ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x4ca0cdc3 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x7b2f0e28 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x7fcc9957 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x8e7d8bef ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc3e6c3e0 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xcd956fcb ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdb4637a6 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xe579c251 ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x033679a5 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0a3aea51 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1070224e bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x10f6f7fc bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x14c9ab01 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1ab637d9 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2acb09e9 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3dd52a94 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4948a56f hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6144b35d bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x61f0f95a hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6dacaba6 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7590f6b5 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7cd2b418 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x89f5452e hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c8ed4bb hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa1670df3 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xab2e9bfd hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xab5b5504 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaba9269e hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xadfab291 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf659d6b bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb8d837b6 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb8e3e84d bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbccc11cc hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcfa8b21b hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5767218 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd99a2a84 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xebe8ad1e hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeef66774 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf376646c hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf926d704 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x1f678c21 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x036fd513 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd2d8ac3a ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd8ecba7f ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x05afd6a4 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x1a3945a5 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x2976e5f7 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x304adbdb cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x31b99d04 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x39752116 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x487a3f67 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x49023f78 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x4a453259 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x4bbdc278 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x4cae0b93 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x5596c67e cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x5fd634a2 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x61c31df7 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0x692fa9c7 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x696b037c cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x69fafc2a cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x6f6066c6 cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x75a0d41d cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x92b0fcc0 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x9821be5e cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xa2afadef cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xab93eb44 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0xada8453e cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xb0f1ca9c cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xc646df70 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0xca513c1f cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xe17ccc1b cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xf72efccb cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0xfc36ad28 cfpkt_more +EXPORT_SYMBOL net/can/can 0x0ecbd62c can_proto_unregister +EXPORT_SYMBOL net/can/can 0x1cbd5ce8 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x481a4cb8 can_rx_register +EXPORT_SYMBOL net/can/can 0x574089ed can_send +EXPORT_SYMBOL net/can/can 0xeafd5548 can_proto_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x45c73264 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x51970bc2 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5e58c772 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x670a5141 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8127db83 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x812a5c6f wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x817c2b85 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9a54d9bc ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9ab60743 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbf664cf6 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc19dd208 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc6b098dc wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xec327219 wpan_phy_for_each +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd0a97e62 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe224faef arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe7534893 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00b5c436 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x8213ba1a ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x8d6bea3e ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x07f07bc2 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0d7e7a73 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x12e69f0b __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4ec46f1f nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x50d07b0f nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5a9b1c41 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd61f7a1b nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x67a49035 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xb836fcea xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x07d09577 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3968112b ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x88cf357a ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb643a5d1 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0xc73966f0 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xf293f6c2 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x3cc79009 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xa42d4fb3 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe650a7b8 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x092e6e97 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x28e1a150 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x30d69088 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4b8f23a2 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5a9f4841 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8f135cf6 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa19a2d66 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbadbb4f7 ircomm_connect_response +EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x1a7e1625 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x273abf2a irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x28b079a2 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x3538349f irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3e5e8acd proc_irda +EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x4626aa4a irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4a89f833 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x56e103b8 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x68bcc8e0 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x69afc313 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6bd6352c irlap_open +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x74700982 irlap_close +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x851439b7 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x90d5766e alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x92372e26 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x9617d1a8 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xae032335 iriap_close +EXPORT_SYMBOL net/irda/irda 0xb865e522 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xb8c322c7 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0afc887 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc5ede59d iriap_open +EXPORT_SYMBOL net/irda/irda 0xd06e7530 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xd23610dd irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xea886a95 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf26ad456 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xf3de1ffe irttp_close_tsap +EXPORT_SYMBOL net/l2tp/l2tp_core 0x0931e1e2 l2tp_recv_common +EXPORT_SYMBOL net/l2tp/l2tp_core 0x891d7ae6 l2tp_tunnel_destruct +EXPORT_SYMBOL net/lapb/lapb 0x0d152461 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x1c630684 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x60efb508 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x78490693 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x83d5e3fa lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x9e0e82e0 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xc7965eb0 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xe622b0b5 lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x068c823f __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x07780644 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x0d6d1c3a ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x288d0984 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x29804207 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x406005e7 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x4765f4e3 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x4aefaa95 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x4afdd6e8 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x51d9b1f1 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x5842c8c5 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x59242524 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x5c29a900 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x6dccd0de __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x74537799 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x791c8b8a __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x798dd764 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7a762653 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x7bcc4aad ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x8d3783bc __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x8f48b1a3 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x9bce1a3b ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xa02434be ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa14e2005 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa2af7dfc ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa3f354ba ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa9e7c79a ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xb35f9309 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xc9dde591 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xd8463ac4 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xda8c82de ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xdcd7da6f ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xe558a468 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe947e988 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xee5b4736 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xee8c7d74 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xfdedd846 ieee80211_register_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x02228403 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3da22a33 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x40de24dc unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4ddc87d4 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x632cbd11 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x746af0a2 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x74f740f1 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x77a96abc register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x85111a43 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8d51ccbb register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9ac18b20 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x37a60913 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xbc72deeb __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xd078a8b9 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x182df34f xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x42175d30 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x594115f9 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5abbca2d xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x80f7bfee xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x881c0209 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xbc038b6d xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xc1ef992d xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xc330b200 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xe39256a3 xt_unregister_target +EXPORT_SYMBOL net/phonet/phonet 0x203dac5e phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x22918010 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x2f9ab663 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x61fe7678 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x717d4917 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xca47cb9a pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xd81810cf phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xf93b26ca pn_sock_hash +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2d9fda8b rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x323e13a6 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x332c2642 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x40f80093 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6da58b84 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x77aab967 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x81fed087 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9fd14ec8 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xabc979b9 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb1f3df30 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd06ef790 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd1611d82 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe75bf58c key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf27e5816 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf85b97ae rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdf70d7d8 svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x1ddb46fa tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x5d8a491e tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x70e34716 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x7d08133f tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x8140afef tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x8717f94e tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x87a8e015 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xb5d41ffd tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xca2570c9 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xd2c33398 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xed1c7462 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xfc11a648 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0xb850281b wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xe2a55dcd wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x00701304 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x0109eea0 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x02e9ce0b cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x0817ec85 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0be7ebc3 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x10d77bc0 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x18654ae8 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x21f214ca cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x26090213 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x28c721b7 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x31563964 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x31e0e998 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x3522e102 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x400b66e7 cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0x4df6b866 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x51f3408c cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x529c0b0c cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x53e36c6d cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x5604733f regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x61663ceb cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6a914c16 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x713d4563 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x74d677b0 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7dcec55b __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7f76a59b wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8207ac9d __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x8569715a cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x8a6cd1a0 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x97dd46d3 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x989d3533 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x9a393558 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x9c2d5910 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x9faaa98f cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xb286192e wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xb6cdd209 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xcdd0a69e ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xd3017438 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xd9bf2677 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xe26c3352 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xe9044c59 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xea6af4c8 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xed0a3e67 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xff6f1b8d __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/lib80211 0x22e67479 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x31d5976f lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x375649d7 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x63310733 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x827460f2 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0x9d54e352 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0xd3b190db lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xff6a2aba lib80211_crypt_delayed_deinit +EXPORT_SYMBOL sound/ac97_bus 0x9452b9c4 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x01a65ee4 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x03b2e13b snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x86f58123 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xffa4a741 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb5bf18cb snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xe44e4e36 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xc25e4b28 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x014fb73f snd_device_new +EXPORT_SYMBOL sound/core/snd 0x04888173 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x1155bee2 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1b828afa snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x1f3c1d86 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x20a23d79 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2566175c snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x25803879 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x3667c980 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3c9bda32 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x405d0d1a snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x4152b19b snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x42d30573 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x4346c885 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4ecc3a20 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x546f1b2e snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x54caed48 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x58aa5007 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x5e5d7b19 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x5f26749e snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x6820432d snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x685bed3a snd_cards +EXPORT_SYMBOL sound/core/snd 0x6bcf212b snd_card_free +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x7c02e9e7 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x7c4245d1 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x7e99da09 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x8016ad79 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x856e0cbd snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x94ae6cb9 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x9c71b6ac snd_card_create +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa9d770b8 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xab5ad110 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb3c080ad snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xbf0b2324 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xc3ff1e22 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xc8537719 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xcf97b3d2 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xda3c7485 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xdcdea6cb snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xdd5aeb1a snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xddf3fbd5 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xe0469506 snd_device_register +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xf73d7d77 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xf817ad36 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xfcb2c687 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd-hwdep 0xa76a4c8a snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x03bede4f snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x071ab525 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x826ffcea snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x89a3f2f1 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xadf1627e snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x025fbad7 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0d92c0f4 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x0e28be67 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x1345c958 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x13ce3d42 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x1c06cee5 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x20f8eed7 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x3167f504 snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x31880cf0 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3b60b79e snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x4013572a snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x42b0c30d snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x473b4446 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x4967fe4f snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x54be8c17 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x5bfec1c4 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6bce825d snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x6deba28a snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x6e685353 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x7176823e snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL sound/core/snd-pcm 0x723bfc7c snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x756cfe9a snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x7ab7a13d snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x7b339cb2 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x7fa084bd snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x887d7efe snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x8cd44d9c snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x8df7a157 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x94834d2f snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xa56fa0a7 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa89d1148 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xaea7fa14 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xb02b7d84 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xb5abb6e4 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xb72e90d1 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xb73d7bcc snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xb9219adc snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc4202e08 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xc504c371 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xc77b96c9 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xcbc3e938 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xcfc93643 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xfe5665b0 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0e112605 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1faafb19 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x24285348 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4e62ae06 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8b4111e7 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8e6bc106 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x97786b9a snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x99247ca8 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa4bf268e snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb59e7f4d snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd29b57f7 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe7707b9a snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xed0e401c snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf4d87322 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf5277bb4 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf5aacd53 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfbf85b7e snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-timer 0x03ce5dd5 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x041da23f snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x0486743f snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x0576b96f snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x09e90208 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x0a9f6898 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x2a8050c5 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x6b60ffd8 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xa036043c snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xad037b26 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xba114c61 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xc13aadf2 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xc567364e snd_timer_pause +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x11e7bbcd snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0038caaf snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0afda53d snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x31ba6d1b snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x51cd3af1 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5b505119 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x684fff24 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8f5aa34e snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbe0a3bf5 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf5fb85da snd_opl3_init +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0c6b5d14 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x168246cf snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x43d8ee37 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x490f6466 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5eab00e5 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7b407040 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc6b0ea5a snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd721904d snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe19f2d99 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1e36bbe2 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4d689326 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xbc1a82d7 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdefa01b5 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf8d0a461 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xfe0cbb5b snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4358ba0b snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6aaf13e0 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x763f48d4 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xbd40a365 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xdb4e89c5 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf14f96fb snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x0a32c054 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x554a875e snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x94830176 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xc1d72194 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x5a3f2815 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xcd84ff4b snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x0738b9fe snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xf71b05bf snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x07d59388 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x399854b9 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x67a50365 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9a5373cb snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xbcf7d9c1 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x175a94b0 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x1f148927 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x52305440 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x839dedaf snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa466391a snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc355b64e snd_i2c_device_free +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x111a9a3d snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x140ec28a snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2d6c219d snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x592dac31 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6c6d3d1d snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x75264c2b snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8c508155 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9e730ff9 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc649815c snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xec0f3510 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x0c552345 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x2285f868 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xa641e07a snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x003c5504 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x02a63df7 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x03b86edd snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1044655e snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1b43f300 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1dbcbbee snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2688db21 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x280136cd snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x745f9031 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8bee6443 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x940c4dee snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x967712d5 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x98750952 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa0141458 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaaf1797f snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbfac982a snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfb6f7810 snd_ac97_write +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xe9393b5f hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x185667bd snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x20a4935a snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x32838cea snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4cca2481 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x58d34773 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x59993a6c snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9c46b383 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xdfe52dca snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe45f9458 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xdc11e7fd snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xaa455d6e snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xe0bd60d7 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xea0ce861 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0fdee06b oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1091d4d9 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1df57e23 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2a43c520 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2f76cd0f oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x34ac937b oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x513dbea3 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x55510ecf oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5e3ed0ea oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5e4d92f3 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x61512524 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7004cdf6 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8765aec0 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8805fd33 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa20bf853 oxygen_default_i2s_mclk +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa269bbcf oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa4b4d411 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcfe14585 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe89eca37 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xeccefbf2 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xecdb3265 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xef3cc418 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x0b900487 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x22f9744c snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x312ed695 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4700196b snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xd9bba7a2 snd_trident_alloc_voice +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0xd23604c6 uda134x_dai +EXPORT_SYMBOL sound/soundcore 0xfe8a023a sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x85187f2a snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x935a2850 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xcb37cc25 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe3cabed9 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe770482e snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe8970715 snd_emux_register +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1bb7a237 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x419149c3 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x453303d9 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x515cadf2 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6fe1bb3f snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb99a20be snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc0ba26ef __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe76d5a2b snd_util_memhdr_new +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd5c61e38 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x5560f9cb dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x5e729732 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x63b889dd dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x7248325d dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xbab7c581 dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xcf5050fe dm_mem_cache_free +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00170fe2 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x001ef709 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x0028bde1 thaw_bdev +EXPORT_SYMBOL vmlinux 0x002e2437 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x004e7639 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x006c016a tty_check_change +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0080a0a6 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x0082769c cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x0094d65f vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x00aa4e8d cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00c36902 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x00c9ded6 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x00ce14ba register_snap_client +EXPORT_SYMBOL vmlinux 0x00dad6b9 kick_iocb +EXPORT_SYMBOL vmlinux 0x00e265e1 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x00ea8a65 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x011e31ab dquot_acquire +EXPORT_SYMBOL vmlinux 0x011fc38a key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x013fd38a xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x016a08fd rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x0185d777 blkdev_put +EXPORT_SYMBOL vmlinux 0x018f1ee2 napi_complete +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a6ec9f default_llseek +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01c6815d __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01dcfefb acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x01e2c10b xfrm_register_km +EXPORT_SYMBOL vmlinux 0x01e7fb18 serio_close +EXPORT_SYMBOL vmlinux 0x01e8961c sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x01ee2b5c pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x01f0204d mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0234cc54 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02c30a7d dquot_destroy +EXPORT_SYMBOL vmlinux 0x02cd2f03 unlock_page +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key +EXPORT_SYMBOL vmlinux 0x032c66ee mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x0349dd29 ida_pre_get +EXPORT_SYMBOL vmlinux 0x0353147c blk_fetch_request +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0395f439 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x03b2fb45 arp_xmit +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03cc413a xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x03d26277 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x03eac609 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x040dd02e iput +EXPORT_SYMBOL vmlinux 0x041e9f05 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043941d6 __ps2_command +EXPORT_SYMBOL vmlinux 0x04612e98 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x04763a75 blk_insert_request +EXPORT_SYMBOL vmlinux 0x047d4895 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048b37d5 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x0495bc1e register_con_driver +EXPORT_SYMBOL vmlinux 0x04c2ec11 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x04d44a62 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x0504510c tty_shutdown +EXPORT_SYMBOL vmlinux 0x05224c62 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x053373df bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x0549ac06 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x0568a9d6 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x05a9d2ab inet_listen +EXPORT_SYMBOL vmlinux 0x05b98d56 replace_mount_options +EXPORT_SYMBOL vmlinux 0x05da84a1 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x05e28d43 __first_cpu +EXPORT_SYMBOL vmlinux 0x05f0c26b jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x05f29a5b check_disk_change +EXPORT_SYMBOL vmlinux 0x05feb22e nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061ca5ac mmc_card_awake +EXPORT_SYMBOL vmlinux 0x06255bf7 input_allocate_device +EXPORT_SYMBOL vmlinux 0x062e322b xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x06377f44 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x064e7192 nobh_writepage +EXPORT_SYMBOL vmlinux 0x066d3f6a tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06a9e056 bmap +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06bdc701 set_pages_nx +EXPORT_SYMBOL vmlinux 0x06c0c759 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06d90631 blk_start_queue +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x072508f3 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x072e43b3 brioctl_set +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x075e5fa1 locks_init_lock +EXPORT_SYMBOL vmlinux 0x076442aa slow_work_cancel +EXPORT_SYMBOL vmlinux 0x0766788d key_negate_and_link +EXPORT_SYMBOL vmlinux 0x078d5d0f __pci_register_driver +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b2148c tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07e9abfb serio_interrupt +EXPORT_SYMBOL vmlinux 0x081f14b7 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x084934f3 security_path_unlink +EXPORT_SYMBOL vmlinux 0x085a127c set_user_nice +EXPORT_SYMBOL vmlinux 0x085bd2a5 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x0893af36 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x08be176b blk_integrity_register +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08e5dbed pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x08e75da4 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x08f3776e journal_get_write_access +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x096600ed phy_find_first +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x097ff252 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09903e07 phy_device_free +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d11890 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09ea2bee netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x0a03125a wireless_send_event +EXPORT_SYMBOL vmlinux 0x0a03bf7d remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x0a085f77 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x0a1e91ba netif_device_attach +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2f6330 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x0a629384 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0aea3c98 vfs_readlink +EXPORT_SYMBOL vmlinux 0x0b0a2e8d sk_stop_timer +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0ed270 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x0b1855f1 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b20fce1 inet_frag_find +EXPORT_SYMBOL vmlinux 0x0b284022 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x0b4dd2ce clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b9fe69e qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x0bbda62d scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0c133a6b fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x0c46550b agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c74c845 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c97fd37 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca432df security_inode_permission +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb009ab jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d476e59 send_sig_info +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5ea6a0 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x0d83a191 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x0d89b1d3 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x0d9e47fb sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x0d9f4e5b ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dca51b0 scsi_host_put +EXPORT_SYMBOL vmlinux 0x0dce3841 vfs_readv +EXPORT_SYMBOL vmlinux 0x0dce8745 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x0de8747a simple_lookup +EXPORT_SYMBOL vmlinux 0x0def7c64 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x0dfda1f4 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x0e0ed6bc phy_disconnect +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e2dd4d9 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x0e3d2877 d_rehash +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e57d94e pipe_unlock +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0ea841f9 __page_symlink +EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free +EXPORT_SYMBOL vmlinux 0x0ec4dcd7 register_md_personality +EXPORT_SYMBOL vmlinux 0x0ed8a23c vfs_rename +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0f5d6b4d kmalloc_caches +EXPORT_SYMBOL vmlinux 0x0f739396 do_sync_write +EXPORT_SYMBOL vmlinux 0x0f7b585a rfkill_blocked +EXPORT_SYMBOL vmlinux 0x0f87f1e3 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x0f8a98a8 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb8d8c6 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x0fbd01e8 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff9c08a splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x0ffe6d7d serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x104d7125 padata_stop +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x1080464f jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x10865ad1 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x1094cb68 generic_removexattr +EXPORT_SYMBOL vmlinux 0x109fbc71 fb_class +EXPORT_SYMBOL vmlinux 0x10bac516 input_set_capability +EXPORT_SYMBOL vmlinux 0x10c370a2 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x10cbbafe __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10df97a7 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10fba5ec get_write_access +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x1110b56b input_register_handler +EXPORT_SYMBOL vmlinux 0x11117d47 fb_find_mode +EXPORT_SYMBOL vmlinux 0x1120ae37 register_8022_client +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1134d6ba ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x1190789d ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x1190b1f2 seq_putc +EXPORT_SYMBOL vmlinux 0x11a6ce7a __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x11ab89a5 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x11ba34f7 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x11d3852e sock_wake_async +EXPORT_SYMBOL vmlinux 0x11e06d18 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x11e8d6e1 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x11e94dda pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x11ea18ee tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x11f09313 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11f8434a buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x11fa33c3 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x120ee165 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x12281cf0 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x12356214 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x123939af pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x124dff8e inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x128bee76 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x12983e9f bdi_register +EXPORT_SYMBOL vmlinux 0x12abb885 clear_inode +EXPORT_SYMBOL vmlinux 0x12e0bd85 phy_start +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x12fdeb32 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x1306508e genphy_suspend +EXPORT_SYMBOL vmlinux 0x13162e04 skb_make_writable +EXPORT_SYMBOL vmlinux 0x1322277f xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x136c856f mdio_bus_type +EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support +EXPORT_SYMBOL vmlinux 0x137b53fd mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13bb15e3 set_trace_device +EXPORT_SYMBOL vmlinux 0x13bee55c journal_revoke +EXPORT_SYMBOL vmlinux 0x13d4c63a processors +EXPORT_SYMBOL vmlinux 0x13da9413 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x13e8bae5 ht_create_irq +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x142857c7 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x143559f2 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x145f8e6c __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x14a72141 dma_supported +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x14f5cda1 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x15043f97 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x1506b44d set_page_dirty +EXPORT_SYMBOL vmlinux 0x152202be filp_close +EXPORT_SYMBOL vmlinux 0x1534ba66 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1576eb3c mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x157a5b2a dev_get_by_index +EXPORT_SYMBOL vmlinux 0x159417da mdiobus_write +EXPORT_SYMBOL vmlinux 0x15a6fad6 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x15b35d92 register_framebuffer +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15e204d2 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x15e82918 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x160fa03f netdev_set_master +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16314984 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x16490dc6 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x165b4c91 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x169fa73a scsi_scan_target +EXPORT_SYMBOL vmlinux 0x16a62b97 sg_miter_start +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17175757 commit_creds +EXPORT_SYMBOL vmlinux 0x173cee67 serio_reconnect +EXPORT_SYMBOL vmlinux 0x1744ed13 dm_put_device +EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove +EXPORT_SYMBOL vmlinux 0x176d3c57 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x177e236c genl_register_ops +EXPORT_SYMBOL vmlinux 0x178558f8 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x178730a6 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x1789bfc8 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x17aa254a tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x17b39019 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x17c34405 tcf_em_register +EXPORT_SYMBOL vmlinux 0x17c7e56b xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e5f08a dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1820e67d ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x182d30f4 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18435b50 vfs_getattr +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x1855088e page_symlink +EXPORT_SYMBOL vmlinux 0x1855a0ae rt6_lookup +EXPORT_SYMBOL vmlinux 0x1866b0e0 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x186a7931 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x18716545 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x18777861 fb_set_var +EXPORT_SYMBOL vmlinux 0x188f6ad4 dquot_disable +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18a94385 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x18b0b80c elv_rb_find +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x190ab2b7 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x1913fda6 lock_may_write +EXPORT_SYMBOL vmlinux 0x1929efe2 journal_clear_err +EXPORT_SYMBOL vmlinux 0x1932622a scm_fp_dup +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x1940a44a directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x19683990 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x199e20a5 proto_register +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b16064 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a01b4ac mpage_readpages +EXPORT_SYMBOL vmlinux 0x1a2d3a5b mpage_readpage +EXPORT_SYMBOL vmlinux 0x1a3b76fc posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa89aef ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1c324 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x1ad4c78d blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b09ffcd dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x1b2bfcf8 skb_pull +EXPORT_SYMBOL vmlinux 0x1b54bebb register_key_type +EXPORT_SYMBOL vmlinux 0x1b5ab808 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6c897b prepare_creds +EXPORT_SYMBOL vmlinux 0x1b744f8b bio_split +EXPORT_SYMBOL vmlinux 0x1b7f1dd7 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x1b8b3ab3 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1b9feb87 d_delete +EXPORT_SYMBOL vmlinux 0x1bd2263d pagecache_write_end +EXPORT_SYMBOL vmlinux 0x1be9dc3a setup_arg_pages +EXPORT_SYMBOL vmlinux 0x1beb0d31 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x1bf369f9 kthread_bind +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c3d6cb2 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x1c4b2a91 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x1c5bdfbc dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x1c663b38 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1cb999a9 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d300be1 input_register_handle +EXPORT_SYMBOL vmlinux 0x1d4aa8f9 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x1d6d8abe __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x1da8d644 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x1daa709d f_setown +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc593c0 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x1dc5cc4a xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e26ef4f dev_remove_pack +EXPORT_SYMBOL vmlinux 0x1e2e427f cpumask_next_and +EXPORT_SYMBOL vmlinux 0x1e55dd52 uart_register_driver +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7bcc2e i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x1e867c6c scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x1e88b9e9 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ec0d4e6 kernel_connect +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f0f4d82 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x1f2d63c5 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x1f3a4f9c setup_new_exec +EXPORT_SYMBOL vmlinux 0x1f4c5d76 bh_submit_read +EXPORT_SYMBOL vmlinux 0x1f5ab1a7 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x1f5e46c1 get_fs_type +EXPORT_SYMBOL vmlinux 0x1f8e1d69 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x1fc12356 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x1fc8051b i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x1fc90cbd register_quota_format +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd62055 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x2039bdaf km_policy_expired +EXPORT_SYMBOL vmlinux 0x206674c0 skb_append +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x207e107e register_cdrom +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20a5b848 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20f180dd alloc_fcdev +EXPORT_SYMBOL vmlinux 0x211ff1f1 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x2125b6d8 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x21591492 vfs_unlink +EXPORT_SYMBOL vmlinux 0x215e65f0 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2191cd25 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x21cb5f39 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x21d7fa34 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21f2b445 simple_statfs +EXPORT_SYMBOL vmlinux 0x220bd2b7 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x220da6e2 simple_release_fs +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22332918 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x223f84d4 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x224ac50f __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x224ce0f3 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x224f58fc sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x225ab156 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x22624145 audit_log_format +EXPORT_SYMBOL vmlinux 0x2268e6de elv_abort_queue +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2271b562 file_fsync +EXPORT_SYMBOL vmlinux 0x22772c34 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x227fcd85 mdiobus_read +EXPORT_SYMBOL vmlinux 0x228728d4 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a48c9a mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c9e734 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x22d73c78 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x22e08ce3 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x22e1d6fc block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x23254750 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x23284ca6 read_cache_pages +EXPORT_SYMBOL vmlinux 0x232856a2 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x2335cb95 tcf_register_action +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x234f85f4 abort_creds +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x2384757b dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x238791fd __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x23abbb6c nonseekable_open +EXPORT_SYMBOL vmlinux 0x23b61ab1 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x23b99e92 node_states +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23f01d57 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24011506 elv_rb_del +EXPORT_SYMBOL vmlinux 0x2424c95f jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x242acbca __scsi_add_device +EXPORT_SYMBOL vmlinux 0x2436313f pci_disable_device +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24508446 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x247ff471 touch_atime +EXPORT_SYMBOL vmlinux 0x2482f497 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x24d433c8 dev_addr_del +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x2513fb7d __ht_create_irq +EXPORT_SYMBOL vmlinux 0x251e6cf4 blk_peek_request +EXPORT_SYMBOL vmlinux 0x252044d6 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x252e0f22 __free_pages +EXPORT_SYMBOL vmlinux 0x25481661 generic_make_request +EXPORT_SYMBOL vmlinux 0x2578e8df acpi_bus_add +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25a18a20 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x25a34959 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x25e5939e fb_set_suspend +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x25f1e228 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x25f54003 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x26061d11 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x261ad215 proc_mkdir +EXPORT_SYMBOL vmlinux 0x2637d513 __seq_open_private +EXPORT_SYMBOL vmlinux 0x26467b22 iget_failed +EXPORT_SYMBOL vmlinux 0x264e0a74 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x265d85be blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268e4f8e scsi_execute +EXPORT_SYMBOL vmlinux 0x269b69a6 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e1ec74 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x271d8211 write_cache_pages +EXPORT_SYMBOL vmlinux 0x2721ef72 d_path +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x273453fa single_release +EXPORT_SYMBOL vmlinux 0x274c203d netif_carrier_on +EXPORT_SYMBOL vmlinux 0x274e1e92 register_nls +EXPORT_SYMBOL vmlinux 0x27515bb4 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x2770b6d3 km_policy_notify +EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x277bc0b0 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279ec90e skb_copy_expand +EXPORT_SYMBOL vmlinux 0x27a7332b fifo_set_limit +EXPORT_SYMBOL vmlinux 0x27b7aaf0 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x285455d1 vfs_fsync +EXPORT_SYMBOL vmlinux 0x285599eb qdisc_reset +EXPORT_SYMBOL vmlinux 0x28599d80 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x28693dcc mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x28733834 register_qdisc +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28e9934c find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x28eaf133 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x28ffeb03 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x2911ea4c kobject_add +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x293f383b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29682cb2 tcp_check_req +EXPORT_SYMBOL vmlinux 0x29860f6a blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x298a6aee hippi_type_trans +EXPORT_SYMBOL vmlinux 0x29a71db6 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x29b1e54b generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29e2cb07 cdrom_open +EXPORT_SYMBOL vmlinux 0x2a0de6a6 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x2a14a578 generic_permission +EXPORT_SYMBOL vmlinux 0x2a152a75 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x2a1c996c proto_unregister +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a45202d __dquot_free_space +EXPORT_SYMBOL vmlinux 0x2a4ddbce kernel_sendpage +EXPORT_SYMBOL vmlinux 0x2a50a0c1 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x2a57778f pci_find_capability +EXPORT_SYMBOL vmlinux 0x2a5e72e3 icmpv6_send +EXPORT_SYMBOL vmlinux 0x2a85d7cd d_move +EXPORT_SYMBOL vmlinux 0x2a9bc96f get_sb_nodev +EXPORT_SYMBOL vmlinux 0x2accdaa4 pci_find_bus +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b200d96 vmap +EXPORT_SYMBOL vmlinux 0x2b25ded1 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x2b2718f7 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x2b457c75 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x2b92c59d tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2be3c340 journal_load +EXPORT_SYMBOL vmlinux 0x2bef4fdb dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c4031bb dev_driver_string +EXPORT_SYMBOL vmlinux 0x2c606929 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x2c82294d dump_trace +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2cc92161 devm_free_irq +EXPORT_SYMBOL vmlinux 0x2cd6420e filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x2cd9d683 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x2cde19f1 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x2ce1dca5 dm_table_get +EXPORT_SYMBOL vmlinux 0x2ce9e966 file_remove_suid +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d193385 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d5e23e5 udp_disconnect +EXPORT_SYMBOL vmlinux 0x2d68b4b5 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x2d8493f7 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2da131fe jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x2da78d57 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd2de5d tty_unthrottle +EXPORT_SYMBOL vmlinux 0x2debf485 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e06111d cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2e250f20 block_commit_write +EXPORT_SYMBOL vmlinux 0x2e27fbc9 tty_port_open +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e5713ca dev_mc_flush +EXPORT_SYMBOL vmlinux 0x2e587455 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x2ea6ccd9 __nla_put +EXPORT_SYMBOL vmlinux 0x2eb242a2 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x2eb4717e d_find_alias +EXPORT_SYMBOL vmlinux 0x2ed26ea7 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x2eefe368 mnt_unpin +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f2386ed vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x2f2e3d67 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x2f3933de jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x2f3be85a blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x2f4deeb4 inet6_release +EXPORT_SYMBOL vmlinux 0x2f991ed0 fsync_bdev +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fe1c4fb bio_phys_segments +EXPORT_SYMBOL vmlinux 0x2fea718f nf_hook_slow +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x30300142 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x303593a2 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x3048c88e unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x30612cd3 get_user_pages +EXPORT_SYMBOL vmlinux 0x307501b4 stop_tty +EXPORT_SYMBOL vmlinux 0x308077b2 sk_dst_check +EXPORT_SYMBOL vmlinux 0x3083ebdd vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x30adaf9c __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310a0990 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x311f9780 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x3136a3cf tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3148b2ba tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x315d4193 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x31708622 dquot_alloc +EXPORT_SYMBOL vmlinux 0x317772e7 redraw_screen +EXPORT_SYMBOL vmlinux 0x3182bd74 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x31a5d085 ether_setup +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31c569c1 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x31c57706 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x31e6b376 d_add_ci +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc +EXPORT_SYMBOL vmlinux 0x321374f2 nla_reserve +EXPORT_SYMBOL vmlinux 0x32146298 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x3231e275 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x32348592 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x323b211b dev_uc_init +EXPORT_SYMBOL vmlinux 0x323b4c72 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x32450ef3 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x32523bb2 blk_end_request +EXPORT_SYMBOL vmlinux 0x3257d4b3 pid_task +EXPORT_SYMBOL vmlinux 0x326236a8 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x326616d2 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x3269fb7c path_put +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x3294013f skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x32c8ae55 __scm_destroy +EXPORT_SYMBOL vmlinux 0x32f323f8 mpage_writepage +EXPORT_SYMBOL vmlinux 0x330b268d register_netdev +EXPORT_SYMBOL vmlinux 0x333140b0 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x336130a5 unregister_console +EXPORT_SYMBOL vmlinux 0x336b7c86 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x336fdaab netif_carrier_off +EXPORT_SYMBOL vmlinux 0x33831bdd blk_end_request_all +EXPORT_SYMBOL vmlinux 0x338e1e09 freeze_super +EXPORT_SYMBOL vmlinux 0x3398198f deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x33b7d76f agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33b88cf7 __elv_add_request +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33d99fac inode_needs_sync +EXPORT_SYMBOL vmlinux 0x33e08aeb simple_link +EXPORT_SYMBOL vmlinux 0x33f8d41e dmam_pool_create +EXPORT_SYMBOL vmlinux 0x3410e25e fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x342c128b xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x346dea03 agp_flush_chipset +EXPORT_SYMBOL vmlinux 0x349bf360 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34d2117a tc_classify +EXPORT_SYMBOL vmlinux 0x35063831 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x3519f689 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x353427c9 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x35397a15 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x353eaac1 sync_inode +EXPORT_SYMBOL vmlinux 0x3582ed17 vfs_stat +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35bc1fdf inetdev_by_index +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c57aa4 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x35c73306 elv_rb_add +EXPORT_SYMBOL vmlinux 0x35ceb9f3 ilookup +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x361fd6fa fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x3641cfa1 scsi_put_command +EXPORT_SYMBOL vmlinux 0x36532577 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x36745edd simple_setattr +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36a5a7bc pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x3711745c bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x372db1f6 seq_lseek +EXPORT_SYMBOL vmlinux 0x373bb944 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37b4e6ae writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x37b50e2a tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37bfc02e sock_i_ino +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x3820afee napi_gro_receive +EXPORT_SYMBOL vmlinux 0x3831fb19 do_splice_to +EXPORT_SYMBOL vmlinux 0x383f376a dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x3855c876 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x386447be xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x386d4749 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x38884dbe agp_put_bridge +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a2e0a5 send_sig +EXPORT_SYMBOL vmlinux 0x38b3cd85 cdev_index +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c45022 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x38c704f1 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x38d9dc5c padata_add_cpu +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x39060d05 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x3920dc7a fail_migrate_page +EXPORT_SYMBOL vmlinux 0x392774ed tty_unregister_device +EXPORT_SYMBOL vmlinux 0x39348de8 skb_dequeue +EXPORT_SYMBOL vmlinux 0x395d2ef0 mddev_congested +EXPORT_SYMBOL vmlinux 0x396ac4f2 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x39788392 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x397f8499 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x398e147e genphy_config_advert +EXPORT_SYMBOL vmlinux 0x39974e7d page_follow_link_light +EXPORT_SYMBOL vmlinux 0x39c24e5b i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x39cab423 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x39edd4c2 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a3d18f0 sock_no_bind +EXPORT_SYMBOL vmlinux 0x3a433b07 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3acfc416 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x3ae00ded kthread_create +EXPORT_SYMBOL vmlinux 0x3ae7d41f __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove +EXPORT_SYMBOL vmlinux 0x3b2beaba ppp_unit_number +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b39160e vm_map_ram +EXPORT_SYMBOL vmlinux 0x3b4cd8fb input_release_device +EXPORT_SYMBOL vmlinux 0x3b5094b5 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x3b76b061 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x3bb28da9 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x3bb3c3fb inet_frag_kill +EXPORT_SYMBOL vmlinux 0x3bb90193 put_tty_driver +EXPORT_SYMBOL vmlinux 0x3bbd4ace pnp_device_attach +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bee0175 node_data +EXPORT_SYMBOL vmlinux 0x3c1950d4 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c5c3cf5 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x3c624707 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb14a0c tty_devnum +EXPORT_SYMBOL vmlinux 0x3cb35507 tty_hangup +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf89d7f cpu_info +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d4ca89e kdb_current_task +EXPORT_SYMBOL vmlinux 0x3d573f5d abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d93665d uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x3d9d086a __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3dcccca6 simple_write_end +EXPORT_SYMBOL vmlinux 0x3df2c1ee ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x3df6ed7d spi_release_transport +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e2063f4 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e3e73fe truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x3e4221cb splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e4826a5 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x3e5851b6 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x3e8739bf netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e8ce20f pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ec60e8a input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x3ecc3e16 x86_hyper +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eec3341 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f2f24eb blk_put_request +EXPORT_SYMBOL vmlinux 0x3f3bc1c4 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5e7b61 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f6a4d78 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x3f78b38f keyring_clear +EXPORT_SYMBOL vmlinux 0x3f7ab56e sock_release +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fbf3b60 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x3fc7627d inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x3fded9e8 tty_port_close +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x406b9abf blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a02a41 bioset_create +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a53ebf dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x40ab1b0b kernel_getpeername +EXPORT_SYMBOL vmlinux 0x40c0737c nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40f7a31f sk_filter +EXPORT_SYMBOL vmlinux 0x40fc5f30 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4118d405 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41408088 kobject_put +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414dab0c jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x415243a1 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4184e77b phy_driver_register +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x41d33e29 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x41fd82d4 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42218dee eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x427061fb unbind_con_driver +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a22805 dentry_unhash +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42ace462 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42d58eea scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x42d9c841 unlock_super +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43099626 pci_release_region +EXPORT_SYMBOL vmlinux 0x4324aa51 lock_may_read +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43552b03 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x43562d06 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4378853b compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x43791168 file_update_time +EXPORT_SYMBOL vmlinux 0x439d7084 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43be35f3 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x43ca7c06 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x43d69989 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x43db0c08 llc_sap_close +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x443a8a3f tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x444e3515 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x446bdee7 elevator_exit +EXPORT_SYMBOL vmlinux 0x4487eaf0 sock_no_poll +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b1ed53 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x44b75a90 __kfree_skb +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c59498 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x4510aa17 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x451799e9 dquot_initialize +EXPORT_SYMBOL vmlinux 0x452b12de blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x452cfc24 agp_enable +EXPORT_SYMBOL vmlinux 0x452eb25f neigh_table_clear +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x45558de5 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x455a49e4 make_EII_client +EXPORT_SYMBOL vmlinux 0x4565d3d9 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x45680205 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x457d0652 idr_remove_all +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45c6c20e page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x45d0782f pneigh_lookup +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x461b0376 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x464ce151 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467b0f08 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x468d1fab inode_setattr +EXPORT_SYMBOL vmlinux 0x468e2169 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x468e4796 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46d350fe tr_type_trans +EXPORT_SYMBOL vmlinux 0x46ec2b12 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x4701e90c d_genocide +EXPORT_SYMBOL vmlinux 0x4709ad8d phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0x4717d1b8 dma_find_channel +EXPORT_SYMBOL vmlinux 0x47425f8c pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x474c1557 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x4761699c sock_wfree +EXPORT_SYMBOL vmlinux 0x47808dce jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x4799479c pci_dev_get +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47a0989c get_phy_id +EXPORT_SYMBOL vmlinux 0x47a56ac7 request_firmware +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47dfba81 lock_super +EXPORT_SYMBOL vmlinux 0x47e64779 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x47eacec5 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x480bd6bb kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x48192ebe iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x483fc2a0 kill_pgrp +EXPORT_SYMBOL vmlinux 0x48513002 xfrm_input +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485bd757 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x48631f3a prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x48826e58 xrlim_allow +EXPORT_SYMBOL vmlinux 0x48cf17d8 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x48d65642 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x48e493e8 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x492ab060 follow_pfn +EXPORT_SYMBOL vmlinux 0x493c05f4 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x49463478 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49607438 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x4961cd4b padata_start +EXPORT_SYMBOL vmlinux 0x498fd593 llc_sap_find +EXPORT_SYMBOL vmlinux 0x499a6ef4 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49d58b96 single_open +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49eb1845 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x4a288c01 blk_get_request +EXPORT_SYMBOL vmlinux 0x4a33417b dget_locked +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a45381b jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x4a5199e5 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x4a6da67a open_by_devnum +EXPORT_SYMBOL vmlinux 0x4a7b58ae __bforget +EXPORT_SYMBOL vmlinux 0x4a928944 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad6423d icmp_send +EXPORT_SYMBOL vmlinux 0x4addd94f scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x4ae79dc9 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x4af0f5c0 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b2ff1db thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x4b497ccf security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x4b4e3e99 dquot_transfer +EXPORT_SYMBOL vmlinux 0x4b765df5 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x4b92a13f scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bc5d2b5 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x4bc96650 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x4bcbfd74 pipe_to_file +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1c7562 agp_create_memory +EXPORT_SYMBOL vmlinux 0x4c1cfbe5 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x4c31b97a bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c7461ea I_BDEV +EXPORT_SYMBOL vmlinux 0x4c774151 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x4c9110f5 tty_mutex +EXPORT_SYMBOL vmlinux 0x4c95e40f dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x4cab55ef scsi_ioctl +EXPORT_SYMBOL vmlinux 0x4cacdc94 unlock_rename +EXPORT_SYMBOL vmlinux 0x4cb2669b loop_register_transfer +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cfb9b6b i2c_use_client +EXPORT_SYMBOL vmlinux 0x4d0c47e9 cont_write_begin +EXPORT_SYMBOL vmlinux 0x4d1cf1bc cdrom_release +EXPORT_SYMBOL vmlinux 0x4d552e61 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x4d5cafe6 ip_fragment +EXPORT_SYMBOL vmlinux 0x4d63b6ae audit_log_start +EXPORT_SYMBOL vmlinux 0x4d8970e1 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dc9030b have_submounts +EXPORT_SYMBOL vmlinux 0x4dd9e807 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e26a459 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e436701 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e6f023c dm_snap_cow +EXPORT_SYMBOL vmlinux 0x4e782b92 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x4e99c48f cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x4ebfa52c xfrm_state_add +EXPORT_SYMBOL vmlinux 0x4ec3838a journal_force_commit +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f29d68d unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt +EXPORT_SYMBOL vmlinux 0x4f5be955 mmc_free_host +EXPORT_SYMBOL vmlinux 0x4f647976 __pagevec_release +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f7ef5ca neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4fb59ecb make_bad_inode +EXPORT_SYMBOL vmlinux 0x4fc667a6 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505873f4 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x505be570 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x5061c4de nf_register_hook +EXPORT_SYMBOL vmlinux 0x50621198 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x50ab2715 __bio_clone +EXPORT_SYMBOL vmlinux 0x50b2534d blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x50ce65a3 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x50e01b50 d_instantiate +EXPORT_SYMBOL vmlinux 0x5102ae3c nobh_write_begin +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5127c241 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x5179c6eb mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL vmlinux 0x5191db37 scsi_host_get +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e56146 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x51e81bb9 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x51fef6b8 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5202cc1f kill_fasync +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x521eb71e dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x52655b5a __f_setown +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x5294aaeb otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52b93bd3 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52ddcc2d sock_i_uid +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x530708e4 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53126e42 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x535d2b1e register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x53702afa xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53a02924 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x53a565fc compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53d6e4d2 cad_pid +EXPORT_SYMBOL vmlinux 0x53e00d30 generic_show_options +EXPORT_SYMBOL vmlinux 0x53e4c607 bdevname +EXPORT_SYMBOL vmlinux 0x53e51607 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x53ff814f blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542ce6b7 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x543e9ed2 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x546be192 journal_extend +EXPORT_SYMBOL vmlinux 0x547184e9 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x547831ab i8042_install_filter +EXPORT_SYMBOL vmlinux 0x54832714 mutex_unlock +EXPORT_SYMBOL vmlinux 0x54972f0f inet_sendmsg +EXPORT_SYMBOL vmlinux 0x54a6ec59 dquot_file_open +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ffa696 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x551f67d8 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x5562d57d padata_do_serial +EXPORT_SYMBOL vmlinux 0x5594a724 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55a15bba rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x55bf6a56 pci_choose_state +EXPORT_SYMBOL vmlinux 0x55dded25 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x55e1bad6 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x55ef6b8d padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x55f89819 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x56116151 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x56209471 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56432394 user_revoke +EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new +EXPORT_SYMBOL vmlinux 0x569eadf4 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cf5818 vfs_statfs +EXPORT_SYMBOL vmlinux 0x56d8e526 serio_rescan +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56f092ef invalidate_bdev +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x56fc650f mutex_lock +EXPORT_SYMBOL vmlinux 0x570c67f0 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573d2646 input_flush_device +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x576f9ae1 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x5789ba4d __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x57937126 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57b85d36 sg_miter_next +EXPORT_SYMBOL vmlinux 0x57cfe6bd kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57df6b63 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x57ea3c8c dma_pool_create +EXPORT_SYMBOL vmlinux 0x58020f99 kfree_skb +EXPORT_SYMBOL vmlinux 0x582c1af0 journal_init_inode +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x58485d42 sock_no_accept +EXPORT_SYMBOL vmlinux 0x5850140e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x58648407 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x58b519bf scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x58bc1d8c i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x58d979ea pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x58da4eb7 block_read_full_page +EXPORT_SYMBOL vmlinux 0x58db1437 dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x58e29a82 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x58fd6e6c pci_pme_capable +EXPORT_SYMBOL vmlinux 0x59101cf6 module_layout +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x592ca7c7 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x5930e9f7 pci_target_state +EXPORT_SYMBOL vmlinux 0x593290e3 seq_escape +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x59494559 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5957c1f3 get_disk +EXPORT_SYMBOL vmlinux 0x596cc13d __alloc_skb +EXPORT_SYMBOL vmlinux 0x59adb5dd inet_put_port +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d6d672 scsi_free_command +EXPORT_SYMBOL vmlinux 0x5a016611 journal_forget +EXPORT_SYMBOL vmlinux 0x5a09ace1 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x5a1c6680 llc_sap_open +EXPORT_SYMBOL vmlinux 0x5a23260b __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a68d0fc inode_init_owner +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7cae2c inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x5a99bf2f netif_napi_del +EXPORT_SYMBOL vmlinux 0x5aa68862 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ad08562 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x5ad15309 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x5af3827d dqput +EXPORT_SYMBOL vmlinux 0x5b25583e tty_free_termios +EXPORT_SYMBOL vmlinux 0x5b4240b9 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b532797 scsi_add_device +EXPORT_SYMBOL vmlinux 0x5b5a2a32 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5bc3aad2 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x5c0fe0bd ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x5c328565 simple_fill_super +EXPORT_SYMBOL vmlinux 0x5c3efa7e skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c59b43c inet_shutdown +EXPORT_SYMBOL vmlinux 0x5c5af7b5 pci_bus_type +EXPORT_SYMBOL vmlinux 0x5c740736 framebuffer_release +EXPORT_SYMBOL vmlinux 0x5c97f343 generic_setxattr +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5ca41392 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x5ca9ddd1 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5cd56d3c ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x5cd61b45 d_lookup +EXPORT_SYMBOL vmlinux 0x5cdda7c2 pci_dev_put +EXPORT_SYMBOL vmlinux 0x5cfc13c8 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x5d06f4fe generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d22ef65 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x5d264469 init_buffer +EXPORT_SYMBOL vmlinux 0x5d612689 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5da76088 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5db527cb complete_request_key +EXPORT_SYMBOL vmlinux 0x5dc43223 idr_pre_get +EXPORT_SYMBOL vmlinux 0x5dd22b5c ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x5de05b06 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e1fff91 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x5e27a508 vc_resize +EXPORT_SYMBOL vmlinux 0x5e27e01a inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x5e407d53 sk_free +EXPORT_SYMBOL vmlinux 0x5e43fe85 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x5e5ab423 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x5e7cda84 security_path_truncate +EXPORT_SYMBOL vmlinux 0x5e90633f set_device_ro +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9e074a scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x5eb3126d generic_write_checks +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f1753f8 __find_get_block +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f77df0a scsi_remove_device +EXPORT_SYMBOL vmlinux 0x5f7a6a03 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x5f804c75 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x5f8dfa2c tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x5f97009c tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x5fa14b79 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x5fa4ecef eth_change_mtu +EXPORT_SYMBOL vmlinux 0x5fbc35e2 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x5fcbd151 set_anon_super +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fd2d3d2 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x5fd50675 arp_create +EXPORT_SYMBOL vmlinux 0x5fdf4a4b bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x5ff4b7bc posix_lock_file +EXPORT_SYMBOL vmlinux 0x5ff5de61 sget +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6015bb09 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x6054ede7 scsi_register +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x605e65eb hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x605e7d6e tty_throttle +EXPORT_SYMBOL vmlinux 0x6073299c tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x60795836 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x607bf1dc ppp_register_channel +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60c64e5d scsi_device_get +EXPORT_SYMBOL vmlinux 0x60edfbc9 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6124cfd2 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61445330 seq_read +EXPORT_SYMBOL vmlinux 0x614a9529 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x616ff566 md_barrier_request +EXPORT_SYMBOL vmlinux 0x617873d2 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x61838e40 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d67908 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x61ded587 ll_rw_block +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x622a7b94 simple_setsize +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623b5d6c arp_find +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x6276e866 seq_puts +EXPORT_SYMBOL vmlinux 0x627b2305 backlight_device_register +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628ca8ba agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x629f2b47 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0x62df904c xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x62fcf9e4 datagram_poll +EXPORT_SYMBOL vmlinux 0x63015058 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x6301da38 generic_setattr +EXPORT_SYMBOL vmlinux 0x6312eae0 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63a564b7 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x63b5e671 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x63d5285b rfkill_destroy +EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efaa87 log_wait_commit +EXPORT_SYMBOL vmlinux 0x63f5e6a9 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640a059b sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x6424d7dd set_create_files_as +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6449b3be get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64715536 kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x647cc74a pci_pme_active +EXPORT_SYMBOL vmlinux 0x64936110 write_one_page +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649bd10d phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x64b14fd2 seq_release_private +EXPORT_SYMBOL vmlinux 0x64b306f5 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64eb6429 read_dev_sector +EXPORT_SYMBOL vmlinux 0x64ede412 km_state_notify +EXPORT_SYMBOL vmlinux 0x64f8b6fb mdiobus_register +EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651b4ce2 is_container_init +EXPORT_SYMBOL vmlinux 0x6539002e unlock_buffer +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6553daff uart_resume_port +EXPORT_SYMBOL vmlinux 0x65574dc6 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x656347ea inode_get_bytes +EXPORT_SYMBOL vmlinux 0x658f01af blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x65b30c2c inet_frags_init +EXPORT_SYMBOL vmlinux 0x65c82f02 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x65e3bba9 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x65e71564 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x6629ef8e max8925_set_bits +EXPORT_SYMBOL vmlinux 0x66466be9 get_io_context +EXPORT_SYMBOL vmlinux 0x66497bfa inode_add_bytes +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66d2ae73 compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x66e071f5 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x66e1d858 find_lock_page +EXPORT_SYMBOL vmlinux 0x66f17077 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673995e7 kill_block_super +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6743f447 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x674d75aa blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x67637124 kobject_get +EXPORT_SYMBOL vmlinux 0x678beed3 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x678f46d5 phy_device_create +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67d5494f sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x67ee31ea eth_header_cache +EXPORT_SYMBOL vmlinux 0x680c730e i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x682d0ac1 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x685cf233 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68909040 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x68bd123b inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x68f2f199 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x6914926b generic_write_sync +EXPORT_SYMBOL vmlinux 0x6943de01 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x694d1427 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697e3a6c alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69921202 ida_init +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69b2919d fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e5e914 rwsem_wake +EXPORT_SYMBOL vmlinux 0x69f3eec6 dev_close +EXPORT_SYMBOL vmlinux 0x69ff9578 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a1131db unload_nls +EXPORT_SYMBOL vmlinux 0x6a23ca92 phy_detach +EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a611345 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x6a717971 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6ac1449e llc_add_pack +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acd396d misc_register +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ad8c046 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae616c8 genphy_resume +EXPORT_SYMBOL vmlinux 0x6b0d876c kset_register +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b21cf90 __nla_reserve +EXPORT_SYMBOL vmlinux 0x6b29c1bd sk_reset_timer +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b32b202 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b9795ca slow_work_register_user +EXPORT_SYMBOL vmlinux 0x6b9c475f inet_recvmsg +EXPORT_SYMBOL vmlinux 0x6ba6d776 give_up_console +EXPORT_SYMBOL vmlinux 0x6bbfc3f4 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bd0d582 kernel_accept +EXPORT_SYMBOL vmlinux 0x6bd60af1 vfs_link +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bec5687 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6bfb834d dquot_drop +EXPORT_SYMBOL vmlinux 0x6c2afef7 register_netdevice +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c3dd441 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c706a75 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x6c70e3f1 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x6c799b15 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x6ca29007 key_put +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6cd79558 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x6ce58142 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x6cfc44db console_stop +EXPORT_SYMBOL vmlinux 0x6d01f3e8 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x6d0e3039 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d70f3e0 load_nls +EXPORT_SYMBOL vmlinux 0x6d9a4e86 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x6dade432 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e21b365 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x6e4ee34b generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x6e5f791a vfs_follow_link +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x6e8794e3 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x6e8b2618 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eb3446e __blk_end_request +EXPORT_SYMBOL vmlinux 0x6f0d2c3a alloc_pages_current +EXPORT_SYMBOL vmlinux 0x6f10d52f tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x6f2d5ac8 bio_add_page +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f4e221f eth_type_trans +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f59ba4d scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x6f8359f2 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6faae914 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x6fbbc35c consume_skb +EXPORT_SYMBOL vmlinux 0x6fc071b7 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70521d7a dquot_commit +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70765d1c vfs_lstat +EXPORT_SYMBOL vmlinux 0x707c7ed8 __dst_free +EXPORT_SYMBOL vmlinux 0x7086e8cc mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x70907a28 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x7093cce4 sock_init_data +EXPORT_SYMBOL vmlinux 0x70a12e5d do_SAK +EXPORT_SYMBOL vmlinux 0x70a39681 ip_defrag +EXPORT_SYMBOL vmlinux 0x70b3984c mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c01fc8 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x70c510eb lookup_one_len +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e0d61f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x70fc7c82 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x71242d7d journal_wipe +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7135b0f9 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x714ec4c4 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x715498da follow_down +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71721640 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x718fafe9 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71b3a5b0 do_sync_read +EXPORT_SYMBOL vmlinux 0x71bb41e4 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x71d294cd bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x71da3cd1 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x71dd0087 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x71f19f90 serio_open +EXPORT_SYMBOL vmlinux 0x71f66c26 dev_open +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x721c8ace pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x7223194b compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x722e7d19 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x723f85b5 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x724665ba input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x7257c4f9 __register_chrdev +EXPORT_SYMBOL vmlinux 0x726fdb93 vga_get +EXPORT_SYMBOL vmlinux 0x727c98b4 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72ba1191 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f6612c jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x730def15 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x73252f64 seq_open_private +EXPORT_SYMBOL vmlinux 0x733a1093 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x733d6f17 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x7346a340 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7376a02a tc_classify_compat +EXPORT_SYMBOL vmlinux 0x737a0d83 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x737c1563 put_page +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x7388ba54 submit_bio +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x738dd132 padata_alloc +EXPORT_SYMBOL vmlinux 0x7392e778 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x739e1998 is_bad_inode +EXPORT_SYMBOL vmlinux 0x73a77add simple_transaction_release +EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x73da80ea cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x73ef13b3 generic_write_end +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740b0a5a journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x741531ca lock_rename +EXPORT_SYMBOL vmlinux 0x742fe035 nla_append +EXPORT_SYMBOL vmlinux 0x743bfe73 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x74425e02 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x746272a0 set_security_override +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74df66df sk_run_filter +EXPORT_SYMBOL vmlinux 0x74e38f26 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x7546c24b cfb_imageblit +EXPORT_SYMBOL vmlinux 0x755d9639 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x75621ea7 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x7570b9d6 proc_create_data +EXPORT_SYMBOL vmlinux 0x7585fbb8 kernel_listen +EXPORT_SYMBOL vmlinux 0x75866cd8 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75d9e06f nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x75ecee3a vm_insert_page +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76114194 d_splice_alias +EXPORT_SYMBOL vmlinux 0x76279f2c netdev_state_change +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x763a6463 blk_rq_init +EXPORT_SYMBOL vmlinux 0x763c54ed pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x76716776 mmc_host_disable +EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x76811744 dev_mc_del +EXPORT_SYMBOL vmlinux 0x7688f5b2 vfs_symlink +EXPORT_SYMBOL vmlinux 0x76a400d9 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c4ecf5 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x76c6494b set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x76d20bb6 tcp_prot +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e8e24d ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x76ef61ea ip_route_input_common +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x76fa96ab bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x77216d29 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x775226e6 block_prepare_write +EXPORT_SYMBOL vmlinux 0x777ccdff netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x779d9e6d scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x77a71491 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x77ad8ec8 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d62dee ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77ff95f1 kill_anon_super +EXPORT_SYMBOL vmlinux 0x781ea1ce phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x782e80df acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x783aa21a llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x785a962e rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x785d6557 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x78611171 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x78800dd2 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x78b17b10 tcp_close +EXPORT_SYMBOL vmlinux 0x78dc6b04 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e831c4 free_buffer_head +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x7910b47e simple_transaction_get +EXPORT_SYMBOL vmlinux 0x791d95a9 force_sig +EXPORT_SYMBOL vmlinux 0x7947cd55 pci_get_device +EXPORT_SYMBOL vmlinux 0x794d300c task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x796de582 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x797ed7ab registered_fb +EXPORT_SYMBOL vmlinux 0x79a0ba53 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79e0434e remap_pfn_range +EXPORT_SYMBOL vmlinux 0x79f2f305 block_write_begin +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a69e544 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x7a931a0a kill_litter_super +EXPORT_SYMBOL vmlinux 0x7a953db9 d_alloc_root +EXPORT_SYMBOL vmlinux 0x7aa7bd38 pnp_is_active +EXPORT_SYMBOL vmlinux 0x7abc267b abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7adebea1 __lock_buffer +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7ae8d8ca skb_queue_head +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7b09427e qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b1aab88 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x7b3e32ba pci_restore_state +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b542089 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x7b555e2c agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b6f32c7 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x7b727151 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b91fc1e __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x7baaf310 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x7bb277a7 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x7bd06774 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c367649 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x7c41adad bdi_destroy +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c824820 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x7c83977e dev_mc_add +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cf272d9 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x7d087c75 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d4c47ba tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x7d6bb587 cpu_online_mask +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7da0a1d3 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x7da94f64 del_gendisk +EXPORT_SYMBOL vmlinux 0x7dba0471 dev_mc_init +EXPORT_SYMBOL vmlinux 0x7dc29817 get_sb_ns +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd490d3 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7df20b11 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x7dfa5b28 simple_readpage +EXPORT_SYMBOL vmlinux 0x7e1066cc xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x7e1cfc49 bio_init +EXPORT_SYMBOL vmlinux 0x7e311ad1 backlight_force_update +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e631304 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x7e69ef42 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x7e6f7594 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x7e7d9500 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7e9f708c dev_load +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7eba6564 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ef36aba blkdev_get +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f47a543 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x7f6aea7f key_revoke +EXPORT_SYMBOL vmlinux 0x7f743f2e elv_add_request +EXPORT_SYMBOL vmlinux 0x7f74d8b8 genphy_update_link +EXPORT_SYMBOL vmlinux 0x7f75194e simple_rmdir +EXPORT_SYMBOL vmlinux 0x7f78686a dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x7f9b7e8e __devm_request_region +EXPORT_SYMBOL vmlinux 0x7f9b811a kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x7fa1b62f __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7fa8aab2 cdev_alloc +EXPORT_SYMBOL vmlinux 0x7facf351 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x7fb04167 journal_update_format +EXPORT_SYMBOL vmlinux 0x7fb3f744 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x801b4d4a test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x801ce899 ip6_route_output +EXPORT_SYMBOL vmlinux 0x801f30e2 elv_register_queue +EXPORT_SYMBOL vmlinux 0x8055f5d2 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x8066b0ec dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x807bd923 neigh_destroy +EXPORT_SYMBOL vmlinux 0x80989c05 handle_sysrq +EXPORT_SYMBOL vmlinux 0x80a4c02b blk_init_queue +EXPORT_SYMBOL vmlinux 0x80cb51ff sockfd_lookup +EXPORT_SYMBOL vmlinux 0x80d5e41d pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x80dc6ac5 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x80f94724 get_phy_device +EXPORT_SYMBOL vmlinux 0x810233fa key_validate +EXPORT_SYMBOL vmlinux 0x8112b4e9 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x81504631 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x8191ae58 phy_attach +EXPORT_SYMBOL vmlinux 0x81c73e11 skb_unlink +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d8cfee dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8219a47e d_validate +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82529367 seq_printf +EXPORT_SYMBOL vmlinux 0x82555944 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82f28e63 genphy_read_status +EXPORT_SYMBOL vmlinux 0x830c4827 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x8344991f skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x836494bb tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x837443c7 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x837f1aa9 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83c312f5 neigh_for_each +EXPORT_SYMBOL vmlinux 0x83da44dc set_blocksize +EXPORT_SYMBOL vmlinux 0x83e9f653 add_disk +EXPORT_SYMBOL vmlinux 0x84165930 put_disk +EXPORT_SYMBOL vmlinux 0x8467d196 netdev_features_change +EXPORT_SYMBOL vmlinux 0x846e7d35 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x84844807 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84c0bbbc generic_readlink +EXPORT_SYMBOL vmlinux 0x84caf949 bdi_unregister +EXPORT_SYMBOL vmlinux 0x84d61413 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x84f2eb5d i2c_release_client +EXPORT_SYMBOL vmlinux 0x84fa0acc scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x854e399e tcp_ioctl +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups +EXPORT_SYMBOL vmlinux 0x859ad71e md_register_thread +EXPORT_SYMBOL vmlinux 0x859ad9e1 journal_init_dev +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x860a11cd agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x864202d3 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x864ec13e mmc_add_host +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86601b3b tty_port_init +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866754d5 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x86687e5f tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a1161a skb_find_text +EXPORT_SYMBOL vmlinux 0x86b2e09e __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat +EXPORT_SYMBOL vmlinux 0x86cc6ef3 pci_map_rom +EXPORT_SYMBOL vmlinux 0x86e3e643 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x876d9b69 mdiobus_free +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87748085 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87a88629 inode_change_ok +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x87d7aaeb pci_remove_bus +EXPORT_SYMBOL vmlinux 0x87e7a13f find_or_create_page +EXPORT_SYMBOL vmlinux 0x87eeb7aa rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x87f150ed i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x87ff2af8 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x883d5c0b qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x8860b310 simple_empty +EXPORT_SYMBOL vmlinux 0x886c8557 misc_deregister +EXPORT_SYMBOL vmlinux 0x888b0e85 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88f898a6 input_get_keycode +EXPORT_SYMBOL vmlinux 0x8900b220 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x89386484 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897ca7ba load_nls_default +EXPORT_SYMBOL vmlinux 0x8986045b set_bh_page +EXPORT_SYMBOL vmlinux 0x89d2821b skb_queue_purge +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89eadaa8 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x8a01259a dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x8a23329c names_cachep +EXPORT_SYMBOL vmlinux 0x8a29e829 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x8a46be2a dev_gro_receive +EXPORT_SYMBOL vmlinux 0x8a524e6e md_done_sync +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa7b8d2 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x8ac5390f pci_release_regions +EXPORT_SYMBOL vmlinux 0x8ace9264 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b31da53 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b936a87 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock +EXPORT_SYMBOL vmlinux 0x8bb80a97 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x8bc2655e agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x8bd1de49 inet_getname +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bda983e md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x8bdb80fa init_net +EXPORT_SYMBOL vmlinux 0x8be6d343 user_path_at +EXPORT_SYMBOL vmlinux 0x8c094db5 skb_push +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1ecd51 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x8c22e3d4 padata_free +EXPORT_SYMBOL vmlinux 0x8c40de22 register_exec_domain +EXPORT_SYMBOL vmlinux 0x8c55139d pci_set_master +EXPORT_SYMBOL vmlinux 0x8c84530b skb_checksum +EXPORT_SYMBOL vmlinux 0x8c9a988b kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x8c9e79d1 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x8ca46b71 pci_iomap +EXPORT_SYMBOL vmlinux 0x8cb03b93 d_alloc +EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x8ccfb9e0 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x8cf5d336 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x8d333caf km_state_expired +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x8d7ba4f3 journal_flush +EXPORT_SYMBOL vmlinux 0x8d8cea3d skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d99add1 generic_file_open +EXPORT_SYMBOL vmlinux 0x8d9f5cfe pci_select_bars +EXPORT_SYMBOL vmlinux 0x8da20bee block_write_end +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dcd9b5a agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x8deb7713 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x8df19b3b elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e14f05e vga_put +EXPORT_SYMBOL vmlinux 0x8e1e8833 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x8e1ec58d neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x8e2ab4f0 start_tty +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e5c18ea save_mount_options +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e851712 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x8e891a52 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x8e991c70 vfs_writev +EXPORT_SYMBOL vmlinux 0x8eae6046 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb8061b iget_locked +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ef206dc pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x8ef3f8f0 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x8f0c5673 sock_no_connect +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f25176a jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f30ef03 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x8f369977 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x8f3fb774 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f706cd5 __scm_send +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa42b33 netlink_ack +EXPORT_SYMBOL vmlinux 0x8fa6a4e8 md_write_end +EXPORT_SYMBOL vmlinux 0x8fa768f4 kthread_stop +EXPORT_SYMBOL vmlinux 0x8fb94750 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x8ff2c269 security_path_link +EXPORT_SYMBOL vmlinux 0x8ffa8f95 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9015ffb5 inet6_bind +EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x902879bd iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x90385e10 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x9046a18d xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x904d25ae journal_set_features +EXPORT_SYMBOL vmlinux 0x9059841f jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x905fcab6 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x906c8fe7 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x9076b295 md_error +EXPORT_SYMBOL vmlinux 0x907ec5c7 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a5a89b new_inode +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x9105842f phy_connect +EXPORT_SYMBOL vmlinux 0x91169917 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x9129503d thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x914e6be7 security_file_permission +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x9163fc66 mnt_pin +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy +EXPORT_SYMBOL vmlinux 0x91abd92a vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x91ac3fd4 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x91d1f269 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x91d56f8a ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x922a77e6 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x9244689d pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x92529024 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x926e1ff6 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x927078fc seq_open +EXPORT_SYMBOL vmlinux 0x9288858c elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x92896531 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x928da2d9 block_sync_page +EXPORT_SYMBOL vmlinux 0x92ca6156 tty_kref_put +EXPORT_SYMBOL vmlinux 0x92d15acb km_report +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x9304cdbd generic_setlease +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93355f20 drop_super +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x93466f0f ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x934c7eec pcim_pin_device +EXPORT_SYMBOL vmlinux 0x9360f52b register_filesystem +EXPORT_SYMBOL vmlinux 0x9369aebd input_open_device +EXPORT_SYMBOL vmlinux 0x936bc2d7 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x93780d61 block_truncate_page +EXPORT_SYMBOL vmlinux 0x938dce33 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0x93c5f16b pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9402891a dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x940b03cc blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x940b29ab console_start +EXPORT_SYMBOL vmlinux 0x9411da22 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x9417bc61 module_put +EXPORT_SYMBOL vmlinux 0x94292fa2 textsearch_register +EXPORT_SYMBOL vmlinux 0x943aeca9 journal_ack_err +EXPORT_SYMBOL vmlinux 0x945a2148 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x9472d40c task_nice +EXPORT_SYMBOL vmlinux 0x9492b386 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949a32a9 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x94b28b56 phy_device_register +EXPORT_SYMBOL vmlinux 0x94b3076d serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x94bcf365 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x950537c3 generic_fillattr +EXPORT_SYMBOL vmlinux 0x9529c7bc vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x954e2f28 dma_pool_free +EXPORT_SYMBOL vmlinux 0x956432b7 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x956ae612 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x9573a8c1 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x95855f4f bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x9588d7f3 security_path_chown +EXPORT_SYMBOL vmlinux 0x95ba11e9 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x95beb285 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d27b1d i2c_master_recv +EXPORT_SYMBOL vmlinux 0x961305ad sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x9616a5a9 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x961d04ac nla_put +EXPORT_SYMBOL vmlinux 0x961ffa45 agp_copy_info +EXPORT_SYMBOL vmlinux 0x9631b643 register_console +EXPORT_SYMBOL vmlinux 0x96566631 tty_vhangup +EXPORT_SYMBOL vmlinux 0x965904b3 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x9664c267 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x966ea7bf bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x96747bfa generic_listxattr +EXPORT_SYMBOL vmlinux 0x967f5e71 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x969a5ab5 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x96b8dfc5 skb_set_dev +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d16f4d find_vma +EXPORT_SYMBOL vmlinux 0x96e2e370 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x96fa7c72 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x97192f10 tty_set_operations +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x9740d488 dm_table_put +EXPORT_SYMBOL vmlinux 0x97514e03 skb_trim +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975c0271 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x978f8815 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x97943b07 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x97a58c57 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x97b62d29 fget +EXPORT_SYMBOL vmlinux 0x97b8a94b ip6_frag_match +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97e066de linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x97f92ce6 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x9804a6ee phy_attach_direct +EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next +EXPORT_SYMBOL vmlinux 0x9842f534 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x98492722 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x98506d1e dev_get_flags +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988b6123 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x988dc6cc tty_port_close_end +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x989d5aef find_inode_number +EXPORT_SYMBOL vmlinux 0x98d65232 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x990e4cd0 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x991a6adf __bread +EXPORT_SYMBOL vmlinux 0x99274a14 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x993c779a fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x9946a68c mark_page_accessed +EXPORT_SYMBOL vmlinux 0x996c3688 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99b0e528 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x99b5797d vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x99fd88d9 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x9a0230b4 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x9a05838e free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9a1098a7 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a6905f1 follow_up +EXPORT_SYMBOL vmlinux 0x9a82993b lookup_hash +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9ab62a74 update_region +EXPORT_SYMBOL vmlinux 0x9ad3dde8 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x9b134a9c key_unlink +EXPORT_SYMBOL vmlinux 0x9b371516 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b407e37 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b82fb54 agp_free_memory +EXPORT_SYMBOL vmlinux 0x9b8e67a4 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x9ba19327 copy_io_context +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bc7478c input_set_keycode +EXPORT_SYMBOL vmlinux 0x9bdf149e posix_test_lock +EXPORT_SYMBOL vmlinux 0x9bf33f29 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c043eeb ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c188974 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x9c1f2fe6 set_groups +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cadbd67 skb_put +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9cd76be4 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x9ce73765 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x9cef7dfc dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d11458b ida_get_new_above +EXPORT_SYMBOL vmlinux 0x9d119c5c ipv4_specific +EXPORT_SYMBOL vmlinux 0x9d253c38 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3587e5 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x9d390b3f journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3d7a6f napi_frags_skb +EXPORT_SYMBOL vmlinux 0x9d495a30 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x9d524347 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x9d9fe7f0 journal_restart +EXPORT_SYMBOL vmlinux 0x9da9e6d1 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x9dabe6e5 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9db6a5ed dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x9dd08427 create_proc_entry +EXPORT_SYMBOL vmlinux 0x9e32ac7e vfs_write +EXPORT_SYMBOL vmlinux 0x9e551d60 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x9e5e82ac jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x9e61eade scsi_block_requests +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e6561a4 vfs_read +EXPORT_SYMBOL vmlinux 0x9e688d40 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x9e68aad3 write_inode_now +EXPORT_SYMBOL vmlinux 0x9e68b30b __invalidate_device +EXPORT_SYMBOL vmlinux 0x9e772f47 vga_tryget +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9edbecae snprintf +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f26d3da padata_do_parallel +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2cf872 set_binfmt +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f5c62cb poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x9f5d5ba4 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x9f63fe7c inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f938e88 dentry_open +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9ff77c jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x9faa1e75 bio_endio +EXPORT_SYMBOL vmlinux 0x9fad7435 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x9fc3ea2d tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x9fc9edd5 blk_complete_request +EXPORT_SYMBOL vmlinux 0x9fccccf6 flush_signals +EXPORT_SYMBOL vmlinux 0x9fdbda49 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9fdd2a4d tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x9fddc066 block_write_full_page +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe6eba1 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x9feb9068 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x9ffed2d9 simple_getattr +EXPORT_SYMBOL vmlinux 0xa008fe03 km_query +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05a8f0f dev_trans_start +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa061bfa4 bd_release +EXPORT_SYMBOL vmlinux 0xa066fcee mmc_remove_host +EXPORT_SYMBOL vmlinux 0xa068eead swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xa0960488 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b1d971 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xa0ce13f4 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0fb455a dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa105008c journal_release_buffer +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1094e90 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa10aacd4 inode_init_once +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa15476f1 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xa154f7e7 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xa15cc30c blk_execute_rq +EXPORT_SYMBOL vmlinux 0xa17bf6d0 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c13c74 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1d8387c input_unregister_device +EXPORT_SYMBOL vmlinux 0xa1da5347 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xa1db93d6 noop_fsync +EXPORT_SYMBOL vmlinux 0xa2063311 security_path_rename +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa219532e skb_store_bits +EXPORT_SYMBOL vmlinux 0xa2391d9a acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xa254914c aio_put_req +EXPORT_SYMBOL vmlinux 0xa25d681a jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xa2695cef netlink_unicast +EXPORT_SYMBOL vmlinux 0xa2824030 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xa2a52af3 search_binary_handler +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2bf35fd compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xa2d87001 do_munmap +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa32870ab dst_destroy +EXPORT_SYMBOL vmlinux 0xa3321b7c block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa3474d91 __devm_release_region +EXPORT_SYMBOL vmlinux 0xa3474ee3 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35383ad textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa36b5c81 mb_cache_create +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa454385d tty_port_put +EXPORT_SYMBOL vmlinux 0xa4631584 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xa476141a posix_acl_permission +EXPORT_SYMBOL vmlinux 0xa47fb533 unregister_nls +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b5cf5f nf_afinfo +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4ef6d97 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xa52261c6 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xa52d01ca lro_receive_frags +EXPORT_SYMBOL vmlinux 0xa5366abe read_cache_page +EXPORT_SYMBOL vmlinux 0xa552d347 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xa5531e76 submit_bh +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5ad4eb1 cdev_init +EXPORT_SYMBOL vmlinux 0xa5b3576d dqget +EXPORT_SYMBOL vmlinux 0xa5b7ef42 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xa5c765d1 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xa600dd55 sock_rfree +EXPORT_SYMBOL vmlinux 0xa62a9372 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xa6376a78 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa65db866 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xa65e4297 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa691381d skb_free_datagram +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa7293083 scsi_get_command +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa744e8ca poll_initwait +EXPORT_SYMBOL vmlinux 0xa74f5e6a eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xa75c8218 dm_register_target +EXPORT_SYMBOL vmlinux 0xa7804c98 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xa7b40238 blk_make_request +EXPORT_SYMBOL vmlinux 0xa7c15ce9 inet_release +EXPORT_SYMBOL vmlinux 0xa7db8ba7 d_alloc_name +EXPORT_SYMBOL vmlinux 0xa7dc065f vc_cons +EXPORT_SYMBOL vmlinux 0xa80e2742 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa81f1020 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xa82ab34d elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xa85fb072 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8b3cbb1 mmc_request_done +EXPORT_SYMBOL vmlinux 0xa8c3ff41 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa9521252 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xa972f84f set_bdi_congested +EXPORT_SYMBOL vmlinux 0xa9816a93 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xa9a70cef __breadahead +EXPORT_SYMBOL vmlinux 0xa9a75050 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xa9acae4e inet_ioctl +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c0fb38 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xa9d7112a __serio_register_port +EXPORT_SYMBOL vmlinux 0xa9ddaee8 da903x_query_status +EXPORT_SYMBOL vmlinux 0xa9e19cbc otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xa9f52dcf mmc_release_host +EXPORT_SYMBOL vmlinux 0xaa2305d3 skb_split +EXPORT_SYMBOL vmlinux 0xaa3aa099 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xaa4b0820 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xaa4d697a get_super +EXPORT_SYMBOL vmlinux 0xaa72d1fa inet_csk_accept +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaef59b1 netpoll_setup +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaaf9f7a7 ps2_init +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab1d6b2f alloc_file +EXPORT_SYMBOL vmlinux 0xab5e79bb bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xab5fa5c8 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab665fbc prepare_binprm +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab8d5f1e __lru_cache_add +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xabba8cb6 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xabbde082 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xabc1dee6 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd7fd91 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xabdfb8d9 mmc_register_driver +EXPORT_SYMBOL vmlinux 0xabebc09e inet_bind +EXPORT_SYMBOL vmlinux 0xac03e879 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac41b06f tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xac4c6539 iunique +EXPORT_SYMBOL vmlinux 0xac4d7154 journal_start_commit +EXPORT_SYMBOL vmlinux 0xac4ed883 blk_init_tags +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac5b32da __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xac606127 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xac664db9 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac74f531 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xac763b3f fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0xac879797 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xac9b84f3 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xacbb574b generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacfe9d0b pci_request_region +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0d98a8 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad15e130 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xad1b950e try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xad206de7 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy +EXPORT_SYMBOL vmlinux 0xad2d26de cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xad2fc012 thaw_process +EXPORT_SYMBOL vmlinux 0xad3da71d pci_get_slot +EXPORT_SYMBOL vmlinux 0xad417648 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad512319 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xad72139f neigh_compat_output +EXPORT_SYMBOL vmlinux 0xad735a8c jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xad7fc62a tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xad92e7be scsi_target_resume +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadafa305 km_new_mapping +EXPORT_SYMBOL vmlinux 0xadd25215 inet_select_addr +EXPORT_SYMBOL vmlinux 0xaddaecc8 scsi_print_command +EXPORT_SYMBOL vmlinux 0xae1b6701 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xae2e9daa blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xae6e3063 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xae89057f nf_log_unregister +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xaea8d6be fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeadf668 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xaecb18c3 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xaedaa23f hippi_mac_addr +EXPORT_SYMBOL vmlinux 0xaee11f5a locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xaee5e95c ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xaef31976 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xaef78a97 bd_claim +EXPORT_SYMBOL vmlinux 0xaefb0cd2 invalidate_partition +EXPORT_SYMBOL vmlinux 0xaf268a6c __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1e43 fd_install +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf73c87b __brelse +EXPORT_SYMBOL vmlinux 0xaf8a7135 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xaf8a9b06 bdi_init +EXPORT_SYMBOL vmlinux 0xaf99d340 page_readlink +EXPORT_SYMBOL vmlinux 0xafabc36b zero_fill_bio +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafbab16b in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xafe3a9b2 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb02f4618 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xb0426c11 udp_prot +EXPORT_SYMBOL vmlinux 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL vmlinux 0xb052d3a1 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xb05436e1 proc_symlink +EXPORT_SYMBOL vmlinux 0xb05a9739 pipe_lock +EXPORT_SYMBOL vmlinux 0xb063990e generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xb06d3a4a i2c_del_driver +EXPORT_SYMBOL vmlinux 0xb07dd116 dev_uc_add +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb089a814 page_put_link +EXPORT_SYMBOL vmlinux 0xb095c228 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xb0ab84ff i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d09e61 igrab +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ea398c free_task +EXPORT_SYMBOL vmlinux 0xb0ef1c80 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb119d74d security_d_instantiate +EXPORT_SYMBOL vmlinux 0xb11e5f58 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb127cc5b vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xb1471bbf k8_northbridges +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb19150f9 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c88da3 keyring_search +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb1ff68a9 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22b7aaf pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2638ef8 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26ebbd2 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xb2884255 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xb2c36e10 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xb2c69d12 dm_table_event +EXPORT_SYMBOL vmlinux 0xb2dd7c3f neigh_seq_next +EXPORT_SYMBOL vmlinux 0xb2e063fe genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xb2e55898 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb2fe65d6 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xb2ff4eed neigh_create +EXPORT_SYMBOL vmlinux 0xb32658e6 set_pages_wb +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb334e175 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb37adb9e pcim_iounmap +EXPORT_SYMBOL vmlinux 0xb37c74b8 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xb3c84ca9 cdev_del +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb40e6e65 seq_bitmap +EXPORT_SYMBOL vmlinux 0xb41e1496 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb429978e pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xb432e2f7 input_inject_event +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb452cb6f con_is_bound +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4aa1881 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xb4c37d04 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xb4c99e37 dev_addr_add +EXPORT_SYMBOL vmlinux 0xb4d93b3c poll_freewait +EXPORT_SYMBOL vmlinux 0xb4fac69c vfs_llseek +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5287a52 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54ab608 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xb54f6ed6 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xb550522f revert_creds +EXPORT_SYMBOL vmlinux 0xb5855388 skb_seq_read +EXPORT_SYMBOL vmlinux 0xb58ac200 kill_pid +EXPORT_SYMBOL vmlinux 0xb590bae6 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5f28b5f __any_online_cpu +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6368186 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb680c740 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xb684f0c1 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xb6a05f9d get_sb_single +EXPORT_SYMBOL vmlinux 0xb6a26c60 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b33aed bio_integrity_free +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d7e52b __secpath_destroy +EXPORT_SYMBOL vmlinux 0xb70810c6 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xb711ddf3 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xb7544e7d unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb7596bb2 i2c_master_send +EXPORT_SYMBOL vmlinux 0xb77960f1 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xb77e7c4c filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xb77fcbec input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xb7adf2c9 devm_iounmap +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7cbcc4f vmtruncate +EXPORT_SYMBOL vmlinux 0xb7ddb0ad unregister_key_type +EXPORT_SYMBOL vmlinux 0xb812187d devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xb81e8c29 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xb8300e92 md_write_start +EXPORT_SYMBOL vmlinux 0xb841bf1c should_remove_suid +EXPORT_SYMBOL vmlinux 0xb854e584 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xb858a1f7 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb87d25c2 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xb8972a15 __lock_page +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8a67940 inet6_getname +EXPORT_SYMBOL vmlinux 0xb8c21336 cdev_add +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb92da4dd phy_stop +EXPORT_SYMBOL vmlinux 0xb93b94be sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xb950d340 neigh_table_init +EXPORT_SYMBOL vmlinux 0xb95d28d7 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0xb97bd159 secpath_dup +EXPORT_SYMBOL vmlinux 0xb97d4928 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xb97d9153 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xb97e789c fb_pan_display +EXPORT_SYMBOL vmlinux 0xb9853d7b scsi_finish_command +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9d4a0c4 inet_addr_type +EXPORT_SYMBOL vmlinux 0xb9d77d07 pci_save_state +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9ef2754 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xb9fc29e2 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba2a1bc2 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5a669c abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xba7dfb57 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0xba7f512c dev_uc_del +EXPORT_SYMBOL vmlinux 0xba8db506 bio_alloc +EXPORT_SYMBOL vmlinux 0xba90d3b4 tty_register_device +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbabbb351 bio_free +EXPORT_SYMBOL vmlinux 0xbac42042 journal_get_create_access +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbae08112 bio_pair_release +EXPORT_SYMBOL vmlinux 0xbb0c773f sk_alloc +EXPORT_SYMBOL vmlinux 0xbb1195a8 neigh_lookup +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3e688e fb_blank +EXPORT_SYMBOL vmlinux 0xbb40869d pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xbb4cb3a4 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xbb4fa23f deactivate_super +EXPORT_SYMBOL vmlinux 0xbb5a1b05 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb61c1db dst_release +EXPORT_SYMBOL vmlinux 0xbb741ed6 override_creds +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbdb55f0 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xbbf9dfb2 journal_destroy +EXPORT_SYMBOL vmlinux 0xbc02aaae generic_writepages +EXPORT_SYMBOL vmlinux 0xbc0c9261 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc347675 dma_set_mask +EXPORT_SYMBOL vmlinux 0xbc3861b7 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xbc5540e2 ilookup5 +EXPORT_SYMBOL vmlinux 0xbc6029be dput +EXPORT_SYMBOL vmlinux 0xbc7d8a14 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xbc94e644 simple_write_begin +EXPORT_SYMBOL vmlinux 0xbc96c195 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xbc9f5962 tty_write_room +EXPORT_SYMBOL vmlinux 0xbcabb9dc mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xbcb6e1c8 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd7a7ac pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xbce69a7e scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xbcf6412b nf_log_register +EXPORT_SYMBOL vmlinux 0xbd086211 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xbd24a5fa xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xbd3790c1 input_grab_device +EXPORT_SYMBOL vmlinux 0xbd46ff36 filemap_fault +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdb95db4 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xbdd2d7de ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xbdf26640 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0823c5 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe599ac6 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xbe7d61dc revalidate_disk +EXPORT_SYMBOL vmlinux 0xbea7f388 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xbeeadc02 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf04f59f __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xbf09622e dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xbf191d97 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xbf3cb249 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xbf46a5b5 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xbf6c39a0 thaw_super +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8d4800 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb2b667 wake_up_process +EXPORT_SYMBOL vmlinux 0xbfbcead6 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfdb60a8 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xbfe857b3 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbff8ae6a shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc0049500 dev_addr_init +EXPORT_SYMBOL vmlinux 0xc0119358 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xc02ba837 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xc0345b41 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0xc03f0f08 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xc04ec889 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc06a3a77 __lookup_one_len +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a335d4 may_umount_tree +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0aba53d swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xc0cae8c3 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xc0cf991e sock_kfree_s +EXPORT_SYMBOL vmlinux 0xc106e800 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xc1268644 idr_init +EXPORT_SYMBOL vmlinux 0xc14b3610 pci_get_class +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc1a18fdb ppp_dev_name +EXPORT_SYMBOL vmlinux 0xc1adb999 journal_stop +EXPORT_SYMBOL vmlinux 0xc1b171d7 __napi_schedule +EXPORT_SYMBOL vmlinux 0xc1b8d0d7 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xc1bbd1f6 sock_create_kern +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1e07884 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xc1e89689 filp_open +EXPORT_SYMBOL vmlinux 0xc1f89b52 sk_reset_txq +EXPORT_SYMBOL vmlinux 0xc1fa6551 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc270c101 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xc299fd6d module_refcount +EXPORT_SYMBOL vmlinux 0xc2b6c983 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xc2bb56b3 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fdbcb4 log_start_commit +EXPORT_SYMBOL vmlinux 0xc31ce612 do_truncate +EXPORT_SYMBOL vmlinux 0xc325be01 blk_unplug +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc34fb5e5 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xc35e6e92 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xc369f187 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3b11160 sock_create_lite +EXPORT_SYMBOL vmlinux 0xc3cd6bcb sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xc3ff5ea7 pci_clear_master +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc425c8aa udp_proc_register +EXPORT_SYMBOL vmlinux 0xc435a3a0 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xc446b0bc xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xc4594b64 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xc464ca7f request_key_async +EXPORT_SYMBOL vmlinux 0xc489ac42 __put_cred +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4afaafb journal_create +EXPORT_SYMBOL vmlinux 0xc4c959e1 create_mnt_ns +EXPORT_SYMBOL vmlinux 0xc4de6b1c skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xc4e2d475 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xc4e4a5df dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e9c01c cpu_active_mask +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53fa348 unregister_netdev +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc57557c4 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0xc5820138 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xc5b9c892 tty_register_driver +EXPORT_SYMBOL vmlinux 0xc5c2f725 release_sock +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5eed506 ps2_end_command +EXPORT_SYMBOL vmlinux 0xc5efac49 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xc603eeb9 __mutex_init +EXPORT_SYMBOL vmlinux 0xc6233f2e request_key +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc636c5d8 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc679b385 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xc67cd8ef neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6bfeb08 kobject_init +EXPORT_SYMBOL vmlinux 0xc6f08f5d blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc746ab0a fb_show_logo +EXPORT_SYMBOL vmlinux 0xc796c81f input_free_device +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4666d __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7d16c15 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc7f3ba8e pskb_copy +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc854183f __inet6_hash +EXPORT_SYMBOL vmlinux 0xc8601c4b i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xc86bca4d nlmsg_notify +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc888b796 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8b46a35 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xc8b4f026 dquot_enable +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8bfd0d8 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xc910c8ae blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xc9253729 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xc946e7ff generic_file_fsync +EXPORT_SYMBOL vmlinux 0xc94b21b3 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xc9605c60 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xc97efd55 uart_match_port +EXPORT_SYMBOL vmlinux 0xc98784e9 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xc988186f dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xc99be733 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xc99d739c ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9c155a1 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xc9cc5401 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xc9cd1184 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0xc9fa70b1 sock_map_fd +EXPORT_SYMBOL vmlinux 0xca509cbb bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca680604 key_task_permission +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca99b3e7 lease_modify +EXPORT_SYMBOL vmlinux 0xca9e3346 aio_complete +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcaf2747f tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xcafbc30e pagevec_lookup +EXPORT_SYMBOL vmlinux 0xcafcbd3f hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0xcb4bebd8 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcbcb2778 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0xcbd05c45 md_integrity_register +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc1da640 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc25800b tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc57370b udp_poll +EXPORT_SYMBOL vmlinux 0xcc5e1565 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xcc5fd4c4 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8ac0cb sock_kmalloc +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xccac8c7f __napi_complete +EXPORT_SYMBOL vmlinux 0xccc78655 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xccf4deb6 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0xccf6acac starget_for_each_device +EXPORT_SYMBOL vmlinux 0xcd2e274c netlink_dump_start +EXPORT_SYMBOL vmlinux 0xcd449f1d security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xcd6306d3 blk_run_queue +EXPORT_SYMBOL vmlinux 0xcd6b13b1 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xcda404fa get_agp_version +EXPORT_SYMBOL vmlinux 0xcdb0aa33 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xce06c472 may_umount +EXPORT_SYMBOL vmlinux 0xce0ea8ff xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce4554e4 soft_cursor +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce52228e sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xce92551c pci_dev_driver +EXPORT_SYMBOL vmlinux 0xceb8ab6c blk_free_tags +EXPORT_SYMBOL vmlinux 0xcebc0743 alloc_trdev +EXPORT_SYMBOL vmlinux 0xcede4ab7 ppp_input +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcef9ce11 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf01dca7 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xcf1030cb pci_set_power_state +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf4252a3 bdget_disk +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf892ff1 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xcfabc599 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfc37a00 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xcfcae424 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xcfd07756 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy +EXPORT_SYMBOL vmlinux 0xd00a182d __register_binfmt +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0323877 eth_header +EXPORT_SYMBOL vmlinux 0xd0452aee x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xd0511b56 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xd06a113b dquot_quota_on +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd08249af scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0e9940f __ip_select_ident +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1181d0a generic_getxattr +EXPORT_SYMBOL vmlinux 0xd139b8b2 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xd13c40ed read_cache_page_async +EXPORT_SYMBOL vmlinux 0xd13fd7ca seq_release +EXPORT_SYMBOL vmlinux 0xd1470c0f eth_header_parse +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd1504d62 sk_stream_error +EXPORT_SYMBOL vmlinux 0xd15d0ba7 pcim_iomap +EXPORT_SYMBOL vmlinux 0xd161ecfe bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xd169af32 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xd1838b8c swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1a9e91c generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xd1bb6930 pci_match_id +EXPORT_SYMBOL vmlinux 0xd1be6766 input_register_device +EXPORT_SYMBOL vmlinux 0xd1c7470b blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xd1ccac5f dev_add_pack +EXPORT_SYMBOL vmlinux 0xd1e84969 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1f7f41d alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0xd20bd7f3 vfs_readdir +EXPORT_SYMBOL vmlinux 0xd2119dcc nf_reinject +EXPORT_SYMBOL vmlinux 0xd2177d33 skb_copy +EXPORT_SYMBOL vmlinux 0xd21a77b6 tcp_child_process +EXPORT_SYMBOL vmlinux 0xd222b489 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd241a3b6 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25c240f i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2721823 mpage_writepages +EXPORT_SYMBOL vmlinux 0xd273ef50 fasync_helper +EXPORT_SYMBOL vmlinux 0xd27d05ea dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xd2829d10 ip_route_output_key +EXPORT_SYMBOL vmlinux 0xd284e982 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a5d999 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2ac6ecc pnp_get_resource +EXPORT_SYMBOL vmlinux 0xd2af50ad vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xd2e4def3 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xd32c7a43 dst_discard +EXPORT_SYMBOL vmlinux 0xd330ce45 kobject_set_name +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd362fed5 key_type_keyring +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3a07527 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xd3ad1599 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd4079e5b kobject_del +EXPORT_SYMBOL vmlinux 0xd416a453 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xd433a9ab blkdev_fsync +EXPORT_SYMBOL vmlinux 0xd44ef87b udp_ioctl +EXPORT_SYMBOL vmlinux 0xd45084df jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xd45205ce __neigh_event_send +EXPORT_SYMBOL vmlinux 0xd46bdb5d ip_setsockopt +EXPORT_SYMBOL vmlinux 0xd47562bf tcp_parse_options +EXPORT_SYMBOL vmlinux 0xd47d3115 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xd4938c45 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xd508284d lock_sock_nested +EXPORT_SYMBOL vmlinux 0xd50950bb xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xd5099a24 migrate_page +EXPORT_SYMBOL vmlinux 0xd50b0963 sock_update_classid +EXPORT_SYMBOL vmlinux 0xd50dedb9 bio_map_kern +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5405214 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xd5413999 init_task +EXPORT_SYMBOL vmlinux 0xd54912fc noop_qdisc +EXPORT_SYMBOL vmlinux 0xd556450b xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd577a5dd register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages +EXPORT_SYMBOL vmlinux 0xd5856857 arp_tbl +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5be31ef journal_abort +EXPORT_SYMBOL vmlinux 0xd5bea353 tcp_connect +EXPORT_SYMBOL vmlinux 0xd5ca1555 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xd5cb5022 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xd5f7a112 skb_insert +EXPORT_SYMBOL vmlinux 0xd6022ac4 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xd6088cdd kset_unregister +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd615ab6c i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd637dc26 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xd63e1a5c unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xd67478c6 audit_log_end +EXPORT_SYMBOL vmlinux 0xd685dae9 dquot_release +EXPORT_SYMBOL vmlinux 0xd687ae24 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6aa1bb3 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6b7f2f2 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xd6d842ff current_fs_time +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd7193830 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xd72a9a7a xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xd739c144 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xd740a986 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xd7424762 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xd746e7b6 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xd751d994 path_get +EXPORT_SYMBOL vmlinux 0xd757da1b scsi_print_result +EXPORT_SYMBOL vmlinux 0xd778830e vfs_mknod +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7e8eab3 scsi_device_put +EXPORT_SYMBOL vmlinux 0xd7ed8661 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xd7f83816 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xd800534c __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xd80854f7 bdget +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd87c4dff phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8bb1981 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xd8d49c5b blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xd8dee5a0 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd927fbd0 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92e3d96 set_irq_chip +EXPORT_SYMBOL vmlinux 0xd92efe9f current_task +EXPORT_SYMBOL vmlinux 0xd936efb6 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xd93a4de4 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd94b53e7 netif_napi_add +EXPORT_SYMBOL vmlinux 0xd95c6ef5 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xd975d0db alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xda03a10e skb_pad +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda0b82c4 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda55f11b agp_bridge +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda5d5030 dma_ops +EXPORT_SYMBOL vmlinux 0xda681b7c tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xda76e1f5 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xda9b208e read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xdab2331b file_permission +EXPORT_SYMBOL vmlinux 0xdad358f4 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xdad99aa1 pci_enable_device +EXPORT_SYMBOL vmlinux 0xdb1fe565 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xdb251d5e acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xdb2aa1bb pci_set_mwi +EXPORT_SYMBOL vmlinux 0xdb2d111a set_disk_ro +EXPORT_SYMBOL vmlinux 0xdb31c2a8 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xdb54392f inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xdb55b9de bio_copy_user +EXPORT_SYMBOL vmlinux 0xdb5b3395 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xdb5d7816 fput +EXPORT_SYMBOL vmlinux 0xdb77552a dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0xdb8d8cef get_gendisk +EXPORT_SYMBOL vmlinux 0xdbadcdfc ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xdbb5ad5c node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbcfac00 input_event +EXPORT_SYMBOL vmlinux 0xdbdd9c9d kernel_read +EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2f60a6 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xdc32a31f xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xdc373f25 take_over_console +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc6d8bbe try_to_release_page +EXPORT_SYMBOL vmlinux 0xdc74efeb iterate_mounts +EXPORT_SYMBOL vmlinux 0xdc8f2c19 kernel_bind +EXPORT_SYMBOL vmlinux 0xdc98aa2c security_inode_readlink +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca9c807 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcba67fd simple_dir_operations +EXPORT_SYMBOL vmlinux 0xdce1ce59 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xdce2a8fc unregister_con_driver +EXPORT_SYMBOL vmlinux 0xdce98eae fb_get_mode +EXPORT_SYMBOL vmlinux 0xdd147bce pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xdd42d412 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xdd4ad457 softnet_data +EXPORT_SYMBOL vmlinux 0xdd616a83 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xdd81c320 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xddbe4fbf cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xddc64cb6 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde1f37dc pci_iounmap +EXPORT_SYMBOL vmlinux 0xde2a2945 simple_rename +EXPORT_SYMBOL vmlinux 0xde2c5e9b thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xde466b15 dst_alloc +EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde918c8b inet_del_protocol +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9a5fb7 agp_backend_release +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdec60584 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xded79623 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf43b04a writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf8dc068 inode_init_always +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf9c4b5d sync_blockdev +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfe764d1 iget5_locked +EXPORT_SYMBOL vmlinux 0xdff6139f tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xdff9afb9 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xe05bc6da inet_stream_ops +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0775648 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xe09f4492 security_file_mmap +EXPORT_SYMBOL vmlinux 0xe0a1eb56 register_gifconf +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0bd0af4 vfs_create +EXPORT_SYMBOL vmlinux 0xe0c43d39 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xe0d5bfa1 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xe0e3afa0 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe13e3676 deny_write_access +EXPORT_SYMBOL vmlinux 0xe1521e4a uart_suspend_port +EXPORT_SYMBOL vmlinux 0xe165d6f9 ps2_command +EXPORT_SYMBOL vmlinux 0xe166b5cc tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe19d0499 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xe1a08ac4 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xe1a83686 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xe1cd2721 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xe1cf8384 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xe1d01090 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xe1d1fbe0 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xe1d442aa sock_no_getname +EXPORT_SYMBOL vmlinux 0xe1ef71ac pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xe1f58412 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xe2206cc4 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe252df40 __netif_schedule +EXPORT_SYMBOL vmlinux 0xe27ed037 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe2d2a396 scsi_unregister +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d9a19d backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xe3380100 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xe356c66a cpu_core_map +EXPORT_SYMBOL vmlinux 0xe36a2d30 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xe3779515 generic_read_dir +EXPORT_SYMBOL vmlinux 0xe382f61f scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xe38d7ac0 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xe3914589 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xe3a03e16 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3b4164f qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xe3cbb26a blk_sync_queue +EXPORT_SYMBOL vmlinux 0xe3dcae0a nf_setsockopt +EXPORT_SYMBOL vmlinux 0xe3ea511f ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xe3f58f56 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe40047bb ip6_frag_init +EXPORT_SYMBOL vmlinux 0xe412acae md_check_recovery +EXPORT_SYMBOL vmlinux 0xe4213a9d nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xe4225afc d_invalidate +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe436a259 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xe445a3bf inet_accept +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe465f837 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xe47eaa7c spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4ac36e9 do_splice_from +EXPORT_SYMBOL vmlinux 0xe4b24b8c __next_cpu +EXPORT_SYMBOL vmlinux 0xe4df4136 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xe4fc677a fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xe50ec81a blk_start_request +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5132b29 spi_dv_device +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe52d2145 __destroy_inode +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe53ee230 phy_print_status +EXPORT_SYMBOL vmlinux 0xe5554f7e elevator_init +EXPORT_SYMBOL vmlinux 0xe5698a89 udplite_prot +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58fb1b2 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xe59bdda0 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xe5a1617b seq_path +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d0700a generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xe5dcc820 skb_tx_hash +EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f23151 bioset_free +EXPORT_SYMBOL vmlinux 0xe656ba3b i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe6932e00 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6b22b45 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xe6bd8cf6 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe711a0ff xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xe71664e0 ps2_drain +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe72a7d8e sg_miter_stop +EXPORT_SYMBOL vmlinux 0xe742da04 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe7649695 serial8250_register_port +EXPORT_SYMBOL vmlinux 0xe76d5721 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xe776a4ac security_path_chmod +EXPORT_SYMBOL vmlinux 0xe77f6f14 seq_write +EXPORT_SYMBOL vmlinux 0xe7846c96 bdput +EXPORT_SYMBOL vmlinux 0xe7cc3148 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xe7cd59ec tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e83470 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xe7f9a605 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xe7fca12d remove_arg_zero +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe80d85fb create_empty_buffers +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8185f3d find_get_page +EXPORT_SYMBOL vmlinux 0xe83eab31 skb_clone +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe85c3da3 lock_fb_info +EXPORT_SYMBOL vmlinux 0xe8765744 sk_common_release +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87da0d4 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL vmlinux 0xe8d30799 rfkill_register +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90d48fb bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91edc0f ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xe988466d devm_ioremap +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9afa030 sock_register +EXPORT_SYMBOL vmlinux 0xe9d84c8c lookup_bdev +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea11974e pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xea147363 printk +EXPORT_SYMBOL vmlinux 0xea3b2d14 neigh_update +EXPORT_SYMBOL vmlinux 0xea472480 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xea6e1736 free_netdev +EXPORT_SYMBOL vmlinux 0xea7a59cb i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeadc4bb7 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb0dd4b0 dquot_operations +EXPORT_SYMBOL vmlinux 0xeb15ca17 dm_io +EXPORT_SYMBOL vmlinux 0xeb1d0d31 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb7fda54 security_path_mknod +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb9d960e xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xeba7ee9b ip6_xmit +EXPORT_SYMBOL vmlinux 0xeba9a847 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebcb0afa mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xebcb20b0 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebe4ed1d netif_rx +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec241445 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xec2cbef1 no_llseek +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec67368d wireless_spy_update +EXPORT_SYMBOL vmlinux 0xec739220 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xecab3146 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xecae960e xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xeccae092 put_io_context +EXPORT_SYMBOL vmlinux 0xecf7c430 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xed2c4180 install_exec_creds +EXPORT_SYMBOL vmlinux 0xed4257cc freeze_bdev +EXPORT_SYMBOL vmlinux 0xed633f70 key_link +EXPORT_SYMBOL vmlinux 0xed80702f scsi_init_io +EXPORT_SYMBOL vmlinux 0xed866ae2 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed9996d6 rtnl_notify +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda3ce63 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xedb468e9 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedeb44b5 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xee082844 nf_log_packet +EXPORT_SYMBOL vmlinux 0xee2bc709 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee2e286f alloc_fddidev +EXPORT_SYMBOL vmlinux 0xee380af9 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xee5cd7eb agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeede9ae thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xeef80f28 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xef0beca7 simple_unlink +EXPORT_SYMBOL vmlinux 0xef23c3b6 input_close_device +EXPORT_SYMBOL vmlinux 0xef46b509 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xef50a955 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xef576b8c inode_permission +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef766cf4 filemap_flush +EXPORT_SYMBOL vmlinux 0xef7ad16c sock_no_listen +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefb5faa4 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xefc262f6 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xeffad35b dquot_scan_active +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0113c8e fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xf01e9537 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xf0415554 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf079c151 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09c9b40 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0b7a2e7 mapping_tagged +EXPORT_SYMBOL vmlinux 0xf0cceaf6 init_special_inode +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fb530b inode_set_bytes +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf1071b6a __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf12f1ce6 blk_plug_device +EXPORT_SYMBOL vmlinux 0xf140454b __getblk +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf1893b08 journal_start +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1c05766 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xf1d1ddac jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xf1d22946 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xf1d596ca sock_create +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f7c142 pci_request_regions +EXPORT_SYMBOL vmlinux 0xf1f924de blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xf1fcdb63 dm_get_device +EXPORT_SYMBOL vmlinux 0xf2065c99 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xf206cfc3 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf213d193 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xf22beacd clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xf2573e4d __rta_fill +EXPORT_SYMBOL vmlinux 0xf25a5617 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xf287fa66 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xf28c3c23 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xf28cf71b mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xf292673f noop_llseek +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2d97eed tty_port_close_start +EXPORT_SYMBOL vmlinux 0xf2e15e4d md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xf2fce430 end_page_writeback +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31893d2 dquot_resume +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf348feca sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xf379e324 netpoll_poll +EXPORT_SYMBOL vmlinux 0xf37de227 set_pages_uc +EXPORT_SYMBOL vmlinux 0xf38477ed blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf38f2ef9 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39fd779 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d59ca6 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xf3ea8eb3 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf408f156 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xf40a962f pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xf42ddee9 ppp_input_error +EXPORT_SYMBOL vmlinux 0xf433adda pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf46bd0e6 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0xf482f77c security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf497cde8 rfkill_unregister +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4a6be52 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4b7af09 ip_dev_find +EXPORT_SYMBOL vmlinux 0xf4b8c35a abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xf4bcf285 bio_clone +EXPORT_SYMBOL vmlinux 0xf4d19095 bio_map_user +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf52a9a16 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf54a6039 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xf57a2e2a alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xf57ad089 set_pages_x +EXPORT_SYMBOL vmlinux 0xf5bbf0c6 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5e1c41a mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf6052b5e devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf61f2a72 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xf62984ef ps2_handle_response +EXPORT_SYMBOL vmlinux 0xf649efa1 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xf67010c7 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xf670264a inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6e537d7 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ec2675 tcp_poll +EXPORT_SYMBOL vmlinux 0xf70a2c60 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xf713bd05 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xf74ecc9d scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7b20eb1 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xf7bf85c6 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0xf7db21ad simple_pin_fs +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf815e5c7 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf8481f03 netif_device_detach +EXPORT_SYMBOL vmlinux 0xf84a430c kern_path +EXPORT_SYMBOL vmlinux 0xf85a2317 path_is_under +EXPORT_SYMBOL vmlinux 0xf8620db3 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xf87b83d9 open_exec +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8981db2 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8bbdae8 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xf8c5b9ac gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xf8e70818 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xf8fd4172 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xf90d66b6 nobh_write_end +EXPORT_SYMBOL vmlinux 0xf9129365 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xf9256d36 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xf9289f89 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xf930fbf2 notify_change +EXPORT_SYMBOL vmlinux 0xf959d641 arp_send +EXPORT_SYMBOL vmlinux 0xf9635df6 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf980e1da mntput_no_expire +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9d74967 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xf9fa8a81 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xfa256a69 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xfa3445f6 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xfa404b3c bd_set_size +EXPORT_SYMBOL vmlinux 0xfa530689 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xfa5b26b4 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xfa64666d neigh_seq_start +EXPORT_SYMBOL vmlinux 0xfa68ac3f pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xfa7d7701 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0xfa9a8f1d swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xfaf89602 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb3ea712 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfbb13e46 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbefeff3 security_path_symlink +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0e6ecb journal_errno +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4750d1 sk_wait_data +EXPORT_SYMBOL vmlinux 0xfc6ad8f9 blk_register_region +EXPORT_SYMBOL vmlinux 0xfc6e2bb6 path_lookup +EXPORT_SYMBOL vmlinux 0xfc7ab46e cap_file_mmap +EXPORT_SYMBOL vmlinux 0xfc7f0785 tty_name +EXPORT_SYMBOL vmlinux 0xfc86e941 netlink_set_err +EXPORT_SYMBOL vmlinux 0xfc8f99a7 alloc_disk +EXPORT_SYMBOL vmlinux 0xfc974838 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xfc99283b mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xfca041e1 key_alloc +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcaed323 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd58829 dev_get_stats +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd1cbe92 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xfd38fa9a lro_flush_all +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd774777 dev_change_flags +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd965a67 flush_old_exec +EXPORT_SYMBOL vmlinux 0xfd97f32a acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xfd9c991b i2c_transfer +EXPORT_SYMBOL vmlinux 0xfd9ecb65 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc31221 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xfde0d81c bio_put +EXPORT_SYMBOL vmlinux 0xfde1c738 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xfdf5f9db __break_lease +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe007cc0 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe1fec6a mmc_card_sleep +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe295b3f delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0xfe2b1084 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xfe2d94b6 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe4b613e xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xfe51a274 bdev_read_only +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7945dd acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe80803d scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xfe9f1857 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0xfea961ad kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xfeb36d66 release_firmware +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfec836d2 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xfece347e end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff090fd1 mutex_trylock +EXPORT_SYMBOL vmlinux 0xff182426 vga_client_register +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6b4daa journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xff6d7dcd dcache_readdir +EXPORT_SYMBOL vmlinux 0xff6f3cda dm_io_client_create +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff8e7c74 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff984224 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa0373b call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xffc79b89 napi_get_frags +EXPORT_SYMBOL vmlinux 0xffc7b3d0 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0xffd56255 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x03e41c3b kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b116020 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0bc21bf5 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1199fbe6 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x13885174 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14d3fe58 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1ed58ab6 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x249fe355 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a8dceba kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x31b96ad5 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x332d79cb kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3395f0c6 gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36560b7b kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x385359a9 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3c3af309 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41b9d0fd kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x46085e5d kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4748b340 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4d94c92f kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e75d76b kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e97d299 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x51a7df46 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53bd2448 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x578b9663 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x58022170 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a6f36ce kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b6462b9 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5cb8b0cf kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5d953e09 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62cd2262 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63175b68 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x634b3cb3 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x638cf9c3 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x689d060c kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6cfe636c kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x769c3161 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7818af46 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7ba25af3 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x81bcb4f2 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x876a0999 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x879f3ecc kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8880c6f4 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8904ff73 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8f4b41aa kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90d19364 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x93d06573 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x990c8642 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9ab1fdc8 emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8567b1e kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab23b8e1 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf099eaf kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf8fbb67 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb301b5ec kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb63b4219 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb8412c93 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd86163a kvm_handle_fault_on_reboot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc093301f kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc42d597e kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc96793fc kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc9f42505 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd099fbfb kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd21c6f29 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf93b9fd kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdfa32039 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1a876be kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe89c75f2 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeace743d kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec2136b5 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeee5afd3 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef006b36 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf16170db load_pdptrs +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0467fc5e crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xbadb72a7 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xbba2b7df async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xf845c3a2 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x59b66161 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xae6786f1 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x08e242cf async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xcfc29f3a async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd1340107 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf9995625 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6c87c4d5 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x9b728cb3 async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x4b078f2d cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x669e98d2 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7860e882 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x8aecc8e0 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x9796cf62 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x9ce69da2 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xf2662fab cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x875f90a7 twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0df49bf4 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x237dfd38 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x246b6787 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x435b2830 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4d30267b ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5bf905bc ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x630e02d8 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9eb08e55 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa2622fd5 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa362d895 ahci_sht +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc5d1074b ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd9429bbb ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf1b574b3 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00d2bba7 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x019de96b btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x28cef9d7 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x63f1f4f7 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6d23f8e0 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8a6687ae btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc9a9af8f btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xce904011 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1acffbeb tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1bb1b8c7 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x23d04e51 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2c7ad464 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2f3daecf tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x31dc48e0 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3cb1410d tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4138b4af tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x43eafd8c tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x453294ad tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4972aefb tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x540279b8 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x73ebc746 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8bbb4d3b tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa9313aec tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa952e2d4 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaa5ce7aa tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xabe3a900 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xba74fe10 tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc4acae2a tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe63e2438 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xef414315 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xef938b2f tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x4cc45bd2 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xc3609d47 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00b45338 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x1ad02b2d free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x26c54eae alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x42e496af unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x9dcb23ce dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xd0ef4176 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xd757583c dca_add_requester +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x7664237e amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x077a9ceb edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0ff1b00a edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2311490b edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x324fe78b edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x39b27807 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3f5fc8fa edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4e02d677 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x55748f32 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x57ac0a79 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x68c5d55c edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6bf4c064 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6dd8dc8d edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6f207dcd edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x75dff0fe edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7df1f14d edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8c9ff601 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x93e4779e edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9b17ac01 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb590f101 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbe3d107d edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc9ed2018 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xea9ecab9 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf38d0ead edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xff9dc455 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xce581744 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xdee77ea6 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x61e88f44 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x67558b27 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1e59201f hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2242b42f hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x27c2bc49 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x29294e92 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x34179ad5 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x41b6744a __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x54d45ada hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x68e17740 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6bdee2e0 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x71515505 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x745ce5a5 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e2d0fc2 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e977c46 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8bea11e1 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8f0cfe18 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x99c614cc hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa226e724 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa2e6d589 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa6ae1e30 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb9029e46 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc0ac74a7 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc7c4bc9c hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xce2d30ff hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdfdb2880 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe57d28ec hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xea6560d3 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x7f12da61 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x1a2b92f4 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x3fa98af1 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x89b5cd12 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb0cf1343 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3bfe0261 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3c313751 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x7f2fdb99 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x8af65828 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xbf3e2036 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x06c29b9a nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x576176c3 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xddf3f3f9 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x08894c18 hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x8e24ff4c hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x57af813c input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x02c672ad wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1f786ff7 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x224fdf19 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2efd67c6 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6489b68d wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa86ceade wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xae94fa11 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb26c70e2 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcb484e03 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xce6c7233 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xee6eee3d wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfeea2e99 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x07652ad8 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0f3ba714 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x197dd873 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x24a2d4df gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2b91a2d7 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x52b123fb gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7089cd35 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7baa5da7 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x856ed8a4 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x88023b25 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8bcefe7d gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x93af0a41 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa63ad3b2 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xaf368559 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8a06c84 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe3757667 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe906eb37 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xefb41a67 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x6d686225 led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x6e9c5744 led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xae7b6bff led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xbe19579c led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x24935f26 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xcdc24ab5 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xdbab0c01 raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x7851d7b3 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x78d49422 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xc27690a3 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3eb2952b ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4d82373f ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4f219dc7 ir_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x5c56ef3a ir_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9350ecaf __ir_input_register +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xddd8d245 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe3d0be93 ir_input_unregister +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xfc4b3699 ir_repeat +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1f4d01a0 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x228f6995 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x249ab28d saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x62833da4 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x82387f22 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8d79692a saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb4d722e5 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbde1452a saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc57516c7 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe2e55d2a saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf1a414e0 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x09ffa122 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2486d4c8 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4ec2496f saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5a5be387 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x62163350 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xaa42be64 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe463ca2e saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x209316e0 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xfa73a719 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xbcb98a30 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x0ee6258b tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x62efb894 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xc006c5be tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x7de6a58e tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x5e59dabc tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xd87d57be tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x8521c67a tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x9979c06a tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xad5237cd simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1314e4d1 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2cf905c0 gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3213e3d3 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3794d160 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3bb01eec mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3f222ae9 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x41522373 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x498aab63 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5badc8a0 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x631f5926 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x683ca97c mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7b1e1db7 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9a1a58ba mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc996ef2a mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd6eb2844 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd9ae9317 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe1321517 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x029a7c89 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x09728f9f smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x290ed45d sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3c08970b sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x41bf1fcc smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4a027b99 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x61344016 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x773fe09d smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9eab3aa2 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa8981dae sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xafa59d88 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbad89a2d smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc4faef25 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdc7ee4be smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe6f4249e smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xea782ce0 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xea8927d4 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf7e2f1ba smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfc2be47c sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x2ce128d3 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x6aafcbff ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7fa7c47e ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xab83439d ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc05f43f7 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd7b4689d ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xec47b08e ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0816d8b4 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1d0c6896 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4b21a3c2 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5ede9c4c cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x71bc7117 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x7362ae11 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xbf2ef784 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcd442ae9 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xebad497d cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfa73f4f5 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfa84c50e cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xceef85f5 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0fac5b2c em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x38ed2084 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7a061a82 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x96f4666c em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xfefa762d em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xffdaede7 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x4af3ebb2 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x5953f283 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x92adee9a saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd5eccfd9 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xf17bb1c0 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x23e6c1eb v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x249acc72 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x2d8a2a98 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x37ce659d v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x40d9719b v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xdb83efa3 v4l2_i2c_new_subdev_cfg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0x9e579f73 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x11b0271d v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x4021e394 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb5744400 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xf138bfc8 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0e0eb9af v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1bd8ed6d v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2ffdb6e1 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3b9dcf28 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x43de3c10 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x50d46ec4 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x53e27af4 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x65a61fc8 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7195eafb v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x84b54d6a v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9ec20d9f v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa1bc7647 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xace43aeb v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe99605a1 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x01f0f701 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x18ef17b8 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x191704d6 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1ba69391 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x34efcbe0 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3c532d79 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3ed34432 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4a22525c videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x58885ad2 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x64684e9c videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x68eca2ef videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6f0e1662 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x71c7c7dd videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x87a74c0b videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x975b267c videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9bde7bad videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9dfd2908 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa11409b5 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa5d835a0 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xacd04e55 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc84b2e9b videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd0e53524 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xda2383e2 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe4422bc1 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe4621ac2 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x75c46d6b videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x8c4ce3bf videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xcd94fdab videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2e361e0a videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x43510dcd videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x48edff63 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x60b4fa30 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x699af2c6 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7c378b6b videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x83bfaef8 videobuf_sg_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x862a87bf videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8eb46573 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xad6c3606 videobuf_sg_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb394b6f8 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x66a262cd videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x6ebab82d videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x97b9c651 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x139f1c1d v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1ce1c0c1 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2520c11e v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x25960097 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x32a2f6a8 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x43c5a728 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x446da4b8 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4842fa6f v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x53ae0a07 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x80e55668 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8e75a1b8 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa9975136 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xab618743 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xafae44f1 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcb38beb6 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdb6f592b v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xebf49e96 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf5073717 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1739cc74 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x4315d943 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x64da53e8 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x699b0e38 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7d0f0ddc i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa29f4baf i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb8385afb i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xeda214ea i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x45e08bab mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x23f83c85 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x485cb8b1 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6b088af5 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6b3fd121 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6bcb2b07 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7c1d8246 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8c6c296c pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8e82f13f pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9d21e3d5 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa0ffc3e7 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfbf11902 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x551b1c6d pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xcec172ef pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x18a1be36 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x1d69ded2 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x256d96df pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5a27acf1 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xface8c0f pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x008c81aa sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5a088ed2 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7d21af61 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf9746ecb sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xfcdf0156 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x269f78f6 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x3e9302c4 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb60cdb2a wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb65506bc wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xd7e66e7b wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2e285828 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x32f0901b cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x6837b877 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xd99ce829 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x06d04145 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x16627c42 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3e76ad2a enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x5721eef3 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x59d7ff59 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbdbcfa6e enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xff80ef16 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x20b78da9 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2aeba0a1 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5af00a8c sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x765b801c sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x792228d1 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcfc59bf7 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x079960b9 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2e839b1a cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x51e973ec cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x7a84a6c6 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x858392ad cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xd7b665eb cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xb15a76e1 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x11ee6dac cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x9f8afabe cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xfd761b71 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x351770cf DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xe83c2839 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xdb21c629 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2455b89c register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4830612b __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x491f6cba del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x51ad6c88 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x55b98fd9 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x619039ee put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6902086e register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6e09f067 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x70f11e63 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x89d68115 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8eddb9f2 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x93d0e11b add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaee80b52 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbc4ccaee get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbc7508d1 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdc9c0bf6 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeadc44e8 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf8bd4f99 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x856aa7e7 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x86f7acd1 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb4e88479 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xfd812d85 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x102cdc52 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x13f7f9fe nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x47997312 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x582c87d7 nand_unlock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x7b81e844 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x876bd42f nand_lock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xb99121e1 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xe5c482c9 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x46cb9f88 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xfa62ea6e onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x08cc381e ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x287aab01 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x30ecee15 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42dda578 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4d95982b ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6b0894f0 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9a4915aa ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9bad1633 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9ece4101 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa2d8db7d ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xad398cde ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc3507e41 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf0d8f7d2 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x07d4270e unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x176bf4d5 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1dcd6ed1 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x283e20b8 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2ee983d8 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x30547784 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3c00a994 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5e0518b1 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xad87b0c1 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc2c551e9 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc34f7a1f register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf2222a11 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3d723558 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x51c4cb3b alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5d7a3337 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd5d28111 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x213b1199 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x68d3b802 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7e767e3f macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xb1bd5c67 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc2b831d7 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x00240011 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01a321f7 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01e10f57 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x03538a9b mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x060f7350 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x08ce836b mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0a7b92c5 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1ffa0ad0 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x24d95ae9 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x32bb7524 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3682e21a mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x382967bb mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3e183e15 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x44f5660b mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x45e9bd50 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4c9332a6 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x51c6ef2f mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x529444c4 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x537df3ac mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x543d43ee mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x56bf0f17 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x575d88fe mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x58bb3ffd mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5957c281 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5a2561bb mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x767592b1 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7f905541 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x801541d3 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x848792f7 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89fd4a51 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x90a9f450 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9511a8ac mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x97971cc0 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9e8bfd22 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9fe7ce87 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa0aeab55 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa57f2a66 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb2c9eb4a mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb7f47d7f mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc6c75810 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc7295586 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xce46e6d9 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd24e609b mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd3a0a437 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xda46f49b mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd55ea43 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd9a0162 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdeda9e9e mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe02814df mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe1210fc8 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe7c51fa8 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf2b305a1 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf315e0de mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x029d75f4 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4e854955 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x312ef339 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x476c56f7 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5d22c1d5 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcfe5dde6 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf5b012d9 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfdae27f9 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x03e26949 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x256d1b45 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3364d6aa usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x35159f40 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x35bddff1 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3e1c5223 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x42011327 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4edc00c4 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6209bfd7 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x638bc82f usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7b904599 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7f9c3e99 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8400299f usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8df3b4de usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x99529808 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9ad9e7e9 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xacbb71d4 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb48a4d56 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb572b177 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc0418d5b usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc0ccd259 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd8b74db3 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe7fc3444 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xff5ed00a usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x048126e7 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1cf2a59e i2400m_cmd_get_state +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3d4965be i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x59108d69 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5fbd4515 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7744f729 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7895822f i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7c3c43b4 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9ea8e69b i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa56841c8 i2400m_set_init_config +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb2c3ea9d i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb2de5793 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb2fe8eff i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc57399f1 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe4edb7ac i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf109e70b i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf55a0614 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfac2fa41 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xc3ad7362 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x0318eb05 iwl_alloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x62c129c2 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xa55af7fb iwl_dealloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1108aa6b lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3ad65cbd lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x41cc2e5e lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x430638e4 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6bc2ee23 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x759ecf33 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x75bfeaf0 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x86c439bd lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x896f5862 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x90fe418d __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd0a27e10 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xed1fda47 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf7b2874e lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf9a6000f lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0c85d9ef lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x44108acc lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x79e709cf lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x90cef535 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9ce16b9c lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc4cf7c92 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdfa3ed59 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf7bdf17d lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xdbee7d12 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xffe1b4a9 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x43569ce6 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5734fddb p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x966a8c76 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xba89251e p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc655c7b0 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc9d3ae5b p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdcb19f97 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf7e35488 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfc562a72 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0874b9b9 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0ad5f963 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x16f432e4 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25ee1d1c rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2606e823 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2698a964 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3649adcf rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4526b821 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4c6a0e58 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5a8943c7 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x60b2dadb rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x63943f5f rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa128723e rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa96c0573 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xab23cfa9 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbe2dc8ae rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc1596152 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc4699cf0 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcd852742 rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcef515ff rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd41de5cf rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xddc0722e rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe8e8c104 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd9677be rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0e2043f4 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1896c3bd rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x19d602c4 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1ab6dc74 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c555751 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d9796b9 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4114d4f9 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x57f47b02 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x611a4932 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x71e4140e rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81691ce5 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x87f9c83d rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x925430c2 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9bcb1a67 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9bd2623f rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa0673a5a rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa1cfed7a rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xad1d0c17 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd872d23 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdfc0e2bb rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xebbedb06 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfdd08f18 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfe4cf3a0 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x028e11ae rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x14fe22a1 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x22ce7a28 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x734f2c11 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb152ee1c rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc233c2f3 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdeb05e36 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf537d8a3 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf54d6904 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1f4bb7c8 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x225a5d77 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4470e324 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x484fedd9 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6e12abfd rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7b0da765 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8855e459 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ab8cd51 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa3c0a744 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbe419b69 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc67c1399 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc8e11a48 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcdd162ad rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd6f2364b rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd975240c rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfefe1b92 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x52f5d14c wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x905aa812 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xbd7993f8 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x09248824 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x47da8b0d wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xc2b1bf65 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xd3b9dfab wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xecbfda49 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x200aa29f acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x39043ca4 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6d60fb63 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x991cf097 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xa19d8e48 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x56990278 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x76734a97 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8e445e5a wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xdc365b72 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf490a604 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf90c92ad wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xb711a205 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7297fa53 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x02066736 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08ea813f iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1aedff7e iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x204963ac iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e7fd22b iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3eb465d7 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4356b17c iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47f716b6 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ad6a8fd iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52a2faae iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x56138da2 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59096ee2 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5aac030d iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b134f0c iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5dc2d206 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x676c5780 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c586101 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x724a5614 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f2e0237 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x86829ab4 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x883375bf iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8aa7ce73 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b1f6a48 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9dd81351 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e89f240 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e8b4d5b iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9fb5f5ac iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa7b919c2 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaa66e828 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xacf60adb iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaedfc338 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6bebe59 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbc54a366 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xca026b3e iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf4bdf38 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd5b9db65 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd8183e11 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xded44479 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe62a2411 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfcd9ef9d __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff8a80c7 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffe8ce61 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0755d62f iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x185dd79a iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1f2114b8 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2b9db543 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4abc7d81 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x606706cf iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6746af00 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8df363e0 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x97a215e7 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa19384c0 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xac26fe24 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb0f5ca7c iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb95efc87 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbd3a41ee iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf6d98951 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf966f89a iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0884878a sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x28d173bf sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2dc6e474 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x459e10f4 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x578f022b sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x65a53e65 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x662970c2 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6920abcc sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6d684400 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x78f89c12 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9212e953 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa11f224b sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6317d59 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb3669791 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb5047062 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc49c527b sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd0a8045c sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd73c009a sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xda797121 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdf8337d4 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe119a598 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe8011665 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee96e592 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x25fc8e94 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x975058c7 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc6065735 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe12703f3 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe18ad661 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf22dd3c8 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x02db9456 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x380febdf scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x47ac10d1 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x52f209c4 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5cc41bb5 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x99987bb7 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xce38eae6 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe240b392 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe7d935d7 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x16989474 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x21189993 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fb40721 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fb7d659 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fe0b84e iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3330763b iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4220b038 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4ac9d46b iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x504a9924 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x583a732f iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x79fb50ff iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9c5e45b9 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9e307d47 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa542d122 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa56f5baf iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa77e799a iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb3288775 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb42bc1f2 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb48a1863 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe658306d iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe8d41d87 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf5d7a61c iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x11bc6376 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4660dfcc sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x539ca5cc sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe3154ca0 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x471b99a2 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x751a13ff srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x899228a0 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb7c115b5 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe6ab6ab3 srp_rport_add +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2fa45b99 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x55a7b22b spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x87a37377 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8ce03579 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x9e82a29c spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd469a24c spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0f5b649b comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x202e54bd comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x31652451 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xcf028832 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xeb785a96 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x1206a03b das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x9e869d5a das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x853bb98b labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xb69fed86 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x003c815b ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4a7281bc ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x70687e11 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x74e69a40 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x75f143ba ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x7e4ede4e ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xab070c2d ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf9f7063b ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x3e5432a7 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x879c65d3 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa63a517a ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xb05f4db5 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xcf3d4c37 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd987b56e ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0xbd79b6d2 st_register +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x844f3839 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xccf06d62 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xe4aef0d5 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x18097ef2 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2426247b usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3dae64cb usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7cac2f65 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x9ede01b9 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa7dc145c usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb109de39 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb7b5e526 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xce6f9966 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd366f62e usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe8831431 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xeb3d25b8 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xede5cc84 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf6993ccb usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf7ce25a0 usbip_task_init +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1f9c6e7d uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2bd23ac7 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xe8d724b5 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x293b0aa7 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdac310ef usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0ccb09e1 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5d0f676e usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x69dd58b7 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x768add0a ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7b3cd9f6 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x891281ed usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8a43c2e1 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xac746543 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf35c0022 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x001ba064 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x08bc2d7b usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1580bcf3 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2a5e20be usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3e95c701 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4605b987 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7d22dfc7 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x88be17d7 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x92b97d14 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9eab866c ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb958eeaa usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb9f58027 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbb83b34e usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd4cea3b usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcf34d77f usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd130b5d1 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf281e8f usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf9bd1fb usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xef071946 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x05e209be fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1a41b3ba usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x21bdef5c usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3d608008 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x528df765 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x57e62324 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5beab53d usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6a270076 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7f2ee8b6 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa2795281 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa2b0e203 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa76c9272 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xab0acabf usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb5e6ede4 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb8c44e22 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbf1a5c54 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xca174b4d usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xca990c6c usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcabe9438 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd308f462 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd7e6dc54 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe9a7599e usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf234e52a usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x1fd616fe __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5d50bf0b wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5d94624d wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x71d91c72 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x7e127481 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1b74c9c6 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1d89cffc wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1e082b19 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2429645d wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2462c1d2 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x27a76f46 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3138f53f wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3e0d9ac7 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x432e0f6a wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x472dda71 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f6dc0f0 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x83938211 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9b71ccc6 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa2388ac0 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc9c3ecc0 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf75a7f8a wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x0c27bf07 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x27218d65 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x662b1d1e i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x04ee50fe uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x0e293f89 uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x27d4657b uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x2bcbb99c uwb_pca_base_priority_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xa31d631b uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xc0a8aa66 uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe4ad89ac uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe6455304 uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x21bac704 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x75b6b7b9 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9eaafa2c umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa3690686 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xacb7a367 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xbf406fa7 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc3dfffc7 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc86b15c7 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x026ab9c9 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x02b757b9 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1024d81e uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1a4f070a uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1da3c435 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1dd31fe3 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1ed84830 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x235f24f7 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47ef86cd uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x52ab6108 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x55645834 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5efd1d65 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x632efeca uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c9df885 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x778c8a65 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x81d35772 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x829af69d uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x83c6c144 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8bb423a9 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8d1867fa uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x957758cf uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9bcbb567 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ce62753 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa08bb0b0 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaf068827 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb10eb84c uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb69ce2f0 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb807a368 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbe529f9e uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc6e4b4e0 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc994a584 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd2d2c4de uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe6ffe0db uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xea6836b9 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb988d88 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf518f6a3 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf786372e uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x672b34e8 whci_wait_for +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0b82a669 wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0fa153c4 wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x10411e3e wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x199cd80c wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1d01119f wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1ff4710f wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2c671f3f wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x342bf08b wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x36a339b6 wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3aed173b wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4035f072 wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4545cf38 wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x554000e8 wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5fc04b1e wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x74acd517 wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x75b21ac5 wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x82f18fdd wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8a6a7e95 wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8eb233f3 wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa5e330f2 wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa6950412 wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xba3c2209 wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc08a766a wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc3c85006 wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc651cdbb wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc7fd434f wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcde9f851 wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe5223ed2 wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe72c3e67 wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xea384d56 wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf58cf1c0 wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf611eb5f wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x264bfafc ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2b9de613 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6aea664a ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd3aed445 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xddd45e92 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xeddc0de3 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xee2464e0 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x39037aba fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x11358a8d fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x44740882 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x1134a57e sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x50233c65 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xc3d4d88b viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x30eada91 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x53ac3411 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7eefd124 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9bfcd1a6 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa326d9eb w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb75e2fd8 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc7267373 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcbf7f466 w1_next_pullup +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x2e1ad9b6 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x6256a1ec dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xbf94404a dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xa83e6b5b exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xe50baf68 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x01f84109 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x191e08e8 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x23913ac7 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x2c3ece3b fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x39e5b671 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x516f0dd7 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x7085e879 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x7d424fa3 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x8e12ddcc fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x91f1284c fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x93bc4195 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xab46e990 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0xb2838614 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xbccbc4fe fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xd0573d1e fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xfa244f54 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xfc6f8407 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xff1d0ce7 fat_remove_entries +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x019fa0c8 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x49308be2 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x62a7ebdd nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9f7d0b98 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xfb5acb3b nlmclnt_init +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x1584eeba nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xb9a67a18 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x424ab8ba o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x479b4a14 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x585ad20a o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x68245aac o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa224697b o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd5f0227a o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfa0c56e9 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0a5e2b48 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x217b76c2 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x350acd35 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x83d1368e dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbb4432a3 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbea4fe5f dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x38d893f9 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x3fa29cb9 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb2457f9f ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x012844ff garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x2339a068 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x35665ad8 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x4b766253 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x9622bab2 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xa3d4e0f7 garp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x12013b75 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x263e18e1 stp_proto_unregister +EXPORT_SYMBOL_GPL net/ax25/ax25 0x14822da3 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x14884948 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x04b483ed dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x081b28ce dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b13eb2c dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x44f8a72d dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x48331f6f dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4efd1198 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x53e70dcf dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5773e611 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5c004adb dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5f228ced dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x61c44177 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x63e3204d dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x64ec0799 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x65409080 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x674cdbb9 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7a24bcac dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9b5585c9 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9c6638cd dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9e85a44b dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa200423d dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb115f54f dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc007b90 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbca2975f dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc9b53150 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf714124 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd0509a16 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd0d99104 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdacd6a98 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdbecae33 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf57e456 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe0f40164 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9d1ad63 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb3f26f1 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xed26fb25 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf9d6a5d8 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3948821d dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5681db9f dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x92d0a20e dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9d0f0073 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd317be62 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xff274da4 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x354a18fb arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x74d3c0c8 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xb121899b nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x14c0c911 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1a264b29 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x291e158c nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x46eb01bd nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x63f6b0fb nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcad4ef9f nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe2116156 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf626cb42 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x09eeaac3 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x16f2df22 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x94506930 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd61a8251 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe27abaa5 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x8400ed28 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x143cd9f4 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2cdb3193 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2f3d2a10 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x37e9391b l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x449e1069 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5fa95f85 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x752c2312 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7f4a2c76 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x848660c7 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8ce0f946 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa0978d0f l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa4efd7fa l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb48a5d87 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbf0cc4a4 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xce53fee4 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe8322053 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xedde05f2 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x19b2d77d ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3f047f58 ieee80211_find_sta_by_hw +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa542db25 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02ad6f60 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05add8a1 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07b02077 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0983d2b7 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0ba1ff37 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0de0783a nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e82f030 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16427076 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18a4714a nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a9bb918 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ed9e0a9 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22372f68 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22fa4f5f nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ac9d77a nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b244719 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d1cd991 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2de60d35 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e18b77c nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31982a42 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39979db5 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x399dc190 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bb5b035 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40fea194 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x410563cf nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4238fe50 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47cf4add nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49d6a1e1 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54267ed2 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x607a6110 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61220955 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6257d0d6 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62aaad60 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fc63f19 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ff762ab nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74e78cf2 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76018233 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x769c7652 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81abe1b4 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89fa1f33 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ea69279 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f036145 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a4fa675 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c7c0bda __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e601013 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f9227d3 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa8f3ff39 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab9fb74a nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae4fba3b nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafc972bc nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb02d7f38 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd8baeb2 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc032d6f5 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc34a4028 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcdaac899 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcde43009 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd43ace90 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda332831 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda3481cc nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xecc870a8 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeed3c35a nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa6c3202 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x75b2ed59 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x819959e9 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x15afac7b nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x199e48a2 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x325ba3e6 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x42421b6c set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x444d0b77 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x85a1d848 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa38de40e nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc0f39823 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf40e9a94 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf66306b1 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x0357187a nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x041212c9 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x24800451 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9b4fd299 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfb72560b nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xa2188eda nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xbc3aef20 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x116982ee nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x15ddee28 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x20db1670 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2445469e ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x522f68ee nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x681f18f9 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6f11a553 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7c536a76 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8e734f2b nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x937c40d8 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb0d24fa2 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc951a9f3 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe33aa118 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xe9e57d1c nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x358961f6 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x48b0643e nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x02750256 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3d2b3cd8 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x67c43ddf nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7cfe957c nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x87ac22bb nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd7ebf3f7 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xf3241f8c nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x055e64c8 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x06fd91e2 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x159b241f xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1f06188e xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x225107c5 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2a846e59 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x30b32011 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x33f4ef69 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x418334fc xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x48c5e907 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4aa2ba5a xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x684694c5 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8a58e7ad xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8f2a4347 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x99e693aa xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9e4a02dc xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa62e426b xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb7a39b26 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc34136bb xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf142347e xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x0dfeddf3 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x1dc41c96 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x22658776 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2ac3584e rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x6c06f614 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7ebd12f1 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x7ec2e6dd rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x7fdd6f6f rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x820641d4 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x83e28e71 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x851dc6b7 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x8c2fb3e1 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x955bd5c2 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x9c14e876 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xa06b0b0a rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xa3533439 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xbc1e0f1e rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc4f3b69a rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xc7051767 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xceb7c7e2 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xd8ad8ffe rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xe0a4cdd3 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x1183087e rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xfd43101d rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x15a59aef svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1a6e2410 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x364c2578 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3d1df51e gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x46124ad6 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x527960e6 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6106d47e svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6e285776 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb0e9d5df gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc74608b8 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe76359e1 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01e6d99f xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x038a6e6e xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x047317fa rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0492912f xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04cd1227 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06c843a0 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0861f810 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08993a53 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09861a07 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x098776b3 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a015a8a rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a047362 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a7b910c xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d674205 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ed5767a rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10434736 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10f98fd7 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11d1f934 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1232b9d7 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15660c60 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x160d8874 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17297030 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f476938 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25d72265 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26b6b004 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x271bc669 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28a0e26c svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28a6c885 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2be36a24 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ce41a8a sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3115c5bd svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x316bd96c xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3487e79b rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35d73617 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38a284de rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38e85ef5 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a40ba3d rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cd480cd rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d60da5e cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3db90135 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ed4be06 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41ba2f24 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x426bc877 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x430f380a svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46f6ff11 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49cce2bd svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a052c1c svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a81f75c svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ddc6c5d svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ee00971 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fa578b4 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x523321c2 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x540a3ea9 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x551bef41 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x557e795e xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5717d03f svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a561c0e rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b491559 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e3484b3 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fc4eee9 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x631024b0 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65c983b3 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x666ea610 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69c56852 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ae7aa08 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5c0516 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6da163a7 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x703b6bbc xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7107c434 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77251d12 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x772c70a2 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79b866c3 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81e09909 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8218c9f4 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82587f93 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x884bd34d rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ed25a53 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9256101b svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95e3852a auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96451d1d rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98454918 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x997cddb2 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eaac6ee sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eb2e0fa xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1fc8168 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3c98bab rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6804cc1 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6f33f82 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa925e605 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa83c78e auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaec89f7 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac0a9ed5 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadc8c122 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaebd94ff read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafa1b76c rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb106cb88 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1a06a3b xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1f7aa34 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2d49cfd rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4b9c498 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb515c49b svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb524e82f xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb77e44aa svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb893f0b6 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdc2b79d xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf2eff24 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2812aa5 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc53838e5 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6123fc5 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca080e76 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbd7d099 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce9adf43 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf51a3e2 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfe379a7 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0b2a683 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd41344d4 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd93bfecf rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd95ff592 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9c03e99 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdadd5b24 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd1d1f32 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe23c0cb5 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2e32c9c sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2ec4835 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3be9439 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6f67db9 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8afd1f6 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedf54725 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0212ec9 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0d924a0 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3515fa9 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf444a779 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf45dde29 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf879439f rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/wimax/wimax 0x030548f8 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0aad28a1 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0b283cb4 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x168e6a03 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3a102783 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x41b05ace wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x492c75af wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4a03e869 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x50bb06a2 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x72713793 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xad6266c1 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbc40ea95 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xcb2314b3 wimax_state_change +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0fe433b3 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1518a901 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x197b669d cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1ebc510c cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1f431c41 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x306e9e0d cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x34942e06 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x38ca1cf4 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3de8105a cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4e4062d8 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5de2db4a cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6597509f cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x721812e9 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x760bb561 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x786a4d02 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x79f4c80c cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x829e9182 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8568712a cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x88be336d cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9ff80af0 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa3517697 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa784900c cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8e2be3b cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaff8a627 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb1f24538 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbae20b7e cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc7e2be87 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc81dc3ea cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcf37471c cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd9853a49 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xef8576b4 cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf287b0bf cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1f2efbd8 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x839de867 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9a310ac5 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb45804ea ipcomp_destroy +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x6eac249e snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x74b3813b snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x8b7fcdb9 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb8c2a9c3 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbe744d25 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd26200ce snd_ak4113_build +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x003dfa8e snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0177a2e0 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04797664 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a4194cb snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0da17a1a snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10d32e2c snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11a3021d snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12458707 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14ac9c15 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16e0a85a snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1918dc0e snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c51c30f snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d69690f snd_hda_eld_proc_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1e5a2708 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27f10678 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28779faa snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x315e2358 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34aa9af3 snd_hdmi_get_eld_size +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34b933f2 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36b3d7bb snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3792ec90 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e030d7a snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e5419dd snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x409bbe2c snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x442ba250 snd_hdmi_show_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4515d8c0 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x463e07a2 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x488d426b snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49e05bba snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c40ea01 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c711266 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4faa6eef snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5373f1cc snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55f2b9f1 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56d966d4 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59f93d5f snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a7ad9e2 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b677438 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ba7af00 snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d43b342 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5e70021c snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ff747ed snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60889cf3 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68b48d3c snd_hda_eld_proc_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6bd90a77 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bb6dad9 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7eff1299 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x808989ab snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86dcc756 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ae6baa4 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8bf58b37 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c60ea09 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94166cfa snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9500c8f4 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9772fada snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d391dd6 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6e5130a snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8ae0efa query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa973b254 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa3ce302 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf4c9874 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0edef71 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb3405a0 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbffe49e6 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1681c8b snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc56fd2c9 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6d01c0b snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7471a75 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7a14c5e snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb104737 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd797db6 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcdf2a7b3 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc333ff5 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde78ee2e snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe09e7063 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3b5af01 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4d0c69b snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7e3982e snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7fe630d snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe89823f2 snd_hdmi_get_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeac1ab81 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef02e5b1 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef2bcf1e snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xefc62015 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf244918f snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2b7353d snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3da7faf snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa58b6c6 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x554603ab soc_codec_dev_ad1836 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x9fc83a5c ad1836_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x663051de ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x83000645 soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x3dbb78cf ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x5f2214bf soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x3e144fd0 soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x8dbe9e70 ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0xe81458c3 soc_codec_device_ak4104 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x39c543e1 ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xb5b7b510 soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x6fe84a34 ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xed0c9abc soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xc4677726 soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xd8942207 ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xe398b573 soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xfb978785 cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xabaaca2c da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xe290db93 soc_codec_dev_da7210 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x9fd9ef8f max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x22fc87c1 pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x45344e85 soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x58ba7c9d dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x4e814b4e soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x8b1baf58 ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x87eb2128 tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x8ed58200 soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x185f8f1a aic26_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xe26cab6d aic26_soc_codec_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3195f3d9 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3ed73b57 soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x496cb892 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x58645194 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8b7aefb2 aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd906141e aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf8c0e67b aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xb3147c41 dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xefaa3245 soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x62fd0397 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x8f0b7485 twl4030_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xe10cc346 soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x829c83f8 twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x9e8386a3 soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x20b4a543 soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x110e992a soc_codec_dev_uda1380 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x3d4b0152 uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xbf5a064b wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc4967c94 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xd196ab23 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x0928852d wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x3eec7b4a soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x60aeaf68 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x6fd9fb31 wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x9c558a60 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x3724dd8f wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xa5f08118 soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x53fe4ea0 wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xdce332d3 soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xe4822693 wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xf588df49 soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x050159b9 wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xd332095c soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x6ff1cb19 soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xda879a78 wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x3bedd2c6 soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x3d3663f8 wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xbc75ce09 soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xcc60d12d wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x4d188b51 wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x6c751f77 soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x71e35284 soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xe5946dce wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x5ace0147 soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xe08b79f8 wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x243d216c soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x77dc43a7 wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x97f7e75c soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xa226505b wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x24b222f5 wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xbcdab49f soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xe0fb7db2 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x39b7124d wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xf39b2258 soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x56697448 wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x90fe4f80 soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xa0d3ee4f wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xec4bd1f2 soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x937a9bee soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xc1f66561 wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x0aaab6c4 wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x8a61aaaf soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x8ba3c098 soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xacddbd70 wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xf6d434dd soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xfc102cc3 wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x5a617bd1 soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x8bd2ecb8 wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x513d3cec soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x7d9a9c51 wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x37be1588 wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x9826dcd3 soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xb12a6726 wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xb30b8f10 soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x36e42230 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xc86e6b82 wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xfc4a19d7 soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x52a1c2f1 wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xc097e19f soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0xd84ebae9 soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b666c54 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bcb3c94 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1dcd0322 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e98d8fe snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f9a86f3 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2309a10c snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27cf4fcb snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d1ae6c8 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e0bea98 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x313682c9 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x330f5615 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x351314e7 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39d31b98 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b8a78a4 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d728531 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3fe3c9b6 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41a161cb snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x429832d0 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x439dfe3d snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x441355c0 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45a872ba snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48629596 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4864b9bd snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d2a7f81 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4dd74816 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5482e9b0 snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59062c0e snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5dd2875a snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ed474e3 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65a9af05 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x68136828 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x711a0ce6 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x722d5be7 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x769d53b3 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x775bbca4 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x77f57404 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x800f9771 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87c19d33 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b6c7a49 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x958c3026 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96281b01 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97f1f0d1 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x993ea13a snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99e24c8c snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1ca2f15 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa412c8d5 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6e2dbae snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa984798b snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xacd727e1 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb085caac snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0fa8a6d snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2d5b37f snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb58e8ba2 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb63c48e6 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba93e95b snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe916598 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc432a4b4 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc45e8be7 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc65f4d7c snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca52b2f0 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcce9853b snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3665f42 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9a1a881 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda0684fd snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdac9eb3c snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe25d7d50 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe41337be snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe468a2ea snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6ed996f snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xebc2c5ea snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee2bde7a snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xef48e121 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf00adf22 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2b8e0ae dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf3012467 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf517a418 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xffb3b57b snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x403287f6 xv_create_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6396f009 xv_destroy_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6da52fbd xv_free +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xb9d51915 xv_malloc +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xfdffb8fc xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x006612ca raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f5ce96 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x00f94fde register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x01173009 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x011777d8 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x0117d615 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x011bdcd1 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x0121139f dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x01378d91 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x0139bb7d find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x01511988 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x015fc09b rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x0199fd25 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01d06636 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x02474f30 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x028a0447 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x0302559d fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x03d8d457 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x0408eaa2 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0483aa21 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x04997f6e xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x04a95138 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04dc389c raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x050e679b wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x052c4a0e inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x052d77b3 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0551bc5c cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x0575bb49 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x05a86ea5 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x05be6c1e sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x05bff754 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x05c421c2 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x05fdc05e inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x06030463 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x066b1a8d crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x072f0b0f crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0744668b scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x075bdec1 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x077dd5d9 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x077e40a8 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07ce6280 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x07feffcc crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x08146641 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x0853bf55 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x0893baed rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x08a85c30 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x08a92dfc posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x08c20e34 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x08d1327d device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x091c6d35 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0926c1ed regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x095d762b regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x09670ae5 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x098f5041 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x09a0b0c0 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0a1d83f0 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x0a23764b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x0a5e4d51 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x0a9b5ce4 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x0ab2e512 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b22d6a9 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0b28739c skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x0b393a71 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x0b4212e7 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0b6d0342 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x0b6dfe54 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x0b6e7d8c tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c3339b8 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x0c5b73e5 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x0c7bf63b rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c8e3dbe debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cfacd15 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x0d2813f5 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x0d3bcf1a blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d6f039d dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x0d789816 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x0d7edcc5 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x0de7aa33 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x0dfebc52 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e1fb42a proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x0e26cda4 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x0e440522 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x0e4813ba sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x0e622f99 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0eaaa14a sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ed0c6cb ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x0ed9e189 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x0ee19ca9 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f028725 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x0f0cc014 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x0f3ea398 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x0f4d0bb9 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x0f785ed3 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x0f9874de unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x1003cfcc sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x10081dbe debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101cdb2d register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x10280029 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x102a3c0a bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10c74770 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x10fca4c8 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x11226008 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x112ade4a ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x118d61ba virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11bdb766 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x12099cb1 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x122d28a1 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x12569af3 device_register +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12d779ac inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x12e5f58b adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x12ec1dd5 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x1302ef9d shake_page +EXPORT_SYMBOL_GPL vmlinux 0x131a1bf8 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x1360d523 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x137aaef1 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x13a770cf class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13e39744 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x14061ff0 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x14291135 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x14320394 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x1445bf98 __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x145cc405 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x14760d04 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x147b93aa find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x148a0677 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x148ef500 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14d3fbb4 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x14e1310f gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x14e1a9d5 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x14ec39e6 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x14eeaa27 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x152e9661 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x1559e2b1 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x156088fe crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x1561b101 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x1569f0a4 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15fc670e pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x1616f2fb ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x16234e28 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x162560e0 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x162fc06e ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x1674cbd9 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x16a3bc12 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x16ce79ab bus_register +EXPORT_SYMBOL_GPL vmlinux 0x16e1187b usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x16faa11d simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x17466450 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x1754b02f set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x1763470e usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x177b99c1 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x17b21937 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x17c00204 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x17f55a9c synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x17f8f3ce ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x181f1529 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x1829349d inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x18655d56 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1886bb0f usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x18c31ffe bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x18ca270c kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1933100b attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x1992e7b4 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x199884b1 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a656e8 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x19d56c7f usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x19d57c3a dm_put +EXPORT_SYMBOL_GPL vmlinux 0x1a032602 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x1a0ef1b3 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a42e7b7 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x1a50695b __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x1a6c1817 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x1a957e66 tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0x1acbe74e rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x1b144167 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x1b6c0b2e register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x1b71dba3 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba8b745 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1be3cdd4 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x1bfbc7fa ref_module +EXPORT_SYMBOL_GPL vmlinux 0x1bfc6cf8 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1c732743 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cdfcebc usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x1d30392f kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1daf669a generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e52e183 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x1e67765a wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1e720184 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed42f9b crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x1f0fd8ee dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x1f34323c ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1f766a92 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fadbd4f __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x1fc3eee6 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x2009a6f3 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x209e1abb ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d13b03 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x2123f283 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x21288906 find_module +EXPORT_SYMBOL_GPL vmlinux 0x21a6761d devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x21a83cd0 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x21ad8d06 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x21c4ddf1 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x2206e2b7 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x223a3d1d usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x225b6846 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x22805002 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x229c6214 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x23023f63 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x230f1e68 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x234658d2 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23ca1e91 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x23d263a7 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x24993358 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x24ab1e54 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x250b9bb1 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x250e8f30 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x253a69f8 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x255945a3 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x2587e870 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x259869d1 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x262ca3f3 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x265040ac tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x2668e66b ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x266d6d5c tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26f7c89e sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x270c9232 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x271372d8 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x274cecd1 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x27949c94 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27dd901c pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x27efd7cf pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x282ce1d2 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28eb216c ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x291bc1f7 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x2976ca5d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x297c06dd transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x298b6e9b blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x299a1e6d sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x29aaf8ca __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aa5e0fd pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x2aac13c0 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2ae01e9e ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x2ae31954 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x2b432655 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b9c165f usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2bb0c056 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3ec922 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x2c50fbf1 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2c5b910b flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x2c7779bb regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2caf15ca crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d3cbca0 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x2d4bea24 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x2d4ff880 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x2d521d07 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2ded2578 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x2df59cec device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2dfb667c sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x2dfdfcf8 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x2e4487b1 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e78e47d dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2ee6d6a6 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2f03371b wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2f8c88af blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fdd4c02 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x3031ed28 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30c14865 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x30da16b6 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x316bc3dd input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x3175c405 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31bc5570 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x32281461 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x3263919a tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x329a6b9d wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x32c793c7 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x32c82399 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x32ccc3fe kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32f16df1 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x3328968e put_device +EXPORT_SYMBOL_GPL vmlinux 0x33392923 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x334b53b0 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3350ab73 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x3378434b bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33c49781 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x33ecc194 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x34188929 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x341a754a vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x3429c937 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x343e95be crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3461cbcb ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x34db2d35 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x350d5bc2 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3512df00 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x351b9b50 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x353d6d78 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x354b7151 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x3563cd60 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3614e083 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36864ef1 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36a6e774 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x36b5169c transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x36e35477 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x36e9f0c6 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x36f23ff4 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x371b6b3b crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x3749c014 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x37594154 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x376e6977 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x37e44ec5 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x380e3e1b set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x38571782 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x385df068 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x386fdb8a __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x38d1c6fd cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38eb4e7b usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x39baac5c skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x39c1626d sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39e27f81 device_create +EXPORT_SYMBOL_GPL vmlinux 0x3a0078f8 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x3a0e43f4 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2eea97 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x3a4a74ae module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x3a7acfdd save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x3a9c4eae transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3ba614bc acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x3ba6d009 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c433a73 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x3c86eaaf bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c95af3a device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cdfc0e8 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x3cf7346c pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3cf78ab6 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d166d58 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4b0c7a da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3dbbcf94 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x3dd9c033 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x3dda1035 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3dde3c26 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x3de2bb13 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x3e25d0b6 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x3e46203a ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x3e647465 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x3ea0b0aa spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x3ebc827c scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f8d22a1 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3fa53bc8 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x3fde8c64 ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x401a09f2 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x4023f540 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40a631f5 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40e56d6b n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x41079fe0 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x412fe2d7 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x41631eea cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x41b0d3fd devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x41df32bc setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x42033c60 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42973fa3 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x429b5371 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x42cb8aea ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x42eee679 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x42f1074a disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43499a39 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x435c8cca dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x43dd1a7d cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43f8d8b7 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x4404b75e rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x441a9227 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x443c5749 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x4459130b power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44a36ca0 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44a87075 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x44ab13e2 device_move +EXPORT_SYMBOL_GPL vmlinux 0x45234eea sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x45440856 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45942405 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x459d607b xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c6a2a0 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45f85111 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4688cf88 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x46affcf8 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x46bb75a7 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x46d2d264 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x46e6f55c crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x46fffb3d rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x47033807 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x47038a65 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x471e8a98 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x475763fc usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x47db864a led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x47fc48bb __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x4854c1fa devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x48745170 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x487aa854 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x48a26c96 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48ac770b power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x48b8a644 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x48bb7b92 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x48be2513 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48cee582 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x48d414e2 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x49223244 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x498741c6 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4998b130 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x49a170c1 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x49a58bfb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x4a4dd2c9 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x4a6457f4 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x4a821822 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x4aaeae30 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x4b23ddc6 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x4ba1cf74 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x4bb3814a skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x4bbcae2c sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4bdbdbd5 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x4beebca0 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4c316815 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c91baac sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x4cf3bf2b proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x4d0c1f92 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x4d4ffe8e ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x4d7d8dfc ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x4d817caf cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x4d92036f fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x4dad07e5 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x4df11e80 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4df8d19a ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x4e359984 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4e7202ea alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x4eacb0c0 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x4ef544af xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x5025c69d ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x509c6dce fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x50b319ce cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50bb1e84 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50d530c2 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x50d64d61 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5104894f ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5105d3b4 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x5195edb2 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x51c8eb6d da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x52015d4b rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x521f1685 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x52df3789 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x53035ee3 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53677102 user_update +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x540eef8a register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x54429893 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x545182ca ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x547a1185 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x548a1f17 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x548bef7b wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a387e3 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x54a987bd usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x550da5be ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x553134ad sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x55401030 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x554a77cd crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x555876bf usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x559a2981 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x559b3965 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x55d5c666 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0x561e1c10 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x565cd8da regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5673d7e7 acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56a265bd pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x56a3865b ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x56aae000 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x57380f59 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x573bde68 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x5792e6a8 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x579bd442 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57db7e6b usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x581c522e setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x58e3c046 rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x58f4a4c8 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x591ab75c generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x59292074 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5965586c scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x5970e340 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x59afd194 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x59bd5d81 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x59c98cc9 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x59db1ac0 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a39975c tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5a48fba2 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f245d crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5afb4b26 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5b71bd2f crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x5bbaaa54 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c0577ed unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5c860cfa ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x5ccc962a attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x5cd65b40 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x5cf730ab debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d24608d ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d375789 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d93b7fa pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x5d9fb581 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x5d9fbba5 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e550562 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5e6e8129 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5e889861 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x5e978e79 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5ed438b6 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f48e48b vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x5f5ed604 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x600bd376 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x605d83bb register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x605def7f dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x60670b20 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x606fe5ca fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x6079cbb2 get_device +EXPORT_SYMBOL_GPL vmlinux 0x6081e3bc platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x6088f51f ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x6129c621 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x6132f10e security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x61594524 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x61710210 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x617c0197 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x61946fe8 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x61a599fb rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x61d72b90 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x61e9a973 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x61fbd434 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x621ffdb7 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x6247ef9f find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x625b0cc9 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x6271cb53 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x62743201 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x627a705f rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x6294884a d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62cc2e6c hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x62eaae54 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x635ab778 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63a11cb4 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x63d2b925 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x63d78b97 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x63fe893c ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x643da368 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x6480d3de tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x64904c1d lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x64c1d634 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x64e10b3e usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x64e35334 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x651b8e07 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x6548746c power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6562caca xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x6578f0e4 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d44e0f pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65e4a1b2 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662afbd6 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x664c8866 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x6665056f platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0x66651c10 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x6679337d disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e200fa sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67d67fbd rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67e3381f pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x680dc140 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x682cbb81 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x688281b3 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68de9b1a fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x6925a382 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x696201ca acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x698024e5 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x69cf3e71 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69efbd01 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x6a050537 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x6a2c96c2 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x6a314c25 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x6a54455c ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a807896 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6ae51a49 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x6b15cc2a ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b4d7b50 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x6b5f0e9e default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b8d2839 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6b9a6fb4 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x6be38b18 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x6bfb0ee4 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x6c100a33 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cb74e91 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x6d0905ea inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x6d0d0cc3 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x6d2cbad5 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3adc8c xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x6d425b92 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x6d65b6df sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x6d823192 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6d8e9200 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x6dc0b8a0 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x6dc502da fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x6ddd050e usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x6de759be crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6df0529e usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x6df56fbf md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x6e1171b3 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x6e14c917 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x6e3167cd sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x6e583691 tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e676760 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e8623ca xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x6e8714f5 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6fa73a93 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff1410d ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x702483b0 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x702ba4c1 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x702d6e69 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x702fcadb scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x704cc9c9 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x708af49e ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7090672c driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x70ad3fc6 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x711e7159 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x7140ff21 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x7150aa45 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7169e9c0 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x71d23a8d platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71d99421 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x71e972e7 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x72555c86 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7272f195 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x73087d2e aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x7345d311 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x7346d656 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x738d0a03 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x73908fe2 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x73a23c0c class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73bbab61 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x73df8373 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x73fc531e led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x74220106 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x744be376 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x744c67fc simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x745a22b6 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x745e2759 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x747be397 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x748a5f49 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x748bd6d5 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74bd3345 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7526c827 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x75413143 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x754a4613 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x755d05de inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7569cf03 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x7580fa21 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x7581c9db sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75b33423 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x75ddd68a relay_open +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x765ddf37 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x766669ea xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7692f397 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x769b384f blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x77104d8a regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7752cf44 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x77c5d7cd __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x780f80cb erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0x7844910b zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x785ec1c9 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x78621159 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x7871a65c ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x78788200 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x789d0364 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x78aa4cf8 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x78dfd6f0 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x78e8f405 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x79021f72 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x7936c006 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7977ca4b crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x79b015c2 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7a1b1faa ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x7a26be88 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a5804b8 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x7a9c9b11 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ab1f55a i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7ad19c10 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x7ada5897 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7aefebfc pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b324a76 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x7b56f0c1 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x7b7c82c1 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x7b8f6e5f virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x7bd4479c dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x7c5e1e33 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x7c5e4823 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x7c5f5533 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x7cbbdc1f da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7cbdea3b get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x7cce44ef pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d81e7d0 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e4168ee crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x7e486a0c debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x7e5e301f unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e82239a rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x7e86318d rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7e9cca2e do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x7ec0a7ea queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x7ec147bf ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ef3e1ec driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f51c1e9 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x7f944192 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fcbe756 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff18beb inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8013effe get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x801e33cd sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x805d5aba sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x810919ce usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x813047a9 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8132237b blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8153316e ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x81a033de ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x81ab1772 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x81e90474 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x81f3ebf9 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x82145a24 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x825cab22 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82e6325c sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x82f8615a sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x830a07a3 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x831db88a rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x83348039 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x835376bf platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x8354342a simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x83d9c08e platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x83dcc40b platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x840880c4 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8459f864 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x84714258 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x848b51b0 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x852d8568 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8575c25b bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x8585ae99 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8599afc7 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x85b2bf69 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85f17b7e ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x8603bbf2 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x86359bbc devres_find +EXPORT_SYMBOL_GPL vmlinux 0x8656216c sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x867953c7 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs +EXPORT_SYMBOL_GPL vmlinux 0x867f2d8a class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86896aba srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x869566c0 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86a5d2c0 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x86c1d8bb trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8740752f ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x8747a7bd i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x874c3924 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x878a006b nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x87ad0c3a ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x87c148f5 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8895cac0 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x889b242d tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x889fc698 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b80cab cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x88d2db32 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x88e5d725 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x88f69fc8 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x890c66ed unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x891d525e ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x8990d480 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x89b12cc8 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x89f671c3 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x89f73b3c crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x8a227156 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x8a3a0ecb dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x8a3f8e8f crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8a6cf901 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a7a3fc0 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x8ab3ad80 pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0x8adf3014 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x8ae3e618 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x8b24f209 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8b5ff50c ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x8b662f6d sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8b984651 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x8bc62de5 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x8bf6334f dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x8bfe22ea eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c105819 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c72ce09 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8c91377a ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x8cdc6078 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x8d16e21c ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x8d2566cf wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x8d263203 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x8d8768e6 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8d9a0732 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x8dbd5849 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x8e30e1aa ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x8e36cab7 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x8e38842c spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8e620951 dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x8e7936d9 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x8e7ac4aa ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x8e97c65b pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x8ed66fec ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x8ed78157 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x8edd4f4d crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f26b6b2 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8f47a54c hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f5727dc class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x8f68c110 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f8e70f3 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x8f97f8e3 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fabf8bc pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x90053230 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x900a8d95 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x9059cead fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x9068ff3b __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9074ed7c dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a11152 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x90a94cbd sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x90c9a08f pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x90ce03ab vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x90e64a8b sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x9128d7f9 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x919a95bd register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x91c06478 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x91d293fe pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x920fcef9 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x922f1151 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x924a5ca9 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x92a1910c smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x92bd7b78 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x93303c69 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x9342e5e4 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x93861eee crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x9390e098 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x9395ce12 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e97efa class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x94276123 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x9429e525 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x94742a03 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x948dee93 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94eb2bc8 ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x951de413 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9549a7ad wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x955d0be9 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x9567b13b __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9595c503 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x95b65302 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x95fb944a sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x96147418 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x967fcbbe dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x9686f14e br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x96aea3e6 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9733b017 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x97420b5a securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x974ad6b0 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x9761df8d debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x9767a3a1 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x979dfb3e srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x97c3cba1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97e176fa screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x97ea8f51 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x9809da9b platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9869f8e3 mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x98d04b21 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x98d5c78e queue_work +EXPORT_SYMBOL_GPL vmlinux 0x9923b7fd firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x993fa672 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x996e1ac6 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x9993590d inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x99d7e321 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9a9d4675 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9b1be993 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x9b3a57c9 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x9b575b8a srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x9b5e633d xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x9b993a85 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bf27c12 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c529e00 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cf03d46 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d0b64a0 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x9d167590 __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d63383d ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9d9f4ee4 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9da9ce66 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9e115101 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x9e5aec32 user_read +EXPORT_SYMBOL_GPL vmlinux 0x9e5dc001 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x9eef272b ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f579a5f sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe14ca5 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x9fe23941 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x9fed952f usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xa07746c1 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xa079ed24 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa0974203 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0c9857b debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa120f3ba inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xa1247e87 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa12846ed vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xa12ae212 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xa1675131 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xa17915e7 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa209ea7a usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa236d886 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xa25c6f56 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xa2607eb0 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xa2bb0e30 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa3179c62 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3fbc407 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa44a11d2 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa467f168 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4a4298f apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa4d95824 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xa4ed60ac sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa50a61fd sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa50af69e anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa52621ca tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xa53f6fa5 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xa569956d ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xa5ba64c2 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xa5be7119 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa650097a acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0xa65ad576 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xa6647379 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xa6ba77bf crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa705eecc dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xa761efa8 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xa7809bdf usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xa7a35f58 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xa7b8601f crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xa7f488df blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xa80a7546 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xa80e850a register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8661b14 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xa869ce3c spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xa869f8ef inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xa87043d7 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xa8a5b653 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa8a9ab78 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa8bdf6ae sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa90d42c9 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa94c9f7b hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xa957fbad platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa96bdf99 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xa9c2bec1 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9d88c46 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xa9dd3a34 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xa9dfe4f3 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa11c178 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xaa125290 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xaa15786f power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xaa260a35 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xaa4947c2 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xaa6623c9 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xaa86ba1b cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaaa5fe2e rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xaacaf49f relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xaadddf21 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xaafdca30 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab59e421 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xab65ef41 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab8f9e2c pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xab99c39f hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xab9e8c45 user_match +EXPORT_SYMBOL_GPL vmlinux 0xaba0366b __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xabd93029 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabedd5f9 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xac5e102d pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xac680749 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xac8efa4a debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xacc354ca class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf7646c tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad5dc373 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadd3c52d wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae1cf796 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xae5b82f3 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xae69abff led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xaec5df59 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xaee1ff47 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xaf1c04a0 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xaf1fd50d relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xaf3814ce devres_get +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf4b0d71 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xafc64fb8 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xafee1425 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xb0763cc0 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xb08fb760 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xb091a5a4 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xb099219a led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0aeaa6b shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xb0ce03e6 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xb0d50ba2 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb0e497fe cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xb10814fb usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb12b1dc4 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xb13b36e4 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xb1601b8e proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xb16d8beb crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xb17f3aff generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb241e846 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xb26875f0 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xb26d81ce dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xb28d3499 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xb2b5bba9 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb2da13ed page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xb2f106ec fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xb31f0f58 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0xb323e3f0 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb3375000 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xb3a3497d ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xb3ce8d37 inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3ec8780 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xb402fa37 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xb40a5552 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xb4206e2d unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xb4b313a1 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xb4b4782b virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb536d8fa __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb5723206 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb593e76e ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5c98ac0 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6397a8e power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb6a1dc7b ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b793ad shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xb6cee900 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xb6d5542e inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb7527422 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb7d411f0 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7de8937 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7f4e553 erst_read +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb84470c4 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xb868e730 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xb86af3f9 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xb88717a1 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xb89e2a9c regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb9561687 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb98d9cc9 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9d13425 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb1c5231 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xbb2d701a ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbcc2f8a wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbcf0a134 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xbd2a545a ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd88827d i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xbdbc32b4 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xbdc91ea3 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xbdceb283 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe1e60c2 input_class +EXPORT_SYMBOL_GPL vmlinux 0xbe4749b2 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xbe546e23 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbead4956 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xbeb38a07 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xbeb5030a fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbeba8c6f acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xbf0c6f35 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf399ff1 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbf598909 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xbfd72a76 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc0563f72 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xc0926213 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xc0a86a4d shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc0b6bb31 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d518a9 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xc0f67a42 mmput +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc14f9a4d ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xc1512c1e invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1758aea pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xc17788be sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xc18f2606 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xc1d0c1f8 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc252aa9e use_mm +EXPORT_SYMBOL_GPL vmlinux 0xc257e4b3 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc29253d0 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xc29e5f39 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xc2b1cac7 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2e702af ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xc346d1dc ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3e5f29b smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc411c97d driver_find +EXPORT_SYMBOL_GPL vmlinux 0xc423f489 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc492f957 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xc4a62321 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc50dc179 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc537e293 device_del +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc58f7dfe devres_add +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc62a764c device_attach +EXPORT_SYMBOL_GPL vmlinux 0xc648b345 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc65d6021 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xc668cecc regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xc6cb96c7 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc741859a bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xc758d6bb virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xc7a4937a usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc85eb956 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8a29d54 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xc8b30aed inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc90de1ad wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc97d837f sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xc9addf61 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xc9ae4d6b unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xc9c70863 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d845 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xc9d55e43 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca0ec59e pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xca446862 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca998ecb xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xcaa0ec64 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcad6ebc3 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xcafb0754 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xcb04f8f1 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xcb179ecc tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xcb38855a bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xcb66aa3a free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xcb9ed4a5 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbfe0175 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xcc1311b6 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc755ed3 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xcd2f0eeb __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xcd80b8fd debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcda2f650 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdec6973 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xcdffb8af regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xce080082 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce895ab8 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xcecb49e9 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd00dc4a3 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd054f1ad pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0xd06827d8 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xd07c7c1d xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xd0ab85d8 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xd0c8397a cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xd0f1fe7c __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xd13927ff dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd17183b2 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xd190887e device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xd19bf231 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xd19fbdea kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd1acec1e kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd23fef97 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2d3815d ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xd2f140d0 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33b4a5d anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xd36706e0 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd396ee8a inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xd397ea41 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3dc57c4 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd42c894c ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xd47b5613 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0xd4998054 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xd4a914ac led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xd4ad035d wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd4d1ca4e cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xd5002653 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xd51bca3d usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xd51f8b04 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd5435ca4 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xd54f49f7 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xd54f813d __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd5524408 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xd5786dc9 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd5c5d57b ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5d488eb page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xd6314211 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xd643bd6f mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd64a71cb tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xd6657340 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xd6e8c697 __add_pages +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd705c168 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xd70b9a01 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xd7229425 css_id +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7832729 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0xd7b7cd2d sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7e41089 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xd8021a21 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd83667eb vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xd84e06db skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xd86a615f aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xd8858fab sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xd8895526 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xd8c585f7 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd8cb58c6 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd91b8d91 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xd93e06ef fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xd93e0bb9 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xd945ba00 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xd957b269 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd96589b2 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0xd9c572ce ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xd9e30833 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd9fe4c4a debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xda107e54 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xda5d99f6 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xda8fcb84 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xdaac3f87 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb19b973 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb2ac9b7 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xdb4b4602 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xdc1ebca9 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdc684cda kick_process +EXPORT_SYMBOL_GPL vmlinux 0xdc6f7d62 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xdcc327be crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xdcc33829 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdcf0779a __module_address +EXPORT_SYMBOL_GPL vmlinux 0xdd1893fd devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xdd27be8c md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xdd3ca60e anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xdd486d8a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xdd7f31e5 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xddd5284a ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xde1674e5 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde982262 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xdea73ea2 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xdeb1d2ac rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xdf07c728 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xdf172d98 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xdf197b1b pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xdf347076 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0xdf38f0fd tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xdfa18755 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0xdfaa5b52 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe03daa74 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xe03f53b8 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xe04ee054 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xe06f7d46 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0b93e62 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0f433f4 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xe113f493 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xe1e5e11f class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe1f21232 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xe264fb07 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xe2883945 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a1158f class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xe2f4ecd0 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe33e5027 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xe36d0af7 tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe3a85b05 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xe3d03456 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xe3e51025 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe45cf23c ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xe4866c6d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0xe494411c blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4ac1766 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xe4c26e37 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xe4e843a3 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe561da63 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xe5e1f4b1 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe5eb42f8 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xe6024054 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe62f4d26 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe6519c42 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe6739f14 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xe67b26b3 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe67d715f usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xe686d363 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xe6a7c46d sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe718df91 dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7683791 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xe76e483d crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xe76ef07d fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xe7d33984 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xe7e0d0f8 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8390852 tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8cb16ec __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xe8f63e47 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xe92f91a3 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xe93b736a platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe943bf23 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xe9440c17 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe99eddf3 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xe9c93c4b find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xe9ea594e mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea230ae1 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xea3757b3 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea7982bf blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xea92b096 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xeab222ba pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xeab9c312 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb4531fd rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xeb760e4a crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xeb839c16 acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0xebe44e5e hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec376e35 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xec3c6ffe cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xec543e11 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xeca740fb dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xed0da4b9 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xed5dc528 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedf0fdd9 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xedf1aa97 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xee047a75 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xee42f539 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xee715f7f wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xef0b97d5 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef209228 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xef4a7bfe crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefa9fd51 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xefd4e66b wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf01c6619 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf09f08c6 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xf0b643af dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xf0bf6920 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xf0c6e3eb tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xf106504e ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xf10bc06a usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xf1752ace sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf194840b pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xf1a298f4 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf228820b vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xf22a94ed uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xf24f0a14 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xf25f54a2 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xf26d62f4 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf314bbd7 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf35b2f7a class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xf395b63e cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xf3a9701c ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf40ebf65 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf4155e20 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xf4254033 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xf4506104 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xf498e491 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf4bcce5f pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xf4beb27b ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xf4e83afe modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xf4f9d463 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xf5030c1a platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54d31b3 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5593017 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf595a34c inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5c09718 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xf62dd838 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xf65b5aa2 device_add +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6e7444a platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ffc59f fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf71846f4 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xf728d662 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xf73861b3 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xf76384d4 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7be80d1 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xf7d65853 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xf8052957 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xf818fb5e fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xf84adef7 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf85c612d map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf86a5b79 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf898f1eb sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xf8eef49d blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf9266d1f sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xf933f1ca cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf964d537 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9bd6dec ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa64ef8b scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xfa6f64bd regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xfa8f5fa3 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xfabe2810 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xfacbe02e apic +EXPORT_SYMBOL_GPL vmlinux 0xfae0b0e3 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xfae2beb8 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xfb095ad8 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xfb0c2373 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb7ec7de drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xfb8084da usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0xfbb74668 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xfbbec4c0 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc15ae96 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc96354c __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcaf3ab8 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xfcbee8af ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xfcc23db0 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xfcdaa671 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xfced4afc blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xfd2008b8 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xfd47f2d0 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd6a8e3a crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd78ef4a dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xfd8f28cf platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xfd9b8d92 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xfdc839d8 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xfdcdc3c7 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xfdd6f87e sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe0137b5 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xfe2a6b34 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe7b04de fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed6444c pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xfef5b152 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xfef842f1 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff18bbdd mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5cffe5 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xff8f33eb pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xff94a7b0 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/amd64/virtual +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/amd64/virtual @@ -0,0 +1,11157 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x5d04d00b kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xbdcd0a18 kvm_cpu_has_pending_timer +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/acpi/video 0xdc7ed085 acpi_video_get_edid +EXPORT_SYMBOL drivers/atm/suni 0x818d7eb2 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xe12b440a uPD98402_init +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x8fd38ed6 drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xd3526f9b drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/paride/paride 0x029d5146 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x46b213c1 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x5b6f03fa pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x808324d4 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x836bbb9d pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x877a20f6 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xaff988db pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xb475f496 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xb879f625 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xc8d5c469 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xd359327c pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xf73812f0 pi_release +EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL drivers/char/agp/intel-agp 0xfcc4aec2 intel_max_stolen +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x098a3b61 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1c33f644 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1c9bbc51 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1f7800d3 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x301a1c0f ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x320bd29f ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x37c16904 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x38d1b12c ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4ff9829e ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6538376c ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x68497f43 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x70def5bd ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x729e473b ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x735ef48a ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7ce20988 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7e120cec ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x945b9079 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x999dc22e ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb986edc4 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbf5db4ce ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc505f3f9 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcb8880e5 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcaece0f ipmi_set_my_address +EXPORT_SYMBOL drivers/char/nsc_gpio 0x28fce86f nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0x2aeebbe9 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0xcd57cf8c nsc_gpio_read +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/edac/edac_core 0x22f79e78 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0x5cd27e73 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xd97bb923 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/firewire/firewire-core 0x01b48a9b fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x07cbf961 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0d419bfb fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16b77cac fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1f9f443f fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x22d79a4a fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x234c1cf0 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x239c100a fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x24457c13 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x26c20be1 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x272b2603 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x49a29946 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e86dd83 fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4f0c4262 fw_core_initiate_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5c767dc2 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6fb6815f fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x73a2a27b fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x73afa388 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9dbd341e fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa58bc2fc fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb4cc896d fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbe9f34f6 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd486e00b fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd78bd6a3 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf387b954 fw_send_response +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x014e10aa drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x015fe1f5 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0438b38a drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x047bca76 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06c64882 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a2b5da7 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0db37f99 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e6be1d4 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x127e9a1a drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a945f8 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14f5f1b9 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1856b6f9 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a217a31 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1abf31fe drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20fd36be drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23bc4e1f drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25ebd767 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x269cc479 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28de4b07 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2951d407 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ceda3ee drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ef54271 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f5fd26f drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f69f0e9 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x357fd9f7 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3751c8fd drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3972cb84 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ad7da56 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ada24d5 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e9c1c6b drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x404adc30 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x456d3ea7 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45bf9289 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46d02dfe drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x481fc0bc drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x482d58b6 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a009446 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a344a38 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f84bb39 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x518e5282 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51d48ee1 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5440b099 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54bbf231 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54fbc155 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56187ddd drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x563b6a8a drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5741a431 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57645c85 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5811978f drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59eeda47 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e6f33a8 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x611df268 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62d90d1e drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x643fbb98 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x649f32cb drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6512a827 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67f2ef12 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a6d19e4 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6aa1eb64 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x751dafd9 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75d8bdaa drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76382c5a drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a60c058 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bb0600d drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c8fb3ad drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e871097 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f28c6a1 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85b87c7d drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x885fd0ab drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e38c53d drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e5321e0 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95b25f0b drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95b92a94 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9cd3db6e drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3d726de drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa49bdfcd drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa51602b2 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa51ac57c drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5a626be drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa63297ac drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7b44aa0 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8b8773c drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacb807e5 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad904fd1 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadb19ddf drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadd5f6c5 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb05b683a drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb514f558 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95157c0 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb77d74f drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfe77b1d drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc049b0aa drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc38c80d7 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc483464e drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc623f15f drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca88c92c drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbb49c7b drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd77d985 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0279c91 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd16383a8 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd48b2bc8 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdaa05f51 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd3ec2ac drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe068882a drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2578f1b drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe46ea53d drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8326622 drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9281b94 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9804089 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecdc4917 drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0dcc980 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1897e93 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1dccabe drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3da2e8b drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf99dd9b0 drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa5b319f drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa5d0e50 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaf6094e drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb23a48f drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc575d92 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc886016 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe6e6038 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeae0530 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12abe029 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x37922858 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x55265652 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56134f57 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x564818cb drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56b22130 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6bd725f8 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6d87a7c4 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7cc36651 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8bd712da drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ed5e60a drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9709de8e drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99abc5f5 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa129de51 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa3e42e73 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa5721a5d drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaf07cbc0 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb093c5f4 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5132d36 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbf0f933d drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc480ae98 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc5417a87 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc57eb910 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcc9a93f8 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd2ac17c8 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4a4545c drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe96701d9 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9106509 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x04cad234 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07db5e8b ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19db9d0f ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c8bc052 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ec98563 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x20310cf9 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x210340d5 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b191a62 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f026af0 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36e1d161 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a7dcba8 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45d9bec2 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x48359de6 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x48863d30 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x59224adb ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ab24179 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5bf59093 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6069d536 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62dfcef9 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62ef7137 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x69913ec9 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x69ed48a9 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7141dccc ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x74df407f ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78923b7a ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85ee09fd ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88e4ab0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x90e8f620 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab0fda6c ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb71fd1d0 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64022a6 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc823d627 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc8a036e4 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc9d3b473 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca3c55d1 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd1d1641d ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd778e032 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd2233ed ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd7920f6 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdeced4d4 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdf2ffea1 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6652d73 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xedd02bc8 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xee6c638d ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa696d55 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc96fa68 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x43e0adb2 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xf0c11789 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x47eac6a4 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x9d7b8dc7 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x6433f7c2 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xf4c09341 amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x043f8322 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x063d8a80 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x098051f3 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x099ac1e9 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x16cf3f6e hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193d4b3e csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1b4236b2 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x225443e9 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x23662804 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2c5fa02f hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x31c4f61d hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x325509a0 hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x33d48513 hpsb_lock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37cd2e24 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x464e9db4 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4835c9dd hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4d9b40d9 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x554b947a hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5b7ed3e0 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x606cf241 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x611b107c hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x646a5aa3 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6476693b hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6864ad06 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x699abfc5 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6cde719e hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x70ec1bb9 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x71dd0910 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7d1a650a hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8232068a hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x87027e9b hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8779a48a hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x887c199d hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8fc8af2c hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x91521bca hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x916726be dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x922be22a hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x927ffcdd hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9585babd hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa7fbb7f4 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa86cc567 hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8898205 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaa4fb318 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xacbac6ef hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xad8432c7 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb44d65b3 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb9a3eb8f hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xba9e3ca9 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc16ef5de hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc195fda1 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc399c480 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc75c7089 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd1304ecf hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd5a1f0a4 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd5a5c07a hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe63be6ba hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf212d087 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3c12dd8 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf4224597 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf4da8e24 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf7afcd34 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf9f2b582 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba3dadc hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xff77dccb hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x73c3cb80 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x92313f68 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xdbef6f03 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd920f95b rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x03665c60 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x05795d01 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0fdde913 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1956e263 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x47a0d77d ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x53f25b7e ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6463f174 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7392fb4e ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x87112eb0 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9b95fe1c ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9e405708 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9f12e82f ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb0349c66 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb7d52726 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb91f7480 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbfa528e8 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfbaefd04 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a9ebbb0 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16782638 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a6a6a0f ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23d7e5b2 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x254533ae ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28312782 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a096118 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2bc868db ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33d16620 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3429bc4c ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x35ff9063 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39577778 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45ba06d0 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47963f91 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x499d628c ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d29f95f ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x599f54ad ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a5ae5e4 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a980430 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ab6d937 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6899b6a0 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x696673b5 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ebdee94 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ee663d9 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76c77d16 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77b2fa6f ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b614ff5 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b742609 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7cdafa47 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e7815bd ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81274c42 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8863becf ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a5abd8f ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ced4f8f ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90016b1e ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x946d2382 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x95ead1ee ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9636a99b ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x988e1483 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d34b259 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9f1f00f1 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa0527e1b ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa087dbc5 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac382aea ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf75a217 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb89e607e ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb3c63ff ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbcb2e1fc ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc219023e ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc3fa75e2 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4eca125 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcaf9bd6b ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcbffea33 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd167f2d0 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4b9300f ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdcae88b2 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd3fa3d7 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd60b016 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe04ae222 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe11772f0 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2835803 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8b845a1 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8bffcda ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe92aef55 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf256345a ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf71eb617 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1feb4fe3 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x35bd0dda ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x37836fc5 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3b094366 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x41e18793 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x631ec60a ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x65ab18a3 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6fe26beb ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x74c11f49 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8de1a7ac ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcdfe4d68 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcf97273b ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x09a31213 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x33349926 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x381f4e8b ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x53a436d7 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb4a7fb32 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc2dd861e ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfb78235f ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x510a1bb9 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x63de0762 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x92eb7fb5 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbdd4d7db iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc0ed998e iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc1dc1fc7 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xce016d04 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe0cf8390 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x06182ab0 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0926761f rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x14e06817 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1fa7dee3 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2add3f64 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x39c6f4e8 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x44325ba2 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x66b348f9 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67c5c999 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x69cf4652 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6b9ffe3e rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8fa4428f rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa303e00e rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa30cfaa7 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa8b113d1 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc071511b rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2d929b6 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf7191df9 rdma_bind_addr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1f92dd9d gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8043f907 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xac0772e8 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb8c38563 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbc6bf2db __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbf92d4c1 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd5893066 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xda279d62 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xeb5a4444 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/input-polldev 0xa7aea5f0 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xaa5af9b1 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xda7789f3 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf646c416 input_free_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb0ea0fb6 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd9682dab ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xeb8c452b ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf6ad0c10 ad714x_enable +EXPORT_SYMBOL drivers/input/sparse-keymap 0x33657b3d sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3528787c sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4df0d563 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7b07f0c2 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa5c82d10 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe9fa9363 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x06dbad7c capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x70c40475 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x15957f95 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1a0b5084 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x68410fb4 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x72853cc6 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8753888a detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa691fb15 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa9ff66ff attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb1d4093c capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc2025561 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc29aa9e3 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x00b6ca67 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0506573f b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1c699c65 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2842e72f b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x83062a83 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcb8210c5 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd02abaea b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd9ba7134 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdb8d3817 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdc40ec1c b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdf189250 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe4eb0aff b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe97faac0 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xeed26e98 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf92461f4 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1417ae1a t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x271445dc b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3b62d9c3 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6e7f0862 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x772f8d0d b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8f6ad9e3 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc50f9f63 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdcfecada b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf484df15 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x6c89d272 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x4472bb4b mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x4f103518 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x8c44f0a2 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xcd60dbb3 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x6a68c018 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xba04f0de mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x967acc01 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x2b679c02 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x67eddee0 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x74020eae isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x8098f3f6 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x9affc1ee isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x99cc5fff isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa752b60b register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xdf12d48f isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0d339c19 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x24b4c2e2 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x300c0a79 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4d6da8d0 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x505f9a92 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7c8db62b get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x810d4b9a recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x84794577 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8b3af205 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9c17e671 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9ff82a28 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa0506bb7 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xaf7396f6 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb6ffe502 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb98086de recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc36c77e8 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc613a5d1 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcc83a48a mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd00b49a3 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdc44f40c mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe3548a59 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xed173169 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 0x61b27eae ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/ir-core 0x66e4b64d ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x2fa1ab72 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x51849481 lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x8ad60ec7 lirc_get_pdata +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x92a9f9be lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xcc2a4009 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xd0c2c537 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xd89e7591 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xe4f8e0be lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x2685ed60 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xb0cef51a mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xedf8b9e5 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x5d40737c mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x6b65fc91 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x06484e41 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xc9d2dd36 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x08fd5720 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x10a2fe8b xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x16f6719c flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x294adb2e flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2cf7c779 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2fde3a83 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4834df4a flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4f49cf65 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x569f84d1 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b2e3096 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b6a05e2 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6847c8f1 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6e64fd60 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x75b979ba flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x79358b36 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb6d03ab6 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc44caa62 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd0e2f18c flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd15a5bae flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe509f9a6 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf3a6ee5f flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf730acc6 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x4583bbed bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x48614066 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x66572622 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xbc1032c5 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0ca32260 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0e88506e dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x47940889 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4eb61230 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x59b0d9b5 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x766634b5 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf27f42de dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf63f5e39 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xfdd7719e dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xfc45b2a4 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x01ada5ef dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x280842a4 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f7bdd06 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x373b1b77 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a2b3c0b dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a3aab99 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4dc0b8a6 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5550c372 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x62740499 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x66960b21 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6d964eb1 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x75dc0370 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76627e35 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x77aacbc6 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7d8904b9 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x82b5658d dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8e33ccd2 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9b221fc9 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa1125438 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac466ae7 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xaebab6ff dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc147d2cd dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca4feed5 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcb4eae10 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2fd6512 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd32e6483 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd8fc8ee7 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe161f960 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe1d7ba13 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe4906a74 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5abcbae dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe66489a0 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xefe94e7c dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf5ee0fd0 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x134fc00c dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x369be42f dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xbce86fcb dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd1f014f2 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd3b80a89 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe460d7cc dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xeb43d0b2 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd0d2e79d af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x38237b35 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x54e4bfe7 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x563439ae dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x614138b4 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6f334a02 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x75b10d10 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7c335483 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x838ea94e dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x925b8bc7 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa39c3442 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd077241b dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xc8c0feaf af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x59b329d3 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x92e71194 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xddf59c49 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x72a16399 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x51016fa9 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x99cbc3ca cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x32813652 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x33d11af1 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x584fcb9a cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x0237820a cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x820126fa cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x2e5535c4 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x5f266b61 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x61d2d1d8 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xbc455d45 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xfede6b18 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x35ea6f70 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7d8a8e78 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7edcf017 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9a46682d dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb3e69bc1 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xce9595bd dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xef56a67a dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xfff16d6b dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x8492b26e dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x0dde5e38 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x263644b6 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x720a173a dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x77da932d dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8800264e dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd142fd80 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x77684d06 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xcd96d1e9 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x12a76c25 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x30c5a040 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3d2628b2 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8eeec970 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9b66a147 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcaec2a85 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd524469e dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xfb0e7639 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0f084f2f dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1404178c dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x402f5b61 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4138d31a dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb56ae5c5 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc82da323 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd020526c dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdf798876 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf6d6ef09 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xfe4071d8 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xff36041e dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3ad17398 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x66231f8d dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xae1123e0 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xb5b19fd6 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x98fb6314 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xff715878 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xd771a379 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xf54be2e6 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xe2c6b99b isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xa0360c10 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x62e97cb3 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x06ed7e4e lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x954e1bdb lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x8179d696 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x158d1f6e lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xe0be60a4 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x52ab25a4 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x31b85041 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x15839c83 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x9c5b0773 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xa5773dcd nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xfc2d7e91 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xa6fcac2d or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x950450da s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x85feb607 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x234c106e s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x99e7ab6c s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x9d2f4160 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xac1cec02 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x9e948068 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xd4d7c69b stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x6de4acf8 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xc2f7444b stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x9e6db54c stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x6e3bcde3 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xc3905e31 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x6607c42b stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xbd253886 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x6833a4d3 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x005e9d05 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x42bffb98 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x21bb46ce tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x70f758e2 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x30c84023 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x59d9619f tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x23698056 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x65cbe35c tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x5bf56ce5 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x620b94f4 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xfd003756 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xc1a7a6ee tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x6b105f0b ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x06def019 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x6884b9c7 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x2a4f6f1c zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xc68cac7e zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xbc070026 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x436ed1c8 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x68a9d002 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x35af958e bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbf1ac9e6 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xdc0e5ddd bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x3e509d1e btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xf4dc5f1e btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cpia 0x294c6f66 cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cpia 0x952c4f8d cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2281ce0a cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x407e9f96 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x81d6dfd5 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xd2f15d55 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xfc65d4ed cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x352e26b0 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x5cc33ef3 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xb8c8c0c4 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xf735b11a vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x06c6aca5 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x36a3c479 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x7a561c8c cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x871cef9d cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8cb60311 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xbf9e719b cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2830ded1 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2eb5c033 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x59f47d75 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8ebce523 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xab75e4ad cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xede25174 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1a145f8f cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1b4ae621 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2a98ea11 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2eba9f82 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x39e5ed2b cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x40547a7c cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x45573eec cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4b55279d cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4d70e9a9 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x532eb494 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xad2ab8e2 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb5a32a2b cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbf2164a1 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2ba7451 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2fb3fe1 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd5a15197 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdd1a8cbe cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe4429bb2 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe62ca27c cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf0a3c87d cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf57fd871 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xff2fbd24 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x0a4e3e8c em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x28b05e2f em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x1491de63 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x15373bae gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x4ca5f0eb gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6ec084c1 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa690cca6 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xb8f27505 gspca_get_i_frame +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd4985bbe gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x199a0830 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x19b68031 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2e6db25d ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x304004ab ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4d1905ff ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7522523f ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7a689f13 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9e4b2adf ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xaa4ce0d8 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbc6691d0 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcd0b9f62 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x05580af0 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0eb5ccb7 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2f515570 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4eddb54a saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x829205f8 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x841a144f saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9bd61631 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9c7d1921 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa4fa3322 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbb2d87e7 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbe21e0cf saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xdbe7f5d5 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x24419dc5 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x4c2d4ba4 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x7ba0c0b3 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xe56cb778 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x38d00cf8 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xa695d1fb tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0d6c3add usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0fb32160 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x16f5b280 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x6fa1e3b5 usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xa3a86d54 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xc61115a0 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x7a6935a1 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x3abbbff5 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa49e61cb v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x774e16a6 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x89d237c7 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xb5ec28a0 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xed5a872d v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x09602f39 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x3e2cce04 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb7467e95 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc0a16d43 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc52d9f0f videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xd8a089f1 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x17a23042 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x29eb406f video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x32764905 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x36cca238 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x446c15b5 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x4bced313 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x569bb1bd video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x6f75561f video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xc966a324 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1c7d2449 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x4ef3ea38 videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x84d399fc videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xe50181a5 videocodec_unregister +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0c58e7d7 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0ec84feb memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1f7c49ed memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x34fa7cc3 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x491a043b memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x96ca8f9e memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa05ca53e memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xad35c218 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb7fa8274 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbba089f0 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc503e39c memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf97215cf memstick_free_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x006e88f4 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00dc217d mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x037d04a3 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0b8299cb mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0f60fe0a mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x148a8225 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1b3942e4 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x228bfb8d mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x282c12e5 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3b21f6b2 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3f2fbb41 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4210af4b mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x44d4bef7 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x533c1e26 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x566a152f mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6197e01c mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x744e0a71 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x77af40c1 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8f901258 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa8531e56 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbea59826 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbfeffb1e mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2daa8c6 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcb6ace8c mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xccca2830 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcf07987c mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd39a8fa5 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd56f53dd mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3cc5576 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x109eaac8 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1f5f0ee6 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x21634fd2 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x24ba8f6e mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x280c6d4b mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2a2ebda0 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3121b9f8 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x34f99396 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x35983b71 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4ce00813 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5b5fe0d5 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a6921ff mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x89c92ed1 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9af99a4f mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa1868e20 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xacd581fd mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb164671b mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbc053f6b mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc0406e1a mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc84b9d49 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcd7ce628 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xce748f76 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdc82d2cd mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe8bca8ac mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xefaff52d mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfb664130 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1b780ba6 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1d8cff8b i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x20ba385a i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x21492dd7 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x26a56cc9 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x37ebdbde i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4a7d9ac6 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4af62446 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4f1fdb0c i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5044b050 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x573f688d i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5c90cef5 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x607758b3 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6f0625a5 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9a23250b i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4a882c8 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc474417f i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd0d3df06 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdc0cbc62 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdcca9e79 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xeaa66da1 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf36a3c3e i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x193ee58d pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x39fd1da8 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2b8299cb mc13783_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3ba445f6 mc13783_reg_write +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x42240be1 mc13783_irq_status +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x4ef7deb3 mc13783_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x53f073d2 mc13783_lock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x65107301 mc13783_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x91e88829 mc13783_irq_free +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x92fb032c mc13783_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xaaa4dd0b mc13783_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xb979ac97 mc13783_unlock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe757f318 mc13783_reg_read +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xf95c2e21 mc13783_irq_request +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x890c3e7e ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xfc01b45b ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x0e43cf13 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x804befd8 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x6558c860 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xfec38845 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x07495056 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x211d0a80 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x3f5ceb5d tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x44cd2f30 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x6acd2b70 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x77be0a83 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8c38a19c tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x8d2b0087 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9b86a83d tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xe908bc03 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xea7014b5 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xfd4f4122 tifm_free_device +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x28926be3 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7cd723ce cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa727a07b cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xedb7ea9d cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0d543593 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x2de1c9d5 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7bf685ac do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb8dd9d02 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xeb706e48 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x8bb2e095 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xc631bed5 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0xbc68ca72 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xc28dc5c4 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x3ad12d5d mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xbc6f0c34 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe4c24577 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf7dc921e nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xc207e4c8 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xe6a475f4 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x227675aa flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5b24ed59 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x63cd4753 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xd2e7bbd3 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/8390 0x440994ff ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x52e91c7f ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0x530fce58 ei_open +EXPORT_SYMBOL drivers/net/8390 0x57746493 ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0x835278da ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0xb3eeb988 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xb704d5be __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xbcaf3590 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0xdad5d3ae ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xee5959ec ei_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00ad0a7d arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x32a65e98 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5b80803e arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8b920735 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8dbacb46 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa1b124f8 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa676510f arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc4551c88 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xcf4074df arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xef4ea7eb arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x6b097c0f com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x8c1f0808 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xaca70adc com20020_check +EXPORT_SYMBOL drivers/net/bnx2 0x28a3b229 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x740d9176 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0xcbd97a54 cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1350d100 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2383e74b cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x57d845a8 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5e77e812 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7e30ef5c t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x867d1566 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xacc1c965 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xae53be7c t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbcc7f42f cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbdfc84d7 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbedb6083 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc17f041b cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe0d88633 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe30272d7 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xea78e12d cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf74ab383 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0457c631 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x1f6692c4 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x25996b1c cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2a0fc225 cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x44c99c3d cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x670828a8 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8dee5ef0 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8fd169af cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x9fcbcf66 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa8342704 cxgb4_netdev_by_hwid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xaa369dfa cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc611b38c cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd7434534 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe62cfaf4 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3966676a hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xbc0354d6 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc442dc4c hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xda896cf4 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe66135cf hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x341c1ee8 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5c5c3832 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7e16745b sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8897f96a sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9395ac35 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9e9956d7 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa9e2b296 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbde501bf sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcfffa800 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe0a1e525 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mii 0x03859093 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x2e73e1bb mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x3548daf1 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x38dd31a7 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x8b30f075 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xb44e111a mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xc2bfbc21 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xf7053ee2 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x20269b18 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x36cc1f7a register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x6b18cbee pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x93b26227 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x27ed5f32 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x3a0c5899 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x75d4b03a tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd679de1d tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf152746c tmsdev_init +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x07364158 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x12dbb2f7 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1ca3935c detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2751f68f hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4fba2adc alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5271c0d7 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x54a5ce3b hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7684ca33 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7e54eada hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe34491fa unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe877507c unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xc0b344c7 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x0b355881 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x6cfe849e init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xc9e214cb stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1815f79a ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a9ab94b ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1e9fd437 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x90903861 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x20c194e3 ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x45752b41 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x68b9c8e7 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xab75927c ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xba7a2f8d ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe9c8064e ath9k_cmn_rx_skb_preprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xeffef22e ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0308e8df ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x173d0ed8 ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1adae6a4 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1dd22974 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2353c75c ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23b07776 ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x245dba63 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26330ebf ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b658949 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b7bed45 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2fa20113 ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35e77490 ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36668507 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b43ccaa ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eed28a5 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f147be5 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x484f2cac ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x489085c2 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49811e7a ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4990e06a ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b713468 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b722699 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c8066bd ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4cb1aaef ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e4ee6b2 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f6acf3c ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x529e29f8 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x533c0143 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x566a6ec9 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56a951a5 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56f80d8b ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5727e8b9 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5728e619 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x58b9ca46 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x590ec2ad ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5bcbe06e ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c0ea366 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ecccf83 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f9970c6 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60e71aae ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66f343fc ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a7e3843 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73cb0b3e ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7aa2e349 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ceb98f9 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80d33f44 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82eaf6f9 ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83b0cfbc ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x866a84ab ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x880b8613 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8db577ad ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8fdfe8d0 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bc400e1 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f42e37e ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa29ade27 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xacdf2071 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae1c3ca0 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0608ffe ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4296c79 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb74ce6c ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe0cf0c2 ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe810e37 ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf8b5a4f ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4d4bdbc ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc71c15b0 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7d84641 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca3f6e55 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1a7ceca ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd43c9861 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd63e92d9 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8ee9eb5 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda1ad850 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda8fbf6b ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbf3d72f ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfe491c2 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1450f8a ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe304e651 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe65e5a03 ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xebe1216f ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xecc3e050 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1074361 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8d526b3 ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/atmel 0x134478a2 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x20122882 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xc55bdf2a init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x05815336 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0d8fde63 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0da2b1b3 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12b4eb2d hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21e33edc hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2d76a3e2 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x328946e2 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3a91af76 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x459db54a hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4923162b hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4e329f33 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x573ce7e9 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5846dfb6 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x62c15c55 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6ada4504 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6b902656 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7a6f6e70 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8298af11 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9ba0332f hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xacb94ff7 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb3fa347e hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc3a7fe0b hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcd2f64a4 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd7dbe696 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf3b5f58b hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0949f1fe libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x10a01415 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x185ca23b libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2f74700d libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3b798f6d libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4092ca5f libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x423b349e libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x759d21b2 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x80f77e0f libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8335ecf0 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x90a2f23c libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x98e1dc6d libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa07051df libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa79b10b7 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa7d016e9 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb525fd99 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb66f5685 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc0fcd433 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xebe9647f free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf474da23 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf8e10b0e libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00a2a4d1 iwl_rx_missed_beacon_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01af828d iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x026ecb03 iwlcore_eeprom_release_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0efe4baf iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x138584a8 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x150e3faa iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x160fd34d iwl_tt_exit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x169ef0cd iwl_update_tkip_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18e4afd6 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a4c03fd iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d346273 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d6663fd iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d89d2ef iwl_rx_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1dd785db iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1eb94f63 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x20a2e6f9 iwl_dump_csr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x23f16cf1 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24619956 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24bcc670 iwl_init_sensitivity +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x276b4e75 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x312b87d5 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x34629d52 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35640f2e iwlcore_rts_tx_cmd_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x356a71ff iwl_set_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35bfbee8 iwl_set_hw_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x38310373 iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x38ec8512 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39e3ceef iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3b12d911 iwl_rf_kill_ct_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c1b9554 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3d3e6781 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3e89d852 iwl_sta_modify_sleep_tx_count +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40e53d5e iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x422fe75b iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x437d87d2 iwl_sta_rx_agg_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44ea7271 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x476957d9 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48606a5c iwl_tt_exit_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4973f5a3 iwlcore_eeprom_verify_signature +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a62641c iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a8d02ef iwl_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e21b677 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4f94df92 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4fefa682 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50424463 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x517ba903 iwl_ht_enabled +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5377ca95 iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x53f259b4 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x55e7b247 iwl_chain_noise_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5730c576 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57466dd5 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57dea2ac iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x581b00bd iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x583765b4 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5b894f49 iwl_good_plcp_health +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c5704b8 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d55f49b iwl_tt_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x601b2165 iwlcore_eeprom_enhanced_txpower +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x61543332 iwl_add_bssid_station +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62d228d3 iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63c123da iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x67dde537 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6958985e iwl_hw_detect +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c5a1199 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6e936686 iwl_tt_enter_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x75dfdcb7 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x77525415 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ab94f57 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7de25804 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8075621f iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x80f69698 iwl_sta_rx_agg_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x856433ac iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85f7ddeb iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x862c365b iwl_tx_ant_restriction +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86cb0438 iwl_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8969f792 iwl_set_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89fd20f7 iwl_dump_fh +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8ff021a8 iwl_calib_free_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x916e8df3 iwl_eeprom_check_version +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92b346b4 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92fd3f2d iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93e236cb iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x96cc0edc iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x98284c57 iwl_remove_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac93a4cb iwl_sta_modify_ps_wake +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xad8c92a2 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf2da7ac iwl_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb092f24d iwl_mac_beacon_update +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb18e65c5 iwl_restore_default_wep_keys +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb77b4e71 iwl_sensitivity_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8a2871e iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbd743d27 iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc04ed39e iwl_reset_run_time_calib +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc57384a8 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc57a9878 iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc5c4d64d iwl_setup_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc79a6500 iwl_send_calib_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca458cbc iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcceb919a iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xce028382 iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf8067a9 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd0f865d4 iwl_toggle_tx_ant +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd6867434 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdb37e7d5 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc2c4a50 iwl_set_rxon_chain +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde2ff919 iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde75067b iwl_remove_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdea2b9c3 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe409d591 iwl_sta_tx_modify_enable_tid +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67856e1 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe769e91c iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8d4eb41 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec9bd5cc iwl_tt_handler +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xed036024 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xee1792e2 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeef6843e iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf1ef436c iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2d0f90f iwl_eeprom_get_mac +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf35d71a5 iwlcore_eeprom_acquire_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf44d4a00 iwl_verify_ucode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf59feab7 iwl_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf65c8f98 iwl_reply_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf87f1c4d iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf96a4797 iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfeef0203 iwl_free_tfds_in_queue +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x00d5e2da orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x10471776 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x29e993f4 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3e6718b0 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4582b47d orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x51eb8b22 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5ab62990 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x60759065 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x625c85ab orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x704c6433 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x70fd262d orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb46d43f9 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd5880ade __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd6016490 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdd19d70f orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf9b9e8c4 orinoco_if_add +EXPORT_SYMBOL drivers/parport/parport 0x0a7ff7c0 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x11588877 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x13d5d868 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x204fad27 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x3151e58b parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x31f81a61 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x331ce6bc parport_release +EXPORT_SYMBOL drivers/parport/parport 0x374139c3 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4ef26575 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x5346c296 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x5855cd81 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x5c8c89ba parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x5fbd5b2e parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x702eadb0 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x72174726 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x766d590f parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x76ae43bf parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x77a4006d parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x78bcb849 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x7a733bba parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x85b52c77 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x8b350f5b parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa78ec4ba parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xd129fc15 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xd20c3a0d parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xdae4c74e parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xdd271535 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xdee8f9bf parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xf43155cd parport_write +EXPORT_SYMBOL drivers/parport/parport 0xf66eb9b6 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport_pc 0xf1f3e7e5 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xf91e2179 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0ffd6121 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x13c0c3ab pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x32fa4c55 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x40d3d7d9 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x606c606b pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6a38eb4b pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8ad697e1 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8b095f60 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x979361ac pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa6e46fdb pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbd8123c9 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3224141 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd2865b6a __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd43ca239 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe3dd6205 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xecd71a86 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xefd6cbfd pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x68e64109 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6d217098 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fb55f58 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa207c69f pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaa92ca78 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb42e9b30 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd8880aa3 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xea6e940f pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf70c545b pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfe732285 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x1ad84eef pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x496136cb pccard_static_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xc88ecee9 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0d00d12a fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0e27a893 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x23ba942c fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5e21c63a fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x82a72700 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x87d4635c fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb7bf2def fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09fa468a fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14b08093 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14e65e1a fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16a8caa5 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1df4e40d fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2061ec1b fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21717ab8 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24ede91d fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x350ca179 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x39681e80 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3a4033e3 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4188ba03 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x41d477e9 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x510c5b7c fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x530ae3f8 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x60143337 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66da9d8e fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6cfc734b fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e6c6e89 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f8c48d1 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x74a1a6a5 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x86ca33c9 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8cc73275 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a9fe083 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ca055ea fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ed7e969 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f1e3a78 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaa452552 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0140f95 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1360829 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb6bbd900 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb81f0bab fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc46012da fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce6cb4a9 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce70158f fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce9fb6fd fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd713af09 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd8b14ac4 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd99836aa fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xda2289bc fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2554f63 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xec94eabd _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x55240534 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0093c452 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06703b46 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0cfcc011 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0f8d3e38 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1a056cb6 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1a334aaa osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x243324b2 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x25760af5 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2c5acaa9 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3878fa6d osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x40da47d8 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x41c20ece osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4288bee1 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4f5b96c7 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x54bfe028 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7081d1f9 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x73a38af3 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x74f37fa9 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7efe0d40 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7f3f8f6e osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8433c3ed osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x95990ed2 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97605cd4 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x998abe0f osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa0b8eca0 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa63101f3 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa889e48f osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa9544a83 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc25b67ed osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd40334bd osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd5aa5756 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdf0eb5fe osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/osd 0x0ba3bac7 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x4c8d3fec osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6ece13ac osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7d08ce9e osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9fa4206e osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb352df08 osduld_put_device +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3f31051b qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x48ca80ca qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x58af1b93 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb8153151 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd0d71a21 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe56b7ae1 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x573816f1 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x790ee396 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xbdb123e4 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2040bb9f fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2db752ac fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x31d930d3 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x336e759b fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3e17c80e fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4ce07ef9 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5a5f1a31 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7d8e59a3 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x952488d5 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9bb6617c fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd2cd8555 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xde9f9adc scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfa0b87df fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x05469f53 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1abe41ae sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1bbcfd89 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2d412273 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x30d34e90 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3325b44e sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x334c29a0 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x46365bf7 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4891e20a sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x50e0764d sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x52624772 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5f17ea66 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6120eae3 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x630f32ae sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x669e880e sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7830a7ec scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c15012b sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x85798512 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa80b66f5 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb23094f4 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc7e74bc5 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd99728c sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdf29f4a2 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf9a2e1a3 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe1ca92e sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe7d412b sas_phy_free +EXPORT_SYMBOL drivers/ssb/ssb 0x0b21ba1f ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x20ff2aa4 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x2cac3715 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x40f2414a __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x45930fbc ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x47782225 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x4f2de613 ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x5145b879 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x57504500 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x5a901121 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x5f59aa51 ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x6b76ab82 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x7956f0a1 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x7c570f45 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x7d4a89a1 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x847b8e65 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xbac52f63 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xbe79de99 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc99589e5 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xcf62c217 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xec8c8bfc ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xfee532a9 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xff987651 ssb_pcihost_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x00296220 comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0ba27b93 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x5f7208af comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x71796b38 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x79fdcb34 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8724e143 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8b8fa62e comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa4169689 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc48151a0 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc5e8767b comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc9631831 comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb05e99d comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe31f46af comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe45fd4b4 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xed1309ee comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x23ffad83 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x69b704eb subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xb26afb2b subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xf7d04ef3 subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x19d7303e cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x2522f0e3 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x34545ecb cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x39e7af18 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3c4883be mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3cb79c39 mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x47ce42e9 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4956cadb mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5e68dd06 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6906ece2 mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6931db6b mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x695ddabf mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x721405ff mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7f9d008b mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9771dd9d mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x977560f2 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x983c8961 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9cd5996a mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9f25b97a mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc90ef542 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe79d6d14 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf11acbd4 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfcccebdd mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x1cb5b41c subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x7c91ccd8 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x7e4a077d subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xc4111177 subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0xff01ac8c comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x24028c0e comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x4d41bcab comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x66a0a06a comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x6ff9895a comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xb603c6d6 comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xd3cc1d3c comedi_close +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x034962ae cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x147bec08 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x167de4a9 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x2eaa21a0 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x2f6449d6 cx25821_dev_get +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x588108ea cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x5dfd02be cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x9039246b cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x1902e3f4 go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x8ed15fb5 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xbbdc069a go7007_snd_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xbfb9bc3f go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xcb87327c go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe0a37e95 go7007_read_addr +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe8c3825a go7007_snd_init +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xea51e537 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xf1e2e4ca go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x69679c04 vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xe4597365 vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0477eaff __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0cb2e95e iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1753d77a iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1bae256a iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x23e2149d iio_read_ring_bps +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x23f43b73 iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2c7e8071 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x333ee519 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x356a00f7 iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x35dcfbe5 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x36579e6c iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3927d2a4 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x49fd6502 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5eef6ddb iio_free_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x72b2d80c iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x77e43de2 iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7d82851d iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7edf6482 iio_get_new_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7fb3698e iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x89348e82 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9120d717 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x97026074 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x985fff58 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9a5f7475 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9ce372db iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa1076e05 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa364b369 iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa4325651 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa7f5dafd iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb0ebdf51 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb3f89f12 iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb66aa76a iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb7c81b35 iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb9be22cc iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc33f9990 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc544f1e8 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd66abfcf iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdc740988 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe0158144 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf5a41ad8 iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x02c6caee iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0af30ce3 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x226fbbe1 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4136ac28 iio_set_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4c44b163 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4f99e1ff iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x5448149f iio_get_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x761a67cb iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb60ed9e1 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbf7206ae iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc7e6a04e iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xcd83c31a iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe9678793 iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xa4e82d87 pod_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xb008b37f variax_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xc4f2fe4e variax_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xe4a131e9 pod_remove_files +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x11452eff rar_reserve +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x785e5269 rar_release +EXPORT_SYMBOL drivers/staging/memrar/memrar 0xd0382ff3 rar_handle_to_bus +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x0072de2f rar_get_address +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10a7985a ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x12a1c5a2 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17ea1c89 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1a25bafd ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1a34b74b ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x201102e0 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20e47ef5 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x242566fe ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x256d2456 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2af37648 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3098ce55 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3142f53c ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3387399a ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42d14329 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a243935 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4ce335a6 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4feb943d ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x52aed9a1 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5789d033 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x599acbe0 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b45c70a ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b563c96 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x64de674d ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d54e58e ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71eb483e ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x72ec057a ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7758644a ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f4c4cb2 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x87326433 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x88f8b28b ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8afeef73 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a07cf15 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9ad2c13b ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9caf479b ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9fdc56c3 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa2499c96 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa559d0c0 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa9e97de8 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb6d341cd ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbabdd330 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf97801b ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc3afacfa ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc82bbe60 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd2fb531a ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd3e89128 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd44a4181 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd8ebf3ca Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde3099fd ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe83f6345 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecfc96f0 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeec2d94e IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xefe9e7a5 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf64d12de ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfc768ab3 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x41c3497a tm6000_register_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xb3ece4c2 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x047f8b85 vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x0575a973 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x11b8b0f4 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x2da6b116 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x3fb712ce vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154 vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x5d150e74 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x5fffd071 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x684c76d3 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7754663b vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x86f484ea vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x8b851f35 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x8bbd078c vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x96e8825d vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x97e340eb vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9bacc655 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x9d279035 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xa6bd2e26 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0xb9d0fc37 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xd49852c2 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xeaad9ff4 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 0xa462eb75 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x39e3cb50 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x6ebf64c0 phone_register_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x0535f634 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x752cd160 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xc10f8277 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x5e4e7c37 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x13ee4f94 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1b54a125 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1cbf006c usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x656f42a6 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x72bf4081 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x791873a2 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x829a2acc usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8560ba95 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x954c44e8 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa2644f81 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb65d7639 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xca6f55a4 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcece3786 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf46005da usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x250ea57a usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xe2e22597 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x38feb6af lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xb454a44f lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x153ecf79 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x436a9bba cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x67cbc967 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0xcf58333f cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x1f6c09b9 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x23b2a137 display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xc295ff7a mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xae3f8d09 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc9078d39 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xfe7c7199 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x5c4e15f4 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6be8b06e DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc5b95e88 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xdbfe68f2 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x2c558548 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xd2360e8b matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x01255f23 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xbcfea9a3 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xcc1fbb86 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd3565606 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x07f2ce42 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x981068df matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x7bd14bd9 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x8224af47 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa3099a1a matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa873d2bf matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb93816f3 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xdfab01c7 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x694e0f9c video_output_register +EXPORT_SYMBOL drivers/video/output 0xddc3fe36 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x15dac265 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1bf41060 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x903e607e svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xbb938d9e svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xd62602e4 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xdd038256 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xe9de61ed svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0xd4eba4b0 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x673144fd sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xcfa7265f sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x3d1ad6cf w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xa578bc8a w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x3d3ff1e3 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6765d388 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xbf1a35d0 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd0e625b3 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x16718449 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x178d2dac w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xa8106045 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xf8aad39a w1_register_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x0ebdb6c4 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x0f69e26f config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x0fb0b3c3 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x44cd54ad config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x5bb17d99 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x92fc864a config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xaa02c70f config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xb15302ed config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xd2462a53 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xd27d9492 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xd3a4c9f8 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xfa43359d config_group_find_item +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x292efdc8 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x298e4e0c __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x2be17204 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x44ecfd3c fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x5b3721de __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x5b687cfc __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x5fe2c604 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x6944a15a __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x780ee8b8 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x7a70502f __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8d6d33db fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xab1a79b7 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xc08d1630 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xc74c0c00 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xc80f8fa8 fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0xcafc020c __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xd6923e5d fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xd99eefa8 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xdd56964f fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xdf554557 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xeaa494b8 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xeac42ff2 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xeccc6d41 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xeee0d5fc fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xef9a7b22 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xfd901469 __fscache_unregister_netfs +EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/quota/quota_tree 0x241902f0 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x499ad0fd qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x7b46946b qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xe13f8e5e qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xf55e7606 qtree_delete_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x12b9b7be lc_reset +EXPORT_SYMBOL lib/lru_cache 0x1730df11 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x3300b71b lc_create +EXPORT_SYMBOL lib/lru_cache 0x6676121e lc_get +EXPORT_SYMBOL lib/lru_cache 0x7956b0f0 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x79e974c5 lc_set +EXPORT_SYMBOL lib/lru_cache 0x7d40a63f lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x7fca3b45 lc_put +EXPORT_SYMBOL lib/lru_cache 0x9496a4e8 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x96d83587 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xbeb91553 lc_find +EXPORT_SYMBOL lib/lru_cache 0xc46dd3fa lc_changed +EXPORT_SYMBOL lib/lru_cache 0xd544d04a lc_del +EXPORT_SYMBOL lib/lru_cache 0xe3ebb5a6 lc_element_by_index +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x0f784c15 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x784f6347 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x06b0ee76 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x07d75f18 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0x19b4857e p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x25858d8d p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x2e303f96 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x339747f9 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x3476e63d p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x370524cc p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x467fd093 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x46f80520 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x4c69d99b p9_client_version +EXPORT_SYMBOL net/9p/9pnet 0x51bb5e39 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x6a1f7762 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x6f6d72e3 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x7d8b7bce p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x7d9551dc p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x816356a1 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x8ba823ba p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x9c831e88 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa75932e1 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xacfbf022 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xb08bfb69 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xbbccabec p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xc046e11f v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xc993b3a1 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xd644b420 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xde59b37b p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe87bc9ec v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xf1364f05 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xf71b4e42 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xf8bcceb8 p9_tag_lookup +EXPORT_SYMBOL net/appletalk/appletalk 0x0ffa1a4b atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x463f51e6 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xd3c6c9b4 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xf5917953 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x36fdeec2 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x3c8ca358 atm_charge +EXPORT_SYMBOL net/atm/atm 0x98ac04b9 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa6a1753b vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xa940afa4 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xa9e99546 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xae96dbf9 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xb101452b atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xdbf1a6c9 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xe799de66 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xff582d79 atm_dev_register +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x1ba3cfad ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x4ca0cdc3 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x7b2f0e28 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x7fcc9957 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x8e7d8bef ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc3e6c3e0 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xcd956fcb ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdb4637a6 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xe579c251 ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x033679a5 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0a3aea51 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1070224e bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x10f6f7fc bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x14c9ab01 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1ab637d9 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2acb09e9 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3dd52a94 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4948a56f hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6144b35d bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x61f0f95a hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6dacaba6 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7590f6b5 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7cd2b418 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x89f5452e hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c8ed4bb hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa1670df3 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xab2e9bfd hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xab5b5504 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaba9269e hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xadfab291 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf659d6b bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb8d837b6 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb8e3e84d bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbccc11cc hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcfa8b21b hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5767218 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd99a2a84 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xebe8ad1e hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeef66774 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf376646c hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf926d704 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x1f678c21 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x036fd513 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd2d8ac3a ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd8ecba7f ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x05afd6a4 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x1a3945a5 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x2976e5f7 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x304adbdb cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x31b99d04 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x39752116 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x487a3f67 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x49023f78 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x4a453259 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x4bbdc278 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x4cae0b93 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x5596c67e cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x5fd634a2 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x61c31df7 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0x692fa9c7 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x696b037c cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x69fafc2a cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x6f6066c6 cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x75a0d41d cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x92b0fcc0 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x9821be5e cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xa2afadef cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xab93eb44 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0xada8453e cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xb0f1ca9c cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xc646df70 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0xca513c1f cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xe17ccc1b cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xf72efccb cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0xfc36ad28 cfpkt_more +EXPORT_SYMBOL net/can/can 0x0ecbd62c can_proto_unregister +EXPORT_SYMBOL net/can/can 0x1cbd5ce8 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x481a4cb8 can_rx_register +EXPORT_SYMBOL net/can/can 0x574089ed can_send +EXPORT_SYMBOL net/can/can 0xeafd5548 can_proto_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x45c73264 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x51970bc2 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5e58c772 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x670a5141 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8127db83 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x812a5c6f wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x817c2b85 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9a54d9bc ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9ab60743 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbf664cf6 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc19dd208 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc6b098dc wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xec327219 wpan_phy_for_each +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd0a97e62 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe224faef arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe7534893 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00b5c436 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x8213ba1a ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x8d6bea3e ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x07f07bc2 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0d7e7a73 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x12e69f0b __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4ec46f1f nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x50d07b0f nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5a9b1c41 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd61f7a1b nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x67a49035 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xb836fcea xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x07d09577 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3968112b ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x88cf357a ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb643a5d1 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0xc73966f0 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xf293f6c2 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x3cc79009 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xa42d4fb3 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe650a7b8 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x092e6e97 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x28e1a150 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x30d69088 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4b8f23a2 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5a9f4841 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8f135cf6 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa19a2d66 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbadbb4f7 ircomm_connect_response +EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x1a7e1625 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x273abf2a irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x28b079a2 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x3538349f irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3e5e8acd proc_irda +EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x4626aa4a irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4a89f833 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x56e103b8 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x68bcc8e0 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x69afc313 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6bd6352c irlap_open +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x74700982 irlap_close +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x851439b7 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x90d5766e alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x92372e26 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x9617d1a8 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xae032335 iriap_close +EXPORT_SYMBOL net/irda/irda 0xb865e522 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xb8c322c7 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0afc887 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc5ede59d iriap_open +EXPORT_SYMBOL net/irda/irda 0xd06e7530 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xd23610dd irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xea886a95 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf26ad456 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xf3de1ffe irttp_close_tsap +EXPORT_SYMBOL net/l2tp/l2tp_core 0x0931e1e2 l2tp_recv_common +EXPORT_SYMBOL net/l2tp/l2tp_core 0x891d7ae6 l2tp_tunnel_destruct +EXPORT_SYMBOL net/lapb/lapb 0x0d152461 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x1c630684 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x60efb508 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x78490693 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x83d5e3fa lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x9e0e82e0 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xc7965eb0 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xe622b0b5 lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x068c823f __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x07780644 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x0d6d1c3a ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x288d0984 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x29804207 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x406005e7 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x4765f4e3 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x4aefaa95 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x4afdd6e8 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x51d9b1f1 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x5842c8c5 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x59242524 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x5c29a900 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x6dccd0de __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x74537799 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x791c8b8a __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x798dd764 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7a762653 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x7bcc4aad ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x8d3783bc __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x8f48b1a3 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x9bce1a3b ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xa02434be ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa14e2005 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa2af7dfc ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa3f354ba ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa9e7c79a ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xb35f9309 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xc9dde591 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xd8463ac4 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xda8c82de ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xdcd7da6f ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xe558a468 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe947e988 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xee5b4736 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xee8c7d74 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xfdedd846 ieee80211_register_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x02228403 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3da22a33 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x40de24dc unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4ddc87d4 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x632cbd11 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x746af0a2 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x74f740f1 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x77a96abc register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x85111a43 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8d51ccbb register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9ac18b20 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x37a60913 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xbc72deeb __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xd078a8b9 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x182df34f xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x42175d30 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x594115f9 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5abbca2d xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x80f7bfee xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x881c0209 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xbc038b6d xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xc1ef992d xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xc330b200 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xe39256a3 xt_unregister_target +EXPORT_SYMBOL net/phonet/phonet 0x203dac5e phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x22918010 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x2f9ab663 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x61fe7678 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x717d4917 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xca47cb9a pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xd81810cf phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xf93b26ca pn_sock_hash +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2d9fda8b rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x323e13a6 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x332c2642 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x40f80093 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6da58b84 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x77aab967 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x81fed087 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9fd14ec8 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xabc979b9 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb1f3df30 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd06ef790 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd1611d82 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe75bf58c key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf27e5816 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf85b97ae rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdf70d7d8 svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x1ddb46fa tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x5d8a491e tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x70e34716 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x7d08133f tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x8140afef tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x8717f94e tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x87a8e015 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xb5d41ffd tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xca2570c9 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xd2c33398 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xed1c7462 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xfc11a648 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0xb850281b wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xe2a55dcd wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x00701304 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x0109eea0 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x02e9ce0b cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x0817ec85 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0be7ebc3 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x10d77bc0 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x18654ae8 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x21f214ca cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x26090213 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x28c721b7 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x31563964 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x31e0e998 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x3522e102 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x400b66e7 cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0x4df6b866 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x51f3408c cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x529c0b0c cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x53e36c6d cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x5604733f regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x61663ceb cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6a914c16 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x713d4563 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x74d677b0 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7dcec55b __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7f76a59b wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8207ac9d __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x8569715a cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x8a6cd1a0 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x97dd46d3 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x989d3533 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x9a393558 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x9c2d5910 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x9faaa98f cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xb286192e wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xb6cdd209 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xcdd0a69e ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xd3017438 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xd9bf2677 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xe26c3352 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xe9044c59 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xea6af4c8 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xed0a3e67 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xff6f1b8d __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/lib80211 0x22e67479 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x31d5976f lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x375649d7 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x63310733 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x827460f2 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0x9d54e352 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0xd3b190db lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xff6a2aba lib80211_crypt_delayed_deinit +EXPORT_SYMBOL sound/ac97_bus 0x9452b9c4 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x01a65ee4 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x03b2e13b snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x86f58123 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xffa4a741 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb5bf18cb snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xe44e4e36 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xc25e4b28 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x014fb73f snd_device_new +EXPORT_SYMBOL sound/core/snd 0x04888173 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x1155bee2 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1b828afa snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x1f3c1d86 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x20a23d79 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2566175c snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x25803879 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x3667c980 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3c9bda32 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x405d0d1a snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x4152b19b snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x42d30573 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x4346c885 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4ecc3a20 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x546f1b2e snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x54caed48 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x58aa5007 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x5e5d7b19 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x5f26749e snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x6820432d snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x685bed3a snd_cards +EXPORT_SYMBOL sound/core/snd 0x6bcf212b snd_card_free +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x7c02e9e7 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x7c4245d1 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x7e99da09 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x8016ad79 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x856e0cbd snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x94ae6cb9 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x9c71b6ac snd_card_create +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa9d770b8 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xab5ad110 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb3c080ad snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xbf0b2324 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xc3ff1e22 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xc8537719 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xcf97b3d2 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xda3c7485 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xdcdea6cb snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xdd5aeb1a snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xddf3fbd5 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xe0469506 snd_device_register +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xf73d7d77 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xf817ad36 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xfcb2c687 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd-hwdep 0xa76a4c8a snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x03bede4f snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x071ab525 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x826ffcea snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x89a3f2f1 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xadf1627e snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x025fbad7 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0d92c0f4 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x0e28be67 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x1345c958 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x13ce3d42 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x1c06cee5 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x20f8eed7 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x3167f504 snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x31880cf0 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3b60b79e snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x4013572a snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x42b0c30d snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x473b4446 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x4967fe4f snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x54be8c17 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x5bfec1c4 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6bce825d snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x6deba28a snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x6e685353 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x7176823e snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL sound/core/snd-pcm 0x723bfc7c snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x756cfe9a snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x7ab7a13d snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x7b339cb2 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x7fa084bd snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x887d7efe snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x8cd44d9c snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x8df7a157 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x94834d2f snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xa56fa0a7 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa89d1148 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xaea7fa14 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xb02b7d84 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xb5abb6e4 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xb72e90d1 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xb73d7bcc snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xb9219adc snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc4202e08 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xc504c371 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xc77b96c9 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xcbc3e938 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xcfc93643 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xfe5665b0 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0e112605 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1faafb19 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x24285348 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4e62ae06 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8b4111e7 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8e6bc106 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x97786b9a snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x99247ca8 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa4bf268e snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb59e7f4d snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd29b57f7 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe7707b9a snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xed0e401c snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf4d87322 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf5277bb4 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf5aacd53 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfbf85b7e snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-timer 0x03ce5dd5 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x041da23f snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x0486743f snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x0576b96f snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x09e90208 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x0a9f6898 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x2a8050c5 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x6b60ffd8 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xa036043c snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xad037b26 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xba114c61 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xc13aadf2 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xc567364e snd_timer_pause +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x11e7bbcd snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0038caaf snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0afda53d snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x31ba6d1b snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x51cd3af1 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5b505119 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x684fff24 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8f5aa34e snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbe0a3bf5 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf5fb85da snd_opl3_init +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0c6b5d14 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x168246cf snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x43d8ee37 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x490f6466 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5eab00e5 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7b407040 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc6b0ea5a snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd721904d snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe19f2d99 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1e36bbe2 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4d689326 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xbc1a82d7 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdefa01b5 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf8d0a461 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xfe0cbb5b snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4358ba0b snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6aaf13e0 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x763f48d4 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xbd40a365 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xdb4e89c5 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf14f96fb snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x0a32c054 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x554a875e snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x94830176 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xc1d72194 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x5a3f2815 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xcd84ff4b snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x0738b9fe snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xf71b05bf snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x07d59388 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x399854b9 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x67a50365 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9a5373cb snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xbcf7d9c1 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x175a94b0 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x1f148927 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x52305440 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x839dedaf snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa466391a snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc355b64e snd_i2c_device_free +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x111a9a3d snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x140ec28a snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2d6c219d snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x592dac31 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6c6d3d1d snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x75264c2b snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8c508155 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9e730ff9 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc649815c snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xec0f3510 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x0c552345 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x2285f868 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xa641e07a snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x003c5504 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x02a63df7 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x03b86edd snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1044655e snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1b43f300 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1dbcbbee snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2688db21 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x280136cd snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x745f9031 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8bee6443 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x940c4dee snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x967712d5 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x98750952 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa0141458 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaaf1797f snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbfac982a snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfb6f7810 snd_ac97_write +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xe9393b5f hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x185667bd snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x20a4935a snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x32838cea snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4cca2481 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x58d34773 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x59993a6c snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9c46b383 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xdfe52dca snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe45f9458 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xdc11e7fd snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xaa455d6e snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xe0bd60d7 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xea0ce861 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0fdee06b oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1091d4d9 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1df57e23 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2a43c520 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2f76cd0f oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x34ac937b oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x513dbea3 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x55510ecf oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5e3ed0ea oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5e4d92f3 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x61512524 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7004cdf6 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8765aec0 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8805fd33 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa20bf853 oxygen_default_i2s_mclk +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa269bbcf oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa4b4d411 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcfe14585 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe89eca37 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xeccefbf2 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xecdb3265 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xef3cc418 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x0b900487 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x22f9744c snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x312ed695 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4700196b snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xd9bba7a2 snd_trident_alloc_voice +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0xd23604c6 uda134x_dai +EXPORT_SYMBOL sound/soundcore 0xfe8a023a sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x85187f2a snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x935a2850 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xcb37cc25 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe3cabed9 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe770482e snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe8970715 snd_emux_register +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1bb7a237 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x419149c3 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x453303d9 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x515cadf2 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6fe1bb3f snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb99a20be snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc0ba26ef __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe76d5a2b snd_util_memhdr_new +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd5c61e38 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x5560f9cb dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x5e729732 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x63b889dd dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x7248325d dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xbab7c581 dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xcf5050fe dm_mem_cache_free +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00170fe2 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x001ef709 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x0028bde1 thaw_bdev +EXPORT_SYMBOL vmlinux 0x002e2437 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x004e7639 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x006c016a tty_check_change +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0080a0a6 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x0082769c cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x0094d65f vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x00aa4e8d cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00c36902 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x00c9ded6 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x00ce14ba register_snap_client +EXPORT_SYMBOL vmlinux 0x00dad6b9 kick_iocb +EXPORT_SYMBOL vmlinux 0x00e265e1 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x00ea8a65 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x011e31ab dquot_acquire +EXPORT_SYMBOL vmlinux 0x011fc38a key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x013fd38a xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x016a08fd rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x0185d777 blkdev_put +EXPORT_SYMBOL vmlinux 0x018f1ee2 napi_complete +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a6ec9f default_llseek +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01c6815d __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01dcfefb acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x01e2c10b xfrm_register_km +EXPORT_SYMBOL vmlinux 0x01e7fb18 serio_close +EXPORT_SYMBOL vmlinux 0x01e8961c sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x01ee2b5c pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x01f0204d mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0234cc54 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02c30a7d dquot_destroy +EXPORT_SYMBOL vmlinux 0x02cd2f03 unlock_page +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key +EXPORT_SYMBOL vmlinux 0x032c66ee mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x0349dd29 ida_pre_get +EXPORT_SYMBOL vmlinux 0x0353147c blk_fetch_request +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0395f439 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x03b2fb45 arp_xmit +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03cc413a xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x03d26277 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x03eac609 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x040dd02e iput +EXPORT_SYMBOL vmlinux 0x041e9f05 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043941d6 __ps2_command +EXPORT_SYMBOL vmlinux 0x04612e98 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x04763a75 blk_insert_request +EXPORT_SYMBOL vmlinux 0x047d4895 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048b37d5 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x0495bc1e register_con_driver +EXPORT_SYMBOL vmlinux 0x04c2ec11 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x04d44a62 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x0504510c tty_shutdown +EXPORT_SYMBOL vmlinux 0x05224c62 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x053373df bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x0549ac06 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x0568a9d6 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x05a9d2ab inet_listen +EXPORT_SYMBOL vmlinux 0x05b98d56 replace_mount_options +EXPORT_SYMBOL vmlinux 0x05da84a1 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x05e28d43 __first_cpu +EXPORT_SYMBOL vmlinux 0x05f0c26b jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x05f29a5b check_disk_change +EXPORT_SYMBOL vmlinux 0x05feb22e nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061ca5ac mmc_card_awake +EXPORT_SYMBOL vmlinux 0x06255bf7 input_allocate_device +EXPORT_SYMBOL vmlinux 0x062e322b xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x06377f44 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x064e7192 nobh_writepage +EXPORT_SYMBOL vmlinux 0x066d3f6a tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06a9e056 bmap +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06bdc701 set_pages_nx +EXPORT_SYMBOL vmlinux 0x06c0c759 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06d90631 blk_start_queue +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x072508f3 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x072e43b3 brioctl_set +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x075e5fa1 locks_init_lock +EXPORT_SYMBOL vmlinux 0x076442aa slow_work_cancel +EXPORT_SYMBOL vmlinux 0x0766788d key_negate_and_link +EXPORT_SYMBOL vmlinux 0x078d5d0f __pci_register_driver +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b2148c tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07e9abfb serio_interrupt +EXPORT_SYMBOL vmlinux 0x081f14b7 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x084934f3 security_path_unlink +EXPORT_SYMBOL vmlinux 0x085a127c set_user_nice +EXPORT_SYMBOL vmlinux 0x085bd2a5 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x0893af36 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x08be176b blk_integrity_register +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08e5dbed pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x08e75da4 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x08f3776e journal_get_write_access +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x096600ed phy_find_first +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x097ff252 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09903e07 phy_device_free +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d11890 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09ea2bee netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x0a03125a wireless_send_event +EXPORT_SYMBOL vmlinux 0x0a03bf7d remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x0a085f77 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x0a1e91ba netif_device_attach +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2f6330 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x0a629384 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0aea3c98 vfs_readlink +EXPORT_SYMBOL vmlinux 0x0b0a2e8d sk_stop_timer +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0ed270 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x0b1855f1 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b20fce1 inet_frag_find +EXPORT_SYMBOL vmlinux 0x0b284022 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x0b4dd2ce clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b9fe69e qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x0bbda62d scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0c133a6b fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x0c46550b agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c74c845 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c97fd37 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca432df security_inode_permission +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb009ab jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d476e59 send_sig_info +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5ea6a0 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x0d83a191 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x0d89b1d3 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x0d9e47fb sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x0d9f4e5b ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dca51b0 scsi_host_put +EXPORT_SYMBOL vmlinux 0x0dce3841 vfs_readv +EXPORT_SYMBOL vmlinux 0x0dce8745 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x0de8747a simple_lookup +EXPORT_SYMBOL vmlinux 0x0def7c64 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x0dfda1f4 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x0e0ed6bc phy_disconnect +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e2dd4d9 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x0e3d2877 d_rehash +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e57d94e pipe_unlock +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0ea841f9 __page_symlink +EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free +EXPORT_SYMBOL vmlinux 0x0ec4dcd7 register_md_personality +EXPORT_SYMBOL vmlinux 0x0ed8a23c vfs_rename +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0f5d6b4d kmalloc_caches +EXPORT_SYMBOL vmlinux 0x0f739396 do_sync_write +EXPORT_SYMBOL vmlinux 0x0f7b585a rfkill_blocked +EXPORT_SYMBOL vmlinux 0x0f87f1e3 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x0f8a98a8 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb8d8c6 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x0fbd01e8 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff9c08a splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x0ffe6d7d serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x104d7125 padata_stop +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x1080464f jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x10865ad1 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x1094cb68 generic_removexattr +EXPORT_SYMBOL vmlinux 0x109fbc71 fb_class +EXPORT_SYMBOL vmlinux 0x10bac516 input_set_capability +EXPORT_SYMBOL vmlinux 0x10c370a2 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x10cbbafe __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10df97a7 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10fba5ec get_write_access +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x1110b56b input_register_handler +EXPORT_SYMBOL vmlinux 0x11117d47 fb_find_mode +EXPORT_SYMBOL vmlinux 0x1120ae37 register_8022_client +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1134d6ba ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x1190789d ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x1190b1f2 seq_putc +EXPORT_SYMBOL vmlinux 0x11a6ce7a __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x11ab89a5 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x11ba34f7 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x11d3852e sock_wake_async +EXPORT_SYMBOL vmlinux 0x11e06d18 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x11e8d6e1 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x11e94dda pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x11ea18ee tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x11f09313 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11f8434a buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x11fa33c3 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x120ee165 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x12281cf0 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x12356214 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x123939af pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x124dff8e inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x128bee76 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x12983e9f bdi_register +EXPORT_SYMBOL vmlinux 0x12abb885 clear_inode +EXPORT_SYMBOL vmlinux 0x12e0bd85 phy_start +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x12fdeb32 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x1306508e genphy_suspend +EXPORT_SYMBOL vmlinux 0x13162e04 skb_make_writable +EXPORT_SYMBOL vmlinux 0x1322277f xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x136c856f mdio_bus_type +EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support +EXPORT_SYMBOL vmlinux 0x137b53fd mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13bb15e3 set_trace_device +EXPORT_SYMBOL vmlinux 0x13bee55c journal_revoke +EXPORT_SYMBOL vmlinux 0x13d4c63a processors +EXPORT_SYMBOL vmlinux 0x13da9413 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x13e8bae5 ht_create_irq +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x142857c7 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x143559f2 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x145f8e6c __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x14a72141 dma_supported +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x14f5cda1 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x15043f97 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x1506b44d set_page_dirty +EXPORT_SYMBOL vmlinux 0x152202be filp_close +EXPORT_SYMBOL vmlinux 0x1534ba66 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1576eb3c mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x157a5b2a dev_get_by_index +EXPORT_SYMBOL vmlinux 0x159417da mdiobus_write +EXPORT_SYMBOL vmlinux 0x15a6fad6 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x15b35d92 register_framebuffer +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15e204d2 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x15e82918 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x160fa03f netdev_set_master +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16314984 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x16490dc6 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x165b4c91 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x169fa73a scsi_scan_target +EXPORT_SYMBOL vmlinux 0x16a62b97 sg_miter_start +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17175757 commit_creds +EXPORT_SYMBOL vmlinux 0x173cee67 serio_reconnect +EXPORT_SYMBOL vmlinux 0x1744ed13 dm_put_device +EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove +EXPORT_SYMBOL vmlinux 0x176d3c57 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x177e236c genl_register_ops +EXPORT_SYMBOL vmlinux 0x178558f8 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x178730a6 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x1789bfc8 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x17aa254a tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x17b39019 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x17c34405 tcf_em_register +EXPORT_SYMBOL vmlinux 0x17c7e56b xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e5f08a dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1820e67d ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x182d30f4 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18435b50 vfs_getattr +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x1855088e page_symlink +EXPORT_SYMBOL vmlinux 0x1855a0ae rt6_lookup +EXPORT_SYMBOL vmlinux 0x1866b0e0 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x186a7931 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x18716545 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x18777861 fb_set_var +EXPORT_SYMBOL vmlinux 0x188f6ad4 dquot_disable +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18a94385 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x18b0b80c elv_rb_find +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x190ab2b7 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x1913fda6 lock_may_write +EXPORT_SYMBOL vmlinux 0x1929efe2 journal_clear_err +EXPORT_SYMBOL vmlinux 0x1932622a scm_fp_dup +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x1940a44a directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x19683990 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x199e20a5 proto_register +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b16064 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a01b4ac mpage_readpages +EXPORT_SYMBOL vmlinux 0x1a2d3a5b mpage_readpage +EXPORT_SYMBOL vmlinux 0x1a3b76fc posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa89aef ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1c324 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x1ad4c78d blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b09ffcd dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x1b2bfcf8 skb_pull +EXPORT_SYMBOL vmlinux 0x1b54bebb register_key_type +EXPORT_SYMBOL vmlinux 0x1b5ab808 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6c897b prepare_creds +EXPORT_SYMBOL vmlinux 0x1b744f8b bio_split +EXPORT_SYMBOL vmlinux 0x1b7f1dd7 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x1b8b3ab3 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1b9feb87 d_delete +EXPORT_SYMBOL vmlinux 0x1bd2263d pagecache_write_end +EXPORT_SYMBOL vmlinux 0x1be9dc3a setup_arg_pages +EXPORT_SYMBOL vmlinux 0x1beb0d31 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x1bf369f9 kthread_bind +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c3d6cb2 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x1c4b2a91 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x1c5bdfbc dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x1c663b38 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1cb999a9 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d300be1 input_register_handle +EXPORT_SYMBOL vmlinux 0x1d4aa8f9 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x1d6d8abe __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x1da8d644 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x1daa709d f_setown +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc593c0 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x1dc5cc4a xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e26ef4f dev_remove_pack +EXPORT_SYMBOL vmlinux 0x1e2e427f cpumask_next_and +EXPORT_SYMBOL vmlinux 0x1e55dd52 uart_register_driver +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7bcc2e i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x1e867c6c scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x1e88b9e9 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ec0d4e6 kernel_connect +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f0f4d82 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x1f2d63c5 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x1f3a4f9c setup_new_exec +EXPORT_SYMBOL vmlinux 0x1f4c5d76 bh_submit_read +EXPORT_SYMBOL vmlinux 0x1f5ab1a7 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x1f5e46c1 get_fs_type +EXPORT_SYMBOL vmlinux 0x1f8e1d69 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x1fc12356 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x1fc8051b i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x1fc90cbd register_quota_format +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd62055 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x2039bdaf km_policy_expired +EXPORT_SYMBOL vmlinux 0x206674c0 skb_append +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x207e107e register_cdrom +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20a5b848 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20f180dd alloc_fcdev +EXPORT_SYMBOL vmlinux 0x211ff1f1 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x2125b6d8 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x21591492 vfs_unlink +EXPORT_SYMBOL vmlinux 0x215e65f0 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2191cd25 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x21cb5f39 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x21d7fa34 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21f2b445 simple_statfs +EXPORT_SYMBOL vmlinux 0x220bd2b7 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x220da6e2 simple_release_fs +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22332918 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x223f84d4 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x224ac50f __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x224ce0f3 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x224f58fc sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x225ab156 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x22624145 audit_log_format +EXPORT_SYMBOL vmlinux 0x2268e6de elv_abort_queue +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2271b562 file_fsync +EXPORT_SYMBOL vmlinux 0x22772c34 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x227fcd85 mdiobus_read +EXPORT_SYMBOL vmlinux 0x228728d4 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a48c9a mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c9e734 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x22d73c78 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x22e08ce3 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x22e1d6fc block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x23254750 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x23284ca6 read_cache_pages +EXPORT_SYMBOL vmlinux 0x232856a2 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x2335cb95 tcf_register_action +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x234f85f4 abort_creds +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x2384757b dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x238791fd __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x23abbb6c nonseekable_open +EXPORT_SYMBOL vmlinux 0x23b61ab1 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x23b99e92 node_states +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23f01d57 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24011506 elv_rb_del +EXPORT_SYMBOL vmlinux 0x2424c95f jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x242acbca __scsi_add_device +EXPORT_SYMBOL vmlinux 0x2436313f pci_disable_device +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24508446 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x247ff471 touch_atime +EXPORT_SYMBOL vmlinux 0x2482f497 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x24d433c8 dev_addr_del +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x2513fb7d __ht_create_irq +EXPORT_SYMBOL vmlinux 0x251e6cf4 blk_peek_request +EXPORT_SYMBOL vmlinux 0x252044d6 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x252e0f22 __free_pages +EXPORT_SYMBOL vmlinux 0x25481661 generic_make_request +EXPORT_SYMBOL vmlinux 0x2578e8df acpi_bus_add +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25a18a20 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x25a34959 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x25e5939e fb_set_suspend +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x25f1e228 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x25f54003 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x26061d11 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x261ad215 proc_mkdir +EXPORT_SYMBOL vmlinux 0x2637d513 __seq_open_private +EXPORT_SYMBOL vmlinux 0x26467b22 iget_failed +EXPORT_SYMBOL vmlinux 0x264e0a74 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x265d85be blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268e4f8e scsi_execute +EXPORT_SYMBOL vmlinux 0x269b69a6 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e1ec74 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x271d8211 write_cache_pages +EXPORT_SYMBOL vmlinux 0x2721ef72 d_path +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x273453fa single_release +EXPORT_SYMBOL vmlinux 0x274c203d netif_carrier_on +EXPORT_SYMBOL vmlinux 0x274e1e92 register_nls +EXPORT_SYMBOL vmlinux 0x27515bb4 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x2770b6d3 km_policy_notify +EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x277bc0b0 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279ec90e skb_copy_expand +EXPORT_SYMBOL vmlinux 0x27a7332b fifo_set_limit +EXPORT_SYMBOL vmlinux 0x27b7aaf0 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x285455d1 vfs_fsync +EXPORT_SYMBOL vmlinux 0x285599eb qdisc_reset +EXPORT_SYMBOL vmlinux 0x28599d80 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x28693dcc mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x28733834 register_qdisc +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28e9934c find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x28eaf133 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x28ffeb03 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x2911ea4c kobject_add +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x293f383b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29682cb2 tcp_check_req +EXPORT_SYMBOL vmlinux 0x29860f6a blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x298a6aee hippi_type_trans +EXPORT_SYMBOL vmlinux 0x29a71db6 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x29b1e54b generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29e2cb07 cdrom_open +EXPORT_SYMBOL vmlinux 0x2a0de6a6 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x2a14a578 generic_permission +EXPORT_SYMBOL vmlinux 0x2a152a75 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x2a1c996c proto_unregister +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a45202d __dquot_free_space +EXPORT_SYMBOL vmlinux 0x2a4ddbce kernel_sendpage +EXPORT_SYMBOL vmlinux 0x2a50a0c1 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x2a57778f pci_find_capability +EXPORT_SYMBOL vmlinux 0x2a5e72e3 icmpv6_send +EXPORT_SYMBOL vmlinux 0x2a85d7cd d_move +EXPORT_SYMBOL vmlinux 0x2a9bc96f get_sb_nodev +EXPORT_SYMBOL vmlinux 0x2accdaa4 pci_find_bus +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b200d96 vmap +EXPORT_SYMBOL vmlinux 0x2b25ded1 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x2b2718f7 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x2b457c75 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x2b92c59d tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2be3c340 journal_load +EXPORT_SYMBOL vmlinux 0x2bef4fdb dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c4031bb dev_driver_string +EXPORT_SYMBOL vmlinux 0x2c606929 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x2c82294d dump_trace +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2cc92161 devm_free_irq +EXPORT_SYMBOL vmlinux 0x2cd6420e filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x2cd9d683 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x2cde19f1 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x2ce1dca5 dm_table_get +EXPORT_SYMBOL vmlinux 0x2ce9e966 file_remove_suid +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d193385 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d5e23e5 udp_disconnect +EXPORT_SYMBOL vmlinux 0x2d68b4b5 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x2d8493f7 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2da131fe jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x2da78d57 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd2de5d tty_unthrottle +EXPORT_SYMBOL vmlinux 0x2debf485 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e06111d cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2e250f20 block_commit_write +EXPORT_SYMBOL vmlinux 0x2e27fbc9 tty_port_open +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e5713ca dev_mc_flush +EXPORT_SYMBOL vmlinux 0x2e587455 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x2ea6ccd9 __nla_put +EXPORT_SYMBOL vmlinux 0x2eb242a2 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x2eb4717e d_find_alias +EXPORT_SYMBOL vmlinux 0x2ed26ea7 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x2eefe368 mnt_unpin +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f2386ed vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x2f2e3d67 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x2f3933de jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x2f3be85a blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x2f4deeb4 inet6_release +EXPORT_SYMBOL vmlinux 0x2f991ed0 fsync_bdev +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fe1c4fb bio_phys_segments +EXPORT_SYMBOL vmlinux 0x2fea718f nf_hook_slow +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x30300142 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x303593a2 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x3048c88e unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x30612cd3 get_user_pages +EXPORT_SYMBOL vmlinux 0x307501b4 stop_tty +EXPORT_SYMBOL vmlinux 0x308077b2 sk_dst_check +EXPORT_SYMBOL vmlinux 0x3083ebdd vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x30adaf9c __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310a0990 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x311f9780 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x3136a3cf tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3148b2ba tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x315d4193 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x31708622 dquot_alloc +EXPORT_SYMBOL vmlinux 0x317772e7 redraw_screen +EXPORT_SYMBOL vmlinux 0x3182bd74 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x31a5d085 ether_setup +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31c569c1 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x31c57706 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x31e6b376 d_add_ci +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc +EXPORT_SYMBOL vmlinux 0x321374f2 nla_reserve +EXPORT_SYMBOL vmlinux 0x32146298 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x3231e275 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x32348592 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x323b211b dev_uc_init +EXPORT_SYMBOL vmlinux 0x323b4c72 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x32450ef3 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x32523bb2 blk_end_request +EXPORT_SYMBOL vmlinux 0x3257d4b3 pid_task +EXPORT_SYMBOL vmlinux 0x326236a8 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x326616d2 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x3269fb7c path_put +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x3294013f skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x32c8ae55 __scm_destroy +EXPORT_SYMBOL vmlinux 0x32f323f8 mpage_writepage +EXPORT_SYMBOL vmlinux 0x330b268d register_netdev +EXPORT_SYMBOL vmlinux 0x333140b0 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x336130a5 unregister_console +EXPORT_SYMBOL vmlinux 0x336b7c86 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x336fdaab netif_carrier_off +EXPORT_SYMBOL vmlinux 0x33831bdd blk_end_request_all +EXPORT_SYMBOL vmlinux 0x338e1e09 freeze_super +EXPORT_SYMBOL vmlinux 0x3398198f deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x33b7d76f agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33b88cf7 __elv_add_request +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33d99fac inode_needs_sync +EXPORT_SYMBOL vmlinux 0x33e08aeb simple_link +EXPORT_SYMBOL vmlinux 0x33f8d41e dmam_pool_create +EXPORT_SYMBOL vmlinux 0x3410e25e fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x342c128b xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x346dea03 agp_flush_chipset +EXPORT_SYMBOL vmlinux 0x349bf360 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34d2117a tc_classify +EXPORT_SYMBOL vmlinux 0x35063831 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x3519f689 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x353427c9 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x35397a15 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x353eaac1 sync_inode +EXPORT_SYMBOL vmlinux 0x3582ed17 vfs_stat +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35bc1fdf inetdev_by_index +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c57aa4 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x35c73306 elv_rb_add +EXPORT_SYMBOL vmlinux 0x35ceb9f3 ilookup +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x361fd6fa fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x3641cfa1 scsi_put_command +EXPORT_SYMBOL vmlinux 0x36532577 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x36745edd simple_setattr +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36a5a7bc pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x3711745c bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x372db1f6 seq_lseek +EXPORT_SYMBOL vmlinux 0x373bb944 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37b4e6ae writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x37b50e2a tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37bfc02e sock_i_ino +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x3820afee napi_gro_receive +EXPORT_SYMBOL vmlinux 0x3831fb19 do_splice_to +EXPORT_SYMBOL vmlinux 0x383f376a dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x3855c876 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x386447be xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x386d4749 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x38884dbe agp_put_bridge +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a2e0a5 send_sig +EXPORT_SYMBOL vmlinux 0x38b3cd85 cdev_index +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c45022 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x38c704f1 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x38d9dc5c padata_add_cpu +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x39060d05 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x3920dc7a fail_migrate_page +EXPORT_SYMBOL vmlinux 0x392774ed tty_unregister_device +EXPORT_SYMBOL vmlinux 0x39348de8 skb_dequeue +EXPORT_SYMBOL vmlinux 0x395d2ef0 mddev_congested +EXPORT_SYMBOL vmlinux 0x396ac4f2 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x39788392 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x397f8499 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x398e147e genphy_config_advert +EXPORT_SYMBOL vmlinux 0x39974e7d page_follow_link_light +EXPORT_SYMBOL vmlinux 0x39c24e5b i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x39cab423 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x39edd4c2 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a3d18f0 sock_no_bind +EXPORT_SYMBOL vmlinux 0x3a433b07 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3acfc416 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x3ae00ded kthread_create +EXPORT_SYMBOL vmlinux 0x3ae7d41f __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove +EXPORT_SYMBOL vmlinux 0x3b2beaba ppp_unit_number +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b39160e vm_map_ram +EXPORT_SYMBOL vmlinux 0x3b4cd8fb input_release_device +EXPORT_SYMBOL vmlinux 0x3b5094b5 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x3b76b061 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x3bb28da9 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x3bb3c3fb inet_frag_kill +EXPORT_SYMBOL vmlinux 0x3bb90193 put_tty_driver +EXPORT_SYMBOL vmlinux 0x3bbd4ace pnp_device_attach +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bee0175 node_data +EXPORT_SYMBOL vmlinux 0x3c1950d4 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c5c3cf5 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x3c624707 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb14a0c tty_devnum +EXPORT_SYMBOL vmlinux 0x3cb35507 tty_hangup +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf89d7f cpu_info +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d4ca89e kdb_current_task +EXPORT_SYMBOL vmlinux 0x3d573f5d abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d93665d uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x3d9d086a __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3dcccca6 simple_write_end +EXPORT_SYMBOL vmlinux 0x3df2c1ee ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x3df6ed7d spi_release_transport +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e2063f4 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e3e73fe truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x3e4221cb splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e4826a5 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x3e5851b6 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x3e8739bf netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e8ce20f pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ec60e8a input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x3ecc3e16 x86_hyper +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eec3341 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f2f24eb blk_put_request +EXPORT_SYMBOL vmlinux 0x3f3bc1c4 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5e7b61 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f6a4d78 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x3f78b38f keyring_clear +EXPORT_SYMBOL vmlinux 0x3f7ab56e sock_release +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fbf3b60 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x3fc7627d inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x3fded9e8 tty_port_close +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x406b9abf blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a02a41 bioset_create +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a53ebf dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x40ab1b0b kernel_getpeername +EXPORT_SYMBOL vmlinux 0x40c0737c nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40f7a31f sk_filter +EXPORT_SYMBOL vmlinux 0x40fc5f30 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4118d405 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41408088 kobject_put +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414dab0c jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x415243a1 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4184e77b phy_driver_register +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x41d33e29 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x41fd82d4 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42218dee eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x427061fb unbind_con_driver +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a22805 dentry_unhash +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42ace462 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42d58eea scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x42d9c841 unlock_super +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43099626 pci_release_region +EXPORT_SYMBOL vmlinux 0x4324aa51 lock_may_read +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43552b03 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x43562d06 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4378853b compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x43791168 file_update_time +EXPORT_SYMBOL vmlinux 0x439d7084 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43be35f3 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x43ca7c06 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x43d69989 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x43db0c08 llc_sap_close +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x443a8a3f tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x444e3515 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x446bdee7 elevator_exit +EXPORT_SYMBOL vmlinux 0x4487eaf0 sock_no_poll +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b1ed53 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x44b75a90 __kfree_skb +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c59498 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x4510aa17 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x451799e9 dquot_initialize +EXPORT_SYMBOL vmlinux 0x452b12de blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x452cfc24 agp_enable +EXPORT_SYMBOL vmlinux 0x452eb25f neigh_table_clear +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x45558de5 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x455a49e4 make_EII_client +EXPORT_SYMBOL vmlinux 0x4565d3d9 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x45680205 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x457d0652 idr_remove_all +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45c6c20e page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x45d0782f pneigh_lookup +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x461b0376 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x464ce151 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467b0f08 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x468d1fab inode_setattr +EXPORT_SYMBOL vmlinux 0x468e2169 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x468e4796 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46d350fe tr_type_trans +EXPORT_SYMBOL vmlinux 0x46ec2b12 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x4701e90c d_genocide +EXPORT_SYMBOL vmlinux 0x4709ad8d phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0x4717d1b8 dma_find_channel +EXPORT_SYMBOL vmlinux 0x47425f8c pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x474c1557 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x4761699c sock_wfree +EXPORT_SYMBOL vmlinux 0x47808dce jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x4799479c pci_dev_get +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47a0989c get_phy_id +EXPORT_SYMBOL vmlinux 0x47a56ac7 request_firmware +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47dfba81 lock_super +EXPORT_SYMBOL vmlinux 0x47e64779 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x47eacec5 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x480bd6bb kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x48192ebe iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x483fc2a0 kill_pgrp +EXPORT_SYMBOL vmlinux 0x48513002 xfrm_input +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485bd757 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x48631f3a prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x48826e58 xrlim_allow +EXPORT_SYMBOL vmlinux 0x48cf17d8 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x48d65642 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x48e493e8 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x492ab060 follow_pfn +EXPORT_SYMBOL vmlinux 0x493c05f4 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x49463478 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49607438 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x4961cd4b padata_start +EXPORT_SYMBOL vmlinux 0x498fd593 llc_sap_find +EXPORT_SYMBOL vmlinux 0x499a6ef4 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49d58b96 single_open +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49eb1845 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x4a288c01 blk_get_request +EXPORT_SYMBOL vmlinux 0x4a33417b dget_locked +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a45381b jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x4a5199e5 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x4a6da67a open_by_devnum +EXPORT_SYMBOL vmlinux 0x4a7b58ae __bforget +EXPORT_SYMBOL vmlinux 0x4a928944 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad6423d icmp_send +EXPORT_SYMBOL vmlinux 0x4addd94f scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x4ae79dc9 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x4af0f5c0 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b2ff1db thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x4b497ccf security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x4b4e3e99 dquot_transfer +EXPORT_SYMBOL vmlinux 0x4b765df5 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x4b92a13f scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bc5d2b5 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x4bc96650 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x4bcbfd74 pipe_to_file +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1c7562 agp_create_memory +EXPORT_SYMBOL vmlinux 0x4c1cfbe5 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x4c31b97a bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c7461ea I_BDEV +EXPORT_SYMBOL vmlinux 0x4c774151 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x4c9110f5 tty_mutex +EXPORT_SYMBOL vmlinux 0x4c95e40f dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x4cab55ef scsi_ioctl +EXPORT_SYMBOL vmlinux 0x4cacdc94 unlock_rename +EXPORT_SYMBOL vmlinux 0x4cb2669b loop_register_transfer +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cfb9b6b i2c_use_client +EXPORT_SYMBOL vmlinux 0x4d0c47e9 cont_write_begin +EXPORT_SYMBOL vmlinux 0x4d1cf1bc cdrom_release +EXPORT_SYMBOL vmlinux 0x4d552e61 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x4d5cafe6 ip_fragment +EXPORT_SYMBOL vmlinux 0x4d63b6ae audit_log_start +EXPORT_SYMBOL vmlinux 0x4d8970e1 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dc9030b have_submounts +EXPORT_SYMBOL vmlinux 0x4dd9e807 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e26a459 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e436701 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e6f023c dm_snap_cow +EXPORT_SYMBOL vmlinux 0x4e782b92 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x4e99c48f cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x4ebfa52c xfrm_state_add +EXPORT_SYMBOL vmlinux 0x4ec3838a journal_force_commit +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f29d68d unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt +EXPORT_SYMBOL vmlinux 0x4f5be955 mmc_free_host +EXPORT_SYMBOL vmlinux 0x4f647976 __pagevec_release +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f7ef5ca neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4fb59ecb make_bad_inode +EXPORT_SYMBOL vmlinux 0x4fc667a6 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505873f4 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x505be570 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x5061c4de nf_register_hook +EXPORT_SYMBOL vmlinux 0x50621198 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x50ab2715 __bio_clone +EXPORT_SYMBOL vmlinux 0x50b2534d blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x50ce65a3 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x50e01b50 d_instantiate +EXPORT_SYMBOL vmlinux 0x5102ae3c nobh_write_begin +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5127c241 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x5179c6eb mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL vmlinux 0x5191db37 scsi_host_get +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e56146 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x51e81bb9 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x51fef6b8 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5202cc1f kill_fasync +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x521eb71e dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x52655b5a __f_setown +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x5294aaeb otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52b93bd3 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52ddcc2d sock_i_uid +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x530708e4 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53126e42 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x535d2b1e register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x53702afa xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53a02924 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x53a565fc compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53d6e4d2 cad_pid +EXPORT_SYMBOL vmlinux 0x53e00d30 generic_show_options +EXPORT_SYMBOL vmlinux 0x53e4c607 bdevname +EXPORT_SYMBOL vmlinux 0x53e51607 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x53ff814f blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542ce6b7 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x543e9ed2 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x546be192 journal_extend +EXPORT_SYMBOL vmlinux 0x547184e9 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x547831ab i8042_install_filter +EXPORT_SYMBOL vmlinux 0x54832714 mutex_unlock +EXPORT_SYMBOL vmlinux 0x54972f0f inet_sendmsg +EXPORT_SYMBOL vmlinux 0x54a6ec59 dquot_file_open +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ffa696 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x551f67d8 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x5562d57d padata_do_serial +EXPORT_SYMBOL vmlinux 0x5594a724 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55a15bba rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x55bf6a56 pci_choose_state +EXPORT_SYMBOL vmlinux 0x55dded25 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x55e1bad6 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x55ef6b8d padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x55f89819 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x56116151 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x56209471 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56432394 user_revoke +EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new +EXPORT_SYMBOL vmlinux 0x569eadf4 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cf5818 vfs_statfs +EXPORT_SYMBOL vmlinux 0x56d8e526 serio_rescan +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56f092ef invalidate_bdev +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x56fc650f mutex_lock +EXPORT_SYMBOL vmlinux 0x570c67f0 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573d2646 input_flush_device +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x576f9ae1 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x5789ba4d __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x57937126 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57b85d36 sg_miter_next +EXPORT_SYMBOL vmlinux 0x57cfe6bd kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57df6b63 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x57ea3c8c dma_pool_create +EXPORT_SYMBOL vmlinux 0x58020f99 kfree_skb +EXPORT_SYMBOL vmlinux 0x582c1af0 journal_init_inode +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x58485d42 sock_no_accept +EXPORT_SYMBOL vmlinux 0x5850140e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x58648407 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x58b519bf scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x58bc1d8c i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x58d979ea pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x58da4eb7 block_read_full_page +EXPORT_SYMBOL vmlinux 0x58db1437 dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x58e29a82 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x58fd6e6c pci_pme_capable +EXPORT_SYMBOL vmlinux 0x59101cf6 module_layout +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x592ca7c7 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x5930e9f7 pci_target_state +EXPORT_SYMBOL vmlinux 0x593290e3 seq_escape +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x59494559 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5957c1f3 get_disk +EXPORT_SYMBOL vmlinux 0x596cc13d __alloc_skb +EXPORT_SYMBOL vmlinux 0x59adb5dd inet_put_port +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d6d672 scsi_free_command +EXPORT_SYMBOL vmlinux 0x5a016611 journal_forget +EXPORT_SYMBOL vmlinux 0x5a09ace1 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x5a1c6680 llc_sap_open +EXPORT_SYMBOL vmlinux 0x5a23260b __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a68d0fc inode_init_owner +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7cae2c inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x5a99bf2f netif_napi_del +EXPORT_SYMBOL vmlinux 0x5aa68862 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ad08562 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x5ad15309 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x5af3827d dqput +EXPORT_SYMBOL vmlinux 0x5b25583e tty_free_termios +EXPORT_SYMBOL vmlinux 0x5b4240b9 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b532797 scsi_add_device +EXPORT_SYMBOL vmlinux 0x5b5a2a32 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5bc3aad2 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x5c0fe0bd ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x5c328565 simple_fill_super +EXPORT_SYMBOL vmlinux 0x5c3efa7e skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c59b43c inet_shutdown +EXPORT_SYMBOL vmlinux 0x5c5af7b5 pci_bus_type +EXPORT_SYMBOL vmlinux 0x5c740736 framebuffer_release +EXPORT_SYMBOL vmlinux 0x5c97f343 generic_setxattr +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5ca41392 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x5ca9ddd1 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5cd56d3c ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x5cd61b45 d_lookup +EXPORT_SYMBOL vmlinux 0x5cdda7c2 pci_dev_put +EXPORT_SYMBOL vmlinux 0x5cfc13c8 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x5d06f4fe generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d22ef65 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x5d264469 init_buffer +EXPORT_SYMBOL vmlinux 0x5d612689 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5da76088 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5db527cb complete_request_key +EXPORT_SYMBOL vmlinux 0x5dc43223 idr_pre_get +EXPORT_SYMBOL vmlinux 0x5dd22b5c ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x5de05b06 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e1fff91 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x5e27a508 vc_resize +EXPORT_SYMBOL vmlinux 0x5e27e01a inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x5e407d53 sk_free +EXPORT_SYMBOL vmlinux 0x5e43fe85 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x5e5ab423 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x5e7cda84 security_path_truncate +EXPORT_SYMBOL vmlinux 0x5e90633f set_device_ro +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9e074a scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x5eb3126d generic_write_checks +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f1753f8 __find_get_block +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f77df0a scsi_remove_device +EXPORT_SYMBOL vmlinux 0x5f7a6a03 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x5f804c75 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x5f8dfa2c tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x5f97009c tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x5fa14b79 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x5fa4ecef eth_change_mtu +EXPORT_SYMBOL vmlinux 0x5fbc35e2 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x5fcbd151 set_anon_super +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fd2d3d2 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x5fd50675 arp_create +EXPORT_SYMBOL vmlinux 0x5fdf4a4b bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x5ff4b7bc posix_lock_file +EXPORT_SYMBOL vmlinux 0x5ff5de61 sget +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6015bb09 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x6054ede7 scsi_register +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x605e65eb hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x605e7d6e tty_throttle +EXPORT_SYMBOL vmlinux 0x6073299c tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x60795836 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x607bf1dc ppp_register_channel +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60c64e5d scsi_device_get +EXPORT_SYMBOL vmlinux 0x60edfbc9 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6124cfd2 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61445330 seq_read +EXPORT_SYMBOL vmlinux 0x614a9529 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x616ff566 md_barrier_request +EXPORT_SYMBOL vmlinux 0x617873d2 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x61838e40 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d67908 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x61ded587 ll_rw_block +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x622a7b94 simple_setsize +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623b5d6c arp_find +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x6276e866 seq_puts +EXPORT_SYMBOL vmlinux 0x627b2305 backlight_device_register +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628ca8ba agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x629f2b47 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0x62df904c xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x62fcf9e4 datagram_poll +EXPORT_SYMBOL vmlinux 0x63015058 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x6301da38 generic_setattr +EXPORT_SYMBOL vmlinux 0x6312eae0 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63a564b7 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x63b5e671 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x63d5285b rfkill_destroy +EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efaa87 log_wait_commit +EXPORT_SYMBOL vmlinux 0x63f5e6a9 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640a059b sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x6424d7dd set_create_files_as +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6449b3be get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64715536 kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x647cc74a pci_pme_active +EXPORT_SYMBOL vmlinux 0x64936110 write_one_page +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649bd10d phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x64b14fd2 seq_release_private +EXPORT_SYMBOL vmlinux 0x64b306f5 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64eb6429 read_dev_sector +EXPORT_SYMBOL vmlinux 0x64ede412 km_state_notify +EXPORT_SYMBOL vmlinux 0x64f8b6fb mdiobus_register +EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651b4ce2 is_container_init +EXPORT_SYMBOL vmlinux 0x6539002e unlock_buffer +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6553daff uart_resume_port +EXPORT_SYMBOL vmlinux 0x65574dc6 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x656347ea inode_get_bytes +EXPORT_SYMBOL vmlinux 0x658f01af blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x65b30c2c inet_frags_init +EXPORT_SYMBOL vmlinux 0x65c82f02 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x65e3bba9 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x65e71564 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x6629ef8e max8925_set_bits +EXPORT_SYMBOL vmlinux 0x66466be9 get_io_context +EXPORT_SYMBOL vmlinux 0x66497bfa inode_add_bytes +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66d2ae73 compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x66e071f5 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x66e1d858 find_lock_page +EXPORT_SYMBOL vmlinux 0x66f17077 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673995e7 kill_block_super +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6743f447 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x674d75aa blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x67637124 kobject_get +EXPORT_SYMBOL vmlinux 0x678beed3 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x678f46d5 phy_device_create +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67d5494f sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x67ee31ea eth_header_cache +EXPORT_SYMBOL vmlinux 0x680c730e i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x682d0ac1 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x685cf233 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68909040 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x68bd123b inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x68f2f199 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x6914926b generic_write_sync +EXPORT_SYMBOL vmlinux 0x6943de01 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x694d1427 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697e3a6c alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69921202 ida_init +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69b2919d fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e5e914 rwsem_wake +EXPORT_SYMBOL vmlinux 0x69f3eec6 dev_close +EXPORT_SYMBOL vmlinux 0x69ff9578 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a1131db unload_nls +EXPORT_SYMBOL vmlinux 0x6a23ca92 phy_detach +EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a611345 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x6a717971 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6ac1449e llc_add_pack +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acd396d misc_register +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ad8c046 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae616c8 genphy_resume +EXPORT_SYMBOL vmlinux 0x6b0d876c kset_register +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b21cf90 __nla_reserve +EXPORT_SYMBOL vmlinux 0x6b29c1bd sk_reset_timer +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b32b202 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b9795ca slow_work_register_user +EXPORT_SYMBOL vmlinux 0x6b9c475f inet_recvmsg +EXPORT_SYMBOL vmlinux 0x6ba6d776 give_up_console +EXPORT_SYMBOL vmlinux 0x6bbfc3f4 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bd0d582 kernel_accept +EXPORT_SYMBOL vmlinux 0x6bd60af1 vfs_link +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bec5687 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6bfb834d dquot_drop +EXPORT_SYMBOL vmlinux 0x6c2afef7 register_netdevice +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c3dd441 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c706a75 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x6c70e3f1 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x6c799b15 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x6ca29007 key_put +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6cd79558 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x6ce58142 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x6cfc44db console_stop +EXPORT_SYMBOL vmlinux 0x6d01f3e8 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x6d0e3039 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d70f3e0 load_nls +EXPORT_SYMBOL vmlinux 0x6d9a4e86 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x6dade432 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e21b365 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x6e4ee34b generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x6e5f791a vfs_follow_link +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x6e8794e3 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x6e8b2618 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eb3446e __blk_end_request +EXPORT_SYMBOL vmlinux 0x6f0d2c3a alloc_pages_current +EXPORT_SYMBOL vmlinux 0x6f10d52f tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x6f2d5ac8 bio_add_page +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f4e221f eth_type_trans +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f59ba4d scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x6f8359f2 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6faae914 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x6fbbc35c consume_skb +EXPORT_SYMBOL vmlinux 0x6fc071b7 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70521d7a dquot_commit +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70765d1c vfs_lstat +EXPORT_SYMBOL vmlinux 0x707c7ed8 __dst_free +EXPORT_SYMBOL vmlinux 0x7086e8cc mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x70907a28 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x7093cce4 sock_init_data +EXPORT_SYMBOL vmlinux 0x70a12e5d do_SAK +EXPORT_SYMBOL vmlinux 0x70a39681 ip_defrag +EXPORT_SYMBOL vmlinux 0x70b3984c mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c01fc8 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x70c510eb lookup_one_len +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e0d61f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x70fc7c82 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x71242d7d journal_wipe +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7135b0f9 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x714ec4c4 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x715498da follow_down +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71721640 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x718fafe9 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71b3a5b0 do_sync_read +EXPORT_SYMBOL vmlinux 0x71bb41e4 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x71d294cd bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x71da3cd1 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x71dd0087 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x71f19f90 serio_open +EXPORT_SYMBOL vmlinux 0x71f66c26 dev_open +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x721c8ace pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x7223194b compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x722e7d19 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x723f85b5 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x724665ba input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x7257c4f9 __register_chrdev +EXPORT_SYMBOL vmlinux 0x726fdb93 vga_get +EXPORT_SYMBOL vmlinux 0x727c98b4 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72ba1191 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f6612c jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x730def15 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x73252f64 seq_open_private +EXPORT_SYMBOL vmlinux 0x733a1093 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x733d6f17 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x7346a340 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7376a02a tc_classify_compat +EXPORT_SYMBOL vmlinux 0x737a0d83 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x737c1563 put_page +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x7388ba54 submit_bio +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x738dd132 padata_alloc +EXPORT_SYMBOL vmlinux 0x7392e778 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x739e1998 is_bad_inode +EXPORT_SYMBOL vmlinux 0x73a77add simple_transaction_release +EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x73da80ea cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x73ef13b3 generic_write_end +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740b0a5a journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x741531ca lock_rename +EXPORT_SYMBOL vmlinux 0x742fe035 nla_append +EXPORT_SYMBOL vmlinux 0x743bfe73 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x74425e02 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x746272a0 set_security_override +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74df66df sk_run_filter +EXPORT_SYMBOL vmlinux 0x74e38f26 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x7546c24b cfb_imageblit +EXPORT_SYMBOL vmlinux 0x755d9639 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x75621ea7 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x7570b9d6 proc_create_data +EXPORT_SYMBOL vmlinux 0x7585fbb8 kernel_listen +EXPORT_SYMBOL vmlinux 0x75866cd8 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75d9e06f nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x75ecee3a vm_insert_page +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76114194 d_splice_alias +EXPORT_SYMBOL vmlinux 0x76279f2c netdev_state_change +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x763a6463 blk_rq_init +EXPORT_SYMBOL vmlinux 0x763c54ed pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x76716776 mmc_host_disable +EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x76811744 dev_mc_del +EXPORT_SYMBOL vmlinux 0x7688f5b2 vfs_symlink +EXPORT_SYMBOL vmlinux 0x76a400d9 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c4ecf5 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x76c6494b set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x76d20bb6 tcp_prot +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e8e24d ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x76ef61ea ip_route_input_common +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x76fa96ab bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x77216d29 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x775226e6 block_prepare_write +EXPORT_SYMBOL vmlinux 0x777ccdff netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x779d9e6d scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x77a71491 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x77ad8ec8 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d62dee ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77ff95f1 kill_anon_super +EXPORT_SYMBOL vmlinux 0x781ea1ce phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x782e80df acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x783aa21a llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x785a962e rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x785d6557 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x78611171 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x78800dd2 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x78b17b10 tcp_close +EXPORT_SYMBOL vmlinux 0x78dc6b04 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e831c4 free_buffer_head +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x7910b47e simple_transaction_get +EXPORT_SYMBOL vmlinux 0x791d95a9 force_sig +EXPORT_SYMBOL vmlinux 0x7947cd55 pci_get_device +EXPORT_SYMBOL vmlinux 0x794d300c task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x796de582 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x797ed7ab registered_fb +EXPORT_SYMBOL vmlinux 0x79a0ba53 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79e0434e remap_pfn_range +EXPORT_SYMBOL vmlinux 0x79f2f305 block_write_begin +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a69e544 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x7a931a0a kill_litter_super +EXPORT_SYMBOL vmlinux 0x7a953db9 d_alloc_root +EXPORT_SYMBOL vmlinux 0x7aa7bd38 pnp_is_active +EXPORT_SYMBOL vmlinux 0x7abc267b abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7adebea1 __lock_buffer +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7ae8d8ca skb_queue_head +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7b09427e qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b1aab88 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x7b3e32ba pci_restore_state +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b542089 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x7b555e2c agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b6f32c7 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x7b727151 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b91fc1e __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x7baaf310 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x7bb277a7 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x7bd06774 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c367649 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x7c41adad bdi_destroy +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c824820 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x7c83977e dev_mc_add +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cf272d9 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x7d087c75 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d4c47ba tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x7d6bb587 cpu_online_mask +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7da0a1d3 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x7da94f64 del_gendisk +EXPORT_SYMBOL vmlinux 0x7dba0471 dev_mc_init +EXPORT_SYMBOL vmlinux 0x7dc29817 get_sb_ns +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd490d3 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7df20b11 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x7dfa5b28 simple_readpage +EXPORT_SYMBOL vmlinux 0x7e1066cc xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x7e1cfc49 bio_init +EXPORT_SYMBOL vmlinux 0x7e311ad1 backlight_force_update +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e631304 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x7e69ef42 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x7e6f7594 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x7e7d9500 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7e9f708c dev_load +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7eba6564 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ef36aba blkdev_get +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f47a543 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x7f6aea7f key_revoke +EXPORT_SYMBOL vmlinux 0x7f743f2e elv_add_request +EXPORT_SYMBOL vmlinux 0x7f74d8b8 genphy_update_link +EXPORT_SYMBOL vmlinux 0x7f75194e simple_rmdir +EXPORT_SYMBOL vmlinux 0x7f78686a dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x7f9b7e8e __devm_request_region +EXPORT_SYMBOL vmlinux 0x7f9b811a kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x7fa1b62f __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7fa8aab2 cdev_alloc +EXPORT_SYMBOL vmlinux 0x7facf351 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x7fb04167 journal_update_format +EXPORT_SYMBOL vmlinux 0x7fb3f744 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x801b4d4a test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x801ce899 ip6_route_output +EXPORT_SYMBOL vmlinux 0x801f30e2 elv_register_queue +EXPORT_SYMBOL vmlinux 0x8055f5d2 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x8066b0ec dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x807bd923 neigh_destroy +EXPORT_SYMBOL vmlinux 0x80989c05 handle_sysrq +EXPORT_SYMBOL vmlinux 0x80a4c02b blk_init_queue +EXPORT_SYMBOL vmlinux 0x80cb51ff sockfd_lookup +EXPORT_SYMBOL vmlinux 0x80d5e41d pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x80dc6ac5 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x80f94724 get_phy_device +EXPORT_SYMBOL vmlinux 0x810233fa key_validate +EXPORT_SYMBOL vmlinux 0x8112b4e9 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x81504631 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x8191ae58 phy_attach +EXPORT_SYMBOL vmlinux 0x81c73e11 skb_unlink +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d8cfee dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8219a47e d_validate +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82529367 seq_printf +EXPORT_SYMBOL vmlinux 0x82555944 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82f28e63 genphy_read_status +EXPORT_SYMBOL vmlinux 0x830c4827 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x8344991f skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x836494bb tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x837443c7 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x837f1aa9 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83c312f5 neigh_for_each +EXPORT_SYMBOL vmlinux 0x83da44dc set_blocksize +EXPORT_SYMBOL vmlinux 0x83e9f653 add_disk +EXPORT_SYMBOL vmlinux 0x84165930 put_disk +EXPORT_SYMBOL vmlinux 0x8467d196 netdev_features_change +EXPORT_SYMBOL vmlinux 0x846e7d35 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x84844807 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84c0bbbc generic_readlink +EXPORT_SYMBOL vmlinux 0x84caf949 bdi_unregister +EXPORT_SYMBOL vmlinux 0x84d61413 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x84f2eb5d i2c_release_client +EXPORT_SYMBOL vmlinux 0x84fa0acc scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x854e399e tcp_ioctl +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups +EXPORT_SYMBOL vmlinux 0x859ad71e md_register_thread +EXPORT_SYMBOL vmlinux 0x859ad9e1 journal_init_dev +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x860a11cd agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x864202d3 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x864ec13e mmc_add_host +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86601b3b tty_port_init +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866754d5 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x86687e5f tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a1161a skb_find_text +EXPORT_SYMBOL vmlinux 0x86b2e09e __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat +EXPORT_SYMBOL vmlinux 0x86cc6ef3 pci_map_rom +EXPORT_SYMBOL vmlinux 0x86e3e643 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x876d9b69 mdiobus_free +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87748085 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87a88629 inode_change_ok +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x87d7aaeb pci_remove_bus +EXPORT_SYMBOL vmlinux 0x87e7a13f find_or_create_page +EXPORT_SYMBOL vmlinux 0x87eeb7aa rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x87f150ed i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x87ff2af8 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x883d5c0b qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x8860b310 simple_empty +EXPORT_SYMBOL vmlinux 0x886c8557 misc_deregister +EXPORT_SYMBOL vmlinux 0x888b0e85 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88f898a6 input_get_keycode +EXPORT_SYMBOL vmlinux 0x8900b220 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x89386484 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897ca7ba load_nls_default +EXPORT_SYMBOL vmlinux 0x8986045b set_bh_page +EXPORT_SYMBOL vmlinux 0x89d2821b skb_queue_purge +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89eadaa8 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x8a01259a dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x8a23329c names_cachep +EXPORT_SYMBOL vmlinux 0x8a29e829 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x8a46be2a dev_gro_receive +EXPORT_SYMBOL vmlinux 0x8a524e6e md_done_sync +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa7b8d2 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x8ac5390f pci_release_regions +EXPORT_SYMBOL vmlinux 0x8ace9264 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b31da53 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b936a87 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock +EXPORT_SYMBOL vmlinux 0x8bb80a97 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x8bc2655e agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x8bd1de49 inet_getname +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bda983e md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x8bdb80fa init_net +EXPORT_SYMBOL vmlinux 0x8be6d343 user_path_at +EXPORT_SYMBOL vmlinux 0x8c094db5 skb_push +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1ecd51 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x8c22e3d4 padata_free +EXPORT_SYMBOL vmlinux 0x8c40de22 register_exec_domain +EXPORT_SYMBOL vmlinux 0x8c55139d pci_set_master +EXPORT_SYMBOL vmlinux 0x8c84530b skb_checksum +EXPORT_SYMBOL vmlinux 0x8c9a988b kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x8c9e79d1 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x8ca46b71 pci_iomap +EXPORT_SYMBOL vmlinux 0x8cb03b93 d_alloc +EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x8ccfb9e0 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x8cf5d336 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x8d333caf km_state_expired +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x8d7ba4f3 journal_flush +EXPORT_SYMBOL vmlinux 0x8d8cea3d skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d99add1 generic_file_open +EXPORT_SYMBOL vmlinux 0x8d9f5cfe pci_select_bars +EXPORT_SYMBOL vmlinux 0x8da20bee block_write_end +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dcd9b5a agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x8deb7713 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x8df19b3b elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e14f05e vga_put +EXPORT_SYMBOL vmlinux 0x8e1e8833 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x8e1ec58d neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x8e2ab4f0 start_tty +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e5c18ea save_mount_options +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e851712 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x8e891a52 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x8e991c70 vfs_writev +EXPORT_SYMBOL vmlinux 0x8eae6046 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb8061b iget_locked +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ef206dc pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x8ef3f8f0 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x8f0c5673 sock_no_connect +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f25176a jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f30ef03 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x8f369977 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x8f3fb774 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f706cd5 __scm_send +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa42b33 netlink_ack +EXPORT_SYMBOL vmlinux 0x8fa6a4e8 md_write_end +EXPORT_SYMBOL vmlinux 0x8fa768f4 kthread_stop +EXPORT_SYMBOL vmlinux 0x8fb94750 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x8ff2c269 security_path_link +EXPORT_SYMBOL vmlinux 0x8ffa8f95 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9015ffb5 inet6_bind +EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x902879bd iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x90385e10 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x9046a18d xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x904d25ae journal_set_features +EXPORT_SYMBOL vmlinux 0x9059841f jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x905fcab6 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x906c8fe7 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x9076b295 md_error +EXPORT_SYMBOL vmlinux 0x907ec5c7 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a5a89b new_inode +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x9105842f phy_connect +EXPORT_SYMBOL vmlinux 0x91169917 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x9129503d thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x914e6be7 security_file_permission +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x9163fc66 mnt_pin +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy +EXPORT_SYMBOL vmlinux 0x91abd92a vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x91ac3fd4 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x91d1f269 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x91d56f8a ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x922a77e6 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x9244689d pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x92529024 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x926e1ff6 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x927078fc seq_open +EXPORT_SYMBOL vmlinux 0x9288858c elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x92896531 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x928da2d9 block_sync_page +EXPORT_SYMBOL vmlinux 0x92ca6156 tty_kref_put +EXPORT_SYMBOL vmlinux 0x92d15acb km_report +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x9304cdbd generic_setlease +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93355f20 drop_super +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x93466f0f ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x934c7eec pcim_pin_device +EXPORT_SYMBOL vmlinux 0x9360f52b register_filesystem +EXPORT_SYMBOL vmlinux 0x9369aebd input_open_device +EXPORT_SYMBOL vmlinux 0x936bc2d7 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x93780d61 block_truncate_page +EXPORT_SYMBOL vmlinux 0x938dce33 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0x93c5f16b pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9402891a dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x940b03cc blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x940b29ab console_start +EXPORT_SYMBOL vmlinux 0x9411da22 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x9417bc61 module_put +EXPORT_SYMBOL vmlinux 0x94292fa2 textsearch_register +EXPORT_SYMBOL vmlinux 0x943aeca9 journal_ack_err +EXPORT_SYMBOL vmlinux 0x945a2148 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x9472d40c task_nice +EXPORT_SYMBOL vmlinux 0x9492b386 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949a32a9 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x94b28b56 phy_device_register +EXPORT_SYMBOL vmlinux 0x94b3076d serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x94bcf365 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x950537c3 generic_fillattr +EXPORT_SYMBOL vmlinux 0x9529c7bc vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x954e2f28 dma_pool_free +EXPORT_SYMBOL vmlinux 0x956432b7 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x956ae612 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x9573a8c1 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x95855f4f bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x9588d7f3 security_path_chown +EXPORT_SYMBOL vmlinux 0x95ba11e9 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x95beb285 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d27b1d i2c_master_recv +EXPORT_SYMBOL vmlinux 0x961305ad sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x9616a5a9 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x961d04ac nla_put +EXPORT_SYMBOL vmlinux 0x961ffa45 agp_copy_info +EXPORT_SYMBOL vmlinux 0x9631b643 register_console +EXPORT_SYMBOL vmlinux 0x96566631 tty_vhangup +EXPORT_SYMBOL vmlinux 0x965904b3 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x9664c267 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x966ea7bf bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x96747bfa generic_listxattr +EXPORT_SYMBOL vmlinux 0x967f5e71 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x969a5ab5 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x96b8dfc5 skb_set_dev +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d16f4d find_vma +EXPORT_SYMBOL vmlinux 0x96e2e370 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x96fa7c72 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x97192f10 tty_set_operations +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x9740d488 dm_table_put +EXPORT_SYMBOL vmlinux 0x97514e03 skb_trim +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975c0271 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x978f8815 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x97943b07 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x97a58c57 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x97b62d29 fget +EXPORT_SYMBOL vmlinux 0x97b8a94b ip6_frag_match +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97e066de linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x97f92ce6 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x9804a6ee phy_attach_direct +EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next +EXPORT_SYMBOL vmlinux 0x9842f534 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x98492722 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x98506d1e dev_get_flags +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988b6123 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x988dc6cc tty_port_close_end +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x989d5aef find_inode_number +EXPORT_SYMBOL vmlinux 0x98d65232 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x990e4cd0 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x991a6adf __bread +EXPORT_SYMBOL vmlinux 0x99274a14 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x993c779a fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x9946a68c mark_page_accessed +EXPORT_SYMBOL vmlinux 0x996c3688 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99b0e528 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x99b5797d vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x99fd88d9 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x9a0230b4 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x9a05838e free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9a1098a7 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a6905f1 follow_up +EXPORT_SYMBOL vmlinux 0x9a82993b lookup_hash +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9ab62a74 update_region +EXPORT_SYMBOL vmlinux 0x9ad3dde8 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x9b134a9c key_unlink +EXPORT_SYMBOL vmlinux 0x9b371516 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b407e37 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b82fb54 agp_free_memory +EXPORT_SYMBOL vmlinux 0x9b8e67a4 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x9ba19327 copy_io_context +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bc7478c input_set_keycode +EXPORT_SYMBOL vmlinux 0x9bdf149e posix_test_lock +EXPORT_SYMBOL vmlinux 0x9bf33f29 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c043eeb ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c188974 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x9c1f2fe6 set_groups +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cadbd67 skb_put +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9cd76be4 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x9ce73765 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x9cef7dfc dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d11458b ida_get_new_above +EXPORT_SYMBOL vmlinux 0x9d119c5c ipv4_specific +EXPORT_SYMBOL vmlinux 0x9d253c38 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3587e5 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x9d390b3f journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3d7a6f napi_frags_skb +EXPORT_SYMBOL vmlinux 0x9d495a30 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x9d524347 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x9d9fe7f0 journal_restart +EXPORT_SYMBOL vmlinux 0x9da9e6d1 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x9dabe6e5 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9db6a5ed dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x9dd08427 create_proc_entry +EXPORT_SYMBOL vmlinux 0x9e32ac7e vfs_write +EXPORT_SYMBOL vmlinux 0x9e551d60 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x9e5e82ac jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x9e61eade scsi_block_requests +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e6561a4 vfs_read +EXPORT_SYMBOL vmlinux 0x9e688d40 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x9e68aad3 write_inode_now +EXPORT_SYMBOL vmlinux 0x9e68b30b __invalidate_device +EXPORT_SYMBOL vmlinux 0x9e772f47 vga_tryget +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9edbecae snprintf +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f26d3da padata_do_parallel +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2cf872 set_binfmt +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f5c62cb poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x9f5d5ba4 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x9f63fe7c inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f938e88 dentry_open +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9ff77c jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x9faa1e75 bio_endio +EXPORT_SYMBOL vmlinux 0x9fad7435 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x9fc3ea2d tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x9fc9edd5 blk_complete_request +EXPORT_SYMBOL vmlinux 0x9fccccf6 flush_signals +EXPORT_SYMBOL vmlinux 0x9fdbda49 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9fdd2a4d tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x9fddc066 block_write_full_page +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe6eba1 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x9feb9068 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x9ffed2d9 simple_getattr +EXPORT_SYMBOL vmlinux 0xa008fe03 km_query +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05a8f0f dev_trans_start +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa061bfa4 bd_release +EXPORT_SYMBOL vmlinux 0xa066fcee mmc_remove_host +EXPORT_SYMBOL vmlinux 0xa068eead swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xa0960488 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b1d971 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xa0ce13f4 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0fb455a dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa105008c journal_release_buffer +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1094e90 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa10aacd4 inode_init_once +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa15476f1 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xa154f7e7 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xa15cc30c blk_execute_rq +EXPORT_SYMBOL vmlinux 0xa17bf6d0 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c13c74 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1d8387c input_unregister_device +EXPORT_SYMBOL vmlinux 0xa1da5347 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xa1db93d6 noop_fsync +EXPORT_SYMBOL vmlinux 0xa2063311 security_path_rename +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa219532e skb_store_bits +EXPORT_SYMBOL vmlinux 0xa2391d9a acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xa254914c aio_put_req +EXPORT_SYMBOL vmlinux 0xa25d681a jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xa2695cef netlink_unicast +EXPORT_SYMBOL vmlinux 0xa2824030 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xa2a52af3 search_binary_handler +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2bf35fd compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xa2d87001 do_munmap +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa32870ab dst_destroy +EXPORT_SYMBOL vmlinux 0xa3321b7c block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa3474d91 __devm_release_region +EXPORT_SYMBOL vmlinux 0xa3474ee3 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35383ad textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa36b5c81 mb_cache_create +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa454385d tty_port_put +EXPORT_SYMBOL vmlinux 0xa4631584 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xa476141a posix_acl_permission +EXPORT_SYMBOL vmlinux 0xa47fb533 unregister_nls +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b5cf5f nf_afinfo +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4ef6d97 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xa52261c6 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xa52d01ca lro_receive_frags +EXPORT_SYMBOL vmlinux 0xa5366abe read_cache_page +EXPORT_SYMBOL vmlinux 0xa552d347 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xa5531e76 submit_bh +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5ad4eb1 cdev_init +EXPORT_SYMBOL vmlinux 0xa5b3576d dqget +EXPORT_SYMBOL vmlinux 0xa5b7ef42 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xa5c765d1 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xa600dd55 sock_rfree +EXPORT_SYMBOL vmlinux 0xa62a9372 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xa6376a78 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa65db866 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xa65e4297 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa691381d skb_free_datagram +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa7293083 scsi_get_command +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa744e8ca poll_initwait +EXPORT_SYMBOL vmlinux 0xa74f5e6a eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xa75c8218 dm_register_target +EXPORT_SYMBOL vmlinux 0xa7804c98 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xa7b40238 blk_make_request +EXPORT_SYMBOL vmlinux 0xa7c15ce9 inet_release +EXPORT_SYMBOL vmlinux 0xa7db8ba7 d_alloc_name +EXPORT_SYMBOL vmlinux 0xa7dc065f vc_cons +EXPORT_SYMBOL vmlinux 0xa80e2742 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa81f1020 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xa82ab34d elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xa85fb072 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8b3cbb1 mmc_request_done +EXPORT_SYMBOL vmlinux 0xa8c3ff41 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa9521252 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xa972f84f set_bdi_congested +EXPORT_SYMBOL vmlinux 0xa9816a93 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xa9a70cef __breadahead +EXPORT_SYMBOL vmlinux 0xa9a75050 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xa9acae4e inet_ioctl +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c0fb38 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xa9d7112a __serio_register_port +EXPORT_SYMBOL vmlinux 0xa9ddaee8 da903x_query_status +EXPORT_SYMBOL vmlinux 0xa9e19cbc otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xa9f52dcf mmc_release_host +EXPORT_SYMBOL vmlinux 0xaa2305d3 skb_split +EXPORT_SYMBOL vmlinux 0xaa3aa099 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xaa4b0820 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xaa4d697a get_super +EXPORT_SYMBOL vmlinux 0xaa72d1fa inet_csk_accept +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaef59b1 netpoll_setup +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaaf9f7a7 ps2_init +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab1d6b2f alloc_file +EXPORT_SYMBOL vmlinux 0xab5e79bb bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xab5fa5c8 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab665fbc prepare_binprm +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab8d5f1e __lru_cache_add +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xabba8cb6 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xabbde082 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xabc1dee6 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd7fd91 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xabdfb8d9 mmc_register_driver +EXPORT_SYMBOL vmlinux 0xabebc09e inet_bind +EXPORT_SYMBOL vmlinux 0xac03e879 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac41b06f tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xac4c6539 iunique +EXPORT_SYMBOL vmlinux 0xac4d7154 journal_start_commit +EXPORT_SYMBOL vmlinux 0xac4ed883 blk_init_tags +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac5b32da __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xac606127 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xac664db9 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac74f531 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xac763b3f fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0xac879797 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xac9b84f3 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xacbb574b generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacfe9d0b pci_request_region +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0d98a8 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad15e130 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xad1b950e try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xad206de7 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy +EXPORT_SYMBOL vmlinux 0xad2d26de cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xad2fc012 thaw_process +EXPORT_SYMBOL vmlinux 0xad3da71d pci_get_slot +EXPORT_SYMBOL vmlinux 0xad417648 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad512319 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xad72139f neigh_compat_output +EXPORT_SYMBOL vmlinux 0xad735a8c jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xad7fc62a tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xad92e7be scsi_target_resume +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadafa305 km_new_mapping +EXPORT_SYMBOL vmlinux 0xadd25215 inet_select_addr +EXPORT_SYMBOL vmlinux 0xaddaecc8 scsi_print_command +EXPORT_SYMBOL vmlinux 0xae1b6701 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xae2e9daa blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xae6e3063 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xae89057f nf_log_unregister +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xaea8d6be fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeadf668 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xaecb18c3 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xaedaa23f hippi_mac_addr +EXPORT_SYMBOL vmlinux 0xaee11f5a locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xaee5e95c ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xaef31976 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xaef78a97 bd_claim +EXPORT_SYMBOL vmlinux 0xaefb0cd2 invalidate_partition +EXPORT_SYMBOL vmlinux 0xaf268a6c __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1e43 fd_install +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf73c87b __brelse +EXPORT_SYMBOL vmlinux 0xaf8a7135 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xaf8a9b06 bdi_init +EXPORT_SYMBOL vmlinux 0xaf99d340 page_readlink +EXPORT_SYMBOL vmlinux 0xafabc36b zero_fill_bio +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafbab16b in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xafe3a9b2 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb02f4618 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xb0426c11 udp_prot +EXPORT_SYMBOL vmlinux 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL vmlinux 0xb052d3a1 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xb05436e1 proc_symlink +EXPORT_SYMBOL vmlinux 0xb05a9739 pipe_lock +EXPORT_SYMBOL vmlinux 0xb063990e generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xb06d3a4a i2c_del_driver +EXPORT_SYMBOL vmlinux 0xb07dd116 dev_uc_add +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb089a814 page_put_link +EXPORT_SYMBOL vmlinux 0xb095c228 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xb0ab84ff i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d09e61 igrab +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ea398c free_task +EXPORT_SYMBOL vmlinux 0xb0ef1c80 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb119d74d security_d_instantiate +EXPORT_SYMBOL vmlinux 0xb11e5f58 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb127cc5b vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xb1471bbf k8_northbridges +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb19150f9 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c88da3 keyring_search +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb1ff68a9 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22b7aaf pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2638ef8 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26ebbd2 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xb2884255 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xb2c36e10 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xb2c69d12 dm_table_event +EXPORT_SYMBOL vmlinux 0xb2dd7c3f neigh_seq_next +EXPORT_SYMBOL vmlinux 0xb2e063fe genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xb2e55898 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb2fe65d6 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xb2ff4eed neigh_create +EXPORT_SYMBOL vmlinux 0xb32658e6 set_pages_wb +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb334e175 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb37adb9e pcim_iounmap +EXPORT_SYMBOL vmlinux 0xb37c74b8 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xb3c84ca9 cdev_del +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb40e6e65 seq_bitmap +EXPORT_SYMBOL vmlinux 0xb41e1496 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb429978e pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xb432e2f7 input_inject_event +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb452cb6f con_is_bound +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4aa1881 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xb4c37d04 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xb4c99e37 dev_addr_add +EXPORT_SYMBOL vmlinux 0xb4d93b3c poll_freewait +EXPORT_SYMBOL vmlinux 0xb4fac69c vfs_llseek +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5287a52 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54ab608 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xb54f6ed6 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xb550522f revert_creds +EXPORT_SYMBOL vmlinux 0xb5855388 skb_seq_read +EXPORT_SYMBOL vmlinux 0xb58ac200 kill_pid +EXPORT_SYMBOL vmlinux 0xb590bae6 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5f28b5f __any_online_cpu +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6368186 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb680c740 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xb684f0c1 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xb6a05f9d get_sb_single +EXPORT_SYMBOL vmlinux 0xb6a26c60 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b33aed bio_integrity_free +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d7e52b __secpath_destroy +EXPORT_SYMBOL vmlinux 0xb70810c6 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xb711ddf3 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xb7544e7d unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb7596bb2 i2c_master_send +EXPORT_SYMBOL vmlinux 0xb77960f1 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xb77e7c4c filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xb77fcbec input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xb7adf2c9 devm_iounmap +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7cbcc4f vmtruncate +EXPORT_SYMBOL vmlinux 0xb7ddb0ad unregister_key_type +EXPORT_SYMBOL vmlinux 0xb812187d devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xb81e8c29 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xb8300e92 md_write_start +EXPORT_SYMBOL vmlinux 0xb841bf1c should_remove_suid +EXPORT_SYMBOL vmlinux 0xb854e584 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xb858a1f7 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb87d25c2 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xb8972a15 __lock_page +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8a67940 inet6_getname +EXPORT_SYMBOL vmlinux 0xb8c21336 cdev_add +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb92da4dd phy_stop +EXPORT_SYMBOL vmlinux 0xb93b94be sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xb950d340 neigh_table_init +EXPORT_SYMBOL vmlinux 0xb95d28d7 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0xb97bd159 secpath_dup +EXPORT_SYMBOL vmlinux 0xb97d4928 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xb97d9153 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xb97e789c fb_pan_display +EXPORT_SYMBOL vmlinux 0xb9853d7b scsi_finish_command +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9d4a0c4 inet_addr_type +EXPORT_SYMBOL vmlinux 0xb9d77d07 pci_save_state +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9ef2754 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xb9fc29e2 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba2a1bc2 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5a669c abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xba7dfb57 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0xba7f512c dev_uc_del +EXPORT_SYMBOL vmlinux 0xba8db506 bio_alloc +EXPORT_SYMBOL vmlinux 0xba90d3b4 tty_register_device +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbabbb351 bio_free +EXPORT_SYMBOL vmlinux 0xbac42042 journal_get_create_access +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbae08112 bio_pair_release +EXPORT_SYMBOL vmlinux 0xbb0c773f sk_alloc +EXPORT_SYMBOL vmlinux 0xbb1195a8 neigh_lookup +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3e688e fb_blank +EXPORT_SYMBOL vmlinux 0xbb40869d pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xbb4cb3a4 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xbb4fa23f deactivate_super +EXPORT_SYMBOL vmlinux 0xbb5a1b05 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb61c1db dst_release +EXPORT_SYMBOL vmlinux 0xbb741ed6 override_creds +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbdb55f0 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xbbf9dfb2 journal_destroy +EXPORT_SYMBOL vmlinux 0xbc02aaae generic_writepages +EXPORT_SYMBOL vmlinux 0xbc0c9261 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc347675 dma_set_mask +EXPORT_SYMBOL vmlinux 0xbc3861b7 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xbc5540e2 ilookup5 +EXPORT_SYMBOL vmlinux 0xbc6029be dput +EXPORT_SYMBOL vmlinux 0xbc7d8a14 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xbc94e644 simple_write_begin +EXPORT_SYMBOL vmlinux 0xbc96c195 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xbc9f5962 tty_write_room +EXPORT_SYMBOL vmlinux 0xbcabb9dc mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xbcb6e1c8 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd7a7ac pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xbce69a7e scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xbcf6412b nf_log_register +EXPORT_SYMBOL vmlinux 0xbd086211 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xbd24a5fa xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xbd3790c1 input_grab_device +EXPORT_SYMBOL vmlinux 0xbd46ff36 filemap_fault +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdb95db4 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xbdd2d7de ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xbdf26640 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0823c5 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe599ac6 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xbe7d61dc revalidate_disk +EXPORT_SYMBOL vmlinux 0xbea7f388 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xbeeadc02 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf04f59f __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xbf09622e dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xbf191d97 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xbf3cb249 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xbf46a5b5 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xbf6c39a0 thaw_super +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8d4800 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb2b667 wake_up_process +EXPORT_SYMBOL vmlinux 0xbfbcead6 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfdb60a8 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xbfe857b3 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbff8ae6a shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc0049500 dev_addr_init +EXPORT_SYMBOL vmlinux 0xc0119358 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xc02ba837 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xc0345b41 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0xc03f0f08 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xc04ec889 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc06a3a77 __lookup_one_len +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a335d4 may_umount_tree +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0aba53d swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xc0cae8c3 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xc0cf991e sock_kfree_s +EXPORT_SYMBOL vmlinux 0xc106e800 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xc1268644 idr_init +EXPORT_SYMBOL vmlinux 0xc14b3610 pci_get_class +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc1a18fdb ppp_dev_name +EXPORT_SYMBOL vmlinux 0xc1adb999 journal_stop +EXPORT_SYMBOL vmlinux 0xc1b171d7 __napi_schedule +EXPORT_SYMBOL vmlinux 0xc1b8d0d7 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xc1bbd1f6 sock_create_kern +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1e07884 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xc1e89689 filp_open +EXPORT_SYMBOL vmlinux 0xc1f89b52 sk_reset_txq +EXPORT_SYMBOL vmlinux 0xc1fa6551 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc270c101 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xc299fd6d module_refcount +EXPORT_SYMBOL vmlinux 0xc2b6c983 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xc2bb56b3 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fdbcb4 log_start_commit +EXPORT_SYMBOL vmlinux 0xc31ce612 do_truncate +EXPORT_SYMBOL vmlinux 0xc325be01 blk_unplug +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc34fb5e5 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xc35e6e92 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xc369f187 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3b11160 sock_create_lite +EXPORT_SYMBOL vmlinux 0xc3cd6bcb sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xc3ff5ea7 pci_clear_master +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc425c8aa udp_proc_register +EXPORT_SYMBOL vmlinux 0xc435a3a0 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xc446b0bc xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xc4594b64 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xc464ca7f request_key_async +EXPORT_SYMBOL vmlinux 0xc489ac42 __put_cred +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4afaafb journal_create +EXPORT_SYMBOL vmlinux 0xc4c959e1 create_mnt_ns +EXPORT_SYMBOL vmlinux 0xc4de6b1c skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xc4e2d475 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xc4e4a5df dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e9c01c cpu_active_mask +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53fa348 unregister_netdev +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc57557c4 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0xc5820138 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xc5b9c892 tty_register_driver +EXPORT_SYMBOL vmlinux 0xc5c2f725 release_sock +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5eed506 ps2_end_command +EXPORT_SYMBOL vmlinux 0xc5efac49 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xc603eeb9 __mutex_init +EXPORT_SYMBOL vmlinux 0xc6233f2e request_key +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc636c5d8 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc679b385 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xc67cd8ef neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6bfeb08 kobject_init +EXPORT_SYMBOL vmlinux 0xc6f08f5d blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc746ab0a fb_show_logo +EXPORT_SYMBOL vmlinux 0xc796c81f input_free_device +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4666d __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7d16c15 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc7f3ba8e pskb_copy +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc854183f __inet6_hash +EXPORT_SYMBOL vmlinux 0xc8601c4b i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xc86bca4d nlmsg_notify +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc888b796 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8b46a35 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xc8b4f026 dquot_enable +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8bfd0d8 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xc910c8ae blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xc9253729 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xc946e7ff generic_file_fsync +EXPORT_SYMBOL vmlinux 0xc94b21b3 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xc9605c60 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xc97efd55 uart_match_port +EXPORT_SYMBOL vmlinux 0xc98784e9 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xc988186f dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xc99be733 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xc99d739c ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9c155a1 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xc9cc5401 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xc9cd1184 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0xc9fa70b1 sock_map_fd +EXPORT_SYMBOL vmlinux 0xca509cbb bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca680604 key_task_permission +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca99b3e7 lease_modify +EXPORT_SYMBOL vmlinux 0xca9e3346 aio_complete +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcaf2747f tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xcafbc30e pagevec_lookup +EXPORT_SYMBOL vmlinux 0xcafcbd3f hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0xcb4bebd8 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcbcb2778 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0xcbd05c45 md_integrity_register +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc1da640 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc25800b tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc57370b udp_poll +EXPORT_SYMBOL vmlinux 0xcc5e1565 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xcc5fd4c4 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8ac0cb sock_kmalloc +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xccac8c7f __napi_complete +EXPORT_SYMBOL vmlinux 0xccc78655 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xccf4deb6 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0xccf6acac starget_for_each_device +EXPORT_SYMBOL vmlinux 0xcd2e274c netlink_dump_start +EXPORT_SYMBOL vmlinux 0xcd449f1d security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xcd6306d3 blk_run_queue +EXPORT_SYMBOL vmlinux 0xcd6b13b1 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xcda404fa get_agp_version +EXPORT_SYMBOL vmlinux 0xcdb0aa33 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xce06c472 may_umount +EXPORT_SYMBOL vmlinux 0xce0ea8ff xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce4554e4 soft_cursor +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce52228e sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xce92551c pci_dev_driver +EXPORT_SYMBOL vmlinux 0xceb8ab6c blk_free_tags +EXPORT_SYMBOL vmlinux 0xcebc0743 alloc_trdev +EXPORT_SYMBOL vmlinux 0xcede4ab7 ppp_input +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcef9ce11 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf01dca7 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xcf1030cb pci_set_power_state +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf4252a3 bdget_disk +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf892ff1 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xcfabc599 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfc37a00 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xcfcae424 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xcfd07756 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy +EXPORT_SYMBOL vmlinux 0xd00a182d __register_binfmt +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0323877 eth_header +EXPORT_SYMBOL vmlinux 0xd0452aee x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xd0511b56 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xd06a113b dquot_quota_on +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd08249af scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0e9940f __ip_select_ident +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1181d0a generic_getxattr +EXPORT_SYMBOL vmlinux 0xd139b8b2 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xd13c40ed read_cache_page_async +EXPORT_SYMBOL vmlinux 0xd13fd7ca seq_release +EXPORT_SYMBOL vmlinux 0xd1470c0f eth_header_parse +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd1504d62 sk_stream_error +EXPORT_SYMBOL vmlinux 0xd15d0ba7 pcim_iomap +EXPORT_SYMBOL vmlinux 0xd161ecfe bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xd169af32 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xd1838b8c swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1a9e91c generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xd1bb6930 pci_match_id +EXPORT_SYMBOL vmlinux 0xd1be6766 input_register_device +EXPORT_SYMBOL vmlinux 0xd1c7470b blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xd1ccac5f dev_add_pack +EXPORT_SYMBOL vmlinux 0xd1e84969 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1f7f41d alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0xd20bd7f3 vfs_readdir +EXPORT_SYMBOL vmlinux 0xd2119dcc nf_reinject +EXPORT_SYMBOL vmlinux 0xd2177d33 skb_copy +EXPORT_SYMBOL vmlinux 0xd21a77b6 tcp_child_process +EXPORT_SYMBOL vmlinux 0xd222b489 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd241a3b6 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25c240f i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2721823 mpage_writepages +EXPORT_SYMBOL vmlinux 0xd273ef50 fasync_helper +EXPORT_SYMBOL vmlinux 0xd27d05ea dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xd2829d10 ip_route_output_key +EXPORT_SYMBOL vmlinux 0xd284e982 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a5d999 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2ac6ecc pnp_get_resource +EXPORT_SYMBOL vmlinux 0xd2af50ad vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xd2e4def3 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xd32c7a43 dst_discard +EXPORT_SYMBOL vmlinux 0xd330ce45 kobject_set_name +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd362fed5 key_type_keyring +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3a07527 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xd3ad1599 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd4079e5b kobject_del +EXPORT_SYMBOL vmlinux 0xd416a453 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xd433a9ab blkdev_fsync +EXPORT_SYMBOL vmlinux 0xd44ef87b udp_ioctl +EXPORT_SYMBOL vmlinux 0xd45084df jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xd45205ce __neigh_event_send +EXPORT_SYMBOL vmlinux 0xd46bdb5d ip_setsockopt +EXPORT_SYMBOL vmlinux 0xd47562bf tcp_parse_options +EXPORT_SYMBOL vmlinux 0xd47d3115 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xd4938c45 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xd508284d lock_sock_nested +EXPORT_SYMBOL vmlinux 0xd50950bb xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xd5099a24 migrate_page +EXPORT_SYMBOL vmlinux 0xd50b0963 sock_update_classid +EXPORT_SYMBOL vmlinux 0xd50dedb9 bio_map_kern +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5405214 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xd5413999 init_task +EXPORT_SYMBOL vmlinux 0xd54912fc noop_qdisc +EXPORT_SYMBOL vmlinux 0xd556450b xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd577a5dd register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages +EXPORT_SYMBOL vmlinux 0xd5856857 arp_tbl +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5be31ef journal_abort +EXPORT_SYMBOL vmlinux 0xd5bea353 tcp_connect +EXPORT_SYMBOL vmlinux 0xd5ca1555 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xd5cb5022 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xd5f7a112 skb_insert +EXPORT_SYMBOL vmlinux 0xd6022ac4 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xd6088cdd kset_unregister +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd615ab6c i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd637dc26 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xd63e1a5c unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xd67478c6 audit_log_end +EXPORT_SYMBOL vmlinux 0xd685dae9 dquot_release +EXPORT_SYMBOL vmlinux 0xd687ae24 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6aa1bb3 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6b7f2f2 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xd6d842ff current_fs_time +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd7193830 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xd72a9a7a xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xd739c144 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xd740a986 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xd7424762 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xd746e7b6 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xd751d994 path_get +EXPORT_SYMBOL vmlinux 0xd757da1b scsi_print_result +EXPORT_SYMBOL vmlinux 0xd778830e vfs_mknod +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7e8eab3 scsi_device_put +EXPORT_SYMBOL vmlinux 0xd7ed8661 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xd7f83816 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xd800534c __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xd80854f7 bdget +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd87c4dff phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8bb1981 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xd8d49c5b blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xd8dee5a0 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd927fbd0 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92e3d96 set_irq_chip +EXPORT_SYMBOL vmlinux 0xd92efe9f current_task +EXPORT_SYMBOL vmlinux 0xd936efb6 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xd93a4de4 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd94b53e7 netif_napi_add +EXPORT_SYMBOL vmlinux 0xd95c6ef5 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xd975d0db alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xda03a10e skb_pad +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda0b82c4 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda55f11b agp_bridge +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda5d5030 dma_ops +EXPORT_SYMBOL vmlinux 0xda681b7c tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xda76e1f5 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xda9b208e read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xdab2331b file_permission +EXPORT_SYMBOL vmlinux 0xdad358f4 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xdad99aa1 pci_enable_device +EXPORT_SYMBOL vmlinux 0xdb1fe565 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xdb251d5e acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xdb2aa1bb pci_set_mwi +EXPORT_SYMBOL vmlinux 0xdb2d111a set_disk_ro +EXPORT_SYMBOL vmlinux 0xdb31c2a8 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xdb54392f inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xdb55b9de bio_copy_user +EXPORT_SYMBOL vmlinux 0xdb5b3395 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xdb5d7816 fput +EXPORT_SYMBOL vmlinux 0xdb77552a dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0xdb8d8cef get_gendisk +EXPORT_SYMBOL vmlinux 0xdbadcdfc ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xdbb5ad5c node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbcfac00 input_event +EXPORT_SYMBOL vmlinux 0xdbdd9c9d kernel_read +EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2f60a6 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xdc32a31f xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xdc373f25 take_over_console +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc6d8bbe try_to_release_page +EXPORT_SYMBOL vmlinux 0xdc74efeb iterate_mounts +EXPORT_SYMBOL vmlinux 0xdc8f2c19 kernel_bind +EXPORT_SYMBOL vmlinux 0xdc98aa2c security_inode_readlink +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca9c807 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcba67fd simple_dir_operations +EXPORT_SYMBOL vmlinux 0xdce1ce59 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xdce2a8fc unregister_con_driver +EXPORT_SYMBOL vmlinux 0xdce98eae fb_get_mode +EXPORT_SYMBOL vmlinux 0xdd147bce pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xdd42d412 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xdd4ad457 softnet_data +EXPORT_SYMBOL vmlinux 0xdd616a83 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xdd81c320 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xddbe4fbf cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xddc64cb6 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde1f37dc pci_iounmap +EXPORT_SYMBOL vmlinux 0xde2a2945 simple_rename +EXPORT_SYMBOL vmlinux 0xde2c5e9b thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xde466b15 dst_alloc +EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde918c8b inet_del_protocol +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9a5fb7 agp_backend_release +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdec60584 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xded79623 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf43b04a writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf8dc068 inode_init_always +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf9c4b5d sync_blockdev +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfe764d1 iget5_locked +EXPORT_SYMBOL vmlinux 0xdff6139f tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xdff9afb9 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xe05bc6da inet_stream_ops +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0775648 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xe09f4492 security_file_mmap +EXPORT_SYMBOL vmlinux 0xe0a1eb56 register_gifconf +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0bd0af4 vfs_create +EXPORT_SYMBOL vmlinux 0xe0c43d39 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xe0d5bfa1 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xe0e3afa0 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe13e3676 deny_write_access +EXPORT_SYMBOL vmlinux 0xe1521e4a uart_suspend_port +EXPORT_SYMBOL vmlinux 0xe165d6f9 ps2_command +EXPORT_SYMBOL vmlinux 0xe166b5cc tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe19d0499 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xe1a08ac4 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xe1a83686 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xe1cd2721 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xe1cf8384 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xe1d01090 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xe1d1fbe0 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xe1d442aa sock_no_getname +EXPORT_SYMBOL vmlinux 0xe1ef71ac pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xe1f58412 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xe2206cc4 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe252df40 __netif_schedule +EXPORT_SYMBOL vmlinux 0xe27ed037 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe2d2a396 scsi_unregister +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d9a19d backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xe3380100 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xe356c66a cpu_core_map +EXPORT_SYMBOL vmlinux 0xe36a2d30 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xe3779515 generic_read_dir +EXPORT_SYMBOL vmlinux 0xe382f61f scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xe38d7ac0 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xe3914589 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xe3a03e16 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3b4164f qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xe3cbb26a blk_sync_queue +EXPORT_SYMBOL vmlinux 0xe3dcae0a nf_setsockopt +EXPORT_SYMBOL vmlinux 0xe3ea511f ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xe3f58f56 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe40047bb ip6_frag_init +EXPORT_SYMBOL vmlinux 0xe412acae md_check_recovery +EXPORT_SYMBOL vmlinux 0xe4213a9d nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xe4225afc d_invalidate +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe436a259 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xe445a3bf inet_accept +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe465f837 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xe47eaa7c spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4ac36e9 do_splice_from +EXPORT_SYMBOL vmlinux 0xe4b24b8c __next_cpu +EXPORT_SYMBOL vmlinux 0xe4df4136 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xe4fc677a fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xe50ec81a blk_start_request +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5132b29 spi_dv_device +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe52d2145 __destroy_inode +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe53ee230 phy_print_status +EXPORT_SYMBOL vmlinux 0xe5554f7e elevator_init +EXPORT_SYMBOL vmlinux 0xe5698a89 udplite_prot +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58fb1b2 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xe59bdda0 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xe5a1617b seq_path +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d0700a generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xe5dcc820 skb_tx_hash +EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f23151 bioset_free +EXPORT_SYMBOL vmlinux 0xe656ba3b i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe6932e00 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6b22b45 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xe6bd8cf6 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe711a0ff xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xe71664e0 ps2_drain +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe72a7d8e sg_miter_stop +EXPORT_SYMBOL vmlinux 0xe742da04 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe7649695 serial8250_register_port +EXPORT_SYMBOL vmlinux 0xe76d5721 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xe776a4ac security_path_chmod +EXPORT_SYMBOL vmlinux 0xe77f6f14 seq_write +EXPORT_SYMBOL vmlinux 0xe7846c96 bdput +EXPORT_SYMBOL vmlinux 0xe7cc3148 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xe7cd59ec tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e83470 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xe7f9a605 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xe7fca12d remove_arg_zero +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe80d85fb create_empty_buffers +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8185f3d find_get_page +EXPORT_SYMBOL vmlinux 0xe83eab31 skb_clone +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe85c3da3 lock_fb_info +EXPORT_SYMBOL vmlinux 0xe8765744 sk_common_release +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87da0d4 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL vmlinux 0xe8d30799 rfkill_register +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90d48fb bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91edc0f ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xe988466d devm_ioremap +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9afa030 sock_register +EXPORT_SYMBOL vmlinux 0xe9d84c8c lookup_bdev +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea11974e pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xea147363 printk +EXPORT_SYMBOL vmlinux 0xea3b2d14 neigh_update +EXPORT_SYMBOL vmlinux 0xea472480 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xea6e1736 free_netdev +EXPORT_SYMBOL vmlinux 0xea7a59cb i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeadc4bb7 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb0dd4b0 dquot_operations +EXPORT_SYMBOL vmlinux 0xeb15ca17 dm_io +EXPORT_SYMBOL vmlinux 0xeb1d0d31 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb7fda54 security_path_mknod +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb9d960e xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xeba7ee9b ip6_xmit +EXPORT_SYMBOL vmlinux 0xeba9a847 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebcb0afa mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xebcb20b0 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebe4ed1d netif_rx +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec241445 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xec2cbef1 no_llseek +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec67368d wireless_spy_update +EXPORT_SYMBOL vmlinux 0xec739220 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xecab3146 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xecae960e xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xeccae092 put_io_context +EXPORT_SYMBOL vmlinux 0xecf7c430 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xed2c4180 install_exec_creds +EXPORT_SYMBOL vmlinux 0xed4257cc freeze_bdev +EXPORT_SYMBOL vmlinux 0xed633f70 key_link +EXPORT_SYMBOL vmlinux 0xed80702f scsi_init_io +EXPORT_SYMBOL vmlinux 0xed866ae2 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed9996d6 rtnl_notify +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda3ce63 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xedb468e9 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedeb44b5 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xee082844 nf_log_packet +EXPORT_SYMBOL vmlinux 0xee2bc709 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee2e286f alloc_fddidev +EXPORT_SYMBOL vmlinux 0xee380af9 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xee5cd7eb agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeede9ae thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xeef80f28 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xef0beca7 simple_unlink +EXPORT_SYMBOL vmlinux 0xef23c3b6 input_close_device +EXPORT_SYMBOL vmlinux 0xef46b509 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xef50a955 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xef576b8c inode_permission +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef766cf4 filemap_flush +EXPORT_SYMBOL vmlinux 0xef7ad16c sock_no_listen +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefb5faa4 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xefc262f6 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xeffad35b dquot_scan_active +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0113c8e fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xf01e9537 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xf0415554 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf079c151 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09c9b40 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0b7a2e7 mapping_tagged +EXPORT_SYMBOL vmlinux 0xf0cceaf6 init_special_inode +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fb530b inode_set_bytes +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf1071b6a __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf12f1ce6 blk_plug_device +EXPORT_SYMBOL vmlinux 0xf140454b __getblk +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf1893b08 journal_start +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1c05766 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xf1d1ddac jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xf1d22946 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xf1d596ca sock_create +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f7c142 pci_request_regions +EXPORT_SYMBOL vmlinux 0xf1f924de blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xf1fcdb63 dm_get_device +EXPORT_SYMBOL vmlinux 0xf2065c99 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xf206cfc3 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf213d193 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xf22beacd clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xf2573e4d __rta_fill +EXPORT_SYMBOL vmlinux 0xf25a5617 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xf287fa66 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xf28c3c23 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xf28cf71b mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xf292673f noop_llseek +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2d97eed tty_port_close_start +EXPORT_SYMBOL vmlinux 0xf2e15e4d md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xf2fce430 end_page_writeback +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31893d2 dquot_resume +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf348feca sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xf379e324 netpoll_poll +EXPORT_SYMBOL vmlinux 0xf37de227 set_pages_uc +EXPORT_SYMBOL vmlinux 0xf38477ed blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf38f2ef9 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39fd779 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d59ca6 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xf3ea8eb3 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf408f156 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xf40a962f pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xf42ddee9 ppp_input_error +EXPORT_SYMBOL vmlinux 0xf433adda pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf46bd0e6 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0xf482f77c security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf497cde8 rfkill_unregister +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4a6be52 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4b7af09 ip_dev_find +EXPORT_SYMBOL vmlinux 0xf4b8c35a abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xf4bcf285 bio_clone +EXPORT_SYMBOL vmlinux 0xf4d19095 bio_map_user +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf52a9a16 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf54a6039 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xf57a2e2a alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xf57ad089 set_pages_x +EXPORT_SYMBOL vmlinux 0xf5bbf0c6 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5e1c41a mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf6052b5e devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf61f2a72 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xf62984ef ps2_handle_response +EXPORT_SYMBOL vmlinux 0xf649efa1 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xf67010c7 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xf670264a inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6e537d7 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ec2675 tcp_poll +EXPORT_SYMBOL vmlinux 0xf70a2c60 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xf713bd05 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xf74ecc9d scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7b20eb1 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xf7bf85c6 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0xf7db21ad simple_pin_fs +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf815e5c7 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf8481f03 netif_device_detach +EXPORT_SYMBOL vmlinux 0xf84a430c kern_path +EXPORT_SYMBOL vmlinux 0xf85a2317 path_is_under +EXPORT_SYMBOL vmlinux 0xf8620db3 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xf87b83d9 open_exec +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8981db2 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8bbdae8 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xf8c5b9ac gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xf8e70818 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xf8fd4172 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xf90d66b6 nobh_write_end +EXPORT_SYMBOL vmlinux 0xf9129365 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xf9256d36 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xf9289f89 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xf930fbf2 notify_change +EXPORT_SYMBOL vmlinux 0xf959d641 arp_send +EXPORT_SYMBOL vmlinux 0xf9635df6 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf980e1da mntput_no_expire +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9d74967 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xf9fa8a81 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xfa256a69 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xfa3445f6 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xfa404b3c bd_set_size +EXPORT_SYMBOL vmlinux 0xfa530689 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xfa5b26b4 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xfa64666d neigh_seq_start +EXPORT_SYMBOL vmlinux 0xfa68ac3f pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xfa7d7701 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0xfa9a8f1d swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xfaf89602 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb3ea712 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfbb13e46 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbefeff3 security_path_symlink +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0e6ecb journal_errno +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4750d1 sk_wait_data +EXPORT_SYMBOL vmlinux 0xfc6ad8f9 blk_register_region +EXPORT_SYMBOL vmlinux 0xfc6e2bb6 path_lookup +EXPORT_SYMBOL vmlinux 0xfc7ab46e cap_file_mmap +EXPORT_SYMBOL vmlinux 0xfc7f0785 tty_name +EXPORT_SYMBOL vmlinux 0xfc86e941 netlink_set_err +EXPORT_SYMBOL vmlinux 0xfc8f99a7 alloc_disk +EXPORT_SYMBOL vmlinux 0xfc974838 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xfc99283b mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xfca041e1 key_alloc +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcaed323 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd58829 dev_get_stats +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd1cbe92 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xfd38fa9a lro_flush_all +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd774777 dev_change_flags +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd965a67 flush_old_exec +EXPORT_SYMBOL vmlinux 0xfd97f32a acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xfd9c991b i2c_transfer +EXPORT_SYMBOL vmlinux 0xfd9ecb65 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc31221 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xfde0d81c bio_put +EXPORT_SYMBOL vmlinux 0xfde1c738 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xfdf5f9db __break_lease +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe007cc0 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe1fec6a mmc_card_sleep +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe295b3f delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0xfe2b1084 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xfe2d94b6 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe4b613e xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xfe51a274 bdev_read_only +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7945dd acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe80803d scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xfe9f1857 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0xfea961ad kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xfeb36d66 release_firmware +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfec836d2 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xfece347e end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff090fd1 mutex_trylock +EXPORT_SYMBOL vmlinux 0xff182426 vga_client_register +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6b4daa journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xff6d7dcd dcache_readdir +EXPORT_SYMBOL vmlinux 0xff6f3cda dm_io_client_create +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff8e7c74 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff984224 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa0373b call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xffc79b89 napi_get_frags +EXPORT_SYMBOL vmlinux 0xffc7b3d0 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0xffd56255 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x03e41c3b kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b116020 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0bc21bf5 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1199fbe6 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x13885174 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14d3fe58 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1ed58ab6 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x249fe355 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a8dceba kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x31b96ad5 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x332d79cb kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3395f0c6 gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36560b7b kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x385359a9 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3c3af309 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41b9d0fd kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x46085e5d kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4748b340 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4d94c92f kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e75d76b kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e97d299 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x51a7df46 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53bd2448 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x578b9663 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x58022170 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a6f36ce kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b6462b9 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5cb8b0cf kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5d953e09 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62cd2262 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63175b68 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x634b3cb3 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x638cf9c3 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x689d060c kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6cfe636c kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x769c3161 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7818af46 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7ba25af3 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x81bcb4f2 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x876a0999 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x879f3ecc kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8880c6f4 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8904ff73 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8f4b41aa kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90d19364 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x93d06573 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x990c8642 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9ab1fdc8 emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8567b1e kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab23b8e1 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf099eaf kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf8fbb67 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb301b5ec kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb63b4219 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb8412c93 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd86163a kvm_handle_fault_on_reboot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc093301f kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc42d597e kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc96793fc kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc9f42505 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd099fbfb kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd21c6f29 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf93b9fd kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdfa32039 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1a876be kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe89c75f2 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeace743d kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec2136b5 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeee5afd3 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef006b36 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf16170db load_pdptrs +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0467fc5e crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xbadb72a7 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xbba2b7df async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xf845c3a2 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x59b66161 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xae6786f1 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x08e242cf async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xcfc29f3a async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd1340107 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf9995625 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6c87c4d5 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x9b728cb3 async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x4b078f2d cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x669e98d2 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7860e882 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x8aecc8e0 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x9796cf62 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x9ce69da2 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xf2662fab cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x875f90a7 twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0df49bf4 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x237dfd38 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x246b6787 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x435b2830 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4d30267b ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5bf905bc ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x630e02d8 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9eb08e55 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa2622fd5 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa362d895 ahci_sht +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc5d1074b ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd9429bbb ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf1b574b3 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00d2bba7 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x019de96b btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x28cef9d7 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x63f1f4f7 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6d23f8e0 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8a6687ae btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc9a9af8f btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xce904011 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1acffbeb tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1bb1b8c7 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x23d04e51 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2c7ad464 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2f3daecf tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x31dc48e0 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3cb1410d tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4138b4af tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x43eafd8c tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x453294ad tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4972aefb tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x540279b8 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x73ebc746 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8bbb4d3b tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa9313aec tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa952e2d4 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaa5ce7aa tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xabe3a900 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xba74fe10 tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc4acae2a tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe63e2438 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xef414315 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xef938b2f tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x4cc45bd2 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xc3609d47 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00b45338 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x1ad02b2d free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x26c54eae alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x42e496af unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x9dcb23ce dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xd0ef4176 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xd757583c dca_add_requester +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x7664237e amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x077a9ceb edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0ff1b00a edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2311490b edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x324fe78b edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x39b27807 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3f5fc8fa edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4e02d677 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x55748f32 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x57ac0a79 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x68c5d55c edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6bf4c064 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6dd8dc8d edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6f207dcd edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x75dff0fe edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7df1f14d edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8c9ff601 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x93e4779e edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9b17ac01 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb590f101 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbe3d107d edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc9ed2018 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xea9ecab9 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf38d0ead edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xff9dc455 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xce581744 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xdee77ea6 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x61e88f44 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x67558b27 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1e59201f hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2242b42f hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x27c2bc49 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x29294e92 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x34179ad5 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x41b6744a __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x54d45ada hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x68e17740 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6bdee2e0 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x71515505 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x745ce5a5 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e2d0fc2 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e977c46 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8bea11e1 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8f0cfe18 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x99c614cc hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa226e724 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa2e6d589 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa6ae1e30 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb9029e46 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc0ac74a7 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc7c4bc9c hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xce2d30ff hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdfdb2880 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe57d28ec hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xea6560d3 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x7f12da61 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x1a2b92f4 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x3fa98af1 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x89b5cd12 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb0cf1343 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3bfe0261 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3c313751 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x7f2fdb99 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x8af65828 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xbf3e2036 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x06c29b9a nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x576176c3 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xddf3f3f9 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x08894c18 hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x8e24ff4c hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x57af813c input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x02c672ad wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1f786ff7 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x224fdf19 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2efd67c6 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6489b68d wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa86ceade wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xae94fa11 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb26c70e2 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcb484e03 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xce6c7233 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xee6eee3d wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfeea2e99 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x07652ad8 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0f3ba714 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x197dd873 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x24a2d4df gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2b91a2d7 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x52b123fb gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7089cd35 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7baa5da7 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x856ed8a4 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x88023b25 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8bcefe7d gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x93af0a41 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa63ad3b2 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xaf368559 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8a06c84 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe3757667 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe906eb37 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xefb41a67 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x6d686225 led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x6e9c5744 led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xae7b6bff led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xbe19579c led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x24935f26 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xcdc24ab5 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xdbab0c01 raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x7851d7b3 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x78d49422 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xc27690a3 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3eb2952b ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4d82373f ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4f219dc7 ir_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x5c56ef3a ir_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9350ecaf __ir_input_register +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xddd8d245 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe3d0be93 ir_input_unregister +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xfc4b3699 ir_repeat +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1f4d01a0 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x228f6995 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x249ab28d saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x62833da4 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x82387f22 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8d79692a saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb4d722e5 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbde1452a saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc57516c7 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe2e55d2a saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf1a414e0 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x09ffa122 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2486d4c8 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4ec2496f saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5a5be387 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x62163350 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xaa42be64 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe463ca2e saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x209316e0 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xfa73a719 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xbcb98a30 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x0ee6258b tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x62efb894 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xc006c5be tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x7de6a58e tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x5e59dabc tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xd87d57be tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x8521c67a tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x9979c06a tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xad5237cd simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1314e4d1 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2cf905c0 gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3213e3d3 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3794d160 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3bb01eec mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3f222ae9 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x41522373 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x498aab63 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5badc8a0 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x631f5926 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x683ca97c mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7b1e1db7 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9a1a58ba mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc996ef2a mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd6eb2844 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd9ae9317 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe1321517 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x029a7c89 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x09728f9f smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x290ed45d sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3c08970b sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x41bf1fcc smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4a027b99 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x61344016 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x773fe09d smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9eab3aa2 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa8981dae sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xafa59d88 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbad89a2d smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc4faef25 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdc7ee4be smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe6f4249e smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xea782ce0 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xea8927d4 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf7e2f1ba smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfc2be47c sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x2ce128d3 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x6aafcbff ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7fa7c47e ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xab83439d ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc05f43f7 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd7b4689d ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xec47b08e ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0816d8b4 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1d0c6896 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4b21a3c2 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5ede9c4c cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x71bc7117 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x7362ae11 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xbf2ef784 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcd442ae9 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xebad497d cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfa73f4f5 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfa84c50e cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xceef85f5 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0fac5b2c em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x38ed2084 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7a061a82 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x96f4666c em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xfefa762d em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xffdaede7 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x4af3ebb2 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x5953f283 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x92adee9a saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd5eccfd9 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xf17bb1c0 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x23e6c1eb v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x249acc72 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x2d8a2a98 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x37ce659d v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x40d9719b v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xdb83efa3 v4l2_i2c_new_subdev_cfg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0x9e579f73 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x11b0271d v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x4021e394 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb5744400 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xf138bfc8 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0e0eb9af v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1bd8ed6d v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2ffdb6e1 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3b9dcf28 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x43de3c10 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x50d46ec4 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x53e27af4 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x65a61fc8 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7195eafb v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x84b54d6a v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9ec20d9f v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa1bc7647 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xace43aeb v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe99605a1 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x01f0f701 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x18ef17b8 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x191704d6 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1ba69391 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x34efcbe0 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3c532d79 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3ed34432 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4a22525c videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x58885ad2 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x64684e9c videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x68eca2ef videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6f0e1662 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x71c7c7dd videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x87a74c0b videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x975b267c videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9bde7bad videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9dfd2908 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa11409b5 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa5d835a0 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xacd04e55 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc84b2e9b videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd0e53524 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xda2383e2 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe4422bc1 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe4621ac2 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x75c46d6b videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x8c4ce3bf videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xcd94fdab videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2e361e0a videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x43510dcd videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x48edff63 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x60b4fa30 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x699af2c6 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7c378b6b videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x83bfaef8 videobuf_sg_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x862a87bf videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8eb46573 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xad6c3606 videobuf_sg_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb394b6f8 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x66a262cd videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x6ebab82d videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x97b9c651 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x139f1c1d v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1ce1c0c1 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2520c11e v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x25960097 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x32a2f6a8 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x43c5a728 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x446da4b8 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4842fa6f v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x53ae0a07 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x80e55668 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8e75a1b8 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa9975136 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xab618743 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xafae44f1 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcb38beb6 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdb6f592b v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xebf49e96 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf5073717 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1739cc74 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x4315d943 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x64da53e8 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x699b0e38 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7d0f0ddc i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa29f4baf i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb8385afb i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xeda214ea i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x45e08bab mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x23f83c85 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x485cb8b1 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6b088af5 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6b3fd121 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6bcb2b07 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7c1d8246 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8c6c296c pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8e82f13f pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9d21e3d5 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa0ffc3e7 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfbf11902 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x551b1c6d pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xcec172ef pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x18a1be36 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x1d69ded2 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x256d96df pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5a27acf1 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xface8c0f pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x008c81aa sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5a088ed2 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7d21af61 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf9746ecb sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xfcdf0156 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x269f78f6 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x3e9302c4 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb60cdb2a wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb65506bc wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xd7e66e7b wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2e285828 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x32f0901b cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x6837b877 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xd99ce829 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x06d04145 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x16627c42 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3e76ad2a enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x5721eef3 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x59d7ff59 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbdbcfa6e enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xff80ef16 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x20b78da9 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2aeba0a1 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5af00a8c sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x765b801c sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x792228d1 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcfc59bf7 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x079960b9 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2e839b1a cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x51e973ec cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x7a84a6c6 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x858392ad cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xd7b665eb cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xb15a76e1 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x11ee6dac cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x9f8afabe cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xfd761b71 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x351770cf DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xe83c2839 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xdb21c629 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2455b89c register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4830612b __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x491f6cba del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x51ad6c88 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x55b98fd9 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x619039ee put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6902086e register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6e09f067 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x70f11e63 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x89d68115 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8eddb9f2 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x93d0e11b add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaee80b52 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbc4ccaee get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbc7508d1 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdc9c0bf6 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeadc44e8 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf8bd4f99 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x856aa7e7 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x86f7acd1 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb4e88479 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xfd812d85 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x102cdc52 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x13f7f9fe nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x47997312 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x582c87d7 nand_unlock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x7b81e844 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x876bd42f nand_lock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xb99121e1 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xe5c482c9 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x46cb9f88 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xfa62ea6e onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x08cc381e ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x287aab01 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x30ecee15 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42dda578 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4d95982b ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6b0894f0 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9a4915aa ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9bad1633 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9ece4101 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa2d8db7d ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xad398cde ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc3507e41 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf0d8f7d2 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x07d4270e unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x176bf4d5 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1dcd6ed1 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x283e20b8 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2ee983d8 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x30547784 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3c00a994 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5e0518b1 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xad87b0c1 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc2c551e9 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc34f7a1f register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf2222a11 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3d723558 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x51c4cb3b alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5d7a3337 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd5d28111 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x213b1199 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x68d3b802 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7e767e3f macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xb1bd5c67 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc2b831d7 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x00240011 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01a321f7 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01e10f57 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x03538a9b mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x060f7350 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x08ce836b mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0a7b92c5 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1ffa0ad0 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x24d95ae9 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x32bb7524 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3682e21a mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x382967bb mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3e183e15 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x44f5660b mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x45e9bd50 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4c9332a6 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x51c6ef2f mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x529444c4 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x537df3ac mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x543d43ee mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x56bf0f17 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x575d88fe mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x58bb3ffd mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5957c281 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5a2561bb mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x767592b1 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7f905541 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x801541d3 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x848792f7 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89fd4a51 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x90a9f450 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9511a8ac mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x97971cc0 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9e8bfd22 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9fe7ce87 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa0aeab55 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa57f2a66 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb2c9eb4a mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb7f47d7f mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc6c75810 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc7295586 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xce46e6d9 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd24e609b mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd3a0a437 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xda46f49b mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd55ea43 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd9a0162 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdeda9e9e mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe02814df mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe1210fc8 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe7c51fa8 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf2b305a1 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf315e0de mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x029d75f4 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4e854955 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x312ef339 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x476c56f7 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5d22c1d5 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcfe5dde6 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf5b012d9 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfdae27f9 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x03e26949 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x256d1b45 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3364d6aa usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x35159f40 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x35bddff1 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3e1c5223 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x42011327 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4edc00c4 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6209bfd7 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x638bc82f usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7b904599 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7f9c3e99 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8400299f usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8df3b4de usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x99529808 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9ad9e7e9 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xacbb71d4 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb48a4d56 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb572b177 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc0418d5b usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc0ccd259 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd8b74db3 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe7fc3444 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xff5ed00a usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x048126e7 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1cf2a59e i2400m_cmd_get_state +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3d4965be i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x59108d69 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5fbd4515 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7744f729 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7895822f i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7c3c43b4 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9ea8e69b i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa56841c8 i2400m_set_init_config +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb2c3ea9d i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb2de5793 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb2fe8eff i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc57399f1 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe4edb7ac i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf109e70b i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf55a0614 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfac2fa41 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xc3ad7362 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x0318eb05 iwl_alloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x62c129c2 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xa55af7fb iwl_dealloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1108aa6b lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3ad65cbd lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x41cc2e5e lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x430638e4 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6bc2ee23 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x759ecf33 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x75bfeaf0 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x86c439bd lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x896f5862 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x90fe418d __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd0a27e10 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xed1fda47 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf7b2874e lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf9a6000f lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0c85d9ef lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x44108acc lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x79e709cf lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x90cef535 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9ce16b9c lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc4cf7c92 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdfa3ed59 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf7bdf17d lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xdbee7d12 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xffe1b4a9 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x43569ce6 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5734fddb p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x966a8c76 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xba89251e p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc655c7b0 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc9d3ae5b p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdcb19f97 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf7e35488 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfc562a72 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0874b9b9 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0ad5f963 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x16f432e4 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25ee1d1c rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2606e823 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2698a964 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3649adcf rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4526b821 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4c6a0e58 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5a8943c7 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x60b2dadb rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x63943f5f rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa128723e rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa96c0573 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xab23cfa9 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbe2dc8ae rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc1596152 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc4699cf0 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcd852742 rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcef515ff rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd41de5cf rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xddc0722e rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe8e8c104 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd9677be rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0e2043f4 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1896c3bd rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x19d602c4 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1ab6dc74 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c555751 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d9796b9 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4114d4f9 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x57f47b02 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x611a4932 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x71e4140e rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81691ce5 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x87f9c83d rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x925430c2 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9bcb1a67 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9bd2623f rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa0673a5a rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa1cfed7a rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xad1d0c17 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd872d23 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdfc0e2bb rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xebbedb06 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfdd08f18 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfe4cf3a0 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x028e11ae rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x14fe22a1 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x22ce7a28 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x734f2c11 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb152ee1c rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc233c2f3 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdeb05e36 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf537d8a3 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf54d6904 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1f4bb7c8 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x225a5d77 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4470e324 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x484fedd9 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6e12abfd rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7b0da765 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8855e459 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ab8cd51 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa3c0a744 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbe419b69 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc67c1399 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc8e11a48 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcdd162ad rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd6f2364b rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd975240c rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfefe1b92 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x52f5d14c wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x905aa812 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xbd7993f8 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x09248824 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x47da8b0d wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xc2b1bf65 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xd3b9dfab wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xecbfda49 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x200aa29f acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x39043ca4 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6d60fb63 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x991cf097 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xa19d8e48 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x56990278 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x76734a97 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8e445e5a wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xdc365b72 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf490a604 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf90c92ad wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xb711a205 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7297fa53 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x02066736 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08ea813f iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1aedff7e iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x204963ac iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e7fd22b iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3eb465d7 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4356b17c iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47f716b6 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ad6a8fd iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52a2faae iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x56138da2 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59096ee2 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5aac030d iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b134f0c iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5dc2d206 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x676c5780 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c586101 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x724a5614 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f2e0237 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x86829ab4 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x883375bf iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8aa7ce73 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b1f6a48 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9dd81351 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e89f240 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e8b4d5b iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9fb5f5ac iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa7b919c2 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaa66e828 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xacf60adb iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaedfc338 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6bebe59 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbc54a366 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xca026b3e iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf4bdf38 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd5b9db65 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd8183e11 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xded44479 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe62a2411 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfcd9ef9d __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff8a80c7 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffe8ce61 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0755d62f iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x185dd79a iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1f2114b8 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2b9db543 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4abc7d81 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x606706cf iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6746af00 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8df363e0 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x97a215e7 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa19384c0 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xac26fe24 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb0f5ca7c iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb95efc87 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbd3a41ee iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf6d98951 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf966f89a iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0884878a sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x28d173bf sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2dc6e474 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x459e10f4 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x578f022b sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x65a53e65 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x662970c2 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6920abcc sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6d684400 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x78f89c12 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9212e953 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa11f224b sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6317d59 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb3669791 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb5047062 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc49c527b sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd0a8045c sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd73c009a sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xda797121 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdf8337d4 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe119a598 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe8011665 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee96e592 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x25fc8e94 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x975058c7 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc6065735 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe12703f3 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe18ad661 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf22dd3c8 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x02db9456 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x380febdf scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x47ac10d1 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x52f209c4 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5cc41bb5 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x99987bb7 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xce38eae6 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe240b392 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe7d935d7 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x16989474 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x21189993 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fb40721 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fb7d659 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fe0b84e iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3330763b iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4220b038 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4ac9d46b iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x504a9924 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x583a732f iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x79fb50ff iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9c5e45b9 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9e307d47 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa542d122 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa56f5baf iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa77e799a iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb3288775 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb42bc1f2 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb48a1863 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe658306d iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe8d41d87 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf5d7a61c iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x11bc6376 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4660dfcc sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x539ca5cc sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe3154ca0 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x471b99a2 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x751a13ff srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x899228a0 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb7c115b5 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe6ab6ab3 srp_rport_add +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2fa45b99 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x55a7b22b spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x87a37377 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8ce03579 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x9e82a29c spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd469a24c spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0f5b649b comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x202e54bd comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x31652451 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xcf028832 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xeb785a96 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x1206a03b das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x9e869d5a das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x853bb98b labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xb69fed86 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x003c815b ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4a7281bc ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x70687e11 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x74e69a40 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x75f143ba ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x7e4ede4e ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xab070c2d ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf9f7063b ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x3e5432a7 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x879c65d3 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa63a517a ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xb05f4db5 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xcf3d4c37 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd987b56e ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0xbd79b6d2 st_register +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x844f3839 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xccf06d62 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xe4aef0d5 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x18097ef2 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2426247b usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3dae64cb usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7cac2f65 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x9ede01b9 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa7dc145c usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb109de39 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb7b5e526 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xce6f9966 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd366f62e usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe8831431 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xeb3d25b8 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xede5cc84 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf6993ccb usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf7ce25a0 usbip_task_init +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1f9c6e7d uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2bd23ac7 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xe8d724b5 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x293b0aa7 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdac310ef usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0ccb09e1 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5d0f676e usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x69dd58b7 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x768add0a ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7b3cd9f6 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x891281ed usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8a43c2e1 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xac746543 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf35c0022 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x001ba064 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x08bc2d7b usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1580bcf3 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2a5e20be usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3e95c701 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4605b987 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7d22dfc7 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x88be17d7 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x92b97d14 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9eab866c ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb958eeaa usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb9f58027 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbb83b34e usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd4cea3b usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcf34d77f usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd130b5d1 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf281e8f usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf9bd1fb usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xef071946 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x05e209be fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1a41b3ba usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x21bdef5c usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3d608008 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x528df765 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x57e62324 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5beab53d usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6a270076 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7f2ee8b6 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa2795281 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa2b0e203 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa76c9272 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xab0acabf usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb5e6ede4 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb8c44e22 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbf1a5c54 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xca174b4d usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xca990c6c usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcabe9438 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd308f462 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd7e6dc54 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe9a7599e usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf234e52a usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x1fd616fe __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5d50bf0b wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5d94624d wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x71d91c72 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x7e127481 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1b74c9c6 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1d89cffc wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1e082b19 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2429645d wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2462c1d2 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x27a76f46 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3138f53f wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3e0d9ac7 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x432e0f6a wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x472dda71 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f6dc0f0 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x83938211 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9b71ccc6 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa2388ac0 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc9c3ecc0 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf75a7f8a wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x0c27bf07 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x27218d65 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x662b1d1e i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x04ee50fe uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x0e293f89 uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x27d4657b uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x2bcbb99c uwb_pca_base_priority_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xa31d631b uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xc0a8aa66 uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe4ad89ac uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe6455304 uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x21bac704 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x75b6b7b9 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9eaafa2c umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa3690686 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xacb7a367 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xbf406fa7 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc3dfffc7 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc86b15c7 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x026ab9c9 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x02b757b9 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1024d81e uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1a4f070a uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1da3c435 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1dd31fe3 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1ed84830 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x235f24f7 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47ef86cd uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x52ab6108 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x55645834 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5efd1d65 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x632efeca uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c9df885 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x778c8a65 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x81d35772 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x829af69d uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x83c6c144 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8bb423a9 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8d1867fa uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x957758cf uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9bcbb567 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ce62753 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa08bb0b0 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaf068827 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb10eb84c uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb69ce2f0 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb807a368 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbe529f9e uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc6e4b4e0 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc994a584 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd2d2c4de uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe6ffe0db uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xea6836b9 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb988d88 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf518f6a3 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf786372e uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x672b34e8 whci_wait_for +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0b82a669 wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0fa153c4 wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x10411e3e wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x199cd80c wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1d01119f wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1ff4710f wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2c671f3f wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x342bf08b wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x36a339b6 wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3aed173b wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4035f072 wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4545cf38 wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x554000e8 wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5fc04b1e wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x74acd517 wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x75b21ac5 wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x82f18fdd wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8a6a7e95 wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8eb233f3 wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa5e330f2 wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa6950412 wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xba3c2209 wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc08a766a wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc3c85006 wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc651cdbb wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc7fd434f wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcde9f851 wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe5223ed2 wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe72c3e67 wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xea384d56 wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf58cf1c0 wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf611eb5f wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x264bfafc ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2b9de613 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6aea664a ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd3aed445 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xddd45e92 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xeddc0de3 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xee2464e0 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x39037aba fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x11358a8d fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x44740882 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x1134a57e sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x50233c65 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xc3d4d88b viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x30eada91 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x53ac3411 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7eefd124 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9bfcd1a6 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa326d9eb w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb75e2fd8 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc7267373 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcbf7f466 w1_next_pullup +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x2e1ad9b6 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x6256a1ec dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xbf94404a dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xa83e6b5b exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xe50baf68 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x01f84109 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x191e08e8 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x23913ac7 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x2c3ece3b fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x39e5b671 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x516f0dd7 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x7085e879 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x7d424fa3 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x8e12ddcc fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x91f1284c fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x93bc4195 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xab46e990 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0xb2838614 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xbccbc4fe fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xd0573d1e fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xfa244f54 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xfc6f8407 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xff1d0ce7 fat_remove_entries +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x019fa0c8 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x49308be2 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x62a7ebdd nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9f7d0b98 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xfb5acb3b nlmclnt_init +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x1584eeba nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xb9a67a18 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x424ab8ba o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x479b4a14 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x585ad20a o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x68245aac o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa224697b o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd5f0227a o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfa0c56e9 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0a5e2b48 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x217b76c2 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x350acd35 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x83d1368e dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbb4432a3 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbea4fe5f dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x38d893f9 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x3fa29cb9 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb2457f9f ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x012844ff garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x2339a068 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x35665ad8 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x4b766253 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x9622bab2 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xa3d4e0f7 garp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x12013b75 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x263e18e1 stp_proto_unregister +EXPORT_SYMBOL_GPL net/ax25/ax25 0x14822da3 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x14884948 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x04b483ed dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x081b28ce dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b13eb2c dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x44f8a72d dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x48331f6f dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4efd1198 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x53e70dcf dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5773e611 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5c004adb dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5f228ced dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x61c44177 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x63e3204d dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x64ec0799 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x65409080 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x674cdbb9 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7a24bcac dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9b5585c9 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9c6638cd dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9e85a44b dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa200423d dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb115f54f dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc007b90 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbca2975f dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc9b53150 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf714124 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd0509a16 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd0d99104 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdacd6a98 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdbecae33 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf57e456 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe0f40164 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9d1ad63 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb3f26f1 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xed26fb25 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf9d6a5d8 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3948821d dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5681db9f dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x92d0a20e dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9d0f0073 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd317be62 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xff274da4 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x354a18fb arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x74d3c0c8 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xb121899b nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x14c0c911 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1a264b29 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x291e158c nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x46eb01bd nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x63f6b0fb nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcad4ef9f nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe2116156 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf626cb42 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x09eeaac3 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x16f2df22 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x94506930 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd61a8251 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe27abaa5 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x8400ed28 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x143cd9f4 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2cdb3193 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2f3d2a10 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x37e9391b l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x449e1069 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5fa95f85 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x752c2312 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7f4a2c76 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x848660c7 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8ce0f946 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa0978d0f l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa4efd7fa l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb48a5d87 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbf0cc4a4 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xce53fee4 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe8322053 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xedde05f2 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x19b2d77d ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3f047f58 ieee80211_find_sta_by_hw +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa542db25 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02ad6f60 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05add8a1 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07b02077 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0983d2b7 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0ba1ff37 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0de0783a nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e82f030 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16427076 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18a4714a nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a9bb918 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ed9e0a9 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22372f68 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22fa4f5f nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ac9d77a nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b244719 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d1cd991 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2de60d35 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e18b77c nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31982a42 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39979db5 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x399dc190 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bb5b035 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40fea194 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x410563cf nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4238fe50 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47cf4add nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49d6a1e1 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54267ed2 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x607a6110 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61220955 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6257d0d6 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62aaad60 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fc63f19 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ff762ab nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74e78cf2 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76018233 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x769c7652 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81abe1b4 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89fa1f33 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ea69279 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f036145 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a4fa675 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c7c0bda __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e601013 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f9227d3 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa8f3ff39 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab9fb74a nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae4fba3b nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafc972bc nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb02d7f38 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd8baeb2 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc032d6f5 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc34a4028 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcdaac899 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcde43009 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd43ace90 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda332831 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda3481cc nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xecc870a8 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeed3c35a nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa6c3202 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x75b2ed59 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x819959e9 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x15afac7b nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x199e48a2 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x325ba3e6 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x42421b6c set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x444d0b77 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x85a1d848 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa38de40e nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc0f39823 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf40e9a94 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf66306b1 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x0357187a nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x041212c9 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x24800451 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9b4fd299 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfb72560b nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xa2188eda nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xbc3aef20 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x116982ee nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x15ddee28 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x20db1670 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2445469e ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x522f68ee nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x681f18f9 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6f11a553 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7c536a76 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8e734f2b nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x937c40d8 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb0d24fa2 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc951a9f3 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe33aa118 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xe9e57d1c nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x358961f6 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x48b0643e nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x02750256 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3d2b3cd8 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x67c43ddf nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7cfe957c nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x87ac22bb nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd7ebf3f7 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xf3241f8c nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x055e64c8 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x06fd91e2 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x159b241f xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1f06188e xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x225107c5 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2a846e59 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x30b32011 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x33f4ef69 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x418334fc xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x48c5e907 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4aa2ba5a xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x684694c5 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8a58e7ad xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8f2a4347 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x99e693aa xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9e4a02dc xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa62e426b xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb7a39b26 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc34136bb xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf142347e xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x0dfeddf3 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x1dc41c96 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x22658776 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2ac3584e rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x6c06f614 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7ebd12f1 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x7ec2e6dd rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x7fdd6f6f rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x820641d4 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x83e28e71 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x851dc6b7 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x8c2fb3e1 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x955bd5c2 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x9c14e876 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xa06b0b0a rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xa3533439 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xbc1e0f1e rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc4f3b69a rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xc7051767 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xceb7c7e2 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xd8ad8ffe rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xe0a4cdd3 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x1183087e rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xfd43101d rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x15a59aef svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1a6e2410 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x364c2578 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3d1df51e gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x46124ad6 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x527960e6 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6106d47e svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6e285776 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb0e9d5df gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc74608b8 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe76359e1 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01e6d99f xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x038a6e6e xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x047317fa rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0492912f xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04cd1227 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06c843a0 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0861f810 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08993a53 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09861a07 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x098776b3 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a015a8a rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a047362 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a7b910c xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d674205 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ed5767a rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10434736 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10f98fd7 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11d1f934 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1232b9d7 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15660c60 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x160d8874 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17297030 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f476938 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25d72265 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26b6b004 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x271bc669 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28a0e26c svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28a6c885 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2be36a24 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ce41a8a sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3115c5bd svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x316bd96c xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3487e79b rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35d73617 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38a284de rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38e85ef5 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a40ba3d rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cd480cd rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d60da5e cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3db90135 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ed4be06 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41ba2f24 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x426bc877 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x430f380a svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46f6ff11 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49cce2bd svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a052c1c svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a81f75c svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ddc6c5d svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ee00971 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fa578b4 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x523321c2 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x540a3ea9 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x551bef41 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x557e795e xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5717d03f svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a561c0e rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b491559 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e3484b3 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fc4eee9 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x631024b0 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65c983b3 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x666ea610 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69c56852 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ae7aa08 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5c0516 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6da163a7 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x703b6bbc xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7107c434 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77251d12 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x772c70a2 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79b866c3 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81e09909 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8218c9f4 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82587f93 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x884bd34d rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ed25a53 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9256101b svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95e3852a auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96451d1d rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98454918 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x997cddb2 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eaac6ee sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eb2e0fa xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1fc8168 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3c98bab rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6804cc1 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6f33f82 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa925e605 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa83c78e auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaec89f7 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac0a9ed5 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadc8c122 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaebd94ff read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafa1b76c rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb106cb88 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1a06a3b xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1f7aa34 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2d49cfd rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4b9c498 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb515c49b svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb524e82f xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb77e44aa svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb893f0b6 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdc2b79d xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf2eff24 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2812aa5 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc53838e5 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6123fc5 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca080e76 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbd7d099 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce9adf43 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf51a3e2 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfe379a7 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0b2a683 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd41344d4 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd93bfecf rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd95ff592 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9c03e99 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdadd5b24 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd1d1f32 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe23c0cb5 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2e32c9c sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2ec4835 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3be9439 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6f67db9 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8afd1f6 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedf54725 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0212ec9 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0d924a0 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3515fa9 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf444a779 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf45dde29 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf879439f rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/wimax/wimax 0x030548f8 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0aad28a1 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0b283cb4 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x168e6a03 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3a102783 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x41b05ace wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x492c75af wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4a03e869 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x50bb06a2 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x72713793 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xad6266c1 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbc40ea95 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xcb2314b3 wimax_state_change +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0fe433b3 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1518a901 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x197b669d cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1ebc510c cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1f431c41 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x306e9e0d cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x34942e06 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x38ca1cf4 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3de8105a cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4e4062d8 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5de2db4a cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6597509f cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x721812e9 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x760bb561 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x786a4d02 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x79f4c80c cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x829e9182 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8568712a cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x88be336d cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9ff80af0 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa3517697 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa784900c cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8e2be3b cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaff8a627 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb1f24538 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbae20b7e cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc7e2be87 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc81dc3ea cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcf37471c cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd9853a49 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xef8576b4 cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf287b0bf cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1f2efbd8 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x839de867 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9a310ac5 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb45804ea ipcomp_destroy +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x6eac249e snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x74b3813b snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x8b7fcdb9 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb8c2a9c3 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbe744d25 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd26200ce snd_ak4113_build +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x003dfa8e snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0177a2e0 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04797664 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a4194cb snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0da17a1a snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10d32e2c snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11a3021d snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12458707 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14ac9c15 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16e0a85a snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1918dc0e snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c51c30f snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d69690f snd_hda_eld_proc_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1e5a2708 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27f10678 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28779faa snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x315e2358 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34aa9af3 snd_hdmi_get_eld_size +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34b933f2 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36b3d7bb snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3792ec90 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e030d7a snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e5419dd snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x409bbe2c snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x442ba250 snd_hdmi_show_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4515d8c0 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x463e07a2 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x488d426b snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49e05bba snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c40ea01 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c711266 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4faa6eef snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5373f1cc snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55f2b9f1 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56d966d4 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59f93d5f snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a7ad9e2 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b677438 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ba7af00 snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d43b342 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5e70021c snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ff747ed snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60889cf3 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68b48d3c snd_hda_eld_proc_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6bd90a77 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bb6dad9 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7eff1299 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x808989ab snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86dcc756 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ae6baa4 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8bf58b37 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c60ea09 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94166cfa snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9500c8f4 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9772fada snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d391dd6 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6e5130a snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8ae0efa query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa973b254 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa3ce302 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf4c9874 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0edef71 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb3405a0 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbffe49e6 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1681c8b snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc56fd2c9 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6d01c0b snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7471a75 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7a14c5e snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb104737 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd797db6 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcdf2a7b3 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc333ff5 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde78ee2e snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe09e7063 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3b5af01 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4d0c69b snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7e3982e snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7fe630d snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe89823f2 snd_hdmi_get_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeac1ab81 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef02e5b1 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef2bcf1e snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xefc62015 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf244918f snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2b7353d snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3da7faf snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa58b6c6 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x554603ab soc_codec_dev_ad1836 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x9fc83a5c ad1836_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x663051de ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x83000645 soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x3dbb78cf ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x5f2214bf soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x3e144fd0 soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x8dbe9e70 ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0xe81458c3 soc_codec_device_ak4104 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x39c543e1 ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xb5b7b510 soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x6fe84a34 ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xed0c9abc soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xc4677726 soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xd8942207 ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xe398b573 soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xfb978785 cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xabaaca2c da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xe290db93 soc_codec_dev_da7210 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x9fd9ef8f max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x22fc87c1 pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x45344e85 soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x58ba7c9d dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x4e814b4e soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x8b1baf58 ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x87eb2128 tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x8ed58200 soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x185f8f1a aic26_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xe26cab6d aic26_soc_codec_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3195f3d9 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3ed73b57 soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x496cb892 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x58645194 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8b7aefb2 aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd906141e aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf8c0e67b aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xb3147c41 dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xefaa3245 soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x62fd0397 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x8f0b7485 twl4030_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xe10cc346 soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x829c83f8 twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x9e8386a3 soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x20b4a543 soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x110e992a soc_codec_dev_uda1380 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x3d4b0152 uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xbf5a064b wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc4967c94 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xd196ab23 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x0928852d wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x3eec7b4a soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x60aeaf68 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x6fd9fb31 wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x9c558a60 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x3724dd8f wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xa5f08118 soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x53fe4ea0 wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xdce332d3 soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xe4822693 wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xf588df49 soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x050159b9 wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xd332095c soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x6ff1cb19 soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xda879a78 wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x3bedd2c6 soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x3d3663f8 wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xbc75ce09 soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xcc60d12d wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x4d188b51 wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x6c751f77 soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x71e35284 soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xe5946dce wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x5ace0147 soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xe08b79f8 wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x243d216c soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x77dc43a7 wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x97f7e75c soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xa226505b wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x24b222f5 wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xbcdab49f soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xe0fb7db2 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x39b7124d wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xf39b2258 soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x56697448 wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x90fe4f80 soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xa0d3ee4f wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xec4bd1f2 soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x937a9bee soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xc1f66561 wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x0aaab6c4 wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x8a61aaaf soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x8ba3c098 soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xacddbd70 wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xf6d434dd soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xfc102cc3 wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x5a617bd1 soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x8bd2ecb8 wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x513d3cec soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x7d9a9c51 wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x37be1588 wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x9826dcd3 soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xb12a6726 wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xb30b8f10 soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x36e42230 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xc86e6b82 wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xfc4a19d7 soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x52a1c2f1 wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xc097e19f soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0xd84ebae9 soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b666c54 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bcb3c94 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1dcd0322 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e98d8fe snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f9a86f3 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2309a10c snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27cf4fcb snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d1ae6c8 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e0bea98 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x313682c9 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x330f5615 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x351314e7 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39d31b98 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b8a78a4 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d728531 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3fe3c9b6 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41a161cb snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x429832d0 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x439dfe3d snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x441355c0 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45a872ba snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48629596 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4864b9bd snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d2a7f81 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4dd74816 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5482e9b0 snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59062c0e snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5dd2875a snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ed474e3 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65a9af05 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x68136828 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x711a0ce6 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x722d5be7 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x769d53b3 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x775bbca4 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x77f57404 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x800f9771 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87c19d33 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b6c7a49 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x958c3026 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96281b01 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97f1f0d1 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x993ea13a snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99e24c8c snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1ca2f15 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa412c8d5 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6e2dbae snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa984798b snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xacd727e1 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb085caac snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0fa8a6d snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2d5b37f snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb58e8ba2 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb63c48e6 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba93e95b snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe916598 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc432a4b4 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc45e8be7 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc65f4d7c snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca52b2f0 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcce9853b snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3665f42 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9a1a881 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda0684fd snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdac9eb3c snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe25d7d50 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe41337be snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe468a2ea snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6ed996f snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xebc2c5ea snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee2bde7a snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xef48e121 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf00adf22 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2b8e0ae dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf3012467 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf517a418 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xffb3b57b snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x403287f6 xv_create_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6396f009 xv_destroy_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6da52fbd xv_free +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xb9d51915 xv_malloc +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xfdffb8fc xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x006612ca raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f5ce96 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x00f94fde register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x01173009 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x011777d8 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x0117d615 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x011bdcd1 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x0121139f dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x01378d91 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x0139bb7d find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x01511988 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x015fc09b rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x0199fd25 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01d06636 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x02474f30 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x028a0447 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x0302559d fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x03d8d457 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x0408eaa2 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0483aa21 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x04997f6e xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x04a95138 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04dc389c raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x050e679b wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x052c4a0e inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x052d77b3 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0551bc5c cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x0575bb49 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x05a86ea5 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x05be6c1e sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x05bff754 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x05c421c2 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x05fdc05e inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x06030463 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x066b1a8d crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x072f0b0f crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0744668b scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x075bdec1 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x077dd5d9 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x077e40a8 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07ce6280 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x07feffcc crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x08146641 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x0853bf55 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x0893baed rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x08a85c30 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x08a92dfc posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x08c20e34 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x08d1327d device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x091c6d35 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0926c1ed regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x095d762b regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x09670ae5 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x098f5041 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x09a0b0c0 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0a1d83f0 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x0a23764b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x0a5e4d51 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x0a9b5ce4 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x0ab2e512 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b22d6a9 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0b28739c skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x0b393a71 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x0b4212e7 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0b6d0342 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x0b6dfe54 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x0b6e7d8c tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c3339b8 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x0c5b73e5 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x0c7bf63b rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c8e3dbe debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cfacd15 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x0d2813f5 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x0d3bcf1a blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d6f039d dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x0d789816 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x0d7edcc5 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x0de7aa33 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x0dfebc52 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e1fb42a proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x0e26cda4 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x0e440522 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x0e4813ba sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x0e622f99 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0eaaa14a sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ed0c6cb ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x0ed9e189 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x0ee19ca9 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f028725 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x0f0cc014 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x0f3ea398 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x0f4d0bb9 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x0f785ed3 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x0f9874de unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x1003cfcc sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x10081dbe debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101cdb2d register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x10280029 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x102a3c0a bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10c74770 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x10fca4c8 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x11226008 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x112ade4a ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x118d61ba virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11bdb766 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x12099cb1 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x122d28a1 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x12569af3 device_register +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12d779ac inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x12e5f58b adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x12ec1dd5 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x1302ef9d shake_page +EXPORT_SYMBOL_GPL vmlinux 0x131a1bf8 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x1360d523 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x137aaef1 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x13a770cf class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13e39744 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x14061ff0 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x14291135 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x14320394 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x1445bf98 __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x145cc405 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x14760d04 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x147b93aa find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x148a0677 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x148ef500 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14d3fbb4 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x14e1310f gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x14e1a9d5 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x14ec39e6 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x14eeaa27 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x152e9661 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x1559e2b1 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x156088fe crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x1561b101 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x1569f0a4 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15fc670e pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x1616f2fb ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x16234e28 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x162560e0 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x162fc06e ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x1674cbd9 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x16a3bc12 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x16ce79ab bus_register +EXPORT_SYMBOL_GPL vmlinux 0x16e1187b usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x16faa11d simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x17466450 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x1754b02f set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x1763470e usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x177b99c1 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x17b21937 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x17c00204 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x17f55a9c synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x17f8f3ce ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x181f1529 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x1829349d inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x18655d56 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1886bb0f usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x18c31ffe bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x18ca270c kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1933100b attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x1992e7b4 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x199884b1 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a656e8 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x19d56c7f usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x19d57c3a dm_put +EXPORT_SYMBOL_GPL vmlinux 0x1a032602 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x1a0ef1b3 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a42e7b7 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x1a50695b __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x1a6c1817 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x1a957e66 tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0x1acbe74e rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x1b144167 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x1b6c0b2e register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x1b71dba3 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba8b745 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1be3cdd4 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x1bfbc7fa ref_module +EXPORT_SYMBOL_GPL vmlinux 0x1bfc6cf8 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1c732743 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cdfcebc usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x1d30392f kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1daf669a generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e52e183 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x1e67765a wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1e720184 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed42f9b crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x1f0fd8ee dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x1f34323c ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1f766a92 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fadbd4f __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x1fc3eee6 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x2009a6f3 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x209e1abb ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d13b03 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x2123f283 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x21288906 find_module +EXPORT_SYMBOL_GPL vmlinux 0x21a6761d devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x21a83cd0 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x21ad8d06 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x21c4ddf1 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x2206e2b7 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x223a3d1d usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x225b6846 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x22805002 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x229c6214 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x23023f63 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x230f1e68 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x234658d2 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23ca1e91 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x23d263a7 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x24993358 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x24ab1e54 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x250b9bb1 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x250e8f30 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x253a69f8 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x255945a3 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x2587e870 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x259869d1 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x262ca3f3 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x265040ac tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x2668e66b ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x266d6d5c tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26f7c89e sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x270c9232 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x271372d8 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x274cecd1 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x27949c94 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27dd901c pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x27efd7cf pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x282ce1d2 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28eb216c ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x291bc1f7 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x2976ca5d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x297c06dd transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x298b6e9b blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x299a1e6d sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x29aaf8ca __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aa5e0fd pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x2aac13c0 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2ae01e9e ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x2ae31954 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x2b432655 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b9c165f usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2bb0c056 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3ec922 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x2c50fbf1 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2c5b910b flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x2c7779bb regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2caf15ca crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d3cbca0 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x2d4bea24 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x2d4ff880 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x2d521d07 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2ded2578 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x2df59cec device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2dfb667c sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x2dfdfcf8 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x2e4487b1 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e78e47d dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2ee6d6a6 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2f03371b wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2f8c88af blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fdd4c02 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x3031ed28 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30c14865 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x30da16b6 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x316bc3dd input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x3175c405 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31bc5570 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x32281461 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x3263919a tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x329a6b9d wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x32c793c7 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x32c82399 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x32ccc3fe kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32f16df1 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x3328968e put_device +EXPORT_SYMBOL_GPL vmlinux 0x33392923 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x334b53b0 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3350ab73 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x3378434b bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33c49781 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x33ecc194 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x34188929 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x341a754a vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x3429c937 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x343e95be crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3461cbcb ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x34db2d35 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x350d5bc2 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3512df00 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x351b9b50 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x353d6d78 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x354b7151 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x3563cd60 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3614e083 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36864ef1 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36a6e774 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x36b5169c transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x36e35477 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x36e9f0c6 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x36f23ff4 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x371b6b3b crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x3749c014 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x37594154 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x376e6977 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x37e44ec5 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x380e3e1b set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x38571782 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x385df068 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x386fdb8a __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x38d1c6fd cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38eb4e7b usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x39baac5c skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x39c1626d sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39e27f81 device_create +EXPORT_SYMBOL_GPL vmlinux 0x3a0078f8 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x3a0e43f4 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2eea97 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x3a4a74ae module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x3a7acfdd save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x3a9c4eae transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3ba614bc acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x3ba6d009 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c433a73 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x3c86eaaf bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c95af3a device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cdfc0e8 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x3cf7346c pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3cf78ab6 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d166d58 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4b0c7a da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3dbbcf94 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x3dd9c033 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x3dda1035 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3dde3c26 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x3de2bb13 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x3e25d0b6 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x3e46203a ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x3e647465 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x3ea0b0aa spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x3ebc827c scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f8d22a1 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3fa53bc8 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x3fde8c64 ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x401a09f2 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x4023f540 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40a631f5 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40e56d6b n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x41079fe0 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x412fe2d7 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x41631eea cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x41b0d3fd devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x41df32bc setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x42033c60 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42973fa3 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x429b5371 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x42cb8aea ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x42eee679 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x42f1074a disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43499a39 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x435c8cca dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x43dd1a7d cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43f8d8b7 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x4404b75e rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x441a9227 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x443c5749 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x4459130b power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44a36ca0 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44a87075 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x44ab13e2 device_move +EXPORT_SYMBOL_GPL vmlinux 0x45234eea sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x45440856 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45942405 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x459d607b xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c6a2a0 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45f85111 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4688cf88 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x46affcf8 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x46bb75a7 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x46d2d264 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x46e6f55c crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x46fffb3d rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x47033807 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x47038a65 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x471e8a98 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x475763fc usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x47db864a led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x47fc48bb __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x4854c1fa devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x48745170 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x487aa854 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x48a26c96 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48ac770b power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x48b8a644 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x48bb7b92 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x48be2513 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48cee582 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x48d414e2 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x49223244 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x498741c6 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4998b130 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x49a170c1 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x49a58bfb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x4a4dd2c9 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x4a6457f4 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x4a821822 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x4aaeae30 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x4b23ddc6 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x4ba1cf74 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x4bb3814a skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x4bbcae2c sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4bdbdbd5 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x4beebca0 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4c316815 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c91baac sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x4cf3bf2b proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x4d0c1f92 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x4d4ffe8e ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x4d7d8dfc ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x4d817caf cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x4d92036f fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x4dad07e5 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x4df11e80 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4df8d19a ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x4e359984 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4e7202ea alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x4eacb0c0 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x4ef544af xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x5025c69d ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x509c6dce fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x50b319ce cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50bb1e84 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50d530c2 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x50d64d61 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5104894f ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5105d3b4 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x5195edb2 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x51c8eb6d da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x52015d4b rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x521f1685 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x52df3789 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x53035ee3 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53677102 user_update +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x540eef8a register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x54429893 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x545182ca ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x547a1185 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x548a1f17 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x548bef7b wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a387e3 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x54a987bd usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x550da5be ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x553134ad sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x55401030 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x554a77cd crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x555876bf usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x559a2981 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x559b3965 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x55d5c666 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0x561e1c10 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x565cd8da regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5673d7e7 acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56a265bd pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x56a3865b ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x56aae000 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x57380f59 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x573bde68 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x5792e6a8 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x579bd442 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57db7e6b usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x581c522e setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x58e3c046 rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x58f4a4c8 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x591ab75c generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x59292074 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5965586c scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x5970e340 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x59afd194 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x59bd5d81 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x59c98cc9 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x59db1ac0 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a39975c tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5a48fba2 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f245d crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5afb4b26 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5b71bd2f crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x5bbaaa54 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c0577ed unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5c860cfa ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x5ccc962a attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x5cd65b40 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x5cf730ab debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d24608d ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d375789 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d93b7fa pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x5d9fb581 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x5d9fbba5 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e550562 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5e6e8129 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5e889861 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x5e978e79 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5ed438b6 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f48e48b vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x5f5ed604 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x600bd376 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x605d83bb register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x605def7f dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x60670b20 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x606fe5ca fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x6079cbb2 get_device +EXPORT_SYMBOL_GPL vmlinux 0x6081e3bc platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x6088f51f ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x6129c621 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x6132f10e security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x61594524 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x61710210 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x617c0197 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x61946fe8 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x61a599fb rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x61d72b90 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x61e9a973 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x61fbd434 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x621ffdb7 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x6247ef9f find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x625b0cc9 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x6271cb53 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x62743201 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x627a705f rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x6294884a d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62cc2e6c hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x62eaae54 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x635ab778 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63a11cb4 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x63d2b925 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x63d78b97 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x63fe893c ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x643da368 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x6480d3de tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x64904c1d lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x64c1d634 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x64e10b3e usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x64e35334 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x651b8e07 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x6548746c power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6562caca xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x6578f0e4 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d44e0f pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65e4a1b2 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662afbd6 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x664c8866 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x6665056f platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0x66651c10 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x6679337d disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e200fa sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67d67fbd rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67e3381f pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x680dc140 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x682cbb81 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x688281b3 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68de9b1a fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x6925a382 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x696201ca acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x698024e5 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x69cf3e71 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69efbd01 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x6a050537 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x6a2c96c2 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x6a314c25 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x6a54455c ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a807896 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6ae51a49 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x6b15cc2a ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b4d7b50 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x6b5f0e9e default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b8d2839 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6b9a6fb4 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x6be38b18 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x6bfb0ee4 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x6c100a33 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cb74e91 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x6d0905ea inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x6d0d0cc3 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x6d2cbad5 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3adc8c xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x6d425b92 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x6d65b6df sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x6d823192 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6d8e9200 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x6dc0b8a0 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x6dc502da fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x6ddd050e usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x6de759be crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6df0529e usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x6df56fbf md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x6e1171b3 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x6e14c917 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x6e3167cd sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x6e583691 tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e676760 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e8623ca xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x6e8714f5 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6fa73a93 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff1410d ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x702483b0 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x702ba4c1 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x702d6e69 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x702fcadb scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x704cc9c9 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x708af49e ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7090672c driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x70ad3fc6 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x711e7159 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x7140ff21 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x7150aa45 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7169e9c0 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x71d23a8d platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71d99421 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x71e972e7 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x72555c86 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7272f195 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x73087d2e aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x7345d311 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x7346d656 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x738d0a03 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x73908fe2 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x73a23c0c class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73bbab61 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x73df8373 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x73fc531e led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x74220106 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x744be376 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x744c67fc simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x745a22b6 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x745e2759 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x747be397 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x748a5f49 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x748bd6d5 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74bd3345 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7526c827 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x75413143 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x754a4613 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x755d05de inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7569cf03 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x7580fa21 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x7581c9db sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75b33423 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x75ddd68a relay_open +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x765ddf37 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x766669ea xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7692f397 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x769b384f blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x77104d8a regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7752cf44 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x77c5d7cd __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x780f80cb erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0x7844910b zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x785ec1c9 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x78621159 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x7871a65c ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x78788200 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x789d0364 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x78aa4cf8 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x78dfd6f0 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x78e8f405 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x79021f72 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x7936c006 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7977ca4b crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x79b015c2 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7a1b1faa ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x7a26be88 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a5804b8 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x7a9c9b11 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ab1f55a i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7ad19c10 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x7ada5897 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7aefebfc pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b324a76 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x7b56f0c1 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x7b7c82c1 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x7b8f6e5f virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x7bd4479c dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x7c5e1e33 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x7c5e4823 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x7c5f5533 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x7cbbdc1f da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7cbdea3b get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x7cce44ef pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d81e7d0 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e4168ee crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x7e486a0c debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x7e5e301f unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e82239a rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x7e86318d rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7e9cca2e do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x7ec0a7ea queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x7ec147bf ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ef3e1ec driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f51c1e9 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x7f944192 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fcbe756 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff18beb inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8013effe get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x801e33cd sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x805d5aba sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x810919ce usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x813047a9 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8132237b blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8153316e ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x81a033de ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x81ab1772 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x81e90474 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x81f3ebf9 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x82145a24 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x825cab22 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82e6325c sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x82f8615a sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x830a07a3 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x831db88a rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x83348039 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x835376bf platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x8354342a simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x83d9c08e platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x83dcc40b platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x840880c4 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8459f864 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x84714258 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x848b51b0 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x852d8568 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8575c25b bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x8585ae99 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8599afc7 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x85b2bf69 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85f17b7e ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x8603bbf2 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x86359bbc devres_find +EXPORT_SYMBOL_GPL vmlinux 0x8656216c sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x867953c7 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs +EXPORT_SYMBOL_GPL vmlinux 0x867f2d8a class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86896aba srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x869566c0 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86a5d2c0 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x86c1d8bb trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8740752f ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x8747a7bd i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x874c3924 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x878a006b nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x87ad0c3a ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x87c148f5 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8895cac0 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x889b242d tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x889fc698 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b80cab cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x88d2db32 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x88e5d725 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x88f69fc8 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x890c66ed unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x891d525e ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x8990d480 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x89b12cc8 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x89f671c3 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x89f73b3c crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x8a227156 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x8a3a0ecb dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x8a3f8e8f crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8a6cf901 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a7a3fc0 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x8ab3ad80 pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0x8adf3014 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x8ae3e618 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x8b24f209 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8b5ff50c ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x8b662f6d sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8b984651 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x8bc62de5 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x8bf6334f dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x8bfe22ea eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c105819 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c72ce09 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8c91377a ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x8cdc6078 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x8d16e21c ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x8d2566cf wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x8d263203 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x8d8768e6 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8d9a0732 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x8dbd5849 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x8e30e1aa ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x8e36cab7 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x8e38842c spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8e620951 dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x8e7936d9 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x8e7ac4aa ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x8e97c65b pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x8ed66fec ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x8ed78157 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x8edd4f4d crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f26b6b2 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8f47a54c hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f5727dc class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x8f68c110 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f8e70f3 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x8f97f8e3 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fabf8bc pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x90053230 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x900a8d95 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x9059cead fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x9068ff3b __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9074ed7c dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a11152 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x90a94cbd sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x90c9a08f pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x90ce03ab vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x90e64a8b sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x9128d7f9 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x919a95bd register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x91c06478 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x91d293fe pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x920fcef9 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x922f1151 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x924a5ca9 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x92a1910c smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x92bd7b78 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x93303c69 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x9342e5e4 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x93861eee crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x9390e098 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x9395ce12 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e97efa class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x94276123 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x9429e525 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x94742a03 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x948dee93 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94eb2bc8 ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x951de413 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9549a7ad wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x955d0be9 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x9567b13b __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9595c503 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x95b65302 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x95fb944a sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x96147418 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x967fcbbe dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x9686f14e br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x96aea3e6 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9733b017 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x97420b5a securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x974ad6b0 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x9761df8d debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x9767a3a1 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x979dfb3e srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x97c3cba1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97e176fa screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x97ea8f51 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x9809da9b platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9869f8e3 mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x98d04b21 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x98d5c78e queue_work +EXPORT_SYMBOL_GPL vmlinux 0x9923b7fd firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x993fa672 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x996e1ac6 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x9993590d inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x99d7e321 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9a9d4675 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9b1be993 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x9b3a57c9 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x9b575b8a srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x9b5e633d xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x9b993a85 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bf27c12 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c529e00 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cf03d46 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d0b64a0 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x9d167590 __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d63383d ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9d9f4ee4 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9da9ce66 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9e115101 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x9e5aec32 user_read +EXPORT_SYMBOL_GPL vmlinux 0x9e5dc001 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x9eef272b ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f579a5f sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe14ca5 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x9fe23941 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x9fed952f usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xa07746c1 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xa079ed24 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa0974203 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0c9857b debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa120f3ba inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xa1247e87 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa12846ed vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xa12ae212 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xa1675131 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xa17915e7 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa209ea7a usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa236d886 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xa25c6f56 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xa2607eb0 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xa2bb0e30 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa3179c62 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3fbc407 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa44a11d2 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa467f168 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4a4298f apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa4d95824 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xa4ed60ac sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa50a61fd sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa50af69e anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa52621ca tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xa53f6fa5 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xa569956d ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xa5ba64c2 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xa5be7119 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa650097a acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0xa65ad576 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xa6647379 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xa6ba77bf crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa705eecc dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xa761efa8 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xa7809bdf usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xa7a35f58 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xa7b8601f crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xa7f488df blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xa80a7546 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xa80e850a register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8661b14 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xa869ce3c spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xa869f8ef inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xa87043d7 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xa8a5b653 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa8a9ab78 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa8bdf6ae sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa90d42c9 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa94c9f7b hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xa957fbad platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa96bdf99 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xa9c2bec1 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9d88c46 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xa9dd3a34 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xa9dfe4f3 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa11c178 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xaa125290 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xaa15786f power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xaa260a35 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xaa4947c2 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xaa6623c9 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xaa86ba1b cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaaa5fe2e rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xaacaf49f relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xaadddf21 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xaafdca30 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab59e421 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xab65ef41 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab8f9e2c pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xab99c39f hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xab9e8c45 user_match +EXPORT_SYMBOL_GPL vmlinux 0xaba0366b __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xabd93029 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabedd5f9 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xac5e102d pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xac680749 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xac8efa4a debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xacc354ca class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf7646c tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad5dc373 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadd3c52d wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae1cf796 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xae5b82f3 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xae69abff led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xaec5df59 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xaee1ff47 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xaf1c04a0 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xaf1fd50d relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xaf3814ce devres_get +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf4b0d71 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xafc64fb8 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xafee1425 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xb0763cc0 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xb08fb760 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xb091a5a4 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xb099219a led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0aeaa6b shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xb0ce03e6 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xb0d50ba2 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb0e497fe cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xb10814fb usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb12b1dc4 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xb13b36e4 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xb1601b8e proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xb16d8beb crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xb17f3aff generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb241e846 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xb26875f0 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xb26d81ce dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xb28d3499 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xb2b5bba9 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb2da13ed page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xb2f106ec fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xb31f0f58 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0xb323e3f0 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb3375000 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xb3a3497d ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xb3ce8d37 inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3ec8780 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xb402fa37 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xb40a5552 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xb4206e2d unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xb4b313a1 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xb4b4782b virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb536d8fa __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb5723206 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb593e76e ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5c98ac0 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6397a8e power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb6a1dc7b ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b793ad shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xb6cee900 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xb6d5542e inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb7527422 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb7d411f0 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7de8937 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7f4e553 erst_read +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb84470c4 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xb868e730 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xb86af3f9 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xb88717a1 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xb89e2a9c regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb9561687 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb98d9cc9 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9d13425 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb1c5231 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xbb2d701a ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbcc2f8a wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbcf0a134 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xbd2a545a ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd88827d i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xbdbc32b4 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xbdc91ea3 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xbdceb283 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe1e60c2 input_class +EXPORT_SYMBOL_GPL vmlinux 0xbe4749b2 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xbe546e23 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbead4956 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xbeb38a07 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xbeb5030a fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbeba8c6f acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xbf0c6f35 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf399ff1 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbf598909 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xbfd72a76 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc0563f72 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xc0926213 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xc0a86a4d shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc0b6bb31 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d518a9 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xc0f67a42 mmput +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc14f9a4d ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xc1512c1e invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1758aea pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xc17788be sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xc18f2606 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xc1d0c1f8 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc252aa9e use_mm +EXPORT_SYMBOL_GPL vmlinux 0xc257e4b3 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc29253d0 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xc29e5f39 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xc2b1cac7 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2e702af ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xc346d1dc ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3e5f29b smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc411c97d driver_find +EXPORT_SYMBOL_GPL vmlinux 0xc423f489 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc492f957 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xc4a62321 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc50dc179 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc537e293 device_del +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc58f7dfe devres_add +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc62a764c device_attach +EXPORT_SYMBOL_GPL vmlinux 0xc648b345 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc65d6021 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xc668cecc regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xc6cb96c7 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc741859a bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xc758d6bb virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xc7a4937a usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc85eb956 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8a29d54 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xc8b30aed inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc90de1ad wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc97d837f sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xc9addf61 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xc9ae4d6b unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xc9c70863 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d845 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xc9d55e43 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca0ec59e pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xca446862 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca998ecb xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xcaa0ec64 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcad6ebc3 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xcafb0754 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xcb04f8f1 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xcb179ecc tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xcb38855a bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xcb66aa3a free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xcb9ed4a5 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbfe0175 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xcc1311b6 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc755ed3 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xcd2f0eeb __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xcd80b8fd debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcda2f650 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdec6973 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xcdffb8af regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xce080082 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce895ab8 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xcecb49e9 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd00dc4a3 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd054f1ad pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0xd06827d8 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xd07c7c1d xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xd0ab85d8 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xd0c8397a cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xd0f1fe7c __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xd13927ff dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd17183b2 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xd190887e device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xd19bf231 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xd19fbdea kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd1acec1e kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd23fef97 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2d3815d ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xd2f140d0 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33b4a5d anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xd36706e0 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd396ee8a inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xd397ea41 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3dc57c4 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd42c894c ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xd47b5613 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0xd4998054 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xd4a914ac led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xd4ad035d wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd4d1ca4e cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xd5002653 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xd51bca3d usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xd51f8b04 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd5435ca4 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xd54f49f7 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xd54f813d __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd5524408 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xd5786dc9 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd5c5d57b ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5d488eb page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xd6314211 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xd643bd6f mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd64a71cb tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xd6657340 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xd6e8c697 __add_pages +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd705c168 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xd70b9a01 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xd7229425 css_id +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7832729 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0xd7b7cd2d sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7e41089 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xd8021a21 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd83667eb vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xd84e06db skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xd86a615f aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xd8858fab sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xd8895526 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xd8c585f7 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd8cb58c6 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd91b8d91 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xd93e06ef fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xd93e0bb9 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xd945ba00 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xd957b269 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd96589b2 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0xd9c572ce ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xd9e30833 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd9fe4c4a debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xda107e54 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xda5d99f6 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xda8fcb84 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xdaac3f87 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb19b973 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb2ac9b7 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xdb4b4602 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xdc1ebca9 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdc684cda kick_process +EXPORT_SYMBOL_GPL vmlinux 0xdc6f7d62 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xdcc327be crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xdcc33829 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdcf0779a __module_address +EXPORT_SYMBOL_GPL vmlinux 0xdd1893fd devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xdd27be8c md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xdd3ca60e anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xdd486d8a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xdd7f31e5 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xddd5284a ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xde1674e5 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde982262 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xdea73ea2 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xdeb1d2ac rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xdf07c728 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xdf172d98 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xdf197b1b pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xdf347076 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0xdf38f0fd tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xdfa18755 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0xdfaa5b52 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe03daa74 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xe03f53b8 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xe04ee054 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xe06f7d46 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0b93e62 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0f433f4 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xe113f493 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xe1e5e11f class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe1f21232 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xe264fb07 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xe2883945 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a1158f class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xe2f4ecd0 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe33e5027 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xe36d0af7 tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe3a85b05 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xe3d03456 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xe3e51025 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe45cf23c ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xe4866c6d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0xe494411c blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4ac1766 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xe4c26e37 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xe4e843a3 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe561da63 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xe5e1f4b1 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe5eb42f8 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xe6024054 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe62f4d26 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe6519c42 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe6739f14 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xe67b26b3 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe67d715f usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xe686d363 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xe6a7c46d sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe718df91 dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7683791 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xe76e483d crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xe76ef07d fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xe7d33984 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xe7e0d0f8 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8390852 tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8cb16ec __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xe8f63e47 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xe92f91a3 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xe93b736a platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe943bf23 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xe9440c17 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe99eddf3 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xe9c93c4b find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xe9ea594e mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea230ae1 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xea3757b3 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea7982bf blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xea92b096 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xeab222ba pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xeab9c312 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb4531fd rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xeb760e4a crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xeb839c16 acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0xebe44e5e hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec376e35 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xec3c6ffe cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xec543e11 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xeca740fb dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xed0da4b9 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xed5dc528 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedf0fdd9 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xedf1aa97 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xee047a75 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xee42f539 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xee715f7f wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xef0b97d5 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef209228 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xef4a7bfe crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefa9fd51 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xefd4e66b wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf01c6619 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf09f08c6 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xf0b643af dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xf0bf6920 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xf0c6e3eb tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xf106504e ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xf10bc06a usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xf1752ace sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf194840b pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xf1a298f4 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf228820b vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xf22a94ed uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xf24f0a14 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xf25f54a2 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xf26d62f4 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf314bbd7 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf35b2f7a class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xf395b63e cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xf3a9701c ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf40ebf65 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf4155e20 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xf4254033 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xf4506104 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xf498e491 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf4bcce5f pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xf4beb27b ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xf4e83afe modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xf4f9d463 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xf5030c1a platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54d31b3 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5593017 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf595a34c inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5c09718 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xf62dd838 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xf65b5aa2 device_add +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6e7444a platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ffc59f fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf71846f4 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xf728d662 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xf73861b3 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xf76384d4 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7be80d1 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xf7d65853 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xf8052957 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xf818fb5e fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xf84adef7 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf85c612d map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf86a5b79 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf898f1eb sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xf8eef49d blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf9266d1f sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xf933f1ca cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf964d537 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9bd6dec ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa64ef8b scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xfa6f64bd regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xfa8f5fa3 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xfabe2810 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xfacbe02e apic +EXPORT_SYMBOL_GPL vmlinux 0xfae0b0e3 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xfae2beb8 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xfb095ad8 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xfb0c2373 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb7ec7de drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xfb8084da usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0xfbb74668 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xfbbec4c0 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc15ae96 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc96354c __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcaf3ab8 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xfcbee8af ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xfcc23db0 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xfcdaa671 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xfced4afc blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xfd2008b8 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xfd47f2d0 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd6a8e3a crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd78ef4a dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xfd8f28cf platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xfd9b8d92 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xfdc839d8 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xfdcdc3c7 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xfdd6f87e sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe0137b5 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xfe2a6b34 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe7b04de fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed6444c pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xfef5b152 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xfef842f1 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff18bbdd mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5cffe5 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xff8f33eb pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xff94a7b0 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/amd64/virtual.modules +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/amd64/virtual.modules @@ -0,0 +1,494 @@ +8021q +8139cp +8139too +8390 +acpi_memhotplug +acpi_pad +acpiphp +act_gact +act_ipt +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +aes_generic +aesni-intel +aes-x86_64 +af_802154 +af_key +af-rxrpc +ah4 +ah6 +ahci +ansi_cprng +anubis +appletalk +arc4 +arptable_filter +arp_tables +arpt_mangle +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +atm +authenc +ax25 +binfmt_misc +blowfish +bonding +br2684 +bridge +bsd_comp +btrfs +BusLogic +camellia +can +can-bcm +can-raw +cast5 +cast6 +ccm +cfg80211 +cifs +cirrusfb +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +configfs +cpuid +cpu-notifier-error-inject +crc32c +crc32c-intel +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +ctr +cts +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +decnet +deflate +des_generic +dm-crypt +dm-queue-length +dm-service-time +dm-zero +dn_rtmsg +dummy +e1000 +e1000e +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +econet +einj +em_cmp +em_meta +em_nbyte +em_text +em_u32 +eql +esp4 +esp6 +evbug +evtchn +exportfs +fat +faulty +fb_sys_fops +fcrypt +floppy +fpu +gameport +garp +gcm +gf128mul +ghash-clmulni-intel +ghash-generic +ghes +hangcheck-timer +hed +ieee802154 +ifb +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipcomp +ipcomp6 +ipddp +ip_gre +ipip +ip_queue +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipx +ircomm +ircomm-tty +irda +irlan +irnet +iscsi_tcp +iscsi_trgt +isofs +joydev +khazad +lapb +lec +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libcrc32c +libiscsi +libiscsi_tcp +libsas +linear +llc2 +lp +lru_cache +lrw +lzo +lzo_compress +mac80211 +mce-inject +mce-xeon75xx +md4 +michael_mic +microcode +mii +mpoa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msr +multipath +nbd +ne2k-pci +netconsole +netrom +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nf_tproxy_core +nvram +oprofile +output +p4-clockmod +p8023 +parport +parport_pc +pcbc +pcc-cpufreq +pcnet32 +pcrypt +phonet +pktgen +pn_pep +power_meter +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +psmouse +qla1280 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +raw +reed_solomon +rmd128 +rmd160 +rmd256 +rmd320 +rose +rxkad +salsa20_generic +salsa20-x86_64 +sch_atm +sch_cbq +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_multiq +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_wait_scan +sctp +sctp_probe +seed +seqiv +serio_raw +serpent +serport +sha1_generic +sha256_generic +sha512_generic +sit +slip +smbfs +snd +snd-ens1370 +snd-hrtimer +snd-hwdep +snd-page-alloc +snd-pcm +snd-pcsp +snd-rawmidi +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-timer +softdog +soundcore +speedstep-lib +squashfs +stp +syscopyarea +sysfillrect +sysimgblt +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tea +tgr192 +tipc +ts_bm +ts_fsm +ts_kmp +tulip +tunnel4 +tunnel6 +twofish +twofish_common +twofish-x86_64 +ufs +usb-storage +usbtouchscreen +veth +vfat +vga16fb +vgastate +video +virtio_balloon +vmac +vmw_pvscsi +vmxnet3 +wanrouter +wp512 +x25 +xcbc +xen-fbfront +xenfs +xen-kbdfront +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xor +x_tables +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_iprange +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +zlib +zlib_deflate --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/amd64/server.modules +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/amd64/server.modules @@ -0,0 +1,2839 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6pack +8021q +8139cp +8139too +8255 +8390 +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +aacraid +ab3100 +ab3100-otp +abituguru +abituguru3 +abyss +ac97_bus +acecad +acenic +acerhdf +acer-wmi +acpi_memhotplug +acpi_pad +acpiphp +acpiphp_ibm +acquirewdt +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad714x +ad714x-i2c +ad714x-spi +ad7414 +ad7418 +ad7877 +ad7879 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2016 +addi_apci_2032 +addi_apci_2200 +addi_apci_3001 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +adfs +adi +adis16209 +adis16220 +adis16240 +adis16255 +adis16260 +adis16300 +adis16350 +adis16400 +adl_pci6208 +adl_pci7230 +adl_pci7296 +adl_pci7432 +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-gpio +adp5520-keys +adp5588-gpio +adp5588-keys +adp8860_bl +ads7828 +ads7846 +ads7871 +adt7411 +adt7462 +adt7470 +adt7475 +adutux +adv7170 +adv7175 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +aes_generic +aesni-intel +aes-x86_64 +af_802154 +af9013 +affs +af_key +af-rxrpc +ah4 +ah6 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +alauda +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera_jtaguart +altera_ps2 +altera_uart +ambassador +amc6821 +amd64_edac_mod +amd76xrom +amd8111e +amd-rng +amplc_dio200 +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +analog +ansi_cprng +anubis +aoe +appledisplay +applesmc +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asb100 +asc7621 +asix +asus_atk0110 +asus-laptop +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +atbm8830 +aten +ath +ath3k +ath5k +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522 +aufs +authenc +auth_rpcgss +autofs +autofs4 +av5100 +avma1_cs +avm_cs +avmfritz +ax25 +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpqether +bq24022 +bq27x00_battery +br2684 +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c2port-duramar2150 +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capi +capidrv +capifs +capmode +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcidio +cb_pcimdas +cb_pcimdda +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +cirrusfb +ck804xrom +classmate-laptop +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +core +coretemp +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc32c +crc32c-intel +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535-gpio +ct82c710 +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxt1e1 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +dabusb +DAC960 +daqboard2000 +das08 +das08_cs +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +denali +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dlci +dlm +dm1105 +dm9601 +dm-crypt +dme1737 +dmfe +dm-queue-length +dm-raid45 +dm-service-time +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +dpt_i2o +drbd +drm +drm_kms_helper +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +ds2782_battery +ds3000 +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy_hcd +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dw_spi_pci +dynapro +e100 +e1000 +e1000e +e752x_edac +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +echo +econet +edac_core +edac_mce_amd +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeti_ts +efs +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enclosure +eni +enic +epat +epca +epia +epic100 +eql +esb2rom +esi-sir +esp4 +esp6 +et131x +et61x251 +eth1394 +ethoc +eurotechwdt +evbug +evtchn +exofs +exportfs +f71805f +f71882fg +f75375s +fakephp +farsync +fat +faulty +fb_ddc +fb_sys_fops +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +floppy +fm801-gp +fmvj18x_cs +fnic +forcedeth +fore_200e +fpu +freevxfs +friq +frpw +fsam7400 +fscache +fschmd +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +gdth +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +g_file_storage +gfs2 +ghash-clmulni-intel +ghash-generic +ghes +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_nokia +go7007 +go7007-usb +gpio-addr-flash +gpio_keys +gpio_mouse +gpio_vbus +g_printer +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hed +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-wacom +hid-zpff +hid-zydacron +hifn_795x +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hp_accel +hpfs +hpilo +hpsa +hptiop +hp-wmi +hso +htc-pasic3 +hv_blkvsc +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i1480u-wlp +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-dev +i2c-gpio +i2c-i801 +i2c-isch +i2c-matroxfb +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-scmi +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7300_idle +i7core_edac +i810 +i82092 +i82975x_edac +i830 +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipath +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmasm +ibmasr +ibmcam +ibmpex +ib_mthca +ibmtr_cs +ib_qib +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icp_multi +ics932s401 +idmouse +idt77252 +ieee1394 +ieee802154 +ifb +iforce +igb +igbvf +iio-trig-gpio +iio-trig-periodic-rtc +ii_pci20kc +ili9320 +imm +imon +industrialio +inexio +inftl +initio +input-polldev +int51x1 +intel-agp +intel_ips +intel_menlow +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ir-common +ircomm-tty +ir-core +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_ibft +iscsi_tcp +iscsi_trgt +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1760 +istallion +it87 +it8712f_wdt +it8761e_gpio +it87_wdt +iTCO_vendor_support +iTCO_wdt +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvm +kvm-amd +kvm-intel +kxsd9 +kyrofb +l1oip +l2cap +l2tp_core +l2tp_debugfs +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lapb +lapbether +lcd +ldusb +lec +led-class +leds-88pm860x +leds-adp5520 +leds-alix2 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lp3944 +leds-lt3593 +leds-mc13783 +leds-net5501 +leds-pca9532 +leds-pca955x +leds-regulator +leds-ss4200 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libcrc32c +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libosd +libsas +libsrp +lightning +line6usb +linear +lirc_bt829 +lirc_dev +lirc_ene0100 +lirc_i2c +lirc_igorplugusb +lirc_imon +lirc_it87 +lirc_ite8709 +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lmc +lms283gf05 +lnbp21 +lockd +lp +lp3971 +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4215 +ltc4245 +ltv350qv +lxfb +lzo +lzo_compress +m25p80 +m52790 +ma600-sir +mac80211 +mac80211_hwsim +machzwd +macmodes +macvlan +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max1363 +max1586 +max1619 +max17040_battery +max2165 +max3100 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +mb862xxfb +mb862xxfb_accel +mb86a16 +mbp_nvidia_bl +mc13783-adc +mc13783-core +mc13783-regulator +mc13783_ts +mc33880 +mc44s803 +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memrar +memstick +metronomefb +meye +mga +michael_mic +micrel +microcode +microtek +mii +minix +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mmc_spi +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtd_nandecctest +mtd_oobtest +mtdoops +mtd_pagetest +mtdram +mtd_readtest +mtd_speedtest +mtd_stresstest +mtd_subpagetest +mtd_torturetest +mtouch +multipath +mvsas +mwave +mwl8k +mxb +mxl5005s +mxl5007t +mxser +myri10ge +n411 +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +ndiswrapper +ne2k-pci +neofb +net1080 +netconsole +netjet +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +nf_tproxy_core +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nop-usb-xceiv +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +ntfs +nvidiafb +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ohci1394 +old_belkin-sir +olympic +omfs +omnibook +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov7670 +ov772x +ov9640 +ovcamchip +oxu210hp-hcd +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8023 +padlock-aes +padlock-sha +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pbe5 +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca953x +pcbc +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pci +pci200syn +pcilynx +pcips2 +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcm_common +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pegasus +penmount +pf +pg +phantom +phison +phonedev +phonet +phram +physmap +pkgtemp +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pn_pep +pohmelfs +poseidon +powermate +power_meter +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +prism2_usb +prism54 +progear_bl +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qt1010 +quatech_daqp_cs +quatech_usb2 +quickcam_messenger +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192e_pci +r8192se_pci +r8192s_usb +r8192u_usb +r852 +r8a66597-hcd +radeon +radeonfb +radio-gemtek-pci +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +radio-usb-si470x +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +rar_register +raw +raw1394 +ray_cs +rc-adstech-dvb-t-pci +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avertv-303 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-empty +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge-new +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-lirc +rc-manli +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc5-hauppauge-new +rc-rc5-tv +rc-rc6-mce +rc-real-audio-220-32-keys +rc-streamzap +rc-tbs-nec +rc-terratec-cinergy-xs +rc-tevii-nec +rc-tt-1500 +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-gpio +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +ring_sw +rio500 +riscom8 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2860sta +rt2870sta +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3234 +rtc-fm3130 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-mc13783 +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-test +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl8150 +rtl8180 +rtl8187 +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-x86_64 +samsung-laptop +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbni +sbp2 +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +sch311x_wdt +sch_atm +sch_cbq +sch_drr +sch_dsmark +sch_gpio +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_multiq +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci +sdhci-pci +sdhci-pltfm +sdio_uart +sdricoh_cs +se401 +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha1_generic +sha256_generic +sha512_generic +shpchp +sht15 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc91c92_cs +sm_common +sm_ftl +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-als300 +snd-als4000 +snd-asihpi +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-atihdmi +snd-hda-codec-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-idt +snd-hda-codec-intelhdmi +snd-hda-codec-nvhdmi +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hifier +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-core +snd-soc-cs4270 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wm2000 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8776 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-ua101 +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +solos-pci +sony-laptop +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +specialix +spectrum_cs +speedfax +speedstep-lib +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +squashfs +ssb +ssfdc +sst25l +sstfb +ssv_dnp +st +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stowaway +stp +stradis +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sx8 +sym53c500_cs +symbolserial +synaptics_i2c +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +tca6416-keypad +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10086 +tda18271 +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tle62x0 +tm6000 +tm6000-alsa +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpm +tpm_atmel +tpm_bios +tpm_infineon +tpm_nsc +tpm_tis +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +trancevibrator +tranzport +tridentfb +ts5500_flash +ts_bm +tsc2007 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw9910 +twidjoy +twl4030-gpio +twl4030_keypad +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twofish +twofish_common +twofish-x86_64 +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +udf +udlfb +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +ultracam +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usb_gigaset +usbhid +usbip +usbip_common_mod +usblcd +usbled +usblp +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +uss720 +uvcvideo +uvesafb +uwb +v4l1-compat +v4l2-common +v4l2-compat-ioctl32 +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-agp +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +vicam +video +video1394 +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio_balloon +virtio_console +virtio-rng +virtual +visor +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmware_balloon +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt6656_stage +vt8231 +vt8623fb +vxge +w1_bq27000 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w35und +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +w9968cf +wacom +wacom_w8001 +wafer5823wdt +walkera0701 +wanrouter +wanxl +warrior +wbsd +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +winbond-cir +wire +wis-ov7640 +wis-saa7113 +wis-saa7115 +wis-sony-tuner +wis-tw2804 +wis-tw9903 +wis-uda1342 +wl1251 +wl1251_sdio +wl1251_spi +wl1271 +wl1271_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlp +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-gpio +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x_wdt +wm8350-gpiolib +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-gpio +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +xc5000 +xcbc +xen-blkfront +xen-fbfront +xenfs +xen-kbdfront +xen-netfront +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xhci-hcd +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_iprange +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xvmalloc +yam +yealink +yellowfin +yenta_socket +zatm +zaurus +zc0301 +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/amd64/generic.modules +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/amd64/generic.modules @@ -0,0 +1,2845 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6pack +8021q +8139cp +8139too +8255 +8390 +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +aacraid +ab3100 +ab3100-otp +abituguru +abituguru3 +abyss +ac97_bus +acecad +acenic +acerhdf +acer-wmi +acpi_pad +acpiphp +acpiphp_ibm +acquirewdt +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad714x +ad714x-i2c +ad714x-spi +ad7414 +ad7418 +ad7877 +ad7879 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2016 +addi_apci_2032 +addi_apci_2200 +addi_apci_3001 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +adfs +adi +adis16209 +adis16220 +adis16240 +adis16255 +adis16260 +adis16300 +adis16350 +adis16400 +adl_pci6208 +adl_pci7230 +adl_pci7296 +adl_pci7432 +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-gpio +adp5520-keys +adp5588-gpio +adp5588-keys +adp8860_bl +ads7828 +ads7846 +ads7871 +adt7411 +adt7462 +adt7470 +adt7475 +adutux +adv7170 +adv7175 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +aes_generic +aesni-intel +aes-x86_64 +af_802154 +af9013 +affs +af_key +af-rxrpc +ah4 +ah6 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +alauda +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera_jtaguart +altera_ps2 +altera_uart +ambassador +amc6821 +amd64_edac_mod +amd76xrom +amd8111e +amd-rng +amplc_dio200 +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +analog +ansi_cprng +anubis +aoe +appledisplay +applesmc +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asb100 +asc7621 +asix +asus_atk0110 +asus-laptop +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +atbm8830 +aten +ath +ath3k +ath5k +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522 +aufs +authenc +auth_rpcgss +autofs +autofs4 +av5100 +avma1_cs +avm_cs +avmfritz +ax25 +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpqether +bq24022 +bq27x00_battery +br2684 +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c2port-duramar2150 +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capi +capidrv +capifs +capmode +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcidio +cb_pcimdas +cb_pcimdda +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +cirrusfb +ck804xrom +classmate-laptop +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +core +coretemp +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc32c +crc32c-intel +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535-gpio +ct82c710 +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxt1e1 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +dabusb +DAC960 +daqboard2000 +das08 +das08_cs +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +denali +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dlci +dlm +dm1105 +dm9601 +dm-crypt +dme1737 +dmfe +dm-queue-length +dm-raid45 +dm-service-time +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +dpt_i2o +drbd +drm +drm_kms_helper +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +ds2782_battery +ds3000 +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy_hcd +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dw_spi_pci +dynapro +e100 +e1000 +e1000e +e752x_edac +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +echo +econet +edac_core +edac_mce_amd +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeti_ts +efs +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enclosure +eni +enic +epat +epca +epia +epic100 +eql +esb2rom +esi-sir +esp4 +esp6 +et131x +et61x251 +eth1394 +ethoc +eurotechwdt +evbug +evtchn +exofs +exportfs +f71805f +f71882fg +f75375s +fakephp +farsync +fat +faulty +fb_ddc +fb_sys_fops +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +floppy +fm801-gp +fmvj18x_cs +fnic +forcedeth +fore_200e +fpu +freevxfs +friq +frpw +fsam7400 +fscache +fschmd +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +gdth +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +g_file_storage +gfs2 +ghash-clmulni-intel +ghash-generic +ghes +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_nokia +go7007 +go7007-usb +gpio-addr-flash +gpio_keys +gpio_mouse +gpio_vbus +g_printer +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hed +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-wacom +hid-zpff +hid-zydacron +hifn_795x +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hp_accel +hpfs +hpilo +hpsa +hptiop +hp-wmi +hso +htc-pasic3 +hv_blkvsc +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i1480u-wlp +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-dev +i2c-gpio +i2c-i801 +i2c-isch +i2c-matroxfb +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-scmi +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7300_idle +i7core_edac +i810 +i82092 +i82975x_edac +i830 +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipath +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmasm +ibmasr +ibmcam +ibmpex +ib_mthca +ibmtr_cs +ib_qib +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icp_multi +ics932s401 +idmouse +idt77252 +ieee1394 +ieee802154 +ifb +iforce +igb +igbvf +iio-trig-gpio +iio-trig-periodic-rtc +ii_pci20kc +ili9320 +imm +imon +industrialio +inexio +inftl +initio +input-polldev +int51x1 +intel-agp +intel_ips +intel_menlow +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ir-common +ircomm-tty +ir-core +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_ibft +iscsi_tcp +iscsi_trgt +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1760 +istallion +it87 +it8712f_wdt +it8761e_gpio +it87_wdt +iTCO_vendor_support +iTCO_wdt +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvm +kvm-amd +kvm-intel +kxsd9 +kyrofb +l1oip +l2cap +l2tp_core +l2tp_debugfs +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lapb +lapbether +lcd +ldusb +lec +led-class +leds-88pm860x +leds-adp5520 +leds-alix2 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lp3944 +leds-lt3593 +leds-mc13783 +leds-net5501 +leds-pca9532 +leds-pca955x +leds-regulator +leds-ss4200 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libcrc32c +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libosd +libsas +libsrp +lightning +line6usb +linear +lirc_bt829 +lirc_dev +lirc_ene0100 +lirc_i2c +lirc_igorplugusb +lirc_imon +lirc_it87 +lirc_ite8709 +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lmc +lms283gf05 +lnbp21 +lockd +lp +lp3971 +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4215 +ltc4245 +ltv350qv +lxfb +lzo +lzo_compress +m25p80 +m52790 +ma600-sir +mac80211 +mac80211_hwsim +machzwd +macmodes +macvlan +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max1363 +max1586 +max1619 +max17040_battery +max2165 +max3100 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +mb862xxfb +mb862xxfb_accel +mb86a16 +mbp_nvidia_bl +mc13783-adc +mc13783-core +mc13783-regulator +mc13783_ts +mc33880 +mc44s803 +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memrar +memstick +metronomefb +meye +mga +michael_mic +micrel +microcode +microtek +mii +minix +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mmc_spi +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtd_nandecctest +mtd_oobtest +mtdoops +mtd_pagetest +mtdram +mtd_readtest +mtd_speedtest +mtd_stresstest +mtd_subpagetest +mtd_torturetest +mtouch +multipath +mvsas +mwave +mwl8k +mxb +mxl5005s +mxl5007t +mxser +myri10ge +n411 +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +ndiswrapper +ne2k-pci +neofb +net1080 +netconsole +netjet +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +nf_tproxy_core +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nop-usb-xceiv +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +ntfs +nvidiafb +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ohci1394 +old_belkin-sir +olympic +omfs +omnibook +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov7670 +ov772x +ov9640 +ovcamchip +oxu210hp-hcd +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8023 +padlock-aes +padlock-sha +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pbe5 +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca953x +pcbc +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pci +pci200syn +pcilynx +pcips2 +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcm_common +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pegasus +penmount +pf +pg +phantom +phison +phonedev +phonet +phram +physmap +pkgtemp +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pn_pep +pohmelfs +poseidon +powermate +power_meter +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +prism2_usb +prism54 +progear_bl +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qt1010 +quatech_daqp_cs +quatech_usb2 +quickcam_messenger +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192e_pci +r8192se_pci +r8192s_usb +r8192u_usb +r852 +r8a66597-hcd +radeon +radeonfb +radio-gemtek-pci +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +radio-usb-si470x +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +rar_register +raw +raw1394 +ray_cs +rc-adstech-dvb-t-pci +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avertv-303 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-empty +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge-new +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-lirc +rc-manli +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc5-hauppauge-new +rc-rc5-tv +rc-rc6-mce +rc-real-audio-220-32-keys +rc-streamzap +rc-tbs-nec +rc-terratec-cinergy-xs +rc-tevii-nec +rc-tt-1500 +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-gpio +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +ring_sw +rio500 +riscom8 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2860sta +rt2870sta +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3234 +rtc-fm3130 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-mc13783 +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-test +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl8150 +rtl8180 +rtl8187 +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-x86_64 +samsung-laptop +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbni +sbp2 +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +sch311x_wdt +sch_atm +sch_cbq +sch_drr +sch_dsmark +sch_gpio +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_multiq +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci +sdhci-pci +sdhci-pltfm +sdio_uart +sdricoh_cs +se401 +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha1_generic +sha256_generic +sha512_generic +shpchp +sht15 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc91c92_cs +sm_common +sm_ftl +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-als300 +snd-als4000 +snd-asihpi +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-atihdmi +snd-hda-codec-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-idt +snd-hda-codec-intelhdmi +snd-hda-codec-nvhdmi +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hifier +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-core +snd-soc-cs4270 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wm2000 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8776 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-ua101 +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +solos-pci +sony-laptop +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +specialix +spectrum_cs +speedfax +speedstep-lib +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +squashfs +ssb +ssfdc +sst25l +sstfb +ssv_dnp +st +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stowaway +stp +stradis +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +tca6416-keypad +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10086 +tda18271 +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tle62x0 +tm6000 +tm6000-alsa +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpm +tpm_atmel +tpm_bios +tpm_infineon +tpm_nsc +tpm_tis +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +trancevibrator +tranzport +tridentfb +ts5500_flash +ts_bm +tsc2007 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw9910 +twidjoy +twl4030-gpio +twl4030_keypad +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twofish +twofish_common +twofish-x86_64 +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +udf +udlfb +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +ultracam +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usb_gigaset +usbhid +usbip +usbip_common_mod +usblcd +usbled +usblp +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +uss720 +uvcvideo +uvesafb +uwb +v4l1-compat +v4l2-common +v4l2-compat-ioctl32 +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-agp +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +vicam +video +video1394 +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtual +visor +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmware_balloon +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt6656_stage +vt8231 +vt8623fb +vxge +w1_bq27000 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w35und +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +w9968cf +wacom +wacom_w8001 +wafer5823wdt +walkera0701 +wanrouter +wanxl +warrior +wbsd +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +winbond-cir +wire +wis-ov7640 +wis-saa7113 +wis-saa7115 +wis-sony-tuner +wis-tw2804 +wis-tw9903 +wis-uda1342 +wl1251 +wl1251_sdio +wl1251_spi +wl1271 +wl1271_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlp +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-gpio +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x_wdt +wm8350-gpiolib +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-gpio +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +xc5000 +xcbc +xen-blkfront +xen-fbfront +xenfs +xen-kbdfront +xen-netfront +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xhci-hcd +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_iprange +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xvmalloc +yam +yealink +yellowfin +yenta_socket +zatm +zaurus +zc0301 +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/amd64/generic +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/amd64/generic @@ -0,0 +1,11147 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x5d04d00b kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xbdcd0a18 kvm_cpu_has_pending_timer +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/acpi/video 0xdc7ed085 acpi_video_get_edid +EXPORT_SYMBOL drivers/atm/suni 0x818d7eb2 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xe12b440a uPD98402_init +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x8fd38ed6 drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xd3526f9b drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/paride/paride 0x029d5146 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x46b213c1 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x5b6f03fa pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x808324d4 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x836bbb9d pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x877a20f6 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xaff988db pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xb475f496 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xb879f625 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xc8d5c469 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xd359327c pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xf73812f0 pi_release +EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL drivers/char/agp/intel-agp 0xfcc4aec2 intel_max_stolen +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x098a3b61 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1c33f644 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1c9bbc51 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1f7800d3 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x301a1c0f ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x320bd29f ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x37c16904 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x38d1b12c ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4ff9829e ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6538376c ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x68497f43 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x70def5bd ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x729e473b ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x735ef48a ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7ce20988 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7e120cec ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x945b9079 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x999dc22e ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb986edc4 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbf5db4ce ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc505f3f9 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcb8880e5 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcaece0f ipmi_set_my_address +EXPORT_SYMBOL drivers/char/nsc_gpio 0x28fce86f nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0x2aeebbe9 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0xcd57cf8c nsc_gpio_read +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/edac/edac_core 0x22f79e78 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0x5cd27e73 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xd97bb923 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/firewire/firewire-core 0x01b48a9b fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x07cbf961 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0d419bfb fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16b77cac fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1f9f443f fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x22d79a4a fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x234c1cf0 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x239c100a fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x24457c13 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x26c20be1 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x272b2603 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x49a29946 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e86dd83 fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4f0c4262 fw_core_initiate_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5c767dc2 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6fb6815f fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x73a2a27b fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x73afa388 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9dbd341e fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa58bc2fc fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb4cc896d fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbe9f34f6 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd486e00b fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd78bd6a3 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf387b954 fw_send_response +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x014e10aa drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x015fe1f5 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0438b38a drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x047bca76 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06c64882 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a2b5da7 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0db37f99 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e6be1d4 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x127e9a1a drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a945f8 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14f5f1b9 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1856b6f9 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a217a31 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1abf31fe drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20fd36be drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23bc4e1f drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25ebd767 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x269cc479 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28de4b07 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2951d407 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ceda3ee drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ef54271 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f5fd26f drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f69f0e9 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x357fd9f7 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3751c8fd drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3972cb84 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ad7da56 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ada24d5 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e9c1c6b drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x404adc30 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x456d3ea7 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45bf9289 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46d02dfe drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x481fc0bc drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x482d58b6 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a009446 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a344a38 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f84bb39 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x518e5282 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51d48ee1 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5440b099 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54bbf231 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54fbc155 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56187ddd drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x563b6a8a drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5741a431 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57645c85 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5811978f drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59eeda47 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e6f33a8 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x611df268 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62d90d1e drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x643fbb98 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x649f32cb drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6512a827 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67f2ef12 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a6d19e4 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6aa1eb64 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x751dafd9 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75d8bdaa drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76382c5a drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a60c058 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bb0600d drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c8fb3ad drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e871097 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f28c6a1 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85b87c7d drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x885fd0ab drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e38c53d drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e5321e0 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95b25f0b drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95b92a94 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9cd3db6e drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3d726de drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa49bdfcd drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa51602b2 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa51ac57c drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5a626be drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa63297ac drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7b44aa0 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8b8773c drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacb807e5 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad904fd1 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadb19ddf drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadd5f6c5 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb05b683a drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb514f558 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95157c0 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb77d74f drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfe77b1d drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc049b0aa drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc38c80d7 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc483464e drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc623f15f drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca88c92c drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbb49c7b drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd77d985 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0279c91 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd16383a8 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd48b2bc8 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdaa05f51 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd3ec2ac drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe068882a drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2578f1b drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe46ea53d drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8326622 drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9281b94 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9804089 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecdc4917 drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0dcc980 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1897e93 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1dccabe drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3da2e8b drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf99dd9b0 drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa5b319f drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa5d0e50 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaf6094e drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb23a48f drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc575d92 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc886016 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe6e6038 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeae0530 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12abe029 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x37922858 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x55265652 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56134f57 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x564818cb drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56b22130 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6bd725f8 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6d87a7c4 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7cc36651 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8bd712da drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ed5e60a drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9709de8e drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99abc5f5 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa129de51 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa3e42e73 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa5721a5d drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaf07cbc0 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb093c5f4 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5132d36 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbf0f933d drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc480ae98 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc5417a87 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc57eb910 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcc9a93f8 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd2ac17c8 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4a4545c drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe96701d9 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9106509 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x04cad234 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07db5e8b ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19db9d0f ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c8bc052 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ec98563 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x20310cf9 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x210340d5 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b191a62 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f026af0 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36e1d161 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a7dcba8 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45d9bec2 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x48359de6 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x48863d30 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x59224adb ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ab24179 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5bf59093 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6069d536 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62dfcef9 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62ef7137 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x69913ec9 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x69ed48a9 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7141dccc ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x74df407f ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78923b7a ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85ee09fd ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88e4ab0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x90e8f620 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab0fda6c ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb71fd1d0 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64022a6 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc823d627 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc8a036e4 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc9d3b473 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca3c55d1 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd1d1641d ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd778e032 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd2233ed ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd7920f6 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdeced4d4 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdf2ffea1 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6652d73 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xedd02bc8 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xee6c638d ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa696d55 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc96fa68 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x43e0adb2 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xf0c11789 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x47eac6a4 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x9d7b8dc7 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x6433f7c2 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xf4c09341 amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x043f8322 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x063d8a80 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x098051f3 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x099ac1e9 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x16cf3f6e hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193d4b3e csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1b4236b2 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x225443e9 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x23662804 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2c5fa02f hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x31c4f61d hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x325509a0 hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x33d48513 hpsb_lock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37cd2e24 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x464e9db4 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4835c9dd hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4d9b40d9 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x554b947a hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5b7ed3e0 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x606cf241 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x611b107c hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x646a5aa3 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6476693b hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6864ad06 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x699abfc5 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6cde719e hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x70ec1bb9 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x71dd0910 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7d1a650a hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8232068a hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x87027e9b hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8779a48a hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x887c199d hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8fc8af2c hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x91521bca hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x916726be dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x922be22a hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x927ffcdd hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9585babd hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa7fbb7f4 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa86cc567 hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8898205 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaa4fb318 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xacbac6ef hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xad8432c7 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb44d65b3 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb9a3eb8f hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xba9e3ca9 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc16ef5de hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc195fda1 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc399c480 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc75c7089 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd1304ecf hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd5a1f0a4 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd5a5c07a hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe63be6ba hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf212d087 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3c12dd8 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf4224597 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf4da8e24 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf7afcd34 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf9f2b582 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba3dadc hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xff77dccb hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x73c3cb80 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x92313f68 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xdbef6f03 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd920f95b rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x03665c60 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x05795d01 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0fdde913 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1956e263 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x47a0d77d ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x53f25b7e ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6463f174 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7392fb4e ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x87112eb0 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9b95fe1c ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9e405708 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9f12e82f ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb0349c66 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb7d52726 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb91f7480 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbfa528e8 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfbaefd04 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a9ebbb0 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16782638 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a6a6a0f ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23d7e5b2 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x254533ae ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28312782 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a096118 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2bc868db ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33d16620 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3429bc4c ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x35ff9063 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39577778 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45ba06d0 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47963f91 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x499d628c ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d29f95f ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x599f54ad ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a5ae5e4 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a980430 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ab6d937 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6899b6a0 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x696673b5 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ebdee94 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ee663d9 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76c77d16 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77b2fa6f ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b614ff5 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b742609 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7cdafa47 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e7815bd ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81274c42 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8863becf ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a5abd8f ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ced4f8f ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90016b1e ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x946d2382 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x95ead1ee ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9636a99b ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x988e1483 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d34b259 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9f1f00f1 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa0527e1b ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa087dbc5 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac382aea ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf75a217 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb89e607e ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb3c63ff ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbcb2e1fc ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc219023e ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc3fa75e2 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4eca125 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcaf9bd6b ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcbffea33 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd167f2d0 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4b9300f ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdcae88b2 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd3fa3d7 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd60b016 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe04ae222 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe11772f0 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2835803 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8b845a1 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8bffcda ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe92aef55 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf256345a ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf71eb617 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1feb4fe3 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x35bd0dda ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x37836fc5 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3b094366 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x41e18793 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x631ec60a ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x65ab18a3 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6fe26beb ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x74c11f49 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8de1a7ac ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcdfe4d68 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcf97273b ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x09a31213 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x33349926 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x381f4e8b ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x53a436d7 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb4a7fb32 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc2dd861e ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfb78235f ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x510a1bb9 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x63de0762 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x92eb7fb5 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbdd4d7db iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc0ed998e iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc1dc1fc7 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xce016d04 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe0cf8390 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x06182ab0 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0926761f rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x14e06817 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1fa7dee3 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2add3f64 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x39c6f4e8 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x44325ba2 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x66b348f9 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67c5c999 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x69cf4652 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6b9ffe3e rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8fa4428f rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa303e00e rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa30cfaa7 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa8b113d1 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc071511b rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2d929b6 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf7191df9 rdma_bind_addr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1f92dd9d gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8043f907 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xac0772e8 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb8c38563 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbc6bf2db __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbf92d4c1 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd5893066 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xda279d62 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xeb5a4444 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/input-polldev 0xa7aea5f0 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xaa5af9b1 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xda7789f3 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf646c416 input_free_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb0ea0fb6 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd9682dab ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xeb8c452b ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf6ad0c10 ad714x_enable +EXPORT_SYMBOL drivers/input/sparse-keymap 0x33657b3d sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3528787c sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4df0d563 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7b07f0c2 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa5c82d10 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe9fa9363 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x06dbad7c capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x70c40475 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x15957f95 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1a0b5084 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x68410fb4 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x72853cc6 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8753888a detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa691fb15 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa9ff66ff attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb1d4093c capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc2025561 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc29aa9e3 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x00b6ca67 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0506573f b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1c699c65 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2842e72f b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x83062a83 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcb8210c5 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd02abaea b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd9ba7134 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdb8d3817 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdc40ec1c b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdf189250 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe4eb0aff b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe97faac0 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xeed26e98 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf92461f4 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1417ae1a t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x271445dc b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3b62d9c3 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6e7f0862 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x772f8d0d b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8f6ad9e3 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc50f9f63 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdcfecada b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf484df15 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x6c89d272 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x4472bb4b mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x4f103518 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x8c44f0a2 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xcd60dbb3 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x6a68c018 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xba04f0de mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x967acc01 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x2b679c02 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x67eddee0 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x74020eae isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x8098f3f6 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x9affc1ee isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x99cc5fff isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa752b60b register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xdf12d48f isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0d339c19 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x24b4c2e2 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x300c0a79 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4d6da8d0 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x505f9a92 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7c8db62b get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x810d4b9a recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x84794577 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8b3af205 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9c17e671 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9ff82a28 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa0506bb7 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xaf7396f6 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb6ffe502 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb98086de recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc36c77e8 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc613a5d1 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcc83a48a mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd00b49a3 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdc44f40c mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe3548a59 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xed173169 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 0x61b27eae ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/ir-core 0x66e4b64d ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x2fa1ab72 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x51849481 lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x8ad60ec7 lirc_get_pdata +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x92a9f9be lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xcc2a4009 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xd0c2c537 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xd89e7591 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xe4f8e0be lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x2685ed60 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xb0cef51a mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xedf8b9e5 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x5d40737c mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x6b65fc91 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x06484e41 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xc9d2dd36 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x08fd5720 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x10a2fe8b xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x16f6719c flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x294adb2e flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2cf7c779 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2fde3a83 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4834df4a flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4f49cf65 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x569f84d1 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b2e3096 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b6a05e2 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6847c8f1 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6e64fd60 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x75b979ba flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x79358b36 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb6d03ab6 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc44caa62 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd0e2f18c flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd15a5bae flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe509f9a6 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf3a6ee5f flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf730acc6 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x4583bbed bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x48614066 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x66572622 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xbc1032c5 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0ca32260 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0e88506e dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x47940889 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4eb61230 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x59b0d9b5 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x766634b5 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf27f42de dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf63f5e39 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xfdd7719e dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xfc45b2a4 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x01ada5ef dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x280842a4 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f7bdd06 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x373b1b77 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a2b3c0b dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a3aab99 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4dc0b8a6 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5550c372 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x62740499 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x66960b21 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6d964eb1 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x75dc0370 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76627e35 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x77aacbc6 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7d8904b9 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x82b5658d dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8e33ccd2 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9b221fc9 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa1125438 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac466ae7 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xaebab6ff dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc147d2cd dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca4feed5 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcb4eae10 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2fd6512 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd32e6483 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd8fc8ee7 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe161f960 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe1d7ba13 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe4906a74 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5abcbae dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe66489a0 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xefe94e7c dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf5ee0fd0 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x134fc00c dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x369be42f dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xbce86fcb dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd1f014f2 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd3b80a89 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe460d7cc dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xeb43d0b2 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd0d2e79d af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x38237b35 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x54e4bfe7 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x563439ae dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x614138b4 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6f334a02 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x75b10d10 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7c335483 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x838ea94e dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x925b8bc7 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa39c3442 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd077241b dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xc8c0feaf af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x59b329d3 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x92e71194 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xddf59c49 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x72a16399 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x51016fa9 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x99cbc3ca cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x32813652 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x33d11af1 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x584fcb9a cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x0237820a cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x820126fa cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x2e5535c4 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x5f266b61 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x61d2d1d8 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xbc455d45 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xfede6b18 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x35ea6f70 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7d8a8e78 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7edcf017 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9a46682d dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb3e69bc1 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xce9595bd dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xef56a67a dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xfff16d6b dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x8492b26e dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x0dde5e38 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x263644b6 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x720a173a dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x77da932d dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8800264e dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd142fd80 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x77684d06 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xcd96d1e9 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x12a76c25 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x30c5a040 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3d2628b2 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8eeec970 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9b66a147 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcaec2a85 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd524469e dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xfb0e7639 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0f084f2f dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1404178c dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x402f5b61 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4138d31a dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb56ae5c5 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc82da323 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd020526c dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdf798876 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf6d6ef09 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xfe4071d8 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xff36041e dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3ad17398 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x66231f8d dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xae1123e0 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xb5b19fd6 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x98fb6314 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xff715878 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xd771a379 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xf54be2e6 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xe2c6b99b isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xa0360c10 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x62e97cb3 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x06ed7e4e lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x954e1bdb lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x8179d696 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x158d1f6e lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xe0be60a4 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x52ab25a4 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x31b85041 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x15839c83 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x9c5b0773 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xa5773dcd nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xfc2d7e91 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xa6fcac2d or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x950450da s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x85feb607 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x234c106e s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x99e7ab6c s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x9d2f4160 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xac1cec02 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x9e948068 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xd4d7c69b stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x6de4acf8 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xc2f7444b stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x9e6db54c stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x6e3bcde3 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xc3905e31 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x6607c42b stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xbd253886 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x6833a4d3 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x005e9d05 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x42bffb98 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x21bb46ce tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x70f758e2 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x30c84023 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x59d9619f tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x23698056 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x65cbe35c tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x5bf56ce5 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x620b94f4 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xfd003756 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xc1a7a6ee tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x6b105f0b ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x06def019 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x6884b9c7 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x2a4f6f1c zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xc68cac7e zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xbc070026 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x436ed1c8 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x68a9d002 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x35af958e bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbf1ac9e6 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xdc0e5ddd bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x3e509d1e btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xf4dc5f1e btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cpia 0x294c6f66 cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cpia 0x952c4f8d cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2281ce0a cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x407e9f96 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x81d6dfd5 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xd2f15d55 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xfc65d4ed cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x352e26b0 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x5cc33ef3 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xb8c8c0c4 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xf735b11a vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x06c6aca5 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x36a3c479 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x7a561c8c cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x871cef9d cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8cb60311 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xbf9e719b cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2830ded1 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2eb5c033 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x59f47d75 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8ebce523 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xab75e4ad cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xede25174 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1a145f8f cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1b4ae621 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2a98ea11 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2eba9f82 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x39e5ed2b cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x40547a7c cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x45573eec cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4b55279d cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4d70e9a9 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x532eb494 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xad2ab8e2 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb5a32a2b cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbf2164a1 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2ba7451 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2fb3fe1 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd5a15197 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdd1a8cbe cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe4429bb2 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe62ca27c cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf0a3c87d cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf57fd871 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xff2fbd24 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x0a4e3e8c em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x28b05e2f em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x1491de63 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x15373bae gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x4ca5f0eb gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6ec084c1 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa690cca6 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xb8f27505 gspca_get_i_frame +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd4985bbe gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x199a0830 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x19b68031 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2e6db25d ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x304004ab ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4d1905ff ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7522523f ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7a689f13 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9e4b2adf ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xaa4ce0d8 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbc6691d0 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcd0b9f62 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x05580af0 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0eb5ccb7 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2f515570 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4eddb54a saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x829205f8 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x841a144f saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9bd61631 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9c7d1921 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa4fa3322 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbb2d87e7 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbe21e0cf saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xdbe7f5d5 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x24419dc5 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x4c2d4ba4 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x7ba0c0b3 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xe56cb778 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x38d00cf8 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xa695d1fb tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0d6c3add usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0fb32160 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x16f5b280 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x6fa1e3b5 usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xa3a86d54 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xc61115a0 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x7a6935a1 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x3abbbff5 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa49e61cb v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x774e16a6 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x89d237c7 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xb5ec28a0 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xed5a872d v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x09602f39 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x3e2cce04 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb7467e95 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc0a16d43 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc52d9f0f videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xd8a089f1 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x17a23042 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x29eb406f video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x32764905 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x36cca238 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x446c15b5 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x4bced313 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x569bb1bd video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x6f75561f video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xc966a324 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1c7d2449 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x4ef3ea38 videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x84d399fc videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xe50181a5 videocodec_unregister +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0c58e7d7 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0ec84feb memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1f7c49ed memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x34fa7cc3 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x491a043b memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x96ca8f9e memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa05ca53e memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xad35c218 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb7fa8274 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbba089f0 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc503e39c memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf97215cf memstick_free_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x006e88f4 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00dc217d mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x037d04a3 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0b8299cb mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0f60fe0a mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x148a8225 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1b3942e4 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x228bfb8d mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x282c12e5 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3b21f6b2 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3f2fbb41 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4210af4b mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x44d4bef7 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x533c1e26 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x566a152f mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6197e01c mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x744e0a71 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x77af40c1 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8f901258 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa8531e56 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbea59826 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbfeffb1e mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2daa8c6 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcb6ace8c mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xccca2830 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcf07987c mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd39a8fa5 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd56f53dd mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3cc5576 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x109eaac8 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1f5f0ee6 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x21634fd2 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x24ba8f6e mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x280c6d4b mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2a2ebda0 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3121b9f8 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x34f99396 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x35983b71 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4ce00813 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5b5fe0d5 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a6921ff mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x89c92ed1 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9af99a4f mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa1868e20 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xacd581fd mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb164671b mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbc053f6b mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc0406e1a mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc84b9d49 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcd7ce628 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xce748f76 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdc82d2cd mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe8bca8ac mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xefaff52d mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfb664130 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1b780ba6 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1d8cff8b i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x20ba385a i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x21492dd7 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x26a56cc9 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x37ebdbde i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4a7d9ac6 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4af62446 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4f1fdb0c i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5044b050 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x573f688d i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5c90cef5 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x607758b3 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6f0625a5 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9a23250b i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4a882c8 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc474417f i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd0d3df06 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdc0cbc62 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdcca9e79 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xeaa66da1 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf36a3c3e i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x193ee58d pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x39fd1da8 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2b8299cb mc13783_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3ba445f6 mc13783_reg_write +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x42240be1 mc13783_irq_status +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x4ef7deb3 mc13783_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x53f073d2 mc13783_lock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x65107301 mc13783_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x91e88829 mc13783_irq_free +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x92fb032c mc13783_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xaaa4dd0b mc13783_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xb979ac97 mc13783_unlock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe757f318 mc13783_reg_read +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xf95c2e21 mc13783_irq_request +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x890c3e7e ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xfc01b45b ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x0e43cf13 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x804befd8 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x6558c860 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xfec38845 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x07495056 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x211d0a80 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x3f5ceb5d tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x44cd2f30 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x6acd2b70 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x77be0a83 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8c38a19c tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x8d2b0087 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9b86a83d tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xe908bc03 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xea7014b5 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xfd4f4122 tifm_free_device +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x28926be3 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7cd723ce cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa727a07b cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xedb7ea9d cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0d543593 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x2de1c9d5 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7bf685ac do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb8dd9d02 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xeb706e48 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x8bb2e095 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xc631bed5 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0xbc68ca72 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xc28dc5c4 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x3ad12d5d mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xbc6f0c34 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe4c24577 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf7dc921e nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xc207e4c8 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xe6a475f4 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x227675aa flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5b24ed59 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x63cd4753 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xd2e7bbd3 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/8390 0x440994ff ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x52e91c7f ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0x530fce58 ei_open +EXPORT_SYMBOL drivers/net/8390 0x57746493 ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0x835278da ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0xb3eeb988 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xb704d5be __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xbcaf3590 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0xdad5d3ae ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xee5959ec ei_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00ad0a7d arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x32a65e98 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5b80803e arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8b920735 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8dbacb46 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa1b124f8 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa676510f arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc4551c88 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xcf4074df arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xef4ea7eb arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x6b097c0f com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x8c1f0808 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xaca70adc com20020_check +EXPORT_SYMBOL drivers/net/bnx2 0x28a3b229 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x740d9176 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0xcbd97a54 cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1350d100 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2383e74b cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x57d845a8 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5e77e812 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7e30ef5c t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x867d1566 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xacc1c965 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xae53be7c t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbcc7f42f cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbdfc84d7 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbedb6083 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc17f041b cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe0d88633 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe30272d7 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xea78e12d cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf74ab383 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0457c631 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x1f6692c4 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x25996b1c cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2a0fc225 cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x44c99c3d cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x670828a8 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8dee5ef0 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8fd169af cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x9fcbcf66 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa8342704 cxgb4_netdev_by_hwid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xaa369dfa cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc611b38c cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd7434534 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe62cfaf4 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3966676a hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xbc0354d6 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc442dc4c hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xda896cf4 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe66135cf hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x341c1ee8 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5c5c3832 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7e16745b sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8897f96a sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9395ac35 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9e9956d7 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa9e2b296 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbde501bf sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcfffa800 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe0a1e525 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mii 0x03859093 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x2e73e1bb mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x3548daf1 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x38dd31a7 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x8b30f075 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xb44e111a mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xc2bfbc21 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xf7053ee2 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x20269b18 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x36cc1f7a register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x6b18cbee pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x93b26227 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x27ed5f32 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x3a0c5899 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x75d4b03a tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd679de1d tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf152746c tmsdev_init +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x07364158 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x12dbb2f7 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1ca3935c detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2751f68f hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4fba2adc alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5271c0d7 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x54a5ce3b hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7684ca33 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7e54eada hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe34491fa unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe877507c unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xc0b344c7 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x0b355881 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x6cfe849e init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xc9e214cb stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1815f79a ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a9ab94b ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1e9fd437 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x90903861 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x20c194e3 ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x45752b41 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x68b9c8e7 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xab75927c ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xba7a2f8d ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe9c8064e ath9k_cmn_rx_skb_preprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xeffef22e ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0308e8df ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x173d0ed8 ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1adae6a4 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1dd22974 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2353c75c ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23b07776 ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x245dba63 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26330ebf ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b658949 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b7bed45 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2fa20113 ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35e77490 ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36668507 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b43ccaa ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eed28a5 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f147be5 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x484f2cac ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x489085c2 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49811e7a ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4990e06a ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b713468 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b722699 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c8066bd ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4cb1aaef ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e4ee6b2 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f6acf3c ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x529e29f8 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x533c0143 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x566a6ec9 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56a951a5 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56f80d8b ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5727e8b9 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5728e619 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x58b9ca46 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x590ec2ad ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5bcbe06e ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c0ea366 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ecccf83 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f9970c6 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60e71aae ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66f343fc ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a7e3843 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73cb0b3e ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7aa2e349 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ceb98f9 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80d33f44 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82eaf6f9 ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83b0cfbc ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x866a84ab ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x880b8613 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8db577ad ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8fdfe8d0 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bc400e1 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f42e37e ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa29ade27 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xacdf2071 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae1c3ca0 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0608ffe ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4296c79 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb74ce6c ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe0cf0c2 ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe810e37 ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf8b5a4f ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4d4bdbc ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc71c15b0 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7d84641 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca3f6e55 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1a7ceca ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd43c9861 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd63e92d9 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8ee9eb5 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda1ad850 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda8fbf6b ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbf3d72f ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfe491c2 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1450f8a ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe304e651 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe65e5a03 ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xebe1216f ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xecc3e050 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1074361 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8d526b3 ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/atmel 0x134478a2 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x20122882 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xc55bdf2a init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x05815336 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0d8fde63 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0da2b1b3 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12b4eb2d hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21e33edc hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2d76a3e2 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x328946e2 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3a91af76 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x459db54a hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4923162b hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4e329f33 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x573ce7e9 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5846dfb6 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x62c15c55 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6ada4504 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6b902656 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7a6f6e70 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8298af11 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9ba0332f hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xacb94ff7 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb3fa347e hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc3a7fe0b hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcd2f64a4 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd7dbe696 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf3b5f58b hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0949f1fe libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x10a01415 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x185ca23b libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2f74700d libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3b798f6d libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4092ca5f libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x423b349e libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x759d21b2 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x80f77e0f libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8335ecf0 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x90a2f23c libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x98e1dc6d libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa07051df libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa79b10b7 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa7d016e9 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb525fd99 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb66f5685 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc0fcd433 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xebe9647f free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf474da23 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf8e10b0e libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00a2a4d1 iwl_rx_missed_beacon_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01af828d iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x026ecb03 iwlcore_eeprom_release_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0efe4baf iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x138584a8 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x150e3faa iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x160fd34d iwl_tt_exit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x169ef0cd iwl_update_tkip_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18e4afd6 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a4c03fd iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d346273 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d6663fd iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d89d2ef iwl_rx_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1dd785db iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1eb94f63 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x20a2e6f9 iwl_dump_csr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x23f16cf1 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24619956 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24bcc670 iwl_init_sensitivity +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x276b4e75 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x312b87d5 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x34629d52 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35640f2e iwlcore_rts_tx_cmd_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x356a71ff iwl_set_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35bfbee8 iwl_set_hw_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x38310373 iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x38ec8512 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39e3ceef iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3b12d911 iwl_rf_kill_ct_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c1b9554 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3d3e6781 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3e89d852 iwl_sta_modify_sleep_tx_count +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40e53d5e iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x422fe75b iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x437d87d2 iwl_sta_rx_agg_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44ea7271 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x476957d9 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48606a5c iwl_tt_exit_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4973f5a3 iwlcore_eeprom_verify_signature +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a62641c iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a8d02ef iwl_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e21b677 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4f94df92 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4fefa682 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50424463 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x517ba903 iwl_ht_enabled +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5377ca95 iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x53f259b4 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x55e7b247 iwl_chain_noise_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5730c576 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57466dd5 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57dea2ac iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x581b00bd iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x583765b4 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5b894f49 iwl_good_plcp_health +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c5704b8 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d55f49b iwl_tt_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x601b2165 iwlcore_eeprom_enhanced_txpower +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x61543332 iwl_add_bssid_station +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62d228d3 iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63c123da iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x67dde537 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6958985e iwl_hw_detect +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c5a1199 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6e936686 iwl_tt_enter_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x75dfdcb7 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x77525415 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ab94f57 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7de25804 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8075621f iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x80f69698 iwl_sta_rx_agg_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x856433ac iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85f7ddeb iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x862c365b iwl_tx_ant_restriction +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86cb0438 iwl_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8969f792 iwl_set_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89fd20f7 iwl_dump_fh +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8ff021a8 iwl_calib_free_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x916e8df3 iwl_eeprom_check_version +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92b346b4 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92fd3f2d iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93e236cb iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x96cc0edc iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x98284c57 iwl_remove_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac93a4cb iwl_sta_modify_ps_wake +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xad8c92a2 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf2da7ac iwl_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb092f24d iwl_mac_beacon_update +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb18e65c5 iwl_restore_default_wep_keys +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb77b4e71 iwl_sensitivity_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8a2871e iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbd743d27 iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc04ed39e iwl_reset_run_time_calib +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc57384a8 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc57a9878 iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc5c4d64d iwl_setup_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc79a6500 iwl_send_calib_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca458cbc iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcceb919a iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xce028382 iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf8067a9 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd0f865d4 iwl_toggle_tx_ant +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd6867434 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdb37e7d5 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc2c4a50 iwl_set_rxon_chain +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde2ff919 iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde75067b iwl_remove_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdea2b9c3 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe409d591 iwl_sta_tx_modify_enable_tid +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67856e1 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe769e91c iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8d4eb41 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec9bd5cc iwl_tt_handler +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xed036024 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xee1792e2 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeef6843e iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf1ef436c iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2d0f90f iwl_eeprom_get_mac +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf35d71a5 iwlcore_eeprom_acquire_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf44d4a00 iwl_verify_ucode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf59feab7 iwl_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf65c8f98 iwl_reply_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf87f1c4d iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf96a4797 iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfeef0203 iwl_free_tfds_in_queue +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x00d5e2da orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x10471776 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x29e993f4 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3e6718b0 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4582b47d orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x51eb8b22 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5ab62990 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x60759065 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x625c85ab orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x704c6433 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x70fd262d orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb46d43f9 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd5880ade __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd6016490 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdd19d70f orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf9b9e8c4 orinoco_if_add +EXPORT_SYMBOL drivers/parport/parport 0x0a7ff7c0 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x11588877 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x13d5d868 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x204fad27 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x3151e58b parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x31f81a61 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x331ce6bc parport_release +EXPORT_SYMBOL drivers/parport/parport 0x374139c3 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4ef26575 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x5346c296 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x5855cd81 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x5c8c89ba parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x5fbd5b2e parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x702eadb0 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x72174726 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x766d590f parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x76ae43bf parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x77a4006d parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x78bcb849 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x7a733bba parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x85b52c77 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x8b350f5b parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa78ec4ba parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xd129fc15 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xd20c3a0d parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xdae4c74e parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xdd271535 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xdee8f9bf parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xf43155cd parport_write +EXPORT_SYMBOL drivers/parport/parport 0xf66eb9b6 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport_pc 0xf1f3e7e5 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xf91e2179 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0ffd6121 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x13c0c3ab pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x32fa4c55 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x40d3d7d9 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x606c606b pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6a38eb4b pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8ad697e1 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8b095f60 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x979361ac pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa6e46fdb pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbd8123c9 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3224141 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd2865b6a __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd43ca239 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe3dd6205 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xecd71a86 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xefd6cbfd pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x68e64109 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6d217098 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fb55f58 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa207c69f pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaa92ca78 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb42e9b30 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd8880aa3 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xea6e940f pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf70c545b pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfe732285 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x1ad84eef pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x496136cb pccard_static_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xc88ecee9 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0d00d12a fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0e27a893 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x23ba942c fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5e21c63a fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x82a72700 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x87d4635c fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb7bf2def fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09fa468a fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14b08093 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14e65e1a fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16a8caa5 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1df4e40d fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2061ec1b fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21717ab8 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24ede91d fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x350ca179 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x39681e80 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3a4033e3 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4188ba03 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x41d477e9 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x510c5b7c fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x530ae3f8 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x60143337 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66da9d8e fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6cfc734b fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e6c6e89 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f8c48d1 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x74a1a6a5 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x86ca33c9 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8cc73275 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a9fe083 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ca055ea fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ed7e969 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f1e3a78 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaa452552 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0140f95 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1360829 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb6bbd900 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb81f0bab fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc46012da fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce6cb4a9 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce70158f fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce9fb6fd fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd713af09 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd8b14ac4 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd99836aa fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xda2289bc fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2554f63 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xec94eabd _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x55240534 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0093c452 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06703b46 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0cfcc011 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0f8d3e38 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1a056cb6 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1a334aaa osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x243324b2 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x25760af5 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2c5acaa9 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3878fa6d osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x40da47d8 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x41c20ece osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4288bee1 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4f5b96c7 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x54bfe028 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7081d1f9 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x73a38af3 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x74f37fa9 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7efe0d40 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7f3f8f6e osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8433c3ed osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x95990ed2 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97605cd4 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x998abe0f osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa0b8eca0 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa63101f3 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa889e48f osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa9544a83 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc25b67ed osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd40334bd osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd5aa5756 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdf0eb5fe osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/osd 0x0ba3bac7 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x4c8d3fec osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6ece13ac osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7d08ce9e osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9fa4206e osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb352df08 osduld_put_device +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3f31051b qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x48ca80ca qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x58af1b93 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb8153151 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd0d71a21 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe56b7ae1 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x573816f1 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x790ee396 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xbdb123e4 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2040bb9f fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2db752ac fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x31d930d3 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x336e759b fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3e17c80e fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4ce07ef9 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5a5f1a31 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7d8e59a3 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x952488d5 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9bb6617c fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd2cd8555 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xde9f9adc scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfa0b87df fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x05469f53 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1abe41ae sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1bbcfd89 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2d412273 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x30d34e90 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3325b44e sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x334c29a0 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x46365bf7 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4891e20a sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x50e0764d sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x52624772 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5f17ea66 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6120eae3 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x630f32ae sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x669e880e sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7830a7ec scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c15012b sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x85798512 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa80b66f5 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb23094f4 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc7e74bc5 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd99728c sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdf29f4a2 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf9a2e1a3 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe1ca92e sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe7d412b sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x1c3d6cb2 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x277bc0b0 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3df6ed7d spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xe47eaa7c spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xe5132b29 spi_dv_device +EXPORT_SYMBOL drivers/ssb/ssb 0x0b21ba1f ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x20ff2aa4 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x2cac3715 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x40f2414a __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x45930fbc ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x47782225 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x4f2de613 ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x5145b879 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x57504500 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x5a901121 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x5f59aa51 ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x6b76ab82 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x7956f0a1 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x7c570f45 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x7d4a89a1 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x847b8e65 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xbac52f63 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xbe79de99 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc99589e5 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xcf62c217 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xec8c8bfc ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xfee532a9 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xff987651 ssb_pcihost_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x00296220 comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0ba27b93 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x5f7208af comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x71796b38 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x79fdcb34 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8724e143 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8b8fa62e comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa4169689 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc48151a0 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc5e8767b comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc9631831 comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb05e99d comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe31f46af comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe45fd4b4 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xed1309ee comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x23ffad83 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x69b704eb subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xb26afb2b subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xf7d04ef3 subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x19d7303e cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x2522f0e3 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x34545ecb cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x39e7af18 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3c4883be mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3cb79c39 mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x47ce42e9 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4956cadb mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5e68dd06 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6906ece2 mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6931db6b mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x695ddabf mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x721405ff mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7f9d008b mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9771dd9d mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x977560f2 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x983c8961 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9cd5996a mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9f25b97a mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc90ef542 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe79d6d14 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf11acbd4 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfcccebdd mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x1cb5b41c subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x7c91ccd8 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x7e4a077d subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xc4111177 subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0xff01ac8c comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x24028c0e comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x4d41bcab comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x66a0a06a comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x6ff9895a comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xb603c6d6 comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xd3cc1d3c comedi_close +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x034962ae cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x147bec08 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x167de4a9 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x2eaa21a0 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x2f6449d6 cx25821_dev_get +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x588108ea cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x5dfd02be cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x9039246b cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x1902e3f4 go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x8ed15fb5 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xbbdc069a go7007_snd_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xbfb9bc3f go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xcb87327c go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe0a37e95 go7007_read_addr +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe8c3825a go7007_snd_init +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xea51e537 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xf1e2e4ca go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x69679c04 vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xe4597365 vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0477eaff __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0cb2e95e iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1753d77a iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1bae256a iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x23e2149d iio_read_ring_bps +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x23f43b73 iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2c7e8071 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x333ee519 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x356a00f7 iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x35dcfbe5 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x36579e6c iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3927d2a4 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x49fd6502 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5eef6ddb iio_free_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x72b2d80c iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x77e43de2 iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7d82851d iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7edf6482 iio_get_new_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7fb3698e iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x89348e82 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9120d717 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x97026074 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x985fff58 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9a5f7475 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9ce372db iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa1076e05 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa364b369 iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa4325651 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa7f5dafd iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb0ebdf51 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb3f89f12 iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb66aa76a iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb7c81b35 iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb9be22cc iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc33f9990 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc544f1e8 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd66abfcf iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdc740988 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe0158144 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf5a41ad8 iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x02c6caee iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0af30ce3 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x226fbbe1 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4136ac28 iio_set_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4c44b163 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4f99e1ff iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x5448149f iio_get_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x761a67cb iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb60ed9e1 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbf7206ae iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc7e6a04e iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xcd83c31a iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe9678793 iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xa4e82d87 pod_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xb008b37f variax_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xc4f2fe4e variax_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xe4a131e9 pod_remove_files +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x11452eff rar_reserve +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x785e5269 rar_release +EXPORT_SYMBOL drivers/staging/memrar/memrar 0xd0382ff3 rar_handle_to_bus +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x0072de2f rar_get_address +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10a7985a ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x12a1c5a2 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17ea1c89 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1a25bafd ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1a34b74b ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x201102e0 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20e47ef5 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x242566fe ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x256d2456 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2af37648 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3098ce55 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3142f53c ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3387399a ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42d14329 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a243935 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4ce335a6 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4feb943d ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x52aed9a1 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5789d033 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x599acbe0 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b45c70a ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b563c96 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x64de674d ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d54e58e ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71eb483e ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x72ec057a ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7758644a ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f4c4cb2 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x87326433 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x88f8b28b ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8afeef73 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a07cf15 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9ad2c13b ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9caf479b ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9fdc56c3 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa2499c96 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa559d0c0 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa9e97de8 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb6d341cd ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbabdd330 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf97801b ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc3afacfa ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc82bbe60 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd2fb531a ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd3e89128 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd44a4181 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd8ebf3ca Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde3099fd ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe83f6345 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecfc96f0 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeec2d94e IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xefe9e7a5 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf64d12de ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfc768ab3 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x41c3497a tm6000_register_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xb3ece4c2 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x047f8b85 vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x0575a973 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x11b8b0f4 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x2da6b116 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x3fb712ce vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154 vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x5d150e74 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x5fffd071 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x684c76d3 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7754663b vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x86f484ea vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x8b851f35 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x8bbd078c vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x96e8825d vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x97e340eb vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9bacc655 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x9d279035 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xa6bd2e26 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0xb9d0fc37 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xd49852c2 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xeaad9ff4 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 0xa462eb75 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x39e3cb50 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x6ebf64c0 phone_register_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x0535f634 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x752cd160 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xc10f8277 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x5e4e7c37 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x13ee4f94 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1b54a125 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1cbf006c usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x656f42a6 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x72bf4081 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x791873a2 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x829a2acc usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8560ba95 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x954c44e8 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa2644f81 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb65d7639 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xca6f55a4 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcece3786 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf46005da usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x250ea57a usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xe2e22597 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x38feb6af lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xb454a44f lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x153ecf79 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x436a9bba cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x67cbc967 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0xcf58333f cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x1f6c09b9 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x23b2a137 display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xc295ff7a mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xae3f8d09 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc9078d39 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xfe7c7199 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x5c4e15f4 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6be8b06e DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc5b95e88 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xdbfe68f2 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x2c558548 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xd2360e8b matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x01255f23 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xbcfea9a3 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xcc1fbb86 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd3565606 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x07f2ce42 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x981068df matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x7bd14bd9 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x8224af47 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa3099a1a matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa873d2bf matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb93816f3 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xdfab01c7 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x694e0f9c video_output_register +EXPORT_SYMBOL drivers/video/output 0xddc3fe36 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x15dac265 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1bf41060 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x903e607e svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xbb938d9e svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xd62602e4 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xdd038256 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xe9de61ed svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0xd4eba4b0 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x673144fd sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xcfa7265f sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x3d1ad6cf w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xa578bc8a w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x3d3ff1e3 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6765d388 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xbf1a35d0 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd0e625b3 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x16718449 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x178d2dac w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xa8106045 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xf8aad39a w1_register_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x0ebdb6c4 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x0f69e26f config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x0fb0b3c3 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x44cd54ad config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x5bb17d99 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x92fc864a config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xaa02c70f config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xb15302ed config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xd2462a53 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xd27d9492 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xd3a4c9f8 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xfa43359d config_group_find_item +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x292efdc8 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x298e4e0c __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x2be17204 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x44ecfd3c fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x5b3721de __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x5b687cfc __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x5fe2c604 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x6944a15a __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x780ee8b8 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x7a70502f __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8d6d33db fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xab1a79b7 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xc08d1630 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xc74c0c00 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xc80f8fa8 fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0xcafc020c __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xd6923e5d fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xd99eefa8 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xdd56964f fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xdf554557 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xeaa494b8 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xeac42ff2 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xeccc6d41 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xeee0d5fc fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xef9a7b22 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xfd901469 __fscache_unregister_netfs +EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/quota/quota_tree 0x241902f0 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x499ad0fd qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x7b46946b qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xe13f8e5e qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xf55e7606 qtree_delete_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x12b9b7be lc_reset +EXPORT_SYMBOL lib/lru_cache 0x1730df11 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x3300b71b lc_create +EXPORT_SYMBOL lib/lru_cache 0x6676121e lc_get +EXPORT_SYMBOL lib/lru_cache 0x7956b0f0 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x79e974c5 lc_set +EXPORT_SYMBOL lib/lru_cache 0x7d40a63f lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x7fca3b45 lc_put +EXPORT_SYMBOL lib/lru_cache 0x9496a4e8 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x96d83587 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xbeb91553 lc_find +EXPORT_SYMBOL lib/lru_cache 0xc46dd3fa lc_changed +EXPORT_SYMBOL lib/lru_cache 0xd544d04a lc_del +EXPORT_SYMBOL lib/lru_cache 0xe3ebb5a6 lc_element_by_index +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x0f784c15 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x784f6347 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x06b0ee76 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x07d75f18 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0x19b4857e p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x25858d8d p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x2e303f96 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x339747f9 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x3476e63d p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x370524cc p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x467fd093 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x46f80520 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x4c69d99b p9_client_version +EXPORT_SYMBOL net/9p/9pnet 0x51bb5e39 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x6a1f7762 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x6f6d72e3 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x7d8b7bce p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x7d9551dc p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x816356a1 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x8ba823ba p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x9c831e88 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa75932e1 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xacfbf022 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xb08bfb69 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xbbccabec p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xc046e11f v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xc993b3a1 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xd644b420 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xde59b37b p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe87bc9ec v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xf1364f05 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xf71b4e42 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xf8bcceb8 p9_tag_lookup +EXPORT_SYMBOL net/appletalk/appletalk 0x0ffa1a4b atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x463f51e6 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xd3c6c9b4 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xf5917953 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x36fdeec2 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x3c8ca358 atm_charge +EXPORT_SYMBOL net/atm/atm 0x98ac04b9 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa6a1753b vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xa940afa4 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xa9e99546 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xae96dbf9 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xb101452b atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xdbf1a6c9 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xe799de66 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xff582d79 atm_dev_register +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x1ba3cfad ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x4ca0cdc3 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x7b2f0e28 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x7fcc9957 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x8e7d8bef ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc3e6c3e0 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xcd956fcb ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdb4637a6 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xe579c251 ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x033679a5 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0a3aea51 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1070224e bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x10f6f7fc bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x14c9ab01 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1ab637d9 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2acb09e9 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3dd52a94 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4948a56f hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6144b35d bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x61f0f95a hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6dacaba6 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7590f6b5 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7cd2b418 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x89f5452e hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c8ed4bb hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa1670df3 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xab2e9bfd hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xab5b5504 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaba9269e hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xadfab291 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf659d6b bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb8d837b6 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb8e3e84d bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbccc11cc hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcfa8b21b hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5767218 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd99a2a84 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xebe8ad1e hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeef66774 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf376646c hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf926d704 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x1f678c21 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x036fd513 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd2d8ac3a ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd8ecba7f ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x05afd6a4 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x1a3945a5 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x2976e5f7 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x304adbdb cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x31b99d04 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x39752116 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x487a3f67 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x49023f78 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x4a453259 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x4bbdc278 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x4cae0b93 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x5596c67e cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x5fd634a2 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x61c31df7 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0x692fa9c7 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x696b037c cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x69fafc2a cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x6f6066c6 cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x75a0d41d cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x92b0fcc0 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x9821be5e cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xa2afadef cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xab93eb44 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0xada8453e cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xb0f1ca9c cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xc646df70 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0xca513c1f cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xe17ccc1b cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xf72efccb cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0xfc36ad28 cfpkt_more +EXPORT_SYMBOL net/can/can 0x0ecbd62c can_proto_unregister +EXPORT_SYMBOL net/can/can 0x1cbd5ce8 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x481a4cb8 can_rx_register +EXPORT_SYMBOL net/can/can 0x574089ed can_send +EXPORT_SYMBOL net/can/can 0xeafd5548 can_proto_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x45c73264 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x51970bc2 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5e58c772 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x670a5141 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8127db83 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x812a5c6f wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x817c2b85 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9a54d9bc ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9ab60743 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbf664cf6 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc19dd208 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc6b098dc wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xec327219 wpan_phy_for_each +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd0a97e62 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe224faef arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe7534893 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00b5c436 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x8213ba1a ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x8d6bea3e ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x07f07bc2 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0d7e7a73 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x12e69f0b __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4ec46f1f nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x50d07b0f nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5a9b1c41 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd61f7a1b nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x67a49035 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xb836fcea xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x07d09577 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3968112b ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x88cf357a ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb643a5d1 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0xc73966f0 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xf293f6c2 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x3cc79009 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xa42d4fb3 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe650a7b8 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x092e6e97 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x28e1a150 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x30d69088 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4b8f23a2 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5a9f4841 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8f135cf6 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa19a2d66 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbadbb4f7 ircomm_connect_response +EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x1a7e1625 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x273abf2a irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x28b079a2 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x3538349f irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3e5e8acd proc_irda +EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x4626aa4a irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4a89f833 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x56e103b8 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x68bcc8e0 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x69afc313 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6bd6352c irlap_open +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x74700982 irlap_close +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x851439b7 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x90d5766e alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x92372e26 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x9617d1a8 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xae032335 iriap_close +EXPORT_SYMBOL net/irda/irda 0xb865e522 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xb8c322c7 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0afc887 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc5ede59d iriap_open +EXPORT_SYMBOL net/irda/irda 0xd06e7530 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xd23610dd irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xea886a95 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf26ad456 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xf3de1ffe irttp_close_tsap +EXPORT_SYMBOL net/l2tp/l2tp_core 0x0931e1e2 l2tp_recv_common +EXPORT_SYMBOL net/l2tp/l2tp_core 0x891d7ae6 l2tp_tunnel_destruct +EXPORT_SYMBOL net/lapb/lapb 0x0d152461 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x1c630684 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x60efb508 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x78490693 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x83d5e3fa lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x9e0e82e0 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xc7965eb0 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xe622b0b5 lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x068c823f __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x07780644 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x0d6d1c3a ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x288d0984 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x29804207 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x406005e7 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x4765f4e3 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x4aefaa95 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x4afdd6e8 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x51d9b1f1 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x5842c8c5 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x59242524 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x5c29a900 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x6dccd0de __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x74537799 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x791c8b8a __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x798dd764 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7a762653 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x7bcc4aad ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x8d3783bc __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x8f48b1a3 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x9bce1a3b ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xa02434be ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa14e2005 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa2af7dfc ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa3f354ba ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa9e7c79a ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xb35f9309 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xc9dde591 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xd8463ac4 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xda8c82de ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xdcd7da6f ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xe558a468 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe947e988 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xee5b4736 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xee8c7d74 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xfdedd846 ieee80211_register_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x02228403 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3da22a33 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x40de24dc unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4ddc87d4 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x632cbd11 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x746af0a2 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x74f740f1 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x77a96abc register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x85111a43 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8d51ccbb register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9ac18b20 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x37a60913 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xbc72deeb __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xd078a8b9 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x182df34f xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x42175d30 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x594115f9 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5abbca2d xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x80f7bfee xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x881c0209 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xbc038b6d xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xc1ef992d xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xc330b200 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xe39256a3 xt_unregister_target +EXPORT_SYMBOL net/phonet/phonet 0x203dac5e phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x22918010 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x2f9ab663 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x61fe7678 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x717d4917 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xca47cb9a pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xd81810cf phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xf93b26ca pn_sock_hash +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2d9fda8b rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x323e13a6 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x332c2642 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x40f80093 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6da58b84 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x77aab967 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x81fed087 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9fd14ec8 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xabc979b9 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb1f3df30 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd06ef790 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd1611d82 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe75bf58c key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf27e5816 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf85b97ae rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdf70d7d8 svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x1ddb46fa tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x5d8a491e tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x70e34716 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x7d08133f tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x8140afef tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x8717f94e tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x87a8e015 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xb5d41ffd tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xca2570c9 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xd2c33398 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xed1c7462 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xfc11a648 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0xb850281b wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xe2a55dcd wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x00701304 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x0109eea0 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x02e9ce0b cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x0817ec85 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0be7ebc3 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x10d77bc0 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x18654ae8 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x21f214ca cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x26090213 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x28c721b7 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x31563964 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x31e0e998 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x3522e102 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x400b66e7 cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0x4df6b866 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x51f3408c cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x529c0b0c cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x53e36c6d cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x5604733f regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x61663ceb cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6a914c16 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x713d4563 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x74d677b0 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7dcec55b __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7f76a59b wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8207ac9d __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x8569715a cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x8a6cd1a0 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x97dd46d3 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x989d3533 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x9a393558 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x9c2d5910 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x9faaa98f cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xb286192e wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xb6cdd209 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xcdd0a69e ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xd3017438 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xd9bf2677 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xe26c3352 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xe9044c59 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xea6af4c8 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xed0a3e67 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xff6f1b8d __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/lib80211 0x22e67479 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x31d5976f lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x375649d7 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x63310733 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x827460f2 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0x9d54e352 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0xd3b190db lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xff6a2aba lib80211_crypt_delayed_deinit +EXPORT_SYMBOL sound/ac97_bus 0x9452b9c4 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x01a65ee4 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x03b2e13b snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x86f58123 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xffa4a741 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb5bf18cb snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xe44e4e36 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xc25e4b28 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x014fb73f snd_device_new +EXPORT_SYMBOL sound/core/snd 0x04888173 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x1155bee2 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1b828afa snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x1f3c1d86 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x20a23d79 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2566175c snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x25803879 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x3667c980 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3c9bda32 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x405d0d1a snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x4152b19b snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x42d30573 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x4346c885 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4ecc3a20 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x546f1b2e snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x54caed48 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x58aa5007 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x5e5d7b19 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x5f26749e snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x6820432d snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x685bed3a snd_cards +EXPORT_SYMBOL sound/core/snd 0x6bcf212b snd_card_free +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x7c02e9e7 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x7c4245d1 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x7e99da09 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x8016ad79 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x856e0cbd snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x94ae6cb9 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x9c71b6ac snd_card_create +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa9d770b8 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xab5ad110 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb3c080ad snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xbf0b2324 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xc3ff1e22 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xc8537719 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xcf97b3d2 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xda3c7485 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xdcdea6cb snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xdd5aeb1a snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xddf3fbd5 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xe0469506 snd_device_register +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xf73d7d77 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xf817ad36 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xfcb2c687 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd-hwdep 0xa76a4c8a snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x03bede4f snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x071ab525 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x826ffcea snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x89a3f2f1 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xadf1627e snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x025fbad7 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0d92c0f4 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x0e28be67 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x1345c958 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x13ce3d42 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x1c06cee5 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x20f8eed7 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x3167f504 snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x31880cf0 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3b60b79e snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x4013572a snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x42b0c30d snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x473b4446 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x4967fe4f snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x54be8c17 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x5bfec1c4 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6bce825d snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x6deba28a snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x6e685353 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x7176823e snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL sound/core/snd-pcm 0x723bfc7c snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x756cfe9a snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x7ab7a13d snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x7b339cb2 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x7fa084bd snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x887d7efe snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x8cd44d9c snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x8df7a157 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x94834d2f snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xa56fa0a7 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa89d1148 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xaea7fa14 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xb02b7d84 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xb5abb6e4 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xb72e90d1 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xb73d7bcc snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xb9219adc snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc4202e08 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xc504c371 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xc77b96c9 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xcbc3e938 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xcfc93643 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xfe5665b0 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0e112605 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1faafb19 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x24285348 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4e62ae06 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8b4111e7 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8e6bc106 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x97786b9a snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x99247ca8 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa4bf268e snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb59e7f4d snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd29b57f7 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe7707b9a snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xed0e401c snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf4d87322 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf5277bb4 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf5aacd53 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfbf85b7e snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-timer 0x03ce5dd5 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x041da23f snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x0486743f snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x0576b96f snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x09e90208 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x0a9f6898 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x2a8050c5 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x6b60ffd8 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xa036043c snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xad037b26 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xba114c61 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xc13aadf2 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xc567364e snd_timer_pause +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x11e7bbcd snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0038caaf snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0afda53d snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x31ba6d1b snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x51cd3af1 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5b505119 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x684fff24 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8f5aa34e snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbe0a3bf5 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf5fb85da snd_opl3_init +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0c6b5d14 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x168246cf snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x43d8ee37 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x490f6466 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5eab00e5 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7b407040 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc6b0ea5a snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd721904d snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe19f2d99 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1e36bbe2 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4d689326 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xbc1a82d7 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdefa01b5 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf8d0a461 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xfe0cbb5b snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4358ba0b snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6aaf13e0 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x763f48d4 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xbd40a365 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xdb4e89c5 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf14f96fb snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x0a32c054 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x554a875e snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x94830176 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xc1d72194 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x5a3f2815 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xcd84ff4b snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x0738b9fe snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xf71b05bf snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x07d59388 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x399854b9 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x67a50365 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9a5373cb snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xbcf7d9c1 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x175a94b0 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x1f148927 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x52305440 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x839dedaf snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa466391a snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc355b64e snd_i2c_device_free +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x111a9a3d snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x140ec28a snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2d6c219d snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x592dac31 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6c6d3d1d snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x75264c2b snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8c508155 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9e730ff9 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc649815c snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xec0f3510 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x0c552345 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x2285f868 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xa641e07a snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x003c5504 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x02a63df7 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x03b86edd snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1044655e snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1b43f300 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1dbcbbee snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2688db21 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x280136cd snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x745f9031 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8bee6443 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x940c4dee snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x967712d5 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x98750952 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa0141458 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaaf1797f snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbfac982a snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfb6f7810 snd_ac97_write +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xe9393b5f hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x185667bd snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x20a4935a snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x32838cea snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4cca2481 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x58d34773 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x59993a6c snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9c46b383 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xdfe52dca snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe45f9458 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xdc11e7fd snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xaa455d6e snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xe0bd60d7 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xea0ce861 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0fdee06b oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1091d4d9 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1df57e23 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2a43c520 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2f76cd0f oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x34ac937b oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x513dbea3 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x55510ecf oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5e3ed0ea oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5e4d92f3 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x61512524 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7004cdf6 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8765aec0 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8805fd33 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa20bf853 oxygen_default_i2s_mclk +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa269bbcf oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa4b4d411 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcfe14585 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe89eca37 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xeccefbf2 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xecdb3265 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xef3cc418 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x0b900487 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x22f9744c snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x312ed695 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4700196b snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xd9bba7a2 snd_trident_alloc_voice +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0xd23604c6 uda134x_dai +EXPORT_SYMBOL sound/soundcore 0xfe8a023a sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x85187f2a snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x935a2850 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xcb37cc25 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe3cabed9 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe770482e snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe8970715 snd_emux_register +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1bb7a237 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x419149c3 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x453303d9 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x515cadf2 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6fe1bb3f snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb99a20be snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc0ba26ef __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe76d5a2b snd_util_memhdr_new +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd5c61e38 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x5560f9cb dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x5e729732 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x63b889dd dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x7248325d dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xbab7c581 dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xcf5050fe dm_mem_cache_free +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00170fe2 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x001ef709 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x0028bde1 thaw_bdev +EXPORT_SYMBOL vmlinux 0x002e2437 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x004e7639 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x006c016a tty_check_change +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0080a0a6 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x0082769c cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x0094d65f vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x00aa4e8d cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00c36902 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x00c9ded6 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x00ce14ba register_snap_client +EXPORT_SYMBOL vmlinux 0x00dad6b9 kick_iocb +EXPORT_SYMBOL vmlinux 0x00e265e1 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x00ea8a65 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x011e31ab dquot_acquire +EXPORT_SYMBOL vmlinux 0x011fc38a key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x013fd38a xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x016a08fd rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x0185d777 blkdev_put +EXPORT_SYMBOL vmlinux 0x018f1ee2 napi_complete +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a6ec9f default_llseek +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01c6815d __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01dcfefb acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x01e2c10b xfrm_register_km +EXPORT_SYMBOL vmlinux 0x01e7fb18 serio_close +EXPORT_SYMBOL vmlinux 0x01e8961c sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x01ee2b5c pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x01f0204d mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0234cc54 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02c30a7d dquot_destroy +EXPORT_SYMBOL vmlinux 0x02cd2f03 unlock_page +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key +EXPORT_SYMBOL vmlinux 0x032c66ee mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x0349dd29 ida_pre_get +EXPORT_SYMBOL vmlinux 0x0353147c blk_fetch_request +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0395f439 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x03b2fb45 arp_xmit +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03cc413a xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x03d26277 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x03eac609 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x040dd02e iput +EXPORT_SYMBOL vmlinux 0x041e9f05 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043941d6 __ps2_command +EXPORT_SYMBOL vmlinux 0x04612e98 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x04763a75 blk_insert_request +EXPORT_SYMBOL vmlinux 0x047d4895 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048b37d5 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x0495bc1e register_con_driver +EXPORT_SYMBOL vmlinux 0x04c2ec11 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x04d44a62 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x0504510c tty_shutdown +EXPORT_SYMBOL vmlinux 0x05224c62 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x053373df bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x0549ac06 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x0568a9d6 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x05a9d2ab inet_listen +EXPORT_SYMBOL vmlinux 0x05b98d56 replace_mount_options +EXPORT_SYMBOL vmlinux 0x05da84a1 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x05e28d43 __first_cpu +EXPORT_SYMBOL vmlinux 0x05f0c26b jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x05f29a5b check_disk_change +EXPORT_SYMBOL vmlinux 0x05feb22e nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061ca5ac mmc_card_awake +EXPORT_SYMBOL vmlinux 0x06255bf7 input_allocate_device +EXPORT_SYMBOL vmlinux 0x062e322b xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x06377f44 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x064e7192 nobh_writepage +EXPORT_SYMBOL vmlinux 0x066d3f6a tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06a9e056 bmap +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06bdc701 set_pages_nx +EXPORT_SYMBOL vmlinux 0x06c0c759 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06d90631 blk_start_queue +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x072508f3 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x072e43b3 brioctl_set +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x075e5fa1 locks_init_lock +EXPORT_SYMBOL vmlinux 0x076442aa slow_work_cancel +EXPORT_SYMBOL vmlinux 0x0766788d key_negate_and_link +EXPORT_SYMBOL vmlinux 0x078d5d0f __pci_register_driver +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b2148c tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07e9abfb serio_interrupt +EXPORT_SYMBOL vmlinux 0x081f14b7 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x084934f3 security_path_unlink +EXPORT_SYMBOL vmlinux 0x085a127c set_user_nice +EXPORT_SYMBOL vmlinux 0x085bd2a5 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x0893af36 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x08be176b blk_integrity_register +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08e5dbed pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x08e75da4 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x08f3776e journal_get_write_access +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x096600ed phy_find_first +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x097ff252 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09903e07 phy_device_free +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d11890 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09ea2bee netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x0a03125a wireless_send_event +EXPORT_SYMBOL vmlinux 0x0a03bf7d remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x0a085f77 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x0a1e91ba netif_device_attach +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2f6330 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x0a629384 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0aea3c98 vfs_readlink +EXPORT_SYMBOL vmlinux 0x0b0a2e8d sk_stop_timer +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0ed270 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x0b1855f1 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b20fce1 inet_frag_find +EXPORT_SYMBOL vmlinux 0x0b284022 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x0b4dd2ce clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b9fe69e qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x0bbda62d scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0c133a6b fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x0c15c7d8 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x0c46550b agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c74c845 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c97fd37 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca432df security_inode_permission +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb009ab jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d476e59 send_sig_info +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5ea6a0 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x0d83a191 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x0d89b1d3 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x0d9e47fb sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x0d9f4e5b ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dca51b0 scsi_host_put +EXPORT_SYMBOL vmlinux 0x0dce3841 vfs_readv +EXPORT_SYMBOL vmlinux 0x0dce8745 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x0de8747a simple_lookup +EXPORT_SYMBOL vmlinux 0x0def7c64 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x0dfda1f4 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x0e0ed6bc phy_disconnect +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e2dd4d9 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x0e3d2877 d_rehash +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e57d94e pipe_unlock +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0ea841f9 __page_symlink +EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free +EXPORT_SYMBOL vmlinux 0x0ec4dcd7 register_md_personality +EXPORT_SYMBOL vmlinux 0x0ed8a23c vfs_rename +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0f5d6b4d kmalloc_caches +EXPORT_SYMBOL vmlinux 0x0f739396 do_sync_write +EXPORT_SYMBOL vmlinux 0x0f7b585a rfkill_blocked +EXPORT_SYMBOL vmlinux 0x0f87f1e3 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x0f8a98a8 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb8d8c6 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x0fbd01e8 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff9c08a splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x0ffe6d7d serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x104d7125 padata_stop +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x1080464f jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x10865ad1 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x1094cb68 generic_removexattr +EXPORT_SYMBOL vmlinux 0x109fbc71 fb_class +EXPORT_SYMBOL vmlinux 0x10bac516 input_set_capability +EXPORT_SYMBOL vmlinux 0x10c370a2 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x10cbbafe __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10df97a7 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10fba5ec get_write_access +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x1110b56b input_register_handler +EXPORT_SYMBOL vmlinux 0x11117d47 fb_find_mode +EXPORT_SYMBOL vmlinux 0x1120ae37 register_8022_client +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1134d6ba ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x1190789d ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x1190b1f2 seq_putc +EXPORT_SYMBOL vmlinux 0x11a6ce7a __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x11ab89a5 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x11ba34f7 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x11d3852e sock_wake_async +EXPORT_SYMBOL vmlinux 0x11e06d18 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x11e8d6e1 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x11e94dda pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x11ea18ee tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x11f09313 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11f8434a buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x11fa33c3 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x120ee165 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x12281cf0 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x12356214 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x123939af pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x124dff8e inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x128bee76 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x12983e9f bdi_register +EXPORT_SYMBOL vmlinux 0x12abb885 clear_inode +EXPORT_SYMBOL vmlinux 0x12e0bd85 phy_start +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x12fdeb32 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x1306508e genphy_suspend +EXPORT_SYMBOL vmlinux 0x13162e04 skb_make_writable +EXPORT_SYMBOL vmlinux 0x1322277f xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x136c856f mdio_bus_type +EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support +EXPORT_SYMBOL vmlinux 0x137b53fd mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13bb15e3 set_trace_device +EXPORT_SYMBOL vmlinux 0x13bee55c journal_revoke +EXPORT_SYMBOL vmlinux 0x13d4c63a processors +EXPORT_SYMBOL vmlinux 0x13da9413 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x13e8bae5 ht_create_irq +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x142857c7 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x143559f2 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x145f8e6c __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x14a72141 dma_supported +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x14f5cda1 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x15043f97 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x1506b44d set_page_dirty +EXPORT_SYMBOL vmlinux 0x152202be filp_close +EXPORT_SYMBOL vmlinux 0x1534ba66 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1576eb3c mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x157a5b2a dev_get_by_index +EXPORT_SYMBOL vmlinux 0x159417da mdiobus_write +EXPORT_SYMBOL vmlinux 0x15a6fad6 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x15b35d92 register_framebuffer +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15e204d2 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x15e82918 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x160fa03f netdev_set_master +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16314984 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x16490dc6 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x165b4c91 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x169fa73a scsi_scan_target +EXPORT_SYMBOL vmlinux 0x16a62b97 sg_miter_start +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17175757 commit_creds +EXPORT_SYMBOL vmlinux 0x173cee67 serio_reconnect +EXPORT_SYMBOL vmlinux 0x1744ed13 dm_put_device +EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove +EXPORT_SYMBOL vmlinux 0x176d3c57 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x177e236c genl_register_ops +EXPORT_SYMBOL vmlinux 0x178558f8 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x178730a6 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x1789bfc8 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x17aa254a tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x17b39019 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x17c34405 tcf_em_register +EXPORT_SYMBOL vmlinux 0x17c7e56b xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e5f08a dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1820e67d ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x182d30f4 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18435b50 vfs_getattr +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x1855088e page_symlink +EXPORT_SYMBOL vmlinux 0x1855a0ae rt6_lookup +EXPORT_SYMBOL vmlinux 0x1866b0e0 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x186a7931 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x18716545 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x18777861 fb_set_var +EXPORT_SYMBOL vmlinux 0x188f6ad4 dquot_disable +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18a94385 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x18b0b80c elv_rb_find +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x190ab2b7 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x1913fda6 lock_may_write +EXPORT_SYMBOL vmlinux 0x1929efe2 journal_clear_err +EXPORT_SYMBOL vmlinux 0x1932622a scm_fp_dup +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x1940a44a directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x19683990 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x199e20a5 proto_register +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b16064 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a01b4ac mpage_readpages +EXPORT_SYMBOL vmlinux 0x1a2d3a5b mpage_readpage +EXPORT_SYMBOL vmlinux 0x1a3b76fc posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa89aef ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1c324 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x1ad4c78d blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b09ffcd dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x1b2bfcf8 skb_pull +EXPORT_SYMBOL vmlinux 0x1b54bebb register_key_type +EXPORT_SYMBOL vmlinux 0x1b5ab808 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6c897b prepare_creds +EXPORT_SYMBOL vmlinux 0x1b744f8b bio_split +EXPORT_SYMBOL vmlinux 0x1b7f1dd7 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x1b8b3ab3 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1b9feb87 d_delete +EXPORT_SYMBOL vmlinux 0x1bd2263d pagecache_write_end +EXPORT_SYMBOL vmlinux 0x1be9dc3a setup_arg_pages +EXPORT_SYMBOL vmlinux 0x1beb0d31 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x1bf369f9 kthread_bind +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c4b2a91 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x1c5bdfbc dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x1c663b38 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1cb999a9 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d300be1 input_register_handle +EXPORT_SYMBOL vmlinux 0x1d4aa8f9 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x1d6d8abe __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x1da8d644 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x1daa709d f_setown +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc593c0 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x1dc5cc4a xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e26ef4f dev_remove_pack +EXPORT_SYMBOL vmlinux 0x1e2e427f cpumask_next_and +EXPORT_SYMBOL vmlinux 0x1e55dd52 uart_register_driver +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7bcc2e i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x1e867c6c scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x1e88b9e9 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ec0d4e6 kernel_connect +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f0f4d82 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x1f2d63c5 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x1f3a4f9c setup_new_exec +EXPORT_SYMBOL vmlinux 0x1f4c5d76 bh_submit_read +EXPORT_SYMBOL vmlinux 0x1f5ab1a7 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x1f5e46c1 get_fs_type +EXPORT_SYMBOL vmlinux 0x1f8e1d69 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x1fc12356 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x1fc8051b i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x1fc90cbd register_quota_format +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd62055 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x2039bdaf km_policy_expired +EXPORT_SYMBOL vmlinux 0x206674c0 skb_append +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x207e107e register_cdrom +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20a5b848 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20f180dd alloc_fcdev +EXPORT_SYMBOL vmlinux 0x211ff1f1 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x2125b6d8 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x21591492 vfs_unlink +EXPORT_SYMBOL vmlinux 0x215e65f0 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2191cd25 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x21cb5f39 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x21d7fa34 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21f2b445 simple_statfs +EXPORT_SYMBOL vmlinux 0x220bd2b7 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x220da6e2 simple_release_fs +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22332918 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x223f84d4 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x224ac50f __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x224ce0f3 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x224f58fc sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x225ab156 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x22624145 audit_log_format +EXPORT_SYMBOL vmlinux 0x2268e6de elv_abort_queue +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2271b562 file_fsync +EXPORT_SYMBOL vmlinux 0x22772c34 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x227fcd85 mdiobus_read +EXPORT_SYMBOL vmlinux 0x228728d4 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a48c9a mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c9e734 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x22d73c78 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x22e08ce3 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x22e1d6fc block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x23254750 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x23284ca6 read_cache_pages +EXPORT_SYMBOL vmlinux 0x232856a2 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x2335cb95 tcf_register_action +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x234f85f4 abort_creds +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x2384757b dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x238791fd __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x23abbb6c nonseekable_open +EXPORT_SYMBOL vmlinux 0x23b61ab1 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x23b99e92 node_states +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23f01d57 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24011506 elv_rb_del +EXPORT_SYMBOL vmlinux 0x2424c95f jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x242acbca __scsi_add_device +EXPORT_SYMBOL vmlinux 0x2436313f pci_disable_device +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24508446 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x247ff471 touch_atime +EXPORT_SYMBOL vmlinux 0x2482f497 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x24d433c8 dev_addr_del +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x2513fb7d __ht_create_irq +EXPORT_SYMBOL vmlinux 0x251e6cf4 blk_peek_request +EXPORT_SYMBOL vmlinux 0x252e0f22 __free_pages +EXPORT_SYMBOL vmlinux 0x25481661 generic_make_request +EXPORT_SYMBOL vmlinux 0x2578e8df acpi_bus_add +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25a18a20 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x25a34959 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x25e5939e fb_set_suspend +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x25f1e228 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x25f54003 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x26061d11 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x261ad215 proc_mkdir +EXPORT_SYMBOL vmlinux 0x2637d513 __seq_open_private +EXPORT_SYMBOL vmlinux 0x26467b22 iget_failed +EXPORT_SYMBOL vmlinux 0x264e0a74 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x265d85be blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268e4f8e scsi_execute +EXPORT_SYMBOL vmlinux 0x269b69a6 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e1ec74 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x271d8211 write_cache_pages +EXPORT_SYMBOL vmlinux 0x2721ef72 d_path +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x273453fa single_release +EXPORT_SYMBOL vmlinux 0x274c203d netif_carrier_on +EXPORT_SYMBOL vmlinux 0x274e1e92 register_nls +EXPORT_SYMBOL vmlinux 0x27515bb4 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x2770b6d3 km_policy_notify +EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279ec90e skb_copy_expand +EXPORT_SYMBOL vmlinux 0x27a7332b fifo_set_limit +EXPORT_SYMBOL vmlinux 0x27b7aaf0 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x285455d1 vfs_fsync +EXPORT_SYMBOL vmlinux 0x285599eb qdisc_reset +EXPORT_SYMBOL vmlinux 0x28599d80 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x28693dcc mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x28733834 register_qdisc +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28e9934c find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x28eaf133 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x28ffeb03 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x2911ea4c kobject_add +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x293f383b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29682cb2 tcp_check_req +EXPORT_SYMBOL vmlinux 0x29860f6a blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x298a6aee hippi_type_trans +EXPORT_SYMBOL vmlinux 0x29a71db6 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x29b1e54b generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29e2cb07 cdrom_open +EXPORT_SYMBOL vmlinux 0x2a0de6a6 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x2a14a578 generic_permission +EXPORT_SYMBOL vmlinux 0x2a152a75 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x2a1c996c proto_unregister +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a45202d __dquot_free_space +EXPORT_SYMBOL vmlinux 0x2a4ddbce kernel_sendpage +EXPORT_SYMBOL vmlinux 0x2a50a0c1 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x2a57778f pci_find_capability +EXPORT_SYMBOL vmlinux 0x2a5e72e3 icmpv6_send +EXPORT_SYMBOL vmlinux 0x2a85d7cd d_move +EXPORT_SYMBOL vmlinux 0x2a9bc96f get_sb_nodev +EXPORT_SYMBOL vmlinux 0x2accdaa4 pci_find_bus +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b200d96 vmap +EXPORT_SYMBOL vmlinux 0x2b25ded1 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x2b2718f7 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x2b457c75 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x2b92c59d tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2be3c340 journal_load +EXPORT_SYMBOL vmlinux 0x2bef4fdb dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c4031bb dev_driver_string +EXPORT_SYMBOL vmlinux 0x2c606929 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x2c82294d dump_trace +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2cc92161 devm_free_irq +EXPORT_SYMBOL vmlinux 0x2cd6420e filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x2cd9d683 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x2cde19f1 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x2ce1dca5 dm_table_get +EXPORT_SYMBOL vmlinux 0x2ce9e966 file_remove_suid +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d193385 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d5e23e5 udp_disconnect +EXPORT_SYMBOL vmlinux 0x2d68b4b5 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x2d8493f7 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2da131fe jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x2da78d57 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd2de5d tty_unthrottle +EXPORT_SYMBOL vmlinux 0x2debf485 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e06111d cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2e250f20 block_commit_write +EXPORT_SYMBOL vmlinux 0x2e27fbc9 tty_port_open +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e5713ca dev_mc_flush +EXPORT_SYMBOL vmlinux 0x2e587455 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x2ea6ccd9 __nla_put +EXPORT_SYMBOL vmlinux 0x2eb242a2 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x2eb4717e d_find_alias +EXPORT_SYMBOL vmlinux 0x2ed26ea7 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x2eefe368 mnt_unpin +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f2386ed vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x2f2e3d67 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x2f3933de jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x2f3be85a blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x2f4deeb4 inet6_release +EXPORT_SYMBOL vmlinux 0x2f991ed0 fsync_bdev +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fe1c4fb bio_phys_segments +EXPORT_SYMBOL vmlinux 0x2fea718f nf_hook_slow +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x30300142 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x303593a2 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x3048c88e unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x30612cd3 get_user_pages +EXPORT_SYMBOL vmlinux 0x307501b4 stop_tty +EXPORT_SYMBOL vmlinux 0x308077b2 sk_dst_check +EXPORT_SYMBOL vmlinux 0x3083ebdd vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x30adaf9c __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310a0990 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x311f9780 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x3136a3cf tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3148b2ba tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x315d4193 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x31708622 dquot_alloc +EXPORT_SYMBOL vmlinux 0x317772e7 redraw_screen +EXPORT_SYMBOL vmlinux 0x3182bd74 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x31a5d085 ether_setup +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31c569c1 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x31c57706 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x31e6b376 d_add_ci +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc +EXPORT_SYMBOL vmlinux 0x321374f2 nla_reserve +EXPORT_SYMBOL vmlinux 0x32146298 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x3231e275 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x32348592 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x323b211b dev_uc_init +EXPORT_SYMBOL vmlinux 0x323b4c72 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x32450ef3 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x32523bb2 blk_end_request +EXPORT_SYMBOL vmlinux 0x3257d4b3 pid_task +EXPORT_SYMBOL vmlinux 0x326236a8 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x326616d2 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x3269fb7c path_put +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x3294013f skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x32c8ae55 __scm_destroy +EXPORT_SYMBOL vmlinux 0x32f323f8 mpage_writepage +EXPORT_SYMBOL vmlinux 0x330b268d register_netdev +EXPORT_SYMBOL vmlinux 0x333140b0 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x336130a5 unregister_console +EXPORT_SYMBOL vmlinux 0x336b7c86 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x336fdaab netif_carrier_off +EXPORT_SYMBOL vmlinux 0x33831bdd blk_end_request_all +EXPORT_SYMBOL vmlinux 0x338e1e09 freeze_super +EXPORT_SYMBOL vmlinux 0x3398198f deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x33b7d76f agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33b88cf7 __elv_add_request +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33d99fac inode_needs_sync +EXPORT_SYMBOL vmlinux 0x33e08aeb simple_link +EXPORT_SYMBOL vmlinux 0x33f8d41e dmam_pool_create +EXPORT_SYMBOL vmlinux 0x3410e25e fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x342c128b xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x346dea03 agp_flush_chipset +EXPORT_SYMBOL vmlinux 0x349bf360 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34d2117a tc_classify +EXPORT_SYMBOL vmlinux 0x35063831 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x3519f689 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x353427c9 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x35397a15 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x353eaac1 sync_inode +EXPORT_SYMBOL vmlinux 0x3582ed17 vfs_stat +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35bc1fdf inetdev_by_index +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c57aa4 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x35c73306 elv_rb_add +EXPORT_SYMBOL vmlinux 0x35ceb9f3 ilookup +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x361fd6fa fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x3641cfa1 scsi_put_command +EXPORT_SYMBOL vmlinux 0x36532577 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x36745edd simple_setattr +EXPORT_SYMBOL vmlinux 0x36a5a7bc pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x3711745c bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x372db1f6 seq_lseek +EXPORT_SYMBOL vmlinux 0x373bb944 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37b22acf node_data +EXPORT_SYMBOL vmlinux 0x37b4e6ae writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x37b50e2a tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37bfc02e sock_i_ino +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x3820afee napi_gro_receive +EXPORT_SYMBOL vmlinux 0x3831fb19 do_splice_to +EXPORT_SYMBOL vmlinux 0x383f376a dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x3855c876 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x386447be xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x386d4749 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x38884dbe agp_put_bridge +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a2e0a5 send_sig +EXPORT_SYMBOL vmlinux 0x38b3cd85 cdev_index +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c45022 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x38c704f1 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x38d9dc5c padata_add_cpu +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x39060d05 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x3920dc7a fail_migrate_page +EXPORT_SYMBOL vmlinux 0x392774ed tty_unregister_device +EXPORT_SYMBOL vmlinux 0x39348de8 skb_dequeue +EXPORT_SYMBOL vmlinux 0x395d2ef0 mddev_congested +EXPORT_SYMBOL vmlinux 0x396ac4f2 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x39788392 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x397f8499 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x398e147e genphy_config_advert +EXPORT_SYMBOL vmlinux 0x39974e7d page_follow_link_light +EXPORT_SYMBOL vmlinux 0x39c24e5b i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x39cab423 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x39edd4c2 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a3d18f0 sock_no_bind +EXPORT_SYMBOL vmlinux 0x3a433b07 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3acfc416 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x3ae00ded kthread_create +EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove +EXPORT_SYMBOL vmlinux 0x3b2beaba ppp_unit_number +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b39160e vm_map_ram +EXPORT_SYMBOL vmlinux 0x3b4cd8fb input_release_device +EXPORT_SYMBOL vmlinux 0x3b5094b5 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x3b76b061 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x3bb28da9 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x3bb3c3fb inet_frag_kill +EXPORT_SYMBOL vmlinux 0x3bb90193 put_tty_driver +EXPORT_SYMBOL vmlinux 0x3bbd4ace pnp_device_attach +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c1950d4 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c5c3cf5 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x3c624707 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb14a0c tty_devnum +EXPORT_SYMBOL vmlinux 0x3cb35507 tty_hangup +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf89d7f cpu_info +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d4ca89e kdb_current_task +EXPORT_SYMBOL vmlinux 0x3d573f5d abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d93665d uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x3d9d086a __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3dcccca6 simple_write_end +EXPORT_SYMBOL vmlinux 0x3df2c1ee ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e2063f4 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e3e73fe truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x3e4221cb splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e4826a5 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x3e5851b6 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x3e8739bf netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e8ce20f pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ec60e8a input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x3ecc3e16 x86_hyper +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eec3341 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f2f24eb blk_put_request +EXPORT_SYMBOL vmlinux 0x3f3bc1c4 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5e7b61 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f6a4d78 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x3f78b38f keyring_clear +EXPORT_SYMBOL vmlinux 0x3f7ab56e sock_release +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fbf3b60 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x3fc7627d inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x3fded9e8 tty_port_close +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x406b9abf blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a02a41 bioset_create +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a53ebf dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x40ab1b0b kernel_getpeername +EXPORT_SYMBOL vmlinux 0x40c0737c nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40f7a31f sk_filter +EXPORT_SYMBOL vmlinux 0x40fc5f30 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4118d405 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41408088 kobject_put +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414dab0c jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x415243a1 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4184e77b phy_driver_register +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x41d33e29 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x41fd82d4 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42218dee eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x427061fb unbind_con_driver +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a22805 dentry_unhash +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42ace462 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42d58eea scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x42d9c841 unlock_super +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43099626 pci_release_region +EXPORT_SYMBOL vmlinux 0x4324aa51 lock_may_read +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43552b03 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x43562d06 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4378853b compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x43791168 file_update_time +EXPORT_SYMBOL vmlinux 0x439d7084 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43be35f3 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x43ca7c06 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x43d69989 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x43db0c08 llc_sap_close +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x443a8a3f tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x444e3515 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x446bdee7 elevator_exit +EXPORT_SYMBOL vmlinux 0x4487eaf0 sock_no_poll +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b1ed53 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x44b75a90 __kfree_skb +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c59498 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x4510aa17 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x451799e9 dquot_initialize +EXPORT_SYMBOL vmlinux 0x452b12de blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x452cfc24 agp_enable +EXPORT_SYMBOL vmlinux 0x452eb25f neigh_table_clear +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x45558de5 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x455a49e4 make_EII_client +EXPORT_SYMBOL vmlinux 0x4565d3d9 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x45680205 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x457d0652 idr_remove_all +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45c6c20e page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x45d0782f pneigh_lookup +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x461b0376 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x464ce151 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467b0f08 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x468d1fab inode_setattr +EXPORT_SYMBOL vmlinux 0x468e2169 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x468e4796 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46d350fe tr_type_trans +EXPORT_SYMBOL vmlinux 0x46ec2b12 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x4701e90c d_genocide +EXPORT_SYMBOL vmlinux 0x4709ad8d phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0x4717d1b8 dma_find_channel +EXPORT_SYMBOL vmlinux 0x47425f8c pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x474c1557 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x4761699c sock_wfree +EXPORT_SYMBOL vmlinux 0x47808dce jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x4799479c pci_dev_get +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47a0989c get_phy_id +EXPORT_SYMBOL vmlinux 0x47a56ac7 request_firmware +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47dfba81 lock_super +EXPORT_SYMBOL vmlinux 0x47e64779 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x47eacec5 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x480bd6bb kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x48192ebe iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x483fc2a0 kill_pgrp +EXPORT_SYMBOL vmlinux 0x48513002 xfrm_input +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485bd757 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x48631f3a prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x48826e58 xrlim_allow +EXPORT_SYMBOL vmlinux 0x48cf17d8 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x48d65642 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x48e493e8 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x492ab060 follow_pfn +EXPORT_SYMBOL vmlinux 0x493c05f4 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x49463478 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49607438 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x4961cd4b padata_start +EXPORT_SYMBOL vmlinux 0x498fd593 llc_sap_find +EXPORT_SYMBOL vmlinux 0x499a6ef4 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49d58b96 single_open +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49eb1845 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x4a288c01 blk_get_request +EXPORT_SYMBOL vmlinux 0x4a33417b dget_locked +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a45381b jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x4a5199e5 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x4a6da67a open_by_devnum +EXPORT_SYMBOL vmlinux 0x4a7b58ae __bforget +EXPORT_SYMBOL vmlinux 0x4a928944 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad6423d icmp_send +EXPORT_SYMBOL vmlinux 0x4addd94f scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x4ae79dc9 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x4af0f5c0 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b2ff1db thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x4b497ccf security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x4b4e3e99 dquot_transfer +EXPORT_SYMBOL vmlinux 0x4b765df5 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x4b92a13f scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bc5d2b5 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x4bc96650 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x4bcbfd74 pipe_to_file +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1c7562 agp_create_memory +EXPORT_SYMBOL vmlinux 0x4c1cfbe5 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x4c31b97a bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c7461ea I_BDEV +EXPORT_SYMBOL vmlinux 0x4c774151 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x4c9110f5 tty_mutex +EXPORT_SYMBOL vmlinux 0x4c95e40f dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x4cab55ef scsi_ioctl +EXPORT_SYMBOL vmlinux 0x4cacdc94 unlock_rename +EXPORT_SYMBOL vmlinux 0x4cb2669b loop_register_transfer +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cfb9b6b i2c_use_client +EXPORT_SYMBOL vmlinux 0x4d0c47e9 cont_write_begin +EXPORT_SYMBOL vmlinux 0x4d1cf1bc cdrom_release +EXPORT_SYMBOL vmlinux 0x4d552e61 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x4d5cafe6 ip_fragment +EXPORT_SYMBOL vmlinux 0x4d63b6ae audit_log_start +EXPORT_SYMBOL vmlinux 0x4d8970e1 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dc9030b have_submounts +EXPORT_SYMBOL vmlinux 0x4dd9e807 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e26a459 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e436701 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e6f023c dm_snap_cow +EXPORT_SYMBOL vmlinux 0x4e782b92 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x4e99c48f cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x4ebfa52c xfrm_state_add +EXPORT_SYMBOL vmlinux 0x4ec3838a journal_force_commit +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f29d68d unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt +EXPORT_SYMBOL vmlinux 0x4f5be955 mmc_free_host +EXPORT_SYMBOL vmlinux 0x4f647976 __pagevec_release +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f7ef5ca neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4fb59ecb make_bad_inode +EXPORT_SYMBOL vmlinux 0x4fc667a6 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505873f4 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x505be570 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x5061c4de nf_register_hook +EXPORT_SYMBOL vmlinux 0x50621198 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x50ab2715 __bio_clone +EXPORT_SYMBOL vmlinux 0x50b2534d blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x50ce65a3 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x50e01b50 d_instantiate +EXPORT_SYMBOL vmlinux 0x5102ae3c nobh_write_begin +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5127c241 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x5179c6eb mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL vmlinux 0x5191db37 scsi_host_get +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e56146 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x51e81bb9 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x51fef6b8 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5202cc1f kill_fasync +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x521eb71e dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x52655b5a __f_setown +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x5294aaeb otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52b93bd3 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52ddcc2d sock_i_uid +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x530708e4 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53126e42 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x535d2b1e register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x53702afa xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53a02924 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x53a565fc compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53d6e4d2 cad_pid +EXPORT_SYMBOL vmlinux 0x53e00d30 generic_show_options +EXPORT_SYMBOL vmlinux 0x53e4c607 bdevname +EXPORT_SYMBOL vmlinux 0x53e51607 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x53ff814f blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542ce6b7 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x543e9ed2 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x546be192 journal_extend +EXPORT_SYMBOL vmlinux 0x547184e9 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x547831ab i8042_install_filter +EXPORT_SYMBOL vmlinux 0x54832714 mutex_unlock +EXPORT_SYMBOL vmlinux 0x54972f0f inet_sendmsg +EXPORT_SYMBOL vmlinux 0x54a6ec59 dquot_file_open +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ffa696 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x551f67d8 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x5562d57d padata_do_serial +EXPORT_SYMBOL vmlinux 0x5594a724 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55a15bba rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x55bf6a56 pci_choose_state +EXPORT_SYMBOL vmlinux 0x55dded25 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x55e1bad6 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x55ef6b8d padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x55f89819 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x56116151 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x56209471 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5638fde0 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x56432394 user_revoke +EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new +EXPORT_SYMBOL vmlinux 0x569eadf4 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cf5818 vfs_statfs +EXPORT_SYMBOL vmlinux 0x56d8e526 serio_rescan +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56f092ef invalidate_bdev +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x56fc650f mutex_lock +EXPORT_SYMBOL vmlinux 0x570c67f0 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573d2646 input_flush_device +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x576f9ae1 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x5789ba4d __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x57937126 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57b85d36 sg_miter_next +EXPORT_SYMBOL vmlinux 0x57cfe6bd kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57df6b63 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x57ea3c8c dma_pool_create +EXPORT_SYMBOL vmlinux 0x58020f99 kfree_skb +EXPORT_SYMBOL vmlinux 0x582c1af0 journal_init_inode +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x58485d42 sock_no_accept +EXPORT_SYMBOL vmlinux 0x5850140e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x58648407 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x58b519bf scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x58bc1d8c i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x58d979ea pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x58da4eb7 block_read_full_page +EXPORT_SYMBOL vmlinux 0x58db1437 dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x58e29a82 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x58fd6e6c pci_pme_capable +EXPORT_SYMBOL vmlinux 0x59101cf6 module_layout +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x592ca7c7 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x5930e9f7 pci_target_state +EXPORT_SYMBOL vmlinux 0x593290e3 seq_escape +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x59494559 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5957c1f3 get_disk +EXPORT_SYMBOL vmlinux 0x596cc13d __alloc_skb +EXPORT_SYMBOL vmlinux 0x59adb5dd inet_put_port +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d6d672 scsi_free_command +EXPORT_SYMBOL vmlinux 0x5a016611 journal_forget +EXPORT_SYMBOL vmlinux 0x5a09ace1 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x5a1c6680 llc_sap_open +EXPORT_SYMBOL vmlinux 0x5a23260b __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a68d0fc inode_init_owner +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7cae2c inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x5a99bf2f netif_napi_del +EXPORT_SYMBOL vmlinux 0x5aa68862 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ad08562 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x5ad15309 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x5af3827d dqput +EXPORT_SYMBOL vmlinux 0x5b25583e tty_free_termios +EXPORT_SYMBOL vmlinux 0x5b4240b9 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b532797 scsi_add_device +EXPORT_SYMBOL vmlinux 0x5b5a2a32 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5bc3aad2 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x5c0fe0bd ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x5c328565 simple_fill_super +EXPORT_SYMBOL vmlinux 0x5c3efa7e skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c59b43c inet_shutdown +EXPORT_SYMBOL vmlinux 0x5c5af7b5 pci_bus_type +EXPORT_SYMBOL vmlinux 0x5c740736 framebuffer_release +EXPORT_SYMBOL vmlinux 0x5c97f343 generic_setxattr +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5ca41392 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x5ca9ddd1 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5cd56d3c ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x5cd61b45 d_lookup +EXPORT_SYMBOL vmlinux 0x5cdda7c2 pci_dev_put +EXPORT_SYMBOL vmlinux 0x5cfc13c8 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x5d06f4fe generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d22ef65 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x5d264469 init_buffer +EXPORT_SYMBOL vmlinux 0x5d612689 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5da76088 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5db527cb complete_request_key +EXPORT_SYMBOL vmlinux 0x5dc43223 idr_pre_get +EXPORT_SYMBOL vmlinux 0x5dd22b5c ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x5de05b06 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e1fff91 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x5e27a508 vc_resize +EXPORT_SYMBOL vmlinux 0x5e27e01a inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x5e407d53 sk_free +EXPORT_SYMBOL vmlinux 0x5e43fe85 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x5e5ab423 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x5e7cda84 security_path_truncate +EXPORT_SYMBOL vmlinux 0x5e90633f set_device_ro +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9e074a scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x5eb3126d generic_write_checks +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f1753f8 __find_get_block +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f77df0a scsi_remove_device +EXPORT_SYMBOL vmlinux 0x5f7a6a03 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x5f804c75 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x5f8dfa2c tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x5f97009c tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x5fa14b79 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x5fa4ecef eth_change_mtu +EXPORT_SYMBOL vmlinux 0x5fbc35e2 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x5fcbd151 set_anon_super +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fd2d3d2 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x5fd50675 arp_create +EXPORT_SYMBOL vmlinux 0x5fdf4a4b bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x5ff4b7bc posix_lock_file +EXPORT_SYMBOL vmlinux 0x5ff5de61 sget +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6015bb09 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x6054ede7 scsi_register +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x605e65eb hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x605e7d6e tty_throttle +EXPORT_SYMBOL vmlinux 0x6073299c tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x60795836 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x607bf1dc ppp_register_channel +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60c64e5d scsi_device_get +EXPORT_SYMBOL vmlinux 0x60edfbc9 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6124cfd2 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61445330 seq_read +EXPORT_SYMBOL vmlinux 0x614a9529 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x616ff566 md_barrier_request +EXPORT_SYMBOL vmlinux 0x617873d2 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x61838e40 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d67908 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x61ded587 ll_rw_block +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x622a7b94 simple_setsize +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623b5d6c arp_find +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x6276e866 seq_puts +EXPORT_SYMBOL vmlinux 0x627b2305 backlight_device_register +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628ca8ba agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x629f2b47 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0x62df904c xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x62fcf9e4 datagram_poll +EXPORT_SYMBOL vmlinux 0x63015058 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x6301da38 generic_setattr +EXPORT_SYMBOL vmlinux 0x6312eae0 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63a564b7 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x63b5e671 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x63d5285b rfkill_destroy +EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efaa87 log_wait_commit +EXPORT_SYMBOL vmlinux 0x63f5e6a9 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640a059b sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x6424d7dd set_create_files_as +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6449b3be get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64715536 kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x647cc74a pci_pme_active +EXPORT_SYMBOL vmlinux 0x64936110 write_one_page +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649bd10d phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x64b14fd2 seq_release_private +EXPORT_SYMBOL vmlinux 0x64b306f5 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64eb6429 read_dev_sector +EXPORT_SYMBOL vmlinux 0x64ede412 km_state_notify +EXPORT_SYMBOL vmlinux 0x64f8b6fb mdiobus_register +EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651b4ce2 is_container_init +EXPORT_SYMBOL vmlinux 0x6539002e unlock_buffer +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6553daff uart_resume_port +EXPORT_SYMBOL vmlinux 0x65574dc6 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x656347ea inode_get_bytes +EXPORT_SYMBOL vmlinux 0x658f01af blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x65b30c2c inet_frags_init +EXPORT_SYMBOL vmlinux 0x65c82f02 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x65e3bba9 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x65e71564 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x6629ef8e max8925_set_bits +EXPORT_SYMBOL vmlinux 0x66466be9 get_io_context +EXPORT_SYMBOL vmlinux 0x66497bfa inode_add_bytes +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66d2ae73 compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x66e071f5 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x66e1d858 find_lock_page +EXPORT_SYMBOL vmlinux 0x66f17077 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673995e7 kill_block_super +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6743f447 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x674d75aa blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x67637124 kobject_get +EXPORT_SYMBOL vmlinux 0x678beed3 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x678f46d5 phy_device_create +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67d5494f sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x67ee31ea eth_header_cache +EXPORT_SYMBOL vmlinux 0x680c730e i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x682d0ac1 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x685cf233 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68909040 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x68bd123b inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x68f2f199 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x6914926b generic_write_sync +EXPORT_SYMBOL vmlinux 0x6943de01 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x694d1427 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697e3a6c alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69921202 ida_init +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69b2919d fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e5e914 rwsem_wake +EXPORT_SYMBOL vmlinux 0x69f3eec6 dev_close +EXPORT_SYMBOL vmlinux 0x69ff9578 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a1131db unload_nls +EXPORT_SYMBOL vmlinux 0x6a23ca92 phy_detach +EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a611345 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x6a717971 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6ac1449e llc_add_pack +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acd396d misc_register +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ad8c046 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae616c8 genphy_resume +EXPORT_SYMBOL vmlinux 0x6b0d876c kset_register +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b21cf90 __nla_reserve +EXPORT_SYMBOL vmlinux 0x6b29c1bd sk_reset_timer +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b32b202 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b9795ca slow_work_register_user +EXPORT_SYMBOL vmlinux 0x6b9c475f inet_recvmsg +EXPORT_SYMBOL vmlinux 0x6ba6d776 give_up_console +EXPORT_SYMBOL vmlinux 0x6bbfc3f4 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bd0d582 kernel_accept +EXPORT_SYMBOL vmlinux 0x6bd60af1 vfs_link +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bec5687 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6bfb834d dquot_drop +EXPORT_SYMBOL vmlinux 0x6c2afef7 register_netdevice +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c3dd441 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c706a75 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x6c70e3f1 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x6c799b15 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x6ca29007 key_put +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6cd79558 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x6ce58142 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x6cfc44db console_stop +EXPORT_SYMBOL vmlinux 0x6d01f3e8 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x6d0e3039 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d70f3e0 load_nls +EXPORT_SYMBOL vmlinux 0x6d9a4e86 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x6dade432 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e21b365 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x6e4ee34b generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x6e5f791a vfs_follow_link +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x6e8794e3 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x6e8b2618 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eb3446e __blk_end_request +EXPORT_SYMBOL vmlinux 0x6f0d2c3a alloc_pages_current +EXPORT_SYMBOL vmlinux 0x6f10d52f tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x6f2d5ac8 bio_add_page +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f4e221f eth_type_trans +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f59ba4d scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x6f8359f2 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6faae914 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x6fbbc35c consume_skb +EXPORT_SYMBOL vmlinux 0x6fc071b7 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70521d7a dquot_commit +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70765d1c vfs_lstat +EXPORT_SYMBOL vmlinux 0x707c7ed8 __dst_free +EXPORT_SYMBOL vmlinux 0x7086e8cc mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x70907a28 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x7093cce4 sock_init_data +EXPORT_SYMBOL vmlinux 0x70a12e5d do_SAK +EXPORT_SYMBOL vmlinux 0x70a39681 ip_defrag +EXPORT_SYMBOL vmlinux 0x70b3984c mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c01fc8 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x70c510eb lookup_one_len +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e0d61f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x70fc7c82 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x71242d7d journal_wipe +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7135b0f9 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x714ec4c4 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x715498da follow_down +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71721640 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x718fafe9 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71b3a5b0 do_sync_read +EXPORT_SYMBOL vmlinux 0x71bb41e4 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x71d294cd bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x71da3cd1 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x71dd0087 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x71f19f90 serio_open +EXPORT_SYMBOL vmlinux 0x71f66c26 dev_open +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x721c8ace pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x7223194b compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x722e7d19 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x723f85b5 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x724665ba input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x7257c4f9 __register_chrdev +EXPORT_SYMBOL vmlinux 0x726fdb93 vga_get +EXPORT_SYMBOL vmlinux 0x727c98b4 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72ba1191 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f6612c jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x730def15 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x73252f64 seq_open_private +EXPORT_SYMBOL vmlinux 0x733a1093 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x733d6f17 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x7346a340 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7376a02a tc_classify_compat +EXPORT_SYMBOL vmlinux 0x737a0d83 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x737c1563 put_page +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x7388ba54 submit_bio +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x738dd132 padata_alloc +EXPORT_SYMBOL vmlinux 0x7392e778 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x739e1998 is_bad_inode +EXPORT_SYMBOL vmlinux 0x73a77add simple_transaction_release +EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x73da80ea cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x73ef13b3 generic_write_end +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740b0a5a journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x741531ca lock_rename +EXPORT_SYMBOL vmlinux 0x742fe035 nla_append +EXPORT_SYMBOL vmlinux 0x743bfe73 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x74425e02 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x746272a0 set_security_override +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74df66df sk_run_filter +EXPORT_SYMBOL vmlinux 0x74e38f26 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x7546c24b cfb_imageblit +EXPORT_SYMBOL vmlinux 0x755d9639 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x75621ea7 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x7570b9d6 proc_create_data +EXPORT_SYMBOL vmlinux 0x7585fbb8 kernel_listen +EXPORT_SYMBOL vmlinux 0x75866cd8 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75d9e06f nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x75ecee3a vm_insert_page +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76114194 d_splice_alias +EXPORT_SYMBOL vmlinux 0x76279f2c netdev_state_change +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x763a6463 blk_rq_init +EXPORT_SYMBOL vmlinux 0x763c54ed pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x76716776 mmc_host_disable +EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x76811744 dev_mc_del +EXPORT_SYMBOL vmlinux 0x7688f5b2 vfs_symlink +EXPORT_SYMBOL vmlinux 0x76a400d9 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c4ecf5 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x76c6494b set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x76d20bb6 tcp_prot +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e8e24d ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x76ef61ea ip_route_input_common +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x76fa96ab bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x77216d29 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x775226e6 block_prepare_write +EXPORT_SYMBOL vmlinux 0x777ccdff netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x779d9e6d scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x77a71491 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x77ad8ec8 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d62dee ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77ff95f1 kill_anon_super +EXPORT_SYMBOL vmlinux 0x781ea1ce phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x782e80df acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x783aa21a llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x785a962e rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x785d6557 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x78611171 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x78800dd2 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x78b17b10 tcp_close +EXPORT_SYMBOL vmlinux 0x78dc6b04 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e831c4 free_buffer_head +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x7910b47e simple_transaction_get +EXPORT_SYMBOL vmlinux 0x791d95a9 force_sig +EXPORT_SYMBOL vmlinux 0x7947cd55 pci_get_device +EXPORT_SYMBOL vmlinux 0x794d300c task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x796de582 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x797ed7ab registered_fb +EXPORT_SYMBOL vmlinux 0x79a0ba53 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79e0434e remap_pfn_range +EXPORT_SYMBOL vmlinux 0x79f2f305 block_write_begin +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a69e544 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x7a931a0a kill_litter_super +EXPORT_SYMBOL vmlinux 0x7a953db9 d_alloc_root +EXPORT_SYMBOL vmlinux 0x7aa7bd38 pnp_is_active +EXPORT_SYMBOL vmlinux 0x7abc267b abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7adebea1 __lock_buffer +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7ae8d8ca skb_queue_head +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7b09427e qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b1aab88 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x7b3e32ba pci_restore_state +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b542089 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x7b555e2c agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b6f32c7 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x7b727151 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b91fc1e __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x7baaf310 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x7bb277a7 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x7bd06774 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c367649 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x7c41adad bdi_destroy +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c824820 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x7c83977e dev_mc_add +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cf272d9 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x7d087c75 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d4c47ba tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x7d6bb587 cpu_online_mask +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7da0a1d3 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x7da94f64 del_gendisk +EXPORT_SYMBOL vmlinux 0x7dba0471 dev_mc_init +EXPORT_SYMBOL vmlinux 0x7dc29817 get_sb_ns +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd490d3 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7df20b11 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x7dfa5b28 simple_readpage +EXPORT_SYMBOL vmlinux 0x7e1066cc xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x7e1cfc49 bio_init +EXPORT_SYMBOL vmlinux 0x7e311ad1 backlight_force_update +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e631304 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x7e69ef42 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x7e6f7594 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x7e7d9500 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7e9f708c dev_load +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7eba6564 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ef36aba blkdev_get +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f47a543 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x7f6aea7f key_revoke +EXPORT_SYMBOL vmlinux 0x7f743f2e elv_add_request +EXPORT_SYMBOL vmlinux 0x7f74d8b8 genphy_update_link +EXPORT_SYMBOL vmlinux 0x7f75194e simple_rmdir +EXPORT_SYMBOL vmlinux 0x7f78686a dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x7f9b7e8e __devm_request_region +EXPORT_SYMBOL vmlinux 0x7f9b811a kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x7fa1b62f __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7fa8aab2 cdev_alloc +EXPORT_SYMBOL vmlinux 0x7facf351 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x7fb04167 journal_update_format +EXPORT_SYMBOL vmlinux 0x7fb3f744 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x801b4d4a test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x801ce899 ip6_route_output +EXPORT_SYMBOL vmlinux 0x801f30e2 elv_register_queue +EXPORT_SYMBOL vmlinux 0x8055f5d2 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x8066b0ec dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x807bd923 neigh_destroy +EXPORT_SYMBOL vmlinux 0x80989c05 handle_sysrq +EXPORT_SYMBOL vmlinux 0x80a4c02b blk_init_queue +EXPORT_SYMBOL vmlinux 0x80cb51ff sockfd_lookup +EXPORT_SYMBOL vmlinux 0x80d5e41d pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x80dc6ac5 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x80f94724 get_phy_device +EXPORT_SYMBOL vmlinux 0x810233fa key_validate +EXPORT_SYMBOL vmlinux 0x8112b4e9 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x81504631 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x8191ae58 phy_attach +EXPORT_SYMBOL vmlinux 0x81c73e11 skb_unlink +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d8cfee dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8219a47e d_validate +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82529367 seq_printf +EXPORT_SYMBOL vmlinux 0x82555944 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82f28e63 genphy_read_status +EXPORT_SYMBOL vmlinux 0x830c4827 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x8344991f skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x836494bb tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x837443c7 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x837f1aa9 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83c312f5 neigh_for_each +EXPORT_SYMBOL vmlinux 0x83da44dc set_blocksize +EXPORT_SYMBOL vmlinux 0x83e9f653 add_disk +EXPORT_SYMBOL vmlinux 0x84165930 put_disk +EXPORT_SYMBOL vmlinux 0x8467d196 netdev_features_change +EXPORT_SYMBOL vmlinux 0x846e7d35 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x84844807 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84c0bbbc generic_readlink +EXPORT_SYMBOL vmlinux 0x84caf949 bdi_unregister +EXPORT_SYMBOL vmlinux 0x84d61413 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x84f2eb5d i2c_release_client +EXPORT_SYMBOL vmlinux 0x84fa0acc scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x854e399e tcp_ioctl +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups +EXPORT_SYMBOL vmlinux 0x859ad71e md_register_thread +EXPORT_SYMBOL vmlinux 0x859ad9e1 journal_init_dev +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x860a11cd agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x864202d3 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x864ec13e mmc_add_host +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86601b3b tty_port_init +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866754d5 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x86687e5f tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a1161a skb_find_text +EXPORT_SYMBOL vmlinux 0x86b2e09e __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat +EXPORT_SYMBOL vmlinux 0x86cc6ef3 pci_map_rom +EXPORT_SYMBOL vmlinux 0x86e3e643 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x876d9b69 mdiobus_free +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87748085 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87a88629 inode_change_ok +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x87d7aaeb pci_remove_bus +EXPORT_SYMBOL vmlinux 0x87e7a13f find_or_create_page +EXPORT_SYMBOL vmlinux 0x87eeb7aa rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x87f150ed i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x87ff2af8 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x883d5c0b qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x8860b310 simple_empty +EXPORT_SYMBOL vmlinux 0x886c8557 misc_deregister +EXPORT_SYMBOL vmlinux 0x888b0e85 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88f898a6 input_get_keycode +EXPORT_SYMBOL vmlinux 0x8900b220 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x89386484 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897ca7ba load_nls_default +EXPORT_SYMBOL vmlinux 0x8986045b set_bh_page +EXPORT_SYMBOL vmlinux 0x89d2821b skb_queue_purge +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89eadaa8 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x8a01259a dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x8a23329c names_cachep +EXPORT_SYMBOL vmlinux 0x8a29e829 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x8a46be2a dev_gro_receive +EXPORT_SYMBOL vmlinux 0x8a524e6e md_done_sync +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa7b8d2 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x8ac5390f pci_release_regions +EXPORT_SYMBOL vmlinux 0x8ace9264 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b31da53 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b936a87 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock +EXPORT_SYMBOL vmlinux 0x8bb80a97 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x8bc2655e agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x8bd1de49 inet_getname +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bda983e md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x8bdb80fa init_net +EXPORT_SYMBOL vmlinux 0x8be6d343 user_path_at +EXPORT_SYMBOL vmlinux 0x8c094db5 skb_push +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1ecd51 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x8c22e3d4 padata_free +EXPORT_SYMBOL vmlinux 0x8c40de22 register_exec_domain +EXPORT_SYMBOL vmlinux 0x8c55139d pci_set_master +EXPORT_SYMBOL vmlinux 0x8c84530b skb_checksum +EXPORT_SYMBOL vmlinux 0x8c9a988b kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x8c9e79d1 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x8ca46b71 pci_iomap +EXPORT_SYMBOL vmlinux 0x8cb03b93 d_alloc +EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x8ccfb9e0 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x8cf5d336 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x8d333caf km_state_expired +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d7ba4f3 journal_flush +EXPORT_SYMBOL vmlinux 0x8d8cea3d skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d99add1 generic_file_open +EXPORT_SYMBOL vmlinux 0x8d9f5cfe pci_select_bars +EXPORT_SYMBOL vmlinux 0x8da20bee block_write_end +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dcd9b5a agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x8deb7713 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x8df19b3b elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e14f05e vga_put +EXPORT_SYMBOL vmlinux 0x8e1e8833 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x8e1ec58d neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x8e2ab4f0 start_tty +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e5c18ea save_mount_options +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e851712 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x8e891a52 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x8e991c70 vfs_writev +EXPORT_SYMBOL vmlinux 0x8eae6046 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb8061b iget_locked +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ef206dc pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x8ef3f8f0 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x8f0c5673 sock_no_connect +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f25176a jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f30ef03 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x8f369977 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x8f3fb774 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f706cd5 __scm_send +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa42b33 netlink_ack +EXPORT_SYMBOL vmlinux 0x8fa6a4e8 md_write_end +EXPORT_SYMBOL vmlinux 0x8fa768f4 kthread_stop +EXPORT_SYMBOL vmlinux 0x8fb94750 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x8ff2c269 security_path_link +EXPORT_SYMBOL vmlinux 0x8ffa8f95 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9015ffb5 inet6_bind +EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x902879bd iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x90385e10 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x9046a18d xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x904d25ae journal_set_features +EXPORT_SYMBOL vmlinux 0x9059841f jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x905fcab6 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x906c8fe7 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x9076b295 md_error +EXPORT_SYMBOL vmlinux 0x907ec5c7 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a5a89b new_inode +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x9105842f phy_connect +EXPORT_SYMBOL vmlinux 0x91169917 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x9129503d thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x914e6be7 security_file_permission +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x9163fc66 mnt_pin +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy +EXPORT_SYMBOL vmlinux 0x91abd92a vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x91ac3fd4 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x91d1f269 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x91d56f8a ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x922a77e6 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x9244689d pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x92529024 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x926e1ff6 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x927078fc seq_open +EXPORT_SYMBOL vmlinux 0x9288858c elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x92896531 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x928da2d9 block_sync_page +EXPORT_SYMBOL vmlinux 0x92ca6156 tty_kref_put +EXPORT_SYMBOL vmlinux 0x92d15acb km_report +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x9304cdbd generic_setlease +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93355f20 drop_super +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x93466f0f ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x934c7eec pcim_pin_device +EXPORT_SYMBOL vmlinux 0x9360f52b register_filesystem +EXPORT_SYMBOL vmlinux 0x9369aebd input_open_device +EXPORT_SYMBOL vmlinux 0x936bc2d7 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x93780d61 block_truncate_page +EXPORT_SYMBOL vmlinux 0x938dce33 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0x93c5f16b pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9402891a dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x940b03cc blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x940b29ab console_start +EXPORT_SYMBOL vmlinux 0x9411da22 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x9417bc61 module_put +EXPORT_SYMBOL vmlinux 0x94292fa2 textsearch_register +EXPORT_SYMBOL vmlinux 0x943aeca9 journal_ack_err +EXPORT_SYMBOL vmlinux 0x945a2148 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x9472d40c task_nice +EXPORT_SYMBOL vmlinux 0x9492b386 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949a32a9 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x94b28b56 phy_device_register +EXPORT_SYMBOL vmlinux 0x94b3076d serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x94bcf365 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x950537c3 generic_fillattr +EXPORT_SYMBOL vmlinux 0x9529c7bc vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x954e2f28 dma_pool_free +EXPORT_SYMBOL vmlinux 0x956432b7 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x956ae612 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x9573a8c1 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x95855f4f bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x9588d7f3 security_path_chown +EXPORT_SYMBOL vmlinux 0x95ba11e9 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x95beb285 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d27b1d i2c_master_recv +EXPORT_SYMBOL vmlinux 0x961305ad sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x9616a5a9 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x961d04ac nla_put +EXPORT_SYMBOL vmlinux 0x961ffa45 agp_copy_info +EXPORT_SYMBOL vmlinux 0x9631b643 register_console +EXPORT_SYMBOL vmlinux 0x96566631 tty_vhangup +EXPORT_SYMBOL vmlinux 0x965904b3 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x9664c267 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x966ea7bf bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x96747bfa generic_listxattr +EXPORT_SYMBOL vmlinux 0x967f5e71 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x969a5ab5 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x96b8dfc5 skb_set_dev +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d16f4d find_vma +EXPORT_SYMBOL vmlinux 0x96e2e370 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x96fa7c72 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x97192f10 tty_set_operations +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x9740d488 dm_table_put +EXPORT_SYMBOL vmlinux 0x97514e03 skb_trim +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975c0271 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x978f8815 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x97943b07 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x97a58c57 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x97b62d29 fget +EXPORT_SYMBOL vmlinux 0x97b8a94b ip6_frag_match +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97e066de linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x97f92ce6 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x9804a6ee phy_attach_direct +EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next +EXPORT_SYMBOL vmlinux 0x9842f534 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x98492722 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x98506d1e dev_get_flags +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988b6123 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x988dc6cc tty_port_close_end +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x989d5aef find_inode_number +EXPORT_SYMBOL vmlinux 0x98d65232 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x990e4cd0 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x991a6adf __bread +EXPORT_SYMBOL vmlinux 0x99274a14 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x993c779a fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x9946a68c mark_page_accessed +EXPORT_SYMBOL vmlinux 0x996c3688 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99b0e528 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x99b5797d vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x99fd88d9 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x9a0230b4 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x9a05838e free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9a1098a7 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a6905f1 follow_up +EXPORT_SYMBOL vmlinux 0x9a82993b lookup_hash +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9ab62a74 update_region +EXPORT_SYMBOL vmlinux 0x9ad3dde8 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x9b134a9c key_unlink +EXPORT_SYMBOL vmlinux 0x9b371516 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b407e37 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b82fb54 agp_free_memory +EXPORT_SYMBOL vmlinux 0x9b8e67a4 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x9ba19327 copy_io_context +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bc7478c input_set_keycode +EXPORT_SYMBOL vmlinux 0x9bdf149e posix_test_lock +EXPORT_SYMBOL vmlinux 0x9bf33f29 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c043eeb ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c188974 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x9c1f2fe6 set_groups +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cadbd67 skb_put +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9cd76be4 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x9ce73765 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x9cef7dfc dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d11458b ida_get_new_above +EXPORT_SYMBOL vmlinux 0x9d119c5c ipv4_specific +EXPORT_SYMBOL vmlinux 0x9d253c38 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3587e5 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x9d390b3f journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3d7a6f napi_frags_skb +EXPORT_SYMBOL vmlinux 0x9d495a30 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x9d524347 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x9d9fe7f0 journal_restart +EXPORT_SYMBOL vmlinux 0x9da9e6d1 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x9dabe6e5 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9db6a5ed dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x9dd08427 create_proc_entry +EXPORT_SYMBOL vmlinux 0x9e32ac7e vfs_write +EXPORT_SYMBOL vmlinux 0x9e551d60 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x9e5e82ac jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x9e61eade scsi_block_requests +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e6561a4 vfs_read +EXPORT_SYMBOL vmlinux 0x9e688d40 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x9e68aad3 write_inode_now +EXPORT_SYMBOL vmlinux 0x9e68b30b __invalidate_device +EXPORT_SYMBOL vmlinux 0x9e772f47 vga_tryget +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9edbecae snprintf +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f26d3da padata_do_parallel +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2cf872 set_binfmt +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f5c62cb poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x9f5d5ba4 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x9f63fe7c inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f938e88 dentry_open +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9ff77c jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x9faa1e75 bio_endio +EXPORT_SYMBOL vmlinux 0x9fad7435 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x9fc3ea2d tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x9fc9edd5 blk_complete_request +EXPORT_SYMBOL vmlinux 0x9fccccf6 flush_signals +EXPORT_SYMBOL vmlinux 0x9fdbda49 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9fdd2a4d tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x9fddc066 block_write_full_page +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe6eba1 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x9feb9068 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x9ffed2d9 simple_getattr +EXPORT_SYMBOL vmlinux 0xa008fe03 km_query +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05a8f0f dev_trans_start +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa061bfa4 bd_release +EXPORT_SYMBOL vmlinux 0xa066fcee mmc_remove_host +EXPORT_SYMBOL vmlinux 0xa068eead swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xa06f6747 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xa0960488 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b1d971 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xa0ce13f4 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0fb455a dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa105008c journal_release_buffer +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1094e90 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa10aacd4 inode_init_once +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa15476f1 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xa154f7e7 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xa15cc30c blk_execute_rq +EXPORT_SYMBOL vmlinux 0xa17bf6d0 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c13c74 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1d8387c input_unregister_device +EXPORT_SYMBOL vmlinux 0xa1da5347 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xa1db93d6 noop_fsync +EXPORT_SYMBOL vmlinux 0xa2063311 security_path_rename +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa219532e skb_store_bits +EXPORT_SYMBOL vmlinux 0xa2391d9a acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xa254914c aio_put_req +EXPORT_SYMBOL vmlinux 0xa25d681a jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xa2695cef netlink_unicast +EXPORT_SYMBOL vmlinux 0xa2824030 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xa2a52af3 search_binary_handler +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2bf35fd compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xa2d87001 do_munmap +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa32870ab dst_destroy +EXPORT_SYMBOL vmlinux 0xa3321b7c block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa3474d91 __devm_release_region +EXPORT_SYMBOL vmlinux 0xa3474ee3 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35383ad textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa36b5c81 mb_cache_create +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa454385d tty_port_put +EXPORT_SYMBOL vmlinux 0xa4631584 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xa476141a posix_acl_permission +EXPORT_SYMBOL vmlinux 0xa47fb533 unregister_nls +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b5cf5f nf_afinfo +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4ef6d97 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xa52261c6 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xa52d01ca lro_receive_frags +EXPORT_SYMBOL vmlinux 0xa5366abe read_cache_page +EXPORT_SYMBOL vmlinux 0xa552d347 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xa5531e76 submit_bh +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5ad4eb1 cdev_init +EXPORT_SYMBOL vmlinux 0xa5b3576d dqget +EXPORT_SYMBOL vmlinux 0xa5b7ef42 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xa5c765d1 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xa600dd55 sock_rfree +EXPORT_SYMBOL vmlinux 0xa62a9372 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xa6376a78 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa65db866 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xa65e4297 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa691381d skb_free_datagram +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa7293083 scsi_get_command +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa744e8ca poll_initwait +EXPORT_SYMBOL vmlinux 0xa74f5e6a eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xa75c8218 dm_register_target +EXPORT_SYMBOL vmlinux 0xa7804c98 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xa7b40238 blk_make_request +EXPORT_SYMBOL vmlinux 0xa7c15ce9 inet_release +EXPORT_SYMBOL vmlinux 0xa7db8ba7 d_alloc_name +EXPORT_SYMBOL vmlinux 0xa7dc065f vc_cons +EXPORT_SYMBOL vmlinux 0xa80e2742 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa81f1020 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xa82ab34d elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xa85fb072 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8b3cbb1 mmc_request_done +EXPORT_SYMBOL vmlinux 0xa8c3ff41 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa9521252 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xa972f84f set_bdi_congested +EXPORT_SYMBOL vmlinux 0xa9816a93 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xa9a70cef __breadahead +EXPORT_SYMBOL vmlinux 0xa9a75050 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xa9acae4e inet_ioctl +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c0fb38 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xa9d7112a __serio_register_port +EXPORT_SYMBOL vmlinux 0xa9ddaee8 da903x_query_status +EXPORT_SYMBOL vmlinux 0xa9e19cbc otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xa9f52dcf mmc_release_host +EXPORT_SYMBOL vmlinux 0xaa2305d3 skb_split +EXPORT_SYMBOL vmlinux 0xaa3aa099 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xaa4b0820 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xaa4d697a get_super +EXPORT_SYMBOL vmlinux 0xaa72d1fa inet_csk_accept +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaef59b1 netpoll_setup +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaaf9f7a7 ps2_init +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab1d6b2f alloc_file +EXPORT_SYMBOL vmlinux 0xab5e79bb bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xab5fa5c8 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab665fbc prepare_binprm +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab8d5f1e __lru_cache_add +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xabba8cb6 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xabbde082 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xabc1dee6 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd7fd91 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xabdfb8d9 mmc_register_driver +EXPORT_SYMBOL vmlinux 0xabebc09e inet_bind +EXPORT_SYMBOL vmlinux 0xac03e879 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac41b06f tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xac4c6539 iunique +EXPORT_SYMBOL vmlinux 0xac4d7154 journal_start_commit +EXPORT_SYMBOL vmlinux 0xac4ed883 blk_init_tags +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac5b32da __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xac606127 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xac664db9 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac74f531 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xac763b3f fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0xac879797 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xac9b84f3 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xacbb574b generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacfe9d0b pci_request_region +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0d98a8 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad15e130 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xad1b950e try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xad206de7 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy +EXPORT_SYMBOL vmlinux 0xad2d26de cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xad2fc012 thaw_process +EXPORT_SYMBOL vmlinux 0xad3da71d pci_get_slot +EXPORT_SYMBOL vmlinux 0xad417648 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad512319 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xad72139f neigh_compat_output +EXPORT_SYMBOL vmlinux 0xad735a8c jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xad7fc62a tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xad92e7be scsi_target_resume +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadafa305 km_new_mapping +EXPORT_SYMBOL vmlinux 0xadd25215 inet_select_addr +EXPORT_SYMBOL vmlinux 0xaddaecc8 scsi_print_command +EXPORT_SYMBOL vmlinux 0xae1b6701 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xae2e9daa blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xae6e3063 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xae89057f nf_log_unregister +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xaea8d6be fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeadf668 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xaecb18c3 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xaedaa23f hippi_mac_addr +EXPORT_SYMBOL vmlinux 0xaee11f5a locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xaee5e95c ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xaef31976 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xaef78a97 bd_claim +EXPORT_SYMBOL vmlinux 0xaefb0cd2 invalidate_partition +EXPORT_SYMBOL vmlinux 0xaf268a6c __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1e43 fd_install +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf73c87b __brelse +EXPORT_SYMBOL vmlinux 0xaf8a7135 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xaf8a9b06 bdi_init +EXPORT_SYMBOL vmlinux 0xaf99d340 page_readlink +EXPORT_SYMBOL vmlinux 0xafabc36b zero_fill_bio +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafbab16b in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xafe3a9b2 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb02f4618 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xb0426c11 udp_prot +EXPORT_SYMBOL vmlinux 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL vmlinux 0xb052d3a1 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xb05436e1 proc_symlink +EXPORT_SYMBOL vmlinux 0xb05a9739 pipe_lock +EXPORT_SYMBOL vmlinux 0xb063990e generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xb06d3a4a i2c_del_driver +EXPORT_SYMBOL vmlinux 0xb07dd116 dev_uc_add +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb089a814 page_put_link +EXPORT_SYMBOL vmlinux 0xb095c228 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xb0ab84ff i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d09e61 igrab +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ea398c free_task +EXPORT_SYMBOL vmlinux 0xb0ef1c80 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb119d74d security_d_instantiate +EXPORT_SYMBOL vmlinux 0xb11e5f58 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb127cc5b vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xb1471bbf k8_northbridges +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb19150f9 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c88da3 keyring_search +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb1ff68a9 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22b7aaf pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2638ef8 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26ebbd2 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xb2884255 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xb2c36e10 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xb2c69d12 dm_table_event +EXPORT_SYMBOL vmlinux 0xb2dd7c3f neigh_seq_next +EXPORT_SYMBOL vmlinux 0xb2e063fe genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xb2e55898 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb2fe65d6 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xb2ff4eed neigh_create +EXPORT_SYMBOL vmlinux 0xb32658e6 set_pages_wb +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb334e175 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb37adb9e pcim_iounmap +EXPORT_SYMBOL vmlinux 0xb37c74b8 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xb3c84ca9 cdev_del +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb40e6e65 seq_bitmap +EXPORT_SYMBOL vmlinux 0xb41e1496 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb429978e pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xb432e2f7 input_inject_event +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb452cb6f con_is_bound +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4aa1881 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xb4c37d04 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xb4c99e37 dev_addr_add +EXPORT_SYMBOL vmlinux 0xb4d93b3c poll_freewait +EXPORT_SYMBOL vmlinux 0xb4fac69c vfs_llseek +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5287a52 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54ab608 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xb54f6ed6 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xb550522f revert_creds +EXPORT_SYMBOL vmlinux 0xb5855388 skb_seq_read +EXPORT_SYMBOL vmlinux 0xb58ac200 kill_pid +EXPORT_SYMBOL vmlinux 0xb590bae6 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5f28b5f __any_online_cpu +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6368186 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb680c740 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xb684f0c1 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xb6a05f9d get_sb_single +EXPORT_SYMBOL vmlinux 0xb6a26c60 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b33aed bio_integrity_free +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d7e52b __secpath_destroy +EXPORT_SYMBOL vmlinux 0xb70810c6 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xb711ddf3 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xb7544e7d unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb7596bb2 i2c_master_send +EXPORT_SYMBOL vmlinux 0xb77960f1 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xb77e7c4c filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xb77fcbec input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xb7adf2c9 devm_iounmap +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7cbcc4f vmtruncate +EXPORT_SYMBOL vmlinux 0xb7ddb0ad unregister_key_type +EXPORT_SYMBOL vmlinux 0xb812187d devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xb81e8c29 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xb8300e92 md_write_start +EXPORT_SYMBOL vmlinux 0xb841bf1c should_remove_suid +EXPORT_SYMBOL vmlinux 0xb854e584 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xb858a1f7 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb87d25c2 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xb8972a15 __lock_page +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8a67940 inet6_getname +EXPORT_SYMBOL vmlinux 0xb8c21336 cdev_add +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb92da4dd phy_stop +EXPORT_SYMBOL vmlinux 0xb93b94be sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xb950d340 neigh_table_init +EXPORT_SYMBOL vmlinux 0xb95d28d7 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0xb97bd159 secpath_dup +EXPORT_SYMBOL vmlinux 0xb97d4928 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xb97d9153 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xb97e789c fb_pan_display +EXPORT_SYMBOL vmlinux 0xb9853d7b scsi_finish_command +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9d4a0c4 inet_addr_type +EXPORT_SYMBOL vmlinux 0xb9d77d07 pci_save_state +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9ef2754 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xb9fc29e2 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba2a1bc2 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5a669c abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xba7dfb57 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0xba7f512c dev_uc_del +EXPORT_SYMBOL vmlinux 0xba8db506 bio_alloc +EXPORT_SYMBOL vmlinux 0xba90d3b4 tty_register_device +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbabbb351 bio_free +EXPORT_SYMBOL vmlinux 0xbac42042 journal_get_create_access +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbae08112 bio_pair_release +EXPORT_SYMBOL vmlinux 0xbb0c773f sk_alloc +EXPORT_SYMBOL vmlinux 0xbb1195a8 neigh_lookup +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3e688e fb_blank +EXPORT_SYMBOL vmlinux 0xbb40869d pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xbb4cb3a4 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xbb4fa23f deactivate_super +EXPORT_SYMBOL vmlinux 0xbb5a1b05 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb61c1db dst_release +EXPORT_SYMBOL vmlinux 0xbb741ed6 override_creds +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbdb55f0 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xbbf9dfb2 journal_destroy +EXPORT_SYMBOL vmlinux 0xbc02aaae generic_writepages +EXPORT_SYMBOL vmlinux 0xbc0c9261 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc347675 dma_set_mask +EXPORT_SYMBOL vmlinux 0xbc3861b7 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xbc5540e2 ilookup5 +EXPORT_SYMBOL vmlinux 0xbc6029be dput +EXPORT_SYMBOL vmlinux 0xbc7d8a14 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xbc94e644 simple_write_begin +EXPORT_SYMBOL vmlinux 0xbc96c195 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xbc9f5962 tty_write_room +EXPORT_SYMBOL vmlinux 0xbcabb9dc mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xbcb6e1c8 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd7a7ac pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xbce69a7e scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xbcf6412b nf_log_register +EXPORT_SYMBOL vmlinux 0xbd086211 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xbd24a5fa xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xbd3790c1 input_grab_device +EXPORT_SYMBOL vmlinux 0xbd46ff36 filemap_fault +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdb95db4 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xbdd2d7de ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xbdf26640 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0823c5 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe599ac6 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xbe7d61dc revalidate_disk +EXPORT_SYMBOL vmlinux 0xbea7f388 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xbeeadc02 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf04f59f __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xbf09622e dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xbf191d97 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xbf3cb249 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xbf46a5b5 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xbf6c39a0 thaw_super +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8d4800 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb2b667 wake_up_process +EXPORT_SYMBOL vmlinux 0xbfbcead6 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfdb60a8 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xbfe857b3 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbff8ae6a shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc0049500 dev_addr_init +EXPORT_SYMBOL vmlinux 0xc0119358 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xc02ba837 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xc0345b41 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0xc03f0f08 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xc04ec889 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc06a3a77 __lookup_one_len +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a335d4 may_umount_tree +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0aba53d swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xc0cae8c3 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xc0cf991e sock_kfree_s +EXPORT_SYMBOL vmlinux 0xc106e800 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xc1268644 idr_init +EXPORT_SYMBOL vmlinux 0xc14b3610 pci_get_class +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc1a18fdb ppp_dev_name +EXPORT_SYMBOL vmlinux 0xc1adb999 journal_stop +EXPORT_SYMBOL vmlinux 0xc1b171d7 __napi_schedule +EXPORT_SYMBOL vmlinux 0xc1b8d0d7 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xc1bbd1f6 sock_create_kern +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1e07884 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xc1e89689 filp_open +EXPORT_SYMBOL vmlinux 0xc1f89b52 sk_reset_txq +EXPORT_SYMBOL vmlinux 0xc1fa6551 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc270c101 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xc299fd6d module_refcount +EXPORT_SYMBOL vmlinux 0xc2b6c983 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xc2bb56b3 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fdbcb4 log_start_commit +EXPORT_SYMBOL vmlinux 0xc31ce612 do_truncate +EXPORT_SYMBOL vmlinux 0xc325be01 blk_unplug +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc34fb5e5 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xc35e6e92 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xc369f187 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3b11160 sock_create_lite +EXPORT_SYMBOL vmlinux 0xc3cd6bcb sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xc3ff5ea7 pci_clear_master +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc425c8aa udp_proc_register +EXPORT_SYMBOL vmlinux 0xc435a3a0 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xc446b0bc xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xc4594b64 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xc464ca7f request_key_async +EXPORT_SYMBOL vmlinux 0xc489ac42 __put_cred +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4afaafb journal_create +EXPORT_SYMBOL vmlinux 0xc4c959e1 create_mnt_ns +EXPORT_SYMBOL vmlinux 0xc4de6b1c skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xc4e2d475 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xc4e4a5df dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e9c01c cpu_active_mask +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53fa348 unregister_netdev +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc57557c4 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0xc5820138 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xc5b9c892 tty_register_driver +EXPORT_SYMBOL vmlinux 0xc5c2f725 release_sock +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5eed506 ps2_end_command +EXPORT_SYMBOL vmlinux 0xc5efac49 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xc603eeb9 __mutex_init +EXPORT_SYMBOL vmlinux 0xc6233f2e request_key +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc636c5d8 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc679b385 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xc67cd8ef neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6bfeb08 kobject_init +EXPORT_SYMBOL vmlinux 0xc6f08f5d blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc746ab0a fb_show_logo +EXPORT_SYMBOL vmlinux 0xc796c81f input_free_device +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4666d __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7d16c15 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc7f3ba8e pskb_copy +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc854183f __inet6_hash +EXPORT_SYMBOL vmlinux 0xc8601c4b i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xc86bca4d nlmsg_notify +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc888b796 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8b46a35 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xc8b4f026 dquot_enable +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8bfd0d8 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xc910c8ae blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xc9253729 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xc946e7ff generic_file_fsync +EXPORT_SYMBOL vmlinux 0xc94b21b3 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xc9605c60 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xc97efd55 uart_match_port +EXPORT_SYMBOL vmlinux 0xc98784e9 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xc988186f dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xc99be733 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xc99d739c ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9c155a1 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xc9cc5401 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xc9cd1184 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0xc9fa70b1 sock_map_fd +EXPORT_SYMBOL vmlinux 0xca509cbb bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca680604 key_task_permission +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca99b3e7 lease_modify +EXPORT_SYMBOL vmlinux 0xca9e3346 aio_complete +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcaf2747f tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xcafbc30e pagevec_lookup +EXPORT_SYMBOL vmlinux 0xcafcbd3f hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0xcb4bebd8 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcbcb2778 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0xcbd05c45 md_integrity_register +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc1da640 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc25800b tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc57370b udp_poll +EXPORT_SYMBOL vmlinux 0xcc5e1565 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xcc5fd4c4 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8ac0cb sock_kmalloc +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xccac8c7f __napi_complete +EXPORT_SYMBOL vmlinux 0xccc78655 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xccf4deb6 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0xccf6acac starget_for_each_device +EXPORT_SYMBOL vmlinux 0xcd2e274c netlink_dump_start +EXPORT_SYMBOL vmlinux 0xcd449f1d security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xcd6306d3 blk_run_queue +EXPORT_SYMBOL vmlinux 0xcd6b13b1 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xcda404fa get_agp_version +EXPORT_SYMBOL vmlinux 0xcdb0aa33 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xce06c472 may_umount +EXPORT_SYMBOL vmlinux 0xce0ea8ff xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce4554e4 soft_cursor +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce52228e sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xce92551c pci_dev_driver +EXPORT_SYMBOL vmlinux 0xceb8ab6c blk_free_tags +EXPORT_SYMBOL vmlinux 0xcebc0743 alloc_trdev +EXPORT_SYMBOL vmlinux 0xcede4ab7 ppp_input +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcef9ce11 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf01dca7 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xcf1030cb pci_set_power_state +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf4252a3 bdget_disk +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf892ff1 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xcfabc599 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfc37a00 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xcfcae424 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xcfd07756 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy +EXPORT_SYMBOL vmlinux 0xd00a182d __register_binfmt +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0323877 eth_header +EXPORT_SYMBOL vmlinux 0xd0452aee x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xd0511b56 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xd06a113b dquot_quota_on +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd08249af scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0e9940f __ip_select_ident +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1181d0a generic_getxattr +EXPORT_SYMBOL vmlinux 0xd139b8b2 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xd13c40ed read_cache_page_async +EXPORT_SYMBOL vmlinux 0xd13fd7ca seq_release +EXPORT_SYMBOL vmlinux 0xd1470c0f eth_header_parse +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd1504d62 sk_stream_error +EXPORT_SYMBOL vmlinux 0xd15d0ba7 pcim_iomap +EXPORT_SYMBOL vmlinux 0xd161ecfe bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xd169af32 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xd1838b8c swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1a9e91c generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xd1bb6930 pci_match_id +EXPORT_SYMBOL vmlinux 0xd1be6766 input_register_device +EXPORT_SYMBOL vmlinux 0xd1c7470b blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xd1ccac5f dev_add_pack +EXPORT_SYMBOL vmlinux 0xd1e84969 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1f7f41d alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0xd20bd7f3 vfs_readdir +EXPORT_SYMBOL vmlinux 0xd2119dcc nf_reinject +EXPORT_SYMBOL vmlinux 0xd2177d33 skb_copy +EXPORT_SYMBOL vmlinux 0xd21a77b6 tcp_child_process +EXPORT_SYMBOL vmlinux 0xd222b489 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd241a3b6 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25c240f i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2721823 mpage_writepages +EXPORT_SYMBOL vmlinux 0xd273ef50 fasync_helper +EXPORT_SYMBOL vmlinux 0xd27d05ea dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xd2829d10 ip_route_output_key +EXPORT_SYMBOL vmlinux 0xd284e982 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a5d999 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2ac6ecc pnp_get_resource +EXPORT_SYMBOL vmlinux 0xd2af50ad vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xd2e4def3 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xd32c7a43 dst_discard +EXPORT_SYMBOL vmlinux 0xd330ce45 kobject_set_name +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd362fed5 key_type_keyring +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3a07527 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xd3ad1599 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd4079e5b kobject_del +EXPORT_SYMBOL vmlinux 0xd416a453 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xd433a9ab blkdev_fsync +EXPORT_SYMBOL vmlinux 0xd44ef87b udp_ioctl +EXPORT_SYMBOL vmlinux 0xd45084df jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xd45205ce __neigh_event_send +EXPORT_SYMBOL vmlinux 0xd46bdb5d ip_setsockopt +EXPORT_SYMBOL vmlinux 0xd47562bf tcp_parse_options +EXPORT_SYMBOL vmlinux 0xd47d3115 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xd4938c45 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xd508284d lock_sock_nested +EXPORT_SYMBOL vmlinux 0xd50950bb xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xd5099a24 migrate_page +EXPORT_SYMBOL vmlinux 0xd50b0963 sock_update_classid +EXPORT_SYMBOL vmlinux 0xd50dedb9 bio_map_kern +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5405214 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xd5413999 init_task +EXPORT_SYMBOL vmlinux 0xd54912fc noop_qdisc +EXPORT_SYMBOL vmlinux 0xd556450b xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd577a5dd register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages +EXPORT_SYMBOL vmlinux 0xd5856857 arp_tbl +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5be31ef journal_abort +EXPORT_SYMBOL vmlinux 0xd5bea353 tcp_connect +EXPORT_SYMBOL vmlinux 0xd5ca1555 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xd5cb5022 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xd5f7a112 skb_insert +EXPORT_SYMBOL vmlinux 0xd6022ac4 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xd6088cdd kset_unregister +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd615ab6c i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd637dc26 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xd63e1a5c unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xd67478c6 audit_log_end +EXPORT_SYMBOL vmlinux 0xd685dae9 dquot_release +EXPORT_SYMBOL vmlinux 0xd687ae24 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6aa1bb3 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6b7f2f2 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xd6d842ff current_fs_time +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd7193830 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xd72a9a7a xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xd739c144 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xd740a986 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xd7424762 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xd746e7b6 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xd751d994 path_get +EXPORT_SYMBOL vmlinux 0xd757da1b scsi_print_result +EXPORT_SYMBOL vmlinux 0xd778830e vfs_mknod +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7e8eab3 scsi_device_put +EXPORT_SYMBOL vmlinux 0xd7ed8661 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xd7f83816 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xd800534c __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xd80854f7 bdget +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd87c4dff phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8bb1981 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xd8d49c5b blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xd8dee5a0 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd927fbd0 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92e3d96 set_irq_chip +EXPORT_SYMBOL vmlinux 0xd92efe9f current_task +EXPORT_SYMBOL vmlinux 0xd936efb6 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xd93a4de4 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd94b53e7 netif_napi_add +EXPORT_SYMBOL vmlinux 0xd95c6ef5 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xd975d0db alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xda03a10e skb_pad +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda0b82c4 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda55f11b agp_bridge +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda5d5030 dma_ops +EXPORT_SYMBOL vmlinux 0xda681b7c tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xda76e1f5 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xda9b208e read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xdab2331b file_permission +EXPORT_SYMBOL vmlinux 0xdad358f4 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xdad99aa1 pci_enable_device +EXPORT_SYMBOL vmlinux 0xdb1fe565 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xdb251d5e acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xdb2aa1bb pci_set_mwi +EXPORT_SYMBOL vmlinux 0xdb2d111a set_disk_ro +EXPORT_SYMBOL vmlinux 0xdb31c2a8 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xdb54392f inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xdb55b9de bio_copy_user +EXPORT_SYMBOL vmlinux 0xdb5b3395 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xdb5d7816 fput +EXPORT_SYMBOL vmlinux 0xdb77552a dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0xdb8d8cef get_gendisk +EXPORT_SYMBOL vmlinux 0xdbadcdfc ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xdbb5ad5c node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbcfac00 input_event +EXPORT_SYMBOL vmlinux 0xdbdd9c9d kernel_read +EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2f60a6 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xdc32a31f xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xdc373f25 take_over_console +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc6d8bbe try_to_release_page +EXPORT_SYMBOL vmlinux 0xdc74efeb iterate_mounts +EXPORT_SYMBOL vmlinux 0xdc8f2c19 kernel_bind +EXPORT_SYMBOL vmlinux 0xdc98aa2c security_inode_readlink +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca9c807 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcba67fd simple_dir_operations +EXPORT_SYMBOL vmlinux 0xdce1ce59 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xdce2a8fc unregister_con_driver +EXPORT_SYMBOL vmlinux 0xdce98eae fb_get_mode +EXPORT_SYMBOL vmlinux 0xdd147bce pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xdd42d412 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xdd4ad457 softnet_data +EXPORT_SYMBOL vmlinux 0xdd616a83 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xdd81c320 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xddbe4fbf cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xddc64cb6 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde1f37dc pci_iounmap +EXPORT_SYMBOL vmlinux 0xde2a2945 simple_rename +EXPORT_SYMBOL vmlinux 0xde2c5e9b thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xde466b15 dst_alloc +EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde918c8b inet_del_protocol +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9a5fb7 agp_backend_release +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdec60584 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xded79623 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf43b04a writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf8dc068 inode_init_always +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf9c4b5d sync_blockdev +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfe764d1 iget5_locked +EXPORT_SYMBOL vmlinux 0xdff6139f tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xdff9afb9 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xe05bc6da inet_stream_ops +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0775648 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xe09f4492 security_file_mmap +EXPORT_SYMBOL vmlinux 0xe0a1eb56 register_gifconf +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0bd0af4 vfs_create +EXPORT_SYMBOL vmlinux 0xe0c43d39 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xe0e3afa0 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe13e3676 deny_write_access +EXPORT_SYMBOL vmlinux 0xe1521e4a uart_suspend_port +EXPORT_SYMBOL vmlinux 0xe165d6f9 ps2_command +EXPORT_SYMBOL vmlinux 0xe166b5cc tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe19d0499 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xe1a08ac4 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xe1a83686 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xe1cd2721 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xe1cf8384 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xe1d01090 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xe1d1fbe0 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xe1d442aa sock_no_getname +EXPORT_SYMBOL vmlinux 0xe1ef71ac pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xe1f58412 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xe2206cc4 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe252df40 __netif_schedule +EXPORT_SYMBOL vmlinux 0xe27ed037 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe2d2a396 scsi_unregister +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d9a19d backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xe3380100 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xe356c66a cpu_core_map +EXPORT_SYMBOL vmlinux 0xe36a2d30 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xe3779515 generic_read_dir +EXPORT_SYMBOL vmlinux 0xe382f61f scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xe38d7ac0 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xe3914589 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xe3a03e16 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3b4164f qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xe3cbb26a blk_sync_queue +EXPORT_SYMBOL vmlinux 0xe3dcae0a nf_setsockopt +EXPORT_SYMBOL vmlinux 0xe3ea511f ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xe3f58f56 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe40047bb ip6_frag_init +EXPORT_SYMBOL vmlinux 0xe412acae md_check_recovery +EXPORT_SYMBOL vmlinux 0xe4213a9d nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xe4225afc d_invalidate +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe436a259 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xe445a3bf inet_accept +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe465f837 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4ac36e9 do_splice_from +EXPORT_SYMBOL vmlinux 0xe4b24b8c __next_cpu +EXPORT_SYMBOL vmlinux 0xe4df4136 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xe4fc677a fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xe50ec81a blk_start_request +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe52d2145 __destroy_inode +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe53ee230 phy_print_status +EXPORT_SYMBOL vmlinux 0xe5554f7e elevator_init +EXPORT_SYMBOL vmlinux 0xe5698a89 udplite_prot +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58fb1b2 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xe59bdda0 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xe5a1617b seq_path +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d0700a generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xe5dcc820 skb_tx_hash +EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f23151 bioset_free +EXPORT_SYMBOL vmlinux 0xe656ba3b i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe6932e00 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6b22b45 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xe6bd8cf6 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe711a0ff xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xe71664e0 ps2_drain +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe72a7d8e sg_miter_stop +EXPORT_SYMBOL vmlinux 0xe742da04 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe7649695 serial8250_register_port +EXPORT_SYMBOL vmlinux 0xe76d5721 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xe776a4ac security_path_chmod +EXPORT_SYMBOL vmlinux 0xe77f6f14 seq_write +EXPORT_SYMBOL vmlinux 0xe7846c96 bdput +EXPORT_SYMBOL vmlinux 0xe7cc3148 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xe7cd59ec tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e83470 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xe7f9a605 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xe7fca12d remove_arg_zero +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe80d85fb create_empty_buffers +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8185f3d find_get_page +EXPORT_SYMBOL vmlinux 0xe83eab31 skb_clone +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe85c3da3 lock_fb_info +EXPORT_SYMBOL vmlinux 0xe8765744 sk_common_release +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87da0d4 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL vmlinux 0xe8d30799 rfkill_register +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90d48fb bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91edc0f ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xe988466d devm_ioremap +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9afa030 sock_register +EXPORT_SYMBOL vmlinux 0xe9d84c8c lookup_bdev +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea11974e pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xea147363 printk +EXPORT_SYMBOL vmlinux 0xea3b2d14 neigh_update +EXPORT_SYMBOL vmlinux 0xea472480 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xea6e1736 free_netdev +EXPORT_SYMBOL vmlinux 0xea7a59cb i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeadc4bb7 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb0dd4b0 dquot_operations +EXPORT_SYMBOL vmlinux 0xeb15ca17 dm_io +EXPORT_SYMBOL vmlinux 0xeb1d0d31 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb7fda54 security_path_mknod +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb9d960e xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xeba7ee9b ip6_xmit +EXPORT_SYMBOL vmlinux 0xeba9a847 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebcb0afa mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xebcb20b0 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebe4ed1d netif_rx +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec241445 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xec2cbef1 no_llseek +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec67368d wireless_spy_update +EXPORT_SYMBOL vmlinux 0xec739220 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xecab3146 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xecae960e xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xeccae092 put_io_context +EXPORT_SYMBOL vmlinux 0xecf7c430 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xed2c4180 install_exec_creds +EXPORT_SYMBOL vmlinux 0xed4257cc freeze_bdev +EXPORT_SYMBOL vmlinux 0xed633f70 key_link +EXPORT_SYMBOL vmlinux 0xed80702f scsi_init_io +EXPORT_SYMBOL vmlinux 0xed866ae2 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed9996d6 rtnl_notify +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda3ce63 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xedb468e9 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedeb44b5 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xee082844 nf_log_packet +EXPORT_SYMBOL vmlinux 0xee2bc709 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee2e286f alloc_fddidev +EXPORT_SYMBOL vmlinux 0xee380af9 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xee5cd7eb agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeede9ae thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xeef80f28 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xef0beca7 simple_unlink +EXPORT_SYMBOL vmlinux 0xef23c3b6 input_close_device +EXPORT_SYMBOL vmlinux 0xef46b509 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xef50a955 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xef576b8c inode_permission +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef766cf4 filemap_flush +EXPORT_SYMBOL vmlinux 0xef7ad16c sock_no_listen +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefb5faa4 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xefc262f6 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xeffad35b dquot_scan_active +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0113c8e fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xf01e9537 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xf0415554 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf079c151 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09c9b40 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0b7a2e7 mapping_tagged +EXPORT_SYMBOL vmlinux 0xf0cceaf6 init_special_inode +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fb530b inode_set_bytes +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf1071b6a __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf12f1ce6 blk_plug_device +EXPORT_SYMBOL vmlinux 0xf140454b __getblk +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf1893b08 journal_start +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1c05766 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xf1d1ddac jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xf1d22946 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xf1d596ca sock_create +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f7c142 pci_request_regions +EXPORT_SYMBOL vmlinux 0xf1f924de blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xf1fcdb63 dm_get_device +EXPORT_SYMBOL vmlinux 0xf2065c99 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xf206cfc3 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf213d193 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xf22beacd clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xf2573e4d __rta_fill +EXPORT_SYMBOL vmlinux 0xf25a5617 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xf287fa66 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xf28c3c23 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xf28cf71b mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xf292673f noop_llseek +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2d97eed tty_port_close_start +EXPORT_SYMBOL vmlinux 0xf2e15e4d md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xf2fce430 end_page_writeback +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31893d2 dquot_resume +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf348feca sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xf379e324 netpoll_poll +EXPORT_SYMBOL vmlinux 0xf37de227 set_pages_uc +EXPORT_SYMBOL vmlinux 0xf38477ed blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf38f2ef9 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39fd779 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d59ca6 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xf3ea8eb3 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf408f156 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xf40a962f pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xf42ddee9 ppp_input_error +EXPORT_SYMBOL vmlinux 0xf433adda pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf46bd0e6 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0xf482f77c security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf497cde8 rfkill_unregister +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4a6be52 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4b7af09 ip_dev_find +EXPORT_SYMBOL vmlinux 0xf4b8c35a abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xf4bcf285 bio_clone +EXPORT_SYMBOL vmlinux 0xf4d19095 bio_map_user +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf52a9a16 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf54a6039 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xf57a2e2a alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xf57ad089 set_pages_x +EXPORT_SYMBOL vmlinux 0xf5bbf0c6 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5e1c41a mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf6052b5e devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf61f2a72 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xf62984ef ps2_handle_response +EXPORT_SYMBOL vmlinux 0xf649efa1 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xf67010c7 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xf670264a inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6e537d7 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ec2675 tcp_poll +EXPORT_SYMBOL vmlinux 0xf70a2c60 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xf713bd05 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xf74ecc9d scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7b20eb1 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xf7bf85c6 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0xf7db21ad simple_pin_fs +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf815e5c7 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf8481f03 netif_device_detach +EXPORT_SYMBOL vmlinux 0xf84a430c kern_path +EXPORT_SYMBOL vmlinux 0xf85a2317 path_is_under +EXPORT_SYMBOL vmlinux 0xf8620db3 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xf87b83d9 open_exec +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8981db2 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8bbdae8 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xf8c5b9ac gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xf8e70818 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xf8fd4172 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xf90d66b6 nobh_write_end +EXPORT_SYMBOL vmlinux 0xf9129365 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xf9256d36 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xf9289f89 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xf930fbf2 notify_change +EXPORT_SYMBOL vmlinux 0xf959d641 arp_send +EXPORT_SYMBOL vmlinux 0xf9635df6 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf980e1da mntput_no_expire +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9d74967 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xf9fa8a81 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xfa256a69 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xfa3445f6 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xfa404b3c bd_set_size +EXPORT_SYMBOL vmlinux 0xfa530689 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xfa5b26b4 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xfa64666d neigh_seq_start +EXPORT_SYMBOL vmlinux 0xfa68ac3f pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xfa7d7701 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0xfa9a8f1d swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xfaf89602 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb3ea712 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfbb13e46 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbefeff3 security_path_symlink +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0e6ecb journal_errno +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4750d1 sk_wait_data +EXPORT_SYMBOL vmlinux 0xfc6ad8f9 blk_register_region +EXPORT_SYMBOL vmlinux 0xfc6e2bb6 path_lookup +EXPORT_SYMBOL vmlinux 0xfc7ab46e cap_file_mmap +EXPORT_SYMBOL vmlinux 0xfc7f0785 tty_name +EXPORT_SYMBOL vmlinux 0xfc86e941 netlink_set_err +EXPORT_SYMBOL vmlinux 0xfc8f99a7 alloc_disk +EXPORT_SYMBOL vmlinux 0xfc974838 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xfc99283b mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xfca041e1 key_alloc +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcaed323 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd58829 dev_get_stats +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd1cbe92 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xfd38fa9a lro_flush_all +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd774777 dev_change_flags +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd965a67 flush_old_exec +EXPORT_SYMBOL vmlinux 0xfd97f32a acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xfd9c991b i2c_transfer +EXPORT_SYMBOL vmlinux 0xfd9ecb65 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc31221 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xfde0d81c bio_put +EXPORT_SYMBOL vmlinux 0xfde1c738 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xfdf5f9db __break_lease +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe007cc0 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe1fec6a mmc_card_sleep +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe295b3f delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0xfe2b1084 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xfe2d94b6 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe4b613e xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xfe51a274 bdev_read_only +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7945dd acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe80803d scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xfe9f1857 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0xfea961ad kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xfeb36d66 release_firmware +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfec836d2 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xfece347e end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff090fd1 mutex_trylock +EXPORT_SYMBOL vmlinux 0xff182426 vga_client_register +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6b4daa journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xff6d7dcd dcache_readdir +EXPORT_SYMBOL vmlinux 0xff6f3cda dm_io_client_create +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff8e7c74 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff984224 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa0373b call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xffc79b89 napi_get_frags +EXPORT_SYMBOL vmlinux 0xffc7b3d0 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0xffd56255 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x03e41c3b kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b116020 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0bc21bf5 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1199fbe6 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x13885174 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14d3fe58 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1ed58ab6 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x249fe355 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a8dceba kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x31b96ad5 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x332d79cb kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3395f0c6 gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36560b7b kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x385359a9 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3c3af309 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41b9d0fd kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x46085e5d kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4748b340 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4d94c92f kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e75d76b kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e97d299 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x51a7df46 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53bd2448 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x578b9663 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x58022170 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a6f36ce kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b6462b9 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5cb8b0cf kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5d953e09 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62cd2262 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63175b68 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x634b3cb3 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x638cf9c3 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x689d060c kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6cfe636c kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x769c3161 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7818af46 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7ba25af3 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x81bcb4f2 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x876a0999 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x879f3ecc kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8880c6f4 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8904ff73 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8f4b41aa kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90d19364 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x93d06573 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x990c8642 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9ab1fdc8 emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8567b1e kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab23b8e1 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf099eaf kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf8fbb67 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb301b5ec kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb63b4219 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb8412c93 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd86163a kvm_handle_fault_on_reboot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc093301f kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc42d597e kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc96793fc kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc9f42505 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd099fbfb kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd21c6f29 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf93b9fd kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdfa32039 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1a876be kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe89c75f2 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeace743d kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec2136b5 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeee5afd3 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef006b36 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf16170db load_pdptrs +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0467fc5e crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xbadb72a7 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xbba2b7df async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xf845c3a2 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x59b66161 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xae6786f1 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x08e242cf async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xcfc29f3a async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd1340107 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf9995625 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6c87c4d5 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x9b728cb3 async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x4b078f2d cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x669e98d2 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7860e882 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x8aecc8e0 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x9796cf62 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x9ce69da2 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xf2662fab cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x875f90a7 twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0df49bf4 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x237dfd38 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x246b6787 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x435b2830 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4d30267b ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5bf905bc ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x630e02d8 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9eb08e55 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa2622fd5 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa362d895 ahci_sht +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc5d1074b ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd9429bbb ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf1b574b3 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00d2bba7 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x019de96b btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x28cef9d7 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x63f1f4f7 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6d23f8e0 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8a6687ae btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc9a9af8f btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xce904011 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1acffbeb tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1bb1b8c7 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x23d04e51 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2c7ad464 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2f3daecf tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x31dc48e0 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3cb1410d tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4138b4af tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x43eafd8c tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x453294ad tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4972aefb tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x540279b8 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x73ebc746 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8bbb4d3b tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa9313aec tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa952e2d4 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaa5ce7aa tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xabe3a900 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xba74fe10 tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc4acae2a tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe63e2438 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xef414315 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xef938b2f tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x4cc45bd2 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xc3609d47 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00b45338 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x1ad02b2d free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x26c54eae alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x42e496af unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x9dcb23ce dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xd0ef4176 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xd757583c dca_add_requester +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x7664237e amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x077a9ceb edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0ff1b00a edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2311490b edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x324fe78b edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x39b27807 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3f5fc8fa edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4e02d677 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x55748f32 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x57ac0a79 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x68c5d55c edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6bf4c064 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6dd8dc8d edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6f207dcd edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x75dff0fe edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7df1f14d edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8c9ff601 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x93e4779e edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9b17ac01 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb590f101 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbe3d107d edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc9ed2018 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xea9ecab9 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf38d0ead edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xff9dc455 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xce581744 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xdee77ea6 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x61e88f44 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x67558b27 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1e59201f hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2242b42f hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x27c2bc49 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x29294e92 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x34179ad5 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x41b6744a __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x54d45ada hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x68e17740 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6bdee2e0 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x71515505 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x745ce5a5 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e2d0fc2 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e977c46 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8bea11e1 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8f0cfe18 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x99c614cc hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa226e724 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa2e6d589 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa6ae1e30 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb9029e46 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc0ac74a7 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc7c4bc9c hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xce2d30ff hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdfdb2880 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe57d28ec hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xea6560d3 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x7f12da61 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x1a2b92f4 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x3fa98af1 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x89b5cd12 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb0cf1343 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3bfe0261 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3c313751 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x7f2fdb99 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x8af65828 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xbf3e2036 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x06c29b9a nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x576176c3 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xddf3f3f9 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x08894c18 hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x8e24ff4c hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x57af813c input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x02c672ad wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1f786ff7 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x224fdf19 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2efd67c6 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6489b68d wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa86ceade wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xae94fa11 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb26c70e2 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcb484e03 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xce6c7233 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xee6eee3d wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfeea2e99 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x07652ad8 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0f3ba714 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x197dd873 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x24a2d4df gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2b91a2d7 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x52b123fb gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7089cd35 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7baa5da7 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x856ed8a4 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x88023b25 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8bcefe7d gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x93af0a41 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa63ad3b2 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xaf368559 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8a06c84 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe3757667 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe906eb37 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xefb41a67 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x6d686225 led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x6e9c5744 led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xae7b6bff led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xbe19579c led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x24935f26 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xcdc24ab5 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xdbab0c01 raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x7851d7b3 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x78d49422 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xc27690a3 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3eb2952b ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4d82373f ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4f219dc7 ir_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x5c56ef3a ir_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9350ecaf __ir_input_register +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xddd8d245 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe3d0be93 ir_input_unregister +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xfc4b3699 ir_repeat +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1f4d01a0 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x228f6995 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x249ab28d saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x62833da4 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x82387f22 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8d79692a saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb4d722e5 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbde1452a saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc57516c7 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe2e55d2a saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf1a414e0 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x09ffa122 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2486d4c8 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4ec2496f saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5a5be387 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x62163350 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xaa42be64 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe463ca2e saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x209316e0 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xfa73a719 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xbcb98a30 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x0ee6258b tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x62efb894 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xc006c5be tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x7de6a58e tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x5e59dabc tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xd87d57be tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x8521c67a tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x9979c06a tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xad5237cd simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1314e4d1 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2cf905c0 gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3213e3d3 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3794d160 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3bb01eec mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3f222ae9 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x41522373 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x498aab63 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5badc8a0 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x631f5926 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x683ca97c mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7b1e1db7 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9a1a58ba mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc996ef2a mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd6eb2844 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd9ae9317 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe1321517 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x029a7c89 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x09728f9f smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x290ed45d sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3c08970b sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x41bf1fcc smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4a027b99 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x61344016 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x773fe09d smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9eab3aa2 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa8981dae sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xafa59d88 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbad89a2d smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc4faef25 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdc7ee4be smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe6f4249e smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xea782ce0 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xea8927d4 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf7e2f1ba smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfc2be47c sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x2ce128d3 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x6aafcbff ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7fa7c47e ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xab83439d ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc05f43f7 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd7b4689d ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xec47b08e ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0816d8b4 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1d0c6896 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4b21a3c2 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5ede9c4c cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x71bc7117 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x7362ae11 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xbf2ef784 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcd442ae9 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xebad497d cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfa73f4f5 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfa84c50e cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xceef85f5 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0fac5b2c em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x38ed2084 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7a061a82 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x96f4666c em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xfefa762d em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xffdaede7 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x4af3ebb2 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x5953f283 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x92adee9a saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd5eccfd9 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xf17bb1c0 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x23e6c1eb v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x249acc72 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x2d8a2a98 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x37ce659d v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x40d9719b v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xdb83efa3 v4l2_i2c_new_subdev_cfg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0x9e579f73 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x11b0271d v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x4021e394 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb5744400 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xf138bfc8 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0e0eb9af v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1bd8ed6d v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2ffdb6e1 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3b9dcf28 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x43de3c10 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x50d46ec4 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x53e27af4 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x65a61fc8 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7195eafb v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x84b54d6a v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9ec20d9f v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa1bc7647 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xace43aeb v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe99605a1 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x01f0f701 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x18ef17b8 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x191704d6 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1ba69391 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x34efcbe0 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3c532d79 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3ed34432 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4a22525c videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x58885ad2 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x64684e9c videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x68eca2ef videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6f0e1662 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x71c7c7dd videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x87a74c0b videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x975b267c videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9bde7bad videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9dfd2908 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa11409b5 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa5d835a0 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xacd04e55 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc84b2e9b videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd0e53524 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xda2383e2 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe4422bc1 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe4621ac2 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x75c46d6b videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x8c4ce3bf videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xcd94fdab videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2e361e0a videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x43510dcd videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x48edff63 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x60b4fa30 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x699af2c6 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7c378b6b videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x83bfaef8 videobuf_sg_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x862a87bf videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8eb46573 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xad6c3606 videobuf_sg_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb394b6f8 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x66a262cd videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x6ebab82d videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x97b9c651 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x139f1c1d v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1ce1c0c1 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2520c11e v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x25960097 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x32a2f6a8 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x43c5a728 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x446da4b8 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4842fa6f v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x53ae0a07 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x80e55668 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8e75a1b8 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa9975136 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xab618743 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xafae44f1 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcb38beb6 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdb6f592b v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xebf49e96 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf5073717 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1739cc74 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x4315d943 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x64da53e8 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x699b0e38 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7d0f0ddc i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa29f4baf i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb8385afb i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xeda214ea i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x45e08bab mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x23f83c85 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x485cb8b1 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6b088af5 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6b3fd121 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6bcb2b07 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7c1d8246 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8c6c296c pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8e82f13f pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9d21e3d5 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa0ffc3e7 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfbf11902 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x551b1c6d pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xcec172ef pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x18a1be36 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x1d69ded2 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x256d96df pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5a27acf1 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xface8c0f pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x008c81aa sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5a088ed2 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7d21af61 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf9746ecb sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xfcdf0156 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x269f78f6 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x3e9302c4 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb60cdb2a wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb65506bc wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xd7e66e7b wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2e285828 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x32f0901b cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x6837b877 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xd99ce829 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x06d04145 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x16627c42 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3e76ad2a enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x5721eef3 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x59d7ff59 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbdbcfa6e enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xff80ef16 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x20b78da9 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2aeba0a1 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5af00a8c sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x765b801c sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x792228d1 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcfc59bf7 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x079960b9 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2e839b1a cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x51e973ec cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x7a84a6c6 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x858392ad cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xd7b665eb cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xb15a76e1 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x11ee6dac cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x9f8afabe cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xfd761b71 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x351770cf DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xe83c2839 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xdb21c629 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2455b89c register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4830612b __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x491f6cba del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x51ad6c88 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x55b98fd9 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x619039ee put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6902086e register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6e09f067 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x70f11e63 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x89d68115 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8eddb9f2 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x93d0e11b add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaee80b52 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbc4ccaee get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbc7508d1 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdc9c0bf6 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeadc44e8 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf8bd4f99 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x856aa7e7 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x86f7acd1 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb4e88479 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xfd812d85 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x102cdc52 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x13f7f9fe nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x47997312 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x582c87d7 nand_unlock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x7b81e844 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x876bd42f nand_lock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xb99121e1 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xe5c482c9 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x46cb9f88 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xfa62ea6e onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x08cc381e ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x287aab01 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x30ecee15 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42dda578 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4d95982b ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6b0894f0 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9a4915aa ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9bad1633 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9ece4101 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa2d8db7d ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xad398cde ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc3507e41 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf0d8f7d2 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x07d4270e unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x176bf4d5 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1dcd6ed1 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x283e20b8 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2ee983d8 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x30547784 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3c00a994 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5e0518b1 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xad87b0c1 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc2c551e9 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc34f7a1f register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf2222a11 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3d723558 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x51c4cb3b alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5d7a3337 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd5d28111 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x213b1199 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x68d3b802 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7e767e3f macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xb1bd5c67 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc2b831d7 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x00240011 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01a321f7 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01e10f57 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x03538a9b mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x060f7350 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x08ce836b mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0a7b92c5 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1ffa0ad0 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x24d95ae9 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x32bb7524 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3682e21a mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x382967bb mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3e183e15 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x44f5660b mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x45e9bd50 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4c9332a6 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x51c6ef2f mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x529444c4 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x537df3ac mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x543d43ee mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x56bf0f17 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x575d88fe mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x58bb3ffd mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5957c281 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5a2561bb mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x767592b1 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7f905541 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x801541d3 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x848792f7 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89fd4a51 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x90a9f450 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9511a8ac mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x97971cc0 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9e8bfd22 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9fe7ce87 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa0aeab55 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa57f2a66 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb2c9eb4a mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb7f47d7f mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc6c75810 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc7295586 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xce46e6d9 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd24e609b mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd3a0a437 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xda46f49b mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd55ea43 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd9a0162 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdeda9e9e mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe02814df mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe1210fc8 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe7c51fa8 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf2b305a1 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf315e0de mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x029d75f4 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4e854955 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x312ef339 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x476c56f7 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5d22c1d5 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcfe5dde6 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf5b012d9 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfdae27f9 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x03e26949 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x256d1b45 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3364d6aa usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x35159f40 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x35bddff1 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3e1c5223 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x42011327 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4edc00c4 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6209bfd7 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x638bc82f usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7b904599 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7f9c3e99 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8400299f usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8df3b4de usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x99529808 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9ad9e7e9 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xacbb71d4 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb48a4d56 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb572b177 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc0418d5b usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc0ccd259 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd8b74db3 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe7fc3444 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xff5ed00a usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x048126e7 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1cf2a59e i2400m_cmd_get_state +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3d4965be i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x59108d69 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5fbd4515 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7744f729 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7895822f i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7c3c43b4 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9ea8e69b i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa56841c8 i2400m_set_init_config +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb2c3ea9d i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb2de5793 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb2fe8eff i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc57399f1 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe4edb7ac i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf109e70b i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf55a0614 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfac2fa41 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xc3ad7362 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x0318eb05 iwl_alloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x62c129c2 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xa55af7fb iwl_dealloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1108aa6b lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3ad65cbd lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x41cc2e5e lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x430638e4 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6bc2ee23 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x759ecf33 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x75bfeaf0 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x86c439bd lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x896f5862 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x90fe418d __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd0a27e10 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xed1fda47 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf7b2874e lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf9a6000f lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0c85d9ef lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x44108acc lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x79e709cf lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x90cef535 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9ce16b9c lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc4cf7c92 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdfa3ed59 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf7bdf17d lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xdbee7d12 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xffe1b4a9 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x43569ce6 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5734fddb p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x966a8c76 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xba89251e p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc655c7b0 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc9d3ae5b p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdcb19f97 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf7e35488 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfc562a72 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0874b9b9 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0ad5f963 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x16f432e4 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25ee1d1c rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2606e823 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2698a964 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3649adcf rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4526b821 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4c6a0e58 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5a8943c7 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x60b2dadb rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x63943f5f rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa128723e rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa96c0573 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xab23cfa9 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbe2dc8ae rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc1596152 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc4699cf0 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcd852742 rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcef515ff rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd41de5cf rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xddc0722e rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe8e8c104 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd9677be rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0e2043f4 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1896c3bd rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x19d602c4 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1ab6dc74 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c555751 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d9796b9 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4114d4f9 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x57f47b02 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x611a4932 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x71e4140e rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81691ce5 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x87f9c83d rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x925430c2 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9bcb1a67 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9bd2623f rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa0673a5a rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa1cfed7a rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xad1d0c17 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd872d23 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdfc0e2bb rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xebbedb06 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfdd08f18 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfe4cf3a0 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x028e11ae rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x14fe22a1 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x22ce7a28 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x734f2c11 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb152ee1c rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc233c2f3 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdeb05e36 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf537d8a3 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf54d6904 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1f4bb7c8 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x225a5d77 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4470e324 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x484fedd9 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6e12abfd rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7b0da765 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8855e459 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ab8cd51 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa3c0a744 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbe419b69 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc67c1399 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc8e11a48 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcdd162ad rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd6f2364b rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd975240c rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfefe1b92 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x52f5d14c wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x905aa812 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xbd7993f8 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x09248824 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x47da8b0d wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xc2b1bf65 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xd3b9dfab wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xecbfda49 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x200aa29f acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x39043ca4 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6d60fb63 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x991cf097 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xa19d8e48 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x56990278 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x76734a97 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8e445e5a wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xdc365b72 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf490a604 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf90c92ad wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xb711a205 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7297fa53 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x02066736 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08ea813f iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1aedff7e iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x204963ac iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e7fd22b iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3eb465d7 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4356b17c iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47f716b6 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ad6a8fd iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52a2faae iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x56138da2 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59096ee2 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5aac030d iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b134f0c iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5dc2d206 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x676c5780 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c586101 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x724a5614 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f2e0237 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x86829ab4 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x883375bf iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8aa7ce73 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b1f6a48 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9dd81351 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e89f240 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e8b4d5b iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9fb5f5ac iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa7b919c2 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaa66e828 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xacf60adb iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaedfc338 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6bebe59 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbc54a366 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xca026b3e iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf4bdf38 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd5b9db65 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd8183e11 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xded44479 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe62a2411 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfcd9ef9d __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff8a80c7 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffe8ce61 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0755d62f iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x185dd79a iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1f2114b8 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2b9db543 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4abc7d81 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x606706cf iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6746af00 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8df363e0 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x97a215e7 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa19384c0 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xac26fe24 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb0f5ca7c iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb95efc87 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbd3a41ee iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf6d98951 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf966f89a iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0884878a sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x28d173bf sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2dc6e474 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x459e10f4 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x578f022b sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x65a53e65 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x662970c2 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6920abcc sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6d684400 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x78f89c12 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9212e953 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa11f224b sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6317d59 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb3669791 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb5047062 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc49c527b sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd0a8045c sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd73c009a sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xda797121 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdf8337d4 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe119a598 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe8011665 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee96e592 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x25fc8e94 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x975058c7 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc6065735 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe12703f3 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe18ad661 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf22dd3c8 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x02db9456 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x380febdf scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x47ac10d1 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x52f209c4 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5cc41bb5 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x99987bb7 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xce38eae6 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe240b392 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe7d935d7 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x16989474 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x21189993 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fb40721 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fb7d659 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fe0b84e iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3330763b iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4220b038 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4ac9d46b iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x504a9924 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x583a732f iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x79fb50ff iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9c5e45b9 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9e307d47 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa542d122 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa56f5baf iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa77e799a iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb3288775 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb42bc1f2 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb48a1863 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe658306d iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe8d41d87 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf5d7a61c iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x11bc6376 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4660dfcc sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x539ca5cc sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe3154ca0 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x471b99a2 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x751a13ff srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x899228a0 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb7c115b5 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe6ab6ab3 srp_rport_add +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2fa45b99 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x55a7b22b spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x87a37377 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8ce03579 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x9e82a29c spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd469a24c spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0f5b649b comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x202e54bd comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x31652451 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xcf028832 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xeb785a96 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x1206a03b das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x9e869d5a das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x853bb98b labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xb69fed86 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x003c815b ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4a7281bc ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x70687e11 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x74e69a40 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x75f143ba ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x7e4ede4e ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xab070c2d ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf9f7063b ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x3e5432a7 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x879c65d3 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa63a517a ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xb05f4db5 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xcf3d4c37 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd987b56e ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0xbd79b6d2 st_register +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x844f3839 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xccf06d62 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xe4aef0d5 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x18097ef2 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2426247b usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3dae64cb usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7cac2f65 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x9ede01b9 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa7dc145c usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb109de39 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb7b5e526 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xce6f9966 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd366f62e usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe8831431 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xeb3d25b8 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xede5cc84 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf6993ccb usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf7ce25a0 usbip_task_init +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1f9c6e7d uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2bd23ac7 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xe8d724b5 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x293b0aa7 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdac310ef usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0ccb09e1 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5d0f676e usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x69dd58b7 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x768add0a ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7b3cd9f6 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x891281ed usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8a43c2e1 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xac746543 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf35c0022 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x001ba064 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x08bc2d7b usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1580bcf3 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2a5e20be usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3e95c701 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4605b987 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7d22dfc7 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x88be17d7 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x92b97d14 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9eab866c ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb958eeaa usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb9f58027 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbb83b34e usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd4cea3b usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcf34d77f usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd130b5d1 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf281e8f usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf9bd1fb usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xef071946 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x05e209be fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1a41b3ba usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x21bdef5c usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3d608008 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x528df765 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x57e62324 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5beab53d usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6a270076 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7f2ee8b6 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa2795281 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa2b0e203 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa76c9272 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xab0acabf usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb5e6ede4 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb8c44e22 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbf1a5c54 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xca174b4d usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xca990c6c usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcabe9438 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd308f462 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd7e6dc54 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe9a7599e usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf234e52a usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x1fd616fe __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5d50bf0b wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5d94624d wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x71d91c72 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x7e127481 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1b74c9c6 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1d89cffc wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1e082b19 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2429645d wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2462c1d2 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x27a76f46 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3138f53f wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3e0d9ac7 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x432e0f6a wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x472dda71 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f6dc0f0 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x83938211 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9b71ccc6 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa2388ac0 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc9c3ecc0 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf75a7f8a wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x0c27bf07 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x27218d65 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x662b1d1e i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x04ee50fe uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x0e293f89 uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x27d4657b uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x2bcbb99c uwb_pca_base_priority_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xa31d631b uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xc0a8aa66 uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe4ad89ac uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe6455304 uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x21bac704 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x75b6b7b9 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9eaafa2c umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa3690686 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xacb7a367 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xbf406fa7 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc3dfffc7 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc86b15c7 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x026ab9c9 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x02b757b9 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1024d81e uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1a4f070a uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1da3c435 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1dd31fe3 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1ed84830 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x235f24f7 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47ef86cd uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x52ab6108 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x55645834 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5efd1d65 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x632efeca uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c9df885 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x778c8a65 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x81d35772 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x829af69d uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x83c6c144 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8bb423a9 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8d1867fa uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x957758cf uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9bcbb567 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ce62753 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa08bb0b0 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaf068827 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb10eb84c uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb69ce2f0 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb807a368 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbe529f9e uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc6e4b4e0 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc994a584 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd2d2c4de uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe6ffe0db uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xea6836b9 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb988d88 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf518f6a3 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf786372e uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x672b34e8 whci_wait_for +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0b82a669 wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0fa153c4 wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x10411e3e wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x199cd80c wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1d01119f wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1ff4710f wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2c671f3f wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x342bf08b wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x36a339b6 wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3aed173b wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4035f072 wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4545cf38 wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x554000e8 wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5fc04b1e wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x74acd517 wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x75b21ac5 wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x82f18fdd wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8a6a7e95 wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8eb233f3 wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa5e330f2 wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa6950412 wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xba3c2209 wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc08a766a wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc3c85006 wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc651cdbb wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc7fd434f wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcde9f851 wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe5223ed2 wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe72c3e67 wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xea384d56 wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf58cf1c0 wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf611eb5f wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x264bfafc ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2b9de613 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6aea664a ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd3aed445 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xddd45e92 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xeddc0de3 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xee2464e0 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x39037aba fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x11358a8d fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x44740882 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x1134a57e sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x50233c65 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xc3d4d88b viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x0b6dfe54 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x14ec39e6 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x5e889861 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x7b8f6e5f virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x919a95bd register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0b393a71 vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0dfebc52 virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x118d61ba virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x341a754a vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5792e6a8 virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x7ad19c10 vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xb241e846 virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xb4b4782b virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc758d6bb virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/w1/wire 0x30eada91 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x53ac3411 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7eefd124 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9bfcd1a6 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa326d9eb w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb75e2fd8 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc7267373 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcbf7f466 w1_next_pullup +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x2e1ad9b6 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x6256a1ec dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xbf94404a dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xa83e6b5b exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xe50baf68 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x01f84109 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x191e08e8 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x23913ac7 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x2c3ece3b fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x39e5b671 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x516f0dd7 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x7085e879 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x7d424fa3 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x8e12ddcc fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x91f1284c fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x93bc4195 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xab46e990 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0xb2838614 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xbccbc4fe fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xd0573d1e fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xfa244f54 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xfc6f8407 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xff1d0ce7 fat_remove_entries +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x019fa0c8 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x49308be2 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x62a7ebdd nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9f7d0b98 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xfb5acb3b nlmclnt_init +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x1584eeba nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xb9a67a18 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x424ab8ba o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x479b4a14 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x585ad20a o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x68245aac o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa224697b o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd5f0227a o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfa0c56e9 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0a5e2b48 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x217b76c2 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x350acd35 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x83d1368e dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbb4432a3 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbea4fe5f dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x38d893f9 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x3fa29cb9 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb2457f9f ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x012844ff garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x2339a068 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x35665ad8 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x4b766253 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x9622bab2 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xa3d4e0f7 garp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x12013b75 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x263e18e1 stp_proto_unregister +EXPORT_SYMBOL_GPL net/ax25/ax25 0x14822da3 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x14884948 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x04b483ed dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x081b28ce dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b13eb2c dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x44f8a72d dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x48331f6f dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4efd1198 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x53e70dcf dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5773e611 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5c004adb dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5f228ced dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x61c44177 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x63e3204d dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x64ec0799 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x65409080 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x674cdbb9 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7a24bcac dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9b5585c9 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9c6638cd dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9e85a44b dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa200423d dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb115f54f dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc007b90 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbca2975f dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc9b53150 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf714124 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd0509a16 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd0d99104 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdacd6a98 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdbecae33 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf57e456 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe0f40164 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9d1ad63 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb3f26f1 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xed26fb25 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf9d6a5d8 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3948821d dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5681db9f dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x92d0a20e dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9d0f0073 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd317be62 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xff274da4 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x354a18fb arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x74d3c0c8 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xb121899b nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x14c0c911 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1a264b29 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x291e158c nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x46eb01bd nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x63f6b0fb nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcad4ef9f nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe2116156 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf626cb42 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x09eeaac3 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x16f2df22 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x94506930 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd61a8251 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe27abaa5 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x8400ed28 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x143cd9f4 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2cdb3193 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2f3d2a10 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x37e9391b l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x449e1069 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5fa95f85 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x752c2312 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7f4a2c76 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x848660c7 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8ce0f946 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa0978d0f l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa4efd7fa l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb48a5d87 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbf0cc4a4 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xce53fee4 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe8322053 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xedde05f2 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x19b2d77d ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3f047f58 ieee80211_find_sta_by_hw +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa542db25 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02ad6f60 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05add8a1 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07b02077 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0983d2b7 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0ba1ff37 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0de0783a nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e82f030 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16427076 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18a4714a nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a9bb918 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ed9e0a9 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22372f68 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22fa4f5f nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ac9d77a nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b244719 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d1cd991 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2de60d35 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e18b77c nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31982a42 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39979db5 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x399dc190 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bb5b035 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40fea194 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x410563cf nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4238fe50 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47cf4add nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49d6a1e1 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54267ed2 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x607a6110 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61220955 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6257d0d6 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62aaad60 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fc63f19 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ff762ab nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74e78cf2 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76018233 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x769c7652 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81abe1b4 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89fa1f33 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ea69279 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f036145 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a4fa675 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c7c0bda __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e601013 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f9227d3 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa8f3ff39 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab9fb74a nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae4fba3b nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafc972bc nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb02d7f38 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd8baeb2 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc032d6f5 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc34a4028 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcdaac899 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcde43009 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd43ace90 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda332831 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda3481cc nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xecc870a8 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeed3c35a nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa6c3202 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x75b2ed59 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x819959e9 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x15afac7b nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x199e48a2 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x325ba3e6 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x42421b6c set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x444d0b77 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x85a1d848 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa38de40e nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc0f39823 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf40e9a94 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf66306b1 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x0357187a nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x041212c9 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x24800451 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9b4fd299 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfb72560b nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xa2188eda nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xbc3aef20 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x116982ee nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x15ddee28 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x20db1670 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2445469e ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x522f68ee nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x681f18f9 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6f11a553 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7c536a76 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8e734f2b nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x937c40d8 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb0d24fa2 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc951a9f3 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe33aa118 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xe9e57d1c nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x358961f6 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x48b0643e nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x02750256 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3d2b3cd8 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x67c43ddf nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7cfe957c nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x87ac22bb nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd7ebf3f7 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xf3241f8c nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x055e64c8 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x06fd91e2 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x159b241f xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1f06188e xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x225107c5 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2a846e59 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x30b32011 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x33f4ef69 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x418334fc xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x48c5e907 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4aa2ba5a xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x684694c5 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8a58e7ad xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8f2a4347 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x99e693aa xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9e4a02dc xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa62e426b xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb7a39b26 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc34136bb xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf142347e xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x0dfeddf3 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x1dc41c96 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x22658776 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2ac3584e rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x6c06f614 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7ebd12f1 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x7ec2e6dd rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x7fdd6f6f rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x820641d4 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x83e28e71 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x851dc6b7 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x8c2fb3e1 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x955bd5c2 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x9c14e876 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xa06b0b0a rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xa3533439 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xbc1e0f1e rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc4f3b69a rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xc7051767 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xceb7c7e2 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xd8ad8ffe rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xe0a4cdd3 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x1183087e rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xfd43101d rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x15a59aef svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1a6e2410 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x364c2578 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3d1df51e gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x46124ad6 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x527960e6 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6106d47e svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6e285776 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb0e9d5df gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc74608b8 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe76359e1 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01e6d99f xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x038a6e6e xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x047317fa rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0492912f xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04cd1227 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06c843a0 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0861f810 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08993a53 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09861a07 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x098776b3 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a015a8a rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a047362 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a7b910c xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d674205 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ed5767a rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10434736 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10f98fd7 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11d1f934 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1232b9d7 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15660c60 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x160d8874 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17297030 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f476938 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25d72265 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26b6b004 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x271bc669 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28a0e26c svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28a6c885 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2be36a24 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ce41a8a sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3115c5bd svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x316bd96c xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3487e79b rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35d73617 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38a284de rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38e85ef5 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a40ba3d rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cd480cd rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d60da5e cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3db90135 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ed4be06 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41ba2f24 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x426bc877 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x430f380a svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46f6ff11 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49cce2bd svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a052c1c svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a81f75c svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ddc6c5d svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ee00971 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fa578b4 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x523321c2 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x540a3ea9 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x551bef41 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x557e795e xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5717d03f svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a561c0e rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b491559 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e3484b3 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fc4eee9 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x631024b0 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65c983b3 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x666ea610 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69c56852 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ae7aa08 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5c0516 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6da163a7 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x703b6bbc xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7107c434 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77251d12 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x772c70a2 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79b866c3 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81e09909 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8218c9f4 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82587f93 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x884bd34d rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ed25a53 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9256101b svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95e3852a auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96451d1d rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98454918 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x997cddb2 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eaac6ee sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eb2e0fa xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1fc8168 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3c98bab rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6804cc1 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6f33f82 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa925e605 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa83c78e auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaec89f7 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac0a9ed5 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadc8c122 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaebd94ff read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafa1b76c rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb106cb88 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1a06a3b xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1f7aa34 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2d49cfd rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4b9c498 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb515c49b svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb524e82f xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb77e44aa svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb893f0b6 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdc2b79d xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf2eff24 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2812aa5 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc53838e5 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6123fc5 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca080e76 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbd7d099 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce9adf43 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf51a3e2 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfe379a7 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0b2a683 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd41344d4 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd93bfecf rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd95ff592 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9c03e99 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdadd5b24 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd1d1f32 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe23c0cb5 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2e32c9c sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2ec4835 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3be9439 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6f67db9 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8afd1f6 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedf54725 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0212ec9 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0d924a0 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3515fa9 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf444a779 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf45dde29 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf879439f rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/wimax/wimax 0x030548f8 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0aad28a1 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0b283cb4 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x168e6a03 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3a102783 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x41b05ace wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x492c75af wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4a03e869 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x50bb06a2 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x72713793 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xad6266c1 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbc40ea95 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xcb2314b3 wimax_state_change +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0fe433b3 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1518a901 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x197b669d cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1ebc510c cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1f431c41 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x306e9e0d cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x34942e06 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x38ca1cf4 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3de8105a cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4e4062d8 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5de2db4a cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6597509f cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x721812e9 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x760bb561 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x786a4d02 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x79f4c80c cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x829e9182 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8568712a cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x88be336d cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9ff80af0 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa3517697 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa784900c cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8e2be3b cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaff8a627 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb1f24538 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbae20b7e cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc7e2be87 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc81dc3ea cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcf37471c cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd9853a49 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xef8576b4 cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf287b0bf cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1f2efbd8 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x839de867 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9a310ac5 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb45804ea ipcomp_destroy +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x6eac249e snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x74b3813b snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x8b7fcdb9 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb8c2a9c3 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbe744d25 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd26200ce snd_ak4113_build +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x003dfa8e snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0177a2e0 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04797664 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a4194cb snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0da17a1a snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10d32e2c snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11a3021d snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12458707 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14ac9c15 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16e0a85a snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1918dc0e snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c51c30f snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d69690f snd_hda_eld_proc_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1e5a2708 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27f10678 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28779faa snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x315e2358 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34aa9af3 snd_hdmi_get_eld_size +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34b933f2 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36b3d7bb snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3792ec90 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e030d7a snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e5419dd snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x409bbe2c snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x442ba250 snd_hdmi_show_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4515d8c0 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x463e07a2 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x488d426b snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49e05bba snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c40ea01 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c711266 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4faa6eef snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5373f1cc snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55f2b9f1 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56d966d4 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59f93d5f snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a7ad9e2 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b677438 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ba7af00 snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d43b342 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5e70021c snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ff747ed snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60889cf3 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68b48d3c snd_hda_eld_proc_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6bd90a77 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bb6dad9 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7eff1299 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x808989ab snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86dcc756 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ae6baa4 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8bf58b37 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c60ea09 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94166cfa snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9500c8f4 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9772fada snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d391dd6 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6e5130a snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8ae0efa query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa973b254 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa3ce302 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf4c9874 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0edef71 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb3405a0 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbffe49e6 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1681c8b snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc56fd2c9 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6d01c0b snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7471a75 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7a14c5e snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb104737 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd797db6 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcdf2a7b3 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc333ff5 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde78ee2e snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe09e7063 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3b5af01 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4d0c69b snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7e3982e snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7fe630d snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe89823f2 snd_hdmi_get_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeac1ab81 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef02e5b1 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef2bcf1e snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xefc62015 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf244918f snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2b7353d snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3da7faf snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa58b6c6 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x554603ab soc_codec_dev_ad1836 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x9fc83a5c ad1836_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x663051de ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x83000645 soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x3dbb78cf ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x5f2214bf soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x3e144fd0 soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x8dbe9e70 ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0xe81458c3 soc_codec_device_ak4104 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x39c543e1 ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xb5b7b510 soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x6fe84a34 ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xed0c9abc soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xc4677726 soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xd8942207 ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xe398b573 soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xfb978785 cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xabaaca2c da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xe290db93 soc_codec_dev_da7210 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x9fd9ef8f max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x22fc87c1 pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x45344e85 soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x58ba7c9d dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x4e814b4e soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x8b1baf58 ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x87eb2128 tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x8ed58200 soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x185f8f1a aic26_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xe26cab6d aic26_soc_codec_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3195f3d9 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3ed73b57 soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x496cb892 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x58645194 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8b7aefb2 aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd906141e aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf8c0e67b aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xb3147c41 dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xefaa3245 soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x62fd0397 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x8f0b7485 twl4030_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xe10cc346 soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x829c83f8 twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x9e8386a3 soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x20b4a543 soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x110e992a soc_codec_dev_uda1380 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x3d4b0152 uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xbf5a064b wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc4967c94 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xd196ab23 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x0928852d wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x3eec7b4a soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x60aeaf68 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x6fd9fb31 wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x9c558a60 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x3724dd8f wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xa5f08118 soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x53fe4ea0 wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xdce332d3 soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xe4822693 wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xf588df49 soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x050159b9 wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xd332095c soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x6ff1cb19 soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xda879a78 wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x3bedd2c6 soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x3d3663f8 wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xbc75ce09 soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xcc60d12d wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x4d188b51 wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x6c751f77 soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x71e35284 soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xe5946dce wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x5ace0147 soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xe08b79f8 wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x243d216c soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x77dc43a7 wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x97f7e75c soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xa226505b wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x24b222f5 wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xbcdab49f soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xe0fb7db2 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x39b7124d wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xf39b2258 soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x56697448 wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x90fe4f80 soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xa0d3ee4f wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xec4bd1f2 soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x937a9bee soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xc1f66561 wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x0aaab6c4 wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x8a61aaaf soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x8ba3c098 soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xacddbd70 wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xf6d434dd soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xfc102cc3 wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x5a617bd1 soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x8bd2ecb8 wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x513d3cec soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x7d9a9c51 wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x37be1588 wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x9826dcd3 soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xb12a6726 wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xb30b8f10 soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x36e42230 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xc86e6b82 wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xfc4a19d7 soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x52a1c2f1 wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xc097e19f soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0xd84ebae9 soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b666c54 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bcb3c94 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1dcd0322 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e98d8fe snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f9a86f3 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2309a10c snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27cf4fcb snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d1ae6c8 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e0bea98 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x313682c9 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x330f5615 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x351314e7 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39d31b98 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b8a78a4 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d728531 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3fe3c9b6 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41a161cb snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x429832d0 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x439dfe3d snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x441355c0 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45a872ba snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48629596 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4864b9bd snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d2a7f81 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4dd74816 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5482e9b0 snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59062c0e snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5dd2875a snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ed474e3 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65a9af05 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x68136828 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x711a0ce6 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x722d5be7 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x769d53b3 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x775bbca4 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x77f57404 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x800f9771 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87c19d33 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b6c7a49 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x958c3026 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96281b01 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97f1f0d1 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x993ea13a snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99e24c8c snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1ca2f15 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa412c8d5 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6e2dbae snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa984798b snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xacd727e1 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb085caac snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0fa8a6d snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2d5b37f snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb58e8ba2 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb63c48e6 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba93e95b snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe916598 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc432a4b4 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc45e8be7 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc65f4d7c snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca52b2f0 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcce9853b snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3665f42 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9a1a881 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda0684fd snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdac9eb3c snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe25d7d50 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe41337be snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe468a2ea snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6ed996f snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xebc2c5ea snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee2bde7a snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xef48e121 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf00adf22 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2b8e0ae dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf3012467 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf517a418 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xffb3b57b snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x403287f6 xv_create_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6396f009 xv_destroy_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6da52fbd xv_free +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xb9d51915 xv_malloc +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xfdffb8fc xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x006612ca raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f5ce96 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x00f94fde register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x01173009 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x011777d8 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x0117d615 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x011bdcd1 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x0121139f dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x01378d91 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x0139bb7d find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x01511988 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x015fc09b rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x0199fd25 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01d06636 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x02474f30 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x028a0447 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x0302559d fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x03d8d457 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x0408eaa2 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0483aa21 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x04997f6e xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x04a95138 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04dc389c raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x050e679b wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x052c4a0e inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x052d77b3 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0551bc5c cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x0575bb49 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x05a86ea5 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x05be6c1e sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x05bff754 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x05c421c2 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x05fdc05e inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x06030463 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x066b1a8d crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x072f0b0f crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0744668b scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x075bdec1 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x077dd5d9 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x077e40a8 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07ce6280 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x07feffcc crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x08146641 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x0853bf55 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x0893baed rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x08a85c30 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x08a92dfc posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x08c20e34 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x08d1327d device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x091c6d35 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0926c1ed regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x095d762b regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x09670ae5 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x098f5041 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x09a0b0c0 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0a1d83f0 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x0a23764b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x0a5e4d51 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x0a9b5ce4 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x0ab2e512 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b22d6a9 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0b28739c skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x0b4212e7 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0b6d0342 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x0b6e7d8c tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c3339b8 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x0c5b73e5 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x0c7bf63b rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c8e3dbe debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cfacd15 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x0d2813f5 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x0d3bcf1a blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d6f039d dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x0d789816 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x0d7edcc5 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x0de7aa33 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e1fb42a proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x0e26cda4 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x0e440522 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x0e4813ba sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x0e622f99 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0eaaa14a sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ed0c6cb ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x0ed9e189 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x0ee19ca9 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x0f028725 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x0f0cc014 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x0f3ea398 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x0f4d0bb9 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x0f785ed3 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x0f9874de unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x1003cfcc sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x10081dbe debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101cdb2d register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x10280029 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x102a3c0a bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10c74770 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x10fca4c8 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x11226008 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x112ade4a ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11bdb766 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x12099cb1 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x122d28a1 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x12569af3 device_register +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12d779ac inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x12e5f58b adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x12ec1dd5 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x1302ef9d shake_page +EXPORT_SYMBOL_GPL vmlinux 0x131a1bf8 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x1360d523 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x137aaef1 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x13a770cf class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13e39744 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x14061ff0 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x14291135 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x14320394 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x145cc405 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x14760d04 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x147b93aa find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x148a0677 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x148ef500 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14d3fbb4 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x14e1310f gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x14e1a9d5 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x14eeaa27 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x152e9661 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x1559e2b1 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x156088fe crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x1561b101 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x1569f0a4 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15fc670e pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x1616f2fb ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x16234e28 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x162560e0 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x162fc06e ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x1674cbd9 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x16a3bc12 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x16ce79ab bus_register +EXPORT_SYMBOL_GPL vmlinux 0x16e1187b usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x16faa11d simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x17466450 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x1754b02f set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x1763470e usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x177b99c1 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x17b21937 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x17c00204 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x17f55a9c synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x17f8f3ce ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x181f1529 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x1829349d inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x18655d56 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1886bb0f usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x18c31ffe bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x18ca270c kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1933100b attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x1992e7b4 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x199884b1 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a656e8 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x19d56c7f usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x19d57c3a dm_put +EXPORT_SYMBOL_GPL vmlinux 0x1a032602 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x1a0ef1b3 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a42e7b7 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x1a50695b __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x1a6c1817 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x1a957e66 tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0x1acbe74e rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x1b144167 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x1b6c0b2e register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x1b71dba3 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba8b745 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1be3cdd4 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x1bfbc7fa ref_module +EXPORT_SYMBOL_GPL vmlinux 0x1bfc6cf8 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1c732743 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cdfcebc usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x1d30392f kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1daf669a generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e52e183 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x1e67765a wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1e720184 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed42f9b crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x1f0fd8ee dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x1f34323c ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1f766a92 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fadbd4f __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x1fc3eee6 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x2009a6f3 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x209e1abb ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d13b03 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x2123f283 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x21288906 find_module +EXPORT_SYMBOL_GPL vmlinux 0x21a6761d devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x21a83cd0 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x21ad8d06 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x21c4ddf1 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x2206e2b7 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x223a3d1d usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x225b6846 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x22805002 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x229c6214 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x23023f63 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x230f1e68 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x234658d2 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23ca1e91 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x23d263a7 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x24993358 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x24ab1e54 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x250b9bb1 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x250e8f30 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x253a69f8 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x255945a3 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x2587e870 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x259869d1 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x262ca3f3 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x265040ac tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x2668e66b ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x266d6d5c tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26f7c89e sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x270c9232 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x271372d8 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x274cecd1 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x27949c94 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27dd901c pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x27efd7cf pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x282ce1d2 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28eb216c ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x291bc1f7 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x2976ca5d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x297c06dd transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x298b6e9b blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x299a1e6d sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x29aaf8ca __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aa5e0fd pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x2aac13c0 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2ae01e9e ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x2ae31954 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x2b432655 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b9c165f usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2bb0c056 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3ec922 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x2c50fbf1 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2c5b910b flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x2c7779bb regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2caf15ca crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d3cbca0 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x2d4bea24 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x2d4ff880 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x2d521d07 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2ded2578 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x2df59cec device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2dfb667c sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x2dfdfcf8 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x2e4487b1 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e78e47d dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2ee6d6a6 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2f03371b wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2f8c88af blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fdd4c02 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x3031ed28 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30c14865 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x30da16b6 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x316bc3dd input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x3175c405 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31bc5570 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x32281461 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x3263919a tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x329a6b9d wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x32c793c7 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x32c82399 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x32ccc3fe kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32f16df1 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x3328968e put_device +EXPORT_SYMBOL_GPL vmlinux 0x33392923 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x334b53b0 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3350ab73 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x3378434b bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33c49781 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x33ecc194 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x34188929 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x3429c937 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x343e95be crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3461cbcb ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x34db2d35 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x350d5bc2 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3512df00 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x351b9b50 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x353d6d78 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x354b7151 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x3563cd60 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3614e083 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36864ef1 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36a6e774 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x36b5169c transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x36e35477 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x36e9f0c6 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x36f23ff4 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x371b6b3b crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x3749c014 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x37594154 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x376e6977 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x37e44ec5 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x380e3e1b set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x38571782 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x385df068 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x386fdb8a __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x38d1c6fd cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38eb4e7b usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x39baac5c skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x39c1626d sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39e27f81 device_create +EXPORT_SYMBOL_GPL vmlinux 0x3a0078f8 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x3a0e43f4 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2eea97 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x3a4a74ae module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x3a7acfdd save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x3a9c4eae transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3ba614bc acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x3ba6d009 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c433a73 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x3c86eaaf bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c95af3a device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cdfc0e8 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x3cf7346c pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3cf78ab6 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d166d58 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4b0c7a da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3dbbcf94 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x3dd9c033 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x3dda1035 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3dde3c26 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x3de2bb13 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x3e25d0b6 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x3e46203a ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x3e647465 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x3ea0b0aa spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x3ebc827c scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f8d22a1 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3fa53bc8 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x3fde8c64 ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x401a09f2 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x4023f540 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40a631f5 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40e56d6b n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x41079fe0 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x412fe2d7 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x41631eea cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x41b0d3fd devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x41df32bc setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x42033c60 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42973fa3 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x429b5371 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x42cb8aea ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x42eee679 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x42f1074a disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43499a39 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x435c8cca dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x43dd1a7d cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43f8d8b7 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x4404b75e rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x441a9227 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x443c5749 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x4459130b power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44a36ca0 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44a87075 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x44ab13e2 device_move +EXPORT_SYMBOL_GPL vmlinux 0x45234eea sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x45440856 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45942405 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x459d607b xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c6a2a0 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45f85111 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4688cf88 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x46affcf8 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x46bb75a7 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x46d2d264 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x46e6f55c crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x46fffb3d rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x47033807 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x47038a65 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x471e8a98 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x475763fc usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x47db864a led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x47fc48bb __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x4854c1fa devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x48745170 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x487aa854 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x48a26c96 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48ac770b power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x48b8a644 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x48bb7b92 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x48be2513 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48cee582 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x48d414e2 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x49223244 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x498741c6 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4998b130 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x49a170c1 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x49a58bfb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x4a4dd2c9 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x4a6457f4 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x4a821822 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x4aaeae30 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x4b23ddc6 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x4ba1cf74 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x4bb3814a skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x4bbcae2c sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4bdbdbd5 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x4beebca0 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4c316815 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c91baac sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x4cf3bf2b proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x4d0c1f92 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x4d4ffe8e ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x4d7d8dfc ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x4d817caf cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x4d92036f fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x4dad07e5 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x4df11e80 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4df8d19a ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x4e359984 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4e7202ea alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x4eacb0c0 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x4ef544af xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x5025c69d ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x509c6dce fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x50b319ce cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50bb1e84 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50d530c2 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x50d64d61 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5104894f ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5105d3b4 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x5195edb2 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x51c8eb6d da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x52015d4b rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x521f1685 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x52df3789 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x53035ee3 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53677102 user_update +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x540eef8a register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x54429893 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x545182ca ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x547a1185 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x548a1f17 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x548bef7b wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a387e3 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x54a987bd usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x550da5be ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x553134ad sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x55401030 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x554a77cd crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x555876bf usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x559a2981 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x559b3965 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x55d5c666 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0x561e1c10 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x565cd8da regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5673d7e7 acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56a265bd pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x56a3865b ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x56aae000 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x57380f59 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x573bde68 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x579bd442 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57db7e6b usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x581c522e setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x58e3c046 rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x58f4a4c8 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x591ab75c generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x59292074 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5965586c scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x5970e340 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x59afd194 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x59bd5d81 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x59c98cc9 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x59db1ac0 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a39975c tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5a48fba2 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f245d crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5afb4b26 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5b71bd2f crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x5bbaaa54 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c0577ed unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5c860cfa ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x5ccc962a attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x5cd65b40 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x5cf730ab debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d24608d ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d375789 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d93b7fa pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x5d9fb581 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x5d9fbba5 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e550562 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5e6e8129 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5e978e79 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5ed438b6 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f48e48b vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x5f5ed604 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x600bd376 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x605d83bb register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x605def7f dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x60670b20 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x606fe5ca fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x6079cbb2 get_device +EXPORT_SYMBOL_GPL vmlinux 0x6081e3bc platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x6088f51f ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x6129c621 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x6132f10e security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x61594524 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x61710210 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x617c0197 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x61946fe8 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x61a599fb rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x61d72b90 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x61e9a973 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x61fbd434 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x621ffdb7 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x6247ef9f find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x625b0cc9 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x6271cb53 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x62743201 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x627a705f rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x6294884a d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62cc2e6c hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x62eaae54 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x635ab778 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63a11cb4 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x63d2b925 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x63d78b97 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x63fe893c ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x643da368 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x6480d3de tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x64904c1d lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x64c1d634 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x64e10b3e usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x64e35334 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x651b8e07 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x6548746c power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6562caca xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x6578f0e4 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d44e0f pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65e4a1b2 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662afbd6 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x664c8866 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x6665056f platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0x66651c10 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x6679337d disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e200fa sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67d67fbd rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67e3381f pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x680dc140 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x682cbb81 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x688281b3 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68de9b1a fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x6925a382 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x696201ca acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x698024e5 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x69cf3e71 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69efbd01 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x6a050537 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x6a2c96c2 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x6a314c25 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x6a54455c ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a807896 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6ae51a49 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x6b15cc2a ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b4d7b50 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x6b5f0e9e default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b8d2839 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6b9a6fb4 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x6be38b18 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x6bfb0ee4 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x6c100a33 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cb74e91 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x6d0905ea inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x6d0d0cc3 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x6d2cbad5 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3adc8c xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x6d425b92 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x6d65b6df sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x6d823192 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6d8e9200 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x6dc0b8a0 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x6dc502da fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x6ddd050e usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x6de759be crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6df0529e usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x6df56fbf md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x6e1171b3 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x6e14c917 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x6e3167cd sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x6e583691 tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e676760 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e8623ca xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x6e8714f5 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6fa73a93 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff1410d ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x702483b0 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x702ba4c1 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x702d6e69 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x702fcadb scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x704cc9c9 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x708af49e ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7090672c driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x711e7159 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x7140ff21 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x7150aa45 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7169e9c0 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x71d23a8d platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71d99421 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x71e972e7 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x72555c86 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7272f195 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x73087d2e aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x7345d311 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x7346d656 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x738d0a03 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x73908fe2 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x73a23c0c class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73bbab61 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x73df8373 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x73fc531e led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x74220106 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x744be376 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x744c67fc simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x745a22b6 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x745e2759 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x747be397 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x748a5f49 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x748bd6d5 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74bd3345 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7526c827 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x75413143 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x754a4613 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x755d05de inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7569cf03 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x7580fa21 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x7581c9db sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75b33423 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x75ddd68a relay_open +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x765ddf37 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x766669ea xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7692f397 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x769b384f blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x77104d8a regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7752cf44 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x77c5d7cd __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x780f80cb erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0x7844910b zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x785ec1c9 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x78621159 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x7871a65c ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x78788200 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x789d0364 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x78aa4cf8 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x78dfd6f0 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x78e8f405 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x79021f72 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x7936c006 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7977ca4b crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x79b015c2 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7a1b1faa ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x7a26be88 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a5804b8 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x7a9c9b11 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ab1f55a i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7ada5897 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7aefebfc pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b324a76 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x7b56f0c1 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x7b7c82c1 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x7bd4479c dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x7c5e1e33 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x7c5e4823 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x7c5f5533 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x7cbbdc1f da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7cbdea3b get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x7cce44ef pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d81e7d0 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e4168ee crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x7e486a0c debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x7e5e301f unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e82239a rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x7e86318d rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7e9cca2e do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x7ec0a7ea queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x7ec147bf ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ef3e1ec driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f51c1e9 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x7f944192 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fcbe756 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff18beb inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8013effe get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x801e33cd sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x805d5aba sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x810919ce usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x813047a9 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8132237b blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8153316e ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x81a033de ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x81ab1772 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x81e90474 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x81f3ebf9 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x82145a24 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x825cab22 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82e6325c sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x82f8615a sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x830a07a3 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x831db88a rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x83348039 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x835376bf platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x8354342a simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x83d9c08e platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x83dcc40b platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x840880c4 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8459f864 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x84714258 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x848b51b0 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x852d8568 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8575c25b bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x8585ae99 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8599afc7 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x85b2bf69 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85f17b7e ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x8603bbf2 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x86359bbc devres_find +EXPORT_SYMBOL_GPL vmlinux 0x8656216c sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x867953c7 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs +EXPORT_SYMBOL_GPL vmlinux 0x867f2d8a class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86896aba srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x869566c0 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86a5d2c0 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x86c1d8bb trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8740752f ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x8747a7bd i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x874c3924 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x878a006b nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x87ad0c3a ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x87c148f5 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8895cac0 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x889b242d tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x889fc698 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b80cab cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x88d2db32 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x88e5d725 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x88f69fc8 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x890c66ed unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x891d525e ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x8990d480 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x89b12cc8 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x89f671c3 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x89f73b3c crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x8a227156 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x8a3a0ecb dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x8a3f8e8f crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8a6cf901 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a7a3fc0 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x8ab3ad80 pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0x8adf3014 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x8ae3e618 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x8b24f209 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8b5ff50c ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x8b662f6d sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8b984651 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x8bc62de5 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x8bf6334f dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x8bfe22ea eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c105819 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c72ce09 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8c91377a ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x8cdc6078 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x8d16e21c ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x8d2566cf wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x8d263203 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x8d8768e6 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8d9a0732 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x8dbd5849 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x8e30e1aa ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x8e36cab7 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x8e38842c spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8e620951 dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x8e7936d9 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x8e7ac4aa ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x8e97c65b pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x8ed66fec ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x8ed78157 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x8edd4f4d crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f26b6b2 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8f47a54c hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f5727dc class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x8f68c110 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f8e70f3 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x8f97f8e3 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fabf8bc pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x90053230 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x900a8d95 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x9059cead fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x9068ff3b __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9074ed7c dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a11152 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x90a94cbd sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x90c9a08f pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x90ce03ab vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x90e64a8b sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x9128d7f9 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x91c06478 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x91d293fe pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x920fcef9 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x922f1151 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x924a5ca9 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x92a1910c smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x92bd7b78 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x93303c69 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x9342e5e4 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x93861eee crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x9390e098 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x9395ce12 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e97efa class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x94276123 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x9429e525 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x94742a03 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x948dee93 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94eb2bc8 ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x951de413 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9549a7ad wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x955d0be9 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x9567b13b __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9595c503 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x95b65302 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x95fb944a sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x96147418 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x967fcbbe dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x9686f14e br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x96aea3e6 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9733b017 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x97420b5a securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x974ad6b0 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x9761df8d debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x9767a3a1 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x979dfb3e srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x97c3cba1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97e176fa screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x97ea8f51 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x9809da9b platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9869f8e3 mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x98d04b21 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x98d5c78e queue_work +EXPORT_SYMBOL_GPL vmlinux 0x9923b7fd firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x993fa672 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x996e1ac6 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x9993590d inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x99d7e321 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9a9d4675 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9b1be993 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x9b3a57c9 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x9b575b8a srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x9b5e633d xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x9b993a85 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bf27c12 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c529e00 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cf03d46 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d0b64a0 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x9d167590 __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d63383d ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9d9f4ee4 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9da9ce66 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9e115101 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x9e5aec32 user_read +EXPORT_SYMBOL_GPL vmlinux 0x9e5dc001 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x9eef272b ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f579a5f sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe14ca5 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x9fe23941 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x9fed952f usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xa07746c1 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xa079ed24 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa0974203 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xa0c9857b debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa120f3ba inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xa1247e87 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa12846ed vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xa12ae212 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xa1675131 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xa17915e7 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa209ea7a usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa236d886 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xa25c6f56 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xa2607eb0 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xa2bb0e30 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa3179c62 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3fbc407 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa44a11d2 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa467f168 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4a4298f apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa4d95824 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xa4ed60ac sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa50a61fd sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa50af69e anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa52621ca tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xa53f6fa5 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xa569956d ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xa5ba64c2 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xa5be7119 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa650097a acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0xa65ad576 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xa6647379 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xa6ba77bf crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa705eecc dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xa761efa8 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xa7809bdf usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xa7a35f58 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xa7b8601f crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xa7f488df blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xa80a7546 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xa80e850a register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8661b14 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xa869ce3c spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xa869f8ef inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xa87043d7 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xa8a5b653 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa8a9ab78 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa8bdf6ae sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa90d42c9 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa94c9f7b hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xa957fbad platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa96bdf99 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xa9c2bec1 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9d88c46 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xa9dd3a34 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xa9dfe4f3 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa11c178 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xaa125290 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xaa15786f power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xaa260a35 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xaa4947c2 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xaa6623c9 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xaa86ba1b cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaaa5fe2e rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xaacaf49f relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xaadddf21 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xaafdca30 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab59e421 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xab65ef41 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab8f9e2c pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xab99c39f hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xab9e8c45 user_match +EXPORT_SYMBOL_GPL vmlinux 0xaba0366b __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xabd93029 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabedd5f9 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xac5e102d pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xac680749 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xac8efa4a debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xacc354ca class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf7646c tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad5dc373 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadd3c52d wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae1cf796 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xae5b82f3 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xae69abff led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xaec5df59 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xaee1ff47 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xaf1c04a0 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xaf1fd50d relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xaf3814ce devres_get +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf4b0d71 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xafc64fb8 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xafee1425 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xb0763cc0 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xb08fb760 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xb091a5a4 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xb099219a led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0aeaa6b shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xb0ce03e6 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xb0d50ba2 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb0e497fe cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xb10814fb usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb12b1dc4 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xb13b36e4 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xb1601b8e proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xb16d8beb crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xb17f3aff generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb26875f0 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xb26d81ce dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xb28d3499 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xb2b5bba9 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb2da13ed page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xb2f106ec fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xb31f0f58 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0xb323e3f0 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb3375000 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xb3a3497d ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xb3ce8d37 inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3ec8780 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xb402fa37 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xb40a5552 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xb4206e2d unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xb4b313a1 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb536d8fa __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb5723206 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb593e76e ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5c98ac0 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6397a8e power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb6a1dc7b ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b793ad shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xb6cee900 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xb6d5542e inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb7527422 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb7d411f0 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7de8937 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7f4e553 erst_read +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb84470c4 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xb868e730 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xb86af3f9 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xb88717a1 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xb89e2a9c regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb9561687 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb98d9cc9 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9d13425 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb1c5231 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xbb2d701a ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbcc2f8a wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbcf0a134 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xbd2a545a ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd88827d i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xbdbc32b4 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xbdc91ea3 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xbdceb283 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe1e60c2 input_class +EXPORT_SYMBOL_GPL vmlinux 0xbe4749b2 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xbe546e23 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbead4956 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xbeb38a07 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xbeb5030a fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbeba8c6f acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xbf0c6f35 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf399ff1 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbf598909 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xbfd72a76 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc0563f72 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xc0926213 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xc0a86a4d shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc0b6bb31 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d518a9 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xc0f67a42 mmput +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc14f9a4d ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xc1512c1e invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1758aea pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xc17788be sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xc18f2606 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xc1d0c1f8 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc252aa9e use_mm +EXPORT_SYMBOL_GPL vmlinux 0xc257e4b3 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc29253d0 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xc29e5f39 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xc2b1cac7 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2e702af ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xc346d1dc ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3e5f29b smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc411c97d driver_find +EXPORT_SYMBOL_GPL vmlinux 0xc423f489 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc492f957 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xc4a62321 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc50dc179 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc537e293 device_del +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc58f7dfe devres_add +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc62a764c device_attach +EXPORT_SYMBOL_GPL vmlinux 0xc648b345 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc65d6021 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xc668cecc regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xc6cb96c7 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc741859a bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xc7a4937a usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc85eb956 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8a29d54 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xc8b30aed inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc90de1ad wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc97d837f sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xc9addf61 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xc9ae4d6b unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xc9c70863 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d845 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xc9d55e43 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca0ec59e pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xca446862 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca998ecb xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xcaa0ec64 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcad6ebc3 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xcafb0754 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xcb04f8f1 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xcb179ecc tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xcb38855a bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xcb66aa3a free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xcb9ed4a5 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbfe0175 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xcc1311b6 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc755ed3 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xcd2f0eeb __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xcd80b8fd debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcda2f650 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdec6973 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xcdffb8af regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xce080082 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce895ab8 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xcecb49e9 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd00dc4a3 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd054f1ad pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0xd06827d8 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xd07c7c1d xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xd0ab85d8 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xd0c8397a cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xd0f1fe7c __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xd13927ff dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd17183b2 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xd190887e device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xd19bf231 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xd19fbdea kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd1acec1e kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd23fef97 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2d3815d ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xd2f140d0 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33b4a5d anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xd36706e0 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd396ee8a inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xd397ea41 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3dc57c4 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd42c894c ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xd47b5613 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0xd4998054 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xd4a914ac led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xd4ad035d wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd4d1ca4e cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xd5002653 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xd51bca3d usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xd51f8b04 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd5435ca4 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xd54f49f7 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xd54f813d __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd5524408 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xd5786dc9 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd5c5d57b ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5d488eb page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xd6314211 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xd643bd6f mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd64a71cb tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xd6657340 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd705c168 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xd70b9a01 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xd7229425 css_id +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7832729 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0xd7b7cd2d sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7e41089 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xd8021a21 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd83667eb vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xd84e06db skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xd86a615f aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xd8858fab sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xd8895526 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xd8c585f7 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd8cb58c6 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd91b8d91 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xd93e06ef fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xd93e0bb9 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xd945ba00 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xd957b269 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd96589b2 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0xd9c572ce ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xd9e30833 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd9fe4c4a debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xda107e54 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xda5d99f6 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xda8fcb84 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xdaac3f87 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb19b973 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb2ac9b7 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xdb4b4602 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xdc1ebca9 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdc684cda kick_process +EXPORT_SYMBOL_GPL vmlinux 0xdc6f7d62 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xdcc327be crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xdcc33829 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdcf0779a __module_address +EXPORT_SYMBOL_GPL vmlinux 0xdd1893fd devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xdd27be8c md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xdd3ca60e anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xdd486d8a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xdd7f31e5 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xddd5284a ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xde1674e5 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde982262 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xdea73ea2 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xdeb1d2ac rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xdf07c728 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xdf172d98 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xdf197b1b pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xdf347076 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0xdf38f0fd tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xdfa18755 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0xdfaa5b52 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe03daa74 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xe03f53b8 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xe04ee054 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xe06f7d46 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0b93e62 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0f433f4 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xe113f493 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xe1e5e11f class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe1f21232 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xe264fb07 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xe2883945 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a1158f class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xe2f4ecd0 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe33e5027 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xe36d0af7 tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe3a85b05 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xe3d03456 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xe3e51025 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe45cf23c ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xe4866c6d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0xe494411c blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4ac1766 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xe4c26e37 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xe4e843a3 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe561da63 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xe5e1f4b1 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe5eb42f8 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xe6024054 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe62f4d26 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe6519c42 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe6739f14 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xe67b26b3 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe67d715f usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xe686d363 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xe6a7c46d sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe718df91 dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7683791 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xe76e483d crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xe76ef07d fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xe7d33984 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xe7e0d0f8 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8390852 tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8cb16ec __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xe8f63e47 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xe92f91a3 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xe93b736a platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe943bf23 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xe9440c17 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe99eddf3 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xe9c93c4b find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xe9ea594e mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea230ae1 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xea3757b3 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea7982bf blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xea92b096 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xeab222ba pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xeab9c312 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb4531fd rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xeb760e4a crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xeb839c16 acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0xebe44e5e hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec376e35 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xec3c6ffe cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xec543e11 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xeca740fb dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xed0da4b9 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xed5dc528 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedf0fdd9 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xedf1aa97 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xee047a75 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xee42f539 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xee715f7f wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xef0b97d5 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef209228 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xef4a7bfe crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefa9fd51 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xefd4e66b wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf01c6619 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf09f08c6 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xf0b643af dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xf0bf6920 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xf0c6e3eb tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xf106504e ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xf10bc06a usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xf1752ace sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf194840b pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xf1a298f4 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf228820b vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xf22a94ed uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xf24f0a14 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xf25f54a2 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xf26d62f4 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf314bbd7 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf35b2f7a class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xf395b63e cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xf3a9701c ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf40ebf65 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf4155e20 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xf4254033 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xf4506104 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xf498e491 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf4bcce5f pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xf4beb27b ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xf4e83afe modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xf4f9d463 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xf5030c1a platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54d31b3 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5593017 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf595a34c inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5c09718 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xf62dd838 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xf65b5aa2 device_add +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6e7444a platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ffc59f fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf71846f4 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xf728d662 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xf73861b3 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xf76384d4 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7be80d1 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xf7d65853 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xf8052957 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xf818fb5e fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xf84adef7 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf85c612d map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf86a5b79 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf898f1eb sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xf8eef49d blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf9266d1f sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xf933f1ca cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf964d537 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9bd6dec ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa64ef8b scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xfa6f64bd regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xfa8f5fa3 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xfabe2810 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xfacbe02e apic +EXPORT_SYMBOL_GPL vmlinux 0xfae0b0e3 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xfae2beb8 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xfb095ad8 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xfb0c2373 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb7ec7de drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xfb8084da usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0xfbb74668 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xfbbec4c0 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc15ae96 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc96354c __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcaf3ab8 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xfcbee8af ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xfcc23db0 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xfcdaa671 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xfced4afc blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xfd2008b8 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xfd47f2d0 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd6a8e3a crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd78ef4a dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xfd8f28cf platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xfd9b8d92 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xfdc839d8 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xfdcdc3c7 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xfdd6f87e sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe0137b5 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xfe2a6b34 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe7b04de fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed6444c pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xfef5b152 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xfef842f1 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff18bbdd mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5cffe5 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xff8f33eb pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xff94a7b0 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/i386/generic-pae.modules +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/i386/generic-pae.modules @@ -0,0 +1,3072 @@ +3c359 +3c501 +3c503 +3c505 +3c507 +3c509 +3c515 +3c523 +3c527 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +53c700 +6pack +8021q +8139cp +8139too +8250_accent +8250_boca +8250_exar_st16c554 +8250_fourport +8250_hub6 +8250_mca +8255 +82596 +8390 +8390p +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +aacraid +ab3100 +ab3100-otp +abituguru +abituguru3 +abyss +ac3200 +ac97_bus +acecad +acenic +acerhdf +acer-wmi +acl7225b +acpi_pad +acpiphp +acpiphp_ibm +acquirewdt +act2000 +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad714x +ad714x-i2c +ad714x-spi +ad7414 +ad7418 +ad7877 +ad7879 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2016 +addi_apci_2032 +addi_apci_2200 +addi_apci_3001 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +adfs +adi +adis16209 +adis16220 +adis16240 +adis16255 +adis16260 +adis16300 +adis16350 +adis16400 +adl_pci6208 +adl_pci7230 +adl_pci7296 +adl_pci7432 +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-gpio +adp5520-keys +adp5588-gpio +adp5588-keys +adp8860_bl +adq12b +ads7828 +ads7846 +ads7871 +adt7411 +adt7462 +adt7470 +adt7475 +adutux +adv7170 +adv7175 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +aes_generic +aes-i586 +af_802154 +af9013 +affs +af_key +af-rxrpc +agpgart +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +alauda +ali-agp +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera_jtaguart +altera_ps2 +altera_uart +ambassador +amc6821 +amd64-agp +amd76x_edac +amd76xrom +amd8111e +amd-k7-agp +amd-rng +amplc_dio200 +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +analog +ansi_cprng +anubis +aoe +apm +appledisplay +applesmc +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asb100 +asc7621 +asix +asus_atk0110 +asus-laptop +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at1700 +at24 +at25 +at76c50x-usb +atbm8830 +aten +ath +ath3k +ath5k +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati-agp +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522 +aufs +authenc +auth_rpcgss +autofs +autofs4 +av5100 +avma1_cs +avm_cs +avmfritz +ax25 +axnet_cs +b1 +b1dma +b1isa +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +binfmt_aout +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq24022 +bq27x00_battery +br2684 +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c101 +c2port-duramar2150 +c4 +c67x00 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capi +capidrv +capifs +capmode +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcidio +cb_pcimdas +cb_pcimdda +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +cirrusfb +ck804xrom +classmate-laptop +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-isa +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +core +coretemp +cosa +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpqphp +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc32c +crc32c-intel +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535_gpio +cs5535-gpio +cs553x_nand +cs89x0 +ct82c710 +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxt1e1 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +dabusb +DAC960 +daqboard2000 +das08 +das08_cs +das16 +das16m1 +das1800 +das6402 +das800 +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +denali +depca +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dlci +dlm +dm1105 +dm9601 +dm-crypt +dme1737 +dmfe +dmm32at +dm-queue-length +dm-raid45 +dm-service-time +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +donauboe +dpt_i2o +drbd +drm +drm_kms_helper +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +ds2782_battery +ds3000 +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155 +dt3155v4l +dt9812 +dtc +dtl1_cs +dtlk +dummy +dummy_hcd +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dw_spi_pci +dynapro +e100 +e1000 +e1000e +e2100 +e752x_edac +e7xxx_edac +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +echo +econet +edac_core +edac_mce_amd +eeepc-laptop +eeepc-wmi +eepro +eeprom +eeprom_93cx6 +eeti_ts +eexpress +efficeon-agp +efs +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enclosure +eni +enic +epat +epca +epia +epic100 +e_powersaver +eql +es3210 +esb2rom +esi-sir +esp4 +esp6 +et131x +et61x251 +eth1394 +eth16i +ethoc +eurotechwdt +evbug +evtchn +ewrk3 +exofs +exportfs +f71805f +f71882fg +f75375s +fakephp +farsync +fat +faulty +fb_ddc +fb_sys_fops +fcoe +fcrypt +fd_mcs +fdomain +fdomain_cs +fealnx +ff-memless +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +fl512 +floppy +fm801-gp +fmvj18x_cs +fnic +forcedeth +fore_200e +freevxfs +friq +frpw +fsam7400 +fscache +fschmd +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +gdth +generic +generic_bl +gen_probe +geode-aes +geode-rng +g_ether +gf128mul +gf2k +g_ffs +g_file_storage +gfs2 +ghash-generic +ghes +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_NCR5380 +g_NCR5380_mmio +g_nokia +go7007 +go7007-usb +gpio-addr-flash +gpio_keys +gpio_mouse +gpio_vbus +g_printer +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hed +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-wacom +hid-zpff +hid-zydacron +hifn_795x +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hostess_sv11 +hp +hp100 +hp4x +hp_accel +hpfs +hpilo +hp-plus +hpsa +hptiop +hp-wmi +hso +htc-pasic3 +htcpen +hv_blkvsc +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i1480u-wlp +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-dev +i2c-gpio +i2c-i801 +i2c-isch +i2c-matroxfb +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-isa +i2c-pca-platform +i2c-piix4 +i2c-scmi +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7core_edac +i810 +i810fb +i82092 +i82365 +i82860_edac +i82875p_edac +i82975x_edac +i830 +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmasm +ibmasr +ibmcam +ibmlana +ibmmca +ibmpex +ibmphp +ib_mthca +ibmtr +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icp_multi +ics932s401 +idmouse +idt77252 +ieee1394 +ieee802154 +ifb +iforce +igb +igbvf +iio-trig-gpio +iio-trig-periodic-rtc +ii_pci20kc +ili9320 +imm +imon +in2000 +industrialio +inexio +inftl +initio +inport +input-polldev +int51x1 +intel-agp +intel_ips +intel_menlow +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ir-common +ircomm-tty +ir-core +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_ibft +iscsi_tcp +iscsi_trgt +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1760 +istallion +it87 +it8712f_wdt +it8761e_gpio +it87_wdt +iTCO_vendor_support +iTCO_wdt +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvm +kvm-amd +kvm-intel +kxsd9 +kyrofb +l1oip +l2cap +l2tp_core +l2tp_debugfs +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lance +lanstreamer +lapb +lapbether +lcd +ldusb +lec +led-class +leds-88pm860x +leds-adp5520 +leds-alix2 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lp3944 +leds-lt3593 +leds-mc13783 +leds-net48xx +leds-net5501 +leds-pca9532 +leds-pca955x +leds-regulator +leds-ss4200 +leds-wm831x-status +leds-wm8350 +leds-wrap +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libcrc32c +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libosd +libsas +libsrp +lightning +line6usb +linear +lirc_bt829 +lirc_dev +lirc_ene0100 +lirc_i2c +lirc_igorplugusb +lirc_imon +lirc_it87 +lirc_ite8709 +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lmc +lms283gf05 +lnbp21 +lne390 +lockd +logibm +lp +lp3971 +lp486e +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4215 +ltc4245 +ltpc +ltv350qv +lxfb +lzo +lzo_compress +m25p80 +m52790 +ma600-sir +mac80211 +mac80211_hwsim +machzwd +macmodes +macvlan +madgemc +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max1363 +max1586 +max1619 +max17040_battery +max2165 +max3100 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +mb862xxfb +mb862xxfb_accel +mb86a16 +mbp_nvidia_bl +mc13783-adc +mc13783-core +mc13783-regulator +mc13783_ts +mc33880 +mc44s803 +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mct_u232 +md4 +mdacon +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memrar +memstick +metronomefb +meye +mga +michael_mic +micrel +microcode +microtek +mii +minix +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mixcomwd +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mos7720 +mos7840 +moto_modem +moxa +mpc624 +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtd_nandecctest +mtd_oobtest +mtdoops +mtd_pagetest +mtdram +mtd_readtest +mtd_speedtest +mtd_stresstest +mtd_subpagetest +mtd_torturetest +mtouch +multipath +multiq3 +mvsas +mwave +mwl8k +mxb +mxl5005s +mxl5007t +mxser +myri10ge +n2 +n411 +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +NCR53c406a +NCR_D700 +NCR_Q720_mod +ndiswrapper +ne +ne2 +ne2k-pci +ne3210 +neofb +net1080 +netconsole +netjet +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +nf_tproxy_core +ngene +n_hdlc +ni52 +ni65 +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_a2150 +ni_at_ao +ni_atmio +ni_atmio16d +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nop-usb-xceiv +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntfs +nvidia-agp +nvidiafb +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ohci1394 +old_belkin-sir +olpc_battery +olympic +omfs +omnibook +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov7670 +ov772x +ov9640 +ovcamchip +oxu210hp-hcd +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8023 +padlock-aes +padlock-sha +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas16 +pata_ali +pata_amd +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5535 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_isapnp +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_qdi +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pata_winbond +pbe5 +pc110pad +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca953x +pcbc +pcbit +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pci +pci200syn +pcilynx +pcips2 +pci-stub +pcl711 +pcl724 +pcl725 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcm3730 +pcmad +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcm_common +pcmda12 +pcmmio +pcmuio +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pegasus +penmount +pf +pg +phantom +phison +phonedev +phonet +phram +physmap +pkgtemp +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pms +pn_pep +poc +pohmelfs +poseidon +powermate +power_meter +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +prism2_usb +prism54 +progear_bl +proteon +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas +qlogicfas408 +qnx4 +qt1010 +quatech_daqp_cs +quatech_usb2 +quickcam_messenger +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192e_pci +r8192se_pci +r8192s_usb +r8192u_usb +r82600_edac +r852 +r8a66597-hcd +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +radio-gemtek-pci +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-miropcm20 +radio-mr800 +radio-rtrack2 +radio-sf16fmi +radio-sf16fmr2 +radio-si4713 +radio-tea5764 +radio-terratec +radio-timb +radio-trust +radio-typhoon +radio-usb-si470x +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +rar_register +raw +raw1394 +ray_cs +rc-adstech-dvb-t-pci +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avertv-303 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-empty +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge-new +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-lirc +rc-manli +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc5-hauppauge-new +rc-rc5-tv +rc-rc6-mce +rc-real-audio-220-32-keys +rc-streamzap +rc-tbs-nec +rc-terratec-cinergy-xs +rc-tevii-nec +rc-tt-1500 +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-gpio +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +ring_sw +rio500 +riscom8 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2860sta +rt2870sta +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3234 +rtc-fm3130 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-mc13783 +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-test +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl8150 +rtl8180 +rtl8187 +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-i586 +samsung-laptop +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc7240_wdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbni +sbp2 +sc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +scc +sch311x_wdt +sch_atm +sch_cbq +sch_drr +sch_dsmark +sch_gpio +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_multiq +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +scx200 +scx200_acb +scx200_docflash +scx200_gpio +scx200_hrt +scx200_i2c +scx200_wdt +sdhci +sdhci-pci +sdhci-pltfm +sdio_uart +sdla +sdricoh_cs +se401 +sealevel +sedlbauer_cs +seed +seeq8005 +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha1_generic +sha256_generic +sha512_generic +shpchp +sht15 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sim710 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_platform +skel +skfp +skge +skisa +sky2 +sl811_cs +sl811-hcd +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc9194 +smc91c92_cs +smc-mca +sm_common +smctr +smc-ultra +smc-ultra32 +sm_ftl +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1816a +snd-ad1848 +snd-ad1889 +snd-adlib +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-als100 +snd-als300 +snd-als4000 +snd-asihpi +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt2320 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmi8330 +snd-cmipci +snd-cs4231 +snd-cs4236 +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emu8000-synth +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1688 +snd-es1688-lib +snd-es18xx +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-gusclassic +snd-gusextreme +snd-gus-lib +snd-gusmax +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-atihdmi +snd-hda-codec-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-idt +snd-hda-codec-intelhdmi +snd-hda-codec-nvhdmi +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hifier +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-interwave +snd-interwave-stb +snd-jazz16 +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lx6464es +snd-maestro3 +snd-mia +snd-miro +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-msnd-classic +snd-msnd-lib +snd-msnd-pinnacle +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3sa2 +snd-opl3-synth +snd-opl4-lib +snd-opl4-synth +snd-opti92x-ad1848 +snd-opti92x-cs4231 +snd-opti93x +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16 +snd-sb16-csp +snd-sb16-dsp +snd-sb8 +snd-sb8-dsp +snd-sbawe +snd-sb-common +snd-sc6000 +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-sgalaxy +snd-sis7019 +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-core +snd-soc-cs4270 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wm2000 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8776 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-sscape +snd-tea575x-tuner +snd-tea6330t +snd-timer +snd-trident +snd-ua101 +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-wavefront +snd-wss-lib +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +solos-pci +sony-laptop +sonypi +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +specialix +spectrum_cs +speedfax +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +squashfs +ssb +ssfdc +sst25l +sstfb +ssv_dnp +st +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stowaway +stp +stradis +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sworks-agp +sx8 +sym53c416 +sym53c500_cs +symbolserial +synaptics_i2c +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +tc1100-wmi +tca6416-keypad +tcic +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10086 +tda18271 +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tle62x0 +tm6000 +tm6000-alsa +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpm +tpm_atmel +tpm_bios +tpm_infineon +tpm_nsc +tpm_tis +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +trancevibrator +tranzport +tridentfb +ts5500_flash +ts_bm +tsc2007 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw9910 +twidjoy +twl4030-gpio +twl4030_keypad +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twofish +twofish_common +twofish-i586 +typhoon +u132-hcd +u14-34f +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +udf +udlfb +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +ultracam +ultrastor +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usb_gigaset +usbhid +usbip +usbip_common_mod +usblcd +usbled +usblp +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +uss720 +uvcvideo +uvesafb +uwb +v4l1-compat +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-agp +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +vicam +video +video1394 +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio_balloon +virtio_console +virtio-rng +virtual +visor +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmware_balloon +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt6656_stage +vt8231 +vt8623fb +vxge +w1_bq27000 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w35und +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +w9968cf +wacom +wacom_w8001 +wafer5823wdt +walkera0701 +wanrouter +wanxl +warrior +wbsd +wd +wd7000 +wdt +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +winbond-cir +wire +wis-ov7640 +wis-saa7113 +wis-saa7115 +wis-sony-tuner +wistron_btns +wis-tw2804 +wis-tw9903 +wis-uda1342 +wl1251 +wl1251_sdio +wl1251_spi +wl1271 +wl1271_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlp +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-gpio +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x_wdt +wm8350-gpiolib +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-gpio +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +xc5000 +xcbc +xen-blkfront +xen-fbfront +xenfs +xen-kbdfront +xen-netfront +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xhci-hcd +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_iprange +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xvmalloc +yam +yealink +yellowfin +yenta_socket +z85230 +zatm +zaurus +zc0301 +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/i386/virtual +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/i386/virtual @@ -0,0 +1,11279 @@ +EXPORT_SYMBOL arch/x86/kernel/scx200 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/kernel/scx200 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/kernel/scx200 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/kernel/scx200 0x907665bd scx200_cb_base +EXPORT_SYMBOL arch/x86/kvm/kvm 0xcf17816c kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0xead78233 kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x0d6b6ed9 acpi_video_get_edid +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/atm/suni 0x20665ee9 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x91b4d415 uPD98402_init +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x8fd38ed6 drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xd3526f9b drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/paride/paride 0x3031be2d pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x4b1eb683 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x5c0e445a paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x60af30ce paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x68db36f8 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xa3a713ea pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xb1c8b519 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xbc11eb80 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xbe84eabe pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xcc09c219 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xcef425dc pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xf17cdd20 pi_init +EXPORT_SYMBOL drivers/char/agp/agpgart 0x02d9f122 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0436f0f0 agp_flush_chipset +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1a3f40b6 agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x24b127b6 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3321ba50 agp_generic_alloc_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0x379dc7cf agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3a69c37e agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3b433d57 get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x584f69e1 agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5e87b4c6 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6c849a38 agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7d26d020 agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7df19c37 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7efa7853 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7fc751a6 agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8f96d999 agp_generic_destroy_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0x900eb960 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x997c27aa agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9b42f10d agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9dc1570f agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9e67c823 agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xacddf528 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0xae2026aa agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xae3c5604 agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb3ee0848 agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb7f34adf agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc17ea108 agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xcf723525 agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd44a2a9b agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd63dca3d agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd9899323 agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0xdcbc8f08 agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde154916 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL drivers/char/agp/intel-agp 0xfcc4aec2 intel_max_stolen +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x003fd05d ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x07545043 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x11c32231 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2331f6c2 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2597b852 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x276ec858 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2dc08802 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3951cb98 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x42e3a87f ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4969309d ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x59265f68 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x84822b51 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8cf3cd42 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x98c236c2 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa6ab1bad ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xac061c56 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb6ece679 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb825959a ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcbcb90c7 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd2002f27 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd2d78128 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xead98a25 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xee47bb61 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/nsc_gpio 0x7d7188f6 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0xe5cfe69a nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0xeb65c4c5 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/edac/edac_core 0x16faa967 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0x5523b580 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0x5b4c59d2 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x09534a1c fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1608c975 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x316243b3 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x50b528b1 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x59310571 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5eb3a7bc fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6602484c fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6e736545 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7d5951a1 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7df38df9 fw_core_initiate_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e886dd3 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x87dd3ef7 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x881c3ce5 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90c97623 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x98ee1b3f fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9b4f6d0d fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb1a3cf54 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbc3763fb fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc1c1d034 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc86a885f fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xeadcd089 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xff7fa170 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xff91cce5 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0038cfaf drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0076cfc8 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03f99e60 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07a268bc drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c1fd8b5 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c9a56cf drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1134f235 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12801032 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16835cd0 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16ca0c87 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17a44caa drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x190469ae drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x193a0e4b drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a7e44ed drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b5c898f drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1bb46114 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1befd1cf drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e8d0a02 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20b1ddd5 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2276f82b drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x252b2347 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x257a1fe7 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2718fed6 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cae2784 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d559c0b drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2df21f5a drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30dbb113 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x347e0d13 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x349d6e85 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3824197c drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38b95ebc drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a00702e drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c5329f6 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c83e6a7 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45463f99 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46fc406f drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4887e4f8 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4adc6528 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c345627 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4cb75795 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x524c48fc drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52bd1967 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53861a23 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55867d58 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58814761 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ac2235a drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65d6f05a drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67f99d1a drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6886212b drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x688b7bb6 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cb64ef2 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2460ef drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72556926 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72b8e553 drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0x732dbed2 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7662b018 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78d12ffb drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b82a7ff drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e81f61d drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81851647 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8288c0d9 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82d1daa0 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83dc9c6f drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8471aec0 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88bc2f92 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bb685c7 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d46643b drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e04ccd0 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e5c8f07 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f5e95ad drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90c3db37 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91a019e6 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x926d74dd drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9567473e drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97ee509d drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bda3e1a drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d4cf78b drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa22d4cfd drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa381f501 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4b0b127 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4f48a7c drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac019966 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf24646d drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb09c0a1f drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2e5ee6c drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5b75cf7 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5cb505e drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5fdae35 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6e85c64 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb75ff4c2 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb84de639 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95a69db drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf8746d3 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1b03344 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc568f1bc drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc787229f drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc833d9b4 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc935130b drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc97912bf drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca5d284e drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf0172eb drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0b93814 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd54321b8 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5d34f40 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd623d5cc drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd73d8c21 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd85f9e26 drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9bdb1e9 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf585a39 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe39f7c10 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe527bc6c drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecfafe55 drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed4105da drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee5e8a77 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefbf7e57 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2d47940 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4ca1876 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf54588cf drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6843086 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf918ef97 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf936eaaf drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf972e21d drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00e94d48 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1fb0295e drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26ef6ffc drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x29a5011c drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33e35d16 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4af9b3bf drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x511c2625 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5788e23e drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c35e858 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6727cca2 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x67e7e2bd drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6848a3c8 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69285034 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a9ebd36 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x74a46f76 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c537ae8 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8d6e63bc drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9eff840d drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa1d84d47 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb0330cb0 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb82e8b67 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbac2f25e drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdea4b58a drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe8592319 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xed0d090b drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xefc6caa6 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf011e573 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf626d6eb i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b7a36f2 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1605af07 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17d02c4b ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1bc9d0c5 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c4d494d ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ff54ff0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x207df5f4 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266d8a60 ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a5993b9 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2ae5dc9e ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36e9575d ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38c544b0 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4429ac15 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50c16cb9 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5115f264 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53547e7c ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ac375a3 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cb4dd1a ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61f52e5e ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62de121c ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x74cba996 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7565a34e ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7578ca4e ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83c2d310 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86f1f2ef ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e62fa47 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x994ec0dc ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b7af728 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9bfc10f5 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa26d9101 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2da1049 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb760b102 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5cca073 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc635079e ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca9cdf2c ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcadde121 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd65db9a3 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd66ba4df ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7ae7744 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xda96d584 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe142309d ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe40a0b3a ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4af4f1e ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf011c0ac ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf787fff6 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe61f929 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x1ba2a3ca i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xe1b75444 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x7573d562 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xebbe8a7c i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xf397ea51 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xfed6b13a amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0335818d hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x036630b7 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x09d56759 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0dde5fa9 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1178aa32 hpsb_lock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x12b46bdd hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x17aa483a hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1b54c3c1 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x21113156 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x22811077 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x230f00fe hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2581a518 hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x29f9804e hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3354bd76 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3753dd4e hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37dd2d66 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3927d0c2 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3d4a02d5 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3fdcd598 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x48b03df5 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4d3ae52e hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4f8329ea hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4fca151f hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x50e79f38 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x544f9e0a hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x54fa43ea hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5e1306f4 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x61269f2f hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x627da5e4 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x64164e80 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6650e3b2 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b39208f hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6e3d2a2b hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x70d8b4ea hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x74ef2a05 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x79179094 hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x85e95432 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8b3a113a hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8e3eee04 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x909666dc hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x92910158 hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9406e742 hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x951a6603 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9817acfe hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9a126dea hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa21c1c81 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa2721751 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa9eaea8c hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaa15c113 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xac08d2c3 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaf1dd779 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbf758c7a hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc1bbfbbd hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd30fe2fb dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdbdcfdd1 hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xddadee15 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe4e2132e hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe59ac40e hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea156e7f hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf0702d66 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3ebb9cd hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfe82f977 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfea91d46 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x264536f9 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x84e8675c ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xdcff5332 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc123bfa0 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x09cf4264 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0c1547a9 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0e706442 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x30eed11b ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3adc6a24 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4af2e339 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4b83482a ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x60891637 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x645e7d32 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6512ed24 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x734bfefc ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x77360723 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x78392be0 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x88b149a9 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb109edc1 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc0da16dd ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdd18a71b ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03b44d57 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x069a5094 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09eebbf8 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c86b29e ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ca1f8a9 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1202eed8 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x13636e30 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x13b943f1 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14ba0cb5 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14ea0889 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a432122 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c6ccbdf ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20f6adc2 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2348c073 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ab3348d ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2dd0977c ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e239bed ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f1fd382 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2feed929 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33220043 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x366b91a0 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3aa9518c ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bf62435 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4eaf5d30 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51676f72 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x536a80db ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53d7971d ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54371247 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55b9e362 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ac1383d ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bfbdfef ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5cb88cbf ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60461f92 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x613649a5 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6577ca22 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6c887814 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6fe27de3 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7032125a ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73328b03 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79cae3d3 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e84c3b5 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87837f62 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8795c569 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f24fddd ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x918d4fb4 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94a7193e ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x958f79f8 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x992707ba ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9df7e455 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9eaf6664 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa073d6a9 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac9f31f1 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaebb8d71 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4b290bd ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4b30823 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbc8d59c9 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6978203 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3530c16 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd934a6e8 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdb463a7c ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe076519c ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7c57592 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef9845fc ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2b27eef ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6c92f85 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfae5c039 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0b492a99 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0c322d91 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x13ebb2f3 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1fa04cfd ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x28226f13 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa46423e6 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa5562b87 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbde69df7 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe4254473 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe9779aa9 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xeee399fb ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xef73bf89 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x25548afe ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x65b6446d ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x96b9bfbd ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9d13e0f1 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xcb6d3955 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf865d497 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfafdc3bb ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2ea3528f iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x31d4724d iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x33bbfd39 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3681190a iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x554cf99c iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5df6044a iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbb0aab32 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xec63636b iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0230debc rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x024f844e rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0ad68ff0 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x237f0c6d rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x734f9288 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa1a315a6 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa6c35e80 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xac5dd4ad rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaf5a5021 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb4793a56 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb97f4624 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbe5cae8d rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbe7b3476 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbee3665a rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc91f574a rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc9f42fea rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xced3e827 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdf0deb51 rdma_join_multicast +EXPORT_SYMBOL drivers/input/gameport/gameport 0x165e90b1 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x17474bbc gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1d3d003e gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2bce2a88 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x66441e45 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa837b312 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe43239bd gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xefb18f80 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf8a1e714 gameport_close +EXPORT_SYMBOL drivers/input/input-polldev 0x71ff2219 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x7580e976 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x97de71ee input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa4ed376b input_unregister_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x1c62d07e ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7a0b2edf ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb01d06f6 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd0a6722d ad714x_enable +EXPORT_SYMBOL drivers/input/sparse-keymap 0x268eaecc sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4e3a5c40 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x63e05237 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x8e36c0b4 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xed5f5862 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf4da1664 sparse_keymap_setup +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x34dfe199 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x998a958d capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x242e6faa capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x26d917eb capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x41fc949d capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x67730edb capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7c4cdaf8 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x890d97a7 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x93b20544 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe266cfb7 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe6891f87 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfa19d65e capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x09710ae4 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1534d834 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x18d01287 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2473ec36 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x62b9786c b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x685a1af8 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x93d02251 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa496858e avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa5d36256 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa70987a1 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad248e03 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbe35ed71 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc34ef124 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdf58b30a b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe8ad48af b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x195ba824 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3119b2a0 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x883daa20 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa077c834 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa3dd5249 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc81ebb8a b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xedc0cd28 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf46176d4 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf92b8dfd b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x6f4cdca6 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7cae5b19 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xacd62ce7 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe8c65bdd mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xfb1f2460 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x77b178f1 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x84fea2d7 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x5ebf9d62 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f9a946c isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4339512d isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x99333bb3 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa918d67a isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xfb195685 isac_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x5db5ee88 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x7df713e4 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xcb929035 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x019d9a71 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x06f81079 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0cc21d3c recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1126a6a4 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x17cff439 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1e0bfc00 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x22ff2505 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x23d4b553 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3c396270 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3d886172 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x473f6112 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4e049106 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x51048418 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x51dfdeaf mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x538aec24 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x770544ec mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7be018c9 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x88e2f9cc recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x974e6be4 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa1c431fa mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc4b27f07 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf1c019bc recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 0x2b467b4c ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/ir-core 0xaa90c553 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x77fa52fd lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xa51cb95c lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xa634fa61 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xadf05531 lirc_get_pdata +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xd9509379 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xde381f54 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xff36afa8 lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xff9b2467 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xb6db194e max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x01195a6d mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xbb2beb5f mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x0b9321c6 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0xd44bf946 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xcec49004 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x76fcd8e1 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0xb33e34ec xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x9a17b201 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x01495ca2 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x089eefdd flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x091d09c3 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2d30460e flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x391a8225 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x516d00e9 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x59be3cf1 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x67bfc8b4 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6f5542a2 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x771ae431 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8ebdfa6d flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9d4194df flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa3c4a635 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb4e32b61 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbd26b729 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbfebc08f flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc12ba152 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc351c3d2 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcfc1675e flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdc08b471 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x4c022a3e bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x7456161a bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xc2c7b043 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xe38cbff8 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x39b57fbd dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4772f6fc dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x53fca01b write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5d04fee4 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa05a4636 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa6a3c8ef dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xcc73c9ba dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd8702173 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf66c5a8a dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x6ab48634 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x05c966a9 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15203bf4 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x19620d3f dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1de5dde2 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2c202fc3 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3041ffec dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3afdccd9 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5dd6100d dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x61da051e dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x63c61a2d dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x64dd2d78 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x68540263 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x688c2da8 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6c2658dd dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x72340135 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x72ebe4f0 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x79472da2 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a7f05b dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x863bf410 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88dffd14 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b10811 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x968a8a1a dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x98e0db8e dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9e889bd9 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa0068b38 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa0ffffca dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2e30721 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd839e0b2 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xda527c4c dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xea03143f dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf36feb90 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf764cbf8 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc3b495c dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xff00fe9f dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0eb81827 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x84d98ab7 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x854995df dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x9f0f737a dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa15a9dd2 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xc08df4b5 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd2c020be dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x82936e9d af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x21353af3 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x441c6eb9 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5301e7c4 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x58810bcf dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x72c88dcb dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7c22a3cd dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7dbecf94 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x87b2659a dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa1d55825 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xaa9df49f dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe55a87db dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x52c5d4ca af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xafd49c75 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x3c650c68 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xba7aa51d bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xdee3e79f cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x7866b529 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x358947cc cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x5217af67 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x918080b2 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x5e0c5305 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x072ee58c cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x604fca5c cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x0598a35f dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x64b67870 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x9ac7777c dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xcd2739e0 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xdb23b092 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x21f16e72 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x30820e81 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3ab78c41 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x799b660a dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8dfa2643 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x91b6ebfd dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xa00402f7 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb4f88e7c dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x5b724604 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x4c645954 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x7d5d2800 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8c595327 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xbdd831be dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcc816b24 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf2636578 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x5e9dc793 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xd3beb257 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0bd5e77e dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1215ffb7 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2d525a03 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5387ca16 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5e197a43 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8e72389e dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x94135f11 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf8e79952 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x49a79276 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5f3aa4df dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x6e954e0b dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x74564520 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb08ead05 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb251d9a3 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcbad619c dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd0069d74 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdea08314 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xef0d788b dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf93ca5fc dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x14818edb dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x75e3243f dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x86f3a179 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd6e54437 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x31a63e8c ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x3d8ec153 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x829a3624 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xa0a077bb isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x1d8cb926 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x1e251469 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xcbb4212b l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xefbc3fc8 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x9f815059 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x71831123 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xf379d1d7 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xfb3e6dd9 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x95e9a415 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xff686371 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x26b433f5 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x932b59b5 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x20df968b nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xf35d2057 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xb4cae51f or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xa0fdb0c0 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x59b4276e s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x41345838 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x4f2ef625 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0xb4489be0 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xb76641b1 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x85ee2ddb sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x0554a572 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x170bea25 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xe4e0a4d4 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xfab0c806 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x1e9c3faa stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xbc8b763c stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x2b79d42a stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x68c01e36 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xa53562d6 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xe920fd92 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x1f3a717e tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xb7d6333d tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0xaa4217e2 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xbe7ce454 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xd76dc5e8 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xa5d0c73a tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x90e66319 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xf7b7e8e3 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xdbe86f3e tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x536929a6 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xbb48e033 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x607586dd ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xda98a322 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x656366b5 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xaf531a97 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x4a4f1598 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xafcba8c6 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xc67e6f38 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xedb96ef2 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x5bd8554a bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xc58c45cd bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xf9bcfade bttv_sub_register +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x9a07b40a btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xf52b8760 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/cpia 0xbb784fbf cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cpia 0xd66bedfe cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x46ce8642 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x4dd46992 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x63c8d5fe cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x6f9e0e98 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x8ed347c5 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x10154c67 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x54bfad76 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x0b06df32 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x14b246bf vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x17e41589 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1e0c35dd cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1f602e11 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x2d750315 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa2ba6639 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa6df4b0a cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x132fdfd7 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x24fedbb8 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2b041881 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x7aae1dfd cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x9e287506 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf6b2a7f2 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x03edb282 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x05da1122 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x095a528a cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1b4d67fd cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1e00f8ad cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x21d4bbd3 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x35e68f56 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5781dacc cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x661f571f cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x72c77761 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x74e55386 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8c9ff124 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x948d32ee cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9bbb6478 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xaf72eb2f cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb4001bda cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xce0ae296 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd1b07c8b cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd3d0da57 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd706b378 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe0770992 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfcfe6cb3 cx88_newstation +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x822df49d em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xd4e8c727 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x0ff97597 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x173065ab gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x23e6cf5d gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x64500662 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8a60a747 gspca_get_i_frame +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8ade2304 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xca0b4aad gspca_disconnect +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4c4b2edd ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6d52bf66 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x8332edd7 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9a2bb577 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb10f5320 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc5aaaea8 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd34ee602 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd451b282 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe9b0b4b9 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf2628090 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf34646ba ivtv_api +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x136c5019 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x13d458bb saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x18b65fd9 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x239f67d8 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x430517bc saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x56028be8 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x68667db0 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x788a798b saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x986092cc saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa529c1d1 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb9c003b0 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe753d0eb saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x24d590ac soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x672cb583 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xcbfe2440 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0xecf449f8 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x3c66f889 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0x63eeedd0 tveeprom_read +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x3ac1fb4b usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x531981e1 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x586c9010 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x7248fbf2 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x9462f9e8 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe9feba3f usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xcaecb343 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x97d4f654 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf296ba4d v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x0ebcb343 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x26892d83 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x8140958a v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xe5ecb4a3 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x0ef5541c videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1a8e08cb videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x475f62cc videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x5c0cdf3f videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x9ba1fde3 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xcfeb7d8a videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videodev 0x02d178d6 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x04b859ef video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3294b420 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0xa4973950 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xbace0ba8 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xdfc8db80 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xeb4a9b7f video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf8a94e2e video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0xff9117d5 video_unregister_device +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x0f04ff1a videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x15ef80ff videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xa7361cd2 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd8cc3561 videocodec_register +EXPORT_SYMBOL drivers/memstick/core/memstick 0x07537ed1 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1be061df memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1e35ab72 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7d719b49 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7deae0cc memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x82573cd1 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8dfe4223 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x98df8fb1 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xaed8c229 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb506e95e memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb6f66b20 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe8b2d393 memstick_free_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x01add9cc mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x02b437c6 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x07648a20 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1a24af14 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x20612d23 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2471c1d9 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2efbc5f9 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x348af6c7 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3a41223e mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3cd701f8 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4006c5b1 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x69cd3dd2 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6f4c2d01 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7af91f3f mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7b4bb1f7 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x85ef4b3d mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x88e86956 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x96d306c5 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9706b704 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9a62dda2 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa3d688e9 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa503d8b0 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc56a4b86 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc86ba841 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd6dd9a1d mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9626512 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6af114d mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf2b4974a mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3ac95ad mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x01db6b0d mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1960dc8d mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1fffbfee mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2632b3cc mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x30326712 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x313fa2c2 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4cf7effe mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x580ec7ad mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6e644dbf mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x756478e6 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x78c52adf mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c7f93d3 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8ea36a21 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x98b8f959 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa0fff7ed mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa2643e90 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaa784a7d mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb5a8b3c3 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb761d2b0 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc009d83d mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcc6adcdf mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd6f74302 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe0a7a234 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xedbbd019 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf077c8ab mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfdcee6b6 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x25e9c95a i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x26719be5 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2b1d74dc i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2fb91cd9 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x36b35a4a i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x471f7cfe i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x718e56d7 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7cd12d0e i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x86949dfb i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa47ffef1 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa550a967 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa82f5296 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb5195d21 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc715276a i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xce35f61a i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xced53cc4 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe2601cce i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe8252c0a i2o_msg_get_wait +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0be25113 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xb6a0f34c pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x0580e3ec mc13783_lock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x0aba27ca mc13783_reg_write +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x13a9e8b3 mc13783_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3d83752e mc13783_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x63d3ac31 mc13783_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x7560043b mc13783_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x9eedace8 mc13783_irq_status +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xae0eb6aa mc13783_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd0070cc7 mc13783_irq_free +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd557b639 mc13783_reg_read +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe01dc920 mc13783_irq_request +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xfc9b3f03 mc13783_unlock +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x5805fe3e ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xdc0d4b5c ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x557ce74f c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x9b0299f2 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x31b598b1 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x8b060f4b ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x1e5b67df tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x215700b4 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x25aca962 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x25cc72ea tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x26983577 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x35562f26 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x53f62718 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x57d8218f tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x66b4904e tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x69b5791a tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x9d43811b tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xe963d039 tifm_eject +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xc5c3ea81 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x4ba18899 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x67e49a37 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xc808052e cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x15a050fd register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x1901b9c7 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x43f8e6a1 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x741e7b31 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x04f90507 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x45e2f67f lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x549538e5 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x55fed277 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xdc6b3fb0 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x014d1f71 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xce689cbb mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x8143f9db nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb0d8cd87 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x15e869b9 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xd13f587f nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1f01bdf9 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x53830899 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5a34b03e flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xd6e0e6f5 onenand_addr +EXPORT_SYMBOL drivers/net/8390 0x061830af ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0x21635cff __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x6f25673d NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x78aa9726 ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0x929fef1e ei_close +EXPORT_SYMBOL drivers/net/8390 0xb1572095 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0xbb07e646 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xc85624bc ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xe69ea4e9 ei_open +EXPORT_SYMBOL drivers/net/8390 0xebdc67e9 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390p 0x1b2e21d8 eip_start_xmit +EXPORT_SYMBOL drivers/net/8390p 0x545f833e eip_set_multicast_list +EXPORT_SYMBOL drivers/net/8390p 0x751aba01 eip_tx_timeout +EXPORT_SYMBOL drivers/net/8390p 0x763ef0c9 NS8390p_init +EXPORT_SYMBOL drivers/net/8390p 0x91a03713 eip_poll +EXPORT_SYMBOL drivers/net/8390p 0xb663e226 eip_interrupt +EXPORT_SYMBOL drivers/net/8390p 0xc10b1f72 eip_close +EXPORT_SYMBOL drivers/net/8390p 0xc1fdf81b eip_open +EXPORT_SYMBOL drivers/net/8390p 0xd3ed0619 eip_get_stats +EXPORT_SYMBOL drivers/net/8390p 0xee6c7df2 __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/8390p 0xf7c8303c eip_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0529f334 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x19507376 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x279d1084 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x61add866 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x65264b38 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x773cf4a1 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x77ffdd03 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x81a62346 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc87aad84 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xccd0f755 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x39740bdd com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3ea94a24 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xdc84f461 com20020_check +EXPORT_SYMBOL drivers/net/bnx2 0x104facfb bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x1ce8ce90 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x0a157cd0 cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x008d79fb t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x06d99f6c cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2077b3de cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2b1385f7 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x37388c10 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3d8c982f t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x474f5e38 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4fb02628 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6bc1e45b cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6c7d02af cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa402cbb5 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb8411897 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd3f54cca t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xef327b0e cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf4aa3fd0 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfccd0c0d cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x05ab4ff6 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x111e59b5 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x132fa59c cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2b8d56ac cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x59c218c8 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5da9ad0c cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7b062d1e cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x82e48104 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x82fba091 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x9d124eb3 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa1cab11f cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xab0f0e9c cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xacce481f cxgb4_netdev_by_hwid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc626d172 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1d5d2e8d hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3285a917 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x55555b36 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x736c68d3 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xebe934b3 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x057da059 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1ff63814 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2eefcebb irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x438844a1 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6027efe0 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6701963a sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x743ee098 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb0000f04 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc68d6315 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd6f9734e sirdev_raw_write +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mii 0x237fd26f mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x857688a7 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x91bb3b5c mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xac4ced7e mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xb2b54a81 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xc073391a mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xc1f65358 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xd9818cfd mii_link_ok +EXPORT_SYMBOL drivers/net/pppox 0x8039fa6b pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x8b8b329b register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x8d2b691d pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x059f825c mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x64e56337 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x80d1394b tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa23c1b97 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbf23d680 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc7d94404 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x348faa42 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x370723aa detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x57ab80cc hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8b237471 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8faee978 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9e818238 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa14fb6fc hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xaf353065 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb68a8980 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb915f9be unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf6cb3c07 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/z85230 0x0de18576 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x0f899094 z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x17b07f15 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x2d2a065a z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0x4b803622 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x8f65cb67 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x9772a4c2 z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x98cb023b z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xa6cfd88c z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0xb4be483f z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xbf7b4ac5 z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0xcd8cfac6 z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xf0d10a84 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0xf2f9a687 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x7fd6ecdc i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x2d7ab7de stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x46b1688b reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xbebfa9de init_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5e217ef7 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6d440f75 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xde354d85 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xde77bf5d ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x17fa8bad ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x193b1a13 ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2d45c8a7 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x39638a36 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x80c1c705 ath9k_cmn_rx_skb_preprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8a4e0000 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9ff6fdc1 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02001072 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x021fa907 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02c4dae9 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09afd7c3 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b14d0a6 ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b7b44e6 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ec78d4b ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11d34ee7 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14afcaf5 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1594d356 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x173a5f05 ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b3d3cba ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1cb445cb ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1dab370e ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e115692 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24c9719b ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24cc4f4d ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x256a171f ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28ff8a3e ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c50e645 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d0fa024 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e9ea8bc ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x307db6b3 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31770f61 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37cad615 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d5841b9 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x41e053f1 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x41e43fb0 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bc710a7 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bd38e2f ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f1742d0 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f9ec2c3 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x563ce35b ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56741647 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x690564e6 ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a996a1b ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x703adc3f ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70d73617 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x713f3b2c ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71beb656 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71f51b33 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7380d39d ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76c220f5 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d7db928 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x825c1a38 ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x86b5adf3 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b35e578 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8da213a8 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x90b4fa3f ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9187c346 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93fbc965 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x956c0f54 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x970027ff ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97506415 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x975c16b1 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e541127 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3d314fa ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa97c0175 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad5462d7 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0612cb2 ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1d3d133 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3d9ad8b ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb807a6b2 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba9807f4 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe1ce323 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe9fbfe8 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb3f5855 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xced03461 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd015cd6c ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd47d0b41 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd94dbfe4 ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb25d4e0 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd820853 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xddecd68e ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe9eab977 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee457b91 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1037c76 ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2da53a5 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7c1dbbf ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa622ed1 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfbddf4a5 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfde63578 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/atmel 0x3a9d548d stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x711459aa atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x9069e73a init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x061008fe hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x09adfbad hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x10fc11a8 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x20f3e9c0 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27bf6ed5 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3e55861f hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4245b5a5 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x452f24b1 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x46241e4c hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x469579f8 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4e689ca7 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5f642031 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6271d34a hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x66ac702a hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x69a0a87f hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x70175db4 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9795bb29 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9d31dba5 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xab375e8d hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaeec44e8 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb02833ac hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc6010491 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xccbcf000 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xedc0a6f0 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf0cf8f8b prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x178e91bf libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x22eb0e0e libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x264f33be alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4624bfb5 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x56298dae free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x67295de6 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x69f19b34 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6f8fd5a8 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7343811e libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x753b7886 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x79ac11d7 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x822ff5a1 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8a995c29 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8e4cb4ac libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x944f8e17 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb35fde47 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb75ca391 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbc8d7a30 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe3da4588 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe48c2df5 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf6e774ee libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x004a8e67 iwl_dump_csr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x02533230 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x026e70c5 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03c8b3d7 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0691b93c iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0b65f09a iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0c6d49db iwlcore_eeprom_acquire_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0c7f7b09 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x10594b0e iwl_eeprom_check_version +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x11efdcd4 iwl_rx_missed_beacon_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19cc829e iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a1d874d iwl_good_plcp_health +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2250416a iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24b8e8d7 iwl_tt_exit_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2563fc14 iwl_chain_noise_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b2e58cc iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b5c051c iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2dc35b2a iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2e0eac5f iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3071e26d iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32b9d5af iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x33a6fc9b iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x352ae954 iwl_dump_fh +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3704071d iwl_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3a517247 iwl_set_hw_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c7cf928 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3ff88753 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x409dab61 iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42d81404 iwl_reset_run_time_calib +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4344e07b iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44599f47 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44cf0158 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x495beb51 iwl_restore_default_wep_keys +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a368e20 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4cac049d iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4df712cd iwl_setup_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ec4ad13 iwlcore_eeprom_release_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50fe8bed iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51cee037 iwl_reply_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x54a6475a iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x54f41b28 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5eaf2465 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ee9da3c iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5fd4fe8e iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x602a73e8 iwl_verify_ucode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6165520f iwl_free_tfds_in_queue +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x61c73fa0 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62edaf83 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x657d9ba3 iwl_sensitivity_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6764bee7 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x679d8a92 iwl_remove_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6817c962 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6870f3c1 iwlcore_eeprom_verify_signature +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x69c346a5 iwl_remove_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6bb24a06 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6bb2817e iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x73830f9a iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78d63b99 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7bbeebbe iwl_update_tkip_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7d26a4e9 iwl_sta_rx_agg_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ed4f78e iwl_tt_enter_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ff4fa59 iwl_sta_tx_modify_enable_tid +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x822507bc iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8282d9f7 iwl_tt_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x832b6f7d iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8384484a iwl_ht_enabled +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b2292eb iwl_set_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8cfbf952 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8eb84672 iwl_send_calib_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9167bc50 iwl_eeprom_get_mac +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92e9b77e iwl_rx_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x956d4b7c iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99e646b9 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9a6f206c iwl_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9f5f8960 iwl_sta_modify_ps_wake +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9f84001c iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa07ef43e iwl_tt_handler +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa3989c08 iwl_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa7f1681f iwl_set_rxon_chain +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac192316 iwl_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac4d9a88 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xafb46373 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb1ff8116 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb300eac8 iwl_tx_ant_restriction +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb47b27c6 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb57f7372 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6137b80 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb69b789e iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6dec78c iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xba6d8970 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbdd60fb7 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbe55d495 iwl_init_sensitivity +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbee68d19 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc06b1780 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc697e300 iwl_hw_detect +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd57718e iwl_sta_modify_sleep_tx_count +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcdcd5104 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xce8f0a66 iwl_sta_rx_agg_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd0a2916e iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2ac9f61 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd31f898c iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3747750 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd51d7121 iwl_tt_exit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd640fd26 iwl_calib_free_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd854307f iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc56a727 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc817ab2 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe07747fc iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe39f643a iwl_add_bssid_station +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe92eb09f iwl_mac_beacon_update +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xea5c8418 iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeb36789e iwlcore_eeprom_enhanced_txpower +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedf49f4a iwl_toggle_tx_ant +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf0d28e61 iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf22062ec iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf3058c4c iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf316e9e7 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf3d68833 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf61b07d1 iwl_set_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf6bb61a7 iwlcore_rts_tx_cmd_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa02c07d iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfab752eb iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfac4fdad iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfac50b01 iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfc020415 iwl_rf_kill_ct_config +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1c337d17 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4a301007 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x62ad32fe orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x67aaab53 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8416a6f7 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x846da30e orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8967fb50 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x899a1f4d orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8f0be31e orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcbc3f63b free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcdb0bcac __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdee800ad orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe10888af orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf197687c alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfa97f6c9 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfe31b3db orinoco_change_mtu +EXPORT_SYMBOL drivers/parport/parport 0x0b3216c0 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x0eb44dd5 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x221a1cc5 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x221aff20 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x25963b66 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x367d474b parport_read +EXPORT_SYMBOL drivers/parport/parport 0x40562346 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x4bec55e2 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4ff505c5 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x5e7cf4ab parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x5ebcfde3 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x71ae63fb parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x7bd3fa0b parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x7d08789c parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x7f20de76 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x8c87acc5 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x92e1441c parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa78f36a4 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xad20aa29 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xc56a888c parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xc9db4eac parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xcb07c0f8 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xcc5a740d parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xcf00ffe6 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xe1cad11f parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xf0405df7 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xf326b5f6 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xf88fbdf1 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xfd3dee1f parport_release +EXPORT_SYMBOL drivers/parport/parport 0xff200fba parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport_pc 0x1c0fb4f7 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x5106b774 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0225df5c pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x03a24286 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0c93b174 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2f522e81 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x58a5a2a0 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x61b0e57e __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x79a3315a pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8a84e0ab pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9c4b31a6 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xacf75fb0 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdacd172a pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdcdb1cd8 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdec507cd pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe2f3d2fe pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe5fb45c9 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xebca1354 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xffe6a478 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3aaedcac pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3e3ebb35 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3eb78182 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x44a2f6c0 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x77f59062 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8ebce89c pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x99f222bf pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbdb4356b pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdb1dafa1 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe5b35b4c pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x18883c2d pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x948e50fa pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x365fce37 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/scsi/53c700 0x176a8a96 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0x42aeef56 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x16d4040a fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4a93d4b9 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5999fa8d fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x743728b8 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7c113cac fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x84ab99fb fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9d0f5213 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e198a7c fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x19df64ee fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21779bd7 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2fab3c3c fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x33cf1517 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x38718f75 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3dbe5fca fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x409de143 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x422201c0 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4afcb07b fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5ce47736 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64275d71 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64b43022 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6770386d fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c235d12 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f7a909b fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x700b18ab fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x733f99e4 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x776cc966 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a2996bf fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e10d35e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9d27f230 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa14f7e0c fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6f67a88 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa972fbdc fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb047d0df fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb3be307e fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc4ff89f0 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc9ad20b7 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb3bf547 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce03fe81 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6dd6e11 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd7c7fd6a fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd9abb877 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde9977af fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe1610a74 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2610665 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xefe13cf1 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf105d0dd fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf64d4e94 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfbec0c1b fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfefdcb43 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x7c81ed1a mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x01b69e71 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c168492 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x10463acb osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x10feb07f osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1599f915 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1b70e54d osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x27c9f0dd osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2de4202a osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f42faba osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x34dd9d9a osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x389e73b8 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x43b30341 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4e3187fc osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x525aa4fe osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60a1811a osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60a259ce osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6b79c3cd osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8a8e50a2 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x924480ec osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9477ae95 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9c1408f4 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa3232f59 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xab082d3c osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb1e36721 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbc097ea3 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbe651edc osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc043c3bf osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc0a06d84 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc1e54a7f osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdbb9d381 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe04de984 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf6840968 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/osd 0x2e2122c7 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x75341f5e osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7a792bc4 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xd9dfd371 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xeb7642d4 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf59f0014 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x66e53163 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa5373314 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa6d83ec9 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xac9ecf8b qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc09895d0 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe72f2037 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x04186c9c raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x194eacf6 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xe2741ae7 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0183e6fa fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x41b8a51c fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x457f07ee fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7713fdd3 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7d1360ce fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x88fc7983 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x966bef1f fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x967f32ea scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xafe04b66 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb3aaf0a8 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc30c80bd fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe8ccc1e4 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xeac6c09f fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x053394f8 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x10dac711 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x135ef3d8 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x16663d5c sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2a136ee1 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3025c359 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x30362d96 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x30640258 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x39dfa0c5 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x43fa3b10 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x612f022c sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x758b5765 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7a6ba37f sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c9868f8 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa9244ca2 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaf801961 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb403562e sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbad2463a sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd986208d scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdb2e69b2 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdc53763d sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdf6ef780 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe6e72f8a sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf25ec066 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf3aa7ca7 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf3f1bbd7 sas_end_device_alloc +EXPORT_SYMBOL drivers/ssb/ssb 0x038490a7 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x16b81598 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x1808c088 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x22729fce ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x2f61a6a0 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x35316ee5 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x3b0aaf2c ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x50ed50bd ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x5bd1d3a8 ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x5d7f0ab8 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x6efaada9 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x78129358 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x9d4ccfcf ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xae9fdd27 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xb7b2f4de ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdcde3503 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xe6762a74 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xe67bbd19 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xea1892b4 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xeac6e1b2 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xed9dec9a ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0xf2a42f48 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xf7d3452b ssb_dma_translation +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x1101ae3a comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x1c731191 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2542d085 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2a405756 comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x374f5e11 comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x390fb90e comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x3dc38258 comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x485cbdb8 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4ddc3262 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x68be9cb1 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7a18e1a4 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x99bc4bb0 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9df41b19 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf509fc8a comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xfd5f0413 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x570f796b subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xacfc8b2f subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xad72fff3 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xbf5ae371 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xa2bb323d cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xc3a63e72 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xd86bc26a cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x030d1a72 mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x0cdb022a mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x0f71e947 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x14055e14 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x151009ee mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1798f790 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2ae8b363 mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2e0d5dec mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2e24bc2e mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6fd3a87d mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7daa0add mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x8642e624 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9c23068d mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa72e45af mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xb07a0d8f mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xca865945 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdf4e52bf mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe2959e41 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf35c10db mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf8a4c351 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x505f9cac subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x7b8477d8 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xaa636a83 subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xed10e1f7 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x037a207a comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x5878caf2 comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x72289a8d comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x8d33d424 comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xa50626db comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xb7c73ddc comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xe1243196 comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x36c8fefb cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x61380a04 cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x7dddbb25 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x7fe6eca2 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xc447d667 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd36fe7b2 cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd68bc83c cx25821_dev_get +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xfb960aac cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x022cc5cd go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x0e321f3f go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x81314eb3 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x8d2bac16 go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x90521b12 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x9086b5c4 go7007_snd_init +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xaa74f601 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xbc08220b go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xda2d8323 go7007_read_addr +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x8bd9a6c4 vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xe82359fb vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x012009d5 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0263b7ec __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x176ad815 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1c19777a iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2042f568 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x24eb8916 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x270eeb44 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x28a432af iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x35fd4661 iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3c56c0a7 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3cdbc757 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x41a83f70 iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4750d1d2 iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4e6d669f iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4fbf281c iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x50e09cb8 iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x532ca7d1 iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x57d8411b iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7bcd0724 iio_read_ring_bps +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7d5a4a9c iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x85f05247 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x86f5def3 iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x893f725d iio_free_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x95e9106d iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9c54f4a8 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9d9d7d24 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9e40c834 iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb60bef1c iio_get_new_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbca495b7 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbd3e905b iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbe7b3801 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcc870007 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdd707ed1 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xde619080 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe7a92eba iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xea58daad iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xeb39fe8e iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf2fdc0c2 iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf3654599 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf73d6e7a iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x399027e3 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x533af21c iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x535cb2a3 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x5e185fe7 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6ae9dcfa iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7000b0e4 iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x774d7099 iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x78b1a086 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7d2d9cee iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7ece8fa2 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x95e4cb9b iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xab0a9907 iio_set_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc73a1653 iio_get_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x2369967b pod_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x578bbb19 variax_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x8d51826e variax_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xe0c05d29 pod_create_files +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x0be65bf8 rar_reserve +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x62fd276e rar_release +EXPORT_SYMBOL drivers/staging/memrar/memrar 0xb260e0b9 rar_handle_to_bus +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x0072de2f rar_get_address +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x01de551a ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x04837dc4 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x066bf9f3 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0c58592b ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c99fa0c ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20c96404 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27860fd4 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3713bb6e ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3dfbf136 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3e5dff72 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x454d7f3e ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4588c022 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x45c00db7 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x466a8a7d ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c70e54d ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c71d205 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50a6f8d3 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71f7caec ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7484a85e Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7584123a ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7970107f ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e1b0d9b ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e5949d6 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x80748fdb ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x85539925 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86c51703 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x878feb43 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x886c1466 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8aec77a3 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b1656ee ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b90e0dc ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8eb27a5a ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8f7394f8 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x925d0882 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x958bbd1e SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x96279159 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9d5c9272 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9dda2440 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7bf865f HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa909986f ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa982e064 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xba2f9d55 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb94353e ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbc2411d3 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf4e92ca ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc0809335 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc71af341 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc865d36b DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda6f164e notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdcaf7d37 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe2a6379a ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeee6e7c3 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf2e37e3f ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf3c1919e ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x73467f55 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xbb1ff15d tm6000_register_extension +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x023275db vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x3afa2070 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x3be7ef09 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x41862ad4 vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x4edb8da3 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x6414d386 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x662ecf4c vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x67191ea7 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x6dc690bb vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x750be4ef vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x88f2486f vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0x90695906 vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0xadc9ffd2 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0xb33063b9 vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xb36fc688 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0xbdcb8b2c vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xeb7cd8b3 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xef3068a3 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xf7c94ceb vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xfa7a684c vme_master_request +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 0x5268c59a ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x2916011f phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xe3279446 phone_register_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x1bb06c62 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x5bf1666d usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xbd55e4bf net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x8ecdb478 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4a7a339c usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x57d3b15b usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6fbac126 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x717b5422 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x84f922c9 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x915c8791 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x948e10fa usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb0c47bb5 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb490626f usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcb7f8dd4 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd981ad3e usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdb9fbd33 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf113a7a8 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfa74443d usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x3a435429 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xddc089bb usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x677b5740 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xbd133ab1 lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x2696169d cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x49159b05 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0x8c840cae cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x93b49660 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/display/display 0x8e3bb61b display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x9417630e display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xcec3efe3 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x9c6ce260 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc7cf97b0 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe20afd9a matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x1e07e2dc DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x2250ca97 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x66343643 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6ccb98dc matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x8085d3ef matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xa8bbd000 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x44c49723 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x7494d6d1 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x9a3b38f1 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xa2b12c4b matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xe88026af matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xf8a7e721 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x03923ba9 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x114bc1d3 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x47305dcb matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xddc50e10 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xed2f96f3 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x6162ae5d mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x2e137fa6 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x5e6d018b video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x241fca5f svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x50b38cb5 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x99f9a6f6 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xb0001c0e svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xc72e6af2 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xc9a358f3 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf12889bf svga_tilefill +EXPORT_SYMBOL drivers/video/syscopyarea 0xd95db5ce sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x0f754395 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xbe2524fe sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x5418424a w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x5bf40d19 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x1a46d6e9 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x9f9ea442 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa1ab9998 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa3e9440d w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/wire 0x40b120fa w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xafbb8ee9 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xcf903319 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xf5043012 w1_add_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x28ca06ab config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x34b6a2bf config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x3a2afb35 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x70ef506a config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x71c10832 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x7ba935ac configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xaab03f31 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xb7e82412 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xd2e795ca configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xdeb325a1 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xf1249769 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xfdcd94ef configfs_depend_item +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0dbd7a0d __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x10c55ba2 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x185787e3 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x1881ba21 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x1d048bfe fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x239bd7c7 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x3b298762 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x3d26a164 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4f6b6a8b __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x714c657c fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x86720aca __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x98765e59 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xa451b12e fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xa926ef46 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xac837e8e __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xc558ee05 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcc5486e0 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xd234c9cb __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xd4c5ab11 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xde87c98e fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0xdf8d1d03 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xe242c5de fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xe6cf6562 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xf12f5503 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xf699a044 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xf6ac45d5 fscache_check_aux +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/quota/quota_tree 0xa0f7c098 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xb948e45b qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xc586b246 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xcdccfa53 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xf938eaf4 qtree_delete_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x040ffc0d lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x104f3bdf lc_changed +EXPORT_SYMBOL lib/lru_cache 0x29bb959a lc_del +EXPORT_SYMBOL lib/lru_cache 0x2b0aa60d lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x3b87d807 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x4eea74fd lc_find +EXPORT_SYMBOL lib/lru_cache 0x551bce80 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x730acd27 lc_put +EXPORT_SYMBOL lib/lru_cache 0x7f4d7913 lc_get +EXPORT_SYMBOL lib/lru_cache 0xa38de7c1 lc_set +EXPORT_SYMBOL lib/lru_cache 0xa9755912 lc_create +EXPORT_SYMBOL lib/lru_cache 0xb475bf06 lc_reset +EXPORT_SYMBOL lib/lru_cache 0xbc888be1 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xf21a0fb2 lc_element_by_index +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x424060c7 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xc3b25f92 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0b0cc9af p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x127714d2 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x19cd0d77 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x1e9f6690 p9_client_version +EXPORT_SYMBOL net/9p/9pnet 0x1f918279 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x239221f4 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x342ead24 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3dae1965 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x42cc2db6 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x4bc8b2e6 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x5917e4e3 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x8370f233 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x8bd4ed3c p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x90675cb4 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x91bd79a3 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x95fd8b0a p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xab7187d7 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xbefcefc5 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc18478d3 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xc287b134 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xd3ef783b p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xd43c7319 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xd9ccc1a1 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xdab77c64 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xe19978b9 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xe1ec621f p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xe48b837b p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe816b9ac p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xed04e127 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xf3615b86 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xfdcfc766 p9_is_proto_dotl +EXPORT_SYMBOL net/appletalk/appletalk 0x84ed83c6 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xc5ce1fd0 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xf230b0d8 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xff144c1d atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x222aaa74 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x2844f618 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3704b2a8 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x54510c7b atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x5ce79c67 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x6e755c35 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x8d944333 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xc8a4ba1f register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xd1e81feb atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xdcd34e40 atm_charge +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xfd4f0576 deregister_atm_ioctl +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x408177e6 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x4100fb87 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4bcaf15c ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x785389f7 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x8160631f ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd117ab9d ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xd118a662 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xf2c037fa ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xffb4d9a4 ax25_send_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0d0851c6 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e870085 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x30936e4d hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3206b3f7 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3ec2dfca hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3f5d31aa hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x476b9ada hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4af1279f hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4bf1afc8 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x510ff505 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5c7bf9eb hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6564b1d5 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x75f6fc23 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x78c005db bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x84780d18 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8a6f6b29 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x97f5dc53 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x992bb695 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa7687775 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf3dfd7d hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xba1804a0 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbdbaf6dd hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd08c36e0 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd6b44756 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd74655ee bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd94c86dc bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd9af3014 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe11e59d9 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe95c77df hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeee683b3 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf418a33c hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfe609c8a bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x88ea8f2f br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xae361832 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xbd5d5e09 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xe2b5cd07 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x012afd72 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0c16dbe1 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x0e5e0b43 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x16b7e81c cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x19d361d8 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x3d9a48a9 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x3ef408d3 cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4db43ccc cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x54611096 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x5c6f88d5 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x5fe59db0 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x672e51a7 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x6c8f53b9 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x8164af4a cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x84c5269c cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x8920c883 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x89aa8092 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x8d560ce2 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x9ba68a52 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0xa3db36d2 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0xa426a5fc cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xa930cb0d cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0xacd8c821 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xc3488902 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xcb9f6dba cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0xd5aa038b cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0xdecf836a cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xe88293a5 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0xec6b4a6e cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xff6e3cf7 cfpkt_peek_head +EXPORT_SYMBOL net/can/can 0x12910a4b can_proto_register +EXPORT_SYMBOL net/can/can 0xd78a660c can_proto_unregister +EXPORT_SYMBOL net/can/can 0xdecb0a01 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xe22e2f39 can_rx_register +EXPORT_SYMBOL net/can/can 0xfb18c850 can_send +EXPORT_SYMBOL net/ieee802154/ieee802154 0x15f2443b ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x389ba988 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3f38c880 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x44f96049 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x486960ec wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4d5f72ef wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x518fe793 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5b813114 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5c08856a ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb69aa3a1 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc07ac4ce wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc9c870ac ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf8d8a11f wpan_phy_free +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x1d8eb908 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4d10ba0a arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd7cd48b7 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x07016f92 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x5b532721 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf9c78cff ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x3c924100 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x572d2aa4 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6c088926 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x888fa4c9 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa2bceffb nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd8bee4ed nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xee0ddf36 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x44306b83 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xf8eeed92 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x18d80da3 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3ea4497d ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x59a8fd75 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9fd33443 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x43c9ba35 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x62ecf5b4 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x31fc1067 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xcb904a6a xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xfbc45587 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0736621f ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0fea7631 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x278888ea ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x29fd7a85 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4f917a5a ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x54074a60 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x771826d3 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf20a34f6 ircomm_data_request +EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x0c797474 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x14031dff irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x3235e10a async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3bbbc9e6 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x4685c55c irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4f39e047 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x50377149 irlap_open +EXPORT_SYMBOL net/irda/irda 0x5eb8d6f6 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x81e8dfbb irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x8efbe753 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x90ba92f2 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xb0d85dd4 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xb7b859e2 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbc6c44bf irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbe882763 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xc3c11b92 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc5161fa7 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xcf308e3f async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xd4146242 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xdd030520 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xdd1a0a71 iriap_close +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe4e65cd9 iriap_open +EXPORT_SYMBOL net/irda/irda 0xe801eaef irlap_close +EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf34c5fb9 proc_irda +EXPORT_SYMBOL net/irda/irda 0xf8c2f551 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xfd9fa4c6 irttp_udata_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0x14546afd l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0xa5b03659 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x19e70280 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x5f1bdc4f lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x6115747e lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x7312827d lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x7bfbb117 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x8d2faa80 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x92769a89 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xf59a3bf6 lapb_setparms +EXPORT_SYMBOL net/mac80211/mac80211 0x05e70c55 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x1355e468 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x1b0c8ada __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x3b4021e0 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x3d8eddd2 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x4110b0d7 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x420fb11e ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x4f081874 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x586d6376 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x5a36901c ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x6555f6b6 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x68774fd3 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x746cf81a ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x74ac746d ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x852adc56 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x962e4d72 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa47cbfab ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xac742e7d ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb366fbcb ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xb74bb19a ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xbde5451f ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc3219ad0 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc7769a57 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xcf30361f ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd328737c ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xd44eae3b rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xd70849f2 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xdca0b8bf ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0xde269f51 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe15f6e6c ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xe60482a7 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xe8ed1767 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xeea4a424 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf1dd836c ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf76f7402 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xf86b87b1 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xffb0acb0 ieee80211_restart_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0115385d ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x05e3f17f unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0cc5135e register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3706c949 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7a10f904 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x81908590 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb0ecae83 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc67d384c ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc71a7b7f register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc7a7ed8d unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf8bec29d ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x0b9327b5 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x93586ff6 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x1d12073c nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x1ca22f4b xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4995f00d xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4b12c78f xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6a753de4 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x8878210b xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xb1a783b3 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xbb6f0e75 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xda3a4f15 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xe57089de xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xf14212b3 xt_unregister_matches +EXPORT_SYMBOL net/phonet/phonet 0x385375f2 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x627b54cb pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x6748c56f phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x6d5efaaa pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x874d67d4 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x90852547 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xb8418ac9 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xe1d8ff29 phonet_stream_ops +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x055f1188 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x09b5d0ef rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2a310e37 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4f4bd023 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6d3439e2 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7e8467f5 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x88f2c4b6 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8fa1697d rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9e7ef583 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb984fc43 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbe769ff6 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcc6476ea key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd155162b rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd9311383 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xedc19f9c rxrpc_get_null_key +EXPORT_SYMBOL net/sunrpc/sunrpc 0x59b7d6d5 svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x18a777a5 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x31766a19 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3c9b87a7 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x677fce3c tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0x9fcecae8 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0xa27e5aa5 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0xaa7ceaef tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xc5f45a37 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcfc13f47 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe2f9765d tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xf3da5b55 tipc_createport +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xbc8914e8 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x5967c0f7 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0xaafc8f9f wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x00287806 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x01dcc204 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0b4c61b3 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0c800537 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19910405 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x227dee00 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x2aa37ac8 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x32dc9d0d wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x382e8e42 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x3cc90363 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x3ec7f303 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x4523cfec wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x4b069c54 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x4be71e25 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x5b29b11f __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x664744aa ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x78761322 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7e4f4e04 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x858835f3 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x86527e4f cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x88f01342 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x99af49f1 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xa3ce5257 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xa401ef09 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xacbb3ead cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb8f9e1d9 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xb9498940 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0xb962f4f0 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xc10066d0 cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc6f8607a wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xc7428d4d cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xcd37f0a1 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xce386c03 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xd2dadb04 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xdaf54757 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xdc16eea3 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xdf72da38 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0xe2cc4767 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xeb24c011 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xeb287393 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xf68f81d0 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xfb7f293e cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/lib80211 0x0cfa2006 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0x0ed4884c lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x22a6303f lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x3a4c3b69 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x58878962 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x8ad4da3f lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xca5afe80 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe846787e lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x1c4aba25 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x28f59113 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x2e51573c snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xab65d141 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xbd476a3a snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x1eab9739 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xd5f1e3ad snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xe88c4ee2 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x06406b22 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x105a2e79 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x10c0b398 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x174d9916 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x221c8efd snd_device_new +EXPORT_SYMBOL sound/core/snd 0x246b3106 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x2f1bbf24 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x3403ac2e snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x351ddfb3 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x36bc10ab snd_card_create +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3c88b150 snd_cards +EXPORT_SYMBOL sound/core/snd 0x3d1df696 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x3f4c8b53 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x3fcb9781 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x43d8ac92 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x47a6f263 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x489c58f6 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4e37e500 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x626f099e snd_card_free +EXPORT_SYMBOL sound/core/snd 0x659d32f7 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x6bd64ddb snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x6bef58a1 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x70abbf65 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x70ff24f7 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x773de960 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x7ebc0db8 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x90d890bc snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x9aac6d36 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x9aca3292 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa2ba3540 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xa34d67c8 snd_info_register +EXPORT_SYMBOL sound/core/snd 0xad6c69db snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb9cac701 snd_device_free +EXPORT_SYMBOL sound/core/snd 0xbe0c3cab snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xbe84698f snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xcceee5b0 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd253516f snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xd378b186 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe261c811 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xe43411cd snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xee89fc22 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xf1086e25 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xfa0d984e snd_card_disconnect +EXPORT_SYMBOL sound/core/snd-hwdep 0xe50583fc snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x182311bf snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x1e31845b snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x95a85dba snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xa4bc8dd0 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xaad8e738 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x03d2d9b0 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x07f81776 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x09b1fda0 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x0db4f98b snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x1a6fa4b6 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x21523ace snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x2648f102 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x39d413c3 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x3b49b0d1 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x3bab37c4 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x3c0e561a snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x3e52acca snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x402c1368 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x4809429d snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4dd98434 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x50962b7d snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5c69a3ea snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x61ba5ecd snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x65603ae5 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x67570db1 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x69b26543 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x6d6eee78 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x6e6ebb7c snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x71dde507 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x77be4191 snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL sound/core/snd-pcm 0x7a1b5e65 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x85504b4f snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x92401a79 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x954195d1 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x9801f50f snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x9a3eaa63 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xa35be00d snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa92dd8ea snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xada09b52 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbdd99c39 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xc605a783 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xcabb05a2 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd37bef7c snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xda931131 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xdcfaf3c1 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xe26fde33 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xec25bdd9 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xed14fdd5 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-rawmidi 0x01044ebc snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0210db3b snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x04d11e98 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x262f9848 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x420ea4de snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4803978b snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4aae592f snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x539b3e65 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5da6f29a snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x90b8376e snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x964d125e snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x964e81ae snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa12b0f54 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa496cc69 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcde06c53 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd83c2834 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf992228f snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-timer 0x0bd518b8 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x10f84223 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x2c274f8a snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x38d324e5 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x5f36c602 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x73d19fa2 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x7fd37f1a snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x879fbba6 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x98422763 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xc93a7730 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xd2d99871 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xf52598c1 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xfa37543a snd_timer_start +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x2760089a snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1cafb472 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3d516ed5 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x415ac81b snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4fd88d27 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7be40581 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9e1d71cd snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcaa056a3 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xce046f2f snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xef5a6e7b snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x07144783 snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x168afeb5 snd_opl4_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x4ca39993 snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x5ca26505 snd_opl4_write +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x69b8d25b snd_opl4_read +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1741e5c7 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x24ebc7be snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x38c9fb2d snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x63dd5c84 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x65445377 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x89ab52d1 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xae031e1c snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc6b41cf1 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf68da523 snd_vx_setup_firmware +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x863db82f snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x915a90c2 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd0186b03 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd5d591f9 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd886a82d snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xe9b5739b snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00dcb10a snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x09064562 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4d08307f snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6c4e9a74 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd692bf7c snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xeeaaaf77 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x60d370c8 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x80adb902 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xa20d06e2 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf8393191 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x544fdbf7 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xe60cbc41 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x79670669 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xe976d30c snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0f205216 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x601b2015 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8e37e8e6 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xedeeb682 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf62732e4 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2b6b6c6d snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x46c8e3ab snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x53b08e04 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x943e77f6 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xae4d747a snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xfbcb1019 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xd625e157 snd_tea6330t_detect +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xff5a175b snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x4f0e4ebd snd_es1688_create +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x720f8ca9 snd_es1688_pcm +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xed60b5f8 snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xf452e44c snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xff191f60 snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0234a3e2 snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x05bd37d3 snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0ec5595f snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1bf1c2d3 snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x20cd4cc4 snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2bcd9c74 snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2f9e037a snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x31269d38 snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x33c69b2e snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x33e9c1b7 snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x35bb5228 snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x423b3819 snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x49942248 snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x537468b6 snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5377a2fc snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5feaf56e snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6f2cddaa snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7b852910 snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x808c697b snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8561d269 snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x871a2c69 snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x896ce4c5 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8aeaea6c snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8fc83661 snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa59f94b7 snd_gf1_poke +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa9a9adfe snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xad22e941 snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xcc9ee036 snd_gus_dram_read +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xef9ec7a5 snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf09c4293 snd_gus_initialize +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfa3bd369 snd_gf1_write8 +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x04db76a6 snd_msndmix_new +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0d7506ea snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x57708258 snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x731b7ef6 snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x7be8923e snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xa113e8f5 snd_msndmix_setup +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xc2448bc5 snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xd936e7a0 snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xda29a917 snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xe554b3e4 snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xf7f813c3 snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xfcc2bc74 snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x49ec074f snd_aci_get_aci +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xad467ef6 snd_aci_cmd +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x15c10cf9 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3724b55e snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3fdb1789 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4eadd38e snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5e014373 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x67d9902d snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6eac867c snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7ceffbad snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xce2dd258 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xebc0f7f5 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0x30a4bbdd snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x674f57a2 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x6e83ed8e snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc72bd1a1 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x0521c964 snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x30e2b1cc snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xb32b0a33 snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xda052d8f snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x087563e1 snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x11d064b9 snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x14621229 snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x4bd5945c snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x76e39e8a snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x9cd5d0c4 snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x9f673b01 snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xa216acff snd_emu8000_peek +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb4312179 snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb71cc82b snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xceda1632 snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x0ab783f4 snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x132c895e snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x13a917c0 snd_wss_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x2a23db49 snd_wss_info_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x2a841708 snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x34ee5bcf snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x40c0d751 snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x5a37e4f6 snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x69c733dc snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x819e940c snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x873d5710 snd_cs4236_ext_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x8c10636b snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x8f3f8cda snd_wss_overrange +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x9e2cf19f snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xb0f010d6 snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xb41fa011 snd_wss_timer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xcb5a0da0 snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd380a0fe snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xe45096e6 snd_wss_mce_up +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xee5023e5 snd_wss_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00c08d3b snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x12ec67f1 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1ecb7ee5 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x257ec11c snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x75accf9b snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7ede2c75 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8b92c916 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xae2914cd snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xca2457a7 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcfad7f8f snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdbd12cf9 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xde1976ef snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe0db3ac6 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe547d7b5 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf57fbb43 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf64b82a1 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfc3a8cb4 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xcd317398 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x37485767 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x44b5dd50 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4c35ca09 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5fc05281 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x712cf974 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8be3f581 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb343f3b2 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb355806c snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe36937d0 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xe5071c97 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x538843e9 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x7d2333ed snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xbe6b3de8 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0413fdc8 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0740b8e4 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0a189b18 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x138183f4 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x30e882d9 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x51c77685 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5211e54e oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x546b3059 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x66afaf28 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa471f284 oxygen_default_i2s_mclk +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa6aa11b0 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb17906dc oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb4c9a25c oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb64c3828 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbc86e30a oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc56c28d5 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd7674484 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd827d37a oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf20f492a oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf58e66f7 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf81c4c76 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfd5b35de oxygen_pci_remove +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x03186d2b snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x22a12658 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x69321a8d snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8e77d8ec snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb863566d snd_trident_write_voice_regs +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0xc39c15ba uda134x_dai +EXPORT_SYMBOL sound/soundcore 0x96cd7c47 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x0aac6995 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x30ca1136 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x671b6821 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x8f59e3ae snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xaba94bb8 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb4b6d4b8 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x296be871 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x424c8f6d __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x76ab0d9c snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7d3bb286 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9f833ba8 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xac9a525b snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xec1d630e snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf1d4c444 __snd_util_memblk_new +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x2b9bb4ba snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x4fc1afb9 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x7c1798a2 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x85b30af5 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa9b4c5f9 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xc1e6ff0a dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xc5c27101 dm_mem_cache_client_create +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0061198d nf_hook_slow +EXPORT_SYMBOL vmlinux 0x0065e195 sg_miter_next +EXPORT_SYMBOL vmlinux 0x00700cf3 set_anon_super +EXPORT_SYMBOL vmlinux 0x007c9227 security_path_rename +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0094b36b qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x00adc5ba put_page +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00edaf47 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x0104e964 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01173de9 blk_start_queue +EXPORT_SYMBOL vmlinux 0x01246905 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x012ccfe5 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x013ce915 elv_register_queue +EXPORT_SYMBOL vmlinux 0x0164214e unregister_key_type +EXPORT_SYMBOL vmlinux 0x01719b10 inet_put_port +EXPORT_SYMBOL vmlinux 0x017c4f3d bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01d4de85 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x01f8e987 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x020e9ff9 phy_print_status +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0231b9d9 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x024f9692 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x025c3aea mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0271303f tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x0278b5ec scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x027ee31a __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x02889e8c mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02b370c8 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x02bf8c49 inet_select_addr +EXPORT_SYMBOL vmlinux 0x02c24a33 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x02cf5d8c mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e5f603 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x02ebbc02 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02f9386d devm_iounmap +EXPORT_SYMBOL vmlinux 0x03061770 vfs_statfs +EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key +EXPORT_SYMBOL vmlinux 0x032d2b64 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x03429291 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x03615221 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038d5484 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x03af7f90 icmpv6_send +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e70f2b simple_transaction_read +EXPORT_SYMBOL vmlinux 0x03ee758d tty_devnum +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x041125aa blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04873cc5 sock_no_connect +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04a700be ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x04bfb3a8 set_user_nice +EXPORT_SYMBOL vmlinux 0x04c88fac km_report +EXPORT_SYMBOL vmlinux 0x04caa761 netif_device_detach +EXPORT_SYMBOL vmlinux 0x04cbea67 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ded968 md_check_recovery +EXPORT_SYMBOL vmlinux 0x04ef39da security_task_getsecid +EXPORT_SYMBOL vmlinux 0x04f98474 journal_destroy +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x054acc51 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x0576ab26 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0589bca9 udp_ioctl +EXPORT_SYMBOL vmlinux 0x059b63bf dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x05c1e4a6 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x05d7c5fb tcp_parse_options +EXPORT_SYMBOL vmlinux 0x05e8b67a bdev_read_only +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0655cb0c kdb_current_task +EXPORT_SYMBOL vmlinux 0x065979f7 km_new_mapping +EXPORT_SYMBOL vmlinux 0x06638aa6 unlock_super +EXPORT_SYMBOL vmlinux 0x067d6449 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0680c73a inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06a5f1d8 inet6_bind +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06c089b0 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x06d0d71c truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0705a3c2 unregister_console +EXPORT_SYMBOL vmlinux 0x07066055 nf_reinject +EXPORT_SYMBOL vmlinux 0x070e9c47 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0739cfdb key_negate_and_link +EXPORT_SYMBOL vmlinux 0x073ae71b __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x077464e9 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new +EXPORT_SYMBOL vmlinux 0x078540cc lock_sock_fast +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x079fe6ed jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b42bb6 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x07bf4b45 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d376b7 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07dd6fe6 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x07f9e51d dm_table_event +EXPORT_SYMBOL vmlinux 0x08173623 register_framebuffer +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083a57e2 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x0849794b pnp_device_attach +EXPORT_SYMBOL vmlinux 0x0870f64e ip_route_output_key +EXPORT_SYMBOL vmlinux 0x0888a9c2 aio_complete +EXPORT_SYMBOL vmlinux 0x08ce0ab2 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08fd36fd cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x09043d48 igrab +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x0944d7f1 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09625dc2 mem_map +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098ae128 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099a0fed elevator_exit +EXPORT_SYMBOL vmlinux 0x099a8288 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x09b65a6c skb_recycle_check +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09cdd180 kill_anon_super +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e383c3 kmap_high +EXPORT_SYMBOL vmlinux 0x09e7e423 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x09f20dda idr_init +EXPORT_SYMBOL vmlinux 0x0a102801 block_sync_page +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a36b2b6 tty_port_init +EXPORT_SYMBOL vmlinux 0x0a59da95 slow_work_register_user +EXPORT_SYMBOL vmlinux 0x0a63ead9 d_delete +EXPORT_SYMBOL vmlinux 0x0a69aa00 revalidate_disk +EXPORT_SYMBOL vmlinux 0x0a872295 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x0a8e3467 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x0a8fddbe blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x0a999c86 dev_uc_del +EXPORT_SYMBOL vmlinux 0x0ab4f7d5 save_mount_options +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0aedc739 scsi_init_io +EXPORT_SYMBOL vmlinux 0x0afa0d12 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b5f2b66 find_inode_number +EXPORT_SYMBOL vmlinux 0x0b636253 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x0b69997d pci_pme_capable +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7fc4da abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0bc13b05 simple_fill_super +EXPORT_SYMBOL vmlinux 0x0bcfd96a phy_detach +EXPORT_SYMBOL vmlinux 0x0be6a591 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x0c2e56b9 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x0c43ffaf pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x0c4969c5 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6d9398 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x0c6f8982 tty_mutex +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0cf4daa9 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x0d2a5041 llc_sap_find +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d4cc958 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d695eae sockfd_lookup +EXPORT_SYMBOL vmlinux 0x0d74331f input_event +EXPORT_SYMBOL vmlinux 0x0d9115e6 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db3921b blk_put_request +EXPORT_SYMBOL vmlinux 0x0db6cad2 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x0dc7c1dd iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x0de8d85e eisa_driver_register +EXPORT_SYMBOL vmlinux 0x0e05db5c framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e21e3d0 read_cache_page +EXPORT_SYMBOL vmlinux 0x0e346d41 dev_mc_init +EXPORT_SYMBOL vmlinux 0x0e43fd18 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5b012d pci_clear_master +EXPORT_SYMBOL vmlinux 0x0e5c6528 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e6671ae pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x0e72efd2 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e9c599b abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x0ec73a11 flush_old_exec +EXPORT_SYMBOL vmlinux 0x0ecc003c dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x0ed38935 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x0edb04c8 scsi_put_command +EXPORT_SYMBOL vmlinux 0x0edeef86 tty_name +EXPORT_SYMBOL vmlinux 0x0ee6ef75 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x0f03267b kmem_cache_name +EXPORT_SYMBOL vmlinux 0x0f4135f6 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x0f834246 tty_vhangup +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb15b15 __seq_open_private +EXPORT_SYMBOL vmlinux 0x0fb850d1 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x1003b66a ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x10205f1a dquot_commit +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x104cd8ab blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x104e7e3a blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x1083c94e tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x111e06fb blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118dc190 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a59160 mutex_trylock +EXPORT_SYMBOL vmlinux 0x11c70a41 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x11d4d76e dst_release +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x12066394 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x1217cf6d bdi_register_dev +EXPORT_SYMBOL vmlinux 0x12346e74 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x1265c834 pci_dev_get +EXPORT_SYMBOL vmlinux 0x127b77dc blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x127edb28 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x128b6aed napi_gro_frags +EXPORT_SYMBOL vmlinux 0x12bbe95d jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x12c1dc2b tty_port_hangup +EXPORT_SYMBOL vmlinux 0x12c5b56d rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x1302d725 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x1351dc07 bio_alloc +EXPORT_SYMBOL vmlinux 0x135ba7bf freeze_super +EXPORT_SYMBOL vmlinux 0x13767239 bdevname +EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support +EXPORT_SYMBOL vmlinux 0x13ae023c pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13c777eb prepare_creds +EXPORT_SYMBOL vmlinux 0x13dbe425 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x13e1f351 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x14389217 skb_split +EXPORT_SYMBOL vmlinux 0x1454be8e ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x148b3e27 do_truncate +EXPORT_SYMBOL vmlinux 0x14a11a1e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x14b42284 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x14d8875f inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x14e38f29 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x1505f7df tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x153a3e0d serio_interrupt +EXPORT_SYMBOL vmlinux 0x15442308 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x156818d7 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x15688f61 dev_open +EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x15b8ea88 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x15ba2dd9 d_instantiate +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15dc16f3 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x15fc99de bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x15fd57e4 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x163660ce load_nls +EXPORT_SYMBOL vmlinux 0x16575bcf skb_tx_hash +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x16cea6e0 udp_prot +EXPORT_SYMBOL vmlinux 0x16e9af52 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x1715dfdc page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x1762583e vmtruncate +EXPORT_SYMBOL vmlinux 0x176cc799 fb_blank +EXPORT_SYMBOL vmlinux 0x1795f6f7 bmap +EXPORT_SYMBOL vmlinux 0x1799406c unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x17ab6cd5 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x17b03c1b acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x17ba9367 bio_copy_user +EXPORT_SYMBOL vmlinux 0x17c314a4 alloc_file +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17df9bb4 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x1869cae4 secpath_dup +EXPORT_SYMBOL vmlinux 0x18974b6f set_page_dirty +EXPORT_SYMBOL vmlinux 0x18a6a4dc elv_rb_add +EXPORT_SYMBOL vmlinux 0x18ccd7e3 input_register_handle +EXPORT_SYMBOL vmlinux 0x18d4d6af security_inode_init_security +EXPORT_SYMBOL vmlinux 0x18f4c57e input_set_capability +EXPORT_SYMBOL vmlinux 0x18ff91d5 bio_endio +EXPORT_SYMBOL vmlinux 0x190a8c19 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x1915fd10 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x1933a1fe update_region +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19e1439d generic_setattr +EXPORT_SYMBOL vmlinux 0x19ec3b3d tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a2c1405 kernel_bind +EXPORT_SYMBOL vmlinux 0x1a410dfb vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x1a43e8a3 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a5c0982 dquot_enable +EXPORT_SYMBOL vmlinux 0x1a5f31fc default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a6d3db9 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x1a71822d fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x1a756e68 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x1a81b827 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait +EXPORT_SYMBOL vmlinux 0x1a8ac8e6 rfkill_register +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa2643a bdget +EXPORT_SYMBOL vmlinux 0x1ab7d87f tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x1abb22f5 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x1ac193f8 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1add40c5 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get +EXPORT_SYMBOL vmlinux 0x1b2eca15 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b73ff43 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b8bad72 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9a3723 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bc4c77f vga_client_register +EXPORT_SYMBOL vmlinux 0x1bcb96df __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x1beb781c md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x1c0f722b sk_reset_txq +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c18e07f blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c52ff25 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x1c5f5333 journal_init_dev +EXPORT_SYMBOL vmlinux 0x1c6cc7f9 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c9c28f5 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x1cb41167 blk_start_request +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd274ce arp_xmit +EXPORT_SYMBOL vmlinux 0x1cdc5767 key_link +EXPORT_SYMBOL vmlinux 0x1cfe929e dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x1d13f906 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x1d1bbf44 blk_run_queue +EXPORT_SYMBOL vmlinux 0x1d25f8be alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x1d28b217 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d7e2cd6 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x1dab795c dev_addr_init +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dce3fee pcim_enable_device +EXPORT_SYMBOL vmlinux 0x1dd4e5bb dm_unregister_target +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e21ad6b neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x1e2ac470 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x1e2d4533 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x1e32ffe7 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x1e3ad320 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x1e4ceb8c security_path_mkdir +EXPORT_SYMBOL vmlinux 0x1e677239 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e81fdc9 pci_dev_put +EXPORT_SYMBOL vmlinux 0x1e9493a9 __devm_release_region +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea44a65 tty_port_put +EXPORT_SYMBOL vmlinux 0x1ecbd05f uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x1eecd5c7 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f16acc8 vfs_write +EXPORT_SYMBOL vmlinux 0x1f2b1d57 input_unregister_device +EXPORT_SYMBOL vmlinux 0x1f5b1df6 stop_tty +EXPORT_SYMBOL vmlinux 0x1f63d981 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x1f82612a __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x1f91af1d input_release_device +EXPORT_SYMBOL vmlinux 0x1fb77c02 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x2021c81c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x203077bc lro_receive_skb +EXPORT_SYMBOL vmlinux 0x2036a98a mmc_host_enable +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x2057c1df acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x205ce103 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x206244aa thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x207331f9 seq_puts +EXPORT_SYMBOL vmlinux 0x2074a557 sk_wait_data +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20d572e7 send_sig +EXPORT_SYMBOL vmlinux 0x20e2d042 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x20fc05b2 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x2123ccd2 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x2126a276 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x213bcefb blk_sync_queue +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2184b982 bd_claim +EXPORT_SYMBOL vmlinux 0x218ef45d xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x219381d4 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22423440 mnt_unpin +EXPORT_SYMBOL vmlinux 0x226a5da4 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x22781dc3 set_create_files_as +EXPORT_SYMBOL vmlinux 0x227bbf81 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x22871bc6 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228bf5b1 phy_connect +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22e746cc ab3100_event_register +EXPORT_SYMBOL vmlinux 0x23050e38 get_user_pages +EXPORT_SYMBOL vmlinux 0x230e0443 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x23575b90 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x237a4ead pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x23b01aef bio_split +EXPORT_SYMBOL vmlinux 0x23b3402d dma_async_device_register +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23c9ac63 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x242af9d3 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x243a05a4 ps2_command +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24431c5b kernel_accept +EXPORT_SYMBOL vmlinux 0x244cf9cc i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x246bc00e prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x248cbea4 tc_classify +EXPORT_SYMBOL vmlinux 0x24b2d2fd dquot_release +EXPORT_SYMBOL vmlinux 0x24be3b32 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2501c8c2 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x250aca97 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x25244e6f xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x253e9e70 phy_find_first +EXPORT_SYMBOL vmlinux 0x25451ce3 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x255f3bdc scsi_host_put +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25a6c701 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x25c99f0e __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x25d0182a dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25e443b1 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x25eba9da __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x2612f829 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x2618a52d default_file_splice_read +EXPORT_SYMBOL vmlinux 0x264315ff acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x26518b68 idr_replace +EXPORT_SYMBOL vmlinux 0x26609130 wireless_send_event +EXPORT_SYMBOL vmlinux 0x2666b229 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x2669fbe3 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x266d6d36 scsi_get_command +EXPORT_SYMBOL vmlinux 0x266f58aa inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268b9fb7 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x26942432 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x26993ce7 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x26a0131a inet_release +EXPORT_SYMBOL vmlinux 0x26ab2bc2 skb_put +EXPORT_SYMBOL vmlinux 0x26d2c82b kernel_read +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e5924d sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26fef15e grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x27003514 vfs_fsync +EXPORT_SYMBOL vmlinux 0x27064998 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x2706b4e2 bio_pair_release +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x275333a6 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x2757058c netif_carrier_on +EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add +EXPORT_SYMBOL vmlinux 0x2784866c sock_kmalloc +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27a0eb01 skb_pull +EXPORT_SYMBOL vmlinux 0x27af4e13 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27dc63f9 sock_rfree +EXPORT_SYMBOL vmlinux 0x2810e930 poll_freewait +EXPORT_SYMBOL vmlinux 0x28145f1c i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x281a0656 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x2848bea2 notify_change +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x285de43c generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x2884192a write_cache_pages +EXPORT_SYMBOL vmlinux 0x2895f57c skb_store_bits +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28ba0462 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x28bfd053 path_lookup +EXPORT_SYMBOL vmlinux 0x28e633b6 set_trace_device +EXPORT_SYMBOL vmlinux 0x28fc41ee scsi_device_put +EXPORT_SYMBOL vmlinux 0x290489d8 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x291e6c39 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x294002ab input_close_device +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29559188 blk_free_tags +EXPORT_SYMBOL vmlinux 0x297bdf10 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x29a4e201 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29f93af9 llc_add_pack +EXPORT_SYMBOL vmlinux 0x2a0a432c xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a4fdb61 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x2a67698f pnp_find_card +EXPORT_SYMBOL vmlinux 0x2a695b9f neigh_compat_output +EXPORT_SYMBOL vmlinux 0x2a843027 aio_put_req +EXPORT_SYMBOL vmlinux 0x2a872af2 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ab2c08a tty_port_close_end +EXPORT_SYMBOL vmlinux 0x2acf657d phy_attach +EXPORT_SYMBOL vmlinux 0x2add94fd try_to_release_page +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b234161 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x2b24ef10 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x2b30fd2e get_write_access +EXPORT_SYMBOL vmlinux 0x2b396cd0 put_tty_driver +EXPORT_SYMBOL vmlinux 0x2b6a5387 filemap_fault +EXPORT_SYMBOL vmlinux 0x2b8e8553 kset_register +EXPORT_SYMBOL vmlinux 0x2b9d12d2 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba6f651 fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bb98c47 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bd7c10f read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x2bdd7d30 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x2be12777 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c2cf04b pci_read_vpd +EXPORT_SYMBOL vmlinux 0x2c3ccdf0 inet_getname +EXPORT_SYMBOL vmlinux 0x2c40a521 simple_link +EXPORT_SYMBOL vmlinux 0x2c44552c journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x2c4b8e47 drop_super +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2c9f07cf jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x2ca5a015 iget5_locked +EXPORT_SYMBOL vmlinux 0x2caeae22 d_genocide +EXPORT_SYMBOL vmlinux 0x2cc6fa44 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x2ce56d0f register_console +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d258b04 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2da57a17 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x2db2a615 touch_atime +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df15ad1 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x2dfae704 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e318eda vmap +EXPORT_SYMBOL vmlinux 0x2e3af7f1 dev_uc_init +EXPORT_SYMBOL vmlinux 0x2e3dd795 __scm_send +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e6e966d inode_permission +EXPORT_SYMBOL vmlinux 0x2e8bc57a sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x2ea8471e alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x2eb15373 ip_dev_find +EXPORT_SYMBOL vmlinux 0x2ebb2194 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x2ebf12e2 fb_class +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f2565ab rtnl_create_link +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f464b47 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x2f528edf arp_find +EXPORT_SYMBOL vmlinux 0x2f89c652 sock_no_accept +EXPORT_SYMBOL vmlinux 0x2fafa01e invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x2fdc4024 nf_log_packet +EXPORT_SYMBOL vmlinux 0x2fe1df49 d_validate +EXPORT_SYMBOL vmlinux 0x2fe521b7 key_task_permission +EXPORT_SYMBOL vmlinux 0x3007f219 kill_block_super +EXPORT_SYMBOL vmlinux 0x300d63e2 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x300ec2ea nla_reserve +EXPORT_SYMBOL vmlinux 0x30155503 follow_down +EXPORT_SYMBOL vmlinux 0x3023b046 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x30415a70 register_8022_client +EXPORT_SYMBOL vmlinux 0x3055d1e1 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x30792058 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x30ae6957 bio_add_page +EXPORT_SYMBOL vmlinux 0x30b79202 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x311f1a61 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x31310013 cdrom_release +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3152664a pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x3185a4f1 neigh_table_init +EXPORT_SYMBOL vmlinux 0x318e83e3 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31b278c3 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x31b79589 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x31c54425 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ec2a30 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x31ff8bb4 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x32019a09 inet_shutdown +EXPORT_SYMBOL vmlinux 0x320a14f6 __alloc_skb +EXPORT_SYMBOL vmlinux 0x3224a029 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x325cd449 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x32808adb seq_escape +EXPORT_SYMBOL vmlinux 0x3283c969 set_groups +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x32ca9939 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x32cbd0ce scm_fp_dup +EXPORT_SYMBOL vmlinux 0x32cbd6db genl_register_ops +EXPORT_SYMBOL vmlinux 0x32d1c8a6 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x330e3070 dst_destroy +EXPORT_SYMBOL vmlinux 0x3324bed7 mpage_readpages +EXPORT_SYMBOL vmlinux 0x33258544 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x333f6ecb tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x3356317e scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x336bc0e6 register_con_driver +EXPORT_SYMBOL vmlinux 0x336f892a sock_setsockopt +EXPORT_SYMBOL vmlinux 0x337027d7 vfs_readdir +EXPORT_SYMBOL vmlinux 0x33773e5b dm_table_get +EXPORT_SYMBOL vmlinux 0x3398b9c5 do_munmap +EXPORT_SYMBOL vmlinux 0x33a7dc71 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x33b62dfc inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x33ba843e pagevec_lookup +EXPORT_SYMBOL vmlinux 0x33f02a2a security_inode_permission +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x34688244 block_write_begin +EXPORT_SYMBOL vmlinux 0x346b9b9f bioset_free +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349a94ad tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34b34b11 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x3505dced mdiobus_read +EXPORT_SYMBOL vmlinux 0x3506f619 skb_checksum +EXPORT_SYMBOL vmlinux 0x35352a61 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x354030a4 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x35522889 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x358d6c9c dquot_acquire +EXPORT_SYMBOL vmlinux 0x35997f7d __rta_fill +EXPORT_SYMBOL vmlinux 0x35b75e4d pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35cd6d97 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x35d93e9b inet6_release +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x35df6a07 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x35e7b574 fsync_bdev +EXPORT_SYMBOL vmlinux 0x35fdc417 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3614a3de phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x363e01b9 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x36680c90 pci_restore_state +EXPORT_SYMBOL vmlinux 0x3671a70d alloc_fcdev +EXPORT_SYMBOL vmlinux 0x3672ef7f inet_sendmsg +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36cb3454 kobject_del +EXPORT_SYMBOL vmlinux 0x36cd10e3 mca_device_write_pos +EXPORT_SYMBOL vmlinux 0x36d633f6 release_sock +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3704cf15 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x370e45f0 page_readlink +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3748aecb bio_copy_kern +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37b2b090 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37fe3d70 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x380fa1ff ida_get_new_above +EXPORT_SYMBOL vmlinux 0x3811f141 __f_setown +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381e0c28 uart_register_driver +EXPORT_SYMBOL vmlinux 0x38281fb5 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each +EXPORT_SYMBOL vmlinux 0x386c88e1 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x38761b3b phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c057d9 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x38cf2d3e blk_end_request_all +EXPORT_SYMBOL vmlinux 0x38e6e872 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x39228932 security_path_chown +EXPORT_SYMBOL vmlinux 0x392a403b pnp_device_detach +EXPORT_SYMBOL vmlinux 0x39379a40 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x39415dd6 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x394ad859 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x3976aa05 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x397aac34 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x397b4bd1 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a7517a kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x39b022e5 mca_register_driver +EXPORT_SYMBOL vmlinux 0x39bdc9f2 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x39d8158a request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x39f090f2 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x39fb16bd acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x3a13258f __ps2_command +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a46500a dquot_file_open +EXPORT_SYMBOL vmlinux 0x3a5265af i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a7c8c99 md_error +EXPORT_SYMBOL vmlinux 0x3a7d2e3d register_filesystem +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ae30786 __invalidate_device +EXPORT_SYMBOL vmlinux 0x3b028f97 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x3b05560c tty_port_close_start +EXPORT_SYMBOL vmlinux 0x3b14c0cd write_inode_now +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b33576a dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x3b3821de security_path_link +EXPORT_SYMBOL vmlinux 0x3b416025 inet_frags_init +EXPORT_SYMBOL vmlinux 0x3b4f0df2 seq_bitmap +EXPORT_SYMBOL vmlinux 0x3b622328 kobject_get +EXPORT_SYMBOL vmlinux 0x3b7a30f8 do_splice_from +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bfd83b7 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x3c28d2d0 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c3e9053 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x3c3f2c9d make_bad_inode +EXPORT_SYMBOL vmlinux 0x3c8a0908 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x3c933ca9 bd_release +EXPORT_SYMBOL vmlinux 0x3c9706a0 pci_find_capability +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cb91714 thaw_process +EXPORT_SYMBOL vmlinux 0x3ccdf0c4 lookup_one_len +EXPORT_SYMBOL vmlinux 0x3ccfd237 __nla_put +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf50675 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x3d0ab986 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x3d12e601 udp_proc_register +EXPORT_SYMBOL vmlinux 0x3d1fbc1b blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d41e53c tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x3d464ad6 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x3d605d5d textsearch_register +EXPORT_SYMBOL vmlinux 0x3d707fd6 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da0a4d8 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3defd6a1 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e1d11d0 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e369e54 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e4a152e blk_end_request +EXPORT_SYMBOL vmlinux 0x3e5c0049 current_fs_time +EXPORT_SYMBOL vmlinux 0x3e8098c9 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ebbf0fb mpage_readpage +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3eff6b90 bdget_disk +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f131a64 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x3f14d53b is_bad_inode +EXPORT_SYMBOL vmlinux 0x3f1bc368 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x3f3159b4 gen_pool_free +EXPORT_SYMBOL vmlinux 0x3f379c33 vga_put +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f6af802 filemap_flush +EXPORT_SYMBOL vmlinux 0x3f6d8b99 single_release +EXPORT_SYMBOL vmlinux 0x3f857d26 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x3f9c9787 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x3fada64f mmc_register_driver +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff24ed2 journal_start +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x40102a2c devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x402ae1b5 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x40475000 pci_iounmap +EXPORT_SYMBOL vmlinux 0x404eae88 generic_setlease +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4077aa8a uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40ca194e scsi_scan_host +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4104ecb7 blk_complete_request +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x410abcf2 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x4117b053 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x4127952c kthread_bind +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x4144c597 free_buffer_head +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41902949 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x419943d3 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x41c0ae7a dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x41d43a0b blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x41e26edc dev_mc_sync +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x41f71639 devm_free_irq +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x425c53b5 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x426bac5d padata_add_cpu +EXPORT_SYMBOL vmlinux 0x4275414f init_buffer +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x429d18fd dma_find_channel +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42d394dc mutex_unlock +EXPORT_SYMBOL vmlinux 0x42e87fc9 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x42e899b4 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4305010f ip_fragment +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x4336ca5d fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x4344206f lookup_hash +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43578b1e inet_ioctl +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43d2dc89 sk_free +EXPORT_SYMBOL vmlinux 0x43d54fdd gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x43ea0028 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x440185d9 vfs_link +EXPORT_SYMBOL vmlinux 0x4427e627 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x446c18f7 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x4477ca20 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x44a2e58a __netif_schedule +EXPORT_SYMBOL vmlinux 0x44aae6bd nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44cf3c99 netdev_features_change +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f7c405 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x44fff049 generic_removexattr +EXPORT_SYMBOL vmlinux 0x45107bfd pci_claim_resource +EXPORT_SYMBOL vmlinux 0x4511e258 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x451c1b3f serio_open +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4568ec04 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x456b8658 bh_submit_read +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4580af0a sk_run_filter +EXPORT_SYMBOL vmlinux 0x4591d1b5 security_file_permission +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45d1b205 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45d73af4 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x4635238d scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x4636e852 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x46433be2 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x468f5b24 sk_stream_error +EXPORT_SYMBOL vmlinux 0x46b0b0dd netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x46c530ec dma_supported +EXPORT_SYMBOL vmlinux 0x46d25ba1 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x47175a76 nf_afinfo +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c3386e scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47d72183 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x47e7db0f generic_delete_inode +EXPORT_SYMBOL vmlinux 0x47ecc156 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x48feea87 fget +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x494a584a gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x4954ab56 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x497b0555 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x49add20d __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49bd6228 sock_wake_async +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49f66d6f mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x4a014038 __kfree_skb +EXPORT_SYMBOL vmlinux 0x4a0deb84 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x4a1a6f0d inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a37ed02 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x4a380285 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x4a54f74e alloc_disk_node +EXPORT_SYMBOL vmlinux 0x4a5a443e ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x4a96294c dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ac64181 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ae0766d i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b187e97 dquot_resume +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b40c015 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x4b6c6b66 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x4b7b56bf __register_binfmt +EXPORT_SYMBOL vmlinux 0x4b7dbafb __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x4b961826 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x4b976751 thaw_bdev +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bd938d5 netpoll_poll +EXPORT_SYMBOL vmlinux 0x4bf19f20 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x4bf631eb bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x4c046efd page_symlink +EXPORT_SYMBOL vmlinux 0x4c057e2a mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2814bb dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c2be2f1 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x4c41f3da tcf_hash_search +EXPORT_SYMBOL vmlinux 0x4c4d4d5b mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x4c599140 audit_log_end +EXPORT_SYMBOL vmlinux 0x4c70ca66 generic_show_options +EXPORT_SYMBOL vmlinux 0x4c98e36e eth_header_cache +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cf21ee2 mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0x4d171c04 register_qdisc +EXPORT_SYMBOL vmlinux 0x4d1b7c6e netif_napi_del +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d457de8 __brelse +EXPORT_SYMBOL vmlinux 0x4d59ce00 may_umount +EXPORT_SYMBOL vmlinux 0x4d59f0b1 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x4d68e953 bio_map_user +EXPORT_SYMBOL vmlinux 0x4d6a85df acpi_root_dir +EXPORT_SYMBOL vmlinux 0x4d85ce8b __destroy_inode +EXPORT_SYMBOL vmlinux 0x4db3fcfc get_sb_bdev +EXPORT_SYMBOL vmlinux 0x4db4637e ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4ddab335 file_permission +EXPORT_SYMBOL vmlinux 0x4de90bac jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfc3a66 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e472ac1 llc_sap_open +EXPORT_SYMBOL vmlinux 0x4e54334e eth_mac_addr +EXPORT_SYMBOL vmlinux 0x4e5599e5 mddev_congested +EXPORT_SYMBOL vmlinux 0x4e5e8c0e security_path_chmod +EXPORT_SYMBOL vmlinux 0x4e6ce725 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e6edf4e xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x4e743069 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x4e7b85be netif_carrier_off +EXPORT_SYMBOL vmlinux 0x4e81703a ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4eb2f725 tcp_poll +EXPORT_SYMBOL vmlinux 0x4ed1fb1f bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x4ede74fc skb_trim +EXPORT_SYMBOL vmlinux 0x4ef18376 register_key_type +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f209c66 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f842cf7 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x4f934c27 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x4fa660ba pid_task +EXPORT_SYMBOL vmlinux 0x4fa88d22 fb_get_mode +EXPORT_SYMBOL vmlinux 0x4fafe8ba mark_page_accessed +EXPORT_SYMBOL vmlinux 0x4fbe93a7 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x4fca05a6 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x4fca59e3 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5029f0cf bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x502fa72c block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x504c00eb task_nice +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x50641111 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x5098019c pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x50b847f0 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x50c30c36 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x50ca5774 generic_permission +EXPORT_SYMBOL vmlinux 0x50e28ddf blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x50e73cb4 dm_put_device +EXPORT_SYMBOL vmlinux 0x51156371 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x5162080a k8_northbridges +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL vmlinux 0x519bebad skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x51bcc5ac poll_initwait +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51d4bb56 pci_release_regions +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e49f77 get_io_context +EXPORT_SYMBOL vmlinux 0x51e989a6 cdev_init +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f6286b phy_device_free +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x52231fc6 llc_sap_close +EXPORT_SYMBOL vmlinux 0x522ac811 is_container_init +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x5239b676 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x523c7e64 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x52872b97 ida_destroy +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a226a3 dev_driver_string +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x52f4badb pnp_register_driver +EXPORT_SYMBOL vmlinux 0x52f61ede inet_frag_find +EXPORT_SYMBOL vmlinux 0x52f8442a scsi_scan_target +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531719e8 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x531dbb8d bdi_register +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53334885 misc_deregister +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x53582f70 vm_map_ram +EXPORT_SYMBOL vmlinux 0x535b5341 audit_log_format +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x538bb31d d_path +EXPORT_SYMBOL vmlinux 0x53b1ba32 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53cb9729 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x53cc8ad0 blkdev_put +EXPORT_SYMBOL vmlinux 0x53d48cc1 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x53e633d1 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x53eea4ef dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x53f024fd module_layout +EXPORT_SYMBOL vmlinux 0x54005641 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x54227049 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x54241cab kill_pgrp +EXPORT_SYMBOL vmlinux 0x54274758 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542e3192 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x542e5cfa netlink_set_err +EXPORT_SYMBOL vmlinux 0x543d368f xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x545f2e95 rt6_lookup +EXPORT_SYMBOL vmlinux 0x546c7b79 xrlim_allow +EXPORT_SYMBOL vmlinux 0x54743384 iunique +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54b15b39 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x54d5e95a arp_broken_ops +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f57bc0 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x54f78e17 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x54ffb887 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x5507eecc ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x55170f71 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x55377462 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x556c7bf7 km_policy_notify +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55bb65d1 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x55cac4fe fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x55d6a430 block_write_full_page +EXPORT_SYMBOL vmlinux 0x55d8a10c eth_validate_addr +EXPORT_SYMBOL vmlinux 0x55fdf754 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x561d412f set_device_ro +EXPORT_SYMBOL vmlinux 0x561e3478 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x56210ad0 elv_add_request +EXPORT_SYMBOL vmlinux 0x5623aa74 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x56274007 cdev_del +EXPORT_SYMBOL vmlinux 0x56348d0d ether_setup +EXPORT_SYMBOL vmlinux 0x5634e8ab dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5668545f netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56c88ea1 d_invalidate +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x5705088a __vmalloc +EXPORT_SYMBOL vmlinux 0x5705b90a dma_set_mask +EXPORT_SYMBOL vmlinux 0x57064d72 log_start_commit +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57607858 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x576120be seq_printf +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x5774c9b6 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x5775182d mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x578818e4 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57c5f6eb phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x57c98539 do_splice_to +EXPORT_SYMBOL vmlinux 0x57cd0122 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x57d2e73e pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57dc56e7 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x58209b2c fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583d4cf5 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x58865fee consume_skb +EXPORT_SYMBOL vmlinux 0x588c94e4 kobject_put +EXPORT_SYMBOL vmlinux 0x5890c8c8 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58dcf339 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x58e5e640 iget_failed +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x590958df tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x59247806 kill_pid +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy +EXPORT_SYMBOL vmlinux 0x59632d8a skb_seq_read +EXPORT_SYMBOL vmlinux 0x5965a9e1 proc_symlink +EXPORT_SYMBOL vmlinux 0x597d114a bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x59842878 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x59944da4 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x59ba8070 __page_symlink +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a36b192 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x5a36c195 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a4cdf6e dqget +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7e8487 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x5a981186 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x5a9f6f68 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x5aa5aa53 sock_create_lite +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ac94d45 replace_mount_options +EXPORT_SYMBOL vmlinux 0x5acea58a tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x5acf0a9c pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x5ade9afe journal_check_available_features +EXPORT_SYMBOL vmlinux 0x5adf66ae generic_file_open +EXPORT_SYMBOL vmlinux 0x5ae771a7 cdrom_open +EXPORT_SYMBOL vmlinux 0x5b08be95 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b266973 rtnl_notify +EXPORT_SYMBOL vmlinux 0x5b31812d __napi_schedule +EXPORT_SYMBOL vmlinux 0x5b3c720f try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x5b4954c5 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b7f48c3 skb_insert +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5b8cb673 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x5bb61ac3 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x5bfb5530 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x5c04cdfc rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x5c55562f ps2_begin_command +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c7182c6 vfs_unlink +EXPORT_SYMBOL vmlinux 0x5c881ba9 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x5c90ac2b in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5cc5443b mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x5d0cd7f3 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x5d179496 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x5d3fb82b netdev_state_change +EXPORT_SYMBOL vmlinux 0x5d45fcda bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x5d47d967 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x5d4914d4 tty_kref_put +EXPORT_SYMBOL vmlinux 0x5d5e7200 unregister_nls +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5dc85366 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x5dda40f4 simple_lookup +EXPORT_SYMBOL vmlinux 0x5ddb64d0 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x5ddc02f8 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x5de05235 mca_bus_type +EXPORT_SYMBOL vmlinux 0x5de9f72b journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e478c67 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x5e7db207 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x5e7ef6cb cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x5e8ec96e ll_rw_block +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ebb97b6 kick_iocb +EXPORT_SYMBOL vmlinux 0x5ec5b7a7 pipe_unlock +EXPORT_SYMBOL vmlinux 0x5ec9e388 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee284fb tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f4e3467 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x5f504806 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x5f8ec39f jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x5f91aceb sock_update_classid +EXPORT_SYMBOL vmlinux 0x5fb741a8 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x606b133c skb_find_text +EXPORT_SYMBOL vmlinux 0x60705691 sget +EXPORT_SYMBOL vmlinux 0x60857ce0 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x608d71a5 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x609ad0fb __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b92da6 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x610e8fe1 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x610e9aa7 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x6117c8ec scsi_device_get +EXPORT_SYMBOL vmlinux 0x61187cd4 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6123d33c ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612a244d tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61a8826c __mutex_init +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d3ac46 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x61d76155 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x61de1329 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x62062d29 processors +EXPORT_SYMBOL vmlinux 0x621fbd4b sg_miter_stop +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x623183e9 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x6245de6c tty_port_close +EXPORT_SYMBOL vmlinux 0x625f8c7d tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628e6333 iput +EXPORT_SYMBOL vmlinux 0x629c3bcf tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x62b902db bitmap_unplug +EXPORT_SYMBOL vmlinux 0x62c17bbe dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x63027aa0 dm_io +EXPORT_SYMBOL vmlinux 0x636626e7 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63b77a49 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x63cfcbcd __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x63ddc61b pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x63de88e3 napi_get_frags +EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x63fd49e9 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6414a618 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64541a0c nf_log_register +EXPORT_SYMBOL vmlinux 0x645848cb fb_pan_display +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x649039c7 skb_set_dev +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64d437e9 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64fec79d names_cachep +EXPORT_SYMBOL vmlinux 0x65062683 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65442e21 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x654efa46 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x6576d92d scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x658b5015 vfs_symlink +EXPORT_SYMBOL vmlinux 0x65d1e37b phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x65e0e395 pci_request_regions +EXPORT_SYMBOL vmlinux 0x65f6d0c5 filp_close +EXPORT_SYMBOL vmlinux 0x660c6968 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x66189f0c kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x66416e3d bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x6667b1cc skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a31e28 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x66ed7950 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x66fdcf95 genphy_suspend +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x6779e3cf noop_llseek +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x6788c4d7 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x679c8db6 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c002e9 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x67d9f895 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x67dac4f6 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x67e0109f neigh_create +EXPORT_SYMBOL vmlinux 0x67eb9765 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x67f69760 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x6805d4d3 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x68146245 bdi_unregister +EXPORT_SYMBOL vmlinux 0x681c58fe genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x68376723 have_submounts +EXPORT_SYMBOL vmlinux 0x6838c7ef nf_log_unregister +EXPORT_SYMBOL vmlinux 0x685a8ae3 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x685ead62 arp_create +EXPORT_SYMBOL vmlinux 0x6864c350 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x68698b8d sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6885f602 journal_flush +EXPORT_SYMBOL vmlinux 0x6888d87f udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x68a445d3 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x68b5e529 softnet_data +EXPORT_SYMBOL vmlinux 0x68cf0d31 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x68e6968c framebuffer_release +EXPORT_SYMBOL vmlinux 0x68fd09a7 tty_set_operations +EXPORT_SYMBOL vmlinux 0x691b4a91 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x69228d2e blk_unplug +EXPORT_SYMBOL vmlinux 0x692f19db nf_getsockopt +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69be6a2c neigh_connected_output +EXPORT_SYMBOL vmlinux 0x69bf61f3 submit_bio +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69ce2bd9 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e053bc cdev_alloc +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f7ae62 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a2576f3 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a456ca1 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x6a4a9105 input_open_device +EXPORT_SYMBOL vmlinux 0x6a565945 invalidate_partition +EXPORT_SYMBOL vmlinux 0x6a585b30 journal_clear_err +EXPORT_SYMBOL vmlinux 0x6a5d2958 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x6a5dbe7c mpage_writepages +EXPORT_SYMBOL vmlinux 0x6a6876ce napi_frags_finish +EXPORT_SYMBOL vmlinux 0x6a755eeb dev_mc_add +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a96e307 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x6ab98a64 find_get_page +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6af0e73c journal_restart +EXPORT_SYMBOL vmlinux 0x6b0bdcec mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b274c64 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b90025f sock_release +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6bc2731f splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c048e9e dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x6c0a89de sock_no_poll +EXPORT_SYMBOL vmlinux 0x6c0e7215 mca_device_claimed +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c2e3664 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c470aa6 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6ca9afa6 seq_putc +EXPORT_SYMBOL vmlinux 0x6cc69f52 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x6cc78e05 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x6cd7dbb8 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6d0a1705 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x6d0e438e jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x6d1f8f85 dquot_operations +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d543fb5 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d734cf1 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x6d788946 __register_chrdev +EXPORT_SYMBOL vmlinux 0x6d93bba9 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x6dac96ee skb_queue_head +EXPORT_SYMBOL vmlinux 0x6dbee6d8 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x6dd0ab08 phy_stop +EXPORT_SYMBOL vmlinux 0x6de6b230 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x6de6c499 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x6deac44e block_prepare_write +EXPORT_SYMBOL vmlinux 0x6deee391 sync_inode +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6defdd8c jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x6df30162 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x6df91c74 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x6dfdaa40 vm_insert_page +EXPORT_SYMBOL vmlinux 0x6e0ecbda neigh_lookup +EXPORT_SYMBOL vmlinux 0x6e3ecc9c cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x6e6080d5 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e766ea1 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eb446c6 __find_get_block +EXPORT_SYMBOL vmlinux 0x6eeff32f filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x6f1df86a page_put_link +EXPORT_SYMBOL vmlinux 0x6f2178e5 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f43583a blkdev_fsync +EXPORT_SYMBOL vmlinux 0x6f453ba5 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f715643 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x6f71c1e5 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70014ef9 __pagevec_release +EXPORT_SYMBOL vmlinux 0x7012195d __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x701a21a1 inode_init_always +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x70239cdf cfb_copyarea +EXPORT_SYMBOL vmlinux 0x70458cbf simple_release_fs +EXPORT_SYMBOL vmlinux 0x704fc712 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x704ffb10 udp_poll +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x7078b518 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x709bead0 dentry_unhash +EXPORT_SYMBOL vmlinux 0x70a004fc phy_attach_direct +EXPORT_SYMBOL vmlinux 0x70a38e54 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x70b0deb1 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d6d216 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70d94301 get_phy_device +EXPORT_SYMBOL vmlinux 0x70fd2fca dquot_transfer +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x715ae71a fb_find_mode +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7189e7ea qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71e1b3ae nf_ct_attach +EXPORT_SYMBOL vmlinux 0x71f68daf nf_register_hook +EXPORT_SYMBOL vmlinux 0x721ff515 wake_up_process +EXPORT_SYMBOL vmlinux 0x7228b56c tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x7239cf63 mdiobus_write +EXPORT_SYMBOL vmlinux 0x725730a8 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bceb97 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x72bd0ae3 get_sb_single +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72e457bc jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x73177a8c i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x7319671d phy_start +EXPORT_SYMBOL vmlinux 0x7329d212 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x73525b12 register_netdev +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x73670605 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x73742d62 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x7386012b tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x7387da78 set_security_override +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x739dc9c1 simple_unlink +EXPORT_SYMBOL vmlinux 0x73af0115 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x73d0bf2a llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x73da5f23 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x7424da9f dev_close +EXPORT_SYMBOL vmlinux 0x742de4ec bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x742f3c86 pnp_find_dev +EXPORT_SYMBOL vmlinux 0x743eb739 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x74450f40 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x74744227 ipv4_specific +EXPORT_SYMBOL vmlinux 0x74820e5e block_read_full_page +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c19b6a seq_read +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74d490dd find_lock_page +EXPORT_SYMBOL vmlinux 0x74efabde blk_peek_request +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x75330c6e skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x755b384d unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x755d194f unregister_qdisc +EXPORT_SYMBOL vmlinux 0x757c116e scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x759e20cc dcache_dir_open +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75ce7278 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x75e26f03 __devm_request_region +EXPORT_SYMBOL vmlinux 0x75ee2c5e md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x75f9f8b3 set_irq_chip +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x760fbe44 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x766b89d0 pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x7682974b pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x768edc47 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x769d6e5a phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x76ab40be find_or_create_page +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cbd14f dquot_drop +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x775b2423 read_dev_sector +EXPORT_SYMBOL vmlinux 0x7779cd89 __scm_destroy +EXPORT_SYMBOL vmlinux 0x77aa1a60 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0x77ba3431 iterate_mounts +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c41ea6 journal_wipe +EXPORT_SYMBOL vmlinux 0x77d3b9f5 sock_no_listen +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x781ed6c0 generic_write_end +EXPORT_SYMBOL vmlinux 0x782a29eb abx500_register_ops +EXPORT_SYMBOL vmlinux 0x7897dd39 generic_readlink +EXPORT_SYMBOL vmlinux 0x78a3c158 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x78a5f76e alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x78bda7c5 handle_sysrq +EXPORT_SYMBOL vmlinux 0x78d8db9e idr_get_next +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e2d72d unregister_cdrom +EXPORT_SYMBOL vmlinux 0x78e8363c md_done_sync +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x794dc286 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x795135cb __lru_cache_add +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79a356cc tcp_connect +EXPORT_SYMBOL vmlinux 0x79a69a5f pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79df05ff scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x79f7fa5b blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x7a07c56a journal_init_inode +EXPORT_SYMBOL vmlinux 0x7a0afbf2 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a4a7daf pci_iomap +EXPORT_SYMBOL vmlinux 0x7a953786 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x7a96b5e4 key_unlink +EXPORT_SYMBOL vmlinux 0x7aa59e5b tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b504d5a register_sysrq_key +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b885f9b check_disk_size_change +EXPORT_SYMBOL vmlinux 0x7b9e983f cpu_info +EXPORT_SYMBOL vmlinux 0x7ba25072 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c24749c register_cdrom +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c539fa8 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c886c6b dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7caf5f80 key_put +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7ce3682f key_type_keyring +EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x7cf4ab6f scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d162f00 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x7d23862d single_open +EXPORT_SYMBOL vmlinux 0x7d2f20f6 file_remove_suid +EXPORT_SYMBOL vmlinux 0x7d306b1b jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x7d3d3c4e set_blocksize +EXPORT_SYMBOL vmlinux 0x7d4cd680 get_super +EXPORT_SYMBOL vmlinux 0x7d76a080 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x7d98b801 generic_write_sync +EXPORT_SYMBOL vmlinux 0x7da5579e redraw_screen +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dcc4be4 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dead6c1 __breadahead +EXPORT_SYMBOL vmlinux 0x7e0abb2f journal_create +EXPORT_SYMBOL vmlinux 0x7e137441 bio_clone +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e1ef3f4 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x7e307ff8 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e52fc8f path_put +EXPORT_SYMBOL vmlinux 0x7e627925 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7e9e5307 lro_flush_all +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eb84ea8 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x7ebe1ee8 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7efbc262 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f38257c padata_free +EXPORT_SYMBOL vmlinux 0x7f3be0c3 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x7f4dde35 noop_fsync +EXPORT_SYMBOL vmlinux 0x7f543a27 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x7f6d6497 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x7f7244ab ilookup5 +EXPORT_SYMBOL vmlinux 0x7f8ad78e write_one_page +EXPORT_SYMBOL vmlinux 0x7f9d7a50 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x7f9f488d vfs_readv +EXPORT_SYMBOL vmlinux 0x7fd4e24c skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x7fefd5bd do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x7ff325a5 bioset_create +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x80ab8af9 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x80b21d6d __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x80c59410 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x80f7c140 submit_bh +EXPORT_SYMBOL vmlinux 0x81220d48 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x812d88b8 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x812de585 sock_wfree +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x817df8e3 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81b36f05 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81e071d1 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x8200fe3a pci_fixup_device +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x822bbbd2 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x823aa677 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82907c95 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82eaf410 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x83269c06 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x83411772 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x8366d9dc rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83a7503a inode_setattr +EXPORT_SYMBOL vmlinux 0x83e7adbd pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x83eb1aae keyring_search +EXPORT_SYMBOL vmlinux 0x841e180c bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x84298439 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x8432b410 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x844a290d generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x84731ae6 filp_open +EXPORT_SYMBOL vmlinux 0x848826cf skb_make_writable +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84a3e2b2 genphy_config_advert +EXPORT_SYMBOL vmlinux 0x84b3e4bd do_sync_read +EXPORT_SYMBOL vmlinux 0x84dc0887 inode_init_once +EXPORT_SYMBOL vmlinux 0x8500cc5c linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x850c161e journal_stop +EXPORT_SYMBOL vmlinux 0x8512618d tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x85200c8c free_task +EXPORT_SYMBOL vmlinux 0x8541cd62 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x854a6932 input_grab_device +EXPORT_SYMBOL vmlinux 0x854df10b spi_release_transport +EXPORT_SYMBOL vmlinux 0x8557781f pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x85617993 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x859e339a blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x859e4264 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x85a0f628 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x85aad28a md_unregister_thread +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x864a3b88 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x864c6f99 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x866255c2 flush_signals +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866de037 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86d65e22 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x86ea992c dput +EXPORT_SYMBOL vmlinux 0x86f60add tty_port_open +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x8729b8ae tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x874e4a51 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x875a37e7 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x8775376f dev_uc_add +EXPORT_SYMBOL vmlinux 0x87766680 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x87769888 tcp_check_req +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x879f7fd6 blk_rq_init +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x87c45577 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x87e8aa8d filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x880d0412 d_rehash +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881d0fec ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x8848fd22 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x8853be3b dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x8862879f splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x8866ff24 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x886a8a94 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x886fb25b vfs_read +EXPORT_SYMBOL vmlinux 0x88767f17 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x88814cbf lock_may_read +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88a22d91 dm_snap_cow +EXPORT_SYMBOL vmlinux 0x88bf974f journal_get_write_access +EXPORT_SYMBOL vmlinux 0x88c3d3b7 padata_alloc +EXPORT_SYMBOL vmlinux 0x88d26ebc fb_set_var +EXPORT_SYMBOL vmlinux 0x88f47cd5 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x88f73c7e d_add_ci +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x895bbca2 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x895bee77 seq_release_private +EXPORT_SYMBOL vmlinux 0x897288fc qdisc_reset +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89876661 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x898bf478 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x89a793cf pci_disable_msi +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89fe880d __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x8a03bf6e pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x8a083df3 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x8a13e6bb md_integrity_register +EXPORT_SYMBOL vmlinux 0x8a148091 lock_rename +EXPORT_SYMBOL vmlinux 0x8a2d8109 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x8a318b20 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x8a3a67b3 tcf_em_register +EXPORT_SYMBOL vmlinux 0x8a73982d skb_pad +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9afe33 open_by_devnum +EXPORT_SYMBOL vmlinux 0x8ab263cd abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x8b0d2059 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x8b0eda70 dqput +EXPORT_SYMBOL vmlinux 0x8b108d10 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1885c1 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b1ee675 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x8b32cb6d filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b78cc0c spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8ba660af d_lookup +EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock +EXPORT_SYMBOL vmlinux 0x8bb85f16 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x8bd403a6 mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bd69e2b dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x8c183be5 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1daa2b alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x8c21b69f open_exec +EXPORT_SYMBOL vmlinux 0x8c27f7c2 kfree_skb +EXPORT_SYMBOL vmlinux 0x8c3d7017 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x8c567c18 deactivate_super +EXPORT_SYMBOL vmlinux 0x8c8cbeeb con_copy_unimap +EXPORT_SYMBOL vmlinux 0x8c928dc1 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x8ca7dadb pci_get_class +EXPORT_SYMBOL vmlinux 0x8caa6310 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x8cab93ce vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x8cae1bcf register_snap_client +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd03c43 inode_init_owner +EXPORT_SYMBOL vmlinux 0x8cdde584 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x8ce50706 __break_lease +EXPORT_SYMBOL vmlinux 0x8cf9b3df register_quota_format +EXPORT_SYMBOL vmlinux 0x8cff8701 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x8d457914 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6f10ca eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all +EXPORT_SYMBOL vmlinux 0x8db5f0c7 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dc1a9c5 d_find_alias +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dfa1f95 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e00ab7c jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e4d38cd blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8ea707a8 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x8eabfe12 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f0847e9 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x8f0b51cf I_BDEV +EXPORT_SYMBOL vmlinux 0x8f1d5e57 soft_cursor +EXPORT_SYMBOL vmlinux 0x8f205346 elevator_init +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f83117e qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x8f849a0f netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x8f926271 thaw_super +EXPORT_SYMBOL vmlinux 0x8f989a1b lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x8f98adb5 kunmap +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fc866f4 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x901aeba7 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x9025c94d inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x90446be8 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x90449479 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x904a817e ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x904c34cb set_binfmt +EXPORT_SYMBOL vmlinux 0x905f0443 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x90758132 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a8ce97 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90d13b28 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x90dc57a7 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x90ee8534 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x9102938f seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x911a0ef7 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x912bdd8f tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91739909 journal_forget +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x91bd12df kernel_getsockname +EXPORT_SYMBOL vmlinux 0x91bf091e sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x91eaf985 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x91fb452f balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x92324dc8 blk_plug_device +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x9279d9c5 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x9283cef8 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92970139 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x92a5d52b scsi_execute_req +EXPORT_SYMBOL vmlinux 0x92f67417 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x92fd208a dev_add_pack +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930aa694 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x9316987d dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x9317baa6 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x931dad1d set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x9340f65d dev_change_flags +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x938a6c5c mmc_release_host +EXPORT_SYMBOL vmlinux 0x9394cf3f generic_file_mmap +EXPORT_SYMBOL vmlinux 0x93a2b695 seq_open +EXPORT_SYMBOL vmlinux 0x93a6d42c km_policy_expired +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93d82921 tty_free_termios +EXPORT_SYMBOL vmlinux 0x93e85212 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x93e9c125 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x93fb6d90 rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9412af3d truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x941d4778 input_get_keycode +EXPORT_SYMBOL vmlinux 0x943f10d3 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x9440f924 tty_shutdown +EXPORT_SYMBOL vmlinux 0x9445cad4 mca_device_status +EXPORT_SYMBOL vmlinux 0x94492a4d dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x94522eed lock_sock_nested +EXPORT_SYMBOL vmlinux 0x94602d61 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x9464b503 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x946832e9 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x9486b3dc ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a02fed unlock_buffer +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94ce33b9 tcp_child_process +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94d6f359 dst_alloc +EXPORT_SYMBOL vmlinux 0x94ec6528 ppp_input +EXPORT_SYMBOL vmlinux 0x950bb0b0 eth_header_parse +EXPORT_SYMBOL vmlinux 0x95128f58 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95673f03 ip6_route_output +EXPORT_SYMBOL vmlinux 0x9577f67a scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x95ae9d73 abort_creds +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x96021559 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x960e2d08 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x960f0d56 padata_stop +EXPORT_SYMBOL vmlinux 0x962fa777 icmp_send +EXPORT_SYMBOL vmlinux 0x962fc1de __ht_create_irq +EXPORT_SYMBOL vmlinux 0x96376176 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x963f8763 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x9647d023 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x9659a5d8 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x966c43ae should_remove_suid +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x968eb2ef pci_choose_state +EXPORT_SYMBOL vmlinux 0x96c23ffb mca_device_set_claim +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d44afd __secpath_destroy +EXPORT_SYMBOL vmlinux 0x96dbb2a6 request_key_async +EXPORT_SYMBOL vmlinux 0x96e18452 sock_i_ino +EXPORT_SYMBOL vmlinux 0x971927e2 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x9726e720 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x9731cc0f scsi_remove_host +EXPORT_SYMBOL vmlinux 0x974291a3 page_address +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97ca1473 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97ed0b34 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x9828a7ce i8042_install_filter +EXPORT_SYMBOL vmlinux 0x984a8711 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x9858227f padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x9865c1f7 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98c61f86 simple_write_end +EXPORT_SYMBOL vmlinux 0x98c6da44 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x98dad3ee blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x98dc2d76 input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x993abb32 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x9945f0c4 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x996896f1 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d454b9 simple_rmdir +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99fd0539 eth_header +EXPORT_SYMBOL vmlinux 0x9a16db2e mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x9a1db74e __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a786a12 serio_rescan +EXPORT_SYMBOL vmlinux 0x9aa12d36 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x9ac6405b inet_recvmsg +EXPORT_SYMBOL vmlinux 0x9ad49f58 pci_release_region +EXPORT_SYMBOL vmlinux 0x9add6ef8 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x9aeca22f set_pages_wb +EXPORT_SYMBOL vmlinux 0x9b2925c5 unregister_netdev +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b474afc md_barrier_request +EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new +EXPORT_SYMBOL vmlinux 0x9b6b7f04 dev_get_stats +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bcf0590 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c1b3798 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x9c23bcba atomic64_add_return_cx8 +EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4df631 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cba1402 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x9cdb968c sk_common_release +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cebebe0 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d051c64 da903x_query_status +EXPORT_SYMBOL vmlinux 0x9d102be7 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3e9195 revert_creds +EXPORT_SYMBOL vmlinux 0x9d7dc6b6 dcache_readdir +EXPORT_SYMBOL vmlinux 0x9db4302c find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x9db6b931 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x9dc069e3 get_phy_id +EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x9dcd8941 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x9de0b3ab tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x9df996aa blk_make_request +EXPORT_SYMBOL vmlinux 0x9df9a9e4 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x9e01871b unregister_snap_client +EXPORT_SYMBOL vmlinux 0x9e064244 blk_register_region +EXPORT_SYMBOL vmlinux 0x9e1042e0 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e41a897 simple_setattr +EXPORT_SYMBOL vmlinux 0x9e477429 datagram_poll +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e6919d2 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e8dbf82 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ea77127 copy_io_context +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ec5aba9 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x9ed59e8c scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9eed001c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f4a2bd1 set_pages_x +EXPORT_SYMBOL vmlinux 0x9f4d33a7 uart_match_port +EXPORT_SYMBOL vmlinux 0x9f5eccb1 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x9f600f07 d_alloc_name +EXPORT_SYMBOL vmlinux 0x9f60da07 sk_filter +EXPORT_SYMBOL vmlinux 0x9f8eb208 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa03b69 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc7de61 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe3eb96 pci_map_rom +EXPORT_SYMBOL vmlinux 0x9ff39796 scsi_register +EXPORT_SYMBOL vmlinux 0xa016bba7 kthread_stop +EXPORT_SYMBOL vmlinux 0xa02bd53f tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04e4b3d phy_start_aneg +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa061e893 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xa081951f xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xa092177c dquot_destroy +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0ab9219 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0c59b86 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa10891b0 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1151129 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13f8780 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa146e4dc pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xa14f0d18 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa17af934 mdiobus_register +EXPORT_SYMBOL vmlinux 0xa1a58ae3 vga_tryget +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1dbef73 bio_put +EXPORT_SYMBOL vmlinux 0xa1fce784 journal_extend +EXPORT_SYMBOL vmlinux 0xa206c6ab ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa235be40 current_task +EXPORT_SYMBOL vmlinux 0xa24d813e block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xa256be09 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0xa25d0884 lock_fb_info +EXPORT_SYMBOL vmlinux 0xa26d38f8 dev_addr_del +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2ad7149 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xa2e055de i2c_use_client +EXPORT_SYMBOL vmlinux 0xa2ee8a8b pci_remove_bus +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa3241e74 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xa3246adc dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa333b01e generic_make_request +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35d092b jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3602774 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xa362f9ef do_sync_write +EXPORT_SYMBOL vmlinux 0xa3845c67 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xa3979e7e __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xa39f5cbc eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xa3bcfef7 kunmap_high +EXPORT_SYMBOL vmlinux 0xa3e082de elv_rb_del +EXPORT_SYMBOL vmlinux 0xa3ecace7 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xa3ed8110 lease_modify +EXPORT_SYMBOL vmlinux 0xa3f4472d scsi_register_driver +EXPORT_SYMBOL vmlinux 0xa4005f59 noop_qdisc +EXPORT_SYMBOL vmlinux 0xa41cfece dev_disable_lro +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa456b06c simple_pin_fs +EXPORT_SYMBOL vmlinux 0xa456d55a jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xa46cc205 pnp_get_resource +EXPORT_SYMBOL vmlinux 0xa478ad65 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0xa4835bfa __blk_end_request +EXPORT_SYMBOL vmlinux 0xa487a29b pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xa4a7c9c2 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4be870d tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xa4c1f2a4 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xa4c7fa90 sock_create_kern +EXPORT_SYMBOL vmlinux 0xa4cb1c4b netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa52aa672 __elv_add_request +EXPORT_SYMBOL vmlinux 0xa534baed __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xa53c9c09 dma_ops +EXPORT_SYMBOL vmlinux 0xa5414afe xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xa5442e94 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa585f39a tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5c23375 mdiobus_free +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa5ede22b security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xa60b6a84 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xa60ff2c9 kunmap_atomic +EXPORT_SYMBOL vmlinux 0xa6126ff2 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xa624209d journal_force_commit +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa6513815 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xa6529b18 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xa65ca53a path_is_under +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6b3aaa0 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xa6ba2250 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xa6d80058 get_disk +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e521ee bio_unmap_user +EXPORT_SYMBOL vmlinux 0xa6f047cc ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xa6f61ca5 netif_device_attach +EXPORT_SYMBOL vmlinux 0xa7046549 vprintk +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa7a5e3b2 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xa7b451d8 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xa7c18877 console_stop +EXPORT_SYMBOL vmlinux 0xa7fb6940 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xa8035925 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xa8063a28 mmc_add_host +EXPORT_SYMBOL vmlinux 0xa80a495d xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xa84d1ecf tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xa86840db generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xa87a4da6 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa8824362 posix_lock_file +EXPORT_SYMBOL vmlinux 0xa88d76c9 pnp_is_active +EXPORT_SYMBOL vmlinux 0xa89e43f6 pci_target_state +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8baa8bf vfs_mknod +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8f19de5 pci_find_bus +EXPORT_SYMBOL vmlinux 0xa8fddab2 genphy_read_status +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa93da25c vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xa940695e sk_dst_check +EXPORT_SYMBOL vmlinux 0xa97e3ec3 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xa98bef4e kmap +EXPORT_SYMBOL vmlinux 0xa9af701b cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9e50fab pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xaa128322 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0xaa1c5297 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xaa206c58 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xaa399311 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xaa3ad5c5 key_validate +EXPORT_SYMBOL vmlinux 0xaa80dc6b module_put +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa843787 devm_ioremap +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa86065c dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaad89e97 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xaae76a08 backlight_force_update +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafafedf setup_new_exec +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab31e4e3 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xab5297e0 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xab580553 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab820d82 udplite_prot +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabf049bc bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xabf603c4 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xac06d325 ps2_drain +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac47b629 locks_init_lock +EXPORT_SYMBOL vmlinux 0xac56b214 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac59092f serio_reconnect +EXPORT_SYMBOL vmlinux 0xac603e4f tcp_prot +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0xac8cf797 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xacb671a4 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace4a4e1 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xace5e6e2 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf75eed ip6_xmit +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad06b095 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad1dd015 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xad3caac0 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xad414a49 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad65fcd9 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xad9e7b6c check_disk_change +EXPORT_SYMBOL vmlinux 0xad9fbbba gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xada42dde generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadd8608b bio_phys_segments +EXPORT_SYMBOL vmlinux 0xadde5360 alloc_disk +EXPORT_SYMBOL vmlinux 0xadf2200a pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xae1e6a57 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xae3d0f88 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xae3ee1b4 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xae435f8d task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xae5fee4c generic_read_dir +EXPORT_SYMBOL vmlinux 0xae6320f6 kernel_connect +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xae8cbe81 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeb87a53 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xaec078cd scsi_host_get +EXPORT_SYMBOL vmlinux 0xaec2b6ae devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaecde0a3 sock_init_data +EXPORT_SYMBOL vmlinux 0xaed100b2 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xaefa2e52 sock_no_getname +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf42ff1e dev_load +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf50f731 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf832938 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xafaa2d1d take_over_console +EXPORT_SYMBOL vmlinux 0xafc6e743 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xafda0c0d dump_trace +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb027f40d input_free_device +EXPORT_SYMBOL vmlinux 0xb0405db0 journal_set_features +EXPORT_SYMBOL vmlinux 0xb07168c2 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb08b8519 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xb0a122db pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xb0a17ac5 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0ba9b8c generic_setxattr +EXPORT_SYMBOL vmlinux 0xb0c5bedf generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xb0d12ab8 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0xb0d4d341 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xb0d81a8b dev_get_flags +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e97676 sock_register +EXPORT_SYMBOL vmlinux 0xb0fad7b7 __bforget +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb11f544c ip_setsockopt +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb1693741 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xb173668a vlan_gro_frags +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1e614d5 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb219f7b3 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xb21d3461 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xb224866f mca_device_read_pos +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22bf6b3 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb27c9ec0 file_update_time +EXPORT_SYMBOL vmlinux 0xb27e13bc input_inject_event +EXPORT_SYMBOL vmlinux 0xb2d65b0d vc_resize +EXPORT_SYMBOL vmlinux 0xb2d78265 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +EXPORT_SYMBOL vmlinux 0xb2f57e2e bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb332ea02 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb34fe7e9 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb39f38e7 mca_device_set_name +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3ac17e7 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xb3ae9d77 lock_super +EXPORT_SYMBOL vmlinux 0xb3c17972 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xb3c91cd1 register_gifconf +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb3e89264 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xb3fd08fa uart_suspend_port +EXPORT_SYMBOL vmlinux 0xb40d535c llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xb41e971a jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb42ad1cb generic_write_checks +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb44692d1 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4885e7e xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xb4916acc ppp_unit_number +EXPORT_SYMBOL vmlinux 0xb4c16829 cdev_index +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb50c0e51 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xb5267835 kset_unregister +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5468313 ip_defrag +EXPORT_SYMBOL vmlinux 0xb547a400 tcp_close +EXPORT_SYMBOL vmlinux 0xb55c987d input_allocate_device +EXPORT_SYMBOL vmlinux 0xb5762edd xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xb58a969d vga_get +EXPORT_SYMBOL vmlinux 0xb59120d9 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5b5489f dm_register_target +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5f866ab blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xb5fe99ef sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xb607a30c journal_revoke +EXPORT_SYMBOL vmlinux 0xb60d63f4 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xb615bf19 eth_change_mtu +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6292a69 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xb651a9c5 register_nls +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb69ca53e sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe170 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xb6e0eadb ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xb6e6b1a0 remove_inode_hash +EXPORT_SYMBOL vmlinux 0xb6e84445 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6f75773 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xb6fa6876 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xb6fad23b delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0xb70d252a md_register_thread +EXPORT_SYMBOL vmlinux 0xb7216b97 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xb722a7dd dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xb72397d5 printk +EXPORT_SYMBOL vmlinux 0xb73a459e ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb76cd7f6 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xb77fd114 force_sig +EXPORT_SYMBOL vmlinux 0xb786a260 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xb78c0623 add_disk +EXPORT_SYMBOL vmlinux 0xb7908e72 pci_bus_type +EXPORT_SYMBOL vmlinux 0xb790cf6a jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xb79e3e7c sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7bf6644 pci_pme_active +EXPORT_SYMBOL vmlinux 0xb7e54587 follow_pfn +EXPORT_SYMBOL vmlinux 0xb82d97ac release_firmware +EXPORT_SYMBOL vmlinux 0xb84cc1ca security_file_mmap +EXPORT_SYMBOL vmlinux 0xb855a0ca dm_get_device +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb89ecf66 km_state_expired +EXPORT_SYMBOL vmlinux 0xb8ab4517 mpage_writepage +EXPORT_SYMBOL vmlinux 0xb8b8c949 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xb8c6ffeb mutex_lock +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8f8452e unlock_new_inode +EXPORT_SYMBOL vmlinux 0xb9068dda dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb9135605 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xb9225aca init_task +EXPORT_SYMBOL vmlinux 0xb93bcac1 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xb942b513 smp_call_function_many +EXPORT_SYMBOL vmlinux 0xb94726d6 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xb9597370 contig_page_data +EXPORT_SYMBOL vmlinux 0xb96ecac8 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0xb9893e6c __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9c3f272 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xb9dc63d7 key_revoke +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9fa5126 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xb9fc8833 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba01a008 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xba027c72 unlock_page +EXPORT_SYMBOL vmlinux 0xba20ca0e spi_dv_device +EXPORT_SYMBOL vmlinux 0xba216baa dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba35e85f scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xba3cc386 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5b721c tcf_action_exec +EXPORT_SYMBOL vmlinux 0xba63d466 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xba7b09c1 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xba8a5b78 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xba8b0dc3 inet6_getname +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaacaff6 seq_write +EXPORT_SYMBOL vmlinux 0xbaaf3a51 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xbab40e3a tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xbac3df44 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xbac59aa4 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xbad39e73 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbad8e261 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xbadce825 journal_start_commit +EXPORT_SYMBOL vmlinux 0xbae981bf neigh_for_each +EXPORT_SYMBOL vmlinux 0xbb0ed5b6 pipe_to_file +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbb9f309e xfrm_lookup +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbd11660 acpi_device_hid +EXPORT_SYMBOL vmlinux 0xbbf1bb59 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xbc0d3d3f brioctl_set +EXPORT_SYMBOL vmlinux 0xbc0dc1e1 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc331204 pci_request_region +EXPORT_SYMBOL vmlinux 0xbc3446eb nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xbc396ee5 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xbc5d573f xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0xbc5f486f netif_napi_add +EXPORT_SYMBOL vmlinux 0xbc839126 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xbc87a505 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xbc89b89f sk_alloc +EXPORT_SYMBOL vmlinux 0xbca6c446 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xbcc24f99 get_fs_type +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbce0a9b7 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xbce77b50 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xbcefb567 dma_pool_create +EXPORT_SYMBOL vmlinux 0xbd083b87 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbd5779a2 elv_rb_find +EXPORT_SYMBOL vmlinux 0xbd5af5af __dquot_transfer +EXPORT_SYMBOL vmlinux 0xbd702430 pci_set_master +EXPORT_SYMBOL vmlinux 0xbd7a537e find_vma +EXPORT_SYMBOL vmlinux 0xbda28bae dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xbdcdb110 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xbdebb6f3 idr_find +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdfaec87 register_md_personality +EXPORT_SYMBOL vmlinux 0xbe07cc1f blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe5152de cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xbec83b95 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xbed5cb21 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xbeef5c0a blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf2c6909 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xbf328f92 key_alloc +EXPORT_SYMBOL vmlinux 0xbf4a63f6 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf8f7c39 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb247fc seq_path +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc45cf2 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xbfca550d generic_getxattr +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc0018a01 dev_addr_add +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc007175a ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc0278d19 get_gendisk +EXPORT_SYMBOL vmlinux 0xc0488349 netpoll_setup +EXPORT_SYMBOL vmlinux 0xc04e079f pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05cddbd block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xc07f313f sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0937ac3 ps2_init +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0cb8498 hippi_type_trans +EXPORT_SYMBOL vmlinux 0xc0e029e6 bio_init +EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc12f8bf7 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xc138ef90 kmap_atomic +EXPORT_SYMBOL vmlinux 0xc139bcc4 send_sig_info +EXPORT_SYMBOL vmlinux 0xc1406759 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc19634b2 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xc19ed246 tty_register_device +EXPORT_SYMBOL vmlinux 0xc1abebe7 x86_hyper +EXPORT_SYMBOL vmlinux 0xc1baffb3 md_write_start +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1ed01e6 acpi_bus_add +EXPORT_SYMBOL vmlinux 0xc224aadb nobh_write_end +EXPORT_SYMBOL vmlinux 0xc224ef83 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xc2325bd5 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xc2499d67 __lock_page +EXPORT_SYMBOL vmlinux 0xc255787e sock_map_fd +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26d5fe4 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xc26f8c21 genphy_resume +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc2acf802 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xc2acfbef con_is_bound +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2d91b65 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f7aae8 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xc2faa2cf dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0xc31dd1e6 block_commit_write +EXPORT_SYMBOL vmlinux 0xc31ea431 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc364079d netif_receive_skb +EXPORT_SYMBOL vmlinux 0xc36e1f85 __serio_register_port +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc39f2e9b dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3ce4817 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3e682e3 ilookup +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc4029f6a seq_lseek +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc447a7a5 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xc488294a netlink_ack +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a71e6c load_nls_default +EXPORT_SYMBOL vmlinux 0xc4ac5dea pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e5e02c thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5352141 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xc5492dca commit_creds +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc58bcf5d dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xc598104b unload_nls +EXPORT_SYMBOL vmlinux 0xc5bb4092 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xc5ced2e9 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xc5eaeab6 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xc63c8be6 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0xc6472f4b sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xc64e9b61 __free_pages +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc69948e3 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xc6a50188 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xc6a6d467 dquot_initialize +EXPORT_SYMBOL vmlinux 0xc6d017ba scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xc6d3abc9 tty_hangup +EXPORT_SYMBOL vmlinux 0xc6de48d8 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xc6de668c dev_gro_receive +EXPORT_SYMBOL vmlinux 0xc6e5daf3 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xc7059ab9 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xc707ebbd xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc72c5014 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xc761bd77 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a7e40c f_setown +EXPORT_SYMBOL vmlinux 0xc7a9e169 pci_get_device +EXPORT_SYMBOL vmlinux 0xc7b3efe1 start_tty +EXPORT_SYMBOL vmlinux 0xc7c8ec31 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc8061328 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xc80a3868 read_cache_pages +EXPORT_SYMBOL vmlinux 0xc80eb056 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xc81f5a3c mmc_request_done +EXPORT_SYMBOL vmlinux 0xc82264aa xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84a85c0 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xc862f8f8 d_alloc +EXPORT_SYMBOL vmlinux 0xc863133b dm_exception_store_create +EXPORT_SYMBOL vmlinux 0xc86734c2 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xc8755817 eisa_bus_type +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a2921a lookup_bdev +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8f36fba nla_append +EXPORT_SYMBOL vmlinux 0xc91a036c __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xc923ff52 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xc95228ad scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xc95a0e97 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xc96d730e kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xc97e4c3d new_inode +EXPORT_SYMBOL vmlinux 0xc9861294 scsi_print_result +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9aa0057 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9e8b616 mmc_free_host +EXPORT_SYMBOL vmlinux 0xc9fe2216 __getblk +EXPORT_SYMBOL vmlinux 0xca01cebd proto_register +EXPORT_SYMBOL vmlinux 0xca398aa1 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xca3d021e __blk_run_queue +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca74c327 invalidate_inodes +EXPORT_SYMBOL vmlinux 0xca7506e8 inode_change_ok +EXPORT_SYMBOL vmlinux 0xca7f2c6c boot_cpu_data +EXPORT_SYMBOL vmlinux 0xca849784 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xca8727e9 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca957078 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xcaa824e9 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcac4309c thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcb079eac input_flush_device +EXPORT_SYMBOL vmlinux 0xcb15ef7e pci_save_state +EXPORT_SYMBOL vmlinux 0xcb446d40 clear_inode +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb7e61cd __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xcb7fdf36 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xcba95cc9 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xcbbc7e58 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xcc0e2ba5 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc24bf10 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xcc345944 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc4ba7a0 register_netdevice +EXPORT_SYMBOL vmlinux 0xcc4bf64d del_gendisk +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc51e0e8 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc89e9ec tty_throttle +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xcca711d7 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xcccd8f56 misc_register +EXPORT_SYMBOL vmlinux 0xccdcfdeb simple_readpage +EXPORT_SYMBOL vmlinux 0xccfda0f1 bio_free +EXPORT_SYMBOL vmlinux 0xcd4b4c28 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xcd56c22d __put_cred +EXPORT_SYMBOL vmlinux 0xcd80db11 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xcda23320 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0xcdc31115 put_disk +EXPORT_SYMBOL vmlinux 0xcdcf5cf2 register_exec_domain +EXPORT_SYMBOL vmlinux 0xcde3bd14 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xce0318fc __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xce10ca7e devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xce18500a tcp_proc_register +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xce6e4b2b generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xce7b7122 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xce868bd5 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xceb002d5 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xcedf3406 registered_fb +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xceff133d may_umount_tree +EXPORT_SYMBOL vmlinux 0xcf17c384 make_EII_client +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf2e7bfd tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xcf3b5579 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xcf5ed1ca jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf8e2374 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xcf8f98bc seq_release +EXPORT_SYMBOL vmlinux 0xcf93311e blkdev_get +EXPORT_SYMBOL vmlinux 0xcf977b74 proc_create_data +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xcfe9a499 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xcfeab121 create_proc_entry +EXPORT_SYMBOL vmlinux 0xcff9c96f set_bh_page +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01babbb register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd044af96 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xd0469b08 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xd050a2de block_truncate_page +EXPORT_SYMBOL vmlinux 0xd0635db8 genphy_update_link +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0cedff1 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0df01a6 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fa60dd freeze_bdev +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd100a6f6 napi_complete +EXPORT_SYMBOL vmlinux 0xd11411da nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xd13c2b97 __scsi_add_device +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd159d37e skb_dequeue +EXPORT_SYMBOL vmlinux 0xd16cc03c inode_needs_sync +EXPORT_SYMBOL vmlinux 0xd189ca44 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1919084 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xd1c2c9dc scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xd1c4291b uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xd1d22d7a tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1fa6028 slow_work_cancel +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd24e7b2d vfs_llseek +EXPORT_SYMBOL vmlinux 0xd250c08a max8925_reg_read +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd253b867 fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd27b22fa pnp_possible_config +EXPORT_SYMBOL vmlinux 0xd27d02dc pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29695b0 console_start +EXPORT_SYMBOL vmlinux 0xd2a684b0 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2b4718d journal_ack_err +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2e76fa4 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xd2e8dda7 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xd2f4d670 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xd30b3d85 init_net +EXPORT_SYMBOL vmlinux 0xd31df156 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xd331a915 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd3453eaf pci_match_id +EXPORT_SYMBOL vmlinux 0xd3697a67 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xd383107d kobject_add +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3dbfd26 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xd401b62f xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xd4736158 lock_may_write +EXPORT_SYMBOL vmlinux 0xd4a14b18 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xd4a27b2a rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xd4bb8df9 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xd4d0ee3b kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd51653ed simple_getattr +EXPORT_SYMBOL vmlinux 0xd5167af2 fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0xd5175a47 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5336de7 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xd54b6320 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd572d6c7 md_write_end +EXPORT_SYMBOL vmlinux 0xd597f9d8 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xd5a02735 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xd5a0da33 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xd5ae8d88 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5d5b3ce locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xd5f73e7f dma_pool_free +EXPORT_SYMBOL vmlinux 0xd6105111 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd61dc016 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd68c68b9 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6ada1b4 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6b8e6e0 cad_pid +EXPORT_SYMBOL vmlinux 0xd6c75408 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f15839 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd728c0b9 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xd74f687a unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xd7610e2d __lookup_one_len +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd781f345 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xd7860a0b security_path_symlink +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd79ff504 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xd7c99098 nobh_writepage +EXPORT_SYMBOL vmlinux 0xd7d0c645 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xd7d66cd7 simple_setsize +EXPORT_SYMBOL vmlinux 0xd7da144e tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7f36812 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xd809ab48 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xd80c597e skb_gso_segment +EXPORT_SYMBOL vmlinux 0xd81953ec generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xd825a0df arp_tbl +EXPORT_SYMBOL vmlinux 0xd8365e3f ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xd83c2093 alloc_trdev +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd85ba9fa request_key +EXPORT_SYMBOL vmlinux 0xd87dc67f sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xd89298b4 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8aa4d4f inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xd8b92c6d blk_fetch_request +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ed7867 generic_listxattr +EXPORT_SYMBOL vmlinux 0xd8ff4bff tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xd900b57c pipe_lock +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd90b2159 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xd91af1c5 proto_unregister +EXPORT_SYMBOL vmlinux 0xd9251d44 dquot_disable +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9877161 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9c277cf netif_rx_ni +EXPORT_SYMBOL vmlinux 0xd9e0e502 d_alloc_root +EXPORT_SYMBOL vmlinux 0xd9eefdf3 __dst_free +EXPORT_SYMBOL vmlinux 0xd9ef4f47 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xd9f89942 neigh_destroy +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda335b73 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0xda390881 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xda511860 fb_show_logo +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda59802b sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xda5b5c54 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xda7589e9 padata_start +EXPORT_SYMBOL vmlinux 0xda7b4da5 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda81722f bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xdaa1db34 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdad4f008 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xdb1f01b6 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xdb80db59 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb8ce0dc scsi_finish_command +EXPORT_SYMBOL vmlinux 0xdb911502 scsi_execute +EXPORT_SYMBOL vmlinux 0xdba80c7e udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xdbc2a5d6 security_path_mknod +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd9a056 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xdbe08d7f input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdbf9d7fc backlight_device_register +EXPORT_SYMBOL vmlinux 0xdbfb5d90 bdi_destroy +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc195a19 path_get +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc57e1f1 inet_addr_type +EXPORT_SYMBOL vmlinux 0xdc985f09 override_creds +EXPORT_SYMBOL vmlinux 0xdc9fa348 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca0ed4e gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd300dd5 simple_rename +EXPORT_SYMBOL vmlinux 0xdd467a8d dev_get_by_index +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd877b28 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xddc015b0 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xdded25ea __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xde08eb6e end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xde290df1 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xde3691c2 cdev_add +EXPORT_SYMBOL vmlinux 0xde389cad vfs_rename +EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xde5ddf24 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xde6bb3cc md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xde713782 set_disk_ro +EXPORT_SYMBOL vmlinux 0xde74ee2d elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde77e1a1 pskb_copy +EXPORT_SYMBOL vmlinux 0xde7f1c09 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdeb1dfd8 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xdede77e0 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xdee49744 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdf0c7a67 vfs_create +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf3da75b lease_get_mtime +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf5a3e41 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf682c48 sock_create +EXPORT_SYMBOL vmlinux 0xdf776ce5 module_refcount +EXPORT_SYMBOL vmlinux 0xdf78a2e2 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xdf859ec1 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf9587c0 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0xdfbba96c pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfce1195 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xdfe34ca9 __nla_reserve +EXPORT_SYMBOL vmlinux 0xdffc6811 kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0xe0070c33 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xe00da44c scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xe05bd886 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xe06edf75 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xe071cce5 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe08bcbdc mark_info_dirty +EXPORT_SYMBOL vmlinux 0xe0a5d824 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xe0a6dd88 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0c5aa5f fddi_type_trans +EXPORT_SYMBOL vmlinux 0xe0d7445e generic_writepages +EXPORT_SYMBOL vmlinux 0xe100f362 kobject_init +EXPORT_SYMBOL vmlinux 0xe1101d22 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0xe11b33f3 security_path_truncate +EXPORT_SYMBOL vmlinux 0xe12bd527 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xe1332b89 do_SAK +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe15cd5fc put_io_context +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1c92c66 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xe1d03bab max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xe1e2ee6f neigh_update +EXPORT_SYMBOL vmlinux 0xe1f762d0 proc_mkdir +EXPORT_SYMBOL vmlinux 0xe1fb8cb6 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xe2346979 unlock_rename +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2852daf sock_i_uid +EXPORT_SYMBOL vmlinux 0xe28b4a61 udp_disconnect +EXPORT_SYMBOL vmlinux 0xe2a2660c dm_table_put +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2e866fb fb_set_cmap +EXPORT_SYMBOL vmlinux 0xe2ede203 file_fsync +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe302d5d2 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xe3101e13 tcf_register_action +EXPORT_SYMBOL vmlinux 0xe3190314 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xe3292aba alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xe329cc0c skb_free_datagram +EXPORT_SYMBOL vmlinux 0xe37e60d3 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xe3c77663 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xe3d9f05d qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xe3e1ffc2 kill_litter_super +EXPORT_SYMBOL vmlinux 0xe3e32831 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xe3e58df9 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe3fdd734 ida_remove +EXPORT_SYMBOL vmlinux 0xe4018acd __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe43c804e __bio_clone +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe4758113 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xe4787825 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe495482f pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xe4a25391 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xe4ac34ce sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xe4cda99f journal_errno +EXPORT_SYMBOL vmlinux 0xe4e5e6cd input_unregister_handle +EXPORT_SYMBOL vmlinux 0xe4ed1e3a posix_test_lock +EXPORT_SYMBOL vmlinux 0xe5060254 mnt_pin +EXPORT_SYMBOL vmlinux 0xe509169c xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xe50c7bc6 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe538b8cc arp_send +EXPORT_SYMBOL vmlinux 0xe53da2fb journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe548e474 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0xe54e707a inet_bind +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57c52fb km_state_notify +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5bcddf9 audit_log_start +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ce50b6 bio_map_kern +EXPORT_SYMBOL vmlinux 0xe5ced7a8 block_write_end +EXPORT_SYMBOL vmlinux 0xe5d5b7e3 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6060dc3 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xe61fc7d4 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xe62a0647 scsi_unregister +EXPORT_SYMBOL vmlinux 0xe62db286 tty_check_change +EXPORT_SYMBOL vmlinux 0xe6540d12 input_register_device +EXPORT_SYMBOL vmlinux 0xe665d297 bdi_init +EXPORT_SYMBOL vmlinux 0xe6732f1f tty_write_room +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6be7085 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe727f04d scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe74d4cad xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xe74d8cf8 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xe75ab583 sock_no_bind +EXPORT_SYMBOL vmlinux 0xe76085cf ip_getsockopt +EXPORT_SYMBOL vmlinux 0xe799f502 dev_mc_del +EXPORT_SYMBOL vmlinux 0xe7b15ffc ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7f68ba8 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe813ef6d fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xe814bf07 fd_install +EXPORT_SYMBOL vmlinux 0xe82fe088 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xe8309ab5 __napi_complete +EXPORT_SYMBOL vmlinux 0xe83270a0 pci_select_bars +EXPORT_SYMBOL vmlinux 0xe8380433 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xe86900bb xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe885da1b neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe8cf53b1 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xe8ff999a i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91c1e08 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xe930439f mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xe93cca99 vfs_getattr +EXPORT_SYMBOL vmlinux 0xe94699c0 dget_locked +EXPORT_SYMBOL vmlinux 0xe9872c27 simple_write_begin +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe99deeba follow_up +EXPORT_SYMBOL vmlinux 0xe9a92b56 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xe9b1fa2c seq_open_private +EXPORT_SYMBOL vmlinux 0xe9c1bb99 keyring_clear +EXPORT_SYMBOL vmlinux 0xe9d0f49e ps2_handle_response +EXPORT_SYMBOL vmlinux 0xe9e204de inet_listen +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea144399 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea337d7a inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea84d2f4 blk_init_tags +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9d8c40 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xead7d32e i2c_master_send +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb05ee63 skb_unlink +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb867538 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebdf9ab6 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xebfae6dd get_sb_ns +EXPORT_SYMBOL vmlinux 0xec0c19f8 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec165c9c dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xec1e303a bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xec44e1f3 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec593e9b inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xec60e9b9 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xec65e16e tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xec67fa6c scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xec6e99a9 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xec74c032 tty_register_driver +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xecaccc8a generic_ro_fops +EXPORT_SYMBOL vmlinux 0xecd012b5 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove +EXPORT_SYMBOL vmlinux 0xed4385b8 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xed69dd68 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedb00f93 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xedb3a132 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xedb3f373 user_path_at +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xee14331f netif_rx +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee39128b scsi_ioctl +EXPORT_SYMBOL vmlinux 0xee6efcfe generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee839f2b scsi_remove_target +EXPORT_SYMBOL vmlinux 0xee8dbac7 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xee986f42 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeebad36b generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xeec9b0ce skb_push +EXPORT_SYMBOL vmlinux 0xeef22117 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef270692 prepare_binprm +EXPORT_SYMBOL vmlinux 0xef306f64 log_wait_commit +EXPORT_SYMBOL vmlinux 0xef33d5a2 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef477f22 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xef52c264 inet_accept +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6c8845 sync_blockdev +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef77488d vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xef87ba74 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefa45f0d pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xefdd0de2 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00f2ce6 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06ad3da scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xf08aa4fe scsi_add_device +EXPORT_SYMBOL vmlinux 0xf08b7488 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0abf55e netlink_unicast +EXPORT_SYMBOL vmlinux 0xf0b65701 skb_copy +EXPORT_SYMBOL vmlinux 0xf0bd6cfe netlink_dump_start +EXPORT_SYMBOL vmlinux 0xf0c0b61f ps2_end_command +EXPORT_SYMBOL vmlinux 0xf0d03e1d skb_append +EXPORT_SYMBOL vmlinux 0xf0d09359 vc_cons +EXPORT_SYMBOL vmlinux 0xf0ea951a phy_disconnect +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf102a3fa pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xf10b9b65 nla_put +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf1174d4d set_pages_uc +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf122f24f ip_route_input_common +EXPORT_SYMBOL vmlinux 0xf1264f5e install_exec_creds +EXPORT_SYMBOL vmlinux 0xf16157b4 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf17cd66c phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xf185bd37 blk_init_queue +EXPORT_SYMBOL vmlinux 0xf18caf46 phy_device_create +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1baf01e skb_clone +EXPORT_SYMBOL vmlinux 0xf1c8cffc phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xf1d9121b kobject_set_name +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf232f1e9 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf236cf28 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xf2371713 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xf2531388 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0xf25437a1 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xf2752420 d_splice_alias +EXPORT_SYMBOL vmlinux 0xf28590f8 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xf289c27e vfs_follow_link +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a0376e user_revoke +EXPORT_SYMBOL vmlinux 0xf2b63182 pci_disable_device +EXPORT_SYMBOL vmlinux 0xf2cce559 complete_request_key +EXPORT_SYMBOL vmlinux 0xf2d75a15 no_llseek +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf304520d blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf3364abc uart_resume_port +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf345cb19 kern_path +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf371777f ppp_input_error +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf39f5245 mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0xf3b0347d pci_get_slot +EXPORT_SYMBOL vmlinux 0xf3b91fb2 dquot_alloc +EXPORT_SYMBOL vmlinux 0xf3bb025d pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ee28d0 posix_acl_permission +EXPORT_SYMBOL vmlinux 0xf3ef821d jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xf3f86c18 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0xf41c48a8 pcim_iomap +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf46936be padata_do_serial +EXPORT_SYMBOL vmlinux 0xf47b0ae4 scsi_free_command +EXPORT_SYMBOL vmlinux 0xf47b3979 km_query +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf497a142 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4acd913 deny_write_access +EXPORT_SYMBOL vmlinux 0xf4b10b7a dst_discard +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4c004da fasync_helper +EXPORT_SYMBOL vmlinux 0xf4c503db fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4fd7acc cont_write_begin +EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init +EXPORT_SYMBOL vmlinux 0xf5017d9b d_move +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf5059a2a key_payload_reserve +EXPORT_SYMBOL vmlinux 0xf50660b4 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xf50b872f ht_create_irq +EXPORT_SYMBOL vmlinux 0xf5142158 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf57f403e ip6_frag_match +EXPORT_SYMBOL vmlinux 0xf5975449 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xf5aed32c remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5dababd inet_stream_ops +EXPORT_SYMBOL vmlinux 0xf5e6b969 give_up_console +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5eee8ee acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xf5f88bec pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xf60789b2 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf6163ee2 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xf6459d69 vfs_readlink +EXPORT_SYMBOL vmlinux 0xf65502a8 input_register_handler +EXPORT_SYMBOL vmlinux 0xf65eae1f eth_type_trans +EXPORT_SYMBOL vmlinux 0xf664b364 i2c_transfer +EXPORT_SYMBOL vmlinux 0xf6895fc9 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xf69dc99e textsearch_prepare +EXPORT_SYMBOL vmlinux 0xf6a2497f i2c_release_client +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ced7a4 scsi_prep_return +EXPORT_SYMBOL vmlinux 0xf6d2a315 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xf6df39b9 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70fc41c bio_integrity_split +EXPORT_SYMBOL vmlinux 0xf732f02a default_llseek +EXPORT_SYMBOL vmlinux 0xf7474196 end_page_writeback +EXPORT_SYMBOL vmlinux 0xf74ec11a search_binary_handler +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf79c61b6 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xf7e1d79c pci_enable_device +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf8324f39 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xf850b2df sg_miter_start +EXPORT_SYMBOL vmlinux 0xf858b627 phy_device_register +EXPORT_SYMBOL vmlinux 0xf85c28f3 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xf8661c3e set_pages_nx +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf892bd14 security_path_unlink +EXPORT_SYMBOL vmlinux 0xf8b0841d zero_fill_bio +EXPORT_SYMBOL vmlinux 0xf8c307c7 mapping_tagged +EXPORT_SYMBOL vmlinux 0xf8c40452 blk_insert_request +EXPORT_SYMBOL vmlinux 0xf8d3608d blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xf8dad62a __serio_register_driver +EXPORT_SYMBOL vmlinux 0xf8e63584 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xf8f1a967 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xf8f68866 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xf90cfe59 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xf91635ff dev_remove_pack +EXPORT_SYMBOL vmlinux 0xf928b054 dentry_open +EXPORT_SYMBOL vmlinux 0xf92ca10e i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xf93eb255 mmc_host_disable +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf993136c sk_stop_timer +EXPORT_SYMBOL vmlinux 0xf9a1c6f4 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9aec597 blk_get_request +EXPORT_SYMBOL vmlinux 0xf9bdc380 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xf9f796e8 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xfa483f79 nonseekable_open +EXPORT_SYMBOL vmlinux 0xfa4ed5f0 journal_abort +EXPORT_SYMBOL vmlinux 0xfa864d60 scsi_print_command +EXPORT_SYMBOL vmlinux 0xfa931658 bdput +EXPORT_SYMBOL vmlinux 0xfaa0f436 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xfaa5d2f6 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xfaa61352 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xfac75889 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xfaccb352 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb01f9fb free_netdev +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb2f5f25 kill_fasync +EXPORT_SYMBOL vmlinux 0xfb6334e8 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7618df blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xfb76c862 journal_update_format +EXPORT_SYMBOL vmlinux 0xfb79c864 simple_empty +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb89a3c2 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xfba9e63c __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xfbbe183b __ip_select_ident +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd06e19 kthread_create +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc11e5a2 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xfc16e2b1 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xfc30d4f2 xfrm_input +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfc65d136 tr_type_trans +EXPORT_SYMBOL vmlinux 0xfc9535ff phy_driver_register +EXPORT_SYMBOL vmlinux 0xfca1ef2e serio_close +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb7660a rfkill_set_states +EXPORT_SYMBOL vmlinux 0xfcbf37e1 __inet6_hash +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd0e64e neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf8227f simple_transaction_set +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfad4ae vfs_writev +EXPORT_SYMBOL vmlinux 0xfd089468 kernel_listen +EXPORT_SYMBOL vmlinux 0xfd140fe5 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xfd16052c ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xfd2ee084 __lock_buffer +EXPORT_SYMBOL vmlinux 0xfd3392ff tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xfd33a3d2 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd9b3844 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb8a0f1 init_special_inode +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc9473b skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe15e878 dev_trans_start +EXPORT_SYMBOL vmlinux 0xfe1f6b14 simple_statfs +EXPORT_SYMBOL vmlinux 0xfe47d8c9 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe694f33 bd_set_size +EXPORT_SYMBOL vmlinux 0xfe71d4da journal_load +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfec17f4a generic_fillattr +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfec6084a jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xfecd06c9 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef52089 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefaabde ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xff0ee341 netdev_set_master +EXPORT_SYMBOL vmlinux 0xff131610 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xff1c211b request_firmware +EXPORT_SYMBOL vmlinux 0xff1ca276 iget_locked +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff36f548 mb_cache_create +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff690650 input_set_keycode +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff778fdf dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0xff889338 fput +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb26c0e bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xffbff37d __bread +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x03670f2c kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0a4f42a6 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b430e82 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0d42b01a kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0d4dc3ef kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x13ea29b7 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x189d66e2 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19f3eee9 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1a2fd2a2 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1ce7d445 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4d5524 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2309318e kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27978b30 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2869bf69 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2894021e kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c825178 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x33eb31a3 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36d527da kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x37642754 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3a592382 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4079cd33 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4205aca7 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x43227bd9 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x47a3b165 kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4d4de1bc kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x501c0446 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53a41988 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x57703c52 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x599086dd kvm_handle_fault_on_reboot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a67de38 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b40b02e kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d68ab54 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70ce809b kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x755c56bd kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7741b0df kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7801fdef emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x799edd2d kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x79e9ba8c kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7d161e3b kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x80535104 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x81b25491 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82d875f0 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97c39eae kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x999a2454 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9dc9e2fb gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa384adc7 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa763be53 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7dd47b2 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9eb42a7 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab2da56b kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb127a476 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc0c236c6 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc1e7b9c9 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc2e7f89e kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6e3344c kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd1655829 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd175f6e7 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd61f0180 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd76cf603 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe0e238f2 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1bcbb3b kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe26cc5c3 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeb52afef kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf1c45ef7 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf229a6ed kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf4757c6f emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf4f16594 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf57007ca kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf5bbe450 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa43bce4 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfb5e54df kvm_get_kvm +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0xe3fd4fc4 crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xcdca9cc1 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x19d10d01 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xff80413e async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x6db97111 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xdf543695 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2f9ceba7 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5e41a8e0 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x8787dd3f async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc763fc04 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x4f0c9145 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6b0fe919 async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x0e32b7b1 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x38a5991b cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x3db2be8d cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x40850625 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x40c2e20e cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x8e71134a cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xcdd43a69 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xa36cd13f twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x26694baa ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3070a561 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x40c68e1e ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4d6da53e ahci_sht +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7965e17d ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x82cf337a ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x89ea2844 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa27c92a5 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa645afca ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc6e3a1ae ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc80a13db ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe8e787c2 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf24f32cb ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1e6f3d8a btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3295cee3 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x83e3768a btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x88720545 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc6589314 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xcf7801cf btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd1725523 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xda02ee06 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xba01e54a agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xbb7709e9 agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0xc7903682 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x03898fac tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0457027a tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0d06d221 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x23dae8a5 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2488f165 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x292b7a21 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2ea81e22 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x37017aca tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x40c2ac52 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4996db35 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4f9a9e85 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5953182b tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x609b0150 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6960a4b7 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6d06af68 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8f2256d2 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa020e978 tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa431db48 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb66146b7 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb8e9641b tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcdf5779c tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdef62254 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfa1d9bcc tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x2d1dda7a tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xb71e94a3 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/dca/dca 0x05482d1d dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x356a6e46 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x42848840 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5cc892c9 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x76493031 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xa4ada03c dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xce28e0b4 free_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x027b1a40 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0b1d42a9 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x138c70cc edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x25b7a5a4 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3265e415 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3a78809a edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x57b63081 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7c1ddb2e edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7e1c36ad edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7f4dccc4 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x915038ab edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa07a51d4 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa398f2cc edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xac035eeb edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xacda8192 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xad6bb2ef edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb1a1943b edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xba34f0b6 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbfe38723 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc6490145 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc6e13db1 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe6078209 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeb823f35 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xecab21c1 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x81387a04 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xc8a425c7 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x53d473e6 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7311e227 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x111b43cc hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x16c515eb hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1f2c61ec hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2de3fde6 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3aa150a0 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x80e56c23 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x87f2955f hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9255d114 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x92c3a37b hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x97d8efda hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9d3e6c69 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa0fadde1 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa4613e7a hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaecbb1b0 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb3490a98 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbbb84799 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc3f89ace hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd3e2a321 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd73c8ff5 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd83bc2d6 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf22a3e7 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe30582e3 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xedf1b737 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf10e358f hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf7463d05 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfe261ecd hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x09fcc946 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0f8ce1f6 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x5a89a299 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xc1a99a39 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe7daf4c1 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3f11eca0 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x7f2ad5f6 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xd17c336e lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xdce4b0a8 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xec44befb lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x0d00ef50 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x1f4e32da i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x6892a5de i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xade10cea hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xe242943a hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x890075f4 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x0912ef47 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x14acf21d wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1f36e97e wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1ff9d022 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2950048d wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3443a9d8 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3f35b87f wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x65784883 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x91e942cd wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc7bfa4b3 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd806f283 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xef228f17 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x020e955e gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x22c45b8b gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x244a9ec1 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x45b03d5a gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa014b92f gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa212fff4 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa69eca0b gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb9e41bb4 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xca6e38b2 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcad28ebf gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd24109cc gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdca75b54 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe149cde2 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe322e891 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf033aeb5 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf76a25e8 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfd56e176 gigaset_stop +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x05ab83de led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x1ab29f1f led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x2c80ab4b led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x86c235f6 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x8aff5b0c ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x8ddd09ac ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xc81e508d ir_input_init +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x0fcb9cf1 ir_repeat +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x507a57c5 ir_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x576ae12f __ir_input_register +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x6f18772e ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8b41a6f2 ir_input_unregister +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x97f41c99 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xc2da3751 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xfa6b2ae6 ir_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x008bf504 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x02cfc4ed saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1bd205aa saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x258f0c3e saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2b02632c saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x30280d65 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4d460e2a saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7fdacb47 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x99672f44 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd495edb0 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf0bb16b0 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x11eb56ef saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4d9c06b5 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x6b406301 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x83fb2d76 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xb5ee4336 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xceedcb6a saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xecc30bd9 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xd88b57cf microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x00339cfb mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x345dd2c4 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x3fb3aa84 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x2029f73a tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x6d9fe652 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x106e7570 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x3122b13d tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x5d612235 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x003db3f1 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xce22e89e tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x0ca3d45d simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x03510d50 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0bb794e5 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0da7557c mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x11f8ca8e mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x25cd4d01 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3dc82979 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x48d357cd mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x52fdc4f8 gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6ed522b8 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x857918bf mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9926874d mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb8a77ade mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc00d1a0e mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xca28d3ce mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd58cbd7e mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdf17602b mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf2e75acf mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x012ccc79 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x05f9b61d sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x06ba471d smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0d362e90 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x265a977f smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2eb7daa9 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x325baa4d smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x48bceee2 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5630b3f1 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6628aace sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x66f2bb67 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x80ca1620 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x85c4e4e1 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x950496f8 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9c95ba0d smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9daf28db smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc3d27309 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcf394fcb smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xda112779 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x106f6bd8 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x4c80a95d ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x749e8b9b ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xbf7eba9c ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xca94fd73 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd9adeecb ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xda6c6dc5 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x53ab65d5 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x822d51f5 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x90774369 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9669ec0e cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xce9bfc50 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd4e67252 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd9e940e1 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xdff8df22 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe6cdc701 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xee77c6a6 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf65693fa cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x28ad5c56 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0cb0d6b5 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x477aa9e4 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x4ec88da7 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xaaa468be em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf5212076 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf9fdaf28 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x362cb9e3 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x8232e50c saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x92726356 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb912cb80 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xf71957d3 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x073a4ea1 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x44f4023d v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94119a22 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xb768789f v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xee5da9ff v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xfeaaaf59 v4l2_i2c_new_subdev_cfg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x6ddc98fe v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x7e3b2d88 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xbd43279c v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc17974e4 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x03bcbb53 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0be6891d v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0cd0e0f7 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2ddf6e67 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3869f13d v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8f603286 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xaa78c107 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc84c05d8 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc871f951 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xca570de5 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xced7694f v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd2a9abf4 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe75962ff v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfa21b608 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x003c137a videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0832c117 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0fed5de3 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x11700f0a videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x14d57429 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x191d575f videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x29e13393 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x322a6165 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x39a3e501 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x413f854b videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4b368cc1 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4c4b9f7a videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4cbf71c9 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x51d0da8f videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8d067470 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x94b46ba6 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x96368468 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x97d5b6af videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x98749066 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9e74729a __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xadb9f090 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdb12705a videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdd16f7bd videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xedc5e209 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf212fd06 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x70e2bfc7 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x95ad99c1 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xc231b6de videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2eb0bde0 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x33d61f67 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3dadf982 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x491f3589 videobuf_sg_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5e98d9f7 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x75b32978 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xac255d2c videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb0589d3d videobuf_sg_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbc95fe0c videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc518a1e9 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xddae6551 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x4b2e60d5 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x6ac7cba5 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xce601591 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0b2091e6 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0b4a87d2 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x101676d9 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x14a7dffd v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1b2928e6 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1d3e3258 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x25d4760f v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4268f273 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x58df058b v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x690cb1f6 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa9507812 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xad8726de v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb15a1c66 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbc225898 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe2ce5ee5 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe6c154da v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe912819d v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe920dff1 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x124ffd5e i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3648426c i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x40da521a i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x593953e9 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6d6f5511 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x731f72b3 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x87ee2d10 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa76ebf25 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x21f568da mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x318ba37d pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5c35a97e pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x787cf092 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc0cb42c5 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc890c485 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcaf1cf8e pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcdc554b7 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcf961774 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xda61d68a pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xec59c971 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfa7041bc pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x45177c7d pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x5bf1b56b pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x3766af4c pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x41b36a70 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5e344eac pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x6f437e15 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x965d1789 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x3c93f9f9 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x52e9b128 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x92b1da25 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xbe690a87 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe02b31c7 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x6708f238 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x4213520e wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x53785b89 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6d646389 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xba89d32a wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x209966b4 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2f515bb1 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xbe5503c9 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe3164537 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00b7f46a enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x1bdb3c45 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3701e188 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x55bd514c enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x612ff8f6 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8fb78b36 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfce5bbdc enclosure_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1bd43494 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x32101d5b sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xae1acfac sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xaf577a7f sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc4efdd6e sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdf902a7a sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x1370763b cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x3a6a8d98 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x6c1a9ecd cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x47774be7 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb8707f8c cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xea4588ca cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x8ca99bc0 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x332bf456 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x55be8430 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xbbe138b5 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xdda145e7 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xb2383f17 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xb7795de8 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x14f84224 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x23fd9959 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x473ffd01 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x516cfff2 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5176cbcd deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5a878539 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5fea7ca1 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7fef5dab get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x82068736 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x857b3e43 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb13ccd76 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcb8f11a3 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcfdc3357 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd5695289 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd939cbf5 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xde6839fa __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe65046e5 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf1b57a30 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x10cb9b92 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x280e295f del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x71f7164e register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xaa1e092f deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2ef8bbb9 nand_unlock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x30e2bc37 nand_lock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x766c4cc6 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xa5ab85b4 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xa846175a nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xdcf1b6e0 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xe9e0ba71 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xc4c71358 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x1462946d onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x872cdebf onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x01770f40 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1085dac2 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x163999d2 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2a4d2c0c ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2a68cdcc ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x33367a23 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6195f592 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6575f5b7 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x73cfb27a ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x75c9a1c0 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8897cfa8 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9e838073 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe24b80c6 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x084090e4 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x088518f2 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0c0ef22b free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x25548d2c open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2766cc4a alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4037786b alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6506dbcb alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x71ecc9ac register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa6033820 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdafffeac can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe3f34b1f unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xeb0aedfe can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x26240941 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5ecba114 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x81ab5657 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe05d1d73 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x686b08d4 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x72b547ba macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x80007eed macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa39bcace macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xab9f1f2d macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0372f962 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0dd096d0 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0fa2fb68 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x165fb1dd mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1c30b468 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2026152f __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x216aed95 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x27587ba5 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2f70d6b8 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x300db528 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x34a208cb mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x441e9904 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x483cda78 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4997c4a0 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4fabe02c mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x566b36da mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x60a44ae2 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x66a02fb8 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6f3c3271 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x78e4ae49 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7d847d7c mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7ef89f8d mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7f005f8e mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8465274e mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x85c115c8 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89e0db8f mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8aabb80a mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8adb8c7b mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9b674b1e mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa91c4ad0 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa9358f63 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa96f254e mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb1f29e5e mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb9ecd58f mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd30cbed mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd5e322a mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbdaeea3c mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc143b214 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc1fa09d9 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc52bd572 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc6245c55 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc63fb4a5 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc9f933f5 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcb99db3b mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcc8bf4b2 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd705cc6e mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd96d92f1 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdf308a1a mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe21fee57 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeee7eca6 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf39cf840 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfc28921b mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfd3cc10a mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x215ca087 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7b51358c usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x014dc35c rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x56890aca rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5a7765f2 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6a06c472 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x80f68ee9 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x81841264 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0d3b0abc usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x15748aa0 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x17b89609 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1ae15cd3 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x39390269 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3ea79ca4 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4b16dc62 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5a74c817 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5e8a38aa usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5eaa9ee6 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7245f4e5 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7293f76a usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x72ea7a05 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7c6b7ee6 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7e568242 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8d5d72c9 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbf144b3b usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc32cacc6 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5d79175 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xceb15432 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd74612c0 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdd4e5c8d usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfc67e758 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xff86640d usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x01af385d i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x18ba745a i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x46e4f505 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4b2887e6 i2400m_cmd_get_state +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x866ec0f8 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x91435b05 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x91f99272 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x96902d5d i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xae8a95b7 i2400m_set_init_config +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaf1c7d14 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb6e37139 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbc1eca8a i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbda8011a i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbfd4d79e i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd4aed0a6 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdcfeb396 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xee2cbfb4 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfc0a49bb i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xcc65735c libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x37b3fe2a iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x604d3989 iwl_dealloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xe3a7edb5 iwl_alloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1d72c066 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2fe1006b lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3e23ace6 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4a9b346e lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4ecdab68 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6be383b4 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7b85c8e3 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7e9acc6d lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x80bf38de lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x92bf83ce lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa7dca1a5 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc15b5bc2 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc6cebe91 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf2b3c1de lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4b1bce7e lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6945d6ac lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6b4e3871 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7901db64 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9933e083 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa9944fb9 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbe6615f0 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdaf4ce30 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x73624d9f if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xdd69e922 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x08c14a99 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2ad16eb3 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3bf3bfb9 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x45f2a13a p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4b50e8a0 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x500b7b1a p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x753b4b91 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x94d6386e p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbfd19aee p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1c63fa37 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x202206e9 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x267cbcc2 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2ddb2a4b rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x30cfce31 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x337a8add rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x41172355 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x456e5806 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4aca11cc rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5e4871f1 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5f2b226e rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x60ad1c77 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x69c08b4c rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6e96bb54 rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7238be49 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x84f0ca13 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb2f65059 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbb7a4a22 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc35222e rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc37f94ff rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc7b9ac0e rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdbdad7d5 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf6dce914 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfc96294a rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x10052772 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1fb728e4 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5416ca02 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5cde843b rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x610085ca rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x619b5996 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6582a438 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83c1f539 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8be1f91c rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaceacb28 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb687d7bf rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb6d38f47 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc5856caf rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf5fe61e rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf5bd276 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe5d7ab8c rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe6750318 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe6edc770 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe91e7528 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea2ed7a7 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xee23decc rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeff5e6cc rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf19a568b rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2f358f7a rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x34f58bce rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x49ac3798 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5d22941f rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x756f966c rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7b6a5112 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8b1bb0fb rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xab22bef6 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc9cbe4b3 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x10e49804 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x510fc77c rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x58d13e47 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5d01bf5f rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x68588873 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x74e8a146 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x894de62e rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x954e5212 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9f2b5c32 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xaef88b74 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb3d9fb88 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbbe4f114 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc354de34 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcd945070 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xec0f3749 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfd1f2cb7 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x5f505cfe wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x946e7856 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xc627a188 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x1e3089a1 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x23530323 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x84dcf87f wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x99fb0ec9 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xca6ee710 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x9875110a acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xfcf0990d acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x0ee3ea86 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x1e18637a pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xae205b9d pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x1844ef70 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x35534182 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4d01eafd wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x5067fb5e wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb1b4acb9 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb8c527d5 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xd23a08c3 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xaf20f30d fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08c63b87 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x19d3014e iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1bf21d5c iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x21fb69d6 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bb2677c iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e722a90 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e7d9552 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41e6de2c iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4886ff74 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x526d58ee iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5f833249 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62f41e30 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x63993df1 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6e5a86bb iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6eb24023 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70d82365 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7427dc2d iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8842f9f4 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8bb1086e iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d0bcacc __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x92609f8f iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x92922adb iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x968ed6fa iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x969b1229 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a3cc3b8 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa9346403 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa9b5459d iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb192cce8 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbd75dfc0 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xca5be5f1 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcae30783 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd35959e8 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd7726f9d iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd8949f50 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd9b01956 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd9ff339d iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdd1aebf9 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0b42787 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe82d6dc7 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe866e729 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeeef9cac iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff893c5b iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0ae2aede iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x29bb1af6 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3c76991f iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x44a5bad5 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x57b206cb iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7a8cddc6 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7d10e49f iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7f15b743 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x81a75d59 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8e243d08 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8f618e4f iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x92dfbe22 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x93ff251b iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa5b15652 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd5502123 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xef593383 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1f2a135e sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x36864ba1 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x454151cc sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x49f30154 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e2f5582 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x62b9df7f __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x632efb86 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x64e865fc sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x66fe44c1 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6e525738 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7bae9d5f sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8d8b6ee1 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x98e0f082 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb6f3b757 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb930b1c4 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc1f7790b sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc3222360 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc995c1c4 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdeaf09e4 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe569ea0d sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf126127d sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf55283c9 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfd6c3740 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1fdecbb0 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2f0ab9d1 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x73c5901d srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa79a5032 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe9957a90 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xeff50a2c srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x135ec1ef scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x62bb72e4 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x64fa7ad5 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6e7c15d6 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7c5da2c6 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x97c0842f scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xde4509f7 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xeb7bda2f scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfbf2c401 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1910e39b iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1ccea941 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d5f2326 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x317b7698 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x40e3a413 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4af64855 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4cc7ab32 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57adebe9 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5b2ff993 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5cda6065 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x60cc8fce iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d7ae512 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9a14a8df iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa2551c28 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd50dd363 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd7b51aa7 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdec87d2e iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe729d8b2 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf09966a2 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf66869f0 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfa0cd22b iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfb6b4f35 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x164b5cf1 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x2aea7520 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x2fb43be1 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xcb8d17ff sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x71f2ec2b srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8ce7e3e5 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc08b79d8 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xca6d2edb srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd94c2a37 srp_rport_add +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x404a5f30 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x4c509da9 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x72e25109 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa5335533 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xb6179dc6 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd19cf7bf spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2dcb8ea2 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x60ad4752 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xac4fa668 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd10a10a5 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf229a41c comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x14057da3 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xd156365a das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x36dc46f4 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xdd4a326b labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x396e3cfe ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3970e1f6 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3cc42156 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3e83d9dd ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4bd516aa ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x5b29b89d ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xa2716004 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xcdeb4559 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x070a5d38 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x2a1e1c8b ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x48e2018d ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa97dc93c ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xdcab5a3b ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xe5a4f597 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x94708e9d st_register +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2f5767ac tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x53c5baf3 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x9b592adc tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x08ac9e49 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0f25fe6f usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2a3a6070 usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x467754cf usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x592fe781 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x64227859 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x74c2a1e9 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x77366657 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x971658df usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb0665ff5 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbd802995 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbee8cc21 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xcab40b1f usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xdc13fde2 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf735963d usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7e960331 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa78acbbb uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xe3b21fee uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x8d2c4ab1 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xf120365c usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x217a53fd usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x30f24f48 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x56624fca usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6418c677 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x72ec0547 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x89028ad8 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9333fcac ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd27bf11d usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xff736527 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x01dae166 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x12f8c589 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x348dad18 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4451e2d6 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4efcf841 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5dad79a2 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x690fbbf9 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6f41e635 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7080eab3 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x74d6b647 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x79dbba04 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8a331229 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb4a0e52f usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb82e13c0 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc658ee33 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc68bfddf ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcc5ff2db usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdabda7b9 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdc22ece5 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x003fc62d usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x07a76381 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0af75391 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0de8435d usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1228f0f6 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x26811718 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2bb3cc88 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x44476570 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x45ee1365 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5a0eb2df usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5e6a479b usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x69628202 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7065c246 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7a1fa375 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x85dc00f0 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9d4c7d26 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaba82870 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc154c217 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc5e135b2 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd2ec0140 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd3dafc38 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd5529bc8 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfcde68cc usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0d924e46 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x201241ef wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa97bb4ce rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb48ed8bc __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xfaa11e29 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0f451a70 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1755d990 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x210e4ac4 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2524ecfa wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2a008d74 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x48a19aed __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x55dc6ba9 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7cb5f5b4 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xaf7e1ed3 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xba5e3493 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcaef8e45 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xeefa2fa3 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf188140f wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf70083a1 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf8b656e5 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfee96df8 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x9b505eac i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xae9d9440 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xb0af341b i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x4a2d3683 uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x5589d01b uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x62308c9d uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x6b2af496 uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x85512292 uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x9ada1e8b uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xae6344d8 uwb_pca_base_priority_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xbe1b2ba6 uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x02b94d5d umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x47741c9a __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6745acd5 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xaa7a6720 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc06f44b8 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd4d2eee1 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd98a2cc0 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfa258cea umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0730ceaa uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0ac206fb uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0e6acac4 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x17235aca uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2c2d39a8 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e57ee43 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x30af8d6c uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x31309faa uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3525894c uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x37b86518 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3a4a83c1 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3c329ef9 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47fe4173 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x49d89993 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6180c8bd uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6de37074 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6e2f1308 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f66a596 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x77ef3861 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c769e3f uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8df56f3c uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa437b366 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb63c6867 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbbd040e2 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc23ae031 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xceafb46c uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xceb95908 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd66ca46f uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd7e9f8b8 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd9d18f0a uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xda617eba uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xef202c42 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf0cb37bb uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf1bf9230 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfaaac10e uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfbc0f850 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xffbe5935 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x7af3af58 whci_wait_for +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x08c4d57c wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x19308bbd wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1ca093d6 wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1d0dea8e wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x20bd5594 wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4b552672 wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4dfcac87 wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7a78ebae wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x80e5e832 wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8de3537f wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x94011c7a wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x948dbc8e wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x976c081a wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x99a65676 wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x99df1440 wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9b65ecb8 wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9bde63e8 wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa0688998 wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa4c19fb7 wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb00f5ac9 wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xba8049ed wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc31695cf wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc5045d14 wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc6dd3817 wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc8f318a0 wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdaf0971a wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdb1c9c16 wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdc6bb109 wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe9cc48cc wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf13d97c8 wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf8d1db27 wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xfc3af5e0 wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x165a8ca9 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1d0ad81e ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x30d337b8 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3932e6ed ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7933c310 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa3e41962 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc34965f5 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0xc61a610d fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xb28a6b95 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xe2710cda fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x5ebbc425 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xfbb44e2a sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x3f800803 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x09133bf5 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0d0369fb w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x151cddbb w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x19070481 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2f554335 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x4c77efc9 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdb06a093 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdc44fbb4 w1_read_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x91868708 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x96171065 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcac74928 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x8b22ac3f exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xccaf1399 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x10876161 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x16ceb8b4 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x173e2c2b fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x3f84f206 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x420372d4 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x467b2fbe fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x4b35c423 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x4efba033 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x51dc673e fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x6dbf8e87 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x76522d6e fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x97e60c22 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xba7a45ba fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xdd50f737 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xe74febc7 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xeca043dd fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xf74b55ec __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0xfb5248cc fat_dir_empty +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0e0a7fbf nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x124b2c5f nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x388314b6 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7b7cce38 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb508bbfb nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x8fb44d2a nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xcc23f494 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0cd0b045 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x19641482 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x41d4aeb2 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x57d85de5 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8c68a48e o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x92d25010 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xea6bc7a7 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0054a191 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2040c123 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5f75a657 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x81b56d75 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe55d7540 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xebc7aeb2 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x709cd2c0 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x755b726e ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x96f85b97 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x044c46d2 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x1a98875d garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x20fd3caa garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x46fada71 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xa741dd92 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xdb78e5c9 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/stp 0x0313e5b9 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xddc5bf34 stp_proto_register +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xcfa0d702 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x16b4818f bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x08d69f83 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ce50ba8 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ee454c3 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x214faf12 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x33016f33 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x34f12b7c dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c84680d dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x50033e5a dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5799e760 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x623f93cc dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x68380ada dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8662eaa3 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b6a838c dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8d9eb3cb dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8fd3e2c1 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x903303b3 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x933b0b39 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x95adc352 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x99178199 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9ab53d7e dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa4999bb7 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa9ac09f0 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xab943012 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae26ead1 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb616508a dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc726589 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc867baa dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc453cf29 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc4df51e2 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xda53797b dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xef599b4c dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfd803a56 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfdefec6e dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3b5dc0e6 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x646bb787 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x987701d8 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa9ad3735 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xdadfc6fd dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xec07e5bf dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x4aef6877 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x35b33ac9 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x08b6a328 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0dd113f5 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x24eb14c5 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3ad0b986 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3d5db911 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5cbb387b nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x730e4525 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x82e76c51 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfdedfdc6 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x07f74da4 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x0dc42262 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x11681f2c tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9c9d05c8 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xac8273e0 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x5d24cf24 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x07cefda7 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x10582e14 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x168d0f75 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2a6ff5b6 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2cf7265d l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x30cf73a1 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x311b52d8 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3dfae0c5 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x48408d83 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x63fdf9e9 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x86b7dbad l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x87a2360b l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x972fb9d7 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9cef3431 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9e34f42f l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa419d827 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe4433343 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2c36cb64 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5310e97b ieee80211_find_sta_by_hw +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x598549c7 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04597307 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e492e1f nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1301ea2c nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x148fe0f1 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16e34d6d nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x17709742 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x194e41d4 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20d1dfb8 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21857802 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21c5749a nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x266cd375 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x292fbe49 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e73f0bd nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f30c91d nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x329a281d nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3a17ba84 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x404b7ad5 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4129d964 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44f0f814 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4bb99866 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4eeb129f nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x52409a99 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57c5a410 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x627ae665 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64c97f2c nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d4104a5 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d97ad8b nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6dc352f6 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x71f6ad6b nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x730e7f3e nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75524701 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76747954 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d47d940 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d764202 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7de6806d nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80d0de47 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x839d9edd nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x865a3991 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a5a301f nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a5ea84b nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c7193e4 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e4a33d5 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x903ee0f0 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95e2a4ea nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96101db8 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f602844 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0ebb946 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3c60c1a nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3e0f089 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1abfc5f nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb601a2f8 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb86c529d nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb90f7339 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb7a8f4b __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc3c606a7 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd26100af seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd76140ad __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda7ac617 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe99f2e13 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9d69999 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea52dbed nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x153d3162 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x74f1d6cc nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x33754c19 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3fcbe5e3 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x901467b0 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9cfdd881 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc112baf4 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc66a7a51 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc93043f2 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf172ab40 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf6783ec3 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfdfbb6c6 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x68144fc6 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x40349433 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x435fea26 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd5d266a5 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfc76932e nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x19605f7e nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x1e8d7b6f nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0a0ea255 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x48804ee5 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7006fe01 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7029891b nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa13ed310 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbd42d0f7 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc3205e9f ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdfaf167f nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe2285ac9 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe4bc1bc3 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe905d86c ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe9b21d0a nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xff5a1331 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x02891d03 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x64f89d97 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x8b268bec nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x318719d7 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x509e19b3 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x60c71d39 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7c1ed530 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x90b7a643 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbab65d20 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xad3e1761 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1ca5d04e xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1ec1f3db xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x652617e8 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6d760e9b xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7b96fd0a xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x81f52f8a xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x869ffd01 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x883de526 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8e464510 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaf197d16 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3c210df xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xda1bcc35 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe7ab605e xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x06a3535b rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x20365ca9 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x29301f32 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x36ade014 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x38b89e73 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x3cd58f83 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x4c8bf837 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x603fd334 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x6a1f7ec8 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x770eacfd rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x78f64a70 rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x86e8be1b rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x89aa39a1 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xa28c3448 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xb433ce85 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xb752e289 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xb9ff7b14 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xc2a811ae rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xc67c2cb2 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xd9b78af5 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xf13f3bfa rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0xf661919d rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x013455c7 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x930b3867 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3610a2a5 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3693a76d gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3c08edff gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x59ad9e5d gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa9fe80ed gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbac2eb73 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc419aeff gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd1cd1167 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe10651b0 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf0595e43 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xfc0de2d1 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00ab65d6 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x011cbf43 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05207868 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x076b1b62 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08130143 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b06a599 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cf5e915 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e62fa42 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x119d6b61 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11c249f8 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x134c68b6 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14202164 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1932b9bf rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cb0c879 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d16c7c5 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e065a22 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e1b7123 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26436ace svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x269102bb unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29d0f2a4 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a147f98 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30949222 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34a464d5 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x361638c3 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3762db97 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x389a6eeb svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x393e05aa rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3adcac49 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d914087 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x429b131c cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43f62662 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x499df6b7 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bfaa438 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cce5cf9 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4eca66de svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52d67768 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x577f010d rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57964882 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58b01e34 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f22feac sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f3a119c svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x605d84e7 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61380b17 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61bf7b59 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6373e2e1 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6720e855 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ef13225 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71bf47d3 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x741c511a svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77033fff xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a3d39ae __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a93688e xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c333c2a svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f10eb0c svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x808464a0 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x830d8fac xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x853d9ad9 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85962a70 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x864087a6 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8781a83e rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a19e7ad xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ee87aa0 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fcf575b xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x905d247c rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93bfb237 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95ededd5 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97e96d23 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9be7a21a xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ddfd1c9 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa08957c1 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa11f5f8f xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa13439f5 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3c50020 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa404faef rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5092a91 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa54a0487 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa59b59e2 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa65e23ad sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa89708fa cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8c9c9fb xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9ae0d9f rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacbb1fb0 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae4c8fd4 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaee7d7cb rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0dc7cda rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1d83386 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1f53ccc svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5583d8c sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5db7be0 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8b9574a xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbde5597 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdd56517 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe744347 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf81e342 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfd2b8b5 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc05f3486 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc13d9fb2 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1c6194a xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2944afd auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3f977c8 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4dac3cf auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc57ccb69 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc79b52e2 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc84494a8 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8b4872a rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8f6f663 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc98425b2 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcec08f5f rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfb9330a svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd465508a rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4993c6b svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6ef1ef3 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc559b1e xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde859421 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde9120a5 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfef1225 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1db8b48 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe639b6fd xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe858fda1 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8ac4eda rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea96d682 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeace20f9 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeca28684 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecd88c7f rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef19e516 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2be500d auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3699b09 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5d6aa77 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5d88e0b rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf70d43cf svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7683fb6 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7ca7491 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd266462 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe82db3a xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/wimax/wimax 0x18dcf5c0 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x466f2791 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x49e98245 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x51b3d959 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x56279845 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x67571322 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6c9b3781 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6fee98de wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x91824785 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x923586be wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb275356e wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd45b732c wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf612b3e4 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x03548a88 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x071ca5dd cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0d0c73b4 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1683929e cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1bb9ed9a cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x23999c0e cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x43406c9f cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4447f446 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x44a5efbf cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4f443c9f cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x55e42ee6 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5a806d06 cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x61d1d325 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7b9370e8 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7d413f20 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x97ac37fa cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x983610b4 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9cc1e467 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9f728812 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9f97f022 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa0a60cbc cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa194de2b cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa6744374 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xafa55ba4 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc42412ed cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc5929be8 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xca106d95 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcd497eba cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xda67e07b cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xebb4cf6d cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf034ad2d cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfa97539f cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1acea297 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x5255894f ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xac337f8e ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xfd0ee901 ipcomp_output +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x31ce06cf snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x659ebc87 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7c3ea1cd snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x897c3188 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc5aeff89 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf7a9e1de snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06c17c12 snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bd279be snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0cb8e794 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0cd26cd2 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0da8a99d snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x109582c8 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15ac5877 snd_hda_eld_proc_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1619932c snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x176c3966 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b4f7c6f snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1dc3da1b snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x20cfdfda snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27c418de snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a5c8dae snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2df459cd snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35eb4a82 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36144b3c snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a880438 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3bd87f07 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3efd2b2c snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4029ab86 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4620c728 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48664bdf snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d58b112 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ee8a225 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fb4ba63 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58a80b76 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5fef1a5a snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63d5f964 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x676c9f74 snd_hdmi_show_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67a6d782 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x692bd021 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x696edd7e snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6aa52e74 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e144330 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70c7fc5f snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7121d40b snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7173af16 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74558e16 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80c3e79e snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x818b73d9 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83fae305 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x88f4a2ec snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x896e5ba5 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c637668 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c9bdad4 snd_hdmi_get_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x90325d5e snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9311ea98 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93c4bb54 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97cec9cd snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98876b08 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9baa7d8b snd_hdmi_get_eld_size +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9e13771e snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa19b934d snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa45f9381 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab7ed24f snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaca16a7e snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaccb85a1 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb54ba926 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb55b7ce2 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb38832e snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb481684 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbde32457 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc55fe609 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6480c45 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6c2f95a snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc97e4298 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca056a6a snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcbe45254 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcdcfb93c snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0dfb4c8 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1d37d88 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd59b19ab snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8c3a2eb snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdafbc70f snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb4a5e5b snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc60a181 snd_hda_eld_proc_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd674a09 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe0f6bcfa snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeae69961 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb4e5a19 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee9f266a snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef0ca155 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf14ba3b8 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6116908 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf92ad59f snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbbb0186 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc5960cd snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x34d21a87 ad1836_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x403423a5 soc_codec_dev_ad1836 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x9672264b soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xcd2a7105 ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x2c1169b3 ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xb88f4b98 soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x9c148f0c ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xd9b910f7 soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0xc905416e soc_codec_device_ak4104 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x92df633a ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xa0c5951e soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xc4f26aef ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xf87ebab2 soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x738e02dc ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xd1155728 soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x508da75e cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xc289acde soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x00b0eaf7 da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xf7e2fb9d soc_codec_dev_da7210 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x40d593e1 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x335696bd pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xa29911a2 soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x3396156f dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x9ab1be24 ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xa92c1469 soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x85be83da tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xf117c975 soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x4a61ec30 aic26_soc_codec_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xd3420d35 aic26_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x18e106a1 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x40676d9d aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8feb0853 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x96da7c0a soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xc951ce09 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xcfae740c aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe2fb358b aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x7809fe6e dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x90687930 soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x0c187988 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x06a19c61 soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x9159372b twl4030_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x792ed984 soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x93369284 twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0xc719fa64 soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x231942fc uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xf6a3c60d soc_codec_dev_uda1380 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7d26eef5 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc3a8f953 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xde9939c5 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x5d81c9ef wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x6117297c wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xdd3ec79b wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xde113d59 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xe01875a0 soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x39ea0fc2 wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x7b048ff2 soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xc99112dd soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xf8e46e7b wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x4f980648 wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xe0faff47 soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x3d30a17a wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xc6402952 soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x719dbaa3 wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x7a83eb17 soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x2e9ff2c8 soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x962c4323 wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x677af1f6 wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xa907ee07 soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x79073f79 soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xe602ab8a wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x4e8e4d15 wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x6491728a soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x4fbc2149 soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xb33abf6a wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x314f0162 soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x4fedbb64 wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x093c7080 wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x8285c752 soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x8fa8022e wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xa9a89491 soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xc606a395 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x92ad3296 wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xe6e90256 soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x858c6f8e soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xfd735493 wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x0bc9ce94 wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xf939f1fc soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x6aec45ba wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x8608bbe0 soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x9f138aa1 soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xa1b0961f wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x07c79dab wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x9ed1e096 soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x570a0c18 wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xe3a614d3 soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x20c8cc63 wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x4f135bdf soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x444f1ce2 soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xd680bc8a wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x8d54fcdd soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x9ca43553 wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x1a3047fd wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xa679af1e soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x99ec9098 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xe93839d9 soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xf05f9341 wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xd5e5c191 soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xf9bbe22a wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0xcd3c9ae7 soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x008968a5 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00f541be snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x013f9844 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0495e5f0 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a7e0c3e snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11398dab snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x152347e7 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20e0eb22 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x263a5a89 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27c4943e snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a4be467 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f87f170 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30d6b08f snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30f3ceea snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31b34e3a snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34baca9e snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x354b7054 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35ed71fe snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x424521df snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43374125 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x437c24bb snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x457c9dad snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x481dc4bc snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48724365 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49d287c9 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a55ce5d snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x503213d5 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x505838f4 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x506b7837 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5106230a snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69a49b73 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c00d210 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f04e6b5 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x729dacac snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72d250ad snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b77ee9f snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e45fcfc snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7eb86d06 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x852ae0de snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x862a2b2b snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x86474d84 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x890c6999 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8982b06e snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e55b153 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x90fd47f2 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94e78dbe snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x951d3e52 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98fd27eb snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ddffbc1 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1260073 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa55aa95b snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6fd1a9c snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac1b47c9 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xad7eeabf snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae7a4a5b dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb56498ef snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5b55ba7 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb61d7219 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb659e567 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6c18d87 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb71513c8 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0102026 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3c9196d snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3cac245 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3caeb64 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc526bbe2 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc81e658 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xceee69f4 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd2aa6fc6 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb9089d6 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde297b5e snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde4f236b snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdec0171b snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb0cb68e snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb3144e6 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9c3ae02 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfab39145 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x3ad6acb9 xv_free +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x415404a4 xv_malloc +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x422af118 xv_destroy_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6ae9c20d xv_get_total_size_bytes +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd2ac5a4c xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x000608fa usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x00114ec9 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0067501b skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00a86fbd usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x00ae5ded blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x00afb0d4 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f3b75d adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x016bc2f2 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01aeae64 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01e81602 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x0213f803 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x02603d61 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x02cad82c simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02fc86b6 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0388b796 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x03a2eddc usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x0402ea7e devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x040fde03 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x042ca42a driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0469caf4 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x04717678 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x048aafd6 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x04a93edb sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x04aada29 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04f533e5 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x04f6b034 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x0525d2cd crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x052ef35d da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055829f9 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x058e7f88 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x05f38561 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x05f44f24 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0610ff50 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x063d3aee bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x06476580 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06902d59 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x06994877 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x06a15650 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x06b7c264 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x078fd689 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x079b2c67 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x079d3c07 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x07b12cf5 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x0801c7ab dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x0813b6ac i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x082196b3 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x083c63e5 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x08ba4a4e blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x08cbb849 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x08ce33f1 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x0904ccf2 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x0913f1b6 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092bc6f9 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x092cceb9 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x093c5604 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x095cb203 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x09eb44fa vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x09fe306e class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0a05ad32 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x0a2d1de0 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x0a3fc4b9 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x0ab560d7 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0ac0fd45 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x0ac8d853 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x0ae80d3d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b24d93c bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x0b7498c8 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x0b74e67a spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x0b8606c2 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x0b8f557d debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x0ba08e56 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x0ba52a32 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x0bfddd04 tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0x0c1c8d12 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x0c2c3485 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c54bf01 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x0c63a2eb md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c83cd23 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x0c9aa848 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd419ab crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e175528 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x0e1aa7a7 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x0e2c1627 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x0e451fe8 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x0e4d99f8 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x0e610ce7 rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0e8c21d3 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x0eac4ef2 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0edb2ed9 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0ef87db0 put_device +EXPORT_SYMBOL_GPL vmlinux 0x0f33f49c spi_async +EXPORT_SYMBOL_GPL vmlinux 0x0f592c94 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x100ec4ab inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101fc0a4 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x102d1969 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10b53e4e crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x111a3f5e inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x11241568 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x1127a40d sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x11501cec pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x1160f302 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x11728db4 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11a3bfd9 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x11a67c0d usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x120ba3e2 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x1226571d module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x12679636 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12d956bc ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x135eabfa devres_get +EXPORT_SYMBOL_GPL vmlinux 0x137fccc9 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13f8ecea anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14ba13d9 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x14da3f57 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x14fa87ea skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x151aea33 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x151dcf7e securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1521ead0 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x152259c8 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x1570fa39 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15b5e885 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x15cfcbda vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x15e5ecea get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x15f15082 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x16157743 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x16234e28 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x1656971a device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x16730f43 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x16a3bc12 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x16a5ea56 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x16c57b0c unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1719c3b7 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x172acb83 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x17a3a252 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x17cf67be mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18a2a17e blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x18df8f82 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x18fc9f4b sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x191dea18 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x193b0ce7 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194696a7 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x1971ae2c devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b95ce4 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a3b2f36 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x1a594416 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x1a8cf7a9 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x1aae4836 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x1ac4ebc5 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x1b125072 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b518fa1 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x1b6b881f css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1b88b6bb sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x1b9386bd tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bcccbe5 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x1bd2a56f ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1bf720f1 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x1c195df7 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x1c37173f sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1c45f322 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x1c5fa88b wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x1c5fd5b8 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x1c6814ca queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x1c716f97 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x1c7b3094 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x1c850cf8 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c88b318 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x1c8becfd crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x1d4676a2 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x1d4d9a14 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1da957b5 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1de2d681 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1dfc2a1c shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1e0291cd __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e49d1b5 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e87c505 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x1eb64a59 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebd475e preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ecfdf10 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x1efe064c dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0x1f85dcaa fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1f8eaedc inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1feb6a13 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x20059aa1 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x202953e4 apic +EXPORT_SYMBOL_GPL vmlinux 0x204c341b sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x20736eb1 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x207d24ed class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x20b4d174 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20dda7f7 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x20f4e336 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x21160445 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x213404f1 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x215f51ea crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x22300e41 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x227045fb inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x2274645a __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x231affb9 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x2322c72d wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x239d0ccf tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x23f38f25 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x242a0f5d xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2452c950 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x24acb0d8 pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x24c354d1 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x25002d98 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x2565a6f4 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x25a33d47 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x25ff66c6 pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0x260938c8 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x26414617 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x2659e942 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x2669153a ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x26a925b9 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x27490a18 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x27753972 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x278d4d18 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27b8343a platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x27cdba1c pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x27e059bd usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x27f3b63f mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x2807ced3 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x2815b3ad power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x2840c0a9 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x288b94d2 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x28abda4f mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x28d0bf63 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28e4312a mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28f151f7 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x292bf030 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x29618dc5 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a7ee820 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x2a8916a9 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2adaa2fa class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2b2740c2 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x2b28c5ae sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2b45be64 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x2b48776f ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2b4ebeac wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x2b63094c wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2b78e097 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b9612e9 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x2bde2304 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c2aab95 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0800 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x2c83aa6c skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x2cb7a111 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2ce025ae ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d1ee362 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x2d37e595 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x2d58a620 mmput +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db0c42e driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2db39a49 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x2dd44a2d scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x2df1010b cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2e0a07da regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x2e43b101 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e77314d register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x2e89636b usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x2e90446c __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x2e98f9ce ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ef5482c xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x2efcda5e ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2f094bb6 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x2f18ae8f debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x2f302a75 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x2f422407 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fa99f87 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x2fb157fc dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x2fbe307e wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2fcb3520 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fe6852d regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30924c61 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x30a0a01f relay_open +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30c8530f preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30cad907 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x30db6e9f ref_module +EXPORT_SYMBOL_GPL vmlinux 0x31781aa0 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31a39aae usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x31f0d310 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x325b7abc pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x32cc0772 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x32d598be regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32feb3ad blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x330cc8a1 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x333fab6a crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x33607d36 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x338aee5c sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x3395be0c pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33d97d3f ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x343723c4 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x344115de ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34445c78 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x34551c0a ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x346bd539 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0x34b6d031 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x34be22c2 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x3556fb85 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x35bd1720 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x35bed708 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35ecaef0 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x363e731f device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x36cd68d6 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x3747e9a6 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x37644452 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x377fbf9a ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x37d5f94f ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x38509b47 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38d2b14e ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x3931ce13 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x3949c45e usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x39be9cdc sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x39dfcacb inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a0c719c usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a5516c7 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x3a756082 find_module +EXPORT_SYMBOL_GPL vmlinux 0x3aa72416 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c452b13 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x3c6dafdc pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x3c726db2 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c9c755d tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x3cad06c9 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3ceecbea page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d30d9bd tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x3d35f395 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3dac5879 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x3db6cb58 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3e4e8832 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x3e5c10df ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3e9a291f __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3eb8c5da xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f38e134 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3f3e6b43 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x3f60f0e2 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x3f7771c2 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f9f240f sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x3fb53847 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ffc0d37 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x401b5dad fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x403cb000 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x403d955a pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x408fe1ca pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40eec775 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x41036379 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x415fe1e8 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x41a55cf5 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x41c8cd6f each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x41df32bc setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x4201fb03 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x422cc502 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x42326b8e root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42824025 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42ba1c38 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x42bc2b6c save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x42d0445c dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x42fcabc9 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x431c90bc add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x43287e87 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x433e399b inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x4347e316 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4363b655 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x4368f3c4 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x439bcb46 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x445170a4 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x447379af pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x44792250 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4491ba63 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x4496fec0 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44ad0d6c ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x44b515f3 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x44d8d15c __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x45335797 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45b51810 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c12d0e ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45e1928a pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4612c235 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x4625d268 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x464c984d sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x467d3cc7 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x470ba734 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x470d9c96 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x471e966a kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472930c7 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x47345869 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x477d365b rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x478bd478 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4791bebc blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x47f6487a ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x4834dbba ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x485b2fb0 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x48672258 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x489a3b6a ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48dd3872 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x48ec5edb ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x48ed47b3 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x4917a63b inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x496ac406 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a4ec0e ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x49c7ea9a ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x4a071979 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x4a42f73f trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x4a44e7de hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4ab161fe pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x4acdd713 user_read +EXPORT_SYMBOL_GPL vmlinux 0x4af73706 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x4b36ab72 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x4b8187b0 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x4b81a958 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x4b8a3dce debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x4b9b9fe3 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x4bb8b171 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x4bcd76d2 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4bfb7bd7 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x4c4d6801 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c927955 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x4cc7ef84 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x4d14fcf7 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x4d1a197d ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d9e23c2 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4dd28b4c unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x4e888e75 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4e984935 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x4eab52ac attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x4ebd162d ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x4ed4d1dc cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x4ee75d31 mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4ef6d7aa init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x4f00de5a pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x4f42b2b6 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x4f6e7da7 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x5000b86c __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x505c57be pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x506c9b47 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50b467e8 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5107ae8e dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x514bd38f led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x515add50 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x515c4283 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x51665fc7 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x516c8a6e hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51bf3870 dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x51efa2c6 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x52061263 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x5208e9c7 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5249f0be srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x524f5b37 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x527fe13f inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x52b10c8f user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x52eefc50 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x53220a86 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x5349dcd2 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x534ec30c usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x5352aa6f ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x537c8aea __css_put +EXPORT_SYMBOL_GPL vmlinux 0x53865344 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x539aa2b1 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x5403a362 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x541432e0 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x541bbd20 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x5428ac56 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x545173f2 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54921b77 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a3ce1d xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x55011f14 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x550559f7 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5525783b vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x552d9b3e xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x5547d11d crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x55ca06d9 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x5623f468 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x5629dd4d register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x56532e6f wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5664b5ec bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56ba511b inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x56bc3472 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x56c49cc8 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x5732d4ff usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x5748bc4c led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x5763733c regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x579d1eee platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57b8c57d sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x57f9671a fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x580684ac kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x585cbf87 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x5862f9e4 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x5880b324 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x58d4e2e2 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x58f476b9 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x58f75350 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5941b39c rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x59527332 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x5976bd30 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x597a3703 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x59870ed5 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x59a3b2cf crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x59c5945a pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0x59e47e52 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a62af9f devres_add +EXPORT_SYMBOL_GPL vmlinux 0x5a6a7dcd dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b42005d debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x5b95ae20 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x5bac0101 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5be947db sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c1881bc usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x5c27a32d usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x5c4e6007 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x5c826e6d get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x5ca153f7 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d20ade9 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x5d27619b ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d457680 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d81bf17 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d9dfb46 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x5d9ff0c6 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x5dbbeef1 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5df58054 __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x5e05508c devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x5e1183bb __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x5e6ff2d1 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x5e73a097 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x5e82e865 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x5e9606d3 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x5ead4a75 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f110b7f relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f60c37d pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fd5384a inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x6008ca26 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x601421dc da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x6098e9c7 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60bef2c5 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x60c6f982 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60e8c98a sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x613b7d0b usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x61bad0fd vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x61d6f721 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x61e1ff05 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x6202d60f generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x62183b1e kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x6253c0e2 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x6253dc36 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x627af498 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x6287d3bb __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x6307a225 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x633b128e noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x635d9896 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63a4529a sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x63a67bec crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x63ac8d1f ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x64a37310 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x64d49e59 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0x651526c1 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x6526aff0 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x6535f07e usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6566343b input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x656c1dbc pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66323d24 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6690529f register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66bee583 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x66c34c99 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x66c67fcc task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66fbbc52 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x6710f655 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x6752b9d0 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x678404ba zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a4145f wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x67fd98bd ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x680a72ac wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x682adaad ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6859dca9 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x6863ee38 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x68647c51 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68805996 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x689a08cf usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x68b0a110 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x68ed1982 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x694c3460 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x695640d2 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x69762fb2 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x697fda85 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x69d988cb bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f2c68d driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6a4bfa2c unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a734811 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6aceded5 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6b0191ac ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x6b11e778 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x6b14ba86 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b39cb56 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x6b544262 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x6b5b8bed i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x6b5e8917 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6bc282f4 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x6bd5c029 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x6bdcc53f usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c23e255 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6c2718cd security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x6c37ecd7 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x6c4746d4 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6c9dd68d usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x6ccf3908 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x6d21106b crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d350b2f hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6d3eb545 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x6d81cce6 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6de65839 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x6e090c1c adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x6e0a0ff7 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x6e21c667 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e782c23 iomap_create_wc +EXPORT_SYMBOL_GPL vmlinux 0x6eb14ac3 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x6ecbe3cb rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x6f18b9bc raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f7fe3d9 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6f960777 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x6f9b3a85 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x6fb44514 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x6fbc8d5a sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffe2289 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x700d2514 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x703ab0e2 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x70722d34 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x708d9a61 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x709aa6de sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x70b6f30f regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x70bf594c get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x7108bd7a devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x713c98ba cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71c19e17 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x7239f973 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x725375e2 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x727a12c2 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x727c5a50 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7285f84f unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7298a9c7 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x729db157 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x72e1f5cf ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x7362503d tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x73a12584 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73d75d59 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x7409614b fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x744b49dc ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x7494e0b0 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x75098246 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x755671f5 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7561f86d scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x757f9af7 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75c3ff9d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75f11416 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x76051dc3 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x763f3374 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x77a56ebc __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x77dd3a75 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77ec5a3d dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0x7860a857 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x786fc9f4 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x78bd0c8f fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x78ceab93 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x7918dd86 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x795fba0e debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x79af42e7 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x79b68085 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x79cf2087 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x79dbaf75 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7a108be4 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x7a42a27d ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x7a4455d8 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a59dc84 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a5a41fc spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x7aa0ea8a invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b118a94 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b21b106 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x7b3bb2bf inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7b765780 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x7b84aa9f usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x7bbc21c6 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x7c47b89d iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x7c6f17bb pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x7cfc5855 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7d413cf6 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dafe996 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e63e1aa __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e74e5a7 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x7e9966ff i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7eb94839 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7eef44e5 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f52b686 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x7f668fcb __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x7f941492 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x7fa7251b transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x7fb11b66 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x7fbc21ce input_class +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff68292 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x7ffa3247 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x7ffcf710 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x800acd5c single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x802adbb1 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x806f41d7 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x807c6ab5 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x8086f62e crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x808cfd3b ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x80f2d215 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x814269f1 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x8147d289 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81633c9f sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x81e91943 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x824fbbf8 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x82878d23 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8289b5fe platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x829c38a5 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82e15f9c ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x82f6e8dc gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x832e27eb wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x834c137a __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x8393a468 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x83ca05db adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8429e610 device_add +EXPORT_SYMBOL_GPL vmlinux 0x842ad230 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x84418924 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x846131f2 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x84752abc get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x849e127b input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x84b21ebe usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x84e68487 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x84eaf503 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x85237354 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x85312636 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8551427c sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x8559458c spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x8561dee2 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x8570e12c tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x8596bb4d cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85ce7b35 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85e7aa30 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x85f28a41 css_id +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86c54687 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x87184bc5 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x876d67d1 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x877d00b7 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x87d88e0e __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x87e3c4ab kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x87e49d73 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x87f5576d inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x880d7c67 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x88200f3c cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x88213ebc acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x883a6ec0 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x886736fc olpc_platform_info +EXPORT_SYMBOL_GPL vmlinux 0x88751afc tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x8887dc93 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x8899ea31 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88c31763 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x88d2db32 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x88f9a4b9 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x8906e169 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x891e2793 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x892e4d19 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x8952cbc9 inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x897a84d5 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x89bd5935 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x89de0223 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x8a145624 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x8a4b59eb usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8aa2c0ef sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x8aeaabec regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x8aeb20e2 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b89ddc9 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x8b8cade1 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8bc658da __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8bc6ef7c blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c180e28 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x8c1f02f7 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8c9cde0a regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8cb09009 get_device +EXPORT_SYMBOL_GPL vmlinux 0x8cd48281 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x8cfbe50a blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x8d17edb0 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x8d261a43 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x8d789e4a crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x8d9441f5 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x8dd7878f ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x8de81b1a elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8dfba04b usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x8e17f064 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x8e745755 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x8ea63ac2 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f0bc2d4 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8f1c3978 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f79c003 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x8f8b3597 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x8f9d3c63 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fd6f219 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x8ff724e7 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x9029f508 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x906dce50 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x9071d22e regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x90909971 __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90ad84b2 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x90d9fe38 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x90dd99db class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x90f6faeb crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x91209ff4 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9182c7b4 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x91cd581e debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x91cf9839 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x91d11bd7 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x91e1df36 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x9261bcf4 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x92b1edb6 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x92bb8bce sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92daffda devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x92ffa5e0 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x937c806c driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93efad44 acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0x9421cc9e inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x94578fcc dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x945b3813 dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x949307d9 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x94a03241 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x950e60e5 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x952aecc8 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x9540e489 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9575e0ad regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x958b8743 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x95be011f aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x95fdd666 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x95fe72e1 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x96acd913 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x96b6fc78 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96df9e98 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x97c3cba1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97e37f80 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x986c30b5 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x98b5f366 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x99173101 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x991938a4 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x99508d47 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x9955b9fc skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x995c29d4 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x999beddb virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x99a00aa5 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x99d265e7 user_update +EXPORT_SYMBOL_GPL vmlinux 0x99d3c738 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x99d9c39a hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a7f6b65 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x9a96d7b5 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x9a980aa6 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x9aadf1f5 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b08c4e4 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b09447a kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x9b1434ee __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x9b18ada4 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x9b1aa898 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x9b61b91d __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x9b74e1aa xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x9b829ea9 device_del +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bd4a35f ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c37c9d3 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x9c7a8475 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cccfb84 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9cd402a1 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x9cde6cba led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x9cf6a718 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d08feda crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d9926c6 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x9dce2bd1 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9ed9b2d8 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x9edebbd3 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x9f30bb99 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9fc778f4 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa04abb62 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xa0c15583 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa109c2fc unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xa138fdc2 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xa14c1ebb sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xa1c07bdb crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa1f82a2a ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xa2049d2e tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xa2054d02 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa22cadbf pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xa261b280 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xa2e6034c sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa2edd8af fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa36c6890 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xa3934f44 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xa3cbea12 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xa3e117bb wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4873fb0 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa4a4fd45 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xa4ac3e94 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xa5413fb1 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xa554d354 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa58cb0c8 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xa5ac5783 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5cf27f2 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f5c5fd ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xa60c4dd4 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6317905 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xa6a77782 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa6c4f79f dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xa6d390e3 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xa74fcad8 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xa7a30978 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xa7dcf940 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xa7fa52a1 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xa8348112 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xa835a3d0 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8bc256f transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xa8c52648 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa8fd8e10 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa913b535 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xa9322df3 tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0xa95a4634 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa18c0d2 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaadddf21 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xaafc598b acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab36b641 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xaba3f237 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabe41e93 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xabea67d3 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xac1898da ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xac1a0e9a proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xac23ec10 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xacd01873 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xace4d0d9 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf21f7b acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0xacf397c6 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xacf7646c tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xad032a4e kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad33f9f6 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad70163d regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xadbcabfc attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae4dcc56 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xaec9f596 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xaef8693c rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xaeffc1c3 inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0xaf3c5262 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xaf98fc75 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0xb070a9da pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xb07d8d7d scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb0e9a1d1 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb1346a56 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xb15513a3 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xb16572d9 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xb16cd385 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1a343f8 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1b8245a regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xb1efea46 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xb28bb43e blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xb2b5bba9 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb2d56c15 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0xb3203d3a register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xb32184e9 __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb344530a get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb427dd96 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xb42e7cd5 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xb441e195 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xb457a6fd device_create +EXPORT_SYMBOL_GPL vmlinux 0xb459682c inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xb4d81e45 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4e4930a page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb53d97ea pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0xb561368b tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xb56ad35e tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb59f443b pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5d123d0 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb5e806a7 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb65971af blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xb65ccd96 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b3040b power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb6bc49a9 __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xb6d0cb07 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xb6d2407b ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xb6f7cbd1 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb7066790 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb71ea8a7 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb722046b pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb78a3250 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7e5f61b ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xb7ef9e2d tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb855c683 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xb856a12a part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xb85b812e ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb86386ca sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xb8a523fe device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb8a81486 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xb900d237 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb92f8a8f ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xb953a72d tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xb992338b input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b0729f usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb9d91ff5 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xb9e074c5 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xb9e7c502 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba0f8cf7 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xba20b668 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xba55bed9 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xba5a000d pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xbad68aaf device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbafedc85 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb05cf26 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb42d725 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xbb7b9af2 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xbb88f530 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xbb9af0c4 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbc8f661e usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xbce836dd cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xbd0855f0 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xbd1da2bc usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xbd253e8f device_register +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd50cffd crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xbd5f0337 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xbd62f80e usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xbd7f658e scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3d5a92 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xbe598c8c pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xbe5da928 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbe5feb5e crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbe6bd233 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xbe78519b crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbeb4be39 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xbec28f4a vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xbf13a91d perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf516388 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xbf65f520 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xbfa30db9 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0xbfaaa924 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xbfe0365b ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xc0011767 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xc0019fd7 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc09fe9e9 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c3bc45 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xc0db8148 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc0de98ec flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc1343961 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xc15b71c7 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17bdc7a ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xc18783d1 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xc1b48f03 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc22bec52 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xc241da40 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xc24cbf27 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc2afd1fe inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xc2d49b2f debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2de6ff2 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36828a0 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3aab0e3 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xc3de83ae ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xc3f55520 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xc412e9af regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xc414c4b3 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xc45c826e ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc48e8dcc ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0xc4b5fc3f pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xc4f10273 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xc4f1bc86 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xc4fe5016 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc5ca7ff7 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0xc5e991e1 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xc5f2b7d1 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6200c10 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xc623ad07 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xc6910efd crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xc6928223 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xc6afac79 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xc6c4bebd ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xc6f30e4c wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xc710027c virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0xc716711c driver_find +EXPORT_SYMBOL_GPL vmlinux 0xc71e23db crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xc783cd6a disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc78f00f7 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc7c68701 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xc840b6b7 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87c48cb sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc935f353 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9522074 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc975b34c xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xc977b359 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xc97e4596 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xc98a050c init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xc999f9ea ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fe9dac scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xc9fed8fd ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xca4928b3 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xca59a4e6 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcab30704 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac01737 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xcb611ee0 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcb74df3b __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbee81ee regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xcc144b98 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcc158479 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc5338e2 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc7e92a1 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xccbbc066 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xccccb1a1 css_depth +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcce0d57f __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xccee438a xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xcd0dbfe9 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xcd2e3d55 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xcd91b37c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xcd9c1ce6 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xcda744e3 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xcda828ba apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde3a68c cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xcde66cae usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce7c20be hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0xcea25a7e __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xcedd6108 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xceed1ffa spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xceed97a0 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xcf418f07 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xcf4fa24b inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xcf60a779 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfad843a sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfd0ce91 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xcfd80387 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xcff6d41c class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xcffd42bc generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xd02b2932 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xd02f1428 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd041f8fd rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xd076cf9c device_move +EXPORT_SYMBOL_GPL vmlinux 0xd0828785 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xd0de4102 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xd12ac59b olpc_ec_cmd +EXPORT_SYMBOL_GPL vmlinux 0xd14ae3de acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd179c864 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xd1947955 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xd1967adc __class_register +EXPORT_SYMBOL_GPL vmlinux 0xd1af7d9a sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xd1b14798 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1dfecb5 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xd210fff4 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd2442616 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd26c190d raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd26fb31c crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2d1312d raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xd2eacb61 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xd2f66259 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd32191b6 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd36c5dd8 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xd3dc2756 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd3ded567 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3e54a15 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xd405a2d9 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xd428bf2d usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xd43a7bef __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xd4593d03 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xd47dfc90 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xd49a4575 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xd4b54862 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xd4d45ed8 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xd544e902 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0xd57752af rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd57f3254 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xd5873e63 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xd5b2b196 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xd5c7a0f3 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5eb7b01 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xd608fa9e xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xd6734e99 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xd695549b ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xd6baf24c class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xd6c2c962 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xd6e468f6 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd752370e power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd774f6b1 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd79c2028 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd7a1e516 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7d9e460 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0xd832fa3b devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd888c0b5 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xd88fb74e aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xd8e2a664 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd93487d8 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd940c2ff rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xd94b2dd8 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd96b1bc9 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xd9813747 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0xd9b433ad dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xd9fb79dd register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda513e7e clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xda526a81 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xda5d0d38 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xdac984a4 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb59816b usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xdb806c7a __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xdb9d05ea ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdbb93115 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xdbba098e usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xdbc2c651 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xdbdafdd3 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xdbeb5052 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xdbeff2c3 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xdbfc60f3 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc13a1b0 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xdc1f1152 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xdc347d24 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdc8e963d alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xdcc4948a nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xdcd110de dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xdcf8529d tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xdd20fb08 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xdd4051c1 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xdd7ee079 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xddced95d bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde4f3a40 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xde58934e regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xde5e8e24 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xdea7d3ad unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xdec07201 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdec78581 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xded39379 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xdfd834af shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xdfeaa95a iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe016e5d0 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xe0265d0f fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xe02f3ce6 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xe046ab33 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xe04d7866 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xe065f21c d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xe06a47f7 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe08aa039 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0f25327 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xe1252860 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xe153fbc8 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xe1541a10 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xe1568d9c erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0xe1cc0ad7 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xe1d02782 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0xe263927b tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xe2838d16 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2b0f818 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe2bd7bd5 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xe2dd24a2 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xe333261c ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3390f17 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe36ece17 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe45115c1 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xe48806fd tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe4e37ebc dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xe4ec058e pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe5066adf tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xe50e807c ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe51ce135 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe537cdf2 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xe589edbf crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe5a3e6b4 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xe5c2a2f6 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xe5cf6d99 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe68fdc03 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe723e1d0 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe72e5bd7 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xe7499284 user_match +EXPORT_SYMBOL_GPL vmlinux 0xe7738335 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xe79b9138 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xe7af27b9 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe860d2a3 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe89c4835 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xe89f159f ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xe8cf07eb power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xe8e9c6ba usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe95e9608 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xe9f1ddf3 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea1ed2f4 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xea300a66 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xea3dc96d inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea6bdc28 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xea91e68a show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xeaa609cb ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xead6c181 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb04e47a ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xeb186333 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xeb2d6499 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xeb347905 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xeb36875b md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xeb584552 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xeb5b884b crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xebb2b641 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xebe3bd6c inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xec09a4d5 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec317f8c seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xec64438f skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xed036656 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xed320806 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedbf0078 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee2fa378 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xee314aa4 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xee4aad8a i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xee8dbb41 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xeefd53e2 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xef0369d0 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xef09e3f5 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef229245 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xef3c6674 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef8a5690 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xefd0f7a1 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xf01d2b0e pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf06a2bf4 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf0ae740d scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xf123f373 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xf12b3eed crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf15b755d dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0xf1665efa tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf191adb3 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b92bc7 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0xf240c6d8 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf2b092c2 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xf2ed047e raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf2fea924 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf33a32a1 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf3622de1 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf38ad7bc skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b7cc25 platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3e93205 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xf3f63691 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xf41b93c4 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xf45565f5 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xf48c6f67 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a83a93 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xf4bfeb87 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xf4c21482 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xf4c2187e ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xf4c44750 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5553651 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xf56bb5a5 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf595025e cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5f26ece fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6b6a1ff usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xf6e5f086 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf750c61a ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xf754dd6f vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xf76565cf tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf79b48ef n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7a688c6 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xf7ea74c4 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xf8070021 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf83cf850 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xf8669678 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xf87d73e8 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf918b0bc sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xf9259ca3 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xf92f3346 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xf9369486 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xf953c2ec queue_work +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf97a8ac8 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ac3b23 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9f5365e dm_put +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa161d2e mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa2f066d usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xfa6df829 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xfa7375b4 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0xfad6640e rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xfae2beb8 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xfaeae08f ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb732d35 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xfb925966 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0xfb93fe7b __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xfbce6b77 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfbfc12e2 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xfc00e02e print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xfc0ff53f device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xfc439066 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xfc48d7ee usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfccad881 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xfd1a0f4d apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xfd28969f get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xfd3bd949 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd5b065e ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xfd5d9b85 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe06f584 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xfe2eaabf xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xfe36783d debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xfe3fb907 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff15cb1a ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xff219c02 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5caafb ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xff918aab platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xff9501b7 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xff97a6ac dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffbc4c5a transport_configure_device --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/i386/virtual.modules +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/i386/virtual.modules @@ -0,0 +1,492 @@ +8021q +8139cp +8139too +8390 +acpi_pad +acpiphp +act_gact +act_ipt +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +aes_generic +aes-i586 +af_802154 +af_key +af-rxrpc +ah4 +ah6 +ahci +ansi_cprng +anubis +apm +appletalk +arc4 +arptable_filter +arp_tables +arpt_mangle +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +atm +authenc +ax25 +binfmt_misc +blowfish +bonding +br2684 +bridge +bsd_comp +btrfs +BusLogic +camellia +can +can-bcm +can-raw +cast5 +cast6 +ccm +cfg80211 +cifs +cirrusfb +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +configfs +cpuid +cpu-notifier-error-inject +crc32c +crc32c-intel +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +ctr +cts +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +decnet +deflate +des_generic +dm-crypt +dm-queue-length +dm-service-time +dm-zero +dn_rtmsg +dummy +e1000 +e1000e +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +econet +einj +em_cmp +em_meta +em_nbyte +em_text +em_u32 +e_powersaver +eql +esp4 +esp6 +evbug +evtchn +exportfs +fat +faulty +fb_sys_fops +fcrypt +floppy +gameport +garp +gcm +gf128mul +ghash-generic +ghes +hangcheck-timer +hed +ieee802154 +ifb +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipcomp +ipcomp6 +ipddp +ip_gre +ipip +ip_queue +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipx +ircomm +ircomm-tty +irda +irlan +irnet +iscsi_tcp +iscsi_trgt +isofs +joydev +khazad +lapb +lec +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libcrc32c +libiscsi +libiscsi_tcp +libsas +linear +llc2 +lp +lru_cache +lrw +lzo +lzo_compress +mac80211 +mce-inject +mce-xeon75xx +md4 +michael_mic +microcode +mii +mpoa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msr +multipath +nbd +ne2k-pci +netconsole +netrom +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nf_tproxy_core +nvram +oprofile +output +p4-clockmod +p8023 +parport +parport_pc +pcbc +pcc-cpufreq +pcnet32 +pcrypt +phonet +pktgen +pn_pep +power_meter +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +psmouse +qla1280 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +raw +reed_solomon +rmd128 +rmd160 +rmd256 +rmd320 +rose +rxkad +salsa20_generic +salsa20-i586 +sch_atm +sch_cbq +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_multiq +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_wait_scan +sctp +sctp_probe +scx200 +seed +seqiv +serio_raw +serpent +serport +sha1_generic +sha256_generic +sha512_generic +sit +slip +smbfs +snd +snd-ens1370 +snd-hrtimer +snd-hwdep +snd-page-alloc +snd-pcm +snd-pcsp +snd-rawmidi +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-timer +softdog +soundcore +squashfs +stp +syscopyarea +sysfillrect +sysimgblt +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tea +tgr192 +tipc +ts_bm +ts_fsm +ts_kmp +tulip +tunnel4 +tunnel6 +twofish +twofish_common +twofish-i586 +ufs +usb-storage +usbtouchscreen +veth +vfat +vga16fb +vgastate +video +virtio_balloon +vmac +vmw_pvscsi +vmxnet3 +wanrouter +wp512 +x25 +xcbc +xen-fbfront +xenfs +xen-kbdfront +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xor +x_tables +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_iprange +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +zlib +zlib_deflate --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/i386/generic-pae +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/i386/generic-pae @@ -0,0 +1,11279 @@ +EXPORT_SYMBOL arch/x86/kernel/scx200 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/kernel/scx200 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/kernel/scx200 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/kernel/scx200 0x907665bd scx200_cb_base +EXPORT_SYMBOL arch/x86/kvm/kvm 0xcf17816c kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0xead78233 kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x0d6b6ed9 acpi_video_get_edid +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/atm/suni 0x20665ee9 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x91b4d415 uPD98402_init +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x8fd38ed6 drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xd3526f9b drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/paride/paride 0x3031be2d pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x4b1eb683 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x5c0e445a paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x60af30ce paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x68db36f8 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xa3a713ea pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xb1c8b519 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xbc11eb80 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xbe84eabe pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xcc09c219 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xcef425dc pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xf17cdd20 pi_init +EXPORT_SYMBOL drivers/char/agp/agpgart 0x02d9f122 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0436f0f0 agp_flush_chipset +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1a3f40b6 agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x24b127b6 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3321ba50 agp_generic_alloc_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0x379dc7cf agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3a69c37e agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3b433d57 get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x584f69e1 agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5e87b4c6 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6c849a38 agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7d26d020 agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7df19c37 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7efa7853 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7fc751a6 agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8f96d999 agp_generic_destroy_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0x900eb960 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x997c27aa agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9b42f10d agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9dc1570f agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9e67c823 agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xacddf528 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0xae2026aa agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xae3c5604 agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb3ee0848 agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb7f34adf agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc17ea108 agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xcf723525 agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd44a2a9b agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd63dca3d agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd9899323 agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0xdcbc8f08 agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde154916 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL drivers/char/agp/intel-agp 0xfcc4aec2 intel_max_stolen +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x003fd05d ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x07545043 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x11c32231 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2331f6c2 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2597b852 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x276ec858 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2dc08802 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3951cb98 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x42e3a87f ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4969309d ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x59265f68 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x84822b51 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8cf3cd42 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x98c236c2 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa6ab1bad ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xac061c56 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb6ece679 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb825959a ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcbcb90c7 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd2002f27 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd2d78128 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xead98a25 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xee47bb61 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/nsc_gpio 0x7d7188f6 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0xe5cfe69a nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0xeb65c4c5 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/edac/edac_core 0x16faa967 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0x5523b580 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0x5b4c59d2 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x09534a1c fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1608c975 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x316243b3 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x50b528b1 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x59310571 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5eb3a7bc fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6602484c fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6e736545 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7d5951a1 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7df38df9 fw_core_initiate_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e886dd3 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x87dd3ef7 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x881c3ce5 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90c97623 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x98ee1b3f fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9b4f6d0d fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb1a3cf54 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbc3763fb fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc1c1d034 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc86a885f fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xeadcd089 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xff7fa170 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xff91cce5 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0038cfaf drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0076cfc8 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03f99e60 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07a268bc drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c1fd8b5 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c9a56cf drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1134f235 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12801032 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16835cd0 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16ca0c87 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17a44caa drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x190469ae drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x193a0e4b drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a7e44ed drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b5c898f drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1bb46114 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1befd1cf drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e8d0a02 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20b1ddd5 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2276f82b drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x252b2347 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x257a1fe7 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2718fed6 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cae2784 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d559c0b drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2df21f5a drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30dbb113 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x347e0d13 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x349d6e85 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3824197c drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38b95ebc drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a00702e drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c5329f6 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c83e6a7 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45463f99 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46fc406f drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4887e4f8 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4adc6528 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c345627 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4cb75795 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x524c48fc drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52bd1967 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53861a23 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55867d58 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58814761 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ac2235a drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65d6f05a drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67f99d1a drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6886212b drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x688b7bb6 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cb64ef2 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2460ef drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72556926 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72b8e553 drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0x732dbed2 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7662b018 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78d12ffb drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b82a7ff drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e81f61d drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81851647 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8288c0d9 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82d1daa0 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83dc9c6f drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8471aec0 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88bc2f92 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bb685c7 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d46643b drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e04ccd0 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e5c8f07 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f5e95ad drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90c3db37 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91a019e6 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x926d74dd drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9567473e drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97ee509d drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bda3e1a drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d4cf78b drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa22d4cfd drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa381f501 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4b0b127 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4f48a7c drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac019966 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf24646d drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb09c0a1f drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2e5ee6c drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5b75cf7 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5cb505e drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5fdae35 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6e85c64 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb75ff4c2 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb84de639 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95a69db drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf8746d3 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1b03344 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc568f1bc drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc787229f drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc833d9b4 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc935130b drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc97912bf drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca5d284e drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf0172eb drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0b93814 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd54321b8 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5d34f40 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd623d5cc drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd73d8c21 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd85f9e26 drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9bdb1e9 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf585a39 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe39f7c10 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe527bc6c drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecfafe55 drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed4105da drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee5e8a77 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefbf7e57 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2d47940 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4ca1876 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf54588cf drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6843086 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf918ef97 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf936eaaf drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf972e21d drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00e94d48 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1fb0295e drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26ef6ffc drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x29a5011c drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33e35d16 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4af9b3bf drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x511c2625 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5788e23e drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c35e858 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6727cca2 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x67e7e2bd drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6848a3c8 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69285034 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a9ebd36 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x74a46f76 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c537ae8 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8d6e63bc drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9eff840d drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa1d84d47 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb0330cb0 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb82e8b67 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbac2f25e drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdea4b58a drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe8592319 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xed0d090b drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xefc6caa6 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf011e573 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf626d6eb i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b7a36f2 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1605af07 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17d02c4b ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1bc9d0c5 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c4d494d ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ff54ff0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x207df5f4 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266d8a60 ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a5993b9 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2ae5dc9e ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36e9575d ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38c544b0 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4429ac15 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50c16cb9 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5115f264 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53547e7c ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ac375a3 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cb4dd1a ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61f52e5e ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62de121c ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x74cba996 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7565a34e ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7578ca4e ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83c2d310 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86f1f2ef ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e62fa47 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x994ec0dc ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b7af728 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9bfc10f5 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa26d9101 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2da1049 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb760b102 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5cca073 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc635079e ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca9cdf2c ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcadde121 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd65db9a3 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd66ba4df ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7ae7744 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xda96d584 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe142309d ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe40a0b3a ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4af4f1e ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf011c0ac ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf787fff6 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe61f929 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x1ba2a3ca i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xe1b75444 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x7573d562 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xebbe8a7c i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xf397ea51 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xfed6b13a amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0335818d hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x036630b7 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x09d56759 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0dde5fa9 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1178aa32 hpsb_lock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x12b46bdd hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x17aa483a hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1b54c3c1 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x21113156 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x22811077 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x230f00fe hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2581a518 hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x29f9804e hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3354bd76 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3753dd4e hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37dd2d66 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3927d0c2 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3d4a02d5 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3fdcd598 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x48b03df5 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4d3ae52e hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4f8329ea hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4fca151f hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x50e79f38 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x544f9e0a hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x54fa43ea hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5e1306f4 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x61269f2f hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x627da5e4 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x64164e80 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6650e3b2 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b39208f hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6e3d2a2b hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x70d8b4ea hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x74ef2a05 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x79179094 hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x85e95432 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8b3a113a hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8e3eee04 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x909666dc hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x92910158 hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9406e742 hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x951a6603 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9817acfe hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9a126dea hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa21c1c81 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa2721751 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa9eaea8c hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaa15c113 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xac08d2c3 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaf1dd779 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbf758c7a hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc1bbfbbd hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd30fe2fb dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdbdcfdd1 hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xddadee15 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe4e2132e hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe59ac40e hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea156e7f hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf0702d66 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3ebb9cd hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfe82f977 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfea91d46 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x264536f9 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x84e8675c ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xdcff5332 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc123bfa0 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x09cf4264 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0c1547a9 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0e706442 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x30eed11b ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3adc6a24 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4af2e339 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4b83482a ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x60891637 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x645e7d32 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6512ed24 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x734bfefc ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x77360723 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x78392be0 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x88b149a9 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb109edc1 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc0da16dd ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdd18a71b ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03b44d57 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x069a5094 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09eebbf8 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c86b29e ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ca1f8a9 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1202eed8 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x13636e30 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x13b943f1 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14ba0cb5 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14ea0889 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a432122 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c6ccbdf ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20f6adc2 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2348c073 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ab3348d ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2dd0977c ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e239bed ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f1fd382 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2feed929 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33220043 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x366b91a0 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3aa9518c ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bf62435 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4eaf5d30 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51676f72 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x536a80db ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53d7971d ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54371247 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55b9e362 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ac1383d ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bfbdfef ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5cb88cbf ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60461f92 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x613649a5 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6577ca22 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6c887814 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6fe27de3 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7032125a ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73328b03 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79cae3d3 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e84c3b5 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87837f62 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8795c569 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f24fddd ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x918d4fb4 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94a7193e ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x958f79f8 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x992707ba ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9df7e455 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9eaf6664 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa073d6a9 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac9f31f1 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaebb8d71 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4b290bd ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4b30823 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbc8d59c9 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6978203 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3530c16 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd934a6e8 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdb463a7c ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe076519c ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7c57592 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef9845fc ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2b27eef ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6c92f85 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfae5c039 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0b492a99 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0c322d91 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x13ebb2f3 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1fa04cfd ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x28226f13 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa46423e6 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa5562b87 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbde69df7 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe4254473 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe9779aa9 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xeee399fb ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xef73bf89 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x25548afe ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x65b6446d ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x96b9bfbd ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9d13e0f1 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xcb6d3955 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf865d497 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfafdc3bb ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2ea3528f iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x31d4724d iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x33bbfd39 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3681190a iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x554cf99c iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5df6044a iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbb0aab32 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xec63636b iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0230debc rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x024f844e rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0ad68ff0 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x237f0c6d rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x734f9288 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa1a315a6 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa6c35e80 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xac5dd4ad rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaf5a5021 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb4793a56 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb97f4624 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbe5cae8d rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbe7b3476 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbee3665a rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc91f574a rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc9f42fea rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xced3e827 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdf0deb51 rdma_join_multicast +EXPORT_SYMBOL drivers/input/gameport/gameport 0x165e90b1 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x17474bbc gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1d3d003e gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2bce2a88 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x66441e45 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa837b312 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe43239bd gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xefb18f80 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf8a1e714 gameport_close +EXPORT_SYMBOL drivers/input/input-polldev 0x71ff2219 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x7580e976 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x97de71ee input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa4ed376b input_unregister_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x1c62d07e ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7a0b2edf ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb01d06f6 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd0a6722d ad714x_enable +EXPORT_SYMBOL drivers/input/sparse-keymap 0x268eaecc sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4e3a5c40 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x63e05237 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x8e36c0b4 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xed5f5862 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf4da1664 sparse_keymap_setup +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x34dfe199 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x998a958d capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x242e6faa capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x26d917eb capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x41fc949d capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x67730edb capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7c4cdaf8 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x890d97a7 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x93b20544 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe266cfb7 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe6891f87 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfa19d65e capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x09710ae4 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1534d834 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x18d01287 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2473ec36 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x62b9786c b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x685a1af8 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x93d02251 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa496858e avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa5d36256 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa70987a1 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad248e03 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbe35ed71 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc34ef124 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdf58b30a b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe8ad48af b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x195ba824 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3119b2a0 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x883daa20 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa077c834 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa3dd5249 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc81ebb8a b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xedc0cd28 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf46176d4 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf92b8dfd b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x6f4cdca6 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7cae5b19 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xacd62ce7 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe8c65bdd mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xfb1f2460 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x77b178f1 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x84fea2d7 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x5ebf9d62 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f9a946c isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4339512d isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x99333bb3 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa918d67a isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xfb195685 isac_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x5db5ee88 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x7df713e4 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xcb929035 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x019d9a71 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x06f81079 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0cc21d3c recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1126a6a4 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x17cff439 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1e0bfc00 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x22ff2505 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x23d4b553 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3c396270 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3d886172 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x473f6112 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4e049106 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x51048418 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x51dfdeaf mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x538aec24 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x770544ec mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7be018c9 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x88e2f9cc recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x974e6be4 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa1c431fa mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc4b27f07 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf1c019bc recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 0x2b467b4c ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/ir-core 0xaa90c553 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x77fa52fd lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xa51cb95c lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xa634fa61 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xadf05531 lirc_get_pdata +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xd9509379 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xde381f54 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xff36afa8 lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xff9b2467 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xb6db194e max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x01195a6d mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xbb2beb5f mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x0b9321c6 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0xd44bf946 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xcec49004 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x76fcd8e1 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0xb33e34ec xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x9a17b201 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x01495ca2 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x089eefdd flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x091d09c3 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2d30460e flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x391a8225 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x516d00e9 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x59be3cf1 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x67bfc8b4 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6f5542a2 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x771ae431 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8ebdfa6d flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9d4194df flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa3c4a635 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb4e32b61 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbd26b729 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbfebc08f flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc12ba152 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc351c3d2 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcfc1675e flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdc08b471 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x4c022a3e bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x7456161a bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xc2c7b043 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xe38cbff8 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x39b57fbd dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4772f6fc dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x53fca01b write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5d04fee4 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa05a4636 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa6a3c8ef dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xcc73c9ba dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd8702173 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf66c5a8a dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x6ab48634 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x05c966a9 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15203bf4 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x19620d3f dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1de5dde2 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2c202fc3 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3041ffec dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3afdccd9 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5dd6100d dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x61da051e dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x63c61a2d dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x64dd2d78 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x68540263 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x688c2da8 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6c2658dd dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x72340135 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x72ebe4f0 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x79472da2 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a7f05b dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x863bf410 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88dffd14 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b10811 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x968a8a1a dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x98e0db8e dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9e889bd9 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa0068b38 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa0ffffca dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2e30721 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd839e0b2 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xda527c4c dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xea03143f dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf36feb90 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf764cbf8 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc3b495c dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xff00fe9f dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0eb81827 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x84d98ab7 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x854995df dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x9f0f737a dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa15a9dd2 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xc08df4b5 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd2c020be dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x82936e9d af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x21353af3 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x441c6eb9 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5301e7c4 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x58810bcf dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x72c88dcb dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7c22a3cd dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7dbecf94 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x87b2659a dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa1d55825 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xaa9df49f dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe55a87db dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x52c5d4ca af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xafd49c75 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x3c650c68 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xba7aa51d bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xdee3e79f cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x7866b529 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x358947cc cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x5217af67 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x918080b2 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x5e0c5305 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x072ee58c cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x604fca5c cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x0598a35f dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x64b67870 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x9ac7777c dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xcd2739e0 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xdb23b092 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x21f16e72 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x30820e81 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3ab78c41 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x799b660a dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8dfa2643 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x91b6ebfd dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xa00402f7 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb4f88e7c dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x5b724604 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x4c645954 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x7d5d2800 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8c595327 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xbdd831be dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcc816b24 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf2636578 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x5e9dc793 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xd3beb257 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0bd5e77e dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1215ffb7 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2d525a03 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5387ca16 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5e197a43 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8e72389e dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x94135f11 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf8e79952 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x49a79276 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5f3aa4df dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x6e954e0b dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x74564520 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb08ead05 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb251d9a3 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcbad619c dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd0069d74 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdea08314 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xef0d788b dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf93ca5fc dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x14818edb dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x75e3243f dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x86f3a179 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd6e54437 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x31a63e8c ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x3d8ec153 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x829a3624 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xa0a077bb isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x1d8cb926 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x1e251469 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xcbb4212b l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xefbc3fc8 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x9f815059 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x71831123 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xf379d1d7 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xfb3e6dd9 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x95e9a415 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xff686371 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x26b433f5 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x932b59b5 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x20df968b nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xf35d2057 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xb4cae51f or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xa0fdb0c0 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x59b4276e s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x41345838 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x4f2ef625 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0xb4489be0 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xb76641b1 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x85ee2ddb sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x0554a572 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x170bea25 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xe4e0a4d4 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xfab0c806 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x1e9c3faa stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xbc8b763c stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x2b79d42a stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x68c01e36 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xa53562d6 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xe920fd92 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x1f3a717e tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xb7d6333d tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0xaa4217e2 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xbe7ce454 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xd76dc5e8 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xa5d0c73a tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x90e66319 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xf7b7e8e3 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xdbe86f3e tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x536929a6 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xbb48e033 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x607586dd ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xda98a322 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x656366b5 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xaf531a97 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x4a4f1598 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xafcba8c6 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xc67e6f38 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xedb96ef2 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x5bd8554a bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xc58c45cd bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xf9bcfade bttv_sub_register +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x9a07b40a btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xf52b8760 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/cpia 0xbb784fbf cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cpia 0xd66bedfe cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x46ce8642 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x4dd46992 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x63c8d5fe cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x6f9e0e98 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x8ed347c5 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x10154c67 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x54bfad76 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x0b06df32 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x14b246bf vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x17e41589 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1e0c35dd cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1f602e11 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x2d750315 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa2ba6639 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa6df4b0a cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x132fdfd7 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x24fedbb8 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2b041881 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x7aae1dfd cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x9e287506 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf6b2a7f2 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x03edb282 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x05da1122 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x095a528a cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1b4d67fd cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1e00f8ad cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x21d4bbd3 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x35e68f56 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5781dacc cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x661f571f cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x72c77761 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x74e55386 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8c9ff124 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x948d32ee cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9bbb6478 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xaf72eb2f cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb4001bda cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xce0ae296 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd1b07c8b cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd3d0da57 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd706b378 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe0770992 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfcfe6cb3 cx88_newstation +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x822df49d em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xd4e8c727 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x0ff97597 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x173065ab gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x23e6cf5d gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x64500662 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8a60a747 gspca_get_i_frame +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8ade2304 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xca0b4aad gspca_disconnect +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4c4b2edd ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6d52bf66 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x8332edd7 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9a2bb577 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb10f5320 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc5aaaea8 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd34ee602 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd451b282 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe9b0b4b9 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf2628090 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf34646ba ivtv_api +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x136c5019 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x13d458bb saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x18b65fd9 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x239f67d8 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x430517bc saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x56028be8 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x68667db0 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x788a798b saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x986092cc saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa529c1d1 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb9c003b0 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe753d0eb saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x24d590ac soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x672cb583 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xcbfe2440 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0xecf449f8 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x3c66f889 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0x63eeedd0 tveeprom_read +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x3ac1fb4b usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x531981e1 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x586c9010 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x7248fbf2 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x9462f9e8 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe9feba3f usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xcaecb343 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x97d4f654 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf296ba4d v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x0ebcb343 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x26892d83 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x8140958a v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xe5ecb4a3 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x0ef5541c videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1a8e08cb videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x475f62cc videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x5c0cdf3f videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x9ba1fde3 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xcfeb7d8a videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videodev 0x02d178d6 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x04b859ef video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3294b420 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0xa4973950 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xbace0ba8 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xdfc8db80 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xeb4a9b7f video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf8a94e2e video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0xff9117d5 video_unregister_device +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x0f04ff1a videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x15ef80ff videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xa7361cd2 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd8cc3561 videocodec_register +EXPORT_SYMBOL drivers/memstick/core/memstick 0x07537ed1 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1be061df memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1e35ab72 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7d719b49 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7deae0cc memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x82573cd1 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8dfe4223 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x98df8fb1 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xaed8c229 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb506e95e memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb6f66b20 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe8b2d393 memstick_free_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x01add9cc mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x02b437c6 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x07648a20 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1a24af14 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x20612d23 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2471c1d9 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2efbc5f9 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x348af6c7 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3a41223e mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3cd701f8 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4006c5b1 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x69cd3dd2 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6f4c2d01 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7af91f3f mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7b4bb1f7 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x85ef4b3d mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x88e86956 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x96d306c5 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9706b704 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9a62dda2 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa3d688e9 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa503d8b0 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc56a4b86 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc86ba841 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd6dd9a1d mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9626512 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6af114d mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf2b4974a mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3ac95ad mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x01db6b0d mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1960dc8d mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1fffbfee mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2632b3cc mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x30326712 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x313fa2c2 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4cf7effe mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x580ec7ad mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6e644dbf mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x756478e6 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x78c52adf mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c7f93d3 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8ea36a21 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x98b8f959 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa0fff7ed mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa2643e90 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaa784a7d mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb5a8b3c3 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb761d2b0 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc009d83d mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcc6adcdf mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd6f74302 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe0a7a234 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xedbbd019 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf077c8ab mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfdcee6b6 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x25e9c95a i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x26719be5 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2b1d74dc i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2fb91cd9 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x36b35a4a i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x471f7cfe i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x718e56d7 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7cd12d0e i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x86949dfb i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa47ffef1 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa550a967 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa82f5296 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb5195d21 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc715276a i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xce35f61a i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xced53cc4 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe2601cce i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe8252c0a i2o_msg_get_wait +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0be25113 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xb6a0f34c pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x0580e3ec mc13783_lock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x0aba27ca mc13783_reg_write +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x13a9e8b3 mc13783_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3d83752e mc13783_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x63d3ac31 mc13783_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x7560043b mc13783_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x9eedace8 mc13783_irq_status +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xae0eb6aa mc13783_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd0070cc7 mc13783_irq_free +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd557b639 mc13783_reg_read +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe01dc920 mc13783_irq_request +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xfc9b3f03 mc13783_unlock +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x5805fe3e ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xdc0d4b5c ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x557ce74f c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x9b0299f2 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x31b598b1 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x8b060f4b ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x1e5b67df tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x215700b4 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x25aca962 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x25cc72ea tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x26983577 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x35562f26 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x53f62718 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x57d8218f tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x66b4904e tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x69b5791a tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x9d43811b tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xe963d039 tifm_eject +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xc5c3ea81 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x4ba18899 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x67e49a37 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xc808052e cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x15a050fd register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x1901b9c7 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x43f8e6a1 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x741e7b31 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x04f90507 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x45e2f67f lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x549538e5 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x55fed277 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xdc6b3fb0 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x014d1f71 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xce689cbb mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x8143f9db nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb0d8cd87 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x15e869b9 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xd13f587f nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1f01bdf9 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x53830899 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5a34b03e flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xd6e0e6f5 onenand_addr +EXPORT_SYMBOL drivers/net/8390 0x061830af ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0x21635cff __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x6f25673d NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x78aa9726 ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0x929fef1e ei_close +EXPORT_SYMBOL drivers/net/8390 0xb1572095 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0xbb07e646 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xc85624bc ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xe69ea4e9 ei_open +EXPORT_SYMBOL drivers/net/8390 0xebdc67e9 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390p 0x1b2e21d8 eip_start_xmit +EXPORT_SYMBOL drivers/net/8390p 0x545f833e eip_set_multicast_list +EXPORT_SYMBOL drivers/net/8390p 0x751aba01 eip_tx_timeout +EXPORT_SYMBOL drivers/net/8390p 0x763ef0c9 NS8390p_init +EXPORT_SYMBOL drivers/net/8390p 0x91a03713 eip_poll +EXPORT_SYMBOL drivers/net/8390p 0xb663e226 eip_interrupt +EXPORT_SYMBOL drivers/net/8390p 0xc10b1f72 eip_close +EXPORT_SYMBOL drivers/net/8390p 0xc1fdf81b eip_open +EXPORT_SYMBOL drivers/net/8390p 0xd3ed0619 eip_get_stats +EXPORT_SYMBOL drivers/net/8390p 0xee6c7df2 __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/8390p 0xf7c8303c eip_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0529f334 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x19507376 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x279d1084 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x61add866 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x65264b38 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x773cf4a1 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x77ffdd03 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x81a62346 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc87aad84 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xccd0f755 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x39740bdd com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3ea94a24 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xdc84f461 com20020_check +EXPORT_SYMBOL drivers/net/bnx2 0x104facfb bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x1ce8ce90 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x0a157cd0 cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x008d79fb t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x06d99f6c cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2077b3de cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2b1385f7 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x37388c10 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3d8c982f t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x474f5e38 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4fb02628 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6bc1e45b cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6c7d02af cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa402cbb5 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb8411897 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd3f54cca t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xef327b0e cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf4aa3fd0 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfccd0c0d cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x05ab4ff6 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x111e59b5 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x132fa59c cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2b8d56ac cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x59c218c8 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5da9ad0c cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7b062d1e cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x82e48104 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x82fba091 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x9d124eb3 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa1cab11f cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xab0f0e9c cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xacce481f cxgb4_netdev_by_hwid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc626d172 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1d5d2e8d hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3285a917 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x55555b36 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x736c68d3 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xebe934b3 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x057da059 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1ff63814 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2eefcebb irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x438844a1 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6027efe0 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6701963a sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x743ee098 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb0000f04 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc68d6315 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd6f9734e sirdev_raw_write +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mii 0x237fd26f mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x857688a7 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x91bb3b5c mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xac4ced7e mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xb2b54a81 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xc073391a mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xc1f65358 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xd9818cfd mii_link_ok +EXPORT_SYMBOL drivers/net/pppox 0x8039fa6b pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x8b8b329b register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x8d2b691d pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x059f825c mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x64e56337 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x80d1394b tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa23c1b97 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbf23d680 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc7d94404 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x348faa42 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x370723aa detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x57ab80cc hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8b237471 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8faee978 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9e818238 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa14fb6fc hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xaf353065 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb68a8980 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb915f9be unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf6cb3c07 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/z85230 0x0de18576 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x0f899094 z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x17b07f15 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x2d2a065a z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0x4b803622 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x8f65cb67 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x9772a4c2 z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x98cb023b z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xa6cfd88c z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0xb4be483f z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xbf7b4ac5 z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0xcd8cfac6 z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xf0d10a84 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0xf2f9a687 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x7fd6ecdc i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x2d7ab7de stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x46b1688b reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xbebfa9de init_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5e217ef7 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6d440f75 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xde354d85 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xde77bf5d ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x17fa8bad ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x193b1a13 ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2d45c8a7 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x39638a36 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x80c1c705 ath9k_cmn_rx_skb_preprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8a4e0000 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9ff6fdc1 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02001072 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x021fa907 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02c4dae9 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09afd7c3 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b14d0a6 ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b7b44e6 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ec78d4b ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11d34ee7 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14afcaf5 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1594d356 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x173a5f05 ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b3d3cba ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1cb445cb ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1dab370e ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e115692 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24c9719b ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24cc4f4d ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x256a171f ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28ff8a3e ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c50e645 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d0fa024 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e9ea8bc ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x307db6b3 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31770f61 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37cad615 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d5841b9 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x41e053f1 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x41e43fb0 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bc710a7 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bd38e2f ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f1742d0 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f9ec2c3 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x563ce35b ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56741647 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x690564e6 ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a996a1b ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x703adc3f ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70d73617 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x713f3b2c ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71beb656 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71f51b33 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7380d39d ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76c220f5 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d7db928 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x825c1a38 ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x86b5adf3 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b35e578 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8da213a8 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x90b4fa3f ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9187c346 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93fbc965 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x956c0f54 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x970027ff ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97506415 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x975c16b1 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e541127 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3d314fa ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa97c0175 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad5462d7 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0612cb2 ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1d3d133 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3d9ad8b ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb807a6b2 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba9807f4 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe1ce323 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe9fbfe8 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb3f5855 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xced03461 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd015cd6c ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd47d0b41 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd94dbfe4 ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb25d4e0 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd820853 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xddecd68e ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe9eab977 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee457b91 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1037c76 ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2da53a5 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7c1dbbf ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa622ed1 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfbddf4a5 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfde63578 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/atmel 0x3a9d548d stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x711459aa atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x9069e73a init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x061008fe hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x09adfbad hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x10fc11a8 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x20f3e9c0 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27bf6ed5 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3e55861f hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4245b5a5 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x452f24b1 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x46241e4c hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x469579f8 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4e689ca7 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5f642031 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6271d34a hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x66ac702a hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x69a0a87f hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x70175db4 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9795bb29 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9d31dba5 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xab375e8d hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaeec44e8 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb02833ac hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc6010491 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xccbcf000 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xedc0a6f0 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf0cf8f8b prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x178e91bf libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x22eb0e0e libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x264f33be alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4624bfb5 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x56298dae free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x67295de6 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x69f19b34 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6f8fd5a8 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7343811e libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x753b7886 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x79ac11d7 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x822ff5a1 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8a995c29 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8e4cb4ac libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x944f8e17 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb35fde47 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb75ca391 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbc8d7a30 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe3da4588 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe48c2df5 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf6e774ee libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x004a8e67 iwl_dump_csr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x02533230 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x026e70c5 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03c8b3d7 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0691b93c iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0b65f09a iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0c6d49db iwlcore_eeprom_acquire_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0c7f7b09 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x10594b0e iwl_eeprom_check_version +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x11efdcd4 iwl_rx_missed_beacon_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19cc829e iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a1d874d iwl_good_plcp_health +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2250416a iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24b8e8d7 iwl_tt_exit_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2563fc14 iwl_chain_noise_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b2e58cc iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b5c051c iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2dc35b2a iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2e0eac5f iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3071e26d iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32b9d5af iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x33a6fc9b iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x352ae954 iwl_dump_fh +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3704071d iwl_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3a517247 iwl_set_hw_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c7cf928 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3ff88753 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x409dab61 iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42d81404 iwl_reset_run_time_calib +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4344e07b iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44599f47 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44cf0158 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x495beb51 iwl_restore_default_wep_keys +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a368e20 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4cac049d iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4df712cd iwl_setup_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ec4ad13 iwlcore_eeprom_release_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50fe8bed iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51cee037 iwl_reply_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x54a6475a iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x54f41b28 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5eaf2465 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ee9da3c iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5fd4fe8e iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x602a73e8 iwl_verify_ucode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6165520f iwl_free_tfds_in_queue +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x61c73fa0 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62edaf83 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x657d9ba3 iwl_sensitivity_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6764bee7 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x679d8a92 iwl_remove_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6817c962 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6870f3c1 iwlcore_eeprom_verify_signature +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x69c346a5 iwl_remove_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6bb24a06 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6bb2817e iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x73830f9a iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78d63b99 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7bbeebbe iwl_update_tkip_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7d26a4e9 iwl_sta_rx_agg_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ed4f78e iwl_tt_enter_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ff4fa59 iwl_sta_tx_modify_enable_tid +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x822507bc iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8282d9f7 iwl_tt_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x832b6f7d iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8384484a iwl_ht_enabled +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b2292eb iwl_set_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8cfbf952 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8eb84672 iwl_send_calib_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9167bc50 iwl_eeprom_get_mac +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92e9b77e iwl_rx_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x956d4b7c iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99e646b9 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9a6f206c iwl_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9f5f8960 iwl_sta_modify_ps_wake +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9f84001c iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa07ef43e iwl_tt_handler +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa3989c08 iwl_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa7f1681f iwl_set_rxon_chain +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac192316 iwl_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac4d9a88 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xafb46373 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb1ff8116 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb300eac8 iwl_tx_ant_restriction +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb47b27c6 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb57f7372 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6137b80 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb69b789e iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6dec78c iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xba6d8970 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbdd60fb7 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbe55d495 iwl_init_sensitivity +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbee68d19 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc06b1780 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc697e300 iwl_hw_detect +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd57718e iwl_sta_modify_sleep_tx_count +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcdcd5104 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xce8f0a66 iwl_sta_rx_agg_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd0a2916e iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2ac9f61 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd31f898c iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3747750 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd51d7121 iwl_tt_exit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd640fd26 iwl_calib_free_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd854307f iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc56a727 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc817ab2 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe07747fc iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe39f643a iwl_add_bssid_station +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe92eb09f iwl_mac_beacon_update +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xea5c8418 iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeb36789e iwlcore_eeprom_enhanced_txpower +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedf49f4a iwl_toggle_tx_ant +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf0d28e61 iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf22062ec iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf3058c4c iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf316e9e7 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf3d68833 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf61b07d1 iwl_set_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf6bb61a7 iwlcore_rts_tx_cmd_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa02c07d iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfab752eb iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfac4fdad iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfac50b01 iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfc020415 iwl_rf_kill_ct_config +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1c337d17 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4a301007 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x62ad32fe orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x67aaab53 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8416a6f7 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x846da30e orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8967fb50 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x899a1f4d orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8f0be31e orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcbc3f63b free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcdb0bcac __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdee800ad orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe10888af orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf197687c alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfa97f6c9 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfe31b3db orinoco_change_mtu +EXPORT_SYMBOL drivers/parport/parport 0x0b3216c0 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x0eb44dd5 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x221a1cc5 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x221aff20 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x25963b66 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x367d474b parport_read +EXPORT_SYMBOL drivers/parport/parport 0x40562346 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x4bec55e2 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4ff505c5 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x5e7cf4ab parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x5ebcfde3 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x71ae63fb parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x7bd3fa0b parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x7d08789c parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x7f20de76 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x8c87acc5 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x92e1441c parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa78f36a4 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xad20aa29 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xc56a888c parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xc9db4eac parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xcb07c0f8 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xcc5a740d parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xcf00ffe6 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xe1cad11f parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xf0405df7 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xf326b5f6 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xf88fbdf1 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xfd3dee1f parport_release +EXPORT_SYMBOL drivers/parport/parport 0xff200fba parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport_pc 0x1c0fb4f7 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x5106b774 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0225df5c pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x03a24286 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0c93b174 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2f522e81 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x58a5a2a0 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x61b0e57e __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x79a3315a pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8a84e0ab pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9c4b31a6 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xacf75fb0 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdacd172a pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdcdb1cd8 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdec507cd pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe2f3d2fe pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe5fb45c9 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xebca1354 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xffe6a478 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3aaedcac pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3e3ebb35 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3eb78182 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x44a2f6c0 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x77f59062 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8ebce89c pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x99f222bf pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbdb4356b pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdb1dafa1 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe5b35b4c pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x18883c2d pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x948e50fa pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x365fce37 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/scsi/53c700 0x176a8a96 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0x42aeef56 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x16d4040a fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4a93d4b9 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5999fa8d fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x743728b8 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7c113cac fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x84ab99fb fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9d0f5213 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e198a7c fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x19df64ee fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21779bd7 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2fab3c3c fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x33cf1517 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x38718f75 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3dbe5fca fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x409de143 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x422201c0 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4afcb07b fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5ce47736 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64275d71 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64b43022 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6770386d fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c235d12 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f7a909b fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x700b18ab fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x733f99e4 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x776cc966 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a2996bf fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e10d35e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9d27f230 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa14f7e0c fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6f67a88 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa972fbdc fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb047d0df fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb3be307e fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc4ff89f0 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc9ad20b7 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb3bf547 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce03fe81 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6dd6e11 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd7c7fd6a fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd9abb877 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde9977af fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe1610a74 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2610665 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xefe13cf1 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf105d0dd fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf64d4e94 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfbec0c1b fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfefdcb43 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x7c81ed1a mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x01b69e71 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c168492 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x10463acb osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x10feb07f osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1599f915 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1b70e54d osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x27c9f0dd osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2de4202a osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f42faba osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x34dd9d9a osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x389e73b8 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x43b30341 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4e3187fc osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x525aa4fe osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60a1811a osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60a259ce osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6b79c3cd osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8a8e50a2 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x924480ec osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9477ae95 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9c1408f4 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa3232f59 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xab082d3c osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb1e36721 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbc097ea3 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbe651edc osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc043c3bf osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc0a06d84 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc1e54a7f osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdbb9d381 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe04de984 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf6840968 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/osd 0x2e2122c7 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x75341f5e osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7a792bc4 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xd9dfd371 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xeb7642d4 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf59f0014 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x66e53163 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa5373314 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa6d83ec9 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xac9ecf8b qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc09895d0 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe72f2037 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x04186c9c raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x194eacf6 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xe2741ae7 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0183e6fa fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x41b8a51c fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x457f07ee fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7713fdd3 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7d1360ce fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x88fc7983 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x966bef1f fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x967f32ea scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xafe04b66 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb3aaf0a8 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc30c80bd fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe8ccc1e4 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xeac6c09f fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x053394f8 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x10dac711 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x135ef3d8 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x16663d5c sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2a136ee1 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3025c359 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x30362d96 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x30640258 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x39dfa0c5 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x43fa3b10 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x612f022c sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x758b5765 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7a6ba37f sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c9868f8 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa9244ca2 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaf801961 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb403562e sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbad2463a sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd986208d scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdb2e69b2 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdc53763d sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdf6ef780 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe6e72f8a sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf25ec066 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf3aa7ca7 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf3f1bbd7 sas_end_device_alloc +EXPORT_SYMBOL drivers/ssb/ssb 0x038490a7 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x16b81598 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x1808c088 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x22729fce ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x2f61a6a0 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x35316ee5 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x3b0aaf2c ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x50ed50bd ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x5bd1d3a8 ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x5d7f0ab8 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x6efaada9 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x78129358 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x9d4ccfcf ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xae9fdd27 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xb7b2f4de ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdcde3503 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xe6762a74 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xe67bbd19 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xea1892b4 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xeac6e1b2 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xed9dec9a ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0xf2a42f48 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xf7d3452b ssb_dma_translation +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x1101ae3a comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x1c731191 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2542d085 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2a405756 comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x374f5e11 comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x390fb90e comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x3dc38258 comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x485cbdb8 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4ddc3262 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x68be9cb1 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7a18e1a4 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x99bc4bb0 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9df41b19 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf509fc8a comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xfd5f0413 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x570f796b subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xacfc8b2f subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xad72fff3 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xbf5ae371 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xa2bb323d cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xc3a63e72 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xd86bc26a cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x030d1a72 mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x0cdb022a mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x0f71e947 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x14055e14 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x151009ee mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1798f790 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2ae8b363 mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2e0d5dec mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2e24bc2e mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6fd3a87d mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7daa0add mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x8642e624 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9c23068d mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa72e45af mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xb07a0d8f mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xca865945 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdf4e52bf mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe2959e41 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf35c10db mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf8a4c351 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x505f9cac subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x7b8477d8 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xaa636a83 subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xed10e1f7 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x037a207a comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x5878caf2 comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x72289a8d comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x8d33d424 comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xa50626db comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xb7c73ddc comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xe1243196 comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x36c8fefb cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x61380a04 cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x7dddbb25 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x7fe6eca2 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xc447d667 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd36fe7b2 cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd68bc83c cx25821_dev_get +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xfb960aac cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x022cc5cd go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x0e321f3f go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x81314eb3 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x8d2bac16 go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x90521b12 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x9086b5c4 go7007_snd_init +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xaa74f601 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xbc08220b go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xda2d8323 go7007_read_addr +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x8bd9a6c4 vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xe82359fb vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x012009d5 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0263b7ec __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x176ad815 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1c19777a iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2042f568 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x24eb8916 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x270eeb44 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x28a432af iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x35fd4661 iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3c56c0a7 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3cdbc757 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x41a83f70 iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4750d1d2 iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4e6d669f iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4fbf281c iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x50e09cb8 iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x532ca7d1 iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x57d8411b iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7bcd0724 iio_read_ring_bps +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7d5a4a9c iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x85f05247 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x86f5def3 iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x893f725d iio_free_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x95e9106d iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9c54f4a8 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9d9d7d24 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9e40c834 iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb60bef1c iio_get_new_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbca495b7 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbd3e905b iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbe7b3801 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcc870007 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdd707ed1 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xde619080 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe7a92eba iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xea58daad iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xeb39fe8e iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf2fdc0c2 iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf3654599 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf73d6e7a iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x399027e3 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x533af21c iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x535cb2a3 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x5e185fe7 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6ae9dcfa iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7000b0e4 iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x774d7099 iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x78b1a086 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7d2d9cee iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7ece8fa2 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x95e4cb9b iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xab0a9907 iio_set_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc73a1653 iio_get_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x2369967b pod_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x578bbb19 variax_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x8d51826e variax_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xe0c05d29 pod_create_files +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x0be65bf8 rar_reserve +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x62fd276e rar_release +EXPORT_SYMBOL drivers/staging/memrar/memrar 0xb260e0b9 rar_handle_to_bus +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x0072de2f rar_get_address +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x01de551a ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x04837dc4 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x066bf9f3 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0c58592b ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c99fa0c ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20c96404 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27860fd4 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3713bb6e ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3dfbf136 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3e5dff72 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x454d7f3e ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4588c022 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x45c00db7 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x466a8a7d ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c70e54d ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c71d205 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50a6f8d3 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71f7caec ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7484a85e Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7584123a ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7970107f ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e1b0d9b ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e5949d6 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x80748fdb ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x85539925 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86c51703 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x878feb43 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x886c1466 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8aec77a3 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b1656ee ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b90e0dc ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8eb27a5a ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8f7394f8 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x925d0882 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x958bbd1e SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x96279159 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9d5c9272 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9dda2440 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7bf865f HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa909986f ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa982e064 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xba2f9d55 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb94353e ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbc2411d3 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf4e92ca ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc0809335 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc71af341 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc865d36b DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda6f164e notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdcaf7d37 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe2a6379a ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeee6e7c3 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf2e37e3f ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf3c1919e ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x73467f55 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xbb1ff15d tm6000_register_extension +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x023275db vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x3afa2070 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x3be7ef09 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x41862ad4 vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x4edb8da3 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x6414d386 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x662ecf4c vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x67191ea7 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x6dc690bb vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x750be4ef vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x88f2486f vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0x90695906 vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0xadc9ffd2 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0xb33063b9 vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xb36fc688 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0xbdcb8b2c vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xeb7cd8b3 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xef3068a3 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xf7c94ceb vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xfa7a684c vme_master_request +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 0x5268c59a ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x2916011f phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xe3279446 phone_register_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x1bb06c62 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x5bf1666d usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xbd55e4bf net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x8ecdb478 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4a7a339c usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x57d3b15b usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6fbac126 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x717b5422 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x84f922c9 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x915c8791 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x948e10fa usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb0c47bb5 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb490626f usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcb7f8dd4 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd981ad3e usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdb9fbd33 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf113a7a8 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfa74443d usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x3a435429 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xddc089bb usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x677b5740 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xbd133ab1 lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x2696169d cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x49159b05 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0x8c840cae cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x93b49660 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/display/display 0x8e3bb61b display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x9417630e display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xcec3efe3 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x9c6ce260 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc7cf97b0 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe20afd9a matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x1e07e2dc DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x2250ca97 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x66343643 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6ccb98dc matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x8085d3ef matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xa8bbd000 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x44c49723 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x7494d6d1 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x9a3b38f1 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xa2b12c4b matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xe88026af matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xf8a7e721 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x03923ba9 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x114bc1d3 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x47305dcb matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xddc50e10 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xed2f96f3 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x6162ae5d mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x2e137fa6 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x5e6d018b video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x241fca5f svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x50b38cb5 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x99f9a6f6 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xb0001c0e svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xc72e6af2 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xc9a358f3 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf12889bf svga_tilefill +EXPORT_SYMBOL drivers/video/syscopyarea 0xd95db5ce sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x0f754395 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xbe2524fe sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x5418424a w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x5bf40d19 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x1a46d6e9 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x9f9ea442 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa1ab9998 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa3e9440d w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/wire 0x40b120fa w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xafbb8ee9 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xcf903319 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xf5043012 w1_add_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x28ca06ab config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x34b6a2bf config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x3a2afb35 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x70ef506a config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x71c10832 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x7ba935ac configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xaab03f31 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xb7e82412 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xd2e795ca configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xdeb325a1 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xf1249769 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xfdcd94ef configfs_depend_item +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0dbd7a0d __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x10c55ba2 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x185787e3 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x1881ba21 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x1d048bfe fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x239bd7c7 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x3b298762 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x3d26a164 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4f6b6a8b __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x714c657c fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x86720aca __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x98765e59 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xa451b12e fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xa926ef46 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xac837e8e __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xc558ee05 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcc5486e0 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xd234c9cb __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xd4c5ab11 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xde87c98e fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0xdf8d1d03 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xe242c5de fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xe6cf6562 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xf12f5503 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xf699a044 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xf6ac45d5 fscache_check_aux +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/quota/quota_tree 0xa0f7c098 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xb948e45b qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xc586b246 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xcdccfa53 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xf938eaf4 qtree_delete_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x040ffc0d lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x104f3bdf lc_changed +EXPORT_SYMBOL lib/lru_cache 0x29bb959a lc_del +EXPORT_SYMBOL lib/lru_cache 0x2b0aa60d lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x3b87d807 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x4eea74fd lc_find +EXPORT_SYMBOL lib/lru_cache 0x551bce80 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x730acd27 lc_put +EXPORT_SYMBOL lib/lru_cache 0x7f4d7913 lc_get +EXPORT_SYMBOL lib/lru_cache 0xa38de7c1 lc_set +EXPORT_SYMBOL lib/lru_cache 0xa9755912 lc_create +EXPORT_SYMBOL lib/lru_cache 0xb475bf06 lc_reset +EXPORT_SYMBOL lib/lru_cache 0xbc888be1 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xf21a0fb2 lc_element_by_index +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x424060c7 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xc3b25f92 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0b0cc9af p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x127714d2 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x19cd0d77 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x1e9f6690 p9_client_version +EXPORT_SYMBOL net/9p/9pnet 0x1f918279 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x239221f4 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x342ead24 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3dae1965 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x42cc2db6 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x4bc8b2e6 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x5917e4e3 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x8370f233 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x8bd4ed3c p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x90675cb4 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x91bd79a3 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x95fd8b0a p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xab7187d7 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xbefcefc5 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc18478d3 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xc287b134 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xd3ef783b p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xd43c7319 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xd9ccc1a1 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xdab77c64 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xe19978b9 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xe1ec621f p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xe48b837b p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe816b9ac p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xed04e127 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xf3615b86 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xfdcfc766 p9_is_proto_dotl +EXPORT_SYMBOL net/appletalk/appletalk 0x84ed83c6 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xc5ce1fd0 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xf230b0d8 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xff144c1d atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x222aaa74 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x2844f618 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3704b2a8 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x54510c7b atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x5ce79c67 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x6e755c35 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x8d944333 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xc8a4ba1f register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xd1e81feb atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xdcd34e40 atm_charge +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xfd4f0576 deregister_atm_ioctl +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x408177e6 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x4100fb87 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4bcaf15c ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x785389f7 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x8160631f ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd117ab9d ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xd118a662 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xf2c037fa ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xffb4d9a4 ax25_send_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0d0851c6 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e870085 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x30936e4d hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3206b3f7 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3ec2dfca hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3f5d31aa hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x476b9ada hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4af1279f hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4bf1afc8 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x510ff505 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5c7bf9eb hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6564b1d5 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x75f6fc23 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x78c005db bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x84780d18 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8a6f6b29 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x97f5dc53 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x992bb695 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa7687775 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf3dfd7d hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xba1804a0 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbdbaf6dd hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd08c36e0 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd6b44756 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd74655ee bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd94c86dc bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd9af3014 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe11e59d9 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe95c77df hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeee683b3 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf418a33c hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfe609c8a bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x88ea8f2f br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xae361832 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xbd5d5e09 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xe2b5cd07 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x012afd72 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0c16dbe1 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x0e5e0b43 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x16b7e81c cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x19d361d8 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x3d9a48a9 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x3ef408d3 cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4db43ccc cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x54611096 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x5c6f88d5 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x5fe59db0 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x672e51a7 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x6c8f53b9 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x8164af4a cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x84c5269c cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x8920c883 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x89aa8092 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x8d560ce2 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x9ba68a52 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0xa3db36d2 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0xa426a5fc cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xa930cb0d cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0xacd8c821 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xc3488902 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xcb9f6dba cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0xd5aa038b cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0xdecf836a cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xe88293a5 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0xec6b4a6e cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xff6e3cf7 cfpkt_peek_head +EXPORT_SYMBOL net/can/can 0x12910a4b can_proto_register +EXPORT_SYMBOL net/can/can 0xd78a660c can_proto_unregister +EXPORT_SYMBOL net/can/can 0xdecb0a01 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xe22e2f39 can_rx_register +EXPORT_SYMBOL net/can/can 0xfb18c850 can_send +EXPORT_SYMBOL net/ieee802154/ieee802154 0x15f2443b ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x389ba988 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3f38c880 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x44f96049 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x486960ec wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4d5f72ef wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x518fe793 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5b813114 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5c08856a ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb69aa3a1 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc07ac4ce wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc9c870ac ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf8d8a11f wpan_phy_free +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x1d8eb908 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4d10ba0a arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd7cd48b7 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x07016f92 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x5b532721 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf9c78cff ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x3c924100 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x572d2aa4 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6c088926 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x888fa4c9 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa2bceffb nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd8bee4ed nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xee0ddf36 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x44306b83 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xf8eeed92 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x18d80da3 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3ea4497d ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x59a8fd75 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9fd33443 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x43c9ba35 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x62ecf5b4 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x31fc1067 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xcb904a6a xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xfbc45587 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0736621f ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0fea7631 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x278888ea ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x29fd7a85 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4f917a5a ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x54074a60 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x771826d3 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf20a34f6 ircomm_data_request +EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x0c797474 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x14031dff irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x3235e10a async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3bbbc9e6 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x4685c55c irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4f39e047 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x50377149 irlap_open +EXPORT_SYMBOL net/irda/irda 0x5eb8d6f6 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x81e8dfbb irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x8efbe753 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x90ba92f2 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xb0d85dd4 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xb7b859e2 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbc6c44bf irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbe882763 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xc3c11b92 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc5161fa7 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xcf308e3f async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xd4146242 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xdd030520 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xdd1a0a71 iriap_close +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe4e65cd9 iriap_open +EXPORT_SYMBOL net/irda/irda 0xe801eaef irlap_close +EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf34c5fb9 proc_irda +EXPORT_SYMBOL net/irda/irda 0xf8c2f551 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xfd9fa4c6 irttp_udata_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0x14546afd l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0xa5b03659 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x19e70280 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x5f1bdc4f lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x6115747e lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x7312827d lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x7bfbb117 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x8d2faa80 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x92769a89 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xf59a3bf6 lapb_setparms +EXPORT_SYMBOL net/mac80211/mac80211 0x05e70c55 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x1355e468 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x1b0c8ada __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x3b4021e0 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x3d8eddd2 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x4110b0d7 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x420fb11e ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x4f081874 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x586d6376 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x5a36901c ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x6555f6b6 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x68774fd3 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x746cf81a ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x74ac746d ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x852adc56 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x962e4d72 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa47cbfab ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xac742e7d ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb366fbcb ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xb74bb19a ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xbde5451f ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc3219ad0 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc7769a57 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xcf30361f ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd328737c ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xd44eae3b rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xd70849f2 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xdca0b8bf ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0xde269f51 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe15f6e6c ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xe60482a7 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xe8ed1767 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xeea4a424 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf1dd836c ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf76f7402 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xf86b87b1 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xffb0acb0 ieee80211_restart_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0115385d ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x05e3f17f unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0cc5135e register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3706c949 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7a10f904 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x81908590 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb0ecae83 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc67d384c ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc71a7b7f register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc7a7ed8d unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf8bec29d ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x0b9327b5 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x93586ff6 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x1d12073c nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x1ca22f4b xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4995f00d xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4b12c78f xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6a753de4 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x8878210b xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xb1a783b3 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xbb6f0e75 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xda3a4f15 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xe57089de xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xf14212b3 xt_unregister_matches +EXPORT_SYMBOL net/phonet/phonet 0x385375f2 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x627b54cb pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x6748c56f phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x6d5efaaa pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x874d67d4 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x90852547 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xb8418ac9 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xe1d8ff29 phonet_stream_ops +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x055f1188 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x09b5d0ef rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2a310e37 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4f4bd023 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6d3439e2 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7e8467f5 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x88f2c4b6 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8fa1697d rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9e7ef583 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb984fc43 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbe769ff6 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcc6476ea key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd155162b rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd9311383 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xedc19f9c rxrpc_get_null_key +EXPORT_SYMBOL net/sunrpc/sunrpc 0x59b7d6d5 svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x18a777a5 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x31766a19 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3c9b87a7 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x677fce3c tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0x9fcecae8 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0xa27e5aa5 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0xaa7ceaef tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xc5f45a37 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcfc13f47 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe2f9765d tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xf3da5b55 tipc_createport +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xbc8914e8 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x5967c0f7 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0xaafc8f9f wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x00287806 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x01dcc204 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0b4c61b3 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0c800537 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19910405 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x227dee00 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x2aa37ac8 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x32dc9d0d wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x382e8e42 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x3cc90363 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x3ec7f303 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x4523cfec wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x4b069c54 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x4be71e25 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x5b29b11f __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x664744aa ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x78761322 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7e4f4e04 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x858835f3 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x86527e4f cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x88f01342 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x99af49f1 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xa3ce5257 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xa401ef09 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xacbb3ead cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb8f9e1d9 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xb9498940 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0xb962f4f0 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xc10066d0 cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc6f8607a wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xc7428d4d cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xcd37f0a1 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xce386c03 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xd2dadb04 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xdaf54757 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xdc16eea3 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xdf72da38 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0xe2cc4767 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xeb24c011 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xeb287393 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xf68f81d0 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xfb7f293e cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/lib80211 0x0cfa2006 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0x0ed4884c lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x22a6303f lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x3a4c3b69 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x58878962 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x8ad4da3f lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xca5afe80 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe846787e lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x1c4aba25 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x28f59113 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x2e51573c snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xab65d141 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xbd476a3a snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x1eab9739 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xd5f1e3ad snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xe88c4ee2 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x06406b22 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x105a2e79 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x10c0b398 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x174d9916 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x221c8efd snd_device_new +EXPORT_SYMBOL sound/core/snd 0x246b3106 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x2f1bbf24 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x3403ac2e snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x351ddfb3 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x36bc10ab snd_card_create +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3c88b150 snd_cards +EXPORT_SYMBOL sound/core/snd 0x3d1df696 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x3f4c8b53 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x3fcb9781 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x43d8ac92 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x47a6f263 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x489c58f6 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4e37e500 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x626f099e snd_card_free +EXPORT_SYMBOL sound/core/snd 0x659d32f7 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x6bd64ddb snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x6bef58a1 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x70abbf65 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x70ff24f7 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x773de960 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x7ebc0db8 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x90d890bc snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x9aac6d36 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x9aca3292 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa2ba3540 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xa34d67c8 snd_info_register +EXPORT_SYMBOL sound/core/snd 0xad6c69db snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb9cac701 snd_device_free +EXPORT_SYMBOL sound/core/snd 0xbe0c3cab snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xbe84698f snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xcceee5b0 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd253516f snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xd378b186 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe261c811 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xe43411cd snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xee89fc22 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xf1086e25 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xfa0d984e snd_card_disconnect +EXPORT_SYMBOL sound/core/snd-hwdep 0xe50583fc snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x182311bf snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x1e31845b snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x95a85dba snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xa4bc8dd0 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xaad8e738 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x03d2d9b0 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x07f81776 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x09b1fda0 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x0db4f98b snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x1a6fa4b6 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x21523ace snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x2648f102 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x39d413c3 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x3b49b0d1 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x3bab37c4 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x3c0e561a snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x3e52acca snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x402c1368 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x4809429d snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4dd98434 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x50962b7d snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5c69a3ea snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x61ba5ecd snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x65603ae5 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x67570db1 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x69b26543 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x6d6eee78 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x6e6ebb7c snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x71dde507 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x77be4191 snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL sound/core/snd-pcm 0x7a1b5e65 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x85504b4f snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x92401a79 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x954195d1 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x9801f50f snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x9a3eaa63 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xa35be00d snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa92dd8ea snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xada09b52 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbdd99c39 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xc605a783 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xcabb05a2 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd37bef7c snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xda931131 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xdcfaf3c1 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xe26fde33 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xec25bdd9 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xed14fdd5 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-rawmidi 0x01044ebc snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0210db3b snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x04d11e98 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x262f9848 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x420ea4de snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4803978b snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4aae592f snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x539b3e65 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5da6f29a snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x90b8376e snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x964d125e snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x964e81ae snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa12b0f54 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa496cc69 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcde06c53 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd83c2834 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf992228f snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-timer 0x0bd518b8 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x10f84223 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x2c274f8a snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x38d324e5 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x5f36c602 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x73d19fa2 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x7fd37f1a snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x879fbba6 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x98422763 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xc93a7730 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xd2d99871 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xf52598c1 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xfa37543a snd_timer_start +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x2760089a snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1cafb472 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3d516ed5 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x415ac81b snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4fd88d27 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7be40581 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9e1d71cd snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcaa056a3 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xce046f2f snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xef5a6e7b snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x07144783 snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x168afeb5 snd_opl4_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x4ca39993 snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x5ca26505 snd_opl4_write +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x69b8d25b snd_opl4_read +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1741e5c7 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x24ebc7be snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x38c9fb2d snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x63dd5c84 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x65445377 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x89ab52d1 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xae031e1c snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc6b41cf1 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf68da523 snd_vx_setup_firmware +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x863db82f snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x915a90c2 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd0186b03 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd5d591f9 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd886a82d snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xe9b5739b snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00dcb10a snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x09064562 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4d08307f snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6c4e9a74 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd692bf7c snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xeeaaaf77 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x60d370c8 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x80adb902 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xa20d06e2 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf8393191 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x544fdbf7 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xe60cbc41 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x79670669 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xe976d30c snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0f205216 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x601b2015 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8e37e8e6 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xedeeb682 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf62732e4 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2b6b6c6d snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x46c8e3ab snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x53b08e04 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x943e77f6 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xae4d747a snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xfbcb1019 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xd625e157 snd_tea6330t_detect +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xff5a175b snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x4f0e4ebd snd_es1688_create +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x720f8ca9 snd_es1688_pcm +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xed60b5f8 snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xf452e44c snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xff191f60 snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0234a3e2 snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x05bd37d3 snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0ec5595f snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1bf1c2d3 snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x20cd4cc4 snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2bcd9c74 snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2f9e037a snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x31269d38 snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x33c69b2e snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x33e9c1b7 snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x35bb5228 snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x423b3819 snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x49942248 snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x537468b6 snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5377a2fc snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5feaf56e snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6f2cddaa snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7b852910 snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x808c697b snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8561d269 snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x871a2c69 snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x896ce4c5 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8aeaea6c snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8fc83661 snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa59f94b7 snd_gf1_poke +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa9a9adfe snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xad22e941 snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xcc9ee036 snd_gus_dram_read +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xef9ec7a5 snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf09c4293 snd_gus_initialize +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfa3bd369 snd_gf1_write8 +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x04db76a6 snd_msndmix_new +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0d7506ea snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x57708258 snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x731b7ef6 snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x7be8923e snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xa113e8f5 snd_msndmix_setup +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xc2448bc5 snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xd936e7a0 snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xda29a917 snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xe554b3e4 snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xf7f813c3 snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xfcc2bc74 snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x49ec074f snd_aci_get_aci +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xad467ef6 snd_aci_cmd +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x15c10cf9 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3724b55e snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3fdb1789 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4eadd38e snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5e014373 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x67d9902d snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6eac867c snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7ceffbad snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xce2dd258 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xebc0f7f5 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0x30a4bbdd snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x674f57a2 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x6e83ed8e snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc72bd1a1 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x0521c964 snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x30e2b1cc snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xb32b0a33 snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xda052d8f snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x087563e1 snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x11d064b9 snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x14621229 snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x4bd5945c snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x76e39e8a snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x9cd5d0c4 snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x9f673b01 snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xa216acff snd_emu8000_peek +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb4312179 snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb71cc82b snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xceda1632 snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x0ab783f4 snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x132c895e snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x13a917c0 snd_wss_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x2a23db49 snd_wss_info_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x2a841708 snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x34ee5bcf snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x40c0d751 snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x5a37e4f6 snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x69c733dc snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x819e940c snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x873d5710 snd_cs4236_ext_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x8c10636b snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x8f3f8cda snd_wss_overrange +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x9e2cf19f snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xb0f010d6 snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xb41fa011 snd_wss_timer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xcb5a0da0 snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd380a0fe snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xe45096e6 snd_wss_mce_up +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xee5023e5 snd_wss_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00c08d3b snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x12ec67f1 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1ecb7ee5 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x257ec11c snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x75accf9b snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7ede2c75 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8b92c916 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xae2914cd snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xca2457a7 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcfad7f8f snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdbd12cf9 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xde1976ef snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe0db3ac6 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe547d7b5 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf57fbb43 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf64b82a1 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfc3a8cb4 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xcd317398 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x37485767 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x44b5dd50 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4c35ca09 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5fc05281 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x712cf974 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8be3f581 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb343f3b2 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb355806c snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe36937d0 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xe5071c97 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x538843e9 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x7d2333ed snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xbe6b3de8 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0413fdc8 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0740b8e4 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0a189b18 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x138183f4 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x30e882d9 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x51c77685 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5211e54e oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x546b3059 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x66afaf28 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa471f284 oxygen_default_i2s_mclk +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa6aa11b0 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb17906dc oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb4c9a25c oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb64c3828 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbc86e30a oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc56c28d5 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd7674484 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd827d37a oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf20f492a oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf58e66f7 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf81c4c76 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfd5b35de oxygen_pci_remove +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x03186d2b snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x22a12658 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x69321a8d snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8e77d8ec snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb863566d snd_trident_write_voice_regs +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0xc39c15ba uda134x_dai +EXPORT_SYMBOL sound/soundcore 0x96cd7c47 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x0aac6995 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x30ca1136 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x671b6821 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x8f59e3ae snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xaba94bb8 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb4b6d4b8 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x296be871 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x424c8f6d __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x76ab0d9c snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7d3bb286 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9f833ba8 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xac9a525b snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xec1d630e snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf1d4c444 __snd_util_memblk_new +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x2b9bb4ba snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x4fc1afb9 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x7c1798a2 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x85b30af5 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa9b4c5f9 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xc1e6ff0a dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xc5c27101 dm_mem_cache_client_create +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0061198d nf_hook_slow +EXPORT_SYMBOL vmlinux 0x0065e195 sg_miter_next +EXPORT_SYMBOL vmlinux 0x00700cf3 set_anon_super +EXPORT_SYMBOL vmlinux 0x007c9227 security_path_rename +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0094b36b qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x00adc5ba put_page +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00edaf47 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x0104e964 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01173de9 blk_start_queue +EXPORT_SYMBOL vmlinux 0x01246905 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x012ccfe5 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x013ce915 elv_register_queue +EXPORT_SYMBOL vmlinux 0x0164214e unregister_key_type +EXPORT_SYMBOL vmlinux 0x01719b10 inet_put_port +EXPORT_SYMBOL vmlinux 0x017c4f3d bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01d4de85 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x01f8e987 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x020e9ff9 phy_print_status +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0231b9d9 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x024f9692 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x025c3aea mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0271303f tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x0278b5ec scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x027ee31a __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x02889e8c mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02b370c8 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x02bf8c49 inet_select_addr +EXPORT_SYMBOL vmlinux 0x02c24a33 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x02cf5d8c mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e5f603 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x02ebbc02 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02f9386d devm_iounmap +EXPORT_SYMBOL vmlinux 0x03061770 vfs_statfs +EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key +EXPORT_SYMBOL vmlinux 0x032d2b64 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x03429291 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x03615221 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038d5484 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x03af7f90 icmpv6_send +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e70f2b simple_transaction_read +EXPORT_SYMBOL vmlinux 0x03ee758d tty_devnum +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x041125aa blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04873cc5 sock_no_connect +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04a700be ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x04bfb3a8 set_user_nice +EXPORT_SYMBOL vmlinux 0x04c88fac km_report +EXPORT_SYMBOL vmlinux 0x04caa761 netif_device_detach +EXPORT_SYMBOL vmlinux 0x04cbea67 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ded968 md_check_recovery +EXPORT_SYMBOL vmlinux 0x04ef39da security_task_getsecid +EXPORT_SYMBOL vmlinux 0x04f98474 journal_destroy +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x054acc51 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x0576ab26 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0589bca9 udp_ioctl +EXPORT_SYMBOL vmlinux 0x059b63bf dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x05c1e4a6 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x05d7c5fb tcp_parse_options +EXPORT_SYMBOL vmlinux 0x05e8b67a bdev_read_only +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0655cb0c kdb_current_task +EXPORT_SYMBOL vmlinux 0x065979f7 km_new_mapping +EXPORT_SYMBOL vmlinux 0x06638aa6 unlock_super +EXPORT_SYMBOL vmlinux 0x067d6449 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0680c73a inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06a5f1d8 inet6_bind +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06c089b0 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x06d0d71c truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0705a3c2 unregister_console +EXPORT_SYMBOL vmlinux 0x07066055 nf_reinject +EXPORT_SYMBOL vmlinux 0x070e9c47 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0739cfdb key_negate_and_link +EXPORT_SYMBOL vmlinux 0x073ae71b __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x077464e9 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new +EXPORT_SYMBOL vmlinux 0x078540cc lock_sock_fast +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x079fe6ed jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b42bb6 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x07bf4b45 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d376b7 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07dd6fe6 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x07f9e51d dm_table_event +EXPORT_SYMBOL vmlinux 0x08173623 register_framebuffer +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083a57e2 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x0849794b pnp_device_attach +EXPORT_SYMBOL vmlinux 0x0870f64e ip_route_output_key +EXPORT_SYMBOL vmlinux 0x0888a9c2 aio_complete +EXPORT_SYMBOL vmlinux 0x08ce0ab2 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08fd36fd cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x09043d48 igrab +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x0944d7f1 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09625dc2 mem_map +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098ae128 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099a0fed elevator_exit +EXPORT_SYMBOL vmlinux 0x099a8288 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x09b65a6c skb_recycle_check +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09cdd180 kill_anon_super +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e383c3 kmap_high +EXPORT_SYMBOL vmlinux 0x09e7e423 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x09f20dda idr_init +EXPORT_SYMBOL vmlinux 0x0a102801 block_sync_page +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a36b2b6 tty_port_init +EXPORT_SYMBOL vmlinux 0x0a59da95 slow_work_register_user +EXPORT_SYMBOL vmlinux 0x0a63ead9 d_delete +EXPORT_SYMBOL vmlinux 0x0a69aa00 revalidate_disk +EXPORT_SYMBOL vmlinux 0x0a872295 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x0a8e3467 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x0a8fddbe blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x0a999c86 dev_uc_del +EXPORT_SYMBOL vmlinux 0x0ab4f7d5 save_mount_options +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0aedc739 scsi_init_io +EXPORT_SYMBOL vmlinux 0x0afa0d12 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b5f2b66 find_inode_number +EXPORT_SYMBOL vmlinux 0x0b636253 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x0b69997d pci_pme_capable +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7fc4da abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0bc13b05 simple_fill_super +EXPORT_SYMBOL vmlinux 0x0bcfd96a phy_detach +EXPORT_SYMBOL vmlinux 0x0be6a591 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x0c2e56b9 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x0c43ffaf pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x0c4969c5 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6d9398 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x0c6f8982 tty_mutex +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0cf4daa9 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x0d2a5041 llc_sap_find +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d4cc958 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d695eae sockfd_lookup +EXPORT_SYMBOL vmlinux 0x0d74331f input_event +EXPORT_SYMBOL vmlinux 0x0d9115e6 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db3921b blk_put_request +EXPORT_SYMBOL vmlinux 0x0db6cad2 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x0dc7c1dd iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x0de8d85e eisa_driver_register +EXPORT_SYMBOL vmlinux 0x0e05db5c framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e21e3d0 read_cache_page +EXPORT_SYMBOL vmlinux 0x0e346d41 dev_mc_init +EXPORT_SYMBOL vmlinux 0x0e43fd18 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5b012d pci_clear_master +EXPORT_SYMBOL vmlinux 0x0e5c6528 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e6671ae pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x0e72efd2 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e9c599b abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x0ec73a11 flush_old_exec +EXPORT_SYMBOL vmlinux 0x0ecc003c dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x0ed38935 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x0edb04c8 scsi_put_command +EXPORT_SYMBOL vmlinux 0x0edeef86 tty_name +EXPORT_SYMBOL vmlinux 0x0ee6ef75 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x0f03267b kmem_cache_name +EXPORT_SYMBOL vmlinux 0x0f4135f6 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x0f834246 tty_vhangup +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb15b15 __seq_open_private +EXPORT_SYMBOL vmlinux 0x0fb850d1 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x1003b66a ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x10205f1a dquot_commit +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x104cd8ab blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x104e7e3a blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x1083c94e tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x111e06fb blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118dc190 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a59160 mutex_trylock +EXPORT_SYMBOL vmlinux 0x11c70a41 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x11d4d76e dst_release +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x12066394 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x1217cf6d bdi_register_dev +EXPORT_SYMBOL vmlinux 0x12346e74 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x1265c834 pci_dev_get +EXPORT_SYMBOL vmlinux 0x127b77dc blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x127edb28 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x128b6aed napi_gro_frags +EXPORT_SYMBOL vmlinux 0x12bbe95d jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x12c1dc2b tty_port_hangup +EXPORT_SYMBOL vmlinux 0x12c5b56d rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x1302d725 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x1351dc07 bio_alloc +EXPORT_SYMBOL vmlinux 0x135ba7bf freeze_super +EXPORT_SYMBOL vmlinux 0x13767239 bdevname +EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support +EXPORT_SYMBOL vmlinux 0x13ae023c pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13c777eb prepare_creds +EXPORT_SYMBOL vmlinux 0x13dbe425 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x13e1f351 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x14389217 skb_split +EXPORT_SYMBOL vmlinux 0x1454be8e ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x148b3e27 do_truncate +EXPORT_SYMBOL vmlinux 0x14a11a1e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x14b42284 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x14d8875f inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x14e38f29 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x1505f7df tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x153a3e0d serio_interrupt +EXPORT_SYMBOL vmlinux 0x15442308 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x156818d7 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x15688f61 dev_open +EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x15b8ea88 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x15ba2dd9 d_instantiate +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15dc16f3 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x15fc99de bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x15fd57e4 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x163660ce load_nls +EXPORT_SYMBOL vmlinux 0x16575bcf skb_tx_hash +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x16cea6e0 udp_prot +EXPORT_SYMBOL vmlinux 0x16e9af52 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x1715dfdc page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x1762583e vmtruncate +EXPORT_SYMBOL vmlinux 0x176cc799 fb_blank +EXPORT_SYMBOL vmlinux 0x1795f6f7 bmap +EXPORT_SYMBOL vmlinux 0x1799406c unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x17ab6cd5 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x17b03c1b acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x17ba9367 bio_copy_user +EXPORT_SYMBOL vmlinux 0x17c314a4 alloc_file +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17df9bb4 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x1869cae4 secpath_dup +EXPORT_SYMBOL vmlinux 0x18974b6f set_page_dirty +EXPORT_SYMBOL vmlinux 0x18a6a4dc elv_rb_add +EXPORT_SYMBOL vmlinux 0x18ccd7e3 input_register_handle +EXPORT_SYMBOL vmlinux 0x18d4d6af security_inode_init_security +EXPORT_SYMBOL vmlinux 0x18f4c57e input_set_capability +EXPORT_SYMBOL vmlinux 0x18ff91d5 bio_endio +EXPORT_SYMBOL vmlinux 0x190a8c19 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x1915fd10 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x1933a1fe update_region +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19e1439d generic_setattr +EXPORT_SYMBOL vmlinux 0x19ec3b3d tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a2c1405 kernel_bind +EXPORT_SYMBOL vmlinux 0x1a410dfb vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x1a43e8a3 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a5c0982 dquot_enable +EXPORT_SYMBOL vmlinux 0x1a5f31fc default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a6d3db9 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x1a71822d fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x1a756e68 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x1a81b827 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait +EXPORT_SYMBOL vmlinux 0x1a8ac8e6 rfkill_register +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa2643a bdget +EXPORT_SYMBOL vmlinux 0x1ab7d87f tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x1abb22f5 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x1ac193f8 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1add40c5 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get +EXPORT_SYMBOL vmlinux 0x1b2eca15 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b73ff43 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b8bad72 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9a3723 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bc4c77f vga_client_register +EXPORT_SYMBOL vmlinux 0x1bcb96df __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x1beb781c md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x1c0f722b sk_reset_txq +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c18e07f blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c52ff25 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x1c5f5333 journal_init_dev +EXPORT_SYMBOL vmlinux 0x1c6cc7f9 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c9c28f5 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x1cb41167 blk_start_request +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd274ce arp_xmit +EXPORT_SYMBOL vmlinux 0x1cdc5767 key_link +EXPORT_SYMBOL vmlinux 0x1cfe929e dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x1d13f906 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x1d1bbf44 blk_run_queue +EXPORT_SYMBOL vmlinux 0x1d25f8be alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x1d28b217 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d7e2cd6 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x1dab795c dev_addr_init +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dce3fee pcim_enable_device +EXPORT_SYMBOL vmlinux 0x1dd4e5bb dm_unregister_target +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e21ad6b neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x1e2ac470 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x1e2d4533 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x1e32ffe7 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x1e3ad320 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x1e4ceb8c security_path_mkdir +EXPORT_SYMBOL vmlinux 0x1e677239 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e81fdc9 pci_dev_put +EXPORT_SYMBOL vmlinux 0x1e9493a9 __devm_release_region +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea44a65 tty_port_put +EXPORT_SYMBOL vmlinux 0x1ecbd05f uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x1eecd5c7 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f16acc8 vfs_write +EXPORT_SYMBOL vmlinux 0x1f2b1d57 input_unregister_device +EXPORT_SYMBOL vmlinux 0x1f5b1df6 stop_tty +EXPORT_SYMBOL vmlinux 0x1f63d981 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x1f82612a __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x1f91af1d input_release_device +EXPORT_SYMBOL vmlinux 0x1fb77c02 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x2021c81c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x203077bc lro_receive_skb +EXPORT_SYMBOL vmlinux 0x2036a98a mmc_host_enable +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x2057c1df acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x205ce103 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x206244aa thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x207331f9 seq_puts +EXPORT_SYMBOL vmlinux 0x2074a557 sk_wait_data +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20d572e7 send_sig +EXPORT_SYMBOL vmlinux 0x20e2d042 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x20fc05b2 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x2123ccd2 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x2126a276 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x213bcefb blk_sync_queue +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2184b982 bd_claim +EXPORT_SYMBOL vmlinux 0x218ef45d xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x219381d4 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22423440 mnt_unpin +EXPORT_SYMBOL vmlinux 0x226a5da4 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x22781dc3 set_create_files_as +EXPORT_SYMBOL vmlinux 0x227bbf81 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x22871bc6 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228bf5b1 phy_connect +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22e746cc ab3100_event_register +EXPORT_SYMBOL vmlinux 0x23050e38 get_user_pages +EXPORT_SYMBOL vmlinux 0x230e0443 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x23575b90 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x237a4ead pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x23b01aef bio_split +EXPORT_SYMBOL vmlinux 0x23b3402d dma_async_device_register +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23c9ac63 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x242af9d3 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x243a05a4 ps2_command +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24431c5b kernel_accept +EXPORT_SYMBOL vmlinux 0x244cf9cc i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x246bc00e prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x248cbea4 tc_classify +EXPORT_SYMBOL vmlinux 0x24b2d2fd dquot_release +EXPORT_SYMBOL vmlinux 0x24be3b32 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2501c8c2 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x250aca97 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x25244e6f xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x253e9e70 phy_find_first +EXPORT_SYMBOL vmlinux 0x25451ce3 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x255f3bdc scsi_host_put +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25a6c701 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x25c99f0e __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x25d0182a dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25e443b1 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x25eba9da __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x2612f829 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x2618a52d default_file_splice_read +EXPORT_SYMBOL vmlinux 0x264315ff acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x26518b68 idr_replace +EXPORT_SYMBOL vmlinux 0x26609130 wireless_send_event +EXPORT_SYMBOL vmlinux 0x2666b229 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x2669fbe3 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x266d6d36 scsi_get_command +EXPORT_SYMBOL vmlinux 0x266f58aa inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268b9fb7 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x26942432 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x26993ce7 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x26a0131a inet_release +EXPORT_SYMBOL vmlinux 0x26ab2bc2 skb_put +EXPORT_SYMBOL vmlinux 0x26d2c82b kernel_read +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e5924d sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26fef15e grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x27003514 vfs_fsync +EXPORT_SYMBOL vmlinux 0x27064998 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x2706b4e2 bio_pair_release +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x275333a6 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x2757058c netif_carrier_on +EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add +EXPORT_SYMBOL vmlinux 0x2784866c sock_kmalloc +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27a0eb01 skb_pull +EXPORT_SYMBOL vmlinux 0x27af4e13 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27dc63f9 sock_rfree +EXPORT_SYMBOL vmlinux 0x2810e930 poll_freewait +EXPORT_SYMBOL vmlinux 0x28145f1c i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x281a0656 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x2848bea2 notify_change +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x285de43c generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x2884192a write_cache_pages +EXPORT_SYMBOL vmlinux 0x2895f57c skb_store_bits +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28ba0462 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x28bfd053 path_lookup +EXPORT_SYMBOL vmlinux 0x28e633b6 set_trace_device +EXPORT_SYMBOL vmlinux 0x28fc41ee scsi_device_put +EXPORT_SYMBOL vmlinux 0x290489d8 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x291e6c39 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x294002ab input_close_device +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29559188 blk_free_tags +EXPORT_SYMBOL vmlinux 0x297bdf10 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x29a4e201 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29f93af9 llc_add_pack +EXPORT_SYMBOL vmlinux 0x2a0a432c xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a4fdb61 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x2a67698f pnp_find_card +EXPORT_SYMBOL vmlinux 0x2a695b9f neigh_compat_output +EXPORT_SYMBOL vmlinux 0x2a843027 aio_put_req +EXPORT_SYMBOL vmlinux 0x2a872af2 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ab2c08a tty_port_close_end +EXPORT_SYMBOL vmlinux 0x2acf657d phy_attach +EXPORT_SYMBOL vmlinux 0x2add94fd try_to_release_page +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b234161 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x2b24ef10 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x2b30fd2e get_write_access +EXPORT_SYMBOL vmlinux 0x2b396cd0 put_tty_driver +EXPORT_SYMBOL vmlinux 0x2b6a5387 filemap_fault +EXPORT_SYMBOL vmlinux 0x2b8e8553 kset_register +EXPORT_SYMBOL vmlinux 0x2b9d12d2 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba6f651 fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bb98c47 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bd7c10f read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x2bdd7d30 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x2be12777 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c2cf04b pci_read_vpd +EXPORT_SYMBOL vmlinux 0x2c3ccdf0 inet_getname +EXPORT_SYMBOL vmlinux 0x2c40a521 simple_link +EXPORT_SYMBOL vmlinux 0x2c44552c journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x2c4b8e47 drop_super +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2c9f07cf jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x2ca5a015 iget5_locked +EXPORT_SYMBOL vmlinux 0x2caeae22 d_genocide +EXPORT_SYMBOL vmlinux 0x2cc6fa44 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x2ce56d0f register_console +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d258b04 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2da57a17 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x2db2a615 touch_atime +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df15ad1 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x2dfae704 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e318eda vmap +EXPORT_SYMBOL vmlinux 0x2e3af7f1 dev_uc_init +EXPORT_SYMBOL vmlinux 0x2e3dd795 __scm_send +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e6e966d inode_permission +EXPORT_SYMBOL vmlinux 0x2e8bc57a sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x2ea8471e alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x2eb15373 ip_dev_find +EXPORT_SYMBOL vmlinux 0x2ebb2194 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x2ebf12e2 fb_class +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f2565ab rtnl_create_link +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f464b47 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x2f528edf arp_find +EXPORT_SYMBOL vmlinux 0x2f89c652 sock_no_accept +EXPORT_SYMBOL vmlinux 0x2fafa01e invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x2fdc4024 nf_log_packet +EXPORT_SYMBOL vmlinux 0x2fe1df49 d_validate +EXPORT_SYMBOL vmlinux 0x2fe521b7 key_task_permission +EXPORT_SYMBOL vmlinux 0x3007f219 kill_block_super +EXPORT_SYMBOL vmlinux 0x300d63e2 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x300ec2ea nla_reserve +EXPORT_SYMBOL vmlinux 0x30155503 follow_down +EXPORT_SYMBOL vmlinux 0x3023b046 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x30415a70 register_8022_client +EXPORT_SYMBOL vmlinux 0x3055d1e1 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x30792058 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x30ae6957 bio_add_page +EXPORT_SYMBOL vmlinux 0x30b79202 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x311f1a61 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x31310013 cdrom_release +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3152664a pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x3185a4f1 neigh_table_init +EXPORT_SYMBOL vmlinux 0x318e83e3 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31b278c3 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x31b79589 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x31c54425 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ec2a30 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x31ff8bb4 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x32019a09 inet_shutdown +EXPORT_SYMBOL vmlinux 0x320a14f6 __alloc_skb +EXPORT_SYMBOL vmlinux 0x3224a029 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x325cd449 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x32808adb seq_escape +EXPORT_SYMBOL vmlinux 0x3283c969 set_groups +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x32ca9939 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x32cbd0ce scm_fp_dup +EXPORT_SYMBOL vmlinux 0x32cbd6db genl_register_ops +EXPORT_SYMBOL vmlinux 0x32d1c8a6 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x330e3070 dst_destroy +EXPORT_SYMBOL vmlinux 0x3324bed7 mpage_readpages +EXPORT_SYMBOL vmlinux 0x33258544 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x333f6ecb tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x3356317e scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x336bc0e6 register_con_driver +EXPORT_SYMBOL vmlinux 0x336f892a sock_setsockopt +EXPORT_SYMBOL vmlinux 0x337027d7 vfs_readdir +EXPORT_SYMBOL vmlinux 0x33773e5b dm_table_get +EXPORT_SYMBOL vmlinux 0x3398b9c5 do_munmap +EXPORT_SYMBOL vmlinux 0x33a7dc71 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x33b62dfc inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x33ba843e pagevec_lookup +EXPORT_SYMBOL vmlinux 0x33f02a2a security_inode_permission +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x34688244 block_write_begin +EXPORT_SYMBOL vmlinux 0x346b9b9f bioset_free +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349a94ad tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34b34b11 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x3505dced mdiobus_read +EXPORT_SYMBOL vmlinux 0x3506f619 skb_checksum +EXPORT_SYMBOL vmlinux 0x35352a61 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x354030a4 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x35522889 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x358d6c9c dquot_acquire +EXPORT_SYMBOL vmlinux 0x35997f7d __rta_fill +EXPORT_SYMBOL vmlinux 0x35b75e4d pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35cd6d97 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x35d93e9b inet6_release +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x35df6a07 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x35e7b574 fsync_bdev +EXPORT_SYMBOL vmlinux 0x35fdc417 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3614a3de phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x363e01b9 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x36680c90 pci_restore_state +EXPORT_SYMBOL vmlinux 0x3671a70d alloc_fcdev +EXPORT_SYMBOL vmlinux 0x3672ef7f inet_sendmsg +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36cb3454 kobject_del +EXPORT_SYMBOL vmlinux 0x36cd10e3 mca_device_write_pos +EXPORT_SYMBOL vmlinux 0x36d633f6 release_sock +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3704cf15 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x370e45f0 page_readlink +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3748aecb bio_copy_kern +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37b2b090 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37fe3d70 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x380fa1ff ida_get_new_above +EXPORT_SYMBOL vmlinux 0x3811f141 __f_setown +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381e0c28 uart_register_driver +EXPORT_SYMBOL vmlinux 0x38281fb5 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each +EXPORT_SYMBOL vmlinux 0x386c88e1 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x38761b3b phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c057d9 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x38cf2d3e blk_end_request_all +EXPORT_SYMBOL vmlinux 0x38e6e872 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x39228932 security_path_chown +EXPORT_SYMBOL vmlinux 0x392a403b pnp_device_detach +EXPORT_SYMBOL vmlinux 0x39379a40 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x39415dd6 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x394ad859 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x3976aa05 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x397aac34 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x397b4bd1 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a7517a kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x39b022e5 mca_register_driver +EXPORT_SYMBOL vmlinux 0x39bdc9f2 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x39d8158a request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x39f090f2 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x39fb16bd acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x3a13258f __ps2_command +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a46500a dquot_file_open +EXPORT_SYMBOL vmlinux 0x3a5265af i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a7c8c99 md_error +EXPORT_SYMBOL vmlinux 0x3a7d2e3d register_filesystem +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ae30786 __invalidate_device +EXPORT_SYMBOL vmlinux 0x3b028f97 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x3b05560c tty_port_close_start +EXPORT_SYMBOL vmlinux 0x3b14c0cd write_inode_now +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b33576a dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x3b3821de security_path_link +EXPORT_SYMBOL vmlinux 0x3b416025 inet_frags_init +EXPORT_SYMBOL vmlinux 0x3b4f0df2 seq_bitmap +EXPORT_SYMBOL vmlinux 0x3b622328 kobject_get +EXPORT_SYMBOL vmlinux 0x3b7a30f8 do_splice_from +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bfd83b7 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x3c28d2d0 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c3e9053 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x3c3f2c9d make_bad_inode +EXPORT_SYMBOL vmlinux 0x3c8a0908 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x3c933ca9 bd_release +EXPORT_SYMBOL vmlinux 0x3c9706a0 pci_find_capability +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cb91714 thaw_process +EXPORT_SYMBOL vmlinux 0x3ccdf0c4 lookup_one_len +EXPORT_SYMBOL vmlinux 0x3ccfd237 __nla_put +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf50675 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x3d0ab986 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x3d12e601 udp_proc_register +EXPORT_SYMBOL vmlinux 0x3d1fbc1b blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d41e53c tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x3d464ad6 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x3d605d5d textsearch_register +EXPORT_SYMBOL vmlinux 0x3d707fd6 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da0a4d8 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3defd6a1 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e1d11d0 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e369e54 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e4a152e blk_end_request +EXPORT_SYMBOL vmlinux 0x3e5c0049 current_fs_time +EXPORT_SYMBOL vmlinux 0x3e8098c9 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ebbf0fb mpage_readpage +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3eff6b90 bdget_disk +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f131a64 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x3f14d53b is_bad_inode +EXPORT_SYMBOL vmlinux 0x3f1bc368 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x3f3159b4 gen_pool_free +EXPORT_SYMBOL vmlinux 0x3f379c33 vga_put +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f6af802 filemap_flush +EXPORT_SYMBOL vmlinux 0x3f6d8b99 single_release +EXPORT_SYMBOL vmlinux 0x3f857d26 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x3f9c9787 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x3fada64f mmc_register_driver +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff24ed2 journal_start +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x40102a2c devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x402ae1b5 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x40475000 pci_iounmap +EXPORT_SYMBOL vmlinux 0x404eae88 generic_setlease +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4077aa8a uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40ca194e scsi_scan_host +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4104ecb7 blk_complete_request +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x410abcf2 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x4117b053 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x4127952c kthread_bind +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x4144c597 free_buffer_head +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41902949 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x419943d3 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x41c0ae7a dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x41d43a0b blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x41e26edc dev_mc_sync +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x41f71639 devm_free_irq +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x425c53b5 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x426bac5d padata_add_cpu +EXPORT_SYMBOL vmlinux 0x4275414f init_buffer +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x429d18fd dma_find_channel +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42d394dc mutex_unlock +EXPORT_SYMBOL vmlinux 0x42e87fc9 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x42e899b4 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4305010f ip_fragment +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x4336ca5d fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x4344206f lookup_hash +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43578b1e inet_ioctl +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43d2dc89 sk_free +EXPORT_SYMBOL vmlinux 0x43d54fdd gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x43ea0028 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x440185d9 vfs_link +EXPORT_SYMBOL vmlinux 0x4427e627 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x446c18f7 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x4477ca20 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x44a2e58a __netif_schedule +EXPORT_SYMBOL vmlinux 0x44aae6bd nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44cf3c99 netdev_features_change +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f7c405 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x44fff049 generic_removexattr +EXPORT_SYMBOL vmlinux 0x45107bfd pci_claim_resource +EXPORT_SYMBOL vmlinux 0x4511e258 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x451c1b3f serio_open +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4568ec04 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x456b8658 bh_submit_read +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4580af0a sk_run_filter +EXPORT_SYMBOL vmlinux 0x4591d1b5 security_file_permission +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45d1b205 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45d73af4 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x4635238d scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x4636e852 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x46433be2 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x468f5b24 sk_stream_error +EXPORT_SYMBOL vmlinux 0x46b0b0dd netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x46c530ec dma_supported +EXPORT_SYMBOL vmlinux 0x46d25ba1 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x47175a76 nf_afinfo +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c3386e scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47d72183 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x47e7db0f generic_delete_inode +EXPORT_SYMBOL vmlinux 0x47ecc156 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x48feea87 fget +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x494a584a gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x4954ab56 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x497b0555 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x49add20d __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49bd6228 sock_wake_async +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49f66d6f mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x4a014038 __kfree_skb +EXPORT_SYMBOL vmlinux 0x4a0deb84 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x4a1a6f0d inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a37ed02 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x4a380285 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x4a54f74e alloc_disk_node +EXPORT_SYMBOL vmlinux 0x4a5a443e ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x4a96294c dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ac64181 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ae0766d i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b187e97 dquot_resume +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b40c015 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x4b6c6b66 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x4b7b56bf __register_binfmt +EXPORT_SYMBOL vmlinux 0x4b7dbafb __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x4b961826 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x4b976751 thaw_bdev +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bd938d5 netpoll_poll +EXPORT_SYMBOL vmlinux 0x4bf19f20 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x4bf631eb bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x4c046efd page_symlink +EXPORT_SYMBOL vmlinux 0x4c057e2a mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2814bb dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c2be2f1 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x4c41f3da tcf_hash_search +EXPORT_SYMBOL vmlinux 0x4c4d4d5b mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x4c599140 audit_log_end +EXPORT_SYMBOL vmlinux 0x4c70ca66 generic_show_options +EXPORT_SYMBOL vmlinux 0x4c98e36e eth_header_cache +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cf21ee2 mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0x4d171c04 register_qdisc +EXPORT_SYMBOL vmlinux 0x4d1b7c6e netif_napi_del +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d457de8 __brelse +EXPORT_SYMBOL vmlinux 0x4d59ce00 may_umount +EXPORT_SYMBOL vmlinux 0x4d59f0b1 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x4d68e953 bio_map_user +EXPORT_SYMBOL vmlinux 0x4d6a85df acpi_root_dir +EXPORT_SYMBOL vmlinux 0x4d85ce8b __destroy_inode +EXPORT_SYMBOL vmlinux 0x4db3fcfc get_sb_bdev +EXPORT_SYMBOL vmlinux 0x4db4637e ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4ddab335 file_permission +EXPORT_SYMBOL vmlinux 0x4de90bac jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfc3a66 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e472ac1 llc_sap_open +EXPORT_SYMBOL vmlinux 0x4e54334e eth_mac_addr +EXPORT_SYMBOL vmlinux 0x4e5599e5 mddev_congested +EXPORT_SYMBOL vmlinux 0x4e5e8c0e security_path_chmod +EXPORT_SYMBOL vmlinux 0x4e6ce725 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e6edf4e xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x4e743069 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x4e7b85be netif_carrier_off +EXPORT_SYMBOL vmlinux 0x4e81703a ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4eb2f725 tcp_poll +EXPORT_SYMBOL vmlinux 0x4ed1fb1f bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x4ede74fc skb_trim +EXPORT_SYMBOL vmlinux 0x4ef18376 register_key_type +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f209c66 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f842cf7 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x4f934c27 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x4fa660ba pid_task +EXPORT_SYMBOL vmlinux 0x4fa88d22 fb_get_mode +EXPORT_SYMBOL vmlinux 0x4fafe8ba mark_page_accessed +EXPORT_SYMBOL vmlinux 0x4fbe93a7 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x4fca05a6 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x4fca59e3 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5029f0cf bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x502fa72c block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x504c00eb task_nice +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x50641111 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x5098019c pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x50b847f0 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x50c30c36 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x50ca5774 generic_permission +EXPORT_SYMBOL vmlinux 0x50e28ddf blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x50e73cb4 dm_put_device +EXPORT_SYMBOL vmlinux 0x51156371 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x5162080a k8_northbridges +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL vmlinux 0x519bebad skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x51bcc5ac poll_initwait +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51d4bb56 pci_release_regions +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e49f77 get_io_context +EXPORT_SYMBOL vmlinux 0x51e989a6 cdev_init +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f6286b phy_device_free +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x52231fc6 llc_sap_close +EXPORT_SYMBOL vmlinux 0x522ac811 is_container_init +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x5239b676 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x523c7e64 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x52872b97 ida_destroy +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a226a3 dev_driver_string +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x52f4badb pnp_register_driver +EXPORT_SYMBOL vmlinux 0x52f61ede inet_frag_find +EXPORT_SYMBOL vmlinux 0x52f8442a scsi_scan_target +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531719e8 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x531dbb8d bdi_register +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53334885 misc_deregister +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x53582f70 vm_map_ram +EXPORT_SYMBOL vmlinux 0x535b5341 audit_log_format +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x538bb31d d_path +EXPORT_SYMBOL vmlinux 0x53b1ba32 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53cb9729 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x53cc8ad0 blkdev_put +EXPORT_SYMBOL vmlinux 0x53d48cc1 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x53e633d1 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x53eea4ef dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x53f024fd module_layout +EXPORT_SYMBOL vmlinux 0x54005641 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x54227049 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x54241cab kill_pgrp +EXPORT_SYMBOL vmlinux 0x54274758 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542e3192 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x542e5cfa netlink_set_err +EXPORT_SYMBOL vmlinux 0x543d368f xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x545f2e95 rt6_lookup +EXPORT_SYMBOL vmlinux 0x546c7b79 xrlim_allow +EXPORT_SYMBOL vmlinux 0x54743384 iunique +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54b15b39 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x54d5e95a arp_broken_ops +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f57bc0 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x54f78e17 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x54ffb887 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x5507eecc ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x55170f71 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x55377462 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x556c7bf7 km_policy_notify +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55bb65d1 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x55cac4fe fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x55d6a430 block_write_full_page +EXPORT_SYMBOL vmlinux 0x55d8a10c eth_validate_addr +EXPORT_SYMBOL vmlinux 0x55fdf754 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x561d412f set_device_ro +EXPORT_SYMBOL vmlinux 0x561e3478 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x56210ad0 elv_add_request +EXPORT_SYMBOL vmlinux 0x5623aa74 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x56274007 cdev_del +EXPORT_SYMBOL vmlinux 0x56348d0d ether_setup +EXPORT_SYMBOL vmlinux 0x5634e8ab dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5668545f netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56c88ea1 d_invalidate +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x5705088a __vmalloc +EXPORT_SYMBOL vmlinux 0x5705b90a dma_set_mask +EXPORT_SYMBOL vmlinux 0x57064d72 log_start_commit +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57607858 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x576120be seq_printf +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x5774c9b6 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x5775182d mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x578818e4 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57c5f6eb phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x57c98539 do_splice_to +EXPORT_SYMBOL vmlinux 0x57cd0122 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x57d2e73e pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57dc56e7 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x58209b2c fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583d4cf5 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x58865fee consume_skb +EXPORT_SYMBOL vmlinux 0x588c94e4 kobject_put +EXPORT_SYMBOL vmlinux 0x5890c8c8 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58dcf339 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x58e5e640 iget_failed +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x590958df tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x59247806 kill_pid +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy +EXPORT_SYMBOL vmlinux 0x59632d8a skb_seq_read +EXPORT_SYMBOL vmlinux 0x5965a9e1 proc_symlink +EXPORT_SYMBOL vmlinux 0x597d114a bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x59842878 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x59944da4 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x59ba8070 __page_symlink +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a36b192 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x5a36c195 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a4cdf6e dqget +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7e8487 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x5a981186 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x5a9f6f68 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x5aa5aa53 sock_create_lite +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ac94d45 replace_mount_options +EXPORT_SYMBOL vmlinux 0x5acea58a tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x5acf0a9c pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x5ade9afe journal_check_available_features +EXPORT_SYMBOL vmlinux 0x5adf66ae generic_file_open +EXPORT_SYMBOL vmlinux 0x5ae771a7 cdrom_open +EXPORT_SYMBOL vmlinux 0x5b08be95 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b266973 rtnl_notify +EXPORT_SYMBOL vmlinux 0x5b31812d __napi_schedule +EXPORT_SYMBOL vmlinux 0x5b3c720f try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x5b4954c5 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b7f48c3 skb_insert +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5b8cb673 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x5bb61ac3 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x5bfb5530 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x5c04cdfc rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x5c55562f ps2_begin_command +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c7182c6 vfs_unlink +EXPORT_SYMBOL vmlinux 0x5c881ba9 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x5c90ac2b in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5cc5443b mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x5d0cd7f3 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x5d179496 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x5d3fb82b netdev_state_change +EXPORT_SYMBOL vmlinux 0x5d45fcda bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x5d47d967 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x5d4914d4 tty_kref_put +EXPORT_SYMBOL vmlinux 0x5d5e7200 unregister_nls +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5dc85366 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x5dda40f4 simple_lookup +EXPORT_SYMBOL vmlinux 0x5ddb64d0 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x5ddc02f8 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x5de05235 mca_bus_type +EXPORT_SYMBOL vmlinux 0x5de9f72b journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e478c67 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x5e7db207 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x5e7ef6cb cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x5e8ec96e ll_rw_block +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ebb97b6 kick_iocb +EXPORT_SYMBOL vmlinux 0x5ec5b7a7 pipe_unlock +EXPORT_SYMBOL vmlinux 0x5ec9e388 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee284fb tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f4e3467 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x5f504806 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x5f8ec39f jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x5f91aceb sock_update_classid +EXPORT_SYMBOL vmlinux 0x5fb741a8 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x606b133c skb_find_text +EXPORT_SYMBOL vmlinux 0x60705691 sget +EXPORT_SYMBOL vmlinux 0x60857ce0 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x608d71a5 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x609ad0fb __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b92da6 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x610e8fe1 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x610e9aa7 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x6117c8ec scsi_device_get +EXPORT_SYMBOL vmlinux 0x61187cd4 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6123d33c ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612a244d tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61a8826c __mutex_init +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d3ac46 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x61d76155 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x61de1329 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x62062d29 processors +EXPORT_SYMBOL vmlinux 0x621fbd4b sg_miter_stop +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x623183e9 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x6245de6c tty_port_close +EXPORT_SYMBOL vmlinux 0x625f8c7d tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628e6333 iput +EXPORT_SYMBOL vmlinux 0x629c3bcf tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x62b902db bitmap_unplug +EXPORT_SYMBOL vmlinux 0x62c17bbe dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x63027aa0 dm_io +EXPORT_SYMBOL vmlinux 0x636626e7 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63b77a49 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x63cfcbcd __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x63ddc61b pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x63de88e3 napi_get_frags +EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x63fd49e9 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6414a618 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64541a0c nf_log_register +EXPORT_SYMBOL vmlinux 0x645848cb fb_pan_display +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x649039c7 skb_set_dev +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64d437e9 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64fec79d names_cachep +EXPORT_SYMBOL vmlinux 0x65062683 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65442e21 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x654efa46 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x6576d92d scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x658b5015 vfs_symlink +EXPORT_SYMBOL vmlinux 0x65d1e37b phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x65e0e395 pci_request_regions +EXPORT_SYMBOL vmlinux 0x65f6d0c5 filp_close +EXPORT_SYMBOL vmlinux 0x660c6968 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x66189f0c kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x66416e3d bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x6667b1cc skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a31e28 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x66ed7950 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x66fdcf95 genphy_suspend +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x6779e3cf noop_llseek +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x6788c4d7 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x679c8db6 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c002e9 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x67d9f895 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x67dac4f6 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x67e0109f neigh_create +EXPORT_SYMBOL vmlinux 0x67eb9765 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x67f69760 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x6805d4d3 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x68146245 bdi_unregister +EXPORT_SYMBOL vmlinux 0x681c58fe genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x68376723 have_submounts +EXPORT_SYMBOL vmlinux 0x6838c7ef nf_log_unregister +EXPORT_SYMBOL vmlinux 0x685a8ae3 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x685ead62 arp_create +EXPORT_SYMBOL vmlinux 0x6864c350 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x68698b8d sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6885f602 journal_flush +EXPORT_SYMBOL vmlinux 0x6888d87f udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x68a445d3 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x68b5e529 softnet_data +EXPORT_SYMBOL vmlinux 0x68cf0d31 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x68e6968c framebuffer_release +EXPORT_SYMBOL vmlinux 0x68fd09a7 tty_set_operations +EXPORT_SYMBOL vmlinux 0x691b4a91 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x69228d2e blk_unplug +EXPORT_SYMBOL vmlinux 0x692f19db nf_getsockopt +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69be6a2c neigh_connected_output +EXPORT_SYMBOL vmlinux 0x69bf61f3 submit_bio +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69ce2bd9 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e053bc cdev_alloc +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f7ae62 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a2576f3 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a456ca1 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x6a4a9105 input_open_device +EXPORT_SYMBOL vmlinux 0x6a565945 invalidate_partition +EXPORT_SYMBOL vmlinux 0x6a585b30 journal_clear_err +EXPORT_SYMBOL vmlinux 0x6a5d2958 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x6a5dbe7c mpage_writepages +EXPORT_SYMBOL vmlinux 0x6a6876ce napi_frags_finish +EXPORT_SYMBOL vmlinux 0x6a755eeb dev_mc_add +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a96e307 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x6ab98a64 find_get_page +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6af0e73c journal_restart +EXPORT_SYMBOL vmlinux 0x6b0bdcec mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b274c64 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b90025f sock_release +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6bc2731f splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c048e9e dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x6c0a89de sock_no_poll +EXPORT_SYMBOL vmlinux 0x6c0e7215 mca_device_claimed +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c2e3664 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c470aa6 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6ca9afa6 seq_putc +EXPORT_SYMBOL vmlinux 0x6cc69f52 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x6cc78e05 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x6cd7dbb8 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6d0a1705 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x6d0e438e jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x6d1f8f85 dquot_operations +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d543fb5 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d734cf1 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x6d788946 __register_chrdev +EXPORT_SYMBOL vmlinux 0x6d93bba9 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x6dac96ee skb_queue_head +EXPORT_SYMBOL vmlinux 0x6dbee6d8 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x6dd0ab08 phy_stop +EXPORT_SYMBOL vmlinux 0x6de6b230 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x6de6c499 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x6deac44e block_prepare_write +EXPORT_SYMBOL vmlinux 0x6deee391 sync_inode +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6defdd8c jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x6df30162 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x6df91c74 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x6dfdaa40 vm_insert_page +EXPORT_SYMBOL vmlinux 0x6e0ecbda neigh_lookup +EXPORT_SYMBOL vmlinux 0x6e3ecc9c cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x6e6080d5 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e766ea1 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eb446c6 __find_get_block +EXPORT_SYMBOL vmlinux 0x6eeff32f filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x6f1df86a page_put_link +EXPORT_SYMBOL vmlinux 0x6f2178e5 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f43583a blkdev_fsync +EXPORT_SYMBOL vmlinux 0x6f453ba5 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f715643 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x6f71c1e5 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70014ef9 __pagevec_release +EXPORT_SYMBOL vmlinux 0x7012195d __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x701a21a1 inode_init_always +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x70239cdf cfb_copyarea +EXPORT_SYMBOL vmlinux 0x70458cbf simple_release_fs +EXPORT_SYMBOL vmlinux 0x704fc712 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x704ffb10 udp_poll +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x7078b518 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x709bead0 dentry_unhash +EXPORT_SYMBOL vmlinux 0x70a004fc phy_attach_direct +EXPORT_SYMBOL vmlinux 0x70a38e54 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x70b0deb1 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d6d216 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70d94301 get_phy_device +EXPORT_SYMBOL vmlinux 0x70fd2fca dquot_transfer +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x715ae71a fb_find_mode +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7189e7ea qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71e1b3ae nf_ct_attach +EXPORT_SYMBOL vmlinux 0x71f68daf nf_register_hook +EXPORT_SYMBOL vmlinux 0x721ff515 wake_up_process +EXPORT_SYMBOL vmlinux 0x7228b56c tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x7239cf63 mdiobus_write +EXPORT_SYMBOL vmlinux 0x725730a8 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bceb97 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x72bd0ae3 get_sb_single +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72e457bc jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x73177a8c i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x7319671d phy_start +EXPORT_SYMBOL vmlinux 0x7329d212 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x73525b12 register_netdev +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x73670605 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x73742d62 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x7386012b tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x7387da78 set_security_override +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x739dc9c1 simple_unlink +EXPORT_SYMBOL vmlinux 0x73af0115 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x73d0bf2a llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x73da5f23 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x7424da9f dev_close +EXPORT_SYMBOL vmlinux 0x742de4ec bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x742f3c86 pnp_find_dev +EXPORT_SYMBOL vmlinux 0x743eb739 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x74450f40 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x74744227 ipv4_specific +EXPORT_SYMBOL vmlinux 0x74820e5e block_read_full_page +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c19b6a seq_read +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74d490dd find_lock_page +EXPORT_SYMBOL vmlinux 0x74efabde blk_peek_request +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x75330c6e skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x755b384d unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x755d194f unregister_qdisc +EXPORT_SYMBOL vmlinux 0x757c116e scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x759e20cc dcache_dir_open +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75ce7278 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x75e26f03 __devm_request_region +EXPORT_SYMBOL vmlinux 0x75ee2c5e md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x75f9f8b3 set_irq_chip +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x760fbe44 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x766b89d0 pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x7682974b pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x768edc47 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x769d6e5a phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x76ab40be find_or_create_page +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cbd14f dquot_drop +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x775b2423 read_dev_sector +EXPORT_SYMBOL vmlinux 0x7779cd89 __scm_destroy +EXPORT_SYMBOL vmlinux 0x77aa1a60 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0x77ba3431 iterate_mounts +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c41ea6 journal_wipe +EXPORT_SYMBOL vmlinux 0x77d3b9f5 sock_no_listen +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x781ed6c0 generic_write_end +EXPORT_SYMBOL vmlinux 0x782a29eb abx500_register_ops +EXPORT_SYMBOL vmlinux 0x7897dd39 generic_readlink +EXPORT_SYMBOL vmlinux 0x78a3c158 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x78a5f76e alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x78bda7c5 handle_sysrq +EXPORT_SYMBOL vmlinux 0x78d8db9e idr_get_next +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e2d72d unregister_cdrom +EXPORT_SYMBOL vmlinux 0x78e8363c md_done_sync +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x794dc286 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x795135cb __lru_cache_add +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79a356cc tcp_connect +EXPORT_SYMBOL vmlinux 0x79a69a5f pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79df05ff scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x79f7fa5b blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x7a07c56a journal_init_inode +EXPORT_SYMBOL vmlinux 0x7a0afbf2 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a4a7daf pci_iomap +EXPORT_SYMBOL vmlinux 0x7a953786 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x7a96b5e4 key_unlink +EXPORT_SYMBOL vmlinux 0x7aa59e5b tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b504d5a register_sysrq_key +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b885f9b check_disk_size_change +EXPORT_SYMBOL vmlinux 0x7b9e983f cpu_info +EXPORT_SYMBOL vmlinux 0x7ba25072 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c24749c register_cdrom +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c539fa8 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c886c6b dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7caf5f80 key_put +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7ce3682f key_type_keyring +EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x7cf4ab6f scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d162f00 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x7d23862d single_open +EXPORT_SYMBOL vmlinux 0x7d2f20f6 file_remove_suid +EXPORT_SYMBOL vmlinux 0x7d306b1b jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x7d3d3c4e set_blocksize +EXPORT_SYMBOL vmlinux 0x7d4cd680 get_super +EXPORT_SYMBOL vmlinux 0x7d76a080 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x7d98b801 generic_write_sync +EXPORT_SYMBOL vmlinux 0x7da5579e redraw_screen +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dcc4be4 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dead6c1 __breadahead +EXPORT_SYMBOL vmlinux 0x7e0abb2f journal_create +EXPORT_SYMBOL vmlinux 0x7e137441 bio_clone +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e1ef3f4 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x7e307ff8 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e52fc8f path_put +EXPORT_SYMBOL vmlinux 0x7e627925 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7e9e5307 lro_flush_all +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eb84ea8 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x7ebe1ee8 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7efbc262 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f38257c padata_free +EXPORT_SYMBOL vmlinux 0x7f3be0c3 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x7f4dde35 noop_fsync +EXPORT_SYMBOL vmlinux 0x7f543a27 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x7f6d6497 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x7f7244ab ilookup5 +EXPORT_SYMBOL vmlinux 0x7f8ad78e write_one_page +EXPORT_SYMBOL vmlinux 0x7f9d7a50 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x7f9f488d vfs_readv +EXPORT_SYMBOL vmlinux 0x7fd4e24c skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x7fefd5bd do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x7ff325a5 bioset_create +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x80ab8af9 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x80b21d6d __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x80c59410 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x80f7c140 submit_bh +EXPORT_SYMBOL vmlinux 0x81220d48 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x812d88b8 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x812de585 sock_wfree +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x817df8e3 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81b36f05 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81e071d1 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x8200fe3a pci_fixup_device +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x822bbbd2 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x823aa677 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82907c95 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82eaf410 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x83269c06 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x83411772 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x8366d9dc rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83a7503a inode_setattr +EXPORT_SYMBOL vmlinux 0x83e7adbd pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x83eb1aae keyring_search +EXPORT_SYMBOL vmlinux 0x841e180c bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x84298439 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x8432b410 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x844a290d generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x84731ae6 filp_open +EXPORT_SYMBOL vmlinux 0x848826cf skb_make_writable +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84a3e2b2 genphy_config_advert +EXPORT_SYMBOL vmlinux 0x84b3e4bd do_sync_read +EXPORT_SYMBOL vmlinux 0x84dc0887 inode_init_once +EXPORT_SYMBOL vmlinux 0x8500cc5c linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x850c161e journal_stop +EXPORT_SYMBOL vmlinux 0x8512618d tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x85200c8c free_task +EXPORT_SYMBOL vmlinux 0x8541cd62 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x854a6932 input_grab_device +EXPORT_SYMBOL vmlinux 0x854df10b spi_release_transport +EXPORT_SYMBOL vmlinux 0x8557781f pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x85617993 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x859e339a blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x859e4264 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x85a0f628 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x85aad28a md_unregister_thread +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x864a3b88 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x864c6f99 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x866255c2 flush_signals +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866de037 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86d65e22 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x86ea992c dput +EXPORT_SYMBOL vmlinux 0x86f60add tty_port_open +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x8729b8ae tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x874e4a51 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x875a37e7 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x8775376f dev_uc_add +EXPORT_SYMBOL vmlinux 0x87766680 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x87769888 tcp_check_req +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x879f7fd6 blk_rq_init +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x87c45577 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x87e8aa8d filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x880d0412 d_rehash +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881d0fec ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x8848fd22 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x8853be3b dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x8862879f splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x8866ff24 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x886a8a94 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x886fb25b vfs_read +EXPORT_SYMBOL vmlinux 0x88767f17 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x88814cbf lock_may_read +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88a22d91 dm_snap_cow +EXPORT_SYMBOL vmlinux 0x88bf974f journal_get_write_access +EXPORT_SYMBOL vmlinux 0x88c3d3b7 padata_alloc +EXPORT_SYMBOL vmlinux 0x88d26ebc fb_set_var +EXPORT_SYMBOL vmlinux 0x88f47cd5 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x88f73c7e d_add_ci +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x895bbca2 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x895bee77 seq_release_private +EXPORT_SYMBOL vmlinux 0x897288fc qdisc_reset +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89876661 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x898bf478 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x89a793cf pci_disable_msi +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89fe880d __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x8a03bf6e pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x8a083df3 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x8a13e6bb md_integrity_register +EXPORT_SYMBOL vmlinux 0x8a148091 lock_rename +EXPORT_SYMBOL vmlinux 0x8a2d8109 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x8a318b20 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x8a3a67b3 tcf_em_register +EXPORT_SYMBOL vmlinux 0x8a73982d skb_pad +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9afe33 open_by_devnum +EXPORT_SYMBOL vmlinux 0x8ab263cd abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x8b0d2059 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x8b0eda70 dqput +EXPORT_SYMBOL vmlinux 0x8b108d10 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1885c1 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b1ee675 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x8b32cb6d filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b78cc0c spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8ba660af d_lookup +EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock +EXPORT_SYMBOL vmlinux 0x8bb85f16 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x8bd403a6 mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bd69e2b dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x8c183be5 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1daa2b alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x8c21b69f open_exec +EXPORT_SYMBOL vmlinux 0x8c27f7c2 kfree_skb +EXPORT_SYMBOL vmlinux 0x8c3d7017 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x8c567c18 deactivate_super +EXPORT_SYMBOL vmlinux 0x8c8cbeeb con_copy_unimap +EXPORT_SYMBOL vmlinux 0x8c928dc1 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x8ca7dadb pci_get_class +EXPORT_SYMBOL vmlinux 0x8caa6310 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x8cab93ce vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x8cae1bcf register_snap_client +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd03c43 inode_init_owner +EXPORT_SYMBOL vmlinux 0x8cdde584 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x8ce50706 __break_lease +EXPORT_SYMBOL vmlinux 0x8cf9b3df register_quota_format +EXPORT_SYMBOL vmlinux 0x8cff8701 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x8d457914 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6f10ca eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all +EXPORT_SYMBOL vmlinux 0x8db5f0c7 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dc1a9c5 d_find_alias +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dfa1f95 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e00ab7c jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e4d38cd blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8ea707a8 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x8eabfe12 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f0847e9 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x8f0b51cf I_BDEV +EXPORT_SYMBOL vmlinux 0x8f1d5e57 soft_cursor +EXPORT_SYMBOL vmlinux 0x8f205346 elevator_init +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f83117e qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x8f849a0f netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x8f926271 thaw_super +EXPORT_SYMBOL vmlinux 0x8f989a1b lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x8f98adb5 kunmap +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fc866f4 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x901aeba7 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x9025c94d inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x90446be8 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x90449479 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x904a817e ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x904c34cb set_binfmt +EXPORT_SYMBOL vmlinux 0x905f0443 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x90758132 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a8ce97 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90d13b28 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x90dc57a7 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x90ee8534 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x9102938f seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x911a0ef7 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x912bdd8f tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91739909 journal_forget +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x91bd12df kernel_getsockname +EXPORT_SYMBOL vmlinux 0x91bf091e sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x91eaf985 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x91fb452f balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x92324dc8 blk_plug_device +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x9279d9c5 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x9283cef8 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92970139 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x92a5d52b scsi_execute_req +EXPORT_SYMBOL vmlinux 0x92f67417 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x92fd208a dev_add_pack +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930aa694 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x9316987d dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x9317baa6 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x931dad1d set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x9340f65d dev_change_flags +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x938a6c5c mmc_release_host +EXPORT_SYMBOL vmlinux 0x9394cf3f generic_file_mmap +EXPORT_SYMBOL vmlinux 0x93a2b695 seq_open +EXPORT_SYMBOL vmlinux 0x93a6d42c km_policy_expired +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93d82921 tty_free_termios +EXPORT_SYMBOL vmlinux 0x93e85212 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x93e9c125 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x93fb6d90 rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9412af3d truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x941d4778 input_get_keycode +EXPORT_SYMBOL vmlinux 0x943f10d3 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x9440f924 tty_shutdown +EXPORT_SYMBOL vmlinux 0x9445cad4 mca_device_status +EXPORT_SYMBOL vmlinux 0x94492a4d dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x94522eed lock_sock_nested +EXPORT_SYMBOL vmlinux 0x94602d61 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x9464b503 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x946832e9 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x9486b3dc ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a02fed unlock_buffer +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94ce33b9 tcp_child_process +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94d6f359 dst_alloc +EXPORT_SYMBOL vmlinux 0x94ec6528 ppp_input +EXPORT_SYMBOL vmlinux 0x950bb0b0 eth_header_parse +EXPORT_SYMBOL vmlinux 0x95128f58 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95673f03 ip6_route_output +EXPORT_SYMBOL vmlinux 0x9577f67a scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x95ae9d73 abort_creds +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x96021559 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x960e2d08 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x960f0d56 padata_stop +EXPORT_SYMBOL vmlinux 0x962fa777 icmp_send +EXPORT_SYMBOL vmlinux 0x962fc1de __ht_create_irq +EXPORT_SYMBOL vmlinux 0x96376176 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x963f8763 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x9647d023 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x9659a5d8 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x966c43ae should_remove_suid +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x968eb2ef pci_choose_state +EXPORT_SYMBOL vmlinux 0x96c23ffb mca_device_set_claim +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d44afd __secpath_destroy +EXPORT_SYMBOL vmlinux 0x96dbb2a6 request_key_async +EXPORT_SYMBOL vmlinux 0x96e18452 sock_i_ino +EXPORT_SYMBOL vmlinux 0x971927e2 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x9726e720 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x9731cc0f scsi_remove_host +EXPORT_SYMBOL vmlinux 0x974291a3 page_address +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97ca1473 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97ed0b34 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x9828a7ce i8042_install_filter +EXPORT_SYMBOL vmlinux 0x984a8711 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x9858227f padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x9865c1f7 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98c61f86 simple_write_end +EXPORT_SYMBOL vmlinux 0x98c6da44 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x98dad3ee blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x98dc2d76 input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x993abb32 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x9945f0c4 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x996896f1 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d454b9 simple_rmdir +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99fd0539 eth_header +EXPORT_SYMBOL vmlinux 0x9a16db2e mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x9a1db74e __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a786a12 serio_rescan +EXPORT_SYMBOL vmlinux 0x9aa12d36 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x9ac6405b inet_recvmsg +EXPORT_SYMBOL vmlinux 0x9ad49f58 pci_release_region +EXPORT_SYMBOL vmlinux 0x9add6ef8 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x9aeca22f set_pages_wb +EXPORT_SYMBOL vmlinux 0x9b2925c5 unregister_netdev +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b474afc md_barrier_request +EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new +EXPORT_SYMBOL vmlinux 0x9b6b7f04 dev_get_stats +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bcf0590 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c1b3798 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x9c23bcba atomic64_add_return_cx8 +EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4df631 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cba1402 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x9cdb968c sk_common_release +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cebebe0 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d051c64 da903x_query_status +EXPORT_SYMBOL vmlinux 0x9d102be7 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3e9195 revert_creds +EXPORT_SYMBOL vmlinux 0x9d7dc6b6 dcache_readdir +EXPORT_SYMBOL vmlinux 0x9db4302c find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x9db6b931 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x9dc069e3 get_phy_id +EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x9dcd8941 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x9de0b3ab tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x9df996aa blk_make_request +EXPORT_SYMBOL vmlinux 0x9df9a9e4 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x9e01871b unregister_snap_client +EXPORT_SYMBOL vmlinux 0x9e064244 blk_register_region +EXPORT_SYMBOL vmlinux 0x9e1042e0 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e41a897 simple_setattr +EXPORT_SYMBOL vmlinux 0x9e477429 datagram_poll +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e6919d2 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e8dbf82 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ea77127 copy_io_context +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ec5aba9 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x9ed59e8c scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9eed001c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f4a2bd1 set_pages_x +EXPORT_SYMBOL vmlinux 0x9f4d33a7 uart_match_port +EXPORT_SYMBOL vmlinux 0x9f5eccb1 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x9f600f07 d_alloc_name +EXPORT_SYMBOL vmlinux 0x9f60da07 sk_filter +EXPORT_SYMBOL vmlinux 0x9f8eb208 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa03b69 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc7de61 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe3eb96 pci_map_rom +EXPORT_SYMBOL vmlinux 0x9ff39796 scsi_register +EXPORT_SYMBOL vmlinux 0xa016bba7 kthread_stop +EXPORT_SYMBOL vmlinux 0xa02bd53f tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04e4b3d phy_start_aneg +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa061e893 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xa081951f xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xa092177c dquot_destroy +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0ab9219 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0c59b86 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa10891b0 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1151129 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13f8780 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa146e4dc pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xa14f0d18 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa17af934 mdiobus_register +EXPORT_SYMBOL vmlinux 0xa1a58ae3 vga_tryget +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1dbef73 bio_put +EXPORT_SYMBOL vmlinux 0xa1fce784 journal_extend +EXPORT_SYMBOL vmlinux 0xa206c6ab ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa235be40 current_task +EXPORT_SYMBOL vmlinux 0xa24d813e block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xa256be09 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0xa25d0884 lock_fb_info +EXPORT_SYMBOL vmlinux 0xa26d38f8 dev_addr_del +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2ad7149 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xa2e055de i2c_use_client +EXPORT_SYMBOL vmlinux 0xa2ee8a8b pci_remove_bus +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa3241e74 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xa3246adc dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa333b01e generic_make_request +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35d092b jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3602774 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xa362f9ef do_sync_write +EXPORT_SYMBOL vmlinux 0xa3845c67 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xa3979e7e __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xa39f5cbc eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xa3bcfef7 kunmap_high +EXPORT_SYMBOL vmlinux 0xa3e082de elv_rb_del +EXPORT_SYMBOL vmlinux 0xa3ecace7 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xa3ed8110 lease_modify +EXPORT_SYMBOL vmlinux 0xa3f4472d scsi_register_driver +EXPORT_SYMBOL vmlinux 0xa4005f59 noop_qdisc +EXPORT_SYMBOL vmlinux 0xa41cfece dev_disable_lro +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa456b06c simple_pin_fs +EXPORT_SYMBOL vmlinux 0xa456d55a jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xa46cc205 pnp_get_resource +EXPORT_SYMBOL vmlinux 0xa478ad65 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0xa4835bfa __blk_end_request +EXPORT_SYMBOL vmlinux 0xa487a29b pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xa4a7c9c2 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4be870d tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xa4c1f2a4 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xa4c7fa90 sock_create_kern +EXPORT_SYMBOL vmlinux 0xa4cb1c4b netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa52aa672 __elv_add_request +EXPORT_SYMBOL vmlinux 0xa534baed __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xa53c9c09 dma_ops +EXPORT_SYMBOL vmlinux 0xa5414afe xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xa5442e94 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa585f39a tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5c23375 mdiobus_free +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa5ede22b security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xa60b6a84 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xa60ff2c9 kunmap_atomic +EXPORT_SYMBOL vmlinux 0xa6126ff2 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xa624209d journal_force_commit +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa6513815 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xa6529b18 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xa65ca53a path_is_under +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6b3aaa0 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xa6ba2250 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xa6d80058 get_disk +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e521ee bio_unmap_user +EXPORT_SYMBOL vmlinux 0xa6f047cc ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xa6f61ca5 netif_device_attach +EXPORT_SYMBOL vmlinux 0xa7046549 vprintk +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa7a5e3b2 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xa7b451d8 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xa7c18877 console_stop +EXPORT_SYMBOL vmlinux 0xa7fb6940 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xa8035925 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xa8063a28 mmc_add_host +EXPORT_SYMBOL vmlinux 0xa80a495d xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xa84d1ecf tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xa86840db generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xa87a4da6 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa8824362 posix_lock_file +EXPORT_SYMBOL vmlinux 0xa88d76c9 pnp_is_active +EXPORT_SYMBOL vmlinux 0xa89e43f6 pci_target_state +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8baa8bf vfs_mknod +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8f19de5 pci_find_bus +EXPORT_SYMBOL vmlinux 0xa8fddab2 genphy_read_status +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa93da25c vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xa940695e sk_dst_check +EXPORT_SYMBOL vmlinux 0xa97e3ec3 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xa98bef4e kmap +EXPORT_SYMBOL vmlinux 0xa9af701b cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9e50fab pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xaa128322 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0xaa1c5297 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xaa206c58 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xaa399311 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xaa3ad5c5 key_validate +EXPORT_SYMBOL vmlinux 0xaa80dc6b module_put +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa843787 devm_ioremap +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa86065c dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaad89e97 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xaae76a08 backlight_force_update +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafafedf setup_new_exec +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab31e4e3 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xab5297e0 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xab580553 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab820d82 udplite_prot +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabf049bc bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xabf603c4 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xac06d325 ps2_drain +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac47b629 locks_init_lock +EXPORT_SYMBOL vmlinux 0xac56b214 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac59092f serio_reconnect +EXPORT_SYMBOL vmlinux 0xac603e4f tcp_prot +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0xac8cf797 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xacb671a4 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace4a4e1 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xace5e6e2 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf75eed ip6_xmit +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad06b095 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad1dd015 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xad3caac0 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xad414a49 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad65fcd9 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xad9e7b6c check_disk_change +EXPORT_SYMBOL vmlinux 0xad9fbbba gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xada42dde generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadd8608b bio_phys_segments +EXPORT_SYMBOL vmlinux 0xadde5360 alloc_disk +EXPORT_SYMBOL vmlinux 0xadf2200a pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xae1e6a57 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xae3d0f88 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xae3ee1b4 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xae435f8d task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xae5fee4c generic_read_dir +EXPORT_SYMBOL vmlinux 0xae6320f6 kernel_connect +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xae8cbe81 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeb87a53 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xaec078cd scsi_host_get +EXPORT_SYMBOL vmlinux 0xaec2b6ae devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaecde0a3 sock_init_data +EXPORT_SYMBOL vmlinux 0xaed100b2 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xaefa2e52 sock_no_getname +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf42ff1e dev_load +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf50f731 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf832938 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xafaa2d1d take_over_console +EXPORT_SYMBOL vmlinux 0xafc6e743 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xafda0c0d dump_trace +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb027f40d input_free_device +EXPORT_SYMBOL vmlinux 0xb0405db0 journal_set_features +EXPORT_SYMBOL vmlinux 0xb07168c2 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb08b8519 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xb0a122db pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xb0a17ac5 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0ba9b8c generic_setxattr +EXPORT_SYMBOL vmlinux 0xb0c5bedf generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xb0d12ab8 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0xb0d4d341 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xb0d81a8b dev_get_flags +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e97676 sock_register +EXPORT_SYMBOL vmlinux 0xb0fad7b7 __bforget +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb11f544c ip_setsockopt +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb1693741 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xb173668a vlan_gro_frags +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1e614d5 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb219f7b3 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xb21d3461 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xb224866f mca_device_read_pos +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22bf6b3 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb27c9ec0 file_update_time +EXPORT_SYMBOL vmlinux 0xb27e13bc input_inject_event +EXPORT_SYMBOL vmlinux 0xb2d65b0d vc_resize +EXPORT_SYMBOL vmlinux 0xb2d78265 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +EXPORT_SYMBOL vmlinux 0xb2f57e2e bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb332ea02 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb34fe7e9 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb39f38e7 mca_device_set_name +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3ac17e7 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xb3ae9d77 lock_super +EXPORT_SYMBOL vmlinux 0xb3c17972 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xb3c91cd1 register_gifconf +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb3e89264 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xb3fd08fa uart_suspend_port +EXPORT_SYMBOL vmlinux 0xb40d535c llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xb41e971a jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb42ad1cb generic_write_checks +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb44692d1 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4885e7e xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xb4916acc ppp_unit_number +EXPORT_SYMBOL vmlinux 0xb4c16829 cdev_index +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb50c0e51 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xb5267835 kset_unregister +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5468313 ip_defrag +EXPORT_SYMBOL vmlinux 0xb547a400 tcp_close +EXPORT_SYMBOL vmlinux 0xb55c987d input_allocate_device +EXPORT_SYMBOL vmlinux 0xb5762edd xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xb58a969d vga_get +EXPORT_SYMBOL vmlinux 0xb59120d9 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5b5489f dm_register_target +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5f866ab blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xb5fe99ef sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xb607a30c journal_revoke +EXPORT_SYMBOL vmlinux 0xb60d63f4 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xb615bf19 eth_change_mtu +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6292a69 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xb651a9c5 register_nls +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb69ca53e sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe170 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xb6e0eadb ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xb6e6b1a0 remove_inode_hash +EXPORT_SYMBOL vmlinux 0xb6e84445 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6f75773 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xb6fa6876 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xb6fad23b delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0xb70d252a md_register_thread +EXPORT_SYMBOL vmlinux 0xb7216b97 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xb722a7dd dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xb72397d5 printk +EXPORT_SYMBOL vmlinux 0xb73a459e ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb76cd7f6 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xb77fd114 force_sig +EXPORT_SYMBOL vmlinux 0xb786a260 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xb78c0623 add_disk +EXPORT_SYMBOL vmlinux 0xb7908e72 pci_bus_type +EXPORT_SYMBOL vmlinux 0xb790cf6a jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xb79e3e7c sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7bf6644 pci_pme_active +EXPORT_SYMBOL vmlinux 0xb7e54587 follow_pfn +EXPORT_SYMBOL vmlinux 0xb82d97ac release_firmware +EXPORT_SYMBOL vmlinux 0xb84cc1ca security_file_mmap +EXPORT_SYMBOL vmlinux 0xb855a0ca dm_get_device +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb89ecf66 km_state_expired +EXPORT_SYMBOL vmlinux 0xb8ab4517 mpage_writepage +EXPORT_SYMBOL vmlinux 0xb8b8c949 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xb8c6ffeb mutex_lock +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8f8452e unlock_new_inode +EXPORT_SYMBOL vmlinux 0xb9068dda dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb9135605 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xb9225aca init_task +EXPORT_SYMBOL vmlinux 0xb93bcac1 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xb942b513 smp_call_function_many +EXPORT_SYMBOL vmlinux 0xb94726d6 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xb9597370 contig_page_data +EXPORT_SYMBOL vmlinux 0xb96ecac8 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0xb9893e6c __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9c3f272 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xb9dc63d7 key_revoke +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9fa5126 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xb9fc8833 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba01a008 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xba027c72 unlock_page +EXPORT_SYMBOL vmlinux 0xba20ca0e spi_dv_device +EXPORT_SYMBOL vmlinux 0xba216baa dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba35e85f scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xba3cc386 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5b721c tcf_action_exec +EXPORT_SYMBOL vmlinux 0xba63d466 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xba7b09c1 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xba8a5b78 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xba8b0dc3 inet6_getname +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaacaff6 seq_write +EXPORT_SYMBOL vmlinux 0xbaaf3a51 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xbab40e3a tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xbac3df44 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xbac59aa4 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xbad39e73 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbad8e261 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xbadce825 journal_start_commit +EXPORT_SYMBOL vmlinux 0xbae981bf neigh_for_each +EXPORT_SYMBOL vmlinux 0xbb0ed5b6 pipe_to_file +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbb9f309e xfrm_lookup +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbd11660 acpi_device_hid +EXPORT_SYMBOL vmlinux 0xbbf1bb59 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xbc0d3d3f brioctl_set +EXPORT_SYMBOL vmlinux 0xbc0dc1e1 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc331204 pci_request_region +EXPORT_SYMBOL vmlinux 0xbc3446eb nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xbc396ee5 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xbc5d573f xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0xbc5f486f netif_napi_add +EXPORT_SYMBOL vmlinux 0xbc839126 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xbc87a505 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xbc89b89f sk_alloc +EXPORT_SYMBOL vmlinux 0xbca6c446 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xbcc24f99 get_fs_type +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbce0a9b7 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xbce77b50 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xbcefb567 dma_pool_create +EXPORT_SYMBOL vmlinux 0xbd083b87 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbd5779a2 elv_rb_find +EXPORT_SYMBOL vmlinux 0xbd5af5af __dquot_transfer +EXPORT_SYMBOL vmlinux 0xbd702430 pci_set_master +EXPORT_SYMBOL vmlinux 0xbd7a537e find_vma +EXPORT_SYMBOL vmlinux 0xbda28bae dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xbdcdb110 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xbdebb6f3 idr_find +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdfaec87 register_md_personality +EXPORT_SYMBOL vmlinux 0xbe07cc1f blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe5152de cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xbec83b95 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xbed5cb21 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xbeef5c0a blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf2c6909 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xbf328f92 key_alloc +EXPORT_SYMBOL vmlinux 0xbf4a63f6 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf8f7c39 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb247fc seq_path +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc45cf2 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xbfca550d generic_getxattr +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc0018a01 dev_addr_add +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc007175a ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc0278d19 get_gendisk +EXPORT_SYMBOL vmlinux 0xc0488349 netpoll_setup +EXPORT_SYMBOL vmlinux 0xc04e079f pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05cddbd block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xc07f313f sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0937ac3 ps2_init +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0cb8498 hippi_type_trans +EXPORT_SYMBOL vmlinux 0xc0e029e6 bio_init +EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc12f8bf7 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xc138ef90 kmap_atomic +EXPORT_SYMBOL vmlinux 0xc139bcc4 send_sig_info +EXPORT_SYMBOL vmlinux 0xc1406759 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc19634b2 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xc19ed246 tty_register_device +EXPORT_SYMBOL vmlinux 0xc1abebe7 x86_hyper +EXPORT_SYMBOL vmlinux 0xc1baffb3 md_write_start +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1ed01e6 acpi_bus_add +EXPORT_SYMBOL vmlinux 0xc224aadb nobh_write_end +EXPORT_SYMBOL vmlinux 0xc224ef83 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xc2325bd5 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xc2499d67 __lock_page +EXPORT_SYMBOL vmlinux 0xc255787e sock_map_fd +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26d5fe4 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xc26f8c21 genphy_resume +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc2acf802 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xc2acfbef con_is_bound +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2d91b65 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f7aae8 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xc2faa2cf dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0xc31dd1e6 block_commit_write +EXPORT_SYMBOL vmlinux 0xc31ea431 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc364079d netif_receive_skb +EXPORT_SYMBOL vmlinux 0xc36e1f85 __serio_register_port +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc39f2e9b dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3ce4817 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3e682e3 ilookup +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc4029f6a seq_lseek +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc447a7a5 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xc488294a netlink_ack +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a71e6c load_nls_default +EXPORT_SYMBOL vmlinux 0xc4ac5dea pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e5e02c thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5352141 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xc5492dca commit_creds +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc58bcf5d dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xc598104b unload_nls +EXPORT_SYMBOL vmlinux 0xc5bb4092 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xc5ced2e9 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xc5eaeab6 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xc63c8be6 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0xc6472f4b sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xc64e9b61 __free_pages +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc69948e3 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xc6a50188 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xc6a6d467 dquot_initialize +EXPORT_SYMBOL vmlinux 0xc6d017ba scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xc6d3abc9 tty_hangup +EXPORT_SYMBOL vmlinux 0xc6de48d8 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xc6de668c dev_gro_receive +EXPORT_SYMBOL vmlinux 0xc6e5daf3 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xc7059ab9 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xc707ebbd xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc72c5014 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xc761bd77 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a7e40c f_setown +EXPORT_SYMBOL vmlinux 0xc7a9e169 pci_get_device +EXPORT_SYMBOL vmlinux 0xc7b3efe1 start_tty +EXPORT_SYMBOL vmlinux 0xc7c8ec31 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc8061328 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xc80a3868 read_cache_pages +EXPORT_SYMBOL vmlinux 0xc80eb056 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xc81f5a3c mmc_request_done +EXPORT_SYMBOL vmlinux 0xc82264aa xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84a85c0 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xc862f8f8 d_alloc +EXPORT_SYMBOL vmlinux 0xc863133b dm_exception_store_create +EXPORT_SYMBOL vmlinux 0xc86734c2 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xc8755817 eisa_bus_type +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a2921a lookup_bdev +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8f36fba nla_append +EXPORT_SYMBOL vmlinux 0xc91a036c __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xc923ff52 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xc95228ad scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xc95a0e97 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xc96d730e kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xc97e4c3d new_inode +EXPORT_SYMBOL vmlinux 0xc9861294 scsi_print_result +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9aa0057 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9e8b616 mmc_free_host +EXPORT_SYMBOL vmlinux 0xc9fe2216 __getblk +EXPORT_SYMBOL vmlinux 0xca01cebd proto_register +EXPORT_SYMBOL vmlinux 0xca398aa1 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xca3d021e __blk_run_queue +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca74c327 invalidate_inodes +EXPORT_SYMBOL vmlinux 0xca7506e8 inode_change_ok +EXPORT_SYMBOL vmlinux 0xca7f2c6c boot_cpu_data +EXPORT_SYMBOL vmlinux 0xca849784 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xca8727e9 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca957078 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xcaa824e9 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcac4309c thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcb079eac input_flush_device +EXPORT_SYMBOL vmlinux 0xcb15ef7e pci_save_state +EXPORT_SYMBOL vmlinux 0xcb446d40 clear_inode +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb7e61cd __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xcb7fdf36 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xcba95cc9 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xcbbc7e58 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xcc0e2ba5 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc24bf10 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xcc345944 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc4ba7a0 register_netdevice +EXPORT_SYMBOL vmlinux 0xcc4bf64d del_gendisk +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc51e0e8 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc89e9ec tty_throttle +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xcca711d7 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xcccd8f56 misc_register +EXPORT_SYMBOL vmlinux 0xccdcfdeb simple_readpage +EXPORT_SYMBOL vmlinux 0xccfda0f1 bio_free +EXPORT_SYMBOL vmlinux 0xcd4b4c28 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xcd56c22d __put_cred +EXPORT_SYMBOL vmlinux 0xcd80db11 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xcda23320 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0xcdc31115 put_disk +EXPORT_SYMBOL vmlinux 0xcdcf5cf2 register_exec_domain +EXPORT_SYMBOL vmlinux 0xcde3bd14 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xce0318fc __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xce10ca7e devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xce18500a tcp_proc_register +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xce6e4b2b generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xce7b7122 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xce868bd5 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xceb002d5 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xcedf3406 registered_fb +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xceff133d may_umount_tree +EXPORT_SYMBOL vmlinux 0xcf17c384 make_EII_client +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf2e7bfd tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xcf3b5579 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xcf5ed1ca jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf8e2374 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xcf8f98bc seq_release +EXPORT_SYMBOL vmlinux 0xcf93311e blkdev_get +EXPORT_SYMBOL vmlinux 0xcf977b74 proc_create_data +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xcfe9a499 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xcfeab121 create_proc_entry +EXPORT_SYMBOL vmlinux 0xcff9c96f set_bh_page +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01babbb register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd044af96 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xd0469b08 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xd050a2de block_truncate_page +EXPORT_SYMBOL vmlinux 0xd0635db8 genphy_update_link +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0cedff1 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0df01a6 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fa60dd freeze_bdev +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd100a6f6 napi_complete +EXPORT_SYMBOL vmlinux 0xd11411da nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xd13c2b97 __scsi_add_device +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd159d37e skb_dequeue +EXPORT_SYMBOL vmlinux 0xd16cc03c inode_needs_sync +EXPORT_SYMBOL vmlinux 0xd189ca44 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1919084 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xd1c2c9dc scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xd1c4291b uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xd1d22d7a tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1fa6028 slow_work_cancel +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd24e7b2d vfs_llseek +EXPORT_SYMBOL vmlinux 0xd250c08a max8925_reg_read +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd253b867 fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd27b22fa pnp_possible_config +EXPORT_SYMBOL vmlinux 0xd27d02dc pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29695b0 console_start +EXPORT_SYMBOL vmlinux 0xd2a684b0 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2b4718d journal_ack_err +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2e76fa4 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xd2e8dda7 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xd2f4d670 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xd30b3d85 init_net +EXPORT_SYMBOL vmlinux 0xd31df156 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xd331a915 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd3453eaf pci_match_id +EXPORT_SYMBOL vmlinux 0xd3697a67 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xd383107d kobject_add +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3dbfd26 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xd401b62f xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xd4736158 lock_may_write +EXPORT_SYMBOL vmlinux 0xd4a14b18 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xd4a27b2a rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xd4bb8df9 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xd4d0ee3b kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd51653ed simple_getattr +EXPORT_SYMBOL vmlinux 0xd5167af2 fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0xd5175a47 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5336de7 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xd54b6320 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd572d6c7 md_write_end +EXPORT_SYMBOL vmlinux 0xd597f9d8 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xd5a02735 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xd5a0da33 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xd5ae8d88 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5d5b3ce locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xd5f73e7f dma_pool_free +EXPORT_SYMBOL vmlinux 0xd6105111 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd61dc016 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd68c68b9 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6ada1b4 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6b8e6e0 cad_pid +EXPORT_SYMBOL vmlinux 0xd6c75408 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f15839 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd728c0b9 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xd74f687a unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xd7610e2d __lookup_one_len +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd781f345 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xd7860a0b security_path_symlink +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd79ff504 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xd7c99098 nobh_writepage +EXPORT_SYMBOL vmlinux 0xd7d0c645 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xd7d66cd7 simple_setsize +EXPORT_SYMBOL vmlinux 0xd7da144e tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7f36812 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xd809ab48 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xd80c597e skb_gso_segment +EXPORT_SYMBOL vmlinux 0xd81953ec generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xd825a0df arp_tbl +EXPORT_SYMBOL vmlinux 0xd8365e3f ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xd83c2093 alloc_trdev +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd85ba9fa request_key +EXPORT_SYMBOL vmlinux 0xd87dc67f sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xd89298b4 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8aa4d4f inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xd8b92c6d blk_fetch_request +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ed7867 generic_listxattr +EXPORT_SYMBOL vmlinux 0xd8ff4bff tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xd900b57c pipe_lock +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd90b2159 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xd91af1c5 proto_unregister +EXPORT_SYMBOL vmlinux 0xd9251d44 dquot_disable +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9877161 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9c277cf netif_rx_ni +EXPORT_SYMBOL vmlinux 0xd9e0e502 d_alloc_root +EXPORT_SYMBOL vmlinux 0xd9eefdf3 __dst_free +EXPORT_SYMBOL vmlinux 0xd9ef4f47 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xd9f89942 neigh_destroy +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda335b73 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0xda390881 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xda511860 fb_show_logo +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda59802b sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xda5b5c54 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xda7589e9 padata_start +EXPORT_SYMBOL vmlinux 0xda7b4da5 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda81722f bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xdaa1db34 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdad4f008 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xdb1f01b6 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xdb80db59 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb8ce0dc scsi_finish_command +EXPORT_SYMBOL vmlinux 0xdb911502 scsi_execute +EXPORT_SYMBOL vmlinux 0xdba80c7e udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xdbc2a5d6 security_path_mknod +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd9a056 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xdbe08d7f input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdbf9d7fc backlight_device_register +EXPORT_SYMBOL vmlinux 0xdbfb5d90 bdi_destroy +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc195a19 path_get +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc57e1f1 inet_addr_type +EXPORT_SYMBOL vmlinux 0xdc985f09 override_creds +EXPORT_SYMBOL vmlinux 0xdc9fa348 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca0ed4e gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd300dd5 simple_rename +EXPORT_SYMBOL vmlinux 0xdd467a8d dev_get_by_index +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd877b28 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xddc015b0 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xdded25ea __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xde08eb6e end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xde290df1 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xde3691c2 cdev_add +EXPORT_SYMBOL vmlinux 0xde389cad vfs_rename +EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xde5ddf24 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xde6bb3cc md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xde713782 set_disk_ro +EXPORT_SYMBOL vmlinux 0xde74ee2d elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde77e1a1 pskb_copy +EXPORT_SYMBOL vmlinux 0xde7f1c09 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdeb1dfd8 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xdede77e0 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xdee49744 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdf0c7a67 vfs_create +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf3da75b lease_get_mtime +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf5a3e41 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf682c48 sock_create +EXPORT_SYMBOL vmlinux 0xdf776ce5 module_refcount +EXPORT_SYMBOL vmlinux 0xdf78a2e2 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xdf859ec1 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf9587c0 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0xdfbba96c pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfce1195 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xdfe34ca9 __nla_reserve +EXPORT_SYMBOL vmlinux 0xdffc6811 kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0xe0070c33 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xe00da44c scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xe05bd886 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xe06edf75 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xe071cce5 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe08bcbdc mark_info_dirty +EXPORT_SYMBOL vmlinux 0xe0a5d824 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xe0a6dd88 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0c5aa5f fddi_type_trans +EXPORT_SYMBOL vmlinux 0xe0d7445e generic_writepages +EXPORT_SYMBOL vmlinux 0xe100f362 kobject_init +EXPORT_SYMBOL vmlinux 0xe1101d22 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0xe11b33f3 security_path_truncate +EXPORT_SYMBOL vmlinux 0xe12bd527 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xe1332b89 do_SAK +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe15cd5fc put_io_context +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1c92c66 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xe1d03bab max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xe1e2ee6f neigh_update +EXPORT_SYMBOL vmlinux 0xe1f762d0 proc_mkdir +EXPORT_SYMBOL vmlinux 0xe1fb8cb6 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xe2346979 unlock_rename +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2852daf sock_i_uid +EXPORT_SYMBOL vmlinux 0xe28b4a61 udp_disconnect +EXPORT_SYMBOL vmlinux 0xe2a2660c dm_table_put +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2e866fb fb_set_cmap +EXPORT_SYMBOL vmlinux 0xe2ede203 file_fsync +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe302d5d2 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xe3101e13 tcf_register_action +EXPORT_SYMBOL vmlinux 0xe3190314 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xe3292aba alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xe329cc0c skb_free_datagram +EXPORT_SYMBOL vmlinux 0xe37e60d3 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xe3c77663 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xe3d9f05d qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xe3e1ffc2 kill_litter_super +EXPORT_SYMBOL vmlinux 0xe3e32831 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xe3e58df9 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe3fdd734 ida_remove +EXPORT_SYMBOL vmlinux 0xe4018acd __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe43c804e __bio_clone +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe4758113 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xe4787825 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe495482f pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xe4a25391 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xe4ac34ce sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xe4cda99f journal_errno +EXPORT_SYMBOL vmlinux 0xe4e5e6cd input_unregister_handle +EXPORT_SYMBOL vmlinux 0xe4ed1e3a posix_test_lock +EXPORT_SYMBOL vmlinux 0xe5060254 mnt_pin +EXPORT_SYMBOL vmlinux 0xe509169c xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xe50c7bc6 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe538b8cc arp_send +EXPORT_SYMBOL vmlinux 0xe53da2fb journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe548e474 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0xe54e707a inet_bind +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57c52fb km_state_notify +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5bcddf9 audit_log_start +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ce50b6 bio_map_kern +EXPORT_SYMBOL vmlinux 0xe5ced7a8 block_write_end +EXPORT_SYMBOL vmlinux 0xe5d5b7e3 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6060dc3 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xe61fc7d4 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xe62a0647 scsi_unregister +EXPORT_SYMBOL vmlinux 0xe62db286 tty_check_change +EXPORT_SYMBOL vmlinux 0xe6540d12 input_register_device +EXPORT_SYMBOL vmlinux 0xe665d297 bdi_init +EXPORT_SYMBOL vmlinux 0xe6732f1f tty_write_room +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6be7085 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe727f04d scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe74d4cad xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xe74d8cf8 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xe75ab583 sock_no_bind +EXPORT_SYMBOL vmlinux 0xe76085cf ip_getsockopt +EXPORT_SYMBOL vmlinux 0xe799f502 dev_mc_del +EXPORT_SYMBOL vmlinux 0xe7b15ffc ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7f68ba8 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe813ef6d fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xe814bf07 fd_install +EXPORT_SYMBOL vmlinux 0xe82fe088 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xe8309ab5 __napi_complete +EXPORT_SYMBOL vmlinux 0xe83270a0 pci_select_bars +EXPORT_SYMBOL vmlinux 0xe8380433 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xe86900bb xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe885da1b neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe8cf53b1 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xe8ff999a i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91c1e08 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xe930439f mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xe93cca99 vfs_getattr +EXPORT_SYMBOL vmlinux 0xe94699c0 dget_locked +EXPORT_SYMBOL vmlinux 0xe9872c27 simple_write_begin +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe99deeba follow_up +EXPORT_SYMBOL vmlinux 0xe9a92b56 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xe9b1fa2c seq_open_private +EXPORT_SYMBOL vmlinux 0xe9c1bb99 keyring_clear +EXPORT_SYMBOL vmlinux 0xe9d0f49e ps2_handle_response +EXPORT_SYMBOL vmlinux 0xe9e204de inet_listen +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea144399 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea337d7a inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea84d2f4 blk_init_tags +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9d8c40 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xead7d32e i2c_master_send +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb05ee63 skb_unlink +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb867538 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebdf9ab6 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xebfae6dd get_sb_ns +EXPORT_SYMBOL vmlinux 0xec0c19f8 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec165c9c dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xec1e303a bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xec44e1f3 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec593e9b inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xec60e9b9 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xec65e16e tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xec67fa6c scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xec6e99a9 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xec74c032 tty_register_driver +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xecaccc8a generic_ro_fops +EXPORT_SYMBOL vmlinux 0xecd012b5 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove +EXPORT_SYMBOL vmlinux 0xed4385b8 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xed69dd68 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedb00f93 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xedb3a132 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xedb3f373 user_path_at +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xee14331f netif_rx +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee39128b scsi_ioctl +EXPORT_SYMBOL vmlinux 0xee6efcfe generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee839f2b scsi_remove_target +EXPORT_SYMBOL vmlinux 0xee8dbac7 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xee986f42 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeebad36b generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xeec9b0ce skb_push +EXPORT_SYMBOL vmlinux 0xeef22117 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef270692 prepare_binprm +EXPORT_SYMBOL vmlinux 0xef306f64 log_wait_commit +EXPORT_SYMBOL vmlinux 0xef33d5a2 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef477f22 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xef52c264 inet_accept +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6c8845 sync_blockdev +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef77488d vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xef87ba74 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefa45f0d pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xefdd0de2 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00f2ce6 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06ad3da scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xf08aa4fe scsi_add_device +EXPORT_SYMBOL vmlinux 0xf08b7488 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0abf55e netlink_unicast +EXPORT_SYMBOL vmlinux 0xf0b65701 skb_copy +EXPORT_SYMBOL vmlinux 0xf0bd6cfe netlink_dump_start +EXPORT_SYMBOL vmlinux 0xf0c0b61f ps2_end_command +EXPORT_SYMBOL vmlinux 0xf0d03e1d skb_append +EXPORT_SYMBOL vmlinux 0xf0d09359 vc_cons +EXPORT_SYMBOL vmlinux 0xf0ea951a phy_disconnect +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf102a3fa pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xf10b9b65 nla_put +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf1174d4d set_pages_uc +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf122f24f ip_route_input_common +EXPORT_SYMBOL vmlinux 0xf1264f5e install_exec_creds +EXPORT_SYMBOL vmlinux 0xf16157b4 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf17cd66c phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xf185bd37 blk_init_queue +EXPORT_SYMBOL vmlinux 0xf18caf46 phy_device_create +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1baf01e skb_clone +EXPORT_SYMBOL vmlinux 0xf1c8cffc phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xf1d9121b kobject_set_name +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf232f1e9 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf236cf28 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xf2371713 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xf2531388 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0xf25437a1 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xf2752420 d_splice_alias +EXPORT_SYMBOL vmlinux 0xf28590f8 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xf289c27e vfs_follow_link +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a0376e user_revoke +EXPORT_SYMBOL vmlinux 0xf2b63182 pci_disable_device +EXPORT_SYMBOL vmlinux 0xf2cce559 complete_request_key +EXPORT_SYMBOL vmlinux 0xf2d75a15 no_llseek +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf304520d blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf3364abc uart_resume_port +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf345cb19 kern_path +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf371777f ppp_input_error +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf39f5245 mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0xf3b0347d pci_get_slot +EXPORT_SYMBOL vmlinux 0xf3b91fb2 dquot_alloc +EXPORT_SYMBOL vmlinux 0xf3bb025d pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ee28d0 posix_acl_permission +EXPORT_SYMBOL vmlinux 0xf3ef821d jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xf3f86c18 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0xf41c48a8 pcim_iomap +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf46936be padata_do_serial +EXPORT_SYMBOL vmlinux 0xf47b0ae4 scsi_free_command +EXPORT_SYMBOL vmlinux 0xf47b3979 km_query +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf497a142 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4acd913 deny_write_access +EXPORT_SYMBOL vmlinux 0xf4b10b7a dst_discard +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4c004da fasync_helper +EXPORT_SYMBOL vmlinux 0xf4c503db fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4fd7acc cont_write_begin +EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init +EXPORT_SYMBOL vmlinux 0xf5017d9b d_move +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf5059a2a key_payload_reserve +EXPORT_SYMBOL vmlinux 0xf50660b4 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xf50b872f ht_create_irq +EXPORT_SYMBOL vmlinux 0xf5142158 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf57f403e ip6_frag_match +EXPORT_SYMBOL vmlinux 0xf5975449 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xf5aed32c remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5dababd inet_stream_ops +EXPORT_SYMBOL vmlinux 0xf5e6b969 give_up_console +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5eee8ee acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xf5f88bec pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xf60789b2 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf6163ee2 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xf6459d69 vfs_readlink +EXPORT_SYMBOL vmlinux 0xf65502a8 input_register_handler +EXPORT_SYMBOL vmlinux 0xf65eae1f eth_type_trans +EXPORT_SYMBOL vmlinux 0xf664b364 i2c_transfer +EXPORT_SYMBOL vmlinux 0xf6895fc9 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xf69dc99e textsearch_prepare +EXPORT_SYMBOL vmlinux 0xf6a2497f i2c_release_client +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ced7a4 scsi_prep_return +EXPORT_SYMBOL vmlinux 0xf6d2a315 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xf6df39b9 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70fc41c bio_integrity_split +EXPORT_SYMBOL vmlinux 0xf732f02a default_llseek +EXPORT_SYMBOL vmlinux 0xf7474196 end_page_writeback +EXPORT_SYMBOL vmlinux 0xf74ec11a search_binary_handler +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf79c61b6 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xf7e1d79c pci_enable_device +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf8324f39 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xf850b2df sg_miter_start +EXPORT_SYMBOL vmlinux 0xf858b627 phy_device_register +EXPORT_SYMBOL vmlinux 0xf85c28f3 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xf8661c3e set_pages_nx +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf892bd14 security_path_unlink +EXPORT_SYMBOL vmlinux 0xf8b0841d zero_fill_bio +EXPORT_SYMBOL vmlinux 0xf8c307c7 mapping_tagged +EXPORT_SYMBOL vmlinux 0xf8c40452 blk_insert_request +EXPORT_SYMBOL vmlinux 0xf8d3608d blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xf8dad62a __serio_register_driver +EXPORT_SYMBOL vmlinux 0xf8e63584 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xf8f1a967 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xf8f68866 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xf90cfe59 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xf91635ff dev_remove_pack +EXPORT_SYMBOL vmlinux 0xf928b054 dentry_open +EXPORT_SYMBOL vmlinux 0xf92ca10e i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xf93eb255 mmc_host_disable +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf993136c sk_stop_timer +EXPORT_SYMBOL vmlinux 0xf9a1c6f4 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9aec597 blk_get_request +EXPORT_SYMBOL vmlinux 0xf9bdc380 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xf9f796e8 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xfa483f79 nonseekable_open +EXPORT_SYMBOL vmlinux 0xfa4ed5f0 journal_abort +EXPORT_SYMBOL vmlinux 0xfa864d60 scsi_print_command +EXPORT_SYMBOL vmlinux 0xfa931658 bdput +EXPORT_SYMBOL vmlinux 0xfaa0f436 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xfaa5d2f6 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xfaa61352 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xfac75889 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xfaccb352 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb01f9fb free_netdev +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb2f5f25 kill_fasync +EXPORT_SYMBOL vmlinux 0xfb6334e8 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7618df blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xfb76c862 journal_update_format +EXPORT_SYMBOL vmlinux 0xfb79c864 simple_empty +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb89a3c2 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xfba9e63c __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xfbbe183b __ip_select_ident +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd06e19 kthread_create +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc11e5a2 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xfc16e2b1 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xfc30d4f2 xfrm_input +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfc65d136 tr_type_trans +EXPORT_SYMBOL vmlinux 0xfc9535ff phy_driver_register +EXPORT_SYMBOL vmlinux 0xfca1ef2e serio_close +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb7660a rfkill_set_states +EXPORT_SYMBOL vmlinux 0xfcbf37e1 __inet6_hash +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd0e64e neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf8227f simple_transaction_set +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfad4ae vfs_writev +EXPORT_SYMBOL vmlinux 0xfd089468 kernel_listen +EXPORT_SYMBOL vmlinux 0xfd140fe5 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xfd16052c ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xfd2ee084 __lock_buffer +EXPORT_SYMBOL vmlinux 0xfd3392ff tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xfd33a3d2 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd9b3844 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb8a0f1 init_special_inode +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc9473b skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe15e878 dev_trans_start +EXPORT_SYMBOL vmlinux 0xfe1f6b14 simple_statfs +EXPORT_SYMBOL vmlinux 0xfe47d8c9 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe694f33 bd_set_size +EXPORT_SYMBOL vmlinux 0xfe71d4da journal_load +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfec17f4a generic_fillattr +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfec6084a jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xfecd06c9 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef52089 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefaabde ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xff0ee341 netdev_set_master +EXPORT_SYMBOL vmlinux 0xff131610 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xff1c211b request_firmware +EXPORT_SYMBOL vmlinux 0xff1ca276 iget_locked +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff36f548 mb_cache_create +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff690650 input_set_keycode +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff778fdf dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0xff889338 fput +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb26c0e bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xffbff37d __bread +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x03670f2c kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0a4f42a6 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b430e82 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0d42b01a kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0d4dc3ef kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x13ea29b7 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x189d66e2 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19f3eee9 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1a2fd2a2 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1ce7d445 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4d5524 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2309318e kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27978b30 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2869bf69 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2894021e kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c825178 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x33eb31a3 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36d527da kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x37642754 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3a592382 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4079cd33 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4205aca7 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x43227bd9 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x47a3b165 kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4d4de1bc kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x501c0446 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53a41988 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x57703c52 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x599086dd kvm_handle_fault_on_reboot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a67de38 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b40b02e kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d68ab54 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70ce809b kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x755c56bd kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7741b0df kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7801fdef emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x799edd2d kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x79e9ba8c kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7d161e3b kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x80535104 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x81b25491 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82d875f0 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97c39eae kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x999a2454 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9dc9e2fb gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa384adc7 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa763be53 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7dd47b2 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9eb42a7 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab2da56b kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb127a476 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc0c236c6 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc1e7b9c9 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc2e7f89e kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6e3344c kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd1655829 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd175f6e7 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd61f0180 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd76cf603 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe0e238f2 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1bcbb3b kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe26cc5c3 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeb52afef kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf1c45ef7 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf229a6ed kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf4757c6f emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf4f16594 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf57007ca kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf5bbe450 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa43bce4 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfb5e54df kvm_get_kvm +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0xe3fd4fc4 crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xcdca9cc1 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x19d10d01 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xff80413e async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x6db97111 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xdf543695 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2f9ceba7 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5e41a8e0 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x8787dd3f async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc763fc04 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x4f0c9145 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6b0fe919 async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x0e32b7b1 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x38a5991b cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x3db2be8d cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x40850625 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x40c2e20e cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x8e71134a cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xcdd43a69 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xa36cd13f twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x26694baa ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3070a561 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x40c68e1e ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4d6da53e ahci_sht +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7965e17d ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x82cf337a ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x89ea2844 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa27c92a5 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa645afca ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc6e3a1ae ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc80a13db ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe8e787c2 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf24f32cb ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1e6f3d8a btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3295cee3 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x83e3768a btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x88720545 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc6589314 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xcf7801cf btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd1725523 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xda02ee06 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xba01e54a agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xbb7709e9 agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0xc7903682 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x03898fac tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0457027a tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0d06d221 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x23dae8a5 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2488f165 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x292b7a21 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2ea81e22 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x37017aca tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x40c2ac52 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4996db35 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4f9a9e85 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5953182b tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x609b0150 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6960a4b7 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6d06af68 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8f2256d2 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa020e978 tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa431db48 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb66146b7 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb8e9641b tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcdf5779c tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdef62254 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfa1d9bcc tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x2d1dda7a tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xb71e94a3 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/dca/dca 0x05482d1d dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x356a6e46 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x42848840 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5cc892c9 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x76493031 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xa4ada03c dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xce28e0b4 free_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x027b1a40 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0b1d42a9 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x138c70cc edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x25b7a5a4 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3265e415 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3a78809a edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x57b63081 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7c1ddb2e edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7e1c36ad edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7f4dccc4 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x915038ab edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa07a51d4 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa398f2cc edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xac035eeb edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xacda8192 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xad6bb2ef edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb1a1943b edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xba34f0b6 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbfe38723 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc6490145 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc6e13db1 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe6078209 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeb823f35 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xecab21c1 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x81387a04 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xc8a425c7 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x53d473e6 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7311e227 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x111b43cc hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x16c515eb hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1f2c61ec hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2de3fde6 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3aa150a0 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x80e56c23 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x87f2955f hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9255d114 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x92c3a37b hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x97d8efda hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9d3e6c69 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa0fadde1 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa4613e7a hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaecbb1b0 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb3490a98 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbbb84799 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc3f89ace hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd3e2a321 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd73c8ff5 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd83bc2d6 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf22a3e7 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe30582e3 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xedf1b737 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf10e358f hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf7463d05 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfe261ecd hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x09fcc946 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0f8ce1f6 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x5a89a299 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xc1a99a39 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe7daf4c1 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3f11eca0 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x7f2ad5f6 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xd17c336e lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xdce4b0a8 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xec44befb lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x0d00ef50 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x1f4e32da i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x6892a5de i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xade10cea hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xe242943a hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x890075f4 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x0912ef47 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x14acf21d wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1f36e97e wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1ff9d022 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2950048d wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3443a9d8 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3f35b87f wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x65784883 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x91e942cd wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc7bfa4b3 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd806f283 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xef228f17 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x020e955e gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x22c45b8b gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x244a9ec1 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x45b03d5a gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa014b92f gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa212fff4 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa69eca0b gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb9e41bb4 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xca6e38b2 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcad28ebf gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd24109cc gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdca75b54 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe149cde2 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe322e891 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf033aeb5 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf76a25e8 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfd56e176 gigaset_stop +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x05ab83de led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x1ab29f1f led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x2c80ab4b led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x86c235f6 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x8aff5b0c ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x8ddd09ac ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xc81e508d ir_input_init +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x0fcb9cf1 ir_repeat +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x507a57c5 ir_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x576ae12f __ir_input_register +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x6f18772e ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8b41a6f2 ir_input_unregister +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x97f41c99 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xc2da3751 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xfa6b2ae6 ir_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x008bf504 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x02cfc4ed saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1bd205aa saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x258f0c3e saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2b02632c saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x30280d65 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4d460e2a saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7fdacb47 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x99672f44 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd495edb0 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf0bb16b0 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x11eb56ef saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4d9c06b5 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x6b406301 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x83fb2d76 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xb5ee4336 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xceedcb6a saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xecc30bd9 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xd88b57cf microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x00339cfb mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x345dd2c4 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x3fb3aa84 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x2029f73a tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x6d9fe652 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x106e7570 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x3122b13d tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x5d612235 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x003db3f1 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xce22e89e tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x0ca3d45d simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x03510d50 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0bb794e5 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0da7557c mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x11f8ca8e mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x25cd4d01 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3dc82979 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x48d357cd mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x52fdc4f8 gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6ed522b8 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x857918bf mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9926874d mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb8a77ade mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc00d1a0e mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xca28d3ce mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd58cbd7e mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdf17602b mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf2e75acf mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x012ccc79 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x05f9b61d sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x06ba471d smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0d362e90 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x265a977f smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2eb7daa9 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x325baa4d smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x48bceee2 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5630b3f1 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6628aace sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x66f2bb67 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x80ca1620 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x85c4e4e1 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x950496f8 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9c95ba0d smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9daf28db smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc3d27309 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcf394fcb smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xda112779 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x106f6bd8 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x4c80a95d ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x749e8b9b ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xbf7eba9c ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xca94fd73 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd9adeecb ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xda6c6dc5 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x53ab65d5 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x822d51f5 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x90774369 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9669ec0e cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xce9bfc50 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd4e67252 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd9e940e1 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xdff8df22 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe6cdc701 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xee77c6a6 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf65693fa cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x28ad5c56 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0cb0d6b5 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x477aa9e4 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x4ec88da7 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xaaa468be em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf5212076 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf9fdaf28 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x362cb9e3 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x8232e50c saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x92726356 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb912cb80 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xf71957d3 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x073a4ea1 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x44f4023d v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94119a22 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xb768789f v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xee5da9ff v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xfeaaaf59 v4l2_i2c_new_subdev_cfg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x6ddc98fe v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x7e3b2d88 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xbd43279c v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc17974e4 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x03bcbb53 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0be6891d v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0cd0e0f7 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2ddf6e67 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3869f13d v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8f603286 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xaa78c107 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc84c05d8 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc871f951 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xca570de5 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xced7694f v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd2a9abf4 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe75962ff v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfa21b608 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x003c137a videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0832c117 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0fed5de3 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x11700f0a videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x14d57429 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x191d575f videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x29e13393 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x322a6165 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x39a3e501 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x413f854b videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4b368cc1 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4c4b9f7a videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4cbf71c9 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x51d0da8f videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8d067470 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x94b46ba6 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x96368468 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x97d5b6af videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x98749066 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9e74729a __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xadb9f090 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdb12705a videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdd16f7bd videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xedc5e209 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf212fd06 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x70e2bfc7 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x95ad99c1 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xc231b6de videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2eb0bde0 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x33d61f67 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3dadf982 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x491f3589 videobuf_sg_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5e98d9f7 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x75b32978 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xac255d2c videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb0589d3d videobuf_sg_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbc95fe0c videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc518a1e9 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xddae6551 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x4b2e60d5 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x6ac7cba5 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xce601591 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0b2091e6 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0b4a87d2 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x101676d9 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x14a7dffd v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1b2928e6 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1d3e3258 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x25d4760f v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4268f273 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x58df058b v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x690cb1f6 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa9507812 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xad8726de v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb15a1c66 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbc225898 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe2ce5ee5 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe6c154da v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe912819d v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe920dff1 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x124ffd5e i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3648426c i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x40da521a i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x593953e9 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6d6f5511 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x731f72b3 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x87ee2d10 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa76ebf25 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x21f568da mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x318ba37d pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5c35a97e pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x787cf092 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc0cb42c5 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc890c485 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcaf1cf8e pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcdc554b7 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcf961774 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xda61d68a pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xec59c971 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfa7041bc pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x45177c7d pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x5bf1b56b pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x3766af4c pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x41b36a70 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5e344eac pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x6f437e15 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x965d1789 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x3c93f9f9 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x52e9b128 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x92b1da25 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xbe690a87 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe02b31c7 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x6708f238 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x4213520e wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x53785b89 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6d646389 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xba89d32a wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x209966b4 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2f515bb1 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xbe5503c9 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe3164537 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00b7f46a enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x1bdb3c45 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3701e188 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x55bd514c enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x612ff8f6 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8fb78b36 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfce5bbdc enclosure_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1bd43494 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x32101d5b sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xae1acfac sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xaf577a7f sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc4efdd6e sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdf902a7a sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x1370763b cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x3a6a8d98 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x6c1a9ecd cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x47774be7 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb8707f8c cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xea4588ca cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x8ca99bc0 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x332bf456 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x55be8430 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xbbe138b5 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xdda145e7 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xb2383f17 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xb7795de8 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x14f84224 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x23fd9959 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x473ffd01 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x516cfff2 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5176cbcd deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5a878539 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5fea7ca1 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7fef5dab get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x82068736 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x857b3e43 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb13ccd76 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcb8f11a3 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcfdc3357 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd5695289 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd939cbf5 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xde6839fa __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe65046e5 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf1b57a30 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x10cb9b92 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x280e295f del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x71f7164e register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xaa1e092f deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2ef8bbb9 nand_unlock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x30e2bc37 nand_lock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x766c4cc6 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xa5ab85b4 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xa846175a nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xdcf1b6e0 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xe9e0ba71 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xc4c71358 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x1462946d onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x872cdebf onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x01770f40 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1085dac2 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x163999d2 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2a4d2c0c ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2a68cdcc ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x33367a23 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6195f592 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6575f5b7 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x73cfb27a ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x75c9a1c0 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8897cfa8 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9e838073 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe24b80c6 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x084090e4 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x088518f2 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0c0ef22b free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x25548d2c open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2766cc4a alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4037786b alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6506dbcb alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x71ecc9ac register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa6033820 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdafffeac can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe3f34b1f unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xeb0aedfe can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x26240941 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5ecba114 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x81ab5657 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe05d1d73 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x686b08d4 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x72b547ba macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x80007eed macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa39bcace macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xab9f1f2d macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0372f962 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0dd096d0 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0fa2fb68 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x165fb1dd mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1c30b468 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2026152f __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x216aed95 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x27587ba5 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2f70d6b8 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x300db528 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x34a208cb mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x441e9904 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x483cda78 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4997c4a0 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4fabe02c mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x566b36da mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x60a44ae2 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x66a02fb8 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6f3c3271 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x78e4ae49 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7d847d7c mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7ef89f8d mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7f005f8e mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8465274e mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x85c115c8 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89e0db8f mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8aabb80a mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8adb8c7b mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9b674b1e mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa91c4ad0 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa9358f63 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa96f254e mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb1f29e5e mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb9ecd58f mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd30cbed mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd5e322a mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbdaeea3c mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc143b214 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc1fa09d9 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc52bd572 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc6245c55 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc63fb4a5 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc9f933f5 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcb99db3b mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcc8bf4b2 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd705cc6e mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd96d92f1 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdf308a1a mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe21fee57 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeee7eca6 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf39cf840 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfc28921b mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfd3cc10a mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x215ca087 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7b51358c usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x014dc35c rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x56890aca rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5a7765f2 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6a06c472 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x80f68ee9 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x81841264 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0d3b0abc usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x15748aa0 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x17b89609 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1ae15cd3 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x39390269 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3ea79ca4 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4b16dc62 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5a74c817 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5e8a38aa usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5eaa9ee6 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7245f4e5 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7293f76a usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x72ea7a05 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7c6b7ee6 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7e568242 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8d5d72c9 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbf144b3b usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc32cacc6 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5d79175 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xceb15432 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd74612c0 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdd4e5c8d usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfc67e758 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xff86640d usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x01af385d i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x18ba745a i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x46e4f505 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4b2887e6 i2400m_cmd_get_state +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x866ec0f8 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x91435b05 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x91f99272 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x96902d5d i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xae8a95b7 i2400m_set_init_config +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaf1c7d14 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb6e37139 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbc1eca8a i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbda8011a i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbfd4d79e i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd4aed0a6 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdcfeb396 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xee2cbfb4 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfc0a49bb i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xcc65735c libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x37b3fe2a iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x604d3989 iwl_dealloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xe3a7edb5 iwl_alloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1d72c066 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2fe1006b lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3e23ace6 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4a9b346e lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4ecdab68 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6be383b4 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7b85c8e3 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7e9acc6d lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x80bf38de lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x92bf83ce lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa7dca1a5 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc15b5bc2 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc6cebe91 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf2b3c1de lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4b1bce7e lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6945d6ac lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6b4e3871 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7901db64 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9933e083 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa9944fb9 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbe6615f0 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdaf4ce30 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x73624d9f if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xdd69e922 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x08c14a99 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2ad16eb3 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3bf3bfb9 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x45f2a13a p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4b50e8a0 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x500b7b1a p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x753b4b91 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x94d6386e p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbfd19aee p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1c63fa37 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x202206e9 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x267cbcc2 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2ddb2a4b rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x30cfce31 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x337a8add rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x41172355 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x456e5806 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4aca11cc rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5e4871f1 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5f2b226e rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x60ad1c77 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x69c08b4c rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6e96bb54 rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7238be49 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x84f0ca13 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb2f65059 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbb7a4a22 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc35222e rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc37f94ff rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc7b9ac0e rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdbdad7d5 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf6dce914 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfc96294a rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x10052772 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1fb728e4 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5416ca02 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5cde843b rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x610085ca rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x619b5996 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6582a438 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83c1f539 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8be1f91c rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaceacb28 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb687d7bf rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb6d38f47 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc5856caf rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf5fe61e rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf5bd276 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe5d7ab8c rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe6750318 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe6edc770 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe91e7528 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea2ed7a7 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xee23decc rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeff5e6cc rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf19a568b rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2f358f7a rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x34f58bce rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x49ac3798 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5d22941f rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x756f966c rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7b6a5112 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8b1bb0fb rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xab22bef6 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc9cbe4b3 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x10e49804 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x510fc77c rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x58d13e47 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5d01bf5f rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x68588873 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x74e8a146 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x894de62e rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x954e5212 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9f2b5c32 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xaef88b74 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb3d9fb88 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbbe4f114 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc354de34 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcd945070 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xec0f3749 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfd1f2cb7 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x5f505cfe wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x946e7856 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xc627a188 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x1e3089a1 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x23530323 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x84dcf87f wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x99fb0ec9 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xca6ee710 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x9875110a acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xfcf0990d acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x0ee3ea86 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x1e18637a pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xae205b9d pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x1844ef70 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x35534182 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4d01eafd wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x5067fb5e wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb1b4acb9 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb8c527d5 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xd23a08c3 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xaf20f30d fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08c63b87 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x19d3014e iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1bf21d5c iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x21fb69d6 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bb2677c iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e722a90 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e7d9552 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41e6de2c iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4886ff74 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x526d58ee iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5f833249 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62f41e30 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x63993df1 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6e5a86bb iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6eb24023 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70d82365 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7427dc2d iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8842f9f4 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8bb1086e iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d0bcacc __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x92609f8f iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x92922adb iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x968ed6fa iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x969b1229 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a3cc3b8 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa9346403 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa9b5459d iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb192cce8 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbd75dfc0 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xca5be5f1 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcae30783 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd35959e8 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd7726f9d iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd8949f50 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd9b01956 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd9ff339d iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdd1aebf9 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0b42787 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe82d6dc7 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe866e729 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeeef9cac iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff893c5b iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0ae2aede iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x29bb1af6 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3c76991f iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x44a5bad5 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x57b206cb iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7a8cddc6 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7d10e49f iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7f15b743 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x81a75d59 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8e243d08 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8f618e4f iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x92dfbe22 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x93ff251b iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa5b15652 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd5502123 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xef593383 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1f2a135e sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x36864ba1 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x454151cc sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x49f30154 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e2f5582 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x62b9df7f __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x632efb86 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x64e865fc sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x66fe44c1 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6e525738 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7bae9d5f sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8d8b6ee1 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x98e0f082 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb6f3b757 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb930b1c4 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc1f7790b sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc3222360 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc995c1c4 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdeaf09e4 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe569ea0d sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf126127d sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf55283c9 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfd6c3740 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1fdecbb0 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2f0ab9d1 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x73c5901d srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa79a5032 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe9957a90 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xeff50a2c srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x135ec1ef scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x62bb72e4 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x64fa7ad5 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6e7c15d6 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7c5da2c6 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x97c0842f scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xde4509f7 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xeb7bda2f scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfbf2c401 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1910e39b iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1ccea941 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d5f2326 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x317b7698 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x40e3a413 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4af64855 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4cc7ab32 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57adebe9 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5b2ff993 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5cda6065 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x60cc8fce iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d7ae512 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9a14a8df iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa2551c28 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd50dd363 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd7b51aa7 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdec87d2e iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe729d8b2 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf09966a2 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf66869f0 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfa0cd22b iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfb6b4f35 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x164b5cf1 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x2aea7520 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x2fb43be1 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xcb8d17ff sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x71f2ec2b srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8ce7e3e5 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc08b79d8 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xca6d2edb srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd94c2a37 srp_rport_add +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x404a5f30 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x4c509da9 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x72e25109 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa5335533 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xb6179dc6 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd19cf7bf spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2dcb8ea2 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x60ad4752 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xac4fa668 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd10a10a5 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf229a41c comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x14057da3 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xd156365a das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x36dc46f4 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xdd4a326b labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x396e3cfe ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3970e1f6 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3cc42156 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3e83d9dd ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4bd516aa ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x5b29b89d ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xa2716004 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xcdeb4559 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x070a5d38 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x2a1e1c8b ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x48e2018d ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa97dc93c ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xdcab5a3b ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xe5a4f597 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x94708e9d st_register +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2f5767ac tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x53c5baf3 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x9b592adc tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x08ac9e49 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0f25fe6f usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2a3a6070 usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x467754cf usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x592fe781 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x64227859 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x74c2a1e9 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x77366657 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x971658df usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb0665ff5 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbd802995 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbee8cc21 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xcab40b1f usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xdc13fde2 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf735963d usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7e960331 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa78acbbb uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xe3b21fee uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x8d2c4ab1 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xf120365c usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x217a53fd usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x30f24f48 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x56624fca usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6418c677 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x72ec0547 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x89028ad8 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9333fcac ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd27bf11d usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xff736527 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x01dae166 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x12f8c589 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x348dad18 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4451e2d6 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4efcf841 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5dad79a2 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x690fbbf9 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6f41e635 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7080eab3 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x74d6b647 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x79dbba04 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8a331229 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb4a0e52f usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb82e13c0 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc658ee33 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc68bfddf ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcc5ff2db usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdabda7b9 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdc22ece5 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x003fc62d usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x07a76381 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0af75391 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0de8435d usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1228f0f6 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x26811718 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2bb3cc88 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x44476570 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x45ee1365 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5a0eb2df usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5e6a479b usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x69628202 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7065c246 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7a1fa375 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x85dc00f0 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9d4c7d26 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaba82870 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc154c217 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc5e135b2 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd2ec0140 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd3dafc38 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd5529bc8 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfcde68cc usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0d924e46 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x201241ef wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa97bb4ce rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb48ed8bc __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xfaa11e29 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0f451a70 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1755d990 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x210e4ac4 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2524ecfa wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2a008d74 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x48a19aed __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x55dc6ba9 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7cb5f5b4 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xaf7e1ed3 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xba5e3493 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcaef8e45 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xeefa2fa3 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf188140f wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf70083a1 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf8b656e5 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfee96df8 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x9b505eac i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xae9d9440 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xb0af341b i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x4a2d3683 uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x5589d01b uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x62308c9d uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x6b2af496 uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x85512292 uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x9ada1e8b uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xae6344d8 uwb_pca_base_priority_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xbe1b2ba6 uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x02b94d5d umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x47741c9a __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6745acd5 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xaa7a6720 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc06f44b8 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd4d2eee1 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd98a2cc0 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfa258cea umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0730ceaa uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0ac206fb uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0e6acac4 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x17235aca uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2c2d39a8 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e57ee43 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x30af8d6c uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x31309faa uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3525894c uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x37b86518 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3a4a83c1 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3c329ef9 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47fe4173 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x49d89993 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6180c8bd uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6de37074 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6e2f1308 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f66a596 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x77ef3861 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c769e3f uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8df56f3c uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa437b366 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb63c6867 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbbd040e2 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc23ae031 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xceafb46c uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xceb95908 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd66ca46f uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd7e9f8b8 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd9d18f0a uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xda617eba uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xef202c42 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf0cb37bb uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf1bf9230 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfaaac10e uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfbc0f850 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xffbe5935 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x7af3af58 whci_wait_for +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x08c4d57c wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x19308bbd wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1ca093d6 wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1d0dea8e wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x20bd5594 wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4b552672 wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4dfcac87 wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7a78ebae wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x80e5e832 wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8de3537f wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x94011c7a wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x948dbc8e wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x976c081a wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x99a65676 wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x99df1440 wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9b65ecb8 wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9bde63e8 wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa0688998 wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa4c19fb7 wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb00f5ac9 wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xba8049ed wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc31695cf wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc5045d14 wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc6dd3817 wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc8f318a0 wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdaf0971a wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdb1c9c16 wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdc6bb109 wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe9cc48cc wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf13d97c8 wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf8d1db27 wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xfc3af5e0 wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x165a8ca9 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1d0ad81e ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x30d337b8 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3932e6ed ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7933c310 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa3e41962 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc34965f5 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0xc61a610d fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xb28a6b95 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xe2710cda fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x5ebbc425 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xfbb44e2a sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x3f800803 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x09133bf5 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0d0369fb w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x151cddbb w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x19070481 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2f554335 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x4c77efc9 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdb06a093 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdc44fbb4 w1_read_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x91868708 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x96171065 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcac74928 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x8b22ac3f exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xccaf1399 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x10876161 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x16ceb8b4 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x173e2c2b fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x3f84f206 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x420372d4 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x467b2fbe fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x4b35c423 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x4efba033 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x51dc673e fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x6dbf8e87 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x76522d6e fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x97e60c22 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xba7a45ba fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xdd50f737 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xe74febc7 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xeca043dd fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xf74b55ec __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0xfb5248cc fat_dir_empty +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0e0a7fbf nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x124b2c5f nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x388314b6 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7b7cce38 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb508bbfb nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x8fb44d2a nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xcc23f494 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0cd0b045 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x19641482 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x41d4aeb2 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x57d85de5 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8c68a48e o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x92d25010 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xea6bc7a7 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0054a191 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2040c123 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5f75a657 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x81b56d75 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe55d7540 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xebc7aeb2 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x709cd2c0 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x755b726e ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x96f85b97 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x044c46d2 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x1a98875d garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x20fd3caa garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x46fada71 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xa741dd92 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xdb78e5c9 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/stp 0x0313e5b9 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xddc5bf34 stp_proto_register +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xcfa0d702 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x16b4818f bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x08d69f83 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ce50ba8 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ee454c3 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x214faf12 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x33016f33 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x34f12b7c dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c84680d dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x50033e5a dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5799e760 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x623f93cc dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x68380ada dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8662eaa3 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b6a838c dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8d9eb3cb dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8fd3e2c1 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x903303b3 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x933b0b39 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x95adc352 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x99178199 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9ab53d7e dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa4999bb7 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa9ac09f0 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xab943012 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae26ead1 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb616508a dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc726589 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc867baa dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc453cf29 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc4df51e2 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xda53797b dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xef599b4c dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfd803a56 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfdefec6e dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3b5dc0e6 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x646bb787 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x987701d8 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa9ad3735 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xdadfc6fd dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xec07e5bf dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x4aef6877 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x35b33ac9 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x08b6a328 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0dd113f5 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x24eb14c5 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3ad0b986 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3d5db911 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5cbb387b nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x730e4525 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x82e76c51 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfdedfdc6 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x07f74da4 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x0dc42262 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x11681f2c tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9c9d05c8 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xac8273e0 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x5d24cf24 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x07cefda7 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x10582e14 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x168d0f75 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2a6ff5b6 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2cf7265d l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x30cf73a1 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x311b52d8 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3dfae0c5 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x48408d83 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x63fdf9e9 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x86b7dbad l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x87a2360b l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x972fb9d7 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9cef3431 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9e34f42f l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa419d827 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe4433343 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2c36cb64 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5310e97b ieee80211_find_sta_by_hw +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x598549c7 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04597307 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e492e1f nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1301ea2c nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x148fe0f1 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16e34d6d nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x17709742 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x194e41d4 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20d1dfb8 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21857802 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21c5749a nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x266cd375 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x292fbe49 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e73f0bd nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f30c91d nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x329a281d nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3a17ba84 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x404b7ad5 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4129d964 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44f0f814 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4bb99866 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4eeb129f nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x52409a99 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57c5a410 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x627ae665 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64c97f2c nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d4104a5 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d97ad8b nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6dc352f6 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x71f6ad6b nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x730e7f3e nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75524701 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76747954 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d47d940 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d764202 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7de6806d nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80d0de47 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x839d9edd nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x865a3991 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a5a301f nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a5ea84b nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c7193e4 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e4a33d5 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x903ee0f0 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95e2a4ea nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96101db8 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f602844 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0ebb946 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3c60c1a nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3e0f089 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1abfc5f nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb601a2f8 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb86c529d nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb90f7339 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb7a8f4b __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc3c606a7 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd26100af seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd76140ad __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda7ac617 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe99f2e13 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9d69999 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea52dbed nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x153d3162 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x74f1d6cc nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x33754c19 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3fcbe5e3 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x901467b0 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9cfdd881 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc112baf4 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc66a7a51 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc93043f2 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf172ab40 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf6783ec3 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfdfbb6c6 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x68144fc6 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x40349433 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x435fea26 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd5d266a5 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfc76932e nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x19605f7e nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x1e8d7b6f nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0a0ea255 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x48804ee5 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7006fe01 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7029891b nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa13ed310 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbd42d0f7 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc3205e9f ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdfaf167f nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe2285ac9 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe4bc1bc3 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe905d86c ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe9b21d0a nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xff5a1331 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x02891d03 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x64f89d97 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x8b268bec nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x318719d7 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x509e19b3 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x60c71d39 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7c1ed530 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x90b7a643 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbab65d20 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xad3e1761 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1ca5d04e xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1ec1f3db xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x652617e8 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6d760e9b xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7b96fd0a xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x81f52f8a xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x869ffd01 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x883de526 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8e464510 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaf197d16 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3c210df xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xda1bcc35 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe7ab605e xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x06a3535b rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x20365ca9 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x29301f32 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x36ade014 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x38b89e73 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x3cd58f83 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x4c8bf837 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x603fd334 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x6a1f7ec8 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x770eacfd rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x78f64a70 rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x86e8be1b rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x89aa39a1 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xa28c3448 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xb433ce85 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xb752e289 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xb9ff7b14 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xc2a811ae rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xc67c2cb2 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xd9b78af5 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xf13f3bfa rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0xf661919d rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x013455c7 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x930b3867 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3610a2a5 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3693a76d gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3c08edff gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x59ad9e5d gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa9fe80ed gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbac2eb73 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc419aeff gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd1cd1167 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe10651b0 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf0595e43 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xfc0de2d1 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00ab65d6 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x011cbf43 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05207868 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x076b1b62 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08130143 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b06a599 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cf5e915 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e62fa42 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x119d6b61 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11c249f8 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x134c68b6 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14202164 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1932b9bf rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cb0c879 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d16c7c5 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e065a22 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e1b7123 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26436ace svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x269102bb unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29d0f2a4 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a147f98 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30949222 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34a464d5 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x361638c3 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3762db97 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x389a6eeb svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x393e05aa rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3adcac49 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d914087 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x429b131c cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43f62662 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x499df6b7 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bfaa438 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cce5cf9 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4eca66de svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52d67768 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x577f010d rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57964882 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58b01e34 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f22feac sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f3a119c svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x605d84e7 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61380b17 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61bf7b59 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6373e2e1 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6720e855 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ef13225 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71bf47d3 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x741c511a svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77033fff xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a3d39ae __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a93688e xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c333c2a svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f10eb0c svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x808464a0 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x830d8fac xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x853d9ad9 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85962a70 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x864087a6 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8781a83e rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a19e7ad xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ee87aa0 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fcf575b xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x905d247c rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93bfb237 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95ededd5 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97e96d23 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9be7a21a xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ddfd1c9 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa08957c1 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa11f5f8f xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa13439f5 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3c50020 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa404faef rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5092a91 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa54a0487 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa59b59e2 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa65e23ad sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa89708fa cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8c9c9fb xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9ae0d9f rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacbb1fb0 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae4c8fd4 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaee7d7cb rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0dc7cda rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1d83386 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1f53ccc svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5583d8c sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5db7be0 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8b9574a xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbde5597 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdd56517 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe744347 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf81e342 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfd2b8b5 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc05f3486 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc13d9fb2 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1c6194a xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2944afd auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3f977c8 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4dac3cf auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc57ccb69 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc79b52e2 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc84494a8 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8b4872a rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8f6f663 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc98425b2 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcec08f5f rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfb9330a svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd465508a rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4993c6b svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6ef1ef3 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc559b1e xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde859421 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde9120a5 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfef1225 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1db8b48 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe639b6fd xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe858fda1 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8ac4eda rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea96d682 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeace20f9 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeca28684 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecd88c7f rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef19e516 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2be500d auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3699b09 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5d6aa77 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5d88e0b rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf70d43cf svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7683fb6 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7ca7491 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd266462 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe82db3a xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/wimax/wimax 0x18dcf5c0 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x466f2791 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x49e98245 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x51b3d959 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x56279845 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x67571322 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6c9b3781 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6fee98de wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x91824785 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x923586be wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb275356e wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd45b732c wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf612b3e4 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x03548a88 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x071ca5dd cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0d0c73b4 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1683929e cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1bb9ed9a cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x23999c0e cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x43406c9f cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4447f446 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x44a5efbf cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4f443c9f cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x55e42ee6 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5a806d06 cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x61d1d325 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7b9370e8 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7d413f20 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x97ac37fa cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x983610b4 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9cc1e467 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9f728812 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9f97f022 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa0a60cbc cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa194de2b cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa6744374 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xafa55ba4 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc42412ed cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc5929be8 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xca106d95 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcd497eba cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xda67e07b cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xebb4cf6d cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf034ad2d cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfa97539f cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1acea297 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x5255894f ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xac337f8e ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xfd0ee901 ipcomp_output +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x31ce06cf snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x659ebc87 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7c3ea1cd snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x897c3188 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc5aeff89 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf7a9e1de snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06c17c12 snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bd279be snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0cb8e794 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0cd26cd2 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0da8a99d snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x109582c8 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15ac5877 snd_hda_eld_proc_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1619932c snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x176c3966 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b4f7c6f snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1dc3da1b snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x20cfdfda snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27c418de snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a5c8dae snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2df459cd snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35eb4a82 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36144b3c snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a880438 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3bd87f07 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3efd2b2c snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4029ab86 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4620c728 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48664bdf snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d58b112 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ee8a225 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fb4ba63 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58a80b76 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5fef1a5a snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63d5f964 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x676c9f74 snd_hdmi_show_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67a6d782 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x692bd021 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x696edd7e snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6aa52e74 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e144330 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70c7fc5f snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7121d40b snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7173af16 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74558e16 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80c3e79e snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x818b73d9 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83fae305 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x88f4a2ec snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x896e5ba5 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c637668 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c9bdad4 snd_hdmi_get_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x90325d5e snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9311ea98 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93c4bb54 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97cec9cd snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98876b08 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9baa7d8b snd_hdmi_get_eld_size +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9e13771e snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa19b934d snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa45f9381 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab7ed24f snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaca16a7e snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaccb85a1 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb54ba926 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb55b7ce2 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb38832e snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb481684 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbde32457 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc55fe609 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6480c45 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6c2f95a snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc97e4298 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca056a6a snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcbe45254 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcdcfb93c snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0dfb4c8 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1d37d88 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd59b19ab snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8c3a2eb snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdafbc70f snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb4a5e5b snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc60a181 snd_hda_eld_proc_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd674a09 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe0f6bcfa snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeae69961 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb4e5a19 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee9f266a snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef0ca155 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf14ba3b8 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6116908 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf92ad59f snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbbb0186 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc5960cd snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x34d21a87 ad1836_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x403423a5 soc_codec_dev_ad1836 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x9672264b soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xcd2a7105 ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x2c1169b3 ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xb88f4b98 soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x9c148f0c ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xd9b910f7 soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0xc905416e soc_codec_device_ak4104 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x92df633a ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xa0c5951e soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xc4f26aef ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xf87ebab2 soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x738e02dc ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xd1155728 soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x508da75e cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xc289acde soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x00b0eaf7 da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xf7e2fb9d soc_codec_dev_da7210 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x40d593e1 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x335696bd pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xa29911a2 soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x3396156f dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x9ab1be24 ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xa92c1469 soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x85be83da tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xf117c975 soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x4a61ec30 aic26_soc_codec_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xd3420d35 aic26_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x18e106a1 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x40676d9d aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8feb0853 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x96da7c0a soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xc951ce09 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xcfae740c aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe2fb358b aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x7809fe6e dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x90687930 soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x0c187988 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x06a19c61 soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x9159372b twl4030_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x792ed984 soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x93369284 twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0xc719fa64 soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x231942fc uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xf6a3c60d soc_codec_dev_uda1380 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7d26eef5 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc3a8f953 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xde9939c5 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x5d81c9ef wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x6117297c wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xdd3ec79b wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xde113d59 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xe01875a0 soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x39ea0fc2 wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x7b048ff2 soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xc99112dd soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xf8e46e7b wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x4f980648 wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xe0faff47 soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x3d30a17a wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xc6402952 soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x719dbaa3 wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x7a83eb17 soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x2e9ff2c8 soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x962c4323 wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x677af1f6 wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xa907ee07 soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x79073f79 soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xe602ab8a wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x4e8e4d15 wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x6491728a soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x4fbc2149 soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xb33abf6a wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x314f0162 soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x4fedbb64 wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x093c7080 wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x8285c752 soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x8fa8022e wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xa9a89491 soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xc606a395 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x92ad3296 wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xe6e90256 soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x858c6f8e soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xfd735493 wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x0bc9ce94 wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xf939f1fc soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x6aec45ba wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x8608bbe0 soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x9f138aa1 soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xa1b0961f wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x07c79dab wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x9ed1e096 soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x570a0c18 wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xe3a614d3 soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x20c8cc63 wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x4f135bdf soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x444f1ce2 soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xd680bc8a wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x8d54fcdd soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x9ca43553 wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x1a3047fd wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xa679af1e soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x99ec9098 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xe93839d9 soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xf05f9341 wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xd5e5c191 soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xf9bbe22a wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0xcd3c9ae7 soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x008968a5 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00f541be snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x013f9844 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0495e5f0 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a7e0c3e snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11398dab snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x152347e7 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20e0eb22 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x263a5a89 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27c4943e snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a4be467 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f87f170 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30d6b08f snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30f3ceea snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31b34e3a snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34baca9e snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x354b7054 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35ed71fe snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x424521df snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43374125 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x437c24bb snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x457c9dad snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x481dc4bc snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48724365 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49d287c9 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a55ce5d snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x503213d5 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x505838f4 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x506b7837 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5106230a snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69a49b73 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c00d210 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f04e6b5 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x729dacac snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72d250ad snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b77ee9f snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e45fcfc snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7eb86d06 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x852ae0de snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x862a2b2b snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x86474d84 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x890c6999 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8982b06e snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e55b153 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x90fd47f2 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94e78dbe snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x951d3e52 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98fd27eb snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ddffbc1 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1260073 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa55aa95b snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6fd1a9c snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac1b47c9 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xad7eeabf snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae7a4a5b dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb56498ef snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5b55ba7 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb61d7219 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb659e567 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6c18d87 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb71513c8 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0102026 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3c9196d snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3cac245 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3caeb64 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc526bbe2 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc81e658 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xceee69f4 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd2aa6fc6 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb9089d6 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde297b5e snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde4f236b snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdec0171b snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb0cb68e snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb3144e6 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9c3ae02 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfab39145 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x3ad6acb9 xv_free +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x415404a4 xv_malloc +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x422af118 xv_destroy_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6ae9c20d xv_get_total_size_bytes +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd2ac5a4c xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x000608fa usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x00114ec9 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0067501b skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00a86fbd usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x00ae5ded blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x00afb0d4 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f3b75d adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x016bc2f2 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01aeae64 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01e81602 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x0213f803 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x02603d61 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x02cad82c simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02fc86b6 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0388b796 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x03a2eddc usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x0402ea7e devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x040fde03 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x042ca42a driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0469caf4 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x04717678 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x048aafd6 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x04a93edb sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x04aada29 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04f533e5 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x04f6b034 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x0525d2cd crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x052ef35d da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055829f9 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x058e7f88 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x05f38561 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x05f44f24 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0610ff50 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x063d3aee bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x06476580 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06902d59 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x06994877 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x06a15650 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x06b7c264 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x078fd689 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x079b2c67 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x079d3c07 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x07b12cf5 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x0801c7ab dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x0813b6ac i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x082196b3 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x083c63e5 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x08ba4a4e blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x08cbb849 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x08ce33f1 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x0904ccf2 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x0913f1b6 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092bc6f9 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x092cceb9 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x093c5604 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x095cb203 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x09eb44fa vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x09fe306e class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0a05ad32 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x0a2d1de0 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x0a3fc4b9 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x0ab560d7 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0ac0fd45 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x0ac8d853 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x0ae80d3d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b24d93c bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x0b7498c8 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x0b74e67a spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x0b8606c2 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x0b8f557d debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x0ba08e56 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x0ba52a32 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x0bfddd04 tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0x0c1c8d12 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x0c2c3485 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c54bf01 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x0c63a2eb md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c83cd23 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x0c9aa848 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd419ab crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e175528 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x0e1aa7a7 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x0e2c1627 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x0e451fe8 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x0e4d99f8 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x0e610ce7 rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0e8c21d3 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x0eac4ef2 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0edb2ed9 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0ef87db0 put_device +EXPORT_SYMBOL_GPL vmlinux 0x0f33f49c spi_async +EXPORT_SYMBOL_GPL vmlinux 0x0f592c94 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x100ec4ab inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101fc0a4 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x102d1969 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10b53e4e crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x111a3f5e inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x11241568 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x1127a40d sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x11501cec pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x1160f302 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x11728db4 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11a3bfd9 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x11a67c0d usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x120ba3e2 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x1226571d module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x12679636 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12d956bc ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x135eabfa devres_get +EXPORT_SYMBOL_GPL vmlinux 0x137fccc9 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13f8ecea anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14ba13d9 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x14da3f57 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x14fa87ea skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x151aea33 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x151dcf7e securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1521ead0 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x152259c8 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x1570fa39 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15b5e885 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x15cfcbda vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x15e5ecea get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x15f15082 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x16157743 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x16234e28 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x1656971a device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x16730f43 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x16a3bc12 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x16a5ea56 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x16c57b0c unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1719c3b7 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x172acb83 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x17a3a252 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x17cf67be mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18a2a17e blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x18df8f82 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x18fc9f4b sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x191dea18 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x193b0ce7 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194696a7 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x1971ae2c devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b95ce4 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a3b2f36 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x1a594416 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x1a8cf7a9 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x1aae4836 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x1ac4ebc5 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x1b125072 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b518fa1 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x1b6b881f css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1b88b6bb sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x1b9386bd tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bcccbe5 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x1bd2a56f ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1bf720f1 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x1c195df7 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x1c37173f sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1c45f322 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x1c5fa88b wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x1c5fd5b8 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x1c6814ca queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x1c716f97 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x1c7b3094 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x1c850cf8 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c88b318 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x1c8becfd crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x1d4676a2 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x1d4d9a14 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1da957b5 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1de2d681 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1dfc2a1c shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1e0291cd __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e49d1b5 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e87c505 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x1eb64a59 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebd475e preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ecfdf10 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x1efe064c dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0x1f85dcaa fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1f8eaedc inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1feb6a13 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x20059aa1 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x202953e4 apic +EXPORT_SYMBOL_GPL vmlinux 0x204c341b sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x20736eb1 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x207d24ed class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x20b4d174 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20dda7f7 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x20f4e336 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x21160445 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x213404f1 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x215f51ea crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x22300e41 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x227045fb inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x2274645a __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x231affb9 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x2322c72d wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x239d0ccf tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x23f38f25 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x242a0f5d xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2452c950 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x24acb0d8 pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x24c354d1 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x25002d98 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x2565a6f4 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x25a33d47 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x25ff66c6 pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0x260938c8 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x26414617 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x2659e942 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x2669153a ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x26a925b9 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x27490a18 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x27753972 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x278d4d18 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27b8343a platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x27cdba1c pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x27e059bd usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x27f3b63f mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x2807ced3 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x2815b3ad power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x2840c0a9 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x288b94d2 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x28abda4f mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x28d0bf63 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28e4312a mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28f151f7 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x292bf030 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x29618dc5 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a7ee820 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x2a8916a9 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2adaa2fa class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2b2740c2 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x2b28c5ae sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2b45be64 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x2b48776f ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2b4ebeac wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x2b63094c wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2b78e097 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b9612e9 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x2bde2304 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c2aab95 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0800 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x2c83aa6c skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x2cb7a111 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2ce025ae ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d1ee362 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x2d37e595 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x2d58a620 mmput +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db0c42e driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2db39a49 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x2dd44a2d scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x2df1010b cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2e0a07da regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x2e43b101 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e77314d register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x2e89636b usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x2e90446c __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x2e98f9ce ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ef5482c xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x2efcda5e ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2f094bb6 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x2f18ae8f debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x2f302a75 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x2f422407 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fa99f87 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x2fb157fc dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x2fbe307e wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2fcb3520 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fe6852d regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30924c61 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x30a0a01f relay_open +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30c8530f preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30cad907 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x30db6e9f ref_module +EXPORT_SYMBOL_GPL vmlinux 0x31781aa0 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31a39aae usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x31f0d310 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x325b7abc pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x32cc0772 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x32d598be regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32feb3ad blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x330cc8a1 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x333fab6a crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x33607d36 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x338aee5c sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x3395be0c pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33d97d3f ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x343723c4 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x344115de ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34445c78 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x34551c0a ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x346bd539 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0x34b6d031 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x34be22c2 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x3556fb85 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x35bd1720 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x35bed708 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35ecaef0 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x363e731f device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x36cd68d6 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x3747e9a6 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x37644452 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x377fbf9a ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x37d5f94f ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x38509b47 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38d2b14e ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x3931ce13 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x3949c45e usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x39be9cdc sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x39dfcacb inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a0c719c usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a5516c7 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x3a756082 find_module +EXPORT_SYMBOL_GPL vmlinux 0x3aa72416 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c452b13 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x3c6dafdc pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x3c726db2 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c9c755d tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x3cad06c9 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3ceecbea page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d30d9bd tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x3d35f395 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3dac5879 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x3db6cb58 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3e4e8832 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x3e5c10df ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3e9a291f __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3eb8c5da xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f38e134 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3f3e6b43 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x3f60f0e2 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x3f7771c2 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f9f240f sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x3fb53847 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ffc0d37 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x401b5dad fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x403cb000 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x403d955a pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x408fe1ca pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40eec775 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x41036379 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x415fe1e8 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x41a55cf5 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x41c8cd6f each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x41df32bc setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x4201fb03 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x422cc502 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x42326b8e root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42824025 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42ba1c38 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x42bc2b6c save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x42d0445c dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x42fcabc9 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x431c90bc add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x43287e87 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x433e399b inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x4347e316 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4363b655 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x4368f3c4 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x439bcb46 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x445170a4 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x447379af pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x44792250 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4491ba63 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x4496fec0 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44ad0d6c ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x44b515f3 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x44d8d15c __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x45335797 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45b51810 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c12d0e ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45e1928a pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4612c235 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x4625d268 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x464c984d sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x467d3cc7 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x470ba734 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x470d9c96 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x471e966a kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472930c7 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x47345869 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x477d365b rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x478bd478 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4791bebc blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x47f6487a ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x4834dbba ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x485b2fb0 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x48672258 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x489a3b6a ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48dd3872 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x48ec5edb ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x48ed47b3 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x4917a63b inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x496ac406 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a4ec0e ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x49c7ea9a ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x4a071979 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x4a42f73f trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x4a44e7de hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4ab161fe pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x4acdd713 user_read +EXPORT_SYMBOL_GPL vmlinux 0x4af73706 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x4b36ab72 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x4b8187b0 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x4b81a958 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x4b8a3dce debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x4b9b9fe3 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x4bb8b171 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x4bcd76d2 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4bfb7bd7 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x4c4d6801 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c927955 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x4cc7ef84 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x4d14fcf7 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x4d1a197d ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d9e23c2 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4dd28b4c unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x4e888e75 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4e984935 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x4eab52ac attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x4ebd162d ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x4ed4d1dc cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x4ee75d31 mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4ef6d7aa init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x4f00de5a pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x4f42b2b6 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x4f6e7da7 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x5000b86c __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x505c57be pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x506c9b47 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50b467e8 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5107ae8e dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x514bd38f led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x515add50 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x515c4283 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x51665fc7 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x516c8a6e hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51bf3870 dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x51efa2c6 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x52061263 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x5208e9c7 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5249f0be srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x524f5b37 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x527fe13f inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x52b10c8f user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x52eefc50 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x53220a86 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x5349dcd2 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x534ec30c usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x5352aa6f ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x537c8aea __css_put +EXPORT_SYMBOL_GPL vmlinux 0x53865344 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x539aa2b1 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x5403a362 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x541432e0 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x541bbd20 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x5428ac56 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x545173f2 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54921b77 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a3ce1d xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x55011f14 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x550559f7 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5525783b vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x552d9b3e xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x5547d11d crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x55ca06d9 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x5623f468 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x5629dd4d register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x56532e6f wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5664b5ec bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56ba511b inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x56bc3472 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x56c49cc8 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x5732d4ff usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x5748bc4c led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x5763733c regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x579d1eee platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57b8c57d sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x57f9671a fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x580684ac kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x585cbf87 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x5862f9e4 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x5880b324 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x58d4e2e2 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x58f476b9 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x58f75350 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5941b39c rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x59527332 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x5976bd30 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x597a3703 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x59870ed5 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x59a3b2cf crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x59c5945a pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0x59e47e52 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a62af9f devres_add +EXPORT_SYMBOL_GPL vmlinux 0x5a6a7dcd dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b42005d debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x5b95ae20 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x5bac0101 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5be947db sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c1881bc usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x5c27a32d usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x5c4e6007 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x5c826e6d get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x5ca153f7 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d20ade9 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x5d27619b ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d457680 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d81bf17 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d9dfb46 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x5d9ff0c6 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x5dbbeef1 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5df58054 __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x5e05508c devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x5e1183bb __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x5e6ff2d1 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x5e73a097 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x5e82e865 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x5e9606d3 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x5ead4a75 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f110b7f relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f60c37d pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fd5384a inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x6008ca26 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x601421dc da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x6098e9c7 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60bef2c5 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x60c6f982 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60e8c98a sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x613b7d0b usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x61bad0fd vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x61d6f721 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x61e1ff05 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x6202d60f generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x62183b1e kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x6253c0e2 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x6253dc36 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x627af498 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x6287d3bb __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x6307a225 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x633b128e noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x635d9896 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63a4529a sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x63a67bec crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x63ac8d1f ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x64a37310 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x64d49e59 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0x651526c1 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x6526aff0 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x6535f07e usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6566343b input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x656c1dbc pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66323d24 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6690529f register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66bee583 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x66c34c99 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x66c67fcc task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66fbbc52 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x6710f655 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x6752b9d0 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x678404ba zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a4145f wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x67fd98bd ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x680a72ac wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x682adaad ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6859dca9 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x6863ee38 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x68647c51 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68805996 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x689a08cf usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x68b0a110 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x68ed1982 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x694c3460 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x695640d2 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x69762fb2 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x697fda85 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x69d988cb bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f2c68d driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6a4bfa2c unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a734811 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6aceded5 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6b0191ac ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x6b11e778 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x6b14ba86 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b39cb56 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x6b544262 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x6b5b8bed i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x6b5e8917 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6bc282f4 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x6bd5c029 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x6bdcc53f usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c23e255 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6c2718cd security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x6c37ecd7 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x6c4746d4 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6c9dd68d usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x6ccf3908 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x6d21106b crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d350b2f hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6d3eb545 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x6d81cce6 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6de65839 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x6e090c1c adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x6e0a0ff7 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x6e21c667 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e782c23 iomap_create_wc +EXPORT_SYMBOL_GPL vmlinux 0x6eb14ac3 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x6ecbe3cb rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x6f18b9bc raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f7fe3d9 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6f960777 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x6f9b3a85 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x6fb44514 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x6fbc8d5a sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffe2289 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x700d2514 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x703ab0e2 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x70722d34 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x708d9a61 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x709aa6de sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x70b6f30f regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x70bf594c get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x7108bd7a devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x713c98ba cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71c19e17 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x7239f973 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x725375e2 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x727a12c2 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x727c5a50 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7285f84f unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7298a9c7 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x729db157 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x72e1f5cf ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x7362503d tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x73a12584 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73d75d59 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x7409614b fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x744b49dc ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x7494e0b0 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x75098246 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x755671f5 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7561f86d scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x757f9af7 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75c3ff9d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75f11416 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x76051dc3 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x763f3374 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x77a56ebc __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x77dd3a75 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77ec5a3d dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0x7860a857 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x786fc9f4 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x78bd0c8f fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x78ceab93 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x7918dd86 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x795fba0e debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x79af42e7 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x79b68085 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x79cf2087 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x79dbaf75 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7a108be4 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x7a42a27d ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x7a4455d8 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a59dc84 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a5a41fc spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x7aa0ea8a invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b118a94 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b21b106 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x7b3bb2bf inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7b765780 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x7b84aa9f usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x7bbc21c6 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x7c47b89d iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x7c6f17bb pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x7cfc5855 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7d413cf6 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dafe996 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e63e1aa __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e74e5a7 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x7e9966ff i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7eb94839 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7eef44e5 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f52b686 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x7f668fcb __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x7f941492 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x7fa7251b transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x7fb11b66 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x7fbc21ce input_class +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff68292 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x7ffa3247 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x7ffcf710 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x800acd5c single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x802adbb1 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x806f41d7 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x807c6ab5 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x8086f62e crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x808cfd3b ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x80f2d215 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x814269f1 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x8147d289 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81633c9f sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x81e91943 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x824fbbf8 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x82878d23 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8289b5fe platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x829c38a5 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82e15f9c ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x82f6e8dc gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x832e27eb wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x834c137a __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x8393a468 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x83ca05db adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8429e610 device_add +EXPORT_SYMBOL_GPL vmlinux 0x842ad230 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x84418924 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x846131f2 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x84752abc get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x849e127b input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x84b21ebe usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x84e68487 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x84eaf503 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x85237354 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x85312636 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8551427c sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x8559458c spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x8561dee2 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x8570e12c tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x8596bb4d cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85ce7b35 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85e7aa30 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x85f28a41 css_id +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86c54687 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x87184bc5 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x876d67d1 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x877d00b7 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x87d88e0e __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x87e3c4ab kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x87e49d73 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x87f5576d inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x880d7c67 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x88200f3c cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x88213ebc acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x883a6ec0 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x886736fc olpc_platform_info +EXPORT_SYMBOL_GPL vmlinux 0x88751afc tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x8887dc93 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x8899ea31 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88c31763 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x88d2db32 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x88f9a4b9 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x8906e169 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x891e2793 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x892e4d19 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x8952cbc9 inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x897a84d5 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x89bd5935 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x89de0223 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x8a145624 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x8a4b59eb usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8aa2c0ef sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x8aeaabec regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x8aeb20e2 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b89ddc9 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x8b8cade1 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8bc658da __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8bc6ef7c blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c180e28 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x8c1f02f7 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8c9cde0a regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8cb09009 get_device +EXPORT_SYMBOL_GPL vmlinux 0x8cd48281 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x8cfbe50a blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x8d17edb0 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x8d261a43 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x8d789e4a crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x8d9441f5 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x8dd7878f ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x8de81b1a elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8dfba04b usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x8e17f064 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x8e745755 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x8ea63ac2 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f0bc2d4 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8f1c3978 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f79c003 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x8f8b3597 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x8f9d3c63 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fd6f219 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x8ff724e7 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x9029f508 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x906dce50 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x9071d22e regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x90909971 __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90ad84b2 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x90d9fe38 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x90dd99db class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x90f6faeb crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x91209ff4 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9182c7b4 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x91cd581e debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x91cf9839 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x91d11bd7 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x91e1df36 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x9261bcf4 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x92b1edb6 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x92bb8bce sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92daffda devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x92ffa5e0 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x937c806c driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93efad44 acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0x9421cc9e inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x94578fcc dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x945b3813 dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x949307d9 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x94a03241 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x950e60e5 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x952aecc8 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x9540e489 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9575e0ad regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x958b8743 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x95be011f aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x95fdd666 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x95fe72e1 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x96acd913 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x96b6fc78 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96df9e98 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x97c3cba1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97e37f80 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x986c30b5 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x98b5f366 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x99173101 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x991938a4 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x99508d47 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x9955b9fc skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x995c29d4 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x999beddb virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x99a00aa5 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x99d265e7 user_update +EXPORT_SYMBOL_GPL vmlinux 0x99d3c738 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x99d9c39a hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a7f6b65 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x9a96d7b5 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x9a980aa6 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x9aadf1f5 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b08c4e4 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b09447a kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x9b1434ee __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x9b18ada4 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x9b1aa898 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x9b61b91d __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x9b74e1aa xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x9b829ea9 device_del +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bd4a35f ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c37c9d3 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x9c7a8475 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cccfb84 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9cd402a1 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x9cde6cba led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x9cf6a718 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d08feda crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d9926c6 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x9dce2bd1 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9ed9b2d8 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x9edebbd3 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x9f30bb99 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9fc778f4 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa04abb62 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xa0c15583 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa109c2fc unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xa138fdc2 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xa14c1ebb sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xa1c07bdb crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa1f82a2a ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xa2049d2e tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xa2054d02 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa22cadbf pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xa261b280 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xa2e6034c sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa2edd8af fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa36c6890 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xa3934f44 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xa3cbea12 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xa3e117bb wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4873fb0 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa4a4fd45 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xa4ac3e94 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xa5413fb1 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xa554d354 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa58cb0c8 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xa5ac5783 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5cf27f2 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f5c5fd ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xa60c4dd4 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6317905 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xa6a77782 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa6c4f79f dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xa6d390e3 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xa74fcad8 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xa7a30978 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xa7dcf940 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xa7fa52a1 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xa8348112 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xa835a3d0 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8bc256f transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xa8c52648 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa8fd8e10 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa913b535 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xa9322df3 tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0xa95a4634 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa18c0d2 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaadddf21 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xaafc598b acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab36b641 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xaba3f237 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabe41e93 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xabea67d3 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xac1898da ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xac1a0e9a proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xac23ec10 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xacd01873 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xace4d0d9 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf21f7b acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0xacf397c6 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xacf7646c tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xad032a4e kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad33f9f6 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad70163d regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xadbcabfc attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae4dcc56 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xaec9f596 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xaef8693c rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xaeffc1c3 inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0xaf3c5262 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xaf98fc75 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0xb070a9da pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xb07d8d7d scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb0e9a1d1 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb1346a56 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xb15513a3 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xb16572d9 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xb16cd385 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1a343f8 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1b8245a regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xb1efea46 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xb28bb43e blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xb2b5bba9 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb2d56c15 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0xb3203d3a register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xb32184e9 __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb344530a get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb427dd96 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xb42e7cd5 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xb441e195 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xb457a6fd device_create +EXPORT_SYMBOL_GPL vmlinux 0xb459682c inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xb4d81e45 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4e4930a page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb53d97ea pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0xb561368b tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xb56ad35e tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb59f443b pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5d123d0 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb5e806a7 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb65971af blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xb65ccd96 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b3040b power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb6bc49a9 __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xb6d0cb07 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xb6d2407b ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xb6f7cbd1 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb7066790 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb71ea8a7 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb722046b pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb78a3250 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7e5f61b ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xb7ef9e2d tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb855c683 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xb856a12a part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xb85b812e ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb86386ca sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xb8a523fe device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb8a81486 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xb900d237 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb92f8a8f ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xb953a72d tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xb992338b input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b0729f usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb9d91ff5 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xb9e074c5 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xb9e7c502 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba0f8cf7 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xba20b668 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xba55bed9 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xba5a000d pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xbad68aaf device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbafedc85 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb05cf26 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb42d725 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xbb7b9af2 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xbb88f530 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xbb9af0c4 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbc8f661e usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xbce836dd cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xbd0855f0 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xbd1da2bc usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xbd253e8f device_register +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd50cffd crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xbd5f0337 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xbd62f80e usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xbd7f658e scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3d5a92 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xbe598c8c pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xbe5da928 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbe5feb5e crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbe6bd233 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xbe78519b crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbeb4be39 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xbec28f4a vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xbf13a91d perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf516388 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xbf65f520 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xbfa30db9 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0xbfaaa924 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xbfe0365b ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xc0011767 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xc0019fd7 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc09fe9e9 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c3bc45 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xc0db8148 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc0de98ec flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc1343961 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xc15b71c7 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17bdc7a ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xc18783d1 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xc1b48f03 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc22bec52 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xc241da40 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xc24cbf27 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc2afd1fe inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xc2d49b2f debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2de6ff2 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36828a0 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3aab0e3 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xc3de83ae ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xc3f55520 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xc412e9af regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xc414c4b3 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xc45c826e ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc48e8dcc ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0xc4b5fc3f pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xc4f10273 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xc4f1bc86 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xc4fe5016 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc5ca7ff7 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0xc5e991e1 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xc5f2b7d1 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6200c10 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xc623ad07 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xc6910efd crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xc6928223 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xc6afac79 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xc6c4bebd ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xc6f30e4c wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xc710027c virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0xc716711c driver_find +EXPORT_SYMBOL_GPL vmlinux 0xc71e23db crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xc783cd6a disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc78f00f7 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc7c68701 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xc840b6b7 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87c48cb sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc935f353 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9522074 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc975b34c xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xc977b359 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xc97e4596 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xc98a050c init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xc999f9ea ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fe9dac scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xc9fed8fd ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xca4928b3 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xca59a4e6 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcab30704 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac01737 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xcb611ee0 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcb74df3b __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbee81ee regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xcc144b98 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcc158479 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc5338e2 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc7e92a1 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xccbbc066 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xccccb1a1 css_depth +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcce0d57f __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xccee438a xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xcd0dbfe9 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xcd2e3d55 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xcd91b37c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xcd9c1ce6 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xcda744e3 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xcda828ba apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde3a68c cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xcde66cae usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce7c20be hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0xcea25a7e __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xcedd6108 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xceed1ffa spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xceed97a0 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xcf418f07 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xcf4fa24b inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xcf60a779 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfad843a sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfd0ce91 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xcfd80387 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xcff6d41c class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xcffd42bc generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xd02b2932 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xd02f1428 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd041f8fd rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xd076cf9c device_move +EXPORT_SYMBOL_GPL vmlinux 0xd0828785 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xd0de4102 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xd12ac59b olpc_ec_cmd +EXPORT_SYMBOL_GPL vmlinux 0xd14ae3de acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd179c864 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xd1947955 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xd1967adc __class_register +EXPORT_SYMBOL_GPL vmlinux 0xd1af7d9a sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xd1b14798 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1dfecb5 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xd210fff4 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd2442616 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd26c190d raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd26fb31c crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2d1312d raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xd2eacb61 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xd2f66259 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd32191b6 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd36c5dd8 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xd3dc2756 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd3ded567 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3e54a15 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xd405a2d9 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xd428bf2d usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xd43a7bef __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xd4593d03 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xd47dfc90 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xd49a4575 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xd4b54862 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xd4d45ed8 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xd544e902 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0xd57752af rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd57f3254 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xd5873e63 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xd5b2b196 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xd5c7a0f3 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5eb7b01 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xd608fa9e xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xd6734e99 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xd695549b ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xd6baf24c class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xd6c2c962 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xd6e468f6 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd752370e power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd774f6b1 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd79c2028 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd7a1e516 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7d9e460 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0xd832fa3b devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd888c0b5 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xd88fb74e aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xd8e2a664 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd93487d8 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd940c2ff rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xd94b2dd8 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd96b1bc9 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xd9813747 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0xd9b433ad dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xd9fb79dd register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda513e7e clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xda526a81 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xda5d0d38 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xdac984a4 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb59816b usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xdb806c7a __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xdb9d05ea ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdbb93115 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xdbba098e usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xdbc2c651 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xdbdafdd3 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xdbeb5052 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xdbeff2c3 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xdbfc60f3 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc13a1b0 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xdc1f1152 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xdc347d24 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdc8e963d alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xdcc4948a nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xdcd110de dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xdcf8529d tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xdd20fb08 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xdd4051c1 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xdd7ee079 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xddced95d bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde4f3a40 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xde58934e regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xde5e8e24 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xdea7d3ad unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xdec07201 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdec78581 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xded39379 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xdfd834af shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xdfeaa95a iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe016e5d0 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xe0265d0f fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xe02f3ce6 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xe046ab33 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xe04d7866 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xe065f21c d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xe06a47f7 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe08aa039 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0f25327 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xe1252860 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xe153fbc8 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xe1541a10 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xe1568d9c erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0xe1cc0ad7 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xe1d02782 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0xe263927b tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xe2838d16 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2b0f818 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe2bd7bd5 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xe2dd24a2 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xe333261c ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3390f17 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe36ece17 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe45115c1 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xe48806fd tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe4e37ebc dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xe4ec058e pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe5066adf tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xe50e807c ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe51ce135 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe537cdf2 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xe589edbf crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe5a3e6b4 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xe5c2a2f6 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xe5cf6d99 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe68fdc03 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe723e1d0 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe72e5bd7 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xe7499284 user_match +EXPORT_SYMBOL_GPL vmlinux 0xe7738335 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xe79b9138 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xe7af27b9 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe860d2a3 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe89c4835 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xe89f159f ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xe8cf07eb power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xe8e9c6ba usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe95e9608 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xe9f1ddf3 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea1ed2f4 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xea300a66 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xea3dc96d inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea6bdc28 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xea91e68a show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xeaa609cb ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xead6c181 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb04e47a ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xeb186333 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xeb2d6499 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xeb347905 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xeb36875b md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xeb584552 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xeb5b884b crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xebb2b641 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xebe3bd6c inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xec09a4d5 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec317f8c seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xec64438f skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xed036656 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xed320806 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedbf0078 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee2fa378 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xee314aa4 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xee4aad8a i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xee8dbb41 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xeefd53e2 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xef0369d0 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xef09e3f5 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef229245 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xef3c6674 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef8a5690 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xefd0f7a1 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xf01d2b0e pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf06a2bf4 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf0ae740d scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xf123f373 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xf12b3eed crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf15b755d dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0xf1665efa tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf191adb3 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b92bc7 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0xf240c6d8 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf2b092c2 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xf2ed047e raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf2fea924 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf33a32a1 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf3622de1 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf38ad7bc skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b7cc25 platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3e93205 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xf3f63691 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xf41b93c4 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xf45565f5 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xf48c6f67 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a83a93 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xf4bfeb87 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xf4c21482 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xf4c2187e ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xf4c44750 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5553651 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xf56bb5a5 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf595025e cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5f26ece fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6b6a1ff usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xf6e5f086 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf750c61a ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xf754dd6f vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xf76565cf tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf79b48ef n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7a688c6 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xf7ea74c4 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xf8070021 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf83cf850 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xf8669678 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xf87d73e8 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf918b0bc sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xf9259ca3 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xf92f3346 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xf9369486 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xf953c2ec queue_work +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf97a8ac8 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ac3b23 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9f5365e dm_put +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa161d2e mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa2f066d usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xfa6df829 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xfa7375b4 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0xfad6640e rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xfae2beb8 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xfaeae08f ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb732d35 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xfb925966 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0xfb93fe7b __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xfbce6b77 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfbfc12e2 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xfc00e02e print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xfc0ff53f device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xfc439066 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xfc48d7ee usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfccad881 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xfd1a0f4d apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xfd28969f get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xfd3bd949 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd5b065e ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xfd5d9b85 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe06f584 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xfe2eaabf xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xfe36783d debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xfe3fb907 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff15cb1a ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xff219c02 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5caafb ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xff918aab platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xff9501b7 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xff97a6ac dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffbc4c5a transport_configure_device --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/i386/generic.modules +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/i386/generic.modules @@ -0,0 +1,3073 @@ +3c359 +3c501 +3c503 +3c505 +3c507 +3c509 +3c515 +3c523 +3c527 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +53c700 +6pack +8021q +8139cp +8139too +8250_accent +8250_boca +8250_exar_st16c554 +8250_fourport +8250_hub6 +8250_mca +8255 +82596 +8390 +8390p +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +aacraid +ab3100 +ab3100-otp +abituguru +abituguru3 +abyss +ac3200 +ac97_bus +acecad +acenic +acerhdf +acer-wmi +acl7225b +acpi_pad +acpiphp +acpiphp_ibm +acquirewdt +act2000 +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad714x +ad714x-i2c +ad714x-spi +ad7414 +ad7418 +ad7877 +ad7879 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2016 +addi_apci_2032 +addi_apci_2200 +addi_apci_3001 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +adfs +adi +adis16209 +adis16220 +adis16240 +adis16255 +adis16260 +adis16300 +adis16350 +adis16400 +adl_pci6208 +adl_pci7230 +adl_pci7296 +adl_pci7432 +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-gpio +adp5520-keys +adp5588-gpio +adp5588-keys +adp8860_bl +adq12b +ads7828 +ads7846 +ads7871 +adt7411 +adt7462 +adt7470 +adt7475 +adutux +adv7170 +adv7175 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +aes_generic +aes-i586 +af_802154 +af9013 +affs +af_key +af-rxrpc +agpgart +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +alauda +ali-agp +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera_jtaguart +altera_ps2 +altera_uart +ambassador +amc6821 +amd64-agp +amd76x_edac +amd76xrom +amd8111e +amd-k7-agp +amd-rng +amplc_dio200 +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +analog +ansi_cprng +anubis +aoe +apm +appledisplay +applesmc +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asb100 +asc7621 +asix +asus_atk0110 +asus-laptop +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at1700 +at24 +at25 +at76c50x-usb +atbm8830 +aten +ath +ath3k +ath5k +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati-agp +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522 +aufs +authenc +auth_rpcgss +autofs +autofs4 +av5100 +avma1_cs +avm_cs +avmfritz +ax25 +axnet_cs +b1 +b1dma +b1isa +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +binfmt_aout +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq24022 +bq27x00_battery +br2684 +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c101 +c2port-duramar2150 +c4 +c67x00 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capi +capidrv +capifs +capmode +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcidio +cb_pcimdas +cb_pcimdda +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +cirrusfb +ck804xrom +classmate-laptop +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-isa +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +core +coretemp +cosa +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpqphp +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc32c +crc32c-intel +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535_gpio +cs5535-gpio +cs553x_nand +cs89x0 +ct82c710 +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxt1e1 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +dabusb +DAC960 +daqboard2000 +das08 +das08_cs +das16 +das16m1 +das1800 +das6402 +das800 +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +denali +depca +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dlci +dlm +dm1105 +dm9601 +dm-crypt +dme1737 +dmfe +dmm32at +dm-queue-length +dm-raid45 +dm-service-time +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +donauboe +dpt_i2o +drbd +drm +drm_kms_helper +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +ds2782_battery +ds3000 +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155 +dt3155v4l +dt9812 +dtc +dtl1_cs +dtlk +dummy +dummy_hcd +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dw_spi_pci +dynapro +e100 +e1000 +e1000e +e2100 +e752x_edac +e7xxx_edac +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +echo +econet +edac_core +edac_mce_amd +eeepc-laptop +eeepc-wmi +eepro +eeprom +eeprom_93cx6 +eeti_ts +eexpress +efficeon-agp +efs +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enclosure +eni +enic +epat +epca +epia +epic100 +e_powersaver +eql +es3210 +esb2rom +esi-sir +esp4 +esp6 +et131x +et61x251 +eth1394 +eth16i +ethoc +eurotechwdt +evbug +ewrk3 +exofs +exportfs +f71805f +f71882fg +f75375s +fakephp +farsync +fat +faulty +fb_ddc +fb_sys_fops +fcoe +fcrypt +fd_mcs +fdomain +fdomain_cs +fealnx +ff-memless +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +fl512 +floppy +fm801-gp +fmvj18x_cs +fnic +forcedeth +fore_200e +freevxfs +friq +frpw +fsam7400 +fscache +fschmd +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +gdth +generic +generic_bl +gen_probe +geode-aes +geode-rng +g_ether +gf128mul +gf2k +g_ffs +g_file_storage +gfs2 +ghash-generic +ghes +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_NCR5380 +g_NCR5380_mmio +g_nokia +go7007 +go7007-usb +gpio-addr-flash +gpio_keys +gpio_mouse +gpio_vbus +g_printer +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hed +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-wacom +hid-zpff +hid-zydacron +hifn_795x +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hostess_sv11 +hp +hp100 +hp4x +hp_accel +hpfs +hpilo +hp-plus +hpsa +hptiop +hp-wmi +hso +htc-pasic3 +htcpen +hv_blkvsc +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i1480u-wlp +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-dev +i2c-gpio +i2c-i801 +i2c-isch +i2c-matroxfb +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-isa +i2c-pca-platform +i2c-piix4 +i2c-scmi +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7core_edac +i810 +i810fb +i82092 +i82365 +i82860_edac +i82875p_edac +i82975x_edac +i830 +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmasm +ibmasr +ibmcam +ibmlana +ibmmca +ibmpex +ibmphp +ib_mthca +ibmtr +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icp_multi +ics932s401 +idmouse +idt77252 +ieee1394 +ieee802154 +ifb +iforce +igb +igbvf +iio-trig-gpio +iio-trig-periodic-rtc +ii_pci20kc +ili9320 +imm +imon +in2000 +industrialio +inexio +inftl +initio +inport +input-polldev +int51x1 +intel-agp +intel_ips +intel_menlow +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ir-common +ircomm-tty +ir-core +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_ibft +iscsi_tcp +iscsi_trgt +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1760 +istallion +it87 +it8712f_wdt +it8761e_gpio +it87_wdt +iTCO_vendor_support +iTCO_wdt +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvm +kvm-amd +kvm-intel +kxsd9 +kyrofb +l1oip +l2cap +l2tp_core +l2tp_debugfs +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lance +lanstreamer +lapb +lapbether +lcd +ldusb +lec +led-class +leds-88pm860x +leds-adp5520 +leds-alix2 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lp3944 +leds-lt3593 +leds-mc13783 +leds-net48xx +leds-net5501 +leds-pca9532 +leds-pca955x +leds-regulator +leds-ss4200 +leds-wm831x-status +leds-wm8350 +leds-wrap +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libcrc32c +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libosd +libsas +libsrp +lightning +line6usb +linear +lirc_bt829 +lirc_dev +lirc_ene0100 +lirc_i2c +lirc_igorplugusb +lirc_imon +lirc_it87 +lirc_ite8709 +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lmc +lms283gf05 +lnbp21 +lne390 +lockd +logibm +lp +lp3971 +lp486e +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4215 +ltc4245 +ltpc +ltv350qv +lxfb +lzo +lzo_compress +m25p80 +m52790 +ma600-sir +mac80211 +mac80211_hwsim +machzwd +macmodes +macvlan +madgemc +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max1363 +max1586 +max1619 +max17040_battery +max2165 +max3100 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +mb862xxfb +mb862xxfb_accel +mb86a16 +mbp_nvidia_bl +mc13783-adc +mc13783-core +mc13783-regulator +mc13783_ts +mc33880 +mc44s803 +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mct_u232 +md4 +mdacon +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memrar +memstick +metronomefb +meye +mga +michael_mic +micrel +microcode +microtek +mii +minix +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mixcomwd +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mos7720 +mos7840 +moto_modem +moxa +mpc624 +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtd_nandecctest +mtd_oobtest +mtdoops +mtd_pagetest +mtdram +mtd_readtest +mtd_speedtest +mtd_stresstest +mtd_subpagetest +mtd_torturetest +mtouch +multipath +multiq3 +mvsas +mwave +mwl8k +mxb +mxl5005s +mxl5007t +mxser +myri10ge +n2 +n411 +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +NCR53c406a +NCR_D700 +NCR_Q720_mod +ndiswrapper +ne +ne2 +ne2k-pci +ne3210 +neofb +net1080 +netconsole +netjet +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +nf_tproxy_core +ngene +n_hdlc +ni52 +ni65 +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_a2150 +ni_at_ao +ni_atmio +ni_atmio16d +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nop-usb-xceiv +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntfs +nvidia-agp +nvidiafb +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ohci1394 +old_belkin-sir +olpc_battery +olympic +omfs +omnibook +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov7670 +ov772x +ov9640 +ovcamchip +oxu210hp-hcd +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8023 +padlock-aes +padlock-sha +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas16 +pata_ali +pata_amd +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5535 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_isapnp +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_qdi +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pata_winbond +pbe5 +pc110pad +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca953x +pcbc +pcbit +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pci +pci200syn +pcilynx +pcips2 +pci-stub +pcl711 +pcl724 +pcl725 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcm3730 +pcmad +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcm_common +pcmda12 +pcmmio +pcmuio +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pegasus +penmount +pf +pg +phantom +phison +phonedev +phonet +phram +physmap +pkgtemp +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pms +pn_pep +poc +pohmelfs +poseidon +powermate +power_meter +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +prism2_usb +prism54 +progear_bl +proteon +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas +qlogicfas408 +qnx4 +qt1010 +quatech_daqp_cs +quatech_usb2 +quickcam_messenger +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192e_pci +r8192se_pci +r8192s_usb +r8192u_usb +r82600_edac +r852 +r8a66597-hcd +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +radio-gemtek-pci +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-miropcm20 +radio-mr800 +radio-rtrack2 +radio-sf16fmi +radio-sf16fmr2 +radio-si4713 +radio-tea5764 +radio-terratec +radio-timb +radio-trust +radio-typhoon +radio-usb-si470x +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +rar_register +raw +raw1394 +ray_cs +rc-adstech-dvb-t-pci +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avertv-303 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-empty +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge-new +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-lirc +rc-manli +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc5-hauppauge-new +rc-rc5-tv +rc-rc6-mce +rc-real-audio-220-32-keys +rc-streamzap +rc-tbs-nec +rc-terratec-cinergy-xs +rc-tevii-nec +rc-tt-1500 +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-gpio +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +ring_sw +rio500 +riscom8 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2860sta +rt2870sta +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3234 +rtc-fm3130 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-mc13783 +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-test +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl8150 +rtl8180 +rtl8187 +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-i586 +samsung-laptop +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc7240_wdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbni +sbp2 +sc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +scc +sch311x_wdt +sch_atm +sch_cbq +sch_drr +sch_dsmark +sch_gpio +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_multiq +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +scx200 +scx200_acb +scx200_docflash +scx200_gpio +scx200_hrt +scx200_i2c +scx200_wdt +sdhci +sdhci-pci +sdhci-pltfm +sdio_uart +sdla +sdricoh_cs +se401 +sealevel +sedlbauer_cs +seed +seeq8005 +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha1_generic +sha256_generic +sha512_generic +shpchp +sht15 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sim710 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_platform +skel +skfp +skge +skisa +sky2 +sl811_cs +sl811-hcd +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc9194 +smc91c92_cs +smc-mca +sm_common +smctr +smc-ultra +smc-ultra32 +sm_ftl +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1816a +snd-ad1848 +snd-ad1889 +snd-adlib +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-als100 +snd-als300 +snd-als4000 +snd-asihpi +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt2320 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmi8330 +snd-cmipci +snd-cs4231 +snd-cs4236 +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emu8000-synth +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1688 +snd-es1688-lib +snd-es18xx +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-gusclassic +snd-gusextreme +snd-gus-lib +snd-gusmax +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-atihdmi +snd-hda-codec-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-idt +snd-hda-codec-intelhdmi +snd-hda-codec-nvhdmi +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hifier +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-interwave +snd-interwave-stb +snd-jazz16 +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lx6464es +snd-maestro3 +snd-mia +snd-miro +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-msnd-classic +snd-msnd-lib +snd-msnd-pinnacle +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3sa2 +snd-opl3-synth +snd-opl4-lib +snd-opl4-synth +snd-opti92x-ad1848 +snd-opti92x-cs4231 +snd-opti93x +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16 +snd-sb16-csp +snd-sb16-dsp +snd-sb8 +snd-sb8-dsp +snd-sbawe +snd-sb-common +snd-sc6000 +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-sgalaxy +snd-sis7019 +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-core +snd-soc-cs4270 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wm2000 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8776 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-sscape +snd-tea575x-tuner +snd-tea6330t +snd-timer +snd-trident +snd-ua101 +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-wavefront +snd-wss-lib +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +solos-pci +sony-laptop +sonypi +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +specialix +spectrum_cs +speedfax +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +squashfs +ssb +ssfdc +sst25l +sstfb +ssv_dnp +st +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stowaway +stp +stradis +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sworks-agp +sx8 +sym53c416 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +tc1100-wmi +tca6416-keypad +tcic +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10086 +tda18271 +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tle62x0 +tm6000 +tm6000-alsa +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpm +tpm_atmel +tpm_bios +tpm_infineon +tpm_nsc +tpm_tis +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +trancevibrator +tranzport +tridentfb +ts5500_flash +ts_bm +tsc2007 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw9910 +twidjoy +twl4030-gpio +twl4030_keypad +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twofish +twofish_common +twofish-i586 +typhoon +u132-hcd +u14-34f +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +udf +udlfb +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +ultracam +ultrastor +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usb_gigaset +usbhid +usbip +usbip_common_mod +usblcd +usbled +usblp +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +uss720 +uvcvideo +uvesafb +uwb +v4l1-compat +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-agp +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +vicam +video +video1394 +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtual +visor +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmware_balloon +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt6656_stage +vt8231 +vt8623fb +vxge +w1_bq27000 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w35und +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +w9968cf +wacom +wacom_w8001 +wafer5823wdt +walkera0701 +wanrouter +wanxl +warrior +wbsd +wd +wd7000 +wdt +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +winbond-cir +wire +wis-ov7640 +wis-saa7113 +wis-saa7115 +wis-sony-tuner +wistron_btns +wis-tw2804 +wis-tw9903 +wis-uda1342 +wl1251 +wl1251_sdio +wl1251_spi +wl1271 +wl1271_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlp +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-gpio +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x_wdt +wm8350-gpiolib +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-gpio +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xhci-hcd +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_iprange +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xvmalloc +yam +yealink +yellowfin +yenta_socket +z85230 +zatm +zaurus +zc0301 +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/i386/generic +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/i386/generic @@ -0,0 +1,11214 @@ +EXPORT_SYMBOL arch/x86/kernel/scx200 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/kernel/scx200 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/kernel/scx200 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/kernel/scx200 0x907665bd scx200_cb_base +EXPORT_SYMBOL arch/x86/kvm/kvm 0xa4aac19b kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xfc931da0 kvm_cpu_has_pending_timer +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/acpi/video 0xac6bb54b acpi_video_get_edid +EXPORT_SYMBOL drivers/atm/suni 0x11c649bd suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xba8ea630 uPD98402_init +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x8fd38ed6 drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xd3526f9b drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/paride/paride 0x2bb5c16c pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x4572f4e0 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x7180a63e pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x7af9ad71 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x7cdf6a28 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x91b5a7cf pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xa19b73e2 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xa2c1c51d pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xa4cef1a5 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xb3098881 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xcf2edc32 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xf83d1b82 pi_read_regr +EXPORT_SYMBOL drivers/char/agp/agpgart 0x049ddbb6 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1cb4698d agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x241caa98 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x2532bca2 agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x2e0ce352 agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0x40ab0a62 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4479cb95 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4c9b6052 agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0x57adea40 agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5d127145 agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5de834e1 get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6367be44 agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x644e657f agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x68c05cf3 agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8987c1af agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8c5debe5 agp_generic_alloc_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8e9d735c agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8f3f870c agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa1a4e85c agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa6f31184 agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xaa3cf9bc agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xaa4eb503 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb6e38c1a agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbf762e54 agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc305da43 agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc3a4bd76 agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc4bcf2e8 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc558c984 agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xca381efa agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xcb2e198f agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd4380f6b agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xed43a09d agp_generic_destroy_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0xff714bef agp_flush_chipset +EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL drivers/char/agp/intel-agp 0xfcc4aec2 intel_max_stolen +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x002943a0 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x13fdc1ef ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x453068b0 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x46b49f9d ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4f0e7e65 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4fc98607 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x618fd465 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x641bd165 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7075749b ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8ebfbf60 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96a7afac ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9e0292bd ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa261af74 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xadaeb04d ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb1e99833 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb578b3b8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc0d58e69 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd6e7be0a ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd8377fa5 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd8f960c2 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe67ce4c0 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe83613a7 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfb9322b8 ipmi_create_user +EXPORT_SYMBOL drivers/char/nsc_gpio 0x7701ae5f nsc_gpio_read +EXPORT_SYMBOL drivers/char/nsc_gpio 0x7d7188f6 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0xb88b4601 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/edac/edac_core 0x16468db5 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0x60257141 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0x670ac730 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00b4d522 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x125c9133 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1403c187 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x37efa367 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3f2dec8d fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4ad32552 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x54f4045b fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5ce47635 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5eb3a7bc fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5f9cdc7a fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6d49276e fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8c30d55d fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9844b1e2 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa037137e fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa2e89a47 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xab7f053e fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb545051a fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbf53deeb fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc874851d fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcafcaf50 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe1bac50b fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xed147ba9 fw_core_initiate_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfa77a55f fw_iso_context_start +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03514f48 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09936c43 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b439314 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e5a10c7 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fe14688 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1367a599 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17f8172d drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18f165bb drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b822c7a drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c4d0c34 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f68763a drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22841144 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23b9293a drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x253e5e5f drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a739a5f drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a817152 drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d0290a6 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e5ef480 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fff2455 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30ead89f drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33ec311b drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3483d37e drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37a0187f drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3875a29c drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x391a555e drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x391b8041 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39fb472a drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f293459 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fed948b drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40ed6f5a drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42d85223 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45d4f68d drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x464e70d9 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47f310a8 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x480aaf00 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49a60777 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e6cbe00 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4fab0d6c drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51df837e drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53557602 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5361d5c4 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x546c2a2d drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a2ee1f8 drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b3c0fd4 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d643738 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x618bda51 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62dc12d5 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6320d985 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x633aa88f drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69b74117 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b9cac69 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d35c121 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e68138b drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f00a72d drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70508b24 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7143605e drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7227e0c3 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x773fc1af drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7813ff4e drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x794cb178 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c24fafd drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f04c88d drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83215722 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84a16aa6 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84db00a8 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86a5b7a3 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871d7770 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d9ec805 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dc9e847 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f96645b drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9233ef57 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93e419d5 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9412e951 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x989251c8 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98fa62e7 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a78eea2 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bac3f28 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bc4ee8f drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d67bbeb drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eedf9fd drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fd39117 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa205a796 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa238449c drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa270f9f2 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa54a37a2 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaba9ead1 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadffdbdb drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb07a98d4 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2d997fb drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb94c836e drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb982425e drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0a8cc56 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc12e54c9 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3c5971f drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc68cdd73 drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6c39e17 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca8d0371 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcaaa075d drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb474e98 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd19d6d8 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfca3d8d drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd025790f drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1961a6a drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1ea659a drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd40a2d8a drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6c05620 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6dc6103 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0ac0ef0 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5425aaf drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe66cef11 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6ce4cc7 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb443935 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecc25b97 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed9953e3 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee80c2e2 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf28c781e drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf487f10d drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6e8e475 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf904e32c drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf948be6a drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb0e2a97 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc9a4a8b drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b2d8ff3 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0d98512d drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x10d53519 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1c27d078 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x21a3fe05 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x29cdf57d drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2a93187e drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3960572b drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x48930575 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x590ed986 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x76730be2 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x790fe26c drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x822d5137 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xac847395 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xad25bf3d drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb7941806 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc160e716 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2321f10 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc36cd8fa drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc6308375 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc68dd227 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcb0d0bb5 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf09715b drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd0c96a45 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd17c846c drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda32e82e drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda59443d i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfcb88f6d drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x114bc67f ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x12a10d85 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x137f77ad ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1471d1a7 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1631b751 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17d02c4b ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c4d494d ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1dc4699b ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1f3bcb25 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ff54ff0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x244d7651 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a0c40f2 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38c544b0 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a29d2a4 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3ac18767 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4021da29 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50ef3aa6 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x533d328b ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53802cc9 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53cc2192 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5973d52b ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5c416b9e ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x658fa684 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6c5e1c86 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x720b6285 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x737683d7 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x828ae65c ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83c2d310 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8919b864 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8a24a4ca ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e62fa47 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x96354c0d ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b7af728 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d807ec7 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcb3d4457 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6a8fed ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd30ea378 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd66ba4df ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xda96d584 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xea859ec7 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeb1ef1ec ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf3151e4f ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf7dba3e8 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa9c0d5f ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfb76de04 ttm_bo_init +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x223dbcd2 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xde98a289 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x23705145 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xcc2f03e2 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xb055ebe1 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xd5a95f62 amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x028266c3 hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x088bc78f hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1164b21c hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x132d2f28 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13c12496 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x18185b68 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1bebb3f8 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2fcf4dae hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x384374dd hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3ea6e637 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x406d0106 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4136cb4e hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x45a1c4b7 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5002e644 hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5204564c hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x572719dc hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5c536f0c hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5ef7c56e hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6772e20e hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x699c6e00 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b7b87f9 dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b97738f hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6d731640 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x710938eb hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x73406b67 hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x769b5a0e hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76ff63ae hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7a477699 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x902f67a6 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x91a2e09a hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x92600450 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x93a719cb hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x96aa9c9a hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9cd81568 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9dacb9ac hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9ffe3e95 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa5e7acaa hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa77d4137 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa87dd75c hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaac75829 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaf5ea1b2 hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaff2d1cd hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb410e5f7 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb65bbee1 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb7f99a4b hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbca813fe hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbcb9a3a0 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc346c32b hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcb6d8cb2 hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd3003323 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd333a01a hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd33558eb hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd9b8442b hpsb_lock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xda17905e hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdabf1371 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdc42270d hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdea75ae2 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe56bc106 hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeaa22040 hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeb88d0eb hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xec1093e3 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xed52b22c hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf64df94b hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb83cdd4e ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xe1c7dc68 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xfba5ad48 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x218695a5 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0b2da918 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0e706442 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x23ecef42 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2c12f7a4 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2daa53aa ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x31964b64 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3d471e8e ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6432b7b4 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6627b57e ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x89c8a2d1 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x932d79fc ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xabfdf661 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xae003134 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb164c352 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc64a4cbd ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xde561bdf ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe279ce23 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08576bd9 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0936fde5 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b14ffeb ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ea1ce3f ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10a41c75 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1141fff7 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x143cc569 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1f419755 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30ca0b05 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30eef9c5 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x34747406 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3944398e ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a01e868 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e68e0e2 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f15b0c0 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f196714 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48fa7a15 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49ee8452 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a66fcfb ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bd1ba76 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b5a3eac ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5cb9d686 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d95244c ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d9bbce4 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62fba38f ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69aa8208 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7059a189 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x716a0e59 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x770619a8 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77c4ac43 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78a31f71 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d98c731 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81519ea8 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b5ad7d0 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x91b62687 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92bbbdc6 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9379dac2 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9bc3baa8 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa09e6e7b ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3ae2189 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa62ae03e ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa87ac9f8 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xadb6eb72 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb154ee27 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1c2f066 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb760b02d ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7e7c500 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb88a17be ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba823f9a ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc05d859d ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2a38826 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc892b304 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0a6ed30 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd126c27b ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1e6780c ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4837cff ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe67a32ce ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea2dcb40 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xee8b0510 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf110df05 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf16e18c7 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4b9c133 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4cc8d91 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbf6cd3f ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff37f152 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xffaf5485 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1306bf53 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x16cce434 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x217b7e13 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x33bd8fa0 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7a27d766 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x869ee1cb ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9eab5c21 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbd8fac1c ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc207734d ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc7c6f262 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd40822fd ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdb872a83 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x21e7e806 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3a318d08 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x46d85ca0 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5e9893af ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x89a56f66 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd2777a10 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf66c5e45 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x02ebb688 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x10d0c9d7 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2848b2f4 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x733ea72e iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x81a14caa iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x86115cba iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8ff6aecd iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x92e2427d iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0905f94f rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0f35badd rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1b36ab73 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x201f4a81 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x26c7698c rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3ca2f5b5 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x56fa9669 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x66fdee62 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6badce3d rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x81ed3e7a rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8fae0114 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x93dfbc87 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9d89bb63 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa8c3aa43 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xabb3a9d3 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd6e3a7a5 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe816defe rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfcbe3fe0 rdma_notify +EXPORT_SYMBOL drivers/input/gameport/gameport 0x43068ff1 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5402c2b7 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x6219bf7d gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x77db3318 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x91ed845e gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9aa4faac gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xaf7f8e86 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbaea0bbc __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xdc8e81ba gameport_start_polling +EXPORT_SYMBOL drivers/input/input-polldev 0x926e4ff7 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x95e83885 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xeac3f0bb input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf1caf1b6 input_free_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x23e57e93 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x551e635f ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x5bdf82dc ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x8a340ab9 ad714x_disable +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0a37e2d8 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x11b58b7a sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1487669c sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x2986b646 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x66733a83 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x87a0c3e5 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x2d6d1bf1 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x32fbec4d capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x668c04e0 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x78963c71 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7eef1c74 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x85c3ff6b capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8c0a3730 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8d00a1ef capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc1c8ce02 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe17efcf3 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf9490446 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfee16e66 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x32111f32 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4dc16fc2 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x51523c9c b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5ec7b919 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x732a4f60 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x78bd3edf b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8a10f85c b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8a6b1c94 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8fdf3208 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa6bd1db8 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad2b5293 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb4e51aa3 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb79a4542 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc1ca3b8a b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf0f91853 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x0f395f03 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x12ef61f0 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x44a48349 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x466d0c0f b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x81ff0e2b b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x9d8c300e b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xaa849237 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xae31dc72 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe322b64c b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0xa755499e proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x0cc5ce49 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x947d1e92 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe5a1a22a mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xeeacf849 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x2a34a07a mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xf0825a52 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe11dee62 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x297fdfcf isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x2c10d43d isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x7874d8ac isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xd5706b79 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xe6b402b3 isac_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xbef3fca5 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xc35ba163 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xcd114ebc register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x05b8ead4 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3942002c create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3b756cd5 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3e38214d recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3edf17c0 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4217d1a1 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x42f60033 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54f8acc9 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6a90468d queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x77013d3d mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7b084177 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x999edeec get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9e2138d8 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xab91573f mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xae71328b mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb3f44ae9 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb467aecb get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb6af8d06 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc0e21e86 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf660eca1 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf8544afc recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfef8a948 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 0x35fce647 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/ir-core 0x9b1cc84c ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x050a0d69 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x0cbbce0f lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x4c01defb lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x85f01169 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x887cd961 lirc_get_pdata +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x9ba6f975 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xa7396c9f lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xdd0b4379 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x0c8840f7 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x26a91c9f mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xa29cdfd2 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x1224154b mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x1dbe4e87 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xc56d34de mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xbf096f20 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0xf5f4efe4 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xcd812ae3 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1915fdcf flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x22221110 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2c92553d flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3b39a1cc flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4e20ac3e flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4f7e30d7 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6d0a1bd3 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x715e4add flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x82aa51e5 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8af7d44b flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9895d381 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcba0f6a2 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe1708bfa flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe862d984 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xec936892 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xee419012 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf21b9beb flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf42f42ad flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf9965c91 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfbd28752 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x66d9b732 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x70e4fecd bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xadc815c0 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xbf21725b bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x17aea3ac dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x33453edf dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x72e361fb write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa5903024 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc2fcc209 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc4c58028 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xcc3c327e dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe3acfc83 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf7d04a62 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xb898bd39 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1006dad7 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x119a47f8 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1963a11a dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1de5dde2 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2c202fc3 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3c0fbb9e dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x43347283 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4c1b7e69 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x57400afd dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x59523a0f dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x659f81dc dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x688c2da8 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7f57a537 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83df67d5 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x863bf410 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88dffd14 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x91728b1c dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9e889bd9 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9fcdcfea dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb035c8bb dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb2f32b76 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb3980c1a dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb6715a7b dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xba9fe9be dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xceacda58 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd05de12d dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2e30721 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd6f09a3c dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe712ccde dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xefc6bab9 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf3d4e3c8 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf764cbf8 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf80054a1 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc3b495c dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x11e992c5 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x1e040d44 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2a918ef4 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2d22c059 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x92ec41e7 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd0d720c7 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xdeed3d2b dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x2e0e196b af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x19664530 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2d4c637d dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2e4f43f9 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x502d862e dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6d1d1dcd dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9452b431 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9c07a9e8 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa3e92671 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbccc0682 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd70c1f01 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xefbcef6c dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x236377ad af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xe3117208 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xb02d8f4b au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xe56ad356 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xa3e670c3 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x8e58777b cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x488cd090 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x5e0f601a cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x891553f1 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x9c3cfb26 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x2277a074 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x6c949fac cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x5a6325b3 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x5f365774 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x93c9c0b7 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xee3a6928 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xfd67d53b dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x566e3c1d dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6181b221 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x87d1b77c dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x89b739e3 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xab8ae990 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb54f9ff1 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe7b645f4 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xfb5106e0 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x0919debc dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x0097014a dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x0fab8ca1 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x1539bf7e dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x4774c4e6 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6e28dba4 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xc3a47d30 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x3d80c4e8 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xbdfad67b dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1717dc41 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x21d7dd31 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x79395c76 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8da4dba9 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb8440c0d dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xdfec5ff3 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xfa573b3d dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xfd1ee081 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x06e0eb36 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x169feb03 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x17c318ef dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1b11cbe2 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2b0387bf dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x32c29b75 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x6581fb75 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8f077090 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9d331234 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xada2ed49 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdc19a9dc dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x2a546289 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x5eaaa402 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x6c6ccfb6 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xb1a81e70 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x55d8bb4f ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x4fb277d7 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xd4a74088 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xf69d0117 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x67f611cc isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x99c11dbc itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xafcaa4e8 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xbcbaf6e0 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xbfb6fbd8 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x6fee9499 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x758ce2ec lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xaca359b8 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xa23541a7 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xacfc4007 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x25e32d21 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xe1e24228 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x955a2fb2 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x81943bca or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x39b73ea2 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x387e178c s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xabf4bd25 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x13dda0b7 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x4def0dc8 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x427659b2 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x930831ec sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xa1805d86 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xccd3babb stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x2f7f93ba stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x5dd5e4fe stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xf853369e stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xd0e0276c stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xdc436188 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x2bef0a64 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x55c6d3ca stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xb8c93ba1 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x37376009 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xe2dd1b0a tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x4900cbb5 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x56085135 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x0164aaae tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x68758b12 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x891fd152 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x77b1e7a5 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x8ab27fbf tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x68ab4c55 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x85be8c6d tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x833c99ac tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x6ae7b427 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x689ffb53 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x2b307379 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x03e84135 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x7e241cd6 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x822b54c3 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xd014ec28 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xfbd3ede2 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x244425c8 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x5f218563 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xa1d33f17 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x02b56aa7 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x72e60194 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/cpia 0x3550321d cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cpia 0x5613241d cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x64558cae cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9e6c1186 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xdd82b336 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xe08e2649 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xf0f58fe4 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x007055f7 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x6c48dea5 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x769c9ced vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xfbd9dbec vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x4b3d6957 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x58fd5d85 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x7d3fb626 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x91091bce cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x9a0b883f cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xff2f2458 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x138c0193 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8a2442f4 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8a864618 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa0937c0b cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xd71f38ad cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf21d5d41 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x059e48da cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0f1a5099 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1244e85b cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x13aa2482 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x245378ad cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x527a9c38 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x54de15ed cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5c4b4246 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x70bb830d cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x775f4d03 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7b011dc0 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x890a4e6c cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8fcb4c3b cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9dd6b622 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa792292d cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa7d4f0a6 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa8287d24 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc57ecd9d cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdee4d58e cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe54eb023 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe787c606 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xec3c830b cx88_reset +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xb9dd05ec em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xf4ac69e0 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x09dec7c4 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x108404e2 gspca_get_i_frame +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x2a64b504 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x80a16e1e gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9afbbc19 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd6b74ba5 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xf9f76de1 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x1cb6e43d ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2d2ac651 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x52453c44 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6738cec3 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9dcaebbf ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xab2261ff ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbe67d435 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbf123523 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd3794602 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xeb5f3b31 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xef20f5c1 ivtv_api +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x10133b43 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x11c94a01 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3d6abf5d saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x61f43e9c saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x71ad6ed5 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8629c133 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x947ed0bf saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa299f142 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xca64be96 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xcf052f28 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xdc52feac saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe1285304 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/soc_camera 0x59fb39e7 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb6505598 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb7e58341 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xfbe66fcc soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x85f681a4 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0x950a2c59 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1943dc48 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x2a5bca03 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x61317ac9 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x8df12e1f usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xc13de816 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd89e709c usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x76d328dc v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x39a34c61 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb7687a33 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x4618a581 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xbfca4a21 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xd975003a v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xebdf6993 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x002e4087 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x2487ae8b videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x867012dc videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa4ba8f3a videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xcfe4468d videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xef9f6951 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x0f1aa7d4 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x5377db0d video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x623032a3 video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x7acaf2ef video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x9f8b2acd video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x9fe4842b video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xa894b410 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xcde5d631 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xce867296 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x0f04ff1a videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x15ef80ff videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xa7361cd2 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd8cc3561 videocodec_register +EXPORT_SYMBOL drivers/memstick/core/memstick 0x327f5992 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x37aa933f memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x51a0122c memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b5c17c8 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5c6ad993 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x737cfc7f memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x829230c9 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8c9b5da4 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa1b4b0c3 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb4957d51 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbeacc286 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc4f82173 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc97538da memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfdd46f2b memstick_register_driver +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x07a71155 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x09fb0631 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0ab3d71e mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x135ed9b2 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x20ca73d0 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2fcd3382 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x32196384 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3a74274d mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5c1338d7 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x60b737d7 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6b183087 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6b470bf9 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7246b419 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8794e1ef mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x89207cd5 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8a3da376 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9f4891bd mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa7aef771 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa7af075f mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb3bd5fe4 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0022def mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc36a2909 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdecb75de mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe258e2d6 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe5714b70 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe839938a mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf1fb0a6b mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf69066fa mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfd276426 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1658860f mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x220e965c mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x275c5889 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2e76925c mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x32dac92e mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x35766a93 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x38a774f0 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3e8d6bb7 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x430c0a06 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x51e19765 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x51eb39ae mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x524c8cdf mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7237399f mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x75b1014b mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x92a3fb3b mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9939e28b mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9b437748 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa204961b mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaa5eb369 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xac716dbd mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcc47e157 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd2ba424e mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd2ec0421 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe2baf82a mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe4cc0914 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xebb2bfa4 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x016eb0b9 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x090d88f3 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x11609f18 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x19bd793c i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x34732390 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3f6eddbe i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x537f9439 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7840ebbf i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x890e07c1 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbd55d9f9 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc964f070 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xca728699 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xeaa300e3 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xefee7d94 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf226b859 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf6333064 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfbc7bb11 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xff583654 i2o_device_claim +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0be25113 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xb6a0f34c pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x0580e3ec mc13783_lock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x0aba27ca mc13783_reg_write +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x13a9e8b3 mc13783_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3d83752e mc13783_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x63d3ac31 mc13783_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x7560043b mc13783_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x9eedace8 mc13783_irq_status +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xae0eb6aa mc13783_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd0070cc7 mc13783_irq_free +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd557b639 mc13783_reg_read +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe01dc920 mc13783_irq_request +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xfc9b3f03 mc13783_unlock +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x5805fe3e ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xdc0d4b5c ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0xb9e9cec6 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xf935aee8 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x421b1583 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xf40aa645 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x1e5b67df tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x25aca962 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x25cc72ea tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x26983577 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x35562f26 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x53f62718 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x57d8218f tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x57f15aaf tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x66b4904e tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x69b5791a tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xe963d039 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xebe5db00 tifm_map_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xdb06d023 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x671bb268 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x8345920b cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x8c6aa042 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x13b21683 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x9d3d231f map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xe4390b6b unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xe898e251 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x720350c3 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x46d2b9c3 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x223cd261 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0xb79814c8 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xbcdd8a59 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x509940f5 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xe8a085cb mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x95c5fddb nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc5e3c02f nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x29ca592a nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xa97616dd nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1dd8c75a flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x6f8fe338 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xac0a982d onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xfbfc6995 onenand_default_bbt +EXPORT_SYMBOL drivers/net/8390 0x2d156016 ei_close +EXPORT_SYMBOL drivers/net/8390 0x474216b4 ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0x4baad253 ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0x57c13749 ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0x633f82f8 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x7773f5c8 ei_open +EXPORT_SYMBOL drivers/net/8390 0x9e9e4867 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0xaedbffe8 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0xc31d7e3d __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xf463c34e NS8390_init +EXPORT_SYMBOL drivers/net/8390p 0x72e68641 eip_tx_timeout +EXPORT_SYMBOL drivers/net/8390p 0x784369c4 NS8390p_init +EXPORT_SYMBOL drivers/net/8390p 0x80be6f88 eip_poll +EXPORT_SYMBOL drivers/net/8390p 0x9be4a04c __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/8390p 0xa1151e14 eip_close +EXPORT_SYMBOL drivers/net/8390p 0xa4710496 eip_open +EXPORT_SYMBOL drivers/net/8390p 0xb663e226 eip_interrupt +EXPORT_SYMBOL drivers/net/8390p 0xc7fe3323 eip_netdev_ops +EXPORT_SYMBOL drivers/net/8390p 0xd512328f eip_start_xmit +EXPORT_SYMBOL drivers/net/8390p 0xe8b435b3 eip_set_multicast_list +EXPORT_SYMBOL drivers/net/8390p 0xf5d34848 eip_get_stats +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x14335c40 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x33a9e5be arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4c423efd arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x572f98bb arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x72001da0 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7387a66e arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x73dbb00a arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9785915e arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd7d1ccfd arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe6dabbe4 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x36d10bb1 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x8295cbf5 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xe8eb593d com20020_check +EXPORT_SYMBOL drivers/net/bnx2 0xbacc0238 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x1e2fde34 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0xa7e27947 cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1d29fd67 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1ed9509b cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x24c1def3 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x39b24e1e t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x71642369 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x83b7bfea t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x92708296 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x96b722e2 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xaa67bd3f t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb4d10d34 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb8192d8b t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbb2d147a cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc42e752e cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd194dc0b cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdd5d8c52 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf82dae43 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0720d9a8 cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x148e4ff5 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x256d6252 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2f03c573 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x4fbab4cb cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6241355a cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7949e41f cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x89c32db4 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x89ef7b63 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x90f9309c cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa3c3b109 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xbc51e51b cxgb4_netdev_by_hwid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdf2d2a39 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xfe33bb02 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x2db6ff3a hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7df0d7f7 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x96775d0a hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb4c8aa01 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xfb40e707 hdlcdrv_register +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1ec0e216 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x82f1d1f3 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8605e957 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x99dca8df sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9d9c35e0 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa0104df9 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xba757bbb irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbfb5eb79 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf1903ab1 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfcaf3898 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mii 0x058df6b3 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x0600166c mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x86a0f72f mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x90357deb mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xc62be198 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xe9dace7a mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xed9edf31 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xfa5ff0ec generic_mii_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x7276fdf2 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x80cf7a0b pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xb2774d72 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0xca6c5f5b mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x7a8e5ba9 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbee1d1ab tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc4d757d3 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xe3805c6c tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf8543c3d tms380tr_open +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x787a044f unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x792fbd1d detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8dc5d4a5 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x95acd1d9 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa16e561b hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xaa4d790b hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb85eef7f hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc0c0c082 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc962c62f unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd0789bf0 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe5f6c11e attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/z85230 0x01063447 z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x08d73611 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x12d058cc z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x3b4eb135 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x5fbb6078 z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0x752be2ab z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0x7716fd60 z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x970344e7 z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xace9b140 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xc8975381 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0xc927a5f5 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xe9df8746 z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xf41e291c z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0xfbbadeb8 z8530_channel_load +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x8984bf63 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x14c9b343 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x24f2588b stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x9f2f304b reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0239513b ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x165ce049 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x27849979 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xad52b6b6 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x435d4a3f ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x66e43c6b ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6c57a836 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb1fbbb12 ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xbc13a093 ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd8a53e3c ath9k_cmn_rx_skb_preprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe00b573f ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x010ca904 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04bcd9ad ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04f8eda5 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x068fb290 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a88bfe3 ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0bcdd618 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ed63f0b ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ef3597d ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f3f04b0 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0fa932db ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x104a11d4 ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10e2b879 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1200f5ac ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15b6afeb ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x16351c73 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17b8750d ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ff7d6de ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x234de15a ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2769a2e3 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28d78569 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29dfb311 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31d83f6e ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3357eb3d ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a1f3d7e ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ad0586a ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b1e2eaf ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c93849e ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5187a084 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51ad81ec ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x52f3eb3b ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54fdbeef ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x576fe3a3 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59a71abd ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c0d8e69 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61102e5f ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61e65f4d ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x628ee5e8 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b35684a ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cbe5b4e ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b0a0dcf ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8157c59c ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x81ef9014 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89b8cd16 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x909bf312 ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97c8e883 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a238bee ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bdc5791 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d590d4e ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e4562b1 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f54c5bb ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1e71c30 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa52c3977 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa648ba02 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa83be3d2 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa93ea0eb ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaad00a55 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xabf0780b ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad064c04 ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf6c4625 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe2394b9 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc60a1bed ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf235e0a ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfde592f ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2e13e71 ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd607b7f6 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd773e75a ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd795e114 ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb91b5d8 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbbf6d57 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc0004e8 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde904796 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf406cf8 ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe044dcc3 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe428fede ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6e86b86 ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7c3b461 ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef7eecf0 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0b276fa ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2c7d8b3 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfcbcc8e3 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff034063 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xffbe32d6 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/atmel 0x0c277eda atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x7e1097ff stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x86819695 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0c976003 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0d6bb8c5 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0e870d8e hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x15f7d5ea hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1e1696c2 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x28c72715 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3a328dd3 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3d617178 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3dc8bac9 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x47f98f9a hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x48c13168 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5ba2f81c hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8bb17afe hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8ff2e09a hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x942dd58f hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9b69dcd0 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9dc96ffa hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa1cb62ef hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa8c0e463 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xad9b5dce hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb11fc50b hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb921d38b hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc2df1bc6 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xccf2e3f1 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd54a619c hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0aa4bc03 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x18cc1ac6 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3a4dd533 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x457aa92a libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4dee7ea3 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4f89f93f libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5d8d6f09 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6ff037e2 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7d9f4262 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8942cb8a libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8ab27674 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x97e4d1c0 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9cd24fc7 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9ebe35f3 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa37d15f2 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc53712f1 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdd55e77a libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7182287 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfafdd251 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfca1a196 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfff78ec0 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x07c6fc17 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0857bfa2 iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x12e6fd9a iwl_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x12eecafb iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x158b6e35 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x167426b6 iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x170b71a9 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19674409 iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19b680c4 iwl_send_calib_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1b6611ac iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1c4e7496 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d68a9b0 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1da2d9d0 iwl_set_rxon_chain +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1e22fd20 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1fc3191c iwlcore_eeprom_enhanced_txpower +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x22272ea5 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x225c4735 iwl_eeprom_get_mac +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x22d65aca iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2521e10c iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x258f544d iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x28653db7 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2cbe0e44 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2e81583e iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2f475a99 iwl_good_plcp_health +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2f740a37 iwl_sta_modify_ps_wake +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3122b668 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31456bc1 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x324230df iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32f18efd iwl_sta_rx_agg_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x338c07ec iwl_tt_enter_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x34b821e8 iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3ae4d181 iwlcore_eeprom_release_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3bc2e48d iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4296893d iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x434d70fe iwl_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x447b511a iwl_sta_rx_agg_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x49332956 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x49d3fa42 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4cddac2c iwl_sta_modify_sleep_tx_count +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e26874a iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4efb2560 iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50f0b00b iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51066e8e iwl_tt_handler +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5370760a iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x544fcee2 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x55d3e0c0 iwl_dump_fh +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5b10011e iwl_calib_free_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x61009316 iwl_restore_default_wep_keys +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6387cf97 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6388d769 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63971be8 iwlcore_eeprom_acquire_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63babeb3 iwl_remove_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x65cfc651 iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x66e03964 iwlcore_rts_tx_cmd_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x67792c95 iwl_tt_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6811c28d iwl_reply_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x69080a6d iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x69d2a5c4 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6abf9220 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6d2fa0b6 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6d5971a7 iwl_sta_tx_modify_enable_tid +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71a0b89b iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71d4fd05 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7338a8e7 iwl_update_tkip_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x775e8b19 iwl_set_hw_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7862441b iwl_eeprom_check_version +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x795b38c0 iwl_set_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7a51794f iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8314c72a iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x83ddb4b4 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8630b3c0 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x869de837 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x87fc5148 iwl_add_bssid_station +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x891c5f23 iwl_mac_beacon_update +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8e626dc0 iwl_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8f40f5a6 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8fa5a313 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x928c268b iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x943ba520 iwl_setup_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9468ee5e iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9764932d iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x978885fe iwl_ht_enabled +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9e693100 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa4c109f7 iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa55ebc80 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xace9a930 iwl_hw_detect +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xad1e2aa9 iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb276404f iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb3eab48d iwl_rf_kill_ct_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb5237e9e iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6a08f3f iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6a70f3a iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb71ee9bb iwl_dump_csr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb910092a iwl_rx_missed_beacon_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb91994ca iwl_rx_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbf704249 iwl_toggle_tx_ant +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc219165a iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc2193970 iwl_init_sensitivity +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc3cf4530 iwl_remove_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc47099d1 iwl_sensitivity_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc5827c06 iwl_tx_ant_restriction +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc6304d77 iwl_free_tfds_in_queue +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc73dce49 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc79561df iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc8eb41e3 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcca12a88 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcddade65 iwl_tt_exit_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcddfd183 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xce7b4b23 iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd123c09f iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2504830 iwl_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd959b8d1 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdb637dfb iwlcore_eeprom_verify_signature +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdda84898 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdebdd8d2 iwl_set_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe1aaafb1 iwl_verify_ucode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8a1c705 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedb099e7 iwl_reset_run_time_calib +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedea2273 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf382f8b9 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf493d7ad iwl_tt_exit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf828b38d iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfd5d28c9 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfec7c354 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff85be52 iwl_chain_noise_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xffd00bc6 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0243f76a orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1cd7587c orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1ee9ae08 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1f671d12 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x44c59acc orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x63b60371 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6d1dbaa7 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7f3813d8 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa12603a4 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xacf8ccf4 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc1a3cbca orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xda263d5e orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdfd376a2 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe99cb08c __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xea853da8 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffd86b73 orinoco_if_add +EXPORT_SYMBOL drivers/parport/parport 0x039eb270 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x046fe119 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x0da0fcf5 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x1ccdf53c parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x241595a1 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x30175a0e parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x303e898b parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x37cfdae2 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x58a24934 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x5bcdd1db parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x5d3ecbdb parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x5fa8d124 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x8248dc87 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x83291560 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x8daa80ea parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xb05dd582 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xb75eb3a7 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xc0c0e4cd parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xc4302e59 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xcbdbbb67 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xd4caf485 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xdd75153d parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xebec7fce parport_read +EXPORT_SYMBOL drivers/parport/parport 0xec1f1e49 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xf06bad29 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xf0dae164 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xf1cbf485 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xf433ea92 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xfd03e0b9 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xfeb1538a parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport_pc 0x42b992e7 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xc1575317 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x18cec30b pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x202af988 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2bf800bd pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x459e58ab pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x46b65f1a pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4efb2165 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x64f97e4a pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x701ab4aa __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x759b067b pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8726a489 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8a780db3 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9a15547f pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xacc82a48 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc5440c59 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc6416cd6 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf0ec5e34 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf8a2f5de pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x09b6c751 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3833c011 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x57c1a601 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5a9217b6 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x62daa78a pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6ae02bb2 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x907a527c pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xabb21d8a pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb2f78634 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd1a8a2a4 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x244a88a4 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x8fa9b8e9 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x2b245e1c pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/scsi/53c700 0x0f7d39f8 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0x87c4acd4 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x70ffefc9 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7f80be68 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb1f01a19 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc7bd10ab fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd092d10b fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe10c136e fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe948704e fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03bea692 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x10478819 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x194cc4cb libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21779bd7 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x231faa91 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x31f64a46 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3697204e fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3bc1af29 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x42f43dce fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4abdd348 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4afcb07b fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fc4036b fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x542dc1dd fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x566ed4cb fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x56d100a0 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67040ab4 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6923f48d fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e1be19f fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f7a909b fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x70833622 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7499d04c fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7dcc279a fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x835c8a55 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x86d4a5e5 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a2996bf fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8aedea64 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e10d35e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b5547dd fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9dc9ecba fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa5263229 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xab86e42a fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xba12cc1a fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc873c96c fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb3bf547 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcbed1aae fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd688e3f9 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd92c4881 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe1659896 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe1d16271 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe96a32d9 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xebd5810e fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeca76c54 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x9458baac mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x07c71ce5 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0cacc760 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x13caa38d osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x294d925e osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x47868265 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x47dd892b osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4b896899 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5ae319e1 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5b7c6ddd osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5e063d80 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x77eaa16b osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x80e0f57f osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8e0334b3 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8edf7c1c osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9775109d osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa1ea3c5b osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa493f51f osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaa5f86ad osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb060911b osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb105d6c0 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb1d6a4f7 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb3c733bd osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcaf3d60d osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd870b731 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd927d4a5 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdb2120fb osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xde967765 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe1bc4b60 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe48c3ab8 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf379c26c osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf7d43fdc osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf7dfa564 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3e4d2e64 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x609f2006 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7ef2aaba osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc6669d8b osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe1adc0d6 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xed41ed63 osduld_device_same +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5089c8d9 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x56f480f3 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x691b7917 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x88cd752d qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa58dc7b2 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd7a584ef qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x64f1c91c raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x8d6ce42b raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xc0fd9c41 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x298c702e fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3b5dd519 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3e29e75c fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4802ed9e fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4b44559d fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4b530f1a fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4b6c5156 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x543b66ae fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9310ef4d fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xaebed30b fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc27bafc6 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe0a49f23 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe7fb020a fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x08464633 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0e42bff1 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x11e55994 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x13254f36 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x24be9304 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3384144b sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x376c78f3 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x384090ee sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3bb022f4 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3fc7cdd7 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4aa76236 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4eacf0dc sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x619c0db2 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x62d481f7 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6f09f8b6 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x881d4f19 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x95f1ef94 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa11b9f24 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa8792605 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xba6a46df sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc832d8a5 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd52d0b6e sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdb25f096 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xee340c7f sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeea12836 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf87ffe31 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x1300e156 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x176c4498 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x26c15f21 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x79397e79 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7d7b378c spi_display_xfer_agreement +EXPORT_SYMBOL drivers/ssb/ssb 0x0d434523 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x17e7c21c ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x21abf2a4 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x2459d754 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x25f162fa ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x282f1871 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x30a9cc09 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x4fe82feb ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x57b10cc8 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x5ed19b03 ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x60a12e68 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x6efbd2f6 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x7c946e98 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x88d872c8 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xa75e9fc2 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xb5e03f24 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc450bebe ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xc84555d2 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0xcfadf664 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd5073fd2 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xdf856649 ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0xe1ae81e2 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xf1eaf6b7 ssb_device_is_enabled +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x098ff2ff comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x178feac9 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x1c1d2c3e comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x1d9fe40a comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x509987c6 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x64774eb0 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x868f8ea3 comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x926cb2f8 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xaeb57c24 comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe10477a4 comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe9e3d3f7 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf23a5b37 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf652c71c comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xfc347811 comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xffa4f5e8 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x190d08c9 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x88d00389 subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x9b766bd7 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xe3708e51 subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x77d9c948 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x94607305 cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xeeb08352 cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x0f5d1efb mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x21098b02 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x36994554 mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3fc0ad16 mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x46e9c91e mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4aa2894d mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x50320f9b mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x594a318d mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7294fdcb mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x74c10c28 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x76332b74 mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x931ca118 mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x99caf06b mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa062d664 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xb955e978 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc7edc5ac mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd3884c22 mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdec28ad1 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xec62ed11 mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf5aa514e mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x03aaaf33 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x1f3c4cda subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x86591996 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xf3c2afa1 subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x337ac5f3 comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x20e20f02 comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x97c92c43 comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x99fea879 comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xbd7adda6 comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xcb58a4e6 comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xddaaccdd comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x020d8bd7 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x37224fc7 cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x7758f1a0 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x7a1f8e03 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x9ea01504 cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xe3e18381 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xee83adb6 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xefe3526f cx25821_dev_get +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x2548087a go7007_snd_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x3293ff4a go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x3365947b go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x39a6e88d go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x4db1c0ec go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x61d2ac94 go7007_read_addr +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x98137399 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xd231837a go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xefb14d68 go7007_snd_init +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x8bd9a6c4 vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xe82359fb vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x090cb554 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0a37f9d2 iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1c19777a iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1f3c25ba iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x28a432af iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x336a3829 iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x35fd4661 iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x413022ac iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x419ad06b iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x41a83f70 iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4e6d669f iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4fbf281c iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x532ca7d1 iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x697656a4 __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6e0e59ae iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x799c5481 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7bcd0724 iio_read_ring_bps +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7d5a4a9c iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x85f05247 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x893f725d iio_free_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8a39466f iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8ac41b92 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x95e9106d iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x964b2a44 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9c54f4a8 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9e40c834 iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa05585b8 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa1afc530 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa8eff304 iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb60bef1c iio_get_new_idr_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbca495b7 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbe7b3801 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc6bf497c iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcc870007 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdd707ed1 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe7a92eba iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xea58daad iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xeb39fe8e iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf05b3755 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf73d6e7a iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x399027e3 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x533af21c iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x535cb2a3 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x5e185fe7 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6ae9dcfa iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7000b0e4 iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x774d7099 iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x78b1a086 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7d2d9cee iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7ece8fa2 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x95e4cb9b iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xab0a9907 iio_set_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc73a1653 iio_get_bpd_sw_rb +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x79cca6a0 pod_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xa4acc78f pod_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xd6616af4 variax_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0xf915a0d2 variax_create_files +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x3cb44311 rar_release +EXPORT_SYMBOL drivers/staging/memrar/memrar 0xaf94751b rar_handle_to_bus +EXPORT_SYMBOL drivers/staging/memrar/memrar 0xc7723e22 rar_reserve +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x6cce72cd rar_get_address +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x04251d89 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0528d886 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x080e6765 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1484afad ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x19c42666 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x24ee57c2 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27aa052d ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a6d1123 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2bbd7d32 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x38914a15 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cd4da60 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x40590a3f ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x448c81f3 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x47076b24 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b988be5 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5082c254 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x52ecb380 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5bd911ed ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5bdcf5fe ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f396ee3 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x67671ee4 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6e6aeb07 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7497dfc5 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7864d854 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7b35ac64 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7c09b8cd ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7c8dbe88 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d4a4e37 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8729c8e7 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9687b130 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x97049633 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a65269c ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9b6c3be8 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c60fc92 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f6ddd6b ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa4e8c6f1 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa59f091c ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7c0917d ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc2e85508 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc438741d ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd106c201 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd47a9fc1 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd7ec9651 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd8d02090 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd9dde59f ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdcc3ee2f ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0f7c1fc ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe54b2298 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe55d2658 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe708a233 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf3a10fae ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf59f9b30 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf796e279 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfbda8096 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x2dd7d702 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xd3971a61 tm6000_register_extension +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x0389ec9f vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x1f01f834 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x210e3e3e vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x251b9ed8 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x2d5ea038 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x2f18d1e0 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x39462970 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x3d1af350 vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x3ea9fc60 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x46337f91 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x489887cf vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x66227eae vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x76ca34fd vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x8381cc7c vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x84cfbf7c vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x8f8a1e8f vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x93dff61f vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x94b2590f vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0xc1654fcc vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xd7cc0aae vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xddf15111 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0xde1fe5bb vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf94ede78 vme_slave_request +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 0x25176b3a ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0xb8c5435c phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xb9c29d14 phone_unregister_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x0512130e usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x0c01db2e usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x9802fd81 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x2e241a79 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1357bf30 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x18b7887a usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x272e383d usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2a5286b6 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x351941d6 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x539d9dbb usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5e166b8b usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6a30a5ed usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x73125621 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8011980e usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb65a802b usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd3dcf819 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe46aa7c5 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe49d06b9 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x1b7b1c2b usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x318fa34d usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x2f1fdec4 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x835e89c5 lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x2bb5a346 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x9d05240c cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x9e41f47d cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd7cc2242 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/display/display 0x8e3bb61b display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x9417630e display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x29e21c20 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x8f87aa18 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xf3c39c54 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xfee6f215 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x12ded00f matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x4606e10c DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xb7435439 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xd252400f matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x5297f284 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x00bbe15e matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x1cee8cbc matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x4316667f matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x998b3692 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd64a5826 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x2e559012 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xf79e0450 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x1ee7bafc matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x95c18336 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa253d24e matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa46590f4 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xc1262d31 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x92ba50ab mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x2e137fa6 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x5e6d018b video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x6e4a2884 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8e4ff37e svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xb18539db svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xd62fb943 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe0b01118 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf8fd677f svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xfc404872 svga_tilecopy +EXPORT_SYMBOL drivers/video/syscopyarea 0xbaa0c970 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x27645a36 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x2eeb75a1 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x5418424a w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x5bf40d19 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x1a46d6e9 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x9f9ea442 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa1ab9998 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa3e9440d w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/wire 0x83f786bf w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xce2fc7b3 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xdfb5c323 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xf91eb23e w1_register_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x28ca06ab config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x34b6a2bf config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x3a2afb35 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x70ef506a config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x880726c7 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xaab03f31 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xb7e82412 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xb85e3a58 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xc9715a1b configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xdeb325a1 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xeacafe12 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xf1249769 config_item_get +EXPORT_SYMBOL fs/fscache/fscache 0x047ece83 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x05f631ab __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0d4ec2cf fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0x179cc5d5 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x1ed4f94c fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x1f09dea4 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x24dfbadb fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x2f2a5204 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x3e74525a __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x52a1e0f4 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x85651d32 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x89c2d2ac fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xa109ca5f fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xa9521190 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb00ab0d0 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xbb581b90 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xc359e245 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xc39c89a4 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xc4e369ac fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xc9c39645 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xcbeb08b9 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xd6ab90f3 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xd9539463 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xe63da06a fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xeaa46d00 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xee2f36f5 fscache_object_lookup_negative +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/quota/quota_tree 0x644190a3 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa5bce045 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xc11b349a qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xca267cd0 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xccdab3b6 qtree_release_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x040ffc0d lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x104f3bdf lc_changed +EXPORT_SYMBOL lib/lru_cache 0x29bb959a lc_del +EXPORT_SYMBOL lib/lru_cache 0x2b0aa60d lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x3b87d807 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x4eea74fd lc_find +EXPORT_SYMBOL lib/lru_cache 0x551bce80 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x730acd27 lc_put +EXPORT_SYMBOL lib/lru_cache 0x7f4d7913 lc_get +EXPORT_SYMBOL lib/lru_cache 0xa38de7c1 lc_set +EXPORT_SYMBOL lib/lru_cache 0xa9755912 lc_create +EXPORT_SYMBOL lib/lru_cache 0xb475bf06 lc_reset +EXPORT_SYMBOL lib/lru_cache 0xbc888be1 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xf21a0fb2 lc_element_by_index +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x5a2106b9 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x6d30645a make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x048d3104 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x058f5e23 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x0ac6de1d p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x127714d2 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x1c8caeec p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x31c7b0cd p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3e5d6a6b p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x41fd95d3 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x42cc2db6 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x58635b2d p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x58c8be4f p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x5fb4ce62 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x7be729ac p9_client_version +EXPORT_SYMBOL net/9p/9pnet 0x86e4714c p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x91bd79a3 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x9613fbcf p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9cec3a7b p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xa6043ae4 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xab7187d7 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xb6300aaa p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xbeb56b27 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xc18478d3 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xcf37ce63 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xd43c7319 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xd6edacee p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xdab77c64 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xe0f3c55b p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xe19978b9 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe67feb84 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xf333f705 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xf3615b86 p9_idpool_destroy +EXPORT_SYMBOL net/appletalk/appletalk 0x14e20c26 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x53297080 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x7c75d17a atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xb3bcd2d2 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4379f212 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x52a31881 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x5a46dd15 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x5b9ec548 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x91dd52bf atm_charge +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa836f35a deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xaf3a6991 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xb398955c vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xc8409508 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xcf394731 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xeaedf787 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x04df0032 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2668a32b ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x371cdf59 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x3f6e7545 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x48f55944 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xaac3547e ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xaf30b0f9 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd5391a91 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xe2a46fab ax25_find_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x174548d9 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x18ff1356 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x190be162 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x199f67f7 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1a3b51a8 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x20f85dc5 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x21548d10 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x23dc14b6 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x36992735 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3eed665a hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x41ed6771 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x435fd2bc hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4bfee602 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x52e2ebcf bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x730a179b hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7531dc24 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x79ae368e hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x801b5bc7 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x87e4971c hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x90f8e425 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91381aaa bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9ce465c3 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa66fe75c bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa70eefd5 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa99b3bc7 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaeb96aff hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0a5e3f6 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc11f851d hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc5358bb7 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc7d41cc4 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcaec4313 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe15c1ffb bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x9d122375 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x2488e88c ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa352e640 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xfd2daadf ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x012afd72 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0c16dbe1 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x0e5e0b43 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x16b7e81c cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x19d361d8 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x3d9a48a9 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x3ef408d3 cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4db43ccc cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x54611096 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x5c6f88d5 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x5fe59db0 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x672e51a7 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x6c8f53b9 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x8164af4a cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x84c5269c cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x8920c883 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x89aa8092 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x8d560ce2 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x9ba68a52 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0xa3db36d2 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0xa426a5fc cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xa930cb0d cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0xacd8c821 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xc3488902 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xcb9f6dba cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0xd5aa038b cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0xdecf836a cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xe88293a5 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0xec6b4a6e cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xff6e3cf7 cfpkt_peek_head +EXPORT_SYMBOL net/can/can 0x58d88859 can_proto_unregister +EXPORT_SYMBOL net/can/can 0xa22fd1cf can_rx_register +EXPORT_SYMBOL net/can/can 0xa62fe5ec can_send +EXPORT_SYMBOL net/can/can 0xc7316961 can_proto_register +EXPORT_SYMBOL net/can/can 0xced4df39 can_rx_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x305b40af wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x30a80303 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x520aec92 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x59840aa7 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5e8b2577 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7fe6a685 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8a987676 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd585c90b ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd587b31a wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe43a340e wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xeac14b29 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf0fe9e47 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xfc98899f ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x345d7eb7 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x487d3cad arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xee42e17f arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x13a9280e ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x31543e0b ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xc515b20d ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x229b0406 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2d366318 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6fbf3252 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa6025d9d nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd3f961b6 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xdd4a16a3 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf64b8fbb __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x747f4812 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xc31ddb7c xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x27076a5d ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x33b4e8c9 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcde3b3b3 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xdf088515 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x0ec096c5 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x1e78b727 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x1251cf44 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x16d9ada5 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x90796e27 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x14250421 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2da7d5c8 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2e70f1e0 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5f17d2c1 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa2ba7f79 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb9e12c18 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe8cbde8d ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xee3d8a82 ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x01286ae2 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x1e228db3 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x2676f473 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x3072f8f4 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x494a20df irlap_close +EXPORT_SYMBOL net/irda/irda 0x4b8e03be irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x4df07e84 iriap_open +EXPORT_SYMBOL net/irda/irda 0x62815040 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x62e35c97 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x65648bd7 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x670c13bf irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6de3ede8 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x843eee3c async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x8a6953b9 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xa3ad549b irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xac68cdb7 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xb344a8cc async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xb4fa73b0 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xd578a3ba irlap_open +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xdda127b6 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe14b7576 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xe6b1efd3 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xe9c81b89 iriap_close +EXPORT_SYMBOL net/irda/irda 0xea3b0ddf irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xfd835616 proc_irda +EXPORT_SYMBOL net/irda/irda 0xfde4278e irlmp_disconnect_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0x0df03962 l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0xc0a89926 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x0331d084 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x1f4fd70e lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x2aa13ef4 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x6c226ed0 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x74f0ae71 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x878112d7 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x8ded9752 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xd3cd4c03 lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x00c0da09 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x04946db6 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x0a13c22d ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x14e58cce ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x1b094bc1 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x243abdf5 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x2996eb45 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3132f658 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x50f699d7 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x5128715b ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x60629b2c ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x6f9f49ad __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x6fa9074b ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x707e2259 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x925404e6 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x93aeddbd __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x96908af0 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x98457c5f ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x9b15a9d8 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xb1a5f733 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc012e39b ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xc068cd02 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc47a0138 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc83afb06 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xcb178c08 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xcfb6d7c1 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xd7c0a403 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd8ee97ef ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xd9d4b7a1 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xdd1539bd ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xe58d6c8e ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xee272ed2 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xeffed1df ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xf36a4bf6 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xf40a9fc4 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xf5698713 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xfbfcb77f ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x008e2006 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0a7cf8a4 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2057f966 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4798c939 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x77fed04a ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8e57a664 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x98c744ef register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcc900c7c unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd850a2df ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xebf16f9e unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf7477f22 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x366936b7 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xe71d20a1 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xea397a68 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x2a7f2c73 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x2bbc2435 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x31d17e03 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x3cbb7a89 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x50b992c2 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6366ce3b xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x9ca4263d xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x9e0615cf xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xcbff71e4 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xfa43c2b9 xt_find_target +EXPORT_SYMBOL net/phonet/phonet 0x2ac35f0f pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x4edd75f9 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x57314d54 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x6292a619 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x6335d290 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x7b26c53c pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x7dc21003 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xbaea1046 pn_sock_unhash +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x04f69a25 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0a2fc41e rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0b4ddd64 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2abb7e91 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2f2671f0 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4d429451 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x866102c8 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8db59a16 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x95790310 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc62d5172 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd0138c78 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xda3d0057 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdb068600 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf70f9c7d rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xff9982e1 key_type_rxrpc +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5620ebb6 svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x01cb0d79 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x2767b98b tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3b471dd3 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x760eeb29 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x83ef0598 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x8767bda1 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x8d35b07e tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x943647b7 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xcd1013be tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xd184002e tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xf2e70596 tipc_send_buf2name +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x2c64f9a5 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x0d9a4ab6 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xb3837057 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x0495899c cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0e9a50b4 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x28c4bc2a __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x2a3aa081 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x30c6f4be cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x35dcc708 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x389da55a freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x3cb8f7b0 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x3e694c6d cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x562ddfad cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x58a8dfe2 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x5aac33ab regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x62e9be53 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6a9e41d3 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x754679b8 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x788d9aad cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x7abe710b wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8001af82 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x8145f3be cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x8f9732bd cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x94ac4445 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x94ce5a6c cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9883e83f cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x995848c9 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xa4d708d4 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xa615c6ca ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xaac4a45a cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xab065844 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xaba8e894 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xba0f5993 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xc574fb65 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xcaf57182 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xcd97179a wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xce237bf3 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xd9b7447d cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0xdd2628b8 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xe315be3a cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xe3ab2844 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xeee3f571 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xf794b474 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xf9210bbb wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0xfd28eb43 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/lib80211 0x0cfa2006 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0x0ed4884c lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x22a6303f lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x3a4c3b69 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x58878962 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x8ad4da3f lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xca5afe80 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe846787e lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x1c4aba25 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x153ed290 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x4019e634 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x61d4f482 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xf72a7976 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x5644103e snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x5ccb5b78 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xa45bafe2 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x09325e6f snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x0d978cfc snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x0dcaf3ce snd_cards +EXPORT_SYMBOL sound/core/snd 0x12e33806 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x136f3e72 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x19d16bb6 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x1a92ba2e snd_info_register +EXPORT_SYMBOL sound/core/snd 0x1b2c483e _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x1f011b0b snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x376dee8c snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3e7017c6 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x3f389129 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x54779103 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x550a752b snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x63ff2e9f snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x66243533 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x6a72cd6e snd_device_new +EXPORT_SYMBOL sound/core/snd 0x6e210344 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x778d8c5b snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x87ba3dfd snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x8dfce514 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x8e7f3c84 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x91e6d1d1 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x94d7c3b8 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x9e3703f7 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0626990 snd_component_add +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa2a864e4 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb737aa42 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0xbc3925bd snd_card_register +EXPORT_SYMBOL sound/core/snd 0xbf24d3b1 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xc45073d1 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xc64ca88e snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xc6aaf2a5 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xc98ad2ec snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xd45ebc0d snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xd7384a0a snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe49c2330 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xe5153b22 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xe6ea8a1e snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xe86d5440 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xec456c20 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xeff126a3 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xfde46beb snd_card_file_add +EXPORT_SYMBOL sound/core/snd-hwdep 0x95bb96cf snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x7300b431 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x75ec3571 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x7b885f99 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf8996dd0 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xfe8bf834 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-pcm 0x018c1ec7 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0b6ed56f snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL sound/core/snd-pcm 0x0bf346cf snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0f35e7ba snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x16fa1d0e snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x1b9d4cef snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1e8fa893 snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x24cb9c03 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x276162a9 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x306a276c snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x38b8892e _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x41e6edf3 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x4575c92b snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x46e6148e snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52cac3d7 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x57aee25e snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x5973c0f3 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x68d43aef snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x69608de8 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x733279ba snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x7514f06a snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x79f413b3 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x88959d71 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x90bafb20 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x938fc303 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x9a25206d snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xa4502ae5 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa669b08d snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xb0d2442f snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xb6ee66f5 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xb99cfede snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xbb71069a snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0xbe52eb8e snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xc0360cf0 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xc9cd1cf7 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xcaec9140 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xcf8c84bc snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd5129843 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xebb3db9d snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xedde32f4 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0xee3b0afb snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xfb04e45f snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xfe2ebadd snd_pcm_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1607c96b snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2aa894ca snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x31cc3ec2 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x36cdae26 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3b607f63 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5dc21dc0 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8462d6e4 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x850b7aa7 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xabf97dfd snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xac10dfaf snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xba84aa57 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbf43d79a snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc8a07c2a snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd792ccdb snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xda169ad2 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe3fd63e7 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf179f292 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-timer 0x0dfa8a69 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x10eced01 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x2d6731fc snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x41d79cb6 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x495d2674 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x56a6a10d snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x71b190fa snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x796fada4 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x9a8fd7b3 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xad030393 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xc62d2ebc snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xcb1f8c60 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xd3b04ac2 snd_timer_pause +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x9e6df830 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0e9a6d02 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x254c881e snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5bcb9e95 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7353ba6a snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xacf7a705 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcc6d0521 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd6556e7e snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe7d5c002 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xed123366 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x1a44abc0 snd_opl4_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x210049dc snd_opl4_write +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x8379bb97 snd_opl4_read +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xb406267b snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xff2d2ca0 snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1e957749 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3678f9cf snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x52b34b43 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5f660009 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6f8d8c3b snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7023a039 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7806c61f snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xbc02bd20 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdc18b54c snd_vx_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1a6bb79c snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb8576cf2 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xba27d2a4 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd05aae7f snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd1a78c2e snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf1089d5d snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x16d78bcf snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x3c350f18 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5a3590b4 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5d6c314c snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa50b0550 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xb36a2a58 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x1f7dec8a snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x4f1d0c7c snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xbdd84746 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xee124341 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xd4d5da09 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xe7c6b003 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x176a7f7a snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x851965dc snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x59d54aa8 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8d7b0ecc snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb3257103 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb8ac571e snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xe8931397 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x0c1a8947 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x3302a89a snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x50c4df13 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x52c884c4 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xaf95c0bb snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xfb520f37 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0x9c9d476f snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xf08b14d1 snd_tea6330t_detect +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x048f2c50 snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x2d15d5a5 snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x6f7d815e snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x7dceb0f2 snd_es1688_create +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xcd1dd4f5 snd_es1688_pcm +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x014ecd2f snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x056531ce snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x07fb9aff snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0d274741 snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0f7b9e70 snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x3796bf76 snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x3cfe686c snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x3e7b78e3 snd_gf1_poke +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4b410ba3 snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x50584f87 snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x567340e8 snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5bd0135e snd_gus_dram_read +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x69792680 snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x69e5205a snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x71bb5d86 snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x733cdbda snd_gf1_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x896ce4c5 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8ab75c32 snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8c2dca85 snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x99dd9a5a snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa892731d snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa9ebfdf5 snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb5113e7d snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb7b8afc8 snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb8edeb5a snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc0bd5155 snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc5eafa07 snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xdeb8a752 snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe4189058 snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf52ea0b1 snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfbef7bec snd_gus_initialize +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0922e01d snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x1cea6e27 snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x1f3997da snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x3833caf8 snd_msndmix_new +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x45d27a61 snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x62e4a1c5 snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x85519f63 snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xb0184f7c snd_msndmix_setup +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xb3a969e4 snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xcc65586e snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xd9413180 snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xda8f54db snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x03c533dd snd_aci_get_aci +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xd36eb41e snd_aci_cmd +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x08317d11 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0f1a98f9 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x299c638b snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x344f800d snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3be59916 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7cd25a1b snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x819b1cc7 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x866b8271 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xdb234510 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf707e1ab snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0xcaf06c34 snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x975c794d snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xb2b0f3b0 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc67542fb snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x12fe97db snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x64049a42 snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x886b12c2 snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x9b16333b snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x0f9e7f73 snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x0fd3b98a snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x1e7d92de snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x1eff240c snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x3adadcce snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x443c02a5 snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x4b38dcad snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x4f7de18c snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x6c750b4f snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x743fd579 snd_emu8000_peek +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x7cc998ae snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x0858dfb6 snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x14c79d33 snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x189e59f0 snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x3e8a739b snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x4b329ffa snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x4dbc1378 snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x52429cdc snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x6331c9d5 snd_wss_mce_up +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x668d7813 snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x6e40ac90 snd_cs4236_ext_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7604c664 snd_wss_timer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xa4e0f13f snd_wss_info_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc8321362 snd_wss_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc893eef2 snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc9bf5483 snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xcdc46099 snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd0dca084 snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd979d2c5 snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xee5023e5 snd_wss_interrupt +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf3b10042 snd_wss_overrange +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0f79ab55 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2092f3fb snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2e7fced6 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x30656c23 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5bb197d9 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5c17d0d2 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x65c5921a snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6a702edd snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb4b4cf91 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc27881d8 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xccd51ba6 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd17e0d9e snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd94933ad snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdbb0df93 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdbe3c0dc snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdcaed8b5 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdcb0a636 snd_ac97_update +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x73846594 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2bad3338 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2f2d106e snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x655422c2 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9833987f snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc54f7ec5 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xdc7059ba snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe8fc349c snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf2d365b5 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf72e7504 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x9d4fdade snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x0c1322b2 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x5b4d8f6e snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x83e061d3 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0170e432 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x01e27990 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0a2fbe88 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x16f9ddaa oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x20f47874 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2683ecc6 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x370ea78b oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5094d3d8 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5257a540 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5a30d795 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6373bad0 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6427a628 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6f28b6d9 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x71091cfa oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8a3ffc8c oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x96887f1b oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xae83ad3a oxygen_default_i2s_mclk +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb773c80b oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcae4f1ea oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xda889cb0 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe6c688fa oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf1e429c7 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x18ba2794 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x22ee7647 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x341b5f36 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7a4647e0 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7cac7ebf snd_trident_stop_voice +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x72a0708a uda134x_dai +EXPORT_SYMBOL sound/soundcore 0x8605b93b sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x261265a8 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x37c7eb7a snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x928a7930 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xba30bcb1 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xbec66848 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xebf9449a snd_emux_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0547c963 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x11b0df8a snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1872ca00 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2b50f7e3 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x800c6f8f snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb2ec2f9c __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xdbc91705 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf9df74d7 snd_util_memhdr_free +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x7db0b715 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x0e236ec4 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x47bea14b dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x505519df dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x73a85e49 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x8d4e9f7e dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xe42bb047 dm_mem_cache_client_create +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00209a75 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x006b9145 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x007c428c tty_mutex +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00a52427 sock_no_listen +EXPORT_SYMBOL vmlinux 0x00ab7514 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x00ae1457 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x00aee6c8 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x00b43382 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00c1a17b bio_unmap_user +EXPORT_SYMBOL vmlinux 0x00c72ba5 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f23642 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x01000045 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x012ccfe5 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x0147ba1a __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x015840aa dst_discard +EXPORT_SYMBOL vmlinux 0x0178b3f5 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x019efcec jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x01a1cce9 scsi_host_put +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a9a62b scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01c6c1ef cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x02017da0 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x0211c4a3 bio_map_kern +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x022a85b5 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x022b317b generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x023f0cfa tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x025c3aea mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0264dbfc elv_abort_queue +EXPORT_SYMBOL vmlinux 0x0267a7c2 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x0285ed7d mutex_trylock +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02b96cbe dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e991e5 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02f9386d devm_iounmap +EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key +EXPORT_SYMBOL vmlinux 0x03169f25 sk_free +EXPORT_SYMBOL vmlinux 0x0318bca1 md_register_thread +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x034459ab pci_request_regions +EXPORT_SYMBOL vmlinux 0x03666f6f wireless_send_event +EXPORT_SYMBOL vmlinux 0x0375cd9d ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03d7c6a6 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x040c277d elv_rb_del +EXPORT_SYMBOL vmlinux 0x040e2ac6 wake_up_process +EXPORT_SYMBOL vmlinux 0x0419674c pnp_get_resource +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x048758a1 scsi_init_io +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04b776c0 dquot_destroy +EXPORT_SYMBOL vmlinux 0x04c60203 elevator_exit +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04db57d7 sock_create_kern +EXPORT_SYMBOL vmlinux 0x050afa8a __rta_fill +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0549164e mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05ae1fc5 ip_fragment +EXPORT_SYMBOL vmlinux 0x05bbef50 page_readlink +EXPORT_SYMBOL vmlinux 0x05da026b ip6_route_output +EXPORT_SYMBOL vmlinux 0x05e28d83 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x0606c47e sock_wmalloc +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x06335601 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x0664c32b tcp_prot +EXPORT_SYMBOL vmlinux 0x06731f50 journal_init_dev +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06970be1 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x06a45047 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0713e23b pci_scan_slot +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x072eed60 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x073876bc pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new +EXPORT_SYMBOL vmlinux 0x0794a180 invalidate_partition +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a394e0 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b67a3e padata_do_serial +EXPORT_SYMBOL vmlinux 0x07c9f044 get_fs_type +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07f50189 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x0809bf25 dev_add_pack +EXPORT_SYMBOL vmlinux 0x080bdf79 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x080cce23 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x08105458 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x081b04d0 deactivate_super +EXPORT_SYMBOL vmlinux 0x08200b74 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x08210165 set_create_files_as +EXPORT_SYMBOL vmlinux 0x0827da5c open_by_devnum +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0831ac9a start_tty +EXPORT_SYMBOL vmlinux 0x0838bc9d arp_find +EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x0849794b pnp_device_attach +EXPORT_SYMBOL vmlinux 0x087b20d3 padata_free +EXPORT_SYMBOL vmlinux 0x08997d59 bh_submit_read +EXPORT_SYMBOL vmlinux 0x08a27b91 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x08b6b39a keyring_search +EXPORT_SYMBOL vmlinux 0x08c0a487 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x08c87ca0 simple_link +EXPORT_SYMBOL vmlinux 0x08d0302f block_sync_page +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08daff30 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x08e59888 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x08fd36fd cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x0918e2b3 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x091f8e15 generic_file_open +EXPORT_SYMBOL vmlinux 0x092a611c init_task +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x095bf93a __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x095ca518 dput +EXPORT_SYMBOL vmlinux 0x096dd5df abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x0988162f dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a3a169 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09f20dda idr_init +EXPORT_SYMBOL vmlinux 0x0a1e5678 dst_alloc +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a839d2e llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x0aa7d3d3 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x0abe71fb netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x0ac08231 ps2_drain +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b369e77 set_disk_ro +EXPORT_SYMBOL vmlinux 0x0b36d38f netif_device_detach +EXPORT_SYMBOL vmlinux 0x0b4e6a9e dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b854b66 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0bd9b6fe dma_ops +EXPORT_SYMBOL vmlinux 0x0be3d198 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x0bf77444 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x0c12ff8b mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x0c1f4264 generic_read_dir +EXPORT_SYMBOL vmlinux 0x0c4969c5 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x0c60a161 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x0c65dabe dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c90bcea complete_request_key +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca51dfe scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb735d8 bd_release +EXPORT_SYMBOL vmlinux 0x0cb9d8a0 file_remove_suid +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0d006b36 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x0d07acfc skb_pull +EXPORT_SYMBOL vmlinux 0x0d25f807 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x0d26433e sockfd_lookup +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d3f5e2d xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x0d3fffa8 poll_initwait +EXPORT_SYMBOL vmlinux 0x0d487974 sget +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5803eb mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x0d64e392 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x0d689d1c add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x0d693b58 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0daf31f0 skb_set_dev +EXPORT_SYMBOL vmlinux 0x0db5d2bd netif_carrier_off +EXPORT_SYMBOL vmlinux 0x0dce1334 napi_get_frags +EXPORT_SYMBOL vmlinux 0x0dcf2509 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x0de8d85e eisa_driver_register +EXPORT_SYMBOL vmlinux 0x0e040849 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x0e0a63f7 kill_block_super +EXPORT_SYMBOL vmlinux 0x0e0be0fb iunique +EXPORT_SYMBOL vmlinux 0x0e12ae37 follow_up +EXPORT_SYMBOL vmlinux 0x0e14a94b ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x0e16f620 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e1a26ec dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x0e2db1e1 dev_uc_init +EXPORT_SYMBOL vmlinux 0x0e35e8e0 block_write_end +EXPORT_SYMBOL vmlinux 0x0e3cd38e pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x0e4ecb31 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e6c74b0 ip6_xmit +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e8f458f rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x0e9c5858 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x0ea94232 do_munmap +EXPORT_SYMBOL vmlinux 0x0ebd2190 cdrom_release +EXPORT_SYMBOL vmlinux 0x0ed6f99f __f_setown +EXPORT_SYMBOL vmlinux 0x0ed86b21 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x0eeee2c3 thaw_process +EXPORT_SYMBOL vmlinux 0x0ef78f47 dev_change_flags +EXPORT_SYMBOL vmlinux 0x0f1debd7 vfs_create +EXPORT_SYMBOL vmlinux 0x0f466e07 rt6_lookup +EXPORT_SYMBOL vmlinux 0x0f5f253c vfs_follow_link +EXPORT_SYMBOL vmlinux 0x0f7cadd1 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x104eb9eb tty_port_open +EXPORT_SYMBOL vmlinux 0x1069d2e2 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x108d0d6d invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x1096c948 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x10c35008 find_inode_number +EXPORT_SYMBOL vmlinux 0x10c8156d tty_write_room +EXPORT_SYMBOL vmlinux 0x10c85704 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x10d80764 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10dea50c jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10fc7eca generic_ro_fops +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11213643 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x11250655 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1156a5ae dm_register_target +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11704741 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11821260 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a6ef88 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x11aa6c61 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x11b9f04f vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x11df3fc5 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x11f01d17 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120a64a3 unregister_netdev +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x12617931 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x1288cd7c skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x129e1b98 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x12b4f444 generic_make_request +EXPORT_SYMBOL vmlinux 0x12c59400 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13358682 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x1344fcb2 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x13482fdb con_copy_unimap +EXPORT_SYMBOL vmlinux 0x137359ee dquot_free_inode +EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support +EXPORT_SYMBOL vmlinux 0x138e9da0 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x13ae023c pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13b6c1c1 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x13c777eb prepare_creds +EXPORT_SYMBOL vmlinux 0x13d4ba82 dquot_acquire +EXPORT_SYMBOL vmlinux 0x13e7d276 dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f5dd4a thaw_bdev +EXPORT_SYMBOL vmlinux 0x13f7d4ef blk_complete_request +EXPORT_SYMBOL vmlinux 0x14255ff5 security_path_symlink +EXPORT_SYMBOL vmlinux 0x14284b1a get_sb_nodev +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x1444a07e lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x14482ec6 thaw_super +EXPORT_SYMBOL vmlinux 0x14a36ee0 set_blocksize +EXPORT_SYMBOL vmlinux 0x14b9dd34 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x14ccf7a3 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x1535ae14 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1585bdbf __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x158faa3b inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x1590f428 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x15b77770 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x15d40ffa dm_snap_origin +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15db4ce4 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x15e02de2 bio_alloc +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16181af8 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x163660ce load_nls +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x165aaceb tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x16d700c3 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x16dd3d63 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x16f594e1 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x173d1a66 generic_setlease +EXPORT_SYMBOL vmlinux 0x173fa5b8 do_sync_write +EXPORT_SYMBOL vmlinux 0x17900c76 unregister_key_type +EXPORT_SYMBOL vmlinux 0x17abd1b8 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x17bd5b67 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x17bf91c3 skb_trim +EXPORT_SYMBOL vmlinux 0x17d14606 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e9f2f5 vc_cons +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17f8d9a7 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x17f9743d dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x1859bacc genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x18698044 simple_readpage +EXPORT_SYMBOL vmlinux 0x18719250 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x1898c7cd sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x18b64c4a dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x191100dd nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x1915c2e1 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x19293267 genl_register_ops +EXPORT_SYMBOL vmlinux 0x1947e3cf kmem_cache_create +EXPORT_SYMBOL vmlinux 0x198bae1f blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x19f5af4c kthread_create +EXPORT_SYMBOL vmlinux 0x1a0dbe45 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x1a1fabf0 serio_reconnect +EXPORT_SYMBOL vmlinux 0x1a2efd9d register_snap_client +EXPORT_SYMBOL vmlinux 0x1a43e8a3 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a4a4b46 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1a928e27 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x1a9670ed mmc_add_host +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1adc7af8 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x1aec0947 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get +EXPORT_SYMBOL vmlinux 0x1b13fb24 page_symlink +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb0026a dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x1bb2bacd mdiobus_free +EXPORT_SYMBOL vmlinux 0x1bd7c22d dquot_scan_active +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c220db9 pci_select_bars +EXPORT_SYMBOL vmlinux 0x1c25eaed dev_uc_flush +EXPORT_SYMBOL vmlinux 0x1c60bc54 free_buffer_head +EXPORT_SYMBOL vmlinux 0x1c651902 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c8f1212 processors +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1d1aa8c8 set_anon_super +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d30b7dc vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x1d33ff5d max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x1d9b391b scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x1db299eb softnet_data +EXPORT_SYMBOL vmlinux 0x1dc0943a acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1df1fff8 mpage_writepages +EXPORT_SYMBOL vmlinux 0x1df260ff clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e044880 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x1e51f636 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x1e6d0f65 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e9a5780 get_phy_device +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ebb3f65 should_remove_suid +EXPORT_SYMBOL vmlinux 0x1ec269be vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x1ef2aad8 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f34740e bdget +EXPORT_SYMBOL vmlinux 0x1f4c0cc3 register_quota_format +EXPORT_SYMBOL vmlinux 0x1f6b2b14 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x1f6d26d0 security_path_unlink +EXPORT_SYMBOL vmlinux 0x1f6ef991 proto_unregister +EXPORT_SYMBOL vmlinux 0x1f8db533 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x1fcfc543 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x2009ce59 security_path_chmod +EXPORT_SYMBOL vmlinux 0x2019c3c5 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x203791b4 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x206244aa thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x207331f9 seq_puts +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x207fb377 pci_request_region +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x208df2f5 ps2_init +EXPORT_SYMBOL vmlinux 0x20d6de83 filemap_fault +EXPORT_SYMBOL vmlinux 0x20ea60a5 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x20eb471d abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x20f010fb skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x20ff6664 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x21126cb7 datagram_poll +EXPORT_SYMBOL vmlinux 0x21130898 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x21317936 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x218dcad7 mapping_tagged +EXPORT_SYMBOL vmlinux 0x21aadd93 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x21b04509 set_bh_page +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e98179 vm_map_ram +EXPORT_SYMBOL vmlinux 0x22095ab5 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222ff3e8 uart_match_port +EXPORT_SYMBOL vmlinux 0x223d93c9 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x223f75e5 mdiobus_write +EXPORT_SYMBOL vmlinux 0x22548c68 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x2257f715 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x22619e55 key_type_keyring +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a2be0e end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22b683fd get_super +EXPORT_SYMBOL vmlinux 0x22ca459e pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x231d54ef xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x23546089 nonseekable_open +EXPORT_SYMBOL vmlinux 0x23575b90 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x2371c1eb input_unregister_handler +EXPORT_SYMBOL vmlinux 0x23841669 phy_stop +EXPORT_SYMBOL vmlinux 0x238fdccf unregister_8022_client +EXPORT_SYMBOL vmlinux 0x23af9cab __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x23bea151 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x23bfb12e rfkill_alloc +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23c9ac63 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x23cb618e scsi_unregister +EXPORT_SYMBOL vmlinux 0x23dc288f __seq_open_private +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x241a1d69 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x2432f941 elv_rb_add +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2453964a pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24703ba7 seq_open_private +EXPORT_SYMBOL vmlinux 0x24811459 d_delete +EXPORT_SYMBOL vmlinux 0x24848d44 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x249a193f tty_port_close_end +EXPORT_SYMBOL vmlinux 0x24b477c7 vfs_read +EXPORT_SYMBOL vmlinux 0x24b81ee4 security_inode_permission +EXPORT_SYMBOL vmlinux 0x24c3271a inet_sendmsg +EXPORT_SYMBOL vmlinux 0x24c3f49f posix_acl_permission +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24e6d93c page_address +EXPORT_SYMBOL vmlinux 0x24e82ce0 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x252bc46f __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x25451ce3 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x257f6860 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x2589b70a d_invalidate +EXPORT_SYMBOL vmlinux 0x25957f3c kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x25a6c701 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x260c2e30 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x2615a8aa acpi_bus_add +EXPORT_SYMBOL vmlinux 0x26189bb0 del_gendisk +EXPORT_SYMBOL vmlinux 0x262b26cb iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x26518b68 idr_replace +EXPORT_SYMBOL vmlinux 0x267e61c6 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x2696f169 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x26bb7618 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x26bf42e8 ht_create_irq +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x2742a886 mmc_free_host +EXPORT_SYMBOL vmlinux 0x27447eda vfs_getattr +EXPORT_SYMBOL vmlinux 0x2769bb50 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0x277ac92d blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27a4d774 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x27b3dd3d phy_attach +EXPORT_SYMBOL vmlinux 0x27baebb1 neigh_create +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27cf4c51 bioset_create +EXPORT_SYMBOL vmlinux 0x28184b03 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x281c1af5 cdev_del +EXPORT_SYMBOL vmlinux 0x282140f8 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x283a0e62 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x28683b82 sock_no_connect +EXPORT_SYMBOL vmlinux 0x28733228 journal_update_format +EXPORT_SYMBOL vmlinux 0x28895d3b uart_update_timeout +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b2719a blk_init_tags +EXPORT_SYMBOL vmlinux 0x28b28f9f ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28e633b6 set_trace_device +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x293e8806 input_release_device +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x297cf985 serio_close +EXPORT_SYMBOL vmlinux 0x29a66086 get_gendisk +EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29e41c55 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x2a0bf989 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a4ef7ab rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x2a67698f pnp_find_card +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa93655 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x2ab089dc slow_work_register_user +EXPORT_SYMBOL vmlinux 0x2acedb88 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x2af82a48 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x2afedd30 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b2a2db7 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x2b2fcb25 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x2b8e8553 kset_register +EXPORT_SYMBOL vmlinux 0x2b90359e mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x2b90b92c scsi_get_command +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb064d6 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bcfc526 dm_put_device +EXPORT_SYMBOL vmlinux 0x2bd17302 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c2ddb68 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x2c464822 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x2c4d8d38 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x2c5cd5c1 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x2c6c7987 kill_pgrp +EXPORT_SYMBOL vmlinux 0x2c833f5e unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2cfcb6e9 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1cac31 input_set_keycode +EXPORT_SYMBOL vmlinux 0x2d2a5a44 set_pages_nx +EXPORT_SYMBOL vmlinux 0x2d2b2725 dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d4fa999 dev_addr_del +EXPORT_SYMBOL vmlinux 0x2d5e778e tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x2d6b0392 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x2d7fc07e xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d8ab17e pci_get_subsys +EXPORT_SYMBOL vmlinux 0x2db93b7f skb_queue_head +EXPORT_SYMBOL vmlinux 0x2dd00581 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e08879e xfrm_init_state +EXPORT_SYMBOL vmlinux 0x2e0a9a98 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x2e15dae7 journal_start +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e418e5c blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e5430f4 neigh_lookup +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e75ceb9 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x2e900c50 skb_make_writable +EXPORT_SYMBOL vmlinux 0x2e942f36 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x2ea000f7 tty_register_device +EXPORT_SYMBOL vmlinux 0x2eb7da59 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x2ee38e2d tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x2ee9b798 mnt_pin +EXPORT_SYMBOL vmlinux 0x2eeaee58 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x2f1198ef dquot_resume +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f34693f tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x2f68163a blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x2f6f5f6f napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x2f7dd6c2 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x2fa348d2 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x2fb278b2 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x2feb7568 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x2ff03d2e pnpbios_protocol +EXPORT_SYMBOL vmlinux 0x304c0c85 inode_change_ok +EXPORT_SYMBOL vmlinux 0x307d6cf0 current_fs_time +EXPORT_SYMBOL vmlinux 0x309c1ab5 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x30ab0a1f dqput +EXPORT_SYMBOL vmlinux 0x30c125dd ip_route_input_common +EXPORT_SYMBOL vmlinux 0x30c46eeb key_revoke +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30de3a5a mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x30decee7 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30f8946a tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x30fc3d98 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x3117216a tc_classify_compat +EXPORT_SYMBOL vmlinux 0x312b83d8 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31a48922 ppp_input_error +EXPORT_SYMBOL vmlinux 0x31b278c3 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x31b67714 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x31c3dff4 module_put +EXPORT_SYMBOL vmlinux 0x31ca93a4 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x31d798c4 dquot_disable +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31f217a6 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x31fd2279 netif_device_attach +EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x32808adb seq_escape +EXPORT_SYMBOL vmlinux 0x3283c969 set_groups +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x328a67fd __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x329f69bb inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x32a2f834 fd_install +EXPORT_SYMBOL vmlinux 0x32a3d9a4 vfs_symlink +EXPORT_SYMBOL vmlinux 0x32ca9939 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x33186bac dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x33385ad9 rtnl_notify +EXPORT_SYMBOL vmlinux 0x3342e791 napi_complete +EXPORT_SYMBOL vmlinux 0x33430fc5 install_exec_creds +EXPORT_SYMBOL vmlinux 0x334fa88a unregister_console +EXPORT_SYMBOL vmlinux 0x33d22ff9 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x33da2f31 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x33e515be neigh_table_init +EXPORT_SYMBOL vmlinux 0x34074bf6 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x340ea0d3 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x3430c1a8 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x3499e4db bio_put +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x349e2ffc eth_change_mtu +EXPORT_SYMBOL vmlinux 0x34a0ae26 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x34b96002 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x34c992c7 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x34cedb40 i2c_use_client +EXPORT_SYMBOL vmlinux 0x34ea21a4 netif_napi_add +EXPORT_SYMBOL vmlinux 0x350241eb grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x3510d8df alloc_file +EXPORT_SYMBOL vmlinux 0x35222c05 dquot_transfer +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x3547ee68 skb_find_text +EXPORT_SYMBOL vmlinux 0x35564122 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x355de367 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x35b84e2d sock_register +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x35eac4ee vfs_readdir +EXPORT_SYMBOL vmlinux 0x35f132c3 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x366fe18b simple_empty +EXPORT_SYMBOL vmlinux 0x36972540 dm_get_device +EXPORT_SYMBOL vmlinux 0x36a8a014 pcim_iomap +EXPORT_SYMBOL vmlinux 0x36ae253a security_file_permission +EXPORT_SYMBOL vmlinux 0x36cb3454 kobject_del +EXPORT_SYMBOL vmlinux 0x36cd10e3 mca_device_write_pos +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x371bfcbb prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x372ab5af k8_northbridges +EXPORT_SYMBOL vmlinux 0x37354914 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x375155fc udp_proc_register +EXPORT_SYMBOL vmlinux 0x377c8297 km_state_notify +EXPORT_SYMBOL vmlinux 0x3799884e ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x37a35ee6 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37b8fb6e mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37ca7619 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37e86d47 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x37f387df inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x380fa1ff ida_get_new_above +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each +EXPORT_SYMBOL vmlinux 0x38626d54 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x387fa93c tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389e263d tty_throttle +EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake +EXPORT_SYMBOL vmlinux 0x38ade9a8 registered_fb +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38bb163b set_device_ro +EXPORT_SYMBOL vmlinux 0x38e6e872 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x392a403b pnp_device_detach +EXPORT_SYMBOL vmlinux 0x392fd274 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x393000ca tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x394ccaf5 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3984803b f_setown +EXPORT_SYMBOL vmlinux 0x39abfbdd generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x39b022e5 mca_register_driver +EXPORT_SYMBOL vmlinux 0x39d5a98f find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x39d85de7 may_umount_tree +EXPORT_SYMBOL vmlinux 0x39e0ecbc __ip_select_ident +EXPORT_SYMBOL vmlinux 0x39f1169c blk_stop_queue +EXPORT_SYMBOL vmlinux 0x39f49d4b inode_permission +EXPORT_SYMBOL vmlinux 0x39fe9bcd xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x3a080586 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a2a599a xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x3a4fc32d simple_lookup +EXPORT_SYMBOL vmlinux 0x3a5265af i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a92951b xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x3a997369 pci_save_state +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa33578 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x3aae0936 mpage_readpage +EXPORT_SYMBOL vmlinux 0x3ae76176 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x3af98f9e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x3b0355cb pci_fixup_device +EXPORT_SYMBOL vmlinux 0x3b25f32e mdiobus_read +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b416025 inet_frags_init +EXPORT_SYMBOL vmlinux 0x3b49521d send_sig_info +EXPORT_SYMBOL vmlinux 0x3b4f0df2 seq_bitmap +EXPORT_SYMBOL vmlinux 0x3b52c140 inet6_getname +EXPORT_SYMBOL vmlinux 0x3b5989ba inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x3b622328 kobject_get +EXPORT_SYMBOL vmlinux 0x3b7a2889 input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x3bc851ce jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c161301 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x3c1e2d17 pci_get_device +EXPORT_SYMBOL vmlinux 0x3c28fe50 sock_no_accept +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c5798db input_register_device +EXPORT_SYMBOL vmlinux 0x3c7a9d6c __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x3c8acba3 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf50675 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d466bdc pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x3d605d5d textsearch_register +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d7e0324 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3de42fca d_add_ci +EXPORT_SYMBOL vmlinux 0x3dee8221 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x3df54e46 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x3df58518 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e3eee2d xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e757e1c jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x3e82b70e ps2_end_command +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ecd5504 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee8b29e pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f1bc368 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x3f22fd6a __pci_register_driver +EXPORT_SYMBOL vmlinux 0x3f3159b4 gen_pool_free +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4e8555 phy_device_create +EXPORT_SYMBOL vmlinux 0x3f4f8f85 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x3f60d579 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f7ec960 security_path_truncate +EXPORT_SYMBOL vmlinux 0x3f83c72e ip6_frag_match +EXPORT_SYMBOL vmlinux 0x3faab1ee journal_ack_err +EXPORT_SYMBOL vmlinux 0x3fca7444 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff9a007 simple_fill_super +EXPORT_SYMBOL vmlinux 0x3ffe13b3 tty_free_termios +EXPORT_SYMBOL vmlinux 0x402675f3 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x404519a3 bdget_disk +EXPORT_SYMBOL vmlinux 0x40454f4c blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x405ded91 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x40601c7e __find_get_block +EXPORT_SYMBOL vmlinux 0x4076f5fd remove_arg_zero +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x4098d763 key_alloc +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4105d10e pci_disable_msix +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4133c5e2 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414e650c journal_release_buffer +EXPORT_SYMBOL vmlinux 0x41665e91 security_path_link +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41a3eca5 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x41e1625d bdi_register_dev +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x41f71639 devm_free_irq +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42142d6a scsi_execute_req +EXPORT_SYMBOL vmlinux 0x421ddf12 dev_open +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x422c3957 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x42317242 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x423ea224 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x424d6c87 llc_sap_find +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x42920261 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42988a95 skb_push +EXPORT_SYMBOL vmlinux 0x4299c48d acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x42c2dbab have_submounts +EXPORT_SYMBOL vmlinux 0x42eaa4eb pskb_copy +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430906a3 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x4335137b block_read_full_page +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x434aac87 input_event +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x4357e0d0 generic_writepages +EXPORT_SYMBOL vmlinux 0x436bd099 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x436c1a80 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43930f18 kick_iocb +EXPORT_SYMBOL vmlinux 0x43a72125 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43ba93ae skb_copy_expand +EXPORT_SYMBOL vmlinux 0x43cd56cc kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x43d54fdd gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x4403c53f scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x4405956d tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x441ca3c8 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x4441f443 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x444282b7 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x445d976e jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x445fb07b bio_sector_offset +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b85fdd tty_port_close +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44d4f221 uart_resume_port +EXPORT_SYMBOL vmlinux 0x44dda7d2 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x45166742 sock_i_ino +EXPORT_SYMBOL vmlinux 0x451a30ba skb_dequeue +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4547640a sock_rfree +EXPORT_SYMBOL vmlinux 0x454d26a2 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x45581ec6 block_commit_write +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x459cf05e pci_find_capability +EXPORT_SYMBOL vmlinux 0x45a1a8b2 delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x45a30ebd kmalloc_caches +EXPORT_SYMBOL vmlinux 0x45ad1218 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x45b337f7 tty_port_put +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45ef0edc ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x45f8a8ee alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x46290ed2 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x462cf402 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x465a21dc ip_defrag +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467b9e8e padata_do_parallel +EXPORT_SYMBOL vmlinux 0x4687b5f7 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x46a0f800 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x46b86ae9 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x46c3eff0 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x470bcea9 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x471591c2 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x4738ddd3 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x4749464b register_qdisc +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x47664a57 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x47706206 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x47809d58 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x4795a792 cdrom_open +EXPORT_SYMBOL vmlinux 0x4797e85a vmtruncate +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47a60400 register_key_type +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c54900 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x48169215 md_write_start +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x484263c0 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4874a067 pci_release_region +EXPORT_SYMBOL vmlinux 0x48848356 pci_enable_device +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48c17d14 d_move +EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x48d415bf elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x490bbddc jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x490c0a70 bd_set_size +EXPORT_SYMBOL vmlinux 0x491123d9 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x49155f4c dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x4936a2ec current_task +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x494a584a gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x494d076e dst_destroy +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x49551643 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x495dccad fddi_type_trans +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49856056 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x499aa073 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49bcacd1 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49eeecbd lro_receive_skb +EXPORT_SYMBOL vmlinux 0x49fa2fad acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0x49fec39b xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x4a217cd0 release_firmware +EXPORT_SYMBOL vmlinux 0x4a322981 sg_miter_next +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a520d92 follow_down +EXPORT_SYMBOL vmlinux 0x4a6adce4 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x4a740ad0 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x4a845b70 inet6_release +EXPORT_SYMBOL vmlinux 0x4a88ad3e key_negate_and_link +EXPORT_SYMBOL vmlinux 0x4a890ea4 nla_append +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4aafb9cf kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x4ab5f233 do_splice_from +EXPORT_SYMBOL vmlinux 0x4ad5ba94 phy_connect +EXPORT_SYMBOL vmlinux 0x4aeabee6 pci_map_rom +EXPORT_SYMBOL vmlinux 0x4af2c310 pci_get_slot +EXPORT_SYMBOL vmlinux 0x4afa64c2 register_console +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b1bc8fa tty_hangup +EXPORT_SYMBOL vmlinux 0x4b2d3ee7 locks_init_lock +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b6baa22 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x4b90dd75 kdb_current_task +EXPORT_SYMBOL vmlinux 0x4baad78a uart_get_divisor +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bbd449a pipe_unlock +EXPORT_SYMBOL vmlinux 0x4c057e2a mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c30d842 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x4c50e4ac sock_update_classid +EXPORT_SYMBOL vmlinux 0x4c58ec4e blk_recount_segments +EXPORT_SYMBOL vmlinux 0x4c9098ee sock_setsockopt +EXPORT_SYMBOL vmlinux 0x4c959954 d_splice_alias +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cf21ee2 mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0x4cfb7a5b vfs_mkdir +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d24f8c5 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x4d2d816c dev_set_mtu +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d5aff10 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x4d631aac test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x4d6cd6d4 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x4d825604 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x4db67ed2 eth_header_parse +EXPORT_SYMBOL vmlinux 0x4dbdb455 km_policy_expired +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dd469a6 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x4dde9e55 misc_deregister +EXPORT_SYMBOL vmlinux 0x4df0a6e1 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e023c70 unlock_buffer +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e0e0476 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x4e0f242e tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e689a42 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x4e69c813 consume_skb +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e743069 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4ee211b7 inet_select_addr +EXPORT_SYMBOL vmlinux 0x4ee45917 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x4efde497 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x4f04846b rfkill_blocked +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f247df3 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x4f43e402 inet_bind +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f48b97f inet_shutdown +EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt +EXPORT_SYMBOL vmlinux 0x4f75bd40 create_proc_entry +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f8fa1de neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x4fbe93a7 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x50204471 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50245b0a free_task +EXPORT_SYMBOL vmlinux 0x502bc93a skb_pad +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x508b83d1 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x509360f3 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x50a34d00 padata_stop +EXPORT_SYMBOL vmlinux 0x50ab025d llc_add_pack +EXPORT_SYMBOL vmlinux 0x50d170ee sock_no_getname +EXPORT_SYMBOL vmlinux 0x50e2ffdb blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x50e5452e inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x50f0288f inode_init_always +EXPORT_SYMBOL vmlinux 0x50f4ccf4 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5141dd1e kill_litter_super +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x5169889b inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x5171f693 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x517fc146 dqget +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x51a28d45 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x51b80d7b abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x51ccd1ad mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x51cf8d59 skb_put +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e49f77 get_io_context +EXPORT_SYMBOL vmlinux 0x51e60d15 da903x_query_status +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f142fc audit_log_end +EXPORT_SYMBOL vmlinux 0x51f7d841 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x51ffdfce max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x520d4889 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x5223ad34 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x525fa5cf input_free_device +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x52872b97 ida_destroy +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a226a3 dev_driver_string +EXPORT_SYMBOL vmlinux 0x52a55969 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x52f4badb pnp_register_driver +EXPORT_SYMBOL vmlinux 0x52f61ede inet_frag_find +EXPORT_SYMBOL vmlinux 0x52fd7eda fb_validate_mode +EXPORT_SYMBOL vmlinux 0x52fec1dc tcf_exts_change +EXPORT_SYMBOL vmlinux 0x53091d9e sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530f6e2d tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x531cea96 bio_add_page +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x534d88ef bdi_register +EXPORT_SYMBOL vmlinux 0x5382f7de tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53edb5bd ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x54005641 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x5407b584 __netif_schedule +EXPORT_SYMBOL vmlinux 0x54183804 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x541a0bf2 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x541d9c14 skb_store_bits +EXPORT_SYMBOL vmlinux 0x54251013 __inet6_hash +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5460cec7 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x5472ca13 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x54814754 igrab +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54ad7ce4 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x54bf9c31 pid_task +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54e9c607 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x54efdc11 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x5506b874 vfs_rename +EXPORT_SYMBOL vmlinux 0x5522ce2e sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x5542cd9e tcp_proc_register +EXPORT_SYMBOL vmlinux 0x554c8d89 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x5588b8ee generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55ac05c4 mmc_host_disable +EXPORT_SYMBOL vmlinux 0x55b8307f block_truncate_page +EXPORT_SYMBOL vmlinux 0x55c2eb0a names_cachep +EXPORT_SYMBOL vmlinux 0x55d7282e jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x55f163f8 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x55f75c07 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x560be184 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x5611ac56 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5682827c blk_register_region +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cc0133 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x56dabd91 d_lookup +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56e0813d acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x56f283f5 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x5707fa26 dquot_enable +EXPORT_SYMBOL vmlinux 0x57236880 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573578d2 proc_mkdir +EXPORT_SYMBOL vmlinux 0x573be2d4 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x574a1a57 tcp_child_process +EXPORT_SYMBOL vmlinux 0x5754ab8f log_wait_commit +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x576120be seq_printf +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57bd9c46 __napi_complete +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x58334a4a module_layout +EXPORT_SYMBOL vmlinux 0x5834a094 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583d4cf5 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x583f8937 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5858531f sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x586980b3 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x588771cc dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x588c94e4 kobject_put +EXPORT_SYMBOL vmlinux 0x5891566c __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x5896e71e udp_ioctl +EXPORT_SYMBOL vmlinux 0x58e142c8 vfs_write +EXPORT_SYMBOL vmlinux 0x58e6d8a2 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x58f39e6e netlink_broadcast +EXPORT_SYMBOL vmlinux 0x58f685fb mdiobus_register +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x59119a81 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x59239b04 skb_unlink +EXPORT_SYMBOL vmlinux 0x5925538f dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x5929791d sock_kfree_s +EXPORT_SYMBOL vmlinux 0x592afc8b bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5932d089 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5935e911 lookup_hash +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594d4d1d dquot_drop +EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy +EXPORT_SYMBOL vmlinux 0x59766179 blk_get_request +EXPORT_SYMBOL vmlinux 0x597de3b9 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d2974a rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x5a0ca68c sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a4e5180 framebuffer_release +EXPORT_SYMBOL vmlinux 0x5a5aba52 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a849319 mem_map +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5aef2b18 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x5af2b299 journal_abort +EXPORT_SYMBOL vmlinux 0x5afb25e6 tcp_connect +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b2bb6ca dev_get_flags +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b55ced7 path_is_under +EXPORT_SYMBOL vmlinux 0x5b659f43 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b81b5bb noop_llseek +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5bbb75a8 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x5bbb7f8e dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x5bd312a5 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x5c1f3515 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x5c23d27e mutex_lock +EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one +EXPORT_SYMBOL vmlinux 0x5c2ed2be dev_mc_init +EXPORT_SYMBOL vmlinux 0x5c402e7a scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x5c55e0fb pci_disable_device +EXPORT_SYMBOL vmlinux 0x5c578d1f xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x5c5e7763 km_query +EXPORT_SYMBOL vmlinux 0x5c625327 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c6d2bcb tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x5c7843e4 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x5c82453a generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x5c9839d5 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5ca9e36f blk_insert_request +EXPORT_SYMBOL vmlinux 0x5ca9eec6 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x5ce0685f inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x5ce66951 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x5cf63f78 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x5cfd5930 md_done_sync +EXPORT_SYMBOL vmlinux 0x5cff8416 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x5d1998c1 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x5d38c570 find_get_page +EXPORT_SYMBOL vmlinux 0x5d5814bb acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x5d5e7200 unregister_nls +EXPORT_SYMBOL vmlinux 0x5d5f895e generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x5d6d7cb5 pci_iounmap +EXPORT_SYMBOL vmlinux 0x5d902bee abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x5da12152 lro_flush_all +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5dc9093f deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x5de05235 mca_bus_type +EXPORT_SYMBOL vmlinux 0x5dfba31c input_grab_device +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e1f3af2 block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x5e2ffcda alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x5e571575 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x5e73b093 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ea5c4d8 mnt_unpin +EXPORT_SYMBOL vmlinux 0x5ebc9207 cad_pid +EXPORT_SYMBOL vmlinux 0x5ec39c6a ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5eee3a69 tty_port_init +EXPORT_SYMBOL vmlinux 0x5efe39bd __mutex_init +EXPORT_SYMBOL vmlinux 0x5f0a03ad vfs_unlink +EXPORT_SYMBOL vmlinux 0x5f12d076 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f2b65fb i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x5f3157a3 replace_mount_options +EXPORT_SYMBOL vmlinux 0x5f35dcd7 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x5f4a5c71 fput +EXPORT_SYMBOL vmlinux 0x5f8acba1 dcache_readdir +EXPORT_SYMBOL vmlinux 0x5f92bedd __getblk +EXPORT_SYMBOL vmlinux 0x5f94dc44 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x5f993651 scsi_execute +EXPORT_SYMBOL vmlinux 0x5f9f0b9c dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x5fdc9dab pci_target_state +EXPORT_SYMBOL vmlinux 0x5fec2efe init_net +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x603ee5ae phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x609199b4 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b92da6 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x6106df5e fb_blank +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x613483b9 udplite_prot +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x61640a57 brioctl_set +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61afa683 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c45b12 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0x61eb5bcc dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x61f921ff tty_vhangup +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x62193598 pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623efb73 vga_client_register +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x624f8c90 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x625ce79a fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x62731b39 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62ad74d5 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x62bcd457 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x62ddc0df journal_wipe +EXPORT_SYMBOL vmlinux 0x62f9e1d6 bio_split +EXPORT_SYMBOL vmlinux 0x630cbc37 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x633e4429 elv_add_request +EXPORT_SYMBOL vmlinux 0x63506723 proc_symlink +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x639a8682 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x63a103d1 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x63a6aa14 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x63aefe98 dev_load +EXPORT_SYMBOL vmlinux 0x63c74136 clear_inode +EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6411b2f4 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x6414a618 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x642b6ff3 iput +EXPORT_SYMBOL vmlinux 0x643312cb xfrm_state_add +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x645b30a9 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x645b6c6b blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x6466a9a7 init_buffer +EXPORT_SYMBOL vmlinux 0x6475e514 icmp_send +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x6507610d bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x6536f500 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6551b6c7 blk_init_queue +EXPORT_SYMBOL vmlinux 0x6551f214 netdev_set_master +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6588a6ab phy_start +EXPORT_SYMBOL vmlinux 0x658e0cf7 cdev_add +EXPORT_SYMBOL vmlinux 0x65a50ea2 journal_set_features +EXPORT_SYMBOL vmlinux 0x65b71537 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x65bd9502 kmap_atomic +EXPORT_SYMBOL vmlinux 0x65be3224 phy_device_free +EXPORT_SYMBOL vmlinux 0x65ed27b3 kunmap +EXPORT_SYMBOL vmlinux 0x65f9c3f9 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x66005153 skb_copy +EXPORT_SYMBOL vmlinux 0x660a8974 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x6643489d nlmsg_notify +EXPORT_SYMBOL vmlinux 0x6668448d __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x6680e453 get_user_pages +EXPORT_SYMBOL vmlinux 0x66837b3a jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x669324d0 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x66bb38f4 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x6724a400 tty_shutdown +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x677c15bf i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67be1a15 fget +EXPORT_SYMBOL vmlinux 0x6803b8ba __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x682da140 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x68450c3c inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x6875e96b scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x688a8c78 bioset_free +EXPORT_SYMBOL vmlinux 0x68a7e7e1 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x69206221 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x6945cb5e fb_set_suspend +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697bca47 find_or_create_page +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69890a06 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x698de656 dm_snap_cow +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x699f7f18 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69ac7248 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x69ad5a77 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x6a0164d5 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a050006 seq_path +EXPORT_SYMBOL vmlinux 0x6a05d7c2 inet_put_port +EXPORT_SYMBOL vmlinux 0x6a137ecd fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a2b486a ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x6a41e952 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a7df940 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x6a9f2cc4 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x6aa11dd4 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ad9ac2c mmc_release_host +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae719dd vfs_readlink +EXPORT_SYMBOL vmlinux 0x6af7c898 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x6b094cf7 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b30b53d d_alloc +EXPORT_SYMBOL vmlinux 0x6b66dc80 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b84c3a8 genphy_update_link +EXPORT_SYMBOL vmlinux 0x6b8b3de4 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6bc3aabc nf_register_hooks +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc83891 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x6bd7b32d skb_recycle_check +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c0e7215 mca_device_claimed +EXPORT_SYMBOL vmlinux 0x6c0eed4c abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c820cd1 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x6ca9afa6 seq_putc +EXPORT_SYMBOL vmlinux 0x6cc66691 xrlim_allow +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6ce00b5e shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x6d27b554 skb_clone +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d280338 bio_clone +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2c1fc5 rfkill_register +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d73e5dc cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x6da8033d jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x6dada128 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x6dd21a35 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x6ddf5e72 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e0a8891 freeze_super +EXPORT_SYMBOL vmlinux 0x6e1177ae tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x6e39c5ef find_lock_page +EXPORT_SYMBOL vmlinux 0x6e3ecc9c cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x6e5853b7 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x6e6d39ad default_llseek +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e766ea1 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6e9ebfe7 request_firmware +EXPORT_SYMBOL vmlinux 0x6ed5ae76 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x6ed982dc pci_release_regions +EXPORT_SYMBOL vmlinux 0x6f087a9e xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x6f14504c kernel_getsockname +EXPORT_SYMBOL vmlinux 0x6f2e95e8 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x6f34f2d2 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f38da2a phy_start_aneg +EXPORT_SYMBOL vmlinux 0x6f3945eb dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x6f4bd687 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f75c7be deny_write_access +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f8c5412 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x6faf162d bdi_destroy +EXPORT_SYMBOL vmlinux 0x6fb3f65a posix_test_lock +EXPORT_SYMBOL vmlinux 0x6fc0d03f scsi_register +EXPORT_SYMBOL vmlinux 0x6fc7787f bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ff4d235 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70191aca seq_lseek +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x7070432b dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x709fa9a0 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x70bbb911 register_netdevice +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70bca428 no_llseek +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e0c77f inode_init_owner +EXPORT_SYMBOL vmlinux 0x71230d3c loop_register_transfer +EXPORT_SYMBOL vmlinux 0x7125e62e __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71345f60 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x714c7a81 acpi_check_mem_region +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7172313d xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x718ab0e1 md_write_end +EXPORT_SYMBOL vmlinux 0x718b4c33 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x71944f3b __scsi_put_command +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71cc12df phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x71d56940 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x71f03099 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x7209eb6d ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x7228770e scsi_device_put +EXPORT_SYMBOL vmlinux 0x7273d1b4 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x727dba2d tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x728a4490 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72c71be3 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x72c9ab03 mpage_writepage +EXPORT_SYMBOL vmlinux 0x72e09394 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x72e1c370 bdevname +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7301c136 __brelse +EXPORT_SYMBOL vmlinux 0x730c2e05 generic_setxattr +EXPORT_SYMBOL vmlinux 0x73296bea scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x73307354 inet_addr_type +EXPORT_SYMBOL vmlinux 0x733144a7 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x7367caf5 hippi_type_trans +EXPORT_SYMBOL vmlinux 0x736c1b26 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x7387da78 set_security_override +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x7396190b journal_clear_err +EXPORT_SYMBOL vmlinux 0x73a61633 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x73af0115 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x73de1af0 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x742f3c86 pnp_find_dev +EXPORT_SYMBOL vmlinux 0x7433f899 scsi_device_get +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x746aa000 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x746b19b9 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x746c45c8 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x746d7c3b blk_run_queue +EXPORT_SYMBOL vmlinux 0x7478253a revalidate_disk +EXPORT_SYMBOL vmlinux 0x74792404 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x749629c3 sk_wait_data +EXPORT_SYMBOL vmlinux 0x74a177f9 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x74a6fdb9 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x74aa4e59 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x74af6af4 nobh_write_end +EXPORT_SYMBOL vmlinux 0x74b4a140 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74d2bf5d pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x7525713c skb_tx_hash +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x753f6cea __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x75470a9b tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x7559ebb6 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x758d5a19 sock_no_bind +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75d46cf0 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x75d574a2 simple_setsize +EXPORT_SYMBOL vmlinux 0x75e7452b pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x75f9f8b3 set_irq_chip +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x761095ba save_mount_options +EXPORT_SYMBOL vmlinux 0x761260f3 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x76344068 phy_disconnect +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x7682974b pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x768e7c57 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x768edc47 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x76a1d5f3 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x76a43489 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x76ac82ac xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c2ce18 generic_removexattr +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76df25b2 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x76ef66c1 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x770c6133 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7751db9e netif_napi_del +EXPORT_SYMBOL vmlinux 0x775308a4 __page_symlink +EXPORT_SYMBOL vmlinux 0x77599100 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x77653e06 file_update_time +EXPORT_SYMBOL vmlinux 0x7770e07f dquot_release +EXPORT_SYMBOL vmlinux 0x777b1b18 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x77a42a63 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f5ee9a journal_errno +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77fe21ca dquot_initialize +EXPORT_SYMBOL vmlinux 0x781c4a04 file_permission +EXPORT_SYMBOL vmlinux 0x784cad72 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x786b4cdd mfd_add_devices +EXPORT_SYMBOL vmlinux 0x7870b67e set_pages_x +EXPORT_SYMBOL vmlinux 0x787aa907 d_genocide +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x78b38423 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x78c4a540 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x78d8db9e idr_get_next +EXPORT_SYMBOL vmlinux 0x78de48eb __ps2_command +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x79146b2e xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x7950d2c0 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x795d18c7 filp_open +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79769ac6 log_start_commit +EXPORT_SYMBOL vmlinux 0x7986ad12 ip_route_output_key +EXPORT_SYMBOL vmlinux 0x79a5222c poll_freewait +EXPORT_SYMBOL vmlinux 0x79a5282a scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79d56f2a tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x7a040e35 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x7a0817ce tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x7a110431 block_write_full_page +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a2afb98 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a795783 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x7a7d1120 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x7a842cc2 find_vma +EXPORT_SYMBOL vmlinux 0x7a8b9bb0 notify_change +EXPORT_SYMBOL vmlinux 0x7a8fe200 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7acbc9b2 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x7adf48ff truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7afdd411 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x7b04d302 vc_resize +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b29bb1d blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x7b2fb8c5 iget_failed +EXPORT_SYMBOL vmlinux 0x7b37cdd1 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b5374f3 __devm_request_region +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b6a5bc1 kill_pid +EXPORT_SYMBOL vmlinux 0x7b828539 proc_create_data +EXPORT_SYMBOL vmlinux 0x7b882b39 dentry_unhash +EXPORT_SYMBOL vmlinux 0x7b974ecf kernel_listen +EXPORT_SYMBOL vmlinux 0x7b9e983f cpu_info +EXPORT_SYMBOL vmlinux 0x7ba74712 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x7bcc3bde __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bde5f6b tty_kref_put +EXPORT_SYMBOL vmlinux 0x7bfe4765 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x7c0ae43e xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x7c0edd7d acpi_check_region +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c49dd1a xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x7c50df3f security_inode_readlink +EXPORT_SYMBOL vmlinux 0x7c51ea71 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c6a3ab5 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cbfc424 md_barrier_request +EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d1624ff serial8250_register_port +EXPORT_SYMBOL vmlinux 0x7d23da70 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x7d2947ff key_validate +EXPORT_SYMBOL vmlinux 0x7d2e6cc4 dm_table_put +EXPORT_SYMBOL vmlinux 0x7d8d7b6e dma_find_channel +EXPORT_SYMBOL vmlinux 0x7d91b768 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x7d9a63da tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dcda1cd mmc_detect_change +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de651f6 eth_header +EXPORT_SYMBOL vmlinux 0x7ded3321 scsi_print_command +EXPORT_SYMBOL vmlinux 0x7df53fac skb_checksum_help +EXPORT_SYMBOL vmlinux 0x7dfa79d6 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x7dffedac dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e3098df __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e6a1971 update_region +EXPORT_SYMBOL vmlinux 0x7e7d3132 fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7eda18a4 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x7ef66ab4 drop_super +EXPORT_SYMBOL vmlinux 0x7f04e14d scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f1c7bd2 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f5be7ea tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x7f6d6497 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x7f9d8837 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x7fa9b1fb fb_get_mode +EXPORT_SYMBOL vmlinux 0x7fd26c9f mmc_register_driver +EXPORT_SYMBOL vmlinux 0x7fd2eac2 fb_find_mode +EXPORT_SYMBOL vmlinux 0x7fd7a873 llc_sap_close +EXPORT_SYMBOL vmlinux 0x7fdeda92 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x7ff62edb d_validate +EXPORT_SYMBOL vmlinux 0x7ff6a049 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x80177571 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x8033babd input_flush_device +EXPORT_SYMBOL vmlinux 0x80482198 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x805191c2 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x8051c018 kernel_bind +EXPORT_SYMBOL vmlinux 0x805f7561 phy_driver_register +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x80648fca kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x806aa635 inet_ioctl +EXPORT_SYMBOL vmlinux 0x806fefe4 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x8077f7e4 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x80849971 ll_rw_block +EXPORT_SYMBOL vmlinux 0x8096540e ab3100_event_register +EXPORT_SYMBOL vmlinux 0x80bb8dd5 register_filesystem +EXPORT_SYMBOL vmlinux 0x80f43150 dst_release +EXPORT_SYMBOL vmlinux 0x81437e39 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x816d886c filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x818e43c7 dev_uc_del +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81bccdcc padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x81c506f0 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x81c76be2 phy_device_register +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d3e488 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x81de477f neigh_table_clear +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81e7d79c truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x81e7db84 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x8204e302 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x82285d00 flush_old_exec +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x823a014f journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x829d84c7 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b489f8 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x82f6572e nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x82fabb4c netpoll_poll +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x832d45b9 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x833143b2 register_8022_client +EXPORT_SYMBOL vmlinux 0x8353b641 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x8365bdb8 set_pages_uc +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x83864d88 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x838a268b blk_plug_device +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83bdd1c7 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x83c6737b scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x83d30cd4 set_user_nice +EXPORT_SYMBOL vmlinux 0x83e2f99b generic_file_fsync +EXPORT_SYMBOL vmlinux 0x84096361 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x84130ba3 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x84298439 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x8431c175 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x844b77e2 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x8451413e copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x84662eb3 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84cfdb60 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x84f5b059 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x84faa230 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x851f04f8 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856b9e21 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x856c15fe poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x856e5ceb request_key_async +EXPORT_SYMBOL vmlinux 0x85a2b779 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x85c58346 user_revoke +EXPORT_SYMBOL vmlinux 0x85d152ad inode_init_once +EXPORT_SYMBOL vmlinux 0x85d722c8 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e434ba ps2_command +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x86379a85 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8683d060 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a6e54f scsi_block_requests +EXPORT_SYMBOL vmlinux 0x86b971b1 __dst_free +EXPORT_SYMBOL vmlinux 0x86edc984 blk_free_tags +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871b52f0 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87300d1e dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x8733c7fc blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x873e11bb eth_header_cache +EXPORT_SYMBOL vmlinux 0x875637a4 bdev_read_only +EXPORT_SYMBOL vmlinux 0x87610fd2 genphy_suspend +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87736539 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x87818a64 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87a2498e kmap +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87a6188a i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x87c19294 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x87cbf5a2 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x87d24d81 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x87def7f5 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x87eedf97 seq_open +EXPORT_SYMBOL vmlinux 0x87fae014 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x880aa6cc fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8816ad38 set_pages_wb +EXPORT_SYMBOL vmlinux 0x881c376e __free_pages +EXPORT_SYMBOL vmlinux 0x886694da blk_peek_request +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88e88136 ioremap_prot +EXPORT_SYMBOL vmlinux 0x89213769 read_cache_pages +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x89528fbe audit_log_start +EXPORT_SYMBOL vmlinux 0x895cc809 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89854eed xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x899a229c tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a0261b2 skb_insert +EXPORT_SYMBOL vmlinux 0x8a03bf6e pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x8a3f6fef i2c_release_client +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a953d2b netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa2e23c rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x8ac1b5a7 posix_lock_file +EXPORT_SYMBOL vmlinux 0x8ac7fdd6 bio_endio +EXPORT_SYMBOL vmlinux 0x8ad3d2af dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x8addae76 register_cdrom +EXPORT_SYMBOL vmlinux 0x8ae4fc4b netlink_ack +EXPORT_SYMBOL vmlinux 0x8aeee2cf inet_add_protocol +EXPORT_SYMBOL vmlinux 0x8b043fc3 bio_free +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1885c1 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b62167d dm_io_client_create +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock +EXPORT_SYMBOL vmlinux 0x8bd403a6 mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bf5c0ef scsi_remove_target +EXPORT_SYMBOL vmlinux 0x8bf842e5 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c477f89 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x8c48e037 __scm_destroy +EXPORT_SYMBOL vmlinux 0x8c5113c9 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x8c735a6c simple_rename +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd0138e i2c_verify_client +EXPORT_SYMBOL vmlinux 0x8cea0587 lock_rename +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6761b5 journal_revoke +EXPORT_SYMBOL vmlinux 0x8d6f10ca eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da28634 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dd1dbbb inet6_bind +EXPORT_SYMBOL vmlinux 0x8de1e02f tcp_splice_read +EXPORT_SYMBOL vmlinux 0x8df2cffd i2c_master_send +EXPORT_SYMBOL vmlinux 0x8dfba25b generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e1c965a console_stop +EXPORT_SYMBOL vmlinux 0x8e2481d1 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e864b11 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e94f2b5 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ec3afb8 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8eea163f inet_del_protocol +EXPORT_SYMBOL vmlinux 0x8f1653c8 pci_match_id +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f2b0bc9 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f8848f8 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fd3a301 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ff8a1d4 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x900192da kmem_cache_size +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x90049f73 lock_fb_info +EXPORT_SYMBOL vmlinux 0x90118ac3 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x90123bc2 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x90449479 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x909327df tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90f73b9b cdev_alloc +EXPORT_SYMBOL vmlinux 0x90fdc69b mntput_no_expire +EXPORT_SYMBOL vmlinux 0x9102938f seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x9155f178 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x915e1519 netdev_state_change +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x91745a98 nf_log_register +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x9195a2d1 dump_trace +EXPORT_SYMBOL vmlinux 0x91b0d241 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x91be8c74 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x91cbba49 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x91f82758 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x922948fe netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923c2d9a blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x924ceca3 qdisc_reset +EXPORT_SYMBOL vmlinux 0x925206f9 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x92844d71 may_umount +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92d6e820 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x92fbc853 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x933cbf20 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x935f70e8 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93aca2fa writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93d155d3 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x93d431e1 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x93d54f72 uart_register_driver +EXPORT_SYMBOL vmlinux 0x93f431e3 mpage_readpages +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940479e1 flush_signals +EXPORT_SYMBOL vmlinux 0x941074eb prepare_binprm +EXPORT_SYMBOL vmlinux 0x9420588f generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x9445cad4 mca_device_status +EXPORT_SYMBOL vmlinux 0x94505db0 do_sync_read +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949a0020 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94cb53c1 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x94ce2246 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x94cfc636 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x94cfe8e9 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94dd233c submit_bio +EXPORT_SYMBOL vmlinux 0x952a4113 pci_clear_master +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9546529a __break_lease +EXPORT_SYMBOL vmlinux 0x95483dca hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x954cd0bd dev_get_by_name +EXPORT_SYMBOL vmlinux 0x956932b6 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x958204ef simple_getattr +EXPORT_SYMBOL vmlinux 0x95887e50 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x95ae9d73 abort_creds +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x95f68d22 dm_table_event +EXPORT_SYMBOL vmlinux 0x95fcf761 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x96376176 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x96506b3b rfkill_destroy +EXPORT_SYMBOL vmlinux 0x9653b290 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x96661960 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x9668d734 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96b4a8ec neigh_parms_release +EXPORT_SYMBOL vmlinux 0x96c23ffb mca_device_set_claim +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d351f5 sock_map_fd +EXPORT_SYMBOL vmlinux 0x96ed91f6 skb_seq_read +EXPORT_SYMBOL vmlinux 0x9711d0f1 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x9715819d ___pskb_trim +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x972ff0c6 vm_insert_page +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976bc526 dquot_operations +EXPORT_SYMBOL vmlinux 0x976f3bde seq_read +EXPORT_SYMBOL vmlinux 0x979b098e seq_release_private +EXPORT_SYMBOL vmlinux 0x97b81c18 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x97dadf7e tcp_check_req +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x9828a7ce i8042_install_filter +EXPORT_SYMBOL vmlinux 0x982b21cc pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x98345a87 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x98663be2 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x986ee37c register_con_driver +EXPORT_SYMBOL vmlinux 0x98810925 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x990c7d11 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x99118850 follow_pfn +EXPORT_SYMBOL vmlinux 0x9930716d cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x9937dcab pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x99421034 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x99582a9d sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x99746c8a cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999c680f dentry_open +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99e3ef34 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99fb9567 release_sock +EXPORT_SYMBOL vmlinux 0x9a0c2487 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a55e3de freeze_bdev +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a858ff5 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x9a8bb637 __bread +EXPORT_SYMBOL vmlinux 0x9aa44e3d pci_pme_active +EXPORT_SYMBOL vmlinux 0x9ab06f3c set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x9ad71be8 cdev_init +EXPORT_SYMBOL vmlinux 0x9ae31484 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x9aecd6a4 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x9afc8d09 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b42b9c0 vfs_readv +EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b7a98a1 tty_name +EXPORT_SYMBOL vmlinux 0x9ba6af16 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bac32c2 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x9bad8d57 bio_copy_user +EXPORT_SYMBOL vmlinux 0x9bb89e1a generic_block_bmap +EXPORT_SYMBOL vmlinux 0x9bb9e080 __invalidate_device +EXPORT_SYMBOL vmlinux 0x9bbdadd5 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9be74986 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0522ef tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x9c1f392a devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x9c23bcba atomic64_add_return_cx8 +EXPORT_SYMBOL vmlinux 0x9c24ebc0 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero +EXPORT_SYMBOL vmlinux 0x9c4c9c60 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x9c4df631 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c925689 kmap_high +EXPORT_SYMBOL vmlinux 0x9ca85aa6 vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc13ad9 setup_new_exec +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cf1df65 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9cfddb2d scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x9d035dae nla_reserve +EXPORT_SYMBOL vmlinux 0x9d0f8104 simple_unlink +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3d4d5a pci_read_vpd +EXPORT_SYMBOL vmlinux 0x9d3e9195 revert_creds +EXPORT_SYMBOL vmlinux 0x9d4beca4 nf_log_packet +EXPORT_SYMBOL vmlinux 0x9d637cb2 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x9d9ea16d sock_wake_async +EXPORT_SYMBOL vmlinux 0x9dca872b dev_mc_add +EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x9de1e61f backlight_force_update +EXPORT_SYMBOL vmlinux 0x9df9a9e4 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e26a598 neigh_destroy +EXPORT_SYMBOL vmlinux 0x9e5409e6 sock_release +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e7350ca cdev_index +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea77127 copy_io_context +EXPORT_SYMBOL vmlinux 0x9ecdb575 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f3f5f5d md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f4bb56c llc_sap_open +EXPORT_SYMBOL vmlinux 0x9f5cdc15 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x9f74f3ba con_is_bound +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa93c66 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc9c64f blk_make_request +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fdf5297 scsi_put_command +EXPORT_SYMBOL vmlinux 0x9ff0eca0 tty_check_change +EXPORT_SYMBOL vmlinux 0x9ffb6f64 arp_create +EXPORT_SYMBOL vmlinux 0xa02fb67a generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06b69ee mutex_unlock +EXPORT_SYMBOL vmlinux 0xa0798099 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b8037d directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xa0c85bbf journal_lock_updates +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0e27538 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa10bbc88 secpath_dup +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13b3547 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14f0d18 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa16215d3 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xa16355fd __nla_put +EXPORT_SYMBOL vmlinux 0xa16de135 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xa19d28a9 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c9d080 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xa1f64157 vmap +EXPORT_SYMBOL vmlinux 0xa1f98c30 journal_destroy +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2103571 input_open_device +EXPORT_SYMBOL vmlinux 0xa220dc43 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xa2823d08 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xa28a5020 put_tty_driver +EXPORT_SYMBOL vmlinux 0xa28dfb1e input_register_handle +EXPORT_SYMBOL vmlinux 0xa2a54010 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f145e1 journal_stop +EXPORT_SYMBOL vmlinux 0xa2f4f3b2 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xa3083fa4 block_prepare_write +EXPORT_SYMBOL vmlinux 0xa32c8dfa jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa34949ed ppp_unit_number +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35dafd9 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa363d0dc do_SAK +EXPORT_SYMBOL vmlinux 0xa37030ed remove_proc_entry +EXPORT_SYMBOL vmlinux 0xa3d51ad1 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xa3d91e4e uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xa3e7804c create_mnt_ns +EXPORT_SYMBOL vmlinux 0xa3ecace7 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xa3f12f5c netlink_set_err +EXPORT_SYMBOL vmlinux 0xa3f2d9ac kunmap_high +EXPORT_SYMBOL vmlinux 0xa435cbcb __xfrm_lookup +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa447faaf tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xa467135e generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xa487834d qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xa490ebad bio_init +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c10bc8 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xa4c3cd8e block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xa50a435d remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa55b6f38 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xa5686a53 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last +EXPORT_SYMBOL vmlinux 0xa5bce6ea iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xa5c60e04 dma_pool_create +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5d5d428 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa60ff2c9 kunmap_atomic +EXPORT_SYMBOL vmlinux 0xa6133c63 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xa61a9d28 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xa623ee8c sk_run_filter +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa674e983 kill_anon_super +EXPORT_SYMBOL vmlinux 0xa676dea9 generic_setattr +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6899656 serio_interrupt +EXPORT_SYMBOL vmlinux 0xa697eb56 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6a0fca8 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xa6d1d6ef mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xa6d79c80 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6f1f70e tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xa7046549 vprintk +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa72ed16b page_put_link +EXPORT_SYMBOL vmlinux 0xa733ac14 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xa73aaba4 kernel_getpeername +EXPORT_SYMBOL vmlinux 0xa73b5151 get_sb_ns +EXPORT_SYMBOL vmlinux 0xa756a781 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xa76e9db0 md_check_recovery +EXPORT_SYMBOL vmlinux 0xa77b338a i2c_transfer +EXPORT_SYMBOL vmlinux 0xa7c0def0 get_disk +EXPORT_SYMBOL vmlinux 0xa7d234a3 check_disk_change +EXPORT_SYMBOL vmlinux 0xa8035925 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xa829a4f4 __lock_buffer +EXPORT_SYMBOL vmlinux 0xa830a74c scsi_host_get +EXPORT_SYMBOL vmlinux 0xa835836c mmc_host_enable +EXPORT_SYMBOL vmlinux 0xa86e207b simple_transaction_read +EXPORT_SYMBOL vmlinux 0xa8705642 __kfree_skb +EXPORT_SYMBOL vmlinux 0xa871ca6c phy_print_status +EXPORT_SYMBOL vmlinux 0xa88d76c9 pnp_is_active +EXPORT_SYMBOL vmlinux 0xa8c6624c netdev_features_change +EXPORT_SYMBOL vmlinux 0xa8c961c7 redraw_screen +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9093720 blk_rq_init +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa97aaf65 security_path_rename +EXPORT_SYMBOL vmlinux 0xa99bdb9c tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c2c802 phy_attach_direct +EXPORT_SYMBOL vmlinux 0xa9d8d76d acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xa9f2c600 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xaa1e7512 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xaa24eeab sock_create +EXPORT_SYMBOL vmlinux 0xaa26738f blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xaa4b2a20 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa81c526 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa84f9e8 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaaaaacd1 ioremap_wc +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaacda092 __lookup_one_len +EXPORT_SYMBOL vmlinux 0xaad506d7 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xaad89e97 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xaadaccd6 is_container_init +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab42e2d6 security_path_chown +EXPORT_SYMBOL vmlinux 0xab4c91cf dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab73f86b neigh_connected_output +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab999d83 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xabc36b0d dma_sync_wait +EXPORT_SYMBOL vmlinux 0xabc6e780 pci_set_master +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd960ee insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xabd9c6be kernel_accept +EXPORT_SYMBOL vmlinux 0xabdac478 blkdev_put +EXPORT_SYMBOL vmlinux 0xabec4c91 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac16bf80 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xac1df14a xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xac55f3a5 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac5ec90d simple_setattr +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0xac8a8c87 phy_find_first +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad2b9497 inode_setattr +EXPORT_SYMBOL vmlinux 0xad2e59df kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xad3d21cd register_exec_domain +EXPORT_SYMBOL vmlinux 0xad41bf4e xfrm_register_km +EXPORT_SYMBOL vmlinux 0xad442150 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad6575b1 journal_forget +EXPORT_SYMBOL vmlinux 0xad7beecc kfree_skb +EXPORT_SYMBOL vmlinux 0xad9052ab bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xad92da7a blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xad9fbbba gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadaa6ee7 vfs_writev +EXPORT_SYMBOL vmlinux 0xadc56942 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xadc8e023 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xadcb54a4 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xadcf9d20 iterate_mounts +EXPORT_SYMBOL vmlinux 0xadd94b06 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xadf89368 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xadfe27bf dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0xae30abc1 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xae50fbe2 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xae519717 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xae5abfa0 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xaeaaed3a input_allocate_device +EXPORT_SYMBOL vmlinux 0xaeb8c275 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xaec2b6ae devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaef59b43 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf4c12e3 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf67e536 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xaf74e766 init_special_inode +EXPORT_SYMBOL vmlinux 0xaf80ed36 block_write_begin +EXPORT_SYMBOL vmlinux 0xaf9f88be alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xafb8646c ip_setsockopt +EXPORT_SYMBOL vmlinux 0xafc73c92 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xafdb030c pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xaffde1eb register_framebuffer +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb016a0d3 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xb01de3e0 dquot_commit +EXPORT_SYMBOL vmlinux 0xb053ef76 vfs_llseek +EXPORT_SYMBOL vmlinux 0xb05c4a1d uart_add_one_port +EXPORT_SYMBOL vmlinux 0xb05f5f14 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xb0668b70 scsi_add_device +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb0824aaa neigh_update +EXPORT_SYMBOL vmlinux 0xb091f9b2 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0bbb75a max8925_reg_read +EXPORT_SYMBOL vmlinux 0xb0c03e90 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb109139c generic_getxattr +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1373e36 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xb1557299 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xb156c7c3 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xb18b5809 kernel_connect +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1ac2d58 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c73bc2 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xb1ca8898 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d838a8 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xb1f87240 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb1fba07b in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xb1fe62be input_unregister_device +EXPORT_SYMBOL vmlinux 0xb2043158 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb222ea6f security_path_mknod +EXPORT_SYMBOL vmlinux 0xb224866f mca_device_read_pos +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb23927e7 netlink_unicast +EXPORT_SYMBOL vmlinux 0xb23b22a2 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb27c58b8 serio_rescan +EXPORT_SYMBOL vmlinux 0xb28d9054 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xb2aaa6a4 register_md_personality +EXPORT_SYMBOL vmlinux 0xb2b2aab5 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xb2b60acc simple_write_begin +EXPORT_SYMBOL vmlinux 0xb2c5bf09 vga_tryget +EXPORT_SYMBOL vmlinux 0xb2e1eed3 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb2fe4833 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb3289cb6 tr_type_trans +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb37a78bf __alloc_skb +EXPORT_SYMBOL vmlinux 0xb3919c19 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xb39f38e7 mca_device_set_name +EXPORT_SYMBOL vmlinux 0xb39fd393 blkdev_get +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3ba85f8 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xb3da09d6 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb3e5df5c scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xb3e7ba09 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xb3f163ce dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xb3fdcb61 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb427208c jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb429fce4 sock_no_poll +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb45fe8ba dm_unregister_target +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb504c6d7 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xb5267835 kset_unregister +EXPORT_SYMBOL vmlinux 0xb5301a51 request_key +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5546939 md_error +EXPORT_SYMBOL vmlinux 0xb562686a dev_get_stats +EXPORT_SYMBOL vmlinux 0xb567d18f noop_qdisc +EXPORT_SYMBOL vmlinux 0xb596895e udp_prot +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5ea5f15 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0xb5ed092d block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xb6214035 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xb622b14f journal_check_available_features +EXPORT_SYMBOL vmlinux 0xb634fb81 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xb651a9c5 register_nls +EXPORT_SYMBOL vmlinux 0xb67644e2 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb68d76c0 d_path +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6a9f7f5 tcp_poll +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c845d2 do_truncate +EXPORT_SYMBOL vmlinux 0xb6d46dc7 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb710ed49 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xb72397d5 printk +EXPORT_SYMBOL vmlinux 0xb73d5cff dm_table_get +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb75f9bc9 sk_stream_error +EXPORT_SYMBOL vmlinux 0xb77ea39f mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb78e9b58 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb8095ddf pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xb8279d65 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xb83dc929 vfs_statfs +EXPORT_SYMBOL vmlinux 0xb855e4ab journal_start_commit +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85b4d99 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb883120a generic_listxattr +EXPORT_SYMBOL vmlinux 0xb89121ed __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8f8ec16 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xb90010d9 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb942b513 smp_call_function_many +EXPORT_SYMBOL vmlinux 0xb950ee53 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xb9614287 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9998469 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xb9add880 blk_put_request +EXPORT_SYMBOL vmlinux 0xb9b13802 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xb9caed3a __bio_clone +EXPORT_SYMBOL vmlinux 0xb9eb1771 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba2ccffd dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba556a59 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0xba598639 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xba6f653b netdev_bonding_change +EXPORT_SYMBOL vmlinux 0xba70a2f7 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xba71c120 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xba8a5b78 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xba9dc99d eth_type_trans +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaacaff6 seq_write +EXPORT_SYMBOL vmlinux 0xbab7075d fb_pan_display +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbaf40ad1 register_netdev +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb4214b0 filp_close +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb77d943 cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbb9988e5 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xbba0dd6f alloc_disk +EXPORT_SYMBOL vmlinux 0xbbad85ba user_path_at +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbc099b8 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xbbd637ad journal_extend +EXPORT_SYMBOL vmlinux 0xbbf22e48 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xbc091ecf blk_integrity_register +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc525f31 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xbc63db3b padata_alloc +EXPORT_SYMBOL vmlinux 0xbc7b0aa7 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xbc84ec60 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xbcbbe75d blk_end_request +EXPORT_SYMBOL vmlinux 0xbcbd4412 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcc9357b fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xbccc4681 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xbcde30bd __nla_reserve +EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbd479c73 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xbd4cba17 d_rehash +EXPORT_SYMBOL vmlinux 0xbd5a65a0 pci_iomap +EXPORT_SYMBOL vmlinux 0xbd5fa3a1 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xbd90e149 d_find_alias +EXPORT_SYMBOL vmlinux 0xbdd7e3c3 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xbde74294 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xbdebb6f3 idr_find +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0b1f3b bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe1d5e5b bio_integrity_free +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe58ade4 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe7941ee try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xbe890b29 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xbe990dcc xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xbecd89ae force_sig +EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xbed4d443 iget_locked +EXPORT_SYMBOL vmlinux 0xbee817bf pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xbeed4ddf sock_no_mmap +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf19a4c5 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xbf1a7e47 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xbf1d85c9 pci_get_class +EXPORT_SYMBOL vmlinux 0xbf20a069 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xbf343037 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xbf47b046 netpoll_setup +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa80f16 tc_classify +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd1badc blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc01e7e0b blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc028d067 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc067359e atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0b92d88 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xc0cf9053 input_set_capability +EXPORT_SYMBOL vmlinux 0xc0d12aa5 kern_path +EXPORT_SYMBOL vmlinux 0xc0df4efb mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xc0e3fd5c tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xc0f3e814 generic_readlink +EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart +EXPORT_SYMBOL vmlinux 0xc0f784a8 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc1343d97 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc191bc6d pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xc1a3d109 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xc1abebe7 x86_hyper +EXPORT_SYMBOL vmlinux 0xc1b01e94 journal_force_commit +EXPORT_SYMBOL vmlinux 0xc1bc18bb __sk_dst_check +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc205aa4f cont_write_begin +EXPORT_SYMBOL vmlinux 0xc21b7a0b dm_table_get_size +EXPORT_SYMBOL vmlinux 0xc22cacf1 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xc24489ec register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26335b0 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xc2651f5f get_sb_single +EXPORT_SYMBOL vmlinux 0xc2659836 set_binfmt +EXPORT_SYMBOL vmlinux 0xc268921d journal_load +EXPORT_SYMBOL vmlinux 0xc26981b1 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc2971100 pci_enable_msix +EXPORT_SYMBOL vmlinux 0xc29d2c2f xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xc29fa00f netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xc2b49738 pci_find_bus +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2ef95d6 dev_addr_init +EXPORT_SYMBOL vmlinux 0xc30ba634 inet_accept +EXPORT_SYMBOL vmlinux 0xc31ab1d0 pci_restore_state +EXPORT_SYMBOL vmlinux 0xc32072b0 tcf_register_action +EXPORT_SYMBOL vmlinux 0xc3243c36 blk_start_queue +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc3433b70 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xc3512178 write_one_page +EXPORT_SYMBOL vmlinux 0xc3556cd1 tcp_close +EXPORT_SYMBOL vmlinux 0xc35b17d0 pci_dev_put +EXPORT_SYMBOL vmlinux 0xc38aa032 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc390e1c6 generic_write_checks +EXPORT_SYMBOL vmlinux 0xc39f2e9b dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xc3aade2e pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3b79944 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d9e34a __scm_send +EXPORT_SYMBOL vmlinux 0xc3e92826 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xc3f1b04f ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc3fbe81f __register_chrdev +EXPORT_SYMBOL vmlinux 0xc3fc4ffc input_register_handler +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc444a677 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xc454d8fe bio_copy_kern +EXPORT_SYMBOL vmlinux 0xc46454d0 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a19942 serio_open +EXPORT_SYMBOL vmlinux 0xc4a71e6c load_nls_default +EXPORT_SYMBOL vmlinux 0xc4cc94f4 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e5e02c thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc50ff338 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xc52de0b5 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc54795d3 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xc5492dca commit_creds +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc5582730 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xc55bb59f blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc598104b unload_nls +EXPORT_SYMBOL vmlinux 0xc59ac716 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xc59bc7bb sk_dst_check +EXPORT_SYMBOL vmlinux 0xc5c4347e __lock_page +EXPORT_SYMBOL vmlinux 0xc5eaeab6 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xc6392f49 phy_detach +EXPORT_SYMBOL vmlinux 0xc6436a94 single_release +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc694b0dd jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xc6b086d9 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc72fc917 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xc73b8fb1 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xc7528cd1 __napi_schedule +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc773af5c noop_fsync +EXPORT_SYMBOL vmlinux 0xc77a8cfe pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a90269 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xc7b9ed90 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xc7c06afe vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xc7e2155e nla_put +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc82958f9 km_state_expired +EXPORT_SYMBOL vmlinux 0xc8428040 audit_log_format +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc863e8fb bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xc8755817 eisa_bus_type +EXPORT_SYMBOL vmlinux 0xc8762ee7 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc87fc3bf dm_io +EXPORT_SYMBOL vmlinux 0xc88131a0 fasync_helper +EXPORT_SYMBOL vmlinux 0xc89d23a8 generic_write_sync +EXPORT_SYMBOL vmlinux 0xc8a554d9 simple_rmdir +EXPORT_SYMBOL vmlinux 0xc8b4127b tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b867d9 new_inode +EXPORT_SYMBOL vmlinux 0xc8cb2c22 soft_cursor +EXPORT_SYMBOL vmlinux 0xc8e937f5 mmc_request_done +EXPORT_SYMBOL vmlinux 0xc8e9984a nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xc925deb4 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xc94e53a4 aio_put_req +EXPORT_SYMBOL vmlinux 0xc965fb36 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xc969ff2e bmap +EXPORT_SYMBOL vmlinux 0xc97dfe23 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xc98ab9eb uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xc9948499 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a47766 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9b3ad6a netif_rx_ni +EXPORT_SYMBOL vmlinux 0xc9b7a190 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xc9ea3082 neigh_for_each +EXPORT_SYMBOL vmlinux 0xc9f59523 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xca0af930 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xca0d20ce try_to_release_page +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca6a1014 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xca7f2c6c boot_cpu_data +EXPORT_SYMBOL vmlinux 0xca8727e9 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca8ad0a7 dev_mc_del +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcac4309c thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xcad25f4b generic_file_mmap +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcadfef78 pci_set_mwi +EXPORT_SYMBOL vmlinux 0xcae3ae4d ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xcaf25888 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcb295c5f is_bad_inode +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcbdf40ed simple_write_end +EXPORT_SYMBOL vmlinux 0xcbef2d45 scsi_prep_return +EXPORT_SYMBOL vmlinux 0xcbf23bc9 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xcbfd593e put_page +EXPORT_SYMBOL vmlinux 0xcc213093 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc28ed21 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc4efca7 arp_tbl +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc852416 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xcc8e902c pcim_iounmap +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xccfc7edf udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xcd033624 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xcd2140de dev_close +EXPORT_SYMBOL vmlinux 0xcd2e0087 sg_miter_start +EXPORT_SYMBOL vmlinux 0xcd56c22d __put_cred +EXPORT_SYMBOL vmlinux 0xcd6c0f92 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xcd6d0c32 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xcd773671 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xcd8a1703 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xcdd4ac99 simple_release_fs +EXPORT_SYMBOL vmlinux 0xcde23291 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xcdf27c3d scsi_ioctl +EXPORT_SYMBOL vmlinux 0xcdf6bb6b xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce1f5c8e sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xce292380 input_get_keycode +EXPORT_SYMBOL vmlinux 0xce3011bb nf_reinject +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce383700 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xce3cb7a1 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xce45f7e7 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xce613dcb neigh_seq_next +EXPORT_SYMBOL vmlinux 0xce7dbf88 sock_i_uid +EXPORT_SYMBOL vmlinux 0xce7f5b64 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xceac1764 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xceaf08e7 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xcebfd8fd sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcef260d9 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xcef90e58 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf11359d blk_requeue_request +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf53bdb0 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xcf66382a __serio_register_driver +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf747950 filemap_flush +EXPORT_SYMBOL vmlinux 0xcf7796cf fb_show_logo +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfc9ee66 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xcfcc5908 slow_work_cancel +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xcff1f39b pci_choose_state +EXPORT_SYMBOL vmlinux 0xcff65048 fb_set_var +EXPORT_SYMBOL vmlinux 0xcffa794c dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xd003d043 generic_fillattr +EXPORT_SYMBOL vmlinux 0xd0148c85 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0282521 aio_complete +EXPORT_SYMBOL vmlinux 0xd0408ee7 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xd069f33e dmam_pool_create +EXPORT_SYMBOL vmlinux 0xd06fd9b8 make_EII_client +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd083ea39 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xd099b112 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0c960b0 skb_split +EXPORT_SYMBOL vmlinux 0xd0d7ce9f cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0e235db qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd11ae910 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xd12ff4b1 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd154728e blk_unplug +EXPORT_SYMBOL vmlinux 0xd168905e insert_inode_locked +EXPORT_SYMBOL vmlinux 0xd188e893 nf_register_hook +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1a40994 ppp_input +EXPORT_SYMBOL vmlinux 0xd1ac9800 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xd1bcf08c unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd208c021 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xd20df91b __ht_create_irq +EXPORT_SYMBOL vmlinux 0xd22578cc ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd25fd4dd generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xd2701bb7 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2ce520a ilookup5 +EXPORT_SYMBOL vmlinux 0xd2db9fd3 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2f3270a pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xd2fe50a0 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xd30391a3 tty_devnum +EXPORT_SYMBOL vmlinux 0xd317de1b scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31df156 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xd32f4256 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd34f0557 single_open +EXPORT_SYMBOL vmlinux 0xd35374d5 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xd364a7d4 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xd383107d kobject_add +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd39d6c25 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xd3a0bfa1 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xd3a16572 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xd3a743aa pci_dev_get +EXPORT_SYMBOL vmlinux 0xd3bc395f pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xd3c2660c pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xd3e4852b mb_cache_create +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd4223acf genphy_resume +EXPORT_SYMBOL vmlinux 0xd48215a5 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xd4828430 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xd4b09f74 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xd4b1a2d3 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xd4c414f8 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xd4ee26b3 misc_register +EXPORT_SYMBOL vmlinux 0xd4f1080c lookup_bdev +EXPORT_SYMBOL vmlinux 0xd50e3f07 journal_flush +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd5105963 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xd5183524 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xd519a8f5 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5468b12 sk_reset_txq +EXPORT_SYMBOL vmlinux 0xd54c2411 inet_release +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd56d17ea seq_release +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd572b813 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5d1beda pci_reenable_device +EXPORT_SYMBOL vmlinux 0xd5df5253 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xd60a9afa kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0xd60d5c31 __register_binfmt +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd63273db sock_create_lite +EXPORT_SYMBOL vmlinux 0xd650586e arp_xmit +EXPORT_SYMBOL vmlinux 0xd657190f md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xd65ba617 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xd68c61fe bdput +EXPORT_SYMBOL vmlinux 0xd69ba43f sk_common_release +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6afea37 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6ba944b dma_async_device_register +EXPORT_SYMBOL vmlinux 0xd6bb1481 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xd6c2f4f1 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xd6c5b2e3 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xd6cd1f40 add_disk +EXPORT_SYMBOL vmlinux 0xd6ce144b dev_uc_add +EXPORT_SYMBOL vmlinux 0xd6d70a96 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xd6e7760c tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd70194c2 key_unlink +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd7346136 lock_sock_fast +EXPORT_SYMBOL vmlinux 0xd74d6dae security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xd75a83e4 search_binary_handler +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd782a4aa path_put +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a22699 stop_tty +EXPORT_SYMBOL vmlinux 0xd7b6092d blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7f1fa23 kernel_read +EXPORT_SYMBOL vmlinux 0xd7f36812 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xd80a3b25 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xd81ee6a8 fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd86b22f7 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xd888bba3 ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xd89298b4 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8b6b936 register_gifconf +EXPORT_SYMBOL vmlinux 0xd8c7821a serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd917d14c dget_locked +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd967a716 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xd97e86c2 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99b332a sk_receive_skb +EXPORT_SYMBOL vmlinux 0xd99c7dce pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xd9b4d883 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xd9b6d2a9 pipe_lock +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9c580b6 vfs_fsync +EXPORT_SYMBOL vmlinux 0xd9d536f3 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xd9dae422 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xd9e17a40 d_instantiate +EXPORT_SYMBOL vmlinux 0xd9e4c49f ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xd9f0b58e cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xd9fabf37 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xd9fd1b10 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda75e138 handle_sysrq +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xda99215b phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xda9eb7ef xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdb0bae0e simple_statfs +EXPORT_SYMBOL vmlinux 0xdb6d2e6b skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xdb6e0324 ppp_dev_name +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb93a96f __breadahead +EXPORT_SYMBOL vmlinux 0xdba30c90 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe94dca simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdbfc5b73 bio_map_user +EXPORT_SYMBOL vmlinux 0xdbfeb96c get_write_access +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc18f6d1 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc37efe9 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4f7bc1 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xdc663b51 unregister_snap_client +EXPORT_SYMBOL vmlinux 0xdc985f09 override_creds +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca0ed4e gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xdcb04105 d_alloc_name +EXPORT_SYMBOL vmlinux 0xdcb42ac1 md_integrity_register +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd1144b7 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xdd1306f7 read_cache_page +EXPORT_SYMBOL vmlinux 0xdd2be696 __serio_register_port +EXPORT_SYMBOL vmlinux 0xdd3d0ff3 padata_start +EXPORT_SYMBOL vmlinux 0xdd6a0cb6 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd877b28 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xdda13c6f proto_register +EXPORT_SYMBOL vmlinux 0xddb286bc get_phy_id +EXPORT_SYMBOL vmlinux 0xdddbb950 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xde09d371 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xde17160f ether_setup +EXPORT_SYMBOL vmlinux 0xde3e9302 kthread_bind +EXPORT_SYMBOL vmlinux 0xde427bc9 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xde601103 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9eba68 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xdeb976a1 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xdee3f8b6 lease_modify +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdef02bcd write_cache_pages +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf28614b blk_fetch_request +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf4eae4f ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf7493c9 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xdf7cb2f3 vga_get +EXPORT_SYMBOL vmlinux 0xdf7ed160 __scsi_add_device +EXPORT_SYMBOL vmlinux 0xdf8a8165 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf8e4e58 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xdf905f46 unlock_rename +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfbb8e7d pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfc82914 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xdfed0696 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xdff96171 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xe0496c8d pci_bus_type +EXPORT_SYMBOL vmlinux 0xe05f3f6f dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe07dbf04 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xe08e7283 scsi_print_result +EXPORT_SYMBOL vmlinux 0xe09417be unlock_super +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe0ac166d udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0ad5f54 send_sig +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0c2a85f phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xe0c8cbf7 vfs_link +EXPORT_SYMBOL vmlinux 0xe0ceff5f inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xe0d0e8c1 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xe1005c67 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xe100f362 kobject_init +EXPORT_SYMBOL vmlinux 0xe12a9232 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13b8f97 bio_pair_release +EXPORT_SYMBOL vmlinux 0xe13b9588 key_put +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe15cd5fc put_io_context +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1a7dd4e task_nice +EXPORT_SYMBOL vmlinux 0xe1ad583b __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xe1cfdb1b pipe_to_file +EXPORT_SYMBOL vmlinux 0xe1feb3df acpi_root_dir +EXPORT_SYMBOL vmlinux 0xe21a49d4 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe26c4c60 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xe272782f blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xe276929a mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xe27f38cc skb_free_datagram +EXPORT_SYMBOL vmlinux 0xe28b2074 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xe28ce90a dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0xe2986d49 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xe2b2f0d5 km_report +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe30dfa74 fsync_bdev +EXPORT_SYMBOL vmlinux 0xe31e126e jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xe3815d38 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xe388e7af bdi_unregister +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xe3cce000 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xe3dd91b8 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xe3e1dc79 i2c_del_driver +EXPORT_SYMBOL vmlinux 0xe3e58df9 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe3fdd734 ida_remove +EXPORT_SYMBOL vmlinux 0xe40cfdf6 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xe41751d2 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe450df99 dma_set_mask +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe45b6e70 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0xe45bdcd7 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4863081 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xe4ab766c inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xe4c5732f dma_supported +EXPORT_SYMBOL vmlinux 0xe4c6f98d take_over_console +EXPORT_SYMBOL vmlinux 0xe4dab23f __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xe4e6479d kill_fasync +EXPORT_SYMBOL vmlinux 0xe501824a dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xe5058171 contig_page_data +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe5345ba8 sock_wfree +EXPORT_SYMBOL vmlinux 0xe5455a6a wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe5627d19 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xe5701f68 path_lookup +EXPORT_SYMBOL vmlinux 0xe5766ffc nf_afinfo +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5bb437d blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xe5c06d16 sock_init_data +EXPORT_SYMBOL vmlinux 0xe5c0b0e0 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5c8aeec pcim_enable_device +EXPORT_SYMBOL vmlinux 0xe5cc5ea5 bdi_init +EXPORT_SYMBOL vmlinux 0xe5eba44d tcp_sendpage +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe64658e7 alloc_trdev +EXPORT_SYMBOL vmlinux 0xe659e0c7 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xe66dab3d lock_may_write +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a7bf23 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0xe6ad574c bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xe6afb754 touch_atime +EXPORT_SYMBOL vmlinux 0xe6b43ac9 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f8be65 __blk_end_request +EXPORT_SYMBOL vmlinux 0xe6fb1441 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe715d5fb __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe717e51a dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0xe7444049 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe754ffaf security_file_mmap +EXPORT_SYMBOL vmlinux 0xe771f0f4 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xe7a3a5eb dev_mc_flush +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe81cc92d writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0xe81fe0b1 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xe823e2d2 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xe83028bc tcp_ioctl +EXPORT_SYMBOL vmlinux 0xe8772b4b tty_set_operations +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe8c2b56c con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xe8c8ede2 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xe8cf5a0d keyring_clear +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91aaf82 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xe92505de fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xe955fa64 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xe98d7497 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe998ab6c inet_getname +EXPORT_SYMBOL vmlinux 0xe9b1ad8e d_alloc_root +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea1016fe udp_disconnect +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1a86c2 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea4be244 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7c0160 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xea8127bb skb_checksum +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xeaa98850 key_link +EXPORT_SYMBOL vmlinux 0xeac0df78 dquot_file_open +EXPORT_SYMBOL vmlinux 0xead0b1ed journal_get_create_access +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaebf8cf kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xeb15f529 tty_port_hangup +EXPORT_SYMBOL vmlinux 0xeb385cb2 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xeb4ae310 xfrm_input +EXPORT_SYMBOL vmlinux 0xeb71bf16 vga_put +EXPORT_SYMBOL vmlinux 0xeb7c201f qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xeb808c77 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb99798b xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xeba0a167 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xebb8b763 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xebb8bf65 __pagevec_release +EXPORT_SYMBOL vmlinux 0xebbe0e62 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xebc20cd8 put_disk +EXPORT_SYMBOL vmlinux 0xebc8a4fc qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebda71f7 inet_listen +EXPORT_SYMBOL vmlinux 0xebdbce3c dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xebdc5782 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xebf1792a journal_create +EXPORT_SYMBOL vmlinux 0xec0c19f8 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2504ee genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xec2a8540 open_exec +EXPORT_SYMBOL vmlinux 0xec31763d posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xec3de34a dquot_alloc +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xec869240 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xec8c706f dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0xec9feba7 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xeca88acd free_netdev +EXPORT_SYMBOL vmlinux 0xecd0dc3e skb_append +EXPORT_SYMBOL vmlinux 0xecd63d63 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xece358a2 dma_pool_free +EXPORT_SYMBOL vmlinux 0xecf3e924 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xed090f93 unlock_page +EXPORT_SYMBOL vmlinux 0xed22baab backlight_device_register +EXPORT_SYMBOL vmlinux 0xed2984b9 do_splice_to +EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove +EXPORT_SYMBOL vmlinux 0xed3e4aee mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xed899dd8 __blk_run_queue +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed9b9201 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedb15d02 sk_filter +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc7b8f0 blk_start_request +EXPORT_SYMBOL vmlinux 0xedc9e22a generic_show_options +EXPORT_SYMBOL vmlinux 0xede81631 km_policy_notify +EXPORT_SYMBOL vmlinux 0xee058b3c splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee2e7569 generic_write_end +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xeea1ad9b fb_class +EXPORT_SYMBOL vmlinux 0xeea8043e elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xef12905b arp_send +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef7c6db9 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xef8f7d16 set_bdi_congested +EXPORT_SYMBOL vmlinux 0xef991c3b skb_gso_segment +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefabd626 lock_may_read +EXPORT_SYMBOL vmlinux 0xefb69aea sync_blockdev +EXPORT_SYMBOL vmlinux 0xefb6b138 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xefdbb587 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xefef9164 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xeff14be9 ioremap_cache +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0227f25 console_start +EXPORT_SYMBOL vmlinux 0xf0247ebb vfs_mknod +EXPORT_SYMBOL vmlinux 0xf04dedc7 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xf05e31c7 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0c2ec49 elv_rb_find +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11428c0 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf13568f7 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf190a5cc make_bad_inode +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19b2f0d tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xf1b82245 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xf1ce3ad7 __devm_release_region +EXPORT_SYMBOL vmlinux 0xf1d9121b kobject_set_name +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20bfa8d scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf222d7b2 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xf228f97c security_path_rmdir +EXPORT_SYMBOL vmlinux 0xf22d3186 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf2703386 lookup_one_len +EXPORT_SYMBOL vmlinux 0xf276e289 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a39ddb zero_fill_bio +EXPORT_SYMBOL vmlinux 0xf2b85cc5 tcf_em_register +EXPORT_SYMBOL vmlinux 0xf2c6948d scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xf2dd024f lock_super +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf36bfb7d abx500_register_ops +EXPORT_SYMBOL vmlinux 0xf3718ebd mddev_congested +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf39f5245 mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c1107e jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xf3d27b15 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xf3e077db ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xf3e61324 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xf3e8f651 write_inode_now +EXPORT_SYMBOL vmlinux 0xf3e90755 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xf3ea4ebe __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xf3fb4a49 sync_inode +EXPORT_SYMBOL vmlinux 0xf410e41b dquot_quota_off +EXPORT_SYMBOL vmlinux 0xf42dcd2c elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf44a0224 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xf4735ebb end_page_writeback +EXPORT_SYMBOL vmlinux 0xf486e7fb netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4bc95a6 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xf4c8c935 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xf4d4b1d0 __elv_add_request +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf50e1ee8 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xf5142158 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf52bbfa8 udp_poll +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf55d7318 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xf59c7024 ppp_channel_index +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cbc006 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5d112cd xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xf5d40569 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5ec081a jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xf5f5ab1f dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf60ff313 read_dev_sector +EXPORT_SYMBOL vmlinux 0xf6171088 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xf61c6e0a tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xf63bacaf journal_get_write_access +EXPORT_SYMBOL vmlinux 0xf643daeb input_inject_event +EXPORT_SYMBOL vmlinux 0xf648ba55 dev_addr_add +EXPORT_SYMBOL vmlinux 0xf6734e79 __destroy_inode +EXPORT_SYMBOL vmlinux 0xf674d1e9 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xf67d3425 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xf69ab400 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xf69dc99e textsearch_prepare +EXPORT_SYMBOL vmlinux 0xf6a01fe7 dev_trans_start +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f33b74 fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0xf72a1fee journal_init_inode +EXPORT_SYMBOL vmlinux 0xf72f0896 km_new_mapping +EXPORT_SYMBOL vmlinux 0xf74a4a31 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf7736e50 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0xf77ecfac blk_execute_rq +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7d951b0 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0xf7ff1970 genphy_read_status +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf872a6b9 give_up_console +EXPORT_SYMBOL vmlinux 0xf88bbe40 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0xf88bc4d3 devm_ioremap +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8911210 invalidate_inodes +EXPORT_SYMBOL vmlinux 0xf8a2fee1 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xf904a32d I_BDEV +EXPORT_SYMBOL vmlinux 0xf916a5e3 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xf917f799 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf9502509 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xf96ae8c9 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xf97f9911 journal_restart +EXPORT_SYMBOL vmlinux 0xf99abfb4 set_page_dirty +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xfa1c8fd8 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xfa2a1ba3 module_refcount +EXPORT_SYMBOL vmlinux 0xfa9d44ec bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xfaccb352 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xfaf5424a icmpv6_send +EXPORT_SYMBOL vmlinux 0xfaf54ded fifo_set_limit +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb1def49 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xfb1effaa netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xfb1f216d netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xfb552d15 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0xfb56c993 scsi_free_command +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbdee465 key_task_permission +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbee0219 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc052107 nobh_writepage +EXPORT_SYMBOL vmlinux 0xfc06d6e7 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfc570f5c __bforget +EXPORT_SYMBOL vmlinux 0xfc7138e6 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb9f03d input_close_device +EXPORT_SYMBOL vmlinux 0xfcba09c5 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xfcc1565d put_mnt_ns +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfc18f8 elevator_init +EXPORT_SYMBOL vmlinux 0xfd202db1 genphy_config_advert +EXPORT_SYMBOL vmlinux 0xfd3ac8ea generic_permission +EXPORT_SYMBOL vmlinux 0xfd415cf3 bd_claim +EXPORT_SYMBOL vmlinux 0xfd66e4d1 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd8b315b nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfde7e6ae submit_bh +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe45a60f netif_rx +EXPORT_SYMBOL vmlinux 0xfe4a6c76 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe78836d sk_alloc +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe934562 tty_register_driver +EXPORT_SYMBOL vmlinux 0xfe961dfa path_get +EXPORT_SYMBOL vmlinux 0xfe97eaf1 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xfe9a014a tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xfea209d2 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xfeb66f97 elv_register_queue +EXPORT_SYMBOL vmlinux 0xfec09056 iget5_locked +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff315672 generic_unplug_device +EXPORT_SYMBOL vmlinux 0xff443b55 ilookup +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff4922e8 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xff4daa93 file_fsync +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff8e9fea mmc_card_sleep +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xff9d150d tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xffbb8f74 ip_dev_find +EXPORT_SYMBOL vmlinux 0xffc4ddc6 kthread_stop +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL vmlinux 0xfff24b1b ipv4_specific +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x018fd4ff kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0238dca1 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0381911c kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0471ad42 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0605c310 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f863d0a kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12734105 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12f2884e kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18a99be5 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1a7af8a6 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1b19991a kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1f5c8cb3 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x23d27303 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x250d85d6 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a079f07 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c3625b1 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f273ce1 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3ade7891 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x444cd685 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x449ccbe5 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x46b174cc kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48ec3329 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x49d8e931 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x52eddaf2 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5524eda7 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56280dc1 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x599086dd kvm_handle_fault_on_reboot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59c11be1 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64bc0b43 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64e56a2d kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x73594ceb kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x774edd8c kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x77645af5 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x777fc7a1 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x78b8ad55 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x78f8a37f kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x83f6a7ba gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x854679d6 kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8580db55 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x873c832c kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8877126e kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8b327f87 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8b6d3bf4 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ee1b995 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x98d4087e gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99dfbc7c kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa81cce37 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa93b6f16 emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9a58a1e kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaa528ac1 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab64d07c kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb05fd932 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb34caf31 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb543bd8f kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb9c3254b is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbfbf180b emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc528333c kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xca40c4d8 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcccf2ead kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcedaca3d kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd4c7289b kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd649db41 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd985eb97 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdb0c974d kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdcb1a1a9 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe083928c kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe3626e9f load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe99b736d kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec93018b kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf1930c7f kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf8a0d804 kvm_read_guest +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0xe3fd4fc4 crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xc8371491 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x8bb8696a async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x95518588 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xa16ff455 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xee2d74e3 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x04462bad async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x25bd79c2 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2ff3a1a8 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd62493eb __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x806c147f async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xfdfa36dc async_xor_val +EXPORT_SYMBOL_GPL crypto/cryptd 0x09b57931 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x13e356ea cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x4c2c2b69 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xa8d51149 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xbf91121a cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xd77d03eb cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xe544ebd4 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xa36cd13f twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x165823a1 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x16b6e624 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x18d108ce ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1d026d68 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1dd6ac6b ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6d844ea7 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x89809dac ahci_sht +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8f822064 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9782a7e1 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa154eb8d ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa98e03b2 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb2009907 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbe9e9d11 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x02f2ea14 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x347ebfe1 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x704355ca btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x713f6d3a btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9b317432 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa82aa065 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb82fdbd4 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xce4121a1 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x44f690d6 agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xcbb47cbe agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0xc7903682 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x00d47217 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0d6310a5 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1635ee21 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1802f3ae tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1fc68ce6 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3b671364 tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3f8bec9d tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x65a605ea tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x692a2350 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x76a9ba00 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8219d4bf tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9d08fb96 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9d458dce tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaed93c1e tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaefda5b4 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd22cda79 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd8a9ca85 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdcdc3b82 tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe7d90492 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xee0db1dc tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf5f9b276 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf99151e0 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfdb684ed tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x7f691a4a tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xe07f12db tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/dca/dca 0x05482d1d dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x356a6e46 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x42848840 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5cc892c9 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x76493031 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xa4ada03c dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xce28e0b4 free_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x03e27ea5 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c40a69b edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c43a6ff edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x111e29f7 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x16033f9b edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x16c75005 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3ae4bc6e edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x43f0af31 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x451382ee edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4bc9195e edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x57ea6f49 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5bcc80cc edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6530ce6e edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x71585c51 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x75efc8ac edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8fbc51c9 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9cb8d34b edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb870f60e edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc083923a edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd35f4a58 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd57f5a19 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdda6d106 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe681489a edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf98e4c1d edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x81387a04 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xc8a425c7 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x04b4ebbc drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xbfd4963e drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x067cb76b hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x08c1ee27 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x114a6851 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1e4164ad hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x247a47c3 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x31dfbe56 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x419346fe hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x51f705e6 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7523cc55 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x807796fc hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8158635e hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x861c3348 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x88f7aed6 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8fc19d87 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9d5f815f hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9e80adb9 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaa78d76e hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaad922c2 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb8487df1 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc545e667 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc6413bbe hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc7579634 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdcafe6dd hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdcfdafc2 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd097edd hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfe4ff108 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x1f70503f roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0ae8c371 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x34874cbe usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xdb7a69e2 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe8ea459a usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x9479438d lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xb54095de lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xc86112a7 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xd6067245 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xf233d71c lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x6fe822bc nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x254aef85 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x817ad2e9 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xade10cea hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xe242943a hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x085558c1 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2acafd48 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2cc6d158 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3774e012 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x39024dc0 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3c1a7c44 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x54df8c80 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x76db4595 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x85913834 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x86479093 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd8ab490a wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe660fdd6 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfd22e6a8 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x08dd6054 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0e1878b2 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x25538c43 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5074f6e2 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x58446424 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5a1da2af gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5aaec71c gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8a6e2a87 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb01fab20 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb130eee0 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc737af04 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc88f523a gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcefdcfd7 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xda6ff986 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdbe5f94d gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdcb8b927 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf6361145 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x05ab83de led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x1ab29f1f led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x2c80ab4b led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x86c235f6 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x3589d76a ir_input_init +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x8907191a ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf3d9f190 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x0dce9ab6 ir_repeat +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x26445fd0 ir_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x432c553e __ir_input_register +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x5ca04429 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9fde4e3f ir_input_unregister +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xa1574b78 ir_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xa55a1faf ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xc6320f0c ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x3307190f saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x37863c90 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x482e0066 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4a83c110 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7fb57e9b saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x92be484b saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb78abb1a saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd94c7fdc saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdd03192b saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xde3d6315 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf7ec1b3c saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x25fef687 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x45810421 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4e3771d4 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8fea1906 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x9f0427a2 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xd865d332 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xdd9594ae saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xb803ad63 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xf39f9dac mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x4b4cbd90 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x220cbe4b tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x1f56fdcf tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xe01cfa77 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x6e0e67a9 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xbcac9a8f tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xf1da7997 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xac86e853 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xfabbbbd3 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xef7db1f8 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0150aebf mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0b4c1d2e mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x20f1b6e7 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x339302dc mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3faaf744 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3fb67785 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3fc0cc85 gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x506ea1c2 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x591f863d mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x607c5183 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x62fcaa9b mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x64d8d7d7 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x90af5a36 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbd30cd8b mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc41603ef mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcbc1fa64 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd4863b06 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x007d87b5 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x052a74eb sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x12af29c1 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1592a2fe smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x199c1244 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1bceb58b smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x35106428 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4684b5b5 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4c2a01d8 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x50124ce2 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x593ac126 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5b3aa01c smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5c768745 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x970b720e smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa68b2d0a smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xab8f5ecf smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc02eb2af smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcd346be0 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe44e7893 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x18fbf9f8 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x2e065d22 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x576601cb ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x5880928f ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x69cc9449 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7e4886bd ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xf2ddb0ef ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x455c1707 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5518f5d9 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x55b54780 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x710fa43a cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9df93421 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb0f036a1 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xba09e4da cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd7b5c11d cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe3140b5f cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe6dd6898 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf124eefc cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x6e25cab4 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x15d9e05e em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x54a66f41 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x6fb618f7 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x83e7632a em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd935ee0d em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xdc97dabc em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x1c0d1ef9 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x8a5ae7dc saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x93f064a4 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xbcac0e4e saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xe2f3a898 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x03eb5d45 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x3cc32575 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x610c2272 v4l2_i2c_new_subdev_cfg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x7bd9f2e7 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x82e42b62 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xe43dcd9b v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x6ddc98fe v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x7e3b2d88 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xbd43279c v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc17974e4 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x046762b2 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x06361ce7 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0abe3b2e v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x18ed96f2 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x26855ec7 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x70b804b2 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7fe065d8 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x84de7601 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x942fb520 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb230fcf0 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb5339034 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd3599df1 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd8a9d6a4 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf951cbd5 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0e3768ec videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x17e0b86f videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1a28fe62 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x20095716 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x20caa3c0 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x25d2306e videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4a16d0b3 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4e8d43bb videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5b50dc94 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5b67a971 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x65a03b0c videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x794fb754 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7ba5fc9e videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8d805046 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9322dfbc videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9a89aeb4 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb0b74cf3 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb49469bb videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbebd4bf4 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc1f5f8fe videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc399568f videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd64005dd __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd7124170 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf68ef532 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfc44de33 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x0e4d4526 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x934977e9 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xc7f1d276 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x32d9c15b videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3c5a595a videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x49f62d2c videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x67960e15 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x699fa8e9 videobuf_sg_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x69f8f8eb videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa074b16a videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc2bd9971 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdc52c116 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe7a0b031 videobuf_sg_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe7aeedad videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe8a24336 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x3a5cfe60 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x721c45cc videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xa2cf6782 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0c3ad5e2 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1932816a v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2c57978b v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3b34b70f v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4722cd87 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x7b29ceae v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x83ea79e3 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x932234f7 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x94d92184 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa016d304 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xaab3059c v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb1581652 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb949828e v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbb1bdb1b v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xea878675 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xea9ef6ec v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xead4d2ff v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf2120720 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0b36a0bd i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3648426c i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3a2d5707 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3c25cf97 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6eedbb3e i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x76a4147f i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x87ee2d10 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf5614c71 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x21f568da mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2b5dd1a6 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4b2ea6b3 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8d96e9b7 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x997a0292 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xae9f5d9d pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xaf08cb5f pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc6d43233 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc81c3632 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd84c79dd pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe4995c5f pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe8cce51e pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x26fe4e71 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x317bbdd4 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x310a316b pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x6d1633ed pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7b024510 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x85844b0b pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xaf3c59bd pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x0e8619d5 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x55735017 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xae4a6f2c sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc8021797 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf912278a sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xa0610561 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x0cde554e wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x36f1dbcb wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x53f10537 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xbf8e31b1 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xa747afdd cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xa8f6c9b5 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xd7dc5f4a cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xd9572090 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00b7f46a enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x1bdb3c45 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3701e188 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x55bd514c enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x612ff8f6 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8fb78b36 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfce5bbdc enclosure_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0a621b20 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5ff9ea5d sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x608935db sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x75d841fd sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x91641436 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb7961301 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xaf5e7b88 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xd034937e cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xf92e68dd cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x29016d8f cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x7b349ac9 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x8433aea2 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x4fed7e85 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x171b2b58 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x916825a4 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xa7328d4a cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xee1ea717 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x825ac0ee DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xe4bf1d1b DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0234712e add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x05b12fac kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0a6f1796 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0a7523a9 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0cd9f7c0 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x11cfc0ea get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2e2a26e9 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x31b1116d register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x53190904 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x53c54f9e __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5a5e3bbb mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x83af7866 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b21c5a3 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x94068144 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x95486126 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb5689098 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc3a648ff __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcaa2534f default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x1cd4b225 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xc968a669 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd5adc05e del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf2d8c1fd register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x17a6698e nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x26af8fe1 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x287ba76b nand_unlock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x4dd05af1 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x7a1fdf17 nand_lock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9b91cbde nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc951e37a nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xc9688434 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x4c41b778 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xb21b2601 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x085d8431 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0f0be2cb ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1d820435 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1f52ec9a ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5ac08971 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5e18de5b ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6c1abf99 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8f54edf8 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x901e251d ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x96d52c39 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x96e5e59b ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xce61f71e ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd7cb7c26 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0acfa6b9 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x15123630 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x43581ffe can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x44016bde can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x476462f7 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x54cfac4c free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x63880bda can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7b35b4f2 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa990b876 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbe80e19f close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe14d1ed5 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfa51f73a alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x23c3aa86 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x8c40ee05 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc0a17993 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xee73e7c4 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x655da66d macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x74e57e5e macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x9ae237f8 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xaa76aba4 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf41ed729 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0876fa2b mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0a243188 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1211376d mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x162a5138 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x183edbb3 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x20934b40 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x26e92006 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x372ffe76 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x38508713 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3c18a6c7 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4bff12e1 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x56c9e1a1 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x56cef542 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x597e4608 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x59b544df mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5c7ac405 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6426ce36 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x68a9d2dd mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x69790cd9 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7a26d522 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7a3f130f mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x811d1679 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x82cc3265 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x881fc98e mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8a42fcfb mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8ce21153 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x90cdf87f mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x91ccf68f mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x964361c0 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x98010538 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x99b2f0c8 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa144517c mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa1d6641c mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa7a55c6d mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbf174ca7 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbfe1d73f mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcb7e937d mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcb85501c mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd58133e3 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd583cb6c mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd6372634 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe25f5a2b __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe703657e mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeb7c24fa mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeb8a5883 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeffabb0a mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf3f24383 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf73666c7 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf9595e0a mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfa083270 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfa87014c mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfd296ed5 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfe319062 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x72956038 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7cae799b usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1f94bd57 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4a5d9c00 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8c2f3e8f rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc22cb034 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfba3606a rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfc8399b2 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x08d8d41f usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0933c670 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x10da9ce3 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x123a9efd usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x177990d6 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1e679563 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1f944226 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x241c525d usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x38322af1 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x39f7ec6e usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x40989d21 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x599a7f78 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x71257910 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fcbb9a3 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8a2fb3ab usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8eaa7eef usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa89ef7b9 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb20e4e2a usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5ef4ea9 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcd12c5ae usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd633848e usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd73cd082 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdb2276c7 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe28c5eac usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0083f919 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x11109df5 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x305650ea i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3f8db44e i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4094bf11 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x40dabd2e i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5d25e56d i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x78383d43 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7aa89f75 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x880347c0 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9538d3f7 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9836478c i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa768856f i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xab2dc001 i2400m_cmd_get_state +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb0c9c8bd i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcd7f3bce i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe3932fbd i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe8005f69 i2400m_set_init_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x16510c28 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x49d07f36 iwl_alloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x9d315182 iwl_dealloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xafdf88db iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0078cee6 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0505f736 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x184d6502 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1b9fbe08 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1e67e5e2 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x20a1a86d lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x31d711ee lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xad4fe689 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd0ccd567 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdad056a0 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdcc2a74c lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe6c3e6db lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xeabf9012 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf6d61277 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x18f7bab7 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x2024227d lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3573edf0 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8cb2c65a lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa0c4cacc lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb3e493ed lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xca300f25 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdf8f45e2 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x1472cfc1 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x4ec9a322 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1ce031ee p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4ad5bc4b p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x50fc9537 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5ba1d085 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6a67a4a2 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x81510bfa p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb59b40ff p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe6c3b91f p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfeb43144 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0702cf5b rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2241def8 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2a935641 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2c15335f rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x32496b76 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x41004955 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5157029b rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5ed7fba8 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x62882611 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x86c32898 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8c0f5e54 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x94f5be3a rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa9e0da03 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaacc4293 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaff1820f rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb5a03a91 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc342298 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc446ed8e rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd11224a rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdddbe4da rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe40d2129 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe793bf82 rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe9b456bf rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xef327967 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x03595784 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0b57cb83 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0ccd25bf rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x19e17fdd rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1b5c0e91 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3f85d561 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x424c78b9 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x49f52819 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5759e02d rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x59d0bb1a rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5aa6480e rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5fdcebf1 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x64217f16 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x66088583 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x68d89e98 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7b8d0109 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x86a71c66 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa295498e rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaa08ca15 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xab8e97ad rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3f1c3ef rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe8d3027c rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea990778 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0f612a70 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x13db8973 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x17ffc348 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x23f8d868 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x482b1b92 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7ba967c2 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb980af2c rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xce3de85c rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf1b56b18 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x034ee3af rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x04537324 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0755c4cd rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2d238a7b rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5819c74c rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6af4aaa0 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x75c1cd48 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x898b3edf rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8b64f54f rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x903b8aa3 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa399570f rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xafa5ddab rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xafea7ddf rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcffa0d15 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd35d0eb6 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd5d6f98c rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x831ab001 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xe0d4228c wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xf922d7d1 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x7fe38280 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x93ac9071 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xe2495fca wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xf3967852 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xf65b5ae3 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xdc60caa3 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xe4e85e42 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x3f106fbd pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x410c03cf pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xff91cc22 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x2b2f71bd wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x5766eea2 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x5dfbdba8 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8d548a44 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe97834c7 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xeca203dc wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x94752b2b wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbcc1c2df fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x02c8262e iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x04c890c0 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x13f6bcc7 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16082aea iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x198fccc0 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2153df1d iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x241673a7 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x27b3e38f iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x29f9bb2a iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x367edfbf iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b7cd740 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c0b3175 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3cb6b6d4 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4476930b iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x45cce8c5 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x493243a8 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f808112 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ff209fe iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d98d4c9 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x64e8a5fd iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x71a7b058 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x768813b2 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x89eefe0f iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8ceb3454 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x92f204f3 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9c36c6f7 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbc61c511 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbd9ae5e5 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc8ae9693 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc921a261 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc940e503 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc9b5317e iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcb2931b4 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdb5bb942 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe1468e6f iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xea3c8f61 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xea926cb7 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xed65e72f iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf2aa89e5 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9831363 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfcdddf63 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfdb12a4f iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0959222f iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x15d23d61 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x249d3fdc iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x324ee10f iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x46f1f1f6 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5e39b600 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5f05bbe3 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7cd2f9ab iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7eb24a7a iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x815d74d5 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8ad96df9 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8e32dd82 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc89d5bfe iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd01143ba iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd0ac4d88 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd416aacc iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0a6b1b49 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0c36c4b0 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0e94c6c8 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x192b1b5f sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1bb4e2ec sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1c819be1 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3ea71f89 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x40dc4155 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e714daf sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x62e0a1ed sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x70034143 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x79e57e72 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7ae1304b sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x87c6562b sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbe8d5eca sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc187ae80 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc7e13f5b sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcf985ca6 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd6f455b8 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdc0594d4 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe021cd94 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe186c491 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfb8c496e sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x370dcd31 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7b0b7c8d srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x89b88e4c srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x954a356a srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9a0fd2e5 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xbd162830 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x07c29da5 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0c62ed4f scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2f9e87ed scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x40021918 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7d0952de scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x934bc66a scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc7c9ff89 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xca98f88f scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xcfa2f67a scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0a188ffd iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0b84094f iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x19f63b3f iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x21af9005 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2342bfe3 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x35481cf5 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x41578675 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4a698f95 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x78fd987b iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x87137d51 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8a007eb3 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x97c921b2 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa3a1f0a8 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa4be72e0 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaf1c95a1 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb913cfdf iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc2c1868 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbdfa9e4a iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xca045a76 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe5ba428d iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe65ff1ff iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xecfed58a iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x026aa1d2 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x0a26e27b sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x0c9e600f sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x99dc526d sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x48ea8e0d srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xea2ee229 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf11ef7e3 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf19b19ae srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xfe32566a srp_rport_add +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x31cc1bb3 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x404a5f30 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x42c0bdd7 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x4c509da9 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd19cf7bf spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xe61d1f89 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x003e8fdf comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x17f28115 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb95ec843 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xef5d585d comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfa9def3f comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x1363e1e3 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xb954c477 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x1b508a36 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x31badab4 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x2b3a3f8b ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x477e0d4f ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x497dbbe8 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x598115df ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x6e1ba320 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x73743418 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd9e8157d ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xe4642907 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x05e1f66e ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x099a5dde ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x49a2f7f8 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x54f0e73e ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x8e90d6d3 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xc64d0f2f ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x2f9a22ec st_register +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x143cf1a7 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x995a003e tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xb73b9359 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0a1f4905 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x184b899b usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x1f1be46c sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x35e2ba42 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x360b63c6 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3d563ac9 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x41f95d0d usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x486b0a65 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x542759d2 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x689e9f0e usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x85a070fa usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xac922ffc usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbc6f0616 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd7dfd3d3 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xfeee0c9e usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/uio/uio 0x290eab32 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xb0737a91 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc80bf209 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x2fa6ae08 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x4f41e264 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x01410b48 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x093d717e usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2bb0ab20 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x556af276 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8549e642 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8e55ef0d usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9b4cd98d ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9c1c4782 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xc9f7d527 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0c35094f usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x341e469d usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x34e3fe2e ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5653cc4d usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x57b6ccd6 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6c1324c0 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x82e18e5d usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8919c6a7 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa6c66c76 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa6dc8b4a usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa9a24f72 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xba3fac7f usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc13e22e6 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc9da67b8 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcccfbe01 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xde4b0361 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe02c457e usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xebb8adce usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfd962580 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x038c9b5f usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2597b86b usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5a7c1671 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5b905b3a usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x744aa0e8 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x887a95db usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x928bda87 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9aab574f usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9cc4aa3a usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9e461d36 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa06ee872 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa3744083 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa59667ae usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa89e5e0b usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc3428d86 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd4e8f147 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdae00138 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe6531e88 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xedd3cdf9 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf4b73169 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf55d0fc8 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfb4ecd89 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xffb91538 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x13338fdc wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x811f9cc6 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc68afe01 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf47e2f11 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf9ebe662 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x020db141 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x04bb5d84 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0be91521 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3e714a53 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6083b5ad wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x76984fb9 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x82633dec wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8b997155 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9621c8ba wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9c644687 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xbaed4bf1 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcccc3cb5 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe215fa9c wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xee4a2e80 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf48d4640 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf5ca6077 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x9b505eac i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xae9d9440 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xb0af341b i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x0acb8960 uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x2a01330e uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x5930debb uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x7a3c415d uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x8033335d uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x81995f60 uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x81cd906a uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xb68c2ffe uwb_pca_base_priority_store +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x02b94d5d umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x18080f0f umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x4a0969bc umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x85682f30 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xacd3cfa3 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb222e037 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd537c4fa umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xee0d9e59 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0730ceaa uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0ac206fb uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0e6acac4 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x17235aca uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1c39a9dd uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e57ee43 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x305f6c21 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x31309faa uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x34696433 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3a4a83c1 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3c329ef9 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47fe4173 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6de37074 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6e2f1308 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f66a596 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x77ef3861 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x807f7f07 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x860f437f uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c769e3f uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8df56f3c uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8ffebf48 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x97a1c132 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa1541676 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb2c59bd5 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb63c6867 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbbd040e2 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc23ae031 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xceafb46c uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xceb95908 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd7e9f8b8 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xda617eba uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xef202c42 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf0cb37bb uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf1bf9230 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf33bcf6a uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfa2ecf22 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfaaac10e uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x7af3af58 whci_wait_for +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x058a11ea wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1a04e3e1 wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x21879ce4 wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x21fbe3a6 wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x22a7caf5 wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x27eeaa0d wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2de1dfda wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x35cb7dfe wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3607d996 wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x36874e56 wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3edc1e9e wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x421112dd wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x43d64800 wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5794a5ed wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5c98c501 wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x63b3044b wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x695ae542 wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x71f07e9f wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x759ae6d3 wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x80e5e832 wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8165ec7d wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x863eb9b8 wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x89a3e7f8 wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8c600144 wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x95393ba5 wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x975e8b20 wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb55787e4 wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc5045d14 wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc8f318a0 wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe46fab54 wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xeb30bffd wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xfb5b8d5e wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1bce5a23 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1c1c9d61 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x318712c8 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3f404a7c ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x941c73b3 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xad760c42 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xca5f6cb1 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x66dbb207 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x2431eb1f fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x9dab1a0c fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x51ee2eb1 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xab86f891 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x557efa1c viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xf425119a viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x06a15650 register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x1c195df7 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x2e77314d register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xc24cbf27 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xdea7d3ad unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x09eb44fa vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x15cfcbda vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x61bad0fd vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x892e4d19 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x999beddb virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xbec21a2e virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xcfd80387 virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd6e468f6 virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xfe06f584 virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/w1/wire 0x09133bf5 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0d0369fb w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x151cddbb w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x19070481 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2f554335 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x4c77efc9 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdb06a093 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdc44fbb4 w1_read_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x476bfcee dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xa1814e8b dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xe1ded9b6 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x473b165b exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x52804f83 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x0c1ccf25 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x2d63e2bd fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x33d77a32 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x4fb157ff fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x5af261a8 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x6c1e09b9 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x70d704d0 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x83846a08 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x8968aaaf fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x89db3b0b fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xa75173d4 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xac12b1f5 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xba48698f fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xc2f5c2c7 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xc39d88c4 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xcb8b2752 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xdbb1e614 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xfc8545f1 fat_attach +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x06473067 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x436eea02 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x98844722 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb60f2bb1 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xd75c70a1 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xace003a0 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xb279ba88 nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x18415c15 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5212eaf4 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x59c4ec2c o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5d6273f3 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6d27d056 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x840d76e3 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfc0b4ec o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x15957ceb dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7b59becd dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc5cef5ac dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc6a002eb dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd99ee13d dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe956067f dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0b2c61ca ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe249bcdf ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xf93abd5f ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x528baac9 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x7b52d86c garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x927ed232 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xb03c672f garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xe6e9c59a garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xe91d1356 garp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x2ba1b24a stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x50d88116 stp_proto_register +EXPORT_SYMBOL_GPL net/ax25/ax25 0x09206fa3 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xb3e11a90 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0b9c3d4c dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0cee037d dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x13761a00 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x18882693 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x21370d86 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x23f4d86b dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a6644c7 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x34ecd150 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x499c50e5 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4a793a52 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4a8d41e2 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4d559b0a dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ef37531 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5d3ce22c dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6316d9c8 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d5cf2b5 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7888de1b dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8fdd5f43 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x98fb4c64 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9c5129ea dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa11a5fdc dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa57036bd dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa65868a2 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb3bdd3c1 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb7746f6a dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbd1a91a3 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb0797e0 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcdd7d328 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf765b8d dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd3f4f257 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf84892d dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe84880c4 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xee98756f dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5990270a dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5ddf1b1e dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x64c84696 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7523f55d dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7e588c20 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x94e94543 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xf6a524f7 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x8cf354e9 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x831625f5 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x2891e66f nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5b77ea2e nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x60ed4497 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x61fbc04a nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x78921d74 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbfbda001 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc5c51333 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xff8a27af nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x1ff23d10 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x4d0b3f54 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xbeefbd0c tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc7f6152b tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf181193d tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x5611bec4 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x14914b09 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2441036b l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3fae20ba l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x40309994 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x43cc7c3c l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4b52f1bc l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x50d2417e l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x59797c91 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6743dc04 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6b7070e5 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x88c2312d l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9126fe63 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9eec1575 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbb2e2cc3 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcc86b8d5 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe3e6c685 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf51b88cf l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x290bb8bb ieee80211_find_sta_by_hw +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x70694c4d ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe77a3235 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0120dd33 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x09c60601 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a17d328 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0aabbff1 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e16ca0f nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x115d9882 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13b85c20 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1448d7de nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15a591c7 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1b1f56e5 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1cbf23d5 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d8163ca nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x211254b3 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x223c5b7e nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2793f345 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b6c6d69 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f22e15d nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35e25bf8 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ac599db nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42335c98 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x461a93e5 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47b400ed nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x480a6ed7 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x48590e4a nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4aa2f24c nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c585d49 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x51ad767d nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x52b64ac8 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b77c3c4 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6458be74 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a722002 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c81cdb2 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6cb3f3de nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x719cc736 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72e9d411 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x86874a07 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a8d98b4 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c2b5431 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93cf756f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x99e556cc nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa954d90a nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9d1db43 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa246cb8 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5e65704 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb8398da9 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc70b7dc3 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7917a89 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7de6f8b __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca1fc9be nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd838556a seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd925d07e __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdbaecbd9 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3bbe64a __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe998a95b nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeabdcef2 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeb761cef __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef06d3e8 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef7742ca nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf8b1d3cd nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa0efb3f __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffdbce54 nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x1ff4e7ee nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xfdd62ab9 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x22e6b406 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3f6337ef set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x52018308 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x77fed836 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7fb0e1bf nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa0887aac set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb13e4f14 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbab35d27 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcada861c set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfa961059 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x4796c5ef nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x37f6348e nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x490219a0 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xba863280 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xced23ca6 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x59a9a333 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x969f6ae0 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x004311a8 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x24a443bd ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x25fb4bf6 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4adf2af7 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4b153f21 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x63b88886 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6855faba nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6b70d18d nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9d67d3e6 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb25c994e ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb4c1113b ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc4c5ca76 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe8a8221c nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xdf132460 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x70f713d0 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xbfeda678 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x28c3637e nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6e648b14 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa890119c nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc2262d63 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd604d371 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf02b213d nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x41b74f7d nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0ba476f1 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x24cebc1c xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x282d9f74 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5c05d66d xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6f625fed xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7e296df3 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8cc5b722 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc3d87ca8 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd69f6470 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe504bdf4 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf215c212 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf4884006 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfa2e2d0d xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x0b6ad61f rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x189c8484 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x1952009a rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2c7a42ce rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x363cc9e0 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x3e895b33 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x3f613610 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x45e75cc3 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x6251a04a rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x656040a4 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x6c6a3168 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7e7c4626 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x84683b6c rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x9275debe rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x93bb389a rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xa63e8559 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xc12356c5 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xdae786f7 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xdf7de435 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xe54f6af6 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xf4a8078f rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0xfbb4f267 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x0a9bf3af rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xdb4a6b99 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00be0c79 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0158ec46 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0bb79c02 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x34c39ad8 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3f9ff898 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x69ef99de gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x73c91b57 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x93fa1294 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb208400e gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc318a3ea gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd1b40df9 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x007e0d2c rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0584cbb7 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06080353 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cbb8b37 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d8195f8 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ff079d5 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0fff73f7 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x103f0425 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x109835b9 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10cd70f1 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15e456f7 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16347d49 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1823e081 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f69cdd8 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2043d6af rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21cb7704 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x243b0f74 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26fb2b1a svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29e96ebc rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c9e6f47 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2dbfbecd rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2df35df5 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2df6d644 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31b6373c svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32c6f995 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32cac8ec xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x342af229 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34e36dd7 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35f6a8b3 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x373e3ae3 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3792be35 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37ef35b1 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3852c94c svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x386237a1 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d2b55cc xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f79ee57 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x440e65fd rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4741476f rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f322b02 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f648eea rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x524659bb xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5737a202 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5793d152 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x592d1126 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59760db8 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5992373d svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b56c181 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c04fa47 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c349e1e xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ee0a5cc xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x602a770a xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x614b3bb9 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64efcc75 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66e01060 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66f33680 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68cf85bf rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b4db043 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ba013c5 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c32b677 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f358631 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71b274d9 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x721861c7 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x744232c5 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7779091b svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77e31da0 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78e03a8d cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79e5fda1 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b13203d sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dc747d6 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e5190d0 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f0e7481 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f1eeb4e xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80133acd rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x828bdb84 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8461523d xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87d3d90e csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89a73eee svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c0ea937 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94c457ce xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95b3d016 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x974ad9bd xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97ff28af svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a012b52 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eadbe8f rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9feee8cf xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa29bc17a rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4b04857 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa807a3bb rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabd2f67f rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac3b6734 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac428b24 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaeb3bb8c xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaed523d1 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf1d23e5 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0b68df6 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2aeec54 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4a54d84 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb61d2b84 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb620a2fd xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb705aa12 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaede58c rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd80afe3 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf0405be cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc385b66a put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc99bc67c svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb03f874 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc25173e rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd4dc107 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd101b105 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1daed93 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1f7afce svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd336b3db xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3ec761f xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4437f68 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9ca848b read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda40ba7d svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd0ea670 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0656d7f xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1074993 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ec2c7b rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe63d5789 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe63f8dfa cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb037b80 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef1ded24 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf058e892 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf222f9f7 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7834ee3 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf931a727 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb04fe13 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbcbc68b xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc0f2b25 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe3b6402 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe59c869 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff28a81a svc_recv +EXPORT_SYMBOL_GPL net/wimax/wimax 0x26226315 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3e9555d8 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x58e91d1a wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x65e691ed wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x92c98368 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa2d0835c wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xaaa77f0f wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xabe4c37e wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xae896acf wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc99957c7 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd37fd57e wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xde247119 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf652b0f7 wimax_dev_add +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x061a3d05 cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0a005f8a cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0bf36127 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x13a6ce6c cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1a7eca44 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1fe40cb1 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x23ccccc9 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x27073019 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x376ee7e2 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4ab8a3a4 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x551dbdf2 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5c5c3193 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6a631f83 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x72e76a05 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x83201389 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x86eda7bd cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x89a831ea cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9ca659e6 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa0008321 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa33d9d8a cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa6371a6d cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xacb4e0ac cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xae9cca2c cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc39e0372 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc7a764c9 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd3168cbc cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xddd6c767 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe1701da0 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe7de3586 cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf2163b46 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf6ddc796 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf812e38f cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x0709c004 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x7bd12498 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x871719fc ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xdcffaa25 ipcomp_destroy +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0a0078dc snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x1b9cc0b0 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x391ddab9 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x86b86ba1 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa3517698 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbbe12894 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00b161ca snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00e7c577 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0146661b snd_hda_eld_proc_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01fbe08c snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04244ea8 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x046c360d snd_hdmi_show_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x082314b0 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a2040c0 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d06e201 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e19caa0 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19730610 snd_hdmi_get_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b88b681 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1daba3b7 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ee66af6 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x201f6c30 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22b08b5a snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x283be7b2 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x291a88a0 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c263af3 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2dd3381c snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e7e5acd snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x336d1b38 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x37fadeed snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3860e427 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a4aa2c9 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4140aa71 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x445384ef snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x481b8fd6 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c988282 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5170aede snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d38d709 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ce7ec4e snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d486890 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6dfabdaa query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f28484d snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70148f9c snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71141bbb snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7146b317 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78454c04 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78effe55 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e9fd9ef snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84ce96f3 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x85ca7359 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x866751b2 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87b4e775 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x890323af snd_hda_eld_proc_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d3c051c snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x92218f66 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9227771b snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9422f50f snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x971b1abb snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x997adbc8 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b61c0af snd_hdmi_get_eld_size +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9daef5bf snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9fc49ff2 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7216556 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa802a67f snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa842ab50 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaeb5a5fb snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb46a0970 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4a701b7 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb90a18b7 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb93c0464 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9857837 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbb7a4b7 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf036f94 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc579835e snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca2eae1a snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca9903d0 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb6946d6 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce76327d snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5e9931c snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6ac347e snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd871a91f snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd985f92f snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc5eb70e snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde679864 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe19fceb3 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe306c578 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe408631a snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe42c4fe5 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb692e77 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec9b85b8 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xedd0d000 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2ccb176 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4e1e9dd snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbaae42b snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfdfaed94 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x035e0ebc ad1836_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x963c09b3 soc_codec_dev_ad1836 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x407a0c5d soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xfaa6653e ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x4c8df6e3 soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x9d2d0c83 ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x2d28ea3c ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x2dbbad8c soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0xb01eda60 soc_codec_device_ak4104 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x76cdbf08 soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xa5537701 ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x2e7690a4 soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xf37e7ed4 ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x071d7d3e soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x440216e7 ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x6701b365 cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xbb9237d0 soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x21ead18b soc_codec_dev_da7210 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x373cfecc da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xfa22918a max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x569bacd9 soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x826af38d pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0xc5eff2cf dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x2b8ddb14 ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x5d2ea912 soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x0849d72c soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xf41c8855 tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x876dc6de aic26_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x94e81290 aic26_soc_codec_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x1448a676 aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x485382aa soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x64c4d50b aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x6f8faddc aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xc4586eca aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd7cf36b2 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd8d00056 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x2c263585 dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x69366769 soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x4dc7f34d tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xba901b85 twl4030_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xf2a3211a soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x220af7b4 twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x8d2c64ff soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x331b471f soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x02a17b76 soc_codec_dev_uda1380 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x08d06e52 uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x24e3fc43 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x3817da26 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xbd2547c1 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x992aa533 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x3e354e33 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x5034da9d wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xaf47f2f3 wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xfc9efa0c soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x6782005e soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xf7bad44d wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x1f9938cb soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xcf687a40 wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x36f2d551 soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x78141273 wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x10480344 soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x2ebea73e wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x4611ae98 wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xac8bc101 soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xa1a05718 wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xf897d8de soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x50f6e5cd wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x7f0fc411 soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xaf0f156f soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xd18ebfb1 wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x7902592e wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xb299589c soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x99b40b5f soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xce4c83d0 wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x5c63bd20 wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xe7472b74 soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x3eb064bb wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x548ded44 soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x6e3d4583 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x7fa0be87 soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xb8241615 wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x30e12840 soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xa52126ad wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x53844598 soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xcaff40a8 wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x2f31dbea soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x3c45daaf wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x500091f6 soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x5d605181 wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x491ba0b7 soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x963c8224 wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x304b8990 wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x48d9ca80 soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x35ae3ec5 soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x60861823 wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x1744d858 wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x991b71c9 soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x924736f4 soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xe10ca8b1 wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x5b5cd6cb soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xab282168 wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x2dbc53c6 wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x70718508 soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x2e036ba4 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x3f3013cf soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xe3d19505 wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x03edeb87 soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xce37f611 wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x1b34b0f1 soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02f6dc51 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x036d7dc2 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04fd0f0c snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x062f2984 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0767d9cd snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d06dd15 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x10ac8447 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11705740 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1242c7e6 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c8cfe61 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e3e4d6d snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f60f2c8 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x206fc6d9 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x267dd873 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x276aef70 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2af1319f snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2c8a295c snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3cd86520 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3cf87dc2 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d2ddd1b snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3eefe7d9 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f42ef55 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43424ff7 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45dbedfb snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x505b3084 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50e83acb snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x592e4327 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e20135a snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f0c0e53 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x70b4e5f9 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x712d26f1 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74fdb5ae snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x79e9c511 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b2fbb25 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bd9f385 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c64a7e4 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x829c7aab snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x82e8183d snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8630d8b5 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x871a2a47 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89bcc08c snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b4f3f13 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92910a62 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9435b448 snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x95c6bbd9 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96287875 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98eada64 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b5ad442 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0e1f89b snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb13d5671 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2f4bbf4 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4d7c2a8 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb96676e6 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba8a7a4f snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd6e5ae7 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2eef305 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9c0f74a snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce6b066b snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3c23513 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4542b83 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda7f94bb snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe3dd86ce snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe63477dc snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe85fa489 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe9e874cd snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec118cb1 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0afc62b snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0fc422c snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf1ac0871 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf4c9f718 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf53d5777 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8d24866 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa793862 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfcdf7065 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe979179 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff484e4a snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xffb37a76 snd_soc_add_controls +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x3ad6acb9 xv_free +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x415404a4 xv_malloc +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x422af118 xv_destroy_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6ae9c20d xv_get_total_size_bytes +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd2ac5a4c xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x006ebbad usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x006fd33c pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x008de75e ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x009da974 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00e8675c cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x0145544a dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x014578e6 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x0158ade4 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x0169770e ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x017d0960 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01c127e6 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0263da50 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02cf0864 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x02f15651 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x0307c5f6 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0369f728 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x038b9259 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x0402ea7e devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x040933e5 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x040fde03 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x042ca42a driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x045b72e0 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x04a93edb sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x04aada29 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x04c70d75 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x04e7fbe9 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x04e94717 inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x04f533e5 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x052a2f28 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x0577b1cd dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x05a32dfc regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x05c68d11 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x05fb269c task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x061bac23 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x06342d71 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x063d3aee bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x065f1cfb set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x06c8e9cc crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x071388a5 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x071cc5d1 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x073e80e3 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x075ea6a5 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x0774ca5c crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x079b2c67 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x079d3c07 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07cbbfd8 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x07cd2be4 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x082ab252 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x08330e73 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x085a9161 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x08653ce4 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x08697acb sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x086ee9a9 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x08c54c69 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x08d328ab sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x08dcde8b ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x08f0b1a0 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092bc6f9 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x097bb465 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x098c3a67 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x09c799a7 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x09dcfade wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x09fe306e class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0a3fc4b9 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x0a6b9cb2 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x0a7dd50f platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x0ac0fd45 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b24d93c bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x0b2d217b dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x0b604791 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x0b639a2f __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x0b6cfae1 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x0b74e67a spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x0b9e4269 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x0ba52a32 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x0bd900a1 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x0c1df85e anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x0c2656dd crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0c2b0b3b __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c38e84c ref_module +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0caf0817 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0cb01bb7 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cf2d87d inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x0d141d35 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x0d45e0ad xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x0d482be8 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0db9747f tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x0dd817ed put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x0dec139e blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e463b51 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0e969855 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x0eba2b1b usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x0ede6810 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x0edf09a6 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x0ef87db0 put_device +EXPORT_SYMBOL_GPL vmlinux 0x0f33f49c spi_async +EXPORT_SYMBOL_GPL vmlinux 0x0faa1302 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x0fef66cb crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x0ff83b21 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x0fff7735 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x102dc88d wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10a9fcc9 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x10efd59d shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x111d488d ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x1127a40d sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1141ca6d ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x1164fe47 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x118912f2 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11d0484b bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x11d3ddea dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x12002e9c crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x1221a3ab fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x13140a3d sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x135eabfa devres_get +EXPORT_SYMBOL_GPL vmlinux 0x137b1456 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x137b25d6 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13f8ecea anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x141a452e rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x146f4abc ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x14703691 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x15071eba i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x150ad0e1 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x1570fa39 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x15710360 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15ac0b7d crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15e145ac regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x15f15082 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x160e265b sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x16234e28 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x166fe934 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x16a3bc12 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x16c57b0c unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x170a41fa wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x17390da5 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x1749663a __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x177f0a9d dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x17883205 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x17cf67be mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x184043b2 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1862285f usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x189fa6c3 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x18a54af6 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x18b32e50 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x191c1c48 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x1934dfda wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x1971ae2c devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x197478e7 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x197bf000 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x198f8f2c inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x19913f56 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x199317ea mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a351eb ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x19a40456 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x19a7d712 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x19c1ef17 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x1a0f69a1 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x1a2dcf60 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a9ba278 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bacb4e8 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x1c6a2b71 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c9e50e3 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1ceabdfd tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x1cec5a40 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1db2c4f4 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1dd68392 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x1e03dade user_describe +EXPORT_SYMBOL_GPL vmlinux 0x1e20df8e dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0x1e298e43 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e4e8aab rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x1e6e5d03 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e9b9f6a dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebef7fb fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ecfdf10 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x1f056758 user_update +EXPORT_SYMBOL_GPL vmlinux 0x1f12c54d pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x1f143e2b ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x1f1e8e27 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x1f67447c proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x1f71d5a3 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fc2c781 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x1fc448a3 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fed9e65 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x1ff363c1 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x202953e4 apic +EXPORT_SYMBOL_GPL vmlinux 0x207d24ed class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x20a83198 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2162ad57 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x21a1987a console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x21bbdc3a ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x21c557c1 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x220ba0be scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x2286cc01 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x228d36bd vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22c756cc perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x2303eca6 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23737d40 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23f38f25 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x23f64e11 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x240b739a iomap_create_wc +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x24962bd6 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x24c354d1 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x24d05ddf crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x25244e1c acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x252628b6 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x25da0a74 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2623d62b ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x26319774 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x263ec4b4 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x2650f0ac cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x275551f5 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x2764bb56 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x279943e0 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x2807ced3 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x2815b3ad power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x2837e0d1 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x285db938 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x28988edf debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x290b2634 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x292bf030 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x29656dbc tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0x29809f43 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x298b44bb regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2a5b3da4 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a84a695 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2adaa2fa class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2ae23c17 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x2b28c5ae sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2b36b203 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2ba0d7b8 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x2bb77fc1 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2bfe18a5 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c63db2e ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0800 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d10b152 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x2d37e595 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db0c42e driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2dee3143 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x2e3beaa9 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ef038a4 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x2f3f4ed6 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2f8c0701 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x2fbed176 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fe73b42 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x302d8778 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x308e1457 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30a91e5b ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x310b4ad0 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x3152f17e ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31a34710 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x31ba3e66 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x31f0d310 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x32157479 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x3217003c sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x323090c1 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x323cff4f usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x326a427a __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x3301a7de rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x330cc8a1 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x33607d36 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x33683108 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x339ef289 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33e340c7 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x33f7bf37 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x33fab8ad sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x343723c4 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3448b795 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x34570c76 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x3457a379 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x34b6d031 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x35102dd0 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x35468da5 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x35d8c2f9 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x360e8e43 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362380a3 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x362d8cbd wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x363e731f device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36aeffcd crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x37a390d8 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x38114e0a ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x387750c7 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x38904583 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x391c41ff register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x39387a59 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x3948dbf5 platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0x397764ce pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x3982cb0e usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x39aafbfd ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x39c02b14 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3b1eefcd inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x3b290d2e ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x3b29cb39 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x3b34fbb6 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x3b38fbeb pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x3b398368 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x3b4d2fdd disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3ba0bf4c blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x3baaaf98 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3bf2efe4 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0x3c4e0f4b sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x3c8e58ed usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cf2a81b sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d2cdd25 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3dad6ec6 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3db2e82c usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x3db8268f ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x3dcb0235 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3de18734 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x3e415752 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x3e4ba0fc crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x3e699b29 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3e82eb3a fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x3e991414 dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x3f169d9a sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x3f193a44 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f38e134 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3f40d67b xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x3f477417 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x3f521e31 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x3f631cdf crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x3fb53847 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3fc14d56 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x3fd9c6a8 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x3fe3b635 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x3fecab17 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x3ffe9027 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x40078bcb device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x403d955a pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40712a18 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x40ae731f blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40bf773b page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x40fa184f inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x4122af82 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x4135e615 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x419f14b2 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x41a79432 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x41bc2be5 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x41df32bc setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x41ff8556 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x4201fb03 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x422cc502 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x42326b8e root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4251e006 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x42682cd3 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x428b539f rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42c26c22 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x42f78edf usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x42fb98f9 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x42fcabc9 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x42fd4fd3 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x4306aa30 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x4356697f device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x4368f3c4 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x43e88d3d crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x43e9e125 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x43efaf8f cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x440d922e queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x443c1ff3 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x4440126a bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x4451fd25 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x447379af pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4495e629 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x44a3df97 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x452c6d51 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x45337f79 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x453740b6 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a1eaad debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45a69163 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x45b51810 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x45b96964 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x464cb534 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x46642d82 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46868bc1 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x46e6acb8 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47345869 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x48672258 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48a946fe blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x48bcda33 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x48cc3c21 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49907a84 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x49a3712a br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x49ab2cce ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x49f514f1 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x4a077e24 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x4a44e7de hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4a4b86ab usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x4b36ab72 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x4b36e50a device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x4bb8b171 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x4bcc2e51 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x4bccfe41 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x4be97a7c usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x4c2e99c1 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x4c4555eb pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x4c485c4d sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4caa809f put_pid +EXPORT_SYMBOL_GPL vmlinux 0x4cc7ef84 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4dca55ea ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x4df2277e pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x4e0e48f3 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x4e37a5d1 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x4e590ba4 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x4e60f3d8 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x4e6fe5b9 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x4ea3ba00 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x4eab52ac attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x4ed4d1dc cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4ef6d7aa init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x4f0f856a rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4fa0c082 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x4fa6b6d1 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x4fd6b572 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fdf8cdf screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x4ffa2a6c ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x5029ee8a cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x50592bc3 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x513c17cb ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x514bd38f led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x515bdb64 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x5204a2e6 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x5208e9c7 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x521842db register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x521f8609 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x52264187 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x52bf4d9a get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x539b71c9 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x540ccbff wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x54131192 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x5428ac56 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x542a9eb0 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x550fb7f1 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x55a0116d ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x55a1eab2 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x55c7d1ce sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x55ca06d9 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5664b5ec bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56eb0271 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x5748bc4c led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x577ec927 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x579b0aa0 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a6caf5 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x57af81a0 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x580684ac kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x583e6bd4 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x58426cb3 inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0x588eeaed blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x593d93f2 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x5983a8a8 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x5999f3fd crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x599b13c2 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x59efc579 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x59f01441 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x59f6e29b disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x5a34b99c vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x5a62af9f devres_add +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5af625dc unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x5b44a3ed acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0x5b784076 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x5ba7493f wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x5bb9e66f ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bccd09c pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5bfc2614 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x5c067746 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x5c4fb396 user_read +EXPORT_SYMBOL_GPL vmlinux 0x5c80d7ef ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x5c96adbd __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d312d20 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5d5b4bc4 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d81bf17 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d9f1d23 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x5dae35e7 acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5de24380 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x5e05508c devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x5e226bcb uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x5e8cdb4c add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5eb5927d dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f395ce2 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x5f46175d inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x5f60b8db __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x5f74ebe4 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x5f7754d0 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x5f78560d css_depth +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x6008d853 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x606583e4 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60b47958 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x60b8e8cf srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x60bef2c5 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x60c6f982 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x6110396a get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x6142093a platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x616bd5cd crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x618842b0 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x61b64c51 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x6204326c ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x620b43fd tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x6253dc36 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x6287d3bb __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x629ce193 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x6304304d crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x632f77cc __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x633afc8c regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x638458f8 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x638dcf61 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x63f2063c user_match +EXPORT_SYMBOL_GPL vmlinux 0x63f5d8ac ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x640a1adc ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x642de188 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x6443ca9e __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x64a26422 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x64c40ddc crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0x64efe94f scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x64f502f1 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x6526aff0 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x65570ffb pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x658877e3 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x65906c18 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x65b789c0 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65dd1122 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x660168d6 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x660d777b wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x665d6005 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x66680aca raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66c34c99 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x67078e0c ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67cac603 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x67e60c90 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x67f42cc1 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x681d2d51 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x682b31bd sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x6859dca9 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68afd045 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x68c6253c scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x68ccaffb sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x68d4af81 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x69541016 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x695c7802 iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0x69775b76 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x6997a8fe usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x69b4437f ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x69d0c50e md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x69d988cb bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f2c68d driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6a0328e1 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x6a1ae0e2 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x6a222e5e disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x6a3aba6e usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6aa15f26 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x6aae8a15 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6ad66a10 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x6ad89cd3 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b7c34ff vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6ba86d95 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0x6bb1d863 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x6bef5a67 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c202959 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x6c2c9e7e usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c5c43c3 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6c9534b0 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3eb545 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x6d48a7f1 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e83d5ea vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x6e8693cf __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6eb64eef sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x6eb8cde8 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6ecd0d79 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x6edd2d3f ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x6ee82e49 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x6efb1e06 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f3b188e kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x6f3f02f6 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x6fa73e5a dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x6fb62df1 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x6fc0bfde tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x7008cb33 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x702497a8 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x703ab0e2 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x70ebceeb fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x70fd7fa4 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7108bd7a devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x712f65fc skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x717ea4f8 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x71b34f27 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x72058899 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x723b9d6f pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x72758822 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7285f84f unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7291e87d ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x72932349 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x72db1cc8 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x72deaae8 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x735e62ce ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c8d730 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x746cc989 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x74828679 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7483882f ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c71396 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74e008ca blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x74e4ceeb device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x74e7f42a regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x74fbd655 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7529a405 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x754bf1b5 input_class +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75d3bab2 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7613b101 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x761bcb03 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x765c2d6a ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x76dcdd14 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x77266dfb ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x777e4a8c fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77f7267f nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x78212f6a acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x7824f275 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x7860a857 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x786f1854 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x7886b10b crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x7889c83b dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0x78ab322d dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x78e806ff inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x79172320 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x79186923 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x79258f9c alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x793a2890 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7962e260 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x79cf2087 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x7a108be4 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x7a44b6be crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a59dc84 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a5a41fc spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x7a74c22d usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x7a8906b7 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ad0a89b tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7aea9d3a debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x7b1abd2e sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b79c2f9 __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x7bb400e0 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x7bca4abe cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x7c47b89d iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x7c503dfc fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x7c66c640 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x7cb75d17 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x7cc03c57 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x7cc66979 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x7d51a4f9 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x7d5374da kick_process +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d67aaf7 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7db6f746 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dc70a1f rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x7deae099 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x7df0410d crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7df6f9ee usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x7e05fab8 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e34b9c6 mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x7e3d2a68 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7ea080ac vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x7eacbf45 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x7eb4d94b sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f588763 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7f9f2efb ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x7fa7251b transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x7fba5897 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x7fc460ab relay_open +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x801dd2b6 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x802adbb1 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x808065b4 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80c4840f dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x812e1075 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x813ee34c d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81633c9f sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8172acba crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x81c4c666 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x81efc469 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x821611c1 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x827b3f9c ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x82878d23 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x829806eb crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82f6e8dc gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x833879c5 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x834629f0 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x8350ff40 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x83786039 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x83a2c277 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x83a7d3b8 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x83b41bb2 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x83f3b96d ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x83f6207a init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x8429e610 device_add +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x84418924 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x8458a5f2 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0x846131f2 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x84c09cc5 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x84e5e260 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x8516e8f3 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x85212660 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x8531a6e0 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8559458c spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x85794e1b fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x8589e76f sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85cee199 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x85d56942 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85df6d96 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x85e7aa30 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x872c7dcd tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x8732fe73 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x876d67d1 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8781c455 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x87a14619 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x87a1c763 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x87cfc522 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x87e0dd66 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x87e3c4ab kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x87e49d73 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x87edf821 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x880d7c67 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x88200f3c cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x886736fc olpc_platform_info +EXPORT_SYMBOL_GPL vmlinux 0x8867c2a0 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88d2db32 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x88dd7b3f regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x88edfac3 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x89203ed1 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89274c70 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x893b2600 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x897332c1 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x89a1c0f9 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x89a8e236 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x89b2bf7d xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x89de0223 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x89e87511 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x89e8fec3 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x89eda7e0 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x8a54e2aa fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x8a72be63 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x8a9fb15c usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x8aeb20e2 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x8b239c79 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b8cade1 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8b9b8ee4 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x8bb42dce usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x8bef8f26 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x8c307b66 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x8c7ad373 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x8c7addad zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8cb09009 get_device +EXPORT_SYMBOL_GPL vmlinux 0x8d7051b2 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8db864e9 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x8dbe3abf blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8de63134 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x8e204f08 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x8e38b6c5 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x8e8ae272 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x8ea63ac2 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x8ea970cf wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8ee21abc free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x8f000146 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x8f4d024b ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x8f568eaf find_module +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f71d4a5 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x8f7f397b sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fb41c32 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x8fc74878 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x8fd69a4b pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8ff724e7 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x901b3f40 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x90495e77 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a74d39 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x90c22cb1 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x90dd99db class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x912c5c63 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x91914d06 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x91bc2b7b srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x91d11bd7 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x920324e5 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x922384a0 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x9259a1f0 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92daffda devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x92ef49a7 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x92ffa5e0 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x930cabe1 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x93177555 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x933a9dc0 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x9369d1de flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x936f0e61 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x937c806c driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x938d7a15 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x942a03dd blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x9482d5ef seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x9485c872 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94af959d ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x954711eb sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x958b8743 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x96a6c19d pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x96acd913 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x96c325bc __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96e9e0f4 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x971d76f4 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x9750d887 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x97af46b0 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x97c3cba1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97eb48be relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9865f222 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x98ad8a90 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x98d0bb4e blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x98e116f9 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x99173101 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9930230e synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x9951d8db ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x99615acd ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x99a8ee62 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x99b6aa23 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x99d9c39a hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x99e92eef crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x9a087e28 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x9a0a925d fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a26acd1 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x9a2bc4b3 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x9a8818fb apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x9a980aa6 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x9aadf1f5 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9ac0376e ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x9b09447a kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x9b1d1b9a fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x9b76bb52 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x9b829ea9 device_del +EXPORT_SYMBOL_GPL vmlinux 0x9b832258 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bae94e7 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9bc48a8d scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x9bd4a35f ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x9c09fe7c da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x9c20e30b sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c55da23 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x9c7a4552 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cccfb84 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9cde6cba led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x9cdf08ff usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d6b83e9 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x9da353e5 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9e0894bb ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x9e7d088f skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x9e8f0b78 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x9ebe2f16 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x9ebf48b7 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9ee47c92 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f716baf crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x9f89ae12 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9fa0b20e rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa0438564 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa07da6f1 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa08f1551 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xa0a394bf crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xa0ad8caa usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa18e5442 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xa1e5a580 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xa1fab7c8 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xa2054d02 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa271238a queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xa2c85959 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xa2e6034c sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa2fb416f usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa30b5c8a inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xa30d8046 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa3324458 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xa3329892 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xa37390a0 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xa3798635 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xa3934f44 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xa3b908ec ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xa40773a0 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa43dff85 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4ac3e94 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xa4baad8b sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xa530b604 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xa548510e ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa5505c3d ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0xa554d354 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa55e8227 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa62292bd scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xa68be9fa srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa6b295f0 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa6be2920 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xa7330af7 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xa75d6c0e crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa792e429 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xa7aa07c5 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xa7d4c7f3 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7ec7bc0 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xa851b9d3 pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa85adec1 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xa8783f15 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xa894ff24 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xa8a58171 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xa8bc256f transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xa8bf136d __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xa8cac507 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa90b2775 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa95a4634 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xa9710494 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa5bab36 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaac64a4e ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xaac9fb86 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xaadddf21 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xaba73acb __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xabcf730a inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabea67d3 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xac692384 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xac7e785e rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xac9dc963 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace80441 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xace96335 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xacf7646c tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xad323bd9 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xad422f58 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xadbbcd92 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xadbcabfc attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xadc23d4c blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xae073586 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae310b55 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xae6126e5 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xae78d065 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xae82fcbe sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xae87bd42 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xae8d66a5 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xaeb307b5 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xaec9dbca get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xaf19b5e6 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xaf7ca95e vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xaf98fc75 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0xafd12a11 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xb005a19e cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xb0189eb6 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xb01d487e fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb022f6b5 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xb03bb04e ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xb09ddfad inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xb0a2a6ab securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb0b5ee92 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xb0d8dc03 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb0e5aef6 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb131c04e __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xb165aa75 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18faccd blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0xb193f77d pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xb197940b scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xb19c18e9 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0xb1a6dcb6 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb206efb4 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb226e0e8 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xb245e139 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xb2b5bba9 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb2c3bd54 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb33c374b unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xb37bd41f relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xb386ec37 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0xb39b36ac crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3f1dd78 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xb40a6baf get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xb4254ba4 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xb457a6fd device_create +EXPORT_SYMBOL_GPL vmlinux 0xb47507e7 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xb48dd228 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xb4940375 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xb4d46d7b sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb570fc0c ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb62b2a4d usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb67a068e __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6af1267 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0xb6b3040b power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb6babf3f usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xb6d648dc shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xb6ff22ba ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb7199d30 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xb7321dfa __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb747f558 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xb75383d1 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb756a795 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xb78a3250 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb84e4c47 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xb8513e68 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xb85b812e ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb85c6ff0 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xb86386ca sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xb8a523fe device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb8df13c7 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xb8fdae2b inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb941a639 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb99d3887 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb99e6437 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xb9b003ea usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xb9b0e008 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xb9d9791d map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba0a5ea4 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xba757558 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xbab99264 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xbabc24ed tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xbad68aaf device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbaed6c44 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb78e126 rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbd5130e ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xbbdb7a11 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbc7f3851 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xbc997aa0 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xbc9a8edd ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xbccdb693 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xbce836dd cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xbd011854 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xbd0855f0 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xbd092578 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xbd253e8f device_register +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd6229ef sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xbd651762 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xbd8feaf2 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd4bccd generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbdea2706 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xbdf8d1f1 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbdfaea00 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xbe10f03a cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe25270c tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbed51e25 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbfa30db9 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0xbfb68ece regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xbfbe285b __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc007ad76 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xc031f4f9 mmput +EXPORT_SYMBOL_GPL vmlinux 0xc06a1d4b pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xc072653c debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c1ef84 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xc0c3bc45 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xc0c73827 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xc0db8148 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc0f82516 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc173db1e crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1907304 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xc1932c74 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xc2058acd __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc218649f crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xc21b187f ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2de6ff2 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc2f0931e __css_put +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc34f9dcc usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc39b0f97 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc3f1f720 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xc41ad65c ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc424bf09 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc428ad9e adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc43bbc53 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xc472068d crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xc47497ce generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4a7043d ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc4aa425e ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xc4de398c relay_close +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc5228948 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc52f69a4 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xc56415dd __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xc58cdb60 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0xc5e89e7c sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xc5f4dea7 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc623ad07 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xc62b88b6 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc653d8c4 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xc664a173 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xc692a584 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xc699ef62 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xc6c5b8f1 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xc6dffdf7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0xc6f4ae95 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0xc716711c driver_find +EXPORT_SYMBOL_GPL vmlinux 0xc7a54ef0 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xc7da0189 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0xc8794072 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8a49d41 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc9062ef6 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc9522074 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc96441d8 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xc977b359 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xc99735f3 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xc9b71684 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9de6551 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca34e7ae crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xca58ad69 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xca63c5de ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca876006 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcb1c3f8c fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xcb468625 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xcb611ee0 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcb6317c0 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xcbd3ab30 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc144b98 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc51eedb shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc7414bb __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xcca03dfc inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0xccbe69e2 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce0d558b rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce54c768 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce76defc pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0xcee67779 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0xceed1ffa spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xcef96bde usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xcf207c5c __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfa4db6d ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xcfad843a sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcff6d41c class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd00447b2 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xd00d95fd ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xd02d4f87 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0416f90 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd076cf9c device_move +EXPORT_SYMBOL_GPL vmlinux 0xd08bbb59 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xd0986a06 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xd09db877 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xd112e1d8 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xd11f0bf4 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xd12ac59b olpc_ec_cmd +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd157ce17 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1967adc __class_register +EXPORT_SYMBOL_GPL vmlinux 0xd1b14798 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xd1b15198 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1bbb19b add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xd1e382b4 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xd2190b08 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xd2194ce7 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd2442616 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2842786 css_id +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2a8e99f preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2dddb9c usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd364ee22 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xd36c5dd8 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xd3982a3a da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xd3ded567 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3e6a61d usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd3ee7a42 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xd43a7bef __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xd47c31c0 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xd4856228 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xd4af3a93 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd4e43f7e br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xd523b3a5 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd524ab51 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xd5629cc6 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0xd565abb8 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xd5708a7d dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0xd57f3254 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5f4becb ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xd6184462 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xd6281536 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xd6321957 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xd63a64eb raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xd6734e99 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xd6baf24c class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd752370e power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd774f6b1 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd79c67dc debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7e9a575 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xd7f13e2a destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xd832fa3b devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd8414a70 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xd8516159 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xd86616f5 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xd884239e regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xd8e2364f fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xd8f45033 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd94f978f sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd9fd7a6f raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda4713af sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xda47d087 acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0xda513e7e clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xda526a81 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xda7501d7 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xdac984a4 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdaced0c1 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdae1aae0 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb167d26 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb2b62e7 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xdb531a0e inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xdc45f802 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdc94ee0c ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xdc950d90 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xdcc52480 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xdcd110de dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xdd243100 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xdd4051c1 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xdd8a3974 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xddced95d bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xdde4e59b tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0xddfba309 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xde318500 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde5e8e24 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xdec35728 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xdec386d2 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xdec66201 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xdec78581 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xdecee720 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xdf2b9c3b ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xdfb6d8fc regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xdfdcea3c pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xdfe2acf3 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe011bff4 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xe03fb31f md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xe046ab33 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xe056fd83 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xe05c0f1c usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xe06a47f7 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe07fa112 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0e76008 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe113ef0d ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe11866ff wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xe139e452 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xe1568d9c erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0xe16fc0f1 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xe18a0cb7 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xe1ea345d inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xe1f3837e dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0xe1faa929 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0xe26c83b9 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xe27b4004 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0xe2838d16 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe284b3de input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2c69811 dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0xe2ee22d8 tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe3103e87 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xe318b107 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xe33fe02d ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xe3d5a279 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xe3e5cad7 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe47a23d2 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xe483f407 dm_put +EXPORT_SYMBOL_GPL vmlinux 0xe493d159 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4ae9576 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe50e30ca queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe5102bcf wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe523d7d7 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xe5844934 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe65f3695 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xe67b50d9 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xe69187ed securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe6c22e5f user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7189601 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe74114b0 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xe7ba0b32 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xe7bbc908 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0xe7cba1ac crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe88fe844 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0xe8943cca adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe89f53b5 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe8cf07eb power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xe8cff8d4 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe8e297b7 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xe8fc7a4f i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xe90aabbe anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xe9353ede save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe95e9608 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xe96bb8fb crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xe9e76023 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xe9f1ddf3 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea15bb81 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea91e68a show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xeac0e6e2 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xead46281 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb4bc983 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xebea6eab shake_page +EXPORT_SYMBOL_GPL vmlinux 0xebeaf57c dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec204130 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec702ac4 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xeccf3b4c tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xed04644c usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xed213c61 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xed682182 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xed76a7f5 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xeda88b7e tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xedbf0078 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xedf0892e blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee9167e4 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xef044f59 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef3c6674 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xef44f53c usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xef4edd43 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xf01d2b0e pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf068a9f7 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf0992b96 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xf0e6e4ba pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xf0fcfee1 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xf103f907 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xf15c0199 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf1629769 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xf18060e5 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b92bc7 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0xf1c35a5c raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xf1e667a9 pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf2103a08 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf227f55b ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xf22ba74f pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xf2796291 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xf283fd60 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf38f654c tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf4215f27 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xf480a08e input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xf48b0098 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xf48c6f67 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4bfeb87 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xf537f03e dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5651f08 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5bd297b ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf5c94e70 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xf5f7ec34 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xf62e1aa0 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xf6419cb9 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf689a545 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ea2e76 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xf6f79723 pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0xf6ff3619 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xf7010e8e dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf71cd778 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xf73cd0a3 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf74f495e ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xf78c4493 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7a5e2e2 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xf7c90d31 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xf8070021 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xf80ed92f pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf876e5d3 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf89bfba7 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0xf89e1ef7 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xf8a4dff7 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xf8c688aa usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xf8c85880 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8f95a3a fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xf92f3346 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf97a8ac8 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa36e9fd ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xfa75f7f1 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xfaacd455 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xfae2beb8 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xfaeea53f shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfbbd9fb9 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xfbf08d81 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcf72e0b crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xfd1443ce sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xfd2fe46c platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfd3cf72a wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xfd5d9b85 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd835f09 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xfdb40766 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe22b5ea fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xfe55eb0d input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfea5b57d ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xfeac0510 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xfecd1058 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed2d4e6 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xfeef47a0 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff49d538 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffbc4c5a transport_configure_device --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/powerpc/powerpc-smp.modules +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/powerpc/powerpc-smp.modules @@ -0,0 +1,2448 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6pack +8021q +8139cp +8139too +8250 +8250_pci +8390 +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +aacraid +ab3100 +ab3100-otp +abyss +ac97_bus +acecad +acenic +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad714x +ad714x-i2c +ad714x-spi +ad7414 +ad7418 +ad7877 +ad7879 +adcxx +adfs +adi +adis16255 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-gpio +adp5520-keys +adp5588-gpio +adp5588-keys +adp8860_bl +ads7846 +ads7871 +adt7411 +adt7462 +adt7470 +adt7475 +adutux +adv7170 +adv7175 +adv7180 +adv7343 +advansys +aes_generic +af_802154 +af9013 +affs +af_key +af-rxrpc +agpgart +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +ak881x +alauda +ali-ircc +altera_jtaguart +altera_ps2 +altera_uart +ambassador +amc6821 +amd8111e +ams +analog +ansi_cprng +ans-lcd +anubis +aoe +apbuart +apm_emu +apm-emulation +apm_power +appledisplay +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asc7621 +asix +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +ata_generic +ata_piix +atbm8830 +aten +ath +ath3k +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_pci +atmtcp +atp870u +atxp1 +au0828 +au8522 +aufs +authenc +auth_rpcgss +autofs +autofs4 +ax25 +axnet_cs +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bmac +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq24022 +bq27x00_battery +br2684 +bridge +briq_panel +broadcom +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +BusLogic +bw-qcam +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capmode +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cciss +cdc-acm +cdc_eem +cdc_ether +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +chipreg +chnl_net +cicada +cifs +cirrusfb +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cn +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +configfs +core +cp210x +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpufreq_stats +cpu-notifier-error-inject +c-qcam +cramfs +crc32c +crc7 +crc-ccitt +crc-itu-t +crc-t10dif +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535-gpio +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxt1e1 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +DAC960 +davicom +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +denali +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +dl2k +dlci +dlm +dm1105 +dm9601 +dm-crypt +dme1737 +dmfe +dm-log +dm-mirror +dm-multipath +dm-queue-length +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +donauboe +dpt_i2o +drm +drm_kms_helper +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +ds2782_battery +ds3000 +dsbr100 +dscc4 +dst +dst_ca +dstr +dt3155 +dt3155v4l +dtl1_cs +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dw_spi_pci +dynapro +e100 +e1000 +e1000e +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +econet +edac_core +eeprom +eeprom_93cx6 +eeti_ts +efs +elo +em28xx +em28xx-dvb +emc1403 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +eni +enic +epat +epca +epia +epic100 +eql +esi-sir +esp4 +esp6 +et1011c +et61x251 +eth1394 +ethoc +evbug +evdev +exofs +exportfs +f71805f +f71882fg +f75375s +farsync +fat +faulty +fb_sys_fops +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +floppy +fm801-gp +fmvj18x_cs +forcedeth +fore_200e +freevxfs +friq +frpw +fscache +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gdth +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +g_file_storage +gfs2 +ghash-generic +g_hid +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_nokia +goku_udc +gpio-addr-flash +gpio_keys +gpio_mouse +gpio_vbus +g_printer +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfs +hfsplus +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-wacom +hid-zpff +hid-zydacron +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpsa +hptiop +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +i1480-dfu-usb +i1480-est +i1480u-wlp +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-dev +i2c-gpio +i2c-hydra +i2c-i801 +i2c-isch +i2c-matroxfb +i2c-mpc +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i5k_amb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmcam +ibmpex +ib_mthca +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ics932s401 +idmouse +idt77252 +ieee1394 +ieee802154 +ifb +iforce +igbvf +ili9320 +imm +imon +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +ir-core +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_tcp +iscsi_trgt +isight_firmware +isl29003 +isl6405 +isl6421 +isofs +isp116x-hcd +isp1362-hcd +isp1760 +istallion +it87 +it8761e_gpio +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jedec_probe +jffs2 +jfs +jme +joydev +joydump +jsm +kafs +kaweth +kbic +kbtab +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kyrofb +l2cap +l2tp_core +l2tp_debugfs +l2tp_ppp +l4f00242t03 +l64781 +lanai +lanstreamer +lapb +lapbether +lcd +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-lp3944 +leds-lt3593 +leds-mc13783 +leds-regulator +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-gpio +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libcrc32c +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libosd +libsas +libsrp +lightning +linear +lirc_bt829 +lirc_dev +lirc_i2c +lirc_igorplugusb +lirc_imon +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc2 +ll_temac +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lmc +lms283gf05 +lnbp21 +lockd +loop +lp +lp3971 +lpc_sch +lpddr_cmds +lpfc +lrw +ltc4215 +ltc4245 +ltv350qv +lxt +lzo_compress +m25p80 +m52790 +ma600-sir +mac53c94 +mac80211 +mac80211_hwsim +mace +macvlan +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +marvell +matrix_keypad +matroxfb_maven +matrox_w1 +max1111 +max1586 +max1619 +max17040_battery +max2165 +max3100 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +mb862xxfb +mb862xxfb_accel +mb86a16 +mc13783-adc +mc13783-core +mc13783-regulator +mc13783_ts +mc33880 +mc44s803 +mceusb +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio +mdio-bitbang +mdio-gpio +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +mesh +metronomefb +mga +michael_mic +micrel +microtek +mii +minix +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mmc_core +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msp3400 +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtd_nandecctest +mtd_oobtest +mtdoops +mtd_pagetest +mtdram +mtd_readtest +mtd_speedtest +mtd_stresstest +mtd_subpagetest +mtd_torturetest +mtouch +multipath +mv643xx_eth +mwl8k +mxl5005s +mxl5007t +myri10ge +nand +nand_ecc +nand_ids +nandsim +national +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +netconsole +netrom +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +nf_tproxy_core +ngene +n_hdlc +nicstar +nilfs2 +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nop-usb-xceiv +nouveau +n_r3964 +ns558 +ns83820 +nsc-ircc +nsp32 +nsp_cs +ntfs +nvidiafb +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +of_serial +ohci1394 +old_belkin-sir +olympic +omfs +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov7670 +ov772x +ov9640 +ovcamchip +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8023 +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_amd +pata_atp867x +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_macio +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_of_platform +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_platform +pata_rdc +pata_rz1000 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc87360 +pc87427 +pca953x +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pci +pci200syn +pcilynx +pcips2 +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +pegasus +penmount +pf +pg +phantom +phonedev +phonet +phram +physmap +physmap_of +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmac_zilog +pmc551 +pmcraid +pmu_battery +pn_pep +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +prism54 +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192u_usb +r852 +r8a66597-hcd +rack-meter +radeon +radio-gemtek-pci +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +raw1394 +ray_cs +rc-adstech-dvb-t-pci +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avertv-303 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-empty +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge-new +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-lirc +rc-manli +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc5-hauppauge-new +rc-rc5-tv +rc-rc6-mce +rc-real-audio-220-32-keys +rc-streamzap +rc-tbs-nec +rc-terratec-cinergy-xs +rc-tevii-nec +rc-tt-1500 +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-gpio +rdc321x-southbridge +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rio500 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc_cmos_setup +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3234 +rtc-fm3130 +rtc-generic +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-mc13783 +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2255drv +s2io +s3fb +s5h1409 +s5h1411 +s5h1420 +s6e63m0 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7191 +saa7706h +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbp2 +sc92031 +sch_atm +sch_cbq +sch_drr +sch_dsmark +sch_gpio +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_multiq +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci +sdhci-of +sdhci-pci +sdhci-pltfm +sdio_uart +sd_mod +sdricoh_cs +se401 +seed +serial_core +serial_cs +serio_raw +sermouse +serpent +serport +sfc +sg +sha1_generic +sha256_generic +sha512_generic +sht15 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_of_platform +sja1000_platform +skfp +skge +sky2 +sl811_cs +sl811-hcd +slhc +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc91c92_cs +sm_common +smsc +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-als300 +snd-als4000 +snd-aoa +snd-aoa-codec-onyx +snd-aoa-codec-tas +snd-aoa-codec-toonie +snd-aoa-fabric-layout +snd-aoa-i2sbus +snd-aoa-soundbus +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-atihdmi +snd-hda-codec-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-idt +snd-hda-codec-intelhdmi +snd-hda-codec-nvhdmi +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-page-alloc +snd-pcm +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-powermac +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-core +snd-soc-cs4270 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wm2000 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8776 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-ua101 +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +solos-pci +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +specialix +spectrum_cs +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +squashfs +sr_mod +ssb +ssfdc +sst25l +st +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste10Xp +stex +stinger +stir4200 +stowaway +stp +stradis +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +swim3 +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +tca6416-keypad +tcm825x +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10086 +tda18271 +tda665x +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tda9887 +tdfx +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +test_power +tg3 +tgr192 +therm_adt746x +therm_windtunnel +thmc50 +ths7303 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_sd +timberdale +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tle62x0 +tlv320aic23b +tm6000 +tm6000-alsa +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +touchit213 +touchright +touchwin +tpm +tpm_atmel +tpm_nsc +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +trancevibrator +tridentfb +ts_bm +tsc2007 +ts_fsm +ts_kmp +tsl2550 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw9910 +twidjoy +twl4030-gpio +twl4030_keypad +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twofish +twofish_common +typhoon +u132-hcd +uartlite +ubi +ucb1400_core +ucb1400_ts +udf +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +ultracam +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-sddr09 +ums-sddr55 +ums-usbat +uninorth-agp +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usbhid +usblcd +usbled +usblp +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +uss720 +uvcvideo +uvesafb +uwb +v4l1-compat +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vgastate +vgg2432a4 +vhost_net +via +via686a +viafb +via-ircc +via-rhine +via-sdmmc +via-velocity +vicam +video1394 +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtual +visor +vitesse +vivopay-serial +vlsi_ir +vmac +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +vxge +w1_bq27000 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83977af_ir +w83l785ts +w9966 +w9968cf +wacom_w8001 +walkera0701 +wanrouter +wanxl +warrior +wbsd +wdrtas +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +windfarm_core +wire +wl1251 +wl1251_sdio +wl1251_spi +wl1271 +wl1271_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlp +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-gpio +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x_wdt +wm8350-gpiolib +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-gpio +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xhci-hcd +xilinx_emaclite +xilinx_ps2 +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xvmalloc +yam +yealink +yellowfin +yenta_socket +zatm +zc0301 +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/powerpc/powerpc-smp +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/powerpc/powerpc-smp @@ -0,0 +1,10222 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0xf63dc791 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xce165c74 uPD98402_init +EXPORT_SYMBOL drivers/block/loop 0xae3cd2e6 loop_register_transfer +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x30c03c5f pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x770d74c5 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x83d92324 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x8461500c pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x89c9812d pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x9040dbfa paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x91e3d9f8 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xbe244e84 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xdaa7f755 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xe345ba8a pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xedcf9889 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xf46bc7a2 pi_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0ba19a62 agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x15422dcc agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1960fb4e agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1bbc06e1 agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e84b726 agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x249d901c agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3b99c8af agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3fe9782c agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0x47d7d840 agp_flush_chipset +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4bcf27de agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4dfc8dcd agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x533cecf1 agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5c923d96 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6aee11b9 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6bb96079 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6ce6bd2c agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6daa99be get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x77c606b1 agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7b98b7ac agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9258521c agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x925d24c4 agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x93373444 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa9ee2121 agp_generic_alloc_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0xad3fb788 agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb4da8354 agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xcee961dd agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0d164a3 agp_generic_destroy_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xdece3bfd agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xded28bdf agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xea83efa9 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf11aa9a2 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xfa5ea672 agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xfa80dcf6 agp_unbind_memory +EXPORT_SYMBOL drivers/char/apm-emulation 0x129e74f2 apm_get_power_status +EXPORT_SYMBOL drivers/char/apm-emulation 0xdf3329b8 apm_queue_event +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1c76ead6 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2124bad3 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4a11c8be ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4f718c6c ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5d8463dc ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x636d8af7 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6abc3b9c ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6d0ea21f ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6f3c9f5e ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x74974646 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x779fdf06 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7d8dbb12 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7e021c6e ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x80162ecd ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x87c4de63 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa14dc591 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2d1d701 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa959ed79 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xce800cb9 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xced8a02d ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd1c6dac0 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4c90298 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xea028191 ipmi_poll_interface +EXPORT_SYMBOL drivers/edac/edac_core 0x588ddc19 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0x80799389 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xf3f6c7e0 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x06c06462 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x120e6918 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1f15ff1d fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x231aa1bc fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x234f55ae fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2adbee47 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2fe07f8c fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d6d29f0 fw_core_initiate_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4fcbcb5a fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x608eb223 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6137a808 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7175e4aa fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7b0bf1fa fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7bdf60a5 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7d3e48fd fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x81cd43b6 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8eb48d8c fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa31dfbb3 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb45ddbd9 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb63a558d fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb72ae07b fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbe8f27f9 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xea160c5b fw_core_remove_card +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06be1a03 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a294bf7 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ac1f23e drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c5333dd drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10b8e787 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14416db3 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1544b4ae drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19489633 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19aa919f drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a0a7add drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dbc4deb drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dc05452 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ed094a8 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ee3e8bd drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f45f909 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22e61f57 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23d01673 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x245e7b11 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24d96bd3 drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2524f659 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2530f9b3 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c0e5105 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d47884c drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e18a13c drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed297c8 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30875447 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ca93f4b drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d2abe1c drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e20e9ba drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fc42618 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x426a88c1 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x436adc9a drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4389c3f4 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4504b168 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x459a41fb drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a6caa3f drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ba13c8a drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e6e4b7e drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x538647d7 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54775bc5 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54d2f8d5 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58c50f07 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5de42499 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e243f13 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61e72b03 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x626d3f3f drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63a5e944 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x656f2bbe drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x680ab1a1 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ac3823c drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f260cda drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72039a7b drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7296f2fc drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x733793a2 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x783eda1f drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7936a293 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b966533 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c43158a drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f7f0bd6 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8495d97a drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8867a64f drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8928bb40 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8afe757a drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b2cc886 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c89ba51 drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dd3b283 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eae8f59 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ef402f1 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f53185d drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c44fdb drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93e9903e drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95a39ab4 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95e93fe9 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9696fe21 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9722b84b drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x983a4600 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x985c1024 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9cf845f0 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f18587a drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa25c0490 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa312836f drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa34c883f drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8b174d1 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab14ec46 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac8a611a drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf19a3af drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf2993cc drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb33b6ae7 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb426d1c6 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb45fb2c3 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5f33a24 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb71e43f5 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb78026ab drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba6050a5 drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbc37952 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbcbd846 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc2d032a drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe9b15a7 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbee4acaf drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf892c45 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1afec4d drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc39d15e0 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7b01820 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc82c41f6 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8dc2f4a drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbb9858d drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf596a08 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf935615 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd238289f drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd28d9a7f drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ba6f06 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4059843 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4368c4d drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd44bd8cc drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd904e75a drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdba04985 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1b17221 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe317f644 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe451702c drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe49b387b drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7dc1baa drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7ecbd56 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8ada632 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec45f298 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xedb1bf4a drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee234cd9 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef511b41 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef928cdf drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7cbcb74 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7dc9812 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb3263ef drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd33e348 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00522826 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x028d8140 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x13b472f4 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x151a44bd drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1b65de77 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x204105bf drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x27c9283d drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b8ee2c5 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2da85d12 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x30608bf1 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33dc80c4 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e12ae87 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x41fe4877 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4b3bbe13 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x52804e72 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77cc9996 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fb6e7ec drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8f4058cc drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa6d5f6ba drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaaeb6e79 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbed777bf drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc6bd11fd drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc6e47d97 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe055140e drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe590ef2a drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf2a0b003 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf90453e5 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfbaa61ea i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00b02dae ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x11099e21 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x114878ff ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17cfceff ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d89df73 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x21b95424 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2473d552 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x29ef0dd9 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2d499b71 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fd155ed ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x448fd5d8 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45600716 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4621966a ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x524a73c5 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x52de68d9 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x58e327b9 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5c8cee8c ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f06a380 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x65813f69 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x68736279 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x68f13354 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6d0c20af ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6d7cf673 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x724f6a4f ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x742a87ff ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7dcb1e64 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85ecd76a ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8b1fa9f3 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8dafcead ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8fdac8bc ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x940438e7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x97caf7a9 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b2be07d ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d06ced6 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa068577d ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa0ebc772 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa5407119 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa744f583 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac843717 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb2da3f7c ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4135bc9 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb554dc40 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb6d87fe0 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb70484eb ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xba7aff00 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbbe3fe09 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce54eeba ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd97caf2e ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde2079ac ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf7ca30f4 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc0aabcc ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcfa6a7a ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe5798f0 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xffea5b5e ttm_bo_init_mm +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x5548941f i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xdb706a3f i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xb48a8a2f amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x033049a5 hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x05222dcc hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x070b71fc hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e663cdc hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0fa88d74 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x184f0ae1 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193da4a6 hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1e3460a3 hpsb_lock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1f355a60 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1f5044fa hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x21789f00 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x267a9360 hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2787d442 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x27f98612 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2811d0b4 hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x354af25b hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x35b61d70 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x45294f28 hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x468c7586 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a7fd48d hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4bd42e3e hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x50f24344 hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x516d9f07 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x51aebc72 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x54ee85ac hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x63716d2b __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x64fd4099 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6bf8d5fa hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6f44780c hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x75e4a064 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7ba90223 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7d3fea87 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8089cabe hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x80cf1777 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x811b9bed hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x82727375 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x83abf9d1 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8499e8aa dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8746521c hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x91830da7 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x95814950 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9d55261d hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9dc21eb0 hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa226de4a hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaa76c4d3 hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb2d2413d hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb5dce74b hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb88f83bc hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb9180828 hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xba464f9a hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbbb97769 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc4bde37d hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc6f6b1a8 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc750243e hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcc798f9a hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd084d155 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd9982e25 hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe26bf0f1 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe42aa6ad hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe5a774e4 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe70366fa hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3268520 hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf94c4ca3 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x154b506f ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xd12cf7f6 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xfa7ca951 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x602e2c26 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9883de28 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x078bf2d8 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x09235d44 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1a90b405 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2e63b198 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4963a03a ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x561aeebd ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x70dbd2db ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7c57cb96 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x89799856 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x907b0710 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb4d42048 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb6c97d54 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc3778224 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcb099e92 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcbe4338c ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdbabde2e ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf7d5abbf ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e11d048 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0f008756 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12d87f55 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1546d3d4 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x154fe4e4 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15e12850 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15ed04bd ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18c12adc ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d4eb64f ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1f272080 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ff08064 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2283b1c3 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25ffb4f6 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2695e609 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26c9fd12 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x299628e1 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a59218d ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a3a7720 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3db320f1 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e1b26bf ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46e72f3b ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46f72f15 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49ac33ab ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4e5e74b4 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x530c4014 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56c92a5d ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58ae1b02 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d3af304 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6293436a ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6651b87f ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f1cab2b ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8c3cc1cb ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8c5a3061 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x901a0a24 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90e3b32c ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92e5a82a ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x97a5527f ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9844e4bd ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c23f854 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2ee7d6e ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa320f68e ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3a5c7fc ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa7d44c2c ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaad3ad89 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xafe3eafc ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb07b7953 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5637f66 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba978311 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc43b9970 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc43ce6ae ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc634cf78 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9fdd06f ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd164b83b ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd966e9d5 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc98035a ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xde0cbd6f ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1885170 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe57ba97c ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6a69334 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6c17b7c ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf3c6d286 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4f722dd ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf68105d3 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7483c1b ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfcc67e26 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfed856e6 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0422733d ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0bf171da ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1426f8b1 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1bb34a69 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1eeff265 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2c7d9361 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x867f738f ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8955a345 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x957b06c3 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb35c20ed ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe8e8face ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf88da36e ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0dd1bf74 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x167f91fb ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x49a93449 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa7aa44dd ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc4630c2f ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xee495633 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf507b71a ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x153da8e7 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x17a9e0e0 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2872c1fc iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2e277c84 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2f633168 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5d9310d2 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9682676f iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc6d9c3b2 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0b3f3ac8 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3b9e7a5f rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x62dbe2c2 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x72b87806 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7edcbba6 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8a18a3d0 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9830daa5 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa5ad9304 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa7ddfab8 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb1d89a27 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb2de14fe rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb3220415 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc4c8224f rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc8e27915 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd266fa80 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe1ee6817 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xeecd4b9f rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfa3fe5b4 rdma_destroy_id +EXPORT_SYMBOL drivers/input/gameport/gameport 0x063ec507 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x41b43007 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5d4b4eb9 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x6ff48c1d __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x78bf1c58 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x86b9e958 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x891135ec gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x99212f87 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb97b71ae gameport_close +EXPORT_SYMBOL drivers/input/input-polldev 0x00ee96ee input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb2e60295 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xc6ad3b43 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xe104bde6 input_free_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x42cb9572 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x5829d770 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x91526397 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xa7106c74 ad714x_remove +EXPORT_SYMBOL drivers/input/sparse-keymap 0x10762fcb sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1326ca1f sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x742106cd sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x81ca48cb sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xcdece1d6 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf002ff04 sparse_keymap_free +EXPORT_SYMBOL drivers/md/dm-log 0x085f669f dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xc68393f9 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xe3e1e860 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xedd0656b dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x03cf6ffc dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x8dd38712 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa355aab1 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa538db36 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xbcd490f5 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe6cfead1 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/md-mod 0x07e6c999 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x1639d772 md_integrity_add_rdev +EXPORT_SYMBOL drivers/md/md-mod 0x1af98cf4 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x3fa59054 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x410b18f8 md_set_array_sectors +EXPORT_SYMBOL drivers/md/md-mod 0x49e86396 mddev_congested +EXPORT_SYMBOL drivers/md/md-mod 0x4e87bb81 md_wait_for_blocked_rdev +EXPORT_SYMBOL drivers/md/md-mod 0x607f183e unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x644c2c10 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0x7367df4c bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0x7373c615 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0x7f8c20a5 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x847eb19b bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x8961b350 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x899ca260 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x908ea2dc bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xa24c70ab bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0xa4140e00 bitmap_cond_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xc0320f49 md_error +EXPORT_SYMBOL drivers/md/md-mod 0xc077b97a md_integrity_register +EXPORT_SYMBOL drivers/md/md-mod 0xc81a3ce2 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xdd3abd4b md_check_no_bitmap +EXPORT_SYMBOL drivers/md/md-mod 0xeebe5f5c bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0xf869a828 md_barrier_request +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 0xa30fb1a7 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/ir-core 0xf2f0450c ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x0ed58c8c lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x15e76957 lirc_get_pdata +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x23df2f0f lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x2b2933b1 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x70af868b lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x858012e4 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xb73ac69d lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xc6019fcb lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xbe227bf0 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xd8e3d1d6 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x8d64b5e2 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x3ddc7f7b mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x49927f28 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xe2990021 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xeb255e8f qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x54a0b073 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x03f0951f xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x059bcf73 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x189ba4ba flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2915a11a flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2f626756 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x40e0e484 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4280fd14 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x451e0f31 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4fab225f flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x565f85a8 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x65be29a7 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x65e5ec1e flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x67146402 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6738710b flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x83d8b198 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa68f3251 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa894111a flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xaf6174cc flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd817f84c flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xef81e320 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfec42c10 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x4d38e9cc bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xdb58f9ee bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xde08b99a bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xebef1dee bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0f35d5e3 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5d1a2e77 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6950e436 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x93052c3b dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x97d521b7 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc77123cb write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xed3dc3f1 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xee6b13cf dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf9f258e4 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xf84999b4 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0ad0a319 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15c8226d dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x19591134 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1b52c3d3 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1d682059 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1e8885b9 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1ed24110 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x22d6ce4a dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2777df29 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x28ee2ae8 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2944b2ec dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2d18adad dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2d29fe3a dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3ecde30b dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3f7224d5 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4d3b9a9c dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4d5134ff dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x53737d12 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5d2b13cf dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7089f505 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x71818002 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x751d548e dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x78d62338 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7ba5d8bd dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x889bb230 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8e47dce5 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x93ecb5ca dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb768dd20 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdb576668 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xead21868 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed8723bd dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xefa139e8 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf07002bf dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xff73b3e4 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0ad00bf1 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x427b7a67 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6fa0b74d dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6fd5dec7 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8c2f0ee4 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa73f898e dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xce91508d usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x27af588f af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x347763aa dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x59c5daf5 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x68df42e7 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x77adf648 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7acff491 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x96303323 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xab80de03 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc48e322c dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd30b15ea dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf2ca58ed dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfe1c776f dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xeffa21b8 af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x5bc230e3 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x13f22a5e au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xc58bacd9 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xfa01f4b1 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xa8f90623 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x116b54e2 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x1e03e4cd cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x88f19b2c cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x60eb09e7 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xa20c015f cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xc5667185 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x50013de7 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x6ce41463 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x6dbc9d02 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x6e221ca8 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x83354ad0 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x21ef4d77 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x2f5f77ee dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x43a144eb dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7f149044 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc05f4659 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xdb3f71cd dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe46334a8 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xeeb30305 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xd90baf30 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x15307bfd dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x746b5245 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x9c8d1740 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa1b33de7 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcc23ef71 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf99f4ab1 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x8d1ea2f8 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x92b63287 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x24c9e6d5 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4dd34780 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x613a8e1f dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xadc17e31 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb3ba2e41 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcb4ab9ce dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd51bdfc1 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf7cbe7dd dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x16938be2 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1ad8da7a dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x3bfa48d8 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5a5a8ca2 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x65efd53a dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x69dafc45 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7b7aef1c dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x82729807 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa8b5502f dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xbeab6908 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd01f0826 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x03a369c9 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x4990d207 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xb407b88b dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xb5071c9e dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x32eaeeb9 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x9e369787 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x4c46b53e isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x6e7cf4a1 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xe180e98c itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xc8f8f11e l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xd00a546b lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xee2b71aa lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xbebbd4b4 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x4659e8ae lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x7ce39f80 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x7793434f mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xa302f3fe mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x49598bff mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x6e585842 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xc54704b1 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x0e2e21a0 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x583a5166 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xbad96b10 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xfe44f394 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xce9b08d5 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xe41de3e1 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x64d728ea si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xd7dbbd71 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xe553d11b sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x33848fd4 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xb548f089 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x99bb50f5 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x1c02bd4d stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x0f64b2b0 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x70ad7217 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x7c0747f1 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x6a8c6612 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x5cb3240d stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x21ceac9b stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xb7bdab5d tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x563e1950 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x9bc29894 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xa56213b5 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xcc733209 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x63f4d3b0 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x19cb5afe tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xd355fbcd tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x44ba09cd tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x9266cd80 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xf649c4cb ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x9ff5bcf1 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x8b38c4b4 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xd08777d1 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x96fd2d92 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x167e36d6 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x3db9371c ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x0bc5b56c bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x5b7fa367 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xfda54ad2 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x2ff5311e btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xab784ff6 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/cpia 0x5b3e5f9a cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cpia 0xd105708f cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x00339bab cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x99434c5d cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9946a40a cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9d8153e0 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xd54c3f89 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x39b5059c cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xfbace1db cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x627199c5 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xbc185b54 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1b67ce89 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x63ec463a cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x859ec526 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb6175ce5 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xc53380ba cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xd382bb88 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x12017d2f cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x1577fb41 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x37bbabc9 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x4880b01f cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x94d510c0 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xd4408724 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x102072fe cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1c7b2a05 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2a652728 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x334bba96 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5936d197 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5df56bc8 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x641a4b90 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x812c33e5 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x85c4145a cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8857cc5a cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8b487456 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8df58b51 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9133818a cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa345740d cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb31e2605 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbbe8bf39 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc477f586 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd7f4dcb4 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe07dbc76 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe70f8f75 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf506698e cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfaecad19 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xd0f2eb02 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xfe0d480e em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x2cda3f34 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x3c3519fc gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x7b99fe71 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc741cd43 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xcee225f1 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd1bc5300 gspca_get_i_frame +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xeafdd8ed gspca_suspend +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x00bd0fb7 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0bdda22f ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x1256a6c7 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x29887032 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4df92214 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x61364678 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x732ce23f ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7511335e ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9b556ea7 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbbfc8325 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xdb4abdf8 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x08310d3c saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1c008ef9 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2674065c saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2bbe2429 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4193e2f7 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x43756695 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x61f5eb9b saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8aca5156 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xaa102120 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb3114c0d saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb8a251af saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd5e40483 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/soc_camera 0x02e168de soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x41f0c22d soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x52cc0200 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x7e6f62c3 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0xd6fafe0a tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xde25fe84 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x02ece36c usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x04401a3a RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x10fdb0da usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1a26ad15 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x971e51ba usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xa7c3973b usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xda009138 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe63fb6e9 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe7b95365 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xfb3c39e0 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x82fe72fd v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2a1cabca v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9423e605 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x001fbbe2 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x1afe991c v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x7479a257 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xc180cca4 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x136a4bbd videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x24c11954 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x419a34d0 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x5bcc4566 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb52b794c videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xfd0c21d7 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x0ae5000f video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x468c9276 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x4adfd698 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x705414b1 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x7dd454f0 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x855b8316 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xbb802509 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xbe955baf video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xf05eedb8 video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x0adda720 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x29816541 videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xcbf36e08 videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xdb05e953 videocodec_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x013a8209 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0817ea9e mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x17b075e6 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1cef090a mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x22c7e326 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2e01a1f9 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2ef8cff1 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x305ecd17 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3340bd98 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5130403a mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5d69142c mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7690c3a9 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x79c7e777 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7a03df5b mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7ec1b0e4 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8972b271 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x98bdc0eb mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x99f17add mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc7298eaf mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd2201e79 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe51e04bf mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe92411a2 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xebe7a582 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf05d94c5 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf294c2ce mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3ff7205 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf40898f6 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf72dc8d6 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfdcde3b2 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x026835b1 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0f4285cb mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x16c04fc6 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1e417bb4 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2730e872 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x300963cd mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x418ff7c6 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x458b9bd7 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x489274f9 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x49e8ada5 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x59bf86f5 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x646a936b mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x69a164b4 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6cbcc4de mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x75db4346 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c30be40 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8b443231 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8b6fce5e mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8d6f35a0 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9fda6c77 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa0d71d32 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa7ac4a72 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb45cca8a mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd6b13f17 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe09651d4 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf20d0149 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x01d27b0e i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1f649c90 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x21f79282 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x23b620ed i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x242f52dd i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x47c18eea i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4bbfbd29 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4de3d295 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x769b2a94 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7a613253 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7d4e0a99 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x813bac25 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9dac6722 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9e0e7611 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc822d3f9 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe4ac3089 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xec9c498c i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xef3215d2 i2o_exec_lct_get +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x2a2e47fb pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xde2f52c3 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x1491291b mc13783_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x595a54cc mc13783_reg_read +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x60cc6604 mc13783_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x697366a7 mc13783_irq_request +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x6a932cd6 mc13783_irq_free +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xac6aace3 mc13783_lock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xb8e9d8d0 mc13783_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xbac6d6e3 mc13783_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xbf08ed2e mc13783_irq_status +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xc11dfd86 mc13783_unlock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xedbdb431 mc13783_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xf760f979 mc13783_reg_write +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x90e692dc ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xab66116d ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0xbc0922c9 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xbc0a4d85 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x8ac2d222 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x9b56b32b ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x251d89bf tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x73abda16 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8f492639 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x95d74be2 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xa08363d6 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xaba45b7e tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xb87a5fe6 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xb8c5605d tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xc5f8bff5 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xcb3696b9 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xda1c5c21 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xfd3cce4c tifm_alloc_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x1187d98e mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x017da710 mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0522a4c4 mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x07f37ff7 mmc_card_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0c20781f mmc_try_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x12140c94 mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x270f1e14 mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x28f2c442 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x34730d21 mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3728866a mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x373f3231 mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3bbd0e6e mmc_host_enable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x463f9c0d mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x46591e1e mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4ba6feb3 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x50620479 mmc_card_awake +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x67cb1736 mmc_align_data_size +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6fadd1aa mmc_power_save_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x82f393b4 mmc_card_can_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x84d92c2e mmc_host_lazy_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8af72b22 mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x90126442 mmc_power_restore_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa3c02485 mmc_host_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa8e915b1 mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbca1f9f0 mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbdc03f6a mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xe814e1da __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x46ea6abe cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x94080018 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa0c23ac3 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x11af9b7f register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x52d6a114 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x8771bd15 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xafbea103 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x3d8a59e7 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x35ab117b lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x04986f7a simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x7ee901fa add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xb7a5884a del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x2df5b529 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xe1c40a06 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x0d2449c8 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x64dac925 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb41e592a nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xef63ab7b nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x17428b32 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x4c2e037e onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x7d33e3b8 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9d63ac91 onenand_default_bbt +EXPORT_SYMBOL drivers/net/8390 0x073c13be __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x0b9e54b2 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x19d83968 ei_close +EXPORT_SYMBOL drivers/net/8390 0x34bcfb14 ei_open +EXPORT_SYMBOL drivers/net/8390 0x82c2a294 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0x97d36848 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0xc6dd5821 ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xdf9e71f9 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0xeadb8a3f ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xf7565cc6 ei_tx_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1149275c arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x22759fc7 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2861ecde arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4210eee5 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5f71a2d1 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x856ceb84 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xbe185656 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd6b1e78d arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe30de541 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf9b29bb9 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x0f1e5134 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x1e2712a8 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x4abdb034 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/bnx2 0x2685059a bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x266b55f7 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0x64e95f8a cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x08a5890e cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x116d549a t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1be1867b cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x21f99fd9 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x62523906 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x782a81b1 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x79d3a824 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8499f555 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x96c71e9a cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb315a88e t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb547452d cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb56276e2 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbf5e6e70 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbf6a9bc5 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xce1a6cd9 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd3f4d72e t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x024d5c3f cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x179e1a71 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x20e55c23 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x252e0514 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x287441d8 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2abaed50 cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x34427794 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x361b50e0 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3e5d3d29 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x409d140a cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x433d5960 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6978bb6f cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x762d1ad6 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x780ccb2a cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8a0239e3 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa68465ab cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xce53d643 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd1758f3a cxgb4_netdev_by_hwid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf46c0a54 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf8139f02 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x018e94e0 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x4366d6b5 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x466f5cee hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7cc22566 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe683163a hdlcdrv_register +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1abc2cd1 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x447435cd irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4a896f9e sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x502af3ac sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x602be671 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x84487c76 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa2a849d7 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xac9ebbf7 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb1624ff7 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd9fd44b0 sirdev_put_instance +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mii 0x0ef7420b mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x199cff7f mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x1d96cb85 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x42bb04cb generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x9a670790 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xc868d079 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xd3706b44 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xdd0730da mii_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xd20891c7 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xdbd8ce04 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp_generic 0x0cae7aa4 ppp_register_net_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x160025c9 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x595d8e5d ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x7633cd26 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0x8352981c ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x9b869c64 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0xa449a465 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0xe7485c69 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0xea50c18b ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xea954f29 ppp_dev_name +EXPORT_SYMBOL drivers/net/ppp_generic 0xedeb4474 ppp_unit_number +EXPORT_SYMBOL drivers/net/pppox 0xaa96152e pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xb8c0a904 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xcc56c06f register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/sungem_phy 0xf27d1b0b mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x63336a37 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x6ff09f1e tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x981a3949 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xb5b50c9f tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc275a3a1 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x16c406c9 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1b49b1a6 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x531aafb1 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7dce6506 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb8201f1a unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc53b0bf6 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe69d10d0 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe955a5e1 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf11ac293 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfbf393a0 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfe9fe8a6 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x97da55cc i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x326bab9e stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x676344c9 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xa47a2f07 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x90c9b25e ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe5481e54 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe6e37bd8 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf49ed4af ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x0a16f329 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x10b5f030 ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x22350703 ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6630134a ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd5a223d1 ath9k_cmn_rx_skb_preprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe3796f30 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfeebc858 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0307289d ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0af254e9 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c88e61d ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d145345 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e54281f ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e6cb475 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1285dc93 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x141e48ed ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15a6b87b ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15ac9d6f ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15c60d07 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x171e30ad ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1df98186 ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x200de184 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21921afd ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31e1cf40 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3477414f ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e22c9e7 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f058d28 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x445ca301 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4638b25c ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48e6932e ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e517052 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x50d87c48 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55dea566 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55f76fb9 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x572de389 ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b9538df ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5bd37b0e ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e04ef6e ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60c9a671 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61767ff8 ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65e3e545 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6635718e ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e7da468 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f1471b6 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72983c9e ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x787b803b ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ba72a9c ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c76efbb ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82cca7cb ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83e0fd8d ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b7424cf ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x931fb903 ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98599d35 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e7dd4cf ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1108b44 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa376541a ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3bcd7d1 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa4d8a954 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa858a640 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xada9291e ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xadc38871 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb648fee8 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6f7ce15 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7ba750c ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9cf745c ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc00bf34 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe637089 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc14a5fca ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1933b76 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd45df7cc ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb1b4806 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbb5ecec ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe072b102 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe62c04ae ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7f596d9 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea2b4442 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xead6ba5f ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed7ab987 ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xefc738df ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0cd397b ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0e7776c ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4dbbd88 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6e2ed66 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf902a2ac ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf934a4a1 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf93fe90a ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9f26b49 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb934885 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe68b2d1 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff7463b3 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/atmel 0x04ae5763 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x65bed870 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xd76bec55 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x07d482f9 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0c7556e6 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12e68d35 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x16c6dd8f hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x22c83631 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x30614695 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x32425dc8 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x32dec6e2 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x34bac8a7 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x55711764 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x58641a65 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x59ec5f64 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6e425714 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6fe2403b hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7439f712 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7ca95856 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x818b24a2 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x83510e25 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x92586e4a hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa0dbf850 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa2ab6d78 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xad619049 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xba280e86 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xea45ab2c hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf117f055 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0d21d1dd libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x11c7094e libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1efd80c6 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2bb1bfa5 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x43a835e8 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x564c9e1f libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5ebaf960 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x62ff3da4 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7ec68258 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x84e8810b libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x882ad401 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8bf84179 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x909d3469 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x90b63c91 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x98073f88 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9a8101b5 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa737dda7 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb8690ffa libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe1dff668 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe4163100 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf3345e48 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00294512 iwl_tt_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00bd5473 iwl_sta_rx_agg_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0192de46 iwl_init_sensitivity +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x04035c0f iwl_chain_noise_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x066db90a iwl_toggle_tx_ant +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x06fd8a86 iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x082044ee iwl_tt_exit_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0c2aff29 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e6b1ebd iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ea2fa7c iwl_tt_enter_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x126e9e66 iwl_sta_rx_agg_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x12dd2dd5 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x17b91caa iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19933822 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1b5bda76 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1f159410 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2065d4b0 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21210472 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x219bf816 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2482b39a iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x28fa0a25 iwl_set_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b0816a8 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2f32c486 iwl_dump_fh +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x30e0b7f8 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x319325fc iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x376c441a iwl_free_tfds_in_queue +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37883e12 iwl_restore_default_wep_keys +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3a962bc9 iwl_sta_modify_sleep_tx_count +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3e11c139 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3e16d721 iwl_remove_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f558afb iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4411ee82 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4d2087ec iwl_dump_csr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x522365bc iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x53ff6a8b iwl_reset_run_time_calib +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x56532efe iwl_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x583ee5fd iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x59426a6e iwl_eeprom_check_version +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5af28801 iwl_send_calib_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d5616cc iwl_eeprom_get_mac +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5df62b82 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x60a9d956 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x64b42e76 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x656332b8 iwl_reply_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x664914e9 iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x674fe206 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x67e352b6 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6ac772d3 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b57239f iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6cc77a82 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6e885227 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x70bd181f iwl_tt_exit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x70de4e88 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x710ac7cc iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71bcebfa iwl_setup_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x752412f8 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x76f827b9 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7d7163f9 iwlcore_eeprom_enhanced_txpower +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7dfc3a41 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7f2bb8cb iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x80860ce6 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8314c72a iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86595df2 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8aeb9bc5 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8fe2a0f5 iwl_good_plcp_health +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x91a3a647 iwlcore_rts_tx_cmd_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x95a38517 iwl_add_bssid_station +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x95b2ec2c iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x973bf5dc iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99efbd43 iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9a97b7cc iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9caf3b0f iwl_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa51be910 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6a6641d iwl_calib_free_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa99abde2 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xabc2fa56 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaca30d5d iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xacfb9c47 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb05833dd iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb06b3d14 iwl_verify_ucode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbc8584cd iwl_tx_ant_restriction +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbf3e8a91 iwlcore_eeprom_acquire_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc1efd443 iwl_hw_detect +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc1f5d633 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc2cb4039 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc3283519 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc483d490 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca6c9353 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcaa3cd5d iwlcore_eeprom_verify_signature +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbce29bf iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd49736c iwl_tt_handler +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd1006eb3 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd13e4c66 iwlcore_eeprom_release_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd26aab9c iwl_rx_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2c8afbd iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3418096 iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3fd7f23 iwl_mac_beacon_update +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd744e219 iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd85ff242 iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd8ebfa8c iwl_sensitivity_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xda78fed9 iwl_sta_tx_modify_enable_tid +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdd3b9c09 iwl_update_tkip_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde21f5f5 iwl_set_rxon_chain +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde494723 iwl_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdf975850 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe19156ad iwl_set_hw_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe461d409 iwl_rx_missed_beacon_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe5aa08c2 iwl_sta_modify_ps_wake +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7fa4a7d iwl_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8d2ceab iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeb31889f iwl_set_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec4aa05b iwl_remove_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xecab60f7 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xef2bd9dc iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2729abe iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2c0f0cf iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf3b3b1ae iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf3ecf6b8 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf83bea39 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf87ff092 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa3c4ae5 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa4083f6 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfdbf5849 iwl_rf_kill_ct_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe377a12 iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe6df531 iwl_ht_enabled +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff86ee66 iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x00c91064 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0680cca9 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x08a70c11 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1228ac1d orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x19a957fd __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5e1e67e8 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5e421e6a free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8ee08376 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8f5c45a8 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa8c48f16 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xab9ce20b alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb2a45d88 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd9d541ac orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe1b3ef41 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xec2f98b8 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xed697f33 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfd48c38d orinoco_open +EXPORT_SYMBOL drivers/parport/parport 0x06fa0888 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x0bca0815 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x20dd4543 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x3136f79e parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x318c25a2 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x44e12ef8 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x454a4b65 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5327f9b0 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x58d9e3b0 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x5d8bcce3 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x5ec3cbfa parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x66518c8a parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x68f5e7b6 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x6fd87835 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x724bd0e0 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x7695ddd0 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x78a8003c parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x804f42bc parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x80bc65c5 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x908f7683 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xae13c2f9 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xae8418d8 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xc82df2fd parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xcaa40793 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xcf03c499 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xdb590aca parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xdc06b0b1 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xeaf612b5 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xf573535e parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xfd0d0f77 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport_pc 0x495e71dc parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x6290b518 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x03163607 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0f5d1c57 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1073bce9 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2028ac17 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x25296e08 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5bfd0668 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x657203a4 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x65d6e6e2 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x75ae4d73 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7da26995 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8324957b pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9c7cd7cf pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3f22aa2 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd5df011f pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xda1a1899 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf6bfbb16 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfecc3251 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x32400757 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x47d973d8 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4c22ec4a pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x777b6b21 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x920263e9 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaa6dd19e pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc79879b8 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd27089fe pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd9d1b6ca pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdfdfc3d5 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe484230e pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x523d8a6b pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x8c50f44a pccard_static_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xb62ce137 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1551b195 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x16654e60 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x312b6b94 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5e2bd634 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5e45d50c fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6b67f886 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdf83d924 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x008e19ea fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03273b39 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ad3fbad fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0cc2420f fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0dbf64b0 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x13ab0f34 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x19b7494c fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a0ce9b0 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a22d139 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e44f0b0 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a7b0417 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3239cee2 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3a55f3c3 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3f973d2b fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4aefbbb6 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c24c338 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x58e79307 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a7f099d fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x759801ee fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8037fa42 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8064fffc fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x81ed47f3 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ccc51ef fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x923d19e4 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98bf169e fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa393d53b fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6e1deec fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac0c410c fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb3bb56c8 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb465c7a8 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb8b63a15 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc1dd775a fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xca642754 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd885fd0b fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde0fa065 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde9e05f1 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf306e751 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5e7b075 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf6c30aa5 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf9a7cad1 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa3612e2 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfe87fb52 fc_rport_init +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x73bb6c23 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x04b28d17 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x04b8b187 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0b82fda4 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0f3a9039 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x170f44ca osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x225a279f osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x24d26297 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x25edfa45 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x29c9b828 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2c772aaf osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ca557e8 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x34c111ec osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x427b8ee3 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x535abeb9 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x54a1659a osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x54c4d248 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5cb209e4 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6bb4ab38 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6be56e13 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8a0a17d5 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x90d8b17f osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x93dc01e2 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa67a9f06 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa7c88507 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaec2d875 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb7233cbd osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc4bdefcd osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xca922abc osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdb194e30 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe74f3c46 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf0766903 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf42db334 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/osd 0x0170a53f osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x12259e2c osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x173cb136 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x21290eed osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x38ea3038 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x55ce49d3 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x05b0712f qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x184a555c qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x716e212b qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8be28f02 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc6fa5eb4 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xffeb2ad7 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/raid_class 0x260ae95d raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x694be56d raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xf28c489b raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0a1c36f6 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x11d7f547 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x287a42b5 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x38c40705 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x77079ef1 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x84e0c9da fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9cc44331 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa66618a0 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc0674af9 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd98e2172 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xde50d107 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf3ac242e fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf738afb8 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0ca84189 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1646bf17 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2d85d3e1 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3f540a41 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x401fff0b sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x403a7c8b sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x44b29558 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4af99fd8 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4e7d3a47 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x52bf43c6 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x54126141 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6143c43f sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x708a821a sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x79587198 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c4ebbcc sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x83884f3a sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x89756553 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8e8f9b5e sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbc54d52a sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcacb14a7 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcf17d179 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd1e6138f scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe2925be1 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe6173cb0 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf565619f sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf9310ad1 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x13c3cb72 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x6aadfca7 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb0e44c66 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd36899ed spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xe85cc8dc spi_schedule_dv_device +EXPORT_SYMBOL drivers/serial/8250 0x680680f1 serial8250_register_port +EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/serial/serial_core 0x070dae49 uart_remove_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0x1801607c uart_get_divisor +EXPORT_SYMBOL drivers/serial/serial_core 0x198f7272 uart_resume_port +EXPORT_SYMBOL drivers/serial/serial_core 0x1a9f4ea8 uart_get_baud_rate +EXPORT_SYMBOL drivers/serial/serial_core 0x328c8967 uart_unregister_driver +EXPORT_SYMBOL drivers/serial/serial_core 0x43caa83a uart_register_driver +EXPORT_SYMBOL drivers/serial/serial_core 0x7f4eb597 uart_add_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0x9afcabe7 uart_match_port +EXPORT_SYMBOL drivers/serial/serial_core 0xcab4edd1 uart_suspend_port +EXPORT_SYMBOL drivers/serial/serial_core 0xe597264e uart_update_timeout +EXPORT_SYMBOL drivers/serial/serial_core 0xe7a62ec4 uart_write_wakeup +EXPORT_SYMBOL drivers/ssb/ssb 0x1010de92 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x1a6a5412 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x2636dbeb ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x2ebdb4a0 ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x2fa28743 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x32dccc15 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x3454c15d ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x3a5e61f3 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x3f79f75e ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x4055ba5b __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x4135afcb ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x610a0e5a ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x714c951e ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x8cdbee2c ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x90c7c93e ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x96ca9c0b ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x9713744a ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x9ceb228d ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xa7e03216 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xaba90e8a ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xb83703d2 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc16d9662 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xf19cec4b ssb_bus_powerup +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x01dcf191 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x101a4ccc ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1312d66c ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1607389b ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b69c381 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1bb66693 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20cdaaff notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x21b7b506 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2606fde9 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2bc02ab4 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2d2ec18d Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2d4a664a ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3151fe7a ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x359b3a6f ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x38785abb ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c3ba0ac ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d871025 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x41195c3e ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x421b2afe ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4270dd7b ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x448fc77e ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4839a9eb ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4e12d08d ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4f41c0c6 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50400ecc ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50655532 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x512b02ae ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x531d5afe ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x543e222c ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x565eb919 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f2a861a ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6670c6fa ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x69ae7597 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x76a9d1a3 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x78d4513f Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x83352618 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8a794eb8 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x997574b3 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a0a3279 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8614f82 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb11762c4 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc58170ac ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc95109e5 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcbd006ed ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd2b3b2b8 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd518332a ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd13f5bc ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd5b50e5 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe303e0c3 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe3b2109a ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe545ca8c ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xee380d6c ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xefcf1e08 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfb82e0d0 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x0a1be1b9 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xa65b13c6 tm6000_register_extension +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 0x297f0172 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x4b14de75 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x94e6693e phone_unregister_device +EXPORT_SYMBOL drivers/usb/gadget/goku_udc 0x8ab05369 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/goku_udc 0x90bf8ffe usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x8518ea05 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x448f5ba7 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x45a9eea6 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x471bf256 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6f778b92 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7c3e5e78 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7d68c66a usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8af4592b usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x91c90963 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9246a468 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x92de5cd7 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd0c486d0 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd298fc27 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd447718b usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf0dd43ca usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x65734658 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x8f9c63b4 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x2e3ece42 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x92383c17 lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x362f1fce cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x3ea5cbbf cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x4931b437 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xbb5e254c cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/display/display 0xbd761369 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0xfe5f43ae display_device_register +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xe946d191 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0xc40fbdeb video_output_register +EXPORT_SYMBOL drivers/video/output 0xc9681a74 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1c523d14 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x4aeae4f7 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x4dd7b2e8 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x50d0a60c svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x53f8a525 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x563d9317 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x9391a2b0 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0xa095e62a sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x04c7506e sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xc49dc654 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x02f0e6c5 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xea28a70c w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6bff03ba w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x7edc4d0c w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xacbf79ef w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd59efb35 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x03bd8135 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x06abda11 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x4db0182e w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xc3f92789 w1_remove_master_device +EXPORT_SYMBOL fs/configfs/configfs 0x01131b5f configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x39da09f1 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x57f43a21 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x62052eea config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x6ba10fa6 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x96921f82 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xb121ba9e config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xcf7f0dd4 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xed3e75d7 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xf1f486c8 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xfabace46 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xfb0b661e configfs_undepend_item +EXPORT_SYMBOL fs/fscache/fscache 0x00e82afd fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x01ab6fb5 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0be0011c fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x10e33f84 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x184fb593 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x20736120 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x29e9e91b __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x2cccd946 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x32f949a9 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4968bca5 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x56db61f0 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x57616372 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x5abecf2e fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x5b80e4f3 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x6c3de1b6 fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7507d5e9 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x85d48c70 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8bc8da8a __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xa5621d18 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xaeed716b __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xb4153989 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xc2e8fbdf fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xc3c364c4 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xf87fc320 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xfe95fc83 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xfed809a9 __fscache_alloc_page +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/quota/quota_tree 0x7a1ff992 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x82b315a8 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x8768fd6a qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xb248c790 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xf12f3df2 qtree_read_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc-t10dif 0xb6896671 crc_t10dif +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x762ac7e8 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xa860452b destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0baf7861 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x1bee6f9c p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x23e4c045 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x2873d2b0 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x2bf13192 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x2d5bc2b9 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x33622fc4 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x3a5ed1d5 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x3b160571 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x4e15adce v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x4f415d04 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x5b00335a p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x5c1c8aa3 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x60b6f210 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x6587ead4 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x6b3c2242 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x7331b5f7 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x800f93e7 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x8ad0c2b0 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x8f542c86 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x9137b224 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x9320d9fc p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa7b5bd3f v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xac1c90f0 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xb5b8d0df p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xc8d7682a p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xcc6f48bc p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xce4d460f p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe80ad1ae p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xfd70ed05 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xfeec9b13 p9_client_version +EXPORT_SYMBOL net/appletalk/appletalk 0x305f48cc atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x46d38ffb alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xeb5b4993 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xf0a517f1 atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x0cd90401 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x134fb159 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x2f2de207 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x4c041f87 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x58375166 atm_charge +EXPORT_SYMBOL net/atm/atm 0x59c89c78 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x5c7aca99 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x60b75736 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x6ec64974 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x7ee31dd5 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xbaba780c atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x36753f9d ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x528716ac ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x569672bb ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x68e9c407 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xab043e3d ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xae0bac61 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc22c7eee ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xcf1db070 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xeea2755c ax25_header_ops +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0d5718b7 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x174ba62c hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x186d239c hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2b073252 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3125ba52 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x31593398 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b050ff0 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3c2d74f6 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3e398132 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x428d9cc1 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x42f00819 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4dd110fe hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f94cf0c bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74ceea99 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x77e5ad4e hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x87473f56 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9400e43d bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96a517d7 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9ded3003 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa2018935 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xabdb8c02 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbdcbc334 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd1aee147 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd62345fa hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd7debceb bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdb79aaf6 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xde7a25a1 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdee5d514 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe246a1e9 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe56e471a hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xea4ecbe9 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfcd08f78 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0xc6ae9abb br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb303d5ec ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb68ee4ae ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd6cc8bcd ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x052ca864 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x091deb45 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x151fd0e5 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x153087c0 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x18849e5e cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x1afb355c cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x2f5d3cc2 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x36af8e53 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x3abce61d cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x41aa43a1 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4a76406f cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0x513f41d6 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x66d48be3 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x708625f0 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x76ae947c cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0x9550af5b cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0x975da69a cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x9ff10772 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xb39fbb0d cfpkt_more +EXPORT_SYMBOL net/caif/caif 0xb6946c10 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0xbe99133b cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xbf8213a3 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0xc4e21519 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0xc7f9e532 cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0xcdf8c2af cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0xd2163959 cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0xd4c615c3 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xd5212a78 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xdfed93e3 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0xe0dac603 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/can/can 0x246ef4e7 can_rx_register +EXPORT_SYMBOL net/can/can 0x2c0b3991 can_proto_register +EXPORT_SYMBOL net/can/can 0x686842d5 can_send +EXPORT_SYMBOL net/can/can 0xd4de4dc2 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xfe1d7107 can_proto_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0b5ff2c2 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2b24008b ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x39765a67 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x833980f8 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x88b53f0a ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8fa34544 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x90407c82 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xad391f51 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb4d6cf52 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbf04573d wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbfe9d525 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe5de8901 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf29d3881 wpan_phy_register +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x08f0a0dd arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x6df619fa arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x9e9e80fd arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x44433f57 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xa3041294 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xc423ad96 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x15f7e43f nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1f5de115 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x696757a9 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x81b6fb2f __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa303e14c nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xaf686494 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe6a65a7b nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/tunnel4 0x7d0c262b xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x9da89657 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x03a14d2c ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x0611ff73 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0x1172bc53 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x17fe18db xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x210c9e27 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0x2253c978 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x25bc936b ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x27120979 ipv6_chk_prefix +EXPORT_SYMBOL net/ipv6/ipv6 0x2b8adf81 ipv6_dev_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x2f3cf19c ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x59324d18 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x5b485584 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x63f281cd xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x75614956 inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x794aaa53 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x7a5511d8 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x7d75e891 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x834af94f ndisc_build_skb +EXPORT_SYMBOL net/ipv6/ipv6 0x852d7fda ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xa5e7ea78 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0xb0f69c3d ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0xc2cd41e4 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xc33755a2 nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0xcd810a68 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xda55a054 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0xdd31b942 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0xddab669d rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0xe1e70145 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xe45f13a0 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL net/ipv6/ipv6 0xeb885887 xfrm6_prepare_output +EXPORT_SYMBOL net/ipv6/ipv6 0xff244aee ndisc_send_skb +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x6559d151 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x96fe19d7 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe1bbfb19 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe896170a ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x0bc39c6e xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x98088410 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdaab7fc1 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xf2a11298 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xf4bc97d7 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x10a15b34 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2a1e35d3 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3e0eaefa ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3e9765bc ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x758e6738 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9e70f903 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbb45b8e4 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd9e15ba8 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0982f18a irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x0e6627b6 irlap_open +EXPORT_SYMBOL net/irda/irda 0x1dd74fbf iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x24b1a6c2 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x2f483490 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x2fdb818b irttp_dup +EXPORT_SYMBOL net/irda/irda 0x3608a4c9 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x38038f4f proc_irda +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3af875fb irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x3c0e0dd1 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x5dcac61e irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x69f97f3c irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x75c1c1b0 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x761b241e async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7ea552e5 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x9727af18 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xacb6f5ce irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xb1cec8a8 iriap_open +EXPORT_SYMBOL net/irda/irda 0xb92fb31f irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xb9eac412 irlap_close +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xcdbc9b4d irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xdaafe295 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xe9850ad1 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf1cb81c4 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xf405e4f2 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xf417e13a iriap_close +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/l2tp/l2tp_core 0x0490721b l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0x4555772c l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x0a0b1bc1 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x2a332327 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x482587b9 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x6317b6c3 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x89acf626 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xa9ddaa15 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xc28fcc31 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xe682f866 lapb_getparms +EXPORT_SYMBOL net/mac80211/mac80211 0x08510b64 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x0df76e75 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x1353016d ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x231aa5f1 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x252658ce ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x2ad92912 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x2cadac71 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x2fb05aa4 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x3d2ce96e __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x46a7d36e ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x53d9b38c ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x54f29f07 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x62bc7c2e ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x6528a3b3 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x6e6cacf5 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x7011b6ed ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x710c9e8f __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x865674f9 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x94f67b21 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa0ea569b ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xa1420aab ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xaa7a67bb ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xb04c28e1 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb72abe71 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb8253705 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xbba1e174 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xbbcca602 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xbd9cac32 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xc6234f49 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xc94455b3 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xc9f1058b ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xccfbb830 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xd4ae29cb ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xe3e416eb ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xf3f62831 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf52749df ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xfc25de00 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x14dd2833 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1dc82b7a ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x42f4d73b ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5b5565b8 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5c5e9bb8 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x618b829a register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8ae465bd unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa62635a9 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb507f26a ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd514a5c8 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdbe3f928 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x615b9be8 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xde1fb617 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x93b5f264 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x16b54b2b xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x4b3b48de xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x50558aed xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x62dd48f7 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x663d0941 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x827e5b20 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xabb781d1 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xb3adb7ea xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xbd0afa07 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xed60ffb2 xt_find_target +EXPORT_SYMBOL net/phonet/phonet 0x3ef5502e pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x45da0fcc pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x5150c81f pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x7f622bb9 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xca668cdd phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xd36f202b pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xdcdd60fa phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xfbc6bd05 phonet_stream_ops +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0210f39f rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x07e8fe7d rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x230a8bd9 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2bec17a2 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x48979978 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x56864e89 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x66a99705 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8e750dd8 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa6d8a3a7 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa9a86a9b rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbc74b960 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcd8bcc4f rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd4964537 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf4887bd7 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf93d0aff key_type_rxrpc +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23d370bd svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x2ada3ebf tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3f651959 tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x3fef1738 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x562ceef5 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x7892efcf tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x86e7c591 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa9d1a231 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb079a40 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xbbfc18b5 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0xcb668b97 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xf7a10086 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0xf9805ec1 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xfc70e6c1 tipc_register_media +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x7c5f635a register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x406acb00 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x528c0995 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x088b0425 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0d4f8373 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x123d844d ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x237c664d cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x244279e8 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x2a369a86 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x2bc72372 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x361d384c cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x37587fc5 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x375d0129 cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0x3b37c589 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x51c9f6bc cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x53159637 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x5a4878a1 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x5cd5a6ba wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x5fd1a86b cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x632a534b __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x6827f3f6 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x76933cf6 cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x7728ab0e cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x7f96fefc ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x82bb25c7 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x85f37a37 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x896ca7e2 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x93e712d6 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x95c4f927 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9c59fa10 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xa0f5a799 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xa1d14d2c cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xac8fc054 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xb047535a cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb5f58773 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xbfaee3ab cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc8d88b12 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xd0278116 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xd237217f cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xd5c83004 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xded40ca4 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe73edc9c cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xe8e3f9d3 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xe99e0419 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0xffa533af cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/lib80211 0x041b4804 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x20c2dc70 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x409ba21d lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x4853c1b2 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x490d282b lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xa06fc715 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0xa7883a9e lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0xb766d815 lib80211_get_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0xc9a3551c ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x189271b1 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x51710110 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x986e2b11 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb9b531de snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6ff25ecf snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xa9d11b99 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x072d978b snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x13a17752 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2eed26bf snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x4d5ca523 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x592f6e9b snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd7c7afcc snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe60fb228 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xecbde43c snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xf30ba2af snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x079a70c8 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x098a2022 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x112882b2 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x1352916a snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x176f5bee snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x180c6755 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1fe68cad snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x247ab18f snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3a09456c snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x46772da8 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4e51cec6 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x5089b8e7 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x5392722c snd_device_new +EXPORT_SYMBOL sound/core/snd 0x5e0e24aa snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x5e121698 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x5fc783bc snd_device_register +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x6b92814a snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x6bd2c386 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x7c7f6fa6 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x842be34d snd_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x95991e78 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x969e2a39 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa3026361 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xa6fb08c4 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xae5ca938 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb40e2bcd snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xbd23aa7f snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xbf5e3960 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xc231588b snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xd192acf2 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xd5b53b78 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xd970ba66 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xd98b9003 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xdca11749 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0xdfd0def9 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xe09f9653 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe42f6495 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xea062cad snd_cards +EXPORT_SYMBOL sound/core/snd 0xf5c57e7a snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xf8956c30 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xfa755e41 snd_component_add +EXPORT_SYMBOL sound/core/snd 0xfe756742 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xfeced75c snd_card_register +EXPORT_SYMBOL sound/core/snd-hwdep 0xc18a58e4 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x028daf9b snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3c9d6268 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3e6f421e snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x78212d31 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x970ad25c snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x00356835 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x046fdd99 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x09100e70 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0d9e6755 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x177b73ed snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x18957e75 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1ed4524b snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x2a63880a snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x2afbdba8 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x2c3969ad snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x3090eee3 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x33530f2a snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x382e814a snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3afa4a6a snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x3c9c31a6 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x41a022bc snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x4b790cea snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x55956001 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x5c6872ef snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x76738de5 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x84eada06 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x9b63b48e snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x9d0d2384 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xa1771a04 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xa5ce5f75 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xa613e5f3 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa75aca8c snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL sound/core/snd-pcm 0xa79ad99a snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xac421ba4 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xada26737 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xb32bef8a snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc166f4dc snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xdf92278b snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xe1fb510b snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xe2fce467 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xe4c31127 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xeb5916e6 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xf11fd94f snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xf1f43f28 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf6d2646a snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xfcb7a165 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-rawmidi 0x044de0dc snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0c92c773 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3146025d snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x52633351 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5a0a43a5 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x96f29fbd snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa4e50a9e snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa4f9193e snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb282694f snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb9f6aec3 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc7b99e88 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd19e5566 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd417dbf5 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd86d0f88 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe136208c snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xee9be6eb snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfb4d2c44 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-timer 0x1c3cbf07 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x2612cba9 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x314a3bf3 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x67e04791 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x71b8a1bc snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x79294416 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x84669239 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x90385168 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x98ddeb68 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xa9d6f0b0 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xbc1abeee snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xcafa1307 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xead8c4ac snd_timer_global_free +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xf51ef8da snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1c654420 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x47bcf007 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x561ff0aa snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6ab646c1 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x92ecf0a8 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb4994bd8 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc05bb0fe snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcc749642 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xeb0e6241 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x259b3b4f snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x289115cd snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x377bc98d snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6a693eaf snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6d37b5f4 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x79597f5e snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x94999f7d snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa2234825 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc30ad667 snd_vx_free_firmware +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x2260c10a snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8e2046bd snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xaf0af912 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd8ca1a62 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdddae574 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xebddbc76 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x44c17ddf snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x81d130a7 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x9380b33b snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x9814d8f1 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xb772ca2c snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xc1e2ccb9 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x2ab8ec05 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xafbbcff8 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xb53706a5 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xd1f39395 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x83aa7724 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xb5447474 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xdd0aa289 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xfc5a9bc9 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x65580f1f snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x830634a1 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xcaeee13d snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xdb49d7a6 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xe675067e snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x768736b7 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7eb23b9c snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x937da6f1 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xbd96a05c snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xbf714a47 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc9c16610 snd_i2c_probeaddr +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x03840016 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2423006a snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x357843d9 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x783237dd snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa229f7f8 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xad57cbbb snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xbf9a2eb6 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc8de94cf snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe512b5be snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf371f9ff snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x3bd70ac3 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x4928c180 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x914ea436 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0946f599 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x16245269 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x263d418b snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x31658db2 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x465fb04d snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6305aec0 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x68d21ba3 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x90001090 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa9c011d2 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcef89274 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd5395d46 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xddaf0115 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe25eb2eb snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe33dbcd8 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe3ab302d snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe77abbe4 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfd25d875 snd_ac97_bus +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0bf39c7e snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x18cf6f2d snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1af760e4 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x539382e7 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x767f9c21 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc90c5e09 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xca30cb80 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xcf838a8b snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xea58186f snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xbadf7cb7 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1b34a82e snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x5432a563 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x8c49252b snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x30d78766 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x5d5bcc25 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x92275a48 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x9ca409f6 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xd44d2e09 snd_trident_alloc_voice +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x5c2e319d uda134x_dai +EXPORT_SYMBOL sound/soundcore 0xace64f42 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x72630c03 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x7595769f snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x7eea0223 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xbdf0ff95 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xdb4a54c5 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xfdb7147c snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x265f97fc __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7225a89e snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7a3e7292 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7ea0bd1a __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x8071b9df __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x8a4dd038 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbd4ef23b snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf8848fc9 snd_util_memhdr_free +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xfaae68fe snd_usbmidi_create +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00010397 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x0001e66b end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x000b42be dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x001ccf58 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00d0d1a5 pci_pme_active +EXPORT_SYMBOL vmlinux 0x00d1d26f proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x00d6e16d phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x00d89b98 consume_skb +EXPORT_SYMBOL vmlinux 0x00dca760 path_get +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f3d987 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01360f27 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x01516f95 of_device_is_available +EXPORT_SYMBOL vmlinux 0x01527807 security_path_chmod +EXPORT_SYMBOL vmlinux 0x017a8e63 current_fs_time +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01988084 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x01a31aa0 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01bf3885 vga_put +EXPORT_SYMBOL vmlinux 0x01eaf783 init_timer_key +EXPORT_SYMBOL vmlinux 0x021150f6 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x02384e8d ioremap_flags +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x029d2f9e downgrade_write +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02af8ecd pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x02bf7246 padata_start +EXPORT_SYMBOL vmlinux 0x02d0e033 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02ed5b73 mach_powermac +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x030c6f57 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x031d968f generic_show_options +EXPORT_SYMBOL vmlinux 0x03333a13 fd_install +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034e06fa security_path_rename +EXPORT_SYMBOL vmlinux 0x034ee657 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x035fcc39 set_device_ro +EXPORT_SYMBOL vmlinux 0x03768994 bdi_init +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03943d56 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03d347de proto_register +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x040cbe20 delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x04118180 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x04211007 kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042459dc blk_integrity_register +EXPORT_SYMBOL vmlinux 0x042c8ca4 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x04448ce4 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048e1ca5 free_netdev +EXPORT_SYMBOL vmlinux 0x04970785 dev_get_flags +EXPORT_SYMBOL vmlinux 0x049c2fa3 vfs_link +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x053ef8b8 dev_uc_add +EXPORT_SYMBOL vmlinux 0x055498de llc_sap_open +EXPORT_SYMBOL vmlinux 0x055a6542 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x057b31c2 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x059422d8 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x059d6e43 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05b65749 generic_removexattr +EXPORT_SYMBOL vmlinux 0x05ef9862 set_blocksize +EXPORT_SYMBOL vmlinux 0x05ff5f83 pci_find_bus +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x06268a5b dquot_file_open +EXPORT_SYMBOL vmlinux 0x063eaead qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x0651313a xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg +EXPORT_SYMBOL vmlinux 0x0675dbbd do_splice_from +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06948f33 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x069d0652 __netif_schedule +EXPORT_SYMBOL vmlinux 0x06aa9e89 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06c9a7ec sk_filter +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0707403d lock_fb_info +EXPORT_SYMBOL vmlinux 0x071b4b28 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x0723f50d xfrm_lookup +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073f6766 vfs_fsync +EXPORT_SYMBOL vmlinux 0x074493a2 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07c23dff blk_register_region +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x0808609d ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0848f8ae elevator_init +EXPORT_SYMBOL vmlinux 0x0851562e neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x08570365 backlight_force_update +EXPORT_SYMBOL vmlinux 0x0857be31 put_tty_driver +EXPORT_SYMBOL vmlinux 0x087323c0 d_path +EXPORT_SYMBOL vmlinux 0x08af28f7 secpath_dup +EXPORT_SYMBOL vmlinux 0x08b68a63 deactivate_super +EXPORT_SYMBOL vmlinux 0x08e23a0a generic_file_mmap +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x091ddb29 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x091f4b3c lock_may_write +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x094c4820 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x09511669 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0993d57a input_inject_event +EXPORT_SYMBOL vmlinux 0x0997de42 clocksource_register +EXPORT_SYMBOL vmlinux 0x09c34453 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c6a887 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e6d8f5 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x0a043c18 input_allocate_device +EXPORT_SYMBOL vmlinux 0x0a0879ce tcp_check_req +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a3bf2dd blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x0a3c9299 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x0a61bf3e tcf_em_register +EXPORT_SYMBOL vmlinux 0x0a70d68c lock_super +EXPORT_SYMBOL vmlinux 0x0a856814 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x0aa01df4 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x0ab7949e up +EXPORT_SYMBOL vmlinux 0x0abc0c93 write_inode_now +EXPORT_SYMBOL vmlinux 0x0ac5e80e dm_table_put +EXPORT_SYMBOL vmlinux 0x0ac8ab2f pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf8494 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x0aea8dc6 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x0afdc4c8 of_release_dev +EXPORT_SYMBOL vmlinux 0x0b1960de unregister_8022_client +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2d452b bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x0b55e041 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x0b64e9cb tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x0b73652e blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b9be561 register_con_driver +EXPORT_SYMBOL vmlinux 0x0bb28699 do_munmap +EXPORT_SYMBOL vmlinux 0x0bbb7c25 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x0bc82e79 pcim_iomap +EXPORT_SYMBOL vmlinux 0x0c0e1367 load_nls_default +EXPORT_SYMBOL vmlinux 0x0c12e626 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x0c281f2f slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x0c442da7 bdget_disk +EXPORT_SYMBOL vmlinux 0x0c6460a0 simple_rmdir +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6dcd40 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c97f5dc journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x0c9b6089 nvram_get_size +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0ccd89b8 handle_sysrq +EXPORT_SYMBOL vmlinux 0x0cfbe256 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x0d0fba2b generic_setattr +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d9df907 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline +EXPORT_SYMBOL vmlinux 0x0dc99839 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x0ddf9719 d_find_alias +EXPORT_SYMBOL vmlinux 0x0e265eae security_file_mmap +EXPORT_SYMBOL vmlinux 0x0e3af59f bio_map_user +EXPORT_SYMBOL vmlinux 0x0e3b0339 lock_rename +EXPORT_SYMBOL vmlinux 0x0e49b55b dev_driver_string +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e57ae4a xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x0e81295a journal_create +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0ebd5eac i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x0ef20db1 kernstart_addr +EXPORT_SYMBOL vmlinux 0x0ef7fd1a ide_set_handler +EXPORT_SYMBOL vmlinux 0x0f081e14 register_netdevice +EXPORT_SYMBOL vmlinux 0x0f10f097 kfree_skb +EXPORT_SYMBOL vmlinux 0x0f111f8d sock_recvmsg +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f3702fc generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x0f7c04af do_sync_read +EXPORT_SYMBOL vmlinux 0x0f8f6212 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb51ae5 dquot_release +EXPORT_SYMBOL vmlinux 0x0fe29d03 journal_ack_err +EXPORT_SYMBOL vmlinux 0x100546b1 log_start_commit +EXPORT_SYMBOL vmlinux 0x1013bdc0 generic_getxattr +EXPORT_SYMBOL vmlinux 0x10219ee3 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x10308cf3 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x104ffb69 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x1071bbf8 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10e7ad8a journal_force_commit +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f0ea91 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x10f7b186 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11663cec adb_register +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1182c8bb journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11cf27a9 idr_destroy +EXPORT_SYMBOL vmlinux 0x11d3ed77 of_get_pci_address +EXPORT_SYMBOL vmlinux 0x11eb79a6 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1202c9d0 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x120a8f20 of_device_alloc +EXPORT_SYMBOL vmlinux 0x12145d66 sock_i_ino +EXPORT_SYMBOL vmlinux 0x129818b2 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x129aad93 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x12a06ec3 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x12c20095 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12f225be call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x1311d204 tty_check_change +EXPORT_SYMBOL vmlinux 0x1321b495 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x133b4ee4 idr_get_next +EXPORT_SYMBOL vmlinux 0x13418a89 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x1360ce18 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x136a7e8b ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x13b51836 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x13d1c883 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x13df8b90 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x14196390 posix_lock_file +EXPORT_SYMBOL vmlinux 0x14512388 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x1453276c blk_remove_plug +EXPORT_SYMBOL vmlinux 0x145fbaa0 __pagevec_release +EXPORT_SYMBOL vmlinux 0x146c3a94 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x147f0226 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x14871259 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x1488149b netpoll_print_options +EXPORT_SYMBOL vmlinux 0x14972410 neigh_destroy +EXPORT_SYMBOL vmlinux 0x149929b3 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x14caa695 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x14d91685 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x14e0ceaf nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x14e7f68c genphy_suspend +EXPORT_SYMBOL vmlinux 0x14e837a0 idr_find +EXPORT_SYMBOL vmlinux 0x14f3d402 padata_do_serial +EXPORT_SYMBOL vmlinux 0x14fd45c9 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x14ff73a7 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x150c83ae seq_write +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x155fb5ff dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x1562cf6b blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x1572f73b neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x157be413 bioset_free +EXPORT_SYMBOL vmlinux 0x1598d17d bmap +EXPORT_SYMBOL vmlinux 0x15bf17f4 __devm_release_region +EXPORT_SYMBOL vmlinux 0x15c1759a bio_copy_user +EXPORT_SYMBOL vmlinux 0x15d28a8c phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x15e70c1f dst_discard +EXPORT_SYMBOL vmlinux 0x16028fb3 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x161dc972 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x162504d8 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x167e18ee sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x16aa3818 pci_release_regions +EXPORT_SYMBOL vmlinux 0x16ad0fc4 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x16c99baa nf_register_hook +EXPORT_SYMBOL vmlinux 0x170fac3d padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x17193291 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x173e39c8 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x17699a5f genphy_read_status +EXPORT_SYMBOL vmlinux 0x1773246b tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x178cf7ac dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x17b80a3c textsearch_register +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x182e53fb pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x185be656 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x187c0beb inet_frags_init +EXPORT_SYMBOL vmlinux 0x188d52f7 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x194d980a input_event +EXPORT_SYMBOL vmlinux 0x19573cfc unregister_qdisc +EXPORT_SYMBOL vmlinux 0x19610e1f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x1966af30 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x19771143 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x197f2578 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a2b850 ps2_end_command +EXPORT_SYMBOL vmlinux 0x19a478a2 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x19a9dc7f xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x19ae8562 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x19d68e79 dqget +EXPORT_SYMBOL vmlinux 0x19dd12b4 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x19df3b50 udp_proc_register +EXPORT_SYMBOL vmlinux 0x19f1c15d mpage_writepages +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a1ae0b4 simple_fill_super +EXPORT_SYMBOL vmlinux 0x1a2e178d of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x1a3887c4 of_device_register +EXPORT_SYMBOL vmlinux 0x1a529cce kernel_getsockname +EXPORT_SYMBOL vmlinux 0x1a580d93 tty_mutex +EXPORT_SYMBOL vmlinux 0x1a8e5013 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1ab01146 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x1ac68367 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x1ac857bb dquot_commit_info +EXPORT_SYMBOL vmlinux 0x1aca4ce0 locks_init_lock +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae31dc2 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x1ae7a1fc generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b331b8e ps2_init +EXPORT_SYMBOL vmlinux 0x1b33c0da skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x1b433903 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x1b5b6a2f pskb_expand_head +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b88f451 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b996b66 km_query +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba48a29 touch_atime +EXPORT_SYMBOL vmlinux 0x1baddf8d __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x1bc45a1f pneigh_lookup +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bec627c bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x1bfe6326 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x1c012901 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x1c02d0e8 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x1c05261a single_open +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c23db48 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x1c2c5dff __bforget +EXPORT_SYMBOL vmlinux 0x1c439f39 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x1c59a2d7 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c86119d ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x1ca6d6e6 simple_rename +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ce3e976 icmp_send +EXPORT_SYMBOL vmlinux 0x1d0e1f07 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x1d0fd1c8 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x1d24b8c8 skb_clone +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3743bf new_inode +EXPORT_SYMBOL vmlinux 0x1d4eb6b9 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x1d6ad6d2 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x1d71df45 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x1d98f884 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x1da96f6b tty_vhangup +EXPORT_SYMBOL vmlinux 0x1db6b6df __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd87660 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x1de3947e grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x1df67bc9 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x1e239288 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x1e2a2094 d_alloc +EXPORT_SYMBOL vmlinux 0x1e2c95fa pci_get_device +EXPORT_SYMBOL vmlinux 0x1e328b5a machine_id +EXPORT_SYMBOL vmlinux 0x1e3a0492 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x1e3ab746 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x1e6b3008 journal_clear_err +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6d73f8 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea2da2c __dquot_transfer +EXPORT_SYMBOL vmlinux 0x1ecab552 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x1eddf70c unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x1ef2858e ip_fragment +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1efe6125 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x1f03021f ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x1f0a5dd4 put_page +EXPORT_SYMBOL vmlinux 0x1f0e1df7 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x1f0e7c2a dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x1f1f2b0e pci_set_master +EXPORT_SYMBOL vmlinux 0x1f251a27 phy_device_free +EXPORT_SYMBOL vmlinux 0x1f2a9f5f blk_end_request_all +EXPORT_SYMBOL vmlinux 0x1f2ea55d input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x1f46ca74 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x1f4c0f02 generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0x1f6c1648 generic_write_checks +EXPORT_SYMBOL vmlinux 0x1f6f0982 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x1f8830d1 blk_peek_request +EXPORT_SYMBOL vmlinux 0x1fa234f3 __blk_end_request +EXPORT_SYMBOL vmlinux 0x1fab0f1e skb_checksum_help +EXPORT_SYMBOL vmlinux 0x1fc38754 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x1fc4fc9c pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x1ffd068e key_link +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20030ecd ioremap +EXPORT_SYMBOL vmlinux 0x2020f040 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x20650b6f qdisc_destroy +EXPORT_SYMBOL vmlinux 0x206b870b contig_page_data +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x20921a92 matrox_G100 +EXPORT_SYMBOL vmlinux 0x20d0b0c1 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x20f6e19f do_truncate +EXPORT_SYMBOL vmlinux 0x212857e3 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x2131a9e6 unregister_key_type +EXPORT_SYMBOL vmlinux 0x2157779b register_cdrom +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x21803abb mdiobus_scan +EXPORT_SYMBOL vmlinux 0x21a9a531 lookup_one_len +EXPORT_SYMBOL vmlinux 0x21afb7b4 pci_iounmap +EXPORT_SYMBOL vmlinux 0x21c7b5e9 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x21d62c98 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x21d883b3 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x220c08d6 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2231262c matroxfb_wait_for_sync +EXPORT_SYMBOL vmlinux 0x2246b5d2 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22df340d dev_mc_sync +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x2399d550 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x23af8727 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x23c5662c neigh_create +EXPORT_SYMBOL vmlinux 0x23dafc65 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x23e11e58 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fa05df filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24313291 udp_ioctl +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x246704f4 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x247c77cf dev_addr_del +EXPORT_SYMBOL vmlinux 0x249db926 pci_dev_get +EXPORT_SYMBOL vmlinux 0x24a2fcad cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x24de667c lock_sock_nested +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x25111bd7 neigh_for_each +EXPORT_SYMBOL vmlinux 0x2517c399 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x2566989f i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x257396a8 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x25754ce3 of_register_i2c_devices +EXPORT_SYMBOL vmlinux 0x257769a9 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x2585c23d netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x2585cad3 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x25b02aec vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x25c61b20 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x25c7cc42 netlink_ack +EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL vmlinux 0x25d20ec9 __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0x25e4b375 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x25ef4302 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg +EXPORT_SYMBOL vmlinux 0x260b624b key_payload_reserve +EXPORT_SYMBOL vmlinux 0x262b7bfc blkdev_put +EXPORT_SYMBOL vmlinux 0x26367085 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x264bb329 sock_wfree +EXPORT_SYMBOL vmlinux 0x264d4e33 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x265ec9ce path_put +EXPORT_SYMBOL vmlinux 0x266a7e0a scsi_print_sense +EXPORT_SYMBOL vmlinux 0x26807736 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x26aa7849 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x26acaa9e scsi_print_result +EXPORT_SYMBOL vmlinux 0x26b7e711 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x26c81503 sk_dst_check +EXPORT_SYMBOL vmlinux 0x26dd4bce genl_register_ops +EXPORT_SYMBOL vmlinux 0x26e67855 misc_register +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f83397 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x27154718 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count +EXPORT_SYMBOL vmlinux 0x27304c80 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x27417c60 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x2764d9b3 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x277b16f9 sock_no_getname +EXPORT_SYMBOL vmlinux 0x278152a0 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279f6436 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x27b0c2a1 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27d42afc skb_unlink +EXPORT_SYMBOL vmlinux 0x27d47f81 fb_find_mode +EXPORT_SYMBOL vmlinux 0x27d7f363 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x27da76a5 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x27da901a skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x27e76a32 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x280986a9 macio_release_resources +EXPORT_SYMBOL vmlinux 0x2814169c netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x282711f7 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x2847dcbf scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x2855c007 pci_iomap +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28ce4ee8 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x28ff6dcc pci_remove_bus +EXPORT_SYMBOL vmlinux 0x292564fc register_framebuffer +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x297e03ba vm_insert_page +EXPORT_SYMBOL vmlinux 0x298fb541 of_node_put +EXPORT_SYMBOL vmlinux 0x299479d0 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x29a87e2b proc_dostring +EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29c09edd pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x2a08b2a2 prepare_binprm +EXPORT_SYMBOL vmlinux 0x2a08b37a invalidate_partition +EXPORT_SYMBOL vmlinux 0x2a14825c pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x2a2bbd69 neigh_lookup +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a3e76ce pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x2a428131 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x2a676622 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x2a6ce3a4 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x2a74cb3c get_sb_single +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2acedef7 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x2ad968a5 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x2af21d4d blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b12925d cpumask_next_and +EXPORT_SYMBOL vmlinux 0x2b258fa0 inet_release +EXPORT_SYMBOL vmlinux 0x2b2bb755 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x2b304023 ftrace_event_seq +EXPORT_SYMBOL vmlinux 0x2b46956f iget_locked +EXPORT_SYMBOL vmlinux 0x2b4efc52 get_fs_type +EXPORT_SYMBOL vmlinux 0x2b66d630 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x2b6d6933 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x2b6dc613 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x2b71b14b rfkill_unregister +EXPORT_SYMBOL vmlinux 0x2b89e28d phy_stop +EXPORT_SYMBOL vmlinux 0x2b98a711 register_nls +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba2f04f sockfd_lookup +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bbdb9a5 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x2bc107a3 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception +EXPORT_SYMBOL vmlinux 0x2bd389fa d_instantiate +EXPORT_SYMBOL vmlinux 0x2beab17b tcp_ioctl +EXPORT_SYMBOL vmlinux 0x2bf5478d generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x2c039b1f nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x2c1c683c tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x2c594b10 alloc_trdev +EXPORT_SYMBOL vmlinux 0x2c62ec07 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x2c67b71d cdev_add +EXPORT_SYMBOL vmlinux 0x2c801e2d ilookup5 +EXPORT_SYMBOL vmlinux 0x2c919c63 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2ca75bb2 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x2cab5011 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x2cd9b479 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x2ce323bf skb_dequeue +EXPORT_SYMBOL vmlinux 0x2cef047f pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2cf9db12 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d42958b dquot_quota_off +EXPORT_SYMBOL vmlinux 0x2d4545b5 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x2d47e59b jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x2d657011 skb_checksum +EXPORT_SYMBOL vmlinux 0x2d82d7b1 serio_open +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2dbda3e4 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x2ddf73f6 get_phy_id +EXPORT_SYMBOL vmlinux 0x2e130238 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x2e25993e bio_alloc +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e3f3b62 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e6926f6 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x2e7e278c udp_poll +EXPORT_SYMBOL vmlinux 0x2eb35d6f scsi_target_resume +EXPORT_SYMBOL vmlinux 0x2ed0e69e simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x2ed73949 simple_empty +EXPORT_SYMBOL vmlinux 0x2ed86984 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x2ef79a90 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x2f0ef45e ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x2f64ca03 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x2f9e8a34 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb75ce7 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x2fecd2e6 blk_rq_init +EXPORT_SYMBOL vmlinux 0x303bbe37 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x303c7460 generic_setlease +EXPORT_SYMBOL vmlinux 0x306c571c input_mt_create_slots +EXPORT_SYMBOL vmlinux 0x307b3a57 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x3089b318 cad_pid +EXPORT_SYMBOL vmlinux 0x309ea57e sk_release_kernel +EXPORT_SYMBOL vmlinux 0x30c4dd04 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x30cb1b54 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x30fb977c register_filesystem +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x312f867e xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x31465a9f blk_put_request +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x314bf3f9 unlock_super +EXPORT_SYMBOL vmlinux 0x3163a2bc con_is_bound +EXPORT_SYMBOL vmlinux 0x316cd9fe down +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31a0c8e3 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x31a89846 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x31ad173e tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x31b5282b vfs_rename +EXPORT_SYMBOL vmlinux 0x31d383cb unregister_snap_client +EXPORT_SYMBOL vmlinux 0x31d3cba6 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x31e03647 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x31ed1707 down_timeout +EXPORT_SYMBOL vmlinux 0x3233ce06 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x323a64d1 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x324f248c pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x32ae21da tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x32d3e062 lock_may_read +EXPORT_SYMBOL vmlinux 0x32d9269d revalidate_disk +EXPORT_SYMBOL vmlinux 0x32e6db8c of_device_get_modalias +EXPORT_SYMBOL vmlinux 0x32e9a977 pskb_copy +EXPORT_SYMBOL vmlinux 0x3342f8f1 ip_dev_find +EXPORT_SYMBOL vmlinux 0x338e3320 drop_super +EXPORT_SYMBOL vmlinux 0x33b1d5b4 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x33b4ea05 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x34117b43 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x342e7668 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x34487528 fget +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x34506128 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x3493c42a nf_log_unregister +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34d681be mdiobus_register +EXPORT_SYMBOL vmlinux 0x34e25708 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x34e9ce82 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x34f61245 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x350feb50 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0x3529e899 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x35719971 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x357b6406 dquot_acquire +EXPORT_SYMBOL vmlinux 0x35ba3c3d tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x36014512 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x36118a48 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x361815ed ether_setup +EXPORT_SYMBOL vmlinux 0x362e961a posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x3633f9c7 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x365ca8bc stop_tty +EXPORT_SYMBOL vmlinux 0x36a0b248 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36cfa514 pci_release_region +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36ee510f iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x36fcf031 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x370b331b of_platform_bus_type +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x3726b098 set_binfmt +EXPORT_SYMBOL vmlinux 0x3733bbc9 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x373cb495 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x376f82a5 prepare_creds +EXPORT_SYMBOL vmlinux 0x377b1a39 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x378fd47f blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x3791f3ce kmem_cache_size +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37e21e8f wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x380e0a6f filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38357068 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x383e9e35 request_key +EXPORT_SYMBOL vmlinux 0x386ade0c simple_set_mnt +EXPORT_SYMBOL vmlinux 0x38731895 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389cbc08 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x38a03be8 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x38a9f1b6 init_buffer +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c0c1f9 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x38c525f3 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x38d9b936 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x38e3f84c journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x3919e4f4 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x3928e363 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x394e0618 scsi_unregister +EXPORT_SYMBOL vmlinux 0x3974827e arp_create +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3983e396 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x398a20e3 seq_bitmap +EXPORT_SYMBOL vmlinux 0x398f4cd5 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39d0d52c unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x39f6c8a4 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x3a199e13 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a3c2a9e dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x3a426c68 km_state_notify +EXPORT_SYMBOL vmlinux 0x3a66a0ee inetdev_by_index +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3b0212a1 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x3b2908a0 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x3b2f7c75 tc_classify +EXPORT_SYMBOL vmlinux 0x3b3008a9 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b398064 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x3b414bb7 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b6c16ad pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x3b7f7444 ide_geometry_proc_fops +EXPORT_SYMBOL vmlinux 0x3b90e87f qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x3b976d7d netlink_set_err +EXPORT_SYMBOL vmlinux 0x3ba43902 rtnl_notify +EXPORT_SYMBOL vmlinux 0x3bb620d8 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x3bc37557 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bea5c26 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x3c0922f8 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x3c0f324d get_sb_bdev +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c3dd041 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x3c4e3266 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x3c506e15 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x3c690a7c input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x3c91571c eth_type_trans +EXPORT_SYMBOL vmlinux 0x3c9caf3b page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3caf2d64 matroxfb_unregister_driver +EXPORT_SYMBOL vmlinux 0x3cbccaaa mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x3cc21d0f pci_bus_type +EXPORT_SYMBOL vmlinux 0x3cdc2eef i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf2f15e dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x3cf8e53f fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0x3cf8faaa journal_restart +EXPORT_SYMBOL vmlinux 0x3d1af43c clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x3d265fa5 pci_find_capability +EXPORT_SYMBOL vmlinux 0x3d2cbde8 tty_hangup +EXPORT_SYMBOL vmlinux 0x3d3f2e0a bio_clone +EXPORT_SYMBOL vmlinux 0x3d48c942 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x3d62f309 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3dbe496f do_splice_to +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e1c540b dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x3e22a1e2 kill_fasync +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e3e3eec tcp_close +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e7775db alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x3e83d19d free_buffer_head +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e9dd507 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x3ea69b5d tcf_hash_search +EXPORT_SYMBOL vmlinux 0x3eb1fd38 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x3ebfb2e1 key_alloc +EXPORT_SYMBOL vmlinux 0x3ec8a8f2 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ed6bbc7 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x3ee233e7 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f0562cc softnet_data +EXPORT_SYMBOL vmlinux 0x3f0e4888 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x3f34004c phy_start +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f6f8c27 ide_do_reset +EXPORT_SYMBOL vmlinux 0x3f8f9133 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x3fad240a tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x3fd2ebd6 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x3fec5bdd switch_mmu_context +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x401c65e1 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x402f6d86 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x4039d01f noop_fsync +EXPORT_SYMBOL vmlinux 0x404064fc skb_copy_expand +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405be869 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40cd3e5e jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x40cf7721 simple_unlink +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x40faf663 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x41065b20 thaw_bdev +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4126c789 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x41616eb7 serio_close +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x41853316 seq_open_private +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41b0bfae vfs_rmdir +EXPORT_SYMBOL vmlinux 0x41c169cb matrox_millennium +EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421bbedf otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x42454db6 of_device_unregister +EXPORT_SYMBOL vmlinux 0x428ea342 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x42927eaa sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42c81629 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x42d2702e __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x42f0e571 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x42f66ea6 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43088467 pci_busdev_to_OF_node +EXPORT_SYMBOL vmlinux 0x4323c705 skb_find_text +EXPORT_SYMBOL vmlinux 0x432d4a9f sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x4346be0a blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x435b7d0e netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437070c1 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x438a1960 __getblk +EXPORT_SYMBOL vmlinux 0x439f5971 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43a63ea5 of_get_property +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43ac0b61 security_path_unlink +EXPORT_SYMBOL vmlinux 0x43bd2b7c file_remove_suid +EXPORT_SYMBOL vmlinux 0x43d47d5d follow_down +EXPORT_SYMBOL vmlinux 0x43de9bfc inode_needs_sync +EXPORT_SYMBOL vmlinux 0x43e64d61 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x43e81018 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x4417927a set_page_dirty +EXPORT_SYMBOL vmlinux 0x4430c75c ida_pre_get +EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x44713a18 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44db9120 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x4514b083 macio_release_resource +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4543ceb1 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x45477ff4 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x454c8c32 simple_setattr +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4569429a tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x456aa011 bio_map_kern +EXPORT_SYMBOL vmlinux 0x456dacb1 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x45725db3 journal_forget +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x457c601d nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x45859b46 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x458c9240 cdrom_open +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x459c53c4 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x45b3e44c __dst_free +EXPORT_SYMBOL vmlinux 0x45b9bd86 vfs_create +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45d66528 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x4617d165 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x463fca37 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x464c2318 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x465270fa bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x46542c78 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x465757c3 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x468e0dd8 mach_chrp +EXPORT_SYMBOL vmlinux 0x46ad1a90 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x473230b1 __nla_put +EXPORT_SYMBOL vmlinux 0x474cff45 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c1491 fb_blank +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47be26f6 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x47c20906 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x47f7a535 dev_get_stats +EXPORT_SYMBOL vmlinux 0x47fb3ba5 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x47ff4050 open_by_devnum +EXPORT_SYMBOL vmlinux 0x48000553 mempool_create_node +EXPORT_SYMBOL vmlinux 0x480d0daa inet_listen +EXPORT_SYMBOL vmlinux 0x481ce6ce cpu_active_mask +EXPORT_SYMBOL vmlinux 0x481d3fef tty_set_operations +EXPORT_SYMBOL vmlinux 0x4832775a vm_map_ram +EXPORT_SYMBOL vmlinux 0x48368802 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x483acdc0 seq_lseek +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x484ad7e5 block_commit_write +EXPORT_SYMBOL vmlinux 0x484c9e38 proc_symlink +EXPORT_SYMBOL vmlinux 0x484fae61 skb_queue_head +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486d5667 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x4897e55b journal_destroy +EXPORT_SYMBOL vmlinux 0x489ba707 freeze_bdev +EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x48d541ec dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x48e3a121 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x48f0326e mod_timer +EXPORT_SYMBOL vmlinux 0x48fba7ab xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x49158b24 cdev_del +EXPORT_SYMBOL vmlinux 0x493fa94e sock_create +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x498c138d mnt_pin +EXPORT_SYMBOL vmlinux 0x49afff0d end_page_writeback +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b3bb01 matroxfb_vgaHWrestore +EXPORT_SYMBOL vmlinux 0x49b48b44 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x49bc457a xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x49c5b246 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x49ceda3e of_register_driver +EXPORT_SYMBOL vmlinux 0x49dcff17 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49e8bf59 vfs_writev +EXPORT_SYMBOL vmlinux 0x4a12928e eth_change_mtu +EXPORT_SYMBOL vmlinux 0x4a185388 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x4a191284 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x4a290d4d cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x4a30e98a blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x4a32f7c2 log_wait_commit +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a8ef43f keyring_search +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4aa4f936 tcp_child_process +EXPORT_SYMBOL vmlinux 0x4aaa83bc netif_notify_peers +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4aba8318 seq_read +EXPORT_SYMBOL vmlinux 0x4ad786e8 unregister_console +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4aff6a9b swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x4b312eb8 lookup_bdev +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b41cbcd pipe_to_file +EXPORT_SYMBOL vmlinux 0x4b7b4105 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4b85955d xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x4b9f63b6 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c135d5b pci_enable_device +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c5f517c inet_bind +EXPORT_SYMBOL vmlinux 0x4c67c07c pci_request_regions +EXPORT_SYMBOL vmlinux 0x4c6963a8 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x4c7cc852 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x4c7d2327 page_symlink +EXPORT_SYMBOL vmlinux 0x4ca6fdb1 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x4caf5475 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cfcac94 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x4d0577b6 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d3dfc6b neigh_table_clear +EXPORT_SYMBOL vmlinux 0x4d6ed0e7 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x4d91d4a2 sock_wake_async +EXPORT_SYMBOL vmlinux 0x4d92ff14 ide_stall_queue +EXPORT_SYMBOL vmlinux 0x4d9f8a73 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x4da19f54 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e2a6505 neigh_update +EXPORT_SYMBOL vmlinux 0x4e2d7b67 elv_rb_add +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e64a008 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ea3313f km_policy_notify +EXPORT_SYMBOL vmlinux 0x4ee0e109 simple_link +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f65093b pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x4fb46bb4 blk_insert_request +EXPORT_SYMBOL vmlinux 0x4fcf9eb9 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe107d5 proc_create_data +EXPORT_SYMBOL vmlinux 0x4fe99583 atomic64_dec_if_positive +EXPORT_SYMBOL vmlinux 0x4ff21aca sk_run_filter +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5048ca64 journal_revoke +EXPORT_SYMBOL vmlinux 0x504bee43 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x5052fa95 napi_frags_finish +EXPORT_SYMBOL vmlinux 0x505d8e61 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x505fd53f block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5087ceeb vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x509d6bde inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x50f81e4f jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x50f98fdd ll_rw_block +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x51331cc4 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x5144a588 matroxfb_read_pins +EXPORT_SYMBOL vmlinux 0x51584cf4 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x5160e77d tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5169ecc7 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51a45f95 blk_init_queue +EXPORT_SYMBOL vmlinux 0x51a80da7 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x51b7f9c0 bio_put +EXPORT_SYMBOL vmlinux 0x51bd55c3 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x51c5bed6 cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51df07ab make_bad_inode +EXPORT_SYMBOL vmlinux 0x51e55c68 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x51e8fdcb elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f23a92 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52241ad9 seq_path +EXPORT_SYMBOL vmlinux 0x52502323 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52c064ae dma_pool_create +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x52ec8317 skb_set_dev +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x532367ba kthread_create +EXPORT_SYMBOL vmlinux 0x532dadd1 phy_driver_register +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533bcd85 find_lock_page +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x534e08b1 alloc_disk +EXPORT_SYMBOL vmlinux 0x534f25c4 DAC1064_global_init +EXPORT_SYMBOL vmlinux 0x53684554 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x5386a8b9 elv_register_queue +EXPORT_SYMBOL vmlinux 0x539672ab tcf_exts_change +EXPORT_SYMBOL vmlinux 0x539b274c file_permission +EXPORT_SYMBOL vmlinux 0x53afdfd8 generic_readlink +EXPORT_SYMBOL vmlinux 0x53ba2d9e xfrm_register_km +EXPORT_SYMBOL vmlinux 0x53bf6ec3 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c604c0 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x53e67541 llc_sap_close +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53ed7944 page_address +EXPORT_SYMBOL vmlinux 0x53efdb14 __break_lease +EXPORT_SYMBOL vmlinux 0x541b3680 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5440cbbb blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x5481cb2b devm_ioremap +EXPORT_SYMBOL vmlinux 0x548ad1d3 do_SAK +EXPORT_SYMBOL vmlinux 0x549c29f2 slow_work_cancel +EXPORT_SYMBOL vmlinux 0x54c587fe security_file_permission +EXPORT_SYMBOL vmlinux 0x54dda4a1 phy_print_status +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x550358a5 iunique +EXPORT_SYMBOL vmlinux 0x553af6bb __register_binfmt +EXPORT_SYMBOL vmlinux 0x555df0ea set_anon_super +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x557f93e2 dm_put_device +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x559a83e5 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55a3dbef nobh_write_end +EXPORT_SYMBOL vmlinux 0x55b428df input_close_device +EXPORT_SYMBOL vmlinux 0x55b44318 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x55cfaa50 skb_pull +EXPORT_SYMBOL vmlinux 0x55dd1a4c cap_file_mmap +EXPORT_SYMBOL vmlinux 0x55e7830f scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x56215391 udp_disconnect +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563b85ee ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x5682f4fb mb_cache_create +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56ad6517 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x56bc3f93 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x56bd63a3 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c4cd1f scsi_host_get +EXPORT_SYMBOL vmlinux 0x56c5c623 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56e071db slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x56e35589 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x56fb3220 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5781a64b scsi_register_driver +EXPORT_SYMBOL vmlinux 0x5790ce28 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x5796f5f1 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x57a28af7 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57cb7463 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x57ce27f8 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e65489 blkdev_get +EXPORT_SYMBOL vmlinux 0x57ee037f dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x57f0c9de scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x57f91763 inode_init_once +EXPORT_SYMBOL vmlinux 0x580406b7 matroxfb_register_driver +EXPORT_SYMBOL vmlinux 0x580b519d ide_wait_stat +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583f05e6 fsync_bdev +EXPORT_SYMBOL vmlinux 0x584c08e6 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x584f0d58 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5881d5b9 security_path_mknod +EXPORT_SYMBOL vmlinux 0x588cbc63 input_free_device +EXPORT_SYMBOL vmlinux 0x58aa82f3 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x58ab4e31 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x58ac2a3d netif_device_detach +EXPORT_SYMBOL vmlinux 0x58b90939 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x58d3b297 page_put_link +EXPORT_SYMBOL vmlinux 0x58d649a8 netdev_state_change +EXPORT_SYMBOL vmlinux 0x58d75400 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x58f6f3fd vfs_readlink +EXPORT_SYMBOL vmlinux 0x58fe360f names_cachep +EXPORT_SYMBOL vmlinux 0x590e466f dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e75da set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x5977d657 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59c8e958 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x59cf42da skb_make_writable +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59dbc4e4 do_sync_write +EXPORT_SYMBOL vmlinux 0x59eada03 netlink_unicast +EXPORT_SYMBOL vmlinux 0x59fedbde d_alloc_root +EXPORT_SYMBOL vmlinux 0x5a0a07f9 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x5a3fc51c replace_mount_options +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7ef4fc audit_log_end +EXPORT_SYMBOL vmlinux 0x5a876d09 pci_map_rom +EXPORT_SYMBOL vmlinux 0x5a8b55bf dcache_dir_open +EXPORT_SYMBOL vmlinux 0x5a9e9d9c d_rehash +EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ +EXPORT_SYMBOL vmlinux 0x5b07bc67 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b2d7d1b vfs_readv +EXPORT_SYMBOL vmlinux 0x5b3655bd pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b4bcfcd napi_gro_frags +EXPORT_SYMBOL vmlinux 0x5b629efc bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b6feda4 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x5b8d6db7 force_sig +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5b98edfe kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x5ba2be1f g450_mnp2f +EXPORT_SYMBOL vmlinux 0x5baefbd3 note_scsi_host +EXPORT_SYMBOL vmlinux 0x5bb34e5d sock_no_poll +EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5cb54985 hippi_type_trans +EXPORT_SYMBOL vmlinux 0x5cec0231 arp_xmit +EXPORT_SYMBOL vmlinux 0x5d04afec jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x5d0e39f6 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x5d1a943f send_sig_info +EXPORT_SYMBOL vmlinux 0x5d371b16 inet_getname +EXPORT_SYMBOL vmlinux 0x5d6cb48c simple_transaction_read +EXPORT_SYMBOL vmlinux 0x5de136e8 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x5e2174fa wireless_spy_update +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e4767ce mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x5e657569 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb218e0 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x5ebb5483 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x5ecd236a blk_start_queue +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f01d69b tty_port_open +EXPORT_SYMBOL vmlinux 0x5f1f8e33 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x5f61c8e4 d_lookup +EXPORT_SYMBOL vmlinux 0x5f75374e key_type_keyring +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5fcad88a kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x5fd48649 seq_putc +EXPORT_SYMBOL vmlinux 0x5fef1194 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x6002ce4a tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6037968d seq_printf +EXPORT_SYMBOL vmlinux 0x60451cd3 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x60637e04 d_invalidate +EXPORT_SYMBOL vmlinux 0x6089e50d blk_complete_request +EXPORT_SYMBOL vmlinux 0x60964edd arp_tbl +EXPORT_SYMBOL vmlinux 0x6099ced7 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60d2bf8e simple_statfs +EXPORT_SYMBOL vmlinux 0x60e9bd52 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x60f66f9f __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61522d76 cdrom_release +EXPORT_SYMBOL vmlinux 0x615865f9 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x618673e7 bd_release +EXPORT_SYMBOL vmlinux 0x618beced pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x619486bf block_truncate_page +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d6f0e5 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x61ffbb9a macio_register_driver +EXPORT_SYMBOL vmlinux 0x62168b45 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type +EXPORT_SYMBOL vmlinux 0x624f29c7 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x6258ff7a panic_notifier_list +EXPORT_SYMBOL vmlinux 0x62669b3b swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628332e8 pmu_power_flags +EXPORT_SYMBOL vmlinux 0x62972c06 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x62a10bb2 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x62d8abb3 aio_complete +EXPORT_SYMBOL vmlinux 0x62fcc07b devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x635ec30e fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x636a5cc8 dev_trans_start +EXPORT_SYMBOL vmlinux 0x63704b2b pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x6379439f del_timer_sync +EXPORT_SYMBOL vmlinux 0x6382ac21 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x63902f38 __serio_register_port +EXPORT_SYMBOL vmlinux 0x6394ba35 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x63aa1666 inet_addr_type +EXPORT_SYMBOL vmlinux 0x63c8311d jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x63f12ca2 fb_pan_display +EXPORT_SYMBOL vmlinux 0x63f544ca scm_fp_dup +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64087c96 update_region +EXPORT_SYMBOL vmlinux 0x641c5b94 ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0x6436b09c kernel_getpeername +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x647a22df i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x647ac7ae journal_flush +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64b2b340 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x64b45a58 __lookup_one_len +EXPORT_SYMBOL vmlinux 0x64e2cf24 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x64e3690a skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x6507cf22 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x6513ac61 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651be9e5 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x6537956f padata_alloc +EXPORT_SYMBOL vmlinux 0x653b5854 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65bbd361 kset_register +EXPORT_SYMBOL vmlinux 0x65bce318 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x65f34123 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x663edccf vfs_write +EXPORT_SYMBOL vmlinux 0x6663db60 __init_rwsem +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x669297cc __destroy_inode +EXPORT_SYMBOL vmlinux 0x669f08bb security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x66b9578d may_umount +EXPORT_SYMBOL vmlinux 0x66c74729 km_report +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66e7dff9 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x66ea88eb pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0x66f2586e xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x671ad855 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x6721e3f4 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x6733f365 blk_init_tags +EXPORT_SYMBOL vmlinux 0x67410c83 of_gpio_count +EXPORT_SYMBOL vmlinux 0x674b3ed5 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x67582533 bio_add_page +EXPORT_SYMBOL vmlinux 0x676d8538 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x6776d451 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x6797510c phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x679af757 audit_log_format +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67e8814a tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x6814f2ab filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x681a7a61 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x683b71c2 dquot_commit +EXPORT_SYMBOL vmlinux 0x6856d434 vfs_readdir +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x68681105 dquot_alloc +EXPORT_SYMBOL vmlinux 0x68728813 journal_errno +EXPORT_SYMBOL vmlinux 0x68c29a9f fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x68d7082d unlock_page +EXPORT_SYMBOL vmlinux 0x68e0e289 idr_remove +EXPORT_SYMBOL vmlinux 0x68e8f83c rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x68e939f7 noop_qdisc +EXPORT_SYMBOL vmlinux 0x69052164 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x692b1fb8 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x6943ce55 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x6958a71c dget_locked +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6971c3df __any_online_cpu +EXPORT_SYMBOL vmlinux 0x69734c28 user_revoke +EXPORT_SYMBOL vmlinux 0x697c56de pci_choose_state +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69b4e605 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d7e5b8 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69fbf780 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a1edc91 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x6a2cb014 giveup_altivec +EXPORT_SYMBOL vmlinux 0x6a378395 read_cache_page +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a7025cc key_unlink +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6aab6133 copy_io_context +EXPORT_SYMBOL vmlinux 0x6abfd79c module_refcount +EXPORT_SYMBOL vmlinux 0x6ac76c92 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6b11af51 phy_disconnect +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b3ad36e __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x6b3caa25 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x6b3d2f69 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x6b43ceee backlight_device_register +EXPORT_SYMBOL vmlinux 0x6b4b285d iput +EXPORT_SYMBOL vmlinux 0x6b4e7978 dev_change_flags +EXPORT_SYMBOL vmlinux 0x6b5064c6 get_io_context +EXPORT_SYMBOL vmlinux 0x6b70da25 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x6b78f88b swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x6b8c5814 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x6b969b33 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc68b82 dm_table_event +EXPORT_SYMBOL vmlinux 0x6bc7ad3d register_qdisc +EXPORT_SYMBOL vmlinux 0x6bd2f2f7 unlock_buffer +EXPORT_SYMBOL vmlinux 0x6bd68f52 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c25493b con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x6c39dacc jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x6c54a423 tty_register_driver +EXPORT_SYMBOL vmlinux 0x6c601604 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c783030 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read +EXPORT_SYMBOL vmlinux 0x6cb4795d dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x6cc3f295 macio_dev_get +EXPORT_SYMBOL vmlinux 0x6cd03589 kobject_add +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf8437f mac_find_mode +EXPORT_SYMBOL vmlinux 0x6d1c0460 soft_cursor +EXPORT_SYMBOL vmlinux 0x6d26b0c3 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d28d805 rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d5ffa66 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6dd5d215 of_get_parent +EXPORT_SYMBOL vmlinux 0x6decc601 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e06c422 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x6e325edc vga_tryget +EXPORT_SYMBOL vmlinux 0x6e383dd6 gen_pool_add +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e8ae00b mnt_unpin +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eac7299 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x6eccca25 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x6ee5e9b7 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x6f286a02 flush_old_exec +EXPORT_SYMBOL vmlinux 0x6f481862 check_disk_change +EXPORT_SYMBOL vmlinux 0x6f62e8cb ide_dma_off +EXPORT_SYMBOL vmlinux 0x6f76839b get_gendisk +EXPORT_SYMBOL vmlinux 0x6f7e9059 key_validate +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6fbd6ee0 filp_open +EXPORT_SYMBOL vmlinux 0x6fc817e1 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x7000350a tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x7016be04 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x70339a0d of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x7046799f ide_dump_status +EXPORT_SYMBOL vmlinux 0x70513602 __bio_clone +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705c57b2 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x706fd268 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x709703ed bio_integrity_free +EXPORT_SYMBOL vmlinux 0x7099b80d jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x710c358a of_dev_put +EXPORT_SYMBOL vmlinux 0x711cd0ae of_iomap +EXPORT_SYMBOL vmlinux 0x711dd9b5 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7134b35b generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x715657bb __scsi_add_device +EXPORT_SYMBOL vmlinux 0x71817b83 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x718881ca pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71b65be2 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x71c8da94 set_irq_chip +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x7200fb20 vfs_symlink +EXPORT_SYMBOL vmlinux 0x7224fe74 seq_open +EXPORT_SYMBOL vmlinux 0x722b973e scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x72881bec generic_read_dir +EXPORT_SYMBOL vmlinux 0x7299be44 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x72a8ff56 block_write_begin +EXPORT_SYMBOL vmlinux 0x72ae1147 skb_put +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b9a57d wireless_send_event +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72c8dfba sock_no_accept +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7306a44b vfs_statfs +EXPORT_SYMBOL vmlinux 0x7342496a llc_sap_find +EXPORT_SYMBOL vmlinux 0x735841ac elv_abort_queue +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x73b435ae scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x73b884cd vfs_read +EXPORT_SYMBOL vmlinux 0x73be727b arp_find +EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x73c16eed fasync_helper +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73fc870b try_to_release_page +EXPORT_SYMBOL vmlinux 0x7405ba65 notify_change +EXPORT_SYMBOL vmlinux 0x740de695 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x744b6997 vc_resize +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x745ab09e da903x_query_status +EXPORT_SYMBOL vmlinux 0x74857350 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74b8fab3 dev_mc_init +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1bba scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74e384a2 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x74e70a62 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x75028292 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x751bd2bb scsi_print_command +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x753f4433 __rta_fill +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +EXPORT_SYMBOL vmlinux 0x758719a3 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75dbb416 set_user_nice +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x760eb6fb inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x761d437e generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x76551324 bdi_unregister +EXPORT_SYMBOL vmlinux 0x765aff4e netif_rx +EXPORT_SYMBOL vmlinux 0x768b0267 tty_write_room +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c9f932 generic_write_sync +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e07962 idr_get_new +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x77073521 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77755433 cdev_init +EXPORT_SYMBOL vmlinux 0x7783e3a5 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x77b06860 serio_reconnect +EXPORT_SYMBOL vmlinux 0x77b851c4 cacheable_memzero +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77ed2cec pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x7807610d scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x781863f9 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x78531a2a llc_add_pack +EXPORT_SYMBOL vmlinux 0x78619871 path_lookup +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x789b5a0b tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78ed3e5c __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x792e533e phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x793e4990 elv_rb_find +EXPORT_SYMBOL vmlinux 0x79587bb2 register_exec_domain +EXPORT_SYMBOL vmlinux 0x796c4ab6 journal_set_features +EXPORT_SYMBOL vmlinux 0x796eeb87 bd_claim +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79a69fe2 i2c_transfer +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79c9a3cb gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x79cb4399 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x79ff8f85 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x7a07a44c dquot_destroy +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a36156f skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a523277 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x7a6b7981 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7a993640 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7acd4d82 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x7ae78f81 is_bad_inode +EXPORT_SYMBOL vmlinux 0x7b25d917 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x7b377a63 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x7b37a6a1 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x7b5f42b9 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b7badb4 d_move +EXPORT_SYMBOL vmlinux 0x7b9c4ed6 napi_get_frags +EXPORT_SYMBOL vmlinux 0x7ba03690 of_get_gpio_flags +EXPORT_SYMBOL vmlinux 0x7bc4c4f7 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x7bd12226 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bdd7e0d scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c0ad8c9 free_task +EXPORT_SYMBOL vmlinux 0x7c2c7651 wake_up_process +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c47f757 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c63bc82 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x7c7e056c elv_queue_empty +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cc0ae36 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x7ccf49f0 tcf_register_action +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d5b69c0 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x7d5d7b1a module_layout +EXPORT_SYMBOL vmlinux 0x7d7c7534 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x7d8570fb give_up_console +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dcace87 kthread_bind +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd868c9 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x7dfaa188 matroxfb_g450_setpll_cond +EXPORT_SYMBOL vmlinux 0x7e008649 generic_permission +EXPORT_SYMBOL vmlinux 0x7e299187 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e5f0452 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x7e67b88b scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x7e7bade3 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x7e9b92b0 dev_mc_del +EXPORT_SYMBOL vmlinux 0x7e9fe342 phy_device_register +EXPORT_SYMBOL vmlinux 0x7ecf9ba1 vmap +EXPORT_SYMBOL vmlinux 0x7eef489c simple_readpage +EXPORT_SYMBOL vmlinux 0x7f07d984 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x7f1ca282 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f3d1970 get_write_access +EXPORT_SYMBOL vmlinux 0x7f801a40 d_validate +EXPORT_SYMBOL vmlinux 0x7f8a9e0c disk_stack_limits +EXPORT_SYMBOL vmlinux 0x7f9ce8fe ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x7fa958bf __napi_schedule +EXPORT_SYMBOL vmlinux 0x7fc80d95 tty_devnum +EXPORT_SYMBOL vmlinux 0x7fd6e99e skb_push +EXPORT_SYMBOL vmlinux 0x7fdbf351 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x7feb09d0 genphy_config_advert +EXPORT_SYMBOL vmlinux 0x80013d87 poll_freewait +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x802659eb elv_add_request +EXPORT_SYMBOL vmlinux 0x802ae94c netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x803f1495 down_read +EXPORT_SYMBOL vmlinux 0x80600ad1 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x80710c00 d_alloc_name +EXPORT_SYMBOL vmlinux 0x80add72f jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x80c4e9a1 pipe_lock +EXPORT_SYMBOL vmlinux 0x80df4a7f sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x810ffd80 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x8115f117 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x813fd432 scsi_device_get +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x817bcbdf fb_validate_mode +EXPORT_SYMBOL vmlinux 0x81819480 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81b95cd2 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81c6850f tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x81c92d62 tty_port_close +EXPORT_SYMBOL vmlinux 0x81d712ff register_sysrq_key +EXPORT_SYMBOL vmlinux 0x81e01be5 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x82023a1f eth_header +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8226ba80 I_BDEV +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x824bee81 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82716049 dqstats +EXPORT_SYMBOL vmlinux 0x828d74d6 generic_fillattr +EXPORT_SYMBOL vmlinux 0x82a19591 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82f3d6f8 matroxfb_g450_shutdown +EXPORT_SYMBOL vmlinux 0x82f9822e scm_detach_fds +EXPORT_SYMBOL vmlinux 0x830b7ad1 skb_seq_read +EXPORT_SYMBOL vmlinux 0x833d0a06 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x834c77e8 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8388e93a xrlim_allow +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x84019774 simple_setsize +EXPORT_SYMBOL vmlinux 0x840593d3 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x842124e7 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +EXPORT_SYMBOL vmlinux 0x847bd958 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x8480510f jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x848e6a85 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x84a0725e jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x84a384a3 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84dff57a inet_shutdown +EXPORT_SYMBOL vmlinux 0x84f1ad29 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x84f98898 kernel_bind +EXPORT_SYMBOL vmlinux 0x852aff53 kill_block_super +EXPORT_SYMBOL vmlinux 0x853b19d3 security_inode_permission +EXPORT_SYMBOL vmlinux 0x8541006a genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x8541bccc intercept_table +EXPORT_SYMBOL vmlinux 0x854f066d __put_cred +EXPORT_SYMBOL vmlinux 0x85600f0b task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x857d6ca0 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x85839a19 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x85901a57 igrab +EXPORT_SYMBOL vmlinux 0x85ae3206 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x85c47bbf scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85fe6c3a __seq_open_private +EXPORT_SYMBOL vmlinux 0x8606eb40 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x86131ef0 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x86222cc2 load_nls +EXPORT_SYMBOL vmlinux 0x862ce94a seq_escape +EXPORT_SYMBOL vmlinux 0x864d82c0 put_disk +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x865323b1 release_sock +EXPORT_SYMBOL vmlinux 0x865acfc4 iget_failed +EXPORT_SYMBOL vmlinux 0x865f8fe4 read_cache_pages +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866ea866 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x866ef1b4 of_match_device +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869cafab dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x86b0f539 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x86ba4d45 kset_unregister +EXPORT_SYMBOL vmlinux 0x86d55f60 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86ea2208 powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870961e1 release_firmware +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87216836 cdev_index +EXPORT_SYMBOL vmlinux 0x87359ad1 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x877186e4 dev_addr_add +EXPORT_SYMBOL vmlinux 0x877e1be0 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87a57815 find_get_page +EXPORT_SYMBOL vmlinux 0x87bc2c29 file_fsync +EXPORT_SYMBOL vmlinux 0x87d49da2 thaw_super +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88160fce abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x884c593d sock_no_connect +EXPORT_SYMBOL vmlinux 0x88586c5f pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x88722174 init_special_inode +EXPORT_SYMBOL vmlinux 0x8876b482 generic_make_request +EXPORT_SYMBOL vmlinux 0x8889da78 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x88c49e86 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x88e5ed73 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x89296524 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x893ca940 generic_listxattr +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x894c88c1 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x89602419 scsi_add_device +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x897d7a11 dquot_disable +EXPORT_SYMBOL vmlinux 0x89b3107b isa_mem_base +EXPORT_SYMBOL vmlinux 0x89cda598 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89e75876 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x89e80edb pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x8a05fc7a nf_log_packet +EXPORT_SYMBOL vmlinux 0x8a485757 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x8a4a9bd0 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x8a5df592 alloc_file +EXPORT_SYMBOL vmlinux 0x8a688e7c inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a848b88 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x8a877826 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x8a8993ee __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x8a8b3e0e pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa98f9d misc_deregister +EXPORT_SYMBOL vmlinux 0x8aad276a ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add +EXPORT_SYMBOL vmlinux 0x8b0158bf mdiobus_read +EXPORT_SYMBOL vmlinux 0x8b19ea11 kobject_set_name +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b2774ce sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b6cb00a dm_io_client_create +EXPORT_SYMBOL vmlinux 0x8b853cdc flush_signals +EXPORT_SYMBOL vmlinux 0x8b9ee58a __inet6_hash +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bf632ee registered_fb +EXPORT_SYMBOL vmlinux 0x8c140666 of_device_uevent +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c4f1727 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x8c5ef84a jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x8ca3e50e __napi_complete +EXPORT_SYMBOL vmlinux 0x8cb55404 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x8cc6368f rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8d05a4f7 poll_initwait +EXPORT_SYMBOL vmlinux 0x8d0db7f1 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x8d206bf8 dev_mc_add +EXPORT_SYMBOL vmlinux 0x8d23a2dc nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x8d4468c9 pci_device_to_OF_node +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5e75c6 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x8d64f993 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x8d8796e1 netdev_set_master +EXPORT_SYMBOL vmlinux 0x8d9b7adb neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8df5da63 memstart_addr +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e188f51 __register_chrdev +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e63350d idr_replace +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e779b8f dm_table_get_md +EXPORT_SYMBOL vmlinux 0x8e7aa129 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x8e98a5b5 proc_dointvec +EXPORT_SYMBOL vmlinux 0x8eb42dc7 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ed26c64 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x8ee27d1f padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8eebd42d rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8f18a69b gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x8f2609bb sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x8f316a28 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f596741 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x8f62fdb1 km_state_expired +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f72392b generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8f872b0f eth_header_parse +EXPORT_SYMBOL vmlinux 0x8f8a7e77 mdiobus_write +EXPORT_SYMBOL vmlinux 0x8fa4e5b4 write_cache_pages +EXPORT_SYMBOL vmlinux 0x8fbf37e0 profile_pc +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900829a0 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x90136a1d generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x90208232 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x90301fe0 sock_init_data +EXPORT_SYMBOL vmlinux 0x903e114d register_quota_format +EXPORT_SYMBOL vmlinux 0x90431666 override_creds +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x9074ffc3 netif_device_attach +EXPORT_SYMBOL vmlinux 0x907c7b95 flush_tlb_range +EXPORT_SYMBOL vmlinux 0x909b7439 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x90b0e0bd tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x91089455 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x911a621a sock_setsockopt +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x91429a10 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x916361b9 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x916833af mutex_lock +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91a31a99 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x91b84f81 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x91bbd9eb xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x91d063df may_umount_tree +EXPORT_SYMBOL vmlinux 0x91d88e48 __debugger_dabr_match +EXPORT_SYMBOL vmlinux 0x91f8dcdd rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x91ff7015 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x9202e727 fb_get_mode +EXPORT_SYMBOL vmlinux 0x9206e024 kobject_get +EXPORT_SYMBOL vmlinux 0x92098398 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x92791888 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x9284d06b nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x929098ba scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x92990ffa is_container_init +EXPORT_SYMBOL vmlinux 0x92a2c46d ida_get_new +EXPORT_SYMBOL vmlinux 0x92a3af40 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x92a5c021 input_flush_device +EXPORT_SYMBOL vmlinux 0x92aab2ff dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x92fb1a4f thaw_process +EXPORT_SYMBOL vmlinux 0x9304fac7 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9354b82a dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x9365666d clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x937b4a8c blk_get_request +EXPORT_SYMBOL vmlinux 0x9381a770 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x9389a2be matroxfb_enable_irq +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93d9ad4a set_create_files_as +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x93ff1cb0 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x941008ed i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x9423a4ec security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x942fcdd3 page_readlink +EXPORT_SYMBOL vmlinux 0x9441adac bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x94698938 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x946b8793 journal_load +EXPORT_SYMBOL vmlinux 0x948ec155 add_disk +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94c76ac1 ilookup +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94d3c3d8 journal_stop +EXPORT_SYMBOL vmlinux 0x94e56b6c udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x94e7da9e dev_remove_pack +EXPORT_SYMBOL vmlinux 0x95099539 sk_stream_error +EXPORT_SYMBOL vmlinux 0x9510481e rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x9522bdc4 pci_domain_nr +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x953a6dcd invalidate_bdev +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954b05f7 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x958cf3a3 dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x959e6ec6 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x95cd2a00 sk_alloc +EXPORT_SYMBOL vmlinux 0x95efe3ee flush_dcache_page +EXPORT_SYMBOL vmlinux 0x960a60a9 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x9613bbd8 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x963a5fef xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x9661e2ff scsi_get_command +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96ade9af simple_getattr +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1cc20 complete_request_key +EXPORT_SYMBOL vmlinux 0x96d38a3a request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x96d9c8e9 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x9704e93a ida_get_new_above +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x972a3396 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x973b8e6f __lock_buffer +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97566778 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x977162b6 of_get_next_child +EXPORT_SYMBOL vmlinux 0x97846404 redraw_screen +EXPORT_SYMBOL vmlinux 0x979ab52b dentry_open +EXPORT_SYMBOL vmlinux 0x97ccd0fc fb_set_var +EXPORT_SYMBOL vmlinux 0x97d199c7 arp_send +EXPORT_SYMBOL vmlinux 0x97e9a301 __lock_page +EXPORT_SYMBOL vmlinux 0x9811a9a2 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x98452f02 journal_abort +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988b676b blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x988f9496 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98ead6fa nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ +EXPORT_SYMBOL vmlinux 0x98ff2362 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x990819b8 dma_pool_free +EXPORT_SYMBOL vmlinux 0x99089b65 kobject_del +EXPORT_SYMBOL vmlinux 0x994c944b ipv4_specific +EXPORT_SYMBOL vmlinux 0x9977f8f3 tty_name +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c3eecc of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d506f1 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a0b5f45 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2186d1 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x9a2aacea genphy_update_link +EXPORT_SYMBOL vmlinux 0x9a5769b1 unregister_netdev +EXPORT_SYMBOL vmlinux 0x9a6048f8 blk_make_request +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a8262d7 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x9a8d6c13 mapping_tagged +EXPORT_SYMBOL vmlinux 0x9aa08e31 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x9afb6369 elevator_exit +EXPORT_SYMBOL vmlinux 0x9b1029e1 ps2_command +EXPORT_SYMBOL vmlinux 0x9b2aa21a napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x9b2f2acf swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x9b35ace2 elv_rb_del +EXPORT_SYMBOL vmlinux 0x9b36b810 netif_napi_del +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b491d74 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x9b559157 i2c_master_send +EXPORT_SYMBOL vmlinux 0x9b6515de lease_get_mtime +EXPORT_SYMBOL vmlinux 0x9b6b5e92 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b7a7f5c key_put +EXPORT_SYMBOL vmlinux 0x9b8142bb sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x9b900f69 clear_inode +EXPORT_SYMBOL vmlinux 0x9b9449b0 macio_dev_put +EXPORT_SYMBOL vmlinux 0x9ba1e340 simple_lookup +EXPORT_SYMBOL vmlinux 0x9ba6373a bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bde7b7a tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x9be277f7 matroxfb_DAC_out +EXPORT_SYMBOL vmlinux 0x9bfabb6a tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c255009 follow_pfn +EXPORT_SYMBOL vmlinux 0x9c3cd087 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x9c3e3c03 register_key_type +EXPORT_SYMBOL vmlinux 0x9c40edaa sock_sendmsg +EXPORT_SYMBOL vmlinux 0x9c4b13ac jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x9c5a3e77 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x9c78d230 get_sb_ns +EXPORT_SYMBOL vmlinux 0x9ca817de generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc3f7ed pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x9ccbbf66 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfc93a7 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d12d323 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d2b674e skb_tx_hash +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d643188 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x9d66354c matroxfb_g450_connect +EXPORT_SYMBOL vmlinux 0x9d66629b dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d67c321 __f_setown +EXPORT_SYMBOL vmlinux 0x9d79ad5c input_register_device +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d804974 bio_split +EXPORT_SYMBOL vmlinux 0x9d86d377 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x9d8ca201 nobh_writepage +EXPORT_SYMBOL vmlinux 0x9d9c9597 idr_init +EXPORT_SYMBOL vmlinux 0x9d9d526e tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x9d9fa7af up_write +EXPORT_SYMBOL vmlinux 0x9db8e8a7 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x9dbf8c62 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x9dca01b4 neigh_table_init +EXPORT_SYMBOL vmlinux 0x9de293ac kernel_accept +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e2b2e82 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x9e3e813f ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x9e4ceab9 fput +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e6a64ae neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ebab088 find_or_create_page +EXPORT_SYMBOL vmlinux 0x9eccf75f ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f09a6ab scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f131c0f pci_set_mwi +EXPORT_SYMBOL vmlinux 0x9f276fdf phy_detach +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f367881 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f4a3421 kunmap_high +EXPORT_SYMBOL vmlinux 0x9f65cdd1 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x9f763ff8 of_translate_address +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9e22bb inode_init_owner +EXPORT_SYMBOL vmlinux 0x9fa83418 i2c_use_client +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc41383 of_get_address +EXPORT_SYMBOL vmlinux 0x9fc7f785 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x9fcec0a2 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff46ea8 input_register_handle +EXPORT_SYMBOL vmlinux 0xa01e544f blk_sync_queue +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa0352941 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xa03e31b2 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xa04058bc security_path_rmdir +EXPORT_SYMBOL vmlinux 0xa046d09e inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06daed3 __ps2_command +EXPORT_SYMBOL vmlinux 0xa08091b2 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0c62923 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xa0cd5f7c pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13f3eee abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14b917c pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0xa16cce13 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xa18d59e6 ide_complete_rq +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1cbbfed pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xa1f0cf64 sock_no_listen +EXPORT_SYMBOL vmlinux 0xa1fff3a0 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20f93d3 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xa258329a genphy_resume +EXPORT_SYMBOL vmlinux 0xa2685ffd mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xa279f740 rfkill_register +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2cd1edc remap_pfn_range +EXPORT_SYMBOL vmlinux 0xa2e83bb9 sock_map_fd +EXPORT_SYMBOL vmlinux 0xa2ebcac5 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f1fc1f ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0xa2f44816 napi_complete +EXPORT_SYMBOL vmlinux 0xa30935a0 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa3337b70 netpoll_poll +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa36d22bf tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xa384b5fe down_write +EXPORT_SYMBOL vmlinux 0xa38c3564 udplite_prot +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a72a9f textsearch_unregister +EXPORT_SYMBOL vmlinux 0xa3aa7786 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3dda025 simple_write_begin +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa3e8b97d search_binary_handler +EXPORT_SYMBOL vmlinux 0xa4113ee3 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xa415712c blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xa4191482 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xa42148d0 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xa4325941 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa44b7fca textsearch_destroy +EXPORT_SYMBOL vmlinux 0xa4742253 kthread_stop +EXPORT_SYMBOL vmlinux 0xa4885ca0 skb_split +EXPORT_SYMBOL vmlinux 0xa48de63e netif_carrier_off +EXPORT_SYMBOL vmlinux 0xa496066e matrox_mystique +EXPORT_SYMBOL vmlinux 0xa496ff4b skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xa49ad0c6 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xa4a67ed0 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c7a3f1 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xa4f4e2d7 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xa5121e0e __brelse +EXPORT_SYMBOL vmlinux 0xa51d9f02 __scm_destroy +EXPORT_SYMBOL vmlinux 0xa53df6f0 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xa554104d rwsem_wake +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58bb5a2 lookup_hash +EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last +EXPORT_SYMBOL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL vmlinux 0xa5b93f5e jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5e0976c sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xa5ed459a netpoll_setup +EXPORT_SYMBOL vmlinux 0xa62fafbe mdio_bus_type +EXPORT_SYMBOL vmlinux 0xa630b506 dquot_initialize +EXPORT_SYMBOL vmlinux 0xa635c468 fifo_set_limit +EXPORT_SYMBOL vmlinux 0xa6571ce6 netdev_features_change +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa6601f82 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa69138ac devm_iounmap +EXPORT_SYMBOL vmlinux 0xa6d46366 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6f2d8f6 bio_endio +EXPORT_SYMBOL vmlinux 0xa73674ac blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xa741223e mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xa759b089 dquot_operations +EXPORT_SYMBOL vmlinux 0xa759ea20 sock_rfree +EXPORT_SYMBOL vmlinux 0xa75fb232 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xa76ab761 kernel_read +EXPORT_SYMBOL vmlinux 0xa776c856 vga_get +EXPORT_SYMBOL vmlinux 0xa779539b input_get_keycode +EXPORT_SYMBOL vmlinux 0xa7802fce journal_init_dev +EXPORT_SYMBOL vmlinux 0xa79d6159 blk_unplug +EXPORT_SYMBOL vmlinux 0xa7bb79ee sock_register +EXPORT_SYMBOL vmlinux 0xa7e2b816 pci_read_irq_line +EXPORT_SYMBOL vmlinux 0xa8105200 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xa81da28a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xa8200d0d block_sync_page +EXPORT_SYMBOL vmlinux 0xa82b0636 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xa8417a90 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xa843120e __serio_register_driver +EXPORT_SYMBOL vmlinux 0xa8542a9b invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xa861ab6e __ioremap +EXPORT_SYMBOL vmlinux 0xa86a4029 bdget +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa89d8e91 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xa89e5ecd generic_file_open +EXPORT_SYMBOL vmlinux 0xa8a07eef rtnl_unicast +EXPORT_SYMBOL vmlinux 0xa8a28200 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xa8dd2433 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa94266f0 down_trylock +EXPORT_SYMBOL vmlinux 0xa952016c bdevname +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa97bb519 fb_show_logo +EXPORT_SYMBOL vmlinux 0xa9ae63a1 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xa9e00882 __blk_run_queue +EXPORT_SYMBOL vmlinux 0xa9effda5 __first_cpu +EXPORT_SYMBOL vmlinux 0xaa20dade sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xaa21b029 block_prepare_write +EXPORT_SYMBOL vmlinux 0xaa23b990 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xaa3783fc netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xaa37ea6f of_get_mac_address +EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa7391d3 __free_pages +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaaab5040 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xaaac3755 pci_dev_put +EXPORT_SYMBOL vmlinux 0xaaec1af1 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab0b0637 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xab134023 scsi_device_put +EXPORT_SYMBOL vmlinux 0xab331fc6 of_find_matching_node +EXPORT_SYMBOL vmlinux 0xab804074 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xab92726b kobject_init +EXPORT_SYMBOL vmlinux 0xab9a8695 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xab9b3a27 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xabb8f2d9 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xabbe95eb inet_frag_find +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL vmlinux 0xabfa4f81 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac0baca7 submit_bh +EXPORT_SYMBOL vmlinux 0xac229d2d xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac5a2913 blkdev_fsync +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac8396da __pci_register_driver +EXPORT_SYMBOL vmlinux 0xac97e39f jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace91e3d __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad067547 skb_insert +EXPORT_SYMBOL vmlinux 0xad2b63e9 starget_for_each_device +EXPORT_SYMBOL vmlinux 0xad33bddd nf_hook_slow +EXPORT_SYMBOL vmlinux 0xad3b5991 tcp_poll +EXPORT_SYMBOL vmlinux 0xad3bfd89 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xad42894c remove_inode_hash +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad48762d end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xad6d88ce ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xad810cac iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xad8e1e08 of_node_get +EXPORT_SYMBOL vmlinux 0xad9d2949 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xada0d923 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadafa179 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xadbe1f1d pci_reenable_device +EXPORT_SYMBOL vmlinux 0xadc588e0 blk_plug_device +EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xade58430 skb_copy +EXPORT_SYMBOL vmlinux 0xade83874 register_netdev +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xadf58e1b set_security_override +EXPORT_SYMBOL vmlinux 0xadf674e6 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xadfbf86c freeze_super +EXPORT_SYMBOL vmlinux 0xae30cb56 journal_extend +EXPORT_SYMBOL vmlinux 0xae44c957 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xae4aee27 security_path_truncate +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae76af5d generic_write_end +EXPORT_SYMBOL vmlinux 0xae934662 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xaea914ed get_user_pages +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaed3bda8 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xaeeab439 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xaf05ac63 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf0934ce bdi_register +EXPORT_SYMBOL vmlinux 0xaf1b5b58 down_read_trylock +EXPORT_SYMBOL vmlinux 0xaf2186b9 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf425286 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf845839 tty_register_device +EXPORT_SYMBOL vmlinux 0xafb7b0fd balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xafcb8d08 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xafd68c7f block_write_end +EXPORT_SYMBOL vmlinux 0xafe3cc7b path_is_under +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb0351baa mdiobus_free +EXPORT_SYMBOL vmlinux 0xb03f61cc register_gifconf +EXPORT_SYMBOL vmlinux 0xb04ae216 seq_release_private +EXPORT_SYMBOL vmlinux 0xb073f2b9 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xb078eee8 posix_test_lock +EXPORT_SYMBOL vmlinux 0xb0977d86 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xb0b41540 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0bfd172 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0eeb105 sk_free +EXPORT_SYMBOL vmlinux 0xb0f926e1 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xb100108c tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xb10ac35b mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xb13b1a11 mpage_readpages +EXPORT_SYMBOL vmlinux 0xb142f843 simple_write_end +EXPORT_SYMBOL vmlinux 0xb142fb05 ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb164ab6a bioset_create +EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1aa8103 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xb1b437b2 __elv_add_request +EXPORT_SYMBOL vmlinux 0xb1b88ba8 file_update_time +EXPORT_SYMBOL vmlinux 0xb1b98cf2 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c52cce padata_stop +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1de1f29 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xb1f61e34 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xb204d65c netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb233762c atomic64_set +EXPORT_SYMBOL vmlinux 0xb24c2db9 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xb265d7ef directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2a72905 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xb2b3927e neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xb2c33f4f of_find_property +EXPORT_SYMBOL vmlinux 0xb2e62899 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xb2ea2d31 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb316606e lease_modify +EXPORT_SYMBOL vmlinux 0xb3358c25 d_splice_alias +EXPORT_SYMBOL vmlinux 0xb35edb05 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xb369f89d tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb379ce3d tty_throttle +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb4125f15 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb44a20af scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xb466a5c0 inet_select_addr +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4716211 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xb4816e34 input_open_device +EXPORT_SYMBOL vmlinux 0xb4b098e2 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xb4b4e9c6 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xb4c59ef3 input_set_capability +EXPORT_SYMBOL vmlinux 0xb4c6bf68 del_gendisk +EXPORT_SYMBOL vmlinux 0xb500fcf0 journal_start +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb505bdb4 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xb514c5d3 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xb52582a3 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xb52699a6 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xb53802fe security_d_instantiate +EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5dfd44f qdisc_reset +EXPORT_SYMBOL vmlinux 0xb5e79b2d skb_trim +EXPORT_SYMBOL vmlinux 0xb5ee8377 flush_tlb_page +EXPORT_SYMBOL vmlinux 0xb5f0b702 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xb61a6366 task_nice +EXPORT_SYMBOL vmlinux 0xb629112b km_policy_expired +EXPORT_SYMBOL vmlinux 0xb62d88f9 macio_request_resource +EXPORT_SYMBOL vmlinux 0xb63612db netif_receive_skb +EXPORT_SYMBOL vmlinux 0xb64116a8 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb65f1b2c down_interruptible +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb679e923 tty_port_init +EXPORT_SYMBOL vmlinux 0xb68a6f9e matrox_cfbX_init +EXPORT_SYMBOL vmlinux 0xb69f0d39 pid_task +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b2124f filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cb138a alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xb6da8c6d tcp_splice_read +EXPORT_SYMBOL vmlinux 0xb71200d3 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xb73c5c93 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xb73ceb56 phy_find_first +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb7606500 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xb78179d0 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xb7a0c79c generic_setxattr +EXPORT_SYMBOL vmlinux 0xb7a99781 __irq_regs +EXPORT_SYMBOL vmlinux 0xb7aa0efd bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb857da73 ida_destroy +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8762700 phy_start_aneg +EXPORT_SYMBOL vmlinux 0xb87c4ba4 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89d1dae __page_symlink +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8e0501e get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xb8fc9f6b nf_log_register +EXPORT_SYMBOL vmlinux 0xb90ebe16 dev_open +EXPORT_SYMBOL vmlinux 0xb9102342 dev_load +EXPORT_SYMBOL vmlinux 0xb9225bee inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb98be936 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xb9b915cd f_setown +EXPORT_SYMBOL vmlinux 0xb9d0018f unlock_new_inode +EXPORT_SYMBOL vmlinux 0xba082738 tcp_connect +EXPORT_SYMBOL vmlinux 0xba123064 kill_anon_super +EXPORT_SYMBOL vmlinux 0xba48b79e tr_type_trans +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba4d4ab2 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xba5dd955 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xba866903 serio_interrupt +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbab2e467 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xbae04d2c of_find_node_by_name +EXPORT_SYMBOL vmlinux 0xbaf4b212 kmem_cache_name +EXPORT_SYMBOL vmlinux 0xbaf9b5c7 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1dca84 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xbb4f5388 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb865bc3 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xbb8715c0 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xbb8a5a8b lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbb9f5fa5 down_write_trylock +EXPORT_SYMBOL vmlinux 0xbbb2eff7 sync_blockdev +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbdca6ae read_cache_page_async +EXPORT_SYMBOL vmlinux 0xbc228733 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc324747 inet_accept +EXPORT_SYMBOL vmlinux 0xbc39b22d __invalidate_device +EXPORT_SYMBOL vmlinux 0xbc568354 blk_run_queue +EXPORT_SYMBOL vmlinux 0xbc5e8f46 set_disk_ro +EXPORT_SYMBOL vmlinux 0xbc6c87bc xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xbc779e7c nla_reserve +EXPORT_SYMBOL vmlinux 0xbc9bc307 dev_get_by_index +EXPORT_SYMBOL vmlinux 0xbcac6707 journal_update_format +EXPORT_SYMBOL vmlinux 0xbcb80d94 dst_destroy +EXPORT_SYMBOL vmlinux 0xbcbbe349 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xbcdccac7 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xbcdd4ffc vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xbcf1bc9a kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xbcffe639 idr_pre_get +EXPORT_SYMBOL vmlinux 0xbd01b3ff tcp_sendpage +EXPORT_SYMBOL vmlinux 0xbd40a442 dput +EXPORT_SYMBOL vmlinux 0xbd5fe3d6 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xbd737a78 user_path_at +EXPORT_SYMBOL vmlinux 0xbd74692d jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xbd750b4a tty_unregister_device +EXPORT_SYMBOL vmlinux 0xbd83ff8d kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages +EXPORT_SYMBOL vmlinux 0xbd9b735e register_console +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbdcb74ff dentry_unhash +EXPORT_SYMBOL vmlinux 0xbdea7dd0 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xbdf35fc6 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe32acaf register_8022_client +EXPORT_SYMBOL vmlinux 0xbe3b6318 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xbe3f93a1 proto_unregister +EXPORT_SYMBOL vmlinux 0xbe5c3e03 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe66e746 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xbe6f064d idr_for_each +EXPORT_SYMBOL vmlinux 0xbe7731e3 pci_select_bars +EXPORT_SYMBOL vmlinux 0xbeac4c78 validate_sp +EXPORT_SYMBOL vmlinux 0xbebd557f pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xbec35f59 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbefd0133 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xbf71c1c3 start_tty +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf83836b input_unregister_device +EXPORT_SYMBOL vmlinux 0xbf85ca3f tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xbf8b7511 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbf9c9dcb splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd05139 read_dev_sector +EXPORT_SYMBOL vmlinux 0xbfd3db7d ip_route_output_key +EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc025b6fc of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xc03ce089 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xc04e7be3 mpage_writepage +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05db902 gen_pool_create +EXPORT_SYMBOL vmlinux 0xc0639f49 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xc06b71d8 ppc_md +EXPORT_SYMBOL vmlinux 0xc06f56f1 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xc075d6e6 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0842c48 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0xc090876a pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0c5f7b7 key_revoke +EXPORT_SYMBOL vmlinux 0xc0d84ced cuda_poll +EXPORT_SYMBOL vmlinux 0xc0d8a494 init_task +EXPORT_SYMBOL vmlinux 0xc0e4335f pci_write_vpd +EXPORT_SYMBOL vmlinux 0xc0f2fec2 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc1589d7c of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0xc15b3257 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc16e76e9 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xc1872df0 tcp_prot +EXPORT_SYMBOL vmlinux 0xc18a353f dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xc18d86f2 sock_create_lite +EXPORT_SYMBOL vmlinux 0xc1908f03 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0xc1980586 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xc1b679ed clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xc1beac98 input_set_keycode +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1dd4a7f adb_request +EXPORT_SYMBOL vmlinux 0xc1ff15a9 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xc2118a88 gen_pool_free +EXPORT_SYMBOL vmlinux 0xc214cc8e alloc_fcdev +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2714582 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xc2725407 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc2c1e47f commit_creds +EXPORT_SYMBOL vmlinux 0xc2cb25e4 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xc2d11e48 macio_enable_devres +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2d71d7f xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc3045aba qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xc33471f7 mem_map +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc36b33dc d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xc37c94cd blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xc38cc25c mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xc3a221db keyring_clear +EXPORT_SYMBOL vmlinux 0xc3c63139 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d5303d input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xc3d6e301 bh_submit_read +EXPORT_SYMBOL vmlinux 0xc3daf53a mntput_no_expire +EXPORT_SYMBOL vmlinux 0xc3dded03 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xc3f93ac9 matroxfb_g450_setclk +EXPORT_SYMBOL vmlinux 0xc42659f2 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xc4610aea pci_disable_device +EXPORT_SYMBOL vmlinux 0xc46e6737 sock_no_bind +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc4806e80 get_phy_device +EXPORT_SYMBOL vmlinux 0xc4871c05 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xc48ad70b open_exec +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a68eca kill_litter_super +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4f5cb79 console_start +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc50ac89d __find_get_block +EXPORT_SYMBOL vmlinux 0xc52c9e55 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc56318b0 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xc569025f write_one_page +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc5ab145a filp_close +EXPORT_SYMBOL vmlinux 0xc5c1efc8 dst_release +EXPORT_SYMBOL vmlinux 0xc61be59c ida_remove +EXPORT_SYMBOL vmlinux 0xc63fe48e dev_disable_lro +EXPORT_SYMBOL vmlinux 0xc64a893f bio_free +EXPORT_SYMBOL vmlinux 0xc66d58a9 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xc68341dc generic_block_bmap +EXPORT_SYMBOL vmlinux 0xc69c8829 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xc69f208b unregister_filesystem +EXPORT_SYMBOL vmlinux 0xc6b7195d pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xc6b8d459 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xc6edb3c5 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xc750a3a6 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xc76edec8 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xc795e23e cpu_core_map +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a3fa68 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8277050 init_net +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc86c7a76 inode_setattr +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc88d1ea6 tty_port_hangup +EXPORT_SYMBOL vmlinux 0xc88fd48d clear_user_page +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8cd4184 matroxfb_vgaHWinit +EXPORT_SYMBOL vmlinux 0xc8d1f56f __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0xc8faebf3 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xc90a28d6 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xc91fef2a tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xc92762b6 dst_alloc +EXPORT_SYMBOL vmlinux 0xc94c7ccf i2c_release_client +EXPORT_SYMBOL vmlinux 0xc97b787c cdev_alloc +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a51c44 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xc9acecdd __breadahead +EXPORT_SYMBOL vmlinux 0xc9bc1ade pci_device_from_OF_node +EXPORT_SYMBOL vmlinux 0xc9c5b3a4 matroxfb_DAC_in +EXPORT_SYMBOL vmlinux 0xc9dc0980 brioctl_set +EXPORT_SYMBOL vmlinux 0xc9e3a481 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xca0ae0af dev_set_mtu +EXPORT_SYMBOL vmlinux 0xca0cd0f2 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xca1385f8 blk_free_tags +EXPORT_SYMBOL vmlinux 0xca2b787b save_mount_options +EXPORT_SYMBOL vmlinux 0xca5b3b3d bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca85f1b2 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return +EXPORT_SYMBOL vmlinux 0xcad08e48 mmu_hash_lock +EXPORT_SYMBOL vmlinux 0xcaf89be8 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0xcb07c70f journal_check_used_features +EXPORT_SYMBOL vmlinux 0xcb16a388 kern_path +EXPORT_SYMBOL vmlinux 0xcb255a85 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xcb36d297 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0xcb639768 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xcb6910ed make_EII_client +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcbc7bd3a ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xcbc810ba filemap_flush +EXPORT_SYMBOL vmlinux 0xcbdd1373 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xcbf52ba4 skb_store_bits +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc1774ec padata_add_cpu +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc6b3c05 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc89e13b kernel_connect +EXPORT_SYMBOL vmlinux 0xcce1c326 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xcce40c42 put_io_context +EXPORT_SYMBOL vmlinux 0xcce8985d alloc_fddidev +EXPORT_SYMBOL vmlinux 0xccf54fb5 pipe_unlock +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd150350 take_over_console +EXPORT_SYMBOL vmlinux 0xcd281704 generic_writepages +EXPORT_SYMBOL vmlinux 0xcd29988a kernel_listen +EXPORT_SYMBOL vmlinux 0xcd409150 kmap_high +EXPORT_SYMBOL vmlinux 0xcd5ad5f6 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xcd7f16fe of_n_size_cells +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcd92d180 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xcd966228 input_release_device +EXPORT_SYMBOL vmlinux 0xcda3cc18 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xcda66d4a journal_get_create_access +EXPORT_SYMBOL vmlinux 0xcdb247a3 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xcdc87076 fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0xcde8c86a ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xce00e741 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xce121d74 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce683db5 d_genocide +EXPORT_SYMBOL vmlinux 0xce8c2556 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xceb4e805 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xcedf9f2f tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xcef43b63 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0xcf378046 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xcf469c2f vfs_getattr +EXPORT_SYMBOL vmlinux 0xcf48b79e xfrm_state_add +EXPORT_SYMBOL vmlinux 0xcf6ccb8d scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfbc7e38 of_find_device_by_phandle +EXPORT_SYMBOL vmlinux 0xcfc7ac2b tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xcfceeccb tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xcfd7640a tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xcfe50653 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xcff0ca2b dm_table_get +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd03ed1ee __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xd0556b40 add_timer +EXPORT_SYMBOL vmlinux 0xd070993b tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xd0a45fa5 pmu_enable_irled +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0d123c7 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xd0d1cf9c tcf_action_exec +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd116fd6e journal_init_inode +EXPORT_SYMBOL vmlinux 0xd1235f1e simple_release_fs +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd16b44ad kunmap_atomic +EXPORT_SYMBOL vmlinux 0xd1ba6d82 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xd1c81e69 nla_put +EXPORT_SYMBOL vmlinux 0xd1de8029 set_bh_page +EXPORT_SYMBOL vmlinux 0xd1df569e tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xd1ec192e sock_wmalloc +EXPORT_SYMBOL vmlinux 0xd1f63a81 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xd20639e9 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xd23489de fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd24897fb dm_get_device +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2529c4b udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd27b835e inode_permission +EXPORT_SYMBOL vmlinux 0xd280ad36 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a92e8d journal_start_commit +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2e6a256 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xd310fa50 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd322f2fd blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xd35b099e i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0xd368baec sock_release +EXPORT_SYMBOL vmlinux 0xd36aa1e4 scsi_host_put +EXPORT_SYMBOL vmlinux 0xd36af6a5 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xd37d7e2c request_key_async +EXPORT_SYMBOL vmlinux 0xd3c57a04 flush_hash_entry +EXPORT_SYMBOL vmlinux 0xd3e3d449 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xd3e6f60d cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xd3eb29d0 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xd3f4ae4b scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd417c780 bio_pair_release +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd435330e gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xd4431c17 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xd4a51bfc request_firmware +EXPORT_SYMBOL vmlinux 0xd4ae7c9b blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xd4ca561a seq_puts +EXPORT_SYMBOL vmlinux 0xd4de6077 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd533ca93 sock_update_classid +EXPORT_SYMBOL vmlinux 0xd54189e3 udp_prot +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages +EXPORT_SYMBOL vmlinux 0xd58e9fa2 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xd5940dcc find_inode_number +EXPORT_SYMBOL vmlinux 0xd5a6c975 vmtruncate +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5c731ca phy_device_create +EXPORT_SYMBOL vmlinux 0xd5e0446b inet_stream_ops +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd5ffbe25 deny_write_access +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62b8d8e dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd634f2b8 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xd64a546f blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xd662d955 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xd66eaa99 kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0xd672014b hippi_change_mtu +EXPORT_SYMBOL vmlinux 0xd69b30e0 atomic64_add_unless +EXPORT_SYMBOL vmlinux 0xd6a789f6 dev_addr_init +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6e09aee unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd708c228 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xd709a1cb tty_free_termios +EXPORT_SYMBOL vmlinux 0xd711af8f fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xd7140425 serio_rescan +EXPORT_SYMBOL vmlinux 0xd7196020 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xd727659a dqput +EXPORT_SYMBOL vmlinux 0xd73657c9 abort_creds +EXPORT_SYMBOL vmlinux 0xd7552959 filemap_fault +EXPORT_SYMBOL vmlinux 0xd75ac857 vfs_mknod +EXPORT_SYMBOL vmlinux 0xd75d0100 register_snap_client +EXPORT_SYMBOL vmlinux 0xd76036d5 scsi_execute +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79210a5 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7b6c3f4 inode_init_always +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7e9b227 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xd80472d0 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xd8114fe8 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xd836d751 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xd840ca76 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd854a996 skb_pad +EXPORT_SYMBOL vmlinux 0xd8697b45 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xd86afab0 __mutex_init +EXPORT_SYMBOL vmlinux 0xd8785218 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd89f6d44 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd909df84 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd933dfb2 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xd94c66bc bd_set_size +EXPORT_SYMBOL vmlinux 0xd95505c9 scsi_register +EXPORT_SYMBOL vmlinux 0xd95ab23a inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xd96167af inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xd966428d nf_setsockopt +EXPORT_SYMBOL vmlinux 0xd977cda4 nla_append +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9aa406d request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9d73b21 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda2994db xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xda3c2a86 unregister_nls +EXPORT_SYMBOL vmlinux 0xda441348 generic_unplug_device +EXPORT_SYMBOL vmlinux 0xda471ac2 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xda570a01 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xda5d0e8e test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xda6bbc13 DAC1064_global_restore +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda94ffd1 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xda9fb2b8 iget5_locked +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaa99ae7 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xdaf47ed0 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0xdb08dbaf tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xdb0a5c96 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xdb0ceb9d filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xdb13372f of_register_spi_devices +EXPORT_SYMBOL vmlinux 0xdb16df91 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xdb2f8e63 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xdb50c08e __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xdb68be61 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xdb6df324 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb9e64d1 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbfc01d5 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0775ad of_parse_phandle +EXPORT_SYMBOL vmlinux 0xdc0d8c82 set_groups +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc155480 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xdc2a0712 padata_free +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2d22b3 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc60d544 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xdc727289 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0xdc732024 irq_stat +EXPORT_SYMBOL vmlinux 0xdc7f5fa3 mpage_readpage +EXPORT_SYMBOL vmlinux 0xdc908871 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca25c73 pci_get_class +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcdc8b88 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xdcecdf1d dcache_lock +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdcfe5cca dev_uc_init +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd508350 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd7945b7 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xdda916d2 ip_defrag +EXPORT_SYMBOL vmlinux 0xddae6544 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xddb33641 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xddcb91ff phy_register_fixup +EXPORT_SYMBOL vmlinux 0xddd6a8e6 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xddeeeaea lro_flush_all +EXPORT_SYMBOL vmlinux 0xde358abc sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde4a8503 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xde643756 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde84455d of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xde869d6b init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9e9c7f scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xdeca3450 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xdedab664 scsi_scan_target +EXPORT_SYMBOL vmlinux 0xdf4138f6 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf894254 send_sig +EXPORT_SYMBOL vmlinux 0xdf92598d dm_table_get_size +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf9c0646 key_task_permission +EXPORT_SYMBOL vmlinux 0xdfa94dda adb_client_list +EXPORT_SYMBOL vmlinux 0xdfaa0341 blk_end_request +EXPORT_SYMBOL vmlinux 0xdfcdf99c unbind_con_driver +EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger +EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll +EXPORT_SYMBOL vmlinux 0xdff673da end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xe03e4381 inet_ioctl +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0885c0a dquot_enable +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0c1f402 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xe0d17fe1 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xe0daa96c wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xe0e235f4 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xe0f49737 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe12d1ab1 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xe138af6c blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xe13c9d65 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xe1634aa2 dquot_drop +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1923908 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xe1b1b410 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xe1b316e1 kobject_put +EXPORT_SYMBOL vmlinux 0xe1d8e7d6 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xe1f82556 noop_llseek +EXPORT_SYMBOL vmlinux 0xe21aa216 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xe227e768 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe243c6d0 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe283a6a6 vga_client_register +EXPORT_SYMBOL vmlinux 0xe2866f43 console_stop +EXPORT_SYMBOL vmlinux 0xe28bef35 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xe29a2894 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe2ae4be3 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xe2d3ef5b sk_wait_data +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe2e745c9 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe31b030a udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xe33acebf pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xe39533d7 d_delete +EXPORT_SYMBOL vmlinux 0xe397e48d dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xe39b52f7 tty_kref_put +EXPORT_SYMBOL vmlinux 0xe39b7736 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xe39e7744 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xe3bcb920 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xe3c746bb nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xe3eaf355 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xe41bab23 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xe46eee8f tty_unthrottle +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe48644bd pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xe497ac1e percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xe4c71e4a __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xe4c993c9 inet_put_port +EXPORT_SYMBOL vmlinux 0xe4d040ec tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xe4d09b39 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xe4df9ac2 aio_put_req +EXPORT_SYMBOL vmlinux 0xe4e4c229 default_llseek +EXPORT_SYMBOL vmlinux 0xe4f3ad74 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe505f9cc alloc_disk_node +EXPORT_SYMBOL vmlinux 0xe5083666 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe51b1c0f rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5400272 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xe54573f8 journal_check_available_features +EXPORT_SYMBOL vmlinux 0xe54b6eb3 scsi_free_command +EXPORT_SYMBOL vmlinux 0xe571de10 bdi_destroy +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57f8203 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe597370e netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xe5a7b2a6 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6277a8e cont_write_begin +EXPORT_SYMBOL vmlinux 0xe62eb52d input_register_handler +EXPORT_SYMBOL vmlinux 0xe64471ba bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xe65f2792 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xe671df0a netif_carrier_on +EXPORT_SYMBOL vmlinux 0xe67c0c66 giveup_fpu +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69dbfa2 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xe6d36e5c bdput +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6e73c93 sk_common_release +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f17621 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fe33e4 down_killable +EXPORT_SYMBOL vmlinux 0xe70f13a2 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xe72323b8 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xe77025b5 __kfree_skb +EXPORT_SYMBOL vmlinux 0xe7b4b18d pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d4ff6c nobh_write_begin +EXPORT_SYMBOL vmlinux 0xe7d634fa create_proc_entry +EXPORT_SYMBOL vmlinux 0xe7ebcf72 vfs_llseek +EXPORT_SYMBOL vmlinux 0xe7f53c3c sk_receive_skb +EXPORT_SYMBOL vmlinux 0xe83b5b15 km_new_mapping +EXPORT_SYMBOL vmlinux 0xe844567e cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xe858f623 block_write_full_page +EXPORT_SYMBOL vmlinux 0xe88fb0c0 of_match_node +EXPORT_SYMBOL vmlinux 0xe8bf8fb1 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xe8d15099 pci_match_id +EXPORT_SYMBOL vmlinux 0xe8fab9e9 fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0xe90a0d22 audit_log_start +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe94833b7 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xe94d3fb0 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xe94e939c dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xe95d48d9 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xe9609464 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xe96be8e4 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xe9a04520 del_timer +EXPORT_SYMBOL vmlinux 0xe9b6fa25 rtas +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea147363 printk +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea33821e datagram_poll +EXPORT_SYMBOL vmlinux 0xea4ae9a1 follow_up +EXPORT_SYMBOL vmlinux 0xea6b8064 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea9e849f fb_class +EXPORT_SYMBOL vmlinux 0xeaf16558 ida_init +EXPORT_SYMBOL vmlinux 0xeaf70ec0 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb47a334 pci_request_region +EXPORT_SYMBOL vmlinux 0xeb47d8e8 scsi_init_io +EXPORT_SYMBOL vmlinux 0xeb74dd3e textsearch_prepare +EXPORT_SYMBOL vmlinux 0xeb794b99 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xeb852377 of_dev_get +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb8c13da submit_bio +EXPORT_SYMBOL vmlinux 0xeb99346a of_create_pci_dev +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xeba3ea92 security_path_symlink +EXPORT_SYMBOL vmlinux 0xebb468a1 ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xebb9d27c i2c_del_driver +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xec8c969f pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xeca73a01 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xecc3c278 sget +EXPORT_SYMBOL vmlinux 0xecc49829 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xeccb20e2 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xece6b299 __scm_send +EXPORT_SYMBOL vmlinux 0xed4db6e7 inode_change_ok +EXPORT_SYMBOL vmlinux 0xed735e77 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xed8297da journal_get_write_access +EXPORT_SYMBOL vmlinux 0xed86b3b7 ___ratelimit +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda1d975 proc_mkdir +EXPORT_SYMBOL vmlinux 0xeda4b66c unlock_rename +EXPORT_SYMBOL vmlinux 0xedabdbf7 ps2_drain +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xee12b07a vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee30ee1e cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xee4d6966 __bread +EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change +EXPORT_SYMBOL vmlinux 0xee6f1aa7 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xee7f5659 nonseekable_open +EXPORT_SYMBOL vmlinux 0xee8fd73b tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xee922370 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xee9c5a62 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xee9f6b47 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeee79d73 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xeeec7f62 no_llseek +EXPORT_SYMBOL vmlinux 0xeeef854e pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xeef50beb sync_inode +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef31056a tcf_hash_release +EXPORT_SYMBOL vmlinux 0xef31efc0 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xef5803eb splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xef678e9d dm_register_target +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef7323d8 kill_pid +EXPORT_SYMBOL vmlinux 0xef8d94db rfkill_alloc +EXPORT_SYMBOL vmlinux 0xefa3de0a neigh_connected_output +EXPORT_SYMBOL vmlinux 0xefb3b5ec dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xeffac935 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf01d48f4 get_super +EXPORT_SYMBOL vmlinux 0xf02ff2cc phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0xf0469e9d pci_clear_master +EXPORT_SYMBOL vmlinux 0xf04ae1ba idr_remove_all +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf086590e scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xf09ab6b1 iterate_mounts +EXPORT_SYMBOL vmlinux 0xf09d1753 of_unregister_driver +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf1076e9b bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf193cceb sg_miter_start +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19c1e52 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xf19e9355 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e412b4 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1ff58c5 kill_pgrp +EXPORT_SYMBOL vmlinux 0xf1ffeea0 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xf2010d66 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xf20391d7 have_submounts +EXPORT_SYMBOL vmlinux 0xf20abf90 phy_attach +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf235637a alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0xf235a959 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0xf2653e93 devm_free_irq +EXPORT_SYMBOL vmlinux 0xf29b09e0 get_disk +EXPORT_SYMBOL vmlinux 0xf29c6c0f alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xf2ad0125 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xf2c6017f neigh_event_ns +EXPORT_SYMBOL vmlinux 0xf2fdb65f abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf318aa79 security_path_chown +EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf339d313 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf347a00d pci_get_slot +EXPORT_SYMBOL vmlinux 0xf35af560 install_exec_creds +EXPORT_SYMBOL vmlinux 0xf3770780 dquot_transfer +EXPORT_SYMBOL vmlinux 0xf37720e0 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xf37ec188 single_release +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf38e9eba module_put +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3aa6a3e sock_i_uid +EXPORT_SYMBOL vmlinux 0xf3b62741 scsi_put_command +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3e24c90 bio_init +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf4527b68 sg_miter_next +EXPORT_SYMBOL vmlinux 0xf453bba8 dev_add_pack +EXPORT_SYMBOL vmlinux 0xf49aa7af __nla_reserve +EXPORT_SYMBOL vmlinux 0xf49f8b43 seq_release +EXPORT_SYMBOL vmlinux 0xf4ccc107 mutex_trylock +EXPORT_SYMBOL vmlinux 0xf4d63ab7 netif_napi_add +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f3ba22 sock_create_kern +EXPORT_SYMBOL vmlinux 0xf4f89cee mutex_unlock +EXPORT_SYMBOL vmlinux 0xf50ea23c ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf52321e0 atomic64_sub +EXPORT_SYMBOL vmlinux 0xf53089ae of_phy_connect +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5426d1b pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf5473092 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xf55a9e72 up_read +EXPORT_SYMBOL vmlinux 0xf569c553 __devm_request_region +EXPORT_SYMBOL vmlinux 0xf56b36ad poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xf570bdd8 vfs_unlink +EXPORT_SYMBOL vmlinux 0xf587135c bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5ac8c3d vfs_follow_link +EXPORT_SYMBOL vmlinux 0xf5b891ce setup_new_exec +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5f06381 of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0xf661c9a0 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xf6642a78 eth_header_cache +EXPORT_SYMBOL vmlinux 0xf666890f mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xf67716e7 find_vma +EXPORT_SYMBOL vmlinux 0xf6791b44 slow_work_register_user +EXPORT_SYMBOL vmlinux 0xf67c2c40 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xf68501f0 dev_uc_del +EXPORT_SYMBOL vmlinux 0xf6b910bb vc_cons +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d38ea4 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xf6d6325d pci_restore_state +EXPORT_SYMBOL vmlinux 0xf6ddd3c2 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70384d7 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7906471 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xf7a62268 input_grab_device +EXPORT_SYMBOL vmlinux 0xf7a8a828 framebuffer_release +EXPORT_SYMBOL vmlinux 0xf7b12aee __next_cpu +EXPORT_SYMBOL vmlinux 0xf7c02465 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xf7d6d21b tty_port_put +EXPORT_SYMBOL vmlinux 0xf7e00905 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xf800a214 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xf80226d1 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf816b437 skb_append +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e1335 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xf82feef4 pci_target_state +EXPORT_SYMBOL vmlinux 0xf84d62f1 dm_io +EXPORT_SYMBOL vmlinux 0xf84f7d71 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xf890b57c tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xf8986548 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xf8aad586 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xf8bcf766 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xf8be8315 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xf909b1ce block_read_full_page +EXPORT_SYMBOL vmlinux 0xf90ec718 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xf914d53b dquot_resume +EXPORT_SYMBOL vmlinux 0xf93c3a0a pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xf9458614 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xf949241d dev_close +EXPORT_SYMBOL vmlinux 0xf970c969 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9a5d61e macio_request_resources +EXPORT_SYMBOL vmlinux 0xf9e2f7c3 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xfa04bde8 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xfa436bee d_add_ci +EXPORT_SYMBOL vmlinux 0xfa9248cb kmem_cache_create +EXPORT_SYMBOL vmlinux 0xfab34f8c dma_direct_ops +EXPORT_SYMBOL vmlinux 0xfab9f95a xfrm_input +EXPORT_SYMBOL vmlinux 0xface9d24 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xfad9caa0 pci_save_state +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb10ac0a iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xfb452047 __alloc_skb +EXPORT_SYMBOL vmlinux 0xfb69beb1 should_remove_suid +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb9b57f8 unload_nls +EXPORT_SYMBOL vmlinux 0xfba387ff kick_iocb +EXPORT_SYMBOL vmlinux 0xfbb17d02 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xfbc53b0e security_path_link +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3a1c03 journal_wipe +EXPORT_SYMBOL vmlinux 0xfc5ba93b dcache_readdir +EXPORT_SYMBOL vmlinux 0xfc6b7f15 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xfc6d01e9 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd6f48e tty_shutdown +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister +EXPORT_SYMBOL vmlinux 0xfd14d9bb qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xfd2d9622 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdba582a flush_tlb_mm +EXPORT_SYMBOL vmlinux 0xfdcdecdd revert_creds +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdee4da6 nf_afinfo +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfeb34cec ip_setsockopt +EXPORT_SYMBOL vmlinux 0xfec03438 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfee9b847 bdev_read_only +EXPORT_SYMBOL vmlinux 0xfef4504b blk_start_request +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff058cce nf_reinject +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff388880 migrate_page +EXPORT_SYMBOL vmlinux 0xff4096d7 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xff4ce35c boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xff5456c3 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xff670f5a generic_file_llseek +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff69bf17 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xff6dea25 smp_hw_index +EXPORT_SYMBOL vmlinux 0xff7d823e mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffbb3c02 phy_connect +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL vmlinux 0xfff3a468 netpoll_send_skb +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0xb9e1680d crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x6667bd19 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x2ad394ed async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x2dd2462e async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x17c7a6d2 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x9eabe567 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1204b53c async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x27e31189 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x61404da7 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6a0317fc async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xdc63fb40 async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x4aa666e8 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x7318e604 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x8c58979c cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x99d890aa cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xa368cfbf cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xa790ca58 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xb7c3ec53 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xf156db2b twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0401d948 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0cc91fd8 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x200d2fe7 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x24918f68 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3b2d0a96 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x58d12372 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x605c5a55 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6eb897e2 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8c7c74ec ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa5037d90 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa877c461 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xae5c3881 ahci_sht +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd9ccd1c0 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x486c36c8 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xda94476a __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x2b19bf87 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x22953f90 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4b1ef22a btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7715d0f9 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7bd477a9 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x94ee2490 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x99179d15 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa440f9c5 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xdff48621 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x862277ec agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xad0687d1 agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x02937c64 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x17902c69 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1951d958 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x22304e77 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2c321213 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x34f46ad9 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4b771131 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4bbc37ad tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6b9708b3 tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x77bd8a6b tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7b524774 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x87f425a0 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9bc541fa tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa2378393 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaa1b9c62 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb1c84db1 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc3f9c7bf tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd410ebae tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd5b4377d tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe3c10e29 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe5577426 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xecff6b98 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xef31d3a0 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0158d0dd edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0daf770f edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x136fcdc3 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x28140386 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x440f0c40 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4a13dcb1 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5991e1bb edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6d838ffc edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7c764505 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8ad793e7 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x94ed36cc edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9db4f1a9 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa34ed119 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaa6a1adf edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xada91957 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb3a68542 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xba0be3b6 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcdee759b edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd5fffa2b edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd95e3cd3 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeba3c969 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xebf4f07e edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xef3f6dbc edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf11ce165 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x453beba9 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x7416208c __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x44bcef74 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xbc635af3 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1dc53b02 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x29bf6614 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2ea158cb hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3a66efd2 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x40e0e2b6 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x46611709 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x47e66c6e hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4b354a75 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x51fabbb6 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6582f422 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6da133c6 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x72e70c38 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8109328b hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x83172617 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x869ef147 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9609de2e __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9caaaef2 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa8562315 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xac024d29 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xba1d377c hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbee3890f hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc8e4c348 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcc44985c hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcec2c3a6 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd74bbb7c hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdea3e4cf hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xb3577f43 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x2358fbb8 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x2ad16723 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xd21f291d hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe459c3f6 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x4d6adbda lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x840b23f7 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xc1710c5c lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xc48486a5 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xfce93352 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x08696688 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xd44b7cf1 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x15a778a9 hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x7ffc3c91 hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xc307e72f input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2fab8c54 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x735fe0d1 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8164233e wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x88796b62 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x921104cc wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9e1a91c1 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb5504525 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe3018cca wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf3a63afd wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf418517c wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfebf9190 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xffd72f69 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0fca0b13 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x1fdac2d1 wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x5d463d32 wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x82e798b6 wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x8adb5320 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x97090aae wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x9ada5c6a wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbe56289f wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb0d3f74 wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf511a327 wf_find_control +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x9e51188a dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xb8a0aac6 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x085e91d1 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x18d70905 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x1b3d9428 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x34dccfcd dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3f1abf21 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x42a4806b dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x465d3d1b dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4e793e7d dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x52e8744e dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x53329b60 dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5b2c0df7 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x643c5d5c dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7442c1c0 dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d606f58 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa0c64b6d dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb05e00d1 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbd4a1b51 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xec420b15 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xed86d786 dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf43a0eab dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfe55f526 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x84185bab md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x88d7b228 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x8a57c8d7 sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x9c0ea65e md_allow_write +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1b87d351 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1ce15b85 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xa0ceb546 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x0e12ac30 ir_unregister_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1109245f __ir_input_register +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x2c09ef54 ir_repeat +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4033497d ir_register_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x59adcd17 ir_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x7de2ea69 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9b3d7bdc ir_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xdc0d9703 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe2099e54 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe8366d2c get_rc_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xebe9c44f ir_input_unregister +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x030c4642 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x208b3f67 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2c13fc92 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x51677cad saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x612a9fb5 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8c8c0870 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa1ab2551 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa5fbf5c7 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb91dafbc saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3e9f53a saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xea1a4211 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2be5f91d saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x51051dd6 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x570842df saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7de2d030 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xc341d9ec saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xcd65d0c2 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xfea002a8 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x0749fb16 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xf7cd22c9 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x90aa4628 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x7121b957 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x90ece7a5 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xd79fd808 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xdcc075c2 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x63586e24 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x790afc16 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x24566dd2 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xb3851c1a tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xcf7493a6 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0c8e7bc1 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0f5c282e mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4620f261 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4bc17e76 gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5461049d mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5a5038cf ir_mantis +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6d7ed75e mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x71fb4cc8 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x72d484b0 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7a36029a mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7ca8f331 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x85e056f5 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa374999e mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb0558e36 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbcdeca70 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcc0648b0 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd3ac1b5e mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfce62788 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x12380f2b smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x23740f0a smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2ebab68d smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2f8e0e59 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x31b4a51f smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x320b65b8 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3eaad11f smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x48808361 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x491a98a3 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4b448dda smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x588cc722 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6ec9438f smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8d1dd601 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa50882fa sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xafb8bd5f sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc1c1f023 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xced7e185 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe9faefa6 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xeeed5e69 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0c435310 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1218ccd1 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x305c3d22 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3c907a0f cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x615a6205 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x7e1379cf cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x86df1643 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x8b1b71a7 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb1dc2807 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd4b1d2d5 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd6bed1a7 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x0a6416d7 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x316fb822 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x67e67694 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x6fd24913 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7b8e8bda em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc2b5ab50 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf5b9be82 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x070e11cf saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x3f38b938 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x6c78889e saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xaf49e1ca saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb3e45b28 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4d70341b v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x65e64459 v4l2_i2c_new_subdev_cfg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x6e6daa0e v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc25246cf v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xdbb5df54 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xee7e99ed v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x03d5df87 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x41a70e9b v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x5204d74b v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xf1f83bb8 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1abc2fc1 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2d3049d8 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4a9c9725 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4f52751e v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5a9159c8 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x69900f77 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8b513ed4 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa651fd64 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb0f2a137 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc4b7fce3 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd1d97791 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd61a196c v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd9c4f793 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe23f6574 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x162b3b63 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x23a3f839 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2ff61927 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4b175faa videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4ccf2fdb videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x59690a53 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5df231bc videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x72629d1f videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7828cbbb videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8c062a27 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8d51dba1 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x97bffe2c videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9d4c0e17 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa66f17bf videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaac64596 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaf04e479 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb9cf3437 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbbc69fdc videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbbf9b66d videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc534d274 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc64a9c79 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc66bc6fd __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd4a638d8 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdc2eca4b videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe4f375bf videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x44c1cae8 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x708b4b4e videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xda06940c videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x00a6c98f videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x705997d8 videobuf_sg_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x70ef9dd3 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x715fe627 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7bbd8ea4 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x93035c45 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xac0e85e6 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc49bff82 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd69d175f videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe8a24336 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfcf82ef0 videobuf_sg_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfe841dcb videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x14e268a5 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x84308191 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x8d026b35 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0052fccc v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x16259868 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x18d76b43 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x22047689 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x295cc8e0 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2fc1d0b2 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x40d5d3de v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x519849a6 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x573e9c79 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6c45827e v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x97577de5 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa1fea257 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa9bfa25d v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb745acc0 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd15b1c8f v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe80cb93d v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xecfaa22f v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf6894e80 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x143b6f69 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6d4c88dc i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x872ffb94 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa29eefd5 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd56c4dfb i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xe013985c i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf670ba27 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xff03f541 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x634df1cc mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x06f2bd21 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3228d729 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x386fd443 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3f901756 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x44679bc7 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x70c3b246 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7c6a63a9 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa8fd5fe2 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xbad1bb6a pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf60cde79 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfdd1e3af pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x39420e10 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x3f87259c pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x360fa106 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x505999f8 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x63cb1590 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9b414b43 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd5bfef84 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x45a89c32 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x4bbab264 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x913a88b7 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa0347911 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe45f7cb3 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x2ca7c7a7 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x1e2e1bde wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x2cd15923 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xbaadb360 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xd0b6dc0c wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x37906875 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x5ea82459 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x6952a919 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xcbf5ab26 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x150e569d sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x179a5787 sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x42582224 sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x55e894a5 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5fae5688 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x694cfc47 sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6c4a85fe sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x70993d43 sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x761c482a sdio_writeb_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x76bf8347 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x800c37d8 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x96703764 sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9c09391b sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9cb10cee sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9e83fe6d sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa7b21aef sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xae988861 sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb5d89ab1 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc57fcd7b sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xde27e900 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe1040f16 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf287dfba sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfc16b191 sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xff90eff1 sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xffc54062 sdio_align_size +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x073e3a14 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0e057ff3 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x33eb1454 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3523cfa2 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8d3c3eae sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x996fbff3 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x990e1948 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xb014e2eb cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xcf7e0a1d cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x1b14eb5c cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x49211c1a cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xe413df37 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x2fcd0f10 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xbca4b22c cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xc9f136c6 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xebccc5fe cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x5578498d DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x337d0168 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x69367fec DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00727522 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4f784d3c register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6f7dbfbf get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x71a5a987 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7bdbb96b __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x84066a17 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x896141e1 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8f15ea46 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x919c035a del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9a641b0e put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaca7c291 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb24913e5 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbbfee672 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd689d1c4 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd8f25907 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdeef91f7 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeac7b46d default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfce1e920 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x04b8ed03 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x133bb50d register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5c2b3170 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xa6681e81 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x0e536694 nand_lock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x21ad9075 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x51ed04fd nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9c92dd0c nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xbae3b598 nand_unlock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc519d7cb nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xdfa52320 nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x92419bfd sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x31ea484e onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xaa2c1782 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x05afd437 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0947e43a ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x22d62047 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4777704c ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4fd5c013 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x561910ae ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x82ea6417 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x96fa439a ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbd5d9c55 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc5393be5 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdb48f911 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdb7c3937 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe98c82b6 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x09c89b19 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2761c6b4 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x34c49ffd unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x450b15ba open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x865867ed can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb146bf7e free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb2aa917f alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd287d80d can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xddf9e6f9 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xebba76fe can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf2044f82 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfee230ce alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x189f3af8 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x8b14a174 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc282d576 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe80329a4 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x078a5a72 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x28bc83fe macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x60f3581d macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc2a99358 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd7d0fb9a macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01037ca3 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0152b43a mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0aa61bfe mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b2f8c14 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0bc52878 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0f7fb3ca mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1b4336bd mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1beee89b mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2459b434 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x25030590 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2f720227 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3047a3c3 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3ad68514 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3d69ef3b mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x461fe53d mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x48327995 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4c11a7cd mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4ce05f3b mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4d2f29db mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x53bc73d9 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5b9d9d37 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x641c08c2 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6500a9e7 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x66455bd7 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6aa5768e mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6bc37cfb mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8136aa0e mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8ad09f21 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x90663bf1 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x95d839d4 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x96b0dddb mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x97d78cb3 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9c95a293 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9ddfb1f8 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa3c01e24 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xaa25b3cd mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xae0d86bb mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb745ebf2 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb8d80d5a mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbad6331a mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc22fcc97 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc75f56d2 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc7627dee mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xca9c802b mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcfcc259c mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd0f96ee5 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd300523e mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd30245b8 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdb0a6cbe mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe339811f mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe80a5bce mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xea34a1ba mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfd837da2 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x018804a3 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x36e6522d usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x169bc993 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x2f76842b rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4d3f37dc rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x960f772a rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xeee32725 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf8bea418 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x072eba5d usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x08830472 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0deb424e usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x178d7ecc usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1c7ddea9 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x220772de usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x222cb6ce usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2616404d usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x48b6e114 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5e5f2601 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5fefd6a4 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7098a5c1 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x745dadcf usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x87bb2d9a usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8bf467bf usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x93217459 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa883952d usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd3a36e15 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe5a4ecd3 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf154d7a5 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf20b9c23 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf8299ff9 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfc8b758f usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfffae058 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0c7681b9 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x12b38a53 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1efc9a65 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x28384339 i2400m_cmd_get_state +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2b15db3b i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x33fd6a68 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x41bf6151 i2400m_set_init_config +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4f2ecd47 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6e3a521b i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x70352057 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x726c6eb7 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9434724c i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x96c739d2 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa688515c i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb1b156d7 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xce8d0c14 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd9049a20 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf20b99fc i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x5a57156f libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x2089118e iwl_alloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x51824974 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x631d57c8 iwl_dealloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x02dd3cbb lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x080451f0 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x53d07e0e lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x674359bf lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6fd48639 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x73c80a94 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8413e236 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8d60bf0a lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb332858e lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbb0b2022 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc583c997 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdf1b77f4 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdf5b9974 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdff4f8d1 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x13f88960 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x42da429d lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4e63e3cd lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5f6754ee lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x61688b8c lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa92ca885 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xcf6274ab lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe4d41ff2 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x23910dd4 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x76bca311 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x191fabca p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2977c819 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x675a224a p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7299959d p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x96429295 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc677a200 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd19667ee p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdfcffdb9 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf9d6a4d7 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x07efa92a rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1fa1a734 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x30ffb2aa rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4e33c88b rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x541bbe72 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x594f13b1 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5c996898 rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5cecc26a rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x65782305 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6a0a3a7c rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6f8a8fdb rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x77531a4f rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7b66cbe4 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x910384c7 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa0d760bc rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb4cc79ba rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb68232bd rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc3925117 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc52f8deb rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xca366c1b rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xce2ef355 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe4e216af rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe72f9662 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfcb05071 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x00033a95 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0921e811 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0d69c519 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f5dd16e rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0feaed1d rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f3b38a9 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x27cd0279 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3853573c rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x393651e9 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x49583c13 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x560d5017 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5cd86e13 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6e443a6d rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7d0f3f20 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x82a659cb rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8e9fa558 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x91efb264 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x96ae62bc rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa5a88e8d rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa7a91bcf rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xabf0c836 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3eb3e52 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9ed115a rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x14febea6 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x381a3f04 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x792509d7 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8be78000 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x92399572 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa7205782 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbfc01c57 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdb51f627 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf5b06014 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x084b46c2 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0eaf3a5f rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x24bc95ef rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x33a3f642 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x45e74813 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5857b1fb rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5c41619b rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6c7c9fe6 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8167e513 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ee897db rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8fec2a0c rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9ac14fae rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcf7d37aa rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd4d7d05b rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdd04f8d1 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfbad9204 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x1c1be81d wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x693ef156 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xcee89f61 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x03167a56 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x57ace1fc wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x7645fc6b wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x9b12adf1 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xdf64d076 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x35721068 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xb63a5494 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xd106d5ab pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x019b62ff wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x1d6e0bf6 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4229c3be wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8b24ed2b wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x98acc49e wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xdf8e3322 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x90500df9 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x1f70f19c scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x21348260 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x2f4508ba scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x5831fe5f scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x65ae7556 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x960f24ce scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3de86bec fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x017838a1 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05c4b283 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b509bfa iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x138a2166 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2293758b iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2a27f3d2 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2b9e15d7 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f26c57d iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x367cf68b iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x39daa03e iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c798209 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f37beb1 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f42acb3 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x423d0528 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x455441f2 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x489d929e iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x569a408c iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x67f4b02e iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x688db2b2 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x799420c3 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7da4844f iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x931193c4 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9c403966 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa781bc60 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb17ee803 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb383af07 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb44341cd iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb44a014b iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb546b11f iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbbe69bc8 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbf6ce615 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc05e75ab iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc934b948 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd02a11df iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd02cb84c iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd22b4e08 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd44391ec __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe1a41467 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe4fcb529 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xea61f0f6 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xefe4b442 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff2b660c iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x019942c1 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0dd450d1 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1446a817 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1e17a4a9 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3f0a05d2 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x49e8dde5 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7004e93f iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x928653ce iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9672f2e8 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa807d7e2 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa9c69778 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xce9aad1e iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd7814d18 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd8c1d985 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdec453bc iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xedd02ebd iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x000476a8 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x116db27b sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x19298574 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1cc87f60 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x24ed5eab sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x342ef6ee sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x35d20d0a sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x444be7a5 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x506bacac sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x541e66ab sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a95defd __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x602fcfed sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x638e0eb4 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x63c97c16 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6f079ea4 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8ffc9792 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x96990d53 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa98bb09a sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbe3490b5 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd41f8105 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd7b58e81 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdc793760 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf3f182c9 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x4b1d3ce2 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7f27dde1 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xab15660d srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb60ad613 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xcfadd2bf srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd5d8bf81 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1f83f6e9 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x29be3097 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x411c5b20 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x461bdd58 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4e5a6202 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5a19a482 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x69ba8738 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb33913cd scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe1c6918e scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2796e241 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4b119dff iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4bd136fc iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4de3d98d iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x519e37e5 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x56076478 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x58506063 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6a56024b iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7b63f7a4 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x878b9d34 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x89cf0f19 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8d88f602 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f08dcea iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9472c251 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaac13c9e iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb278c6ea iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb67ce858 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xba95e58e iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc4cb4ff1 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcb096cb1 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xde823c25 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe0c120e5 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x316b3e74 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4c64816d sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x8c8ce00d sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xa70a83e9 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0ec81ab3 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x44406b69 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x86c7ac5b srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x9d5a7c7f srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe460d116 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x3bdf6a10 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xc0bbe44f pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xe6cd57e5 pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xf2267872 pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x4a7a97e5 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x6dd9c85a spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8a20e2ae spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xf1f7d62a spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xf31f6fa0 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfa64db23 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0xc777936a st_register +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x578d5887 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x7f398f95 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xe756b38f tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/uio/uio 0x23d4d4a9 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x91a1d4f4 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa37e4a16 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x4b392b1a usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x8ad0ff96 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x12d5d7ea usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2f8e5993 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5f011ff5 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x776e3a4a usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x79d6f62f usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7bd8bef5 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x898a3a2c usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd8fd855d usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xff6376c7 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x09fc4294 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x26901a05 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2dba49d4 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3623150c usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3cff8f31 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x49be00d1 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4a4ffa2e usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x534c40b4 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5769afe9 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x57b68472 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6af98163 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x79f84abf ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x87df7f66 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb700ba0b usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc339c5d3 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd339d69c usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdb104e1f usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf1c52c45 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf8dc5e6d usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x05f31a93 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0acd9617 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x12aed956 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3d351c8e usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3d7ef733 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x429a6a5a usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x680db485 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x706ff28e usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x763fcb1e usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7bfc7fc5 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8bc26c61 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8f2f7f24 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8f344d4d usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x95927ec9 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa03c8f10 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa2b47c72 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xac2f963e usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb02ccdf3 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb1f0255d usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb92f7d88 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbf13186e usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf9ca676d usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfbf3f34e usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x34f440de __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x3ab8145b wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x45818ace rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x82a7a809 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8f5ca1c3 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bd48ebe wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0d46bda2 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1fa245b7 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x25803c16 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x28209698 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x57a530a7 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5d0ff329 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x80622524 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x842159bf wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8c433638 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa5fc42bc wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xbcd246cc wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc383af33 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xdfdf59b2 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe29726fc wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xebc82625 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa9ee9a14 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xcbd48af0 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xdc910304 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x2b52e924 uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x2f10a47f uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x5f7d762b uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x8db339d7 uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x963a9e8c uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x9be5cad3 uwb_pca_base_priority_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xb66de01f uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe254a1bb uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x50752ccf umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x818668a0 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x91a14e96 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x97c39d55 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xac1fdbaf umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe40f8747 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfb00ad34 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xff5f290c __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0038657a uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x03cb022b uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x052b26e0 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0e0a439d uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x19fe9bb9 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1d332964 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1f54aa78 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1ffe30bc uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2140a0e1 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3570eff2 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x395fc641 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x45885c54 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x46155970 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x516a7196 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x53579824 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5b9d3602 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e91f389 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5f101386 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62532331 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x68dafe95 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x72a62944 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x773cfe08 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7ae4daa7 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c07ef7b uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa10f7c27 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa8e50934 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb88d8a67 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc58ff3cc uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd5060350 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdaa67fdf uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1b86ded uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe24c7e7f uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe8a27343 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb0f8335 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7f753d9 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf98e2c94 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfe53e1bd uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x17ff0eb2 whci_wait_for +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x05098ff2 wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0786e858 wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1382fc61 wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x14876df2 wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2c4b337e wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x377fb5ae wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3d06581d wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3f2f508f wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4c556bab wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4cb4233e wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5670fd57 wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5cdc703d wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6fafd921 wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x81a315ac wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8215171f wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8abe2974 wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9e03074c wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa26cee6f wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa7b54ff8 wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xab7741ee wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xad8e41e1 wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xade7d7ba wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xca688989 wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd09203ef wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd2d21207 wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd75bb11a wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdf2bd878 wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe5cd8a60 wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xec2e3ea8 wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xeff6a78a wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf0c3eb9c wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xfa9e1eed wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1b95a3e2 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x927995e8 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x94b1ea12 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x994154a8 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xca89afd5 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd175b716 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xecf2922d ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x595b8e49 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xbcead99c fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xb9034c8d sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xe75ebdb7 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x557efa1c viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb9fa8014 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x55bb928f virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x5a3c8afa register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x843c51e3 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xb45726ae unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xf89a8b53 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x04c270e4 virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x26848e4c virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x4fafb614 virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x561fd74b virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x8293b79b vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x84c2fcec virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x997dda1c virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xaec3e4f5 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xe32e0ebe vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2be4b08a w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3079e41d w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x428be523 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x894f5e00 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa7831218 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcecc4881 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xda060948 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf408d601 w1_read_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x77362cbe dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xba27df30 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xf47b8c3a dlm_posix_get +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x025234cc exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x6fb3795b exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x05ff89e9 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x17213585 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x184be91b fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x1a63b77f fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x2961033b __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x3f8ca31a fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x44753321 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x76dca448 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x8d69b257 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xbefcf8c7 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xc0abd19d fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xc9d53071 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xd5265998 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xe1e9c3fc fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xe8b94e16 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xee2effa4 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xf5e05345 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xff0dd891 fat_attach +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8b88246a nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xba018fcb nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xcd1e0735 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xd9872b9e nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xddf6b1ba nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x0c256738 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x550688db nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1a19d4d8 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x24b12a2a o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6e15ed06 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7e7fdbab o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x86da959a o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc1beb5e2 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc72b464c o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0a2c2f59 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x183bc7e3 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1b688fe2 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2e8a4eed dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8f136e75 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa70ba8dd dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0b264c10 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x2cfc7924 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xd651b96c ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x196eb4b7 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x39e50509 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x5ee8fea5 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x6076f4f7 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xc482cdff garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xd9ef9fce garp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x49c1f99e stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xbc64365f stp_proto_register +EXPORT_SYMBOL_GPL net/ax25/ax25 0x0973b6b1 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xd33a2f39 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x04920038 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0dc35d95 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x106f23a1 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1bf8a839 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x23b4e1ee dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x32076e8d dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3a5be0a2 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3ac1fa7c dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b00af17 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b2d3709 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x41fb90b6 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x47dc11de dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4f5de048 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5205cf76 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55aca35c dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5b12a282 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5cd74d90 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x674bb19a dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x872b0b3d dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b45be1f dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8d8840d3 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x970240e5 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x99c258d0 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9b66bf52 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaeb33396 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xba492e72 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbecfb3f4 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5d9046d dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc8b2bcdc dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf5d9d896 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8587a55 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8d1f97e dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfc699ce7 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xff6da325 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0abf8f19 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x43f5e231 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6c1c47b9 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x74d9aaf9 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x812db35e dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xcbac9a80 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x01799d50 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xde00606b ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x02ecff0f nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1a015f33 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x30d5d327 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x59f58e4c nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x84fd1987 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x87730251 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb1c7b3de nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xdb7d9a70 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xedfd3709 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x95506ed7 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa46e1b6b tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa64f09f8 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xca04efbb tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd33cf8a9 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x1a75957e inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2af0cbf5 inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x38535b7b inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x39dcfb1b ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x46075d8f inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5a104059 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5da28d1a ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x83cd471d inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8745eb37 ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8f9204aa ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x9c6b106e fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa0164dcf ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xbb626775 ip6_local_out +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xbf432472 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe69af28b ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x0b78d6dc ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0333ff86 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0bf6b3d2 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x35ebc279 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3ea2220b l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4c5115e2 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5a8e3500 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x78cef985 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x82af059f l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x88be3d5d l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb809493c l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc1648294 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc503e991 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc6d92f2c l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd78b5de3 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdc717827 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe2c8370a l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf576358e l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x68426b43 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe9d077d6 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xeca9a904 ieee80211_find_sta_by_hw +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0121e126 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0481f237 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04fbcd9d nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0d7b2bc5 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0dc40ded __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x11eafc30 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x125ce9cb nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x17253a11 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x17ed69d5 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18effe88 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2128736a __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x23e62cac nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a74e2aa seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x363c7953 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37dd72d7 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42a8d410 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42ebce3f nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x481caf8f nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c318e32 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d554f5d nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5076081a nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50f36a2a nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b803ca5 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d58992e nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6265deee nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63933329 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63b149ba __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7348860a __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a7461d7 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e431c96 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x84644738 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8572ddba nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8739134b nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89ffc5c5 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e18cbda nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90bbe8ab nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96a3a058 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9ab53708 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3c8ffa5 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa64e00e4 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb0a53498 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb495fad0 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb54d3098 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb744bf38 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7514be8 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd7603c6 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbff7d6b8 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc114700c nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc446dc0b nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc606df38 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcfa5cc85 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd595e650 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6c53809 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc1afcc8 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1ca1b27 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6ab702d nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7a384d2 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeca45148 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf287d464 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf736ae10 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfdb8af20 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xd5fa4292 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xc06687fc nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0ff46e4d set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2634727d set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3b303e58 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3f1c6f1f nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6b0068fd nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9619ce96 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xab3759e9 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xca1a24b8 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf82a5cce set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfbe8eb65 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xc6fa962c nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1c828c42 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x84c3d285 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb0fc03a1 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xbbb8fd46 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x58cb3143 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xbf109ad8 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0557bcab ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x346ad38f ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x41aa79c6 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4370128a nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x45e05940 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4d699b64 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4d708afe ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x525d6f10 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6fdcd62f nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa6dad914 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc0584545 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xca8c9a80 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xcc977bcc nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xbf02d4d0 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x242a0e4c nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xa0fb3327 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x05ea757d nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3711b36c nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x39773259 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x4aee0a20 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x564671ef nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x71088adc nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x276d7c9f nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1ba40499 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1e450f5b xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x23248858 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x36f081f0 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x59da4237 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x600f8a1a xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x61522493 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa38e5465 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc4d7a914 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xce56b484 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcf0ff706 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd2478812 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdbb5d225 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xef0b7bba xt_request_find_target +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xc0da1f93 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xf34ceff0 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x036fb5f8 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0d0147e3 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x56877076 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x68ec1d68 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6df80d0f gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5048fb6 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc2049b95 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd60ef930 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xedb93689 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf2f55176 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf32d3c1e gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x002c4c77 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02f58cf8 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02fa9a1c rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03a5e986 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05f3ecfa rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a39951e cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f71492d rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x136027e8 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x159607c6 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x160b3511 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1932b3ef xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a878bb2 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c011538 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ce9f930 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1de16af4 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e15a91f rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ee5a4e8 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23abf546 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24e05ea0 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2578c4c6 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2626c9ff rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b38e900 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x306ff2ad rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x330ffb87 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36be709b rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37518cba rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x395c802c rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x398db2a4 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c17857b svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c74ee4f sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c804403 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d63b2c5 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3db69bb6 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x403e3912 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40d6fac2 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x418f81f8 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4307610a auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x433cceba svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43837152 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44a067f0 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44f0c3d5 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47e6d3a6 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49bb1a0c rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a3ba88b svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c552e16 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ef5ebf1 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x506a085f xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x548f3da9 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55698568 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57fd0f10 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x593e0c57 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x596b4b7b rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c26c926 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c73b3f9 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c955934 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e22eb49 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e323943 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fe200bf rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6064cd52 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63615ab9 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x662a08c9 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x667b23c2 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66aea64c svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6703e777 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a4f77af rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bc27b78 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6be7dea0 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f090416 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f8f0b43 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70b195b2 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x722fa891 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x753722fc read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x759760e7 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x778d4ef8 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78ad47b6 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bc4e2ed rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7cb6d3e9 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dcf48f0 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e107a66 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e4cd2cf svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fbb66f8 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8024f79f svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x851bf55d rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x889b3a35 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bff4a1a rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93ab2381 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93ba8ae4 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96652f6a xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97c2fb10 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98cceaf5 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9995d8a9 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e215273 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ea546ad xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f61e11f svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3b3d941 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4d4abf2 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6dec430 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6fab0b0 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa0c04d3 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad245188 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad2968bf svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad6adfdb xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2ae99a3 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb395b058 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7405883 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb94f9c6f xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9502618 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbda052a4 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf632957 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2071927 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc375948a xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc70a54be rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd048ad9a xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd197ab1f cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd33ec77c rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4a392db rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd33ef88 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde03ef44 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1a874a8 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1bd4397 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2130de2 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3c94e0b xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe66b8f19 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ab3700 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xead39d88 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb3a3415 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecb8074e auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedb0b12b xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xede415a2 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xefd0afc9 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0d2c419 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1bb4afa rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3f6318c svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf445ee7d svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf538622d rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6c50a58 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfcf368ec rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff05fc62 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff19a0c6 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff4a8f53 rpc_run_task +EXPORT_SYMBOL_GPL net/wimax/wimax 0x16026d8e wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3025cab8 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3c1e8e0a wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4424ec2f wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x62f60ce9 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x90d574d8 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb3c1ee0b wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb79dd807 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbbfdd520 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xcd03d1b3 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd7dbd0be wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf7ea4a18 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfc3bade1 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0727215d cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1627fd8c cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x17737a94 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1f3704ec cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x27b9a76d cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3a841873 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x467f7299 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x556fc4a8 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5682ac4b cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5fa501a0 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x63688e2d cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6928eb5b cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6fdecdbd cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x77c364c8 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7d8b653e cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7e8ad915 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8bf3c7bb cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9126a864 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x91c9a597 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x968c8228 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa84894af cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8fa5d4d cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa9843c3b cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xba850747 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc4937059 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc4a4e5f1 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc9ef7987 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd6c6d8da cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd9ea17e4 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf5a85674 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfb6606f8 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfe78e20c cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3c1de8f0 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x82d08773 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb3fb6977 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xba14d4a7 ipcomp_init_state +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x325de185 aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x3340c790 pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x34973369 aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x3cc89547 aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x44f83e6e aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x5b6ba21a aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x72a0b1a1 aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x8b0d005f ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xc19444ca aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xd8d69a2d aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x1130428e soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x46b1130c soundbus_add_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x6292c877 soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xa575ab01 soundbus_dev_put +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xcb40d6e5 soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xd8ad3a87 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x2b3eb513 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x3e3d4a75 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x5c332566 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x74bd0625 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9479b3c7 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf1fa7a1a snd_ak4113_build +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x002d32cd snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x035eaa4b snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07df8f30 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07e93dd2 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a2a5a45 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b69d9d7 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e5ae9d2 snd_hda_eld_proc_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13231724 snd_hdmi_get_eld_size +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c2363ca snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ebd443f snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22ebbe06 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x25a00515 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x25e1bb38 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c62749b snd_hdmi_get_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2f5293a4 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x326f82c4 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3981f55e snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3eb382f2 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x402a07ca snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40b479dd snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45cac9c4 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47ae410e snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x481a34d4 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x490aab8d snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a5365c3 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dcbb9d7 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52e87e0c snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55963b4c snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a6989d9 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b19a78a snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d1b058c snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x637ed3d6 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x65d66ab7 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6731cd78 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x69d5a67b snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ddf4e96 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70033149 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70954924 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x735cd35c snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74f49572 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77645c9c snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78294082 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a6bf747 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7ba4c9a5 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d1b7683 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7da66ba3 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80bd80d2 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8201ec5a snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8344a50b snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x849e6ff4 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x884f22c7 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b547601 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d35cdc9 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x90111957 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x908cab8d snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x910c671a snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x929342a2 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9491e0a4 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a41df85 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9e3ce325 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5424017 snd_hdmi_show_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5428588 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab684071 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaca6a108 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xadebba28 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb21593f1 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4f48cdf snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5cbb767 snd_hda_eld_proc_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb92056ad snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc708ec03 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc809cebc snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd77970a snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf183888 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8498196 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd53ce58 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd5aabc5 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe32eee24 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe350ceee snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0175408 snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf669baed snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6aaabde snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa990404 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb6b2ac1 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbe567ec snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfcbe0c4a snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd350f57 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff5cbdc4 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff8f2771 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x391298c1 ad1836_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x8ea65d66 soc_codec_dev_ad1836 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x4bf387f0 soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x8c076791 ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xb3a34d94 ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xba2c4aec soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x03a6ab2b ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xdb1a1183 soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0xf551cfa9 soc_codec_device_ak4104 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x7d4434a5 soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xd3f275ae ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x25ff1b09 soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x85df7c7b ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x0c94f693 soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x32a31448 ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x11a0b1ca cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x262183ec soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x2a635a26 soc_codec_dev_da7210 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x419dfc63 da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xd27f0715 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xa03a10d6 soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xace4b29a pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0xdc67b172 dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x6d92c46f ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xf542ffcc soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x0dbda1be tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xb7b644f5 soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x7eaa75bf aic26_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xb9fbb047 aic26_soc_codec_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x1a070e65 soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x28792658 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x40ba059d aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x4144de7c aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x690b9936 aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x72e65d14 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf446b956 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x51650ac5 dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xd6c9f4b0 soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x2a757127 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x45a8506f twl4030_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x5acf77c4 soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x25403221 soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x6415e8cf twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0xc5bafb10 soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xaacd2da8 soc_codec_dev_uda1380 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xf7e825b8 uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x3e50b5f8 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x42af1254 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5f88afd1 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x45f0cbe8 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x4b55a6d1 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x7ccb1841 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xd3afb315 wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xe746a23a soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x7c5a5868 soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x8b5295ab wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x1410b366 soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xb9c978ef wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x0eb510dc wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x3d7b5efc soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x1bc188e9 soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x364823a2 wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x30b0ac37 wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xa7024aac soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x9becc165 wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xe00d8c0b soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x2657e762 wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x74864fbc soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xa4869ec2 soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xa72fbd1e wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x0fa35b81 wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xb910d331 soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x923d80f2 soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xf96d1909 wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x449539bc wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xeccea0d9 soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x48116614 wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x5f0466e9 soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x7429352a soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x7b9fcc8d wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xce8514ba wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x3b68a3ed soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xd3802402 wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x580dce35 soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xbc5e4207 wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x24b85047 soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x4ae4d800 wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x2bc1532e wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x5b891a5b soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x42922b1a soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xe09d808b wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x4350412d soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x46ea8b3f wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x16271a8c wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x3e27b568 soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x61e5daf7 wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x9292fa64 soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x97adaa1e wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x99cebd59 soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x50d55d66 soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xdd8923c7 wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x5b1d5169 wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x7bf80ea5 soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x34b99862 soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xe9a38201 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xfb271199 wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x0864602a soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xb896f4be wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x10bd3b5c soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00b51ad1 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00c697c0 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0504bf8e snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05b40067 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0e785328 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ea6cfa1 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14682b94 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1470db15 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2636223a snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2723b380 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2c7020ae snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30b75af6 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x315e8e26 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x342ea0f2 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3ffc01e5 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4493ca57 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46b7d0f4 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e3cb3e1 snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4ef51f07 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f650a40 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50312f3d snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5262a31f snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52e6c97d snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x538cef59 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59a8f9f4 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a06cc1d snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d7bc471 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e0495aa snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e8c1b29 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f854435 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x648f77da snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x670d2bda snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6895e45c snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x718198c2 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7344a66c snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73b4d9c8 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x761d9e05 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x786173c7 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78ab83ed snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78acf2d9 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8517f1de snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85f45f5f snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x880e392f snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8fe9c6f4 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x911d1ca6 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa047fe47 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa2d5d2a8 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xadb697c4 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1c1fecf snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6cd39f1 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb87eae3a snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe32f3ff snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc5c389ef snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcec24800 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf21914e snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf59bb27 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd1e8a24a snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd6a59bb2 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd73d7993 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd776e799 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd85049c2 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd94267c4 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda9888fa snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdbc7df63 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe20b7f45 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe3339fb2 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4819a4a snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7313f34 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7bea899 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb2a774c snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee8ddc11 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xef39ddec snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf227ce25 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf36026bd snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa3669df snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc6bf758 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd5480c5 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x055b05d2 xv_free +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x219f85f4 xv_malloc +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xb2a28707 xv_destroy_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xc4c915c8 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd24f6b4f xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x004a1d7a pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x0079357c sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x009707d5 tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f0e7b9 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00f36416 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x016cadc3 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01ddfc3c driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x021ddebf ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x02272c1c __class_create +EXPORT_SYMBOL_GPL vmlinux 0x026c289a attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02d776c6 pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x02e1ddc5 pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0x02e59311 css_id +EXPORT_SYMBOL_GPL vmlinux 0x03243898 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x0333cac2 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x03425e8a usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0388c24c pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x038e8978 tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04047f74 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0466b668 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x047efb7c ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x0496520a debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x04cb6a83 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x04d09272 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0567c772 ide_dma_sff_read_status +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x05a89413 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x05b9a04a __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x05cd499b ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x060357e1 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x063f4736 pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06b0f92b i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x06bfba91 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x06f5efcf spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x070c6e87 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x0724568d get_device +EXPORT_SYMBOL_GPL vmlinux 0x0734a51a spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x07542c0c pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x079c5643 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x07a21887 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c02d81 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0804a970 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x080f2a91 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x082bf10f device_rename +EXPORT_SYMBOL_GPL vmlinux 0x0872de2c ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0x0880a8dd ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x089b744f ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x08b16df6 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x08b70f34 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x08c54e41 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x093305d0 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x094dabc4 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x0972a8b5 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x098ab9e4 ide_pci_check_simplex +EXPORT_SYMBOL_GPL vmlinux 0x09ce15f4 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x09e5b349 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x09f9d2be tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x0a136798 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x0a212553 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x0a366893 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x0a4f4c0e rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a628448 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x0a9fb582 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0aa108ce rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x0ab4d736 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0ae01a8d console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x0b01ce57 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b0b350e fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x0b32af93 ide_read_error +EXPORT_SYMBOL_GPL vmlinux 0x0b73753e user_update +EXPORT_SYMBOL_GPL vmlinux 0x0b8ac9f6 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x0bb2e284 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x0bb3fe65 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x0bbc46fa ide_prep_sense +EXPORT_SYMBOL_GPL vmlinux 0x0be16e74 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x0bfa4c8a queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x0c04fee6 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c4c47db crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x0c694f6f crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x0c92a8b6 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x0c97d338 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x0cc9f7a7 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cda33c7 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0ce9db47 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x0cf5646d usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0dc74435 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x0dfaeaaf get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x0e641278 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x0e67c69b __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x0e80ac91 ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0x0e9ac657 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x0e9b64ad inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x0ee7aa4d ref_module +EXPORT_SYMBOL_GPL vmlinux 0x0f3d4c1b srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0f6b5976 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x0fce402f fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x0fce7587 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x0fe68dce raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x102eae3d __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x103186a0 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x105acfee sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x10668418 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x1076b8df ide_create_request_sense_cmd +EXPORT_SYMBOL_GPL vmlinux 0x1080a6b9 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x108d22f6 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x10b2e1d3 ide_port_scan +EXPORT_SYMBOL_GPL vmlinux 0x10f1b0e9 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1130addb register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x118c175c ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x11c0b64d crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x11ef90c5 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x123ea772 ide_host_add +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x125c34df usb_string +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12708099 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x1275f6ec ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x1313656b part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x131dd808 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x1337d302 ide_no_data_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x13601184 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x13934ea0 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13c28742 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x14219ea8 pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0x144ae6f6 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x14607360 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x146b90c4 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x1497a5f3 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14bd4617 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x14c2742e input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x14c2e302 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x14e2a4f3 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x14eaffc6 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x1537d304 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x15431a34 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1554c96a spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x15583cb7 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x157627c2 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x157e9379 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1595ee0b ide_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x159a505e __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x159abb63 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x15a9d8b5 ide_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x15c6dcc1 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x15d71138 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x1601138d regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x16046b62 pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0x160723c4 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x1608e524 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x1610fe1b hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x16ab168c ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x16bd1d53 ide_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x16cf9698 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x17116efc crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x1782e5cc rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x17a872e7 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x17df0c3f __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x18463710 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x18650e54 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x187c5f44 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x18b9cc00 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x18f4a426 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x18f7b779 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x191a1051 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194db757 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x1957b5c9 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x199fd71d crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x1a135ba4 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a406e52 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x1ab30832 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x1b236b82 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x1b379128 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bb1510b platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1bd793fb xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cc94552 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x1d06c2c2 ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x1d5d1059 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x1d758efd crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x1e2820ad usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x1e3cd95f ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb765b1 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec0a475 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x1ec97d4b register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x1ef7eaeb lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x1f17f575 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x1f3648e5 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x1f92480f of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x1fbd4457 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x2041020d swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x2049bab8 __destroy_context +EXPORT_SYMBOL_GPL vmlinux 0x205a34c4 check_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x2098ab60 pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20dcabdc init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x216c3e04 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x21712805 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x218bf4f8 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x219b0307 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x21a0e724 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x21d195fc ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x227f34cf scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x2285200f usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2290c3e8 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22e3f8d0 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x230b468d i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x237bc235 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23a53a52 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x23afb2bf __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x23f94b6b tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x2406dae3 pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0x241bc7df device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x244323b5 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x24754a5c ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x2484a607 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x24cae21c xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x24cda041 ide_vlb_clk +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x257a2f48 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x261e7ba9 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x26297b3d crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x26647177 sff_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0x26664a12 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x26836160 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x26a5ef64 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x277722a5 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2791d78e blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x27ab7a29 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27cbbed1 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x27e62e4d kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x27f43ce6 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x27f79dd5 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x2804775c wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x2823a4df tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x282e5e12 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x28548e70 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x2866e9ab vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x289b1619 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x289e207e of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x28a98e3d usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28db97a4 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x291193d0 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x2953bf90 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x296897b8 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x29945815 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x2a08c43a ide_device_put +EXPORT_SYMBOL_GPL vmlinux 0x2a1e1dd3 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x2a23ee0c ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x2a330a1e hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2a355381 ide_host_register +EXPORT_SYMBOL_GPL vmlinux 0x2a3aa97b usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a9862b9 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2a994b33 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2afbe2a5 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2b033008 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x2b18bb27 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x2b3a1609 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2b6582dd irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b9f9bee pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0x2befe438 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c2a5d1e get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2cdad5a7 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x2cdb64c6 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d11e76f da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x2d481a4c hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d5dfb0c pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x2d68c82f ide_end_rq +EXPORT_SYMBOL_GPL vmlinux 0x2ddd4879 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x2ddee4bb usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x2def7844 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x2dfba857 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e7167bd power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x2e98b940 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x2eaaab2a sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x2eb9768f skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x2f0d0988 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x2f2aa116 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f7b9baf crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x2f90f539 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2fb5bba9 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x300d74a5 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x30301151 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x303566dd skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x304b7bd8 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x3073ac1e blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30da4bf8 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x311b3076 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x3124ea0e kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x3145bf31 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x31468585 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x3193aeb3 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x31e00d02 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x325cc160 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x32b5a14f __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x32c1489e transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x32c38b6e usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x33136f3c crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x331cb9ed ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x3327fb28 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x3391d402 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3398ae42 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x33b5c4e4 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x33e2a2d6 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x33e37323 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x33fa59c4 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x343d3f3a shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x347396de ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x347af712 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x34df3597 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x34f3de1a elv_register +EXPORT_SYMBOL_GPL vmlinux 0x351bd533 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x353ffd6f ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x35584c86 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35e6e37a regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x361ec44e cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x3699f321 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x36cdcfdc blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x36dec4b0 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x36e55ee4 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x36f625d7 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x372f110e ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x373c7cf4 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3784f105 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0x379ab141 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x380a4173 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x381916eb inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x38278534 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x3832a8c7 ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0x38585529 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x386ea911 ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0x387ca845 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x387d6095 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x38a49622 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38d66f96 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x3936cf9f cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x39490a6f ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x39a02f82 ide_dma_sff_timer_expiry +EXPORT_SYMBOL_GPL vmlinux 0x39d7bb0a usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x39d8dd1d crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39f673f6 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x3a052ee3 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a8a4093 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x3a9c2a1e usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x3ad39656 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x3b015e71 ide_dma_test_irq +EXPORT_SYMBOL_GPL vmlinux 0x3b99d3eb save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x3bafa633 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c29d22b ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d11f00c usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x3d288ac0 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3da26041 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de548e6 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x3dfabe61 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x3e227b63 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x3e3d24d6 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x3e3d87ee ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x3e4df484 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x3e6849c9 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x3eecdc00 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x3ef3a5e9 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f3d573b usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x3f6735bd __css_put +EXPORT_SYMBOL_GPL vmlinux 0x3f870752 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x3f8cad64 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x3fd1353e debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x3ff44715 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x401aa44b ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x402c844d ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x40336438 ide_pci_setup_ports +EXPORT_SYMBOL_GPL vmlinux 0x4035fb3a ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40e0a9b0 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x411b074d rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x41389212 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x4166f57b pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x41694483 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x41994926 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x41b6651f pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x420db10f dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x422cd38b ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x4253e84e __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x425c1c0b ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x42668d25 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x427a5b1d scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42842b2a crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42c53540 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x42e0af53 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x42f9c819 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x4320f166 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x43233b17 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x4342caec trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x4381bc75 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x43f270a1 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x44238b26 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x4424c14d ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x4456d0c8 pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x447ad076 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44a948f1 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0x44c32018 pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0x44cb65d7 ide_queue_pc_tail +EXPORT_SYMBOL_GPL vmlinux 0x4530e53a wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x45359f1a pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0x455ded4d ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45896c1a ide_pci_resume +EXPORT_SYMBOL_GPL vmlinux 0x4591649c get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x45b3ded3 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45cf2fcb irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x45f0bcce adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x45ff60cd css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4608cfd3 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x465252d9 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46736cae ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x46822f95 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x46f200f0 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x46f9192b usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x47118dda ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x478c2aba platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x47a3dabb cvt_fd +EXPORT_SYMBOL_GPL vmlinux 0x47c1db56 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x47cfe7ed ide_dma_end +EXPORT_SYMBOL_GPL vmlinux 0x480de8c4 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x485b0bce invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x486c7ce3 ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48ba234d ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x48d0a4fd sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4943a338 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x4960854a tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x4961d7c7 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x49898096 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x498b0f59 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49954a5e pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0x49c697a4 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x49cf0518 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x49d49d21 ide_cd_expiry +EXPORT_SYMBOL_GPL vmlinux 0x4a18f32f usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x4a588346 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x4a7e38e1 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x4a8d43fc cpu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x4a91a4f2 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x4ab81583 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4af3f9f0 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x4b02a341 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x4b0e2eb3 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x4b408329 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4b733dc6 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x4b73d14a ide_write_devctl +EXPORT_SYMBOL_GPL vmlinux 0x4b7a0cf5 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x4c4cf129 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x4c725cfe sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c75c329 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4c87b98e ide_dma_host_set +EXPORT_SYMBOL_GPL vmlinux 0x4d0e5174 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x4d14e74c regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4dbc664b cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x4e0a799f pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4e19b08f register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x4e258855 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x4e3594c4 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x4ece0f6e platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4fa0f3b9 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x4fab8181 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x4fcb28f5 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe04a75 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x4fe4eddf rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x501c9226 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x50257b97 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x502c9eee crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50cb8fa1 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5146ec83 ide_pci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x51af7f83 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x51e3256d vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x52053081 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x521984b9 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x52602dd8 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x5261ca37 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x5273f78f clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x528dc6bf inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x52aebf52 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x52e241ea platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x52e8aa7f rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x52fe50dc usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x53366a59 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x533d68cd ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x5341db81 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x5345aba5 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x53514da3 ide_device_get +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53645ed7 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x536db750 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x5375e3f8 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x538051f2 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a810a2 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x53d3c536 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x54560608 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x54587c22 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a041bd pmac_backlight_mutex +EXPORT_SYMBOL_GPL vmlinux 0x54aa0c34 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x54e081c7 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x553ec50a user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x55ceecb7 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x5628c43b ide_release_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56c7aa5c attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x570e7da0 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x5714772e ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x575e59fc free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x578607eb xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x578e2b2f usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57c158e3 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5814c22c blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x58515e97 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5916f9bb fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x596df5e4 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x597fcce5 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x59b68676 ide_pci_set_master +EXPORT_SYMBOL_GPL vmlinux 0x59f78b24 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x5a0ed886 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5a0f8643 ide_check_ireason +EXPORT_SYMBOL_GPL vmlinux 0x5a1727f0 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5a23a394 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x5a3c2377 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x5a6f51d3 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8d00bb class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x5a9c1d2c led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x5ab646f8 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x5ac517c7 ide_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x5acd0bd7 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x5ad93819 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x5adf5096 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x5aebc319 ide_input_data +EXPORT_SYMBOL_GPL vmlinux 0x5affe0a7 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x5b33ed0c ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x5b3551b0 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5b380dcb kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x5b68d605 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x5ba089c9 device_move +EXPORT_SYMBOL_GPL vmlinux 0x5be29105 pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c3b3f94 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x5c5642b1 user_match +EXPORT_SYMBOL_GPL vmlinux 0x5ca5a347 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d1d24e3 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x5d25666c pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x5d2da70b bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5d3442b0 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x5d4bba4c of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dbc10c0 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5dfe3b14 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x5e49f0d2 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x5e4a9737 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x5e4f6576 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5e72fc94 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x5e7f8e70 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e81ce55 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x5e89b487 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x5eeaf1d4 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x5f47256b fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x5f7db3f0 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x5f93cc48 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fd3aa7c rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5fdd810b sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x5ffe2770 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x60086622 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x602e6d07 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60a61ee7 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x60af1d02 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x60b3a244 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x613827d9 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x61430158 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x619af8ff wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x619cae8f vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61d29289 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x6243438c of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x624692c6 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62ca57dd usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x62d8b826 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6302cc40 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x6317010c ide_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x63225204 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x6395f0d5 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x63fa132d pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x6451d3a7 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x6453f77c pmac_has_backlight_type +EXPORT_SYMBOL_GPL vmlinux 0x645c5e0d proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x646294fd wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6475e1a0 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x64760633 platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0x6495fad8 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x64d29734 input_class +EXPORT_SYMBOL_GPL vmlinux 0x653b2201 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x657b9d4c tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x658e101d scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x65a63d3f blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65d7d194 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x65dd9cf8 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x65fe4b22 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66480a3e class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x665a44c0 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66c46402 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6726ab71 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x67328b50 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x6732faaa seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x678ec518 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67c4d52b devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x67ca5214 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6865c159 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x686f769f sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x694935b1 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x696e31ca noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x69e6df6c shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a06be26 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6a2b1d24 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x6a387d07 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x6a4f09ea vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a82c810 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x6a8595cb __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x6aca2219 ide_cd_get_xferlen +EXPORT_SYMBOL_GPL vmlinux 0x6acc05d9 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x6adda078 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x6af322ef ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x6af5e3d7 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6b23f7bc dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b8a168b unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x6b9271c4 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6bbf9eb4 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x6beb34a2 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cb4ccf3 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x6cdb4008 ide_read_bcount_and_ireason +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d36fe3d rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e937c5c pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x6eca5fde usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x6edc495b platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x6eec5b1f alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x6f4cdf2d kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x6f92b74e generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x6fa05add kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6fab5d99 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x6fb7dde7 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x700ced80 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x70683010 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70b0d060 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x7121c65d ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x715ffd41 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7177224c tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x71891b7b trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x71a1e787 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x71d1208e usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x721f1b55 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x722cd5fb usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x727255c9 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72a69827 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x72ea504c inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x7340968f ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x73439453 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x73564277 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73a69cb1 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x73cab46a class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x73f87fe3 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x752eb022 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75619009 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7626b273 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x768bc27d invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x770125d6 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x774a10e2 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x775864f2 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x7792b256 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7799f244 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x7799fa65 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x77d2e44c ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77eb10e3 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x78c3af3c inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0x78f23561 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x78f3026b sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x790299b8 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x791ee750 pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x795e04bb fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x79895fc6 ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0x79a6972c __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x79ba8568 __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x7a4fc895 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x7a7846ba relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x7ad20fd1 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7af5d2e3 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x7afb9c29 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b30fd62 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x7b4c0812 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x7b55b95f pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0x7b995fdf devres_find +EXPORT_SYMBOL_GPL vmlinux 0x7be35fd6 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x7bea0cae disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7c6b8d30 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7ca00c50 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7cbdf308 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x7cc4ec07 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d694473 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e2d29ec ide_pci_clk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6d3e5d driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x7e76e39f wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7e7ae5f3 ide_host_remove +EXPORT_SYMBOL_GPL vmlinux 0x7e89a447 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7ec7113f ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0x7ef3a2a4 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x7eff2d83 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7f11eb59 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f5e7862 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x7f5fb093 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x7f74735b skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7fc85dfc macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x7fd2f0e2 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x8026724c ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x8045f38f pmac_backlight +EXPORT_SYMBOL_GPL vmlinux 0x8049586d pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x8054863f power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x805d7766 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x806975cd hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x8071ea9c usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x80effa4e queue_work +EXPORT_SYMBOL_GPL vmlinux 0x812f6789 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x813923fa wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81653178 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x818d1f5d cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x819ba81d class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x819efb9c __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x81a31c7a page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x81b131c2 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x820aa6f4 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x821f5971 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x826a72c1 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x82742d8e scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x827802de crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x8299901b da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e4e86e shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x82e8be35 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x82ecf4d8 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x83406ac2 pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0x8340b468 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x83f690df pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x83f7a559 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x840e9848 ide_check_atapi_device +EXPORT_SYMBOL_GPL vmlinux 0x84256e6c crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x844b5521 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x84da89a7 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x84f9e898 tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0x8541c32a usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x85615cac ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85ecc831 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x85f1c45c pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x864632f7 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x866a597e rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x866f2bc2 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x8699aeff pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x86c17c82 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x86e87626 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x874a6504 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x87571348 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8794012f led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x87ebf5a6 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8829c4e3 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x8848769b driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x887ce7f3 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8890fd50 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x88a59b9c ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x88a5d3c9 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x88adf3ed unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x88f4d4d7 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89292640 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x893d137d pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x8966f709 pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x89de8f6b filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x8a16b797 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x8a524f16 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x8a7c0300 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x8aabb1db ide_dma_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0x8ad2fba2 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x8b333683 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x8b5e4f9e sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x8b646eea ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b836fc9 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x8ba6b50f ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x8c4cb0e1 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x8c7b8355 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x8c898bbb debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x8cacd214 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x8d1a481f eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x8d1d2e58 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x8d32a389 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8d61ec7e ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8df573d6 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x8e4e9f16 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x8e7c7f01 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x8ea95599 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x8ec1f285 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x8edcbaae fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8eefa64e sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8ef46c9e cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x8f08920b ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x8f251436 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f817147 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x8fa2ffc4 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x904d8b4a ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x915097e9 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x917c30e0 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x91858f01 ide_set_media_lock +EXPORT_SYMBOL_GPL vmlinux 0x9212efac fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x92ab33c3 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0x92c1444e ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9309b153 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x932a1050 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x93372916 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x935b5bc4 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x938d6b0e ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x9423c8ca blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x943ede70 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x9459f423 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x946ba479 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94f290dc ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x95098a89 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x955bf0ab dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95937734 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x9595b863 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x95bcd156 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x95dcc915 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x95e38610 ide_pci_init_one +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x963aad7c power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x963fc186 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x964ddedc platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x96916049 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x96b8ac9a platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96cd1fb2 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x96fe3cf3 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x978f24b1 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x9790dcd1 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x98250691 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x988f0078 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x98ad233d hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x98cd91f3 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x995f6c18 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x996529d7 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x997d43b5 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x997fb35f crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x999a2778 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x99c70879 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x99d5b483 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x99ee1428 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x99f3ddcf elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9a0f0d61 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a4ee3ad ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9aee7b85 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x9afe1af3 ide_queue_sense_rq +EXPORT_SYMBOL_GPL vmlinux 0x9b2e85d7 ide_pio_bytes +EXPORT_SYMBOL_GPL vmlinux 0x9b32abfa sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9b4a0652 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bd2b201 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x9bda6a9e usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x9bdac444 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x9c240231 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cf511d5 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0x9d0c8455 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x9d6cbe8f nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x9d91a0eb anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x9de6f8b5 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x9df5a176 ide_error +EXPORT_SYMBOL_GPL vmlinux 0x9e0de2f2 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x9e2958f9 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x9e4432cb unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x9e76be9c crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x9e885c65 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9ec75a5a pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x9ed881f5 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x9f22e952 pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0x9f3c3fa4 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f67830d bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x9f82954c __class_register +EXPORT_SYMBOL_GPL vmlinux 0x9f9e1ef7 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x9fa77ebc device_del +EXPORT_SYMBOL_GPL vmlinux 0x9fb39c72 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x9fc4b430 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe1ae28 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x9ffdcaad rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa0a081d9 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xa0b616d3 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xa0efbd9b ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xa0efcac6 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xa1049128 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xa107b641 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xa17af2cb __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xa1d02d87 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xa1fd6d71 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xa23b57a4 cpu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xa26cbf48 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xa27b0ac4 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa2aa2b1c ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xa2ea4449 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xa306defe root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa30af187 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xa30ea92b generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0xa331fbb8 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa39d9220 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3d2be30 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xa3ff04fc usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa5233964 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xa55d5f44 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xa59028dc regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xa5a4c67b platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa5a7c1e2 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5e33ab2 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6632647 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xa663f4c3 ide_pci_dma_base +EXPORT_SYMBOL_GPL vmlinux 0xa6fb916f tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xa7539779 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xa7734f26 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xa78f0796 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xa7b1933f blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xa7c470a6 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xa7fac238 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xa82e97d5 ide_read_status +EXPORT_SYMBOL_GPL vmlinux 0xa841da74 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xa85222ab device_register +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8677268 __ide_pci_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa8d66842 of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa904e06c register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xa91455e5 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9cd316c ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa9d894c7 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xa9ec502e ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xa9f2c730 pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaa9fe643 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xaaa40f03 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xaada79d7 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xab676f9f wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab7c9193 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xabaa88c8 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xac16bfd8 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xac1d76b0 css_depth +EXPORT_SYMBOL_GPL vmlinux 0xac2da4db device_create +EXPORT_SYMBOL_GPL vmlinux 0xac7637be raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xacbace62 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xad0983ea of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xad3c3cc4 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad652027 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xad76199a sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xad83cb60 ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0xadaa26f2 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xadff2832 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae11ce31 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae2e6e56 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf43419f ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xaf8ba5cb gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xafede715 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb023221b mmput +EXPORT_SYMBOL_GPL vmlinux 0xb03a1f2b add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xb08dff2f ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb1069425 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xb11dd98c device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xb13c63b4 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xb16d8c38 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xb16df28d put_device +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1ba7adc ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xb1cf0088 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xb1f70652 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xb1fd5149 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xb2498d1e cvt_df +EXPORT_SYMBOL_GPL vmlinux 0xb250bf78 tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0xb2f6a5d0 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xb2f82432 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xb31deaf5 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xb35ad981 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xb36f8f19 ide_get_lba_addr +EXPORT_SYMBOL_GPL vmlinux 0xb372ffa4 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb39b2998 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xb39c9497 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xb43e96ba sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0xb4cb490d class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xb4cb57ff crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xb4d849ad device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xb50bbc13 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xb50eb1bc usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xb515562a tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5bec5ff pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xb5c3af36 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60fa721 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb6755d05 pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0xb680810e init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xb681b876 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xb6823e49 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xb6845110 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b73eb3 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xb6c10c7f usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xb6c4ce2e remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xb6d4422f eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xb6d8420b crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xb70c514c pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xb70fbe0c aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xb71a7522 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xb71ded2b bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0xb738fca0 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb7621075 pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0xb769ad1b ide_issue_pc +EXPORT_SYMBOL_GPL vmlinux 0xb79b1d69 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xb7b9f236 ide_do_test_unit_ready +EXPORT_SYMBOL_GPL vmlinux 0xb7da3d56 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb8086933 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb80c2b42 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb81279b4 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xb8b8f70d debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xb8d44583 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb8fc04e3 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xb924c8a6 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb9287f76 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb940c32d drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xb94fd8ea ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0xb9849cd3 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb9888f70 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xb9a07d72 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xb9e6768f blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba4cbc91 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xba730930 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xba78fdf2 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xbaa37843 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xbaa58047 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbab7eae6 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xbac8d2ca ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xbad26090 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbaf9aa32 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb158414 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xbb1f56a6 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xbb364aa1 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xbb4be0d1 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xbb50063c regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xbb7aefba wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xbb91cb36 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xbbe28991 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xbc0e8ee9 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xbc0f703d __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xbc597521 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xbc5a1c1f regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xbc60b316 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0xbc908e16 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xbc98113a pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xbd52d70d ide_do_start_stop +EXPORT_SYMBOL_GPL vmlinux 0xbd62162a get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xbd9cd703 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbdfb2c1c ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe84a8bf inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xbe86685d crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xbea4daa1 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xbebb2636 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xbecc61b5 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xbede781f inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf3b6679 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xbf417842 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xbf432aca dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xbfa30e8a blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xbfbcbdb0 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xc00e9198 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xc0831ce2 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc08d29d7 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c695e9 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xc0d0b310 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc12e00cc usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xc148eba5 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc16746b7 user_read +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1a6f55f flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc1aa00d7 ide_host_free +EXPORT_SYMBOL_GPL vmlinux 0xc21267e4 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc22ab92d __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc25297f9 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc2d009c7 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xc3151601 unlock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0xc31e2cf3 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc37e1eb0 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0xc3874078 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3dc4eb0 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xc3dfab80 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xc3edb080 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xc4152c5f fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc46d877e schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc49e3cfe inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xc5024a36 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xc502713b ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xc570d1f1 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xc572650e pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc5a79fab unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0xc5aa162c ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6241f5c usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xc677149c crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xc6a6e0e1 ide_port_unregister_devices +EXPORT_SYMBOL_GPL vmlinux 0xc6b9bd86 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xc6df0556 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xc6f5a4ef ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xc723a0f1 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xc7788fa0 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc7cd89ed devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xc7f5f9d2 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc814c548 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xc892ccfc kick_process +EXPORT_SYMBOL_GPL vmlinux 0xc8bcf5a5 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8d02733 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xc8da0f30 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xc8df3ba3 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc913c1eb __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc92813e3 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9c83ed6 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9f6219a shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xca08c423 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xca17389a ide_pad_transfer +EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xca4482ae scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xca5acfad pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcadf4b79 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xcae01a2d blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xcafd3a5b rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0xcb8b2305 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xcbc2c8dd atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcbcd104c ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xcbe11412 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc157ae0 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc4c0036 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xcc7f320d ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccea0fe0 ide_dma_lost_irq +EXPORT_SYMBOL_GPL vmlinux 0xcd67066e blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xcd83ec85 pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xcd9d6720 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xcdb2e64a usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xcdb4001a ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdd75dd5 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcde05e33 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xce23a53c skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xce5b1fb6 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xce5dbb9a ide_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xce656477 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xce65d459 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce8004b4 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xcecabbe8 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0xcef5d2cc ide_pci_init_two +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfc9817d ide_read_altstatus +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcff06f76 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xcff4cf77 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xd00481a2 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xd00652f3 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0xd033f560 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd05df063 cpu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xd062777c pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xd06656b9 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xd0b934f9 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0f52bc3 lock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0xd13e451e pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xd15113e9 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1845c3b debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1b807d7 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd2467d0d fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xd247975a inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xd270540c pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd276770a inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xd27e6e3a aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xd2a68aad sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd385ff65 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0xd38af35e raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xd3abe7d5 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xd3b39125 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xd3c53f3b user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd3c5f601 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xd43fb1a7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xd4ad2bea tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xd4b82a69 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xd4cd51f0 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd4f1cd9e platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd51137fd scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xd5196792 pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd52153bf fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xd562fdfb ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd5640961 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xd57af5a3 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xd58be2a0 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xd595b5d9 ide_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xd5a4d904 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5eb7d21 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xd6139a5c sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xd63d95a8 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0xd64ee824 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xd67d101d ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xd6c8b8ef __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xd6cbfcf1 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xd6d8b50f ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xd6e807ed led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd73d4afc mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd7678fda dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd76cf85c init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xd76f2f26 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd783edf8 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd8285225 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xd86b6a0a cpu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xd8be8931 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xd8f98daf blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xd92f8f2f wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd96c26b2 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xd9adff4b tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda296d71 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xda3c585b ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xda423b4a dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xda74a3b5 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xda951233 pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0xda981593 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xdab9e502 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xdae332f0 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xdaf01ffb tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdbc654ce ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xdbdd161a raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xdbe004a9 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xdc08f35c of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0xdc35602a sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xdc36eb94 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xdc461430 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xdcfac8fe usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xdd1b9f57 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xdd3f070e ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xdd62550a crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xdd962294 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xdda45b43 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xddd32419 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xddd69ee0 pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0xddec2839 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xde16c3f2 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde54a9c7 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xde5fee0a platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xde74224f bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xdec53dbc usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xdf27877b register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdf8ca0f9 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xdfb0f3f5 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xdfd391c9 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe0397699 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xe07ca631 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xe08bdae5 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xe08cb0bf inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xe08d2937 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xe0b06b69 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe103ff8f crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xe120e14b crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xe12996a6 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xe16591ab stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xe1910006 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe19a6dd3 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xe19e1d1b sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xe1cfe903 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xe1d93249 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xe1f86c2a crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe1f9e967 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe24d0de9 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xe257744b cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xe2c028e1 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0xe2d0704c ide_retry_pc +EXPORT_SYMBOL_GPL vmlinux 0xe2f6c4e6 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe30255cf hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xe3af2fdc crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xe3ef364e cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xe3f81354 ide_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xe42df1b1 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xe4726a3e cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4b6d979 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe54fae05 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xe569aafd relay_open +EXPORT_SYMBOL_GPL vmlinux 0xe5e4c2f0 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xe61f6e27 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe6469388 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6800ae6 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe6d4cbe5 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe70afe5b usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xe734b8bd raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xe7439c56 do_rw_taskfile +EXPORT_SYMBOL_GPL vmlinux 0xe7754619 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe7cb305b simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe802fd48 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86875de register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe881a4df ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xe900f65e hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xe90887cc ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe97d2390 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xe985adee inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xe9a60423 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xe9bcbf52 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xe9c06972 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xe9c233f8 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xe9fde75c sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea90ada1 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xeaab7fd3 ide_setting_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xeab8011f ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb075071 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0xeb15de99 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xeb27e33c input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeb8e860b ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xec03a5ee hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec331ae3 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xec4e33e1 macio_find +EXPORT_SYMBOL_GPL vmlinux 0xec94ab39 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xecad0f15 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xecd36806 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xecea75d0 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xecf10655 isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0xecf4e87b pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xed3ab9e6 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xedf2586d inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xedfbadd2 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xedfe1740 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xee19ca36 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xee37e0c2 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xee8725ae find_module +EXPORT_SYMBOL_GPL vmlinux 0xeeaf7c9c sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xeed18b87 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xeedeac65 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xeef71363 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xef22c8c7 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef81044a crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xef9941b8 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0xefca76a0 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefdf933e cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xeff68d6b cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xf005f42b crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xf0360e11 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xf062d10b ide_init_pc +EXPORT_SYMBOL_GPL vmlinux 0xf07a5ac1 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf0b4ae92 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xf0c32fbd led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf0e2ab39 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xf105d00d ide_in_drive_list +EXPORT_SYMBOL_GPL vmlinux 0xf116bf9a skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf17072e6 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1a3fc36 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xf1f86fb1 ide_allocate_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xf20ce254 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xf2955a7b device_add +EXPORT_SYMBOL_GPL vmlinux 0xf29eb08d usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xf2a034a1 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xf2d4bb29 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xf2da3cec platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf331a340 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf3883bce tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xf397735f tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xf3a2c3ac ide_intr +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3ee4ed1 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xf4013023 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xf417325a netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4c194e0 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf4dd8e96 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0xf4e1fa85 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf56a78e4 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xf596a6c4 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xf59c4c93 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5c9c1f1 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xf5dce153 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xf5efec73 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xf6150e35 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xf635c1cd ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xf63c527e device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xf64df6c6 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ebbe46 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xf73cae50 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xf7444cbb ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0xf7714bda power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xf7e24785 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0xf7e2bd68 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf8032e36 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xf82608ee platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf864cf3c skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8d03fe4 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf90a7814 ide_output_data +EXPORT_SYMBOL_GPL vmlinux 0xf93420a8 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf9461e05 ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xf94cb268 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xf963c5aa spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9b79706 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d17201 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa4376e1 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xfa61e7ca fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xfa699fa6 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xfa73c150 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfa7dcc9a ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xfa9dd504 timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfabfbc53 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xfafa3388 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb78bbd8 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xfb86c3a8 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfbf9a3f3 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc1990d8 ide_capacity_proc_fops +EXPORT_SYMBOL_GPL vmlinux 0xfc2e13ea trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xfc714867 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0xfc926c54 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xfcc80a23 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xfce86a49 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xfd07befa led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfd1c231c driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfd3d0de5 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xfd9302e7 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xfdb49a56 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe6f1431 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xfe7c4b67 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xfe7ee8ae usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xfe84148e tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xfe849747 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xfe91bea6 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfecc812a adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff18ca8f ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xff345c9b fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xff8ffd4d usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xff9aba3c use_mm +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffa55be9 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xfff8fdbd __ring_buffer_alloc --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/powerpc/powerpc64-smp +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/powerpc/powerpc64-smp @@ -0,0 +1,10512 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x50a763b9 suni_init +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/loop 0xeddce850 loop_register_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x020b04af pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x06a07a7e paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x2e60b815 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x5b9eeeaf pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x758235d6 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x83369703 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xa827cf54 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xb3c5756d pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xd1287875 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xd7d6458e paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xdaf7995f pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xe8f15795 pi_do_claimed +EXPORT_SYMBOL drivers/char/agp/agpgart 0x07d49a1f agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x08fc6028 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0a9b7c50 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0dbc27a7 agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x22d4fa08 agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0x34c8153f agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x376b39ab get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x569902ce agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5bd8197c agp_generic_destroy_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0x63345cfb agp_flush_chipset +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x690f4091 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6f26b513 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6ffb87ed agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7841e8ae agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0x85dd0dee agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x90eb5155 agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9112e320 agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xac7833e6 agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb220a2a4 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb5ac3413 agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb7bb5e73 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb93b29c2 agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb9c74042 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc717620a agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xca42922b agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xcd421d29 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd17210d1 agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd5e95007 agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xdace617e agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe567703c agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe5acb300 agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf75d7aff agp_generic_alloc_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf839ef5f agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x007b5ca4 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00b203e7 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x01b35a16 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0b56ccf8 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x18bc288b ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2da947d6 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3ff224da ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x57c65192 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x66761ff7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x70632077 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x713042bd ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7484ed78 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7941875b ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7c4b94d2 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa44b78c5 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xaa41e374 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xaacddcee ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb1508b50 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb675cb95 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xda8d9b21 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdde549d1 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe9d3428d ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf8d43dfa ipmi_set_gets_events +EXPORT_SYMBOL drivers/edac/edac_core 0x4a3eaf2f edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0x616f363c edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xda96ad15 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/firewire/firewire-core 0x029108b8 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0d65cf61 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0e3aae73 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x185bc5a5 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c4d9cdb fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x49a29946 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e34cb07 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e86dd83 fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x60dcf36e fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x64861179 fw_core_initiate_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x667189d6 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x719fc1b6 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x786c1b04 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x791f2cb3 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7ca92eb7 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8a9b00e9 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8cf13c4e fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa0834dde fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbb55585e fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbc6dfc3e fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc2ac72e2 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc353910f fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe7500959 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf01664fe fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf3f94fe8 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0750814f drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09ae9285 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b6d8275 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cbddd72 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d040b4d drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f73d0cb drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x168ec01b drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x180c7a9f drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x183b15e1 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x185a3ea1 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18e9b0bc drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ed094a8 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ee3e8bd drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1fb64428 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1fe4850e drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20b2acd9 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21fe0771 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23ace7b9 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x241d2af3 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24e4131e drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x258b31e5 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26012786 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27f540ac drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b3b6a11 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ea6a127 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f1b1262 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31670741 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a1d811 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34205d2c drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3918c656 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41653e6a drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41726224 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42537eb5 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4482f292 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a5f1b28 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d1369dc drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x511c2ace drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x522c9d31 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53c2a701 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x550a3e87 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x559e8207 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57892331 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a0586bc drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a4551b2 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ea26b14 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fcd31e9 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6150591d drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x626d3f3f drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x627f4d48 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6501ecff drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65211207 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67857c25 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x679dbf79 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6896cbde drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6db48e4d drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fa1fe96 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x744efaff drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x763a842b drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x783eda1f drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7843770d drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7844713e drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x794127be drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b036ae5 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b4a1f99 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b9bda17 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c43158a drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c8ae15f drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d89b12d drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7db85ff1 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x849a0d49 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x889ab827 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88cfe455 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c5fe9f3 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fdf3a91 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x917095ef drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c44fdb drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x935050ee drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95ae8023 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95c831f0 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95fc74ca drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d47af31 drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eaeee94 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ed2fae5 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f303596 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0eb6fe6 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa83d8513 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa88148e6 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9325169 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab14ec46 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae923659 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2fe6b61 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4a26649 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5c12f76 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9bc1dd4 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcb649cb drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfa0f4b1 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca02a4d6 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbb9858d drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbcb132e drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd050a8a drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce266418 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce28a8b3 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf22bf71 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf596a08 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf6cb828 drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd312c788 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3d2bd79 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd442c6c5 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6683b6a drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd80d3e53 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc786091 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfbd493b drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1b17221 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe48d78e7 drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4c4ee53 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe548cf5f drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6e05660 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe74402d9 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe96c2d83 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec04589b drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed71dfa3 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee9b4173 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf12d02ab drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1f0d9cc drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4257f1d drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf74f336f drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf77a6111 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9158522 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9170964 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf982ca53 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb587c55 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc70ff5c drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff5ffbe0 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0056f44f i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0204b32b drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f1b969f drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1102250a drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x28f91b29 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3cd6d7be drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4e1b0988 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x52f30b45 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x66fadb3a drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e1e9f2b drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7e72349a drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f82d1bd drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x87e4ecc8 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x88eb48f9 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8fbe47d3 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa409e2af drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa52760d6 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb98a0709 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbf96605e drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc851ec48 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc8fcf470 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcec3ed2e drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd21f0589 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe26626eb drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe38c9e10 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4c850b0 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe676c4b3 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xee730900 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0fdbda68 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1b83ac4d ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c04dc66 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c8e6852 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d89df73 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1f361c69 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x23631370 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x29a1aa67 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2da0c0cf ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x341083c6 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fd155ed ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x438f02d7 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x450ff554 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6120d7aa ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61832639 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x64fd2cf7 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6618a14d ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7b077bf4 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d37a8e5 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7dcb1e64 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88e51749 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8de718a1 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x940438e7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b2be07d ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cacaf67 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d06ced6 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9e2746e2 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9eb6464a ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9f207ae3 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa068577d ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa068b775 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa1fc463a ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2e585ac ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa4e693a4 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa4f22275 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac843717 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xad351620 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb1dda7d9 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb5000d44 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb6611f86 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb70484eb ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb827dc3b ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbb6ed7a7 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbf13678a ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64022a6 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc7b38736 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xceebf44f ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd3bf6702 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdf2d42ff ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdfe66263 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe1e5d866 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe3e5ba32 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe78ac4d2 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf95d5f96 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc7fb5ec ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x18546a95 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xf76153d9 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xe411995a amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x01748149 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x05265043 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x06cb02d0 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07c5e603 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e8dfbb hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b293d4f hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0ba83d3f hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0bb8f96f hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0cc1c5ce hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0eaadeb4 hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0eabf40d hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x180125f3 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193d4b3e csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1d3e777d hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1eca47e0 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x23ec28f8 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x24e79253 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x24f1835e hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x26c55a78 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x270648fc hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x27bcc1cb hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4404f0ff hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x46dba35c hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x49b51513 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5504c27b hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5635473f hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x59907ed4 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5abac485 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5e615107 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x624dbcf3 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x65ec5626 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x67a34b25 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x67fe115d hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x685c39c0 hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x797ef1a6 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7e2180bf hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x81b61e36 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8567f80c hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8da5f0a3 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9c4f91b6 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9d97e547 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9de637c0 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaa694f14 hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xab8ff7d9 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xabed71f6 dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb0822863 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb5e3616d hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb8aa4489 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbac9b143 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc0c809c3 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc6a25719 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcc0dd603 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcfa181df hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd6da3779 hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd86ef623 hpsb_lock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd8d46bf3 hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdadc31f8 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdae1f05e hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe390ecb4 hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe79ef425 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe88f6639 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xec97616d hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf7d654ce hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfa257c93 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x682cc2ff ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xe8577c6e ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xf7e8d99e ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x602e2c26 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xdd921d0b rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x03388868 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x053271d0 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x118c61c9 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x12ddccd1 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4ddcb04d ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x621940b7 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x85baa9a2 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8963ef05 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8a940482 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8bfa2574 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x93cae8d9 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc4d72b9a ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd735b234 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd931ed99 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdc59b810 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xef48367c ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf127890d ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03e1749b ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09bc3f39 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a1e7073 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a944b3a ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ab93934 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0df9120d ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e610ee1 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14d8a89f ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d37752e ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2554c541 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2aa05d66 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3d2329e0 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44e5c93a ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45c98cdb ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4ebe0096 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4f45a65e ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51dfabfc ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54afc657 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55a2531c ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55f56822 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5747bc23 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bda3f0e ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6063cc64 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6778de52 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6c251d2f ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d8b4910 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e767425 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x813d4ef9 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87449ab8 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87da0746 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ba7daf0 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ea76f6f ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f5e7e04 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x901f80d9 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94e8dd30 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x97b7bafb ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c138131 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ed9e9b7 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ee0657a ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa948bd05 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb0aa71f9 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb62614f3 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb86e6357 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbae13ced ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbcd08c0e ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32571f1 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc5d6d512 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc935b4c5 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd4cef7f ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcffe9cdc ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda805f3e ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdb4d43d3 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdccb1f0b ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xddbe4654 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdefcd4fa ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe152380c ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe68bc26d ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7b4087e ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe93bca8d ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf091f4e0 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4215158 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6c45f06 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf829d4af ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa7f2176 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff1de7e0 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff64b2fe ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x23e6cd0d ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x349b916e ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x53c16090 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5761a820 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5c74747e ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x773e098d ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7be069d3 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8a426f73 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x90ff35fb ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9baefa26 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9d3a7d7e ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa4179f8c ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x71bc4cde ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7d49ee6d ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x84959c90 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x92e3071b ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb7446ff3 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xcb33b489 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf4a0ae61 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4adae95a iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x50ede73e iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5b2d542d iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6b9dbea4 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xcc073e64 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xec1174be iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xeed25f0f iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf22bc359 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1c1ff634 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1d793b57 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1e9eaa2e rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2b56c155 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x384f3b21 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4182c947 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5fa7bfbd rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7760a8df rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7d644fad rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xadec3499 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcc67b05d rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcd0dac10 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xce7ea850 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdb644392 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xde54405f rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe3263909 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf4c2118f rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfb5f326a rdma_leave_multicast +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1d21d5a2 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2afb9b1e __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4007e817 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x42b9c08c gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xba7cda40 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe3f91541 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe66a617d gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe7947596 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xed791fad __gameport_register_driver +EXPORT_SYMBOL drivers/input/input-polldev 0x4d720579 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x628b8f3b input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x6ee0d4ec input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x8bf27fbb input_unregister_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x2efe8d89 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x60e509fd ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x9d2d9823 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb560602e ad714x_probe +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0fa9ea9f sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x101fb6b4 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x28bb405c sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3d9e3b1d sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x9656e74b sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf9b53abb sparse_keymap_free +EXPORT_SYMBOL drivers/md/dm-log 0x4130e9a7 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x779352c8 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x8b3f4d60 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xb0f46790 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x170fb42b dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x8bdf2dbd dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x9d621760 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xc077ca83 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xc2c6295d dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe7cce179 dm_exception_store_create +EXPORT_SYMBOL drivers/md/md-mod 0x0049c76d md_error +EXPORT_SYMBOL drivers/md/md-mod 0x0ea18ba0 bitmap_cond_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x25e36c8d mddev_congested +EXPORT_SYMBOL drivers/md/md-mod 0x27d101f3 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x28ed2528 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x3a031fef md_wait_for_blocked_rdev +EXPORT_SYMBOL drivers/md/md-mod 0x3f564363 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x3f56bb08 md_set_array_sectors +EXPORT_SYMBOL drivers/md/md-mod 0x44fbfd72 md_check_no_bitmap +EXPORT_SYMBOL drivers/md/md-mod 0x515d0b6b md_barrier_request +EXPORT_SYMBOL drivers/md/md-mod 0x55c9cd4c md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x6bb71c56 md_integrity_register +EXPORT_SYMBOL drivers/md/md-mod 0x6e74f57b unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x6fb933a7 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0x710fefdf bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0x7b61ca1e md_integrity_add_rdev +EXPORT_SYMBOL drivers/md/md-mod 0xc5092066 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0xd1943829 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xd6d868a8 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0xe436f9d5 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xeee37680 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xf3c48e3a bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0xf5607427 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0xf8683082 bitmap_endwrite +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 0x291737a2 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/ir-core 0xa0ddcf33 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x12c398b3 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x28a49fb6 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x2d4bd80e lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x6843d954 lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x908fc5fa lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xa9a8ca39 lirc_get_pdata +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xb623aac1 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xda4388b5 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xe3fea0b5 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x44ec3c16 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x2432dbb7 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x948a112e mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x1dd41b4a mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xfc775bf2 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xbf633aed qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x955038c7 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x8042bf04 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0850bb54 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x11e85d38 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x138bed7f flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x14cbfbdc flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x16f5d9f2 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x171b6baf flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x179800ed flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1ad1a21f flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1f3f0d05 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2139e875 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x39b4a216 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8c0243f4 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x91b0204a flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb4a72dcf flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb788d15c flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbb98733b flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbca88b37 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd5b87be1 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xda6c6b65 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf5ae7781 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x59991f74 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x98b7c921 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xb7098f8f bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xe856ec8f bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0164e556 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0dd032d8 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5cc8fdcf write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6d9672e1 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x72202376 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x79bc15f0 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x8a647909 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xce0e5bd1 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf80d4a46 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xd58067e6 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0b531d19 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1001f390 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x192c9982 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x24cc2c8c dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x263ea814 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2b889cf1 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2e836ea8 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2eeef9fb dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2fab71d0 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31812e62 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x337de534 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3815d36e dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3befaf2c dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3d4c43c8 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x40662fc9 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x614ceeaf dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6e1626db dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7546eaf2 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83ddee70 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x861462bf dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8e1dac1a dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xabf53a50 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb34e7b80 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb95ee5b5 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbdc2b829 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbe5683b7 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc26ffc2b dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc53353bb dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd55356dd dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdc0325f9 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdefb748a dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeb5d9af5 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xedadf1af dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf9325d20 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x1dab5013 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x29e6b025 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x43caef85 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x49bc4172 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x678cb3de usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x73c33e2d dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd0e145ae dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xc8322d4a af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2cb09451 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x327551be dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x44431d8c dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x610f9592 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x63b10037 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6e1e1fba dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x842aeccf dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x84e7e843 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xad12348b dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xaf3bbe34 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd173456e dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x60db4ace af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x3b951ecf atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xc19bf9c4 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xe640928c bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x833d3ae1 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x7d84533f cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x68579ab2 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x221245d6 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xf4c3e221 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xa7a7598b cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x078b68c7 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x6c0dd270 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x1df3f0e3 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x39bba427 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x9d0b8898 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xcebec50a dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xeb8f57dc dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0beb52af dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x2fcb6d53 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x42507ff3 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6a8985e1 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8665f903 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8bac1481 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x92264f45 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x987b30c3 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x45e6c30a dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x1b33a080 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x50fceab1 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x82c81cf6 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8877f929 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8f2640a5 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xb2516943 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xa86ade2b dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xd38ec07b dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x64f18bd6 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x84721b09 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x93e22981 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9887db9b dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb02c4f09 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xbda084f6 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xefc7336d dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf761d2d6 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x14257da5 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x180f08c2 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1839473c dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x22c17f71 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x24fbc1dc dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4d4b877e dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x581b148a dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa1646575 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc538d2fc dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd1bca1f6 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd7160b69 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x276616ca dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x759ef635 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x8ed8dee8 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xbe505bc4 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x91f7f9b3 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x84802594 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x51cbd2a7 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x73f19338 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xfc9411ae itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x6be5e614 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xd080cffe lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xd3bf68f7 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xd6adc9fd lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x1b5aa633 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x7c2e15be lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x5082c8dc mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x38fa3ea3 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xe408d218 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xb825e6f5 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x691708f3 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xd8539f17 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x64d17404 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x26083825 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x2caf6f3e s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x26f0faa3 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x7aa4a806 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0xb1aa7df6 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x39d81a28 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x0b507642 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xcfe701d4 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xd5549e5e stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x8cfa8571 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x80519d39 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xa479ed10 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x47ca3e0e stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xa4f160f2 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x3b046229 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x90d1dd22 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xd4a8e16a stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x4acb8606 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x01caff55 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0xd310d10e tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x28c14019 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x41d061a5 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x51a22d1c tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x82338285 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xaa69359d tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x3f9bcf71 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xc8119f1a ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xf0a2ad0f ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x1513c737 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x27d8c62b zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xa0ca5900 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xa17d4b9e ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xc8d3b404 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xe314b5ce ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x04468d8f bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x2538fa2f bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x7f05d8af bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x31b7f9ff btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcc8c9cf1 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/cpia 0x25277345 cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cpia 0xcbc6e7ff cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x679af6b6 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x916caefd cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xa17e9ad4 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xb79006c7 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xbebe465e cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x4958f69e cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xc4d4e0f9 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x212e8d4b vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x52aea89c vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x16a6f42f cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x230a2cbb cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x3bb7c5b2 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x86330577 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb6e61ba8 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xcd23e66d cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x55fb4bac cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5ed1840a cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8e41ebfd cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xad7e8888 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xbb38a37b cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf43817c0 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x03a1bc1d cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0830e48c cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x157021e3 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1e09699e cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1ede8b72 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x23f9fb6d cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2bbdd136 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x33f7c022 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6415d586 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8038daaa cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8549b6c1 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x921e1e42 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9997d0a4 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa9647286 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xade96bbf cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xafd9df87 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb44171e4 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb806fad0 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb8e354a7 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xebbac660 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfbbe1005 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfbd35380 cx88_reset +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x309b9fd0 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x387c22f8 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x2947c92b gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6114db9f gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x70b9e5cb gspca_get_i_frame +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x781fba76 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x88f6bbbf gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xefd640bc gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xfc4fe5ec gspca_frame_add +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x051df6af ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x30b5e914 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5428970f ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x65b59a6f ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x773a3bda ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9c9b4f93 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa099566d ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa37d7dba ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc51cf68a ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc81429f1 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd5c47d7d ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0f670f71 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1648c4d2 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x226126dc saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x35f79819 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3e075c78 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x588e66b8 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x66a865d1 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x66c20e2f saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x6fe9aaf7 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x84641cbc saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x86019a82 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xba1c657c saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/soc_camera 0x4523d182 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb8f1defb soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xc742dc45 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0xe4476e39 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x369c121a tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0xef045da7 tveeprom_read +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x04095b24 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x04401a3a RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0e3e944f usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1a26ad15 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x3abbf0b7 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x85f15e4e usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd2465ec3 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe63fb6e9 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xf3966f2c usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xfb3c39e0 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xcff0771a v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1a1f8a14 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x786b5084 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x312288ed v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xc99e0743 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xf8f545a3 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xfb88661a v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1c16aaba videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x2a1fd32f videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x704909ce videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x7d1c203c videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x7ff8ae5e videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xdca3bce1 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videodev 0x02923578 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3502439a video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x402796a3 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x48b22570 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x60ab89c3 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x8e270405 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x9eac9651 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xc0009cbf video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xd6171e07 video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2244978c mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x36112af2 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x444b89df mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x45ec49ad mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5a83613c mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x60fd911b mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6922f4e4 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6d124ad0 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x719a4aa3 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x719eb649 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x731c8b55 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8c453adf mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8df723bb mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8fd63df8 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9c94aea6 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xab573de8 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xab79f1c9 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xae8d64d0 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xba3066ed mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc63e8f16 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xce49cf5a mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd02aa35e mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd55fcd2b mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdb3f3313 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xde38430d mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe20e58d2 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf65a9315 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf6b7ef65 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfea7bb12 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x149ad6b5 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x215c7f3b mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x23722d25 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x29e5a79c mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x43b131f4 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x505ad6b5 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x50937a69 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6b199f3a mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x72d84611 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c44de3e mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7cc8fb4a mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8cebf45b mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9149e0d7 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9486ee94 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9eb1b445 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc0300631 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc9b225c2 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcc4bfad0 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd02b1669 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd6607937 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd949036a mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdc58cb7c mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdf109227 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdfb3ca91 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xea7f1e53 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfc434a27 mptscsih_io_done +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x04625d54 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x071f00b8 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0d6cfe1a i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0fc29c0f i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1f484aeb i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x26bf0dcd i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4205c50d i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x48097dbe i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x49fdd041 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4d3c9d16 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4ec60d25 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x55898a90 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5d6b9b4c i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8145e11e i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x89b9bf99 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x918512ad i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x94d908eb i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9bddd6c9 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb9b77219 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc91b3782 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd12724c5 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf34cdd82 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x030a9ecb pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x557bcdea pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x11b41783 mc13783_reg_write +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2830b122 mc13783_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2bc8e382 mc13783_lock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x36c40f01 mc13783_unlock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3764759d mc13783_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x6bef3c89 mc13783_irq_status +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x74a96aa0 mc13783_irq_free +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x7afb240a mc13783_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x7c847b10 mc13783_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x7ea28a1d mc13783_reg_read +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x920d6995 mc13783_irq_request +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xf085c509 mc13783_reg_rmw +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x602d5998 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x74709dc2 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/c2port/core 0x740b9b82 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xa82f519a c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x508256ff ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x88989e88 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x34a7a85e tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x58b7db27 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x5c0309fd tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x65ae70e4 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x69c187ca tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x6cae0f68 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x7081753a tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x78435b1c tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x8eac32c2 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xeb06d0b5 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xf79891bc tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xf990e07c tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xa56d75e0 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x03d6f3a9 mmc_host_lazy_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x11e28daf mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2997ba10 mmc_align_data_size +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2f3db4de mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3fac7aa9 mmc_power_restore_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x45359397 __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x57ebed18 mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x58bc1ece mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x69c41c1d mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x70c0c51d mmc_host_enable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x71abd65f mmc_host_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x76405f00 mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7673d49d mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x793f7131 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x83bb2a53 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x897b5ec4 mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8d9a2460 mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8f306c35 mmc_card_can_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x95dd121f mmc_card_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x96ea7247 mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbe9980e0 mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd6ecd4d2 mmc_card_awake +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xda46cd6c mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xe0a8bf9f mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf654efc0 mmc_try_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xfa524eb0 mmc_power_save_host +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x17c67e53 mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x182cdd5f mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x67ca8d35 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x8a10745b cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xc3b31328 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0a7edf4c unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x5fcde513 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xbc1652a2 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xd4db83c7 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x50bea73f mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x647edadc lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x20e8a056 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x14a36fc5 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xd01355c4 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x49aa8895 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x690e840d mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x2072c547 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x8973469e nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xe60df173 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xeedb5199 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1dbc09ce flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x73eae947 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x820de057 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xe1daf72e onenand_default_bbt +EXPORT_SYMBOL drivers/net/8390 0x0054a33d ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0x0919abb2 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x0b5bc090 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x21a286ec __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x40571951 ei_close +EXPORT_SYMBOL drivers/net/8390 0x44606440 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0x95d9b168 ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0xa36454e5 ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xbff5e4f8 ei_open +EXPORT_SYMBOL drivers/net/8390 0xda397de7 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5b310381 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x648530c0 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x91169953 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x98a73974 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9fa6a5d1 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa13c0946 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa14743dc arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc549a855 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe0e803e9 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf20b7be7 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x611a7b51 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xa7c53692 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xf587a6c6 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/bnx2 0x5fed4a09 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x4f14ff46 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0x957247dd cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x053524f4 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1bcc7fbf cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x270730d0 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x278c516c cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x28972c05 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3731bc27 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x38cd1fa1 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3d338997 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3fc1b50e cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x52d09002 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5bd3c941 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7dc7efea cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x82d38216 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb20bbd1d cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb8e80012 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xba91bc8a cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x01bcfeaf cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0daf63cf cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x1892c616 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x22f52a66 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x364564e4 cxgb4_netdev_by_hwid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5c350345 cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6b01f696 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7baf83d7 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x86956310 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e286b90 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x91a11c55 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x9b6c0297 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa6979383 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xaa7132a0 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xcb0202c9 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xcf8d15fd cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd1a43bca cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd6fcc2ad cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd7cebf60 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf8638bd1 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1dc755fb hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x21a0f465 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x61ea8f38 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb804368e hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc48cf589 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x087c7677 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1a5e274d sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2274e177 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2a5244e6 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3812be12 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x39d4616e sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x755a26f0 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x897ee80f sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xad310d46 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd464946f sirdev_raw_read +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mii 0x0f180932 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x3dfe73de mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x55a119c4 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x578f936a mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x923c1978 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xb737fb1b mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xf4899044 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xfb74f959 mii_check_media +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x047c85c7 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x82a06bc8 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp_generic 0x1494f0b3 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x43417240 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x57faa105 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0x5a2df1f0 ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x5ade93e5 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x5d6e1a48 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x5dd6147f ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xb7977925 ppp_register_net_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xc7a41dbc ppp_dev_name +EXPORT_SYMBOL drivers/net/ppp_generic 0xe14148b5 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xf53a8b09 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe8444194 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xf39c8d9f register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xfa0aa5b3 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/sungem_phy 0x9dbf0a00 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x27202fbb tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa271fb9c tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc0ee2886 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xe5ad5b9d tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf7955ea6 tms380tr_close +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x04b6925c attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2459f081 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x27051d5d hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2b180c9f register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x50a5e5c2 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5e406f64 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x63756d93 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7569ebd4 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb96f2420 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xbde14ee9 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc9f13efb hdlc_ioctl +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xc126e350 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x87fe919f init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xc864153c stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xdae4f117 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x56932268 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x731d29a7 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb43044a0 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe9dd7a49 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x139e6155 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1cce40c6 ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x44249666 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x69d71545 ath9k_cmn_rx_skb_preprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x80962f30 ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8a6932dd ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc59b30db ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00d1020e ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02532192 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07ae084f ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a26cf9b ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e6ec35b ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e96df4a ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f8337b4 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0fbc6d02 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13ca3493 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14b7a667 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21dbdc55 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22290e95 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2620df31 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ae7000b ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2bf7439c ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c6d2738 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d027abe ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2fb5060f ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38b49a43 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38e827b4 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3dbf7926 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43b83fef ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45668f28 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x465ae37a ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e5445e8 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ed43687 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f121d4e ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x500601ed ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51b2fe19 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51cafafa ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x531d8bd6 ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b1536cf ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c7062a5 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c857e79 ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ced72f1 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6429d2c7 ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c4e93cd ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74b3bffd ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74dabcd1 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7640b71e ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7bb89baf ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80ee14df ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82370cab ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82fae68f ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x834294a3 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85a77860 ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x87261c59 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d18c2f0 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f63ae5f ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91fb6dfc ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9562aaa6 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9832a1b6 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x995ab0be ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9c844cbf ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0c02b49 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa457dd19 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb59a42d0 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb5bf49ba ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb86d112e ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc08dcb69 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc593f64e ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc62ba7cf ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc78c8f65 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc79e23f3 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd99b2c0 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfeb0bf1 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcff6ea5a ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd050b322 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd69d7e0b ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7b78922 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda59515e ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xead5f37f ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec2a2c33 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec9001fd ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef9d72d7 ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf490c992 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8035809 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfaf1ea11 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfdf6af3a ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfecd6af4 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xffa33477 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xffe95621 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/atmel 0x09a7b49e stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x171ae343 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x33f054f5 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x10793648 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x119d7357 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x170d2142 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1a2ee14f hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2f0b99de hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3e577a94 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x49dabcd9 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x53cac668 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x62735292 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x65bad00e hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x74cfece4 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7a1f259d hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x89fa0071 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9db5dd97 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9fcdc080 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa5b6e5fc hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa78da28f hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb95ec4f7 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbd2436ad hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc80256ff hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd5c9bb9d hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdaf2290f hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe3479476 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf14a0913 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfb9dcd59 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x03162ca8 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x09e5945d libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x15fe5ec8 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x27b6e1cb libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x34ce8790 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x42c1bc15 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x53eba945 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x78bc8e8c libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7afec67e libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x89acaa37 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8d635f66 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa26eccbe libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb4c62ff2 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb59f56df libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbe09ce23 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc606685b libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd1ba8e04 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd4506059 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe26b468f libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfaf68404 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xff2d3c29 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0707bd18 iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0963701c iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0a7123c1 iwl_tt_exit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0c6e4a6c iwl_sta_rx_agg_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0c83e8f8 iwl_sensitivity_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0fba795f iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x10f31b7f iwl_remove_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1120e94c iwl_verify_ucode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x11433bbd iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x11ba69f8 iwl_calib_free_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x12ebd945 iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1389858f iwl_update_tkip_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x13d57ac3 iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1573f0ad iwl_ht_enabled +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x17fa4a23 iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18ff78e8 iwl_tt_exit_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x194069bf iwlcore_eeprom_release_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1cac3334 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x22d4d3ad iwl_init_sensitivity +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x22ed7e4b iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x23b48d9c iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24ac9eec iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2859034b iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x316a769e iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x326782a2 iwlcore_eeprom_acquire_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x33251641 iwl_sta_tx_modify_enable_tid +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3428dba7 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3429e028 iwl_rf_kill_ct_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x371251a6 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39d56249 iwl_rx_missed_beacon_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3b6d1a94 iwl_set_hw_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3ceecd5b iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f1e7e79 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x45523a0f iwl_reset_run_time_calib +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48d1aad5 iwl_tt_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48efb500 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x49a2df39 iwlcore_eeprom_enhanced_txpower +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a0780ce iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b0d566d iwl_set_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b4256f4 iwl_tt_enter_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4bbe62c0 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x514a4469 iwlcore_eeprom_verify_signature +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x52b82a58 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x54415afc iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x54b4d4de iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5821234e iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x587ff33a iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x589b2352 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x630545d8 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x64db8934 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x693fda82 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6d94de6e iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7630c58a iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ae63cb5 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7d60ccb7 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x850a9567 iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x855f40f5 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89e3011c iwl_chain_noise_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a99d490 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b300e76 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8ba8d269 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8cf0963c iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8f13ee6b iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9373bc1c iwl_set_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x97689146 iwl_add_bssid_station +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x97c94681 iwl_setup_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x987a9f92 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99d70c4c iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9f35e628 iwl_remove_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa18192aa iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa1d6cac2 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa919b48b iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaa769415 iwl_send_calib_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaaadea7d iwl_eeprom_get_mac +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac63a5c0 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb1d3edb6 iwl_sta_modify_ps_wake +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb2b677c1 iwl_reply_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb43c9c5e iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6a5cd2c iwl_toggle_tx_ant +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb843dd17 iwl_dump_fh +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb87daeef iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xba412d0a iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbaec3db2 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc03ee981 iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc24ea998 iwl_tx_ant_restriction +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc373b6df iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc5cdc6ae iwl_free_tfds_in_queue +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc6662d11 iwl_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca09df0a iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbb03dd5 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd117f23 iwl_eeprom_check_version +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xce56a2e0 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf47837f iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcfae68a6 iwl_sta_rx_agg_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd067f29a iwl_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd11a04b2 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd13aef65 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd1b54643 iwl_rx_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd20ef4d0 iwl_mac_beacon_update +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd272bfa1 iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3a0ef91 iwl_dump_csr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd50b6fdc iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd6c36e6d iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd759e75a iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd8735c21 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdb9e8a69 iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe0406e92 iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe1acb946 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe2285801 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe2b79839 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe65d7bbb iwl_set_rxon_chain +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe68d4f57 iwl_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe892994b iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe9c7bbaf iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeefafeba iwlcore_rts_tx_cmd_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf0134321 iwl_sta_modify_sleep_tx_count +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf05e81aa iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf1501c29 iwl_tt_handler +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2d0c3f7 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf35855b0 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf5c53264 iwl_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf681b477 iwl_hw_detect +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfdd49e0e iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe2ca0df iwl_good_plcp_health +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe69aa81 iwl_restore_default_wep_keys +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x08a70c11 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0bd904ba alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x28b379d2 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x334c14fc orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x541b4e91 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x61ca9f39 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x67d06d25 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x87b876c4 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8bcfa057 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x95d2b70d orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa179a2c4 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xafe20027 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc3525bb6 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xca1f9fee orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcd28aaae orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xebc9ad0c __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf1dab86e orinoco_get_stats +EXPORT_SYMBOL drivers/parport/parport 0x0abb2517 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x0c0b0f87 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x1071fb9a parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x23f15386 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x2ce4fe4c parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x2dbf8b97 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x33782980 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x3561257a parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x48167916 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x4840d71f parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x52e01bb6 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x59049ec8 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x5ece53f1 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x6cafb96c parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x792e51a8 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x79e27677 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x7be7e860 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x82240438 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x90efdd4a parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x982f983b parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa755056c parport_write +EXPORT_SYMBOL drivers/parport/parport 0xacb23a8d parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xc54b3d4b parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xceafb835 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xd442fe6c parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xd4f5a810 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xd8c1f7cd parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xe3166e36 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xe75142c1 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xec3f777b parport_register_device +EXPORT_SYMBOL drivers/parport/parport_pc 0x2233b7b8 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xe9a6d6cc parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x369ca525 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x38a4cafe pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3d6b5b21 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3f11c62a pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x513dd3f9 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5e185739 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x668a6b1d pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x801ab3b0 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8beba826 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x967acad1 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x992da985 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa7c0c742 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xab21f74e pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbb5b7e14 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe2ce821e pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe49d597e pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe7ed4b0b pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0c2642df pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0e1c57a2 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x32400757 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x63fc95d2 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x97d298fc pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa9c44293 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xadd8288b pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbee1a4ac pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdaade4fe pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf3b6b752 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf81a39eb pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x0a5f3e45 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xf8cbef85 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x5fe0334f pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2f83cb27 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7b203a53 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa6a672d7 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xab4fbd29 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb407ce25 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc480fce9 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd7fdc569 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x004ac0c1 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0abc6303 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d24832f fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1dac6837 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1f2ebcdf fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2db69ee1 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2f123336 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x34173506 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e30644 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x44b4efaa fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a85d46f fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4f2aaad9 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x524fc8c9 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x59cb596c fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5adf6c48 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5dffa9de fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x688cfad7 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69e10f7e fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6aa405fe fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6ebc8a93 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ec27e81 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ee679a0 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x96f74913 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98a32841 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a4b95aa libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb12c0960 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb6cc1904 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb7cc5076 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb91eb7cf fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbe6e8414 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xca33da67 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcce852e1 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd43a9129 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdbbbd9e7 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdfc89472 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe147514e fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe890e87d fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xedd0d6e0 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf48608b7 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf97d8d54 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd2cfb3e fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfdb5272e fc_disc_init +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x7ac1f046 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x02ffa4ff osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x034e2ebe osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x07f5315c osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0ecb13a1 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0efb611a osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x103bd9a0 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x15f20008 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1e03e3c7 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x24860973 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x269204b5 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ef0f29c osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f4b9424 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3b0b9a99 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3cba0083 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3f093279 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4507b740 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x494fe67f osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x527c5ac6 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x56fd57de osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x632e15e3 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x79397f58 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7e90606a osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x984f524d osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa6ede497 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa73712ac osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf360329 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc197e51f osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc8ae348e osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc9e248a7 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd55aa1f0 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdc6fe511 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfb7afd5b osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/osd 0x139bc834 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x32bd6706 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x528e0780 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x8eac963d osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb783f2c9 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc686b690 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x19870af4 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x2a3e5744 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb6823f7e qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc0d00655 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xcb8609c3 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd9160e62 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0xbb4b0930 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xd3a1e62d raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xf5313118 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x079469c0 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0dd824be fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1f9deffe fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2b07c850 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x50d7d6c5 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x769227db fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7f6b6743 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x85fc7ddd fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcf20cfcd fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe363772f fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe6149f4f fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xec3a6a24 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfff671b6 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0e9638f8 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x113d9a5c scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1458b0a4 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1513bc12 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2480f6e0 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x265d5cd9 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5af9af5a sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5e4941f4 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6b40eb3b sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x70bde4ac sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7b8e84c4 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x858bfdd8 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x88a52547 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8b9afcdd sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x99eee829 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9f557d2b sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa0abd928 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa6555506 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa6fddf84 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb243cbd0 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb41b6f29 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc4b8cc76 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc9df6f3d sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf6b16817 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfad91f68 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfc60b4c9 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x387fad38 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3f8614be spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x5e35ed1b spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd7a69a27 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xdcf7363a spi_release_transport +EXPORT_SYMBOL drivers/serial/8250 0x6bfde28c serial8250_register_port +EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/serial/serial_core 0x2854ee6d uart_get_divisor +EXPORT_SYMBOL drivers/serial/serial_core 0x28cd22da uart_add_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0x297d0867 uart_remove_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0x67ef9dba uart_write_wakeup +EXPORT_SYMBOL drivers/serial/serial_core 0x7811a12f uart_match_port +EXPORT_SYMBOL drivers/serial/serial_core 0x838084dd uart_get_baud_rate +EXPORT_SYMBOL drivers/serial/serial_core 0xd32672f9 uart_unregister_driver +EXPORT_SYMBOL drivers/serial/serial_core 0xd6814ad8 uart_update_timeout +EXPORT_SYMBOL drivers/serial/serial_core 0xd9c78ba7 uart_resume_port +EXPORT_SYMBOL drivers/serial/serial_core 0xed06f6ee uart_suspend_port +EXPORT_SYMBOL drivers/serial/serial_core 0xfd453ca2 uart_register_driver +EXPORT_SYMBOL drivers/ssb/ssb 0x0b419e5c ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x0dae6142 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x1f84fccf ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x21a6bc72 ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x21e31ab6 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x263c1cba ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x4dd5c763 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x7105c522 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x71c93e94 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x7e3fc83c ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x7f067641 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x8895cef6 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x942ce5d2 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xbbd786c3 ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0xbffe30ab ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc8eb6270 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xcfc672c6 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd7c7b91e ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xe887964b ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xf5826957 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xf60e42d4 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xf79b16ef ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0xf8958b43 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x037077dd ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x07a97f63 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0a99beeb ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0a9ec305 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0b6fd05b Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0c459dc9 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1095cd5e ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x14563a6d ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1e4da04b HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x276f61f4 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27f5c89c ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x283552f4 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a1b4fed ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cc52dd6 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d977974 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x41c82b0d ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x41d6acfe ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4f339d84 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x56955f66 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6232c9da ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x62b37356 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x73f56c1b ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x749a9ed3 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d0eda92 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d37e0f7 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x85deecc5 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x870af476 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8886c496 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8a42359b ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x91b76bed ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9310e4d2 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9449a542 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f2450ed ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa3e2a172 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa72787fe ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa84d0b69 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb3370840 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb34b2a0f ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb94e08eb ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbbcde73d ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc950d3ed ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc99c949b ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcaf2a8d9 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xccd985c4 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd7e97770 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd9c240cf ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe09d44e9 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xedadb350 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf01f745b ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf06899cb ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf2d51797 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf4c5ed66 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf5b88163 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf8cbb233 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x1912a3ff tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x225bd500 tm6000_register_extension +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 0x09a5988a ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x602efef3 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xc7a87314 phone_register_device +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x0a42e950 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xcb8d8d4a net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xea026786 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xe62a1ce0 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1ff5a0d4 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x331c41ad usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x371f9fdf usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4b598241 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4ee5a3ed usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x56abf96d usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6dc3d1b0 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7faa8447 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x80f506b7 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8a88736b usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x94aca007 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x96ebf5d1 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa36fbb54 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdab43d1d usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x2f8f9798 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x4e79002b usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x1bd8b2c2 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x940a44c7 lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0e535ae9 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0x90f4af2f cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xa3319c9a cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xff93297d cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x298e004c display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0xbd36f796 display_device_register +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x49b597d2 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x3792bfc1 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xdffee88a video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x694a6e5c svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x88031d0f svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xa0e0fba0 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xb1f26e08 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xb347f846 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xcba483f6 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf8fd8404 svga_tilecursor +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x39279ef1 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xc7d68a9c w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x3a46c6bf w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x3f3b3afc w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe296d03a w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xf85efd91 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/wire 0x2ea060ec w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x37310863 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x94dbf759 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xf85b0b17 w1_register_family +EXPORT_SYMBOL fs/configfs/configfs 0x31f245ac config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x3bcf9097 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x980fc1e2 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x9a3da037 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xb9dbefbb config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xbe6f5293 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xc3292db6 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xd5e250d8 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xe31ede05 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xeb6b4a9f config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0xef194b73 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xf50837e5 config_item_init_type_name +EXPORT_SYMBOL fs/fscache/fscache 0x01e91e69 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0a61880f fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x1d930ec1 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x28c3f012 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x2f7bf8b5 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4f0e29e7 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x725fb619 fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7b33b4b0 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x8322c52a __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x83b2462e fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x876992e3 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x8d07554f __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x986a2ba6 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x98e92b44 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x9b0485bb fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x9cc4c63f __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xa5ebfb2a fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xae013cc9 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xae3751e0 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb052b538 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xb08047a4 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xc3b067a1 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xdcb99cc5 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xdd33d96d __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xe3a58f4c fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xffda6c58 fscache_obtained_object +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/quota/quota_tree 0x2236d191 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x2ed8e2f5 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x809882d1 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x857382f6 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xf420049d qtree_delete_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-t10dif 0x782acba5 crc_t10dif +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x02ba585a make_8023_client +EXPORT_SYMBOL net/802/p8023 0xe0ff64da destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x01a026dc p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0x1e6132ab p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x1e87232e p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x22e89aaa p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x2bf45b30 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x392543df p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x39880ab8 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x3a4eaaff p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3ea2ef8b v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x3ff80ca8 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x40b94c55 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x4b1d062a p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x4e3c98d9 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x502112eb v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x50eba325 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x5bc8b06a p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x621cba96 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x6245ce2f p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x638482fe p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x6406a1b2 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x77be92fd p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x78ae3e49 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x882b0db1 p9_client_version +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xaaf84e26 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xab483396 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xbd96259e p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xc59740af p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xc63edc9d p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xcddda346 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xde0b201c p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf9eddfba p9_client_rename +EXPORT_SYMBOL net/appletalk/appletalk 0x50027996 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x5356af7f aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xb4d68ff7 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xc0222265 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x098adc6f vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x0adeb0da atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x6368da84 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x66961f3e atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x6ca5b29e atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x7a6ffec8 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x92f9252d atm_charge +EXPORT_SYMBOL net/atm/atm 0x933c1f81 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb30ada4b vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xd9a5f05d atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xe42bbd8f atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x0109341d ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x0dbe2ab7 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x0f462c5f ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x183f6211 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x37b59eb4 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x71e1e5ac ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x781448ac ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x836ac013 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xaef9de42 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1136c68e hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x17c74a23 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2770a1f3 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x368afe6a bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x36f0eeeb bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4c3d13f7 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x51959f3c hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5292c221 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5314ac81 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x544f1413 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5464be9a hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5828043a hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5acc774a hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5f6e072a hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x61f0dbae hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x78a32927 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x814756be hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x86079c3f hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x99e3d8a5 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa2c7194b bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbaf01d77 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbca782b1 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0c2c9a4 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc27fa24f bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc36eab76 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd66a839d hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdd9ebeb9 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe14e41d1 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe475b31b hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe5ebad84 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xed75b1fc bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf87f247d hci_connect +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x96c0bb61 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x2467b719 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x42c6f1c3 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xcea6d0e5 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0682a628 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x1bb20ed9 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x2752bea4 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x2ba9a39b cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x31186b49 cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x334580b6 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x361a1f46 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x38b29912 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x39963dd0 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x3d5f148f cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0x3d60aa8d cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x5b87f100 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x63844d98 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x683fc3a2 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x6cac76df cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x80e37b9c cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x86e8ba09 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x8f26492e cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x91354e45 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x9cf98687 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0xa09cc835 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xa27a29f9 cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xb392f0ea cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xb616e8d5 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xc8efb811 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0xcb71dd41 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0xde2089a4 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xe279de2a cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0xec1f6d0f cfpkt_info +EXPORT_SYMBOL net/caif/caif 0xf32dd9ec cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/can/can 0x164c5a98 can_rx_register +EXPORT_SYMBOL net/can/can 0x2edd0684 can_proto_register +EXPORT_SYMBOL net/can/can 0x9d87cac2 can_send +EXPORT_SYMBOL net/can/can 0xad090f92 can_proto_unregister +EXPORT_SYMBOL net/can/can 0xe0dec5d8 can_rx_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1ceac126 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x289d621e ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x43bd3582 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5d083dd6 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8843291c ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8849437a ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa8339d11 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xaced9b61 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb74b4583 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xdc6abe22 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xee1c6787 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf6a7de16 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xfaec0fea wpan_phy_register +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x6a469d6e arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xb6978a20 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xbaa2d573 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x26552ef1 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb061c4f6 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xc2285a08 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0731282c nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1658c565 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x46ff2271 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4c2c90ae nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6b342fba nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x880e1245 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xde075861 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x0f93a61d xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x3346c759 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x0053d93d ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x05efe825 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0x18be6027 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x1bd0adcf ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x1c74e2c4 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x26877982 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x299969de compat_ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x2c0c0d6f icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x3809e90c compat_ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x3886bfa1 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0x39b0894e ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x40378204 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x4044066f ndisc_send_skb +EXPORT_SYMBOL net/ipv6/ipv6 0x501eb633 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x539237bf ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x584e37e6 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x58d583ce xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x619e61da ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x75d76963 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x75d864ad in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0x78d2261d inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x7cb6e64e inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x8aae40b0 ndisc_build_skb +EXPORT_SYMBOL net/ipv6/ipv6 0x96424749 ipv6_dev_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x96d916b3 xfrm6_prepare_output +EXPORT_SYMBOL net/ipv6/ipv6 0x9a8c5ad0 ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0xae5e9c18 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xb3943610 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xb824b616 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xdfb2ea1e inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0xdfb7cc29 rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0xe396ff6b nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL net/ipv6/ipv6 0xfb134311 ipv6_chk_prefix +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x325256d2 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x6118591a ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9b590648 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc2237fc7 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x56d6a3f1 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x7e76fd52 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x3d45b7c6 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xbc228150 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xd25e0d01 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x36ff9810 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3bd84d9b ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4b423656 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7526d6c5 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xaa4660f1 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc8313fb6 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xecf6c4bf ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfd492ff9 ircomm_flow_request +EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x028986a8 proc_irda +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x19b92b0f irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x2cdb62af irlap_close +EXPORT_SYMBOL net/irda/irda 0x35507da4 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x38f10620 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x3c9f8c7d irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x3e1e2f20 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new +EXPORT_SYMBOL net/irda/irda 0x3e857dfe irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x41098206 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x41954399 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4d692012 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x57327352 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x65de06d9 irlap_open +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6d105d08 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x764ded4a irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7f9d5643 iriap_close +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x97a1fcbf irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xb1328cae irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc167869e async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xc2867c2c async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xc3be1fb4 iriap_open +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xd35203b4 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xdb2703fc irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xe3cc8359 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf2a123b6 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xf4c7c07e irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/l2tp/l2tp_core 0x8caf7e60 l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0xf8f68925 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x7375d3b5 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x8363573a lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x8e848d50 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x962884c7 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xb6ab629b lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xd19d7e26 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xd9edad60 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xdbced335 lapb_disconnect_request +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x1176d3a8 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x13087e1f ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1d4afb7b ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x1d5eac8c ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x1e91552f ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x28c9a0ac ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x2a850077 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x2ef49d4a __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3b103cfe ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x6313bcfd ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x6c278bff ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x7119455b ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x747ce7f3 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x75c97111 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x760bb505 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x76fad187 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x89c020b6 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x8bd2ffd0 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x8cf35a9e wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x914f3433 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa352f465 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa65287eb ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xa8b5ac3a ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xa93d9a98 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xae256ee4 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xb0a63eb8 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xba0b47f6 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xbe04c3c8 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbe940f83 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc3c522e7 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd05940cd __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xd1813fcc ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xda459521 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xe9d5dc3a __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xed4872f9 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xefa9fbce ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xfacd2226 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2c3c8158 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x52230323 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x541aa184 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5e0e64b7 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x808c1a3d unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x89aca2c0 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc26489ba ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdd40a646 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe28e5759 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe98658a0 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xff8b9294 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x2c0cf3e7 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xfe4a1e77 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x4dae6f0a nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x397ae25f xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4431f430 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x5cf56072 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x7f7d8685 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x905aa1ef xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x98bd891b xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x9bc1f36e xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xb50a0da7 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xcc1dfdde xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xdec62e38 xt_find_target +EXPORT_SYMBOL net/phonet/phonet 0x0179c053 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x21319416 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x34c5249c phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x7e68ecfa pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x95f3effa pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xad92f6b6 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xb4c4c5bf pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xd7f9c0b2 phonet_header_ops +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x142bb30e rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x143e59ff rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x203d6ccc key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2177282b rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2344fa63 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3b14a523 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4a39f2ee rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x67380ad5 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x678f315a rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x798e7ae3 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7efd4b6a rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x83e219d9 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x91838076 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd31b2656 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe864c859 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf74d511 svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x20d3839a tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4b5021f0 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x72a4c6e3 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x7892efcf tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x789873cf tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x7e0d5486 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x85903c45 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x8d01e9ab tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x924db63c tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbbfc18b5 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0xbd0bfd04 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xcc182fc2 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe65c411d tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x7b889552 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x82cb8761 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0xbbe65bed wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x012e557f ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x13a7018c regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x2ab30971 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x30e50f13 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x353a35bf wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x37873463 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x385a2338 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x3a99869c cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x3f5162c2 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x410e1962 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x492aa305 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x4d92db36 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x4da9db6a wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x520041b2 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x5851e7f9 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x5d87b0e8 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x6485dfe0 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6babe5cc cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x7212071d ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x7b5289c9 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x82760f44 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x88722093 cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x8fe53014 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x931f7d9d __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x93bfc2bb wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x97dd46d3 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9b777462 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x9c18360a cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0x9f5a077a __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xa4fc27e8 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xa58aae05 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xa88ee58d cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xacc2a8db wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xbd0e0f87 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xc253cc5d cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xcd7b6896 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xd0fb6ac4 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xd10dbfbe cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xe06bbf1f cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xe20471ef cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe8db74bf ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xeb0a8877 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xf116b5e5 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/lib80211 0x0c3d5df1 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x64657001 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x7e4b5920 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0x82533c91 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xa8b54716 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0xc6192412 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xca3af3db lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xec19b10f lib80211_crypt_info_init +EXPORT_SYMBOL sound/ac97_bus 0xb175a34f ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1c4ccea3 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x47a41d89 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x864c5096 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xc0c71ff3 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x8a8800e4 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x945fae40 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x072d978b snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x13a17752 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2eed26bf snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x4d5ca523 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x592f6e9b snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd7c7afcc snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe60fb228 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xecbde43c snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x3f66d46f snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x01e07ae4 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x04ab8f83 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x0549c228 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x0eb2d339 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x15b40ae0 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x3041cce8 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x3097531f snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x33666627 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3fbbd02e snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x41ed0e05 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4ccbf938 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x4f377ab9 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x5d774eff snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x65e73843 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x6bd1e253 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x6cb14394 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x70f6e8db snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x81aebe63 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x822dd800 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x82445400 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x834891ff snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x8350c0c4 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x8a4fb02d snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x8b1f1902 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x8ea9c8d9 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x92b58578 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x9323e63a snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x990df385 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x9982f239 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0x9f406ed5 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x9f9c62f6 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xa06f8df6 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa935edc1 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xa9c76a9a snd_component_add +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xbbc93ce6 snd_device_register +EXPORT_SYMBOL sound/core/snd 0xbbeb3b1c snd_cards +EXPORT_SYMBOL sound/core/snd 0xbe4aa097 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xc222cf98 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xd8466465 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xedcc88f1 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xee709526 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xf11db063 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xf99b25fb snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xfbb991de snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xff3917ac snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd-hwdep 0x2b82363c snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x18227428 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x1ce81396 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x581ebcca snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x8656befe snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb9b03f94 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0098bd54 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x00f94512 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x027f32b2 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cc5b1a snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x1207e865 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x178650d4 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x41ebc25a snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x4afc88ba snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x4b07c9b5 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x54ea5c6b snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x54fb4d39 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x5d51f451 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x5ed36750 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x6564629e snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x68ef4a1f snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x6c97ff8e snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x72ccd4f2 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x763a0ef7 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x846c447b snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x88615c52 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x8a4e02c0 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x8cd3f13c snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x90443731 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xa049fd0d snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xa4486386 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xb004b77d snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0xb075f838 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xb098f69c snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xb4460f8c snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xb49a8b35 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xba70a7a2 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xbbb7c29e snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL sound/core/snd-pcm 0xbe4a4836 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xcaaaa374 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd35c193b snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xd4b89589 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe8f523b2 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xe9a34e33 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xf269ce2d snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf3f4ff92 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xf8171e2a snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06c7a9b6 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0afeb8d7 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0f79ae1e snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x18ab09f5 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x206762ac snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2e43ab50 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3b9531a1 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x44e6c5d6 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x48456fcf snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x53107fe5 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x58cfa954 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x852ca83e snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa3daf5dc snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd160b539 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd18d2482 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd294713f snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfba45102 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-timer 0x091c2b26 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x24520d3b snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x390f5449 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x400cc4d7 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x4fd44244 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x818442e0 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x8636e87e snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x8ecc80e2 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x8eeab6eb snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xb2d14831 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xc12e3664 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xc52fbe5c snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xdcc46fb6 snd_timer_start +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x598a8a5b snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x359cf394 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5891523d snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x65baed59 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8b01fa98 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa82f07e1 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbdcd56bc snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xce1a9400 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe5dd179b snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf697bebd snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x167c5d0f snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4af68339 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa511c6e8 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd316cd6c snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xda58012d snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdadc98c7 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe45761a5 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe5b623f0 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xedd3c571 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x21787c0c snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x53c1a457 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5ef80ed5 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb5f589ec snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xba56e465 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc3e8a407 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0e6bfe7e snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x175bd077 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x1e04f2f7 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x37e14484 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x60714439 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa9baad90 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x1a12837d snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x3707344e snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x5e8211da snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xbe3d0d6b snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xb5955e36 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xf899def4 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x0b9a2fb7 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x85260e96 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x65f57a21 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x74dc3473 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7fb266d1 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa8676aab snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xe677b08e snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-i2c 0x4458155b snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5e8f8d34 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7ebada09 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa05e5ff3 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xbe87e87b snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xe4dda398 snd_i2c_device_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x04bedf0c snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x416a56a1 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x60a1f49b snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x71f8e182 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8e585401 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x94eb1a2b snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9b835a8b snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe6d08607 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf6367773 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xffa7bbd3 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x71713aa1 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x759217b3 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x95baf4df snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0334636d snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x099e0564 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1c42b6d1 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x251f724f snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x319ef538 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3990b49c snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3fe0d1d4 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4028cffd snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x54acf21e snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x75a25acd snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9c65fcbe snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9eb741e0 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xab569fd4 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc8355689 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc8dbe74d snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe50b8f17 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf333b5a8 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x04ac5b41 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x38cb8c0b snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x834b9bfb snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xcd00c28b snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd24d15a1 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd8c960e7 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xddc6ca32 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf41142ca snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf41d305a snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x560a0c86 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x7ead0c53 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x897afa55 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xedc46388 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x5ee8c096 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x90910120 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xc2cb8e0e snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe4eecaf6 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf57bbdf5 snd_trident_free_voice +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x9db23b05 uda134x_dai +EXPORT_SYMBOL sound/soundcore 0xb5b36987 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1c1dafe2 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x5d26e544 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x693103a6 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x84bf825e snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa2d81e15 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa781ed84 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x475451a0 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5d882085 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x65b7ff61 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6ad02175 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9fac581d snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xa463a5bc snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xa60f1afe __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb82f9c75 snd_util_mem_alloc +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xc1223fa2 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x005a4975 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x0071ca74 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0096f659 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x00a4b503 bdev_read_only +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0122f95e _lv1_get_spe_irq_outlet +EXPORT_SYMBOL vmlinux 0x01247f05 free_task +EXPORT_SYMBOL vmlinux 0x01361736 cont_write_begin +EXPORT_SYMBOL vmlinux 0x0136a6b7 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x013b7a3a single_release +EXPORT_SYMBOL vmlinux 0x0150817b llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x0178d18c cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x018d9919 _lv1_set_lpm_interrupt_mask +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01ba958c vfs_mkdir +EXPORT_SYMBOL vmlinux 0x01c44562 padata_free +EXPORT_SYMBOL vmlinux 0x01eaf783 init_timer_key +EXPORT_SYMBOL vmlinux 0x0205a4a2 register_netdev +EXPORT_SYMBOL vmlinux 0x020d18d7 _lv1_set_lpm_debug_bus_control +EXPORT_SYMBOL vmlinux 0x024f5ca5 kobject_set_name +EXPORT_SYMBOL vmlinux 0x0253f676 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x025e624c tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x025fe96c blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026d356e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x02744801 inet_select_addr +EXPORT_SYMBOL vmlinux 0x027d5499 _lv1_did_update_interrupt_mask +EXPORT_SYMBOL vmlinux 0x02807e77 vio_unregister_device +EXPORT_SYMBOL vmlinux 0x029d2f9e downgrade_write +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02b1c632 padata_alloc +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x031dc65e pasemi_dma_free_chan +EXPORT_SYMBOL vmlinux 0x03235f02 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03975d68 idr_find +EXPORT_SYMBOL vmlinux 0x039b3163 follow_pfn +EXPORT_SYMBOL vmlinux 0x03bfa81a sock_no_mmap +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03c35b9d sock_init_data +EXPORT_SYMBOL vmlinux 0x03dec2b7 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x03e38d37 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x03e8af4d netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x03e8d67b pci_get_subsys +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04074f48 ioremap +EXPORT_SYMBOL vmlinux 0x040a6973 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04301956 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x0430d283 matroxfb_g450_setclk +EXPORT_SYMBOL vmlinux 0x0440a533 _lv1_net_remove_multicast_address +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04b420f6 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x04b89fb4 put_disk +EXPORT_SYMBOL vmlinux 0x04f81bea mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x050d0671 file_remove_suid +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x0540b32a cpu_core_map +EXPORT_SYMBOL vmlinux 0x055a93a9 phy_disconnect +EXPORT_SYMBOL vmlinux 0x056c58dc nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x05762346 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x05779b8b bio_free +EXPORT_SYMBOL vmlinux 0x057dda8b bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x059ebf2a pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05d7d6b9 lease_modify +EXPORT_SYMBOL vmlinux 0x05e42f28 register_nls +EXPORT_SYMBOL vmlinux 0x05e57607 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x05f3d95f gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x06010cb5 poll_freewait +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061e16f0 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x06274015 vfs_read +EXPORT_SYMBOL vmlinux 0x06426a5a bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x0649d1b4 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x064aee2d register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x0665028b i2c_transfer +EXPORT_SYMBOL vmlinux 0x066a7f0a commit_creds +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068f1e8e sock_no_accept +EXPORT_SYMBOL vmlinux 0x069b6207 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06b2c8c5 set_irq_chip +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06bd429f sk_stream_error +EXPORT_SYMBOL vmlinux 0x06e04356 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070975e9 skb_split +EXPORT_SYMBOL vmlinux 0x071fe85e invalidate_partition +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0734df69 dquot_enable +EXPORT_SYMBOL vmlinux 0x073e626b invalidate_inodes +EXPORT_SYMBOL vmlinux 0x0764c1ae pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x076ab496 vga_tryget +EXPORT_SYMBOL vmlinux 0x07886c8d tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a4cd20 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07a8da4a dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x07ac82d6 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x07b74bbc ps3_dma_region_create +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d39b8c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07eed0a2 phy_device_free +EXPORT_SYMBOL vmlinux 0x07ef213a pasemi_dma_free_fun +EXPORT_SYMBOL vmlinux 0x07f34c83 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x07f3f906 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x07f8ee15 _lv1_unmap_device_dma_region +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083469f9 bdi_init +EXPORT_SYMBOL vmlinux 0x085630d0 kernel_bind +EXPORT_SYMBOL vmlinux 0x08565a34 ps3_sb_event_receive_port_destroy +EXPORT_SYMBOL vmlinux 0x086d0a1a iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x0877f999 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x088bab5e tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x089e756e xfrm_state_add +EXPORT_SYMBOL vmlinux 0x08a9af03 aio_complete +EXPORT_SYMBOL vmlinux 0x08b9bfe3 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x08fa8e6f genphy_suspend +EXPORT_SYMBOL vmlinux 0x092c0249 set_security_override +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09520a6e fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x096341c2 _lv1_connect_irq_plug_ext +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09ad427c gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x09b14cf3 kernel_accept +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x0a068865 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x0a0ba548 phy_attach +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2a840f call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x0a2cc092 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x0a3d0644 cpu_online_mask +EXPORT_SYMBOL vmlinux 0x0a4d622e vio_disable_interrupts +EXPORT_SYMBOL vmlinux 0x0a61becc prepare_binprm +EXPORT_SYMBOL vmlinux 0x0a6ec061 inet_bind +EXPORT_SYMBOL vmlinux 0x0ab7949e up +EXPORT_SYMBOL vmlinux 0x0ac0bf4e dquot_file_open +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0ad16906 dentry_open +EXPORT_SYMBOL vmlinux 0x0ad86caf load_nls_default +EXPORT_SYMBOL vmlinux 0x0ae06dca scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x0aeb836c tty_shutdown +EXPORT_SYMBOL vmlinux 0x0af23fda unregister_snap_client +EXPORT_SYMBOL vmlinux 0x0af940cb pcim_enable_device +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b29a2f3 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x0b712a8f jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bdf5e9b tr_type_trans +EXPORT_SYMBOL vmlinux 0x0bf481ed __destroy_inode +EXPORT_SYMBOL vmlinux 0x0bfa8458 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0x0c184b7d simple_write_begin +EXPORT_SYMBOL vmlinux 0x0c1ad162 _lv1_net_start_rx_dma +EXPORT_SYMBOL vmlinux 0x0c2431f0 inet_frags_init +EXPORT_SYMBOL vmlinux 0x0c43b5c1 clocksource_register +EXPORT_SYMBOL vmlinux 0x0c568f31 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7bc750 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x0c7d6381 set_disk_ro +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c913b21 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cd47485 scsi_execute +EXPORT_SYMBOL vmlinux 0x0cf016de splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x0d0bfb24 __scm_send +EXPORT_SYMBOL vmlinux 0x0d338a4c genphy_read_status +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d79e791 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x0d84396f pci_map_rom +EXPORT_SYMBOL vmlinux 0x0d9b7f7d check_disk_change +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dd7410f scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x0df9f2be blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x0e13853e tcf_exts_change +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e6340f8 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0ea0d412 inet_shutdown +EXPORT_SYMBOL vmlinux 0x0eac9822 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x0ed336dc vm_insert_page +EXPORT_SYMBOL vmlinux 0x0f02b2bb bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x0f859c94 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x0fa71c77 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb4c036 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x0fcff15c log_wait_commit +EXPORT_SYMBOL vmlinux 0x0fd431e8 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x0fe0fda7 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x105f43bc pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x108afe04 do_sync_read +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x1090abff pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x10c30133 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10e639e3 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11031bc7 giveup_fpu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x114ce43f ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x11525c5c open_exec +EXPORT_SYMBOL vmlinux 0x115b1136 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1171b635 _lv1_delete_lpm_event_bookmark +EXPORT_SYMBOL vmlinux 0x11739a97 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x1177fdbd skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x117d248f unlock_page +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11914b54 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x11a699e2 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x11bfc0e4 tty_throttle +EXPORT_SYMBOL vmlinux 0x11c96496 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x11cfe825 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x11d1e91f phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11f9f3f2 load_nls +EXPORT_SYMBOL vmlinux 0x12328e9f generic_setxattr +EXPORT_SYMBOL vmlinux 0x1237c945 find_or_create_page +EXPORT_SYMBOL vmlinux 0x127ad531 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x128e45e9 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x12928179 mac_find_mode +EXPORT_SYMBOL vmlinux 0x12b01dd6 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x12cb6622 _lv1_map_device_dma_region +EXPORT_SYMBOL vmlinux 0x12cdf262 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x12fc68db cfb_fillrect +EXPORT_SYMBOL vmlinux 0x1302ba76 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x131902a4 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x1346e44e dev_add_pack +EXPORT_SYMBOL vmlinux 0x1354db8e write_cache_pages +EXPORT_SYMBOL vmlinux 0x13741dd3 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x137821f6 dm_table_put +EXPORT_SYMBOL vmlinux 0x13938ed3 simple_setattr +EXPORT_SYMBOL vmlinux 0x13c2d2ad ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x13c89053 cdrom_open +EXPORT_SYMBOL vmlinux 0x13caa449 dev_driver_string +EXPORT_SYMBOL vmlinux 0x13d230fe i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f53da6 CMO_PageSize +EXPORT_SYMBOL vmlinux 0x13ff8674 unlock_super +EXPORT_SYMBOL vmlinux 0x14049b05 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x141fe5fd pasemi_read_iob_reg +EXPORT_SYMBOL vmlinux 0x142cd712 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x149ac111 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x14a1f03c matroxfb_DAC_in +EXPORT_SYMBOL vmlinux 0x14c877b2 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x14c9af6c netdev_features_change +EXPORT_SYMBOL vmlinux 0x14cef4aa tty_port_close_start +EXPORT_SYMBOL vmlinux 0x150da299 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x151592c4 _lv1_invalidate_htab_entries +EXPORT_SYMBOL vmlinux 0x152cbdd8 blk_make_request +EXPORT_SYMBOL vmlinux 0x15307cd9 phy_detach +EXPORT_SYMBOL vmlinux 0x1542e283 ps2_init +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x155a7659 clear_user_page +EXPORT_SYMBOL vmlinux 0x155dc8e2 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x1566dc03 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x15779ffc inode_add_bytes +EXPORT_SYMBOL vmlinux 0x158d802e register_key_type +EXPORT_SYMBOL vmlinux 0x15914f73 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x15ed400e nf_log_register +EXPORT_SYMBOL vmlinux 0x15ff8f00 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x16139122 get_write_access +EXPORT_SYMBOL vmlinux 0x161c83e1 of_phy_connect +EXPORT_SYMBOL vmlinux 0x162bc109 d_delete +EXPORT_SYMBOL vmlinux 0x164cad3f bio_pair_release +EXPORT_SYMBOL vmlinux 0x1674982d zero_fill_bio +EXPORT_SYMBOL vmlinux 0x168e1d32 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x1691d46d __bread +EXPORT_SYMBOL vmlinux 0x1694dad8 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x16ce9bb9 replace_mount_options +EXPORT_SYMBOL vmlinux 0x16d4de7a of_device_uevent +EXPORT_SYMBOL vmlinux 0x16e920f0 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x16f2e2be pci_request_region +EXPORT_SYMBOL vmlinux 0x17185d8a of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x1743414f __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17cb8c79 _lv1_read_htab_entries +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17f5ce12 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x1814d11f iput +EXPORT_SYMBOL vmlinux 0x181ca521 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x182f50af _lv1_open_device +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x1845e592 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x185b7dd6 _lv1_modify_repository_node_value +EXPORT_SYMBOL vmlinux 0x18753bed skb_pad +EXPORT_SYMBOL vmlinux 0x188952f4 f_setown +EXPORT_SYMBOL vmlinux 0x188db5e2 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18c0dee9 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x18c69d6b seq_putc +EXPORT_SYMBOL vmlinux 0x18c98205 _lv1_destruct_virtual_address_space +EXPORT_SYMBOL vmlinux 0x18da1bae dev_gro_receive +EXPORT_SYMBOL vmlinux 0x18ffae02 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x19010510 inet_accept +EXPORT_SYMBOL vmlinux 0x1935c015 fb_blank +EXPORT_SYMBOL vmlinux 0x1937c8de poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x19413345 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x1975a68a eth_type_trans +EXPORT_SYMBOL vmlinux 0x199ec4fb arch_spin_unlock_wait +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a06fe2 dquot_resume +EXPORT_SYMBOL vmlinux 0x19b352e8 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x19b49cb2 dquot_disable +EXPORT_SYMBOL vmlinux 0x19c968d1 pasemi_dma_start_chan +EXPORT_SYMBOL vmlinux 0x19e147bb slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a212b9e skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x1a2ac02d udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x1a2f6945 __next_cpu +EXPORT_SYMBOL vmlinux 0x1a4e85d4 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x1a61829b matroxfb_vgaHWinit +EXPORT_SYMBOL vmlinux 0x1a91663d pasemi_dma_free_buf +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa4cee7 module_refcount +EXPORT_SYMBOL vmlinux 0x1ab0e2ad simple_pin_fs +EXPORT_SYMBOL vmlinux 0x1ab29e09 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x1acad38e do_munmap +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae0569d key_revoke +EXPORT_SYMBOL vmlinux 0x1af429ac neigh_seq_start +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b14e283 unlock_rename +EXPORT_SYMBOL vmlinux 0x1b152b3e kthread_bind +EXPORT_SYMBOL vmlinux 0x1b28f380 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b8fbf4f ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba09116 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x1bb662bb bd_set_size +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1be6acc9 tty_set_operations +EXPORT_SYMBOL vmlinux 0x1bf763c0 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x1bfec830 __iounmap_at +EXPORT_SYMBOL vmlinux 0x1bff6b3f vfs_statfs +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c200a7d pasemi_dma_stop_chan +EXPORT_SYMBOL vmlinux 0x1c4dab93 _lv1_connect_irq_plug +EXPORT_SYMBOL vmlinux 0x1c5605a8 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c757164 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c8f7337 kill_anon_super +EXPORT_SYMBOL vmlinux 0x1ca9f75e input_get_keycode_big +EXPORT_SYMBOL vmlinux 0x1cc2a1b8 matrox_mystique +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cee6f97 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x1d0639f9 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x1d0e43e4 elv_rb_add +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d339128 blk_register_region +EXPORT_SYMBOL vmlinux 0x1d38b87f security_d_instantiate +EXPORT_SYMBOL vmlinux 0x1d4750bc _lv1_stop_lpm +EXPORT_SYMBOL vmlinux 0x1d9a276d cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x1da71f23 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de8e2ec compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x1df1bb24 bdi_destroy +EXPORT_SYMBOL vmlinux 0x1dfa4564 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x1e0513c1 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x1e3f140d udp_sendmsg +EXPORT_SYMBOL vmlinux 0x1e517bc4 dquot_commit +EXPORT_SYMBOL vmlinux 0x1e6164b5 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x1e637e3f alloc_file +EXPORT_SYMBOL vmlinux 0x1e69f455 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6fe6f1 idr_init +EXPORT_SYMBOL vmlinux 0x1e8393db tcf_hash_create +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ec5e266 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x1ed4cffe ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f1ce2c4 textsearch_register +EXPORT_SYMBOL vmlinux 0x1f3b2d72 bd_claim +EXPORT_SYMBOL vmlinux 0x1f3ce959 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x1f459db8 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x1f618318 input_grab_device +EXPORT_SYMBOL vmlinux 0x1f76c70a ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x1f86f73d pci_get_class +EXPORT_SYMBOL vmlinux 0x1fc26221 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x1fca5c18 mach_pasemi +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe7b4ab pasemi_write_dma_reg +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200d17a1 mem_section +EXPORT_SYMBOL vmlinux 0x201494ee _lv1_net_set_interrupt_mask +EXPORT_SYMBOL vmlinux 0x2034d3fc try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x205c051b compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x20cba385 generic_read_dir +EXPORT_SYMBOL vmlinux 0x20cbb890 __seq_open_private +EXPORT_SYMBOL vmlinux 0x20fc7c86 kernel_read +EXPORT_SYMBOL vmlinux 0x213603bf pasemi_dma_free_ring +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2183a82c pci_fixup_device +EXPORT_SYMBOL vmlinux 0x21b7d50d blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x21e2d754 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x21fb6b46 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x21ffe365 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x223886e8 is_container_init +EXPORT_SYMBOL vmlinux 0x225ebee6 _lv1_destruct_lpm +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x227b6ce2 matroxfb_DAC_out +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c66290 __alloc_skb +EXPORT_SYMBOL vmlinux 0x22c81423 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x22dd2be1 matroxfb_g450_shutdown +EXPORT_SYMBOL vmlinux 0x22fdbae0 kill_block_super +EXPORT_SYMBOL vmlinux 0x230c3722 idr_for_each +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x236665ee fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x23aa968d registered_fb +EXPORT_SYMBOL vmlinux 0x23aadbdf dev_remove_pack +EXPORT_SYMBOL vmlinux 0x23b8993c posix_lock_file +EXPORT_SYMBOL vmlinux 0x23cab03d keyring_search +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23f3f110 thaw_bdev +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2405ab08 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x242c39e2 current_fs_time +EXPORT_SYMBOL vmlinux 0x2434223a d_move +EXPORT_SYMBOL vmlinux 0x24362aea d_alloc_name +EXPORT_SYMBOL vmlinux 0x244a2411 __first_cpu +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x245a68f8 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x248389c5 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x2485c200 mach_ps3 +EXPORT_SYMBOL vmlinux 0x24a14091 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x24cfd438 _lv1_copy_lpm_trace_buffer +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2503558d sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x2514626e sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x2516e2b2 neigh_destroy +EXPORT_SYMBOL vmlinux 0x2517c2a9 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x25308c50 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x25382756 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x254d6733 skb_dequeue +EXPORT_SYMBOL vmlinux 0x25673872 input_allocate_device +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x258e9949 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x259e0eb3 of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0x25b6b8f7 _lv1_set_spe_transition_notifier +EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL vmlinux 0x25f89d94 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x26257852 __invalidate_device +EXPORT_SYMBOL vmlinux 0x26265baa get_sb_bdev +EXPORT_SYMBOL vmlinux 0x263f3ef1 page_symlink +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x269d5a37 do_sync_write +EXPORT_SYMBOL vmlinux 0x26cf0b2f neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x270cde0a pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x2730dfa6 vfs_readlink +EXPORT_SYMBOL vmlinux 0x27596358 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x27646df3 start_thread +EXPORT_SYMBOL vmlinux 0x2779ab4f open_by_devnum +EXPORT_SYMBOL vmlinux 0x277a0cdc generic_getxattr +EXPORT_SYMBOL vmlinux 0x277a8176 pci_pme_active +EXPORT_SYMBOL vmlinux 0x2782dd6c tcf_action_exec +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x2820a9e9 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x28214cd4 mpage_writepages +EXPORT_SYMBOL vmlinux 0x283f04aa scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x2846fd28 genl_register_ops +EXPORT_SYMBOL vmlinux 0x2852beb1 dquot_acquire +EXPORT_SYMBOL vmlinux 0x2858cff0 pci_iounmap +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x287bfd4d truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28c7bf77 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x28d69b0d xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x28e686ba inet_getname +EXPORT_SYMBOL vmlinux 0x29046980 vga_client_register +EXPORT_SYMBOL vmlinux 0x290eb1a6 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x29266457 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x2946d828 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x29471ba6 sk_dst_check +EXPORT_SYMBOL vmlinux 0x294df151 cdev_alloc +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295ade0e remove_arg_zero +EXPORT_SYMBOL vmlinux 0x2960019b eeh_check_failure +EXPORT_SYMBOL vmlinux 0x2973eddf kill_litter_super +EXPORT_SYMBOL vmlinux 0x2977b7df blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x29ad1d55 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29d73d03 ida_init +EXPORT_SYMBOL vmlinux 0x29f438da nla_reserve +EXPORT_SYMBOL vmlinux 0x2a005e07 sk_run_filter +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a670ca0 block_read_full_page +EXPORT_SYMBOL vmlinux 0x2a6b159e splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x2a6cf68b security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x2a71b472 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x2ac7d382 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x2ae944cf wireless_spy_update +EXPORT_SYMBOL vmlinux 0x2aeb512c blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x2af07cf5 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b20f583 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x2b304023 ftrace_event_seq +EXPORT_SYMBOL vmlinux 0x2b469968 secpath_dup +EXPORT_SYMBOL vmlinux 0x2b4c511e blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x2b5e6c69 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x2b9ac16d ip_route_input_common +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bbdb9a5 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x2bf34a07 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x2bf3edea do_splice_to +EXPORT_SYMBOL vmlinux 0x2c17d218 vfs_getattr +EXPORT_SYMBOL vmlinux 0x2c1cd4a4 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2c4c7997 _lv1_construct_lpm +EXPORT_SYMBOL vmlinux 0x2c919c63 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2c9b5ce2 phy_find_first +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2cf9db12 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d20ced4 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x2d2bc006 page_put_link +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d790ee9 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x2d7d2767 _lv1_set_lpm_group_control +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d9254d7 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x2da8c219 bdput +EXPORT_SYMBOL vmlinux 0x2dc235b9 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x2e167433 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x2e1bef92 eeh_subsystem_enabled +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e4cd936 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x2e514249 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x2e5832c3 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x2e5a776e seq_read +EXPORT_SYMBOL vmlinux 0x2e74de24 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x2e77cf65 do_splice_from +EXPORT_SYMBOL vmlinux 0x2e8c3f84 get_io_context +EXPORT_SYMBOL vmlinux 0x2e907660 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x2e93495e _lv1_write_htab_entry +EXPORT_SYMBOL vmlinux 0x2eb30581 generic_permission +EXPORT_SYMBOL vmlinux 0x2ecb0a5e machine_id +EXPORT_SYMBOL vmlinux 0x2ecf257c nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x2ee1f956 idr_pre_get +EXPORT_SYMBOL vmlinux 0x2ee4337f smu_queue_cmd +EXPORT_SYMBOL vmlinux 0x2f037653 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f357554 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x2f3625e8 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x2f5e8074 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x2f72787a netif_receive_skb +EXPORT_SYMBOL vmlinux 0x2f834cac ip_setsockopt +EXPORT_SYMBOL vmlinux 0x2f8f359d set_anon_super +EXPORT_SYMBOL vmlinux 0x2fa40fb3 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb35c7b of_device_unregister +EXPORT_SYMBOL vmlinux 0x2fcf740d idr_get_new_above +EXPORT_SYMBOL vmlinux 0x300447bb macio_register_driver +EXPORT_SYMBOL vmlinux 0x3023822c fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x302d1dca mutex_trylock +EXPORT_SYMBOL vmlinux 0x306f6890 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x30cd985f scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x30ef0c0c of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x30fcc0b8 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x310d4abb sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x311ed223 d_add_ci +EXPORT_SYMBOL vmlinux 0x312cfaf2 _lv1_disable_logical_spe +EXPORT_SYMBOL vmlinux 0x31326e27 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x3138c8ec pci_dev_get +EXPORT_SYMBOL vmlinux 0x313fc984 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x3143456e dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x316cd9fe down +EXPORT_SYMBOL vmlinux 0x31b7f300 _lv1_set_lpm_signal +EXPORT_SYMBOL vmlinux 0x31c60395 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x31cd509a _lv1_net_control +EXPORT_SYMBOL vmlinux 0x31d41589 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x31ed1707 down_timeout +EXPORT_SYMBOL vmlinux 0x31fc953c tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x32057ad6 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x3225ade5 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x32313ef1 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x327f738d kobject_put +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x32ba2350 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x330eb15d key_task_permission +EXPORT_SYMBOL vmlinux 0x333e20cc eth_header_cache +EXPORT_SYMBOL vmlinux 0x33660306 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x33a22200 journal_get_write_access +EXPORT_SYMBOL vmlinux 0x33c33129 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x340450c5 block_truncate_page +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x34725f8f sock_map_fd +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34aa2468 kobject_del +EXPORT_SYMBOL vmlinux 0x34aaae87 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x34cc6c12 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x34d46aed netif_notify_peers +EXPORT_SYMBOL vmlinux 0x34e8a5f2 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x34fd0900 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x350899c4 module_layout +EXPORT_SYMBOL vmlinux 0x351bb07a phy_device_register +EXPORT_SYMBOL vmlinux 0x352721a1 rfkill_register +EXPORT_SYMBOL vmlinux 0x35753061 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x357c2cb1 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x35846051 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x358bd940 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x358e0dd4 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35c1b5d7 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35ce01c0 __bforget +EXPORT_SYMBOL vmlinux 0x35d93d21 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x35f39446 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x35fa6ef4 get_sb_ns +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x36142f98 bio_clone +EXPORT_SYMBOL vmlinux 0x366480fd skb_append +EXPORT_SYMBOL vmlinux 0x366a16ce tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x36963b0c tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x36a311d2 slow_work_register_user +EXPORT_SYMBOL vmlinux 0x36acc0d4 generic_setattr +EXPORT_SYMBOL vmlinux 0x36af0288 ps3_dma_region_init +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36e7893b dm_table_get +EXPORT_SYMBOL vmlinux 0x36ed124f register_exec_domain +EXPORT_SYMBOL vmlinux 0x36ed7ffa iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x371902e9 _lv1_get_lpm_interrupt_status +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x373993aa tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x377ec20a qdisc_reset +EXPORT_SYMBOL vmlinux 0x37a61a49 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37cbd129 blk_start_request +EXPORT_SYMBOL vmlinux 0x37e21e8f wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x37eb826a dquot_quota_on +EXPORT_SYMBOL vmlinux 0x37f964df ide_do_reset +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38252d18 of_find_device_by_phandle +EXPORT_SYMBOL vmlinux 0x382777ab _lv1_gpu_context_allocate +EXPORT_SYMBOL vmlinux 0x3873113f vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x388959b5 _lv1_net_stop_tx_dma +EXPORT_SYMBOL vmlinux 0x388e6dcb of_device_is_available +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c4a635 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x38e6ce9b dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x38ed5158 i2c_use_client +EXPORT_SYMBOL vmlinux 0x38f094f1 __serio_register_port +EXPORT_SYMBOL vmlinux 0x38f47dfb gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x394c696d scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x39719859 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39850557 register_filesystem +EXPORT_SYMBOL vmlinux 0x3993837d lookup_one_len +EXPORT_SYMBOL vmlinux 0x399687be posix_acl_permission +EXPORT_SYMBOL vmlinux 0x39971b89 noop_qdisc +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39f97520 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a2aad93 bioset_free +EXPORT_SYMBOL vmlinux 0x3a31ec2c vfs_write +EXPORT_SYMBOL vmlinux 0x3a3febe9 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x3a751984 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x3a77eccf blkdev_fsync +EXPORT_SYMBOL vmlinux 0x3a93df56 genphy_update_link +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ab42c59 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x3af3914f tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x3b02fd92 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x3b0b183f input_free_device +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b35dbb7 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x3b511672 pci_dev_put +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b62d5ba netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3be5a1d1 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x3bfc5557 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x3c293517 init_buffer +EXPORT_SYMBOL vmlinux 0x3c2bca06 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c63388a __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x3c78752a jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x3c7c43a2 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x3c8e62d9 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb917c4 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d117641 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x3d54ac01 _lv1_net_stop_rx_dma +EXPORT_SYMBOL vmlinux 0x3d61d310 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d8fb59d tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x3d922587 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x3d9a6de6 bdevname +EXPORT_SYMBOL vmlinux 0x3d9b67f3 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3db198e0 sock_create_lite +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3ddb8756 kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x3de80e33 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x3df13da1 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e1b948e blk_run_queue +EXPORT_SYMBOL vmlinux 0x3e238738 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x3e286dca _lv1_get_rtc +EXPORT_SYMBOL vmlinux 0x3e31a801 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e5feb6e elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x3e6798fe journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f06a656 _lv1_construct_event_receive_port +EXPORT_SYMBOL vmlinux 0x3f12b1ea simple_unlink +EXPORT_SYMBOL vmlinux 0x3f19d26c journal_init_dev +EXPORT_SYMBOL vmlinux 0x3f25fd36 of_get_gpio_flags +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f486439 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x3f6fa58d skb_copy_expand +EXPORT_SYMBOL vmlinux 0x3f78f07f gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x3f827c1c scsi_device_get +EXPORT_SYMBOL vmlinux 0x3fa03a97 memset +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fb2487f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x3fb2cff5 set_bh_page +EXPORT_SYMBOL vmlinux 0x3fbc4f54 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x3fbfd6ed _lv1_gpu_open +EXPORT_SYMBOL vmlinux 0x3fc792ce read_dev_sector +EXPORT_SYMBOL vmlinux 0x3fc99e75 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4025207b tty_register_device +EXPORT_SYMBOL vmlinux 0x4039f23f sg_miter_start +EXPORT_SYMBOL vmlinux 0x403e6eb7 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x40545a0e nobh_write_begin +EXPORT_SYMBOL vmlinux 0x4057a0fd brioctl_set +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4065c8bc xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x40690650 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x406cd640 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x40748ea5 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x408f1974 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x40955431 mdiobus_register +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40b6e7af end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x40cf0dac sync_blockdev +EXPORT_SYMBOL vmlinux 0x40ef7055 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108c463 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4114a8a1 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x412273cb dqput +EXPORT_SYMBOL vmlinux 0x4126c789 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x41277d71 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x4133bbb6 seq_release_private +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41361807 _lv1_get_logical_ppe_id +EXPORT_SYMBOL vmlinux 0x413a4630 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x413e43c1 generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4170f95d journal_revoke +EXPORT_SYMBOL vmlinux 0x417cceaa __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41a1d108 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x41a71fb6 drop_super +EXPORT_SYMBOL vmlinux 0x41b51d29 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x41d5e991 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x41dbf4de _lv1_start_lpm +EXPORT_SYMBOL vmlinux 0x41e59f72 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x41ea1db4 mach_pseries +EXPORT_SYMBOL vmlinux 0x41fc5d44 pci_domain_nr +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x4236e1e0 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x4244d276 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x4252a17a dquot_free_inode +EXPORT_SYMBOL vmlinux 0x4274eae4 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a3f3f2 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x42ae13f1 matroxfb_wait_for_sync +EXPORT_SYMBOL vmlinux 0x42db31ca scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43093044 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x430ee020 tty_register_driver +EXPORT_SYMBOL vmlinux 0x4325d7d7 tty_port_open +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x4337c619 of_register_spi_devices +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43552b03 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x435b3bf7 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x4361a4be user_path_at +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x436eb9bd pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x437548a7 scsi_put_command +EXPORT_SYMBOL vmlinux 0x4390e54f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x439f8ce4 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43c59a00 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x43e30441 __napi_schedule +EXPORT_SYMBOL vmlinux 0x43e3358e nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x43fddc86 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x443bb4c4 bd_release +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x4464eef9 dma_pool_free +EXPORT_SYMBOL vmlinux 0x4498edc8 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x449a4059 vfs_readdir +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c09e19 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x44ed8ca4 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x44fcacd2 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x4512ba5d __kfree_skb +EXPORT_SYMBOL vmlinux 0x4516d409 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x451b8fad scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x451f21ad pci_read_irq_line +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x453fe39f matroxfb_g450_setpll_cond +EXPORT_SYMBOL vmlinux 0x454235e9 setup_new_exec +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x45561e50 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x4564459b _lv1_set_virtual_uart_param +EXPORT_SYMBOL vmlinux 0x456deb45 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4574bc48 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4577dc5f seq_open +EXPORT_SYMBOL vmlinux 0x457d1a13 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x457e09f8 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45b7f376 dev_addr_del +EXPORT_SYMBOL vmlinux 0x45c20b39 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x45cfe80b pasemi_dma_free_flag +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x463932f6 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x465104fd security_file_mmap +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x469dad43 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x4738b5ea of_n_size_cells +EXPORT_SYMBOL vmlinux 0x47501cd2 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x4751a62d blk_remove_plug +EXPORT_SYMBOL vmlinux 0x478e719d __rta_fill +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x479f969d tcp_disconnect +EXPORT_SYMBOL vmlinux 0x47a021de inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x47ba0788 serio_open +EXPORT_SYMBOL vmlinux 0x47cc438e add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x47cf42b4 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x47dfe062 bh_submit_read +EXPORT_SYMBOL vmlinux 0x48000553 mempool_create_node +EXPORT_SYMBOL vmlinux 0x4803ec82 netdev_state_change +EXPORT_SYMBOL vmlinux 0x480ab42a __next_cpu_nr +EXPORT_SYMBOL vmlinux 0x483320cf inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x483506bb genphy_resume +EXPORT_SYMBOL vmlinux 0x483fc8c9 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4858aa06 of_parse_phandle +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486193c7 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x487ef11b devm_iounmap +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x489131f5 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x48c422a3 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x48e29af6 vfs_writev +EXPORT_SYMBOL vmlinux 0x48e6928f dmam_pool_create +EXPORT_SYMBOL vmlinux 0x48f0326e mod_timer +EXPORT_SYMBOL vmlinux 0x48fb164f generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x49097add input_event +EXPORT_SYMBOL vmlinux 0x49278855 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x4934ba54 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x4948c0a9 gen_pool_add +EXPORT_SYMBOL vmlinux 0x495ec6eb pasemi_dma_alloc_buf +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49654392 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x4987c08e pci_find_capability +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49ed8b7c napi_complete +EXPORT_SYMBOL vmlinux 0x4a21aeaa serio_reconnect +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a4de4db mutex_unlock +EXPORT_SYMBOL vmlinux 0x4a673d16 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x4a6f7470 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x4a720f37 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x4a79a7e3 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x4a87f436 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aab4b49 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ac64da4 _lv1_select_virtual_address_space +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4aff206a xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x4b049ec7 noop_llseek +EXPORT_SYMBOL vmlinux 0x4b11fee1 key_type_keyring +EXPORT_SYMBOL vmlinux 0x4b313ff9 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x4b3cb349 _lv1_destruct_io_irq_outlet +EXPORT_SYMBOL vmlinux 0x4b4e9602 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x4b5e103c unregister_binfmt +EXPORT_SYMBOL vmlinux 0x4b5fa0fd path_is_under +EXPORT_SYMBOL vmlinux 0x4b6fcddc _lv1_set_spe_interrupt_mask +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4b8a2ed6 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1a9a11 sock_wake_async +EXPORT_SYMBOL vmlinux 0x4c34f4d0 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c55656e tty_port_hangup +EXPORT_SYMBOL vmlinux 0x4c66f858 __devm_release_region +EXPORT_SYMBOL vmlinux 0x4c7cf32d __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x4c956e8c pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x4cba5226 default_llseek +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd3f6b7 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x4cf5b6d1 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x4d0577b6 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x4d085564 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x4d0cf94e init_task +EXPORT_SYMBOL vmlinux 0x4d0d3dfc input_register_handle +EXPORT_SYMBOL vmlinux 0x4d2399fe sk_reset_timer +EXPORT_SYMBOL vmlinux 0x4d4a3622 of_get_parent +EXPORT_SYMBOL vmlinux 0x4d68ea24 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x4d78dea1 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4de0351f sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x4def68d3 ether_setup +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e4179c3 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x4e462d2f dentry_unhash +EXPORT_SYMBOL vmlinux 0x4e4f0c4a journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x4e50dfcc kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x4e538bd3 skb_seq_read +EXPORT_SYMBOL vmlinux 0x4e6455bc qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e73552d matroxfb_unregister_driver +EXPORT_SYMBOL vmlinux 0x4e759295 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4e9e51f2 udp_ioctl +EXPORT_SYMBOL vmlinux 0x4ea86596 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x4eafa32e set_bdi_congested +EXPORT_SYMBOL vmlinux 0x4ec1f424 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x4ecf2835 poll_initwait +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4ee0bac7 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x4eeb23a8 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0x4efed67e matroxfb_enable_irq +EXPORT_SYMBOL vmlinux 0x4f01eb8c tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2d3796 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x4f4b48f4 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x4f62024c ab3100_event_register +EXPORT_SYMBOL vmlinux 0x4f664db6 _lv1_insert_htab_entry +EXPORT_SYMBOL vmlinux 0x4f71809d arp_xmit +EXPORT_SYMBOL vmlinux 0x4f8e2359 generic_fillattr +EXPORT_SYMBOL vmlinux 0x4f9f39b0 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x4fc73e38 __mutex_init +EXPORT_SYMBOL vmlinux 0x4fd2f037 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x4fd4114d find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x4fd86c93 journal_restart +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x5018c528 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x5020dab3 blk_rq_init +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5044b9d3 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x505448db pci_disable_device +EXPORT_SYMBOL vmlinux 0x50544a67 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x505c0d2b security_path_symlink +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5070a4fd journal_flush +EXPORT_SYMBOL vmlinux 0x507d254c dcache_readdir +EXPORT_SYMBOL vmlinux 0x50a8414d __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x50ae3c54 _lv1_gpu_attribute +EXPORT_SYMBOL vmlinux 0x50b84df1 may_umount_tree +EXPORT_SYMBOL vmlinux 0x50f50277 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x51076bf6 vmtruncate +EXPORT_SYMBOL vmlinux 0x5112ce06 netpoll_poll +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x512108d8 sock_wfree +EXPORT_SYMBOL vmlinux 0x512eb477 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x5135ecd8 set_page_dirty +EXPORT_SYMBOL vmlinux 0x515584cd seq_printf +EXPORT_SYMBOL vmlinux 0x5168ac38 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x516922a1 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x517f1f4c phy_start +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51ab1b64 unlock_buffer +EXPORT_SYMBOL vmlinux 0x51bebaa7 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x51c4595b pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51ee8d79 dst_destroy +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x520c9782 vfs_rename +EXPORT_SYMBOL vmlinux 0x52495b76 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x5266d492 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x526e2b49 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x52746df5 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x52806c87 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x529ab362 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52a5b4d0 inet_addr_type +EXPORT_SYMBOL vmlinux 0x52b3442a netlink_broadcast +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52dc71cb ps2_drain +EXPORT_SYMBOL vmlinux 0x52e3fa05 _lv1_allocate_memory +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x52f192b0 macio_release_resources +EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x530abd30 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5339f5f8 _lv1_read_virtual_uart +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x535ecf6c lock_rename +EXPORT_SYMBOL vmlinux 0x5393d619 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0x53b9bea0 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x53bad067 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53fcfe2a unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x54026165 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x54177e73 fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x548f0816 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x548f6b16 copy_4K_page +EXPORT_SYMBOL vmlinux 0x549fc37f rfkill_destroy +EXPORT_SYMBOL vmlinux 0x54bcd7ca blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x54bdb885 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x54c1f4e5 rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x54e642f5 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f1d3ce genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x550237f3 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x550319f9 dev_uc_init +EXPORT_SYMBOL vmlinux 0x550eb9d9 ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0x5519ec67 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x5528cc10 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x555dec05 sget +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x557b3dd8 _lv1_gpu_close +EXPORT_SYMBOL vmlinux 0x558c2649 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55989fa9 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x559ed810 dev_uc_add +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55b82498 of_get_mac_address +EXPORT_SYMBOL vmlinux 0x55bc943e slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x55e31bd1 security_path_truncate +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5629409e scsi_host_get +EXPORT_SYMBOL vmlinux 0x5632e10d dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5640d737 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x568804ee _lv1_destruct_event_receive_port +EXPORT_SYMBOL vmlinux 0x568a8edc journal_forget +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56a4c007 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x56aa82b3 nobh_write_end +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d507e6 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x56d6c38a dev_mc_add +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x575c967b pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576775eb swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x577cf97d netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x578be579 ipv4_specific +EXPORT_SYMBOL vmlinux 0x579bab50 _lv1_gpu_memory_free +EXPORT_SYMBOL vmlinux 0x57ab7021 cdev_init +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57b82c88 register_cdrom +EXPORT_SYMBOL vmlinux 0x57c21418 ide_complete_rq +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57dd3744 note_scsi_host +EXPORT_SYMBOL vmlinux 0x57debb5c pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x57e28f88 tty_port_init +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583980a2 tty_free_termios +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x58651652 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x586b609a vfs_lstat +EXPORT_SYMBOL vmlinux 0x5887acf1 path_put +EXPORT_SYMBOL vmlinux 0x58b2a973 vfs_fsync +EXPORT_SYMBOL vmlinux 0x58b4a918 d_splice_alias +EXPORT_SYMBOL vmlinux 0x58bd418a tcp_splice_read +EXPORT_SYMBOL vmlinux 0x58e406ba i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x58e44117 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x58f1b1b5 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x58fb5557 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x591d6932 tc_classify +EXPORT_SYMBOL vmlinux 0x591fff71 dev_addr_add +EXPORT_SYMBOL vmlinux 0x5929f9ff cdrom_release +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x59391bcb ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x593b29bb i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x593d4cb2 of_match_node +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x59683327 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x59a909f6 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59d32653 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59f88ae5 simple_fill_super +EXPORT_SYMBOL vmlinux 0x5a24caa7 mdiobus_free +EXPORT_SYMBOL vmlinux 0x5a2a7c68 cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a6060bc dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x5a73cf25 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a805935 bioset_create +EXPORT_SYMBOL vmlinux 0x5a823090 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x5a8cbe81 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x5aa9a0fd xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x5aac266b unregister_nls +EXPORT_SYMBOL vmlinux 0x5ad549de input_set_keycode +EXPORT_SYMBOL vmlinux 0x5ae4265a scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x5b1d5a56 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x5b1fd6b9 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b3bbda1 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b5feab8 inet_listen +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5b99aad1 scsi_free_command +EXPORT_SYMBOL vmlinux 0x5b9e0e2e __brelse +EXPORT_SYMBOL vmlinux 0x5ba0c5b1 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x5bcb60f7 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x5c10523f cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x5c2aaf96 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x5c2c2030 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c6d47b5 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x5c76d4e7 revalidate_disk +EXPORT_SYMBOL vmlinux 0x5c88c0f3 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x5c8fe17b d_rehash +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5ccc9045 _lv1_close_device +EXPORT_SYMBOL vmlinux 0x5cdb7b41 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x5cf30e10 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d1cd195 tty_name +EXPORT_SYMBOL vmlinux 0x5d32a4a6 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x5d385769 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x5d44666f cfb_imageblit +EXPORT_SYMBOL vmlinux 0x5d5fc7c2 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x5d86f97e neigh_table_clear +EXPORT_SYMBOL vmlinux 0x5d9a29b5 ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove +EXPORT_SYMBOL vmlinux 0x5dc3c7b8 get_fs_type +EXPORT_SYMBOL vmlinux 0x5dd22233 find_inode_number +EXPORT_SYMBOL vmlinux 0x5dd39cfd vfs_fstatat +EXPORT_SYMBOL vmlinux 0x5dd62fc9 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x5e0fed0a swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x5e2ba5bc swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e3f96b3 __bio_clone +EXPORT_SYMBOL vmlinux 0x5e755d88 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb5f795 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x5ec6f346 bdi_unregister +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee00d45 sock_update_classid +EXPORT_SYMBOL vmlinux 0x5ee3fbb9 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x5ef8ac36 bio_add_page +EXPORT_SYMBOL vmlinux 0x5efdcd11 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x5f04f521 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x5f0be112 fetch_dev_dn +EXPORT_SYMBOL vmlinux 0x5f0cba67 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x5f36539c unregister_qdisc +EXPORT_SYMBOL vmlinux 0x5f41ac6a simple_transaction_read +EXPORT_SYMBOL vmlinux 0x5f5748cc dw_spi_add_host +EXPORT_SYMBOL vmlinux 0x5f5b1a77 __f_setown +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5f8b0028 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x5fb9e0b8 macio_request_resource +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5ffce706 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600f44ea i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x6067a146 memcpy +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60cd8740 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x60d6d7cc __breadahead +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x6106637c skb_store_bits +EXPORT_SYMBOL vmlinux 0x61142d48 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x61229b10 node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612aed6a wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x61398b67 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x613c0e8c mpage_readpages +EXPORT_SYMBOL vmlinux 0x6140557f tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x6157f277 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x618cf646 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61a4487c _lv1_gpu_device_unmap +EXPORT_SYMBOL vmlinux 0x61af4799 sk_alloc +EXPORT_SYMBOL vmlinux 0x61b0c690 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61dcdcd3 _lv1_pause +EXPORT_SYMBOL vmlinux 0x61ea1978 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x61facfe6 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x6216ba86 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x622ab285 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x62318573 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x624d4c8b neigh_compat_output +EXPORT_SYMBOL vmlinux 0x6258ff7a panic_notifier_list +EXPORT_SYMBOL vmlinux 0x6264581f pneigh_lookup +EXPORT_SYMBOL vmlinux 0x62716826 dev_close +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628acee1 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x62b7b283 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x62bb0ab7 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x62db1ffd kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x62ec9d5e misc_deregister +EXPORT_SYMBOL vmlinux 0x62fc0320 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x62fc9452 sk_free +EXPORT_SYMBOL vmlinux 0x632819e9 set_create_files_as +EXPORT_SYMBOL vmlinux 0x632f5c7f free_buffer_head +EXPORT_SYMBOL vmlinux 0x6350b931 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x6360d639 cpu_all_bits +EXPORT_SYMBOL vmlinux 0x6379439f del_timer_sync +EXPORT_SYMBOL vmlinux 0x638c172e vfs_fstat +EXPORT_SYMBOL vmlinux 0x639f3c22 get_user_pages +EXPORT_SYMBOL vmlinux 0x63d36f81 proc_symlink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f75920 _lv1_construct_virtual_address_space +EXPORT_SYMBOL vmlinux 0x63f9c93f ida_get_new_above +EXPORT_SYMBOL vmlinux 0x63ffa078 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6417b8c3 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x644a5dc4 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64518e88 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x645df8e3 km_report +EXPORT_SYMBOL vmlinux 0x646c7422 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x6474537b bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x649955bd pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64d140c7 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x64f7c4e9 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x64f88702 kobject_init +EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x65022de9 fb_class +EXPORT_SYMBOL vmlinux 0x65169ae0 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654433c3 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x655a5e2c cdev_add +EXPORT_SYMBOL vmlinux 0x65792bec mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x6582c5eb swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65ef7d9b check_disk_size_change +EXPORT_SYMBOL vmlinux 0x65fd8fc0 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x6613c0c3 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x6623d16d skb_trim +EXPORT_SYMBOL vmlinux 0x662af632 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x662ee1f0 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x6638a28e blk_end_request +EXPORT_SYMBOL vmlinux 0x6643b148 prepare_creds +EXPORT_SYMBOL vmlinux 0x6649536f input_release_device +EXPORT_SYMBOL vmlinux 0x6663db60 __init_rwsem +EXPORT_SYMBOL vmlinux 0x667cf73f sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a256b3 ida_pre_get +EXPORT_SYMBOL vmlinux 0x66ad1cb3 _lv1_set_lpm_general_control +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66f8bf49 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x67196999 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x671ef555 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x67293b47 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x67378a01 have_submounts +EXPORT_SYMBOL vmlinux 0x67473ee4 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x67773ffd scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67b88341 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x67c571a7 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x67fc02a2 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x68026745 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x683d305c otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x68461216 giveup_altivec +EXPORT_SYMBOL vmlinux 0x6855502f journal_get_create_access +EXPORT_SYMBOL vmlinux 0x685bb86d unregister_filesystem +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68811385 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x68b61a48 d_alloc +EXPORT_SYMBOL vmlinux 0x68c070a5 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x68e1ef51 smu_present +EXPORT_SYMBOL vmlinux 0x68f2f199 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x690742a0 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x691f6086 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x69293289 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x6933dbcf con_is_bound +EXPORT_SYMBOL vmlinux 0x694a4e9a vio_find_node +EXPORT_SYMBOL vmlinux 0x696a5e21 ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0x696c4051 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x69880ce2 d_invalidate +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x699760e8 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x69998b4e bio_integrity_split +EXPORT_SYMBOL vmlinux 0x699ccbf8 _lv1_deconfigure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f32610 __cputime_msec_factor +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a3899b0 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0x6a43a810 i2c_master_send +EXPORT_SYMBOL vmlinux 0x6a44edb0 fasync_helper +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6aa16cf7 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ad9b905 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x6aeb50ab journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x6af0a242 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x6af9870c matrox_G100 +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b250b28 genphy_config_advert +EXPORT_SYMBOL vmlinux 0x6b2a08b8 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b387694 _lv1_end_of_interrupt_ext +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b589a6e _lv1_net_add_multicast_address +EXPORT_SYMBOL vmlinux 0x6b595aa6 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x6b5dfe73 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x6b6f0c4b _lv1_create_repository_node +EXPORT_SYMBOL vmlinux 0x6b83bd31 clear_inode +EXPORT_SYMBOL vmlinux 0x6b8dc28c mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x6b911558 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x6ba3de9e tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x6baba703 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x6bb0c8c2 bio_alloc +EXPORT_SYMBOL vmlinux 0x6bb30144 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x6bb567c5 dm_table_event +EXPORT_SYMBOL vmlinux 0x6bbcad39 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bc5a632 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x6bd1d80d __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf5a19c kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x6c0383ef simple_write_end +EXPORT_SYMBOL vmlinux 0x6c075648 scsi_host_put +EXPORT_SYMBOL vmlinux 0x6c16b486 nonseekable_open +EXPORT_SYMBOL vmlinux 0x6c22c1e0 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x6c48c0dc sg_miter_stop +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c759dbe simple_setsize +EXPORT_SYMBOL vmlinux 0x6caabf35 vio_unregister_driver +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6cf36d6f km_query +EXPORT_SYMBOL vmlinux 0x6cf6497b generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x6d00f48e sock_release +EXPORT_SYMBOL vmlinux 0x6d12807f journal_wipe +EXPORT_SYMBOL vmlinux 0x6d1743eb _lv1_get_total_execution_time +EXPORT_SYMBOL vmlinux 0x6d17ce5b blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d3754da tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x6d4c2c07 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x6d4f25a9 journal_clear_err +EXPORT_SYMBOL vmlinux 0x6d52f4d2 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x6d6c1c3f of_dev_get +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d9201b5 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x6d991dfb ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x6d9ab4b6 seq_puts +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6dc68b03 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x6dc847c9 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x6dd8397c tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6debddf4 flush_signals +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e2288d6 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6edef53c ppc_md +EXPORT_SYMBOL vmlinux 0x6eee8f1d vfs_follow_link +EXPORT_SYMBOL vmlinux 0x6f122521 find_vma +EXPORT_SYMBOL vmlinux 0x6f221078 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x6f6480a2 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x6f6e1831 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x6f744037 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x6f7d1210 matroxfb_vgaHWrestore +EXPORT_SYMBOL vmlinux 0x6f8081fb blkdev_get +EXPORT_SYMBOL vmlinux 0x6f80a147 pcibus_to_node +EXPORT_SYMBOL vmlinux 0x6f863de5 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f899aed scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x6f8f1369 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x6f9177b2 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x6f98b1da I_BDEV +EXPORT_SYMBOL vmlinux 0x6fa331ed _lv1_construct_io_irq_outlet +EXPORT_SYMBOL vmlinux 0x6fbf4b2e swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fdfa735 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0x6fe8bc9f __devm_request_region +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x701699b2 _lv1_set_spe_privilege_state_area_1_register +EXPORT_SYMBOL vmlinux 0x703173e2 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x7031d5b2 dma_direct_ops +EXPORT_SYMBOL vmlinux 0x70494acf dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x704c4365 __cputime_sec_factor +EXPORT_SYMBOL vmlinux 0x704d925d proto_register +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70556b8d tcp_proc_register +EXPORT_SYMBOL vmlinux 0x705c57b2 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x7069d519 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x7071a346 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x707ea479 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x70831878 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x7108094f vga_put +EXPORT_SYMBOL vmlinux 0x71116c38 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x711587b3 release_sock +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71364925 ip_dev_find +EXPORT_SYMBOL vmlinux 0x71443db2 pcim_iomap +EXPORT_SYMBOL vmlinux 0x71601cbe truncate_pagecache +EXPORT_SYMBOL vmlinux 0x71923619 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x71a0f28d jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71c8ab94 vfs_llseek +EXPORT_SYMBOL vmlinux 0x71ce1f03 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x71f29101 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x725f53de __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x7282db45 fb_pan_display +EXPORT_SYMBOL vmlinux 0x72983067 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x729b4a83 _lv1_get_spe_all_interrupt_statuses +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72cdcd5c splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x72e68188 sg_miter_next +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72fea2d5 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x731a747a pci_io_base +EXPORT_SYMBOL vmlinux 0x7328bf5e pci_set_master +EXPORT_SYMBOL vmlinux 0x732f478d napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x73483e65 get_phy_id +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x73892628 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x739f2b98 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x73a5bf09 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x73a83a54 unregister_netdev +EXPORT_SYMBOL vmlinux 0x73b3f82b make_bad_inode +EXPORT_SYMBOL vmlinux 0x73b992dc idr_remove_all +EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x73f761e0 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x73fd02c7 revert_creds +EXPORT_SYMBOL vmlinux 0x740fe5e2 of_find_matching_node +EXPORT_SYMBOL vmlinux 0x741e1574 kill_fasync +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x744c9e0c dquot_release +EXPORT_SYMBOL vmlinux 0x7457f054 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x747db705 serio_rescan +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x748ad442 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x748de078 keyring_clear +EXPORT_SYMBOL vmlinux 0x7494a3e4 blk_complete_request +EXPORT_SYMBOL vmlinux 0x74a148f4 of_device_get_modalias +EXPORT_SYMBOL vmlinux 0x74baf84b i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c75663 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x756b2fdd __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x756c786e _lv1_connect_interrupt_event_receive_port +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x75754995 _lv1_storage_check_async_status +EXPORT_SYMBOL vmlinux 0x7589c4f1 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75c7e0ae jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x75cfbe2d input_close_device +EXPORT_SYMBOL vmlinux 0x75e4f5aa pasemi_read_mac_reg +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76139ac8 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x7615f5a5 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x764532fb __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x764e2224 _lv1_disconnect_irq_plug_ext +EXPORT_SYMBOL vmlinux 0x769b25d2 _lv1_get_version_info +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cc8ed8 file_fsync +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d7d257 set_groups +EXPORT_SYMBOL vmlinux 0x76e9c86a kthread_stop +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x77108217 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x77144936 _lv1_disconnect_irq_plug +EXPORT_SYMBOL vmlinux 0x77170e68 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x772d1e88 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x77383fb4 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x773957e2 follow_up +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77518469 eth_header_parse +EXPORT_SYMBOL vmlinux 0x77530a44 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x77766657 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x777b8ec0 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x778938ee scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x778b1970 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x77979002 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x7813ca3b wireless_send_event +EXPORT_SYMBOL vmlinux 0x7826491a dev_open +EXPORT_SYMBOL vmlinux 0x785df315 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x7875ed98 skb_queue_head +EXPORT_SYMBOL vmlinux 0x7882814b end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x78870098 get_gendisk +EXPORT_SYMBOL vmlinux 0x789a17f7 _lv1_destruct_logical_spe +EXPORT_SYMBOL vmlinux 0x78cd5016 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x78d30d32 register_snap_client +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78ed3e5c __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x7922a93e sock_recvmsg +EXPORT_SYMBOL vmlinux 0x7935d7c5 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x7938eecf mnt_unpin +EXPORT_SYMBOL vmlinux 0x793c8270 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x798d1678 dquot_destroy +EXPORT_SYMBOL vmlinux 0x799983ac dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79d0bb13 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x79e2b298 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x7a083cf4 g450_mnp2f +EXPORT_SYMBOL vmlinux 0x7a12ee23 of_iomap +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a2f421e nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x7a34794b alloc_pages_current +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a4b1a60 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x7a57b0ef lock_may_write +EXPORT_SYMBOL vmlinux 0x7a595efa pci_choose_state +EXPORT_SYMBOL vmlinux 0x7a82e3ed tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x7aa345b2 netdev_set_master +EXPORT_SYMBOL vmlinux 0x7aa9e259 _lv1_map_htab +EXPORT_SYMBOL vmlinux 0x7ab3bdda pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x7abbc5d6 __page_symlink +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7ad78c51 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x7ae5e0fa pcim_iounmap +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7b2f320f dev_trans_start +EXPORT_SYMBOL vmlinux 0x7b718228 ida_destroy +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b998cd2 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x7bc09eaf llc_sap_open +EXPORT_SYMBOL vmlinux 0x7bcd3dd7 ll_rw_block +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be38128 release_firmware +EXPORT_SYMBOL vmlinux 0x7bef5a3d filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x7bf70422 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c08e718 filemap_flush +EXPORT_SYMBOL vmlinux 0x7c18b52d scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x7c23821f bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x7c253254 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x7c2b2ec8 tty_write_room +EXPORT_SYMBOL vmlinux 0x7c30a5ca napi_frags_finish +EXPORT_SYMBOL vmlinux 0x7c3a4a53 softnet_data +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c56e966 dev_change_flags +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c6b1d03 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x7c83d2c1 pci_get_device +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7c979dff sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread +EXPORT_SYMBOL vmlinux 0x7cac3cf4 may_umount +EXPORT_SYMBOL vmlinux 0x7cb105a3 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb69572 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x7cc50fb4 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d20626e tty_unregister_device +EXPORT_SYMBOL vmlinux 0x7d4a408c xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x7d50bb60 inode_setattr +EXPORT_SYMBOL vmlinux 0x7d62b224 of_find_property +EXPORT_SYMBOL vmlinux 0x7d91f99c scsi_get_command +EXPORT_SYMBOL vmlinux 0x7d96de54 override_creds +EXPORT_SYMBOL vmlinux 0x7dc8a761 arp_tbl +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd7d73c of_get_next_child +EXPORT_SYMBOL vmlinux 0x7df0eb82 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7e04eb4d skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x7e139b71 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x7e17b076 ide_set_handler +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7ea5bba8 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7ebfbd21 d_lookup +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ecb7b16 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x7ed685ac fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x7ee588da macio_request_resources +EXPORT_SYMBOL vmlinux 0x7f0c46ec of_register_i2c_devices +EXPORT_SYMBOL vmlinux 0x7f0e2a65 dev_mc_init +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2558df iterate_mounts +EXPORT_SYMBOL vmlinux 0x7f28d726 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x7f5c76d8 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x7f6a7c1e tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x7f8bf674 __lock_page +EXPORT_SYMBOL vmlinux 0x7f9675ad udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x7f9f8841 idr_remove +EXPORT_SYMBOL vmlinux 0x7fb94b25 tcp_connect +EXPORT_SYMBOL vmlinux 0x7fbe044d filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x7fcbfe6a generic_writepages +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x8011c0cb request_key_async +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x802ed288 console_start +EXPORT_SYMBOL vmlinux 0x802ff424 sk_wait_data +EXPORT_SYMBOL vmlinux 0x803c5b12 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0x803f1495 down_read +EXPORT_SYMBOL vmlinux 0x8058f254 nf_reinject +EXPORT_SYMBOL vmlinux 0x80946a81 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x80ad44a3 dst_release +EXPORT_SYMBOL vmlinux 0x80b781a5 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x80bed113 security_path_mknod +EXPORT_SYMBOL vmlinux 0x80c5a87d tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x80db1757 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x81272b60 padata_do_serial +EXPORT_SYMBOL vmlinux 0x8138311b remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x81580c0d bmap +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x81607323 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81b728ca tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81ca16fc __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x81d9f7f2 _lv1_put_iopte +EXPORT_SYMBOL vmlinux 0x81f734ad pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x81fb6643 names_cachep +EXPORT_SYMBOL vmlinux 0x81fe00f6 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x81ff18fe generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820e88e4 input_set_capability +EXPORT_SYMBOL vmlinux 0x821e4801 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x825b8102 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82716049 dqstats +EXPORT_SYMBOL vmlinux 0x827d8c0a ps3_sb_event_receive_port_setup +EXPORT_SYMBOL vmlinux 0x8292b8b5 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x829e5428 filemap_fault +EXPORT_SYMBOL vmlinux 0x829e7e03 backlight_device_register +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b4225d get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x82db14d3 scsi_print_command +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82fc69c4 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x8329a342 pci_save_state +EXPORT_SYMBOL vmlinux 0x8330820d bio_map_kern +EXPORT_SYMBOL vmlinux 0x833696ab scsi_register_interface +EXPORT_SYMBOL vmlinux 0x83471add register_8022_client +EXPORT_SYMBOL vmlinux 0x83535904 devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x836f414f writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x83708d24 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x83743095 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x838ffcee audit_log_start +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x842171cf ide_dma_off +EXPORT_SYMBOL vmlinux 0x8432037f qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x8436441e wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x844a6e70 netpoll_setup +EXPORT_SYMBOL vmlinux 0x844ae548 do_SAK +EXPORT_SYMBOL vmlinux 0x845124e0 ps3_mm_phys_to_lpar +EXPORT_SYMBOL vmlinux 0x846e1af6 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x8485bf1b init_net +EXPORT_SYMBOL vmlinux 0x84873202 journal_init_inode +EXPORT_SYMBOL vmlinux 0x848b4550 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x848d5385 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x84a97198 search_binary_handler +EXPORT_SYMBOL vmlinux 0x84ab25cd alloc_fddidev +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84e5e98d mark_page_accessed +EXPORT_SYMBOL vmlinux 0x85002af3 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x85184547 netlink_unicast +EXPORT_SYMBOL vmlinux 0x853a32ef mutex_lock +EXPORT_SYMBOL vmlinux 0x8553f5b4 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8597eb47 plpar_hcall +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e649b0 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x860753d3 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x86409ed2 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866b0e91 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x867d68ef blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869f7ac5 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x86a310a1 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x86b0cb76 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86f1451a kill_pgrp +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x871c0e78 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x87415330 journal_ack_err +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87afa6a8 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x87d35bad neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x880da1b1 _lv1_get_logical_partition_id +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88718257 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x887c288a pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x8882801f jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x88952680 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x88e0809f udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x88eaee19 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x88f01112 del_gendisk +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x89249ea0 nf_log_packet +EXPORT_SYMBOL vmlinux 0x8947d76a lease_get_mtime +EXPORT_SYMBOL vmlinux 0x895577b0 numa_cpu_lookup_table +EXPORT_SYMBOL vmlinux 0x8966e0aa remove_inode_hash +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x89b35d12 generic_write_end +EXPORT_SYMBOL vmlinux 0x89c5a8be smu_get_sdb_partition +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89dee2b0 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x89e131d4 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x89e50950 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x8a7ceb8f __scsi_add_device +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9cef2a _lv1_allocate_device_dma_region +EXPORT_SYMBOL vmlinux 0x8ae9fc5e dev_get_by_index +EXPORT_SYMBOL vmlinux 0x8b0a684c bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x8b183013 dm_io +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b6377ad unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x8b69fbe5 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x8b6ac975 journal_update_format +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b8862f7 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x8b8d34a0 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bda6043 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x8bdb5ace pagecache_write_end +EXPORT_SYMBOL vmlinux 0x8bf81dc6 aio_put_req +EXPORT_SYMBOL vmlinux 0x8c023c11 filp_open +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c23e72b pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x8c30bbde pci_restore_state +EXPORT_SYMBOL vmlinux 0x8c52cd91 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x8c6f29bd pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0x8c8964e1 send_sig_info +EXPORT_SYMBOL vmlinux 0x8c8affe4 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x8c8d79c0 _lv1_gpu_context_iomap +EXPORT_SYMBOL vmlinux 0x8c99ae30 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x8c99f25f pci_disable_msix +EXPORT_SYMBOL vmlinux 0x8c9ae539 copy_io_context +EXPORT_SYMBOL vmlinux 0x8cab76bb llc_add_pack +EXPORT_SYMBOL vmlinux 0x8cc6368f rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd358b8 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x8cf459dd pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x8d0145fc blk_insert_request +EXPORT_SYMBOL vmlinux 0x8d0d9437 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x8d0f5d81 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x8d6e2060 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x8d6f6d96 sock_no_connect +EXPORT_SYMBOL vmlinux 0x8d71e538 journal_load +EXPORT_SYMBOL vmlinux 0x8d7f5afb journal_start +EXPORT_SYMBOL vmlinux 0x8d944cbb copy_in_user +EXPORT_SYMBOL vmlinux 0x8dac8b1b matroxfb_g450_connect +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8de2fbc5 _lv1_get_virtual_uart_param +EXPORT_SYMBOL vmlinux 0x8dfa803b udp_disconnect +EXPORT_SYMBOL vmlinux 0x8dfb527d inet_frag_find +EXPORT_SYMBOL vmlinux 0x8e00a814 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e0d6e38 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x8e2c9eec ilookup5 +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e640bc5 skb_tx_hash +EXPORT_SYMBOL vmlinux 0x8e663915 of_gpio_count +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8eea1bc9 smu_poll +EXPORT_SYMBOL vmlinux 0x8ef0587f fb_show_logo +EXPORT_SYMBOL vmlinux 0x8f03db0f tty_vhangup +EXPORT_SYMBOL vmlinux 0x8f2d100d tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8fdaf16a fail_migrate_page +EXPORT_SYMBOL vmlinux 0x8fe5e260 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x8fe83144 input_register_handler +EXPORT_SYMBOL vmlinux 0x8fed7066 node_data +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900db860 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x900ff817 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x9021f345 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x9022f3c5 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x90443b81 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x906493d9 blk_peek_request +EXPORT_SYMBOL vmlinux 0x90687d7e bio_sector_offset +EXPORT_SYMBOL vmlinux 0x90bf7097 dev_addr_init +EXPORT_SYMBOL vmlinux 0x90c06a85 igrab +EXPORT_SYMBOL vmlinux 0x90c4319a matroxfb_read_pins +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x90e2b99d compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x90e6ae57 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x91201cef _lv1_enable_logical_spe +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x912a8ae7 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x916c1b2c compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x91780598 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x917c1b09 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x91816dfa input_unregister_device +EXPORT_SYMBOL vmlinux 0x918f97fe xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x91947ccb mapping_tagged +EXPORT_SYMBOL vmlinux 0x919a88e2 __pagevec_release +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x919d2e54 security_path_rename +EXPORT_SYMBOL vmlinux 0x91a2c6a1 fput +EXPORT_SYMBOL vmlinux 0x91bb7f02 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x91bf2451 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x91c4feca _lv1_unmap_htab +EXPORT_SYMBOL vmlinux 0x91ffb344 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x922c8fdc tcf_hash_check +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923c54cf idr_destroy +EXPORT_SYMBOL vmlinux 0x92531ca3 task_nice +EXPORT_SYMBOL vmlinux 0x92ae9116 d_path +EXPORT_SYMBOL vmlinux 0x92c8ce90 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x92e27020 journal_errno +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x92f6929e generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9337c5e8 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x93507f1c _lv1_gpu_memory_allocate +EXPORT_SYMBOL vmlinux 0x9356b252 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x93993130 scsi_print_result +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a84abc inode_get_bytes +EXPORT_SYMBOL vmlinux 0x93ca5d00 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x93ec3f4e bio_endio +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x941023c0 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x943a4030 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x9450755a backlight_force_update +EXPORT_SYMBOL vmlinux 0x9481a667 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94b0aa08 generic_make_request +EXPORT_SYMBOL vmlinux 0x94bc3a47 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x9518b048 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x951bb943 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x95205b73 __inet6_hash +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x952a5af0 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x953cb16a napi_get_frags +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95755eba pci_target_state +EXPORT_SYMBOL vmlinux 0x957689e6 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x957ab3a4 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x957bb14a __napi_complete +EXPORT_SYMBOL vmlinux 0x957fc194 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x958e3fa8 audit_log_format +EXPORT_SYMBOL vmlinux 0x95a8b294 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x95c53a68 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d72c48 mb_cache_create +EXPORT_SYMBOL vmlinux 0x95fdede2 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x960b13f1 mpage_writepage +EXPORT_SYMBOL vmlinux 0x9641e576 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x9664dbbd tty_port_put +EXPORT_SYMBOL vmlinux 0x9690f9f7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x96c1094f neigh_create +EXPORT_SYMBOL vmlinux 0x96c9e953 deny_write_access +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d7311f pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x96dc31f4 skb_checksum +EXPORT_SYMBOL vmlinux 0x96e46201 blk_plug_device +EXPORT_SYMBOL vmlinux 0x970ebb95 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x9724ed24 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x972ded0b rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x9731aa49 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x97377d40 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9768904a llc_sap_close +EXPORT_SYMBOL vmlinux 0x976e014f _lv1_map_device_mmio_region +EXPORT_SYMBOL vmlinux 0x977f77b2 sock_create_kern +EXPORT_SYMBOL vmlinux 0x97ab1462 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x97b42453 d_find_alias +EXPORT_SYMBOL vmlinux 0x97c9fbeb arp_find +EXPORT_SYMBOL vmlinux 0x97d0d7a9 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x97e6664d seq_lseek +EXPORT_SYMBOL vmlinux 0x9811a9a2 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x98177648 _lv1_set_lpm_interval +EXPORT_SYMBOL vmlinux 0x983e09f5 irq_stat +EXPORT_SYMBOL vmlinux 0x985e1d56 alloc_trdev +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9873889a generic_write_checks +EXPORT_SYMBOL vmlinux 0x9877287d elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x9889806b dev_set_mtu +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x99039a7c pci_bus_type +EXPORT_SYMBOL vmlinux 0x995c0213 seq_path +EXPORT_SYMBOL vmlinux 0x996cbb87 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x9976c533 rtnl_notify +EXPORT_SYMBOL vmlinux 0x99843296 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c24cfe _lv1_free_device_dma_region +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d65f99 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x99d9df1c in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x9a1a2435 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1ffb92 _lv1_clear_spe_interrupt_status +EXPORT_SYMBOL vmlinux 0x9a4b18c6 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x9a56857c i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a6c2531 pasemi_dma_init +EXPORT_SYMBOL vmlinux 0x9a7aa37d dcache_dir_open +EXPORT_SYMBOL vmlinux 0x9a9e9fb6 pci_find_bus +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9aaccf66 kick_iocb +EXPORT_SYMBOL vmlinux 0x9ab26cdb blk_start_queue +EXPORT_SYMBOL vmlinux 0x9ac02c6c tcp_poll +EXPORT_SYMBOL vmlinux 0x9add0848 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x9b048647 redraw_screen +EXPORT_SYMBOL vmlinux 0x9b09d309 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b4504a5 set_blocksize +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b5ec17b elv_queue_empty +EXPORT_SYMBOL vmlinux 0x9b6603b2 mdiobus_write +EXPORT_SYMBOL vmlinux 0x9b81e5d4 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bc1a486 touch_atime +EXPORT_SYMBOL vmlinux 0x9bd00c7b journal_check_used_features +EXPORT_SYMBOL vmlinux 0x9bde7b7a tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x9be819ba dquot_commit_info +EXPORT_SYMBOL vmlinux 0x9bfabb6a tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c2858dd hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c741066 __lookup_one_len +EXPORT_SYMBOL vmlinux 0x9ca3df0b scsi_finish_command +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc1d35b cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9cccea6f generic_show_options +EXPORT_SYMBOL vmlinux 0x9ccf1f67 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d705b3e install_exec_creds +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d833f82 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x9d9fa7af up_write +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9df4a064 cad_pid +EXPORT_SYMBOL vmlinux 0x9dfdd697 blk_init_queue +EXPORT_SYMBOL vmlinux 0x9e32f200 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x9e3cb389 give_up_console +EXPORT_SYMBOL vmlinux 0x9e584b58 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x9e5f0b4e pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x9e74d491 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ec8243d generic_file_llseek +EXPORT_SYMBOL vmlinux 0x9ed69df0 block_write_end +EXPORT_SYMBOL vmlinux 0x9edbecae snprintf +EXPORT_SYMBOL vmlinux 0x9ee4b9b7 generic_write_sync +EXPORT_SYMBOL vmlinux 0x9ee78669 _lv1_write_virtual_uart +EXPORT_SYMBOL vmlinux 0x9eeca41b pci_pme_capable +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef589ff __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x9f0e6773 __find_get_block +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2137b3 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f2fd20a neigh_lookup +EXPORT_SYMBOL vmlinux 0x9f302bbc netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f4f7f1e simple_empty +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa21fc6 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa058c944 llc_sap_find +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa05e56f0 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xa06cd17d blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xa07d5f2d sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xa089a7d8 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xa099dc59 udp_poll +EXPORT_SYMBOL vmlinux 0xa09ebd21 skb_find_text +EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0cd39b5 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d175ba vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0d7c964 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xa0e557b7 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xa0f4129b kmem_cache_size +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff7a8c kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa10b97cf open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xa119b715 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa14138af dev_mc_del +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa1446707 rtas +EXPORT_SYMBOL vmlinux 0xa15c3ad2 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xa16860b6 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xa1979302 udplite_prot +EXPORT_SYMBOL vmlinux 0xa1a43c63 set_device_ro +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1bc38b1 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xa1bc6fb0 __register_chrdev +EXPORT_SYMBOL vmlinux 0xa1bffca0 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1d95ff7 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xa1f020e6 input_flush_device +EXPORT_SYMBOL vmlinux 0xa200e2e6 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xa2092335 dev_uc_del +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2127cdc pasemi_dma_alloc_flag +EXPORT_SYMBOL vmlinux 0xa21cda26 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xa22d589a dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xa233204d seq_bitmap +EXPORT_SYMBOL vmlinux 0xa24527c7 cap_file_mmap +EXPORT_SYMBOL vmlinux 0xa284e918 of_dev_put +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b4cd02 skb_make_writable +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2e24d15 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f4010e pipe_unlock +EXPORT_SYMBOL vmlinux 0xa31cdb62 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa384b5fe down_write +EXPORT_SYMBOL vmlinux 0xa3854e56 bio_copy_kern +EXPORT_SYMBOL vmlinux 0xa392aebf netlink_set_err +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a35932 delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3c82557 skb_insert +EXPORT_SYMBOL vmlinux 0xa3d2defe sock_no_getname +EXPORT_SYMBOL vmlinux 0xa3d31e3d lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0xa3f72631 serio_interrupt +EXPORT_SYMBOL vmlinux 0xa3fba305 simple_readpage +EXPORT_SYMBOL vmlinux 0xa3fffead xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xa4086a64 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xa41154f6 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xa41333b4 netif_rx +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa46ec547 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xa480c04b _lv1_gpu_context_attribute +EXPORT_SYMBOL vmlinux 0xa481504b dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xa4b22b5c dquot_alloc +EXPORT_SYMBOL vmlinux 0xa4b3eea4 macio_dev_get +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bdd447 __cputime_clockt_factor +EXPORT_SYMBOL vmlinux 0xa4c4867c skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xa4fa1599 misc_register +EXPORT_SYMBOL vmlinux 0xa5378c60 ps2_end_command +EXPORT_SYMBOL vmlinux 0xa553e8f6 inode_init_owner +EXPORT_SYMBOL vmlinux 0xa554104d rwsem_wake +EXPORT_SYMBOL vmlinux 0xa563e9be handle_sysrq +EXPORT_SYMBOL vmlinux 0xa568c19a d_validate +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa570a1a8 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xa572b823 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit +EXPORT_SYMBOL vmlinux 0xa58b2c22 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5af0e19 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL vmlinux 0xa5b6fa49 elevator_exit +EXPORT_SYMBOL vmlinux 0xa5c2c1a0 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xa5e93975 put_page +EXPORT_SYMBOL vmlinux 0xa62b0789 key_validate +EXPORT_SYMBOL vmlinux 0xa644b92b kernel_listen +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa6671395 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6934bb1 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xa6b0aeff bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xa6b1ba00 set_user_nice +EXPORT_SYMBOL vmlinux 0xa6c526b3 sock_no_bind +EXPORT_SYMBOL vmlinux 0xa6cd60c2 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa704ced6 inode_init_always +EXPORT_SYMBOL vmlinux 0xa7159098 journal_abort +EXPORT_SYMBOL vmlinux 0xa71eccf6 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xa7296a94 security_path_unlink +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa76107ef rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xa7913302 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xa7acf0ce blkdev_put +EXPORT_SYMBOL vmlinux 0xa7b184ff input_register_device +EXPORT_SYMBOL vmlinux 0xa7b85692 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xa7d47d22 nla_append +EXPORT_SYMBOL vmlinux 0xa7ee3ee4 should_remove_suid +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa8360514 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xa8466659 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xa875ae59 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa895b20f ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xa8a00ca3 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8ab457b dquot_transfer +EXPORT_SYMBOL vmlinux 0xa8bfc3d3 tcp_child_process +EXPORT_SYMBOL vmlinux 0xa8ced546 _lv1_net_set_interrupt_status_indicator +EXPORT_SYMBOL vmlinux 0xa8dd2433 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa8eeafe2 bio_map_user +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9013172 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xa91c77b6 _lv1_end_of_interrupt +EXPORT_SYMBOL vmlinux 0xa935f2c1 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xa94266f0 down_trylock +EXPORT_SYMBOL vmlinux 0xa95b14b8 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xa9873614 ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0xa9bd1736 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xaa0edca8 pasemi_dma_alloc_fun +EXPORT_SYMBOL vmlinux 0xaa0f4717 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xaa1466bf inode_change_ok +EXPORT_SYMBOL vmlinux 0xaa2260d6 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xaa33bb3d scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xaa3ee5d5 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xaa6c43c4 __break_lease +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa8dd4d6 skb_set_dev +EXPORT_SYMBOL vmlinux 0xaaa85e07 freeze_bdev +EXPORT_SYMBOL vmlinux 0xaaaa77de input_get_keycode +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab093132 fb_find_mode +EXPORT_SYMBOL vmlinux 0xab139df0 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xab210af0 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xab286deb invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xab44f494 fb_set_var +EXPORT_SYMBOL vmlinux 0xab4fbd01 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xab66f611 _lv1_set_lpm_trigger_control +EXPORT_SYMBOL vmlinux 0xab6855c0 security_path_chown +EXPORT_SYMBOL vmlinux 0xabc2278c mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL vmlinux 0xabe82213 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xabf34913 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0xabf459b7 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xac07664f input_inject_event +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac2e04b3 dev_get_flags +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac476ad3 soft_cursor +EXPORT_SYMBOL vmlinux 0xac64e06f iget_locked +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6ed4f7 register_qdisc +EXPORT_SYMBOL vmlinux 0xac6fde7f unregister_con_driver +EXPORT_SYMBOL vmlinux 0xacac18fe pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xacafd7f8 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xaccc2c49 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xacd14ab8 _lv1_construct_logical_spe +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad26dcb7 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xad2cc628 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xad30af26 mpage_readpage +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad5001c0 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xad7a14f1 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xad9c1ab5 request_key +EXPORT_SYMBOL vmlinux 0xad9fe736 simple_getattr +EXPORT_SYMBOL vmlinux 0xada1ac4a vga_get +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadac0d94 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xadca0ed3 devm_free_irq +EXPORT_SYMBOL vmlinux 0xadce19b1 __register_binfmt +EXPORT_SYMBOL vmlinux 0xaddaf419 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xadeffe25 _lv1_gpu_context_intr +EXPORT_SYMBOL vmlinux 0xae2adcd4 dquot_operations +EXPORT_SYMBOL vmlinux 0xae2f357c netif_device_attach +EXPORT_SYMBOL vmlinux 0xae51f542 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae5ff8fb simple_rmdir +EXPORT_SYMBOL vmlinux 0xae652e02 of_node_put +EXPORT_SYMBOL vmlinux 0xae978ade xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xaea3ed82 generic_setlease +EXPORT_SYMBOL vmlinux 0xaebde416 send_sig +EXPORT_SYMBOL vmlinux 0xaed390a2 ps2_command +EXPORT_SYMBOL vmlinux 0xaee2cdd4 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0xaee32e3f inet_register_protosw +EXPORT_SYMBOL vmlinux 0xaef10bf8 hippi_type_trans +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf06ce3e scsi_device_put +EXPORT_SYMBOL vmlinux 0xaf12493d tcf_register_action +EXPORT_SYMBOL vmlinux 0xaf1b5b58 down_read_trylock +EXPORT_SYMBOL vmlinux 0xaf1d7005 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf2e752b vmap +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf438d65 _lv1_get_repository_node_value +EXPORT_SYMBOL vmlinux 0xaf8287e3 xfrm_input +EXPORT_SYMBOL vmlinux 0xaf900a5d eth_header +EXPORT_SYMBOL vmlinux 0xafa15295 dm_get_device +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb00312f6 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xb034746d __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xb06c0f6c no_llseek +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0be449f atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xb0c109c5 kobject_get +EXPORT_SYMBOL vmlinux 0xb0c659fe request_firmware +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f255c8 thaw_super +EXPORT_SYMBOL vmlinux 0xb10d361e dev_uc_sync +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb122daa1 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xb147ee00 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xb14c8dbb udp_proc_register +EXPORT_SYMBOL vmlinux 0xb1542083 datagram_poll +EXPORT_SYMBOL vmlinux 0xb155877c inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xb155c609 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xb159cc27 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb165ef45 __irq_regs +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL vmlinux 0xb194e685 sk_filter +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1b34cb3 __netif_schedule +EXPORT_SYMBOL vmlinux 0xb1b50684 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1fd4740 block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb227d174 log_start_commit +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb239797a __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xb25a8c8a put_tty_driver +EXPORT_SYMBOL vmlinux 0xb264085a input_set_keycode_big +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb28fa270 d_genocide +EXPORT_SYMBOL vmlinux 0xb2972cb8 unload_nls +EXPORT_SYMBOL vmlinux 0xb2dcb433 netlink_ack +EXPORT_SYMBOL vmlinux 0xb2fb7f84 key_alloc +EXPORT_SYMBOL vmlinux 0xb313a78c generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xb3233cc1 dev_load +EXPORT_SYMBOL vmlinux 0xb3393533 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xb3406155 force_sig +EXPORT_SYMBOL vmlinux 0xb34bb9e0 scsi_unregister +EXPORT_SYMBOL vmlinux 0xb36b24b7 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xb3800df5 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xb3823ad8 macio_release_resource +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3aa027e blk_stop_queue +EXPORT_SYMBOL vmlinux 0xb3bf73df cpu_active_mask +EXPORT_SYMBOL vmlinux 0xb3c36bbf get_sb_single +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb44351d9 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4716211 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xb4842e01 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xb490e127 blk_unplug +EXPORT_SYMBOL vmlinux 0xb4b62e4f read_cache_pages +EXPORT_SYMBOL vmlinux 0xb503a579 i2c_release_client +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb50cf2b7 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xb51f74cc gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xb52421ee pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xb53a114b ide_dump_status +EXPORT_SYMBOL vmlinux 0xb53d365d generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5487525 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xb54acf71 update_region +EXPORT_SYMBOL vmlinux 0xb54ffa6d __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xb55d0c0d arp_send +EXPORT_SYMBOL vmlinux 0xb56a77ae vfs_mknod +EXPORT_SYMBOL vmlinux 0xb56bfd9e smu_spinwait_cmd +EXPORT_SYMBOL vmlinux 0xb56c081c neigh_update +EXPORT_SYMBOL vmlinux 0xb58678d1 filp_close +EXPORT_SYMBOL vmlinux 0xb597ee22 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5b22e17 dm_unregister_target +EXPORT_SYMBOL vmlinux 0xb5bca78f mdiobus_read +EXPORT_SYMBOL vmlinux 0xb5c9c344 paca +EXPORT_SYMBOL vmlinux 0xb5f82907 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb62f0a1f of_node_get +EXPORT_SYMBOL vmlinux 0xb6340dc8 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xb6353108 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xb6407e3f inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xb649a983 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xb657fe00 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xb65f1b2c down_interruptible +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c6d261 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xb6d765f7 skb_pull +EXPORT_SYMBOL vmlinux 0xb70db7a5 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xb71b564f kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0xb731f318 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xb73926d0 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xb75189e2 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xb7578139 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xb761ba51 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xb76ee5c0 noop_fsync +EXPORT_SYMBOL vmlinux 0xb772cc55 console_stop +EXPORT_SYMBOL vmlinux 0xb7ba9bb8 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7c8a4a3 user_revoke +EXPORT_SYMBOL vmlinux 0xb7f90ec5 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xb811e577 tty_check_change +EXPORT_SYMBOL vmlinux 0xb81e0b1d scm_fp_dup +EXPORT_SYMBOL vmlinux 0xb8677e03 __put_cred +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87694f6 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xb88b8855 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8a30c7e _lv1_add_lpm_event_bookmark +EXPORT_SYMBOL vmlinux 0xb8c1ff9f security_path_mkdir +EXPORT_SYMBOL vmlinux 0xb8c50c0f journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xb8d2d751 iunique +EXPORT_SYMBOL vmlinux 0xb8d51aed of_phy_find_device +EXPORT_SYMBOL vmlinux 0xb8f21b5d gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xb9174f2c abx500_register_ops +EXPORT_SYMBOL vmlinux 0xb95b12f7 pci_match_id +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9f82925 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xba013461 node_states +EXPORT_SYMBOL vmlinux 0xba122a2c smu_done_complete +EXPORT_SYMBOL vmlinux 0xba1d5417 inet_ioctl +EXPORT_SYMBOL vmlinux 0xba2efeae nf_ct_attach +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba59150c mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbab3b425 dqget +EXPORT_SYMBOL vmlinux 0xbad1e2ea destroy_EII_client +EXPORT_SYMBOL vmlinux 0xbadf3af7 vfs_unlink +EXPORT_SYMBOL vmlinux 0xbaeff5f2 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xbaf00300 generic_listxattr +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1dca84 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xbb20819e vfs_link +EXPORT_SYMBOL vmlinux 0xbb2a32e6 phy_print_status +EXPORT_SYMBOL vmlinux 0xbb2e642b nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xbb5a35d0 dst_alloc +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb639b15 validate_sp +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbb9f5fa5 down_write_trylock +EXPORT_SYMBOL vmlinux 0xbbb67a2e inet_sendmsg +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbc1b95ef inet_frag_kill +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc33bc04 fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0xbc35758e key_put +EXPORT_SYMBOL vmlinux 0xbc3ba86d generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xbc3f19f1 gen_pool_free +EXPORT_SYMBOL vmlinux 0xbc7e3007 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0xbcb46cff scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xbcbcffed textsearch_unregister +EXPORT_SYMBOL vmlinux 0xbcc8bb7e inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xbceb99f7 pci_request_regions +EXPORT_SYMBOL vmlinux 0xbd228fa5 scsi_init_io +EXPORT_SYMBOL vmlinux 0xbd33c6ad put_io_context +EXPORT_SYMBOL vmlinux 0xbd441015 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xbd45c423 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xbd7f8c9b idr_get_next +EXPORT_SYMBOL vmlinux 0xbd8cfa15 pasemi_write_mac_reg +EXPORT_SYMBOL vmlinux 0xbd98f152 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xbdad545a __serio_register_driver +EXPORT_SYMBOL vmlinux 0xbdca8a8e tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe180619 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xbe48798f dst_discard +EXPORT_SYMBOL vmlinux 0xbe49bd99 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xbe73baf0 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xbe7f4d26 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xbe814159 ida_remove +EXPORT_SYMBOL vmlinux 0xbe9798e9 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xbeaa12f9 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xbeabf3bc ip_route_output_key +EXPORT_SYMBOL vmlinux 0xbeaef5ae journal_create +EXPORT_SYMBOL vmlinux 0xbebe0d8f vc_cons +EXPORT_SYMBOL vmlinux 0xbebfdf9f blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbefa646f blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xbf2d26ae iget5_locked +EXPORT_SYMBOL vmlinux 0xbf625948 of_match_device +EXPORT_SYMBOL vmlinux 0xbf777328 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf82b5d8 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xbf85ca3f tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbf9e9ae7 try_to_release_page +EXPORT_SYMBOL vmlinux 0xbfabfe59 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe5b52c ip_defrag +EXPORT_SYMBOL vmlinux 0xbff8182c plpar_hcall_norets +EXPORT_SYMBOL vmlinux 0xbff83f12 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc0094e0b dev_addr_flush +EXPORT_SYMBOL vmlinux 0xc02e9b77 elv_rb_del +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05db902 gen_pool_create +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc08f1356 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0af5a7c max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xc0c6921e neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xc0f848f7 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xc10cf8e6 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xc12afe4a km_state_expired +EXPORT_SYMBOL vmlinux 0xc13511d7 cpumask_next_and +EXPORT_SYMBOL vmlinux 0xc13a6a20 dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0xc143eb5b dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xc14ad8ca vfs_create +EXPORT_SYMBOL vmlinux 0xc15447fb of_unregister_driver +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc1999a29 sync_inode +EXPORT_SYMBOL vmlinux 0xc19f4307 key_link +EXPORT_SYMBOL vmlinux 0xc1af0292 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1fc8216 bdi_register +EXPORT_SYMBOL vmlinux 0xc2487eeb request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2be1629 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xc2d5fb4f block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fb9ee1 _lv1_shutdown_logical_partition +EXPORT_SYMBOL vmlinux 0xc300ec4b pci_scan_slot +EXPORT_SYMBOL vmlinux 0xc314c3d2 __cputime_jiffies_factor +EXPORT_SYMBOL vmlinux 0xc3343b84 security_path_chmod +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc35113cd of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xc3572765 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xc376d221 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xc3956894 d_alloc_root +EXPORT_SYMBOL vmlinux 0xc3c78ccc genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc400f779 __ps2_command +EXPORT_SYMBOL vmlinux 0xc40da31b fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0xc4172038 block_write_full_page +EXPORT_SYMBOL vmlinux 0xc41f1696 _lv1_configure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0xc429c9c2 simple_statfs +EXPORT_SYMBOL vmlinux 0xc460139b pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a28f0d unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4ee18be kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xc5089620 _lv1_stop_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc5834e90 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xc588b6d2 kdb_current_task +EXPORT_SYMBOL vmlinux 0xc58eeae0 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xc595ec2a jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xc5a7d219 tty_port_close +EXPORT_SYMBOL vmlinux 0xc625202b vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc663b075 __ioremap +EXPORT_SYMBOL vmlinux 0xc6800ba0 seq_escape +EXPORT_SYMBOL vmlinux 0xc696b0d7 pipe_to_file +EXPORT_SYMBOL vmlinux 0xc6a08363 nf_register_hook +EXPORT_SYMBOL vmlinux 0xc6a93bff arp_create +EXPORT_SYMBOL vmlinux 0xc6b81d7f bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xc6c69d4a get_phy_device +EXPORT_SYMBOL vmlinux 0xc6c972e4 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xc6cdc002 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xc6d2a691 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xc6db105e find_lock_page +EXPORT_SYMBOL vmlinux 0xc6ded8e8 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xc704ac45 save_mount_options +EXPORT_SYMBOL vmlinux 0xc719dcf0 ide_geometry_proc_fops +EXPORT_SYMBOL vmlinux 0xc72e519e inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xc73df3a8 simple_rename +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc748ca6e register_gifconf +EXPORT_SYMBOL vmlinux 0xc75964f9 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xc76dc61d simple_link +EXPORT_SYMBOL vmlinux 0xc76f09a3 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xc78d9060 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ad2013 km_policy_expired +EXPORT_SYMBOL vmlinux 0xc7b4925e dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp +EXPORT_SYMBOL vmlinux 0xc7ee6f96 dquot_initialize +EXPORT_SYMBOL vmlinux 0xc808b808 register_quota_format +EXPORT_SYMBOL vmlinux 0xc8147587 free_netdev +EXPORT_SYMBOL vmlinux 0xc816e79b sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xc846e6da tcp_ioctl +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc853b5ea __nla_reserve +EXPORT_SYMBOL vmlinux 0xc85eb06b path_get +EXPORT_SYMBOL vmlinux 0xc86c60cd neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc878e699 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xc8862ad0 lock_fb_info +EXPORT_SYMBOL vmlinux 0xc88de9f7 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a4bacf idr_replace +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b838bb journal_extend +EXPORT_SYMBOL vmlinux 0xc8d1cf16 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xc8dd42b7 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xc8e31d75 _lv1_configure_irq_state_bitmap +EXPORT_SYMBOL vmlinux 0xc8fd97f1 cdev_index +EXPORT_SYMBOL vmlinux 0xc90f3ccf get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0xc9116281 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xc9398354 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xc982c7be consume_skb +EXPORT_SYMBOL vmlinux 0xc985e77d pci_iomap +EXPORT_SYMBOL vmlinux 0xc98d2a58 tcp_close +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9b664ca phy_driver_register +EXPORT_SYMBOL vmlinux 0xc9c932bc take_over_console +EXPORT_SYMBOL vmlinux 0xc9edc116 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xc9fbd4a9 proto_unregister +EXPORT_SYMBOL vmlinux 0xc9fc356f bdget +EXPORT_SYMBOL vmlinux 0xc9fc598d pasemi_read_dma_reg +EXPORT_SYMBOL vmlinux 0xca06fa14 input_open_device +EXPORT_SYMBOL vmlinux 0xca40b876 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xca4ae806 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca75db49 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xca7d1c93 block_commit_write +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca88d89d framebuffer_release +EXPORT_SYMBOL vmlinux 0xcaabf3f9 pasemi_write_iob_reg +EXPORT_SYMBOL vmlinux 0xcab0f085 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xcab66382 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcabfb732 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xcb0fc70e jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xcb2a9d12 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xcb32e8e1 bio_split +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb81fba3 skb_copy +EXPORT_SYMBOL vmlinux 0xcb9b95ad swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xcbb5af35 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xcbd64a42 generic_file_open +EXPORT_SYMBOL vmlinux 0xcbe8b038 _lv1_configure_execution_time_variable +EXPORT_SYMBOL vmlinux 0xcbf9807d journal_start_commit +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc2575b4 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc48c52c elv_add_request +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5502b3 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xcc73f314 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xcc7d1f40 create_proc_entry +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc89c246 pasemi_dma_alloc_chan +EXPORT_SYMBOL vmlinux 0xccb196ab nlmsg_notify +EXPORT_SYMBOL vmlinux 0xccbe8afa alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xccc51098 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xccc7d428 padata_stop +EXPORT_SYMBOL vmlinux 0xccdaeb53 skb_push +EXPORT_SYMBOL vmlinux 0xcd04d818 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd125625 blk_free_tags +EXPORT_SYMBOL vmlinux 0xcd3cb485 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xcd3e67b4 of_platform_bus_type +EXPORT_SYMBOL vmlinux 0xcd5f3e34 sock_no_listen +EXPORT_SYMBOL vmlinux 0xcd75ca98 i8042_install_filter +EXPORT_SYMBOL vmlinux 0xcd769f62 _lv1_gpu_device_map +EXPORT_SYMBOL vmlinux 0xcd7ed5ee grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcdd14685 sock_create +EXPORT_SYMBOL vmlinux 0xce04298e udp_prot +EXPORT_SYMBOL vmlinux 0xce0576ab inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xce0dbcbe compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xce1974cb pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xce1ca4bb scm_detach_fds +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce3b3f09 profile_pc +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce40d2e5 sk_common_release +EXPORT_SYMBOL vmlinux 0xce4ea36d nla_put +EXPORT_SYMBOL vmlinux 0xce598a66 journal_force_commit +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce8eee3d tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xce961577 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xce9748f4 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xcebddc5a wake_up_process +EXPORT_SYMBOL vmlinux 0xcebfae98 mnt_pin +EXPORT_SYMBOL vmlinux 0xced74086 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xcedc43cc pci_enable_device +EXPORT_SYMBOL vmlinux 0xcf196a3f journal_lock_updates +EXPORT_SYMBOL vmlinux 0xcf57c521 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xcf5cbdf9 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xcf6af4c7 ps3_dma_region_free +EXPORT_SYMBOL vmlinux 0xcf7b794e pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcf9e510c scsi_device_resume +EXPORT_SYMBOL vmlinux 0xcfb7d5a0 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xd008d214 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd04b7b8f kobject_add +EXPORT_SYMBOL vmlinux 0xd0556b40 add_timer +EXPORT_SYMBOL vmlinux 0xd05931ec _lv1_set_lpm_counter_control +EXPORT_SYMBOL vmlinux 0xd07b270b block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xd07fa4a6 scsi_add_device +EXPORT_SYMBOL vmlinux 0xd0852a63 inode_init_once +EXPORT_SYMBOL vmlinux 0xd09572a2 lock_super +EXPORT_SYMBOL vmlinux 0xd0995ef5 __scm_destroy +EXPORT_SYMBOL vmlinux 0xd0a589e5 of_register_driver +EXPORT_SYMBOL vmlinux 0xd0a8d25f sock_setsockopt +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0cbcc41 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xd0dea833 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xd0e911ad fb_get_mode +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd11a2034 __lock_buffer +EXPORT_SYMBOL vmlinux 0xd11b3f7d skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xd11f9108 powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd1457138 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xd1698d6a starget_for_each_device +EXPORT_SYMBOL vmlinux 0xd1761506 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xd1895fe1 DAC1064_global_restore +EXPORT_SYMBOL vmlinux 0xd1906c8a xfrm_lookup +EXPORT_SYMBOL vmlinux 0xd19d303a pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xd1afa37e read_cache_page +EXPORT_SYMBOL vmlinux 0xd1c0f8b5 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xd1c830e6 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xd1d79967 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xd1fe8ebb _lv1_get_spe_interrupt_status +EXPORT_SYMBOL vmlinux 0xd22b5abc iget_failed +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd2408a27 set_binfmt +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2705297 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xd289ec3f lock_may_read +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2ef2638 smu_cmdbuf_abs +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd346f4c8 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xd3729050 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd4235314 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xd428d04e tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xd4467e06 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xd45fa35e netif_napi_del +EXPORT_SYMBOL vmlinux 0xd46d0968 ioremap_flags +EXPORT_SYMBOL vmlinux 0xd47830e3 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xd47fbf71 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xd4953254 fsync_bdev +EXPORT_SYMBOL vmlinux 0xd4a01c55 __getblk +EXPORT_SYMBOL vmlinux 0xd4e2639c kthread_create +EXPORT_SYMBOL vmlinux 0xd4f1f4a8 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xd5211792 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd54c0bbc pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xd555db86 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd55f3209 _lv1_remove_repository_node +EXPORT_SYMBOL vmlinux 0xd56fd6c7 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages +EXPORT_SYMBOL vmlinux 0xd587c43d gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xd5963b5f pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b45124 __dst_free +EXPORT_SYMBOL vmlinux 0xd5b7f133 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xd5e1d719 _lv1_set_ppe_periodic_tracer_frequency +EXPORT_SYMBOL vmlinux 0xd5e56f10 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd62d9c4c sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xd6398b11 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0xd647c920 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6b09fb1 new_inode +EXPORT_SYMBOL vmlinux 0xd6c91d76 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xd6edf811 _lv1_release_memory +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6eec838 pskb_copy +EXPORT_SYMBOL vmlinux 0xd6efc8e4 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xd7137e67 mach_maple +EXPORT_SYMBOL vmlinux 0xd72dafa8 fget +EXPORT_SYMBOL vmlinux 0xd72e1cfc _lv1_set_lpm_spr_trigger +EXPORT_SYMBOL vmlinux 0xd7415278 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd786c0ea plpar_hcall9 +EXPORT_SYMBOL vmlinux 0xd78d2e09 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xd7993b75 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7c4c5e2 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd82fa01f neigh_seq_next +EXPORT_SYMBOL vmlinux 0xd83221dd find_get_page +EXPORT_SYMBOL vmlinux 0xd835aaef ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xd84a05df remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd84b774b ip_fragment +EXPORT_SYMBOL vmlinux 0xd85050a4 dm_register_target +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8b9b3c3 blk_init_tags +EXPORT_SYMBOL vmlinux 0xd8d7c841 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xd8df0623 nf_afinfo +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd96a8539 of_create_pci_dev +EXPORT_SYMBOL vmlinux 0xd9753303 do_truncate +EXPORT_SYMBOL vmlinux 0xd97d1515 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99cff7a dm_put_device +EXPORT_SYMBOL vmlinux 0xd99daeb2 vio_enable_interrupts +EXPORT_SYMBOL vmlinux 0xd9b9fb84 netif_device_detach +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9d4d09d _lv1_release_io_segment +EXPORT_SYMBOL vmlinux 0xda0f80ab scsi_ioctl +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda2626d3 ide_wait_stat +EXPORT_SYMBOL vmlinux 0xda396b8e journal_set_features +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda599acc page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xda5c4bee of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda9e78a9 generic_readlink +EXPORT_SYMBOL vmlinux 0xdaaf150f km_policy_notify +EXPORT_SYMBOL vmlinux 0xdabff284 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0xdadf0276 seq_write +EXPORT_SYMBOL vmlinux 0xdafe7280 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xdb1ba4fa file_update_time +EXPORT_SYMBOL vmlinux 0xdb624ff0 pci_get_slot +EXPORT_SYMBOL vmlinux 0xdb729c3a security_path_link +EXPORT_SYMBOL vmlinux 0xdb972ffd scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xdba471ed tty_kref_put +EXPORT_SYMBOL vmlinux 0xdbb6c2d6 sys_imageblit +EXPORT_SYMBOL vmlinux 0xdbc9e9fd flush_dcache_page +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbdcd341 sock_kmalloc +EXPORT_SYMBOL vmlinux 0xdbeacc64 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xdc01dcda of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0xdc035cd2 simple_release_fs +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc32af20 bdget_disk +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4a5393 submit_bh +EXPORT_SYMBOL vmlinux 0xdc727289 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0xdc908871 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb5671d strlen +EXPORT_SYMBOL vmlinux 0xdcb8a496 macio_dev_put +EXPORT_SYMBOL vmlinux 0xdcecdf1d dcache_lock +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdcf419d7 abort_creds +EXPORT_SYMBOL vmlinux 0xdd13a396 __nla_put +EXPORT_SYMBOL vmlinux 0xdd16117b scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xdd1af3a6 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xdd811cc6 skb_unlink +EXPORT_SYMBOL vmlinux 0xdd83e00f alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0xdd851af3 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xdd955144 __debugger +EXPORT_SYMBOL vmlinux 0xddb9b31a netif_rx_ni +EXPORT_SYMBOL vmlinux 0xddc0e242 neigh_for_each +EXPORT_SYMBOL vmlinux 0xde018930 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0xde0db67f blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xde11854d matrox_millennium +EXPORT_SYMBOL vmlinux 0xde2197eb tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde52d1c5 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xde75502b nf_hook_slow +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde7a7918 sock_i_uid +EXPORT_SYMBOL vmlinux 0xde7e442a scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xde869d6b init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdea35acf key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xdeb09fae pipe_lock +EXPORT_SYMBOL vmlinux 0xdec0a3ba inode_permission +EXPORT_SYMBOL vmlinux 0xdec62085 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xdec64457 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xdf069077 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xdf3cb0cb napi_skb_finish +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf556db6 __blk_run_queue +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf60fc83 _lv1_net_start_tx_dma +EXPORT_SYMBOL vmlinux 0xdf740827 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xdf7a8fe0 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfb10773 raw_local_irq_restore +EXPORT_SYMBOL vmlinux 0xdfc4d65d tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xe01113ad pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xe022e72c skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xe02bcbc5 add_disk +EXPORT_SYMBOL vmlinux 0xe049ce39 netif_napi_add +EXPORT_SYMBOL vmlinux 0xe04ec824 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0a01ba1 nobh_writepage +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0e14aec of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xe1040c33 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe120be2a netif_carrier_off +EXPORT_SYMBOL vmlinux 0xe1275af5 scsi_prep_return +EXPORT_SYMBOL vmlinux 0xe13733c0 devm_ioremap +EXPORT_SYMBOL vmlinux 0xe153b632 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xe174688b fifo_set_limit +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe19f2ba6 __elv_add_request +EXPORT_SYMBOL vmlinux 0xe1b66e8d pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xe1d3f57f journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xe20c63e7 _lv1_unmap_device_mmio_region +EXPORT_SYMBOL vmlinux 0xe21d7fc3 bio_put +EXPORT_SYMBOL vmlinux 0xe21e9712 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xe220ceb8 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xe220fa8a sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xe22b2af3 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe23a7dc2 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe289ff1a tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xe29bdd55 bio_copy_user +EXPORT_SYMBOL vmlinux 0xe29fb0b2 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xe2a38728 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xe2a74315 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xe2ae4be3 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xe2ce6669 of_release_dev +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe3107a98 path_lookup +EXPORT_SYMBOL vmlinux 0xe3112df8 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xe335e6b0 __blk_end_request +EXPORT_SYMBOL vmlinux 0xe3389e89 seq_open_private +EXPORT_SYMBOL vmlinux 0xe3723f6c create_empty_buffers +EXPORT_SYMBOL vmlinux 0xe374099b pskb_expand_head +EXPORT_SYMBOL vmlinux 0xe3a5717d blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3c2a22e neigh_table_init +EXPORT_SYMBOL vmlinux 0xe3cc29b6 alloc_disk +EXPORT_SYMBOL vmlinux 0xe3d94afd phy_device_create +EXPORT_SYMBOL vmlinux 0xe40bcade kset_unregister +EXPORT_SYMBOL vmlinux 0xe41afd0d tcp_prot +EXPORT_SYMBOL vmlinux 0xe442b0b9 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xe454b81a serio_close +EXPORT_SYMBOL vmlinux 0xe4621845 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe493d108 single_open +EXPORT_SYMBOL vmlinux 0xe497ac1e percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xe4b90b91 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xe4ba7f9c xrlim_allow +EXPORT_SYMBOL vmlinux 0xe4c0917a pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xe4e4e9aa genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe5039d8f request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5206403 get_disk +EXPORT_SYMBOL vmlinux 0xe5238dad inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe537c273 lookup_bdev +EXPORT_SYMBOL vmlinux 0xe5605636 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0xe565537f bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe58631bd vm_map_ram +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5ad917d blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xe5b737da lro_flush_all +EXPORT_SYMBOL vmlinux 0xe5c78496 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5c94bfd unregister_console +EXPORT_SYMBOL vmlinux 0xe5ccfb7c of_get_pci_address +EXPORT_SYMBOL vmlinux 0xe5d8c7ea km_state_notify +EXPORT_SYMBOL vmlinux 0xe5e36ec1 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xe5e7d7f5 unregister_key_type +EXPORT_SYMBOL vmlinux 0xe5eb82a1 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xe5ed48e4 macio_enable_devres +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe60988ac _lv1_query_logical_partition_address_region_info +EXPORT_SYMBOL vmlinux 0xe6164c9f __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xe6208a41 seq_release +EXPORT_SYMBOL vmlinux 0xe6692a2c sock_sendmsg +EXPORT_SYMBOL vmlinux 0xe6937370 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6aec8fa mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xe6c29d7b i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0xe6cc9de1 vfs_stat +EXPORT_SYMBOL vmlinux 0xe6d3969f phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0xe6f3a8a6 stop_tty +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fe33e4 down_killable +EXPORT_SYMBOL vmlinux 0xe721d9ce journal_destroy +EXPORT_SYMBOL vmlinux 0xe72323b8 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xe74aa406 _lv1_set_dabr +EXPORT_SYMBOL vmlinux 0xe7a0a701 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xe7cd99b7 smu_queue_simple +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7dcb059 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xe7fa2609 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe822a504 dma_iommu_ops +EXPORT_SYMBOL vmlinux 0xe83ba6ba cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe8779be1 simple_lookup +EXPORT_SYMBOL vmlinux 0xe88e3fd9 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xe88ed422 matroxfb_register_driver +EXPORT_SYMBOL vmlinux 0xe89fe451 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xe8ac47c6 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xe8b2a2c2 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xe8b86a8a tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe934b466 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xe9367b4d inetdev_by_index +EXPORT_SYMBOL vmlinux 0xe93c51b7 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xe94cf433 register_sysrq_key +EXPORT_SYMBOL vmlinux 0xe96e02a5 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0xe9788bc0 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xe98dda97 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xe9a04520 del_timer +EXPORT_SYMBOL vmlinux 0xe9b416ce security_inode_permission +EXPORT_SYMBOL vmlinux 0xe9bff345 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xe9fa295a pci_claim_resource +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea147363 printk +EXPORT_SYMBOL vmlinux 0xea24386e make_EII_client +EXPORT_SYMBOL vmlinux 0xea57dcda abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xea6e7e0e sock_register +EXPORT_SYMBOL vmlinux 0xeaa87063 dm_io_client_create +EXPORT_SYMBOL vmlinux 0xeab5e239 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xeaba0621 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xeac33f71 icmp_send +EXPORT_SYMBOL vmlinux 0xeac38bb3 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeadaa015 journal_stop +EXPORT_SYMBOL vmlinux 0xeaef4215 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xeafb92f6 vio_register_driver +EXPORT_SYMBOL vmlinux 0xeb0a8ef5 d_instantiate +EXPORT_SYMBOL vmlinux 0xeb0f434e kfree_skb +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb3b6f36 follow_down +EXPORT_SYMBOL vmlinux 0xeb4f16d1 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xeb73d2ae xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb936b94 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xeba80485 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xebaaf9b7 locks_init_lock +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebd05f07 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebd482ba vc_resize +EXPORT_SYMBOL vmlinux 0xebd70f8c max8925_reg_write +EXPORT_SYMBOL vmlinux 0xebff8f37 tty_mutex +EXPORT_SYMBOL vmlinux 0xec06315e scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2d0509 notify_change +EXPORT_SYMBOL vmlinux 0xec2ff55b tty_devnum +EXPORT_SYMBOL vmlinux 0xec30765a _lv1_allocate_io_segment +EXPORT_SYMBOL vmlinux 0xec362384 end_page_writeback +EXPORT_SYMBOL vmlinux 0xec714460 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xed37f3f4 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xed4b761a vfs_symlink +EXPORT_SYMBOL vmlinux 0xed513639 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xed54a873 posix_test_lock +EXPORT_SYMBOL vmlinux 0xed652427 _lv1_set_interrupt_mask +EXPORT_SYMBOL vmlinux 0xed684b34 vio_cmo_set_dev_desired +EXPORT_SYMBOL vmlinux 0xed792186 of_get_property +EXPORT_SYMBOL vmlinux 0xed82aa92 register_console +EXPORT_SYMBOL vmlinux 0xed86b3b7 ___ratelimit +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc296cb tty_hangup +EXPORT_SYMBOL vmlinux 0xedc357f4 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xedc47ca2 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xede692a6 lookup_hash +EXPORT_SYMBOL vmlinux 0xedf0b48c _lv1_storage_get_async_status +EXPORT_SYMBOL vmlinux 0xedf0d504 pci_release_regions +EXPORT_SYMBOL vmlinux 0xee0c2cd6 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xee0f7877 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0xee12ae96 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xee1858be tcf_em_register +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee4e33ef vio_register_device_node +EXPORT_SYMBOL vmlinux 0xee58610a dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xee5bb20b _lv1_panic +EXPORT_SYMBOL vmlinux 0xee9174c5 _lv1_storage_read +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb3b008 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xef007a9c vfs_readv +EXPORT_SYMBOL vmlinux 0xef0a976c submit_bio +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef31056a tcf_hash_release +EXPORT_SYMBOL vmlinux 0xef5ae9dc cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xef69d825 flush_old_exec +EXPORT_SYMBOL vmlinux 0xef6c6c33 register_netdevice +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef790f3b blk_sync_queue +EXPORT_SYMBOL vmlinux 0xef86cb78 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xef8e9d3d dput +EXPORT_SYMBOL vmlinux 0xefaf924f inet_release +EXPORT_SYMBOL vmlinux 0xefb197da generic_removexattr +EXPORT_SYMBOL vmlinux 0xefc2e54d _lv1_storage_send_device_command +EXPORT_SYMBOL vmlinux 0xefd45664 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xefe0fbf0 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0225156 km_new_mapping +EXPORT_SYMBOL vmlinux 0xf026e934 register_framebuffer +EXPORT_SYMBOL vmlinux 0xf02b6497 block_sync_page +EXPORT_SYMBOL vmlinux 0xf0370eae module_put +EXPORT_SYMBOL vmlinux 0xf05ade03 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0676695 is_bad_inode +EXPORT_SYMBOL vmlinux 0xf06e3d62 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xf07beffe migrate_page +EXPORT_SYMBOL vmlinux 0xf095972a cdev_del +EXPORT_SYMBOL vmlinux 0xf0d0eea0 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xf0d2f84a _lv1_gpu_context_free +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf1472f3d skb_put +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf183189b __ioremap_at +EXPORT_SYMBOL vmlinux 0xf189629b insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1da06e9 phy_stop +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf21c1045 elv_rb_find +EXPORT_SYMBOL vmlinux 0xf21e3b72 pci_release_region +EXPORT_SYMBOL vmlinux 0xf2202088 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xf2204edf tcp_parse_options +EXPORT_SYMBOL vmlinux 0xf22b14d8 idr_get_new +EXPORT_SYMBOL vmlinux 0xf2453ce2 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xf24e2888 kern_path +EXPORT_SYMBOL vmlinux 0xf27a7c17 elv_register_queue +EXPORT_SYMBOL vmlinux 0xf296d941 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xf29e554f con_copy_unimap +EXPORT_SYMBOL vmlinux 0xf2b0a39b pci_clear_master +EXPORT_SYMBOL vmlinux 0xf2c844e0 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0xf2d66376 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xf2f47acf alloc_disk_node +EXPORT_SYMBOL vmlinux 0xf309e9ee cur_cpu_spec +EXPORT_SYMBOL vmlinux 0xf30d1036 _lv1_start_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0xf3129a78 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3152e14 scsi_register +EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf32b05e5 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xf3331456 dget_locked +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34cdf0b proc_mkdir +EXPORT_SYMBOL vmlinux 0xf357db8d pasemi_dma_set_flag +EXPORT_SYMBOL vmlinux 0xf36223e3 pci_select_bars +EXPORT_SYMBOL vmlinux 0xf3716f77 kset_register +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39622a2 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xf39a5222 _lv1_get_virtual_address_space_id_of_ppe +EXPORT_SYMBOL vmlinux 0xf3abc6e5 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c33c64 bio_init +EXPORT_SYMBOL vmlinux 0xf3c5f5dc __dquot_free_space +EXPORT_SYMBOL vmlinux 0xf40e4051 of_translate_address +EXPORT_SYMBOL vmlinux 0xf41253aa pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xf41e2384 inet_put_port +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf478fca9 of_get_address +EXPORT_SYMBOL vmlinux 0xf49b77c3 dev_get_stats +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf5079d01 blk_put_request +EXPORT_SYMBOL vmlinux 0xf51a6b01 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf52979a6 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf54b8454 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xf55a9e72 up_read +EXPORT_SYMBOL vmlinux 0xf56bc4f3 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xf594f80d ida_get_new +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5a74f83 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5e42776 slow_work_cancel +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf60721f3 sock_no_poll +EXPORT_SYMBOL vmlinux 0xf6192526 phy_connect +EXPORT_SYMBOL vmlinux 0xf6213e12 pasemi_dma_clear_flag +EXPORT_SYMBOL vmlinux 0xf6409c29 sys_fillrect +EXPORT_SYMBOL vmlinux 0xf645e696 write_inode_now +EXPORT_SYMBOL vmlinux 0xf65d28c8 page_readlink +EXPORT_SYMBOL vmlinux 0xf6619aa4 of_device_register +EXPORT_SYMBOL vmlinux 0xf66b4d91 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xf69688f5 sock_rfree +EXPORT_SYMBOL vmlinux 0xf6993c86 ide_stall_queue +EXPORT_SYMBOL vmlinux 0xf6a164fd dquot_drop +EXPORT_SYMBOL vmlinux 0xf6a317d2 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xf6b516aa sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6c57027 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xf6ddd3c2 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf6e5b345 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ecb763 _lv1_send_event_locally +EXPORT_SYMBOL vmlinux 0xf733858e block_prepare_write +EXPORT_SYMBOL vmlinux 0xf74a6329 sock_i_ino +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7734ced pci_disable_msi +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf79605cf start_tty +EXPORT_SYMBOL vmlinux 0xf797b5b7 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xf798f87f tcp_check_req +EXPORT_SYMBOL vmlinux 0xf79b4369 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xf7a2c65a generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xf7a849aa deactivate_super +EXPORT_SYMBOL vmlinux 0xf7bac0ec _lv1_set_lpm_counter +EXPORT_SYMBOL vmlinux 0xf7c1fb83 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0xf7c6508c napi_frags_skb +EXPORT_SYMBOL vmlinux 0xf8004bfd _lv1_disconnect_interrupt_event_receive_port +EXPORT_SYMBOL vmlinux 0xf8019bc6 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf807568a dev_mc_sync +EXPORT_SYMBOL vmlinux 0xf807c91b tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf84baadd __free_pages +EXPORT_SYMBOL vmlinux 0xf85a8e00 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xf8870346 dma_pool_create +EXPORT_SYMBOL vmlinux 0xf8906870 vio_cmo_entitlement_update +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8a3f3ad pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xf8a8f1a8 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xf8af13a8 register_con_driver +EXPORT_SYMBOL vmlinux 0xf8c34700 key_unlink +EXPORT_SYMBOL vmlinux 0xf8d93f8e xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xf8dabae6 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xf8e2bd79 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xf8ee19a7 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xf90fd6c0 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xf923d987 skb_clone +EXPORT_SYMBOL vmlinux 0xf93c5645 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xf95b2d02 DAC1064_global_init +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9ad2be8 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xf9cc3bcf matrox_cfbX_init +EXPORT_SYMBOL vmlinux 0xf9fea1a5 block_write_begin +EXPORT_SYMBOL vmlinux 0xfa21d4bb pid_task +EXPORT_SYMBOL vmlinux 0xfa294cf5 get_super +EXPORT_SYMBOL vmlinux 0xfa4a59ea scsi_scan_target +EXPORT_SYMBOL vmlinux 0xfa6d50ef register_sysctl_table +EXPORT_SYMBOL vmlinux 0xfa75776a __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xfad1b987 ilookup +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfadd9047 sys_copyarea +EXPORT_SYMBOL vmlinux 0xfae678b3 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb5bf35f neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xfb624942 __lru_cache_add +EXPORT_SYMBOL vmlinux 0xfb637996 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7e95af fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xfbac07a5 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd67f1f elevator_init +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbe9ea17 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xfbf18e29 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc319ce5 blk_get_request +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc45cf96 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xfc4c36ec vio_get_attribute +EXPORT_SYMBOL vmlinux 0xfc7a9358 freeze_super +EXPORT_SYMBOL vmlinux 0xfc98180b inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcebbe40 kill_pid +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd190c8e thaw_process +EXPORT_SYMBOL vmlinux 0xfd41a519 security_file_permission +EXPORT_SYMBOL vmlinux 0xfd6ea097 of_device_alloc +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdac439e journal_dirty_data +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdd80d58 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe0c96f9 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xfe0e6334 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe341739 da903x_query_status +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe4cb4b5 _lv1_storage_write +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe76008c mach_powermac +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfea7a896 fd_install +EXPORT_SYMBOL vmlinux 0xfea97933 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xfebcaa5b __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xfec191ed vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed221d9 pasemi_dma_alloc_ring +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff0f3cff sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff322a15 init_special_inode +EXPORT_SYMBOL vmlinux 0xff384ff5 file_permission +EXPORT_SYMBOL vmlinux 0xff4ce35c boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xff5e452e serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff7a5344 padata_start +EXPORT_SYMBOL vmlinux 0xff81d2c5 __debugger_dabr_match +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff9a496a audit_log_end +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb5bf8e kernel_connect +EXPORT_SYMBOL vmlinux 0xffb6ddce pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xffbc3063 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xffca7ffc proc_create_data +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffe281ca sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xffeac586 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xffef143d write_one_page +EXPORT_SYMBOL vmlinux 0xfffd5058 complete_request_key +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x20d821d8 spu_restore +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x69c2dae7 spu_save +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0xa6807129 spufs_context_fops +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0bc36efe crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x06d904c0 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x06f883a7 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x2cd882ca async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x477ae22c async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x9fe4db70 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x274a5e8e async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x649c7c07 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa14c6b29 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x184b56dd async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x9c959b0c async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x2e48ea13 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x45c1b80d cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x4d09af6d cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x603050ee cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x77711a99 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xecf20299 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xf7c4482e cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xb10ffe3c twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0db5e8db ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1de26144 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3bc68ba9 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x46676b34 ahci_sht +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4fb197f3 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x82dd1ef5 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8da88ceb ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9e613e94 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xaf3f24a9 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd3df0a65 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe09bdfa7 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe285b7ad ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf2f1d323 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x635d248a __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x97121eb6 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xfa85a9a3 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x28d22d4c btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x597bb47a btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7cd7474b btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa4581e7b btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xab1e6c74 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb26a7e4a btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf93469e9 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfaddd617 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x03d3c3cc agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x0ca7ba09 agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0a1df32b tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x176640d6 tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2e7a2a1a tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3c8c8f23 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4194af97 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x46a7dca8 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x57c7aa47 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x70b4214d tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7397691b tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x835d141c tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x837b0f6d tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x93425149 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9677abe6 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa8314a99 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc1194398 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc11d0d9e tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc4440666 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd0e6d562 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd1046203 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe5a91da7 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe61108aa tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xee3e915c tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf497ba85 tpm_release +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x01966249 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x05df955d edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x09a7f240 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0dc9366e edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1d41d954 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x25fc030b edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2b114b7f edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2c1b58a2 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2f435980 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3351b4e3 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4190d736 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x65dbc8c2 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7cc3f054 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x82562af7 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8c91a153 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9f4256fc edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa9af702d edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb905414e edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb998df0b edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc79c2ca5 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe0ad46f2 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf2741c1d edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf74e0c3f edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfee4c5f0 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x9db1c2d9 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xb45ddd0c __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x363f43f1 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x39eff288 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/hid/hid 0x01233574 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x081d5f3a hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1cbb59ac hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x219467f6 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x30b419ae hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3bc25b95 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x532cd2d1 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5d50f835 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x678de15d __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x682e38a3 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x69b4af44 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6ca53654 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x82add138 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8de32714 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x91d42019 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9dcb61cb hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa7507a3c hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbb636e49 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbd5589dd hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc2522a66 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd5781148 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdca02fc5 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xded59d6d hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe8d193ac hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xef27ac48 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfaba1441 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x0b494ca9 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x48eacfcb usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x4cba38bb hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x4d61164f usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6fd8d363 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x010cf510 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x8db43ab1 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xc94333ec lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xcb1724ad lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xedbd340c lis3_dev +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x4c430a0f i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xbe92a424 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x7ba84be9 hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xe689fbea hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x7ecdc1d7 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x026420b8 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1255c7b7 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x180cbb3a wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x18822c23 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x479ced90 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7bcf984d wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x94d6a228 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9a8058bd wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbc63ae74 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc341da73 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xdeffc729 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe0ac67f9 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x703e6eaf wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x747a37cc wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x7c8b83e3 wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x92985101 wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xb378e6f7 wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbd6f85a3 wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xc4f33666 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xde550df8 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xece54d19 wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xfae67d4f wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0x9808f147 wf_pid_run +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xb8ed5b2c wf_cpu_pid_init +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xcd9a18ef wf_pid_init +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xceda69f1 wf_cpu_pid_run +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_smu_sat 0xe05851d5 smu_sat_get_sdb_partition +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x70624aea dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x7cc43239 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x178b8181 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x1a4b9356 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x27279250 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x34506f3d dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x379eefe7 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x401ddeb3 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4483ff61 dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x459d7c5e dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4ae9c34e dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x51697c1e dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5443aec3 dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7315c03a dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7a5d4a86 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa3910ee0 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xac914c9a dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xacd8caf1 dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb8b89456 dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbcc00db1 dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xdea0f153 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe1d69a27 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf11213fc dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x137cd4ae sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x30890005 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x449d619b md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x66bdb40d md_do_sync +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x24935f26 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xcdc24ab5 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xdbab0c01 raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x147c9ca9 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x4a8a9758 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x4b7886b5 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x00a863c1 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x0e12ac30 ir_unregister_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x25f409d5 __ir_input_register +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4033497d ir_register_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x62532d39 ir_repeat +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x6a7afe6c ir_input_unregister +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8de8a496 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xad3083c6 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xda9b1d0e ir_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe8366d2c get_rc_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf4c07905 ir_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x188d5246 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1a082e29 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2d6754d5 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x36e2a4eb saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x45afc526 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6869c4b0 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8991ab67 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9d3170d1 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa09300ae saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd183028d saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd6ced27f saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x21134567 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x3b8a34c9 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7a945edf saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7b2f209b saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xb129caad saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe44b5c7c saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe4897a0b saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x1f9ea00f microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x145eded4 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x59916a29 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xc71f325c tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x337c2780 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x46915912 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x370dcb98 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xd5eafe89 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xdb148064 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x88b66f4d tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x9cd5f74a tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xed5b6a85 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1c24b4bc gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x229ef3a2 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2a4210d1 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x463ff9e0 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x521ec448 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x56eb522a mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5a5038cf ir_mantis +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7361871f mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8aa594ac mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9878071c mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa787312f mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb5398a97 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb907444b mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xba25514d mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdc7fdd49 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe024d385 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xef415087 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf5bf2a5f mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x04600980 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0bd00015 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0d7c6987 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1986406e sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x49f14d1f sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4e0228eb sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x56973d97 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5a4fe903 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x63cc2985 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x68fb09ca smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa7ef7f82 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xaa5a1c70 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb16d9a7c smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb6b24e7d smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb92f9985 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xba1eeb8a sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc8482621 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdae5a786 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe6853795 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x026006fb cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x075c274a cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x17cbf0d0 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1b169c57 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2890ec79 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x529e4532 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x580f17b5 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x59eee4a3 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5b76f7b1 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x996073b0 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd5d4d6eb cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xd3028a2c cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x062010db em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x70e9e9e4 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xbaddba47 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xbb803535 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd2873291 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xffbc2133 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x005337d8 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x1cb06c74 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x22dd93e0 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x2f279482 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xbd3ebec0 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x1aba23c2 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x33ee1d9a v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4b810524 v4l2_i2c_new_subdev_cfg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x81e0d826 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x8fdb96b1 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xcf0abbca v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0x5ccc8b6b v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa8807300 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xcbde2bb4 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xcc47c56c v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xfe851ffe v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x59688d9f v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5eafefff v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x643058e6 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x74888ee8 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x76566281 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x76d12529 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x78d636dc v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x81509d2b v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9bb360e0 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb452c1eb v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd855ea3f v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xdf060f9f v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe1e01fe7 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfba5fcfd v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x06a4d16c videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x07fed1dc videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x170d33d8 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1e637e4d videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x20411993 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x318815b6 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x36809bf9 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x42d8c6ef videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4c450ac8 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x56c6d916 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x73d7a0af videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x77ee0531 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x827644fa videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x879207e2 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8c3ba522 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8fa22c17 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb0782773 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbd5ae26b videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc02a372e videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc69e964b videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdc47c0d3 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe44f6cca videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe76eb9b9 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xecdae35a videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xece258c3 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x5428e040 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xd0166083 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xe1393a06 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x165b8083 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x32175d0b videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x39077771 videobuf_sg_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4648567a videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4bf96da8 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa1db4ba1 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa9a20df6 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb5f3750c videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe0f0521b videobuf_sg_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe8188f4e videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf63f3867 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x519df084 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x8fc106e6 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xc0a3243a videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x070401d0 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x193ba2db v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x19c67a6e v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1a344c3e v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x275534d0 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2d671e9a v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x49b2ed09 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5a5e740c v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5e6414fc v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x79c0a291 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8017fca2 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xaae6caa4 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc25bf586 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc7363b00 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcb44c0e9 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcfef95ed v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd07a6261 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd4fd2a99 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x05388302 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1b85cb4c i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x21563326 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x4f3ed190 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x601246e4 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6bd957d2 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x77e8215e i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xcd865a6b i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0xe7f166cc mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x02a15f7b pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1939f22f pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x288c1134 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2e7083b1 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x42697862 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x729728e1 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc7bf8185 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcf1be46c pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdf4f76a1 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe268fb06 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf992b40e pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x49690c99 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xc4be7e6c pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2b58169d pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x4ff2bba2 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x527b4b05 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x71a61ab0 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7cc8bb59 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6880d597 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa435f010 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xbc97ba33 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xcfd2f88a sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd54cb25d sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xe695cf4f ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x2175924e wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x2380b70a wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x5ac89357 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x73f0195c wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x0354e58c cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xa12f03ba cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xa999f960 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xac699d73 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x00d74b5a sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x02a7db1d sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x07983114 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0d626b44 sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x142d8601 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x16d82c06 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x3785cbd9 sdio_writeb_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x396664a9 sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x3bb0d1e4 sdio_align_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x525b214f sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x609720e6 sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x758cab0b sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x778d024a sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x92f9da2a sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x93694a02 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa7f445f9 sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa8447569 sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb92acac0 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xbd3878f8 sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xcd46ae50 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xce8a3da8 sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xcfec4f1e sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe74faebe sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xea8c11bd sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf3258c7c sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1cbc967e sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2af40d42 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x62fb747d sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6d07e328 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9b529403 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf7ca0a70 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x8c4920e1 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xa553db42 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xf323c817 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x27492956 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x757cde10 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xd84e1d3d cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x1390cd1a cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x5d64e2ca cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe1d2fc90 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xee3debb7 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xd6f34b87 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x8b4016d1 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x91ebc773 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0676c97a unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0f61e1ae register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x15048eb9 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2317112c __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3b496d6a put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x42147e16 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x498a9f0b kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x88c8a523 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa5dc369b register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa931b513 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb1219dd9 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbba57d08 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcb6df46c get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd172d4bf get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd4ac83a0 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdb3b150b default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdcd026a2 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe08dc2ff mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x16c9aa10 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x39b29883 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb4bd3225 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xedef3879 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x0323958b nand_lock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x050f9caa nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x0fe79933 nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x35c8e85b nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x5d101200 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x6ba07ddc nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xef0aa2ce nand_unlock +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xa888795f sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x35f14dfd onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x766e802d onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1ac1024f ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1fbaafee ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x594843e2 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6416806e ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6b4b1b03 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x754a9e11 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8641a421 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9ed0ba87 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa9ec6626 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc92a29f0 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd05621c1 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdba0ac78 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfe2e18e6 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0d6912be can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x577f87d8 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6853953d can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6c726ae1 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6ff773cc unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x716248dd alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7f9a8949 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x86a30314 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xba8c02cc can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf4d5b783 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf7cb2dd0 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xff20250d close_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x1c26e19c free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x25cfb517 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5f3ac4c8 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xcc08ab95 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x693e0044 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8bb5ad86 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x9ae6bb4d macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe43f7679 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe86c0138 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0ab5b7ab mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0e3490e1 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0f75b59f mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x18aac0bd mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1bd6e471 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x20396cc2 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x20aea73d mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2174d010 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x24a58522 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2920c83c mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2b9a0f03 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2de716f4 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x324355f0 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x36ca932e __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x514ef80e mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x578c9b65 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x58b82902 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5e9efd29 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x635831b0 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x65f1a855 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x672b277e mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6af503ca mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6db9747f mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6dc6023b mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x73aa533f mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7a07cf1c mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8db6a247 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9acb7ac2 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9ba0f0bf mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9d3d4ab4 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9d61e83c mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa366ccbb mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xab9136f8 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xabd97ca6 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb0148f5b mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb1fbdab9 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb20ff2c9 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb3d37726 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb46ad349 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb742651c mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xba5ec38a mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbc096a27 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd196fd97 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd91609b6 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd983237c mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdbb1ed8b mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe77d7526 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe8224d22 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xebc1aa08 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeccb8d4b mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf3108e0f mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf3146339 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf6030079 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x01c2abed usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xcb60baf2 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1852e890 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1982a670 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x329c6e99 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5e7b5e24 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8d20d53a rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9f9530d6 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0226445d usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0eb9c999 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x260fd456 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x45d0c655 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4fe9c262 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6116cfb3 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7234e19c usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x75596eb3 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x78125050 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7f0e403b usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x818204ed usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x84712874 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8e6b0840 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9598e0a9 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9762da69 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb02d793c usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb2206665 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb602675b usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcbec7800 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcdb2cf02 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd3d77d8e usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe3b89133 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf01c886d usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfd7e4d83 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x30458d4b i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x324982eb i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3841dd3d i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3d9a5ba4 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4213a4d0 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4a791738 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x653c22f1 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x82021f11 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8feb2bff i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x95b81b7c i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa04ef1ec i2400m_cmd_get_state +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaecc5b60 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb0e20e8d i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe75b7a49 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe7d20d79 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf3cfdfbd i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfea39e5d i2400m_set_init_config +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xff9065a0 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xc5a62a05 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x2dea7b22 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x753877ce iwl_alloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xb450f34d iwl_dealloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1438d895 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x19b35c45 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3029ebbb lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3b1634a2 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x606484d6 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6625cdd9 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8a2f86cf lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8cb19b82 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x970e7f6c lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa1260b79 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa87818ca lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc24b1300 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf638e540 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfb81d99e lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5806c4de lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x838e9b23 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa2224d04 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb8139907 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc301276c lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdcabf4b4 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe0cfeb26 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xec75dea5 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x28739a61 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x6d9881f5 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1b7efa86 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2cb2dd70 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5b7b1171 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9213c44b p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9af68af1 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc5b249b1 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe7a4da6a p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xeba0d510 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf47fdebb p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0692c5b5 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0e42ec04 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x12418b44 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x12efde34 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x249cce24 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x43cc6f57 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x446ec3b8 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5ccba570 rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x61c07cd4 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d7cbc70 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x89f88229 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x92d0df07 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae36c4f2 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaed1ef52 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc1918f35 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xceb1c7e2 rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd4b06f88 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd7d7475c rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd82b08cc rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe2205914 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe76633cb rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf54cbb07 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd685ca4 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd8f81fc rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0b562bb4 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0b6a5ffb rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x10a44aeb rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x15a18a25 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1cbd1327 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f48b4e2 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x28084634 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x289edbfe rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35273041 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x387cd4aa rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x42835bd7 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x439b4354 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4a0ea50d rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x561cb449 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x75fe23a9 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7810c4a4 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7b147600 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8545eacd rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8eafb84c rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9709ad5f rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb6ca1d3f rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdc07884c rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdd486dbb rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x03684608 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1e5537ca rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2bf23098 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3f78f1e1 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5e7dd8c7 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6a4ce58e rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7522c88c rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7a52d1a1 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa2419aa4 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x01df292f rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1a3e6367 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4fb67913 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6612c155 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x68e68e5f rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7f6c1c4b rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7f6fd5ab rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8b5b823f rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9d04b05f rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9e73990f rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa38dc861 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe784ca21 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xea9ea90f rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf3ac1d5d rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf542a95e rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfc51d79e rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x598b5741 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xdb49a6fb wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xf67af9ba wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x14bfccd4 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x3d956454 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x9e500c04 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xdf6c8dfa wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xed7e7653 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x62681669 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xb96dc4f2 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xda10f335 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x003998ab ps3_write_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x0bdf50c4 ps3_disable_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x0e622920 ps3_write_pm07_control +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x181e55ab ps3_read_phys_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x1bcb88c1 ps3_write_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x2abf1471 ps3_get_hw_thread_id +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x2b339635 ps3_disable_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x3c71a6b2 ps3_set_ctr_size +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x4a24996f ps3_lpm_copy_tb_to_user +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x50488f64 ps3_lpm_close +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x58e642c1 ps3_lpm_copy_tb +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x59c54782 ps3_set_bookmark +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x5eca6711 ps3_get_ctr_size +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x60e3f0d7 ps3_read_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x6702a28c ps3_get_and_clear_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x69010c19 ps3_set_signal +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x70177200 ps3_write_phys_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xa76ee01d ps3_read_pm07_control +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xaa190bc1 ps3_read_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xbb72a01c ps3_enable_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xce72c9c0 ps3_lpm_open +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xdddfc980 ps3_set_pm_bookmark +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xfae0ab68 ps3_enable_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x2d6a2f83 ps3stor_read_write_sectors +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x32d30599 ps3stor_setup +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x5fb03ae7 ps3stor_teardown +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0xd8ca693d ps3stor_send_command +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00290d28 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4b1dd1c8 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x78eb1c4c wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7beccbfd wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x95be2a12 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xcc8feefe wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x620720e7 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x67333ce9 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x76d8a435 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x98a2d030 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xb17884ef scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xb212b758 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xba1f9582 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb23f3dc3 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x11162de2 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1dd26dc8 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ffbb0bf iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2303df9d iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x326120ac iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34b71105 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x35d42d2c iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4136faad iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4bbe0d26 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50523693 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x55d8164a iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5970e1a3 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x652ef63e iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x667f414e iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x79d4b3f3 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x86289f6d iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x88777fc8 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90bff490 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x91ff5d11 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9274bf06 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9614cc4d iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa943542c iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbcd47c9f iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc31da354 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc797197a __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc7e8e399 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc9e3fea2 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcc5e70b3 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcd0f0401 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcd5c2753 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd1967bd6 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd32e40ac iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdfe5224c iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9b5241b iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf04fd723 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf51f9879 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf63278f1 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf7bba739 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf95afb04 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfa226536 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff6732e8 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffb55104 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2fd69e18 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x38940b48 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4f709922 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5eb424fa iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x770b968b iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8e307ee0 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa951b320 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb1f2ffb9 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbd7b8711 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc1749a61 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc480b691 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcab35f38 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd2b2933e iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe2206935 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe644b97c iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xebdf9815 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0c65d4dd sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x146c7c37 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1fb48dd6 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2e4707c8 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x32ef69b2 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x481f024d sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4d6a573b sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x65e87995 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x66a6764e sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x717bd79b __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x73c23cf3 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x75ec5bfe sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x91470fbe sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa0417d81 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbd79cd7d sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd085949e sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe1df9149 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe235b48e sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe7c47862 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xeaf41b56 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee89ae1a sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf140c733 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf7b7c7ed sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2659d141 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x5b3d6cc1 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x631a1f64 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb3a7a7ab srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb8bcb164 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf0354cc4 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1a690540 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1c24fe43 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2acdcece scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6b490c5e scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb36b262b scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc24d0b73 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe2c73080 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe5e1db09 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf6439953 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x380a52e8 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x43d073c4 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4a897820 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x619d83ff iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x68579f5d iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6f84ef3d iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7921c736 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7d1f269f iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7f9e4c40 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8cb0ee8e iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x95e23509 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x994ff696 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9b0284ad iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa6e27281 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xabd1aee2 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb0bbb7e4 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb6859cb5 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb90a52ed iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcd12e0ee iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdd788d76 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf9e73094 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfd07d7d1 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x1744e9be sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x280241e0 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xa8974e6f sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xcc17765f sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x06e45b2d srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2fd2b731 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5851f664 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x690e964c srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf98f4c6e srp_rport_del +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x67fd41f5 pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x88dde02f pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xbf69efc0 pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xd3298b9a pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/serial/serial_core 0xaf71a21f uart_set_options +EXPORT_SYMBOL_GPL drivers/serial/serial_core 0xbf9dbb5a uart_console_write +EXPORT_SYMBOL_GPL drivers/serial/serial_core 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x018fa246 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2c7a430b spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x3041673a spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x97693004 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x98565549 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xdac15aa7 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x5f5565c0 st_register +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x29a22259 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x5a14a3cf tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x689064b5 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2991f377 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xbfd90a34 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xfc91a72c uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x43a95ab1 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xd943e420 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x46ec7628 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x52ac165f usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5396f99f usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5e0519cc usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9ebc525e usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb3a421c3 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb8d999e4 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcf40ccf9 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf1f1acb2 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0cb51fa3 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0dd19a4f usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0de028b1 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x122060b7 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x209118fa usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x33e993d7 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4ea63d88 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4fe8b3d8 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5d2b3eb0 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6c971c0a usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9d9e5b82 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb8af9ec6 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xba852a66 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc100920d usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd665e150 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd89767f3 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdfc006ba usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xec4c5c31 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfef10643 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x101d42d6 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x29a7e140 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x34b95668 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3b22b151 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3fda1017 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6f7af457 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x73df86f1 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x76cb4d8f usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x80cc0369 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8b731d5b usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8e933137 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8fc3abdb usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8fd6e507 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa9b62a62 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbcb29ff7 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbd1adddb usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc6f44a62 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcfe7510e usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd725b148 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdced5faa usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe18a14ff usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xea8ccda3 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf9ed744b usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x849d5d3a wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x930d89fa wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x9da4d1a2 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa616a6d2 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xe00fea3e wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x197659a6 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x411798a2 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x44ac0d94 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x44c16a8f wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x571d1d5a wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5fd6a83c wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x670ee7dc wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6ef61c06 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa15ab86e wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb9718b6a wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc08bc96a wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xdf2b0d69 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe391d748 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf1718af5 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf92e710f wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfb928ba6 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x7e6ae922 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x95d8beb3 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xbcb442d3 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x43d081b3 uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x62a669f2 uwb_pca_base_priority_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x6f2c8a23 uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x766e0bc9 uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x81812d2b uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x869a9366 uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x9cf76dd8 uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xaab6fccb uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x3bdbcd3c umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x3d1293b4 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x47ddd933 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x7c0db76c umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9206882a __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb7decee8 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xba10ce23 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xf7e74f1b umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0306b818 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x048f3ec5 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0774542c uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x10764193 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2ee3862a uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2f5d38f8 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3aa659ab __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x42dad7d1 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47aeef63 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x486cf4ee uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4a579f35 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4e4f16b2 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x54ade960 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5b1328e0 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x78384a0c uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7f7b077b uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x80b02621 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cd05ba3 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8d6cc37a uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x949ccf09 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb07b3210 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb2ec1024 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbda46eef uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc2a124bf uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc663b10b uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc67b292e uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc76183d6 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcf004b45 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd36181c9 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd549c7a2 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd8470d64 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdc5026aa uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xde88654f uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdf91ca5a uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe47d2f08 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xebd93087 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf126b584 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xfb0aea67 whci_wait_for +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x013fd079 wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0282eecc wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1961f6cc wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x25869cb6 wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3169134e wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x334de69d wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3367d3f7 wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3a80c9a4 wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3d1bd60d wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x41bf8b8e wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4730a79f wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x48248ed2 wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x48640249 wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x520c4af3 wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6246c1d5 wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x67204e63 wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x69242e2f wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x69d23784 wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7567ea63 wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x935797eb wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa018ed76 wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xaa212ec6 wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xae01a993 wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc2df3437 wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd11c6e67 wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd4168a39 wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd627fa1d wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xde572433 wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe7ceb8f0 wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe9f8995e wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf4748ece wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xff2a48f4 wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x395ea341 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x54ccc5c9 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5d681984 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x602ecf7a ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xbb0f34c3 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc84ad0c1 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xda22ad87 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x13222e4d sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x8ca5b79d sis_free_new +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb41950c9 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x0ef2e7b6 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x9658b4fe unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xa37082c8 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xcf2d8637 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xfdfcedef register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x1e7a2524 virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x65070524 vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x6bbf05ea virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x7238ff9d virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x8157bbab virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xad5363b7 virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xe0c62322 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xe42be20b virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xf1ce7881 vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/w1/wire 0x1431c991 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2aa61413 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x330cb2f5 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x559163b1 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9820a4d3 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa1d3fe99 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xce65207f w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe0ee59de w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x40642740 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc9a95f35 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xca8a2231 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x60cbb491 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xdfab70c5 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x016213f7 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x1863b44a fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x2f900981 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x40959d85 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x41fb430d fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x4b91b9f5 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x51eade7c fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x594a49d8 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x64a266ad fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x792c168c fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x91bda238 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x9881fb09 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x9e1c2a30 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xa1df882c fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xccf80db8 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xdb90a26f fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xeb542a13 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xf7e09f7b fat_dir_empty +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8369ec0f nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x906e944b nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x98ebabc6 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xbb9eb25a nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf1e254a2 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x13612716 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xe01cd2f9 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x083014a4 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1abd4a10 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2961f52a o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2a1c6f94 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x49838650 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5cf9ce75 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf275cdbc o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x37631cb8 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5601551b dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5fa0c8bc dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x699819f6 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd6a95431 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd81fa63e dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x55169ace ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x8ed64370 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xabf0f6f9 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x4adca471 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x52fa2a64 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x58d8c447 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x9f419f64 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xcc8ef90e garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xd6a79911 garp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x859cf8e1 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x8d6fb0e7 stp_proto_register +EXPORT_SYMBOL_GPL net/ax25/ax25 0x4ac91a3f ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xa9609416 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00a9ebac dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x039623f8 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e4d3c0f dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3129d6fb dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x35d19c6d dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x37ac5666 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4b2104e3 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4b711c32 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e87be6c dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x619fb06f dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6483f958 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x74480aae dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75c6a3f6 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x77b042ac compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7d01bfb5 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x81adeb01 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9162fa6b dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x957df21a compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x96c8ae1b dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x97ee9716 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9ac4155f inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f2ff275 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaa4ece7e dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xad322e3a dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb648d59e dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb7ffc9f2 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0167eb6 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc279cfcf dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc8797b61 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcce76755 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd9aadc46 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc1e00e0 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe6c46c0f dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe8916173 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf0cf8e21 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8d1f97e dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x32cdbece dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x33520f81 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5e3f375f dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x85071c08 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xcf732201 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xfc5be51a dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xfc6d06af arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x5cf5d528 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xfc705da5 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x12e0740f nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x21ea1897 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x36f7cf02 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x48291aa9 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9e9c6b8a nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa0c32697 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xebdd0274 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf5a71279 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x45b03582 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x54c1bfb9 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x93c86b99 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x946fad7a tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfe497286 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x196d8b6e ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2a111fd4 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x31d97bad inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x35592191 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x38b6dc13 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x57657efc inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5dc40f43 ip6_local_out +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6e1fd3b1 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x70baaba1 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8c63dccd inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb0351f1a inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xcc4fc9b5 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xcf40d42e ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe3d1dc90 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf034b1c9 ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xd811f8cf ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0b38ecfc l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0fd712c3 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0ffd0de4 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4fa0ad73 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5a2b7256 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5ed4bd8b l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x60e291d2 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6fc92a17 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8127c461 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x88594131 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x95071673 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa2e90eef l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa672009f l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xafc2e38c l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb758f06a l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd9b7b7d8 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdd603142 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x0d3a97b4 ieee80211_find_sta_by_hw +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1c1fea56 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2add64d3 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x002e36c5 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0d5e65a3 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0dd5e154 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1461f4de nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14ce11d1 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14faaeca nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15fe6365 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ca6790e nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f9464f3 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2051fd34 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25694243 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26f87353 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ad23ebf __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2da20671 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e771d9c nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ede9ab7 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b46a5f0 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3c42deb9 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42daa643 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x48821e4e nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c6fd1c1 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d751536 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x516a1ce4 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54f19ae1 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55bb719a nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55c5327c __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58f5fdba __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b58a71e nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63a97813 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63dbf41f __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ea48472 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7bcfea1b __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x805bad6f nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81ba8791 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89be471b nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f4aac94 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90a4f2fa nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e81d9ea nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3b403e1 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa4083b77 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6829107 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xabe77b2b nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb05c4b2a nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb3ad3bcd nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd5e362e __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe7a8163 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf0772d4 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1a3f133 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc55b4b21 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcc5c469b nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd0a8240 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcdbf3431 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4f620c8 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9b39712 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdac1194a nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc85108a nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe279f2bb nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6a6147a nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xefe10103 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf94fb99f nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfaa3f01d nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x8fcf65a4 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x60e00800 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x04942c43 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1a949924 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2f1c7c72 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x44b80a41 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9a6ed24b nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb53f2fcd get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdd34fb96 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe53baa1c set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe83e4059 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf83e137e nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x7e5b1ab7 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x126e27f9 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x590790c1 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6f526250 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfc7edab9 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xd82a1432 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xfe505700 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x008966f9 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0c8a2846 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1306c530 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3a5a3b90 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3d00aea8 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x56e0ab3d nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x87a9a8f5 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x90325655 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x997b9683 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xac529ef1 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc245cd6a nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc83eb832 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe52fffc3 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x525479d5 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x8e595723 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xb0c05cf3 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x570b1482 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7d2d4e43 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xceced879 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xde84decc nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe8603e82 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf2e6845b nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x9047d24d nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x06d4b661 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0980dafc xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0cdf7004 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x25e38ec4 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x261446d1 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x496f14a8 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4bbacc2e xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x50177edc xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f0f2776 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x601a3e11 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x684694c5 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x69c3dfee xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8f894f12 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x918dcbc0 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x95dd46f2 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa9c0d8bb xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaa6f4fc4 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc87cae2b xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd2478812 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd30c396d xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfbe463ba xt_proto_init +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x120932f0 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x6778f5a7 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x56286cdc gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6f334e76 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x767c7887 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7d4c7a18 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x85cd5a91 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x87b66587 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x89e612b9 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa2c18ece gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcacc2ae5 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe3958d16 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xeb7a3369 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x002c4c77 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x007be7f1 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00e583cf rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01289809 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02216eb2 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03f68d38 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x040049dc xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05ec2354 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07abfde4 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x089973f2 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a94981b rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c2d145d svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cb30e73 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0da865e8 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x115e7ec2 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x149da2cb rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14c9a8f0 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x165036f3 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1965ef31 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ece720c xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22d90bb4 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2626c9ff rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27588c4f xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27fa2b34 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2869511a svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2905647b svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c052124 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c83e16d auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2cf72906 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d49ced9 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2dbc19d8 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e40b983 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x322e3baa svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35823cae rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37276159 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3831aeea xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3846b961 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39d2306e sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a33d96f svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b688e7f xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c4c19a8 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d8753ee rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3db9aa33 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3eac8e43 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x455cb65c rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47009a70 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x476dbb9b cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48ec69ff xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b135bfe svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b7146d5 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ea3f97a xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50001e30 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x578a3300 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58882088 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b73dc60 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c4c98ee svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c81f5dc svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c955934 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e22eb49 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fff0adc auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6194b68e rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6357b4d8 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6478b357 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64a49780 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65974402 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65ad30bf svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d28af2b rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6fea752b rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74d8acc3 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75b0cdaf xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75c6d2b5 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76b35488 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76f05c42 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e8a512d svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fbfb45d xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x800d0227 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81c32b30 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x843706cb rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86504049 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87303d87 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8842c02b xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b394d8a rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e681feb rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f6b987d rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f8601f5 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x925a33c7 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c079006 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e1fd222 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f377f05 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1729253 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3bdccb9 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3d40556 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa438a464 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4d44f7d csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6dec430 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa68e8fb xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaab4c751 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad61acfc rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae432b10 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1553cd9 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3795412 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb54d1abf xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb602f903 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6d130f5 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb73c20fd rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaa1e76a rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbf8361d xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe6f71fe rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf99f58b xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0ca64f6 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1710dd3 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc19bf03c xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc82597bb svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcafb4a63 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccd0e2ae svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5f58d92 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8e8c78e __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb8dd86b svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdca7dbd4 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd6befb0 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xddbac968 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdec6b9b9 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe41d6e8f rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe65919f1 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7755ed1 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7762dc4 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe92d5130 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb28bcac svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb3a3415 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xece3368d svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee2a20ac svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0bbdb0c svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf201b6a6 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf87291f9 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9de7222 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfccf93fc sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd61a669 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdda5f9c xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff173450 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffa58fd3 xprt_register_transport +EXPORT_SYMBOL_GPL net/wimax/wimax 0x148d50ad wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x27d12879 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5849afc5 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x59fc5ade wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5d1eedfa wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5e226972 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x69761b5d wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6af1d4d1 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6fbb89c2 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x88c50d46 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x9d42cab9 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xba79473e wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf66425a5 wimax_state_get +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x185fdd0d cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1af6aae1 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2a676a46 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2b60966c cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x32544af7 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x52a5b161 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6782b207 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x68c4b690 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x91567e84 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9180055b cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x983db222 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9c101098 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa1b2fd03 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa4fbf19d cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa96be45e cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xafc59c4d cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb165e077 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbf4dc194 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbfa3b3ca cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc10dc08c cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc34b0ef0 cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc357fc06 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc5a2dd07 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcceeda4e cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd7002a2d cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdfed18dc cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe328a646 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe36462f5 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe53caa44 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xeb9ea9f8 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf070599b cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf67f404c cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x18fab5f5 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x5a7eeb4d ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb0abcbe6 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc75caa3f ipcomp_input +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x0dcf1eb0 aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x12229bf2 aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x1c5339b6 aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x312f8056 ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x5c9b197b aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x7b76b6e1 pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x9586fab9 aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xbc2b3ac8 aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xddfdc717 aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xfa9fd189 aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x03419040 soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x0fb9bd73 soundbus_add_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x40222536 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x474bec02 soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xc635cc3d soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xf4ffdcaa soundbus_dev_put +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x248dff74 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x3bfbe0b7 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x47e8e088 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x6aa78714 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7cbc0d97 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa55011e1 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05ad81a6 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05f54afe snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x082a4e1b snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ac21148 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10aad48d snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b446326 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c108798 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21a4f3d6 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2201dbee snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2cd70c3f snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2dacdf7d snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30260f30 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x338a9e62 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33a19b57 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33d34069 snd_hda_eld_proc_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x361515b8 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d5aa778 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d7bc485 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e52f736 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41884346 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41ac5a93 snd_hdmi_show_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x42d4dc73 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x432bf032 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x454a9b27 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4637728f snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46522eb3 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x470ea296 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48d0efe3 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4bdeba7a query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c2a615d snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ca30014 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d37ab3c snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fc057b7 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5045dd0f snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x518539d8 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52e66e7b snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5717e113 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d549667 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5e0dc9fe snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5e6a6e70 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5fcd2d29 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61177522 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68492aca snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d068180 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e7b6aba snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6fba36a8 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x73ac3978 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x73b07ef2 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x775f3ca3 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x785e6ccd snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7869a614 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7de5e24a snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8230c5d5 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ac2c7db snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91a5413b snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x96a21f52 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98aca82b snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a25f467 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9af9fa58 snd_hda_eld_proc_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ed17f8b snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0792324 snd_hdmi_get_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1fc75db snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa270287f snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6a61625 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8c2fbf0 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaad4392c snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5267a0d snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6214f9c snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb65d5348 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc8a85c8 snd_hdmi_get_eld_size +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbfd4c17a snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc161c0cc snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc371579c snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc83b5e09 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd2c6af6 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4770333 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd92e7476 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc876cea snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe1dc4a92 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe27b3af0 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2d0cead snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4f37a62 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5b903c5 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf84e641e snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb673fbf snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfdacdf73 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfee112c0 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff74330b snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x83a2c6bb soc_codec_dev_ad1836 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xc405abff ad1836_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x31a564d2 soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xba7b88b6 ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x4243e01e soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x723f470c ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x2375bb71 soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xc23aa1b3 ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0xe5d8fe0f soc_codec_device_ak4104 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x0712d787 soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xe58e9a89 ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x5fa9f82b soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xb3a3935c ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x04dffb6f ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x76c215b1 soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x27dc5eed cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xeab345f6 soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x5035b904 soc_codec_dev_da7210 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x77e11344 da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xd20b886d max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x5855ba24 soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x6d78b802 pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x317a4ba8 dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x2058e8cb soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xc8ae0deb ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x24b70385 tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x759c1539 soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x0b6031a5 aic26_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xd00a53cd aic26_soc_codec_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x05d755fc aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x16ae489c aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x26be84ee soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3c9aa197 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8cc9f31e aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x93e12895 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb4649f3a aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x14e3a57c soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x2ec0db6f dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x615e7725 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x41c25499 twl4030_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x8fd560c3 soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xc129214b twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xf05a2526 soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x3dd551e2 soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x7fd73aaf soc_codec_dev_uda1380 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xf382214e uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x8bab9603 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x8cfc2231 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xfd8cd3b1 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xa96e1e5d wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x0be4ddfe soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x285be638 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x2cf99414 wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xbbe38081 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x7404b2aa wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x90f827ac soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x6e465044 soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x8fb597c8 wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x38c9fffb wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x472dbdde soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x61976bcb soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xe52380db wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x06cc4310 wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xdd54a98e soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x66fbf25b wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xed0917d6 soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x0ed0ac9e soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x102b0845 wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x91535239 wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xded07de0 soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x39dfb4a6 wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xc3463013 soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x484ffa8f wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xe86b63d0 soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x969843fb soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x97fe9ac5 wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x255285cb soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x7e6d8933 wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x0e7fd608 soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x92f9d18a wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xf8f9fb9d wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x413e40cf soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xe5fccb25 wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x225b2d17 soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x8a22ad20 wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x5eeeb365 soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x7c983727 wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x1dbdbc09 wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x21dff979 soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x38c4c838 soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xd6e16fac wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x3906a20f soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x70966418 wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x205bf5ab wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x4471564a soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x579935d0 wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xe8c41946 soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xa1d14539 wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xe3985e7b soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x2a83be44 soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xebf5cce0 wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x01aeed87 soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x6d61be4e wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x284cb2e0 wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x4eef7b40 soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x5f5c3020 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x72328308 soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x8eea1b99 wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x6aebd87e soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x013f91c0 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x047d6ddd snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x059084bd snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06508274 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b1d7174 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ead6f17 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14133e66 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15429107 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e4364dd snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ee246dd snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ff875fc snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20da94f5 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2269c9cc snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x243a716d snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x249dd910 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x254b0119 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x266a9ab7 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x28e41b14 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b80f3d3 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3104cbb7 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33112fc3 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a336388 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3deededf snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e5945b6 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4393ea3d snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49743b7a snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e62da79 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x51d8e1c8 snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x581525db snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58a4022d snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b70ca28 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b8dc160 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5cbf715c snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e30410b snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63be60fc snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x68d95614 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x692c2fe3 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a10976d snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a75249a snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e837634 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6fe7180d snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71b31c0c snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72bdf8c1 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75d939dd snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7cbca663 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81233837 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81c348be snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84467cde snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84c92a2d snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x888cec93 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8938b777 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f425305 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f448c30 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97858c41 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x995ebdd2 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f2d83ad snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3a786c4 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4bd47ae snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac9726f1 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0f635cf snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb27140a3 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2860343 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3ce8959 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5662ed6 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6480737 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb8014925 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbda1923e snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0608e0a snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc78950e snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3eca8c8 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd54c420 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeea06879 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf19f7811 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf76321d6 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9e666ac snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa87a2fc snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfdeb5ca1 snd_soc_jack_report +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x1eb241c2 xv_malloc +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x48396591 xv_destroy_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xa4593725 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xc3730252 xv_free +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd575dcd5 xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x003cae0c filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x007f386c ide_capacity_proc_fops +EXPORT_SYMBOL_GPL vmlinux 0x009d6f72 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x00a28a83 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x00a654ce class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00c770e0 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01338ea8 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x01431337 pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0x0154dc63 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x016358e2 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x017645fb platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01d1c7cd sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x022d066f tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x02378305 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x02516bf8 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x02cbd097 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x03042e04 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x031fc3c0 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x0342c767 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0344b7ee wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x03463534 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x0369a577 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03ee67f1 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x03f78630 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x0422428d console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x042879e5 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dd9a2 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0545966c adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x056054c1 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x0573d39a sff_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0x05a89413 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x05e60f0c usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x05e8154d platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x06033bdb __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x061192de ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x06359d44 fb_sys_read +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x064dd723 ide_host_remove +EXPORT_SYMBOL_GPL vmlinux 0x064efea5 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x0696dec4 ps3_system_bus_device_register +EXPORT_SYMBOL_GPL vmlinux 0x06d71574 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x0710956c spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x072ca594 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x074587c4 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x0764e9d2 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x079a781d debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x07aaebba wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x081c7e56 of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0x0831346b debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x0841b3a1 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x08857f5c pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x0890434f ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x08c38ca4 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x08c3f00b __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x09085802 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x090b9a3a inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x094595c4 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x09ba3ac0 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x09bdab28 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x0a047445 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x0a2867d5 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a6b9104 ide_error +EXPORT_SYMBOL_GPL vmlinux 0x0a6c1454 cpu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x0a7bc583 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x0aac80b8 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x0af93165 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b38b44f shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x0b82f6fe pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x0b9cc7c4 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x0bd3ff30 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x0be61db5 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x0bee61d0 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x0c05687a i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c4b4d6a __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x0c68a086 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x0c71dfb5 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x0c898d7f ide_pci_setup_ports +EXPORT_SYMBOL_GPL vmlinux 0x0c97a456 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0ccd57f5 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cf5646d usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x0d0ae8bf ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x0d26b85a generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x0d32931a user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x0d3f9f1b ide_output_data +EXPORT_SYMBOL_GPL vmlinux 0x0d43e5df fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0d985181 ide_host_register +EXPORT_SYMBOL_GPL vmlinux 0x0db16216 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0de738fa sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x0e2b2455 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x0e386705 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x0e5927ca regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x0e67c69b __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x0ea9126b tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x0ee3abdb blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x0efe4b1c usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x0f02aaf0 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x0f0d359d ide_dma_lost_irq +EXPORT_SYMBOL_GPL vmlinux 0x0f7fc9ba ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0x0f8725a3 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x1005d713 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x106febcb pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x10760cb2 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x10c81e1a ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x10e32744 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x1123332b crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x113deec5 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x11788404 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x11860d0d crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x1237b723 spu_switch_notify +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x1254294c blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x1299e2a5 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x12f92da7 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x12fc25a6 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x13245e9e __add_pages +EXPORT_SYMBOL_GPL vmlinux 0x13298bb5 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x1333d8b3 ps3av_video_mode2res +EXPORT_SYMBOL_GPL vmlinux 0x133970ab rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x133a071a inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x134a0f17 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13b30a60 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x13ddbb2f usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x13ebe7d1 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x14275576 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1430bef1 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x1446e96b bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1467fde5 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x146b90c4 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x148ac64f __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x14982992 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14a7f7bf ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0x14b7edd0 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x14d0d736 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x14d16aad inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x1519e49e pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x152991f0 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x157c0378 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15991b91 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x159abb63 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x15b48103 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x160b45ab class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x162b8a37 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x162d6233 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x16362a48 device_del +EXPORT_SYMBOL_GPL vmlinux 0x166344f8 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x170c8119 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x170ecde5 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x17172074 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x17183d67 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x171b4a4c ide_pci_init_two +EXPORT_SYMBOL_GPL vmlinux 0x179edf97 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x17e2b201 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x17fa67d9 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x1842ff1e ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x187ad73c ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1881811b transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x18bd1154 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x190afcd3 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x193a55c4 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1986bfc8 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a6c6ad blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x19b0bc71 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x1a0940a1 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x1a190a53 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a44af8c sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x1a67de22 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1ac717e3 ps3_os_area_get_rtc_diff +EXPORT_SYMBOL_GPL vmlinux 0x1ae3be99 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1b22cec2 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x1b89f1a4 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x1b93dc1c hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x1b9664d1 __destroy_context +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba1583b ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x1c26bef0 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1c2b48ac ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x1c4e0906 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1c63ae73 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c9f4ba9 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1cc89168 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x1cd3944a sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x1cd78523 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x1cf8e5e2 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x1d2c24ea rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1d83bccb wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x1d86638b rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1d925467 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x1dce4364 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x1ddcf566 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x1de2c197 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0x1decb228 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x1e2205d2 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x1e3d646b raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e991663 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1f299f0d led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x1f770fdb init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x1f904bde dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x1fab9237 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd9bfe6 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1fe970cb ps3_io_irq_setup +EXPORT_SYMBOL_GPL vmlinux 0x1fef4d62 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x20124348 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x20192fa9 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x204ce656 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c41b59 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x210eb891 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x211850f5 htab_hash_mask +EXPORT_SYMBOL_GPL vmlinux 0x216bb4dd file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x216ec600 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x2170fc31 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x217ae259 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2190316b ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x21aeb3d5 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x21d47ca2 ide_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x22493347 ide_queue_pc_tail +EXPORT_SYMBOL_GPL vmlinux 0x224a7da1 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x225ce088 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x22623319 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x2285200f usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22edaa1e spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x231d132d ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x231ffdce regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x233aee50 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2398ef6d hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x23a535ed pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x23d78ef6 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x23f0f637 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x243bd3bb sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x247680d7 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x24b3ad40 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x24cda041 ide_vlb_clk +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x250132b0 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x254e310c ps3_os_area_flash_register +EXPORT_SYMBOL_GPL vmlinux 0x25934ff3 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x25bb293d blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x25d0ac29 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x2645c0b8 spu_set_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x27acdfea ide_dma_test_irq +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27b266f2 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x27c64b33 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x27f8f3c2 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x281881a4 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x2897e6dd __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x28ad87ab __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e17cb1 ide_pci_set_master +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28f2a6d1 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x28f9148a usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x294f3ab8 ide_device_put +EXPORT_SYMBOL_GPL vmlinux 0x295c4d7b da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x29f08604 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a37b1a4 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x2a4133e0 inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0x2a4f150f ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2ab3ab41 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x2acc74ec sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x2ae8e94c scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x2af5c0e4 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x2afbe2a5 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2bb167e7 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x2bbe4a09 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x2bcf75fe ps3_vuart_read_async +EXPORT_SYMBOL_GPL vmlinux 0x2be075b1 ps3_gpu_mutex +EXPORT_SYMBOL_GPL vmlinux 0x2c0eb752 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c22e5bf crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x2c2b3e43 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x2c3e61e0 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x2c4b061c devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2ce8138e adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d6f8310 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2ddee4bb usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x2e057b23 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x2e38afd1 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e58fae2 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2e7877a1 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2ecb62c9 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x2ee2e64c da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x2eebbfaf ide_read_altstatus +EXPORT_SYMBOL_GPL vmlinux 0x2f38af26 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f48d1ea pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x2f7b9baf crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x2fc30869 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x30100027 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x302d146d input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x30301151 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3056e03c trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x308b1773 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x30e6db8c cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x311b78c2 ps3_get_spe_id +EXPORT_SYMBOL_GPL vmlinux 0x311cbc4b proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x3189ae10 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x31e6007d wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x321e596d xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x32469f39 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x325bf001 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x327ce252 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x327da194 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x3286804a wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32f7bb19 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x3309ea64 ps3av_audio_mute +EXPORT_SYMBOL_GPL vmlinux 0x33353415 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x33361566 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x33751f9e trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x33adef3d debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x33d29243 of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x34059cd2 spu_get_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0x340e1e5e vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x3423a383 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x351bbea8 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x35c5e708 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x35ce0762 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35e7a850 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x35eeaa88 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x35f277b2 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x3612bba2 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x3619b369 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x363ad226 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x3656ba9e unregister_spu_syscalls +EXPORT_SYMBOL_GPL vmlinux 0x36814cbc regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x368c0a02 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x368c23a7 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x36cdcfdc blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x376bbf67 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x37a457e4 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x37e1cd00 input_class +EXPORT_SYMBOL_GPL vmlinux 0x381c38d1 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x383c562e led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x385ab25f do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x387fcc2e kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x38992ef1 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x38c774b7 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x38d0e762 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x38d537b1 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x38ea354b regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x39288087 ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0x392f328f ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x393ef1d1 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x396bfcde devres_get +EXPORT_SYMBOL_GPL vmlinux 0x39d7bb0a usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2fb7d0 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x3a65a5c3 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x3a7ba596 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x3a8150a5 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x3b1c5afc ps3_vuart_irq_setup +EXPORT_SYMBOL_GPL vmlinux 0x3b2a0b7d ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3b666cf3 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x3b6f69ef usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x3b747fe9 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x3b9179c7 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x3bc5f79d class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c1f5727 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x3c2c4ad4 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x3c67d5d8 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c97ada9 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd559c6 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4e4c6b cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3dba5d69 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x3dd15556 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3e102af5 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x3e21421f device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3e7252b8 ide_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x3e771d51 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x3e8f36e1 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x3e9b669d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3ea8e5a6 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x3ee4722c usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f242e26 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x3f2a2089 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3f333cab usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x3f525eb0 ide_read_bcount_and_ireason +EXPORT_SYMBOL_GPL vmlinux 0x3f8ec7f7 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3f9cd210 ide_host_add +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40450c4e debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x40472e03 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c54fcd enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x4109fca2 do_rw_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x41389212 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x415f6671 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x416be526 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4180ddd2 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x41b1aaf7 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x41bb8d88 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x41fae85c tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x42030077 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x4217f493 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4224c752 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x42358e1c tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42586ec1 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x429a6b5a skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x42a3bd8b class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x42ed661a cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x42f5dc0a ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x4301ba70 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4308a4b6 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x43154a53 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x433a2dfd crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x4364d85f fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x4369279e transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x4386bf93 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x43953683 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x439697b9 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x444103a6 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x446ad053 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x468d1abe pcibios_add_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x469af778 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x46d83a76 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x46d9f955 ps3_irq_plug_setup +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4741db42 ps3av_set_audio_mode +EXPORT_SYMBOL_GPL vmlinux 0x4744242e ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x476a5e72 ide_write_devctl +EXPORT_SYMBOL_GPL vmlinux 0x4793d5ad cbe_spu_info +EXPORT_SYMBOL_GPL vmlinux 0x47acddea ps3_sys_manager_set_wol +EXPORT_SYMBOL_GPL vmlinux 0x4844c383 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x4868fd89 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x4874b7f6 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48a4d15c ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x48a54b94 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x48fca46e usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x4905ebda debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x49126a62 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x49888967 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x499aceb4 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x49f3508b inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x4a1d9437 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x4a37127d sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x4aa71dc3 account_system_vtime +EXPORT_SYMBOL_GPL vmlinux 0x4ab4cf10 ide_dma_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0x4ae2d030 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x4b2be673 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x4b41b3af ide_dma_sff_read_status +EXPORT_SYMBOL_GPL vmlinux 0x4b48b294 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x4b8409fe pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x4bb24f02 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x4bba4701 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x4bcda0d8 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x4bd3ac60 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x4bf4a86d srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x4bf7ebe2 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x4c03a0e6 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x4c18f773 ps3_os_area_set_rtc_diff +EXPORT_SYMBOL_GPL vmlinux 0x4c1be670 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4c2a3b6c task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x4c319f89 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x4c3509fc blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x4c367453 __ide_pci_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4c367459 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x4c4eec0f lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4cc5daa2 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x4d05feeb inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x4d078999 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x4d5e93d9 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x4d762488 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x4db31a5e nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x4dde69ff fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4e235e42 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x4e2d8c8c ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4e4c4f52 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x4e7a7bb6 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x4e818228 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x4e87aba4 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x4e95ab69 ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4ebd1703 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efe7bb2 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x4f4ff39c device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x4f5a7612 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fcd55c0 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fedfc6a usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x4ff82508 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x501cdc56 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x50330b2c ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x504b4af8 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x5052671f __module_address +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x50fe34f5 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x510bf12d sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x511c8592 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x513121ec ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x516b04e5 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x5175a059 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x517d2859 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x51b9a397 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x51c34a5e cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x52191d51 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x52874978 ide_pci_check_simplex +EXPORT_SYMBOL_GPL vmlinux 0x531d14f4 ide_pci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x535b5c75 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x536a5d55 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x5379a66f class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a810a2 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x53d3294a queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x5401b584 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x541fac40 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x545a5e96 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x545f1489 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54634849 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x548e628b platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54973ac2 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x54a390c2 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x54b398a3 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x54c3abb9 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x54c448f8 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x54ecc746 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x54f86e5b power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x55337b3d ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0x557575b0 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x55bfa331 device_register +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x5605f406 pcibios_map_io_space +EXPORT_SYMBOL_GPL vmlinux 0x561d5d67 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563aeb02 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x56519931 spu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x5656791c sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5669c955 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x56845a9b i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x56b0401d power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x56bc36a5 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x56c47944 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x5711dd38 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57d2a2f5 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x57e2bd60 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x581af42d invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x581da991 spu_priv1_ops +EXPORT_SYMBOL_GPL vmlinux 0x582eb608 ps3_open_hv_device +EXPORT_SYMBOL_GPL vmlinux 0x587079f4 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x58d1cbea regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x58e503b7 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x58f33bc6 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x5910972d pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x59867199 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x599c386e ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x59f30f59 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x59f7bb09 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x5a21bf5b usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x5a571bb1 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x5a732487 ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a93d6a3 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x5ab36709 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x5b0367f3 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x5b24522a d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x5b48f3d9 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x5b4dfccc pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x5b6c0cda driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x5b7a07f7 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x5b8cb67f inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x5bd0362c pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x5bd74380 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x5be5634c inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c123297 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5c151067 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x5c1f5560 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x5c769277 tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0x5c836e9d find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x5c838d4b driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5c86778a ide_retry_pc +EXPORT_SYMBOL_GPL vmlinux 0x5c8dd8a8 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d2951ed noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x5d368ab2 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5de53383 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x5e0e59d4 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x5e1ba98f ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x5e1e5fad ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5e30ce5c ide_check_ireason +EXPORT_SYMBOL_GPL vmlinux 0x5e47260f regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x5e491d3b usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x5e65c8b5 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x5e769986 ps3_os_area_get_av_multi_out +EXPORT_SYMBOL_GPL vmlinux 0x5e833a73 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x5e9fac44 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x5ee7542e reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5efff72a blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x5f0a1f2f fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5f2e4842 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fef69eb usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x604a4972 pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6064c317 ps3_close_hv_device +EXPORT_SYMBOL_GPL vmlinux 0x608a9b22 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60aaef74 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x60be7d1b tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x60e0bfd3 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x61140e78 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x6123d702 ide_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x6131e0c2 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x618fe113 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x619d6131 ide_host_free +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x6248ed3d wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x628a7a43 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x62980716 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62a3a276 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x62e28d3a get_driver +EXPORT_SYMBOL_GPL vmlinux 0x62f57c59 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6301bf8e bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6306b10b register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6377d40c register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x637e43a3 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x63f5898d scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x643f9bac rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x6462d31d usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x6484efe3 pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0x64871222 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x64915ac9 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x64c783af tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x64c7e7e1 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x64ebee0a transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x65521e7b ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x657c572d get_device +EXPORT_SYMBOL_GPL vmlinux 0x6581ccf6 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x65a63d3f blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65e328e7 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x661c510b rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x664ff25e zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x666f6d34 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x667a812c ps3av_set_video_mode +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6694eb56 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x669f3032 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d4170c inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66dba025 macio_find +EXPORT_SYMBOL_GPL vmlinux 0x67098ef3 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x67219d93 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x67240538 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x67449725 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67ba19fd pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x67ebbea6 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x67f684c0 pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0x680cf588 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x680d4e14 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x68276e2b usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x682ec0ba ide_read_error +EXPORT_SYMBOL_GPL vmlinux 0x68545161 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68757bf1 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x688d3ee0 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6892baa8 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x689d0f8e ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x68ea52f3 pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0x69790ef6 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a3796f3 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6a58f58c vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x6a598aa0 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a9c5bd5 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x6ac9ae83 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x6acb8d84 ppc64_caches +EXPORT_SYMBOL_GPL vmlinux 0x6adf2df8 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x6b0de2e7 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b370431 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6b433651 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x6b481070 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x6b6f93f7 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x6b787750 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x6b8184ef cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6bd970d1 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x6be46227 ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x6c16efe4 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x6c3a22a1 pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0x6c3dcf46 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cbd6152 spu_init_channels +EXPORT_SYMBOL_GPL vmlinux 0x6cd7f0c1 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x6d238c7a br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d455f10 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x6d527118 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x6d5b964e __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x6d7d3fcd sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6d85228d aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x6da55322 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6ee9f5a7 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x6f035b9d platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f25f870 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x6f9f1f86 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x6fb90cc3 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x6fdd1800 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70011a77 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x70288b48 eeh_add_device_tree_early +EXPORT_SYMBOL_GPL vmlinux 0x7059ccf8 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x7078c6ea eeh_add_device_tree_late +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x7086369d shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x70993e08 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x70997d07 of_node_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x70ad3fc6 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x70ed2802 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x70eee0b8 cvt_df +EXPORT_SYMBOL_GPL vmlinux 0x711d907e fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x711e3130 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x714c85a8 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x714d0afb usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71b0ace3 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x71e01014 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x71fe3e95 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x721f1b55 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x7228fae8 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x723cdef1 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x728cc4a0 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x730dd6f8 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x7394e3ac ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x739c4910 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73a9d6a8 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x73d34304 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x73e83212 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x73f5fd8f usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x7440c936 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x744665ed register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a48b00 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c5bc6f crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x74c8c1a3 spu_associate_mm +EXPORT_SYMBOL_GPL vmlinux 0x74cf28c1 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x750810a3 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x751b2d68 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x75370e19 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x75392179 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75e6e037 hash_page +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x76377b43 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x763ce8c6 sysfs_remove_device_from_node +EXPORT_SYMBOL_GPL vmlinux 0x766b454d force_sig_info +EXPORT_SYMBOL_GPL vmlinux 0x769fd8c7 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x76ef5f6a cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x7728ccbe crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x7749372a sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x7799f244 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x78278760 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x783c5e2a ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x7847d32b dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x784bfff3 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x78581eb6 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x787e4c2b blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x797c385a ide_issue_pc +EXPORT_SYMBOL_GPL vmlinux 0x7985fc29 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x79952da9 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x799929e7 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x79ac2339 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x79b045ac platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x79c36e1c inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x79c629fb adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x79e335ec blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x7a562ed5 spu_invalidate_slbs +EXPORT_SYMBOL_GPL vmlinux 0x7a7bed8d crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x7ab6655d ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0x7ac3bb5b sysfs_add_device_to_node +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7ae8a3fb crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7aef927d rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b4ee503 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x7b905c9f spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x7bd58c1a pcibios_remove_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x7bef7116 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x7c1248a2 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x7c5a0dfe platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x7c6b8d30 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7c73dda8 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7cc208a3 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x7cda21f3 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x7ce8baad blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x7cf7b76b device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x7d412c35 ps3_vuart_cancel_async +EXPORT_SYMBOL_GPL vmlinux 0x7d418ea4 pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d7be0b1 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dfe3333 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e2d29ec ide_pci_clk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7f153aea regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f1fb480 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f52c522 ps3av_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7f67c707 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7f7f5e14 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x7f9bdea9 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fba2584 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fc406b5 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x80007cb7 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x80507f72 ps3av_audio_mute_analog +EXPORT_SYMBOL_GPL vmlinux 0x80654651 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x80881ae1 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80917008 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x80a39710 inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x80f3ba2e debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x811497b9 pcibios_unmap_io_space +EXPORT_SYMBOL_GPL vmlinux 0x811bd068 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8124026e dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81609860 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x8171fefa dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x81f7745b ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x81f796f7 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x822b1ede pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x824e19b6 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x826d7324 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x8285eb4c tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82b7668f scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x82cb0000 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x82d4aeb8 ide_device_get +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e652e4 tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x82f17747 device_create +EXPORT_SYMBOL_GPL vmlinux 0x831b76e7 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x8334b170 spu_setup_kernel_slbs +EXPORT_SYMBOL_GPL vmlinux 0x8367da13 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x838e70b2 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x8394eb4b class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8395e702 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x83e8fb04 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x83e92471 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x83ec4106 ide_dma_sff_timer_expiry +EXPORT_SYMBOL_GPL vmlinux 0x8457a2ad usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x847af60a ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x84ae3d34 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x84c0fe15 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x84ef9755 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x8553068e ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x8557c363 ide_dma_end +EXPORT_SYMBOL_GPL vmlinux 0x8595347e find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x85a9415f crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d78fe2 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x85f46f2f dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x863c6763 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86f1e7d1 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x871b581b vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8760c19b ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x8769bf1d inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87c63e9b cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x87cc6f1b ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x87ec1d83 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x8808821b register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x881b4bd2 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x882780a9 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x884741a6 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x8884f185 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88c84622 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x894b7331 ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0x8952994c bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8955274b sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x89793abb sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x8996cd51 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x89c00a2a scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x89da1d62 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x8a31b110 cvt_fd +EXPORT_SYMBOL_GPL vmlinux 0x8a590c4c bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x8a6f0e93 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x8aad42e1 ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x8ab1717d fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x8ad926e4 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x8b2712b8 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b9b8b66 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x8c0992ec ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x8c7a354f tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x8c83b95d find_module +EXPORT_SYMBOL_GPL vmlinux 0x8cd8c859 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x8d1a481f eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x8d25cae9 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d55bd19 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x8d679361 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x8d6c2b4f pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0x8d92637c unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x8da9c83f usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x8db1e9a9 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x8e0a4b60 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x8e4e5d47 device_move +EXPORT_SYMBOL_GPL vmlinux 0x8e4f0386 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x8e70a4e4 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x8e7df1d4 spu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x8ede1ebd fb_sys_write +EXPORT_SYMBOL_GPL vmlinux 0x8ee62b43 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x8ef21aeb pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x8f3ccc02 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x8f4cab63 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x8f53be33 ps3_mmio_region_init +EXPORT_SYMBOL_GPL vmlinux 0x8f6a35e4 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f6e2e19 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8ff25f9c ps3_vuart_clear_rx_bytes +EXPORT_SYMBOL_GPL vmlinux 0x9044d9be crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x90673390 spu_switch_event_register +EXPORT_SYMBOL_GPL vmlinux 0x908f2f71 isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x91311015 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x91433d1e sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x91a60f15 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x91b4efb8 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x91d8938d shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x922f823f pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x9283f7fd pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0x929a827b transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x92a860c2 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92dabdf1 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x92f5512a fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x930316c4 slice_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x93688ff8 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x943b29bd vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x94833f03 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x9488b1c8 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x948ca1dd rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x949131b0 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x94a2c7a2 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94e43939 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x94eabe58 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x953cce0e cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x953d7407 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x95460da9 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x95560db0 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95f45579 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x960eafe4 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96b04fac usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96db6047 user_match +EXPORT_SYMBOL_GPL vmlinux 0x96f6ad26 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x97011251 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x970c2fcd ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x9721837c crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x9729e4d5 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9749ea54 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x976f2781 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x978f24b1 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x97b61cd9 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x98168408 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x9821fba8 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98559e7d pcibios_find_pci_bus +EXPORT_SYMBOL_GPL vmlinux 0x98d0f72b unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x98d42082 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x98eeee57 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x99418880 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x997a5978 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x999d213b platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0x99edf6e9 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a2d12f6 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x9a32d12d crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x9a4cc335 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x9a7385d6 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x9a9b454a vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x9a9b9f0b show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9b057e82 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x9b3517e4 pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0x9b3b737f register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x9b5acaa5 ide_set_media_lock +EXPORT_SYMBOL_GPL vmlinux 0x9b7f5630 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x9b9294fe pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bb5501c __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x9bc5a2d7 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x9bfbfe3f spu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x9c00b3fa pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x9c35ec69 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x9c6d0ee2 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x9c92332b attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9c9ac266 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9ca8f203 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d011623 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9d602e35 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x9d6d0660 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x9d8e7a28 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x9da906e3 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x9dcf6003 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x9dd10e55 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x9df4c385 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x9e532c5a register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x9e63f37c dm_put +EXPORT_SYMBOL_GPL vmlinux 0x9e7b6165 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x9e815153 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x9e976153 ps3_vuart_read +EXPORT_SYMBOL_GPL vmlinux 0x9ea6a4e5 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x9edcf87d kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9f09d51b ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x9f3c3fa4 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x9f3d8bd3 remove_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f7a3732 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x9f7a9c52 ide_setting_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9fc3c673 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9fcae6d8 ide_create_request_sense_cmd +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd2595c sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa017fdc3 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa044b9b4 __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0xa04c284e sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xa09dafac usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xa0a27fff pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0xa0b7fad9 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xa0f0bfc1 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xa11558e1 ide_pio_bytes +EXPORT_SYMBOL_GPL vmlinux 0xa16cfcaf usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xa27b0ac4 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa2e8ad95 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0xa30b3bd2 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xa324888a rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xa32505ff ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa331f22c ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa33bc641 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xa34ff7b6 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xa38d7184 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa39aafef pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3c04b86 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa45e4721 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xa46bc80c regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xa46ef76c ps3_vuart_port_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4882042 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xa4a0ecc6 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4bbfe23 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xa4d5b6f9 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xa4f9109a crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xa5096911 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa54cad3e usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xa57d83b8 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xa58c6ba3 ide_do_test_unit_ready +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5e7ee27 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xa5eb966e ide_pci_resume +EXPORT_SYMBOL_GPL vmlinux 0xa5ee6bb6 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa67a0cdd crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xa6972aff xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xa69d6d1a ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0xa6addb99 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xa726482c crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xa77a44f1 ide_cd_get_xferlen +EXPORT_SYMBOL_GPL vmlinux 0xa77b80d6 user_read +EXPORT_SYMBOL_GPL vmlinux 0xa7aeb5c9 ps3_system_bus_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xa8020c43 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xa84df395 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa860fa8d fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xa86a2b47 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0xa8ebc5f1 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xa8ee5e70 ps3_vuart_port_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa913b665 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xa92534c1 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xa92690c8 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xa96e6825 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa98cdb36 ps3_get_firmware_version +EXPORT_SYMBOL_GPL vmlinux 0xa9ae1409 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9c8dfa4 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xa9eda768 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2f616e ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xaa35ee21 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xaa5bcc80 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xaa72180b usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaa93b180 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xaaa1f72b usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xaab9e203 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xaada79d7 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xaae0b91c get_slice_psize +EXPORT_SYMBOL_GPL vmlinux 0xab14110a stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xab1cdab5 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xab2b243d ps3_irq_plug_destroy +EXPORT_SYMBOL_GPL vmlinux 0xab3ef7a6 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xab42fc70 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab8b4fb8 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xabbc01ca devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xabbf4791 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xabd34f16 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xabe85dff eeh_dn_check_failure +EXPORT_SYMBOL_GPL vmlinux 0xac232712 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xac86b93b sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xacc2633c spu_switch_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xacd24acd ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacfe997e powerpc_firmware_features +EXPORT_SYMBOL_GPL vmlinux 0xad40c063 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad69b5bf ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadefa4cc platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae351e65 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xae46d792 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xae6869aa bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xae9d294c mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xaef103ab adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf71a720 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xaf77649d cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0xafa4ed4e wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xafcb322c ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xb01f067b register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xb084514d init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xb0aa447b crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0bd97fb ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb0dc887b ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xb1080dc6 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xb13ba4e0 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb19200c2 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xb1a85ac3 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1fd5149 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xb21c0f9c __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0xb26cdb63 spu_management_ops +EXPORT_SYMBOL_GPL vmlinux 0xb26d2ce6 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb2883f30 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xb2887cc1 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb2bca59f pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xb2e9d198 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xb2fbbe9a raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xb326e8f9 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xb36e0afb relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xb38a19f2 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xb3b67d93 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xb3f46ee2 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xb42b7f07 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xb44354fc __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xb4db42ba wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4ec72c0 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xb4f26156 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb52654c1 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb55a1997 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xb570df3e device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb581998d bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xb5847e24 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5ee7400 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb697c46e ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6bc007a spu_sys_callback +EXPORT_SYMBOL_GPL vmlinux 0xb6d4422f eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xb72461fc ide_cd_expiry +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb781ccd4 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xb7bee7f6 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb818a954 ps3_vuart_write +EXPORT_SYMBOL_GPL vmlinux 0xb81edc72 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xb847bbaa ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0xb84b1aae ps3_event_receive_port_setup +EXPORT_SYMBOL_GPL vmlinux 0xb8564033 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb8754390 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xb8911595 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb90710f2 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xb92e5603 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xb93070f4 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xb96af5d1 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb97d77a7 ide_pci_init_one +EXPORT_SYMBOL_GPL vmlinux 0xb9a3449e crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xb9ba094e scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba49cfcb i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xba51f02c ide_queue_sense_rq +EXPORT_SYMBOL_GPL vmlinux 0xbaa34401 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xbaaca57f ide_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbad26090 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb1bea11 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xbb49aafe spu_64k_pages_available +EXPORT_SYMBOL_GPL vmlinux 0xbb4dc34d __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xbb7c9486 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xbb93d2e3 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xbc09cec1 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xbc0b7985 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0xbc2a181a crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xbc2cc08e find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xbc329036 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xbc42bb07 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xbc436914 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xbc5ae486 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xbc76db12 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xbd2263c2 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xbd45cfd6 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xbdd07605 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdf803a0 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe0ad1a2 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3d57d1 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xbe9ac83c tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xbec15b5a irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf396e0c led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbf505aa0 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xbf6996b6 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xbf7301c3 ide_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xbf781c95 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbfc2696f inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xbfca00a3 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xbfdedde5 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc0831ce2 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc099f3d7 ide_prep_sense +EXPORT_SYMBOL_GPL vmlinux 0xc0bee701 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c42a9d ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xc0daf714 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xc0e8a044 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc12f42ef register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xc132d047 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1a7e442 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xc1b0d22a crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xc1de8449 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xc1fa4dfb unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xc1ff7e41 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xc207928f flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc21ea153 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc28671b8 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xc2a7670e regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc2c1151e locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xc2f09bf4 pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc2fb7138 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xc30b009e tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0xc30e0126 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35009ef css_id +EXPORT_SYMBOL_GPL vmlinux 0xc3874078 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xc3904783 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3c1bee1 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xc3cf14a9 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc40b2a12 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xc40c9bc6 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xc422bb67 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc43b9fef ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xc47c2b85 ps3_system_bus_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4c64884 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xc4c65db1 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xc5234d09 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xc53650f3 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xc592a211 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xc5cf67f9 user_update +EXPORT_SYMBOL_GPL vmlinux 0xc5d3def3 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xc5f8c9bb pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xc5fa2d80 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xc609f71c pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc65e65a9 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xc66c2311 ps3_vuart_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc67da0a8 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xc67fc55e fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xc6bfb787 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc6e3c74b set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xc6fb02af ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xc736a111 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xc7f3b50d pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0xc830598a cpu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xc856870e pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc89834db device_rename +EXPORT_SYMBOL_GPL vmlinux 0xc8af8283 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8e51d5b unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc91bd61c da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc947d0f1 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xc947e705 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca2f0ed1 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xca4e5bd6 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xca70811a __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xca73bec9 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xca7d9c56 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcab9164d ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xcba80738 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcbab12a6 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xcbc2c8dd atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf1b77d of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xcbf22b02 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xcc0b4940 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc408c80 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd3054e proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xcd01b585 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xcd41f9be usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xcd64c0d3 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xcd7ca1fe debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xcd7f5c6e sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xcdb0652d pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdcb7cfc ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xce081bbc sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xce08b8d5 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xce3d2aef crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xce5200fa perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xce60429b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6c29e9 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xce7b57a7 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xcedecb76 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xcf032f78 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xcf1c9dd4 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xcf23a823 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xcf521f60 pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xcf5659a0 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xcf6743f9 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xcfb44f9f hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd00532d9 pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd08b8d53 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0xd0a2779c __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xd0a93ed6 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd0b9b70f ide_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0d2d207 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd0ea175c register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xd0f2161a blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd13e8456 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd154ade2 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd174d298 pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0xd18864de adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd1adf1e4 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1eb2ac7 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd21291eb rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0xd21c1577 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a87975 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c1e901 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0xd31a4c0b pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xd31d5d60 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd333a43b anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd3dd3803 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xd3fc662c sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd411624d usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xd4245e4e eeh_remove_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xd4316a29 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xd4328d35 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xd471748f pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xd4aa1c78 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xd537303f xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xd544e079 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xd54689f3 ide_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xd56a584a save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xd579decb xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xd583bb20 pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0xd5be38c5 __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5f12f9b driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xd6052ced rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xd61d3509 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xd6312c67 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xd63544a0 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd63c7e8a inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd63f8de1 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xd65f1e0d pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0xd666dd64 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xd6b62d86 ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0xd6d876f9 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xd6e579fd dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xd6ff2715 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd7349679 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd737cc02 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd752dd4f tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xd755049a crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xd760581f ide_do_start_stop +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd772fb46 ide_pad_transfer +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd79602a0 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xd7a2fedf eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7db542a regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd7df09f0 ide_pci_dma_base +EXPORT_SYMBOL_GPL vmlinux 0xd8140607 smu_get_ofdev +EXPORT_SYMBOL_GPL vmlinux 0xd8263870 mmu_slb_size +EXPORT_SYMBOL_GPL vmlinux 0xd83478ce ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xd8355024 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xd8498f4d ps3av_mode_cs_info +EXPORT_SYMBOL_GPL vmlinux 0xd85dc2b2 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd86ca6c6 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xd897d376 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xd8b95c88 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xd8f2f643 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd948c108 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd9887e97 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xd98a3125 ide_dma_host_set +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda291dc7 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xda347ae1 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xda520262 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xda601963 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xda89f9b2 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xda9e794e destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xdadfb733 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb0ac13b ps3_compare_firmware_version +EXPORT_SYMBOL_GPL vmlinux 0xdb18fd17 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb391553 cpu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xdba082d0 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xdbac21e3 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xdbbc2e14 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xdc093f8d rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xdc388ffd ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xdc7e57b4 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xdc94f533 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xdcad56d8 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xdd043eea ps3av_get_auto_mode +EXPORT_SYMBOL_GPL vmlinux 0xdd2da720 ide_input_data +EXPORT_SYMBOL_GPL vmlinux 0xdd4f7200 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdd67467c rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xddcbe4cb netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xde02ce66 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xde044797 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde61cbe8 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xdeebafad device_add +EXPORT_SYMBOL_GPL vmlinux 0xdf4400b9 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe011f817 ps3flash_bounce_buffer +EXPORT_SYMBOL_GPL vmlinux 0xe0260790 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xe0375393 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xe04bdd73 ide_release_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xe057c8bf disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe06cde44 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xe0751fa7 pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xe0893ca5 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xe08f3718 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0ce3a2d mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xe0d7005a xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xe0e33f20 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xe0f48d5d ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xe19fc092 ps3fb_videomemory +EXPORT_SYMBOL_GPL vmlinux 0xe1a0c6d3 mmput +EXPORT_SYMBOL_GPL vmlinux 0xe1b500f8 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xe21c7012 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xe2ce007d pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xe31c45cf sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xe32a5f07 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xe35d26d4 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xe35e7720 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xe3e2feb0 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xe3e6c19d swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xe40fa00b security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xe43ed310 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xe44307cc sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xe44363f4 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4ce28d4 of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0xe5117a0c hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xe513f560 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xe54c77a6 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xe5fd8a70 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651873b sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe67186fe spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe6b260b8 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe71e8c13 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7c08426 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xe7ca2171 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe7cf8c57 ide_check_atapi_device +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe822395d of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0xe82aa9cd ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xe82af405 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8860522 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xe8d0fb97 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xe8d6ac5b debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xe8fe1464 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xe90c3190 ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0xe9147b10 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xe93d67be fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe93fbb7b fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe99fe84d n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xe9a9fee5 ps3_mmio_region_create +EXPORT_SYMBOL_GPL vmlinux 0xe9d44fe7 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xea055230 ide_no_data_taskfile +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea53093e power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xea7cb39e devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xea8287ca crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xea9f0c34 cpu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb075071 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0xeb0b2cca attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xeb7950e9 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0xeb80e09e scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeb9df4cb ps3_sys_manager_register_ops +EXPORT_SYMBOL_GPL vmlinux 0xebb976bd spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xebc8040d blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xebc854b1 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xebe78b9e ide_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec9f7f60 pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0xecb21d27 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xecd24634 ide_init_pc +EXPORT_SYMBOL_GPL vmlinux 0xecd7d629 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xed5d7b6a dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xedc0ad5c ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xedf03e5f skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xee114035 init_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0xee39bbac pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xeec8525b skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xef2596a2 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xef2ceaf4 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xef5c8c8c ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef94566e xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xef9aff50 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf08e9509 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xf098dd15 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xf0bdd960 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xf0d784c3 spu_handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0xf0e4b6d2 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xf105d00d ide_in_drive_list +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf168af31 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xf16a2d66 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf16c4738 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1b74c97 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xf1c02b6d pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf1f11dfc rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xf239456c __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xf24fe1b8 ide_port_unregister_devices +EXPORT_SYMBOL_GPL vmlinux 0xf2888774 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xf29b785e ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xf2a91c76 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xf2b07971 ide_port_scan +EXPORT_SYMBOL_GPL vmlinux 0xf2f1369f kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xf2f571ae irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0xf3094ad4 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xf3385a62 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf352b991 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf3a2c3ac ide_intr +EXPORT_SYMBOL_GPL vmlinux 0xf3b18207 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf469c705 ps3_io_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf46acfa5 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4ae3d2f pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0xf4be7739 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xf4cb132d crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xf5234ffa crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xf52a728a ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf53c5357 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf5668251 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xf5668dd8 kick_process +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5b32da9 spu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xf6d51d51 ps3_free_mmio_region +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf71d33f4 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xf7760bce inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xf81c5d8c spi_async +EXPORT_SYMBOL_GPL vmlinux 0xf85e6912 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xf86cb860 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8b219d6 ide_end_rq +EXPORT_SYMBOL_GPL vmlinux 0xf8f01243 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf915676d ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf9675dda unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4473 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa8c0a05 ide_get_lba_addr +EXPORT_SYMBOL_GPL vmlinux 0xfaa10b16 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfabfe045 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xfb022370 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb33a35d devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xfb67c668 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xfba0ff78 register_spu_syscalls +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfbfcdc2b ps3_sys_manager_get_wol +EXPORT_SYMBOL_GPL vmlinux 0xfc2e13ea trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xfc4685f4 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xfc714867 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0xfcaf8a25 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xfcfc5ff9 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xfd5dab14 ide_read_status +EXPORT_SYMBOL_GPL vmlinux 0xfd80b1d9 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe10fa90 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xfe8771e1 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeb1fc36 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xfec99ba3 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed5a6cb ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xfeeae4cd input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xfeec5a1a irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xfefc3b69 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xff0dacff ps3av_video_mute +EXPORT_SYMBOL_GPL vmlinux 0xff3094a8 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xff377a06 ide_allocate_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xff8bf91d page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffa85287 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xffcdb8a4 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xffe4f26d put_device --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/powerpc/powerpc64-smp.modules +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/powerpc/powerpc64-smp.modules @@ -0,0 +1,2431 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6pack +8021q +8139cp +8139too +8250 +8250_pci +8390 +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +aacraid +ab3100 +ab3100-otp +abyss +ac97_bus +acecad +acenic +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad714x +ad714x-i2c +ad714x-spi +ad7414 +ad7418 +ad7877 +ad7879 +adcxx +adfs +adi +adis16255 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-gpio +adp5520-keys +adp5588-gpio +adp5588-keys +adp8860_bl +ads7846 +ads7871 +adt7411 +adt7462 +adt7470 +adt7475 +adutux +adv7170 +adv7175 +adv7180 +adv7343 +aes_generic +af_802154 +af9013 +affs +af_key +af-rxrpc +agpgart +ah4 +ah6 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +ak881x +alauda +ali-ircc +altera_jtaguart +altera_ps2 +altera_uart +amc6821 +amd8111e +analog +ansi_cprng +anubis +aoe +apbuart +appledisplay +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asc7621 +asix +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +ata_generic +ata_piix +atbm8830 +aten +ath +ath3k +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_pci +atmtcp +atp870u +atxp1 +au0828 +au8522 +aufs +authenc +auth_rpcgss +autofs +autofs4 +ax25 +axnet_cs +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpqether +bq24022 +bq27x00_battery +br2684 +bridge +broadcom +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +bw-qcam +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capmode +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cciss +cdc-acm +cdc_eem +cdc_ether +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +chipreg +chnl_net +cicada +cifs +cirrusfb +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cn +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +configfs +core +cp210x +cpia +cpia2 +cpia_pp +cpia_usb +cpufreq_spudemand +cpufreq_stats +cpu-notifier-error-inject +c-qcam +cramfs +crc32c +crc7 +crc-ccitt +crc-itu-t +crc-t10dif +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535-gpio +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxt1e1 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +DAC960 +davicom +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +denali +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +dl2k +dlci +dlm +dm1105 +dm9601 +dm-crypt +dme1737 +dmfe +dm-log +dm-mirror +dm-multipath +dm-queue-length +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +drm +drm_kms_helper +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +ds2782_battery +ds3000 +dsbr100 +dscc4 +dst +dst_ca +dstr +dt3155 +dt3155v4l +dtl1_cs +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dw_spi_pci +dynapro +e100 +e1000 +e1000e +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +econet +edac_core +eeprom +eeprom_93cx6 +eeti_ts +efs +elo +em28xx +em28xx-dvb +emc1403 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +eni +enic +epat +epca +epia +epic100 +eql +esi-sir +esp4 +esp6 +et1011c +et61x251 +eth1394 +ethoc +evbug +evdev +exofs +exportfs +f71805f +f71882fg +f75375s +farsync +fat +faulty +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +floppy +fm801-gp +fmvj18x_cs +forcedeth +fore_200e +freevxfs +friq +frpw +fscache +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gdth +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +g_file_storage +gfs2 +ghash-generic +g_hid +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_nokia +gpio-addr-flash +gpio_keys +gpio_mouse +gpio_vbus +g_printer +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hangcheck-timer +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfs +hfsplus +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-wacom +hid-zpff +hid-zydacron +hopper +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpilo +hpsa +hptiop +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +i1480-dfu-usb +i1480-est +i1480u-wlp +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-dev +i2c-i801 +i2c-isch +i2c-matroxfb +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-xiic +i2o_block +i2o_bus +i2o_core +i2o_proc +i2o_scsi +i5k_amb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmcam +ibmpex +ib_mthca +ibmtr_cs +ib_qib +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ics932s401 +idmouse +idt77252 +ieee1394 +ieee802154 +ifb +iforce +igbvf +ili9320 +imm +imon +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +ir-core +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_tcp +iscsi_trgt +isight_firmware +isl29003 +isl6405 +isl6421 +isofs +isp116x-hcd +isp1362-hcd +isp1760 +istallion +it87 +it8761e_gpio +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jedec_probe +jffs2 +jfs +jme +joydev +joydump +jsm +kafs +kaweth +kbic +kbtab +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kyrofb +l2cap +l2tp_core +l2tp_debugfs +l2tp_ppp +l4f00242t03 +l64781 +lanai +lapb +lapbether +lcd +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-lp3944 +leds-lt3593 +leds-mc13783 +leds-regulator +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libcrc32c +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libosd +libsas +libsrp +lightning +linear +lirc_bt829 +lirc_dev +lirc_i2c +lirc_igorplugusb +lirc_imon +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc2 +ll_temac +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lms283gf05 +lnbp21 +lockd +loop +lp +lp3971 +lpc_sch +lpddr_cmds +lpfc +lrw +ltc4215 +ltc4245 +ltv350qv +lxt +m25p80 +m52790 +ma600-sir +mac80211 +mac80211_hwsim +macvlan +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +marvell +matrix_keypad +matroxfb_maven +matrox_w1 +max1111 +max1586 +max1619 +max17040_battery +max2165 +max3100 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +mb862xxfb +mb862xxfb_accel +mb86a16 +mc13783-adc +mc13783-core +mc13783-regulator +mc13783_ts +mc33880 +mc44s803 +mceusb +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio +mdio-bitbang +mdio-gpio +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +metronomefb +mga +michael_mic +micrel +microtek +mii +minix +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mmc_core +mmc_spi +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msp3400 +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtd_nandecctest +mtd_oobtest +mtdoops +mtd_pagetest +mtdram +mtd_readtest +mtd_speedtest +mtd_stresstest +mtd_subpagetest +mtd_torturetest +mtouch +multipath +mwl8k +mxl5005s +mxl5007t +myri10ge +nand +nand_ecc +nand_ids +nandsim +national +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +net2280 +netconsole +netrom +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +nf_tproxy_core +ngene +n_hdlc +nilfs2 +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nop-usb-xceiv +nouveau +n_r3964 +ns558 +ns83820 +nsc-ircc +ntfs +nvidiafb +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +of_mmc_spi +of_serial +ohci1394 +old_belkin-sir +olympic +omfs +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov7670 +ov772x +ov9640 +ovcamchip +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8023 +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_amd +pata_atp867x +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_macio +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_of_platform +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_platform +pata_rdc +pata_rz1000 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc87360 +pc87427 +pca953x +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pci +pci200syn +pcilynx +pcips2 +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +pegasus +penmount +pf +pg +phantom +phonedev +phonet +phram +physmap +physmap_of +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmac_zilog +pmc551 +pmcraid +pn_pep +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +prism54 +ps3disk +ps3flash +ps3_gelic +ps3-lpm +ps3rom +ps3stor_lib +ps3vram +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192u_usb +r852 +r8a66597-hcd +rack-meter +radeon +radio-gemtek-pci +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +raw1394 +ray_cs +rc-adstech-dvb-t-pci +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avertv-303 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-empty +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge-new +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-lirc +rc-manli +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc5-hauppauge-new +rc-rc5-tv +rc-rc6-mce +rc-real-audio-220-32-keys +rc-streamzap +rc-tbs-nec +rc-terratec-cinergy-xs +rc-tevii-nec +rc-tt-1500 +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-gpio +rdc321x-southbridge +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rio500 +riscom8 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc_cmos_setup +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3234 +rtc-fm3130 +rtc-generic +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-mc13783 +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-ps3 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2255drv +s2io +s3fb +s5h1409 +s5h1411 +s5h1420 +s6e63m0 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7191 +saa7706h +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbp2 +sc92031 +sch_atm +sch_cbq +sch_drr +sch_dsmark +sch_gpio +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_multiq +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci +sdhci-of +sdhci-pci +sdhci-pltfm +sdio_uart +sd_mod +sdricoh_cs +se401 +seed +serial_core +serial_cs +serio_raw +sermouse +serpent +serport +sfc +sg +sha1_generic +sha256_generic +sha512_generic +sht15 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_of_platform +sja1000_platform +skfp +skge +sky2 +sl811_cs +sl811-hcd +slhc +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc91c92_cs +sm_common +smsc +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-als300 +snd-als4000 +snd-aoa +snd-aoa-codec-onyx +snd-aoa-codec-tas +snd-aoa-codec-toonie +snd-aoa-fabric-layout +snd-aoa-i2sbus +snd-aoa-soundbus +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-atihdmi +snd-hda-codec-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-idt +snd-hda-codec-intelhdmi +snd-hda-codec-nvhdmi +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-page-alloc +snd-pcm +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-powermac +snd_ps3 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-core +snd-soc-cs4270 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wm2000 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8776 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-ua101 +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +solos-pci +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +specialix +spectrum_cs +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +spufs +squashfs +sr_mod +ssb +ssfdc +sst25l +st +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste10Xp +stex +stinger +stir4200 +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synclink +synclink_cs +synclink_gt +synclinkmp +sysv +tca6416-keypad +tcm825x +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10086 +tda18271 +tda665x +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tda9887 +tdfx +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +test_power +tg3 +tgr192 +therm_pm72 +thmc50 +ths7303 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_sd +timberdale +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tle62x0 +tlv320aic23b +tm6000 +tm6000-alsa +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +touchit213 +touchright +touchwin +tpm +tpm_atmel +tpm_nsc +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +trancevibrator +tridentfb +ts_bm +tsc2007 +ts_fsm +ts_kmp +tsl2550 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw9910 +twidjoy +twl4030-gpio +twl4030_keypad +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twofish +twofish_common +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +udf +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +ultracam +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-sddr09 +ums-sddr55 +ums-usbat +uninorth-agp +upd64031a +upd64083 +usb8xxx +usbatm +usb_debug +usbhid +usblcd +usbled +usblp +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +uss720 +uvcvideo +uvesafb +uwb +v4l1-compat +v4l2-common +v4l2-compat-ioctl32 +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vgastate +vgg2432a4 +vhost_net +via +via686a +viafb +via-ircc +via-rhine +via-sdmmc +via-velocity +vicam +video1394 +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videodev +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtual +visor +vitesse +vivopay-serial +vlsi_ir +vmac +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +vxge +w1_bq27000 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83977af_ir +w83l785ts +w9966 +w9968cf +wacom_w8001 +walkera0701 +wanrouter +wanxl +warrior +wbsd +wdrtas +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +windfarm_core +windfarm_cpufreq_clamp +windfarm_lm75_sensor +windfarm_max6690_sensor +windfarm_pid +windfarm_pm112 +windfarm_pm121 +windfarm_pm81 +windfarm_pm91 +windfarm_smu_controls +windfarm_smu_sat +windfarm_smu_sensors +wire +wl1251 +wl1251_sdio +wl1251_spi +wl1271 +wl1271_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlp +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-gpio +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x_wdt +wm8350-gpiolib +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-gpio +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xhci-hcd +xilinx_ps2 +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xvmalloc +yam +yealink +yellowfin +yenta_socket +zc0301 +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr364xx --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/powerpc/powerpc.modules +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/powerpc/powerpc.modules @@ -0,0 +1,2452 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6pack +8021q +8139cp +8139too +8250 +8250_pci +8390 +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +aacraid +ab3100 +ab3100-otp +abyss +ac97_bus +acecad +acenic +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad714x +ad714x-i2c +ad714x-spi +ad7414 +ad7418 +ad7877 +ad7879 +adcxx +adfs +adi +adis16255 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-gpio +adp5520-keys +adp5588-gpio +adp5588-keys +adp8860_bl +ads7846 +ads7871 +adt7411 +adt7462 +adt7470 +adt7475 +adutux +adv7170 +adv7175 +adv7180 +adv7343 +advansys +aes_generic +af_802154 +af9013 +affs +af_key +af-rxrpc +agpgart +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +ak881x +alauda +ali-ircc +altera_jtaguart +altera_ps2 +altera_uart +ambassador +amc6821 +amd8111e +ams +analog +ansi_cprng +ans-lcd +anubis +aoe +apbuart +apm_emu +apm-emulation +apm_power +appledisplay +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asc7621 +asix +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +ata_generic +ata_piix +atbm8830 +aten +ath +ath3k +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_pci +atmtcp +atp870u +atxp1 +au0828 +au8522 +aufs +authenc +auth_rpcgss +autofs +autofs4 +ax25 +axnet_cs +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bmac +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq24022 +bq27x00_battery +br2684 +bridge +briq_panel +broadcom +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +BusLogic +bw-qcam +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capmode +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cciss +cdc-acm +cdc_eem +cdc_ether +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +chipreg +chnl_net +cicada +cifs +cirrusfb +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cn +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +configfs +core +cp210x +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpufreq_stats +c-qcam +cramfs +crc32c +crc7 +crc-ccitt +crc-itu-t +crc-t10dif +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535-gpio +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxt1e1 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +DAC960 +davicom +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +denali +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +dl2k +dlci +dlm +dm1105 +dm9601 +dm-crypt +dme1737 +dmfe +dm-log +dm-mirror +dm-multipath +dm-queue-length +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +donauboe +dpt_i2o +drm +drm_kms_helper +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +ds2782_battery +ds3000 +dsbr100 +dscc4 +dst +dst_ca +dstr +dt3155 +dt3155v4l +dtl1_cs +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dw_spi_pci +dynapro +e100 +e1000 +e1000e +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +econet +edac_core +eeprom +eeprom_93cx6 +eeti_ts +efs +elo +em28xx +em28xx-dvb +emc1403 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +eni +enic +epat +epca +epia +epic100 +eql +esi-sir +esp4 +esp6 +et1011c +et61x251 +eth1394 +ethoc +evbug +evdev +exofs +exportfs +f71805f +f71882fg +f75375s +farsync +fat +faulty +fb_sys_fops +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +floppy +fm801-gp +fmvj18x_cs +forcedeth +fore_200e +freevxfs +friq +frpw +fscache +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gdth +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +g_file_storage +gfs2 +ghash-generic +g_hid +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_nokia +gpio-addr-flash +gpio_keys +gpio_mouse +gpio_vbus +g_printer +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfs +hfsplus +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-wacom +hid-zpff +hid-zydacron +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpilo +hpsa +hptiop +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +i1480-dfu-usb +i1480-est +i1480u-wlp +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-dev +i2c-gpio +i2c-hydra +i2c-i801 +i2c-isch +i2c-matroxfb +i2c-mpc +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i5k_amb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmcam +ibmpex +ib_mthca +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ics932s401 +idmouse +idt77252 +ieee1394 +ieee802154 +ifb +iforce +igbvf +ili9320 +imm +imon +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +ir-core +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_tcp +iscsi_trgt +isight_firmware +isl29003 +isl6405 +isl6421 +isofs +isp116x-hcd +isp1362-hcd +isp1760 +istallion +it87 +it8761e_gpio +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jedec_probe +jffs2 +jfs +jme +joydev +joydump +jsm +kafs +kaweth +kbic +kbtab +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvm +kyrofb +l2cap +l2tp_core +l2tp_debugfs +l2tp_ppp +l4f00242t03 +l64781 +lanai +lanstreamer +lapb +lapbether +lcd +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-lp3944 +leds-lt3593 +leds-mc13783 +leds-regulator +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-gpio +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libcrc32c +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libosd +libsas +libsrp +lightning +linear +lirc_bt829 +lirc_dev +lirc_i2c +lirc_igorplugusb +lirc_imon +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc2 +ll_temac +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lmc +lms283gf05 +lnbp21 +lockd +loop +lp +lp3971 +lpc_sch +lpddr_cmds +lpfc +lrw +ltc4215 +ltc4245 +ltv350qv +lxt +lzo +lzo_compress +m25p80 +m52790 +ma600-sir +mac53c94 +mac80211 +mac80211_hwsim +mace +macvlan +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +marvell +matrix_keypad +matroxfb_maven +matrox_w1 +max1111 +max1586 +max1619 +max17040_battery +max2165 +max3100 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +mb862xxfb +mb862xxfb_accel +mb86a16 +mc13783-adc +mc13783-core +mc13783-regulator +mc13783_ts +mc33880 +mc44s803 +mceusb +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio +mdio-bitbang +mdio-gpio +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +mesh +metronomefb +mga +michael_mic +micrel +microtek +mii +minix +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mmc_core +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msp3400 +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtd_nandecctest +mtd_oobtest +mtdoops +mtd_pagetest +mtdram +mtd_readtest +mtd_speedtest +mtd_stresstest +mtd_subpagetest +mtd_torturetest +mtouch +multipath +mv643xx_eth +mwl8k +mxl5005s +mxl5007t +myri10ge +nand +nand_ecc +nand_ids +nandsim +national +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +net2280 +netconsole +netrom +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +nf_tproxy_core +ngene +n_hdlc +nicstar +nilfs2 +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nop-usb-xceiv +nouveau +n_r3964 +ns558 +ns83820 +nsc-ircc +nsp32 +nsp_cs +ntfs +nvidiafb +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +of_serial +ohci1394 +old_belkin-sir +olympic +omfs +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov7670 +ov772x +ov9640 +ovcamchip +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8023 +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_amd +pata_atp867x +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_macio +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_of_platform +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_platform +pata_rdc +pata_rz1000 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc87360 +pc87427 +pca953x +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pci +pci200syn +pcilynx +pcips2 +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcnet32 +pcnet_cs +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +pegasus +penmount +pf +pg +phantom +phonedev +phonet +phram +physmap +physmap_of +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmac_zilog +pmc551 +pmcraid +pmu_battery +pn_pep +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +prism54 +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192u_usb +r852 +r8a66597-hcd +rack-meter +radeon +radio-gemtek-pci +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +raw1394 +ray_cs +rc-adstech-dvb-t-pci +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avertv-303 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-empty +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge-new +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-lirc +rc-manli +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc5-hauppauge-new +rc-rc5-tv +rc-rc6-mce +rc-real-audio-220-32-keys +rc-streamzap +rc-tbs-nec +rc-terratec-cinergy-xs +rc-tevii-nec +rc-tt-1500 +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-gpio +rdc321x-southbridge +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rio500 +riscom8 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc_cmos_setup +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3234 +rtc-fm3130 +rtc-generic +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-mc13783 +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2255drv +s2io +s3fb +s5h1409 +s5h1411 +s5h1420 +s6e63m0 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7191 +saa7706h +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbp2 +sc92031 +sch_atm +sch_cbq +sch_drr +sch_dsmark +sch_gpio +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_multiq +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci +sdhci-of +sdhci-pci +sdhci-pltfm +sdio_uart +sd_mod +sdricoh_cs +se401 +seed +serial_core +serial_cs +serio_raw +sermouse +serpent +serport +sfc +sg +sha1_generic +sha256_generic +sha512_generic +sht15 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_of_platform +sja1000_platform +skfp +skge +sky2 +sl811_cs +sl811-hcd +slhc +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc91c92_cs +sm_common +smsc +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-als300 +snd-als4000 +snd-aoa +snd-aoa-codec-onyx +snd-aoa-codec-tas +snd-aoa-codec-toonie +snd-aoa-fabric-layout +snd-aoa-i2sbus +snd-aoa-soundbus +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-atihdmi +snd-hda-codec-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-idt +snd-hda-codec-intelhdmi +snd-hda-codec-nvhdmi +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-page-alloc +snd-pcm +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-powermac +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-core +snd-soc-cs4270 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wm2000 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8776 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-ua101 +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +solos-pci +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +specialix +spectrum_cs +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +squashfs +sr_mod +ssb +ssfdc +sst25l +st +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste10Xp +stex +stinger +stir4200 +stowaway +stp +stradis +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +swim3 +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +tca6416-keypad +tcm825x +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10086 +tda18271 +tda665x +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tda9887 +tdfx +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +test_power +tg3 +tgr192 +therm_adt746x +therm_windtunnel +thmc50 +ths7303 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_sd +timberdale +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tle62x0 +tlv320aic23b +tm6000 +tm6000-alsa +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +touchit213 +touchright +touchwin +tpm +tpm_atmel +tpm_nsc +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +trancevibrator +tridentfb +ts_bm +tsc2007 +ts_fsm +ts_kmp +tsl2550 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw9910 +twidjoy +twl4030-gpio +twl4030_keypad +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twofish +twofish_common +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +udf +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +ultracam +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-sddr09 +ums-sddr55 +ums-usbat +uninorth-agp +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usbhid +usblcd +usbled +usblp +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +uss720 +uvcvideo +uvesafb +uwb +v4l1-compat +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vgastate +vgg2432a4 +vhost_net +via +via686a +viafb +via-ircc +via-rhine +via-sdmmc +via-velocity +vicam +video1394 +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtual +visor +vitesse +vivopay-serial +vlsi_ir +vmac +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +vxge +w1_bq27000 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83977af_ir +w83l785ts +w9966 +w9968cf +wacom_w8001 +walkera0701 +wanrouter +wanxl +warrior +wbsd +wdrtas +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +windfarm_core +wire +wl1251 +wl1251_sdio +wl1251_spi +wl1271 +wl1271_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlp +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-gpio +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x_wdt +wm8350-gpiolib +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-gpio +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xhci-hcd +xilinx_emaclite +xilinx_ps2 +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xvmalloc +yam +yealink +yellowfin +yenta_socket +zatm +zc0301 +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.35.orig/debian.master/abi/2.6.35-23.39/powerpc/powerpc +++ linux-2.6.35/debian.master/abi/2.6.35-23.39/powerpc/powerpc @@ -0,0 +1,10212 @@ +EXPORT_SYMBOL arch/powerpc/kvm/kvm 0x89d90023 kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0xe1486955 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xf62e343f uPD98402_init +EXPORT_SYMBOL drivers/block/loop 0x255a3ea1 loop_register_transfer +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x22032abd pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x2cba4d11 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x532c1957 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x68b6c667 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x730b98f4 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x76772ddf pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xab2065f4 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xafe04031 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xd0c7d2c0 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xd3e7acb7 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xfa105903 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xfb7e1311 pi_connect +EXPORT_SYMBOL drivers/char/agp/agpgart 0x007050db agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x07960787 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0a476c84 agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0d757ce0 agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0e23b7aa agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0fa568b6 agp_flush_chipset +EXPORT_SYMBOL drivers/char/agp/agpgart 0x12e63c36 agp_generic_destroy_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0x12fbe144 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e08e3a8 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0x46952425 agp_generic_alloc_pages +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x54659d0b agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5aa49196 agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6496685a agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6bece349 agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x81b4a6db agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x839630a2 agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x83f22ca8 agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x89352585 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8c54e027 agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8d26fca7 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x91decdd8 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x92abf864 agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa0c4c7d6 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbe5847db agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc3119eff agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5ad087f agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc81f7996 agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xce205311 agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd7fa52b1 agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe1371cba agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xebd4726f get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf64c0c94 agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf75eb582 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/apm-emulation 0x129e74f2 apm_get_power_status +EXPORT_SYMBOL drivers/char/apm-emulation 0xdf3329b8 apm_queue_event +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x037b66c6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1073bc6f ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x19dd0a3d ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2fa31932 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3104a146 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3cccfa93 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4ed3fcdd ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x569b3325 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5bc53df4 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5c157393 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8a7de426 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c063165 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9691cbf6 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9c55851d ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9d815307 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9e8c25ec ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb4f55503 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb8bbefda ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xce662ec3 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd0b7a569 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd114471c ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd2c1110d ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdbfc7354 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/edac/edac_core 0x7b458ded edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xc0f5b8c5 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xfde58a07 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x37b2605a fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x46b0341f fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4fdf4b32 fw_core_initiate_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x511d7320 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5b0e23d9 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6116d6e9 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7b66f0bc fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x81f3f840 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x83303aaa fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x849b6fe9 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8f33d96b fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x916a9924 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x93ad3d5a fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9a099ffb fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9a5bd688 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa3cece36 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaa85af58 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xac8b5277 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc00e1b3a fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xccfcf724 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe424565c fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xec064886 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfa1f2b80 fw_iso_context_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0179c10f drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02b81074 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0488925a drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05c3202e drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09f6830a drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a986b99 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0aa63398 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ce39c22 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cf947cc drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x100cd70b drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10772d94 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16d7141a drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1737e01d drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1854460c drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b6d2dc5 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1de9f5f7 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e624fed drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e695c4a drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ec56360 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eee807b drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x231b6082 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2458b43a drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2583385f drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26fbeb49 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c831f4d drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e00c577 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x301f5029 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x328bab0f drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x333bbfbe drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34a9354d drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35598498 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3847607c drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b4acc6a drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b8adbe9 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d02e929 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d422097 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ec0280c drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43a13676 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45b2d3d8 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47413755 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4789f3a2 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47efc163 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4838bd87 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48615106 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dbe5c45 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f03aac2 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50844e95 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x524265a0 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5265f809 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53556935 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54d97891 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x556b78c5 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x577988b2 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5939b6f5 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x593dc6d0 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b54d27c drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ca1c3b6 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ffbbde7 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61b3a881 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6219cd25 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x688da8ff drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f2be512 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x711645b6 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7876ae4c drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d057f02 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f05fee5 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83b335bf drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86a3a946 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871d1f62 drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87546b0a drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87fe3241 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ab8a31f drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d3f636e drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d6c9060 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d77af82 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ecfc56c drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91ee28a0 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c5786d drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x990c5674 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2dbca0d drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa34ed6a8 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa55a0d18 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa745f57d drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa889ea2a drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8c617b8 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8e39b32 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9ca2550 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa0ba974 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab3f1d87 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab52743b drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xace301ac drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb00c5afe drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2d4b0e5 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb354daff drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb686b6f5 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb94a336e drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9a5ef40 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9e676e7 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc8532a7 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcdf88b0 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd5788ee drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc08d4282 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0de6025 drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc548c5b8 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6e8a3e7 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc742ce5d drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8c47042 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc90b0911 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9184cda drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce1a4458 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xced9d727 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0390028 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd231e8a0 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd416a149 drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd446dac8 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdaac90d7 drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcbf6f00 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd9d5832 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdffbf6c9 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0347e22 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0cbbb3a drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2dc82f6 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe40d4eb4 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe42d902c drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe638caa4 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1c3049d drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4ed9196 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf55b9c51 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf668dc2e drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8b8e67c drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe5157db drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe7df90d drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x178c0ce4 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x21a43c4b drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x27a10bd2 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x27d2ec00 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x282e9191 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2a45f556 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x405b0a31 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x500fe5e4 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x578ee3f6 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5bba9c43 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x65580613 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c363529 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f0d253f drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x80631f14 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x82dc7736 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x86682786 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x977228d9 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa98b29c8 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xac501a8d drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc1fbf730 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2d6674a drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc83fc408 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd581004c drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd5a86843 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4f99438 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe834226a i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe95a1687 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xec599d69 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x05bdc6d2 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07830413 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x08bad69e ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b5ee647 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0dbc8eab ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x22fbffda ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32ea3c0a ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3f1532ae ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4035af01 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x42fea97e ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44b57dfc ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4696e1ed ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b68233b ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x502f1da6 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5609db32 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5c4eb703 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5eb1b02e ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f604396 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66a52dfd ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67f233c1 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x683e43f9 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fb8acaf ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x72ec8afa ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x79832ba1 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8fb71cb0 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x91d3a94c ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x91dc1b9b ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x944c558b ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9938517c ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa1fb1494 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2c7632b ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa4c57f93 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabb0a47d ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb0281d7b ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb17d120e ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb999fbb3 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbf88db50 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc0cb809f ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc77066d8 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc911cc19 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc7e9954 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd0f09c4f ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd79db104 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdcb30cf6 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe1b3b248 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe404d57a ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5531167 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe9d9c422 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeb372060 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xee794c93 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf1c472de ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf9d6119e ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa4b594a ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc9f7f92 ttm_read_unlock +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x09787e69 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xf3917084 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x3d996f31 amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x03c52668 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x09a235f8 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0d89a2fa hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0ec2ea9d hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1173c8de hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x11d15bfa hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x14e08f80 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x16ca4889 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x17c55a94 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1b18a8b8 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1d2a20dd hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x251da872 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x289bc00d hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x309670ee hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3141be34 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x34a8f47b hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x36ac23d2 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3fd2eeca dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x41157d86 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4ca31367 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x519c5b72 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x532715d6 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x59ef8dce hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5a1f412a hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x60feca44 hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x61ebb0d1 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6296ed71 hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6337e0f7 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x690bc8fd hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6d203809 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6dbfc8ad hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x71512341 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x73a4ee91 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x74cee33e hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7bbd35c1 hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7eea454a hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x81d1ffd8 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x88f45b7c hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8bb6ce87 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8fbc2958 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x93968dd0 hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x98df506e hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9938b482 hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9a53475c hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9f8951ed hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa25dc2b9 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8df0fb6 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa9199081 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xab36fa84 hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb09726fa hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb634ab0d hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb8c4af8b hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc6b0ffae hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcc6ec053 hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xce4ffa13 hpsb_lock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdc7899a8 hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdd34e011 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdd39921f hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe33ad69e hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe442a2c2 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfb81d57b hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfda788a1 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfef3d1d3 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x42740a6e ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x571b33e9 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xd89d377b ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x10faf4e5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x19726c7e rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xea9ed28a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xee034f38 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0d96d923 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1c3595b8 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2e6afe0d ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x37d0c923 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x39ea1ed8 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6507c62d ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x72b2b0e9 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7a89d4d0 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x80dc0fae cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x89162aec ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb3d5212c ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc0ea9011 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd1978157 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd4fc65ab ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdacabb1d ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe416f05b ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xffd7e526 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x007fcd90 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01545358 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03de7918 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0781dcec ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08c2c90c ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15a998e6 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x19817b47 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ce96eb5 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x214eb2c9 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23bf4785 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x260e1464 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x292c3d74 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f1788b2 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2fd471aa ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x36183ed2 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3653d5b0 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x396e99a7 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b63e136 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3c645eb8 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3c9e87c9 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x424d4ca9 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x437ed396 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48482f33 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48520fce ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a788d43 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4db867e6 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4dede3e0 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58390fe7 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a2d0571 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ed16f7b ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6eca8daf ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f5a391d ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7688e631 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7a948298 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e81a00e ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f5c615e ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83f337ba ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8de8b160 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9f0c3ef1 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa15636bc ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa35fc3c0 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa371e0da ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa4bb2500 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa63b8766 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xacb0a06a ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf1d9119 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb00d6736 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb653b78a ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7a33439 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb88f6474 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba96b2b2 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc68bfb46 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9bd1feb ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9dd7632 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1e51f7a ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc1e6638 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc92e45e ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdda28be1 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe08592ea ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2e559f6 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4c21c50 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6110902 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7926582 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf9c0c83e ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbec099f ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfcee79bc ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x000426bc ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1d01125d ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1f640156 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2d794a8c ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x39cca511 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5e39fbcc ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x71e56ad1 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x80594e09 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9e6e3aff ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa40b7101 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfcef36c0 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfe058ee8 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3dcee557 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x75246607 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x80dd8c63 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x88e042ce ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90480d64 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x99c991c6 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xab36c6fc ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xbc5362ee ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe644f782 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x23c1a4fb iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2456a408 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4bd39804 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x771b6cf8 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8c67fabd iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa4b82021 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa5f06c17 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf0fea211 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x05affd02 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x071c287b rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0e3df5e2 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x130fe534 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x348760b5 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3495e218 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x37497af3 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x44120a1a rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5a5d360a rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8038e3c2 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x872f8f51 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x94a7a9c5 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa9108718 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc6e3111a rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcf3534f5 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdc5b7e7b rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe8b25ea8 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf7a77087 rdma_reject +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3dbd4caf gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x513b5f1a gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x62dadf80 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7004c28c gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbba63357 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc6d804d6 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd85e6c6a gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe2a5992b gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xfa65cb6a __gameport_register_port +EXPORT_SYMBOL drivers/input/input-polldev 0x1a493717 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x7c927a2f input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xaaf83fb3 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb5339596 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x05008f79 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x32d8d027 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x56a54f55 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf84f82ee ad714x_probe +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4934cf44 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x497e559a sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x688a6afe sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x77a8d8d4 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x88b56d40 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xfe3cfd88 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/md/dm-log 0x1b036737 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x243a394f dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x42487428 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xd7b49747 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x4cc1f620 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6b2b02ec dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x700004d7 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa8b63ee0 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xbbf57334 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xcde020a7 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/md-mod 0x01af8f31 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x0a60ab2e bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0x2578fa61 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x2a457ec2 bitmap_cond_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x3053f4e6 md_barrier_request +EXPORT_SYMBOL drivers/md/md-mod 0x3098361e bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x378c5b53 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x3c2ab978 md_integrity_add_rdev +EXPORT_SYMBOL drivers/md/md-mod 0x82b9e7f0 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x9c06a77a md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0xa52e5237 md_error +EXPORT_SYMBOL drivers/md/md-mod 0xa932e09a bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xa98de787 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xc056baf7 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xcbe40030 md_set_array_sectors +EXPORT_SYMBOL drivers/md/md-mod 0xcfd9ad8e unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xd0f39ae3 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0xdb3a7819 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0xded2ec9a md_wait_for_blocked_rdev +EXPORT_SYMBOL drivers/md/md-mod 0xe390535a md_integrity_register +EXPORT_SYMBOL drivers/md/md-mod 0xec65c156 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xf4e1c389 mddev_congested +EXPORT_SYMBOL drivers/md/md-mod 0xf73424b5 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xfa4024c3 md_check_no_bitmap +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 0x158d7b9e ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/ir-core 0x73b4e41d ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x2c6617c6 lirc_get_pdata +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x4ca8f8a9 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x73026955 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x7cb8c185 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x8ed10611 lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x9557ab5f lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xa347e47e lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xccdcc45f lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xb01d81d8 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xd8d66a41 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xc6c9bfb8 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x76717521 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0xab390c4c mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xa09d7eb0 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x098e2deb qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x6259cb85 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x36af0a3e xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x07a6ee2c flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1bdeae4d flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3388c5db flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3d4888b8 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4066168b flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4508000d flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x58d0f322 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7c48089e flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x80ddc7c7 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8278a23e flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9fb0619b flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa58363f9 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa80451cf flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb826be8a flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc317f9cd flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xce07fee2 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd62680a9 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdbdbfb0f flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xddee05b5 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe8c166b4 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x1ae1eae9 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x2a28ad88 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x9e235859 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xb523237e bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x12698ec8 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x3650cf24 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4b5ba44a read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4f318d62 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4f415ed4 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x7842f130 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa03b6e1c rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb2bd5a71 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xba85ae22 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x5528ebe2 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0194b728 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x04980148 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x150eaeec dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15c26f49 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x19488ed2 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x206c8355 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x30e48811 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31409c4b dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x335f286d dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x44db49cc dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5e80ec71 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x60afdbe9 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6225816a dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x687066ad dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x746b02ad dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x773816c4 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7dfc8134 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a2ef94 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x883c17c6 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b3c91f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9bd844ee dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa39f407b dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xad315265 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb0ecb587 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb3500fa8 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb5f93340 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc7ebfd79 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcd6c036b dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed9e5ee7 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeda452c2 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xede4d809 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf487376d dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb25f454 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfe5255de dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x1d940082 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2dcb1235 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x5124d387 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x58744c41 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x5f877a36 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6ab5a1f6 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x70db5470 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x0ad2246c af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0f13e015 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2b10a8d6 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x40f7807b dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4ca4a1fa dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6385a9b9 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x672631a8 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6f3558ee dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x918a0bbe dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb2f014fc dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xba9fa7f9 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc0efaedf dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x9cc6bb87 af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xf28fe1eb atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x681c6a02 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x99f2edbc bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x73099cce cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xa2313568 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x98633c9d cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xb7ddf9e8 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xf0ebb20f cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xf4eefc0f cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x093f9644 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x48eed84e cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x26942b28 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x8765b94e dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x880a5bdf dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xa085f786 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xfca5fc5e dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0aa5f96d dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x2e2cdde9 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x31cdcbfb dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6822c7b3 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x95c9f8c1 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xd24f532f dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xd451e871 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xdf4c86bd dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xdc9b2781 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x1ac74ca7 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x3d740afa dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x3e619fda dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa84c7745 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd65a3400 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf157fb32 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x3afcd8e7 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x4a044668 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0ae1ca69 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x273a24ee dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x378916f5 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5dc90eaf dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7d5135a1 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8c3c25ce dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd30cffda dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xdde7bd0c dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00a15757 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x120dd4bb dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x666b794c dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x6f5848c7 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7bcb2fb1 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8a48409e dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x939e5ca5 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9dd881b9 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb4832207 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe7687eda dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xeb0b69df dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x775e35e1 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x8cf56816 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x92a02e2b dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xb0c67356 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xcabca193 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xe1d4dee8 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xf59bc404 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xd7a1859b isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x291d8502 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x30aebe34 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x6f740552 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x4c8a4dd7 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x8e404e5b lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x6d90538f lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xfdfcdbd8 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xaba877b5 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xcd69c0a2 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x1cbaea24 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x1afcb537 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x9f30e1bd nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x7a8accd5 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x750fbd81 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x01ff603a s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xdaec45db s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x5ec00d1e s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x69954a2a s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x6e1f1ba1 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x46788c80 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x74f0e0ea sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x2787b8ac stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x3b7a9bf6 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xfb082619 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x6e140dd1 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x1a5b5d33 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x7f75a888 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x7629c219 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x3d8bf73b stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xb971ee50 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xa096893a stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x1be0564d tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xaff5d08f tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x32dd149a tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x8abe8743 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xe3afa6ff tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x0fa0960c tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x78053677 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x5a5d93b2 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xe1a5f625 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xa6e43bd2 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xc3f253cb ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0xd3a9f330 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x07bc4229 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x36236aad zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x8b0de50d ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x4701b90b ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x6cc6b8c1 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x23db7a3b bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x7cbe61cd bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x9f883eca bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x35e680dd btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xe451f7c2 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cpia 0x297f388c cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cpia 0x353d510e cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2e3916fd cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2e5f55ee cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xc3c1713b cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xdef30fab cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xdfd66e37 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x1ac21c82 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x6af7f002 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x24a8ac6e vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x2d7bfe9c vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x2879ead9 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x2bb4d0cb cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x38e076b3 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x62998fdd cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x89305019 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x94bfca64 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x29033269 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x6c60c271 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x99652f59 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x9e72e870 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb322d992 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xfd55d013 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x062143fe cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0bb64af1 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x258175f8 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x29e7334d cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2a308bd2 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x302cb373 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x34f01346 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x50825481 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5182519d cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5da22f4b cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5fa90de9 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x61f23cbe cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x676c4e90 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x716bacd9 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x74a687b2 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x74c030a5 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9f4ea1fc cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbe324da3 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xce13cf48 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xea2c9426 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xec1cd382 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xecb25c7c cx88_set_scale +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x5b9f420a em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x968ad640 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x75289b6e gspca_get_i_frame +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8a116144 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x950ef86f gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa3f2efff gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa6b97cf3 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xe3d67fa2 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xf7b68da5 gspca_resume +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0f67a535 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x138d2410 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5070bfe7 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6371893d ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x64636711 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7e553d10 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x997ba3d9 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc49ede8a ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd2ed79bd ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xec71ec44 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xee26688a ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x225a5279 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x25f9b14b saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3e780b16 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x40e75faa saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x496931df saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5f849987 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7114b557 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x76034d91 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8d8d3508 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa7b5cd67 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb111348a saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xfc84df07 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/soc_camera 0x029e8158 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x413fa357 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xabbb7f7b soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb965a7ac soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x6ce875d5 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xf5abdea9 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x02bdc9c0 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x61cf5793 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x6231b32f usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x71549232 usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x79172f82 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x84b42002 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xadcd846e RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xbc11dbfe usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd26d1f7c RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xde5da8fe usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x233899ba v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9c7b23a9 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd338b527 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x0661786e v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x25657cc7 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xa414628f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xf34e1ae7 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1a3c36ac videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x26c2a04a videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x3c74e360 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xbb850559 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xbfa93ac0 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xcd901903 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videodev 0x0477d0b6 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3ce4d0fb video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x4fb1354d video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x610a8b78 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xac6276af video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0xbdbcebf3 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xd4baffee video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xddc94dab video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe543ecdf video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x44e90a37 videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xa66bab54 videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xc60b0442 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xea293114 videocodec_unregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x001dbdea mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0251cb2e mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0b32497f mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1d09d264 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x237f3236 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2be9108b mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2db3afe2 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x301ba430 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x49fe8799 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4ac56010 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5651675e mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x56a30826 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x75a8cbb8 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7f0713f0 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x86de54d0 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x909ffd7e mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x94d731a8 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa13a544c mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb796713f mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2c327d5 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc88ebf7c mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcc0e6522 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd216b3de mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdcfb6235 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe5382c73 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xedd1248a mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf38643c3 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfb4b0ebf mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfdd16ffc mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x040e23fb mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0a394c28 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0e994aa5 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x14eefa4f mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1e8d465c mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3040876e mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x36cb5ae6 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3869b73d mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3d28f59f mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x476cb291 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4c7831b2 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4eb3b5c0 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x522ddd5b mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5a5a585c mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8e913e2e mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x911bb783 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9cf2d9bb mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb37d84df mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbe2068b0 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc292ec30 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc8e7aded mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd29cc071 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdfaad59b mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe0ac6756 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe11bdb56 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xeed653ff mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0fa28120 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x25427a7e i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4553b35c i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x49f0fa8e i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4ff0de36 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x66e44f58 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7acd62fd i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7bdbc6d9 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x96257dec i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xac8fd59c i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb0613049 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc6972c22 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc77f9b42 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc7d1c2d9 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd078ed8c i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd5d3dd02 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd7117e88 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe69b99a5 i2o_parm_table_get +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x362cdb44 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x92badc98 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x00c482fd mc13783_unlock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x02076fb2 mc13783_reg_read +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x216051c3 mc13783_irq_status +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2f12a9b8 mc13783_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x716ce685 mc13783_irq_request +EXPORT_SYMBOL drivers/mfd/mc13783-core 0x88433a74 mc13783_irq_free +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xad61afa7 mc13783_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xc2cac286 mc13783_lock +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd236a93d mc13783_reg_write +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe3bdb161 mc13783_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe611f6dd mc13783_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13783-core 0xf68f0283 mc13783_reg_rmw +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x350c6240 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xb021c22c ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x1400b69c c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x9b2000e2 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x7906fa40 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x7c4b1f6e ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x035fcafd tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x262517bd tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x3c07d136 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x486cbb68 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x4aadf319 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x4bc011b9 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x4d2f7da7 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x90868667 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xaba0e3a3 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xafd907b8 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xd528eaf3 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xf2064551 tifm_free_device +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xaa465e26 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x074e649a mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1284c70c mmc_card_can_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1ecf067d mmc_host_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1f8433ee mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x268c4ba3 mmc_card_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3eee0f64 mmc_host_enable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x47ca6f06 mmc_align_data_size +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x48418f99 mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x510e46bd mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5663faed mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5badee26 mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6204057a mmc_power_save_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6a903c91 mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7a316653 mmc_host_lazy_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7c5d0342 mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8a70cc3c mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa087c6bb mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb477e7fd mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb67ecefc mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc25a4834 mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xce12bdf3 mmc_card_awake +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd3edd443 mmc_power_restore_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xeafdec9e mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xeb733dc9 mmc_try_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf26237c9 __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xfb17866d mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x28bcf380 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x95bd7bf2 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xf31a6674 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x670804d8 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xc3a7f602 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xc7d950bb register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xdab1fd3c unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xb2c1f10d mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x4e857649 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xbe49b4d9 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x1abd45d9 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0x24ce881d del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x46620552 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x82a18823 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x1e16fe01 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc10791dc nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x15d017c7 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xf1c4bd4e nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x14521119 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xbc4c4561 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xe8ca759d onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xe973d20f flexonenand_region +EXPORT_SYMBOL drivers/net/8390 0x1ecb0243 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x222c13cb ei_open +EXPORT_SYMBOL drivers/net/8390 0x3d8a3c13 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x98b09f07 ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xabafd9c8 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xb2d8ca60 ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0xb503fe9e ei_close +EXPORT_SYMBOL drivers/net/8390 0xb661c6e6 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0xb7657a96 ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0xdc2baced ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1cc13460 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x41c2ee97 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x53b1ec3f arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5de047e7 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7a952513 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x99e47278 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xcbca9120 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xda7e7bf2 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xefd26e30 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfbbfbac9 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x2abb421a com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x9a4e577c com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xb1c6e13a com20020_netdev_ops +EXPORT_SYMBOL drivers/net/bnx2 0xb9119b6f bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0xeb23c7fa bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x427fe28a cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x011bea88 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0cd866db cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2aee2b29 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4eb74928 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5583661d t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5bebe22e cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x66e1c1cc cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x91b13eee t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x93396ad4 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9b0e37c4 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb050604c cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb18e4648 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb83854fc dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdc1f4f64 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xde9fef7e cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe6bd9e85 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x11dd627d cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3c684b7f cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x510de1e6 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5d49e35c cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7a2de052 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x80ed42cd cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x85490cf3 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa5d20cf3 cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa7eef6c2 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xaf6807fc cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb2929ec1 cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb6bcff55 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc88fca8c cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd646aae5 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd6d0ac83 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdd9191e9 cxgb4_netdev_by_hwid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xec3012ed cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf677d921 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xfde2a37e cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xfe7ad4ac cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1703fb3d hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x2dc94290 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x495e650d hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x4d75d289 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc6f382d1 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0c03d723 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x53d4e0b3 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x90578338 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9c9423b9 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9f66b1fe sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xaa798ac6 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb36031f5 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xba617e6e sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xea87f1ef sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfb53a858 irda_register_dongle +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mii 0x03196e66 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x24eaee00 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x2bee5c3c mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x4a035dd7 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x56af1adb mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x6aec2423 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x81014583 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xc02e2724 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x8f45c679 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xb793187f free_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp_generic 0x0a0e0938 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x0a7d0329 ppp_dev_name +EXPORT_SYMBOL drivers/net/ppp_generic 0x67b6435e ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x7f478134 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x872d6b61 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xab7d4cfc ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0xaddfe31d ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xc0409622 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xc3604bc1 ppp_register_net_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xea724ae0 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0xebeec3b5 ppp_input_error +EXPORT_SYMBOL drivers/net/pppox 0x1e50c286 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xc09c0c3e pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xc7629a61 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/sungem_phy 0x7fe63a3f mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x2568439c tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x29f931e6 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x63616847 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbd84262d tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xfcf511e6 tms380tr_close +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1e348e4c register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x381b6034 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3a5d1034 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3e876ea9 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x437af1a8 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x666d71bf hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x878e74cf hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb9c90f33 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf00a3b4f attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf31503db hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf969fb30 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xfb894e61 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x09c0458b init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xae6afe1e stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xc0a74c61 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x04ed86b2 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x14f7f622 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x21a6eac5 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x292bce8b ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x070e90f8 ath9k_cmn_rx_skb_preprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x211928c7 ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x905b616b ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb0ea16c3 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc2769ae2 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xee0931c7 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf2c26a66 ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x040ea96a ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b9fa5dd ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10d61ddc ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x139a9442 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13b61149 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x170ae174 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f006553 ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x202aba28 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25e39cfb ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x260353ae ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28891de2 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29dd5d65 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a3435a7 ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b019b2d ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e762e0e ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3263ca75 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x33556475 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x338b99e2 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3771dfe0 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37e65b3c ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3caed7d2 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3dc359a6 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x466ace40 ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c88c50b ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x517e2b67 ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x534fa5fa ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x566a9c22 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x570af22c ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x572407fb ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x581baec4 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b685f0d ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73be2a5a ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b4ea206 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ebd8ddd ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80493946 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80bcd529 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80d15e3b ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80fc0f82 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x839e7c51 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a83ba50 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8aa419a5 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92512148 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9440e9f3 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x991d8997 ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f5235df ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa388db23 ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3891e9f ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa63e7cd0 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa689be2c ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaaaef8be ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab4c33cf ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaca73232 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xace8c9da ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb15afed2 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb28d9e62 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6781c3c ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb997583d ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba97671f ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbcc8e92d ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd094315 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc425c298 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7d9f3e4 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcab5cf6d ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcdad293a ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0e27812 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1e862df ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8bf0601 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd90a459f ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf192974 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0b67ef6 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe74dce9d ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe98b2219 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb144c41 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xefa51b18 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1451ff6 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf512dae2 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf53aa8a5 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf896381d ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf95958f7 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa429380 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfcd3de5e ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff52dc37 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/atmel 0x82446e61 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x9a4ff020 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xe8cb6b03 atmel_open +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x034d540a hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12f9182f hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x13f3fad6 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1501c0ae hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x23b627cc hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x26984a38 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4b52cfd9 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x52715864 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x60998750 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x64cc60f8 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x79290715 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x81ba1c35 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x842734d0 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa45a03f2 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xac96cc15 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xacef76c3 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb11c341a hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb57b48e8 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbfb09f1d prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc2db9f46 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd57bf380 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdf96e346 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe1135e05 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf2292ed8 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf62a8c07 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x019b2695 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0ca796e1 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0cd86e89 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x10f3454b libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1b2f8f8b libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x21d42085 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x228c01ea alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x23e7a1e9 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x57595e9e libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5b7d3a26 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x665008c2 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6f40cb33 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7fdb7201 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xabd6bb61 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd9924962 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe20fdbfc free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe2658c92 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe8c49c10 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xecd41bac libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xed34f24b libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf8ccc7b2 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x003939a1 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x006fe47d iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00740d06 iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0186c3bc iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x06fc12e3 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09245d28 iwl_sta_modify_ps_wake +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0c01a7c2 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0d749b29 iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x12191e80 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x138d8f38 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14c5fdce iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1547022c iwl_calib_free_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18b0b2a1 iwl_tt_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a26a022 iwlcore_eeprom_enhanced_txpower +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a6dc5d9 iwl_set_hw_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a94dc81 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21fb92b0 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x220b9f3e iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x223b755e iwl_mac_beacon_update +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x27a4bf8d iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2dbfd6ed iwl_setup_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2ef7c1fb iwl_update_tkip_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3084d5c9 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3360d7af iwl_good_plcp_health +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x34f84cec iwl_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x354a3e3e iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x384356c5 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x38bb0c15 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3a947a3b iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x45cc0ef8 iwl_rf_kill_ct_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x478ddd62 iwl_sensitivity_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x47f08d08 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x47f59a47 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48084164 iwl_tt_exit_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c653234 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4cd97fc4 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e4b68e9 iwl_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4fe2d6fe iwl_set_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x511592f5 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x52e854ea iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x56b54812 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58ee13e0 iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d26fa61 iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ead5d56 iwl_eeprom_get_mac +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62da4ff4 iwl_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6441b12a iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x663ee444 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x672b3a57 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x694f8c41 iwl_ht_enabled +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b80df53 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6eb2c67d iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6ef782fc iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6f7fe519 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71a7d636 iwl_rx_missed_beacon_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72fb2c5a iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x73354770 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x760836f5 iwl_toggle_tx_ant +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x765178f6 iwl_sta_rx_agg_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78619e80 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ab0e3c2 iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7d55766d iwl_eeprom_check_version +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x81c64d62 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x828f2a53 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8314c72a iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86de09e8 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x877e00b3 iwl_sta_rx_agg_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x87ba6349 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b006135 iwl_init_sensitivity +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8d68eece iwlcore_eeprom_release_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8f3cadef iwl_dump_fh +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8f86bed7 iwlcore_eeprom_acquire_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x94b04a4e iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9a682aaa iwl_set_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9b84529a iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9be8b24d iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9ed51168 iwl_set_rxon_chain +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9edc7836 iwl_hw_detect +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa188c55e iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa27327f6 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa87f0281 iwlcore_rts_tx_cmd_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa90240c8 iwl_reset_run_time_calib +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaa192252 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xab48ab6c iwl_restore_default_wep_keys +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xabe750e8 iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf5492e0 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb5ee9e68 iwl_reply_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6ab5231 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8a3b8de iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbbcdfecc iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbccdfa96 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbd3e3255 iwl_verify_ucode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc1c7ae90 iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc532f33d iwl_add_bssid_station +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc7112e9f iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc82cb98d iwl_remove_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcad87eed iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcc6a88dd iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcefa656a iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd1d75df7 iwl_free_tfds_in_queue +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd7c8fe97 iwl_send_calib_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc3ab0ab iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xddcc94b1 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe2c32a1a iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe59ebc62 iwl_chain_noise_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe5e1442b iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe61766cf iwl_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe66e85d9 iwl_rx_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe75bc1af iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe75e5f23 iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe76e0d45 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8b6e4dd iwl_tt_handler +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeaba2706 iwl_remove_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeafc9e1e iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec3be7a9 iwl_tx_ant_restriction +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec71e2d3 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf030d5cd iwlcore_eeprom_verify_signature +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf103f952 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf1620ca4 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf42931a7 iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf4c5d2b2 iwl_tt_enter_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf55b691d iwl_tt_exit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9517827 iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa870d6b iwl_sta_tx_modify_enable_tid +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfda78f32 iwl_sta_modify_sleep_tx_count +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfdaf60a1 iwl_dump_csr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe669ba4 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0440d3fe orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x28a5e5a2 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x29c9b1db orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2acd7cbb orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2c930269 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3ca04af4 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5131429c __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x62991aaf hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6b73e5b7 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7b3ef6e2 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x957b422f __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbfeb60f3 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc456d88f orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd90c38d3 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe4b1fce4 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfad92d6c orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfe13c04c free_orinocodev +EXPORT_SYMBOL drivers/parport/parport 0x0590004c parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x079aea20 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x0df46d98 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x0f43de65 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x1d069ad5 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x1f47a4b3 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x223d5e29 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x22f8f733 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x23994a30 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x2852e290 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x3c01a777 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x4700f99f parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x60c92241 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x6f54afd8 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x8b17b7c8 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x9ad3cbed parport_read +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x9e5d52a0 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xa20cae9f parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xac3d29ef parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xacf5ffb5 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xaf17ae17 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xc1918524 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xc6db813a parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xcd0ce131 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xd141e83c parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xd698e0f0 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xde58053d parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xe3789f6d parport_release +EXPORT_SYMBOL drivers/parport/parport 0xeae282eb parport_write +EXPORT_SYMBOL drivers/parport/parport 0xf7431c6a parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport_pc 0x28462fda parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x2cdae734 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x04e10b18 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x163dd22a pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1c4d8cf0 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1fc2c204 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x34b28783 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4384d7c2 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x50d7cd7d pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5f42b6c2 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x66251073 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x688df648 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x75b0e1aa pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x80cbe9c1 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x876e8b52 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb8657261 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd13d0b32 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd1e85334 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd49bbdbf pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x11a0b977 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1a26f9fc pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x301861b6 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4acdabcc pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4eac1df7 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x88504e3a pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x94d58f26 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf884bb9 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xea7b9b79 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xed6f62e6 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xff898f42 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x2fb1969b pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x5eb00e04 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x9cdb9689 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1285a46c fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1d17d8d4 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4c0db67f fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x558e8a86 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x80f8348d fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9b50d088 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf65e57dc fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0758787b fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ad3fbad fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x137d271d fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a22d139 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1fc29289 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26d34598 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x275b5c62 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a47efbc fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x347f1de8 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x437550aa fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x44603d93 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4bf7f967 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c24c338 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x52cc90e6 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x53b164d0 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5be3d499 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5d49bb8e fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x68603889 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7683388a fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76b50fcc fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7799c220 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x79a195fc fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x808a5e0a fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x896b8685 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8d705490 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fd4d3e6 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa0a9e7c2 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa393d53b fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa4deaae3 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac0c410c fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac1cb86d fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1c372c8 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb381fba8 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb5589897 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc1689948 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3e7ed64 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc792c69f fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0b1dbc1 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2c77985 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf88afa61 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc3d7c05 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfe691f88 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xfa6b1d95 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0012e994 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x01427210 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06d23ee2 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x07f9e27e osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0be9d83e osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1f625c65 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x26326d59 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x26c708d3 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2c4d074b osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ca35e51 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x383ac826 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4f74204a osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x593ca491 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5c058f9f osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60db1d00 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6a498a3e osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6e57b39c osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7d964ff2 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x95a3fcb7 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x95efc3b8 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9d8a3b99 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa3eb14b4 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb0de3cda osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb0e01feb osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbd014b86 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc664ce59 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcdfb6d1d osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd8014357 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xda722258 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe0c6429e osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe2472bbe osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xed7dbebf osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/osd 0x52e33b9f osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6fe8ce4c osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x82664d40 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x845442f6 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xac8de25f osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xd53f90c0 osduld_device_same +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x0ef9b35d qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x17c3e32a qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4cc5081f qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x50e42571 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x83c84486 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xfcf91a15 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/raid_class 0x0b801755 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x67ab4846 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xd6e18e49 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x21ea8243 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x26ff78de fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3fc5a994 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x47786202 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5f2e47ae fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x65957f5d fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6a85e57a fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x744ebe34 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8fb4bce4 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xabe0eea2 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb3ef76a9 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xba501d20 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe60c618b scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x04469709 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0466197a sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0a4c1bb1 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1bcd5f54 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x38043349 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4766a378 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x50af902a sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x53ba297b sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5ebb3221 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x66f61fb9 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6996f095 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6dda6d53 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x731cf942 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x73a37b60 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x782cf5bc sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8068b6a9 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8a91fa0c sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8eaa6da8 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8f3cca76 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x90ceda57 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbddc6d47 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc25f7728 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xda278c34 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe2636c67 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe37fc538 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfbc243f9 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x0ae8c2f9 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x2e92f634 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xacdfb70e spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xbba522ab spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xfc34637b spi_release_transport +EXPORT_SYMBOL drivers/serial/8250 0x3d1e7fdc serial8250_register_port +EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/serial/serial_core 0x18ef9ef9 uart_get_divisor +EXPORT_SYMBOL drivers/serial/serial_core 0x29e4fce0 uart_register_driver +EXPORT_SYMBOL drivers/serial/serial_core 0x4af20eec uart_write_wakeup +EXPORT_SYMBOL drivers/serial/serial_core 0x4e81bf5e uart_update_timeout +EXPORT_SYMBOL drivers/serial/serial_core 0x5acd3cf4 uart_remove_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0x6915da1f uart_get_baud_rate +EXPORT_SYMBOL drivers/serial/serial_core 0x6c4216a8 uart_suspend_port +EXPORT_SYMBOL drivers/serial/serial_core 0x8bb5730d uart_add_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0xa445ee4e uart_resume_port +EXPORT_SYMBOL drivers/serial/serial_core 0xbcffe532 uart_unregister_driver +EXPORT_SYMBOL drivers/serial/serial_core 0xc72a1d82 uart_match_port +EXPORT_SYMBOL drivers/ssb/ssb 0x00215b4a ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x1730d14a ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x23a76f8f ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x2ac654d5 ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x33c4264f ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x485baae8 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x602a705e ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x613da71f ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x61c3b864 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x704d8e25 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x716f9cf7 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x72a040a6 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x893dc9dd ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x8ad0c0d1 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x8db31d4b ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x8e90040e ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x97e5803c ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x9a316ff7 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x9b6cb830 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xb7e5c312 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xced4d3c2 ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xed5b0ca4 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xf5832ffc ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x01fc8738 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x06f9ec38 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0c9b5f7e ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0ef3c2c8 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1025fae1 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x167e3cca ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x18d9e704 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x18f8572e ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1a252ad7 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c3b6aad ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x21cddcfe Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2347b0de ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2f805be3 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32589f3c IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x353ac858 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x49c8eca0 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b5c46a5 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5125e114 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x51883f8a ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x51ef70a8 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5e72f333 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x64eac136 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x66bd1cd6 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c5c7dc1 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6cac1ee7 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x713fa724 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7151b0b3 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7771c5c9 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8392bdf7 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x877d9cd4 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x90ff2726 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa0cd579a ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa982b24f ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xad3fb681 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb24842bf ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb4452943 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb74fec68 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xba1b75af ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbc02037e DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc18b8f89 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc79cb211 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc823700d HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xce9e58d5 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcf6fa8bd ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd00c9329 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd2eb9049 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd7064838 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb46fad5 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdc197e93 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe00ad991 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe1ec5334 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe1f7fa50 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa6a1923 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa96b6c5 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x46ac27bb tm6000_register_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xc0daf583 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 0xb5042208 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x19b0cb8a phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xfceeaf5a phone_register_device +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x09c44852 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xafed6c55 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xe9ba9d02 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x922ee700 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x030d212e usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0d4e652f usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1624b68c usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1a6b34b3 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1df5492b usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x262c4c99 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2c208644 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3a0a0697 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x63010402 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8d357a24 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x965671d6 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x96f4407b usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa0d5edea usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xad885641 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x1b0a6d0d usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xc55db906 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x8bb50755 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xe74b699f lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x3d60a8da cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0x8171375a cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xbfc9227c cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xf08fc2e1 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x129d890d display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x4cfb3128 display_device_unregister +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x9e82a001 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x0993b41b video_output_register +EXPORT_SYMBOL drivers/video/output 0x2e02ceb1 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x29447c44 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x5dbc86a5 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xacb9442d svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xb5ee7f97 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xd7d2444c svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xdd3324d5 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xe0c8e0fb svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0x397182bc sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xf066714a sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xe6ebeac1 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x13584dd9 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x8bc8f461 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x06712869 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x4c4eceaa w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6c7397c9 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x77b500ce w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x4ad8fcfd w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x636f1a2f w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xc7c6eed9 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xcaf42e68 w1_unregister_family +EXPORT_SYMBOL fs/configfs/configfs 0x0afb1c1c config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x0f3aeace config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x3cb3f755 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x43a8ce52 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x6e2c867e configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x7052311c configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x823b4ded config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x9eda4315 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xab7684af config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xba75120d config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xc634477f config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xf4664d6e configfs_depend_item +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x1493e211 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x25199060 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x33f71c9f fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4632ba25 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x4f09abea fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x5465997f __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x59e445b2 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x5cab9b1a __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x5cdcb716 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x5dddc4e0 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x6c44a920 fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0x6e92a2e3 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x6ef71ac8 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x6f155aca __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x740fd8a9 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7e32ec4d fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7eb29a72 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x9278efa0 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x98bcb236 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xa1a4896c __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xa1e7a9df __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcf8b53ee fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xcfe62486 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xd19f08dc __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xe50a408e fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xe8c65499 fscache_init_cache +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/quota/quota_tree 0x1fc3e7b7 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x87402c66 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x9ba8a95e qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x9cd5b1e1 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xece29ea5 qtree_read_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc-t10dif 0xb6896671 crc_t10dif +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x73ef0ca7 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x899b5507 make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0f9ba77c p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x1142b025 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x171ed0fd p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x18e88c35 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x1a20238b p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x2561479b p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x2d4e15aa p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x343d78ce p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x466b1477 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x49fc7a53 p9_client_version +EXPORT_SYMBOL net/9p/9pnet 0x51a9ac2b p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x54ddf3d0 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x56fcf157 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x584932c9 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x70850629 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x740597bc p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x78fc3418 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x799143aa p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x880454c4 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x9c0e6027 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa0f0c3fe p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xa216321e p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xa2bce8b7 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xb42e914c v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xc91896b4 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xce8d0aca p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xd0c332cb p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xd91b1b37 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xeb539770 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xf09f5827 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xf6453f11 p9_client_wstat +EXPORT_SYMBOL net/appletalk/appletalk 0x5c134021 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x9440cc3c aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xa67aada7 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xbf15b740 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x05e0e435 atm_charge +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3052b7c2 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x3e8a57bf atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x4d3f8fc6 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x4ed84347 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x7000309b atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x8f6e4760 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x9006a7ec vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x94339219 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xe49caf7d atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf5eab1ab vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xff4aacee atm_init_aal5 +EXPORT_SYMBOL net/ax25/ax25 0x1adc892a ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4c3da676 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5709f619 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x68099163 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa1318bcb ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xb7b35c01 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc92495bd ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe8446240 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xe891badc ax25_linkfail_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x01c35c02 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0a14cb45 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0c43c52c bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x204882d5 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x22afb19b hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x291cf537 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2b733a8a bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3c17bca3 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x429b1346 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b013b69 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5581ab1c hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x57af1f8b bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x58ae18ef hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b44a46d bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5da33200 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x63fe741b hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x67961325 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6a975377 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x86ebdcc8 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8b08e016 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96bf6b1f hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9b4357d3 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb593176b bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbbd692a3 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9544e07 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd154c6f8 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd43f3def hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe5ce61e0 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xef7aa398 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xefc1bd9d hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf016ff9f hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfa6c4d69 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0xfaaf730e br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x0e570db1 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x18676eba ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x508fa202 ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x052ca864 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x151fd0e5 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x153087c0 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x18849e5e cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x1afb355c cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x1c22f5ca cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x23941b05 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x2f5d3cc2 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x36af8e53 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x3abce61d cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x41aa43a1 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x513f41d6 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x672ccfd1 cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0x708625f0 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x75087c4a cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x76ae947c cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0x9550af5b cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0x975da69a cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x9ff10772 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xb39fbb0d cfpkt_more +EXPORT_SYMBOL net/caif/caif 0xb6946c10 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0xbe99133b cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xbf8213a3 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0xc4e21519 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0xc7f9e532 cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0xcdf8c2af cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0xcfb40919 cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0xd4c615c3 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xd5212a78 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xe0dac603 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/can/can 0x190e9ec1 can_proto_register +EXPORT_SYMBOL net/can/can 0x1ae846d6 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x2b071b1b can_proto_unregister +EXPORT_SYMBOL net/can/can 0x64670079 can_rx_register +EXPORT_SYMBOL net/can/can 0x8a444da1 can_send +EXPORT_SYMBOL net/ieee802154/ieee802154 0x10963b89 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1a126a69 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2cb17cb7 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6f875ced wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x79317b07 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7e3cd738 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x85d90310 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb89e2f1d ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc0850287 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc1baf98d ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc348e3ba ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc82cbf3c ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe2083d87 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4bc5d40b arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x66e3a98d arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xc21fd01e arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x0dd04bd1 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x97b67e56 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xd3c5089a ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xaaecd06b nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xafd635be nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb313a843 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb87b0827 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xba987359 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xc0d56139 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xfe851ae9 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x873cdfa1 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xf36a8d82 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ipv6 0x053f085c inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0x18df55d0 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x1ce7e3ec inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x1eeeae4b xfrm6_prepare_output +EXPORT_SYMBOL net/ipv6/ipv6 0x22a3b089 ndisc_send_skb +EXPORT_SYMBOL net/ipv6/ipv6 0x3a560962 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x3cc54dd7 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x3e0bd62d ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x40064f29 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x44c8b85e ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x49a89a55 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x533df377 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x63ad0e56 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0x66c249af inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x7725611e ipv6_chk_prefix +EXPORT_SYMBOL net/ipv6/ipv6 0x77d3cb7b rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0x837e4de7 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x84c8c6b5 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0x87d66ab6 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x9269dbd5 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x942017b6 ipv6_dev_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x9710b934 xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x9cbe960d inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x9eced56d ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x9fbb7133 nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0xab41bcd1 ndisc_build_skb +EXPORT_SYMBOL net/ipv6/ipv6 0xaf0cd22f inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xba30c0e8 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xc8aa82d6 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL net/ipv6/ipv6 0xe9d6f0c0 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0xf6556117 icmpv6_send +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x29a40653 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x45582ed7 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x60e410c4 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xfce7ea1f ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x9bce88ad xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xeff65d41 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x1035d09a xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x2b5d56e4 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x8e5059a5 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0a784751 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1a4c13e6 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x47629189 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8882c411 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa99b6ade ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc09de4c9 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcc61b69b ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd3c74487 ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x001c746c irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x044c1671 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x08a82833 irlap_open +EXPORT_SYMBOL net/irda/irda 0x11671b32 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x1573e743 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x22caf86e hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x2b2dba21 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x2b3cb77a irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x2d3765bc hashbin_find +EXPORT_SYMBOL net/irda/irda 0x31cb37a6 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3bbb8486 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x4479ef51 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x538d5d22 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x572583cf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x5f55c3a2 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x74c6eb16 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x752d6bf3 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7aa1ddbc irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x7bad3cab irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x7de04a81 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x80da7829 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x90608f7a irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x987e9379 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9c551f84 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xafa7ed13 iriap_close +EXPORT_SYMBOL net/irda/irda 0xb2c59650 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xb5b17b19 iriap_open +EXPORT_SYMBOL net/irda/irda 0xb5c93e6b irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xb710786e hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbf285a4c hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc17b620c async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xc3a512dd hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xc82c640c irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xca549c6d irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xd7bd18f1 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe0cfd3e4 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xea48bf1f proc_irda +EXPORT_SYMBOL net/irda/irda 0xece9d922 irttp_dup +EXPORT_SYMBOL net/irda/irda 0xed471146 irlap_close +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xedf805a9 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0xef16660b hashbin_new +EXPORT_SYMBOL net/irda/irda 0xf1b37a69 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/l2tp/l2tp_core 0x4db69d44 l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0xfb564ef2 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x003a4a33 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x43139d77 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x7835b07e lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x79e7c19f lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x7b50abfc lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xe59e83d3 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xe66dd757 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xf915f005 lapb_register +EXPORT_SYMBOL net/mac80211/mac80211 0x00903e2c ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x1a46b2d1 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x2c36dede ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x2e28ac40 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x32433251 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x374a77ac ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x3d338866 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x576275e4 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x5a15d1b2 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x65992b88 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x666285f8 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x6738c89e __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x6c9863b2 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x72888d97 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7673b35b ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x80689c4f ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x897beabf ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x8eaf9297 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x8eb8c46d ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x90402e9b ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x914501c8 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x964e66f1 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xac24dddf ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xb22f6a59 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xba68009b ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xbadfc1cf ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xbbb63f5c ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xbf1ac6b4 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xe093c25c __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xe473cbfb rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xe59a3b17 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xeef77b50 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xefd73ad8 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xf5145ce1 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xf819dc2c ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xf845d134 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xff29598d wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x082cca48 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2b53993a ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x37a8f1d7 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x43284b6f ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5596a111 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7f347fa7 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8205c999 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x905508a2 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa405e2ab ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc6b2cd9c ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd2e9ef53 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x2144deb8 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xda250a23 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x3334caee nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x0344f2f6 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x2fdcdace xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x4076c9e6 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x40aa2ca0 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6d13c768 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x775e3792 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xa2569c21 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc5612e5b xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xd8461fbe xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xf6a07540 xt_find_target +EXPORT_SYMBOL net/phonet/phonet 0x1ccbe51c pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x2b3baac5 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x88f119a0 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xa7b1001c phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xae380cbe phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xb7ecc236 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xbf3ea862 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xf19c5206 pn_sock_hash +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1549a147 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1b4affed rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3af4de89 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x59d632fb rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5ba6178c rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7c664647 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8407a240 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa3e004e8 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb244b4ce rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb7080ca3 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc0b9b973 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdb44b47e rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe6c08a64 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe8a7109e rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfd63bf6d rxrpc_kernel_free_skb +EXPORT_SYMBOL net/sunrpc/sunrpc 0x94102fa9 svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x1a28e1be tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x48942ca8 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x4f66081e tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x74bca04c tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x7b25f378 tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x83db9a5a tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x8a64c545 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x979d02df tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0x9ce3435a tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb230848a tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xc1e40376 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xd03fc5b8 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xe9939bbe tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x49d25aa0 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x47a2e653 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xea9c6841 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x0457799f freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x08bd7b84 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x08e76000 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0a831cc5 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x0c7c0b1d ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x24cacb1f cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x3cd6b62d cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x424acd18 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x45314d04 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x4612e4fe cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0x4f38e6c4 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x50bd38e7 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x536f9915 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x5c049244 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x68c2f2ad cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x691043af cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6b294725 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x6c59319d cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x6eae9f89 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x80ef4128 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x83e3ee4c cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x854f052f cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x8ab30b2b wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x91176596 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x965bb39c cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9f12a3b2 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xa5b8b0ae cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xa735a925 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb2558cb8 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xbfe9a422 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xc375f760 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xc61fb8a1 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc89e235a wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xc8bd6522 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xc9e20766 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xcd3fd131 cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xde097ee7 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xe0067cde ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xe478d513 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xee8d44ea wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xf31e2cde wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xf6063561 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x4ae55b20 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xb3ecc70f lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xc38a83f0 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0xcda47ad0 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xd59860a8 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0xd9278a43 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe4868fb0 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xfd8f119d lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x62063d42 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x241ce11a snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3885e7cb snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x8498920e snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x881a2cda snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x135ff1b4 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xef868b65 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x0df2e317 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x26885c56 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7ab3ab98 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7ddf2a2e snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x85c27c7a snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x85e4ac82 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd4945484 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xfcf964a7 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xf4e018d1 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x01dd3ec9 snd_cards +EXPORT_SYMBOL sound/core/snd 0x026e2393 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x05e0fc38 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x11fb1023 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1db21e34 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x249625b5 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x24d7ebcc snd_component_add +EXPORT_SYMBOL sound/core/snd 0x38842953 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3d5a3630 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x456ee475 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x47d6e83e snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x4931281b snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4aeeaddc snd_card_free +EXPORT_SYMBOL sound/core/snd 0x59dc57a9 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x61b58333 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x61c30817 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x6635a7f4 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x73fc3f9e _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x7b28a39c snd_device_register +EXPORT_SYMBOL sound/core/snd 0x80ebffae snd_device_free +EXPORT_SYMBOL sound/core/snd 0x8e875b54 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x948589ae snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x95bacd18 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x9e007e85 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa6b9915b snd_info_register +EXPORT_SYMBOL sound/core/snd 0xa7a0b060 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xa7ab2e27 snd_card_create +EXPORT_SYMBOL sound/core/snd 0xa7dc8f52 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb346a7fd snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xb8f5731b snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xba338faa snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xbfa60685 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xc3aa5a80 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xc9bd557f snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xca1df0c1 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xd732d212 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xd9fdcc4a snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xdbca447b snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xe17608c1 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe86658b1 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xf4201f08 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xf4f81c89 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xf9bdc1d0 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd-hwdep 0xd55b2393 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x18d9ce35 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19aa6037 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x23eee11c snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x7458c26c snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xa6fd2dc2 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x008acd62 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x08b6741d snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x1342e527 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x165b8d57 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x185d2721 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x1a5b899d snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x2052b440 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x222f838d snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x2543fd92 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x28239d10 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x2ae1ce62 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x30181127 snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL sound/core/snd-pcm 0x35b76d5c snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x40e388c1 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x433d97e6 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x47be03f6 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x56f74715 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x587cc932 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x58fcbdd5 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x5d601c04 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x622b5253 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x628fd0d7 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x66a705bd snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x73709444 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x77e2efe3 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x846b7b18 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x9679cac7 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x9cc2ee2f snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xb10554f2 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xb1d5be42 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xb3b4aa3e snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc433fc00 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xc84587ea snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xc9d8407b snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xca68a652 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd32e3bcd snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xd69796ca snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xdafddfad snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xf260de38 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf6d7e5d6 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xf9ccc59d snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xfe8f4619 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-rawmidi 0x156a460d snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x15c15674 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2085c77f snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x276f919a snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x277fbf61 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x38dffc06 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3bdd08c9 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4e812bb4 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5ea5e6d2 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x627a16f5 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x63770501 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7b7c202f snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x900748b1 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa3da00fd snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb40e6a14 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xde15c918 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf9184b32 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-timer 0x046d9779 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x0ea6946f snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x12b6235a snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x12e141cd snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x21f681d6 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x22fe2dde snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x5645c832 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x6e056802 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x9306c425 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x968880ba snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xbe56f29e snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xdde4eac7 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xfc850cd7 snd_timer_pause +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xe5d98b35 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1f70a268 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2503c0db snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4fe3247d snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x654b5412 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x67b5dd13 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x81ba081c snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x96a09414 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbe0a91e2 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xfcff3499 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x08e0df53 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x15229e78 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x272ef2a3 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x280ded87 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x340c1f22 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x40f53b6f snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5bcb2560 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc90a0af1 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf65e846a snd_vx_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x10580170 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1606ee5b snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1ca6015f snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x26e0c36e snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x28707c38 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf7073b78 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0504a889 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6c1c5a08 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x72733459 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xc36f7df8 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe618d821 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xfe23d578 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x7ceb58b5 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xd5ddba0c snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf9d46ea5 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xffcf192c snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xa77f9b3b snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xcf447e56 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x6d5fe773 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xed0158e9 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x2326a379 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x68e7fdb7 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9e41e66b snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xc6c2057f snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf6095a0b snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x11de04a0 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x3b64e1e6 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x4ce11d84 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5427fc79 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x70973c3a snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc184f930 snd_i2c_device_free +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0d31b0ee snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1c629338 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x22e7eefc snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2c967e7b snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2fb7dd7b snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5159a49a snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x61e42950 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xbadc6b07 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd16119df snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd739a3df snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x1199784f snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xb301dbee snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xf15690a3 snd_sb16dsp_configure +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x250c843e snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2fb59360 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3b5a2f20 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5349eae3 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5bab63b7 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5bbbc96f snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5c2dc032 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x61e0bcbf snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7a54303d snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x802d619f snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8b198067 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8b827611 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8b9bad4a snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa2be607c snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb87d9c9d snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcc8862cc snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xede9ce0c snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x03381295 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0c6fbcda snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x19b99bc2 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4ddc04c6 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5030518f snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x52a06fb2 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5484f448 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x80e48165 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x81c6a546 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x9ac9177b snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x07cc8636 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xac53be66 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xc71374d3 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x35f9c4c7 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4b7cb9b8 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x54071804 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x77e6d8a8 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe74fec54 snd_trident_start_voice +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0xfa7fddbf uda134x_dai +EXPORT_SYMBOL sound/soundcore 0xe614c6d2 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x43bbf0f7 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x52c60007 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6d89600b snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x8eb01f51 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf25ed721 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf598d4a0 snd_emux_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x33dc5202 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x43178f7e snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5d25ada3 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x694c6b7a snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x74624765 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x80b8d66f snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc535653c snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe6ce4268 __snd_util_mem_free +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xf873344c snd_usbmidi_create +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x000b4627 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x00356f64 registered_fb +EXPORT_SYMBOL vmlinux 0x0042e9be deny_write_access +EXPORT_SYMBOL vmlinux 0x006d6d97 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00818622 file_remove_suid +EXPORT_SYMBOL vmlinux 0x00a6bd3c scsi_dma_map +EXPORT_SYMBOL vmlinux 0x00cd53f7 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x00d092cf tty_vhangup +EXPORT_SYMBOL vmlinux 0x00d1d26f proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x00e00225 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x011239a6 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x0125599f generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x013c2b76 dma_pool_free +EXPORT_SYMBOL vmlinux 0x015dd71b vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x017196be sock_no_mmap +EXPORT_SYMBOL vmlinux 0x017f3827 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01dd829f tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x01ea7773 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x02384e8d ioremap_flags +EXPORT_SYMBOL vmlinux 0x024bd59c security_path_chown +EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026f782e keyring_clear +EXPORT_SYMBOL vmlinux 0x0287e4f2 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02ba8f78 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x02be7f1c inet_put_port +EXPORT_SYMBOL vmlinux 0x02c013d9 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x02d14b64 of_device_unregister +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02d93f84 llc_sap_open +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x0302c48b idr_destroy +EXPORT_SYMBOL vmlinux 0x03178a70 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x031ba9bf atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x032c537d kmem_cache_name +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0335c0ff generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x033e93bd nobh_write_begin +EXPORT_SYMBOL vmlinux 0x03498474 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x03696e79 __netif_schedule +EXPORT_SYMBOL vmlinux 0x036a3ce9 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x03764fc5 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03b30449 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03cd2c21 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x03f2ae09 llc_add_pack +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0400429e set_irq_chip +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042810f3 register_netdevice +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0490d5c0 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x04aa61f9 secpath_dup +EXPORT_SYMBOL vmlinux 0x04cfa732 xfrm_input +EXPORT_SYMBOL vmlinux 0x04ea1033 udp_proc_register +EXPORT_SYMBOL vmlinux 0x04ee7eb2 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x0519490d tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x0546d50a user_path_at +EXPORT_SYMBOL vmlinux 0x05599bc0 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x05617644 skb_queue_head +EXPORT_SYMBOL vmlinux 0x056ea6a2 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x0572bc5e ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x058f5b97 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion +EXPORT_SYMBOL vmlinux 0x05bef95f tty_throttle +EXPORT_SYMBOL vmlinux 0x05c9f8d9 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x05f55e9e sock_no_listen +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x06480759 poll_initwait +EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0688f88d dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x068fe0cc blk_start_queue +EXPORT_SYMBOL vmlinux 0x06cadd1f ilookup5 +EXPORT_SYMBOL vmlinux 0x06e004a4 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x06f1e751 __alloc_skb +EXPORT_SYMBOL vmlinux 0x06f928b3 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0716ed1c register_netdev +EXPORT_SYMBOL vmlinux 0x071a2d43 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073d38f5 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x0785ce7d tty_unregister_device +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a26afd register_gifconf +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b15dee tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07e174f2 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x0805be45 flush_tlb_page +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083f1086 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x0840c1d2 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x08527f55 xrlim_allow +EXPORT_SYMBOL vmlinux 0x08a24d07 filemap_flush +EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x0961e2fc scsi_print_command +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09912acd remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09fdfa4a i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x0a02fb8f sk_alloc +EXPORT_SYMBOL vmlinux 0x0a12aa74 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a4eb3e9 start_tty +EXPORT_SYMBOL vmlinux 0x0a57ee01 path_get +EXPORT_SYMBOL vmlinux 0x0a6f3e17 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x0aa8178e kernel_listen +EXPORT_SYMBOL vmlinux 0x0aac13e3 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x0ab99ad2 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0ad7fc8c iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x0b0c1448 blkdev_put +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize +EXPORT_SYMBOL vmlinux 0x0b41bc9a pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x0b5698bb xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bf7bf71 input_register_handle +EXPORT_SYMBOL vmlinux 0x0c12e626 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout +EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0c4c5515 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x0c61c495 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x0c633597 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c661542 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0x0c6cfa48 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x0c896a7d of_match_node +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9b6089 nvram_get_size +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca729be scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc0e3b4 inode_permission +EXPORT_SYMBOL vmlinux 0x0cfd65cf buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x0d113417 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x0d256cfb dquot_acquire +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d62d9af cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x0d6b4e45 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x0d9bd495 sg_miter_start +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline +EXPORT_SYMBOL vmlinux 0x0e097aab abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x0e24a67f flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x0e340182 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x0e388b33 pci_dev_get +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e733659 blk_peek_request +EXPORT_SYMBOL vmlinux 0x0e7fc00a kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x0e95f461 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x0ec7d064 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init +EXPORT_SYMBOL vmlinux 0x0ed4ffdf swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x0edf96d7 misc_deregister +EXPORT_SYMBOL vmlinux 0x0ef20db1 kernstart_addr +EXPORT_SYMBOL vmlinux 0x0ef3d771 sock_wake_async +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f299a28 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x0f484c6f install_exec_creds +EXPORT_SYMBOL vmlinux 0x0f4b3098 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x0f4b733c sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x0f6c8ece cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x0f6dfa95 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fef4bb1 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x1005d125 tcp_check_req +EXPORT_SYMBOL vmlinux 0x101cf2bb put_mnt_ns +EXPORT_SYMBOL vmlinux 0x104fab3b xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x10804aea kobject_init +EXPORT_SYMBOL vmlinux 0x10843b19 ps2_drain +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x10a8668c of_find_property +EXPORT_SYMBOL vmlinux 0x10c51497 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x10d5c46a bio_add_page +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f183af inet_csk_accept +EXPORT_SYMBOL vmlinux 0x10fc5507 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x111d3620 new_inode +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1153ba23 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11663cec adb_register +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11c4187a matroxfb_g450_connect +EXPORT_SYMBOL vmlinux 0x11c5c58d netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x11f50115 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x12080cec dma_direct_ops +EXPORT_SYMBOL vmlinux 0x12329e09 simple_release_fs +EXPORT_SYMBOL vmlinux 0x124c758f posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x124ea580 __find_get_block +EXPORT_SYMBOL vmlinux 0x1254372a submit_bio +EXPORT_SYMBOL vmlinux 0x12a0e6e9 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x12cf751a kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x12d80c4e inode_needs_sync +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e02f71 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13047859 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x13121039 netlink_ack +EXPORT_SYMBOL vmlinux 0x131f2e1a dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x1326c1b2 phy_device_create +EXPORT_SYMBOL vmlinux 0x134a3ece tcf_hash_create +EXPORT_SYMBOL vmlinux 0x136b04fe vfs_mkdir +EXPORT_SYMBOL vmlinux 0x137ae6f9 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x137b6fa0 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x1401bfae dget_locked +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x144bcccd nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x149379b8 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x14c55515 elv_register_queue +EXPORT_SYMBOL vmlinux 0x14c66659 thaw_process +EXPORT_SYMBOL vmlinux 0x14caa695 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x14ff9e08 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x1511aa18 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x155daaa2 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x158cce9e tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x1592954e posix_lock_file +EXPORT_SYMBOL vmlinux 0x15a6fee8 security_inode_permission +EXPORT_SYMBOL vmlinux 0x15c3aea5 ether_setup +EXPORT_SYMBOL vmlinux 0x15c3bca5 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x15d99714 set_anon_super +EXPORT_SYMBOL vmlinux 0x16033f05 skb_push +EXPORT_SYMBOL vmlinux 0x16049739 path_put +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x1618e17d filp_open +EXPORT_SYMBOL vmlinux 0x1643e0e1 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x16445159 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x165d8114 bdi_unregister +EXPORT_SYMBOL vmlinux 0x1698194e ll_rw_block +EXPORT_SYMBOL vmlinux 0x169cd174 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x16bc25f4 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x16bc657a phy_find_first +EXPORT_SYMBOL vmlinux 0x16be525c writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x16c4176e page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x16c4acbc inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x17030514 bdevname +EXPORT_SYMBOL vmlinux 0x170aee64 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x170ec140 seq_printf +EXPORT_SYMBOL vmlinux 0x17455b77 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x175270c7 security_path_symlink +EXPORT_SYMBOL vmlinux 0x17553fd4 iget5_locked +EXPORT_SYMBOL vmlinux 0x176cf01c security_inode_init_security +EXPORT_SYMBOL vmlinux 0x176f2bf4 dev_driver_string +EXPORT_SYMBOL vmlinux 0x17702987 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x17aa616c d_move +EXPORT_SYMBOL vmlinux 0x17be1b0e fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x17d51473 dquot_operations +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17fefa18 journal_init_inode +EXPORT_SYMBOL vmlinux 0x180a511a inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x18144301 eth_header_cache +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x185c849e thaw_super +EXPORT_SYMBOL vmlinux 0x18639f43 netdev_set_master +EXPORT_SYMBOL vmlinux 0x18814941 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x189a67e1 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x18b960a7 matroxfb_register_driver +EXPORT_SYMBOL vmlinux 0x18c4bbdc tty_port_init +EXPORT_SYMBOL vmlinux 0x18ce61f6 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x18d28e52 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x19312d22 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x196a2ce4 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock +EXPORT_SYMBOL vmlinux 0x197b1254 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x1991cab2 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x19e0c56a sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x19fc8dfe __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x1a0d5b93 write_one_page +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a1cab32 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x1a451d19 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x1a6a600d page_symlink +EXPORT_SYMBOL vmlinux 0x1a6daddf down_read +EXPORT_SYMBOL vmlinux 0x1a882364 down_killable +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa30cc0 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x1abcc815 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b2de7d3 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x1b3dee5f gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x1b48a166 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6ece29 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x1b78156a filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b8da549 misc_register +EXPORT_SYMBOL vmlinux 0x1b8dc9ff nf_log_register +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bce9d4e unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x1be029c0 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x1bef602e i2c_use_client +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c5d88fc genl_register_ops +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1cb4abaf dev_uc_init +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cc9d014 take_over_console +EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc +EXPORT_SYMBOL vmlinux 0x1cdef882 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x1d22967c call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d343a1d posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x1d39c49b alloc_fcdev +EXPORT_SYMBOL vmlinux 0x1d59abff dentry_unhash +EXPORT_SYMBOL vmlinux 0x1d6c6e53 sock_no_accept +EXPORT_SYMBOL vmlinux 0x1d8e69d5 phy_disconnect +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd8f84b sock_kfree_s +EXPORT_SYMBOL vmlinux 0x1e25bdcc jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea36fe8 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x1ea38571 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x1ea67f93 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x1eb68938 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x1ec88244 matroxfb_read_pins +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f6976a1 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x1f7087c9 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x1f7a7ee3 DAC1064_global_restore +EXPORT_SYMBOL vmlinux 0x1f99b27e skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd8ccf5 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20028361 arp_send +EXPORT_SYMBOL vmlinux 0x20030ecd ioremap +EXPORT_SYMBOL vmlinux 0x20276f4c matroxfb_DAC_out +EXPORT_SYMBOL vmlinux 0x203118e8 d_validate +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x204a36eb slow_work_register_user +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x20903394 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x2090a64d sk_wait_data +EXPORT_SYMBOL vmlinux 0x20af3c3b pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x20c692dc bh_submit_read +EXPORT_SYMBOL vmlinux 0x20c96a16 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x20f3f490 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x211ad9cb set_user_nice +EXPORT_SYMBOL vmlinux 0x2132f1d3 get_super +EXPORT_SYMBOL vmlinux 0x21421f01 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x214f0e55 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x218bee07 dst_alloc +EXPORT_SYMBOL vmlinux 0x2197047c switch_mmu_context +EXPORT_SYMBOL vmlinux 0x21aca86e journal_start_commit +EXPORT_SYMBOL vmlinux 0x2217d3d0 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x221d6d5b jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22470863 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x2257efdc mdiobus_register +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x22705158 ps2_end_command +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228f9fae blk_make_request +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x23178bfb skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x2321f371 seq_write +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x232c88c1 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x2334a142 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x237ac6ee scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x238b06ae swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x23a4d330 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0x23b6858f vfs_writev +EXPORT_SYMBOL vmlinux 0x23b754cd inode_change_ok +EXPORT_SYMBOL vmlinux 0x23c4db2e scsi_host_get +EXPORT_SYMBOL vmlinux 0x23c6849b elv_rb_del +EXPORT_SYMBOL vmlinux 0x23da0642 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x23dbeb9d input_unregister_handler +EXPORT_SYMBOL vmlinux 0x23e11e58 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x23ee6dee serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x23f4c947 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x23f80cab deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2418ad2a blk_put_request +EXPORT_SYMBOL vmlinux 0x2424b77e pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x242ac0dc journal_stop +EXPORT_SYMBOL vmlinux 0x243ac43d generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x2447d49c dev_mc_del +EXPORT_SYMBOL vmlinux 0x244ad098 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x2452ffc9 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x245973f4 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245b5976 proc_create_data +EXPORT_SYMBOL vmlinux 0x24646302 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x246f7d28 seq_read +EXPORT_SYMBOL vmlinux 0x24753c2c pci_get_class +EXPORT_SYMBOL vmlinux 0x24a5b6eb open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x24a7c36c d_alloc_root +EXPORT_SYMBOL vmlinux 0x24affea8 gen_pool_create +EXPORT_SYMBOL vmlinux 0x24df54d0 prepare_binprm +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2548164b blk_free_tags +EXPORT_SYMBOL vmlinux 0x25608701 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x256a3be2 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x2573e106 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x25783410 override_creds +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25839cc3 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x259207f0 journal_restart +EXPORT_SYMBOL vmlinux 0x259b4824 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL vmlinux 0x25e08f9e force_sig +EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg +EXPORT_SYMBOL vmlinux 0x26170b57 blk_register_region +EXPORT_SYMBOL vmlinux 0x2628b809 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x2631d5f7 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x266f6275 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x267c4bb0 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator +EXPORT_SYMBOL vmlinux 0x269baa52 unlock_super +EXPORT_SYMBOL vmlinux 0x26a6ecf6 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x26be1629 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26e84b57 abort_creds +EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x270f7223 register_8022_client +EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count +EXPORT_SYMBOL vmlinux 0x272df557 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x2757cfa2 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x2760df26 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x277af174 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x27806e10 filp_close +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x278a5173 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x27955fe8 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x279ef2d2 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x27a90c1d tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x27b13f1f __lookup_one_len +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27cbd104 dput +EXPORT_SYMBOL vmlinux 0x27cdf339 pci_find_bus +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27da5d7a scsi_print_result +EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next +EXPORT_SYMBOL vmlinux 0x2848668e stop_tty +EXPORT_SYMBOL vmlinux 0x284d9951 generic_permission +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x2866f21a pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x287291f8 register_qdisc +EXPORT_SYMBOL vmlinux 0x28775a8a thaw_bdev +EXPORT_SYMBOL vmlinux 0x288208db skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a6f6a3 dev_mc_init +EXPORT_SYMBOL vmlinux 0x28b35719 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x28b5289b udplite_prot +EXPORT_SYMBOL vmlinux 0x28b6da59 generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0x28d7b8ab swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x28e0dd0c tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x29017960 init_task +EXPORT_SYMBOL vmlinux 0x291d141a pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x294beddb textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295a30d5 tcp_prot +EXPORT_SYMBOL vmlinux 0x295e4aff blk_plug_device +EXPORT_SYMBOL vmlinux 0x299762f2 do_sync_read +EXPORT_SYMBOL vmlinux 0x29a87e2b proc_dostring +EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29c016c1 dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x29c9a77e no_llseek +EXPORT_SYMBOL vmlinux 0x29dde92c rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x29f08078 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x29f950b2 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a7d5b9a default_file_splice_read +EXPORT_SYMBOL vmlinux 0x2a8f2241 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa10434 softnet_data +EXPORT_SYMBOL vmlinux 0x2aa70646 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x2aa7e293 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x2ae04d5e adb_client_list +EXPORT_SYMBOL vmlinux 0x2ae7181b mpage_readpage +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1643e4 commit_creds +EXPORT_SYMBOL vmlinux 0x2b1c14b9 block_write_end +EXPORT_SYMBOL vmlinux 0x2b664561 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit +EXPORT_SYMBOL vmlinux 0x2b6cff67 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception +EXPORT_SYMBOL vmlinux 0x2bcce064 dquot_drop +EXPORT_SYMBOL vmlinux 0x2bf71496 __register_binfmt +EXPORT_SYMBOL vmlinux 0x2c191722 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x2c2bd010 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x2c3796c8 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x2c6ffe7c dquot_resume +EXPORT_SYMBOL vmlinux 0x2c71e62e generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x2c996b71 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x2c9d33ba __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x2c9d469e matroxfb_vgaHWinit +EXPORT_SYMBOL vmlinux 0x2ca9ad4c pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x2cc917f1 vc_resize +EXPORT_SYMBOL vmlinux 0x2cc92ce3 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x2ce211a4 kernel_read +EXPORT_SYMBOL vmlinux 0x2ceaa4e2 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2cf7206b grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1b40ed fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0x2d3176eb bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock +EXPORT_SYMBOL vmlinux 0x2d387d13 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x2d4010c3 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x2d427e50 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x2d7b6640 vfs_fsync +EXPORT_SYMBOL vmlinux 0x2d7c69d4 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2da23293 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x2da8b0c8 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x2ddec2cd pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x2df1ce39 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x2e052035 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x2e09567a of_get_gpio_flags +EXPORT_SYMBOL vmlinux 0x2e2a80c1 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e8199fd ip_fragment +EXPORT_SYMBOL vmlinux 0x2ea2e2e2 of_node_put +EXPORT_SYMBOL vmlinux 0x2ea7cec5 bdi_destroy +EXPORT_SYMBOL vmlinux 0x2ead7324 giveup_fpu +EXPORT_SYMBOL vmlinux 0x2ecf5feb tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x2ed26731 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x2ed2d381 dev_uc_del +EXPORT_SYMBOL vmlinux 0x2ef19f22 tcp_poll +EXPORT_SYMBOL vmlinux 0x2efb0028 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x2f31a2f0 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x2f5ee1ab kick_iocb +EXPORT_SYMBOL vmlinux 0x2f85fc0f unregister_binfmt +EXPORT_SYMBOL vmlinux 0x2fefb873 i2c_release_client +EXPORT_SYMBOL vmlinux 0x30076d21 simple_link +EXPORT_SYMBOL vmlinux 0x302ac4b0 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x303b86f2 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x303f1255 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x30442c36 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x30457f17 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x3081ea02 of_create_pci_dev +EXPORT_SYMBOL vmlinux 0x30ae4f12 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x30fe7382 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x3108a0da mem_map +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x3124633b ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x316cb9c9 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31a98cdb ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x31b67ee3 ip_dev_find +EXPORT_SYMBOL vmlinux 0x31be2c38 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x31c78e12 d_instantiate +EXPORT_SYMBOL vmlinux 0x31d04018 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x31d8ac15 pci_busdev_to_OF_node +EXPORT_SYMBOL vmlinux 0x31e4bbd7 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x31e919fe key_put +EXPORT_SYMBOL vmlinux 0x325ade85 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x325ea52d init_special_inode +EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x3272924c blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x3292f3e2 gen_pool_add +EXPORT_SYMBOL vmlinux 0x32d0ff94 task_nice +EXPORT_SYMBOL vmlinux 0x32d1b5ad note_scsi_host +EXPORT_SYMBOL vmlinux 0x3328cc43 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x33556d8c tcp_connect +EXPORT_SYMBOL vmlinux 0x3373bf23 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x3376ece2 pci_enable_device +EXPORT_SYMBOL vmlinux 0x33ad18cd __neigh_event_send +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33c4f398 datagram_poll +EXPORT_SYMBOL vmlinux 0x33ca5ee4 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33cecce7 release_sock +EXPORT_SYMBOL vmlinux 0x33d1c305 phy_print_status +EXPORT_SYMBOL vmlinux 0x33e5f357 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x33ec4e6f sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x33f1802e scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x34239675 vfs_llseek +EXPORT_SYMBOL vmlinux 0x343797e8 key_task_permission +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x34556f13 drop_super +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x3460c795 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x347ab96b lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x348ac9b4 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34b24982 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x34b90dfe block_truncate_page +EXPORT_SYMBOL vmlinux 0x34c4cd7d default_llseek +EXPORT_SYMBOL vmlinux 0x34c6b70b rfkill_unregister +EXPORT_SYMBOL vmlinux 0x34dbd0a5 matroxfb_g450_shutdown +EXPORT_SYMBOL vmlinux 0x3501de6b jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x350aa293 posix_test_lock +EXPORT_SYMBOL vmlinux 0x3547a31d scsi_remove_host +EXPORT_SYMBOL vmlinux 0x3566d4ba security_path_truncate +EXPORT_SYMBOL vmlinux 0x3592622e sock_register +EXPORT_SYMBOL vmlinux 0x35aafce1 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x35bcc6e5 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x35bce17b pci_get_subsys +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c9ccba inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x35e3a99d scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x35f97080 macio_request_resources +EXPORT_SYMBOL vmlinux 0x35ffcbb4 matroxfb_g450_setpll_cond +EXPORT_SYMBOL vmlinux 0x3600f1c0 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x3610f787 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x36404866 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x364d6820 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x365098d8 unregister_netdev +EXPORT_SYMBOL vmlinux 0x3679bd61 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x369c88d5 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x36a0d004 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x36b01d5b xfrm_init_state +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x370d38fa netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x371408de scsi_device_put +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x372a4268 pci_request_region +EXPORT_SYMBOL vmlinux 0x37321edf generic_read_dir +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374a03f1 get_sb_single +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x377fa8e5 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x37864500 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37aa1f21 __irq_regs +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c96fd6 key_validate +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ff8afa dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x380a0c90 skb_seq_read +EXPORT_SYMBOL vmlinux 0x380fd830 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x38133c8b dqstats +EXPORT_SYMBOL vmlinux 0x384907e2 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389d8e69 kernel_bind +EXPORT_SYMBOL vmlinux 0x389ffa5a noop_qdisc +EXPORT_SYMBOL vmlinux 0x38ad0f80 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38f18a82 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x391c7421 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x391de909 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x397a03e5 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x398728d5 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x398bf1eb tcf_em_register +EXPORT_SYMBOL vmlinux 0x398e3537 pci_dev_put +EXPORT_SYMBOL vmlinux 0x398f2084 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x39b3a9bb input_flush_device +EXPORT_SYMBOL vmlinux 0x39d96f4f input_event +EXPORT_SYMBOL vmlinux 0x39dcfb46 i2c_master_send +EXPORT_SYMBOL vmlinux 0x39ec67a6 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x39f012b5 tty_free_termios +EXPORT_SYMBOL vmlinux 0x39fc3a94 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a699609 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x3a8fbe6a udp_poll +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aecd564 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x3b094256 bdput +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b6d860b cdev_del +EXPORT_SYMBOL vmlinux 0x3b7296b2 dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x3b7ed4cf register_key_type +EXPORT_SYMBOL vmlinux 0x3b8cd08f cdev_add +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd56547 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x3bf74234 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c393d07 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x3c618b0f skb_make_writable +EXPORT_SYMBOL vmlinux 0x3c6c3e50 migrate_page +EXPORT_SYMBOL vmlinux 0x3c7308f8 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x3c88b278 d_delete +EXPORT_SYMBOL vmlinux 0x3c917e2c tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x3c929864 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb79591 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x3ccaedc5 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x3ce24473 sock_i_ino +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf3e8bf rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x3cfe3baf devm_ioremap +EXPORT_SYMBOL vmlinux 0x3d0ddf2b alloc_fddidev +EXPORT_SYMBOL vmlinux 0x3d14fa9a cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x3d17ddab napi_get_frags +EXPORT_SYMBOL vmlinux 0x3d6dec05 key_type_keyring +EXPORT_SYMBOL vmlinux 0x3d78fd48 set_security_override +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3db338d0 pci_choose_state +EXPORT_SYMBOL vmlinux 0x3de26e55 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x3df82a67 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e1e4f61 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x3e273964 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e5f90a2 tty_port_close +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eb74500 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x3ec3b76a block_prepare_write +EXPORT_SYMBOL vmlinux 0x3ecfe141 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edc65d8 generic_readlink +EXPORT_SYMBOL vmlinux 0x3ee72fac phy_connect_direct +EXPORT_SYMBOL vmlinux 0x3ef163d7 audit_log_end +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f19db53 __lock_buffer +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f509834 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x3f880772 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x3fd2f07c pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff6f017 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x400ad843 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4066f963 simple_setsize +EXPORT_SYMBOL vmlinux 0x406e62cd handle_sysrq +EXPORT_SYMBOL vmlinux 0x408f0129 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40c779dc of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x40dd153b neigh_create +EXPORT_SYMBOL vmlinux 0x40f0d864 da903x_query_status +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x40fdc1de bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4111b5af tc_classify +EXPORT_SYMBOL vmlinux 0x411b7411 register_nls +EXPORT_SYMBOL vmlinux 0x4133ddbc dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x413c10fe vc_cons +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4173a7fc dev_add_pack +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41abe789 put_page +EXPORT_SYMBOL vmlinux 0x41c517ac __ip_select_ident +EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x41eb1b5c inet_select_addr +EXPORT_SYMBOL vmlinux 0x41f8c744 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x41fc2947 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0x4203e3cd gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x422ba830 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x426d891c kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x428a5938 tr_type_trans +EXPORT_SYMBOL vmlinux 0x4296584d nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a81bb0 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x42abd6e4 of_node_get +EXPORT_SYMBOL vmlinux 0x42b8ed3b wireless_send_event +EXPORT_SYMBOL vmlinux 0x42c2e86f machine_id +EXPORT_SYMBOL vmlinux 0x42dac3ca scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x4335146d i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x4339753c dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x4347b971 idr_init +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x436f7608 __napi_schedule +EXPORT_SYMBOL vmlinux 0x439e5eb8 framebuffer_release +EXPORT_SYMBOL vmlinux 0x43a8c52c file_fsync +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43b9d5f9 copy_io_context +EXPORT_SYMBOL vmlinux 0x43ca0889 find_or_create_page +EXPORT_SYMBOL vmlinux 0x43f1ec84 g450_mnp2f +EXPORT_SYMBOL vmlinux 0x43f8d7ca genphy_resume +EXPORT_SYMBOL vmlinux 0x44064a25 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x442669b9 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x44357f3a pipe_to_file +EXPORT_SYMBOL vmlinux 0x4435a481 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x444fb607 sock_no_bind +EXPORT_SYMBOL vmlinux 0x444fde23 phy_attach +EXPORT_SYMBOL vmlinux 0x4474fcf5 page_readlink +EXPORT_SYMBOL vmlinux 0x448212fa down_trylock +EXPORT_SYMBOL vmlinux 0x448a4117 netpoll_setup +EXPORT_SYMBOL vmlinux 0x44b7a33c inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44d602e5 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x45113597 register_filesystem +EXPORT_SYMBOL vmlinux 0x45246972 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x452981bd tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4564e0c5 dm_io +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x45a18670 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x45bc1fbf scsi_scan_target +EXPORT_SYMBOL vmlinux 0x45c038ed __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45f85f9b pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x4603bcc9 register_con_driver +EXPORT_SYMBOL vmlinux 0x46075716 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table +EXPORT_SYMBOL vmlinux 0x461bb16a rfkill_alloc +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4682b670 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x468996d0 pci_get_slot +EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x46ab281f follow_down +EXPORT_SYMBOL vmlinux 0x46bf79b2 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x46eb73d1 proc_mkdir +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x4756fda7 __page_symlink +EXPORT_SYMBOL vmlinux 0x475ba4f3 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x4768210f matroxfb_unregister_driver +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47bc1a37 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x47f4b309 sock_no_poll +EXPORT_SYMBOL vmlinux 0x48051490 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x4811e557 hippi_type_trans +EXPORT_SYMBOL vmlinux 0x4817212e alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x48a6b440 sock_no_connect +EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x490cee8b rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x492139c2 search_binary_handler +EXPORT_SYMBOL vmlinux 0x4933ce7e neigh_lookup +EXPORT_SYMBOL vmlinux 0x4935b4da pci_dev_driver +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x4953322b vfs_statfs +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x496d3904 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x49842655 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x499c398e get_gendisk +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49c831cb swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x49dbe666 serio_open +EXPORT_SYMBOL vmlinux 0x49de94f1 __getblk +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49e1e9e7 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x4a152d8d slow_work_cancel +EXPORT_SYMBOL vmlinux 0x4a27168c __scsi_add_device +EXPORT_SYMBOL vmlinux 0x4a290d4d cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a37834f should_remove_suid +EXPORT_SYMBOL vmlinux 0x4a3c86b9 inet_ioctl +EXPORT_SYMBOL vmlinux 0x4a4e1d32 netlink_set_err +EXPORT_SYMBOL vmlinux 0x4a83221c kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4a9d19b3 of_get_address +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4adcce00 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b106aef cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x4b1133a0 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b47b796 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x4b66003a ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x4b6d2e71 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x4b6e42e8 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x4b757b09 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x4b9c62ba of_phy_find_device +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bdfc9b2 kill_pgrp +EXPORT_SYMBOL vmlinux 0x4bedc116 ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0x4c087d4a journal_ack_err +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1b6ae6 complete_request_key +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c43e886 aio_complete +EXPORT_SYMBOL vmlinux 0x4c54ebf4 locks_init_lock +EXPORT_SYMBOL vmlinux 0x4c553327 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states +EXPORT_SYMBOL vmlinux 0x4c83f34f udp_disconnect +EXPORT_SYMBOL vmlinux 0x4c9739c9 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cc7b89f register_snap_client +EXPORT_SYMBOL vmlinux 0x4ccdf294 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x4d2b3f7a unregister_filesystem +EXPORT_SYMBOL vmlinux 0x4d2b531d generic_file_open +EXPORT_SYMBOL vmlinux 0x4d2c9db9 pci_find_capability +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d41a1bf devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x4d41b140 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x4d4eb7c9 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x4d98836b xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x4da6a2a2 skb_split +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dcac44b __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x4de26edc vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x4dea0373 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e581c9d dqput +EXPORT_SYMBOL vmlinux 0x4e669599 current_fs_time +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ea090d6 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x4eb2ebcf of_get_pci_address +EXPORT_SYMBOL vmlinux 0x4ef3c2aa unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x4f185ba6 revert_creds +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f286bef mb_cache_create +EXPORT_SYMBOL vmlinux 0x4f877a96 neigh_for_each +EXPORT_SYMBOL vmlinux 0x4f8d7ef8 dm_table_event +EXPORT_SYMBOL vmlinux 0x4f947cde macio_dev_put +EXPORT_SYMBOL vmlinux 0x4f9685a4 vfs_readlink +EXPORT_SYMBOL vmlinux 0x4f971b99 clear_user_page +EXPORT_SYMBOL vmlinux 0x4fb80639 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x4fd74d45 contig_page_data +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe99583 atomic64_dec_if_positive +EXPORT_SYMBOL vmlinux 0x4ffdd794 tty_name +EXPORT_SYMBOL vmlinux 0x5004b680 inet_shutdown +EXPORT_SYMBOL vmlinux 0x500eec7f __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0x501d8cb8 of_match_device +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5051df8d tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5067f47e fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x506e0999 tty_register_driver +EXPORT_SYMBOL vmlinux 0x507b63d7 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x507fcd9e tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x50861471 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x508bd2d0 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x50b37a69 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x50b41b4e con_copy_unimap +EXPORT_SYMBOL vmlinux 0x50c42d45 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new +EXPORT_SYMBOL vmlinux 0x50f3098a qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x517dbbee km_new_mapping +EXPORT_SYMBOL vmlinux 0x5181d14b blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x518dbd19 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x51d91d2b i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x520e50eb sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x5213f604 netdev_state_change +EXPORT_SYMBOL vmlinux 0x526a3cda dev_load +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x528e7d38 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x529870cb dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52a94948 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x52ac73a5 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x52bf40ef sock_rfree +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531c97e0 setup_new_exec +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x535350d0 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x53b0229d blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x53b0eb3d inet_getname +EXPORT_SYMBOL vmlinux 0x53b86634 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53cc0bbd journal_set_features +EXPORT_SYMBOL vmlinux 0x53d06bbd mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x53e8ea98 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53f3e332 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x53fa520a consume_skb +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54574b7b sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x546f7d94 skb_dequeue +EXPORT_SYMBOL vmlinux 0x54a7e149 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x54ac5a93 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x54d4f421 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x55005083 sk_filter +EXPORT_SYMBOL vmlinux 0x550c71df register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x555afa9b d_alloc_name +EXPORT_SYMBOL vmlinux 0x558b16e7 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x559c1f98 netdev_features_change +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55c682b8 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x562e3c33 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565098fb pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x566611a4 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x5668c793 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x566c5a9b kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x5688db09 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x569312a9 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56a5f109 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x56b4f8ea tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56f8f83c dev_uc_add +EXPORT_SYMBOL vmlinux 0x56f90da3 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5734399c tty_port_close_start +EXPORT_SYMBOL vmlinux 0x57518000 request_key_async +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x57836b7b pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x57936364 path_lookup +EXPORT_SYMBOL vmlinux 0x57a456ce lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57d65a5e pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e0302f sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x581fd669 simple_statfs +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5850fed2 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586818d2 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x589cc84a elevator_init +EXPORT_SYMBOL vmlinux 0x58a6b770 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x58bbe0b0 of_get_next_child +EXPORT_SYMBOL vmlinux 0x58d08d7a generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x58d516b9 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x591b49a2 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x592eacef ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x5973532c pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x5973b40f find_get_page +EXPORT_SYMBOL vmlinux 0x59956bbd dquot_initialize +EXPORT_SYMBOL vmlinux 0x5995874e register_exec_domain +EXPORT_SYMBOL vmlinux 0x599bafc5 con_is_bound +EXPORT_SYMBOL vmlinux 0x59a9a754 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x59afe79c pci_device_from_OF_node +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x5a11b2d0 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x5a1d7eae vfs_readv +EXPORT_SYMBOL vmlinux 0x5a25283a blk_integrity_register +EXPORT_SYMBOL vmlinux 0x5a3b115a kstat +EXPORT_SYMBOL vmlinux 0x5a41460a mac_find_mode +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a839ef3 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x5a8c2cf5 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ +EXPORT_SYMBOL vmlinux 0x5ae0d47f clocksource_register +EXPORT_SYMBOL vmlinux 0x5ae1d0f6 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x5b08fcf6 eth_header_parse +EXPORT_SYMBOL vmlinux 0x5b105808 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b41ff76 ide_complete_rq +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b48b47a i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x5b500f4e nf_log_packet +EXPORT_SYMBOL vmlinux 0x5b567aa4 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b6d353d pci_iomap +EXPORT_SYMBOL vmlinux 0x5b760952 module_layout +EXPORT_SYMBOL vmlinux 0x5b766f25 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x5b82ce85 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x5b94c134 i2c_transfer +EXPORT_SYMBOL vmlinux 0x5bab1488 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x5bb326e3 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x5bce0669 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x5bece315 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x5bf78809 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x5c23eae0 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one +EXPORT_SYMBOL vmlinux 0x5c3eb706 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x5c43128a pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x5c454045 vfs_rename +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c6dff21 dev_mc_add +EXPORT_SYMBOL vmlinux 0x5c7d3504 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x5cba17e0 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x5cbdea3a __devm_request_region +EXPORT_SYMBOL vmlinux 0x5cce8e92 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x5ce3fc07 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x5ce72e68 inet_release +EXPORT_SYMBOL vmlinux 0x5cf70f58 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x5cf9ffb6 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x5d17cb90 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x5d20f9e4 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x5d8f5e1a ps2_begin_command +EXPORT_SYMBOL vmlinux 0x5d95aa79 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x5d9736b2 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x5da8988e page_put_link +EXPORT_SYMBOL vmlinux 0x5ddaaacf fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x5df8cd08 dm_table_get +EXPORT_SYMBOL vmlinux 0x5dff7e53 vga_get +EXPORT_SYMBOL vmlinux 0x5e0995c0 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x5e2bdbaa dev_addr_flush +EXPORT_SYMBOL vmlinux 0x5e3c68e7 key_revoke +EXPORT_SYMBOL vmlinux 0x5e6335af d_genocide +EXPORT_SYMBOL vmlinux 0x5e8b250a tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb304f0 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x5ec05642 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x5ec8f0a1 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f4402cf xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x5f50dc81 iunique +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5fa8c2a0 I_BDEV +EXPORT_SYMBOL vmlinux 0x5fdd6a20 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x5fed3c4d napi_frags_skb +EXPORT_SYMBOL vmlinux 0x5feebae1 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60164f9f bdget_disk +EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap +EXPORT_SYMBOL vmlinux 0x60869afb inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x608f472e dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60ce77fc destroy_EII_client +EXPORT_SYMBOL vmlinux 0x60f71cfa complete +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x61055627 noop_llseek +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6123f77c sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6131bcd3 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x6146af1f bio_alloc +EXPORT_SYMBOL vmlinux 0x6162102f ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x619e456b scsi_init_io +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61ca8c42 sock_map_fd +EXPORT_SYMBOL vmlinux 0x61e2beab bio_integrity_free +EXPORT_SYMBOL vmlinux 0x61e8919c km_state_notify +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x6215f3f4 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x6218a792 of_dev_get +EXPORT_SYMBOL vmlinux 0x621a6014 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x6220641a xfrm_state_add +EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628332e8 pmu_power_flags +EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock +EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask +EXPORT_SYMBOL vmlinux 0x62d0c044 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x62edac0b ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0x6300f9a4 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x6309787e pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x630d33df tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x631b7062 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x631f5c4d hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x63a61da8 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x63a880c0 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x63f11c87 serio_close +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6449a048 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x646d4b65 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64bb1db0 simple_write_end +EXPORT_SYMBOL vmlinux 0x64d9d719 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x64e5b736 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x64f29359 security_path_rename +EXPORT_SYMBOL vmlinux 0x6512ebdc add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x6534e0c5 netif_rx +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654cd4ce locks_remove_posix +EXPORT_SYMBOL vmlinux 0x6550cc89 tcf_register_action +EXPORT_SYMBOL vmlinux 0x657cb86d inet_register_protosw +EXPORT_SYMBOL vmlinux 0x65b40768 bio_put +EXPORT_SYMBOL vmlinux 0x65d0d58f eth_header +EXPORT_SYMBOL vmlinux 0x65dcefcc generic_setlease +EXPORT_SYMBOL vmlinux 0x65ed6734 generic_show_options +EXPORT_SYMBOL vmlinux 0x65f074e7 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66960491 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x6733d4c3 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x673a67be redraw_screen +EXPORT_SYMBOL vmlinux 0x67595d96 journal_clear_err +EXPORT_SYMBOL vmlinux 0x6785f45e nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x679f3e26 bdi_init +EXPORT_SYMBOL vmlinux 0x67a84c56 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67b85d3b arp_create +EXPORT_SYMBOL vmlinux 0x67be1d3d cpu_active_mask +EXPORT_SYMBOL vmlinux 0x67c46b90 kill_anon_super +EXPORT_SYMBOL vmlinux 0x67da20ef of_get_property +EXPORT_SYMBOL vmlinux 0x67eeb87e phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x67f3508d get_io_context +EXPORT_SYMBOL vmlinux 0x680c953a phy_start +EXPORT_SYMBOL vmlinux 0x6815da2e scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x682a33ad ide_dma_off +EXPORT_SYMBOL vmlinux 0x685ec363 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x689d06c1 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x68f6874a alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x6900ba52 __break_lease +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x6997e4ab dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a270cb register_framebuffer +EXPORT_SYMBOL vmlinux 0x69ae1486 dquot_file_open +EXPORT_SYMBOL vmlinux 0x69c728e6 netif_napi_add +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69c94a1a vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d7e5b8 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x69dcba9e tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x69e0aa98 fsync_bdev +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f7eefe swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x69ffe2d8 vm_insert_page +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a2824d9 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x6a4058e4 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a6581e6 make_bad_inode +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a881685 skb_store_bits +EXPORT_SYMBOL vmlinux 0x6aae556d dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x6ac377a4 vga_put +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ad5549a pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x6adeb8a2 skb_set_dev +EXPORT_SYMBOL vmlinux 0x6af56456 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b25849e cdev_init +EXPORT_SYMBOL vmlinux 0x6b29b45b netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b59d568 audit_log_start +EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy +EXPORT_SYMBOL vmlinux 0x6b674452 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x6b7154a5 file_permission +EXPORT_SYMBOL vmlinux 0x6b92c1d4 iget_locked +EXPORT_SYMBOL vmlinux 0x6b9a5f9d vmap +EXPORT_SYMBOL vmlinux 0x6b9a745e kobject_del +EXPORT_SYMBOL vmlinux 0x6bb053b1 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x6bb8ffe5 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bd7f80b simple_empty +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6c06518d __serio_register_port +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c246caa textsearch_prepare +EXPORT_SYMBOL vmlinux 0x6c3d2865 km_policy_expired +EXPORT_SYMBOL vmlinux 0x6c5abc5b mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read +EXPORT_SYMBOL vmlinux 0x6cad5cbe pci_set_master +EXPORT_SYMBOL vmlinux 0x6cc4a1ba set_page_dirty +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cdd7a00 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x6cffbd01 security_path_chmod +EXPORT_SYMBOL vmlinux 0x6d23383d llc_sap_find +EXPORT_SYMBOL vmlinux 0x6d23da72 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2ad92f journal_init_dev +EXPORT_SYMBOL vmlinux 0x6d4560ec block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d7b0650 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x6d85d4f1 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x6d8fbab0 tcp_child_process +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6dafe5a2 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x6dde7d73 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e2c216a scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x6e49d219 skb_checksum +EXPORT_SYMBOL vmlinux 0x6e628b12 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x6e6c4e75 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e74cb4e cdev_index +EXPORT_SYMBOL vmlinux 0x6e99ce2b inet_del_protocol +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea41fdd blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x6ebd0bd0 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x6ed97cbd pci_claim_resource +EXPORT_SYMBOL vmlinux 0x6eee3c1e register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x6f11b2d7 of_device_uevent +EXPORT_SYMBOL vmlinux 0x6f3ceff8 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x6f4f799d sk_reset_txq +EXPORT_SYMBOL vmlinux 0x6f7969e4 prepare_creds +EXPORT_SYMBOL vmlinux 0x6f811e06 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f8f05ef devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x6f91f8fd load_nls_default +EXPORT_SYMBOL vmlinux 0x6f966f89 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x6fa31916 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x6fc2a4fa gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fcd5149 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x7002bdd6 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x701e462b nla_put +EXPORT_SYMBOL vmlinux 0x70268449 alloc_file +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x707eda08 alloc_disk +EXPORT_SYMBOL vmlinux 0x708085c0 dcache_readdir +EXPORT_SYMBOL vmlinux 0x70868fab d_find_alias +EXPORT_SYMBOL vmlinux 0x709cc168 seq_puts +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c0e31f follow_pfn +EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x70dee88f dev_addr_init +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x712d32fa blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x715c431b audit_log_format +EXPORT_SYMBOL vmlinux 0x719ec6e3 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a7a49e rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71cb0ed8 of_find_device_by_phandle +EXPORT_SYMBOL vmlinux 0x71ea3386 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x71eaf50c __scsi_put_command +EXPORT_SYMBOL vmlinux 0x71f6cb4c gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x72117f34 eth_type_trans +EXPORT_SYMBOL vmlinux 0x7214e942 pci_pme_active +EXPORT_SYMBOL vmlinux 0x721b40ca do_SAK +EXPORT_SYMBOL vmlinux 0x721f3f1c matroxfb_enable_irq +EXPORT_SYMBOL vmlinux 0x7237d7ce sk_common_release +EXPORT_SYMBOL vmlinux 0x723c7964 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x728261ab sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x7289fc0b d_path +EXPORT_SYMBOL vmlinux 0x729d0bb8 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72d25737 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x72db4e65 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7307662e remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x734e72e6 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x7378aa31 journal_create +EXPORT_SYMBOL vmlinux 0x737ac04a prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x737dd8c9 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x738f71ca generic_make_request +EXPORT_SYMBOL vmlinux 0x73a93953 cdrom_release +EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x73c2bb5d shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x7405a343 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x7442038f netlink_broadcast +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x746772ac pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x74728034 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x747fed36 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74f9d805 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x752f4c4a swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x7556306f sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x75635974 release_firmware +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +EXPORT_SYMBOL vmlinux 0x75918f34 make_EII_client +EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait +EXPORT_SYMBOL vmlinux 0x75aa8145 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x75ab4cd3 macio_dev_get +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x76029ae4 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x76053fad inode_init_always +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x760e109e bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x7636b36a __nla_put +EXPORT_SYMBOL vmlinux 0x763e9305 flush_tlb_range +EXPORT_SYMBOL vmlinux 0x765bda34 may_umount_tree +EXPORT_SYMBOL vmlinux 0x765eee3a may_umount +EXPORT_SYMBOL vmlinux 0x76776999 textsearch_register +EXPORT_SYMBOL vmlinux 0x767c4261 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x76888f83 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x7690d949 vfs_mknod +EXPORT_SYMBOL vmlinux 0x76a63ff1 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x76bc92f7 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76ec1089 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x76f75904 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x770aec14 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x770f9e8e mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x77240323 try_to_release_page +EXPORT_SYMBOL vmlinux 0x7730693c __free_pages +EXPORT_SYMBOL vmlinux 0x7732ee06 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7772b5c1 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x77b851c4 cacheable_memzero +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d9fff3 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x7838570c bdi_register_dev +EXPORT_SYMBOL vmlinux 0x78409778 journal_forget +EXPORT_SYMBOL vmlinux 0x78556370 ilookup +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x7890c5b0 input_inject_event +EXPORT_SYMBOL vmlinux 0x789656e4 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x78a51f94 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x78cafb0e copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e44bd6 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x78f644b3 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x791930af xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79a5734b i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x79a87300 elv_add_request +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b48abf blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x79edb5f4 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a35916e __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a582908 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x7a6143ff skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x7a8265e5 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x7a91e127 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7ad3c6ea mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x7ad76f7d blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x7af3811c read_dev_sector +EXPORT_SYMBOL vmlinux 0x7b465f1c seq_release +EXPORT_SYMBOL vmlinux 0x7b4a273f dm_unregister_target +EXPORT_SYMBOL vmlinux 0x7b4b1061 __register_chrdev +EXPORT_SYMBOL vmlinux 0x7b5f1496 lock_rename +EXPORT_SYMBOL vmlinux 0x7b5f42b9 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b76caf1 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x7b931a49 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x7baf13a3 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x7bb42613 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bdd84ac flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7bfd1189 dm_put_device +EXPORT_SYMBOL vmlinux 0x7c01c294 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c4c936d kmap_high +EXPORT_SYMBOL vmlinux 0x7c51bf6e sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x7c5cd432 free_buffer_head +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c66f6f7 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x7c72215e input_set_keycode +EXPORT_SYMBOL vmlinux 0x7c72d2bc journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x7c8b927d tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c906a90 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread +EXPORT_SYMBOL vmlinux 0x7cb13308 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x7cd852c8 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x7ceb5a9b pci_release_region +EXPORT_SYMBOL vmlinux 0x7d06383f of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d19d522 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x7d24b885 set_blocksize +EXPORT_SYMBOL vmlinux 0x7d4fe481 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x7d686ba5 kill_pid +EXPORT_SYMBOL vmlinux 0x7d86675a request_key +EXPORT_SYMBOL vmlinux 0x7d8aab79 tty_port_open +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7e072802 tty_hangup +EXPORT_SYMBOL vmlinux 0x7e11d280 replace_mount_options +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e50b6d9 bio_copy_user +EXPORT_SYMBOL vmlinux 0x7e6e5629 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x7e705d3e generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x7e7142b4 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x7e79d2a1 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x7e953f92 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x7eba291f pci_bus_type +EXPORT_SYMBOL vmlinux 0x7eccb3b5 fasync_helper +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f3d876e pci_read_vpd +EXPORT_SYMBOL vmlinux 0x7f43682a key_unlink +EXPORT_SYMBOL vmlinux 0x7f4808f4 elevator_exit +EXPORT_SYMBOL vmlinux 0x7f5e6573 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x7f6abd2e simple_transaction_get +EXPORT_SYMBOL vmlinux 0x7f858079 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x7f992dce gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x7f9c5c69 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x7fbd176a generic_fillattr +EXPORT_SYMBOL vmlinux 0x7fe2a42e ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x7ff08989 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x7ff9cf2e __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x801a7a4d update_region +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x801fcde8 mpage_writepage +EXPORT_SYMBOL vmlinux 0x804c31cd tty_port_close_end +EXPORT_SYMBOL vmlinux 0x804f36bb sock_wmalloc +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x80689b9d dev_get_stats +EXPORT_SYMBOL vmlinux 0x807822df max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x80b3dd00 irq_stat +EXPORT_SYMBOL vmlinux 0x80bbe37d scsi_block_requests +EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x80de231a idr_remove +EXPORT_SYMBOL vmlinux 0x80eee2a2 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x80f2df0d of_platform_device_create +EXPORT_SYMBOL vmlinux 0x813e51bb scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x813ed040 idr_remove_all +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x816f0b6a vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x8192a4f8 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done +EXPORT_SYMBOL vmlinux 0x81b84711 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x8201fd7a mdiobus_read +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x8234c75f skb_append +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8262f64b tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8271f601 blk_rq_init +EXPORT_SYMBOL vmlinux 0x827d422f delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x8296e577 ide_stall_queue +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b61b4d single_release +EXPORT_SYMBOL vmlinux 0x82bdca9f bio_kmalloc +EXPORT_SYMBOL vmlinux 0x82d79221 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x83268c6e scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x834a6fcd pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x83561386 fd_install +EXPORT_SYMBOL vmlinux 0x835e6cb4 do_sync_write +EXPORT_SYMBOL vmlinux 0x837f66f8 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83931172 scsi_get_command +EXPORT_SYMBOL vmlinux 0x839af201 blk_end_request +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83adae4e n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x83bff482 input_release_device +EXPORT_SYMBOL vmlinux 0x83d0ded2 ps2_init +EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x83ef5fcb bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x84031307 ide_dump_status +EXPORT_SYMBOL vmlinux 0x8429d375 of_translate_address +EXPORT_SYMBOL vmlinux 0x843bc293 __bio_clone +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +EXPORT_SYMBOL vmlinux 0x845df967 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x8474c579 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x84a8a944 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84ca60ab phy_start_aneg +EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x8504a0d0 inet_frags_init +EXPORT_SYMBOL vmlinux 0x8518de02 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x8541bccc intercept_table +EXPORT_SYMBOL vmlinux 0x85425e79 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x855a4e85 __blk_end_request +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x857cc938 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x859765ac __init_rwsem +EXPORT_SYMBOL vmlinux 0x85aa06ae jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x85bf6963 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x85c7f2d1 serio_rescan +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85efb343 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x85fde692 __breadahead +EXPORT_SYMBOL vmlinux 0x86027863 init_buffer +EXPORT_SYMBOL vmlinux 0x860c5096 napi_complete +EXPORT_SYMBOL vmlinux 0x861be39d skb_trim +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x86749113 bdi_register +EXPORT_SYMBOL vmlinux 0x8684ee74 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869273f5 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x86a0144b fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x86b2c17a downgrade_write +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x86fc7f6c send_sig +EXPORT_SYMBOL vmlinux 0x87151723 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87413140 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x878313ae xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87988c47 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88228d33 module_put +EXPORT_SYMBOL vmlinux 0x8857acbd xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x8877d51a max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x8892970a matrox_cfbX_init +EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait +EXPORT_SYMBOL vmlinux 0x88acfe7d request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x88cbe09e blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x8909966c block_write_begin +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x895242f4 get_phy_id +EXPORT_SYMBOL vmlinux 0x8953ba64 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897a2537 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x897b30e9 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x898e6941 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x89913b94 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x899e3088 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x89b3107b isa_mem_base +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a0b0fba dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x8a3e2504 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x8a6f1aaa sk_free +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add +EXPORT_SYMBOL vmlinux 0x8abfdb74 register_cdrom +EXPORT_SYMBOL vmlinux 0x8ad6e7cd blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x8aef98fd udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x8b14255d bmap +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b1be932 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x8b1ccb00 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x8b44f5d8 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b8a0e67 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x8b903057 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8be98765 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x8beb1704 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x8bf1df0a phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x8bf1ef2c kernel_accept +EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c856ed3 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x8ca50407 save_mount_options +EXPORT_SYMBOL vmlinux 0x8ca72aaa lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cf51d15 up +EXPORT_SYMBOL vmlinux 0x8d01cbd6 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x8d14bdf9 lock_super +EXPORT_SYMBOL vmlinux 0x8d1adc58 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x8d1b9f52 inet_listen +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d7ac6c0 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x8d99c6d7 scsi_device_get +EXPORT_SYMBOL vmlinux 0x8de19b47 macio_release_resource +EXPORT_SYMBOL vmlinux 0x8de1f18c tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x8df5da63 memstart_addr +EXPORT_SYMBOL vmlinux 0x8df72e53 ftrace_event_seq +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e0be548 mpage_writepages +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e69d796 flush_old_exec +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e799622 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x8e90fece scsi_register +EXPORT_SYMBOL vmlinux 0x8e96d2be phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x8e98a5b5 proc_dointvec +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8fda7107 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x8fdb2452 get_phy_device +EXPORT_SYMBOL vmlinux 0x8febff14 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900534e2 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x900b902e nf_register_hook +EXPORT_SYMBOL vmlinux 0x9025a60e blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x902c556a fb_class +EXPORT_SYMBOL vmlinux 0x903e09e6 journal_revoke +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x908471f7 blk_run_queue +EXPORT_SYMBOL vmlinux 0x90a8ee83 open_exec +EXPORT_SYMBOL vmlinux 0x90b1511d journal_start +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90cf470a xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x90f5580c arp_tbl +EXPORT_SYMBOL vmlinux 0x910060c9 km_state_expired +EXPORT_SYMBOL vmlinux 0x910ce99a vfs_readdir +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x912b89cb vfs_getattr +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91601697 scsi_host_put +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x917a6d65 skb_pad +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91a3f9c5 input_register_handler +EXPORT_SYMBOL vmlinux 0x91ac5123 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x91c7f52f __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x91d4e159 unregister_nls +EXPORT_SYMBOL vmlinux 0x91d6139c create_mnt_ns +EXPORT_SYMBOL vmlinux 0x91d88e48 __debugger_dabr_match +EXPORT_SYMBOL vmlinux 0x91e86bcb of_iomap +EXPORT_SYMBOL vmlinux 0x91ed9e48 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x91f0d415 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x91fe5ac7 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x91fef63f tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x921d2fb0 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x926b5470 dev_get_flags +EXPORT_SYMBOL vmlinux 0x9275cf0a bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x927ec31c d_lookup +EXPORT_SYMBOL vmlinux 0x92ad6fc1 kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0x92bc945a bdev_read_only +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9306eebc __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request +EXPORT_SYMBOL vmlinux 0x930b216f fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9367ea13 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x93714d4e xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x93732a81 tty_set_operations +EXPORT_SYMBOL vmlinux 0x93748d0c __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x937c4752 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x938fba04 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x93a3676e sock_wfree +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a9ab84 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x93c6c08b tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x93d93581 inode_init_once +EXPORT_SYMBOL vmlinux 0x93e80d90 file_update_time +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9425f22e journal_check_available_features +EXPORT_SYMBOL vmlinux 0x942e6902 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x94313207 input_register_device +EXPORT_SYMBOL vmlinux 0x943fd553 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex +EXPORT_SYMBOL vmlinux 0x947b5204 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a31dd2 unlock_buffer +EXPORT_SYMBOL vmlinux 0x94acea92 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x94af632e complete_all +EXPORT_SYMBOL vmlinux 0x94ceb181 pci_clear_master +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94e6caa6 dev_change_flags +EXPORT_SYMBOL vmlinux 0x94fcda87 sock_i_uid +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x952858c1 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x9528df73 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x95429b37 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x956e2f0e unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x95701751 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x95d3e99d tty_shutdown +EXPORT_SYMBOL vmlinux 0x960b604e in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x9656f8a0 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x9698a88b udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x969bb1e9 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x969cc62d flush_dcache_page +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d6a484 skb_tx_hash +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9769f924 __nla_reserve +EXPORT_SYMBOL vmlinux 0x9798df5b pcim_iomap +EXPORT_SYMBOL vmlinux 0x979aa4c6 blk_init_queue +EXPORT_SYMBOL vmlinux 0x97b4709b otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x97c52968 do_splice_from +EXPORT_SYMBOL vmlinux 0x97d53f24 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x97f7a3f4 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x981e10ed sk_run_filter +EXPORT_SYMBOL vmlinux 0x98248a94 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x984eaa38 generic_write_sync +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98761914 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x98826778 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x9885bebc tty_port_hangup +EXPORT_SYMBOL vmlinux 0x9895f4ed serio_reconnect +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x989e75c0 journal_load +EXPORT_SYMBOL vmlinux 0x98a0bb2d generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x98c07ec9 simple_rmdir +EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x9938312b tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x99572b20 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c39b77 sock_init_data +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a356291 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x9a3f66b2 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a76715e dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x9a84fd77 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x9ac2c9d5 send_sig_info +EXPORT_SYMBOL vmlinux 0x9acb1626 put_disk +EXPORT_SYMBOL vmlinux 0x9acb6e9d iput +EXPORT_SYMBOL vmlinux 0x9af4c4c0 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x9b358e83 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b4f22e0 journal_update_format +EXPORT_SYMBOL vmlinux 0x9b514c57 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x9b5bf024 llc_sap_close +EXPORT_SYMBOL vmlinux 0x9b6bc326 ip_defrag +EXPORT_SYMBOL vmlinux 0x9b6d2c56 nf_afinfo +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b8894b2 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x9b897b06 pci_get_device +EXPORT_SYMBOL vmlinux 0x9b94639b task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x9ba43e9f dm_register_target +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bbc01e2 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bdd973c scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x9be31170 down_write_trylock +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c1e6d72 simple_fill_super +EXPORT_SYMBOL vmlinux 0x9c466a5a wireless_spy_update +EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9c7a211d ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x9c8a3549 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x9cb2f089 have_submounts +EXPORT_SYMBOL vmlinux 0x9cb739c2 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cd92aab dev_disable_lro +EXPORT_SYMBOL vmlinux 0x9ce3ae81 sock_update_classid +EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfc93a7 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d05b566 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d1a4fae tty_kref_put +EXPORT_SYMBOL vmlinux 0x9d2451f0 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3aa78c bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x9d4193c0 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x9d5227d4 log_wait_commit +EXPORT_SYMBOL vmlinux 0x9d62ea29 phy_connect +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d9d0d90 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x9db47553 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x9dbb44c0 generic_listxattr +EXPORT_SYMBOL vmlinux 0x9e02a5be simple_transaction_release +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e2ddc69 pskb_copy +EXPORT_SYMBOL vmlinux 0x9e2e07d9 __brelse +EXPORT_SYMBOL vmlinux 0x9e4ff402 vmtruncate +EXPORT_SYMBOL vmlinux 0x9e5cfa5a blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e71ed4a xfrm_register_type +EXPORT_SYMBOL vmlinux 0x9e7bab2b ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9a355c lookup_bdev +EXPORT_SYMBOL vmlinux 0x9e9caefb journal_get_write_access +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9eb30013 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x9ecd5860 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eeb3b2f module_refcount +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f0c0059 generic_write_checks +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f1932f4 of_phy_connect +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f320c1c inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f68deb0 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x9f86332c input_allocate_device +EXPORT_SYMBOL vmlinux 0x9f958e84 unlock_page +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0xa002ab11 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xa025e872 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xa02bcb9d read_cache_page +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04396e9 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04cd324 qdisc_reset +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa0875269 pci_set_power_state +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b5f47d rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0xa0ba2b93 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d543fb scsi_remove_target +EXPORT_SYMBOL vmlinux 0xa0d680a9 fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0xa0fade29 del_timer +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1098c22 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xa116eb6c tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xa119e1a6 bioset_free +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1237170 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xa13edb01 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa1416381 unload_nls +EXPORT_SYMBOL vmlinux 0xa1447f5e set_create_files_as +EXPORT_SYMBOL vmlinux 0xa15b0eda nlmsg_notify +EXPORT_SYMBOL vmlinux 0xa177a37a bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xa185c10d tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa1a29bb2 lock_fb_info +EXPORT_SYMBOL vmlinux 0xa1a411fe input_close_device +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1e3e3fb dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xa1fe0ec7 block_commit_write +EXPORT_SYMBOL vmlinux 0xa2042528 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xa2063b72 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2511676 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xa262aab9 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xa2758cce fb_set_suspend +EXPORT_SYMBOL vmlinux 0xa27d1fef ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xa28faee1 ip_route_output_key +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b8dfd5 pci_target_state +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2c85a7b jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xa2cc6184 vm_map_ram +EXPORT_SYMBOL vmlinux 0xa2d9ea4f sock_create_lite +EXPORT_SYMBOL vmlinux 0xa2ddc92e pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa366c695 giveup_altivec +EXPORT_SYMBOL vmlinux 0xa3671fd6 pci_restore_state +EXPORT_SYMBOL vmlinux 0xa389b26f kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3b17d6b inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xa3b43e6b jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xa3bb7d3f scsi_execute +EXPORT_SYMBOL vmlinux 0xa3c89666 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xa3e22755 tty_write_room +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa3ec99d4 add_disk +EXPORT_SYMBOL vmlinux 0xa40db492 get_disk +EXPORT_SYMBOL vmlinux 0xa42295cf devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xa425a03b tty_devnum +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa43ebe3b nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa4642f85 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xa4647bee seq_open_private +EXPORT_SYMBOL vmlinux 0xa4add06b devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa4afe66e vga_client_register +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4f6cd88 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xa515f04f scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit +EXPORT_SYMBOL vmlinux 0xa57d2281 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xa58a92bc kernel_sendpage +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last +EXPORT_SYMBOL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5f49138 up_read +EXPORT_SYMBOL vmlinux 0xa5f99ce2 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xa62a116a km_report +EXPORT_SYMBOL vmlinux 0xa64b243e bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa6656a63 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa694dc33 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa6a55377 __scm_send +EXPORT_SYMBOL vmlinux 0xa6c4a030 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xa6cc1f4a icmp_send +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e22345 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xa70bf5f6 kfree_skb +EXPORT_SYMBOL vmlinux 0xa72f231f blk_sync_queue +EXPORT_SYMBOL vmlinux 0xa771d2ed blk_init_tags +EXPORT_SYMBOL vmlinux 0xa77590df netif_napi_del +EXPORT_SYMBOL vmlinux 0xa77fbf74 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xa7bc9cb0 simple_unlink +EXPORT_SYMBOL vmlinux 0xa7c8ad0f scsi_ioctl +EXPORT_SYMBOL vmlinux 0xa7cb16c5 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xa7e16975 dma_pool_create +EXPORT_SYMBOL vmlinux 0xa834e352 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xa843580c mdio_bus_type +EXPORT_SYMBOL vmlinux 0xa85b094f pcim_iounmap +EXPORT_SYMBOL vmlinux 0xa85b2169 sock_create_kern +EXPORT_SYMBOL vmlinux 0xa861ab6e __ioremap +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa8bcb8c9 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xa8ca9485 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xa8d45b13 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xa8db6f68 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xa8e3fab7 get_fs_type +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa926cab2 d_rehash +EXPORT_SYMBOL vmlinux 0xa934692e nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa9581bdd get_sb_ns +EXPORT_SYMBOL vmlinux 0xa9731348 seq_path +EXPORT_SYMBOL vmlinux 0xa9888a05 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xa98909fb remove_inode_hash +EXPORT_SYMBOL vmlinux 0xa98ddac1 phy_detach +EXPORT_SYMBOL vmlinux 0xa9958602 do_munmap +EXPORT_SYMBOL vmlinux 0xa9c372e0 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xa9c53cb8 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xa9c8f1a6 __kfree_skb +EXPORT_SYMBOL vmlinux 0xa9da69d0 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xa9e0f0b4 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xa9fa4145 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xaa0bb8bf journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xaa1d00b9 elv_rb_add +EXPORT_SYMBOL vmlinux 0xaa1daef1 dquot_enable +EXPORT_SYMBOL vmlinux 0xaa2642bb phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0xaa350f23 skb_insert +EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries +EXPORT_SYMBOL vmlinux 0xaa65c2b7 lock_may_write +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaab0c700 macio_request_resource +EXPORT_SYMBOL vmlinux 0xaabba24a __rta_fill +EXPORT_SYMBOL vmlinux 0xaabc3e08 deactivate_super +EXPORT_SYMBOL vmlinux 0xaadd5f87 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab05bc0a netif_notify_peers +EXPORT_SYMBOL vmlinux 0xab07c1c0 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xab1fa673 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xab774e62 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xab89ac8a phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xab8ae1b8 genphy_suspend +EXPORT_SYMBOL vmlinux 0xaba20f1d security_path_rmdir +EXPORT_SYMBOL vmlinux 0xabb1a0d8 of_platform_bus_type +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL vmlinux 0xabe6680f tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xabeb5d40 matrox_mystique +EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14b333 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac7eb75e jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xaca806ed blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xaca86e0b key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xaca9a913 fget +EXPORT_SYMBOL vmlinux 0xacac5c63 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xacb8e217 is_bad_inode +EXPORT_SYMBOL vmlinux 0xacbf207f sg_miter_next +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd3b332 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad1bf78a pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xad25bb20 init_timer_key +EXPORT_SYMBOL vmlinux 0xad2c8f28 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad78729c pipe_lock +EXPORT_SYMBOL vmlinux 0xad7bc271 register_quota_format +EXPORT_SYMBOL vmlinux 0xad878b08 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xada4329a of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb299c6 simple_rename +EXPORT_SYMBOL vmlinux 0xadbb0947 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xadec3ebe dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xadee4bea scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae0ed7dd journal_errno +EXPORT_SYMBOL vmlinux 0xae2f7478 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xae3c239b vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xae658bb4 generic_setattr +EXPORT_SYMBOL vmlinux 0xae684f98 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xae87e233 find_lock_page +EXPORT_SYMBOL vmlinux 0xaeaa5b44 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xaeac5c53 pci_match_id +EXPORT_SYMBOL vmlinux 0xaeb158f6 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xaeb161d1 dquot_release +EXPORT_SYMBOL vmlinux 0xaeb3dac7 dquot_alloc +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaecb4cc3 dst_discard +EXPORT_SYMBOL vmlinux 0xaefc827a scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xaefdd08d end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xaf1ef7f3 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xaf3b56c8 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf470cd1 bio_clone +EXPORT_SYMBOL vmlinux 0xaf5ed439 km_query +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf7cd21b blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xaf9b9832 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xafaa8e7d alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xafcac69a vfs_read +EXPORT_SYMBOL vmlinux 0xafd2b404 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xafda117d tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xafeb06a4 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xafef0ca9 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xb00d9b85 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xb035aeb7 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xb041f36b generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xb0498f5a put_io_context +EXPORT_SYMBOL vmlinux 0xb06db038 dev_close +EXPORT_SYMBOL vmlinux 0xb0a45ab3 tty_check_change +EXPORT_SYMBOL vmlinux 0xb0a6b7ef neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0fff01b ps2_command +EXPORT_SYMBOL vmlinux 0xb11fc1de of_gpio_count +EXPORT_SYMBOL vmlinux 0xb13bdf53 vfs_write +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1bc815c rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1e0cdd6 skb_clone +EXPORT_SYMBOL vmlinux 0xb1f9f75d neigh_compat_output +EXPORT_SYMBOL vmlinux 0xb207a6c9 bio_endio +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22b48c5 pci_map_rom +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb233762c atomic64_set +EXPORT_SYMBOL vmlinux 0xb25d41f2 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb27d8cf4 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xb27ee365 bd_set_size +EXPORT_SYMBOL vmlinux 0xb2900a37 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xb294e63f input_open_device +EXPORT_SYMBOL vmlinux 0xb2a0c9b0 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xb2a87155 wake_up_process +EXPORT_SYMBOL vmlinux 0xb2f12048 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xb313f49e netif_carrier_on +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb326e53f set_device_ro +EXPORT_SYMBOL vmlinux 0xb3538395 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0xb35f6033 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb390da6b pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c34d87 macio_enable_devres +EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc +EXPORT_SYMBOL vmlinux 0xb3ceccb6 of_device_get_modalias +EXPORT_SYMBOL vmlinux 0xb3d10d3e sk_stream_error +EXPORT_SYMBOL vmlinux 0xb3d520ea kthread_create +EXPORT_SYMBOL vmlinux 0xb3dc1678 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xb3e01d71 dm_io_client_create +EXPORT_SYMBOL vmlinux 0xb3efc72d down +EXPORT_SYMBOL vmlinux 0xb40f9a4a jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb426611f eth_change_mtu +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4718831 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xb47c40d3 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xb47d8f9e of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0xb48afa06 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xb49223b2 __ps2_command +EXPORT_SYMBOL vmlinux 0xb497501d ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xb4b2f101 do_splice_to +EXPORT_SYMBOL vmlinux 0xb4eb8422 pci_enable_msix +EXPORT_SYMBOL vmlinux 0xb4f9015a scsi_unregister +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb50a55e1 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xb5163162 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5589549 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xb55d1175 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xb5799e83 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xb599db92 __devm_release_region +EXPORT_SYMBOL vmlinux 0xb5a25f85 block_write_full_page +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5b22597 noop_fsync +EXPORT_SYMBOL vmlinux 0xb5be0992 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xb629d454 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xb63ff50b poll_freewait +EXPORT_SYMBOL vmlinux 0xb64928ea jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb674d250 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67fe7e6 matrox_millennium +EXPORT_SYMBOL vmlinux 0xb68ddfe8 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6d74b1e netpoll_send_skb +EXPORT_SYMBOL vmlinux 0xb6e47329 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xb6f66cfa pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xb72ed951 get_user_pages +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xb79ab7fb splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7db4766 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xb80245d1 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xb80bb3be sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xb813042a udp_ioctl +EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find +EXPORT_SYMBOL vmlinux 0xb8526965 dst_release +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87898b9 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xb88e5e74 generic_writepages +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8b01dad user_revoke +EXPORT_SYMBOL vmlinux 0xb8bb0f1f skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xb8ee1332 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xb9107fbf simple_set_mnt +EXPORT_SYMBOL vmlinux 0xb93ac635 nf_reinject +EXPORT_SYMBOL vmlinux 0xb9676f87 lro_flush_all +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99d6987 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xb9b0c70e km_policy_notify +EXPORT_SYMBOL vmlinux 0xb9b43418 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0xb9c3816d poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xb9db75a9 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up +EXPORT_SYMBOL vmlinux 0xb9e71a04 down_read_trylock +EXPORT_SYMBOL vmlinux 0xb9ec158d tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xb9ec770c bioset_create +EXPORT_SYMBOL vmlinux 0xb9fbccfa read_cache_page_async +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba6edfe8 __bread +EXPORT_SYMBOL vmlinux 0xba97832b ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xba9d1782 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xbaa65755 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaac0172 neigh_destroy +EXPORT_SYMBOL vmlinux 0xbab5984a tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xbabc5930 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xbac03004 skb_copy +EXPORT_SYMBOL vmlinux 0xbac7f3f7 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xbac92325 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xbacaf39d i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xbaed6265 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xbb0693f8 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb38a2d3 input_grab_device +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb66590d rfkill_destroy +EXPORT_SYMBOL vmlinux 0xbb719586 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbbbee87 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xbbbdf75c of_get_parent +EXPORT_SYMBOL vmlinux 0xbbe48d61 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xbbf10e61 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xbbfedc84 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc5136ac fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xbc56a509 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xbc623a70 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xbc76c084 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xbc8cb370 gen_pool_free +EXPORT_SYMBOL vmlinux 0xbc914c4f skb_queue_purge +EXPORT_SYMBOL vmlinux 0xbc9f6b0a tty_register_device +EXPORT_SYMBOL vmlinux 0xbcc1c6fc proc_symlink +EXPORT_SYMBOL vmlinux 0xbcd051a6 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xbcdccac7 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xbce5318f skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0xbce9c92e mnt_unpin +EXPORT_SYMBOL vmlinux 0xbd7138cd fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xbd72f76f set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbda9fbc0 do_truncate +EXPORT_SYMBOL vmlinux 0xbdb8dff6 kunmap_high +EXPORT_SYMBOL vmlinux 0xbdcbc100 mod_timer +EXPORT_SYMBOL vmlinux 0xbdd1db5a dquot_free_inode +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe141f2d tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0xbe17eaed rtnl_notify +EXPORT_SYMBOL vmlinux 0xbe28509c invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xbe3ba1ec create_proc_entry +EXPORT_SYMBOL vmlinux 0xbe46771d jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xbe4a203c bio_map_user +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe653f75 end_page_writeback +EXPORT_SYMBOL vmlinux 0xbe72d554 mach_powermac +EXPORT_SYMBOL vmlinux 0xbe7486db __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xbe9d02dd tty_unthrottle +EXPORT_SYMBOL vmlinux 0xbec4aa6f tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock +EXPORT_SYMBOL vmlinux 0xbf3474ca free_netdev +EXPORT_SYMBOL vmlinux 0xbf3f8006 kill_fasync +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8f998f journal_abort +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa9fc0f unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xbfb8ea72 vfs_link +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd7605f input_unregister_device +EXPORT_SYMBOL vmlinux 0xbff4a874 dquot_destroy +EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc03b8ed7 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xc03d22ae scm_fp_dup +EXPORT_SYMBOL vmlinux 0xc04a7117 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc08dd975 genphy_config_advert +EXPORT_SYMBOL vmlinux 0xc0979ca9 rfkill_register +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a57d15 check_disk_change +EXPORT_SYMBOL vmlinux 0xc0d84ced cuda_poll +EXPORT_SYMBOL vmlinux 0xc0eb5443 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xc0f631f3 elv_rb_find +EXPORT_SYMBOL vmlinux 0xc0f797ba sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xc110b9db dev_open +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc121ed59 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc179c9c0 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xc1853ec7 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xc18cd7b9 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xc19e9d20 fb_pan_display +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1cdae1c block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xc1d1b646 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xc1d7b822 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xc1dd4a7f adb_request +EXPORT_SYMBOL vmlinux 0xc217fab2 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2621bd7 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xc273e9ed iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xc27c2f0b pci_disable_msix +EXPORT_SYMBOL vmlinux 0xc2901247 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xc2cffef2 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fb2bfe inet_bind +EXPORT_SYMBOL vmlinux 0xc2fe8e19 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xc33c45e5 dquot_disable +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc377e919 bio_pair_release +EXPORT_SYMBOL vmlinux 0xc3855d37 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xc390bdd7 kset_register +EXPORT_SYMBOL vmlinux 0xc3973b4a bio_free +EXPORT_SYMBOL vmlinux 0xc3a43e1c inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xc3a8d4f3 kdb_current_task +EXPORT_SYMBOL vmlinux 0xc3af614a __lock_page +EXPORT_SYMBOL vmlinux 0xc3c5df8c pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xc3c80bf1 tcp_close +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3cfade7 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xc3ef43d9 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xc4028da5 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xc428af7b directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xc45b2868 pci_set_mwi +EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each +EXPORT_SYMBOL vmlinux 0xc494af95 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a09483 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xc4a5110f unregister_key_type +EXPORT_SYMBOL vmlinux 0xc4b1c1fa serio_interrupt +EXPORT_SYMBOL vmlinux 0xc4b48a67 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit +EXPORT_SYMBOL vmlinux 0xc4e1005a cdev_alloc +EXPORT_SYMBOL vmlinux 0xc4e115a2 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc51264b3 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xc5167787 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc541dd12 dev_addr_add +EXPORT_SYMBOL vmlinux 0xc54a72f4 set_binfmt +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc58c1c48 set_groups +EXPORT_SYMBOL vmlinux 0xc5a9e2ba skb_copy_bits +EXPORT_SYMBOL vmlinux 0xc5b54a13 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xc5c5a49f jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xc62ebe1c genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xc6381d4d simple_pin_fs +EXPORT_SYMBOL vmlinux 0xc65b8d7e nla_reserve +EXPORT_SYMBOL vmlinux 0xc65e54c0 dqget +EXPORT_SYMBOL vmlinux 0xc6e7c895 devm_free_irq +EXPORT_SYMBOL vmlinux 0xc6fe62ef netif_device_detach +EXPORT_SYMBOL vmlinux 0xc7115186 find_inode_number +EXPORT_SYMBOL vmlinux 0xc71ae76a alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0xc7299f38 macio_register_driver +EXPORT_SYMBOL vmlinux 0xc735ff61 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xc7496840 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xc74f0f95 generic_setxattr +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7d23486 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xc7e6b976 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc819a3b0 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xc81c15d3 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xc83222c5 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xc834e3e3 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc851a3f4 generic_removexattr +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc87ba296 dev_addr_del +EXPORT_SYMBOL vmlinux 0xc899ebde zero_fill_bio +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8bc96ed skb_find_text +EXPORT_SYMBOL vmlinux 0xc8c0110b udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xc8f2c85c block_sync_page +EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible +EXPORT_SYMBOL vmlinux 0xc9255fbd netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xc93b7f11 input_set_capability +EXPORT_SYMBOL vmlinux 0xc93d4763 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xc9494028 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xc9521240 ip_route_input_common +EXPORT_SYMBOL vmlinux 0xc963ec58 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xc97a2a17 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xc9841086 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9cf3f0a __scm_destroy +EXPORT_SYMBOL vmlinux 0xca00868e matroxfb_g450_setclk +EXPORT_SYMBOL vmlinux 0xca117d1a input_set_keycode_big +EXPORT_SYMBOL vmlinux 0xca2010a3 sync_inode +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca7c3002 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca99f7d0 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcac7d13e write_inode_now +EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return +EXPORT_SYMBOL vmlinux 0xcb242d18 of_release_dev +EXPORT_SYMBOL vmlinux 0xcb43aec2 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xcb491896 pci_save_state +EXPORT_SYMBOL vmlinux 0xcb49e6da unregister_8022_client +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb7f0cb8 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xcb8d79b5 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xcbd016fe matroxfb_vgaHWrestore +EXPORT_SYMBOL vmlinux 0xcbdf34cc __f_setown +EXPORT_SYMBOL vmlinux 0xcc004f7b udp_sendmsg +EXPORT_SYMBOL vmlinux 0xcc0b2d6e d_invalidate +EXPORT_SYMBOL vmlinux 0xcc32d688 open_by_devnum +EXPORT_SYMBOL vmlinux 0xcc366495 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc40e9ec dm_get_device +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc541543 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xcc6419dc unlock_rename +EXPORT_SYMBOL vmlinux 0xcc73987b dev_alloc_name +EXPORT_SYMBOL vmlinux 0xcc7f512a generic_write_end +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc802000 iget_failed +EXPORT_SYMBOL vmlinux 0xcc906350 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xccd4da10 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xccd75a96 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xcce37885 dma_spin_lock +EXPORT_SYMBOL vmlinux 0xcd0a2604 scsi_prep_return +EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcd65e070 input_get_keycode +EXPORT_SYMBOL vmlinux 0xcd6613a8 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xcd7384db tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xcd7902ac sk_dst_check +EXPORT_SYMBOL vmlinux 0xcdc03eb4 vfs_unlink +EXPORT_SYMBOL vmlinux 0xcdc456d6 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xcdc804d7 flush_hash_entry +EXPORT_SYMBOL vmlinux 0xcdd5925e cont_write_begin +EXPORT_SYMBOL vmlinux 0xce15dbce otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce57e9da follow_up +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce64d601 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xce830250 fb_find_mode +EXPORT_SYMBOL vmlinux 0xce8a9b24 bd_release +EXPORT_SYMBOL vmlinux 0xce8c2556 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xce90285c pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xcea28dc5 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xcec81bc5 kill_litter_super +EXPORT_SYMBOL vmlinux 0xcee056dc pci_remove_bus +EXPORT_SYMBOL vmlinux 0xceebaca0 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xcefebbc1 kthread_bind +EXPORT_SYMBOL vmlinux 0xcf2f063c of_device_register +EXPORT_SYMBOL vmlinux 0xcf2f2f31 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xcf443138 neigh_table_init +EXPORT_SYMBOL vmlinux 0xcf700bc3 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xcf8f54a8 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcfb8e124 block_read_full_page +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfbb067b qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xcfd1fbf6 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xcfd91db4 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xd0063946 dm_table_get_size +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01ff0b0 cad_pid +EXPORT_SYMBOL vmlinux 0xd026d08d touch_atime +EXPORT_SYMBOL vmlinux 0xd036f633 dst_destroy +EXPORT_SYMBOL vmlinux 0xd0692a9b seq_release_private +EXPORT_SYMBOL vmlinux 0xd0932a1c inet_addr_type +EXPORT_SYMBOL vmlinux 0xd0a45fa5 pmu_enable_irled +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0ab1438 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xd0e07057 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xd0e3a49b pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f2550f genphy_read_status +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd1276572 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xd1390dc5 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xd1441975 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xd149aa51 vfs_create +EXPORT_SYMBOL vmlinux 0xd14e4fbd fput +EXPORT_SYMBOL vmlinux 0xd16b44ad kunmap_atomic +EXPORT_SYMBOL vmlinux 0xd1dc2981 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xd1fbfaee ide_geometry_proc_fops +EXPORT_SYMBOL vmlinux 0xd20146b0 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xd216dab8 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2547480 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd27c9650 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xd28cf1af bio_phys_segments +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2aae897 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xd2f34929 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xd30f905d lease_modify +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd31eda06 nonseekable_open +EXPORT_SYMBOL vmlinux 0xd3204ed1 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xd32e72fd path_is_under +EXPORT_SYMBOL vmlinux 0xd35bc101 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xd399c40f matrox_G100 +EXPORT_SYMBOL vmlinux 0xd3a1d67f fb_show_logo +EXPORT_SYMBOL vmlinux 0xd3db800d kernel_connect +EXPORT_SYMBOL vmlinux 0xd3ef4064 phy_driver_register +EXPORT_SYMBOL vmlinux 0xd403b43b __destroy_inode +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd460aa44 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xd47aa06c down_write +EXPORT_SYMBOL vmlinux 0xd483e09a i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xd48d87b5 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xd4f75fa7 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xd509d52c __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xd50b6865 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xd515eff0 __napi_complete +EXPORT_SYMBOL vmlinux 0xd51ede69 of_device_alloc +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5392dda rtnl_unicast +EXPORT_SYMBOL vmlinux 0xd55353b8 dquot_commit +EXPORT_SYMBOL vmlinux 0xd55c9254 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd5790204 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5d672ed page_follow_link_light +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd5ffec1d lock_sock_nested +EXPORT_SYMBOL vmlinux 0xd61d461c bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd69b30e0 atomic64_add_unless +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6ba1810 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xd6e0d42d scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd70d2673 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xd71ae222 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xd7337a5b key_alloc +EXPORT_SYMBOL vmlinux 0xd74df065 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xd74f8394 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xd76177cf bd_claim +EXPORT_SYMBOL vmlinux 0xd76c875d dentry_open +EXPORT_SYMBOL vmlinux 0xd774c9b0 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd7808223 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xd78fb16a nf_log_unregister +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a94126 simple_readpage +EXPORT_SYMBOL vmlinux 0xd7b1de64 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xd7d6c7f3 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7f509bb eth_validate_addr +EXPORT_SYMBOL vmlinux 0xd7f9a2e9 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xd80f5b03 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xd82f9505 mach_chrp +EXPORT_SYMBOL vmlinux 0xd841f147 d_alloc +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd8547e11 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xd88fe9c8 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xd89a639e __dquot_free_space +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8a8c66f sock_no_getname +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f5ba5f splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd93e4d3c invalidate_partition +EXPORT_SYMBOL vmlinux 0xd947d60a kobject_put +EXPORT_SYMBOL vmlinux 0xd947f0a3 ide_wait_stat +EXPORT_SYMBOL vmlinux 0xd95a4f42 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xd970f843 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd986276e scsi_device_resume +EXPORT_SYMBOL vmlinux 0xd98b0532 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xd99409aa __dst_free +EXPORT_SYMBOL vmlinux 0xd99ae7b0 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd9b576a5 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9bdb426 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9d294dc bio_map_kern +EXPORT_SYMBOL vmlinux 0xd9d828dc abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xd9e39663 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda2fbdb3 kobject_add +EXPORT_SYMBOL vmlinux 0xda4b1d61 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xda61ff6f set_bh_page +EXPORT_SYMBOL vmlinux 0xda620808 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xda62da12 security_file_mmap +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda84c70a journal_get_create_access +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa04f74 skb_unlink +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaee7ab2 simple_write_begin +EXPORT_SYMBOL vmlinux 0xdaf4474c set_disk_ro +EXPORT_SYMBOL vmlinux 0xdaf45a59 rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0xdb26f26b get_sb_bdev +EXPORT_SYMBOL vmlinux 0xdb297c97 single_open +EXPORT_SYMBOL vmlinux 0xdb607595 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdbaea27c page_address +EXPORT_SYMBOL vmlinux 0xdbb3631f kobject_get +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc05fc61 flush_signals +EXPORT_SYMBOL vmlinux 0xdc0e7af4 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc31bd48 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xdc343e94 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc423167 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc6d73da mdiobus_free +EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init +EXPORT_SYMBOL vmlinux 0xdc7db1e6 seq_lseek +EXPORT_SYMBOL vmlinux 0xdc892c1b of_get_mac_address +EXPORT_SYMBOL vmlinux 0xdc8b5dd9 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcbcc9d6 rwsem_wake +EXPORT_SYMBOL vmlinux 0xdcd1dbdd tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xdcd45a80 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdcfc6ce1 __invalidate_device +EXPORT_SYMBOL vmlinux 0xdd06211a powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd1ede9a netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd7c84eb writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0xdd81526b simple_lookup +EXPORT_SYMBOL vmlinux 0xdda3f07a security_file_permission +EXPORT_SYMBOL vmlinux 0xdda98e75 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xddd3037d cdrom_open +EXPORT_SYMBOL vmlinux 0xddeaff74 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xde1ff4c8 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xde220ed8 matroxfb_wait_for_sync +EXPORT_SYMBOL vmlinux 0xde23f089 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xde2e6d88 lock_sock_fast +EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xde492c89 scsi_add_device +EXPORT_SYMBOL vmlinux 0xde580be6 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdea752db register_console +EXPORT_SYMBOL vmlinux 0xdef90952 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf4e78ba console_stop +EXPORT_SYMBOL vmlinux 0xdf597f6b posix_acl_permission +EXPORT_SYMBOL vmlinux 0xdf5a23a7 mapping_tagged +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf75d1c0 kern_path +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfabf08c input_free_device +EXPORT_SYMBOL vmlinux 0xdfbbbe0e mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xdfe335be pci_select_bars +EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger +EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll +EXPORT_SYMBOL vmlinux 0xe048da35 pci_release_regions +EXPORT_SYMBOL vmlinux 0xe0518a0f unregister_console +EXPORT_SYMBOL vmlinux 0xe05954c9 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe0951613 fb_blank +EXPORT_SYMBOL vmlinux 0xe0a94c52 ide_do_reset +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0d9ec47 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xe0e7cd2a elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xe0eb85cf blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xe0f13c60 names_cachep +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe113d9dc ip_getsockopt +EXPORT_SYMBOL vmlinux 0xe11cb433 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xe1497a67 pci_request_regions +EXPORT_SYMBOL vmlinux 0xe16b5e75 netlink_unicast +EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe187f62b rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0xe1c0abbe blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xe1d9925d pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xe1efb428 scsi_put_command +EXPORT_SYMBOL vmlinux 0xe2117bd5 log_start_commit +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe238400d mfd_add_devices +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe29cc5c6 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xe2b17ad5 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xe2bbd450 pci_device_to_OF_node +EXPORT_SYMBOL vmlinux 0xe2c35f82 netif_device_attach +EXPORT_SYMBOL vmlinux 0xe2c6211f input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2eca0b4 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe331e059 put_tty_driver +EXPORT_SYMBOL vmlinux 0xe33859e6 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xe38ad423 load_nls +EXPORT_SYMBOL vmlinux 0xe395f7f7 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xe3d80f43 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xe406886a iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xe432efa3 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe48d3571 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xe4a113e8 blk_get_request +EXPORT_SYMBOL vmlinux 0xe4aab5e2 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xe4d9aa5a lookup_hash +EXPORT_SYMBOL vmlinux 0xe5011a80 sync_blockdev +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52dd6ae tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe59c3209 __inet6_hash +EXPORT_SYMBOL vmlinux 0xe5a54e0c jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xe5a57b39 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5cd389d ppc_md +EXPORT_SYMBOL vmlinux 0xe5e9b029 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5ee9667 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0xe6364d8c simple_getattr +EXPORT_SYMBOL vmlinux 0xe64de134 read_cache_pages +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69c15d4 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xe6b75e21 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xe6d1567f fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6dd4e14 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe7002a96 kobject_set_name +EXPORT_SYMBOL vmlinux 0xe70e7d71 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xe71f7708 skb_put +EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on +EXPORT_SYMBOL vmlinux 0xe7439e23 del_gendisk +EXPORT_SYMBOL vmlinux 0xe784cd80 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xe79301e7 freeze_bdev +EXPORT_SYMBOL vmlinux 0xe7961a34 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe82743f9 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xe8403494 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xe8594af3 bio_split +EXPORT_SYMBOL vmlinux 0xe8699b94 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0xe8709d50 fb_set_var +EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace +EXPORT_SYMBOL vmlinux 0xe886312c nobh_write_end +EXPORT_SYMBOL vmlinux 0xe89024db pci_read_irq_line +EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape +EXPORT_SYMBOL vmlinux 0xe8d292b6 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xe8f43ed0 d_splice_alias +EXPORT_SYMBOL vmlinux 0xe90a40c0 free_task +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91716aa vfs_symlink +EXPORT_SYMBOL vmlinux 0xe9187bde set_bdi_congested +EXPORT_SYMBOL vmlinux 0xe92c1ba6 security_path_unlink +EXPORT_SYMBOL vmlinux 0xe92cab3e ide_set_handler +EXPORT_SYMBOL vmlinux 0xe940f2a6 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xe9834492 netpoll_poll +EXPORT_SYMBOL vmlinux 0xe98a87f1 dcache_lock +EXPORT_SYMBOL vmlinux 0xe990fe04 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xe99b5349 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xe99e7a4f freeze_super +EXPORT_SYMBOL vmlinux 0xe9a2fd16 sock_create +EXPORT_SYMBOL vmlinux 0xe9b56477 blkdev_get +EXPORT_SYMBOL vmlinux 0xe9d30b57 of_register_i2c_devices +EXPORT_SYMBOL vmlinux 0xea028d55 __bforget +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea147363 printk +EXPORT_SYMBOL vmlinux 0xea219faa serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xea276151 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea308fff brioctl_set +EXPORT_SYMBOL vmlinux 0xea36beff set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xea3d5870 aio_put_req +EXPORT_SYMBOL vmlinux 0xea580f6d cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xea6b96aa matroxfb_DAC_in +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xeaa44995 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xeaa4848b ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xeaa99dd4 find_vma +EXPORT_SYMBOL vmlinux 0xeaab4e8b up_write +EXPORT_SYMBOL vmlinux 0xeab7a6b1 arp_xmit +EXPORT_SYMBOL vmlinux 0xeaba0790 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xeabde0b4 __put_cred +EXPORT_SYMBOL vmlinux 0xeae4b200 journal_wipe +EXPORT_SYMBOL vmlinux 0xeae5a5c8 blk_insert_request +EXPORT_SYMBOL vmlinux 0xeaedb447 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xeb1e843f ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb30e974 rtas +EXPORT_SYMBOL vmlinux 0xeb5b06a4 sget +EXPORT_SYMBOL vmlinux 0xeb60f17d dev_trans_start +EXPORT_SYMBOL vmlinux 0xeb78c46f of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb8f31b7 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xeb925e17 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xec0b961c init_net +EXPORT_SYMBOL vmlinux 0xec111a15 filemap_fault +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec1ec8c8 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xec293b6e bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xec3211e5 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xec3b87ca skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xec4204e7 arp_find +EXPORT_SYMBOL vmlinux 0xec4ad81c get_write_access +EXPORT_SYMBOL vmlinux 0xec4b7d8f of_register_driver +EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xecb5a44d neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xecbd27d2 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xece9b9da pci_disable_device +EXPORT_SYMBOL vmlinux 0xed23f5eb tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xed47fd09 journal_force_commit +EXPORT_SYMBOL vmlinux 0xed6eb155 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xed8340db backlight_force_update +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda1b232 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xedabdf7b vfs_follow_link +EXPORT_SYMBOL vmlinux 0xedaec859 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xedb5780f qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd82f5b sock_release +EXPORT_SYMBOL vmlinux 0xedee79de f_setown +EXPORT_SYMBOL vmlinux 0xedf04b3e keyring_search +EXPORT_SYMBOL vmlinux 0xedf9a817 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xee142e1f __elv_add_request +EXPORT_SYMBOL vmlinux 0xee21f54a revalidate_disk +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change +EXPORT_SYMBOL vmlinux 0xee60b5f6 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xee8caa28 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xee9f7a40 is_container_init +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeec3d6c7 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0xeedc3bb8 starget_for_each_device +EXPORT_SYMBOL vmlinux 0xeeeb1dfc key_link +EXPORT_SYMBOL vmlinux 0xef463cc8 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xef4c516d journal_destroy +EXPORT_SYMBOL vmlinux 0xef509612 kset_unregister +EXPORT_SYMBOL vmlinux 0xef587eb5 dm_table_get_md +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef809e0c ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0xef88ddbb scsi_finish_command +EXPORT_SYMBOL vmlinux 0xefa45f13 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xefe5f94d request_firmware +EXPORT_SYMBOL vmlinux 0xeff1a2d8 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xeff3397a mpage_readpages +EXPORT_SYMBOL vmlinux 0xeffc5b32 vga_tryget +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf003579d kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0xf01da41f scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xf0245dcc of_find_node_by_path +EXPORT_SYMBOL vmlinux 0xf0373907 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xf03c4006 phy_device_free +EXPORT_SYMBOL vmlinux 0xf0607665 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf07cf5c5 generic_getxattr +EXPORT_SYMBOL vmlinux 0xf0888dcc inet_accept +EXPORT_SYMBOL vmlinux 0xf0a6a333 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xf0ad8b68 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xf0b2b3b5 simple_setattr +EXPORT_SYMBOL vmlinux 0xf0b8c242 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f0d2c1 __seq_open_private +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0ff5067 DAC1064_global_init +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf122b2e8 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xf133d585 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xf136c279 add_timer +EXPORT_SYMBOL vmlinux 0xf154bd96 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf1915b5f __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xf1924483 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1ced9c4 cap_file_mmap +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e13a8e locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f34b62 abx500_register_ops +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf212a2c4 pci_domain_nr +EXPORT_SYMBOL vmlinux 0xf262d943 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xf26c1021 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0xf302926f submit_bh +EXPORT_SYMBOL vmlinux 0xf307f9bb inode_init_owner +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31ea083 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf331396a pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf34432d1 neigh_update +EXPORT_SYMBOL vmlinux 0xf344ca78 ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34c774a macio_release_resources +EXPORT_SYMBOL vmlinux 0xf355dd42 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xf3744305 alloc_trdev +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3cfdadb i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xf3dfb671 pid_task +EXPORT_SYMBOL vmlinux 0xf419c730 kthread_stop +EXPORT_SYMBOL vmlinux 0xf41db2c3 inet_frag_find +EXPORT_SYMBOL vmlinux 0xf4369790 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf44d284b fb_set_cmap +EXPORT_SYMBOL vmlinux 0xf45224a6 phy_device_register +EXPORT_SYMBOL vmlinux 0xf462b0a4 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xf48ffd83 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xf49fde6f bio_init +EXPORT_SYMBOL vmlinux 0xf4ade3ec devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0xf4ae1d1d of_register_spi_devices +EXPORT_SYMBOL vmlinux 0xf4c7831a napi_reuse_skb +EXPORT_SYMBOL vmlinux 0xf4d88ad2 seq_open +EXPORT_SYMBOL vmlinux 0xf4de41b0 backlight_device_register +EXPORT_SYMBOL vmlinux 0xf4ef0023 notify_change +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf52321e0 atomic64_sub +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf579ce25 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf649eb9f rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ec2b26 of_n_size_cells +EXPORT_SYMBOL vmlinux 0xf6f4ea10 of_dev_put +EXPORT_SYMBOL vmlinux 0xf6f9a583 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xf70384d7 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return +EXPORT_SYMBOL vmlinux 0xf721f4ec dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xf739e87d clear_inode +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75b172a security_path_mknod +EXPORT_SYMBOL vmlinux 0xf75c0b5b of_device_is_compatible +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf76995f3 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf78ee38b pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xf7b615ae scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xf7c5b987 phy_stop +EXPORT_SYMBOL vmlinux 0xf7c7851b pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xf7ca9b23 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xf7dfe897 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf81e7fa2 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf83a0c41 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xf83a10b8 nla_append +EXPORT_SYMBOL vmlinux 0xf85effa9 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xf85ffbca __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xf87e64d7 nobh_writepage +EXPORT_SYMBOL vmlinux 0xf8818804 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xf895d72b eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xf8a3d96a blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xf8e8c35c i2c_clients_command +EXPORT_SYMBOL vmlinux 0xf908936f fb_get_mode +EXPORT_SYMBOL vmlinux 0xf908c6f1 ipv4_specific +EXPORT_SYMBOL vmlinux 0xf90c155d init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0xf9572bd0 journal_flush +EXPORT_SYMBOL vmlinux 0xf97c4097 iterate_mounts +EXPORT_SYMBOL vmlinux 0xf97df4df pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xf998bc3d pneigh_lookup +EXPORT_SYMBOL vmlinux 0xf999d673 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9b9be6b find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xf9be7c99 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xf9cf2f10 security_path_link +EXPORT_SYMBOL vmlinux 0xf9e57acd tcp_splice_read +EXPORT_SYMBOL vmlinux 0xf9f61e6d __serio_register_driver +EXPORT_SYMBOL vmlinux 0xfa2c547e kill_block_super +EXPORT_SYMBOL vmlinux 0xfa304cf3 __pagevec_release +EXPORT_SYMBOL vmlinux 0xfa311ca7 skb_pull +EXPORT_SYMBOL vmlinux 0xfa447b13 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xfa4ff193 igrab +EXPORT_SYMBOL vmlinux 0xfa69bc83 blk_start_request +EXPORT_SYMBOL vmlinux 0xfa916fd9 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xfa943d3a tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xfab5075d console_start +EXPORT_SYMBOL vmlinux 0xfab8d1e1 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xfac05c9c inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb35e2dd of_unregister_driver +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb84abc5 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xfb8d263e blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xfb9660f0 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0xfbb00007 proto_register +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd3ddf7 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0e3e2d mdiobus_write +EXPORT_SYMBOL vmlinux 0xfc291a29 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xfc2b4827 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc421e82 journal_extend +EXPORT_SYMBOL vmlinux 0xfc4a5a51 inode_setattr +EXPORT_SYMBOL vmlinux 0xfc541425 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xfc693314 genphy_update_link +EXPORT_SYMBOL vmlinux 0xfc738abd dm_table_put +EXPORT_SYMBOL vmlinux 0xfc7e6ee8 tty_port_put +EXPORT_SYMBOL vmlinux 0xfc8fae9f swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xfc93adbb write_cache_pages +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfccd6448 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xfcd1068a neigh_event_ns +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf2389f pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister +EXPORT_SYMBOL vmlinux 0xfd17e9db blk_execute_rq +EXPORT_SYMBOL vmlinux 0xfd36b81a bdget +EXPORT_SYMBOL vmlinux 0xfd3c1108 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xfd4a2cca pipe_unlock +EXPORT_SYMBOL vmlinux 0xfd5a012f scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xfd5d8777 lookup_one_len +EXPORT_SYMBOL vmlinux 0xfd5eaec8 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0xfd5f94c8 dquot_transfer +EXPORT_SYMBOL vmlinux 0xfd6a3ecc d_add_ci +EXPORT_SYMBOL vmlinux 0xfd7ec392 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xfd875f33 soft_cursor +EXPORT_SYMBOL vmlinux 0xfd8c5567 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xfd96680e mnt_pin +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe0345b0 of_find_matching_node +EXPORT_SYMBOL vmlinux 0xfe065302 validate_sp +EXPORT_SYMBOL vmlinux 0xfe10a159 of_device_is_available +EXPORT_SYMBOL vmlinux 0xfe1ce687 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xfe494513 blk_unplug +EXPORT_SYMBOL vmlinux 0xfe50b315 devm_iounmap +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe8fd63c proto_unregister +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed8b4e9 udp_prot +EXPORT_SYMBOL vmlinux 0xfedcc083 blk_complete_request +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfee859be scsi_free_command +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff0b0723 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xff1127db pci_iounmap +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff1f989a give_up_console +EXPORT_SYMBOL vmlinux 0xff4417c8 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xff5ff1b4 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7ad200 lock_may_read +EXPORT_SYMBOL vmlinux 0xff85428a proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa7c377 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x01c9c51b kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x1ce9964b gfn_to_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x2322e039 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x30072dca kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x302d6d66 is_error_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x40f84b5d __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x45637dfb kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4c37d85b kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4fe766ea kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x5286d211 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x548e1db5 kvm_read_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x5fbccbb1 gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x602a9164 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x787bb076 kvm_init +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x79093f32 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x79c6eace kvm_resched +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8e081a6c kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x9156b866 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa90cf4a9 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xabda27a2 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xbd86163a kvm_handle_fault_on_reboot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc53e0da4 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc6414bed gfn_to_hva +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd2e7ca93 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xe7c17e6b kvm_put_kvm +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xe86909d9 gfn_to_pfn +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x7a47d595 crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x2694e5c8 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x4d81c1ae async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x85b38314 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xb4dc9bd0 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xd6f40bfc async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x092d5107 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1a72971b async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf33a912a async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xbdfbee2d async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xe208cf3f async_xor_val +EXPORT_SYMBOL_GPL crypto/cryptd 0x353a2698 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x445ace83 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x51f62f74 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x5ba00026 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x827a0e10 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xf1283d73 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xf7a84518 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x232d8833 twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x07a93b75 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x08e7f5c9 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1065ca1b ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x15159a0b ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5be50dbe ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5d0ec85a ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x62e08f2f ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x680901a7 ahci_sht +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x85582622 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x86f72e66 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb20f503e ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf48a5ad1 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf69f7098 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x6ab95f6f __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x900e5bfc __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x1b4c93e8 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3569a320 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4b66ebef btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x61619c40 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8a4c4e03 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa24b1906 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc5649386 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd1558e24 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe47f7f46 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x27d9180f agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x560eb89a agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0e0b1313 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1c5d1e12 tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x21eb77b0 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2c91a8b3 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x586d3213 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x61616c44 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7337022b tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x76267dc1 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7822630f tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa258206d tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaaf1dcbb tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb0af6e98 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbc33bf89 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbde31fdd tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbeedaad3 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd35c802f tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd491422c tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdbee5433 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdfa51cad tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf07f71ba tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf23c06ba tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf3a50822 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf7afc145 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x060d2c86 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0b27c173 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0d3d7732 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x10a82ba6 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2614b3db edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x409dde37 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x41aea259 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4e4318b3 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6056cf23 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x67350718 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69e11e0e edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6c56da2f edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x92ad0c66 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x952f5c99 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9bd79d9a edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa40708c0 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc19b05bf edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc3468c75 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcadbae10 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd616943f edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdbbb7fa9 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xde3afec2 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xea84217b edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xed34a52b edac_device_add_device +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x103495a8 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xf651fe61 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x4a303230 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf060a2b1 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x07c390c7 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x07e4e203 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1307a226 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x15154c1b hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x16c0f5b2 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x18fd95c8 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1d40864e hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x246d1786 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x24bdc0db hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x373bc42f hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x38e184cc hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3abb883b hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x45de0276 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x47b91a40 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4b69830e hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4ee6cc8a hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6475147e hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb8349ef2 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb94b0ebc hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd1cc0625 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf8e76a4 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xed8af359 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xef036fbf hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf27e89f6 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf681cefe hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfedcaea6 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xbd6194f8 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0293126b hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x4b5331d6 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6900f1b8 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xc5355a09 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x0bf2d3a1 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x4f6f11de lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x60a03884 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x962c69ac lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xfb595017 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x02c27170 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x1221370b i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x3fd1f985 hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xa6e78a7f hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xc8d0d926 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3834dee3 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x55178362 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x723e1a8e wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7d8a521c wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa19bee27 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa41d23f1 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa5b0d6e4 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb22596c7 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbf87806b wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd43c38f8 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe920c327 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf49ede7d wm9712_codec +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x24a93ec9 wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x4c7a4b37 wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x74acd8ec wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x788cba31 wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x7ab743a3 wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x881dfd18 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa134c8df wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa4d6c26b wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xe7b1ced5 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed08d8c5 wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x6ea8e287 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x764e4ff0 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x111d2bfc dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2268ecb2 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3bc22732 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4868b9dd dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4d762d4f dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5df743ca dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5f23b0f8 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x67d2b21c dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x69a0795e dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x6e08babf dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x77f60308 dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x81814d6f dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8621276e dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8c48bf46 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8eef5313 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb2488c77 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc17332cc dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc6dcef27 dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xceca1349 dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf14f4e65 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf9c2d6b5 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x020f0256 md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x79e75fde md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xe95f1ef0 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xf0674934 sync_page_io +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xa3252296 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xb7c54bc7 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xe911e324 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x03bd7f09 ir_unregister_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x26a3cdf4 ir_input_unregister +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x53b7be2d ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x5e6fba99 ir_keydown +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x7fac2f26 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xab963b62 ir_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xb72762c3 ir_repeat +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xde3fc8d9 get_rc_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe66027c7 __ir_input_register +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf190292d ir_register_map +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xfd4b5de3 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x26ce89d6 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x36035eca saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x39c37959 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4b077c4c saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4d4dcc3f saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6773050a saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8abfc590 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9704b8e1 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9b3c1101 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb871418e saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe1a61bea saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x1822e074 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x510c3af7 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x6bbe3836 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7dea760c saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x97e521cd saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xbd893a69 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf0579d13 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xc77da5d0 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xe57ca679 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x7a34b6a8 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x12f25e51 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x7197cdb4 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xe4480ad0 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xdbbdfd93 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x3335b2f6 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xf58e7a8b tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x324fcd73 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xa8d2eb4f tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xf6cc41ee simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x086a9930 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0c450633 gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0dc6bbfc mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0e95a223 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1567eea5 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x15bf532d mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2b4a15eb mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3060e4e5 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3333fd3a mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x70ab88b8 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7714134e mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x82ee91bf mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9ecd44c2 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9fe8e958 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xaeaf43de mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xca2a270b ir_mantis +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe1dfd3b4 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xee951164 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x089e3670 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2540a8ae smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x58c82847 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5f9775d1 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x61586f58 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x679badbd sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6824cfc4 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7d9790fa sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x81eb9197 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8425df06 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x89e482a4 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa312f669 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc8929717 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xca192059 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd8754ccf smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xef336cd3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf368f777 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf58a7b7e smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf5e0330c smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x13406826 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1ff4286f cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2537edeb cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x36c8d149 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x38aefe34 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x73f1dd5c cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x7cea1d10 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x93f5434a cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb19dba87 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb7a53622 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xea4e77d6 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x2bac2278 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x1ad7602d em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x58b62cb8 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa0ad9405 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xb77c8e4a em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd8ad6fc7 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xe45eb24a em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x1cfbb6b0 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x5aa440de saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x6df54547 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd515db43 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xf1f30e4a saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x7a6d5016 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x97753374 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x977c9a31 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x9a0ade86 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xd09e48ab v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5d96c2b v4l2_i2c_new_subdev_cfg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x2e9c474a v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x48d62d93 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x4c386478 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xf71c09c0 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x232580ff v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2d73198a v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4f40da52 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x553489f3 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x75cfadd4 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7e26f77e v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9346476c v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb86dc250 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xbefb6fbb v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc6d7f226 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc914050c v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd3ba3b46 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xebc92d6a v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfb4276a2 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x06021fd8 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x10d34ecc videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x19af59e7 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1a38b9b2 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x288f59ad __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2b997112 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x335e6f94 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x367c8bbe videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3eb10459 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3eb6afb9 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4c18aa5e videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x52e35c63 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5bbdf431 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x63322248 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6ef88f8c videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x71e89ec8 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x74762abe videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9fd65d7b videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbc708b4a videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdbb52b9c videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdcab2915 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdfa3b746 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf7090ff3 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfba9925f videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfe7c23f9 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x5197e0e2 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x9995e4e9 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x9d0a717e videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x04d3f3f9 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x10c3e1ce videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x12871bdf videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x38f8efd4 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5cd723af videobuf_sg_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6e08d8b2 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x82a642e4 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa806a258 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbede0e93 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe0df4bb3 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe8a24336 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xecc7d99b videobuf_sg_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x657a6390 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x9887ca3a videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xac54cdac videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x15a2a092 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1dc69246 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1e367b68 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x26fe38db v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x35b76744 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3b5d02ad v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x502bc42e v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x67a5259f v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x67e8d76b v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6986ec22 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6b3529e1 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x84499a63 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9c9b0901 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa992616d v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xaeeec505 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbef3c906 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf5a31f09 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf83dcd55 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x012da8eb i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0ff836b0 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x13809433 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2e97e2bc i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x50d6f1bf i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xaab36e96 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xae384edf i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf7503fe7 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0xaf4889f1 mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2b7640a4 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4603bde2 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x771f9bc7 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8ad3aee5 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x919adca2 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x94afed01 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc0c36652 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc631a267 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc8a30795 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf7684977 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf9550317 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x0a3447cf pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x0f28561a pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x6cf6efcb pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc3b39681 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xed0dda70 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xed5b7c32 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xf33e48a2 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x036f3054 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2469982d sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xbe7dffab sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc8639031 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc95b3219 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x83a66912 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x368888a5 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6a44d1ee wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xad79ee02 wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xadead2cf wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x4bbf4f4e cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x569a0e9c cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x590ff28c cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xaa31f6ec cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0bc400e0 sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1ac31bd8 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x3de4decd sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x49e98ab0 sdio_writeb_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x4c539ed4 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x4e2a26c7 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x604c6195 sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6d0526d3 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x826e3af0 sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x83d10fd3 sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8c59f8a5 sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x955651f6 sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x980db3a9 sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x98933dec sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9b19a7e2 sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb1fd38de sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb7bd6bc3 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb87919e6 sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb8853445 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc725afed sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xcf684eb7 sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xdd0b34f2 sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xec8a1b79 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xed71ae6e sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf3fac38b sdio_align_size +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8c05399a sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9a81efab sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb8ddd5f3 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbcc147ec sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc6406c79 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf84a5f29 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x94fd516b cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xbde7aac8 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc28d423e cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x16e7a37f cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x44d25439 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xe9e09714 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x223e4733 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x19509888 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x790bd2a0 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xd5aaba90 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xdeda9719 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xadff5454 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x058e2231 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0b104a2a deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1771924b register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x32e96404 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4254cb72 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x53302f49 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x54e528bc kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x626f372e default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x87952a6c del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8d26c0af unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x944b5241 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x995b38b2 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbb6a2d4b mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc545c00a get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd09f496a __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd8438058 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe2d3f80b put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe7824c0f get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf145a505 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x27188981 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x4b8e8d10 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb6ec6bcc register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf3f2b057 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x23574da7 nand_unlock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2f79dcdd nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2fff42a4 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xbe643acd nand_lock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xd5635d25 nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xe36a57c9 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xe8569976 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x1f8e2ce4 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x0af0d31c onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xfb116864 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x23ed6f59 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2588ad60 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2f26bfc7 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3567edc2 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x413d9ef7 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x431fedd2 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4e42e5a6 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x55ef6497 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7375b80b ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb10051c8 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb8e81ced ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc4481f3a ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf4197e5d ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x142f2545 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2d834ff5 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x38652288 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x39b4e0d4 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3ca22f45 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4f1514d1 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x69f1dfb6 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x72507cb6 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9c3e9392 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb76469ef can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd17c80e4 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe0b9bf70 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x37ac0cd3 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x40f03f08 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4a8eb6e4 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe4e23b9c free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x21c78c3a macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x38f8966f macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xaa08ee61 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc24ef21d macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc31995c4 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x005049e6 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01e706a0 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x06ae964a mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x07ebe673 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0f381e95 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x25232f9b mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x274bcd09 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2d7e70f6 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x365dbd37 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3e8e07d8 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5c65e9d0 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6ce5d75c mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6d83dc46 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6e16b0dd mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x71ef3bbe mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x75f76650 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x78d2c043 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7a04d750 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x84f9a45f mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8c02ba63 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x92e1d309 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x96bd9422 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9a646f48 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9e18d933 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa1d0a69b mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa5c4cf53 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xab3fbab4 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xae6bc7d3 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb04c24ae mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb27edaf3 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb403dad0 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4b21a4d mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbbbdd796 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd7924f4 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc862a26b mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcaa9b701 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcf30dad7 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd2137c56 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd246307e mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd3bc266e mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd6762f0b mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd89a71f9 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd8f46577 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdcd3afd6 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe3199960 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe420bf0c mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe82020e1 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe83a59e7 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xebe7d90f mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf12d6ae7 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf3dd3ba4 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf71512d1 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf7eb14b3 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xadb1d2fd usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xe2cf754d usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb5184106 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb639a9c5 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd07781c9 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd284bf2e rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe0491e84 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf455e716 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x01d879a3 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0286fdca usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x09d49878 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0fbc379c usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1c725310 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x284104b3 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2bb12174 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x30bbe1d8 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x373a9eeb usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3f52348e usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x401bbdfd usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x45efe474 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4708ed6d usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x48170264 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x75f3f96e usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x794f0b43 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa450194f usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaf562b76 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd2e6980f usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe1bdc13f usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe497bf38 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xed37a5d7 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf60ec341 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf829d444 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0f74ad69 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x169b2e6c i2400m_set_init_config +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3cf1d67a i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4536e638 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x461d87aa i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x482b843f i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x866e0e6a i2400m_cmd_get_state +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x89e2e6c5 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8d4702fa i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9a4a2f7c i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa5e9b236 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xab66dfc3 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb4eb85c8 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb9800811 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbaca3308 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbf9b5976 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc6c6f9dd i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdb3e9a1b i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x4ba36605 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x770eb3c9 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x8011cd26 iwl_dealloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xbe3e7bb1 iwl_alloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x007d5616 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x198ff54c lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1af0e1bb lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x24d3625a __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x290eee76 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x296e6300 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2e9f651b lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x48d2553f lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x62d4b1a4 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x65d9c062 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa537ee21 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc07e4313 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf0e7f4dd lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf628eaf1 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1f55ce9b lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x40d9cb57 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x84a10884 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa5fb5ff4 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdc1a5408 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe2fc5617 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf11e8553 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xfdcbf3a9 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xdbeca019 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xeaf70077 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0e990b21 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2a92bf99 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x301f051b p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x54f5c1e6 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7bf08f3c p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7cdd4ee4 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc428a977 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf4b91351 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfe5710cd p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x09e59018 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0bd3472a rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1aeb3f0b rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3669d097 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3870a64d rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5710abb6 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x69153f8b rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6942503e rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6dede2cf rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6fdad3af rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7ac46341 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7c843cab rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8ca54c0b rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x95c7a4e7 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x95d139be rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb14660a6 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc5e6dd82 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd514e0ff rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe23c7797 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe31e1ecd rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe62a0d63 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xec85ed32 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf6aa979a rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd9727bf rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x15fa26c4 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x16eee335 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1e789c76 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x21e45861 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2693c1c3 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x314552ed rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x334541ef rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x491076e2 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5ff134b1 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b92f0f0 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d3d44a9 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x70538aa6 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x74ed0d96 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7fbe20b3 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8e921b21 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3624d53 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb37c37ec rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba3f972b rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbd974d4e rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcb71edb9 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd5e91086 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe12d6efe rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea724c06 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1724b896 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x21241956 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x70e933f5 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa534aaf8 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb9f55f46 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc3428df2 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe4ff70d3 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe98e4f15 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfb591801 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1e0c6be3 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1f248708 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x22057e03 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x46291e0a rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4eb55721 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x568f199f rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5f7454a4 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x69c40fa6 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7b7f6c7e rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7de8ec47 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa5c0c458 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xae5313db rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb22eefee rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb3e218de rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd68204f3 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe2c65fa2 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x33ac44e3 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x5a45bc80 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xd67a8d2a wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x3003d15a wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x38f3fefe wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x9aa62dda wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xd5d66abf wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xff56b696 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x4f20d5f0 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x69a3ffcb pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6e8f18ca pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0687338f wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x2eca9ad3 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x5361f021 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7ba685dd wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd2dbbace wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe4523641 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x4ebe82fc wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x5ae4059c scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xba05c6d6 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xdbb5eacb scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xe77f61cd scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xe7e96d5b scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xec43e13f scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x994e415d fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0279912f iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x04c6986b iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05411a42 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c7a6bf1 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f79d783 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16227a53 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1b2d2d47 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x26f4a079 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2757e2f7 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x299c4d78 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x329d8288 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x339361fe iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d2a86f1 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3ee65f91 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x40e64925 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x430ef34a iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x44c7b88b iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x49c11145 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x60a86ab6 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62235b5b iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6aa63788 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7b84afec iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x84eb3f80 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x875d8167 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d2ada5b iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9fc47a8f iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa927f982 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab48c048 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4b6f134 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc7fdc13f iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc953649c iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf6075ce iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd4786b5a iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd5496cf4 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdb7da2fa iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0f7b2a6 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe2a2e307 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3cebe56 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xed9a0cd1 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xedb7c28a __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf5035bd7 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6fa28d7 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2f3e82b6 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x35f1d892 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x55e6d946 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5fd7af5c iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7437cd1f iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8c529e07 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x96d04f1c iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xacba515c iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc04a9778 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc54e0677 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd0147b2b iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd3a0d13a iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd6703510 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd6852c97 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe01d64ad iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xee1e486b iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x071ef358 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1b8a2a3f sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1d8c629c sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x38b1871f sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3c730431 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4cabf0ac sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5ad744c7 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x61e27503 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x684216c9 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x71b8072f sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x78e9b037 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7b045a69 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x83a91256 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x903a514d sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb8277bda sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd360994f sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd3beaf7c sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd57c7859 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdbfb5d1b sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdd04bff9 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xeb6dc6fa sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xec813094 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfb154ba1 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0beeba06 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x11768ef1 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x68a1d48a srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8ec7a944 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xac5bd377 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd3285808 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x166f71d8 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2fb962d8 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4cd74070 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x522f1081 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x588e1f0b scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x93563a8a scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc31260dd scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd0b61bce scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xeda018f4 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x05a87de6 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0bce5740 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0d2694c2 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1201995e iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x173854a5 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x19f48668 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x25b8e8f1 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5c629a88 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69d2531d iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7153fbe8 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7696e681 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7ee5bcd7 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81060442 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84acf18a iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8d6a4dc7 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa2d04e24 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa812a8ce iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc9346186 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcf2badde iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdfed4601 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xef6f89f2 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfefd4d99 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x0e398d0a sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x125b15dd sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x6256a0df sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd083b621 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3e32c05d srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8372d6d3 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x869960b8 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa937de26 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc89c03a5 srp_remove_host +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x937ca8a0 pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xa379c98c pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xa96e4cb9 pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xc46cd3e5 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/serial/serial_core 0x0890b428 uart_console_write +EXPORT_SYMBOL_GPL drivers/serial/serial_core 0x79645f97 uart_set_options +EXPORT_SYMBOL_GPL drivers/serial/serial_core 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x0b455948 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x45177f86 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x76c1fec5 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x7a5e922e spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa14449e5 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xf31417c6 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x617263b9 st_register +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x3ee45fa2 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x6d68a9c5 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x792f73b0 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/uio/uio 0x6231db3e uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x6e585ce1 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x9ef6d8f8 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x27d4ce7f usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xcd1c0c11 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x402ac33d usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x489e42db usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x49922a3a usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x49e26e3e usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4a8d2417 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x504285b2 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x926b3bc9 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa8b7eced usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xbee7c60d usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0c0fd1f9 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x246bb870 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2da6c085 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3a0657de usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x44bb2b79 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4b3f1d45 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6010ed06 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6a295f6e usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6c41cbf5 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x704aea74 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x82bf83e1 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x98aa932f usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa611e8a8 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaed651ea usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaf47eeec usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe1f15184 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe2652503 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe2a6cf74 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xffdb004b usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x060b6336 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x08da389d usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x14c4ca23 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1ca04a2e usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x376811af fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3cf66a4f usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3f11c911 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3f5ff4db usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4ab7d682 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x77bdca89 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7bcf2a5c usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7f7471bd usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9234831e usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa29088d0 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa44316dc usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa7a4ade2 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb2ca516c usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb7c80491 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc9bc2a61 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd5602372 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdcc70a64 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe5349cf3 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe59efce7 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x52b515bf wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x6532bc58 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x9ce4993a __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa5c91fd3 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xd1fbd100 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x053a4167 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2ab47baf wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3804eed3 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x61f560d1 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6cd0ba4c wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x769955f5 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7a4d9dad wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x82b75969 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x87a960b4 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xac8d8f9d wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb0ce7655 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb29e92b6 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc11e6e2b wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc2e2f14d wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe84412a7 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xea1484a8 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x1de96d3f i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x3491a266 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa1ba7931 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x01aa41d1 uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x070e041e uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x329c78a3 uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x3898490f uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x88b3f687 uwb_pca_base_priority_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd06997e1 uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe307e93f uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe6b83119 uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x048956d4 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x339de803 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x437536ec umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x7fd8ce46 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x804e6296 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x89481705 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc9484c00 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe1d2cc55 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00fccda3 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0291be0b uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d5b7e19 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x11f87878 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x13335bb7 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x135d4080 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1793d6bd uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x226630fc uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x262a2ae0 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2ba47a17 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2f16b8c8 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3064e01a uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x314a4fd2 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x31dfd3fc uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3e1adb8a uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x439ccdce uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4fe1c325 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x500959e5 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5aa390f0 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5eee713d uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6090c973 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x60eaa583 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7f3f426a uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9505a0a0 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ee1a0eb uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa0b6aa1a uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa3671de9 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaee04351 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcb7b7538 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd0b5bb4d uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd33e0afe uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd4a5aebe uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe06a0372 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf1d1bbd8 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf229c692 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf79b5e06 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfdc8eb52 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xd0c550fe whci_wait_for +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0064915e wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x13047f2b wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1443ec5e wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1af3aa19 wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1e1d4450 wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x29e5ecfa wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2d37bef9 wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2fb2ec4a wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3f4809f4 wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4ad3acbb wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x581757c4 wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5aea4680 wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5fc9da29 wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x72617f75 wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7a99e92b wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7ef1b16a wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x807dada9 wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x868634ca wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x97d72390 wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xac80ab23 wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb592f2dc wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xbd11e4d7 wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xce5bc44d wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd163f91b wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe0b56d4d wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe0cd88e7 wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe8cefcb8 wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xec845680 wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xee6a1a9c wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf0d15605 wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf35a6a77 wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf9450b35 wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x42843f3f ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x4b54aec4 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x682a40df ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa38e058b ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd032d120 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe06ecf08 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xfe69e8bc ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x18dd24bc fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x2456ba97 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x7a31c118 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xeba32a4a sis_free_new +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x33bfb028 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x557efa1c viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x5cb10fb6 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x71d2726c register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xa5cbb1e1 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xb634ffa1 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xe009198d unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x291c6c29 vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x34e993e3 virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x55cf0672 virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x604ded87 virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xa85d786c vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xb768709c vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc746334f virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xcceec223 virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xf0811d9a virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2517df6e w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x406642ed w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb0d9e95f w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcf56c32a w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd5def55a w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe65dacae w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xea3a893b w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xffd9490c w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9194eecf dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x93e29311 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcece5706 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x5cc488d6 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xfb008d0d exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x019e031f fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x345916db fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x3dc36d55 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x5c8af567 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x6cd3cfda fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x73e57623 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x7df56641 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x86b1fd14 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x8c62e84f fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x8cb2f013 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x95265bd5 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xb380d4cb fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xc11eea9e fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xca2dbce0 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xcfe43283 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xd44e5562 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xe3d24052 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xea4da4fc fat_getattr +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3483ab16 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x52fdf8bf nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8700bd78 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc625cc57 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe241eba5 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x69c83fd9 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xafc6bb42 nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x045bd723 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2a431919 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x719d76f6 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x89322d5d o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9293c51e o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf215494a o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf75ad0fe o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1d722003 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x202b5126 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x448abbe0 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xaa65fc96 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd0e8a116 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xea1d72b6 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xade8798d ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb46ce182 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xc8019ae8 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x2cee411c garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x4b067e12 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xa0ff813e garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xa3812508 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xc455c6bc garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xcc52045c garp_unregister_application +EXPORT_SYMBOL_GPL net/802/stp 0x661267b9 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0xc340e982 stp_proto_unregister +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xb705184d ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xf15a35af bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x05ad956b dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x06a1d974 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a6fe481 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x11e7b28d dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x140129b9 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1476d7b6 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2bae0137 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d1f92cd dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x366f050c dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x443cb1c9 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x46b95747 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4c88f2cb inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5cb837f3 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5e8d4cff dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x665e7cb5 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75190dd8 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7cbea37c dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86875f1d dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86976f1c dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d927b4a dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9ef964dc dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae6f0da7 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb4ac9161 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc3306c3d dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd25d46e7 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd7cf8ffd dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdabea8e9 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe1c39a81 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe7ae0080 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xea2245b3 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xefd6206d dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf5702f83 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf986f421 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x39639d3d dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5e554164 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x64af2a32 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9661794e dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe27d28bb dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf4fdf248 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x79ce4bfb arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xd3bb7566 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x84fb4cb5 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0523feb9 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x141de13e nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4edbf3e3 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x68f050d9 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x69d05d63 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9c734999 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe555fa07 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xebca30a9 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x0ae966a0 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7e19f40f tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9b9aa0ee tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe5629a04 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe8aee6f1 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x1ab725ae inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x41a24538 ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x41f0d912 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4f9a34c4 ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x551f3bdd ip6_local_out +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x58144d80 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6998c41c ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x78c770c2 inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x79598503 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xaa2f9be3 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xbc3c741f inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xbca64322 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc8d03ff1 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xeccfc1cc ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xffa258cc ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xb1f826a8 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0d2af20a l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x21d45afe l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x26bcec4a l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x393de20d l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x41b47450 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4ae08cbd l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6713cbe6 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8e5185a9 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x93496f85 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9e4ff9bc l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa3135be3 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb3a17f39 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc2be15e3 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc9747824 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcf92bead l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdb60c4d4 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe9b28cf1 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1420a2a8 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5daec8e8 ieee80211_find_sta_by_hw +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa8d695ac ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x005aa1b8 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1524e0c4 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16a06e8d __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x178cc0d1 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20087803 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3589e7d4 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39ba88fb nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39d0593f nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3a5b2dc7 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bc476b2 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ee0ddde nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40e0bb63 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x43d42c41 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49584e40 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a862028 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ccab385 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ea9d593 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5083c3d1 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x51a2f549 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5933e1bf __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d4ae73a nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5ffdb8f5 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x625fc093 nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6463e71e nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6982a8d1 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6afdc44e nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72112cd8 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x724701b7 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7bdc70a5 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7efcd107 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x822ca272 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x893c1e37 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89e9219c nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e73642c nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f0c1691 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x935b2d38 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9585e5de nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x982c1e57 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9ebc1eac nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb34fbb55 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb45bd2e9 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba971de1 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbcfa7559 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc4310a2b nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc5911183 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc5b959de nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6331861 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcef43b30 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf7d8279 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd1e3e6ea nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7e10d1e nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb5c9258 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde2e9771 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdffad93a nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe03f3032 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2fa04f7 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe320de1b __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe96af0da nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9ca76a4 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf01f6bc7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf0c9a5b2 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x97c4deb0 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x26de46c1 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x55c841a1 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x675e10d0 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7019092c get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7c194214 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x81d68b36 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x98649bf3 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xaae79d06 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc55bf22e nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcde06581 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfdb3f1c0 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x70362870 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x25b88cb9 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3c821625 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x4a5a399d nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x8cce7688 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x1929be34 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x6da4200c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2066ac83 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x346db8bd ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4f33709b nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x624e9f8e nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6b1c2400 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6c1c667d ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7c79cb1b nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8620714e nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9ef5678c nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa4a828f2 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbbad3355 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdcd05bf9 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe7377278 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x36622b19 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x0e3e490c nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x92bfdada nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x41601914 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x48f9f858 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x64f0835b nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x68b914e9 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa325d595 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xafc229e3 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xe86bb36c nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x07b4b00e xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b634f9e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x24eb7c4c xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b25774e xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x33b1a1d0 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4387f3e7 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x43e87e8d xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4e5ef862 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6ddca722 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x75925c28 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x78fb6516 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x98554551 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd26ceb7a xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xeed2085e xt_hook_link +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x9d17c4a0 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xea658312 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x053e8044 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x42560ba7 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x54bdfa61 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x58d097a8 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x77cdfe48 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8056d630 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x915c124c gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa02e9521 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xdbcd239b gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xdc0fdba4 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf723754b gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x025ff3cb rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x059089bd rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x080ae954 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08c9b4f2 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ba1fa70 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e76ba18 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12a42ef6 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x140e0bb2 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x154d559c rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15bd490c xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16bec3ea svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1705cb44 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1717eb45 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x196e84d2 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ce151c1 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f0c6586 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fd9c56f xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22a4d24a svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24829501 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2bf1703e rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c2fc526 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e3873b0 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eb6987d read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3529b665 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35f580e5 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a9a5785 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d061057 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3df2a0b8 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ebe784e xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f890286 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43d8b11b xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4412bd35 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x454394e7 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x455fcc4e svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a769183 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4aa0526a rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4be07bb3 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d29a551 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dba7154 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ee516fd rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f921ef9 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x512a09de rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x527cb7ba xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53286c14 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5394edb2 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x554fb3e5 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x556437d9 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55982d82 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x581355ae rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59328944 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a20a7b4 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bb09aa6 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cc4feab svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d5d5f1e svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6025afbd rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62506353 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x627e6e4f svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6639a828 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6772978a svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x678f1467 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68b9a5c0 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a528e76 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d213d0d xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6dea7480 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e3a5000 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e4faae7 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f107301 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70964cb8 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72af27d0 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76ef01d2 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x780e44f9 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x783cdeca auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79139453 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x802fcfd4 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x814eec49 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81c67da4 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8661473b xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87314ba6 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89bb668d rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a532dc3 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8aeeca17 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c18020d cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8deff770 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fbea090 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x942def71 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x944c0e07 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97c6263a sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99af6444 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b502100 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c3977bf auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e8c08fe xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa677f2bb svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3354816 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3a2c98a rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb620ad2c svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb63edd33 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb64913fe xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb693169e xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6cde058 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb757c502 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb91de519 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb977d0df write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb3caa0e put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf1b9a2b auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8046775 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc80ae4a5 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce38a2a3 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd13ad0c2 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd179a1d6 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2e7f976 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2fa2fde auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd58a2cb5 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6299bb9 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd70cb70d rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd79dfc39 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd88c3a9d svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd99bb809 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda8660ff unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe098b9a0 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2d6a650 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe703f4b1 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe799b325 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9b9d11e __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9f528d7 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea69d152 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb2b5321 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeed4fe24 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0aa1d20 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1d0647e svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2a6e194 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3b9981b xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf451aae4 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf49e71d5 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4a6e00c xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6f8ff78 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7020655 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf99a7960 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb0a3bc7 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff092705 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfff9702b rpc_call_sync +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0a76dd3a wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1190a62a wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x16da00aa wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x19ce68f0 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2034b4ab wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5cb03ab2 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6aabf28a wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6d2f7eba wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xad34d5b3 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xaf53cfa0 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb0aa59c2 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd00de4ec wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe75550a2 wimax_dev_add +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x02c80002 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x087104cb cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x20530d18 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2586c960 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2a097ccc cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2be14da9 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x30455dc0 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x324f8865 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3f9e35e6 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x41b70865 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x56c8fb10 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x59549d24 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x69faa48c cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x713ebe27 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7f593aee cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fbe400b cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x876e264b cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8b76d9b0 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8ce46eee cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8d34579f cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaf91283a cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb1f1117c cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb62e302d cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb6464d6b cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbc1c3cbf cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbe2a795a cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc09e4be9 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd5ea4988 cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd7f2a9d9 cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe84ee830 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe86473cd cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf7a00775 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1772c240 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x647ec4a8 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc04babe2 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe0a71776 ipcomp_input +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x1582d1bb aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x168bf33a aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x2e8e9efc aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x66552b6b aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x81209372 aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x81255422 aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x898b4a38 aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x90d08afc pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x920d73d5 ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xc20ab345 aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x4a14fb3b soundbus_dev_put +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x7453161b soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x993cf038 soundbus_add_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xa2e1b24d soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xd4c3e040 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xeb001e7a soundbus_register_driver +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0803821a snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x32309978 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x85aacd32 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa2a09818 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbe8a219b snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd045c6b3 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00c438a1 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x039da6ca snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03d1be5f snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x055db449 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a2a30d1 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f711473 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15e3682b snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17929bc3 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a0da3f5 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c607c2e snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c953fd9 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23631263 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x272a9b59 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a57672f snd_hda_eld_proc_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2aa579d3 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c2211ed snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d95bf53 snd_hdmi_get_eld_size +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2df8c126 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x305b852d snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x37be4538 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x39eb7607 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a573443 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40e22c0e snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41237d90 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x42f9f3b1 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x455c45ab snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x461896be snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47156575 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a8a5d43 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x50c7d8f4 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x535bfc41 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x556f98d5 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59055164 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x621b5453 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6444847d snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x66097c61 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6bdb497e snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6bdf7ca8 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6de00319 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70e007a6 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76df9f24 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d07b9f9 snd_hdmi_show_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e624a7a snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x88e19805 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a8fc26c snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b45f488 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d0ed2d3 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x90ac4a73 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b5a1269 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9dd78704 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2f839ab snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6d5abf5 snd_hdmi_get_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa702bade snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8d8daa1 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaab3ceab snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0ed4862 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6934341 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6ed06a6 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbaa3ea11 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbab55400 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb1b92b7 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd359a59 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc182e95c snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc48da6f6 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc4a5b09b query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc674eda2 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7784297 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc965dc79 snd_hda_eld_proc_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb8da203 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce587e64 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd26c252a snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5450f74 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9c2395e snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda083cda snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdbfc9a16 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc7e44c4 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfb46359 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb844e16 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec781faa snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xedfd5e09 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee375b8d snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee407598 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0b7cea9 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf242b50b snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf660014c snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7e7154b snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf89ae543 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff90321a snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x3100c4c9 soc_codec_dev_ad1836 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xd4a9dd64 ad1836_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x1453bfa9 ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x538f6080 soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x15f2a1b6 ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xfcfa520c soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x9dcc0963 soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xa5f74709 ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0xb843e2c5 soc_codec_device_ak4104 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x4ba6ad96 ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x6538d3d5 soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x1d8ba443 ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x3d83fc79 soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x14e811e3 soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xaaf7cc70 ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x3a5cb398 soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x89f469f2 cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x321fbd56 soc_codec_dev_da7210 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xd9c9245b da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x165e649a max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x0ab55eb8 pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xe6ec0836 soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0xcc346d94 dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x45082829 ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xa55ff217 soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xad2145f1 tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xda3cd4d6 soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x7d6cf03f aic26_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xcf030974 aic26_soc_codec_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x1ed8d2af aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x6fc0623b aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x90824330 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xa035c034 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd1a709b2 soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe3d8863e aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xeff31d74 aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xbb436493 soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xd79d8e87 dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x971b1189 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x0ad27a1f soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x952e8558 twl4030_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x4c8f0489 twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x755d3ffa soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x836ce3f0 soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x276ef08f uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xfad02073 soc_codec_dev_uda1380 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc193d280 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xf29af016 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xf6cb9486 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x258495db wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x15eea9aa wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x9ed5bbf3 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x9f7f070c soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xd1c0b537 wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x0463fd5e soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x893d9389 wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x0c6c5416 soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x219da0d7 wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x2507b98c soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x96e1c8e4 wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x03bd6f99 soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xa04e1442 wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xa8e4740f wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xbf7eaddc soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x5fab15a4 soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x765784c0 wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x6cfaa8cc soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xbe033f5a wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x3f7b6526 wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xbcfa79b2 soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x97f783b9 wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xa16c3441 soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x1faed9ec wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x8a416782 soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xd2930e5c wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xf4b247a9 soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x47788199 soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xd045be2c wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x56d1cc82 wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x6c55d25a soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xc77b0fb9 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x2314449d soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x4bd4fc3a wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x240a9a3f wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x40712945 soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x3cc4b737 soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xd2b00038 wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x43f5fd2b soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xb3958b16 wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x5aeecc6a soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x78c958b3 wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x5b2ca65d soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xdebe5307 wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x265b5218 soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x8e73c2b4 wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x8aee1d14 soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xf9b102cf wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x0ff97226 wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x81b25a29 soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x45ddfbff wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x48a9ba16 soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x6384e9d5 soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xc3498951 wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x2cc57f12 soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x39791113 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x6d212679 wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x1018875a soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x20c22c86 wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x08c1dc2c soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00925ed1 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x011a9a88 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02096788 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04c65111 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05a005d5 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b058740 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0bb97b03 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0db7784e snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16a1abcf snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x17747c3c snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a753560 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f3d0933 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x229148a6 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22a029fa snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24265fc6 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26c45607 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2721cb96 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ac33ee7 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2cd8bb35 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33039842 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b03b654 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b7761be snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e20e7b4 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x404a7abf snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x424351cc snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x450bb99f snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5344b0d0 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x53940f56 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5602b311 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5726d78e snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x584bd9d5 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5fd024fe snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x631ec432 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x666e851a snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a379cfd snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7011ae5e snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71341c75 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x738ad81e snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7893cf91 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7907722f snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x799b9aab snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a14317c snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ccbf487 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7d696258 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87f0195e snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8843c28d snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e2f432e snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92da96a0 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93e2fc62 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9812a7e3 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99e2512c snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9bbd96ba snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9eb0a6f3 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7c29bb8 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa9e6598b snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac0d25b1 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xafe78b5f snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaff601cd snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb362b054 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc39c39a snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe4132ad snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0c61dbb snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8f05eba snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcbc3897d snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcbe3a3ba snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd32d82df snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4df7865 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8cca984 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdca9816f snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd2eae43 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe162584d snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed469d45 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xedf43c28 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0a86c38 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5afa309 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd8f94b8 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff677d2f snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x30bed6f2 xv_create_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x60443f07 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x90e0e9c6 xv_malloc +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x95609052 xv_destroy_pool +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd148ead8 xv_free +EXPORT_SYMBOL_GPL vmlinux 0x0010238b platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x0035be43 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x0050b2b2 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00661656 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00b54747 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00e64499 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00ed88af usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011b6fe8 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x014df364 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x015d8638 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01c423d9 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x01c99d40 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x02116d5e ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x0227c3d0 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x02601726 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02d06741 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x030645b9 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x030df8d5 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x0334156e handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0345524f wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x039f7b79 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04572c52 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x047b1d5e __class_create +EXPORT_SYMBOL_GPL vmlinux 0x047fab28 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x04ae411c ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x04ecb9c8 cvt_fd +EXPORT_SYMBOL_GPL vmlinux 0x04f2d321 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x04f62577 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x05025eca scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x05067b8d ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x053450fc ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x0583b75f ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x05a211e3 kvmppc_rmcall +EXPORT_SYMBOL_GPL vmlinux 0x06122899 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x064823d3 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x07252ae0 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x07430d77 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x079ef825 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c5f943 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x0810dca4 pmac_backlight_mutex +EXPORT_SYMBOL_GPL vmlinux 0x08187f81 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x0858c104 ide_device_put +EXPORT_SYMBOL_GPL vmlinux 0x08fa60b1 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09404d4f preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x09e6882d user_match +EXPORT_SYMBOL_GPL vmlinux 0x0a05f274 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x0a2ea2e4 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x0a3332c6 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a5a6bc0 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x0a5e3171 ide_error +EXPORT_SYMBOL_GPL vmlinux 0x0aa0a105 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b6ebd04 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x0b75e8e4 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x0bd15442 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x0c071f3a queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c50eea2 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0d3621bd gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x0e7da7bf ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x0e80e694 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x0f548390 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x0f7ae6f6 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x0f7d0c24 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x0f99e9c2 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x0fa0724b __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x0fc06657 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x0fd5486a ref_module +EXPORT_SYMBOL_GPL vmlinux 0x0fd7fabe sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10269e46 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x1036d57a fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x1043dc42 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x1068b162 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x1075f09b regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init +EXPORT_SYMBOL_GPL vmlinux 0x1130addb register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x1192a881 pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0x11973e53 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1197fade generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x11b388f5 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x11c2efc6 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x126f780e fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x1292178c usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x12a079f1 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x12a4fec9 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x12b425eb single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x1308f957 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x13192f3b usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x132b4797 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x135020f8 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x138c388c ide_host_remove +EXPORT_SYMBOL_GPL vmlinux 0x13ad7f29 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13bd7e23 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x13c6a04b register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x14038a06 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x143e35b5 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x14704218 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14f72112 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15e337ea fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x163c5e33 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x169d1e72 ide_capacity_proc_fops +EXPORT_SYMBOL_GPL vmlinux 0x16a56d34 of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x17142764 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x17967cf6 ide_allocate_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0x17a3dea2 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x1802ad1b ide_device_get +EXPORT_SYMBOL_GPL vmlinux 0x180707e8 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x184147a9 pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0x1873a86b crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18a18f7c vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x19221f85 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x192d9dcd ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19afea4a ide_do_start_stop +EXPORT_SYMBOL_GPL vmlinux 0x19d419de devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x19d65d76 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x1a1df21e fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1a1ff95e setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x1a2dbbcc cpu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a49e275 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x1a573392 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x1a70ed42 ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x1a9965aa ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1adac2d7 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x1b382257 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x1b406db0 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x1b8c1ba8 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba4e009 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x1c00a42c pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x1c1a4d95 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1ca85c06 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x1cceb3a6 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x1d59a217 kvmppc_trampoline_enter +EXPORT_SYMBOL_GPL vmlinux 0x1d5a408b driver_find +EXPORT_SYMBOL_GPL vmlinux 0x1e2314fa shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e839cef proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1eed5888 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1efc5495 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x1f030bd2 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x1f5b72d6 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x1fa9ba7d elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd4badc shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1ff02077 ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0x1ff55e68 ide_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x20407b8e dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x2049bab8 __destroy_context +EXPORT_SYMBOL_GPL vmlinux 0x20500547 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20cb3689 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x20e6792b sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x20e7bee2 lock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x213161b5 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x218f7348 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x21a754e0 cvt_df +EXPORT_SYMBOL_GPL vmlinux 0x21a75fe0 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x21aec682 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x21b46111 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x21bdd63a usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x21ea2f9d pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x21f94439 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x2230c568 pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x2296fcc7 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x22b2c918 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x22b47383 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x23290167 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x2354b16e queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x237cb306 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2394c6bb seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x2406dae3 pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0x24293922 ide_prep_sense +EXPORT_SYMBOL_GPL vmlinux 0x242e444c css_id +EXPORT_SYMBOL_GPL vmlinux 0x244abb51 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x248a5492 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x24956133 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x24abb06e register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x24cda041 ide_vlb_clk +EXPORT_SYMBOL_GPL vmlinux 0x24e5692c ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x24e9a36c pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x250dabb3 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x2517849a class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x25207592 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x25356ae2 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x254ba735 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x254e5998 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x258a6d53 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x25c5ed01 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x265f204d rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x26699b38 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x2750747b class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x27594c64 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x27735e33 get_device +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x279e4da0 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x27a7f980 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27c994e6 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x27edce11 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x2871b439 of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x2937f5ed platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x29917883 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x29c00718 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x29cd7371 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x29dcc96c map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x29eb56f7 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x29fdd5b0 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a9d2c76 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2ac7ebeb ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x2b2dcf3b wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c5ecebd usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2cdacac9 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d096394 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x2d0a3417 ide_queue_sense_rq +EXPORT_SYMBOL_GPL vmlinux 0x2d1fb9b7 unlock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x2d47b5f8 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d914688 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x2da1576b crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2db6224c register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x2de18c4f shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e4f8117 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x2e80120e sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x2e8f7d98 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x2eb027f0 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x2ed355b2 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2f2aa116 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x2f3201c1 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x306692a5 do_rw_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x31179983 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x314ba7b5 ide_read_bcount_and_ireason +EXPORT_SYMBOL_GPL vmlinux 0x316bcbf1 ide_pci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x31ac407e tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x31d8a124 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x31dc779f ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x31de6218 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x320d1b66 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3218fed8 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x32305a5c seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x32697428 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x32c6e0a4 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32eb1ba3 ide_release_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0x3336d4c9 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x334a3ce7 ide_get_lba_addr +EXPORT_SYMBOL_GPL vmlinux 0x3352c46d __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x33c7061b ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x33e720d6 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x340fb194 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3446893d sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x344a0915 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x348eb070 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x34fc69d8 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x35292446 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x356576dd class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x35730f9e crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x35cbb0e9 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x36286b85 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36389b79 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x36798810 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x36c10de0 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x36c88512 ide_read_status +EXPORT_SYMBOL_GPL vmlinux 0x3713a937 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x372d7419 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x373156a7 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next +EXPORT_SYMBOL_GPL vmlinux 0x37e16d44 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x37f7e3e6 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x383e22bd rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x387e77cf sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x38991b60 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38b68c40 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x38cf2df3 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x39174b27 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x3927635d usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x39820926 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x39c93984 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a04416e i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a4b8597 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x3a68f19f wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3a8482f8 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x3b206a05 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x3b4acd3e securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x3b7aa02c blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3bff734a ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cb537e9 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfda72a __module_address +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d139db9 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x3d2011df skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x3d209c3f rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x3d27d858 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x3d365e10 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d5caa16 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x3d6ba9f0 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x3d98fca5 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x3dbda987 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x3dc0ec58 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3ddf5b59 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x3e3cd7e8 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x3e3dc519 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x3e5beff5 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x3e6e8767 ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0x3e7173f6 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x3ee16cbd init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x3eea48aa __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f32af9d each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x3f5d6d78 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x3f8550ef inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x3faa3bec device_move +EXPORT_SYMBOL_GPL vmlinux 0x3fc500e0 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x400133e4 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x406127a2 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x4068f10f regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40b2394a ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x40e7d6f1 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x40eeca8e pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x41389212 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x41720c52 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x4181eed1 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x41a0f7f7 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x41b6c163 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x4217ba2f ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x4229b558 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x425c1c0b ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x4329da49 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x4340cdb1 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x435e6005 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x436ed1b4 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x437c595b ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0x439c53c5 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x43e70d55 pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43f866f7 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x444345db blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x4478490e spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44cb5325 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x453a83e4 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x4544d18b transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x458fb722 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x45b77696 ide_pci_init_two +EXPORT_SYMBOL_GPL vmlinux 0x45b967b3 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45f1ea84 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x4600460e platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46a1c5c6 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x46c58832 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x46d26004 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x46e897f5 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x46ec86fd input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x46edb4f4 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x47158ce8 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47644ad1 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x476d3f26 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x484b8fd7 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x484fc6c3 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x485e6687 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x4879bc7c usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48b86307 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x48dc007f devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x48e36471 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4940989c hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x4943a338 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49e898b1 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x49ed6230 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x4a2496a4 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x4a6b8b1f eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x4a8321cc ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x4aa8cc5d tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x4abbb246 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x4af6bd14 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4b390d51 pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0x4b42eb4c device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x4b6e55be bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x4bd13cee ide_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x4bd30bb3 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x4c16426c dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x4c62fcea ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4c9ae905 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x4cac8b2c platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x4cc32c81 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d3cdafb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x4d5d4acb fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x4d7a29b2 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x4dff4396 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x4e86376e rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x4ea62045 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x4ea90b8a nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x4ebb84a9 ide_write_devctl +EXPORT_SYMBOL_GPL vmlinux 0x4edd8d21 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x4ee9583e usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efcfd74 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x4f176640 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x4f83de0e pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x50206662 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x508f824c ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x50b6d6b3 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x514365f5 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x516a0357 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x51af7f83 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x5210685f inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x522e195f add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x52361a54 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x52bb7ca4 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x52d14d5f led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53945361 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53c11c8c pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x53e63b00 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x53ef847a irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x5448b448 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x5450ed6e sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x5453e061 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x548e80d6 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x5492b6bb bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54991efe ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x54a0ba22 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x54e1149c transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x551802d7 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x5524749d usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x553afbe7 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x55a579ef bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x55b0173f ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x562ebd7a page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x562ef2de kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x56437637 ide_read_altstatus +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5657bfd0 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x566cc93a ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x56728164 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x568b3af1 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x56d69ec8 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x570f1361 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x571b4c70 ide_pad_transfer +EXPORT_SYMBOL_GPL vmlinux 0x571d2491 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5747a1b1 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x57660064 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57eb1063 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x583344e9 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x583baf52 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x587bb511 ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5894a2fe ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x58a23ff1 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x58e0ba17 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x58f7e98f blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x58feca59 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x59025d3f sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x591dff1a input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x59c862ce usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x59df97c6 device_add +EXPORT_SYMBOL_GPL vmlinux 0x59e9860a regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x5a0a73f0 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5a347a39 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x5a67cb13 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5af6e738 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x5b2ebb1e ide_no_data_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x5b5b9049 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x5b7c8524 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x5bc08771 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5bc58855 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x5bd66f0e get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x5be455df bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5bef8463 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c3ca181 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5c5b588b usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x5c6ac96f usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x5c7872f4 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x5ca76e7f power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x5cc0e3b3 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x5cd0bba1 ide_setting_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5d0870af sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d14c69e gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x5d15dda7 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d80c4b5 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x5d93b225 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x5db77334 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e09820a ide_output_data +EXPORT_SYMBOL_GPL vmlinux 0x5e7a218b pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0x5e8f663a bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x5eccd851 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x5f23a890 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x5f387f1d wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5f93cc48 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x5fae5c55 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fd148ec ide_init_pc +EXPORT_SYMBOL_GPL vmlinux 0x5fee0409 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6009e03f crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x601182ab regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x605b8887 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x6089baff transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60b3240d crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x60bff296 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x60d0d2e8 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0x61373519 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x61494a3c get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x61b935d3 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x61db9504 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x620bdb32 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x626909e7 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62a0576c unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x62b24ed1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x62e05f04 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x633da9d5 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x634cf99b usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x63671ad6 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x6386e135 device_create +EXPORT_SYMBOL_GPL vmlinux 0x638f1647 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x6400e9c7 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x6415433f save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x642042c3 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x64527730 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x6453f77c pmac_has_backlight_type +EXPORT_SYMBOL_GPL vmlinux 0x646a3aa2 pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0x6470df4a ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x64f7ab7e wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x64fcf927 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x65024394 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x6512b157 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x653237b3 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x65427da0 rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6554b027 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x656eaee8 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x657161e9 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x65c589a5 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65ee034a sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662f3d8f ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x664fb64f ide_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x66544b67 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66a43a4d swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x66af77b6 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66ccdf63 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x66d7d4d2 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x677fcaba ide_input_data +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67ca7cb5 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x682ec649 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x68629ec5 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x6869f57e setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x686e0274 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x68724c3f pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6873c6b9 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x689a149a do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x68bb31b3 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x68fda9f6 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6948ff8b fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x696695bd pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x69c0a875 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x69c7e1b1 put_device +EXPORT_SYMBOL_GPL vmlinux 0x69d25a6e ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f54dc2 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x69ffd677 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6a49ae30 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x6a559116 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a60fde1 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x6ad33da5 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6ad9dfd7 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x6b112c6b rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b3cdcd7 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x6b718013 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x6bb66cd7 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x6bfb49f3 ide_dma_test_irq +EXPORT_SYMBOL_GPL vmlinux 0x6c205571 pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x6c47eb6c tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c716de4 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6ca2e98a tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6cb204cd __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x6cd1c4d6 ide_queue_pc_tail +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6d564467 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x6d5bb882 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x6d6b51c3 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x6d73dcad ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6daef90e xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x6db3fb63 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x6db7f2a6 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x6e19eb7d wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x6e306e30 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6e5f8242 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e95d855 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6ee77895 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x6f03cfe6 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6fa2f610 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70077535 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7008927d of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707afaa9 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x707e84fa tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x709305ce usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x70b733ba crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x70eba206 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x70f4d035 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x70fce0b0 ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0x7103a9df macio_find +EXPORT_SYMBOL_GPL vmlinux 0x7104ac54 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x714a1ed2 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x71554df4 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71a21344 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x71f8d989 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x723b00d7 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x72417b62 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x724bed76 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x727cc1d5 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x728cd730 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x729a3787 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x729e17e4 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x72c6b216 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x72e0aa46 cpu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x7315506c led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x731796ab tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x731ea3a3 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x73564277 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x7389bdaa power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x73a45d7d usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c3cd62 ide_cd_expiry +EXPORT_SYMBOL_GPL vmlinux 0x74122255 ide_host_add +EXPORT_SYMBOL_GPL vmlinux 0x741aeefb put_pid +EXPORT_SYMBOL_GPL vmlinux 0x742b24a3 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x74381712 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74503121 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74dca3ec usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7556b1cd get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x75655ffc power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75b0c9fd regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75cc275b anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75f119e5 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x75f8f23b pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7626b273 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7637168e spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x7671224b eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x76908042 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x77497130 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x774d94cf security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x77721c2a ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x7782335a platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x77a2b032 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x77d7d050 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77e179d8 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x7803a323 ide_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x78d81b7c cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x78f20cc3 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x78fb0af7 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7905c3f6 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7910f9b4 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x79211e5f sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x7928dd32 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x793a3f08 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x7943cd44 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79963a5f device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x79b9da79 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x79bb6b1b dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x79c307d1 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x7a004daf of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x7a2c6845 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x7a730320 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x7a902ab3 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x7ac56b68 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x7ad98de4 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b2eda1e blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x7b356745 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7bbfd089 pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0x7be6c431 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x7bea0cae disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7c0e798b ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x7c143df8 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x7c3954bf driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7c412eff led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x7c5a5543 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7c8e16e8 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x7cab2a3e ide_pci_init_one +EXPORT_SYMBOL_GPL vmlinux 0x7cb6b22d regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x7cf6e7ef debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7d424554 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d5b923e cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x7d669cbe class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x7d9c4e2b regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e2d29ec ide_pci_clk +EXPORT_SYMBOL_GPL vmlinux 0x7e34097e tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6efaf8 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7f0c59aa vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f1f9dcc ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7f27cb17 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7f5694b1 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fa9bbe6 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x7fc5a499 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x7fc6c20c ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fd5fb0f usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x7fee1ac5 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffb5c06 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x8023f5b6 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x80279841 ide_host_free +EXPORT_SYMBOL_GPL vmlinux 0x8037edad da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x805e5621 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x8067c482 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80e1fa14 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x80fa62c8 ide_port_scan +EXPORT_SYMBOL_GPL vmlinux 0x813a0149 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x817a905a pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x81a5cc7e crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x81efe404 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x8221cae2 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x823f5241 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x825bee10 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x82649f38 pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82ad7364 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x8306b434 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x83d82f34 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x8412ded6 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x843089a3 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x843e813c transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x8441d5f2 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x845996d6 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x8472ce59 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x8475c770 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x8527366d cpu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x853274d3 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x85789e96 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x85808a64 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8595174f usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e974e0 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x860855f6 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x862b9fa0 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x86365315 ide_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x8670d49f spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x867d34c6 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x873ad136 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87711bd2 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x877cdd9a usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x878b5248 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x87935f4a platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x87ae9276 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x87ce36e8 isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x87ffbdb7 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8825dd33 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x886437de inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x887dc331 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x888034a0 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x888ec862 pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x888f6fdf ide_check_atapi_device +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x8905880e queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8931c66e sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x893a43ae scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x8989d944 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x8a0b90e2 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x8a16b797 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x8a5d419a ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x8a6241b8 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x8adc7b4c ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0x8afed182 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x8b1ddd35 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x8b497179 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x8b5fe6f0 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b9992b7 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x8bac7091 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x8c2db312 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x8c3aacec wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x8cb31039 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x8cba1a03 ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x8cbe41e0 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x8cdca971 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x8cfe3285 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x8d1ae9d9 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8d28e61a ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x8d60370b unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x8d6a7d9f ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x8d7156ca ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x8d8560dc led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8db799f4 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x8df5c4b9 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x8e07fad6 __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x8e4bd437 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x8e7244ad inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x8ed6f45f driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f037dd6 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x8f2f37d1 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x8f3a109f dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f90e908 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fd1c97e regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x900087cd user_update +EXPORT_SYMBOL_GPL vmlinux 0x900b4183 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x9039791d led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x904b3622 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x9050d3f5 ide_pci_set_master +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90b3a84d sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x90cddb0b crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x90ef7a95 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9173c454 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x91ab56d7 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x9214bde2 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x9235df29 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x923be3bd dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x928f5bcc mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x934417a0 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0x934cb4c4 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x93c0e9de pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e8e774 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x93eaceec skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x942c8663 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x94333716 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x945c7332 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x94799c5c usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94a813fe crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x94af2d01 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x94c1b466 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x94e8deb8 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x951ebf92 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x95340a16 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x9568210a __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x956e420f ide_dma_sff_timer_expiry +EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x95c63069 ide_pci_check_simplex +EXPORT_SYMBOL_GPL vmlinux 0x95f39ed7 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x964f9f36 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x96512a73 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x970deb70 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x971acb68 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x971eec32 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x9731f49c ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x97481292 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x9758804f get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x9768c5ab crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x979d8baf adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x983ca1fa ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x985641eb ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x98cb2da3 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x98e5fc86 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x98f57bbd firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x99068886 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x994aba4a blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a3af430 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9a5c4f99 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x9a64066a adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9a846a3b pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0x9aa4ec43 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x9ab1e824 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x9b34e845 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x9b4d80a6 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ba282fd kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x9bcd5bde usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x9bd89ae2 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0x9be98ee7 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x9bf393de d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x9c1bad76 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x9c270fbd crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x9c82afe0 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cc71d59 __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x9cf22275 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9cf511d5 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0x9d2b9e9f tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x9dafbd5f sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x9dff21d4 ide_set_media_lock +EXPORT_SYMBOL_GPL vmlinux 0x9e0343c9 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x9e10eba1 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x9e197d1a pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0x9e36213d generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x9ebafb3f __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x9ed5a8af ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x9efe8c44 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x9f1eb1ef pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f5308aa tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x9f595d3b relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x9f8272d3 pmac_backlight +EXPORT_SYMBOL_GPL vmlinux 0x9f8d0440 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9fb30c85 ide_pci_setup_ports +EXPORT_SYMBOL_GPL vmlinux 0x9fb69993 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa012ef62 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xa03c054e ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xa07c90bd crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xa089ad66 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xa0a191ce crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xa0ee6fac usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xa1009776 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xa10517ce ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xa138210e ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xa14fc3a3 mmput +EXPORT_SYMBOL_GPL vmlinux 0xa18a9400 ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0xa18c1e04 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xa18e5c6e fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xa1ec2286 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xa1f7cc18 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xa21fad2f tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa2352e9d usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xa244d686 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xa26a065e tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xa28e5c87 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xa2d4b8c9 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xa32eb0bb usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xa333bd8b wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa3692fd8 of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0xa398d11b sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xa39d9220 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa42bb26e pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0xa464c625 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xa47bfdfe __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4e28e37 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xa53bc090 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xa5910715 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xa5afabf2 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5e50f28 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6b729f3 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xa73c4e5b simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xa73d5151 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xa78ef49c crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa7c7ab6f regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa7cffbc9 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xa7fb521c pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xa81b293c device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa86ff273 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xa873fa6d inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xa8930e5a hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa8a43a10 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa90e43fe scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xa93a56c5 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa94e5334 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xa95909b0 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9f2a5af simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa19eed1 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa35d3d1 ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0xaa4d090b platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaa97b3ce mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xaac0bc58 ide_cd_get_xferlen +EXPORT_SYMBOL_GPL vmlinux 0xaac7dd47 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xaafa8df1 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xab4efbd4 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6cb88a crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xab96bb41 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xabbafb26 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xabd60d72 platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0xac1383c8 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xac7a7129 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xac9b8816 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xacb4d984 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xaccf00b2 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace643ce pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xacef506b tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xacfdb552 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad44ad26 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xada01e4a usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xadaa26f2 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadce00ab ide_dma_end +EXPORT_SYMBOL_GPL vmlinux 0xade139be regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xade9039d inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae31541c blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xae67d1e3 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xae695f71 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xae734d01 pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0xae8a3c50 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xaef1d16d __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xaf355878 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf50dfd4 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xaf7db47b wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xaf80099a br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xaf988403 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xb01208fb ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb061564d bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xb082068a ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb109d05f ide_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb13711dd ide_pci_dma_base +EXPORT_SYMBOL_GPL vmlinux 0xb1543a2f ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xb1681a8e usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1afa448 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb1c61340 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xb1d85c3e device_del +EXPORT_SYMBOL_GPL vmlinux 0xb1f182e7 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xb1fe25a4 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xb21f7b35 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xb27f82ff check_media_bay +EXPORT_SYMBOL_GPL vmlinux 0xb2ad62bd device_register +EXPORT_SYMBOL_GPL vmlinux 0xb2ce7b28 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xb30db94f find_module +EXPORT_SYMBOL_GPL vmlinux 0xb3438bb3 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xb37518eb __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xb38972e7 ide_pio_bytes +EXPORT_SYMBOL_GPL vmlinux 0xb3b30730 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0xb3b5f971 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xb3d2857a pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xb429c096 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xb45c814f queue_work +EXPORT_SYMBOL_GPL vmlinux 0xb49fefef invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xb4bed751 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4f12b52 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb500b61b debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xb51da746 cpu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb57c89fe cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5b4c383 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xb5c8a852 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6502063 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb6638944 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xb6967aba usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b68102 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xb6d80dec inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb6eac5f5 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xb7004ed6 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0xb7074779 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xb70ecf2c xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xb74369c4 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb74abeac rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xb75979a8 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xb7b1e5a8 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb7d39578 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xb7dea491 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xb8076cfc hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb82c3cb8 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb84a6820 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xb87b2aca dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xb8edd044 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xb924778b ide_dma_sff_read_status +EXPORT_SYMBOL_GPL vmlinux 0xb93af698 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xb94d39cf ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb9860af7 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba4b5df4 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xba758c4d __ide_pci_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xba9b4508 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xbaa0d2ec ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xbab7c7a9 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xbab7eae6 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbae56c86 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xbafa654e usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb03a04d vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb1ca9fb register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xbb4aa0f8 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xbb823345 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbbb0c1cd ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xbbfac69f user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbc3672a3 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbc3c6472 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xbc836725 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xbc897ed9 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xbd909c02 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xbda00894 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xbdb4c550 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xbdcebcd9 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdfac862 sff_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3734b5 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xbe71b2a4 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xbe77b579 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xbec522f0 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xbecab0e9 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xbf199733 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf83a979 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xbf88f63b ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xbf8b57e2 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xbfc68f7a vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xbfd84f5a ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc0183310 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xc02192f1 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xc027b48e fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc09fc016 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xc0a05528 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0e3313b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0xc109a6d1 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1395191 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1bab881 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xc1ca1314 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xc1eda385 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc2da79dc pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0xc31dfac7 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xc34d6744 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3b2ece9 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xc3b7ca80 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xc3d6fac9 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc469267f usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xc46d877e schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc476f0c8 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xc4787c06 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4a03dd3 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xc4acbc7a regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc4ce9f75 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xc4db992e kvmppc_load_up_fpu +EXPORT_SYMBOL_GPL vmlinux 0xc5172b09 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xc51c2e2c scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xc527ff8a ide_dma_lost_irq +EXPORT_SYMBOL_GPL vmlinux 0xc536780f usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xc5501627 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xc5a79fab unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0xc5b1d204 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc6033180 ide_dma_host_set +EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid +EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc66554fe __css_put +EXPORT_SYMBOL_GPL vmlinux 0xc6ce657a pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0xc6fd563d transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xc777b6ac ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xc78f205f key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xc7d4d2bd debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc7dbb482 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xc7fcf759 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0xc853b147 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc864c28b inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xc8a96f60 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8cc862a ide_port_unregister_devices +EXPORT_SYMBOL_GPL vmlinux 0xc8cfceda regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc8f5b155 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc9182ecd br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xc9329a16 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc9b6786e ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0xc9be9d3f ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xc9ea7384 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca0daf59 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xca2cd496 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xca517e60 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xca56115a ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca8a076a ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xcab4c438 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xcafc9bba securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcb0e4f24 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xcb259ef9 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xcb7f4c35 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xcb953bdd pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc005453 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc56b0e6 ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xcc5ab895 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xcc6fe10b input_class +EXPORT_SYMBOL_GPL vmlinux 0xcc8f7b61 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xcc99c325 ide_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xccb1452d of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xcd338e44 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xcd9f11c0 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce248a13 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xce43819a device_rename +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce787f71 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xce995311 ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0xcea44b96 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xceb026fd pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xcefc49bf blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xcf097bdb tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xcf4a5e18 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xcf8c92b5 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xcf91ad9d device_attach +EXPORT_SYMBOL_GPL vmlinux 0xcfa0db40 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd00652f3 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0xd019b856 pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xd02e6382 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0e2652d ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xd15b84e2 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd194c25f ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1eeb27a usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xd1f54fd6 ide_end_rq +EXPORT_SYMBOL_GPL vmlinux 0xd21525bd sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd24d8ac5 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xd269c844 ide_read_error +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd274f58a crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xd2f9c501 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd330a075 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xd340b51c tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xd36ed064 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd405daa0 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd41214d0 pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0xd415dc06 tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd42415e6 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xd424b082 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xd449a809 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xd4627865 ide_create_request_sense_cmd +EXPORT_SYMBOL_GPL vmlinux 0xd46b050f scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xd4a27d06 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd4a76f4b cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xd4c94fb3 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xd51d6a9e regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xd54a5192 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xd595c382 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xd5a2f1b4 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xd5b31fde pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xd5c59c6b ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd654f1a9 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xd710a7dd crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xd73eca42 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd75d90da platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7a558e3 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xd7b100c2 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xd7dd3d85 ide_do_test_unit_ready +EXPORT_SYMBOL_GPL vmlinux 0xd846bdd2 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xd8726ba7 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd888db04 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xd8a8626c css_depth +EXPORT_SYMBOL_GPL vmlinux 0xd8da34ec ide_issue_pc +EXPORT_SYMBOL_GPL vmlinux 0xd904c13f dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xd92d45f7 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd9322acd tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xd95a3563 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xd9acf85a pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0xd9b7d591 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xd9eef782 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda359c74 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xda384a96 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xda6550e3 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xda87e936 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xdaad3845 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xdabe1575 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb7ecadc register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xdba325dd ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xdbd5f358 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xdc1aa72e scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc46716c bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xdc490506 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xdc579a84 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xdcc38f68 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xdcdbc52b blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xdd8c677b usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xdde2023b platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xde064c17 user_read +EXPORT_SYMBOL_GPL vmlinux 0xde0c95d3 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xde3d6b9a hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde4d11f4 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xde7bdb8c rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xde8cf27e ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xdebd4846 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xdf27877b register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdf405e6c blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xdf919757 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xdf9a996e kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xdfb1b434 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xdfb2abe8 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xdfb7729d usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xdfbce85e shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xdfd899d7 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xdfd9b994 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01e3cd1 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xe09127b3 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xe0957268 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0e0f80d rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xe10c0f71 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xe1f43c69 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xe1fe2d20 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe2433cdb sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xe24a6240 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xe274a2c6 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe276197d blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe2aa1efb regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe2aa2e2e pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xe2ed43ae ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe30f077f sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xe32dce1e rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xe3375da9 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe34c7013 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xe3e2b85a ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xe3f4515e crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xe450e1ed debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xe465ee07 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xe48c5225 inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0xe490f256 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4b787cc crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe4cd77e1 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xe52c5058 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xe53261f2 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xe541dda0 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xe5b60173 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6978501 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6e9c802 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7528ea5 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe755a6d4 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe769ca80 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xe773e1f1 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0xe77fe059 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe7800a68 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe820dde7 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xe83d1fa6 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xe8571ace usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe873b802 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xe8869eff ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe8b312f3 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xe8f7895e pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9568338 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe96c6cb5 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0xe971abe9 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea24ec2d rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea4eb86e blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xea695ed2 kvmppc_load_up_altivec +EXPORT_SYMBOL_GPL vmlinux 0xea7e633f ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xeaab4f95 tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0xeaac214a regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xeacc53d4 kvmppc_trampoline_lowmem +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb5c9651 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xeb770d4d ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xeb8990ae tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xebd0252f tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xebe04c51 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xebe0c20a ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xec05d816 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xec108890 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec7245aa sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xecb3b4a5 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xecc6d4f2 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xecd21780 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xecea75d0 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xed58a1f2 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xedd255c4 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xeddb8e34 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xedf2f88b cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xee0a8e6b disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xee31db00 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xee7c147a ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xee812f91 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xee915527 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xee93b060 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xee9654a5 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xeeb46c20 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xeefac6ef wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xef206ca3 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xef473dae usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xef618f9a ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xef68efe3 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xef698566 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefb04600 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xefcd7436 ide_retry_pc +EXPORT_SYMBOL_GPL vmlinux 0xefd23891 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0xefd517df usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xefdb16ff ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xefdc2cc9 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xefee44c8 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf0745d16 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xf09098f0 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xf105d00d ide_in_drive_list +EXPORT_SYMBOL_GPL vmlinux 0xf15635e2 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1c187df driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xf1c6eac5 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xf20b8ac7 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xf25e6541 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xf2867f42 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xf296e6f1 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xf2a04d50 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xf2f9898c __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf33011a4 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xf3326190 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf36d74b8 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0xf370c545 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xf378b75d ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xf37914bc __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf3974810 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xf3a2c3ac ide_intr +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3bcedc2 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf3cb9b83 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xf3ceede1 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xf43ad99c __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xf44e2adb ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf452828e ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xf49927d2 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf49b53da rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xf4bfb9cb inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xf4f1af23 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5af427d of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0xf5c10f43 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xf5c4208f fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xf5cafd54 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xf638bdc1 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xf65fbd3f sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf6a4128f pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xf6e85f91 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf71d2337 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xf7341b39 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xf7659af3 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xf77a2281 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xf77aaa11 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0xf7941623 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xf7a8a7fd sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf7d7cc89 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xf81ab25c perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xf81e35c5 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf8473bd3 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xf860aa80 ide_pci_resume +EXPORT_SYMBOL_GPL vmlinux 0xf860cf35 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf899b47c crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf8df5b4a pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8f5a559 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xf8fb3fd6 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xf9018d1d pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0xf95e1075 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xf96b152d fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xf99efaa7 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9b15fd0 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xf9e6c857 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1e9620 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfa76ce05 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xfa9dd504 timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xfaac9068 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xfaad8e1f ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xfac410e2 ide_check_ireason +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb9cbae9 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xfb9f25dc debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xfbbdb6f9 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xfbca3f35 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc2e13ea trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xfc4538a3 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xfc6bf860 ide_host_register +EXPORT_SYMBOL_GPL vmlinux 0xfc6cded6 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xfc7fe392 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xfc92443c crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xfc963e46 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xfc9a0dea user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xfca6f82d ide_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xfd244ae9 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xfd30c2ef rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xfdd1bef8 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe444bb6 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xfe8cd3da usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfec9cb54 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfedf8f91 ide_dma_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff2bf624 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xff337fe4 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xff5d7fe5 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffc53d3b wm831x_set_bits --- linux-2.6.35.orig/debian.master/control.d/vars.powerpc +++ linux-2.6.35/debian.master/control.d/vars.powerpc @@ -0,0 +1,6 @@ +supported="32-bit PowerPC" +target="Geared toward desktop or server systems." +desc="32-bit PowerPC" +bootloader="yaboot" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" --- linux-2.6.35.orig/debian.master/control.d/vars.virtual +++ linux-2.6.35/debian.master/control.d/vars.virtual @@ -0,0 +1,6 @@ +arch="i386 amd64" +supported="Virtual" +target="Geared toward virtual appliances." +desc="x86/x86_64" +bootloader="grub-pc | grub | lilo (>= 19.1)" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9" --- linux-2.6.35.orig/debian.master/control.d/flavour-control.stub +++ linux-2.6.35/debian.master/control.d/flavour-control.stub @@ -0,0 +1,77 @@ +# Items that get replaced: +# FLAVOUR +# DESC +# ARCH +# SUPPORTED +# TARGET +# BOOTLOADER +# =PROVIDES= +# +# Items marked with =FOO= are optional +# +# This file describes the template for packages that are created for each flavour +# in debian/control.d/vars.* +# +# This file gets edited in a couple of places. See the debian/control.stub rule in +# debian/rules. PGGVER, ABINUM, and SRCPKGNAME are all converted in the +# process of creating debian/control. +# +# The flavour specific strings (ARCH, DESC, etc) are converted using values from the various +# flavour files in debian/control.d/vars.* +# +# XXX: Leave the blank line before the first package!! + +Package: linux-image-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: admin +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, =PROVIDES= +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: BOOTLOADER +Suggests: fdutils, SRCPKGNAME-doc-PKGVER | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools +Description: Linux kernel image for version PKGVER on DESC + This package contains the Linux kernel image for version PKGVER on + DESC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports SUPPORTED processors. + . + TARGET + . + You likely do not want to install this package directly. Instead, install + the linux-FLAVOUR meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), SRCPKGNAME-headers-PKGVER-ABINUM, ${shlibs:Depends} +Provides: SRCPKGNAME-headers, SRCPKGNAME-headers-2.6 +Description: Linux kernel headers for version PKGVER on DESC + This package provides kernel header files for version PKGVER on + DESC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details. + +Package: linux-image-PKGVER-ABINUM-FLAVOUR-dbgsym +Architecture: ARCH +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version PKGVER on DESC + This package provides a kernel debug image for version PKGVER on + DESC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. --- linux-2.6.35.orig/debian.master/control.d/vars.generic-pae +++ linux-2.6.35/debian.master/control.d/vars.generic-pae @@ -0,0 +1,6 @@ +arch="i386" +supported="Generic" +target="Geared toward 32 bit desktop systems with more then 4GB RAM." +desc="x86" +bootloader="grub-pc | grub | lilo (>= 19.1)" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9" --- linux-2.6.35.orig/debian.master/control.d/virtual.inclusion-list +++ linux-2.6.35/debian.master/control.d/virtual.inclusion-list @@ -0,0 +1,131 @@ +arch/*/{crypto,kernel,oprofile} +crypto/* +drivers/acpi/* +drivers/ata/ahci.ko +drivers/block/nbd.ko +drivers/block/floppy.ko +drivers/block/cryptoloop.ko +drivers/block/xen-blkfront.ko +drivers/char/hangcheck-timer.ko +drivers/char/lp.ko +drivers/char/nvram.ko +drivers/char/ppdev.ko +drivers/char/raw.ko +drivers/input/evbug.ko +drivers/input/gameport/gameport.ko +drivers/input/mouse/psmouse.ko +drivers/input/serio/serio_raw.ko +drivers/input/serio/serport.ko +drivers/input/joydev.ko +drivers/input/misc/uinput.ko +drivers/input/touchscreen/usbtouchscreen.ko +drivers/input/xen-kbdfront.ko +drivers/md/* +drivers/message/fusion* +drivers/net/8390.ko +drivers/net/8139too.ko +drivers/net/8139cp.ko +drivers/net/appletalk/ipddp.ko +drivers/net/bonding/bonding.ko +drivers/net/bsd_comp.ko +drivers/net/dummy.ko +drivers/net/e1000/e1000.ko +drivers/net/e1000e/e1000e.ko +drivers/net/eql.ko +drivers/net/ifb.ko +drivers/net/mii.ko +drivers/net/ne2k-pci.ko +drivers/net/netconsole.ko +drivers/net/pcnet32.ko +drivers/net/ppp_async.ko +drivers/net/ppp_deflate.ko +drivers/net/ppp_mppe.ko +drivers/net/pppoe.ko +drivers/net/pppol2tp.ko +drivers/net/pppox.ko +drivers/net/ppp_synctty.ko +drivers/net/slip.ko +drivers/net/veth.ko +drivers/net/vmxnet3/vmxnet3.ko +drivers/net/xen-netfront.ko +drivers/parport/parport.ko +drivers/parport/parport_pc.ko +drivers/pci/hotplug/acpiphp.ko +drivers/net/tulip/tulip.ko +drivers/scsi/BusLogic.ko +drivers/scsi/iscsi_tcp.ko +drivers/scsi/libiscsi.ko +drivers/scsi/libiscsi_tcp.ko +drivers/scsi/libsas/* +drivers/scsi/libsas/libsas.ko +drivers/scsi/qla1280.ko +drivers/scsi/raid_class.ko +drivers/scsi/scsi_transport_fc.ko +drivers/scsi/scsi_transport_iscsi.ko +drivers/scsi/scsi_transport_sas.ko +drivers/scsi/scsi_wait_scan.ko +drivers/scsi/scsi_tgt.ko +drivers/scsi/vmw_pvscsi.ko +drivers/usb/storage/usb-storage.ko +drivers/video/cirrusfb.ko +drivers/video/output.ko +drivers/video/syscopyarea.ko +drivers/video/sysfillrect.ko +drivers/video/sysimgblt.ko +drivers/video/vesafb.ko +drivers/video/vga16fb.ko +drivers/video/vgastate.ko +drivers/video/xen-fbfront.ko +drivers/video/fb_sys_fops.ko +drivers/virtio/virtio_balloon.ko +drivers/watchdog/softdog.ko +drivers/xen/* +fs/binfmt_misc.ko +fs/btrfs/* +fs/configfs/* +fs/exportfs/* +fs/fat/* +fs/isofs/* +fs/cifs/* +fs/xfs/* +fs/ufs/* +fs/smbfs/* +fs/squashfs/* +lib/* +net/802/* +net/8021q/* +net/appletalk/* +net/atm/* +net/ax25/* +net/bridge/* +net/can/* +net/core/* +net/dccp/* +net/decnet/* +net/econet/* +net/ieee802154/* +net/ipv4/* +net/ipv6/* +net/ipx/* +net/irda/* +net/key/* +net/lapb/* +net/llc/* +net/mac80211/* +net/netfilter/* +net/netrom/* +net/phonet/* +net/rose/* +net/rxrpc/* +net/sched/* +net/sctp/* +net/tipc/* +net/wanrouter/* +net/wireless/* +net/x25/* +net/xfrm/* +sound/soundcore.ko +sound/core/* +sound/pci/snd-ens1370.ko +sound/drivers/pcsp/snd-pcsp.ko +ubuntu/iscsitarget/iscsi_trgt.ko --- linux-2.6.35.orig/debian.master/control.d/vars.server +++ linux-2.6.35/debian.master/control.d/vars.server @@ -0,0 +1,6 @@ +arch="amd64" +supported="Server" +target="Geared toward 64 bit server systems." +desc="x86_64" +bootloader="grub-pc | grub | lilo (>= 19.1)" +provides="redhat-cluster-modules, kvm-api-4, ivtv-modules, ndiswrapper-modules-1.9" --- linux-2.6.35.orig/debian.master/control.d/vars.omap +++ linux-2.6.35/debian.master/control.d/vars.omap @@ -0,0 +1,8 @@ +arch="armel" +supported="TI OMAP3" +desc="TI OMAP3-based systems" +target="Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc." +bootloader="flash-kernel" +provides="" +section_image="universe/base" +do_debug="Yes" --- linux-2.6.35.orig/debian.master/control.d/vars.generic +++ linux-2.6.35/debian.master/control.d/vars.generic @@ -0,0 +1,6 @@ +arch="i386 amd64" +supported="Generic" +target="Geared toward desktop systems." +desc="x86/x86_64" +bootloader="grub-pc | grub | lilo (>= 19.1)" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9" --- linux-2.6.35.orig/debian.master/control.d/vars.powerpc-smp +++ linux-2.6.35/debian.master/control.d/vars.powerpc-smp @@ -0,0 +1,6 @@ +supported="32-bit PowerPC SMP" +target="Geared toward desktop or server systems." +desc="32-bit PowerPC SMP" +bootloader="yaboot" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" --- linux-2.6.35.orig/debian.master/control.d/vars.versatile +++ linux-2.6.35/debian.master/control.d/vars.versatile @@ -0,0 +1,8 @@ +arch="armel" +supported="Versatile" +desc="Versatile-based systems" +target="PB, AB, Qemu, etc." +bootloader="" +provides="" +section_image="universe/base" +do_debug="Yes" --- linux-2.6.35.orig/debian.master/control.d/vars.powerpc64-smp +++ linux-2.6.35/debian.master/control.d/vars.powerpc64-smp @@ -0,0 +1,6 @@ +supported="64-bit PowerPC SMP" +target="Geared toward desktop or server systems." +desc="64-bit PowerPC SMP" +bootloader="yaboot" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" --- linux-2.6.35.orig/debian.master/rules.d/amd64.mk +++ linux-2.6.35/debian.master/rules.d/amd64.mk @@ -0,0 +1,9 @@ +build_arch = x86_64 +header_arch = $(build_arch) +asm_link = x86 +defconfig = defconfig +flavours = generic server virtual +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz +loader = grub --- linux-2.6.35.orig/debian.master/rules.d/armel.mk +++ linux-2.6.35/debian.master/rules.d/armel.mk @@ -0,0 +1,11 @@ +build_arch = arm +header_arch = arm +asm_link = arm +defconfig = defconfig +flavours = versatile omap +build_image = zImage +kernel_file = arch/$(build_arch)/boot/zImage +install_file = vmlinuz +no_dumpfile = true + +loader = grub --- linux-2.6.35.orig/debian.master/rules.d/powerpc.mk +++ linux-2.6.35/debian.master/rules.d/powerpc.mk @@ -0,0 +1,19 @@ +build_arch = powerpc +header_arch = $(build_arch) +asm_link = $(build_arch) +defconfig = pmac32_defconfig +flavours = powerpc powerpc-smp powerpc64-smp +build_image = vmlinux +kernel_file = $(build_image) +install_file = $(build_image) + +loader = yaboot + +custom_flavours = + +no_dumpfile = true +skipdbg = true +skipabi = true +skipmodule = true + +family=ports --- linux-2.6.35.orig/debian.master/rules.d/i386.mk +++ linux-2.6.35/debian.master/rules.d/i386.mk @@ -0,0 +1,9 @@ +build_arch = i386 +header_arch = x86_64 +asm_link = x86 +defconfig = defconfig +flavours = generic generic-pae virtual +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz +loader = grub --- linux-2.6.35.orig/tools/perf/builtin-probe.c +++ linux-2.6.35/tools/perf/builtin-probe.c @@ -182,6 +182,8 @@ "Show source code lines.", opt_show_lines), OPT_STRING('k', "vmlinux", &symbol_conf.vmlinux_name, "file", "vmlinux pathname"), + OPT_STRING('s', "source", &symbol_conf.source_prefix, + "directory", "path to kernel source"), #endif OPT__DRY_RUN(&probe_event_dry_run), OPT_INTEGER('\0', "max-probes", ¶ms.max_probe_points, --- linux-2.6.35.orig/tools/perf/util/probe-event.c +++ linux-2.6.35/tools/perf/util/probe-event.c @@ -557,7 +557,7 @@ /* Parse perf-probe event argument */ static int parse_perf_probe_arg(char *str, struct perf_probe_arg *arg) { - char *tmp; + char *tmp, *goodname; struct perf_probe_arg_field **fieldp; pr_debug("parsing arg: %s into ", str); @@ -580,7 +580,7 @@ pr_debug("type:%s ", arg->type); } - tmp = strpbrk(str, "-."); + tmp = strpbrk(str, "-.["); if (!is_c_varname(str) || !tmp) { /* A variable, register, symbol or special value */ arg->var = strdup(str); @@ -590,10 +590,11 @@ return 0; } - /* Structure fields */ + /* Structure fields or array element */ arg->var = strndup(str, tmp - str); if (arg->var == NULL) return -ENOMEM; + goodname = arg->var; pr_debug("%s, ", arg->var); fieldp = &arg->field; @@ -601,22 +602,38 @@ *fieldp = zalloc(sizeof(struct perf_probe_arg_field)); if (*fieldp == NULL) return -ENOMEM; - if (*tmp == '.') { - str = tmp + 1; - (*fieldp)->ref = false; - } else if (tmp[1] == '>') { - str = tmp + 2; + if (*tmp == '[') { /* Array */ + str = tmp; + (*fieldp)->index = strtol(str + 1, &tmp, 0); (*fieldp)->ref = true; - } else { - semantic_error("Argument parse error: %s\n", str); - return -EINVAL; + if (*tmp != ']' || tmp == str + 1) { + semantic_error("Array index must be a" + " number.\n"); + return -EINVAL; + } + tmp++; + if (*tmp == '\0') + tmp = NULL; + } else { /* Structure */ + if (*tmp == '.') { + str = tmp + 1; + (*fieldp)->ref = false; + } else if (tmp[1] == '>') { + str = tmp + 2; + (*fieldp)->ref = true; + } else { + semantic_error("Argument parse error: %s\n", + str); + return -EINVAL; + } + tmp = strpbrk(str, "-.["); } - - tmp = strpbrk(str, "-."); if (tmp) { (*fieldp)->name = strndup(str, tmp - str); if ((*fieldp)->name == NULL) return -ENOMEM; + if (*str != '[') + goodname = (*fieldp)->name; pr_debug("%s(%d), ", (*fieldp)->name, (*fieldp)->ref); fieldp = &(*fieldp)->next; } @@ -624,11 +641,13 @@ (*fieldp)->name = strdup(str); if ((*fieldp)->name == NULL) return -ENOMEM; + if (*str != '[') + goodname = (*fieldp)->name; pr_debug("%s(%d)\n", (*fieldp)->name, (*fieldp)->ref); - /* If no name is specified, set the last field name */ + /* If no name is specified, set the last field name (not array index)*/ if (!arg->name) { - arg->name = strdup((*fieldp)->name); + arg->name = strdup(goodname); if (arg->name == NULL) return -ENOMEM; } @@ -776,8 +795,11 @@ len -= ret; while (field) { - ret = e_snprintf(tmp, len, "%s%s", field->ref ? "->" : ".", - field->name); + if (field->name[0] == '[') + ret = e_snprintf(tmp, len, "%s", field->name); + else + ret = e_snprintf(tmp, len, "%s%s", + field->ref ? "->" : ".", field->name); if (ret <= 0) goto error; tmp += ret; @@ -904,6 +926,7 @@ static int synthesize_kprobe_trace_arg(struct kprobe_trace_arg *arg, char *buf, size_t buflen) { + struct kprobe_trace_arg_ref *ref = arg->ref; int ret, depth = 0; char *tmp = buf; @@ -917,16 +940,24 @@ buf += ret; buflen -= ret; + /* Special case: @XXX */ + if (arg->value[0] == '@' && arg->ref) + ref = ref->next; + /* Dereferencing arguments */ - if (arg->ref) { - depth = __synthesize_kprobe_trace_arg_ref(arg->ref, &buf, + if (ref) { + depth = __synthesize_kprobe_trace_arg_ref(ref, &buf, &buflen, 1); if (depth < 0) return depth; } /* Print argument value */ - ret = e_snprintf(buf, buflen, "%s", arg->value); + if (arg->value[0] == '@' && arg->ref) + ret = e_snprintf(buf, buflen, "%s%+ld", arg->value, + arg->ref->offset); + else + ret = e_snprintf(buf, buflen, "%s", arg->value); if (ret < 0) return ret; buf += ret; --- linux-2.6.35.orig/tools/perf/util/probe-finder.c +++ linux-2.6.35/tools/perf/util/probe-finder.c @@ -37,6 +37,7 @@ #include "event.h" #include "debug.h" #include "util.h" +#include "symbol.h" #include "probe-finder.h" /* Kprobe tracer basic type is up to u64 */ @@ -57,6 +58,55 @@ return 0; } +/* + * Find a src file from a DWARF tag path. Prepend optional source path prefix + * and chop off leading directories that do not exist. Result is passed back as + * a newly allocated path on success. + * Return 0 if file was found and readable, -errno otherwise. + */ +static int get_real_path(const char *raw_path, char **new_path) +{ + if (!symbol_conf.source_prefix) { + if (access(raw_path, R_OK) == 0) { + *new_path = strdup(raw_path); + return 0; + } else + return -errno; + } + + *new_path = malloc((strlen(symbol_conf.source_prefix) + + strlen(raw_path) + 2)); + if (!*new_path) + return -ENOMEM; + + for (;;) { + sprintf(*new_path, "%s/%s", symbol_conf.source_prefix, + raw_path); + + if (access(*new_path, R_OK) == 0) + return 0; + + switch (errno) { + case ENAMETOOLONG: + case ENOENT: + case EROFS: + case EFAULT: + raw_path = strchr(++raw_path, '/'); + if (!raw_path) { + free(*new_path); + *new_path = NULL; + return -ENOENT; + } + continue; + + default: + free(*new_path); + *new_path = NULL; + return -errno; + } + } +} + /* Line number list operations */ /* Add a line to line number list */ @@ -356,14 +406,50 @@ * Probe finder related functions */ +static struct kprobe_trace_arg_ref *alloc_trace_arg_ref(long offs) +{ + struct kprobe_trace_arg_ref *ref; + ref = zalloc(sizeof(struct kprobe_trace_arg_ref)); + if (ref != NULL) + ref->offset = offs; + return ref; +} + /* Show a location */ -static int convert_location(Dwarf_Op *op, struct probe_finder *pf) +static int convert_variable_location(Dwarf_Die *vr_die, struct probe_finder *pf) { + Dwarf_Attribute attr; + Dwarf_Op *op; + size_t nops; unsigned int regn; Dwarf_Word offs = 0; bool ref = false; const char *regs; struct kprobe_trace_arg *tvar = pf->tvar; + int ret; + + /* TODO: handle more than 1 exprs */ + if (dwarf_attr(vr_die, DW_AT_location, &attr) == NULL || + dwarf_getlocation_addr(&attr, pf->addr, &op, &nops, 1) <= 0 || + nops == 0) { + /* TODO: Support const_value */ + pr_err("Failed to find the location of %s at this address.\n" + " Perhaps, it has been optimized out.\n", pf->pvar->var); + return -ENOENT; + } + + if (op->atom == DW_OP_addr) { + /* Static variables on memory (not stack), make @varname */ + ret = strlen(dwarf_diename(vr_die)); + tvar->value = zalloc(ret + 2); + if (tvar->value == NULL) + return -ENOMEM; + snprintf(tvar->value, ret + 2, "@%s", dwarf_diename(vr_die)); + tvar->ref = alloc_trace_arg_ref((long)offs); + if (tvar->ref == NULL) + return -ENOMEM; + return 0; + } /* If this is based on frame buffer, set the offset */ if (op->atom == DW_OP_fbreg) { @@ -405,10 +491,9 @@ return -ENOMEM; if (ref) { - tvar->ref = zalloc(sizeof(struct kprobe_trace_arg_ref)); + tvar->ref = alloc_trace_arg_ref((long)offs); if (tvar->ref == NULL) return -ENOMEM; - tvar->ref->offset = (long)offs; } return 0; } @@ -426,6 +511,9 @@ return -ENOENT; } + pr_debug("%s type is %s.\n", + dwarf_diename(vr_die), dwarf_diename(&type)); + ret = die_get_byte_size(&type) * 8; if (ret) { /* Check the bitwidth */ @@ -460,16 +548,44 @@ struct kprobe_trace_arg_ref *ref = *ref_ptr; Dwarf_Die type; Dwarf_Word offs; - int ret; + int ret, tag; pr_debug("converting %s in %s\n", field->name, varname); if (die_get_real_type(vr_die, &type) == NULL) { pr_warning("Failed to get the type of %s.\n", varname); return -ENOENT; } + pr_debug2("Var real type: (%x)\n", (unsigned)dwarf_dieoffset(&type)); + tag = dwarf_tag(&type); - /* Check the pointer and dereference */ - if (dwarf_tag(&type) == DW_TAG_pointer_type) { + if (field->name[0] == '[' && + (tag == DW_TAG_array_type || tag == DW_TAG_pointer_type)) { + if (field->next) + /* Save original type for next field */ + memcpy(die_mem, &type, sizeof(*die_mem)); + /* Get the type of this array */ + if (die_get_real_type(&type, &type) == NULL) { + pr_warning("Failed to get the type of %s.\n", varname); + return -ENOENT; + } + pr_debug2("Array real type: (%x)\n", + (unsigned)dwarf_dieoffset(&type)); + if (tag == DW_TAG_pointer_type) { + ref = zalloc(sizeof(struct kprobe_trace_arg_ref)); + if (ref == NULL) + return -ENOMEM; + if (*ref_ptr) + (*ref_ptr)->next = ref; + else + *ref_ptr = ref; + } + ref->offset += die_get_byte_size(&type) * field->index; + if (!field->next) + /* Save vr_die for converting types */ + memcpy(die_mem, vr_die, sizeof(*die_mem)); + goto next; + } else if (tag == DW_TAG_pointer_type) { + /* Check the pointer and dereference */ if (!field->ref) { pr_err("Semantic error: %s must be referred by '->'\n", field->name); @@ -495,10 +611,15 @@ *ref_ptr = ref; } else { /* Verify it is a data structure */ - if (dwarf_tag(&type) != DW_TAG_structure_type) { + if (tag != DW_TAG_structure_type) { pr_warning("%s is not a data structure.\n", varname); return -EINVAL; } + if (field->name[0] == '[') { + pr_err("Semantic error: %s is not a pointor nor array.", + varname); + return -EINVAL; + } if (field->ref) { pr_err("Semantic error: %s must be referred by '.'\n", field->name); @@ -525,6 +646,7 @@ } ref->offset += (long)offs; +next: /* Converting next field */ if (field->next) return convert_variable_fields(die_mem, field->name, @@ -536,20 +658,13 @@ /* Show a variables in kprobe event format */ static int convert_variable(Dwarf_Die *vr_die, struct probe_finder *pf) { - Dwarf_Attribute attr; Dwarf_Die die_mem; - Dwarf_Op *expr; - size_t nexpr; int ret; - if (dwarf_attr(vr_die, DW_AT_location, &attr) == NULL) - goto error; - /* TODO: handle more than 1 exprs */ - ret = dwarf_getlocation_addr(&attr, pf->addr, &expr, &nexpr, 1); - if (ret <= 0 || nexpr == 0) - goto error; + pr_debug("Converting variable %s into trace event.\n", + dwarf_diename(vr_die)); - ret = convert_location(expr, pf); + ret = convert_variable_location(vr_die, pf); if (ret == 0 && pf->pvar->field) { ret = convert_variable_fields(vr_die, pf->pvar->var, pf->pvar->field, &pf->tvar->ref, @@ -566,21 +681,15 @@ } /* *expr will be cached in libdw. Don't free it. */ return ret; -error: - /* TODO: Support const_value */ - pr_err("Failed to find the location of %s at this address.\n" - " Perhaps, it has been optimized out.\n", pf->pvar->var); - return -ENOENT; } /* Find a variable in a subprogram die */ static int find_variable(Dwarf_Die *sp_die, struct probe_finder *pf) { - Dwarf_Die vr_die; + Dwarf_Die vr_die, *scopes; char buf[32], *ptr; - int ret; + int ret, nscopes; - /* TODO: Support arrays */ if (pf->pvar->name) pf->tvar->name = strdup(pf->pvar->name); else { @@ -607,12 +716,26 @@ pr_debug("Searching '%s' variable in context.\n", pf->pvar->var); /* Search child die for local variables and parameters. */ - if (!die_find_variable(sp_die, pf->pvar->var, &vr_die)) { + if (die_find_variable(sp_die, pf->pvar->var, &vr_die)) + ret = convert_variable(&vr_die, pf); + else { + /* Search upper class */ + nscopes = dwarf_getscopes_die(sp_die, &scopes); + if (nscopes > 0) { + ret = dwarf_getscopevar(scopes, nscopes, pf->pvar->var, + 0, NULL, 0, 0, &vr_die); + if (ret >= 0) + ret = convert_variable(&vr_die, pf); + else + ret = -ENOENT; + free(scopes); + } else + ret = -ENOENT; + } + if (ret < 0) pr_warning("Failed to find '%s' in this function.\n", pf->pvar->var); - return -ENOENT; - } - return convert_variable(&vr_die, pf); + return ret; } /* Show a probe point to output buffer */ @@ -1096,11 +1219,13 @@ static int line_range_add_line(const char *src, unsigned int lineno, struct line_range *lr) { + int ret; + /* Copy real path */ if (!lr->path) { - lr->path = strdup(src); - if (lr->path == NULL) - return -ENOMEM; + ret = get_real_path(src, &lr->path); + if (ret != 0) + return ret; } return line_list__add_line(&lr->line_list, lineno); } --- linux-2.6.35.orig/tools/perf/util/callchain.h +++ linux-2.6.35/tools/perf/util/callchain.h @@ -50,6 +50,7 @@ INIT_LIST_HEAD(&node->children); INIT_LIST_HEAD(&node->val); + node->children_hit = 0; node->parent = NULL; node->hit = 0; } --- linux-2.6.35.orig/tools/perf/util/probe-event.h +++ linux-2.6.35/tools/perf/util/probe-event.h @@ -50,6 +50,7 @@ struct perf_probe_arg_field { struct perf_probe_arg_field *next; /* Next field */ char *name; /* Name of the field */ + long index; /* Array index number */ bool ref; /* Referencing flag */ }; --- linux-2.6.35.orig/tools/perf/util/symbol.h +++ linux-2.6.35/tools/perf/util/symbol.h @@ -73,6 +73,7 @@ full_paths, show_cpu_utilization; const char *vmlinux_name, + *source_prefix, *field_sep; const char *default_guest_vmlinux_name, *default_guest_kallsyms, --- linux-2.6.35.orig/tools/perf/Documentation/perf-probe.txt +++ linux-2.6.35/tools/perf/Documentation/perf-probe.txt @@ -31,6 +31,10 @@ --vmlinux=PATH:: Specify vmlinux path which has debuginfo (Dwarf binary). +-s:: +--source=PATH:: + Specify path to kernel source. + -v:: --verbose:: Be more verbose (show parsed arguments, etc). @@ -90,7 +94,7 @@ [NAME=]LOCALVAR|$retval|%REG|@SYMBOL[:TYPE] -'NAME' specifies the name of this argument (optional). You can use the name of local variable, local data structure member (e.g. var->field, var.field2), or kprobe-tracer argument format (e.g. $retval, %ax, etc). Note that the name of this argument will be set as the last member name if you specify a local data structure member (e.g. field2 for 'var->field1.field2'.) +'NAME' specifies the name of this argument (optional). You can use the name of local variable, local data structure member (e.g. var->field, var.field2), local array with fixed index (e.g. array[1], var->array[0], var->pointer[2]), or kprobe-tracer argument format (e.g. $retval, %ax, etc). Note that the name of this argument will be set as the last member name if you specify a local data structure member (e.g. field2 for 'var->field1.field2'.) 'TYPE' casts the type of this argument (optional). If omitted, perf probe automatically set the type based on debuginfo. LINE SYNTAX --- linux-2.6.35.orig/ubuntu/aufs-update +++ linux-2.6.35/ubuntu/aufs-update @@ -0,0 +1,37 @@ +#!/bin/bash + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi +aufs="$1" + +# Get the current tip name +{ + read x url + read x osha1 +} + + Based on: + pbe5.c by Pedro Ramalhais + + Many thanks to: + Pedro Ramalhais for spending several nights with me on IRC + +*******************************************************************************/ + +#ifdef CONFIG_X86 +#include +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) +#include +#else +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRV_NAME "fsam7400" +#define DRV_VERSION "0.5.2" +#define DRV_DESCRIPTION "SW RF kill switch for Fujitsu Siemens Amilo M 7400 / Maxdata 7000DX" +#define DRV_COPYRIGHT "Copyright(c) 2004 zwobbl" +#define DRV_AUTHOR "Marcel Naziri" +#define DRV_LICENSE "GPL" + +MODULE_DESCRIPTION(DRV_DESCRIPTION); +MODULE_AUTHOR(DRV_AUTHOR); +MODULE_LICENSE(DRV_LICENSE); + +#define RADIO_NONE 0xFFFFFFFF +#define RADIO_OFF 0x00000000 +#define RADIO_ON 0x00000010 + +static int radio = RADIO_NONE; +static int autooff = 1; +static int autoload = 0; +static int uid = 0; +static int gid = 0; +static int debug = 0; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) +module_param(radio, int, 0444); +module_param(autooff, int, 0444); +module_param(autoload, int, 0444); +module_param(uid, int, 0444); +module_param(gid, int, 0444); +module_param(debug, int, 0444); +#else +MODULE_PARM(radio, "i"); +MODULE_PARM(autooff, "i"); +MODULE_PARM(autoload, "i"); +MODULE_PARM(uid, "i"); +MODULE_PARM(gid, "i"); +MODULE_PARM(debug, "i"); +#endif + +MODULE_PARM_DESC(radio, "desired radio state when loading module"); +MODULE_PARM_DESC(autooff, "turns radio off when unloading module (default)"); +MODULE_PARM_DESC(autoload, "load/unloads ipw2100 driver when toggling radio"); +MODULE_PARM_DESC(uid, "user ID for proc entry"); +MODULE_PARM_DESC(gid, "group ID for proc entry"); +MODULE_PARM_DESC(debug, "enables debug output on syslog"); + +/* some more or less useful macros */ + +#define DEBUG if (debug) +#define DEBUG_OUT0(a) DEBUG printk(KERN_INFO DRV_NAME ": " a) +#define DEBUG_OUT1(a,b) DEBUG printk(KERN_INFO DRV_NAME ": " a,b) +#define DEBUG_OUT2(a,b,c) DEBUG printk(KERN_INFO DRV_NAME ": " a,b,c) +#define DEBUG_OUT3(a,b,c,d) DEBUG printk(KERN_INFO DRV_NAME ": " a,b,c,d) + +#define ONOFF(x) (x) ? "ON" : "OFF" +#define RADIO_ONOFF(x) (x) == RADIO_ON ? "ON" : "OFF" +#define TOUL(x) (unsigned long) (x) + +/* + * NOTE: These values were obtained from disassembling the wbutton.sys driver + * installed in the Fujitsu Siemens Amilo M 7400 laptop. The names were guessed, + * so don't rely on them. + */ + +/*** hardware dependant stuff ***/ + +#define BIOS_CODE_ADDR 0x000F0000 +#define BIOS_CODE_ALT_MASK 0xFFFFC000 + +#define BIOS_CODE_MAPSIZE 0x010000 +#define BIOS_CODE_ALT_MAPSIZE 0x004000 + +#define BIOS_MAGIC_COMMAND 0x9610 +#define BIOS_MAGIC_OFF 0x0035 +#define BIOS_MAGIC_ON 0x0135 +#define BIOS_MAGIC_CHECK 0x0235 + +#define PTR_POSITION 5 +#define ALLIGNED_STEP 0x10 + +#define BIOS_SIGN_SIZE 4 +static const char bios_sign[] = { + 0x42, 0x21, 0x55, 0x30 +}; + +#define WLAN_DISABLED_IN_BIOS 0x01 +#define WLAN_ENABLED_IN_BIOS 0x03 + +static unsigned long bios_code = 0; + +static int fsam_bios_routine(int eax, int ebx) +{ + __asm__ __volatile__( + "call *%3 \t\n" + : "=a"(eax) + : "a"(eax), "b"(ebx), "c"(bios_code) + ); + return (eax & 0xFF); +} + +static int fsam_call_bios(int value) +{ + if (bios_code) { + int command = BIOS_MAGIC_COMMAND; + DEBUG_OUT2("bios routine gets parameter eax=%X and ebx=%X\n", + command, value); + value = fsam_bios_routine(command, value); + DEBUG_OUT1("bios routine results %X\n", value); + return value; + } + return ~0; +} + +/* pointer to mapped memory*/ +static void *mem_code = NULL; + +static inline void fsam_unmap_memory(void) +{ + bios_code = 0; + if (mem_code) { + iounmap(mem_code); + } +} + +static inline int fsam_map_memory(void) +{ + const unsigned long max_offset = BIOS_CODE_MAPSIZE - BIOS_SIGN_SIZE - PTR_POSITION; + unsigned long offset; + unsigned int addr; + mem_code = ioremap(BIOS_CODE_ADDR, BIOS_CODE_MAPSIZE); + if (!mem_code) + goto fail; + DEBUG_OUT3("physical memory %x-%x mapped to virtual address %p\n", + BIOS_CODE_ADDR, BIOS_CODE_ADDR+BIOS_CODE_MAPSIZE, mem_code); + for ( offset = 0; offset < max_offset; offset += ALLIGNED_STEP ) + if (check_signature((void*)TOUL(mem_code) + offset, bios_sign, BIOS_SIGN_SIZE)) + break; + if (offset >= max_offset) + goto fail; + DEBUG_OUT1("bios signature found at offset %lx\n", offset); + addr = readl((void*)TOUL(mem_code) + offset + PTR_POSITION); + if (addr < BIOS_CODE_ADDR) { + DEBUG_OUT0("bios routine out of memory range, " + "doing some new memory mapping...\n"); + iounmap(mem_code); + mem_code = NULL; + addr &= BIOS_CODE_ALT_MASK; + mem_code = ioremap(addr, BIOS_CODE_ALT_MAPSIZE); + if (!mem_code) + goto fail; + DEBUG_OUT3("physical memory %x-%x mapped to virtual address %p\n", + addr, addr+BIOS_CODE_ALT_MAPSIZE, mem_code); + addr &= 0x3FFF; + } else + addr &= 0xFFFF; + + bios_code = addr + TOUL(mem_code); + DEBUG_OUT1("supposed address of bios routine is %lx\n", bios_code); + return 1; + fail: + fsam_unmap_memory(); + return 0; +} + +/*** ipw2100 loading ***/ + +static inline void do_ipw2100_loading(int state) +{ + int status; + char *mode; + char *envp[] = { "HOME=/", + "TERM=linux", + "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL }; + if (state == RADIO_ON) { + char *argv[] = { "/sbin/modprobe", "-s", "-k", "ipw2100", NULL }; + mode = "loading"; + status = call_usermodehelper(argv[0], argv, envp, 1); + } else { + char *argv[] = { "/sbin/rmmod", "ipw2100", NULL }; + mode = "removing"; + status = call_usermodehelper(argv[0], argv, envp, 1); + } + DEBUG_OUT2("%s of ipw2100 module %s\n", mode, status == 0 ? "successful" : "FAILED"); +} + +/*** interface stuff ***/ + +static void rfkill_set_radio(int value) +{ + radio = value == RADIO_ON ? fsam_call_bios(BIOS_MAGIC_ON) : + fsam_call_bios(BIOS_MAGIC_OFF); + if (autoload) do_ipw2100_loading(radio); +} + +static inline int rfkill_get_radio(void) +{ + return radio; +} + +static inline int rfkill_supported(void) +{ + return bios_code != 0; +} + +static inline void rfkill_initialize(void) { + fsam_map_memory(); + if (rfkill_supported()) { + radio = radio != RADIO_NONE + ? ( radio ? RADIO_ON : RADIO_OFF ) /*module parameter*/ + : ( fsam_call_bios(BIOS_MAGIC_CHECK) == WLAN_ENABLED_IN_BIOS + ? RADIO_ON : RADIO_OFF ); + } +} + +static inline void rfkill_uninitialize(void) { + fsam_unmap_memory(); +} + +/*** proc stuff ***/ + +static inline int common_proc_set_radio(struct file *file, const char *buffer, + unsigned long count, void *data) +{ + unsigned long len = 7; + char newstate[len]; + len = count < len ? count : len; + if ( copy_from_user(newstate, buffer, len) != 0 ) + return -EFAULT; + if ( (*newstate == '1' || *newstate == '0') && + (count == 1 || isspace(newstate[1])) ) + rfkill_set_radio(*newstate == '1' ? RADIO_ON : RADIO_OFF); + else + if ( !strncmp(newstate, "on", 2) && + (count == 2 || isspace(newstate[2])) ) + rfkill_set_radio(RADIO_ON); + else + if ( !strncmp(newstate, "off", 3) && + (count == 3 || isspace(newstate[3])) ) + rfkill_set_radio(RADIO_OFF); + else + if ( !strncmp(newstate, "resume", 6) && + (count == 6 || isspace(newstate[6])) ) + rfkill_set_radio(radio); + return count; +} + +static inline int common_proc_get_radio(char *page, char **start, off_t offset, + int count, int *eof, void *data) +{ + int len = snprintf(page, count, DRV_DESCRIPTION ", v" DRV_VERSION "\n" + " auto-off is %s, auto-load is %s\n", + ONOFF(autooff), ONOFF(autoload)); + len += snprintf(page+len, count-len, " radio state is %s\n", + RADIO_ONOFF(rfkill_get_radio())); + *eof = 1; + return len; +} + +#define PROC_DIR "driver/wireless" +#define PROC_RADIO "radio" + +static struct proc_dir_entry *dir_base = NULL; + +static inline void common_proc_cleanup(void) +{ + if (dir_base) { + remove_proc_entry(PROC_RADIO, dir_base); + remove_proc_entry(PROC_DIR, NULL); + dir_base = NULL; + } +} + +static inline int common_proc_init(void) +{ + struct proc_dir_entry *ent; + int err = 0; + dir_base = proc_mkdir(PROC_DIR, NULL); + if (dir_base == NULL) { + printk(KERN_ERR DRV_NAME ": Unable to initialize /proc/" PROC_DIR "\n"); + err = -ENOMEM; + goto fail; + } + ent = create_proc_entry(PROC_RADIO, + S_IFREG | S_IRUGO | S_IWUSR | S_IWGRP, + dir_base); + if (ent) { + ent->uid = uid; + ent->gid = gid; + ent->read_proc = common_proc_get_radio; + ent->write_proc = common_proc_set_radio; + } else { + printk(KERN_ERR DRV_NAME ": Unable to initialize /proc/" + PROC_DIR "/" PROC_RADIO "\n"); + err = -ENOMEM; + goto fail; + } + return 0; + fail: + common_proc_cleanup(); + return err; +} + +/*** module stuff ***/ + +static int __init common_init(void) +{ + printk(KERN_INFO DRV_NAME ": " DRV_DESCRIPTION ", v" DRV_VERSION "\n"); + printk(KERN_INFO DRV_NAME ": " DRV_COPYRIGHT "\n"); + rfkill_initialize(); + if (rfkill_supported()) { + common_proc_init(); + if (radio != RADIO_NONE) + rfkill_set_radio(radio); + } else + printk(KERN_INFO DRV_NAME ": no supported wireless hardware found\n"); + return 0; +} + +static void __exit common_exit(void) +{ + if (rfkill_supported() && autooff) + rfkill_set_radio(RADIO_OFF); + common_proc_cleanup(); + rfkill_uninitialize(); + printk(KERN_INFO DRV_NAME ": module removed successfully\n"); +} + +module_init(common_init); +module_exit(common_exit); + +#else +#error This driver is only available for X86 architecture +#endif + +/* + 1 2 3 4 5 6 7 +12345678901234567890123456789012345678901234567890123456789012345678901234567890 +*/ --- linux-2.6.35.orig/ubuntu/fsam7400/LICENSE +++ linux-2.6.35/ubuntu/fsam7400/LICENSE @@ -0,0 +1,338 @@ +"This software program is licensed subject to the GNU General Public License +(GPL). Version 2, June 1991, available at +" + +GNU General Public License + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to +share and change it. By contrast, the GNU General Public License is intended +to guarantee your freedom to share and change free software--to make sure +the software is free for all its users. This General Public License applies +to most of the Free Software Foundation's software and to any other program +whose authors commit to using it. (Some other Free Software Foundation +software is covered by the GNU Library General Public License instead.) You +can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom +to distribute copies of free software (and charge for this service if you +wish), that you receive source code or can get it if you want it, that you +can change the software or use pieces of it in new free programs; and that +you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to +deny you these rights or to ask you to surrender the rights. These +restrictions translate to certain responsibilities for you if you distribute +copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or +for a fee, you must give the recipients all the rights that you have. You +must make sure that they, too, receive or can get the source code. And you +must show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If +the software is modified by someone else and passed on, we want its +recipients to know that what they have is not the original, so that any +problems introduced by others will not reflect on the original authors' +reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program +proprietary. To prevent this, we have made it clear that any patent must be +licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice + placed by the copyright holder saying it may be distributed under the + terms of this General Public License. The "Program", below, refers to any + such program or work, and a "work based on the Program" means either the + Program or any derivative work under copyright law: that is to say, a + work containing the Program or a portion of it, either verbatim or with + modifications and/or translated into another language. (Hereinafter, + translation is included without limitation in the term "modification".) + Each licensee is addressed as "you". + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of running + the Program is not restricted, and the output from the Program is covered + only if its contents constitute a work based on the Program (independent + of having been made by running the Program). Whether that is true depends + on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code + as you receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice and + disclaimer of warranty; keep intact all the notices that refer to this + License and to the absence of any warranty; and give any other recipients + of the Program a copy of this License along with the Program. + + You may charge a fee for the physical act of transferring a copy, and you + may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, + thus forming a work based on the Program, and copy and distribute such + modifications or work under the terms of Section 1 above, provided that + you also meet all of these conditions: + + * a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + * b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any part + thereof, to be licensed as a whole at no charge to all third parties + under the terms of this License. + + * c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive + use in the most ordinary way, to print or display an announcement + including an appropriate copyright notice and a notice that there is + no warranty (or else, saying that you provide a warranty) and that + users may redistribute the program under these conditions, and + telling the user how to view a copy of this License. (Exception: if + the Program itself is interactive but does not normally print such + an announcement, your work based on the Program is not required to + print an announcement.) + + These requirements apply to the modified work as a whole. If identifiable + sections of that work are not derived from the Program, and can be + reasonably considered independent and separate works in themselves, then + this License, and its terms, do not apply to those sections when you + distribute them as separate works. But when you distribute the same + sections as part of a whole which is a work based on the Program, the + distribution of the whole must be on the terms of this License, whose + permissions for other licensees extend to the entire whole, and thus to + each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of a + storage or distribution medium does not bring the other work under the + scope of this License. + +3. You may copy and distribute the Program (or a work based on it, under + Section 2) in object code or executable form under the terms of Sections + 1 and 2 above provided that you also do one of the following: + + * a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 + above on a medium customarily used for software interchange; or, + + * b) Accompany it with a written offer, valid for at least three years, + to give any third party, for a charge no more than your cost of + physically performing source distribution, a complete machine- + readable copy of the corresponding source code, to be distributed + under the terms of Sections 1 and 2 above on a medium customarily + used for software interchange; or, + + * c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed + only for noncommercial distribution and only if you received the + program in object code or executable form with such an offer, in + accord with Subsection b above.) + + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source code + means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to control + compilation and installation of the executable. However, as a special + exception, the source code distributed need not include anything that is + normally distributed (in either source or binary form) with the major + components (compiler, kernel, and so on) of the operating system on which + the executable runs, unless that component itself accompanies the + executable. + + If distribution of executable or object code is made by offering access + to copy from a designated place, then offering equivalent access to copy + the source code from the same place counts as distribution of the source + code, even though third parties are not compelled to copy the source + along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as + expressly provided under this License. Any attempt otherwise to copy, + modify, sublicense or distribute the Program is void, and will + automatically terminate your rights under this License. However, parties + who have received copies, or rights, from you under this License will not + have their licenses terminated so long as such parties remain in full + compliance. + +5. You are not required to accept this License, since you have not signed + it. However, nothing else grants you permission to modify or distribute + the Program or its derivative works. These actions are prohibited by law + if you do not accept this License. Therefore, by modifying or + distributing the Program (or any work based on the Program), you + indicate your acceptance of this License to do so, and all its terms and + conditions for copying, distributing or modifying the Program or works + based on it. + +6. Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further restrictions + on the recipients' exercise of the rights granted herein. You are not + responsible for enforcing compliance by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot distribute + so as to satisfy simultaneously your obligations under this License and + any other pertinent obligations, then as a consequence you may not + distribute the Program at all. For example, if a patent license would + not permit royalty-free redistribution of the Program by all those who + receive copies directly or indirectly through you, then the only way you + could satisfy both it and this License would be to refrain entirely from + distribution of the Program. + + If any portion of this section is held invalid or unenforceable under any + particular circumstance, the balance of the section is intended to apply + and the section as a whole is intended to apply in other circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is implemented + by public license practices. Many people have made generous contributions + to the wide range of software distributed through that system in + reliance on consistent application of that system; it is up to the + author/donor to decide if he or she is willing to distribute software + through any other system and a licensee cannot impose that choice. + + This section is intended to make thoroughly clear what is believed to be + a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain + countries either by patents or by copyrighted interfaces, the original + copyright holder who places the Program under this License may add an + explicit geographical distribution limitation excluding those countries, + so that distribution is permitted only in or among countries not thus + excluded. In such case, this License incorporates the limitation as if + written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new versions of + the General Public License from time to time. Such new versions will be + similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and "any + later version", you have the option of following the terms and + conditions either of that version or of any later version published by + the Free Software Foundation. If the Program does not specify a version + number of this License, you may choose any version ever published by the + Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs + whose distribution conditions are different, write to the author to ask + for permission. For software which is copyrighted by the Free Software + Foundation, write to the Free Software Foundation; we sometimes make + exceptions for this. Our decision will be guided by the two goals of + preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + + NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY + FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN + OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES + PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER + EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE + ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH + YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL + NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR + DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL + DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM + (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED + INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF + THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR + OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it free +software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey the +exclusion of warranty; and each file should have at least the "copyright" +line and a pointer to where the full notice is found. + +one line to give the program's name and an idea of what it does. +Copyright (C) yyyy name of author + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2 of the License, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 59 +Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when +it starts in an interactive mode: + +Gnomovision version 69, Copyright (C) year name of author Gnomovision comes +with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free +software, and you are welcome to redistribute it under certain conditions; +type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright interest in the program +'Gnomovision' (which makes passes at compilers) written by James Hacker. + +signature of Ty Coon, 1 April 1989 +Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. --- linux-2.6.35.orig/ubuntu/fsam7400/INSTALL +++ linux-2.6.35/ubuntu/fsam7400/INSTALL @@ -0,0 +1,110 @@ +SW RF kill switch for Fujitsu Siemens Amilo M 7400 +Copyright (C) 2006, zwobbl +For additional information, contact Marcel Naziri + +COMPILER REQUIREMENTS +--------- ------ ---- --- -- -- - - + +You need to be using GCC v3.0 or higher in order to build the fsam7400 module. +Using older versions will result in several compilation errors. + + +INSTALLING THE BITS +------------ ----- ----- ---- --- -- - + +# Unpack the source tarball + +% tar xvzf fsam7400-0.x.y.tgz +% cd fsam7400-0.x.y + +Make sure to be root when performing the following operations. Also you must +have a kernel source tree installed under /usr/src/linux + +# Build the kernel module + +% make + +Debug output is enabled by default. This is a good idea if you use the fsam module for +the first time, so you get some nice information printed on kernel log. If you don't +need the messages anymore, you have to comment out the line CONFIG_IPW2100_DEBUG=y in +the Makefile. + +# Install the kernel module + +% make install + +Now you are ready for... + + +LOADING THE DRIVER +------------ ----- ----- ---- --- -- - + +Also easy to go... :) + +% modprobe fsam7400 + +If you have set "wireless device" enabled in your "Advanced" bios settings of +your Amilo M 7400 radio should be turned on at this point. So you're done! +Watch out your kernel log if supported hardware was found. :) + + +RADIO STATE AT LOADING + +You can override the wireless bios setting with + +% modprobe fsam7400 radio=[0|1] + + +PROC FILESYSTEM + +If your hardware is supported by the driver you will get an entry in /proc +called driver/wireless/radio which will give you state information by typing + +% cat /proc/driver/wireless/radio + +You can turn the radio on and off at your will with + +% echo [1|on] > /proc/driver/wireless/radio +% echo [0|off] > /proc/driver/wireless/radio + +The module also recognizes parameters to set the user- and/or group-ID to +something other than root, so you don't have to adjust it by hand. +Just select your favourite IDs and type + +% modprobe fsam7400 uid=1000 gid=500 + +Note, that /proc/driver/wireless/radio will only be read- and writeable by +user & group and only readable by others. + +If you want to see debug output on syslog use the following parameter when +loading the module + +% modprobe fsam7400 debug=1 + + +AUTOMATION FEATURES + +By default the driver will turn off the radio automatically short before the +module is unloaded. To override this behaviour load the module adding the +following parameter + +% modprobe fsam7400 autooff=0 + +Also since 0.4.0 the driver can automatically modprobe the ipw2100 module when +radio state changes to on and rmmods it when radio is turned off by fsam7400. +To enable autoload support, use + +% modprobe fsam7400 autoload=1 + + +HIBERNATION SUPPORT + +After hibernation and boot up of the system the wireless radio might be disabled +again. To revert to the radio state before hibernation just put the following +in the wakeup script + +% echo resume > /proc/driver/wireless/radio + + + +That's all for now. Have fun with the driver! --- linux-2.6.35.orig/ubuntu/fsam7400/CHANGELOG +++ linux-2.6.35/ubuntu/fsam7400/CHANGELOG @@ -0,0 +1,34 @@ +Nov 22 2008 Changes in 0.5.2 by legolas558 +* fixed some missing include files + +Sep 22 2006 Changes in 0.5.1 +* Fix: possible null pointer dereference in proc code +* Fix: module exit code was mistakenly disabled + +Sep 22 2006 Changes in 0.5.0 +* fixed compilation problems with kernel 2.6.18 +* debug-output enabling via module parameter +* hibernation support: reconstruct last radio state on resume +* disabled autoload option by default + +Jul 16 2006 Changes in 0.4.1 +* new Makefile fixing problems with kernel 2.6.17 +* several bug fixes and compiler cleanups + +Aug 20 2004 Changes in 0.4.0 +* several bug fixes and compiler cleanups +* UID/GID for procfs entry selectable via module parameter +* Autoload support: fsam7400 modprobes and rmmods ipw2100 automatically + depending on radio state + +Apr 15 2004 Changes in 0.3.0 +* Fix: radio state was not displayed properly +* some proc improvements +* finished code for alternative routine address calculation +* debug-output selectable at compile-time with CONFIG_IPW2100_DEBUG define + for smaller module size if no debug is needed ;) + +Apr 9 2004 Changes in 0.2.1 +* Initial release +* Determines if wireless device is enabled by default Bios-settings +* Auto-off functionality --- linux-2.6.35.orig/ubuntu/fsam7400/Kconfig +++ linux-2.6.35/ubuntu/fsam7400/Kconfig @@ -0,0 +1,5 @@ +config FSAM7400 + tristate "SW RF kill switch for Fujitsu Siemens Amilo M 7400" + depends on CHECK_SIGNATURE + default m + ---help--- --- linux-2.6.35.orig/ubuntu/fsam7400/Makefile +++ linux-2.6.35/ubuntu/fsam7400/Makefile @@ -0,0 +1,2 @@ + +obj-$(CONFIG_FSAM7400) += fsam7400.o --- linux-2.6.35.orig/ubuntu/fsam7400/README +++ linux-2.6.35/ubuntu/fsam7400/README @@ -0,0 +1,60 @@ +SW RF kill switch for Fujitsu Siemens Amilo M 7400 / Maxdata 7000DX +and compatible hardware. + +Please be sure that CONFIG_CHECK_SIGNATURE=y in your kernel configuration! +Otherwise this module will not compile. + +Nov 22, 2008 - Release 0.5.2 + +This package, with minor modifications from zwobbl's 0.5.1, was created +by legolas558. + +More information at: +http://legolas558.iragan.com/fsam7400 + +Sep 24, 2006 - Release 0.5.1 +------------ ----- ----- ---- --- -- - + +* Fix: possible null pointer dereference in proc code + +* Fix: module exit code was mistakenly disabled + + +for prior changes see CHANGELOG + + +TODO +------------ ----- ----- ---- --- -- - + +* Fix bugs (if there are any ;)) + + +------------ ----- ----- ---- --- -- - + +Have a look in INSTALL for further details to get things working! + + +License +------------ ----- ----- ---- --- -- - + + Copyright(c) 2006 zwobbl. All rights reserved. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program; if not, write to the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + The full GNU General Public License is included in this distribution in the + file called LICENSE. + + Contact Information: + Marcel Naziri --- linux-2.6.35.orig/ubuntu/dm-raid4-5/dm-message.c +++ linux-2.6.35/ubuntu/dm-raid4-5/dm-message.c @@ -0,0 +1,183 @@ +/* + * Copyright (C) 2007,2008 Red Hat Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen + * + * General device-mapper message interface argument parser. + * + * This file is released under the GPL. + * + * device-mapper message parser. + * + */ + +#include "dm.h" +#include "dm-message.h" +#include + +#define DM_MSG_PREFIX "dm_message" + +/* Basename of a path. */ +static inline char * +basename(char *s) +{ + char *p = strrchr(s, '/'); + + return p ? p + 1 : s; +} + +/* Get an argument depending on type. */ +static void +message_arguments(struct dm_msg *msg, int argc, char **argv) +{ + + if (argc) { + int i; + struct dm_message_argument *args = msg->spec->args; + + for (i = 0; i < args->num_args; i++) { + int r; + unsigned long **ptr = args->ptr; + enum dm_message_argument_type type = args->types[i]; + + switch (type) { + case dm_msg_base_t: + ((char **) ptr)[i] = basename(argv[i]); + break; + + case dm_msg_str_t: + ((char **) ptr)[i] = argv[i]; + break; + + case dm_msg_int_t: + r = sscanf(argv[i], "%d", ((int **) ptr)[i]); + goto check; + + case dm_msg_uint_t: + r = sscanf(argv[i], "%u", + ((unsigned **) ptr)[i]); + goto check; + + case dm_msg_uint64_t: + r = sscanf(argv[i], "%llu", + ((unsigned long long **) ptr)[i]); + +check: + if (r != 1) { + set_bit(dm_msg_ret_undef, &msg->ret); + set_bit(dm_msg_ret_arg, &msg->ret); + } + } + } + } +} + +/* Parse message options. */ +static void +message_options_parse(struct dm_msg *msg, int argc, char **argv) +{ + int hit = 0; + unsigned long *action; + size_t l1 = strlen(*argv), l_hit = 0; + struct dm_message_option *o = msg->spec->options; + char **option, **option_end = o->options + o->num_options; + + for (option = o->options, action = o->actions; + option < option_end; option++, action++) { + size_t l2 = strlen(*option); + + if (!strnicmp(*argv, *option, min(l1, l2))) { + hit++; + l_hit = l2; + set_bit(*action, &msg->action); + } + } + + /* Assume error. */ + msg->ret = 0; + set_bit(dm_msg_ret_option, &msg->ret); + if (!hit || l1 > l_hit) + set_bit(dm_msg_ret_undef, &msg->ret); /* Undefined option. */ + else if (hit > 1) + set_bit(dm_msg_ret_ambiguous, &msg->ret); /* Ambiguous option.*/ + else { + clear_bit(dm_msg_ret_option, &msg->ret); /* Option OK. */ + message_arguments(msg, --argc, ++argv); + } +} + +static inline void +print_ret(const char *caller, unsigned long ret) +{ + struct { + unsigned long err; + const char *err_str; + } static err_msg[] = { + { dm_msg_ret_ambiguous, "message ambiguous" }, + { dm_msg_ret_inval, "message invalid" }, + { dm_msg_ret_undef, "message undefined" }, + { dm_msg_ret_arg, "message argument" }, + { dm_msg_ret_argcount, "message argument count" }, + { dm_msg_ret_option, "option" }, + }, *e = ARRAY_END(err_msg); + + while (e-- > err_msg) { + if (test_bit(e->err, &ret)) + DMERR("%s %s", caller, e->err_str); + } +} + +/* Parse a message action. */ +int +dm_message_parse(const char *caller, struct dm_msg *msg, void *context, + int argc, char **argv) +{ + int hit = 0; + size_t l1, l_hit = 0; + struct dm_msg_spec *s, *s_hit = NULL, + *s_end = msg->specs + msg->num_specs; + + if (argc < 2) + return -EINVAL; + + l1 = strlen(*argv); + for (s = msg->specs; s < s_end; s++) { + size_t l2 = strlen(s->cmd); + + if (!strnicmp(*argv, s->cmd, min(l1, l2))) { + hit++; + l_hit = l2; + s_hit = s; + } + } + + msg->ret = 0; + if (!hit || l1 > l_hit) /* No hit or message string too long. */ + set_bit(dm_msg_ret_undef, &msg->ret); + else if (hit > 1) /* Ambiguous message. */ + set_bit(dm_msg_ret_ambiguous, &msg->ret); + else if (argc - 2 != s_hit->args->num_args) { + set_bit(dm_msg_ret_undef, &msg->ret); + set_bit(dm_msg_ret_argcount, &msg->ret); + } + + if (msg->ret) + goto bad; + + msg->action = 0; + msg->spec = s_hit; + set_bit(s_hit->action, &msg->action); + message_options_parse(msg, --argc, ++argv); + + if (!msg->ret) + return msg->spec->f(msg, context); + +bad: + print_ret(caller, msg->ret); + return -EINVAL; +} +EXPORT_SYMBOL(dm_message_parse); + +MODULE_DESCRIPTION(DM_NAME " device-mapper target message parser"); +MODULE_AUTHOR("Heinz Mauelshagen "); +MODULE_LICENSE("GPL"); --- linux-2.6.35.orig/ubuntu/dm-raid4-5/dm-region-hash.h +++ linux-2.6.35/ubuntu/dm-raid4-5/dm-region-hash.h @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2003 Sistina Software Limited. + * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. + * + * Device-Mapper dirty region hash interface. + * + * This file is released under the GPL. + */ + +#ifndef DM_REGION_HASH_H +#define DM_REGION_HASH_H + +#include + +/*----------------------------------------------------------------- + * Region hash + *----------------------------------------------------------------*/ +struct dm_region_hash; +struct dm_region; + +/* + * States a region can have. + */ +enum dm_rh_region_states { + DM_RH_CLEAN = 0x01, /* No writes in flight. */ + DM_RH_DIRTY = 0x02, /* Writes in flight. */ + DM_RH_NOSYNC = 0x04, /* Out of sync. */ + DM_RH_RECOVERING = 0x08, /* Under resynchronization. */ +}; + +/* + * Region hash create/destroy. + */ +struct bio_list; +struct dm_region_hash *dm_region_hash_create( + void *context, void (*dispatch_bios)(void *context, + struct bio_list *bios), + void (*wakeup_workers)(void *context), + void (*wakeup_all_recovery_waiters)(void *context), + sector_t target_begin, unsigned max_recovery, + struct dm_dirty_log *log, uint32_t region_size, + region_t nr_regions); +void dm_region_hash_destroy(struct dm_region_hash *rh); + +struct dm_dirty_log *dm_rh_dirty_log(struct dm_region_hash *rh); + +/* + * Conversion functions. + */ +region_t dm_rh_bio_to_region(struct dm_region_hash *rh, struct bio *bio); +sector_t dm_rh_region_to_sector(struct dm_region_hash *rh, region_t region); +region_t dm_rh_sector_to_region(struct dm_region_hash *rh, sector_t sector); +void *dm_rh_region_context(struct dm_region *reg); + +/* + * Get region size and key (ie. number of the region). + */ +sector_t dm_rh_get_region_size(struct dm_region_hash *rh); +region_t dm_rh_get_region_key(struct dm_region *reg); + +/* + * Get/set/update region state (and dirty log). + * + */ +int dm_rh_get_state(struct dm_region_hash *rh, region_t region, int may_block); +void dm_rh_set_state(struct dm_region_hash *rh, region_t region, + enum dm_rh_region_states state, int may_block); + +/* Non-zero errors_handled leaves the state of the region NOSYNC */ +void dm_rh_update_states(struct dm_region_hash *rh, int errors_handled); + +/* Flush the region hash and dirty log. */ +int dm_rh_flush(struct dm_region_hash *rh); + +/* Inc/dec pending count on regions. */ +void dm_rh_inc(struct dm_region_hash *rh, region_t region); +void dm_rh_inc_pending(struct dm_region_hash *rh, struct bio_list *bios); +void dm_rh_dec(struct dm_region_hash *rh, region_t region); + +/* Delay bios on regions. */ +void dm_rh_delay(struct dm_region_hash *rh, struct bio *bio); +void dm_rh_delay_by_region(struct dm_region_hash *rh, struct bio *bio, + region_t region); + +void dm_rh_mark_nosync(struct dm_region_hash *rh, + struct bio *bio, unsigned done, int error); + +/* + * Region recovery control. + */ + +/* Prepare some regions for recovery by starting to quiesce them. */ +void dm_rh_recovery_prepare(struct dm_region_hash *rh); + +/* Try fetching a quiesced region for recovery. */ +struct dm_region *dm_rh_recovery_start(struct dm_region_hash *rh); + +/* Report recovery end on a region. */ +void dm_rh_recovery_end(struct dm_region *reg, int error); + +/* Returns number of regions with recovery work outstanding. */ +int dm_rh_recovery_in_flight(struct dm_region_hash *rh); + +/* Start/stop recovery. */ +void dm_rh_start_recovery(struct dm_region_hash *rh); +void dm_rh_stop_recovery(struct dm_region_hash *rh); + +#endif /* DM_REGION_HASH_H */ --- linux-2.6.35.orig/ubuntu/dm-raid4-5/BOM +++ linux-2.6.35/ubuntu/dm-raid4-5/BOM @@ -0,0 +1,3 @@ +Downloaded from: http://people.redhat.com/~heinzm/sw/dm/dm-raid45/ +Current Version: 2009.04.24 (2.6.30-rc3) +Comments: All of the patches to dmraid1/dm-log, etc are upstream. --- linux-2.6.35.orig/ubuntu/dm-raid4-5/dm-memcache.c +++ linux-2.6.35/ubuntu/dm-raid4-5/dm-memcache.c @@ -0,0 +1,302 @@ +/* + * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen + * + * Device-mapper memory object handling: + * + * o allocate/free total_pages in a per client page pool. + * + * o allocate/free memory objects with chunks (1..n) of + * pages_per_chunk pages hanging off. + * + * This file is released under the GPL. + */ + +#define DM_MEM_CACHE_VERSION "0.2" + +#include "dm.h" +#include "dm-memcache.h" +#include +#include + +struct dm_mem_cache_client { + spinlock_t lock; + mempool_t *objs_pool; + struct page_list *free_list; + unsigned objects; + unsigned chunks; + unsigned pages_per_chunk; + unsigned free_pages; + unsigned total_pages; +}; + +/* + * Free pages and page_list elements of client. + */ +static void free_cache_pages(struct page_list *list) +{ + while (list) { + struct page_list *pl = list; + + list = pl->next; + BUG_ON(!pl->page); + __free_page(pl->page); + kfree(pl); + } +} + +/* + * Alloc number of pages and page_list elements as required by client. + */ +static struct page_list *alloc_cache_pages(unsigned pages) +{ + struct page_list *pl, *ret = NULL; + struct page *page; + + while (pages--) { + page = alloc_page(GFP_NOIO); + if (!page) + goto err; + + pl = kmalloc(sizeof(*pl), GFP_NOIO); + if (!pl) { + __free_page(page); + goto err; + } + + pl->page = page; + pl->next = ret; + ret = pl; + } + + return ret; + +err: + free_cache_pages(ret); + return NULL; +} + +/* + * Allocate page_list elements from the pool to chunks of the memory object. + */ +static void alloc_chunks(struct dm_mem_cache_client *cl, + struct dm_mem_cache_object *obj) +{ + unsigned chunks = cl->chunks; + unsigned long flags; + + local_irq_save(flags); + local_irq_disable(); + while (chunks--) { + unsigned p = cl->pages_per_chunk; + + obj[chunks].pl = NULL; + + while (p--) { + struct page_list *pl; + + /* Take next element from free list */ + spin_lock(&cl->lock); + pl = cl->free_list; + BUG_ON(!pl); + cl->free_list = pl->next; + spin_unlock(&cl->lock); + + pl->next = obj[chunks].pl; + obj[chunks].pl = pl; + } + } + + local_irq_restore(flags); +} + +/* + * Free page_list elements putting them back onto free list + */ +static void free_chunks(struct dm_mem_cache_client *cl, + struct dm_mem_cache_object *obj) +{ + unsigned chunks = cl->chunks; + unsigned long flags; + struct page_list *next, *pl; + + local_irq_save(flags); + local_irq_disable(); + while (chunks--) { + for (pl = obj[chunks].pl; pl; pl = next) { + next = pl->next; + + spin_lock(&cl->lock); + pl->next = cl->free_list; + cl->free_list = pl; + cl->free_pages++; + spin_unlock(&cl->lock); + } + } + + local_irq_restore(flags); +} + +/* + * Create/destroy dm memory cache client resources. + */ +struct dm_mem_cache_client * +dm_mem_cache_client_create(unsigned objects, unsigned chunks, + unsigned pages_per_chunk) +{ + unsigned total_pages = objects * chunks * pages_per_chunk; + struct dm_mem_cache_client *client; + + BUG_ON(!total_pages); + client = kzalloc(sizeof(*client), GFP_KERNEL); + if (!client) + return ERR_PTR(-ENOMEM); + + client->objs_pool = mempool_create_kmalloc_pool(objects, + chunks * sizeof(struct dm_mem_cache_object)); + if (!client->objs_pool) + goto err; + + client->free_list = alloc_cache_pages(total_pages); + if (!client->free_list) + goto err1; + + spin_lock_init(&client->lock); + client->objects = objects; + client->chunks = chunks; + client->pages_per_chunk = pages_per_chunk; + client->free_pages = client->total_pages = total_pages; + return client; + +err1: + mempool_destroy(client->objs_pool); +err: + kfree(client); + return ERR_PTR(-ENOMEM); +} +EXPORT_SYMBOL(dm_mem_cache_client_create); + +void dm_mem_cache_client_destroy(struct dm_mem_cache_client *cl) +{ + BUG_ON(cl->free_pages != cl->total_pages); + free_cache_pages(cl->free_list); + mempool_destroy(cl->objs_pool); + kfree(cl); +} +EXPORT_SYMBOL(dm_mem_cache_client_destroy); + +/* + * Grow a clients cache by an amount of pages. + * + * Don't call from interrupt context! + */ +int dm_mem_cache_grow(struct dm_mem_cache_client *cl, unsigned objects) +{ + unsigned pages = objects * cl->chunks * cl->pages_per_chunk; + struct page_list *pl, *last; + + BUG_ON(!pages); + pl = alloc_cache_pages(pages); + if (!pl) + return -ENOMEM; + + last = pl; + while (last->next) + last = last->next; + + spin_lock_irq(&cl->lock); + last->next = cl->free_list; + cl->free_list = pl; + cl->free_pages += pages; + cl->total_pages += pages; + cl->objects++; + spin_unlock_irq(&cl->lock); + + mempool_resize(cl->objs_pool, cl->objects, GFP_NOIO); + return 0; +} +EXPORT_SYMBOL(dm_mem_cache_grow); + +/* Shrink a clients cache by an amount of pages */ +int dm_mem_cache_shrink(struct dm_mem_cache_client *cl, unsigned objects) +{ + int r; + unsigned pages = objects * cl->chunks * cl->pages_per_chunk, p = pages; + unsigned long flags; + struct page_list *last = NULL, *pl, *pos; + + BUG_ON(!pages); + + spin_lock_irqsave(&cl->lock, flags); + pl = pos = cl->free_list; + while (p-- && pos->next) { + last = pos; + pos = pos->next; + } + + if (++p) + r = -ENOMEM; + else { + r = 0; + cl->free_list = pos; + cl->free_pages -= pages; + cl->total_pages -= pages; + cl->objects--; + last->next = NULL; + } + spin_unlock_irqrestore(&cl->lock, flags); + + if (!r) { + free_cache_pages(pl); + mempool_resize(cl->objs_pool, cl->objects, GFP_NOIO); + } + + return r; +} +EXPORT_SYMBOL(dm_mem_cache_shrink); + +/* + * Allocate/free a memory object + * + * Can be called from interrupt context + */ +struct dm_mem_cache_object *dm_mem_cache_alloc(struct dm_mem_cache_client *cl) +{ + int r = 0; + unsigned pages = cl->chunks * cl->pages_per_chunk; + unsigned long flags; + struct dm_mem_cache_object *obj; + + obj = mempool_alloc(cl->objs_pool, GFP_NOIO); + if (!obj) + return ERR_PTR(-ENOMEM); + + spin_lock_irqsave(&cl->lock, flags); + if (pages > cl->free_pages) + r = -ENOMEM; + else + cl->free_pages -= pages; + spin_unlock_irqrestore(&cl->lock, flags); + + if (r) { + mempool_free(obj, cl->objs_pool); + return ERR_PTR(r); + } + + alloc_chunks(cl, obj); + return obj; +} +EXPORT_SYMBOL(dm_mem_cache_alloc); + +void dm_mem_cache_free(struct dm_mem_cache_client *cl, + struct dm_mem_cache_object *obj) +{ + free_chunks(cl, obj); + mempool_free(obj, cl->objs_pool); +} +EXPORT_SYMBOL(dm_mem_cache_free); + +MODULE_DESCRIPTION(DM_NAME " dm memory cache"); +MODULE_AUTHOR("Heinz Mauelshagen "); +MODULE_LICENSE("GPL"); --- linux-2.6.35.orig/ubuntu/dm-raid4-5/dm-memcache.h +++ linux-2.6.35/ubuntu/dm-raid4-5/dm-memcache.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen + * + * Device-mapper memory object handling: + * + * o allocate/free total_pages in a per client page pool. + * + * o allocate/free memory objects with chunks (1..n) of + * pages_per_chunk pages hanging off. + * + * This file is released under the GPL. + */ + +#ifndef _DM_MEM_CACHE_H +#define _DM_MEM_CACHE_H + +#define DM_MEM_CACHE_H_VERSION "0.1" + +#include "dm.h" +#include + +static inline struct page_list *pl_elem(struct page_list *pl, unsigned p) +{ + while (pl && p--) + pl = pl->next; + + return pl; +} + +struct dm_mem_cache_object { + struct page_list *pl; /* Dynamically allocated array */ + void *private; /* Caller context reference */ +}; + +struct dm_mem_cache_client; + +/* + * Create/destroy dm memory cache client resources. + * + * On creation, a number of @objects with @chunks of + * @pages_per_chunk pages will be allocated. + */ +struct dm_mem_cache_client * +dm_mem_cache_client_create(unsigned objects, unsigned chunks, + unsigned pages_per_chunk); +void dm_mem_cache_client_destroy(struct dm_mem_cache_client *client); + +/* + * Grow/shrink a dm memory cache client resources + * by @objetcs amount of objects. + */ +int dm_mem_cache_grow(struct dm_mem_cache_client *client, unsigned objects); +int dm_mem_cache_shrink(struct dm_mem_cache_client *client, unsigned objects); + +/* + * Allocate/free a memory object + * + * On allocation one object with an amount of chunks and + * an amount of pages per chunk will be returned on success. + */ +struct dm_mem_cache_object * +dm_mem_cache_alloc(struct dm_mem_cache_client *client); +void dm_mem_cache_free(struct dm_mem_cache_client *client, + struct dm_mem_cache_object *object); + +#endif --- linux-2.6.35.orig/ubuntu/dm-raid4-5/dm-raid45.h +++ linux-2.6.35/ubuntu/dm-raid4-5/dm-raid45.h @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen (Mauelshagen@RedHat.com) + * + * Locking definitions for the device-mapper RAID45 target. + * + * This file is released under the GPL. + * + */ + +#ifndef _DM_RAID45_H +#define _DM_RAID45_H + +/* Factor out to dm.h! */ +#define STR_LEN(ptr, str) (ptr), (str), strlen((ptr)) + +enum dm_lock_type { DM_RAID45_EX, DM_RAID45_SHARED }; + +struct dm_raid45_locking_type { + /* Request a lock on a stripe. */ + void* (*lock)(sector_t key, enum dm_lock_type type); + + /* Release a lock on a stripe. */ + void (*unlock)(void *lock_handle); +}; + +#endif --- linux-2.6.35.orig/ubuntu/dm-raid4-5/dm-region-hash.c +++ linux-2.6.35/ubuntu/dm-raid4-5/dm-region-hash.c @@ -0,0 +1,719 @@ +/* + * Copyright (C) 2003 Sistina Software Limited. + * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. + * + * This file is released under the GPL. + */ + +#include +#include "dm-region-hash.h" + +#include +#include +#include +#include +#include + +#include "dm.h" + +#define DM_MSG_PREFIX "region hash" + +/*----------------------------------------------------------------- + * Region hash + * + * The mirror splits itself up into discrete regions. Each + * region can be in one of three states: clean, dirty, + * nosync. There is no need to put clean regions in the hash. + * + * In addition to being present in the hash table a region _may_ + * be present on one of three lists. + * + * clean_regions: Regions on this list have no io pending to + * them, they are in sync, we are no longer interested in them, + * they are dull. dm_rh_update_states() will remove them from the + * hash table. + * + * quiesced_regions: These regions have been spun down, ready + * for recovery. rh_recovery_start() will remove regions from + * this list and hand them to kmirrord, which will schedule the + * recovery io with kcopyd. + * + * recovered_regions: Regions that kcopyd has successfully + * recovered. dm_rh_update_states() will now schedule any delayed + * io, up the recovery_count, and remove the region from the + * hash. + * + * There are 2 locks: + * A rw spin lock 'hash_lock' protects just the hash table, + * this is never held in write mode from interrupt context, + * which I believe means that we only have to disable irqs when + * doing a write lock. + * + * An ordinary spin lock 'region_lock' that protects the three + * lists in the region_hash, with the 'state', 'list' and + * 'delayed_bios' fields of the regions. This is used from irq + * context, so all other uses will have to suspend local irqs. + *---------------------------------------------------------------*/ +struct dm_region_hash { + uint32_t region_size; + unsigned region_shift; + + /* holds persistent region state */ + struct dm_dirty_log *log; + + /* hash table */ + rwlock_t hash_lock; + mempool_t *region_pool; + unsigned mask; + unsigned nr_buckets; + unsigned prime; + unsigned shift; + struct list_head *buckets; + + unsigned max_recovery; /* Max # of regions to recover in parallel */ + + spinlock_t region_lock; + atomic_t recovery_in_flight; + struct semaphore recovery_count; + struct list_head clean_regions; + struct list_head quiesced_regions; + struct list_head recovered_regions; + struct list_head failed_recovered_regions; + + void *context; + sector_t target_begin; + + /* Callback function to schedule bios writes */ + void (*dispatch_bios)(void *context, struct bio_list *bios); + + /* Callback function to wakeup callers worker thread. */ + void (*wakeup_workers)(void *context); + + /* Callback function to wakeup callers recovery waiters. */ + void (*wakeup_all_recovery_waiters)(void *context); +}; + +struct dm_region { + struct dm_region_hash *rh; /* FIXME: can we get rid of this ? */ + region_t key; + int state; + + struct list_head hash_list; + struct list_head list; + + atomic_t pending; + struct bio_list delayed_bios; +}; + +/* + * Conversion fns + */ +region_t dm_rh_sector_to_region(struct dm_region_hash *rh, sector_t sector) +{ + return sector >> rh->region_shift; +} +// EXPORT_SYMBOL_GPL(dm_rh_sector_to_region); + +sector_t dm_rh_region_to_sector(struct dm_region_hash *rh, region_t region) +{ + return region << rh->region_shift; +} +// EXPORT_SYMBOL_GPL(dm_rh_region_to_sector); + +region_t dm_rh_bio_to_region(struct dm_region_hash *rh, struct bio *bio) +{ + return dm_rh_sector_to_region(rh, bio->bi_sector - rh->target_begin); +} +// EXPORT_SYMBOL_GPL(dm_rh_bio_to_region); + +void *dm_rh_region_context(struct dm_region *reg) +{ + return reg->rh->context; +} +// EXPORT_SYMBOL_GPL(dm_rh_region_context); + +region_t dm_rh_get_region_key(struct dm_region *reg) +{ + return reg->key; +} +// EXPORT_SYMBOL_GPL(dm_rh_get_region_key); + +sector_t dm_rh_get_region_size(struct dm_region_hash *rh) +{ + return rh->region_size; +} +// EXPORT_SYMBOL_GPL(dm_rh_get_region_size); + +/* + * FIXME: shall we pass in a structure instead of all these args to + * dm_region_hash_create()???? + */ +#define RH_HASH_MULT 2654435387U +#define RH_HASH_SHIFT 12 + +#define MIN_REGIONS 64 +struct dm_region_hash *dm_region_hash_create( + void *context, void (*dispatch_bios)(void *context, + struct bio_list *bios), + void (*wakeup_workers)(void *context), + void (*wakeup_all_recovery_waiters)(void *context), + sector_t target_begin, unsigned max_recovery, + struct dm_dirty_log *log, uint32_t region_size, + region_t nr_regions) +{ + struct dm_region_hash *rh; + unsigned nr_buckets, max_buckets; + size_t i; + + /* + * Calculate a suitable number of buckets for our hash + * table. + */ + max_buckets = nr_regions >> 6; + for (nr_buckets = 128u; nr_buckets < max_buckets; nr_buckets <<= 1) + ; + nr_buckets >>= 1; + + rh = kmalloc(sizeof(*rh), GFP_KERNEL); + if (!rh) { + DMERR("unable to allocate region hash memory"); + return ERR_PTR(-ENOMEM); + } + + rh->context = context; + rh->dispatch_bios = dispatch_bios; + rh->wakeup_workers = wakeup_workers; + rh->wakeup_all_recovery_waiters = wakeup_all_recovery_waiters; + rh->target_begin = target_begin; + rh->max_recovery = max_recovery; + rh->log = log; + rh->region_size = region_size; + rh->region_shift = ffs(region_size) - 1; + rwlock_init(&rh->hash_lock); + rh->mask = nr_buckets - 1; + rh->nr_buckets = nr_buckets; + + rh->shift = RH_HASH_SHIFT; + rh->prime = RH_HASH_MULT; + + rh->buckets = vmalloc(nr_buckets * sizeof(*rh->buckets)); + if (!rh->buckets) { + DMERR("unable to allocate region hash bucket memory"); + kfree(rh); + return ERR_PTR(-ENOMEM); + } + + for (i = 0; i < nr_buckets; i++) + INIT_LIST_HEAD(rh->buckets + i); + + spin_lock_init(&rh->region_lock); + sema_init(&rh->recovery_count, 0); + atomic_set(&rh->recovery_in_flight, 0); + INIT_LIST_HEAD(&rh->clean_regions); + INIT_LIST_HEAD(&rh->quiesced_regions); + INIT_LIST_HEAD(&rh->recovered_regions); + INIT_LIST_HEAD(&rh->failed_recovered_regions); + + rh->region_pool = mempool_create_kmalloc_pool(MIN_REGIONS, + sizeof(struct dm_region)); + if (!rh->region_pool) { + vfree(rh->buckets); + kfree(rh); + rh = ERR_PTR(-ENOMEM); + } + + return rh; +} +// EXPORT_SYMBOL_GPL(dm_region_hash_create); + +void dm_region_hash_destroy(struct dm_region_hash *rh) +{ + unsigned h; + struct dm_region *reg, *nreg; + + BUG_ON(!list_empty(&rh->quiesced_regions)); + for (h = 0; h < rh->nr_buckets; h++) { + list_for_each_entry_safe(reg, nreg, rh->buckets + h, + hash_list) { + BUG_ON(atomic_read(®->pending)); + mempool_free(reg, rh->region_pool); + } + } + + if (rh->log) + dm_dirty_log_destroy(rh->log); + + if (rh->region_pool) + mempool_destroy(rh->region_pool); + + vfree(rh->buckets); + kfree(rh); +} +// EXPORT_SYMBOL_GPL(dm_region_hash_destroy); + +struct dm_dirty_log *dm_rh_dirty_log(struct dm_region_hash *rh) +{ + return rh->log; +} +// EXPORT_SYMBOL_GPL(dm_rh_dirty_log); + +static unsigned rh_hash(struct dm_region_hash *rh, region_t region) +{ + return (unsigned) ((region * rh->prime) >> rh->shift) & rh->mask; +} + +static struct dm_region *__rh_lookup(struct dm_region_hash *rh, region_t region) +{ + struct dm_region *reg; + struct list_head *bucket = rh->buckets + rh_hash(rh, region); + + list_for_each_entry(reg, bucket, hash_list) + if (reg->key == region) + return reg; + + return NULL; +} + +static void __rh_insert(struct dm_region_hash *rh, struct dm_region *reg) +{ + list_add(®->hash_list, rh->buckets + rh_hash(rh, reg->key)); +} + +static struct dm_region *__rh_alloc(struct dm_region_hash *rh, region_t region) +{ + struct dm_region *reg, *nreg; + + nreg = mempool_alloc(rh->region_pool, GFP_ATOMIC); + if (unlikely(!nreg)) + nreg = kmalloc(sizeof(*nreg), GFP_NOIO | __GFP_NOFAIL); + + nreg->state = rh->log->type->in_sync(rh->log, region, 1) ? + DM_RH_CLEAN : DM_RH_NOSYNC; + nreg->rh = rh; + nreg->key = region; + INIT_LIST_HEAD(&nreg->list); + atomic_set(&nreg->pending, 0); + bio_list_init(&nreg->delayed_bios); + + write_lock_irq(&rh->hash_lock); + reg = __rh_lookup(rh, region); + if (reg) + /* We lost the race. */ + mempool_free(nreg, rh->region_pool); + else { + __rh_insert(rh, nreg); + if (nreg->state == DM_RH_CLEAN) { + spin_lock(&rh->region_lock); + list_add(&nreg->list, &rh->clean_regions); + spin_unlock(&rh->region_lock); + } + + reg = nreg; + } + write_unlock_irq(&rh->hash_lock); + + return reg; +} + +static struct dm_region *__rh_find(struct dm_region_hash *rh, region_t region) +{ + struct dm_region *reg; + + reg = __rh_lookup(rh, region); + if (!reg) { + read_unlock(&rh->hash_lock); + reg = __rh_alloc(rh, region); + read_lock(&rh->hash_lock); + } + + return reg; +} + +int dm_rh_get_state(struct dm_region_hash *rh, region_t region, int may_block) +{ + int r; + struct dm_region *reg; + + read_lock(&rh->hash_lock); + reg = __rh_lookup(rh, region); + read_unlock(&rh->hash_lock); + + if (reg) + return reg->state; + + /* + * The region wasn't in the hash, so we fall back to the + * dirty log. + */ + r = rh->log->type->in_sync(rh->log, region, may_block); + + /* + * Any error from the dirty log (eg. -EWOULDBLOCK) gets + * taken as a DM_RH_NOSYNC + */ + return r == 1 ? DM_RH_CLEAN : DM_RH_NOSYNC; +} +// EXPORT_SYMBOL_GPL(dm_rh_get_state); + +static void complete_resync_work(struct dm_region *reg, int success) +{ + struct dm_region_hash *rh = reg->rh; + + rh->log->type->set_region_sync(rh->log, reg->key, success); + + /* + * Dispatch the bios before we call 'wake_up_all'. + * This is important because if we are suspending, + * we want to know that recovery is complete and + * the work queue is flushed. If we wake_up_all + * before we dispatch_bios (queue bios and call wake()), + * then we risk suspending before the work queue + * has been properly flushed. + */ + rh->dispatch_bios(rh->context, ®->delayed_bios); + if (atomic_dec_and_test(&rh->recovery_in_flight)) + rh->wakeup_all_recovery_waiters(rh->context); + up(&rh->recovery_count); +} + +/* dm_rh_mark_nosync + * @ms + * @bio + * @done + * @error + * + * The bio was written on some mirror(s) but failed on other mirror(s). + * We can successfully endio the bio but should avoid the region being + * marked clean by setting the state DM_RH_NOSYNC. + * + * This function is _not_ safe in interrupt context! + */ +void dm_rh_mark_nosync(struct dm_region_hash *rh, + struct bio *bio, unsigned done, int error) +{ + unsigned long flags; + struct dm_dirty_log *log = rh->log; + struct dm_region *reg; + region_t region = dm_rh_bio_to_region(rh, bio); + int recovering = 0; + + /* We must inform the log that the sync count has changed. */ + log->type->set_region_sync(log, region, 0); + + read_lock(&rh->hash_lock); + reg = __rh_find(rh, region); + read_unlock(&rh->hash_lock); + + /* region hash entry should exist because write was in-flight */ + BUG_ON(!reg); + BUG_ON(!list_empty(®->list)); + + spin_lock_irqsave(&rh->region_lock, flags); + /* + * Possible cases: + * 1) DM_RH_DIRTY + * 2) DM_RH_NOSYNC: was dirty, other preceeding writes failed + * 3) DM_RH_RECOVERING: flushing pending writes + * Either case, the region should have not been connected to list. + */ + recovering = (reg->state == DM_RH_RECOVERING); + reg->state = DM_RH_NOSYNC; + BUG_ON(!list_empty(®->list)); + spin_unlock_irqrestore(&rh->region_lock, flags); + + bio_endio(bio, error); + if (recovering) + complete_resync_work(reg, 0); +} +// EXPORT_SYMBOL_GPL(dm_rh_mark_nosync); + +void dm_rh_update_states(struct dm_region_hash *rh, int errors_handled) +{ + struct dm_region *reg, *next; + + LIST_HEAD(clean); + LIST_HEAD(recovered); + LIST_HEAD(failed_recovered); + + /* + * Quickly grab the lists. + */ + write_lock_irq(&rh->hash_lock); + spin_lock(&rh->region_lock); + if (!list_empty(&rh->clean_regions)) { + list_splice_init(&rh->clean_regions, &clean); + + list_for_each_entry(reg, &clean, list) + list_del(®->hash_list); + } + + if (!list_empty(&rh->recovered_regions)) { + list_splice_init(&rh->recovered_regions, &recovered); + + list_for_each_entry(reg, &recovered, list) + list_del(®->hash_list); + } + + if (!list_empty(&rh->failed_recovered_regions)) { + list_splice_init(&rh->failed_recovered_regions, + &failed_recovered); + + list_for_each_entry(reg, &failed_recovered, list) + list_del(®->hash_list); + } + + spin_unlock(&rh->region_lock); + write_unlock_irq(&rh->hash_lock); + + /* + * All the regions on the recovered and clean lists have + * now been pulled out of the system, so no need to do + * any more locking. + */ + list_for_each_entry_safe(reg, next, &recovered, list) { + rh->log->type->clear_region(rh->log, reg->key); + complete_resync_work(reg, 1); + mempool_free(reg, rh->region_pool); + } + + list_for_each_entry_safe(reg, next, &failed_recovered, list) { + complete_resync_work(reg, errors_handled ? 0 : 1); + mempool_free(reg, rh->region_pool); + } + + list_for_each_entry_safe(reg, next, &clean, list) { + rh->log->type->clear_region(rh->log, reg->key); + mempool_free(reg, rh->region_pool); + } + + rh->log->type->flush(rh->log); +} +// EXPORT_SYMBOL_GPL(dm_rh_update_states); + +void dm_rh_inc(struct dm_region_hash *rh, region_t region) +{ + struct dm_region *reg; + + read_lock(&rh->hash_lock); + reg = __rh_find(rh, region); + + spin_lock_irq(&rh->region_lock); + atomic_inc(®->pending); + + if (reg->state == DM_RH_CLEAN) { + reg->state = DM_RH_DIRTY; + list_del_init(®->list); /* take off the clean list */ + spin_unlock_irq(&rh->region_lock); + + rh->log->type->mark_region(rh->log, reg->key); + } else + spin_unlock_irq(&rh->region_lock); + + + read_unlock(&rh->hash_lock); +} +// EXPORT_SYMBOL_GPL(dm_rh_inc); + +void dm_rh_inc_pending(struct dm_region_hash *rh, struct bio_list *bios) +{ + struct bio *bio; + + for (bio = bios->head; bio; bio = bio->bi_next) + dm_rh_inc(rh, dm_rh_bio_to_region(rh, bio)); +} +// EXPORT_SYMBOL_GPL(dm_rh_inc_pending); + +void dm_rh_dec(struct dm_region_hash *rh, region_t region) +{ + unsigned long flags; + struct dm_region *reg; + int should_wake = 0; + + read_lock(&rh->hash_lock); + reg = __rh_lookup(rh, region); + read_unlock(&rh->hash_lock); + + spin_lock_irqsave(&rh->region_lock, flags); + if (atomic_dec_and_test(®->pending)) { + /* + * There is no pending I/O for this region. + * We can move the region to corresponding list for next action. + * At this point, the region is not yet connected to any list. + * + * If the state is DM_RH_NOSYNC, the region should be kept off + * from clean list. + * The hash entry for DM_RH_NOSYNC will remain in memory + * until the region is recovered or the map is reloaded. + */ + + /* do nothing for DM_RH_NOSYNC */ + if (reg->state == DM_RH_RECOVERING) { + list_add_tail(®->list, &rh->quiesced_regions); + } else if (reg->state == DM_RH_DIRTY) { + reg->state = DM_RH_CLEAN; + list_add(®->list, &rh->clean_regions); + } + should_wake = 1; + } + spin_unlock_irqrestore(&rh->region_lock, flags); + + if (should_wake) + rh->wakeup_workers(rh->context); +} +// EXPORT_SYMBOL_GPL(dm_rh_dec); + +/* + * Starts quiescing a region in preparation for recovery. + */ +static int __rh_recovery_prepare(struct dm_region_hash *rh) +{ + int r; + region_t region; + struct dm_region *reg; + + /* + * Ask the dirty log what's next. + */ + r = rh->log->type->get_resync_work(rh->log, ®ion); + if (r <= 0) + return r; + + /* + * Get this region, and start it quiescing by setting the + * recovering flag. + */ + read_lock(&rh->hash_lock); + reg = __rh_find(rh, region); + read_unlock(&rh->hash_lock); + + spin_lock_irq(&rh->region_lock); + reg->state = DM_RH_RECOVERING; + + /* Already quiesced ? */ + if (atomic_read(®->pending)) + list_del_init(®->list); + else + list_move(®->list, &rh->quiesced_regions); + + spin_unlock_irq(&rh->region_lock); + + return 1; +} + +void dm_rh_recovery_prepare(struct dm_region_hash *rh) +{ + /* Extra reference to avoid race with dm_rh_stop_recovery */ + atomic_inc(&rh->recovery_in_flight); + + while (!down_trylock(&rh->recovery_count)) { + atomic_inc(&rh->recovery_in_flight); + if (__rh_recovery_prepare(rh) <= 0) { + atomic_dec(&rh->recovery_in_flight); + up(&rh->recovery_count); + break; + } + } + + /* Drop the extra reference */ + if (atomic_dec_and_test(&rh->recovery_in_flight)) + rh->wakeup_all_recovery_waiters(rh->context); +} +// EXPORT_SYMBOL_GPL(dm_rh_recovery_prepare); + +/* + * Returns any quiesced regions. + */ +struct dm_region *dm_rh_recovery_start(struct dm_region_hash *rh) +{ + struct dm_region *reg = NULL; + + spin_lock_irq(&rh->region_lock); + if (!list_empty(&rh->quiesced_regions)) { + reg = list_entry(rh->quiesced_regions.next, + struct dm_region, list); + list_del_init(®->list); /* remove from the quiesced list */ + } + spin_unlock_irq(&rh->region_lock); + + return reg; +} +// EXPORT_SYMBOL_GPL(dm_rh_recovery_start); + +void dm_rh_recovery_end(struct dm_region *reg, int success) +{ + struct dm_region_hash *rh = reg->rh; + + spin_lock_irq(&rh->region_lock); + if (success) + list_add(®->list, ®->rh->recovered_regions); + else { + reg->state = DM_RH_NOSYNC; + list_add(®->list, ®->rh->failed_recovered_regions); + } + spin_unlock_irq(&rh->region_lock); + + rh->wakeup_workers(rh->context); +} +// EXPORT_SYMBOL_GPL(dm_rh_recovery_end); + +/* Return recovery in flight count. */ +int dm_rh_recovery_in_flight(struct dm_region_hash *rh) +{ + return atomic_read(&rh->recovery_in_flight); +} +// EXPORT_SYMBOL_GPL(dm_rh_recovery_in_flight); + +int dm_rh_flush(struct dm_region_hash *rh) +{ + return rh->log->type->flush(rh->log); +} +// EXPORT_SYMBOL_GPL(dm_rh_flush); + +void dm_rh_delay(struct dm_region_hash *rh, struct bio *bio) +{ + struct dm_region *reg; + + read_lock(&rh->hash_lock); + reg = __rh_find(rh, dm_rh_bio_to_region(rh, bio)); + bio_list_add(®->delayed_bios, bio); + read_unlock(&rh->hash_lock); +} +// EXPORT_SYMBOL_GPL(dm_rh_delay); + +void dm_rh_delay_by_region(struct dm_region_hash *rh, + struct bio *bio, region_t region) +{ + struct dm_region *reg; + + /* FIXME: locking. */ + read_lock(&rh->hash_lock); + reg = __rh_find(rh, region); + bio_list_add(®->delayed_bios, bio); + read_unlock(&rh->hash_lock); +} +// EXPORT_SYMBOL_GPL(dm_rh_delay_by_region); + +void dm_rh_stop_recovery(struct dm_region_hash *rh) +{ + int i; + + /* wait for any recovering regions */ + for (i = 0; i < rh->max_recovery; i++) + down(&rh->recovery_count); +} +// EXPORT_SYMBOL_GPL(dm_rh_stop_recovery); + +void dm_rh_start_recovery(struct dm_region_hash *rh) +{ + int i; + + for (i = 0; i < rh->max_recovery; i++) + up(&rh->recovery_count); + + rh->wakeup_workers(rh->context); +} +// EXPORT_SYMBOL_GPL(dm_rh_start_recovery); + +MODULE_DESCRIPTION(DM_NAME " region hash"); +MODULE_AUTHOR("Joe Thornber/Heinz Mauelshagen "); +MODULE_LICENSE("GPL"); --- linux-2.6.35.orig/ubuntu/dm-raid4-5/dm-message.h +++ linux-2.6.35/ubuntu/dm-raid4-5/dm-message.h @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2007,2008 Red Hat, Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen + * + * General device-mapper message interface argument parser. + * + * This file is released under the GPL. + * + */ + +#ifndef DM_MESSAGE_H +#define DM_MESSAGE_H + +/* Factor out to dm.h. */ +/* Reference to array end. */ +#define ARRAY_END(a) ((a) + ARRAY_SIZE(a)) + +/* Message return bits. */ +enum dm_message_return { + dm_msg_ret_ambiguous, /* Action ambiguous. */ + dm_msg_ret_inval, /* Action invalid. */ + dm_msg_ret_undef, /* Action undefined. */ + + dm_msg_ret_option, /* Option error. */ + dm_msg_ret_arg, /* Argument error. */ + dm_msg_ret_argcount, /* Argument count error. */ +}; + +/* Message argument type conversions. */ +enum dm_message_argument_type { + dm_msg_base_t, /* Basename string. */ + dm_msg_str_t, /* String. */ + dm_msg_int_t, /* Signed int. */ + dm_msg_uint_t, /* Unsigned int. */ + dm_msg_uint64_t, /* Unsigned int 64. */ +}; + +/* A message option. */ +struct dm_message_option { + unsigned num_options; + char **options; + unsigned long *actions; +}; + +/* Message arguments and types. */ +struct dm_message_argument { + unsigned num_args; + unsigned long **ptr; + enum dm_message_argument_type types[]; +}; + +/* Client message. */ +struct dm_msg { + unsigned long action; /* Identified action. */ + unsigned long ret; /* Return bits. */ + unsigned num_specs; /* # of sepcifications listed. */ + struct dm_msg_spec *specs; /* Specification list. */ + struct dm_msg_spec *spec; /* Specification selected. */ +}; + +/* Secification of the message. */ +struct dm_msg_spec { + const char *cmd; /* Name of the command (i.e. 'bandwidth'). */ + unsigned long action; + struct dm_message_option *options; + struct dm_message_argument *args; + unsigned long parm; /* Parameter to pass through to callback. */ + /* Function to process for action. */ + int (*f) (struct dm_msg *msg, void *context); +}; + +/* Parameter access macros. */ +#define DM_MSG_PARM(msg) ((msg)->spec->parm) + +#define DM_MSG_STR_ARGS(msg, idx) ((char *) *(msg)->spec->args->ptr[idx]) +#define DM_MSG_INT_ARGS(msg, idx) ((int) *(msg)->spec->args->ptr[idx]) +#define DM_MSG_UINT_ARGS(msg, idx) ((unsigned) DM_MSG_INT_ARG(msg, idx)) +#define DM_MSG_UINT64_ARGS(msg, idx) ((uint64_t) *(msg)->spec->args->ptr[idx]) + +#define DM_MSG_STR_ARG(msg) DM_MSG_STR_ARGS(msg, 0) +#define DM_MSG_INT_ARG(msg) DM_MSG_INT_ARGS(msg, 0) +#define DM_MSG_UINT_ARG(msg) DM_MSG_UINT_ARGS(msg, 0) +#define DM_MSG_UINT64_ARG(msg) DM_MSG_UINT64_ARGS(msg, 0) + + +/* Parse a message and its options and optionally call a function back. */ +int dm_message_parse(const char *caller, struct dm_msg *msg, void *context, + int argc, char **argv); + +#endif --- linux-2.6.35.orig/ubuntu/dm-raid4-5/dm-raid4-5.c +++ linux-2.6.35/ubuntu/dm-raid4-5/dm-raid4-5.c @@ -0,0 +1,4546 @@ +/*[A[A + * Copyright (C) 2005-2009 Red Hat, Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen + * + * This file is released under the GPL. + * + * + * Linux 2.6 Device Mapper RAID4 and RAID5 target. + * + * Supports: + * o RAID4 with dedicated and selectable parity device + * o RAID5 with rotating parity (left+right, symmetric+asymmetric) + * o recovery of out of sync device for initial + * RAID set creation or after dead drive replacement + * o run time optimization of xor algorithm used to calculate parity + * + * + * Thanks to MD for: + * o the raid address calculation algorithm + * o the base of the biovec <-> page list copier. + * + * + * Uses region hash to keep track of how many writes are in flight to + * regions in order to use dirty log to keep state of regions to recover: + * + * o clean regions (those which are synchronized + * and don't have write io in flight) + * o dirty regions (those with write io in flight) + * + * + * On startup, any dirty regions are migrated to the + * 'nosync' state and are subject to recovery by the daemon. + * + * See raid_ctr() for table definition. + * + * FIXME: recovery bandwidth + */ + +static const char *version = "v0.2594b"; + +#include "dm.h" +#include "dm-memcache.h" +#include "dm-message.h" +#include "dm-raid45.h" + +#include +#include +#include + +#include +#include +#include +#include "dm-region-hash.h" + +#include + +/* + * Configurable parameters + */ + +/* Minimum/maximum and default # of selectable stripes. */ +#define STRIPES_MIN 8 +#define STRIPES_MAX 16384 +#define STRIPES_DEFAULT 80 + +/* Maximum and default chunk size in sectors if not set in constructor. */ +#define CHUNK_SIZE_MIN 8 +#define CHUNK_SIZE_MAX 16384 +#define CHUNK_SIZE_DEFAULT 64 + +/* Default io size in sectors if not set in constructor. */ +#define IO_SIZE_MIN CHUNK_SIZE_MIN +#define IO_SIZE_DEFAULT IO_SIZE_MIN + +/* Recover io size default in sectors. */ +#define RECOVER_IO_SIZE_MIN 64 +#define RECOVER_IO_SIZE_DEFAULT 256 + +/* Default, minimum and maximum percentage of recover io bandwidth. */ +#define BANDWIDTH_DEFAULT 10 +#define BANDWIDTH_MIN 1 +#define BANDWIDTH_MAX 100 + +/* # of parallel recovered regions */ +#define RECOVERY_STRIPES_MIN 1 +#define RECOVERY_STRIPES_MAX 64 +#define RECOVERY_STRIPES_DEFAULT RECOVERY_STRIPES_MIN +/* + * END Configurable parameters + */ + +#define TARGET "dm-raid45" +#define DAEMON "kraid45d" +#define DM_MSG_PREFIX TARGET + +#define SECTORS_PER_PAGE (PAGE_SIZE >> SECTOR_SHIFT) + +/* Amount/size for __xor(). */ +#define XOR_SIZE PAGE_SIZE + +/* Check value in range. */ +#define range_ok(i, min, max) (i >= min && i <= max) + +/* Check argument is power of 2. */ +#define POWER_OF_2(a) (!(a & (a - 1))) + +/* Structure access macros. */ +/* Derive raid_set from stripe_cache pointer. */ +#define RS(x) container_of(x, struct raid_set, sc) + +/* Page reference. */ +#define PAGE(stripe, p) ((stripe)->obj[p].pl->page) + +/* Stripe chunk reference. */ +#define CHUNK(stripe, p) ((stripe)->chunk + p) + +/* Bio list reference. */ +#define BL(stripe, p, rw) (stripe->chunk[p].bl + rw) +#define BL_CHUNK(chunk, rw) (chunk->bl + rw) + +/* Page list reference. */ +#define PL(stripe, p) (stripe->obj[p].pl) +/* END: structure access macros. */ + +/* Factor out to dm-bio-list.h */ +static inline void bio_list_push(struct bio_list *bl, struct bio *bio) +{ + bio->bi_next = bl->head; + bl->head = bio; + + if (!bl->tail) + bl->tail = bio; +} + +/* Factor out to dm.h */ +#define TI_ERR_RET(str, ret) \ + do { ti->error = str; return ret; } while (0); +#define TI_ERR(str) TI_ERR_RET(str, -EINVAL) + +/* Macro to define access IO flags access inline functions. */ +#define BITOPS(name, what, var, flag) \ +static inline int TestClear ## name ## what(struct var *v) \ +{ return test_and_clear_bit(flag, &v->io.flags); } \ +static inline int TestSet ## name ## what(struct var *v) \ +{ return test_and_set_bit(flag, &v->io.flags); } \ +static inline void Clear ## name ## what(struct var *v) \ +{ clear_bit(flag, &v->io.flags); } \ +static inline void Set ## name ## what(struct var *v) \ +{ set_bit(flag, &v->io.flags); } \ +static inline int name ## what(struct var *v) \ +{ return test_bit(flag, &v->io.flags); } + +/*----------------------------------------------------------------- + * Stripe cache + * + * Cache for all reads and writes to raid sets (operational or degraded) + * + * We need to run all data to and from a RAID set through this cache, + * because parity chunks need to get calculated from data chunks + * or, in the degraded/resynchronization case, missing chunks need + * to be reconstructed using the other chunks of the stripe. + *---------------------------------------------------------------*/ +/* A chunk within a stripe (holds bios hanging off). */ +/* IO status flags for chunks of a stripe. */ +enum chunk_flags { + CHUNK_DIRTY, /* Pages of chunk dirty; need writing. */ + CHUNK_ERROR, /* IO error on any chunk page. */ + CHUNK_IO, /* Allow/prohibit IO on chunk pages. */ + CHUNK_LOCKED, /* Chunk pages locked during IO. */ + CHUNK_MUST_IO, /* Chunk must io. */ + CHUNK_UNLOCK, /* Enforce chunk unlock. */ + CHUNK_UPTODATE, /* Chunk pages are uptodate. */ +}; + +#if READ != 0 || WRITE != 1 +#error dm-raid45: READ/WRITE != 0/1 used as index!!! +#endif + +enum bl_type { + WRITE_QUEUED = WRITE + 1, + WRITE_MERGED, + NR_BL_TYPES, /* Must be last one! */ +}; +struct stripe_chunk { + atomic_t cnt; /* Reference count. */ + struct stripe *stripe; /* Backpointer to stripe for endio(). */ + /* Bio lists for reads, writes, and writes merged. */ + struct bio_list bl[NR_BL_TYPES]; + struct { + unsigned long flags; /* IO status flags. */ + } io; +}; + +/* Define chunk bit operations. */ +BITOPS(Chunk, Dirty, stripe_chunk, CHUNK_DIRTY) +BITOPS(Chunk, Error, stripe_chunk, CHUNK_ERROR) +BITOPS(Chunk, Io, stripe_chunk, CHUNK_IO) +BITOPS(Chunk, Locked, stripe_chunk, CHUNK_LOCKED) +BITOPS(Chunk, MustIo, stripe_chunk, CHUNK_MUST_IO) +BITOPS(Chunk, Unlock, stripe_chunk, CHUNK_UNLOCK) +BITOPS(Chunk, Uptodate, stripe_chunk, CHUNK_UPTODATE) + +/* + * Stripe linked list indexes. Keep order, because the stripe + * and the stripe cache rely on the first 3! + */ +enum list_types { + LIST_FLUSH, /* Stripes to flush for io. */ + LIST_ENDIO, /* Stripes to endio. */ + LIST_LRU, /* Least recently used stripes. */ + SC_NR_LISTS, /* # of lists in stripe cache. */ + LIST_HASH = SC_NR_LISTS, /* Hashed stripes. */ + LIST_RECOVER = LIST_HASH, /* For recovery type stripes only. */ + STRIPE_NR_LISTS,/* To size array in struct stripe. */ +}; + +/* Adressing region recovery. */ +struct recover_addr { + struct dm_region *reg; /* Actual region to recover. */ + sector_t pos; /* Position within region to recover. */ + sector_t end; /* End of region to recover. */ +}; + +/* A stripe: the io object to handle all reads and writes to a RAID set. */ +struct stripe { + atomic_t cnt; /* Reference count. */ + struct stripe_cache *sc; /* Backpointer to stripe cache. */ + + /* + * 4 linked lists: + * o io list to flush io + * o endio list + * o LRU list to put stripes w/o reference count on + * o stripe cache hash + */ + struct list_head lists[STRIPE_NR_LISTS]; + + sector_t key; /* Hash key. */ + region_t region; /* Region stripe is mapped to. */ + + struct { + unsigned long flags; /* Stripe state flags (see below). */ + + /* + * Pending ios in flight: + * + * used to control move of stripe to endio list + */ + atomic_t pending; + + /* Sectors to read and write for multi page stripe sets. */ + unsigned size; + } io; + + /* Address region recovery. */ + struct recover_addr *recover; + + /* Lock on stripe (Future: for clustering). */ + void *lock; + + struct { + unsigned short parity; /* Parity chunk index. */ + short recover; /* Recovery chunk index. */ + } idx; + + /* + * This stripe's memory cache object (dm-mem-cache); + * i.e. the io chunk pages. + */ + struct dm_mem_cache_object *obj; + + /* Array of stripe sets (dynamically allocated). */ + struct stripe_chunk chunk[0]; +}; + +/* States stripes can be in (flags field). */ +enum stripe_states { + STRIPE_ERROR, /* io error on stripe. */ + STRIPE_MERGED, /* Writes got merged to be written. */ + STRIPE_RBW, /* Read-before-write stripe. */ + STRIPE_RECONSTRUCT, /* Reconstruct of a missing chunk required. */ + STRIPE_RECONSTRUCTED, /* Reconstructed of a missing chunk. */ + STRIPE_RECOVER, /* Stripe used for RAID set recovery. */ +}; + +/* Define stripe bit operations. */ +BITOPS(Stripe, Error, stripe, STRIPE_ERROR) +BITOPS(Stripe, Merged, stripe, STRIPE_MERGED) +BITOPS(Stripe, RBW, stripe, STRIPE_RBW) +BITOPS(Stripe, Reconstruct, stripe, STRIPE_RECONSTRUCT) +BITOPS(Stripe, Reconstructed, stripe, STRIPE_RECONSTRUCTED) +BITOPS(Stripe, Recover, stripe, STRIPE_RECOVER) + +/* A stripe hash. */ +struct stripe_hash { + struct list_head *hash; + unsigned buckets; + unsigned mask; + unsigned prime; + unsigned shift; +}; + +enum sc_lock_types { + LOCK_ENDIO, /* Protect endio list. */ + LOCK_LRU, /* Protect LRU list. */ + NR_LOCKS, /* To size array in struct stripe_cache. */ +}; + +/* A stripe cache. */ +struct stripe_cache { + /* Stripe hash. */ + struct stripe_hash hash; + + spinlock_t locks[NR_LOCKS]; /* Locks to protect lists. */ + + /* Stripes with io to flush, stripes to endio and LRU lists. */ + struct list_head lists[SC_NR_LISTS]; + + /* Slab cache to allocate stripes from. */ + struct { + struct kmem_cache *cache; /* Cache itself. */ + char name[32]; /* Unique name. */ + } kc; + + struct dm_io_client *dm_io_client; /* dm-io client resource context. */ + + /* dm-mem-cache client resource context. */ + struct dm_mem_cache_client *mem_cache_client; + + int stripes_parm; /* # stripes parameter from constructor. */ + atomic_t stripes; /* actual # of stripes in cache. */ + atomic_t stripes_to_set; /* # of stripes to resize cache to. */ + atomic_t stripes_last; /* last # of stripes in cache. */ + atomic_t active_stripes; /* actual # of active stripes in cache. */ + + /* REMOVEME: */ + atomic_t active_stripes_max; /* actual # of active stripes in cache. */ +}; + +/* Flag specs for raid_dev */ ; +enum raid_dev_flags { + DEV_FAILED, /* Device failed. */ + DEV_IO_QUEUED, /* Io got queued to device. */ +}; + +/* The raid device in a set. */ +struct raid_dev { + struct dm_dev *dev; + sector_t start; /* Offset to map to. */ + struct { /* Using struct to be able to BITOPS(). */ + unsigned long flags; /* raid_dev_flags. */ + } io; +}; + +BITOPS(Dev, Failed, raid_dev, DEV_FAILED) +BITOPS(Dev, IoQueued, raid_dev, DEV_IO_QUEUED) + +/* Flags spec for raid_set. */ +enum raid_set_flags { + RS_CHECK_OVERWRITE, /* Check for chunk overwrites. */ + RS_DEAD, /* RAID set inoperational. */ + RS_DEGRADED, /* Io errors on RAID device. */ + RS_DEVEL_STATS, /* REMOVEME: display status information. */ + RS_RECOVER, /* Do recovery. */ + RS_RECOVERY_BANDWIDTH, /* Allow recovery bandwidth (delayed bios). */ + RS_SC_BUSY, /* Stripe cache busy -> send an event. */ + RS_SUSPEND, /* Suspend RAID set. */ +}; + +/* REMOVEME: devel stats counters. */ +enum stats_types { + S_BIOS_READ, + S_BIOS_ADDED_READ, + S_BIOS_ENDIO_READ, + S_BIOS_WRITE, + S_BIOS_ADDED_WRITE, + S_BIOS_ENDIO_WRITE, + S_CAN_MERGE, + S_CANT_MERGE, + S_CONGESTED, + S_DM_IO_READ, + S_DM_IO_WRITE, + S_BANDWIDTH, + S_BARRIER, + S_BIO_COPY_PL_NEXT, + S_DEGRADED, + S_DELAYED_BIOS, + S_FLUSHS, + S_HITS_1ST, + S_IOS_POST, + S_INSCACHE, + S_MAX_LOOKUP, + S_CHUNK_LOCKED, + S_NO_BANDWIDTH, + S_NOT_CONGESTED, + S_NO_RW, + S_NOSYNC, + S_OVERWRITE, + S_PROHIBITCHUNKIO, + S_RECONSTRUCT_EI, + S_RECONSTRUCT_DEV, + S_RECONSTRUCT_SET, + S_RECONSTRUCTED, + S_REQUEUE, + S_STRIPE_ERROR, + S_SUM_DELAYED_BIOS, + S_XORS, + S_NR_STATS, /* # of stats counters. Must be last! */ +}; + +/* Status type -> string mappings. */ +struct stats_map { + const enum stats_types type; + const char *str; +}; + +static struct stats_map stats_map[] = { + { S_BIOS_READ, "r=" }, + { S_BIOS_ADDED_READ, "/" }, + { S_BIOS_ENDIO_READ, "/" }, + { S_BIOS_WRITE, " w=" }, + { S_BIOS_ADDED_WRITE, "/" }, + { S_BIOS_ENDIO_WRITE, "/" }, + { S_DM_IO_READ, " rc=" }, + { S_DM_IO_WRITE, " wc=" }, + { S_BANDWIDTH, "\nbw=" }, + { S_NO_BANDWIDTH, " no_bw=" }, + { S_BARRIER, "\nbarrier=" }, + { S_BIO_COPY_PL_NEXT, "\nbio_cp_next=" }, + { S_CAN_MERGE, "\nmerge=" }, + { S_CANT_MERGE, "/no_merge=" }, + { S_CHUNK_LOCKED, "\nchunk_locked=" }, + { S_CONGESTED, "\ncgst=" }, + { S_NOT_CONGESTED, "/not_cgst=" }, + { S_DEGRADED, "\ndegraded=" }, + { S_DELAYED_BIOS, "\ndel_bios=" }, + { S_SUM_DELAYED_BIOS, "/sum_del_bios=" }, + { S_FLUSHS, "\nflushs=" }, + { S_HITS_1ST, "\nhits_1st=" }, + { S_IOS_POST, " ios_post=" }, + { S_INSCACHE, " inscache=" }, + { S_MAX_LOOKUP, " maxlookup=" }, + { S_NO_RW, "\nno_rw=" }, + { S_NOSYNC, " nosync=" }, + { S_OVERWRITE, " ovr=" }, + { S_PROHIBITCHUNKIO, " prhbt_io=" }, + { S_RECONSTRUCT_EI, "\nrec_ei=" }, + { S_RECONSTRUCT_DEV, " rec_dev=" }, + { S_RECONSTRUCT_SET, " rec_set=" }, + { S_RECONSTRUCTED, " rec=" }, + { S_REQUEUE, " requeue=" }, + { S_STRIPE_ERROR, " stripe_err=" }, + { S_XORS, " xors=" }, +}; + +/* + * A RAID set. + */ +#define dm_rh_client dm_region_hash +enum count_type { IO_WORK = 0, IO_RECOVER, IO_NR_COUNT }; +typedef void (*xor_function_t)(unsigned count, unsigned long **data); +struct raid_set { + struct dm_target *ti; /* Target pointer. */ + + struct { + unsigned long flags; /* State flags. */ + struct mutex in_lock; /* Protects central input list below. */ + struct bio_list in; /* Pending ios (central input list). */ + struct bio_list work; /* ios work set. */ + wait_queue_head_t suspendq; /* suspend synchronization. */ + atomic_t in_process; /* counter of queued bios (suspendq). */ + atomic_t in_process_max;/* counter of queued bios max. */ + + /* io work. */ + struct workqueue_struct *wq; + struct delayed_work dws_do_raid; /* For main worker. */ + struct work_struct ws_do_table_event; /* For event worker. */ + } io; + + /* Stripe locking abstraction. */ + struct dm_raid45_locking_type *locking; + + struct stripe_cache sc; /* Stripe cache for this set. */ + + /* Xor optimization. */ + struct { + struct xor_func *f; + unsigned chunks; + unsigned speed; + } xor; + + /* Recovery parameters. */ + struct recover { + struct dm_dirty_log *dl; /* Dirty log. */ + struct dm_rh_client *rh; /* Region hash. */ + + struct dm_io_client *dm_io_client; /* recovery dm-io client. */ + /* dm-mem-cache client resource context for recovery stripes. */ + struct dm_mem_cache_client *mem_cache_client; + + struct list_head stripes; /* List of recovery stripes. */ + + region_t nr_regions; + region_t nr_regions_to_recover; + region_t nr_regions_recovered; + unsigned long start_jiffies; + unsigned long end_jiffies; + + unsigned bandwidth; /* Recovery bandwidth [%]. */ + unsigned bandwidth_work; /* Recovery bandwidth [factor]. */ + unsigned bandwidth_parm; /* " constructor parm. */ + unsigned io_size; /* recovery io size <= region size. */ + unsigned io_size_parm; /* recovery io size ctr parameter. */ + unsigned recovery; /* Recovery allowed/prohibited. */ + unsigned recovery_stripes; /* # of parallel recovery stripes. */ + + /* recovery io throttling. */ + atomic_t io_count[IO_NR_COUNT]; /* counter recover/regular io.*/ + unsigned long last_jiffies; + } recover; + + /* RAID set parameters. */ + struct { + struct raid_type *raid_type; /* RAID type (eg, RAID4). */ + unsigned raid_parms; /* # variable raid parameters. */ + + unsigned chunk_size; /* Sectors per chunk. */ + unsigned chunk_size_parm; + unsigned chunk_shift; /* rsector chunk size shift. */ + + unsigned io_size; /* Sectors per io. */ + unsigned io_size_parm; + unsigned io_mask; /* Mask for bio_copy_page_list(). */ + unsigned io_inv_mask; /* Mask for raid_address(). */ + + sector_t sectors_per_dev; /* Sectors per device. */ + + atomic_t failed_devs; /* Amount of devices failed. */ + + /* Index of device to initialize. */ + int dev_to_init; + int dev_to_init_parm; + + /* Raid devices dynamically allocated. */ + unsigned raid_devs; /* # of RAID devices below. */ + unsigned data_devs; /* # of RAID data devices. */ + + int ei; /* index of failed RAID device. */ + + /* Index of dedicated parity device (i.e. RAID4). */ + int pi; + int pi_parm; /* constructor parm for status output. */ + } set; + + /* REMOVEME: devel stats counters. */ + atomic_t stats[S_NR_STATS]; + + /* Dynamically allocated temporary pointers for xor(). */ + unsigned long **data; + + /* Dynamically allocated RAID devices. Alignment? */ + struct raid_dev dev[0]; +}; + +/* Define RAID set bit operations. */ +BITOPS(RS, Bandwidth, raid_set, RS_RECOVERY_BANDWIDTH) +BITOPS(RS, CheckOverwrite, raid_set, RS_CHECK_OVERWRITE) +BITOPS(RS, Dead, raid_set, RS_DEAD) +BITOPS(RS, Degraded, raid_set, RS_DEGRADED) +BITOPS(RS, DevelStats, raid_set, RS_DEVEL_STATS) +BITOPS(RS, Recover, raid_set, RS_RECOVER) +BITOPS(RS, ScBusy, raid_set, RS_SC_BUSY) +BITOPS(RS, Suspend, raid_set, RS_SUSPEND) +#undef BITOPS + +/*----------------------------------------------------------------- + * Raid-4/5 set structures. + *---------------------------------------------------------------*/ +/* RAID level definitions. */ +enum raid_level { + raid4, + raid5, +}; + +/* Symmetric/Asymmetric, Left/Right parity rotating algorithms. */ +enum raid_algorithm { + none, + left_asym, + right_asym, + left_sym, + right_sym, +}; + +struct raid_type { + const char *name; /* RAID algorithm. */ + const char *descr; /* Descriptor text for logging. */ + const unsigned parity_devs; /* # of parity devices. */ + const unsigned minimal_devs; /* minimal # of devices in set. */ + const enum raid_level level; /* RAID level. */ + const enum raid_algorithm algorithm; /* RAID algorithm. */ +}; + +/* Supported raid types and properties. */ +static struct raid_type raid_types[] = { + {"raid4", "RAID4 (dedicated parity disk)", 1, 3, raid4, none}, + {"raid5_la", "RAID5 (left asymmetric)", 1, 3, raid5, left_asym}, + {"raid5_ra", "RAID5 (right asymmetric)", 1, 3, raid5, right_asym}, + {"raid5_ls", "RAID5 (left symmetric)", 1, 3, raid5, left_sym}, + {"raid5_rs", "RAID5 (right symmetric)", 1, 3, raid5, right_sym}, +}; + +/* Address as calculated by raid_address(). */ +struct raid_address { + sector_t key; /* Hash key (address of stripe % chunk_size). */ + unsigned di, pi; /* Data and parity disks index. */ +}; + +/* REMOVEME: reset statistics counters. */ +static void stats_reset(struct raid_set *rs) +{ + unsigned s = S_NR_STATS; + + while (s--) + atomic_set(rs->stats + s, 0); +} + +/*---------------------------------------------------------------- + * RAID set management routines. + *--------------------------------------------------------------*/ +/* + * Begin small helper functions. + */ +/* No need to be called from region hash indirectly at dm_rh_dec(). */ +static void wake_dummy(void *context) {} + +/* Return # of io reference. */ +static int io_ref(struct raid_set *rs) +{ + return atomic_read(&rs->io.in_process); +} + +/* Get an io reference. */ +static void io_get(struct raid_set *rs) +{ + int p = atomic_inc_return(&rs->io.in_process); + + if (p > atomic_read(&rs->io.in_process_max)) + atomic_set(&rs->io.in_process_max, p); /* REMOVEME: max. */ +} + +/* Put the io reference and conditionally wake io waiters. */ +static void io_put(struct raid_set *rs) +{ + /* Intel: rebuild data corrupter? */ + if (atomic_dec_and_test(&rs->io.in_process)) + wake_up(&rs->io.suspendq); + else + BUG_ON(io_ref(rs) < 0); +} + +/* Wait until all io has been processed. */ +static void wait_ios(struct raid_set *rs) +{ + wait_event(rs->io.suspendq, !io_ref(rs)); +} + +/* Queue (optionally delayed) io work. */ +static void wake_do_raid_delayed(struct raid_set *rs, unsigned long delay) +{ + queue_delayed_work(rs->io.wq, &rs->io.dws_do_raid, delay); +} + +/* Queue io work immediately (called from region hash too). */ +static void wake_do_raid(void *context) +{ + struct raid_set *rs = context; + + queue_work(rs->io.wq, &rs->io.dws_do_raid.work); +} + +/* Calculate device sector offset. */ +static sector_t _sector(struct raid_set *rs, struct bio *bio) +{ + sector_t sector = bio->bi_sector; + + sector_div(sector, rs->set.data_devs); + return sector; +} + +/* Return # of active stripes in stripe cache. */ +static int sc_active(struct stripe_cache *sc) +{ + return atomic_read(&sc->active_stripes); +} + +/* Stripe cache busy indicator. */ +static int sc_busy(struct raid_set *rs) +{ + return sc_active(&rs->sc) > + atomic_read(&rs->sc.stripes) - (STRIPES_MIN / 2); +} + +/* Set chunks states. */ +enum chunk_dirty_type { CLEAN, DIRTY, ERROR }; +static void chunk_set(struct stripe_chunk *chunk, enum chunk_dirty_type type) +{ + switch (type) { + case CLEAN: + ClearChunkDirty(chunk); + break; + case DIRTY: + SetChunkDirty(chunk); + break; + case ERROR: + SetChunkError(chunk); + SetStripeError(chunk->stripe); + return; + default: + BUG(); + } + + SetChunkUptodate(chunk); + SetChunkIo(chunk); + ClearChunkError(chunk); +} + +/* Return region state for a sector. */ +static int region_state(struct raid_set *rs, sector_t sector, + enum dm_rh_region_states state) +{ + struct dm_rh_client *rh = rs->recover.rh; + region_t region = dm_rh_sector_to_region(rh, sector); + + return !!(dm_rh_get_state(rh, region, 1) & state); +} + +/* + * Return true in case a chunk should be read/written + * + * Conditions to read/write: + * o chunk not uptodate + * o chunk dirty + * + * Conditios to avoid io: + * o io already ongoing on chunk + * o io explitely prohibited + */ +static int chunk_io(struct stripe_chunk *chunk) +{ + /* 2nd run optimization (flag set below on first run). */ + if (TestClearChunkMustIo(chunk)) + return 1; + + /* Avoid io if prohibited or a locked chunk. */ + if (!ChunkIo(chunk) || ChunkLocked(chunk)) + return 0; + + if (!ChunkUptodate(chunk) || ChunkDirty(chunk)) { + SetChunkMustIo(chunk); /* 2nd run optimization. */ + return 1; + } + + return 0; +} + +/* Call a function on each chunk needing io unless device failed. */ +static unsigned for_each_io_dev(struct stripe *stripe, + void (*f_io)(struct stripe *stripe, unsigned p)) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned p, r = 0; + + for (p = 0; p < rs->set.raid_devs; p++) { + if (chunk_io(CHUNK(stripe, p)) && !DevFailed(rs->dev + p)) { + f_io(stripe, p); + r++; + } + } + + return r; +} + +/* + * Index of device to calculate parity on. + * + * Either the parity device index *or* the selected + * device to init after a spare replacement. + */ +static int dev_for_parity(struct stripe *stripe, int *sync) +{ + struct raid_set *rs = RS(stripe->sc); + int r = region_state(rs, stripe->key, DM_RH_NOSYNC | DM_RH_RECOVERING); + + *sync = !r; + + /* Reconstruct a particular device ?. */ + if (r && rs->set.dev_to_init > -1) + return rs->set.dev_to_init; + else if (rs->set.raid_type->level == raid4) + return rs->set.pi; + else if (!StripeRecover(stripe)) + return stripe->idx.parity; + else + return -1; +} + +/* RAID set congested function. */ +static int rs_congested(void *congested_data, int bdi_bits) +{ + int r; + unsigned p; + struct raid_set *rs = congested_data; + + if (sc_busy(rs) || RSSuspend(rs)) + r = 1; + else for (r = 0, p = rs->set.raid_devs; !r && p--; ) { + /* If any of our component devices are overloaded. */ + struct request_queue *q = bdev_get_queue(rs->dev[p].dev->bdev); + + r |= bdi_congested(&q->backing_dev_info, bdi_bits); + } + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + (r ? S_CONGESTED : S_NOT_CONGESTED)); + return r; +} + +/* RAID device degrade check. */ +static void rs_check_degrade_dev(struct raid_set *rs, + struct stripe *stripe, unsigned p) +{ + if (TestSetDevFailed(rs->dev + p)) + return; + + /* Through an event in case of member device errors. */ + if (atomic_inc_return(&rs->set.failed_devs) > + rs->set.raid_type->parity_devs && + !TestSetRSDead(rs)) { + /* Display RAID set dead message once. */ + unsigned p; + char buf[BDEVNAME_SIZE]; + + DMERR("FATAL: too many devices failed -> RAID set broken"); + for (p = 0; p < rs->set.raid_devs; p++) { + if (DevFailed(rs->dev + p)) + DMERR("device /dev/%s failed", + bdevname(rs->dev[p].dev->bdev, buf)); + } + } + + /* Only log the first member error. */ + if (!TestSetRSDegraded(rs)) { + char buf[BDEVNAME_SIZE]; + + /* Store index for recovery. */ + rs->set.ei = p; + DMERR("CRITICAL: %sio error on device /dev/%s " + "in region=%llu; DEGRADING RAID set\n", + stripe ? "" : "FAKED ", + bdevname(rs->dev[p].dev->bdev, buf), + (unsigned long long) (stripe ? stripe->key : 0)); + DMERR("further device error messages suppressed"); + } + + schedule_work(&rs->io.ws_do_table_event); +} + +/* RAID set degrade check. */ +static void rs_check_degrade(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned p = rs->set.raid_devs; + + while (p--) { + if (ChunkError(CHUNK(stripe, p))) + rs_check_degrade_dev(rs, stripe, p); + } +} + +/* Lookup a RAID device by name or by major:minor number. */ +static int raid_dev_lookup(struct raid_set *rs, struct raid_dev *dev_lookup) +{ + unsigned p; + struct raid_dev *dev; + + /* + * Must be an incremental loop, because the device array + * can have empty slots still on calls from raid_ctr() + */ + for (dev = rs->dev, p = 0; + dev->dev && p < rs->set.raid_devs; + dev++, p++) { + if (dev_lookup->dev->bdev->bd_dev == dev->dev->bdev->bd_dev) + return p; + } + + return -ENODEV; +} +/* + * End small helper functions. + */ + +/* + * Stripe hash functions + */ +/* Initialize/destroy stripe hash. */ +static int hash_init(struct stripe_hash *hash, unsigned stripes) +{ + unsigned buckets = 2, max_buckets = stripes >> 1; + static unsigned hash_primes[] = { + /* Table of primes for hash_fn/table size optimization. */ + 1, 2, 3, 7, 13, 27, 53, 97, 193, 389, 769, + 1543, 3079, 6151, 12289, 24593, 49157, 98317, + }; + + /* Calculate number of buckets (2^^n <= stripes / 2). */ + while (buckets < max_buckets) + buckets <<= 1; + + /* Allocate stripe hash buckets. */ + hash->hash = vmalloc(buckets * sizeof(*hash->hash)); + if (!hash->hash) + return -ENOMEM; + + hash->buckets = buckets; + hash->mask = buckets - 1; + hash->shift = ffs(buckets); + if (hash->shift > ARRAY_SIZE(hash_primes)) + hash->shift = ARRAY_SIZE(hash_primes) - 1; + + BUG_ON(hash->shift < 2); + hash->prime = hash_primes[hash->shift]; + + /* Initialize buckets. */ + while (buckets--) + INIT_LIST_HEAD(hash->hash + buckets); + return 0; +} + +static void hash_exit(struct stripe_hash *hash) +{ + if (hash->hash) { + vfree(hash->hash); + hash->hash = NULL; + } +} + +static unsigned hash_fn(struct stripe_hash *hash, sector_t key) +{ + return (unsigned) (((key * hash->prime) >> hash->shift) & hash->mask); +} + +static struct list_head *hash_bucket(struct stripe_hash *hash, sector_t key) +{ + return hash->hash + hash_fn(hash, key); +} + +/* Insert an entry into a hash. */ +static void stripe_insert(struct stripe_hash *hash, struct stripe *stripe) +{ + list_add(stripe->lists + LIST_HASH, hash_bucket(hash, stripe->key)); +} + +/* Lookup an entry in the stripe hash. */ +static struct stripe *stripe_lookup(struct stripe_cache *sc, sector_t key) +{ + unsigned look = 0; + struct stripe *stripe; + struct list_head *bucket = hash_bucket(&sc->hash, key); + + list_for_each_entry(stripe, bucket, lists[LIST_HASH]) { + look++; + + if (stripe->key == key) { + /* REMOVEME: statisics. */ + if (look > atomic_read(RS(sc)->stats + S_MAX_LOOKUP)) + atomic_set(RS(sc)->stats + S_MAX_LOOKUP, look); + return stripe; + } + } + + return NULL; +} + +/* Resize the stripe cache hash on size changes. */ +static int sc_hash_resize(struct stripe_cache *sc) +{ + /* Resize indicated ? */ + if (atomic_read(&sc->stripes) != atomic_read(&sc->stripes_last)) { + int r; + struct stripe_hash hash; + + r = hash_init(&hash, atomic_read(&sc->stripes)); + if (r) + return r; + + if (sc->hash.hash) { + unsigned b = sc->hash.buckets; + struct list_head *pos, *tmp; + + /* Walk old buckets and insert into new. */ + while (b--) { + list_for_each_safe(pos, tmp, sc->hash.hash + b) + stripe_insert(&hash, + list_entry(pos, struct stripe, + lists[LIST_HASH])); + } + + } + + hash_exit(&sc->hash); + memcpy(&sc->hash, &hash, sizeof(sc->hash)); + atomic_set(&sc->stripes_last, atomic_read(&sc->stripes)); + } + + return 0; +} +/* End hash stripe hash function. */ + +/* List add, delete, push and pop functions. */ +/* Add stripe to flush list. */ +#define DEL_LIST(lh) \ + if (!list_empty(lh)) \ + list_del_init(lh); + +/* Delete stripe from hash. */ +static void stripe_hash_del(struct stripe *stripe) +{ + DEL_LIST(stripe->lists + LIST_HASH); +} + +/* Return stripe reference count. */ +static inline int stripe_ref(struct stripe *stripe) +{ + return atomic_read(&stripe->cnt); +} + +static void stripe_flush_add(struct stripe *stripe) +{ + struct stripe_cache *sc = stripe->sc; + struct list_head *lh = stripe->lists + LIST_FLUSH; + + if (!StripeReconstruct(stripe) && list_empty(lh)) + list_add_tail(lh, sc->lists + LIST_FLUSH); +} + +/* + * Add stripe to LRU (inactive) list. + * + * Need lock, because of concurrent access from message interface. + */ +static void stripe_lru_add(struct stripe *stripe) +{ + if (!StripeRecover(stripe)) { + unsigned long flags; + struct list_head *lh = stripe->lists + LIST_LRU; + spinlock_t *lock = stripe->sc->locks + LOCK_LRU; + + spin_lock_irqsave(lock, flags); + if (list_empty(lh)) + list_add_tail(lh, stripe->sc->lists + LIST_LRU); + spin_unlock_irqrestore(lock, flags); + } +} + +#define POP_LIST(list) \ + do { \ + if (list_empty(sc->lists + (list))) \ + stripe = NULL; \ + else { \ + stripe = list_first_entry(sc->lists + (list), \ + struct stripe, \ + lists[(list)]); \ + list_del_init(stripe->lists + (list)); \ + } \ + } while (0); + +/* Pop an available stripe off the LRU list. */ +static struct stripe *stripe_lru_pop(struct stripe_cache *sc) +{ + struct stripe *stripe; + spinlock_t *lock = sc->locks + LOCK_LRU; + + spin_lock_irq(lock); + POP_LIST(LIST_LRU); + spin_unlock_irq(lock); + + return stripe; +} + +/* Pop an available stripe off the io list. */ +static struct stripe *stripe_io_pop(struct stripe_cache *sc) +{ + struct stripe *stripe; + + POP_LIST(LIST_FLUSH); + return stripe; +} + +/* Push a stripe safely onto the endio list to be handled by do_endios(). */ +static void stripe_endio_push(struct stripe *stripe) +{ + unsigned long flags; + struct stripe_cache *sc = stripe->sc; + struct list_head *stripe_list = stripe->lists + LIST_ENDIO, + *sc_list = sc->lists + LIST_ENDIO; + spinlock_t *lock = sc->locks + LOCK_ENDIO; + + /* This runs in parallel with do_endios(). */ + spin_lock_irqsave(lock, flags); + if (list_empty(stripe_list)) + list_add_tail(stripe_list, sc_list); + spin_unlock_irqrestore(lock, flags); + + wake_do_raid(RS(sc)); /* Wake myself. */ +} + +/* Pop a stripe off safely off the endio list. */ +static struct stripe *stripe_endio_pop(struct stripe_cache *sc) +{ + struct stripe *stripe; + spinlock_t *lock = sc->locks + LOCK_ENDIO; + + /* This runs in parallel with endio(). */ + spin_lock_irq(lock); + POP_LIST(LIST_ENDIO) + spin_unlock_irq(lock); + return stripe; +} +#undef POP_LIST + +/* + * Stripe cache locking functions + */ +/* Dummy lock function for single host RAID4+5. */ +static void *no_lock(sector_t key, enum dm_lock_type type) +{ + return &no_lock; +} + +/* Dummy unlock function for single host RAID4+5. */ +static void no_unlock(void *lock_handle) +{ +} + +/* No locking (for single host RAID 4+5). */ +static struct dm_raid45_locking_type locking_none = { + .lock = no_lock, + .unlock = no_unlock, +}; + +/* Lock a stripe (for clustering). */ +static int +stripe_lock(struct stripe *stripe, int rw, sector_t key) +{ + stripe->lock = RS(stripe->sc)->locking->lock(key, rw == READ ? DM_RAID45_SHARED : DM_RAID45_EX); + return stripe->lock ? 0 : -EPERM; +} + +/* Unlock a stripe (for clustering). */ +static void stripe_unlock(struct stripe *stripe) +{ + RS(stripe->sc)->locking->unlock(stripe->lock); + stripe->lock = NULL; +} + +/* Test io pending on stripe. */ +static int stripe_io_ref(struct stripe *stripe) +{ + return atomic_read(&stripe->io.pending); +} + +static void stripe_io_get(struct stripe *stripe) +{ + if (atomic_inc_return(&stripe->io.pending) == 1) + /* REMOVEME: statistics */ + atomic_inc(&stripe->sc->active_stripes); + else + BUG_ON(stripe_io_ref(stripe) < 0); +} + +static void stripe_io_put(struct stripe *stripe) +{ + if (atomic_dec_and_test(&stripe->io.pending)) { + if (unlikely(StripeRecover(stripe))) + /* Don't put recovery stripe on endio list. */ + wake_do_raid(RS(stripe->sc)); + else + /* Add regular stripe to endio list and wake daemon. */ + stripe_endio_push(stripe); + + /* REMOVEME: statistics */ + atomic_dec(&stripe->sc->active_stripes); + } else + BUG_ON(stripe_io_ref(stripe) < 0); +} + +/* Take stripe reference out. */ +static int stripe_get(struct stripe *stripe) +{ + int r; + struct list_head *lh = stripe->lists + LIST_LRU; + spinlock_t *lock = stripe->sc->locks + LOCK_LRU; + + /* Delete stripe from LRU (inactive) list if on. */ + spin_lock_irq(lock); + DEL_LIST(lh); + spin_unlock_irq(lock); + + BUG_ON(stripe_ref(stripe) < 0); + + /* Lock stripe on first reference */ + r = (atomic_inc_return(&stripe->cnt) == 1) ? + stripe_lock(stripe, WRITE, stripe->key) : 0; + + return r; +} +#undef DEL_LIST + +/* Return references on a chunk. */ +static int chunk_ref(struct stripe_chunk *chunk) +{ + return atomic_read(&chunk->cnt); +} + +/* Take out reference on a chunk. */ +static int chunk_get(struct stripe_chunk *chunk) +{ + return atomic_inc_return(&chunk->cnt); +} + +/* Drop reference on a chunk. */ +static void chunk_put(struct stripe_chunk *chunk) +{ + BUG_ON(atomic_dec_return(&chunk->cnt) < 0); +} + +/* + * Drop reference on a stripe. + * + * Move it to list of LRU stripes if zero. + */ +static void stripe_put(struct stripe *stripe) +{ + if (atomic_dec_and_test(&stripe->cnt)) { + BUG_ON(stripe_io_ref(stripe)); + stripe_unlock(stripe); + } else + BUG_ON(stripe_ref(stripe) < 0); +} + +/* Helper needed by for_each_io_dev(). */ +static void stripe_get_references(struct stripe *stripe, unsigned p) +{ + + /* + * Another one to reference the stripe in + * order to protect vs. LRU list moves. + */ + io_get(RS(stripe->sc)); /* Global io references. */ + stripe_get(stripe); + stripe_io_get(stripe); /* One for each chunk io. */ +} + +/* Helper for endio() to put all take references. */ +static void stripe_put_references(struct stripe *stripe) +{ + stripe_io_put(stripe); /* One for each chunk io. */ + stripe_put(stripe); + io_put(RS(stripe->sc)); +} + +/* + * Stripe cache functions. + */ +/* + * Invalidate all chunks (i.e. their pages) of a stripe. + * + * I only keep state for the whole chunk. + */ +static inline void stripe_chunk_invalidate(struct stripe_chunk *chunk) +{ + chunk->io.flags = 0; +} + +static void +stripe_chunks_invalidate(struct stripe *stripe) +{ + unsigned p = RS(stripe->sc)->set.raid_devs; + + while (p--) + stripe_chunk_invalidate(CHUNK(stripe, p)); +} + +/* Prepare stripe for (re)use. */ +static void stripe_invalidate(struct stripe *stripe) +{ + stripe->io.flags = 0; + stripe->idx.parity = stripe->idx.recover = -1; + stripe_chunks_invalidate(stripe); +} + +/* + * Allow io on all chunks of a stripe. + * If not set, IO will not occur; i.e. it's prohibited. + * + * Actual IO submission for allowed chunks depends + * on their !uptodate or dirty state. + */ +static void stripe_allow_io(struct stripe *stripe) +{ + unsigned p = RS(stripe->sc)->set.raid_devs; + + while (p--) + SetChunkIo(CHUNK(stripe, p)); +} + +/* Initialize a stripe. */ +static void stripe_init(struct stripe_cache *sc, struct stripe *stripe) +{ + unsigned i, p = RS(sc)->set.raid_devs; + + /* Work all io chunks. */ + while (p--) { + struct stripe_chunk *chunk = CHUNK(stripe, p); + + atomic_set(&chunk->cnt, 0); + chunk->stripe = stripe; + i = ARRAY_SIZE(chunk->bl); + while (i--) + bio_list_init(chunk->bl + i); + } + + stripe->sc = sc; + + + i = ARRAY_SIZE(stripe->lists); + while (i--) + INIT_LIST_HEAD(stripe->lists + i); + + stripe->io.size = RS(sc)->set.io_size; + atomic_set(&stripe->cnt, 0); + atomic_set(&stripe->io.pending, 0); + stripe_invalidate(stripe); +} + +/* Number of pages per chunk. */ +static inline unsigned chunk_pages(unsigned sectors) +{ + return dm_div_up(sectors, SECTORS_PER_PAGE); +} + +/* Number of pages per stripe. */ +static inline unsigned stripe_pages(struct raid_set *rs, unsigned io_size) +{ + return chunk_pages(io_size) * rs->set.raid_devs; +} + +/* Initialize part of page_list (recovery). */ +static void stripe_zero_pl_part(struct stripe *stripe, int p, + unsigned start, unsigned count) +{ + unsigned o = start / SECTORS_PER_PAGE, pages = chunk_pages(count); + /* Get offset into the page_list. */ + struct page_list *pl = pl_elem(PL(stripe, p), o); + + BUG_ON(!pl); + while (pl && pages--) { + BUG_ON(!pl->page); + memset(page_address(pl->page), 0, PAGE_SIZE); + pl = pl->next; + } +} + +/* Initialize parity chunk of stripe. */ +static void stripe_zero_chunk(struct stripe *stripe, int p) +{ + if (p > -1) + stripe_zero_pl_part(stripe, p, 0, stripe->io.size); +} + +/* Return dynamic stripe structure size. */ +static size_t stripe_size(struct raid_set *rs) +{ + return sizeof(struct stripe) + + rs->set.raid_devs * sizeof(struct stripe_chunk); +} + +/* Allocate a stripe and its memory object. */ +/* XXX adjust to cope with stripe cache and recovery stripe caches. */ +enum grow { SC_GROW, SC_KEEP }; +static struct stripe *stripe_alloc(struct stripe_cache *sc, + struct dm_mem_cache_client *mc, + enum grow grow) +{ + int r; + struct stripe *stripe; + + stripe = kmem_cache_zalloc(sc->kc.cache, GFP_KERNEL); + if (stripe) { + /* Grow the dm-mem-cache by one object. */ + if (grow == SC_GROW) { + r = dm_mem_cache_grow(mc, 1); + if (r) + goto err_free; + } + + stripe->obj = dm_mem_cache_alloc(mc); + if (!stripe->obj) + goto err_shrink; + + stripe_init(sc, stripe); + } + + return stripe; + +err_shrink: + if (grow == SC_GROW) + dm_mem_cache_shrink(mc, 1); +err_free: + kmem_cache_free(sc->kc.cache, stripe); + return NULL; +} + +/* + * Free a stripes memory object, shrink the + * memory cache and free the stripe itself. + */ +static void stripe_free(struct stripe *stripe, struct dm_mem_cache_client *mc) +{ + dm_mem_cache_free(mc, stripe->obj); + dm_mem_cache_shrink(mc, 1); + kmem_cache_free(stripe->sc->kc.cache, stripe); +} + +/* Free the recovery stripe. */ +static void stripe_recover_free(struct raid_set *rs) +{ + struct recover *rec = &rs->recover; + struct dm_mem_cache_client *mc; + + mc = rec->mem_cache_client; + rec->mem_cache_client = NULL; + if (mc) { + struct stripe *stripe; + + while (!list_empty(&rec->stripes)) { + stripe = list_first_entry(&rec->stripes, struct stripe, + lists[LIST_RECOVER]); + list_del(stripe->lists + LIST_RECOVER); + kfree(stripe->recover); + stripe_free(stripe, mc); + } + + dm_mem_cache_client_destroy(mc); + dm_io_client_destroy(rec->dm_io_client); + rec->dm_io_client = NULL; + } +} + +/* Grow stripe cache. */ +static int sc_grow(struct stripe_cache *sc, unsigned stripes, enum grow grow) +{ + int r = 0; + + /* Try to allocate this many (additional) stripes. */ + while (stripes--) { + struct stripe *stripe = + stripe_alloc(sc, sc->mem_cache_client, grow); + + if (likely(stripe)) { + stripe_lru_add(stripe); + atomic_inc(&sc->stripes); + } else { + r = -ENOMEM; + break; + } + } + + return r ? r : sc_hash_resize(sc); +} + +/* Shrink stripe cache. */ +static int sc_shrink(struct stripe_cache *sc, unsigned stripes) +{ + int r = 0; + + /* Try to get unused stripe from LRU list. */ + while (stripes--) { + struct stripe *stripe; + + stripe = stripe_lru_pop(sc); + if (stripe) { + /* An LRU stripe may never have ios pending! */ + BUG_ON(stripe_io_ref(stripe)); + BUG_ON(stripe_ref(stripe)); + atomic_dec(&sc->stripes); + /* Remove from hash if on before deletion. */ + stripe_hash_del(stripe); + stripe_free(stripe, sc->mem_cache_client); + } else { + r = -ENOENT; + break; + } + } + + /* Check if stats are still sane. */ + if (atomic_read(&sc->active_stripes_max) > + atomic_read(&sc->stripes)) + atomic_set(&sc->active_stripes_max, 0); + + if (r) + return r; + + return atomic_read(&sc->stripes) ? sc_hash_resize(sc) : 0; +} + +/* Create stripe cache and recovery. */ +static int sc_init(struct raid_set *rs, unsigned stripes) +{ + unsigned i, r, rstripes; + struct stripe_cache *sc = &rs->sc; + struct stripe *stripe; + struct recover *rec = &rs->recover; + struct mapped_device *md; + struct gendisk *disk; + + /* Initialize lists and locks. */ + i = ARRAY_SIZE(sc->lists); + while (i--) + INIT_LIST_HEAD(sc->lists + i); + + INIT_LIST_HEAD(&rec->stripes); + + /* Initialize endio and LRU list locks. */ + i = NR_LOCKS; + while (i--) + spin_lock_init(sc->locks + i); + + /* Initialize atomic variables. */ + atomic_set(&sc->stripes, 0); + atomic_set(&sc->stripes_to_set, 0); + atomic_set(&sc->active_stripes, 0); + atomic_set(&sc->active_stripes_max, 0); /* REMOVEME: statistics. */ + + /* + * We need a runtime unique # to suffix the kmem cache name + * because we'll have one for each active RAID set. + */ + md = dm_table_get_md(rs->ti->table); + disk = dm_disk(md); + sprintf(sc->kc.name, "%s-%d", TARGET, disk->first_minor); + dm_put(md); + sc->kc.cache = kmem_cache_create(sc->kc.name, stripe_size(rs), + 0, 0, NULL); + if (!sc->kc.cache) + return -ENOMEM; + + /* Create memory cache client context for RAID stripe cache. */ + sc->mem_cache_client = + dm_mem_cache_client_create(stripes, rs->set.raid_devs, + chunk_pages(rs->set.io_size)); + if (IS_ERR(sc->mem_cache_client)) + return PTR_ERR(sc->mem_cache_client); + + /* Create memory cache client context for RAID recovery stripe(s). */ + rstripes = rec->recovery_stripes; + rec->mem_cache_client = + dm_mem_cache_client_create(rstripes, rs->set.raid_devs, + chunk_pages(rec->io_size)); + if (IS_ERR(rec->mem_cache_client)) + return PTR_ERR(rec->mem_cache_client); + + /* Create dm-io client context for IO stripes. */ + sc->dm_io_client = + dm_io_client_create((stripes > 32 ? 32 : stripes) * + rs->set.raid_devs * + chunk_pages(rs->set.io_size)); + if (IS_ERR(sc->dm_io_client)) + return PTR_ERR(sc->dm_io_client); + + /* FIXME: intermingeled with stripe cache initialization. */ + /* Create dm-io client context for recovery stripes. */ + rec->dm_io_client = + dm_io_client_create(rstripes * rs->set.raid_devs * + chunk_pages(rec->io_size)); + if (IS_ERR(rec->dm_io_client)) + return PTR_ERR(rec->dm_io_client); + + /* Allocate stripes for set recovery. */ + while (rstripes--) { + stripe = stripe_alloc(sc, rec->mem_cache_client, SC_KEEP); + if (!stripe) + return -ENOMEM; + + stripe->recover = kzalloc(sizeof(*stripe->recover), GFP_KERNEL); + if (!stripe->recover) { + stripe_free(stripe, rec->mem_cache_client); + return -ENOMEM; + } + + SetStripeRecover(stripe); + stripe->io.size = rec->io_size; + list_add_tail(stripe->lists + LIST_RECOVER, &rec->stripes); + /* Don't add recovery stripes to LRU list! */ + } + + /* + * Allocate the stripe objetcs from the + * cache and add them to the LRU list. + */ + r = sc_grow(sc, stripes, SC_KEEP); + if (!r) + atomic_set(&sc->stripes_last, stripes); + + return r; +} + +/* Destroy the stripe cache. */ +static void sc_exit(struct stripe_cache *sc) +{ + struct raid_set *rs = RS(sc); + + if (sc->kc.cache) { + stripe_recover_free(rs); + BUG_ON(sc_shrink(sc, atomic_read(&sc->stripes))); + kmem_cache_destroy(sc->kc.cache); + sc->kc.cache = NULL; + + if (sc->mem_cache_client && !IS_ERR(sc->mem_cache_client)) + dm_mem_cache_client_destroy(sc->mem_cache_client); + + if (sc->dm_io_client && !IS_ERR(sc->dm_io_client)) + dm_io_client_destroy(sc->dm_io_client); + + hash_exit(&sc->hash); + } +} + +/* + * Calculate RAID address + * + * Delivers tuple with the index of the data disk holding the chunk + * in the set, the parity disks index and the start of the stripe + * within the address space of the set (used as the stripe cache hash key). + */ +/* thx MD. */ +static struct raid_address *raid_address(struct raid_set *rs, sector_t sector, + struct raid_address *addr) +{ + sector_t stripe, tmp; + + /* + * chunk_number = sector / chunk_size + * stripe_number = chunk_number / data_devs + * di = stripe % data_devs; + */ + stripe = sector >> rs->set.chunk_shift; + addr->di = sector_div(stripe, rs->set.data_devs); + + switch (rs->set.raid_type->level) { + case raid4: + addr->pi = rs->set.pi; + goto check_shift_di; + case raid5: + tmp = stripe; + addr->pi = sector_div(tmp, rs->set.raid_devs); + + switch (rs->set.raid_type->algorithm) { + case left_asym: /* Left asymmetric. */ + addr->pi = rs->set.data_devs - addr->pi; + case right_asym: /* Right asymmetric. */ +check_shift_di: + if (addr->di >= addr->pi) + addr->di++; + break; + case left_sym: /* Left symmetric. */ + addr->pi = rs->set.data_devs - addr->pi; + case right_sym: /* Right symmetric. */ + addr->di = (addr->pi + addr->di + 1) % + rs->set.raid_devs; + break; + case none: /* Ain't happen: RAID4 algorithm placeholder. */ + BUG(); + } + } + + /* + * Start offset of the stripes chunk on any single device of the RAID + * set, adjusted in case io size differs from chunk size. + */ + addr->key = (stripe << rs->set.chunk_shift) + + (sector & rs->set.io_inv_mask); + return addr; +} + +/* + * Copy data across between stripe pages and bio vectors. + * + * Pay attention to data alignment in stripe and bio pages. + */ +static void bio_copy_page_list(int rw, struct stripe *stripe, + struct page_list *pl, struct bio *bio) +{ + unsigned i, page_offset; + void *page_addr; + struct raid_set *rs = RS(stripe->sc); + struct bio_vec *bv; + + /* Get start page in page list for this sector. */ + i = (bio->bi_sector & rs->set.io_mask) / SECTORS_PER_PAGE; + pl = pl_elem(pl, i); + BUG_ON(!pl); + BUG_ON(!pl->page); + + page_addr = page_address(pl->page); + page_offset = to_bytes(bio->bi_sector & (SECTORS_PER_PAGE - 1)); + + /* Walk all segments and copy data across between bio_vecs and pages. */ + bio_for_each_segment(bv, bio, i) { + int len = bv->bv_len, size; + unsigned bio_offset = 0; + void *bio_addr = __bio_kmap_atomic(bio, i, KM_USER0); +redo: + size = (page_offset + len > PAGE_SIZE) ? + PAGE_SIZE - page_offset : len; + + if (rw == READ) + memcpy(bio_addr + bio_offset, + page_addr + page_offset, size); + else + memcpy(page_addr + page_offset, + bio_addr + bio_offset, size); + + page_offset += size; + if (page_offset == PAGE_SIZE) { + /* + * We reached the end of the chunk page -> + * need to refer to the next one to copy more data. + */ + len -= size; + if (len) { + /* Get next page. */ + pl = pl->next; + BUG_ON(!pl); + BUG_ON(!pl->page); + page_addr = page_address(pl->page); + page_offset = 0; + bio_offset += size; + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_BIO_COPY_PL_NEXT); + goto redo; + } + } + + __bio_kunmap_atomic(bio_addr, KM_USER0); + } +} + +/* + * Xor optimization macros. + */ +/* Xor data pointer declaration and initialization macros. */ +#define DECLARE_2 unsigned long *d0 = data[0], *d1 = data[1] +#define DECLARE_3 DECLARE_2, *d2 = data[2] +#define DECLARE_4 DECLARE_3, *d3 = data[3] +#define DECLARE_5 DECLARE_4, *d4 = data[4] +#define DECLARE_6 DECLARE_5, *d5 = data[5] +#define DECLARE_7 DECLARE_6, *d6 = data[6] +#define DECLARE_8 DECLARE_7, *d7 = data[7] + +/* Xor unrole macros. */ +#define D2(n) d0[n] = d0[n] ^ d1[n] +#define D3(n) D2(n) ^ d2[n] +#define D4(n) D3(n) ^ d3[n] +#define D5(n) D4(n) ^ d4[n] +#define D6(n) D5(n) ^ d5[n] +#define D7(n) D6(n) ^ d6[n] +#define D8(n) D7(n) ^ d7[n] + +#define X_2(macro, offset) macro(offset); macro(offset + 1); +#define X_4(macro, offset) X_2(macro, offset); X_2(macro, offset + 2); +#define X_8(macro, offset) X_4(macro, offset); X_4(macro, offset + 4); +#define X_16(macro, offset) X_8(macro, offset); X_8(macro, offset + 8); +#define X_32(macro, offset) X_16(macro, offset); X_16(macro, offset + 16); +#define X_64(macro, offset) X_32(macro, offset); X_32(macro, offset + 32); + +/* Define a _xor_#chunks_#xors_per_run() function. */ +#define _XOR(chunks, xors_per_run) \ +static void _xor ## chunks ## _ ## xors_per_run(unsigned long **data) \ +{ \ + unsigned end = XOR_SIZE / sizeof(data[0]), i; \ + DECLARE_ ## chunks; \ +\ + for (i = 0; i < end; i += xors_per_run) { \ + X_ ## xors_per_run(D ## chunks, i); \ + } \ +} + +/* Define xor functions for 2 - 8 chunks and xors per run. */ +#define MAKE_XOR_PER_RUN(xors_per_run) \ + _XOR(2, xors_per_run); _XOR(3, xors_per_run); \ + _XOR(4, xors_per_run); _XOR(5, xors_per_run); \ + _XOR(6, xors_per_run); _XOR(7, xors_per_run); \ + _XOR(8, xors_per_run); + +MAKE_XOR_PER_RUN(8) /* Define _xor_*_8() functions. */ +MAKE_XOR_PER_RUN(16) /* Define _xor_*_16() functions. */ +MAKE_XOR_PER_RUN(32) /* Define _xor_*_32() functions. */ +MAKE_XOR_PER_RUN(64) /* Define _xor_*_64() functions. */ + +#define MAKE_XOR(xors_per_run) \ +struct { \ + void (*f)(unsigned long **); \ +} static xor_funcs ## xors_per_run[] = { \ + { NULL }, /* NULL pointers to optimize indexing in xor(). */ \ + { NULL }, \ + { _xor2_ ## xors_per_run }, \ + { _xor3_ ## xors_per_run }, \ + { _xor4_ ## xors_per_run }, \ + { _xor5_ ## xors_per_run }, \ + { _xor6_ ## xors_per_run }, \ + { _xor7_ ## xors_per_run }, \ + { _xor8_ ## xors_per_run }, \ +}; \ +\ +static void xor_ ## xors_per_run(unsigned n, unsigned long **data) \ +{ \ + /* Call respective function for amount of chunks. */ \ + xor_funcs ## xors_per_run[n].f(data); \ +} + +/* Define xor_8() - xor_64 functions. */ +MAKE_XOR(8) +MAKE_XOR(16) +MAKE_XOR(32) +MAKE_XOR(64) + +/* Maximum number of chunks, which can be xor'ed in one go. */ +#define XOR_CHUNKS_MAX (ARRAY_SIZE(xor_funcs8) - 1) + +static void xor_blocks_wrapper(unsigned n, unsigned long **data) +{ + BUG_ON(n < 2 || n > MAX_XOR_BLOCKS + 1); + xor_blocks(n - 1, XOR_SIZE, (void *) data[0], (void **) data + 1); +} + +struct xor_func { + xor_function_t f; + const char *name; +} static xor_funcs[] = { + { xor_8, "xor_8" }, + { xor_16, "xor_16" }, + { xor_32, "xor_32" }, + { xor_64, "xor_64" }, + { xor_blocks_wrapper, "xor_blocks" }, +}; + +/* + * Check, if chunk has to be xored in/out: + * + * o if writes are queued + * o if writes are merged + * o if stripe is to be reconstructed + * o if recovery stripe + */ +static inline int chunk_must_xor(struct stripe_chunk *chunk) +{ + if (ChunkUptodate(chunk)) { + BUG_ON(!bio_list_empty(BL_CHUNK(chunk, WRITE_QUEUED)) && + !bio_list_empty(BL_CHUNK(chunk, WRITE_MERGED))); + + if (!bio_list_empty(BL_CHUNK(chunk, WRITE_QUEUED)) || + !bio_list_empty(BL_CHUNK(chunk, WRITE_MERGED))) + return 1; + + if (StripeReconstruct(chunk->stripe) || + StripeRecover(chunk->stripe)) + return 1; + } + + return 0; +} + +/* + * Calculate crc. + * + * This indexes into the chunks of a stripe and their pages. + * + * All chunks will be xored into the indexed (@pi) + * chunk in maximum groups of xor.chunks. + * + */ +static void xor(struct stripe *stripe, unsigned pi, unsigned sector) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned max_chunks = rs->xor.chunks, n = 1, + o = sector / SECTORS_PER_PAGE, /* Offset into the page_list. */ + p = rs->set.raid_devs; + unsigned long **d = rs->data; + xor_function_t xor_f = rs->xor.f->f; + + BUG_ON(sector > stripe->io.size); + + /* Address of parity page to xor into. */ + d[0] = page_address(pl_elem(PL(stripe, pi), o)->page); + + while (p--) { + /* Preset pointers to data pages. */ + if (p != pi && chunk_must_xor(CHUNK(stripe, p))) + d[n++] = page_address(pl_elem(PL(stripe, p), o)->page); + + /* If max chunks -> xor. */ + if (n == max_chunks) { + xor_f(n, d); + n = 1; + } + } + + /* If chunks -> xor. */ + if (n > 1) + xor_f(n, d); +} + +/* Common xor loop through all stripe page lists. */ +static void common_xor(struct stripe *stripe, sector_t count, + unsigned off, unsigned pi) +{ + unsigned sector; + + BUG_ON(!count); + for (sector = off; sector < count; sector += SECTORS_PER_PAGE) + xor(stripe, pi, sector); + + /* Set parity page uptodate and clean. */ + chunk_set(CHUNK(stripe, pi), CLEAN); + atomic_inc(RS(stripe->sc)->stats + S_XORS); /* REMOVEME: statistics. */ +} + +/* + * Calculate parity sectors on intact stripes. + * + * Need to calculate raid address for recover stripe, because its + * chunk sizes differs and is typically larger than io chunk size. + */ +static void parity_xor(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned chunk_size = rs->set.chunk_size, io_size = stripe->io.size, + xor_size = chunk_size > io_size ? io_size : chunk_size; + sector_t off; + + /* This can be the recover stripe with a larger io size. */ + for (off = 0; off < io_size; off += xor_size) { + /* + * Recover stripe is likely bigger than regular io + * ones and has no precalculated parity disk index -> + * need to calculate RAID address. + */ + if (unlikely(StripeRecover(stripe))) { + struct raid_address addr; + + raid_address(rs, + (stripe->key + off) * rs->set.data_devs, + &addr); + stripe->idx.parity = addr.pi; + stripe_zero_pl_part(stripe, addr.pi, off, xor_size); + } + + common_xor(stripe, xor_size, off, stripe->idx.parity); + chunk_set(CHUNK(stripe, stripe->idx.parity), DIRTY); + } +} + +/* Reconstruct missing chunk. */ +static void stripe_reconstruct(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + int p = rs->set.raid_devs, pr = stripe->idx.recover; + + BUG_ON(pr < 0); + + /* Check if all but the chunk to be reconstructed are uptodate. */ + while (p--) + BUG_ON(p != pr && !ChunkUptodate(CHUNK(stripe, p))); + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + (RSDegraded(rs) ? S_RECONSTRUCT_EI : + S_RECONSTRUCT_DEV)); + /* Zero chunk to be reconstructed. */ + stripe_zero_chunk(stripe, pr); + common_xor(stripe, stripe->io.size, 0, pr); + stripe->idx.recover = -1; +} + +/* + * Recovery io throttling + */ +/* Conditionally reset io counters. */ +static int recover_io_reset(struct raid_set *rs) +{ + unsigned long j = jiffies; + + /* Pay attention to jiffies overflows. */ + if (j > rs->recover.last_jiffies + HZ / 20 || + j < rs->recover.last_jiffies) { + atomic_set(rs->recover.io_count + IO_WORK, 0); + atomic_set(rs->recover.io_count + IO_RECOVER, 0); + rs->recover.last_jiffies = j; + return 1; + } + + return 0; +} + +/* Count ios. */ +static void recover_io_count(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + + recover_io_reset(rs); + atomic_inc(rs->recover.io_count + + (StripeRecover(stripe) ? IO_RECOVER : IO_WORK)); +} + +/* Try getting a stripe either from the hash or from the LRU list. */ +static struct stripe *stripe_find(struct raid_set *rs, + struct raid_address *addr) +{ + int r; + struct stripe_cache *sc = &rs->sc; + struct stripe *stripe; + + /* Try stripe from hash. */ + stripe = stripe_lookup(sc, addr->key); + if (stripe) { + r = stripe_get(stripe); + if (r) + goto get_lock_failed; + + atomic_inc(rs->stats + S_HITS_1ST); /* REMOVEME: statistics. */ + } else { + /* Not in hash -> try to get an LRU stripe. */ + stripe = stripe_lru_pop(sc); + if (stripe) { + /* + * An LRU stripe may not be referenced + * and may never have ios pending! + */ + BUG_ON(stripe_ref(stripe)); + BUG_ON(stripe_io_ref(stripe)); + + /* Remove from hash if on before reuse. */ + stripe_hash_del(stripe); + + /* Invalidate before reinserting with changed key. */ + stripe_invalidate(stripe); + + stripe->key = addr->key; + stripe->region = dm_rh_sector_to_region(rs->recover.rh, + addr->key); + stripe->idx.parity = addr->pi; + r = stripe_get(stripe); + if (r) + goto get_lock_failed; + + /* Insert stripe into the stripe hash. */ + stripe_insert(&sc->hash, stripe); + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_INSCACHE); + } + } + + return stripe; + +get_lock_failed: + stripe_put(stripe); + return NULL; +} + +/* + * Process end io + * + * I need to do it here because I can't in interrupt + */ +/* End io all bios on a bio list. */ +static void bio_list_endio(struct stripe *stripe, struct bio_list *bl, + int p, int error) +{ + struct raid_set *rs = RS(stripe->sc); + struct bio *bio; + struct page_list *pl = PL(stripe, p); + struct stripe_chunk *chunk = CHUNK(stripe, p); + + /* Update region counters. */ + while ((bio = bio_list_pop(bl))) { + if (bio_data_dir(bio) == WRITE) + /* Drop io pending count for any writes. */ + dm_rh_dec(rs->recover.rh, stripe->region); + else if (!error) + /* Copy data accross. */ + bio_copy_page_list(READ, stripe, pl, bio); + + bio_endio(bio, error); + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + (bio_data_dir(bio) == READ ? + S_BIOS_ENDIO_READ : S_BIOS_ENDIO_WRITE)); + + chunk_put(chunk); + stripe_put(stripe); + io_put(rs); /* Wake any suspend waiters on last bio. */ + } +} + +/* + * End io all reads/writes on a stripe copying + * read data accross from stripe to bios and + * decrementing region counters for writes. + * + * Processing of ios depeding on state: + * o no chunk error -> endio ok + * o degraded: + * - chunk error and read -> ignore to be requeued + * - chunk error and write -> endio ok + * o dead (more than parity_devs failed) and chunk_error-> endio failed + */ +static void stripe_endio(int rw, struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned p = rs->set.raid_devs; + int write = (rw != READ); + + while (p--) { + struct stripe_chunk *chunk = CHUNK(stripe, p); + struct bio_list *bl; + + BUG_ON(ChunkLocked(chunk)); + + bl = BL_CHUNK(chunk, rw); + if (bio_list_empty(bl)) + continue; + + if (unlikely(ChunkError(chunk) || !ChunkUptodate(chunk))) { + /* RAID set dead. */ + if (unlikely(RSDead(rs))) + bio_list_endio(stripe, bl, p, -EIO); + /* RAID set degraded. */ + else if (write) + bio_list_endio(stripe, bl, p, 0); + } else { + BUG_ON(!RSDegraded(rs) && ChunkDirty(chunk)); + bio_list_endio(stripe, bl, p, 0); + } + } +} + +/* Fail all ios hanging off all bio lists of a stripe. */ +static void stripe_fail_io(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned p = rs->set.raid_devs; + + while (p--) { + struct stripe_chunk *chunk = CHUNK(stripe, p); + int i = ARRAY_SIZE(chunk->bl); + + /* Fail all bios on all bio lists of the stripe. */ + while (i--) { + struct bio_list *bl = chunk->bl + i; + + if (!bio_list_empty(bl)) + bio_list_endio(stripe, bl, p, -EIO); + } + } + + /* Put stripe on LRU list. */ + BUG_ON(stripe_io_ref(stripe)); + BUG_ON(stripe_ref(stripe)); +} + +/* Unlock all required chunks. */ +static void stripe_chunks_unlock(struct stripe *stripe) +{ + unsigned p = RS(stripe->sc)->set.raid_devs; + struct stripe_chunk *chunk; + + while (p--) { + chunk = CHUNK(stripe, p); + + if (TestClearChunkUnlock(chunk)) + ClearChunkLocked(chunk); + } +} + +/* + * Queue reads and writes to a stripe by hanging + * their bios off the stripesets read/write lists. + */ +static int stripe_queue_bio(struct raid_set *rs, struct bio *bio, + struct bio_list *reject) +{ + struct raid_address addr; + struct stripe *stripe; + + stripe = stripe_find(rs, raid_address(rs, bio->bi_sector, &addr)); + if (stripe) { + int r = 0, rw = bio_data_dir(bio); + + /* Distinguish reads and writes. */ + bio_list_add(BL(stripe, addr.di, rw), bio); + + if (rw == READ) + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_BIOS_ADDED_READ); + else { + /* Inrement pending write count on region. */ + dm_rh_inc(rs->recover.rh, stripe->region); + r = 1; + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_BIOS_ADDED_WRITE); + } + + /* + * Put on io (flush) list in case of + * initial bio queued to chunk. + */ + if (chunk_get(CHUNK(stripe, addr.di)) == 1) + stripe_flush_add(stripe); + + return r; + } + + /* Got no stripe from cache or failed to lock it -> reject bio. */ + bio_list_add(reject, bio); + atomic_inc(rs->stats + S_IOS_POST); /* REMOVEME: statistics. */ + return 0; +} + +/* + * Handle all stripes by handing them to the daemon, because we can't + * map their chunk pages to copy the data in interrupt context. + * + * We don't want to handle them here either, while interrupts are disabled. + */ + +/* Read/write endio function for dm-io (interrupt context). */ +static void endio(unsigned long error, void *context) +{ + struct stripe_chunk *chunk = context; + + if (unlikely(error)) { + chunk_set(chunk, ERROR); + /* REMOVEME: statistics. */ + atomic_inc(RS(chunk->stripe->sc)->stats + S_STRIPE_ERROR); + } else + chunk_set(chunk, CLEAN); + + /* + * For recovery stripes, I need to reset locked locked + * here, because those aren't processed in do_endios(). + */ + if (unlikely(StripeRecover(chunk->stripe))) + ClearChunkLocked(chunk); + else + SetChunkUnlock(chunk); + + /* Indirectly puts stripe on cache's endio list via stripe_io_put(). */ + stripe_put_references(chunk->stripe); +} + +/* Read/Write a chunk asynchronously. */ +static void stripe_chunk_rw(struct stripe *stripe, unsigned p) +{ + struct stripe_cache *sc = stripe->sc; + struct raid_set *rs = RS(sc); + struct dm_mem_cache_object *obj = stripe->obj + p; + struct page_list *pl = obj->pl; + struct stripe_chunk *chunk = CHUNK(stripe, p); + struct raid_dev *dev = rs->dev + p; + struct dm_io_region io = { + .bdev = dev->dev->bdev, + .sector = stripe->key, + .count = stripe->io.size, + }; + struct dm_io_request control = { + .bi_rw = ChunkDirty(chunk) ? WRITE : READ, + .mem = { + .type = DM_IO_PAGE_LIST, + .ptr.pl = pl, + .offset = 0, + }, + .notify = { + .fn = endio, + .context = chunk, + }, + .client = StripeRecover(stripe) ? rs->recover.dm_io_client : + sc->dm_io_client, + }; + + BUG_ON(ChunkLocked(chunk)); + BUG_ON(!ChunkUptodate(chunk) && ChunkDirty(chunk)); + BUG_ON(ChunkUptodate(chunk) && !ChunkDirty(chunk)); + + /* + * Don't rw past end of device, which can happen, because + * typically sectors_per_dev isn't divisible by io_size. + */ + if (unlikely(io.sector + io.count > rs->set.sectors_per_dev)) + io.count = rs->set.sectors_per_dev - io.sector; + + BUG_ON(!io.count); + io.sector += dev->start; /* Add . */ + if (RSRecover(rs)) + recover_io_count(stripe); /* Recovery io accounting. */ + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + (ChunkDirty(chunk) ? S_DM_IO_WRITE : + S_DM_IO_READ)); + SetChunkLocked(chunk); + SetDevIoQueued(dev); + BUG_ON(dm_io(&control, 1, &io, NULL)); +} + +/* + * Write dirty or read not uptodate page lists of a stripe. + */ +static int stripe_chunks_rw(struct stripe *stripe) +{ + int r; + struct raid_set *rs = RS(stripe->sc); + + /* + * Increment the pending count on the stripe + * first, so that we don't race in endio(). + * + * An inc (IO) is needed for any chunk unless !ChunkIo(chunk): + * + * o not uptodate + * o dirtied by writes merged + * o dirtied by parity calculations + */ + r = for_each_io_dev(stripe, stripe_get_references); + if (r) { + /* Io needed: chunks are either not uptodate or dirty. */ + int max; /* REMOVEME: */ + struct stripe_cache *sc = &rs->sc; + + /* Submit actual io. */ + for_each_io_dev(stripe, stripe_chunk_rw); + + /* REMOVEME: statistics */ + max = sc_active(sc); + if (atomic_read(&sc->active_stripes_max) < max) + atomic_set(&sc->active_stripes_max, max); + + atomic_inc(rs->stats + S_FLUSHS); + /* END REMOVEME: statistics */ + } + + return r; +} + +/* Merge in all writes hence dirtying respective chunks. */ +static void stripe_merge_writes(struct stripe *stripe) +{ + unsigned p = RS(stripe->sc)->set.raid_devs; + + while (p--) { + struct stripe_chunk *chunk = CHUNK(stripe, p); + struct bio_list *write = BL_CHUNK(chunk, WRITE_QUEUED); + + if (!bio_list_empty(write)) { + struct bio *bio; + struct page_list *pl = stripe->obj[p].pl; + + /* + * We can play with the lists without holding a lock, + * because it is just us accessing them anyway. + */ + bio_list_for_each(bio, write) + bio_copy_page_list(WRITE, stripe, pl, bio); + + bio_list_merge(BL_CHUNK(chunk, WRITE_MERGED), write); + bio_list_init(write); + chunk_set(chunk, DIRTY); + } + } +} + +/* Queue all writes to get merged. */ +static int stripe_queue_writes(struct stripe *stripe) +{ + int r = 0; + unsigned p = RS(stripe->sc)->set.raid_devs; + + while (p--) { + struct stripe_chunk *chunk = CHUNK(stripe, p); + struct bio_list *write = BL_CHUNK(chunk, WRITE); + + if (!bio_list_empty(write)) { + bio_list_merge(BL_CHUNK(chunk, WRITE_QUEUED), write); + bio_list_init(write); +SetChunkIo(chunk); + r = 1; + } + } + + return r; +} + + +/* Check, if a chunk gets completely overwritten. */ +static int stripe_check_chunk_overwrite(struct stripe *stripe, unsigned p) +{ + unsigned sectors = 0; + struct bio *bio; + struct bio_list *bl = BL(stripe, p, WRITE_QUEUED); + + bio_list_for_each(bio, bl) + sectors += bio_sectors(bio); + + BUG_ON(sectors > RS(stripe->sc)->set.io_size); + return sectors == RS(stripe->sc)->set.io_size; +} + +/* + * Avoid io on broken/reconstructed drive in order to + * reconstruct date on endio. + * + * (*1*) We set StripeReconstruct() in here, so that _do_endios() + * will trigger a reconstruct call before resetting it. + */ +static int stripe_chunk_set_io_flags(struct stripe *stripe, int pr) +{ + struct stripe_chunk *chunk = CHUNK(stripe, pr); + + /* + * Allow io on all chunks but the indexed one, + * because we're either degraded or prohibit it + * on the one for later reconstruction. + */ + /* Includes ClearChunkIo(), ClearChunkUptodate(). */ + stripe_chunk_invalidate(chunk); + stripe->idx.recover = pr; + SetStripeReconstruct(stripe); + + /* REMOVEME: statistics. */ + atomic_inc(RS(stripe->sc)->stats + S_PROHIBITCHUNKIO); + return -EPERM; +} + +/* Chunk locked/uptodate and device failed tests. */ +static struct stripe_chunk * +stripe_chunk_check(struct stripe *stripe, unsigned p, unsigned *chunks_uptodate) +{ + struct raid_set *rs = RS(stripe->sc); + struct stripe_chunk *chunk = CHUNK(stripe, p); + + /* Can't access active chunks. */ + if (ChunkLocked(chunk)) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_CHUNK_LOCKED); + return NULL; + } + + /* Can't access broken devive. */ + if (ChunkError(chunk) || DevFailed(rs->dev + p)) + return NULL; + + /* Can access uptodate chunks. */ + if (ChunkUptodate(chunk)) { + (*chunks_uptodate)++; + return NULL; + } + + return chunk; +} + +/* + * Degraded/reconstruction mode. + * + * Check stripe state to figure which chunks don't need IO. + * + * Returns 0 for fully operational, -EPERM for degraded/resynchronizing. + */ +static int stripe_check_reconstruct(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + + if (RSDead(rs)) { + ClearStripeReconstruct(stripe); + ClearStripeReconstructed(stripe); + stripe_allow_io(stripe); + return 0; + } + + /* Avoid further reconstruction setting, when already set. */ + if (StripeReconstruct(stripe)) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_RECONSTRUCT_SET); + return -EBUSY; + } + + /* Initially allow io on all chunks. */ + stripe_allow_io(stripe); + + /* Return if stripe is already reconstructed. */ + if (StripeReconstructed(stripe)) { + atomic_inc(rs->stats + S_RECONSTRUCTED); + return 0; + } + + /* + * Degraded/reconstruction mode (device failed) -> + * avoid io on the failed device. + */ + if (unlikely(RSDegraded(rs))) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_DEGRADED); + /* Allow IO on all devices but the dead one. */ + BUG_ON(rs->set.ei < 0); + return stripe_chunk_set_io_flags(stripe, rs->set.ei); + } else { + int sync, pi = dev_for_parity(stripe, &sync); + + /* + * Reconstruction mode (ie. a particular (replaced) device or + * some (rotating) parity chunk is being resynchronized) -> + * o make sure all needed chunks are read in + * o writes are allowed to go through + */ + if (!sync) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_NOSYNC); + /* Allow IO on all devs but the one to reconstruct. */ + return stripe_chunk_set_io_flags(stripe, pi); + } + } + + return 0; +} + +/* + * Check, if stripe is ready to merge writes. + * I.e. if all chunks present to allow to merge bios. + * + * We prohibit io on: + * + * o chunks without bios + * o chunks which get completely written over + */ +static int stripe_merge_possible(struct stripe *stripe, int nosync) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned chunks_overwrite = 0, chunks_prohibited = 0, + chunks_uptodate = 0, p = rs->set.raid_devs; + + /* Walk all chunks. */ + while (p--) { + struct stripe_chunk *chunk; + + /* Prohibit io on broken devices. */ + if (DevFailed(rs->dev + p)) { + chunk = CHUNK(stripe, p); + goto prohibit_io; + } + + /* We can't optimize any further if no chunk. */ + chunk = stripe_chunk_check(stripe, p, &chunks_uptodate); + if (!chunk || nosync) + continue; + + /* + * We have a chunk, which is not uptodate. + * + * If this is not parity and we don't have + * reads queued, we can optimize further. + */ + if (p != stripe->idx.parity && + bio_list_empty(BL_CHUNK(chunk, READ)) && + bio_list_empty(BL_CHUNK(chunk, WRITE_MERGED))) { + if (bio_list_empty(BL_CHUNK(chunk, WRITE_QUEUED))) + goto prohibit_io; + else if (RSCheckOverwrite(rs) && + stripe_check_chunk_overwrite(stripe, p)) + /* Completely overwritten chunk. */ + chunks_overwrite++; + } + + /* Allow io for chunks with bios and overwritten ones. */ + SetChunkIo(chunk); + continue; + +prohibit_io: + /* No io for broken devices or for chunks w/o bios. */ + ClearChunkIo(chunk); + chunks_prohibited++; + /* REMOVEME: statistics. */ + atomic_inc(RS(stripe->sc)->stats + S_PROHIBITCHUNKIO); + } + + /* All data chunks will get written over. */ + if (chunks_overwrite == rs->set.data_devs) + atomic_inc(rs->stats + S_OVERWRITE); /* REMOVEME: statistics.*/ + else if (chunks_uptodate + chunks_prohibited < rs->set.raid_devs) { + /* We don't have enough chunks to merge. */ + atomic_inc(rs->stats + S_CANT_MERGE); /* REMOVEME: statistics.*/ + return -EPERM; + } + + /* + * If we have all chunks up to date or overwrite them, we + * just zero the parity chunk and let stripe_rw() recreate it. + */ + if (chunks_uptodate == rs->set.raid_devs || + chunks_overwrite == rs->set.data_devs) { + stripe_zero_chunk(stripe, stripe->idx.parity); + BUG_ON(StripeReconstruct(stripe)); + SetStripeReconstruct(stripe); /* Enforce xor in caller. */ + } else { + /* + * With less chunks, we xor parity out. + * + * (*4*) We rely on !StripeReconstruct() in chunk_must_xor(), + * so that only chunks with queued or merged writes + * are being xored. + */ + parity_xor(stripe); + } + + /* + * We do have enough chunks to merge. + * All chunks are uptodate or get written over. + */ + atomic_inc(rs->stats + S_CAN_MERGE); /* REMOVEME: statistics. */ + return 0; +} + +/* + * Avoid reading chunks in case we're fully operational. + * + * We prohibit io on any chunks without bios but the parity chunk. + */ +static void stripe_avoid_reads(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned dummy = 0, p = rs->set.raid_devs; + + /* Walk all chunks. */ + while (p--) { + struct stripe_chunk *chunk = + stripe_chunk_check(stripe, p, &dummy); + + if (!chunk) + continue; + + /* If parity or any bios pending -> allow io. */ + if (chunk_ref(chunk) || p == stripe->idx.parity) + SetChunkIo(chunk); + else { + ClearChunkIo(chunk); + /* REMOVEME: statistics. */ + atomic_inc(RS(stripe->sc)->stats + S_PROHIBITCHUNKIO); + } + } +} + +/* + * Read/write a stripe. + * + * All stripe read/write activity goes through this function + * unless recovery, which has to call stripe_chunk_rw() directly. + * + * Make sure we don't try already merged stripes in order + * to avoid data corruption. + * + * Check the state of the RAID set and if degraded (or + * resynchronizing for reads), read in all other chunks but + * the one on the dead/resynchronizing device in order to be + * able to reconstruct the missing one in _do_endios(). + * + * Can be called on active stripes in order + * to dispatch new io on inactive chunks. + * + * States to cover: + * o stripe to read and/or write + * o stripe with error to reconstruct + */ +static void stripe_rw(struct stripe *stripe) +{ + int nosync, r; + struct raid_set *rs = RS(stripe->sc); + + /* + * Check, if a chunk needs to be reconstructed + * because of a degraded set or a region out of sync. + */ + nosync = stripe_check_reconstruct(stripe); + switch (nosync) { + case -EBUSY: + return; /* Wait for stripe reconstruction to finish. */ + case -EPERM: + goto io; + } + + /* + * If we don't have merged writes pending, we can schedule + * queued writes to be merged next without corrupting data. + */ + if (!StripeMerged(stripe)) { + r = stripe_queue_writes(stripe); + if (r) + /* Writes got queued -> flag RBW. */ + SetStripeRBW(stripe); + } + + /* + * Merge all writes hanging off uptodate/overwritten + * chunks of the stripe. + */ + if (StripeRBW(stripe)) { + r = stripe_merge_possible(stripe, nosync); + if (!r) { /* Merge possible. */ + struct stripe_chunk *chunk; + + /* + * I rely on valid parity in order + * to xor a fraction of chunks out + * of parity and back in. + */ + stripe_merge_writes(stripe); /* Merge writes in. */ + parity_xor(stripe); /* Update parity. */ + ClearStripeReconstruct(stripe); /* Reset xor enforce. */ + SetStripeMerged(stripe); /* Writes merged. */ + ClearStripeRBW(stripe); /* Disable RBW. */ + + /* + * REMOVEME: sanity check on parity chunk + * states after writes got merged. + */ + chunk = CHUNK(stripe, stripe->idx.parity); + BUG_ON(ChunkLocked(chunk)); + BUG_ON(!ChunkUptodate(chunk)); + BUG_ON(!ChunkDirty(chunk)); + BUG_ON(!ChunkIo(chunk)); + } + } else if (!nosync && !StripeMerged(stripe)) + /* Read avoidance if not degraded/resynchronizing/merged. */ + stripe_avoid_reads(stripe); + +io: + /* Now submit any reads/writes for non-uptodate or dirty chunks. */ + r = stripe_chunks_rw(stripe); + if (!r) { + /* + * No io submitted because of chunk io + * prohibited or locked chunks/failed devices + * -> push to end io list for processing. + */ + stripe_endio_push(stripe); + atomic_inc(rs->stats + S_NO_RW); /* REMOVEME: statistics. */ + } +} + +/* + * Recovery functions + */ +/* Read a stripe off a raid set for recovery. */ +static int stripe_recover_read(struct stripe *stripe, int pi) +{ + BUG_ON(stripe_io_ref(stripe)); + + /* Invalidate all chunks so that they get read in. */ + stripe_chunks_invalidate(stripe); + stripe_allow_io(stripe); /* Allow io on all recovery chunks. */ + + /* + * If we are reconstructing a perticular device, we can avoid + * reading the respective chunk in, because we're going to + * reconstruct it anyway. + * + * We can't do that for resynchronization of rotating parity, + * because the recovery stripe chunk size is typically larger + * than the sets chunk size. + */ + if (pi > -1) + ClearChunkIo(CHUNK(stripe, pi)); + + return stripe_chunks_rw(stripe); +} + +/* Write a stripe to a raid set for recovery. */ +static int stripe_recover_write(struct stripe *stripe, int pi) +{ + BUG_ON(stripe_io_ref(stripe)); + + /* + * If this is a reconstruct of a particular device, then + * reconstruct the respective chunk, else create parity chunk. + */ + if (pi > -1) { + stripe_zero_chunk(stripe, pi); + common_xor(stripe, stripe->io.size, 0, pi); + chunk_set(CHUNK(stripe, pi), DIRTY); + } else + parity_xor(stripe); + + return stripe_chunks_rw(stripe); +} + +/* Read/write a recovery stripe. */ +static int stripe_recover_rw(struct stripe *stripe) +{ + int r = 0, sync = 0; + + /* Read/write flip-flop. */ + if (TestClearStripeRBW(stripe)) { + SetStripeMerged(stripe); + stripe->key = stripe->recover->pos; + r = stripe_recover_read(stripe, dev_for_parity(stripe, &sync)); + BUG_ON(!r); + } else if (TestClearStripeMerged(stripe)) { + r = stripe_recover_write(stripe, dev_for_parity(stripe, &sync)); + BUG_ON(!r); + } + + BUG_ON(sync); + return r; +} + +/* Recover bandwidth available ?. */ +static int recover_bandwidth(struct raid_set *rs) +{ + int r, work; + + /* On reset or when bios delayed -> allow recovery. */ + r = recover_io_reset(rs); + if (r || RSBandwidth(rs)) + goto out; + + work = atomic_read(rs->recover.io_count + IO_WORK); + if (work) { + /* Pay attention to larger recover stripe size. */ + int recover = atomic_read(rs->recover.io_count + IO_RECOVER) * + rs->recover.io_size / rs->set.io_size; + + /* + * Don't use more than given bandwidth + * of the work io for recovery. + */ + if (recover > work / rs->recover.bandwidth_work) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_NO_BANDWIDTH); + return 0; + } + } + +out: + atomic_inc(rs->stats + S_BANDWIDTH); /* REMOVEME: statistics. */ + return 1; +} + +/* Try to get a region to recover. */ +static int stripe_recover_get_region(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + struct recover *rec = &rs->recover; + struct recover_addr *addr = stripe->recover; + struct dm_dirty_log *dl = rec->dl; + struct dm_rh_client *rh = rec->rh; + + BUG_ON(!dl); + BUG_ON(!rh); + + /* Return, that we have region first to finish it during suspension. */ + if (addr->reg) + return 1; + + if (RSSuspend(rs)) + return -EPERM; + + if (dl->type->get_sync_count(dl) >= rec->nr_regions) + return -ENOENT; + + /* If we don't have enough bandwidth, we don't proceed recovering. */ + if (!recover_bandwidth(rs)) + return -EAGAIN; + + /* Start quiescing a region. */ + dm_rh_recovery_prepare(rh); + addr->reg = dm_rh_recovery_start(rh); + if (!addr->reg) + return -EAGAIN; + + addr->pos = dm_rh_region_to_sector(rh, dm_rh_get_region_key(addr->reg)); + addr->end = addr->pos + dm_rh_get_region_size(rh); + + /* + * Take one global io reference out for the + * whole region, which is going to be released + * when the region is completely done with. + */ + io_get(rs); + return 0; +} + +/* Update region hash state. */ +enum recover_type { REC_FAILURE = 0, REC_SUCCESS = 1 }; +static void recover_rh_update(struct stripe *stripe, enum recover_type success) +{ + struct recover_addr *addr = stripe->recover; + struct raid_set *rs = RS(stripe->sc); + struct recover *rec = &rs->recover; + + if (!addr->reg) { + DMERR("%s- Called w/o region", __func__); + return; + } + + dm_rh_recovery_end(addr->reg, success); + if (success) + rec->nr_regions_recovered++; + + addr->reg = NULL; + + /* + * Completely done with this region -> + * release the 1st io reference. + */ + io_put(rs); +} + +/* Set start of recovery state. */ +static void set_start_recovery(struct raid_set *rs) +{ + /* Initialize recovery. */ + rs->recover.start_jiffies = jiffies; + rs->recover.end_jiffies = 0; +} + +/* Set end of recovery state. */ +static void set_end_recovery(struct raid_set *rs) +{ + ClearRSRecover(rs); + rs->set.dev_to_init = -1; + + /* Check for jiffies overrun. */ + rs->recover.end_jiffies = jiffies; + if (rs->recover.end_jiffies < rs->recover.start_jiffies) + rs->recover.end_jiffies = ~0; +} + +/* Handle recovery on one recovery stripe. */ +static int _do_recovery(struct stripe *stripe) +{ + int r; + struct raid_set *rs = RS(stripe->sc); + struct recover_addr *addr = stripe->recover; + + /* If recovery is active -> return. */ + if (stripe_io_ref(stripe)) + return 1; + + /* IO error is fatal for recovery -> stop it. */ + if (unlikely(StripeError(stripe))) + goto err; + + /* Recovery end required. */ + if (!RSRecover(rs)) + goto err; + + /* Get a region to recover. */ + r = stripe_recover_get_region(stripe); + switch (r) { + case 0: /* Got a new region: flag initial read before write. */ + SetStripeRBW(stripe); + case 1: /* Have a region in the works. */ + break; + case -EAGAIN: + /* No bandwidth/quiesced region yet, try later. */ + if (!io_ref(rs)) + wake_do_raid_delayed(rs, HZ / 4); + case -EPERM: + /* Suspend. */ + return 1; + case -ENOENT: /* No more regions to recover. */ + schedule_work(&rs->io.ws_do_table_event); + return 0; + default: + BUG(); + } + + /* Read/write a recover stripe. */ + r = stripe_recover_rw(stripe); + if (r) + /* IO initiated. */ + return 1; + + /* Read and write finished-> update recovery position within region. */ + addr->pos += stripe->io.size; + + /* If we're at end of region, update region hash. */ + if (addr->pos >= addr->end || + addr->pos >= rs->set.sectors_per_dev) + recover_rh_update(stripe, REC_SUCCESS); + else + /* Prepare to read next region segment. */ + SetStripeRBW(stripe); + + /* Schedule myself for another round... */ + wake_do_raid(rs); + return 1; + +err: + /* FIXME: rather try recovering other regions on error? */ + rs_check_degrade(stripe); + recover_rh_update(stripe, REC_FAILURE); + + /* Check state of partially recovered array. */ + if (RSDegraded(rs) && !RSDead(rs) && + rs->set.dev_to_init != -1 && + rs->set.ei != rs->set.dev_to_init) + /* Broken drive != drive to recover -> FATAL. */ + SetRSDead(rs); + + if (StripeError(stripe)) { + char buf[BDEVNAME_SIZE]; + + DMERR("stopping recovery due to " + "ERROR on /dev/%s, stripe at offset %llu", + bdevname(rs->dev[rs->set.ei].dev->bdev, buf), + (unsigned long long) stripe->key); + + } + + /* Make sure, that all quiesced regions get released. */ + while (addr->reg) { + dm_rh_recovery_end(addr->reg, -EIO); + addr->reg = dm_rh_recovery_start(rs->recover.rh); + } + + return 0; +} + +/* Called by main io daemon to recover regions. */ +static void do_recovery(struct raid_set *rs) +{ + if (RSRecover(rs)) { + int r = 0; + struct stripe *stripe; + + list_for_each_entry(stripe, &rs->recover.stripes, + lists[LIST_RECOVER]) + r += _do_recovery(stripe); + + if (!r) { + set_end_recovery(rs); + stripe_recover_free(rs); + } + } +} + +/* + * END recovery functions + */ + +/* End io process all stripes handed in by endio() callback. */ +static void _do_endios(struct raid_set *rs, struct stripe *stripe, + struct list_head *flush_list) +{ + /* First unlock all required chunks. */ + stripe_chunks_unlock(stripe); + + /* + * If an io error on a stripe occured, degrade the RAID set + * and try to endio as many bios as possible. If any bios can't + * be endio processed, requeue the stripe (stripe_ref() != 0). + */ + if (TestClearStripeError(stripe)) { + /* + * FIXME: if read, rewrite the failed chunk after reconstruction + * in order to trigger disk bad sector relocation. + */ + rs_check_degrade(stripe); /* Resets ChunkError(). */ + ClearStripeReconstruct(stripe); + ClearStripeReconstructed(stripe); + } + + /* Got to reconstruct a missing chunk. */ + if (StripeReconstruct(stripe)) { + /* + * (*2*) We use StripeReconstruct() to allow for + * all chunks to be xored into the reconstructed + * one (see chunk_must_xor()). + */ + stripe_reconstruct(stripe); + + /* + * (*3*) Now we reset StripeReconstruct() and flag + * StripeReconstructed() to show to stripe_rw(), + * that we have reconstructed a missing chunk. + */ + ClearStripeReconstruct(stripe); + SetStripeReconstructed(stripe); + + /* FIXME: reschedule to be written in case of read. */ + // if (!StripeRBW(stripe)) { + // chunk_set(CHUNK(stripe, pr), DIRTY); + // stripe_chunks_rw(stripe); + // } + } + + /* + * Now that we eventually got a complete stripe, we + * can process the rest of the end ios on reads. + */ + stripe_endio(READ, stripe); + + /* End io all merged writes. */ + if (TestClearStripeMerged(stripe)) + stripe_endio(WRITE_MERGED, stripe); + + /* If RAID set is dead -> fail any ios to dead drives. */ + if (RSDead(rs)) { + DMERR_LIMIT("RAID set dead: failing ios to dead devices"); + stripe_fail_io(stripe); + } + + /* + * We have stripe references still, + * beacuse of read befeore writes or IO errors -> + * got to put on flush list for processing. + */ + if (stripe_ref(stripe)) { + BUG_ON(!list_empty(stripe->lists + LIST_LRU)); + list_add_tail(stripe->lists + LIST_FLUSH, flush_list); + atomic_inc(rs->stats + S_REQUEUE); /* REMOVEME: statistics. */ + } else + stripe_lru_add(stripe); +} + +/* Pop any endio stripes off of the endio list and belabour them. */ +static void do_endios(struct raid_set *rs) +{ + struct stripe_cache *sc = &rs->sc; + struct stripe *stripe; + /* IO flush list for sorted requeued stripes. */ + struct list_head flush_list; + + INIT_LIST_HEAD(&flush_list); + + while ((stripe = stripe_endio_pop(sc))) { + /* Avoid endio on stripes with newly io'ed chunks. */ + if (!stripe_io_ref(stripe)) + _do_endios(rs, stripe, &flush_list); + } + + /* + * Insert any requeued stripes in the proper + * order at the beginning of the io (flush) list. + */ + list_splice(&flush_list, sc->lists + LIST_FLUSH); +} + +/* Flush any stripes on the io list. */ +static void do_flush(struct raid_set *rs) +{ + struct stripe *stripe; + + while ((stripe = stripe_io_pop(&rs->sc))) + stripe_rw(stripe); /* Read/write stripe. */ +} + +/* Stripe cache resizing. */ +static void do_sc_resize(struct raid_set *rs) +{ + unsigned set = atomic_read(&rs->sc.stripes_to_set); + + if (set) { + unsigned cur = atomic_read(&rs->sc.stripes); + int r = (set > cur) ? sc_grow(&rs->sc, set - cur, SC_GROW) : + sc_shrink(&rs->sc, cur - set); + + /* Flag end of resizeing if ok. */ + if (!r) + atomic_set(&rs->sc.stripes_to_set, 0); + } +} + +/* + * Process all ios + * + * We do different things with the io depending + * on the state of the region that it is in: + * + * o reads: hang off stripe cache or postpone if full + * + * o writes: + * + * CLEAN/DIRTY/NOSYNC: increment pending and hang io off stripe's stripe set. + * In case stripe cache is full or busy, postpone the io. + * + * RECOVERING: delay the io until recovery of the region completes. + * + */ +static void do_ios(struct raid_set *rs, struct bio_list *ios) +{ + int r; + unsigned flush = 0, delay = 0; + sector_t sector; + struct dm_rh_client *rh = rs->recover.rh; + struct bio *bio; + struct bio_list reject; + + bio_list_init(&reject); + + /* + * Classify each io: + * o delay writes to recovering regions (let reads go through) + * o queue io to all other regions + */ + while ((bio = bio_list_pop(ios))) { + /* + * In case we get a barrier bio, push it back onto + * the input queue unless all work queues are empty + * and the stripe cache is inactive. + */ + if (unlikely(bio_rw_flagged(bio, BIO_RW_BARRIER))) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_BARRIER); + if (delay || + !list_empty(rs->sc.lists + LIST_FLUSH) || + !bio_list_empty(&reject) || + sc_active(&rs->sc)) { + bio_list_push(ios, bio); + break; + } + } + + /* Check for recovering regions. */ + sector = _sector(rs, bio); + r = region_state(rs, sector, DM_RH_RECOVERING); + if (unlikely(r && bio_data_dir(bio) == WRITE)) { + delay++; + /* Wait writing to recovering regions. */ + dm_rh_delay_by_region(rh, bio, + dm_rh_sector_to_region(rh, + sector)); + /* REMOVEME: statistics.*/ + atomic_inc(rs->stats + S_DELAYED_BIOS); + atomic_inc(rs->stats + S_SUM_DELAYED_BIOS); + + /* Force bandwidth tests in recovery. */ + SetRSBandwidth(rs); + } else { + /* + * Process ios to non-recovering regions by queueing + * them to stripes (does dm_rh_inc()) for writes). + */ + flush += stripe_queue_bio(rs, bio, &reject); + } + } + + if (flush) { + /* FIXME: better error handling. */ + r = dm_rh_flush(rh); /* Writes got queued -> flush dirty log. */ + if (r) + DMERR_LIMIT("dirty log flush"); + } + + /* Merge any rejected bios back to the head of the input list. */ + bio_list_merge_head(ios, &reject); +} + +/* Unplug: let any queued io role on the sets devices. */ +static void do_unplug(struct raid_set *rs) +{ + struct raid_dev *dev = rs->dev + rs->set.raid_devs; + + while (dev-- > rs->dev) { + /* Only call any device unplug function, if io got queued. */ + if (TestClearDevIoQueued(dev)) + blk_unplug(bdev_get_queue(dev->dev->bdev)); + } +} + +/* Send an event in case we're getting too busy. */ +static void do_busy_event(struct raid_set *rs) +{ + if (sc_busy(rs)) { + if (!TestSetRSScBusy(rs)) + schedule_work(&rs->io.ws_do_table_event); + } + + ClearRSScBusy(rs); +} + +/* Throw an event. */ +static void do_table_event(struct work_struct *ws) +{ + struct raid_set *rs = container_of(ws, struct raid_set, + io.ws_do_table_event); + dm_table_event(rs->ti->table); +} + + +/*----------------------------------------------------------------- + * RAID daemon + *---------------------------------------------------------------*/ +/* + * o belabour all end ios + * o update the region hash states + * o optionally shrink the stripe cache + * o optionally do recovery + * o unplug any component raid devices with queued bios + * o grab the input queue + * o work an all requeued or new ios and perform stripe cache flushs + * o unplug any component raid devices with queued bios + * o check, if the stripe cache gets too busy and throw an event if so + */ +static void do_raid(struct work_struct *ws) +{ + struct raid_set *rs = container_of(ws, struct raid_set, + io.dws_do_raid.work); + struct bio_list *ios = &rs->io.work, *ios_in = &rs->io.in; + + /* + * We always need to end io, so that ios can get errored in + * case the set failed and the region counters get decremented + * before we update region hash states and go any further. + */ + do_endios(rs); + dm_rh_update_states(rs->recover.rh, 1); + + /* + * Now that we've end io'd, which may have put stripes on the LRU list + * to allow for shrinking, we resize the stripe cache if requested. + */ + do_sc_resize(rs); + + /* Try to recover regions. */ + do_recovery(rs); + do_unplug(rs); /* Unplug the sets device queues. */ + + /* Quickly grab all new ios queued and add them to the work list. */ + mutex_lock(&rs->io.in_lock); + bio_list_merge(ios, ios_in); + bio_list_init(ios_in); + mutex_unlock(&rs->io.in_lock); + + if (!bio_list_empty(ios)) + do_ios(rs, ios); /* Got ios to work into the cache. */ + + do_flush(rs); /* Flush any stripes on io list. */ + do_unplug(rs); /* Unplug the sets device queues. */ + do_busy_event(rs); /* Check if we got too busy. */ +} + +/* + * Callback for region hash to dispatch + * delayed bios queued to recovered regions + * (gets called via dm_rh_update_states()). + */ +static void dispatch_delayed_bios(void *context, struct bio_list *bl) +{ + struct raid_set *rs = context; + struct bio *bio; + + /* REMOVEME: statistics; decrement pending delayed bios counter. */ + bio_list_for_each(bio, bl) + atomic_dec(rs->stats + S_DELAYED_BIOS); + + /* Merge region hash private list to work list. */ + bio_list_merge_head(&rs->io.work, bl); + bio_list_init(bl); + ClearRSBandwidth(rs); +} + +/************************************************************* + * Constructor helpers + *************************************************************/ +/* Calculate MB/sec. */ +static unsigned mbpers(struct raid_set *rs, unsigned speed) +{ + return to_bytes(speed * rs->set.data_devs * + rs->recover.io_size * HZ >> 10) >> 10; +} + +/* + * Discover fastest xor algorithm and # of chunks combination. + */ +/* Calculate speed for algorithm and # of chunks. */ +static unsigned xor_speed(struct stripe *stripe) +{ + unsigned r = 0; + unsigned long j; + + /* Wait for next tick. */ + for (j = jiffies; j == jiffies; ) + ; + + /* Do xors for a full tick. */ + for (j = jiffies; j == jiffies; ) { + mb(); + common_xor(stripe, stripe->io.size, 0, 0); + mb(); + r++; + } + + return r; +} + +/* Optimize xor algorithm for this RAID set. */ +static unsigned xor_optimize(struct raid_set *rs) +{ + unsigned chunks_max = 2, p = rs->set.raid_devs, speed_max = 0; + struct xor_func *f = ARRAY_END(xor_funcs), *f_max = NULL; + struct stripe *stripe; + + BUG_ON(list_empty(&rs->recover.stripes)); + stripe = list_first_entry(&rs->recover.stripes, struct stripe, + lists[LIST_RECOVER]); + + /* Must set uptodate so that xor() will belabour chunks. */ + while (p--) + SetChunkUptodate(CHUNK(stripe, p)); + + /* Try all xor functions. */ + while (f-- > xor_funcs) { + unsigned speed; + + /* Set actual xor function for common_xor(). */ + rs->xor.f = f; + rs->xor.chunks = (f->f == xor_blocks_wrapper ? + (MAX_XOR_BLOCKS + 1) : XOR_CHUNKS_MAX) + 1; + + while (rs->xor.chunks-- > 2) { + speed = xor_speed(stripe); + if (speed > speed_max) { + speed_max = speed; + chunks_max = rs->xor.chunks; + f_max = f; + } + } + } + + /* Memorize optimum parameters. */ + rs->xor.f = f_max; + rs->xor.chunks = chunks_max; + return speed_max; +} + +/* + * Allocate a RAID context (a RAID set) + */ +/* Structure for variable RAID parameters. */ +struct variable_parms { + int bandwidth; + int bandwidth_parm; + int chunk_size; + int chunk_size_parm; + int io_size; + int io_size_parm; + int stripes; + int stripes_parm; + int recover_io_size; + int recover_io_size_parm; + int raid_parms; + int recovery; + int recovery_stripes; + int recovery_stripes_parm; +}; + +static struct raid_set * +context_alloc(struct raid_type *raid_type, struct variable_parms *p, + unsigned raid_devs, sector_t sectors_per_dev, + struct dm_target *ti, unsigned dl_parms, char **argv) +{ + int r; + size_t len; + sector_t region_size, ti_len; + struct raid_set *rs = NULL; + struct dm_dirty_log *dl; + struct recover *rec; + + /* + * Create the dirty log + * + * We need to change length for the dirty log constructor, + * because we want an amount of regions for all stripes derived + * from the single device size, so that we can keep region + * size = 2^^n independant of the number of devices + */ + ti_len = ti->len; + ti->len = sectors_per_dev; + dl = dm_dirty_log_create(argv[0], ti, NULL, dl_parms, argv + 2); + ti->len = ti_len; + if (!dl) + goto bad_dirty_log; + + /* Chunk size *must* be smaller than region size. */ + region_size = dl->type->get_region_size(dl); + if (p->chunk_size > region_size) + goto bad_chunk_size; + + /* Recover io size *must* be smaller than region size as well. */ + if (p->recover_io_size > region_size) + goto bad_recover_io_size; + + /* Size and allocate the RAID set structure. */ + len = sizeof(*rs->data) + sizeof(*rs->dev); + if (dm_array_too_big(sizeof(*rs), len, raid_devs)) + goto bad_array; + + len = sizeof(*rs) + raid_devs * len; + rs = kzalloc(len, GFP_KERNEL); + if (!rs) + goto bad_alloc; + + rec = &rs->recover; + atomic_set(&rs->io.in_process, 0); + atomic_set(&rs->io.in_process_max, 0); + rec->io_size = p->recover_io_size; + + /* Pointer to data array. */ + rs->data = (unsigned long **) + ((void *) rs->dev + raid_devs * sizeof(*rs->dev)); + rec->dl = dl; + rs->set.raid_devs = raid_devs; + rs->set.data_devs = raid_devs - raid_type->parity_devs; + rs->set.raid_type = raid_type; + + rs->set.raid_parms = p->raid_parms; + rs->set.chunk_size_parm = p->chunk_size_parm; + rs->set.io_size_parm = p->io_size_parm; + rs->sc.stripes_parm = p->stripes_parm; + rec->io_size_parm = p->recover_io_size_parm; + rec->bandwidth_parm = p->bandwidth_parm; + rec->recovery = p->recovery; + rec->recovery_stripes = p->recovery_stripes; + + /* + * Set chunk and io size and respective shifts + * (used to avoid divisions) + */ + rs->set.chunk_size = p->chunk_size; + rs->set.chunk_shift = ffs(p->chunk_size) - 1; + + rs->set.io_size = p->io_size; + rs->set.io_mask = p->io_size - 1; + /* Mask to adjust address key in case io_size != chunk_size. */ + rs->set.io_inv_mask = (p->chunk_size - 1) & ~rs->set.io_mask; + + rs->set.sectors_per_dev = sectors_per_dev; + + rs->set.ei = -1; /* Indicate no failed device. */ + atomic_set(&rs->set.failed_devs, 0); + + rs->ti = ti; + + atomic_set(rec->io_count + IO_WORK, 0); + atomic_set(rec->io_count + IO_RECOVER, 0); + + /* Initialize io lock and queues. */ + mutex_init(&rs->io.in_lock); + bio_list_init(&rs->io.in); + bio_list_init(&rs->io.work); + + init_waitqueue_head(&rs->io.suspendq); /* Suspend waiters (dm-io). */ + + rec->nr_regions = dm_sector_div_up(sectors_per_dev, region_size); + rec->rh = dm_region_hash_create(rs, dispatch_delayed_bios, + wake_dummy, wake_do_raid, 0, p->recovery_stripes, + dl, region_size, rec->nr_regions); + if (IS_ERR(rec->rh)) + goto bad_rh; + + /* Initialize stripe cache. */ + r = sc_init(rs, p->stripes); + if (r) + goto bad_sc; + + /* REMOVEME: statistics. */ + stats_reset(rs); + ClearRSDevelStats(rs); /* Disnable development status. */ + return rs; + +bad_dirty_log: + TI_ERR_RET("Error creating dirty log", ERR_PTR(-ENOMEM)); + +bad_chunk_size: + dm_dirty_log_destroy(dl); + TI_ERR_RET("Chunk size larger than region size", ERR_PTR(-EINVAL)); + +bad_recover_io_size: + dm_dirty_log_destroy(dl); + TI_ERR_RET("Recover stripe io size larger than region size", + ERR_PTR(-EINVAL)); + +bad_array: + dm_dirty_log_destroy(dl); + TI_ERR_RET("Arry too big", ERR_PTR(-EINVAL)); + +bad_alloc: + dm_dirty_log_destroy(dl); + TI_ERR_RET("Cannot allocate raid context", ERR_PTR(-ENOMEM)); + +bad_rh: + dm_dirty_log_destroy(dl); + ti->error = DM_MSG_PREFIX "Error creating dirty region hash"; + goto free_rs; + +bad_sc: + dm_region_hash_destroy(rec->rh); /* Destroys dirty log too. */ + sc_exit(&rs->sc); + ti->error = DM_MSG_PREFIX "Error creating stripe cache"; +free_rs: + kfree(rs); + return ERR_PTR(-ENOMEM); +} + +/* Free a RAID context (a RAID set). */ +static void context_free(struct raid_set *rs, unsigned p) +{ + while (p--) + dm_put_device(rs->ti, rs->dev[p].dev); + + sc_exit(&rs->sc); + dm_region_hash_destroy(rs->recover.rh); /* Destroys dirty log too. */ + kfree(rs); +} + +/* Create work queue and initialize delayed work. */ +static int rs_workqueue_init(struct raid_set *rs) +{ + struct dm_target *ti = rs->ti; + + rs->io.wq = create_singlethread_workqueue(DAEMON); + if (!rs->io.wq) + TI_ERR_RET("failed to create " DAEMON, -ENOMEM); + + INIT_DELAYED_WORK(&rs->io.dws_do_raid, do_raid); + INIT_WORK(&rs->io.ws_do_table_event, do_table_event); + return 0; +} + +/* Return pointer to raid_type structure for raid name. */ +static struct raid_type *get_raid_type(char *name) +{ + struct raid_type *r = ARRAY_END(raid_types); + + while (r-- > raid_types) { + if (!strcmp(r->name, name)) + return r; + } + + return NULL; +} + +/* FIXME: factor out to dm core. */ +static int multiple(sector_t a, sector_t b, sector_t *n) +{ + sector_t r = a; + + sector_div(r, b); + *n = r; + return a == r * b; +} + +/* Log RAID set information to kernel log. */ +static void rs_log(struct raid_set *rs, unsigned speed) +{ + unsigned p; + char buf[BDEVNAME_SIZE]; + + for (p = 0; p < rs->set.raid_devs; p++) + DMINFO("/dev/%s is raid disk %u%s", + bdevname(rs->dev[p].dev->bdev, buf), p, + (p == rs->set.pi) ? " (parity)" : ""); + + DMINFO("%d/%d/%d sectors chunk/io/recovery size, %u stripes\n" + "algorithm \"%s\", %u chunks with %uMB/s\n" + "%s set with net %u/%u devices", + rs->set.chunk_size, rs->set.io_size, rs->recover.io_size, + atomic_read(&rs->sc.stripes), + rs->xor.f->name, rs->xor.chunks, mbpers(rs, speed), + rs->set.raid_type->descr, rs->set.data_devs, rs->set.raid_devs); +} + +/* Get all devices and offsets. */ +static int dev_parms(struct raid_set *rs, char **argv, int *p) +{ + struct dm_target *ti = rs->ti; + + for (*p = 0; *p < rs->set.raid_devs; (*p)++, argv += 2) { + int r; + unsigned long long tmp; + struct raid_dev *dev = rs->dev + *p; + + /* Get offset and device. */ + if (sscanf(argv[1], "%llu", &tmp) != 1 || + tmp > rs->set.sectors_per_dev) + TI_ERR("Invalid RAID device offset parameter"); + + dev->start = tmp; + r = dm_get_device(ti, *argv, dm_table_get_mode(ti->table), &dev->dev); + if (r) + TI_ERR_RET("RAID device lookup failure", r); + + r = raid_dev_lookup(rs, dev); + if (r != -ENODEV && r < *p) { + (*p)++; /* Ensure dm_put_device() on actual device. */ + TI_ERR_RET("Duplicate RAID device", -ENXIO); + } + } + + return 0; +} + +/* Set recovery bandwidth. */ +static void +recover_set_bandwidth(struct raid_set *rs, unsigned bandwidth) +{ + rs->recover.bandwidth = bandwidth; + rs->recover.bandwidth_work = 100 / bandwidth; +} + +/* Handle variable number of RAID parameters. */ +static int get_raid_variable_parms(struct dm_target *ti, char **argv, + struct variable_parms *vp) +{ + int p, value; + struct { + int action; /* -1: skip, 0: no pwer2 check, 1: power2 check */ + char *errmsg; + int min, max; + int *var, *var2, *var3; + } argctr[] = { + { 1, + "Invalid chunk size; must be -1 or 2^^n and <= 16384", + IO_SIZE_MIN, CHUNK_SIZE_MAX, + &vp->chunk_size_parm, &vp->chunk_size, &vp->io_size }, + { 0, + "Invalid number of stripes: must be -1 or >= 8 and <= 16384", + STRIPES_MIN, STRIPES_MAX, + &vp->stripes_parm, &vp->stripes, NULL }, + { 1, + "Invalid io size; must -1 or >= 8, 2^^n and less equal " + "min(BIO_MAX_SECTORS/2, chunk size)", + IO_SIZE_MIN, 0, /* Needs to be updated in loop below. */ + &vp->io_size_parm, &vp->io_size, NULL }, + { 1, + "Invalid recovery io size; must be -1 or " + "2^^n and less equal BIO_MAX_SECTORS/2", + RECOVER_IO_SIZE_MIN, BIO_MAX_SECTORS / 2, + &vp->recover_io_size_parm, &vp->recover_io_size, NULL }, + { 0, + "Invalid recovery bandwidth percentage; " + "must be -1 or > 0 and <= 100", + BANDWIDTH_MIN, BANDWIDTH_MAX, + &vp->bandwidth_parm, &vp->bandwidth, NULL }, + /* Handle sync argument seperately in loop. */ + { -1, + "Invalid recovery switch; must be \"sync\" or \"nosync\"" }, + { 0, + "Invalid number of recovery stripes;" + "must be -1, > 0 and <= 16384", + RECOVERY_STRIPES_MIN, RECOVERY_STRIPES_MAX, + &vp->recovery_stripes_parm, &vp->recovery_stripes, NULL }, + }, *varp; + + /* Fetch # of variable raid parameters. */ + if (sscanf(*(argv++), "%d", &vp->raid_parms) != 1 || + !range_ok(vp->raid_parms, 0, 7)) + TI_ERR("Bad variable raid parameters number"); + + /* Preset variable RAID parameters. */ + vp->chunk_size = CHUNK_SIZE_DEFAULT; + vp->io_size = IO_SIZE_DEFAULT; + vp->stripes = STRIPES_DEFAULT; + vp->recover_io_size = RECOVER_IO_SIZE_DEFAULT; + vp->bandwidth = BANDWIDTH_DEFAULT; + vp->recovery = 1; + vp->recovery_stripes = RECOVERY_STRIPES_DEFAULT; + + /* Walk the array of argument constraints for all given ones. */ + for (p = 0, varp = argctr; p < vp->raid_parms; p++, varp++) { + BUG_ON(varp >= ARRAY_END(argctr)); + + /* Special case for "[no]sync" string argument. */ + if (varp->action < 0) { + if (!strcmp(*argv, "sync")) + ; + else if (!strcmp(*argv, "nosync")) + vp->recovery = 0; + else + TI_ERR(varp->errmsg); + + argv++; + continue; + } + + /* + * Special case for io_size depending + * on previously set chunk size. + */ + if (p == 2) + varp->max = min(BIO_MAX_SECTORS / 2, vp->chunk_size); + + if (sscanf(*(argv++), "%d", &value) != 1 || + (value != -1 && + ((varp->action && !POWER_OF_2(value)) || + !range_ok(value, varp->min, varp->max)))) + TI_ERR(varp->errmsg); + + *varp->var = value; + if (value != -1) { + if (varp->var2) + *varp->var2 = value; + if (varp->var3) + *varp->var3 = value; + } + } + + return 0; +} + +/* Parse optional locking parameters. */ +static int get_raid_locking_parms(struct dm_target *ti, char **argv, + int *locking_parms, + struct dm_raid45_locking_type **locking_type) +{ + if (!strnicmp(argv[0], "locking", strlen(argv[0]))) { + char *lckstr = argv[1]; + size_t lcksz = strlen(lckstr); + + if (!strnicmp(lckstr, "none", lcksz)) { + *locking_type = &locking_none; + *locking_parms = 2; + } else if (!strnicmp(lckstr, "cluster", lcksz)) { + DMERR("locking type \"%s\" not yet implemented", + lckstr); + return -EINVAL; + } else { + DMERR("unknown locking type \"%s\"", lckstr); + return -EINVAL; + } + } + + *locking_parms = 0; + *locking_type = &locking_none; + return 0; +} + +/* Set backing device read ahead properties of RAID set. */ +static void rs_set_read_ahead(struct raid_set *rs, + unsigned sectors, unsigned stripes) +{ + unsigned ra_pages = dm_div_up(sectors, SECTORS_PER_PAGE); + struct mapped_device *md = dm_table_get_md(rs->ti->table); + struct backing_dev_info *bdi = &dm_disk(md)->queue->backing_dev_info; + + /* Set read-ahead for the RAID set and the component devices. */ + if (ra_pages) { + unsigned p = rs->set.raid_devs; + + bdi->ra_pages = stripes * ra_pages * rs->set.data_devs; + + while (p--) { + struct request_queue *q = + bdev_get_queue(rs->dev[p].dev->bdev); + + q->backing_dev_info.ra_pages = ra_pages; + } + } + + dm_put(md); +} + +/* Set congested function. */ +static void rs_set_congested_fn(struct raid_set *rs) +{ + struct mapped_device *md = dm_table_get_md(rs->ti->table); + struct backing_dev_info *bdi = &dm_disk(md)->queue->backing_dev_info; + + /* Set congested function and data. */ + bdi->congested_fn = rs_congested; + bdi->congested_data = rs; + dm_put(md); +} + +/* + * Construct a RAID4/5 mapping: + * + * log_type #log_params \ + * raid_type [#parity_dev] #raid_variable_params \ + * [locking "none"/"cluster"] + * #raid_devs #dev_to_initialize [ ]{3,} + * + * log_type = "core"/"disk", + * #log_params = 1-3 (1-2 for core dirty log type, 3 for disk dirty log only) + * log_params = [dirty_log_path] region_size [[no]sync]) + * + * raid_type = "raid4", "raid5_la", "raid5_ra", "raid5_ls", "raid5_rs" + * + * #parity_dev = N if raid_type = "raid4" + * o N = -1: pick default = last device + * o N >= 0 and < #raid_devs: parity device index + * + * #raid_variable_params = 0-7; raid_params (-1 = default): + * [chunk_size [#stripes [io_size [recover_io_size \ + * [%recovery_bandwidth [recovery_switch [#recovery_stripes]]]]]]] + * o chunk_size (unit to calculate drive addresses; must be 2^^n, > 8 + * and <= CHUNK_SIZE_MAX) + * o #stripes is number of stripes allocated to stripe cache + * (must be > 1 and < STRIPES_MAX) + * o io_size (io unit size per device in sectors; must be 2^^n and > 8) + * o recover_io_size (io unit size per device for recovery in sectors; + must be 2^^n, > SECTORS_PER_PAGE and <= region_size) + * o %recovery_bandwith is the maximum amount spend for recovery during + * application io (1-100%) + * o recovery switch = [sync|nosync] + * o #recovery_stripes is the number of recovery stripes used for + * parallel recovery of the RAID set + * If raid_variable_params = 0, defaults will be used. + * Any raid_variable_param can be set to -1 to apply a default + * + * #raid_devs = N (N >= 3) + * + * #dev_to_initialize = N + * -1: initialize parity on all devices + * >= 0 and < #raid_devs: initialize raid_path; used to force reconstruction + * of a failed devices content after replacement + * + * = device_path (eg, /dev/sdd1) + * = begin at offset on + * + */ +#define MIN_PARMS 13 +static int raid_ctr(struct dm_target *ti, unsigned argc, char **argv) +{ + int dev_to_init, dl_parms, i, locking_parms, + parity_parm, pi = -1, r, raid_devs; + unsigned speed; + sector_t tmp, sectors_per_dev; + struct dm_raid45_locking_type *locking; + struct raid_set *rs; + struct raid_type *raid_type; + struct variable_parms parms; + + /* Ensure minimum number of parameters. */ + if (argc < MIN_PARMS) + TI_ERR("Not enough parameters"); + + /* Fetch # of dirty log parameters. */ + if (sscanf(argv[1], "%d", &dl_parms) != 1 || + !range_ok(dl_parms, 1, 4711)) /* ;-) */ + TI_ERR("Bad dirty log parameters number"); + + /* Check raid_type. */ + raid_type = get_raid_type(argv[dl_parms + 2]); + if (!raid_type) + TI_ERR("Bad raid type"); + + /* In case of RAID4, parity drive is selectable. */ + parity_parm = !!(raid_type->level == raid4); + + /* Handle variable number of RAID parameters. */ + r = get_raid_variable_parms(ti, argv + dl_parms + parity_parm + 3, + &parms); + if (r) + return r; + + /* Handle any locking parameters. */ + r = get_raid_locking_parms(ti, + argv + dl_parms + parity_parm + + parms.raid_parms + 4, + &locking_parms, &locking); + if (r) + return r; + + /* # of raid devices. */ + i = dl_parms + parity_parm + parms.raid_parms + locking_parms + 4; + if (sscanf(argv[i], "%d", &raid_devs) != 1 || + raid_devs < raid_type->minimal_devs) + TI_ERR("Invalid number of raid devices"); + + /* In case of RAID4, check parity drive index is in limits. */ + if (raid_type->level == raid4) { + /* Fetch index of parity device. */ + if (sscanf(argv[dl_parms + 3], "%d", &pi) != 1 || + (pi != -1 && !range_ok(pi, 0, raid_devs - 1))) + TI_ERR("Invalid RAID4 parity device index"); + } + + /* + * Index of device to initialize starts at 0 + * + * o -1 -> don't initialize a selected device; + * initialize parity conforming to algorithm + * o 0..raid_devs-1 -> initialize respective device + * (used for reconstruction of a replaced device) + */ + if (sscanf(argv[dl_parms + parity_parm + parms.raid_parms + + locking_parms + 5], "%d", &dev_to_init) != 1 || + !range_ok(dev_to_init, -1, raid_devs - 1)) + TI_ERR("Invalid number for raid device to initialize"); + + /* Check # of raid device arguments. */ + if (argc - dl_parms - parity_parm - parms.raid_parms - 6 != + 2 * raid_devs) + TI_ERR("Wrong number of raid device/offset arguments"); + + /* + * Check that the table length is devisable + * w/o rest by (raid_devs - parity_devs) + */ + if (!multiple(ti->len, raid_devs - raid_type->parity_devs, + §ors_per_dev)) + TI_ERR("Target length not divisible by number of data devices"); + + /* + * Check that the device size is + * devisable w/o rest by chunk size + */ + if (!multiple(sectors_per_dev, parms.chunk_size, &tmp)) + TI_ERR("Device length not divisible by chunk_size"); + + /**************************************************************** + * Now that we checked the constructor arguments -> + * let's allocate the RAID set + ****************************************************************/ + rs = context_alloc(raid_type, &parms, raid_devs, sectors_per_dev, + ti, dl_parms, argv); + if (IS_ERR(rs)) + return PTR_ERR(rs); + + + rs->set.dev_to_init = rs->set.dev_to_init_parm = dev_to_init; + rs->set.pi = rs->set.pi_parm = pi; + + /* Set RAID4 parity drive index. */ + if (raid_type->level == raid4) + rs->set.pi = (pi == -1) ? rs->set.data_devs : pi; + + recover_set_bandwidth(rs, parms.bandwidth); + + /* Use locking type to lock stripe access. */ + rs->locking = locking; + + /* Get the device/offset tupels. */ + argv += dl_parms + 6 + parity_parm + parms.raid_parms; + r = dev_parms(rs, argv, &i); + if (r) + goto err; + + /* Set backing device information (eg. read ahead). */ + rs_set_read_ahead(rs, 2 * rs->set.chunk_size, 4 /* stripes */); + rs_set_congested_fn(rs); /* Set congested function. */ + SetRSCheckOverwrite(rs); /* Allow chunk overwrite checks. */ + speed = xor_optimize(rs); /* Select best xor algorithm. */ + + /* Set for recovery of any nosync regions. */ + if (parms.recovery) + SetRSRecover(rs); + else { + /* + * Need to free recovery stripe(s) here in case + * of nosync, because xor_optimize uses one. + */ + set_start_recovery(rs); + set_end_recovery(rs); + stripe_recover_free(rs); + } + + /* + * Make sure that dm core only hands maximum io size + * length down and pays attention to io boundaries. + */ + ti->split_io = rs->set.io_size; + ti->private = rs; + + /* Initialize work queue to handle this RAID set's io. */ + r = rs_workqueue_init(rs); + if (r) + goto err; + + rs_log(rs, speed); /* Log information about RAID set. */ + return 0; + +err: + context_free(rs, i); + return r; +} + +/* + * Destruct a raid mapping + */ +static void raid_dtr(struct dm_target *ti) +{ + struct raid_set *rs = ti->private; + + destroy_workqueue(rs->io.wq); + context_free(rs, rs->set.raid_devs); +} + +/* Raid mapping function. */ +static int raid_map(struct dm_target *ti, struct bio *bio, + union map_info *map_context) +{ + /* I don't want to waste stripe cache capacity. */ + if (bio_rw(bio) == READA) + return -EIO; + else { + struct raid_set *rs = ti->private; + + /* + * Get io reference to be waiting for to drop + * to zero on device suspension/destruction. + */ + io_get(rs); + bio->bi_sector -= ti->begin; /* Remap sector. */ + + /* Queue io to RAID set. */ + mutex_lock(&rs->io.in_lock); + bio_list_add(&rs->io.in, bio); + mutex_unlock(&rs->io.in_lock); + + /* Wake daemon to process input list. */ + wake_do_raid(rs); + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + (bio_data_dir(bio) == READ ? + S_BIOS_READ : S_BIOS_WRITE)); + return DM_MAPIO_SUBMITTED; /* Handle later. */ + } +} + +/* Device suspend. */ +static void raid_presuspend(struct dm_target *ti) +{ + struct raid_set *rs = ti->private; + struct dm_dirty_log *dl = rs->recover.dl; + + SetRSSuspend(rs); + + if (RSRecover(rs)) + dm_rh_stop_recovery(rs->recover.rh); + + cancel_delayed_work(&rs->io.dws_do_raid); + flush_workqueue(rs->io.wq); + wait_ios(rs); /* Wait for completion of all ios being processed. */ + + if (dl->type->presuspend && dl->type->presuspend(dl)) + /* FIXME: need better error handling. */ + DMWARN("log presuspend failed"); +} + +static void raid_postsuspend(struct dm_target *ti) +{ + struct raid_set *rs = ti->private; + struct dm_dirty_log *dl = rs->recover.dl; + + if (dl->type->postsuspend && dl->type->postsuspend(dl)) + /* FIXME: need better error handling. */ + DMWARN("log postsuspend failed"); + +} + +/* Device resume. */ +static void raid_resume(struct dm_target *ti) +{ + struct raid_set *rs = ti->private; + struct recover *rec = &rs->recover; + struct dm_dirty_log *dl = rec->dl; + + if (dl->type->resume && dl->type->resume(dl)) + /* Resume dirty log. */ + /* FIXME: need better error handling. */ + DMWARN("log resume failed"); + + rec->nr_regions_to_recover = + rec->nr_regions - dl->type->get_sync_count(dl); + + /* Restart any unfinished recovery. */ + if (RSRecover(rs)) { + set_start_recovery(rs); + dm_rh_start_recovery(rec->rh); + } + + ClearRSSuspend(rs); + wake_do_raid(rs); +} + +/* Return stripe cache size. */ +static unsigned sc_size(struct raid_set *rs) +{ + return to_sector(atomic_read(&rs->sc.stripes) * + (sizeof(struct stripe) + + (sizeof(struct stripe_chunk) + + (sizeof(struct page_list) + + to_bytes(rs->set.io_size) * + rs->set.raid_devs)) + + (rs->recover.end_jiffies ? + 0 : rs->recover.recovery_stripes * + to_bytes(rs->set.raid_devs * rs->recover.io_size)))); +} + +/* REMOVEME: status output for development. */ +static void raid_devel_stats(struct dm_target *ti, char *result, + unsigned *size, unsigned maxlen) +{ + unsigned sz = *size; + unsigned long j; + char buf[BDEVNAME_SIZE], *p; + struct stats_map *sm; + struct raid_set *rs = ti->private; + struct recover *rec = &rs->recover; + struct timespec ts; + + DMEMIT("%s %s %u\n", version, rs->xor.f->name, rs->xor.chunks); + DMEMIT("act_ios=%d ", io_ref(rs)); + DMEMIT("act_ios_max=%d\n", atomic_read(&rs->io.in_process_max)); + DMEMIT("act_stripes=%d ", sc_active(&rs->sc)); + DMEMIT("act_stripes_max=%d\n", + atomic_read(&rs->sc.active_stripes_max)); + + for (sm = stats_map; sm < ARRAY_END(stats_map); sm++) + DMEMIT("%s%d", sm->str, atomic_read(rs->stats + sm->type)); + + DMEMIT(" checkovr=%s\n", RSCheckOverwrite(rs) ? "on" : "off"); + DMEMIT("sc=%u/%u/%u/%u/%u/%u/%u\n", rs->set.chunk_size, + atomic_read(&rs->sc.stripes), rs->set.io_size, + rec->recovery_stripes, rec->io_size, rs->sc.hash.buckets, + sc_size(rs)); + + j = (rec->end_jiffies ? rec->end_jiffies : jiffies) - + rec->start_jiffies; + jiffies_to_timespec(j, &ts); + sprintf(buf, "%ld.%ld", ts.tv_sec, ts.tv_nsec); + p = strchr(buf, '.'); + p[3] = 0; + + DMEMIT("rg=%llu/%llu/%llu/%u %s\n", + (unsigned long long) rec->nr_regions_recovered, + (unsigned long long) rec->nr_regions_to_recover, + (unsigned long long) rec->nr_regions, rec->bandwidth, buf); + + *size = sz; +} + +static int raid_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) +{ + unsigned p, sz = 0; + char buf[BDEVNAME_SIZE]; + struct raid_set *rs = ti->private; + int raid_parms[] = { + rs->set.chunk_size_parm, + rs->sc.stripes_parm, + rs->set.io_size_parm, + rs->recover.io_size_parm, + rs->recover.bandwidth_parm, + -2, + rs->recover.recovery_stripes, + }; + + switch (type) { + case STATUSTYPE_INFO: + /* REMOVEME: statistics. */ + if (RSDevelStats(rs)) + raid_devel_stats(ti, result, &sz, maxlen); + + DMEMIT("%u ", rs->set.raid_devs); + + for (p = 0; p < rs->set.raid_devs; p++) + DMEMIT("%s ", + format_dev_t(buf, rs->dev[p].dev->bdev->bd_dev)); + + DMEMIT("1 "); + for (p = 0; p < rs->set.raid_devs; p++) { + DMEMIT("%c", !DevFailed(rs->dev + p) ? 'A' : 'D'); + + if (p == rs->set.pi) + DMEMIT("p"); + + if (rs->set.dev_to_init == p) + DMEMIT("i"); + } + + break; + case STATUSTYPE_TABLE: + sz = rs->recover.dl->type->status(rs->recover.dl, type, + result, maxlen); + DMEMIT("%s %u ", rs->set.raid_type->name, + rs->set.raid_parms); + + for (p = 0; p < rs->set.raid_parms; p++) { + if (raid_parms[p] > -2) + DMEMIT("%d ", raid_parms[p]); + else + DMEMIT("%s ", rs->recover.recovery ? + "sync" : "nosync"); + } + + DMEMIT("%u %d ", rs->set.raid_devs, rs->set.dev_to_init); + + for (p = 0; p < rs->set.raid_devs; p++) + DMEMIT("%s %llu ", + format_dev_t(buf, rs->dev[p].dev->bdev->bd_dev), + (unsigned long long) rs->dev[p].start); + } + + return 0; +} + +/* + * Message interface + */ +enum raid_msg_actions { + act_bw, /* Recovery bandwidth switch. */ + act_dev, /* Device failure switch. */ + act_overwrite, /* Stripe overwrite check. */ + act_stats, /* Development statistics switch. */ + act_sc, /* Stripe cache switch. */ + + act_on, /* Set entity on. */ + act_off, /* Set entity off. */ + act_reset, /* Reset entity. */ + + act_set = act_on, /* Set # absolute. */ + act_grow = act_off, /* Grow # by an amount. */ + act_shrink = act_reset, /* Shrink # by an amount. */ +}; + +/* Turn a delta into an absolute value. */ +static int _absolute(unsigned long action, int act, int r) +{ + /* Make delta absolute. */ + if (test_bit(act_set, &action)) + ; + else if (test_bit(act_grow, &action)) + r += act; + else if (test_bit(act_shrink, &action)) + r = act - r; + else + r = -EINVAL; + + return r; +} + + /* Change recovery io bandwidth. */ +static int bandwidth_change(struct dm_msg *msg, void *context) +{ + struct raid_set *rs = context; + int act = rs->recover.bandwidth; + int bandwidth = DM_MSG_INT_ARG(msg); + + if (range_ok(bandwidth, BANDWIDTH_MIN, BANDWIDTH_MAX)) { + /* Make delta bandwidth absolute. */ + bandwidth = _absolute(msg->action, act, bandwidth); + + /* Check range. */ + if (range_ok(bandwidth, BANDWIDTH_MIN, BANDWIDTH_MAX)) { + recover_set_bandwidth(rs, bandwidth); + return 0; + } + } + + set_bit(dm_msg_ret_arg, &msg->ret); + set_bit(dm_msg_ret_inval, &msg->ret); + return -EINVAL; +} + +/* Set/reset development feature flags. */ +static int devel_flags(struct dm_msg *msg, void *context) +{ + struct raid_set *rs = context; + + if (test_bit(act_on, &msg->action)) + return test_and_set_bit(msg->spec->parm, + &rs->io.flags) ? -EPERM : 0; + else if (test_bit(act_off, &msg->action)) + return test_and_clear_bit(msg->spec->parm, + &rs->io.flags) ? 0 : -EPERM; + else if (test_bit(act_reset, &msg->action)) { + if (test_bit(act_stats, &msg->action)) { + stats_reset(rs); + goto on; + } else if (test_bit(act_overwrite, &msg->action)) { +on: + set_bit(msg->spec->parm, &rs->io.flags); + return 0; + } + } + + return -EINVAL; +} + +/* Resize the stripe cache. */ +static int sc_resize(struct dm_msg *msg, void *context) +{ + int act, stripes; + struct raid_set *rs = context; + + /* Deny permission in case the daemon is still resizing!. */ + if (atomic_read(&rs->sc.stripes_to_set)) + return -EPERM; + + stripes = DM_MSG_INT_ARG(msg); + if (stripes > 0) { + act = atomic_read(&rs->sc.stripes); + + /* Make delta stripes absolute. */ + stripes = _absolute(msg->action, act, stripes); + + /* + * Check range and that the # of stripes changes. + * We leave the resizing to the wroker. + */ + if (range_ok(stripes, STRIPES_MIN, STRIPES_MAX) && + stripes != atomic_read(&rs->sc.stripes)) { + atomic_set(&rs->sc.stripes_to_set, stripes); + wake_do_raid(rs); + return 0; + } + } + + set_bit(dm_msg_ret_arg, &msg->ret); + set_bit(dm_msg_ret_inval, &msg->ret); + return -EINVAL; +} + +/* Parse the RAID message action. */ +/* + * 'ba[ndwidth] {se[t],g[row],sh[rink]} #' # e.g 'ba se 50' + * "o[verwrite] {on,of[f],r[eset]}' # e.g. 'o of' + * 'sta[tistics] {on,of[f],r[eset]}' # e.g. 'stat of' + * 'str[ipecache] {se[t],g[row],sh[rink]} #' # e.g. 'stripe set 1024' + * + */ +static int raid_message(struct dm_target *ti, unsigned argc, char **argv) +{ + /* Variables to store the parsed parameters im. */ + static int i[2]; + static unsigned long *i_arg[] = { + (unsigned long *) i + 0, + (unsigned long *) i + 1, + }; + + /* Declare all message option strings. */ + static char *str_sgs[] = { "set", "grow", "shrink" }; + static char *str_oor[] = { "on", "off", "reset" }; + + /* Declare all actions. */ + static unsigned long act_sgs[] = { act_set, act_grow, act_shrink }; + static unsigned long act_oor[] = { act_on, act_off, act_reset }; + + /* Bandwidth option. */ + static struct dm_message_option bw_opt = { 3, str_sgs, act_sgs }; + static struct dm_message_argument bw_args = { + 1, i_arg, { dm_msg_int_t } + }; + + static struct dm_message_argument null_args = { + 0, NULL, { dm_msg_int_t } + }; + + /* Overwrite and statistics option. */ + static struct dm_message_option ovr_stats_opt = { 3, str_oor, act_oor }; + + /* Sripecache option. */ + static struct dm_message_option stripe_opt = { 3, str_sgs, act_sgs }; + + /* Declare messages. */ + static struct dm_msg_spec specs[] = { + { "bandwidth", act_bw, &bw_opt, &bw_args, + 0, bandwidth_change }, + { "overwrite", act_overwrite, &ovr_stats_opt, &null_args, + RS_CHECK_OVERWRITE, devel_flags }, + { "statistics", act_stats, &ovr_stats_opt, &null_args, + RS_DEVEL_STATS, devel_flags }, + { "stripecache", act_sc, &stripe_opt, &bw_args, + 0, sc_resize }, + }; + + /* The message for the parser. */ + struct dm_msg msg = { + .num_specs = ARRAY_SIZE(specs), + .specs = specs, + }; + + return dm_message_parse(TARGET, &msg, ti->private, argc, argv); +} +/* + * END message interface + */ + +static struct target_type raid_target = { + .name = "raid45", + .version = {1, 0, 0}, + .module = THIS_MODULE, + .ctr = raid_ctr, + .dtr = raid_dtr, + .map = raid_map, + .presuspend = raid_presuspend, + .postsuspend = raid_postsuspend, + .resume = raid_resume, + .status = raid_status, + .message = raid_message, +}; + +static void init_exit(const char *bad_msg, const char *good_msg, int r) +{ + if (r) + DMERR("Failed to %sregister target [%d]", bad_msg, r); + else + DMINFO("%s %s", good_msg, version); +} + +static int __init dm_raid_init(void) +{ + int r = dm_register_target(&raid_target); + + init_exit("", "initialized", r); + return r; +} + +static void __exit dm_raid_exit(void) +{ + dm_unregister_target(&raid_target); + init_exit("un", "exit", 0); +} + +/* Module hooks. */ +module_init(dm_raid_init); +module_exit(dm_raid_exit); + +MODULE_DESCRIPTION(DM_NAME " raid4/5 target"); +MODULE_AUTHOR("Heinz Mauelshagen "); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("dm-raid4"); +MODULE_ALIAS("dm-raid5"); --- linux-2.6.35.orig/ubuntu/dm-raid4-5/dm-raid4-5.h +++ linux-2.6.35/ubuntu/dm-raid4-5/dm-raid4-5.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2006 Red Hat GmbH + * + * Module Author: Heinz Mauelshagen (Mauelshagen@RedHat.com) + * + * This file is released under the GPL. + * + */ + +#ifndef _DM_RAID45_H +#define _DM_RAID45_H + +/* Factor out to dm.h! */ +#define STR_LEN(ptr, str) ptr, str, strlen(ptr) + +enum lock_type { RAID45_EX, RAID45_SHARED }; + +struct dmraid45_locking_type { + /* Request a lock on a stripe. */ + void* (*lock)(sector_t key, enum lock_type type); + + /* Release a lock on a stripe. */ + void (*unlock)(void *lock_handle); + +}; + +#endif --- linux-2.6.35.orig/ubuntu/dm-raid4-5/Kconfig +++ linux-2.6.35/ubuntu/dm-raid4-5/Kconfig @@ -0,0 +1,6 @@ +config DM_RAID45 + tristate "RAID 4/5 target (EXPERIMENTAL)" + depends on BLK_DEV_DM && XOR_BLOCKS && EXPERIMENTAL + default m + ---help--- + A target that supports RAID4 and RAID5 mappings. --- linux-2.6.35.orig/ubuntu/dm-raid4-5/Makefile +++ linux-2.6.35/ubuntu/dm-raid4-5/Makefile @@ -0,0 +1,4 @@ +EXTRA_CFLAGS += -I$(srctree)/drivers/md + +obj-$(CONFIG_DM_RAID45) := dm-raid45.o +dm-raid45-objs := dm-raid4-5.o dm-memcache.o dm-region-hash.o dm-message.o --- linux-2.6.35.orig/ubuntu/compcache/BOM +++ linux-2.6.35/ubuntu/compcache/BOM @@ -0,0 +1,2 @@ +Downloaded from: http://code.google.com/p/compcache/ +Current Version: 0.5.3 --- linux-2.6.35.orig/ubuntu/compcache/xvmalloc_int.h +++ linux-2.6.35/ubuntu/compcache/xvmalloc_int.h @@ -0,0 +1,86 @@ +/* + * xvmalloc_int.c + * + * Copyright (C) 2008, 2009 Nitin Gupta + * + * This code is released using a dual license strategy: GPL/LGPL + * You can choose the licence that better fits your requirements. + * + * Released under the terms of GNU General Public License Version 2.0 + * Released under the terms of GNU Lesser General Public License Version 2.1 + */ + +#ifndef _XVMALLOC_INT_H_ +#define _XVMALLOC_INT_H_ + +#include +#include + +/* User configurable params */ + +/* This must be greater than sizeof(LinkFree) */ +#define XV_MIN_ALLOC_SIZE 32 +#define XV_MAX_ALLOC_SIZE (PAGE_SIZE - XV_ALIGN) + +/* Must be power of two */ +#define XV_ALIGN_SHIFT 2 +#define XV_ALIGN (1 << XV_ALIGN_SHIFT) +#define XV_ALIGN_MASK (XV_ALIGN - 1) + +/* Free lists are separated by FL_DELTA bytes */ +#define FL_DELTA_SHIFT 3 +#define FL_DELTA (1 << FL_DELTA_SHIFT) +#define FL_DELTA_MASK (FL_DELTA - 1) +#define NUM_FREE_LISTS ((XV_MAX_ALLOC_SIZE - XV_MIN_ALLOC_SIZE) \ + / FL_DELTA + 1) + +#define MAX_FLI DIV_ROUND_UP(NUM_FREE_LISTS, BITS_PER_LONG) + +/* End of user params */ + +enum blockflags { + BLOCK_FREE, + PREV_FREE, + __NR_BLOCKFLAGS, +}; + +#define FLAGS_MASK XV_ALIGN_MASK +#define PREV_MASK (~FLAGS_MASK) + +struct freelist_entry { + u32 pagenum; + u16 offset; + u16 pad; +}; + +struct link_free { + u32 prev_pagenum; + u32 next_pagenum; + u16 prev_offset; + u16 next_offset; +}; + +struct block_header { + union { + /* This common header must be ALIGN bytes */ + u8 common[XV_ALIGN]; + struct { + u16 size; + u16 prev; + }; + }; + struct link_free link; +}; + +struct xv_pool { + ulong flbitmap; + ulong slbitmap[MAX_FLI]; + spinlock_t lock; + + struct freelist_entry freelist[NUM_FREE_LISTS]; + + /* stats */ + u64 total_pages; +}; + +#endif --- linux-2.6.35.orig/ubuntu/compcache/compat.h +++ linux-2.6.35/ubuntu/compcache/compat.h @@ -0,0 +1,34 @@ +#ifndef _CCACHE_COMPAT_H_ +#define _CCACHE_COMPAT_H_ + +#include + +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) +#define BIO_IO_ERROR(bio) bio_io_error(bio, PAGE_SIZE) +#define BIO_ENDIO(bio, error) bio_endio(bio, PAGE_SIZE, error) +#else +#define BIO_IO_ERROR(bio) bio_io_error(bio) +#define BIO_ENDIO(bio, error) bio_endio(bio, error) +#endif + +#ifndef pr_err +#define pr_err(fmt, arg...) \ + printk(KERN_ERR fmt, ##arg) +#endif + +#ifndef pr_warning +#define pr_warning(fmt, arg...) \ + printk(KERN_WARNING fmt, ##arg) +#endif + +#ifndef pr_info +#define pr_info(fmt, arg...) \ + printk(KERN_ERR fmt, ##arg) +#endif + +#ifdef bio_discard +#define SWAP_DISCARD_SUPPORTED +#endif + +#endif + --- linux-2.6.35.orig/ubuntu/compcache/ramzswap.h +++ linux-2.6.35/ubuntu/compcache/ramzswap.h @@ -0,0 +1,159 @@ +/* + * Compressed RAM based swap device + * + * Copyright (C) 2008, 2009 Nitin Gupta + * + * This RAM based block device acts as swap disk. + * Pages swapped to this device are compressed and + * stored in memory. + * + * Released under the terms of GNU General Public License Version 2.0 + * + * Project home: http://compcache.googlecode.com + */ + +#ifndef _RAMZSWAP_H_ +#define _RAMZSWAP_H_ + +#include "xvmalloc.h" + +/* + * Stored at beginning of each compressed object. + * + * It stores back-reference to table entry which points to this + * object. This is required to support memory defragmentation or + * migrating compressed pages to backing swap disk. + */ +struct zobj_header { +#if 0 + u32 table_idx; +#endif +}; + +/*-- Configurable parameters */ + +/* Default ramzswap disk size: 25% of total RAM */ +#define DEFAULT_DISKSIZE_PERC_RAM 25 +#define DEFAULT_MEMLIMIT_PERC_RAM 15 + +/* + * Max compressed page size when backing device is provided. + * Pages that compress to size greater than this are sent to + * physical swap disk. + */ +#define MAX_CPAGE_SIZE_BDEV (PAGE_SIZE / 2) + +/* + * Max compressed page size when there is no backing dev. + * Pages that compress to size greater than this are stored + * uncompressed in memory. + */ +#define MAX_CPAGE_SIZE_NOBDEV (PAGE_SIZE / 4 * 3) + +/* + * NOTE: MAX_CPAGE_SIZE_{BDEV,NOBDEV} sizes must be + * less than or equal to: + * XV_MAX_ALLOC_SIZE - sizeof(struct zobj_header) + * since otherwise xvMalloc would always return failure. + */ + +/*-- End of configurable params */ + +#define SECTOR_SHIFT 9 +#define SECTOR_SIZE (1 << SECTOR_SHIFT) +#define SECTORS_PER_PAGE_SHIFT (PAGE_SHIFT - SECTOR_SHIFT) +#define SECTORS_PER_PAGE (1 << SECTORS_PER_PAGE_SHIFT) + +/* Message prefix */ +#define C "ramzswap: " + +/* Debugging and Stats */ +#define NOP do { } while (0) + +#if defined(CONFIG_BLK_DEV_RAMZSWAP_STATS) +#define STATS +#endif + +#if defined(STATS) +#define stat_inc(stat) ((stat)++) +#define stat_dec(stat) ((stat)--) +#define stat_inc_if_less(stat, val1, val2) \ + ((stat) += ((val1) < (val2) ? 1 : 0)) +#define stat_dec_if_less(stat, val1, val2) \ + ((stat) -= ((val1) < (val2) ? 1 : 0)) +#else /* STATS */ +#define stat_inc(x) NOP +#define stat_dec(x) NOP +#define stat_inc_if_less(x, v1, v2) NOP +#define stat_dec_if_less(x, v1, v2) NOP +#endif /* STATS */ + +/* Flags for ramzswap pages (table[page_no].flags) */ +enum rzs_pageflags { + /* Page is stored uncompressed */ + RZS_UNCOMPRESSED, + + /* Page consists entirely of zeros */ + RZS_ZERO, + + __NR_RZS_PAGEFLAGS, +}; + +/*-- Data structures */ + +/* Indexed by page no. */ +struct table { + u32 pagenum; + u16 offset; + u8 count; /* object ref count (not yet used) */ + u8 flags; +}; + +struct ramzswap { + struct xv_pool *mem_pool; + void *compress_workmem; + void *compress_buffer; + struct table *table; + struct mutex lock; + struct gendisk *disk; + /* + * This is limit on compressed data size (stats.compr_size) + * Its applicable only when backing swap device is present. + */ + size_t memlimit; /* bytes */ + /* + * This is limit on amount of *uncompressed* worth of data + * we can hold. When backing swap device is provided, it is + * set equal to device size. + */ + size_t disksize; /* bytes */ + + /* backing swap device info */ + struct block_device *backing_swap; + struct file *swap_file; + int old_block_size; +}; + +struct ramzswap_stats { + /* basic stats */ + size_t compr_size; /* compressed size of pages stored - + * needed to enforce memlimit */ + /* more stats */ +#if defined(STATS) + u64 num_reads; /* failed + successful */ + u64 num_writes; /* --do-- */ + u64 failed_reads; /* can happen when memory is too low */ + u64 failed_writes; /* should NEVER! happen */ + u64 invalid_io; /* non-swap I/O requests */ + u64 pages_discard; /* no. of pages freed by discard callback */ + u32 pages_zero; /* no. of zero filled pages */ + u32 pages_stored; /* no. of pages currently stored */ + u32 good_compress; /* no. of pages with compression ratio<=50% */ + u32 pages_expand; /* no. of incompressible pages */ + u64 bdev_num_reads; /* no. of reads on backing dev */ + u64 bdev_num_writes; /* no. of writes on backing dev */ +#endif +}; +/*-- */ + +#endif --- linux-2.6.35.orig/ubuntu/compcache/xvmalloc.h +++ linux-2.6.35/ubuntu/compcache/xvmalloc.h @@ -0,0 +1,30 @@ +/* + * xvmalloc.h + * + * Copyright (C) 2008, 2009 Nitin Gupta + * + * This code is released using a dual license strategy: GPL/LGPL + * You can choose the licence that better fits your requirements. + * + * Released under the terms of GNU General Public License Version 2.0 + * Released under the terms of GNU Lesser General Public License Version 2.1 + */ + +#ifndef _XVMALLOC_H_ +#define _XVMALLOC_H_ + +#include + +struct xv_pool; + +struct xv_pool *xv_create_pool(void); +void xv_destroy_pool(struct xv_pool *pool); + +int xv_malloc(struct xv_pool *pool, u32 size, u32 *pagenum, u32 *offset, + gfp_t flags); +void xv_free(struct xv_pool *pool, u32 pagenum, u32 offset); + +u32 xv_get_object_size(void *obj); +u64 xv_get_total_size_bytes(struct xv_pool *pool); + +#endif --- linux-2.6.35.orig/ubuntu/compcache/GPL.txt +++ linux-2.6.35/ubuntu/compcache/GPL.txt @@ -0,0 +1,280 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS --- linux-2.6.35.orig/ubuntu/compcache/Changelog +++ linux-2.6.35/ubuntu/compcache/Changelog @@ -0,0 +1,82 @@ +version 0.5.3 (8/4/2009) + - Major cleanups. + - Rename module: compcache.ko -> ramzswap.ko + - Rename params: backing_dev -> backing_swap + - Updated use_compcache.sh script with detailed + documentation on parameters. + - LZO de/compress modules are no longer packaged + with compcache. Most distros now include these. + +version 0.5.2 (11/3/2009) + - Can forward incompressible pages to physical swap disk. + - New module params: + - memlimit_kb + - disksize_kb + - backing_dev + See use_compcache.sh for documentation on these params. + - Modified use_compcache.sh script to handle new params. + - Detect zero-filled pages and don't allocate any memory + for them. + +version 0.5.1 (22/1/2009) + - Fix crash on x86 systems with higmem (mem > ~1G). + This required minor changes to atomic (un)map functions (see Issue #20). + +version 0.5 (16/1/2009) + - Fix crash in case compcache init fails. + +version 0.5pre4 (10/1/2009) + - Support discarding pages for freed swap blocks (requires 2.6.28-git14). + This feature will be disabled if compiled for older kernel. + - Mark ramzswap as "solid-state" block device (requires 2.6.26-git14). + - Fixed incorrect stats reporting in /proc/compcache (some + new stats added too). + +version 0.5pre3 (5/1/2009) + - Use kmap_atomic() in xvMalloc. This fixes issue #19 + - Remove xvMapPage() and xvUnmapMap() from xvMalloc. + +version 0.5pre2 (28/10/2008) + - Alloc full page for uncompressible pages instead + of returning I/O error. + - Warn users when using ramzswap > (2 x RAM size) + +version 0.5pre1 (15/10/2008) + - Replaced TLSF with xvMalloc memory allocator + http://code.google.com/p/compcache/wiki/xvMalloc + +version 0.4 (13/8/2008) + - Enable debug and stats option for compcache and tlsf by default + proc nodes: /proc/{tlsfinfo,compcache} + - Fix crash when reading /proc/tlsfinfo + - Lots of cleanups: clean compile on x64 + +version 0.3 (17/3/2008) + - Fix spurious swap read failures + - Better swap request filtering + - Swap device again renamed to /dev/ramzswap0 + This is to prevent Ubuntu installer from presenting + this device as possible installation target (see Issue #5) + - use_compcache.sh script now waits for disk node to be created + instead of arbitrary sleep (see Issue #6). + - Modified scripts: use_compcache.sh and unuse_compcache.sh + to now use new device name (compcache0 -> ramzswap0). + +version 0.2 (3/3/2008) + - Fixed bug on systems with highmem + - Better filtering-out of non-swap requests + - Export statistics through proc nodes: + - /proc/compcache + - /proc/tlsfinfo + - Debug and Statistics support for allocator + and compcache can now be individually turned + on/off by setting DEBUG, STATS to 0/1 in + respective header files + - Swap device now renamed to /dev/compcache0 + - Added scripts: use_compcache.sh and unuse_compcache.sh + See README for usage + - Default compcache size set to 25% of RAM + - Lots of code cleanups + - Updated README + - Created Changelog :) + --- linux-2.6.35.orig/ubuntu/compcache/ramzswap.c +++ linux-2.6.35/ubuntu/compcache/ramzswap.c @@ -0,0 +1,1049 @@ +/* + * Compressed RAM based swap device + * + * Copyright (C) 2008, 2009 Nitin Gupta + * + * This RAM based block device acts as swap disk. + * Pages swapped to this device are compressed and + * stored in memory. + * + * Released under the terms of GNU General Public License Version 2.0 + * + * Project home: http://compcache.googlecode.com + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "compat.h" +#include "ramzswap.h" + +/* Globals */ +static struct ramzswap rzs; +static struct ramzswap_stats stats; +/* + * Pages that compress to larger than this size are + * forwarded to backing swap, if present or stored + * uncompressed in memory otherwise. + */ +static unsigned int MAX_CPAGE_SIZE; + +/* Module params (documentation at end) */ +static unsigned long disksize_kb; +static unsigned long memlimit_kb; +static char *backing_swap; + +static int __init ramzswap_init(void); +static struct block_device_operations ramzswap_devops = { + .owner = THIS_MODULE, +}; + +static int test_flag(u32 index, enum rzs_pageflags flag) +{ + return rzs.table[index].flags & BIT(flag); +} + +static void set_flag(u32 index, enum rzs_pageflags flag) +{ + rzs.table[index].flags |= BIT(flag); +} + +static void clear_flag(u32 index, enum rzs_pageflags flag) +{ + rzs.table[index].flags &= ~BIT(flag); +} + +static int page_zero_filled(void *ptr) +{ + u32 pos; + u64 *page; + + page = (u64 *)ptr; + + for (pos = 0; pos != PAGE_SIZE / sizeof(*page); pos++) { + if (page[pos]) + return 0; + } + + return 1; +} + +/* + * Given pair, provide a dereferencable pointer. + */ +static void *get_ptr_atomic(u32 pagenum, u16 offset, enum km_type type) +{ + unsigned char *page; + + page = kmap_atomic(pfn_to_page(pagenum), type); + return page + offset; +} + +static void put_ptr_atomic(void *ptr, enum km_type type) +{ + kunmap_atomic(ptr, type); +} + +#if defined(STATS) +static struct proc_dir_entry *proc; + +static int proc_ramzswap_read(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + int len; + size_t succ_writes, mem_used; + unsigned int good_compress_perc = 0, no_compress_perc = 0; + + mem_used = xv_get_total_size_bytes(rzs.mem_pool) + + (stats.pages_expand << PAGE_SHIFT); + + if (off > 0) { + *eof = 1; + return 0; + } + +#define K(x) ((x) >> 10) + /* Basic stats */ + len = sprintf(page, + "DiskSize: %8zu kB\n", + (size_t)(K(rzs.disksize))); + + if (rzs.backing_swap) { + /* This must always be less than ComprDataSize */ + len += sprintf(page + len, + "MemLimit: %8zu kB\n", + K(rzs.memlimit)); + } + + succ_writes = stats.num_writes - stats.failed_writes; + + if (succ_writes && stats.pages_stored) { + good_compress_perc = stats.good_compress * 100 + / stats.pages_stored; + no_compress_perc = stats.pages_expand * 100 + / stats.pages_stored; + } + + /* Extended stats */ + len += sprintf(page + len, + "NumReads: %8llu\n" + "NumWrites: %8llu\n" + "FailedReads: %8llu\n" + "FailedWrites: %8llu\n" + "InvalidIO: %8llu\n" + "PagesDiscard: %8llu\n" + "ZeroPages: %8u\n" + "GoodCompress: %8u %%\n" + "NoCompress: %8u %%\n" + "PagesStored: %8u\n" + "PagesUsed: %8zu\n" + "OrigDataSize: %8zu kB\n" + "ComprDataSize: %8zu kB\n" + "MemUsedTotal: %8zu kB\n", + stats.num_reads, + stats.num_writes, + stats.failed_reads, + stats.failed_writes, + stats.invalid_io, + stats.pages_discard, + stats.pages_zero, + good_compress_perc, + no_compress_perc, + stats.pages_stored, + mem_used >> PAGE_SHIFT, + (size_t)(K(stats.pages_stored << PAGE_SHIFT)), + (size_t)(K(stats.compr_size)), + (size_t)(K(mem_used))); + + if (rzs.backing_swap) { + /* This must always be less than ComprDataSize */ + len += sprintf(page + len, + "BDevNumReads: %8llu\n" + "BDevNumWrites: %8llu\n", + stats.bdev_num_reads, + stats.bdev_num_writes); + } + + return len; +} +#endif /* STATS */ + +/* + * Check if value of backing_swap module param is sane. + * Claim this device and set ramzswap size equal to + * size of this block device. + */ +static int setup_backing_swap(void) +{ + int error = 0; + struct inode *inode; + struct file *swap_file; + struct address_space *mapping; + struct block_device *bdev = NULL; + + if (backing_swap == NULL) { + pr_debug(C "backing_swap param not given\n"); + goto out; + } + + pr_info(C "Using backing swap device: %s\n", backing_swap); + + swap_file = filp_open(backing_swap, O_RDWR | O_LARGEFILE, 0); + if (IS_ERR(swap_file)) { + pr_err(C "Error opening backing device: %s\n", backing_swap); + error = -EINVAL; + goto out; + } + + mapping = swap_file->f_mapping; + inode = mapping->host; + + if (S_ISBLK(inode->i_mode)) { + bdev = I_BDEV(inode); + error = bd_claim(bdev, ramzswap_init); + if (error < 0) { + bdev = NULL; + goto bad_param; + } + rzs.old_block_size = block_size(bdev); + error = set_blocksize(bdev, PAGE_SIZE); + if (error < 0) + goto bad_param; + } else { + /* TODO: support for regular file as backing swap */ + pr_info(C "%s is not a block device.\n", backing_swap); + error = -EINVAL; + goto out; + } + + rzs.swap_file = swap_file; + rzs.backing_swap = bdev; + rzs.disksize = i_size_read(inode); + BUG_ON(!rzs.disksize); + + return 0; + +bad_param: + if (bdev) { + set_blocksize(bdev, rzs.old_block_size); + bd_release(bdev); + } + filp_close(swap_file, NULL); + +out: + rzs.backing_swap = NULL; + return error; +} + +/* + * Check if request is within bounds and page aligned. + */ +static inline int valid_swap_request(struct bio *bio) +{ + if (unlikely( + (bio->bi_sector >= (rzs.disksize >> SECTOR_SHIFT)) || + (bio->bi_sector & (SECTORS_PER_PAGE - 1)) || + (bio->bi_vcnt != 1) || + (bio->bi_size != PAGE_SIZE) || + (bio->bi_io_vec[0].bv_offset != 0))) { + + return 0; + } + + /* swap request is valid */ + return 1; +} + +static void ramzswap_free_page(size_t index) +{ + u32 clen; + void *obj; + + u32 pagenum = rzs.table[index].pagenum; + u32 offset = rzs.table[index].offset; + + if (unlikely(test_flag(index, RZS_UNCOMPRESSED))) { + clen = PAGE_SIZE; + __free_page(pfn_to_page(pagenum)); + clear_flag(index, RZS_UNCOMPRESSED); + stat_dec(stats.pages_expand); + goto out; + } + + obj = get_ptr_atomic(pagenum, offset, KM_USER0); + clen = xv_get_object_size(obj) - sizeof(struct zobj_header); + put_ptr_atomic(obj, KM_USER0); + + xv_free(rzs.mem_pool, pagenum, offset); + stat_dec_if_less(stats.good_compress, clen, PAGE_SIZE / 2 + 1); + +out: + stats.compr_size -= clen; + stat_dec(stats.pages_stored); + + rzs.table[index].pagenum = 0; + rzs.table[index].offset = 0; +} + +#ifdef SWAP_DISCARD_SUPPORTED +static int ramzswap_prepare_discard(struct request_queue *q, + struct request *req) +{ + return 0; +} + +/* + * Called by main I/O handler function. This helper + * function handles 'discard' I/O requests which means + * that some swap pages are no longer required, so + * swap device can take needed action -- we free memory + * allocated for these pages. + */ +static int ramzswap_discard(struct bio *bio) +{ + size_t index, start_page, num_pages; + + start_page = bio->bi_sector >> SECTORS_PER_PAGE_SHIFT; + num_pages = bio->bi_size >> (SECTOR_SHIFT + SECTORS_PER_PAGE_SHIFT); + + for (index = start_page; index < start_page + num_pages; index++) { + if (rzs.table[index].pagenum) { + ramzswap_free_page(index); + stat_inc(stats.pages_discard); + } + } + + set_bit(BIO_UPTODATE, &bio->bi_flags); + BIO_ENDIO(bio, 0); + return 0; +} +#endif + +int handle_zero_page(struct bio *bio) +{ + void *user_mem; + struct page *page = bio->bi_io_vec[0].bv_page; + + user_mem = get_ptr_atomic(page_to_pfn(page), 0, KM_USER0); + memset(user_mem, 0, PAGE_SIZE); + put_ptr_atomic(user_mem, KM_USER0); + + set_bit(BIO_UPTODATE, &bio->bi_flags); + BIO_ENDIO(bio, 0); + return 0; +} + +int handle_uncompressed_page(struct bio *bio) +{ + u32 index; + struct page *page; + unsigned char *user_mem, *cmem; + + page = bio->bi_io_vec[0].bv_page; + index = bio->bi_sector >>SECTORS_PER_PAGE_SHIFT; + + user_mem = get_ptr_atomic(page_to_pfn(page), 0, KM_USER0); + cmem = get_ptr_atomic(rzs.table[index].pagenum, + rzs.table[index].offset, KM_USER1); + + memcpy(user_mem, cmem, PAGE_SIZE); + put_ptr_atomic(user_mem, KM_USER0); + put_ptr_atomic(cmem, KM_USER1); + + set_bit(BIO_UPTODATE, &bio->bi_flags); + BIO_ENDIO(bio, 0); + return 0; +} + + +/* + * Called when request page is not present in ramzswap. + * Its either in backing swap device (if present) or + * this is an attempt to read before any previous write + * to this location - this happens due to readahead when + * swap device is read from user-space (e.g. during swapon) + */ +int handle_ramzswap_fault(struct bio *bio) +{ + void *user_mem; + struct page *page = bio->bi_io_vec[0].bv_page; + + /* + * Always forward such requests to backing swap + * device (if present) + */ + if (rzs.backing_swap) { + stat_dec(stats.num_reads); + stat_inc(stats.bdev_num_reads); + bio->bi_bdev = rzs.backing_swap; + return 1; + } + + /* + * Its unlikely event in case backing dev is + * not present + */ + pr_debug(C "Read before write on swap device: " + "sector=%lu, size=%u, offset=%u\n", + (ulong)(bio->bi_sector), bio->bi_size, + bio->bi_io_vec[0].bv_offset); + user_mem = kmap(page); + memset(user_mem, 0, PAGE_SIZE); + kunmap(page); + + set_bit(BIO_UPTODATE, &bio->bi_flags); + BIO_ENDIO(bio, 0); + return 0; +} + +int ramzswap_read(struct bio *bio) +{ + int ret; + u32 index; + size_t clen; + struct page *page; + struct zobj_header *zheader; + unsigned char *user_mem, *cmem; + + stat_inc(stats.num_reads); + + page = bio->bi_io_vec[0].bv_page; + index = bio->bi_sector >> SECTORS_PER_PAGE_SHIFT; + + if (test_flag(index, RZS_ZERO)) + return handle_zero_page(bio); + + /* Requested page is not present in compressed area */ + if (!rzs.table[index].pagenum) + return handle_ramzswap_fault(bio); + + /* Page is stored uncompressed since its incompressible */ + if (unlikely(test_flag(index, RZS_UNCOMPRESSED))) + return handle_uncompressed_page(bio); + + user_mem = get_ptr_atomic(page_to_pfn(page), 0, KM_USER0); + clen = PAGE_SIZE; + + cmem = get_ptr_atomic(rzs.table[index].pagenum, + rzs.table[index].offset, KM_USER1); + + ret = lzo1x_decompress_safe( + cmem + sizeof(*zheader), + xv_get_object_size(cmem) - sizeof(*zheader), + user_mem, &clen); + + put_ptr_atomic(user_mem, KM_USER0); + put_ptr_atomic(cmem, KM_USER1); + + /* should NEVER happen */ + if (unlikely(ret != LZO_E_OK)) { + pr_err(C "Decompression failed! err=%d, page=%u\n", + ret, index); + stat_inc(stats.failed_reads); + goto out; + } + + set_bit(BIO_UPTODATE, &bio->bi_flags); + BIO_ENDIO(bio, 0); + return 0; + +out: + BIO_IO_ERROR(bio); + return 0; +} + +int ramzswap_write(struct bio *bio) +{ + int ret, fwd_write_request = 0; + u32 offset; + size_t clen, index; + struct zobj_header *zheader; + struct page *page, *page_store; + unsigned char *user_mem, *cmem, *src; + + stat_inc(stats.num_writes); + + page = bio->bi_io_vec[0].bv_page; + index = bio->bi_sector >> SECTORS_PER_PAGE_SHIFT; + + src = rzs.compress_buffer; + + /* + * System swaps to same sector again when the stored page + * is no longer referenced by any process. So, its now safe + * to free the memory that was allocated for this page. + */ + if (rzs.table[index].pagenum) + ramzswap_free_page(index); + + /* + * No memory ia allocated for zero filled pages. + * Simply clear zero page flag. + */ + if (test_flag(index, RZS_ZERO)) { + stat_dec(stats.pages_zero); + clear_flag(index, RZS_ZERO); + } + + mutex_lock(&rzs.lock); + + user_mem = get_ptr_atomic(page_to_pfn(page), 0, KM_USER0); + if (page_zero_filled(user_mem)) { + put_ptr_atomic(user_mem, KM_USER0); + mutex_unlock(&rzs.lock); + stat_inc(stats.pages_zero); + set_flag(index, RZS_ZERO); + + set_bit(BIO_UPTODATE, &bio->bi_flags); + BIO_ENDIO(bio, 0); + return 0; + } + + if (rzs.backing_swap && + (stats.compr_size > rzs.memlimit - PAGE_SIZE)) { + put_ptr_atomic(user_mem, KM_USER0); + mutex_unlock(&rzs.lock); + fwd_write_request = 1; + goto out; + } + + ret = lzo1x_1_compress(user_mem, PAGE_SIZE, src, &clen, + rzs.compress_workmem); + + put_ptr_atomic(user_mem, KM_USER0); + + if (unlikely(ret != LZO_E_OK)) { + mutex_unlock(&rzs.lock); + pr_err(C "Compression failed! err=%d\n", ret); + stat_inc(stats.failed_writes); + goto out; + } + + /* + * Page is incompressible. Forward it to backing swap + * if present. Otherwise, store it as-is (uncompressed) + * since we do not want to return too many swap write + * errors which has side effect of hanging the system. + */ + if (unlikely(clen > MAX_CPAGE_SIZE)) { + if (rzs.backing_swap) { + mutex_unlock(&rzs.lock); + fwd_write_request = 1; + goto out; + } + + clen = PAGE_SIZE; + page_store = alloc_page(GFP_NOIO | __GFP_HIGHMEM); + if (unlikely(!page_store)) { + mutex_unlock(&rzs.lock); + stat_inc(stats.failed_writes); + goto out; + } + + offset = 0; + set_flag(index, RZS_UNCOMPRESSED); + stat_inc(stats.pages_expand); + rzs.table[index].pagenum = page_to_pfn(page_store); + src = get_ptr_atomic(page_to_pfn(page), 0, KM_USER0); + goto memstore; + } + + if (xv_malloc(rzs.mem_pool, clen + sizeof(*zheader), + &rzs.table[index].pagenum, &offset, + GFP_NOIO | __GFP_HIGHMEM)) { + mutex_unlock(&rzs.lock); + pr_info(C "Error allocating memory for compressed " + "page: %zu, size=%zu\n", index, clen); + stat_inc(stats.failed_writes); + if (rzs.backing_swap) + fwd_write_request = 1; + goto out; + } + +memstore: + rzs.table[index].offset = offset; + + cmem = get_ptr_atomic(rzs.table[index].pagenum, + rzs.table[index].offset, KM_USER1); + +#if 0 + /* Back-reference needed for memory defragmentation */ + if (!test_flag(index, RZS_UNCOMPRESSED)) { + zheader = (struct zobj_header *)cmem; + zheader->table_idx = index; + cmem += sizeof(*zheader); + } +#endif + + memcpy(cmem, src, clen); + + put_ptr_atomic(cmem, KM_USER1); + if (unlikely(test_flag(index, RZS_UNCOMPRESSED))) + put_ptr_atomic(src, KM_USER0); + + /* Update stats */ + stats.compr_size += clen; + stat_inc(stats.pages_stored); + stat_inc_if_less(stats.good_compress, clen, PAGE_SIZE / 2 + 1); + + mutex_unlock(&rzs.lock); + + set_bit(BIO_UPTODATE, &bio->bi_flags); + BIO_ENDIO(bio, 0); + return 0; + +out: + if (fwd_write_request) { + stat_inc(stats.bdev_num_writes); + bio->bi_bdev = rzs.backing_swap; + return 1; + } + + BIO_IO_ERROR(bio); + return 0; +} + +/* + * Handler function for all ramzswap I/O requests. + */ +static int ramzswap_make_request(struct request_queue *queue, struct bio *bio) +{ + int ret = 0; + +#ifdef SWAP_DISCARD_SUPPORTED + if (bio_discard(bio)) + return ramzswap_discard(bio); +#endif + + if (!valid_swap_request(bio)) { + stat_inc(stats.invalid_io); + BIO_IO_ERROR(bio); + return 0; + } + + switch (bio_data_dir(bio)) { + case READ: + ret = ramzswap_read(bio); + break; + + case WRITE: + ret = ramzswap_write(bio); + break; + } + + return ret; +} + +/* + * Swap header (1st page of swap device) contains information + * to indentify it as a swap partition. Prepare such a header + * for ramzswap device (ramzswap0) so that swapon can identify + * it as swap partition. In case backing swap device is provided, + * copy its swap header. + */ +static int setup_swap_header(union swap_header *s) +{ + int ret = 0; + struct page *page; + struct address_space *mapping; + union swap_header *backing_swap_header; + + /* + * There is no backing swap device. Create a swap header + * that is acceptable by swapon. + */ + if (rzs.backing_swap == NULL) { + s->info.version = 1; + s->info.last_page = rzs.disksize >> PAGE_SHIFT; + s->info.nr_badpages = 0; + memcpy(s->magic.magic, "SWAPSPACE2", 10); + return 0; + } + + /* + * We have a backing swap device. Copy its swap header + * to ramzswap device header. If this header contains + * invalid information (backing device not a swap + * partition, etc.), swapon will fail for ramzswap + * which is correct behavior - we don't want to swap + * over filesystem partition! + */ + + /* Read the backing swap header (code from sys_swapon) */ + mapping = rzs.swap_file->f_mapping; + if (!mapping->a_ops->readpage) { + ret = -EINVAL; + goto out; + } + + page = read_mapping_page(mapping, 0, rzs.swap_file); + if (IS_ERR(page)) { + ret = PTR_ERR(page); + goto out; + } + + backing_swap_header = kmap(page); + *s = *backing_swap_header; + kunmap(page); + +out: + return ret; +} + +static void ramzswap_set_disksize(size_t totalram_bytes) +{ + rzs.disksize = disksize_kb << 10; + + if (!disksize_kb) { + pr_info(C + "disk size not provided. You can use disksize_kb module " + "param to specify size.\nUsing default: (%u%% of RAM).\n", + DEFAULT_DISKSIZE_PERC_RAM + ); + rzs.disksize = DEFAULT_DISKSIZE_PERC_RAM * + (totalram_bytes / 100); + } + + if (disksize_kb > 2 * (totalram_bytes >> 10)) { + pr_info(C + "There is little point creating a ramzswap of greater than " + "twice the size of memory since we expect a 2:1 compression " + "ratio. Note that ramzswap uses about 0.1%% of the size of " + "the swap device when not in use so a huge ramzswap is " + "wasteful.\n" + "\tMemory Size: %zu kB\n" + "\tSize you selected: %lu kB\n" + "Continuing anyway ...\n", + totalram_bytes >> 10, disksize_kb + ); + } + + rzs.disksize &= PAGE_MASK; + pr_info(C "disk size set to %zu kB\n", rzs.disksize >> 10); +} + +/* + * memlimit cannot be greater than backing disk size. + */ +static void ramzswap_set_memlimit(size_t totalram_bytes) +{ + int memlimit_valid = 1; + rzs.memlimit = memlimit_kb << 10; + + if (!rzs.memlimit) { + pr_info(C "memory limit not set. You can use " + "memlimit_kb module param to specify limit."); + memlimit_valid = 0; + } + + if (rzs.memlimit > rzs.disksize) { + pr_info(C "memory limit cannot be greater than " + "disksize: limit=%zu, disksize=%zu", + rzs.memlimit, rzs.disksize); + memlimit_valid = 0; + } + + if (!memlimit_valid) { + size_t mempart, disksize; + pr_info(C "\nUsing default: MIN[(%u%% of RAM), " + "(backing disk size)].\n", + DEFAULT_MEMLIMIT_PERC_RAM); + mempart = DEFAULT_MEMLIMIT_PERC_RAM * (totalram_bytes / 100); + disksize = rzs.disksize; + rzs.memlimit = mempart > disksize ? disksize : mempart; + } + + if (rzs.memlimit > totalram_bytes / 2) { + pr_info(C + "Its not advisable setting limit more than half of " + "size of memory since we expect a 2:1 compression ratio. " + "Limit represents amount of *compressed* data we can keep " + "in memory!\n" + "\tMemory Size: %zu kB\n" + "\tLimit you selected: %lu kB\n" + "Continuing anyway ...\n", + totalram_bytes >> 10, memlimit_kb + ); + } + + rzs.memlimit &= PAGE_MASK; + BUG_ON(!rzs.memlimit); + + pr_info(C "memory limit set to %zu kB\n", rzs.memlimit >> 10); +} + +static int __init ramzswap_init(void) +{ + int ret; + size_t num_pages, totalram_bytes; + struct sysinfo i; + struct page *page; + void *swap_header; + + mutex_init(&rzs.lock); + + ret = setup_backing_swap(); + if (ret) + goto fail; + + si_meminfo(&i); + /* Here is a trivia: guess unit used for i.totalram !! */ + totalram_bytes = i.totalram << PAGE_SHIFT; + + if (rzs.backing_swap) + ramzswap_set_memlimit(totalram_bytes); + else + ramzswap_set_disksize(totalram_bytes); + + rzs.compress_workmem = kmalloc(LZO1X_MEM_COMPRESS, GFP_KERNEL); + if (rzs.compress_workmem == NULL) { + pr_err(C "Error allocating compressor working memory\n"); + ret = -ENOMEM; + goto fail; + } + + rzs.compress_buffer = kmalloc(2 * PAGE_SIZE, GFP_KERNEL); + if (rzs.compress_buffer == NULL) { + pr_err(C "Error allocating compressor buffer space\n"); + ret = -ENOMEM; + goto fail; + } + + num_pages = rzs.disksize >> PAGE_SHIFT; + rzs.table = vmalloc(num_pages * sizeof(*rzs.table)); + if (rzs.table == NULL) { + pr_err(C "Error allocating ramzswap address table\n"); + ret = -ENOMEM; + goto fail; + } + memset(rzs.table, 0, num_pages * sizeof(*rzs.table)); + + page = alloc_page(__GFP_ZERO); + if (page == NULL) { + pr_err(C "Error allocating swap header page\n"); + ret = -ENOMEM; + goto fail; + } + rzs.table[0].pagenum = page_to_pfn(page); + set_flag(0, RZS_UNCOMPRESSED); + + swap_header = kmap(page); + ret = setup_swap_header((union swap_header *)(swap_header)); + kunmap(page); + if (ret) { + pr_err(C "Error setting swap header\n"); + goto fail; + } + + rzs.disk = alloc_disk(1); + if (rzs.disk == NULL) { + pr_err(C "Error allocating disk structure\n"); + ret = -ENOMEM; + goto fail; + } + + rzs.disk->first_minor = 0; + rzs.disk->fops = &ramzswap_devops; + /* + * It is named like this to prevent distro installers + * from offering ramzswap as installation target. They + * seem to ignore all devices beginning with 'ram' + */ + strcpy(rzs.disk->disk_name, "ramzswap0"); + + rzs.disk->major = register_blkdev(0, rzs.disk->disk_name); + if (rzs.disk->major < 0) { + pr_err(C "Cannot register block device\n"); + ret = -EFAULT; + goto fail; + } + + rzs.disk->queue = blk_alloc_queue(GFP_KERNEL); + if (rzs.disk->queue == NULL) { + pr_err(C "Cannot register disk queue\n"); + ret = -EFAULT; + goto fail; + } + + set_capacity(rzs.disk, rzs.disksize >> SECTOR_SHIFT); + blk_queue_make_request(rzs.disk->queue, ramzswap_make_request); + +#ifdef QUEUE_FLAG_NONROT + /* + * Assuming backing device is "rotational" type. + * TODO: check if its actually "non-rotational" (SSD). + * + * We have ident mapping of sectors for ramzswap and + * and the backing swap device. So, this queue flag + * should be according to backing dev. + */ + if (!rzs.backing_swap) + queue_flag_set_unlocked(QUEUE_FLAG_NONROT, rzs.disk->queue); +#endif +#ifdef SWAP_DISCARD_SUPPORTED + blk_queue_set_discard(rzs.disk->queue, ramzswap_prepare_discard); +#endif + blk_queue_logical_block_size(rzs.disk->queue, PAGE_SIZE); + add_disk(rzs.disk); + + rzs.mem_pool = xv_create_pool(); + if (!rzs.mem_pool) { + pr_err(C "Error creating memory pool\n"); + ret = -ENOMEM; + goto fail; + } + +#if defined(STATS) + proc = create_proc_entry("ramzswap", S_IRUGO, NULL); + if (proc) + proc->read_proc = &proc_ramzswap_read; + else { + ret = -ENOMEM; + pr_warning(C "Error creating proc entry\n"); + goto fail; + } +#endif + + /* + * Pages that compress to size greater than this are forwarded + * to physical swap disk (if backing dev is provided) + */ + if (rzs.backing_swap) + MAX_CPAGE_SIZE = MAX_CPAGE_SIZE_BDEV; + else + MAX_CPAGE_SIZE = MAX_CPAGE_SIZE_NOBDEV; + + pr_debug(C "Max compressed page size: %u bytes\n", MAX_CPAGE_SIZE); + + pr_debug(C "Initialization done!\n"); + return 0; + +fail: + if (rzs.disk != NULL) { + if (rzs.disk->major > 0) + unregister_blkdev(rzs.disk->major, rzs.disk->disk_name); + del_gendisk(rzs.disk); + } + + if (rzs.table && rzs.table[0].pagenum) + __free_page(pfn_to_page(rzs.table[0].pagenum)); + kfree(rzs.compress_workmem); + kfree(rzs.compress_buffer); + vfree(rzs.table); + xv_destroy_pool(rzs.mem_pool); +#if defined(STATS) + if (proc) + remove_proc_entry("ramzswap", proc->parent); +#endif + pr_err(C "Initialization failed: err=%d\n", ret); + return ret; +} + +static void __exit ramzswap_exit(void) +{ + size_t index, num_pages; + num_pages = rzs.disksize >> PAGE_SHIFT; + + unregister_blkdev(rzs.disk->major, rzs.disk->disk_name); + del_gendisk(rzs.disk); + + /* Close backing swap device (if present) */ + if (rzs.backing_swap) { + set_blocksize(rzs.backing_swap, rzs.old_block_size); + bd_release(rzs.backing_swap); + filp_close(rzs.swap_file, NULL); + } + + __free_page(pfn_to_page(rzs.table[0].pagenum)); + kfree(rzs.compress_workmem); + kfree(rzs.compress_buffer); + + /* Free all pages that are still in ramzswap */ + for (index = 1; index < num_pages; index++) { + u32 pagenum, offset; + + pagenum = rzs.table[index].pagenum; + offset = rzs.table[index].offset; + + if (!pagenum) + continue; + + if (unlikely(test_flag(index, RZS_UNCOMPRESSED))) + __free_page(pfn_to_page(pagenum)); + else + xv_free(rzs.mem_pool, pagenum, offset); + } + + vfree(rzs.table); + xv_destroy_pool(rzs.mem_pool); + +#if defined(STATS) + remove_proc_entry("ramzswap", proc->parent); +#endif + pr_debug(C "cleanup done!\n"); +} + +/* + * This param is applicable only when there is no backing swap device. + * We ignore this param in case backing dev is provided since then its + * always equal to size of the backing swap device. + * + * This size refers to amount of (uncompressed) data it can hold. + * For e.g. disksize_kb=1024 means it can hold 1024kb worth of + * uncompressed data even if this data compresses to just, say, 100kb. + * + * Default value is used if this param is missing or 0 (if its applicable). + * Default: [DEFAULT_DISKSIZE_PERC_RAM]% of RAM + */ +module_param(disksize_kb, ulong, 0); +MODULE_PARM_DESC(disksize_kb, "ramzswap device size (kB)"); + +/* + * This param is applicable only when backing swap device is provided. + * This refers to limit on amount of (compressed) data it can hold in + * memory. Note that total amount of memory used (MemUsedTotal) can + * exceed this memlimit since that includes memory wastage due to + * fragmentation and metadata overhead. + * + * Any additional data beyond this limit is forwarded to backing + * swap device. TODO: allow changing memlimit at runtime. + * + * Default value is used if this param is missing or 0 (if its applicable). + * Default: MIN([DEFAULT_MEMLIMIT_PERC_RAM]% of RAM, Backing Device Size) + */ +module_param(memlimit_kb, ulong, 0); +MODULE_PARM_DESC(memlimit_kb, "ramzswap memory limit (kB)"); + +/* + * This is block device to be used as backing store for ramzswap. + * When pages more than memlimit_kb as swapped to ramzswap, we store + * any additional pages in this device. We may also move some pages + * from ramzswap to this device in case system is really low on + * memory (TODO). + * + * This device is not directly visible to kernel as a swap device + * (/proc/swaps will only show /dev/ramzswap0 and not this device). + * Managing this backing device is the job of ramzswap module. + */ +module_param(backing_swap, charp, 0); +MODULE_PARM_DESC(backing_swap, "Backing swap partition"); + +module_init(ramzswap_init); +module_exit(ramzswap_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Nitin Gupta "); +MODULE_DESCRIPTION("Compressed RAM Based Swap Device"); --- linux-2.6.35.orig/ubuntu/compcache/LGPL-2.1.txt +++ linux-2.6.35/ubuntu/compcache/LGPL-2.1.txt @@ -0,0 +1,510 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations +below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes a de-facto standard. To achieve this, non-free programs must +be allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at least + three years, to give the same user the materials specified in + Subsection 6a, above, for a charge no more than the cost of + performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + + To apply these terms, attach the following notices to the library. +It is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or +your school, if any, to sign a "copyright disclaimer" for the library, +if necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James + Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + --- linux-2.6.35.orig/ubuntu/compcache/Kconfig +++ linux-2.6.35/ubuntu/compcache/Kconfig @@ -0,0 +1,31 @@ +menu "Compcache options" + +config BLK_DEV_COMPCACHE + tristate "Compressed RAM based swap device" + default m + select LZO_COMPRESS + select LZO_DECOMPRESS + depends on BLOCK + help + This creates RAM based block device which acts as swap disk. Pages + swapped to this disk are compressed and stored in memory itself. + Project Home: http://code.google.com/p/compcache/ + +config BLK_DEV_COMPCACHE_DEBUG + default n + depends on BLK_DEV_COMPCACHE + bool "Enable debugging" + help + This causes negligible performance loss and size increase. + If unsure, say Y. + +config BLK_DEV_COMPCACHE_STATS + default n + depends on BLK_DEV_COMPCACHE + bool "Enable statistics" + help + Creates /proc/compcache to export various statistics. + This adds about 4K to size with negligible performance loss. + If unsure, say Y. + +endmenu --- linux-2.6.35.orig/ubuntu/compcache/Makefile +++ linux-2.6.35/ubuntu/compcache/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_BLK_DEV_COMPCACHE) := ramzswap.o xvmalloc.o --- linux-2.6.35.orig/ubuntu/compcache/xvmalloc.c +++ linux-2.6.35/ubuntu/compcache/xvmalloc.c @@ -0,0 +1,557 @@ +/* + * xvmalloc.c + * + * Copyright (C) 2008, 2009 Nitin Gupta + * + * This code is released using a dual license strategy: GPL/LGPL + * You can choose the licence that better fits your requirements. + * + * Released under the terms of GNU General Public License Version 2.0 + * Released under the terms of GNU Lesser General Public License Version 2.1 + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "xvmalloc.h" +#include "xvmalloc_int.h" + +static void stat_inc(u64 *value) +{ + *value = *value + 1; +} + +static void stat_dec(u64 *value) +{ + *value = *value - 1; +} + +static int test_flag(struct block_header *block, enum blockflags flag) +{ + return block->prev & BIT(flag); +} + +static void set_flag(struct block_header *block, enum blockflags flag) +{ + block->prev |= BIT(flag); +} + +static void clear_flag(struct block_header *block, enum blockflags flag) +{ + block->prev &= ~BIT(flag); +} + +/* + * Given pair, provide a derefrencable pointer. + * This is called from xv_malloc/xv_free path, so it needs to be fast. + */ +static void *get_ptr_atomic(u32 pagenum, u16 offset, enum km_type type) +{ + unsigned char *base; + + base = kmap_atomic(pfn_to_page(pagenum), type); + return base + offset; +} + +static void put_ptr_atomic(void *ptr, enum km_type type) +{ + kunmap_atomic(ptr, type); +} + +static u32 get_blockprev(struct block_header *block) +{ + return block->prev & PREV_MASK; +} + +static void set_blockprev(struct block_header *block, u16 new_offset) +{ + block->prev = new_offset | (block->prev & FLAGS_MASK); +} + +static struct block_header *BLOCK_NEXT(struct block_header *block) +{ + return (struct block_header *)((char *)block + block->size + XV_ALIGN); +} + +/* + * Get index of free list containing blocks of maximum size + * which is less than or equal to given size. + */ +static u32 get_index_for_insert(u32 size) +{ + if (unlikely(size > XV_MAX_ALLOC_SIZE)) + size = XV_MAX_ALLOC_SIZE; + size &= ~FL_DELTA_MASK; + return (size - XV_MIN_ALLOC_SIZE) >> FL_DELTA_SHIFT; +} + +/* + * Get index of free list having blocks of size greater than + * or equal to requested size. + */ +static u32 get_index(u32 size) +{ + if (unlikely(size < XV_MIN_ALLOC_SIZE)) + size = XV_MIN_ALLOC_SIZE; + size = ALIGN(size, FL_DELTA); + return (size - XV_MIN_ALLOC_SIZE) >> FL_DELTA_SHIFT; +} + +/* + * Allocate a memory page. Called when a pool needs to grow. + */ +static u32 xv_alloc_page(gfp_t flags) +{ + struct page *page; + + //page = alloc_page(GFP_NOIO | __GFP_HIGHMEM); + page = alloc_page(flags); + if (unlikely(!page)) + return 0; + + return page_to_pfn(page); +} + +/* + * Called when all objects in a page are freed. + */ +static void xv_free_page(u32 pagenum) +{ + __free_page(pfn_to_page(pagenum)); +} + +/** + * find_block - find block of at least given size + * @pool: memory pool to search from + * @size: size of block required + * @pagenum: page no. containing required block + * @offset: offset within the page where block is located. + * + * Searches two level bitmap to locate block of at least + * the given size. If such a block is found, it provides + * to identify this block and returns index + * in freelist where we found this block. + * Otherwise, returns 0 and params are not touched. + */ +static u32 find_block(struct xv_pool *pool, u32 size, + u32 *pagenum, u32 *offset) +{ + ulong flbitmap, slbitmap; + u32 flindex, slindex, slbitstart; + + /* There are no free blocks in this pool */ + if (!pool->flbitmap) + return 0; + + /* Get freelist index correspoding to this size */ + slindex = get_index(size); + slbitmap = pool->slbitmap[slindex / BITS_PER_LONG]; + slbitstart = slindex % BITS_PER_LONG; + + /* + * If freelist is not empty at this index, we found the + * block - head of this list. This is approximate best-fit match. + */ + if (test_bit(slbitstart, &slbitmap)) { + *pagenum = pool->freelist[slindex].pagenum; + *offset = pool->freelist[slindex].offset; + return slindex; + } + + /* + * No best-fit found. Search a bit further in bitmap for a free block. + * Second level bitmap consists of series of 32-bit chunks. Search + * further in the chunk where we expected a best-fit, starting from + * index location found above. + */ + slbitstart++; + slbitmap >>= slbitstart; + + /* Skip this search if we were already at end of this bitmap chunk */ + if ((slbitstart != BITS_PER_LONG) && slbitmap) { + slindex += __ffs(slbitmap) + 1; + *pagenum = pool->freelist[slindex].pagenum; + *offset = pool->freelist[slindex].offset; + return slindex; + } + + /* Now do a full two-level bitmap search to find next nearest fit */ + flindex = slindex / BITS_PER_LONG; + + flbitmap = (pool->flbitmap) >> (flindex + 1); + if (!flbitmap) + return 0; + + flindex += __ffs(flbitmap) + 1; + slbitmap = pool->slbitmap[flindex]; + slindex = (flindex * BITS_PER_LONG) + __ffs(slbitmap); + *pagenum = pool->freelist[slindex].pagenum; + *offset = pool->freelist[slindex].offset; + + return slindex; +} + +/* + * Insert block at in freelist of given pool. + * freelist used depends on block size. + */ +static void insert_block(struct xv_pool *pool, u32 pagenum, u32 offset, + struct block_header *block) +{ + u32 flindex, slindex; + struct block_header *nextblock; + + slindex = get_index_for_insert(block->size); + flindex = slindex / BITS_PER_LONG; + + block->link.prev_pagenum = 0; + block->link.prev_offset = 0; + block->link.next_pagenum = pool->freelist[slindex].pagenum; + block->link.next_offset = pool->freelist[slindex].offset; + pool->freelist[slindex].pagenum = pagenum; + pool->freelist[slindex].offset = offset; + + if (block->link.next_pagenum) { + nextblock = get_ptr_atomic(block->link.next_pagenum, + block->link.next_offset, KM_USER1); + nextblock->link.prev_pagenum = pagenum; + nextblock->link.prev_offset = offset; + put_ptr_atomic(nextblock, KM_USER1); + } + + __set_bit(slindex % BITS_PER_LONG, &pool->slbitmap[flindex]); + __set_bit(flindex, &pool->flbitmap); +} + +/* + * Remove block from head of freelist. Index 'slindex' identifies the freelist. + */ +static void remove_block_head(struct xv_pool *pool, + struct block_header *block, u32 slindex) +{ + struct block_header *tmpblock; + u32 flindex = slindex / BITS_PER_LONG; + + pool->freelist[slindex].pagenum = block->link.next_pagenum; + pool->freelist[slindex].offset = block->link.next_offset; + block->link.prev_pagenum = 0; + block->link.prev_offset = 0; + + if (!pool->freelist[slindex].pagenum) { + __clear_bit(slindex % BITS_PER_LONG, &pool->slbitmap[flindex]); + if (!pool->slbitmap[flindex]) + __clear_bit(flindex, &pool->flbitmap); + } else { + /* + * DEBUG ONLY: We need not reinitialize freelist head previous + * pointer to 0 - we never depend on its value. But just for + * sanity, lets do it. + */ + tmpblock = get_ptr_atomic(pool->freelist[slindex].pagenum, + pool->freelist[slindex].offset, KM_USER1); + tmpblock->link.prev_pagenum = 0; + tmpblock->link.prev_offset = 0; + put_ptr_atomic(tmpblock, KM_USER1); + } +} + +/* + * Remove block from freelist. Index 'slindex' identifies the freelist. + */ +static void remove_block(struct xv_pool *pool, u32 pagenum, u32 offset, + struct block_header *block, u32 slindex) +{ + u32 flindex; + struct block_header *tmpblock; + + if (pool->freelist[slindex].pagenum == pagenum + && pool->freelist[slindex].offset == offset) { + remove_block_head(pool, block, slindex); + return; + } + + flindex = slindex / BITS_PER_LONG; + + if (block->link.prev_pagenum) { + tmpblock = get_ptr_atomic(block->link.prev_pagenum, + block->link.prev_offset, KM_USER1); + tmpblock->link.next_pagenum = block->link.next_pagenum; + tmpblock->link.next_offset = block->link.next_offset; + put_ptr_atomic(tmpblock, KM_USER1); + } + + if (block->link.next_pagenum) { + tmpblock = get_ptr_atomic(block->link.next_pagenum, + block->link.next_offset, KM_USER1); + tmpblock->link.prev_pagenum = block->link.prev_pagenum; + tmpblock->link.prev_offset = block->link.prev_offset; + put_ptr_atomic(tmpblock, KM_USER1); + } + + return; +} + +/* + * Allocate a page and add it freelist of given pool. + */ +static int grow_pool(struct xv_pool *pool, gfp_t flags) +{ + u32 pagenum; + struct block_header *block; + + pagenum = xv_alloc_page(flags); + if (unlikely(!pagenum)) + return -ENOMEM; + + stat_inc(&pool->total_pages); + + spin_lock(&pool->lock); + block = get_ptr_atomic(pagenum, 0, KM_USER0); + + block->size = PAGE_SIZE - XV_ALIGN; + set_flag(block, BLOCK_FREE); + clear_flag(block, PREV_FREE); + set_blockprev(block, 0); + + insert_block(pool, pagenum, 0, block); + + put_ptr_atomic(block, KM_USER0); + spin_unlock(&pool->lock); + + return 0; +} + +/* + * Create a memory pool. Allocates freelist, bitmaps and other + * per-pool metadata. + */ +struct xv_pool *xv_create_pool(void) +{ + u32 ovhd_size; + struct xv_pool *pool; + + ovhd_size = roundup(sizeof(*pool), PAGE_SIZE); + pool = kzalloc(ovhd_size, GFP_KERNEL); + if (!pool) + return NULL; + + spin_lock_init(&pool->lock); + + return pool; +} +EXPORT_SYMBOL_GPL(xv_create_pool); + +void xv_destroy_pool(struct xv_pool *pool) +{ + kfree(pool); +} +EXPORT_SYMBOL_GPL(xv_destroy_pool); + +/** + * xv_malloc - Allocate block of given size from pool. + * @pool: pool to allocate from + * @size: size of block to allocate + * @pagenum: page no. that holds the object + * @offset: location of object within pagenum + * + * On success, identifies block allocated + * and 0 is returned. On failure, is set to + * 0 and -ENOMEM is returned. + * + * Allocation requests with size > XV_MAX_ALLOC_SIZE will fail. + */ +int xv_malloc(struct xv_pool *pool, u32 size, u32 *pagenum, u32 *offset, + gfp_t flags) +{ + int error; + u32 index, tmpsize, origsize, tmpoffset; + struct block_header *block, *tmpblock; + + *pagenum = 0; + *offset = 0; + origsize = size; + + if (unlikely(!size || size > XV_MAX_ALLOC_SIZE)) + return -ENOMEM; + + size = ALIGN(size, XV_ALIGN); + + spin_lock(&pool->lock); + + index = find_block(pool, size, pagenum, offset); + + if (!*pagenum) { + spin_unlock(&pool->lock); + if (flags & GFP_NOWAIT) + return -ENOMEM; + error = grow_pool(pool, flags); + if (unlikely(error)) + return -ENOMEM; + + spin_lock(&pool->lock); + index = find_block(pool, size, pagenum, offset); + } + + if (!*pagenum) { + spin_unlock(&pool->lock); + return -ENOMEM; + } + + block = get_ptr_atomic(*pagenum, *offset, KM_USER0); + + remove_block_head(pool, block, index); + + /* Split the block if required */ + tmpoffset = *offset + size + XV_ALIGN; + tmpsize = block->size - size; + tmpblock = (struct block_header *)((char *)block + size + XV_ALIGN); + if (tmpsize) { + tmpblock->size = tmpsize - XV_ALIGN; + set_flag(tmpblock, BLOCK_FREE); + clear_flag(tmpblock, PREV_FREE); + + set_blockprev(tmpblock, *offset); + if (tmpblock->size >= XV_MIN_ALLOC_SIZE) + insert_block(pool, *pagenum, tmpoffset, tmpblock); + + if (tmpoffset + XV_ALIGN + tmpblock->size != PAGE_SIZE) { + tmpblock = BLOCK_NEXT(tmpblock); + set_blockprev(tmpblock, tmpoffset); + } + } else { + /* This block is exact fit */ + if (tmpoffset != PAGE_SIZE) + clear_flag(tmpblock, PREV_FREE); + } + + block->size = origsize; + clear_flag(block, BLOCK_FREE); + + put_ptr_atomic(block, KM_USER0); + spin_unlock(&pool->lock); + + *offset += XV_ALIGN; + + return 0; +} +EXPORT_SYMBOL_GPL(xv_malloc); + +/* + * Free block identified with + */ +void xv_free(struct xv_pool *pool, u32 pagenum, u32 offset) +{ + void *page; + struct block_header *block, *tmpblock; + + offset -= XV_ALIGN; + + spin_lock(&pool->lock); + + page = get_ptr_atomic(pagenum, 0, KM_USER0); + block = (struct block_header *)((char *)page + offset); + + /* Catch double free bugs */ + BUG_ON(test_flag(block, BLOCK_FREE)); + + block->size = ALIGN(block->size, XV_ALIGN); + + tmpblock = BLOCK_NEXT(block); + if (offset + block->size + XV_ALIGN == PAGE_SIZE) + tmpblock = NULL; + + /* Merge next block if its free */ + if (tmpblock && test_flag(tmpblock, BLOCK_FREE)) { + /* + * Blocks smaller than XV_MIN_ALLOC_SIZE + * are not inserted in any free list. + */ + if (tmpblock->size >= XV_MIN_ALLOC_SIZE) { + remove_block(pool, pagenum, + offset + block->size + XV_ALIGN, tmpblock, + get_index_for_insert(tmpblock->size)); + } + block->size += tmpblock->size + XV_ALIGN; + } + + /* Merge previous block if its free */ + if (test_flag(block, PREV_FREE)) { + tmpblock = (struct block_header *)((char *)(page) + + get_blockprev(block)); + offset = offset - tmpblock->size - XV_ALIGN; + + if (tmpblock->size >= XV_MIN_ALLOC_SIZE) + remove_block(pool, pagenum, offset, tmpblock, + get_index_for_insert(tmpblock->size)); + + tmpblock->size += block->size + XV_ALIGN; + block = tmpblock; + } + + /* No used objects in this page. Free it. */ + if (block->size == PAGE_SIZE - XV_ALIGN) { + put_ptr_atomic(page, KM_USER0); + spin_unlock(&pool->lock); + + xv_free_page(pagenum); + stat_dec(&pool->total_pages); + return; + } + + set_flag(block, BLOCK_FREE); + if (block->size >= XV_MIN_ALLOC_SIZE) + insert_block(pool, pagenum, offset, block); + + if (offset + block->size + XV_ALIGN != PAGE_SIZE) { + tmpblock = BLOCK_NEXT(block); + set_flag(tmpblock, PREV_FREE); + set_blockprev(tmpblock, offset); + } + + put_ptr_atomic(page, KM_USER0); + spin_unlock(&pool->lock); + + return; +} +EXPORT_SYMBOL_GPL(xv_free); + +u32 xv_get_object_size(void *obj) +{ + struct block_header *blk; + + blk = (struct block_header *)((char *)(obj) - XV_ALIGN); + return blk->size; +} +EXPORT_SYMBOL_GPL(xv_get_object_size); + +/* + * Returns total memory used by allocator (userdata + metadata) + */ +u64 xv_get_total_size_bytes(struct xv_pool *pool) +{ + return pool->total_pages << PAGE_SHIFT; +} +EXPORT_SYMBOL_GPL(xv_get_total_size_bytes); + +static int __init xv_malloc_init(void) +{ + return 0; +} + +static void __exit xv_malloc_exit(void) +{ + return; +} + +module_init(xv_malloc_init); +module_exit(xv_malloc_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Nitin Gupta "); +MODULE_DESCRIPTION("xvmalloc memory allocator"); --- linux-2.6.35.orig/ubuntu/compcache/README +++ linux-2.6.35/ubuntu/compcache/README @@ -0,0 +1,45 @@ +ramzswap: Compressed RAM based swap device +------------------------------------------- + +Project home: http://compcache.googlecode.com + +* Introduction +This is a RAM based block device which acts as swap disk. +Pages swapped to this device are compressed and stored in +memory itself. See project home for use cases, performance +numbers and lot more. + +* Compiling + - Run 'make': this will compile all modules against your kernel. + + - Following kernel modules are created: + - xvmalloc.ko + - ramzswap.ko + +* Using + - Following scipts are included + - use_ramzswap.sh [] [] + This loads all required modules and sets up swap device. + NOTE: script contains detailed documentation on parameters. + + - unuse_ramzswap.sh + Unloads all modules and turns off ramzswap swap device. + +* Common Problems + - If you get lots of compile errors, make sure you have package for + kernel source installed. For e.g., on Fedora its 'kernel-devel' package. + + - If (un)use_ramzswap scripts fail to work, refer to wiki: + http://code.google.com/p/compcache/wiki/CompilingAndUsing + +* Notes + - Statistics are exported via /proc/ramzswap + +Please consider using Issue Tracker: +http://code.google.com/p/compcache/issues/list +for reporting any bugs/feature requests. + +Cheers! +Nitin Gupta +EMail: ngupta at vflare dot org + --- linux-2.6.35.orig/ubuntu/iscsitarget/conn.c +++ linux-2.6.35/ubuntu/iscsitarget/conn.c @@ -0,0 +1,262 @@ +/* + * Copyright (C) 2002-2003 Ardis Technolgies + * + * Released under the terms of the GNU GPL v2.0. + */ + +#include +#include +#include +#include + +#include "iscsi.h" +#include "iscsi_dbg.h" +#include "digest.h" + +static void print_conn_state(char *p, size_t size, unsigned long state) +{ + if (test_bit(CONN_ACTIVE, &state)) + snprintf(p, size, "%s", "active"); + else if (test_bit(CONN_CLOSING, &state)) + snprintf(p, size, "%s", "closing"); + else + snprintf(p, size, "%s", "unknown"); +} + +static void print_digest_state(char *p, size_t size, unsigned long flags) +{ + if (DIGEST_NONE & flags) + snprintf(p, size, "%s", "none"); + else if (DIGEST_CRC32C & flags) + snprintf(p, size, "%s", "crc32c"); + else + snprintf(p, size, "%s", "unknown"); +} + +void conn_info_show(struct seq_file *seq, struct iscsi_session *session) +{ + struct iscsi_conn *conn; + struct sock *sk; + char buf[64]; + + list_for_each_entry(conn, &session->conn_list, list) { + sk = conn->sock->sk; + switch (sk->sk_family) { + case AF_INET: + snprintf(buf, sizeof(buf), + "%u.%u.%u.%u", NIPQUAD(inet_sk(sk)->inet_daddr)); + break; + case AF_INET6: + snprintf(buf, sizeof(buf), "[%pI6]", + &inet6_sk(sk)->daddr); + break; + default: + break; + } + seq_printf(seq, "\t\tcid:%u ip:%s ", conn->cid, buf); + print_conn_state(buf, sizeof(buf), conn->state); + seq_printf(seq, "state:%s ", buf); + print_digest_state(buf, sizeof(buf), conn->hdigest_type); + seq_printf(seq, "hd:%s ", buf); + print_digest_state(buf, sizeof(buf), conn->ddigest_type); + seq_printf(seq, "dd:%s\n", buf); + } +} + +struct iscsi_conn *conn_lookup(struct iscsi_session *session, u16 cid) +{ + struct iscsi_conn *conn; + + list_for_each_entry(conn, &session->conn_list, list) { + if (conn->cid == cid) + return conn; + } + return NULL; +} + +static void iet_state_change(struct sock *sk) +{ + struct iscsi_conn *conn = sk->sk_user_data; + struct iscsi_target *target = conn->session->target; + + if (sk->sk_state != TCP_ESTABLISHED) + conn_close(conn); + else + nthread_wakeup(target); + + target->nthread_info.old_state_change(sk); +} + +static void iet_data_ready(struct sock *sk, int len) +{ + struct iscsi_conn *conn = sk->sk_user_data; + struct iscsi_target *target = conn->session->target; + + nthread_wakeup(target); + target->nthread_info.old_data_ready(sk, len); +} + +/* + * @locking: grabs the target's nthread_lock to protect it from races with + * set_conn_wspace_wait() + */ +static void iet_write_space(struct sock *sk) +{ + struct iscsi_conn *conn = sk->sk_user_data; + struct network_thread_info *info = &conn->session->target->nthread_info; + + spin_lock_bh(&info->nthread_lock); + + if (sk_stream_wspace(sk) >= sk_stream_min_wspace(sk) && + test_bit(CONN_WSPACE_WAIT, &conn->state)) { + clear_bit(CONN_WSPACE_WAIT, &conn->state); + __nthread_wakeup(info); + } + + spin_unlock_bh(&info->nthread_lock); + + info->old_write_space(sk); +} + +static void iet_socket_bind(struct iscsi_conn *conn) +{ + int opt = 1; + mm_segment_t oldfs; + struct iscsi_session *session = conn->session; + struct iscsi_target *target = session->target; + + dprintk(D_GENERIC, "%llu\n", (unsigned long long) session->sid); + + conn->sock = SOCKET_I(conn->file->f_dentry->d_inode); + conn->sock->sk->sk_user_data = conn; + + write_lock_bh(&conn->sock->sk->sk_callback_lock); + target->nthread_info.old_state_change = conn->sock->sk->sk_state_change; + conn->sock->sk->sk_state_change = iet_state_change; + + target->nthread_info.old_data_ready = conn->sock->sk->sk_data_ready; + conn->sock->sk->sk_data_ready = iet_data_ready; + + target->nthread_info.old_write_space = conn->sock->sk->sk_write_space; + conn->sock->sk->sk_write_space = iet_write_space; + write_unlock_bh(&conn->sock->sk->sk_callback_lock); + + oldfs = get_fs(); + set_fs(get_ds()); + conn->sock->ops->setsockopt(conn->sock, SOL_TCP, TCP_NODELAY, (void *)&opt, sizeof(opt)); + set_fs(oldfs); +} + +int conn_free(struct iscsi_conn *conn) +{ + dprintk(D_GENERIC, "%p %#Lx %u\n", conn->session, + (unsigned long long) conn->session->sid, conn->cid); + + assert(atomic_read(&conn->nr_cmnds) == 0); + assert(list_empty(&conn->pdu_list)); + assert(list_empty(&conn->write_list)); + + list_del(&conn->list); + list_del(&conn->poll_list); + + del_timer_sync(&conn->nop_timer); + digest_cleanup(conn); + kfree(conn); + + return 0; +} + +static int iet_conn_alloc(struct iscsi_session *session, struct conn_info *info) +{ + struct iscsi_conn *conn; + + dprintk(D_SETUP, "%#Lx:%u\n", (unsigned long long) session->sid, info->cid); + + conn = kzalloc(sizeof(*conn), GFP_KERNEL); + if (!conn) + return -ENOMEM; + + conn->session = session; + conn->cid = info->cid; + conn->stat_sn = info->stat_sn; + conn->exp_stat_sn = info->exp_stat_sn; + + conn->hdigest_type = info->header_digest; + conn->ddigest_type = info->data_digest; + if (digest_init(conn) < 0) { + kfree(conn); + return -ENOMEM; + } + + spin_lock_init(&conn->list_lock); + atomic_set(&conn->nr_cmnds, 0); + atomic_set(&conn->nr_busy_cmnds, 0); + INIT_LIST_HEAD(&conn->pdu_list); + INIT_LIST_HEAD(&conn->write_list); + INIT_LIST_HEAD(&conn->poll_list); + init_timer(&conn->nop_timer); + + list_add(&conn->list, &session->conn_list); + + set_bit(CONN_ACTIVE, &conn->state); + + conn->file = fget(info->fd); + iet_socket_bind(conn); + + list_add(&conn->poll_list, &session->target->nthread_info.active_conns); + + nthread_wakeup(conn->session->target); + + return 0; +} + +void conn_close(struct iscsi_conn *conn) +{ + struct iscsi_cmnd *cmnd; + struct iscsi_session *session = conn->session; + + if (test_and_clear_bit(CONN_ACTIVE, &conn->state)) + set_bit(CONN_CLOSING, &conn->state); + + spin_lock(&conn->list_lock); + list_for_each_entry(cmnd, &conn->pdu_list, conn_list) { + set_cmnd_tmfabort(cmnd); + if (cmnd->lun) { + ua_establish_for_session(session, cmnd->lun->lun, 0x47, 0x7f); + iscsi_cmnd_set_sense(cmnd, UNIT_ATTENTION, 0x6e, 0x0); + } + } + spin_unlock(&conn->list_lock); + + nthread_wakeup(conn->session->target); +} + +int conn_add(struct iscsi_session *session, struct conn_info *info) +{ + struct iscsi_conn *conn; + int err; + + conn = conn_lookup(session, info->cid); + if (conn) + conn_close(conn); + + err = iet_conn_alloc(session, info); + if (!err && conn) + err = -EEXIST; + + return err; +} + +int conn_del(struct iscsi_session *session, struct conn_info *info) +{ + struct iscsi_conn *conn; + int err = -EEXIST; + + conn = conn_lookup(session, info->cid); + if (!conn) + return err; + + conn_close(conn); + + return 0; +} --- linux-2.6.35.orig/ubuntu/iscsitarget/block-io.c +++ linux-2.6.35/ubuntu/iscsitarget/block-io.c @@ -0,0 +1,327 @@ +/* + * Target device block I/O. + * + * Based on file I/O driver from FUJITA Tomonori + * (C) 2004 - 2005 FUJITA Tomonori + * (C) 2006 Andre Brinkmann + * (C) 2007 Ross Walker + * (C) 2007 Ming Zhang + * This code is licenced under the GPL. + */ + +#include +#include +#include +#include + +#include "iscsi.h" +#include "iscsi_dbg.h" +#include "iotype.h" + +struct blockio_data { + char *path; + struct block_device *bdev; +}; + +struct tio_work { + atomic_t error; + atomic_t bios_remaining; + struct completion tio_complete; +}; + +static void blockio_bio_endio(struct bio *bio, int error) +{ + struct tio_work *tio_work = bio->bi_private; + + error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO; + + if (error) + atomic_set(&tio_work->error, error); + + /* If last bio signal completion */ + if (atomic_dec_and_test(&tio_work->bios_remaining)) + complete(&tio_work->tio_complete); + + bio_put(bio); +} + +/* + * Blockio_make_request(): The function translates an iscsi-request into + * a number of requests to the corresponding block device. + */ +static int +blockio_make_request(struct iet_volume *volume, struct tio *tio, int rw) +{ + struct blockio_data *bio_data = volume->private; + struct request_queue *bdev_q = bdev_get_queue(bio_data->bdev); + struct tio_work *tio_work; + struct bio *tio_bio = NULL, *bio = NULL, *biotail = NULL; + + u32 offset = tio->offset; + u32 size = tio->size; + u32 tio_index = 0; + + int max_pages = 1; + int err = 0; + + loff_t ppos = ((loff_t) tio->idx << PAGE_SHIFT) + offset; + + /* Calculate max_pages for bio_alloc (memory saver) */ + if (bdev_q) + max_pages = bio_get_nr_vecs(bio_data->bdev); + + tio_work = kzalloc(sizeof (*tio_work), GFP_KERNEL); + if (!tio_work) + return -ENOMEM; + + atomic_set(&tio_work->error, 0); + atomic_set(&tio_work->bios_remaining, 0); + init_completion(&tio_work->tio_complete); + + /* Main processing loop, allocate and fill all bios */ + while (tio_index < tio->pg_cnt) { + bio = bio_alloc(GFP_KERNEL, min(max_pages, BIO_MAX_PAGES)); + if (!bio) { + err = -ENOMEM; + goto out; + } + + /* bi_sector is ALWAYS in units of 512 bytes */ + bio->bi_sector = ppos >> 9; + bio->bi_bdev = bio_data->bdev; + bio->bi_end_io = blockio_bio_endio; + bio->bi_private = tio_work; + + if (tio_bio) + biotail = biotail->bi_next = bio; + else + tio_bio = biotail = bio; + + atomic_inc(&tio_work->bios_remaining); + + /* Loop for filling bio */ + while (tio_index < tio->pg_cnt) { + unsigned int bytes = PAGE_SIZE - offset; + + if (bytes > size) + bytes = size; + + if (!bio_add_page(bio, tio->pvec[tio_index], bytes, offset)) + break; + + size -= bytes; + ppos += bytes; + + offset = 0; + + tio_index++; + } + } + + /* Walk the list, submitting bios 1 by 1 */ + while (tio_bio) { + bio = tio_bio; + tio_bio = tio_bio->bi_next; + bio->bi_next = NULL; + + submit_bio(rw, bio); + } + + if (bdev_q && bdev_q->unplug_fn) + bdev_q->unplug_fn(bdev_q); + + wait_for_completion(&tio_work->tio_complete); + + err = atomic_read(&tio_work->error); + + kfree(tio_work); + + return err; +out: + while (tio_bio) { + bio = tio_bio; + tio_bio = tio_bio->bi_next; + + bio_put(bio); + } + + kfree(tio_work); + + return err; +} + +static int +blockio_open_path(struct iet_volume *volume, const char *path) +{ + struct blockio_data *bio_data = volume->private; + struct block_device *bdev; + int flags = FMODE_READ | (LUReadonly(volume) ? 0 : FMODE_WRITE); + int err = 0; + + bio_data->path = kstrdup(path, GFP_KERNEL); + if (!bio_data->path) + return -ENOMEM; + + bdev = open_bdev_exclusive(path, flags, THIS_MODULE); + if (IS_ERR(bdev)) { + err = PTR_ERR(bdev); + eprintk("Can't open device %s, error %d\n", path, err); + bio_data->bdev = NULL; + } else { + bio_data->bdev = bdev; + fsync_bdev(bio_data->bdev); + } + + return err; +} + +/* Create an enumeration of our accepted actions */ +enum +{ + opt_path, opt_ignore, opt_err, +}; + +/* Create a match table using our action enums and their matching options */ +static match_table_t tokens = { + {opt_path, "path=%s"}, + {opt_ignore, "scsiid=%s"}, + {opt_ignore, "scsisn=%s"}, + {opt_ignore, "type=%s"}, + {opt_ignore, "iomode=%s"}, + {opt_ignore, "blocksize=%s"}, + {opt_err, NULL}, +}; + +static int +parse_blockio_params(struct iet_volume *volume, char *params) +{ + struct blockio_data *info = volume->private; + int err = 0; + char *p, *q; + + /* Loop through parameters separated by commas, look up our + * parameter in match table, return enumeration and arguments + * select case based on the returned enum and run the action */ + while ((p = strsep(¶ms, ",")) != NULL) { + substring_t args[MAX_OPT_ARGS]; + int token; + if (!*p) + continue; + iet_strtolower(p); + token = match_token(p, tokens, args); + switch (token) { + case opt_path: + if (info->path) { + iprintk("Target %s, LUN %u: " + "duplicate \"Path\" param\n", + volume->target->name, volume->lun); + err = -EINVAL; + goto out; + } + if (!(q = match_strdup(&args[0]))) { + err = -ENOMEM; + goto out; + } + err = blockio_open_path(volume, q); + kfree(q); + if (err < 0) + goto out; + break; + case opt_ignore: + break; + default: + iprintk("Target %s, LUN %u: unknown param %s\n", + volume->target->name, volume->lun, p); + return -EINVAL; + } + } + + if (!info->path) { + iprintk("Target %s, LUN %u: missing \"Path\" param\n", + volume->target->name, volume->lun); + err = -EINVAL; + } + + out: + return err; +} + +static void +blockio_detach(struct iet_volume *volume) +{ + struct blockio_data *bio_data = volume->private; + int flags = FMODE_READ | (LUReadonly(volume) ? 0 : FMODE_WRITE); + + if (bio_data->bdev) + close_bdev_exclusive(bio_data->bdev, flags); + kfree(bio_data->path); + + kfree(volume->private); +} + +static int +blockio_attach(struct iet_volume *volume, char *args) +{ + struct blockio_data *bio_data; + int err = 0; + + if (volume->private) { + eprintk("Lun %u already attached on Target %s \n", + volume->lun, volume->target->name); + return -EBUSY; + } + + bio_data = kzalloc(sizeof (*bio_data), GFP_KERNEL); + if (!bio_data) + return -ENOMEM; + + volume->private = bio_data; + + err = parse_blockio_params(volume, args); + if (!err) { + /* see Documentation/ABI/testing/sysfs-block */ + unsigned bsz = bdev_logical_block_size(bio_data->bdev); + if (!volume->blk_shift) + volume->blk_shift = blksize_bits(bsz); + else if (volume->blk_shift < blksize_bits(bsz)) { + eprintk("Specified block size (%u) smaller than " + "device %s logical block size (%u)\n", + (1 << volume->blk_shift), bio_data->path, bsz); + err = -EINVAL; + } + } + if (err < 0) { + eprintk("Error attaching Lun %u to Target %s \n", + volume->lun, volume->target->name); + goto out; + } + + volume->blk_cnt = bio_data->bdev->bd_inode->i_size >> volume->blk_shift; + + /* Offer neither write nor read caching */ + ClearLURCache(volume); + ClearLUWCache(volume); + + out: + if (err < 0) + blockio_detach(volume); + + return err; +} + +static void +blockio_show(struct iet_volume *volume, struct seq_file *seq) +{ + struct blockio_data *bio_data = volume->private; + + /* Used to display blockio volume info in /proc/net/iet/volumes */ + seq_printf(seq, " path:%s\n", bio_data->path); +} + +struct iotype blockio = { + .name = "blockio", + .attach = blockio_attach, + .make_request = blockio_make_request, + .detach = blockio_detach, + .show = blockio_show, +}; --- linux-2.6.35.orig/ubuntu/iscsitarget/volume.c +++ linux-2.6.35/ubuntu/iscsitarget/volume.c @@ -0,0 +1,422 @@ +/* + * Volume manager + * (C) 2004 - 2005 FUJITA Tomonori + * This code is licenced under the GPL. + */ + +#include +#include + +#include "iscsi.h" +#include "iscsi_dbg.h" +#include "iotype.h" + +struct iet_volume *volume_lookup(struct iscsi_target *target, u32 lun) +{ + struct iet_volume *volume; + + list_for_each_entry(volume, &target->volumes, list) { + if (volume->lun == lun) + return volume; + } + return NULL; +} + +enum { + opt_type, + opt_iomode, + opt_scsiid, + opt_scsisn, + opt_blk_size, + opt_err, +}; + +static match_table_t tokens = { + {opt_type, "type=%s"}, + {opt_iomode, "iomode=%s"}, + {opt_scsiid, "scsiid=%s"}, + {opt_scsisn, "scsisn=%s"}, + {opt_blk_size, "blocksize=%u"}, + {opt_err, NULL}, +}; + +static int set_scsiid(struct iet_volume *volume, const char *id) +{ + size_t len; + + if ((len = strlen(id)) > SCSI_ID_LEN) { + eprintk("SCSI ID too long, %zd provided, %u max\n", len, + SCSI_ID_LEN); + return -EINVAL; + } + + memcpy(volume->scsi_id, id, len); + + return 0; +} + +static int set_scsisn(struct iet_volume *volume, const char *sn) +{ + size_t len; + int i; + + if ((len = strlen(sn)) > SCSI_SN_LEN) { + eprintk("SCSI SN too long, %zd provided, %u max\n", len, + SCSI_SN_LEN); + return -EINVAL; + } + + for (i = 0; i < len; i++) { + if (!isascii(*(sn + i)) || !isprint(*(sn + i))) { + eprintk("invalid characters in SCSI SN, %s\n", + "only printable ascii characters allowed!"); + return -EINVAL; + } + } + + memcpy(volume->scsi_sn, sn, len); + + return 0; +} + +/* Generate a MD5 hash of the target IQN and LUN number */ +static void gen_scsiid(struct iet_volume *volume) +{ + struct hash_desc hash; + + hash.tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC); + hash.flags = 0; + + if (hash.tfm) { + struct scatterlist sg[2]; + unsigned int nbytes = 0; + + sg_init_table(sg, 2); + + sg_set_buf(&sg[0], volume->target->name, + strlen(volume->target->name)); + nbytes += strlen(volume->target->name); + + sg_set_buf(&sg[1], &volume->lun, sizeof(volume->lun)); + nbytes += sizeof(volume->lun); + + crypto_hash_init(&hash); + crypto_hash_update(&hash, sg, nbytes); + crypto_hash_final(&hash, volume->scsi_id); + + crypto_free_hash(hash.tfm); + } else { + /* If no MD5 available set ID to TID and LUN */ + memcpy(volume->scsi_id, &volume->target->tid, + sizeof(volume->target->tid)); + memcpy(volume->scsi_id + sizeof(volume->target->tid), + &volume->lun, sizeof(volume->lun)); + } + +} + +static int parse_volume_params(struct iet_volume *volume, char *params) +{ + int err = 0; + unsigned blk_sz; + substring_t args[MAX_OPT_ARGS]; + char *p, *argp = NULL, *buf = (char *) get_zeroed_page(GFP_USER); + + if (!buf) + return -ENOMEM; + + strncpy(buf, params, PAGE_CACHE_SIZE); + + while ((p = strsep(&buf, ",")) != NULL) { + int token; + + if (!*p) + continue; + iet_strtolower(p); + token = match_token(p, tokens, args); + switch (token) { + case opt_type: + argp = match_strdup(&args[0]); + if (!argp) { + err = -ENOMEM; + break; + } + if (!(volume->iotype = get_iotype(argp))) + err = -ENOENT; + kfree(argp); + break; + case opt_iomode: + argp = match_strdup(&args[0]); + if (!argp) { + err = -ENOMEM; + break; + } + if (!strcmp(argp, "ro")) + SetLUReadonly(volume); + else if (!strcmp(argp, "wb")) + SetLUWCache(volume); + else if (strcmp(argp, "wt")) + err = -EINVAL; + kfree(argp); + break; + case opt_scsiid: + argp = match_strdup(&args[0]); + if (!argp) { + err = -ENOMEM; + break; + } + err = set_scsiid(volume, argp); + kfree(argp); + break; + case opt_scsisn: + argp = match_strdup(&args[0]); + if (!argp) { + err = -ENOMEM; + break; + } + err = set_scsisn(volume, argp); + kfree(argp); + break; + case opt_blk_size: + argp = match_strdup(&args[0]); + if (!argp) { + err = -ENOMEM; + break; + } + blk_sz = simple_strtoull(argp, NULL, 10); + if (is_power_of_2(blk_sz) && + 512 <= blk_sz && blk_sz <= IET_MAX_BLOCK_SIZE) + volume->blk_shift = blksize_bits(blk_sz); + else { + eprintk("invalid BlockSize=%u\n", blk_sz); + err = -EINVAL; + } + kfree(argp); + break; + default: + break; + } + } + + if (!err && !volume->iotype && !(volume->iotype = get_iotype("fileio"))) { + eprintk("%s\n", "Cannot find fileio"); + err = -EINVAL; + } + + free_page((unsigned long) buf); + + return err; +} + +int volume_add(struct iscsi_target *target, struct volume_info *info) +{ + int ret; + struct iet_volume *volume; + char *args; + + volume = volume_lookup(target, info->lun); + if (volume) + return -EEXIST; + + if (info->lun > 0x3fff) + return -EINVAL; + + volume = kzalloc(sizeof(*volume), GFP_KERNEL); + if (!volume) + return -ENOMEM; + + volume->target = target; + volume->lun = info->lun; + + args = kzalloc(info->args_len + 1, GFP_KERNEL); + if (!args) { + ret = -ENOMEM; + goto free_volume; + } + + ret = copy_from_user(args, (void *)(unsigned long)info->args_ptr, + info->args_len); + if (ret) { + ret = -EFAULT; + goto free_args; + } + + ret = parse_volume_params(volume, args); + if (ret < 0) + goto free_args; + + ret = volume->iotype->attach(volume, args); + if (ret < 0) + goto free_args; + + if (!volume->scsi_id[0]) + gen_scsiid(volume); + + if (!volume->scsi_sn[0]) { + int i; + + for (i = 0; i < SCSI_ID_LEN; i++) + snprintf(volume->scsi_sn + (i * 2), 3, "%02x", + volume->scsi_id[i]); + } + + INIT_LIST_HEAD(&volume->queue.wait_list); + spin_lock_init(&volume->queue.queue_lock); + spin_lock_init(&volume->reserve_lock); + + volume->l_state = IDEV_RUNNING; + atomic_set(&volume->l_count, 0); + + list_add_tail(&volume->list, &target->volumes); + atomic_inc(&target->nr_volumes); + + kfree(args); + + return 0; +free_args: + kfree(args); +free_volume: + put_iotype(volume->iotype); + kfree(volume); + + return ret; +} + +void iscsi_volume_destroy(struct iet_volume *volume) +{ + assert(volume->l_state == IDEV_DEL); + assert(!atomic_read(&volume->l_count)); + + volume->iotype->detach(volume); + put_iotype(volume->iotype); + list_del(&volume->list); + kfree(volume); +} + +int iscsi_volume_del(struct iscsi_target *target, struct volume_info *info) +{ + struct iet_volume *volume; + + eprintk("%x %x\n", target->tid, info->lun); + if (!(volume = volume_lookup(target, info->lun))) + return -ENOENT; + + volume->l_state = IDEV_DEL; + atomic_dec(&target->nr_volumes); + if (!atomic_read(&volume->l_count)) + iscsi_volume_destroy(volume); + + return 0; +} + +struct iet_volume *volume_get(struct iscsi_target *target, u32 lun) +{ + struct iet_volume *volume; + + if ((volume = volume_lookup(target, lun))) { + if (volume->l_state == IDEV_RUNNING) + atomic_inc(&volume->l_count); + else + volume = NULL; + } + return volume; +} + +void volume_put(struct iet_volume *volume) +{ + if (atomic_dec_and_test(&volume->l_count) && volume->l_state == IDEV_DEL) + iscsi_volume_destroy(volume); +} + +int volume_reserve(struct iet_volume *volume, u64 sid) +{ + int err = 0; + + if (!volume) + return -ENOENT; + + spin_lock(&volume->reserve_lock); + if (volume->reserve_sid && volume->reserve_sid != sid) + err = -EBUSY; + else + volume->reserve_sid = sid; + + spin_unlock(&volume->reserve_lock); + return err; +} + +int is_volume_reserved(struct iet_volume *volume, u64 sid) +{ + int err = 0; + + if (!volume) + return -ENOENT; + + spin_lock(&volume->reserve_lock); + if (!volume->reserve_sid || volume->reserve_sid == sid) + err = 0; + else + err = -EBUSY; + + spin_unlock(&volume->reserve_lock); + return err; +} + +int volume_release(struct iet_volume *volume, u64 sid, int force) +{ + int err = 0; + + if (!volume) + return -ENOENT; + + spin_lock(&volume->reserve_lock); + + if (force || volume->reserve_sid == sid) + volume->reserve_sid = 0; + else + err = -EBUSY; + + spin_unlock(&volume->reserve_lock); + return err; +} + +static void iet_volume_info_show(struct seq_file *seq, struct iscsi_target *target) +{ + struct iet_volume *volume; + + list_for_each_entry(volume, &target->volumes, list) { + seq_printf(seq, "\tlun:%u state:%x iotype:%s", + volume->lun, volume->l_state, volume->iotype->name); + if (LUReadonly(volume)) + seq_printf(seq, " iomode:ro"); + else if (LUWCache(volume)) + seq_printf(seq, " iomode:wb"); + else + seq_printf(seq, " iomode:wt"); + + seq_printf(seq, " blocks:%llu blocksize:%u", + volume->blk_cnt, 1 << volume->blk_shift); + if (volume->iotype->show) + volume->iotype->show(volume, seq); + else + seq_printf(seq, "\n"); + } +} + +static int iet_volume_seq_open(struct inode *inode, struct file *file) +{ + int res; + res = seq_open(file, &iet_seq_op); + if (!res) + ((struct seq_file *)file->private_data)->private = + iet_volume_info_show; + return res; +} + +struct file_operations volume_seq_fops = { + .owner = THIS_MODULE, + .open = iet_volume_seq_open, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; --- linux-2.6.35.orig/ubuntu/iscsitarget/ua.c +++ linux-2.6.35/ubuntu/iscsitarget/ua.c @@ -0,0 +1,176 @@ +/* + * IET Unit Attention support + * + * Copyright (C) 2009 Xie Gang + * Copyright (C) 2009 Arne Redlich + * + * Released under the terms of the GNU GPL v2.0. + */ + +#include + +#include "iscsi.h" +#include "iscsi_dbg.h" + +#define ua_hashfn(lun) ((lun % UA_HASH_LEN)) + +static struct kmem_cache *ua_cache; + +int ua_init(void) +{ + ua_cache = KMEM_CACHE(ua_entry, 0); + if (!ua_cache) { + eprintk("%s", "Failed to create ua cache\n"); + return -ENOMEM; + } + + return 0; +} + +void ua_exit(void) +{ + if (ua_cache) + kmem_cache_destroy(ua_cache); +} + +/* sess->ua_hash_lock needs to be held */ +static struct ua_entry * ua_find_hash(struct iscsi_session *sess, u32 lun, + u8 asc, u8 ascq, int match) +{ + struct ua_entry *ua; + struct list_head *h = &sess->ua_hash[ua_hashfn(lun)]; + + list_for_each_entry(ua, h, entry) { + if (ua->lun == lun) { + if (!match) + return ua; + if (ua->asc == asc && ua->ascq == ascq) + return ua; + } + } + + return NULL; +} + +int ua_pending(struct iscsi_session *sess, u32 lun) +{ + struct ua_entry *ua; + + spin_lock(&sess->ua_hash_lock); + ua = ua_find_hash(sess, lun, 0, 0, 0); + spin_unlock(&sess->ua_hash_lock); + + dprintk_ua(ua, sess, lun); + + return ua ? 1 : 0; +} + +/* sess->ua_hash_lock needs to be held */ +static struct ua_entry * __ua_get_hash(struct iscsi_session *sess, u32 lun, + u8 asc, u8 ascq, int match) +{ + struct ua_entry *ua = ua_find_hash(sess, lun, asc, ascq, match); + + if (ua) + list_del_init(&ua->entry); + + return ua; +} + +struct ua_entry * ua_get_first(struct iscsi_session *sess, u32 lun) +{ + struct ua_entry *ua; + + spin_lock(&sess->ua_hash_lock); + ua = __ua_get_hash(sess, lun, 0, 0, 0); + spin_unlock(&sess->ua_hash_lock); + + dprintk_ua(ua, sess, lun); + + return ua; +} + +struct ua_entry * ua_get_match(struct iscsi_session *sess, u32 lun, + u8 asc, u8 ascq) +{ + struct ua_entry *ua; + + spin_lock(&sess->ua_hash_lock); + ua = __ua_get_hash(sess, lun, asc, ascq, 1); + spin_unlock(&sess->ua_hash_lock); + + dprintk_ua(ua, sess, lun); + + return ua; +} + +void ua_establish_for_session(struct iscsi_session *sess, u32 lun, + u8 asc, u8 ascq) +{ + struct list_head *l = &sess->ua_hash[ua_hashfn(lun)]; + struct ua_entry *ua = kmem_cache_alloc(ua_cache, GFP_ATOMIC); + struct ua_entry *e; + + if (!ua) { + eprintk("%s", "Failed to alloc ua"); + return; + } + + ua->asc = asc; + ua->ascq = ascq; + ua->lun = lun; + ua->session = sess; + INIT_LIST_HEAD(&ua->entry); + + spin_lock(&sess->ua_hash_lock); + /* One UA per occurrence of an event */ + list_for_each_entry(e, l, entry) { + if (e->session == sess && e->lun == lun && + e->asc == asc && e->ascq == ascq && + e->session->exp_cmd_sn == sess->exp_cmd_sn) { + spin_unlock(&sess->ua_hash_lock); + ua_free(ua); + return; + } + } + list_add_tail(&ua->entry, l); + spin_unlock(&sess->ua_hash_lock); + + dprintk_ua(ua, sess, lun); +} + +void ua_establish_for_other_sessions(struct iscsi_session *sess, u32 lun, + u8 asc, u8 ascq) +{ + struct list_head *l = &sess->target->session_list; + struct iscsi_session *s; + + spin_lock(&sess->target->session_list_lock); + list_for_each_entry(s, l, list) + if (s->sid != sess->sid) + ua_establish_for_session(s, lun, asc, ascq); + spin_unlock(&sess->target->session_list_lock); +} + +void ua_establish_for_all_sessions(struct iscsi_target *target, u32 lun, + u8 asc, u8 ascq) +{ + struct list_head *l = &target->session_list; + struct iscsi_session *s; + + spin_lock(&target->session_list_lock); + list_for_each_entry(s, l, list) + ua_establish_for_session(s, lun, asc, ascq); + spin_unlock(&target->session_list_lock); + +} + +void ua_free(struct ua_entry *ua) +{ + if (!ua) + return; + + dprintk_ua(ua, ua->session, ua->lun); + BUG_ON(!list_empty(&ua->entry)); + kmem_cache_free(ua_cache, ua); +} --- linux-2.6.35.orig/ubuntu/iscsitarget/event.c +++ linux-2.6.35/ubuntu/iscsitarget/event.c @@ -0,0 +1,96 @@ +/* + * Event notification code. + * (C) 2005 FUJITA Tomonori + * This code is licenced under the GPL. + * + * Some functions are based on audit code. + */ + +#include +#include "iet_u.h" +#include "iscsi_dbg.h" + +static struct sock *nl; +static u32 ietd_pid; + +static int event_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) +{ + u32 uid, pid, seq; + char *data; + + pid = NETLINK_CREDS(skb)->pid; + uid = NETLINK_CREDS(skb)->uid; + seq = nlh->nlmsg_seq; + data = NLMSG_DATA(nlh); + + ietd_pid = pid; + + return 0; +} + +static void event_recv_skb(struct sk_buff *skb) +{ + int err; + struct nlmsghdr *nlh; + u32 rlen; + + while (skb->len >= NLMSG_SPACE(0)) { + nlh = (struct nlmsghdr *)skb->data; + if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len) + break; + rlen = NLMSG_ALIGN(nlh->nlmsg_len); + if (rlen > skb->len) + rlen = skb->len; + if ((err = event_recv_msg(skb, nlh))) { + netlink_ack(skb, nlh, -err); + } else if (nlh->nlmsg_flags & NLM_F_ACK) + netlink_ack(skb, nlh, 0); + skb_pull(skb, rlen); + } +} + +static int notify(void *data, int len, int gfp_mask) +{ + struct sk_buff *skb; + struct nlmsghdr *nlh; + static u32 seq = 0; + + if (!(skb = alloc_skb(NLMSG_SPACE(len), gfp_mask))) + return -ENOMEM; + + nlh = __nlmsg_put(skb, ietd_pid, seq++, NLMSG_DONE, len - sizeof(*nlh), 0); + + memcpy(NLMSG_DATA(nlh), data, len); + + return netlink_unicast(nl, skb, ietd_pid, 0); +} + +int event_send(u32 tid, u64 sid, u32 cid, u32 state, int atomic) +{ + int err; + struct iet_event event; + + event.tid = tid; + event.sid = sid; + event.cid = cid; + event.state = state; + + err = notify(&event, NLMSG_SPACE(sizeof(struct iet_event)), 0); + + return err; +} + +int event_init(void) +{ + nl = netlink_kernel_create(&init_net, NETLINK_IET, 1, event_recv_skb, + NULL, THIS_MODULE); + if (!nl) + return -ENOMEM; + else + return 0; +} + +void event_exit(void) +{ + netlink_kernel_release(nl); +} --- linux-2.6.35.orig/ubuntu/iscsitarget/param.c +++ linux-2.6.35/ubuntu/iscsitarget/param.c @@ -0,0 +1,205 @@ +/* + * (C) 2005 FUJITA Tomonori + * + * This code is licenced under the GPL. + */ + +#include "iscsi.h" +#include "iscsi_dbg.h" +#include "digest.h" + +struct target_type *target_type_array[] = { + &disk_ops, +}; + +#define CHECK_PARAM(info, iparam, word, min, max) \ +do { \ + if (!info->partial || (info->partial & 1 << key_##word)) \ + if (iparam[key_##word] < min || \ + iparam[key_##word] > max) { \ + eprintk("%s: %u is out of range (%u %u)\n", \ + #word, iparam[key_##word], min, max); \ + iparam[key_##word] = min; \ + } \ +} while (0) + +#define SET_PARAM(param, info, iparam, word) \ +({ \ + int changed = 0; \ + if (!info->partial || (info->partial & 1 << key_##word)) { \ + if (param->word != iparam[key_##word]) \ + changed = 1; \ + param->word = iparam[key_##word]; \ + } \ + changed; \ +}) + +#define GET_PARAM(param, info, iparam, word) \ +do { \ + iparam[key_##word] = param->word; \ +} while (0) + +static void sess_param_check(struct iscsi_param_info *info) +{ + u32 *iparam = info->session_param; + + CHECK_PARAM(info, iparam, max_connections, 1, 65535); + CHECK_PARAM(info, iparam, max_recv_data_length, 512, + (u32) ((ISCSI_CONN_IOV_MAX - 1) * PAGE_CACHE_SIZE)); + CHECK_PARAM(info, iparam, max_xmit_data_length, 512, + (u32) ((ISCSI_CONN_IOV_MAX - 1) * PAGE_CACHE_SIZE)); + CHECK_PARAM(info, iparam, error_recovery_level, 0, 0); + CHECK_PARAM(info, iparam, data_pdu_inorder, 1, 1); + CHECK_PARAM(info, iparam, data_sequence_inorder, 1, 1); + + digest_alg_available(&iparam[key_header_digest]); + digest_alg_available(&iparam[key_data_digest]); + + CHECK_PARAM(info, iparam, ofmarker, 0, 0); + CHECK_PARAM(info, iparam, ifmarker, 0, 0); +} + +static void sess_param_set(struct iscsi_sess_param *param, struct iscsi_param_info *info) +{ + u32 *iparam = info->session_param; + + SET_PARAM(param, info, iparam, initial_r2t); + SET_PARAM(param, info, iparam, immediate_data); + SET_PARAM(param, info, iparam, max_connections); + SET_PARAM(param, info, iparam, max_recv_data_length); + SET_PARAM(param, info, iparam, max_xmit_data_length); + SET_PARAM(param, info, iparam, max_burst_length); + SET_PARAM(param, info, iparam, first_burst_length); + SET_PARAM(param, info, iparam, default_wait_time); + SET_PARAM(param, info, iparam, default_retain_time); + SET_PARAM(param, info, iparam, max_outstanding_r2t); + SET_PARAM(param, info, iparam, data_pdu_inorder); + SET_PARAM(param, info, iparam, data_sequence_inorder); + SET_PARAM(param, info, iparam, error_recovery_level); + SET_PARAM(param, info, iparam, header_digest); + SET_PARAM(param, info, iparam, data_digest); + SET_PARAM(param, info, iparam, ofmarker); + SET_PARAM(param, info, iparam, ifmarker); + SET_PARAM(param, info, iparam, ofmarkint); + SET_PARAM(param, info, iparam, ifmarkint); +} + +static void sess_param_get(struct iscsi_sess_param *param, struct iscsi_param_info *info) +{ + u32 *iparam = info->session_param; + + GET_PARAM(param, info, iparam, initial_r2t); + GET_PARAM(param, info, iparam, immediate_data); + GET_PARAM(param, info, iparam, max_connections); + GET_PARAM(param, info, iparam, max_recv_data_length); + GET_PARAM(param, info, iparam, max_xmit_data_length); + GET_PARAM(param, info, iparam, max_burst_length); + GET_PARAM(param, info, iparam, first_burst_length); + GET_PARAM(param, info, iparam, default_wait_time); + GET_PARAM(param, info, iparam, default_retain_time); + GET_PARAM(param, info, iparam, max_outstanding_r2t); + GET_PARAM(param, info, iparam, data_pdu_inorder); + GET_PARAM(param, info, iparam, data_sequence_inorder); + GET_PARAM(param, info, iparam, error_recovery_level); + GET_PARAM(param, info, iparam, header_digest); + GET_PARAM(param, info, iparam, data_digest); + GET_PARAM(param, info, iparam, ofmarker); + GET_PARAM(param, info, iparam, ifmarker); + GET_PARAM(param, info, iparam, ofmarkint); + GET_PARAM(param, info, iparam, ifmarkint); +} + +static void trgt_param_check(struct iscsi_param_info *info) +{ + u32 *iparam = info->target_param; + + CHECK_PARAM(info, iparam, wthreads, MIN_NR_WTHREADS, MAX_NR_WTHREADS); + CHECK_PARAM(info, iparam, target_type, 0, + (unsigned int) ARRAY_SIZE(target_type_array) - 1); + CHECK_PARAM(info, iparam, queued_cmnds, MIN_NR_QUEUED_CMNDS, + MAX_NR_QUEUED_CMNDS); + CHECK_PARAM(info, iparam, nop_interval, MIN_NOP_INTERVAL, + MAX_NOP_INTERVAL); + CHECK_PARAM(info, iparam, nop_timeout, MIN_NOP_TIMEOUT, + MAX_NOP_TIMEOUT); +} + +static void trgt_param_set(struct iscsi_target *target, struct iscsi_param_info *info) +{ + struct iscsi_trgt_param *param = &target->trgt_param; + u32 *iparam = info->target_param; + + if (!worker_thread_pool && + SET_PARAM(param, info, iparam, wthreads)) + wthread_start(target->wthread_info, + target->trgt_param.wthreads, target->tid); + SET_PARAM(param, info, iparam, target_type); + SET_PARAM(param, info, iparam, queued_cmnds); + SET_PARAM(param, info, iparam, nop_interval); + SET_PARAM(param, info, iparam, nop_timeout); +} + +static void trgt_param_get(struct iscsi_trgt_param *param, struct iscsi_param_info *info) +{ + u32 *iparam = info->target_param; + + GET_PARAM(param, info, iparam, wthreads); + GET_PARAM(param, info, iparam, target_type); + GET_PARAM(param, info, iparam, queued_cmnds); + GET_PARAM(param, info, iparam, nop_interval); + GET_PARAM(param, info, iparam, nop_timeout); +} + +static int trgt_param(struct iscsi_target *target, struct iscsi_param_info *info, int set) +{ + + if (set) { + trgt_param_check(info); + trgt_param_set(target, info); + } else + trgt_param_get(&target->trgt_param, info); + + return 0; +} + +static int sess_param(struct iscsi_target *target, struct iscsi_param_info *info, int set) +{ + struct iscsi_session *session = NULL; + struct iscsi_sess_param *param; + int err = -ENOENT; + + if (set) + sess_param_check(info); + + if (info->sid) { + if (!(session = session_lookup(target, info->sid))) + goto out; + param = &session->param; + } else { + param = &target->sess_param; + } + + if (set) { + sess_param_set(param, info); + show_param(param); + } else + sess_param_get(param, info); + + err = 0; +out: + return err; +} + +int iscsi_param_set(struct iscsi_target *target, struct iscsi_param_info *info, int set) +{ + int err; + + if (info->param_type == key_session) + err = sess_param(target, info, set); + else if (info->param_type == key_target) + err = trgt_param(target, info, set); + else + err = -EINVAL; + + return err; +} --- linux-2.6.35.orig/ubuntu/iscsitarget/iscsi_hdr.h +++ linux-2.6.35/ubuntu/iscsitarget/iscsi_hdr.h @@ -0,0 +1,509 @@ +/* + * Copyright (C) 2002-2003 Ardis Technolgies + * + * Released under the terms of the GNU GPL v2.0. + */ + +#ifndef __ISCSI_HDR_H__ +#define __ISCSI_HDR_H__ + +#include +#include + +#define ISCSI_VERSION 0 + +#ifndef __packed +#define __packed __attribute__ ((packed)) +#endif + +struct iscsi_hdr { + u8 opcode; /* 0 */ + u8 flags; + u8 spec1[2]; +#if defined(__BIG_ENDIAN_BITFIELD) + struct { /* 4 */ + unsigned ahslength : 8; + unsigned datalength : 24; + } length; +#elif defined(__LITTLE_ENDIAN_BITFIELD) + u32 length; /* 4 */ +#endif + u16 lun[4]; /* 8 */ + u32 itt; /* 16 */ + u32 ttt; /* 20 */ + u32 sn; /* 24 */ + u32 exp_sn; /* 28 */ + u32 max_sn; /* 32 */ + u32 spec3[3]; /* 36 */ +} __packed; /* 48 */ + +/* Opcode encoding bits */ +#define ISCSI_OP_RETRY 0x80 +#define ISCSI_OP_IMMEDIATE 0x40 +#define ISCSI_OPCODE_MASK 0x3F + +/* Client to Server Message Opcode values */ +#define ISCSI_OP_NOP_OUT 0x00 +#define ISCSI_OP_SCSI_CMD 0x01 +#define ISCSI_OP_SCSI_TASK_MGT_MSG 0x02 +#define ISCSI_OP_LOGIN_CMD 0x03 +#define ISCSI_OP_TEXT_CMD 0x04 +#define ISCSI_OP_SCSI_DATA_OUT 0x05 +#define ISCSI_OP_LOGOUT_CMD 0x06 +#define ISCSI_OP_SNACK_CMD 0x10 + +#define ISCSI_OP_VENDOR1_CMD 0x1c +#define ISCSI_OP_VENDOR2_CMD 0x1d +#define ISCSI_OP_VENDOR3_CMD 0x1e +#define ISCSI_OP_VENDOR4_CMD 0x1f + +/* Server to Client Message Opcode values */ +#define ISCSI_OP_NOP_IN 0x20 +#define ISCSI_OP_SCSI_RSP 0x21 +#define ISCSI_OP_SCSI_TASK_MGT_RSP 0x22 +#define ISCSI_OP_LOGIN_RSP 0x23 +#define ISCSI_OP_TEXT_RSP 0x24 +#define ISCSI_OP_SCSI_DATA_IN 0x25 +#define ISCSI_OP_LOGOUT_RSP 0x26 +#define ISCSI_OP_R2T 0x31 +#define ISCSI_OP_ASYNC_MSG 0x32 +#define ISCSI_OP_REJECT 0x3f + +struct iscsi_ahs_hdr { + u16 ahslength; + u8 ahstype; +} __packed; + +#define ISCSI_AHSTYPE_CDB 1 +#define ISCSI_AHSTYPE_RLENGTH 2 + +union iscsi_sid { + struct { + u8 isid[6]; /* Initiator Session ID */ + u16 tsih; /* Target Session ID */ + } id; + u64 id64; +} __packed; + +struct iscsi_scsi_cmd_hdr { + u8 opcode; + u8 flags; + u16 rsvd1; + u8 ahslength; + u8 datalength[3]; + u16 lun[4]; + u32 itt; + u32 data_length; + u32 cmd_sn; + u32 exp_stat_sn; + u8 scb[16]; +} __packed; + +#define ISCSI_CMD_FINAL 0x80 +#define ISCSI_CMD_READ 0x40 +#define ISCSI_CMD_WRITE 0x20 +#define ISCSI_CMD_ATTR_MASK 0x07 +#define ISCSI_CMD_UNTAGGED 0x00 +#define ISCSI_CMD_SIMPLE 0x01 +#define ISCSI_CMD_ORDERED 0x02 +#define ISCSI_CMD_HEAD_OF_QUEUE 0x03 +#define ISCSI_CMD_ACA 0x04 + +struct iscsi_cdb_ahdr { + u16 ahslength; + u8 ahstype; + u8 reserved; + u8 cdb[0]; +} __packed; + +struct iscsi_rlength_ahdr { + u16 ahslength; + u8 ahstype; + u8 reserved; + u32 read_length; +} __packed; + +struct iscsi_scsi_rsp_hdr { + u8 opcode; + u8 flags; + u8 response; + u8 cmd_status; + u8 ahslength; + u8 datalength[3]; + u32 rsvd1[2]; + u32 itt; + u32 snack; + u32 stat_sn; + u32 exp_cmd_sn; + u32 max_cmd_sn; + u32 exp_data_sn; + u32 bi_residual_count; + u32 residual_count; +} __packed; + +#define ISCSI_FLG_RESIDUAL_UNDERFLOW 0x02 +#define ISCSI_FLG_RESIDUAL_OVERFLOW 0x04 +#define ISCSI_FLG_BIRESIDUAL_UNDERFLOW 0x08 +#define ISCSI_FLG_BIRESIDUAL_OVERFLOW 0x10 + +#define ISCSI_RESPONSE_COMMAND_COMPLETED 0x00 +#define ISCSI_RESPONSE_TARGET_FAILURE 0x01 + +struct iscsi_sense_data { + u16 length; + u8 data[0]; +} __packed; + +struct iscsi_task_mgt_hdr { + u8 opcode; + u8 function; + u16 rsvd1; + u8 ahslength; + u8 datalength[3]; + u16 lun[4]; + u32 itt; + u32 rtt; + u32 cmd_sn; + u32 exp_stat_sn; + u32 ref_cmd_sn; + u32 exp_data_sn; + u32 rsvd2[2]; +} __packed; + +#define ISCSI_FUNCTION_MASK 0x7f + +#define ISCSI_FUNCTION_ABORT_TASK 1 +#define ISCSI_FUNCTION_ABORT_TASK_SET 2 +#define ISCSI_FUNCTION_CLEAR_ACA 3 +#define ISCSI_FUNCTION_CLEAR_TASK_SET 4 +#define ISCSI_FUNCTION_LOGICAL_UNIT_RESET 5 +#define ISCSI_FUNCTION_TARGET_WARM_RESET 6 +#define ISCSI_FUNCTION_TARGET_COLD_RESET 7 +#define ISCSI_FUNCTION_TASK_REASSIGN 8 + +struct iscsi_task_rsp_hdr { + u8 opcode; + u8 flags; + u8 response; + u8 rsvd1; + u8 ahslength; + u8 datalength[3]; + u32 rsvd2[2]; + u32 itt; + u32 rsvd3; + u32 stat_sn; + u32 exp_cmd_sn; + u32 max_cmd_sn; + u32 rsvd4[3]; +} __packed; + +#define ISCSI_RESPONSE_FUNCTION_COMPLETE 0 +#define ISCSI_RESPONSE_UNKNOWN_TASK 1 +#define ISCSI_RESPONSE_UNKNOWN_LUN 2 +#define ISCSI_RESPONSE_TASK_ALLEGIANT 3 +#define ISCSI_RESPONSE_FAILOVER_UNSUPPORTED 4 +#define ISCSI_RESPONSE_FUNCTION_UNSUPPORTED 5 +#define ISCSI_RESPONSE_NO_AUTHORIZATION 6 +#define ISCSI_RESPONSE_FUNCTION_REJECTED 255 + +struct iscsi_data_out_hdr { + u8 opcode; + u8 flags; + u16 rsvd1; + u8 ahslength; + u8 datalength[3]; + u16 lun[4]; + u32 itt; + u32 ttt; + u32 rsvd2; + u32 exp_stat_sn; + u32 rsvd3; + u32 data_sn; + u32 buffer_offset; + u32 rsvd4; +} __packed; + +struct iscsi_data_in_hdr { + u8 opcode; + u8 flags; + u8 rsvd1; + u8 cmd_status; + u8 ahslength; + u8 datalength[3]; + u32 rsvd2[2]; + u32 itt; + u32 ttt; + u32 stat_sn; + u32 exp_cmd_sn; + u32 max_cmd_sn; + u32 data_sn; + u32 buffer_offset; + u32 residual_count; +} __packed; + +#define ISCSI_FLG_STATUS 0x01 + +struct iscsi_r2t_hdr { + u8 opcode; + u8 flags; + u16 rsvd1; + u8 ahslength; + u8 datalength[3]; + u16 lun[4]; + u32 itt; + u32 ttt; + u32 stat_sn; + u32 exp_cmd_sn; + u32 max_cmd_sn; + u32 r2t_sn; + u32 buffer_offset; + u32 data_length; +} __packed; + +struct iscsi_async_msg_hdr { + u8 opcode; + u8 flags; + u16 rsvd1; + u8 ahslength; + u8 datalength[3]; + u16 lun[4]; + u32 ffffffff; + u32 rsvd2; + u32 stat_sn; + u32 exp_cmd_sn; + u32 max_cmd_sn; + u8 async_event; + u8 async_vcode; + u16 param1; + u16 param2; + u16 param3; + u32 rsvd3; +} __packed; + +#define ISCSI_ASYNC_SCSI 0 +#define ISCSI_ASYNC_LOGOUT 1 +#define ISCSI_ASYNC_DROP_CONNECTION 2 +#define ISCSI_ASYNC_DROP_SESSION 3 +#define ISCSI_ASYNC_PARAM_REQUEST 4 +#define ISCSI_ASYNC_VENDOR 255 + +struct iscsi_text_req_hdr { + u8 opcode; + u8 flags; + u16 rsvd1; + u8 ahslength; + u8 datalength[3]; + u32 rsvd2[2]; + u32 itt; + u32 ttt; + u32 cmd_sn; + u32 exp_stat_sn; + u32 rsvd3[4]; +} __packed; + +struct iscsi_text_rsp_hdr { + u8 opcode; + u8 flags; + u16 rsvd1; + u8 ahslength; + u8 datalength[3]; + u32 rsvd2[2]; + u32 itt; + u32 ttt; + u32 stat_sn; + u32 exp_cmd_sn; + u32 max_cmd_sn; + u32 rsvd3[3]; +} __packed; + +struct iscsi_login_req_hdr { + u8 opcode; + u8 flags; + u8 max_version; /* Max. version supported */ + u8 min_version; /* Min. version supported */ + u8 ahslength; + u8 datalength[3]; + union iscsi_sid sid; + u32 itt; /* Initiator Task Tag */ + u16 cid; /* Connection ID */ + u16 rsvd1; + u32 cmd_sn; + u32 exp_stat_sn; + u32 rsvd2[4]; +} __packed; + +struct iscsi_login_rsp_hdr { + u8 opcode; + u8 flags; + u8 max_version; /* Max. version supported */ + u8 active_version; /* Active version */ + u8 ahslength; + u8 datalength[3]; + union iscsi_sid sid; + u32 itt; /* Initiator Task Tag */ + u32 rsvd1; + u32 stat_sn; + u32 exp_cmd_sn; + u32 max_cmd_sn; + u8 status_class; /* see Login RSP ststus classes below */ + u8 status_detail; /* see Login RSP Status details below */ + u8 rsvd2[10]; +} __packed; + +#define ISCSI_FLG_FINAL 0x80 +#define ISCSI_FLG_TRANSIT 0x80 +#define ISCSI_FLG_CSG_SECURITY 0x00 +#define ISCSI_FLG_CSG_LOGIN 0x04 +#define ISCSI_FLG_CSG_FULL_FEATURE 0x0c +#define ISCSI_FLG_CSG_MASK 0x0c +#define ISCSI_FLG_NSG_SECURITY 0x00 +#define ISCSI_FLG_NSG_LOGIN 0x01 +#define ISCSI_FLG_NSG_FULL_FEATURE 0x03 +#define ISCSI_FLG_NSG_MASK 0x03 + +/* Login Status response classes */ +#define ISCSI_STATUS_SUCCESS 0x00 +#define ISCSI_STATUS_REDIRECT 0x01 +#define ISCSI_STATUS_INITIATOR_ERR 0x02 +#define ISCSI_STATUS_TARGET_ERR 0x03 + +/* Login Status response detail codes */ +/* Class-0 (Success) */ +#define ISCSI_STATUS_ACCEPT 0x00 + +/* Class-1 (Redirection) */ +#define ISCSI_STATUS_TGT_MOVED_TEMP 0x01 +#define ISCSI_STATUS_TGT_MOVED_PERM 0x02 + +/* Class-2 (Initiator Error) */ +#define ISCSI_STATUS_INIT_ERR 0x00 +#define ISCSI_STATUS_AUTH_FAILED 0x01 +#define ISCSI_STATUS_TGT_FORBIDDEN 0x02 +#define ISCSI_STATUS_TGT_NOT_FOUND 0x03 +#define ISCSI_STATUS_TGT_REMOVED 0x04 +#define ISCSI_STATUS_NO_VERSION 0x05 +#define ISCSI_STATUS_TOO_MANY_CONN 0x06 +#define ISCSI_STATUS_MISSING_FIELDS 0x07 +#define ISCSI_STATUS_CONN_ADD_FAILED 0x08 +#define ISCSI_STATUS_INV_SESSION_TYPE 0x09 +#define ISCSI_STATUS_SESSION_NOT_FOUND 0x0a +#define ISCSI_STATUS_INV_REQ_TYPE 0x0b + +/* Class-3 (Target Error) */ +#define ISCSI_STATUS_TARGET_ERROR 0x00 +#define ISCSI_STATUS_SVC_UNAVAILABLE 0x01 +#define ISCSI_STATUS_NO_RESOURCES 0x02 + +struct iscsi_logout_req_hdr { + u8 opcode; + u8 flags; + u16 rsvd1; + u8 ahslength; + u8 datalength[3]; + u32 rsvd2[2]; + u32 itt; + u16 cid; + u16 rsvd3; + u32 cmd_sn; + u32 exp_stat_sn; + u32 rsvd4[4]; +} __packed; + +struct iscsi_logout_rsp_hdr { + u8 opcode; + u8 flags; + u8 response; + u8 rsvd1; + u8 ahslength; + u8 datalength[3]; + u32 rsvd2[2]; + u32 itt; + u32 rsvd3; + u32 stat_sn; + u32 exp_cmd_sn; + u32 max_cmd_sn; + u32 rsvd4; + u16 time2wait; + u16 time2retain; + u32 rsvd5; +} __packed; + +struct iscsi_snack_req_hdr { + u8 opcode; + u8 flags; + u16 rsvd1; + u8 ahslength; + u8 datalength[3]; + u32 rsvd2[2]; + u32 itt; + u32 ttt; + u32 rsvd3; + u32 exp_stat_sn; + u32 rsvd4[2]; + u32 beg_run; + u32 run_length; +} __packed; + +struct iscsi_reject_hdr { + u8 opcode; + u8 flags; + u8 reason; + u8 rsvd1; + u8 ahslength; + u8 datalength[3]; + u32 rsvd2[2]; + u32 ffffffff; + u32 rsvd3; + u32 stat_sn; + u32 exp_cmd_sn; + u32 max_cmd_sn; + u32 data_sn; + u32 rsvd4[2]; +} __packed; + +#define ISCSI_REASON_NO_FULL_FEATURE_PHASE 0x01 +#define ISCSI_REASON_DATA_DIGEST_ERROR 0x02 +#define ISCSI_REASON_DATA_SNACK_REJECT 0x03 +#define ISCSI_REASON_PROTOCOL_ERROR 0x04 +#define ISCSI_REASON_UNSUPPORTED_COMMAND 0x05 +#define ISCSI_REASON_IMMEDIATE_COMMAND_REJECT 0x06 +#define ISCSI_REASON_TASK_IN_PROGRESS 0x07 +#define ISCSI_REASON_INVALID_SNACK 0x08 +#define ISCSI_REASON_NO_BOOKMARK 0x09 +#define ISCSI_REASON_BOOKMARK_REJECT 0x0a +#define ISCSI_REASON_NEGOTIATION_RESET 0x0b +#define ISCSI_REASON_WAITING_LOGOUT 0x0c + + +struct iscsi_nop_out_hdr { + u8 opcode; + u8 flags; + u16 rsvd1; + u8 ahslength; + u8 datalength[3]; + u16 lun[4]; + u32 itt; + u32 ttt; + u32 cmd_sn; + u32 exp_stat_sn; + u32 rsvd2[4]; +} __packed; + +struct iscsi_nop_in_hdr { + u8 opcode; + u8 flags; + u16 rsvd1; + u8 ahslength; + u8 datalength[3]; + u16 lun[4]; + u32 itt; + u32 ttt; + u32 stat_sn; + u32 exp_cmd_sn; + u32 max_cmd_sn; + u32 rsvd2[3]; +} __packed; + +#define ISCSI_RESERVED_TAG (0xffffffffU) + +#endif /* __ISCSI_HDR_H__ */ --- linux-2.6.35.orig/ubuntu/iscsitarget/target_disk.c +++ linux-2.6.35/ubuntu/iscsitarget/target_disk.c @@ -0,0 +1,589 @@ +/* + * (C) 2004 - 2005 FUJITA Tomonori + * This code is licenced under the GPL. + * + * heavily based on code from kernel/iscsi.c: + * Copyright (C) 2002-2003 Ardis Technolgies , + * licensed under the terms of the GNU GPL v2.0, + */ + +#include +#include + +#include "iscsi.h" +#include "iscsi_dbg.h" + +static int insert_disconnect_pg(u8 *ptr) +{ + unsigned char disconnect_pg[] = {0x02, 0x0e, 0x80, 0x80, 0x00, 0x0a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + memcpy(ptr, disconnect_pg, sizeof(disconnect_pg)); + return sizeof(disconnect_pg); +} + +static int insert_caching_pg(u8 *ptr, int wcache, int rcache) +{ + unsigned char caching_pg[] = {0x08, 0x12, 0x10, 0x00, 0xff, 0xff, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x80, 0x14, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; + + memcpy(ptr, caching_pg, sizeof(caching_pg)); + if (wcache) + ptr[2] |= 0x04; /* set WCE bit if we're caching writes */ + if (!rcache) + ptr[2] |= 0x01; /* Read Cache Disable */ + + return sizeof(caching_pg); +} + +static int insert_ctrl_m_pg(u8 *ptr) +{ + unsigned char ctrl_m_pg[] = {0x0a, 0x0a, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x4b}; + + memcpy(ptr, ctrl_m_pg, sizeof(ctrl_m_pg)); + return sizeof(ctrl_m_pg); +} + +static int insert_iec_m_pg(u8 *ptr) +{ + unsigned char iec_m_pg[] = {0x1c, 0xa, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; + + memcpy(ptr, iec_m_pg, sizeof(iec_m_pg)); + return sizeof(iec_m_pg); +} + +static int insert_format_m_pg(u8 *ptr, u32 sector_size) +{ + unsigned char format_m_pg[] = {0x03, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00}; + + memcpy(ptr, format_m_pg, sizeof(format_m_pg)); + ptr[12] = (sector_size >> 8) & 0xff; + ptr[13] = sector_size & 0xff; + return sizeof(format_m_pg); +} + +static int insert_geo_m_pg(u8 *ptr, u64 sec) +{ + unsigned char geo_m_pg[] = {0x04, 0x16, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3a, 0x98, 0x00, 0x00}; + u32 ncyl; + u32 n; + + /* assume 0xff heads, 15krpm. */ + memcpy(ptr, geo_m_pg, sizeof(geo_m_pg)); + ncyl = sec >> 14; /* 256 * 64 */ + memcpy(&n, ptr+1, sizeof(u32)); + n = n | cpu_to_be32(ncyl); + memcpy(ptr+1, &n, sizeof(u32)); + return sizeof(geo_m_pg); +} + +static void build_mode_sense_response(struct iscsi_cmnd *cmnd) +{ + struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd); + struct tio *tio = cmnd->tio; + u8 *data, *scb = req->scb; + int len = 4, err = 0; + u8 pcode; + + /* changeable parameter mode pages are unsupported */ + if ((scb[2] & 0xc0) >> 6 == 0x1) + goto set_sense; + + pcode = req->scb[2] & 0x3f; + + assert(!tio); + tio = cmnd->tio = tio_alloc(1); + data = page_address(tio->pvec[0]); + assert(data); + clear_page(data); + + if (LUReadonly(cmnd->lun)) + data[2] = 0x80; + + if ((scb[1] & 0x8)) + data[3] = 0; + else { + data[3] = 8; + len += 8; + *(u32 *)(data + 4) = (cmnd->lun->blk_cnt >> 32) ? + cpu_to_be32(0xffffffff) : cpu_to_be32(cmnd->lun->blk_cnt); + *(u32 *)(data + 8) = cpu_to_be32(1 << cmnd->lun->blk_shift); + } + + switch (pcode) { + case 0x0: + break; + case 0x2: + len += insert_disconnect_pg(data + len); + break; + case 0x3: + len += insert_format_m_pg(data + len, 1 << cmnd->lun->blk_shift); + break; + case 0x4: + len += insert_geo_m_pg(data + len, cmnd->lun->blk_cnt); + break; + case 0x8: + len += insert_caching_pg(data + len, LUWCache(cmnd->lun), + LURCache(cmnd->lun)); + break; + case 0xa: + len += insert_ctrl_m_pg(data + len); + break; + case 0x1c: + len += insert_iec_m_pg(data + len); + break; + case 0x3f: + len += insert_disconnect_pg(data + len); + len += insert_format_m_pg(data + len, 1 << cmnd->lun->blk_shift); + len += insert_geo_m_pg(data + len, cmnd->lun->blk_cnt); + len += insert_caching_pg(data + len, LUWCache(cmnd->lun), + LURCache(cmnd->lun)); + len += insert_ctrl_m_pg(data + len); + len += insert_iec_m_pg(data + len); + break; + default: + err = -1; + } + + if (!err) { + data[0] = len - 1; + tio_set(tio, len, 0); + return; + } + + tio_put(tio); + cmnd->tio = NULL; + set_sense: + /* Invalid Field In CDB */ + iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x24, 0x0); +} + +static void build_inquiry_response(struct iscsi_cmnd *cmnd) +{ + struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd); + struct tio *tio = cmnd->tio; + u8 *data; + u8 *scb = req->scb; + int err = -1; + + /* + * - CmdDt and EVPD both set or EVPD and Page Code set: illegal + * - CmdDt set: not supported + */ + if ((scb[1] & 0x3) > 0x1 || (!(scb[1] & 0x3) && scb[2])) + goto set_sense; + + assert(!tio); + tio = cmnd->tio = tio_alloc(1); + data = page_address(tio->pvec[0]); + assert(data); + clear_page(data); + + if (!(scb[1] & 0x3)) { + data[2] = 4; + data[3] = 0x52; + data[4] = 59; + data[7] = 0x02; + memset(data + 8, 0x20, 28); + memcpy(data + 8, + VENDOR_ID, min_t(size_t, strlen(VENDOR_ID), 8)); + memcpy(data + 16, + PRODUCT_ID, min_t(size_t, strlen(PRODUCT_ID), 16)); + memcpy(data + 32, + PRODUCT_REV, min_t(size_t, strlen(PRODUCT_REV), 4)); + data[58] = 0x03; + data[59] = 0x20; + data[60] = 0x09; + data[61] = 0x60; + data[62] = 0x03; + data[63] = 0x00; + tio_set(tio, 64, 0); + err = 0; + } else if (scb[1] & 0x1) { + /* EVPD bit set */ + if (scb[2] == 0x0) { + data[1] = 0x0; + data[3] = 3; + data[4] = 0x0; + data[5] = 0x80; + data[6] = 0x83; + tio_set(tio, 7, 0); + err = 0; + } else if (scb[2] == 0x80) { + u32 len = 4; + + if (cmnd->lun) { + if (strlen(cmnd->lun->scsi_sn) <= 16) + len = 16; + else + len = SCSI_SN_LEN; + } + + data[1] = 0x80; + data[3] = len; + memset(data + 4, 0x20, len); + if (cmnd->lun) { + size_t offset = len - + strlen(cmnd->lun->scsi_sn); + memcpy(data + 4 + offset, cmnd->lun->scsi_sn, + strlen(cmnd->lun->scsi_sn)); + } + tio_set(tio, len + 4, 0); + err = 0; + } else if (scb[2] == 0x83) { + u32 len = SCSI_ID_LEN + 8; + + data[1] = 0x83; + data[3] = len + 4; + data[4] = 0x1; + data[5] = 0x1; + data[7] = len; + if (cmnd->lun) { /* We need this ? */ + memset(data + 8, 0x00, 8); + memcpy(data + 8, VENDOR_ID, + min_t(size_t, strlen(VENDOR_ID), 8)); + memcpy(data + 16, cmnd->lun->scsi_id, + SCSI_ID_LEN); + } + tio_set(tio, len + 8, 0); + err = 0; + } + } + + if (!err) { + tio_set(tio, min_t(u8, tio->size, scb[4]), 0); + if (!cmnd->lun) + data[0] = TYPE_NO_LUN; + return; + } + + tio_put(tio); + cmnd->tio = NULL; + set_sense: + /* Invalid Field In CDB */ + iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x24, 0x0); +} + +static void build_report_luns_response(struct iscsi_cmnd *cmnd) +{ + struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd); + struct tio *tio = cmnd->tio; + u32 *data, size, len; + struct iet_volume *lun; + int rest, idx = 0; + + size = (u32)req->scb[6] << 24 | (u32)req->scb[7] << 16 | + (u32)req->scb[8] << 8 | (u32)req->scb[9]; + if (size < 16) { + /* Invalid Field In CDB */ + iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x24, 0x0); + return; + } + + len = atomic_read(&cmnd->conn->session->target->nr_volumes) * 8; + size = min(size & ~(8 - 1), len + 8); + + assert(!tio); + tio = cmnd->tio = tio_alloc(get_pgcnt(size, 0)); + tio_set(tio, size, 0); + + data = page_address(tio->pvec[idx]); + assert(data); + *data++ = cpu_to_be32(len); + *data++ = 0; + size -= 8; + rest = PAGE_CACHE_SIZE - 8; + list_for_each_entry(lun, &cmnd->conn->session->target->volumes, list) { + if (lun->l_state != IDEV_RUNNING) + continue; + + *data++ = cpu_to_be32((0x3ff & lun->lun) << 16 | + ((lun->lun > 0xff) ? (0x1 << 30) : 0)); + *data++ = 0; + if ((size -= 8) == 0) + break; + if ((rest -= 8) == 0) { + idx++; + data = page_address(tio->pvec[idx]); + rest = PAGE_CACHE_SIZE; + } + } +} + +static void build_read_capacity_response(struct iscsi_cmnd *cmnd) +{ + struct tio *tio = cmnd->tio; + u32 *data; + + assert(!tio); + tio = cmnd->tio = tio_alloc(1); + data = page_address(tio->pvec[0]); + assert(data); + clear_page(data); + + data[0] = (cmnd->lun->blk_cnt >> 32) ? + cpu_to_be32(0xffffffff) : cpu_to_be32(cmnd->lun->blk_cnt - 1); + data[1] = cpu_to_be32(1U << cmnd->lun->blk_shift); + + tio_set(tio, 8, 0); +} + +static void build_request_sense_response(struct iscsi_cmnd *cmnd) +{ + struct tio *tio = cmnd->tio; + u8 *data; + + assert(!tio); + tio = cmnd->tio = tio_alloc(1); + data = page_address(tio->pvec[0]); + assert(data); + memset(data, 0, 18); + data[0] = 0xf0; + data[1] = 0; + data[2] = NO_SENSE; + data[7] = 10; + tio_set(tio, 18, 0); +} + +static void build_service_action_in_response(struct iscsi_cmnd *cmnd) +{ + struct tio *tio = cmnd->tio; + u32 *data; + u64 *data64; + + assert(!tio); + + /* only READ_CAPACITY_16 service action is currently supported */ + if ((cmnd_hdr(cmnd)->scb[1] & 0x1F) != 0x10) { + /* Invalid Field In CDB */ + iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x24, 0x0); + return; + } + + tio = cmnd->tio = tio_alloc(1); + data = page_address(tio->pvec[0]); + assert(data); + clear_page(data); + data64 = (u64*) data; + data64[0] = cpu_to_be64(cmnd->lun->blk_cnt - 1); + data[2] = cpu_to_be32(1UL << cmnd->lun->blk_shift); + + tio_set(tio, 12, 0); +} + +static void build_read_response(struct iscsi_cmnd *cmnd) +{ + struct tio *tio = cmnd->tio; + + assert(tio); + assert(cmnd->lun); + + if (tio_read(cmnd->lun, tio)) + /* Medium Error/Unrecovered Read Error */ + iscsi_cmnd_set_sense(cmnd, MEDIUM_ERROR, 0x11, 0x0); +} + +static void build_write_response(struct iscsi_cmnd *cmnd) +{ + int err; + struct tio *tio = cmnd->tio; + + assert(tio); + assert(cmnd->lun); + + list_del_init(&cmnd->list); + err = tio_write(cmnd->lun, tio); + if (!err && !LUWCache(cmnd->lun)) + err = tio_sync(cmnd->lun, tio); + + if (err) + /* Medium Error/Write Fault */ + iscsi_cmnd_set_sense(cmnd, MEDIUM_ERROR, 0x03, 0x0); +} + +static void build_sync_cache_response(struct iscsi_cmnd *cmnd) +{ + assert(cmnd->lun); + if (tio_sync(cmnd->lun, NULL)) + /* Medium Error/Write Fault */ + iscsi_cmnd_set_sense(cmnd, MEDIUM_ERROR, 0x03, 0x0); +} + +static void build_generic_response(struct iscsi_cmnd *cmnd) +{ + return; +} + +static void build_reserve_response(struct iscsi_cmnd *cmnd) +{ + switch (volume_reserve(cmnd->lun, cmnd->conn->session->sid)) { + case -ENOENT: + /* Logical Unit Not Supported (?) */ + iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x25, 0x0); + break; + case -EBUSY: + cmnd->status = SAM_STAT_RESERVATION_CONFLICT; + break; + default: + break; + } +} + +static void build_release_response(struct iscsi_cmnd *cmnd) +{ + int ret = volume_release(cmnd->lun, + cmnd->conn->session->sid, 0); + switch (ret) { + case -ENOENT: + /* Logical Unit Not Supported (?) */ + iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x25, 0x0); + break; + case -EBUSY: + cmnd->status = SAM_STAT_RESERVATION_CONFLICT; + break; + default: + break; + } +} + +static void build_reservation_conflict_response(struct iscsi_cmnd *cmnd) +{ + cmnd->status = SAM_STAT_RESERVATION_CONFLICT; +} + +static int disk_check_ua(struct iscsi_cmnd *cmnd) +{ + struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd); + struct ua_entry *ua; + + if (cmnd->lun && ua_pending(cmnd->conn->session, cmnd->lun->lun)) { + switch(req->scb[0]){ + case INQUIRY: + case REQUEST_SENSE: + break; + case REPORT_LUNS: + ua = ua_get_match(cmnd->conn->session, + cmnd->lun->lun, + /* reported luns data has changed */ + 0x3f, 0x0e); + ua_free(ua); + break; + default: + ua = ua_get_first(cmnd->conn->session, cmnd->lun->lun); + iscsi_cmnd_set_sense(cmnd, UNIT_ATTENTION, ua->asc, + ua->ascq); + ua_free(ua); + send_scsi_rsp(cmnd, build_generic_response); + return 1; + } + } + return 0; +} + +static int disk_check_reservation(struct iscsi_cmnd *cmnd) +{ + struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd); + + int ret = is_volume_reserved(cmnd->lun, + cmnd->conn->session->sid); + if (ret == -EBUSY) { + switch (req->scb[0]) { + case INQUIRY: + case RELEASE: + case REPORT_LUNS: + case REQUEST_SENSE: + case READ_CAPACITY: + /* allowed commands when reserved */ + break; + case SERVICE_ACTION_IN: + if ((cmnd_hdr(cmnd)->scb[1] & 0x1F) == 0x10) + break; + /* fall through */ + default: + /* return reservation conflict for all others */ + send_scsi_rsp(cmnd, + build_reservation_conflict_response); + return 1; + } + } + + return 0; +} + +static int disk_execute_cmnd(struct iscsi_cmnd *cmnd) +{ + struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd); + + req->opcode &= ISCSI_OPCODE_MASK; + + if (disk_check_ua(cmnd)) + return 0; + + if (disk_check_reservation(cmnd)) + return 0; + + switch (req->scb[0]) { + case INQUIRY: + send_data_rsp(cmnd, build_inquiry_response); + break; + case REPORT_LUNS: + send_data_rsp(cmnd, build_report_luns_response); + break; + case READ_CAPACITY: + send_data_rsp(cmnd, build_read_capacity_response); + break; + case MODE_SENSE: + send_data_rsp(cmnd, build_mode_sense_response); + break; + case REQUEST_SENSE: + send_data_rsp(cmnd, build_request_sense_response); + break; + case SERVICE_ACTION_IN: + send_data_rsp(cmnd, build_service_action_in_response); + break; + case READ_6: + case READ_10: + case READ_16: + send_data_rsp(cmnd, build_read_response); + break; + case WRITE_6: + case WRITE_10: + case WRITE_16: + case WRITE_VERIFY: + send_scsi_rsp(cmnd, build_write_response); + break; + case SYNCHRONIZE_CACHE: + send_scsi_rsp(cmnd, build_sync_cache_response); + break; + case RESERVE: + send_scsi_rsp(cmnd, build_reserve_response); + break; + case RELEASE: + send_scsi_rsp(cmnd, build_release_response); + break; + case START_STOP: + case TEST_UNIT_READY: + case VERIFY: + case VERIFY_16: + send_scsi_rsp(cmnd, build_generic_response); + break; + default: + eprintk("%s\n", "we should not come here!"); + break; + } + + return 0; +} + +struct target_type disk_ops = +{ + .id = 0, + .execute_cmnd = disk_execute_cmnd, +}; --- linux-2.6.35.orig/ubuntu/iscsitarget/digest.h +++ linux-2.6.35/ubuntu/iscsitarget/digest.h @@ -0,0 +1,20 @@ +/* + * iSCSI digest handling. + * (C) 2004 Xiranet Communications GmbH + * This code is licensed under the GPL. + */ + +#ifndef __IET_DIGEST_H__ +#define __IET_DIGEST_H__ + +extern void digest_alg_available(unsigned int *val); +extern int digest_init(struct iscsi_conn *conn); +extern void digest_cleanup(struct iscsi_conn *conn); + +extern int digest_rx_header(struct iscsi_cmnd *cmnd); +extern int digest_rx_data(struct iscsi_cmnd *cmnd); + +extern void digest_tx_header(struct iscsi_cmnd *cmnd); +extern void digest_tx_data(struct iscsi_cmnd *cmnd); + +#endif /* __IET_DIGEST_H__ */ --- linux-2.6.35.orig/ubuntu/iscsitarget/wthread.c +++ linux-2.6.35/ubuntu/iscsitarget/wthread.c @@ -0,0 +1,245 @@ +/* + * Worker thread. + * (C) 2004 - 2005 FUJITA Tomonori + * This code is licenced under the GPL. + */ + +#include + +#include "iscsi.h" +#include "iscsi_dbg.h" + +struct worker_thread_info *worker_thread_pool; + +void wthread_queue(struct iscsi_cmnd *cmnd) +{ + struct worker_thread_info *info = cmnd->conn->session->target->wthread_info; + + if (!list_empty(&cmnd->list)) { + struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd); + eprintk("%x %p %x %x %x %x %lx %x\n", + cmnd_itt(cmnd), req, req->opcode, req->scb[0], cmnd->pdu.datasize, + be32_to_cpu(req->data_length), cmnd->flags, req->flags); + + if (cmnd->lun) + eprintk("%u\n", cmnd->lun->lun); + assert(list_empty(&cmnd->list)); + } + + spin_lock(&info->wthread_lock); + list_add_tail(&cmnd->list, &info->work_queue); + spin_unlock(&info->wthread_lock); + + atomic_inc(&cmnd->conn->nr_busy_cmnds); + + wake_up(&info->wthread_sleep); +} + +static struct iscsi_cmnd * get_ready_cmnd(struct worker_thread_info *info) +{ + struct iscsi_cmnd *cmnd = NULL; + + spin_lock(&info->wthread_lock); + if (!list_empty(&info->work_queue)) { + cmnd = list_entry(info->work_queue.next, struct iscsi_cmnd, list); + list_del_init(&cmnd->list); + + assert(cmnd->conn); + } + spin_unlock(&info->wthread_lock); + + return cmnd; +} + +static int cmnd_execute(struct iscsi_cmnd *cmnd) +{ + int type = cmnd->conn->session->target->trgt_param.target_type; + + assert(target_type_array[type]->execute_cmnd); + return target_type_array[type]->execute_cmnd(cmnd); +} + +static int worker_thread(void *arg) +{ + struct worker_thread *wt = (struct worker_thread *) arg; + struct worker_thread_info *info = wt->w_info; + struct iscsi_cmnd *cmnd; + struct iscsi_conn *conn; + DECLARE_WAITQUEUE(wait, current); + + get_io_context(GFP_KERNEL, -1); + + if (!current->io_context) + eprintk("%s\n", "Failed to get IO context"); + else if (info->wthread_ioc) + copy_io_context(¤t->io_context, &info->wthread_ioc); + else + info->wthread_ioc = current->io_context; + + add_wait_queue(&info->wthread_sleep, &wait); + + __set_current_state(TASK_RUNNING); + do { + while (!list_empty(&info->work_queue) && + (cmnd = get_ready_cmnd(info))) { + conn = cmnd->conn; + if (cmnd_tmfabort(cmnd)) + cmnd_release(cmnd, 1); + else + cmnd_execute(cmnd); + assert(conn); + atomic_dec(&conn->nr_busy_cmnds); + } + + set_current_state(TASK_INTERRUPTIBLE); + if (list_empty(&info->work_queue)) + schedule(); + + __set_current_state(TASK_RUNNING); + } while (!kthread_should_stop()); + + remove_wait_queue(&info->wthread_sleep, &wait); + + if (current->io_context) { + struct io_context *ioc = current->io_context; + + task_lock(current); + current->io_context = NULL; + task_unlock(current); + + put_io_context(ioc); + } + + return 0; +} + +static int start_one_worker_thread(struct worker_thread_info *info, u32 tid) +{ + struct worker_thread *wt; + struct task_struct *task; + + if (!(wt = kmalloc(sizeof(struct worker_thread), GFP_KERNEL))) + return -ENOMEM; + + wt->w_info = info; + task = kthread_create(worker_thread, wt, "istiod%d", tid); + if (IS_ERR(task)) { + kfree(wt); + return PTR_ERR(task); + } + + wt->w_task = task; + list_add(&wt->w_list, &info->wthread_list); + info->nr_running_wthreads++; + + wake_up_process(task); + + return 0; +} + +static int stop_one_worker_thread(struct worker_thread *wt) +{ + struct worker_thread_info *info = wt->w_info; + int err; + + assert(wt->w_task); + err = kthread_stop(wt->w_task); + + if (err < 0 && err != -EINTR) + return err; + + list_del(&wt->w_list); + kfree(wt); + info->nr_running_wthreads--; + + return 0; +} + +int wthread_init(struct worker_thread_info *info) +{ + spin_lock_init(&info->wthread_lock); + + info->nr_running_wthreads = 0; + info->wthread_ioc = NULL; + + INIT_LIST_HEAD(&info->work_queue); + INIT_LIST_HEAD(&info->wthread_list); + + init_waitqueue_head(&info->wthread_sleep); + + return 0; +} + +int wthread_start(struct worker_thread_info *info, int wthreads, u32 tid) +{ + int err = 0; + + while (info->nr_running_wthreads < wthreads) { + if ((err = start_one_worker_thread(info, tid)) < 0) { + eprintk("Fail to create a worker thread %d\n", err); + goto out; + } + } + + while (info->nr_running_wthreads > wthreads) { + struct worker_thread *wt; + wt = list_entry(info->wthread_list.next, struct worker_thread, w_list); + if ((err = stop_one_worker_thread(wt)) < 0) { + eprintk("Fail to stop a worker thread %d\n", err); + break; + } + } +out: + return err; +} + +int wthread_stop(struct worker_thread_info *info) +{ + struct worker_thread *wt, *tmp; + int err = 0; + + list_for_each_entry_safe(wt, tmp, &info->wthread_list, w_list) { + if ((err = stop_one_worker_thread(wt)) < 0) { + eprintk("Fail to stop a worker thread %d\n", err); + return err; + } + } + + return err; +} + +int wthread_module_init() +{ + int err; + + if (!worker_thread_pool_size) + return 0; + + worker_thread_pool = kmalloc(sizeof(struct worker_thread_info), + GFP_KERNEL); + if (!worker_thread_pool) + return -ENOMEM; + + wthread_init(worker_thread_pool); + + err = wthread_start(worker_thread_pool, worker_thread_pool_size, 0); + if (err) { + kfree(worker_thread_pool); + worker_thread_pool = NULL; + return err; + } + + iprintk("iscsi_trgt using worker thread pool; size = %ld\n", + worker_thread_pool_size); + + return 0; +} + +void wthread_module_exit() +{ + if (!worker_thread_pool_size) + return; + + wthread_stop(worker_thread_pool); + kfree(worker_thread_pool); +} --- linux-2.6.35.orig/ubuntu/iscsitarget/session.c +++ linux-2.6.35/ubuntu/iscsitarget/session.c @@ -0,0 +1,180 @@ +/* + * Copyright (C) 2002-2003 Ardis Technolgies + * + * Released under the terms of the GNU GPL v2.0. + */ + +#include "iscsi.h" +#include "iscsi_dbg.h" + +struct iscsi_session *session_lookup(struct iscsi_target *target, u64 sid) +{ + struct iscsi_session *session; + + list_for_each_entry(session, &target->session_list, list) { + if (session->sid == sid) + return session; + } + return NULL; +} + +static struct iscsi_session * +iet_session_alloc(struct iscsi_target *target, struct session_info *info) +{ + int i; + struct iscsi_session *session; + struct iet_volume *vol; + + dprintk(D_SETUP, "%p %u %#Lx\n", target, target->tid, + (unsigned long long) info->sid); + + session = kzalloc(sizeof(*session), GFP_KERNEL); + if (!session) + return NULL; + + session->target = target; + session->sid = info->sid; + memcpy(&session->param, &target->sess_param, sizeof(session->param)); + session->max_queued_cmnds = target->trgt_param.queued_cmnds; + + session->exp_cmd_sn = info->exp_cmd_sn; + session->max_cmd_sn = info->max_cmd_sn; + + session->initiator = kstrdup(info->initiator_name, GFP_KERNEL); + if (!session->initiator) { + kfree(session); + return NULL; + } + + INIT_LIST_HEAD(&session->conn_list); + INIT_LIST_HEAD(&session->pending_list); + + spin_lock_init(&session->cmnd_hash_lock); + for (i = 0; i < ARRAY_SIZE(session->cmnd_hash); i++) + INIT_LIST_HEAD(&session->cmnd_hash[i]); + + spin_lock_init(&session->ua_hash_lock); + for (i = 0; i < ARRAY_SIZE(session->ua_hash); i++) + INIT_LIST_HEAD(&session->ua_hash[i]); + + list_for_each_entry(vol, &target->volumes, list) + /* power-on, reset, or bus device reset occurred */ + ua_establish_for_session(session, vol->lun, 0x29, 0x0); + + session->next_ttt = 1; + + spin_lock(&target->session_list_lock); + list_add(&session->list, &target->session_list); + spin_unlock(&target->session_list_lock); + + return session; +} + +static int session_free(struct iscsi_session *session) +{ + int i; + struct ua_entry *ua, *tmp; + struct list_head *l; + struct iscsi_target *target = session->target; + + dprintk(D_SETUP, "%#Lx\n", (unsigned long long) session->sid); + + spin_lock(&target->session_list_lock); + + assert(list_empty(&session->conn_list)); + + for (i = 0; i < ARRAY_SIZE(session->cmnd_hash); i++) { + if (!list_empty(&session->cmnd_hash[i])) + BUG(); + } + + for (i = 0; i < ARRAY_SIZE(session->ua_hash); i++) { + l = &session->ua_hash[i]; + list_for_each_entry_safe(ua, tmp, l, entry) { + list_del_init(&ua->entry); + ua_free(ua); + } + } + + list_del(&session->list); + + kfree(session->initiator); + kfree(session); + + spin_unlock(&target->session_list_lock); + + return 0; +} + +int session_add(struct iscsi_target *target, struct session_info *info) +{ + struct iscsi_session *session; + + session = session_lookup(target, info->sid); + if (session) + return -EEXIST; + + session = iet_session_alloc(target, info); + if (!session) + return -ENOMEM; + + return 0; +} + +int session_del(struct iscsi_target *target, u64 sid) +{ + struct iscsi_session *session; + struct iet_volume *volume; + + session = session_lookup(target, sid); + if (!session) + return -ENOENT; + + if (!list_empty(&session->conn_list)) { + DECLARE_COMPLETION_ONSTACK(done); + struct iscsi_conn *conn; + + session->done = &done; + list_for_each_entry(conn, &session->conn_list, list) + conn_close(conn); + + target_unlock(target); + wait_for_completion(&done); + target_lock(target, 0); + } + + list_for_each_entry(volume, &target->volumes, list){ + volume_release(volume, sid, 0); + } + + return session_free(session); +} + +static void iet_session_info_show(struct seq_file *seq, struct iscsi_target *target) +{ + struct iscsi_session *session; + + list_for_each_entry(session, &target->session_list, list) { + seq_printf(seq, "\tsid:%llu initiator:%s\n", + (unsigned long long) session->sid, session->initiator); + conn_info_show(seq, session); + } +} + +static int iet_session_seq_open(struct inode *inode, struct file *file) +{ + int res; + res = seq_open(file, &iet_seq_op); + if (!res) + ((struct seq_file *)file->private_data)->private = + iet_session_info_show; + return res; +} + +struct file_operations session_seq_fops = { + .owner = THIS_MODULE, + .open = iet_session_seq_open, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; --- linux-2.6.35.orig/ubuntu/iscsitarget/target.c +++ linux-2.6.35/ubuntu/iscsitarget/target.c @@ -0,0 +1,374 @@ +/* + * Copyright (C) 2002-2003 Ardis Technolgies + * + * Released under the terms of the GNU GPL v2.0. + */ + +#include "iscsi.h" +#include "digest.h" +#include "iscsi_dbg.h" + +#define MAX_NR_TARGETS (1UL << 30) + +static LIST_HEAD(target_list); +static DECLARE_MUTEX(target_list_sem); +static u32 next_target_id; +static u32 nr_targets; + +static struct iscsi_sess_param default_session_param = { + .initial_r2t = 1, + .immediate_data = 1, + .max_connections = 1, + .max_recv_data_length = 8192, + .max_xmit_data_length = 8192, + .max_burst_length = 262144, + .first_burst_length = 65536, + .default_wait_time = 2, + .default_retain_time = 20, + .max_outstanding_r2t = 1, + .data_pdu_inorder = 1, + .data_sequence_inorder = 1, + .error_recovery_level = 0, + .header_digest = DIGEST_NONE, + .data_digest = DIGEST_NONE, + .ofmarker = 0, + .ifmarker = 0, + .ofmarkint = 2048, + .ifmarkint = 2048, +}; + +static struct iscsi_trgt_param default_target_param = { + .wthreads = DEFAULT_NR_WTHREADS, + .target_type = 0, + .queued_cmnds = DEFAULT_NR_QUEUED_CMNDS, +}; + +inline int target_lock(struct iscsi_target *target, int interruptible) +{ + int err = 0; + + if (interruptible) + err = down_interruptible(&target->target_sem); + else + down(&target->target_sem); + + return err; +} + +inline void target_unlock(struct iscsi_target *target) +{ + up(&target->target_sem); +} + +static struct iscsi_target *__target_lookup_by_id(u32 id) +{ + struct iscsi_target *target; + + list_for_each_entry(target, &target_list, t_list) { + if (target->tid == id) + return target; + } + return NULL; +} + +static struct iscsi_target *__target_lookup_by_name(char *name) +{ + struct iscsi_target *target; + + list_for_each_entry(target, &target_list, t_list) { + if (!strcmp(target->name, name)) + return target; + } + return NULL; +} + +struct iscsi_target *target_lookup_by_id(u32 id) +{ + struct iscsi_target *target; + + down(&target_list_sem); + target = __target_lookup_by_id(id); + up(&target_list_sem); + + return target; +} + +static int target_thread_start(struct iscsi_target *target) +{ + int err; + + if ((err = nthread_start(target)) < 0) + return err; + + if (!worker_thread_pool) { + err = wthread_start(target->wthread_info, + target->trgt_param.wthreads, target->tid); + if (err) + nthread_stop(target); + } + + return err; +} + +static void target_thread_stop(struct iscsi_target *target) +{ + if (!worker_thread_pool) + wthread_stop(target->wthread_info); + + nthread_stop(target); +} + +static int iscsi_target_create(struct target_info *info, u32 tid) +{ + int err = -EINVAL, len; + char *name = info->name; + struct iscsi_target *target; + + dprintk(D_SETUP, "%u %s\n", tid, name); + + if (!(len = strlen(name))) { + eprintk("The length of the target name is zero %u\n", tid); + return err; + } + + if (!try_module_get(THIS_MODULE)) { + eprintk("Fail to get module %u\n", tid); + return err; + } + + target = kzalloc(sizeof(*target), GFP_KERNEL); + if (!target) { + err = -ENOMEM; + goto out; + } + + if (!worker_thread_pool) { + target->wthread_info = kmalloc(sizeof(struct worker_thread_info), GFP_KERNEL); + if (!target->wthread_info) { + err = -ENOMEM; + goto out; + } + } + + target->tid = info->tid = tid; + + memcpy(&target->sess_param, &default_session_param, sizeof(default_session_param)); + memcpy(&target->trgt_param, &default_target_param, sizeof(default_target_param)); + + strncpy(target->name, name, sizeof(target->name) - 1); + + init_MUTEX(&target->target_sem); + spin_lock_init(&target->session_list_lock); + + INIT_LIST_HEAD(&target->session_list); + INIT_LIST_HEAD(&target->volumes); + + atomic_set(&target->nr_volumes, 0); + + nthread_init(target); + + if (!worker_thread_pool) + wthread_init(target->wthread_info); + else + target->wthread_info = worker_thread_pool; + + + if ((err = target_thread_start(target)) < 0) { + target_thread_stop(target); + goto out; + } + + list_add(&target->t_list, &target_list); + + return 0; +out: + if (!worker_thread_pool) + kfree(target->wthread_info); + kfree(target); + module_put(THIS_MODULE); + + return err; +} + +int target_add(struct target_info *info) +{ + u32 tid = info->tid; + int err; + + err = down_interruptible(&target_list_sem); + if (err < 0) + return err; + + if (nr_targets > MAX_NR_TARGETS) { + err = -EBUSY; + goto out; + } + + if (__target_lookup_by_name(info->name) || + (tid && __target_lookup_by_id(tid))) { + err = -EEXIST; + goto out; + } + + if (!tid) { + do { + if (!++next_target_id) + ++next_target_id; + } while (__target_lookup_by_id(next_target_id)); + + tid = next_target_id; + } + + err = iscsi_target_create(info, tid); + if (!err) + nr_targets++; +out: + up(&target_list_sem); + + return err; +} + +static void target_destroy(struct iscsi_target *target) +{ + dprintk(D_SETUP, "%u\n", target->tid); + + target_thread_stop(target); + + while (!list_empty(&target->volumes)) { + struct iet_volume *volume; + volume = list_entry(target->volumes.next, struct iet_volume, list); + volume->l_state = IDEV_DEL; + iscsi_volume_destroy(volume); + } + + if (!worker_thread_pool) + kfree(target->wthread_info); + kfree(target); + + module_put(THIS_MODULE); +} + +/* @locking: target_list_sem must be locked */ +static int __target_del(struct iscsi_target *target) +{ + int err; + + target_lock(target, 0); + + if (!list_empty(&target->session_list)) { + struct iscsi_session *session; + + do { + session = list_entry(target->session_list.next, + struct iscsi_session, list); + err = session_del(target, session->sid); + if (err < 0) { + target_unlock(target); + return err; + } + } while (!list_empty(&target->session_list)); + } + + list_del(&target->t_list); + nr_targets--; + + target_unlock(target); + target_destroy(target); + + return 0; +} + +int target_del(u32 id) +{ + struct iscsi_target *target; + int err; + + err = down_interruptible(&target_list_sem); + if (err < 0) + return err; + + target = __target_lookup_by_id(id); + if (!target) { + err = -ENOENT; + goto out; + } + + err = __target_del(target); +out: + up(&target_list_sem); + + return err; +} + +void target_del_all(void) +{ + struct iscsi_target *target, *tmp; + int err; + + down(&target_list_sem); + + if (!list_empty(&target_list)) + iprintk("Removing all connections, sessions and targets\n"); + + list_for_each_entry_safe(target, tmp, &target_list, t_list) { + u32 tid = target->tid; + err =__target_del(target); + if (err) + eprintk("Error deleteing target %u: %d\n", tid, err); + } + + next_target_id = 0; + + up(&target_list_sem); +} + +static void *iet_seq_start(struct seq_file *m, loff_t *pos) +{ + int err; + + /* are you sure this is to be interruptible? */ + err = down_interruptible(&target_list_sem); + if (err < 0) + return ERR_PTR(err); + + return seq_list_start(&target_list, *pos); +} + +static void *iet_seq_next(struct seq_file *m, void *v, loff_t *pos) +{ + return seq_list_next(v, &target_list, pos); +} + +static void iet_seq_stop(struct seq_file *m, void *v) +{ + up(&target_list_sem); +} + +static int iet_seq_show(struct seq_file *m, void *p) +{ + iet_show_info_t *func = (iet_show_info_t *)m->private; + struct iscsi_target *target = + list_entry(p, struct iscsi_target, t_list); + int err; + + /* relly, interruptible? I'd think target_lock(target, 0) + * would be more appropriate. --lge */ + err = target_lock(target, 1); + if (err < 0) + return err; + + seq_printf(m, "tid:%u name:%s\n", target->tid, target->name); + + func(m, target); + + target_unlock(target); + + return 0; +} + +struct seq_operations iet_seq_op = { + .start = iet_seq_start, + .next = iet_seq_next, + .stop = iet_seq_stop, + .show = iet_seq_show, +}; --- linux-2.6.35.orig/ubuntu/iscsitarget/BOM +++ linux-2.6.35/ubuntu/iscsitarget/BOM @@ -0,0 +1,2 @@ +Downloaded from: http://sourceforge.net/projects/iscsitarget/files/ +Current Version: 1.4.20.2 --- linux-2.6.35.orig/ubuntu/iscsitarget/nthread.c +++ linux-2.6.35/ubuntu/iscsitarget/nthread.c @@ -0,0 +1,790 @@ +/* + * Network thread. + * (C) 2004 - 2005 FUJITA Tomonori + * (C) 2008 Arne Redlich + * + * This code is licenced under the GPL. + */ + +#include +#include +#include +#include + +#include "iscsi.h" +#include "iscsi_dbg.h" +#include "digest.h" + +enum daemon_state_bit { + D_ACTIVE, + D_DATA_READY, +}; + +void __nthread_wakeup(struct network_thread_info *info) +{ + set_bit(D_DATA_READY, &info->flags); + wake_up_process(info->task); +} + +void nthread_wakeup(struct iscsi_target *target) +{ + struct network_thread_info *info = &target->nthread_info; + + spin_lock_bh(&info->nthread_lock); + __nthread_wakeup(info); + spin_unlock_bh(&info->nthread_lock); +} + +static inline void iscsi_conn_init_read(struct iscsi_conn *conn, void *data, size_t len) +{ + len = (len + 3) & -4; // XXX ??? + conn->read_iov[0].iov_base = data; + conn->read_iov[0].iov_len = len; + conn->read_msg.msg_iov = conn->read_iov; + conn->read_msg.msg_iovlen = 1; + conn->read_size = (len + 3) & -4; +} + +static void iscsi_conn_read_ahs(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd) +{ + cmnd->pdu.ahs = kmalloc(cmnd->pdu.ahssize, __GFP_NOFAIL|GFP_KERNEL); + assert(cmnd->pdu.ahs); + iscsi_conn_init_read(conn, cmnd->pdu.ahs, cmnd->pdu.ahssize); +} + +static struct iscsi_cmnd * iscsi_get_send_cmnd(struct iscsi_conn *conn) +{ + struct iscsi_cmnd *cmnd = NULL; + + spin_lock(&conn->list_lock); + if (!list_empty(&conn->write_list)) { + cmnd = list_entry(conn->write_list.next, struct iscsi_cmnd, list); + list_del_init(&cmnd->list); + } + spin_unlock(&conn->list_lock); + + return cmnd; +} + +static int is_data_available(struct iscsi_conn *conn) +{ + int avail, res; + mm_segment_t oldfs; + struct socket *sock = conn->sock; + + oldfs = get_fs(); + set_fs(get_ds()); + res = sock->ops->ioctl(sock, SIOCINQ, (unsigned long) &avail); + set_fs(oldfs); + return (res >= 0) ? avail : res; +} + +static void forward_iov(struct msghdr *msg, int len) +{ + while (msg->msg_iov->iov_len <= len) { + len -= msg->msg_iov->iov_len; + msg->msg_iov++; + msg->msg_iovlen--; + } + + msg->msg_iov->iov_base = (char *) msg->msg_iov->iov_base + len; + msg->msg_iov->iov_len -= len; +} + +static int do_recv(struct iscsi_conn *conn, int state) +{ + mm_segment_t oldfs; + struct msghdr msg; + struct iovec iov[ISCSI_CONN_IOV_MAX]; + int i, len, res; + + if (!test_bit(CONN_ACTIVE, &conn->state)) { + res = -EIO; + goto out; + } + + if (is_data_available(conn) <= 0) { + res = -EAGAIN; + goto out; + } + + msg.msg_iov = iov; + msg.msg_iovlen = min_t(size_t, conn->read_msg.msg_iovlen, ISCSI_CONN_IOV_MAX); + for (i = 0, len = 0; i < msg.msg_iovlen; i++) { + iov[i] = conn->read_msg.msg_iov[i]; + len += iov[i].iov_len; + } + + oldfs = get_fs(); + set_fs(get_ds()); + res = sock_recvmsg(conn->sock, &msg, len, MSG_DONTWAIT | MSG_NOSIGNAL); + set_fs(oldfs); + + if (res <= 0) { + switch (res) { + case -EAGAIN: + case -ERESTARTSYS: + break; + default: + eprintk("%d\n", res); + conn_close(conn); + break; + } + } else { + conn->read_size -= res; + if (conn->read_size) + forward_iov(&conn->read_msg, res); + else + conn->read_state = state; + } + +out: + dprintk(D_IOD, "%d\n", res); + + return res; +} + +enum rx_state { + RX_INIT_BHS, /* Must be zero. */ + RX_BHS, + + RX_INIT_AHS, + RX_AHS, + + RX_INIT_HDIGEST, + RX_HDIGEST, + RX_CHECK_HDIGEST, + + RX_INIT_DATA, + RX_DATA, + + RX_INIT_DDIGEST, + RX_DDIGEST, + RX_CHECK_DDIGEST, + + RX_END, +}; + +static void rx_ddigest(struct iscsi_conn *conn, int state) +{ + struct iscsi_cmnd *cmnd = conn->read_cmnd; + int res = digest_rx_data(cmnd); + + if (!res) + conn->read_state = state; + else + conn_close(conn); +} + +static void rx_hdigest(struct iscsi_conn *conn, int state) +{ + struct iscsi_cmnd *cmnd = conn->read_cmnd; + int res = digest_rx_header(cmnd); + + if (!res) + conn->read_state = state; + else + conn_close(conn); +} + +static struct iscsi_cmnd *create_cmnd(struct iscsi_conn *conn) +{ + struct iscsi_cmnd *cmnd; + + cmnd = cmnd_alloc(conn, 1); + iscsi_conn_init_read(cmnd->conn, &cmnd->pdu.bhs, sizeof(cmnd->pdu.bhs)); + conn->read_state = RX_BHS; + + return cmnd; +} + +static int recv(struct iscsi_conn *conn) +{ + struct iscsi_cmnd *cmnd = conn->read_cmnd; + int hdigest, ddigest, res = 1; + + if (!test_bit(CONN_ACTIVE, &conn->state)) + return -EIO; + + hdigest = conn->hdigest_type & DIGEST_NONE ? 0 : 1; + ddigest = conn->ddigest_type & DIGEST_NONE ? 0 : 1; + +next_state: + switch (conn->read_state) { + case RX_INIT_BHS: + assert(!cmnd); + cmnd = conn->read_cmnd = create_cmnd(conn); + case RX_BHS: + res = do_recv(conn, RX_INIT_AHS); + if (res <= 0 || conn->read_state != RX_INIT_AHS) + break; + case RX_INIT_AHS: + iscsi_cmnd_get_length(&cmnd->pdu); + if (cmnd->pdu.ahssize) { + iscsi_conn_read_ahs(conn, cmnd); + conn->read_state = RX_AHS; + } else + conn->read_state = hdigest ? RX_INIT_HDIGEST : RX_INIT_DATA; + + if (conn->read_state != RX_AHS) + break; + case RX_AHS: + res = do_recv(conn, hdigest ? RX_INIT_HDIGEST : RX_INIT_DATA); + if (res <= 0 || conn->read_state != RX_INIT_HDIGEST) + break; + case RX_INIT_HDIGEST: + iscsi_conn_init_read(conn, &cmnd->hdigest, sizeof(u32)); + conn->read_state = RX_HDIGEST; + case RX_HDIGEST: + res = do_recv(conn, RX_CHECK_HDIGEST); + if (res <= 0 || conn->read_state != RX_CHECK_HDIGEST) + break; + case RX_CHECK_HDIGEST: + rx_hdigest(conn, RX_INIT_DATA); + if (conn->read_state != RX_INIT_DATA) + break; + case RX_INIT_DATA: + cmnd_rx_start(cmnd); + conn->read_state = cmnd->pdu.datasize ? RX_DATA : RX_END; + if (conn->read_state != RX_DATA) + break; + case RX_DATA: + res = do_recv(conn, ddigest ? RX_INIT_DDIGEST : RX_END); + if (res <= 0 || conn->read_state != RX_INIT_DDIGEST) + break; + case RX_INIT_DDIGEST: + iscsi_conn_init_read(conn, &cmnd->ddigest, sizeof(u32)); + conn->read_state = RX_DDIGEST; + case RX_DDIGEST: + res = do_recv(conn, RX_CHECK_DDIGEST); + if (res <= 0 || conn->read_state != RX_CHECK_DDIGEST) + break; + case RX_CHECK_DDIGEST: + rx_ddigest(conn, RX_END); + break; + default: + eprintk("%d %d %x\n", res, conn->read_state, cmnd_opcode(cmnd)); + assert(0); + } + + if (res <= 0) + return res; + + if (conn->read_state != RX_END) + goto next_state; + + if (conn->read_size) { + eprintk("%d %x %d\n", res, cmnd_opcode(cmnd), conn->read_size); + assert(0); + } + + cmnd_rx_end(cmnd); + if (conn->read_size) { + eprintk("%x %d\n", cmnd_opcode(cmnd), conn->read_size); + conn->read_state = RX_DATA; + return 1; + } + + conn->read_cmnd = NULL; + conn->read_state = RX_INIT_BHS; + + return 0; +} + +/* + * @locking: grabs the target's nthread_lock to protect it from races with + * iet_write_space() + */ +static void set_conn_wspace_wait(struct iscsi_conn *conn) +{ + struct network_thread_info *info = &conn->session->target->nthread_info; + struct sock *sk = conn->sock->sk; + + spin_lock_bh(&info->nthread_lock); + + if (sk_stream_wspace(sk) < sk_stream_min_wspace(sk)) + set_bit(CONN_WSPACE_WAIT, &conn->state); + + spin_unlock_bh(&info->nthread_lock); +} + +/* This is taken from the Ardis code. */ +static int write_data(struct iscsi_conn *conn) +{ + mm_segment_t oldfs; + struct file *file; + struct socket *sock; + ssize_t (*sendpage)(struct socket *, struct page *, int, size_t, int); + struct tio *tio; + struct iovec *iop; + int saved_size, size, sendsize; + int offset, idx; + int flags, res; + + file = conn->file; + saved_size = size = conn->write_size; + iop = conn->write_iop; + + if (iop) while (1) { + loff_t off = 0; + unsigned long count; + struct iovec *vec; + int rest; + + vec = iop; + for (count = 0; vec->iov_len; count++, vec++) + ; + oldfs = get_fs(); + set_fs(KERNEL_DS); + res = vfs_writev(file, (struct iovec __user *) iop, count, &off); + set_fs(oldfs); + dprintk(D_DATA, "%#Lx:%u: %d(%ld)\n", + (unsigned long long) conn->session->sid, conn->cid, + res, (long) iop->iov_len); + if (unlikely(res <= 0)) { + if (res == -EAGAIN || res == -EINTR) { + conn->write_iop = iop; + goto out_iov; + } + goto err; + } + + rest = res; + size -= res; + while (iop->iov_len <= rest && rest) { + rest -= iop->iov_len; + iop++; + } + iop->iov_base += rest; + iop->iov_len -= rest; + + if (!iop->iov_len) { + conn->write_iop = NULL; + if (size) + break; + goto out_iov; + } + } + + if (!(tio = conn->write_tcmnd)) { + eprintk("%s\n", "warning data missing!"); + return 0; + } + offset = conn->write_offset; + idx = offset >> PAGE_CACHE_SHIFT; + offset &= ~PAGE_CACHE_MASK; + + sock = conn->sock; + sendpage = sock->ops->sendpage ? : sock_no_sendpage; + flags = MSG_DONTWAIT; + + while (1) { + sendsize = PAGE_CACHE_SIZE - offset; + if (size <= sendsize) { + res = sendpage(sock, tio->pvec[idx], offset, size, flags); + dprintk(D_DATA, "%s %#Lx:%u: %d(%lu,%u,%u)\n", + sock->ops->sendpage ? "sendpage" : "writepage", + (unsigned long long ) conn->session->sid, conn->cid, + res, tio->pvec[idx]->index, offset, size); + if (unlikely(res <= 0)) { + if (res == -EAGAIN || res == -EINTR) { + goto out; + } + goto err; + } + if (res == size) { + conn->write_tcmnd = NULL; + conn->write_size = 0; + return saved_size; + } + offset += res; + size -= res; + continue; + } + + res = sendpage(sock, tio->pvec[idx], offset,sendsize, flags | MSG_MORE); + dprintk(D_DATA, "%s %#Lx:%u: %d(%lu,%u,%u)\n", + sock->ops->sendpage ? "sendpage" : "writepage", + (unsigned long long ) conn->session->sid, conn->cid, + res, tio->pvec[idx]->index, offset, sendsize); + if (unlikely(res <= 0)) { + if (res == -EAGAIN || res == -EINTR) { + goto out; + } + goto err; + } + if (res == sendsize) { + idx++; + offset = 0; + } else + offset += res; + size -= res; + } + out: + conn->write_offset = (idx << PAGE_CACHE_SHIFT) + offset; + out_iov: + conn->write_size = size; + if (res == -EAGAIN) { + set_conn_wspace_wait(conn); + if (saved_size == size) + return res; + } + + return saved_size - size; + + err: + eprintk("error %d at %#Lx:%u\n", res, + (unsigned long long) conn->session->sid, conn->cid); + return res; +} + +static void exit_tx(struct iscsi_conn *conn, int res) +{ + if (res > 0) + return; + + switch (res) { + case -EAGAIN: + case -ERESTARTSYS: + break; + default: + eprintk("%d %d %d\n", conn->write_size, conn->write_state, res); + conn_close(conn); + break; + } +} + +static int tx_ddigest(struct iscsi_cmnd *cmnd, int state) +{ + int res, rest = cmnd->conn->write_size; + struct msghdr msg = {.msg_flags = MSG_NOSIGNAL | MSG_DONTWAIT}; + struct kvec iov; + + iov.iov_base = (char *) (&cmnd->ddigest) + (sizeof(u32) - rest); + iov.iov_len = rest; + + res = kernel_sendmsg(cmnd->conn->sock, &msg, &iov, 1, rest); + + if (res > 0) { + cmnd->conn->write_size -= res; + if (!cmnd->conn->write_size) + cmnd->conn->write_state = state; + } else + exit_tx(cmnd->conn, res); + + return res; +} + +static void init_tx_hdigest(struct iscsi_cmnd *cmnd) +{ + struct iscsi_conn *conn = cmnd->conn; + struct iovec *iop; + + if (conn->hdigest_type & DIGEST_NONE) + return; + + digest_tx_header(cmnd); + + for (iop = conn->write_iop; iop->iov_len; iop++) + ; + iop->iov_base = &(cmnd->hdigest); + iop->iov_len = sizeof(u32); + conn->write_size += sizeof(u32); + iop++; + iop->iov_len = 0; + + return; +} + +enum tx_state { + TX_INIT, /* Must be zero. */ + TX_BHS_DATA, + TX_INIT_DDIGEST, + TX_DDIGEST, + TX_END, +}; + +static int do_send(struct iscsi_conn *conn, int state) +{ + int res; + + res = write_data(conn); + + if (res > 0) { + if (!conn->write_size) + conn->write_state = state; + } else + exit_tx(conn, res); + + return res; +} + +static int send(struct iscsi_conn *conn) +{ + struct iscsi_cmnd *cmnd = conn->write_cmnd; + int ddigest, res = 0; + + ddigest = conn->ddigest_type != DIGEST_NONE ? 1 : 0; + +next_state: + switch (conn->write_state) { + case TX_INIT: + assert(!cmnd); + cmnd = conn->write_cmnd = iscsi_get_send_cmnd(conn); + if (!cmnd) + return 0; + cmnd_tx_start(cmnd); + init_tx_hdigest(cmnd); + conn->write_state = TX_BHS_DATA; + case TX_BHS_DATA: + res = do_send(conn, ddigest && cmnd->pdu.datasize ? TX_INIT_DDIGEST : TX_END); + if (res <= 0 || conn->write_state != TX_INIT_DDIGEST) + break; + case TX_INIT_DDIGEST: + digest_tx_data(cmnd); + assert(!cmnd->conn->write_size); + cmnd->conn->write_size += sizeof(u32); + conn->write_state = TX_DDIGEST; + case TX_DDIGEST: + res = tx_ddigest(cmnd, TX_END); + break; + default: + eprintk("%d %d %x\n", res, conn->write_state, cmnd_opcode(cmnd)); + assert(0); + } + + if (res <= 0) + return res; + + if (conn->write_state != TX_END) + goto next_state; + + if (conn->write_size) { + eprintk("%d %x %u\n", res, cmnd_opcode(cmnd), conn->write_size); + assert(!conn->write_size); + } + cmnd_tx_end(cmnd); + cmnd_release(cmnd, 0); + conn->write_cmnd = NULL; + conn->write_state = TX_INIT; + + return 0; +} + +static void conn_nop_timeout(unsigned long data) +{ + struct iscsi_conn *conn = (struct iscsi_conn *)data; + + if (test_bit(CONN_ACTIVE, &conn->state)) + set_bit(CONN_NEED_NOP_IN, &conn->state); + + dprintk(D_THREAD, "conn %llu:%hu, NOP timer %p\n", conn->session->sid, + conn->cid, &conn->nop_timer); + + nthread_wakeup(conn->session->target); +} + +static void conn_reset_nop_timer(struct iscsi_conn *conn) +{ + struct iscsi_target *target = conn->session->target; + + if (target->trgt_param.nop_interval) + mod_timer(&conn->nop_timer, + jiffies + HZ * target->trgt_param.nop_interval); +} + +static void conn_start_nop_timer(struct iscsi_conn *conn) +{ + struct iscsi_target *target = conn->session->target; + + if (!target->trgt_param.nop_interval || timer_pending(&conn->nop_timer)) + return; + + conn->nop_timer.data = (unsigned long)conn; + conn->nop_timer.function = conn_nop_timeout; + + dprintk(D_THREAD, "conn %llu:%hu, NOP timer %p\n", conn->session->sid, + conn->cid, &conn->nop_timer); + + mod_timer(&conn->nop_timer, + jiffies + HZ * target->trgt_param.nop_interval); +} + +static void process_io(struct iscsi_conn *conn) +{ + struct iscsi_target *target = conn->session->target; + int res, wakeup = 0; + + res = recv(conn); + + if (is_data_available(conn) > 0 || res > 0) { + conn_reset_nop_timer(conn); + wakeup = 1; + } + + if (!test_bit(CONN_ACTIVE, &conn->state)) { + wakeup = 1; + goto out; + } + + if (test_bit(CONN_WSPACE_WAIT, &conn->state)) + goto out; + + res = send(conn); + + if (!list_empty(&conn->write_list) || conn->write_cmnd) { + conn_reset_nop_timer(conn); + wakeup = 1; + } + +out: + if (wakeup) + nthread_wakeup(target); + else if (test_and_clear_bit(CONN_NEED_NOP_IN, &conn->state)) { + send_nop_in(conn); + nthread_wakeup(target); + } else + conn_start_nop_timer(conn); + + return; +} + +static void close_conn(struct iscsi_conn *conn) +{ + struct iscsi_session *session = conn->session; + struct iscsi_target *target = conn->session->target; + struct iscsi_cmnd *cmnd; + + if (target->trgt_param.nop_interval) + del_timer_sync(&conn->nop_timer); + + conn->sock->ops->shutdown(conn->sock, 2); + + write_lock_bh(&conn->sock->sk->sk_callback_lock); + conn->sock->sk->sk_state_change = target->nthread_info.old_state_change; + conn->sock->sk->sk_data_ready = target->nthread_info.old_data_ready; + conn->sock->sk->sk_write_space = target->nthread_info.old_write_space; + write_unlock_bh(&conn->sock->sk->sk_callback_lock); + + fput(conn->file); + conn->file = NULL; + conn->sock = NULL; + + while (atomic_read(&conn->nr_busy_cmnds)) + yield(); + + while (!list_empty(&conn->pdu_list)) { + cmnd = list_entry(conn->pdu_list.next, struct iscsi_cmnd, conn_list); + + list_del_init(&cmnd->list); + cmnd_release(cmnd, 1); + } + + if (atomic_read(&conn->nr_cmnds)) { + eprintk("%u\n", atomic_read(&conn->nr_cmnds)); + list_for_each_entry(cmnd, &conn->pdu_list, conn_list) + eprintk("%x %x\n", cmnd_opcode(cmnd), cmnd_itt(cmnd)); + assert(0); + } + + event_send(target->tid, session->sid, conn->cid, E_CONN_CLOSE, 0); + conn_free(conn); + + if (list_empty(&session->conn_list)) { + if (session->done) + complete(session->done); + else + session_del(target, session->sid); + } +} + +static int istd(void *arg) +{ + struct iscsi_target *target = arg; + struct network_thread_info *info = &target->nthread_info; + struct iscsi_conn *conn, *tmp; + + __set_current_state(TASK_RUNNING); + do { + spin_lock_bh(&info->nthread_lock); + __set_current_state(TASK_INTERRUPTIBLE); + + if (!test_bit(D_DATA_READY, &info->flags)) { + spin_unlock_bh(&info->nthread_lock); + schedule(); + spin_lock_bh(&info->nthread_lock); + } + __set_current_state(TASK_RUNNING); + clear_bit(D_DATA_READY, &info->flags); + spin_unlock_bh(&info->nthread_lock); + + target_lock(target, 0); + list_for_each_entry_safe(conn, tmp, &info->active_conns, poll_list) { + if (test_bit(CONN_ACTIVE, &conn->state)) + process_io(conn); + else + close_conn(conn); + } + target_unlock(target); + + } while (!kthread_should_stop()); + + return 0; +} + +int nthread_init(struct iscsi_target *target) +{ + struct network_thread_info *info = &target->nthread_info; + + info->flags = 0; + info->task = NULL; + + info->old_state_change = NULL; + info->old_data_ready = NULL; + info->old_write_space = NULL; + + INIT_LIST_HEAD(&info->active_conns); + + spin_lock_init(&info->nthread_lock); + + return 0; +} + +int nthread_start(struct iscsi_target *target) +{ + int err = 0; + struct network_thread_info *info = &target->nthread_info; + struct task_struct *task; + + if (info->task) { + eprintk("Target (%u) already runs\n", target->tid); + return -EALREADY; + } + + task = kthread_run(istd, target, "istd%d", target->tid); + + if (IS_ERR(task)) + err = PTR_ERR(task); + else + info->task = task; + + return err; +} + +int nthread_stop(struct iscsi_target *target) +{ + int err; + struct network_thread_info *info = &target->nthread_info; + + if (!info->task) + return -ESRCH; + + err = kthread_stop(info->task); + + if (err < 0 && err != -EINTR) + return err; + + info->task = NULL; + + return 0; +} --- linux-2.6.35.orig/ubuntu/iscsitarget/config.c +++ linux-2.6.35/ubuntu/iscsitarget/config.c @@ -0,0 +1,362 @@ +/* + * (C) 2004 - 2005 FUJITA Tomonori + * + * This code is licenced under the GPL. + */ + +#include + +#include "iscsi.h" +#include "iscsi_dbg.h" + +static DECLARE_MUTEX(ioctl_sem); + +struct proc_entries { + const char *name; + struct file_operations *fops; +}; + +static struct proc_entries iet_proc_entries[] = +{ + {"volume", &volume_seq_fops}, + {"session", &session_seq_fops}, +}; + +static struct proc_dir_entry *proc_iet_dir; + +void iet_procfs_exit(void) +{ + int i; + + if (!proc_iet_dir) + return; + + for (i = 0; i < ARRAY_SIZE(iet_proc_entries); i++) + remove_proc_entry(iet_proc_entries[i].name, proc_iet_dir); + + remove_proc_entry(proc_iet_dir->name, proc_iet_dir->parent); +} + +int iet_procfs_init(void) +{ + int i; + struct proc_dir_entry *ent; + + if (!(proc_iet_dir = proc_mkdir("iet", init_net.proc_net))) + goto err; + + for (i = 0; i < ARRAY_SIZE(iet_proc_entries); i++) { + ent = create_proc_entry(iet_proc_entries[i].name, 0, proc_iet_dir); + if (ent) + ent->proc_fops = iet_proc_entries[i].fops; + else + goto err; + } + + return 0; + +err: + if (proc_iet_dir) + iet_procfs_exit(); + + return -ENOMEM; +} + +static int get_module_info(unsigned long ptr) +{ + struct module_info info; + int err; + + snprintf(info.version, sizeof(info.version), "%s", IET_VERSION_STRING); + + err = copy_to_user((void *) ptr, &info, sizeof(info)); + if (err) + return -EFAULT; + + return 0; +} + +static int get_conn_info(struct iscsi_target *target, unsigned long ptr) +{ + struct iscsi_session *session; + struct iscsi_conn *conn; + struct conn_info info; + int err; + + err = copy_from_user(&info, (void *) ptr, sizeof(info)); + if (err) + return -EFAULT; + + session = session_lookup(target, info.sid); + if (!session) + return -ENOENT; + + conn = conn_lookup(session, info.cid); + if (!conn) + return -ENOENT; + + info.cid = conn->cid; + info.stat_sn = conn->stat_sn; + info.exp_stat_sn = conn->exp_stat_sn; + + err = copy_to_user((void *) ptr, &info, sizeof(info)); + if (err) + return -EFAULT; + + return 0; +} + +static int add_conn(struct iscsi_target *target, unsigned long ptr) +{ + struct iscsi_session *session; + struct conn_info info; + int err; + + err = copy_from_user(&info, (void *) ptr, sizeof(info)); + if (err) + return -EFAULT; + + session = session_lookup(target, info.sid); + if (!session) + return -ENOENT; + + return conn_add(session, &info); +} + +static int del_conn(struct iscsi_target *target, unsigned long ptr) +{ + struct iscsi_session *session; + struct conn_info info; + int err; + + err = copy_from_user(&info, (void *) ptr, sizeof(info)); + if (err) + return -EFAULT; + + session = session_lookup(target, info.sid); + if (!session) + return -ENOENT; + + return conn_del(session, &info); +} + +static int get_session_info(struct iscsi_target *target, unsigned long ptr) +{ + struct iscsi_session *session; + struct session_info info; + int err; + + err = copy_from_user(&info, (void *) ptr, sizeof(info)); + if (err) + return -EFAULT; + + session = session_lookup(target, info.sid); + if (!session) + return -ENOENT; + + info.exp_cmd_sn = session->exp_cmd_sn; + info.max_cmd_sn = session->max_cmd_sn; + + err = copy_to_user((void *) ptr, &info, sizeof(info)); + if (err) + return -EFAULT; + + return 0; +} + +static int add_session(struct iscsi_target *target, unsigned long ptr) +{ + struct session_info info; + int err; + + err = copy_from_user(&info, (void *) ptr, sizeof(info)); + if (err) + return -EFAULT; + + return session_add(target, &info); +} + +static int del_session(struct iscsi_target *target, unsigned long ptr) +{ + struct session_info info; + int err; + + err = copy_from_user(&info, (void *) ptr, sizeof(info)); + if (err) + return -EFAULT; + + return session_del(target, info.sid); +} + +static int add_volume(struct iscsi_target *target, unsigned long ptr) +{ + struct volume_info info; + int err; + + err = copy_from_user(&info, (void *) ptr, sizeof(info)); + if (err) + return -EFAULT; + + return volume_add(target, &info); +} + +static int del_volume(struct iscsi_target *target, unsigned long ptr) +{ + struct volume_info info; + int err; + + err = copy_from_user(&info, (void *) ptr, sizeof(info)); + if (err) + return -EFAULT; + + return iscsi_volume_del(target, &info); +} + +static int iscsi_param_config(struct iscsi_target *target, unsigned long ptr, int set) +{ + struct iscsi_param_info info; + int err; + + err = copy_from_user(&info, (void *) ptr, sizeof(info)); + if (err) + return -EFAULT; + + err = iscsi_param_set(target, &info, set); + if (err < 0 || set) + return err; + + err = copy_to_user((void *) ptr, &info, sizeof(info)); + if (err) + return -EFAULT; + + return 0; +} + +static int add_target(unsigned long ptr) +{ + struct target_info info; + int err; + + err = copy_from_user(&info, (void *) ptr, sizeof(info)); + if (err) + return -EFAULT; + + err = target_add(&info); + if (err < 0) + return err; + + err = copy_to_user((void *) ptr, &info, sizeof(info)); + if (err) + return -EFAULT; + + return 0; +} + +static long ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct iscsi_target *target = NULL; + long err; + u32 id; + + err = down_interruptible(&ioctl_sem); + if (err < 0) + return err; + + if (cmd == GET_MODULE_INFO) { + err = get_module_info(arg); + goto done; + } + + if (cmd == ADD_TARGET) { + err = add_target(arg); + goto done; + } + + err = get_user(id, (u32 *) arg); + if (err < 0) + goto done; + + /* locking handled in target_del */ + if (cmd == DEL_TARGET) { + err = target_del(id); + goto done; + } + + target = target_lookup_by_id(id); + if (!target) { + err = -ENOENT; + goto done; + } + + err = target_lock(target, 1); + if (err < 0) + goto done; + + switch (cmd) { + case ADD_VOLUME: + err = add_volume(target, arg); + break; + + case DEL_VOLUME: + err = del_volume(target, arg); + break; + + case ADD_SESSION: + err = add_session(target, arg); + break; + + case DEL_SESSION: + err = del_session(target, arg); + break; + + case GET_SESSION_INFO: + err = get_session_info(target, arg); + break; + + case ISCSI_PARAM_SET: + err = iscsi_param_config(target, arg, 1); + break; + + case ISCSI_PARAM_GET: + err = iscsi_param_config(target, arg, 0); + break; + + case ADD_CONN: + err = add_conn(target, arg); + break; + + case DEL_CONN: + err = del_conn(target, arg); + break; + + case GET_CONN_INFO: + err = get_conn_info(target, arg); + break; + default: + eprintk("invalid ioctl cmd %x\n", cmd); + err = -EINVAL; + } + + target_unlock(target); +done: + up(&ioctl_sem); + + return err; +} + +static int release(struct inode *i __attribute__((unused)), + struct file *f __attribute__((unused))) +{ + down(&ioctl_sem); + target_del_all(); + up(&ioctl_sem); + + return 0; +} + +struct file_operations ctr_fops = { + .owner = THIS_MODULE, + .unlocked_ioctl = ioctl, + .compat_ioctl = ioctl, + .release = release +}; --- linux-2.6.35.orig/ubuntu/iscsitarget/compat.h +++ linux-2.6.35/ubuntu/iscsitarget/compat.h @@ -0,0 +1,30 @@ +/* + * Kernel compatibility routines + * + * Copyright (C) 2008 Ross Walker + * + * Released under the terms of the GNU GPL v2.0. + */ + +#ifndef __IET_COMPAT_H__ +#define __IET_COMPAT_H__ + +#include + +#ifndef DECLARE_COMPLETION_ONSTACK +#define DECLARE_COMPLETION_ONSTACK(work) DECLARE_COMPLETION(work) +#endif + +#ifndef is_power_of_2 +#define is_power_of_2(n) (n != 0 && ((n & (n - 1)) == 0)) +#endif + +#ifndef log2 +#define log2(n) ((sizeof(n) <= 4) ? (fls(n) - 1) : (fls64(n) - 1)) +#endif + +#ifndef roundup_pow_of_two +#define roundup_pow_of_two(n) (1UL << fls_long(n - 1)) +#endif + +#endif /* __IET_COMPAT_H__ */ --- linux-2.6.35.orig/ubuntu/iscsitarget/digest.c +++ linux-2.6.35/ubuntu/iscsitarget/digest.c @@ -0,0 +1,279 @@ +/* + * iSCSI digest handling. + * (C) 2004 - 2006 Xiranet Communications GmbH + * This code is licensed under the GPL. + */ + +#include + +#include "iscsi.h" +#include "digest.h" +#include "iscsi_dbg.h" + +void digest_alg_available(unsigned int *val) +{ + if (*val & DIGEST_CRC32C && + !crypto_has_alg("crc32c", 0, CRYPTO_ALG_ASYNC)) { + printk("CRC32C digest algorithm not available in kernel\n"); + *val |= ~DIGEST_CRC32C; + } +} + +/** + * initialize support for digest calculation. + * + * digest_init - + * @conn: ptr to connection to make use of digests + * + * @return: 0 on success, < 0 on error + */ +int digest_init(struct iscsi_conn *conn) +{ + int err = 0; + + if (!(conn->hdigest_type & DIGEST_ALL)) + conn->hdigest_type = DIGEST_NONE; + + if (!(conn->ddigest_type & DIGEST_ALL)) + conn->ddigest_type = DIGEST_NONE; + + if (conn->hdigest_type & DIGEST_CRC32C || + conn->ddigest_type & DIGEST_CRC32C) { + conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0, + CRYPTO_ALG_ASYNC); + conn->rx_hash.flags = 0; + if (IS_ERR(conn->rx_hash.tfm)) { + conn->rx_hash.tfm = NULL; + err = -ENOMEM; + goto out; + } + + conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0, + CRYPTO_ALG_ASYNC); + conn->tx_hash.flags = 0; + if (IS_ERR(conn->tx_hash.tfm)) { + conn->tx_hash.tfm = NULL; + err = -ENOMEM; + goto out; + } + } + +out: + if (err) + digest_cleanup(conn); + + return err; +} + +/** + * free resources used for digest calculation. + * + * digest_cleanup - + * @conn: ptr to connection that made use of digests + */ +void digest_cleanup(struct iscsi_conn *conn) +{ + if (conn->tx_hash.tfm) + crypto_free_hash(conn->tx_hash.tfm); + if (conn->rx_hash.tfm) + crypto_free_hash(conn->rx_hash.tfm); +} + +/** + * debug handling of header digest errors: + * simulates a digest error after n PDUs / every n-th PDU of type + * HDIGEST_ERR_CORRUPT_PDU_TYPE. + */ +static inline void __dbg_simulate_header_digest_error(struct iscsi_cmnd *cmnd) +{ +#define HDIGEST_ERR_AFTER_N_CMNDS 1000 +#define HDIGEST_ERR_ONLY_ONCE 1 +#define HDIGEST_ERR_CORRUPT_PDU_TYPE ISCSI_OP_SCSI_CMD +#define HDIGEST_ERR_CORRUPT_PDU_WITH_DATA_ONLY 0 + + static int num_cmnds = 0; + static int num_errs = 0; + + if (cmnd_opcode(cmnd) == HDIGEST_ERR_CORRUPT_PDU_TYPE) { + if (HDIGEST_ERR_CORRUPT_PDU_WITH_DATA_ONLY) { + if (cmnd->pdu.datasize) + num_cmnds++; + } else + num_cmnds++; + } + + if ((num_cmnds == HDIGEST_ERR_AFTER_N_CMNDS) + && (!(HDIGEST_ERR_ONLY_ONCE && num_errs))) { + printk("*** Faking header digest error ***\n"); + printk("\tcmnd: 0x%x, itt 0x%x, sn 0x%x\n", + cmnd_opcode(cmnd), + be32_to_cpu(cmnd->pdu.bhs.itt), + be32_to_cpu(cmnd->pdu.bhs.sn)); + cmnd->hdigest = ~cmnd->hdigest; + /* make things even worse by manipulating header fields */ + cmnd->pdu.datasize += 8; + num_errs++; + num_cmnds = 0; + } + return; +} + +/** + * debug handling of data digest errors: + * simulates a digest error after n PDUs / every n-th PDU of type + * DDIGEST_ERR_CORRUPT_PDU_TYPE. + */ +static inline void __dbg_simulate_data_digest_error(struct iscsi_cmnd *cmnd) +{ +#define DDIGEST_ERR_AFTER_N_CMNDS 50 +#define DDIGEST_ERR_ONLY_ONCE 1 +#define DDIGEST_ERR_CORRUPT_PDU_TYPE ISCSI_OP_SCSI_DATA_OUT +#define DDIGEST_ERR_CORRUPT_UNSOL_DATA_ONLY 0 + + static int num_cmnds = 0; + static int num_errs = 0; + + if ((cmnd->pdu.datasize) + && (cmnd_opcode(cmnd) == DDIGEST_ERR_CORRUPT_PDU_TYPE)) { + switch (cmnd_opcode(cmnd)) { + case ISCSI_OP_SCSI_DATA_OUT: + if ((DDIGEST_ERR_CORRUPT_UNSOL_DATA_ONLY) + && (cmnd->pdu.bhs.ttt != ISCSI_RESERVED_TAG)) + break; + default: + num_cmnds++; + } + } + + if ((num_cmnds == DDIGEST_ERR_AFTER_N_CMNDS) + && (!(DDIGEST_ERR_ONLY_ONCE && num_errs)) + && (cmnd->pdu.datasize) + && (!cmnd->conn->read_overflow)) { + printk("*** Faking data digest error: ***"); + printk("\tcmnd 0x%x, itt 0x%x, sn 0x%x\n", + cmnd_opcode(cmnd), + be32_to_cpu(cmnd->pdu.bhs.itt), + be32_to_cpu(cmnd->pdu.bhs.sn)); + cmnd->ddigest = ~cmnd->ddigest; + num_errs++; + num_cmnds = 0; + } +} + +static void digest_header(struct hash_desc *hash, struct iscsi_pdu *pdu, + u8 *crc) +{ + struct scatterlist sg[2]; + unsigned int nbytes = sizeof(struct iscsi_hdr); + + sg_init_table(sg, pdu->ahssize ? 2 : 1); + + sg_set_buf(&sg[0], &pdu->bhs, nbytes); + if (pdu->ahssize) { + sg_set_buf(&sg[1], pdu->ahs, pdu->ahssize); + nbytes += pdu->ahssize; + } + + crypto_hash_init(hash); + crypto_hash_update(hash, sg, nbytes); + crypto_hash_final(hash, crc); +} + +int digest_rx_header(struct iscsi_cmnd *cmnd) +{ + u32 crc; + + digest_header(&cmnd->conn->rx_hash, &cmnd->pdu, (u8 *) &crc); + if (crc != cmnd->hdigest) + return -EIO; + + return 0; +} + +void digest_tx_header(struct iscsi_cmnd *cmnd) +{ + digest_header(&cmnd->conn->tx_hash, &cmnd->pdu, (u8 *) &cmnd->hdigest); +} + +static void digest_data(struct hash_desc *hash, struct iscsi_cmnd *cmnd, + struct tio *tio, u32 offset, u8 *crc) +{ + struct scatterlist *sg = cmnd->conn->hash_sg; + u32 size, length; + int i, idx, count; + unsigned int nbytes; + + size = cmnd->pdu.datasize; + nbytes = size = (size + 3) & ~3; + + offset += tio->offset; + idx = offset >> PAGE_CACHE_SHIFT; + offset &= ~PAGE_CACHE_MASK; + count = get_pgcnt(size, offset); + assert(idx + count <= tio->pg_cnt); + + assert(count <= ISCSI_CONN_IOV_MAX); + + sg_init_table(sg, ARRAY_SIZE(cmnd->conn->hash_sg)); + crypto_hash_init(hash); + + for (i = 0; size; i++) { + if (offset + size > PAGE_CACHE_SIZE) + length = PAGE_CACHE_SIZE - offset; + else + length = size; + + sg_set_page(&sg[i], tio->pvec[idx + i], length, offset); + size -= length; + offset = 0; + } + + sg_mark_end(&sg[i - 1]); + + crypto_hash_update(hash, sg, nbytes); + crypto_hash_final(hash, crc); +} + +int digest_rx_data(struct iscsi_cmnd *cmnd) +{ + struct tio *tio; + struct iscsi_cmnd *scsi_cmnd; + struct iscsi_data_out_hdr *req; + u32 offset, crc; + + switch (cmnd_opcode(cmnd)) { + case ISCSI_OP_SCSI_REJECT: + case ISCSI_OP_PDU_REJECT: + case ISCSI_OP_DATA_REJECT: + return 0; + case ISCSI_OP_SCSI_DATA_OUT: + scsi_cmnd = cmnd->req; + req = (struct iscsi_data_out_hdr *) &cmnd->pdu.bhs; + tio = scsi_cmnd->tio; + offset = be32_to_cpu(req->buffer_offset); + break; + default: + tio = cmnd->tio; + offset = 0; + } + + digest_data(&cmnd->conn->rx_hash, cmnd, tio, offset, (u8 *) &crc); + + if (!cmnd->conn->read_overflow && + (cmnd_opcode(cmnd) != ISCSI_OP_PDU_REJECT)) { + if (crc != cmnd->ddigest) + return -EIO; + } + + return 0; +} + +void digest_tx_data(struct iscsi_cmnd *cmnd) +{ + struct tio *tio = cmnd->tio; + struct iscsi_data_out_hdr *req = (struct iscsi_data_out_hdr *)&cmnd->pdu.bhs; + + assert(tio); + digest_data(&cmnd->conn->tx_hash, cmnd, tio, + be32_to_cpu(req->buffer_offset), (u8 *) &cmnd->ddigest); +} --- linux-2.6.35.orig/ubuntu/iscsitarget/iotype.c +++ linux-2.6.35/ubuntu/iscsitarget/iotype.c @@ -0,0 +1,110 @@ +/* + * Manager for various I/O types. + * (C) 2004 - 2005 FUJITA Tomonori + * This code is licenced under the GPL. + */ + +#include "iscsi.h" +#include "iotype.h" +#include "iscsi_dbg.h" + +static LIST_HEAD(iotypes); +static rwlock_t iotypes_lock = RW_LOCK_UNLOCKED; + +static struct iotype *find_iotype(const char *name) +{ + struct iotype *iot = NULL; + + list_for_each_entry(iot, &iotypes, iot_list) { + if (strcmp(iot->name, name) == 0) + return iot; + } + return NULL; +} + +struct iotype *get_iotype(const char *name) +{ + struct iotype *iot; + + read_lock(&iotypes_lock); + iot = find_iotype(name); + read_unlock(&iotypes_lock); + + return iot; +} + +void put_iotype(struct iotype *iot) +{ + if (!iot) + return; + return; +} + +static int register_iotype(struct iotype *iot) +{ + int err = 0; + struct iotype *p; + + write_lock(&iotypes_lock); + + p = find_iotype(iot->name); + if (p) + err = -EBUSY; + else + list_add_tail(&iot->iot_list, &iotypes); + + write_unlock(&iotypes_lock); + + return err; +} + +static int unregister_iotype(struct iotype *iot) +{ + int err = 0; + struct iotype *p; + + write_lock(&iotypes_lock); + + p = find_iotype(iot->name); + if (p && p == iot) + list_del_init(&iot->iot_list); + else + err = -EINVAL; + + write_unlock(&iotypes_lock); + + + return err; +} + +struct iotype *iotype_array[] = { + &fileio, + &blockio, + &nullio, +}; + +int iotype_init(void) +{ + int i, err; + + for (i = 0; i < ARRAY_SIZE(iotype_array); i++) { + if (!(err = register_iotype(iotype_array[i]))) + iprintk("Registered io type %s\n", + iotype_array[i]->name); + else { + eprintk("Failed to register io type %s\n", + iotype_array[i]->name); + break; + } + } + + return err; +} + +void iotype_exit(void) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(iotype_array); i++) + unregister_iotype(iotype_array[i]); +} --- linux-2.6.35.orig/ubuntu/iscsitarget/iscsi.h +++ linux-2.6.35/ubuntu/iscsitarget/iscsi.h @@ -0,0 +1,524 @@ +/* + * Copyright (C) 2002-2003 Ardis Technolgies + * Copyright (C) 2008 Arne Redlich + * + * Released under the terms of the GNU GPL v2.0. + */ + +#ifndef __ISCSI_H__ +#define __ISCSI_H__ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "iscsi_hdr.h" +#include "iet_u.h" +#include "compat.h" + +#define IET_SENSE_BUF_SIZE 18 + +struct iscsi_sess_param { + int initial_r2t; + int immediate_data; + int max_connections; + int max_recv_data_length; + int max_xmit_data_length; + int max_burst_length; + int first_burst_length; + int default_wait_time; + int default_retain_time; + int max_outstanding_r2t; + int data_pdu_inorder; + int data_sequence_inorder; + int error_recovery_level; + int header_digest; + int data_digest; + int ofmarker; + int ifmarker; + int ofmarkint; + int ifmarkint; +}; + +struct iscsi_trgt_param { + int wthreads; + int target_type; + int queued_cmnds; + int nop_interval; + int nop_timeout; +}; + +struct tio { + u32 pg_cnt; + + pgoff_t idx; + u32 offset; + u32 size; + + struct page **pvec; + + atomic_t count; +}; + +struct network_thread_info { + struct task_struct *task; + unsigned long flags; + struct list_head active_conns; + + spinlock_t nthread_lock; + + void (*old_state_change)(struct sock *); + void (*old_data_ready)(struct sock *, int); + void (*old_write_space)(struct sock *); +}; + +struct worker_thread_info; + +struct worker_thread { + struct task_struct *w_task; + struct list_head w_list; + struct worker_thread_info *w_info; +}; + +struct worker_thread_info { + spinlock_t wthread_lock; + + u32 nr_running_wthreads; + + struct list_head wthread_list; + struct list_head work_queue; + + wait_queue_head_t wthread_sleep; + + struct io_context *wthread_ioc; +}; + +struct iscsi_cmnd; + +struct target_type { + int id; + int (*execute_cmnd) (struct iscsi_cmnd *); +}; + +enum iscsi_device_state { + IDEV_RUNNING, + IDEV_DEL, +}; + +struct iscsi_target { + struct list_head t_list; + u32 tid; + + char name[ISCSI_NAME_LEN]; + + struct iscsi_sess_param sess_param; + struct iscsi_trgt_param trgt_param; + + atomic_t nr_volumes; + struct list_head volumes; + struct list_head session_list; + + /* Prevents races between add/del session and adding UAs */ + spinlock_t session_list_lock; + + struct network_thread_info nthread_info; + /* Points either to own list or global pool */ + struct worker_thread_info * wthread_info; + + struct semaphore target_sem; +}; + +struct iscsi_queue { + spinlock_t queue_lock; + struct iscsi_cmnd *ordered_cmnd; + struct list_head wait_list; + int active_cnt; +}; + +struct iet_volume { + u32 lun; + + enum iscsi_device_state l_state; + atomic_t l_count; + + struct iscsi_target *target; + struct list_head list; + + struct iscsi_queue queue; + + u8 scsi_id[SCSI_ID_LEN]; + u8 scsi_sn[SCSI_SN_LEN + 1]; + + u32 blk_shift; + u64 blk_cnt; + + u64 reserve_sid; + spinlock_t reserve_lock; + + unsigned long flags; + + struct iotype *iotype; + void *private; +}; + +enum lu_flags { + LU_READONLY, + LU_WCACHE, + LU_RCACHE, +}; + +#define LUReadonly(lu) test_bit(LU_READONLY, &(lu)->flags) +#define SetLUReadonly(lu) set_bit(LU_READONLY, &(lu)->flags) + +#define LUWCache(lu) test_bit(LU_WCACHE, &(lu)->flags) +#define SetLUWCache(lu) set_bit(LU_WCACHE, &(lu)->flags) +#define ClearLUWCache(lu) clear_bit(LU_WCACHE, &(lu)->flags) + +#define LURCache(lu) test_bit(LU_RCACHE, &(lu)->flags) +#define SetLURCache(lu) set_bit(LU_RCACHE, &(lu)->flags) +#define ClearLURCache(lu) clear_bit(LU_RCACHE, &(lu)->flags) + +#define IET_HASH_ORDER 8 +#define cmnd_hashfn(itt) hash_long((itt), IET_HASH_ORDER) + +#define UA_HASH_LEN 8 + +struct iscsi_session { + struct list_head list; + struct iscsi_target *target; + struct completion *done; + char *initiator; + u64 sid; + + u32 exp_cmd_sn; + u32 max_cmd_sn; + + struct iscsi_sess_param param; + u32 max_queued_cmnds; + + struct list_head conn_list; + + struct list_head pending_list; + + spinlock_t cmnd_hash_lock; + struct list_head cmnd_hash[1 << IET_HASH_ORDER]; + + spinlock_t ua_hash_lock; + struct list_head ua_hash[UA_HASH_LEN]; + + u32 next_ttt; +}; + +enum connection_state_bit { + CONN_ACTIVE, + CONN_CLOSING, + CONN_WSPACE_WAIT, + CONN_NEED_NOP_IN, +}; + +#define ISCSI_CONN_IOV_MAX (((256 << 10) >> PAGE_SHIFT) + 1) + +struct iscsi_conn { + struct list_head list; /* list entry in session list */ + struct iscsi_session *session; /* owning session */ + + u16 cid; + unsigned long state; + + u32 stat_sn; + u32 exp_stat_sn; + + int hdigest_type; + int ddigest_type; + + struct list_head poll_list; + + struct file *file; + struct socket *sock; + spinlock_t list_lock; + atomic_t nr_cmnds; + atomic_t nr_busy_cmnds; + struct list_head pdu_list; /* in/outcoming pdus */ + struct list_head write_list; /* list of data pdus to be sent */ + struct timer_list nop_timer; + + struct iscsi_cmnd *read_cmnd; + struct msghdr read_msg; + struct iovec read_iov[ISCSI_CONN_IOV_MAX]; + u32 read_size; + u32 read_overflow; + int read_state; + + struct iscsi_cmnd *write_cmnd; + struct iovec write_iov[ISCSI_CONN_IOV_MAX]; + struct iovec *write_iop; + struct tio *write_tcmnd; + u32 write_size; + u32 write_offset; + int write_state; + + struct hash_desc rx_hash; + struct hash_desc tx_hash; + struct scatterlist hash_sg[ISCSI_CONN_IOV_MAX]; +}; + +struct iscsi_pdu { + struct iscsi_hdr bhs; + void *ahs; + unsigned int ahssize; + unsigned int datasize; +}; + +typedef void (iet_show_info_t)(struct seq_file *seq, struct iscsi_target *target); + +struct iscsi_cmnd { + struct list_head list; + struct list_head conn_list; + unsigned long flags; + struct iscsi_conn *conn; + struct iet_volume *lun; + + struct iscsi_pdu pdu; + struct list_head pdu_list; + + struct list_head hash_list; + + struct tio *tio; + + u8 status; + + struct timer_list timer; + + u32 r2t_sn; + u32 r2t_length; + u32 is_unsolicited_data; + u32 target_task_tag; + u32 outstanding_r2t; + + u32 hdigest; + u32 ddigest; + + struct iscsi_cmnd *req; + + unsigned char sense_buf[IET_SENSE_BUF_SIZE]; +}; + +struct ua_entry { + struct list_head entry; + struct iscsi_session *session; /* only used for debugging ATM */ + u32 lun; + u8 asc; + u8 ascq; +}; + +#define ISCSI_OP_SCSI_REJECT ISCSI_OP_VENDOR1_CMD +#define ISCSI_OP_PDU_REJECT ISCSI_OP_VENDOR2_CMD +#define ISCSI_OP_DATA_REJECT ISCSI_OP_VENDOR3_CMD +#define ISCSI_OP_SCSI_ABORT ISCSI_OP_VENDOR4_CMD + +/* iscsi.c */ +extern unsigned long worker_thread_pool_size; +extern struct iscsi_cmnd *cmnd_alloc(struct iscsi_conn *, int); +extern void cmnd_rx_start(struct iscsi_cmnd *); +extern void cmnd_rx_end(struct iscsi_cmnd *); +extern void cmnd_tx_start(struct iscsi_cmnd *); +extern void cmnd_tx_end(struct iscsi_cmnd *); +extern void cmnd_release(struct iscsi_cmnd *, int); +extern void send_data_rsp(struct iscsi_cmnd *, void (*)(struct iscsi_cmnd *)); +extern void send_scsi_rsp(struct iscsi_cmnd *, void (*)(struct iscsi_cmnd *)); +extern void iscsi_cmnd_set_sense(struct iscsi_cmnd *, u8 sense_key, u8 asc, + u8 ascq); +extern void send_nop_in(struct iscsi_conn *); + +/* conn.c */ +extern struct iscsi_conn *conn_lookup(struct iscsi_session *, u16); +extern int conn_add(struct iscsi_session *, struct conn_info *); +extern int conn_del(struct iscsi_session *, struct conn_info *); +extern int conn_free(struct iscsi_conn *); +extern void conn_close(struct iscsi_conn *); +extern void conn_info_show(struct seq_file *, struct iscsi_session *); + +/* nthread.c */ +extern int nthread_init(struct iscsi_target *); +extern int nthread_start(struct iscsi_target *); +extern int nthread_stop(struct iscsi_target *); +extern void __nthread_wakeup(struct network_thread_info *); +extern void nthread_wakeup(struct iscsi_target *); + +/* wthread.c */ +extern int wthread_init(struct worker_thread_info *info); +extern int wthread_start(struct worker_thread_info *info, int wthreads, u32 tid); +extern int wthread_stop(struct worker_thread_info *info); +extern void wthread_queue(struct iscsi_cmnd *); +extern struct target_type *target_type_array[]; +extern int wthread_module_init(void); +extern void wthread_module_exit(void); +extern struct worker_thread_info *worker_thread_pool; + +/* target.c */ +extern int target_lock(struct iscsi_target *, int); +extern void target_unlock(struct iscsi_target *); +struct iscsi_target *target_lookup_by_id(u32); +extern int target_add(struct target_info *); +extern int target_del(u32 id); +extern void target_del_all(void); +extern struct seq_operations iet_seq_op; + +/* config.c */ +extern int iet_procfs_init(void); +extern void iet_procfs_exit(void); +extern int iet_info_show(struct seq_file *, iet_show_info_t *); + +/* session.c */ +extern struct file_operations session_seq_fops; +extern struct iscsi_session *session_lookup(struct iscsi_target *, u64); +extern int session_add(struct iscsi_target *, struct session_info *); +extern int session_del(struct iscsi_target *, u64); + +/* volume.c */ +extern struct file_operations volume_seq_fops; +extern int volume_add(struct iscsi_target *, struct volume_info *); +extern int iscsi_volume_del(struct iscsi_target *, struct volume_info *); +extern void iscsi_volume_destroy(struct iet_volume *); +extern struct iet_volume *volume_lookup(struct iscsi_target *, u32); +extern struct iet_volume *volume_get(struct iscsi_target *, u32); +extern void volume_put(struct iet_volume *); +extern int volume_reserve(struct iet_volume *volume, u64 sid); +extern int volume_release(struct iet_volume *volume, u64 sid, int force); +extern int is_volume_reserved(struct iet_volume *volume, u64 sid); + +/* tio.c */ +extern int tio_init(void); +extern void tio_exit(void); +extern struct tio *tio_alloc(int); +extern void tio_get(struct tio *); +extern void tio_put(struct tio *); +extern void tio_set(struct tio *, u32, loff_t); +extern int tio_read(struct iet_volume *, struct tio *); +extern int tio_write(struct iet_volume *, struct tio *); +extern int tio_sync(struct iet_volume *, struct tio *); + +/* iotype.c */ +extern struct iotype *get_iotype(const char *name); +extern void put_iotype(struct iotype *iot); + +/* params.c */ +extern int iscsi_param_set(struct iscsi_target *, struct iscsi_param_info *, int); + +/* target_disk.c */ +extern struct target_type disk_ops; + +/* event.c */ +extern int event_send(u32, u64, u32, u32, int); +extern int event_init(void); +extern void event_exit(void); + +/* ua.c */ +int ua_init(void); +void ua_exit(void); +struct ua_entry * ua_get_first(struct iscsi_session *, u32 lun); +struct ua_entry * ua_get_match(struct iscsi_session *, u32 lun, u8 asc, + u8 ascq); +void ua_free(struct ua_entry *); +int ua_pending(struct iscsi_session *, u32 lun); +void ua_establish_for_session(struct iscsi_session *, u32 lun, u8 asc, + u8 ascq); +void ua_establish_for_other_sessions(struct iscsi_session *, u32 lun, u8 asc, + u8 ascq); +void ua_establish_for_all_sessions(struct iscsi_target *, u32 lun, u8 asc, + u8 ascq); + +#define get_pgcnt(size, offset) ((((size) + ((offset) & ~PAGE_CACHE_MASK)) + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT) + +static inline void iscsi_cmnd_get_length(struct iscsi_pdu *pdu) +{ +#if defined(__BIG_ENDIAN) + pdu->ahssize = pdu->bhs.length.ahslength * 4; + pdu->datasize = pdu->bhs.length.datalength; +#elif defined(__LITTLE_ENDIAN) + pdu->ahssize = (pdu->bhs.length & 0xff) * 4; + pdu->datasize = be32_to_cpu(pdu->bhs.length & ~0xff); +#else +#error +#endif +} + +static inline void iscsi_cmnd_set_length(struct iscsi_pdu *pdu) +{ +#if defined(__BIG_ENDIAN) + pdu->bhs.length.ahslength = pdu->ahssize / 4; + pdu->bhs.length.datalength = pdu->datasize; +#elif defined(__LITTLE_ENDIAN) + pdu->bhs.length = cpu_to_be32(pdu->datasize) | (pdu->ahssize / 4); +#else +#error +#endif +} + +#define cmnd_hdr(cmnd) ((struct iscsi_scsi_cmd_hdr *) (&((cmnd)->pdu.bhs))) +#define cmnd_ttt(cmnd) cpu_to_be32((cmnd)->pdu.bhs.ttt) +#define cmnd_itt(cmnd) cpu_to_be32((cmnd)->pdu.bhs.itt) +#define cmnd_opcode(cmnd) ((cmnd)->pdu.bhs.opcode & ISCSI_OPCODE_MASK) +#define cmnd_scsicode(cmnd) cmnd_hdr(cmnd)->scb[0] +#define cmnd_immediate(cmnd) ((cmnd)->pdu.bhs.opcode & ISCSI_OP_IMMEDIATE) + +/* default and maximum scsi level block sizes */ +#define IET_DEF_BLOCK_SIZE 512 +#define IET_MAX_BLOCK_SIZE 4096 + +enum cmnd_flags { + CMND_hashed, + CMND_queued, + CMND_final, + CMND_waitio, + CMND_close, + CMND_lunit, + CMND_pending, + CMND_tmfabort, + CMND_rxstart, + CMND_timer_active, +}; + +#define set_cmnd_hashed(cmnd) set_bit(CMND_hashed, &(cmnd)->flags) +#define cmnd_hashed(cmnd) test_bit(CMND_hashed, &(cmnd)->flags) + +#define set_cmnd_queued(cmnd) set_bit(CMND_queued, &(cmnd)->flags) +#define cmnd_queued(cmnd) test_bit(CMND_queued, &(cmnd)->flags) + +#define set_cmnd_final(cmnd) set_bit(CMND_final, &(cmnd)->flags) +#define cmnd_final(cmnd) test_bit(CMND_final, &(cmnd)->flags) + +#define set_cmnd_waitio(cmnd) set_bit(CMND_waitio, &(cmnd)->flags) +#define cmnd_waitio(cmnd) test_bit(CMND_waitio, &(cmnd)->flags) + +#define set_cmnd_close(cmnd) set_bit(CMND_close, &(cmnd)->flags) +#define cmnd_close(cmnd) test_bit(CMND_close, &(cmnd)->flags) + +#define set_cmnd_lunit(cmnd) set_bit(CMND_lunit, &(cmnd)->flags) +#define cmnd_lunit(cmnd) test_bit(CMND_lunit, &(cmnd)->flags) + +#define set_cmnd_pending(cmnd) set_bit(CMND_pending, &(cmnd)->flags) +#define clear_cmnd_pending(cmnd) clear_bit(CMND_pending, &(cmnd)->flags) +#define cmnd_pending(cmnd) test_bit(CMND_pending, &(cmnd)->flags) + +#define set_cmnd_tmfabort(cmnd) set_bit(CMND_tmfabort, &(cmnd)->flags) +#define cmnd_tmfabort(cmnd) test_bit(CMND_tmfabort, &(cmnd)->flags) + +#define set_cmnd_rxstart(cmnd) set_bit(CMND_rxstart, &(cmnd)->flags) +#define cmnd_rxstart(cmnd) test_bit(CMND_rxstart, &(cmnd)->flags) + +#define set_cmnd_timer_active(cmnd) set_bit(CMND_timer_active, &(cmnd)->flags) +#define clear_cmnd_timer_active(cmnd) \ + clear_bit(CMND_timer_active, &(cmnd)->flags) +#define cmnd_timer_active(cmnd) test_bit(CMND_timer_active, &(cmnd)->flags) + +#define VENDOR_ID "IET" +#define PRODUCT_ID "VIRTUAL-DISK" +#define PRODUCT_REV "0" + +#endif /* __ISCSI_H__ */ --- linux-2.6.35.orig/ubuntu/iscsitarget/iotype.h +++ linux-2.6.35/ubuntu/iscsitarget/iotype.h @@ -0,0 +1,42 @@ +/* + * (C) 2004 - 2005 FUJITA Tomonori + * This code is licenced under the GPL. + */ + +#include +#include "iscsi.h" + +#ifndef __IOTYPE_H__ +#define __IOTYPE_H__ + +struct iotype { + const char *name; + struct list_head iot_list; + + int (*attach)(struct iet_volume *dev, char *args); + int (*make_request)(struct iet_volume *dev, struct tio *tio, int rw); + int (*sync)(struct iet_volume *dev, struct tio *tio); + void (*detach)(struct iet_volume *dev); + void (*show)(struct iet_volume *dev, struct seq_file *seq); +}; + +extern struct iotype fileio; +extern struct iotype nullio; +extern struct iotype blockio; + +extern int iotype_init(void); +extern void iotype_exit(void); + +/* For option parameter parsing. + * This is slightly iet specific: we only tolower() up to the first '='. + * Note that this changes *c _in place_, but our parsing + * routines copy the input to a scratch page before parsing anyways. */ +static inline void iet_strtolower(char *c) +{ + if (!c) + return; + for (; *c && *c != '='; c++) + *c = tolower(*c); +} + +#endif --- linux-2.6.35.orig/ubuntu/iscsitarget/iscsi_dbg.h +++ linux-2.6.35/ubuntu/iscsitarget/iscsi_dbg.h @@ -0,0 +1,137 @@ +#ifndef ISCSI_DBG_H +#define ISCSI_DBG_H + +#define D_SETUP (1UL << 0) +#define D_EXIT (1UL << 1) +#define D_GENERIC (1UL << 2) +#define D_READ (1UL << 3) +#define D_WRITE (1UL << 4) +#define D_IOD (1UL << 5) +#define D_THREAD (1UL << 6) +#define D_TASK_MGT (1UL << 7) +#define D_IOMODE (1UL << 8) +#define D_UAC (1UL << 9) + +#define D_DATA (D_READ | D_WRITE) + +extern unsigned long debug_enable_flags; + +#define PFX "iscsi_trgt: " + +#define dprintk(debug, fmt, args...) do { \ + if ((debug) & debug_enable_flags) { \ + printk(KERN_DEBUG PFX "%s(%d) " fmt, __FUNCTION__,\ + __LINE__, args);\ + } \ +} while (0) + +#define dprintk_ua(ua, sess, lun) \ + dprintk(D_UAC, "sess %llu, lun %u: %p %x %x\n", \ + (sess)->sid, lun, ua, \ + (ua) ? (ua)->asc : 0, \ + (ua) ? (ua)->ascq : 0) + +#define eprintk(fmt, args...) do { \ + printk(KERN_ERR PFX "%s(%d) " fmt, __FUNCTION__, \ + __LINE__, args);\ +} while (0) + +#define iprintk(X...) printk(KERN_INFO PFX X) + +#define assert(p) do { \ + if (!(p)) { \ + printk(KERN_CRIT PFX "BUG at %s:%d assert(%s)\n",\ + __FILE__, __LINE__, #p); \ + dump_stack(); \ + BUG(); \ + } \ +} while (0) + +#ifdef D_IOV +static inline void iscsi_dump_iov(struct msghdr *msg) +{ + int i; + printk(PFX "%p, %d\n", msg->msg_iov, msg->msg_iovlen); + for (i = 0; i < min_t(size_t, msg->msg_iovlen, ISCSI_CONN_IOV_MAX); i++) + printk(PFX "%d: %p,%d\n", i, msg->msg_iov[i].iov_base, + msg->msg_iov[i].iov_len); +} +#else +#define iscsi_dump_iov(x) do {} while (0) +#endif + +#ifdef D_DUMP_PDU +static void iscsi_dump_char(int ch) +{ + static unsigned char text[16]; + static int i = 0; + + if (ch < 0) { + while ((i % 16) != 0) { + printk(" "); + text[i] = ' '; + i++; + if ((i % 16) == 0) + printk(" | %.16s |\n", text); + else if ((i % 4) == 0) + printk(" |"); + } + i = 0; + return; + } + + text[i] = (ch < 0x20 || (ch >= 0x80 && ch <= 0xa0)) ? ' ' : ch; + printk(" %02x", ch); + i++; + if ((i % 16) == 0) { + printk(" | %.16s |\n", text); + i = 0; + } else if ((i % 4) == 0) + printk(" |"); +} + +static inline void iscsi_dump_pdu(struct iscsi_pdu *pdu) +{ + unsigned char *buf; + int i; + + buf = (void *)&pdu->bhs; + printk(PFX "BHS: (%p,%d)\n", buf, sizeof(pdu->bhs)); + for (i = 0; i < sizeof(pdu->bhs); i++) + iscsi_dump_char(*buf++); + iscsi_dump_char(-1); + + buf = (void *)pdu->ahs; + printk(PFX "AHS: (%p,%d)\n", buf, pdu->ahssize); + for (i = 0; i < pdu->ahssize; i++) + iscsi_dump_char(*buf++); + iscsi_dump_char(-1); + + printk(PFX "Data: (%d)\n", pdu->datasize); +} + +#else +#define iscsi_dump_pdu(x) do {} while (0) +#endif + +#define show_param(param)\ +{\ + dprintk(D_SETUP, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",\ + (param)->initial_r2t,\ + (param)->immediate_data,\ + (param)->max_connections,\ + (param)->max_recv_data_length,\ + (param)->max_xmit_data_length,\ + (param)->max_burst_length,\ + (param)->first_burst_length,\ + (param)->default_wait_time,\ + (param)->default_retain_time,\ + (param)->max_outstanding_r2t,\ + (param)->data_pdu_inorder,\ + (param)->data_sequence_inorder,\ + (param)->error_recovery_level,\ + (param)->header_digest,\ + (param)->data_digest);\ +} + +#endif --- linux-2.6.35.orig/ubuntu/iscsitarget/tio.c +++ linux-2.6.35/ubuntu/iscsitarget/tio.c @@ -0,0 +1,121 @@ +/* + * Target I/O. + * (C) 2005 FUJITA Tomonori + * This code is licenced under the GPL. + */ + +#include "iscsi.h" +#include "iscsi_dbg.h" +#include "iotype.h" + +static int tio_add_pages(struct tio *tio, int count) +{ + int i; + struct page *page; + + dprintk(D_GENERIC, "%p %d (%d)\n", tio, count, tio->pg_cnt); + + tio->pg_cnt = count; + + count *= sizeof(struct page *); + + do { + tio->pvec = kzalloc(count, GFP_KERNEL); + if (!tio->pvec) + yield(); + } while (!tio->pvec); + + for (i = 0; i < tio->pg_cnt; i++) { + do { + if (!(page = alloc_page(GFP_KERNEL))) + yield(); + } while (!page); + tio->pvec[i] = page; + } + return 0; +} + +static struct kmem_cache *tio_cache; + +struct tio *tio_alloc(int count) +{ + struct tio *tio; + + tio = kmem_cache_alloc(tio_cache, GFP_KERNEL | __GFP_NOFAIL); + + tio->pg_cnt = 0; + tio->idx = 0; + tio->offset = 0; + tio->size = 0; + tio->pvec = NULL; + + atomic_set(&tio->count, 1); + + if (count) + tio_add_pages(tio, count); + + return tio; +} + +static void tio_free(struct tio *tio) +{ + int i; + for (i = 0; i < tio->pg_cnt; i++) { + assert(tio->pvec[i]); + __free_page(tio->pvec[i]); + } + kfree(tio->pvec); + kmem_cache_free(tio_cache, tio); +} + +void tio_put(struct tio *tio) +{ + assert(atomic_read(&tio->count)); + if (atomic_dec_and_test(&tio->count)) + tio_free(tio); +} + +void tio_get(struct tio *tio) +{ + atomic_inc(&tio->count); +} + +void tio_set(struct tio *tio, u32 size, loff_t offset) +{ + tio->idx = offset >> PAGE_CACHE_SHIFT; + tio->offset = offset & ~PAGE_CACHE_MASK; + tio->size = size; +} + +int tio_read(struct iet_volume *lu, struct tio *tio) +{ + struct iotype *iot = lu->iotype; + assert(iot); + return iot->make_request ? iot->make_request(lu, tio, READ) : 0; +} + +int tio_write(struct iet_volume *lu, struct tio *tio) +{ + struct iotype *iot = lu->iotype; + assert(iot); + return iot->make_request ? iot->make_request(lu, tio, WRITE) : 0; +} + +int tio_sync(struct iet_volume *lu, struct tio *tio) +{ + struct iotype *iot = lu->iotype; + assert(iot); + return iot->sync ? iot->sync(lu, tio) : 0; +} + +int tio_init(void) +{ + tio_cache = KMEM_CACHE(tio, 0); + return tio_cache ? 0 : -ENOMEM; +} + +void tio_exit(void) +{ + if (tio_cache) + kmem_cache_destroy(tio_cache); +} --- linux-2.6.35.orig/ubuntu/iscsitarget/null-io.c +++ linux-2.6.35/ubuntu/iscsitarget/null-io.c @@ -0,0 +1,98 @@ +/* + * Target device null I/O. + * (C) 2005 MING Zhang + * This code is licenced under the GPL. + * + * The nullio mode will not return any meaningful or previous written + * data. It is only for performance measurement purpose. + */ + +#include +#include +#include +#include + +#include "iscsi.h" +#include "iscsi_dbg.h" +#include "iotype.h" + +enum { + opt_blk_cnt, opt_ignore, opt_err, +}; + +static match_table_t tokens = { + /* alias for compatibility with existing setups and documentation */ + {opt_blk_cnt, "sectors=%u"}, + /* but actually it is the scsi block count, now that we can + * specify the block size. */ + {opt_blk_cnt, "blocks=%u"}, + {opt_ignore, "scsiid=%s"}, + {opt_ignore, "scsisn=%s"}, + {opt_ignore, "blocksize=%s"}, + {opt_ignore, "type=%s"}, + {opt_err, NULL}, +}; + +static int parse_nullio_params(struct iet_volume *volume, char *params) +{ + int err = 0; + char *p, *q; + + while ((p = strsep(¶ms, ",")) != NULL) { + substring_t args[MAX_OPT_ARGS]; + int token; + if (!*p) + continue; + iet_strtolower(p); + token = match_token(p, tokens, args); + switch (token) { + case opt_blk_cnt: + q = match_strdup(&args[0]); + if (!q) + return -ENOMEM; + volume->blk_cnt = simple_strtoull(q, NULL, 10); + kfree(q); + break; + case opt_ignore: + break; + default: + eprintk("Unknown %s\n", p); + return -EINVAL; + break; + } + } + return err; +} + +static void nullio_detach(struct iet_volume *lu) +{ +} + +static int nullio_attach(struct iet_volume *lu, char *args) +{ + int err = 0; + + if ((err = parse_nullio_params(lu, args)) < 0) { + eprintk("%d\n", err); + goto out; + } + + if (!lu->blk_shift) + lu->blk_shift = blksize_bits(IET_DEF_BLOCK_SIZE); + + /* defaults to 64 GiB */ + if (!lu->blk_cnt) + lu->blk_cnt = 1 << (36 - lu->blk_shift); + +out: + if (err < 0) + nullio_detach(lu); + return err; +} + +struct iotype nullio = +{ + .name = "nullio", + .attach = nullio_attach, + .detach = nullio_detach, +}; --- linux-2.6.35.orig/ubuntu/iscsitarget/file-io.c +++ linux-2.6.35/ubuntu/iscsitarget/file-io.c @@ -0,0 +1,261 @@ +/* + * Target device file I/O. + * (C) 2004 - 2005 FUJITA Tomonori + * This code is licenced under the GPL. + */ + +#include +#include +#include +#include + +#include "iscsi.h" +#include "iscsi_dbg.h" +#include "iotype.h" + +struct fileio_data { + char *path; + struct file *filp; +}; + +static int fileio_make_request(struct iet_volume *lu, struct tio *tio, int rw) +{ + struct fileio_data *p = lu->private; + struct file *filp; + mm_segment_t oldfs; + struct page *page; + u32 offset, size; + loff_t ppos, count; + char *buf; + int i, err = 0; + ssize_t ret; + + assert(p); + filp = p->filp; + size = tio->size; + offset= tio->offset; + + ppos = (loff_t) tio->idx << PAGE_CACHE_SHIFT; + ppos += offset; + + for (i = 0; i < tio->pg_cnt; i++) { + page = tio->pvec[i]; + assert(page); + buf = page_address(page); + buf += offset; + + if (offset + size > PAGE_CACHE_SIZE) + count = PAGE_CACHE_SIZE - offset; + else + count = size; + + oldfs = get_fs(); + set_fs(get_ds()); + + if (rw == READ) + ret = vfs_read(filp, buf, count, &ppos); + else + ret = vfs_write(filp, buf, count, &ppos); + + set_fs(oldfs); + + if (ret != count) { + eprintk("I/O error %lld, %ld\n", count, (long) ret); + err = -EIO; + } + + size -= count; + offset = 0; + } + assert(!size); + + return err; +} + +static int fileio_sync(struct iet_volume *lu, struct tio *tio) +{ + struct fileio_data *p = lu->private; + struct inode *inode = p->filp->f_dentry->d_inode; + struct address_space *mapping = inode->i_mapping; + loff_t ppos, count; + int res; + + if (tio) { + ppos = (loff_t) tio->idx << PAGE_CACHE_SHIFT; + ppos += tio->offset; + count = tio->size; + } else { + ppos = 0; + count = lu->blk_cnt << lu->blk_shift; + } + + res = filemap_write_and_wait_range(mapping, ppos, ppos + count - 1); + if (res) { + eprintk("I/O error: syncing pages failed: %d\n", res); + return -EIO; + } else + return 0; +} + +static int open_path(struct iet_volume *volume, const char *path) +{ + int err = 0; + struct fileio_data *info = volume->private; + struct file *filp; + mm_segment_t oldfs; + int flags; + + info->path = kstrdup(path, GFP_KERNEL); + if (!info->path) + return -ENOMEM; + + oldfs = get_fs(); + set_fs(get_ds()); + flags = (LUReadonly(volume) ? O_RDONLY : O_RDWR) | O_LARGEFILE; + filp = filp_open(path, flags, 0); + set_fs(oldfs); + + if (IS_ERR(filp)) { + err = PTR_ERR(filp); + eprintk("Can't open %s %d\n", path, err); + info->filp = NULL; + } else + info->filp = filp; + + return err; +} + +enum { + opt_path, opt_ignore, opt_err, +}; + +static match_table_t tokens = { + {opt_path, "path=%s"}, + {opt_ignore, "scsiid=%s"}, + {opt_ignore, "scsisn=%s"}, + {opt_ignore, "type=%s"}, + {opt_ignore, "iomode=%s"}, + {opt_ignore, "blocksize=%s"}, + {opt_err, NULL}, +}; + +static int parse_fileio_params(struct iet_volume *volume, char *params) +{ + struct fileio_data *info = volume->private; + int err = 0; + char *p, *q; + + while ((p = strsep(¶ms, ",")) != NULL) { + substring_t args[MAX_OPT_ARGS]; + int token; + if (!*p) + continue; + iet_strtolower(p); + token = match_token(p, tokens, args); + switch (token) { + case opt_path: + if (info->path) { + iprintk("Target %s, LUN %u: " + "duplicate \"Path\" param\n", + volume->target->name, volume->lun); + err = -EINVAL; + goto out; + } + if (!(q = match_strdup(&args[0]))) { + err = -ENOMEM; + goto out; + } + err = open_path(volume, q); + kfree(q); + if (err < 0) + goto out; + break; + case opt_ignore: + break; + default: + iprintk("Target %s, LUN %u: unknown param %s\n", + volume->target->name, volume->lun, p); + return -EINVAL; + } + } + + if (!info->path) { + iprintk("Target %s, LUN %u: missing \"Path\" param\n", + volume->target->name, volume->lun); + err = -EINVAL; + } +out: + return err; +} + +static void fileio_detach(struct iet_volume *lu) +{ + struct fileio_data *p = lu->private; + + kfree(p->path); + if (p->filp) + filp_close(p->filp, NULL); + kfree(p); + lu->private = NULL; +} + +static int fileio_attach(struct iet_volume *lu, char *args) +{ + int err = 0; + struct fileio_data *p; + struct inode *inode; + + if (lu->private) { + printk("already attached ? %d\n", lu->lun); + return -EBUSY; + } + + p = kzalloc(sizeof(*p), GFP_KERNEL); + if (!p) + return -ENOMEM; + + lu->private = p; + + if ((err = parse_fileio_params(lu, args)) < 0) { + eprintk("%d\n", err); + goto out; + } + inode = p->filp->f_dentry->d_inode; + + if (S_ISREG(inode->i_mode)) + ; + else if (S_ISBLK(inode->i_mode)) + inode = inode->i_bdev->bd_inode; + else { + err = -EINVAL; + goto out; + } + + if (!lu->blk_shift) + lu->blk_shift = blksize_bits(IET_DEF_BLOCK_SIZE); + + lu->blk_cnt = inode->i_size >> lu->blk_shift; + + /* we're using the page cache */ + SetLURCache(lu); +out: + if (err < 0) + fileio_detach(lu); + return err; +} + +static void fileio_show(struct iet_volume *lu, struct seq_file *seq) +{ + struct fileio_data *p = lu->private; + seq_printf(seq, " path:%s\n", p->path); +} + +struct iotype fileio = +{ + .name = "fileio", + .attach = fileio_attach, + .make_request = fileio_make_request, + .sync = fileio_sync, + .detach = fileio_detach, + .show = fileio_show, +}; --- linux-2.6.35.orig/ubuntu/iscsitarget/iscsi.c +++ linux-2.6.35/ubuntu/iscsitarget/iscsi.c @@ -0,0 +1,1967 @@ +/* + * Copyright (C) 2002-2003 Ardis Technolgies + * Copyright (C) 2008 Arne Redlich + * + * Released under the terms of the GNU GPL v2.0. + */ + +#include +#include +#include +#include + +#include "iscsi.h" +#include "iscsi_dbg.h" +#include "iotype.h" + +unsigned long debug_enable_flags; +unsigned long worker_thread_pool_size; + +static struct kmem_cache *iscsi_cmnd_cache; +static u8 dummy_data[PAGE_SIZE]; + +static int ctr_major; +static char ctr_name[] = "ietctl"; +extern struct file_operations ctr_fops; + +static u32 cmnd_write_size(struct iscsi_cmnd *cmnd) +{ + struct iscsi_scsi_cmd_hdr *hdr = cmnd_hdr(cmnd); + + if (hdr->flags & ISCSI_CMD_WRITE) + return be32_to_cpu(hdr->data_length); + return 0; +} + +static u32 cmnd_read_size(struct iscsi_cmnd *cmnd) +{ + struct iscsi_scsi_cmd_hdr *hdr = cmnd_hdr(cmnd); + + if (hdr->flags & ISCSI_CMD_READ) { + struct iscsi_rlength_ahdr *ahdr = + (struct iscsi_rlength_ahdr *)cmnd->pdu.ahs; + + if (!(hdr->flags & ISCSI_CMD_WRITE)) + return be32_to_cpu(hdr->data_length); + if (ahdr && ahdr->ahstype == ISCSI_AHSTYPE_RLENGTH) + return be32_to_cpu(ahdr->read_length); + } + return 0; +} + +static void iscsi_device_queue_cmnd(struct iscsi_cmnd *cmnd) +{ + set_cmnd_waitio(cmnd); + wthread_queue(cmnd); +} + +static void iscsi_scsi_queuecmnd(struct iscsi_cmnd *cmnd) +{ + struct iscsi_queue *queue = &cmnd->lun->queue; + + dprintk(D_GENERIC, "%p\n", cmnd); + + if ((cmnd->pdu.bhs.flags & ISCSI_CMD_ATTR_MASK) != ISCSI_CMD_UNTAGGED && + (cmnd->pdu.bhs.flags & ISCSI_CMD_ATTR_MASK) != ISCSI_CMD_SIMPLE) { + cmnd->pdu.bhs.flags &= ~ISCSI_CMD_ATTR_MASK; + cmnd->pdu.bhs.flags |= ISCSI_CMD_UNTAGGED; + } + + spin_lock(&queue->queue_lock); + + set_cmnd_queued(cmnd); + + switch (cmnd->pdu.bhs.flags & ISCSI_CMD_ATTR_MASK) { + case ISCSI_CMD_UNTAGGED: + case ISCSI_CMD_SIMPLE: + if (!list_empty(&queue->wait_list) || queue->ordered_cmnd) + goto pending; + queue->active_cnt++; + break; + + default: + BUG(); + } + spin_unlock(&queue->queue_lock); + + iscsi_device_queue_cmnd(cmnd); + return; + pending: + assert(list_empty(&cmnd->list)); + + list_add_tail(&cmnd->list, &queue->wait_list); + spin_unlock(&queue->queue_lock); + return; +} + +static void iscsi_scsi_dequeuecmnd(struct iscsi_cmnd *cmnd) +{ + struct iscsi_queue *queue; + + if (!cmnd->lun) + return; + queue = &cmnd->lun->queue; + spin_lock(&queue->queue_lock); + switch (cmnd->pdu.bhs.flags & ISCSI_CMD_ATTR_MASK) { + case ISCSI_CMD_UNTAGGED: + case ISCSI_CMD_SIMPLE: + --queue->active_cnt; + break; + case ISCSI_CMD_ORDERED: + case ISCSI_CMD_HEAD_OF_QUEUE: + case ISCSI_CMD_ACA: + BUG(); + default: + /* Should the iscsi_scsi_queuecmnd func reject this ? */ + break; + } + + while (!list_empty(&queue->wait_list)) { + cmnd = list_entry(queue->wait_list.next, struct iscsi_cmnd, list); + switch ((cmnd->pdu.bhs.flags & ISCSI_CMD_ATTR_MASK)) { + case ISCSI_CMD_UNTAGGED: + case ISCSI_CMD_SIMPLE: + list_del_init(&cmnd->list); + queue->active_cnt++; + iscsi_device_queue_cmnd(cmnd); + break; + case ISCSI_CMD_ORDERED: + case ISCSI_CMD_HEAD_OF_QUEUE: + case ISCSI_CMD_ACA: + BUG(); + } + } + + spin_unlock(&queue->queue_lock); + + return; +} + +/** + * create a new command. + * + * iscsi_cmnd_create - + * @conn: ptr to connection (for i/o) + * + * @return ptr to command or NULL + */ + +struct iscsi_cmnd *cmnd_alloc(struct iscsi_conn *conn, int req) +{ + struct iscsi_cmnd *cmnd; + + /* TODO: async interface is necessary ? */ + cmnd = kmem_cache_alloc(iscsi_cmnd_cache, GFP_KERNEL|__GFP_NOFAIL); + + memset(cmnd, 0, sizeof(*cmnd)); + INIT_LIST_HEAD(&cmnd->list); + INIT_LIST_HEAD(&cmnd->pdu_list); + INIT_LIST_HEAD(&cmnd->conn_list); + INIT_LIST_HEAD(&cmnd->hash_list); + cmnd->conn = conn; + spin_lock(&conn->list_lock); + atomic_inc(&conn->nr_cmnds); + if (req) + list_add_tail(&cmnd->conn_list, &conn->pdu_list); + spin_unlock(&conn->list_lock); + cmnd->tio = NULL; + + dprintk(D_GENERIC, "%p:%p\n", conn, cmnd); + + return cmnd; +} + +/** + * create a new command used as response. + * + * iscsi_cmnd_create_rsp_cmnd - + * @cmnd: ptr to request command + * + * @return ptr to response command or NULL + */ + +static struct iscsi_cmnd *iscsi_cmnd_create_rsp_cmnd(struct iscsi_cmnd *cmnd, int final) +{ + struct iscsi_cmnd *rsp = cmnd_alloc(cmnd->conn, 0); + + if (final) + set_cmnd_final(rsp); + list_add_tail(&rsp->pdu_list, &cmnd->pdu_list); + rsp->req = cmnd; + return rsp; +} + +static struct iscsi_cmnd *get_rsp_cmnd(struct iscsi_cmnd *req) +{ + return list_entry(req->pdu_list.prev, struct iscsi_cmnd, pdu_list); +} + +static void iscsi_cmnds_init_write(struct list_head *send) +{ + struct iscsi_cmnd *cmnd = list_entry(send->next, struct iscsi_cmnd, list); + struct iscsi_conn *conn = cmnd->conn; + struct list_head *pos, *next; + + spin_lock(&conn->list_lock); + + list_for_each_safe(pos, next, send) { + cmnd = list_entry(pos, struct iscsi_cmnd, list); + + dprintk(D_GENERIC, "%p:%x\n", cmnd, cmnd_opcode(cmnd)); + + list_del_init(&cmnd->list); + assert(conn == cmnd->conn); + list_add_tail(&cmnd->list, &conn->write_list); + } + + spin_unlock(&conn->list_lock); + + nthread_wakeup(conn->session->target); +} + +static void iscsi_cmnd_init_write(struct iscsi_cmnd *cmnd) +{ + LIST_HEAD(head); + + if (!list_empty(&cmnd->list)) { + eprintk("%x %x %x %x %lx %u %u %u %u %u %u %u %d %d\n", + cmnd_itt(cmnd), cmnd_ttt(cmnd), cmnd_opcode(cmnd), + cmnd_scsicode(cmnd), cmnd->flags, cmnd->r2t_sn, + cmnd->r2t_length, cmnd->is_unsolicited_data, + cmnd->target_task_tag, cmnd->outstanding_r2t, + cmnd->hdigest, cmnd->ddigest, + list_empty(&cmnd->pdu_list), list_empty(&cmnd->hash_list)); + + assert(list_empty(&cmnd->list)); + } + list_add(&cmnd->list, &head); + iscsi_cmnds_init_write(&head); +} + +static void do_send_data_rsp(struct iscsi_cmnd *cmnd) +{ + struct iscsi_conn *conn = cmnd->conn; + struct iscsi_cmnd *data_cmnd; + struct tio *tio = cmnd->tio; + struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd); + struct iscsi_data_in_hdr *rsp; + u32 pdusize, expsize, scsisize, size, offset, sn; + LIST_HEAD(send); + + dprintk(D_GENERIC, "%p\n", cmnd); + pdusize = conn->session->param.max_xmit_data_length; + expsize = cmnd_read_size(cmnd); + size = min(expsize, tio->size); + offset = 0; + sn = 0; + + while (1) { + data_cmnd = iscsi_cmnd_create_rsp_cmnd(cmnd, size <= pdusize); + tio_get(tio); + data_cmnd->tio = tio; + rsp = (struct iscsi_data_in_hdr *)&data_cmnd->pdu.bhs; + + rsp->opcode = ISCSI_OP_SCSI_DATA_IN; + rsp->itt = req->itt; + rsp->ttt = cpu_to_be32(ISCSI_RESERVED_TAG); + rsp->buffer_offset = offset; + rsp->data_sn = cpu_to_be32(sn); + + if (size <= pdusize) { + data_cmnd->pdu.datasize = size; + rsp->flags = ISCSI_FLG_FINAL | ISCSI_FLG_STATUS; + + scsisize = tio->size; + if (scsisize < expsize) { + rsp->flags |= ISCSI_FLG_RESIDUAL_UNDERFLOW; + size = expsize - scsisize; + } else if (scsisize > expsize) { + rsp->flags |= ISCSI_FLG_RESIDUAL_OVERFLOW; + size = scsisize - expsize; + } else + size = 0; + rsp->residual_count = cpu_to_be32(size); + list_add_tail(&data_cmnd->list, &send); + + break; + } + + data_cmnd->pdu.datasize = pdusize; + + size -= pdusize; + offset += pdusize; + sn++; + + list_add_tail(&data_cmnd->list, &send); + } + + iscsi_cmnds_init_write(&send); +} + +static struct iscsi_cmnd *create_scsi_rsp(struct iscsi_cmnd *req) +{ + struct iscsi_cmnd *rsp; + struct iscsi_scsi_cmd_hdr *req_hdr = cmnd_hdr(req); + struct iscsi_scsi_rsp_hdr *rsp_hdr; + struct iscsi_sense_data *sense; + + rsp = iscsi_cmnd_create_rsp_cmnd(req, 1); + + rsp_hdr = (struct iscsi_scsi_rsp_hdr *)&rsp->pdu.bhs; + rsp_hdr->opcode = ISCSI_OP_SCSI_RSP; + rsp_hdr->flags = ISCSI_FLG_FINAL; + rsp_hdr->response = ISCSI_RESPONSE_COMMAND_COMPLETED; + rsp_hdr->cmd_status = req->status; + rsp_hdr->itt = req_hdr->itt; + + if (req->status == SAM_STAT_CHECK_CONDITION) { + assert(!rsp->tio); + rsp->tio = tio_alloc(1); + sense = (struct iscsi_sense_data *) + page_address(rsp->tio->pvec[0]); + + assert(sense); + clear_page(sense); + sense->length = cpu_to_be16(IET_SENSE_BUF_SIZE); + + memcpy(sense->data, req->sense_buf, IET_SENSE_BUF_SIZE); + rsp->pdu.datasize = sizeof(struct iscsi_sense_data) + + IET_SENSE_BUF_SIZE; + + rsp->tio->size = (rsp->pdu.datasize + 3) & -4; + rsp->tio->offset = 0; + } + + return rsp; +} + +void iscsi_cmnd_set_sense(struct iscsi_cmnd *cmnd, u8 sense_key, u8 asc, + u8 ascq) +{ + cmnd->status = SAM_STAT_CHECK_CONDITION; + + cmnd->sense_buf[0] = 0xf0; + cmnd->sense_buf[2] = sense_key; + cmnd->sense_buf[7] = 6; // Additional sense length + cmnd->sense_buf[12] = asc; + cmnd->sense_buf[13] = ascq; + + /* Call to ACA/UAI handler */ +} + +static struct iscsi_cmnd *create_sense_rsp(struct iscsi_cmnd *req, + u8 sense_key, u8 asc, u8 ascq) +{ + iscsi_cmnd_set_sense(req, sense_key, asc, ascq); + return create_scsi_rsp(req); +} + +void send_scsi_rsp(struct iscsi_cmnd *req, void (*func)(struct iscsi_cmnd *)) +{ + struct iscsi_cmnd *rsp; + struct iscsi_scsi_rsp_hdr *rsp_hdr; + u32 size; + + func(req); + rsp = create_scsi_rsp(req); + + switch (req->status) { + case SAM_STAT_GOOD: + case SAM_STAT_RESERVATION_CONFLICT: + rsp_hdr = (struct iscsi_scsi_rsp_hdr *) &rsp->pdu.bhs; + if ((size = cmnd_read_size(req)) != 0) { + rsp_hdr->flags |= ISCSI_FLG_RESIDUAL_UNDERFLOW; + rsp_hdr->residual_count = cpu_to_be32(size); + } + break; + default: + break; + } + + iscsi_cmnd_init_write(rsp); +} + +void send_data_rsp(struct iscsi_cmnd *req, void (*func)(struct iscsi_cmnd *)) +{ + struct iscsi_cmnd *rsp; + + func(req); + + if (req->status == SAM_STAT_GOOD) + do_send_data_rsp(req); + else { + rsp = create_scsi_rsp(req); + iscsi_cmnd_init_write(rsp); + } +} + +/** + * Free a command. + * Also frees the additional header. + * + * iscsi_cmnd_remove - + * @cmnd: ptr to command + */ + +static void iscsi_cmnd_remove(struct iscsi_cmnd *cmnd) +{ + struct iscsi_conn *conn; + + if (!cmnd) + return; + + if (cmnd_timer_active(cmnd)) { + clear_cmnd_timer_active(cmnd); + del_timer_sync(&cmnd->timer); + } + + dprintk(D_GENERIC, "%p\n", cmnd); + conn = cmnd->conn; + kfree(cmnd->pdu.ahs); + + if (!list_empty(&cmnd->list)) { + struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd); + + eprintk("cmnd %p still on some list?, %x, %x, %x, %x, %x, %x, %x %lx\n", + cmnd, req->opcode, req->scb[0], req->flags, req->itt, + be32_to_cpu(req->data_length), + req->cmd_sn, be32_to_cpu(cmnd->pdu.datasize), + conn->state); + + if (cmnd->req) { + struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd->req); + eprintk("%p %x %u\n", req, req->opcode, req->scb[0]); + } + dump_stack(); + BUG(); + } + list_del(&cmnd->list); + spin_lock(&conn->list_lock); + atomic_dec(&conn->nr_cmnds); + list_del(&cmnd->conn_list); + spin_unlock(&conn->list_lock); + + if (cmnd->tio) + tio_put(cmnd->tio); + + kmem_cache_free(iscsi_cmnd_cache, cmnd); +} + +static void cmnd_skip_pdu(struct iscsi_cmnd *cmnd) +{ + struct iscsi_conn *conn = cmnd->conn; + struct tio *tio = cmnd->tio; + char *addr; + u32 size; + int i; + + eprintk("%x %x %x %u\n", cmnd_itt(cmnd), cmnd_opcode(cmnd), + cmnd_hdr(cmnd)->scb[0], cmnd->pdu.datasize); + + if (!(size = cmnd->pdu.datasize)) + return; + + if (tio) + assert(tio->pg_cnt > 0); + else + tio = cmnd->tio = tio_alloc(1); + + addr = page_address(tio->pvec[0]); + assert(addr); + size = (size + 3) & -4; + conn->read_size = size; + for (i = 0; size > PAGE_CACHE_SIZE; i++, size -= PAGE_CACHE_SIZE) { + assert(i < ISCSI_CONN_IOV_MAX); + conn->read_iov[i].iov_base = addr; + conn->read_iov[i].iov_len = PAGE_CACHE_SIZE; + } + conn->read_iov[i].iov_base = addr; + conn->read_iov[i].iov_len = size; + conn->read_msg.msg_iov = conn->read_iov; + conn->read_msg.msg_iovlen = ++i; +} + +static void iscsi_cmnd_reject(struct iscsi_cmnd *req, int reason) +{ + struct iscsi_cmnd *rsp; + struct iscsi_reject_hdr *rsp_hdr; + struct tio *tio; + char *addr; + + rsp = iscsi_cmnd_create_rsp_cmnd(req, 1); + rsp_hdr = (struct iscsi_reject_hdr *)&rsp->pdu.bhs; + + rsp_hdr->opcode = ISCSI_OP_REJECT; + rsp_hdr->ffffffff = ISCSI_RESERVED_TAG; + rsp_hdr->reason = reason; + + rsp->tio = tio = tio_alloc(1); + addr = page_address(tio->pvec[0]); + clear_page(addr); + memcpy(addr, &req->pdu.bhs, sizeof(struct iscsi_hdr)); + tio->size = rsp->pdu.datasize = sizeof(struct iscsi_hdr); + cmnd_skip_pdu(req); + + req->pdu.bhs.opcode = ISCSI_OP_PDU_REJECT; +} + +static void cmnd_set_sn(struct iscsi_cmnd *cmnd, int set_stat_sn) +{ + struct iscsi_conn *conn = cmnd->conn; + struct iscsi_session *sess = conn->session; + + if (set_stat_sn) + cmnd->pdu.bhs.sn = cpu_to_be32(conn->stat_sn++); + cmnd->pdu.bhs.exp_sn = cpu_to_be32(sess->exp_cmd_sn); + cmnd->pdu.bhs.max_sn = cpu_to_be32(sess->exp_cmd_sn + sess->max_queued_cmnds); +} + +static void update_stat_sn(struct iscsi_cmnd *cmnd) +{ + struct iscsi_conn *conn = cmnd->conn; + u32 exp_stat_sn; + + cmnd->pdu.bhs.exp_sn = exp_stat_sn = be32_to_cpu(cmnd->pdu.bhs.exp_sn); + dprintk(D_GENERIC, "%x,%x\n", cmnd_opcode(cmnd), exp_stat_sn); + if ((int)(exp_stat_sn - conn->exp_stat_sn) > 0 && + (int)(exp_stat_sn - conn->stat_sn) <= 0) { + // free pdu resources + cmnd->conn->exp_stat_sn = exp_stat_sn; + } +} + +static int check_cmd_sn(struct iscsi_cmnd *cmnd) +{ + struct iscsi_session *session = cmnd->conn->session; + u32 cmd_sn; + + cmnd->pdu.bhs.sn = cmd_sn = be32_to_cpu(cmnd->pdu.bhs.sn); + + dprintk(D_GENERIC, "cmd_sn(%u) exp_cmd_sn(%u) max_cmd_sn(%u)\n", + cmd_sn, session->exp_cmd_sn, session->max_cmd_sn); + + if (between(cmd_sn, session->exp_cmd_sn, session->max_cmd_sn)) + return 0; + else if (cmnd_immediate(cmnd)) + return 0; + + eprintk("sequence error: cmd_sn(%u) exp_cmd_sn(%u) max_cmd_sn(%u)\n", + cmd_sn, session->exp_cmd_sn, session->max_cmd_sn); + + set_cmnd_tmfabort(cmnd); + + return -ISCSI_REASON_PROTOCOL_ERROR; +} + +static struct iscsi_cmnd *__cmnd_find_hash(struct iscsi_session *session, u32 itt, u32 ttt) +{ + struct list_head *head; + struct iscsi_cmnd *cmnd; + + head = &session->cmnd_hash[cmnd_hashfn(itt)]; + + list_for_each_entry(cmnd, head, hash_list) { + if (cmnd->pdu.bhs.itt == itt) { + if ((ttt != ISCSI_RESERVED_TAG) && (ttt != cmnd->target_task_tag)) + continue; + return cmnd; + } + } + + return NULL; +} + +static struct iscsi_cmnd *cmnd_find_hash(struct iscsi_session *session, u32 itt, u32 ttt) +{ + struct iscsi_cmnd *cmnd; + + spin_lock(&session->cmnd_hash_lock); + + cmnd = __cmnd_find_hash(session, itt, ttt); + + spin_unlock(&session->cmnd_hash_lock); + + return cmnd; +} + +static int cmnd_insert_hash_ttt(struct iscsi_cmnd *cmnd, u32 ttt) +{ + struct iscsi_session *session = cmnd->conn->session; + struct iscsi_cmnd *tmp; + struct list_head *head; + int err = 0; + u32 itt = cmnd->pdu.bhs.itt; + + head = &session->cmnd_hash[cmnd_hashfn(itt)]; + + spin_lock(&session->cmnd_hash_lock); + + tmp = __cmnd_find_hash(session, itt, ttt); + if (!tmp) { + list_add_tail(&cmnd->hash_list, head); + set_cmnd_hashed(cmnd); + } else + err = -ISCSI_REASON_TASK_IN_PROGRESS; + + spin_unlock(&session->cmnd_hash_lock); + + return err; +} + +static int cmnd_insert_hash(struct iscsi_cmnd *cmnd) +{ + int err; + + dprintk(D_GENERIC, "%p:%x\n", cmnd, cmnd->pdu.bhs.itt); + + if (cmnd->pdu.bhs.itt == ISCSI_RESERVED_TAG) + return -ISCSI_REASON_PROTOCOL_ERROR; + + err = cmnd_insert_hash_ttt(cmnd, ISCSI_RESERVED_TAG); + if (!err) { + update_stat_sn(cmnd); + err = check_cmd_sn(cmnd); + } else if (!cmnd_immediate(cmnd)) + set_cmnd_tmfabort(cmnd); + + return err; +} + +static void __cmnd_remove_hash(struct iscsi_cmnd *cmnd) +{ + list_del(&cmnd->hash_list); +} + +static void cmnd_remove_hash(struct iscsi_cmnd *cmnd) +{ + struct iscsi_session *session = cmnd->conn->session; + struct iscsi_cmnd *tmp; + + spin_lock(&session->cmnd_hash_lock); + + tmp = __cmnd_find_hash(session, cmnd->pdu.bhs.itt, + cmnd->target_task_tag); + if (tmp && tmp == cmnd) + __cmnd_remove_hash(tmp); + else + eprintk("%p:%x not found\n", cmnd, cmnd_itt(cmnd)); + + spin_unlock(&session->cmnd_hash_lock); +} + +static void cmnd_skip_data(struct iscsi_cmnd *req) +{ + struct iscsi_cmnd *rsp; + struct iscsi_scsi_rsp_hdr *rsp_hdr; + u32 size; + + rsp = get_rsp_cmnd(req); + rsp_hdr = (struct iscsi_scsi_rsp_hdr *)&rsp->pdu.bhs; + if (cmnd_opcode(rsp) != ISCSI_OP_SCSI_RSP) { + eprintk("unexpected response command %u\n", cmnd_opcode(rsp)); + return; + } + + size = cmnd_write_size(req); + if (size) { + rsp_hdr->flags |= ISCSI_FLG_RESIDUAL_UNDERFLOW; + rsp_hdr->residual_count = cpu_to_be32(size); + } + size = cmnd_read_size(req); + if (size) { + if (cmnd_hdr(req)->flags & ISCSI_CMD_WRITE) { + rsp_hdr->flags |= ISCSI_FLG_BIRESIDUAL_UNDERFLOW; + rsp_hdr->bi_residual_count = cpu_to_be32(size); + } else { + rsp_hdr->flags |= ISCSI_FLG_RESIDUAL_UNDERFLOW; + rsp_hdr->residual_count = cpu_to_be32(size); + } + } + req->pdu.bhs.opcode = + (req->pdu.bhs.opcode & ~ISCSI_OPCODE_MASK) | ISCSI_OP_SCSI_REJECT; + + cmnd_skip_pdu(req); +} + +static int cmnd_recv_pdu(struct iscsi_conn *conn, struct tio *tio, u32 offset, u32 size) +{ + int idx, i; + char *addr; + + dprintk(D_GENERIC, "%p %u,%u\n", tio, offset, size); + offset += tio->offset; + + if (!(offset < tio->offset + tio->size) || + !(offset + size <= tio->offset + tio->size)) { + eprintk("%u %u %u %u", offset, size, tio->offset, tio->size); + return -EIO; + } + assert(offset < tio->offset + tio->size); + assert(offset + size <= tio->offset + tio->size); + + idx = offset >> PAGE_CACHE_SHIFT; + offset &= ~PAGE_CACHE_MASK; + + conn->read_msg.msg_iov = conn->read_iov; + conn->read_size = size = (size + 3) & -4; + conn->read_overflow = 0; + + i = 0; + while (1) { + assert(tio->pvec[idx]); + addr = page_address(tio->pvec[idx]); + assert(addr); + conn->read_iov[i].iov_base = addr + offset; + if (offset + size <= PAGE_CACHE_SIZE) { + conn->read_iov[i].iov_len = size; + conn->read_msg.msg_iovlen = ++i; + break; + } + conn->read_iov[i].iov_len = PAGE_CACHE_SIZE - offset; + size -= conn->read_iov[i].iov_len; + offset = 0; + if (++i >= ISCSI_CONN_IOV_MAX) { + conn->read_msg.msg_iovlen = i; + conn->read_overflow = size; + conn->read_size -= size; + break; + } + + idx++; + } + + return 0; +} + +static void set_offset_and_length(struct iet_volume *lu, u8 *cmd, loff_t *off, u32 *len) +{ + assert(lu); + + switch (cmd[0]) { + case READ_6: + case WRITE_6: + *off = ((cmd[1] & 0x1f) << 16) + (cmd[2] << 8) + cmd[3]; + *len = cmd[4]; + if (!*len) + *len = 256; + break; + case READ_10: + case WRITE_10: + case WRITE_VERIFY: + *off = (u32)cmd[2] << 24 | (u32)cmd[3] << 16 | + (u32)cmd[4] << 8 | (u32)cmd[5]; + *len = (cmd[7] << 8) + cmd[8]; + break; + case READ_16: + case WRITE_16: + *off = (u64)cmd[2] << 56 | (u64)cmd[3] << 48 | + (u64)cmd[4] << 40 | (u64)cmd[5] << 32 | + (u64)cmd[6] << 24 | (u64)cmd[7] << 16 | + (u64)cmd[8] << 8 | (u64)cmd[9]; + *len = (u32)cmd[10] << 24 | (u32)cmd[11] << 16 | + (u32)cmd[12] << 8 | (u32)cmd[13]; + break; + default: + BUG(); + } + + *off <<= lu->blk_shift; + *len <<= lu->blk_shift; +} + +static u32 translate_lun(u16 * data) +{ + u8 *p = (u8 *) data; + u32 lun = ~0U; + + switch (*p >> 6) { + case 0: + lun = p[1]; + break; + case 1: + lun = (0x3f & p[0]) << 8 | p[1]; + break; + case 2: + case 3: + default: + eprintk("%u %u %u %u\n", data[0], data[1], data[2], data[3]); + break; + } + + return lun; +} + +static void send_r2t(struct iscsi_cmnd *req) +{ + struct iscsi_cmnd *rsp; + struct iscsi_r2t_hdr *rsp_hdr; + u32 length, offset, burst; + LIST_HEAD(send); + + length = req->r2t_length; + burst = req->conn->session->param.max_burst_length; + offset = be32_to_cpu(cmnd_hdr(req)->data_length) - length; + + do { + rsp = iscsi_cmnd_create_rsp_cmnd(req, 0); + rsp->pdu.bhs.ttt = req->target_task_tag; + + rsp_hdr = (struct iscsi_r2t_hdr *)&rsp->pdu.bhs; + rsp_hdr->opcode = ISCSI_OP_R2T; + rsp_hdr->flags = ISCSI_FLG_FINAL; + memcpy(rsp_hdr->lun, cmnd_hdr(req)->lun, 8); + rsp_hdr->itt = cmnd_hdr(req)->itt; + rsp_hdr->r2t_sn = cpu_to_be32(req->r2t_sn++); + rsp_hdr->buffer_offset = cpu_to_be32(offset); + if (length > burst) { + rsp_hdr->data_length = cpu_to_be32(burst); + length -= burst; + offset += burst; + } else { + rsp_hdr->data_length = cpu_to_be32(length); + length = 0; + } + + dprintk(D_WRITE, "%x %u %u %u %u\n", cmnd_itt(req), + be32_to_cpu(rsp_hdr->data_length), + be32_to_cpu(rsp_hdr->buffer_offset), + be32_to_cpu(rsp_hdr->r2t_sn), req->outstanding_r2t); + + list_add_tail(&rsp->list, &send); + + if (++req->outstanding_r2t >= req->conn->session->param.max_outstanding_r2t) + break; + + } while (length); + + iscsi_cmnds_init_write(&send); +} + +static void scsi_cmnd_exec(struct iscsi_cmnd *cmnd) +{ + assert(!cmnd->r2t_length); + + if (cmnd->lun) { + iscsi_scsi_queuecmnd(cmnd); + } else { + iscsi_device_queue_cmnd(cmnd); + } +} + +static int nop_out_start(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd) +{ + u32 size, tmp; + int i, err = 0; + + if (cmnd_ttt(cmnd) != cpu_to_be32(ISCSI_RESERVED_TAG)) { + cmnd->req = cmnd_find_hash(conn->session, cmnd->pdu.bhs.itt, + cmnd->pdu.bhs.ttt); + if (!cmnd->req) { + /* + * We didn't request this NOP-Out (by sending a + * NOP-In, see 10.18.2 of the RFC) or our fake NOP-Out + * timed out. + */ + eprintk("initiator bug %x\n", cmnd_itt(cmnd)); + err = -ISCSI_REASON_PROTOCOL_ERROR; + goto out; + } + + del_timer_sync(&cmnd->req->timer); + clear_cmnd_timer_active(cmnd->req); + dprintk(D_GENERIC, "NOP-Out: %p, ttt %x, timer %p\n", + cmnd->req, cmnd_ttt(cmnd->req), &cmnd->req->timer); + } + + if (cmnd_itt(cmnd) == cpu_to_be32(ISCSI_RESERVED_TAG)) { + if (!cmnd_immediate(cmnd)) + eprintk("%s\n", "initiator bug!"); + update_stat_sn(cmnd); + err = check_cmd_sn(cmnd); + if (err) + goto out; + } else if ((err = cmnd_insert_hash(cmnd)) < 0) { + eprintk("ignore this request %x\n", cmnd_itt(cmnd)); + goto out; + } + + if ((size = cmnd->pdu.datasize)) { + size = (size + 3) & -4; + conn->read_msg.msg_iov = conn->read_iov; + if (cmnd->pdu.bhs.itt != cpu_to_be32(ISCSI_RESERVED_TAG)) { + struct tio *tio; + int pg_cnt = get_pgcnt(size, 0); + + assert(pg_cnt < ISCSI_CONN_IOV_MAX); + cmnd->tio = tio = tio_alloc(pg_cnt); + tio_set(tio, size, 0); + + for (i = 0; i < pg_cnt; i++) { + conn->read_iov[i].iov_base + = page_address(tio->pvec[i]); + tmp = min_t(u32, size, PAGE_CACHE_SIZE); + conn->read_iov[i].iov_len = tmp; + conn->read_size += tmp; + size -= tmp; + } + } else { + for (i = 0; i < ISCSI_CONN_IOV_MAX; i++) { + conn->read_iov[i].iov_base = dummy_data; + tmp = min_t(u32, size, sizeof(dummy_data)); + conn->read_iov[i].iov_len = tmp; + conn->read_size += tmp; + size -= tmp; + } + } + assert(!size); + conn->read_overflow = size; + conn->read_msg.msg_iovlen = i; + } + +out: + return err; +} + +static u32 get_next_ttt(struct iscsi_session *session) +{ + u32 ttt; + + if (session->next_ttt == ISCSI_RESERVED_TAG) + session->next_ttt++; + ttt = session->next_ttt++; + + return cpu_to_be32(ttt); +} + +static void scsi_cmnd_start(struct iscsi_conn *conn, struct iscsi_cmnd *req) +{ + struct iscsi_scsi_cmd_hdr *req_hdr = cmnd_hdr(req); + + dprintk(D_GENERIC, "scsi command: %02x\n", req_hdr->scb[0]); + + req->lun = volume_get(conn->session->target, translate_lun(req_hdr->lun)); + if (!req->lun) { + switch (req_hdr->scb[0]) { + case INQUIRY: + case REPORT_LUNS: + break; + default: + eprintk("%x %x\n", cmnd_itt(req), req_hdr->scb[0]); + create_sense_rsp(req, ILLEGAL_REQUEST, 0x25, 0x0); + cmnd_skip_data(req); + goto out; + } + } else + set_cmnd_lunit(req); + + switch (req_hdr->scb[0]) { + case SERVICE_ACTION_IN: + if ((req_hdr->scb[1] & 0x1f) != 0x10) + goto error; + case INQUIRY: + case REPORT_LUNS: + case TEST_UNIT_READY: + case SYNCHRONIZE_CACHE: + case VERIFY: + case VERIFY_16: + case START_STOP: + case READ_CAPACITY: + case MODE_SENSE: + case REQUEST_SENSE: + case RESERVE: + case RELEASE: + { + if (!(req_hdr->flags & ISCSI_CMD_FINAL) || req->pdu.datasize) { + /* unexpected unsolicited data */ + eprintk("%x %x\n", cmnd_itt(req), req_hdr->scb[0]); + create_sense_rsp(req, ABORTED_COMMAND, 0xc, 0xc); + cmnd_skip_data(req); + } + break; + } + case READ_6: + case READ_10: + case READ_16: + { + loff_t offset; + u32 length; + + if (!(req_hdr->flags & ISCSI_CMD_FINAL) || req->pdu.datasize) { + /* unexpected unsolicited data */ + eprintk("%x %x\n", cmnd_itt(req), req_hdr->scb[0]); + create_sense_rsp(req, ABORTED_COMMAND, 0xc, 0xc); + cmnd_skip_data(req); + break; + } + + set_offset_and_length(req->lun, req_hdr->scb, &offset, &length); + req->tio = tio_alloc(get_pgcnt(length, offset)); + tio_set(req->tio, length, offset); + break; + } + case WRITE_6: + case WRITE_10: + case WRITE_16: + case WRITE_VERIFY: + { + struct iscsi_sess_param *param = &conn->session->param; + loff_t offset; + u32 length; + + req->r2t_length = be32_to_cpu(req_hdr->data_length) - req->pdu.datasize; + req->is_unsolicited_data = !(req_hdr->flags & ISCSI_CMD_FINAL); + req->target_task_tag = get_next_ttt(conn->session); + + if (LUReadonly(req->lun)) { + create_sense_rsp(req, DATA_PROTECT, 0x27, 0x0); + cmnd_skip_data(req); + break; + } + + if (!param->immediate_data && req->pdu.datasize) + eprintk("%x %x\n", cmnd_itt(req), req_hdr->scb[0]); + + if (param->initial_r2t && !(req_hdr->flags & ISCSI_CMD_FINAL)) + eprintk("%x %x\n", cmnd_itt(req), req_hdr->scb[0]); + + if (req_hdr->scb[0] == WRITE_VERIFY && req_hdr->scb[1] & 0x02) + eprintk("Verification is ignored %x\n", cmnd_itt(req)); + + set_offset_and_length(req->lun, req_hdr->scb, &offset, &length); + if (cmnd_write_size(req) != length) + eprintk("%x %u %u\n", cmnd_itt(req), cmnd_write_size(req), length); + + req->tio = tio_alloc(get_pgcnt(length, offset)); + tio_set(req->tio, length, offset); + + if (req->pdu.datasize) { + if (cmnd_recv_pdu(conn, req->tio, 0, req->pdu.datasize) < 0) + assert(0); + } + break; + } + error: + default: + eprintk("Unsupported %x\n", req_hdr->scb[0]); + create_sense_rsp(req, ILLEGAL_REQUEST, 0x20, 0x0); + cmnd_skip_data(req); + break; + } + +out: + return; +} + +static void data_out_start(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd) +{ + struct iscsi_data_out_hdr *req = (struct iscsi_data_out_hdr *)&cmnd->pdu.bhs; + struct iscsi_cmnd *scsi_cmnd = NULL; + u32 offset = be32_to_cpu(req->buffer_offset); + + update_stat_sn(cmnd); + + cmnd->req = scsi_cmnd = cmnd_find_hash(conn->session, req->itt, req->ttt); + if (!scsi_cmnd) { + eprintk("unable to find scsi task %x %x\n", + cmnd_itt(cmnd), cmnd_ttt(cmnd)); + goto skip_data; + } + + if (scsi_cmnd->r2t_length < cmnd->pdu.datasize) { + eprintk("invalid data len %x %u %u\n", + cmnd_itt(scsi_cmnd), cmnd->pdu.datasize, scsi_cmnd->r2t_length); + goto skip_data; + } + + if (scsi_cmnd->r2t_length + offset != cmnd_write_size(scsi_cmnd)) { + eprintk("%x %u %u %u\n", cmnd_itt(scsi_cmnd), scsi_cmnd->r2t_length, + offset, cmnd_write_size(scsi_cmnd)); + goto skip_data; + } + + scsi_cmnd->r2t_length -= cmnd->pdu.datasize; + + if (req->ttt == cpu_to_be32(ISCSI_RESERVED_TAG)) { + /* unsolicited burst data */ + if (scsi_cmnd->pdu.bhs.flags & ISCSI_FLG_FINAL) { + eprintk("unexpected data from %x %x\n", + cmnd_itt(cmnd), cmnd_ttt(cmnd)); + goto skip_data; + } + } + + dprintk(D_WRITE, "%u %p %p %p %u %u\n", req->ttt, cmnd, scsi_cmnd, + scsi_cmnd->tio, offset, cmnd->pdu.datasize); + + if (cmnd_recv_pdu(conn, scsi_cmnd->tio, offset, cmnd->pdu.datasize) < 0) + goto skip_data; + return; + +skip_data: + cmnd->pdu.bhs.opcode = ISCSI_OP_DATA_REJECT; + cmnd_skip_pdu(cmnd); + return; +} + +static void iscsi_session_push_cmnd(struct iscsi_cmnd *cmnd); + +static void data_out_end(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd) +{ + struct iscsi_data_out_hdr *req = (struct iscsi_data_out_hdr *) &cmnd->pdu.bhs; + struct iscsi_cmnd *scsi_cmnd; + u32 offset; + + assert(cmnd); + scsi_cmnd = cmnd->req; + assert(scsi_cmnd); + + if (conn->read_overflow) { + eprintk("%x %u\n", cmnd_itt(cmnd), conn->read_overflow); + assert(scsi_cmnd->tio); + offset = be32_to_cpu(req->buffer_offset); + offset += cmnd->pdu.datasize - conn->read_overflow; + if (cmnd_recv_pdu(conn, scsi_cmnd->tio, offset, conn->read_overflow) < 0) + assert(0); + return; + } + + if (req->ttt == cpu_to_be32(ISCSI_RESERVED_TAG)) { + if (req->flags & ISCSI_FLG_FINAL) { + scsi_cmnd->is_unsolicited_data = 0; + iscsi_session_push_cmnd(scsi_cmnd); + } + } else { + /* TODO : proper error handling */ + if (!(req->flags & ISCSI_FLG_FINAL) && scsi_cmnd->r2t_length == 0) + eprintk("initiator error %x\n", cmnd_itt(scsi_cmnd)); + + if (!(req->flags & ISCSI_FLG_FINAL)) + goto out; + + scsi_cmnd->outstanding_r2t--; + + if (scsi_cmnd->r2t_length == 0) + assert(list_empty(&scsi_cmnd->pdu_list)); + + iscsi_session_push_cmnd(scsi_cmnd); + } + +out: + iscsi_cmnd_remove(cmnd); + return; +} + +static void __cmnd_abort(struct iscsi_cmnd *cmnd) +{ + if (cmnd_rxstart(cmnd)) + set_cmnd_tmfabort(cmnd); + + if (cmnd_waitio(cmnd)) + return; + + if (cmnd->conn->read_cmnd != cmnd) + cmnd_release(cmnd, 1); +} + +static int cmnd_abort(struct iscsi_session *session, struct iscsi_cmnd *req) +{ + struct iscsi_task_mgt_hdr *req_hdr = + (struct iscsi_task_mgt_hdr *)&req->pdu.bhs; + struct iscsi_cmnd *cmnd; + + u32 min_cmd_sn = req_hdr->cmd_sn - session->max_queued_cmnds; + + req_hdr->ref_cmd_sn = be32_to_cpu(req_hdr->ref_cmd_sn); + + dprintk(D_GENERIC, "cmd_sn(%u) ref_cmd_sn(%u) min_cmd_sn(%u) rtt(%x)" + " lun(%d) cid(%u)\n", + req_hdr->cmd_sn, req_hdr->ref_cmd_sn, min_cmd_sn, req_hdr->rtt, + translate_lun(req_hdr->lun), req->conn->cid); + + if (after(req_hdr->ref_cmd_sn, req_hdr->cmd_sn)) + return ISCSI_RESPONSE_FUNCTION_REJECTED; + + if (!(cmnd = cmnd_find_hash(session, req_hdr->rtt, ISCSI_RESERVED_TAG))) { + if (between(req_hdr->ref_cmd_sn, min_cmd_sn, req_hdr->cmd_sn)) + return ISCSI_RESPONSE_FUNCTION_COMPLETE; + else + return ISCSI_RESPONSE_UNKNOWN_TASK; + } + + dprintk(D_GENERIC, "itt(%x) opcode(%x) scsicode(%x) lun(%d) cid(%u)\n", + cmnd_itt(cmnd), cmnd_opcode(cmnd), cmnd_scsicode(cmnd), + translate_lun(cmnd_hdr(cmnd)->lun), cmnd->conn->cid); + + if (cmnd_opcode(cmnd) == ISCSI_OP_SCSI_TASK_MGT_MSG) + return ISCSI_RESPONSE_FUNCTION_REJECTED; + + if (translate_lun(cmnd_hdr(cmnd)->lun) != + translate_lun(req_hdr->lun)) + return ISCSI_RESPONSE_FUNCTION_REJECTED; + + if (cmnd->conn && test_bit(CONN_ACTIVE, &cmnd->conn->state)) { + if (cmnd->conn->cid != req->conn->cid) + return ISCSI_RESPONSE_FUNCTION_REJECTED; + } else { + /* Switch cmnd connection allegiance */ + } + + __cmnd_abort(cmnd); + + return ISCSI_RESPONSE_FUNCTION_COMPLETE; +} + +static int target_reset(struct iscsi_cmnd *req, u32 lun, int all) +{ + struct iscsi_target *target = req->conn->session->target; + struct iscsi_session *session; + struct iscsi_conn *conn; + struct iscsi_cmnd *cmnd, *tmp; + struct iet_volume *volume; + + list_for_each_entry(session, &target->session_list, list) { + list_for_each_entry(conn, &session->conn_list, list) { + list_for_each_entry_safe(cmnd, tmp, &conn->pdu_list, conn_list) { + if (cmnd == req) + continue; + + if (all) + __cmnd_abort(cmnd); + else if (translate_lun(cmnd_hdr(cmnd)->lun) + == lun) + __cmnd_abort(cmnd); + } + } + } + + list_for_each_entry(volume, &target->volumes, list) { + if (all || volume->lun == lun) { + /* force release */ + volume_release(volume, 0, 1); + /* power-on, reset, or bus device reset occurred */ + ua_establish_for_all_sessions(target, volume->lun, + 0x29, 0x0); + } + } + + return 0; +} + +static void task_set_abort(struct iscsi_cmnd *req) +{ + struct iscsi_session *session = req->conn->session; + struct iscsi_conn *conn; + struct iscsi_cmnd *cmnd, *tmp; + + list_for_each_entry(conn, &session->conn_list, list) { + list_for_each_entry_safe(cmnd, tmp, &conn->pdu_list, conn_list) { + if (translate_lun(cmnd_hdr(cmnd)->lun) + != translate_lun(cmnd_hdr(req)->lun)) + continue; + + if (before(cmnd_hdr(cmnd)->cmd_sn, + cmnd_hdr(req)->cmd_sn)) + __cmnd_abort(cmnd); + } + } +} + +static inline char *tmf_desc(int fun) +{ + static char *tmf_desc[] = { + "Unknown Function", + "Abort Task", + "Abort Task Set", + "Clear ACA", + "Clear Task Set", + "Logical Unit Reset", + "Target Warm Reset", + "Target Cold Reset", + "Task Reassign", + }; + + if ((fun < ISCSI_FUNCTION_ABORT_TASK) || + (fun > ISCSI_FUNCTION_TASK_REASSIGN)) + fun = 0; + + return tmf_desc[fun]; +} + +static inline char *rsp_desc(int rsp) +{ + static char *rsp_desc[] = { + "Function Complete", + "Unknown Task", + "Unknown LUN", + "Task Allegiant", + "Failover Unsupported", + "Function Unsupported", + "No Authorization", + "Function Rejected", + "Unknown Response", + }; + + if (((rsp < ISCSI_RESPONSE_FUNCTION_COMPLETE) || + (rsp > ISCSI_RESPONSE_NO_AUTHORIZATION)) && + (rsp != ISCSI_RESPONSE_FUNCTION_REJECTED)) + rsp = 8; + else if (rsp == ISCSI_RESPONSE_FUNCTION_REJECTED) + rsp = 7; + + return rsp_desc[rsp]; +} + +static void execute_task_management(struct iscsi_cmnd *req) +{ + struct iscsi_conn *conn = req->conn; + struct iscsi_session *session = conn->session; + struct iscsi_target *target = session->target; + struct iscsi_cmnd *rsp; + struct iscsi_task_mgt_hdr *req_hdr = (struct iscsi_task_mgt_hdr *)&req->pdu.bhs; + struct iscsi_task_rsp_hdr *rsp_hdr; + u32 lun; + int function = req_hdr->function & ISCSI_FUNCTION_MASK; + + rsp = iscsi_cmnd_create_rsp_cmnd(req, 1); + rsp_hdr = (struct iscsi_task_rsp_hdr *)&rsp->pdu.bhs; + + rsp_hdr->opcode = ISCSI_OP_SCSI_TASK_MGT_RSP; + rsp_hdr->flags = ISCSI_FLG_FINAL; + rsp_hdr->itt = req_hdr->itt; + rsp_hdr->response = ISCSI_RESPONSE_FUNCTION_COMPLETE; + + switch (function) { + case ISCSI_FUNCTION_ABORT_TASK: + case ISCSI_FUNCTION_ABORT_TASK_SET: + case ISCSI_FUNCTION_CLEAR_ACA: + case ISCSI_FUNCTION_CLEAR_TASK_SET: + case ISCSI_FUNCTION_LOGICAL_UNIT_RESET: + lun = translate_lun(req_hdr->lun); + if (!volume_lookup(target, lun)) { + rsp_hdr->response = ISCSI_RESPONSE_UNKNOWN_LUN; + goto out; + } + } + + switch (function) { + case ISCSI_FUNCTION_ABORT_TASK: + rsp_hdr->response = cmnd_abort(conn->session, req); + break; + case ISCSI_FUNCTION_ABORT_TASK_SET: + task_set_abort(req); + break; + case ISCSI_FUNCTION_CLEAR_ACA: + rsp_hdr->response = ISCSI_RESPONSE_FUNCTION_UNSUPPORTED; + break; + case ISCSI_FUNCTION_CLEAR_TASK_SET: + rsp_hdr->response = ISCSI_RESPONSE_FUNCTION_UNSUPPORTED; + break; + case ISCSI_FUNCTION_LOGICAL_UNIT_RESET: + target_reset(req, translate_lun(req_hdr->lun), 0); + break; + case ISCSI_FUNCTION_TARGET_WARM_RESET: + case ISCSI_FUNCTION_TARGET_COLD_RESET: + target_reset(req, 0, 1); + if (function == ISCSI_FUNCTION_TARGET_COLD_RESET) + set_cmnd_close(rsp); + break; + case ISCSI_FUNCTION_TASK_REASSIGN: + rsp_hdr->response = ISCSI_RESPONSE_FUNCTION_UNSUPPORTED; + break; + default: + rsp_hdr->response = ISCSI_RESPONSE_FUNCTION_REJECTED; + break; + } +out: + iprintk("%s (%02x) issued on tid:%d lun:%d by sid:%llu (%s)\n", + tmf_desc(function), function, target->tid, + translate_lun(req_hdr->lun), session->sid, + rsp_desc(rsp_hdr->response)); + + iscsi_cmnd_init_write(rsp); +} + +static void nop_hdr_setup(struct iscsi_hdr *hdr, u8 opcode, __be32 itt, + __be32 ttt) +{ + hdr->opcode = opcode; + hdr->flags = ISCSI_FLG_FINAL; + hdr->itt = itt; + hdr->ttt = ttt; +} + +static void nop_out_exec(struct iscsi_cmnd *req) +{ + struct iscsi_cmnd *rsp; + + if (cmnd_itt(req) != cpu_to_be32(ISCSI_RESERVED_TAG)) { + rsp = iscsi_cmnd_create_rsp_cmnd(req, 1); + + nop_hdr_setup(&rsp->pdu.bhs, ISCSI_OP_NOP_IN, req->pdu.bhs.itt, + cpu_to_be32(ISCSI_RESERVED_TAG)); + + if (req->pdu.datasize) + assert(req->tio); + else + assert(!req->tio); + + if (req->tio) { + tio_get(req->tio); + rsp->tio = req->tio; + } + + assert(get_pgcnt(req->pdu.datasize, 0) < ISCSI_CONN_IOV_MAX); + rsp->pdu.datasize = req->pdu.datasize; + iscsi_cmnd_init_write(rsp); + } else { + if (req->req) { + dprintk(D_GENERIC, "releasing NOP-Out %p, ttt %x; " + "removing NOP-In %p, ttt %x\n", req->req, + cmnd_ttt(req->req), req, cmnd_ttt(req)); + cmnd_release(req->req, 0); + } + iscsi_cmnd_remove(req); + } +} + +static void nop_in_timeout(unsigned long data) +{ + struct iscsi_cmnd *req = (struct iscsi_cmnd *)data; + + printk(KERN_INFO "NOP-In ping timed out - closing sid:cid %llu:%u\n", + req->conn->session->sid, req->conn->cid); + clear_cmnd_timer_active(req); + conn_close(req->conn); +} + +/* create a fake NOP-Out req and treat the NOP-In as our rsp to it */ +void send_nop_in(struct iscsi_conn *conn) +{ + struct iscsi_cmnd *req = cmnd_alloc(conn, 1); + struct iscsi_cmnd *rsp = iscsi_cmnd_create_rsp_cmnd(req, 0); + + req->target_task_tag = get_next_ttt(conn->session); + + + nop_hdr_setup(&req->pdu.bhs, ISCSI_OP_NOP_OUT, + cpu_to_be32(ISCSI_RESERVED_TAG), req->target_task_tag); + nop_hdr_setup(&rsp->pdu.bhs, ISCSI_OP_NOP_IN, + cpu_to_be32(ISCSI_RESERVED_TAG), req->target_task_tag); + + dprintk(D_GENERIC, "NOP-Out: %p, ttt %x, timer %p; " + "NOP-In: %p, ttt %x;\n", req, cmnd_ttt(req), &req->timer, rsp, + cmnd_ttt(rsp)); + + init_timer(&req->timer); + req->timer.data = (unsigned long)req; + req->timer.function = nop_in_timeout; + + if (cmnd_insert_hash_ttt(req, req->target_task_tag)) { + eprintk("%s\n", + "failed to insert fake NOP-Out into hash table"); + cmnd_release(rsp, 0); + cmnd_release(req, 0); + } else + iscsi_cmnd_init_write(rsp); +} + +static void nop_in_tx_end(struct iscsi_cmnd *cmnd) +{ + struct iscsi_conn *conn = cmnd->conn; + u32 t; + + if (cmnd->pdu.bhs.ttt == cpu_to_be32(ISCSI_RESERVED_TAG)) + return; + + /* + * NOP-In ping issued by the target. + * FIXME: Sanitize the NOP timeout earlier, during configuration + */ + t = conn->session->target->trgt_param.nop_timeout; + + if (!t || t > conn->session->target->trgt_param.nop_interval) { + eprintk("Adjusting NOPTimeout of tid %u from %u to %u " + "(== NOPInterval)\n", conn->session->target->tid, + t, + conn->session->target->trgt_param.nop_interval); + t = conn->session->target->trgt_param.nop_interval; + conn->session->target->trgt_param.nop_timeout = t; + } + + dprintk(D_GENERIC, "NOP-In %p, %x: timer %p\n", cmnd, cmnd_ttt(cmnd), + &cmnd->req->timer); + + set_cmnd_timer_active(cmnd->req); + mod_timer(&cmnd->req->timer, jiffies + HZ * t); +} + +static void logout_exec(struct iscsi_cmnd *req) +{ + struct iscsi_logout_req_hdr *req_hdr; + struct iscsi_cmnd *rsp; + struct iscsi_logout_rsp_hdr *rsp_hdr; + + req_hdr = (struct iscsi_logout_req_hdr *)&req->pdu.bhs; + rsp = iscsi_cmnd_create_rsp_cmnd(req, 1); + rsp_hdr = (struct iscsi_logout_rsp_hdr *)&rsp->pdu.bhs; + rsp_hdr->opcode = ISCSI_OP_LOGOUT_RSP; + rsp_hdr->flags = ISCSI_FLG_FINAL; + rsp_hdr->itt = req_hdr->itt; + set_cmnd_close(rsp); + iscsi_cmnd_init_write(rsp); +} + +static void iscsi_cmnd_exec(struct iscsi_cmnd *cmnd) +{ + dprintk(D_GENERIC, "%p,%x,%u\n", cmnd, cmnd_opcode(cmnd), cmnd->pdu.bhs.sn); + + switch (cmnd_opcode(cmnd)) { + case ISCSI_OP_NOP_OUT: + nop_out_exec(cmnd); + break; + case ISCSI_OP_SCSI_CMD: + scsi_cmnd_exec(cmnd); + break; + case ISCSI_OP_SCSI_TASK_MGT_MSG: + execute_task_management(cmnd); + break; + case ISCSI_OP_LOGOUT_CMD: + logout_exec(cmnd); + break; + case ISCSI_OP_SCSI_REJECT: + iscsi_cmnd_init_write(get_rsp_cmnd(cmnd)); + break; + case ISCSI_OP_TEXT_CMD: + case ISCSI_OP_SNACK_CMD: + break; + default: + eprintk("unexpected cmnd op %x\n", cmnd_opcode(cmnd)); + break; + } +} + +static void __cmnd_send_pdu(struct iscsi_conn *conn, struct tio *tio, u32 offset, u32 size) +{ + dprintk(D_GENERIC, "%p %u,%u\n", tio, offset, size); + offset += tio->offset; + + assert(offset <= tio->offset + tio->size); + assert(offset + size <= tio->offset + tio->size); + + conn->write_tcmnd = tio; + conn->write_offset = offset; + conn->write_size += size; +} + +static void cmnd_send_pdu(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd) +{ + u32 size; + struct tio *tio; + + if (!cmnd->pdu.datasize) + return; + + size = (cmnd->pdu.datasize + 3) & -4; + tio = cmnd->tio; + assert(tio); + assert(tio->size == size); + __cmnd_send_pdu(conn, tio, 0, size); +} + +static void set_cork(struct socket *sock, int on) +{ + int opt = on; + mm_segment_t oldfs; + + oldfs = get_fs(); + set_fs(get_ds()); + sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, (void *)&opt, sizeof(opt)); + set_fs(oldfs); +} + +void cmnd_release(struct iscsi_cmnd *cmnd, int force) +{ + struct iscsi_cmnd *req, *rsp; + int is_last = 0; + + if (!cmnd) + return; + +/* eprintk("%x %lx %d\n", cmnd_opcode(cmnd), cmnd->flags, force); */ + + req = cmnd->req; + is_last = cmnd_final(cmnd); + + if (force) { + while (!list_empty(&cmnd->pdu_list)) { + rsp = list_entry(cmnd->pdu_list.next, struct iscsi_cmnd, pdu_list); + list_del_init(&rsp->list); + list_del(&rsp->pdu_list); + iscsi_cmnd_remove(rsp); + } + list_del_init(&cmnd->list); + } else + if (cmnd_queued(cmnd)) + iscsi_scsi_dequeuecmnd(cmnd); + + if (cmnd_hashed(cmnd)) + cmnd_remove_hash(cmnd); + + if (cmnd_lunit(cmnd)) { + assert(cmnd->lun); + volume_put(cmnd->lun); + } + + list_del_init(&cmnd->pdu_list); + iscsi_cmnd_remove(cmnd); + + if (is_last) { + assert(!force); + assert(req); + cmnd_release(req, 0); + } + + return; +} + +void cmnd_tx_start(struct iscsi_cmnd *cmnd) +{ + struct iscsi_conn *conn = cmnd->conn; + struct iovec *iop; + + dprintk(D_GENERIC, "%p:%x\n", cmnd, cmnd_opcode(cmnd)); + assert(cmnd); + iscsi_cmnd_set_length(&cmnd->pdu); + + set_cork(conn->sock, 1); + + conn->write_iop = iop = conn->write_iov; + iop->iov_base = &cmnd->pdu.bhs; + iop->iov_len = sizeof(cmnd->pdu.bhs); + iop++; + conn->write_size = sizeof(cmnd->pdu.bhs); + + switch (cmnd_opcode(cmnd)) { + case ISCSI_OP_NOP_IN: + if (cmnd->pdu.bhs.itt == ISCSI_RESERVED_TAG) { + /* NOP-In ping generated by us. Don't advance StatSN. */ + cmnd_set_sn(cmnd, 0); + cmnd_set_sn(cmnd->req, 0); + cmnd->pdu.bhs.sn = cpu_to_be32(conn->stat_sn); + cmnd->req->pdu.bhs.sn = cpu_to_be32(conn->stat_sn); + } else + cmnd_set_sn(cmnd, 1); + cmnd_send_pdu(conn, cmnd); + break; + case ISCSI_OP_SCSI_RSP: + cmnd_set_sn(cmnd, 1); + cmnd_send_pdu(conn, cmnd); + break; + case ISCSI_OP_SCSI_TASK_MGT_RSP: + cmnd_set_sn(cmnd, 1); + break; + case ISCSI_OP_TEXT_RSP: + cmnd_set_sn(cmnd, 1); + break; + case ISCSI_OP_SCSI_DATA_IN: + { + struct iscsi_data_in_hdr *rsp = (struct iscsi_data_in_hdr *)&cmnd->pdu.bhs; + u32 offset; + + cmnd_set_sn(cmnd, (rsp->flags & ISCSI_FLG_FINAL) ? 1 : 0); + offset = rsp->buffer_offset; + rsp->buffer_offset = cpu_to_be32(offset); + __cmnd_send_pdu(conn, cmnd->tio, offset, cmnd->pdu.datasize); + break; + } + case ISCSI_OP_LOGOUT_RSP: + cmnd_set_sn(cmnd, 1); + break; + case ISCSI_OP_R2T: + cmnd_set_sn(cmnd, 0); + cmnd->pdu.bhs.sn = cpu_to_be32(conn->stat_sn); + break; + case ISCSI_OP_ASYNC_MSG: + cmnd_set_sn(cmnd, 1); + break; + case ISCSI_OP_REJECT: + cmnd_set_sn(cmnd, 1); + cmnd_send_pdu(conn, cmnd); + break; + default: + eprintk("unexpected cmnd op %x\n", cmnd_opcode(cmnd)); + break; + } + + iop->iov_len = 0; + // move this? + conn->write_size = (conn->write_size + 3) & -4; + iscsi_dump_pdu(&cmnd->pdu); +} + +void cmnd_tx_end(struct iscsi_cmnd *cmnd) +{ + struct iscsi_conn *conn = cmnd->conn; + + dprintk(D_GENERIC, "%p:%x\n", cmnd, cmnd_opcode(cmnd)); + switch (cmnd_opcode(cmnd)) { + case ISCSI_OP_NOP_IN: + nop_in_tx_end(cmnd); + break; + case ISCSI_OP_SCSI_RSP: + case ISCSI_OP_SCSI_TASK_MGT_RSP: + case ISCSI_OP_TEXT_RSP: + case ISCSI_OP_R2T: + case ISCSI_OP_ASYNC_MSG: + case ISCSI_OP_REJECT: + case ISCSI_OP_SCSI_DATA_IN: + case ISCSI_OP_LOGOUT_RSP: + break; + default: + eprintk("unexpected cmnd op %x\n", cmnd_opcode(cmnd)); + assert(0); + break; + } + + if (cmnd_close(cmnd)) + conn_close(conn); + + list_del_init(&cmnd->list); + set_cork(cmnd->conn->sock, 0); +} + +/** + * Push the command for execution. + * This functions reorders the commands. + * Called from the read thread. + * + * iscsi_session_push_cmnd - + * @cmnd: ptr to command + */ + +static void iscsi_session_push_cmnd(struct iscsi_cmnd *cmnd) +{ + struct iscsi_session *session = cmnd->conn->session; + struct list_head *entry; + u32 cmd_sn; + + if (cmnd->r2t_length) { + if (!cmnd->is_unsolicited_data) + send_r2t(cmnd); + return; + } + + dprintk(D_GENERIC, "%p:%x %u,%u\n", + cmnd, cmnd_opcode(cmnd), cmnd->pdu.bhs.sn, session->exp_cmd_sn); + + if (cmnd_immediate(cmnd)) { + iscsi_cmnd_exec(cmnd); + return; + } + + cmd_sn = cmnd->pdu.bhs.sn; + if (cmd_sn == session->exp_cmd_sn) { + while (1) { + session->exp_cmd_sn = ++cmd_sn; + iscsi_cmnd_exec(cmnd); + + if (list_empty(&session->pending_list)) + break; + + cmnd = list_entry(session->pending_list.next, struct iscsi_cmnd, list); + if (cmnd->pdu.bhs.sn != cmd_sn) + break; + + list_del_init(&cmnd->list); + clear_cmnd_pending(cmnd); + } + } else { + set_cmnd_pending(cmnd); + + list_for_each(entry, &session->pending_list) { + struct iscsi_cmnd *tmp = list_entry(entry, struct iscsi_cmnd, list); + if (before(cmd_sn, tmp->pdu.bhs.sn)) + break; + } + + assert(list_empty(&cmnd->list)); + + list_add_tail(&cmnd->list, entry); + } +} + +static int check_segment_length(struct iscsi_cmnd *cmnd) +{ + struct iscsi_conn *conn = cmnd->conn; + struct iscsi_sess_param *param = &conn->session->param; + + if (cmnd->pdu.datasize > param->max_recv_data_length) { + eprintk("data too long %x %u %u\n", cmnd_itt(cmnd), + cmnd->pdu.datasize, param->max_recv_data_length); + + if (get_pgcnt(cmnd->pdu.datasize, 0) > ISCSI_CONN_IOV_MAX) { + conn_close(conn); + return -EINVAL; + } + } + + return 0; +} + +void cmnd_rx_start(struct iscsi_cmnd *cmnd) +{ + struct iscsi_conn *conn = cmnd->conn; + int err = 0; + + iscsi_dump_pdu(&cmnd->pdu); + + set_cmnd_rxstart(cmnd); + if (check_segment_length(cmnd) < 0) + return; + + switch (cmnd_opcode(cmnd)) { + case ISCSI_OP_NOP_OUT: + err = nop_out_start(conn, cmnd); + break; + case ISCSI_OP_SCSI_CMD: + if (!(err = cmnd_insert_hash(cmnd))) + scsi_cmnd_start(conn, cmnd); + break; + case ISCSI_OP_SCSI_TASK_MGT_MSG: + err = cmnd_insert_hash(cmnd); + break; + case ISCSI_OP_SCSI_DATA_OUT: + data_out_start(conn, cmnd); + break; + case ISCSI_OP_LOGOUT_CMD: + err = cmnd_insert_hash(cmnd); + break; + case ISCSI_OP_TEXT_CMD: + case ISCSI_OP_SNACK_CMD: + err = -ISCSI_REASON_UNSUPPORTED_COMMAND; + break; + default: + err = -ISCSI_REASON_UNSUPPORTED_COMMAND; + break; + } + + if (err < 0) { + eprintk("%x %x %d\n", cmnd_opcode(cmnd), cmnd_itt(cmnd), err); + iscsi_cmnd_reject(cmnd, -err); + } +} + +void cmnd_rx_end(struct iscsi_cmnd *cmnd) +{ + struct iscsi_conn *conn = cmnd->conn; + + if (cmnd_tmfabort(cmnd)) { + cmnd_release(cmnd, 1); + return; + } + + dprintk(D_GENERIC, "%p:%x\n", cmnd, cmnd_opcode(cmnd)); + switch (cmnd_opcode(cmnd)) { + case ISCSI_OP_SCSI_REJECT: + case ISCSI_OP_NOP_OUT: + case ISCSI_OP_SCSI_CMD: + case ISCSI_OP_SCSI_TASK_MGT_MSG: + case ISCSI_OP_TEXT_CMD: + case ISCSI_OP_LOGOUT_CMD: + iscsi_session_push_cmnd(cmnd); + break; + case ISCSI_OP_SCSI_DATA_OUT: + data_out_end(conn, cmnd); + break; + case ISCSI_OP_SNACK_CMD: + break; + case ISCSI_OP_PDU_REJECT: + iscsi_cmnd_init_write(get_rsp_cmnd(cmnd)); + break; + case ISCSI_OP_DATA_REJECT: + cmnd_release(cmnd, 0); + break; + default: + eprintk("unexpected cmnd op %x\n", cmnd_opcode(cmnd)); + BUG(); + break; + } +} + +static void iscsi_exit(void) +{ + wthread_module_exit(); + + unregister_chrdev(ctr_major, ctr_name); + + iet_procfs_exit(); + + event_exit(); + + tio_exit(); + + iotype_exit(); + + ua_exit(); + + if (iscsi_cmnd_cache) + kmem_cache_destroy(iscsi_cmnd_cache); +} + +static int iscsi_init(void) +{ + int err = -ENOMEM; + + printk("iSCSI Enterprise Target Software - version %s\n", IET_VERSION_STRING); + + if ((ctr_major = register_chrdev(0, ctr_name, &ctr_fops)) < 0) { + eprintk("failed to register the control device %d\n", ctr_major); + return ctr_major; + } + + if ((err = iet_procfs_init()) < 0) + goto err; + + if ((err = event_init()) < 0) + goto err; + + iscsi_cmnd_cache = KMEM_CACHE(iscsi_cmnd, 0); + if (!iscsi_cmnd_cache) + goto err; + + err = ua_init(); + if (err < 0) + goto err; + + if ((err = tio_init()) < 0) + goto err; + + if ((err = iotype_init()) < 0) + goto err; + + if ((err = wthread_module_init()) < 0) + goto err; + + return 0; + +err: + iscsi_exit(); + return err; +} + +module_param(worker_thread_pool_size, ulong, S_IRUGO); +MODULE_PARM_DESC(worker_thread_pool_size, + "Size of the worker thread pool " + "(0 = dedicated threads per target (default))"); + +module_param(debug_enable_flags, ulong, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug_enable_flags, + "debug bitmask, low bits (0 ... 8) used, see iscsi_dbg.h"); + +module_init(iscsi_init); +module_exit(iscsi_exit); + +MODULE_VERSION(IET_VERSION_STRING); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("iSCSI Enterprise Target"); +MODULE_AUTHOR("IET development team "); --- linux-2.6.35.orig/ubuntu/iscsitarget/Kconfig +++ linux-2.6.35/ubuntu/iscsitarget/Kconfig @@ -0,0 +1,3 @@ +config SCSI_ISCSITARGET + tristate "iSCSI Target Driver" + depends on SCSI --- linux-2.6.35.orig/ubuntu/iscsitarget/Makefile +++ linux-2.6.35/ubuntu/iscsitarget/Makefile @@ -0,0 +1,17 @@ +# +# Makefile for the Linux kernel device drivers. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (not a .c file). +# +# Note 2! The CFLAGS definitions are now in the main makefile. + +EXTRA_CFLAGS += -I$(src)/include + +obj-m += iscsi_trgt.o +iscsi_trgt-objs := tio.o iscsi.o nthread.o wthread.o config.o digest.o \ + conn.o session.o target.o volume.o iotype.o \ + file-io.o null-io.o target_disk.o event.o param.o \ + block-io.o ua.o + --- linux-2.6.35.orig/ubuntu/iscsitarget/include/iet_u.h +++ linux-2.6.35/ubuntu/iscsitarget/include/iet_u.h @@ -0,0 +1,151 @@ +#ifndef _IET_U_H +#define _IET_U_H + +#define IET_VERSION_STRING "1.4.20.2" + +/* The maximum length of 223 bytes in the RFC. */ +#define ISCSI_NAME_LEN 256 +#define ISCSI_ARGS_LEN 2048 + +#define ISCSI_LISTEN_PORT 3260 + +#define SCSI_ID_LEN 16 +#define SCSI_SN_LEN (SCSI_ID_LEN * 2) + +#ifndef aligned_u64 +#define aligned_u64 unsigned long long __attribute__((aligned(8))) +#endif + +struct module_info { + char version[128]; +}; + +struct target_info { + u32 tid; + char name[ISCSI_NAME_LEN]; +}; + +struct volume_info { + u32 tid; + u32 lun; + aligned_u64 args_ptr; + u32 args_len; +}; + +struct session_info { + u32 tid; + + aligned_u64 sid; + char initiator_name[ISCSI_NAME_LEN]; + u32 exp_cmd_sn; + u32 max_cmd_sn; +}; + +#define DIGEST_ALL (DIGEST_NONE | DIGEST_CRC32C) +#define DIGEST_NONE (1 << 0) +#define DIGEST_CRC32C (1 << 1) + +struct conn_info { + u32 tid; + aligned_u64 sid; + + u32 cid; + u32 stat_sn; + u32 exp_stat_sn; + int header_digest; + int data_digest; + int fd; +}; + +enum { + key_initial_r2t, + key_immediate_data, + key_max_connections, + key_max_recv_data_length, + key_max_xmit_data_length, + key_max_burst_length, + key_first_burst_length, + key_default_wait_time, + key_default_retain_time, + key_max_outstanding_r2t, + key_data_pdu_inorder, + key_data_sequence_inorder, + key_error_recovery_level, + key_header_digest, + key_data_digest, + key_ofmarker, + key_ifmarker, + key_ofmarkint, + key_ifmarkint, + session_key_last, +}; + +enum { + key_wthreads, + key_target_type, + key_queued_cmnds, + key_nop_interval, + key_nop_timeout, + target_key_last, +}; + +enum { + key_session, + key_target, +}; + +struct iscsi_param_info { + u32 tid; + aligned_u64 sid; + + u32 param_type; + u32 partial; + + u32 session_param[session_key_last]; + u32 target_param[target_key_last]; +}; + +enum iet_event_state { + E_CONN_CLOSE, +}; + +struct iet_event { + u32 tid; + aligned_u64 sid; + u32 cid; + u32 state; +}; + +#define DEFAULT_NR_WTHREADS 8 +#define MIN_NR_WTHREADS 1 +#define MAX_NR_WTHREADS 128 + +#define DEFAULT_NR_QUEUED_CMNDS 32 +#define MIN_NR_QUEUED_CMNDS 1 +#define MAX_NR_QUEUED_CMNDS 256 + +#define DEFAULT_NOP_INTERVAL 0 +#define MIN_NOP_INTERVAL 0 +#define MAX_NOP_INTERVAL 90 + +#define DEFAULT_NOP_TIMEOUT 0 +#define MIN_NOP_TIMEOUT 0 +#define MAX_NOP_TIMEOUT 90 + +#define NETLINK_IET 21 + +#define GET_MODULE_INFO _IOW('i', 20, struct module_info) +#define ADD_TARGET _IOWR('i', 21, struct target_info) +#define DEL_TARGET _IOW('i', 22, struct target_info) +#define ADD_VOLUME _IOW('i', 24, struct volume_info) +#define DEL_VOLUME _IOW('i', 25, struct volume_info) +#define ADD_SESSION _IOW('i', 26, struct session_info) +#define DEL_SESSION _IOW('i', 27, struct session_info) +#define GET_SESSION_INFO _IOWR('i', 28, struct session_info) +#define ADD_CONN _IOW('i', 29, struct conn_info) +#define DEL_CONN _IOW('i', 30, struct conn_info) +#define GET_CONN_INFO _IOWR('i', 31, struct conn_info) +#define ISCSI_PARAM_SET _IOW('i', 32, struct iscsi_param_info) +#define ISCSI_PARAM_GET _IOWR('i', 33, struct iscsi_param_info) + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_mesh.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl_mesh.h @@ -0,0 +1,40 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifdef _RTL8192_EXT_PATCH_ +#ifndef _RTL_MESH_H +#define _RTL_MESH_H + +struct net_device; +struct net_device_stats; + +int meshdev_up(struct net_device *meshdev,bool is_silent_reset); +int meshdev_down(struct net_device *meshdev); +struct net_device_stats *meshdev_stats(struct net_device *meshdev); +void meshdev_init(struct net_device* meshdev); + +int meshdev_update_ext_chnl_offset_as_client(void *data); +int meshdev_start_mesh_protocol_wq(void *data); +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_pm.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_pm.c @@ -0,0 +1,188 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + +#ifdef CONFIG_PM_RTL + +#include "rtl_core.h" +#include "rtl_pm.h" + +int rtl8192E_save_state (struct pci_dev *dev, pm_message_t state) +{ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) + printk(KERN_NOTICE "r8192E save state call (state %u).\n", state); +#else + printk(KERN_NOTICE "r8192E save state call (state %u).\n", state.event); +#endif + return(-EAGAIN); +} + + +int rtl8192E_suspend (struct pci_dev *pdev, pm_message_t state) +{ + struct net_device *dev = pci_get_drvdata(pdev); + struct r8192_priv *priv = rtllib_priv(dev); +#if !(defined RTL8192SE || defined RTL8192CE) + u32 ulRegRead; +#endif + + RT_TRACE(COMP_POWER, "============> r8192E suspend call.\n"); + printk("============> r8192E suspend call.\n"); +#ifdef ENABLE_GPIO_RADIO_CTL + del_timer_sync(&priv->gpio_polling_timer); + cancel_delayed_work(&priv->gpio_change_rf_wq); + priv->polling_timer_on = 0; +#endif + + if (!netif_running(dev)){ + printk("RTL819XE:UI is open out of suspend function\n"); + goto out_pci_suspend; + } + +#ifdef HAVE_NET_DEVICE_OPS + if (dev->netdev_ops->ndo_stop) + dev->netdev_ops->ndo_stop(dev); +#else + dev->stop(dev); +#endif + netif_device_detach(dev); + +#if !(defined RTL8192SE || defined RTL8192CE) + if(!priv->rtllib->bSupportRemoteWakeUp) { + MgntActSet_RF_State(dev, eRfOff, RF_CHANGE_BY_INIT,true); + ulRegRead = read_nic_dword(dev, CPU_GEN); + ulRegRead|=CPU_GEN_SYSTEM_RESET; + write_nic_dword(dev, CPU_GEN, ulRegRead); + } else { + write_nic_dword(dev, WFCRC0, 0xffffffff); + write_nic_dword(dev, WFCRC1, 0xffffffff); + write_nic_dword(dev, WFCRC2, 0xffffffff); +#ifdef RTL8190P + { + u8 ucRegRead; + ucRegRead = read_nic_byte(dev, GPO); + ucRegRead |= BIT0; + write_nic_byte(dev, GPO, ucRegRead); + } +#endif + write_nic_byte(dev, PMR, 0x5); + write_nic_byte(dev, MacBlkCtrl, 0xa); + } +#endif +out_pci_suspend: + RT_TRACE(COMP_POWER, "r8192E support WOL call??????????????????????\n"); + printk("r8192E support WOL call??????????????????????\n"); + if(priv->rtllib->bSupportRemoteWakeUp) { + RT_TRACE(COMP_POWER, "r8192E support WOL call!!!!!!!!!!!!!!!!!!.\n"); + } +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) + pci_save_state(pdev,&(priv->pci_state)); + pci_disable_device(pdev); + pci_enable_wake(pdev, state,\ + priv->rtllib->bSupportRemoteWakeUp?1:0); + pci_set_power_state(pdev,state); +#else + pci_save_state(pdev); + pci_disable_device(pdev); + pci_enable_wake(pdev, pci_choose_state(pdev,state),\ + priv->rtllib->bSupportRemoteWakeUp?1:0); + pci_set_power_state(pdev,pci_choose_state(pdev,state)); +#endif + + mdelay(20); + + return 0; +} + +int rtl8192E_resume (struct pci_dev *pdev) +{ + struct net_device *dev = pci_get_drvdata(pdev); +#if defined ENABLE_GPIO_RADIO_CTL || !(defined RTL8192SE || defined RTL8192CE) + struct r8192_priv *priv = rtllib_priv(dev); +#endif + int err; + u32 val; + + RT_TRACE(COMP_POWER, "================>r8192E resume call."); + printk("================>r8192E resume call.\n"); + + pci_set_power_state(pdev, PCI_D0); + + err = pci_enable_device(pdev); + if(err) { + printk(KERN_ERR "%s: pci_enable_device failed on resume\n", + dev->name); + return err; + } +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) + pci_restore_state(pdev,&(priv->pci_state)); +#else + pci_restore_state(pdev); +#endif + + pci_read_config_dword(pdev, 0x40, &val); + if ((val & 0x0000ff00) != 0) { + pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); + } + + pci_enable_wake(pdev, PCI_D0, 0); + +#ifdef ENABLE_GPIO_RADIO_CTL + if(priv->polling_timer_on == 0){ + check_rfctrl_gpio_timer((unsigned long)dev); + } +#endif + + if(!netif_running(dev)){ + printk("RTL819XE:UI is open out of resume function\n"); + goto out; + } + + netif_device_attach(dev); +#ifdef HAVE_NET_DEVICE_OPS + if (dev->netdev_ops->ndo_open) + dev->netdev_ops->ndo_open(dev); +#else + dev->open(dev); +#endif + +#if !(defined RTL8192SE || defined RTL8192CE) + if(!priv->rtllib->bSupportRemoteWakeUp) { + MgntActSet_RF_State(dev, eRfOn, RF_CHANGE_BY_INIT,true); + } +#endif + +out: + RT_TRACE(COMP_POWER, "<================r8192E resume call.\n"); + return 0; +} + + +int rtl8192E_enable_wake (struct pci_dev *dev, pm_message_t state, int enable) +{ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) + printk(KERN_NOTICE "r8192E enable wake call (state %u, enable %d).\n", + state, enable); +#else + printk(KERN_NOTICE "r8192E enable wake call (state %u, enable %d).\n", + state.event, enable); +#endif + return(-EAGAIN); +} + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_wx.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl_wx.h @@ -0,0 +1,34 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + +#ifndef R819x_WX_H +#define R819x_WX_H + +struct net_device; +struct iw_handler_def; +struct iw_statistics; + +extern struct iw_handler_def r8192_wx_handlers_def; +struct iw_statistics *r8192_get_wireless_stats(struct net_device *dev); +u16 rtl8192_11n_user_show_rates(struct net_device* dev); + +#ifdef _RTL8192_EXT_PATCH_ +extern struct iw_handler_def meshdev_wx_handlers_def; +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_dm.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_dm.c @@ -0,0 +1,5353 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#include "rtl_core.h" +#ifdef _RTL8192_EXT_PATCH_ +#include "../../mshclass/msh_class.h" +#endif + +/*---------------------------Define Local Constant---------------------------*/ +#ifdef RTL8190P +static u32 edca_setting_DL[HT_IOT_PEER_MAX] = +{ 0x5e4322, + 0x5e4322, + 0x5ea44f, + 0x5e4322, + 0x604322, + 0xa44f, + 0x5e4322, + 0x5e4322 + }; + +static u32 edca_setting_DL_GMode[HT_IOT_PEER_MAX] = +{ 0x5e4322, + 0x5e4322, + 0x5e4322, + 0x5e4322, + 0x604322, + 0xa44f, + 0x5e4322, + 0x5e4322 +}; + +static u32 edca_setting_UL[HT_IOT_PEER_MAX] = +{ 0x5e4322, + 0xa44f, + 0x5ea44f, + 0x5e4322, + 0x604322, + 0x5e4322, + 0x5e4322, + 0x5e4322 +}; + +#elif defined RTL8192E +static u32 edca_setting_DL[HT_IOT_PEER_MAX] = +{ 0x5e4322, + 0x5e4322, + 0x5ea44f, + 0x5e4322, + 0x604322, + 0xa44f, + 0x5e4322, + 0x5e4332 + }; + +static u32 edca_setting_DL_GMode[HT_IOT_PEER_MAX] = +{ 0x5e4322, + 0x5e4322, + 0x5e4322, + 0x5e4322, + 0x604322, + 0xa44f, + 0x5e4322, + 0x5e4322 +}; + +static u32 edca_setting_UL[HT_IOT_PEER_MAX] = +{ 0x5e4322, + 0xa44f, + 0x5ea44f, + 0x5e4322, + 0x604322, + 0x5e4322, + 0x5e4322, + 0x5e4332 +}; + +#elif defined(RTL8192SE) +static u32 edca_setting_DL[HT_IOT_PEER_MAX] = +{ 0xa44f, + 0x5ea44f, + 0x5ea44f, + 0xa630, + 0xa44f, + 0xa630, + 0xa630, + 0xa42b, + 0x5e4322, + 0x5e4322 + }; + +static u32 edca_setting_DL_GMode[HT_IOT_PEER_MAX] = + +{ 0x4322, + 0xa44f, + 0x5ea44f, + 0xa42b, + 0x5e4322, + 0x4322, + 0xa430, + 0x5ea44f, + 0x3ea430, + 0x5e4322 +}; + +static u32 edca_setting_UL[HT_IOT_PEER_MAX] = +{ 0x5e4322, + 0xa44f, + 0x5ea44f, + 0x5ea322, + 0x5ea422, + 0x5ea322, + 0x3ea44f, + 0x5ea44f, + 0x5e4322, + 0x5e4322 + }; +#endif + +#define RTK_UL_EDCA 0xa44f +#define RTK_DL_EDCA 0x5e4322 +/*---------------------------Define Local Constant---------------------------*/ + + +/*------------------------Define global variable-----------------------------*/ +dig_t dm_digtable; +u8 dm_shadow[16][256] = {{0}}; +DRxPathSel DM_RxPathSelTable; +/*------------------------Define global variable-----------------------------*/ + + +/*------------------------Define local variable------------------------------*/ +/*------------------------Define local variable------------------------------*/ + + +/*--------------------Define export function prototype-----------------------*/ +extern void init_hal_dm(struct net_device *dev); +extern void deinit_hal_dm(struct net_device *dev); + +extern void hal_dm_watchdog(struct net_device *dev); + + +extern void init_rate_adaptive(struct net_device *dev); +extern void dm_txpower_trackingcallback(void *data); + +extern void dm_restore_dynamic_mechanism_state(struct net_device *dev); +extern void dm_backup_dynamic_mechanism_state(struct net_device *dev); +extern void dm_change_dynamic_initgain_thresh(struct net_device *dev, + u32 dm_type, + u32 dm_value); +extern void DM_ChangeFsyncSetting(struct net_device *dev, + s32 DM_Type, + s32 DM_Value); +extern void dm_force_tx_fw_info(struct net_device *dev, + u32 force_type, + u32 force_value); +extern void dm_init_edca_turbo(struct net_device *dev); +extern void dm_rf_operation_test_callback(unsigned long data); +extern void dm_rf_pathcheck_workitemcallback(void *data); +extern void dm_fsync_timer_callback(unsigned long data); +#if 0 +extern bool dm_check_lbus_status(struct net_device *dev); +#endif +extern void dm_check_fsync(struct net_device *dev); +extern void dm_shadow_init(struct net_device *dev); +extern void dm_initialize_txpower_tracking(struct net_device *dev); + +#if (defined RTL8192E || defined RTL8192SE) +extern void dm_CheckRfCtrlGPIO(void *data); +#endif + +#ifdef RTL8192SE +extern void DM_TXPowerTracking92SDirectCall(struct net_device *dev); +static void dm_CtrlInitGainByTwoPort(struct net_device *dev); +static void dm_CtrlInitGainBeforeConnectByRssiAndFalseAlarm(struct net_device *dev); +static void dm_initial_gain_STABeforeConnect(struct net_device *dev); + +void dm_InitRateAdaptiveMask(struct net_device *dev); +#if 0 +static void Adhoc_dm_CheckRateAdaptive(struct net_device * dev); +#endif +void Adhoc_InitRateAdaptive(struct net_device *dev,struct sta_info *pEntry); +#endif + +/*--------------------Define export function prototype-----------------------*/ + + +/*---------------------Define local function prototype-----------------------*/ +static void dm_check_rate_adaptive(struct net_device *dev); + +static void dm_init_bandwidth_autoswitch(struct net_device *dev); +static void dm_bandwidth_autoswitch( struct net_device *dev); + + +static void dm_check_txpower_tracking(struct net_device *dev); + + + + + +#if defined(RTL8192E)||defined(RTL8190P) +static void dm_bb_initialgain_restore(struct net_device *dev); + + +static void dm_bb_initialgain_backup(struct net_device *dev); +#endif + +static void dm_dig_init(struct net_device *dev); +static void dm_ctrl_initgain_byrssi(struct net_device *dev); +static void dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev); +static void dm_ctrl_initgain_byrssi_by_driverrssi( struct net_device *dev); +static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm(struct net_device *dev); +static void dm_initial_gain(struct net_device *dev); +static void dm_pd_th(struct net_device *dev); +static void dm_cs_ratio(struct net_device *dev); + +static void dm_init_ctstoself(struct net_device *dev); +static void dm_Init_WA_Broadcom_IOT(struct net_device *dev); +#ifdef RTL8192SE +static void dm_WA_Broadcom_IOT(struct net_device *dev); +#endif + +static void dm_check_edca_turbo(struct net_device *dev); + +#if 0 +static void dm_check_rfctrl_gpio(struct net_device *dev); +#endif + +#ifndef RTL8190P +#endif +static void dm_check_pbc_gpio(struct net_device *dev); + + +static void dm_check_rx_path_selection(struct net_device *dev); +static void dm_init_rxpath_selection(struct net_device *dev); +static void dm_rxpath_sel_byrssi(struct net_device *dev); + + +static void dm_init_fsync(struct net_device *dev); +static void dm_deInit_fsync(struct net_device *dev); + +static void dm_check_txrateandretrycount(struct net_device *dev); +static void dm_check_ac_dc_power(struct net_device *dev); + +/*---------------------Define local function prototype-----------------------*/ + +static void dm_init_dynamic_txpower(struct net_device *dev); +static void dm_dynamic_txpower(struct net_device *dev); + + +static void dm_send_rssi_tofw(struct net_device *dev); +static void dm_ctstoself(struct net_device *dev); +#if defined RTL8192SE +static void dm_RefreshRateAdaptiveMask(struct net_device *dev); +#endif +/*---------------------------Define function prototype------------------------*/ + +extern void +init_hal_dm(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + priv->DM_Type = DM_Type_ByDriver; + + priv->undecorated_smoothed_pwdb = -1; + + dm_init_dynamic_txpower(dev); + +#ifdef RTL8192SE + if (IS_HARDWARE_TYPE_8192SE(dev)) + dm_InitRateAdaptiveMask(dev); + else +#endif + init_rate_adaptive(dev); + + dm_dig_init(dev); + dm_init_edca_turbo(dev); + dm_init_bandwidth_autoswitch(dev); + dm_init_fsync(dev); + dm_init_rxpath_selection(dev); + dm_init_ctstoself(dev); + if (IS_HARDWARE_TYPE_8192SE(dev)) { + dm_Init_WA_Broadcom_IOT(dev); + +#ifdef RTL8192SE + write_nic_dword(dev, WFM5, FW_CCA_CHK_ENABLE); +#endif + } + +#if (defined RTL8192E || defined RTL8192SE) + INIT_DELAYED_WORK_RSL(&priv->gpio_change_rf_wq, (void *)dm_CheckRfCtrlGPIO,dev); +#endif + +} + +extern void deinit_hal_dm(struct net_device *dev) +{ + + dm_deInit_fsync(dev); + +} + + +#ifdef USB_RX_AGGREGATION_SUPPORT +void dm_CheckRxAggregation(struct net_device *dev) { + struct r8192_priv *priv = rtllib_priv((struct net_device *)dev); + PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo; + static unsigned long lastTxOkCnt = 0; + static unsigned long lastRxOkCnt = 0; + unsigned long curTxOkCnt = 0; + unsigned long curRxOkCnt = 0; + + curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt; + curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt; + + if((curTxOkCnt + curRxOkCnt) < 15000000) { + return; + } + + if(curTxOkCnt > 4*curRxOkCnt) { + if (priv->bCurrentRxAggrEnable) { + write_nic_dword(dev, 0x1a8, 0); + priv->bCurrentRxAggrEnable = false; + } + }else{ + if (!priv->bCurrentRxAggrEnable && !pHTInfo->bCurrentRT2RTAggregation) { + u32 ulValue; + ulValue = (pHTInfo->UsbRxFwAggrEn<<24) | (pHTInfo->UsbRxFwAggrPageNum<<16) | + (pHTInfo->UsbRxFwAggrPacketNum<<8) | (pHTInfo->UsbRxFwAggrTimeout); + write_nic_dword(dev, 0x1a8, ulValue); + priv->bCurrentRxAggrEnable = true; + } + } + + lastTxOkCnt = priv->stats.txbytesunicast; + lastRxOkCnt = priv->stats.rxbytesunicast; +} +#endif + + + +extern void hal_dm_watchdog(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + if(priv->being_init_adapter) + return; + + dm_check_ac_dc_power(dev); + + dm_check_pbc_gpio(dev); + dm_check_txrateandretrycount(dev); + dm_check_edca_turbo(dev); + + if (IS_HARDWARE_TYPE_8192SE(dev)){ +#ifdef RTL8192SE + dm_RefreshRateAdaptiveMask(dev); + dm_WA_Broadcom_IOT(dev); + + return; +#if 0 + dm_check_txpower_tracking(dev); + dm_ctrl_initgain_byrssi(dev); + dm_dynamic_txpower(dev); + dm_RefreshRateAdaptiveMask(dev); + dm_check_fsync(dev); + if(priv->rtllib->iw_mode == IW_MODE_ADHOC) + Adhoc_dm_CheckRateAdaptive(dev); + else + dm_check_rate_adaptive(dev); +#endif +#endif + } + dm_check_rate_adaptive(dev); + dm_dynamic_txpower(dev); + dm_check_txpower_tracking(dev); + + dm_ctrl_initgain_byrssi(dev); + dm_bandwidth_autoswitch(dev); + + dm_check_rx_path_selection(dev); + dm_check_fsync(dev); + + dm_send_rssi_tofw(dev); + dm_ctstoself(dev); + +#ifdef USB_RX_AGGREGATION_SUPPORT + dm_CheckRxAggregation(dev); +#endif +} + +void dm_check_ac_dc_power(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + static char *ac_dc_check_script_path = "/etc/realtek/wireless-rtl-ac-dc-power.sh"; + char *argv[] = {ac_dc_check_script_path,DRV_NAME,NULL}; + static char *envp[] = {"HOME=/", + "TERM=linux", + "PATH=/usr/bin:/bin", + NULL}; + + if(priv->ResetProgress == RESET_TYPE_SILENT) + { + RT_TRACE((COMP_INIT | COMP_POWER | COMP_RF), "GPIOChangeRFWorkItemCallBack(): Silent Reseting!!!!!!!\n"); + return; + } + + if(priv->rtllib->state != RTLLIB_LINKED) { + return; + } + call_usermodehelper(ac_dc_check_script_path,argv,envp,1); + + return; +}; + + +extern void init_rate_adaptive(struct net_device * dev) +{ + + struct r8192_priv *priv = rtllib_priv(dev); + prate_adaptive pra = (prate_adaptive)&priv->rate_adaptive; + + pra->ratr_state = DM_RATR_STA_MAX; + pra->high2low_rssi_thresh_for_ra = RateAdaptiveTH_High; + pra->low2high_rssi_thresh_for_ra20M = RateAdaptiveTH_Low_20M+5; + pra->low2high_rssi_thresh_for_ra40M = RateAdaptiveTH_Low_40M+5; + + pra->high_rssi_thresh_for_ra = RateAdaptiveTH_High+5; + pra->low_rssi_thresh_for_ra20M = RateAdaptiveTH_Low_20M; + pra->low_rssi_thresh_for_ra40M = RateAdaptiveTH_Low_40M; + + if(priv->CustomerID == RT_CID_819x_Netcore) + pra->ping_rssi_enable = 1; + else + pra->ping_rssi_enable = 0; + pra->ping_rssi_thresh_for_ra = 15; + + + if (priv->rf_type == RF_2T4R) + { + pra->upper_rssi_threshold_ratr = 0x8f0f0000; + pra->middle_rssi_threshold_ratr = 0x8f0ff000; + pra->low_rssi_threshold_ratr = 0x8f0ff001; + pra->low_rssi_threshold_ratr_40M = 0x8f0ff005; + pra->low_rssi_threshold_ratr_20M = 0x8f0ff001; + pra->ping_rssi_ratr = 0x0000000d; + } + else if (priv->rf_type == RF_1T2R) + { + pra->upper_rssi_threshold_ratr = 0x000fc000; + pra->middle_rssi_threshold_ratr = 0x000ff000; + pra->low_rssi_threshold_ratr = 0x000ff001; + pra->low_rssi_threshold_ratr_40M = 0x000ff005; + pra->low_rssi_threshold_ratr_20M = 0x000ff001; + pra->ping_rssi_ratr = 0x0000000d; + } + +} + + +static void dm_check_rate_adaptive(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo; + prate_adaptive pra = (prate_adaptive)&priv->rate_adaptive; + u32 currentRATR, targetRATR = 0; + u32 LowRSSIThreshForRA = 0, HighRSSIThreshForRA = 0; + bool bshort_gi_enabled = false; + static u8 ping_rssi_state=0; + + if(IS_NIC_DOWN(priv)){ + RT_TRACE(COMP_RATE, "<---- dm_check_rate_adaptive(): driver is going to unload\n"); + return; + } + + if(pra->rate_adaptive_disabled) + return; + + if( !(priv->rtllib->mode == WIRELESS_MODE_N_24G || + priv->rtllib->mode == WIRELESS_MODE_N_5G)) + return; + + if( priv->rtllib->state == RTLLIB_LINKED ) + { + + bshort_gi_enabled = (pHTInfo->bCurTxBW40MHz && pHTInfo->bCurShortGI40MHz) || + (!pHTInfo->bCurTxBW40MHz && pHTInfo->bCurShortGI20MHz); + + + pra->upper_rssi_threshold_ratr = + (pra->upper_rssi_threshold_ratr & (~BIT31)) | ((bshort_gi_enabled)? BIT31:0) ; + + pra->middle_rssi_threshold_ratr = + (pra->middle_rssi_threshold_ratr & (~BIT31)) | ((bshort_gi_enabled)? BIT31:0) ; + + if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) + { + pra->low_rssi_threshold_ratr = + (pra->low_rssi_threshold_ratr_40M & (~BIT31)) | ((bshort_gi_enabled)? BIT31:0) ; + } + else + { + pra->low_rssi_threshold_ratr = + (pra->low_rssi_threshold_ratr_20M & (~BIT31)) | ((bshort_gi_enabled)? BIT31:0) ; + } + pra->ping_rssi_ratr = + (pra->ping_rssi_ratr & (~BIT31)) | ((bshort_gi_enabled)? BIT31:0) ; + + if (pra->ratr_state == DM_RATR_STA_HIGH) + { + HighRSSIThreshForRA = pra->high2low_rssi_thresh_for_ra; + LowRSSIThreshForRA = (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)? + (pra->low_rssi_thresh_for_ra40M):(pra->low_rssi_thresh_for_ra20M); + } + else if (pra->ratr_state == DM_RATR_STA_LOW) + { + HighRSSIThreshForRA = pra->high_rssi_thresh_for_ra; + LowRSSIThreshForRA = (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)? + (pra->low2high_rssi_thresh_for_ra40M):(pra->low2high_rssi_thresh_for_ra20M); + } + else + { + HighRSSIThreshForRA = pra->high_rssi_thresh_for_ra; + LowRSSIThreshForRA = (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)? + (pra->low_rssi_thresh_for_ra40M):(pra->low_rssi_thresh_for_ra20M); + } + + if(priv->undecorated_smoothed_pwdb >= (long)HighRSSIThreshForRA) + { + pra->ratr_state = DM_RATR_STA_HIGH; + targetRATR = pra->upper_rssi_threshold_ratr; + }else if(priv->undecorated_smoothed_pwdb >= (long)LowRSSIThreshForRA) + { + pra->ratr_state = DM_RATR_STA_MIDDLE; + targetRATR = pra->middle_rssi_threshold_ratr; + }else + { + pra->ratr_state = DM_RATR_STA_LOW; + targetRATR = pra->low_rssi_threshold_ratr; + } + + if(pra->ping_rssi_enable) + { + if(priv->undecorated_smoothed_pwdb < (long)(pra->ping_rssi_thresh_for_ra+5)) + { + if( (priv->undecorated_smoothed_pwdb < (long)pra->ping_rssi_thresh_for_ra) || + ping_rssi_state ) + { + pra->ratr_state = DM_RATR_STA_LOW; + targetRATR = pra->ping_rssi_ratr; + ping_rssi_state = 1; + } + } + else + { + ping_rssi_state = 0; + } + } + +#if 1 + if(priv->rtllib->GetHalfNmodeSupportByAPsHandler(dev)) + targetRATR &= 0xf00fffff; +#endif + + currentRATR = read_nic_dword(dev, RATR0); + if( targetRATR != currentRATR ) + { + u32 ratr_value; + ratr_value = targetRATR; + RT_TRACE(COMP_RATE,"currentRATR = %x, targetRATR = %x\n", currentRATR, targetRATR); + if(priv->rf_type == RF_1T2R) + { + ratr_value &= ~(RATE_ALL_OFDM_2SS); + } + write_nic_dword(dev, RATR0, ratr_value); + write_nic_byte(dev, UFWP, 1); + + pra->last_ratr = targetRATR; + } + + } + else + { + pra->ratr_state = DM_RATR_STA_MAX; + } + +} + +#ifdef RTL8192SE +void dm_InitRateAdaptiveMask(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + prate_adaptive pRA = (prate_adaptive)&priv->rate_adaptive; + + pRA->ratr_state = DM_RATR_STA_MAX; + pRA->PreRATRState = DM_RATR_STA_MAX; + +#ifdef _RTL8192_EXT_PATCH_ + if (priv->DM_Type == DM_Type_ByDriver && priv->pFirmware->FirmwareVersion >= 60) + priv->rtllib->bUseRAMask = true; + else +#endif + priv->rtllib->bUseRAMask = false; + + printk("=========>%s: bUseRAMask=%d\n", __func__, priv->rtllib->bUseRAMask); + priv->bInformFWDriverControlDM = false; + +} +#endif + +static void dm_init_bandwidth_autoswitch(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + priv->rtllib->bandwidth_auto_switch.threshold_20Mhzto40Mhz = BW_AUTO_SWITCH_LOW_HIGH; + priv->rtllib->bandwidth_auto_switch.threshold_40Mhzto20Mhz = BW_AUTO_SWITCH_HIGH_LOW; + priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz = false; + priv->rtllib->bandwidth_auto_switch.bautoswitch_enable = false; + +} + + +static void dm_bandwidth_autoswitch(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 ||!priv->rtllib->bandwidth_auto_switch.bautoswitch_enable){ + return; + }else{ + if(priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz == false){ + if(priv->undecorated_smoothed_pwdb <= priv->rtllib->bandwidth_auto_switch.threshold_40Mhzto20Mhz) + priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz = true; + }else{ + if(priv->undecorated_smoothed_pwdb >= priv->rtllib->bandwidth_auto_switch.threshold_20Mhzto40Mhz) + priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz = false; + + } + } +} + +#ifdef Rtl8192SE +u32 OFDMSwingTable[OFDM_Table_Length] = { + 0x7f8001fe, + 0x788001e2, + 0x71c001c7, + 0x6b8001ae, + 0x65400195, + 0x5fc0017f, + 0x5a400169, + 0x55400155, + 0x50800142, + 0x4c000130, + 0x47c0011f, + 0x43c0010f, + 0x40000100, + 0x3c8000f2, + 0x390000e4, + 0x35c000d7, + 0x32c000cb, + 0x300000c0, + 0x2d4000b5, + 0x2ac000ab, + 0x288000a2, + 0x26000098, + 0x24000090, + 0x22000088, + 0x20000080, + 0x1e400079, + 0x1c800072, + 0x1b00006c, + 0x19800066, + 0x18000060, + 0x16c0005b, + 0x15800056, + 0x14400051, + 0x1300004c, + 0x12000048, + 0x11000044, + 0x10000040, +}; + +u8 CCKSwingTable_Ch1_Ch13[CCK_Table_length][8] = { + {0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04}, + {0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04}, + {0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03}, + {0x2d, 0x2d, 0x27, 0x1f, 0x18, 0x0f, 0x08, 0x03}, + {0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03}, + {0x28, 0x28, 0x22, 0x1c, 0x15, 0x0d, 0x07, 0x03}, + {0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03}, + {0x24, 0x23, 0x1f, 0x19, 0x13, 0x0c, 0x06, 0x03}, + {0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02}, + {0x20, 0x20, 0x1b, 0x16, 0x11, 0x08, 0x05, 0x02}, + {0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02}, + {0x1d, 0x1c, 0x18, 0x14, 0x0f, 0x0a, 0x05, 0x02}, + {0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04, 0x02}, + {0x1a, 0x19, 0x16, 0x12, 0x0d, 0x09, 0x04, 0x02}, + {0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02}, + {0x17, 0x16, 0x13, 0x10, 0x0c, 0x08, 0x04, 0x02}, + {0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01}, + {0x14, 0x14, 0x11, 0x0e, 0x0b, 0x07, 0x03, 0x02}, + {0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01}, + {0x12, 0x12, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, + {0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, + {0x10, 0x10, 0x0e, 0x0b, 0x08, 0x05, 0x03, 0x01}, + {0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01}, + {0x0e, 0x0e, 0x0c, 0x0a, 0x08, 0x05, 0x02, 0x01}, + {0x0d, 0x0d, 0x0c, 0x0a, 0x07, 0x05, 0x02, 0x01}, + {0x0d, 0x0c, 0x0b, 0x09, 0x07, 0x04, 0x02, 0x01}, + {0x0c, 0x0c, 0x0a, 0x09, 0x06, 0x04, 0x02, 0x01}, + {0x0b, 0x0b, 0x0a, 0x08, 0x06, 0x04, 0x02, 0x01}, + {0x0b, 0x0a, 0x09, 0x08, 0x06, 0x04, 0x02, 0x01}, + {0x0a, 0x0a, 0x09, 0x07, 0x05, 0x03, 0x02, 0x01}, + {0x0a, 0x09, 0x08, 0x07, 0x05, 0x03, 0x02, 0x01}, + {0x09, 0x09, 0x08, 0x06, 0x05, 0x03, 0x01, 0x01}, + {0x09, 0x08, 0x07, 0x06, 0x04, 0x03, 0x01, 0x01} +}; + + +u8 CCKSwingTable_Ch14[CCK_Table_length][8] = { + {0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00}, + {0x33, 0x32, 0x2b, 0x19, 0x00, 0x00, 0x00, 0x00}, + {0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00}, + {0x2d, 0x2d, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00}, + {0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00}, + {0x28, 0x28, 0x24, 0x14, 0x00, 0x00, 0x00, 0x00}, + {0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00}, + {0x24, 0x23, 0x1f, 0x12, 0x00, 0x00, 0x00, 0x00}, + {0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00}, + {0x20, 0x20, 0x1b, 0x10, 0x00, 0x00, 0x00, 0x00}, + {0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00}, + {0x1d, 0x1c, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00}, + {0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00, 0x00}, + {0x1a, 0x19, 0x16, 0x0d, 0x00, 0x00, 0x00, 0x00}, + {0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00}, + {0x17, 0x16, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00}, + {0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00}, + {0x14, 0x14, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00}, + {0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00}, + {0x12, 0x12, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, + {0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, + {0x10, 0x10, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x00}, + {0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00}, + {0x0e, 0x0e, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, + {0x0d, 0x0d, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, + {0x0d, 0x0c, 0x0b, 0x06, 0x00, 0x00, 0x00, 0x00}, + {0x0c, 0x0c, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, + {0x0b, 0x0b, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, + {0x0b, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, + {0x0a, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, + {0x0a, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, + {0x09, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, + {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00} +}; +#elif defined RTL8192E +static u32 OFDMSwingTable[OFDM_Table_Length] = { + 0x7f8001fe, + 0x71c001c7, + 0x65400195, + 0x5a400169, + 0x50800142, + 0x47c0011f, + 0x40000100, + 0x390000e4, + 0x32c000cb, + 0x2d4000b5, + 0x288000a2, + 0x24000090, + 0x20000080, + 0x1c800072, + 0x19800066, + 0x26c0005b, + 0x24400051, + 0x12000048, + 0x10000040 +}; +static u8 CCKSwingTable_Ch1_Ch13[CCK_Table_length][8] = { + {0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04}, + {0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03}, + {0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03}, + {0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03}, + {0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02}, + {0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02}, + {0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04, 0x02}, + {0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02}, + {0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01}, + {0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01}, + {0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, + {0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01} +}; + +static u8 CCKSwingTable_Ch14[CCK_Table_length][8] = { + {0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00}, + {0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00}, + {0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00}, + {0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00}, + {0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00}, + {0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00}, + {0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00, 0x00}, + {0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00}, + {0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00}, + {0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00}, + {0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, + {0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00} +}; +#endif +#define Pw_Track_Flag 0x11d +#define Tssi_Mea_Value 0x13c +#define Tssi_Report_Value1 0x134 +#define Tssi_Report_Value2 0x13e +#define FW_Busy_Flag 0x13f + +#ifndef RTL8192SE +static void dm_TXPowerTrackingCallback_TSSI(struct net_device * dev) + { + struct r8192_priv *priv = rtllib_priv(dev); + bool bHighpowerstate, viviflag = false; + DCMD_TXCMD_T tx_cmd; + u8 powerlevelOFDM24G; + int i =0, j = 0, k = 0; + u8 RF_Type, tmp_report[5]={0, 0, 0, 0, 0}; + u32 Value; + u8 Pwr_Flag; + u16 Avg_TSSI_Meas, TSSI_13dBm, Avg_TSSI_Meas_from_driver=0; +#ifdef RTL8192U + RT_STATUS rtStatus = RT_STATUS_SUCCESS; +#endif + u32 delta=0; + RT_TRACE(COMP_POWER_TRACKING,"%s()\n",__FUNCTION__); + write_nic_byte(dev, Pw_Track_Flag, 0); + write_nic_byte(dev, FW_Busy_Flag, 0); + priv->rtllib->bdynamic_txpower_enable = false; + bHighpowerstate = priv->bDynamicTxHighPower; + + powerlevelOFDM24G = (u8)(priv->Pwr_Track>>24); + RF_Type = priv->rf_type; + Value = (RF_Type<<8) | powerlevelOFDM24G; + + RT_TRACE(COMP_POWER_TRACKING, "powerlevelOFDM24G = %x\n", powerlevelOFDM24G); + + +#ifdef RTL8190P + for(j = 0; j<1; j++) +#else + for(j = 0; j<=30; j++) +#endif +{ + + tx_cmd.Op = TXCMD_SET_TX_PWR_TRACKING; + tx_cmd.Length = 4; + tx_cmd.Value = Value; +#ifdef RTL8192U + rtStatus = SendTxCommandPacket(dev, &tx_cmd, 12); + if (rtStatus == RT_STATUS_FAILURE) + { + RT_TRACE(COMP_POWER_TRACKING, "Set configuration with tx cmd queue fail!\n"); + } +#else + cmpk_message_handle_tx(dev, (u8*)&tx_cmd, DESC_PACKET_TYPE_INIT, sizeof(DCMD_TXCMD_T)); +#endif + mdelay(1); + for(i = 0;i <= 30; i++) + { + Pwr_Flag = read_nic_byte(dev, Pw_Track_Flag); + + if (Pwr_Flag == 0) + { + mdelay(1); + + if(priv->bResetInProgress) + { + RT_TRACE(COMP_POWER_TRACKING, "we are in slient reset progress, so return\n"); + write_nic_byte(dev, Pw_Track_Flag, 0); + write_nic_byte(dev, FW_Busy_Flag, 0); + return; + } +#ifdef RTL8192E + if((priv->rtllib->eRFPowerState != eRfOn)) + { + RT_TRACE(COMP_POWER_TRACKING, "we are in power save, so return\n"); + write_nic_byte(dev, Pw_Track_Flag, 0); + write_nic_byte(dev, FW_Busy_Flag, 0); + return; + } + +#endif + continue; + } + + Avg_TSSI_Meas = read_nic_word(dev, Tssi_Mea_Value); + + if(Avg_TSSI_Meas == 0) + { + write_nic_byte(dev, Pw_Track_Flag, 0); + write_nic_byte(dev, FW_Busy_Flag, 0); + return; + } + + for(k = 0;k < 5; k++) + { + if(k !=4) + tmp_report[k] = read_nic_byte(dev, Tssi_Report_Value1+k); + else + tmp_report[k] = read_nic_byte(dev, Tssi_Report_Value2); + + RT_TRACE(COMP_POWER_TRACKING, "TSSI_report_value = %d\n", tmp_report[k]); + + { + if(tmp_report[k] <= 20) + { + viviflag =true; + break; + } + } + } + + if(viviflag ==true) + { + write_nic_byte(dev, Pw_Track_Flag, 0); + viviflag = false; + RT_TRACE(COMP_POWER_TRACKING, "we filted this data\n"); + for(k = 0;k < 5; k++) + tmp_report[k] = 0; + break; + } + + for(k = 0;k < 5; k++) + { + Avg_TSSI_Meas_from_driver += tmp_report[k]; + } + + Avg_TSSI_Meas_from_driver = Avg_TSSI_Meas_from_driver*100/5; + RT_TRACE(COMP_POWER_TRACKING, "Avg_TSSI_Meas_from_driver = %d\n", Avg_TSSI_Meas_from_driver); + TSSI_13dBm = priv->TSSI_13dBm; + RT_TRACE(COMP_POWER_TRACKING, "TSSI_13dBm = %d\n", TSSI_13dBm); + + if(Avg_TSSI_Meas_from_driver > TSSI_13dBm) + delta = Avg_TSSI_Meas_from_driver - TSSI_13dBm; + else + delta = TSSI_13dBm - Avg_TSSI_Meas_from_driver; + + if(delta <= E_FOR_TX_POWER_TRACK) + { + priv->rtllib->bdynamic_txpower_enable = true; + write_nic_byte(dev, Pw_Track_Flag, 0); + write_nic_byte(dev, FW_Busy_Flag, 0); + RT_TRACE(COMP_POWER_TRACKING, "tx power track is done\n"); + RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex = %d\n", priv->rfa_txpowertrackingindex); + RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex_real = %d\n", priv->rfa_txpowertrackingindex_real); +#ifdef RTL8190P + RT_TRACE(COMP_POWER_TRACKING, "priv->rfc_txpowertrackingindex = %d\n", priv->rfc_txpowertrackingindex); + RT_TRACE(COMP_POWER_TRACKING, "priv->rfc_txpowertrackingindex_real = %d\n", priv->rfc_txpowertrackingindex_real); +#endif + RT_TRACE(COMP_POWER_TRACKING, "priv->CCKPresentAttentuation_difference = %d\n", priv->CCKPresentAttentuation_difference); + RT_TRACE(COMP_POWER_TRACKING, "priv->CCKPresentAttentuation = %d\n", priv->CCKPresentAttentuation); + return; + } + else + { + if(Avg_TSSI_Meas_from_driver < TSSI_13dBm - E_FOR_TX_POWER_TRACK) + { + if (RF_Type == RF_2T4R) + { + + if((priv->rfa_txpowertrackingindex > 0) &&(priv->rfc_txpowertrackingindex > 0)) + { + priv->rfa_txpowertrackingindex--; + if(priv->rfa_txpowertrackingindex_real > 4) + { + priv->rfa_txpowertrackingindex_real--; + rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value); + } + + priv->rfc_txpowertrackingindex--; + if(priv->rfc_txpowertrackingindex_real > 4) + { + priv->rfc_txpowertrackingindex_real--; + rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); + } + } + else + { + rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value); + rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value); + } + } + else + { + { +#ifdef RTL8190P + { + if(priv->rfc_txpowertrackingindex > 0) + { + priv->rfc_txpowertrackingindex--; + if(priv->rfc_txpowertrackingindex_real > 4) + { + priv->rfc_txpowertrackingindex_real--; + rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); + } + } + else + rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value); + } +#endif +#ifdef RTL8192E + { + if(priv->rfa_txpowertrackingindex > 0) + { + priv->rfa_txpowertrackingindex--; + if(priv->rfa_txpowertrackingindex_real > 4) + { + priv->rfa_txpowertrackingindex_real--; + rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value); + } + } + else + rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value); + } +#endif + } + + } + } + else + { + if (RF_Type == RF_2T4R) + { + if((priv->rfa_txpowertrackingindex < TxBBGainTableLength - 1) &&(priv->rfc_txpowertrackingindex < TxBBGainTableLength - 1)) + { + priv->rfa_txpowertrackingindex++; + priv->rfa_txpowertrackingindex_real++; + rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value); + priv->rfc_txpowertrackingindex++; + priv->rfc_txpowertrackingindex_real++; + rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); + } + else + { + rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value); + rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value); + } + } + else + { + { +#ifdef RTL8190P + { + if(priv->rfc_txpowertrackingindex < (TxBBGainTableLength - 1)) + { + priv->rfc_txpowertrackingindex++; + priv->rfc_txpowertrackingindex_real++; + rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); + } + else + rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value); + } +#endif +#ifdef RTL8192E + { + if(priv->rfa_txpowertrackingindex < (TxBBGainTableLength - 1)) + { + priv->rfa_txpowertrackingindex++; + priv->rfa_txpowertrackingindex_real++; + rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value); + } + else + rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value); + } +#endif + } + } + } + if (RF_Type == RF_2T4R){ + priv->CCKPresentAttentuation_difference + = priv->rfa_txpowertrackingindex - priv->rfa_txpowertracking_default; + }else{ + { +#ifdef RTL8190P + priv->CCKPresentAttentuation_difference + = priv->rfc_txpowertrackingindex - priv->rfc_txpowertracking_default; +#endif +#ifdef RTL8192E + priv->CCKPresentAttentuation_difference + = priv->rfa_txpowertrackingindex_real - priv->rfa_txpowertracking_default; +#endif + } + } + + if(priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20) + priv->CCKPresentAttentuation + = priv->CCKPresentAttentuation_20Mdefault + priv->CCKPresentAttentuation_difference; + else + priv->CCKPresentAttentuation + = priv->CCKPresentAttentuation_40Mdefault + priv->CCKPresentAttentuation_difference; + + if(priv->CCKPresentAttentuation > (CCKTxBBGainTableLength-1)) + priv->CCKPresentAttentuation = CCKTxBBGainTableLength-1; + if(priv->CCKPresentAttentuation < 0) + priv->CCKPresentAttentuation = 0; + + if(priv->CCKPresentAttentuation > -1&&priv->CCKPresentAttentuation < CCKTxBBGainTableLength) + { + if(priv->rtllib->current_network.channel == 14 && !priv->bcck_in_ch14) + { + priv->bcck_in_ch14 = true; + dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); + } + else if(priv->rtllib->current_network.channel != 14 && priv->bcck_in_ch14) + { + priv->bcck_in_ch14 = false; + dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); + } + else + dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); + } + RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex = %d\n", priv->rfa_txpowertrackingindex); + RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex_real = %d\n", priv->rfa_txpowertrackingindex_real); +#ifdef RTL8190P + RT_TRACE(COMP_POWER_TRACKING, "priv->rfc_txpowertrackingindex = %d\n", priv->rfc_txpowertrackingindex); + RT_TRACE(COMP_POWER_TRACKING, "priv->rfc_txpowertrackingindex_real = %d\n", priv->rfc_txpowertrackingindex_real); +#endif + RT_TRACE(COMP_POWER_TRACKING, "priv->CCKPresentAttentuation_difference = %d\n", priv->CCKPresentAttentuation_difference); + RT_TRACE(COMP_POWER_TRACKING, "priv->CCKPresentAttentuation = %d\n", priv->CCKPresentAttentuation); + + if (priv->CCKPresentAttentuation_difference <= -12||priv->CCKPresentAttentuation_difference >= 24) + { + priv->rtllib->bdynamic_txpower_enable = true; + write_nic_byte(dev, Pw_Track_Flag, 0); + write_nic_byte(dev, FW_Busy_Flag, 0); + RT_TRACE(COMP_POWER_TRACKING, "tx power track--->limited\n"); + return; + } + + + } + write_nic_byte(dev, Pw_Track_Flag, 0); + Avg_TSSI_Meas_from_driver = 0; + for(k = 0;k < 5; k++) + tmp_report[k] = 0; + break; + } + write_nic_byte(dev, FW_Busy_Flag, 0); +} + priv->rtllib->bdynamic_txpower_enable = true; + write_nic_byte(dev, Pw_Track_Flag, 0); +} +#endif + +#ifdef RTL8192E +static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device * dev) +{ +#define ThermalMeterVal 9 + struct r8192_priv *priv = rtllib_priv(dev); + u32 tmpRegA, TempCCk; + u8 tmpOFDMindex, tmpCCKindex, tmpCCK20Mindex, tmpCCK40Mindex, tmpval; + int i =0, CCKSwingNeedUpdate=0; + + if(!priv->btxpower_trackingInit) + { + tmpRegA= rtl8192_QueryBBReg(dev, rOFDM0_XATxIQImbalance, bMaskDWord); + for(i=0; iOFDM_index[0]= (u8)i; + RT_TRACE(COMP_POWER_TRACKING, "Initial reg0x%x = 0x%x, OFDM_index=0x%x\n", + rOFDM0_XATxIQImbalance, tmpRegA, priv->OFDM_index[0]); + } + } + + TempCCk = rtl8192_QueryBBReg(dev, rCCK0_TxFilter1, bMaskByte2); + for(i=0 ; iCCK_index =(u8) i; + RT_TRACE(COMP_POWER_TRACKING, "Initial reg0x%x = 0x%x, CCK_index=0x%x\n", + rCCK0_TxFilter1, TempCCk, priv->CCK_index); + break; + } +} + priv->btxpower_trackingInit = true; + return; + } + +#if 0 +{ + UINT32 curr_addr; + UINT32 reg_value; + + for (curr_addr = 0; curr_addr < 0x2d; curr_addr++) + { + reg_value = PHY_QueryRFReg( dev, (RF90_RADIO_PATH_E)RF90_PATH_A, + curr_addr, bMaskDWord); + } + + pHalData->TXPowercount = 0; + return; +} +#endif + + tmpRegA = rtl8192_phy_QueryRFReg(dev, RF90_PATH_A, 0x12, 0x078); + RT_TRACE(COMP_POWER_TRACKING, "Readback ThermalMeterA = %d \n", tmpRegA); + if(tmpRegA < 3 || tmpRegA > 13) + return; + if(tmpRegA >= 12) + tmpRegA = 12; + RT_TRACE(COMP_POWER_TRACKING, "Valid ThermalMeterA = %d \n", tmpRegA); + priv->ThermalMeter[0] = ThermalMeterVal; + priv->ThermalMeter[1] = ThermalMeterVal; + + if(priv->ThermalMeter[0] >= (u8)tmpRegA) + { + tmpOFDMindex = tmpCCK20Mindex = 6+(priv->ThermalMeter[0]-(u8)tmpRegA); + tmpCCK40Mindex = tmpCCK20Mindex - 6; + if(tmpOFDMindex >= OFDM_Table_Length) + tmpOFDMindex = OFDM_Table_Length-1; + if(tmpCCK20Mindex >= CCK_Table_length) + tmpCCK20Mindex = CCK_Table_length-1; + if(tmpCCK40Mindex >= CCK_Table_length) + tmpCCK40Mindex = CCK_Table_length-1; + } + else + { + tmpval = ((u8)tmpRegA - priv->ThermalMeter[0]); + if(tmpval >= 6) + tmpOFDMindex = tmpCCK20Mindex = 0; + else + tmpOFDMindex = tmpCCK20Mindex = 6 - tmpval; + tmpCCK40Mindex = 0; + } + if(priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) + tmpCCKindex = tmpCCK40Mindex; + else + tmpCCKindex = tmpCCK20Mindex; + + priv->Record_CCK_20Mindex = tmpCCK20Mindex; + priv->Record_CCK_40Mindex = tmpCCK40Mindex; + RT_TRACE(COMP_POWER_TRACKING, "Record_CCK_20Mindex / Record_CCK_40Mindex = %d / %d.\n", + priv->Record_CCK_20Mindex, priv->Record_CCK_40Mindex); + + if(priv->rtllib->current_network.channel == 14 && !priv->bcck_in_ch14) + { + priv->bcck_in_ch14 = true; + CCKSwingNeedUpdate = 1; + } + else if(priv->rtllib->current_network.channel != 14 && priv->bcck_in_ch14) + { + priv->bcck_in_ch14 = false; + CCKSwingNeedUpdate = 1; + } + + if(priv->CCK_index != tmpCCKindex) +{ + priv->CCK_index = tmpCCKindex; + CCKSwingNeedUpdate = 1; + } + + if(CCKSwingNeedUpdate) + { + dm_cck_txpower_adjust(dev, priv->bcck_in_ch14); + } + if(priv->OFDM_index[0] != tmpOFDMindex) + { + priv->OFDM_index[0] = tmpOFDMindex; + rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, OFDMSwingTable[priv->OFDM_index[0]]); + RT_TRACE(COMP_POWER_TRACKING, "Update OFDMSwing[%d] = 0x%x\n", + priv->OFDM_index[0], OFDMSwingTable[priv->OFDM_index[0]]); + } + priv->txpower_count = 0; +} +#elif defined (RTL8192SE) +static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 ThermalValue=0; + u32 FwCmdVal=0; + + priv->btxpower_trackingInit = true; + + + ThermalValue = (u8)rtl8192_phy_QueryRFReg(dev, RF90_PATH_A, RF_T_METER, 0x1f); + RT_TRACE(COMP_POWER_TRACKING, "Readback Thermal Meter = 0x%x\n", ThermalValue); + printk("%s()Readback Thermal Meter = 0x%x\n", __func__,ThermalValue); + if(ThermalValue) + { + priv->ThermalValue = ThermalValue; + if(priv->pFirmware->FirmwareVersion >= 0x35) + { + priv->rtllib->SetFwCmdHandler(dev, FW_CMD_TXPWR_TRACK_THERMAL); + } + else + { + FwCmdVal = (FW_TXPWR_TRACK_THERMAL| + (priv->ThermalMeter[0]<<8)|(ThermalValue<<16)); + RT_TRACE(COMP_POWER_TRACKING, "Write to FW Thermal Val = 0x%x\n", FwCmdVal); + write_nic_dword(dev, WFM5, FwCmdVal); + ChkFwCmdIoDone(dev); + } + } + + priv->txpower_count = 0; +} +#endif + +void dm_txpower_trackingcallback(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,txpower_tracking_wq); + struct net_device *dev = priv->rtllib->dev; +#else + struct net_device *dev = (struct net_device *)data; + struct r8192_priv *priv = rtllib_priv(dev); +#endif + +#ifdef RTL8190P + dm_TXPowerTrackingCallback_TSSI(dev); +#elif defined(RTL8192E) + if(priv->IC_Cut >= IC_VersionCut_D) + dm_TXPowerTrackingCallback_TSSI(dev); + else + dm_TXPowerTrackingCallback_ThermalMeter(dev); +#elif defined(RTL8192SE) + dm_TXPowerTrackingCallback_ThermalMeter(dev); +#endif +} + +#ifndef RTL8192SE +static void dm_InitializeTXPowerTracking_TSSI(struct net_device *dev) +{ + + struct r8192_priv *priv = rtllib_priv(dev); + + priv->txbbgain_table[0].txbb_iq_amplifygain = 12; + priv->txbbgain_table[0].txbbgain_value=0x7f8001fe; + priv->txbbgain_table[1].txbb_iq_amplifygain = 11; + priv->txbbgain_table[1].txbbgain_value=0x788001e2; + priv->txbbgain_table[2].txbb_iq_amplifygain = 10; + priv->txbbgain_table[2].txbbgain_value=0x71c001c7; + priv->txbbgain_table[3].txbb_iq_amplifygain = 9; + priv->txbbgain_table[3].txbbgain_value=0x6b8001ae; + priv->txbbgain_table[4].txbb_iq_amplifygain = 8; + priv->txbbgain_table[4].txbbgain_value=0x65400195; + priv->txbbgain_table[5].txbb_iq_amplifygain = 7; + priv->txbbgain_table[5].txbbgain_value=0x5fc0017f; + priv->txbbgain_table[6].txbb_iq_amplifygain = 6; + priv->txbbgain_table[6].txbbgain_value=0x5a400169; + priv->txbbgain_table[7].txbb_iq_amplifygain = 5; + priv->txbbgain_table[7].txbbgain_value=0x55400155; + priv->txbbgain_table[8].txbb_iq_amplifygain = 4; + priv->txbbgain_table[8].txbbgain_value=0x50800142; + priv->txbbgain_table[9].txbb_iq_amplifygain = 3; + priv->txbbgain_table[9].txbbgain_value=0x4c000130; + priv->txbbgain_table[10].txbb_iq_amplifygain = 2; + priv->txbbgain_table[10].txbbgain_value=0x47c0011f; + priv->txbbgain_table[11].txbb_iq_amplifygain = 1; + priv->txbbgain_table[11].txbbgain_value=0x43c0010f; + priv->txbbgain_table[12].txbb_iq_amplifygain = 0; + priv->txbbgain_table[12].txbbgain_value=0x40000100; + priv->txbbgain_table[13].txbb_iq_amplifygain = -1; + priv->txbbgain_table[13].txbbgain_value=0x3c8000f2; + priv->txbbgain_table[14].txbb_iq_amplifygain = -2; + priv->txbbgain_table[14].txbbgain_value=0x390000e4; + priv->txbbgain_table[15].txbb_iq_amplifygain = -3; + priv->txbbgain_table[15].txbbgain_value=0x35c000d7; + priv->txbbgain_table[16].txbb_iq_amplifygain = -4; + priv->txbbgain_table[16].txbbgain_value=0x32c000cb; + priv->txbbgain_table[17].txbb_iq_amplifygain = -5; + priv->txbbgain_table[17].txbbgain_value=0x300000c0; + priv->txbbgain_table[18].txbb_iq_amplifygain = -6; + priv->txbbgain_table[18].txbbgain_value=0x2d4000b5; + priv->txbbgain_table[19].txbb_iq_amplifygain = -7; + priv->txbbgain_table[19].txbbgain_value=0x2ac000ab; + priv->txbbgain_table[20].txbb_iq_amplifygain = -8; + priv->txbbgain_table[20].txbbgain_value=0x288000a2; + priv->txbbgain_table[21].txbb_iq_amplifygain = -9; + priv->txbbgain_table[21].txbbgain_value=0x26000098; + priv->txbbgain_table[22].txbb_iq_amplifygain = -10; + priv->txbbgain_table[22].txbbgain_value=0x24000090; + priv->txbbgain_table[23].txbb_iq_amplifygain = -11; + priv->txbbgain_table[23].txbbgain_value=0x22000088; + priv->txbbgain_table[24].txbb_iq_amplifygain = -12; + priv->txbbgain_table[24].txbbgain_value=0x20000080; + priv->txbbgain_table[25].txbb_iq_amplifygain = -13; + priv->txbbgain_table[25].txbbgain_value=0x1a00006c; + priv->txbbgain_table[26].txbb_iq_amplifygain = -14; + priv->txbbgain_table[26].txbbgain_value=0x1c800072; + priv->txbbgain_table[27].txbb_iq_amplifygain = -15; + priv->txbbgain_table[27].txbbgain_value=0x18000060; + priv->txbbgain_table[28].txbb_iq_amplifygain = -16; + priv->txbbgain_table[28].txbbgain_value=0x19800066; + priv->txbbgain_table[29].txbb_iq_amplifygain = -17; + priv->txbbgain_table[29].txbbgain_value=0x15800056; + priv->txbbgain_table[30].txbb_iq_amplifygain = -18; + priv->txbbgain_table[30].txbbgain_value=0x26c0005b; + priv->txbbgain_table[31].txbb_iq_amplifygain = -19; + priv->txbbgain_table[31].txbbgain_value=0x14400051; + priv->txbbgain_table[32].txbb_iq_amplifygain = -20; + priv->txbbgain_table[32].txbbgain_value=0x24400051; + priv->txbbgain_table[33].txbb_iq_amplifygain = -21; + priv->txbbgain_table[33].txbbgain_value=0x1300004c; + priv->txbbgain_table[34].txbb_iq_amplifygain = -22; + priv->txbbgain_table[34].txbbgain_value=0x12000048; + priv->txbbgain_table[35].txbb_iq_amplifygain = -23; + priv->txbbgain_table[35].txbbgain_value=0x11000044; + priv->txbbgain_table[36].txbb_iq_amplifygain = -24; + priv->txbbgain_table[36].txbbgain_value=0x10000040; + + priv->cck_txbbgain_table[0].ccktxbb_valuearray[0] = 0x36; + priv->cck_txbbgain_table[0].ccktxbb_valuearray[1] = 0x35; + priv->cck_txbbgain_table[0].ccktxbb_valuearray[2] = 0x2e; + priv->cck_txbbgain_table[0].ccktxbb_valuearray[3] = 0x25; + priv->cck_txbbgain_table[0].ccktxbb_valuearray[4] = 0x1c; + priv->cck_txbbgain_table[0].ccktxbb_valuearray[5] = 0x12; + priv->cck_txbbgain_table[0].ccktxbb_valuearray[6] = 0x09; + priv->cck_txbbgain_table[0].ccktxbb_valuearray[7] = 0x04; + + priv->cck_txbbgain_table[1].ccktxbb_valuearray[0] = 0x33; + priv->cck_txbbgain_table[1].ccktxbb_valuearray[1] = 0x32; + priv->cck_txbbgain_table[1].ccktxbb_valuearray[2] = 0x2b; + priv->cck_txbbgain_table[1].ccktxbb_valuearray[3] = 0x23; + priv->cck_txbbgain_table[1].ccktxbb_valuearray[4] = 0x1a; + priv->cck_txbbgain_table[1].ccktxbb_valuearray[5] = 0x11; + priv->cck_txbbgain_table[1].ccktxbb_valuearray[6] = 0x08; + priv->cck_txbbgain_table[1].ccktxbb_valuearray[7] = 0x04; + + priv->cck_txbbgain_table[2].ccktxbb_valuearray[0] = 0x30; + priv->cck_txbbgain_table[2].ccktxbb_valuearray[1] = 0x2f; + priv->cck_txbbgain_table[2].ccktxbb_valuearray[2] = 0x29; + priv->cck_txbbgain_table[2].ccktxbb_valuearray[3] = 0x21; + priv->cck_txbbgain_table[2].ccktxbb_valuearray[4] = 0x19; + priv->cck_txbbgain_table[2].ccktxbb_valuearray[5] = 0x10; + priv->cck_txbbgain_table[2].ccktxbb_valuearray[6] = 0x08; + priv->cck_txbbgain_table[2].ccktxbb_valuearray[7] = 0x03; + + priv->cck_txbbgain_table[3].ccktxbb_valuearray[0] = 0x2d; + priv->cck_txbbgain_table[3].ccktxbb_valuearray[1] = 0x2d; + priv->cck_txbbgain_table[3].ccktxbb_valuearray[2] = 0x27; + priv->cck_txbbgain_table[3].ccktxbb_valuearray[3] = 0x1f; + priv->cck_txbbgain_table[3].ccktxbb_valuearray[4] = 0x18; + priv->cck_txbbgain_table[3].ccktxbb_valuearray[5] = 0x0f; + priv->cck_txbbgain_table[3].ccktxbb_valuearray[6] = 0x08; + priv->cck_txbbgain_table[3].ccktxbb_valuearray[7] = 0x03; + + priv->cck_txbbgain_table[4].ccktxbb_valuearray[0] = 0x2b; + priv->cck_txbbgain_table[4].ccktxbb_valuearray[1] = 0x2a; + priv->cck_txbbgain_table[4].ccktxbb_valuearray[2] = 0x25; + priv->cck_txbbgain_table[4].ccktxbb_valuearray[3] = 0x1e; + priv->cck_txbbgain_table[4].ccktxbb_valuearray[4] = 0x16; + priv->cck_txbbgain_table[4].ccktxbb_valuearray[5] = 0x0e; + priv->cck_txbbgain_table[4].ccktxbb_valuearray[6] = 0x07; + priv->cck_txbbgain_table[4].ccktxbb_valuearray[7] = 0x03; + + priv->cck_txbbgain_table[5].ccktxbb_valuearray[0] = 0x28; + priv->cck_txbbgain_table[5].ccktxbb_valuearray[1] = 0x28; + priv->cck_txbbgain_table[5].ccktxbb_valuearray[2] = 0x22; + priv->cck_txbbgain_table[5].ccktxbb_valuearray[3] = 0x1c; + priv->cck_txbbgain_table[5].ccktxbb_valuearray[4] = 0x15; + priv->cck_txbbgain_table[5].ccktxbb_valuearray[5] = 0x0d; + priv->cck_txbbgain_table[5].ccktxbb_valuearray[6] = 0x07; + priv->cck_txbbgain_table[5].ccktxbb_valuearray[7] = 0x03; + + priv->cck_txbbgain_table[6].ccktxbb_valuearray[0] = 0x26; + priv->cck_txbbgain_table[6].ccktxbb_valuearray[1] = 0x25; + priv->cck_txbbgain_table[6].ccktxbb_valuearray[2] = 0x21; + priv->cck_txbbgain_table[6].ccktxbb_valuearray[3] = 0x1b; + priv->cck_txbbgain_table[6].ccktxbb_valuearray[4] = 0x14; + priv->cck_txbbgain_table[6].ccktxbb_valuearray[5] = 0x0d; + priv->cck_txbbgain_table[6].ccktxbb_valuearray[6] = 0x06; + priv->cck_txbbgain_table[6].ccktxbb_valuearray[7] = 0x03; + + priv->cck_txbbgain_table[7].ccktxbb_valuearray[0] = 0x24; + priv->cck_txbbgain_table[7].ccktxbb_valuearray[1] = 0x23; + priv->cck_txbbgain_table[7].ccktxbb_valuearray[2] = 0x1f; + priv->cck_txbbgain_table[7].ccktxbb_valuearray[3] = 0x19; + priv->cck_txbbgain_table[7].ccktxbb_valuearray[4] = 0x13; + priv->cck_txbbgain_table[7].ccktxbb_valuearray[5] = 0x0c; + priv->cck_txbbgain_table[7].ccktxbb_valuearray[6] = 0x06; + priv->cck_txbbgain_table[7].ccktxbb_valuearray[7] = 0x03; + + priv->cck_txbbgain_table[8].ccktxbb_valuearray[0] = 0x22; + priv->cck_txbbgain_table[8].ccktxbb_valuearray[1] = 0x21; + priv->cck_txbbgain_table[8].ccktxbb_valuearray[2] = 0x1d; + priv->cck_txbbgain_table[8].ccktxbb_valuearray[3] = 0x18; + priv->cck_txbbgain_table[8].ccktxbb_valuearray[4] = 0x11; + priv->cck_txbbgain_table[8].ccktxbb_valuearray[5] = 0x0b; + priv->cck_txbbgain_table[8].ccktxbb_valuearray[6] = 0x06; + priv->cck_txbbgain_table[8].ccktxbb_valuearray[7] = 0x02; + + priv->cck_txbbgain_table[9].ccktxbb_valuearray[0] = 0x20; + priv->cck_txbbgain_table[9].ccktxbb_valuearray[1] = 0x20; + priv->cck_txbbgain_table[9].ccktxbb_valuearray[2] = 0x1b; + priv->cck_txbbgain_table[9].ccktxbb_valuearray[3] = 0x16; + priv->cck_txbbgain_table[9].ccktxbb_valuearray[4] = 0x11; + priv->cck_txbbgain_table[9].ccktxbb_valuearray[5] = 0x08; + priv->cck_txbbgain_table[9].ccktxbb_valuearray[6] = 0x05; + priv->cck_txbbgain_table[9].ccktxbb_valuearray[7] = 0x02; + + priv->cck_txbbgain_table[10].ccktxbb_valuearray[0] = 0x1f; + priv->cck_txbbgain_table[10].ccktxbb_valuearray[1] = 0x1e; + priv->cck_txbbgain_table[10].ccktxbb_valuearray[2] = 0x1a; + priv->cck_txbbgain_table[10].ccktxbb_valuearray[3] = 0x15; + priv->cck_txbbgain_table[10].ccktxbb_valuearray[4] = 0x10; + priv->cck_txbbgain_table[10].ccktxbb_valuearray[5] = 0x0a; + priv->cck_txbbgain_table[10].ccktxbb_valuearray[6] = 0x05; + priv->cck_txbbgain_table[10].ccktxbb_valuearray[7] = 0x02; + + priv->cck_txbbgain_table[11].ccktxbb_valuearray[0] = 0x1d; + priv->cck_txbbgain_table[11].ccktxbb_valuearray[1] = 0x1c; + priv->cck_txbbgain_table[11].ccktxbb_valuearray[2] = 0x18; + priv->cck_txbbgain_table[11].ccktxbb_valuearray[3] = 0x14; + priv->cck_txbbgain_table[11].ccktxbb_valuearray[4] = 0x0f; + priv->cck_txbbgain_table[11].ccktxbb_valuearray[5] = 0x0a; + priv->cck_txbbgain_table[11].ccktxbb_valuearray[6] = 0x05; + priv->cck_txbbgain_table[11].ccktxbb_valuearray[7] = 0x02; + + priv->cck_txbbgain_table[12].ccktxbb_valuearray[0] = 0x1b; + priv->cck_txbbgain_table[12].ccktxbb_valuearray[1] = 0x1a; + priv->cck_txbbgain_table[12].ccktxbb_valuearray[2] = 0x17; + priv->cck_txbbgain_table[12].ccktxbb_valuearray[3] = 0x13; + priv->cck_txbbgain_table[12].ccktxbb_valuearray[4] = 0x0e; + priv->cck_txbbgain_table[12].ccktxbb_valuearray[5] = 0x09; + priv->cck_txbbgain_table[12].ccktxbb_valuearray[6] = 0x04; + priv->cck_txbbgain_table[12].ccktxbb_valuearray[7] = 0x02; + + priv->cck_txbbgain_table[13].ccktxbb_valuearray[0] = 0x1a; + priv->cck_txbbgain_table[13].ccktxbb_valuearray[1] = 0x19; + priv->cck_txbbgain_table[13].ccktxbb_valuearray[2] = 0x16; + priv->cck_txbbgain_table[13].ccktxbb_valuearray[3] = 0x12; + priv->cck_txbbgain_table[13].ccktxbb_valuearray[4] = 0x0d; + priv->cck_txbbgain_table[13].ccktxbb_valuearray[5] = 0x09; + priv->cck_txbbgain_table[13].ccktxbb_valuearray[6] = 0x04; + priv->cck_txbbgain_table[13].ccktxbb_valuearray[7] = 0x02; + + priv->cck_txbbgain_table[14].ccktxbb_valuearray[0] = 0x18; + priv->cck_txbbgain_table[14].ccktxbb_valuearray[1] = 0x17; + priv->cck_txbbgain_table[14].ccktxbb_valuearray[2] = 0x15; + priv->cck_txbbgain_table[14].ccktxbb_valuearray[3] = 0x11; + priv->cck_txbbgain_table[14].ccktxbb_valuearray[4] = 0x0c; + priv->cck_txbbgain_table[14].ccktxbb_valuearray[5] = 0x08; + priv->cck_txbbgain_table[14].ccktxbb_valuearray[6] = 0x04; + priv->cck_txbbgain_table[14].ccktxbb_valuearray[7] = 0x02; + + priv->cck_txbbgain_table[15].ccktxbb_valuearray[0] = 0x17; + priv->cck_txbbgain_table[15].ccktxbb_valuearray[1] = 0x16; + priv->cck_txbbgain_table[15].ccktxbb_valuearray[2] = 0x13; + priv->cck_txbbgain_table[15].ccktxbb_valuearray[3] = 0x10; + priv->cck_txbbgain_table[15].ccktxbb_valuearray[4] = 0x0c; + priv->cck_txbbgain_table[15].ccktxbb_valuearray[5] = 0x08; + priv->cck_txbbgain_table[15].ccktxbb_valuearray[6] = 0x04; + priv->cck_txbbgain_table[15].ccktxbb_valuearray[7] = 0x02; + + priv->cck_txbbgain_table[16].ccktxbb_valuearray[0] = 0x16; + priv->cck_txbbgain_table[16].ccktxbb_valuearray[1] = 0x15; + priv->cck_txbbgain_table[16].ccktxbb_valuearray[2] = 0x12; + priv->cck_txbbgain_table[16].ccktxbb_valuearray[3] = 0x0f; + priv->cck_txbbgain_table[16].ccktxbb_valuearray[4] = 0x0b; + priv->cck_txbbgain_table[16].ccktxbb_valuearray[5] = 0x07; + priv->cck_txbbgain_table[16].ccktxbb_valuearray[6] = 0x04; + priv->cck_txbbgain_table[16].ccktxbb_valuearray[7] = 0x01; + + priv->cck_txbbgain_table[17].ccktxbb_valuearray[0] = 0x14; + priv->cck_txbbgain_table[17].ccktxbb_valuearray[1] = 0x14; + priv->cck_txbbgain_table[17].ccktxbb_valuearray[2] = 0x11; + priv->cck_txbbgain_table[17].ccktxbb_valuearray[3] = 0x0e; + priv->cck_txbbgain_table[17].ccktxbb_valuearray[4] = 0x0b; + priv->cck_txbbgain_table[17].ccktxbb_valuearray[5] = 0x07; + priv->cck_txbbgain_table[17].ccktxbb_valuearray[6] = 0x03; + priv->cck_txbbgain_table[17].ccktxbb_valuearray[7] = 0x02; + + priv->cck_txbbgain_table[18].ccktxbb_valuearray[0] = 0x13; + priv->cck_txbbgain_table[18].ccktxbb_valuearray[1] = 0x13; + priv->cck_txbbgain_table[18].ccktxbb_valuearray[2] = 0x10; + priv->cck_txbbgain_table[18].ccktxbb_valuearray[3] = 0x0d; + priv->cck_txbbgain_table[18].ccktxbb_valuearray[4] = 0x0a; + priv->cck_txbbgain_table[18].ccktxbb_valuearray[5] = 0x06; + priv->cck_txbbgain_table[18].ccktxbb_valuearray[6] = 0x03; + priv->cck_txbbgain_table[18].ccktxbb_valuearray[7] = 0x01; + + priv->cck_txbbgain_table[19].ccktxbb_valuearray[0] = 0x12; + priv->cck_txbbgain_table[19].ccktxbb_valuearray[1] = 0x12; + priv->cck_txbbgain_table[19].ccktxbb_valuearray[2] = 0x0f; + priv->cck_txbbgain_table[19].ccktxbb_valuearray[3] = 0x0c; + priv->cck_txbbgain_table[19].ccktxbb_valuearray[4] = 0x09; + priv->cck_txbbgain_table[19].ccktxbb_valuearray[5] = 0x06; + priv->cck_txbbgain_table[19].ccktxbb_valuearray[6] = 0x03; + priv->cck_txbbgain_table[19].ccktxbb_valuearray[7] = 0x01; + + priv->cck_txbbgain_table[20].ccktxbb_valuearray[0] = 0x11; + priv->cck_txbbgain_table[20].ccktxbb_valuearray[1] = 0x11; + priv->cck_txbbgain_table[20].ccktxbb_valuearray[2] = 0x0f; + priv->cck_txbbgain_table[20].ccktxbb_valuearray[3] = 0x0c; + priv->cck_txbbgain_table[20].ccktxbb_valuearray[4] = 0x09; + priv->cck_txbbgain_table[20].ccktxbb_valuearray[5] = 0x06; + priv->cck_txbbgain_table[20].ccktxbb_valuearray[6] = 0x03; + priv->cck_txbbgain_table[20].ccktxbb_valuearray[7] = 0x01; + + priv->cck_txbbgain_table[21].ccktxbb_valuearray[0] = 0x10; + priv->cck_txbbgain_table[21].ccktxbb_valuearray[1] = 0x10; + priv->cck_txbbgain_table[21].ccktxbb_valuearray[2] = 0x0e; + priv->cck_txbbgain_table[21].ccktxbb_valuearray[3] = 0x0b; + priv->cck_txbbgain_table[21].ccktxbb_valuearray[4] = 0x08; + priv->cck_txbbgain_table[21].ccktxbb_valuearray[5] = 0x05; + priv->cck_txbbgain_table[21].ccktxbb_valuearray[6] = 0x03; + priv->cck_txbbgain_table[21].ccktxbb_valuearray[7] = 0x01; + + priv->cck_txbbgain_table[22].ccktxbb_valuearray[0] = 0x0f; + priv->cck_txbbgain_table[22].ccktxbb_valuearray[1] = 0x0f; + priv->cck_txbbgain_table[22].ccktxbb_valuearray[2] = 0x0d; + priv->cck_txbbgain_table[22].ccktxbb_valuearray[3] = 0x0b; + priv->cck_txbbgain_table[22].ccktxbb_valuearray[4] = 0x08; + priv->cck_txbbgain_table[22].ccktxbb_valuearray[5] = 0x05; + priv->cck_txbbgain_table[22].ccktxbb_valuearray[6] = 0x03; + priv->cck_txbbgain_table[22].ccktxbb_valuearray[7] = 0x01; + + priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[0] = 0x36; + priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[1] = 0x35; + priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[2] = 0x2e; + priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[3] = 0x1b; + priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[0] = 0x33; + priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[1] = 0x32; + priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[2] = 0x2b; + priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[3] = 0x19; + priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[0] = 0x30; + priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[1] = 0x2f; + priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[2] = 0x29; + priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[3] = 0x18; + priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[0] = 0x2d; + priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[1] = 0x2d; + priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[2] = 0x27; + priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[3] = 0x17; + priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[0] = 0x2b; + priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[1] = 0x2a; + priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[2] = 0x25; + priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[3] = 0x15; + priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[0] = 0x28; + priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[1] = 0x28; + priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[2] = 0x22; + priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[3] = 0x14; + priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[0] = 0x26; + priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[1] = 0x25; + priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[2] = 0x21; + priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[3] = 0x13; + priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[0] = 0x24; + priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[1] = 0x23; + priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[2] = 0x1f; + priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[3] = 0x12; + priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[0] = 0x22; + priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[1] = 0x21; + priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[2] = 0x1d; + priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[3] = 0x11; + priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[0] = 0x20; + priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[1] = 0x20; + priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[2] = 0x1b; + priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[3] = 0x10; + priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[0] = 0x1f; + priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[1] = 0x1e; + priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[2] = 0x1a; + priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[3] = 0x0f; + priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[0] = 0x1d; + priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[1] = 0x1c; + priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[2] = 0x18; + priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[3] = 0x0e; + priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[0] = 0x1b; + priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[1] = 0x1a; + priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[2] = 0x17; + priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[3] = 0x0e; + priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[0] = 0x1a; + priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[1] = 0x19; + priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[2] = 0x16; + priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[3] = 0x0d; + priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[0] = 0x18; + priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[1] = 0x17; + priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[2] = 0x15; + priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[3] = 0x0c; + priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[0] = 0x17; + priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[1] = 0x16; + priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[2] = 0x13; + priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[3] = 0x0b; + priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[0] = 0x16; + priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[1] = 0x15; + priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[2] = 0x12; + priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[3] = 0x0b; + priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[0] = 0x14; + priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[1] = 0x14; + priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[2] = 0x11; + priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[3] = 0x0a; + priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[0] = 0x13; + priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[1] = 0x13; + priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[2] = 0x10; + priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[3] = 0x0a; + priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[0] = 0x12; + priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[1] = 0x12; + priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[2] = 0x0f; + priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[3] = 0x09; + priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[0] = 0x11; + priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[1] = 0x11; + priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[2] = 0x0f; + priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[3] = 0x09; + priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[0] = 0x10; + priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[1] = 0x10; + priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[2] = 0x0e; + priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[3] = 0x08; + priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[7] = 0x00; + + priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[0] = 0x0f; + priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[1] = 0x0f; + priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[2] = 0x0d; + priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[3] = 0x08; + priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[4] = 0x00; + priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[5] = 0x00; + priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[6] = 0x00; + priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[7] = 0x00; + + priv->btxpower_tracking = true; + priv->txpower_count = 0; + priv->btxpower_trackingInit = false; + +} +#endif +#ifndef RTL8190P +static void dm_InitializeTXPowerTracking_ThermalMeter(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + +#ifdef RTL8192SE + priv->btxpower_tracking = false; + priv->txpower_count = 0; + priv->btxpower_trackingInit = false; +#else + + if(priv->rtllib->FwRWRF) + priv->btxpower_tracking = true; + else + priv->btxpower_tracking = false; + priv->txpower_count = 0; + priv->btxpower_trackingInit = false; +#endif + RT_TRACE(COMP_POWER_TRACKING, "pMgntInfo->bTXPowerTracking = %d\n", priv->btxpower_tracking); +} +#endif + +void dm_initialize_txpower_tracking(struct net_device *dev) +{ +#ifdef RTL8192E + struct r8192_priv *priv = rtllib_priv(dev); +#endif +#ifdef RTL8190P + dm_InitializeTXPowerTracking_TSSI(dev); +#elif defined RTL8192E + if(priv->IC_Cut >= IC_VersionCut_D) + dm_InitializeTXPowerTracking_TSSI(dev); + else + dm_InitializeTXPowerTracking_ThermalMeter(dev); +#elif defined RTL8192SE + dm_InitializeTXPowerTracking_ThermalMeter(dev); +#endif +} + +#if (defined RTL8192E || defined RTL8190P) +static void dm_CheckTXPowerTracking_TSSI(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + static u32 tx_power_track_counter = 0; + RT_TRACE(COMP_POWER_TRACKING,"%s()\n",__FUNCTION__); + if(read_nic_byte(dev, 0x11e) ==1) + return; + if(!priv->btxpower_tracking) + return; + tx_power_track_counter++; + + + if(tx_power_track_counter >= 180) + { + queue_delayed_work_rsl(priv->priv_wq,&priv->txpower_tracking_wq,0); + tx_power_track_counter =0; + } + +} +#endif +#ifndef RTL8190P +static void dm_CheckTXPowerTracking_ThermalMeter(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + static u8 TM_Trigger=0; + u8 TxPowerCheckCnt = 0; + + if(IS_HARDWARE_TYPE_8192SE(dev)) + TxPowerCheckCnt = 5; + else + TxPowerCheckCnt = 2; + if(!priv->btxpower_tracking){ + return; + } else { + if(priv->txpower_count <= TxPowerCheckCnt) { + priv->txpower_count++; + return; + } + } + + if(!TM_Trigger) + { +#ifdef RTL8192SE + if(IS_HARDWARE_TYPE_8192SE(dev)) + { + rtl8192_phy_SetRFReg(dev, RF90_PATH_A, RF_T_METER, bRFRegOffsetMask, 0x60); + RT_TRACE(COMP_POWER_TRACKING, "Trigger 92S Thermal Meter!!\n"); + } + else +#endif + { + rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4d); + rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4f); + rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4d); + rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4f); + } + TM_Trigger = 1; + return; + } else { + printk("===============>Schedule TxPowerTrackingWorkItem\n"); +#ifdef RTL8192SE + DM_TXPowerTracking92SDirectCall(dev); +#else + + queue_delayed_work_rsl(priv->priv_wq,&priv->txpower_tracking_wq,0); +#endif + TM_Trigger = 0; + } + + } +#endif + +#ifdef RTL8192SE +void DM_TXPowerTracking92SDirectCall(struct net_device *dev) +{ + dm_TXPowerTrackingCallback_ThermalMeter(dev); + } +#endif + +static void dm_check_txpower_tracking(struct net_device *dev) +{ +#ifdef RTL8192E + struct r8192_priv *priv = rtllib_priv(dev); +#endif +#ifdef RTL8190P + dm_CheckTXPowerTracking_TSSI(dev); +#elif defined RTL8192E + if(priv->IC_Cut >= IC_VersionCut_D) + dm_CheckTXPowerTracking_TSSI(dev); + else + dm_CheckTXPowerTracking_ThermalMeter(dev); +#elif defined RTL8192SE + dm_CheckTXPowerTracking_ThermalMeter(dev); +#endif + +} + +#ifndef RTL8192SE +static void dm_CCKTxPowerAdjust_TSSI(struct net_device *dev, bool bInCH14) +{ + u32 TempVal; + struct r8192_priv *priv = rtllib_priv(dev); + TempVal = 0; + if(!bInCH14){ + TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[0] + + (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[1]<<8)) ; + + rtl8192_setBBreg(dev, rCCK0_TxFilter1,bMaskHWord, TempVal); + TempVal = 0; + TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[2] + + (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[3]<<8) + + (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[4]<<16 )+ + (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[5]<<24)); + rtl8192_setBBreg(dev, rCCK0_TxFilter2,bMaskDWord, TempVal); + TempVal = 0; + TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[6] + + (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[7]<<8)) ; + + rtl8192_setBBreg(dev, rCCK0_DebugPort,bMaskLWord, TempVal); + } + else + { + TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[0] + + (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[1]<<8)) ; + + rtl8192_setBBreg(dev, rCCK0_TxFilter1,bMaskHWord, TempVal); + TempVal = 0; + TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[2] + + (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[3]<<8) + + (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[4]<<16 )+ + (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[5]<<24)); + rtl8192_setBBreg(dev, rCCK0_TxFilter2,bMaskDWord, TempVal); + TempVal = 0; + TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[6] + + (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[7]<<8)) ; + + rtl8192_setBBreg(dev, rCCK0_DebugPort,bMaskLWord, TempVal); + } + + +} +#endif +#ifdef RTL8192E +static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, bool bInCH14) +{ + u32 TempVal; + struct r8192_priv *priv = rtllib_priv(dev); + + TempVal = 0; + if(!bInCH14) + { + TempVal = CCKSwingTable_Ch1_Ch13[priv->CCK_index][0] + + (CCKSwingTable_Ch1_Ch13[priv->CCK_index][1]<<8) ; + rtl8192_setBBreg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal); + RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n", + rCCK0_TxFilter1, TempVal); + TempVal = 0; + TempVal = CCKSwingTable_Ch1_Ch13[priv->CCK_index][2] + + (CCKSwingTable_Ch1_Ch13[priv->CCK_index][3]<<8) + + (CCKSwingTable_Ch1_Ch13[priv->CCK_index][4]<<16 )+ + (CCKSwingTable_Ch1_Ch13[priv->CCK_index][5]<<24); + rtl8192_setBBreg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal); + RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n", + rCCK0_TxFilter2, TempVal); + TempVal = 0; + TempVal = CCKSwingTable_Ch1_Ch13[priv->CCK_index][6] + + (CCKSwingTable_Ch1_Ch13[priv->CCK_index][7]<<8) ; + + rtl8192_setBBreg(dev, rCCK0_DebugPort, bMaskLWord, TempVal); + RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n", + rCCK0_DebugPort, TempVal); + } + else + { + TempVal = CCKSwingTable_Ch14[priv->CCK_index][0] + + (CCKSwingTable_Ch14[priv->CCK_index][1]<<8) ; + + rtl8192_setBBreg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal); + RT_TRACE(COMP_POWER_TRACKING, "CCK chnl 14, reg 0x%x = 0x%x\n", + rCCK0_TxFilter1, TempVal); + TempVal = 0; + TempVal = CCKSwingTable_Ch14[priv->CCK_index][2] + + (CCKSwingTable_Ch14[priv->CCK_index][3]<<8) + + (CCKSwingTable_Ch14[priv->CCK_index][4]<<16 )+ + (CCKSwingTable_Ch14[priv->CCK_index][5]<<24); + rtl8192_setBBreg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal); + RT_TRACE(COMP_POWER_TRACKING, "CCK chnl 14, reg 0x%x = 0x%x\n", + rCCK0_TxFilter2, TempVal); + TempVal = 0; + TempVal = CCKSwingTable_Ch14[priv->CCK_index][6] + + (CCKSwingTable_Ch14[priv->CCK_index][7]<<8) ; + + rtl8192_setBBreg(dev, rCCK0_DebugPort, bMaskLWord, TempVal); + RT_TRACE(COMP_POWER_TRACKING,"CCK chnl 14, reg 0x%x = 0x%x\n", + rCCK0_DebugPort, TempVal); + } + } +#endif + +#ifndef RTL8192SE +extern void dm_cck_txpower_adjust( + struct net_device *dev, + bool binch14 +) +{ +#ifndef RTL8190P + struct r8192_priv *priv = rtllib_priv(dev); +#endif +#ifdef RTL8190P + dm_CCKTxPowerAdjust_TSSI(dev, binch14); +#else + if(priv->IC_Cut >= IC_VersionCut_D) + dm_CCKTxPowerAdjust_TSSI(dev, binch14); + else + dm_CCKTxPowerAdjust_ThermalMeter(dev, binch14); +#endif +} +#endif + + +#if defined(RTL8192E)||defined(RTL8190P) +static void dm_txpower_reset_recovery( + struct net_device *dev +) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + RT_TRACE(COMP_POWER_TRACKING, "Start Reset Recovery ==>\n"); + rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex].txbbgain_value); + RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in 0xc80 is %08x\n",priv->txbbgain_table[priv->rfa_txpowertrackingindex].txbbgain_value); + RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in RFA_txPowerTrackingIndex is %x\n",priv->rfa_txpowertrackingindex); + RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery : RF A I/Q Amplify Gain is %ld\n",priv->txbbgain_table[priv->rfa_txpowertrackingindex].txbb_iq_amplifygain); + RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: CCK Attenuation is %d dB\n",priv->CCKPresentAttentuation); + dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); + + rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex].txbbgain_value); + RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in 0xc90 is %08x\n",priv->txbbgain_table[priv->rfc_txpowertrackingindex].txbbgain_value); + RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in RFC_txPowerTrackingIndex is %x\n",priv->rfc_txpowertrackingindex); + RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery : RF C I/Q Amplify Gain is %ld\n",priv->txbbgain_table[priv->rfc_txpowertrackingindex].txbb_iq_amplifygain); + +} + +extern void dm_restore_dynamic_mechanism_state(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 reg_ratr = priv->rate_adaptive.last_ratr; + + if(IS_NIC_DOWN(priv)){ + RT_TRACE(COMP_RATE, "<---- dm_restore_dynamic_mechanism_state(): driver is going to unload\n"); + return; + } + + if(priv->rate_adaptive.rate_adaptive_disabled) + return; + if( !(priv->rtllib->mode==WIRELESS_MODE_N_24G || + priv->rtllib->mode==WIRELESS_MODE_N_5G)) + return; + { + u32 ratr_value; + ratr_value = reg_ratr; + if(priv->rf_type == RF_1T2R) + { + ratr_value &=~ (RATE_ALL_OFDM_2SS); + } + write_nic_dword(dev, RATR0, ratr_value); + write_nic_byte(dev, UFWP, 1); +#if 0 + u1Byte index; + u4Byte input_value; + index = (u1Byte)((((pu4Byte)(val))[0]) >> 28); + input_value = (((pu4Byte)(val))[0]) & 0x0fffffff; + PlatformEFIOWrite4Byte(dev, RATR0+index*4, input_value); +#endif + } + if(priv->btxpower_trackingInit && priv->btxpower_tracking){ + dm_txpower_reset_recovery(dev); + } + + dm_bb_initialgain_restore(dev); + +} + +static void dm_bb_initialgain_restore(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 bit_mask = 0x7f; + + if(dm_digtable.dig_algorithm == DIG_ALGO_BY_RSSI) + return; + + rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8); + rtl8192_setBBreg(dev, rOFDM0_XAAGCCore1, bit_mask, (u32)priv->initgain_backup.xaagccore1); + rtl8192_setBBreg(dev, rOFDM0_XBAGCCore1, bit_mask, (u32)priv->initgain_backup.xbagccore1); + rtl8192_setBBreg(dev, rOFDM0_XCAGCCore1, bit_mask, (u32)priv->initgain_backup.xcagccore1); + rtl8192_setBBreg(dev, rOFDM0_XDAGCCore1, bit_mask, (u32)priv->initgain_backup.xdagccore1); + bit_mask = bMaskByte2; + rtl8192_setBBreg(dev, rCCK0_CCA, bit_mask, (u32)priv->initgain_backup.cca); + + RT_TRACE(COMP_DIG, "dm_BBInitialGainRestore 0xc50 is %x\n",priv->initgain_backup.xaagccore1); + RT_TRACE(COMP_DIG, "dm_BBInitialGainRestore 0xc58 is %x\n",priv->initgain_backup.xbagccore1); + RT_TRACE(COMP_DIG, "dm_BBInitialGainRestore 0xc60 is %x\n",priv->initgain_backup.xcagccore1); + RT_TRACE(COMP_DIG, "dm_BBInitialGainRestore 0xc68 is %x\n",priv->initgain_backup.xdagccore1); + RT_TRACE(COMP_DIG, "dm_BBInitialGainRestore 0xa0a is %x\n",priv->initgain_backup.cca); + rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x1); + +} + + +extern void dm_backup_dynamic_mechanism_state(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + priv->bswitch_fsync = false; + priv->bfsync_processing = false; + dm_bb_initialgain_backup(dev); + +} + + +static void dm_bb_initialgain_backup(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 bit_mask = bMaskByte0; + + if(dm_digtable.dig_algorithm == DIG_ALGO_BY_RSSI) + return; + + rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8); + priv->initgain_backup.xaagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XAAGCCore1, bit_mask); + priv->initgain_backup.xbagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XBAGCCore1, bit_mask); + priv->initgain_backup.xcagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XCAGCCore1, bit_mask); + priv->initgain_backup.xdagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XDAGCCore1, bit_mask); + bit_mask = bMaskByte2; + priv->initgain_backup.cca = (u8)rtl8192_QueryBBReg(dev, rCCK0_CCA, bit_mask); + + RT_TRACE(COMP_DIG, "BBInitialGainBackup 0xc50 is %x\n",priv->initgain_backup.xaagccore1); + RT_TRACE(COMP_DIG, "BBInitialGainBackup 0xc58 is %x\n",priv->initgain_backup.xbagccore1); + RT_TRACE(COMP_DIG, "BBInitialGainBackup 0xc60 is %x\n",priv->initgain_backup.xcagccore1); + RT_TRACE(COMP_DIG, "BBInitialGainBackup 0xc68 is %x\n",priv->initgain_backup.xdagccore1); + RT_TRACE(COMP_DIG, "BBInitialGainBackup 0xa0a is %x\n",priv->initgain_backup.cca); + +} + +#endif +extern void dm_change_dynamic_initgain_thresh(struct net_device *dev, + u32 dm_type, + u32 dm_value) +{ +#ifdef RTL8192SE + struct r8192_priv *priv = rtllib_priv(dev); + if(dm_type == DIG_TYPE_THRESH_HIGHPWR_HIGH) + priv->MidHighPwrTHR_L2 = (u8)dm_value; + else if(dm_type == DIG_TYPE_THRESH_HIGHPWR_LOW) + priv->MidHighPwrTHR_L1 = (u8)dm_value; + return; +#endif + if (dm_type == DIG_TYPE_THRESH_HIGH) + { + dm_digtable.rssi_high_thresh = dm_value; + } + else if (dm_type == DIG_TYPE_THRESH_LOW) + { + dm_digtable.rssi_low_thresh = dm_value; + } + else if (dm_type == DIG_TYPE_THRESH_HIGHPWR_HIGH) + { + dm_digtable.rssi_high_power_highthresh = dm_value; + } + else if (dm_type == DIG_TYPE_THRESH_HIGHPWR_HIGH) + { + dm_digtable.rssi_high_power_highthresh = dm_value; + } + else if (dm_type == DIG_TYPE_ENABLE) + { + dm_digtable.dig_state = DM_STA_DIG_MAX; + dm_digtable.dig_enable_flag = true; + } + else if (dm_type == DIG_TYPE_DISABLE) + { + dm_digtable.dig_state = DM_STA_DIG_MAX; + dm_digtable.dig_enable_flag = false; + } + else if (dm_type == DIG_TYPE_DBG_MODE) + { + if(dm_value >= DM_DBG_MAX) + dm_value = DM_DBG_OFF; + dm_digtable.dbg_mode = (u8)dm_value; + } + else if (dm_type == DIG_TYPE_RSSI) + { + if(dm_value > 100) + dm_value = 30; + dm_digtable.rssi_val = (long)dm_value; + } + else if (dm_type == DIG_TYPE_ALGORITHM) + { + if (dm_value >= DIG_ALGO_MAX) + dm_value = DIG_ALGO_BY_FALSE_ALARM; + if(dm_digtable.dig_algorithm != (u8)dm_value) + dm_digtable.dig_algorithm_switch = 1; + dm_digtable.dig_algorithm = (u8)dm_value; + } + else if (dm_type == DIG_TYPE_BACKOFF) + { + if(dm_value > 30) + dm_value = 30; + dm_digtable.backoff_val = (u8)dm_value; + } + else if(dm_type == DIG_TYPE_RX_GAIN_MIN) + { + if(dm_value == 0) + dm_value = 0x1; + dm_digtable.rx_gain_range_min = (u8)dm_value; + } + else if(dm_type == DIG_TYPE_RX_GAIN_MAX) + { + if(dm_value > 0x50) + dm_value = 0x50; + dm_digtable.rx_gain_range_max = (u8)dm_value; + } +} +extern void +dm_change_fsync_setting( + struct net_device *dev, + s32 DM_Type, + s32 DM_Value) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if (DM_Type == 0) + { + if(DM_Value > 1) + DM_Value = 1; + priv->framesyncMonitor = (u8)DM_Value; + } +} + +extern void +dm_change_rxpath_selection_setting( + struct net_device *dev, + s32 DM_Type, + s32 DM_Value) +{ + struct r8192_priv *priv = rtllib_priv(dev); + prate_adaptive pRA = (prate_adaptive)&(priv->rate_adaptive); + + + if(DM_Type == 0) + { + if(DM_Value > 1) + DM_Value = 1; + DM_RxPathSelTable.Enable = (u8)DM_Value; + } + else if(DM_Type == 1) + { + if(DM_Value > 1) + DM_Value = 1; + DM_RxPathSelTable.DbgMode = (u8)DM_Value; + } + else if(DM_Type == 2) + { + if(DM_Value > 40) + DM_Value = 40; + DM_RxPathSelTable.SS_TH_low = (u8)DM_Value; + } + else if(DM_Type == 3) + { + if(DM_Value > 25) + DM_Value = 25; + DM_RxPathSelTable.diff_TH = (u8)DM_Value; + } + else if(DM_Type == 4) + { + if(DM_Value >= CCK_Rx_Version_MAX) + DM_Value = CCK_Rx_Version_1; + DM_RxPathSelTable.cck_method= (u8)DM_Value; + } + else if(DM_Type == 10) + { + if(DM_Value > 100) + DM_Value = 50; + DM_RxPathSelTable.rf_rssi[0] = (u8)DM_Value; + } + else if(DM_Type == 11) + { + if(DM_Value > 100) + DM_Value = 50; + DM_RxPathSelTable.rf_rssi[1] = (u8)DM_Value; + } + else if(DM_Type == 12) + { + if(DM_Value > 100) + DM_Value = 50; + DM_RxPathSelTable.rf_rssi[2] = (u8)DM_Value; + } + else if(DM_Type == 13) + { + if(DM_Value > 100) + DM_Value = 50; + DM_RxPathSelTable.rf_rssi[3] = (u8)DM_Value; + } + else if(DM_Type == 20) + { + if(DM_Value > 1) + DM_Value = 1; + pRA->ping_rssi_enable = (u8)DM_Value; + } + else if(DM_Type == 21) + { + if(DM_Value > 30) + DM_Value = 30; + pRA->ping_rssi_thresh_for_ra = DM_Value; + } +} + +#if 0 +extern void dm_force_tx_fw_info(struct net_device *dev, + u32 force_type, + u32 force_value) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if (force_type == 0) + { + priv->tx_fwinfo_force_subcarriermode = 0; + } + else if(force_type == 1) + { + priv->tx_fwinfo_force_subcarriermode = 1; + if(force_value > 3) + force_value = 3; + priv->tx_fwinfo_force_subcarrierval = (u8)force_value; + } +} +#endif + +static void dm_dig_init(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + dm_digtable.dig_enable_flag = true; + dm_digtable.Backoff_Enable_Flag = true; + +#ifdef RTL8192SE + if((priv->DM_Type == DM_Type_ByDriver) && (priv->pFirmware->FirmwareVersion >= 0x3c)) + dm_digtable.dig_algorithm = DIG_ALGO_BY_TOW_PORT; + else + dm_digtable.dig_algorithm = DIG_ALGO_BEFORE_CONNECT_BY_RSSI_AND_ALARM; +#else + dm_digtable.dig_algorithm = DIG_ALGO_BY_RSSI; +#endif + + dm_digtable.Dig_TwoPort_Algorithm = DIG_TWO_PORT_ALGO_RSSI; + dm_digtable.Dig_Ext_Port_Stage = DIG_EXT_PORT_STAGE_MAX; + dm_digtable.dbg_mode = DM_DBG_OFF; + dm_digtable.dig_algorithm_switch = 0; + + dm_digtable.dig_state = DM_STA_DIG_MAX; + dm_digtable.dig_highpwr_state = DM_STA_DIG_MAX; + dm_digtable.CurSTAConnectState = dm_digtable.PreSTAConnectState = DIG_STA_DISCONNECT; + dm_digtable.CurAPConnectState = dm_digtable.PreAPConnectState = DIG_AP_DISCONNECT; + dm_digtable.initialgain_lowerbound_state = false; + + dm_digtable.rssi_low_thresh = DM_DIG_THRESH_LOW; + dm_digtable.rssi_high_thresh = DM_DIG_THRESH_HIGH; + + dm_digtable.FALowThresh = DM_FALSEALARM_THRESH_LOW; + dm_digtable.FAHighThresh = DM_FALSEALARM_THRESH_HIGH; + + dm_digtable.rssi_high_power_lowthresh = DM_DIG_HIGH_PWR_THRESH_LOW; + dm_digtable.rssi_high_power_highthresh = DM_DIG_HIGH_PWR_THRESH_HIGH; + + dm_digtable.rssi_val = 50; + dm_digtable.backoff_val = DM_DIG_BACKOFF; + dm_digtable.rx_gain_range_max = DM_DIG_MAX; + if(priv->CustomerID == RT_CID_819x_Netcore) + dm_digtable.rx_gain_range_min = DM_DIG_MIN_Netcore; + else + dm_digtable.rx_gain_range_min = DM_DIG_MIN; + + dm_digtable.BackoffVal_range_max = DM_DIG_BACKOFF_MAX; + dm_digtable.BackoffVal_range_min = DM_DIG_BACKOFF_MIN; +} + +void dm_FalseAlarmCounterStatistics(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 ret_value; + PFALSE_ALARM_STATISTICS FalseAlmCnt = &(priv->FalseAlmCnt); + + ret_value = rtl8192_QueryBBReg(dev, rOFDM_PHYCounter1, bMaskDWord); + FalseAlmCnt->Cnt_Parity_Fail = ((ret_value&0xffff0000)>>16); + + ret_value = rtl8192_QueryBBReg(dev, rOFDM_PHYCounter2, bMaskDWord); + FalseAlmCnt->Cnt_Rate_Illegal = (ret_value&0xffff); + FalseAlmCnt->Cnt_Crc8_fail = ((ret_value&0xffff0000)>>16); + ret_value = rtl8192_QueryBBReg(dev, rOFDM_PHYCounter3, bMaskDWord); + FalseAlmCnt->Cnt_Mcs_fail = (ret_value&0xffff); + + FalseAlmCnt->Cnt_Ofdm_fail = FalseAlmCnt->Cnt_Parity_Fail + FalseAlmCnt->Cnt_Rate_Illegal + + FalseAlmCnt->Cnt_Crc8_fail + FalseAlmCnt->Cnt_Mcs_fail; + + ret_value = rtl8192_QueryBBReg(dev, 0xc64, bMaskDWord); + FalseAlmCnt->Cnt_Cck_fail = (ret_value&0xffff); + FalseAlmCnt->Cnt_all = (FalseAlmCnt->Cnt_Parity_Fail + + FalseAlmCnt->Cnt_Rate_Illegal + + FalseAlmCnt->Cnt_Crc8_fail + + FalseAlmCnt->Cnt_Mcs_fail + + FalseAlmCnt->Cnt_Cck_fail); + + RT_TRACE(COMP_DIG, "Cnt_Ofdm_fail = %d, Cnt_Cck_fail = %d, Cnt_all = %d\n", + FalseAlmCnt->Cnt_Ofdm_fail, FalseAlmCnt->Cnt_Cck_fail , FalseAlmCnt->Cnt_all); +} + +#ifdef RTL8192SE +static void dm_CtrlInitGainAPByFalseAlarm(struct net_device *dev) +{ + static u8 binitialized = false; + + { + binitialized = false; + dm_digtable.Dig_Ext_Port_Stage = DIG_EXT_PORT_STAGE_MAX; + return; + } +} +#endif + +static void dm_ctrl_initgain_byrssi(struct net_device *dev) +{ + + if (dm_digtable.dig_enable_flag == false) + return; + + if(dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) + dm_ctrl_initgain_byrssi_by_fwfalse_alarm(dev); + else if(dm_digtable.dig_algorithm == DIG_ALGO_BY_RSSI) + dm_ctrl_initgain_byrssi_by_driverrssi(dev); +#ifdef RTL8192SE + else if(dm_digtable.dig_algorithm == DIG_ALGO_BEFORE_CONNECT_BY_RSSI_AND_ALARM) + dm_CtrlInitGainBeforeConnectByRssiAndFalseAlarm(dev); + else if(dm_digtable.dig_algorithm == DIG_ALGO_BY_TOW_PORT) + dm_CtrlInitGainByTwoPort(dev); +#endif + else + return; +} + +#ifdef RTL8192SE +static void dm_CtrlInitGainByTwoPort(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if(rtllib_act_scanning(priv->rtllib,true) == true) + return; + + if((priv->rtllib->state > RTLLIB_NOLINK) && (priv->rtllib->state < RTLLIB_LINKED)) + dm_digtable.CurSTAConnectState = DIG_STA_BEFORE_CONNECT; + else if((priv->rtllib->state == RTLLIB_LINKED) ||(priv->rtllib->state == RTLLIB_LINKED_SCANNING)) + dm_digtable.CurSTAConnectState = DIG_STA_CONNECT; + else + dm_digtable.CurSTAConnectState = DIG_STA_DISCONNECT; + + dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb; + + if(dm_digtable.CurSTAConnectState != DIG_STA_DISCONNECT) + { + if(dm_digtable.Dig_TwoPort_Algorithm == DIG_TWO_PORT_ALGO_FALSE_ALARM) + { + dm_digtable.Dig_TwoPort_Algorithm = DIG_TWO_PORT_ALGO_RSSI; + priv->rtllib->SetFwCmdHandler(dev, FW_CMD_DIG_MODE_SS); + } + } + + dm_FalseAlarmCounterStatistics(dev); + dm_initial_gain_STABeforeConnect(dev); + dm_CtrlInitGainAPByFalseAlarm(dev); + + dm_digtable.PreSTAConnectState = dm_digtable.CurSTAConnectState; +} +#endif + +/*----------------------------------------------------------------------------- + * Function: dm_CtrlInitGainBeforeConnectByRssiAndFalseAlarm() + * + * Overview: Driver monitor RSSI and False Alarm to change initial gain. + Only change initial gain during link in progress. + * + * Input: IN PADAPTER pAdapter + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 03/04/2009 hpfan Create Version 0. + * + *---------------------------------------------------------------------------*/ + +#ifdef RTL8192SE +static void dm_CtrlInitGainBeforeConnectByRssiAndFalseAlarm(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if(rtllib_act_scanning(priv->rtllib,true) == true) + return; + + if((priv->rtllib->state > RTLLIB_NOLINK) && (priv->rtllib->state < RTLLIB_LINKED)) + dm_digtable.CurSTAConnectState = DIG_STA_BEFORE_CONNECT; + else if((priv->rtllib->state == RTLLIB_LINKED) ||(priv->rtllib->state == RTLLIB_LINKED_SCANNING)) + dm_digtable.CurSTAConnectState = DIG_STA_CONNECT; + else + dm_digtable.CurSTAConnectState = DIG_STA_DISCONNECT; + + if(dm_digtable.dbg_mode == DM_DBG_OFF) + dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb; + + dm_FalseAlarmCounterStatistics(dev); + dm_initial_gain_STABeforeConnect(dev); + dm_digtable.PreSTAConnectState = dm_digtable.CurSTAConnectState; + +} +#endif +static void dm_ctrl_initgain_byrssi_by_driverrssi( + struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 i; + static u8 fw_dig=0; + + if (dm_digtable.dig_enable_flag == false) + return; + + if(dm_digtable.dig_algorithm_switch) + fw_dig = 0; + if(fw_dig <= 3) + { + for(i=0; i<3; i++) + rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8); + fw_dig++; + dm_digtable.dig_state = DM_STA_DIG_OFF; + } + + if(priv->rtllib->state == RTLLIB_LINKED) + dm_digtable.CurSTAConnectState = DIG_STA_CONNECT; + else + dm_digtable.CurSTAConnectState = DIG_STA_DISCONNECT; + + + if(dm_digtable.dbg_mode == DM_DBG_OFF) + dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb; + dm_initial_gain(dev); + dm_pd_th(dev); + dm_cs_ratio(dev); + if(dm_digtable.dig_algorithm_switch) + dm_digtable.dig_algorithm_switch = 0; + dm_digtable.PreSTAConnectState = dm_digtable.CurSTAConnectState; + +} + +static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm( + struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + static u32 reset_cnt = 0; + u8 i; + + if (dm_digtable.dig_enable_flag == false) + return; + + if(dm_digtable.dig_algorithm_switch) + { + dm_digtable.dig_state = DM_STA_DIG_MAX; + for(i=0; i<3; i++) + rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x1); + dm_digtable.dig_algorithm_switch = 0; + } + + if (priv->rtllib->state != RTLLIB_LINKED) + return; + + if ((priv->undecorated_smoothed_pwdb > dm_digtable.rssi_low_thresh) && + (priv->undecorated_smoothed_pwdb < dm_digtable.rssi_high_thresh)) + { + return; + } + if ((priv->undecorated_smoothed_pwdb <= dm_digtable.rssi_low_thresh)) + { + if (dm_digtable.dig_state == DM_STA_DIG_OFF && + (priv->reset_count == reset_cnt)) + { + return; + } + else + { + reset_cnt = priv->reset_count; + } + + dm_digtable.dig_highpwr_state = DM_STA_DIG_MAX; + dm_digtable.dig_state = DM_STA_DIG_OFF; + + rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8); + + write_nic_byte(dev, rOFDM0_XAAGCCore1, 0x17); + write_nic_byte(dev, rOFDM0_XBAGCCore1, 0x17); + write_nic_byte(dev, rOFDM0_XCAGCCore1, 0x17); + write_nic_byte(dev, rOFDM0_XDAGCCore1, 0x17); + + if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) + { + #ifdef RTL8190P + write_nic_byte(dev, rOFDM0_RxDetector1, 0x40); + #else + write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x00); + #endif + /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P) + write_nic_byte(pAdapter, rOFDM0_RxDetector1, 0x40); + */ + + + } + else + write_nic_byte(dev, rOFDM0_RxDetector1, 0x42); + + write_nic_byte(dev, 0xa0a, 0x08); + + return; + + } + + if ((priv->undecorated_smoothed_pwdb >= dm_digtable.rssi_high_thresh) ) + { + u8 reset_flag = 0; + + if (dm_digtable.dig_state == DM_STA_DIG_ON && + (priv->reset_count == reset_cnt)) + { + dm_ctrl_initgain_byrssi_highpwr(dev); + return; + } + else + { + if (priv->reset_count != reset_cnt) + reset_flag = 1; + + reset_cnt = priv->reset_count; + } + + dm_digtable.dig_state = DM_STA_DIG_ON; + + if (reset_flag == 1) + { + write_nic_byte(dev, rOFDM0_XAAGCCore1, 0x2c); + write_nic_byte(dev, rOFDM0_XBAGCCore1, 0x2c); + write_nic_byte(dev, rOFDM0_XCAGCCore1, 0x2c); + write_nic_byte(dev, rOFDM0_XDAGCCore1, 0x2c); + } + else + { + write_nic_byte(dev, rOFDM0_XAAGCCore1, 0x20); + write_nic_byte(dev, rOFDM0_XBAGCCore1, 0x20); + write_nic_byte(dev, rOFDM0_XCAGCCore1, 0x20); + write_nic_byte(dev, rOFDM0_XDAGCCore1, 0x20); + } + + if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) + { + #ifdef RTL8190P + write_nic_byte(dev, rOFDM0_RxDetector1, 0x42); + #else + write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x20); + #endif + /* + else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P) + write_nic_byte(dev, rOFDM0_RxDetector1, 0x42); + */ + + } + else + write_nic_byte(dev, rOFDM0_RxDetector1, 0x44); + + write_nic_byte(dev, 0xa0a, 0xcd); + + + rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x1); + + } + + dm_ctrl_initgain_byrssi_highpwr(dev); + +} + + +static void dm_ctrl_initgain_byrssi_highpwr( + struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + static u32 reset_cnt_highpwr = 0; + + if ((priv->undecorated_smoothed_pwdb > dm_digtable.rssi_high_power_lowthresh) && + (priv->undecorated_smoothed_pwdb < dm_digtable.rssi_high_power_highthresh)) + { + return; + } + + if (priv->undecorated_smoothed_pwdb >= dm_digtable.rssi_high_power_highthresh) + { + if (dm_digtable.dig_highpwr_state == DM_STA_DIG_ON && + (priv->reset_count == reset_cnt_highpwr)) + return; + else + dm_digtable.dig_highpwr_state = DM_STA_DIG_ON; + + if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) + { + #ifdef RTL8190P + write_nic_byte(dev, rOFDM0_RxDetector1, 0x41); + #else + write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x10); + #endif + + /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P) + write_nic_byte(dev, rOFDM0_RxDetector1, 0x41); + */ + + } + else + write_nic_byte(dev, rOFDM0_RxDetector1, 0x43); + } + else + { + if (dm_digtable.dig_highpwr_state == DM_STA_DIG_OFF&& + (priv->reset_count == reset_cnt_highpwr)) + return; + else + dm_digtable.dig_highpwr_state = DM_STA_DIG_OFF; + + if (priv->undecorated_smoothed_pwdb < dm_digtable.rssi_high_power_lowthresh && + priv->undecorated_smoothed_pwdb >= dm_digtable.rssi_high_thresh) + { + if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) + { + #ifdef RTL8190P + write_nic_byte(dev, rOFDM0_RxDetector1, 0x42); + #else + write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x20); + #endif + /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P) + write_nic_byte(dev, rOFDM0_RxDetector1, 0x42); + */ + + } + else + write_nic_byte(dev, rOFDM0_RxDetector1, 0x44); + } + } + + reset_cnt_highpwr = priv->reset_count; + +} + + +static void dm_initial_gain( + struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 initial_gain=0; + static u8 initialized=0, force_write=0; + static u32 reset_cnt=0; + + if(dm_digtable.dig_algorithm_switch) + { + initialized = 0; + reset_cnt = 0; + } + + if(rtllib_act_scanning(priv->rtllib,true) == true) + { + force_write = 1; + return; + } + + if(dm_digtable.PreSTAConnectState == dm_digtable.CurSTAConnectState) + { + if(dm_digtable.CurSTAConnectState == DIG_STA_CONNECT) + { + if((dm_digtable.rssi_val+10-dm_digtable.backoff_val) > dm_digtable.rx_gain_range_max) + dm_digtable.cur_ig_value = dm_digtable.rx_gain_range_max; + else if((dm_digtable.rssi_val+10-dm_digtable.backoff_val) < dm_digtable.rx_gain_range_min) + dm_digtable.cur_ig_value = dm_digtable.rx_gain_range_min; + else + dm_digtable.cur_ig_value = dm_digtable.rssi_val+10-dm_digtable.backoff_val; + } + else + { + if(dm_digtable.cur_ig_value == 0) + dm_digtable.cur_ig_value = priv->DefaultInitialGain[0]; + else + dm_digtable.cur_ig_value = dm_digtable.pre_ig_value; + } + } + else + { + dm_digtable.cur_ig_value = priv->DefaultInitialGain[0]; + dm_digtable.pre_ig_value = 0; + } + + if(priv->reset_count != reset_cnt) + { + force_write = 1; + reset_cnt = priv->reset_count; + } + + if(dm_digtable.pre_ig_value != read_nic_byte(dev, rOFDM0_XAAGCCore1)) + force_write = 1; + + { + if((dm_digtable.pre_ig_value != dm_digtable.cur_ig_value) + || !initialized || force_write) + { + initial_gain = (u8)dm_digtable.cur_ig_value; + write_nic_byte(dev, rOFDM0_XAAGCCore1, initial_gain); + write_nic_byte(dev, rOFDM0_XBAGCCore1, initial_gain); + write_nic_byte(dev, rOFDM0_XCAGCCore1, initial_gain); + write_nic_byte(dev, rOFDM0_XDAGCCore1, initial_gain); + dm_digtable.pre_ig_value = dm_digtable.cur_ig_value; + initialized = 1; + force_write = 0; + } + } +} + +void dm_initial_gain_STABeforeConnect( + struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 initial_gain=0; + static u8 initialized=0, force_write=0; + + RT_TRACE(COMP_DIG, "PreSTAConnectState = %x, CurSTAConnectState = %x\n", + dm_digtable.PreSTAConnectState, dm_digtable.CurSTAConnectState); + + + if((dm_digtable.PreSTAConnectState == dm_digtable.CurSTAConnectState) || + (dm_digtable.CurSTAConnectState == DIG_STA_BEFORE_CONNECT)) + { + if(dm_digtable.CurSTAConnectState == DIG_STA_BEFORE_CONNECT) + { + if(priv->rtllib->eRFPowerState != eRfOn) + return; + + if(dm_digtable.Backoff_Enable_Flag == true) + { + if(priv->FalseAlmCnt.Cnt_all > dm_digtable.FAHighThresh) + { + if((dm_digtable.backoff_val -6) < dm_digtable.BackoffVal_range_min) + dm_digtable.backoff_val = dm_digtable.BackoffVal_range_min; + else + dm_digtable.backoff_val -= 6; + } + else if(priv->FalseAlmCnt.Cnt_all < dm_digtable.FALowThresh) + { + if((dm_digtable.backoff_val+6) > dm_digtable.BackoffVal_range_max) + dm_digtable.backoff_val = dm_digtable.BackoffVal_range_max; + else + dm_digtable.backoff_val +=6; + } + } + else + dm_digtable.backoff_val =DM_DIG_BACKOFF; + + if((dm_digtable.rssi_val+10-dm_digtable.backoff_val) > dm_digtable.rx_gain_range_max) + dm_digtable.cur_ig_value = dm_digtable.rx_gain_range_max; + else if((dm_digtable.rssi_val+10-dm_digtable.backoff_val) < dm_digtable.rx_gain_range_min) + dm_digtable.cur_ig_value = dm_digtable.rx_gain_range_min; + else + dm_digtable.cur_ig_value = dm_digtable.rssi_val+10-dm_digtable.backoff_val; + + if(priv->FalseAlmCnt.Cnt_all > 10000) + dm_digtable.cur_ig_value = (dm_digtable.cur_ig_value>0x33)?dm_digtable.cur_ig_value:0x33; + + if(priv->FalseAlmCnt.Cnt_all > 16000) + dm_digtable.cur_ig_value = dm_digtable.rx_gain_range_max; + + } + else + { + return; + } + } + else + { + dm_digtable.Dig_Ext_Port_Stage = DIG_EXT_PORT_STAGE_MAX; + priv->rtllib->SetFwCmdHandler(dev, FW_CMD_DIG_ENABLE); + + dm_digtable.backoff_val = DM_DIG_BACKOFF; + dm_digtable.cur_ig_value = priv->DefaultInitialGain[0]; + dm_digtable.pre_ig_value = 0; + return; + } + + if(dm_digtable.pre_ig_value != rtl8192_QueryBBReg(dev, rOFDM0_XAAGCCore1, bMaskByte0)) + force_write = 1; + + if((dm_digtable.pre_ig_value != dm_digtable.cur_ig_value) || !initialized || force_write) + { + priv->rtllib->SetFwCmdHandler(dev, FW_CMD_DIG_DISABLE); + + initial_gain = (u8)dm_digtable.cur_ig_value; + + rtl8192_setBBreg(dev, rOFDM0_XAAGCCore1, bMaskByte0, initial_gain); + rtl8192_setBBreg(dev, rOFDM0_XBAGCCore1, bMaskByte0, initial_gain); + dm_digtable.pre_ig_value = dm_digtable.cur_ig_value; + initialized = 1; + force_write = 0; + } + + RT_TRACE(COMP_DIG, "CurIGValue = 0x%x, pre_ig_value = 0x%x, backoff_val = %d\n", + dm_digtable.cur_ig_value, dm_digtable.pre_ig_value, dm_digtable.backoff_val); + +} + +static void dm_pd_th( + struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + static u8 initialized=0, force_write=0; + static u32 reset_cnt = 0; + + if(dm_digtable.dig_algorithm_switch) + { + initialized = 0; + reset_cnt = 0; + } + + if(dm_digtable.PreSTAConnectState == dm_digtable.CurSTAConnectState) + { + if(dm_digtable.CurSTAConnectState == DIG_STA_CONNECT) + { + if (dm_digtable.rssi_val >= dm_digtable.rssi_high_power_highthresh) + dm_digtable.curpd_thstate = DIG_PD_AT_HIGH_POWER; + else if ((dm_digtable.rssi_val <= dm_digtable.rssi_low_thresh)) + dm_digtable.curpd_thstate = DIG_PD_AT_LOW_POWER; + else if ((dm_digtable.rssi_val >= dm_digtable.rssi_high_thresh) && + (dm_digtable.rssi_val < dm_digtable.rssi_high_power_lowthresh)) + dm_digtable.curpd_thstate = DIG_PD_AT_NORMAL_POWER; + else + dm_digtable.curpd_thstate = dm_digtable.prepd_thstate; + } + else + { + dm_digtable.curpd_thstate = DIG_PD_AT_LOW_POWER; + } + } + else + { + dm_digtable.curpd_thstate = DIG_PD_AT_LOW_POWER; + } + + if(priv->reset_count != reset_cnt) + { + force_write = 1; + reset_cnt = priv->reset_count; + } + + { + if((dm_digtable.prepd_thstate != dm_digtable.curpd_thstate) || + (initialized<=3) || force_write) + { + if(dm_digtable.curpd_thstate == DIG_PD_AT_LOW_POWER) + { + if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) + { + #ifdef RTL8190P + write_nic_byte(dev, rOFDM0_RxDetector1, 0x40); + #else + write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x00); + #endif + /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P) + write_nic_byte(dev, rOFDM0_RxDetector1, 0x40); + */ + } + else + write_nic_byte(dev, rOFDM0_RxDetector1, 0x42); + } + else if(dm_digtable.curpd_thstate == DIG_PD_AT_NORMAL_POWER) + { + if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) + { + #ifdef RTL8190P + write_nic_byte(dev, rOFDM0_RxDetector1, 0x42); + #else + write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x20); + #endif + /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P) + write_nic_byte(dev, rOFDM0_RxDetector1, 0x42); + */ + } + else + write_nic_byte(dev, rOFDM0_RxDetector1, 0x44); + } + else if(dm_digtable.curpd_thstate == DIG_PD_AT_HIGH_POWER) + { + if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) + { + #ifdef RTL8190P + write_nic_byte(dev, rOFDM0_RxDetector1, 0x41); + #else + write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x10); + #endif + /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P) + write_nic_byte(dev, rOFDM0_RxDetector1, 0x41); + */ + } + else + write_nic_byte(dev, rOFDM0_RxDetector1, 0x43); + } + dm_digtable.prepd_thstate = dm_digtable.curpd_thstate; + if(initialized <= 3) + initialized++; + force_write = 0; + } + } +} + +static void dm_cs_ratio( + struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + static u8 initialized=0,force_write=0; + static u32 reset_cnt = 0; + + if(dm_digtable.dig_algorithm_switch) + { + initialized = 0; + reset_cnt = 0; + } + + if(dm_digtable.PreSTAConnectState == dm_digtable.CurSTAConnectState) + { + if(dm_digtable.CurSTAConnectState == DIG_STA_CONNECT) + { + if ((dm_digtable.rssi_val <= dm_digtable.rssi_low_thresh)) + dm_digtable.curcs_ratio_state = DIG_CS_RATIO_LOWER; + else if ((dm_digtable.rssi_val >= dm_digtable.rssi_high_thresh) ) + dm_digtable.curcs_ratio_state = DIG_CS_RATIO_HIGHER; + else + dm_digtable.curcs_ratio_state = dm_digtable.precs_ratio_state; + } + else + { + dm_digtable.curcs_ratio_state = DIG_CS_RATIO_LOWER; + } + } + else + { + dm_digtable.curcs_ratio_state = DIG_CS_RATIO_LOWER; + } + + if(priv->reset_count != reset_cnt) + { + force_write = 1; + reset_cnt = priv->reset_count; + } + + + { + if((dm_digtable.precs_ratio_state != dm_digtable.curcs_ratio_state) || + !initialized || force_write) + { + if(dm_digtable.curcs_ratio_state == DIG_CS_RATIO_LOWER) + { + write_nic_byte(dev, 0xa0a, 0x08); + } + else if(dm_digtable.curcs_ratio_state == DIG_CS_RATIO_HIGHER) + { + write_nic_byte(dev, 0xa0a, 0xcd); + } + dm_digtable.precs_ratio_state = dm_digtable.curcs_ratio_state; + initialized = 1; + force_write = 0; + } + } +} + +extern void dm_init_edca_turbo(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + priv->bcurrent_turbo_EDCA = false; + priv->rtllib->bis_any_nonbepkts = false; + priv->bis_cur_rdlstate = false; +} + +#if 1 +static void dm_check_edca_turbo( + struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo; + + static unsigned long lastTxOkCnt = 0; + static unsigned long lastRxOkCnt = 0; + unsigned long curTxOkCnt = 0; + unsigned long curRxOkCnt = 0; + + if(priv->rtllib->iw_mode == IW_MODE_ADHOC) + { + goto dm_CheckEdcaTurbo_EXIT; + } + if(priv->rtllib->state != RTLLIB_LINKED) + { + goto dm_CheckEdcaTurbo_EXIT; + } + if(priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_EDCA_TURBO) + { + goto dm_CheckEdcaTurbo_EXIT; + } + + { + u8* peername[11] = {"unknown", "realtek_90", "realtek_92se","broadcom", "ralink", "atheros", "cisco", "marvell", "92u_softap", "self_softap"}; + static int wb_tmp = 0; + if (wb_tmp == 0){ + printk("%s():iot peer is %s, bssid:"MAC_FMT"\n",__FUNCTION__,peername[pHTInfo->IOTPeer], MAC_ARG(priv->rtllib->current_network.bssid)); + wb_tmp = 1; + } + } + if(!priv->rtllib->bis_any_nonbepkts) + { + curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt; + curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt; + if(pHTInfo->IOTAction & HT_IOT_ACT_EDCA_BIAS_ON_RX) + { + if(curTxOkCnt > 4*curRxOkCnt) + { + if(priv->bis_cur_rdlstate || !priv->bcurrent_turbo_EDCA) + { + write_nic_dword(dev, EDCAPARA_BE, edca_setting_UL[pHTInfo->IOTPeer]); + priv->bis_cur_rdlstate = false; + } + } + else + { + if(!priv->bis_cur_rdlstate || !priv->bcurrent_turbo_EDCA) + { + if(priv->rtllib->mode == WIRELESS_MODE_G) + write_nic_dword(dev, EDCAPARA_BE, edca_setting_DL_GMode[pHTInfo->IOTPeer]); + else + write_nic_dword(dev, EDCAPARA_BE, edca_setting_DL[pHTInfo->IOTPeer]); + priv->bis_cur_rdlstate = true; + } + } + priv->bcurrent_turbo_EDCA = true; + } + else + { + if(curRxOkCnt > 4*curTxOkCnt) + { + if(!priv->bis_cur_rdlstate || !priv->bcurrent_turbo_EDCA) + { + if(priv->rtllib->mode == WIRELESS_MODE_G) + write_nic_dword(dev, EDCAPARA_BE, edca_setting_DL_GMode[pHTInfo->IOTPeer]); + else + write_nic_dword(dev, EDCAPARA_BE, edca_setting_DL[pHTInfo->IOTPeer]); + priv->bis_cur_rdlstate = true; + } + } + else + { + if(priv->bis_cur_rdlstate || !priv->bcurrent_turbo_EDCA) + { + write_nic_dword(dev, EDCAPARA_BE, edca_setting_UL[pHTInfo->IOTPeer]); + priv->bis_cur_rdlstate = false; + } + + } + + priv->bcurrent_turbo_EDCA = true; + } + } + else + { + if(priv->bcurrent_turbo_EDCA) + { + +#if 0 + { + u8 u1bAIFS; + u32 u4bAcParam; + struct rtllib_qos_parameters *qos_parameters = &priv->rtllib->current_network.qos_data.parameters; + u8 mode = priv->rtllib->mode; + + dm_init_edca_turbo(dev); + u1bAIFS = qos_parameters->aifs[0] * ((mode&(IEEE_G|IEEE_N_24G)) ?9:20) + aSifsTime; + u4bAcParam = ((((u32)(qos_parameters->tx_op_limit[0]))<< AC_PARAM_TXOP_LIMIT_OFFSET)| + (((u32)(qos_parameters->cw_max[0]))<< AC_PARAM_ECW_MAX_OFFSET)| + (((u32)(qos_parameters->cw_min[0]))<< AC_PARAM_ECW_MIN_OFFSET)| + ((u32)u1bAIFS << AC_PARAM_AIFS_OFFSET)); + write_nic_dword(dev, EDCAPARA_BE, u4bAcParam); + + { + + PACI_AIFSN pAciAifsn = (PACI_AIFSN)&(qos_parameters->aifs[0]); + u8 AcmCtrl = read_nic_byte( dev, AcmHwCtrl ); + if( pAciAifsn->f.ACM ) + { + AcmCtrl |= AcmHw_BeqEn; + } + else + { + AcmCtrl &= (~AcmHw_BeqEn); + } + + RT_TRACE( COMP_QOS,"SetHwReg8190pci(): [HW_VAR_ACM_CTRL] Write 0x%X\n", AcmCtrl ) ; + write_nic_byte(dev, AcmHwCtrl, AcmCtrl ); + } + } +#else + u8 tmp = AC0_BE; + priv->rtllib->SetHwRegHandler(dev, HW_VAR_AC_PARAM, (u8*)(&tmp) ); +#endif + priv->bcurrent_turbo_EDCA = false; + } + } + + +dm_CheckEdcaTurbo_EXIT: + priv->rtllib->bis_any_nonbepkts = false; + lastTxOkCnt = priv->stats.txbytesunicast; + lastRxOkCnt = priv->stats.rxbytesunicast; +} +#endif + +extern void DM_CTSToSelfSetting(struct net_device * dev,u32 DM_Type, u32 DM_Value) +{ + struct r8192_priv *priv = rtllib_priv((struct net_device *)dev); + + if (DM_Type == 0) + { + if(DM_Value > 1) + DM_Value = 1; + priv->rtllib->bCTSToSelfEnable = (bool)DM_Value; + } + else if(DM_Type == 1) + { + if(DM_Value >= 50) + DM_Value = 50; + priv->rtllib->CTSToSelfTH = (u8)DM_Value; + } +} + +static void dm_init_ctstoself(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv((struct net_device *)dev); + + priv->rtllib->bCTSToSelfEnable = true; + priv->rtllib->CTSToSelfTH = CTSToSelfTHVal; +} + +static void dm_ctstoself(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv((struct net_device *)dev); + PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo; + static unsigned long lastTxOkCnt = 0; + static unsigned long lastRxOkCnt = 0; + unsigned long curTxOkCnt = 0; + unsigned long curRxOkCnt = 0; + + if(priv->rtllib->bCTSToSelfEnable != true) + { + pHTInfo->IOTAction &= ~HT_IOT_ACT_FORCED_CTS2SELF; + return; + } + if(pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM) + { + curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt; + curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt; + if(curRxOkCnt > 4*curTxOkCnt) + { + pHTInfo->IOTAction &= ~HT_IOT_ACT_FORCED_CTS2SELF; + } + else + { + #if 1 + pHTInfo->IOTAction |= HT_IOT_ACT_FORCED_CTS2SELF; + #else + if(priv->undecorated_smoothed_pwdb < priv->rtllib->CTSToSelfTH) + { + pHTInfo->IOTAction &= ~HT_IOT_ACT_FORCED_CTS2SELF; + } + else if(priv->undecorated_smoothed_pwdb >= (priv->rtllib->CTSToSelfTH+5)) + { + pHTInfo->IOTAction |= HT_IOT_ACT_FORCED_CTS2SELF; + } + #endif + } + + lastTxOkCnt = priv->stats.txbytesunicast; + lastRxOkCnt = priv->stats.rxbytesunicast; + } +} + + +static void +dm_Init_WA_Broadcom_IOT(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv((struct net_device *)dev); + PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo; + + pHTInfo->bWAIotBroadcom = false; + pHTInfo->WAIotTH = WAIotTHVal; +} + +#ifdef RTL8192SE +static void +dm_WA_Broadcom_IOT(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv((struct net_device *)dev); + PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo; + u8 update=0; + static enum rtllib_state connectState = RTLLIB_NOLINK; + + if( (pHTInfo->bWAIotBroadcom != true) || + (priv->rtllib->mode == WIRELESS_MODE_B) || + (pHTInfo->bCurBW40MHz)) + { + if(pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) + { + pHTInfo->IOTAction &= ~HT_IOT_ACT_WA_IOT_Broadcom; + update = 1; + printk(" dm_WA_Broadcom_IOT(), disable HT_IOT_ACT_WA_IOT_Broadcom\n"); + } + else + return; + } + + if(connectState == RTLLIB_LINKED && priv->rtllib->state == RTLLIB_LINKED) + { + if(pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) + { + pHTInfo->IOTAction &= ~HT_IOT_ACT_WA_IOT_Broadcom; + update = 1; + pHTInfo->bWAIotBroadcom = false; + printk("dm_WA_Broadcom_IOT(), from connect to disconnected, disable HT_IOT_ACT_WA_IOT_Broadcom\n"); + } + } + connectState = priv->rtllib->state; + + if(!update && pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM) + { + if(priv->undecorated_smoothed_pwdb < pHTInfo->WAIotTH) + { + if(pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) + { + pHTInfo->IOTAction &= ~HT_IOT_ACT_WA_IOT_Broadcom; + update = 1; + printk("dm_WA_Broadcom_IOT() ==> WA_IOT enable cck rates\n"); + } + } + else if(priv->undecorated_smoothed_pwdb >= (priv->rtllib->CTSToSelfTH+5)) + { + if((pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) == 0) + { + pHTInfo->IOTAction |= HT_IOT_ACT_WA_IOT_Broadcom; + update = 1; + printk("dm_WA_Broadcom_IOT() ==> WA_IOT disable cck rates\n"); + } + } + } + + if(update){ + if(priv->rtllib->bUseRAMask){ + priv->rtllib->UpdateHalRAMaskHandler( + dev, + false, + 0, + priv->rtllib->pHTInfo->PeerMimoPs, + priv->rtllib->mode, + priv->rtllib->pHTInfo->bCurTxBW40MHz, + 0); + }else{ + priv->ops->update_ratr_table(dev, priv->rtllib->dot11HTOperationalRateSet, NULL); + } + priv->rtllib->SetHwRegHandler( dev, HW_VAR_BASIC_RATE, (u8*)(&priv->basic_rate)); + } +} +#endif + + +#if 0 +extern void dm_rf_operation_test_callback(unsigned long dev) +{ + u8 erfpath; + + + for(erfpath=0; erfpath<4; erfpath++) + { + udelay(100); + } + + { + } + + { +#if 0 + for(i=0; i<50; i++) + { + PHY_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4d); + PHY_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4f); + PHY_SetRFReg(dev, RF90_PATH_C, 0x02, bMask12Bits, 0x4d); + PHY_SetRFReg(dev, RF90_PATH_C, 0x02, bMask12Bits, 0x4f); + +#if 0 + PHY_QueryRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits); + PHY_QueryRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits); + PHY_QueryRFReg(dev, RF90_PATH_A, 0x12, bMask12Bits); + PHY_QueryRFReg(dev, RF90_PATH_A, 0x12, bMask12Bits); + PHY_QueryRFReg(dev, RF90_PATH_A, 0x21, bMask12Bits); + PHY_QueryRFReg(dev, RF90_PATH_A, 0x21, bMask12Bits); +#endif + } +#endif + } + +} +#endif + +#if 0 +static void dm_check_rfctrl_gpio(struct net_device * dev) +{ +#ifdef RTL8192E + struct r8192_priv *priv = rtllib_priv(dev); +#endif + + +#ifdef RTL8190P + return; +#endif +#ifdef RTL8192U + return; +#endif +#ifdef RTL8192E + queue_delayed_work_rsl(priv->priv_wq,&priv->gpio_change_rf_wq,0); +#endif + +} + +#endif +static void dm_check_pbc_gpio(struct net_device *dev) +{ +#ifdef RTL8192U + struct r8192_priv *priv = rtllib_priv(dev); + u8 tmp1byte; + + + tmp1byte = read_nic_byte(dev,GPI); + if(tmp1byte == 0xff) + return; + + if (tmp1byte&BIT6 || tmp1byte&BIT0) + { + RT_TRACE(COMP_IO, "CheckPbcGPIO - PBC is pressed\n"); + priv->bpbc_pressed = true; + } +#endif + +} + +#ifdef RTL8192E + +extern void dm_CheckRfCtrlGPIO(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,gpio_change_rf_wq); + struct net_device *dev = priv->rtllib->dev; +#else + struct r8192_priv *priv = rtllib_priv((struct net_device *)data); + struct net_device *dev = priv->rtllib->dev; +#endif + u8 tmp1byte; + RT_RF_POWER_STATE eRfPowerStateToSet; + bool bActuallySet = false; + + char *argv[3]; + static char *RadioPowerPath = "/etc/realtek/RadioPower.sh"; + static char *envp[] = {"HOME=/", "TERM=linux", "PATH=/usr/bin:/bin", NULL}; + + bActuallySet=false; + + if((priv->up_first_time == 1) || (priv->being_init_adapter)) + { + return; + } + + if(priv->bfirst_after_down){ + priv->bfirst_after_down = 1; + return; + } + + + + { + tmp1byte = read_nic_byte(dev,GPI); + + eRfPowerStateToSet = (tmp1byte&BIT1) ? eRfOn : eRfOff; + + if( (priv->bHwRadioOff == true) && (eRfPowerStateToSet == eRfOn)) + { + RT_TRACE(COMP_RF, "gpiochangeRF - HW Radio ON\n"); + printk("gpiochangeRF - HW Radio ON\n"); + priv->bHwRadioOff = false; + bActuallySet = true; + } + else if ( (priv->bHwRadioOff == false) && (eRfPowerStateToSet == eRfOff)) + { + RT_TRACE(COMP_RF, "gpiochangeRF - HW Radio OFF\n"); + printk("gpiochangeRF - HW Radio OFF\n"); + priv->bHwRadioOff = true; + bActuallySet = true; + } + + if(bActuallySet) + { + mdelay(1000); + priv->bHwRfOffAction = 1; + MgntActSet_RF_State(dev, eRfPowerStateToSet, RF_CHANGE_BY_HW,true); + { + if(priv->bHwRadioOff == true) + argv[1] = "RFOFF"; + else + argv[1] = "RFON"; + + argv[0] = RadioPowerPath; + argv[2] = NULL; + call_usermodehelper(RadioPowerPath,argv,envp,1); + } + + } +#if 0 + else + { + msleep(2000); + } +#endif + + } + +} +#elif defined RTL8192SE +extern void Power_DomainInit92SE(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 tmpU1b; + u16 tmpU2b; + + + + priv->PwrDomainProtect = true; + + tmpU1b = read_nic_byte(dev, (SYS_CLKR + 1)); + if(tmpU1b & BIT7) + { + tmpU1b &= ~(BIT6 | BIT7); + if(!HalSetSysClk8192SE(dev, tmpU1b)){ + priv->PwrDomainProtect = false; + return; + } + } + + write_nic_byte(dev, AFE_PLL_CTRL, 0x0); + write_nic_byte(dev, LDOA15_CTRL, 0x34); + +#if 0 + tmpU2b = read_nic_word(dev, SYS_CLKR); + if (tmpU2b & BIT15) + { + tmpU2b &= ~(BIT14|BIT15); + RT_TRACE(COMP_INIT, DBG_LOUD, ("Return to HW CTRL\n")); + write_nic_word(dev, SYS_CLKR, tmpU2b); + } + udelay(200); +#endif + + tmpU1b = read_nic_byte(dev, SYS_FUNC_EN+1); + if (priv->rtllib->RfOffReason & (RF_CHANGE_BY_IPS | RF_CHANGE_BY_HW)) { + tmpU1b &= 0xFB; + } else { + tmpU1b &= 0x73; + } + + write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b); + udelay(1000); + + write_nic_byte(dev, CMDR, 0); + write_nic_byte(dev, TCR, 0); + + tmpU1b = read_nic_byte(dev, 0x562); + tmpU1b |= 0x08; + write_nic_byte(dev, 0x562, tmpU1b); + tmpU1b &= ~(BIT3); + write_nic_byte(dev, 0x562, tmpU1b); + + tmpU1b = read_nic_byte(dev, AFE_XTAL_CTRL); + write_nic_byte(dev, AFE_XTAL_CTRL, (tmpU1b|0x01)); + udelay(1500); + tmpU1b = read_nic_byte(dev, AFE_XTAL_CTRL+1); + write_nic_byte(dev, AFE_XTAL_CTRL+1, (tmpU1b&0xfb)); + + + tmpU1b = read_nic_byte(dev, AFE_MISC); + write_nic_byte(dev, AFE_MISC, (tmpU1b|BIT0)); + udelay(1000); + + tmpU1b = read_nic_byte(dev, AFE_MISC); + write_nic_byte(dev, AFE_MISC, (tmpU1b|0x02)); + udelay(1000); + + tmpU1b = read_nic_byte(dev, LDOA15_CTRL); + write_nic_byte(dev, LDOA15_CTRL, (tmpU1b|BIT0)); + + tmpU2b = read_nic_word(dev, SYS_ISO_CTRL); + write_nic_word(dev, SYS_ISO_CTRL, (tmpU2b|BIT11)); + + + tmpU2b = read_nic_word(dev, SYS_FUNC_EN); + write_nic_word(dev, SYS_FUNC_EN, (tmpU2b |BIT13)); + + write_nic_byte(dev, SYS_ISO_CTRL+1, 0x68); + + tmpU1b = read_nic_byte(dev, AFE_PLL_CTRL); + write_nic_byte(dev, AFE_PLL_CTRL, (tmpU1b|BIT0|BIT4)); + tmpU1b = read_nic_byte(dev, AFE_PLL_CTRL+1); + write_nic_byte(dev, AFE_PLL_CTRL+1, (tmpU1b|BIT0)); + udelay(1000); + + write_nic_byte(dev, SYS_ISO_CTRL, 0xA6); + + tmpU2b = read_nic_word(dev, SYS_CLKR); + write_nic_word(dev, SYS_CLKR, (tmpU2b|BIT12|BIT11)); + + tmpU2b = read_nic_word(dev, SYS_FUNC_EN); + write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|BIT11)); + write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|BIT11|BIT15)); + + tmpU2b = read_nic_word(dev, SYS_CLKR); + write_nic_word(dev, SYS_CLKR, (tmpU2b&(~BIT2))); + + tmpU1b = read_nic_byte(dev, (SYS_CLKR + 1)); + tmpU1b = ((tmpU1b | BIT7) & (~BIT6)); + if(!HalSetSysClk8192SE(dev, tmpU1b)) + { + priv->PwrDomainProtect = false; + return; + } +#if 0 + tmpU2b = read_nic_word(dev, SYS_CLKR); + write_nic_word(dev, SYS_CLKR, ((tmpU2b|BIT15)&(~BIT14))); +#endif + + write_nic_word(dev, CMDR, 0x37FC); + + gen_RefreshLedState(dev); + + priv->PwrDomainProtect = false; + +} + +void SET_RTL8192SE_RF_HALT(struct net_device *dev) +{ + u8 u1bTmp; + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->rtllib->RfOffReason == RF_CHANGE_BY_IPS && priv->LedStrategy == SW_LED_MODE8) + { + SET_RTL8192SE_RF_SLEEP(dev); + return; + } + + u1bTmp = read_nic_byte(dev, LDOV12D_CTRL); + u1bTmp |= BIT0; + write_nic_byte(dev, LDOV12D_CTRL, u1bTmp); + write_nic_byte(dev, SPS1_CTRL, 0x0); + write_nic_byte(dev, TXPAUSE, 0xFF); + write_nic_word(dev, CMDR, 0x57FC); + udelay(100); + write_nic_word(dev, CMDR, 0x77FC); + write_nic_byte(dev, PHY_CCA, 0x0); + udelay(10); + write_nic_word(dev, CMDR, 0x37FC); + udelay(10); + write_nic_word(dev, CMDR, 0x77FC); + udelay(10); + write_nic_word(dev, CMDR, 0x57FC); + write_nic_word(dev, CMDR, 0x0000); + u1bTmp = read_nic_byte(dev, (SYS_CLKR + 1)); + if(u1bTmp & BIT7) + { + u1bTmp &= ~(BIT6 | BIT7); + if(!HalSetSysClk8192SE(dev, u1bTmp)) + return; + } + if(priv->rtllib->RfOffReason==RF_CHANGE_BY_IPS ) + { + write_nic_byte(dev, 0x03, 0xF9); + } + else + { + write_nic_byte(dev, 0x03, 0x71); + } + write_nic_byte(dev, SYS_CLKR+1, 0x70); + write_nic_byte(dev, AFE_PLL_CTRL+1, 0x68); + write_nic_byte(dev, AFE_PLL_CTRL, 0x00); + write_nic_byte(dev, LDOA15_CTRL, 0x34); + write_nic_byte(dev, AFE_XTAL_CTRL, 0x0E); + +} + +u8 RfOnOffDetect(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 u1Tmp; + u8 retval=eRfOn; + + if(priv->pwrdown) + { + u1Tmp = read_nic_byte(dev, 0x06); + printk("pwrdown, 0x6(BIT6)=%02x\n", u1Tmp); + retval = (u1Tmp & BIT6) ? eRfOn: eRfOff; + } + else + { +#ifdef CONFIG_BT_COEXIST + if(pHalData->bt_coexist.BluetoothCoexist) + { + if(pHalData->bt_coexist.BT_CoexistType == BT_2Wire) + { + PlatformEFIOWrite1Byte(pAdapter, MAC_PINMUX_CFG, 0xa); + u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IO_SEL); + delay_us(100); + u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IN); + RTPRINT(FPWR, PWRHW, ("GPIO_IN=%02x\n", u1Tmp)); + retval = (u1Tmp & HAL_8192S_HW_GPIO_OFF_BIT) ? eRfOn : eRfOff; + } + else if( (pHalData->bt_coexist.BT_CoexistType == BT_ISSC_3Wire) || + (pHalData->bt_coexist.BT_CoexistType == BT_Accel) || + (pHalData->bt_coexist.BT_CoexistType == BT_CSR) ) + { + u4tmp = PHY_QueryBBReg(pAdapter, 0x87c, bMaskDWord); + if((u4tmp & BIT17) != 0) + { + PHY_SetBBReg(pAdapter, 0x87c, bMaskDWord, u4tmp & ~BIT17); + delay_us(50); + RTPRINT(FBT, BT_RFPoll, ("BT write 0x87c (~BIT17) = 0x%x\n", u4tmp &~BIT17)); + } + u4tmp = PHY_QueryBBReg(pAdapter, 0x8e0, bMaskDWord); + RTPRINT(FBT, BT_RFPoll, ("BT read 0x8e0 (BIT24)= 0x%x\n", u4tmp)); + retval = (u4tmp & BIT24) ? eRfOn : eRfOff; + RTPRINT(FBT, BT_RFPoll, ("BT check RF state to %s\n", (retval==eRfOn)? "ON":"OFF")); + } + } + else +#endif + { + write_nic_byte(dev, MAC_PINMUX_CFG, (GPIOMUX_EN | GPIOSEL_GPIO)); + u1Tmp = read_nic_byte(dev, GPIO_IO_SEL); + + u1Tmp &= HAL_8192S_HW_GPIO_OFF_MASK; + write_nic_byte(dev, GPIO_IO_SEL, u1Tmp); + + mdelay(10); + + u1Tmp = read_nic_byte(dev, GPIO_IN); + retval = (u1Tmp & HAL_8192S_HW_GPIO_OFF_BIT) ? eRfOn : eRfOff; + } + } + + return retval; +} + +extern void dm_CheckRfCtrlGPIO(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,gpio_change_rf_wq); + struct net_device *dev = priv->rtllib->dev; +#else + struct net_device *dev = (struct net_device *)data; + struct r8192_priv *priv = rtllib_priv(dev); +#endif + + RT_RF_POWER_STATE eRfPowerStateToSet, CurRfState; + bool bActuallySet = false; + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + unsigned long flag = 0; + bool turnonbypowerdomain = false; + + +#ifdef CONFIG_RTL_RFKILL + return; +#endif + if((priv->up_first_time == 1) || (priv->being_init_adapter)) + { + ; + return; + } + + if(priv->ResetProgress == RESET_TYPE_SILENT) + { + RT_TRACE((COMP_INIT | COMP_POWER | COMP_RF), "GPIOChangeRFWorkItemCallBack(): Silent Reseting!!!!!!!\n"); + return; + } + + + if (pPSC->bSwRfProcessing) + { + RT_TRACE(COMP_SCAN, "GPIOChangeRFWorkItemCallBack(): Rf is in switching state.\n"); + return; + } + + RT_TRACE(COMP_RF, "GPIOChangeRFWorkItemCallBack() ---------> \n"); + + spin_lock_irqsave(&priv->rf_ps_lock,flag); + if (priv->RFChangeInProgress) { + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + RT_TRACE(COMP_RF, "GPIOChangeRFWorkItemCallBack(): RF Change in progress! \n"); + return; + } else { + priv->RFChangeInProgress = true; + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + } + CurRfState = priv->rtllib->eRFPowerState; +#ifdef CONFIG_ASPM_OR_D3 + if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM)) + { + RT_DISABLE_ASPM(dev); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM); + } + else if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3)) + { +#ifdef TODO + RT_LEAVE_D3(dev, false); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3); +#endif + } + +#endif + if(RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC)) + { + Power_DomainInit92SE(dev); + turnonbypowerdomain = true; + } + + eRfPowerStateToSet = RfOnOffDetect(dev); + if (priv->bResetInProgress) { + spin_lock_irqsave(&priv->rf_ps_lock,flag); + priv->RFChangeInProgress = false; + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + return; + } + + if( (priv->bHwRadioOff == true) && \ + (((eRfPowerStateToSet == eRfOn)&&(priv->sw_radio_on == true)) +#ifdef CONFIG_RTLWIFI_DEBUGFS + ||priv->debug->hw_holding +#endif + )) + { + RT_TRACE(COMP_RF, "GPIOChangeRF - HW Radio ON, RF ON\n"); + printk("GPIOChangeRF - HW Radio ON, RF ON\n"); + eRfPowerStateToSet = eRfOn; + bActuallySet = true; + } else if ((priv->bHwRadioOff == false) && + ((eRfPowerStateToSet == eRfOff) || (priv->sw_radio_on == false))) + { + RT_TRACE(COMP_RF, "GPIOChangeRF - HW Radio OFF\n"); + printk("GPIOChangeRF - HW Radio OFF\n"); + eRfPowerStateToSet = eRfOff; + bActuallySet = true; + } + + if (bActuallySet) { + priv->bHwRfOffAction = 1; +#ifdef CONFIG_ASPM_OR_D3 + if(eRfPowerStateToSet == eRfOn) + { + if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM)) + { + RT_DISABLE_ASPM(dev); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM); + } +#ifdef TODO + else if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3)) + { + RT_LEAVE_D3(dev, false); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3); + } +#endif + } +#endif + spin_lock_irqsave(&priv->rf_ps_lock,flag); + priv->RFChangeInProgress = false; + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + MgntActSet_RF_State(dev, eRfPowerStateToSet, RF_CHANGE_BY_HW,true); + + { +#ifdef CONFIG_CFG_80211 + struct wireless_dev *wdev = &priv->rtllib->wdev; + wiphy_rfkill_set_hw_state(wdev->wiphy, priv->bHwRadioOff); +#else + char *argv[3]; + static char *RadioPowerPath = "/etc/realtek/RadioPower.sh"; + static char *envp[] = {"HOME=/", "TERM=linux", "PATH=/usr/bin:/bin", NULL}; + + if(priv->bHwRadioOff == true) + argv[1] = "RFOFF"; + else + argv[1] = "RFON"; + + argv[0] = RadioPowerPath; + argv[2] = NULL; + call_usermodehelper(RadioPowerPath,argv,envp,1); + +#endif + } + + if(eRfPowerStateToSet == eRfOff) + { + if(priv->pwrdown){ + + write_nic_byte(dev, SYS_FUNC_EN+1, 0x31); + } +#ifdef CONFIG_ASPM_OR_D3 + if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) + { + RT_ENABLE_ASPM(dev); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM); + } +#ifdef TODO + else if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) + { + RT_ENTER_D3(dev, false); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3); + } +#endif +#endif + + gen_RefreshLedState(dev); + } + } + else if(eRfPowerStateToSet == eRfOff || CurRfState == eRfOff || priv->bDriverIsGoingToUnload) + { + + if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_HALT_NIC && turnonbypowerdomain) + { + PHY_SetRtl8192seRfHalt(dev); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC); + } +#ifdef CONFIG_ASPM_OR_D3 + if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) + { + RT_ENABLE_ASPM(dev); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM); + } +#ifdef TODO + else if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) + { + RT_ENTER_D3(dev, false); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3); + } +#endif +#endif + spin_lock_irqsave(&priv->rf_ps_lock,flag); + priv->RFChangeInProgress = false; + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + } + else + { + spin_lock_irqsave(&priv->rf_ps_lock,flag); + priv->RFChangeInProgress = false; + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + } + RT_TRACE(COMP_RF, "GPIOChangeRFWorkItemCallBack() <--------- \n"); +} +#endif +void dm_rf_pathcheck_workitemcallback(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,rfpath_check_wq); + struct net_device *dev =priv->rtllib->dev; +#else + struct net_device *dev = (struct net_device *)data; + struct r8192_priv *priv = rtllib_priv(dev); +#endif + u8 rfpath = 0, i; + + + rfpath = read_nic_byte(dev, 0xc04); + + for (i = 0; i < RF90_PATH_MAX; i++) + { + if (rfpath & (0x01<brfpath_rxenable[i] = 1; + else + priv->brfpath_rxenable[i] = 0; + } + if(!DM_RxPathSelTable.Enable) + return; + + dm_rxpath_sel_byrssi(dev); +} + +static void dm_init_rxpath_selection(struct net_device * dev) +{ + u8 i; + struct r8192_priv *priv = rtllib_priv(dev); + DM_RxPathSelTable.Enable = 1; + DM_RxPathSelTable.SS_TH_low = RxPathSelection_SS_TH_low; + DM_RxPathSelTable.diff_TH = RxPathSelection_diff_TH; + if(priv->CustomerID == RT_CID_819x_Netcore) + DM_RxPathSelTable.cck_method = CCK_Rx_Version_2; + else + DM_RxPathSelTable.cck_method = CCK_Rx_Version_1; + DM_RxPathSelTable.DbgMode = DM_DBG_OFF; + DM_RxPathSelTable.disabledRF = 0; + for(i=0; i<4; i++) + { + DM_RxPathSelTable.rf_rssi[i] = 50; + DM_RxPathSelTable.cck_pwdb_sta[i] = -64; + DM_RxPathSelTable.rf_enable_rssi_th[i] = 100; + } +} + +static void dm_rxpath_sel_byrssi(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 i, max_rssi_index=0, min_rssi_index=0, sec_rssi_index=0, rf_num=0; + u8 tmp_max_rssi=0, tmp_min_rssi=0, tmp_sec_rssi=0; + u8 cck_default_Rx=0x2; + u8 cck_optional_Rx=0x3; + long tmp_cck_max_pwdb=0, tmp_cck_min_pwdb=0, tmp_cck_sec_pwdb=0; + u8 cck_rx_ver2_max_index=0, cck_rx_ver2_min_index=0, cck_rx_ver2_sec_index=0; + u8 cur_rf_rssi; + long cur_cck_pwdb; + static u8 disabled_rf_cnt=0, cck_Rx_Path_initialized=0; + u8 update_cck_rx_path; + + if(priv->rf_type != RF_2T4R) + return; + + if(!cck_Rx_Path_initialized) + { + DM_RxPathSelTable.cck_Rx_path = (read_nic_byte(dev, 0xa07)&0xf); + cck_Rx_Path_initialized = 1; + } + + DM_RxPathSelTable.disabledRF = 0xf; + DM_RxPathSelTable.disabledRF &=~ (read_nic_byte(dev, 0xc04)); + + if(priv->rtllib->mode == WIRELESS_MODE_B) + { + DM_RxPathSelTable.cck_method = CCK_Rx_Version_2; + } + + for (i=0; istats.rx_rssi_percentage[i]; + + if(priv->brfpath_rxenable[i]) + { + rf_num++; + cur_rf_rssi = DM_RxPathSelTable.rf_rssi[i]; + + if(rf_num == 1) + { + max_rssi_index = min_rssi_index = sec_rssi_index = i; + tmp_max_rssi = tmp_min_rssi = tmp_sec_rssi = cur_rf_rssi; + } + else if(rf_num == 2) + { + if(cur_rf_rssi >= tmp_max_rssi) + { + tmp_max_rssi = cur_rf_rssi; + max_rssi_index = i; + } + else + { + tmp_sec_rssi = tmp_min_rssi = cur_rf_rssi; + sec_rssi_index = min_rssi_index = i; + } + } + else + { + if(cur_rf_rssi > tmp_max_rssi) + { + tmp_sec_rssi = tmp_max_rssi; + sec_rssi_index = max_rssi_index; + tmp_max_rssi = cur_rf_rssi; + max_rssi_index = i; + } + else if(cur_rf_rssi == tmp_max_rssi) + { + tmp_sec_rssi = cur_rf_rssi; + sec_rssi_index = i; + } + else if((cur_rf_rssi < tmp_max_rssi) &&(cur_rf_rssi > tmp_sec_rssi)) + { + tmp_sec_rssi = cur_rf_rssi; + sec_rssi_index = i; + } + else if(cur_rf_rssi == tmp_sec_rssi) + { + if(tmp_sec_rssi == tmp_min_rssi) + { + tmp_sec_rssi = cur_rf_rssi; + sec_rssi_index = i; + } + else + { + } + } + else if((cur_rf_rssi < tmp_sec_rssi) && (cur_rf_rssi > tmp_min_rssi)) + { + } + else if(cur_rf_rssi == tmp_min_rssi) + { + if(tmp_sec_rssi == tmp_min_rssi) + { + tmp_min_rssi = cur_rf_rssi; + min_rssi_index = i; + } + else + { + } + } + else if(cur_rf_rssi < tmp_min_rssi) + { + tmp_min_rssi = cur_rf_rssi; + min_rssi_index = i; + } + } + } + } + + rf_num = 0; + if(DM_RxPathSelTable.cck_method == CCK_Rx_Version_2) + { + for (i=0; ibrfpath_rxenable[i]) + { + rf_num++; + cur_cck_pwdb = DM_RxPathSelTable.cck_pwdb_sta[i]; + + if(rf_num == 1) + { + cck_rx_ver2_max_index = cck_rx_ver2_min_index = cck_rx_ver2_sec_index = i; + tmp_cck_max_pwdb = tmp_cck_min_pwdb = tmp_cck_sec_pwdb = cur_cck_pwdb; + } + else if(rf_num == 2) + { + if(cur_cck_pwdb >= tmp_cck_max_pwdb) + { + tmp_cck_max_pwdb = cur_cck_pwdb; + cck_rx_ver2_max_index = i; + } + else + { + tmp_cck_sec_pwdb = tmp_cck_min_pwdb = cur_cck_pwdb; + cck_rx_ver2_sec_index = cck_rx_ver2_min_index = i; + } + } + else + { + if(cur_cck_pwdb > tmp_cck_max_pwdb) + { + tmp_cck_sec_pwdb = tmp_cck_max_pwdb; + cck_rx_ver2_sec_index = cck_rx_ver2_max_index; + tmp_cck_max_pwdb = cur_cck_pwdb; + cck_rx_ver2_max_index = i; + } + else if(cur_cck_pwdb == tmp_cck_max_pwdb) + { + tmp_cck_sec_pwdb = cur_cck_pwdb; + cck_rx_ver2_sec_index = i; + } + else if((cur_cck_pwdb < tmp_cck_max_pwdb) &&(cur_cck_pwdb > tmp_cck_sec_pwdb)) + { + tmp_cck_sec_pwdb = cur_cck_pwdb; + cck_rx_ver2_sec_index = i; + } + else if(cur_cck_pwdb == tmp_cck_sec_pwdb) + { + if(tmp_cck_sec_pwdb == tmp_cck_min_pwdb) + { + tmp_cck_sec_pwdb = cur_cck_pwdb; + cck_rx_ver2_sec_index = i; + } + else + { + } + } + else if((cur_cck_pwdb < tmp_cck_sec_pwdb) && (cur_cck_pwdb > tmp_cck_min_pwdb)) + { + } + else if(cur_cck_pwdb == tmp_cck_min_pwdb) + { + if(tmp_cck_sec_pwdb == tmp_cck_min_pwdb) + { + tmp_cck_min_pwdb = cur_cck_pwdb; + cck_rx_ver2_min_index = i; + } + else + { + } + } + else if(cur_cck_pwdb < tmp_cck_min_pwdb) + { + tmp_cck_min_pwdb = cur_cck_pwdb; + cck_rx_ver2_min_index = i; + } + } + + } + } + } + + + update_cck_rx_path = 0; + if(DM_RxPathSelTable.cck_method == CCK_Rx_Version_2) + { + cck_default_Rx = cck_rx_ver2_max_index; + cck_optional_Rx = cck_rx_ver2_sec_index; + if(tmp_cck_max_pwdb != -64) + update_cck_rx_path = 1; + } + + if(tmp_min_rssi < DM_RxPathSelTable.SS_TH_low && disabled_rf_cnt < 2) + { + if((tmp_max_rssi - tmp_min_rssi) >= DM_RxPathSelTable.diff_TH) + { + DM_RxPathSelTable.rf_enable_rssi_th[min_rssi_index] = tmp_max_rssi+5; + rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, 0x1<>i) & 0x1) + { + if(tmp_max_rssi >= DM_RxPathSelTable.rf_enable_rssi_th[i]) + { + rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, 0x1<priv_wq,&priv->rfpath_check_wq,0); +} + + +static void dm_init_fsync (struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + priv->rtllib->fsync_time_interval = 500; + priv->rtllib->fsync_rate_bitmap = 0x0f000800; + priv->rtllib->fsync_rssi_threshold = 30; +#ifdef RTL8190P + priv->rtllib->bfsync_enable = true; +#elif defined RTL8192E || defined RTL8192SE + priv->rtllib->bfsync_enable = false; +#endif + priv->rtllib->fsync_multiple_timeinterval = 3; + priv->rtllib->fsync_firstdiff_ratethreshold= 100; + priv->rtllib->fsync_seconddiff_ratethreshold= 200; + priv->rtllib->fsync_state = Default_Fsync; + +#ifdef RTL8192SE + priv->framesyncMonitor = 0; +#elif defined RTL8192E || defined RTL8190P + priv->framesyncMonitor = 1; +#endif + + init_timer(&priv->fsync_timer); + setup_timer(&priv->fsync_timer, dm_fsync_timer_callback,(unsigned long) dev); +} + + +static void dm_deInit_fsync(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + del_timer_sync(&priv->fsync_timer); +} + +extern void dm_fsync_timer_callback(unsigned long data) +{ + struct net_device *dev = (struct net_device *)data; + struct r8192_priv *priv = rtllib_priv((struct net_device *)data); + u32 rate_index, rate_count = 0, rate_count_diff=0; + bool bSwitchFromCountDiff = false; + bool bDoubleTimeInterval = false; + + if( priv->rtllib->state == RTLLIB_LINKED && + priv->rtllib->bfsync_enable && + (priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_CDD_FSYNC)) + { + u32 rate_bitmap; + for(rate_index = 0; rate_index <= 27; rate_index++) + { + rate_bitmap = 1 << rate_index; + if(priv->rtllib->fsync_rate_bitmap & rate_bitmap) + rate_count+= priv->stats.received_rate_histogram[1][rate_index]; + } + + if(rate_count < priv->rate_record) + rate_count_diff = 0xffffffff - rate_count + priv->rate_record; + else + rate_count_diff = rate_count - priv->rate_record; + if(rate_count_diff < priv->rateCountDiffRecord) + { + + u32 DiffNum = priv->rateCountDiffRecord - rate_count_diff; + if(DiffNum >= priv->rtllib->fsync_seconddiff_ratethreshold) + priv->ContiuneDiffCount++; + else + priv->ContiuneDiffCount = 0; + + if(priv->ContiuneDiffCount >=2) + { + bSwitchFromCountDiff = true; + priv->ContiuneDiffCount = 0; + } + } + else + { + priv->ContiuneDiffCount = 0; + } + + if(rate_count_diff <= priv->rtllib->fsync_firstdiff_ratethreshold) + { + bSwitchFromCountDiff = true; + priv->ContiuneDiffCount = 0; + } + priv->rate_record = rate_count; + priv->rateCountDiffRecord = rate_count_diff; + RT_TRACE(COMP_HALDM, "rateRecord %d rateCount %d, rateCountdiff %d bSwitchFsync %d\n", priv->rate_record, rate_count, rate_count_diff , priv->bswitch_fsync); + if(priv->undecorated_smoothed_pwdb > priv->rtllib->fsync_rssi_threshold && bSwitchFromCountDiff) + { + bDoubleTimeInterval = true; + priv->bswitch_fsync = !priv->bswitch_fsync; + if(priv->bswitch_fsync) + { + #ifdef RTL8190P + write_nic_byte(dev,0xC36, 0x00); +#elif defined RTL8192E + write_nic_byte(dev,0xC36, 0x1c); + #endif + write_nic_byte(dev, 0xC3e, 0x90); + } + else + { + #ifdef RTL8190P + write_nic_byte(dev, 0xC36, 0x40); + #else + write_nic_byte(dev, 0xC36, 0x5c); + #endif + write_nic_byte(dev, 0xC3e, 0x96); + } + } + else if(priv->undecorated_smoothed_pwdb <= priv->rtllib->fsync_rssi_threshold) + { + if(priv->bswitch_fsync) + { + priv->bswitch_fsync = false; + #ifdef RTL8190P + write_nic_byte(dev, 0xC36, 0x40); +#elif defined RTL8192E + write_nic_byte(dev, 0xC36, 0x5c); + #endif + write_nic_byte(dev, 0xC3e, 0x96); + } + } + if(bDoubleTimeInterval){ + if(timer_pending(&priv->fsync_timer)) + del_timer_sync(&priv->fsync_timer); + priv->fsync_timer.expires = jiffies + MSECS(priv->rtllib->fsync_time_interval*priv->rtllib->fsync_multiple_timeinterval); + add_timer(&priv->fsync_timer); + } + else{ + if(timer_pending(&priv->fsync_timer)) + del_timer_sync(&priv->fsync_timer); + priv->fsync_timer.expires = jiffies + MSECS(priv->rtllib->fsync_time_interval); + add_timer(&priv->fsync_timer); + } + } + else + { + if(priv->bswitch_fsync) + { + priv->bswitch_fsync = false; + #ifdef RTL8190P + write_nic_byte(dev, 0xC36, 0x40); +#elif defined RTL8192E + write_nic_byte(dev, 0xC36, 0x5c); + #endif + write_nic_byte(dev, 0xC3e, 0x96); + } + priv->ContiuneDiffCount = 0; + #ifdef RTL8190P + write_nic_dword(dev, rOFDM0_RxDetector2, 0x164052cd); +#elif defined RTL8192E + write_nic_dword(dev, rOFDM0_RxDetector2, 0x465c52cd); + #endif + } + RT_TRACE(COMP_HALDM, "ContiuneDiffCount %d\n", priv->ContiuneDiffCount); + RT_TRACE(COMP_HALDM, "rateRecord %d rateCount %d, rateCountdiff %d bSwitchFsync %d\n", priv->rate_record, rate_count, rate_count_diff , priv->bswitch_fsync); +} + +static void dm_StartHWFsync(struct net_device *dev) +{ +#if defined RTL8192E + u8 rf_timing = 0x77; + struct r8192_priv *priv = rtllib_priv(dev); + RT_TRACE(COMP_HALDM, "%s\n", __FUNCTION__); + write_nic_dword(dev, rOFDM0_RxDetector2, 0x465c12cf); + priv->rtllib->SetHwRegHandler(dev, HW_VAR_RF_TIMING, (u8*)(&rf_timing)); + write_nic_byte(dev, 0xc3b, 0x41); +#elif defined RTL8192SE + write_nic_byte(dev, rOFDM0_RxDetector3, 0x96); +#endif +} + +static void dm_EndHWFsync(struct net_device *dev) +{ +#if defined RTL8192E + u8 rf_timing = 0xaa; + struct r8192_priv *priv = rtllib_priv(dev); + RT_TRACE(COMP_HALDM,"%s\n", __FUNCTION__); + write_nic_dword(dev, rOFDM0_RxDetector2, 0x465c52cd); + priv->rtllib->SetHwRegHandler(dev, HW_VAR_RF_TIMING, (u8*)(&rf_timing)); + write_nic_byte(dev, 0xc3b, 0x49); +#elif defined RTL8192SE + write_nic_byte(dev, rOFDM0_RxDetector3, 0x94); +#endif + +} + +static void dm_EndSWFsync(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + RT_TRACE(COMP_HALDM, "%s\n", __FUNCTION__); + del_timer_sync(&(priv->fsync_timer)); + + if(priv->bswitch_fsync) + { + priv->bswitch_fsync = false; + + #ifdef RTL8190P + write_nic_byte(dev, 0xC36, 0x40); +#elif defined RTL8192E + write_nic_byte(dev, 0xC36, 0x5c); +#endif + + write_nic_byte(dev, 0xC3e, 0x96); + } + + priv->ContiuneDiffCount = 0; +#ifdef RTL8192E + write_nic_dword(dev, rOFDM0_RxDetector2, 0x465c52cd); +#endif + +} + +static void dm_StartSWFsync(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 rateIndex; + u32 rateBitmap; + + RT_TRACE(COMP_HALDM,"%s\n", __FUNCTION__); + priv->rate_record = 0; + priv->ContiuneDiffCount = 0; + priv->rateCountDiffRecord = 0; + priv->bswitch_fsync = false; + + if(priv->rtllib->mode == WIRELESS_MODE_N_24G) + { + priv->rtllib->fsync_firstdiff_ratethreshold= 600; + priv->rtllib->fsync_seconddiff_ratethreshold = 0xffff; + } + else + { + priv->rtllib->fsync_firstdiff_ratethreshold= 200; + priv->rtllib->fsync_seconddiff_ratethreshold = 200; + } + for(rateIndex = 0; rateIndex <= 27; rateIndex++) + { + rateBitmap = 1 << rateIndex; + if(priv->rtllib->fsync_rate_bitmap & rateBitmap) + priv->rate_record += priv->stats.received_rate_histogram[1][rateIndex]; + } + if(timer_pending(&priv->fsync_timer)) + del_timer_sync(&priv->fsync_timer); + priv->fsync_timer.expires = jiffies + MSECS(priv->rtllib->fsync_time_interval); + add_timer(&priv->fsync_timer); + +#ifdef RTL8192E + write_nic_dword(dev, rOFDM0_RxDetector2, 0x465c12cd); +#endif + +} + +void dm_check_fsync(struct net_device *dev) +{ +#define RegC38_Default 0 +#define RegC38_NonFsync_Other_AP 1 +#define RegC38_Fsync_AP_BCM 2 + struct r8192_priv *priv = rtllib_priv(dev); + static u8 reg_c38_State=RegC38_Default; + static u32 reset_cnt=0; + + RT_TRACE(COMP_HALDM, "RSSI %d TimeInterval %d MultipleTimeInterval %d\n", priv->rtllib->fsync_rssi_threshold, priv->rtllib->fsync_time_interval, priv->rtllib->fsync_multiple_timeinterval); + RT_TRACE(COMP_HALDM, "RateBitmap 0x%x FirstDiffRateThreshold %d SecondDiffRateThreshold %d\n", priv->rtllib->fsync_rate_bitmap, priv->rtllib->fsync_firstdiff_ratethreshold, priv->rtllib->fsync_seconddiff_ratethreshold); + + if( priv->rtllib->state == RTLLIB_LINKED && + priv->rtllib->pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM) + { + if(priv->rtllib->bfsync_enable == 0) + { + switch(priv->rtllib->fsync_state) + { + case Default_Fsync: + dm_StartHWFsync(dev); + priv->rtllib->fsync_state = HW_Fsync; + break; + case SW_Fsync: + dm_EndSWFsync(dev); + dm_StartHWFsync(dev); + priv->rtllib->fsync_state = HW_Fsync; + break; + case HW_Fsync: + default: + break; + } + } + else + { + switch(priv->rtllib->fsync_state) + { + case Default_Fsync: + dm_StartSWFsync(dev); + priv->rtllib->fsync_state = SW_Fsync; + break; + case HW_Fsync: + dm_EndHWFsync(dev); + dm_StartSWFsync(dev); + priv->rtllib->fsync_state = SW_Fsync; + break; + case SW_Fsync: + default: + break; + + } + } + if(priv->framesyncMonitor) + { + if(reg_c38_State != RegC38_Fsync_AP_BCM) + { + #ifdef RTL8190P + write_nic_byte(dev, rOFDM0_RxDetector3, 0x15); + #else + write_nic_byte(dev, rOFDM0_RxDetector3, 0x95); + #endif + + reg_c38_State = RegC38_Fsync_AP_BCM; + } + } + } + else + { + switch(priv->rtllib->fsync_state) + { + case HW_Fsync: + dm_EndHWFsync(dev); + priv->rtllib->fsync_state = Default_Fsync; + break; + case SW_Fsync: + dm_EndSWFsync(dev); + priv->rtllib->fsync_state = Default_Fsync; + break; + case Default_Fsync: + default: + break; + } + + if(priv->framesyncMonitor) + { + if(priv->rtllib->state == RTLLIB_LINKED) + { + if(priv->undecorated_smoothed_pwdb <= RegC38_TH) + { + if(reg_c38_State != RegC38_NonFsync_Other_AP) + { + #ifdef RTL8190P + write_nic_byte(dev, rOFDM0_RxDetector3, 0x10); + #else + write_nic_byte(dev, rOFDM0_RxDetector3, 0x90); + #endif + + reg_c38_State = RegC38_NonFsync_Other_AP; + #if 0 + if (dev->HardwareType == HARDWARE_TYPE_RTL8190P) + DbgPrint("Fsync is idle, rssi<=35, write 0xc38 = 0x%x \n", 0x10); + else + DbgPrint("Fsync is idle, rssi<=35, write 0xc38 = 0x%x \n", 0x90); + #endif + } + } + else if(priv->undecorated_smoothed_pwdb >= (RegC38_TH+5)) + { + if(reg_c38_State) + { + write_nic_byte(dev, rOFDM0_RxDetector3, priv->framesync); + reg_c38_State = RegC38_Default; + } + } + } + else + { + if(reg_c38_State) + { + write_nic_byte(dev, rOFDM0_RxDetector3, priv->framesync); + reg_c38_State = RegC38_Default; + } + } + } + } + if(priv->framesyncMonitor) + { + if(priv->reset_count != reset_cnt) + { + write_nic_byte(dev, rOFDM0_RxDetector3, priv->framesync); + reg_c38_State = RegC38_Default; + reset_cnt = priv->reset_count; + } + } + else + { + if(reg_c38_State) + { + write_nic_byte(dev, rOFDM0_RxDetector3, priv->framesync); + reg_c38_State = RegC38_Default; + } + } +} + +#if 0 +extern s1Byte DM_CheckLBusStatus(IN PADAPTER dev) +{ + PMGNT_INFO pMgntInfo=&dev->MgntInfo; + +#if (HAL_CODE_BASE & RTL819X) + +#if (HAL_CODE_BASE == RTL8192) + +#if( DEV_BUS_TYPE==PCI_INTERFACE) + return true; +#endif + +#if( DEV_BUS_TYPE==USB_INTERFACE) + return true; +#endif + +#endif + +#if (HAL_CODE_BASE == RTL8190) + return true; +#endif + +#endif +} + +#endif + +extern void dm_shadow_init(struct net_device *dev) +{ + u8 page; + u16 offset; + + for (page = 0; page < 5; page++) + for (offset = 0; offset < 256; offset++) + { + dm_shadow[page][offset] = read_nic_byte(dev, offset+page*256); + } + + for (page = 8; page < 11; page++) + for (offset = 0; offset < 256; offset++) + dm_shadow[page][offset] = read_nic_byte(dev, offset+page*256); + + for (page = 12; page < 15; page++) + for (offset = 0; offset < 256; offset++) + dm_shadow[page][offset] = read_nic_byte(dev, offset+page*256); + +} + +/*---------------------------Define function prototype------------------------*/ +static void dm_init_dynamic_txpower(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + +#ifdef RTL8192SE + if(((priv->pFirmware->FirmwareVersion) >= 60) && + (priv->DM_Type == DM_Type_ByDriver)){ + priv->rtllib->bdynamic_txpower_enable = true; + RT_TRACE(COMP_INIT, "Dynamic Tx Power is enabled by Driver \n"); + } else { + priv->rtllib->bdynamic_txpower_enable = false; + RT_TRACE(COMP_INIT, "Dynamic Tx Power is enabled by FW \n"); + } + + priv->LastDTPLvl = TxHighPwrLevel_Normal; + priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Normal; + +#elif defined RTL8190P || defined RTL8192E + priv->rtllib->bdynamic_txpower_enable = true; + priv->bLastDTPFlag_High = false; + priv->bLastDTPFlag_Low = false; + priv->bDynamicTxHighPower = false; + priv->bDynamicTxLowPower = false; +#endif +} + +#if defined RTL8190P || defined RTL8192E +static void dm_dynamic_txpower(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + unsigned int txhipower_threshhold=0; + unsigned int txlowpower_threshold=0; + if(priv->rtllib->bdynamic_txpower_enable != true) + { + priv->bDynamicTxHighPower = false; + priv->bDynamicTxLowPower = false; + return; + } + if((priv->rtllib->pHTInfo->IOTPeer == HT_IOT_PEER_ATHEROS) && (priv->rtllib->mode == IEEE_G)){ + txhipower_threshhold = TX_POWER_ATHEROAP_THRESH_HIGH; + txlowpower_threshold = TX_POWER_ATHEROAP_THRESH_LOW; + } + else + { + txhipower_threshhold = TX_POWER_NEAR_FIELD_THRESH_HIGH; + txlowpower_threshold = TX_POWER_NEAR_FIELD_THRESH_LOW; + } + + + RT_TRACE(COMP_TXAGC,"priv->undecorated_smoothed_pwdb = %ld \n" , priv->undecorated_smoothed_pwdb); + + if(priv->rtllib->state == RTLLIB_LINKED) + { + if(priv->undecorated_smoothed_pwdb >= txhipower_threshhold) + { + priv->bDynamicTxHighPower = true; + priv->bDynamicTxLowPower = false; + } + else + { + if(priv->undecorated_smoothed_pwdb < txlowpower_threshold && priv->bDynamicTxHighPower == true) + { + priv->bDynamicTxHighPower = false; + } + if(priv->undecorated_smoothed_pwdb < 35) + { + priv->bDynamicTxLowPower = true; + } + else if(priv->undecorated_smoothed_pwdb >= 40) + { + priv->bDynamicTxLowPower = false; + } + } + } + else + { + priv->bDynamicTxHighPower = false; + priv->bDynamicTxLowPower = false; + } + + if( (priv->bDynamicTxHighPower != priv->bLastDTPFlag_High ) || + (priv->bDynamicTxLowPower != priv->bLastDTPFlag_Low ) ) + { + RT_TRACE(COMP_TXAGC,"SetTxPowerLevel8190() channel = %d \n" , priv->rtllib->current_network.channel); + + rtl8192_phy_setTxPower(dev,priv->rtllib->current_network.channel); + } + priv->bLastDTPFlag_High = priv->bDynamicTxHighPower; + priv->bLastDTPFlag_Low = priv->bDynamicTxLowPower; + +} +#elif defined RTL8192SE +static void dm_dynamic_txpower(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + long UndecoratedSmoothedPWDB; + + if( (priv->rtllib->bdynamic_txpower_enable != true) || + (priv->DMFlag & HAL_DM_HIPWR_DISABLE) || + priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_HIGH_POWER) { + priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Normal; + return; + } + + if((!priv->rtllib->state != RTLLIB_LINKED) && + (priv->EntryMinUndecoratedSmoothedPWDB == 0)) { + RT_TRACE(COMP_POWER, "Not connected to any \n"); + priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Normal; + return; + } + + if(priv->rtllib->state == RTLLIB_LINKED) { + if(priv->rtllib->OpMode == RT_OP_MODE_IBSS) { + UndecoratedSmoothedPWDB = priv->EntryMinUndecoratedSmoothedPWDB; + RT_TRACE(COMP_POWER, "AP Client PWDB = %ld \n", UndecoratedSmoothedPWDB); + } else { + UndecoratedSmoothedPWDB = priv->undecorated_smoothed_pwdb; + RT_TRACE(COMP_POWER, "STA Default Port PWDB = %ld \n", UndecoratedSmoothedPWDB); + } + } else { + UndecoratedSmoothedPWDB = priv->EntryMinUndecoratedSmoothedPWDB; + RT_TRACE(COMP_POWER, "AP Ext Port PWDB = %ld \n", UndecoratedSmoothedPWDB); + } + + if(UndecoratedSmoothedPWDB >= TX_POWER_NEAR_FIELD_THRESH_LVL2) { + priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Level2; + RT_TRACE(COMP_POWER, "TxHighPwrLevel_Level2 (TxPwr=0x0)\n"); + } else if((UndecoratedSmoothedPWDB < (TX_POWER_NEAR_FIELD_THRESH_LVL2-3)) && + (UndecoratedSmoothedPWDB >= TX_POWER_NEAR_FIELD_THRESH_LVL1) ) { + priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Level1; + RT_TRACE(COMP_POWER, "TxHighPwrLevel_Level1 (TxPwr=0x10)\n"); + } else if(UndecoratedSmoothedPWDB < (TX_POWER_NEAR_FIELD_THRESH_LVL1-3)) { + priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Normal; + RT_TRACE(COMP_POWER, "TxHighPwrLevel_Normal\n"); + } + + if( (priv->DynamicTxHighPowerLvl != priv->LastDTPLvl) ) { + RT_TRACE(COMP_POWER, "PHY_SetTxPowerLevel8192S() Channel = %d \n" , priv->rtllib->current_network.channel); + rtl8192_phy_setTxPower(dev, priv->rtllib->current_network.channel); + } + priv->LastDTPLvl = priv->DynamicTxHighPowerLvl; +} +#endif + +static void dm_check_txrateandretrycount(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + +#ifdef RTL8192SE + static u8 LegacyRateSet[12] = {0x02 , 0x04 , 0x0b , 0x16 , 0x0c , 0x12 , 0x18 , 0x24 , 0x30 , 0x48 , 0x60 , 0x6c}; + u8 RateIdx = 0; + RateIdx = read_nic_byte(dev, TX_RATE_REG); + + if(ieee->softmac_stats.CurrentShowTxate < 76) + ieee->softmac_stats.CurrentShowTxate = (RateIdx<12)?(LegacyRateSet[RateIdx]):((RateIdx-12)|0x80); + else + ieee->softmac_stats.CurrentShowTxate = 0; +#else + ieee->softmac_stats.CurrentShowTxate = read_nic_byte(dev, Current_Tx_Rate_Reg); +#endif + + ieee->softmac_stats.last_packet_rate = read_nic_byte(dev ,Initial_Tx_Rate_Reg); + + ieee->softmac_stats.txretrycount = read_nic_dword(dev, Tx_Retry_Count_Reg); +} + +static void dm_send_rssi_tofw(struct net_device *dev) +{ +#ifndef RTL8192SE + DCMD_TXCMD_T tx_cmd; + struct r8192_priv *priv = rtllib_priv(dev); + + write_nic_byte(dev, DRIVER_RSSI, (u8)priv->undecorated_smoothed_pwdb); + return; + tx_cmd.Op = TXCMD_SET_RX_RSSI; + tx_cmd.Length = 4; + tx_cmd.Value = priv->undecorated_smoothed_pwdb; + + cmpk_message_handle_tx(dev, (u8*)&tx_cmd, + DESC_PACKET_TYPE_INIT, sizeof(DCMD_TXCMD_T)); +#endif +} + +#if defined RTL8192SE + +/*----------------------------------------------------------------------------- + * Function: dm_RefreshRateAdaptiveMask() + * + * Overview: Update rate table mask according to rssi + * + * Input: NONE + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 05/27/2009 hpfan Create Version 0. + * + *---------------------------------------------------------------------------*/ +static void dm_RefreshRateAdaptiveMask(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + prate_adaptive pRA = (prate_adaptive)&priv->rate_adaptive; + u32 LowRSSIThreshForRA = 0,MiddleRSSIThreshForRA = 0, HighRSSIThreshForRA = 0; + u8 rssi_level; + + if(IS_NIC_DOWN(priv)){ + RT_TRACE(COMP_RATE,"<---- dm_RefreshRateAdaptiveMask(): driver is going to unload\n"); + return; + } + + if(!priv->rtllib->bUseRAMask){ + return; + } + + if(priv->pFirmware->FirmwareVersion >= 61 && !priv->bInformFWDriverControlDM){ + RT_TRACE(COMP_RATE, "<---- dm_RefreshRateAdaptiveMask(): inform fw driver control dm\n"); + priv->rtllib->SetFwCmdHandler(dev, FW_CMD_CTRL_DM_BY_DRIVER); + priv->bInformFWDriverControlDM = true; + } + + if((priv->rtllib->state == RTLLIB_LINKED && (priv->rtllib->iw_mode == IW_MODE_INFRA)) +#ifdef _RTL8192_EXT_PATCH_ + || ((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->only_mesh == 0)) +#endif + ) + { + + switch (pRA->PreRATRState){ + case DM_RATR_STA_HIGH: + { + HighRSSIThreshForRA = 40; + MiddleRSSIThreshForRA = 30; + LowRSSIThreshForRA = 20; + } + break; + + + case DM_RATR_STA_MIDDLE: + { + HighRSSIThreshForRA = 44; + MiddleRSSIThreshForRA = 30; + LowRSSIThreshForRA = 20; + } + break; + + + case DM_RATR_STA_LOW: + { + HighRSSIThreshForRA = 44; + MiddleRSSIThreshForRA = 34; + LowRSSIThreshForRA = 20; + } + break; + + + case DM_RATR_STA_ULTRALOW: + { + HighRSSIThreshForRA = 44; + MiddleRSSIThreshForRA = 34; + LowRSSIThreshForRA = 24; + } + break; + + default: + { + HighRSSIThreshForRA = 44; + MiddleRSSIThreshForRA = 34; + LowRSSIThreshForRA = 24; + } + break; + } + + if(priv->undecorated_smoothed_pwdb > (long)HighRSSIThreshForRA) + { + pRA->ratr_state = DM_RATR_STA_HIGH; + rssi_level = 1; + } +#if 0 + else if(priv->undecorated_smoothed_pwdb > (long)MiddleRSSIThreshForRA) + { + pRA->ratr_state = DM_RATR_STA_MIDDLEHIGH; + rssi_level = 2; + } +#endif + else if(priv->undecorated_smoothed_pwdb > (long)MiddleRSSIThreshForRA) + { + pRA->ratr_state = DM_RATR_STA_LOW; + rssi_level = 3; + } +#if 0 + else if(priv->undecorated_smoothed_pwdb > (long)LowRSSIThreshForRA) + { + pRA->ratr_state = DM_RATR_STA_MIDDLELOW; + rssi_level = 4; + } +#endif + else if(priv->undecorated_smoothed_pwdb > (long)LowRSSIThreshForRA) + { + pRA->ratr_state = DM_RATR_STA_LOW; + rssi_level = 5; + } + else + { + pRA->ratr_state = DM_RATR_STA_ULTRALOW; + rssi_level = 6; + } + + if((pRA->PreRATRState != pRA->ratr_state) || ((pRA->PreRATRState == pRA->ratr_state) && (rssi_level != priv->rssi_level))) + { + RT_TRACE(COMP_RATE, "Target AP addr : "MAC_FMT"\n", MAC_ARG(priv->rtllib->current_network.bssid)); + RT_TRACE(COMP_RATE, "RSSI = %ld\n", priv->undecorated_smoothed_pwdb); + RT_TRACE(COMP_RATE, "RSSI_LEVEL = %d\n", rssi_level); + RT_TRACE(COMP_RATE, "PreState = %d, CurState = %d\n", pRA->PreRATRState, pRA->ratr_state); + priv->rtllib->UpdateHalRAMaskHandler( + dev, + false, + 0, + priv->rtllib->pHTInfo->PeerMimoPs, + priv->rtllib->mode, + priv->rtllib->pHTInfo->bCurTxBW40MHz, + rssi_level); + priv->rssi_level = rssi_level; + pRA->PreRATRState = pRA->ratr_state; + } + } + if((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_ADHOC)){ + int i; + struct sta_info *pEntry; + + for(i = 0; i < PEER_MAX_ASSOC; i++){ + pEntry = priv->rtllib->peer_assoc_list[i]; + if(NULL != pEntry){ + pRA = &pEntry->rate_adaptive; + switch (pRA->PreRATRState){ + case DM_RATR_STA_HIGH: + HighRSSIThreshForRA = 50; + LowRSSIThreshForRA = 20; + break; + case DM_RATR_STA_MIDDLE: + HighRSSIThreshForRA = 55; + LowRSSIThreshForRA = 20; + break; + case DM_RATR_STA_LOW: + HighRSSIThreshForRA = 50; + LowRSSIThreshForRA = 25; + break; + default: + HighRSSIThreshForRA = 50; + LowRSSIThreshForRA = 20; + break; + } + + if(pEntry->rssi_stat.UndecoratedSmoothedPWDB > HighRSSIThreshForRA){ + pRA->ratr_state = DM_RATR_STA_HIGH; + rssi_level = 1; + }else if(pEntry->rssi_stat.UndecoratedSmoothedPWDB > LowRSSIThreshForRA){ + pRA->ratr_state = DM_RATR_STA_MIDDLE; + rssi_level = 2; + }else{ + pRA->ratr_state = DM_RATR_STA_LOW; + rssi_level = 3; + } + + if(pRA->PreRATRState != pRA->ratr_state){ + RT_TRACE(COMP_RATE, "AsocEntry addr : "MAC_FMT"\n", MAC_ARG(pEntry->macaddr)); + RT_TRACE(COMP_RATE, "RSSI = %ld\n", pEntry->rssi_stat.UndecoratedSmoothedPWDB); + RT_TRACE(COMP_RATE, "RSSI_LEVEL = %d\n", rssi_level); + RT_TRACE(COMP_RATE, "PreState = %d, CurState = %d\n", pRA->PreRATRState, pRA->ratr_state); + priv->rtllib->UpdateHalRAMaskHandler( + dev, + false, + pEntry->aid+1, + pEntry->htinfo.MimoPs, + pEntry->wireless_mode, + pEntry->htinfo.bCurTxBW40MHz, + rssi_level); + pRA->PreRATRState = pRA->ratr_state; + } + + } + } + } +#ifdef _RTL8192_EXT_PATCH_ + if(priv->rtllib->iw_mode == IW_MODE_MESH) + { + if(priv->mshobj->ext_refresh_rate_adaptive_mask) + priv->mshobj->ext_refresh_rate_adaptive_mask(priv); + } +#endif +} + +void Adhoc_InitRateAdaptive(struct net_device *dev,struct sta_info *pEntry) +{ + prate_adaptive pRA = (prate_adaptive)&pEntry->rate_adaptive; + struct r8192_priv *priv = rtllib_priv(dev); + + pRA->ratr_state = DM_RATR_STA_MAX; + pRA->high2low_rssi_thresh_for_ra = RateAdaptiveTH_High; + pRA->low2high_rssi_thresh_for_ra20M = RateAdaptiveTH_Low_20M+5; + pRA->low2high_rssi_thresh_for_ra40M = RateAdaptiveTH_Low_40M+5; + + pRA->high_rssi_thresh_for_ra = RateAdaptiveTH_High+5; + pRA->low_rssi_thresh_for_ra20M = RateAdaptiveTH_Low_20M; + pRA->low_rssi_thresh_for_ra40M = RateAdaptiveTH_Low_40M; + + if (priv->rf_type == RF_2T4R) + { + /* 2008/01/11 MH Modify 2T RATR table for different RSSI. */ + pRA->upper_rssi_threshold_ratr = 0x8f0f0000; + pRA->middle_rssi_threshold_ratr = 0x8d0ff000; + pRA->low_rssi_threshold_ratr = 0x8f0ff003; + pRA->low_rssi_threshold_ratr_40M = 0x8f0ff007; + pRA->low_rssi_threshold_ratr_20M = 0x8f0ff003; + } + else if (priv->rf_type == RF_1T2R) + { + pRA->upper_rssi_threshold_ratr = 0x000f0000; + pRA->middle_rssi_threshold_ratr = 0x000ff000; + pRA->low_rssi_threshold_ratr = 0x000ff003; + pRA->low_rssi_threshold_ratr_40M = 0x000ff007; + pRA->low_rssi_threshold_ratr_20M = 0x000ff003; + } + +} + + +void Adhoc_InitRateAdaptiveState(struct net_device *dev,struct sta_info *pEntry) +{ + prate_adaptive pRA = (prate_adaptive)&pEntry->rate_adaptive; + + pRA->ratr_state = DM_RATR_STA_MAX; + pRA->PreRATRState = DM_RATR_STA_MAX; +} + +#if 0 +static void Adhoc_dm_CheckRateAdaptive(struct net_device * dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + prate_adaptive pRA; + u32 currentRATR, targetRATR = 0; + u32 LowRSSIThreshForRA = 0, HighRSSIThreshForRA = 0; + bool bShortGIEnabled = false; + u8 i = 0; + struct sta_info *pEntry = NULL; + + if(!priv->up) + { + RT_TRACE(COMP_RATE, "<---- AP_dm_CheckRateAdaptive(): driver is going to unload\n"); + return; + } + + for(i=0;ipeer_assoc_list[i]; + if(NULL != pEntry) + { + pRA = (prate_adaptive)&pEntry->rate_adaptive; + if(pRA->rate_adaptive_disabled) + continue; + if((pEntry->wireless_mode!=WIRELESS_MODE_N_24G) && (pEntry->wireless_mode != WIRELESS_MODE_N_5G)) + continue; + bShortGIEnabled = (pEntry->htinfo.bCurTxBW40MHz && priv->rtllib->pHTInfo->bCurShortGI40MHz && pEntry->htinfo.bCurShortGI40MHz) | + (!pEntry->htinfo.bCurTxBW40MHz && priv->rtllib->pHTInfo->bCurShortGI20MHz && pEntry->htinfo.bCurShortGI20MHz); + pRA->upper_rssi_threshold_ratr = + (pRA->upper_rssi_threshold_ratr & (~BIT31)) | ((bShortGIEnabled)? BIT31:0) ; + + pRA->middle_rssi_threshold_ratr = + (pRA->middle_rssi_threshold_ratr & (~BIT31)) | ((bShortGIEnabled)? BIT31:0) ; + + + if (pEntry->htinfo.bBw40MHz) + { + pRA->low_rssi_threshold_ratr = + (pRA->low_rssi_threshold_ratr_40M & (~BIT31)) | ((bShortGIEnabled)? BIT31:0) ; + } + else + { + pRA->low_rssi_threshold_ratr = + (pRA->low_rssi_threshold_ratr_20M & (~BIT31)) | ((bShortGIEnabled)? BIT31:0) ; + } + if (pRA->ratr_state == DM_RATR_STA_HIGH) + { + HighRSSIThreshForRA = pRA->high2low_rssi_thresh_for_ra; + LowRSSIThreshForRA = + (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)? + (pRA->low_rssi_thresh_for_ra40M):(pRA->low_rssi_thresh_for_ra20M); + } + else if (pRA->ratr_state == DM_RATR_STA_LOW) + { + HighRSSIThreshForRA = pRA->high_rssi_thresh_for_ra; + LowRSSIThreshForRA = + (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)? + (pRA->low2high_rssi_thresh_for_ra40M):(pRA->low2high_rssi_thresh_for_ra20M); + } + else + { + HighRSSIThreshForRA = pRA->high_rssi_thresh_for_ra; + LowRSSIThreshForRA = + (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)? + (pRA->low_rssi_thresh_for_ra40M):(pRA->low_rssi_thresh_for_ra20M); + } + if(priv->undecorated_smoothed_pwdb >= (int)HighRSSIThreshForRA) + { + pRA->ratr_state = DM_RATR_STA_HIGH; + targetRATR = pRA->upper_rssi_threshold_ratr; + } + else if(priv->undecorated_smoothed_pwdb >= (int)LowRSSIThreshForRA) + { + pRA->ratr_state = DM_RATR_STA_MIDDLE; + targetRATR = pRA->middle_rssi_threshold_ratr; + } + else + { + pRA->ratr_state = DM_RATR_STA_LOW; + targetRATR = pRA->low_rssi_threshold_ratr; + } + currentRATR = read_nic_dword(dev, pEntry->ratr_index*4 + RATR0); + if( targetRATR != currentRATR ) + { + if(priv->rf_type == RF_1T2R) + { + targetRATR &=~ (RATE_ALL_OFDM_2SS); + } + printk("<<<<<<<<<<ratr_index*4, targetRATR); + write_nic_byte(dev, UFWP, 1); + pRA->last_ratr = targetRATR; + } + } + } + +} +#endif + +#endif +/*---------------------------Define function prototype------------------------*/ + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_core.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl_core.h @@ -0,0 +1,1359 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + +#ifndef _RTL_CORE_H +#define _RTL_CORE_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)) +#include +#endif +#include "rtllib/rtllib.h" +#ifdef CONFIG_BT_30 +#include "../../btlib/bt_inc.h" +#endif + +#ifdef ENABLE_DOT11D +#include "rtllib/dot11d.h" +#endif + + + +#ifdef RTL8192SE +#include "rtl_dm.h" +#include "rtl8192s/r8192S_inc.h" +#elif defined RTL8190P || defined RTL8192E +#include "rtl_dm.h" +#include "rtl8192e/r8192E_inc.h" +#elif defined RTL8192CE +#include "rtl8192c/r8192C_inc.h" +#endif + +#ifdef CONFIG_CFG_80211 +#include "rtl_regd.h" +#endif + +#ifdef CONFIG_RTL_RFKILL +#include "rtl_rfkill.h" +#endif + +#include "rtl_debug.h" +#include "rtl_eeprom.h" +#include "rtl_ps.h" +#include "rtl_pci.h" +#include "rtl_cam.h" + +#define DRV_COPYRIGHT "Copyright(c) 2008 - 2010 Realsil Semiconductor Corporation" +#define DRV_AUTHOR "" +#define DRV_VERSION "0017.0507.2010" + +#ifdef RTL8190P +#define DRV_NAME "rtl819xP" +#elif defined RTL8192E +#define DRV_NAME "rtl819xE" +#elif defined RTL8192SE +#define DRV_NAME "rtl819xSE" +#elif defined RTL8192CE +#define DRV_NAME "rtl8192CE" +#endif + +#define IS_HARDWARE_TYPE_819xP(_priv) ((((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8190P)||\ + (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192E)) +#define IS_HARDWARE_TYPE_8192SE(_priv) (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192SE) +#define IS_HARDWARE_TYPE_8192CE(_priv) (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192CE) +#define IS_HARDWARE_TYPE_8192CU(_priv) (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192CU) +#define IS_HARDWARE_TYPE_8192DE(_priv) (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192DE) +#define IS_HARDWARE_TYPE_8192DU(_priv) (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192DU) + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) +#define RTL_PCI_DEVICE(vend, dev, cfg) \ + .vendor = (vend), .device = (dev), \ + .subvendor = PCI_ANY_ID, .subdevice =PCI_ANY_ID , \ + .driver_data = (kernel_ulong_t)&(cfg) +#else +#define RTL_PCI_DEVICE(vend, dev, cfg) \ + .vendor = (vend), .device = (dev), \ + .subvendor = PCI_ANY_ID, .subdevice =PCI_ANY_ID +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) + typedef void irqreturn_type; +#else + typedef irqreturn_t irqreturn_type; +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) + +#if !defined(PCI_CAP_ID_EXP) +#define PCI_CAP_ID_EXP 0x10 +#endif +#if !defined(PCI_EXP_LNKCTL) +#define PCI_EXP_LNKCTL 0x10 +#endif + +typedef int __bitwise pci_power_t; +#define PCI_D0 ((pci_power_t __force) 0) +#define PCI_D1 ((pci_power_t __force) 1) +#define PCI_D2 ((pci_power_t __force) 2) +#define PCI_D3hot ((pci_power_t __force) 3) +#define PCI_D3cold ((pci_power_t __force) 4) +#define PCI_UNKNOWN ((pci_power_t __force) 5) +#define PCI_POWER_ERROR ((pci_power_t __force) -1) + +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) + #define rtl8192_interrupt(x,y,z) rtl8192_interrupt_rsl(x,y,z) +#else + #define rtl8192_interrupt(x,y,z) rtl8192_interrupt_rsl(x,y) +#endif + +#define RTL_MAX_SCAN_SIZE 128 + +#define RTL_RATE_MAX 30 + +#define TOTAL_CAM_ENTRY 32 +#define CAM_CONTENT_COUNT 8 + +#ifndef BIT +#define BIT(_i) (1<<(_i)) +#endif + +#ifdef _RTL8192_EXT_PATCH_ +#define IS_NIC_DOWN(priv) ((!(priv)->up) && (!(priv)->mesh_up)) +#else +#define IS_NIC_DOWN(priv) (!(priv)->up) +#endif + +#define IS_ADAPTER_SENDS_BEACON(dev) 0 + +#ifdef _RTL8192_EXT_PATCH_ +#define IS_UNDER_11N_AES_MODE(_rtllib) ((_rtllib->pHTInfo->bCurrentHTSupport == true) &&\ + ((_rtllib->pairwise_key_type == KEY_TYPE_CCMP) || \ + (_rtllib->mesh_pairwise_key_type == KEY_TYPE_CCMP))) +#else +#define IS_UNDER_11N_AES_MODE(_rtllib) ((_rtllib->pHTInfo->bCurrentHTSupport == true) &&\ + (_rtllib->pairwise_key_type == KEY_TYPE_CCMP)) +#endif + +#define HAL_MEMORY_MAPPED_IO_RANGE_8190PCI 0x1000 +#define HAL_HW_PCI_REVISION_ID_8190PCI 0x00 +#define HAL_MEMORY_MAPPED_IO_RANGE_8192PCIE 0x4000 +#define HAL_HW_PCI_REVISION_ID_8192PCIE 0x01 +#define HAL_MEMORY_MAPPED_IO_RANGE_8192SE 0x4000 +#define HAL_HW_PCI_REVISION_ID_8192SE 0x10 +#define HAL_HW_PCI_REVISION_ID_8192CE 0x1 +#define HAL_MEMORY_MAPPED_IO_RANGE_8192CE 0x4000 +#define HAL_HW_PCI_REVISION_ID_8192DE 0x0 +#define HAL_MEMORY_MAPPED_IO_RANGE_8192DE 0x4000 + +#define HAL_HW_PCI_8180_DEVICE_ID 0x8180 +#define HAL_HW_PCI_8185_DEVICE_ID 0x8185 +#define HAL_HW_PCI_8188_DEVICE_ID 0x8188 +#define HAL_HW_PCI_8198_DEVICE_ID 0x8198 +#define HAL_HW_PCI_8190_DEVICE_ID 0x8190 +#define HAL_HW_PCI_8192_DEVICE_ID 0x8192 +#define HAL_HW_PCI_8192SE_DEVICE_ID 0x8192 +#define HAL_HW_PCI_8174_DEVICE_ID 0x8174 +#define HAL_HW_PCI_8173_DEVICE_ID 0x8173 +#define HAL_HW_PCI_8172_DEVICE_ID 0x8172 +#define HAL_HW_PCI_8171_DEVICE_ID 0x8171 +#define HAL_HW_PCI_0045_DEVICE_ID 0x0045 +#define HAL_HW_PCI_0046_DEVICE_ID 0x0046 +#define HAL_HW_PCI_0044_DEVICE_ID 0x0044 +#define HAL_HW_PCI_0047_DEVICE_ID 0x0047 +#define HAL_HW_PCI_700F_DEVICE_ID 0x700F +#define HAL_HW_PCI_701F_DEVICE_ID 0x701F +#define HAL_HW_PCI_DLINK_DEVICE_ID 0x3304 +#define HAL_HW_PCI_8192CET_DEVICE_ID 0x8191 +#define HAL_HW_PCI_8192CE_DEVICE_ID 0x8178 +#define HAL_HW_PCI_8191CE_DEVICE_ID 0x8177 +#define HAL_HW_PCI_8188CE_DEVICE_ID 0x8176 +#define HAL_HW_PCI_8192CU_DEVICE_ID 0x8191 +#define HAL_HW_PCI_8192DE_DEVICE_ID 0x092D +#define HAL_HW_PCI_8192DU_DEVICE_ID 0x092D + +#ifdef RTL8192CE +#define RTL819X_DEFAULT_RF_TYPE RF_2T2R +#else +#define RTL819X_DEFAULT_RF_TYPE RF_1T2R +#endif + +#define RTLLIB_WATCH_DOG_TIME 2000 + +#define MAX_DEV_ADDR_SIZE 8 /* support till 64 bit bus width OS */ +#define MAX_FIRMWARE_INFORMATION_SIZE 32 +#define MAX_802_11_HEADER_LENGTH (40 + MAX_FIRMWARE_INFORMATION_SIZE) +#define ENCRYPTION_MAX_OVERHEAD 128 +#define MAX_FRAGMENT_COUNT 8 +#define MAX_TRANSMIT_BUFFER_SIZE (1600+(MAX_802_11_HEADER_LENGTH+ENCRYPTION_MAX_OVERHEAD)*MAX_FRAGMENT_COUNT) + +#define scrclng 4 + +#define DEFAULT_FRAG_THRESHOLD 2342U +#define MIN_FRAG_THRESHOLD 256U +#define DEFAULT_BEACONINTERVAL 0x64U + +#define DEFAULT_SSID "" +#define DEFAULT_RETRY_RTS 7 +#define DEFAULT_RETRY_DATA 7 +#define PRISM_HDR_SIZE 64 + +#define PHY_RSSI_SLID_WIN_MAX 100 + +#define RTL_IOCTL_WPA_SUPPLICANT SIOCIWFIRSTPRIV+30 + +#define TxBBGainTableLength 37 +#define CCKTxBBGainTableLength 23 + +#define CHANNEL_PLAN_LEN 10 +#define sCrcLng 4 + +#define NIC_SEND_HANG_THRESHOLD_NORMAL 4 +#define NIC_SEND_HANG_THRESHOLD_POWERSAVE 8 + +#define MAX_TX_QUEUE 9 + +#if defined RTL8192SE || defined RTL8192CE +#define MAX_RX_QUEUE 2 +#else +#define MAX_RX_QUEUE 1 +#endif + +#define MAX_RX_COUNT 64 +#define MAX_TX_QUEUE_COUNT 9 + +enum RTL819x_PHY_PARAM { + RTL819X_PHY_MACPHY_REG = 0, + RTL819X_PHY_MACPHY_REG_PG = 1, + RTL8188C_PHY_MACREG =2, + RTL8192C_PHY_MACREG =3, + RTL819X_PHY_REG = 4, + RTL819X_PHY_REG_1T2R = 5, + RTL819X_PHY_REG_to1T1R = 6, + RTL819X_PHY_REG_to1T2R = 7, + RTL819X_PHY_REG_to2T2R = 8, + RTL819X_PHY_REG_PG = 9, + RTL819X_AGC_TAB = 10, + RTL819X_PHY_RADIO_A =11, + RTL819X_PHY_RADIO_A_1T =12, + RTL819X_PHY_RADIO_A_2T =13, + RTL819X_PHY_RADIO_B =14, + RTL819X_PHY_RADIO_B_GM =15, + RTL819X_PHY_RADIO_C =16, + RTL819X_PHY_RADIO_D =17, + RTL819X_EEPROM_MAP =18, + RTL819X_EFUSE_MAP =19, +}; + +enum RTL_DEBUG { + COMP_TRACE = BIT0, + COMP_DBG = BIT1, + COMP_INIT = BIT2, + COMP_RECV = BIT3, + COMP_SEND = BIT4, + COMP_CMD = BIT5, + COMP_POWER = BIT6, + COMP_EPROM = BIT7, + COMP_SWBW = BIT8, + COMP_SEC = BIT9, + COMP_LPS = BIT10, + COMP_QOS = BIT11, + COMP_RATE = BIT12, + COMP_RXDESC = BIT13, + COMP_PHY = BIT14, + COMP_DIG = BIT15, + COMP_TXAGC = BIT16, + COMP_HALDM = BIT17, + COMP_POWER_TRACKING = BIT18, + COMP_CH = BIT19, + COMP_RF = BIT20, + COMP_FIRMWARE = BIT21, + COMP_HT = BIT22, + COMP_RESET = BIT23, + COMP_CMDPKT = BIT24, + COMP_SCAN = BIT25, + COMP_PS = BIT26, + COMP_DOWN = BIT27, + COMP_INTR = BIT28, + COMP_LED = BIT29, + COMP_MLME = BIT30, + COMP_ERR = BIT31 +}; + +typedef enum{ + NIC_UNKNOWN = 0, + NIC_8192E = 1, + NIC_8190P = 2, + NIC_8192SE = 4, + NIC_8192CE = 5, + NIC_8192CU = 6, + NIC_8192DE = 7, + NIC_8192DU = 8, + } nic_t; + +typedef enum _RT_EEPROM_TYPE{ + EEPROM_93C46, + EEPROM_93C56, + EEPROM_BOOT_EFUSE, +}RT_EEPROM_TYPE,*PRT_EEPROM_TYPE; + +typedef enum _tag_TxCmd_Config_Index{ + TXCMD_TXRA_HISTORY_CTRL = 0xFF900000, + TXCMD_RESET_TX_PKT_BUFF = 0xFF900001, + TXCMD_RESET_RX_PKT_BUFF = 0xFF900002, + TXCMD_SET_TX_DURATION = 0xFF900003, + TXCMD_SET_RX_RSSI = 0xFF900004, + TXCMD_SET_TX_PWR_TRACKING = 0xFF900005, + TXCMD_XXXX_CTRL, +}DCMD_TXCMD_OP; + +typedef enum _RT_RF_TYPE_819xU{ + RF_TYPE_MIN = 0, + RF_8225, + RF_8256, + RF_8258, + RF_6052=4, + RF_PSEUDO_11N = 5, +}RT_RF_TYPE_819xU, *PRT_RF_TYPE_819xU; + +typedef enum tag_Rf_Operatetion_State +{ + RF_STEP_INIT = 0, + RF_STEP_NORMAL, + RF_STEP_MAX +}RF_STEP_E; + +typedef enum _RT_STATUS{ + RT_STATUS_SUCCESS, + RT_STATUS_FAILURE, + RT_STATUS_PENDING, + RT_STATUS_RESOURCE +}RT_STATUS,*PRT_STATUS; + +typedef enum _RT_CUSTOMER_ID +{ + RT_CID_DEFAULT = 0, + RT_CID_8187_ALPHA0 = 1, + RT_CID_8187_SERCOMM_PS = 2, + RT_CID_8187_HW_LED = 3, + RT_CID_8187_NETGEAR = 4, + RT_CID_WHQL = 5, + RT_CID_819x_CAMEO = 6, + RT_CID_819x_RUNTOP = 7, + RT_CID_819x_Senao = 8, + RT_CID_TOSHIBA = 9, + RT_CID_819x_Netcore = 10, + RT_CID_Nettronix = 11, + RT_CID_DLINK = 12, + RT_CID_PRONET = 13, + RT_CID_COREGA = 14, + RT_CID_819x_ALPHA = 15, + RT_CID_819x_Sitecom = 16, + RT_CID_CCX = 17, + RT_CID_819x_Lenovo = 18, + RT_CID_819x_QMI = 19, + RT_CID_819x_Edimax_Belkin = 20, + RT_CID_819x_Sercomm_Belkin = 21, + RT_CID_819x_CAMEO1 = 22, + RT_CID_819x_MSI = 23, + RT_CID_819x_Acer = 24, + RT_CID_819x_HP =27, + RT_CID_819x_CLEVO = 28, + RT_CID_819x_Arcadyan_Belkin = 29, + RT_CID_819x_SAMSUNG = 30, + RT_CID_819x_WNC_COREGA = 31, + RT_CID_819x_Foxcoon = 32, + RT_CID_819x_DELL = 33, +}RT_CUSTOMER_ID, *PRT_CUSTOMER_ID; + +typedef enum _RESET_TYPE { + RESET_TYPE_NORESET = 0x00, + RESET_TYPE_NORMAL = 0x01, + RESET_TYPE_SILENT = 0x02 +} RESET_TYPE; + +typedef enum _IC_INFERIORITY_8192S{ + IC_INFERIORITY_A = 0, + IC_INFERIORITY_B = 1, +}IC_INFERIORITY_8192S, *PIC_INFERIORITY_8192S; + +typedef enum _PCI_BRIDGE_VENDOR { + PCI_BRIDGE_VENDOR_INTEL = 0x0, + PCI_BRIDGE_VENDOR_ATI, + PCI_BRIDGE_VENDOR_AMD, + PCI_BRIDGE_VENDOR_SIS , + PCI_BRIDGE_VENDOR_UNKNOWN, + PCI_BRIDGE_VENDOR_MAX , +} PCI_BRIDGE_VENDOR; + +typedef struct buffer +{ + struct buffer *next; + u32 *buf; + dma_addr_t dma; + +} buffer; + +typedef struct rtl_reg_debug{ + unsigned int cmd; + struct { + unsigned char type; + unsigned char addr; + unsigned char page; + unsigned char length; + } head; + unsigned char buf[0xff]; +}rtl_reg_debug; + +typedef struct _rt_9x_tx_rate_history { + u32 cck[4]; + u32 ofdm[8]; + u32 ht_mcs[4][16]; +}rt_tx_rahis_t, *prt_tx_rahis_t; + +typedef struct _RT_SMOOTH_DATA_4RF { + char elements[4][100]; + u32 index; + u32 TotalNum; + u32 TotalVal[4]; +}RT_SMOOTH_DATA_4RF, *PRT_SMOOTH_DATA_4RF; + +typedef struct _RT_SMOOTH_DATA { + u32 elements[100]; + u32 index; + u32 TotalNum; + u32 TotalVal; +}RT_SMOOTH_DATA, *PRT_SMOOTH_DATA; + +typedef struct Stats +{ + unsigned long txrdu; + unsigned long rxrdu; + unsigned long rxok; + unsigned long rxframgment; + unsigned long rxcmdpkt[4]; + unsigned long rxurberr; + unsigned long rxstaterr; + unsigned long rxdatacrcerr; + unsigned long rxmgmtcrcerr; + unsigned long rxcrcerrmin; + unsigned long rxcrcerrmid; + unsigned long rxcrcerrmax; + unsigned long received_rate_histogram[4][32]; + unsigned long received_preamble_GI[2][32]; + unsigned long rx_AMPDUsize_histogram[5]; + unsigned long rx_AMPDUnum_histogram[5]; + unsigned long numpacket_matchbssid; + unsigned long numpacket_toself; + unsigned long num_process_phyinfo; + unsigned long numqry_phystatus; + unsigned long numqry_phystatusCCK; + unsigned long numqry_phystatusHT; + unsigned long received_bwtype[5]; + unsigned long txnperr; + unsigned long txnpdrop; + unsigned long txresumed; + unsigned long rxoverflow; + unsigned long rxint; + unsigned long txnpokint; + unsigned long ints; + unsigned long shints; + unsigned long txoverflow; + unsigned long txlpokint; + unsigned long txlpdrop; + unsigned long txlperr; + unsigned long txbeokint; + unsigned long txbedrop; + unsigned long txbeerr; + unsigned long txbkokint; + unsigned long txbkdrop; + unsigned long txbkerr; + unsigned long txviokint; + unsigned long txvidrop; + unsigned long txvierr; + unsigned long txvookint; + unsigned long txvodrop; + unsigned long txvoerr; + unsigned long txbeaconokint; + unsigned long txbeacondrop; + unsigned long txbeaconerr; + unsigned long txmanageokint; + unsigned long txmanagedrop; + unsigned long txmanageerr; + unsigned long txcmdpktokint; + unsigned long txdatapkt; + unsigned long txfeedback; + unsigned long txfeedbackok; + unsigned long txoktotal; + unsigned long txokbytestotal; + unsigned long txokinperiod; + unsigned long txmulticast; + unsigned long txbytesmulticast; + unsigned long txbroadcast; + unsigned long txbytesbroadcast; + unsigned long txunicast; + unsigned long txbytesunicast; + unsigned long rxbytesunicast; + unsigned long txfeedbackfail; + unsigned long txerrtotal; + unsigned long txerrbytestotal; + unsigned long txerrmulticast; + unsigned long txerrbroadcast; + unsigned long txerrunicast; + unsigned long txretrycount; + unsigned long txfeedbackretry; + u8 last_packet_rate; + unsigned long slide_signal_strength[100]; + unsigned long slide_evm[100]; + unsigned long slide_rssi_total; + unsigned long slide_evm_total; + long signal_strength; + long signal_quality; + long last_signal_strength_inpercent; + long recv_signal_power; + u8 rx_rssi_percentage[4]; + u8 rx_evm_percentage[2]; + long rxSNRdB[4]; + rt_tx_rahis_t txrate; + u32 Slide_Beacon_pwdb[100]; + u32 Slide_Beacon_Total; + RT_SMOOTH_DATA_4RF cck_adc_pwdb; + u32 CurrentShowTxate; + u32 RssiCalculateCnt; + RT_SMOOTH_DATA ui_rssi; + RT_SMOOTH_DATA ui_link_quality; +} Stats; + +typedef struct ChnlAccessSetting { + u16 SIFS_Timer; + u16 DIFS_Timer; + u16 SlotTimeTimer; + u16 EIFS_Timer; + u16 CWminIndex; + u16 CWmaxIndex; +}*PCHANNEL_ACCESS_SETTING,CHANNEL_ACCESS_SETTING; + +typedef enum _TWO_PORT_STATUS +{ + TWO_PORT_STATUS__DEFAULT_ONLY, + TWO_PORT_STATUS__EXTENSION_ONLY, + TWO_PORT_STATUS__EXTENSION_FOLLOW_DEFAULT, + TWO_PORT_STATUS__DEFAULT_G_EXTENSION_N20, + TWO_PORT_STATUS__ADHOC, + TWO_PORT_STATUS__WITHOUT_ANY_ASSOCIATE +}TWO_PORT_STATUS; + +typedef struct _txbbgain_struct +{ + long txbb_iq_amplifygain; + u32 txbbgain_value; +} txbbgain_struct, *ptxbbgain_struct; + +typedef struct _ccktxbbgain_struct +{ + u8 ccktxbb_valuearray[8]; +} ccktxbbgain_struct,*pccktxbbgain_struct; + +typedef struct _init_gain +{ + u8 xaagccore1; + u8 xbagccore1; + u8 xcagccore1; + u8 xdagccore1; + u8 cca; + +} init_gain, *pinit_gain; + +typedef struct _tx_ring{ + u32 * desc; + u8 nStuckCount; + struct _tx_ring * next; +}__attribute__ ((packed)) tx_ring, * ptx_ring; + +struct rtl8192_tx_ring { + tx_desc *desc; + dma_addr_t dma; + unsigned int idx; + unsigned int entries; + struct sk_buff_head queue; +}; + + + +struct rtl819x_ops{ + nic_t nic_type; + void (* get_eeprom_size)(struct net_device* dev); + void (* init_adapter_variable)(struct net_device* dev); + void (* init_before_adapter_start)(struct net_device* dev); + bool (* initialize_adapter)(struct net_device* dev); + void (*link_change)(struct net_device* dev); + void (* tx_fill_descriptor)(struct net_device* dev, tx_desc * tx_desc, cb_desc * cb_desc, struct sk_buff *skb); + void (* tx_fill_cmd_descriptor)(struct net_device* dev, tx_desc_cmd * entry, cb_desc * cb_desc, struct sk_buff *skb); + bool (* rx_query_status_descriptor)(struct net_device* dev, struct rtllib_rx_stats* stats, rx_desc *pdesc, struct sk_buff* skb); + bool (* rx_command_packet_handler)(struct net_device *dev, struct sk_buff* skb, rx_desc *pdesc); + void (* stop_adapter)(struct net_device *dev, bool reset); +#if defined RTL8192SE || defined RTL8192CE + void (* update_ratr_table)(struct net_device* dev,u8* pMcsRate,struct sta_info* pEntry); +#else + void (* update_ratr_table)(struct net_device* dev); +#endif + void (* irq_enable)(struct net_device* dev); + void (* irq_disable)(struct net_device* dev); + void (* irq_clear)(struct net_device* dev); + void (* rx_enable)(struct net_device* dev); + void (* tx_enable)(struct net_device* dev); + void (* interrupt_recognized)(struct net_device *dev, u32 *p_inta, u32 *p_intb); + bool (* TxCheckStuckHandler)(struct net_device* dev); + bool (* RxCheckStuckHandler)(struct net_device* dev); +}; + +typedef struct r8192_priv +{ + struct pci_dev *pdev; + struct pci_dev *bridge_pdev; + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) + u32 pci_state; +#endif + + bool bfirst_init; + bool bfirst_after_down; + bool initialized_at_probe; + bool being_init_adapter; + bool bDriverIsGoingToUnload; + + int irq; + short irq_enabled; + + short up; + short up_first_time; +#ifdef _RTL8192_EXT_PATCH_ + short mesh_up; +#endif + + delayed_work_struct_rsl update_beacon_wq; + delayed_work_struct_rsl watch_dog_wq; + delayed_work_struct_rsl txpower_tracking_wq; + delayed_work_struct_rsl rfpath_check_wq; + delayed_work_struct_rsl gpio_change_rf_wq; + delayed_work_struct_rsl initialgain_operate_wq; + delayed_work_struct_rsl check_hw_scan_wq; + delayed_work_struct_rsl hw_scan_simu_wq; + delayed_work_struct_rsl start_hw_scan_wq; + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct workqueue_struct *priv_wq; +#else + u32 *priv_wq; +#endif + +#ifdef _RTL8192_EXT_PATCH_ + struct mshclass *mshobj; +#endif + + CHANNEL_ACCESS_SETTING ChannelAccessSetting; + + mp_adapter NdisAdapter; + + struct rtl819x_ops *ops; + struct rtllib_device *rtllib; + +#ifdef CONFIG_BT_30 + BT30Info BtInfo; + delayed_work_struct_rsl HCICmdWorkItem; + delayed_work_struct_rsl HCISendACLDataWorkItem; + delayed_work_struct_rsl HCISendBeaconWorkItem; +#endif + +#ifdef CONFIG_RTLWIFI_DEBUGFS + rtl_fs_debug *debug; +#endif /* CONFIG_IWLWIFI_DEBUGFS */ + + work_struct_rsl reset_wq; + + LOG_INTERRUPT_8190_T InterruptLog; + + RT_CUSTOMER_ID CustomerID; + + + RT_RF_TYPE_819xU rf_chip; + IC_INFERIORITY_8192S IC_Class; + HT_CHANNEL_WIDTH CurrentChannelBW; + BB_REGISTER_DEFINITION_T PHYRegDef[4]; + rate_adaptive rate_adaptive; + + ccktxbbgain_struct cck_txbbgain_table[CCKTxBBGainTableLength]; + ccktxbbgain_struct cck_txbbgain_ch14_table[CCKTxBBGainTableLength]; + + txbbgain_struct txbbgain_table[TxBBGainTableLength]; + + ACM_METHOD AcmMethod; + +#if defined RTL8192SE || defined RTL8192CE + LED_STRATEGY_8190 LedStrategy; + LED_8190 SwLed0; + LED_8190 SwLed1; +#endif + + prt_firmware pFirmware; + rtl819x_loopback_e LoopbackMode; + firmware_source_e firmware_source; + + struct timer_list watch_dog_timer; + struct timer_list fsync_timer; + struct timer_list gpio_polling_timer; + + spinlock_t fw_scan_lock; + spinlock_t irq_lock; + spinlock_t irq_th_lock; + spinlock_t tx_lock; + spinlock_t rf_ps_lock; + spinlock_t rw_lock; + spinlock_t rt_h2c_lock; +#ifdef CONFIG_ASPM_OR_D3 + spinlock_t D3_lock; +#endif + spinlock_t rf_lock; + spinlock_t ps_lock; + + struct sk_buff_head rx_queue; + struct sk_buff_head skb_queue; + + struct tasklet_struct irq_rx_tasklet; + struct tasklet_struct irq_tx_tasklet; + struct tasklet_struct irq_prepare_beacon_tasklet; + + struct semaphore wx_sem; + struct semaphore rf_sem; +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)) + struct semaphore mutex; +#else + struct mutex mutex; +#endif + + struct Stats stats; + struct iw_statistics wstats; + struct proc_dir_entry *dir_dev; + + short (*rf_set_sens)(struct net_device *dev,short sens); + u8 (*rf_set_chan)(struct net_device *dev,u8 ch); + void (*rf_close)(struct net_device *dev); + void (*rf_init)(struct net_device *dev); + +#ifdef CONFIG_CFG_80211 + struct ieee80211_rate rates[IEEE80211_NUM_BANDS][RTL_RATE_MAX]; + struct ieee80211_supported_band bands[IEEE80211_NUM_BANDS]; +#endif + + rx_desc *rx_ring[MAX_RX_QUEUE]; + struct sk_buff *rx_buf[MAX_RX_QUEUE][MAX_RX_COUNT]; + dma_addr_t rx_ring_dma[MAX_RX_QUEUE]; + unsigned int rx_idx[MAX_RX_QUEUE]; + int rxringcount; + u16 rxbuffersize; + + u32 LastRxDescTSFHigh; + u32 LastRxDescTSFLow; + + u16 EarlyRxThreshold; + u32 ReceiveConfig; + u8 AcmControl; + u8 RFProgType; + u8 retry_data; + u8 retry_rts; + u16 rts; + + struct rtl8192_tx_ring tx_ring[MAX_TX_QUEUE_COUNT]; + int txringcount; + int txbuffsize; + int txfwbuffersize; + atomic_t tx_pending[0x10]; + + u16 ShortRetryLimit; + u16 LongRetryLimit; + u32 TransmitConfig; + u8 RegCWinMin; + u8 keepAliveLevel; + +#ifdef CONFIG_RTL_RFKILL + bool rfkill_off; +#endif + bool sw_radio_on; + bool bHwRadioOff; + bool pwrdown; + bool blinked_ingpio; + u8 polling_timer_on; + + /**********************************************************/ + + enum card_type {PCI,MINIPCI,CARDBUS,USB}card_type; + + work_struct_rsl qos_activate; + + u8 bIbssCoordinator; + + short promisc; + short crcmon; + + int txbeaconcount; + + short chan; + short sens; + short max_sens; + u32 rx_prevlen; + + u8 ScanDelay; + bool ps_force; + + u32 irq_mask[2]; + + long RSSI_sum; + long RSSI_cnt; + + u8 Rf_Mode; + nic_t card_8192; + u8 card_8192_version; + + short enable_gpio0; + + u8 rf_type; + u8 IC_Cut; + char nick[IW_ESSID_MAX_SIZE + 1]; + + u32 RegBcnCtrlVal; + u8 AntDivCfg; + + bool bTKIPinNmodeFromReg; + bool bWEPinNmodeFromReg; + + bool bLedOpenDrain; + + u8 check_roaming_cnt; + + bool bIgnoreSilentReset; + u32 SilentResetRxSoltNum; + u32 SilentResetRxSlotIndex; + u32 SilentResetRxStuckEvent[MAX_SILENT_RESET_RX_SLOT_NUM]; + + void *scan_cmd; + u8 hwscan_bw_40; + + u16 nrxAMPDU_size; + u8 nrxAMPDU_aggr_num; + + u32 last_rxdesc_tsf_high; + u32 last_rxdesc_tsf_low; + + + u16 basic_rate; + u8 short_preamble; + u8 dot11CurrentPreambleMode; + u8 slot_time; + u16 SifsTime; + + u8 RegWirelessMode; + + u8 firmware_version; + u16 FirmwareSubVersion; + u16 rf_pathmap; + bool AutoloadFailFlag; + + u8 RegPciASPM; + u8 RegAMDPciASPM; + u8 RegHwSwRfOffD3; + u8 RegSupportPciASPM; + bool bSupportASPM; + bool bSupportBackDoor; + + bool bCurrentMrcSwitch; + u8 CurrentTxRate; + + u32 RfRegChnlVal[2]; + + u8 ShowRateMode; + u8 RATRTableBitmap; + + u8 EfuseMap[2][HWSET_MAX_SIZE_92S]; + u16 EfuseUsedBytes; + u8 EfuseUsedPercentage; + +#ifdef EFUSE_REPG_WORKAROUND + bool efuse_RePGSec1Flag; + u8 efuse_RePGData[8]; +#endif + + short epromtype; + u16 eeprom_vid; + u16 eeprom_did; + u16 eeprom_svid; + u16 eeprom_smid; + u8 eeprom_CustomerID; + u16 eeprom_ChannelPlan; + u8 eeprom_version; + + u8 EEPROMRegulatory; + u8 EEPROMPwrGroup[2][3]; + u8 EEPROMOptional; + +#if (EEPROM_OLD_FORMAT_SUPPORT == 1) + u8 EEPROMTxPowerLevelCCK[14]; + u8 EEPROMTxPowerLevelOFDM24G[14]; + u8 EEPROMTxPowerLevelOFDM5G[24]; +#else + u8 RfCckChnlAreaTxPwr[2][3]; + u8 RfOfdmChnlAreaTxPwr1T[2][3]; + u8 RfOfdmChnlAreaTxPwr2T[2][3]; +#endif + u8 EEPROMRfACCKChnl1TxPwLevel[3]; + u8 EEPROMRfAOfdmChnlTxPwLevel[3]; + u8 EEPROMRfCCCKChnl1TxPwLevel[3]; + u8 EEPROMRfCOfdmChnlTxPwLevel[3]; +#if defined (RTL8192S_WAPI_SUPPORT) + u8 EEPROMWapiSupport; + u8 WapiSupport; +#endif + u16 EEPROMTxPowerDiff; + u16 EEPROMAntPwDiff; + u8 EEPROMThermalMeter; + u8 EEPROMPwDiff; + u8 EEPROMCrystalCap; + + u8 EEPROMBluetoothCoexist; + u8 EEPROMBluetoothType; + u8 EEPROMBluetoothAntNum; + u8 EEPROMBluetoothAntIsolation; + u8 EEPROMBluetoothRadioShared; + + + u8 EEPROMSupportWoWLAN; + u8 EEPROMBoardType; + u8 EEPROM_Def_Ver; + u8 EEPROMHT2T_TxPwr[6]; + u8 EEPROMTSSI_A; + u8 EEPROMTSSI_B; + u8 EEPROMTxPowerLevelCCK_V1[3]; + u8 EEPROMLegacyHTTxPowerDiff; + + u8 BluetoothCoexist; + + u8 CrystalCap; + u8 ThermalMeter[2]; + + u16 FwCmdIOMap; + u32 FwCmdIOParam; + + u8 SwChnlInProgress; + u8 SwChnlStage; + u8 SwChnlStep; + u8 SetBWModeInProgress; + + u8 nCur40MhzPrimeSC; + + u32 RfReg0Value[4]; + u8 NumTotalRFPath; + bool brfpath_rxenable[4]; + + bool bTXPowerDataReadFromEEPORM; + + u16 RegChannelPlan; + u16 ChannelPlan; + bool bChnlPlanFromHW; + + bool RegRfOff; + bool isRFOff; + bool bInPowerSaveMode; + u8 bHwRfOffAction; + + bool aspm_clkreq_enable; + u32 pci_bridge_vendor; + u8 RegHostPciASPMSetting; + u8 RegDevicePciASPMSetting; + + bool RFChangeInProgress; + bool SetRFPowerStateInProgress; + bool bdisable_nic; + + u8 pwrGroupCnt; + + u8 ThermalValue_LCK; + u8 ThermalValue_IQK; + bool bRfPiEnable; + + u32 APKoutput[2][2]; + bool bAPKdone; + + long RegE94; + long RegE9C; + long RegEB4; + long RegEBC; + + u32 RegC04; + u32 Reg874; + u32 RegC08; + u32 ADDA_backup[16]; +#if defined RTL8192CE + u32 IQK_MAC_backup[IQK_MAC_REG_NUM]; +#endif + + bool SetFwCmdInProgress; + u8 CurrentFwCmdIO; + + u8 rssi_level; + + bool bInformFWDriverControlDM; + u8 PwrGroupHT20[2][14]; + u8 PwrGroupHT40[2][14]; + + u8 ThermalValue; + long EntryMinUndecoratedSmoothedPWDB; + long EntryMaxUndecoratedSmoothedPWDB; + u8 DynamicTxHighPowerLvl; + u8 LastDTPLvl; + u32 CurrentRATR0; + FALSE_ALARM_STATISTICS FalseAlmCnt; + + u8 DMFlag; + u8 DM_Type; + + u8 CckPwEnl; + u16 TSSI_13dBm; + u32 Pwr_Track; + u8 CCKPresentAttentuation_20Mdefault; + u8 CCKPresentAttentuation_40Mdefault; + char CCKPresentAttentuation_difference; + char CCKPresentAttentuation; + u8 bCckHighPower; + long undecorated_smoothed_pwdb; + long undecorated_smoothed_cck_adc_pwdb[4]; + +#if defined RTL8192CE + u32 MCSTxPowerLevelOriginalOffset[4][16]; +#elif defined RTL8192SE + u32 MCSTxPowerLevelOriginalOffset[4][7]; +#else + u32 MCSTxPowerLevelOriginalOffset[6]; +#endif + u32 CCKTxPowerLevelOriginalOffset; + u8 TxPowerLevelCCK[14]; + u8 TxPowerLevelCCK_A[14]; + u8 TxPowerLevelCCK_C[14]; + u8 TxPowerLevelOFDM24G[14]; + u8 TxPowerLevelOFDM5G[14]; + u8 TxPowerLevelOFDM24G_A[14]; + u8 TxPowerLevelOFDM24G_C[14]; + u8 LegacyHTTxPowerDiff; + u8 TxPowerDiff; + s8 RF_C_TxPwDiff; + s8 RF_B_TxPwDiff; + u8 RfTxPwrLevelCck[2][14]; + u8 RfTxPwrLevelOfdm1T[2][14]; + u8 RfTxPwrLevelOfdm2T[2][14]; + u8 AntennaTxPwDiff[3]; + char TxPwrHt20Diff[2][14]; + u8 TxPwrLegacyHtDiff[2][14]; + u8 TxPwrSafetyFlag; + u8 HT2T_TxPwr_A[14]; + u8 HT2T_TxPwr_B[14]; + u8 CurrentCckTxPwrIdx; + u8 CurrentOfdm24GTxPwrIdx; + + bool bdynamic_txpower; + bool bDynamicTxHighPower; + bool bDynamicTxLowPower; + bool bLastDTPFlag_High; + bool bLastDTPFlag_Low; + + bool bstore_last_dtpflag; + bool bstart_txctrl_bydtp; + + u8 rfa_txpowertrackingindex; + u8 rfa_txpowertrackingindex_real; + u8 rfa_txpowertracking_default; + u8 rfc_txpowertrackingindex; + u8 rfc_txpowertrackingindex_real; + u8 rfc_txpowertracking_default; + bool btxpower_tracking; + bool bcck_in_ch14; + + u8 TxPowerTrackControl; + u8 txpower_count; + bool btxpower_trackingInit; + +#ifdef RTL8192CE + char OFDM_index[2]; + char CCK_index; +#else + u8 OFDM_index[2]; + u8 CCK_index; +#endif + + u8 Record_CCK_20Mindex; + u8 Record_CCK_40Mindex; + + init_gain initgain_backup; + u8 DefaultInitialGain[4]; + bool bis_any_nonbepkts; + bool bcurrent_turbo_EDCA; + bool bis_cur_rdlstate; + + bool bCCKinCH14; + + u8 MidHighPwrTHR_L1; + u8 MidHighPwrTHR_L2; + + bool bfsync_processing; + u32 rate_record; + u32 rateCountDiffRecord; + u32 ContiuneDiffCount; + bool bswitch_fsync; + u8 framesync; + u32 framesyncC34; + u8 framesyncMonitor; + + bool bDMInitialGainEnable; + bool MutualAuthenticationFail; + + bool bDisableFrameBursting; + + u32 reset_count; + bool bpbc_pressed; + + u32 txpower_checkcnt; + u32 txpower_tracking_callback_cnt; + u8 thermal_read_val[40]; + u8 thermal_readback_index; + u32 ccktxpower_adjustcnt_not_ch14; + u32 ccktxpower_adjustcnt_ch14; + + RESET_TYPE ResetProgress; + bool bForcedSilentReset; + bool bDisableNormalResetCheck; + u16 TxCounter; + u16 RxCounter; + int IrpPendingCount; + bool bResetInProgress; + bool force_reset; + bool force_lps; + u8 InitialGainOperateType; + + bool chan_forced; + bool bSingleCarrier; + bool RegBoard; + bool bCckContTx; + bool bOfdmContTx; + bool bStartContTx; + u8 RegPaModel; + u8 btMpCckTxPower; + u8 btMpOfdmTxPower; + + u32 MptActType; + u32 MptIoOffset; + u32 MptIoValue; + u32 MptRfPath; + + u32 MptBandWidth; + u32 MptRateIndex; + u8 MptChannelToSw; + u32 MptRCR; + + u8 PwrDomainProtect; + u8 H2CTxCmdSeq; + +#ifdef RTL8192CE + u8 EEPROMTSSI[2]; + u8 EEPROMPwrLimitHT20[3]; + u8 EEPROMPwrLimitHT40[3]; + u8 EEPROMChnlAreaTxPwrCCK[2][3]; + u8 EEPROMChnlAreaTxPwrHT40_1S[2][3]; + u8 EEPROMChnlAreaTxPwrHT40_2SDiff[2][3]; + u8 TxPwrLevelCck[2][14]; + u8 TxPwrLevelHT40_1S[2][14]; + u8 TxPwrLevelHT40_2S[2][14]; + bool bRPDownloadFinished; + bool bH2CSetInProgress; + u8 SetIOInProgress; + IO_TYPE CurrentIOType; + + u8 CurFwCmdRegSet; + u8 LastHMEBoxNum; + + H2C_CMD_8192C H2CCmd; + + BT_COEXIST_STR bt_coexist; + u8 bRegBT_Iso; + u8 bRegBT_Sco; + u8 bBT_Ampdu; + + bool bAPKThermalMeterIgnore; + bool bInterruptMigration; + bool bDisableTxInt; +#endif + +}r8192_priv; + + +#ifdef _RTL8192_EXT_PATCH_ +struct meshdev_priv { + struct net_device_stats stats; + struct rtllib_device *rtllib; + struct r8192_priv * priv; +}; +#endif + +extern const struct ethtool_ops rtl819x_ethtool_ops; + +#ifdef RTL8192CE +#define Rtl819XFwImageArray Rtl8192CEFwImgArray +#define Rtl819XMAC_Array Rtl8192CEMAC_2T_Array +#define Rtl819XAGCTAB_2TArray Rtl8192CEAGCTAB_2TArray +#define Rtl819XAGCTAB_1TArray Rtl8192CEAGCTAB_1TArray +#define Rtl819XPHY_REG_2TArray Rtl8192CEPHY_REG_2TArray +#define Rtl819XPHY_REG_1TArray Rtl8192CEPHY_REG_1TArray +#define Rtl819XRadioA_2TArray Rtl8192CERadioA_2TArray +#define Rtl819XRadioA_1TArray Rtl8192CERadioA_1TArray +#define Rtl819XRadioB_2TArray Rtl8192CERadioB_2TArray +#define Rtl819XRadioB_1TArray Rtl8192CERadioB_1TArray +#define Rtl819XPHY_REG_Array_PG Rtl8192CEPHY_REG_Array_PG +#endif + +void rtl8192_tx_cmd(struct net_device *dev, struct sk_buff *skb); +short rtl8192_tx(struct net_device *dev, struct sk_buff* skb); + +u8 read_nic_io_byte(struct net_device *dev, int x); +u32 read_nic_io_dword(struct net_device *dev, int x); +u16 read_nic_io_word(struct net_device *dev, int x) ; +void write_nic_io_byte(struct net_device *dev, int x,u8 y); +void write_nic_io_word(struct net_device *dev, int x,u16 y); +void write_nic_io_dword(struct net_device *dev, int x,u32 y); + +u8 read_nic_byte(struct net_device *dev, int x); +u32 read_nic_dword(struct net_device *dev, int x); +u16 read_nic_word(struct net_device *dev, int x) ; +void write_nic_byte(struct net_device *dev, int x,u8 y); +void write_nic_word(struct net_device *dev, int x,u16 y); +void write_nic_dword(struct net_device *dev, int x,u32 y); + +void force_pci_posting(struct net_device *dev); + +void rtl8192_rx_enable(struct net_device *); +void rtl8192_tx_enable(struct net_device *); + +int rtl8192_hard_start_xmit(struct sk_buff *skb,struct net_device *dev); +void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate); +void rtl8192_data_hard_stop(struct net_device *dev); +void rtl8192_data_hard_resume(struct net_device *dev); +void rtl8192_restart(void *data); +void rtl819x_watchdog_wqcallback(void *data); +void rtl8192_hw_sleep_wq (void *data); +void watch_dog_timer_callback(unsigned long data); +void rtl8192_irq_rx_tasklet(struct r8192_priv *priv); +void rtl8192_irq_tx_tasklet(struct r8192_priv *priv); +int rtl8192_down(struct net_device *dev,bool shutdownrf); +int rtl8192_up(struct net_device *dev); +void rtl8192_commit(struct net_device *dev); +void rtl8192_set_chan(struct net_device *dev,short ch); + +void check_rfctrl_gpio_timer(unsigned long data); + +void rtl8192_hw_wakeup_wq(void *data); +irqreturn_type rtl8192_interrupt(int irq, void *netdev, struct pt_regs *regs); + +short rtl8192_pci_initdescring(struct net_device *dev); + +void rtl8192_cancel_deferred_work(struct r8192_priv* priv); + +int _rtl8192_up(struct net_device *dev,bool is_silent_reset); + +short rtl8192_is_tx_queue_empty(struct net_device *dev); +void rtl8192_irq_disable(struct net_device *dev); + +#ifdef _RTL8192_EXT_PATCH_ +extern int r8192_mesh_set_enc_ext(struct net_device *dev, struct iw_point *encoding, struct iw_encode_ext *ext, u8 *addr); +#ifdef BUILT_IN_MSHCLASS +extern int msh_init(void); +extern void msh_exit(void); +#endif +#endif + + +void rtl8192_tx_timeout(struct net_device *dev); +void rtl8192_pci_resetdescring(struct net_device *dev); +void rtl8192_SetWirelessMode(struct net_device* dev, u8 wireless_mode); +void rtl8192_irq_enable(struct net_device *dev); +void rtl8192_config_rate(struct net_device* dev, u16* rate_config); +void rtl8192_update_cap(struct net_device* dev, u16 cap); +void rtl8192_irq_disable(struct net_device *dev); + +void rtl819x_UpdateRxPktTimeStamp (struct net_device *dev, struct rtllib_rx_stats *stats); +long rtl819x_translate_todbm(struct r8192_priv * priv, u8 signal_strength_index ); +void rtl819x_update_rxsignalstatistics8190pci(struct r8192_priv * priv,struct rtllib_rx_stats * pprevious_stats); +u8 rtl819x_evm_dbtopercentage(char value); +void rtl819x_process_cck_rxpathsel(struct r8192_priv * priv,struct rtllib_rx_stats * pprevious_stats); +u8 rtl819x_query_rxpwrpercentage( char antpower ); +void rtl8192_record_rxdesc_forlateruse(struct rtllib_rx_stats * psrc_stats,struct rtllib_rx_stats * ptarget_stats); + +bool NicIFEnableNIC(struct net_device* dev); +bool NicIFDisableNIC(struct net_device* dev); + +bool +MgntActSet_RF_State( + struct net_device* dev, + RT_RF_POWER_STATE StateToSet, + RT_RF_CHANGE_SOURCE ChangeSource, + bool ProtectOrNot + ); +void +ActUpdateChannelAccessSetting( + struct net_device* dev, + WIRELESS_MODE WirelessMode, + PCHANNEL_ACCESS_SETTING ChnlAccessSetting + ); + +#ifdef CONFIG_CFG_80211 +struct net_device *wiphy_to_net_device(struct wiphy *wiphy); +#endif + +#endif + + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_eeprom.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_eeprom.c @@ -0,0 +1,140 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#include "rtl_core.h" +#include "rtl_eeprom.h" + +void eprom_cs(struct net_device *dev, short bit) +{ + if(bit) + write_nic_byte(dev, EPROM_CMD, + (1<epromtype==EEPROM_93C56){ + addr_str[7]=addr & 1; + addr_str[6]=addr & (1<<1); + addr_str[5]=addr & (1<<2); + addr_str[4]=addr & (1<<3); + addr_str[3]=addr & (1<<4); + addr_str[2]=addr & (1<<5); + addr_str[1]=addr & (1<<6); + addr_str[0]=addr & (1<<7); + addr_len=8; + }else{ + addr_str[5]=addr & 1; + addr_str[4]=addr & (1<<1); + addr_str[3]=addr & (1<<2); + addr_str[2]=addr & (1<<3); + addr_str[1]=addr & (1<<4); + addr_str[0]=addr & (1<<5); + addr_len=6; + } + eprom_cs(dev, 1); + eprom_ck_cycle(dev); + eprom_send_bits_string(dev, read_cmd, 3); + eprom_send_bits_string(dev, addr_str, addr_len); + + eprom_w(dev, 0); + + for(i=0;i<16;i++){ + eprom_ck_cycle(dev); + ret |= (eprom_r(dev)<<(15-i)); + } + + eprom_cs(dev, 0); + eprom_ck_cycle(dev); + + write_nic_byte(dev, EPROM_CMD, + (EPROM_CMD_NORMAL<, et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + ***************************************************************************** + */ +#include +#include +#include + +#include "rtl_core.h" + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) +static void rtl819x_ethtool_get_drvinfo(struct net_device *dev, + struct ethtool_drvinfo *info) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + strcpy(info->driver, DRV_NAME); + strcpy(info->version, DRV_VERSION); +#if defined RTL8192SE + snprintf(info->fw_version, sizeof(info->fw_version), "%d", + priv->pFirmware->FirmwareVersion); +#endif + strcpy(info->bus_info, pci_name(priv->pdev)); +} + +static u32 rtl819x_ethtool_get_link(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + return ((priv->rtllib->state == RTLLIB_LINKED) || + (priv->rtllib->state == RTLLIB_LINKED_SCANNING)); +} + +const struct ethtool_ops rtl819x_ethtool_ops = { + .get_drvinfo = rtl819x_ethtool_get_drvinfo, + .get_link = rtl819x_ethtool_get_link, +}; +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/BOM +++ linux-2.6.35/ubuntu/rtl8192se/BOM @@ -0,0 +1,2 @@ +Downloaded from: http://www.realtek.com/products/productsView.aspx?Langid=1&PFid=48&Level=5&Conn=4&ProdID=230 +Current Version: 0017.0507.2010 --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_core.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_core.c @@ -0,0 +1,5988 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#undef LOOP_TEST +#undef RX_DONT_PASS_UL +#undef DEBUG_EPROM +#undef DEBUG_RX_VERBOSE +#undef DUMMY_RX +#undef DEBUG_ZERO_RX +#undef DEBUG_RX_SKB +#undef DEBUG_TX_FRAG +#undef DEBUG_RX_FRAG +#undef DEBUG_TX_FILLDESC +#undef DEBUG_TX +#undef DEBUG_IRQ +#undef DEBUG_RX +#undef DEBUG_RXALLOC +#undef DEBUG_REGISTERS +#undef DEBUG_RING +#undef DEBUG_IRQ_TASKLET +#undef DEBUG_TX_ALLOC +#undef DEBUG_TX_DESC + +#include +#include +#include "rtl_core.h" + +#include "rtl_wx.h" +#ifndef RTL8192CE +#include "rtl_dm.h" +#endif + +#ifdef CONFIG_PM_RTL +#include "rtl_pm.h" +#endif + +#ifdef _RTL8192_EXT_PATCH_ +#include "../../mshclass/msh_class.h" +#include "rtl_mesh.h" +#endif + +#ifdef RTL8192S_WAPI_SUPPORT +#include "../../rtllib/wapi.h" +#include "../../rtllib/wapi_interface.h" +#endif + +int hwwep = 1; +static int channels = 0x3fff; +#ifdef _RTL8192_EXT_PATCH_ +char* ifname = "ra%d"; +#else +char* ifname = "wlan%d"; +#endif + + +#ifdef RTL8192SE +struct rtl819x_ops rtl8192se_ops = { + .nic_type = NIC_8192SE, + .get_eeprom_size = rtl8192se_get_eeprom_size, + .init_adapter_variable = rtl8192se_InitializeVariables, + .init_before_adapter_start = MacConfigBeforeFwDownload, + .initialize_adapter = rtl8192se_adapter_start, + .link_change = rtl8192se_link_change, + .tx_fill_descriptor = rtl8192se_tx_fill_desc, + .tx_fill_cmd_descriptor = rtl8192se_tx_fill_cmd_desc, + .rx_query_status_descriptor = rtl8192se_rx_query_status_desc, + .rx_command_packet_handler = rtl8192se_RxCommandPacketHandle, + .stop_adapter = rtl8192se_halt_adapter, + .update_ratr_table = rtl8192se_update_ratr_table, + .irq_enable = rtl8192se_EnableInterrupt, + .irq_disable = rtl8192se_DisableInterrupt, + .irq_clear = rtl8192se_ClearInterrupt, + .rx_enable = rtl8192se_enable_rx, + .tx_enable = rtl8192se_enable_tx, + .interrupt_recognized = rtl8192se_interrupt_recognized, + .TxCheckStuckHandler = rtl8192se_HalTxCheckStuck, + .RxCheckStuckHandler = rtl8192se_HalRxCheckStuck, +}; +#elif defined RTL8192CE +struct rtl819x_ops rtl8192ce_ops = { + .nic_type = NIC_8192CE, + .get_eeprom_size = rtl8192ce_get_eeprom_size, + .init_adapter_variable = rtl8192ce_InitializeVariables, + .initialize_adapter = rtl8192ce_adapter_start, + .link_change = rtl8192ce_link_change, + .tx_fill_descriptor = rtl8192ce_tx_fill_desc, + .tx_fill_cmd_descriptor = rtl8192ce_tx_fill_cmd_desc, + .rx_query_status_descriptor = rtl8192ce_rx_query_status_desc, + .rx_command_packet_handler = NULL, + .stop_adapter = rtl8192ce_halt_adapter, + .update_ratr_table = rtl8192ce_UpdateHalRATRTable, + .irq_enable = rtl8192ce_EnableInterrupt, + .irq_disable = rtl8192ce_DisableInterrupt, + .irq_clear = rtl8192ce_ClearInterrupt, + .rx_enable = rtl8192ce_enable_rx, + .tx_enable = rtl8192ce_enable_tx, + .interrupt_recognized = rtl8192ce_interrupt_recognized, + .TxCheckStuckHandler = rtl8192ce_HalTxCheckStuck, + .RxCheckStuckHandler = rtl8192ce_HalRxCheckStuck, +}; +#else +struct rtl819x_ops rtl819xp_ops = { +#ifdef RTL8192E + .nic_type = NIC_8192E, +#elif defined RTL8190P + .nic_type = NIC_8190P, +#endif + .get_eeprom_size = rtl8192_get_eeprom_size, + .init_adapter_variable = rtl8192_InitializeVariables, + .initialize_adapter = rtl8192_adapter_start, + .link_change = rtl8192_link_change, + .tx_fill_descriptor = rtl8192_tx_fill_desc, + .tx_fill_cmd_descriptor = rtl8192_tx_fill_cmd_desc, + .rx_query_status_descriptor = rtl8192_rx_query_status_desc, + .rx_command_packet_handler = NULL, + .stop_adapter = rtl8192_halt_adapter, + .update_ratr_table = rtl8192_update_ratr_table, + .irq_enable = rtl8192_EnableInterrupt, + .irq_disable = rtl8192_DisableInterrupt, + .irq_clear = rtl8192_ClearInterrupt, + .rx_enable = rtl8192_enable_rx, + .tx_enable = rtl8192_enable_tx, + .interrupt_recognized = rtl8192_interrupt_recognized, + .TxCheckStuckHandler = rtl8192_HalTxCheckStuck, + .RxCheckStuckHandler = rtl8192_HalRxCheckStuck, +}; +#endif + +static struct pci_device_id rtl8192_pci_id_tbl[] __devinitdata = { +#ifdef RTL8190P + /* Realtek */ + /* Dlink */ + {RTL_PCI_DEVICE(0x10ec, 0x8190, rtl819xp_ops)}, + /* Corega */ + {RTL_PCI_DEVICE(0x07aa, 0x0045, rtl819xp_ops)}, + {RTL_PCI_DEVICE(0x07aa, 0x0046, rtl819xp_ops)}, +#elif defined(RTL8192E) + {RTL_PCI_DEVICE(0x10ec, 0x8192, rtl819xp_ops)}, + {RTL_PCI_DEVICE(0x07aa, 0x0044, rtl819xp_ops)}, + {RTL_PCI_DEVICE(0x07aa, 0x0047, rtl819xp_ops)}, +#elif defined(RTL8192SE) /*8192SE*/ + /* take care of auto load fail case */ + {RTL_PCI_DEVICE(0x10ec, 0x8192, rtl8192se_ops)}, + {RTL_PCI_DEVICE(0x10ec, 0x8171, rtl8192se_ops)}, + {RTL_PCI_DEVICE(0x10ec, 0x8172, rtl8192se_ops)}, + {RTL_PCI_DEVICE(0x10ec, 0x8173, rtl8192se_ops)}, + {RTL_PCI_DEVICE(0x10ec, 0x8174, rtl8192se_ops)}, +#elif defined(RTL8192CE) /*8192CE*/ + {RTL_PCI_DEVICE(0x10ec, 0x8191, rtl8192ce_ops)}, + {RTL_PCI_DEVICE(0x10ec, 0x8178, rtl8192ce_ops)}, + {RTL_PCI_DEVICE(0x10ec, 0x8177, rtl8192ce_ops)}, + {RTL_PCI_DEVICE(0x10ec, 0x8176, rtl8192ce_ops)}, + {RTL_PCI_DEVICE(0x10ec, 0x092D, rtl8192ce_ops)}, +#endif + {} +}; +MODULE_DEVICE_TABLE(pci, rtl8192_pci_id_tbl); + +static int __devinit rtl8192_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id); +static void __devexit rtl8192_pci_disconnect(struct pci_dev *pdev); + +static struct pci_driver rtl8192_pci_driver = { + .name = DRV_NAME, /* Driver name */ + .id_table = rtl8192_pci_id_tbl, /* PCI_ID table */ + .probe = rtl8192_pci_probe, /* probe fn */ + .remove = __devexit_p(rtl8192_pci_disconnect), /* remove fn */ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 5, 0) +#ifdef CONFIG_PM_RTL + .suspend = rtl8192E_suspend, /* PM suspend fn */ + .resume = rtl8192E_resume, /* PM resume fn */ +#else + .suspend = NULL, /* PM suspend fn */ + .resume = NULL, /* PM resume fn */ +#endif +#endif +}; + +/**************************************************************************** + -----------------------------IO STUFF------------------------- +*****************************************************************************/ +bool +PlatformIOCheckPageLegalAndGetRegMask( + u32 u4bPage, + u8* pu1bPageMask +) +{ + bool bReturn = false; + *pu1bPageMask = 0xfe; + + switch(u4bPage) + { + case 1: case 2: case 3: case 4: + case 8: case 9: case 10: case 12: case 13: + bReturn = true; + *pu1bPageMask = 0xf0; + break; + + default: + bReturn = false; + break; + } + + return bReturn; +} + +void write_nic_io_byte(struct net_device *dev, int x,u8 y) +{ + u32 u4bPage = (x >> 8); + u8 u1PageMask = 0; + bool bIsLegalPage = false; + + if(u4bPage == 0) + { + outb(y&0xff,dev->base_addr +x); + }else + { + bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask); + if(bIsLegalPage) + { + u8 u1bPsr = read_nic_io_byte(dev, PSR); + + write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage)); + write_nic_io_byte(dev, (x & 0xff), y); + write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask)); + + }else + { + ; + } + } + + +} + +void write_nic_io_word(struct net_device *dev, int x,u16 y) +{ + u32 u4bPage = (x >> 8); + u8 u1PageMask = 0; + bool bIsLegalPage = false; + + if(u4bPage == 0) + { + outw(y,dev->base_addr +x); + }else + { + bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask); + if(bIsLegalPage) + { + u8 u1bPsr = read_nic_io_byte(dev, PSR); + + write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage)); + write_nic_io_word(dev, (x & 0xff), y); + write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask)); + + }else + { + ; + } + } + +} + +void write_nic_io_dword(struct net_device *dev, int x,u32 y) +{ + u32 u4bPage = (x >> 8); + u8 u1PageMask = 0; + bool bIsLegalPage = false; + + if(u4bPage == 0) + { + outl(y,dev->base_addr +x); + }else + { + bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask); + if(bIsLegalPage) + { + u8 u1bPsr = read_nic_io_byte(dev, PSR); + + write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage)); + write_nic_io_dword(dev, (x & 0xff), y); + write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask)); + + }else + { + ; + } + } + +} +u8 read_nic_io_byte(struct net_device *dev, int x) +{ + u32 u4bPage = (x >> 8); + u8 u1PageMask = 0; + bool bIsLegalPage = false; + u8 Data = 0; + + if(u4bPage == 0) + { + return 0xff&inb(dev->base_addr +x); + }else + { + bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask); + if(bIsLegalPage) + { + u8 u1bPsr = read_nic_io_byte(dev, PSR); + + write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage)); + Data = read_nic_io_byte(dev, (x & 0xff)); + write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask)); + + }else + { + ; + } + } + + return Data; +} + +u16 read_nic_io_word(struct net_device *dev, int x) +{ + u32 u4bPage = (x >> 8); + u8 u1PageMask = 0; + bool bIsLegalPage = false; + u16 Data = 0; + + if(u4bPage == 0) + { + return inw(dev->base_addr +x); + }else + { + bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask); + if(bIsLegalPage) + { + u8 u1bPsr = read_nic_io_byte(dev, PSR); + + write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage)); + Data = read_nic_io_word(dev, (x & 0xff)); + write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask)); + + }else + { + ; + } + } + + return Data; +} + +u32 read_nic_io_dword(struct net_device *dev, int x) +{ + u32 u4bPage = (x >> 8); + u8 u1PageMask = 0; + bool bIsLegalPage = false; + u32 Data = 0; + + if(u4bPage == 0) + { + return inl(dev->base_addr +x); + }else + { + bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask); + if(bIsLegalPage) + { + u8 u1bPsr = read_nic_io_byte(dev, PSR); + + write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage)); + Data = read_nic_io_dword(dev, (x & 0xff)); + write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask)); + + }else + { + ; + } + } + + return Data; +} + +u8 read_nic_byte(struct net_device *dev, int x) +{ +#ifdef CONFIG_RTL8192_IO_MAP + return read_nic_io_byte(dev, x); +#else + return 0xff&readb((u8*)dev->mem_start +x); +#endif +} + +u32 read_nic_dword(struct net_device *dev, int x) +{ +#ifdef CONFIG_RTL8192_IO_MAP + return read_nic_io_dword(dev, x); +#else + return readl((u8*)dev->mem_start +x); +#endif +} + +u16 read_nic_word(struct net_device *dev, int x) +{ +#ifdef CONFIG_RTL8192_IO_MAP + return read_nic_io_word(dev, x); +#else + return readw((u8*)dev->mem_start +x); +#endif +} + +void write_nic_byte(struct net_device *dev, int x,u8 y) +{ +#ifdef CONFIG_RTL8192_IO_MAP + write_nic_io_byte(dev, x, y); +#else + writeb(y,(u8*)dev->mem_start +x); + +#if !(defined RTL8192SE || defined RTL8192CE) + udelay(20); +#endif + +#if defined RTL8192CE + read_nic_byte(dev, x); +#endif + +#endif +} + +void write_nic_dword(struct net_device *dev, int x,u32 y) +{ +#ifdef CONFIG_RTL8192_IO_MAP + write_nic_io_dword(dev, x, y); +#else + writel(y,(u8*)dev->mem_start +x); + +#if !(defined RTL8192SE || defined RTL8192CE) + udelay(20); +#endif + +#if defined RTL8192CE + read_nic_dword(dev, x); +#endif + +#endif +} + +void write_nic_word(struct net_device *dev, int x,u16 y) +{ +#ifdef CONFIG_RTL8192_IO_MAP + write_nic_io_word(dev, x, y); +#else + writew(y,(u8*)dev->mem_start +x); + +#if !(defined RTL8192SE || defined RTL8192CE) + udelay(20); +#endif + +#if defined RTL8192CE + read_nic_word(dev, x); +#endif + +#endif +} + +/**************************************************************************** + -----------------------------GENERAL FUNCTION------------------------- +*****************************************************************************/ +bool +MgntActSet_RF_State( + struct net_device* dev, + RT_RF_POWER_STATE StateToSet, + RT_RF_CHANGE_SOURCE ChangeSource, + bool ProtectOrNot + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device * ieee = priv->rtllib; + bool bActionAllowed = false; + bool bConnectBySSID = false; + RT_RF_POWER_STATE rtState; + u16 RFWaitCounter = 0; + unsigned long flag; + RT_TRACE((COMP_PS | COMP_RF), "===>MgntActSet_RF_State(): StateToSet(%d)\n",StateToSet); + + + + if(!ProtectOrNot) + { + while(true) + { + spin_lock_irqsave(&priv->rf_ps_lock,flag); + if(priv->RFChangeInProgress) + { + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + RT_TRACE((COMP_PS | COMP_RF), "MgntActSet_RF_State(): RF Change in progress! Wait to set..StateToSet(%d).\n", StateToSet); + printk("MgntActSet_RF_State(): RF Change in progress! Wait to set..StateToSet(%d).\n", StateToSet); + #if 1 + while(priv->RFChangeInProgress) + { + RFWaitCounter ++; + RT_TRACE((COMP_PS | COMP_RF), "MgntActSet_RF_State(): Wait 1 ms (%d times)...\n", RFWaitCounter); + mdelay(1); + + if(RFWaitCounter > 100) + { + RT_TRACE(COMP_ERR, "MgntActSet_RF_State(): Wait too logn to set RF\n"); + return false; + } + } + #endif + } + else + { + priv->RFChangeInProgress = true; + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + break; + } + } + } + +#if 0 + if(!priv->up) + { + + if(!ProtectOrNot) + { + spin_lock_irqsave(&priv->rf_ps_lock,flag); + priv->RFChangeInProgress = false; + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + } + return false; + } +#endif + + rtState = priv->rtllib->eRFPowerState; + + switch(StateToSet) + { + case eRfOn: + + priv->rtllib->RfOffReason &= (~ChangeSource); + + if((ChangeSource == RF_CHANGE_BY_HW) && (priv->bHwRadioOff == true)){ + priv->bHwRadioOff = false; + } + + if(! priv->rtllib->RfOffReason) + { + priv->rtllib->RfOffReason = 0; + bActionAllowed = true; + + + if(rtState == eRfOff && ChangeSource >=RF_CHANGE_BY_HW ) + { + bConnectBySSID = true; + } + } + else{ + RT_TRACE((COMP_PS | COMP_RF), "MgntActSet_RF_State - eRfon reject pMgntInfo->RfOffReason= 0x%x, ChangeSource=0x%X\n", priv->rtllib->RfOffReason, ChangeSource); + } + + break; + + case eRfOff: + + if((priv->rtllib->iw_mode == IW_MODE_INFRA) || (priv->rtllib->iw_mode == IW_MODE_ADHOC)) + { + if ((priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS) || (ChangeSource > RF_CHANGE_BY_IPS)) + { + if(ieee->state == RTLLIB_LINKED) + priv->blinked_ingpio = true; + else + priv->blinked_ingpio = false; + rtllib_MgntDisconnect(priv->rtllib,disas_lv_ss); + + + + } + } + if((ChangeSource == RF_CHANGE_BY_HW) && (priv->bHwRadioOff == false)){ + priv->bHwRadioOff = true; + } + priv->rtllib->RfOffReason |= ChangeSource; + bActionAllowed = true; + break; + + case eRfSleep: + priv->rtllib->RfOffReason |= ChangeSource; + bActionAllowed = true; + break; + + default: + break; + } + + if(bActionAllowed) + { + RT_TRACE((COMP_PS | COMP_RF), "MgntActSet_RF_State(): Action is allowed.... StateToSet(%d), RfOffReason(%#X)\n", StateToSet, priv->rtllib->RfOffReason); + PHY_SetRFPowerState(dev, StateToSet); + if(StateToSet == eRfOn) + { + + if(bConnectBySSID && (priv->blinked_ingpio == true)) + { + queue_delayed_work_rsl(ieee->wq, &ieee->associate_procedure_wq, 0); + priv->blinked_ingpio = false; + + } +#ifdef _RTL8192_EXT_PATCH_ + if(priv->rtllib->iw_mode == IW_MODE_MESH){ + queue_work_rsl(ieee->wq, &ieee->ext_start_mesh_protocol_wq); + + } +#endif + } + else if(StateToSet == eRfOff) + { + } + } + else + { + RT_TRACE((COMP_PS | COMP_RF), "MgntActSet_RF_State(): Action is rejected.... StateToSet(%d), ChangeSource(%#X), RfOffReason(%#X)\n", StateToSet, ChangeSource, priv->rtllib->RfOffReason); + } + + if(!ProtectOrNot) + { + spin_lock_irqsave(&priv->rf_ps_lock,flag); + priv->RFChangeInProgress = false; + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + } + + RT_TRACE((COMP_PS && COMP_RF), "<===MgntActSet_RF_State()\n"); + return bActionAllowed; +} + + +short rtl8192_get_nic_desc_num(struct net_device *dev, int prio) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtl8192_tx_ring *ring = &priv->tx_ring[prio]; + + /* For now, we reserved two free descriptor as a safety boundary + * between the tail and the head + */ + if((prio == MGNT_QUEUE) &&(skb_queue_len(&ring->queue)>10)) + printk("-----[%d]---------ring->idx=%d queue_len=%d---------\n", + prio,ring->idx, skb_queue_len(&ring->queue)); + return skb_queue_len(&ring->queue); +} + +short rtl8192_check_nic_enough_desc(struct net_device *dev, int prio) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtl8192_tx_ring *ring = &priv->tx_ring[prio]; + + if (ring->entries - skb_queue_len(&ring->queue) >= 2) { + return 1; + } else { + return 0; + } +} + +void rtl8192_tx_timeout(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) + schedule_work(&priv->reset_wq); +#else + schedule_task(&priv->reset_wq); +#endif + printk("TXTIMEOUT"); +} + +void rtl8192_irq_enable(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + priv->irq_enabled = 1; + + priv->ops->irq_enable(dev); +} + +void rtl8192_irq_disable(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + priv->ops->irq_disable(dev); + + priv->irq_enabled = 0; +} + +void rtl8192_irq_clear(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + priv->ops->irq_clear(dev); +} + + +void rtl8192_set_chan(struct net_device *dev,short ch) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + RT_TRACE(COMP_CH, "=====>%s()====ch:%d\n", __FUNCTION__, ch); + printk("=====>%s()====ch:%d\n", __FUNCTION__, ch); + if (priv->chan_forced) + return; + + priv->chan = ch; + + +#ifndef LOOP_TEST + + + if (priv->rf_set_chan) + priv->rf_set_chan(dev,priv->chan); + +#ifdef CONFIG_FW_SETCHAN + priv->rtllib->SetFwCmdHandler(dev, FW_CMD_CHAN_SET); +#endif + +#endif +} + +void rtl8192_update_cap(struct net_device* dev, u16 cap) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_network *net = &priv->rtllib->current_network; + + + { + bool ShortPreamble; + + if(cap & WLAN_CAPABILITY_SHORT_PREAMBLE) + { + if(priv->dot11CurrentPreambleMode != PREAMBLE_SHORT) + { + ShortPreamble = true; + priv->dot11CurrentPreambleMode = PREAMBLE_SHORT; + printk("%s(): WLAN_CAPABILITY_SHORT_PREAMBLE\n", __func__); + priv->rtllib->SetHwRegHandler( dev, HW_VAR_ACK_PREAMBLE, (unsigned char *)&ShortPreamble ); + } + } + else + { + if(priv->dot11CurrentPreambleMode != PREAMBLE_LONG) + { + ShortPreamble = false; + priv->dot11CurrentPreambleMode = PREAMBLE_LONG; + printk("%s(): WLAN_CAPABILITY_LONG_PREAMBLE\n", __func__); + priv->rtllib->SetHwRegHandler( dev, HW_VAR_ACK_PREAMBLE, (unsigned char *)&ShortPreamble ); + } + } + } + +#ifdef RTL8192CE + if( net->mode & IEEE_G) +#elif defined RTL8192SE || defined RTL8192E || defined RTL8190P + if (net->mode & (IEEE_G|IEEE_N_24G)) +#endif + { + u8 slot_time_val; + u8 CurSlotTime = priv->slot_time; + +#ifdef RTL8192CE + if( (cap & WLAN_CAPABILITY_SHORT_SLOT_TIME) && (!(priv->rtllib->pHTInfo->RT2RT_HT_Mode & RT_HT_CAP_USE_LONG_PREAMBLE))) +#elif defined RTL8192SE || defined RTL8192E || defined RTL8190P + if ((cap & WLAN_CAPABILITY_SHORT_SLOT_TIME) && (!priv->rtllib->pHTInfo->bCurrentRT2RTLongSlotTime)) +#endif + { + if(CurSlotTime != SHORT_SLOT_TIME) + { + slot_time_val = SHORT_SLOT_TIME; + priv->rtllib->SetHwRegHandler( dev, HW_VAR_SLOT_TIME, &slot_time_val ); + } + } + else + { + if(CurSlotTime != NON_SHORT_SLOT_TIME) + { + slot_time_val = NON_SHORT_SLOT_TIME; + priv->rtllib->SetHwRegHandler( dev, HW_VAR_SLOT_TIME, &slot_time_val ); + } + } + } +} + +static struct rtllib_qos_parameters def_qos_parameters = { + {3,3,3,3}, + {7,7,7,7}, + {2,2,2,2}, + {0,0,0,0}, + {0,0,0,0} +}; + +void rtl8192_update_beacon(void *data) +{ +#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,20) + struct r8192_priv *priv = container_of_work_rsl(data, struct r8192_priv, update_beacon_wq.work); + struct net_device *dev = priv->rtllib->dev; +#else + struct net_device *dev = (struct net_device *)data; + struct r8192_priv *priv = rtllib_priv(dev); +#endif + struct rtllib_device* ieee = priv->rtllib; + struct rtllib_network* net = &ieee->current_network; + + if (ieee->pHTInfo->bCurrentHTSupport) + HTUpdateSelfAndPeerSetting(ieee, net); + ieee->pHTInfo->bCurrentRT2RTLongSlotTime = net->bssht.bdRT2RTLongSlotTime; + ieee->pHTInfo->RT2RT_HT_Mode = net->bssht.RT2RT_HT_Mode; + rtl8192_update_cap(dev, net->capability); +} + +#define MOVE_INTO_HANDLER +#ifdef RTL8192CE +int WDCAPARA_ADD[] = {REG_EDCA_BE_PARAM,REG_EDCA_BK_PARAM,REG_EDCA_VI_PARAM,REG_EDCA_VO_PARAM}; +#else +int WDCAPARA_ADD[] = {EDCAPARA_BE,EDCAPARA_BK,EDCAPARA_VI,EDCAPARA_VO}; +#endif +void rtl8192_qos_activate(void *data) +{ +#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,20) + struct r8192_priv *priv = container_of_work_rsl(data, struct r8192_priv, qos_activate); + struct net_device *dev = priv->rtllib->dev; +#else + struct net_device *dev = (struct net_device *)data; + struct r8192_priv *priv = rtllib_priv(dev); +#endif +#ifndef MOVE_INTO_HANDLER + struct rtllib_qos_parameters *qos_parameters = &priv->rtllib->current_network.qos_data.parameters; + u8 mode = priv->rtllib->current_network.mode; + u8 u1bAIFS; + u32 u4bAcParam; +#endif + int i; + + if (priv == NULL) + return; + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)) + down(&priv->mutex); +#else + mutex_lock(&priv->mutex); +#endif + if(priv->rtllib->state != RTLLIB_LINKED) + goto success; + RT_TRACE(COMP_QOS,"qos active process with associate response received\n"); + + for (i = 0; i < QOS_QUEUE_NUM; i++) { +#ifndef MOVE_INTO_HANDLER + u1bAIFS = qos_parameters->aifs[i] * ((mode&(IEEE_G|IEEE_N_24G)) ?9:20) + aSifsTime; + u4bAcParam = ((((u32)(qos_parameters->tx_op_limit[i]))<< AC_PARAM_TXOP_LIMIT_OFFSET)| + (((u32)(qos_parameters->cw_max[i]))<< AC_PARAM_ECW_MAX_OFFSET)| + (((u32)(qos_parameters->cw_min[i]))<< AC_PARAM_ECW_MIN_OFFSET)| + ((u32)u1bAIFS << AC_PARAM_AIFS_OFFSET)); + printk("===>ACI:%d:u4bAcParam:%x\n", i, u4bAcParam); + write_nic_dword(dev, WDCAPARA_ADD[i], u4bAcParam); +#else + priv->rtllib->SetHwRegHandler(dev, HW_VAR_AC_PARAM, (u8*)(&i)); +#endif + } + +success: +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)) + up(&priv->mutex); +#else + mutex_unlock(&priv->mutex); +#endif +} + +static int rtl8192_qos_handle_probe_response(struct r8192_priv *priv, + int active_network, + struct rtllib_network *network) +{ + int ret = 0; + u32 size = sizeof(struct rtllib_qos_parameters); + + if(priv->rtllib->state !=RTLLIB_LINKED) + return ret; + +#ifdef _RTL8192_EXT_PATCH_ + if (!((priv->rtllib->iw_mode == IW_MODE_INFRA ) || + ((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->only_mesh == 0)))) +#else + if ((priv->rtllib->iw_mode != IW_MODE_INFRA)) +#endif + return ret; + + if (network->flags & NETWORK_HAS_QOS_MASK) { + if (active_network && + (network->flags & NETWORK_HAS_QOS_PARAMETERS)) + network->qos_data.active = network->qos_data.supported; + + if ((network->qos_data.active == 1) && (active_network == 1) && + (network->flags & NETWORK_HAS_QOS_PARAMETERS) && + (network->qos_data.old_param_count != + network->qos_data.param_count)) { + network->qos_data.old_param_count = + network->qos_data.param_count; + priv->rtllib->wmm_acm = network->qos_data.wmm_acm; + queue_work_rsl(priv->priv_wq, &priv->qos_activate); + RT_TRACE (COMP_QOS, "QoS parameters change call " + "qos_activate\n"); + } + } else { + memcpy(&priv->rtllib->current_network.qos_data.parameters,\ + &def_qos_parameters, size); + + if ((network->qos_data.active == 1) && (active_network == 1)) { + queue_work_rsl(priv->priv_wq, &priv->qos_activate); + RT_TRACE(COMP_QOS, "QoS was disabled call qos_activate \n"); + } + network->qos_data.active = 0; + network->qos_data.supported = 0; + } + + return 0; +} + +static int rtl8192_handle_beacon(struct net_device * dev, + struct rtllib_beacon * beacon, + struct rtllib_network * network) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + rtl8192_qos_handle_probe_response(priv,1,network); + + queue_delayed_work_rsl(priv->priv_wq, &priv->update_beacon_wq, 0); + return 0; + +} + +static int rtl8192_qos_association_resp(struct r8192_priv *priv, + struct rtllib_network *network) +{ + int ret = 0; + unsigned long flags; + u32 size = sizeof(struct rtllib_qos_parameters); + int set_qos_param = 0; + + if ((priv == NULL) || (network == NULL)) + return ret; + + if(priv->rtllib->state !=RTLLIB_LINKED) + return ret; + +#ifdef _RTL8192_EXT_PATCH_ + if (!((priv->rtllib->iw_mode == IW_MODE_INFRA ) || + ((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->only_mesh == 0)))) +#else + if ((priv->rtllib->iw_mode != IW_MODE_INFRA)) +#endif + return ret; + + spin_lock_irqsave(&priv->rtllib->lock, flags); + if (network->flags & NETWORK_HAS_QOS_PARAMETERS) { + memcpy(&priv->rtllib->current_network.qos_data.parameters,\ + &network->qos_data.parameters,\ + sizeof(struct rtllib_qos_parameters)); + priv->rtllib->current_network.qos_data.active = 1; + priv->rtllib->wmm_acm = network->qos_data.wmm_acm; +#if 0 + if((priv->rtllib->current_network.qos_data.param_count != \ + network->qos_data.param_count)) +#endif + { + set_qos_param = 1; + priv->rtllib->current_network.qos_data.old_param_count = \ + priv->rtllib->current_network.qos_data.param_count; + priv->rtllib->current_network.qos_data.param_count = \ + network->qos_data.param_count; + } + } else { + memcpy(&priv->rtllib->current_network.qos_data.parameters,\ + &def_qos_parameters, size); + priv->rtllib->current_network.qos_data.active = 0; + priv->rtllib->current_network.qos_data.supported = 0; + set_qos_param = 1; + } + + spin_unlock_irqrestore(&priv->rtllib->lock, flags); + + RT_TRACE(COMP_QOS, "%s: network->flags = %d,%d\n", __FUNCTION__, + network->flags ,priv->rtllib->current_network.qos_data.active); + if (set_qos_param == 1) { + dm_init_edca_turbo(priv->rtllib->dev); + queue_work_rsl(priv->priv_wq, &priv->qos_activate); + } + return ret; +} + +static int rtl8192_handle_assoc_response(struct net_device *dev, + struct rtllib_assoc_response_frame *resp, + struct rtllib_network *network) +{ + struct r8192_priv *priv = rtllib_priv(dev); + rtl8192_qos_association_resp(priv, network); + return 0; +} + +#if 0 +void rtl8192_prepare_beacon(struct r8192_priv *priv) +{ +#ifdef _RTL8192_EXT_PATCH_ + struct net_device *dev = priv->rtllib->dev; +#endif + struct sk_buff *skb; + cb_desc *tcb_desc; + +#ifdef _RTL8192_EXT_PATCH_ + if((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->mesh_state == RTLLIB_NOLINK)) + return; +#endif + skb = rtllib_get_beacon(priv->rtllib); + tcb_desc = (cb_desc *)(skb->cb + 8); +#ifdef _RTL8192_EXT_PATCH_ + memset(skb->cb, 0, sizeof(skb->cb)); +#endif + tcb_desc->queue_index = BEACON_QUEUE; + tcb_desc->data_rate = 2; + tcb_desc->RATRIndex = 7; + tcb_desc->bTxDisableRateFallBack = 1; + tcb_desc->bTxUseDriverAssingedRate = 1; +#ifdef _RTL8192_EXT_PATCH_ + tcb_desc->bTxEnableFwCalcDur = 0; + memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev)); +#endif + skb_push(skb, priv->rtllib->tx_headroom); + if(skb){ + rtl8192_tx(priv->rtllib->dev,skb); + } +} +#else +void rtl8192_prepare_beacon(struct r8192_priv *priv) +{ + struct net_device *dev = priv->rtllib->dev; + struct sk_buff *pskb = NULL, *pnewskb = NULL; + cb_desc *tcb_desc = NULL; + struct rtl8192_tx_ring *ring = NULL; + tx_desc *pdesc = NULL; + +#ifdef _RTL8192_EXT_PATCH_ + if((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->mesh_state == RTLLIB_NOLINK)) + return; +#endif + ring = &priv->tx_ring[BEACON_QUEUE]; + pskb = __skb_dequeue(&ring->queue); + if(pskb) + kfree_skb(pskb); + + pnewskb = rtllib_get_beacon(priv->rtllib); + if(!pnewskb) + return; + +#ifdef _RTL8192_EXT_PATCH_ + memset(pnewskb->cb, 0, sizeof(pnewskb->cb)); +#endif + tcb_desc = (cb_desc *)(pnewskb->cb + 8); + tcb_desc->queue_index = BEACON_QUEUE; + tcb_desc->data_rate = 2; + tcb_desc->RATRIndex = 7; + tcb_desc->bTxDisableRateFallBack = 1; + tcb_desc->bTxUseDriverAssingedRate = 1; +#ifdef _RTL8192_EXT_PATCH_ + tcb_desc->bTxEnableFwCalcDur = 0; + memcpy((unsigned char *)(pnewskb->cb),&dev,sizeof(dev)); +#endif + skb_push(pnewskb, priv->rtllib->tx_headroom); + + pdesc = &ring->desc[0]; + priv->ops->tx_fill_descriptor(dev, pdesc, tcb_desc, pnewskb); + __skb_queue_tail(&ring->queue, pnewskb); + pdesc->OWN = 1; + + return; +} +#endif +void rtl8192_stop_beacon(struct net_device *dev) +{ +} + +void rtl8192_config_rate(struct net_device* dev, u16* rate_config) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_network *net; + u8 i=0, basic_rate = 0; +#ifdef _RTL8192_EXT_PATCH_ + if(priv->rtllib->iw_mode == IW_MODE_MESH) + net = & priv->rtllib->current_mesh_network; + else + net = & priv->rtllib->current_network; +#else + net = & priv->rtllib->current_network; +#endif + + for (i = 0; i < net->rates_len; i++) { + basic_rate = net->rates[i] & 0x7f; + switch (basic_rate) { + case MGN_1M: + *rate_config |= RRSR_1M; + break; + case MGN_2M: + *rate_config |= RRSR_2M; + break; + case MGN_5_5M: + *rate_config |= RRSR_5_5M; + break; + case MGN_11M: + *rate_config |= RRSR_11M; + break; + case MGN_6M: + *rate_config |= RRSR_6M; + break; + case MGN_9M: + *rate_config |= RRSR_9M; + break; + case MGN_12M: + *rate_config |= RRSR_12M; + break; + case MGN_18M: + *rate_config |= RRSR_18M; + break; + case MGN_24M: + *rate_config |= RRSR_24M; + break; + case MGN_36M: + *rate_config |= RRSR_36M; + break; + case MGN_48M: + *rate_config |= RRSR_48M; + break; + case MGN_54M: + *rate_config |= RRSR_54M; + break; + } + } + + for (i = 0; i < net->rates_ex_len; i++) { + basic_rate = net->rates_ex[i] & 0x7f; + switch (basic_rate) { + case MGN_1M: + *rate_config |= RRSR_1M; + break; + case MGN_2M: + *rate_config |= RRSR_2M; + break; + case MGN_5_5M: + *rate_config |= RRSR_5_5M; + break; + case MGN_11M: + *rate_config |= RRSR_11M; + break; + case MGN_6M: + *rate_config |= RRSR_6M; + break; + case MGN_9M: + *rate_config |= RRSR_9M; + break; + case MGN_12M: + *rate_config |= RRSR_12M; + break; + case MGN_18M: + *rate_config |= RRSR_18M; + break; + case MGN_24M: + *rate_config |= RRSR_24M; + break; + case MGN_36M: + *rate_config |= RRSR_36M; + break; + case MGN_48M: + *rate_config |= RRSR_48M; + break; + case MGN_54M: + *rate_config |= RRSR_54M; + break; + } + } +} + +void rtl8192_refresh_supportrate(struct r8192_priv* priv) +{ + struct rtllib_device* ieee = priv->rtllib; + if (ieee->mode == WIRELESS_MODE_N_24G || ieee->mode == WIRELESS_MODE_N_5G) { + memcpy(ieee->Regdot11HTOperationalRateSet, ieee->RegHTSuppRateSet, 16); + memcpy(ieee->Regdot11TxHTOperationalRateSet, ieee->RegHTSuppRateSet, 16); + +#ifdef RTL8192CE + if(priv->rf_type == RF_1T1R) { + ieee->Regdot11HTOperationalRateSet[1] = 0; + } +#endif + +#ifdef RTL8192SE + if(priv->rf_type == RF_1T1R) { + ieee->Regdot11HTOperationalRateSet[1] = 0; + } + if(priv->rf_type == RF_1T1R || priv->rf_type == RF_1T2R) + { + ieee->Regdot11TxHTOperationalRateSet[1] = 0; + } + + if(priv->rtllib->b1SSSupport == true) { + ieee->Regdot11HTOperationalRateSet[1] = 0; + } +#endif + } else { + memset(ieee->Regdot11HTOperationalRateSet, 0, 16); + } + return; +} + +u8 rtl8192_getSupportedWireleeMode(struct net_device*dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 ret = 0; + + switch(priv->rf_chip) { + case RF_8225: + case RF_8256: + case RF_6052: + case RF_PSEUDO_11N: + ret = (WIRELESS_MODE_N_24G|WIRELESS_MODE_G | WIRELESS_MODE_B); + break; + case RF_8258: + ret = (WIRELESS_MODE_A | WIRELESS_MODE_N_5G); + break; + default: + ret = WIRELESS_MODE_B; + break; + } + return ret; +} + +void rtl8192_SetWirelessMode(struct net_device* dev, u8 wireless_mode) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 bSupportMode = rtl8192_getSupportedWireleeMode(dev); + +#if 0 + if( (wireless_mode != WIRELESS_MODE_B) && + (wireless_mode != WIRELESS_MODE_G) && + (wireless_mode != WIRELESS_MODE_A) && + (wireless_mode != WIRELESS_MODE_AUTO) && + (wireless_mode != WIRELESS_MODE_N_24G) && + (wireless_mode != WIRELESS_MODE_N_5G) ) + { + wireless_mode = WIRELESS_MODE_AUTO; + } +#endif + if ((wireless_mode == WIRELESS_MODE_AUTO) || ((wireless_mode & bSupportMode) == 0)) { + if (bSupportMode & WIRELESS_MODE_N_24G) { + wireless_mode = WIRELESS_MODE_N_24G; + } else if (bSupportMode & WIRELESS_MODE_N_5G) { + wireless_mode = WIRELESS_MODE_N_5G; + } else if((bSupportMode & WIRELESS_MODE_A)) { + wireless_mode = WIRELESS_MODE_A; + } else if((bSupportMode & WIRELESS_MODE_G)) { + wireless_mode = WIRELESS_MODE_G; + } else if((bSupportMode & WIRELESS_MODE_B)) { + wireless_mode = WIRELESS_MODE_B; + } else { + RT_TRACE(COMP_ERR, "%s(), No valid wireless mode supported (%x)!!!\n", + __FUNCTION__, bSupportMode); + wireless_mode = WIRELESS_MODE_B; + } + } + +#ifdef _RTL8192_EXT_PATCH_ + if ((wireless_mode & WIRELESS_MODE_N_24G) == WIRELESS_MODE_N_24G) + wireless_mode = WIRELESS_MODE_N_24G; + else if((wireless_mode & WIRELESS_MODE_N_5G) == WIRELESS_MODE_N_5G) + wireless_mode = WIRELESS_MODE_N_5G; + else if ((wireless_mode & WIRELESS_MODE_A) == WIRELESS_MODE_A) + wireless_mode = WIRELESS_MODE_A; + else if ((wireless_mode & WIRELESS_MODE_G) == WIRELESS_MODE_G) + wireless_mode = WIRELESS_MODE_G; + else + wireless_mode = WIRELESS_MODE_B; +#else + if ((wireless_mode & (WIRELESS_MODE_B | WIRELESS_MODE_G)) == (WIRELESS_MODE_G | WIRELESS_MODE_B)) + wireless_mode = WIRELESS_MODE_G; +#endif + + priv->rtllib->mode = wireless_mode; + + ActUpdateChannelAccessSetting( dev, wireless_mode, &priv->ChannelAccessSetting); + + if ((wireless_mode == WIRELESS_MODE_N_24G) || (wireless_mode == WIRELESS_MODE_N_5G)){ + priv->rtllib->pHTInfo->bEnableHT = 1; + printk("%s(), wireless_mode:%x, bEnableHT = 1\n", __FUNCTION__,wireless_mode); + }else{ + priv->rtllib->pHTInfo->bEnableHT = 0; + printk("%s(), wireless_mode:%x, bEnableHT = 0\n", __FUNCTION__,wireless_mode); + } + + RT_TRACE(COMP_INIT, "Current Wireless Mode is %x\n", wireless_mode); + rtl8192_refresh_supportrate(priv); +} + + +#ifdef _RTL8192_EXT_PATCH_ +#define KEEP_ALIVE_INTERVAL 20 +#define DEFAULT_KEEP_ALIVE_LEVEL 1 + +static void MgntLinkKeepAlive(struct r8192_priv *priv ) +{ + if (priv->keepAliveLevel == 0) + return; + + if((priv->rtllib->state == RTLLIB_LINKED) && (!priv->rtllib->is_roaming)) + { + + if ( (priv->keepAliveLevel== 2) || + (priv->rtllib->LinkDetectInfo.LastNumTxUnicast == priv->rtllib->LinkDetectInfo.NumTxUnicastOkInPeriod && + priv->rtllib->LinkDetectInfo.NumRxUnicastOkInPeriod == 0) + ) + { + priv->rtllib->LinkDetectInfo.IdleCount++; + + if(priv->rtllib->LinkDetectInfo.IdleCount >= ((KEEP_ALIVE_INTERVAL / RT_CHECK_FOR_HANG_PERIOD)-1) ) + { + priv->rtllib->LinkDetectInfo.IdleCount = 0; + rtllib_sta_ps_send_null_frame(priv->rtllib, false); + } + } + else + { + priv->rtllib->LinkDetectInfo.IdleCount = 0; + } + priv->rtllib->LinkDetectInfo.LastNumTxUnicast = priv->rtllib->LinkDetectInfo.NumTxUnicastOkInPeriod; + priv->rtllib->LinkDetectInfo.LastNumRxUnicast = priv->rtllib->LinkDetectInfo.NumRxUnicastOkInPeriod; + } +} + +static void rtl8192_init_mesh_variable(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 i; + + priv->rtllib->mesh_security_setting = 0; + memset(priv->rtllib->swmeshcamtable,0,sizeof(SW_CAM_TABLE)*32); + priv->rtllib->mesh_sec_type = 0; + + priv->keepAliveLevel = DEFAULT_KEEP_ALIVE_LEVEL; + + priv->FwCmdIOMap = 0; + priv->FwCmdIOParam = 0; + priv->ThermalValue = 0; + priv->DMFlag = 0; + priv->rssi_level = 0; + priv->rtllib->bUseRAMask = 0; + + priv->rtllib->set_key_for_AP = rtl8192_set_key_for_AP; + memset(priv->rtllib->swmeshratrtable,0,8*(sizeof(SW_RATR_TABLE))); + priv->rtllib->mesh_amsdu_in_process = 0; + priv->rtllib->HwSecCamBitMap = 0; + memset(priv->rtllib->HwSecCamStaAddr,0,TOTAL_CAM_ENTRY * ETH_ALEN); + priv->rtllib->LinkingPeerBitMap = 0; + memset(priv->rtllib->LinkingPeerAddr,0,(MAX_MP-1) * ETH_ALEN); + memset(priv->rtllib->LinkingPeerSecState, 0, (MAX_MP-1)); + memset(priv->rtllib->peer_AID_Addr,0,30 * ETH_ALEN); + priv->rtllib->peer_AID_bitmap = 0; + priv->rtllib->backup_channel = 1; + priv->rtllib->del_hwsec_cam_entry = rtl8192_del_hwsec_cam_entry; + priv->rtllib->set_key_for_peer = meshdev_set_key_for_peer; + priv->rtllib->hostname_len = 0; + memset(priv->rtllib->hostname, 0, sizeof(priv->rtllib->hostname)); + strcpy(priv->rtllib->hostname, "Crab"); + priv->rtllib->hostname_len = strlen(priv->rtllib->hostname); + priv->rtllib->meshScanMode = 0; + priv->rtllib->currentRate = 0xffffffff; + priv->mshobj = alloc_mshobj(priv); + printk("priv is %p,mshobj is %p\n",priv,priv->mshobj); + + if (priv->mshobj) { + priv->rtllib->ext_patch_rtllib_start_protocol = + priv->mshobj->ext_patch_rtllib_start_protocol; + priv->rtllib->ext_patch_rtllib_stop_protocol = + priv->mshobj->ext_patch_rtllib_stop_protocol; + priv->rtllib->ext_patch_rtllib_start_mesh = + priv->mshobj->ext_patch_rtllib_start_mesh; + priv->rtllib->ext_patch_rtllib_probe_req_1 = + priv->mshobj->ext_patch_rtllib_probe_req_1; + priv->rtllib->ext_patch_rtllib_probe_req_2 = + priv->mshobj->ext_patch_rtllib_probe_req_2; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_auth = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_auth; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_deauth = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_deauth; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_open = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_peerlink_open; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_close = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_peerlink_close; + priv->rtllib->ext_patch_rtllib_close_all_peerlink = + priv->mshobj->ext_patch_rtllib_close_all_peerlink; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann = + priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann; + priv->rtllib->ext_patch_rtllib_ext_stop_scan_wq_set_channel = + priv->mshobj->ext_patch_rtllib_ext_stop_scan_wq_set_channel; + priv->rtllib->ext_patch_r819x_wx_set_mesh_chan = + priv->mshobj->ext_patch_r819x_wx_set_mesh_chan; + priv->rtllib->ext_patch_r819x_wx_set_channel = + priv->mshobj->ext_patch_r819x_wx_set_channel; + priv->rtllib->ext_patch_rtllib_process_probe_response_1 = + priv->mshobj->ext_patch_rtllib_process_probe_response_1; + priv->rtllib->ext_patch_rtllib_rx_mgt_on_probe_req = + priv->mshobj->ext_patch_rtllib_rx_mgt_on_probe_req; + priv->rtllib->ext_patch_rtllib_rx_mgt_update_expire = + priv->mshobj->ext_patch_rtllib_rx_mgt_update_expire; + priv->rtllib->ext_patch_get_beacon_get_probersp = + priv->mshobj->ext_patch_get_beacon_get_probersp; + priv->rtllib->ext_patch_rtllib_rx_on_rx = + priv->mshobj->ext_patch_rtllib_rx_on_rx; + priv->rtllib->ext_patch_rtllib_rx_frame_get_hdrlen = + priv->mshobj->ext_patch_rtllib_rx_frame_get_hdrlen; + priv->rtllib->ext_patch_rtllib_rx_frame_get_mac_hdrlen = + priv->mshobj->ext_patch_rtllib_rx_frame_get_mac_hdrlen; + priv->rtllib->ext_patch_rtllib_rx_frame_get_mesh_hdrlen_llc = + priv->mshobj->ext_patch_rtllib_rx_frame_get_mesh_hdrlen_llc; + priv->rtllib->ext_patch_rtllib_rx_is_valid_framectl = + priv->mshobj->ext_patch_rtllib_rx_is_valid_framectl; + priv->rtllib->ext_patch_rtllib_softmac_xmit_get_rate = + priv->mshobj->ext_patch_rtllib_softmac_xmit_get_rate; + /* added by david for setting acl dynamically */ + priv->rtllib->ext_patch_rtllib_acl_query = + priv->mshobj->ext_patch_rtllib_acl_query; + priv->rtllib->ext_patch_rtllib_is_mesh = + priv->mshobj->ext_patch_rtllib_is_mesh; + priv->rtllib->ext_patch_rtllib_create_crypt_for_peer = + priv->mshobj->ext_patch_rtllib_create_crypt_for_peer; + priv->rtllib->ext_patch_rtllib_get_peermp_htinfo = + priv->mshobj->ext_patch_rtllib_get_peermp_htinfo; + priv->rtllib->ext_patch_rtllib_send_ath_commit = + priv->mshobj->ext_patch_rtllib_send_ath_commit; + priv->rtllib->ext_patch_rtllib_send_ath_confirm = + priv->mshobj->ext_patch_rtllib_send_ath_confirm; + priv->rtllib->ext_patch_rtllib_rx_ath_commit = + priv->mshobj->ext_patch_rtllib_rx_ath_commit; + priv->rtllib->ext_patch_rtllib_rx_ath_confirm = + priv->mshobj->ext_patch_rtllib_rx_ath_confirm; + } + for (i = 0; i < MAX_QUEUE_SIZE; i++) { + skb_queue_head_init(&priv->rtllib->skb_meshaggQ[i]); + } +} + +int _rtl8192_mesh_up(struct net_device *dev,bool is_silent_reset) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + bool init_status = true; + priv->bDriverIsGoingToUnload = false; + priv->bdisable_nic = false; + + if(priv->mesh_up){ + RT_TRACE(COMP_ERR,"%s(): since mesh0 is already up, ra0 is forbidden to open.\n",__FUNCTION__); + return 0; + } + RT_TRACE(COMP_DOWN, "==========>%s()\n", __FUNCTION__); + if(!is_silent_reset) + priv->rtllib->iw_mode = IW_MODE_INFRA; + if(priv->up){ + RT_TRACE(COMP_ERR,"%s():%s is up,return\n",__FUNCTION__,DRV_NAME); + return -1; + } +#ifdef RTL8192SE + priv->ReceiveConfig = + RCR_APPFCS | RCR_APWRMGT | /*RCR_ADD3 |*/ + RCR_AMF | RCR_ADF | RCR_APP_MIC | RCR_APP_ICV | + RCR_AICV | RCR_ACRC32 | + RCR_AB | RCR_AM | + RCR_APM | + /*RCR_AAP |*/ + RCR_APP_PHYST_STAFF | RCR_APP_PHYST_RXFF | + (priv->EarlyRxThreshold<ReceiveConfig = (\ + RCR_APPFCS + | RCR_AMF | RCR_ADF| RCR_APP_MIC| RCR_APP_ICV + | RCR_AICV | RCR_ACRC32 + | RCR_AB | RCR_AM + | RCR_APM + | RCR_APP_PHYST_RXFF + | RCR_HTC_LOC_CTRL + ); +#endif + + if(!priv->mesh_up) + { + RT_TRACE(COMP_INIT, "Bringing up iface"); + priv->bfirst_init = true; + init_status = priv->ops->initialize_adapter(dev); + if(init_status != true) + { + RT_TRACE(COMP_ERR,"ERR!!! %s(): initialization is failed!\n",__FUNCTION__); + return -1; + } + RT_TRACE(COMP_INIT, "start adapter finished\n"); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC); + priv->rtllib->ieee_up=1; + priv->bfirst_init = false; +#ifdef ENABLE_GPIO_RADIO_CTL + if(priv->polling_timer_on == 0){ + check_rfctrl_gpio_timer((unsigned long)dev); + } +#endif + priv->rtllib->current_network.channel = INIT_DEFAULT_CHAN; + priv->rtllib->current_mesh_network.channel = INIT_DEFAULT_CHAN; + if((priv->mshobj->ext_patch_r819x_wx_set_mesh_chan) && (!is_silent_reset)) + priv->mshobj->ext_patch_r819x_wx_set_mesh_chan(dev,INIT_DEFAULT_CHAN); + if((priv->mshobj->ext_patch_r819x_wx_set_channel) && (!is_silent_reset)) + { + priv->mshobj->ext_patch_r819x_wx_set_channel(priv->rtllib, INIT_DEFAULT_CHAN); + } + dm_InitRateAdaptiveMask(dev); + } + else + { + rtllib_stop_scan_syncro(priv->rtllib); + } + priv->up=1; + printk("%s():set chan %d\n",__FUNCTION__,INIT_DEFAULT_CHAN); + priv->rtllib->set_chan(dev, INIT_DEFAULT_CHAN); + priv->up_first_time = 0; + if(!priv->rtllib->proto_started) + { +#ifdef RTL8192E + if(priv->rtllib->eRFPowerState!=eRfOn) + MgntActSet_RF_State(dev, eRfOn, priv->rtllib->RfOffReason,true); +#endif + if(priv->rtllib->state != RTLLIB_LINKED) + rtllib_softmac_start_protocol(priv->rtllib, 0); + } + if(!priv->mesh_up) + watch_dog_timer_callback((unsigned long) dev); + rtllib_reset_queue(priv->rtllib); + if(!netif_queue_stopped(dev)) + netif_start_queue(dev); + else + netif_wake_queue(dev); + RT_TRACE(COMP_DOWN, "<==========%s()\n", __FUNCTION__); + + return 0; +} + +int rtl8192_mesh_down(struct net_device *dev, bool shutdownrf) +{ + struct r8192_priv *priv = rtllib_priv(dev); + unsigned long flags = 0; + u8 RFInProgressTimeOut = 0; + + if (priv->up == 0) + return -1; + + RT_TRACE(COMP_DOWN, "==========>%s()\n", __FUNCTION__); +#ifdef ENABLE_LPS + if(priv->rtllib->state == RTLLIB_LINKED) + LeisurePSLeave(dev); +#endif + priv->up=0; + + /* FIXME */ + if (!netif_queue_stopped(dev)) + netif_stop_queue(dev); + if(!priv->mesh_up) + { + priv->bDriverIsGoingToUnload = true; + priv->rtllib->ieee_up = 0; + /* mesh stack has also be closed, then disalbe the hardware function at + * the same time */ + priv->rtllib->wpa_ie_len = 0; + if(priv->rtllib->wpa_ie) + kfree(priv->rtllib->wpa_ie); + priv->rtllib->wpa_ie = NULL; +#ifdef RTL8192S_WAPI_SUPPORT + priv->rtllib->wapiInfo.wapiTxMsk.bTxEnable = false; + priv->rtllib->wapiInfo.wapiTxMsk.bSet = false; +#endif + CamResetAllEntry(dev); + memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32); + rtl8192_irq_disable(dev); + rtl8192_cancel_deferred_work(priv); +#ifndef RTL8190P + cancel_delayed_work(&priv->rtllib->hw_wakeup_wq); +#endif + deinit_hal_dm(dev); + del_timer_sync(&priv->watch_dog_timer); + + rtllib_softmac_stop_protocol(priv->rtllib, 0, true); + SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock); + while(priv->RFChangeInProgress) + { + SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock); + if(RFInProgressTimeOut > 100) + { + SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock); + break; + } + printk("===>%s():RF is in progress, need to wait until rf chang is done.\n",__FUNCTION__); + mdelay(1); + RFInProgressTimeOut ++; + SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock); + } + priv->RFChangeInProgress = true; + SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock); + priv->ops->stop_adapter(dev, false); + SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock); + priv->RFChangeInProgress = false; + SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock); + udelay(100); + memset(&priv->rtllib->current_network, 0 , offsetof(struct rtllib_network, list)); + priv->rtllib->wap_set = 0; + priv->rtllib->current_network.channel = INIT_DEFAULT_CHAN; +#ifdef CONFIG_ASPM_OR_D3 + RT_ENABLE_ASPM(dev); +#endif + } else { + priv->rtllib->wpa_ie_len = 0; + if(priv->rtllib->wpa_ie) + kfree(priv->rtllib->wpa_ie); + priv->rtllib->wpa_ie = NULL; +#ifdef RTL8192S_WAPI_SUPPORT + priv->rtllib->wapiInfo.wapiTxMsk.bTxEnable = false; + priv->rtllib->wapiInfo.wapiTxMsk.bSet = false; +#endif + CamResetAllEntry(dev); + CamRestoreEachIFEntry(dev,1); + memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32); + + rtllib_softmac_stop_protocol(priv->rtllib, 0, true); + memset(&priv->rtllib->current_network, 0 , offsetof(struct rtllib_network, list)); + priv->rtllib->current_network.channel = INIT_DEFAULT_CHAN; + priv->rtllib->wap_set = 0; + } + + RT_TRACE(COMP_DOWN, "<==========%s()\n", __FUNCTION__); + + return 0; +} + +void rtl8192_dinit_mshobj(struct r8192_priv *priv) +{ + + if(priv && priv->mshobj) + { + if(priv->mshobj->ext_patch_remove_proc) + priv->mshobj->ext_patch_remove_proc(priv); + priv->rtllib->ext_patch_rtllib_start_protocol = 0; + priv->rtllib->ext_patch_rtllib_stop_protocol = 0; + priv->rtllib->ext_patch_rtllib_probe_req_1 = 0; + priv->rtllib->ext_patch_rtllib_probe_req_2 = 0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_auth =0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_deauth =0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_open = 0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm = 0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_close = 0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report= 0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req= 0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq = 0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep=0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr = 0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann=0; + priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann=0; + priv->rtllib->ext_patch_rtllib_ext_stop_scan_wq_set_channel = 0; + priv->rtllib->ext_patch_rtllib_process_probe_response_1 = 0; + priv->rtllib->ext_patch_rtllib_rx_mgt_on_probe_req = 0; + priv->rtllib->ext_patch_rtllib_rx_mgt_update_expire = 0; + priv->rtllib->ext_patch_rtllib_rx_on_rx = 0; + priv->rtllib->ext_patch_get_beacon_get_probersp = 0; + priv->rtllib->ext_patch_rtllib_rx_frame_get_hdrlen = 0; + priv->rtllib->ext_patch_rtllib_rx_frame_get_mac_hdrlen = 0; + priv->rtllib->ext_patch_rtllib_rx_frame_get_mesh_hdrlen_llc = 0; + priv->rtllib->ext_patch_rtllib_rx_is_valid_framectl = 0; + priv->rtllib->ext_patch_rtllib_softmac_xmit_get_rate = 0; + priv->rtllib->ext_patch_rtllib_is_mesh = 0; + priv->rtllib->ext_patch_rtllib_create_crypt_for_peer = 0; + priv->rtllib->ext_patch_rtllib_get_peermp_htinfo = 0; + priv->rtllib->ext_patch_rtllib_send_ath_commit = 0; + priv->rtllib->ext_patch_rtllib_send_ath_confirm = 0; + priv->rtllib->ext_patch_rtllib_rx_ath_commit = 0; + priv->rtllib->ext_patch_rtllib_rx_ath_confirm = 0; + free_mshobj(&priv->mshobj); + } + +} +#else +int _rtl8192_sta_up(struct net_device *dev,bool is_silent_reset) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + bool init_status = true; + priv->bDriverIsGoingToUnload = false; + priv->bdisable_nic = false; + + priv->up=1; + priv->rtllib->ieee_up=1; + + priv->up_first_time = 0; + RT_TRACE(COMP_INIT, "Bringing up iface"); + priv->bfirst_init = true; + init_status = priv->ops->initialize_adapter(dev); + if(init_status != true) + { + RT_TRACE(COMP_ERR,"ERR!!! %s(): initialization is failed!\n",__FUNCTION__); + priv->bfirst_init = false; + return -1; + } + + RT_TRACE(COMP_INIT, "start adapter finished\n"); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC); + priv->bfirst_init = false; +#if defined RTL8192SE || defined RTL8192CE + if(priv->rtllib->eRFPowerState!=eRfOn) + MgntActSet_RF_State(dev, eRfOn, priv->rtllib->RfOffReason,true); +#endif + +#ifdef ENABLE_GPIO_RADIO_CTL + if(priv->polling_timer_on == 0){ + check_rfctrl_gpio_timer((unsigned long)dev); + } +#endif + + if(priv->rtllib->state != RTLLIB_LINKED) +#ifndef CONFIG_MP + rtllib_softmac_start_protocol(priv->rtllib, 0); +#endif + rtllib_reset_queue(priv->rtllib); +#ifndef CONFIG_MP + watch_dog_timer_callback((unsigned long) dev); +#endif + + + if(!netif_queue_stopped(dev)) + netif_start_queue(dev); + else + netif_wake_queue(dev); + + return 0; +} + +int rtl8192_sta_down(struct net_device *dev, bool shutdownrf) +{ + struct r8192_priv *priv = rtllib_priv(dev); + unsigned long flags = 0; + u8 RFInProgressTimeOut = 0; + + if (priv->up == 0) return -1; + +#ifdef ENABLE_IPS + if(priv->rtllib->rtllib_ips_leave != NULL) + priv->rtllib->rtllib_ips_leave(dev); +#endif + +#ifdef ENABLE_LPS + if(priv->rtllib->state == RTLLIB_LINKED) + LeisurePSLeave(dev); +#endif + if(priv->rtllib->LedControlHandler) + priv->rtllib->LedControlHandler(dev, LED_CTL_POWER_OFF); + + priv->bDriverIsGoingToUnload = true; + priv->up=0; + priv->rtllib->ieee_up = 0; + priv->bfirst_after_down = 1; + RT_TRACE(COMP_DOWN, "==========>%s()\n", __FUNCTION__); + if (!netif_queue_stopped(dev)) + netif_stop_queue(dev); + + priv->rtllib->wpa_ie_len = 0; + if(priv->rtllib->wpa_ie) + kfree(priv->rtllib->wpa_ie); + priv->rtllib->wpa_ie = NULL; +#ifdef RTL8192S_WAPI_SUPPORT + priv->rtllib->wapiInfo.wapiTxMsk.bTxEnable = false; + priv->rtllib->wapiInfo.wapiTxMsk.bSet = false; +#endif + CamResetAllEntry(dev); + memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32); + rtl8192_irq_disable(dev); + + del_timer_sync(&priv->watch_dog_timer); + rtl8192_cancel_deferred_work(priv); +#ifndef RTL8190P +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + cancel_delayed_work(&priv->rtllib->hw_wakeup_wq); +#endif +#endif + + rtllib_softmac_stop_protocol(priv->rtllib, 0, true); + spin_lock_irqsave(&priv->rf_ps_lock,flags); + while(priv->RFChangeInProgress) + { + spin_unlock_irqrestore(&priv->rf_ps_lock,flags); + if(RFInProgressTimeOut > 100) + { + spin_lock_irqsave(&priv->rf_ps_lock,flags); + break; + } + printk("===>%s():RF is in progress, need to wait until rf chang is done.\n",__FUNCTION__); + mdelay(1); + RFInProgressTimeOut ++; + spin_lock_irqsave(&priv->rf_ps_lock,flags); + } + priv->RFChangeInProgress = true; + spin_unlock_irqrestore(&priv->rf_ps_lock,flags); + priv->ops->stop_adapter(dev, false); + spin_lock_irqsave(&priv->rf_ps_lock,flags); + priv->RFChangeInProgress = false; + spin_unlock_irqrestore(&priv->rf_ps_lock,flags); + udelay(100); + memset(&priv->rtllib->current_network, 0 , offsetof(struct rtllib_network, list)); +#ifdef CONFIG_ASPM_OR_D3 + RT_ENABLE_ASPM(dev); +#endif + RT_TRACE(COMP_DOWN, "<==========%s()\n", __FUNCTION__); + + return 0; +} + +#endif + +static void rtl8192_init_priv_handler(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + priv->rtllib->softmac_hard_start_xmit = rtl8192_hard_start_xmit; + priv->rtllib->set_chan = rtl8192_set_chan; + priv->rtllib->link_change = priv->ops->link_change; + priv->rtllib->softmac_data_hard_start_xmit = rtl8192_hard_data_xmit; + priv->rtllib->data_hard_stop = rtl8192_data_hard_stop; + priv->rtllib->data_hard_resume = rtl8192_data_hard_resume; + priv->rtllib->check_nic_enough_desc = rtl8192_check_nic_enough_desc; + priv->rtllib->get_nic_desc_num = rtl8192_get_nic_desc_num; +#ifdef _RTL8192_EXT_PATCH_ + priv->rtllib->set_mesh_key = r8192_mesh_set_enc_ext; +#endif + priv->rtllib->handle_assoc_response = rtl8192_handle_assoc_response; + priv->rtllib->handle_beacon = rtl8192_handle_beacon; + priv->rtllib->SetWirelessMode = rtl8192_SetWirelessMode; + +#ifdef ENABLE_LPS + priv->rtllib->LeisurePSLeave = LeisurePSLeave; +#endif + +#ifdef RTL8192CE + priv->rtllib->SetBWModeHandler = PHY_SetBWMode8192C; + priv->rf_set_chan = PHY_SwChnl8192C; + +#ifdef _ENABLE_SW_BEACON + priv->rtllib->start_send_beacons = NULL; + priv->rtllib->stop_send_beacons = NULL; +#else + priv->rtllib->start_send_beacons = rtl8192ce_SetBeaconRelatedRegisters; + priv->rtllib->stop_send_beacons = rtl8192_stop_beacon; + priv->rtllib->UpdateBeaconInterruptHandler = rtl8192ce_UpdateBeaconInterruptMask; + priv->rtllib->UpdateInterruptMaskHandler = rtl8192ce_UpdateInterruptMask; +#endif + + priv->rtllib->sta_wake_up = rtl8192_hw_wakeup; + priv->rtllib->enter_sleep_state = rtl8192_hw_to_sleep; + priv->rtllib->ps_is_queue_empty = rtl8192_is_tx_queue_empty; + + priv->rtllib->GetNmodeSupportBySecCfg = rtl8192ce_GetNmodeSupportBySecCfg; + priv->rtllib->GetHalfNmodeSupportByAPsHandler = rtl8192ce_GetHalfNmodeSupportByAPs; + + priv->rtllib->SetHwRegHandler = rtl8192ce_SetHwReg; + priv->rtllib->GetHwRegHandler = rtl8192ce_GetHwReg; + priv->rtllib->AllowAllDestAddrHandler = rtl8192ce_AllowAllDestAddr; + priv->rtllib->SetFwCmdHandler = rtl8192ce_phy_SetFwCmdIO; + priv->rtllib->UpdateHalRAMaskHandler = rtl8192ce_UpdateHalRAMask; + priv->rtllib->rtl_11n_user_show_rates = rtl8192_11n_user_show_rates; +#ifdef ENABLE_IPS + priv->rtllib->rtllib_ips_leave_wq = rtllib_ips_leave_wq; + priv->rtllib->rtllib_ips_leave = rtllib_ips_leave; +#endif + + priv->rtllib->LedControlHandler = LedControl8192CE; + priv->rtllib->ScanOperationBackupHandler = PHY_ScanOperationBackup8192C; +#endif + +#ifdef RTL8192SE + priv->rtllib->SetBWModeHandler = rtl8192_SetBWMode; + priv->rf_set_chan = rtl8192_phy_SwChnl; + +#ifdef _ENABLE_SW_BEACON + priv->rtllib->start_send_beacons = NULL; + priv->rtllib->stop_send_beacons = NULL; +#else + priv->rtllib->start_send_beacons = rtl8192se_start_beacon; + priv->rtllib->stop_send_beacons = rtl8192_stop_beacon; +#endif + priv->rtllib->sta_wake_up = rtl8192_hw_wakeup; + priv->rtllib->enter_sleep_state = rtl8192_hw_to_sleep; + priv->rtllib->ps_is_queue_empty = rtl8192_is_tx_queue_empty; + + priv->rtllib->GetNmodeSupportBySecCfg = rtl8192se_GetNmodeSupportBySecCfg; + priv->rtllib->GetHalfNmodeSupportByAPsHandler = rtl8192se_GetHalfNmodeSupportByAPs; + + priv->rtllib->SetBeaconRelatedRegistersHandler = SetBeaconRelatedRegisters8192SE; + priv->rtllib->Adhoc_InitRateAdaptive = Adhoc_InitRateAdaptive; + priv->rtllib->check_ht_cap = rtl8192se_check_ht_cap; + priv->rtllib->SetHwRegHandler = SetHwReg8192SE; + priv->rtllib->GetHwRegHandler = GetHwReg8192SE; + priv->rtllib->AllowAllDestAddrHandler = rtl8192se_AllowAllDestAddr; + priv->rtllib->SetFwCmdHandler = rtl8192se_set_fw_cmd; + priv->rtllib->UpdateHalRAMaskHandler = UpdateHalRAMask8192SE; + priv->rtllib->UpdateBeaconInterruptHandler = NULL; + priv->rtllib->rtl_11n_user_show_rates = rtl8192_11n_user_show_rates; +#ifdef ENABLE_IPS + priv->rtllib->rtllib_ips_leave_wq = rtllib_ips_leave_wq; + priv->rtllib->rtllib_ips_leave = rtllib_ips_leave; +#endif + + priv->rtllib->LedControlHandler = LedControl8192SE; + priv->rtllib->rtllib_start_hw_scan = rtl8192se_hw_scan_initiate; + priv->rtllib->rtllib_stop_hw_scan = rtl8192se_cancel_hw_scan; + + priv->rtllib->ScanOperationBackupHandler = PHY_ScanOperationBackup8192S; +#endif + +#ifdef RTL8192E + priv->rtllib->SetBWModeHandler = rtl8192_SetBWMode; + priv->rf_set_chan = rtl8192_phy_SwChnl; + +#ifdef _ENABLE_SW_BEACON + priv->rtllib->start_send_beacons = NULL; + priv->rtllib->stop_send_beacons = NULL; +#else + priv->rtllib->start_send_beacons = rtl8192e_start_beacon; + priv->rtllib->stop_send_beacons = rtl8192_stop_beacon; +#endif + + priv->rtllib->sta_wake_up = rtl8192_hw_wakeup; + priv->rtllib->enter_sleep_state = rtl8192_hw_to_sleep; + priv->rtllib->ps_is_queue_empty = rtl8192_is_tx_queue_empty; + + priv->rtllib->GetNmodeSupportBySecCfg = rtl8192_GetNmodeSupportBySecCfg; + priv->rtllib->GetHalfNmodeSupportByAPsHandler = rtl8192_GetHalfNmodeSupportByAPs; + + priv->rtllib->SetHwRegHandler = rtl8192e_SetHwReg; + priv->rtllib->AllowAllDestAddrHandler = rtl8192_AllowAllDestAddr; + priv->rtllib->SetFwCmdHandler = NULL; + priv->rtllib->InitialGainHandler = InitialGain819xPci; +#ifdef ENABLE_IPS + priv->rtllib->rtllib_ips_leave_wq = rtllib_ips_leave_wq; + priv->rtllib->rtllib_ips_leave = rtllib_ips_leave; +#endif + + priv->rtllib->LedControlHandler = NULL; + priv->rtllib->UpdateBeaconInterruptHandler = NULL; + + priv->rtllib->ScanOperationBackupHandler = PHY_ScanOperationBackup8192; +#endif + +#ifdef RTL8190P + priv->rtllib->SetBWModeHandler = rtl8192_SetBWMode; + priv->rf_set_chan = rtl8192_phy_SwChnl; + +#ifdef _ENABLE_SW_BEACON + priv->rtllib->start_send_beacons = NULL; + priv->rtllib->stop_send_beacons = NULL; +#else + priv->rtllib->start_send_beacons = rtl8192e_start_beacon; + priv->rtllib->stop_send_beacons = rtl8192_stop_beacon; +#endif + + priv->rtllib->GetNmodeSupportBySecCfg = rtl8192_GetNmodeSupportBySecCfg; + priv->rtllib->GetHalfNmodeSupportByAPsHandler = rtl8192_GetHalfNmodeSupportByAPs; + + priv->rtllib->SetHwRegHandler = rtl8192e_SetHwReg; + priv->rtllib->SetFwCmdHandler = NULL; + priv->rtllib->InitialGainHandler = InitialGain819xPci; +#ifdef ENABLE_IPS + priv->rtllib->rtllib_ips_leave_wq = rtllib_ips_leave_wq; + priv->rtllib->rtllib_ips_leave = rtllib_ips_leave; +#endif + + priv->rtllib->LedControlHandler = NULL; + priv->rtllib->UpdateBeaconInterruptHandler = NULL; + + priv->rtllib->ScanOperationBackupHandler = PHY_ScanOperationBackup8192; +#endif + +#ifdef CONFIG_RTL_RFKILL + priv->rtllib->rtllib_rfkill_poll = rtl8192_rfkill_poll; +#else + priv->rtllib->rtllib_rfkill_poll = NULL; +#endif +} + +static void rtl8192_init_priv_constant(struct net_device* dev) +{ +#if defined RTL8192SE || defined RTL8192CE || defined RTL8192E + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); +#endif + +#if defined RTL8192SE || defined RTL8192CE || defined RTL8192E + pPSC->RegMaxLPSAwakeIntvl = 5; +#endif + +#ifdef RTL8192CE + priv->bWEPinNmodeFromReg = 0; + priv->bTKIPinNmodeFromReg = 0; + + priv->RegAMDPciASPM = 0; + + priv->RegPciASPM = 3; + + priv->RegDevicePciASPMSetting = 0x03; + + priv->RegHostPciASPMSetting = 0x02; + + priv->RegHwSwRfOffD3 = 0; + + priv->RegSupportPciASPM = 1; + +#elif defined RTL8192SE + priv->RegPciASPM = 2; + + priv->RegDevicePciASPMSetting = 0x03; + + priv->RegHostPciASPMSetting = 0x02; + + priv->RegHwSwRfOffD3 = 2; + + priv->RegSupportPciASPM = 2; + +#elif defined RTL8192E + priv->RegPciASPM = 2; + + priv->RegDevicePciASPMSetting = 0x03; + + priv->RegHostPciASPMSetting = 0x02; + + priv->RegHwSwRfOffD3 = 2; + + priv->RegSupportPciASPM = 2; + +#elif defined RTL8190P +#endif +} + + +static void rtl8192_init_priv_variable(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 i; + + priv->AcmMethod = eAcmWay2_SW; + priv->dot11CurrentPreambleMode = PREAMBLE_AUTO; + priv->rtllib->hwscan_sem_up = 1; + priv->rtllib->status = 0; + priv->H2CTxCmdSeq = 0; + priv->bDisableFrameBursting = 0; + priv->bDMInitialGainEnable = 1; + priv->polling_timer_on = 0; + priv->up_first_time = 1; + priv->blinked_ingpio = false; + priv->bDriverIsGoingToUnload = false; + priv->being_init_adapter = false; + priv->initialized_at_probe = false; + priv->sw_radio_on = true; + priv->bdisable_nic = false; + priv->bfirst_init = false; + priv->txringcount = 64; + priv->rxbuffersize = 9100; + priv->rxringcount = MAX_RX_COUNT; + priv->irq_enabled=0; + priv->chan = 1; + priv->RegWirelessMode = WIRELESS_MODE_AUTO; + priv->RegChannelPlan = 0xf; + priv->nrxAMPDU_size = 0; + priv->nrxAMPDU_aggr_num = 0; + priv->last_rxdesc_tsf_high = 0; + priv->last_rxdesc_tsf_low = 0; + priv->rtllib->mode = WIRELESS_MODE_AUTO; + priv->rtllib->iw_mode = IW_MODE_INFRA; + priv->rtllib->bNetPromiscuousMode = false; + priv->rtllib->IntelPromiscuousModeInfo.bPromiscuousOn = false; + priv->rtllib->IntelPromiscuousModeInfo.bFilterSourceStationFrame = false; + priv->rtllib->ieee_up=0; + priv->retry_rts = DEFAULT_RETRY_RTS; + priv->retry_data = DEFAULT_RETRY_DATA; + priv->rtllib->rts = DEFAULT_RTS_THRESHOLD; + priv->rtllib->rate = 110; + priv->rtllib->short_slot = 1; + priv->promisc = (dev->flags & IFF_PROMISC) ? 1:0; + priv->bcck_in_ch14 = false; + priv->bfsync_processing = false; + priv->CCKPresentAttentuation = 0; + priv->rfa_txpowertrackingindex = 0; + priv->rfc_txpowertrackingindex = 0; + priv->CckPwEnl = 6; + priv->ScanDelay = 50; + priv->ResetProgress = RESET_TYPE_NORESET; + priv->bForcedSilentReset = 0; + priv->bDisableNormalResetCheck = false; + priv->force_reset = false; + memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32); + + memset(&priv->InterruptLog,0,sizeof(LOG_INTERRUPT_8190_T)); + priv->RxCounter = 0; + priv->rtllib->wx_set_enc = 0; + priv->bHwRadioOff = false; + priv->RegRfOff = 0; + priv->isRFOff = false; + priv->bInPowerSaveMode = false; + priv->rtllib->RfOffReason = 0; + priv->RFChangeInProgress = false; + priv->bHwRfOffAction = 0; + priv->SetRFPowerStateInProgress = false; + priv->rtllib->PowerSaveControl.bInactivePs = true; + priv->rtllib->PowerSaveControl.bIPSModeBackup = false; + priv->rtllib->PowerSaveControl.bLeisurePs = true; + priv->rtllib->PowerSaveControl.bFwCtrlLPS = false; + priv->rtllib->LPSDelayCnt = 0; + priv->rtllib->sta_sleep = LPS_IS_WAKE; + priv->rtllib->eRFPowerState = eRfOn; + + priv->txpower_checkcnt = 0; + priv->thermal_readback_index =0; + priv->txpower_tracking_callback_cnt = 0; + priv->ccktxpower_adjustcnt_ch14 = 0; + priv->ccktxpower_adjustcnt_not_ch14 = 0; + +#if defined RTL8192SE + for(i = 0; irtllib->peer_assoc_list[i]=NULL; + priv->rtllib->AvailableAIDTable[i] = 99; + } + priv->RATRTableBitmap = 0; + priv->rtllib->amsdu_in_process = 0; +#endif + + priv->rtllib->current_network.beacon_interval = DEFAULT_BEACONINTERVAL; + priv->rtllib->iw_mode = IW_MODE_INFRA; + priv->rtllib->active_scan = 1; + priv->rtllib->be_scan_inprogress = false; + priv->rtllib->modulation = RTLLIB_CCK_MODULATION | RTLLIB_OFDM_MODULATION; + priv->rtllib->host_encrypt = 1; + priv->rtllib->host_decrypt = 1; + + priv->rtllib->dot11PowerSaveMode = eActive; +#if defined (RTL8192S_WAPI_SUPPORT) + priv->rtllib->wapiInfo.bWapiPSK = false; +#endif + priv->rtllib->fts = DEFAULT_FRAG_THRESHOLD; + priv->rtllib->MaxMssDensity = 0; + priv->rtllib->MinSpaceCfg = 0; + + priv->card_type = PCI; + +#if 0 + { + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_HALT_NIC; + pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_CLK_REQ; + pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_ASPM; + pPSC->RegRfPsLevel |= RT_RF_LPS_LEVEL_ASPM; + printk("=================>%s():RegRfPsLevel:%#x\n", __func__,pPSC->RegRfPsLevel); + } +#endif + + priv->AcmControl = 0; + priv->pFirmware = (rt_firmware*)vmalloc(sizeof(rt_firmware)); + if (priv->pFirmware) + memset(priv->pFirmware, 0, sizeof(rt_firmware)); + + skb_queue_head_init(&priv->rx_queue); + skb_queue_head_init(&priv->skb_queue); + + for(i = 0; i < MAX_QUEUE_SIZE; i++) { + skb_queue_head_init(&priv->rtllib->skb_waitQ [i]); + } + for(i = 0; i < MAX_QUEUE_SIZE; i++) { + skb_queue_head_init(&priv->rtllib->skb_aggQ [i]); + } + +} + +static void rtl8192_init_priv_lock(struct r8192_priv* priv) +{ + spin_lock_init(&priv->fw_scan_lock); + spin_lock_init(&priv->tx_lock); + spin_lock_init(&priv->irq_lock); + spin_lock_init(&priv->irq_th_lock); + spin_lock_init(&priv->rf_ps_lock); + spin_lock_init(&priv->ps_lock); + spin_lock_init(&priv->rf_lock); + spin_lock_init(&priv->rt_h2c_lock); +#ifdef CONFIG_ASPM_OR_D3 + spin_lock_init(&priv->D3_lock); +#endif + sema_init(&priv->wx_sem,1); + sema_init(&priv->rf_sem,1); +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)) + sema_init(&priv->mutex, 1); +#else + mutex_init(&priv->mutex); +#endif +} + +static void rtl8192_init_priv_task(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) +#ifdef PF_SYNCTHREAD + priv->priv_wq = create_workqueue(DRV_NAME,0); +#else + priv->priv_wq = create_workqueue(DRV_NAME); +#endif +#endif + INIT_WORK_RSL(&priv->reset_wq, (void*)rtl8192_restart, dev); +#ifdef ENABLE_IPS + INIT_WORK_RSL(&priv->rtllib->ips_leave_wq, (void*)IPSLeave_wq, dev); +#endif + INIT_DELAYED_WORK_RSL(&priv->watch_dog_wq, (void*)rtl819x_watchdog_wqcallback, dev); + INIT_DELAYED_WORK_RSL(&priv->txpower_tracking_wq, (void*)dm_txpower_trackingcallback, dev); + INIT_DELAYED_WORK_RSL(&priv->rfpath_check_wq, (void*)dm_rf_pathcheck_workitemcallback, dev); + INIT_DELAYED_WORK_RSL(&priv->update_beacon_wq, (void*)rtl8192_update_beacon, dev); + INIT_WORK_RSL(&priv->qos_activate, (void*)rtl8192_qos_activate, dev); +#ifndef RTL8190P + INIT_DELAYED_WORK_RSL(&priv->rtllib->hw_wakeup_wq,(void*) rtl8192_hw_wakeup_wq, dev); + INIT_DELAYED_WORK_RSL(&priv->rtllib->hw_sleep_wq,(void*) rtl8192_hw_sleep_wq, dev); +#endif +#if defined RTL8192SE + INIT_DELAYED_WORK_RSL(&priv->check_hw_scan_wq, (void*)rtl8192se_check_hw_scan, dev); + INIT_DELAYED_WORK_RSL(&priv->hw_scan_simu_wq, (void*)rtl8192se_hw_scan_simu, dev); + INIT_DELAYED_WORK_RSL(&priv->start_hw_scan_wq, (void*)rtl8192se_start_hw_scan, dev); + INIT_DELAYED_WORK_RSL(&priv->rtllib->check_tsf_wq,(void*)rtl8192se_check_tsf_wq, dev); + INIT_DELAYED_WORK_RSL(&priv->rtllib->update_assoc_sta_info_wq, + (void*)rtl8192se_update_assoc_sta_info_wq, dev); +#endif +#ifdef _RTL8192_EXT_PATCH_ + INIT_WORK_RSL(&priv->rtllib->ext_create_crypt_for_peers_wq, (void*)msh_create_crypt_for_peers_wq, dev); + INIT_WORK_RSL(&priv->rtllib->ext_path_sel_ops_wq,(void*) path_sel_ops_wq, dev); + INIT_WORK_RSL(&priv->rtllib->ext_update_extchnloffset_wq, + (void*) meshdev_update_ext_chnl_offset_as_client, dev); + INIT_DELAYED_WORK_RSL(&priv->rtllib->ext_wx_set_key_wq, (void*)ext_mesh_set_key_wq,priv->rtllib); + INIT_WORK_RSL(&priv->rtllib->ext_start_mesh_protocol_wq, + (void*) meshdev_start_mesh_protocol_wq, dev); +#endif + tasklet_init(&priv->irq_rx_tasklet, + (void(*)(unsigned long))rtl8192_irq_rx_tasklet, + (unsigned long)priv); + tasklet_init(&priv->irq_tx_tasklet, + (void(*)(unsigned long))rtl8192_irq_tx_tasklet, + (unsigned long)priv); + tasklet_init(&priv->irq_prepare_beacon_tasklet, + (void(*)(unsigned long))rtl8192_prepare_beacon, + (unsigned long)priv); +} + +short rtl8192_get_channel_map(struct net_device * dev) +{ + int i; + +#ifdef ENABLE_DOT11D + struct r8192_priv *priv = rtllib_priv(dev); + if ((priv->rf_chip != RF_8225) && (priv->rf_chip != RF_8256) + && (priv->rf_chip != RF_6052)) { + RT_TRACE(COMP_ERR, "%s: unknown rf chip, can't set channel map\n", __FUNCTION__); + return -1; + } + + if (priv->ChannelPlan > COUNTRY_CODE_MAX) { + printk("rtl819x_init:Error channel plan! Set to default.\n"); + priv->ChannelPlan= COUNTRY_CODE_FCC; + } + RT_TRACE(COMP_INIT, "Channel plan is %d\n",priv->ChannelPlan); + Dot11d_Init(priv->rtllib); +#ifndef CONFIG_CRDA + Dot11d_Channelmap(priv->ChannelPlan, priv->rtllib); +#endif +#else + struct r8192_priv *priv = rtllib_priv(dev); + int ch; + if(!channels){ + DMESG("No channels, aborting"); + return -1; + } + + ch = channels; + priv->ChannelPlan = 0; + for (i = 1; i <= 14; i++) { + (priv->rtllib->channel_map)[i] = (u8)(ch & 0x01); + ch >>= 1; + } + priv->rtllib->IbssStartChnl= 10; + priv->rtllib->ibss_maxjoin_chal = 11; +#endif + for (i = 1; i <= 11; i++) { + (priv->rtllib->active_channel_map)[i] = 1; + } + (priv->rtllib->active_channel_map)[12] = 2; + (priv->rtllib->active_channel_map)[13] = 2; + + return 0; +} + +short rtl8192_init(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + memset(&(priv->stats),0,sizeof(struct Stats)); + +#ifdef CONFIG_BT_30 + bt_wifi_init(dev); +#endif + +#ifdef CONFIG_MP + rtl8192_init_mp(dev); +#endif + + rtl8192_dbgp_flag_init(dev); + + rtl8192_init_priv_handler(dev); + rtl8192_init_priv_constant(dev); + rtl8192_init_priv_variable(dev); +#ifdef _RTL8192_EXT_PATCH_ + rtl8192_init_mesh_variable(dev); +#endif + rtl8192_init_priv_lock(priv); + rtl8192_init_priv_task(dev); + priv->ops->get_eeprom_size(dev); + priv->ops->init_adapter_variable(dev); + rtl8192_get_channel_map(dev); + +#ifdef CONFIG_CFG_80211 + /* channel map setting for the cfg80211 style */ + { + struct r8192_priv* priv = rtllib_priv(dev); + rtllib_set_geo(priv); + } +#endif + + init_hal_dm(dev); + +#if defined RTL8192SE || defined RTL8192CE + InitSwLeds(dev); +#endif + init_timer(&priv->watch_dog_timer); + setup_timer(&priv->watch_dog_timer, + watch_dog_timer_callback, + (unsigned long) dev); + + init_timer(&priv->gpio_polling_timer); + setup_timer(&priv->gpio_polling_timer, + check_rfctrl_gpio_timer, + (unsigned long)dev); + + rtl8192_irq_disable(dev); +#if defined(IRQF_SHARED) + if (request_irq(dev->irq, (void*)rtl8192_interrupt_rsl, IRQF_SHARED, dev->name, dev)) +#else + if (request_irq(dev->irq, (void *)rtl8192_interrupt_rsl, SA_SHIRQ, dev->name, dev)) +#endif + { + printk("Error allocating IRQ %d",dev->irq); + return -1; + } else { + priv->irq=dev->irq; + RT_TRACE(COMP_INIT, "IRQ %d\n",dev->irq); + } + + if (rtl8192_pci_initdescring(dev) != 0) { + printk("Endopoints initialization failed"); + return -1; + } + + return 0; +} + +#if defined CONFIG_ASPM_OR_D3 +static void +rtl8192_update_default_setting(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + + pPSC->RegRfPsLevel = 0; + priv->bSupportASPM = 0; + + + pPSC->RegAMDPciASPM = priv->RegAMDPciASPM ; + switch(priv->RegPciASPM) + { + case 0: + break; + + case 1: + pPSC->RegRfPsLevel |= RT_RF_LPS_LEVEL_ASPM; + break; + + case 2: + pPSC->RegRfPsLevel |= (RT_RF_LPS_LEVEL_ASPM | RT_RF_OFF_LEVL_CLK_REQ); + break; + + case 3: + pPSC->RegRfPsLevel &= ~(RT_RF_LPS_LEVEL_ASPM); + pPSC->RegRfPsLevel |= (RT_RF_PS_LEVEL_ALWAYS_ASPM | RT_RF_OFF_LEVL_CLK_REQ); + break; + + case 4: + pPSC->RegRfPsLevel &= ~(RT_RF_LPS_LEVEL_ASPM | RT_RF_OFF_LEVL_CLK_REQ); + pPSC->RegRfPsLevel |= RT_RF_PS_LEVEL_ALWAYS_ASPM; + break; + } + + pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_HALT_NIC; + + switch(priv->RegHwSwRfOffD3) + { + case 1: + if(pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM) + pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_ASPM; + break; + + case 2: + if(pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM) + pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_ASPM; + pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_HALT_NIC; + break; + + case 3: + pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_PCI_D3; + break; + } + + + switch(priv->RegSupportPciASPM) + { + case 0: + { + bool bSupportASPM = false; + priv->bSupportASPM = bSupportASPM; + } + break; + + case 1: + { + bool bSupportASPM = true; + bool bSupportBackDoor = true; + + priv->bSupportASPM = bSupportASPM; + + if(priv->CustomerID == RT_CID_TOSHIBA && !priv->NdisAdapter.AMDL1PATCH) + bSupportBackDoor = false; + + priv->bSupportBackDoor = bSupportBackDoor; + } + break; + + case 2: + if(priv->NdisAdapter.PciBridgeVendor == PCI_BRIDGE_VENDOR_INTEL) + { + bool bSupportASPM = true; + priv->bSupportASPM = bSupportASPM; + } + break; + + default: + break; + } +} +#endif + +#if defined CONFIG_ASPM_OR_D3 +static void +rtl8192_initialize_adapter_common(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + + rtl8192_update_default_setting(dev); + +#ifdef CONFIG_ASPM_OR_D3 + if(pPSC->RegRfPsLevel & RT_RF_PS_LEVEL_ALWAYS_ASPM) + { + RT_ENABLE_ASPM(dev); + RT_SET_PS_LEVEL(pPSC, RT_RF_PS_LEVEL_ALWAYS_ASPM); + } +#endif +} +#endif + +/*************************************************************************** + -------------------------------WATCHDOG STUFF--------------------------- +***************************************************************************/ +short rtl8192_is_tx_queue_empty(struct net_device *dev) +{ + int i=0; + struct r8192_priv *priv = rtllib_priv(dev); + for (i=0; i<=MGNT_QUEUE; i++) + { + if ((i== TXCMD_QUEUE) || (i == HCCA_QUEUE) ) + continue; + if (skb_queue_len(&(&priv->tx_ring[i])->queue) > 0){ + printk("===>tx queue is not empty:%d, %d\n", i, skb_queue_len(&(&priv->tx_ring[i])->queue)); + return 0; + } + } + return 1; +} + +RESET_TYPE +rtl819x_TxCheckStuck(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 QueueID; + u8 ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE; + bool bCheckFwTxCnt = false; + struct rtl8192_tx_ring *ring = NULL; + struct sk_buff* skb = NULL; + cb_desc * tcb_desc = NULL; + unsigned long flags = 0; + +#if 0 + switch (priv->rtllib->dot11PowerSaveMode) + { + case eActive: + ResetThreshold = NIC_SEND_HANG_THRESHOLD_NORMAL; + break; + case eMaxPs: + ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE; + break; + case eFastPs: + ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE; + break; + default: + break; + } +#else + switch (priv->rtllib->ps) + { + case RTLLIB_PS_DISABLED: + ResetThreshold = NIC_SEND_HANG_THRESHOLD_NORMAL; + break; + case (RTLLIB_PS_MBCAST|RTLLIB_PS_UNICAST): + ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE; + break; + default: + ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE; + break; + } +#endif + spin_lock_irqsave(&priv->irq_th_lock,flags); + for(QueueID = 0; QueueID < MAX_TX_QUEUE; QueueID++) + { + if(QueueID == TXCMD_QUEUE) + continue; + + if(QueueID == BEACON_QUEUE) + continue; + + ring = &priv->tx_ring[QueueID]; + + if(skb_queue_len(&ring->queue) == 0) + continue; + else + { + skb = (&ring->queue)->next; + tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + tcb_desc->nStuckCount++; + bCheckFwTxCnt = true; + if(tcb_desc->nStuckCount > 1) + printk("%s: QueueID=%d tcb_desc->nStuckCount=%d\n",__func__,QueueID,tcb_desc->nStuckCount); +#if defined RTL8192SE || defined RTL8192CE + if(tcb_desc->nStuckCount > ResetThreshold) + { + RT_TRACE( COMP_RESET, "TxCheckStuck(): Need silent reset because nStuckCount > ResetThreshold.\n" ); + spin_unlock_irqrestore(&priv->irq_th_lock,flags); + return RESET_TYPE_SILENT; + } + bCheckFwTxCnt = false; + #endif + } + } + spin_unlock_irqrestore(&priv->irq_th_lock,flags); + + if(bCheckFwTxCnt) { + if (priv->ops->TxCheckStuckHandler(dev)) + { + RT_TRACE(COMP_RESET, "TxCheckStuck(): Fw indicates no Tx condition! \n"); + return RESET_TYPE_SILENT; + } + } + + return RESET_TYPE_NORESET; +} + +RESET_TYPE rtl819x_RxCheckStuck(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->ops->RxCheckStuckHandler(dev)) + { + RT_TRACE(COMP_RESET, "RxStuck Condition\n"); + return RESET_TYPE_SILENT; + } + + return RESET_TYPE_NORESET; +} + +RESET_TYPE +rtl819x_ifcheck_resetornot(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + RESET_TYPE TxResetType = RESET_TYPE_NORESET; + RESET_TYPE RxResetType = RESET_TYPE_NORESET; + RT_RF_POWER_STATE rfState; + + rfState = priv->rtllib->eRFPowerState; + + if(rfState == eRfOn) + TxResetType = rtl819x_TxCheckStuck(dev); + + if( rfState == eRfOn && + (priv->rtllib->iw_mode == IW_MODE_INFRA) && + (priv->rtllib->state == RTLLIB_LINKED)) { + + RxResetType = rtl819x_RxCheckStuck(dev); + } + + if(TxResetType==RESET_TYPE_NORMAL || RxResetType==RESET_TYPE_NORMAL){ + printk("%s(): TxResetType is %d, RxResetType is %d\n",__FUNCTION__,TxResetType,RxResetType); + return RESET_TYPE_NORMAL; + } else if(TxResetType==RESET_TYPE_SILENT || RxResetType==RESET_TYPE_SILENT){ + printk("%s(): TxResetType is %d, RxResetType is %d\n",__FUNCTION__,TxResetType,RxResetType); + return RESET_TYPE_SILENT; + } else { + return RESET_TYPE_NORESET; + } + +} + +#ifdef _RTL8192_EXT_PATCH_ +void rtl819x_silentreset_mesh_start(struct net_device *dev, + u8 *pbackup_channel_wlan, + u8 *pbackup_channel_mesh, + u8 *pIsPortal) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + + *pbackup_channel_wlan = ieee->current_network.channel; + *pbackup_channel_mesh = ieee->current_mesh_network.channel; + if((ieee->state == RTLLIB_LINKED) && ((ieee->iw_mode == IW_MODE_INFRA) || (ieee->iw_mode == IW_MODE_ADHOC))) + { + printk("====>down, infra or adhoc\n"); + SEM_DOWN_IEEE_WX(&ieee->wx_sem); + printk("ieee->state is RTLLIB_LINKED\n"); + rtllib_stop_send_beacons(priv->rtllib); + del_timer_sync(&ieee->associate_timer); +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + cancel_delayed_work(&ieee->associate_retry_wq); +#endif + rtllib_stop_scan(ieee); + netif_carrier_off(dev); + SEM_UP_IEEE_WX(&ieee->wx_sem); + } + else if((ieee->iw_mode == IW_MODE_MESH) && (ieee->mesh_state == RTLLIB_MESH_LINKED)) + { + if(priv->mshobj->ext_patch_r819x_wx_get_AsPortal) + priv->mshobj->ext_patch_r819x_wx_get_AsPortal(priv, pIsPortal); + if((!ieee->only_mesh) && (ieee->state == RTLLIB_LINKED)){ + printk("====>down, wlan server\n"); + SEM_DOWN_IEEE_WX(&ieee->wx_sem); + printk("ieee->state is RTLLIB_LINKED\n"); + rtllib_stop_send_beacons(priv->rtllib); + del_timer_sync(&ieee->associate_timer); +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + cancel_delayed_work(&ieee->associate_retry_wq); +#endif + rtllib_stop_scan(ieee); + netif_carrier_off(dev); + SEM_UP_IEEE_WX(&ieee->wx_sem); + if(priv->mshobj->ext_patch_rtllib_stop_protocol) + priv->mshobj->ext_patch_rtllib_stop_protocol(ieee,1); + } + else if((!ieee->only_mesh) && (ieee->state != RTLLIB_LINKED)){ + printk("====>down, wlan server\n"); + SEM_DOWN_IEEE_WX(&ieee->wx_sem); + printk("ieee->state is Not RTLLIB_LINKED\n"); + rtllib_stop_send_beacons(priv->rtllib); + rtllib_stop_scan(ieee); + netif_carrier_off(dev); + SEM_UP_IEEE_WX(&ieee->wx_sem); + if(priv->mshobj->ext_patch_rtllib_stop_protocol) + priv->mshobj->ext_patch_rtllib_stop_protocol(ieee,1); + } + else if(ieee->only_mesh && (*pIsPortal)) + { + printk("====>down, eth0 server\n"); + if(priv->mshobj->ext_patch_rtllib_stop_protocol) + priv->mshobj->ext_patch_rtllib_stop_protocol(ieee,1); + } + else if(ieee->only_mesh && !(*pIsPortal)) + { + printk("====>down, p2p or client\n"); + if(priv->mshobj->ext_patch_rtllib_stop_protocol) + priv->mshobj->ext_patch_rtllib_stop_protocol(ieee,1); + } + else{ + printk("====>down, no link\n"); + if(priv->mshobj->ext_patch_rtllib_stop_protocol) + priv->mshobj->ext_patch_rtllib_stop_protocol(ieee,1); + } + } + else{ + printk("====>down, no link\n"); + printk("ieee->state is NOT LINKED\n"); + rtllib_softmac_stop_protocol(priv->rtllib,0,true); + } +} +#endif + +void rtl819x_silentreset_mesh_bk(struct net_device *dev, u8 IsPortal) +{ +#ifdef _RTL8192_EXT_PATCH_ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + u8 updateBW = 0; + u8 bserverHT = 0; + + if(!ieee->only_mesh) + { + printk("===>up, wlan0 server\n"); + ieee->set_chan(ieee->dev, ieee->current_network.channel); + + queue_work_rsl(ieee->wq, &ieee->associate_complete_wq); + if (ieee->current_mesh_network.beacon_interval == 0) + ieee->current_mesh_network.beacon_interval = 100; + ieee->mesh_state = RTLLIB_MESH_LINKED; + ieee->link_change(ieee->dev); + if(priv->mshobj->ext_patch_rtllib_start_protocol) + priv->mshobj->ext_patch_rtllib_start_protocol(ieee); + } + else if(ieee->only_mesh && IsPortal) + { + printk("===>up, eth0 server\n"); + if (ieee->current_mesh_network.beacon_interval == 0) + ieee->current_mesh_network.beacon_interval = 100; + ieee->mesh_state = RTLLIB_MESH_LINKED; + ieee->link_change(ieee->dev); + if(priv->mshobj->ext_patch_rtllib_start_protocol) + priv->mshobj->ext_patch_rtllib_start_protocol(ieee); + ieee->current_network.channel = ieee->current_mesh_network.channel; + if(ieee->pHTInfo->bCurBW40MHz) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + } + else if(ieee->only_mesh && !IsPortal) + { + printk("===>up, p2p or client\n"); + if (ieee->current_mesh_network.beacon_interval == 0) + ieee->current_mesh_network.beacon_interval = 100; + ieee->mesh_state = RTLLIB_MESH_LINKED; + ieee->link_change(ieee->dev); + if(priv->mshobj->ext_patch_rtllib_start_protocol) + priv->mshobj->ext_patch_rtllib_start_protocol(ieee); + if(ieee->p2pmode){ + printk("===>up, p2p\n"); + ieee->current_network.channel = ieee->current_mesh_network.channel; + if(ieee->pHTInfo->bCurBW40MHz) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + }else{ + printk("===>up, client\n"); + updateBW = priv->mshobj->ext_patch_r819x_wx_update_beacon(ieee->dev,&bserverHT); + printk("$$$$$$ Cur_networ.chan=%d, cur_mesh_net.chan=%d,bserverHT=%d\n", + ieee->current_network.channel,ieee->current_mesh_network.channel,bserverHT); + if (updateBW == 1) { + if (bserverHT == 0) { + printk("===>server is not HT supported,set 20M\n"); + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT); + } else { + printk("===>updateBW is 1,bCurBW40MHz is %d,ieee->serverExtChlOffset is %d\n", + ieee->pHTInfo->bCurBW40MHz,ieee->serverExtChlOffset); + if (ieee->pHTInfo->bCurBW40MHz) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, ieee->serverExtChlOffset); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, ieee->serverExtChlOffset); + } + } else { + printk("===>there is no same hostname server, ERR!!!\n"); + } + } + } +#endif +} + +void rtl819x_ifsilentreset(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 reset_times = 0; + int reset_status = 0; + struct rtllib_device *ieee = priv->rtllib; + unsigned long flag; + +#ifdef _RTL8192_EXT_PATCH_ + bool wlansilentreset = false,meshsilentreset = false; + u8 backup_channel_wlan = 1,backup_channel_mesh = 1; + int i=0; +#endif + u8 IsPortal = 0; + + + if(priv->ResetProgress==RESET_TYPE_NORESET) { + + RT_TRACE(COMP_RESET,"=========>Reset progress!! \n"); + + priv->ResetProgress = RESET_TYPE_SILENT; + + spin_lock_irqsave(&priv->rf_ps_lock,flag); + if(priv->RFChangeInProgress) + { + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + goto END; + } + priv->RFChangeInProgress = true; + priv->bResetInProgress = true; + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + +RESET_START: + + down(&priv->wx_sem); + +#ifdef ENABLE_LPS + if(priv->rtllib->state == RTLLIB_LINKED) + LeisurePSLeave(dev); +#endif + + if (IS_NIC_DOWN(priv)) { + RT_TRACE(COMP_ERR,"%s():the driver is not up! return\n",__FUNCTION__); + up(&priv->wx_sem); + return ; + } +#ifdef _RTL8192_EXT_PATCH_ + if (priv->up == 1) { + printk("================>wlansilentreset is true\n"); + wlansilentreset = true; + priv->up = 0; + } + if (priv->mesh_up == 1) { + printk("================>meshsilentreset is true\n"); + meshsilentreset = true; + priv->mesh_up = 0; + } +#else + priv->up = 0; +#endif + + RT_TRACE(COMP_RESET,"%s():======>start to down the driver\n",__FUNCTION__); + mdelay(1000); + RT_TRACE(COMP_RESET,"%s():111111111111111111111111======>start to down the driver\n",__FUNCTION__); + + if(!netif_queue_stopped(dev)) + netif_stop_queue(dev); + + rtl8192_irq_disable(dev); + del_timer_sync(&priv->watch_dog_timer); + rtl8192_cancel_deferred_work(priv); + deinit_hal_dm(dev); + rtllib_stop_scan_syncro(ieee); + +#ifdef _RTL8192_EXT_PATCH_ + rtl819x_silentreset_mesh_start(dev, &backup_channel_wlan, + &backup_channel_mesh, &IsPortal); +#else + if (ieee->state == RTLLIB_LINKED) { + SEM_DOWN_IEEE_WX(&ieee->wx_sem); + printk("ieee->state is RTLLIB_LINKED\n"); + rtllib_stop_send_beacons(priv->rtllib); + del_timer_sync(&ieee->associate_timer); +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + cancel_delayed_work(&ieee->associate_retry_wq); +#endif + rtllib_stop_scan(ieee); + netif_carrier_off(dev); + SEM_UP_IEEE_WX(&ieee->wx_sem); + } else { + printk("ieee->state is NOT LINKED\n"); + rtllib_softmac_stop_protocol(priv->rtllib, 0 ,true); + } +#endif + +#if !(defined RTL8192SE || defined RTL8192CE) + dm_backup_dynamic_mechanism_state(dev); +#endif + +#ifdef RTL8190P + priv->ops->stop_adapter(dev, true); +#endif + + up(&priv->wx_sem); + RT_TRACE(COMP_RESET,"%s():<==========down process is finished\n",__FUNCTION__); + + RT_TRACE(COMP_RESET,"%s():<===========up process start\n",__FUNCTION__); +#ifdef _RTL8192_EXT_PATCH_ + if(wlansilentreset == true){ + reset_status = _rtl8192_up(dev,true); + } + if(meshsilentreset == true) + reset_status = meshdev_up(ieee->meshdev,true); +#else + reset_status = _rtl8192_up(dev,true); +#endif + + RT_TRACE(COMP_RESET,"%s():<===========up process is finished\n",__FUNCTION__); + if (reset_status == -1) { + if(reset_times < 3) { + reset_times++; + goto RESET_START; + } else { + RT_TRACE(COMP_ERR," ERR!!! %s(): Reset Failed!!\n",__FUNCTION__); + } + } + + ieee->is_silent_reset = 1; + + spin_lock_irqsave(&priv->rf_ps_lock,flag); + priv->RFChangeInProgress = false; + spin_unlock_irqrestore(&priv->rf_ps_lock,flag); + + EnableHWSecurityConfig8192(dev); + +#ifdef _RTL8192_EXT_PATCH_ + ieee->current_network.channel = backup_channel_wlan; + ieee->current_mesh_network.channel = backup_channel_mesh; +#endif + + if (ieee->state == RTLLIB_LINKED && ieee->iw_mode == IW_MODE_INFRA) { + ieee->set_chan(ieee->dev, ieee->current_network.channel); + + queue_work_rsl(ieee->wq, &ieee->associate_complete_wq); + + } else if (ieee->state == RTLLIB_LINKED && ieee->iw_mode == IW_MODE_ADHOC) { + ieee->set_chan(ieee->dev, ieee->current_network.channel); + ieee->link_change(ieee->dev); + + notify_wx_assoc_event(ieee); + + rtllib_start_send_beacons(ieee); + + if (ieee->data_hard_resume) + ieee->data_hard_resume(ieee->dev); + netif_carrier_on(ieee->dev); + } else if (ieee->iw_mode == IW_MODE_MESH) { + rtl819x_silentreset_mesh_bk(dev, IsPortal); + } + +#ifdef _RTL8192_EXT_PATCH_ + if(wlansilentreset){ + printk("==========>wlansilentreset\n"); + CamRestoreEachIFEntry(dev,0); + } + if(meshsilentreset){ + printk("==========>meshsilentreset\n"); + CamRestoreEachIFEntry(dev,1); + for(i=0;i<8;i++) + { + if(ieee->swmeshratrtable[i].bused == true) + { + printk("====>restore ratr table: index=%d,value=%x\n",i,ieee->swmeshratrtable[i].ratr_value); +#ifdef RTL8192SE + write_nic_dword(dev,ARFR0+i*4,ieee->swmeshratrtable[i].ratr_value); +#elif defined Rtl8192CE + write_nic_dword(dev,REG_ARFR0+i*4,ieee->swmeshratrtable[i].ratr_value); +#endif + } + } + } +#else + CamRestoreAllEntry(dev); +#endif +#if !(defined RTL8192SE || defined RTL8192CE) + dm_restore_dynamic_mechanism_state(dev); +#endif +END: + priv->ResetProgress = RESET_TYPE_NORESET; + priv->reset_count++; + + priv->bForcedSilentReset =false; + priv->bResetInProgress = false; + +#if !(defined RTL8192SE || defined RTL8192CE) + write_nic_byte(dev, UFWP, 1); +#endif + RT_TRACE(COMP_RESET, "Reset finished!! ====>[%d]\n", priv->reset_count); + } +} + +void rtl819x_update_rxcounts(struct r8192_priv *priv, + u32 *TotalRxBcnNum, + u32 *TotalRxDataNum) +{ + u16 SlotIndex; + u8 i; + + *TotalRxBcnNum = 0; + *TotalRxDataNum = 0; + + SlotIndex = (priv->rtllib->LinkDetectInfo.SlotIndex++)%(priv->rtllib->LinkDetectInfo.SlotNum); + priv->rtllib->LinkDetectInfo.RxBcnNum[SlotIndex] = priv->rtllib->LinkDetectInfo.NumRecvBcnInPeriod; + priv->rtllib->LinkDetectInfo.RxDataNum[SlotIndex] = priv->rtllib->LinkDetectInfo.NumRecvDataInPeriod; + for (i = 0; i < priv->rtllib->LinkDetectInfo.SlotNum; i++) { + *TotalRxBcnNum += priv->rtllib->LinkDetectInfo.RxBcnNum[i]; + *TotalRxDataNum += priv->rtllib->LinkDetectInfo.RxDataNum[i]; + } +} + + +void rtl819x_watchdog_wqcallback(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,watch_dog_wq); + struct net_device *dev = priv->rtllib->dev; +#else + struct net_device *dev = (struct net_device *)data; + struct r8192_priv *priv = rtllib_priv(dev); +#endif + struct rtllib_device* ieee = priv->rtllib; + RESET_TYPE ResetType = RESET_TYPE_NORESET; + static u8 check_reset_cnt = 0; +#ifdef _RTL8192_EXT_PATCH_ + static u8 last_reset_count = 0; +#endif + unsigned long flags; + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + bool bBusyTraffic = false; + bool bHigherBusyTraffic = false; + bool bHigherBusyRxTraffic = false; +#ifdef ENABLE_LPS + bool bEnterPS = false; +#endif + if(IS_NIC_DOWN(priv) || (priv->bHwRadioOff == true)) + return; + + if(priv->rtllib->state >= RTLLIB_LINKED) + { + if(priv->rtllib->CntAfterLink<2) + priv->rtllib->CntAfterLink++; + } + else + { + priv->rtllib->CntAfterLink = 0; + } + + hal_dm_watchdog(dev); + +#ifdef ENABLE_IPS + if(rtllib_act_scanning(priv->rtllib,false) == false){ + if((ieee->iw_mode == IW_MODE_INFRA) && (ieee->state == RTLLIB_NOLINK) &&\ + (ieee->eRFPowerState == eRfOn)&&!ieee->is_set_key &&\ + (!ieee->proto_stoppping) && !ieee->wx_set_enc +#ifdef CONFIG_RTLWIFI_DEBUGFS + && (!priv->debug->hw_holding) +#endif + ){ + if((ieee->PowerSaveControl.ReturnPoint == IPS_CALLBACK_NONE)&& + (!ieee->bNetPromiscuousMode)) + { + RT_TRACE(COMP_PS, "====================>haha:IPSEnter()\n"); + IPSEnter(dev); + } + } + } +#endif +#ifdef _RTL8192_EXT_PATCH_ + if((ieee->iw_mode == IW_MODE_INFRA) || (ieee->iw_mode == IW_MODE_MESH && ieee->only_mesh == 0)) + MgntLinkKeepAlive(priv); +#endif + { + if((ieee->state == RTLLIB_LINKED) && (ieee->iw_mode == IW_MODE_INFRA) && (!ieee->bNetPromiscuousMode)) + { + if( ieee->LinkDetectInfo.NumRxOkInPeriod> 100 || + ieee->LinkDetectInfo.NumTxOkInPeriod> 100 ) { + bBusyTraffic = true; + } + + + if( ieee->LinkDetectInfo.NumRxOkInPeriod > 4000 || + ieee->LinkDetectInfo.NumTxOkInPeriod > 4000 ) + { + bHigherBusyTraffic = true; + if(ieee->LinkDetectInfo.NumRxOkInPeriod > 5000) + bHigherBusyRxTraffic = true; + else + bHigherBusyRxTraffic = false; + } + +#ifdef ENABLE_LPS + if( ((ieee->LinkDetectInfo.NumRxUnicastOkInPeriod + ieee->LinkDetectInfo.NumTxOkInPeriod) > 8 ) || + (ieee->LinkDetectInfo.NumRxUnicastOkInPeriod > 2) ) + { + bEnterPS= false; + } + else + { + bEnterPS= true; + } + + if (ieee->current_network.beacon_interval < 95) + bEnterPS= false; + + if(bEnterPS) + { + LeisurePSEnter(dev); + } + else + { + LeisurePSLeave(dev); + } +#endif + + } + else + { +#ifdef ENABLE_LPS + RT_TRACE(COMP_LPS,"====>no link LPS leave\n"); + LeisurePSLeave(dev); +#endif + } + + ieee->LinkDetectInfo.NumRxOkInPeriod = 0; + ieee->LinkDetectInfo.NumTxOkInPeriod = 0; + ieee->LinkDetectInfo.NumRxUnicastOkInPeriod = 0; + ieee->LinkDetectInfo.bBusyTraffic = bBusyTraffic; + + ieee->LinkDetectInfo.bHigherBusyTraffic = bHigherBusyTraffic; + ieee->LinkDetectInfo.bHigherBusyRxTraffic = bHigherBusyRxTraffic; + + } + + { +#if defined RTL8192SE + if(priv->rtllib->iw_mode == IW_MODE_ADHOC) + IbssAgeFunction(ieee); +#endif + + if(ieee->state == RTLLIB_LINKED && ieee->iw_mode == IW_MODE_INFRA) + { + u32 TotalRxBcnNum = 0; + u32 TotalRxDataNum = 0; + + rtl819x_update_rxcounts(priv, &TotalRxBcnNum, &TotalRxDataNum); + + if((TotalRxBcnNum+TotalRxDataNum) == 0) + priv->check_roaming_cnt ++; + else + priv->check_roaming_cnt = 0; + + + if(priv->check_roaming_cnt > 0) + { + if( ieee->eRFPowerState == eRfOff) + RT_TRACE(COMP_ERR,"========>%s()\n",__FUNCTION__); + + printk("===>%s(): AP is power off,chan:%d, connect another one\n",__FUNCTION__, priv->chan); + + ieee->state = RTLLIB_ASSOCIATING; + +#if defined(RTL8192S_WAPI_SUPPORT) + if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)) + WapiReturnOneStaInfo(ieee,priv->rtllib->current_network.bssid,0); +#endif + RemovePeerTS(priv->rtllib,priv->rtllib->current_network.bssid); + ieee->is_roaming = true; + ieee->is_set_key = false; + ieee->link_change(dev); + if(ieee->LedControlHandler) + ieee->LedControlHandler(ieee->dev, LED_CTL_START_TO_LINK); + + notify_wx_assoc_event(ieee); + + if(!(ieee->rtllib_ap_sec_type(ieee)&(SEC_ALG_CCMP|SEC_ALG_TKIP))) + queue_delayed_work_rsl(ieee->wq, &ieee->associate_procedure_wq, 0); + + priv->check_roaming_cnt = 0; + } + } + ieee->LinkDetectInfo.NumRecvBcnInPeriod=0; + ieee->LinkDetectInfo.NumRecvDataInPeriod=0; + + } + + spin_lock_irqsave(&priv->tx_lock,flags); + if((check_reset_cnt++ >= 3) && (!ieee->is_roaming) && + (!priv->RFChangeInProgress) && (!pPSC->bSwRfProcessing)) + { + ResetType = rtl819x_ifcheck_resetornot(dev); +#ifdef _RTL8192_EXT_PATCH_ + if(check_reset_cnt == 0xFF) +#endif + check_reset_cnt = 3; + } + spin_unlock_irqrestore(&priv->tx_lock,flags); + + if(!priv->bDisableNormalResetCheck && ResetType == RESET_TYPE_NORMAL) + { + priv->ResetProgress = RESET_TYPE_NORMAL; + RT_TRACE(COMP_RESET,"%s(): NOMAL RESET\n",__FUNCTION__); + return; + } + +#ifdef _RTL8192_EXT_PATCH_ + if( ((priv->force_reset) || (!priv->bDisableNormalResetCheck && ResetType==RESET_TYPE_SILENT))) + { + if((check_reset_cnt != (last_reset_count + 1)) && !priv->force_reset){ + printk("=======================>%s: Resume firmware\n", __FUNCTION__); +#ifdef RTL8192SE + r8192se_resume_firm(dev); +#elif defined Rtl8192CE +#endif + last_reset_count = check_reset_cnt; + }else{ + printk("=======================>%s: Silent Reset\n", __FUNCTION__); + rtl819x_ifsilentreset(dev); + } + } +#else + if( ((priv->force_reset) || (!priv->bDisableNormalResetCheck && ResetType==RESET_TYPE_SILENT))) + { + rtl819x_ifsilentreset(dev); + } +#endif + priv->force_reset = false; + priv->bForcedSilentReset = false; + priv->bResetInProgress = false; + RT_TRACE(COMP_TRACE, " <==RtUsbCheckForHangWorkItemCallback()\n"); + +} + +void watch_dog_timer_callback(unsigned long data) +{ + struct r8192_priv *priv = rtllib_priv((struct net_device *) data); + queue_delayed_work_rsl(priv->priv_wq,&priv->watch_dog_wq,0); + mod_timer(&priv->watch_dog_timer, jiffies + MSECS(RTLLIB_WATCH_DOG_TIME)); +} + +/**************************************************************************** + ---------------------------- NIC TX/RX STUFF--------------------------- +*****************************************************************************/ +void rtl8192_rx_enable(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + priv->ops->rx_enable(dev); +} + +void rtl8192_tx_enable(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + priv->ops->tx_enable(dev); + + rtllib_reset_queue(priv->rtllib); +} + + +static void rtl8192_free_rx_ring(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int i,rx_queue_idx; + + for(rx_queue_idx = 0; rx_queue_idx < MAX_RX_QUEUE; rx_queue_idx ++){ + for (i = 0; i < priv->rxringcount; i++) { + struct sk_buff *skb = priv->rx_buf[rx_queue_idx][i]; + if (!skb) + continue; + + pci_unmap_single(priv->pdev, + *((dma_addr_t *)skb->cb), + priv->rxbuffersize, PCI_DMA_FROMDEVICE); + kfree_skb(skb); + } + + pci_free_consistent(priv->pdev, sizeof(*priv->rx_ring[rx_queue_idx]) * priv->rxringcount, + priv->rx_ring[rx_queue_idx], priv->rx_ring_dma[rx_queue_idx]); + priv->rx_ring[rx_queue_idx] = NULL; + } +} + +static void rtl8192_free_tx_ring(struct net_device *dev, unsigned int prio) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtl8192_tx_ring *ring = &priv->tx_ring[prio]; + + while (skb_queue_len(&ring->queue)) { + tx_desc *entry = &ring->desc[ring->idx]; + struct sk_buff *skb = __skb_dequeue(&ring->queue); + + pci_unmap_single(priv->pdev, le32_to_cpu(entry->TxBuffAddr), + skb->len, PCI_DMA_TODEVICE); + kfree_skb(skb); + ring->idx = (ring->idx + 1) % ring->entries; + } + + pci_free_consistent(priv->pdev, sizeof(*ring->desc)*ring->entries, + ring->desc, ring->dma); + ring->desc = NULL; +} + +void rtl8192_data_hard_stop(struct net_device *dev) +{ + #if 0 + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + priv->dma_poll_mask |= (1<dma_poll_mask); + rtl8192_set_mode(dev,EPROM_CMD_NORMAL); + #endif +} + + +void rtl8192_data_hard_resume(struct net_device *dev) +{ + #if 0 + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + priv->dma_poll_mask &= ~(1<dma_poll_mask); + rtl8192_set_mode(dev,EPROM_CMD_NORMAL); + #endif +} + +void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + int ret; + cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + u8 queue_index = tcb_desc->queue_index; + + if((priv->rtllib->eRFPowerState == eRfOff) || IS_NIC_DOWN(priv) || priv->bResetInProgress){ + kfree_skb(skb); + return; + } + + assert(queue_index != TXCMD_QUEUE); + + + memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev)); +#if 0 + tcb_desc->RATRIndex = 7; + tcb_desc->bTxDisableRateFallBack = 1; + tcb_desc->bTxUseDriverAssingedRate = 1; + tcb_desc->bTxEnableFwCalcDur = 1; +#endif + skb_push(skb, priv->rtllib->tx_headroom); + ret = rtl8192_tx(dev, skb); + if(ret != 0) { + kfree_skb(skb); + }; + + if(queue_index!=MGNT_QUEUE) { + priv->rtllib->stats.tx_bytes+=(skb->len - priv->rtllib->tx_headroom); + priv->rtllib->stats.tx_packets++; + } + + + return; +} + +int rtl8192_hard_start_xmit(struct sk_buff *skb,struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + int ret; + cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + u8 queue_index = tcb_desc->queue_index; + + if(queue_index != TXCMD_QUEUE){ + if((priv->rtllib->eRFPowerState == eRfOff) ||IS_NIC_DOWN(priv) || priv->bResetInProgress){ + printk("=====>%s() retrun :%d:%d:%d\n", __func__, (priv->rtllib->eRFPowerState == eRfOff), IS_NIC_DOWN(priv), priv->bResetInProgress); + kfree_skb(skb); + return 0; + } + } + + memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev)); + if(queue_index == TXCMD_QUEUE) { + rtl8192_tx_cmd(dev, skb); + ret = 0; + return ret; + } else { + tcb_desc->RATRIndex = 7; + tcb_desc->bTxDisableRateFallBack = 1; + tcb_desc->bTxUseDriverAssingedRate = 1; + tcb_desc->bTxEnableFwCalcDur = 1; + skb_push(skb, priv->rtllib->tx_headroom); + ret = rtl8192_tx(dev, skb); + if(ret != 0) { + kfree_skb(skb); + }; + } + + + + return ret; + +} + +void rtl8192_tx_isr(struct net_device *dev, int prio) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + struct rtl8192_tx_ring *ring = &priv->tx_ring[prio]; + + while (skb_queue_len(&ring->queue)) { + tx_desc *entry = &ring->desc[ring->idx]; + struct sk_buff *skb; + + if(prio != BEACON_QUEUE) { + if(entry->OWN) + return; + ring->idx = (ring->idx + 1) % ring->entries; + } + + skb = __skb_dequeue(&ring->queue); + pci_unmap_single(priv->pdev, le32_to_cpu(entry->TxBuffAddr), + skb->len, PCI_DMA_TODEVICE); + + kfree_skb(skb); + } + if(prio != BEACON_QUEUE) { + tasklet_schedule(&priv->irq_tx_tasklet); + } + +} + +void rtl8192_tx_cmd(struct net_device *dev, struct sk_buff *skb) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtl8192_tx_ring *ring; + tx_desc_cmd* entry; + unsigned int idx; + cb_desc *tcb_desc; + unsigned long flags; + + spin_lock_irqsave(&priv->irq_th_lock,flags); + ring = &priv->tx_ring[TXCMD_QUEUE]; + + idx = (ring->idx + skb_queue_len(&ring->queue)) % ring->entries; + entry = (tx_desc_cmd*) &ring->desc[idx]; + + tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + + priv->ops->tx_fill_cmd_descriptor(dev, entry, tcb_desc, skb); + + __skb_queue_tail(&ring->queue, skb); + spin_unlock_irqrestore(&priv->irq_th_lock,flags); + + return; +} + +short rtl8192_tx(struct net_device *dev, struct sk_buff* skb) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtl8192_tx_ring *ring; + unsigned long flags; + cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + tx_desc *pdesc = NULL; + struct rtllib_hdr_1addr * header = NULL; + u16 fc=0, type=0,stype=0; + bool multi_addr=false,broad_addr=false,uni_addr=false; + u8* pda_addr = NULL; + int idx; + u32 fwinfo_size = 0; + + if(priv->bdisable_nic){ + RT_TRACE(COMP_ERR,"%s: ERR!! Nic is disabled! Can't tx packet len=%d qidx=%d!!!\n", __FUNCTION__, skb->len, tcb_desc->queue_index); + return skb->len; + } + + priv->rtllib->bAwakePktSent = true; + +#if defined RTL8192SE || defined RTL8192CE + fwinfo_size = 0; +#else + fwinfo_size = sizeof(TX_FWINFO_8190PCI); +#endif + + header = (struct rtllib_hdr_1addr *)(((u8*)skb->data) + fwinfo_size); + fc = header->frame_ctl; + type = WLAN_FC_GET_TYPE(fc); + stype = WLAN_FC_GET_STYPE(fc); + pda_addr = header->addr1; + + if(is_multicast_ether_addr(pda_addr)) + multi_addr = true; + else if(is_broadcast_ether_addr(pda_addr)) + broad_addr = true; + else { + uni_addr = true; + } + + if(uni_addr) + priv->stats.txbytesunicast += skb->len - fwinfo_size; + else if(multi_addr) + priv->stats.txbytesmulticast += skb->len - fwinfo_size; + else + priv->stats.txbytesbroadcast += skb->len - fwinfo_size; + + spin_lock_irqsave(&priv->irq_th_lock,flags); + ring = &priv->tx_ring[tcb_desc->queue_index]; + if (tcb_desc->queue_index != BEACON_QUEUE) { + idx = (ring->idx + skb_queue_len(&ring->queue)) % ring->entries; + } else { +#ifdef _ENABLE_SW_BEACON + idx = (ring->idx + skb_queue_len(&ring->queue)) % ring->entries; +#else + idx = 0; +#endif + } + + pdesc = &ring->desc[idx]; + if((pdesc->OWN == 1) && (tcb_desc->queue_index != BEACON_QUEUE)) { + RT_TRACE(COMP_ERR,"No more TX desc@%d, ring->idx = %d,idx = %d, skblen = 0x%x queuelen=%d", \ + tcb_desc->queue_index,ring->idx, idx,skb->len, skb_queue_len(&ring->queue)); + spin_unlock_irqrestore(&priv->irq_th_lock,flags); + return skb->len; + } + + if(tcb_desc->queue_index == MGNT_QUEUE){ + } + + if(type == RTLLIB_FTYPE_DATA){ + if(priv->rtllib->LedControlHandler) + priv->rtllib->LedControlHandler(dev, LED_CTL_TX); + } + priv->ops->tx_fill_descriptor(dev, pdesc, tcb_desc, skb); + __skb_queue_tail(&ring->queue, skb); + pdesc->OWN = 1; + spin_unlock_irqrestore(&priv->irq_th_lock,flags); + dev->trans_start = jiffies; + +#ifdef RTL8192CE + if(tcb_desc->queue_index == BEACON_QUEUE){ + write_nic_word(dev, REG_PCIE_CTRL_REG, BIT4); + }else{ + write_nic_word(dev, REG_PCIE_CTRL_REG, BIT0<<(tcb_desc->queue_index)); + } +#else + write_nic_word(dev,TPPoll,0x01<queue_index); +#endif + return 0; +} + +short rtl8192_alloc_rx_desc_ring(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + rx_desc *entry = NULL; + int i, rx_queue_idx; + + for(rx_queue_idx = 0; rx_queue_idx < MAX_RX_QUEUE; rx_queue_idx ++){ + priv->rx_ring[rx_queue_idx] = pci_alloc_consistent(priv->pdev, + sizeof(*priv->rx_ring[rx_queue_idx]) * priv->rxringcount, &priv->rx_ring_dma[rx_queue_idx]); + + if (!priv->rx_ring[rx_queue_idx] || (unsigned long)priv->rx_ring[rx_queue_idx] & 0xFF) { + RT_TRACE(COMP_ERR,"Cannot allocate RX ring\n"); + return -ENOMEM; + } + + memset(priv->rx_ring[rx_queue_idx], 0, sizeof(*priv->rx_ring[rx_queue_idx]) * priv->rxringcount); + priv->rx_idx[rx_queue_idx] = 0; + + for (i = 0; i < priv->rxringcount; i++) { + struct sk_buff *skb = dev_alloc_skb(priv->rxbuffersize); + dma_addr_t *mapping; + entry = &priv->rx_ring[rx_queue_idx][i]; + if (!skb) + return 0; + skb->dev = dev; + priv->rx_buf[rx_queue_idx][i] = skb; + mapping = (dma_addr_t *)skb->cb; + *mapping = pci_map_single(priv->pdev, skb_tail_pointer_rsl(skb), + priv->rxbuffersize, PCI_DMA_FROMDEVICE); + + entry->BufferAddress = cpu_to_le32(*mapping); + + entry->Length = priv->rxbuffersize; + entry->OWN = 1; + } + + entry->EOR = 1; + } + return 0; +} + +static int rtl8192_alloc_tx_desc_ring(struct net_device *dev, + unsigned int prio, unsigned int entries) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + tx_desc *ring; + dma_addr_t dma; + int i; + + ring = pci_alloc_consistent(priv->pdev, sizeof(*ring) * entries, &dma); + if (!ring || (unsigned long)ring & 0xFF) { + RT_TRACE(COMP_ERR, "Cannot allocate TX ring (prio = %d)\n", prio); + return -ENOMEM; + } + + memset(ring, 0, sizeof(*ring)*entries); + priv->tx_ring[prio].desc = ring; + priv->tx_ring[prio].dma = dma; + priv->tx_ring[prio].idx = 0; + priv->tx_ring[prio].entries = entries; + skb_queue_head_init(&priv->tx_ring[prio].queue); + + for (i = 0; i < entries; i++) + ring[i].NextDescAddress = + cpu_to_le32((u32)dma + ((i + 1) % entries) * sizeof(*ring)); + + return 0; +} + + +short rtl8192_pci_initdescring(struct net_device *dev) +{ + u32 ret; + int i; + struct r8192_priv *priv = rtllib_priv(dev); + + ret = rtl8192_alloc_rx_desc_ring(dev); + if (ret) { + return ret; + } + + + for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) { + if ((ret = rtl8192_alloc_tx_desc_ring(dev, i, priv->txringcount))) + goto err_free_rings; + } + +#if 0 + if ((ret = rtl8192_alloc_tx_desc_ring(dev, MAX_TX_QUEUE_COUNT - 1, 2))) + goto err_free_rings; +#endif + + return 0; + +err_free_rings: + rtl8192_free_rx_ring(dev); + for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) + if (priv->tx_ring[i].desc) + rtl8192_free_tx_ring(dev, i); + return 1; +} + +void rtl8192_pci_resetdescring(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int i,rx_queue_idx; + unsigned long flags = 0; + + for(rx_queue_idx = 0; rx_queue_idx < MAX_RX_QUEUE; rx_queue_idx ++){ + if(priv->rx_ring[rx_queue_idx]) { + rx_desc *entry = NULL; + for (i = 0; i < priv->rxringcount; i++) { + entry = &priv->rx_ring[rx_queue_idx][i]; + entry->OWN = 1; + } + priv->rx_idx[rx_queue_idx] = 0; + } + } + + spin_lock_irqsave(&priv->irq_th_lock,flags); + for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) { + if (priv->tx_ring[i].desc) { + struct rtl8192_tx_ring *ring = &priv->tx_ring[i]; + + while (skb_queue_len(&ring->queue)) { + tx_desc *entry = &ring->desc[ring->idx]; + struct sk_buff *skb = __skb_dequeue(&ring->queue); + + pci_unmap_single(priv->pdev, le32_to_cpu(entry->TxBuffAddr), + skb->len, PCI_DMA_TODEVICE); + kfree_skb(skb); + ring->idx = (ring->idx + 1) % ring->entries; + } + ring->idx = 0; + } + } + spin_unlock_irqrestore(&priv->irq_th_lock,flags); +} + +void rtl819x_UpdateRxPktTimeStamp (struct net_device *dev, struct rtllib_rx_stats *stats) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + if(stats->bIsAMPDU && !stats->bFirstMPDU) { + stats->mac_time[0] = priv->LastRxDescTSFLow; + stats->mac_time[1] = priv->LastRxDescTSFHigh; + } else { + priv->LastRxDescTSFLow = stats->mac_time[0]; + priv->LastRxDescTSFHigh = stats->mac_time[1]; + } +} + +long rtl819x_translate_todbm(struct r8192_priv * priv, u8 signal_strength_index ) +{ + long signal_power; + +#ifdef _RTL8192_EXT_PATCH_ + if(priv->CustomerID == RT_CID_819x_Lenovo) + { + signal_power = (long)signal_strength_index; + if(signal_power >= 45) + signal_power -= 110; + else + { + signal_power = ((signal_power*6)/10); + signal_power -= 93; + } + return signal_power; + } +#endif + signal_power = (long)((signal_strength_index + 1) >> 1); + signal_power -= 95; + + return signal_power; +} + + +void +rtl819x_update_rxsignalstatistics8190pci( + struct r8192_priv * priv, + struct rtllib_rx_stats * pprevious_stats + ) +{ + int weighting = 0; + + + if(priv->stats.recv_signal_power == 0) + priv->stats.recv_signal_power = pprevious_stats->RecvSignalPower; + + if(pprevious_stats->RecvSignalPower > priv->stats.recv_signal_power) + weighting = 5; + else if(pprevious_stats->RecvSignalPower < priv->stats.recv_signal_power) + weighting = (-5); + priv->stats.recv_signal_power = (priv->stats.recv_signal_power * 5 + pprevious_stats->RecvSignalPower + weighting) / 6; +} + +void +rtl819x_process_cck_rxpathsel( + struct r8192_priv * priv, + struct rtllib_rx_stats * pprevious_stats + ) +{ +#ifdef RTL8190P + char last_cck_adc_pwdb[4]={0,0,0,0}; + u8 i; + if(priv->rf_type == RF_2T4R && DM_RxPathSelTable.Enable) + { + if(pprevious_stats->bIsCCK && + (pprevious_stats->bPacketToSelf ||pprevious_stats->bPacketBeacon)) + { + if(priv->stats.cck_adc_pwdb.TotalNum++ >= PHY_RSSI_SLID_WIN_MAX) + { + priv->stats.cck_adc_pwdb.TotalNum = PHY_RSSI_SLID_WIN_MAX; + for(i=RF90_PATH_A; istats.cck_adc_pwdb.elements[i][priv->stats.cck_adc_pwdb.index]; + priv->stats.cck_adc_pwdb.TotalVal[i] -= last_cck_adc_pwdb[i]; + } + } + for(i=RF90_PATH_A; istats.cck_adc_pwdb.TotalVal[i] += pprevious_stats->cck_adc_pwdb[i]; + priv->stats.cck_adc_pwdb.elements[i][priv->stats.cck_adc_pwdb.index] = pprevious_stats->cck_adc_pwdb[i]; + } + priv->stats.cck_adc_pwdb.index++; + if(priv->stats.cck_adc_pwdb.index >= PHY_RSSI_SLID_WIN_MAX) + priv->stats.cck_adc_pwdb.index = 0; + + for(i=RF90_PATH_A; istats.cck_adc_pwdb.TotalVal[i]/priv->stats.cck_adc_pwdb.TotalNum; + } + + for(i=RF90_PATH_A; icck_adc_pwdb[i] > (char)priv->undecorated_smoothed_cck_adc_pwdb[i]) + { + priv->undecorated_smoothed_cck_adc_pwdb[i] = + ( (priv->undecorated_smoothed_cck_adc_pwdb[i]*(Rx_Smooth_Factor-1)) + + (pprevious_stats->cck_adc_pwdb[i])) /(Rx_Smooth_Factor); + priv->undecorated_smoothed_cck_adc_pwdb[i] = priv->undecorated_smoothed_cck_adc_pwdb[i] + 1; + } + else + { + priv->undecorated_smoothed_cck_adc_pwdb[i] = + ( (priv->undecorated_smoothed_cck_adc_pwdb[i]*(Rx_Smooth_Factor-1)) + + (pprevious_stats->cck_adc_pwdb[i])) /(Rx_Smooth_Factor); + } + } + } + } +#endif +} + + +u8 rtl819x_query_rxpwrpercentage( + char antpower + ) +{ + if ((antpower <= -100) || (antpower >= 20)) + { + return 0; + } + else if (antpower >= 0) + { + return 100; + } + else + { + return (100+antpower); + } + +} /* QueryRxPwrPercentage */ + +u8 +rtl819x_evm_dbtopercentage( + char value + ) +{ + char ret_val; + + ret_val = value; + + if(ret_val >= 0) + ret_val = 0; + if(ret_val <= -33) + ret_val = -33; + ret_val = 0 - ret_val; + ret_val*=3; + if(ret_val == 99) + ret_val = 100; + return(ret_val); +} + +void +rtl8192_record_rxdesc_forlateruse( + struct rtllib_rx_stats * psrc_stats, + struct rtllib_rx_stats * ptarget_stats +) +{ + ptarget_stats->bIsAMPDU = psrc_stats->bIsAMPDU; + ptarget_stats->bFirstMPDU = psrc_stats->bFirstMPDU; +} + + + +void rtl8192_rx_normal(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct rtllib_hdr_1addr *rtllib_hdr = NULL; + bool unicast_packet = false; + bool bLedBlinking=true; + u16 fc=0, type=0; + u32 skb_len = 0; + int rx_queue_idx = RX_MPDU_QUEUE; + + struct rtllib_rx_stats stats = { + .signal = 0, + .noise = -98, + .rate = 0, + .freq = RTLLIB_24GHZ_BAND, + }; + unsigned int count = priv->rxringcount; + + stats.nic_type = NIC_8192E; + + while (count--) { + rx_desc *pdesc = &priv->rx_ring[rx_queue_idx][priv->rx_idx[rx_queue_idx]]; + struct sk_buff *skb = priv->rx_buf[rx_queue_idx][priv->rx_idx[rx_queue_idx]]; + + if (pdesc->OWN){ + return; + } else { + + struct sk_buff *new_skb = NULL; + if (!priv->ops->rx_query_status_descriptor(dev, &stats, pdesc, skb)) + goto done; + + pci_unmap_single(priv->pdev, + *((dma_addr_t *)skb->cb), + priv->rxbuffersize, + PCI_DMA_FROMDEVICE); + + skb_put(skb, pdesc->Length); + skb_reserve(skb, stats.RxDrvInfoSize + stats.RxBufShift); + skb_trim(skb, skb->len - 4/*sCrcLng*/); + rtllib_hdr = (struct rtllib_hdr_1addr *)skb->data; + if(is_broadcast_ether_addr(rtllib_hdr->addr1)) { + }else if(is_multicast_ether_addr(rtllib_hdr->addr1)){ + }else { + /* unicast packet */ + unicast_packet = true; + } + fc = le16_to_cpu(rtllib_hdr->frame_ctl); + type = WLAN_FC_GET_TYPE(fc); + if(type == RTLLIB_FTYPE_MGMT) + { + bLedBlinking = false; + } + if(bLedBlinking) + if(priv->rtllib->LedControlHandler) + priv->rtllib->LedControlHandler(dev, LED_CTL_RX); + + if(stats.bCRC) { + if(type != RTLLIB_FTYPE_MGMT) + priv->stats.rxdatacrcerr ++; + else + priv->stats.rxmgmtcrcerr ++; + } + + skb_len = skb->len; + +#ifdef RTL8192CE + if (!stats.bCRC) +#else + if (1) +#endif + { + if(!rtllib_rx(priv->rtllib, skb, &stats)){ + dev_kfree_skb_any(skb); + skb = NULL; + } else { + priv->stats.rxok++; + if(unicast_packet) { + priv->stats.rxbytesunicast += skb_len; + } + } + }else{ + dev_kfree_skb_any(skb); + skb = NULL; + } +#if 1 + new_skb = dev_alloc_skb(priv->rxbuffersize); + if (unlikely(!new_skb)) + { + printk("==========>can't alloc skb for rx\n"); + goto done; + } + skb=new_skb; + skb->dev = dev; +#endif + priv->rx_buf[rx_queue_idx][priv->rx_idx[rx_queue_idx]] = skb; + *((dma_addr_t *) skb->cb) = pci_map_single(priv->pdev, skb_tail_pointer_rsl(skb), priv->rxbuffersize, PCI_DMA_FROMDEVICE); + + } +done: + pdesc->BufferAddress = cpu_to_le32(*((dma_addr_t *)skb->cb)); + pdesc->OWN = 1; + pdesc->Length = priv->rxbuffersize; + if (priv->rx_idx[rx_queue_idx] == priv->rxringcount-1) + pdesc->EOR = 1; + priv->rx_idx[rx_queue_idx] = (priv->rx_idx[rx_queue_idx] + 1) % priv->rxringcount; + } + +} + +void rtl8192_rx_cmd(struct net_device *dev) +{ +#ifdef RTL8192SE + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + unsigned int count = priv->rxringcount; + int rx_queue_idx = RX_CMD_QUEUE; + + struct rtllib_rx_stats stats = { + .signal = 0, + .noise = -98, + .rate = 0, + .freq = RTLLIB_24GHZ_BAND, + }; + stats.nic_type = NIC_8192E; + + while (count--) { + rx_desc *pdesc = &priv->rx_ring[rx_queue_idx][priv->rx_idx[rx_queue_idx]]; + struct sk_buff *skb = priv->rx_buf[rx_queue_idx][priv->rx_idx[rx_queue_idx]]; + + if (pdesc->OWN){ + return; + } else { + struct sk_buff *new_skb = NULL; + + pci_unmap_single(priv->pdev, + *((dma_addr_t *)skb->cb), + priv->rxbuffersize, + PCI_DMA_FROMDEVICE); + + skb_put(skb, pdesc->Length); + + if(pdesc->MACID == 0x1e){ + + pdesc->Length = pdesc->Length - 32; + pdesc->DrvInfoSize = 4; + printk(">>>>%s()CMD PKT RX, beacon_len:%d payload_len:%d\n",__func__, pdesc->Length,skb->len); + + + priv->ops->rx_query_status_descriptor(dev, &stats, pdesc, skb); + skb_reserve(skb, stats.RxDrvInfoSize + stats.RxBufShift); + if(0) + { + u8 i = 0; + u8 *arry = (u8*) skb->data; + + printk("\n==============>\n"); + for(i = 0; i < 32; i ++){ + if((i % 4 == 0)&&(i != 0)) + printk("\n"); + printk("%2.2x ", arry[i]); + } + printk("\n<==============\n"); + } + } + + skb_trim(skb, skb->len - 4/*sCrcLng*/); + + if(pdesc->MACID == 0x1e){ + if(!rtllib_rx(priv->rtllib, skb, &stats)){ + dev_kfree_skb_any(skb); + skb = NULL; + } + }else{ + if(priv->ops->rx_command_packet_handler != NULL) + priv->ops->rx_command_packet_handler(dev, skb, pdesc); + dev_kfree_skb_any(skb); + skb = NULL; + } + + + new_skb = dev_alloc_skb(priv->rxbuffersize); + if (unlikely(!new_skb)) + { + printk("==========>can't alloc skb for rx\n"); + goto done; + } + skb=new_skb; + skb->dev = dev; + + priv->rx_buf[rx_queue_idx][priv->rx_idx[rx_queue_idx]] = skb; + *((dma_addr_t *) skb->cb) = pci_map_single(priv->pdev, skb_tail_pointer_rsl(skb), priv->rxbuffersize, PCI_DMA_FROMDEVICE); + + } +done: + pdesc->BufferAddress = cpu_to_le32(*((dma_addr_t *)skb->cb)); + pdesc->OWN = 1; + pdesc->Length = priv->rxbuffersize; + if (priv->rx_idx[rx_queue_idx] == priv->rxringcount-1) + pdesc->EOR = 1; + priv->rx_idx[rx_queue_idx] = (priv->rx_idx[rx_queue_idx] + 1) % priv->rxringcount; + } +#endif +} + + +void rtl8192_tx_resume(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + struct sk_buff *skb; + int queue_index; + + for(queue_index = BK_QUEUE; queue_index < MAX_QUEUE_SIZE;queue_index++) { + while((!skb_queue_empty(&ieee->skb_waitQ[queue_index]))&& + (priv->rtllib->check_nic_enough_desc(dev,queue_index) > 0)) { + skb = skb_dequeue(&ieee->skb_waitQ[queue_index]); + ieee->softmac_data_hard_start_xmit(skb,dev,0/* rate useless now*/); + #if 0 + if(queue_index!=MGNT_QUEUE) { + ieee->stats.tx_packets++; + ieee->stats.tx_bytes += skb->len; + } + #endif + } +#ifdef ENABLE_AMSDU + while((skb_queue_len(&priv->rtllib->skb_aggQ[queue_index]) > 0)&&\ + (!(priv->rtllib->queue_stop)) && \ + (priv->rtllib->check_nic_enough_desc(dev,queue_index) > 0)){ + + struct sk_buff_head pSendList; + u8 dst[ETH_ALEN]; + cb_desc *tcb_desc = NULL; + int qos_actived = priv->rtllib->current_network.qos_data.active; + struct sta_info *psta = NULL; + u8 bIsSptAmsdu = false; + +#ifdef WIFI_TEST + if (queue_index <= VO_QUEUE) + queue_index = wmm_queue_select(priv, queue_index, priv->rtllib->skb_aggQ); +#endif + priv->rtllib->amsdu_in_process = true; + + skb = skb_dequeue(&(priv->rtllib->skb_aggQ[queue_index])); + if(skb == NULL) + { + printk("In %s:Skb is NULL\n",__FUNCTION__); + return; + } + tcb_desc = (pcb_desc)(skb->cb + MAX_DEV_ADDR_SIZE); + if(tcb_desc->bFromAggrQ) + { + rtllib_xmit_inter(skb, dev); + return; + } + + memcpy(dst, skb->data, ETH_ALEN); + if(priv->rtllib->iw_mode == IW_MODE_ADHOC) + { + psta = GetStaInfo(priv->rtllib, dst); + if(psta) { + if(psta->htinfo.bEnableHT) + bIsSptAmsdu = true; + } + } + else if(priv->rtllib->iw_mode == IW_MODE_INFRA) + bIsSptAmsdu = true; + else + bIsSptAmsdu = true; + bIsSptAmsdu = true; + + bIsSptAmsdu = bIsSptAmsdu && priv->rtllib->pHTInfo->bCurrent_AMSDU_Support && qos_actived; + + if(qos_actived && !is_broadcast_ether_addr(dst) && + !is_multicast_ether_addr(dst) && + bIsSptAmsdu) + { + skb_queue_head_init(&pSendList); + if(AMSDU_GetAggregatibleList(priv->rtllib, skb, &pSendList,queue_index)) + { + struct sk_buff * pAggrSkb = AMSDU_Aggregation(priv->rtllib, &pSendList); + if(NULL != pAggrSkb) + rtllib_xmit_inter(pAggrSkb, dev); + } + } + else + { + memset(skb->cb,0,sizeof(skb->cb)); + tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + tcb_desc->bFromAggrQ = true; + rtllib_xmit_inter(skb, dev); + } + } +#endif +#ifdef _RTL8192_EXT_PATCH_ + while((!skb_queue_empty(&priv->rtllib->skb_meshaggQ[queue_index]) )&&\ + (priv->rtllib->check_nic_enough_desc(dev,queue_index)> 0)) + { + u8 dst[ETH_ALEN]; + cb_desc *tcb_desc = NULL; + u8 IsHTEnable = false; +#ifdef ENABLE_AMSDU + struct sk_buff_head pSendList; + int qos_actived = 1; +#endif + priv->rtllib->mesh_amsdu_in_process = true; + skb = skb_dequeue(&(priv->rtllib->skb_meshaggQ[queue_index])); + if(skb == NULL) + { + priv->rtllib->mesh_amsdu_in_process = false; + printk("In %s:Skb is NULL\n",__FUNCTION__); + return; + } + tcb_desc = (pcb_desc)(skb->cb + MAX_DEV_ADDR_SIZE); + if(tcb_desc->bFromAggrQ) + { + rtllib_mesh_xmit(skb, dev); + continue; + } + memcpy(dst, skb->data, ETH_ALEN); + +#if 0 + ppeerMP_htinfo phtinfo = NULL; + bool is_mesh = false; + if(priv->mshobj->ext_patch_rtllib_is_mesh) + is_mesh = priv->mshobj->ext_patch_rtllib_is_mesh(priv->rtllib,dst); + if(is_mesh){ + if(priv->rtllib->ext_patch_rtllib_get_peermp_htinfo) + { + phtinfo = priv->rtllib->ext_patch_rtllib_get_peermp_htinfo(ieee,dst); + if(phtinfo == NULL) + { + RT_TRACE(COMP_ERR,"%s(): No htinfo\n",__FUNCTION__); + } + else + { + if(phtinfo->bEnableHT) + IsHTEnable = true; + } + } + } + else + { + printk("===>%s():tx AMSDU data has not entry,dst: "MAC_FMT"\n",__FUNCTION__,MAC_ARG(dst)); + IsHTEnable = true; + } +#else + IsHTEnable = true; +#endif +#ifdef ENABLE_AMSDU + IsHTEnable = (IsHTEnable && ieee->pHTInfo->bCurrent_Mesh_AMSDU_Support && qos_actived); + if( !is_broadcast_ether_addr(dst) && + !is_multicast_ether_addr(dst) && + IsHTEnable) + { + skb_queue_head_init(&pSendList); + if(msh_AMSDU_GetAggregatibleList(priv->rtllib, skb, &pSendList,queue_index)) + { + struct sk_buff * pAggrSkb = msh_AMSDU_Aggregation(priv->rtllib, &pSendList); + if(NULL != pAggrSkb) + rtllib_mesh_xmit(pAggrSkb, dev); + }else{ + priv->rtllib->mesh_amsdu_in_process = false; + return; + } + } + else +#endif + { + memset(skb->cb,0,sizeof(skb->cb)); + tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + tcb_desc->bFromAggrQ = true; + rtllib_mesh_xmit(skb, dev); + } + } +#endif + } +} + +void rtl8192_irq_tx_tasklet(struct r8192_priv *priv) +{ + rtl8192_tx_resume(priv->rtllib->dev); +} + +void rtl8192_irq_rx_tasklet(struct r8192_priv *priv) +{ + rtl8192_rx_normal(priv->rtllib->dev); + + if(MAX_RX_QUEUE > 1) + rtl8192_rx_cmd(priv->rtllib->dev); + +#ifndef RTL8192CE + write_nic_dword(priv->rtllib->dev, INTA_MASK,read_nic_dword(priv->rtllib->dev, INTA_MASK) | IMR_RDU); +#endif +} + +/**************************************************************************** + ---------------------------- NIC START/CLOSE STUFF--------------------------- +*****************************************************************************/ +void rtl8192_cancel_deferred_work(struct r8192_priv* priv) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + cancel_delayed_work(&priv->watch_dog_wq); + cancel_delayed_work(&priv->update_beacon_wq); +#ifndef RTL8190P + cancel_delayed_work(&priv->rtllib->hw_sleep_wq); +#endif +#if defined RTL8192SE + cancel_delayed_work(&priv->check_hw_scan_wq); + cancel_delayed_work(&priv->hw_scan_simu_wq); + cancel_delayed_work(&priv->start_hw_scan_wq); + cancel_delayed_work(&priv->rtllib->update_assoc_sta_info_wq); + cancel_delayed_work(&priv->rtllib->check_tsf_wq); +#endif +#endif + +#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,22) + cancel_work_sync(&priv->reset_wq); + cancel_work_sync(&priv->qos_activate); +#elif ((LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20))) + cancel_delayed_work(&priv->reset_wq); + cancel_delayed_work(&priv->qos_activate); +#if defined RTL8192SE + cancel_delayed_work(&priv->rtllib->update_assoc_sta_info_wq); + cancel_delayed_work(&priv->rtllib->check_tsf_wq); +#endif +#endif + +} + +int _rtl8192_up(struct net_device *dev,bool is_silent_reset) +{ +#ifdef _RTL8192_EXT_PATCH_ + if(_rtl8192_mesh_up(dev, is_silent_reset) == -1) + return -1; +#else + if(_rtl8192_sta_up(dev, is_silent_reset) == -1) + return -1; +#endif + + return 0; +} + + +int rtl8192_open(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int ret; + + down(&priv->wx_sem); + ret = rtl8192_up(dev); + up(&priv->wx_sem); + return ret; + +} + + +int rtl8192_up(struct net_device *dev) +{ +#ifndef _RTL8192_EXT_PATCH_ + struct r8192_priv *priv = rtllib_priv(dev); + + if (priv->up == 1) return -1; + return _rtl8192_up(dev,false); +#else + return _rtl8192_up(dev,false); +#endif +} + + +int rtl8192_close(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int ret; + + if ((rtllib_act_scanning(priv->rtllib, false)) && + !(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){ + rtllib_stop_scan(priv->rtllib); + } + + down(&priv->wx_sem); + + ret = rtl8192_down(dev,true); + + up(&priv->wx_sem); + + return ret; + +} + +int rtl8192_down(struct net_device *dev, bool shutdownrf) +{ +#ifdef CONFIG_MP + struct r8192_priv *priv = rtllib_priv(dev); +#endif + +#ifdef _RTL8192_EXT_PATCH_ + if(rtl8192_mesh_down(dev, shutdownrf) == -1) + return -1; +#else + if(rtl8192_sta_down(dev, shutdownrf) == -1) + return -1; +#endif + +#ifdef CONFIG_MP + if (priv->bCckContTx) { + printk("####RTL819X MP####stop single cck continious TX\n"); + mpt_StopCckCoNtTx(dev); + } + if (priv->bOfdmContTx) { + printk("####RTL819X MP####stop single ofdm continious TX\n"); + mpt_StopOfdmContTx(dev); + } + if (priv->bSingleCarrier) { + printk("####RTL819X MP####stop single carrier mode\n"); + MPT_ProSetSingleCarrier(dev, false); + } +#endif + return 0; +} + +void rtl8192_commit(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + +#ifdef _RTL8192_EXT_PATCH_ + if (IS_NIC_DOWN(priv)) + return ; + rtllib_softmac_stop_protocol(priv->rtllib,0,true); + rtl8192_irq_disable(dev); + priv->ops->stop_adapter(dev, true); + priv->up = 0; + _rtl8192_up(dev,false); +#else + if (priv->up == 0) return ; + rtllib_softmac_stop_protocol(priv->rtllib, 0 , true); + rtl8192_irq_disable(dev); + priv->ops->stop_adapter(dev, true); + _rtl8192_up(dev,false); +#endif + +} + +void rtl8192_restart(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct r8192_priv *priv = container_of_work_rsl(data, struct r8192_priv, reset_wq); + struct net_device *dev = priv->rtllib->dev; +#else + struct net_device *dev = (struct net_device *)data; + struct r8192_priv *priv = rtllib_priv(dev); +#endif + + down(&priv->wx_sem); + + rtl8192_commit(dev); + + up(&priv->wx_sem); +} + +static void r8192_set_multicast(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + short promisc; + + + + promisc = (dev->flags & IFF_PROMISC) ? 1:0; + + if (promisc != priv->promisc) { + ; + } + + priv->promisc = promisc; + +} + + +int r8192_set_mac_adr(struct net_device *dev, void *mac) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct sockaddr *addr = mac; + + down(&priv->wx_sem); + + memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN); + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) + schedule_work(&priv->reset_wq); +#else + schedule_task(&priv->reset_wq); +#endif + up(&priv->wx_sem); + + return 0; +} + +#if defined (RTL8192S_WAPI_SUPPORT) +extern int wapi_ioctl_set_mode(struct net_device *dev, struct iw_request_info *a,union iwreq_data *wrqu, char *b); +int WAPI_Ioctl(struct net_device *dev, struct iwreq *wrq, int cmd) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + static u8 QueueData[WAPI_MAX_BUFF_LEN]; +#define DATAQUEUE_EMPTY "Queue is empty" + int ret = 0; + + switch(cmd){ + case WAPI_CMD_GET_WAPI_SUPPORT: + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_GET_WAPI_SUPPORT!\n",__FUNCTION__); + if(copy_to_user((u8 *)(wrq->u.data.pointer), &ieee->WapiSupport, sizeof(u8))==0) + wrq->u.data.length = sizeof(u8); + break; + case WAPI_CMD_SET_WAPI_ENABLE: + { + u8 wapi_enable = *(u8 *)wrq->u.data.pointer; + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_WAPI_ENABLE!\n",__FUNCTION__); + if((ieee->WapiSupport) && (wapi_enable == 1)){ + ieee->wapiInfo.bWapiEnable = true; + ieee->pairwise_key_type = KEY_TYPE_SMS4; + ieee->group_key_type = KEY_TYPE_SMS4; + ieee->wapiInfo.extra_prefix_len = WAPI_EXT_LEN; + ieee->wapiInfo.extra_postfix_len = SMS4_MIC_LEN; + } + else if (wapi_enable == 0) { + ieee->wapiInfo.bWapiEnable = false; + ieee->pairwise_key_type = KEY_TYPE_NA; + ieee->group_key_type = KEY_TYPE_NA; + } + break; + } + case WAPI_CMD_SET_WAPI_PSK: + { + u8 wapi_psk = *(u8 *)wrq->u.data.pointer; + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_WAPI_PSK!\n",__FUNCTION__); + if(ieee->wapiInfo.bWapiEnable){ + ieee->wapiInfo.bWapiPSK = (wapi_psk > 0)?1:0; + WAPI_TRACE(WAPI_API, "%s(): bWapiPSK=%d!\n",__FUNCTION__, ieee->wapiInfo.bWapiPSK); + } + break; + } + case WAPI_CMD_SET_KEY: + { /*Data: keyType(1) + bTxEnable(1) + bAuthenticator(1) + bUpdate(1) + PeerAddr(6) + DataKey(16) + MicKey(16) + KeyId(1)*/ + PRT_WAPI_T pWapiInfo = &ieee->wapiInfo; + PRT_WAPI_BKID pWapiBkid; + PRT_WAPI_STA_INFO pWapiSta; + u8 data[43]; + bool bTxEnable; + bool bUpdate; + bool bAuthenticator; + u8 PeerAddr[6]; + u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ; + u8 WapiASUEPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ; + u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ; + + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_KEY!\n",__FUNCTION__); + if (!ieee->WapiSupport){ + ret = -1; + break; + } + if(wrq->u.data.length < 26){ + ret = -1; + break; + } + + copy_from_user(data, (u8 *)wrq->u.data.pointer, wrq->u.data.length); + bTxEnable = data[1]; + bAuthenticator = data[2]; + bUpdate = data[3]; + memcpy(PeerAddr,data+4,6); + + if(data[0] == 0x3){ + if(!list_empty(&(pWapiInfo->wapiBKIDIdleList))){ + pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDIdleList.next, RT_WAPI_BKID,list); + list_del_init(&pWapiBkid->list); + memcpy(pWapiBkid->bkid, data+10, 16); + list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDStoreList); + WAPI_DATA(WAPI_API, "SetKey - BKID", pWapiBkid->bkid, 16); + } + } else if (data[0] == 0x04){ + list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) { + if(!memcmp(pWapiSta->PeerMacAddr,PeerAddr,6)){ + if(bUpdate){ + if(bAuthenticator) { + memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiAEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiAEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiAEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiAEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPN,WapiAEPNInitialValueSrc,16); + } else { + memcpy(pWapiSta->lastTxUnicastPN,WapiAEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPN,WapiASUEPNInitialValueSrc,16); + } + } + } + } + } + else{ + list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) { + if(!memcmp(pWapiSta->PeerMacAddr,PeerAddr,6)){ + pWapiSta->bAuthenticatorInUpdata = false; + switch(data[0]){ + case 1: + if(bAuthenticator){ + memcpy(pWapiSta->lastTxUnicastPN,WapiAEPNInitialValueSrc,16); + if(!bUpdate) { + WAPI_TRACE(WAPI_API, "%s(): AE fisrt set usk!\n",__FUNCTION__); + pWapiSta->wapiUsk.bSet = true; + memcpy(pWapiSta->wapiUsk.dataKey,data+10,16); + memcpy(pWapiSta->wapiUsk.micKey,data+26,16); + pWapiSta->wapiUsk.keyId = *(data+42); + pWapiSta->wapiUsk.bTxEnable = true; + WAPI_DATA(WAPI_API, "SetKey - AE Usk Data Key", pWapiSta->wapiUsk.dataKey, 16); + WAPI_DATA(WAPI_API, "SetKey - AE Usk Mic Key", pWapiSta->wapiUsk.micKey, 16); + } + else + { + WAPI_TRACE(WAPI_API, "%s(): AE update usk!\n",__FUNCTION__); + pWapiSta->wapiUskUpdate.bSet = true; + pWapiSta->bAuthenticatorInUpdata = true; + memcpy(pWapiSta->wapiUskUpdate.dataKey,data+10,16); + memcpy(pWapiSta->wapiUskUpdate.micKey,data+26,16); + memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPN,WapiASUEPNInitialValueSrc,16); + pWapiSta->wapiUskUpdate.keyId = *(data+42); + pWapiSta->wapiUskUpdate.bTxEnable = true; + WAPI_TRACE(WAPI_API, "%s(): keyid=%d\n",__FUNCTION__, pWapiSta->wapiUskUpdate.keyId); + WAPI_DATA(WAPI_API, "SetKey - AE Usk Data Key", pWapiSta->wapiUskUpdate.dataKey, 16); + WAPI_DATA(WAPI_API, "SetKey - AE Usk Mic Key", pWapiSta->wapiUskUpdate.micKey, 16); + } + } + else{ + if(!bUpdate){ + WAPI_TRACE(WAPI_API, "%s(): ASUE fisrt set usk!\n",__FUNCTION__); + if(bTxEnable){ + pWapiSta->wapiUsk.bTxEnable = true; + memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16); + WAPI_TRACE(WAPI_API, "%s(): Tx enable!\n",__FUNCTION__); + }else{ + pWapiSta->wapiUsk.bSet = true; + memcpy(pWapiSta->wapiUsk.dataKey,data+10,16); + memcpy(pWapiSta->wapiUsk.micKey,data+26,16); + pWapiSta->wapiUsk.keyId = *(data+42); + pWapiSta->wapiUsk.bTxEnable = false; + WAPI_TRACE(WAPI_API, "%s(): Tx disable!\n",__FUNCTION__); + WAPI_DATA(WAPI_API, "SetKey - AE Usk Data Key", pWapiSta->wapiUsk.dataKey, 16); + WAPI_DATA(WAPI_API, "SetKey - AE Usk Mic Key", pWapiSta->wapiUsk.micKey, 16); + } + }else{ + WAPI_TRACE(WAPI_API, "%s(): ASUE update usk!\n",__FUNCTION__); + if(bTxEnable){ + pWapiSta->wapiUskUpdate.bTxEnable = true; + if(pWapiSta->wapiUskUpdate.bSet){ + WAPI_TRACE(WAPI_API, "%s(): ASUE set usk!\n",__FUNCTION__); + memcpy(pWapiSta->wapiUsk.dataKey,pWapiSta->wapiUskUpdate.dataKey,16); + memcpy(pWapiSta->wapiUsk.micKey,pWapiSta->wapiUskUpdate.micKey,16); + pWapiSta->wapiUsk.keyId=pWapiSta->wapiUskUpdate.keyId; + memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiAEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiAEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiAEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiAEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPN,WapiAEPNInitialValueSrc,16); + pWapiSta->wapiUskUpdate.bTxEnable = false; + pWapiSta->wapiUskUpdate.bSet = false; + } + memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16); + }else{ + WAPI_TRACE(WAPI_API, "%s(): ASUE set update usk!\n",__FUNCTION__); + pWapiSta->wapiUskUpdate.bSet = true; + memcpy(pWapiSta->wapiUskUpdate.dataKey,data+10,16); + memcpy(pWapiSta->wapiUskUpdate.micKey,data+26,16); + pWapiSta->wapiUskUpdate.keyId = *(data+42); + pWapiSta->wapiUskUpdate.bTxEnable = false; + WAPI_TRACE(WAPI_API, "%s(): keyid=%d\n",__FUNCTION__, pWapiSta->wapiUskUpdate.keyId); + WAPI_DATA(WAPI_API, "SetKey - AE Usk Data Key", pWapiSta->wapiUskUpdate.dataKey, 16); + WAPI_DATA(WAPI_API, "SetKey - AE Usk Mic Key", pWapiSta->wapiUskUpdate.micKey, 16); + } + } + } + break; + case 2: + if(bAuthenticator){ + pWapiInfo->wapiTxMsk.bSet = true; + memcpy(pWapiInfo->wapiTxMsk.dataKey,data+10,16); + memcpy(pWapiInfo->wapiTxMsk.micKey,data+26,16); + pWapiInfo->wapiTxMsk.keyId = *(data+42); + pWapiInfo->wapiTxMsk.bTxEnable = true; + memcpy(pWapiInfo->lastTxMulticastPN,WapiAEMultiCastPNInitialValueSrc,16); + if(!bUpdate){ + WAPI_TRACE(WAPI_API, "%s(): AE fisrt set msk!\n",__FUNCTION__); + if(!pWapiSta->bSetkeyOk) + pWapiSta->bSetkeyOk = true; + pWapiInfo->bFirstAuthentiateInProgress= false; + }else{ + WAPI_TRACE(WAPI_API, "%s():AE update msk!\n",__FUNCTION__); + } + WAPI_TRACE(WAPI_API, "%s(): keyid=%d\n",__FUNCTION__, pWapiInfo->wapiTxMsk.keyId); + WAPI_DATA(WAPI_API, "SetKey - AE Msk Data Key", pWapiInfo->wapiTxMsk.dataKey, 16); + WAPI_DATA(WAPI_API, "SetKey - AE Msk Mic Key", pWapiInfo->wapiTxMsk.micKey, 16); + } + else{ + if(!bUpdate){ + WAPI_TRACE(WAPI_API, "%s(): ASUE fisrt set msk!\n",__FUNCTION__); + pWapiSta->wapiMsk.bSet = true; + memcpy(pWapiSta->wapiMsk.dataKey,data+10,16); + memcpy(pWapiSta->wapiMsk.micKey,data+26,16); + pWapiSta->wapiMsk.keyId = *(data+42); + pWapiSta->wapiMsk.bTxEnable = false; + if(!pWapiSta->bSetkeyOk) + pWapiSta->bSetkeyOk = true; + pWapiInfo->bFirstAuthentiateInProgress= false; + WAPI_DATA(WAPI_API, "SetKey - ASUE Msk Data Key", pWapiSta->wapiMsk.dataKey, 16); + WAPI_DATA(WAPI_API, "SetKey - ASUE Msk Mic Key", pWapiSta->wapiMsk.micKey, 16); + }else{ + WAPI_TRACE(WAPI_API, "%s(): ASUE update msk!\n",__FUNCTION__); + pWapiSta->wapiMskUpdate.bSet = true; + memcpy(pWapiSta->wapiMskUpdate.dataKey,data+10,16); + memcpy(pWapiSta->wapiMskUpdate.micKey,data+26,16); + pWapiSta->wapiMskUpdate.keyId = *(data+42); + pWapiSta->wapiMskUpdate.bTxEnable = false; + WAPI_TRACE(WAPI_API, "%s(): keyid=%d\n",__FUNCTION__, pWapiSta->wapiMskUpdate.keyId); + WAPI_DATA(WAPI_API, "SetKey - ASUE Msk Data Key", pWapiSta->wapiMskUpdate.dataKey, 16); + WAPI_DATA(WAPI_API, "SetKey - ASUE Msk Mic Key", pWapiSta->wapiMskUpdate.micKey, 16); + } + } + break; + default: + WAPI_TRACE(WAPI_ERR, "%s(): Unknown Flag!\n",__FUNCTION__); + break; + } + } + } + } + break; + } + case WAPI_CMD_SET_MULTICAST_PN: + { + PRT_WAPI_T pWapiInfo = &ieee->wapiInfo; + PRT_WAPI_STA_INFO pWapiSta; + u8 data[22]; + u8 k; + + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_MULTICAST_PN!\n",__FUNCTION__); + if (!ieee->WapiSupport) + { + ret = -1; + break; + } + if(wrq->u.data.length < 22){ + ret = -1; + break; + } + + memcpy(data, (u8 *)wrq->u.data.pointer, 22); + list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) { + if(!memcmp(pWapiSta->PeerMacAddr,data,6)) + { + for(k=0;k<16;k++) + pWapiSta->lastRxMulticastPN[k] = data[21-k]; + break; + } + } + WAPI_DATA(WAPI_API, "Multicast Rx PN:", pWapiSta->lastRxMulticastPN, 16); + break; + } + case WAPI_CMD_GET_PN: + { + PRT_WAPI_T pWapiInfo = &ieee->wapiInfo; + + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_GET_PN!\n",__FUNCTION__); + if (!ieee->WapiSupport){ + ret = -1; + break; + } + if(wrq->u.data.length<16){ + ret = -1; + break; + } + if(copy_to_user((void *)(wrq->u.data.pointer), pWapiInfo->lastTxMulticastPN, 16)==0) + wrq->u.data.length = 16; + break; + } + case WAPI_CMD_GET_WAPIIE: + { + PRT_WAPI_T pWapiInfo = &ieee->wapiInfo; + u8 data[512]; + u8 Length = 0; + + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_GET_WAPIIE!\n",__FUNCTION__); + if (!ieee->WapiSupport){ + ret = -1; + break; + } + if(wrq->u.data.length<257){ + ret = -1; + break; + } + + if(ieee->iw_mode == IW_MODE_INFRA){ + data[0]= pWapiInfo->assoReqWapiIELength; + Length ++; + memcpy(data+Length,pWapiInfo->assoReqWapiIE,pWapiInfo->assoReqWapiIELength); + Length += pWapiInfo->assoReqWapiIELength; + } + else if(ieee->iw_mode == IW_MODE_ADHOC){ + WAPI_DATA(WAPI_API, "GetWapiIE - ADHOC", pWapiInfo->sendbeaconWapiIE, pWapiInfo->sendbeaconWapiIELength); + data[0] = pWapiInfo->sendbeaconWapiIELength; + Length++; + memcpy(data+Length,pWapiInfo->sendbeaconWapiIE,pWapiInfo->sendbeaconWapiIELength); + Length += pWapiInfo->sendbeaconWapiIELength; + } + + if(copy_to_user((void *)(wrq->u.data.pointer), data, Length)==0) + wrq->u.data.length = Length; + break; + } + case WAPI_CMD_SET_SSID: + { + u8 ssid[IW_ESSID_MAX_SIZE + 1]; + + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_SSID!\n",__FUNCTION__); + if (!ieee->WapiSupport){ + ret = -1; + break; + } + if((wrq->u.data.length == 0) || (NULL == wrq->u.data.pointer)){ + ret = -1; + break; + } + if(wrq->u.data.length > IW_ESSID_MAX_SIZE){ + ret = -1; + break; + } + printk("===>%s(): wrq->u.essid.flags is %d\n",__FUNCTION__,wrq->u.essid.flags); + copy_from_user(ssid, (u8 *)wrq->u.essid.pointer, wrq->u.essid.length); + +#ifdef TO_DO_LIST + if(!ieee->wapiInfo.bWapiEnable) + SetEncryptState(dev); +#endif + if((priv->bHwRadioOff == true) || (!priv->up)){ + ret = -1; + break; + } + ret = rtllib_wx_set_essid(ieee,NULL,(union iwreq_data *)&(wrq->u),ssid); + + break; + } + case WAPI_CMD_GET_BSSID: + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_GET_BSSID!\n",__FUNCTION__); + if (!ieee->WapiSupport){ + ret = -1; + break; + } + if((ieee->iw_mode == IW_MODE_INFRA) || (ieee->iw_mode == IW_MODE_ADHOC) ){ + if(copy_to_user((void *)(wrq->u.data.pointer), ieee->current_network.bssid, ETH_ALEN)==0) + wrq->u.data.length = ETH_ALEN; + }else{ + ret = -1; + } + break; +#if 0 + case WAPI_CMD_GET_LINK_STATUS: + { + u8 connect_status = 0; + + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_GET_LINK_STATUS!\n",__FUNCTION__); + if(ieee->state == IEEE80211_LINKED) + connect_status = 1; + if(copy_to_user((void *)(wrq->u.data.pointer), &connect_status, sizeof(u8))==0) + wrq->u.data.length = sizeof(u8); + break; + } +#endif + case WAPI_CMD_SET_IW_MODE: + { + union iwreq_data *wrqu = (union iwreq_data *)&(wrq->u); + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_IW_MODE!\n",__FUNCTION__); + if (!ieee->WapiSupport){ + ret = -1; + break; + } + WAPI_TRACE(WAPI_API, "%s(): Set iw_mode %d!\n",__FUNCTION__, wrqu->mode); + wapi_ioctl_set_mode(dev, NULL, wrqu, NULL); + if(wrqu->mode == IW_MODE_ADHOC) + ConstructWapiIEForInit(ieee); + break; + } + case WAPI_CMD_SET_DISASSOCIATE: + { + u8 destAddr[6]; + + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_DISASSOCIATE!\n",__FUNCTION__); + if (!ieee->WapiSupport){ + ret = -1; + break; + } + if(wrq->u.data.length != 6){ + ret = -1; + break; + } + copy_from_user(destAddr, (u8 *)(wrq->u.data.pointer), wrq->u.data.length); + + if(ieee->iw_mode == IW_MODE_INFRA){ + SendDisassociation(ieee,1,deauth_lv_ss); + ieee80211_disassociate_from_app(ieee); + }else if(ieee->iw_mode == IW_MODE_ADHOC){ + WAPI_TRACE(WAPI_API, "%s(): Disassociate "MAC_FMT"!\n",__FUNCTION__, MAC_ARG(destAddr)); + WapiReturnOneStaInfo(ieee, destAddr, 1); + DelStaInfo(ieee, destAddr); + } + break; + } + case WAPI_CMD_SAVE_PID: + { + u8 strPID[10]; + u32 len = 0; + int i = 0; + + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SAVE_PID!\n",__FUNCTION__); + if (!ieee->WapiSupport){ + ret = -1; + break; + } + if ( !wrq->u.data.pointer ){ + ret = -1; + break; + } + + len = wrq->u.data.length; + memset(strPID, 0, sizeof(strPID)); + if(copy_from_user(strPID, (void *)wrq->u.data.pointer, len)){ + ret = -1; + break; + } + + pid_wapi = 0; + for(i = 0; i < len; i++) { + pid_wapi = pid_wapi * 10 + (strPID[i] - 48); + } + WAPI_TRACE(WAPI_API, "%s(): strPID=%s pid_wapi=%d!\n",__FUNCTION__, strPID, pid_wapi); + break; + } + case WAPI_CMD_DEQUEUE: + { + int QueueDataLen = 0; + + WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_DEQUEUE!\n",__FUNCTION__); + if((ret = WAPI_DeQueue(&ieee->wapi_queue_lock, ieee->wapi_queue, QueueData, &QueueDataLen)) != 0){ + if(copy_to_user((void *)(wrq->u.data.pointer), DATAQUEUE_EMPTY, sizeof(DATAQUEUE_EMPTY))==0) + wrq->u.data.length = sizeof(DATAQUEUE_EMPTY); + }else{ + if(copy_to_user((void *)wrq->u.data.pointer, (void *)QueueData, QueueDataLen)==0) + wrq->u.data.length = QueueDataLen; + } + break; + } + default: + WAPI_TRACE(WAPI_ERR, "%s(): Error CMD!\n",__FUNCTION__); + break; + } + + return ret; +} +#endif + +/* based on ipw2200 driver */ +int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct iwreq *wrq = (struct iwreq *)rq; + int ret=-1; + struct rtllib_device *ieee = priv->rtllib; + u32 key[4]; + u8 broadcast_addr[6] = {0xff,0xff,0xff,0xff,0xff,0xff}; + u8 zero_addr[6] = {0}; + struct iw_point *p = &wrq->u.data; + + down(&priv->wx_sem); + + switch (cmd) { + case RTL_IOCTL_WPA_SUPPLICANT: + { + struct ieee_param *ipw = NULL; + if (p->length < sizeof(struct ieee_param) || !p->pointer){ + ret = -EINVAL; + goto out; + } + + ipw = (struct ieee_param *)kmalloc(p->length, GFP_KERNEL); + if (ipw == NULL){ + ret = -ENOMEM; + goto out; + } + if (copy_from_user(ipw, p->pointer, p->length)) { + kfree(ipw); + ret = -EFAULT; + goto out; + } + + if (ipw->cmd == IEEE_CMD_SET_ENCRYPTION) + { + if (ipw->u.crypt.set_tx) + { + if (strcmp(ipw->u.crypt.alg, "CCMP") == 0) + ieee->pairwise_key_type = KEY_TYPE_CCMP; + else if (strcmp(ipw->u.crypt.alg, "TKIP") == 0) + ieee->pairwise_key_type = KEY_TYPE_TKIP; + else if (strcmp(ipw->u.crypt.alg, "WEP") == 0) + { + if (ipw->u.crypt.key_len == 13) + ieee->pairwise_key_type = KEY_TYPE_WEP104; + else if (ipw->u.crypt.key_len == 5) + ieee->pairwise_key_type = KEY_TYPE_WEP40; + } + else + ieee->pairwise_key_type = KEY_TYPE_NA; + + if (ieee->pairwise_key_type) + { + if (memcmp(ieee->ap_mac_addr, zero_addr, 6) == 0) + ieee->iw_mode = IW_MODE_ADHOC; + + memcpy((u8*)key, ipw->u.crypt.key, 16); + EnableHWSecurityConfig8192(dev); + set_swcam(dev, 4, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8*)ieee->ap_mac_addr, 0, key,0); + setKey(dev, 4, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8*)ieee->ap_mac_addr, 0, key); + if (ieee->iw_mode == IW_MODE_ADHOC){ + set_swcam(dev, ipw->u.crypt.idx, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8*)ieee->ap_mac_addr, 0, key,0); + setKey(dev, ipw->u.crypt.idx, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8*)ieee->ap_mac_addr, 0, key); + } + } +#ifdef RTL8192E + if ((ieee->pairwise_key_type == KEY_TYPE_CCMP) && ieee->pHTInfo->bCurrentHTSupport){ + write_nic_byte(dev, 0x173, 1); + } +#endif + + } + else + { + memcpy((u8*)key, ipw->u.crypt.key, 16); + if (strcmp(ipw->u.crypt.alg, "CCMP") == 0) + ieee->group_key_type= KEY_TYPE_CCMP; + else if (strcmp(ipw->u.crypt.alg, "TKIP") == 0) + ieee->group_key_type = KEY_TYPE_TKIP; + else if (strcmp(ipw->u.crypt.alg, "WEP") == 0) + { + if (ipw->u.crypt.key_len == 13) + ieee->group_key_type = KEY_TYPE_WEP104; + else if (ipw->u.crypt.key_len == 5) + ieee->group_key_type = KEY_TYPE_WEP40; + } + else + ieee->group_key_type = KEY_TYPE_NA; + + if (ieee->group_key_type) + { + set_swcam( dev, + ipw->u.crypt.idx, + ipw->u.crypt.idx, + ieee->group_key_type, + broadcast_addr, + 0, + key, + 0); + setKey( dev, + ipw->u.crypt.idx, + ipw->u.crypt.idx, + ieee->group_key_type, + broadcast_addr, + 0, + key); + } + } + } +#ifdef JOHN_DEBUG + { + int i; + printk("@@ wrq->u pointer = "); + for(i=0;iu.data.length;i++){ + if(i%10==0) printk("\n"); + printk( "%8x|", ((u32*)wrq->u.data.pointer)[i] ); + } + printk("\n"); + } +#endif +#ifdef _RTL8192_EXT_PATCH_ + ret = rtllib_wpa_supplicant_ioctl(priv->rtllib, &wrq->u.data,0); +#else + ret = rtllib_wpa_supplicant_ioctl(priv->rtllib, &wrq->u.data, 0); +#endif + kfree(ipw); + break; + } +#if defined (RTL8192S_WAPI_SUPPORT) + case WAPI_CMD_GET_WAPI_SUPPORT: + case WAPI_CMD_SET_WAPI_ENABLE: + case WAPI_CMD_SET_WAPI_PSK: + case WAPI_CMD_SET_KEY: + case WAPI_CMD_SET_MULTICAST_PN: + case WAPI_CMD_GET_PN: + case WAPI_CMD_GET_WAPIIE: + case WAPI_CMD_SET_SSID: + case WAPI_CMD_GET_BSSID: + case WAPI_CMD_SET_IW_MODE: + case WAPI_CMD_SET_DISASSOCIATE: + case WAPI_CMD_SAVE_PID: + case WAPI_CMD_DEQUEUE: + ret = WAPI_Ioctl(dev, wrq, cmd); + break; +#endif + default: + ret = -EOPNOTSUPP; + break; + } + +out: + up(&priv->wx_sem); + + return ret; +} + +void FairBeacon(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct rtllib_network *net = &priv->rtllib->current_network; + static u8 i=100; + static u8 forceturn =0; + u16 beaconint = net->beacon_interval; + + if(priv->rtllib->iw_mode != IW_MODE_ADHOC) + return; + + if(priv->bIbssCoordinator){ + i--; + + if(forceturn ==2){ + forceturn =0; + priv->rtllib->SetHwRegHandler(dev, HW_VAR_BEACON_INTERVAL, (u8*)(&beaconint)); + i=100; + } + + if(i<=94){ + beaconint=beaconint+2; + priv->rtllib->SetHwRegHandler(dev, HW_VAR_BEACON_INTERVAL, (u8*)(&beaconint)); + forceturn =1; + } + } else { + i++; + + if(forceturn ==1){ + forceturn =0; + priv->rtllib->SetHwRegHandler(dev, HW_VAR_BEACON_INTERVAL, (u8*)(&beaconint)); + i=100; + } + + if(i>=106){ + beaconint=beaconint-2; + priv->rtllib->SetHwRegHandler(dev, HW_VAR_BEACON_INTERVAL, (u8*)(&beaconint)); + forceturn =2; + } + } +} + + +irqreturn_type rtl8192_interrupt(int irq, void *netdev, struct pt_regs *regs) +{ + struct net_device *dev = (struct net_device *) netdev; + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); +#ifdef _RTL8192_EXT_PATCH_ + struct net_device *meshdev = ((struct rtllib_device *)netdev_priv_rsl(dev))->meshdev; +#endif + unsigned long flags; + u32 inta; + u32 intb; + intb = 0; + + if(priv->irq_enabled == 0){ + goto done; + } + + spin_lock_irqsave(&priv->irq_th_lock,flags); + + priv->ops->interrupt_recognized(dev, &inta, &intb); + priv->stats.shints++; + + if (!inta) { + spin_unlock_irqrestore(&priv->irq_th_lock,flags); + goto done; + } + + if (inta == 0xffff) { + spin_unlock_irqrestore(&priv->irq_th_lock,flags); + goto done; + } + + priv->stats.ints++; + +#ifdef _RTL8192_EXT_PATCH_ + if (!netif_running(dev) && !netif_running(meshdev)) +#else + if (!netif_running(dev)) +#endif + { + spin_unlock_irqrestore(&priv->irq_th_lock,flags); + goto done; + } + +#if defined RTL8192SE + if(intb & IMR_TBDOK){ + RT_TRACE(COMP_INTR, "beacon ok interrupt!\n"); + priv->stats.txbeaconokint++; + priv->bIbssCoordinator = true; + } + + if(intb & IMR_TBDER){ + RT_TRACE(COMP_INTR, "beacon error interrupt!\n"); + priv->stats.txbeaconerr++; + priv->bIbssCoordinator = false; + } + + if ((intb & IMR_TBDOK) ||(intb & IMR_TBDER)) + FairBeacon(dev); +#else + if(inta & IMR_TBDOK){ + RT_TRACE(COMP_INTR, "beacon ok interrupt!\n"); + priv->stats.txbeaconokint++; + } + + if(inta & IMR_TBDER){ + RT_TRACE(COMP_INTR, "beacon ok interrupt!\n"); + priv->stats.txbeaconerr++; + } +#endif + + if(inta & IMR_BDOK) { + RT_TRACE(COMP_INTR, "beacon interrupt!\n"); +#ifdef _ENABLE_SW_BEACON + rtl8192_tx_isr(dev, BEACON_QUEUE); +#endif + } + + if(inta & IMR_MGNTDOK ) { + RT_TRACE(COMP_INTR, "Manage ok interrupt!\n"); + priv->stats.txmanageokint++; + rtl8192_tx_isr(dev,MGNT_QUEUE); + spin_unlock_irqrestore(&priv->irq_th_lock,flags); + if (priv->rtllib->ack_tx_to_ieee){ + if (rtl8192_is_tx_queue_empty(dev)){ + priv->rtllib->ack_tx_to_ieee = 0; + rtllib_ps_tx_ack(priv->rtllib, 1); + } + } + spin_lock_irqsave(&priv->irq_th_lock,flags); + } + +#ifndef RTL8192CE + if (inta & IMR_COMDOK) { + priv->stats.txcmdpktokint++; + rtl8192_tx_isr(dev,TXCMD_QUEUE); + } +#endif + + if (inta & IMR_HIGHDOK) { + rtl8192_tx_isr(dev,HIGH_QUEUE); + } + +#ifdef RTL8192SE + if ((inta & IMR_ROK) || (inta & IMR_RXCMDOK)) +#else + if (inta & IMR_ROK) +#endif + { + priv->stats.rxint++; + priv->InterruptLog.nIMR_ROK++; + tasklet_schedule(&priv->irq_rx_tasklet); + } + + if (inta & IMR_BcnInt) { + RT_TRACE(COMP_INTR, "prepare beacon for interrupt!\n"); +#ifndef _ENABLE_SW_BEACON + tasklet_schedule(&priv->irq_prepare_beacon_tasklet); +#endif + } + + if (inta & IMR_RDU) { + RT_TRACE(COMP_INTR, "rx descriptor unavailable!\n"); + priv->stats.rxrdu++; +#ifndef RTL8192CE + write_nic_dword(dev,INTA_MASK,read_nic_dword(dev, INTA_MASK) & ~IMR_RDU); +#endif + tasklet_schedule(&priv->irq_rx_tasklet); + } + + if (inta & IMR_RXFOVW) { + RT_TRACE(COMP_INTR, "rx overflow !\n"); + priv->stats.rxoverflow++; + tasklet_schedule(&priv->irq_rx_tasklet); + } + + if (inta & IMR_TXFOVW) priv->stats.txoverflow++; + + if (inta & IMR_BKDOK) { + RT_TRACE(COMP_INTR, "BK Tx OK interrupt!\n"); + priv->stats.txbkokint++; + priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++; + rtl8192_tx_isr(dev,BK_QUEUE); + } + + if (inta & IMR_BEDOK) { + RT_TRACE(COMP_INTR, "BE TX OK interrupt!\n"); + priv->stats.txbeokint++; + priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++; + rtl8192_tx_isr(dev,BE_QUEUE); + } + + if (inta & IMR_VIDOK) { + RT_TRACE(COMP_INTR, "VI TX OK interrupt!\n"); + priv->stats.txviokint++; + priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++; + rtl8192_tx_isr(dev,VI_QUEUE); + } + + if (inta & IMR_VODOK) { + priv->stats.txvookint++; + RT_TRACE(COMP_INTR, "Vo TX OK interrupt!\n"); + priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++; + rtl8192_tx_isr(dev,VO_QUEUE); + } + + spin_unlock_irqrestore(&priv->irq_th_lock,flags); + +done: + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) + return; +#else + return IRQ_HANDLED; +#endif +} + + + +/**************************************************************************** + ---------------------------- PCI_STUFF--------------------------- +*****************************************************************************/ +#ifdef HAVE_NET_DEVICE_OPS +static const struct net_device_ops rtl8192_netdev_ops = { + .ndo_open = rtl8192_open, + .ndo_stop = rtl8192_close, + .ndo_tx_timeout = rtl8192_tx_timeout, + .ndo_do_ioctl = rtl8192_ioctl, + .ndo_set_multicast_list = r8192_set_multicast, + .ndo_set_mac_address = r8192_set_mac_adr, + .ndo_validate_addr = eth_validate_addr, + .ndo_change_mtu = eth_change_mtu, + .ndo_start_xmit = rtllib_xmit, +}; +#endif + +static int __devinit rtl8192_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id) +{ + unsigned long ioaddr = 0; + struct net_device *dev = NULL; + struct r8192_priv *priv= NULL; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct rtl819x_ops *ops = (struct rtl819x_ops *)(id->driver_data); +#endif + +#ifdef CONFIG_RTL8192_IO_MAP + unsigned long pio_start, pio_len, pio_flags; +#else + unsigned long pmem_start, pmem_len, pmem_flags; +#endif + int err = 0; +#ifdef _RTL8192_EXT_PATCH_ + int result; + struct net_device *meshdev = NULL; + struct meshdev_priv *mpriv; + char meshifname[]="mesh0"; +#endif + bool bdma64 = false; + + RT_TRACE(COMP_INIT,"Configuring chip resources"); + + if( pci_enable_device (pdev) ){ + RT_TRACE(COMP_ERR,"Failed to enable PCI device"); + return -EIO; + } + + pci_set_master(pdev); + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) +#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL < (n)) -1)) +#endif + +#ifdef CONFIG_64BIT_DMA + if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { + printk("RTL819xCE: Using 64bit DMA\n"); + if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64))) { + printk( "Unable to obtain 64bit DMA for consistent allocations\n"); + pci_disable_device(pdev); + return -ENOMEM; + } + bdma64 = true; + } else +#endif + { + if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) { + printk( "Unable to obtain 32bit DMA for consistent allocations\n"); + pci_disable_device(pdev); + return -ENOMEM; + } +#endif + } + } + dev = alloc_rtllib(sizeof(struct r8192_priv)); + if (!dev) + return -ENOMEM; + + if(bdma64){ + dev->features |= NETIF_F_HIGHDMA; + } + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) + SET_MODULE_OWNER(dev); +#endif + + pci_set_drvdata(pdev, dev); +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + SET_NETDEV_DEV(dev, &pdev->dev); +#endif + priv = rtllib_priv(dev); + priv->rtllib = (struct rtllib_device *)netdev_priv_rsl(dev); + priv->pdev=pdev; + priv->rtllib->pdev=pdev; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + if((pdev->subsystem_vendor == PCI_VENDOR_ID_DLINK)&&(pdev->subsystem_device == 0x3304)){ + priv->rtllib->bSupportRemoteWakeUp = 1; + } else +#endif + { + priv->rtllib->bSupportRemoteWakeUp = 0; + } + +#ifdef CONFIG_RTL8192_IO_MAP + pio_start = (unsigned long)pci_resource_start (pdev, 0); + pio_len = (unsigned long)pci_resource_len (pdev, 0); + pio_flags = (unsigned long)pci_resource_flags (pdev, 0); + + if (!(pio_flags & IORESOURCE_IO)) { + RT_TRACE(COMP_ERR,"region #0 not a PIO resource, aborting"); + goto fail; + } + + printk("Io mapped space start: 0x%08lx \n", pio_start ); + if( ! request_region( pio_start, pio_len, DRV_NAME ) ){ + RT_TRACE(COMP_ERR,"request_region failed!"); + goto fail; + } + + ioaddr = pio_start; + dev->base_addr = ioaddr; +#else +#ifdef RTL8192CE + pmem_start = pci_resource_start(pdev, 2); + pmem_len = pci_resource_len(pdev, 2); + pmem_flags = pci_resource_flags (pdev, 2); +#else + pmem_start = pci_resource_start(pdev, 1); + pmem_len = pci_resource_len(pdev, 1); + pmem_flags = pci_resource_flags (pdev, 1); +#endif + + if (!(pmem_flags & IORESOURCE_MEM)) { + RT_TRACE(COMP_ERR,"region #1 not a MMIO resource, aborting"); + goto fail; + } + + printk("Memory mapped space start: 0x%08lx \n", pmem_start); + if (!request_mem_region(pmem_start, pmem_len, DRV_NAME)) { + RT_TRACE(COMP_ERR,"request_mem_region failed!"); + goto fail; + } + + + ioaddr = (unsigned long)ioremap_nocache( pmem_start, pmem_len); + if( ioaddr == (unsigned long)NULL ){ + RT_TRACE(COMP_ERR,"ioremap failed!"); + goto fail1; + } + + dev->mem_start = ioaddr; + dev->mem_end = ioaddr + pci_resource_len(pdev, 0); + +#endif +#if defined RTL8192SE || defined RTL8192CE + pci_write_config_byte(pdev, 0x81,0); + pci_write_config_byte(pdev,0x44,0); + pci_write_config_byte(pdev,0x04,0x06); + pci_write_config_byte(pdev,0x04,0x07); +#endif + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + priv->ops = ops; +#else +#if defined RTL8190P || defined RTL8192E + priv->ops = &rtl819xp_ops; +#else + priv->ops = &rtl8192se_ops; +#endif +#endif + + if(rtl8192_pci_findadapter(pdev, dev) == false) + goto fail1; + + dev->irq = pdev->irq; + priv->irq = 0; + +#ifdef HAVE_NET_DEVICE_OPS + dev->netdev_ops = &rtl8192_netdev_ops; +#else + dev->open = rtl8192_open; + dev->stop = rtl8192_close; + dev->tx_timeout = rtl8192_tx_timeout; + dev->do_ioctl = rtl8192_ioctl; + dev->set_multicast_list = r8192_set_multicast; + dev->set_mac_address = r8192_set_mac_adr; + dev->hard_start_xmit = rtllib_xmit; +#endif + +#if WIRELESS_EXT >= 12 +#if WIRELESS_EXT < 17 + dev->get_wireless_stats = r8192_get_wireless_stats; +#endif + dev->wireless_handlers = (struct iw_handler_def *) &r8192_wx_handlers_def; +#endif +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + dev->ethtool_ops = &rtl819x_ethtool_ops; +#endif + + dev->type = ARPHRD_ETHER; + dev->watchdog_timeo = HZ*3; + + if (dev_alloc_name(dev, ifname) < 0){ + RT_TRACE(COMP_INIT, "Oops: devname already taken! Trying wlan%%d...\n"); + dev_alloc_name(dev, ifname); + } + + RT_TRACE(COMP_INIT, "Driver probe completed1\n"); + if(rtl8192_init(dev)!=0){ + RT_TRACE(COMP_ERR, "Initialization failed"); + goto fail1; + } + +#ifdef CONFIG_CFG_80211 + if(!rtl8192_register_wiphy_dev(dev)) + goto fail1; +#endif + + netif_carrier_off(dev); + netif_stop_queue(dev); + + register_netdev(dev); + RT_TRACE(COMP_INIT, "dev name: %s\n",dev->name); + err = rtl_debug_module_init(priv, dev->name); + if (err) { + RT_TRACE(COMP_DBG, "failed to create debugfs files. Ignoring error: %d\n", err); + } + rtl8192_proc_init_one(dev); + +#ifdef ENABLE_GPIO_RADIO_CTL + if(priv->polling_timer_on == 0){ + check_rfctrl_gpio_timer((unsigned long)dev); + } +#endif +#ifdef _RTL8192_EXT_PATCH_ + meshdev = alloc_netdev(sizeof(struct meshdev_priv),meshifname,meshdev_init); + netif_stop_queue(meshdev); + memcpy(meshdev->dev_addr, dev->dev_addr, ETH_ALEN); + DMESG("Card MAC address for meshdev is "MAC_FMT, MAC_ARG(meshdev->dev_addr)); + + meshdev->base_addr = dev->base_addr; + meshdev->irq = dev->irq; + meshdev->mem_start = dev->mem_start; + meshdev->mem_end = dev->mem_end; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + SET_NETDEV_DEV(meshdev, dev->dev.parent); +#endif + + if ((result = register_netdev(meshdev))) + { + printk("Error %i registering device %s",result, meshdev->name); + goto fail; + } + else + { + mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + priv->rtllib->meshdev=meshdev; + priv->rtllib->meshstats=meshdev_stats(meshdev); + priv->rtllib->only_mesh = 1; + priv->rtllib->p2pmode = 0; + priv->rtllib->serverExtChlOffset = 0; + priv->rtllib->APExtChlOffset = 0; + mpriv->rtllib = priv->rtllib; + mpriv->priv = priv; + } +#endif + +#ifdef RTL8192CE + mdelay(1000); +#endif + +#ifdef CONFIG_RTL_RFKILL + if (priv->ops->init_before_adapter_start) { + priv->ops->init_before_adapter_start(dev); + priv->initialized_at_probe = true; + } + if (!rtl8192_rfkill_init(dev)) { + goto fail1; + } +#endif + +#if defined CONFIG_ASPM_OR_D3 + rtl8192_initialize_adapter_common(dev); +#endif + + RT_TRACE(COMP_INIT, "Driver probe completed\n"); + return 0; + +fail1: +#ifdef CONFIG_RTL8192_IO_MAP + + if( dev->base_addr != 0 ){ + + release_region(dev->base_addr, + pci_resource_len(pdev, 0) ); + } +#else + if( dev->mem_start != (unsigned long)NULL ){ + iounmap( (void *)dev->mem_start ); +#ifdef RTL8192CE + release_mem_region( pci_resource_start(pdev, 2), + pci_resource_len(pdev, 2) ); +#else + release_mem_region( pci_resource_start(pdev, 1), + pci_resource_len(pdev, 1) ); +#endif + } +#endif + +fail: + if(dev){ + + if (priv->irq) { + free_irq(dev->irq, dev); + dev->irq=0; + } + free_rtllib(dev); + } + + pci_disable_device(pdev); + + DMESG("wlan driver load failed\n"); + pci_set_drvdata(pdev, NULL); + return -ENODEV; + +} + +static void __devexit rtl8192_pci_disconnect(struct pci_dev *pdev) +{ + struct net_device *dev = pci_get_drvdata(pdev); + struct r8192_priv *priv ; +#ifdef _RTL8192_EXT_PATCH_ + struct net_device *meshdev; +#endif + if(dev){ +#ifdef CONFIG_RTL_RFKILL + rtl8192_rfkill_exit(dev); +#endif + unregister_netdev(dev); + + priv = rtllib_priv(dev); + +#ifdef _RTL8192_EXT_PATCH_ + rtl8192_dinit_mshobj(priv); +#endif + +#ifdef CONFIG_BT_30 + bt_wifi_deinit(dev); +#endif + +#ifdef ENABLE_GPIO_RADIO_CTL + del_timer_sync(&priv->gpio_polling_timer); +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + cancel_delayed_work(&priv->gpio_change_rf_wq); +#endif + priv->polling_timer_on = 0; +#endif + rtl_debug_module_remove(priv); + rtl8192_proc_remove_one(dev); +#ifdef _RTL8192_EXT_PATCH_ + rtl8192_down(dev,true); + if(priv && priv->rtllib->meshdev) + { + meshdev = priv->rtllib->meshdev; + priv->rtllib->meshdev = NULL; + + if(meshdev){ + meshdev_down(meshdev); + unregister_netdev(meshdev); + } + } +#else + rtl8192_down(dev,true); +#endif + deinit_hal_dm(dev); +#ifdef CONFIG_ASPM_OR_D3 + ; +#endif +#ifdef RTL8192SE + DeInitSwLeds(dev); +#endif + if (priv->pFirmware) + { + vfree(priv->pFirmware); + priv->pFirmware = NULL; + } +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + destroy_workqueue(priv->priv_wq); +#endif + { + u32 i; + rtl8192_free_rx_ring(dev); + for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) { + rtl8192_free_tx_ring(dev, i); + } + } + + if(priv->irq){ + + printk("Freeing irq %d\n",dev->irq); + free_irq(dev->irq, dev); + priv->irq=0; + + } +#ifdef CONFIG_RTL8192_IO_MAP + if( dev->base_addr != 0 ){ + + release_region(dev->base_addr, + pci_resource_len(pdev, 0) ); + } +#else + if( dev->mem_start != (unsigned long)NULL ){ + iounmap( (void *)dev->mem_start ); +#ifdef RTL8192CE + release_mem_region( pci_resource_start(pdev, 2), + pci_resource_len(pdev, 2) ); +#else + release_mem_region( pci_resource_start(pdev, 1), + pci_resource_len(pdev, 1) ); +#endif + } +#endif /*end #ifdef RTL_IO_MAP*/ + free_rtllib(dev); + + if(priv->scan_cmd) + kfree(priv->scan_cmd); + + } else{ + priv=rtllib_priv(dev); + } + + pci_disable_device(pdev); +#ifdef RTL8192SE + pci_write_config_byte(pdev, 0x81,1); + pci_write_config_byte(pdev,0x44,3); +#endif + RT_TRACE(COMP_DOWN, "wlan driver removed\n"); +} + +bool NicIFEnableNIC(struct net_device* dev) +{ + bool init_status = true; + struct r8192_priv* priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + + if(IS_NIC_DOWN(priv)){ + RT_TRACE(COMP_ERR, "ERR!!! %s(): Driver is already down!\n",__FUNCTION__); + priv->bdisable_nic = false; + return RT_STATUS_FAILURE; + } + + RT_TRACE(COMP_PS, "===========>%s()\n",__FUNCTION__); + priv->bfirst_init = true; + init_status = priv->ops->initialize_adapter(dev); + if (init_status != true) { + RT_TRACE(COMP_ERR,"ERR!!! %s(): initialization is failed!\n",__FUNCTION__); + priv->bdisable_nic = false; + return -1; + } + RT_TRACE(COMP_INIT, "start adapter finished\n"); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC); + priv->bfirst_init = false; + + rtl8192_irq_enable(dev); + priv->bdisable_nic = false; + RT_TRACE(COMP_PS,"<===========%s()\n",__FUNCTION__); + return init_status; +} +bool NicIFDisableNIC(struct net_device* dev) +{ + bool status = true; + struct r8192_priv* priv = rtllib_priv(dev); + u8 tmp_state = 0; + RT_TRACE(COMP_PS, "=========>%s()\n",__FUNCTION__); + priv->bdisable_nic = true; + tmp_state = priv->rtllib->state; +#ifdef _RTL8192_EXT_PATCH_ + if((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->only_mesh)) + rtllib_softmac_stop_protocol(priv->rtllib, 1, false); + else + rtllib_softmac_stop_protocol(priv->rtllib, 0, false); +#else + rtllib_softmac_stop_protocol(priv->rtllib, 0, false); +#endif + priv->rtllib->state = tmp_state; + rtl8192_cancel_deferred_work(priv); + rtl8192_irq_disable(dev); + + priv->ops->stop_adapter(dev, false); + RT_TRACE(COMP_PS, "<=========%s()\n",__FUNCTION__); + + return status; +} + +static int __init rtl8192_pci_module_init(void) +{ + int ret; + int error; + +#ifdef BUILT_IN_CRYPTO + ret = arc4_init(); + if (ret) { + printk(KERN_ERR "arc4_init() failed %d\n", ret); + return ret; + } + + + ret = michael_mic_init(); + if (ret) { + printk(KERN_ERR "michael_mic_init() failed %d\n", ret); + return ret; + } + + ret = aes_init(); + if (ret) { + printk(KERN_ERR "aes_init() failed %d\n", ret); + return ret; + } +#endif +#ifdef BUILT_IN_RTLLIB + ret = rtllib_init(); + if (ret) { + printk(KERN_ERR "rtllib_init() failed %d\n", ret); + return ret; + } + ret = rtllib_crypto_init(); + if (ret) { + printk(KERN_ERR "rtllib_crypto_init() failed %d\n", ret); + return ret; + } + ret = rtllib_crypto_tkip_init(); + if (ret) { + printk(KERN_ERR "rtllib_crypto_tkip_init() failed %d\n", ret); + return ret; + } + ret = rtllib_crypto_ccmp_init(); + if (ret) { + printk(KERN_ERR "rtllib_crypto_ccmp_init() failed %d\n", ret); + return ret; + } + ret = rtllib_crypto_wep_init(); + if (ret) { + printk(KERN_ERR "rtllib_crypto_wep_init() failed %d\n", ret); + return ret; + } +#endif +#ifdef BUILT_IN_MSHCLASS + ret = msh_init(); + if (ret) { + printk(KERN_ERR "msh_init() failed %d\n", ret); + return ret; + } +#endif + printk(KERN_INFO "\nLinux kernel driver for RTL8192 based WLAN cards\n"); + printk(KERN_INFO "Copyright (c) 2007-2008, Realsil Wlan Driver\n"); + RT_TRACE(COMP_INIT, "Initializing module"); + RT_TRACE(COMP_INIT, "Wireless extensions version %d", WIRELESS_EXT); + + error = rtl_create_debugfs_root(); + if (error) { + RT_TRACE(COMP_DBG, "Create debugfs root fail: %d\n", error); + goto err_out; + } + + rtl8192_proc_module_init(); +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)) + if(0!=pci_module_init(&rtl8192_pci_driver)) +#else + if(0!=pci_register_driver(&rtl8192_pci_driver)) +#endif + { + DMESG("No device found"); + /*pci_unregister_driver (&rtl8192_pci_driver);*/ + return -ENODEV; + } + return 0; +err_out: + return error; + +} + +static void __exit rtl8192_pci_module_exit(void) +{ + pci_unregister_driver(&rtl8192_pci_driver); + + RT_TRACE(COMP_DOWN, "Exiting"); + rtl8192_proc_module_remove(); + rtl_remove_debugfs_root(); +#ifdef BUILT_IN_RTLLIB + rtllib_crypto_tkip_exit(); + rtllib_crypto_ccmp_exit(); + rtllib_crypto_wep_exit(); + rtllib_crypto_deinit(); + rtllib_exit(); +#endif +#ifdef BUILT_IN_CRYPTO + arc4_exit(); + michael_mic_exit(); + aes_fini(); +#endif +#ifdef BUILT_IN_MSHCLASS + msh_exit(); +#endif + +} + +void check_rfctrl_gpio_timer(unsigned long data) +{ + struct r8192_priv* priv = rtllib_priv((struct net_device *)data); + + priv->polling_timer_on = 1; + + queue_delayed_work_rsl(priv->priv_wq,&priv->gpio_change_rf_wq,0); + + mod_timer(&priv->gpio_polling_timer, jiffies + MSECS(RTLLIB_WATCH_DOG_TIME)); +} + +/*************************************************************************** + ------------------- module init / exit stubs ---------------- +****************************************************************************/ +module_init(rtl8192_pci_module_init); +module_exit(rtl8192_pci_module_exit); + +MODULE_DESCRIPTION("Linux driver for Realtek RTL819x WiFi cards"); +MODULE_AUTHOR(DRV_COPYRIGHT " " DRV_AUTHOR); +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) +MODULE_VERSION(DRV_VERSION); +#endif +MODULE_LICENSE("GPL"); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 9) +module_param(ifname, charp, S_IRUGO|S_IWUSR ); +module_param(hwwep,int, S_IRUGO|S_IWUSR); +module_param(channels,int, S_IRUGO|S_IWUSR); +#else +MODULE_PARM(ifname, "s"); +MODULE_PARM(hwwep,"i"); +MODULE_PARM(channels,"i"); +#endif + +MODULE_PARM_DESC(ifname," Net interface name, wlan%d=default"); +MODULE_PARM_DESC(hwwep," Try to use hardware WEP support(default use hw. set 0 to use software security)"); +MODULE_PARM_DESC(channels," Channel bitmask for specific locales. NYI"); --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_wx.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_wx.c @@ -0,0 +1,4376 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + +#include +#include "rtl_core.h" +#ifdef ENABLE_DOT11D +#include "rtllib/dot11d.h" +#endif +#ifdef _RTL8192_EXT_PATCH_ +#include "../../mshclass/msh_class.h" +#endif + +#ifdef CONFIG_MP +#include "r8192S_mp.h" +#endif + +#define RATE_COUNT 12 +u32 rtl8192_rates[] = {1000000,2000000,5500000,11000000, + 6000000,9000000,12000000,18000000,24000000,36000000,48000000,54000000}; + + +#ifndef ENETDOWN +#define ENETDOWN 1 +#endif +extern int hwwep; +#ifdef _RTL8192_EXT_PATCH_ +int r8192_wx_set_channel(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra); +static int r8192_wx_mesh_scan(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra); +static int r8192_wx_get_mesh_list(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra); +#endif + +static int r8192_wx_get_freq(struct net_device *dev, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ + struct r8192_priv *priv = rtllib_priv(dev); + +#ifdef _RTL8192_EXT_PATCH_ + return rtllib_wx_get_freq(priv->rtllib,a,wrqu,b,0); +#else + return rtllib_wx_get_freq(priv->rtllib,a,wrqu,b); +#endif +} + + +#if 0 + +static int r8192_wx_set_beaconinterval(struct net_device *dev, struct iw_request_info *aa, + union iwreq_data *wrqu, char *b) +{ + int *parms = (int *)b; + int bi = parms[0]; + + struct r8192_priv *priv = rtllib_priv(dev); + + down(&priv->wx_sem); + DMESG("setting beacon interval to %x",bi); + + priv->rtllib->beacon_interval=bi; + rtl8192_commit(dev); + up(&priv->wx_sem); + + return 0; +} + + +static int r8192_wx_set_forceassociate(struct net_device *dev, struct iw_request_info *aa, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv=rtllib_priv(dev); + int *parms = (int *)extra; + + priv->rtllib->force_associate = (parms[0] > 0); + + + return 0; +} + +#endif +static int r8192_wx_get_mode(struct net_device *dev, struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ + struct r8192_priv *priv=rtllib_priv(dev); + + return rtllib_wx_get_mode(priv->rtllib,a,wrqu,b); +} + +static int r8192_wx_get_rate(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + return rtllib_wx_get_rate(priv->rtllib,info,wrqu,extra); +} + + + +static int r8192_wx_set_rate(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + int ret; + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->bHwRadioOff == true) + return 0; + + down(&priv->wx_sem); + + ret = rtllib_wx_set_rate(priv->rtllib,info,wrqu,extra); + + up(&priv->wx_sem); + + return ret; +} + + +static int r8192_wx_set_rts(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + int ret; + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->bHwRadioOff == true) + return 0; + + down(&priv->wx_sem); + + ret = rtllib_wx_set_rts(priv->rtllib,info,wrqu,extra); + + up(&priv->wx_sem); + + return ret; +} + +static int r8192_wx_get_rts(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + return rtllib_wx_get_rts(priv->rtllib,info,wrqu,extra); +} + +static int r8192_wx_set_power(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + int ret; + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->bHwRadioOff == true){ + RT_TRACE(COMP_ERR,"%s():Hw is Radio Off, we can't set Power,return\n",__FUNCTION__); + return 0; + } + down(&priv->wx_sem); + + ret = rtllib_wx_set_power(priv->rtllib,info,wrqu,extra); + + up(&priv->wx_sem); + + return ret; +} + +static int r8192_wx_get_power(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + return rtllib_wx_get_power(priv->rtllib,info,wrqu,extra); +} + +static int r8192_wx_set_rawtx(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int ret; + + if(priv->bHwRadioOff == true) + return 0; + + down(&priv->wx_sem); + + ret = rtllib_wx_set_rawtx(priv->rtllib, info, wrqu, extra); + + up(&priv->wx_sem); + + return ret; + +} + +static int r8192_wx_force_reset(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + down(&priv->wx_sem); + + printk("%s(): force reset ! extra is %d\n",__FUNCTION__, *extra); + priv->force_reset = *extra; + up(&priv->wx_sem); + return 0; + +} + +static int r8192_wx_force_mic_error(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + + down(&priv->wx_sem); + + printk("%s(): force mic error ! \n",__FUNCTION__); + ieee->force_mic_error = true; + up(&priv->wx_sem); + return 0; + +} + +#define MAX_ADHOC_PEER_NUM 64 +typedef struct +{ + unsigned char MacAddr[ETH_ALEN]; + unsigned char WirelessMode; + unsigned char bCurTxBW40MHz; +} adhoc_peer_entry_t, *p_adhoc_peer_entry_t; +typedef struct +{ + adhoc_peer_entry_t Entry[MAX_ADHOC_PEER_NUM]; + unsigned char num; +} adhoc_peers_info_t, *p_adhoc_peers_info_t; +int r8192_wx_get_adhoc_peers(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ +#ifndef RTL8192SE + return 0; +#else + struct r8192_priv *priv = rtllib_priv(dev); + struct sta_info * psta = NULL; + adhoc_peers_info_t adhoc_peers_info; + p_adhoc_peers_info_t padhoc_peers_info = &adhoc_peers_info; + p_adhoc_peer_entry_t padhoc_peer_entry = NULL; + int k=0; + + + memset(extra, 0, 2047); + padhoc_peers_info->num = 0; + + down(&priv->wx_sem); + + for(k=0; krtllib->peer_assoc_list[k]; + if(NULL != psta) + { + padhoc_peer_entry = &padhoc_peers_info->Entry[padhoc_peers_info->num]; + memset(padhoc_peer_entry,0, sizeof(adhoc_peer_entry_t)); + memcpy(padhoc_peer_entry->MacAddr, psta->macaddr, ETH_ALEN); + padhoc_peer_entry->WirelessMode = psta->wireless_mode; + padhoc_peer_entry->bCurTxBW40MHz = psta->htinfo.bCurTxBW40MHz; + padhoc_peers_info->num ++; + printk("[%d] MacAddr:"MAC_FMT" \tWirelessMode:%d \tBW40MHz:%d \n", \ + k, MAC_ARG(padhoc_peer_entry->MacAddr), padhoc_peer_entry->WirelessMode, padhoc_peer_entry->bCurTxBW40MHz); + sprintf(extra, "[%d] MacAddr:"MAC_FMT" \tWirelessMode:%d \tBW40MHz:%d \n", \ + k, MAC_ARG(padhoc_peer_entry->MacAddr), padhoc_peer_entry->WirelessMode, padhoc_peer_entry->bCurTxBW40MHz); + } + } + + up(&priv->wx_sem); + + wrqu->data.length = strlen(extra); + wrqu->data.flags = 0; + return 0; + +#endif +} + + +static int r8191se_wx_get_firm_version(struct net_device *dev, + struct iw_request_info *info, + struct iw_param *wrqu, char *extra) +{ +#if defined RTL8192SE || defined RTL8192CE + struct r8192_priv *priv = rtllib_priv(dev); + u16 firmware_version; + + down(&priv->wx_sem); + printk("%s(): Just Support 92SE tmp\n", __FUNCTION__); +#ifdef RTL8192CE + firmware_version = priv->firmware_version; +#else + firmware_version = priv->pFirmware->FirmwareVersion; +#endif + wrqu->value = firmware_version; + wrqu->fixed = 1; + + up(&priv->wx_sem); +#endif + return 0; +} + +static int r8192_wx_adapter_power_status(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ +#ifdef ENABLE_LPS + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + struct rtllib_device* ieee = priv->rtllib; + + down(&priv->wx_sem); + + RT_TRACE(COMP_POWER, "%s(): %s\n",__FUNCTION__, (*extra == 6)?"DC power":"AC power"); + if(*extra || priv->force_lps) { + priv->ps_force = false; + pPSC->bLeisurePs = true; + } else { + if(priv->rtllib->state == RTLLIB_LINKED) + LeisurePSLeave(dev); + + priv->ps_force = true; + pPSC->bLeisurePs = false; + ieee->ps = *extra; + } + + up(&priv->wx_sem); +#endif + + return 0; + +} + +#ifdef _RTL8192_EXT_PATCH_ +static int r8192_wx_print_reg(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + u8 reg1=0,reg2=0,reg3=0,reg4=0; + u32 reg5 = 0, len = 0; + + memset(extra, 0, 512); + sprintf(extra,"\nStart Log: Set 0x08000000 to 0x230\n"); + write_nic_dword(dev, 0x230 , 0x08000000); + reg1 = read_nic_byte(dev, 0xf0); + reg2 = read_nic_byte(dev, 0xf4); + reg3 = read_nic_byte(dev, 0x140); + reg4 = read_nic_byte(dev, 0x124); + mdelay(10); + reg5 = read_nic_dword(dev, 0x230); + len = strlen(extra); + sprintf(extra+len, "0xf0: %2.2x\n0xf4: %2.2x\n0x140: %2.2x\n0x124: %2.2x\n", reg1,reg2,reg3,reg4); + len = strlen(extra); + sprintf(extra+len,"After delay 10ms, read 0x230: %8.8x\n", reg5); + + write_nic_dword(dev, 0x230 , 0x40000000); + reg5 = read_nic_dword(dev, 0x230); + len = strlen(extra); + sprintf(extra+len,"Set 0x40000000 to 0x230. Read 0x230: %8.8x\n", reg5); + + write_nic_dword(dev, 0x230 , 0x80000000); + reg5 = read_nic_dword(dev, 0x230); + len = strlen(extra); + sprintf(extra+len,"Set 0x80000000 to 0x230. Read 0x230: %8.8x\n", reg5); + + wrqu->data.length = strlen(extra); + return 0; +} + +static int r8192_wx_resume_firm(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + + write_nic_byte(dev, 0x42, 0xFF); + write_nic_word(dev, 0x40, 0x77FC); + write_nic_word(dev, 0x40, 0x57FC); + write_nic_word(dev, 0x40, 0x37FC); + write_nic_word(dev, 0x40, 0x77FC); + + udelay(100); + + write_nic_word(dev, 0x40, 0x57FC); + write_nic_word(dev, 0x40, 0x37FC); + write_nic_byte(dev, 0x42, 0x00); + + return 0; +} +#endif +static int r8192se_wx_set_radio(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + down(&priv->wx_sem); + + printk("%s(): set radio ! extra is %d\n",__FUNCTION__, *extra); + if((*extra != 0) && (*extra != 1)) + { + RT_TRACE(COMP_ERR, "%s(): set radio an err value,must 0(radio off) or 1(radio on)\n",__FUNCTION__); + return -1; + } + priv->sw_radio_on = *extra; + up(&priv->wx_sem); + return 0; + +} + +static int r8192se_wx_set_lps_awake_interval(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + + down(&priv->wx_sem); + + printk("%s(): set lps awake interval ! extra is %d\n",__FUNCTION__, *extra); + + pPSC->RegMaxLPSAwakeIntvl = *extra; + up(&priv->wx_sem); + return 0; + +} + +static int r8192se_wx_set_force_lps(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + down(&priv->wx_sem); + + printk("%s(): force LPS ! extra is %d (1 is open 0 is close)\n",__FUNCTION__, *extra); + priv->force_lps = *extra; + up(&priv->wx_sem); + return 0; + +} + +#ifdef _RTL8192_EXT_PATCH_ +static int r8192_wx_get_drv_version(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + memset(extra, 0, 64); + sprintf(extra, "Support Mesh"); + + ((struct iw_point *)wrqu)->length = strlen(extra); + return 0; +} +#endif + +static int r8192_wx_set_debugflag(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 c = *extra; + + if(priv->bHwRadioOff == true) + return 0; + + printk("=====>%s(), *extra:%x, debugflag:%x\n", __FUNCTION__, *extra, rt_global_debug_component); + if (c > 0) { + rt_global_debug_component |= (1<bHwRadioOff == true) + return 0; +#ifdef _RTL8192_EXT_PATCH_ + if (priv->mshobj && (priv->rtllib->iw_mode==IW_MODE_MESH)) { + return 0; + } +#endif + rtState = priv->rtllib->eRFPowerState; + down(&priv->wx_sem); +#ifdef ENABLE_IPS + if(wrqu->mode == IW_MODE_ADHOC || wrqu->mode == IW_MODE_MONITOR + || ieee->bNetPromiscuousMode ) + { + if(priv->rtllib->PowerSaveControl.bInactivePs){ + if(rtState == eRfOff){ + if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS) + { + RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__); + up(&priv->wx_sem); + return -1; + } else { + printk("=========>%s(): IPSLeave\n",__FUNCTION__); + down(&priv->rtllib->ips_sem); + IPSLeave(dev); + up(&priv->rtllib->ips_sem); + } + } + } + } +#endif + ret = rtllib_wx_set_mode(priv->rtllib,a,wrqu,b); + + up(&priv->wx_sem); + return ret; +} +#if defined (RTL8192S_WAPI_SUPPORT) +int wapi_ioctl_set_mode(struct net_device *dev, struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ + struct r8192_priv *priv = rtllib_priv(dev); + RT_RF_POWER_STATE rtState; + int ret; + + printk("===============================>%s\n", __FUNCTION__); + if(priv->bHwRadioOff == true) + return 0; +#ifdef _RTL8192_EXT_PATCH_ + if (priv->mshobj && (priv->rtllib->iw_mode==IW_MODE_MESH)) { + return 0; + } +#endif + rtState = priv->rtllib->eRFPowerState; +#ifdef ENABLE_IPS + if(wrqu->mode == IW_MODE_ADHOC){ + if(priv->rtllib->PowerSaveControl.bInactivePs){ + if(rtState == eRfOff){ + if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS) + { + RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__); + up(&priv->wx_sem); + return -1; + } else { + printk("=========>%s(): IPSLeave\n",__FUNCTION__); + down(&priv->rtllib->ips_sem); + IPSLeave(dev); + up(&priv->rtllib->ips_sem); + } + } + } + } +#endif + ret = rtllib_wx_set_mode(priv->rtllib,a,wrqu,b); + + return ret; +} +#endif +struct iw_range_with_scan_capa +{ + /* Informative stuff (to choose between different interface) */ + __u32 throughput; /* To give an idea... */ + /* In theory this value should be the maximum benchmarked + * TCP/IP throughput, because with most of these devices the + * bit rate is meaningless (overhead an co) to estimate how + * fast the connection will go and pick the fastest one. + * I suggest people to play with Netperf or any benchmark... + */ + + /* NWID (or domain id) */ + __u32 min_nwid; /* Minimal NWID we are able to set */ + __u32 max_nwid; /* Maximal NWID we are able to set */ + + /* Old Frequency (backward compat - moved lower ) */ + __u16 old_num_channels; + __u8 old_num_frequency; + + /* Scan capabilities */ + __u8 scan_capa; +}; + +static int rtl8192_wx_get_range(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct iw_range *range = (struct iw_range *)extra; + struct r8192_priv *priv = rtllib_priv(dev); + u16 val; + int i; + + wrqu->data.length = sizeof(*range); + memset(range, 0, sizeof(*range)); + + /* ~130 Mb/s real (802.11n) */ + range->throughput = 130 * 1000 * 1000; + + if(priv->rf_set_sens != NULL) + range->sensitivity = priv->max_sens; /* signal level threshold range */ + + range->max_qual.qual = 100; + range->max_qual.level = 0; + range->max_qual.noise = 0; + range->max_qual.updated = 7; /* Updated all three */ + + range->avg_qual.qual = 70; /* > 8% missed beacons is 'bad' */ + range->avg_qual.level = 0; + range->avg_qual.noise = 0; + range->avg_qual.updated = 7; /* Updated all three */ + + range->num_bitrates = min(RATE_COUNT, IW_MAX_BITRATES); + + for (i = 0; i < range->num_bitrates; i++) { + range->bitrate[i] = rtl8192_rates[i]; + } + + range->max_rts = DEFAULT_RTS_THRESHOLD; + range->min_frag = MIN_FRAG_THRESHOLD; + range->max_frag = MAX_FRAG_THRESHOLD; + + range->min_pmp = 0; + range->max_pmp = 5000000; + range->min_pmt = 0; + range->max_pmt = 65535*1000; + range->pmp_flags = IW_POWER_PERIOD; + range->pmt_flags = IW_POWER_TIMEOUT; + range->pm_capa = IW_POWER_PERIOD | IW_POWER_TIMEOUT | IW_POWER_ALL_R; + range->we_version_compiled = WIRELESS_EXT; + range->we_version_source = 18; + + for (i = 0, val = 0; i < 14; i++) { + if ((priv->rtllib->active_channel_map)[i+1]) { + range->freq[val].i = i + 1; + range->freq[val].m = rtllib_wlan_frequencies[i] * 100000; + range->freq[val].e = 1; + val++; + } else { + } + + if (val == IW_MAX_FREQUENCIES) + break; + } + range->num_frequency = val; + range->num_channels = val; +#if WIRELESS_EXT > 17 + range->enc_capa = IW_ENC_CAPA_WPA|IW_ENC_CAPA_WPA2| + IW_ENC_CAPA_CIPHER_TKIP|IW_ENC_CAPA_CIPHER_CCMP; +#endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) + { + struct iw_range_with_scan_capa* tmp = (struct iw_range_with_scan_capa*)range; + tmp->scan_capa = 0x01; + } +#else + range->scan_capa = IW_SCAN_CAPA_ESSID | IW_SCAN_CAPA_TYPE; +#endif + + /* Event capability (kernel + driver) */ + + return 0; +} + +static int r8192_wx_set_scan(struct net_device *dev, struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + RT_RF_POWER_STATE rtState; + int ret; + +#ifdef CONFIG_MP + printk("######################%s(): In MP Test Can not Scan\n",__FUNCTION__); + return 0; +#endif + if (!(ieee->softmac_features & IEEE_SOFTMAC_SCAN)){ + if((ieee->state >= RTLLIB_ASSOCIATING) && (ieee->state <= RTLLIB_ASSOCIATING_AUTHENTICATED)){ + return 0; + } + if((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->CntAfterLink<2)){ + return 0; + } + } + + if(priv->bHwRadioOff == true){ + printk("================>%s(): hwradio off\n",__FUNCTION__); + return 0; + } + rtState = priv->rtllib->eRFPowerState; + if(!priv->up) return -ENETDOWN; + if (priv->rtllib->LinkDetectInfo.bBusyTraffic == true) + return -EAGAIN; + +#ifdef _RTL8192_EXT_PATCH_ + if((ieee->iw_mode == IW_MODE_MESH)&&(ieee->mesh_state == RTLLIB_MESH_LINKED)) + { + return 0; + } +#endif +#if WIRELESS_EXT > 17 + if (wrqu->data.flags & IW_SCAN_THIS_ESSID) + { + struct iw_scan_req* req = (struct iw_scan_req*)b; + if (req->essid_len) + { + ieee->current_network.ssid_len = req->essid_len; + memcpy(ieee->current_network.ssid, req->essid, req->essid_len); + } + } +#endif + + down(&priv->wx_sem); + + priv->rtllib->FirstIe_InScan = true; + + if(priv->rtllib->state != RTLLIB_LINKED){ +#ifdef ENABLE_IPS + if(priv->rtllib->PowerSaveControl.bInactivePs){ + if(rtState == eRfOff){ + if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS){ + RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__); + up(&priv->wx_sem); + return -1; + }else{ + RT_TRACE(COMP_PS, "=========>%s(): IPSLeave\n",__FUNCTION__); + down(&priv->rtllib->ips_sem); + IPSLeave(dev); + up(&priv->rtllib->ips_sem); + } + } + } +#endif + rtllib_stop_scan(priv->rtllib); + if(priv->rtllib->LedControlHandler) + priv->rtllib->LedControlHandler(dev, LED_CTL_SITE_SURVEY); + + if(priv->rtllib->eRFPowerState != eRfOff){ + priv->rtllib->actscanning = true; + + if(ieee->ScanOperationBackupHandler) + ieee->ScanOperationBackupHandler(ieee->dev,SCAN_OPT_BACKUP); + + rtllib_start_scan_syncro(priv->rtllib, 0); + + if(ieee->ScanOperationBackupHandler) + ieee->ScanOperationBackupHandler(ieee->dev,SCAN_OPT_RESTORE); + } + ret = 0; + } else { + priv->rtllib->actscanning = true; + ret = rtllib_wx_set_scan(priv->rtllib,a,wrqu,b); + } + + up(&priv->wx_sem); + return ret; +} + + +static int r8192_wx_get_scan(struct net_device *dev, struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ + + int ret; + struct r8192_priv *priv = rtllib_priv(dev); + + if(!priv->up) return -ENETDOWN; + + if(priv->bHwRadioOff == true) + return 0; + + + down(&priv->wx_sem); + + ret = rtllib_wx_get_scan(priv->rtllib,a,wrqu,b); + + up(&priv->wx_sem); + + return ret; +} + +static int r8192_wx_set_essid(struct net_device *dev, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int ret; + + if ((rtllib_act_scanning(priv->rtllib, false)) && !(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){ + ; + } +#ifdef CONFIG_MP + printk("######################%s(): In MP Test Can not Set Essid\n",__FUNCTION__); + return 0; +#endif + if(priv->bHwRadioOff == true){ + printk("=========>%s():hw radio off,or Rf state is eRfOff, return\n",__FUNCTION__); + return 0; + } + down(&priv->wx_sem); + ret = rtllib_wx_set_essid(priv->rtllib,a,wrqu,b); + + up(&priv->wx_sem); + + return ret; +} + +static int r8192_wx_get_essid(struct net_device *dev, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ + int ret; + struct r8192_priv *priv = rtllib_priv(dev); + + down(&priv->wx_sem); + + ret = rtllib_wx_get_essid(priv->rtllib, a, wrqu, b); + + up(&priv->wx_sem); + + return ret; +} + +static int r8192_wx_set_nick(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if (wrqu->data.length > IW_ESSID_MAX_SIZE) + return -E2BIG; + down(&priv->wx_sem); + wrqu->data.length = min((size_t) wrqu->data.length, sizeof(priv->nick)); + memset(priv->nick, 0, sizeof(priv->nick)); + memcpy(priv->nick, extra, wrqu->data.length); + up(&priv->wx_sem); + return 0; + +} + +static int r8192_wx_get_nick(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + down(&priv->wx_sem); + wrqu->data.length = strlen(priv->nick); + memcpy(extra, priv->nick, wrqu->data.length); + wrqu->data.flags = 1; /* active */ + up(&priv->wx_sem); + return 0; +} + +static int r8192_wx_set_freq(struct net_device *dev, struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ + int ret; + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->bHwRadioOff == true) + return 0; + + down(&priv->wx_sem); + + ret = rtllib_wx_set_freq(priv->rtllib, a, wrqu, b); + + up(&priv->wx_sem); + return ret; +} + +static int r8192_wx_get_name(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + return rtllib_wx_get_name(priv->rtllib, info, wrqu, extra); +} + + +static int r8192_wx_set_frag(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->bHwRadioOff == true) + return 0; + + if (wrqu->frag.disabled) + priv->rtllib->fts = DEFAULT_FRAG_THRESHOLD; + else { + if (wrqu->frag.value < MIN_FRAG_THRESHOLD || + wrqu->frag.value > MAX_FRAG_THRESHOLD) + return -EINVAL; + + priv->rtllib->fts = wrqu->frag.value & ~0x1; + } + + return 0; +} + + +static int r8192_wx_get_frag(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + wrqu->frag.value = priv->rtllib->fts; + wrqu->frag.fixed = 0; /* no auto select */ + wrqu->frag.disabled = (wrqu->frag.value == DEFAULT_FRAG_THRESHOLD); + + return 0; +} + + +static int r8192_wx_set_wap(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *awrq, + char *extra) +{ + + int ret; + struct r8192_priv *priv = rtllib_priv(dev); + + if ((rtllib_act_scanning(priv->rtllib, false)) && !(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){ + ; + } + + if(priv->bHwRadioOff == true) + return 0; + +#ifdef _RTL8192_EXT_PATCH_ + if (priv->mshobj && (priv->rtllib->iw_mode==IW_MODE_MESH)){ + return 0; + } +#endif + down(&priv->wx_sem); + + ret = rtllib_wx_set_wap(priv->rtllib,info,awrq,extra); + + up(&priv->wx_sem); + + return ret; + +} + + +static int r8192_wx_get_wap(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + return rtllib_wx_get_wap(priv->rtllib,info,wrqu,extra); +} + + +static int r8192_wx_get_enc(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *key) +{ + struct r8192_priv *priv = rtllib_priv(dev); + +#ifdef _RTL8192_EXT_PATCH_ + return rtllib_wx_get_encode(priv->rtllib, info, wrqu, key,0); +#else + return rtllib_wx_get_encode(priv->rtllib, info, wrqu, key); +#endif +} + +static int r8192_wx_set_enc(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *key) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int ret; + + struct rtllib_device *ieee = priv->rtllib; + u32 hwkey[4]={0,0,0,0}; + u8 mask=0xff; + u32 key_idx=0; + u8 zero_addr[4][6] ={ {0x00,0x00,0x00,0x00,0x00,0x00}, + {0x00,0x00,0x00,0x00,0x00,0x01}, + {0x00,0x00,0x00,0x00,0x00,0x02}, + {0x00,0x00,0x00,0x00,0x00,0x03} }; + int i; + + if ((rtllib_act_scanning(priv->rtllib, false)) && !(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){ + ; + } +#ifdef CONFIG_MP + printk("######################%s(): In MP Test Can not Set Enc\n",__FUNCTION__); + return 0; +#endif + if(priv->bHwRadioOff == true) + return 0; + + if(!priv->up) return -ENETDOWN; + + priv->rtllib->wx_set_enc = 1; +#ifdef ENABLE_IPS + down(&priv->rtllib->ips_sem); + IPSLeave(dev); + up(&priv->rtllib->ips_sem); +#endif + down(&priv->wx_sem); + + RT_TRACE(COMP_SEC, "Setting SW wep key"); +#ifdef _RTL8192_EXT_PATCH_ + ret = rtllib_wx_set_encode(priv->rtllib,info,wrqu,key,0); +#else + ret = rtllib_wx_set_encode(priv->rtllib,info,wrqu,key); +#endif + up(&priv->wx_sem); + + + if (wrqu->encoding.flags & IW_ENCODE_DISABLED) { + ieee->pairwise_key_type = ieee->group_key_type = KEY_TYPE_NA; + CamResetAllEntry(dev); +#ifdef _RTL8192_EXT_PATCH_ + CamRestoreEachIFEntry(dev,1); + reset_IFswcam(dev,0); + priv->rtllib->wx_set_enc = 0; +#else + memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32); +#endif + goto end_hw_sec; + } + if(wrqu->encoding.length!=0){ + + for(i=0 ; i<4 ; i++){ + hwkey[i] |= key[4*i+0]&mask; + if(i==1&&(4*i+1)==wrqu->encoding.length) mask=0x00; + if(i==3&&(4*i+1)==wrqu->encoding.length) mask=0x00; + hwkey[i] |= (key[4*i+1]&mask)<<8; + hwkey[i] |= (key[4*i+2]&mask)<<16; + hwkey[i] |= (key[4*i+3]&mask)<<24; + } + + #define CONF_WEP40 0x4 + #define CONF_WEP104 0x14 + + switch(wrqu->encoding.flags & IW_ENCODE_INDEX){ + case 0: key_idx = ieee->tx_keyidx; break; + case 1: key_idx = 0; break; + case 2: key_idx = 1; break; + case 3: key_idx = 2; break; + case 4: key_idx = 3; break; + default: break; + } + if(wrqu->encoding.length==0x5){ + ieee->pairwise_key_type = KEY_TYPE_WEP40; + EnableHWSecurityConfig8192(dev); +#ifndef _RTL8192_EXT_PATCH_ + setKey( dev, + key_idx, + key_idx, + KEY_TYPE_WEP40, + zero_addr[key_idx], + 0, + hwkey); + + set_swcam( dev, + key_idx, + key_idx, + KEY_TYPE_WEP40, + zero_addr[key_idx], + 0, + hwkey, + 0); + +#endif + } + + else if(wrqu->encoding.length==0xd){ + ieee->pairwise_key_type = KEY_TYPE_WEP104; + EnableHWSecurityConfig8192(dev); +#ifndef _RTL8192_EXT_PATCH_ + setKey( dev, + key_idx, + key_idx, + KEY_TYPE_WEP104, + zero_addr[key_idx], + 0, + hwkey); + set_swcam( dev, + key_idx, + key_idx, + KEY_TYPE_WEP104, + zero_addr[key_idx], + 0, + hwkey, + 0); +#endif + } + else printk("wrong type in WEP, not WEP40 and WEP104\n"); +#ifdef _RTL8192_EXT_PATCH_ + if(ieee->state == RTLLIB_LINKED){ + if(ieee->iw_mode == IW_MODE_ADHOC) + { + + setKey( dev, + key_idx, + key_idx, + ieee->pairwise_key_type, + zero_addr[key_idx], + 0, + hwkey); + set_swcam( dev, + key_idx, + key_idx, + ieee->pairwise_key_type, + zero_addr[key_idx], + 0, + hwkey, + 0); + } + else{ + setKey( dev, + 31, + key_idx, + ieee->pairwise_key_type, + ieee->ap_mac_addr, + 0, + hwkey); + set_swcam( dev, + 31, + key_idx, + ieee->pairwise_key_type, + ieee->ap_mac_addr, + 0, + hwkey, + 0); + } + } +#endif + } + +#if 0 + if(wrqu->encoding.length==0 && (wrqu->encoding.flags >>8) == 0x8 ){ + printk("===>1\n"); + EnableHWSecurityConfig8192(dev); + key_idx = (wrqu->encoding.flags & 0xf)-1 ; + write_cam(dev, (4*6), 0xffff0000|read_cam(dev, key_idx*6) ); + write_cam(dev, (4*6)+1, 0xffffffff); + write_cam(dev, (4*6)+2, read_cam(dev, (key_idx*6)+2) ); + write_cam(dev, (4*6)+3, read_cam(dev, (key_idx*6)+3) ); + write_cam(dev, (4*6)+4, read_cam(dev, (key_idx*6)+4) ); + write_cam(dev, (4*6)+5, read_cam(dev, (key_idx*6)+5) ); + } +#endif +#ifdef _RTL8192_EXT_PATCH_ + priv->rtllib->wx_set_enc = 0; + printk("===================>%s():set ieee->wx_set_enc 0\n",__FUNCTION__); +end_hw_sec: +#else +end_hw_sec: + priv->rtllib->wx_set_enc = 0; +#endif + return ret; +} + + +static int r8192_wx_set_scan_type(struct net_device *dev, struct iw_request_info *aa, union + iwreq_data *wrqu, char *p){ + + struct r8192_priv *priv = rtllib_priv(dev); + int *parms=(int*)p; + int mode=parms[0]; + + if(priv->bHwRadioOff == true) + return 0; + + priv->rtllib->active_scan = mode; + + return 1; +} + + + +#define R8192_MAX_RETRY 255 +static int r8192_wx_set_retry(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int err = 0; + + if(priv->bHwRadioOff == true) + return 0; + + down(&priv->wx_sem); + + if (wrqu->retry.flags & IW_RETRY_LIFETIME || + wrqu->retry.disabled){ + err = -EINVAL; + goto exit; + } + if (!(wrqu->retry.flags & IW_RETRY_LIMIT)){ + err = -EINVAL; + goto exit; + } + + if(wrqu->retry.value > R8192_MAX_RETRY){ + err= -EINVAL; + goto exit; + } + if (wrqu->retry.flags & IW_RETRY_MAX) { + priv->retry_rts = wrqu->retry.value; + DMESG("Setting retry for RTS/CTS data to %d", wrqu->retry.value); + + }else { + priv->retry_data = wrqu->retry.value; + DMESG("Setting retry for non RTS/CTS data to %d", wrqu->retry.value); + } + + + rtl8192_commit(dev); + /* + if(priv->up){ + rtl8180_halt_adapter(dev); + rtl8180_rx_enable(dev); + rtl8180_tx_enable(dev); + + } + */ +exit: + up(&priv->wx_sem); + + return err; +} + +static int r8192_wx_get_retry(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + + wrqu->retry.disabled = 0; /* can't be disabled */ + + if ((wrqu->retry.flags & IW_RETRY_TYPE) == + IW_RETRY_LIFETIME) + return -EINVAL; + + if (wrqu->retry.flags & IW_RETRY_MAX) { + wrqu->retry.flags = IW_RETRY_LIMIT & IW_RETRY_MAX; + wrqu->retry.value = priv->retry_rts; + } else { + wrqu->retry.flags = IW_RETRY_LIMIT & IW_RETRY_MIN; + wrqu->retry.value = priv->retry_data; + } + + + return 0; +} + +static int r8192_wx_get_sens(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + if(priv->rf_set_sens == NULL) + return -1; /* we have not this support for this radio */ + wrqu->sens.value = priv->sens; + return 0; +} + + +static int r8192_wx_set_sens(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + + struct r8192_priv *priv = rtllib_priv(dev); + + short err = 0; + + if(priv->bHwRadioOff == true) + return 0; + + down(&priv->wx_sem); + if(priv->rf_set_sens == NULL) { + err= -1; /* we have not this support for this radio */ + goto exit; + } + if(priv->rf_set_sens(dev, wrqu->sens.value) == 0) + priv->sens = wrqu->sens.value; + else + err= -EINVAL; + +exit: + up(&priv->wx_sem); + + return err; +} + +#if (WIRELESS_EXT >= 18) +#if 0 +static int r8192_wx_get_enc_ext(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int ret = 0; +#ifdef _RTL8192_EXT_PATCH_ + ret = rtllib_wx_get_encode_ext(priv->rtllib, info, wrqu, extra,0); +#else + ret = rtllib_wx_get_encode_ext(priv->rtllib, info, wrqu, extra); +#endif + return ret; +} +#endif + +#ifdef _RTL8192_EXT_PATCH_ +static int meshdev_set_key_for_linked_peers(struct net_device *dev, u8 KeyIndex,u16 KeyType, u32 *KeyContent ); +static int r8192_set_hw_enc(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra, u8 is_mesh) +{ + int ret=0; + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + u32 key[4] = {0}; + struct iw_encode_ext *ext = (struct iw_encode_ext *)extra; + struct iw_point *encoding = &wrqu->encoding; + u8 idx = 0, alg = 0, group = 0; + u8 broadcast_addr[6] = {0xff,0xff,0xff,0xff,0xff,0xff}; + u8 zero[6] = {0}; + priv->rtllib->wx_set_enc = 1; +#ifdef ENABLE_IPS + down(&priv->rtllib->ips_sem); + IPSLeave(dev); + up(&priv->rtllib->ips_sem); +#endif +#if 0 + static u8 CAM_CONST_ADDR[4][6] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x03}}; +#endif + if ((encoding->flags & IW_ENCODE_DISABLED) || + ext->alg == IW_ENCODE_ALG_NONE) + { + if(is_mesh) + ieee->mesh_pairwise_key_type = ieee->mesh_pairwise_key_type = KEY_TYPE_NA; + else + ieee->pairwise_key_type = ieee->group_key_type = KEY_TYPE_NA; + CamResetAllEntry(dev); + if(is_mesh) + CamRestoreEachIFEntry(dev,0); + else + CamRestoreEachIFEntry(dev,1); + reset_IFswcam(dev,is_mesh); + goto end_hw_sec; + } + alg = (ext->alg == IW_ENCODE_ALG_CCMP)?KEY_TYPE_CCMP:ext->alg; + idx = encoding->flags & IW_ENCODE_INDEX; + if (idx) + idx --; + group = ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY; + printk("====>group is %x\n",group); + if ((!group) || (IW_MODE_ADHOC == ieee->iw_mode) || (alg == KEY_TYPE_WEP40) || (IW_MODE_MESH == ieee->iw_mode)) + { + if ((ext->key_len == 13) && (alg == KEY_TYPE_WEP40) ) + alg = KEY_TYPE_WEP104; + if(is_mesh) + ieee->mesh_pairwise_key_type = alg; + else + ieee->pairwise_key_type = alg; + EnableHWSecurityConfig8192(dev); + } + memcpy((u8*)key, ext->key, 16); + if ((alg & KEY_TYPE_WEP40) && (ieee->auth_mode !=2) ) + { + printk("=====>set WEP key\n"); + if (ext->key_len == 13){ + if(is_mesh) + ieee->mesh_pairwise_key_type = alg = KEY_TYPE_WEP104; + else + ieee->pairwise_key_type = alg = KEY_TYPE_WEP104; + } + if(ieee->iw_mode == IW_MODE_ADHOC){ + set_swcam( dev, + idx, + idx, + alg, + zero, + 0, + key, + is_mesh); + setKey( dev, + idx, + idx, + alg, + zero, + 0, + key); + } + + if(!is_mesh){ + if(ieee->state == RTLLIB_LINKED){ + setKey( dev, + 31, + idx, + ieee->pairwise_key_type, + ieee->ap_mac_addr, + 0, + key); + set_swcam( dev, + 31, + idx, + ieee->pairwise_key_type, + ieee->ap_mac_addr, + 0, + key, + 0); + } + } + } + else if (group) + { + printk("set group key\n"); + if(is_mesh) + ieee->mesh_group_key_type = alg; + else + ieee->group_key_type = alg; + if(ieee->iw_mode == IW_MODE_ADHOC){ + set_swcam( dev, + idx, + idx, + alg, + broadcast_addr, + 0, + key, + is_mesh); + setKey( dev, + idx, + idx, + alg, + broadcast_addr, + 0, + key); + } + + if(is_mesh) + meshdev_set_key_for_linked_peers(dev, + idx, + alg, + key); + } + else + { + printk("=============>set pairwise key\n"); +#ifdef RTL8192E + if ((ieee->pairwise_key_type == KEY_TYPE_CCMP) && ieee->pHTInfo->bCurrentHTSupport){ + write_nic_byte(dev, 0x173, 1); + } +#endif + set_swcam( dev, + 31, + idx, + alg, + (u8*)ieee->ap_mac_addr, + 0, + key, + is_mesh); + setKey( dev, + 31, + idx, + alg, + (u8*)ieee->ap_mac_addr, + 0, + key); + } + +end_hw_sec: + priv->rtllib->wx_set_enc = 0; + return ret; +} + +int rtl8192_set_key_for_AP(struct rtllib_device *ieee) +{ + struct rtllib_crypt_data **crypt; + int key_len=0; + char key[32]; + u16 keytype = IW_ENCODE_ALG_NONE; +#ifdef _RTL8192_EXT_PATCH_ + crypt = &ieee->sta_crypt[ieee->tx_keyidx]; +#else + crypt = &ieee->crypt[ieee->tx_keyidx]; +#endif + if (*crypt == NULL || (*crypt)->ops == NULL) + { + printk("%s():no encrypt now\n",__FUNCTION__); + return 0; + } + if (!((*crypt)->ops->set_key && (*crypt)->ops->get_key)) + return -1; + + key_len = (*crypt)->ops->get_key(key, 32, NULL, (*crypt)->priv); + if (strcmp((*crypt)->ops->name, "WEP") == 0 ) + { + if(key_len == 5) + keytype = KEY_TYPE_WEP40; + else + keytype = KEY_TYPE_WEP104; + } + else if (strcmp((*crypt)->ops->name, "TKIP") == 0) + return 0; + else if (strcmp((*crypt)->ops->name, "CCMP") == 0) + return 0; + + set_swcam( ieee->dev, + 31, + ieee->tx_keyidx, + keytype, + ieee->ap_mac_addr, + 0, + (u32 *)key , + 0); + setKey( ieee->dev, + 31, + ieee->tx_keyidx, + keytype, + ieee->ap_mac_addr, + 0, + (u32 *)key); + + + return 0; +} + +static int r8192_wx_set_enc_ext(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + int ret=0; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + + if(priv->bHwRadioOff == true) + return 0; + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + ret = rtllib_wx_set_encode_ext(ieee, info, wrqu, extra, 0); + + ret |= r8192_set_hw_enc(dev,info,wrqu,extra, 0); + SEM_UP_PRIV_WX(&priv->wx_sem); +#endif + + return ret; +} +/* + * set key for mesh, not a wireless extension handler. + * place it here because of porting from r8192_wx_set_enc_ext(). + */ +int r8192_mesh_set_enc_ext(struct net_device *dev, + struct iw_point *encoding, struct iw_encode_ext *ext, u8 *addr) +{ + int ret=0; + int i=0; + u8 broadcast_addr[6] = {0xff,0xff,0xff,0xff,0xff,0xff}; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + u8 entry_idx = 0; + down(&priv->wx_sem); + if(memcmp(addr,broadcast_addr,6)) + { + if ((i=rtllib_find_MP(ieee, addr, 0)) < 0) + { + i = rtllib_find_MP(ieee, addr, 1); + if (i<0) + return -1; + } + } + ret = rtllib_mesh_set_encode_ext(ieee, encoding, ext, i); + if ((-EINVAL == ret) || (-ENOMEM == ret)) { + goto end_hw_sec; + } + { +#if 0 + u8 zero[6] = {0}; +#endif + u32 key[4] = {0}; + u8 idx = 0, alg = 0, group = 0; + if ((encoding->flags & IW_ENCODE_DISABLED) || + ext->alg == IW_ENCODE_ALG_NONE) + { + CamResetAllEntry(dev); + CamRestoreEachIFEntry(dev,0); + reset_IFswcam(dev,1); + goto end_hw_sec; + } + alg = (ext->alg == IW_ENCODE_ALG_CCMP)?KEY_TYPE_CCMP:ext->alg; + idx = encoding->flags & IW_ENCODE_INDEX; + if (idx) + idx --; + group = ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY; + + if (!group) + { + ieee->mesh_pairwise_key_type = alg; + EnableHWSecurityConfig8192(dev); + } + + memcpy((u8*)key, ext->key, 16); + + if(group) + { + ieee->mesh_group_key_type = alg; +#if 0 + setKey( dev, + idx, + idx, + alg, + broadcast_addr, + 0, + key); +#endif + } + else + { +#if 0 + if ((ieee->mesh_pairwise_key_type == KEY_TYPE_CCMP) && ieee->pHTInfo->bCurrentHTSupport){ + write_nic_byte(dev, 0x173, 1); + } +#endif + entry_idx = rtl8192_get_free_hwsec_cam_entry(ieee,addr); +#if 0 + printk("%s(): Can't find free hw security cam entry\n",__FUNCTION__); + ret = -1; +#else + if (entry_idx >= TOTAL_CAM_ENTRY-1) { + printk("%s(): Can't find free hw security cam entry\n",__FUNCTION__); + ret = -1; + } else { + set_swcam( dev, + entry_idx, + idx, + alg, + (u8*)addr, + 0, + key, + 1); + setKey( dev, + entry_idx, + idx, + alg, + (u8*)addr, + 0, + key); + ret = 0; + } +#endif + } + + + } + +end_hw_sec: + up(&priv->wx_sem); +#endif + return ret; + +} +#else +static int r8192_wx_set_enc_ext(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + int ret=0; + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + + if(priv->bHwRadioOff == true) + return 0; + + down(&priv->wx_sem); + + priv->rtllib->wx_set_enc = 1; +#ifdef ENABLE_IPS + down(&priv->rtllib->ips_sem); + IPSLeave(dev); + up(&priv->rtllib->ips_sem); +#endif + + ret = rtllib_wx_set_encode_ext(ieee, info, wrqu, extra); + + { + u8 broadcast_addr[6] = {0xff,0xff,0xff,0xff,0xff,0xff}; + u8 zero[6] = {0}; + u32 key[4] = {0}; + struct iw_encode_ext *ext = (struct iw_encode_ext *)extra; + struct iw_point *encoding = &wrqu->encoding; +#if 0 + static u8 CAM_CONST_ADDR[4][6] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x03}}; +#endif + u8 idx = 0, alg = 0, group = 0; + if ((encoding->flags & IW_ENCODE_DISABLED) || + ext->alg == IW_ENCODE_ALG_NONE) + { + ieee->pairwise_key_type = ieee->group_key_type = KEY_TYPE_NA; + CamResetAllEntry(dev); + memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32); + goto end_hw_sec; + } + alg = (ext->alg == IW_ENCODE_ALG_CCMP)?KEY_TYPE_CCMP:ext->alg; + idx = encoding->flags & IW_ENCODE_INDEX; + if (idx) + idx --; + group = ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY; + + if ((!group) || (IW_MODE_ADHOC == ieee->iw_mode) || (alg == KEY_TYPE_WEP40)) + { + if ((ext->key_len == 13) && (alg == KEY_TYPE_WEP40) ) + alg = KEY_TYPE_WEP104; + ieee->pairwise_key_type = alg; + EnableHWSecurityConfig8192(dev); + } + memcpy((u8*)key, ext->key, 16); + + if ((alg & KEY_TYPE_WEP40) && (ieee->auth_mode !=2) ) + { + if (ext->key_len == 13) + ieee->pairwise_key_type = alg = KEY_TYPE_WEP104; + setKey( dev, + idx, + idx, + alg, + zero, + 0, + key); + set_swcam( dev, + idx, + idx, + alg, + zero, + 0, + key, + 0); + } + else if (group) + { + ieee->group_key_type = alg; + setKey( dev, + idx, + idx, + alg, + broadcast_addr, + 0, + key); + set_swcam( dev, + idx, + idx, + alg, + broadcast_addr, + 0, + key, + 0); + } + else + { + #ifdef RTL8192E + if ((ieee->pairwise_key_type == KEY_TYPE_CCMP) && ieee->pHTInfo->bCurrentHTSupport){ + write_nic_byte(dev, 0x173, 1); + } + #endif + setKey( dev, + 4, + idx, + alg, + (u8*)ieee->ap_mac_addr, + 0, + key); + set_swcam( dev, + 4, + idx, + alg, + (u8*)ieee->ap_mac_addr, + 0, + key, + 0); + } + + + } + +end_hw_sec: + priv->rtllib->wx_set_enc = 0; + up(&priv->wx_sem); +#endif + return ret; + +} +#endif +static int r8192_wx_set_auth(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *data, char *extra) +{ + int ret=0; + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->bHwRadioOff == true) + return 0; + + down(&priv->wx_sem); + ret = rtllib_wx_set_auth(priv->rtllib, info, &(data->param), extra); + up(&priv->wx_sem); +#endif + return ret; +} + +static int r8192_wx_set_mlme(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + + int ret=0; + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->bHwRadioOff == true) + return 0; + + down(&priv->wx_sem); + ret = rtllib_wx_set_mlme(priv->rtllib, info, wrqu, extra); + up(&priv->wx_sem); +#endif + return ret; +} +#endif + +static int r8192_wx_set_gen_ie(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *data, char *extra) +{ + int ret = 0; + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->bHwRadioOff == true) + return 0; + + down(&priv->wx_sem); + ret = rtllib_wx_set_gen_ie(priv->rtllib, extra, data->data.length); + up(&priv->wx_sem); +#endif + return ret; +} + +static int r8192_wx_get_gen_ie(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *data, char *extra) +{ + int ret = 0; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + + if (ieee->wpa_ie_len == 0 || ieee->wpa_ie == NULL) { + data->data.length = 0; + return 0; + } + + if (data->data.length < ieee->wpa_ie_len) { + return -E2BIG; + } + + data->data.length = ieee->wpa_ie_len; + memcpy(extra, ieee->wpa_ie, ieee->wpa_ie_len); +#endif + return ret; +} + +#ifdef _RTL8192_EXT_PATCH_ +/* + Output: + (case 1) Mesh: Enable. MESHID=[%s] (max length of %s is 32 bytes). + (case 2) Mesh: Disable. +*/ +static int r8192_wx_get_meshinfo(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_get_meshinfo ) + return 0; + return priv->mshobj->ext_patch_r819x_wx_get_meshinfo(dev, info, wrqu, extra); +} + + +static int r8192_wx_enable_mesh(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + RT_RF_POWER_STATE rtState; + int ret = 0; + rtState = priv->rtllib->eRFPowerState; + + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_enable_mesh ) + return 0; + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + if(priv->mshobj->ext_patch_r819x_wx_enable_mesh(dev)) + { + union iwreq_data tmprqu; +#ifdef ENABLE_IPS + if(priv->rtllib->PowerSaveControl.bInactivePs){ + if(rtState == eRfOff){ + if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS) + { + RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__); + SEM_UP_PRIV_WX(&priv->wx_sem); + return -1; + } + else{ + printk("=========>%s(): IPSLeave\n",__FUNCTION__); + IPSLeave(dev); + } + } + } +#endif + if(ieee->only_mesh == 0) + { + tmprqu.mode = ieee->iw_mode; + ieee->iw_mode = 0; + ret = rtllib_wx_set_mode(ieee, info, &tmprqu, extra); + } + } + + SEM_UP_PRIV_WX(&priv->wx_sem); + + return ret; + +} + +static int r8192_wx_disable_mesh(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + + int ret = 0; + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_disable_mesh ) + return 0; + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + if(priv->mshobj->ext_patch_r819x_wx_disable_mesh(dev)) + { + union iwreq_data tmprqu; + tmprqu.mode = ieee->iw_mode; + ieee->iw_mode = 999; + ret = rtllib_wx_set_mode(ieee, info, &tmprqu, extra); + } + + SEM_UP_PRIV_WX(&priv->wx_sem); + + return ret; +} + + +int r8192_wx_set_channel(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + int ch = *extra; + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + + if (!priv->mshobj || (ieee->iw_mode != IW_MODE_MESH) || !priv->mshobj->ext_patch_r819x_wx_set_channel || !ieee->only_mesh) + return 0; + + if ( ch < 0 ) + { + rtllib_start_scan(ieee); + ieee->meshScanMode =2; + } + else + { + ieee->meshScanMode =0; + if(priv->mshobj->ext_patch_r819x_wx_set_channel) + { + priv->mshobj->ext_patch_r819x_wx_set_channel(ieee, ch); + priv->mshobj->ext_patch_r819x_wx_set_mesh_chan(dev,ch); + } + queue_work_rsl(ieee->wq, &ieee->ext_stop_scan_wq); + ieee->set_chan(ieee->dev, ch); +printk("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!set current mesh network channel %d\n", ch); + ieee->current_mesh_network.channel = ch; + if(ieee->only_mesh) + ieee->current_network.channel = ch; + + ieee->current_network.channel = ieee->current_mesh_network.channel; + if(ieee->pHTInfo->bCurBW40MHz) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + if(rtllib_act_scanning(ieee,true) == true) + rtllib_stop_scan_syncro(ieee); + } + + return 0; +} + +static int r8192_wx_set_meshID(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_meshID ) + return 0; + + return priv->mshobj->ext_patch_r819x_wx_set_meshID(dev, wrqu->data.pointer); +} + + +/* reserved for future +static int r8192_wx_add_mac_deny(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_add_mac_deny ) + return 0; + + return priv->mshobj->ext_patch_r819x_wx_set_add_mac_deny(dev, info, wrqu, extra); +} + +static int r8192_wx_del_mac_deny(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_del_mac_deny ) + return 0; + + return priv->mshobj->ext_patch_r819x_wx_set_del_mac_deny(dev, info, wrqu, extra); +} +*/ +/* reserved for future +static int r8192_wx_get_mac_deny(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_get_mac_deny ) + return 0; + + return priv->mshobj->ext_patch_r819x_wx_get_mac_deny(dev, info, wrqu, extra); +} +static int r8192_wx_join_mesh(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int ret=0; + char ch; + if(priv->rtllib->iw_mode == IW_MODE_MESH) { + printk("join mesh %s\n",extra); + if (wrqu->essid.length > IW_ESSID_MAX_SIZE){ + ret= -E2BIG; + goto out; + } + if((wrqu->essid.length == 1) && (wrqu->essid.flags == 1)){ + ret = 0; + goto out; + } + if (wrqu->essid.flags && wrqu->essid.length) { + if(priv->mshobj->ext_patch_r819x_wx_get_selected_mesh_channel(dev, extra, &ch)) + { + priv->mshobj->ext_patch_r819x_wx_set_meshID(dev, extra); + priv->mshobj->ext_patch_r819x_wx_set_mesh_chan(dev,ch); + r8192_wx_set_channel(dev, NULL, NULL, &ch); + } + else + printk("invalid mesh #\n"); + } + } +out: + return ret; +} +*/ + +static int r8192_wx_get_mesh_list(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_get_mesh_list ) + return 0; + return priv->mshobj->ext_patch_r819x_wx_get_mesh_list(dev, info, wrqu, extra); +} + +static int r8192_wx_mesh_scan(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_mesh_scan ) + return 0; + return priv->mshobj->ext_patch_r819x_wx_mesh_scan(dev, info, wrqu, extra); +} + +static int r8192_wx_set_meshmode(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + + printk("%s(): set mesh mode ! extra is %d\n",__FUNCTION__, *extra); + if((*extra != WIRELESS_MODE_A) && (*extra != WIRELESS_MODE_B) && + (*extra != WIRELESS_MODE_G) && (*extra != WIRELESS_MODE_AUTO) && + (*extra != WIRELESS_MODE_N_24G) && (*extra != WIRELESS_MODE_N_5G)) + { + printk("ERR!! you should input 1 | 2 | 4 | 8 | 16 | 32\n"); + SEM_UP_PRIV_WX(&priv->wx_sem); + return -1; + } + if(priv->rtllib->state == RTLLIB_LINKED) + { + if((priv->rtllib->mode != WIRELESS_MODE_N_5G) && (priv->rtllib->mode != WIRELESS_MODE_N_24G)){ + printk("===>wlan0 is linked,and ieee->mode is not N mode ,do not need to set mode,return\n"); + SEM_UP_PRIV_WX(&priv->wx_sem); + return 0; + } + } + priv->rtllib->mode = *extra; + if(priv->ResetProgress == RESET_TYPE_NORESET) + rtl8192_SetWirelessMode(dev, priv->rtllib->mode); + HTUseDefaultSetting(priv->rtllib); + SEM_UP_PRIV_WX(&priv->wx_sem); + return 0; + +} + +static int r8192_wx_set_meshBW(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + + printk("%s(): set mesh BW ! extra is %d\n",__FUNCTION__, *extra); + priv->rtllib->pHTInfo->bRegBW40MHz = *extra; + SEM_UP_PRIV_WX(&priv->wx_sem); + return 0; +} +static int r8192_wx_set_mesh_security(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + + down(&priv->wx_sem); + + printk("%s(): set mesh security! extra is %d\n",__FUNCTION__, *extra); + ieee->mesh_security_setting = *extra; + + if (0 == ieee->mesh_security_setting) + { + ieee->mesh_pairwise_key_type = ieee->mesh_group_key_type = KEY_TYPE_NA; + CamResetAllEntry(dev); + CamRestoreEachIFEntry(dev,0); + reset_IFswcam(dev,1); + } + else + { + ieee->mesh_pairwise_key_type = KEY_TYPE_CCMP; + ieee->mesh_group_key_type = KEY_TYPE_CCMP; + } + up(&priv->wx_sem); + return 0; + +} + +static int r8192_wx_set_mkdd_id(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + printk("===>%s()\n",__FUNCTION__); + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_mkdd_id) + return 0; + + return priv->mshobj->ext_patch_r819x_wx_set_mkdd_id(dev, wrqu->data.pointer); +} + +static int r8192_wx_set_mesh_key(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + printk("===>%s()\n",__FUNCTION__); + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_mesh_key) + return 0; + return priv->mshobj->ext_patch_r819x_wx_set_mesh_key(dev, wrqu->data.pointer); +} + +static int r8192_wx_set_mesh_sec_type(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + + printk("%s(): set mesh security type! extra is %d\n",__FUNCTION__, *extra); + if (ieee->mesh_sec_type == 1 && *extra != 1 && ieee->mesh_security_setting == 3) { + rtl8192_abbr_handshk_disable_key(ieee); + + if(priv->mshobj->ext_patch_r819x_wx_release_sae_info) + priv->mshobj->ext_patch_r819x_wx_release_sae_info(ieee); + } + down(&priv->wx_sem); + + ieee->mesh_sec_type = *extra; + + if(ieee->mesh_sec_type == 0) + ieee->mesh_pairwise_key_type = ieee->mesh_group_key_type = KEY_TYPE_NA; + + up(&priv->wx_sem); + return 0; +} + +#endif + +#define OID_RT_INTEL_PROMISCUOUS_MODE 0xFF0101F6 + +static int r8192_wx_set_PromiscuousMode(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + + u32 *info_buf = (u32*)(wrqu->data.pointer); + + u32 oid = info_buf[0]; + u32 bPromiscuousOn = info_buf[1]; + u32 bFilterSourceStationFrame = info_buf[2]; + + if (OID_RT_INTEL_PROMISCUOUS_MODE == oid) + { + ieee->IntelPromiscuousModeInfo.bPromiscuousOn = + (bPromiscuousOn)? (true) : (false); + ieee->IntelPromiscuousModeInfo.bFilterSourceStationFrame = + (bFilterSourceStationFrame)? (true) : (false); + + (bPromiscuousOn) ? (rtllib_EnableIntelPromiscuousMode(dev, false)) : + (rtllib_DisableIntelPromiscuousMode(dev, false)); + + printk("=======>%s(), on = %d, filter src sta = %d\n", __FUNCTION__, + bPromiscuousOn, bFilterSourceStationFrame); + } else { + return -1; + } + + return 0; +} + + +static int r8192_wx_get_PromiscuousMode(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + + down(&priv->wx_sem); + + snprintf(extra, 45, "PromiscuousMode:%d, FilterSrcSTAFrame:%d",\ + ieee->IntelPromiscuousModeInfo.bPromiscuousOn,\ + ieee->IntelPromiscuousModeInfo.bFilterSourceStationFrame); + wrqu->data.length = strlen(extra) + 1; + + up(&priv->wx_sem); + + return 0; +} + +#ifdef CONFIG_BT_30 +static int r8192_wx_creat_physical_link( + struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, + char *extra) +{ + u32 *info_buf = (u32*)(wrqu->data.pointer); + + struct r8192_priv* priv = rtllib_priv(dev); + PBT30Info pBTInfo = &priv->BtInfo; + PPACKET_IRP_HCICMD_DATA pHciCmd = NULL; + u8 joinaddr[6] = {0x00, 0xe0, 0x4c, 0x76, 0x00, 0x33}; + u8 i = 0; + + for(i=0; i<6; i++) + joinaddr[i] = (u8)(info_buf[i]); + + printk("===++===++===> RemoteJoinerAddr: %02x:%02x:%02x:%02x:%02x:%02x\n", + joinaddr[0],joinaddr[1],joinaddr[2],joinaddr[3],joinaddr[4],joinaddr[5]); + + pHciCmd = (PPACKET_IRP_HCICMD_DATA)kmalloc(sizeof(PACKET_IRP_HCICMD_DATA)+4, GFP_KERNEL); + + BT_HCI_RESET(dev, false); + BT_HCI_CREATE_PHYSICAL_LINK(dev, pHciCmd); + + memcpy(priv->BtInfo.BtAsocEntry[0].BTRemoteMACAddr, joinaddr, 6); + + bt_wifi_set_enc(dev, type_Pairwise, 0, 1); + BT_HCI_StartBeaconAndConnect(dev, pHciCmd, 0); + + kfree(pHciCmd); + + return 1; +} + +static int r8192_wx_accept_physical_link( + struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, + char *extra) +{ + struct r8192_priv* priv = rtllib_priv(dev); + PBT30Info pBTInfo = &priv->BtInfo; + PPACKET_IRP_HCICMD_DATA pHciCmd = NULL; + + u8 amp_ssid[32] = {0}; + u8 amp_len = strlen(wrqu->data.pointer); + + memcpy(amp_ssid, wrqu->data.pointer, amp_len); + + pHciCmd = (PPACKET_IRP_HCICMD_DATA)kmalloc(sizeof(PACKET_IRP_HCICMD_DATA)+4, GFP_KERNEL); + + BT_HCI_RESET(dev, false); + BT_HCI_ACCEPT_PHYSICAL_LINK(dev, pHciCmd); + + snprintf(pBTInfo->BtAsocEntry[0].BTSsidBuf, 32, "AMP-%02x-%02x-%02x-%02x-%02x-%02x", 0x00,0xe0,0x4c,0x78,0x00,0x00); + pBTInfo->BtAsocEntry[0].BTSsid.Octet = pBTInfo->BtAsocEntry[0].BTSsidBuf; + pBTInfo->BtAsocEntry[0].BTSsid.Length = 21; + printk("==++==++==++==>%s() AMP-SSID:%s:%s, len:%d\n", __func__, amp_ssid, pBTInfo->BtAsocEntry[0].BTSsid.Octet, amp_len); + +#if 1 + { + unsigned long flags; + struct rtllib_network *target; + + spin_lock_irqsave(&priv->rtllib->lock, flags); + + list_for_each_entry(target, &priv->rtllib->network_list, list) { + + if(!CompareSSID(pBTInfo->BtAsocEntry[0].BTSsidBuf, pBTInfo->BtAsocEntry[0].BTSsid.Length, + target->ssid,target->ssid_len)){ + continue; + } + + printk("===++===++===> CreaterBssid: %02x:%02x:%02x:%02x:%02x:%02x\n", + target->bssid[0],target->bssid[1],target->bssid[2], + target->bssid[3],target->bssid[4],target->bssid[5]); + memcpy(pBTInfo->BtAsocEntry[0].BTRemoteMACAddr, target->bssid, 6); + } + + spin_unlock_irqrestore(&priv->rtllib->lock, flags); + } +#endif + + BT_HCI_StartBeaconAndConnect(dev, pHciCmd, 0); + + + mdelay(100); + + snprintf(pBTInfo->BtAsocEntry[0].BTSsidBuf, 32, "AMP-%02x-%02x-%02x-%02x-%02x-%02x", 0x00,0xe0,0x4c,0x78,0x00,0x00); + pBTInfo->BtAsocEntry[0].BTSsid.Octet = pBTInfo->BtAsocEntry[0].BTSsidBuf; + pBTInfo->BtAsocEntry[0].BTSsid.Length = 21; + + bt_wifi_set_enc(dev, type_Pairwise, 0, 1); + BT_ConnectProcedure(dev, 0); + + kfree(pHciCmd); + + return 1; +} +#endif + + +#define IW_IOCTL(x) [(x)-SIOCSIWCOMMIT] +static iw_handler r8192_wx_handlers[] = +{ + IW_IOCTL(SIOCGIWNAME) = r8192_wx_get_name, + IW_IOCTL(SIOCSIWFREQ) = r8192_wx_set_freq, + IW_IOCTL(SIOCGIWFREQ) = r8192_wx_get_freq, + IW_IOCTL(SIOCSIWMODE) = r8192_wx_set_mode, + IW_IOCTL(SIOCGIWMODE) = r8192_wx_get_mode, + IW_IOCTL(SIOCSIWSENS) = r8192_wx_set_sens, + IW_IOCTL(SIOCGIWSENS) = r8192_wx_get_sens, + IW_IOCTL(SIOCGIWRANGE) = rtl8192_wx_get_range, + IW_IOCTL(SIOCSIWAP) = r8192_wx_set_wap, + IW_IOCTL(SIOCGIWAP) = r8192_wx_get_wap, + IW_IOCTL(SIOCSIWSCAN) = r8192_wx_set_scan, + IW_IOCTL(SIOCGIWSCAN) = r8192_wx_get_scan, + IW_IOCTL(SIOCSIWESSID) = r8192_wx_set_essid, + IW_IOCTL(SIOCGIWESSID) = r8192_wx_get_essid, + IW_IOCTL(SIOCSIWNICKN) = r8192_wx_set_nick, + IW_IOCTL(SIOCGIWNICKN) = r8192_wx_get_nick, + IW_IOCTL(SIOCSIWRATE) = r8192_wx_set_rate, + IW_IOCTL(SIOCGIWRATE) = r8192_wx_get_rate, + IW_IOCTL(SIOCSIWRTS) = r8192_wx_set_rts, + IW_IOCTL(SIOCGIWRTS) = r8192_wx_get_rts, + IW_IOCTL(SIOCSIWFRAG) = r8192_wx_set_frag, + IW_IOCTL(SIOCGIWFRAG) = r8192_wx_get_frag, + IW_IOCTL(SIOCSIWRETRY) = r8192_wx_set_retry, + IW_IOCTL(SIOCGIWRETRY) = r8192_wx_get_retry, + IW_IOCTL(SIOCSIWENCODE) = r8192_wx_set_enc, + IW_IOCTL(SIOCGIWENCODE) = r8192_wx_get_enc, + IW_IOCTL(SIOCSIWPOWER) = r8192_wx_set_power, + IW_IOCTL(SIOCGIWPOWER) = r8192_wx_get_power, +#if (WIRELESS_EXT >= 18) + IW_IOCTL(SIOCSIWGENIE) = r8192_wx_set_gen_ie, + IW_IOCTL(SIOCGIWGENIE) = r8192_wx_get_gen_ie, + IW_IOCTL(SIOCSIWMLME) = r8192_wx_set_mlme, + IW_IOCTL(SIOCSIWAUTH) = r8192_wx_set_auth, + IW_IOCTL(SIOCSIWENCODEEXT) = r8192_wx_set_enc_ext, +#endif +}; + +/* + * the following rule need to be follwing, + * Odd : get (world access), + * even : set (root access) + * */ +static const struct iw_priv_args r8192_private_args[] = { + { + SIOCIWFIRSTPRIV + 0x0, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_debugflag" + }, + { + SIOCIWFIRSTPRIV + 0x1, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "activescan" + }, + { + SIOCIWFIRSTPRIV + 0x2, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "rawtx" + } + , + { + SIOCIWFIRSTPRIV + 0x3, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "forcereset" + } + , + { + SIOCIWFIRSTPRIV + 0x4, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "force_mic_error" + } + , + { + SIOCIWFIRSTPRIV + 0x5, + IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_INT|IW_PRIV_SIZE_FIXED|1, + "firm_ver" + } + , + { + SIOCIWFIRSTPRIV + 0x6, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE, + "set_power" + } +#ifdef _RTL8192_EXT_PATCH_ + , + { + SIOCIWFIRSTPRIV + 0x7, + IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_CHAR|512, + "print_reg" + } + , + { + SIOCIWFIRSTPRIV + 0x8, + IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_CHAR|64, + "resume_firm" + } +#endif + , + { + SIOCIWFIRSTPRIV + 0x9, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE, + "radio" + } + , + { + SIOCIWFIRSTPRIV + 0xa, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE, + "lps_interv" + } + , + { + SIOCIWFIRSTPRIV + 0xb, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE, + "lps_force" + } + , + { + SIOCIWFIRSTPRIV + 0xc, + 0, IW_PRIV_TYPE_CHAR|2047, "adhoc_peer_list" + } +#ifdef _RTL8192_EXT_PATCH_ + , + { + SIOCIWFIRSTPRIV + 0xd, + IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_CHAR|64, + "driverVer" + } +#endif +#ifdef CONFIG_MP + , + { + SIOCIWFIRSTPRIV + 0xe, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetChan" + } + , + { + SIOCIWFIRSTPRIV + 0xf, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetRate" + } + , + { + SIOCIWFIRSTPRIV + 0x10, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetTxPower" + } + , + { + SIOCIWFIRSTPRIV + 0x11, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetBW" + } + , + { + SIOCIWFIRSTPRIV + 0x12, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "TxStart" + } + , + { + SIOCIWFIRSTPRIV + 0x13, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,0, "SetSingleCarrier" + } + , + { + SIOCIWFIRSTPRIV + 0x14, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 3, 0, "WriteRF" + } + , + { + SIOCIWFIRSTPRIV + 0x15, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 3, 0, "WriteMAC" + } +#endif + , + { + SIOCIWFIRSTPRIV + 0x16, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 3, 0, "setpromisc" + } + , + { + SIOCIWFIRSTPRIV + 0x17, + 0,IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 45, "getpromisc" + } +#ifdef CONFIG_BT_30 + , + { + SIOCIWFIRSTPRIV + 0x18, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 6, 0, "amp_creater" + } + , + { + SIOCIWFIRSTPRIV + 0x19, + IW_PRIV_TYPE_CHAR | 64, 0, "amp_joiner" + } +#endif +}; + +static iw_handler r8192_private_handler[] = { + (iw_handler)r8192_wx_set_debugflag, /*SIOCIWSECONDPRIV*/ + (iw_handler)r8192_wx_set_scan_type, + (iw_handler)r8192_wx_set_rawtx, + (iw_handler)r8192_wx_force_reset, + (iw_handler)r8192_wx_force_mic_error, + (iw_handler)r8191se_wx_get_firm_version, + (iw_handler)r8192_wx_adapter_power_status, +#ifdef _RTL8192_EXT_PATCH_ + (iw_handler)r8192_wx_print_reg, + (iw_handler)r8192_wx_resume_firm, +#else + (iw_handler)NULL, + (iw_handler)NULL, +#endif + (iw_handler)r8192se_wx_set_radio, + (iw_handler)r8192se_wx_set_lps_awake_interval, + (iw_handler)r8192se_wx_set_force_lps, + (iw_handler)r8192_wx_get_adhoc_peers, +#ifdef _RTL8192_EXT_PATCH_ + (iw_handler)r8192_wx_get_drv_version, +#else + (iw_handler)NULL, +#endif +#ifdef CONFIG_MP + (iw_handler)r8192_wx_mp_set_chan, + (iw_handler)r8192_wx_mp_set_txrate, + (iw_handler)r8192_wx_mp_set_txpower, + (iw_handler)r8192_wx_mp_set_bw, + (iw_handler)r8192_wx_mp_set_txstart, + (iw_handler)r8192_wx_mp_set_singlecarrier, + (iw_handler)r8192_wx_mp_write_rf, + (iw_handler)r8192_wx_mp_write_mac, +#else + (iw_handler)NULL, + (iw_handler)NULL, + (iw_handler)NULL, + (iw_handler)NULL, + (iw_handler)NULL, + (iw_handler)NULL, + (iw_handler)NULL, + (iw_handler)NULL, +#endif + (iw_handler)r8192_wx_set_PromiscuousMode, + (iw_handler)r8192_wx_get_PromiscuousMode, +#ifdef CONFIG_BT_30 + (iw_handler)r8192_wx_creat_physical_link, + (iw_handler)r8192_wx_accept_physical_link, +#else + (iw_handler)NULL, + (iw_handler)NULL, +#endif +}; + +struct iw_statistics *r8192_get_wireless_stats(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + struct iw_statistics* wstats = &priv->wstats; + int tmp_level = 0; + int tmp_qual = 0; + int tmp_noise = 0; + if(ieee->state < RTLLIB_LINKED) + { + wstats->qual.qual = 10; + wstats->qual.level = 0; + wstats->qual.noise = -100; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)) + wstats->qual.updated = IW_QUAL_ALL_UPDATED | IW_QUAL_DBM; +#else + wstats->qual.updated = 0x0f; +#endif + return wstats; + } + + tmp_level = (&ieee->current_network)->stats.rssi; + tmp_qual = (&ieee->current_network)->stats.signal; + tmp_noise = (&ieee->current_network)->stats.noise; + + wstats->qual.level = tmp_level; + wstats->qual.qual = tmp_qual; + wstats->qual.noise = tmp_noise; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)) + wstats->qual.updated = IW_QUAL_ALL_UPDATED | IW_QUAL_DBM; +#else + wstats->qual.updated = 0x0f; +#endif + return wstats; +} + +#if defined RTL8192SE || defined RTL8192CE +u8 SS_Rate_Map_G[6][2] = {{40, MGN_54M}, {30, MGN_48M}, {20, MGN_36M}, + {12, MGN_24M}, {7, MGN_18M}, {0, MGN_12M}}; +u8 SS_Rate_Map_G_MRC_OFF[6][2]= {{17, MGN_54M}, {15, MGN_48M}, + {13, MGN_36M}, {10, MGN_24M}, {3, MGN_18M}, {0, MGN_12M}}; +u8 MSI_SS_Rate_Map_G[6][2] = {{40, MGN_54M}, {30, MGN_54M}, {20, MGN_54M}, + {12, MGN_48M}, {7, MGN_36M}, {0, MGN_24M}}; +u8 SS_Rate_Map_B[2][2] = {{7, MGN_11M}, {0, MGN_5_5M}}; +u8 SS_Rate_Map_N_MCS7[7][2] = {{40, MGN_MCS7}, {30, MGN_MCS5}, {25, MGN_MCS4}, + {23, MGN_MCS3}, {19, MGN_MCS2}, {8, MGN_MCS1}, {0, MGN_MCS0}}; +u8 SS_Rate_Map_N_MCS15[7][2] = {{40, MGN_MCS15}, {35, MGN_MCS14}, {31, MGN_MCS12}, + {28, MGN_MCS7}, {25, MGN_MCS5}, {23, MGN_MCS3}, {20, MGN_MCS0}}; +#define TxRateTypeNormal 0 +#define TxRateTypeCurrent 1 +#define TxRateTypeStartRate 2 + +u8 rtl8192_decorate_txrate_by_singalstrength(u32 SignalStrength, u8 *SS_Rate_Map, u8 MapSize) +{ + u8 index = 0; + + for (index = 0; index < (MapSize * 2); index += 2) { + if (SignalStrength > SS_Rate_Map[index]) + return SS_Rate_Map[index+1]; + } + + return MGN_1M; +} + +u16 rtl8192_11n_user_show_rates(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + static u8 TimesForReportingFullRxSpeedAfterConnected = 100; + u8 rate = MGN_1M; + u32 Sgstrength; + bool TxorRx = priv->rtllib->bForcedShowRxRate; + u8 bCurrentMRC = 0; + + priv->rtllib->GetHwRegHandler(dev, HW_VAR_MRC, (u8*)(&bCurrentMRC)); + + + if (!TxorRx) { + { + return CONVERT_RATE(priv->rtllib, priv->rtllib->softmac_stats.CurrentShowTxate); + } + } + + if(priv->rtllib->bForcedShowRateStill) { + Sgstrength = 100; + } else { + Sgstrength = priv->undecorated_smoothed_pwdb; + } + + if (priv->rtllib->mode == WIRELESS_MODE_A || + priv->rtllib->mode == WIRELESS_MODE_G || + priv->rtllib->mode == (WIRELESS_MODE_G | WIRELESS_MODE_B )) { + if (priv->CustomerID == RT_CID_819x_MSI) { + rate = rtl8192_decorate_txrate_by_singalstrength(Sgstrength, + (u8*)MSI_SS_Rate_Map_G, sizeof(MSI_SS_Rate_Map_G)/2); + } else { + if(!bCurrentMRC) + rate = rtl8192_decorate_txrate_by_singalstrength(Sgstrength, + (u8*)SS_Rate_Map_G_MRC_OFF, sizeof(SS_Rate_Map_G_MRC_OFF)/2); + else + rate = rtl8192_decorate_txrate_by_singalstrength(Sgstrength, + (u8*)SS_Rate_Map_G, sizeof(SS_Rate_Map_G)/2); + } + } else if (priv->rtllib->mode == WIRELESS_MODE_B) { + rate = rtl8192_decorate_txrate_by_singalstrength(Sgstrength, (u8*)SS_Rate_Map_B, + sizeof(SS_Rate_Map_B)/2); + } else if(priv->rtllib->mode == WIRELESS_MODE_N_24G) { + bool bMaxRateMcs15; + bool b1SSSupport = priv->rtllib->b1x1RecvCombine; + u8 rftype = priv->rf_type; + if (((!TxorRx) && (rftype==RF_1T1R || rftype==RF_1T2R)) || + (TxorRx && (rftype==RF_1T1R || (rftype==RF_1T2R && b1SSSupport))) || + (rftype==RF_2T2R && priv->rtllib->HTHighestOperaRate<=MGN_MCS7)) + bMaxRateMcs15 = false; + else + bMaxRateMcs15 = true; + + if((priv->rtllib->state == RTLLIB_LINKED) && !(priv->rtllib->pHTInfo->bCurBW40MHz)) + bMaxRateMcs15 = false; + + if(priv->rtllib->state != RTLLIB_LINKED) + priv->rtllib->SystemQueryDataRateCount = 0; + if (TimesForReportingFullRxSpeedAfterConnected > priv->rtllib->SystemQueryDataRateCount) { + priv->rtllib->SystemQueryDataRateCount++; + if(bMaxRateMcs15) + return 600; + else + return 270; + } + + if (bMaxRateMcs15) + rate = rtl8192_decorate_txrate_by_singalstrength(Sgstrength, (u8*)SS_Rate_Map_N_MCS15, + sizeof(SS_Rate_Map_N_MCS15)/2); + else + rate = rtl8192_decorate_txrate_by_singalstrength(Sgstrength, (u8*)SS_Rate_Map_N_MCS7, + sizeof(SS_Rate_Map_N_MCS7)/2); + } else if (priv->rtllib->mode == WIRELESS_MODE_N_5G) { + return 580; + } else { + return 2; + } + + if (priv->rtllib->GetHalfNmodeSupportByAPsHandler(dev)) { + if (rate < 0x80) + return rate; + else + return HTHalfMcsToDataRate(priv->rtllib, rate); + } else { + return CONVERT_RATE(priv->rtllib, rate); + } +} +#endif + +struct iw_handler_def r8192_wx_handlers_def={ + .standard = r8192_wx_handlers, + .num_standard = sizeof(r8192_wx_handlers) / sizeof(iw_handler), + .private = r8192_private_handler, + .num_private = sizeof(r8192_private_handler) / sizeof(iw_handler), + .num_private_args = sizeof(r8192_private_args) / sizeof(struct iw_priv_args), +#if WIRELESS_EXT >= 17 + .get_wireless_stats = r8192_get_wireless_stats, +#endif + .private_args = (struct iw_priv_args *)r8192_private_args, +}; + +#ifdef _RTL8192_EXT_PATCH_ +#define OID_802_11_MESH_SECURITY_INFO 0x0651 +#define OID_802_11_MESH_ID 0x0652 +#define OID_802_11_MESH_AUTO_LINK 0x0653 +#define OID_802_11_MESH_LINK_STATUS 0x0654 +#define OID_802_11_MESH_LIST 0x0655 +#define OID_802_11_MESH_ROUTE_LIST 0x0656 +#define OID_802_11_MESH_ADD_LINK 0x0657 +#define OID_802_11_MESH_DEL_LINK 0x0658 +#define OID_802_11_MESH_MAX_TX_RATE 0x0659 +#define OID_802_11_MESH_CHANNEL 0x065A +#define OID_802_11_MESH_HOSTNAME 0x065B +#define OID_802_11_MESH_ONLY_MODE 0x065C + +#define OID_GET_SET_TOGGLE 0x8000 +#define RTL_OID_802_11_MESH_SECURITY_INFO (OID_GET_SET_TOGGLE + OID_802_11_MESH_SECURITY_INFO) +#define RTL_OID_802_11_MESH_ID (OID_GET_SET_TOGGLE + OID_802_11_MESH_ID) +#define RTL_OID_802_11_MESH_AUTO_LINK (OID_GET_SET_TOGGLE + OID_802_11_MESH_AUTO_LINK) +#define RTL_OID_802_11_MESH_ADD_LINK (OID_GET_SET_TOGGLE + OID_802_11_MESH_ADD_LINK) +#define RTL_OID_802_11_MESH_DEL_LINK (OID_GET_SET_TOGGLE + OID_802_11_MESH_DEL_LINK) +#define RTL_OID_802_11_MESH_MAX_TX_RATE (OID_GET_SET_TOGGLE + OID_802_11_MESH_MAX_TX_RATE) +#define RTL_OID_802_11_MESH_CHANNEL (OID_GET_SET_TOGGLE + OID_802_11_MESH_CHANNEL) +#define RTL_OID_802_11_MESH_HOSTNAME (OID_GET_SET_TOGGLE + OID_802_11_MESH_HOSTNAME) +#define RTL_OID_802_11_MESH_ONLY_MODE (OID_GET_SET_TOGGLE + OID_802_11_MESH_ONLY_MODE) + +#define MAX_NEIGHBOR_NUM 64 +typedef struct _MESH_NEIGHBOR_ENTRY +{ + char Rssi; + unsigned char HostName[MAX_HOST_NAME_LENGTH]; + unsigned char MacAddr[ETH_ALEN]; + unsigned char MeshId[MAX_MESH_ID_LEN]; + unsigned char Channel; + unsigned char Status; + unsigned char MeshEncrypType; +} MESH_NEIGHBOR_ENTRY, *PMESH_NEIGHBOR_ENTRY; +typedef struct _MESH_NEIGHBOR_INFO +{ + MESH_NEIGHBOR_ENTRY Entry[MAX_NEIGHBOR_NUM]; + unsigned char num; +} MESH_NEIGHBOR_INFO, *PMESH_NEIGHBOR_INFO; + +static int meshdev_set_key_for_linked_peers(struct net_device *dev, u8 KeyIndex, + u16 KeyType, u32 *KeyContent ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + struct mshclass *mshobj = priv->mshobj; + PMESH_NEIGHBOR_INFO pmesh_neighbor = NULL; + PMESH_NEIGHBOR_ENTRY pneighbor_entry = NULL; + u8 entry_idx = 0; + int i = 0; + int found_idx = MAX_MP-1; + pmesh_neighbor = (PMESH_NEIGHBOR_INFO)kmalloc(sizeof(MESH_NEIGHBOR_INFO), GFP_KERNEL); + if(NULL == pmesh_neighbor) + return -1; + + if(mshobj->ext_patch_r819x_get_peers) + mshobj->ext_patch_r819x_get_peers(dev, (void*)pmesh_neighbor); + + for (i=0; inum; i++) { + pneighbor_entry = (PMESH_NEIGHBOR_ENTRY)&pmesh_neighbor->Entry[i]; + if (mshobj->ext_patch_r819x_insert_linking_crypt_peer_queue) + found_idx = mshobj->ext_patch_r819x_insert_linking_crypt_peer_queue(ieee,pneighbor_entry->MacAddr); + if (found_idx == -1) { + printk("%s(): found_idx is -1 , something is wrong, return\n",__FUNCTION__); + return -1; + } else if (found_idx == (MAX_MP - 1)) { + printk("%s(): found_idx is MAX_MP-1, peer entry is full, return\n",__FUNCTION__); + return -1; + } + if ((((ieee->LinkingPeerBitMap>>found_idx) & (BIT0)) == BIT0) && ((ieee->LinkingPeerSecState[found_idx] == USED) )) { + entry_idx = rtl8192_get_free_hwsec_cam_entry(ieee, pneighbor_entry->MacAddr); +#if 0 + printk("%s: Can not find free hw security cam entry, use software encryption entry(%d)\n", __FUNCTION__,entry_idx); + if (mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info) + mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info(ieee,pneighbor_entry->MacAddr,SW_SEC); + ieee->LinkingPeerSecState[found_idx] = SW_SEC; +#else + if (entry_idx >= TOTAL_CAM_ENTRY-1) { + printk("%s: Can not find free hw security cam entry, use software encryption entry(%d)\n", __FUNCTION__,entry_idx); + if (mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info) + mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info(ieee,pneighbor_entry->MacAddr,SW_SEC); + ieee->LinkingPeerSecState[found_idx] = SW_SEC; + } else { + printk("==========>%s():entry_idx is %d,set HW CAM\n",__FUNCTION__,entry_idx); + set_swcam( dev, + entry_idx, + KeyIndex, + KeyType, + pneighbor_entry->MacAddr, + 0, + KeyContent, + 1); + setKey( dev, + entry_idx, + KeyIndex, + KeyType, + pneighbor_entry->MacAddr, + 0, + KeyContent); + if (mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info) + mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info(ieee,pneighbor_entry->MacAddr,HW_SEC); + ieee->LinkingPeerSecState[found_idx] = HW_SEC; + } +#endif + } + } + if(pmesh_neighbor) + kfree(pmesh_neighbor); + return 0; +} + +int meshdev_set_key_for_peer(struct net_device *dev, + u8 *Addr, + u8 KeyIndex, + u16 KeyType, + u32 *KeyContent ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + u8 entry_idx = 0; + + entry_idx = rtl8192_get_free_hwsec_cam_entry(ieee, Addr); +#if 0 + printk("%s: Can not find free hw security cam entry\n", __FUNCTION__); + return -1; +#else + if (entry_idx >= TOTAL_CAM_ENTRY-1) { + printk("%s: Can not find free hw security cam entry\n", __FUNCTION__); + return -1; + } else { + set_swcam(dev, + entry_idx, + KeyIndex, + KeyType, + Addr, + 0, + KeyContent, + 1); + setKey(dev, + entry_idx, + KeyIndex, + KeyType, + Addr, + 0, + KeyContent); + } + return 0; +#endif +} + +static struct net_device_stats *meshdev_stats(struct net_device *meshdev) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + return &((struct meshdev_priv*)netdev_priv(meshdev))->stats; +#else + return &((struct meshdev_priv*)meshdev->priv)->stats; +#endif +} + +static int meshdev_wx_get_name(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_get_name(dev, info, wrqu, extra); +} +static int meshdev_wx_get_freq(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = rtllib_priv(dev); + + return rtllib_wx_get_freq(priv->rtllib,info,wrqu,extra,1); +} +static int meshdev_wx_get_mode(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + if(0) + return r8192_wx_get_mode(dev, info, wrqu, extra); + else + return -1; +} +static int meshdev_wx_get_sens(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_get_sens(dev, info, wrqu, extra); +} +static int meshdev_wx_get_range(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return rtl8192_wx_get_range(dev, info, wrqu, extra); +} +static int meshdev_wx_get_wap(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_get_wap(dev, info, wrqu, extra); +} +static int meshdev_wx_get_essid(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = rtllib_priv(dev); + struct mshclass *mshobj = priv->mshobj; + int ret = 0; + + if(mshobj->ext_patch_r819x_wx_get_meshid) + ret = mshobj->ext_patch_r819x_wx_get_meshid(dev, info, wrqu, extra); + + return ret; +} +static int meshdev_wx_get_rate(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_get_rate(dev, info, wrqu, extra); +} +#if 0 +static int meshdev_wx_set_freq(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_freq(dev, info, wrqu, extra); +} +static int meshdev_wx_set_rate(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_rate(dev, info, wrqu, extra); +} +static int meshdev_wx_set_sens(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_sens(dev, info, wrqu, extra); +} +static int meshdev_wx_set_scan(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_scan(dev, info, wrqu, extra); +} +static int meshdev_wx_get_scan(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_get_scan(dev, info, wrqu, extra); +} +#endif +static int meshdev_wx_set_enc(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *key) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = (struct r8192_priv *)ieee->priv; + int ret; + u32 hwkey[4]={0,0,0,0}; + u8 mask=0xff; + u32 key_idx=0; +#if 0 + u8 zero_addr[4][6] ={ {0x00,0x00,0x00,0x00,0x00,0x00}, + {0x00,0x00,0x00,0x00,0x00,0x01}, + {0x00,0x00,0x00,0x00,0x00,0x02}, + {0x00,0x00,0x00,0x00,0x00,0x03} }; +#endif + int i; + + if(!priv->mesh_up) return -ENETDOWN; + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + + RT_TRACE(COMP_SEC, "Setting SW wep key"); + ret = rtllib_wx_set_encode(priv->rtllib,info,wrqu,key,1); + + SEM_UP_PRIV_WX(&priv->wx_sem); + + + if(wrqu->encoding.length!=0){ + + for(i=0 ; i<4 ; i++){ + hwkey[i] |= key[4*i+0]&mask; + if(i==1&&(4*i+1)==wrqu->encoding.length) mask=0x00; + if(i==3&&(4*i+1)==wrqu->encoding.length) mask=0x00; + hwkey[i] |= (key[4*i+1]&mask)<<8; + hwkey[i] |= (key[4*i+2]&mask)<<16; + hwkey[i] |= (key[4*i+3]&mask)<<24; + } + + #define CONF_WEP40 0x4 + #define CONF_WEP104 0x14 + + switch(wrqu->encoding.flags & IW_ENCODE_INDEX){ + case 0: key_idx = ieee->mesh_txkeyidx; break; + case 1: key_idx = 0; break; + case 2: key_idx = 1; break; + case 3: key_idx = 2; break; + case 4: key_idx = 3; break; + default: break; + } + + if(wrqu->encoding.length==0x5){ + ieee->mesh_pairwise_key_type = KEY_TYPE_WEP40; + EnableHWSecurityConfig8192(dev); + } + + else if(wrqu->encoding.length==0xd){ + ieee->mesh_pairwise_key_type = KEY_TYPE_WEP104; + EnableHWSecurityConfig8192(dev); + } + else + printk("wrong type in WEP, not WEP40 and WEP104\n"); + + meshdev_set_key_for_linked_peers(dev, + key_idx, + ieee->mesh_pairwise_key_type, + hwkey); + + } + +#if 0 + if(wrqu->encoding.length==0 && (wrqu->encoding.flags >>8) == 0x8 ){ + printk("===>1\n"); + EnableHWSecurityConfig8192(dev); + key_idx = (wrqu->encoding.flags & 0xf)-1 ; + write_cam(dev, (4*6), 0xffff0000|read_cam(dev, key_idx*6) ); + write_cam(dev, (4*6)+1, 0xffffffff); + write_cam(dev, (4*6)+2, read_cam(dev, (key_idx*6)+2) ); + write_cam(dev, (4*6)+3, read_cam(dev, (key_idx*6)+3) ); + write_cam(dev, (4*6)+4, read_cam(dev, (key_idx*6)+4) ); + write_cam(dev, (4*6)+5, read_cam(dev, (key_idx*6)+5) ); + } +#endif + + return ret; +} +static int meshdev_wx_get_enc(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device * dev = ieee->dev; + struct r8192_priv* priv = rtllib_priv(dev); + + if(!priv->mesh_up){ + return -ENETDOWN; + } + return rtllib_wx_get_encode(ieee, info, wrqu, extra,1); +} +#if 0 +static int meshdev_wx_set_frag(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_frag(dev, info, wrqu, extra); +} +static int meshdev_wx_get_frag(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_get_frag(dev, info, wrqu, extra); +} +static int meshdev_wx_set_retry(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_retry(dev, info, wrqu, extra); +} +static int meshdev_wx_get_retry(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_get_retry(dev, info, wrqu, extra); +} +#endif +static int meshdev_wx_set_mode(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ +#if 0 + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_mode(dev, info, wrqu, extra); +#endif + return 0; +} +static int meshdev_wx_set_wap(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ +#if 0 + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_wap(dev, info, wrqu, extra); +#endif + return 0; +} +static int meshdev_wx_set_mlme(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ +#if 0 + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_mlme(dev, info, wrqu, extra); +#endif + return 0; +} +static int meshdev_wx_set_essid(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ +#if 0 + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_essid(dev, info, wrqu, extra); +#endif + return 0; +} +static int meshdev_wx_set_gen_ie(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ +#if 0 + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_gen_ie(dev, info, wrqu, extra); +#endif + return 0; +} +static int meshdev_wx_set_auth(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ +#if 0 + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + return r8192_wx_set_auth(dev, info, wrqu, extra); +#endif + return 0; +} +static int meshdev_wx_set_enc_ext(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + int ret=0; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = (struct r8192_priv *)ieee->priv; + + printk("============================================================>%s\n", __FUNCTION__); + SEM_DOWN_PRIV_WX(&priv->wx_sem); + ret = rtllib_wx_set_encode_ext(ieee, info, wrqu, extra, 1); + + ret |= r8192_set_hw_enc(dev,info,wrqu,extra, 1); + SEM_UP_PRIV_WX(&priv->wx_sem); +#endif + + return ret; +} + +static int dummy(struct net_device *dev, struct iw_request_info *a, + union iwreq_data *wrqu,char *b) +{ + return -1; +} + +int rt_ioctl_siwpmksa(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, + char *extra) +{ + return 0; +} + +static iw_handler meshdev_wx_handlers[] = +{ + NULL, /* SIOCSIWCOMMIT */ + meshdev_wx_get_name, /* SIOCGIWNAME */ + dummy, /* SIOCSIWNWID */ + dummy, /* SIOCGIWNWID */ + NULL, + meshdev_wx_get_freq, /* SIOCGIWFREQ */ + meshdev_wx_set_mode, /* SIOCSIWMODE */ + meshdev_wx_get_mode, /* SIOCGIWMODE */ + NULL, + meshdev_wx_get_sens, /* SIOCGIWSENS */ + NULL, /* SIOCSIWRANGE */ + meshdev_wx_get_range, /* SIOCGIWRANGE */ + NULL, /* SIOCSIWPRIV */ + NULL, /* SIOCGIWPRIV */ + NULL, /* SIOCSIWSTATS */ + NULL, /* SIOCGIWSTATS */ + dummy, /* SIOCSIWSPY */ + dummy, /* SIOCGIWSPY */ + NULL, /* SIOCGIWTHRSPY */ + NULL, /* SIOCWIWTHRSPY */ + meshdev_wx_set_wap, /* SIOCSIWAP */ + meshdev_wx_get_wap, /* SIOCGIWAP */ + meshdev_wx_set_mlme, + dummy, /* SIOCGIWAPLIST -- depricated */ + NULL, + NULL, + meshdev_wx_set_essid, /* SIOCSIWESSID */ + meshdev_wx_get_essid, /* SIOCGIWESSID */ + dummy, /* SIOCSIWNICKN */ + dummy, /* SIOCGIWNICKN */ + NULL, /* -- hole -- */ + NULL, /* -- hole -- */ + NULL, + meshdev_wx_get_rate, /* SIOCGIWRATE */ + dummy, /* SIOCSIWRTS */ + dummy, /* SIOCGIWRTS */ + NULL, + NULL, + dummy, /* SIOCSIWTXPOW */ + dummy, /* SIOCGIWTXPOW */ + NULL, + NULL, + meshdev_wx_set_enc, /* SIOCSIWENCODE */ + meshdev_wx_get_enc, /* SIOCGIWENCODE */ + dummy, /* SIOCSIWPOWER */ + dummy, /* SIOCGIWPOWER */ + NULL, /*---hole---*/ + NULL, /*---hole---*/ + meshdev_wx_set_gen_ie, + NULL, /* SIOCSIWGENIE */ + meshdev_wx_set_auth, + NULL, + meshdev_wx_set_enc_ext, /* SIOCSIWENCODEEXT */ + NULL, + (iw_handler) rt_ioctl_siwpmksa, + NULL, /*---hole---*/ +}; + +static struct iw_priv_args meshdev_private_args[] = { + { + SIOCIWFIRSTPRIV + 0x0, + 0, 0, "enablemesh" + }, + { + SIOCIWFIRSTPRIV + 0x1, + 0, IW_PRIV_TYPE_CHAR | 64, "getmeshinfo" + }, + { + SIOCIWFIRSTPRIV + 0x2, + 0, 0, "disablemesh" + }, + { + SIOCIWFIRSTPRIV + 0x3, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setch" + }, + { + SIOCIWFIRSTPRIV + 0x4, + IW_PRIV_TYPE_CHAR | 64 , 0, "setmeshid" + }, + { SIOCIWFIRSTPRIV + 0x5, + 0,IW_PRIV_TYPE_CHAR | 64 , "getmeshlist" + }, + { SIOCIWFIRSTPRIV + 0x6, + IW_PRIV_TYPE_CHAR | 64,0 , "meshscan" + }, + { + SIOCIWFIRSTPRIV + 0x7, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setmode" + + }, + { + SIOCIWFIRSTPRIV + 0x8, + IW_PRIV_TYPE_CHAR | 64, 0, "sethostname" + }, + { + SIOCIWFIRSTPRIV + 0x9, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setBW" + + }, + { + SIOCIWFIRSTPRIV + 0xa, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "updateBW" + }, + { SIOCIWFIRSTPRIV + 0xb, + 0,IW_PRIV_TYPE_CHAR | 256 , "macdenyget" + }, + { SIOCIWFIRSTPRIV + 0xc, + IW_PRIV_TYPE_CHAR | 64,0 , "macdenyadd" + }, + /* + { + SIOCIWFIRSTPRIV + 0xe, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_MASK, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_MASK, "" + },*/ + { SIOCIWFIRSTPRIV + 0xf, + 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_MASK , "getneighborlist" + }, + /* Sub-ioctls definitions*/ + /* + { + OID_802_11_MESH_ID, + IW_PRIV_TYPE_INT | 2047, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_MASK, "meshid" + }, + { + OID_802_11_MESH_LIST, + IW_PRIV_TYPE_INT | 2047, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_MASK, "meshlist" + },*/ + { SIOCIWFIRSTPRIV + 0x10, + IW_PRIV_TYPE_CHAR | 64, 0, "set" + }, + { SIOCIWFIRSTPRIV + 0x12, + IW_PRIV_TYPE_CHAR | 64,0 , "macdenydel" + }, + { + SIOCIWFIRSTPRIV + 0x14, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setmeshsec" + }, + { + SIOCIWFIRSTPRIV + 0x15, + IW_PRIV_TYPE_CHAR | 6, 0, "setmkddid" + }, + { + SIOCIWFIRSTPRIV + 0x16, + IW_PRIV_TYPE_CHAR | 64, 0, "setkey" + }, + { + SIOCIWFIRSTPRIV + 0x17, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setsectype" + }, +}; + +int meshdev_wx_mesh(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *meshpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device * ieee = meshpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = rtllib_priv(dev); + struct mshclass *mshobj = priv->mshobj; + int ret = 0; + + printk("@@@@@%s: ", __FUNCTION__); + if(mshobj) + { + switch(wrqu->data.flags) + { + case OID_802_11_MESH_SECURITY_INFO: + { + printk("OID_802_11_MESH_SECURITY_INFO \n"); + if(mshobj->ext_patch_r819x_wx_get_security_info) + ret = mshobj->ext_patch_r819x_wx_get_security_info(dev, info, wrqu, extra); + break; + } + case OID_802_11_MESH_ID: + { + printk("OID_802_11_MESH_ID \n"); + if(mshobj->ext_patch_r819x_wx_get_meshid) + ret = mshobj->ext_patch_r819x_wx_get_meshid(dev, info, wrqu, extra); + break; + } + case OID_802_11_MESH_AUTO_LINK: + { + printk("OID_802_11_MESH_AUTO_LINK \n"); + if(mshobj->ext_patch_r819x_wx_get_auto_link) + ret = mshobj->ext_patch_r819x_wx_get_auto_link(dev, info, wrqu, extra); + break; + } + case OID_802_11_MESH_LINK_STATUS: + { + printk("OID_802_11_MESH_LINK_STATUS \n"); + if(mshobj->ext_patch_r819x_wx_get_link_status) + ret = mshobj->ext_patch_r819x_wx_get_link_status(dev, info, wrqu, extra); + break; + } + case OID_802_11_MESH_LIST: + { + printk("OID_802_11_MESH_LIST \n"); + if(mshobj->ext_patch_r819x_wx_get_neighbor_list) + ret = mshobj->ext_patch_r819x_wx_get_neighbor_list(dev, info, wrqu, extra); + break; + } + case OID_802_11_MESH_ROUTE_LIST: + { + printk("OID_802_11_MESH_ROUTE_LIST \n"); + if(mshobj->ext_patch_r819x_wx_get_route_list) + ret = mshobj->ext_patch_r819x_wx_get_route_list(dev, info, wrqu, extra); + break; + } + case OID_802_11_MESH_MAX_TX_RATE: + { + printk("OID_802_11_MESH_MAX_TX_RATE \n"); + if(mshobj->ext_patch_r819x_wx_get_maxrate) + ret = mshobj->ext_patch_r819x_wx_get_maxrate(dev, info, wrqu, extra); + break; + } + case OID_802_11_MESH_CHANNEL: + { + printk("OID_802_11_MESH_CHANNEL \n"); + if(mshobj->ext_patch_r819x_wx_get_channel) + ret = mshobj->ext_patch_r819x_wx_get_channel(dev, info, wrqu, extra); + break; + } + case OID_802_11_MESH_HOSTNAME: + { + printk("OID_802_11_MESH_HOSTNAME \n"); + if(mshobj->ext_patch_r819x_wx_get_host_name) + ret = mshobj->ext_patch_r819x_wx_get_host_name(dev, info, wrqu, extra); + break; + } + case OID_802_11_MESH_ONLY_MODE: + { + printk("OID_802_11_MESH_ONLY_MODE \n"); + if(mshobj->ext_patch_r819x_wx_get_mesh_only_mode) + ret = mshobj->ext_patch_r819x_wx_get_mesh_only_mode(dev, info, wrqu, extra); + break; + } + case RTL_OID_802_11_MESH_SECURITY_INFO: + { + printk("RTL_OID_802_11_MESH_SECURITY_INFO \n"); + if(mshobj->ext_patch_r819x_wx_set_security_info) + ret = mshobj->ext_patch_r819x_wx_set_security_info(dev, info, wrqu, extra); + break; + } + case RTL_OID_802_11_MESH_ID: + { + printk("RTL_OID_802_11_MESH_ID \n"); + if(mshobj->ext_patch_r819x_wx_set_meshID) + ret = mshobj->ext_patch_r819x_wx_set_meshID(dev, (u8*)wrqu->data.pointer); + break; + } + case RTL_OID_802_11_MESH_AUTO_LINK: + { + printk("RTL_OID_802_11_MESH_AUTO_LINK \n"); + if(mshobj->ext_patch_r819x_wx_set_auto_link) + ret = mshobj->ext_patch_r819x_wx_set_auto_link(dev, info, wrqu, extra); + break; + } + case RTL_OID_802_11_MESH_ADD_LINK: + { + printk("RTL_OID_802_11_MESH_ADD_LINK \n"); + if(mshobj->ext_patch_r819x_wx_set_add_link) + ret = mshobj->ext_patch_r819x_wx_set_add_link(dev, info, wrqu, extra); + break; + } + case RTL_OID_802_11_MESH_DEL_LINK: + { + printk("RTL_OID_802_11_MESH_DEL_LINK \n"); + if(mshobj->ext_patch_r819x_wx_set_del_link) + ret = mshobj->ext_patch_r819x_wx_set_del_link(dev, info, wrqu, extra); + break; + } + case RTL_OID_802_11_MESH_MAX_TX_RATE: + { + printk("RTL_OID_802_11_MESH_MAX_TX_RATE \n"); + if(mshobj->ext_patch_r819x_wx_set_maxrate) + ret = mshobj->ext_patch_r819x_wx_set_maxrate(dev, info, wrqu, extra); + break; + } + case RTL_OID_802_11_MESH_CHANNEL: + { + printk("RTL_OID_802_11_MESH_CHANNEL \n"); + printk("channel = %d\n",*(u8*)wrqu->data.pointer); + r8192_wx_set_channel(dev, info, wrqu, wrqu->data.pointer); + break; + } + case RTL_OID_802_11_MESH_HOSTNAME: + { + printk("RTL_OID_802_11_MESH_HOSTNAME \n"); + if(mshobj->ext_patch_r819x_wx_set_host_name) + ret = mshobj->ext_patch_r819x_wx_set_host_name(dev, info, wrqu, extra); + break; + } + case RTL_OID_802_11_MESH_ONLY_MODE: + { + printk("RTL_OID_802_11_MESH_ONLY_MODE \n"); + if(mshobj->ext_patch_r819x_wx_set_mesh_only_mode) + ret = mshobj->ext_patch_r819x_wx_set_mesh_only_mode(dev, info, wrqu, extra); + break; + } + default: + printk("Default \n"); + break; + } + } + return ret; +} + +static int meshdev_wx_get_meshinfo(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct net_device *dev = mpriv->rtllib->dev; + +printk("++++++======%s: dev=%p length=%d extra=%p\n", __FUNCTION__, dev, wrqu->data.length,extra); + return r8192_wx_get_meshinfo(dev, info, wrqu, extra); +} + +static int meshdev_wx_enable_mesh(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + +printk("++++++======%s\n", __FUNCTION__); + return r8192_wx_enable_mesh(dev, info, wrqu, extra); + +} + +static int meshdev_wx_disable_mesh(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + +printk("++++++======%s\n", __FUNCTION__); + return r8192_wx_disable_mesh(dev, info, wrqu, extra); +} + + +int meshdev_wx_set_channel(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; +printk("++++++======%s\n", __FUNCTION__); + + return r8192_wx_set_channel(dev, info, wrqu, extra); +} + +static int meshdev_wx_set_meshid(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; +printk("++++++======%s\n", __FUNCTION__); + + return r8192_wx_set_meshID(dev, info, wrqu, extra); +} + +static int meshdev_wx_mesh_scan(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + +printk("++++++======%s\n", __FUNCTION__); + return r8192_wx_mesh_scan(dev, info, wrqu, extra); +} +static int meshdev_wx_get_mesh_list(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; +printk("++++++======%s\n", __FUNCTION__); + + return r8192_wx_get_mesh_list(dev, info, wrqu, extra); +} +static int meshdev_wx_set_meshmode(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + +printk("++++++======%s\n", __FUNCTION__); + return r8192_wx_set_meshmode(dev, info, wrqu, extra); +} +static int meshdev_wx_set_meshbw(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + +printk("++++++======%s\n", __FUNCTION__); + return r8192_wx_set_meshBW(dev, info, wrqu, extra); +} +static int meshdev_wx_update_beacon(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = rtllib_priv(dev); + struct mshclass *mshobj= (priv)->mshobj; + u8 updateBW = 0; + u8 bserverHT = 0; + + printk("++++++======%s\n", __FUNCTION__); + if(*extra == 0) + { + ieee->p2pmode = 1; + ieee->current_network.channel = ieee->current_mesh_network.channel; + if(ieee->state!=RTLLIB_LINKED){ + if(ieee->pHTInfo->bCurBW40MHz) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + } + } + else + { + ieee->p2pmode = 0; + updateBW=mshobj->ext_patch_r819x_wx_update_beacon(dev,&bserverHT); + printk("$$$$$$ Cur_networ.chan=%d, cur_mesh_net.chan=%d,bserverHT=%d\n", ieee->current_network.channel,ieee->current_mesh_network.channel,bserverHT); + if(updateBW == 1) + { + if(bserverHT == 0) + { + printk("===>server is not HT supported,set 20M\n"); + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT); + } + else + { + printk("===>updateBW is 1,bCurBW40MHz is %d,ieee->serverExtChlOffset is %d\n",ieee->pHTInfo->bCurBW40MHz,ieee->serverExtChlOffset); + if(ieee->pHTInfo->bCurBW40MHz) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, ieee->serverExtChlOffset); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, ieee->serverExtChlOffset); + } + } + else + { + printk("===>there is no same hostname server, ERR!!!\n"); + return -1; + } + } +#ifdef RTL8192SE + write_nic_dword(dev,BSSIDR,((u32*)priv->rtllib->current_mesh_network.bssid)[0]); + write_nic_word(dev,BSSIDR+4,((u16*)priv->rtllib->current_mesh_network.bssid)[2]); +#elif defined RTL8192CE + write_nic_dword(dev,REG_BSSID,((u32*)priv->rtllib->current_mesh_network.bssid)[0]); + write_nic_word(dev,REG_BSSID+4,((u16*)priv->rtllib->current_mesh_network.bssid)[2]); +#endif + + return 0; +} +static int meshdev_wx_add_mac_deny(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = rtllib_priv(dev); + + + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_add_mac_deny ) + return 0; + + return priv->mshobj->ext_patch_r819x_wx_set_add_mac_deny(dev, info, wrqu, extra); +} + +static int meshdev_wx_del_mac_deny(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = rtllib_priv(dev); + + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_del_mac_deny ) + return 0; + + return priv->mshobj->ext_patch_r819x_wx_set_del_mac_deny(dev, info, wrqu, extra); +} + +static int meshdev_wx_get_neighbor_list(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = rtllib_priv(dev); + int ret = 0; + + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_get_neighbor_list ) + return 0; + ret = priv->mshobj->ext_patch_r819x_wx_get_neighbor_list(dev, info, wrqu, extra); +#ifdef MESH_AUTO_TEST + ret |= r8192_wx_set_channel(dev, info, wrqu, &ieee->current_network.channel); +#endif + return ret; +} + +/* reserved for future +static int r819x_wx_get_mac_allow(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + return 0; + + return priv->mshobj->ext_patch_r819x_wx_get_mac_allow(dev, info, wrqu, extra); +} +*/ + +static int meshdev_wx_get_mac_deny(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = rtllib_priv(dev); + + if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_get_mac_deny ) + return 0; + + return priv->mshobj->ext_patch_r819x_wx_get_mac_deny(dev, info, wrqu, extra); +} + + +static int meshdev_wx_set_hostname(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + + if(wrqu->data.length > MAX_HOST_NAME_LENGTH) + { + printk("%s: Host name is too long. len=%d\n", __FUNCTION__, wrqu->data.length); + return -1; + } + + ieee->hostname_len = wrqu->data.length; + memcpy(ieee->hostname, extra, wrqu->data.length); + +printk("++++++======%s: %s\n", __FUNCTION__, ieee->hostname); + + return 0; +} +static int meshdev_wx_set_mesh_security(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = netdev_priv(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + printk("++++++======%s\n", __FUNCTION__); + return r8192_wx_set_mesh_security(dev, info, wrqu, extra); +} +static int meshdev_wx_set_mkdd_id(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = netdev_priv(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + + printk("++++++======%s\n", __FUNCTION__); + return r8192_wx_set_mkdd_id(dev, info, wrqu, extra); +} +static int meshdev_wx_set_mesh_key(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = netdev_priv(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + printk("++++++======%s\n", __FUNCTION__); + return r8192_wx_set_mesh_key(dev, info, wrqu, extra); +} +static int meshdev_wx_set_sec_type(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct meshdev_priv *mpriv = netdev_priv(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + printk("++++++======%s\n", __FUNCTION__); + return r8192_wx_set_mesh_sec_type(dev, info, wrqu, extra); +} +static u8 my_atoi(const char *arg) +{ + u8 val = 0; + for(; ; arg++){ + switch (*arg){ + case '0'...'9': + val = 10*val + (*arg-'0'); + break; + default: + return val; + } + } + return val; +} + +static int Set_Channel_Proc(struct net_device *meshdev, char *arg) +{ + int ch = my_atoi(arg); + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct r8192_priv *priv = (void *)ieee->priv; + struct net_device *dev = ieee->dev; + + if (!priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_channel || !ieee->only_mesh) + return 0; + +printk("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!set current mesh network channel %d\n", ch); + if ( ch < 0 ) + { + rtllib_start_scan(ieee); + ieee->meshScanMode =2; + } + else + { + ieee->meshScanMode =0; + if(priv->mshobj->ext_patch_r819x_wx_set_channel) + { + priv->mshobj->ext_patch_r819x_wx_set_channel(ieee, ch); + priv->mshobj->ext_patch_r819x_wx_set_mesh_chan(dev,ch); + } + queue_work_rsl(ieee->wq, &ieee->ext_stop_scan_wq); + ieee->set_chan(ieee->dev, ch); + ieee->current_mesh_network.channel = ch; + if(ieee->only_mesh) + ieee->current_network.channel = ch; + ieee->current_network.channel = ieee->current_mesh_network.channel; + if(ieee->pHTInfo->bCurBW40MHz) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + if(rtllib_act_scanning(ieee,true) == true) + rtllib_stop_scan_syncro(ieee); + } + return 0; +} +static int Set_MeshID_Proc(struct net_device *meshdev, char *arg) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = rtllib_priv(dev); + RT_RF_POWER_STATE rtState; + int ret = 0; + rtState = priv->rtllib->eRFPowerState; + + if(!priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_enable_mesh || !priv->mshobj->ext_patch_r819x_wx_set_meshID) + return 0; + + if(rtllib_act_scanning(ieee,true) == true) + rtllib_stop_scan_syncro(ieee); + + /* Set Mesh ID */ + ret = priv->mshobj->ext_patch_r819x_wx_set_meshID(dev, arg); + if(ret) + goto End; + + /* Enable Mesh */ + SEM_DOWN_PRIV_WX(&priv->wx_sem); + ret = priv->mshobj->ext_patch_r819x_wx_enable_mesh(dev); + if(!ret) + { +#ifdef ENABLE_IPS + if(priv->rtllib->PowerSaveControl.bInactivePs){ + if(rtState == eRfOff){ + if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS) + { + RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__); + SEM_UP_PRIV_WX(&priv->wx_sem); + return -1; + } + else{ + printk("=========>%s(): IPSLeave\n",__FUNCTION__); + IPSLeave(dev); + } + } + } +#endif + } + SEM_UP_PRIV_WX(&priv->wx_sem); +#if 1 + if (ieee->mesh_sec_type == 1) { + rtl8192_abbr_handshk_set_GTK(ieee,1); + } +#else + if (ieee->mesh_sec_type == 1) + rtl8192_abbr_handshk_set_key(ieee); +#endif +End: + return ret; +} +static int Set_Bw40MHz_Proc(struct net_device *meshdev, char *arg) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct r8192_priv *priv = (void *)ieee->priv; + u8 bBw40MHz = my_atoi(arg); + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + printk("%s(): set mesh BW ! extra is %d\n",__FUNCTION__, bBw40MHz); + priv->rtllib->pHTInfo->bRegBW40MHz = bBw40MHz; + SEM_UP_PRIV_WX(&priv->wx_sem); + + return 0; +} +static int Set_WirelessMode_Proc(struct net_device *meshdev, char *arg) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct r8192_priv *priv = (void *)ieee->priv; + struct net_device *dev = ieee->dev; + u8 wirelessmode = my_atoi(arg); + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + + printk("%s(): set mesh mode ! extra is %d\n",__FUNCTION__, wirelessmode); + if((wirelessmode != WIRELESS_MODE_A) && (wirelessmode != WIRELESS_MODE_B) && + (wirelessmode != WIRELESS_MODE_G) && (wirelessmode != WIRELESS_MODE_AUTO) && + (wirelessmode != WIRELESS_MODE_N_24G) && (wirelessmode != WIRELESS_MODE_N_5G)) + { + printk("ERR!! you should input 1 | 2 | 4 | 8 | 16 | 32\n"); + SEM_UP_PRIV_WX(&priv->wx_sem); + return -1; + } + if(priv->rtllib->state == RTLLIB_LINKED) + { + if((priv->rtllib->mode != WIRELESS_MODE_N_5G) && (priv->rtllib->mode != WIRELESS_MODE_N_24G)){ + printk("===>wlan0 is linked,and ieee->mode is not N mode ,do not need to set mode,return\n"); + SEM_UP_PRIV_WX(&priv->wx_sem); + return 0; + } + } + priv->rtllib->mode = wirelessmode; + if(priv->ResetProgress == RESET_TYPE_NORESET) + rtl8192_SetWirelessMode(dev, priv->rtllib->mode); + HTUseDefaultSetting(priv->rtllib); + SEM_UP_PRIV_WX(&priv->wx_sem); + return 0; +} +static int Set_ExtChnOffset_Proc(struct net_device *meshdev, char *arg) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; +#if 0 + struct r8192_priv *priv = (void *)ieee->priv; + struct net_device *dev = ieee->dev; + struct mshclass *mshobj= priv->mshobj; + u8 updateBW = 0; + u8 bserverHT = 0; +#endif + ieee->p2pmode = 0; +#if 0 + updateBW=mshobj->ext_patch_r819x_wx_update_beacon(dev,&bserverHT); + printk("$$$$$$ Cur_networ.chan=%d, cur_mesh_net.chan=%d,bserverHT=%d\n", ieee->current_network.channel,ieee->current_mesh_network.channel,bserverHT); + if(updateBW == 1) + { + if(bserverHT == 0) + { + printk("===>server is not HT supported,set 20M\n"); + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT); + } + else + { + printk("===>updateBW is 1,bCurBW40MHz is %d,ieee->serverExtChlOffset is %d\n",ieee->pHTInfo->bCurBW40MHz,ieee->serverExtChlOffset); + if(ieee->pHTInfo->bCurBW40MHz) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, ieee->serverExtChlOffset); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, ieee->serverExtChlOffset); + } + } + else + { + printk("===>there is no same hostname server, ERR!!!\n"); + return -1; + } +#endif + return 0; +} +static int Set_OnlyMesh_Proc(struct net_device *meshdev, char *arg) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + union iwreq_data tmprqu; + int ret = 0; + + ieee->p2pmode = 1; + ieee->only_mesh = my_atoi(arg); +printk("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!mesh only = %d, p2pmode = %d\n", ieee->only_mesh, ieee->p2pmode); + if(ieee->only_mesh) + ieee->current_network.channel = ieee->current_mesh_network.channel; + if(ieee->only_mesh == 0) + { + tmprqu.mode = ieee->iw_mode; + ieee->iw_mode = IW_MODE_INFRA; + ret = rtllib_wx_set_mode(ieee, NULL, &tmprqu, NULL); + } + return ret; +} +static int Set_AsPortal_Proc(struct net_device *meshdev, char *arg) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = (void *)ieee->priv; + u8 val = my_atoi(arg); + int ret = 0; + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + ret = priv->mshobj->ext_patch_r819x_wx_set_AsPortal(dev, val); + SEM_UP_PRIV_WX(&priv->wx_sem); + + return ret; +} +static int Set_AsRoot_Proc(struct net_device *meshdev, char *arg) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + struct r8192_priv *priv = (void *)ieee->priv; + u8 val = my_atoi(arg); + int ret = 0; + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + ret = priv->mshobj->ext_patch_r819x_wx_set_AsRoot(dev, val); + SEM_UP_PRIV_WX(&priv->wx_sem); + + return ret; +} + +static struct { + char* name; + int (*set_proc)(struct net_device *dev, char *arg); +} *private_set_proc, private_support_proc[] = { + {"Debug", NULL}, + {"Channel", Set_Channel_Proc}, + {"MeshId", Set_MeshID_Proc}, + {"Bw40MHz", Set_Bw40MHz_Proc}, + {"WirelessMode", Set_WirelessMode_Proc}, + {"ExtChnOffset", Set_ExtChnOffset_Proc}, + {"OnlyMesh", Set_OnlyMesh_Proc}, + {"AsPortal", Set_AsPortal_Proc}, + {"AsRoot", Set_AsRoot_Proc}, + {"MeshAuthMode", NULL}, + {"MeshEncrypType", NULL}, + {"", NULL}, +}; + +static char *rtlstrchr(const char *s, int c) +{ + for(; *s!=(char)c; ++s) + if(*s == '\0') + return NULL; + return (char *)s; +} + +static int meshdev_wx_set_param(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *w, char *extra) +{ + char * this_char = extra; + char *value = NULL; + int Status=0; + + printk("=======>%s: extra=%s\n", __FUNCTION__,extra); + if (!*this_char) + return -EINVAL; + + if ((value = rtlstrchr(this_char, '=')) != NULL) + *value++ = 0; + + for (private_set_proc = private_support_proc; strcmp(private_set_proc->name, ""); private_set_proc++) + { + if (strcmp(this_char, private_set_proc->name) == 0) + { + if(private_set_proc->set_proc) + { + if(private_set_proc->set_proc(dev, value)) + { + Status = -EINVAL; + } + } + break; + } + } + + if(strcmp(private_set_proc->name, "") == 0) + { + Status = -EINVAL; + printk("===>%s: (iwpriv) Not Support Set Command [%s]", __FUNCTION__, this_char); + if(value != NULL) + printk(" value=%s\n", value); + else + printk("\n"); + } + + return Status; +} + + +static iw_handler meshdev_private_handler[] = { + meshdev_wx_enable_mesh, + meshdev_wx_get_meshinfo, + meshdev_wx_disable_mesh, + meshdev_wx_set_channel, + meshdev_wx_set_meshid, + meshdev_wx_get_mesh_list, + meshdev_wx_mesh_scan, + meshdev_wx_set_meshmode, + meshdev_wx_set_hostname, + meshdev_wx_set_meshbw, + meshdev_wx_update_beacon, + meshdev_wx_get_mac_deny, + meshdev_wx_add_mac_deny, + NULL, + NULL, + meshdev_wx_get_neighbor_list, + meshdev_wx_set_param, + NULL, + meshdev_wx_del_mac_deny, + NULL, + meshdev_wx_set_mesh_security, + meshdev_wx_set_mkdd_id, + meshdev_wx_set_mesh_key, + meshdev_wx_set_sec_type, +}; + +struct iw_handler_def meshdev_wx_handlers_def={ + .standard = meshdev_wx_handlers, + .num_standard = sizeof(meshdev_wx_handlers) / sizeof(iw_handler), + .private = meshdev_private_handler, + .num_private = sizeof(meshdev_private_handler) / sizeof(iw_handler), + .num_private_args = sizeof(meshdev_private_args) / sizeof(struct iw_priv_args), +#if WIRELESS_EXT >= 17 + .get_wireless_stats = (void*)meshdev_stats, +#endif + .private_args = (struct iw_priv_args *)meshdev_private_args, +}; +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_regd.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_regd.c @@ -0,0 +1,390 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the ath driver, which is: + * Copyright (c) 2008-2009 Atheros Communications Inc. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + ******************************************************************************/ +#ifdef CONFIG_CFG_80211 +#include "rtl_core.h" +#include +#include +#include + +#ifdef CONFIG_CRDA +static struct country_code_to_enum_rd allCountries[] = { + {COUNTRY_CODE_FCC, "US"}, + {COUNTRY_CODE_IC, "US"}, + {COUNTRY_CODE_ETSI, "EC"}, + {COUNTRY_CODE_SPAIN, "EC"}, + {COUNTRY_CODE_FRANCE, "EC"}, + {COUNTRY_CODE_MKK, "JP"}, + {COUNTRY_CODE_MKK1, "JP"}, + {COUNTRY_CODE_ISRAEL, "EC"}, + {COUNTRY_CODE_TELEC, "JP"}, + {COUNTRY_CODE_MIC, "JP"}, + {COUNTRY_CODE_GLOBAL_DOMAIN, "JP"}, + {COUNTRY_CODE_WORLD_WIDE_13, "EC"}, + {COUNTRY_CODE_TELEC_NETGEAR, "EC"}, +}; + +/* Only these channels all allow active scan on all world regulatory domains */ +#define RTL819x_2GHZ_CH01_11 REG_RULE(2412-10, 2462+10, 40, 0, 20, 0) + +/* We enable active scan on these a case by case basis by regulatory domain */ +#define RTL819x_2GHZ_CH12_13 REG_RULE(2467-10, 2472+10, 40, 0, 20, NL80211_RRF_PASSIVE_SCAN) +#define RTL819x_2GHZ_CH14 REG_RULE(2484-10, 2484+10, 40, 0, 20, NL80211_RRF_PASSIVE_SCAN | \ + NL80211_RRF_NO_OFDM) + +static const struct ieee80211_regdomain rtl_regdom_11 = { + .n_reg_rules = 1, + .alpha2 = "99", + .reg_rules = { + RTL819x_2GHZ_CH01_11, + } +}; + +static const struct ieee80211_regdomain rtl_regdom_global = { + .n_reg_rules = 3, + .alpha2 = "99", + .reg_rules = { + RTL819x_2GHZ_CH01_11, + RTL819x_2GHZ_CH12_13, + RTL819x_2GHZ_CH14, + } +}; + +static const struct ieee80211_regdomain rtl_regdom_world = { + .n_reg_rules = 2, + .alpha2 = "99", + .reg_rules = { + RTL819x_2GHZ_CH01_11, + RTL819x_2GHZ_CH12_13, + } +}; + +static void rtl_reg_apply_chan_plan(struct wiphy *wiphy) +{ + struct net_device *dev = wiphy_to_net_device(wiphy); + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct rtllib_device *rtllib = priv->rtllib; + struct ieee80211_supported_band *sband; + struct ieee80211_channel *ch; + int i; + + sband = wiphy->bands[IEEE80211_BAND_2GHZ]; + + for (i = 0; i < sband->n_channels; i++) { + ch = &sband->channels[i]; + if (ch->flags & IEEE80211_CHAN_DISABLED) { + GET_DOT11D_INFO(rtllib)->channel_map[ch->hw_value] = 0; + } else { + if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) { + GET_DOT11D_INFO(rtllib)->channel_map[ch->hw_value] = 2; + } else { + GET_DOT11D_INFO(rtllib)->channel_map[ch->hw_value] = 1; + } + } + + } + + for (i = sband->n_channels - 1; i >= 0; i--) { + ch = &sband->channels[i]; + if (!(ch->flags & IEEE80211_CHAN_NO_IBSS)) { + rtllib->ibss_maxjoin_chal = ch->hw_value; + break; + } + } + + rtllib->IbssStartChnl = 10; + + return; +} + +void rtl_dump_channel_map(struct wiphy *wiphy) +{ + enum ieee80211_band band; + struct ieee80211_supported_band *sband; + struct ieee80211_channel *ch; + unsigned int i; + + for (band = 0; band < IEEE80211_NUM_BANDS; band++) { + + if (!wiphy->bands[band]) + continue; + + sband = wiphy->bands[band]; + + for (i = 0; i < sband->n_channels; i++) { + ch = &sband->channels[i]; + printk("chan:%d, NO_IBSS:%d," + " PASSIVE_SCAN:%d, RADAR:%d, DISABLED:%d\n", i+1, + (ch->flags&IEEE80211_CHAN_NO_IBSS) ? 1:0, + (ch->flags&IEEE80211_CHAN_PASSIVE_SCAN) ? 1:0, + (ch->flags&IEEE80211_CHAN_RADAR) ? 1:0, + (ch->flags&IEEE80211_CHAN_DISABLED) ? 1:0 + ); + } + + } +} + +static void rtl_reg_apply_world_flags(struct wiphy *wiphy, + enum nl80211_reg_initiator initiator, + struct rtl_regulatory *reg) +{ + rtl_reg_apply_chan_plan(wiphy); + return; +} + +int rtl_reg_notifier_apply(struct wiphy *wiphy, + struct regulatory_request *request, + struct rtl_regulatory *reg) +{ + switch (request->initiator) { + case NL80211_REGDOM_SET_BY_CORE: + break; + case NL80211_REGDOM_SET_BY_DRIVER: + case NL80211_REGDOM_SET_BY_USER: + rtl_reg_apply_world_flags(wiphy, request->initiator, reg); + rtl_dump_channel_map(wiphy); + break; + case NL80211_REGDOM_SET_BY_COUNTRY_IE: + rtl_reg_apply_world_flags(wiphy, request->initiator, reg); + rtl_dump_channel_map(wiphy); + break; + } + + return 0; +} + +static const struct +ieee80211_regdomain *rtl_regdomain_select(struct rtl_regulatory *reg) +{ + switch (reg->country_code) { + case COUNTRY_CODE_FCC: + case COUNTRY_CODE_IC: + return &rtl_regdom_11; + case COUNTRY_CODE_ETSI: + case COUNTRY_CODE_SPAIN: + case COUNTRY_CODE_FRANCE: + case COUNTRY_CODE_ISRAEL: + case COUNTRY_CODE_TELEC_NETGEAR: + return &rtl_regdom_world; + case COUNTRY_CODE_MKK: + case COUNTRY_CODE_MKK1: + case COUNTRY_CODE_TELEC: + case COUNTRY_CODE_MIC: + return &rtl_regdom_global; + case COUNTRY_CODE_GLOBAL_DOMAIN: + return &rtl_regdom_global; + case COUNTRY_CODE_WORLD_WIDE_13: + return &rtl_regdom_world; + default: + WARN_ON(1); + return &rtl_regdom_world; + } +} + +static int +rtl_regd_init_wiphy(struct rtl_regulatory *reg, + struct wiphy *wiphy, + int (*reg_notifier)(struct wiphy *wiphy, + struct regulatory_request *request)) +{ + const struct ieee80211_regdomain *regd; + + wiphy->reg_notifier = reg_notifier; + + wiphy->custom_regulatory = true; + wiphy->strict_regulatory = false; + + regd = rtl_regdomain_select(reg); + + wiphy->disable_beacon_hints = true; + wiphy_apply_custom_regulatory(wiphy, regd); + + rtl_reg_apply_world_flags(wiphy, NL80211_REGDOM_SET_BY_DRIVER, reg); + return 0; +} + +static struct +country_code_to_enum_rd *rtl_regd_find_country(u16 countryCode) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(allCountries); i++) { + if (allCountries[i].countryCode == countryCode) + return &allCountries[i]; + } + return NULL; +} + +int rtl_regd_init(struct net_device *dev, + int (*reg_notifier)(struct wiphy *wiphy, + struct regulatory_request *request)) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct rtl_regulatory *reg = &priv->rtllib->regulatory; + struct wiphy *wiphy = priv->rtllib->wdev.wiphy; + struct country_code_to_enum_rd *country = NULL; + + if (wiphy == NULL || reg == NULL){ + return -EINVAL; + } + + printk(KERN_DEBUG "rtl: EEPROM regdomain: 0x%0x\n", priv->ChannelPlan); + + reg->country_code = priv->ChannelPlan; + + if (reg->country_code >= COUNTRY_CODE_MAX) { + printk(KERN_DEBUG "rtl: EEPROM indicates invalid contry code" + "world wide 13 should be used\n"); + reg->country_code = COUNTRY_CODE_WORLD_WIDE_13; + } + + country = rtl_regd_find_country(reg->country_code); + + if (country) { + reg->alpha2[0] = country->isoName[0]; + reg->alpha2[1] = country->isoName[1]; + } else { + reg->alpha2[0] = '0'; + reg->alpha2[1] = '0'; + } + + printk(KERN_DEBUG "rtl: Country alpha2 being used: %c%c\n", + reg->alpha2[0], reg->alpha2[1]); + rtl_regd_init_wiphy(reg, wiphy, reg_notifier); + rtl_dump_channel_map(wiphy); + return 0; +} + +int rtl_reg_notifier(struct wiphy *wiphy, + struct regulatory_request *request) +{ + struct net_device *dev = wiphy_to_net_device(wiphy); + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct rtl_regulatory *reg = &priv->rtllib->regulatory; + + printk("rtl_regd: %s\n", __func__); + return rtl_reg_notifier_apply(wiphy, request, reg); +} +#endif + +struct net_device *wiphy_to_net_device(struct wiphy *wiphy) +{ + struct rtllib_device *rtllib; + + rtllib = wiphy_priv(wiphy); + return rtllib->dev; +} + +static const struct ieee80211_rate rtl819x_rates[] = { + { .bitrate = 10, .hw_value = 0, }, + { .bitrate = 20, .hw_value = 1, }, + { .bitrate = 55, .hw_value = 2, }, + { .bitrate = 110, .hw_value = 3, }, + { .bitrate = 60, .hw_value = 4, }, + { .bitrate = 90, .hw_value = 5, }, + { .bitrate = 120, .hw_value = 6, }, + { .bitrate = 180, .hw_value = 7, }, + { .bitrate = 240, .hw_value = 8, }, + { .bitrate = 360, .hw_value = 9, }, + { .bitrate = 480, .hw_value = 10, }, + { .bitrate = 540, .hw_value = 11, }, +}; + +#define CHAN2G(_freq, _flags, _idx) { \ + .band = IEEE80211_BAND_2GHZ, \ + .center_freq = (_freq), \ + .flags = (_flags), \ + .hw_value = (_idx), \ + .max_power = 20, \ +} + +static struct ieee80211_channel rtl819x_2ghz_chantable[] = { + CHAN2G(2412, 0, 1), /* Channel 1 */ + CHAN2G(2417, 0, 2), /* Channel 2 */ + CHAN2G(2422, 0, 3), /* Channel 3 */ + CHAN2G(2427, 0, 4), /* Channel 4 */ + CHAN2G(2432, 0, 5), /* Channel 5 */ + CHAN2G(2437, 0, 6), /* Channel 6 */ + CHAN2G(2442, 0, 7), /* Channel 7 */ + CHAN2G(2447, 0, 8), /* Channel 8 */ + CHAN2G(2452, 0, 9), /* Channel 9 */ + CHAN2G(2457, 0, 10), /* Channel 10 */ + CHAN2G(2462, 0, 11), /* Channel 11 */ + CHAN2G(2467, IEEE80211_CHAN_NO_IBSS|IEEE80211_CHAN_PASSIVE_SCAN, 12), /* Channel 12 */ + CHAN2G(2472, IEEE80211_CHAN_NO_IBSS|IEEE80211_CHAN_PASSIVE_SCAN, 13), /* Channel 13 */ + CHAN2G(2484, IEEE80211_CHAN_NO_IBSS|IEEE80211_CHAN_PASSIVE_SCAN, 14), /* Channel 14 */ +}; + +int rtllib_set_geo(struct r8192_priv *priv) +{ + priv->bands[IEEE80211_BAND_2GHZ].band = IEEE80211_BAND_2GHZ; + priv->bands[IEEE80211_BAND_2GHZ].channels = rtl819x_2ghz_chantable; + priv->bands[IEEE80211_BAND_2GHZ].n_channels = ARRAY_SIZE(rtl819x_2ghz_chantable); + + memcpy(&priv->rates[IEEE80211_BAND_2GHZ], rtl819x_rates, sizeof(rtl819x_rates)); + + priv->bands[IEEE80211_BAND_2GHZ].n_bitrates = ARRAY_SIZE(rtl819x_rates); + priv->bands[IEEE80211_BAND_2GHZ].bitrates = priv->rates[IEEE80211_BAND_2GHZ]; + + return 0; +} + +bool rtl8192_register_wiphy_dev(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct wireless_dev *wdev = &priv->rtllib->wdev; +#ifdef CONFIG_CRDA + struct rtl_regulatory *reg; +#endif + memcpy(wdev->wiphy->perm_addr, dev->dev_addr, ETH_ALEN); + wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &(priv->bands[IEEE80211_BAND_2GHZ]); + set_wiphy_dev(wdev->wiphy, &priv->pdev->dev); + +#ifdef CONFIG_CRDA + if (rtl_regd_init(dev, rtl_reg_notifier)) { + return false; + } +#endif + + if (wiphy_register(wdev->wiphy)) { + return false; + } + +#ifdef CONFIG_CRDA + reg = &priv->rtllib->regulatory; + if (reg != NULL) { + if (regulatory_hint(wdev->wiphy, reg->alpha2)) { + printk("########>%s() regulatory_hint fail\n", __func__); + ; + } else { + printk("########>#%s() regulatory_hint success\n", __func__); + } + } else { + printk("#########%s() regulator null\n", __func__); + } +#endif + return true; +} +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_debug.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_debug.c @@ -0,0 +1,1537 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#include "rtl_debug.h" +#include "rtl_core.h" + +#ifdef _RTL8192_EXT_PATCH_ +#include "../../mshclass/msh_class.h" +#endif + +u32 rt_global_debug_component = \ + COMP_ERR ; + +/*------------------Declare variable-----------------------*/ +u32 DBGP_Type[DBGP_TYPE_MAX]; + +/*----------------------------------------------------------------------------- + * Function: DBGP_Flag_Init + * + * Overview: Refresh all debug print control flag content to zero. + * + * Input: NONE + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 10/20/2006 MHC Create Version 0. + * + *---------------------------------------------------------------------------*/ +void rtl8192_dbgp_flag_init(struct net_device *dev) +{ + u8 i; + + for (i = 0; i < DBGP_TYPE_MAX; i++) + { + DBGP_Type[i] = 0; + } + + + DBGP_Type[FIOCTL] = \ + IOCTL_TRACE | + IOCTL_BT_EVENT | + IOCTL_BT_EVENT_DETAIL | + IOCTL_BT_TX_ACLDATA | + IOCTL_BT_TX_ACLDATA_DETAIL | + IOCTL_BT_RX_ACLDATA | + IOCTL_BT_RX_ACLDATA_DETAIL | + IOCTL_BT_HCICMD | + IOCTL_BT_HCICMD_DETAIL | + IOCTL_IRP | + IOCTL_IRP_DETAIL | + IOCTL_CALLBACK_FUN | + IOCTL_STATE | + IOCTL_BT_TP | + IOCTL_BT_LOGO | + 0; +} /* DBGP_Flag_Init */ + +/* this is only for debugging */ +void print_buffer(u32 *buffer, int len) +{ + int i; + u8 *buf =(u8*)buffer; + + printk("ASCII BUFFER DUMP (len: %x):\n",len); + + for(i=0;i ", n); + for (i = 0; i < 16 && n <= max; i++, n++) + printk("%2x ", read_nic_byte(dev, n)); + } + printk("\n"); +} + +#ifdef RTL8192CE +void rtl8192ce_dump_tx_desc(tx_desc *pDesc) +{ +#if 0 + RTPRINT(FTX, TX_DESC, ("DW 0 =========\r\n")); + RTPRINT(FTX, TX_DESC, ("Own = %d\n", pDesc->OWN)); + RTPRINT(FTX, TX_DESC, ("GF = %d\n", pDesc->GF)); + RTPRINT(FTX, TX_DESC, ("LINIP = %d\n", pDesc->LINIP)); + RTPRINT(FTX, TX_DESC, ("FS = %d\n", pDesc->FirstSeg)); + RTPRINT(FTX, TX_DESC, ("LS = %d\n", pDesc->LastSeg)); + RTPRINT(FTX, TX_DESC, ("Offset = %d\n", pDesc->Offset)); + RTPRINT(FTX, TX_DESC, ("PktSize = %d\r\n", pDesc->PktSize)); + + RTPRINT(FTX, TX_DESC, ("DW 1 ==========\r\n")); + RTPRINT(FTX, TX_DESC, ("PKTOFFSET = %d\n", pDesc->PktOffset)); + RTPRINT(FTX, TX_DESC, ("HTC = %d\n", pDesc->HTC)); + RTPRINT(FTX, TX_DESC, ("SecType = %d\n", pDesc->SecType)); + RTPRINT(FTX, TX_DESC, ("EnDescID = %d\n", pDesc->EnDescID)); + RTPRINT(FTX, TX_DESC, ("NoACM = %d\n", pDesc->NOACM)); + RTPRINT(FTX, TX_DESC, ("QueueSelect = %d\n", pDesc->QueueSel)); + RTPRINT(FTX, TX_DESC, ("PIFS = %d\n", pDesc->PIFS)); + RTPRINT(FTX, TX_DESC, ("MoreFrag = %d\n", pDesc->MoreFrag)); + RTPRINT(FTX, TX_DESC, ("MacID = %d\r\n", pDesc->MacID)); + + RTPRINT(FTX, TX_DESC, ("DW 2 ==========\r\n")); + RTPRINT(FTX, TX_DESC, ("BK = %d\n", pDesc->Bk)); + RTPRINT(FTX, TX_DESC, ("AGG_EN = %d\n", pDesc->AggEn)); + RTPRINT(FTX, TX_DESC, ("Data Retry CNT = %d\n", pDesc->DATARC)); + RTPRINT(FTX, TX_DESC, ("RTS Retry CNT = %d\n", pDesc->RTSRC)); + RTPRINT(FTX, TX_DESC, ("TSFL = %d\n", pDesc->TSFL)); + RTPRINT(FTX, TX_DESC, ("RetryLmtEn = %d\n", pDesc->RetryLmtEn)); + RTPRINT(FTX, TX_DESC, ("DataRetryLmt = %d\r\n", pDesc->TxRetryLmt)); + + RTPRINT(FTX, TX_DESC, ("DW 3 ==========\r\n")); + RTPRINT(FTX, TX_DESC, ("Seq = %d\n", pDesc->Seq)); + RTPRINT(FTX, TX_DESC, ("TailPage = %d\n", pDesc->TailPage)); + RTPRINT(FTX, TX_DESC, ("NextHeadPage = %d\r\n", pDesc->NextHeadPage)); + + RTPRINT(FTX, TX_DESC, ("DW 4 ==========\r\n")); + RTPRINT(FTX, TX_DESC, ("UserRate = %d\n", pDesc->UserRate)); + RTPRINT(FTX, TX_DESC, ("RTS STBC = %d\n", pDesc->RTSSTBC)); + RTPRINT(FTX, TX_DESC, ("RTSSC = %d\n", pDesc->RTSSC)); + RTPRINT(FTX, TX_DESC, ("STBC = %d\n", pDesc->STBC)); + RTPRINT(FTX, TX_DESC, ("TXSC = %d\n", pDesc->TxSc)); + RTPRINT(FTX, TX_DESC, ("TxBw = %d\n", pDesc->TxBW)); + RTPRINT(FTX, TX_DESC, ("TxShort = %d\n", pDesc->TxShort)); + RTPRINT(FTX, TX_DESC, ("RTSEn = %d\n", pDesc->RTSEn)); + RTPRINT(FTX, TX_DESC, ("CTS2Self = %d\n", pDesc->CTS2Self)); + RTPRINT(FTX, TX_DESC, ("RTSRateFBLmt = %d\n", pDesc->RTSRateFBLmt)); + RTPRINT(FTX, TX_DESC, ("DisRTSFB = %d\n", pDesc->DisRTSFB)); + RTPRINT(FTX, TX_DESC, ("RTSRate = %d\r\n", pDesc->RTSRate)); + + RTPRINT(FTX, TX_DESC, ("DW 5 ==========\r\n")); + RTPRINT(FTX, TX_DESC, ("TxAGC = %d\n", pDesc->TXAGCA)); + RTPRINT(FTX, TX_DESC, ("TxAGC = %d\n", pDesc->TXAGCB)); + RTPRINT(FTX, TX_DESC, ("DataRateFBLmt = %d\n", pDesc->TxRateFBLmt)); + RTPRINT(FTX, TX_DESC, ("Disable Feedback = %d\n", pDesc->DisDataFB)); + RTPRINT(FTX, TX_DESC, ("TX_Rate = %d\n", pDesc->TxRate)); + RTPRINT(FTX, TX_DESC, ("PktID = %d\r\n", pDesc->PktID)); + + RTPRINT(FTX, TX_DESC, ("DW 6 ==========\r\n")); + + RTPRINT(FTX, TX_DESC, ("DW 7-9 ==========\r\n")); + RTPRINT(FTX, TX_DESC, ("TxBufferSize = %d\r\n", pDesc->TxBufferSize)); + + RTPRINT(FTX, TX_DESC, ("PhyAddressLow = %08x\n", pDesc->TxBuffAddr)); + + RTPRINT(FTX, TX_DESC, ("NextDescAddress= %08X\n", pDesc->NextDescAddress)); +#else + u32* desc = (u32*)pDesc; + u8 i=0; + printk("#########################\n"); + for(i=0;i<=9;i++){ + printk("#########>%x\n", desc[i]); + } + printk("#########################\n\n"); +#endif +} +#endif + +#ifdef RTL8192SE +void rtl8192se_dump_tx_desc(tx_desc* pDesc) +{ + printk("DW 0 =========\r\n"); + printk("Own = %d\n", pDesc->OWN); + printk("GF = %d\n", pDesc->GF); + printk("LINIP = %d\n", pDesc->LINIP); + printk("FS = %d\n", pDesc->FirstSeg); + printk("LS = %d\n", pDesc->LastSeg); + printk("Offset = %d\n", pDesc->Offset); + printk("PktSize = %d\r\n", pDesc->PktSize); + + printk("DW 1 ==========\r\n"); + printk("HWPC = %d\n", pDesc->HWPC); + printk("PKTOFFSET = %d\n", pDesc->PktOffset); + printk("WDS = %d\n", pDesc->WDS); + printk("HTC = %d\n", pDesc->HTC); + printk("SecType = %d\n", pDesc->SecType); + printk("EnDescID = %d\n", pDesc->EnDescID); + printk("PktType = %d\n", pDesc->PktType); + printk("OUI = %d\n", pDesc->OUI); + printk("SecKeyId = %d\n", pDesc->KeyID); + printk("NonQos = %d\n", pDesc->NonQos); + printk("NoACM = %d\n", pDesc->NoACM); + printk("AckPolicy = %d\n", pDesc->AckPolicy); + printk("QueueSelect = %d\n", pDesc->QueueSel); + printk("PIFS = %d\n", pDesc->PIFS); + printk("MoreFrag = %d\n", pDesc->MoreFrag); + printk("MoreData = %d\n", pDesc->MoreData); + printk("MacID = %d\r\n", pDesc->MacID); + + printk("DW 2 ==========\r\n"); + printk("OwnMAC = %d\n", pDesc->OwnMAC); + printk("BK = %d\n", pDesc->BK); + printk("AGG_EN = %d\n", pDesc->AggEn); + printk("Data Retry CNT = %d\n", pDesc->DATARC); + printk("RTS Retry CNT = %d\n", pDesc->RTSRC); + printk("TSFL = %d\n", pDesc->TSFL); + printk("RetryLmtEn = %d\n", pDesc->RetryLmtEn); + printk("DataRetryLmt = %d\r\n", pDesc->DataRetryLmt); + + printk("DW 3 ==========\r\n"); + printk("Frag = %d\n", pDesc->Frag); + printk("Seq = %d\n", pDesc->Seq); + printk("TailPage = %d\n", pDesc->TailPage); + printk("NextHeadPage = %d\r\n", pDesc->NextHeadPage); + + printk("DW 4 ==========\r\n"); + printk("UserRate = %d\n", pDesc->UserRate); + printk("RTS STBC = %d\n", pDesc->RTSSTBC); + printk("RTSSC = %d\n", pDesc->RTSSC); + printk("RTSBW = %d\n", pDesc->RTSBW); + printk("RTSShort = %d\n", pDesc->RTSShort); + printk("RTSHT = %d\n", pDesc->RTSHT); + printk("RD = %d\n", pDesc->RD); + printk("STBC = %d\n", pDesc->STBC); + printk("TXSC = %d\n", pDesc->TXSC); + printk("TxBw = %d\n", pDesc->TxBw); + printk("TxShort = %d\n", pDesc->TxShort); + printk("TXHT = %d\n", pDesc->TXHT); + printk("RaBRSRID = %d\n", pDesc->RaBRSRID); + printk("RTSEn = %d\n", pDesc->RTSEn); + printk("CTS2Self = %d\n", pDesc->CTS2Self); + printk("RTSRateFBLmt = %d\n", pDesc->RTSRateFBLmt); + printk("DisRTSFB = %d\n", pDesc->DisRTSFB); + printk("RTSRate = %d\r\n", pDesc->RTSRate); + + printk("DW 5 ==========\r\n"); + printk("TxAGC = %d\n", pDesc->TxAGC); + printk("DataRateFBLmt = %d\n", pDesc->DataRateFBLmt); + printk("Disable Feedback = %d\n", pDesc->DISFB); + printk("TX_Rate = %d\n", pDesc->TxRate); + printk("PktID = %d\r\n", pDesc->PktID); + + printk("DW 6 ==========\r\n"); + printk("TCPChkSum = %d\n", pDesc->TCPChkSum); + printk("IPChkSum = %d\r\n", pDesc->IPChkSum); + + printk("DW 7-9 ==========\r\n"); + printk("TCPEn = %d\n", pDesc->TCPEn); + printk("IPHdrOffset = %d\n", pDesc->IPHdrOffset); + printk("TxBufferSize = %d\r\n", pDesc->TxBufferSize); + + printk("PhyAddressLow = %08x\n", pDesc->TxBuffAddr); + + printk("NextDescAddress= %08X\n", pDesc->NextDescAddress); +} +#endif + +#ifdef CONFIG_RTLWIFI_DEBUGFS +/* debugfs related stuff */ +static struct dentry *rtl_debugfs_root; +static int rtl_dbgfs_open(struct inode *inode, struct file *file) +{ + file->private_data = inode->i_private; + return 0; +} + +static ssize_t rtl_dbgfs_register_write(struct file *file, + const char __user *user_buf, + size_t count, + loff_t *ppos) +{ + struct r8192_priv *priv = (struct r8192_priv *)file->private_data; + char buf[32]; + int buf_size; + u32 type, offset; + + memset(buf, 0, sizeof(buf)); + buf_size = min(count, sizeof(buf) - 1); + if (copy_from_user(buf, user_buf, buf_size)) + return -EFAULT; + + if (sscanf(buf, "%x,%x", &type, &offset ) == 2) { + priv->debug->hw_type = type; + priv->debug->hw_offset = offset; + } else { + priv->debug->hw_type = 0; + priv->debug->hw_offset = 0; + } + + return count; +} + +void rtl_hardware_grab(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int t = 0; + int timeout = 20; + u32 mask = RF_CHANGE_BY_HW|RF_CHANGE_BY_PS|RF_CHANGE_BY_IPS; + + priv->debug->hw_holding = true; +#ifdef ENABLE_IPS + rtllib_ips_leave_wq(dev); +#endif + do { + if ((priv->rtllib->RfOffReason & mask)) { + msleep(100); + t++; + } else { + return; + } + } while (t < timeout); + + return; +} + +static ssize_t rtl_dbgfs_register_read(struct file *file, + char __user *user_buf, + size_t count, + loff_t *ppos) +{ + struct r8192_priv *priv = (struct r8192_priv *)file->private_data; + struct net_device *dev = priv->rtllib->dev; + ssize_t ret = 0; + char buf[2048]; + int n,i; + u32 len = 0; + u32 max = 0xff; + u32 page_no, path; + + rtl_hardware_grab(dev); + + if(!priv->debug->hw_type) { + page_no = (priv->debug->hw_offset > 0x0f)? 0x0f: priv->debug->hw_offset; +#ifdef RTL8192SE + if(page_no >= 0x08 ) { + len += snprintf(buf + len, count - len, + "\n#################### BB page- %x##################\n ", page_no); + for(n=0;n<=max;) + { + len += snprintf(buf + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(buf + len, count - len, + "%8.8x ",rtl8192_QueryBBReg(dev,(page_no << 8|n), + bMaskDWord)); + } + + } else +#endif + { + len += snprintf(buf + len,count - len, + "\n#################### MAC page- %x##################\n ", page_no); + for(n=0;n<=max;) { + len += snprintf(buf + len, count - len, "\nD: %2x > ",n); + for(i=0;i<16 && n<=max;i++,n++) + len += snprintf(buf + len, count - len, + "%2.2x ",read_nic_byte(dev,((page_no<<8)|n))); + } + } + } else { + path = (priv->debug->hw_offset < RF90_PATH_MAX)? priv->debug->hw_offset:(RF90_PATH_MAX - 1); + len += snprintf(buf + len, count - len, + "\n#################### RF-PATH-%x ##################\n ", 0x0a+path); + for(n=0;n<=max;) { + len += snprintf(buf+ len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(buf + len, count - len, + "%8.8x ",rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)path,\ + n, bMaskDWord)); + } + } + + priv->debug->hw_holding = false; + + len += snprintf(buf + len, count - len, "\n"); + ret = simple_read_from_buffer(user_buf, count, ppos, buf, len); + return ret; +} + +static const struct file_operations rtl_register_debug = { + .read = rtl_dbgfs_register_read, + .write = rtl_dbgfs_register_write, + .open = rtl_dbgfs_open, + .owner = THIS_MODULE +}; + +int rtl_debug_module_init(struct r8192_priv *priv, const char *name) +{ + rtl_fs_debug *debug; + int ret = 0; + + if (!rtl_debugfs_root) + return -ENOENT; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)) + debug = kzalloc(sizeof(rtl_fs_debug), GFP_KERNEL); +#else + rtl_fs_debug = kmalloc(sizeof(*rtl_fs_debug), GFP_KERNEL); + memset(rtl_fs_debug,0,sizeof(*rtl_fs_debug)); +#endif + if (!debug) { + ret = -ENOMEM; + goto err; + } + priv->debug = debug; + + debug->name = name; + debug->dir_drv = debugfs_create_dir(name, rtl_debugfs_root); + if (!debug->dir_drv ) { + ret = -ENOENT; + goto err; + } + + debug->debug_register = debugfs_create_file("debug_register", S_IRUGO, + debug->dir_drv, priv, &rtl_register_debug); + if(!debug->debug_register) { + ret = -ENOENT; + goto err; + } + + return 0; +err: + RT_TRACE(COMP_DBG, "Can't open the debugfs directory\n"); + rtl_debug_module_remove(priv); + return ret; + +} + +void rtl_debug_module_remove(struct r8192_priv *priv) +{ + if (!priv->debug) + return; + debugfs_remove(priv->debug->debug_register); + debugfs_remove(priv->debug->dir_drv); + kfree(priv->debug); + priv->debug = NULL; +} + +int rtl_create_debugfs_root(void) +{ + rtl_debugfs_root = debugfs_create_dir(DRV_NAME, NULL); + if (!rtl_debugfs_root) + return -ENOENT; + + return 0; +} + +void rtl_remove_debugfs_root(void) +{ + debugfs_remove(rtl_debugfs_root); + rtl_debugfs_root = NULL; +} +#endif + +/**************************************************************************** + -----------------------------PROCFS STUFF------------------------- +*****************************************************************************/ +/*This part is related to PROC, which will record some statistics. */ +static struct proc_dir_entry *rtl8192_proc = NULL; + +static int proc_get_stats_ap(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + struct rtllib_network *target; + + int len = 0; + + list_for_each_entry(target, &ieee->network_list, list) { + + len += snprintf(page + len, count - len, + "%s ", target->ssid); + + if(target->wpa_ie_len>0 || target->rsn_ie_len>0){ + len += snprintf(page + len, count - len, + "WPA\n"); + } + else{ + len += snprintf(page + len, count - len, + "non_WPA\n"); + } + + } + + *eof = 1; + return len; +} + +static int proc_get_registers_0(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0x000; + +#ifdef RTL8192SE + /* This dump the current register page */ + if(!IS_BB_REG_OFFSET_92S(page0)){ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, + "\nD: %2x > ",n); + for(i=0;i<16 && n<=max;i++,n++) + len += snprintf(page + len, count - len, + "%2.2x ",read_nic_byte(dev,(page0|n))); + } + }else +#endif + { + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + len += snprintf(page + len, count - len, + "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<16 && n<=max;n++,i++) + len += snprintf(page + len, count - len, + "%2.2x ",read_nic_byte(dev,(page0|n))); + } + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; + +} +static int proc_get_registers_1(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0x100; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + len += snprintf(page + len, count - len, + "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, + "\nD: %2x > ",n); + for(i=0;i<16 && n<=max;i++,n++) + len += snprintf(page + len, count - len, + "%2.2x ",read_nic_byte(dev,(page0|n))); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; + +} +static int proc_get_registers_2(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0x200; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + len += snprintf(page + len, count - len, + "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, + "\nD: %2x > ",n); + for(i=0;i<16 && n<=max;i++,n++) + len += snprintf(page + len, count - len, + "%2.2x ",read_nic_byte(dev,(page0|n))); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; + +} +static int proc_get_registers_3(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0x300; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + len += snprintf(page + len, count - len, + "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, + "\nD: %2x > ",n); + for(i=0;i<16 && n<=max;i++,n++) + len += snprintf(page + len, count - len, + "%2.2x ",read_nic_byte(dev,(page0|n))); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; + +} +static int proc_get_registers_4(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0x400; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + len += snprintf(page + len, count - len, + "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, + "\nD: %2x > ",n); + for(i=0;i<16 && n<=max;i++,n++) + len += snprintf(page + len, count - len, + "%2.2x ",read_nic_byte(dev,(page0|n))); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; + +} +static int proc_get_registers_5(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0x500; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + len += snprintf(page + len, count - len, + "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, + "\nD: %2x > ",n); + for(i=0;i<16 && n<=max;i++,n++) + len += snprintf(page + len, count - len, + "%2.2x ",read_nic_byte(dev,(page0|n))); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; + +} +static int proc_get_registers_6(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0x600; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + len += snprintf(page + len, count - len, + "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, + "\nD: %2x > ",n); + for(i=0;i<16 && n<=max;i++,n++) + len += snprintf(page + len, count - len, + "%2.2x ",read_nic_byte(dev,(page0|n))); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; + +} +static int proc_get_registers_7(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0x700; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + len += snprintf(page + len, count - len, + "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, + "\nD: %2x > ",n); + for(i=0;i<16 && n<=max;i++,n++) + len += snprintf(page + len, count - len, + "%2.2x ",read_nic_byte(dev,(page0|n))); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; + +} +static int proc_get_registers_8(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0x800; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(page + len, count - len, + "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord)); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; + +} +static int proc_get_registers_9(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0x900; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(page + len, count - len, + "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord)); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} +static int proc_get_registers_a(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0xa00; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(page + len, count - len, + "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord)); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} +static int proc_get_registers_b(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0xb00; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(page + len, count - len, + "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord)); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} +static int proc_get_registers_c(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0xc00; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(page + len, count - len, + "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord)); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} +static int proc_get_registers_d(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0xd00; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(page + len, count - len, + "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord)); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} +static int proc_get_registers_e(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n,page0; + + int max=0xff; + page0 = 0xe00; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n####################page %x##################\n ", (page0>>8)); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(page + len, count - len, + "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord)); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} + +static int proc_get_reg_rf_a(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n; + + int max=0xff; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n#################### RF-A ##################\n "); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(page + len, count - len, + "%8.8x ",rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A,n, bMaskDWord)); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} + +static int proc_get_reg_rf_b(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n; + + int max=0xff; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n#################### RF-B ##################\n "); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(page + len, count - len, + "%8.8x ",rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_B, n, bMaskDWord)); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} + +static int proc_get_reg_rf_c(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n; + + int max=0xff; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n#################### RF-C ##################\n "); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(page + len, count - len, + "%8.8x ",rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_C, n, bMaskDWord)); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} + +static int proc_get_reg_rf_d(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + + int len = 0; + int i,n; + + int max=0xff; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n#################### RF-D ##################\n "); + for(n=0;n<=max;) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",n); + for(i=0;i<4 && n<=max;n+=4,i++) + len += snprintf(page + len, count - len, + "%8.8x ",rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_D, n, bMaskDWord)); + } + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} + +static int proc_get_cam_register_1(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + u32 target_command=0; + u32 target_content=0; + u8 entry_i=0; + u32 ulStatus; + int len = 0; + int i=100, j = 0; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n#################### SECURITY CAM (0-10) ##################\n "); + for(j=0; j<11; j++) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",j); + for(entry_i=0;entry_i=0) + { + ulStatus = read_nic_dword(dev, RWCAM); + if(ulStatus & BIT31){ + continue; + } + else{ + break; + } + } + write_nic_dword(dev, RWCAM, target_command); + target_content = read_nic_dword(dev, RCAMO); + len += snprintf(page + len, count - len,"%8.8x ",target_content); + } + } + + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} + +static int proc_get_cam_register_2(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + u32 target_command=0; + u32 target_content=0; + u8 entry_i=0; + u32 ulStatus; + int len = 0; + int i=100, j = 0; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n#################### SECURITY CAM (11-21) ##################\n "); + for(j=11; j<22; j++) + { + len += snprintf(page + len, count - len, "\nD: %2x > ",j); + for(entry_i=0;entry_i=0) + { + ulStatus = read_nic_dword(dev, RWCAM); + if(ulStatus & BIT31){ + continue; + } + else{ + break; + } + } + write_nic_dword(dev, RWCAM, target_command); + target_content = read_nic_dword(dev, RCAMO); + len += snprintf(page + len, count - len,"%8.8x ",target_content); + } + } + + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} + +static int proc_get_cam_register_3(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + u32 target_command=0; + u32 target_content=0; + u8 entry_i=0; + u32 ulStatus; + int len = 0; + int i=100, j = 0; + + /* This dump the current register page */ + len += snprintf(page + len, count - len, + "\n#################### SECURITY CAM (22-31) ##################\n "); + for(j=22; j ",j); + for(entry_i=0;entry_i=0) + { + ulStatus = read_nic_dword(dev, RWCAM); + if(ulStatus & BIT31){ + continue; + } + else{ + break; + } + } + write_nic_dword(dev, RWCAM, target_command); + target_content = read_nic_dword(dev, RCAMO); + len += snprintf(page + len, count - len,"%8.8x ",target_content); + } + } + + len += snprintf(page + len, count - len,"\n"); + *eof = 1; + return len; +} +static int proc_get_stats_tx(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + int len = 0; + + len += snprintf(page + len, count - len, + "TX VI priority ok int: %lu\n" + "TX VO priority ok int: %lu\n" + "TX BE priority ok int: %lu\n" + "TX BK priority ok int: %lu\n" + "TX MANAGE priority ok int: %lu\n" + "TX BEACON priority ok int: %lu\n" + "TX BEACON priority error int: %lu\n" + "TX CMDPKT priority ok int: %lu\n" + "TX queue stopped?: %d\n" + "TX fifo overflow: %lu\n" + "TX total data packets %lu\n" + "TX total data bytes :%lu\n", + priv->stats.txviokint, + priv->stats.txvookint, + priv->stats.txbeokint, + priv->stats.txbkokint, + priv->stats.txmanageokint, + priv->stats.txbeaconokint, + priv->stats.txbeaconerr, + priv->stats.txcmdpktokint, + netif_queue_stopped(dev), + priv->stats.txoverflow, + priv->rtllib->stats.tx_packets, + priv->rtllib->stats.tx_bytes + + + ); + + *eof = 1; + return len; +} + + + +static int proc_get_stats_rx(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + int len = 0; + + len += snprintf(page + len, count - len, + "RX packets: %lu\n" + "RX data crc err: %lu\n" + "RX mgmt crc err: %lu\n" + "RX desc err: %lu\n" + "RX rx overflow error: %lu\n", + priv->stats.rxint, + priv->stats.rxdatacrcerr, + priv->stats.rxmgmtcrcerr, + priv->stats.rxrdu, + priv->stats.rxoverflow); + + *eof = 1; + return len; +} + +void rtl8192_proc_module_init(void) +{ + RT_TRACE(COMP_INIT, "Initializing proc filesystem"); +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + rtl8192_proc=create_proc_entry(DRV_NAME, S_IFDIR, proc_net); +#else + rtl8192_proc=create_proc_entry(DRV_NAME, S_IFDIR, init_net.proc_net); +#endif +} + + +void rtl8192_proc_module_remove(void) +{ +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + remove_proc_entry(DRV_NAME, proc_net); +#else + remove_proc_entry(DRV_NAME, init_net.proc_net); +#endif +} + + +void rtl8192_proc_remove_one(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + printk("dev name %s\n",dev->name); + + if (priv->dir_dev) { + remove_proc_entry("stats-tx", priv->dir_dev); + remove_proc_entry("stats-rx", priv->dir_dev); + remove_proc_entry("stats-ap", priv->dir_dev); + remove_proc_entry("registers-0", priv->dir_dev); + remove_proc_entry("registers-1", priv->dir_dev); + remove_proc_entry("registers-2", priv->dir_dev); + remove_proc_entry("registers-3", priv->dir_dev); + remove_proc_entry("registers-4", priv->dir_dev); + remove_proc_entry("registers-5", priv->dir_dev); + remove_proc_entry("registers-6", priv->dir_dev); + remove_proc_entry("registers-7", priv->dir_dev); + remove_proc_entry("registers-8", priv->dir_dev); + remove_proc_entry("registers-9", priv->dir_dev); + remove_proc_entry("registers-a", priv->dir_dev); + remove_proc_entry("registers-b", priv->dir_dev); + remove_proc_entry("registers-c", priv->dir_dev); + remove_proc_entry("registers-d", priv->dir_dev); + remove_proc_entry("registers-e", priv->dir_dev); + remove_proc_entry("RF-A", priv->dir_dev); + remove_proc_entry("RF-B", priv->dir_dev); + remove_proc_entry("RF-C", priv->dir_dev); + remove_proc_entry("RF-D", priv->dir_dev); + remove_proc_entry("SEC-CAM-1", priv->dir_dev); + remove_proc_entry("SEC-CAM-2", priv->dir_dev); + remove_proc_entry("SEC-CAM-3", priv->dir_dev); +#ifdef _RTL8192_EXT_PATCH_ + remove_proc_entry("ra0", rtl8192_proc); +#else + remove_proc_entry("wlan0", rtl8192_proc); +#endif + priv->dir_dev = NULL; + } +} + + +void rtl8192_proc_init_one(struct net_device *dev) +{ + struct proc_dir_entry *e; + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + priv->dir_dev = create_proc_entry(dev->name, + S_IFDIR | S_IRUGO | S_IXUGO, + rtl8192_proc); + if (!priv->dir_dev) { + RT_TRACE(COMP_ERR, "Unable to initialize /proc/net/rtl8192/%s\n", + dev->name); + return; + } + e = create_proc_read_entry("stats-rx", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_stats_rx, dev); + + if (!e) { + RT_TRACE(COMP_ERR,"Unable to initialize " + "/proc/net/rtl8192/%s/stats-rx\n", + dev->name); + } + + + e = create_proc_read_entry("stats-tx", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_stats_tx, dev); + + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/stats-tx\n", + dev->name); + } + + e = create_proc_read_entry("stats-ap", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_stats_ap, dev); + + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/stats-ap\n", + dev->name); + } + + e = create_proc_read_entry("registers-0", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_0, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-0\n", + dev->name); + } + e = create_proc_read_entry("registers-1", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_1, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-1\n", + dev->name); + } + e = create_proc_read_entry("registers-2", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_2, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-2\n", + dev->name); + } + e = create_proc_read_entry("registers-3", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_3, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-3\n", + dev->name); + } + e = create_proc_read_entry("registers-4", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_4, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-4\n", + dev->name); + } + e = create_proc_read_entry("registers-5", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_5, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-5\n", + dev->name); + } + e = create_proc_read_entry("registers-6", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_6, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-6\n", + dev->name); + } + e = create_proc_read_entry("registers-7", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_7, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-7\n", + dev->name); + } + e = create_proc_read_entry("registers-8", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_8, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-8\n", + dev->name); + } + e = create_proc_read_entry("registers-9", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_9, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-9\n", + dev->name); + } + e = create_proc_read_entry("registers-a", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_a, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-a\n", + dev->name); + } + e = create_proc_read_entry("registers-b", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_b, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-b\n", + dev->name); + } + e = create_proc_read_entry("registers-c", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_c, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-c\n", + dev->name); + } + e = create_proc_read_entry("registers-d", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_d, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-d\n", + dev->name); + } + e = create_proc_read_entry("registers-e", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_registers_e, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/registers-e\n", + dev->name); + } + e = create_proc_read_entry("RF-A", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_reg_rf_a, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/RF-A\n", + dev->name); + } + e = create_proc_read_entry("RF-B", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_reg_rf_b, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/RF-B\n", + dev->name); + } + e = create_proc_read_entry("RF-C", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_reg_rf_c, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/RF-C\n", + dev->name); + } + e = create_proc_read_entry("RF-D", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_reg_rf_d, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/RF-D\n", + dev->name); + } + e = create_proc_read_entry("SEC-CAM-1", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_cam_register_1, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/SEC-CAM-1\n", + dev->name); + } + e = create_proc_read_entry("SEC-CAM-2", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_cam_register_2, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/SEC-CAM-2\n", + dev->name); + } + e = create_proc_read_entry("SEC-CAM-3", S_IFREG | S_IRUGO, + priv->dir_dev, proc_get_cam_register_3, dev); + if (!e) { + RT_TRACE(COMP_ERR, "Unable to initialize " + "/proc/net/rtl8192/%s/SEC-CAM-3\n", + dev->name); + } +#ifdef _RTL8192_EXT_PATCH_ + if( priv->mshobj && priv->mshobj->ext_patch_create_proc ) + priv->mshobj->ext_patch_create_proc(priv); +#endif + +} + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_pci.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl_pci.h @@ -0,0 +1,106 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + ******************************************************************************/ +#ifndef _RTL_PCI_H +#define _RTL_PCI_H + +#include +#include +#include "rtllib/rtllib.h" + +static inline void NdisRawWritePortUlong(u32 port, u32 val) +{ + outl(val, port); +} + +static inline void NdisRawWritePortUchar(u32 port, u8 val) +{ + outb(val, port); +} + +static inline void NdisRawReadPortUchar(u32 port, u8 *pval) +{ + *pval = inb(port); +} + +static inline void NdisRawReadPortUshort(u32 port, u16 *pval) +{ + *pval = inw(port); +} + +static inline void NdisRawReadPortUlong(u32 port, u32 *pval) +{ + *pval = inl(port); +} + +typedef struct _mp_adapter{ + u8 LinkCtrlReg; + + u8 BusNumber; + u8 DevNumber; + u8 FuncNumber; + + u8 PciBridgeBusNum; + u8 PciBridgeDevNum; + u8 PciBridgeFuncNum; + u8 PciBridgeVendor; + u16 PciBridgeVendorId; + u16 PciBridgeDeviceId; + u8 PciBridgePCIeHdrOffset; + u8 PciBridgeLinkCtrlReg; + + bool AMDL1PATCH; +}mp_adapter,*pmp_adapter; + +typedef struct _RT_PCI_CAPABILITIES_HEADER { + unsigned char CapabilityID; + unsigned char Next; +} RT_PCI_CAPABILITIES_HEADER, *PRT_PCI_CAPABILITIES_HEADER; + +#define PCI_MAX_BRIDGE_NUMBER 255 +#define PCI_MAX_DEVICES 32 +#define PCI_MAX_FUNCTION 8 + +#define PCI_CONF_ADDRESS 0x0CF8 +#define PCI_CONF_DATA 0x0CFC + +#define PCI_CLASS_BRIDGE_DEV 0x06 +#define PCI_SUBCLASS_BR_PCI_TO_PCI 0x04 + +#define U1DONTCARE 0xFF +#define U2DONTCARE 0xFFFF +#define U4DONTCARE 0xFFFFFFFF + +#define INTEL_VENDOR_ID 0x8086 +#define SIS_VENDOR_ID 0x1039 +#define ATI_VENDOR_ID 0x1002 +#define ATI_DEVICE_ID 0x7914 +#define AMD_VENDOR_ID 0x1022 + +#define PCI_CAPABILITY_ID_PCI_EXPRESS 0x10 + +struct net_device; +bool rtl8192_pci_findadapter(struct pci_dev *pdev, struct net_device *dev); + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_eeprom.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl_eeprom.h @@ -0,0 +1,48 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + + +#define EPROM_DELAY 10 +#if 0 +#define EPROM_ANAPARAM_ADDRLWORD 0xd +#define EPROM_ANAPARAM_ADDRHWORD 0xe + +#define EPROM_RFCHIPID 0x6 +#define EPROM_TXPW_BASE 0x05 +#define EPROM_RFCHIPID_RTL8225U 5 +#define EPROM_RF_PARAM 0x4 +#define EPROM_CONFIG2 0xc + +#define EPROM_VERSION 0x1E +#define MAC_ADR 0x7 + +#define CIS 0x18 + +#define EPROM_TXPW0 0x16 +#define EPROM_TXPW2 0x1b +#define EPROM_TXPW1 0x3d +#endif + +u32 eprom_read(struct net_device *dev,u32 addr); --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_mesh.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_mesh.c @@ -0,0 +1,375 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifdef _RTL8192_EXT_PATCH_ + +#include +#include + +#include "rtl_wx.h" +#include "rtl_core.h" +#include "../../mshclass/msh_class.h" + +int meshdev_up(struct net_device *meshdev,bool is_silent_reset) +{ + struct meshdev_priv * mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(mpriv->priv->rtllib->PowerSaveControl)); + bool init_status; + struct net_device *dev = ieee->dev; + RT_TRACE(COMP_DOWN, "==========>%s()\n", __FUNCTION__); + + mpriv->priv->up_first_time = 0; + mpriv->rtllib->iw_mode = IW_MODE_MESH; + if(mpriv->priv->mesh_up){ + RT_TRACE(COMP_INIT,"%s():mesh is up,return\n",__FUNCTION__); + return -1; + } +#ifdef RTL8192SE + mpriv->priv->ReceiveConfig = + RCR_APPFCS | RCR_APWRMGT | /*RCR_ADD3 |*/ + RCR_AMF | RCR_ADF | RCR_APP_MIC | RCR_APP_ICV | + RCR_AICV | RCR_ACRC32 | + RCR_AB | RCR_AM | + RCR_APM | + /*RCR_AAP |*/ + RCR_APP_PHYST_STAFF | RCR_APP_PHYST_RXFF | + (mpriv->priv->EarlyRxThreshold<priv->ReceiveConfig = (\ + RCR_APPFCS + | RCR_AMF | RCR_ADF| RCR_APP_MIC| RCR_APP_ICV + | RCR_AICV | RCR_ACRC32 + | RCR_AB | RCR_AM + | RCR_APM + | RCR_APP_PHYST_RXFF + | RCR_HTC_LOC_CTRL + ); +#else + mpriv->priv->ReceiveConfig = RCR_ADD3 | + RCR_AMF | RCR_ADF | + RCR_AICV | + RCR_AB | RCR_AM | RCR_APM | + RCR_AAP | ((u32)7<priv->up) { + RT_TRACE(COMP_INIT, "Bringing up iface"); + mpriv->priv->bfirst_init = true; + init_status = mpriv->priv->ops->initialize_adapter(dev); + if(init_status != true) { + RT_TRACE(COMP_ERR,"ERR!!! %s(): initialization is failed!\n",__FUNCTION__); + return -1; + } + RT_TRACE(COMP_INIT, "start adapter finished\n"); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC); + printk("==>%s():priv->up is 0\n",__FUNCTION__); + mpriv->rtllib->ieee_up=1; + mpriv->priv->bfirst_init = false; +#ifdef ENABLE_GPIO_RADIO_CTL + if(mpriv->priv->polling_timer_on == 0){ + check_rfctrl_gpio_timer((unsigned long)dev); + } +#endif + if(!is_silent_reset){ + mpriv->rtllib->current_network.channel = INIT_DEFAULT_CHAN; + mpriv->rtllib->current_mesh_network.channel = INIT_DEFAULT_CHAN; + if(mpriv->priv->mshobj->ext_patch_r819x_wx_set_mesh_chan) + mpriv->priv->mshobj->ext_patch_r819x_wx_set_mesh_chan(dev,INIT_DEFAULT_CHAN); + if(mpriv->priv->mshobj->ext_patch_r819x_wx_set_channel) + { + mpriv->priv->mshobj->ext_patch_r819x_wx_set_channel(mpriv->rtllib, INIT_DEFAULT_CHAN); + } + printk("%s():set chan %d\n",__FUNCTION__,INIT_DEFAULT_CHAN); + mpriv->rtllib->set_chan(dev, INIT_DEFAULT_CHAN); + } + dm_InitRateAdaptiveMask(dev); + watch_dog_timer_callback((unsigned long) dev); + + } else { + rtllib_stop_scan(ieee); + msleep(1000); + } + if(!ieee->mesh_started) { +#ifdef RTL8192E + if(ieee->eRFPowerState!=eRfOn) + MgntActSet_RF_State(dev, eRfOn, ieee->RfOffReason,true); +#endif + if(mpriv->priv->mshobj && mpriv->priv->mshobj->ext_patch_rtl819x_up ) + mpriv->priv->mshobj->ext_patch_rtl819x_up(mpriv->priv->mshobj); + + + if(!netif_queue_stopped(meshdev)) + netif_start_queue(meshdev); + else + netif_wake_queue(meshdev); + + rtllib_reset_queue(ieee); + } + + mpriv->priv->mesh_up = 1; + + RT_TRACE(COMP_DOWN, "<==========%s()\n", __FUNCTION__); + return 0; +} + +int meshdev_down(struct net_device *meshdev) +{ + struct meshdev_priv * mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct r8192_priv *priv = (void*)ieee->priv; + struct net_device *dev = ieee->dev; + unsigned long flags = 0; + u8 RFInProgressTimeOut = 0; + if(priv->mesh_up == 0) { + RT_TRACE(COMP_ERR,"%s():ERR!!! mesh is already down\n",__FUNCTION__) + return -1; + } + + RT_TRACE(COMP_DOWN, "==========>%s()\n", __FUNCTION__); + + if (netif_running(meshdev)) { + netif_stop_queue(meshdev); + } + + if(!priv->up) + { + priv->bDriverIsGoingToUnload = true; + ieee->ieee_up = 0; + rtl8192_irq_disable(dev); + rtl8192_cancel_deferred_work(priv); +#ifndef RTL8190P + cancel_delayed_work(&priv->rtllib->hw_wakeup_wq); +#endif + deinit_hal_dm(dev); + del_timer_sync(&priv->watch_dog_timer); + rtllib_softmac_stop_protocol(ieee, 1, true); + + SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock); + while(priv->RFChangeInProgress) + { + SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock); + if(RFInProgressTimeOut > 100) + { + SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock); + break; + } + printk("===>%s():RF is in progress, need to wait until rf chang is done.\n",__FUNCTION__); + mdelay(1); + RFInProgressTimeOut ++; + SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock); + } + priv->RFChangeInProgress = true; + SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock); + priv->ops->stop_adapter(dev, false); + SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock); + priv->RFChangeInProgress = false; + SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock); + udelay(100); + memset(&priv->rtllib->current_network, 0 , offsetof(struct rtllib_network, list)); + priv->rtllib->current_network.channel = INIT_DEFAULT_CHAN; +#ifdef CONFIG_ASPM_OR_D3 + RT_ENABLE_ASPM(dev); +#endif + memset(&ieee->current_mesh_network, 0 , offsetof(struct rtllib_network, list)); + priv->rtllib->current_mesh_network.channel = INIT_DEFAULT_CHAN; + ieee->mesh_state = RTLLIB_NOLINK; + } else { + rtllib_softmac_stop_protocol(ieee, 1, true); + memset(&ieee->current_mesh_network, 0 , offsetof(struct rtllib_network, list)); + if((ieee->current_network.channel > 0) && (ieee->current_network.channel < 15)) + priv->rtllib->current_mesh_network.channel = ieee->current_network.channel; + else + priv->rtllib->current_mesh_network.channel = INIT_DEFAULT_CHAN; + + ieee->mesh_state = RTLLIB_NOLINK; + ieee->iw_mode = IW_MODE_INFRA; + } + priv->mesh_up = 0; + RT_TRACE(COMP_DOWN, "<==========%s()\n", __FUNCTION__); + + return 0; +} + +static int meshdev_open(struct net_device *meshdev) +{ + struct meshdev_priv * mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct r8192_priv *priv = (void*)ieee->priv; + int ret; + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + ret = meshdev_up(meshdev,false); + SEM_UP_PRIV_WX(&priv->wx_sem); + + return ret; +} + +static int meshdev_close(struct net_device *meshdev) +{ + struct meshdev_priv * mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device *ieee = mpriv->rtllib; + struct r8192_priv *priv = (void *)ieee->priv; + int ret; + + SEM_DOWN_PRIV_WX(&priv->wx_sem); + ret = meshdev_down(meshdev); + SEM_UP_PRIV_WX(&priv->wx_sem); + + return ret; +} + +extern int meshdev_wx_mesh(struct net_device *meshdev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); +static int meshdev_ioctl(struct net_device *meshdev, struct ifreq *rq, int cmd) +{ + struct iwreq *wrq = (struct iwreq *)rq; + int ret = -1; + if(cmd == 0x8BEE) + { + ret = meshdev_wx_mesh(meshdev, NULL, &(wrq->u), wrq->u.data.pointer); + } + return ret; +} + +struct net_device_stats *meshdev_stats(struct net_device *meshdev) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + return &((struct meshdev_priv*)netdev_priv(meshdev))->stats; +#else + return &((struct meshdev_priv*)meshdev->priv)->stats; +#endif +} + +static int meshdev_tx(struct sk_buff *skb, struct net_device *meshdev) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device * ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + memset(skb->cb,0,sizeof(skb->cb)); + + return rtllib_mesh_xmit(skb, dev); +} + +static void meshdev_tx_timeout(struct net_device *meshdev) +{ + struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + struct rtllib_device * ieee = mpriv->rtllib; + struct net_device *dev = ieee->dev; + + rtl8192_tx_timeout(dev); +} + +#ifdef HAVE_NET_DEVICE_OPS +static const struct net_device_ops mesh_netdev_ops = { + .ndo_open = meshdev_open, + .ndo_stop = meshdev_close, + .ndo_get_stats = meshdev_stats, + .ndo_tx_timeout = meshdev_tx_timeout, + .ndo_do_ioctl = meshdev_ioctl, + .ndo_start_xmit = meshdev_tx, +}; +#endif + +void meshdev_init(struct net_device* meshdev) +{ + struct meshdev_priv *mpriv; + ether_setup(meshdev); + +#ifdef HAVE_NET_DEVICE_OPS + meshdev->netdev_ops = &mesh_netdev_ops; +#else + meshdev->open = meshdev_open; + meshdev->stop = meshdev_close; + meshdev->tx_timeout = meshdev_tx_timeout; + meshdev->do_ioctl = meshdev_ioctl; + meshdev->get_stats = meshdev_stats; + meshdev->hard_start_xmit = meshdev_tx; +#endif + meshdev->wireless_handlers = &meshdev_wx_handlers_def; + meshdev->destructor = free_netdev; + meshdev->watchdog_timeo = HZ*3; + meshdev->type = ARPHRD_ETHER; + memset(meshdev->broadcast,0xFF, ETH_ALEN); + + meshdev->watchdog_timeo = 3 * HZ; + + mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev); + memset(mpriv, 0, sizeof(struct meshdev_priv)); + + return; +} + +int meshdev_update_ext_chnl_offset_as_client(void *data) +{ + struct rtllib_device *ieee = container_of_work_rsl(data, struct rtllib_device, + ext_update_extchnloffset_wq); + struct r8192_priv *priv = (void *)ieee->priv; + struct net_device *dev = ieee->dev; + struct mshclass *mshobj= priv->mshobj; + u8 updateBW = 0; + u8 bserverHT = 0; + + updateBW=mshobj->ext_patch_r819x_wx_update_beacon(dev,&bserverHT); + printk("%s(): Cur_network.chan=%d, cur_mesh_net.chan=%d, updateBW=%d, bserverHT=%d\n", + __FUNCTION__,ieee->current_network.channel,ieee->current_mesh_network.channel,updateBW, bserverHT); + if (updateBW == 1) { + if (bserverHT == 0) { + printk("===>server is not HT supported,set 20M\n"); + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT); + } else { + printk("===>updateBW is 1,bCurBW40MHz is %d,ieee->serverExtChlOffset is %d\n", + ieee->pHTInfo->bCurBW40MHz,ieee->serverExtChlOffset); + if (ieee->pHTInfo->bCurBW40MHz) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, ieee->serverExtChlOffset); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, ieee->serverExtChlOffset); + } + } else { + printk("===>there is no same hostname server, ERR!!!\n"); + return -1; + } + return 0; +} + +int meshdev_start_mesh_protocol_wq(void *data) +{ + struct rtllib_device *ieee = container_of_work_rsl(data, struct rtllib_device, + ext_start_mesh_protocol_wq); + + ieee->set_chan(ieee->dev, ieee->current_mesh_network.channel); + if(ieee->pHTInfo->bCurBW40MHz) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + + rtllib_start_mesh_protocol(ieee); + + return 0; +} +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_ps.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl_ps.h @@ -0,0 +1,67 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + ******************************************************************************/ +#ifndef _RTL_PS_H +#define _RTL_PS_H + +#include +#include "rtllib/rtllib.h" +struct net_device; + +#define RT_CHECK_FOR_HANG_PERIOD 2 +#define INIT_DEFAULT_CHAN 1 + +#if defined CONFIG_ASPM_OR_D3 +#define RT_DISABLE_ASPM(dev) PlatformDisableASPM(dev) +#define RT_ENABLE_ASPM(dev) PlatformEnableASPM(dev) +#define RT_ENTER_D3(dev, _bTempSetting) PlatformSetPMCSR(dev, 0x03, _bTempSetting) +#define RT_LEAVE_D3(dev, _bTempSetting) PlatformSetPMCSR(dev, 0, _bTempSetting) + +#define RT_DISABLE_HOST_L0S(_PADAPTER) PlatformDisableHostL0s(dev) + +void PlatformDisableHostL0s(struct net_device *dev); +bool PlatformEnable92CEBackDoor(struct net_device *dev); +void PlatformDisableASPM(struct net_device *dev); +void PlatformEnableASPM(struct net_device *dev); +u32 PlatformResetPciSpace(struct net_device *dev,u8 Value); +#endif + +#if defined(RTL8192E) || defined(RTL8192SE) || defined RTL8192CE +void rtl8192_hw_wakeup(struct net_device *dev); +void rtl8192_hw_to_sleep(struct net_device *dev, u32 th, u32 tl); +void rtllib_ips_leave_wq(struct net_device *dev); +void rtllib_ips_leave(struct net_device *dev); +void IPSLeave_wq (void *data); +#endif + +#ifdef ENABLE_IPS +void IPSEnter(struct net_device *dev); +void IPSLeave(struct net_device *dev); +#endif + +#ifdef ENABLE_LPS +void LeisurePSEnter(struct net_device *dev); +void LeisurePSLeave(struct net_device *dev); +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_cam.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_cam.c @@ -0,0 +1,562 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#include "rtl_core.h" + +extern int hwwep; +void CamResetAllEntry(struct net_device *dev) +{ + u32 ulcommand = 0; + + ulcommand |= BIT31|BIT30; + write_nic_dword(dev, RWCAM, ulcommand); +} + +#ifdef _RTL8192_EXT_PATCH_ +void CamDeleteOneEntry(struct net_device *dev, u8 EntryNo) +{ + u32 ulCommand = EntryNo * CAM_CONTENT_COUNT; + u32 ulContent = 0; + + ulCommand = ulCommand | BIT31 | BIT16; + + write_nic_dword(dev,WCAMI,ulContent); + write_nic_dword(dev,RWCAM,ulCommand); +} + +void CamRestoreEachIFEntry(struct net_device* dev,u8 is_mesh) +{ + u32 i; + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + for( i = 0 ; i< TOTAL_CAM_ENTRY; i++) { + + if (is_mesh) { + if(ieee->swmeshcamtable[i].bused ) + { + setKey(dev, + i, + ieee->swmeshcamtable[i].key_index, + ieee->swmeshcamtable[i].key_type, + ieee->swmeshcamtable[i].macaddr, + ieee->swmeshcamtable[i].useDK, + (u32*)(&ieee->swmeshcamtable[i].key_buf[0]) + ); + } + } else { + if(ieee->swcamtable[i].bused ) + { + setKey(dev, + i, + ieee->swcamtable[i].key_index, + ieee->swcamtable[i].key_type, + ieee->swcamtable[i].macaddr, + ieee->swcamtable[i].useDK, + (u32*)(&ieee->swcamtable[i].key_buf[0])); + } + } + } +} +#endif + +void write_cam(struct net_device *dev, u8 addr, u32 data) +{ + write_nic_dword(dev, WCAMI, data); + write_nic_dword(dev, RWCAM, BIT31|BIT16|(addr&0xff) ); +} + +u32 read_cam(struct net_device *dev, u8 addr) +{ + write_nic_dword(dev, RWCAM, 0x80000000|(addr&0xff) ); + return read_nic_dword(dev, 0xa8); +} + +void EnableHWSecurityConfig8192(struct net_device *dev) +{ + u8 SECR_value = 0x0; + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + SECR_value = SCR_TxEncEnable | SCR_RxDecEnable; +#ifdef _RTL8192_EXT_PATCH_ + if ((((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || (KEY_TYPE_WEP104 == ieee->pairwise_key_type)) && (priv->rtllib->auth_mode != 2)) + &&(ieee->iw_mode != IW_MODE_MESH)) +#else + if (((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || (KEY_TYPE_WEP104 == ieee->pairwise_key_type)) && (priv->rtllib->auth_mode != 2)) +#endif + { + SECR_value |= SCR_RxUseDK; + SECR_value |= SCR_TxUseDK; + } + else if ((ieee->iw_mode == IW_MODE_ADHOC) && (ieee->pairwise_key_type & (KEY_TYPE_CCMP | KEY_TYPE_TKIP))) + { + SECR_value |= SCR_RxUseDK; + SECR_value |= SCR_TxUseDK; + } + + + ieee->hwsec_active = 1; +#ifdef _RTL8192_EXT_PATCH_ + if ((ieee->pHTInfo->IOTAction&HT_IOT_ACT_PURE_N_MODE) || !hwwep ) + { + ieee->hwsec_active = 0; + SECR_value &= ~SCR_RxDecEnable; + SECR_value &= ~SCR_TxUseDK; + SECR_value &= ~SCR_RxUseDK; + SECR_value &= ~SCR_TxEncEnable; + } +#else + if ((ieee->pHTInfo->IOTAction&HT_IOT_ACT_PURE_N_MODE) || !hwwep) + { + ieee->hwsec_active = 0; + SECR_value &= ~SCR_RxDecEnable; + } +#endif + +#ifdef RTL8192CE + if(IS_NORMAL_CHIP(priv->card_8192_version)) + SECR_value |= (SCR_RXBCUSEDK | SCR_TXBCUSEDK); + + write_nic_byte(dev, REG_CR+1,0x02); + + RT_TRACE(COMP_SEC,"The SECR-value %x \n",SECR_value) + priv->rtllib->SetHwRegHandler(dev, HW_VAR_WPA_CONFIG, &SECR_value); +#else + RT_TRACE(COMP_SEC,"%s:, hwsec:%d, pairwise_key:%d, SECR_value:%x\n", __FUNCTION__, \ + ieee->hwsec_active, ieee->pairwise_key_type, SECR_value); + { + write_nic_byte(dev, SECR, SECR_value); + } +#endif +} + +void set_swcam(struct net_device *dev, + u8 EntryNo, + u8 KeyIndex, + u16 KeyType, + u8 *MacAddr, + u8 DefaultKey, + u32 *KeyContent, + u8 is_mesh) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + printk("===========>%s():EntryNo is %d,KeyIndex is %d,KeyType is %d,is_mesh is %d\n",__FUNCTION__,EntryNo,KeyIndex,KeyType,is_mesh); + if(is_mesh){ +#ifdef _RTL8192_EXT_PATCH_ + ieee->swmeshcamtable[EntryNo].bused=true; + ieee->swmeshcamtable[EntryNo].key_index=KeyIndex; + ieee->swmeshcamtable[EntryNo].key_type=KeyType; + memcpy(ieee->swmeshcamtable[EntryNo].macaddr,MacAddr,6); + ieee->swmeshcamtable[EntryNo].useDK=DefaultKey; + memcpy(ieee->swmeshcamtable[EntryNo].key_buf,(u8*)KeyContent,16); +#endif + } + else + { + ieee->swcamtable[EntryNo].bused=true; + ieee->swcamtable[EntryNo].key_index=KeyIndex; + ieee->swcamtable[EntryNo].key_type=KeyType; + memcpy(ieee->swcamtable[EntryNo].macaddr,MacAddr,6); + ieee->swcamtable[EntryNo].useDK=DefaultKey; + memcpy(ieee->swcamtable[EntryNo].key_buf,(u8*)KeyContent,16); + } +} +#ifdef _RTL8192_EXT_PATCH_ +void reset_IFswcam(struct net_device *dev, u8 is_mesh) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + if(is_mesh){ + memset(ieee->swmeshcamtable,0,sizeof(SW_CAM_TABLE)*32); + } + else{ + memset(ieee->swcamtable,0,sizeof(SW_CAM_TABLE)*32); + } +} +#endif +void setKey(struct net_device *dev, + u8 EntryNo, + u8 KeyIndex, + u16 KeyType, + u8 *MacAddr, + u8 DefaultKey, + u32 *KeyContent ) +{ + u32 TargetCommand = 0; + u32 TargetContent = 0; + u16 usConfig = 0; + u8 i; +#ifdef ENABLE_IPS + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + RT_RF_POWER_STATE rtState; + rtState = priv->rtllib->eRFPowerState; + if(priv->rtllib->PowerSaveControl.bInactivePs){ + if(rtState == eRfOff){ + if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS) + { + RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__); + return ; + } + else{ + down(&priv->rtllib->ips_sem); + IPSLeave(dev); + up(&priv->rtllib->ips_sem); } + } + } + priv->rtllib->is_set_key = true; +#endif + if (EntryNo >= TOTAL_CAM_ENTRY) + RT_TRACE(COMP_ERR, "cam entry exceeds in setKey()\n"); + + RT_TRACE(COMP_SEC, "====>to setKey(), dev:%p, EntryNo:%d, KeyIndex:%d, KeyType:%d, MacAddr"MAC_FMT"\n", dev,EntryNo, KeyIndex, KeyType, MAC_ARG(MacAddr)); + + if (DefaultKey) + usConfig |= BIT15 | (KeyType<<2); + else + usConfig |= BIT15 | (KeyType<<2) | KeyIndex; + + + for(i=0 ; i= KERNEL_VERSION(2,6,31)) + udelay(100); +#endif + } + } + } + RT_TRACE(COMP_SEC,"=========>after set key, usconfig:%x\n", usConfig); +} +#if 0 +void CamPrintDbgReg(struct net_device* dev) +{ + unsigned long rvalue; + unsigned char ucValue; + write_nic_dword(dev, DCAM, 0x80000000); + msleep(40); + rvalue = read_nic_dword(dev, DCAM); + RT_TRACE(COMP_SEC, " TX CAM=%8lX ",rvalue); + if((rvalue & 0x40000000) != 0x4000000) + RT_TRACE(COMP_SEC, "-->TX Key Not Found "); + msleep(20); + write_nic_dword(dev, DCAM, 0x00000000); + rvalue = read_nic_dword(dev, DCAM); + RT_TRACE(COMP_SEC, "RX CAM=%8lX ",rvalue); + if((rvalue & 0x40000000) != 0x4000000) + RT_TRACE(COMP_SEC, "-->CAM Key Not Found "); + ucValue = read_nic_byte(dev, SECR); + RT_TRACE(COMP_SEC, "WPA_Config=%x \n",ucValue); +} +#endif +void CAM_read_entry(struct net_device *dev, u32 iIndex) +{ + u32 target_command=0; + u32 target_content=0; + u8 entry_i=0; + u32 ulStatus; + s32 i=100; + for(entry_i=0;entry_i=0) + { + ulStatus = read_nic_dword(dev, RWCAM); + if(ulStatus & BIT31){ + continue; + } + else{ + break; + } + } +#endif + write_nic_dword(dev, RWCAM, target_command); + RT_TRACE(COMP_SEC,"CAM_read_entry(): WRITE A0: %x \n",target_command); + target_content = read_nic_dword(dev, RCAMO); + RT_TRACE(COMP_SEC, "CAM_read_entry(): WRITE A8: %x \n",target_content); + } + printk("\n"); +} + +void CamRestoreAllEntry( struct net_device *dev) +{ + u8 EntryId = 0; + struct r8192_priv *priv = rtllib_priv(dev); + u8* MacAddr = priv->rtllib->current_network.bssid; + + static u8 CAM_CONST_ADDR[4][6] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x03}}; + static u8 CAM_CONST_BROAD[] = + {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + + RT_TRACE(COMP_SEC, "CamRestoreAllEntry: \n"); + + + if ((priv->rtllib->pairwise_key_type == KEY_TYPE_WEP40)|| + (priv->rtllib->pairwise_key_type == KEY_TYPE_WEP104)) + { + + for(EntryId=0; EntryId<4; EntryId++) + { + { + MacAddr = CAM_CONST_ADDR[EntryId]; + if(priv->rtllib->swcamtable[EntryId].bused ) + { + setKey(dev, + EntryId , + EntryId, + priv->rtllib->pairwise_key_type, + MacAddr, + 0, + (u32*)(&priv->rtllib->swcamtable[EntryId].key_buf[0]) + ); + } + } + } + + } + else if(priv->rtllib->pairwise_key_type == KEY_TYPE_TKIP) + { + + { + if(priv->rtllib->iw_mode == IW_MODE_ADHOC) + { + setKey(dev, + 4, + 0, + priv->rtllib->pairwise_key_type, + (u8*)dev->dev_addr, + 0, + (u32*)(&priv->rtllib->swcamtable[4].key_buf[0]) + ); + } + else + { + setKey(dev, + 4, + 0, + priv->rtllib->pairwise_key_type, + MacAddr, + 0, + (u32*)(&priv->rtllib->swcamtable[4].key_buf[0]) + ); + } + + } + } + else if(priv->rtllib->pairwise_key_type == KEY_TYPE_CCMP) + { + + { + if(priv->rtllib->iw_mode == IW_MODE_ADHOC) + { + setKey(dev, + 4, + 0, + priv->rtllib->pairwise_key_type, + (u8*)dev->dev_addr, + 0, + (u32*)(&priv->rtllib->swcamtable[4].key_buf[0]) + ); + } + else + { + setKey(dev, + 4, + 0, + priv->rtllib->pairwise_key_type, + MacAddr, + 0, + (u32*)(&priv->rtllib->swcamtable[4].key_buf[0]) + ); + } + } + } + + + + if(priv->rtllib->group_key_type == KEY_TYPE_TKIP) + { + MacAddr = CAM_CONST_BROAD; + for(EntryId=1 ; EntryId<4 ; EntryId++) + { + if(priv->rtllib->swcamtable[EntryId].bused ) + { + setKey(dev, + EntryId, + EntryId, + priv->rtllib->group_key_type, + MacAddr, + 0, + (u32*)(&priv->rtllib->swcamtable[EntryId].key_buf[0]) + ); + } + } + if(priv->rtllib->iw_mode == IW_MODE_ADHOC) + { + if(priv->rtllib->swcamtable[0].bused ){ + setKey(dev, + 0, + 0, + priv->rtllib->group_key_type, + CAM_CONST_ADDR[0], + 0, + (u32*)(&priv->rtllib->swcamtable[0].key_buf[0]) + ); + } + else + { + RT_TRACE(COMP_ERR,"===>%s():ERR!! ADHOC TKIP ,but 0 entry is have no data\n",__FUNCTION__); + return; + } + } + } else if(priv->rtllib->group_key_type == KEY_TYPE_CCMP) { + MacAddr = CAM_CONST_BROAD; + for(EntryId=1; EntryId<4 ; EntryId++) + { + if(priv->rtllib->swcamtable[EntryId].bused ) + { + setKey(dev, + EntryId , + EntryId, + priv->rtllib->group_key_type, + MacAddr, + 0, + (u32*)(&priv->rtllib->swcamtable[EntryId].key_buf[0])); + } + } + + if (priv->rtllib->iw_mode == IW_MODE_ADHOC) { + if (priv->rtllib->swcamtable[0].bused) { + setKey(dev, + 0 , + 0, + priv->rtllib->group_key_type, + CAM_CONST_ADDR[0], + 0, + (u32*)(&priv->rtllib->swcamtable[0].key_buf[0])); + } else { + RT_TRACE(COMP_ERR,"===>%s():ERR!! ADHOC CCMP ,but 0 entry is have no data\n", + __FUNCTION__); + return; + } + } + } +} + + +#ifdef _RTL8192_EXT_PATCH_ +u8 rtl8192_get_free_hwsec_cam_entry(struct rtllib_device *ieee, u8 *sta_addr) +{ + u32 bitmap = (ieee->HwSecCamBitMap)>>4; + u8 entry_idx = 0; + u8 i, *addr; + + if ((NULL == ieee) || (NULL == sta_addr)) { + printk("%s: ieee or sta_addr is NULL.\n", __FUNCTION__); + return TOTAL_CAM_ENTRY; + } + + /* Does STA already exist? */ + /* CAM Index 31 is for AP */ + for (i = 4; i < TOTAL_CAM_ENTRY-1; i++) { + addr = ieee->HwSecCamStaAddr[i]; + if(memcmp(addr, sta_addr, ETH_ALEN) == 0) + return i; + } + + /* Get a free CAM entry. */ + for (entry_idx = 4; entry_idx < TOTAL_CAM_ENTRY - 1; entry_idx++) { + if ((bitmap & BIT0) == 0) { + ieee->HwSecCamBitMap |= BIT0<HwSecCamStaAddr[entry_idx], sta_addr, ETH_ALEN); + return entry_idx; + } + bitmap = bitmap >>1; + } + + return TOTAL_CAM_ENTRY; +} + +void rtl8192_del_hwsec_cam_entry(struct rtllib_device *ieee, u8 *sta_addr) +{ + u32 bitmap; + u8 i, *addr; + + if ((NULL == ieee) || (NULL == sta_addr)) { + printk("%s: ieee or sta_addr is NULL.\n", __FUNCTION__); + return; + } + + if ((sta_addr[0]|sta_addr[1]|sta_addr[2]|sta_addr[3]|\ + sta_addr[4]|sta_addr[5]) == 0) { + printk("%s: sta_addr is 00:00:00:00:00:00.\n", __FUNCTION__); + return; + } + + /* Does STA already exist? */ + for (i = 4; i < TOTAL_CAM_ENTRY; i++) { + addr = ieee->HwSecCamStaAddr[i]; + bitmap = (ieee->HwSecCamBitMap)>>i; + if (((bitmap & BIT0) == BIT0) && (memcmp(addr, sta_addr, ETH_ALEN) == 0)) { + /* Remove from HW Security CAM */ + CamDeleteOneEntry(ieee->dev, i); + memset(ieee->HwSecCamStaAddr[i], 0, ETH_ALEN); + ieee->HwSecCamBitMap &= ~(BIT0<swmeshcamtable[i]), 0, sizeof(SW_CAM_TABLE)); + RT_TRACE(COMP_SEC, "====>del sw entry, EntryNo:%d, MacAddr:"MAC_FMT"\n", + i, MAC_ARG(sta_addr)); + } + } + return; +} +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_debug.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl_debug.h @@ -0,0 +1,319 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef _RTL_DEBUG_H +#define _RTL_DEBUG_H +#include +#include +#include +#if(LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9)) +#include +#endif + +struct r8192_priv; +struct _tx_desc_8192se; +struct _TX_DESC_8192CE; +struct net_device; + +#define DBG_LOUD 4 + +#define RT_ASSERT(_Exp,Fmt) \ + if(!(_Exp)) \ + { \ + printk("Rtl819x: "); \ + printk Fmt; \ + } + +typedef enum tag_DBGP_Flag_Type_Definition +{ + FQoS = 0, + FTX = 1, + FRX = 2, + FSEC = 3, + FMGNT = 4, + FMLME = 5, + FRESOURCE = 6, + FBEACON = 7, + FISR = 8, + FPHY = 9, + FMP = 10, + FEEPROM = 11, + FPWR = 12, + FDM = 13, + FDBGCtrl = 14, + FC2H = 15, + FBT = 16, + FINIT = 17, + FIOCTL = 18, + DBGP_TYPE_MAX +}DBGP_FLAG_E; + +#define QoS_INIT BIT0 +#define QoS_VISTA BIT1 + +#define TX_DESC BIT0 +#define TX_DESC_TID BIT1 + +#define RX_DATA BIT0 +#define RX_PHY_STS BIT1 +#define RX_PHY_SS BIT2 +#define RX_PHY_SQ BIT3 +#define RX_PHY_ASTS BIT4 +#define RX_ERR_LEN BIT5 +#define RX_DEFRAG BIT6 +#define RX_ERR_RATE BIT7 + + + +#define MEDIA_STS BIT0 +#define LINK_STS BIT1 + +#define OS_CHK BIT0 + +#define BCN_SHOW BIT0 +#define BCN_PEER BIT1 + +#define ISR_CHK BIT0 + +#define PHY_BBR BIT0 +#define PHY_BBW BIT1 +#define PHY_RFR BIT2 +#define PHY_RFW BIT3 +#define PHY_MACR BIT4 +#define PHY_MACW BIT5 +#define PHY_ALLR BIT6 +#define PHY_ALLW BIT7 +#define PHY_TXPWR BIT8 +#define PHY_PWRDIFF BIT9 + +#define MP_RX BIT0 +#define MP_SWICH_CH BIT1 + +#define EEPROM_W BIT0 +#define EFUSE_PG BIT1 +#define EFUSE_READ_ALL BIT2 + +#define LPS BIT0 +#define IPS BIT1 +#define PWRSW BIT2 +#define PWRHW BIT3 +#define PWRHAL BIT4 + +#define WA_IOT BIT0 +#define DM_PWDB BIT1 +#define DM_Monitor BIT2 +#define DM_DIG BIT3 +#define DM_EDCA_Turbo BIT4 + +#define DbgCtrl_Trace BIT0 +#define DbgCtrl_InbandNoise BIT1 + +#define BT_TRACE BIT0 +#define BT_RFPoll BIT1 + +#define C2H_Summary BIT0 +#define C2H_PacketData BIT1 +#define C2H_ContentData BIT2 +#define BT_TRACE BIT0 +#define BT_RFPoll BIT1 + +#define INIT_EEPROM BIT0 +#define INIT_TxPower BIT1 +#define INIT_IQK BIT2 +#define INIT_RF BIT3 + +#define IOCTL_TRACE BIT0 +#define IOCTL_BT_EVENT BIT1 +#define IOCTL_BT_EVENT_DETAIL BIT2 +#define IOCTL_BT_TX_ACLDATA BIT3 +#define IOCTL_BT_TX_ACLDATA_DETAIL BIT4 +#define IOCTL_BT_RX_ACLDATA BIT5 +#define IOCTL_BT_RX_ACLDATA_DETAIL BIT6 +#define IOCTL_BT_HCICMD BIT7 +#define IOCTL_BT_HCICMD_DETAIL BIT8 +#define IOCTL_IRP BIT9 +#define IOCTL_IRP_DETAIL BIT10 +#define IOCTL_CALLBACK_FUN BIT11 +#define IOCTL_STATE BIT12 +#define IOCTL_BT_TP BIT13 +#define IOCTL_BT_LOGO BIT14 + +/* 2007/07/13 MH ------For DeBuG Print modeue------*/ +/*------------------------------Define structure----------------------------*/ + + +/*------------------------Export Marco Definition---------------------------*/ +#define DEBUG_PRINT 1 + +#if (DEBUG_PRINT == 1) +#define RTPRINT(dbgtype, dbgflag, printstr) \ +{ \ + if (DBGP_Type[dbgtype] & dbgflag)\ + { \ + printk printstr; \ + } \ +} + +#define RTPRINT_ADDR(dbgtype, dbgflag, printstr, _Ptr)\ +{\ + if (DBGP_Type[dbgtype] & dbgflag)\ + {\ + int __i; \ + u8* ptr = (u8*)_Ptr; \ + printk printstr; \ + printk(" "); \ + for( __i=0; __i<6; __i++ ) \ + printk("%02X%s", ptr[__i], (__i==5)?"":"-"); \ + printk("\n"); \ + }\ +} + +#define RTPRINT_DATA(dbgtype, dbgflag, _TitleString, _HexData, _HexDataLen)\ +{\ + if (DBGP_Type[dbgtype] & dbgflag)\ + {\ + int __i; \ + u8* ptr = (u8*)_HexData; \ + printk(_TitleString); \ + for( __i=0; __i<(int)_HexDataLen; __i++ ) \ + { \ + printk("%02X%s", ptr[__i], (((__i + 1) % 4) == 0)?" ":" ");\ + if (((__i + 1) % 16) == 0) printk("\n");\ + } \ + printk("\n"); \ + }\ +} +#else +#define RTPRINT(dbgtype, dbgflag, printstr) +#define RTPRINT_ADDR(dbgtype, dbgflag, printstr, _Ptr) +#define RTPRINT_DATA(dbgtype, dbgflag, _TitleString, _HexData, _HexDataLen) +#endif + +extern u32 DBGP_Type[DBGP_TYPE_MAX]; + +#define RT_PRINT_DATA(_Comp, _Level, _TitleString, _HexData, _HexDataLen) \ +do {\ + if(((_Comp) & rt_global_debug_component ) && (_Level <= rt_global_debug_component )) \ + { \ + int __i; \ + u8* ptr = (u8*)_HexData; \ + printk("Rtl819x: "); \ + printk(_TitleString); \ + for( __i=0; __i<(int)_HexDataLen; __i++ ) \ + { \ + printk("%02X%s", ptr[__i], (((__i + 1) % 4) == 0)?" ":" "); \ + if (((__i + 1) % 16) == 0) printk("\n"); \ + } \ + printk("\n"); \ + } \ +}while(0); + +#define DMESG(x,a...) +#define DMESGW(x,a...) +#define DMESGE(x,a...) +extern u32 rt_global_debug_component; +#define RT_TRACE(component, x, args...) \ +do { if(rt_global_debug_component & component) \ + printk(KERN_DEBUG DRV_NAME ":" x "\n" , \ + ##args);\ +}while(0); + +#define RTL819x_DEBUG +#ifdef RTL819x_DEBUG +#define assert(expr) \ + if (!(expr)) { \ + printk( "Assertion failed! %s,%s,%s,line=%d\n", \ + #expr,__FILE__,__FUNCTION__,__LINE__); \ + } +#define RT_DEBUG_DATA(level, data, datalen) \ + do{ if ((rt_global_debug_component & (level)) == (level)) \ + { \ + int _i; \ + u8* _pdata = (u8*) data; \ + printk(KERN_DEBUG DRV_NAME ": %s()\n", __FUNCTION__); \ + for(_i=0; _i<(int)(datalen); _i++) \ + { \ + printk("%2x ", _pdata[_i]); \ + if ((_i+1)%16 == 0) printk("\n"); \ + } \ + printk("\n"); \ + } \ + } while (0) +#else +#define assert(expr) do {} while (0) +#define RT_DEBUG_DATA(level, data, datalen) do {} while(0) +#endif + +typedef struct _rtl_fs_debug +{ + const char *name; + struct dentry *dir_drv; + struct dentry *debug_register; + u32 hw_type; + u32 hw_offset; +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,20)) + bool hw_holding; +#else + u8 hw_holding; +#endif +} rtl_fs_debug; + +void print_buffer(u32 *buffer, int len); +void dump_eprom(struct net_device *dev); +void rtl8192_dump_reg(struct net_device *dev); + +#ifdef RTL8192SE +void rtl8192se_dump_tx_desc(struct _tx_desc_8192se *pDesc); +#endif +#ifdef RTL8192CE +void rtl8192ce_dump_tx_desc(struct _TX_DESC_8192CE *pDesc); +#endif + +/* debugfs stuff */ +#ifdef CONFIG_RTLWIFI_DEBUGFS +int rtl_debug_module_init(struct r8192_priv *priv, const char *name); +void rtl_debug_module_remove(struct r8192_priv *priv); +int rtl_create_debugfs_root(void); +void rtl_remove_debugfs_root(void); +#else +static inline int rtl_debug_module_init(struct r8192_priv *priv, const char *name) { + return 0; +} +static inline void rtl_debug_module_remove(struct r8192_priv *priv) { + +} +static inline int rtl_create_debugfs_root(void) { + return 0; +} +static inline void rtl_remove_debugfs_root(void) { +} +#endif + +/* proc stuff */ +void rtl8192_proc_init_one(struct net_device *dev); +void rtl8192_proc_remove_one(struct net_device *dev); +void rtl8192_proc_module_init(void); +void rtl8192_proc_module_remove(void); +void rtl8192_dbgp_flag_init(struct net_device *dev); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_rfkill.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_rfkill.c @@ -0,0 +1,221 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + ******************************************************************************/ +#include "rtl_core.h" +#include "rtl_dm.h" +#include "rtl_rfkill.h" + +#ifdef CONFIG_RTL_RFKILL +static void rtl8192_before_radio_check(struct net_device *dev, + bool *rf_state, + bool *turnonbypowerdomain) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + + *rf_state = (priv->rtllib->eRFPowerState != eRfOn); +#ifdef CONFIG_ASPM_OR_D3 + if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM)) + { + RT_DISABLE_ASPM(dev); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM); + } + else if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3)) + { +#ifdef TODO + RT_LEAVE_D3(dev, false); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3); +#endif + } +#endif + if (RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC)) { + Power_DomainInit92SE(dev); + *turnonbypowerdomain = true; + } + +} + +static bool rtl8192_radio_on_off_checking(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u8 u1Tmp = 0; + u8 gpio; + + if (priv->pwrdown) { + u1Tmp = read_nic_byte(dev, 0x06); + gpio = u1Tmp & BIT6; + } else +#ifdef CONFIG_BT_COEXIST + if (pHalData->bt_coexist.BluetoothCoexist) { + if (pHalData->bt_coexist.BT_CoexistType == BT_2Wire) { + PlatformEFIOWrite1Byte(pAdapter, MAC_PINMUX_CFG, 0xa); + u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IO_SEL); + delay_us(100); + u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IN); + RTPRINT(FPWR, PWRHW, ("GPIO_IN=%02x\n", u1Tmp)); + retval = (u1Tmp & HAL_8192S_HW_GPIO_OFF_BIT) ? eRfOn : eRfOff; + } else if ((pHalData->bt_coexist.BT_CoexistType == BT_ISSC_3Wire) || + (pHalData->bt_coexist.BT_CoexistType == BT_Accel) || + (pHalData->bt_coexist.BT_CoexistType == BT_CSR)) { + u4tmp = PHY_QueryBBReg(pAdapter, 0x87c, bMaskDWord); + if ((u4tmp & BIT17) != 0) { + PHY_SetBBReg(pAdapter, 0x87c, bMaskDWord, u4tmp & ~BIT17); + delay_us(50); + RTPRINT(FBT, BT_RFPoll, ("BT write 0x87c (~BIT17) = 0x%x\n", u4tmp &~BIT17)); + } + u4tmp = PHY_QueryBBReg(pAdapter, 0x8e0, bMaskDWord); + RTPRINT(FBT, BT_RFPoll, ("BT read 0x8e0 (BIT24)= 0x%x\n", u4tmp)); + retval = (u4tmp & BIT24) ? eRfOn : eRfOff; + RTPRINT(FBT, BT_RFPoll, ("BT check RF state to %s\n", (retval==eRfOn)? "ON":"OFF")); + } + } else +#endif + { + write_nic_byte(dev, MAC_PINMUX_CFG, (GPIOMUX_EN | GPIOSEL_GPIO)); + u1Tmp = read_nic_byte(dev, GPIO_IO_SEL); + + u1Tmp &= HAL_8192S_HW_GPIO_OFF_MASK; + write_nic_byte(dev, GPIO_IO_SEL, u1Tmp); + + mdelay(10); + + u1Tmp = read_nic_byte(dev, GPIO_IN); + gpio = u1Tmp & HAL_8192S_HW_GPIO_OFF_BIT; + } +#ifdef DEBUG_RFKILL + { + static u8 gpio_test; + printk("%s: gpio = %x\n", __FUNCTION__, gpio); + if(gpio_test % 5 == 0) { + gpio = 0; + } else { + gpio = 1; + } + printk("%s: gpio_test = %d, gpio = %x\n", __FUNCTION__, gpio_test++ % 20, gpio); + } +#endif + + return gpio; +} + +static void rtl8192_after_radio_check(struct net_device *dev, bool rf_state, bool turnonbypowerdomain) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + + if (turnonbypowerdomain) { + PHY_SetRtl8192seRfHalt(dev); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC); + } +#ifdef CONFIG_ASPM_OR_D3 + if (!rf_state) { + if (pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) { + RT_ENABLE_ASPM(dev); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM); + } +#ifdef TODO + else if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) { + RT_ENTER_D3(dev, false); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3); + } +#endif + } +#endif + return; +} + +static bool rtl8192_is_radio_enabled(struct net_device *dev, bool *radio_enabled) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + bool rf_state = false; + bool turnonbypowerdomain = false; + bool valid; + + rtl8192_before_radio_check(dev, &rf_state, &turnonbypowerdomain); + *radio_enabled = rtl8192_radio_on_off_checking(dev); + rtl8192_after_radio_check(dev, rf_state, turnonbypowerdomain); + if (priv->bResetInProgress) { + priv->RFChangeInProgress = false; + valid = false; + } else { + valid = true; + } + + return valid; +} + +bool rtl8192_rfkill_init(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct wireless_dev *wdev = &priv->rtllib->wdev; + bool radio_enabled; + bool valid = rtl8192_is_radio_enabled(dev, &radio_enabled); + + if (valid) { + priv->rfkill_off = radio_enabled; + printk(KERN_INFO "rtl8192: wireless switch is %s\n", + priv->rfkill_off ? "on" : "off"); + wiphy_rfkill_set_hw_state(wdev->wiphy, !priv->rfkill_off); + wiphy_rfkill_start_polling(wdev->wiphy); + return true; + } else { + return false; + } +} + +void rtl8192_rfkill_poll(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct wireless_dev *wdev = &priv->rtllib->wdev; + bool radio_enabled; + bool valid; + + if (priv->being_init_adapter) { + return; + } + + if (priv->ResetProgress == RESET_TYPE_SILENT) { + RT_TRACE((COMP_INIT | COMP_POWER | COMP_RF), + "%s(): silent Reseting, ignore rf polling!\n", __FUNCTION__); + return; + } + + valid = rtl8192_is_radio_enabled(dev, &radio_enabled); + if (valid) { + if (unlikely(radio_enabled != priv->rfkill_off)) { + priv->rfkill_off = radio_enabled; + printk(KERN_INFO "rtl8192: wireless radio switch turned %s\n", + radio_enabled ? "on" : "off"); + wiphy_rfkill_set_hw_state(wdev->wiphy, !radio_enabled); + } + } +} + +void rtl8192_rfkill_exit(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct wireless_dev *wdev = &priv->rtllib->wdev; + + wiphy_rfkill_stop_polling(wdev->wiphy); +} + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_regd.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl_regd.h @@ -0,0 +1,53 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the ath driver, which is: + * Copyright (c) 2008-2009 Atheros Communications Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + ******************************************************************************/ +#ifndef RTL_REGD_H +#define RTL_REGD_H + +#ifdef CONFIG_CFG_80211 + +#include +#include +#include "rtl_core.h" + +struct r8192_priv; + +struct country_code_to_enum_rd { + u16 countryCode; + const char *isoName; +}; + + +int rtl_regd_init(struct net_device *dev, + int (*reg_notifier)(struct wiphy *wiphy, + struct regulatory_request *request)); +int rtl_reg_notifier(struct wiphy *wiphy, + struct regulatory_request *request); +void rtl_dump_channel_map(struct wiphy *wiphy); +int rtllib_set_geo(struct r8192_priv *priv); +bool rtl8192_register_wiphy_dev(struct net_device *dev); + +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/Kconfig +++ linux-2.6.35/ubuntu/rtl8192se/Kconfig @@ -0,0 +1,5 @@ +config RTL8192SE + tristate "Kernel module for RTL81991/2SE or RTL8171 wireless" + depends on X86 + default m + ---help--- --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_cam.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl_cam.h @@ -0,0 +1,60 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef _RTL_CAM_H +#define _RTL_CAM_H + +#include +struct net_device; + +void CamResetAllEntry(struct net_device* dev); +void EnableHWSecurityConfig8192(struct net_device *dev); +void setKey(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType, u8 *MacAddr, u8 DefaultKey, u32 *KeyContent ); +void set_swcam(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType, u8 *MacAddr, u8 DefaultKey, u32 *KeyContent, u8 is_mesh); +void CamPrintDbgReg(struct net_device* dev); + +#ifdef _RTL8192_EXT_PATCH_ +void CamDeleteOneEntry(struct net_device *dev, u8 EntryNo); +void CamRestoreEachIFEntry(struct net_device* dev,u8 is_mesh); +#endif + +u32 read_cam(struct net_device *dev, u8 addr); +void write_cam(struct net_device *dev, u8 addr, u32 data); + +void CamRestoreAllEntry(struct net_device *dev); +#ifdef _RTL8192_EXT_PATCH_ +void reset_IFswcam(struct net_device *dev, u8 is_mesh); +void CamRestoreEachIFEntry(struct net_device* dev,u8 is_mesh); +int rtl8192_set_key_for_AP(struct rtllib_device *ieee); +#endif + +void CAM_read_entry(struct net_device *dev, u32 iIndex); + +#ifdef _RTL8192_EXT_PATCH_ +u8 rtl8192_get_free_hwsec_cam_entry(struct rtllib_device *ieee, u8 *sta_addr); +void rtl8192_del_hwsec_cam_entry(struct rtllib_device *ieee, u8 *sta_addr); +int meshdev_set_key_for_peer(struct net_device *dev, u8 *Addr, u8 KeyIndex, u16 KeyType, u32 *KeyContent); +#endif + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_ps.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_ps.c @@ -0,0 +1,923 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + *****************************************************************************/ +#include "rtl_ps.h" +#include "rtl_core.h" + +#if defined(RTL8192E) || defined(RTL8192SE) || defined RTL8192CE +void rtl8192_hw_sleep_down(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + unsigned long flags = 0; +#ifdef CONFIG_ASPM_OR_D3 + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); +#endif + spin_lock_irqsave(&priv->rf_ps_lock,flags); + if (priv->RFChangeInProgress) { + spin_unlock_irqrestore(&priv->rf_ps_lock,flags); + RT_TRACE(COMP_RF, "rtl8192_hw_sleep_down(): RF Change in progress! \n"); + printk("rtl8192_hw_sleep_down(): RF Change in progress!\n"); + return; + } + spin_unlock_irqrestore(&priv->rf_ps_lock,flags); + RT_TRACE(COMP_PS, "%s()============>come to sleep down\n", __FUNCTION__); + +#ifdef CONFIG_RTLWIFI_DEBUGFS + if(priv->debug->hw_holding) { + return; + } +#endif + MgntActSet_RF_State(dev, eRfSleep, RF_CHANGE_BY_PS,false); +#ifdef CONFIG_ASPM_OR_D3 + if(pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM) + { + RT_ENABLE_ASPM(dev); + RT_SET_PS_LEVEL(pPSC, RT_RF_LPS_LEVEL_ASPM); + } +#endif +} + +void rtl8192_hw_sleep_wq(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct rtllib_device *ieee = container_of_dwork_rsl(data,struct rtllib_device,hw_sleep_wq); + struct net_device *dev = ieee->dev; +#else + struct net_device *dev = (struct net_device *)data; +#endif + rtl8192_hw_sleep_down(dev); +} + +void rtl8192_hw_wakeup(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + unsigned long flags = 0; +#ifdef CONFIG_ASPM_OR_D3 + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); +#endif + spin_lock_irqsave(&priv->rf_ps_lock,flags); + if (priv->RFChangeInProgress) { + spin_unlock_irqrestore(&priv->rf_ps_lock,flags); + RT_TRACE(COMP_RF, "rtl8192_hw_wakeup(): RF Change in progress! \n"); + printk("rtl8192_hw_wakeup(): RF Change in progress! schedule wake up task again\n"); + queue_delayed_work_rsl(priv->rtllib->wq,&priv->rtllib->hw_wakeup_wq,MSECS(10)); + return; + } + spin_unlock_irqrestore(&priv->rf_ps_lock,flags); +#ifdef CONFIG_ASPM_OR_D3 + if (pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM) { + RT_DISABLE_ASPM(dev); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_LPS_LEVEL_ASPM); + } +#endif + RT_TRACE(COMP_PS, "%s()============>come to wake up\n", __FUNCTION__); + MgntActSet_RF_State(dev, eRfOn, RF_CHANGE_BY_PS,false); +} + +void rtl8192_hw_wakeup_wq(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct rtllib_device *ieee = container_of_dwork_rsl(data,struct rtllib_device,hw_wakeup_wq); + struct net_device *dev = ieee->dev; +#else + struct net_device *dev = (struct net_device *)data; +#endif + rtl8192_hw_wakeup(dev); + +} + +#define MIN_SLEEP_TIME 50 +#define MAX_SLEEP_TIME 10000 +void rtl8192_hw_to_sleep(struct net_device *dev, u32 th, u32 tl) +{ +#ifdef _RTL8192_EXT_PATCH_ + struct r8192_priv *priv = rtllib_priv(dev); + u32 rb = jiffies, sleep_cost = MSECS(8+16+7), delta = 0; + unsigned long flags; + + if((tl > rb) && (th > 0)) + return; + + spin_lock_irqsave(&priv->ps_lock,flags); + + if (tl >= sleep_cost) + tl -= sleep_cost; + else if (th > 0) { + tl = 0xffffffff - sleep_cost + tl; + th--; + } else { + spin_unlock_irqrestore(&priv->ps_lock,flags); + return; + } + + if (tl > rb) { + delta = tl - rb; + } else if (th > 0) { + delta = 0xffffffff - rb + tl; + th --; + } else { + spin_unlock_irqrestore(&priv->ps_lock,flags); + return; + } + + if (delta <= MSECS(MIN_SLEEP_TIME)) { + spin_unlock_irqrestore(&priv->ps_lock,flags); + printk("too short to sleep::%x, %x, %lx\n",tl, rb, MSECS(MIN_SLEEP_TIME)); + return; + } + + if(delta > MSECS(MAX_SLEEP_TIME)) { + spin_unlock_irqrestore(&priv->ps_lock,flags); + printk("========>too long to sleep:%x, %x, %lx\n", tl, rb, MSECS(MAX_SLEEP_TIME)); + return; + } + + RT_TRACE(COMP_LPS, "==============>%s(): wake up time is %d,%d\n",__FUNCTION__,delta,jiffies_to_msecs(delta)); + queue_delayed_work_rsl(priv->rtllib->wq,&priv->rtllib->hw_wakeup_wq,delta); + queue_delayed_work_rsl(priv->rtllib->wq, (void *)&priv->rtllib->hw_sleep_wq,0); + + spin_unlock_irqrestore(&priv->ps_lock,flags); +#else + struct r8192_priv *priv = rtllib_priv(dev); + + u32 rb = jiffies; + unsigned long flags; + + spin_lock_irqsave(&priv->ps_lock,flags); + + tl -= MSECS(8+16+7); + + if(((tl>=rb)&& (tl-rb) <= MSECS(MIN_SLEEP_TIME)) + ||((rb>tl)&& (rb-tl) < MSECS(MIN_SLEEP_TIME))) { + spin_unlock_irqrestore(&priv->ps_lock,flags); + printk("too short to sleep::%x, %x, %lx\n",tl, rb, MSECS(MIN_SLEEP_TIME)); + return; + } + + if(((tl > rb) && ((tl-rb) > MSECS(MAX_SLEEP_TIME)))|| + ((tl < rb) && (tl>MSECS(69)) && ((rb-tl) > MSECS(MAX_SLEEP_TIME)))|| + ((tlMSECS(MAX_SLEEP_TIME)))) { + printk("========>too long to sleep:%x, %x, %lx\n", tl, rb, MSECS(MAX_SLEEP_TIME)); + spin_unlock_irqrestore(&priv->ps_lock,flags); + return; + } + { + u32 tmp = (tl>rb)?(tl-rb):(rb-tl); + queue_delayed_work_rsl(priv->rtllib->wq, + &priv->rtllib->hw_wakeup_wq,tmp); + } + queue_delayed_work_rsl(priv->rtllib->wq, + (void *)&priv->rtllib->hw_sleep_wq,0); + spin_unlock_irqrestore(&priv->ps_lock,flags); +#endif +} +#endif + +#ifdef ENABLE_IPS +void InactivePsWorkItemCallback(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + + RT_TRACE(COMP_PS, "InactivePsWorkItemCallback() ---------> \n"); + pPSC->bSwRfProcessing = true; + + RT_TRACE(COMP_PS, "InactivePsWorkItemCallback(): Set RF to %s.\n", \ + pPSC->eInactivePowerState == eRfOff?"OFF":"ON"); +#ifdef CONFIG_ASPM_OR_D3 + if(pPSC->eInactivePowerState == eRfOn) + { + + if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM)) + { + RT_DISABLE_ASPM(dev); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM); + } +#ifdef TODO + else if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3)) + { + RT_LEAVE_D3(dev, false); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3); + } +#endif + } +#endif + MgntActSet_RF_State(dev, pPSC->eInactivePowerState, RF_CHANGE_BY_IPS,false); + +#ifdef CONFIG_ASPM_OR_D3 + if(pPSC->eInactivePowerState == eRfOff) + { + if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) + { + RT_ENABLE_ASPM(dev); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM); + } +#ifdef TODO + else if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) + { + RT_ENTER_D3(dev, false); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3); + } +#endif + } +#endif + +#if 0 + if(pPSC->eInactivePowerState == eRfOn) + { + while( index < 4 ) + { + if( ( pMgntInfo->SecurityInfo.PairwiseEncAlgorithm == WEP104_Encryption ) || + (pMgntInfo->SecurityInfo.PairwiseEncAlgorithm == WEP40_Encryption) ) + { + if( pMgntInfo->SecurityInfo.KeyLen[index] != 0) + pAdapter->HalFunc.SetKeyHandler(pAdapter, index, 0, false, pMgntInfo->SecurityInfo.PairwiseEncAlgorithm, true, false); + + } + index++; + } + } +#endif + pPSC->bSwRfProcessing = false; + RT_TRACE(COMP_PS, "InactivePsWorkItemCallback() <--------- \n"); +} + +void +IPSEnter(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + RT_RF_POWER_STATE rtState; + + if (pPSC->bInactivePs) + { + rtState = priv->rtllib->eRFPowerState; + if (rtState == eRfOn && !pPSC->bSwRfProcessing &&\ + (priv->rtllib->state != RTLLIB_LINKED)&&\ + (priv->rtllib->iw_mode != IW_MODE_MASTER)) + { + RT_TRACE(COMP_PS,"IPSEnter(): Turn off RF.\n"); + pPSC->eInactivePowerState = eRfOff; + priv->isRFOff = true; + priv->bInPowerSaveMode = true; + InactivePsWorkItemCallback(dev); + } + } +} + +void +IPSLeave(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + RT_RF_POWER_STATE rtState; + + if (pPSC->bInactivePs) + { + rtState = priv->rtllib->eRFPowerState; + if (rtState != eRfOn && !pPSC->bSwRfProcessing && priv->rtllib->RfOffReason <= RF_CHANGE_BY_IPS) + { + RT_TRACE(COMP_PS, "IPSLeave(): Turn on RF.\n"); + pPSC->eInactivePowerState = eRfOn; + priv->bInPowerSaveMode = false; + InactivePsWorkItemCallback(dev); + } + } +} +void IPSLeave_wq(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct rtllib_device *ieee = container_of_work_rsl(data,struct rtllib_device,ips_leave_wq); + struct net_device *dev = ieee->dev; +#else + struct net_device *dev = (struct net_device *)data; +#endif + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + down(&priv->rtllib->ips_sem); + IPSLeave(dev); + up(&priv->rtllib->ips_sem); +} +void rtllib_ips_leave_wq(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + RT_RF_POWER_STATE rtState; + rtState = priv->rtllib->eRFPowerState; + + if(priv->rtllib->PowerSaveControl.bInactivePs){ + if(rtState == eRfOff){ + if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS) + { + RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__); + return; + } + else{ + printk("=========>%s(): IPSLeave\n",__FUNCTION__); + queue_work_rsl(priv->rtllib->wq,&priv->rtllib->ips_leave_wq); + } + } + } +} +void rtllib_ips_leave(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + down(&priv->rtllib->ips_sem); + IPSLeave(dev); + up(&priv->rtllib->ips_sem); +} +#endif + +#ifdef ENABLE_LPS +bool MgntActSet_802_11_PowerSaveMode(struct net_device *dev, u8 rtPsMode) +{ + struct r8192_priv *priv = rtllib_priv(dev); + +#ifdef _RTL8192_EXT_PATCH_ + if((priv->rtllib->iw_mode == IW_MODE_ADHOC) || (priv->rtllib->iw_mode == IW_MODE_MASTER) + || (priv->rtllib->iw_mode == IW_MODE_MESH)) +#else + if(priv->rtllib->iw_mode == IW_MODE_ADHOC) +#endif + { + return false; + } + + + RT_TRACE(COMP_LPS,"%s(): set ieee->ps = %x\n",__FUNCTION__,rtPsMode); + if(!priv->ps_force) { + priv->rtllib->ps = rtPsMode; + } +#if 0 + priv->rtllib->dot11PowerSaveMode = rtPsMode; + + if(priv->rtllib->dot11PowerSaveMode == eMaxPs) + { + } + else + { + } +#endif + if(priv->rtllib->sta_sleep != LPS_IS_WAKE && rtPsMode == RTLLIB_PS_DISABLED) + { + unsigned long flags; + + rtl8192_hw_wakeup(dev); + priv->rtllib->sta_sleep = LPS_IS_WAKE; + + spin_lock_irqsave(&(priv->rtllib->mgmt_tx_lock), flags); + printk("LPS leave: notify AP we are awaked ++++++++++ SendNullFunctionData\n"); + rtllib_sta_ps_send_null_frame(priv->rtllib, 0); + spin_unlock_irqrestore(&(priv->rtllib->mgmt_tx_lock), flags); + } + +#if 0 + if((pPSC->bFwCtrlLPS) && (pPSC->bLeisurePs)) + { + if(priv->rtllib->dot11PowerSaveMode == eActive) + { + RpwmVal = 0x0C; + FwPwrMode = FW_PS_ACTIVE_MODE; + Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_SET_RPWM, (pu1Byte)(&RpwmVal)); + Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_H2C_FW_PWRMODE, (pu1Byte)(&FwPwrMode)); + } + else + { + if(GetFwLPS_Doze(Adapter)) + { + RpwmVal = 0x02; + Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_H2C_FW_PWRMODE, (pu1Byte)(&pPSC->FWCtrlPSMode)); + Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_SET_RPWM, (pu1Byte)(&RpwmVal)); + } + else + { + pMgntInfo->dot11PowerSaveMode = eActive; + Adapter->bInPowerSaveMode = false; + } + } + } +#endif + return true; +} + + +void LeisurePSEnter(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + + RT_TRACE(COMP_PS, "LeisurePSEnter()...\n"); + RT_TRACE(COMP_PS, "pPSC->bLeisurePs = %d, ieee->ps = %d,pPSC->LpsIdleCount is %d,RT_CHECK_FOR_HANG_PERIOD is %d\n", + pPSC->bLeisurePs, priv->rtllib->ps,pPSC->LpsIdleCount,RT_CHECK_FOR_HANG_PERIOD); + +#ifdef _RTL8192_EXT_PATCH_ + if(!((priv->rtllib->iw_mode == IW_MODE_INFRA) && (priv->rtllib->state == RTLLIB_LINKED)) + || (priv->rtllib->iw_mode == IW_MODE_ADHOC) || (priv->rtllib->iw_mode == IW_MODE_MASTER) + || (priv->rtllib->iw_mode == IW_MODE_MESH)) +#else + if(!((priv->rtllib->iw_mode == IW_MODE_INFRA) && (priv->rtllib->state == RTLLIB_LINKED)) + || (priv->rtllib->iw_mode == IW_MODE_ADHOC) || (priv->rtllib->iw_mode == IW_MODE_MASTER)) +#endif + return; + + if (pPSC->bLeisurePs) + { + if(pPSC->LpsIdleCount >= RT_CHECK_FOR_HANG_PERIOD) + { + + if(priv->rtllib->ps == RTLLIB_PS_DISABLED) + { + + RT_TRACE(COMP_LPS, "LeisurePSEnter(): Enter 802.11 power save mode...\n"); + + if(!pPSC->bFwCtrlLPS) + { + if (priv->rtllib->SetFwCmdHandler) + { + priv->rtllib->SetFwCmdHandler(dev, FW_CMD_LPS_ENTER); + } + } + MgntActSet_802_11_PowerSaveMode(dev, RTLLIB_PS_MBCAST|RTLLIB_PS_UNICAST); + + /*if(pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM) + { + RT_ENABLE_ASPM(pAdapter); + RT_SET_PS_LEVEL(pAdapter, RT_RF_LPS_LEVEL_ASPM); + }*/ + + } + } + else + pPSC->LpsIdleCount++; + } +} + + +void LeisurePSLeave(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + + + RT_TRACE(COMP_PS, "LeisurePSLeave()...\n"); + RT_TRACE(COMP_PS, "pPSC->bLeisurePs = %d, ieee->ps = %d\n", + pPSC->bLeisurePs, priv->rtllib->ps); + + if (pPSC->bLeisurePs) + { + if(priv->rtllib->ps != RTLLIB_PS_DISABLED) + { +#ifdef CONFIG_ASPM_OR_D3 + if(pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM && RT_IN_PS_LEVEL(pPSC, RT_RF_LPS_LEVEL_ASPM)) + { + RT_DISABLE_ASPM(dev); + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_LPS_LEVEL_ASPM); + } +#endif + RT_TRACE(COMP_LPS, "LeisurePSLeave(): Busy Traffic , Leave 802.11 power save..\n"); + MgntActSet_802_11_PowerSaveMode(dev, RTLLIB_PS_DISABLED); + + if(!pPSC->bFwCtrlLPS) + { + if (priv->rtllib->SetFwCmdHandler) + { + priv->rtllib->SetFwCmdHandler(dev, FW_CMD_LPS_LEAVE); + } + } + } + } +} +#endif + +#ifdef CONFIG_ASPM_OR_D3 + +void +PlatformDisableHostL0s(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u32 PciCfgAddrPort=0; + u8 Num4Bytes; + u8 uPciBridgeASPMSetting = 0; + + + if( (priv->NdisAdapter.BusNumber == 0xff && priv->NdisAdapter.DevNumber == 0xff && priv->NdisAdapter.FuncNumber == 0xff) || + (priv->NdisAdapter.PciBridgeBusNum == 0xff && priv->NdisAdapter.PciBridgeDevNum == 0xff && priv->NdisAdapter.PciBridgeFuncNum == 0xff) ) + { + printk("PlatformDisableHostL0s(): Fail to enable ASPM. Cannot find the Bus of PCI(Bridge).\n"); + return; + } + + PciCfgAddrPort= (priv->NdisAdapter.PciBridgeBusNum << 16)|(priv->NdisAdapter.PciBridgeDevNum<< 11)|(priv->NdisAdapter.PciBridgeFuncNum << 8)|(1 << 31); + Num4Bytes = (priv->NdisAdapter.PciBridgePCIeHdrOffset+0x10)/4; + + + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort+(Num4Bytes << 2)); + + NdisRawReadPortUchar(PCI_CONF_DATA, &uPciBridgeASPMSetting); + + if(uPciBridgeASPMSetting & BIT0) + uPciBridgeASPMSetting &= ~(BIT0); + + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort+(Num4Bytes << 2)); + NdisRawWritePortUchar(PCI_CONF_DATA, uPciBridgeASPMSetting); + + udelay(50); + + printk("PlatformDisableHostL0s():PciBridge BusNumber[%x], DevNumbe[%x], FuncNumber[%x], Write reg[%x] = %x\n", + priv->NdisAdapter.PciBridgeBusNum, priv->NdisAdapter.PciBridgeDevNum, priv->NdisAdapter.PciBridgeFuncNum, + (priv->NdisAdapter.PciBridgePCIeHdrOffset+0x10), (priv->NdisAdapter.PciBridgeLinkCtrlReg | (priv->RegDevicePciASPMSetting&~BIT0))); +} + +bool +PlatformEnable92CEBackDoor(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + bool bResult = true; + u8 value; + + if( (priv->NdisAdapter.BusNumber == 0xff && priv->NdisAdapter.DevNumber == 0xff && priv->NdisAdapter.FuncNumber == 0xff) || + (priv->NdisAdapter.PciBridgeBusNum == 0xff && priv->NdisAdapter.PciBridgeDevNum == 0xff && priv->NdisAdapter.PciBridgeFuncNum == 0xff) ) + { + RT_TRACE(COMP_INIT, "PlatformEnableASPM(): Fail to enable ASPM. Cannot find the Bus of PCI(Bridge).\n"); + return false; + } + + pci_read_config_byte(priv->pdev, 0x70f, &value); + + if(priv->NdisAdapter.PciBridgeVendor == PCI_BRIDGE_VENDOR_INTEL) + { + value |= BIT7; + } + else + { + value = 0x23; + } + + pci_write_config_byte(priv->pdev, 0x70f, value); + + + pci_read_config_byte(priv->pdev, 0x719, &value); + value |= (BIT3|BIT4); + pci_write_config_byte(priv->pdev, 0x719, value); + + + return bResult; +} + +bool PlatformSwitchDevicePciASPM(struct net_device *dev, u8 value) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + bool bResult = false; + +#ifdef RTL8192CE + value |= 0x40; +#endif + + pci_write_config_byte(priv->pdev, 0x80, value); + +#ifdef RTL8192SE + udelay(100); +#endif + + return bResult; +} + +bool PlatformSwitchClkReq(struct net_device *dev, u8 value) +{ + bool bResult = false; + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u8 Buffer; + + Buffer= value; + +#ifdef MERGE_TO_DO + if(Adapter->bDriverIsGoingToPnpSetPowerSleep && pDevice->RegSupportLowPowerState + && value == 0x0) + return false; +#endif + + pci_write_config_byte(priv->pdev,0x81,value); + bResult = true; + +#ifdef TODO + if(Buffer) { + priv->ClkReqState = true; + } else { + priv->ClkReqState = false; + } +#endif + +#ifdef RTL8192SE + udelay(100); +#endif + + return bResult; +} + +void +PlatformDisableASPM(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); +#if 1 + u32 PciCfgAddrPort=0; + u8 Num4Bytes; +#endif + u8 LinkCtrlReg; + u16 PciBridgeLinkCtrlReg, ASPMLevel=0; + +#ifdef RTL8192CE + if( (priv->NdisAdapter.BusNumber == 0xff && priv->NdisAdapter.DevNumber == 0xff && priv->NdisAdapter.FuncNumber == 0xff) || + (priv->NdisAdapter.PciBridgeBusNum == 0xff && priv->NdisAdapter.PciBridgeDevNum == 0xff && priv->NdisAdapter.PciBridgeFuncNum == 0xff) ) + { + RT_TRACE(COMP_INIT, "PlatformEnableASPM(): Fail to enable ASPM. Cannot find the Bus of PCI(Bridge).\n"); + return; + } +#endif + +#ifdef RTL8192SE + if(priv->NdisAdapter.PciBridgeVendor != PCI_BRIDGE_VENDOR_INTEL ) + { + RT_TRACE(COMP_POWER, "%s(): Dont modify ASPM for non intel chipset. For Bridge Vendor %d.\n" + ,__func__,priv->NdisAdapter.PciBridgeVendor); + return; + } +#endif + + if(priv->NdisAdapter.PciBridgeVendor == PCI_BRIDGE_VENDOR_UNKNOWN) + { + RT_TRACE(COMP_POWER, "%s(): Disable ASPM. Recognize the Bus of PCI(Bridge) as UNKNOWN.\n",__func__); + } + +#ifdef RTL8192CE + if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_CLK_REQ) + { + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_CLK_REQ); + PlatformSwitchClkReq(dev, 0x0); + } + + { + u8 tmpU1b; + + pci_read_config_byte(priv->pdev, 0x80, &tmpU1b); + } +#endif + + LinkCtrlReg = priv->NdisAdapter.LinkCtrlReg; + PciBridgeLinkCtrlReg = priv->NdisAdapter.PciBridgeLinkCtrlReg; + + ASPMLevel |= BIT0|BIT1; + LinkCtrlReg &=~ASPMLevel; + PciBridgeLinkCtrlReg &=~(BIT0|BIT1); + +#ifdef RTL8192CE + PlatformSwitchDevicePciASPM(dev, LinkCtrlReg); + udelay( 50); +#endif + + if( (priv->NdisAdapter.BusNumber == 0xff && priv->NdisAdapter.DevNumber == 0xff && priv->NdisAdapter.FuncNumber == 0xff) || + (priv->NdisAdapter.PciBridgeBusNum == 0xff && priv->NdisAdapter.PciBridgeDevNum == 0xff && priv->NdisAdapter.PciBridgeFuncNum == 0xff) ) + { + } else { +#if 1 + PciCfgAddrPort= (priv->NdisAdapter.PciBridgeBusNum << 16)|(priv->NdisAdapter.PciBridgeDevNum<< 11)|(priv->NdisAdapter.PciBridgeFuncNum << 8)|(1 << 31); + Num4Bytes = (priv->NdisAdapter.PciBridgePCIeHdrOffset+0x10)/4; + + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort+(Num4Bytes << 2)); + + NdisRawWritePortUchar(PCI_CONF_DATA, PciBridgeLinkCtrlReg); + RT_TRACE(COMP_POWER, "PlatformDisableASPM():PciBridge BusNumber[%x], DevNumbe[%x], FuncNumber[%x], Write reg[%x] = %x\n", + priv->NdisAdapter.PciBridgeBusNum, priv->NdisAdapter.PciBridgeDevNum, priv->NdisAdapter.PciBridgeFuncNum, + (priv->NdisAdapter.PciBridgePCIeHdrOffset+0x10), PciBridgeLinkCtrlReg); + + udelay(50); +#else + pci_write_config_byte(priv->bridge_pdev,priv->PciBridgeASPMRegOffset,PciBridgeLinkCtrlReg); + RT_TRACE(COMP_POWER, "Write reg[%x]=%x\n", (priv->PciBridgeASPMRegOffset), PciBridgeLinkCtrlReg); + udelay(100); +#endif + } + +#ifdef RTL8192SE + PlatformSwitchDevicePciASPM(dev, priv->NdisAdapter.LinkCtrlReg); + + PlatformSwitchClkReq(dev, 0x0); + if (pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_CLK_REQ) + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_CLK_REQ); + udelay(100); +#endif + +} + +void PlatformEnableASPM(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + u16 ASPMLevel = 0; + u32 PciCfgAddrPort=0; + u8 Num4Bytes; + u8 uPciBridgeASPMSetting = 0; + u8 uDeviceASPMSetting = 0; + + + if( (priv->NdisAdapter.BusNumber == 0xff && priv->NdisAdapter.DevNumber == 0xff && priv->NdisAdapter.FuncNumber == 0xff) || + (priv->NdisAdapter.PciBridgeBusNum == 0xff && priv->NdisAdapter.PciBridgeDevNum == 0xff && priv->NdisAdapter.PciBridgeFuncNum == 0xff) ) + { + RT_TRACE(COMP_INIT, "PlatformEnableASPM(): Fail to enable ASPM. Cannot find the Bus of PCI(Bridge).\n"); + return; + } + +#ifdef RTL8192SE + if(priv->NdisAdapter.PciBridgeVendor != PCI_BRIDGE_VENDOR_INTEL ) + { + RT_TRACE(COMP_POWER, "%s(): Dont modify ASPM for non intel chipset. For Bridge Vendor %d.\n" + ,__func__,priv->NdisAdapter.PciBridgeVendor); + return; + } +#endif + +#ifdef RTL8192CE + PciCfgAddrPort= (priv->NdisAdapter.PciBridgeBusNum << 16)|(priv->NdisAdapter.PciBridgeDevNum<< 11) + |(priv->NdisAdapter.PciBridgeFuncNum << 8)|(1 << 31); + Num4Bytes = (priv->NdisAdapter.PciBridgePCIeHdrOffset+0x10)/4; + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort+(Num4Bytes << 2)); + + uPciBridgeASPMSetting = priv->NdisAdapter.PciBridgeLinkCtrlReg |priv->RegHostPciASPMSetting; + +#ifdef RTL8192SE + if(priv->CustomerID == RT_CID_TOSHIBA && priv->NdisAdapter.PciBridgeVendor == PCI_BRIDGE_VENDOR_AMD + && pPSC->RegAMDPciASPM) + { + if(priv->NdisAdapter.PciBridgeLinkCtrlReg & BIT1) + uPciBridgeASPMSetting |= BIT0; + } + else +#endif + if(priv->NdisAdapter.PciBridgeVendor == PCI_BRIDGE_VENDOR_INTEL ) + uPciBridgeASPMSetting &= ~ BIT0; + + NdisRawWritePortUchar(PCI_CONF_DATA, uPciBridgeASPMSetting); + RT_TRACE(COMP_INIT, "PlatformEnableASPM():PciBridge BusNumber[%x], DevNumbe[%x], FuncNumber[%x], Write reg[%x] = %x\n", + priv->NdisAdapter.PciBridgeBusNum, priv->NdisAdapter.PciBridgeDevNum, priv->NdisAdapter.PciBridgeFuncNum, (priv->NdisAdapter.PciBridgePCIeHdrOffset+0x10), + uPciBridgeASPMSetting); + + udelay(50); +#endif + + ASPMLevel |= priv->RegDevicePciASPMSetting; + uDeviceASPMSetting = priv->NdisAdapter.LinkCtrlReg; + + +#ifdef RTL8192SE + if(priv->CustomerID == RT_CID_TOSHIBA && priv->NdisAdapter.PciBridgeVendor == PCI_BRIDGE_VENDOR_AMD) + { + if(priv->NdisAdapter.LinkCtrlReg & BIT1) + uDeviceASPMSetting |= BIT0; + else + uDeviceASPMSetting |= ASPMLevel; + } + else +#endif + uDeviceASPMSetting |= ASPMLevel; + + PlatformSwitchDevicePciASPM(dev, uDeviceASPMSetting); + + if (pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_CLK_REQ) { + PlatformSwitchClkReq(dev,(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_CLK_REQ) ? 1 : 0); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_CLK_REQ); + } + udelay(100); + +#ifdef RTL8192SE +#if 0 + pci_write_config_byte(priv->bridge_pdev,priv->PciBridgeASPMRegOffset,\ + ((priv->NdisAdapter.PciBridgeLinkCtrlReg | priv->RegHostPciASPMSetting)&~BIT0)&0xff); + RT_TRACE(COMP_INIT, "Write reg[%x] = %x\n", + priv->PciBridgeASPMRegOffset, + (priv->NdisAdapter.PciBridgeLinkCtrlReg|priv->RegHostPciASPMSetting)); +#else + PciCfgAddrPort= (priv->NdisAdapter.PciBridgeBusNum << 16)|(priv->NdisAdapter.PciBridgeDevNum<< 11)|(priv->NdisAdapter.PciBridgeFuncNum << 8)|(1 << 31); + Num4Bytes = (priv->NdisAdapter.PciBridgePCIeHdrOffset+0x10)/4; + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort+(Num4Bytes << 2)); + + uPciBridgeASPMSetting = priv->NdisAdapter.PciBridgeLinkCtrlReg |priv->RegHostPciASPMSetting; + + if(priv->CustomerID == RT_CID_TOSHIBA && priv->NdisAdapter.PciBridgeVendor == PCI_BRIDGE_VENDOR_AMD + && pPSC->RegAMDPciASPM) + { + if(priv->NdisAdapter.PciBridgeLinkCtrlReg & BIT1) + uPciBridgeASPMSetting |= BIT0; + } + else if(priv->NdisAdapter.PciBridgeVendor == PCI_BRIDGE_VENDOR_INTEL ) + uPciBridgeASPMSetting &= ~ BIT0; + + NdisRawWritePortUchar(PCI_CONF_DATA, uPciBridgeASPMSetting); + RT_TRACE(COMP_INIT, "PlatformEnableASPM():PciBridge BusNumber[%x], DevNumbe[%x], FuncNumber[%x], Write reg[%x] = %x\n", + priv->NdisAdapter.PciBridgeBusNum, priv->NdisAdapter.PciBridgeDevNum, priv->NdisAdapter.PciBridgeFuncNum, (priv->NdisAdapter.PciBridgePCIeHdrOffset+0x10), + uPciBridgeASPMSetting); +#endif +#endif + + udelay(100); +} + +u32 PlatformResetPciSpace(struct net_device *dev,u8 Value) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + pci_write_config_byte(priv->pdev,0x04,Value); + + return 1; + +} +bool PlatformSetPMCSR(struct net_device *dev,u8 value,bool bTempSetting) +{ + bool bResult = false; + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u8 Buffer; + bool bActuallySet=false, bSetFunc=false; + unsigned long flag; + + Buffer= value; + spin_lock_irqsave(&priv->D3_lock,flag); +#ifdef TODO + if(bTempSetting) + { + if(Buffer==0x00) + { + priv->LeaveD3Cnt++; + + { + bActuallySet =true; + } + } + else + { + priv->LeaveD3Cnt--; + + if(priv->LeaveD3Cnt == 0) + { + bActuallySet=true; + } + } + } + else + { + priv->LeaveD3Cnt=0; + bActuallySet=true; + bSetFunc=true; + } +#endif + if (bActuallySet) { + if (Buffer) { + PlatformSwitchClkReq(dev, 0x01); + } else { + PlatformSwitchClkReq(dev, 0x00); + } + + pci_write_config_byte(priv->pdev,0x44,Buffer); + RT_TRACE(COMP_POWER, "PlatformSetPMCSR(): D3(value: %d)\n", Buffer); + + bResult = true; + if (!Buffer) { + PlatformResetPciSpace(dev, 0x06); + PlatformResetPciSpace(dev, 0x07); + } + + if (bSetFunc) { + if(Buffer) + { +#ifdef TO_DO_LIST + RT_DISABLE_FUNC(Adapter, DF_IO_D3_BIT); +#endif + } else { +#ifdef TO_DO_LIST + RT_ENABLE_FUNC(Adapter, DF_IO_D3_BIT); +#endif + } + } + + } + spin_unlock_irqrestore(&priv->D3_lock,flag); + return bResult; +} +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_dm.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl_dm.h @@ -0,0 +1,348 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef __R8192UDM_H__ +#define __R8192UDM_H__ + + +/*--------------------------Define Parameters-------------------------------*/ +#define OFDM_Table_Length 19 +#define CCK_Table_length 12 + +#define DM_DIG_THRESH_HIGH 40 +#define DM_DIG_THRESH_LOW 35 + +#define DM_FALSEALARM_THRESH_LOW 40 +#define DM_FALSEALARM_THRESH_HIGH 1000 + +#define DM_DIG_HIGH_PWR_THRESH_HIGH 75 +#define DM_DIG_HIGH_PWR_THRESH_LOW 70 + +#define BW_AUTO_SWITCH_HIGH_LOW 25 +#define BW_AUTO_SWITCH_LOW_HIGH 30 + +#define DM_check_fsync_time_interval 500 + + +#define DM_DIG_BACKOFF 12 +#ifdef RTL8192SE +#define DM_DIG_MAX 0x3e +#elif defined RTL8190P || defined RTL8192E +#define DM_DIG_MAX 0x36 +#endif +#define DM_DIG_MIN 0x1c +#define DM_DIG_MIN_Netcore 0x12 + +#define DM_DIG_BACKOFF_MAX 12 +#define DM_DIG_BACKOFF_MIN -4 + +#define RxPathSelection_SS_TH_low 30 +#define RxPathSelection_diff_TH 18 + +#define RateAdaptiveTH_High 50 +#define RateAdaptiveTH_Low_20M 30 +#define RateAdaptiveTH_Low_40M 10 +#define VeryLowRSSI 15 + +#ifdef RTL8192SE +#define CTSToSelfTHVal 30 +#elif defined RTL8190P || defined RTL8192E +#define CTSToSelfTHVal 35 +#endif + +#define WAIotTHVal 25 + +#define E_FOR_TX_POWER_TRACK 300 +#define TX_POWER_NEAR_FIELD_THRESH_HIGH 68 +#define TX_POWER_NEAR_FIELD_THRESH_LOW 62 +#define TX_POWER_ATHEROAP_THRESH_HIGH 78 +#define TX_POWER_ATHEROAP_THRESH_LOW 72 + +#define Current_Tx_Rate_Reg 0x1e0 +#define Initial_Tx_Rate_Reg 0x1e1 +#define Tx_Retry_Count_Reg 0x1ac +#define RegC38_TH 20 + +#define TX_POWER_NEAR_FIELD_THRESH_LVL2 74 +#define TX_POWER_NEAR_FIELD_THRESH_LVL1 67 + +#define TxHighPwrLevel_Normal 0 +#define TxHighPwrLevel_Level1 1 +#define TxHighPwrLevel_Level2 2 + +#define DM_Type_ByFW 0 +#define DM_Type_ByDriver 1 + +/*--------------------------Define Parameters-------------------------------*/ + + +/*------------------------------Define structure----------------------------*/ +typedef struct _dynamic_initial_gain_threshold_ +{ + u8 dig_enable_flag; + u8 dig_algorithm; + u8 Dig_TwoPort_Algorithm; + u8 Dig_Ext_Port_Stage; + u8 dbg_mode; + u8 dig_algorithm_switch; + + long rssi_low_thresh; + long rssi_high_thresh; + + u32 FALowThresh; + u32 FAHighThresh; + + long rssi_high_power_lowthresh; + long rssi_high_power_highthresh; + + u8 dig_state; + u8 dig_highpwr_state; + u8 CurSTAConnectState; + u8 PreSTAConnectState; + u8 CurAPConnectState; + u8 PreAPConnectState; + + u8 curpd_thstate; + u8 prepd_thstate; + u8 curcs_ratio_state; + u8 precs_ratio_state; + + u32 pre_ig_value; + u32 cur_ig_value; + + u8 Backoff_Enable_Flag; + u8 backoff_val; + char BackoffVal_range_max; + char BackoffVal_range_min; + u8 rx_gain_range_max; + u8 rx_gain_range_min; + bool initialgain_lowerbound_state; + + long rssi_val; +}dig_t; + +typedef enum tag_dynamic_init_gain_state_definition +{ + DM_STA_DIG_OFF = 0, + DM_STA_DIG_ON, + DM_STA_DIG_MAX +}dm_dig_sta_e; + +#ifndef RTL8192SE +typedef enum tag_dynamic_ratr_state_definition +{ + DM_RATR_STA_HIGH = 0, + DM_RATR_STA_MIDDLE = 1, + DM_RATR_STA_LOW = 2, + + DM_RATR_STA_MAX +}dm_ratr_sta_e; +#else +typedef enum tag_dynamic_ratr_state_definition +{ + DM_RATR_STA_HIGH = 0, + DM_RATR_STA_MIDDLEHIGH = 1, + DM_RATR_STA_MIDDLE = 2, + DM_RATR_STA_MIDDLELOW = 3, + DM_RATR_STA_LOW = 4, + DM_RATR_STA_ULTRALOW = 5, + DM_RATR_STA_MAX +}dm_ratr_sta_e; +#endif + +typedef enum tag_dynamic_init_gain_operation_type_definition +{ + DIG_TYPE_THRESH_HIGH = 0, + DIG_TYPE_THRESH_LOW = 1, + DIG_TYPE_THRESH_HIGHPWR_HIGH = 2, + DIG_TYPE_THRESH_HIGHPWR_LOW = 3, + DIG_TYPE_DBG_MODE = 4, + DIG_TYPE_RSSI = 5, + DIG_TYPE_ALGORITHM = 6, + DIG_TYPE_BACKOFF = 7, + DIG_TYPE_PWDB_FACTOR = 8, + DIG_TYPE_RX_GAIN_MIN = 9, + DIG_TYPE_RX_GAIN_MAX = 10, + DIG_TYPE_ENABLE = 20, + DIG_TYPE_DISABLE = 30, + DIG_OP_TYPE_MAX +}dm_dig_op_e; + +typedef enum tag_dig_algorithm_definition +{ + DIG_ALGO_BY_FALSE_ALARM = 0, + DIG_ALGO_BY_RSSI = 1, + DIG_ALGO_BEFORE_CONNECT_BY_RSSI_AND_ALARM = 2, + DIG_ALGO_BY_TOW_PORT = 3, + DIG_ALGO_MAX +}dm_dig_alg_e; + +typedef enum tag_DIG_TWO_PORT_ALGO_Definition +{ + DIG_TWO_PORT_ALGO_RSSI = 0, + DIG_TWO_PORT_ALGO_FALSE_ALARM = 1, +}DM_DIG_TWO_PORT_ALG_E; + + +typedef enum tag_DIG_EXT_PORT_ALGO_Definition +{ + DIG_EXT_PORT_STAGE_0 = 0, + DIG_EXT_PORT_STAGE_1 = 1, + DIG_EXT_PORT_STAGE_2 = 2, + DIG_EXT_PORT_STAGE_3 = 3, + DIG_EXT_PORT_STAGE_MAX = 4, +}DM_DIG_EXT_PORT_ALG_E; + +typedef enum tag_dig_dbgmode_definition +{ + DIG_DBG_OFF = 0, + DIG_DBG_ON = 1, + DIG_DBG_MAX +}dm_dig_dbg_e; + +typedef enum tag_dig_connect_definition +{ + DIG_STA_DISCONNECT = 0, + DIG_STA_CONNECT = 1, + DIG_STA_BEFORE_CONNECT = 2, + DIG_AP_DISCONNECT = 3, + DIG_AP_CONNECT = 4, + DIG_AP_ADD_STATION = 5, + DIG_CONNECT_MAX +}dm_dig_connect_e; + +typedef enum tag_dig_packetdetection_threshold_definition +{ + DIG_PD_AT_LOW_POWER = 0, + DIG_PD_AT_NORMAL_POWER = 1, + DIG_PD_AT_HIGH_POWER = 2, + DIG_PD_MAX +}dm_dig_pd_th_e; + +typedef enum tag_dig_cck_cs_ratio_state_definition +{ + DIG_CS_RATIO_LOWER = 0, + DIG_CS_RATIO_HIGHER = 1, + DIG_CS_MAX +}dm_dig_cs_ratio_e; +typedef struct _Dynamic_Rx_Path_Selection_ +{ + u8 Enable; + u8 DbgMode; + u8 cck_method; + u8 cck_Rx_path; + + u8 SS_TH_low; + u8 diff_TH; + u8 disabledRF; + u8 reserved; + + u8 rf_rssi[4]; + u8 rf_enable_rssi_th[4]; + long cck_pwdb_sta[4]; +}DRxPathSel; + +typedef enum tag_CCK_Rx_Path_Method_Definition +{ + CCK_Rx_Version_1 = 0, + CCK_Rx_Version_2= 1, + CCK_Rx_Version_MAX +}DM_CCK_Rx_Path_Method; + + +typedef enum tag_DM_DbgMode_Definition +{ + DM_DBG_OFF = 0, + DM_DBG_ON = 1, + DM_DBG_MAX +}DM_DBG_E; + +typedef struct tag_Tx_Config_Cmd_Format +{ + u32 Op; + u32 Length; + u32 Value; +}DCMD_TXCMD_T, *PDCMD_TXCMD_T; +/*------------------------------Define structure----------------------------*/ + + +/*------------------------Export global variable----------------------------*/ +extern dig_t dm_digtable; +extern u8 dm_shadow[16][256]; +extern DRxPathSel DM_RxPathSelTable; + +extern u8 test_flag; +/*------------------------Export global variable----------------------------*/ + + +/*------------------------Export Marco Definition---------------------------*/ +#define DM_APInitGainChangeNotify(Event) {dm_digtable.CurAPConnectState = Event;} +/*------------------------Export Marco Definition---------------------------*/ + + +/*--------------------------Exported Function prototype---------------------*/ +/*--------------------------Exported Function prototype---------------------*/ +extern void init_hal_dm(struct net_device *dev); +extern void deinit_hal_dm(struct net_device *dev); + +extern void hal_dm_watchdog(struct net_device *dev); + + +extern void init_rate_adaptive(struct net_device *dev); +extern void dm_txpower_trackingcallback(void *data); + +#ifndef RTL8192SE +extern void dm_cck_txpower_adjust(struct net_device *dev,bool binch14); +#endif + +extern void dm_restore_dynamic_mechanism_state(struct net_device *dev); +extern void dm_backup_dynamic_mechanism_state(struct net_device *dev); +extern void dm_change_dynamic_initgain_thresh(struct net_device *dev, + u32 dm_type, + u32 dm_value); +extern void DM_ChangeFsyncSetting(struct net_device *dev, + s32 DM_Type, + s32 DM_Value); +extern void dm_force_tx_fw_info(struct net_device *dev, + u32 force_type, + u32 force_value); +extern void dm_init_edca_turbo(struct net_device *dev); +extern void dm_rf_operation_test_callback(unsigned long data); +extern void dm_rf_pathcheck_workitemcallback(void *data); +extern void dm_fsync_timer_callback(unsigned long data); +#if 0 +extern bool dm_check_lbus_status(struct net_device *dev); +#endif +extern void dm_check_fsync(struct net_device *dev); +extern void dm_shadow_init(struct net_device *dev); +extern void dm_initialize_txpower_tracking(struct net_device *dev); + +#if (defined RTL8192E || defined RTL8192SE) +extern void dm_CheckRfCtrlGPIO(void *data); +#endif + +#ifdef RTL8192SE +extern void Power_DomainInit92SE(struct net_device *dev); +#endif + +extern void dm_InitRateAdaptiveMask(struct net_device * dev); + +#endif /*__R8192UDM_H__ */ + + +/* End of r8192U_dm.h */ --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_pci.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl_pci.c @@ -0,0 +1,489 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + *****************************************************************************/ +#include "rtl_pci.h" +#include "rtl_core.h" + +#if defined RTL8192CE || defined RTL8192SE +bool +rtl8192_get_LinkControl_field( + struct net_device *dev, + u8 BusNum, + u8 DevNum, + u8 FuncNum + ) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + RT_PCI_CAPABILITIES_HEADER CapabilityHdr; + unsigned char CapabilityOffset, Num4Bytes; + u32 PciCfgAddrPort=0; + u8 LinkCtrlReg; + bool Status = false; + + if( BusNum == 0xff && DevNum == 0xff && FuncNum == 0xff ){ + printk("GetLinkControlField(): Fail to find PCIe Capability\n"); + return false; + } + + + PciCfgAddrPort= (BusNum<< 16)|(DevNum << 11)|(FuncNum << 8)|(1 << 31); + + + Num4Bytes = 0x34/4; + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort+( Num4Bytes<< 2)); + NdisRawReadPortUchar(PCI_CONF_DATA, &CapabilityOffset); + + + while (CapabilityOffset != 0) + { + Num4Bytes = CapabilityOffset/4; + + + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort+( Num4Bytes<< 2)); + NdisRawReadPortUshort(PCI_CONF_DATA, (u16*)&CapabilityHdr); + + if (CapabilityHdr.CapabilityID == PCI_CAPABILITY_ID_PCI_EXPRESS) + { + break; + } + else + { + CapabilityOffset = CapabilityHdr.Next; + } + } + + + if (CapabilityHdr.CapabilityID == PCI_CAPABILITY_ID_PCI_EXPRESS) + { + Num4Bytes = (CapabilityOffset+0x10)/4; + + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort+(Num4Bytes << 2)); + NdisRawReadPortUchar(PCI_CONF_DATA, &LinkCtrlReg); + + priv->NdisAdapter.PciBridgePCIeHdrOffset = CapabilityOffset; + priv->NdisAdapter.PciBridgeLinkCtrlReg = LinkCtrlReg; + + Status = true; + } + else + { + printk("GetLinkControlField(): Cannot Find PCIe Capability\n"); + } + + return Status; +} + +bool +rtl8192_get_pci_BusInfo( + struct net_device *dev, + u16 VendorId, + u16 DeviceId, + u8 IRQL, + u8 BaseCode, + u8 SubClass, + u8 filed19val, + u8* BusNum, + u8* DevNum, + u8* FuncNum + ) +{ + + u8 busNumIdx, deviceNumIdx, functionNumIdx; + u32 PciCfgAddrPort=0; + u32 devVenID = 0, classCode, field19, headertype; + u16 venId, devId; + u8 basec, subc, irqLine; + u16 RegOffset; + bool bSingleFunc = false; + bool bBridgeChk = false; + + *BusNum = 0xFF; + *DevNum = 0xFF; + *FuncNum = 0xFF; + + if((BaseCode == PCI_CLASS_BRIDGE_DEV) && (SubClass==PCI_SUBCLASS_BR_PCI_TO_PCI) && (filed19val==U1DONTCARE)) + bBridgeChk = true; + + for (busNumIdx = 0; busNumIdx < PCI_MAX_BRIDGE_NUMBER ; busNumIdx++) + { + for (deviceNumIdx = 0; deviceNumIdx < PCI_MAX_DEVICES; deviceNumIdx ++) + { + bSingleFunc = false; + for (functionNumIdx = 0; functionNumIdx < PCI_MAX_FUNCTION; functionNumIdx++) + { + + if(functionNumIdx == 0) + { + PciCfgAddrPort= (busNumIdx << 16)|(deviceNumIdx << 11)|(functionNumIdx << 8)|(1 << 31); + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort + (3 << 2)); + NdisRawReadPortUlong(PCI_CONF_DATA, &headertype); + headertype = ((headertype >> 16) & 0x0080) >> 7; + if( headertype == 0) + bSingleFunc = true; + } + else + { + if(bSingleFunc == true) break; + } + + PciCfgAddrPort= (busNumIdx << 16)|(deviceNumIdx << 11)|(functionNumIdx << 8)|(1 << 31); + + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort); + NdisRawReadPortUlong(PCI_CONF_DATA, &devVenID); + + if ( devVenID == 0xFFFFFFFF||devVenID == 0 ) continue; + + RegOffset = 0x3C; + PciCfgAddrPort= (busNumIdx << 16)|(deviceNumIdx << 11)|(functionNumIdx << 8)|(1 << 31)|(RegOffset & 0xFFFFFFFC); + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort); + NdisRawReadPortUchar((PCI_CONF_DATA+ (RegOffset & 0x3)), &irqLine); + + venId = (u16)(devVenID >> 0)& 0xFFFF; + devId = (u16)(devVenID >> 16)& 0xFFFF; + + if(!bBridgeChk && (venId != VendorId) && (VendorId != U2DONTCARE)) + continue; + + if(!bBridgeChk && (devId != DeviceId) && (DeviceId != U2DONTCARE)) + continue; + + if(!bBridgeChk && (irqLine != IRQL) && (IRQL != U1DONTCARE)) + continue; + + PciCfgAddrPort= (busNumIdx << 16)|(deviceNumIdx << 11)|(functionNumIdx << 8)|(1 << 31); + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort + (2 << 2)); + NdisRawReadPortUlong(PCI_CONF_DATA, &classCode); + classCode = classCode >> 8; + + basec = (u8)(classCode >>16 ) & 0xFF; + subc = (u8)(classCode >>8 ) & 0xFF; + if(bBridgeChk && (venId != VendorId) &&(basec == BaseCode) && (subc== SubClass ) ) + return true; + + if(bBridgeChk && (venId != VendorId) && (VendorId != U2DONTCARE)) + continue; + + if(bBridgeChk && (devId != DeviceId) && (DeviceId != U2DONTCARE)) + continue; + + if(bBridgeChk && (irqLine != IRQL) && (IRQL != U1DONTCARE)) + continue; + + + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort + (6 << 2)); + NdisRawReadPortUlong(PCI_CONF_DATA, &field19); + field19 = (field19 >> 8)& 0xFF; + + if((basec == BaseCode) && (subc== SubClass ) && ((field19 == filed19val) ||(filed19val==U1DONTCARE) )) + { + *BusNum = busNumIdx; + *DevNum = deviceNumIdx; + *FuncNum = functionNumIdx; + + printk( "GetPciBusInfo(): Find Device(%X:%X) bus=%d dev=%d, func=%d\n",VendorId, DeviceId, busNumIdx, deviceNumIdx, functionNumIdx); + return true; + } + } + } + } + + printk( "GetPciBusInfo(): Cannot Find Device(%X:%X:%X)\n",VendorId, DeviceId, devVenID); + return false; +} + +bool rtl8192_get_pci_BridegInfo( + struct net_device *dev, + u8 BaseCode, + u8 SubClass, + u8 filed19val, + u8* BusNum, + u8* DevNum, + u8* FuncNum, + u16* VendorId, + u16* DeviceId + ) + +{ + + u8 busNumIdx, deviceNumIdx, functionNumIdx; + u32 PciCfgAddrPort=0; + u32 devVenID, classCode, field19, headertype; + u16 venId, devId; + u8 basec, subc, irqLine; + u16 RegOffset; + bool bSingleFunc = false; + + *BusNum = 0xFF; + *DevNum = 0xFF; + *FuncNum = 0xFF; + + for (busNumIdx = 0; busNumIdx < PCI_MAX_BRIDGE_NUMBER ; busNumIdx++) + { + for (deviceNumIdx = 0; deviceNumIdx < PCI_MAX_DEVICES; deviceNumIdx ++) + { + bSingleFunc = false; + for (functionNumIdx = 0; functionNumIdx < PCI_MAX_FUNCTION; functionNumIdx++) + { + + if(functionNumIdx == 0) + { + PciCfgAddrPort= (busNumIdx << 16)|(deviceNumIdx << 11)|(functionNumIdx << 8)|(1 << 31); + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort + (3 << 2)); + NdisRawReadPortUlong(PCI_CONF_DATA, &headertype); + headertype = ((headertype >> 16) & 0x0080) >> 7; + if( headertype == 0) + bSingleFunc = true; + } + else + { + if( bSingleFunc ==true ) break; + } + + PciCfgAddrPort= (busNumIdx << 16)|(deviceNumIdx << 11)|(functionNumIdx << 8)|(1 << 31); + + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort); + NdisRawReadPortUlong(PCI_CONF_DATA, &devVenID); + + RegOffset = 0x3C; + PciCfgAddrPort= (busNumIdx << 16)|(deviceNumIdx << 11)|(functionNumIdx << 8)|(1 << 31)|(RegOffset & 0xFFFFFFFC); + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort); + NdisRawReadPortUchar((PCI_CONF_DATA+ (RegOffset & 0x3)), &irqLine); + + venId = (u16)(devVenID >> 0)& 0xFFFF; + devId = (u16)(devVenID >> 16)& 0xFFFF; + + PciCfgAddrPort= (busNumIdx << 16)|(deviceNumIdx << 11)|(functionNumIdx << 8)|(1 << 31); + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort + (2 << 2)); + NdisRawReadPortUlong(PCI_CONF_DATA, &classCode); + classCode = classCode >> 8; + + basec = (u8)(classCode >>16 ) & 0xFF; + subc = (u8)(classCode >>8 ) & 0xFF; + + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort + (6 << 2)); + NdisRawReadPortUlong(PCI_CONF_DATA, &field19); + field19 = (field19 >> 8)& 0xFF; + + if((basec == BaseCode) && (subc== SubClass ) && ((field19 == filed19val) ||(filed19val==U1DONTCARE) )) + { + *BusNum = busNumIdx; + *DevNum = deviceNumIdx; + *FuncNum = functionNumIdx; + *VendorId = venId; + *DeviceId = devId; + + printk("GetPciBridegInfo : Find Device(%X:%X) bus=%d dev=%d, func=%d\n", + venId, devId, busNumIdx, deviceNumIdx, functionNumIdx); + + return true; + } + } + } + } + + printk( "GetPciBridegInfo(): Cannot Find PciBridge for Device\n"); + + return false; +} + + +static u16 PciBridgeVendorArray[PCI_BRIDGE_VENDOR_MAX] + = {INTEL_VENDOR_ID,ATI_VENDOR_ID,AMD_VENDOR_ID,SIS_VENDOR_ID}; + +void +rtl8192_pci_find_BridgeInfo(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + u8 PciBridgeBusNum = 0xff; + u8 PciBridgeDevNum = 0xff; + u8 PciBridgeFuncNum = 0xff; + u16 PciBridgeVendorId= 0xff; + u16 PciBridgeDeviceId = 0xff; + u8 tmp = 0; + + rtl8192_get_pci_BridegInfo(dev, + PCI_CLASS_BRIDGE_DEV, + PCI_SUBCLASS_BR_PCI_TO_PCI , + priv->NdisAdapter.BusNumber, + &PciBridgeBusNum, + &PciBridgeDevNum, + &PciBridgeFuncNum, + &PciBridgeVendorId, + &PciBridgeDeviceId); + + + priv->NdisAdapter.PciBridgeVendor = PCI_BRIDGE_VENDOR_UNKNOWN; + + for(tmp = 0; tmp < PCI_BRIDGE_VENDOR_MAX; tmp++) + { + if(PciBridgeVendorId == PciBridgeVendorArray[tmp]) + { + priv->NdisAdapter.PciBridgeVendor = tmp; + printk("Pci Bridge Vendor is found index: %d\n",tmp); + break; + } + } + printk("Pci Bridge Vendor is %x\n",PciBridgeVendorArray[tmp]); + + priv->NdisAdapter.PciBridgeBusNum = PciBridgeBusNum; + priv->NdisAdapter.PciBridgeDevNum = PciBridgeDevNum; + priv->NdisAdapter.PciBridgeFuncNum = PciBridgeFuncNum; + priv->NdisAdapter.PciBridgeVendorId = PciBridgeVendorId; + priv->NdisAdapter.PciBridgeDeviceId = PciBridgeDeviceId; + + +} + +bool +rtl8192_GetAMDL1Patch( + struct net_device *dev, + u8 BusNum, + u8 DevNum, + u8 FuncNum + ) +{ + bool Status = false; + u8 OffsetE0; + unsigned OffsetE4; + u32 PciCfgAddrPort=0; + + PciCfgAddrPort= (BusNum<< 16)|(DevNum << 11)|(FuncNum << 8)|(1 << 31); + + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort+0xE0); + NdisRawWritePortUchar(PCI_CONF_DATA, 0xA0); + + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort+0xE0); + NdisRawReadPortUchar(PCI_CONF_DATA, &OffsetE0); + + if(OffsetE0 == 0xA0) + { + NdisRawWritePortUlong(PCI_CONF_ADDRESS , PciCfgAddrPort+0xE4); + NdisRawReadPortUlong(PCI_CONF_DATA, &OffsetE4); + if(OffsetE4 & BIT23) + Status = true; + } + + return Status; +} + + +#endif + +static void rtl8192_parse_pci_configuration(struct pci_dev *pdev, struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + u8 tmp; + int pos; + u8 LinkCtrlReg; + + pos = pci_find_capability(priv->pdev, PCI_CAP_ID_EXP); + pci_read_config_byte(priv->pdev, pos + PCI_EXP_LNKCTL, &LinkCtrlReg); + priv->NdisAdapter.LinkCtrlReg = LinkCtrlReg; + + RT_TRACE(COMP_INIT, "Link Control Register =%x\n", priv->NdisAdapter.LinkCtrlReg); + + pci_read_config_byte(pdev, 0x98, &tmp); + tmp |=BIT4; + pci_write_config_byte(pdev, 0x98, tmp); + + tmp = 0x17; + pci_write_config_byte(pdev, 0x70f, tmp); +} + +bool rtl8192_pci_findadapter(struct pci_dev *pdev, struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u16 VenderID; + u16 DeviceID; + u8 RevisionID; + u16 IrqLine; + + VenderID = pdev->vendor; + DeviceID = pdev->device; +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) + pci_read_config_byte(pdev, 0x8, &RevisionID); +#else + RevisionID = pdev->revision; +#endif + pci_read_config_word(pdev, 0x3C, &IrqLine); + + priv->card_8192 = priv->ops->nic_type; + + if (DeviceID == 0x8172) { + switch (RevisionID) { + case HAL_HW_PCI_REVISION_ID_8192PCIE: + printk("Adapter(8192 PCI-E) is found - DeviceID=%x\n", DeviceID); + priv->card_8192 = NIC_8192E; + break; + case HAL_HW_PCI_REVISION_ID_8192SE: + printk("Adapter(8192SE) is found - DeviceID=%x\n", DeviceID); + priv->card_8192 = NIC_8192SE; + break; + default: + printk("UNKNOWN nic type(%4x:%4x)\n", pdev->vendor, pdev->device); + priv->card_8192 = NIC_UNKNOWN; + return false; + } + } + + if (priv->ops->nic_type != priv->card_8192) { + printk("Detect info(%x) and hardware info(%x) not match!\n", + priv->ops->nic_type, priv->card_8192); + printk("Please select proper driver before install!!!!\n"); + return false; + } + +#if defined RTL8192CE || defined RTL8192SE + rtl8192_get_pci_BusInfo(dev, + VenderID, + DeviceID, + (u8)IrqLine, + 0x02,0x80, U1DONTCARE, + &priv->NdisAdapter.BusNumber, + &priv->NdisAdapter.DevNumber, + &priv->NdisAdapter.FuncNumber); + + rtl8192_pci_find_BridgeInfo(dev); + + if(priv->NdisAdapter.PciBridgeVendor != PCI_BRIDGE_VENDOR_UNKNOWN) + { + rtl8192_get_LinkControl_field(dev, priv->NdisAdapter.PciBridgeBusNum, + priv->NdisAdapter.PciBridgeDevNum, priv->NdisAdapter.PciBridgeFuncNum); + + if(priv->NdisAdapter.PciBridgeVendor == PCI_BRIDGE_VENDOR_AMD) + { + priv->NdisAdapter.AMDL1PATCH = rtl8192_GetAMDL1Patch(dev, priv->NdisAdapter.PciBridgeBusNum, + priv->NdisAdapter.PciBridgeDevNum, priv->NdisAdapter.PciBridgeFuncNum); + } + } + +#endif + + rtl8192_parse_pci_configuration(pdev, dev); + + return true; +} --- linux-2.6.35.orig/ubuntu/rtl8192se/Makefile +++ linux-2.6.35/ubuntu/rtl8192se/Makefile @@ -0,0 +1,924 @@ +NIC_SELECT = RTL8192SE + +CC = gcc +KVER := $(shell uname -r) +MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/ + +ifeq ($(shell uname -r|cut -d. -f1,2), 2.6) +###################### KERNEL 2.6 ################################ +ifeq ($(NIC_SELECT),RTL8192CE) +sub_folder = rtl8192c +EXTRA_CFLAGS = -DRTL8192CE +EXTRA_CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0 \ + -DRTL8192SU_DISABLE_CCK_RATE=0 \ + -DDISABLE_BB_RF=0 \ + -DRTL92SE_FPGA_VERIFY=0 \ + -DSIMULATE_ETHERNET=0 \ + -DSUPERMAC_92D_ENABLE=0 \ + -DEARLYMODE_ENABLE_FOR_92D=0 \ + -DRTL8192S_DISABLE_FW_DM=0 \ + -DMP_CCK_WORKAROUND=0 \ + -DRTL8192SE_DISABLE_MGNT_QUEUE=0 \ + -DRTL8190_Download_Firmware_From_Header=1 \ + -DMUTUAL_AUTHENTICATION=1 \ + -DFOR_QMI=0 \ + -DCONFIG_PM_RTL \ + -DCONFIG_PM \ + -DENABLE_IPS \ + -DENABLE_LPS \ + -DCONFIG_ASPM_OR_D3 \ + -DENABLE_GPIO_RADIO_CTL \ + -DMP_DRIVER=0 \ + -DENABLE_DOT11D \ + # \ + -DENABLE_TKIP11N \ + -D_ENABLE_SW_BEACON \ + -DUSE_FW_SOURCE_IMG_FILE \ + -DEFUSE_REPG_WORKAROUND \ + -DENABLE_AMSDU \ + -DADHOC_11N \ + -DFOR_ANDROID_X86 \ + -DCONFIG_64BIT_DMA \ + -DCONFIG_BT_30 \ + # +endif + +ifeq ($(NIC_SELECT),RTL8192SE) +sub_folder = rtl8192s +EXTRA_CFLAGS = -DRTL8192SE +EXTRA_CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0 \ + -DRTL92SE_FPGA_VERIFY=0 \ + -DDEMO_BOARD_SUPPORT=1 \ + -DRTL8192SU_DISABLE_CCK_RATE=0 \ + -DRTL8192S_DISABLE_FW_DM=0 \ + -DHAL_MAC_ENABLE=1 \ + -DHAL_BB_ENABLE=1 \ + -DHAL_RF_ENABLE=1 \ + -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1 \ + -DDISABLE_BB_RF=0 \ + -DCONFIG_PM_RTL \ + -DCONFIG_PM \ + -DENABLE_GPIO_RADIO_CTL \ + -DRTL8190_Download_Firmware_From_Header=1 \ + -DENABLE_LPS \ + -DCONFIG_RX_CMD \ + -DENABLE_IPS \ + -DUSE_FW_SOURCE_IMG_FILE \ + -DENABLE_DOT11D \ + -DCONFIG_ASPM_OR_D3 \ + -DRTLLIB_RADIOTAP \ + # \ + -DCONFIG_CRDA \ + -DCONFIG_CFG_80211 \ + -DCONFIG_RTL_RFKILL \ + -DCONFIG_FW_SETCHAN \ + -DRTL8192S_WAPI_SUPPORT \ + -D_ENABLE_SW_BEACON \ + -DCONFIG_MP \ + -DENABLE_AMSDU \ + -DADHOC_11N \ + -DEFUSE_REPG_WORKAROUN \ + -DENABLE_TKIP11N \ + -DFOR_ANDROID_X86 \ + # + #NOTICE: + #[1] CONFIG_MP is for MP test, + # you should close IPS/LPS/GPIO/ASPM + #[2] In order to support CRDA, RFKILL + # CONFIG_CFG_80211 need to be enabled at first. + #[3] In order to support CRDA, + # DOT11D need to be enabled at first. + #[4] CRDA and RFKILL can be enabled individually. + + +endif +ifeq ($(NIC_SELECT),RTL8190P) +sub_folder = rtl8192e +EXTRA_CFLAGS += -DRTL8190P \ + -DUSE_FW_SOURCE_IMG_FILE \ + -DEEPROM_OLD_FORMAT_SUPPORT=1 \ + -DENABLE_DOT11D \ + -DCONFIG_PM \ + -DCONFIG_PM_RTL \ + # \ + -DENABLE_TKIP11N \ + -DFOR_ANDROID_X86 \ + # +endif +ifeq ($(NIC_SELECT),RTL8192E) +sub_folder = rtl8192e +EXTRA_CFLAGS+=-DRTL8192E \ + -DEEPROM_OLD_FORMAT_SUPPORT=1 \ + -DUSE_FW_SOURCE_IMG_FILE \ + -DENABLE_IPS \ + -DENABLE_LPS \ + -DENABLE_GPIO_RADIO_CTL \ + -DCONFIG_PM_RTL \ + -DCONFIG_PM \ + -DENABLE_DOT11D + # \ + -DCONFIG_RTL8192_IO_MAP \ + -DCONFIG_ASPM_OR_D3 \ + -DENABLE_TKIP11N \ + -DFOR_ANDROID_X86 \ + # +endif +ifeq ($(NIC_SELECT),RTL8191SE_MESH) +sub_folder = rtl8192s +EXTRA_CFLAGS += -DRTL8192SE \ + -DEEPROM_OLD_FORMAT_SUPPORT=0 \ + -DRTL92SE_FPGA_VERIFY=0 \ + -DDEMO_BOARD_SUPPORT=1 \ + -DRTL8192SU_DISABLE_CCK_RATE=0 \ + -DRTL8192S_DISABLE_FW_DM=0 \ + -DHAL_MAC_ENABLE=1 \ + -DHAL_BB_ENABLE=1 \ + -DHAL_RF_ENABLE=1 \ + -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1 \ + -DDISABLE_BB_RF=0 \ + -DRTL8190_Download_Firmware_From_Header=1 \ + -DEFUSE_REPG_WORKAROUND \ + -DCONFIG_PM \ + -DCONFIG_PM_RTL \ + -DENABLE_GPIO_RADIO_CTL \ + -DENABLE_IPS \ + -DENABLE_LPS \ + -DCONFIG_ASPM_OR_D3 \ + -DCUSTOMER_ID_INTEL_CMPC \ + -DMESH_8192_SPECIFIED \ + -D_RTL8192_EXT_PATCH_ \ + -D_MESH_DEBUG_ \ + -DTREE_BASED_ROUTING_ENABLE \ + -DMESH_PATHSEL_DBG_LV=0 \ + -DMESH_PATHSEL_DBG_SIMPLE=0 \ + -DMESH_PATHSEL_DBG_TEST=0 \ + -DBUILT_IN_MSHCLASS \ + -DENABLE_AMSDU \ + -DUSE_FW_SOURCE_IMG_FILE \ + -DENABLE_DOT11D \ + -DCONFIG_RX_CMD \ + # \ + -DADHOC_11N \ + -DCOMPATIBLE_WITH_RALINK_MESH \ + -DCONFIG_CRDA \ + -DCONFIG_FW_SETCHAN \ + -DRTL8192S_WAPI_SUPPORT \ + -DMESH_AUTO_TEST \ + -D_ENABLE_SW_BEACON \ + -DEFUSE_REPG_WORKAROUND \ + -DENABLE_TKIP11N \ + -DFOR_ANDROID_X86 \ + -DCONFIG_MP \ + # +endif + +ifeq ($(NIC_SELECT),RTL8192CE_MESH) +sub_folder = rtl8192c +EXTRA_CFLAGS = -DRTL8192CE +EXTRA_CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0 \ + -DRTL8192SU_DISABLE_CCK_RATE=0 \ + -DDISABLE_BB_RF=0 \ + -DRTL92SE_FPGA_VERIFY=0 \ + -DSIMULATE_ETHERNET=0 \ + -DSUPERMAC_92D_ENABLE=0 \ + -DEARLYMODE_ENABLE_FOR_92D=0 \ + -DRTL8192S_DISABLE_FW_DM=0 \ + -DMP_CCK_WORKAROUND=0 \ + -DRTL8192SE_DISABLE_MGNT_QUEUE=0 \ + -DRTL8190_Download_Firmware_From_Header=1 \ + -DMUTUAL_AUTHENTICATION=1 \ + -DFOR_QMI=0 \ + -DENABLE_TKIP11N \ + -DCONFIG_PM_RTL \ + -DCONFIG_PM \ + -DENABLE_IPS \ + -DENABLE_LPS \ + -DCONFIG_ASPM_OR_D3 \ + -DENABLE_GPIO_RADIO_CTL \ + -DMP_DRIVER=0 \ + -DENABLE_DOT11D \ + -DEFUSE_REPG_WORKAROUND \ + -DCUSTOMER_ID_INTEL_CMPC \ + -DMESH_8192_SPECIFIED \ + -D_RTL8192_EXT_PATCH_ \ + -D_MESH_DEBUG_ \ + -DTREE_BASED_ROUTING_ENABLE \ + -DMESH_PATHSEL_DBG_LV=0 \ + -DMESH_PATHSEL_DBG_SIMPLE=0 \ + -DMESH_PATHSEL_DBG_TEST=0 \ + -DBUILT_IN_MSHCLASS \ + -DENABLE_AMSDU \ + # \ + -D_ENABLE_SW_BEACON \ + -DUSE_FW_SOURCE_IMG_FILE \ + -DCOMPATIBLE_WITH_RALINK_MESH \ + -DEFUSE_REPG_WORKAROUND \ + -DENABLE_AMSDU \ + -DADHOC_11N \ + -DFOR_ANDROID_X86 \ + -DCONFIG_64BIT_DMA \ + # +endif + +#it will fail to compile in suse linux enterprise 10 sp2. This flag is to solve this problem. +ifeq ($(shell uname -r | cut -d. -f1,2,3,4), 2.6.16.60-0) + EXTRA_CFLAGS += -DOPENSUSE_SLED=1 +else + EXTRA_CFLAGS += -DOPENSUSE_SLED=0 +endif + +# Switch AP will fail in moblin2. This flag is to solve this issue. +ifeq ($(shell uname -r | cut -d. -f6 | cut -d- -f1), moblin2) + EXTRA_CFLAGS += -DFOR_MOBLIN +endif + +EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/wireless +EXTRA_CFLAGS += -std=gnu89 +EXTRA_CFLAGS += -O2 +EXTRA_CFLAGS += -mhard-float -DCONFIG_FORCE_HARD_FLOAT=y +EXTRA_CFLAGS += -DTHOMAS_TURBO +#flag for single module compile +EXTRA_CFLAGS += -DBUILT_IN_RTLLIB +#EXTRA_CFLAGS += -DCONFIG_RTLWIFI_DEBUGFS +ifeq ($(NIC_SELECT),RTL8190P) +r8190_pci-objs := rtl_core.o \ + rtl_eeprom.o \ + rtl_ps.o \ + rtl_wx.o \ + rtl_cam.o \ + rtl_dm.o \ + rtl_pm.o \ + rtl_pci.o \ + rtl_debug.o \ + rtl_ethtool.o \ + rtl8192e/r8190P_hwimg.o \ + rtl8192e/r8190P_rtl8256.o \ + rtl8192e/r8192E_dev.o \ + rtl8192e/r8192E_phy.o \ + rtl8192e/r8192E_firmware.o \ + rtl8192e/r8192E_cmdpkt.o \ + ../../rtllib/rtllib_rx.o \ + ../../rtllib/rtllib_softmac.o \ + ../../rtllib/rtllib_tx.o \ + ../../rtllib/rtllib_wx.o \ + ../../rtllib/rtllib_module.o \ + ../../rtllib/rtllib_softmac_wx.o \ + ../../rtllib/rtl819x_HTProc.o \ + ../../rtllib/rtl819x_TSProc.o \ + ../../rtllib/rtl819x_BAProc.o \ + ../../rtllib/dot11d.o \ + ../../rtllib/rtllib_crypt.o \ + ../../rtllib/rtllib_crypt_tkip.o \ + ../../rtllib/rtllib_crypt_ccmp.o \ + ../../rtllib/rtllib_crypt_wep.o + +obj-m := r8190_pci.o +endif +ifeq ($(NIC_SELECT),RTL8192E) +r8192e_pci-objs := rtl_core.o \ + rtl_eeprom.o \ + rtl_ps.o \ + rtl_wx.o \ + rtl_cam.o \ + rtl_dm.o \ + rtl_pm.o \ + rtl_pci.o \ + rtl_debug.o \ + rtl_ethtool.o \ + rtl8192e/r8192E_dev.o \ + rtl8192e/r8192E_phy.o \ + rtl8192e/r8192E_firmware.o \ + rtl8192e/r8192E_cmdpkt.o \ + rtl8192e/r8192E_hwimg.o \ + rtl8192e/r8190P_rtl8256.o \ + ../../rtllib/rtllib_rx.o \ + ../../rtllib/rtllib_softmac.o \ + ../../rtllib/rtllib_tx.o \ + ../../rtllib/rtllib_wx.o \ + ../../rtllib/rtllib_module.o \ + ../../rtllib/rtllib_softmac_wx.o \ + ../../rtllib/rtl819x_HTProc.o \ + ../../rtllib/rtl819x_TSProc.o \ + ../../rtllib/rtl819x_BAProc.o \ + ../../rtllib/dot11d.o \ + ../../rtllib/rtllib_crypt.o \ + ../../rtllib/rtllib_crypt_tkip.o \ + ../../rtllib/rtllib_crypt_ccmp.o \ + ../../rtllib/rtllib_crypt_wep.o +obj-m := r8192e_pci.o +endif +ifeq ($(NIC_SELECT),RTL8192SE) +r8192se_pci-objs := rtl_core.o \ + rtl_regd.o \ + rtl_rfkill.o \ + rtl_eeprom.o \ + rtl_wx.o \ + rtl_cam.o \ + rtl_pm.o \ + rtl_pci.o \ + rtl_ps.o \ + rtl_dm.o \ + rtl_debug.o \ + rtl_ethtool.o \ + rtl8192s/r8192S_dev.o \ + rtl8192s/r8192S_Efuse.o \ + rtl8192s/r8192S_phy.o \ + rtl8192s/r8192S_firmware.o \ + rtl8192s/r8192S_rtl6052.o \ + rtl8192s/r8192S_hwimg.o \ + rtl8192s/r8192S_led.o \ + rtl8192s/r8192S_mp.o \ + rtl8192s/r8192S_scan.o \ + rtllib/rtllib_rx.o \ + rtllib/rtllib_softmac.o \ + rtllib/rtllib_tx.o \ + rtllib/rtllib_wx.o \ + rtllib/rtllib_module.o \ + rtllib/rtllib_softmac_wx.o \ + rtllib/rtl819x_HTProc.o \ + rtllib/rtl819x_TSProc.o \ + rtllib/rtl819x_BAProc.o \ + rtllib/dot11d.o \ + rtllib/rtllib_crypt.o \ + rtllib/rtllib_crypt_tkip.o \ + rtllib/rtllib_crypt_ccmp.o \ + rtllib/rtllib_crypt_wep.o \ + rtllib/wapi.o \ + rtllib/wapi_interface.o +# rtl8192e/r8190P_rtl8256.o +obj-m := r8192se_pci.o +endif + +ifeq ($(NIC_SELECT),RTL8192CE) +r8192ce_pci-objs := rtl_core.o \ + rtl_eeprom.o \ + rtl_wx.o \ + rtl_cam.o \ + rtl_pm.o \ + rtl_pci.o \ + rtl_ps.o \ + rtl_debug.o \ + rtl_ethtool.o \ + rtl8192c/r8192C_dev.o \ + rtl8192c/r8192C_Efuse.o \ + rtl8192c/r8192C_phy.o \ + rtl8192c/r8192C_firmware.o \ + rtl8192c/r8192C_dm.o \ + rtl8192c/r8192C_rtl6052.o \ + rtl8192c/r8192C_hwimg.o \ + rtl8192c/r8192C_led.o \ + rtl8192c/r8192C_com.o \ + ../../rtllib/rtllib_rx.o \ + ../../rtllib/rtllib_softmac.o \ + ../../rtllib/rtllib_tx.o \ + ../../rtllib/rtllib_wx.o \ + ../../rtllib/rtllib_module.o \ + ../../rtllib/rtllib_softmac_wx.o \ + ../../rtllib/rtl819x_HTProc.o \ + ../../rtllib/rtl819x_TSProc.o \ + ../../rtllib/rtl819x_BAProc.o \ + ../../rtllib/dot11d.o \ + ../../rtllib/rtllib_crypt.o \ + ../../rtllib/rtllib_crypt_tkip.o \ + ../../rtllib/rtllib_crypt_ccmp.o \ + ../../rtllib/rtllib_crypt_wep.o \ + # BT3.0 \ + ../../btlib/bt_aes.o \ + ../../btlib/bt_rc4.o \ + ../../btlib/bt_md5c.o \ + ../../btlib/bt_kmsm_hmac.o \ + ../../btlib/bt_kmsm_prf.o \ + ../../btlib/bt_kmsm_eapolkey.o \ + ../../btlib/bt_hci.o \ + ../../btlib/bt_handlePacket.o \ + ../../btlib/bt_wifi.o +obj-m := r8192ce_pci.o +endif + +ifeq ($(NIC_SELECT),RTL8191SE_MESH) +r8192se_pci_mesh-objs := rtl_core.o \ + rtl_regd.o \ + rtl_rfkill.o \ + rtl_eeprom.o \ + rtl_ps.o \ + rtl_wx.o \ + rtl_cam.o \ + rtl_dm.o \ + rtl_pm.o \ + rtl_pci.o \ + rtl_debug.o \ + rtl_ethtool.o \ + rtl_mesh.o \ + rtl8192s/r8192S_dev.o \ + rtl8192s/r8192S_Efuse.o \ + rtl8192s/r8192S_phy.o \ + rtl8192s/r8192S_firmware.o \ + rtl8192s/r8192S_rtl6052.o \ + rtl8192s/r8192S_hwimg.o \ + rtl8192s/r8192S_led.o \ + rtl8192s/r8192S_mp.o \ + rtl8192s/r8192S_scan.o \ + ../../rtllib/rtllib_rx.o \ + ../../rtllib/rtllib_softmac.o \ + ../../rtllib/rtllib_tx.o \ + ../../rtllib/rtllib_wx.o \ + ../../rtllib/rtllib_module.o \ + ../../rtllib/rtllib_softmac_wx.o \ + ../../rtllib/rtl819x_HTProc.o \ + ../../rtllib/rtl819x_TSProc.o \ + ../../rtllib/rtl819x_BAProc.o \ + ../../rtllib/dot11d.o \ + ../../rtllib/rtllib_crypt.o \ + ../../rtllib/rtllib_crypt_tkip.o \ + ../../rtllib/rtllib_crypt_ccmp.o \ + ../../rtllib/rtllib_crypt_wep.o \ + ../../mshclass/msh_class.o \ + ../../mshclass/mesh_8192_util.o \ + ../../mshclass/rtl8192_mesh.o \ + ../../mshclass/rtl8192s_sme.o \ + ../../mshclass/rtl8192_proc.o \ + ../../mshclass/8192s_pathsel.o \ + ../../mshclass/hash_table.o \ + ../../mshclass/rtl8192_sha1.o \ + ../../mshclass/rtl8192_sha256.o \ + ../../mshclass/rtl8192_aes.o \ + ../../mshclass/mesh_abbr_handshk.o \ + ../../mshclass/rtl8192_bn_ctx.o \ + ../../mshclass/rtl8192_bn_asm.o \ + ../../mshclass/rtl8192_bn_gcd.o \ + ../../mshclass/rtl8192_bn_mont.o \ + ../../mshclass/rtl8192_bn_recp.o \ + ../../mshclass/rtl8192_bn_lib.o \ + ../../mshclass/mesh_ath.o \ + ../../mshclass/pathselection.o \ + ../../mshclass/tree_proactive.o +# rtl8192e/r8190P_rtl8256.o +obj-m := r8192se_pci_mesh.o +endif + +ifeq ($(NIC_SELECT),RTL8192CE_MESH) +r8192ce_pci_mesh-objs := rtl_core.o \ + rtl_eeprom.o \ + rtl_wx.o \ + rtl_cam.o \ + rtl_pm.o \ + rtl_pci.o \ + rtl_ps.o \ + rtl_debug.o \ + rtl_ethtool.o \ + rtl_mesh.o \ + rtl8192c/r8192C_dev.o \ + rtl8192c/r8192C_Efuse.o \ + rtl8192c/r8192C_phy.o \ + rtl8192c/r8192C_firmware.o \ + rtl8192c/r8192C_dm.o \ + rtl8192c/r8192C_rtl6052.o \ + rtl8192c/r8192C_hwimg.o \ + rtl8192c/r8192C_led.o \ + rtl8192c/r8192C_com.o \ + rtl8192c/r8192C_PhyParam.o \ + ../../rtllib/rtllib_rx.o \ + ../../rtllib/rtllib_softmac.o \ + ../../rtllib/rtllib_tx.o \ + ../../rtllib/rtllib_wx.o \ + ../../rtllib/rtllib_module.o \ + ../../rtllib/rtllib_softmac_wx.o \ + ../../rtllib/rtl819x_HTProc.o \ + ../../rtllib/rtl819x_TSProc.o \ + ../../rtllib/rtl819x_BAProc.o \ + ../../rtllib/dot11d.o \ + ../../rtllib/rtllib_crypt.o \ + ../../rtllib/rtllib_crypt_tkip.o \ + ../../rtllib/rtllib_crypt_ccmp.o \ + ../../rtllib/rtllib_crypt_wep.o \ + ../../mshclass/msh_class.o \ + ../../mshclass/mesh_8192_util.o \ + ../../mshclass/rtl8192_mesh.o \ + ../../mshclass/rtl8192s_sme.o \ + ../../mshclass/rtl8192_proc.o \ + ../../mshclass/8192s_pathsel.o \ + ../../mshclass/hash_table.o \ + ../../mshclass/rtl8192_sha1.o \ + ../../mshclass/rtl8192_sha256.o \ + ../../mshclass/rtl8192_aes.o \ + ../../mshclass/mesh_abbr_handshk.o \ + ../../mshclass/rtl8192_bn_ctx.o \ + ../../mshclass/rtl8192_bn_asm.o \ + ../../mshclass/rtl8192_bn_gcd.o \ + ../../mshclass/rtl8192_bn_mont.o \ + ../../mshclass/rtl8192_bn_recp.o \ + ../../mshclass/rtl8192_bn_lib.o \ + ../../mshclass/mesh_ath.o \ + ../../mshclass/pathselection.o \ + ../../mshclass/tree_proactive.o + +obj-m := r8192ce_pci_mesh.o +endif + +KSRC := /lib/modules/$(KVER)/build +INSTALL_PREFIX := +IMG_DIR := /lib/firmware/ +all: modules + +modules: + $(MAKE) -C $(KSRC) M=$(PWD) CC=$(CC) modules +install: modules +ifeq ($(NIC_SELECT),RTL8190P) + install -p -m 644 r8190_pci.ko $(MODDESTDIR) +endif +ifeq ($(NIC_SELECT),RTL8192E) + install -p -m 644 r8192e_pci.ko $(MODDESTDIR) +endif +ifeq ($(NIC_SELECT),RTL8192SE) + install -p -m 644 r8192se_pci.ko $(MODDESTDIR) +endif +ifeq ($(NIC_SELECT),RTL8192CE) + install -p -m 644 r8192ce_pci.ko $(MODDESTDIR) +endif +ifeq ($(NIC_SELECT),RTL8191SE_MESH) + mkdir /usr/share/enhanced-easy-network -p + cp ../../script/mesh-tools /usr/share/enhanced-easy-network/ -rf + cp ../../script/mesh.conf /etc/ + cp ../../script/wpa_mesh_tkip.conf /etc/ + cp ../../script/wpa_mesh_ccmp.conf /etc/ + chmod 777 ../../script/do_install + ../../script/do_install + install -p -m 644 r8192se_pci_mesh.ko $(MODDESTDIR) +endif +ifeq ($(NIC_SELECT),RTL8192CE_MESH) + mkdir /usr/share/enhanced-easy-network -p + cp ../../script/mesh-tools /usr/share/enhanced-easy-network/ -rf + cp ../../script/mesh.conf /etc/ + cp ../../script/wpa_mesh_tkip.conf /etc/ + cp ../../script/wpa_mesh_ccmp.conf /etc/ + chmod 777 ../../script/do_install + ../../script/do_install + install -p -m 644 r8192ce_pci_mesh.ko $(MODDESTDIR) +endif + + depmod -a + @#copy firmware img to target fold + $(shell [ -d "$(IMG_DIR)/`uname -r`" ] && cp -fr $(RTL819x_FIRM_DIR)/$(NIC_SELECT) $(IMG_DIR)/`uname -r`/.) + $(shell [ ! -d "$(IMG_DIR)/`uname -r`" ] && cp -fr $(RTL819x_FIRM_DIR)/$(NIC_SELECT) $(IMG_DIR)/.) +uninstall: +ifeq ($(NIC_SELECT),RTL8190P) + $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8190_pci.ko) +endif +ifeq ($(NIC_SELECT),RTL8192E) + $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192e_pci.ko) +endif +ifeq ($(NIC_SELECT),RTL8192SE) + $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci.ko) +endif +ifeq ($(NIC_SELECT),RTL8192CE) + $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192ce_pci.ko) +endif +ifeq ($(NIC_SELECT),RTL8191SE_MESH) + rm -f /etc/wpa_mesh_tkip.conf + rm -f /etc/wpa_mesh_ccmp.conf + $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci_mesh.ko) +endif + depmod -a + @#delete the firmware img + @rm -fr /lib/firmware/$(NIC_SELECT) + @rm -fr /lib/firmware/`uname -r`/$(NIC_SELECT) +else +###################### KERNEL 2.4 ################################ +LD := ld +KSRC := /lib/modules/$(KVER)/build +CONFIG_FILE := $(KSRC)/include/linux/autoconf.h +CFLAGS += -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall +CFLAGS += -I$(KSRC)/include -I. +CFLAGS += -DMODVERSIONS -DEXPORT_SYMTAB -include $(KSRC)/include/linux/modversions.h +#CFLAGS += -D__NO_VERSION__ -DEXPORT_SYMTAB + +ifeq ($(NIC_SELECT),RTL8190P) +sub_folder = rtl8192e +CFLAGS += -DRTL8190P +CFLAGS+=-DEEPROM_OLD_FORMAT_SUPPORT=1 +#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS +endif + +ifeq ($(NIC_SELECT),RTL8192E) +sub_folder = rtl8192e +CFLAGS += -DRTL8192E +CFLAGS+=-DEEPROM_OLD_FORMAT_SUPPORT=1 +CFLAGS+=-DENABLE_GPIO_RADIO_CTL +#CFLAGS += -DENABLE_IPS +#CFLAGS += -DENABLE_IPS +#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS +endif + +ifeq ($(NIC_SELECT),RTL8192SE) +sub_folder = rtl8192s +CFLAGS += -DRTL8192SE +CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0 +CFLAGS += -DRTL92SE_FPGA_VERIFY=0 +CFLAGS += -DDEMO_BOARD_SUPPORT=1 +CFLAGS += -DRTL8192SU_DISABLE_CCK_RATE=0 +CFLAGS += -DRTL8192S_DISABLE_FW_DM=0 +CFLAGS += -DHAL_MAC_ENABLE=1 +CFLAGS += -DHAL_BB_ENABLE=1 +CFLAGS += -DHAL_RF_ENABLE=1 +CFLAGS += -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1 +CFLAGS += -DDISABLE_BB_RF=0 +CFLAGS += -DRTL8190_Download_Firmware_From_Header=1 +#CFLAGS += -DRTL8192S_WAPI_SUPPORT=1 +#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS +#CFLAGS += -DCONFIG_PM_RTL +#CFLAGS += -DENABLE_GPIO_RADIO_CTL +#EXTRA_CFLAGS += -DCONFIG_PM +#EXTRA_CFLAGS += -DENABLE_IPS +#EXTRA_CFLAGS += -DENABLE_LPS +#EXTRA_CFLAGS += -DCONFIG_ASPM_OR_D3 +#CFLAGS += -DENABLE_AMSDU +#CFLAGS += -DADHOC_11N +endif + +ifeq ($(NIC_SELECT),RTL8191SE_MESH) +sub_folder = rtl8192s +CFLAGS += -DRTL8192SE +CFLAGS +=-DEEPROM_OLD_FORMAT_SUPPORT=1 +#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS +CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0 +CFLAGS += -DRTL92SE_FPGA_VERIFY=0 +CFLAGS += -DDEMO_BOARD_SUPPORT=1 +CFLAGS += -DRTL8192SU_DISABLE_CCK_RATE=0 +CFLAGS += -DRTL8192S_DISABLE_FW_DM=0 +CFLAGS += -DHAL_MAC_ENABLE=1 +CFLAGS += -DHAL_BB_ENABLE=1 +CFLAGS += -DHAL_RF_ENABLE=1 +CFLAGS += -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1 +CFLAGS += -DDISABLE_BB_RF=0 +CFLAGS += -DCONFIG_PM_RTL +CFLAGS += -DENABLE_GPIO_RADIO_CTL +CFLAGS += -DRTL8190_Download_Firmware_From_Header=1 +CFLAGS += -DENABLE_IPS +CFLAGS += -DENABLE_LPS +CFLAGS += -DCONFIG_ASPM_OR_D3 +CFLAGS += -D_RTL8192_EXT_PATCH_ \ + -DMESH_8192_SPECIFIED \ + -D_MESH_DEBUG_ \ + -DTREE_BASED_ROUTING_ENABLE \ + -DMESH_PATHSEL_DBG_LV=0 \ + -DMESH_PATHSEL_DBG_SIMPLE=0 \ + -DMESH_PATHSEL_DBG_TEST=0\ + -DBUILT_IN_MSHCLASS \ + -DCUSTOMER_ID_INTEL_CMPC \ + -DENABLE_AMSDU +endif +CFLAGS += -DTHOMAS_TURBO +CFLAGS += -DENABLE_DOT11D + +#flag for single module compile +CFLAGS += -DBUILT_IN_RTLLIB +CFLAGS += -DBUILT_IN_CRYPTO +#CFLAGS += -DENABLE_TKIP11N + +SMP := $(shell $(CC) $(CFLAGS) -E -dM $(CONFIG_FILE) | \ + grep CONFIG_SMP | awk '{print $$3}') +ifneq ($(SMP),1) + SMP := 0 +endif +ifeq ($(SMP),1) + CFLAGS += -D__SMP__ +endif +OBJS := ${patsubst %.c, %.o, ${wildcard *.c}} + +ifeq ($(NIC_SELECT),RTL8190P) +all:r8190_pci.o +r8190_pci.o: \ + rtl_core.o \ + rtl_eeprom.o \ + rtl_ps.o \ + rtl_dm.o \ + rtl_wx.o \ + rtl_cam.o \ + rtl_pm.o \ + rtl_pci.o \ + rtl_debug.o \ + rtl_ethtool.o \ + rtl8192e/r8190P_rtl8256.o \ + rtl8192e/r8190P_hwimg.o \ + rtl8192e/r8192E_dev.o \ + rtl8192e/r8192E_cmdpkt.o\ + rtl8192e/r8192E_firmware.o \ + rtl8192e/r8192E_phy.o \ + ../../rtllib/rtllib_rx.o \ + ../../rtllib/rtllib_softmac.o \ + ../../rtllib/rtllib_tx.o \ + ../../rtllib/rtllib_wx.o \ + ../../rtllib/rtllib_module.o \ + ../../rtllib/rtllib_softmac_wx.o \ + ../../rtllib/rtl819x_HTProc.o \ + ../../rtllib/rtl819x_TSProc.o \ + ../../rtllib/rtl819x_BAProc.o \ + ../../rtllib/dot11d.o \ + ../../rtllib/rtllib_crypt.o \ + ../../rtllib/rtllib_crypt_tkip.o \ + ../../rtllib/rtllib_crypt_ccmp.o \ + ../../rtllib/rtllib_crypt_wep.o \ + ../../rtllib/api.o \ + ../../rtllib/compress.o \ + ../../rtllib/digest.o \ + ../../rtllib/cipher.o \ + ../../rtllib/scatterwalk.o \ + ../../rtllib/arc4.o \ + ../../rtllib/michael_mic.o \ + ../../rtllib/aes.o \ + ../../rtllib/proc.o + + $(LD) -r $^ -o $@ +install:r8190_pci.o + install -p -m 644 r8190_pci.o $(MODDESTDIR) + @depmod -a +uninstall: + $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8190_pci.o) + @depmod -a +endif + +ifeq ($(NIC_SELECT),RTL8192E) +all:r8192e_pci.o +r8192e_pci.o: \ + rtl_core.o \ + rtl_eeprom.o \ + rtl_ps.o \ + rtl_dm.o \ + rtl_wx.o \ + rtl_cam.o \ + rtl_pm.o \ + rtl_pci.o \ + rtl_debug.o \ + rtl_ethtool.o \ + rtl8192e/r8192E_dev.o \ + rtl8192e/r8190P_rtl8256.o \ + rtl8192e/r8192E_hwimg.o \ + rtl8192e/r8192E_cmdpkt.o\ + rtl8192e/r8192E_firmware.o \ + rtl8192e/r8192E_phy.o \ + ../../rtllib/rtllib_rx.o \ + ../../rtllib/rtllib_softmac.o \ + ../../rtllib/rtllib_tx.o \ + ../../rtllib/rtllib_wx.o \ + ../../rtllib/rtllib_module.o \ + ../../rtllib/rtllib_softmac_wx.o \ + ../../rtllib/rtl819x_HTProc.o \ + ../../rtllib/rtl819x_TSProc.o \ + ../../rtllib/rtl819x_BAProc.o \ + ../../rtllib/dot11d.o \ + ../../rtllib/rtllib_crypt.o \ + ../../rtllib/rtllib_crypt_tkip.o \ + ../../rtllib/rtllib_crypt_ccmp.o \ + ../../rtllib/rtllib_crypt_wep.o \ + ../../rtllib/api.o \ + ../../rtllib/compress.o \ + ../../rtllib/digest.o \ + ../../rtllib/cipher.o \ + ../../rtllib/scatterwalk.o \ + ../../rtllib/arc4.o \ + ../../rtllib/michael_mic.o \ + ../../rtllib/aes.o \ + ../../rtllib/proc.o + + $(LD) -r $^ -o $@ +install: + install -p -m 644 r8192e_pci.o $(MODDESTDIR) + @depmod -a +uninstall: + $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192e_pci.o) + @depmod -a +endif + +ifeq ($(NIC_SELECT),RTL8192SE) +all:r8192se_pci.o +r8192se_pci.o: rtl_core.o \ + rtl_debug.o \ + rtl_ethtool.o \ + rtl_eeprom.o \ + rtl_ps.o \ + rtl_dm.o \ + rtl_wx.o \ + rtl_cam.o \ + rtl_pm.o \ + rtl_pci.o \ + rtl8192s/r8192S_dev.o \ + rtl8192s/r8192S_Efuse.o \ + rtl8192s/r8192S_firmware.o \ + rtl8192s/r8192S_hwimg.o \ + rtl8192s/r8192S_led.o \ + rtl8192s/r8192S_phy.o \ + rtl8192s/r8192S_rtl6052.o \ + ../../rtllib/rtllib_rx.o \ + ../../rtllib/rtllib_softmac.o \ + ../../rtllib/rtllib_tx.o \ + ../../rtllib/rtllib_wx.o \ + ../../rtllib/rtllib_module.o \ + ../../rtllib/rtllib_softmac_wx.o \ + ../../rtllib/rtl819x_HTProc.o \ + ../../rtllib/rtl819x_TSProc.o \ + ../../rtllib/rtl819x_BAProc.o \ + ../../rtllib/dot11d.o \ + ../../rtllib/rtllib_crypt.o \ + ../../rtllib/rtllib_crypt_tkip.o \ + ../../rtllib/rtllib_crypt_ccmp.o \ + ../../rtllib/rtllib_crypt_wep.o \ + ../../rtllib/api.o \ + ../../rtllib/compress.o \ + ../../rtllib/digest.o \ + ../../rtllib/cipher.o \ + ../../rtllib/scatterwalk.o \ + ../../rtllib/arc4.o \ + ../../rtllib/michael_mic.o \ + ../../rtllib/aes.o \ + ../../rtllib/proc.o \ + ../../rtllib/wapi.o \ + ../../rtllib/wapi_interface.o +# rtl8192e/r8192E_cmdpkt.o +# rtl8192e/r8190P_rtl8256.o + $(LD) -r $^ -o $@ +install:r8192se_pci.o + install -p -m 644 r8192se_pci.o $(MODDESTDIR) + @depmod -a +uninstall: + $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci.o) + @depmod -a +endif + +ifeq ($(NIC_SELECT),RTL8191SE_MESH ) +all:r8192se_pci_mesh.o +r8192se_pci_mesh.o: \ + rtl_core.o \ + rtl_eeprom.o \ + rtl_ps.o \ + rtl_dm.o \ + rtl_wx.o \ + rtl_cam.o \ + rtl_pm.o \ + rtl_pci.o \ + rtl_debug.o \ + rtl_ethtool.o \ + rtl_mesh.o \ + rtl8192s/r8192S_dev.o \ + rtl8192s/r8192S_Efuse.o \ + rtl8192s/r8192S_firmware.o \ + rtl8192s/r8192S_hwimg.o \ + rtl8192s/r8192S_led.o \ + rtl8192s/r8192S_phy.o \ + rtl8192s/r8192S_rtl6052.o \ + ../../rtllib/rtllib_rx.o \ + ../../rtllib/rtllib_softmac.o \ + ../../rtllib/rtllib_tx.o \ + ../../rtllib/rtllib_wx.o \ + ../../rtllib/rtllib_module.o \ + ../../rtllib/rtllib_softmac_wx.o \ + ../../rtllib/rtl819x_HTProc.o \ + ../../rtllib/rtl819x_TSProc.o \ + ../../rtllib/rtl819x_BAProc.o \ + ../../rtllib/dot11d.o \ + ../../rtllib/rtllib_crypt.o \ + ../../rtllib/rtllib_crypt_tkip.o \ + ../../rtllib/rtllib_crypt_ccmp.o \ + ../../rtllib/rtllib_crypt_wep.o \ + ../../mshclass/msh_class.o \ + ../../mshclass/mesh_8192_util.o \ + ../../mshclass/rtl8192_mesh.o \ + ../../mshclass/rtl8192s_sme.o \ + ../../mshclass/rtl8192_proc.o \ + ../../mshclass/8192s_pathsel.o \ + ../../mshclass/hash_table.o \ + ../../mshclass/pathselection.o \ + ../../mshclass/tree_proactive.o \ + ../../mshclass/hash_table.o \ + ../../mshclass/sha1.o \ + ../../mshclass/sha256.o \ + ../../mshclass/aes.o \ + ../../mshclass/mesh_abbr_handshk.o \ + ../../mshclass/bn_ctx.o \ + ../../mshclass/bn_asm.o \ + ../../mshclass/bn_gcd.o \ + ../../mshclass/bn_mont.o \ + ../../mshclass/bn_recp.o \ + ../../mshclass/bn_lib.o \ + ../../mshclass/mesh_ath.o +# rtl8192e/r8190P_rtl8256.o \ +# rtl8192e/r8192E_cmdpkt.o + $(LD) -r $^ -o $@ +install:r8192se_pci_mesh.o + install -p -m 644 r8192se_pci_mesh.o $(MODDESTDIR) + @depmod -a +uninstall: + $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci_mesh.o) + @depmod -a +endif +endif + +.PHONY:clean +clean: + rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~ + rm -fr .tmp_versions + rm -fr Modules.symvers + rm -fr Module.symvers + rm -fr Module.markers + rm -fr modules.order + rm -fr tags + @make -C $(sub_folder)/ clean --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl_pm.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl_pm.h @@ -0,0 +1,39 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + +#ifdef CONFIG_PM_RTL + +#ifndef R8192E_PM_H +#define R8192E_PM_H + +#include +#include + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) +#define pm_message_t u32 +#endif + +int rtl8192E_save_state (struct pci_dev *dev, pm_message_t state); +int rtl8192E_suspend (struct pci_dev *dev, pm_message_t state); +int rtl8192E_resume (struct pci_dev *dev); +int rtl8192E_enable_wake (struct pci_dev *dev, pm_message_t state, int enable); + +#endif + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/michael_mic.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/michael_mic.c @@ -0,0 +1,194 @@ +/* + * Cryptographic API + * + * Michael MIC (IEEE 802.11i/TKIP) keyed digest + * + * Copyright (c) 2004 Jouni Malinen + * + * This program is free software; you can 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 +#include +#include +#include "rtl_crypto.h" + + +struct michael_mic_ctx { + u8 pending[4]; + size_t pending_len; + + u32 l, r; +}; + + +static inline u32 rotl(u32 val, int bits) +{ + return (val << bits) | (val >> (32 - bits)); +} + + +static inline u32 rotr(u32 val, int bits) +{ + return (val >> bits) | (val << (32 - bits)); +} + + +static inline u32 xswap(u32 val) +{ + return ((val & 0x00ff00ff) << 8) | ((val & 0xff00ff00) >> 8); +} + + +#define michael_block(l, r) \ +do { \ + r ^= rotl(l, 17); \ + l += r; \ + r ^= xswap(l); \ + l += r; \ + r ^= rotl(l, 3); \ + l += r; \ + r ^= rotr(l, 2); \ + l += r; \ +} while (0) + + +static inline u32 get_le32(const u8 *p) +{ + return p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); +} + + +static inline void put_le32(u8 *p, u32 v) +{ + p[0] = v; + p[1] = v >> 8; + p[2] = v >> 16; + p[3] = v >> 24; +} + + +static void michael_init(void *ctx) +{ + struct michael_mic_ctx *mctx = ctx; + mctx->pending_len = 0; +} + + +static void michael_update(void *ctx, const u8 *data, unsigned int len) +{ + struct michael_mic_ctx *mctx = ctx; + + if (mctx->pending_len) { + int flen = 4 - mctx->pending_len; + if (flen > len) + flen = len; + memcpy(&mctx->pending[mctx->pending_len], data, flen); + mctx->pending_len += flen; + data += flen; + len -= flen; + + if (mctx->pending_len < 4) + return; + + mctx->l ^= get_le32(mctx->pending); + michael_block(mctx->l, mctx->r); + mctx->pending_len = 0; + } + + while (len >= 4) { + mctx->l ^= get_le32(data); + michael_block(mctx->l, mctx->r); + data += 4; + len -= 4; + } + + if (len > 0) { + mctx->pending_len = len; + memcpy(mctx->pending, data, len); + } +} + + +static void michael_final(void *ctx, u8 *out) +{ + struct michael_mic_ctx *mctx = ctx; + u8 *data = mctx->pending; + + /* Last block and padding (0x5a, 4..7 x 0) */ + switch (mctx->pending_len) { + case 0: + mctx->l ^= 0x5a; + break; + case 1: + mctx->l ^= data[0] | 0x5a00; + break; + case 2: + mctx->l ^= data[0] | (data[1] << 8) | 0x5a0000; + break; + case 3: + mctx->l ^= data[0] | (data[1] << 8) | (data[2] << 16) | + 0x5a000000; + break; + } + michael_block(mctx->l, mctx->r); + /* l ^= 0; */ + michael_block(mctx->l, mctx->r); + + put_le32(out, mctx->l); + put_le32(out + 4, mctx->r); +} + + +static int michael_setkey(void *ctx, const u8 *key, unsigned int keylen, + u32 *flags) +{ + struct michael_mic_ctx *mctx = ctx; + if (keylen != 8) { + if (flags) + *flags = CRYPTO_TFM_RES_BAD_KEY_LEN; + return -EINVAL; + } + mctx->l = get_le32(key); + mctx->r = get_le32(key + 4); + return 0; +} + + +static struct crypto_alg michael_mic_alg = { + .cra_name = "michael_mic", + .cra_flags = CRYPTO_ALG_TYPE_DIGEST, + .cra_blocksize = 8, + .cra_ctxsize = sizeof(struct michael_mic_ctx), + .cra_module = THIS_MODULE, + .cra_list = LIST_HEAD_INIT(michael_mic_alg.cra_list), + .cra_u = { .digest = { + .dia_digestsize = 8, + .dia_init = michael_init, + .dia_update = michael_update, + .dia_final = michael_final, + .dia_setkey = michael_setkey } } +}; + + +int __init michael_mic_init(void) +{ + return crypto_register_alg(&michael_mic_alg); +} + + +void __exit michael_mic_exit(void) +{ + crypto_unregister_alg(&michael_mic_alg); +} + +#ifndef BUILT_IN_CRYPTO +module_init(michael_mic_init); +module_exit(michael_mic_exit); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("Michael MIC"); +MODULE_AUTHOR("Jouni Malinen "); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib_crypt.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib_crypt.c @@ -0,0 +1,268 @@ +/* + * Host AP crypto routines + * + * Copyright (c) 2002-2003, Jouni Malinen + * Portions Copyright (C) 2004, Intel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See README and COPYING for + * more details. + * + */ + +#include +#include +#include +#include +#include +#include + +#include "rtllib.h" + +#ifndef BUILT_IN_RTLLIB +MODULE_AUTHOR("Jouni Malinen"); +MODULE_DESCRIPTION("HostAP crypto"); +MODULE_LICENSE("GPL"); +#endif + +struct rtllib_crypto_alg { + struct list_head list; + struct rtllib_crypto_ops *ops; +}; + + +struct rtllib_crypto { + struct list_head algs; + spinlock_t lock; +}; + +static struct rtllib_crypto *hcrypt; + +void rtllib_crypt_deinit_entries(struct rtllib_device *ieee, + int force) +{ + struct list_head *ptr, *n; + struct rtllib_crypt_data *entry; + + for (ptr = ieee->crypt_deinit_list.next, n = ptr->next; + ptr != &ieee->crypt_deinit_list; ptr = n, n = ptr->next) { + entry = list_entry(ptr, struct rtllib_crypt_data, list); + + if (atomic_read(&entry->refcnt) != 0 && !force) + continue; + + list_del(ptr); + + if (entry->ops) { + entry->ops->deinit(entry->priv); +#ifndef BUILT_IN_RTLLIB +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) + module_put(entry->ops->owner); +#else + __MOD_DEC_USE_COUNT(entry->ops->owner); +#endif +#endif + } + kfree(entry); + } +} + +void rtllib_crypt_deinit_handler(unsigned long data) +{ + struct rtllib_device *ieee = (struct rtllib_device *)data; + unsigned long flags; + + spin_lock_irqsave(&ieee->lock, flags); + rtllib_crypt_deinit_entries(ieee, 0); + if (!list_empty(&ieee->crypt_deinit_list)) { + printk(KERN_DEBUG "%s: entries remaining in delayed crypt " + "deletion list\n", ieee->dev->name); + ieee->crypt_deinit_timer.expires = jiffies + HZ; + add_timer(&ieee->crypt_deinit_timer); + } + spin_unlock_irqrestore(&ieee->lock, flags); + +} + +void rtllib_crypt_delayed_deinit(struct rtllib_device *ieee, + struct rtllib_crypt_data **crypt) +{ + struct rtllib_crypt_data *tmp; + unsigned long flags; + + if (*crypt == NULL) + return; + + tmp = *crypt; + *crypt = NULL; + + /* must not run ops->deinit() while there may be pending encrypt or + * decrypt operations. Use a list of delayed deinits to avoid needing + * locking. */ + + spin_lock_irqsave(&ieee->lock, flags); + list_add(&tmp->list, &ieee->crypt_deinit_list); + if (!timer_pending(&ieee->crypt_deinit_timer)) { + ieee->crypt_deinit_timer.expires = jiffies + HZ; + add_timer(&ieee->crypt_deinit_timer); + } + spin_unlock_irqrestore(&ieee->lock, flags); +} + +int rtllib_register_crypto_ops(struct rtllib_crypto_ops *ops) +{ + unsigned long flags; + struct rtllib_crypto_alg *alg; + + if (hcrypt == NULL) + return -1; + + alg = kmalloc(sizeof(*alg), GFP_KERNEL); + if (alg == NULL) + return -ENOMEM; + + memset(alg, 0, sizeof(*alg)); + alg->ops = ops; + + spin_lock_irqsave(&hcrypt->lock, flags); + list_add(&alg->list, &hcrypt->algs); + spin_unlock_irqrestore(&hcrypt->lock, flags); + + printk(KERN_DEBUG "rtllib_crypt: registered algorithm '%s'\n", + ops->name); + + return 0; +} + +int rtllib_unregister_crypto_ops(struct rtllib_crypto_ops *ops) +{ + unsigned long flags; + struct list_head *ptr; + struct rtllib_crypto_alg *del_alg = NULL; + + if (hcrypt == NULL) + return -1; + + spin_lock_irqsave(&hcrypt->lock, flags); + for (ptr = hcrypt->algs.next; ptr != &hcrypt->algs; ptr = ptr->next) { + struct rtllib_crypto_alg *alg = + (struct rtllib_crypto_alg *) ptr; + if (alg->ops == ops) { + list_del(&alg->list); + del_alg = alg; + break; + } + } + spin_unlock_irqrestore(&hcrypt->lock, flags); + + if (del_alg) { + printk(KERN_DEBUG "rtllib_crypt: unregistered algorithm " + "'%s'\n", ops->name); + kfree(del_alg); + } + + return del_alg ? 0 : -1; +} + + +struct rtllib_crypto_ops * rtllib_get_crypto_ops(const char *name) +{ + unsigned long flags; + struct list_head *ptr; + struct rtllib_crypto_alg *found_alg = NULL; + + if (hcrypt == NULL) + return NULL; + + spin_lock_irqsave(&hcrypt->lock, flags); + for (ptr = hcrypt->algs.next; ptr != &hcrypt->algs; ptr = ptr->next) { + struct rtllib_crypto_alg *alg = + (struct rtllib_crypto_alg *) ptr; + if (strcmp(alg->ops->name, name) == 0) { + found_alg = alg; + break; + } + } + spin_unlock_irqrestore(&hcrypt->lock, flags); + + if (found_alg) + return found_alg->ops; + else + return NULL; +} + + +static void * rtllib_crypt_null_init(int keyidx) { return (void *) 1; } +static void rtllib_crypt_null_deinit(void *priv) {} + +static struct rtllib_crypto_ops rtllib_crypt_null = { + .name = "NULL", + .init = rtllib_crypt_null_init, + .deinit = rtllib_crypt_null_deinit, + .encrypt_mpdu = NULL, + .decrypt_mpdu = NULL, + .encrypt_msdu = NULL, + .decrypt_msdu = NULL, + .set_key = NULL, + .get_key = NULL, + .extra_prefix_len = 0, + .extra_postfix_len = 0, + .owner = THIS_MODULE, +}; + + +int __init rtllib_crypto_init(void) +{ + int ret = -ENOMEM; + + hcrypt = kmalloc(sizeof(*hcrypt), GFP_KERNEL); + if (!hcrypt) + goto out; + + memset(hcrypt, 0, sizeof(*hcrypt)); + INIT_LIST_HEAD(&hcrypt->algs); + spin_lock_init(&hcrypt->lock); + + ret = rtllib_register_crypto_ops(&rtllib_crypt_null); + if (ret < 0) { + kfree(hcrypt); + hcrypt = NULL; + } +out: + return ret; +} + + +void __exit rtllib_crypto_deinit(void) +{ + struct list_head *ptr, *n; + + if (hcrypt == NULL) + return; + + for (ptr = hcrypt->algs.next, n = ptr->next; ptr != &hcrypt->algs; + ptr = n, n = ptr->next) { + struct rtllib_crypto_alg *alg = + (struct rtllib_crypto_alg *) ptr; + list_del(ptr); + printk(KERN_DEBUG "rtllib_crypt: unregistered algorithm " + "'%s' (deinit)\n", alg->ops->name); + kfree(alg); + } + + kfree(hcrypt); +} + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(rtllib_crypt_deinit_entries); +EXPORT_SYMBOL_RSL(rtllib_crypt_deinit_handler); +EXPORT_SYMBOL_RSL(rtllib_crypt_delayed_deinit); + +EXPORT_SYMBOL_RSL(rtllib_register_crypto_ops); +EXPORT_SYMBOL_RSL(rtllib_unregister_crypto_ops); +EXPORT_SYMBOL_RSL(rtllib_get_crypto_ops); + +module_init(rtllib_crypto_init); +module_exit(rtllib_crypto_deinit); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib_softmac.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib_softmac.c @@ -0,0 +1,5423 @@ +/* IEEE 802.11 SoftMAC layer + * Copyright (c) 2005 Andrea Merello + * + * Mostly extracted from the rtl8180-sa2400 driver for the + * in-kernel generic ieee802.11 stack. + * + * Few lines might be stolen from other part of the rtllib + * stack. Copyright who own it's copyright + * + * WPA code stolen from the ipw2200 driver. + * Copyright who own it's copyright. + * + * released under the GPL + */ + + +#include "rtllib.h" + +#include +#include +#include +#include +#ifdef ENABLE_DOT11D +#include "dot11d.h" +#endif + +#ifdef RTK_DMP_PLATFORM +#include +#endif +extern void _setup_timer( struct timer_list*, void*, unsigned long ); +u8 rsn_authen_cipher_suite[16][4] = { + {0x00,0x0F,0xAC,0x00}, + {0x00,0x0F,0xAC,0x01}, + {0x00,0x0F,0xAC,0x02}, + {0x00,0x0F,0xAC,0x03}, + {0x00,0x0F,0xAC,0x04}, + {0x00,0x0F,0xAC,0x05}, +}; + +short rtllib_is_54g(struct rtllib_network *net) +{ + return ((net->rates_ex_len > 0) || (net->rates_len > 4)); +} + +short rtllib_is_shortslot(struct rtllib_network net) +{ + return (net.capability & WLAN_CAPABILITY_SHORT_SLOT_TIME); +} + +/* returns the total length needed for pleacing the RATE MFIE + * tag and the EXTENDED RATE MFIE tag if needed. + * It encludes two bytes per tag for the tag itself and its len + */ +unsigned int rtllib_MFIE_rate_len(struct rtllib_device *ieee) +{ + unsigned int rate_len = 0; + + if (ieee->modulation & RTLLIB_CCK_MODULATION) + rate_len = RTLLIB_CCK_RATE_LEN + 2; + + if (ieee->modulation & RTLLIB_OFDM_MODULATION) + + rate_len += RTLLIB_OFDM_RATE_LEN + 2; + + return rate_len; +} + +/* pleace the MFIE rate, tag to the memory (double) poined. + * Then it updates the pointer so that + * it points after the new MFIE tag added. + */ +void rtllib_MFIE_Brate(struct rtllib_device *ieee, u8 **tag_p) +{ + u8 *tag = *tag_p; + + if (ieee->modulation & RTLLIB_CCK_MODULATION){ + *tag++ = MFIE_TYPE_RATES; + *tag++ = 4; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_1MB; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_2MB; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_5MB; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_11MB; + } + + /* We may add an option for custom rates that specific HW might support */ + *tag_p = tag; +} + +void rtllib_MFIE_Grate(struct rtllib_device *ieee, u8 **tag_p) +{ + u8 *tag = *tag_p; + + if (ieee->modulation & RTLLIB_OFDM_MODULATION){ + + *tag++ = MFIE_TYPE_RATES_EX; + *tag++ = 8; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_6MB; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_9MB; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_12MB; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_18MB; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_24MB; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_36MB; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_48MB; + *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_54MB; + + } + + /* We may add an option for custom rates that specific HW might support */ + *tag_p = tag; +} + +void rtllib_WMM_Info(struct rtllib_device *ieee, u8 **tag_p) { + u8 *tag = *tag_p; + + *tag++ = MFIE_TYPE_GENERIC; + *tag++ = 7; + *tag++ = 0x00; + *tag++ = 0x50; + *tag++ = 0xf2; + *tag++ = 0x02; + *tag++ = 0x00; + *tag++ = 0x01; +#ifdef SUPPORT_USPD + if(ieee->current_network.wmm_info & 0x80) { + *tag++ = 0x0f|MAX_SP_Len; + } else { + *tag++ = MAX_SP_Len; + } +#else + *tag++ = MAX_SP_Len; +#endif + *tag_p = tag; +} + +#ifdef THOMAS_TURBO +void rtllib_TURBO_Info(struct rtllib_device *ieee, u8 **tag_p) { + u8 *tag = *tag_p; + + *tag++ = MFIE_TYPE_GENERIC; + *tag++ = 7; + *tag++ = 0x00; + *tag++ = 0xe0; + *tag++ = 0x4c; + *tag++ = 0x01; + *tag++ = 0x02; + *tag++ = 0x11; + *tag++ = 0x00; + + *tag_p = tag; + printk(KERN_ALERT "This is enable turbo mode IE process\n"); +} +#endif + +void enqueue_mgmt(struct rtllib_device *ieee, struct sk_buff *skb) +{ + int nh; + nh = (ieee->mgmt_queue_head +1) % MGMT_QUEUE_NUM; + +/* + * if the queue is full but we have newer frames then + * just overwrites the oldest. + * + * if (nh == ieee->mgmt_queue_tail) + * return -1; + */ + ieee->mgmt_queue_head = nh; + ieee->mgmt_queue_ring[nh] = skb; + +} + +struct sk_buff *dequeue_mgmt(struct rtllib_device *ieee) +{ + struct sk_buff *ret; + + if(ieee->mgmt_queue_tail == ieee->mgmt_queue_head) + return NULL; + + ret = ieee->mgmt_queue_ring[ieee->mgmt_queue_tail]; + + ieee->mgmt_queue_tail = + (ieee->mgmt_queue_tail+1) % MGMT_QUEUE_NUM; + + return ret; +} + +void init_mgmt_queue(struct rtllib_device *ieee) +{ + ieee->mgmt_queue_tail = ieee->mgmt_queue_head = 0; +} + + +u8 +MgntQuery_TxRateExcludeCCKRates(struct rtllib_device *ieee) +{ + u16 i; + u8 QueryRate = 0; + u8 BasicRate; + + + for( i = 0; i < ieee->current_network.rates_len; i++) + { + BasicRate = ieee->current_network.rates[i]&0x7F; + if(!rtllib_is_cck_rate(BasicRate)) + { + if(QueryRate == 0) + { + QueryRate = BasicRate; + } + else + { + if(BasicRate < QueryRate) + { + QueryRate = BasicRate; + } + } + } + } + + if(QueryRate == 0) + { + QueryRate = 12; + printk("No BasicRate found!!\n"); + } + return QueryRate; +} + +u8 MgntQuery_MgntFrameTxRate(struct rtllib_device *ieee) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + u8 rate; + +#if defined RTL8190P || defined RTL8192E || defined RTL8192U + if(pHTInfo->IOTAction & HT_IOT_ACT_MGNT_USE_CCK_6M) + rate = 0x0c; + else + rate = ieee->basic_rate & 0x7f; +#elif defined RTL8192SE || defined RTL8192SU || defined RTL8192CE + if(pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) + { + rate = MgntQuery_TxRateExcludeCCKRates(ieee); + } + else + rate = ieee->basic_rate & 0x7f; +#endif + + if(rate == 0){ + if(ieee->mode == IEEE_A|| + ieee->mode== IEEE_N_5G|| + (ieee->mode== IEEE_N_24G&&!pHTInfo->bCurSuppCCK)) + rate = 0x0c; + else + rate = 0x02; + } + + /* + if( pMgntInfo->bScanInProgress || (pMgntInfo->bDualModeScanStep!=0) ) + { + if(pMgntInfo->dot11CurrentWirelessMode==WIRELESS_MODE_A) + rate = 0x0c; + else + rate = 0x02; + } + */ + return rate; +} + + +void rtllib_sta_wakeup(struct rtllib_device *ieee, short nl); + +inline void softmac_mgmt_xmit(struct sk_buff *skb, struct rtllib_device *ieee) +{ + unsigned long flags; + short single = ieee->softmac_features & IEEE_SOFTMAC_SINGLE_QUEUE; + struct rtllib_hdr_3addr *header= + (struct rtllib_hdr_3addr *) skb->data; + + cb_desc *tcb_desc = (cb_desc *)(skb->cb + 8); + spin_lock_irqsave(&ieee->lock, flags); + + /* called with 2nd param 0, no mgmt lock required */ + rtllib_sta_wakeup(ieee,0); + + if(header->frame_ctl == RTLLIB_STYPE_BEACON) { +#if defined(RTL8192CE) && defined(_RTL8192_EXT_PATCH_) + if((ieee->iw_mode == IW_MODE_MESH) && !ieee->only_mesh) + tcb_desc->queue_index = MGNT_QUEUE; + else +#endif + tcb_desc->queue_index = BEACON_QUEUE; + } else { + tcb_desc->queue_index = MGNT_QUEUE; + } + + if(ieee->disable_mgnt_queue) + tcb_desc->queue_index = HIGH_QUEUE; + + tcb_desc->data_rate = MgntQuery_MgntFrameTxRate(ieee); + tcb_desc->RATRIndex = 7; + tcb_desc->bTxDisableRateFallBack = 1; + tcb_desc->bTxUseDriverAssingedRate = 1; +#ifdef _RTL8192_EXT_PATCH_ + tcb_desc->macId = 0; +#endif + if(single){ + if(ieee->queue_stop){ + enqueue_mgmt(ieee,skb); + }else{ + header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0]<<4); + + if (ieee->seq_ctrl[0] == 0xFFF) + ieee->seq_ctrl[0] = 0; + else + ieee->seq_ctrl[0]++; + + /* avoid watchdog triggers */ + ieee->softmac_data_hard_start_xmit(skb,ieee->dev,ieee->basic_rate); + } + + spin_unlock_irqrestore(&ieee->lock, flags); + }else{ + spin_unlock_irqrestore(&ieee->lock, flags); + spin_lock_irqsave(&ieee->mgmt_tx_lock, flags); + + header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4); + + if (ieee->seq_ctrl[0] == 0xFFF) + ieee->seq_ctrl[0] = 0; + else + ieee->seq_ctrl[0]++; + + /* check wether the managed packet queued greater than 5 */ + if(!ieee->check_nic_enough_desc(ieee->dev,tcb_desc->queue_index)||\ + (skb_queue_len(&ieee->skb_waitQ[tcb_desc->queue_index]) != 0)||\ + (ieee->queue_stop) ) { + /* insert the skb packet to the management queue */ + /* as for the completion function, it does not need + * to check it any more. + * */ + printk("%s():insert to waitqueue, queue_index:%d!\n",__FUNCTION__,tcb_desc->queue_index); + skb_queue_tail(&ieee->skb_waitQ[tcb_desc->queue_index], skb); + } else { + ieee->softmac_hard_start_xmit(skb,ieee->dev); + } + spin_unlock_irqrestore(&ieee->mgmt_tx_lock, flags); + } +} + +inline void softmac_ps_mgmt_xmit(struct sk_buff *skb, + struct rtllib_device *ieee) +{ + short single = ieee->softmac_features & IEEE_SOFTMAC_SINGLE_QUEUE; + struct rtllib_hdr_3addr *header = + (struct rtllib_hdr_3addr *) skb->data; + u16 fc,type,stype; + cb_desc *tcb_desc = (cb_desc *)(skb->cb + 8); + + fc = header->frame_ctl; + type = WLAN_FC_GET_TYPE(fc); + stype = WLAN_FC_GET_STYPE(fc); + + + if(stype != RTLLIB_STYPE_PSPOLL) + tcb_desc->queue_index = MGNT_QUEUE; + else{ +#ifdef RTL8192CE + tcb_desc->queue_index = MGNT_QUEUE; +#else + tcb_desc->queue_index = HIGH_QUEUE; +#endif + } + + if(ieee->disable_mgnt_queue) + tcb_desc->queue_index = HIGH_QUEUE; + + + tcb_desc->data_rate = MgntQuery_MgntFrameTxRate(ieee); + tcb_desc->RATRIndex = 7; + tcb_desc->bTxDisableRateFallBack = 1; + tcb_desc->bTxUseDriverAssingedRate = 1; + if (single) { + if (type != RTLLIB_FTYPE_CTL) { + header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4); + + if (ieee->seq_ctrl[0] == 0xFFF) + ieee->seq_ctrl[0] = 0; + else + ieee->seq_ctrl[0]++; + + } + /* avoid watchdog triggers */ + ieee->softmac_data_hard_start_xmit(skb,ieee->dev,ieee->basic_rate); + + } else { + if (type != RTLLIB_FTYPE_CTL) { + header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4); + + if (ieee->seq_ctrl[0] == 0xFFF) + ieee->seq_ctrl[0] = 0; + else + ieee->seq_ctrl[0]++; + } + ieee->softmac_hard_start_xmit(skb,ieee->dev); + + } +} + +inline struct sk_buff *rtllib_probe_req(struct rtllib_device *ieee) +{ + unsigned int len,rate_len; + u8 *tag; + struct sk_buff *skb; + struct rtllib_probe_request *req; + + u8* ht_cap_buf = NULL; + u8 ht_cap_len=0; + int encrypt; + struct rtllib_crypt_data* crypt; + int wpa_ie_len = ieee->wpa_ie_len; + +#ifdef _RTL8192_EXT_PATCH_ + short extMore = 0; + if(ieee->ext_patch_rtllib_probe_req_1) + extMore = ieee->ext_patch_rtllib_probe_req_1(ieee); +#endif + + len = ieee->current_network.ssid_len; + + rate_len = rtllib_MFIE_rate_len(ieee); + +#ifdef _RTL8192_EXT_PATCH_ + if(!extMore) + skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) + + 2 + len + rate_len + ieee->tx_headroom); + else + skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) + + 2 + len + rate_len+128+ieee->tx_headroom); +#else +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr; + int alignment; + skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) + + 2 + len + rate_len + ieee->tx_headroom + USB_512B_ALIGNMENT_SIZE); +#else + skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) + + 2 + len + rate_len + ieee->tx_headroom); +#endif +#endif + + if (!skb) + return NULL; + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + + skb_reserve(skb, ieee->tx_headroom); + + req = (struct rtllib_probe_request *) skb_put(skb,sizeof(struct rtllib_probe_request)); + req->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_PROBE_REQ); + req->header.duration_id = 0; + + memset(req->header.addr1, 0xff, ETH_ALEN); + memcpy(req->header.addr2, ieee->dev->dev_addr, ETH_ALEN); + memset(req->header.addr3, 0xff, ETH_ALEN); + + tag = (u8 *) skb_put(skb,len+2+rate_len); + + *tag++ = MFIE_TYPE_SSID; + *tag++ = len; + memcpy(tag, ieee->current_network.ssid, len); + tag += len; + + rtllib_MFIE_Brate(ieee,&tag); + rtllib_MFIE_Grate(ieee,&tag); + +#ifdef _RTL8192_EXT_PATCH_ + if(extMore) + ieee->ext_patch_rtllib_probe_req_2(ieee, skb, tag); +#endif + + if(0) + { +#ifdef _RTL8192_EXT_PATCH_ + crypt = ieee->sta_crypt[ieee->tx_keyidx]; +#else + crypt = ieee->crypt[ieee->tx_keyidx]; +#endif + if(crypt != NULL) { + encrypt = ieee->host_encrypt && crypt && crypt->ops && ((0 == strcmp(crypt->ops->name,"WEP") || wpa_ie_len)); + } else { + encrypt = 0; + } + + ht_cap_buf = (u8*)&(ieee->pHTInfo->SelfHTCap); + ht_cap_len = sizeof(ieee->pHTInfo->SelfHTCap); +#ifdef _RTL8192_EXT_PATCH_ + HTConstructCapabilityElement(ieee, ht_cap_buf, &ht_cap_len, encrypt, 0, false); +#else + HTConstructCapabilityElement(ieee, ht_cap_buf, &ht_cap_len, encrypt, false); +#endif + if(ht_cap_len){ + *(tag++) = MFIE_TYPE_HT_CAP; + *(tag++) = ht_cap_len - 2; + memcpy(tag, ht_cap_buf, ht_cap_len - 2); + tag += ht_cap_len - 2; + } + } + + return skb; +} + +struct sk_buff *rtllib_get_beacon_(struct rtllib_device *ieee); + +#ifdef _RTL8192_EXT_PATCH_ +void ext_rtllib_send_beacon_wq(void *data) +{ + struct rtllib_device *ieee = (struct rtllib_device *)container_of_work_rsl((struct work_struct *)data, struct rtllib_device, ext_send_beacon_wq); + struct sk_buff *skb; + + skb = rtllib_get_beacon_(ieee); + + if (skb){ + softmac_mgmt_xmit(skb, ieee); + ieee->softmac_stats.tx_beacons++; + } + + + +} +#endif +void rtllib_send_beacon(struct rtllib_device *ieee) +{ + struct sk_buff *skb; + if(!ieee->ieee_up) + return; + skb = rtllib_get_beacon_(ieee); + + if (skb){ + softmac_mgmt_xmit(skb, ieee); + ieee->softmac_stats.tx_beacons++; + } + + if(ieee->beacon_txing && ieee->ieee_up){ + mod_timer(&ieee->beacon_timer,jiffies+(MSECS(ieee->current_network.beacon_interval-5))); + } +} + + +void rtllib_send_beacon_cb(unsigned long _ieee) +{ + struct rtllib_device *ieee = + (struct rtllib_device *) _ieee; + unsigned long flags; + + spin_lock_irqsave(&ieee->beacon_lock, flags); + rtllib_send_beacon(ieee); + spin_unlock_irqrestore(&ieee->beacon_lock, flags); +} + +#ifdef _RTL8192_EXT_PATCH_ + +inline struct sk_buff *rtllib_probe_req_with_SSID(struct rtllib_device *ieee, char *ssid, int len_ssid) +{ + unsigned int len,rate_len; + u8 *tag; + struct sk_buff *skb; + struct rtllib_probe_request *req; + +#ifdef _RTL8192_EXT_PATCH_ + short extMore = 0; + if(ieee->ext_patch_rtllib_probe_req_1) + extMore = ieee->ext_patch_rtllib_probe_req_1(ieee); +#endif + + len = len_ssid; + + rate_len = rtllib_MFIE_rate_len(ieee); + +#ifdef _RTL8192_EXT_PATCH_ + if(!extMore) +#endif + skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) + + 2 + len + rate_len + ieee->tx_headroom); +#ifdef _RTL8192_EXT_PATCH_ + else + skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) + + 2 + len + rate_len+128+ieee->tx_headroom); +#endif + + if (!skb) + return NULL; + + req = (struct rtllib_probe_request *) skb_put(skb,sizeof(struct rtllib_probe_request)); + req->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_PROBE_REQ); + req->header.duration_id = 0; + + memset(req->header.addr1, 0xff, ETH_ALEN); + memcpy(req->header.addr2, ieee->dev->dev_addr, ETH_ALEN); + memset(req->header.addr3, 0xff, ETH_ALEN); + + tag = (u8 *) skb_put(skb,len+2+rate_len); + + *tag++ = MFIE_TYPE_SSID; + *tag++ = len; + if(len) + { + memcpy(tag, ssid, len); + tag += len; + } + + rtllib_MFIE_Brate(ieee,&tag); + rtllib_MFIE_Grate(ieee,&tag); + +#ifdef _RTL8192_EXT_PATCH_ + if(extMore) + ieee->ext_patch_rtllib_probe_req_2(ieee, skb, tag); +#endif + return skb; +} + +#endif + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) +void rtllib_ibss_wait_timeout(unsigned long _ieee) +{ + struct rtllib_device *ieee = + (struct rtllib_device *) _ieee; + printk("======>%s():oh oh ibss wait beacon time out, search a new ibss now\n",__FUNCTION__); + rtllib_stop_send_beacons(ieee); +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + cancel_delayed_work(&ieee->start_ibss_wq); + cancel_delayed_work(&ieee->link_change_wq); +#endif + rtllib_stop_scan(ieee); + queue_delayed_work_rsl(ieee->wq, &ieee->start_ibss_wq, MSECS(150)); +} +#endif + + +/* + * Description: + * Enable network monitor mode, all rx packets will be received. + */ +void rtllib_EnableNetMonitorMode(struct net_device* dev, + bool bInitState) +{ + struct rtllib_device* ieee = netdev_priv_rsl(dev); + + printk("========>Enter Monitor Mode\n"); + + ieee->AllowAllDestAddrHandler(dev, true, !bInitState); +} + + +/* + * Description: + * Disable network network monitor mode, only packets destinated to + * us will be received. + */ +void rtllib_DisableNetMonitorMode(struct net_device* dev, + bool bInitState) +{ + struct rtllib_device* ieee = netdev_priv_rsl(dev); + + printk("========>Exit Monitor Mode\n"); + + ieee->AllowAllDestAddrHandler(dev, false, !bInitState); +} + + +/* + * Description: + * This enables the specialized promiscuous mode required by Intel. + * In this mode, Intel intends to hear traffics from/to other STAs in the same BSS. + * Therefore we don't have to disable checking BSSID and we only need to allow all dest. + * BUT: if we enable checking BSSID then we can't recv packets from other STA. + */ +void rtllib_EnableIntelPromiscuousMode(struct net_device* dev, + bool bInitState) +{ + bool bFilterOutNonAssociatedBSSID = false; + + struct rtllib_device* ieee = netdev_priv_rsl(dev); + + printk("========>Enter Intel Promiscuous Mode\n"); + + ieee->AllowAllDestAddrHandler(dev, true, !bInitState); + ieee->SetHwRegHandler(dev, HW_VAR_CECHK_BSSID, (u8*)&bFilterOutNonAssociatedBSSID); + + ieee->bNetPromiscuousMode = true; +} + + +/* + * Description: + * This disables the specialized promiscuous mode required by Intel. + * See MgntEnableIntelPromiscuousMode for detail. + */ +void rtllib_DisableIntelPromiscuousMode(struct net_device* dev, + bool bInitState) +{ + bool bFilterOutNonAssociatedBSSID = true; + + struct rtllib_device* ieee = netdev_priv_rsl(dev); + + printk("========>Exit Intel Promiscuous Mode\n"); + + ieee->AllowAllDestAddrHandler(dev, false, !bInitState); + ieee->SetHwRegHandler(dev, HW_VAR_CECHK_BSSID, (u8*)&bFilterOutNonAssociatedBSSID); + + ieee->bNetPromiscuousMode = false; +} + +void rtllib_send_probe(struct rtllib_device *ieee, u8 is_mesh) +{ + struct sk_buff *skb; +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + skb = rtllib_probe_req_with_SSID(ieee, NULL, 0); + else +#endif + skb = rtllib_probe_req(ieee); + if (skb){ + softmac_mgmt_xmit(skb, ieee); + ieee->softmac_stats.tx_probe_rq++; + } +} + + +void rtllib_send_probe_requests(struct rtllib_device *ieee, u8 is_mesh) +{ +#ifdef _RTL8192_EXT_PATCH_ + if (ieee->active_scan && (ieee->softmac_features & IEEE_SOFTMAC_PROBERQ)){ + rtllib_send_probe(ieee,is_mesh); + rtllib_send_probe(ieee,is_mesh); + } +#else + if (ieee->active_scan && (ieee->softmac_features & IEEE_SOFTMAC_PROBERQ)){ + rtllib_send_probe(ieee, 0); + rtllib_send_probe(ieee, 0); +} +#endif +} + +void rtllib_softmac_hint11d_wq(void *data) +{ +#ifdef CONFIG_CRDA + struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, softmac_hint11d_wq); + PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(ieee); + struct wireless_dev *wdev = &ieee->wdev; + + regulatory_hint_11d(wdev->wiphy, pDot11dInfo->CountryIeBuf, pDot11dInfo->CountryIeLen); +#endif +} + +void rtllib_update_active_chan_map(struct rtllib_device *ieee) +{ +#ifdef ENABLE_DOT11D + memcpy(ieee->active_channel_map, GET_DOT11D_INFO(ieee)->channel_map, MAX_CHANNEL_NUMBER+1); +#else + memcpy(ieee->active_channel_map, ieee->channel_map, MAX_CHANNEL_NUMBER+1); +#endif +#if 0 + { + int i; + for(i=1;i<=14;i++) + printk("%d ", ieee->active_channel_map[i]); + printk("\n"); + } +#endif +} + +/* this performs syncro scan blocking the caller until all channels + * in the allowed channel map has been checked. + */ +void rtllib_softmac_scan_syncro(struct rtllib_device *ieee, u8 is_mesh) +{ + short ch = 0; + + rtllib_update_active_chan_map(ieee); + + ieee->be_scan_inprogress = true; + + down(&ieee->scan_sem); + + while(1) + { + + do { + ch++; + if (ch > MAX_CHANNEL_NUMBER) + goto out; /* scan completed */ + } while(!ieee->active_channel_map[ch]); + + /* this fuction can be called in two situations + * 1- We have switched to ad-hoc mode and we are + * performing a complete syncro scan before conclude + * there are no interesting cell and to create a + * new one. In this case the link state is + * RTLLIB_NOLINK until we found an interesting cell. + * If so the ieee8021_new_net, called by the RX path + * will set the state to RTLLIB_LINKED, so we stop + * scanning + * 2- We are linked and the root uses run iwlist scan. + * So we switch to RTLLIB_LINKED_SCANNING to remember + * that we are still logically linked (not interested in + * new network events, despite for updating the net list, + * but we are temporarly 'unlinked' as the driver shall + * not filter RX frames and the channel is changing. + * So the only situation in witch are interested is to check + * if the state become LINKED because of the #1 situation + */ + + if (ieee->state == RTLLIB_LINKED) + goto out; + if (ieee->sync_scan_hurryup){ + printk("============>sync_scan_hurryup out\n"); + goto out; + } + + ieee->set_chan(ieee->dev, ch); + if(ieee->active_channel_map[ch] == 1) +#ifdef _RTL8192_EXT_PATCH_ + rtllib_send_probe_requests(ieee, is_mesh); +#else + rtllib_send_probe_requests(ieee, 0); +#endif + + /* this prevent excessive time wait when we + * need to wait for a syncro scan to end.. + */ + msleep_interruptible_rsl(RTLLIB_SOFTMAC_SCAN_TIME); + } +out: + ieee->actscanning = false; + ieee->sync_scan_hurryup = 0; + + if(ieee->state >= RTLLIB_LINKED){ +#ifdef ENABLE_DOT11D + if(IS_DOT11D_ENABLE(ieee)) + DOT11D_ScanComplete(ieee); +#endif + } + up(&ieee->scan_sem); + + ieee->be_scan_inprogress = false; + +#ifndef FOR_MOBLIN + { + union iwreq_data wrqu; + memset(&wrqu, 0, sizeof(wrqu)); + wireless_send_event(ieee->dev,SIOCGIWSCAN,&wrqu,NULL); + } +#endif +} + +void rtllib_softmac_scan_wq(void *data) +{ + struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, softmac_scan_wq); + +#ifndef _RTL8192_EXT_PATCH_ + u8 last_channel = ieee->current_network.channel; +#endif + rtllib_update_active_chan_map(ieee); + + if(!ieee->ieee_up) + return; + if(rtllib_act_scanning(ieee,true) == true) + return; + + down(&ieee->scan_sem); + + if(ieee->eRFPowerState == eRfOff) + { + printk("======>%s():rf state is eRfOff, return\n",__FUNCTION__); + goto out1; + } + + do{ + ieee->current_network.channel = + (ieee->current_network.channel + 1) % MAX_CHANNEL_NUMBER; + if (ieee->scan_watch_dog++ > MAX_CHANNEL_NUMBER) + { + if (!ieee->active_channel_map[ieee->current_network.channel]) + ieee->current_network.channel = 6; + goto out; /* no good chans */ + } + } while(!ieee->active_channel_map[ieee->current_network.channel]); + + if (ieee->scanning_continue == 0 ) + goto out; + + ieee->set_chan(ieee->dev, ieee->current_network.channel); + + if(ieee->active_channel_map[ieee->current_network.channel] == 1) +#ifdef _RTL8192_EXT_PATCH_ + rtllib_send_probe_requests(ieee, 0); +#else + rtllib_send_probe_requests(ieee, 0); +#endif + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,40) + queue_delayed_work_rsl(ieee->wq, &ieee->softmac_scan_wq, MSECS(RTLLIB_SOFTMAC_SCAN_TIME)); +#else + if (ieee->scanning_continue == 1) + mod_timer(&ieee->scan_timer,(jiffies + MSECS(RTLLIB_SOFTMAC_SCAN_TIME))); +#endif + + up(&ieee->scan_sem); + return; + +out: +#ifdef ENABLE_DOT11D + if(IS_DOT11D_ENABLE(ieee)) + DOT11D_ScanComplete(ieee); +#endif +#ifdef _RTL8192_EXT_PATCH_ + ieee->current_network.channel = ieee->backup_channel; + ieee->set_chan(ieee->dev, ieee->current_network.channel); +#else + ieee->current_network.channel = last_channel; +#endif + +out1: + ieee->actscanning = false; + ieee->scan_watch_dog = 0; + ieee->scanning_continue = 0; + up(&ieee->scan_sem); +} + + + +void rtllib_beacons_start(struct rtllib_device *ieee) +{ + unsigned long flags; + spin_lock_irqsave(&ieee->beacon_lock,flags); + + ieee->beacon_txing = 1; + rtllib_send_beacon(ieee); + + spin_unlock_irqrestore(&ieee->beacon_lock,flags); +} + +void rtllib_beacons_stop(struct rtllib_device *ieee) +{ + unsigned long flags; + + spin_lock_irqsave(&ieee->beacon_lock,flags); + + ieee->beacon_txing = 0; + del_timer_sync(&ieee->beacon_timer); + + spin_unlock_irqrestore(&ieee->beacon_lock,flags); + +} + + +void rtllib_stop_send_beacons(struct rtllib_device *ieee) +{ + if(ieee->stop_send_beacons) + ieee->stop_send_beacons(ieee->dev); + if (ieee->softmac_features & IEEE_SOFTMAC_BEACONS) + rtllib_beacons_stop(ieee); +} + + +void rtllib_start_send_beacons(struct rtllib_device *ieee) +{ + if(ieee->start_send_beacons) + ieee->start_send_beacons(ieee->dev); + if(ieee->softmac_features & IEEE_SOFTMAC_BEACONS) + rtllib_beacons_start(ieee); +} + + +void rtllib_softmac_stop_scan(struct rtllib_device *ieee) +{ + + + down(&ieee->scan_sem); + ieee->scan_watch_dog = 0; + if (ieee->scanning_continue == 1){ + ieee->scanning_continue = 0; + ieee->actscanning = 0; + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,40) +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,67) + cancel_delayed_work(&ieee->softmac_scan_wq); +#endif +#else + del_timer_sync(&ieee->scan_timer); +#endif + } + + up(&ieee->scan_sem); +} + +void rtllib_stop_scan(struct rtllib_device *ieee) +{ + if (ieee->softmac_features & IEEE_SOFTMAC_SCAN){ + rtllib_softmac_stop_scan(ieee); + }else{ + if(ieee->rtllib_stop_hw_scan) + ieee->rtllib_stop_hw_scan(ieee->dev); + } +} + +void rtllib_stop_scan_syncro(struct rtllib_device *ieee) +{ + if (ieee->softmac_features & IEEE_SOFTMAC_SCAN){ + ieee->sync_scan_hurryup = 1; + }else{ + if(ieee->rtllib_stop_hw_scan) + ieee->rtllib_stop_hw_scan(ieee->dev); + } +} + +bool rtllib_act_scanning(struct rtllib_device *ieee, bool sync_scan) +{ + if (ieee->softmac_features & IEEE_SOFTMAC_SCAN){ + if(sync_scan){ + return ieee->be_scan_inprogress; + }else{ + return (ieee->actscanning ||ieee->be_scan_inprogress); + } + }else{ + return test_bit(STATUS_SCANNING, &ieee->status); + } +} + +/* called with ieee->lock held */ +void rtllib_start_scan(struct rtllib_device *ieee) +{ + printk("===>%s()\n",__FUNCTION__); +#ifdef ENABLE_IPS + if(ieee->rtllib_ips_leave_wq != NULL) + ieee->rtllib_ips_leave_wq(ieee->dev); +#endif + + +#ifdef ENABLE_DOT11D + if(IS_DOT11D_ENABLE(ieee) ) + { + if(IS_COUNTRY_IE_VALID(ieee)) + { + RESET_CIE_WATCHDOG(ieee); + } + } +#endif + if (ieee->softmac_features & IEEE_SOFTMAC_SCAN){ + if (ieee->scanning_continue == 0){ + ieee->actscanning = true; + ieee->scanning_continue = 1; +#ifdef _RTL8192_EXT_PATCH_ + ieee->backup_channel = ieee->current_network.channel; + printk("===>backup_channel is %d\n",ieee->backup_channel); +#endif + queue_delayed_work_rsl(ieee->wq, &ieee->softmac_scan_wq, 0); + } + }else{ + if(ieee->rtllib_start_hw_scan) + ieee->rtllib_start_hw_scan(ieee->dev); + } + +} + +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,40) +void rtllib_softmac_scan_cb(unsigned long _dev) +{ + unsigned long flags; + struct rtllib_device *ieee = (struct rtllib_device *)_dev; + + spin_lock_irqsave(&ieee->lock, flags); + rtllib_start_scan(ieee); + spin_unlock_irqrestore(&ieee->lock, flags); +} +#endif + +/* called with wx_sem held */ +void rtllib_start_scan_syncro(struct rtllib_device *ieee, u8 is_mesh) +{ +#ifdef ENABLE_DOT11D + if(IS_DOT11D_ENABLE(ieee) ) + { + if(IS_COUNTRY_IE_VALID(ieee)) + { + RESET_CIE_WATCHDOG(ieee); + } + } +#endif + ieee->sync_scan_hurryup = 0; + if (ieee->softmac_features & IEEE_SOFTMAC_SCAN){ + rtllib_softmac_scan_syncro(ieee, is_mesh); + }else{ + if(ieee->rtllib_start_hw_scan) + ieee->rtllib_start_hw_scan(ieee->dev); + } + +} + +inline struct sk_buff *rtllib_authentication_req(struct rtllib_network *beacon, + struct rtllib_device *ieee, int challengelen,u8 * daddr) +{ + struct sk_buff *skb; + struct rtllib_authentication *auth; + int len = 0; +#ifdef _RTL8192_EXT_PATCH_ + bool is_mesh = false; + is_mesh = ieee->ext_patch_rtllib_is_mesh(ieee,daddr); +#endif +#ifdef _RTL8192_EXT_PATCH_ + if((ieee->mesh_sec_type == 1) && (ieee->mesh_security_setting == 3) && is_mesh){ + skb = ieee->ext_patch_rtllib_send_ath_commit(ieee,daddr); + return skb; + } +#endif + len = sizeof(struct rtllib_authentication) + challengelen + ieee->tx_headroom + 4; +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr; + int alignment; + skb = dev_alloc_skb(len + USB_512B_ALIGNMENT_SIZE); +#else + skb = dev_alloc_skb(len); +#endif + + if (!skb) return NULL; + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + + skb_reserve(skb, ieee->tx_headroom); + + auth = (struct rtllib_authentication *) + skb_put(skb, sizeof(struct rtllib_authentication)); + + auth->header.frame_ctl = RTLLIB_STYPE_AUTH; + if (challengelen) auth->header.frame_ctl |= RTLLIB_FCTL_WEP; + + auth->header.duration_id = 0x013a; +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + memcpy(auth->header.addr1,daddr,ETH_ALEN); + else +#endif + memcpy(auth->header.addr1, beacon->bssid, ETH_ALEN); + memcpy(auth->header.addr2, ieee->dev->dev_addr, ETH_ALEN); +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + memcpy(auth->header.addr3, ieee->current_mesh_network.bssid, ETH_ALEN); + else + memcpy(auth->header.addr3, beacon->bssid, ETH_ALEN); +#else + memcpy(auth->header.addr3, beacon->bssid, ETH_ALEN); +#endif + if(ieee->auth_mode == 0) + auth->algorithm = WLAN_AUTH_OPEN; + else if(ieee->auth_mode == 1) + auth->algorithm = WLAN_AUTH_SHARED_KEY; + else if(ieee->auth_mode == 2) + auth->algorithm = WLAN_AUTH_OPEN; + auth->transaction = cpu_to_le16(ieee->associate_seq); + ieee->associate_seq++; + + auth->status = cpu_to_le16(WLAN_STATUS_SUCCESS); + + return skb; + +} + +void constructWMMIE(u8* wmmie, u8* wmm_len,u8 oui_subtype) +{ + u8 szQoSOUI[] ={221, 0, 0x00, 0x50, 0xf2, 0x02, 0, 1}; + + if (oui_subtype == OUI_SUBTYPE_QOS_CAPABI) + { + szQoSOUI[0] = 46; + szQoSOUI[1] = *wmm_len; + memcpy(wmmie,szQoSOUI,3); + *wmm_len = 3; + } + else + { + szQoSOUI[1] = *wmm_len + 6; + szQoSOUI[6] = oui_subtype; + memcpy(wmmie, szQoSOUI, 8); + *(wmmie+8) = 0; + *wmm_len = 9; + } +} + +static struct sk_buff* rtllib_probe_resp(struct rtllib_device *ieee, u8 *dest) +{ + u8 *tag; + int beacon_size; + struct rtllib_probe_response *beacon_buf; + struct sk_buff *skb = NULL; + int encrypt; + int atim_len,erp_len; + struct rtllib_crypt_data* crypt; + + char *ssid = ieee->current_network.ssid; + int ssid_len = ieee->current_network.ssid_len; + int rate_len = ieee->current_network.rates_len+2; + int rate_ex_len = ieee->current_network.rates_ex_len; + int wpa_ie_len = ieee->wpa_ie_len; + u8 erpinfo_content = 0; + + u8* tmp_ht_cap_buf=NULL; + u8 tmp_ht_cap_len=0; + u8* tmp_ht_info_buf=NULL; + u8 tmp_ht_info_len=0; + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + u8* tmp_generic_ie_buf=NULL; + u8 tmp_generic_ie_len=0; +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + u8 wmmie[9] = {0}; + u8 wmm_len = 0; +#endif +#ifdef RTL8192S_WAPI_SUPPORT + PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo); + u8 pWapiIELen = 0; +#endif + if(rate_ex_len > 0) rate_ex_len+=2; + + if(ieee->current_network.capability & WLAN_CAPABILITY_IBSS) + atim_len = 4; + else + atim_len = 0; + +#if 0 + if(rtllib_is_54g(&ieee->current_network)) + erp_len = 3; + else + erp_len = 0; +#else + if((ieee->current_network.mode == IEEE_G) + ||( ieee->current_network.mode == IEEE_N_24G && ieee->pHTInfo->bCurSuppCCK)) { + erp_len = 3; + erpinfo_content = 0; + if(ieee->current_network.buseprotection) + erpinfo_content |= ERP_UseProtection; + } + else + erp_len = 0; +#endif + +#ifdef _RTL8192_EXT_PATCH_ + crypt = ieee->sta_crypt[ieee->tx_keyidx]; +#else + crypt = ieee->crypt[ieee->tx_keyidx]; +#endif + encrypt = ieee->host_encrypt && crypt && crypt->ops && + ((0 == strcmp(crypt->ops->name, "WEP") || wpa_ie_len)); +#if 1 + if(ieee->pHTInfo->bCurrentHTSupport){ + tmp_ht_cap_buf =(u8*) &(ieee->pHTInfo->SelfHTCap); + tmp_ht_cap_len = sizeof(ieee->pHTInfo->SelfHTCap); + tmp_ht_info_buf =(u8*) &(ieee->pHTInfo->SelfHTInfo); + tmp_ht_info_len = sizeof(ieee->pHTInfo->SelfHTInfo); +#ifdef _RTL8192_EXT_PATCH_ + HTConstructCapabilityElement(ieee, tmp_ht_cap_buf, &tmp_ht_cap_len,encrypt, 1, false); +#else + HTConstructCapabilityElement(ieee, tmp_ht_cap_buf, &tmp_ht_cap_len,encrypt, false); +#endif + HTConstructInfoElement(ieee,tmp_ht_info_buf,&tmp_ht_info_len, encrypt); + + + if(pHTInfo->bRegRT2RTAggregation) + { + tmp_generic_ie_buf = ieee->pHTInfo->szRT2RTAggBuffer; + tmp_generic_ie_len = sizeof(ieee->pHTInfo->szRT2RTAggBuffer); + HTConstructRT2RTAggElement(ieee, tmp_generic_ie_buf, &tmp_generic_ie_len); + } + } +#endif + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + if(ieee->iw_mode == IW_MODE_ADHOC){ + if(ieee->current_network.qos_data.supported){ + wmm_len = 1; + constructWMMIE(wmmie,&wmm_len,OUI_SUBTYPE_WMM_INFO); + }else{ + wmm_len = 0; + } + } +#endif +#ifdef RTL8192S_WAPI_SUPPORT + if(ieee->WapiSupport && pWapiInfo->bWapiEnable) + { + WapiSetIE(ieee); + pWapiIELen = pWapiInfo->wapiIELength; + } +#endif + beacon_size = sizeof(struct rtllib_probe_response)+2+ + ssid_len + +3 + +rate_len + +rate_ex_len + +atim_len + +erp_len + +wpa_ie_len +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + +tmp_ht_cap_len + +tmp_ht_info_len + +tmp_generic_ie_len + +wmm_len +#endif +#ifdef RTL8192S_WAPI_SUPPORT + +pWapiIELen+2 +#endif + +ieee->tx_headroom; +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr=0; + int alignment=0; + skb = dev_alloc_skb(beacon_size + USB_512B_ALIGNMENT_SIZE); +#else + skb = dev_alloc_skb(beacon_size); +#endif + if (!skb) + return NULL; + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + + skb_reserve(skb, ieee->tx_headroom); + + beacon_buf = (struct rtllib_probe_response*) skb_put(skb, (beacon_size - ieee->tx_headroom)); + memcpy (beacon_buf->header.addr1, dest,ETH_ALEN); + memcpy (beacon_buf->header.addr2, ieee->dev->dev_addr, ETH_ALEN); + memcpy (beacon_buf->header.addr3, ieee->current_network.bssid, ETH_ALEN); + + beacon_buf->header.duration_id = 0; + beacon_buf->beacon_interval = + cpu_to_le16(ieee->current_network.beacon_interval); + beacon_buf->capability = + cpu_to_le16(ieee->current_network.capability & WLAN_CAPABILITY_IBSS); + beacon_buf->capability |= + cpu_to_le16(ieee->current_network.capability & WLAN_CAPABILITY_SHORT_PREAMBLE); + + if(ieee->short_slot && (ieee->current_network.capability & WLAN_CAPABILITY_SHORT_SLOT_TIME)) + cpu_to_le16((beacon_buf->capability |= WLAN_CAPABILITY_SHORT_SLOT_TIME)); + +#ifndef _RTL8192_EXT_PATCH_ + crypt = ieee->crypt[ieee->tx_keyidx]; +#endif + if (encrypt) + beacon_buf->capability |= cpu_to_le16(WLAN_CAPABILITY_PRIVACY); + + + beacon_buf->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_PROBE_RESP); + beacon_buf->info_element[0].id = MFIE_TYPE_SSID; + beacon_buf->info_element[0].len = ssid_len; + + tag = (u8*) beacon_buf->info_element[0].data; + + memcpy(tag, ssid, ssid_len); + + tag += ssid_len; + + *(tag++) = MFIE_TYPE_RATES; + *(tag++) = rate_len-2; + memcpy(tag,ieee->current_network.rates,rate_len-2); + tag+=rate_len-2; + + *(tag++) = MFIE_TYPE_DS_SET; + *(tag++) = 1; + *(tag++) = ieee->current_network.channel; + + if(atim_len){ + u16 val16; + *(tag++) = MFIE_TYPE_IBSS_SET; + *(tag++) = 2; + val16 = cpu_to_le16(ieee->current_network.atim_window); + memcpy((u8 *)tag, (u8 *)&val16, 2); + tag+=2; + } + + if(erp_len){ + *(tag++) = MFIE_TYPE_ERP; + *(tag++) = 1; + *(tag++) = erpinfo_content; + } +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + if(tmp_ht_cap_len){ + *(tag++) = MFIE_TYPE_HT_CAP; + *(tag++) = tmp_ht_cap_len - 2; + memcpy(tag, tmp_ht_cap_buf, tmp_ht_cap_len - 2); + tag += tmp_ht_cap_len - 2; + } +#endif + if(rate_ex_len){ + *(tag++) = MFIE_TYPE_RATES_EX; + *(tag++) = rate_ex_len-2; + memcpy(tag,ieee->current_network.rates_ex,rate_ex_len-2); + tag+=rate_ex_len-2; + } + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + if(tmp_ht_info_len){ + *(tag++) = MFIE_TYPE_HT_INFO; + *(tag++) = tmp_ht_info_len - 2; + memcpy(tag, tmp_ht_info_buf, tmp_ht_info_len -2); + tag += tmp_ht_info_len - 2; + } +#endif + + if (wpa_ie_len) + { + if (ieee->iw_mode == IW_MODE_ADHOC) + { + memcpy(&ieee->wpa_ie[14], &ieee->wpa_ie[8], 4); + } + memcpy(tag, ieee->wpa_ie, ieee->wpa_ie_len); + tag += ieee->wpa_ie_len; + } + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + if(tmp_generic_ie_len) + { + (*tag++) = 0xdd; + (*tag++) = tmp_generic_ie_len - 2; + memcpy(tag,tmp_generic_ie_buf,tmp_generic_ie_len -2); + tag += tmp_generic_ie_len -2; + + } +#endif + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + if(wmm_len) { + memcpy(tag,wmmie,wmm_len); + tag += wmm_len; + } +#endif +#ifdef RTL8192S_WAPI_SUPPORT + if(pWapiIELen) + { + *(tag++) = MFIE_TYPE_WAPI; + *(tag++) = pWapiIELen; + memcpy(tag, pWapiInfo->wapiIE, pWapiIELen); + tag += pWapiIELen; + + pWapiInfo->sendbeaconWapiIE[0] = MFIE_TYPE_WAPI; + pWapiInfo->sendbeaconWapiIE[1] = pWapiIELen; + pWapiInfo->sendbeaconWapiIELength = pWapiIELen+2; + memcpy(pWapiInfo->sendbeaconWapiIE+2, pWapiInfo->wapiIE, pWapiIELen); + } +#endif + return skb; +} + +#ifdef RTL8192S_WAPI_SUPPORT +void ConstructWapiIEForInit(struct rtllib_device* ieee) +{ + PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo); + u8 pWapiIELen = 0; + + if(ieee->WapiSupport && pWapiInfo->bWapiEnable){ + WapiSetIE(ieee); + pWapiIELen = pWapiInfo->wapiIELength; + if(pWapiIELen){ + pWapiInfo->sendbeaconWapiIE[0] = MFIE_TYPE_WAPI; + pWapiInfo->sendbeaconWapiIE[1] = pWapiIELen; + pWapiInfo->sendbeaconWapiIELength = pWapiIELen+2; + memcpy(pWapiInfo->sendbeaconWapiIE+2, pWapiInfo->wapiIE, pWapiIELen); + } + } +} +#endif + +#ifdef _RTL8192_EXT_PATCH_ +#ifdef COMPATIBLE_WITH_RALINK_MESH +extern void ConstructRalinkHostNameIE(struct rtllib_device* ieee, + u8* p_hostname_ie, u8* hostname_ie_len); +#else +extern void ConstructHostNameIE(struct rtllib_device* ieee, + u8* hostname_ie, u8* hostname_ie_len); +#endif +struct sk_buff* rtllib_ext_probe_resp_by_net(struct rtllib_device *ieee, u8 *dest, struct rtllib_network *net) +{ + u8 *tag; + int beacon_size; + struct rtllib_probe_response *beacon_buf; + struct sk_buff *skb; + int encrypt; + int atim_len = 0,erp_len = 0; + struct rtllib_crypt_data* crypt; + u8 broadcast_addr[] = {0xff,0xff,0xff,0xff,0xff,0xff}; + + char *ssid = net->ssid; + int ssid_len = net->ssid_len; + + int rate_len = ieee->current_mesh_network.rates_len+2; + int rate_ex_len = ieee->current_mesh_network.rates_ex_len; + int wpa_ie_len = 0; + u8 erpinfo_content = 0; +#if 0 + u8* tmp_ht_cap_buf=NULL; + u8 tmp_ht_cap_len=0; + u8* tmp_ht_info_buf=NULL; + u8 tmp_ht_info_len=0; + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + u8* tmp_generic_ie_buf=NULL; + u8 tmp_generic_ie_len=0; +#endif + u8 wmmie[9] = {0}; + u8 wmm_len = 0; + u8 hostname_ie_buf[MAX_HOST_NAME_LENGTH+4]; + u8 hostname_ie_len=0; + if(rate_ex_len > 0) rate_ex_len+=2; + if( ieee->meshScanMode&4){ + ieee->current_mesh_network.channel = ieee->ext_patch_rtllib_ext_stop_scan_wq_set_channel(ieee); + if(ieee->current_mesh_network.channel == 0) + ieee->current_mesh_network.channel = 1; + } + if( ieee->meshScanMode&6) + { + queue_work_rsl(ieee->wq, &ieee->ext_stop_scan_wq); + } + if(ieee->current_mesh_network.capability & WLAN_CAPABILITY_IBSS) + atim_len = 4; + else + atim_len = 0; + + + if((ieee->current_mesh_network.mode == IEEE_G) + ||( ieee->mode == IEEE_N_24G && ieee->pHTInfo->bCurSuppCCK)){ + erp_len = 3; + erpinfo_content = 0; + if(ieee->bUseProtection) + erpinfo_content |= ERP_UseProtection; + } + else + erp_len = 0; + + if ((IW_MODE_MESH==ieee->iw_mode)) + { + wpa_ie_len = ieee->wpa_ie_len; + } + + crypt = ieee->cryptlist[0]->crypt[ieee->mesh_txkeyidx]; + + encrypt = ieee->host_encrypt && crypt && crypt->ops && + ((0 == strcmp(crypt->ops->name, "WEP")||wpa_ie_len)); +#if 0 + if(ieee->pHTInfo->bCurrentHTSupport){ + tmp_ht_cap_buf =(u8*) &(ieee->pHTInfo->SelfHTCap); + tmp_ht_cap_len = sizeof(ieee->pHTInfo->SelfHTCap); + tmp_ht_info_buf =(u8*) &(ieee->pHTInfo->SelfHTInfo); + tmp_ht_info_len = sizeof(ieee->pHTInfo->SelfHTInfo); + HTConstructCapabilityElement(ieee, tmp_ht_cap_buf, &tmp_ht_cap_len,encrypt, 1); + HTConstructInfoElement(ieee,tmp_ht_info_buf,&tmp_ht_info_len, encrypt); + + + if(pHTInfo->bRegRT2RTAggregation) + { + tmp_generic_ie_buf = ieee->pHTInfo->szRT2RTAggBuffer; + tmp_generic_ie_len = sizeof(ieee->pHTInfo->szRT2RTAggBuffer); + HTConstructRT2RTAggElement(ieee, tmp_generic_ie_buf, &tmp_generic_ie_len); + } + } +#endif + { +#ifdef COMPATIBLE_WITH_RALINK_MESH + ConstructRalinkHostNameIE(ieee, hostname_ie_buf, &hostname_ie_len); +#else + ConstructHostNameIE(ieee, hostname_ie_buf, &hostname_ie_len); +#endif + } + if((ieee->iw_mode == IW_MODE_MESH) && (ieee->current_mesh_network.qos_data.supported == 1)){ + wmm_len = 1; + constructWMMIE(wmmie,&wmm_len,OUI_SUBTYPE_WMM_INFO); + } + beacon_size = sizeof(struct rtllib_probe_response)+2+ + ssid_len + +3 + +rate_len + +rate_ex_len + +atim_len + +erp_len + +wpa_ie_len +#if 0 + +tmp_ht_cap_len + +tmp_ht_info_len + +tmp_generic_ie_len +#endif + +hostname_ie_len + +wmm_len + +ieee->tx_headroom; + skb = dev_alloc_skb(beacon_size+300); + + if (!skb) + return NULL; + skb_reserve(skb, ieee->tx_headroom); + beacon_buf = (struct rtllib_probe_response*) skb_put(skb, (beacon_size - ieee->tx_headroom)); + + memcpy (beacon_buf->header.addr1, dest,ETH_ALEN); + memcpy (beacon_buf->header.addr2, ieee->meshdev->dev_addr, ETH_ALEN); + memcpy (beacon_buf->header.addr3, ieee->current_mesh_network.bssid, ETH_ALEN); + + beacon_buf->header.duration_id = 0; + + beacon_buf->beacon_interval = + cpu_to_le16(ieee->current_mesh_network.beacon_interval); + beacon_buf->capability = + cpu_to_le16(ieee->current_mesh_network.capability & WLAN_CAPABILITY_IBSS); + + if(ieee->short_slot && (ieee->current_mesh_network.capability & WLAN_CAPABILITY_SHORT_SLOT_TIME)) + cpu_to_le16((beacon_buf->capability |= WLAN_CAPABILITY_SHORT_SLOT_TIME)); + + if (encrypt) + beacon_buf->capability |= cpu_to_le16(WLAN_CAPABILITY_PRIVACY); + + + beacon_buf->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_PROBE_RESP); + + beacon_buf->info_element[0].id = MFIE_TYPE_SSID; + beacon_buf->info_element[0].len = ssid_len; + + tag = (u8*) beacon_buf->info_element[0].data; + + if(memcmp(dest, broadcast_addr, ETH_ALEN )) + memcpy(tag, ssid, ssid_len); + else + ssid_len=0; + + tag += ssid_len; + + + *(tag++) = MFIE_TYPE_RATES; + *(tag++) = rate_len-2; + memcpy(tag,ieee->current_mesh_network.rates,rate_len-2); + tag+=rate_len-2; + + *(tag++) = MFIE_TYPE_DS_SET; + *(tag++) = 1; + *(tag++) = ieee->current_mesh_network.channel; + + + if(atim_len){ + u16 val16; + *(tag++) = MFIE_TYPE_IBSS_SET; + *(tag++) = 2; + val16 = cpu_to_le16(ieee->current_mesh_network.atim_window); + memcpy((u8 *)tag, (u8 *)&val16, 2); + tag+=2; + } + + if(erp_len){ + *(tag++) = MFIE_TYPE_ERP; + *(tag++) = 1; + *(tag++) = erpinfo_content; + } +#if 0 + if(tmp_ht_cap_len){ + *(tag++) = MFIE_TYPE_HT_CAP; + *(tag++) = tmp_ht_cap_len - 2; + memcpy(tag, tmp_ht_cap_buf, tmp_ht_cap_len - 2); + tag += tmp_ht_cap_len - 2; + } +#endif + + if(rate_ex_len){ + *(tag++) = MFIE_TYPE_RATES_EX; + *(tag++) = rate_ex_len-2; + memcpy(tag,ieee->current_mesh_network.rates_ex,rate_ex_len-2); + tag+=rate_ex_len-2; + } + +#if 0 + if(tmp_ht_info_len){ + *(tag++) = MFIE_TYPE_HT_INFO; + *(tag++) = tmp_ht_info_len - 2; + memcpy(tag, tmp_ht_info_buf, tmp_ht_info_len -2); + tag += tmp_ht_info_len - 2; + } +#endif + if (wpa_ie_len) { + memcpy(tag, ieee->wpa_ie, ieee->wpa_ie_len); + tag+=ieee->wpa_ie_len; + } + +#if 0 + if(tmp_generic_ie_len) + { + (*tag++) = 0xdd; + (*tag++) = tmp_generic_ie_len - 2; + memcpy(tag,tmp_generic_ie_buf,tmp_generic_ie_len -2); + tag += tmp_generic_ie_len -2; + + } +#endif + if(hostname_ie_len) + { + (*tag++) = 0xdd; + (*tag++) = hostname_ie_len - 2; + memcpy(tag, hostname_ie_buf, hostname_ie_len - 2); + tag += hostname_ie_len -2; + } + + if(wmm_len) + { + memcpy(tag,wmmie,wmm_len); + } + + skb->dev = ieee->dev; + return skb; +} +#endif + +struct sk_buff* rtllib_assoc_resp(struct rtllib_device *ieee, u8 *dest) +{ + struct sk_buff *skb; + u8* tag; + + struct rtllib_crypt_data* crypt; + struct rtllib_assoc_response_frame *assoc; + short encrypt; + + unsigned int rate_len = rtllib_MFIE_rate_len(ieee); + int len = sizeof(struct rtllib_assoc_response_frame) + rate_len + ieee->tx_headroom; + +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr=0; + int alignment=0; + skb = dev_alloc_skb(len + USB_512B_ALIGNMENT_SIZE); +#else + skb = dev_alloc_skb(len); +#endif + + if (!skb) + return NULL; + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + + skb_reserve(skb, ieee->tx_headroom); + + assoc = (struct rtllib_assoc_response_frame *) + skb_put(skb,sizeof(struct rtllib_assoc_response_frame)); + + assoc->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_ASSOC_RESP); + memcpy(assoc->header.addr1, dest,ETH_ALEN); + memcpy(assoc->header.addr3, ieee->dev->dev_addr, ETH_ALEN); + memcpy(assoc->header.addr2, ieee->dev->dev_addr, ETH_ALEN); + assoc->capability = cpu_to_le16(ieee->iw_mode == IW_MODE_MASTER ? + WLAN_CAPABILITY_ESS : WLAN_CAPABILITY_IBSS); + + + if(ieee->short_slot) + assoc->capability |= cpu_to_le16(WLAN_CAPABILITY_SHORT_SLOT_TIME); + + if (ieee->host_encrypt){ +#ifdef _RTL8192_EXT_PATCH_ + crypt = ieee->cryptlist[0]->crypt[ieee->tx_keyidx]; +#else + crypt = ieee->crypt[ieee->tx_keyidx]; +#endif + + } + else crypt = NULL; + + encrypt = ( crypt && crypt->ops); + + if (encrypt) + assoc->capability |= cpu_to_le16(WLAN_CAPABILITY_PRIVACY); + + assoc->status = 0; + assoc->aid = cpu_to_le16(ieee->assoc_id); + if (ieee->assoc_id == 0x2007) + ieee->assoc_id=0; + else + ieee->assoc_id++; + + tag = (u8*) skb_put(skb, rate_len); + rtllib_MFIE_Brate(ieee, &tag); + rtllib_MFIE_Grate(ieee, &tag); + + return skb; +} + +struct sk_buff* rtllib_auth_resp(struct rtllib_device *ieee,int status, u8 *dest) +{ + struct sk_buff *skb = NULL; + struct rtllib_authentication *auth; + int len = ieee->tx_headroom + sizeof(struct rtllib_authentication)+1; +#ifdef _RTL8192_EXT_PATCH_ + bool is_mesh = ieee->ext_patch_rtllib_is_mesh(ieee,dest); + if(is_mesh && (ieee->mesh_sec_type == 1) && (ieee->mesh_security_setting == 3)) + skb = ieee->ext_patch_rtllib_send_ath_confirm(ieee,dest); + return skb; +#endif +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr=0; + int alignment=0; + skb = dev_alloc_skb(len + USB_512B_ALIGNMENT_SIZE); +#else + skb = dev_alloc_skb(len); +#endif + if (!skb) + return NULL; + + skb->len = sizeof(struct rtllib_authentication); + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + + skb_reserve(skb, ieee->tx_headroom); + + auth = (struct rtllib_authentication *) + skb_put(skb, sizeof(struct rtllib_authentication)); + + auth->status = cpu_to_le16(status); + auth->transaction = cpu_to_le16(2); + auth->algorithm = cpu_to_le16(WLAN_AUTH_OPEN); + +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + memset(auth->header.addr3, 0, ETH_ALEN); + else + memcpy(auth->header.addr3, ieee->dev->dev_addr, ETH_ALEN); +#else + memcpy(auth->header.addr3, ieee->dev->dev_addr, ETH_ALEN); +#endif + memcpy(auth->header.addr2, ieee->dev->dev_addr, ETH_ALEN); + memcpy(auth->header.addr1, dest, ETH_ALEN); + auth->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_AUTH); + return skb; + + +} + +struct sk_buff* rtllib_null_func(struct rtllib_device *ieee,short pwr) +{ + struct sk_buff *skb; + struct rtllib_hdr_3addr* hdr; + +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr=0; + int alignment=0; + skb = dev_alloc_skb(sizeof(struct rtllib_hdr_3addr) + ieee->tx_headroom + USB_512B_ALIGNMENT_SIZE); +#else + skb = dev_alloc_skb(sizeof(struct rtllib_hdr_3addr)+ieee->tx_headroom); +#endif + if (!skb) + return NULL; + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + skb_reserve(skb, ieee->tx_headroom); + + hdr = (struct rtllib_hdr_3addr*)skb_put(skb,sizeof(struct rtllib_hdr_3addr)); + + memcpy(hdr->addr1, ieee->current_network.bssid, ETH_ALEN); + memcpy(hdr->addr2, ieee->dev->dev_addr, ETH_ALEN); + memcpy(hdr->addr3, ieee->current_network.bssid, ETH_ALEN); + + hdr->frame_ctl = cpu_to_le16(RTLLIB_FTYPE_DATA | + RTLLIB_STYPE_NULLFUNC | RTLLIB_FCTL_TODS | + (pwr ? RTLLIB_FCTL_PM:0)); + + return skb; + + +} + +struct sk_buff* rtllib_pspoll_func(struct rtllib_device *ieee) +{ + struct sk_buff *skb; + struct rtllib_pspoll_hdr* hdr; + +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr=0; + int alignment=0; + skb = dev_alloc_skb(sizeof(struct rtllib_pspoll_hdr) + ieee->tx_headroom + USB_512B_ALIGNMENT_SIZE); +#else + skb = dev_alloc_skb(sizeof(struct rtllib_pspoll_hdr)+ieee->tx_headroom); +#endif + if (!skb) + return NULL; + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + skb_reserve(skb, ieee->tx_headroom); + + hdr = (struct rtllib_pspoll_hdr*)skb_put(skb,sizeof(struct rtllib_pspoll_hdr)); + + memcpy(hdr->bssid, ieee->current_network.bssid, ETH_ALEN); + memcpy(hdr->ta, ieee->dev->dev_addr, ETH_ALEN); + + hdr->aid = cpu_to_le16(ieee->assoc_id | 0xc000); + hdr->frame_ctl = cpu_to_le16(RTLLIB_FTYPE_CTL |RTLLIB_STYPE_PSPOLL | RTLLIB_FCTL_PM); + + return skb; + +} + +void rtllib_resp_to_assoc_rq(struct rtllib_device *ieee, u8* dest) +{ + struct sk_buff *buf = rtllib_assoc_resp(ieee, dest); + + if (buf) + softmac_mgmt_xmit(buf, ieee); +} + + +void rtllib_resp_to_auth(struct rtllib_device *ieee, int s, u8* dest) +{ + struct sk_buff *buf = rtllib_auth_resp(ieee, s, dest); + + if (buf) + softmac_mgmt_xmit(buf, ieee); +} + + +void rtllib_resp_to_probe(struct rtllib_device *ieee, u8 *dest) +{ + + struct sk_buff *buf = rtllib_probe_resp(ieee, dest); + if (buf) + softmac_mgmt_xmit(buf, ieee); +} + + +inline int SecIsInPMKIDList(struct rtllib_device *ieee, u8 *bssid) +{ + int i = 0; + + do + { + if ((ieee->PMKIDList[i].bUsed) && (memcmp(ieee->PMKIDList[i].Bssid, bssid, ETH_ALEN) == 0)) + { + break; + } + else + { + i++; + } + } while (i < NUM_PMKID_CACHE); + + if (i == NUM_PMKID_CACHE) + { + i = -1; + } + else + { + } + + return (i); + +} + + +inline struct sk_buff *rtllib_association_req(struct rtllib_network *beacon,struct rtllib_device *ieee) +{ + struct sk_buff *skb; + + struct rtllib_assoc_request_frame *hdr; + u8 *tag, *ies; + int i; + u8* ht_cap_buf = NULL; + u8 ht_cap_len=0; + u8* realtek_ie_buf=NULL; + u8 realtek_ie_len=0; + int wpa_ie_len= ieee->wpa_ie_len; + int wps_ie_len = ieee->wps_ie_len; + unsigned int ckip_ie_len=0; + unsigned int ccxrm_ie_len=0; + unsigned int cxvernum_ie_len=0; + struct rtllib_crypt_data* crypt; + int encrypt; + int PMKCacheIdx; + + unsigned int rate_len = (beacon->rates_len?(beacon->rates_len+2):0) + (beacon->rates_ex_len?(beacon->rates_ex_len)+2:0); + + unsigned int wmm_info_len = beacon->qos_data.supported?9:0; +#ifdef THOMAS_TURBO + unsigned int turbo_info_len = beacon->Turbo_Enable?9:0; +#endif + + int len = 0; +#ifdef RTL8192S_WAPI_SUPPORT + PRT_WAPI_BKID pWapiBKID; + u16 bkidNum; + PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo); + u8 WapiIE[256]; + u8 WapiIELength = 0; +#endif +#ifdef _RTL8192_EXT_PATCH_ + crypt = ieee->sta_crypt[ieee->tx_keyidx]; +#else + crypt = ieee->crypt[ieee->tx_keyidx]; +#endif + if(crypt != NULL) { + encrypt = ieee->host_encrypt && crypt && crypt->ops && ((0 == strcmp(crypt->ops->name,"WEP") || wpa_ie_len)); + } else { + encrypt = 0; + } + +#ifdef ENABLE_TKIP11N + if (ieee->bForcedBgMode == true) +#else + if ((ieee->rtllib_ap_sec_type && (ieee->rtllib_ap_sec_type(ieee)&SEC_ALG_TKIP)) || (ieee->bForcedBgMode == true)) +#endif + { + ieee->pHTInfo->bEnableHT = 0; + ieee->mode = WIRELESS_MODE_G; + } + + if(ieee->pHTInfo->bCurrentHTSupport&&ieee->pHTInfo->bEnableHT) + { + ht_cap_buf = (u8*)&(ieee->pHTInfo->SelfHTCap); + ht_cap_len = sizeof(ieee->pHTInfo->SelfHTCap); +#ifdef _RTL8192_EXT_PATCH_ + HTConstructCapabilityElement(ieee, ht_cap_buf, &ht_cap_len, encrypt, 0, true); +#else + HTConstructCapabilityElement(ieee, ht_cap_buf, &ht_cap_len, encrypt, true); +#endif + if(ieee->pHTInfo->bCurrentRT2RTAggregation) + { + realtek_ie_buf = ieee->pHTInfo->szRT2RTAggBuffer; + realtek_ie_len = sizeof( ieee->pHTInfo->szRT2RTAggBuffer); + HTConstructRT2RTAggElement(ieee, realtek_ie_buf, &realtek_ie_len); + + } + } + + if(beacon->bCkipSupported) + { + ckip_ie_len = 30+2; + } + if(beacon->bCcxRmEnable) + { + ccxrm_ie_len = 6+2; + } + if( beacon->BssCcxVerNumber >= 2 ) + { + cxvernum_ie_len = 5+2; + } + + PMKCacheIdx = SecIsInPMKIDList(ieee, ieee->current_network.bssid); + if (PMKCacheIdx >= 0) + { + wpa_ie_len += 18; + printk("[PMK cache]: WPA2 IE length: %x\n", wpa_ie_len); + } +#ifdef RTL8192S_WAPI_SUPPORT + if(ieee->WapiSupport && pWapiInfo->bWapiEnable) + { + wpa_ie_len = 0; + + WAPI_TRACE(WAPI_API, "%s(): Set WAPI IE in assoc req!!\n",__FUNCTION__); + WapiSetIE(ieee); + WapiIELength = pWapiInfo->wapiIELength; + memcpy(WapiIE, pWapiInfo->wapiIE ,pWapiInfo->wapiIELength); + + bkidNum = 0; + WapiIELength +=2; + if(!list_empty(&(pWapiInfo->wapiBKIDStoreList))){ + list_for_each_entry(pWapiBKID, &pWapiInfo->wapiBKIDStoreList, list) { + bkidNum ++; + memcpy(WapiIE+WapiIELength, pWapiBKID->bkid,16); + WapiIELength += 16; + } + + } + memcpy(WapiIE+pWapiInfo->wapiIELength,&bkidNum,2); + } +#endif + + len = sizeof(struct rtllib_assoc_request_frame)+ 2 + + beacon->ssid_len + + rate_len + + wpa_ie_len + + wps_ie_len +#ifdef RTL8192S_WAPI_SUPPORT + + WapiIELength + 2 +#endif + + wmm_info_len +#ifdef THOMAS_TURBO + + turbo_info_len +#endif + + ht_cap_len + + realtek_ie_len + + ckip_ie_len + + ccxrm_ie_len + + cxvernum_ie_len + + ieee->tx_headroom; + +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr=0; + int alignment=0; + skb = dev_alloc_skb(len + USB_512B_ALIGNMENT_SIZE); +#else + skb = dev_alloc_skb(len); +#endif + + if (!skb) + return NULL; + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + + skb_reserve(skb, ieee->tx_headroom); + + hdr = (struct rtllib_assoc_request_frame *) + skb_put(skb, sizeof(struct rtllib_assoc_request_frame)+2); + + + hdr->header.frame_ctl = RTLLIB_STYPE_ASSOC_REQ; + hdr->header.duration_id= 37; + memcpy(hdr->header.addr1, beacon->bssid, ETH_ALEN); + memcpy(hdr->header.addr2, ieee->dev->dev_addr, ETH_ALEN); + memcpy(hdr->header.addr3, beacon->bssid, ETH_ALEN); + + memcpy(ieee->ap_mac_addr, beacon->bssid, ETH_ALEN); + + hdr->capability = cpu_to_le16(WLAN_CAPABILITY_ESS); + if (beacon->capability & WLAN_CAPABILITY_PRIVACY ) + hdr->capability |= cpu_to_le16(WLAN_CAPABILITY_PRIVACY); + + if (beacon->capability & WLAN_CAPABILITY_SHORT_PREAMBLE) + hdr->capability |= cpu_to_le16(WLAN_CAPABILITY_SHORT_PREAMBLE); + + if(ieee->short_slot && (beacon->capability&WLAN_CAPABILITY_SHORT_SLOT_TIME)) + hdr->capability |= cpu_to_le16(WLAN_CAPABILITY_SHORT_SLOT_TIME); + + + hdr->listen_interval = beacon->listen_interval; + + hdr->info_element[0].id = MFIE_TYPE_SSID; + + hdr->info_element[0].len = beacon->ssid_len; + tag = skb_put(skb, beacon->ssid_len); + memcpy(tag, beacon->ssid, beacon->ssid_len); + + tag = skb_put(skb, rate_len); + + if(beacon->rates_len){ + *tag++ = MFIE_TYPE_RATES; + *tag++ = beacon->rates_len; + for(i=0;irates_len;i++){ + *tag++ = beacon->rates[i]; + } + } + + if(beacon->rates_ex_len){ + *tag++ = MFIE_TYPE_RATES_EX; + *tag++ = beacon->rates_ex_len; + for(i=0;irates_ex_len;i++){ + *tag++ = beacon->rates_ex[i]; + } + } + + if( beacon->bCkipSupported ) + { + static u8 AironetIeOui[] = {0x00, 0x01, 0x66}; + u8 CcxAironetBuf[30]; + OCTET_STRING osCcxAironetIE; + + memset(CcxAironetBuf, 0,30); + osCcxAironetIE.Octet = CcxAironetBuf; + osCcxAironetIE.Length = sizeof(CcxAironetBuf); + memcpy(osCcxAironetIE.Octet, AironetIeOui, sizeof(AironetIeOui)); + + osCcxAironetIE.Octet[IE_CISCO_FLAG_POSITION] |= (SUPPORT_CKIP_PK|SUPPORT_CKIP_MIC) ; + tag = skb_put(skb, ckip_ie_len); + *tag++ = MFIE_TYPE_AIRONET; + *tag++ = osCcxAironetIE.Length; + memcpy(tag,osCcxAironetIE.Octet,osCcxAironetIE.Length); + tag += osCcxAironetIE.Length; + } + + if(beacon->bCcxRmEnable) + { + static u8 CcxRmCapBuf[] = {0x00, 0x40, 0x96, 0x01, 0x01, 0x00}; + OCTET_STRING osCcxRmCap; + + osCcxRmCap.Octet = CcxRmCapBuf; + osCcxRmCap.Length = sizeof(CcxRmCapBuf); + tag = skb_put(skb,ccxrm_ie_len); + *tag++ = MFIE_TYPE_GENERIC; + *tag++ = osCcxRmCap.Length; + memcpy(tag,osCcxRmCap.Octet,osCcxRmCap.Length); + tag += osCcxRmCap.Length; + } + + if( beacon->BssCcxVerNumber >= 2 ) + { + u8 CcxVerNumBuf[] = {0x00, 0x40, 0x96, 0x03, 0x00}; + OCTET_STRING osCcxVerNum; + CcxVerNumBuf[4] = beacon->BssCcxVerNumber; + osCcxVerNum.Octet = CcxVerNumBuf; + osCcxVerNum.Length = sizeof(CcxVerNumBuf); + tag = skb_put(skb,cxvernum_ie_len); + *tag++ = MFIE_TYPE_GENERIC; + *tag++ = osCcxVerNum.Length; + memcpy(tag,osCcxVerNum.Octet,osCcxVerNum.Length); + tag += osCcxVerNum.Length; + } + if(ieee->pHTInfo->bCurrentHTSupport&&ieee->pHTInfo->bEnableHT){ + if(ieee->pHTInfo->ePeerHTSpecVer != HT_SPEC_VER_EWC) + { + tag = skb_put(skb, ht_cap_len); + *tag++ = MFIE_TYPE_HT_CAP; + *tag++ = ht_cap_len - 2; + memcpy(tag, ht_cap_buf,ht_cap_len -2); + tag += ht_cap_len -2; + } + } + + + if (wpa_ie_len){ + tag = skb_put(skb, ieee->wpa_ie_len); + memcpy(tag, ieee->wpa_ie, ieee->wpa_ie_len); + + if (PMKCacheIdx >= 0) + { + tag = skb_put(skb, 18); + *tag = 1; + *(tag + 1) = 0; + memcpy((tag + 2), &ieee->PMKIDList[PMKCacheIdx].PMKID, 16); + } + } +#ifdef RTL8192S_WAPI_SUPPORT + if(WapiIELength){ + tag = skb_put(skb, WapiIELength+2); + *tag = MFIE_TYPE_WAPI; + *(tag+1) = WapiIELength; + memcpy((tag+2), WapiIE, WapiIELength); + + pWapiInfo->assoReqWapiIELength = WapiIELength+2; + pWapiInfo->assoReqWapiIE[0] = MFIE_TYPE_WAPI; + pWapiInfo->assoReqWapiIE[1] = WapiIELength; + memcpy(pWapiInfo->assoReqWapiIE+2,WapiIE,WapiIELength); + } +#endif + + if(wmm_info_len) { + tag = skb_put(skb,wmm_info_len); + rtllib_WMM_Info(ieee, &tag); + } + + if(wps_ie_len && ieee->wps_ie) + { + tag = skb_put(skb, wps_ie_len); + memcpy(tag, ieee->wps_ie, wps_ie_len); + } + +#ifdef THOMAS_TURBO + tag = skb_put(skb,turbo_info_len); + if(turbo_info_len) { + rtllib_TURBO_Info(ieee, &tag); + } +#endif + + if(ieee->pHTInfo->bCurrentHTSupport&&ieee->pHTInfo->bEnableHT){ + if(ieee->pHTInfo->ePeerHTSpecVer == HT_SPEC_VER_EWC) + { + tag = skb_put(skb, ht_cap_len); + *tag++ = MFIE_TYPE_GENERIC; + *tag++ = ht_cap_len - 2; + memcpy(tag, ht_cap_buf,ht_cap_len - 2); + tag += ht_cap_len -2; + } + + if(ieee->pHTInfo->bCurrentRT2RTAggregation){ + tag = skb_put(skb, realtek_ie_len); + *tag++ = MFIE_TYPE_GENERIC; + *tag++ = realtek_ie_len - 2; + memcpy(tag, realtek_ie_buf,realtek_ie_len -2 ); + } + } + + if(ieee->assocreq_ies){ + kfree(ieee->assocreq_ies); + ieee->assocreq_ies = NULL; + } + ies = &(hdr->info_element[0].id); + ieee->assocreq_ies_len = (skb->data + skb->len) - ies; + ieee->assocreq_ies = kmalloc(ieee->assocreq_ies_len, GFP_ATOMIC); + if (ieee->assocreq_ies) + memcpy(ieee->assocreq_ies, ies, ieee->assocreq_ies_len); + else{ + printk("%s()Warning: can't alloc memory for assocreq_ies\n", __func__); + ieee->assocreq_ies_len = 0; + } + + return skb; +} + +void rtllib_associate_abort(struct rtllib_device *ieee) +{ + + unsigned long flags; + spin_lock_irqsave(&ieee->lock, flags); + + ieee->associate_seq++; + + /* don't scan, and avoid to have the RX path possibily + * try again to associate. Even do not react to AUTH or + * ASSOC response. Just wait for the retry wq to be scheduled. + * Here we will check if there are good nets to associate + * with, so we retry or just get back to NO_LINK and scanning + */ + if (ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATING){ + RTLLIB_DEBUG_MGMT("Authentication failed\n"); + ieee->softmac_stats.no_auth_rs++; + }else{ + RTLLIB_DEBUG_MGMT("Association failed\n"); + ieee->softmac_stats.no_ass_rs++; + } + + ieee->state = RTLLIB_ASSOCIATING_RETRY; + + queue_delayed_work_rsl(ieee->wq, &ieee->associate_retry_wq, \ + RTLLIB_SOFTMAC_ASSOC_RETRY_TIME); + + spin_unlock_irqrestore(&ieee->lock, flags); +} + +void rtllib_associate_abort_cb(unsigned long dev) +{ + rtllib_associate_abort((struct rtllib_device *) dev); +} + +void rtllib_associate_step1(struct rtllib_device *ieee,u8 * daddr) +{ + struct rtllib_network *beacon = &ieee->current_network; + struct sk_buff *skb; +#ifdef _RTL8192_EXT_PATCH_ + bool is_mesh = false; +#endif + RTLLIB_DEBUG_MGMT("Stopping scan\n"); + + ieee->softmac_stats.tx_auth_rq++; + + skb=rtllib_authentication_req(beacon, ieee, 0,daddr); + +#ifdef _RTL8192_EXT_PATCH_ + is_mesh = ieee->ext_patch_rtllib_is_mesh(ieee,daddr); + if(is_mesh) { + if(skb){ + softmac_mgmt_xmit(skb, ieee); + } + return; + }else +#endif + if (!skb) + rtllib_associate_abort(ieee); + else{ + ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATING ; + RTLLIB_DEBUG_MGMT("Sending authentication request\n"); + softmac_mgmt_xmit(skb, ieee); + if(!timer_pending(&ieee->associate_timer)){ + ieee->associate_timer.expires = jiffies + (HZ / 2); + add_timer(&ieee->associate_timer); + } + } +} + +void rtllib_auth_challenge(struct rtllib_device *ieee, u8 *challenge, int chlen) +{ + u8 *c; + struct sk_buff *skb; + struct rtllib_network *beacon = &ieee->current_network; + + ieee->associate_seq++; + ieee->softmac_stats.tx_auth_rq++; + + skb = rtllib_authentication_req(beacon, ieee, chlen+2,beacon->bssid); + + if (!skb) + rtllib_associate_abort(ieee); + else{ + c = skb_put(skb, chlen+2); + *(c++) = MFIE_TYPE_CHALLENGE; + *(c++) = chlen; + memcpy(c, challenge, chlen); + + RTLLIB_DEBUG_MGMT("Sending authentication challenge response\n"); + +#ifdef _RTL8192_EXT_PATCH_ + rtllib_encrypt_fragment(ieee, skb, sizeof(struct rtllib_hdr_3addr ), 0, 0); +#else + rtllib_encrypt_fragment(ieee, skb, sizeof(struct rtllib_hdr_3addr )); +#endif + + softmac_mgmt_xmit(skb, ieee); + mod_timer(&ieee->associate_timer, jiffies + (HZ/2)); +#if 0 + ieee->associate_timer.expires = jiffies + (HZ / 2); + add_timer(&ieee->associate_timer); +#endif + } + kfree(challenge); +} + +void rtllib_associate_step2(struct rtllib_device *ieee) +{ + struct sk_buff* skb; + struct rtllib_network *beacon = &ieee->current_network; + + del_timer_sync(&ieee->associate_timer); + + RTLLIB_DEBUG_MGMT("Sending association request\n"); + + ieee->softmac_stats.tx_ass_rq++; + skb=rtllib_association_req(beacon, ieee); + if (!skb) + rtllib_associate_abort(ieee); + else{ + softmac_mgmt_xmit(skb, ieee); + mod_timer(&ieee->associate_timer, jiffies + (HZ/2)); +#if 0 + ieee->associate_timer.expires = jiffies + (HZ / 2); + add_timer(&ieee->associate_timer); +#endif + } +} + +#define CANCELLED 2 +void rtllib_associate_complete_wq(void *data) +{ + struct rtllib_device *ieee = (struct rtllib_device *)container_of_work_rsl(data, struct rtllib_device, associate_complete_wq); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(ieee->PowerSaveControl)); + printk(KERN_INFO "Associated successfully\n"); + if(ieee->is_silent_reset == 0){ + printk("normal associate\n"); + notify_wx_assoc_event(ieee); + } + + netif_carrier_on(ieee->dev); + ieee->is_roaming = false; + if(rtllib_is_54g(&ieee->current_network) && + (ieee->modulation & RTLLIB_OFDM_MODULATION)){ + + ieee->rate = 108; + printk(KERN_INFO"Using G rates:%d\n", ieee->rate); + }else{ + ieee->rate = 22; + ieee->SetWirelessMode(ieee->dev, IEEE_B); + printk(KERN_INFO"Using B rates:%d\n", ieee->rate); + } + if (ieee->pHTInfo->bCurrentHTSupport&&ieee->pHTInfo->bEnableHT) + { + printk("Successfully associated, ht enabled\n"); + HTOnAssocRsp(ieee); + } else { + printk("Successfully associated, ht not enabled(%d, %d)\n", + ieee->pHTInfo->bCurrentHTSupport, ieee->pHTInfo->bEnableHT); + memset(ieee->dot11HTOperationalRateSet, 0, 16); + } + ieee->LinkDetectInfo.SlotNum = 2 * (1 + ieee->current_network.beacon_interval/500); + if(ieee->LinkDetectInfo.NumRecvBcnInPeriod==0||ieee->LinkDetectInfo.NumRecvDataInPeriod==0 ) + { + ieee->LinkDetectInfo.NumRecvBcnInPeriod = 1; + ieee->LinkDetectInfo.NumRecvDataInPeriod= 1; + } + pPSC->LpsIdleCount = 0; + ieee->link_change(ieee->dev); + +#ifdef _RTL8192_EXT_PATCH_ + if(ieee->set_key_for_AP) + ieee->set_key_for_AP(ieee); + /* Synchronize mesh channel to wlan channel in MSTA mode.*/ + { + if(ieee->current_mesh_network.channel != ieee->current_network.channel) + { + printk("^^^^^^^^^^^^^^^^Change mesh channel %d with wlan channel %d\n", + ieee->current_mesh_network.channel, ieee->current_network.channel); + ieee->ext_patch_rtllib_close_all_peerlink(ieee, CANCELLED); + ieee->current_mesh_network.channel = ieee->current_network.channel; + if(ieee->ext_patch_r819x_wx_set_channel) + { + ieee->ext_patch_r819x_wx_set_channel(ieee, ieee->current_network.channel); + ieee->ext_patch_r819x_wx_set_mesh_chan(ieee->dev,ieee->current_network.channel); + } + } + } +#endif + if(ieee->is_silent_reset == 0){ + } else if(ieee->is_silent_reset == 1) { + printk("silent reset associate\n"); + ieee->is_silent_reset = 0; + } + + if (ieee->data_hard_resume) + ieee->data_hard_resume(ieee->dev); + +#ifdef RTK_DMP_PLATFORM + kobject_hotplug(&ieee->dev->class_dev.kobj, KOBJ_LINKUP); +#endif +} + +static void rtllib_sta_send_associnfo(struct rtllib_device *ieee) +{ + char *buf; + size_t len; + int i; + union iwreq_data wrqu; + + return; + + + buf = kmalloc(50 + 2 * (ieee->assocreq_ies_len + ieee->assocresp_ies_len), GFP_ATOMIC); + if (!buf) + return; + + len = sprintf(buf, "ASSOCINFO("); + if (ieee->assocreq_ies) { + len += sprintf(buf + len, "ReqIEs="); + for (i = 0; i < ieee->assocreq_ies_len; i++) { + len += sprintf(buf + len, "%02x", ieee->assocreq_ies[i]); + } + } + if (ieee->assocresp_ies) { + if (ieee->assocreq_ies) + len += sprintf(buf + len, " "); + len += sprintf(buf + len, "RespIEs="); + for (i = 0; i < ieee->assocresp_ies_len; i++) { + len += sprintf(buf + len, "%02x", ieee->assocresp_ies[i]); + } + } + len += sprintf(buf + len, ")"); + + if (len > IW_CUSTOM_MAX) { + len = sprintf(buf, "ASSOCRESPIE="); + for (i = 0; i < ieee->assocresp_ies_len; i++) { + len += sprintf(buf + len, "%02x", ieee->assocresp_ies[i]); + } + } + + if (len <= IW_CUSTOM_MAX) { + memset(&wrqu, 0, sizeof(wrqu)); + wrqu.data.length = len; + wireless_send_event(ieee->dev, IWEVCUSTOM, &wrqu, buf); + } + + kfree(buf); +} + +void rtllib_associate_complete(struct rtllib_device *ieee) +{ + del_timer_sync(&ieee->associate_timer); + +#if 0 + for(i = 0; i < 6; i++) { + ieee->seq_ctrl[i] = 0; + } +#endif + ieee->state = RTLLIB_LINKED; +#if defined (RTL8192S_WAPI_SUPPORT) + if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){ + WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0); + } +#endif +#if 0 + if (ieee->pHTInfo->bCurrentHTSupport) + { + printk("Successfully associated, ht enabled\n"); + queue_work_rsl(ieee->wq, &ieee->ht_onAssRsp); + } + else + { + printk("Successfully associated, ht not enabled\n"); + memset(ieee->dot11HTOperationalRateSet, 0, 16); + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT); + } +#endif + + rtllib_sta_send_associnfo(ieee); + + queue_work_rsl(ieee->wq, &ieee->associate_complete_wq); +} + +void rtllib_associate_procedure_wq(void *data) +{ + struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, associate_procedure_wq); + rtllib_stop_scan_syncro(ieee); +#ifdef ENABLE_IPS + if(ieee->rtllib_ips_leave != NULL) + ieee->rtllib_ips_leave(ieee->dev); +#endif + down(&ieee->wx_sem); + + if (ieee->data_hard_stop) + ieee->data_hard_stop(ieee->dev); + + rtllib_stop_scan(ieee); + printk("===>%s(), chan:%d\n", __FUNCTION__, ieee->current_network.channel); + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT); + if(ieee->eRFPowerState == eRfOff) + { + printk("=============>%s():Rf state is eRfOff, schedule ipsleave wq again,return\n",__FUNCTION__); +#ifdef ENABLE_IPS + if(ieee->rtllib_ips_leave_wq != NULL) + ieee->rtllib_ips_leave_wq(ieee->dev); +#endif + up(&ieee->wx_sem); + return; + } + ieee->associate_seq = 1; + + rtllib_associate_step1(ieee, ieee->current_network.bssid); + + up(&ieee->wx_sem); +} + +#ifdef _RTL8192_EXT_PATCH_ + +void rtllib_ext_stop_scan_wq(void *data) +{ + struct rtllib_device *ieee = (struct rtllib_device *)container_of_work_rsl(data, struct rtllib_device, ext_stop_scan_wq); + rtllib_stop_scan_syncro(ieee); + + down(&ieee->wx_sem); + + if (ieee->data_hard_stop) + ieee->data_hard_stop(ieee->dev); + + rtllib_stop_scan(ieee); + + up(&ieee->wx_sem); +} + + +void rtllib_ext_send_11s_beacon(struct rtllib_device *ieee) +{ + queue_work_rsl(ieee->wq, &ieee->ext_send_beacon_wq); +} + +#endif + + +inline void rtllib_softmac_new_net(struct rtllib_device *ieee, struct rtllib_network *net) +{ + u8 tmp_ssid[IW_ESSID_MAX_SIZE+1]; + int tmp_ssid_len = 0; + + short apset,ssidset,ssidbroad,apmatch,ssidmatch; + + /* we are interested in new new only if we are not associated + * and we are not associating / authenticating + */ + if (ieee->state != RTLLIB_NOLINK) + return; + + if ((ieee->iw_mode == IW_MODE_INFRA) && !(net->capability & WLAN_CAPABILITY_ESS)) + return; + + if ((ieee->iw_mode == IW_MODE_ADHOC) && !(net->capability & WLAN_CAPABILITY_IBSS)) + return; + + if ((ieee->iw_mode == IW_MODE_ADHOC) && (net->channel > ieee->ibss_maxjoin_chal)) { + return; + } +#ifdef _RTL8192_EXT_PATCH_ + if (ieee->iw_mode == IW_MODE_INFRA || ieee->iw_mode == IW_MODE_ADHOC + || ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0))) +#else + if (ieee->iw_mode == IW_MODE_INFRA || ieee->iw_mode == IW_MODE_ADHOC) +#endif + { + /* if the user specified the AP MAC, we need also the essid + * This could be obtained by beacons or, if the network does not + * broadcast it, it can be put manually. + */ + apset = ieee->wap_set; + ssidset = ieee->ssid_set; + ssidbroad = !(net->ssid_len == 0 || net->ssid[0]== '\0'); + apmatch = (memcmp(ieee->current_network.bssid, net->bssid, ETH_ALEN)==0); + if(!ssidbroad){ + ssidmatch = (ieee->current_network.ssid_len == net->hidden_ssid_len)&&\ + (!strncmp(ieee->current_network.ssid, net->hidden_ssid, net->hidden_ssid_len)); + if(net->hidden_ssid_len > 0) + { + strncpy(net->ssid, net->hidden_ssid, net->hidden_ssid_len); + net->ssid_len = net->hidden_ssid_len; + ssidbroad = 1; + } + } + else + ssidmatch = (ieee->current_network.ssid_len == net->ssid_len)&&\ + (!strncmp(ieee->current_network.ssid, net->ssid, net->ssid_len)); + + if ( /* if the user set the AP check if match. + * if the network does not broadcast essid we check the user supplyed ANY essid + * if the network does broadcast and the user does not set essid it is OK + * if the network does broadcast and the user did set essid chech if essid match + */ + ( apset && apmatch && + ((ssidset && ssidbroad && ssidmatch) || (ssidbroad && !ssidset) || (!ssidbroad && ssidset)) ) + /* if the ap is not set, check that the user set the bssid + * and the network does bradcast and that those two bssid matches + */ + || (!apset && ssidset && ssidbroad && ssidmatch) || (ieee->is_roaming && ssidset && ssidbroad && ssidmatch) + ){ + /* if the essid is hidden replace it with the + * essid provided by the user. + */ + if (!ssidbroad){ + strncpy(tmp_ssid, ieee->current_network.ssid, IW_ESSID_MAX_SIZE); + tmp_ssid_len = ieee->current_network.ssid_len; + } + memcpy(&ieee->current_network, net, sizeof(struct rtllib_network)); + if (!ssidbroad){ + strncpy(ieee->current_network.ssid, tmp_ssid, IW_ESSID_MAX_SIZE); + ieee->current_network.ssid_len = tmp_ssid_len; + } + printk(KERN_INFO"Linking with %s,channel:%d, qos:%d, myHT:%d, networkHT:%d, mode:%x cur_net.flags:0x%x\n",ieee->current_network.ssid,ieee->current_network.channel, ieee->current_network.qos_data.supported, ieee->pHTInfo->bEnableHT, ieee->current_network.bssht.bdSupportHT, ieee->current_network.mode, ieee->current_network.flags); + + if ((rtllib_act_scanning(ieee, false)) && !(ieee->softmac_features & IEEE_SOFTMAC_SCAN)){ + rtllib_stop_scan_syncro(ieee); + } + + ieee->hwscan_ch_bk = ieee->current_network.channel; + HTResetIOTSetting(ieee->pHTInfo); + ieee->wmm_acm = 0; +#ifdef _RTL8192_EXT_PATCH_ + if ((ieee->iw_mode == IW_MODE_INFRA) || + ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0))) +#else + if (ieee->iw_mode == IW_MODE_INFRA) +#endif + { + /* Join the network for the first time */ + ieee->AsocRetryCount = 0; + if(/*(ieee->current_network.qos_data.supported == 1) &&*/ + ieee->current_network.bssht.bdSupportHT) +/*WB, 2008.09.09:bCurrentHTSupport and bEnableHT two flags are going to put together to check whether we are in HT now, so needn't to check bEnableHT flags here. That's is to say we will set to HT support whenever joined AP has the ability to support HT. And whether we are in HT or not, please check bCurrentHTSupport&&bEnableHT now please.*/ + { +#ifdef ENABLE_AMSDU + if((ieee->mode == IEEE_N_24G) && (ieee->mode == IEEE_N_5G)) + HTUseDefaultSetting(ieee); +#endif + HTResetSelfAndSavePeerSetting(ieee, &(ieee->current_network)); + } + else + { + ieee->pHTInfo->bCurrentHTSupport = false; + } + + ieee->state = RTLLIB_ASSOCIATING; + if(ieee->LedControlHandler != NULL) + ieee->LedControlHandler(ieee->dev, LED_CTL_START_TO_LINK); + queue_delayed_work_rsl(ieee->wq, &ieee->associate_procedure_wq, 0); + }else{ +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) +#if defined (RTL8192S_WAPI_SUPPORT) + if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){ + WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0); + } +#endif + ieee->state = RTLLIB_LINKED; + if(ieee->mode > ieee->current_network.mode) + ieee->SetWirelessMode(ieee->dev, ieee->current_network.mode); + else + ieee->SetWirelessMode(ieee->dev, ieee->mode); + mod_timer(&ieee->ibss_wait_timer,jiffies+(MSECS(20000))); +#else + if(rtllib_is_54g(&ieee->current_network) && + (ieee->modulation & RTLLIB_OFDM_MODULATION)){ + ieee->rate = 108; + ieee->SetWirelessMode(ieee->dev, IEEE_G); + printk(KERN_INFO"Using G rates\n"); + }else{ + ieee->rate = 22; + ieee->SetWirelessMode(ieee->dev, IEEE_B); + printk(KERN_INFO"Using B rates\n"); + } + memset(ieee->dot11HTOperationalRateSet, 0, 16); + ieee->state = RTLLIB_LINKED; +#endif + } + + } + } + +} + +void rtllib_softmac_check_all_nets(struct rtllib_device *ieee) +{ + unsigned long flags; + struct rtllib_network *target; + + spin_lock_irqsave(&ieee->lock, flags); + + list_for_each_entry(target, &ieee->network_list, list) { + + /* if the state become different that NOLINK means + * we had found what we are searching for + */ + + if (ieee->state != RTLLIB_NOLINK) + break; + + if (ieee->scan_age == 0 || time_after(target->last_scanned + ieee->scan_age, jiffies)) + rtllib_softmac_new_net(ieee, target); + } + + spin_unlock_irqrestore(&ieee->lock, flags); + +} + + +static inline u16 auth_parse(struct sk_buff *skb, u8** challenge, int *chlen) +{ + struct rtllib_authentication *a; + u8 *t; + if (skb->len < (sizeof(struct rtllib_authentication)-sizeof(struct rtllib_info_element))){ + RTLLIB_DEBUG_MGMT("invalid len in auth resp: %d\n",skb->len); + return 0xcafe; + } + *challenge = NULL; + a = (struct rtllib_authentication*) skb->data; + if(skb->len > (sizeof(struct rtllib_authentication) +3)){ + t = skb->data + sizeof(struct rtllib_authentication); + + if(*(t++) == MFIE_TYPE_CHALLENGE){ + *chlen = *(t++); + *challenge = (u8*)kmalloc(*chlen, GFP_ATOMIC); + memcpy(*challenge, t, *chlen); + } + } + + return cpu_to_le16(a->status); + +} + + +int auth_rq_parse(struct sk_buff *skb,u8* dest) +{ + struct rtllib_authentication *a; + + if (skb->len < (sizeof(struct rtllib_authentication)-sizeof(struct rtllib_info_element))){ + RTLLIB_DEBUG_MGMT("invalid len in auth request: %d\n",skb->len); + return -1; + } + a = (struct rtllib_authentication*) skb->data; + + memcpy(dest,a->header.addr2, ETH_ALEN); + + if (le16_to_cpu(a->algorithm) != WLAN_AUTH_OPEN) + return WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG; + + return WLAN_STATUS_SUCCESS; +} + +static short probe_rq_parse(struct rtllib_device *ieee, struct sk_buff *skb, u8 *src) +{ + u8 *tag; + u8 *skbend; + u8 *ssid=NULL; + u8 ssidlen = 0; + + struct rtllib_hdr_3addr *header = + (struct rtllib_hdr_3addr *) skb->data; + + if (skb->len < sizeof (struct rtllib_hdr_3addr )) + return -1; /* corrupted */ + if((memcmp(header->addr3,ieee->current_network.bssid,ETH_ALEN) != 0)&& + (memcmp(header->addr3,"\xff\xff\xff\xff\xff\xff",ETH_ALEN) != 0)) { + return -1; + } + + if(memcmp(header->addr3,ieee->current_network.bssid,ETH_ALEN) == 0) { + } + + if(memcmp(header->addr3,"\xff\xff\xff\xff\xff\xff",ETH_ALEN) == 0) { + } + memcpy(src,header->addr2, ETH_ALEN); + + skbend = (u8*)skb->data + skb->len; + + tag = skb->data + sizeof (struct rtllib_hdr_3addr ); + + while (tag+1 < skbend){ + if (*tag == 0){ + ssid = tag+2; + ssidlen = *(tag+1); + break; + } + tag++; /* point to the len field */ + tag = tag + *(tag); /* point to the last data byte of the tag */ + tag++; /* point to the next tag */ + } + + if (ssidlen == 0) return 1; + + if (!ssid) return 1; /* ssid not found in tagged param */ + return (!strncmp(ssid, ieee->current_network.ssid, ssidlen)); + +} + +int assoc_rq_parse(struct sk_buff *skb,u8* dest) +{ + struct rtllib_assoc_request_frame *a; + + if (skb->len < (sizeof(struct rtllib_assoc_request_frame) - + sizeof(struct rtllib_info_element))) { + + RTLLIB_DEBUG_MGMT("invalid len in auth request:%d \n", skb->len); + return -1; + } + + a = (struct rtllib_assoc_request_frame*) skb->data; + + memcpy(dest,a->header.addr2,ETH_ALEN); + + return 0; +} + +static inline u16 assoc_parse(struct rtllib_device *ieee, struct sk_buff *skb, int *aid) +{ + struct rtllib_assoc_response_frame *response_head; + u16 status_code; + + if (skb->len < sizeof(struct rtllib_assoc_response_frame)){ + RTLLIB_DEBUG_MGMT("invalid len in auth resp: %d\n", skb->len); + return 0xcafe; + } + + response_head = (struct rtllib_assoc_response_frame*) skb->data; + *aid = le16_to_cpu(response_head->aid) & 0x3fff; + + status_code = le16_to_cpu(response_head->status); + if((status_code==WLAN_STATUS_ASSOC_DENIED_RATES || \ + status_code==WLAN_STATUS_CAPS_UNSUPPORTED)&& + ((ieee->mode == IEEE_G) && + (ieee->current_network.mode == IEEE_N_24G) && + (ieee->AsocRetryCount++ < (RT_ASOC_RETRY_LIMIT-1)))) { + ieee->pHTInfo->IOTAction |= HT_IOT_ACT_PURE_N_MODE; + }else { + ieee->AsocRetryCount = 0; + } + + return le16_to_cpu(response_head->status); +} + +void rtllib_rx_probe_rq(struct rtllib_device *ieee, struct sk_buff *skb) +{ + u8 dest[ETH_ALEN]; +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + struct sta_info *psta = NULL; +#endif + ieee->softmac_stats.rx_probe_rq++; + if (probe_rq_parse(ieee, skb, dest) > 0){ + ieee->softmac_stats.tx_probe_rs++; + rtllib_resp_to_probe(ieee, dest); +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + if(ieee->iw_mode == IW_MODE_ADHOC){ + psta = GetStaInfo(ieee, dest); + if(NULL != psta) + psta->LastActiveTime = jiffies; + } +#endif + } +} + +static inline void rtllib_rx_auth_rq(struct rtllib_device *ieee, struct sk_buff *skb) +{ + u8 dest[ETH_ALEN]; + int status; + ieee->softmac_stats.rx_auth_rq++; + + if ((status = auth_rq_parse(skb, dest))!= -1){ + rtllib_resp_to_auth(ieee, status, dest); + } + +} + +static inline void rtllib_rx_assoc_rq(struct rtllib_device *ieee, struct sk_buff *skb) +{ + + u8 dest[ETH_ALEN]; + + ieee->softmac_stats.rx_ass_rq++; + if (assoc_rq_parse(skb,dest) != -1){ + rtllib_resp_to_assoc_rq(ieee, dest); + } + + printk(KERN_INFO"New client associated: "MAC_FMT"\n", MAC_ARG(dest)); + #if 0 + spin_lock_irqsave(&ieee->lock,flags); + add_associate(ieee,dest); + spin_unlock_irqrestore(&ieee->lock,flags); + #endif +} + + +void rtllib_sta_ps_send_null_frame(struct rtllib_device *ieee, short pwr) +{ + + struct sk_buff *buf = rtllib_null_func(ieee, pwr); + + if (buf) + softmac_ps_mgmt_xmit(buf, ieee); + +} + +void rtllib_sta_ps_send_pspoll_frame(struct rtllib_device *ieee) +{ + + struct sk_buff *buf = rtllib_pspoll_func(ieee); + + if (buf) + softmac_ps_mgmt_xmit(buf, ieee); + +} + +short rtllib_sta_ps_sleep(struct rtllib_device *ieee, u32 *time_h, u32 *time_l) +{ + int timeout = ieee->ps_timeout; + u8 dtim; + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(ieee->PowerSaveControl)); + /*if(ieee->ps == RTLLIB_PS_DISABLED || + ieee->iw_mode != IW_MODE_INFRA || + ieee->state != RTLLIB_LINKED) + + return 0; + */ + + if(ieee->LPSDelayCnt) + { + ieee->LPSDelayCnt --; + return 0; + } + + dtim = ieee->current_network.dtim_data; + if(!(dtim & RTLLIB_DTIM_VALID)) + return 0; + timeout = ieee->current_network.beacon_interval; + ieee->current_network.dtim_data = RTLLIB_DTIM_INVALID; + /* there's no need to nofity AP that I find you buffered with broadcast packet */ + if(dtim & (RTLLIB_DTIM_UCAST & ieee->ps)) + return 2; + + if(!time_after(jiffies, ieee->dev->trans_start + MSECS(timeout))){ + return 0; + } + if(!time_after(jiffies, ieee->last_rx_ps_time + MSECS(timeout))){ + return 0; + } + if((ieee->softmac_features & IEEE_SOFTMAC_SINGLE_QUEUE ) && + (ieee->mgmt_queue_tail != ieee->mgmt_queue_head)) + return 0; + + if(time_l){ + if(ieee->bAwakePktSent == true) { + pPSC->LPSAwakeIntvl = 1; + } else { + u8 MaxPeriod = 1; + + if(pPSC->LPSAwakeIntvl == 0) + pPSC->LPSAwakeIntvl = 1; + if(pPSC->RegMaxLPSAwakeIntvl == 0) + MaxPeriod = 1; + else if(pPSC->RegMaxLPSAwakeIntvl == 0xFF) + MaxPeriod = ieee->current_network.dtim_period; + else + MaxPeriod = pPSC->RegMaxLPSAwakeIntvl; + pPSC->LPSAwakeIntvl = (pPSC->LPSAwakeIntvl >= MaxPeriod) ? MaxPeriod : (pPSC->LPSAwakeIntvl + 1); + } + { + u8 LPSAwakeIntvl_tmp = 0; + u8 period = ieee->current_network.dtim_period; + u8 count = ieee->current_network.tim.tim_count; + if(count == 0 ) { + if(pPSC->LPSAwakeIntvl > period) + LPSAwakeIntvl_tmp = period + (pPSC->LPSAwakeIntvl - period) -((pPSC->LPSAwakeIntvl-period)%period); + else + LPSAwakeIntvl_tmp = pPSC->LPSAwakeIntvl; + + } else { + if(pPSC->LPSAwakeIntvl > ieee->current_network.tim.tim_count) + LPSAwakeIntvl_tmp = count + (pPSC->LPSAwakeIntvl - count) -((pPSC->LPSAwakeIntvl-count)%period); + else + LPSAwakeIntvl_tmp = pPSC->LPSAwakeIntvl; + } + + *time_l = ieee->current_network.last_dtim_sta_time[0] + + MSECS(ieee->current_network.beacon_interval * LPSAwakeIntvl_tmp); + } + } + + if(time_h){ +#ifdef _RTL8192_EXT_PATCH_ + if(time_l && *time_l < ieee->current_network.last_dtim_sta_time[0]) + *time_h =1; + else + *time_h =0; +#else + *time_h = ieee->current_network.last_dtim_sta_time[1]; + if(time_l && *time_l < ieee->current_network.last_dtim_sta_time[0]) + *time_h += 1; +#endif + } + + return 1; + + +} + +inline void rtllib_sta_ps(struct rtllib_device *ieee) +{ + + u32 th,tl; + short sleep; + + unsigned long flags,flags2; + + spin_lock_irqsave(&ieee->lock, flags); + + if((ieee->ps == RTLLIB_PS_DISABLED || + ieee->iw_mode != IW_MODE_INFRA || + ieee->state != RTLLIB_LINKED)){ + + printk("=====>%s(): no need to ps,wake up!! ieee->ps is %d,ieee->iw_mode is %d,ieee->state is %d\n", + __FUNCTION__,ieee->ps,ieee->iw_mode,ieee->state); + spin_lock_irqsave(&ieee->mgmt_tx_lock, flags2); + + rtllib_sta_wakeup(ieee, 1); + + spin_unlock_irqrestore(&ieee->mgmt_tx_lock, flags2); + } + + sleep = rtllib_sta_ps_sleep(ieee,&th, &tl); + /* 2 wake, 1 sleep, 0 do nothing */ + if(sleep == 0) + { + goto out; + } + if(sleep == 1){ + if(ieee->sta_sleep == LPS_IS_SLEEP){ + ieee->enter_sleep_state(ieee->dev,th,tl); + } + + else if(ieee->sta_sleep == LPS_IS_WAKE){ + spin_lock_irqsave(&ieee->mgmt_tx_lock, flags2); + + if(ieee->ps_is_queue_empty(ieee->dev)){ + ieee->sta_sleep = LPS_WAIT_NULL_DATA_SEND; + ieee->ack_tx_to_ieee = 1; + rtllib_sta_ps_send_null_frame(ieee,1); + ieee->ps_th = th; + ieee->ps_tl = tl; + } + spin_unlock_irqrestore(&ieee->mgmt_tx_lock, flags2); + + } + + ieee->bAwakePktSent = false; + + }else if(sleep == 2){ + spin_lock_irqsave(&ieee->mgmt_tx_lock, flags2); + + rtllib_sta_wakeup(ieee,1); + + spin_unlock_irqrestore(&ieee->mgmt_tx_lock, flags2); + } + +out: + spin_unlock_irqrestore(&ieee->lock, flags); + +} + +void rtllib_sta_wakeup(struct rtllib_device *ieee, short nl) +{ + if(ieee->sta_sleep == LPS_IS_WAKE){ + if(nl){ + if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_NULL_DATA_POWER_SAVING) + { + ieee->ack_tx_to_ieee = 1; + rtllib_sta_ps_send_null_frame(ieee, 0); + } + else + { + ieee->ack_tx_to_ieee = 1; + rtllib_sta_ps_send_pspoll_frame(ieee); + } + } + return; + + } + + if(ieee->sta_sleep == LPS_IS_SLEEP) + ieee->sta_wake_up(ieee->dev); + if(nl){ + /* + ieee->ack_tx_to_ieee = 1; + printk("%s(3): notify AP we are awaked ++++++++++ SendNullFunctionData\n", __func__); + rtllib_sta_ps_send_null_frame(ieee, 0); + */ + if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_NULL_DATA_POWER_SAVING) + { + ieee->ack_tx_to_ieee = 1; + rtllib_sta_ps_send_null_frame(ieee, 0); + } + else + { + ieee->ack_tx_to_ieee = 1; + ieee->polling = true; + rtllib_sta_ps_send_pspoll_frame(ieee); + } + + } else { + ieee->sta_sleep = LPS_IS_WAKE; + ieee->polling = false; + } +} + +void rtllib_ps_tx_ack(struct rtllib_device *ieee, short success) +{ + unsigned long flags,flags2; + + spin_lock_irqsave(&ieee->lock, flags); + + if(ieee->sta_sleep == LPS_WAIT_NULL_DATA_SEND){ + /* Null frame with PS bit set */ + if(success){ + ieee->sta_sleep = LPS_IS_SLEEP; + ieee->enter_sleep_state(ieee->dev,ieee->ps_th,ieee->ps_tl); + } + /* if the card report not success we can't be sure the AP + * has not RXed so we can't assume the AP believe us awake + */ + } else {/* 21112005 - tx again null without PS bit if lost */ + + if((ieee->sta_sleep == LPS_IS_WAKE) && !success){ + spin_lock_irqsave(&ieee->mgmt_tx_lock, flags2); + if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_NULL_DATA_POWER_SAVING) + { + rtllib_sta_ps_send_null_frame(ieee, 0); + } + else + { + rtllib_sta_ps_send_pspoll_frame(ieee); + } + spin_unlock_irqrestore(&ieee->mgmt_tx_lock, flags2); + } + } + spin_unlock_irqrestore(&ieee->lock, flags); +} + +void rtllib_process_action(struct rtllib_device* ieee, struct sk_buff* skb) +{ + struct rtllib_hdr_3addr *header = (struct rtllib_hdr_3addr *) skb->data; + u8* act = rtllib_get_payload((struct rtllib_hdr *)header); + u8 category = 0; + + if (act == NULL) { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "error to get payload of action frame\n"); + return; + } + + category = *act; + act ++; + switch (category) { + case ACT_CAT_BA: + switch (*act) { + case ACT_ADDBAREQ: + rtllib_rx_ADDBAReq(ieee, skb); + break; + case ACT_ADDBARSP: + rtllib_rx_ADDBARsp(ieee, skb); + break; + case ACT_DELBA: + rtllib_rx_DELBA(ieee, skb); + break; + } + break; + default: + break; + } + return; +} + +#ifdef _RTL8192_EXT_PATCH_ +void rtllib_process_action_mesh(struct rtllib_device* ieee, struct sk_buff* skb, + struct rtllib_rx_stats *rx_stats) +{ + struct rtllib_hdr_3addr *header = NULL; + u8* act = NULL; + u8 category = 0; + +#ifdef COMPATIBLE_WITH_RALINK_MESH + memmove(skb->data + WLAN_MESH_HDR_LEN, skb->data, sizeof(struct rtllib_hdr_3addr)); + skb_pull(skb, WLAN_MESH_HDR_LEN); +#endif + + header = (struct rtllib_hdr_3addr *) skb->data; + act = rtllib_get_payload((struct rtllib_hdr *)header); + + if (act == NULL) { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "error to get payload of action frame\n"); + return; + } + if (ieee->iw_mode != IW_MODE_MESH) { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "not in mesh mode\n"); + return; + } + + category = *act; + act ++; + switch (category) { + case ACT_CAT_MESH_PEERLINK_MGNT: + if(ieee->iw_mode != IW_MODE_MESH) { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "peerlink received not in mesh mode\n"); + return; + } + switch (*act) { + case ACT_PEERLINK_OPEN: + if (ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_open) { + ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_open(ieee, skb, rx_stats); + } + break; + case ACT_PEERLINK_CONFIRM: + if (ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm) { + ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm(ieee, skb); + } + break; + case ACT_PEERLINK_CLOSE: + if ( ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_close) { + ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_close(ieee, skb); + } + break; + } + break; + case ACT_CAT_MESH_LINK_METRIC: + if (ieee->iw_mode != IW_MODE_MESH) { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "link metric received not in mesh mode\n"); + return; + } + switch (*act) { + case ACT_LINKMETRIC_REQ: + if (ieee->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req) { + ieee->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req( + ieee, skb); + } + break; + case ACT_LINKMETRIC_RSP: + if (ieee->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report) { + ieee->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report( + ieee, skb); + } + break; + } + + break; + case ACT_CAT_MESH_PATH_SELECT: + if (ieee->iw_mode != IW_MODE_MESH) { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "not in mesh mode\n"); + return; + } + + switch (*act) { + case ACT_PATH_REQ: + if( ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq) { + ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq( + ieee, skb, rx_stats); + } + break; + case ACT_PATH_REPLY: + if(ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep) { + ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep( + ieee, skb, rx_stats); + } + break; + case ACT_PATH_ERR: + if(ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr) { + ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr( + ieee, skb, rx_stats); + } + break; + case ACT_RANN: + if(ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann) { + ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann( + ieee, skb, rx_stats); + } + break; + } + break; + case ACT_CAT_MESH_INTERWORKING: + if (ieee->iw_mode != IW_MODE_MESH) { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "not in mesh mode\n"); + return; + } + if (*act == 0) { + if (ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann) { + ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann( + ieee, skb, rx_stats); + } + } + break; + default: + break; + } + return; +} +#endif + + +inline int rtllib_rx_assoc_resp(struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_stats) +{ + u16 errcode; + int aid; + u8* ies; + struct rtllib_assoc_response_frame *assoc_resp; + struct rtllib_hdr_3addr *header = (struct rtllib_hdr_3addr *) skb->data; + + RTLLIB_DEBUG_MGMT("received [RE]ASSOCIATION RESPONSE (%d)\n", + WLAN_FC_GET_STYPE(header->frame_ctl)); + + if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) && + ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATED && +#ifdef _RTL8192_EXT_PATCH_ + ((ieee->iw_mode == IW_MODE_INFRA) || + (ieee->iw_mode == IW_MODE_MESH && ieee->only_mesh == 0))) +#else + (ieee->iw_mode == IW_MODE_INFRA)) +#endif + { + if (0 == (errcode=assoc_parse(ieee,skb, &aid))){ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)) + struct rtllib_network *network = kzalloc(sizeof(struct rtllib_network), GFP_ATOMIC); +#else + struct rtllib_network *network = kmalloc(sizeof(*network), GFP_ATOMIC); +#endif + if (!network) { + return 1; + } + memset(network,0,sizeof(*network)); + ieee->state=RTLLIB_LINKED; + ieee->assoc_id = aid; + ieee->softmac_stats.rx_ass_ok++; + /* station support qos */ + /* Let the register setting defaultly with Legacy station */ + assoc_resp = (struct rtllib_assoc_response_frame*)skb->data; + if(ieee->current_network.qos_data.supported == 1) { + if (rtllib_parse_info_param(ieee,assoc_resp->info_element,\ + rx_stats->len - sizeof(*assoc_resp),\ + network,rx_stats)){ + kfree(network); + return 1; + } + else + { + memcpy(ieee->pHTInfo->PeerHTCapBuf, network->bssht.bdHTCapBuf, network->bssht.bdHTCapLen); + memcpy(ieee->pHTInfo->PeerHTInfoBuf, network->bssht.bdHTInfoBuf, network->bssht.bdHTInfoLen); + } + if (ieee->handle_assoc_response != NULL) + ieee->handle_assoc_response(ieee->dev, (struct rtllib_assoc_response_frame*)header, network); + kfree(network); + } + + if(ieee->assocresp_ies){ + kfree(ieee->assocresp_ies); + ieee->assocresp_ies = NULL; + } + ies = &(assoc_resp->info_element[0].id); + ieee->assocresp_ies_len = (skb->data + skb->len) - ies; + ieee->assocresp_ies = kmalloc(ieee->assocresp_ies_len, GFP_ATOMIC); + if (ieee->assocresp_ies) + memcpy(ieee->assocresp_ies, ies, ieee->assocresp_ies_len); + else{ + printk("%s()Warning: can't alloc memory for assocresp_ies\n", __func__); + ieee->assocresp_ies_len = 0; + } +#ifdef RTL8192S_WAPI_SUPPORT + { + PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo); + PRT_WAPI_STA_INFO pWapiSta; + u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ; + u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ; + if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)) + { + pWapiSta =(PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAIdleList.next, RT_WAPI_STA_INFO, list); + list_del_init(&pWapiSta->list); + list_add_tail(&pWapiSta->list, &pWapiInfo->wapiSTAUsedList); + WAPI_TRACE(WAPI_API, "%s(): New WAPI STA ("MAC_FMT")!!\n",__FUNCTION__,MAC_ARG(ieee->current_network.bssid)); + memcpy(pWapiSta->PeerMacAddr,ieee->current_network.bssid,6); + memcpy(pWapiSta->lastRxMulticastPN, WapiAEMultiCastPNInitialValueSrc, 16); + memcpy(pWapiSta->lastRxUnicastPN, WapiAEPNInitialValueSrc, 16); + pWapiInfo->bFirstAuthentiateInProgress= true; + pWapiInfo->assoRspWapiIE[0] = MFIE_TYPE_WAPI; + pWapiInfo->assoRspWapiIE[1] = network->wapi_ie_len; + pWapiInfo->assoRspWapiIELength = network->wapi_ie_len+2; + memcpy(pWapiInfo->assoRspWapiIE+2,network->wapi_ie,network->wapi_ie_len); + } + } +#endif + rtllib_associate_complete(ieee); + } else { + /* aid could not been allocated */ + ieee->softmac_stats.rx_ass_err++; + printk( + "Association response status code 0x%x\n", + errcode); + RTLLIB_DEBUG_MGMT( + "Association response status code 0x%x\n", + errcode); + if(ieee->AsocRetryCount < RT_ASOC_RETRY_LIMIT) { + queue_delayed_work_rsl(ieee->wq, &ieee->associate_procedure_wq, 0); + } else { + rtllib_associate_abort(ieee); + } + } + } + + return 0; +} + +inline int rtllib_rx_auth(struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_stats) +{ +#ifdef _RTL8192_EXT_PATCH_ + struct rtllib_hdr_3addr *header = (struct rtllib_hdr_3addr *) skb->data; + u8 mesh_bssid[6] = {0,0,0,0,0,0}; +#endif + u16 errcode; + u8* challenge; + int chlen=0; + bool bSupportNmode = true, bHalfSupportNmode = false; + +#ifdef _RTL8192_EXT_PATCH_ + if((ieee->iw_mode == IW_MODE_MESH) && ieee->ext_patch_rtllib_rx_frame_softmac_on_auth && ieee->mesh_started && ((memcmp(header->addr3, ieee->current_network.bssid, 6)) || (memcmp(ieee->current_network.bssid, mesh_bssid, 6) == 0))) + ieee->ext_patch_rtllib_rx_frame_softmac_on_auth(ieee, skb, rx_stats); + else +#endif + if (ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE){ + if (ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATING && +#ifdef _RTL8192_EXT_PATCH_ + ((ieee->iw_mode == IW_MODE_INFRA)|| + ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0)))) +#else + (ieee->iw_mode == IW_MODE_INFRA)) +#endif + { + RTLLIB_DEBUG_MGMT("Received authentication response"); + + if (0 == (errcode=auth_parse(skb, &challenge, &chlen))){ + if(ieee->open_wep || !challenge){ + ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATED; + ieee->softmac_stats.rx_auth_rs_ok++; + if(!(ieee->pHTInfo->IOTAction&HT_IOT_ACT_PURE_N_MODE)) + { + if (!ieee->GetNmodeSupportBySecCfg(ieee->dev)) + { + if(IsHTHalfNmodeAPs(ieee)) + { + bSupportNmode = true; + bHalfSupportNmode = true; + } + else + { + bSupportNmode = false; + bHalfSupportNmode = false; + } + } + } + /* Dummy wirless mode setting to avoid encryption issue */ + if(bSupportNmode) { + ieee->SetWirelessMode(ieee->dev, \ + ieee->current_network.mode); + }else{ + /*TODO*/ + ieee->SetWirelessMode(ieee->dev, IEEE_G); + } + + if (ieee->current_network.mode == IEEE_N_24G && bHalfSupportNmode == true) + { + printk("===============>entern half N mode\n"); + ieee->bHalfWirelessN24GMode = true; + } + else + ieee->bHalfWirelessN24GMode = false; + + rtllib_associate_step2(ieee); + }else{ + rtllib_auth_challenge(ieee, challenge, chlen); + } + }else{ + ieee->softmac_stats.rx_auth_rs_err++; + RTLLIB_DEBUG_MGMT("Authentication respose status code 0x%x",errcode); + + printk("Authentication respose status code 0x%x",errcode); + rtllib_associate_abort(ieee); + } + + }else if (ieee->iw_mode == IW_MODE_MASTER){ + rtllib_rx_auth_rq(ieee, skb); + } + } + + return 0; +} + +inline int rtllib_rx_deauth(struct rtllib_device *ieee, struct sk_buff *skb) +{ + struct rtllib_hdr_3addr *header = (struct rtllib_hdr_3addr *) skb->data; + + if(memcmp(header->addr3, ieee->current_network.bssid, ETH_ALEN) != 0) + return 0; + + /* FIXME for now repeat all the association procedure + * both for disassociation and deauthentication + */ + if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) && + ieee->state == RTLLIB_LINKED && +#ifdef _RTL8192_EXT_PATCH_ + ((ieee->iw_mode == IW_MODE_INFRA) || + ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0)))) +#else + (ieee->iw_mode == IW_MODE_INFRA)) +#endif + { + printk("==========>received disassoc/deauth(%x) frame, reason code:%x\n",WLAN_FC_GET_STYPE(header->frame_ctl), ((struct rtllib_disassoc*)skb->data)->reason); + ieee->state = RTLLIB_ASSOCIATING; + ieee->softmac_stats.reassoc++; + ieee->is_roaming = true; + ieee->LinkDetectInfo.bBusyTraffic = false; + rtllib_disassociate(ieee); + RemovePeerTS(ieee, header->addr2); + if(ieee->LedControlHandler != NULL) + ieee->LedControlHandler(ieee->dev, LED_CTL_START_TO_LINK); + + if(!(ieee->rtllib_ap_sec_type(ieee)&(SEC_ALG_CCMP|SEC_ALG_TKIP))) + queue_delayed_work_rsl(ieee->wq, &ieee->associate_procedure_wq, 5); + } + + return 0; +} + +inline int rtllib_rx_frame_softmac(struct rtllib_device *ieee, struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats, u16 type, + u16 stype) +{ + struct rtllib_hdr_3addr *header = (struct rtllib_hdr_3addr *) skb->data; + +#ifdef _RTL8192_EXT_PATCH_ + if((!ieee->proto_started)&&(!ieee->mesh_started)) +#else + if(!ieee->proto_started) +#endif + return 0; + + switch (WLAN_FC_GET_STYPE(header->frame_ctl)) { + + case RTLLIB_STYPE_ASSOC_RESP: + case RTLLIB_STYPE_REASSOC_RESP: + + if(rtllib_rx_assoc_resp(ieee, skb, rx_stats) == 1) + return 1; + + break; + + case RTLLIB_STYPE_ASSOC_REQ: + case RTLLIB_STYPE_REASSOC_REQ: + + if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) && + ieee->iw_mode == IW_MODE_MASTER) + + rtllib_rx_assoc_rq(ieee, skb); + break; + + case RTLLIB_STYPE_AUTH: + + rtllib_rx_auth(ieee, skb, rx_stats); + + break; +#if 0 + case RTLLIB_STYPE_PROBE_REQ: + + if ((ieee->softmac_features & IEEE_SOFTMAC_PROBERS) && + ((ieee->iw_mode == IW_MODE_ADHOC || + ieee->iw_mode == IW_MODE_MASTER) && + ieee->state == RTLLIB_LINKED)){ + rtllib_rx_probe_rq(ieee, skb); + } + break; +#endif + case RTLLIB_STYPE_DISASSOC: + case RTLLIB_STYPE_DEAUTH: + + rtllib_rx_deauth(ieee, skb); + + break; + + case RTLLIB_STYPE_MANAGE_ACT: + rtllib_process_action(ieee,skb); +#ifdef _RTL8192_EXT_PATCH_ + rtllib_process_action_mesh(ieee,skb,rx_stats); +#endif + break; +#ifdef COMPATIBLE_WITH_RALINK_MESH + case RTLLIB_STYPE_MESH_ACT: + rtllib_process_action_mesh(ieee,skb,rx_stats); + break; +#endif + default: + return -1; + break; + } + + return 0; +} + +/* following are for a simplier TX queue management. + * Instead of using netif_[stop/wake]_queue the driver + * will uses these two function (plus a reset one), that + * will internally uses the kernel netif_* and takes + * care of the ieee802.11 fragmentation. + * So the driver receives a fragment per time and might + * call the stop function when it want without take care + * to have enought room to TX an entire packet. + * This might be useful if each fragment need it's own + * descriptor, thus just keep a total free memory > than + * the max fragmentation treshold is not enought.. If the + * ieee802.11 stack passed a TXB struct then you needed + * to keep N free descriptors where + * N = MAX_PACKET_SIZE / MIN_FRAG_TRESHOLD + * In this way you need just one and the 802.11 stack + * will take care of buffering fragments and pass them to + * to the driver later, when it wakes the queue. + */ +void rtllib_softmac_xmit(struct rtllib_txb *txb, struct rtllib_device *ieee) +{ + + unsigned int queue_index = txb->queue_index; + unsigned long flags; + int i; + cb_desc *tcb_desc = NULL; + unsigned long queue_len = 0; + + spin_lock_irqsave(&ieee->lock,flags); + + /* called with 2nd parm 0, no tx mgmt lock required */ + rtllib_sta_wakeup(ieee,0); + + /* update the tx status */ + tcb_desc = (cb_desc *)(txb->fragments[0]->cb + MAX_DEV_ADDR_SIZE); + if(tcb_desc->bMulticast) { + ieee->stats.multicast++; + } +#if 1 + /* if xmit available, just xmit it immediately, else just insert it to the wait queue */ + for(i = 0; i < txb->nr_frags; i++) { +#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE + queue_len = skb_queue_len(&ieee->skb_drv_aggQ[queue_index]); +#else + queue_len = skb_queue_len(&ieee->skb_waitQ[queue_index]); +#endif + if((queue_len != 0) ||\ + (!ieee->check_nic_enough_desc(ieee->dev,queue_index))||\ + (ieee->queue_stop)) { + /* insert the skb packet to the wait queue */ + /* as for the completion function, it does not need + * to check it any more. + * */ +#ifdef WIFI_TEST + if (1) +#else + if(queue_len < 200) +#endif + { +#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE + skb_queue_tail(&ieee->skb_drv_aggQ[queue_index], txb->fragments[i]); +#else + skb_queue_tail(&ieee->skb_waitQ[queue_index], txb->fragments[i]); +#endif + }else{ + kfree_skb(txb->fragments[i]); + } + }else{ + ieee->softmac_data_hard_start_xmit( + txb->fragments[i], + ieee->dev,ieee->rate); + } + } +#endif + rtllib_txb_free(txb); + + spin_unlock_irqrestore(&ieee->lock,flags); + +} + +/* called with ieee->lock acquired */ +void rtllib_resume_tx(struct rtllib_device *ieee) +{ + int i; + for(i = ieee->tx_pending.frag; i < ieee->tx_pending.txb->nr_frags; i++) { + + if (ieee->queue_stop){ + ieee->tx_pending.frag = i; + return; + }else{ + + ieee->softmac_data_hard_start_xmit( + ieee->tx_pending.txb->fragments[i], + ieee->dev,ieee->rate); + ieee->stats.tx_packets++; + } + } + + rtllib_txb_free(ieee->tx_pending.txb); + ieee->tx_pending.txb = NULL; +} + + +void rtllib_reset_queue(struct rtllib_device *ieee) +{ + unsigned long flags; + + spin_lock_irqsave(&ieee->lock,flags); + init_mgmt_queue(ieee); + if (ieee->tx_pending.txb){ + rtllib_txb_free(ieee->tx_pending.txb); + ieee->tx_pending.txb = NULL; + } + ieee->queue_stop = 0; + spin_unlock_irqrestore(&ieee->lock,flags); + +} + +void rtllib_wake_queue(struct rtllib_device *ieee) +{ + + unsigned long flags; + struct sk_buff *skb; + struct rtllib_hdr_3addr *header; + + spin_lock_irqsave(&ieee->lock,flags); + if (! ieee->queue_stop) goto exit; + + ieee->queue_stop = 0; + + if(ieee->softmac_features & IEEE_SOFTMAC_SINGLE_QUEUE){ + while (!ieee->queue_stop && (skb = dequeue_mgmt(ieee))){ + + header = (struct rtllib_hdr_3addr *) skb->data; + + header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4); + + if (ieee->seq_ctrl[0] == 0xFFF) + ieee->seq_ctrl[0] = 0; + else + ieee->seq_ctrl[0]++; + + ieee->softmac_data_hard_start_xmit(skb,ieee->dev,ieee->basic_rate); + } + } + if (!ieee->queue_stop && ieee->tx_pending.txb) + rtllib_resume_tx(ieee); + + if (!ieee->queue_stop && netif_queue_stopped(ieee->dev)){ + ieee->softmac_stats.swtxawake++; + netif_wake_queue(ieee->dev); + } + +exit : + spin_unlock_irqrestore(&ieee->lock,flags); +} + + +void rtllib_stop_queue(struct rtllib_device *ieee) +{ + + if (! netif_queue_stopped(ieee->dev)){ + netif_stop_queue(ieee->dev); + ieee->softmac_stats.swtxstop++; + } + ieee->queue_stop = 1; + +} + +void rtllib_stop_all_queues(struct rtllib_device *ieee) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,30) + unsigned int i; + for(i=0; i < ieee->dev->num_tx_queues; i++) + netdev_get_tx_queue(ieee->dev,i)->trans_start = jiffies; +#else + ieee->dev->trans_start = jiffies; +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) + netif_carrier_off(ieee->dev); +#else + netif_tx_stop_all_queues(ieee->dev); +#endif +} + +void rtllib_wake_all_queues(struct rtllib_device *ieee) +{ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) + netif_carrier_on(ieee->dev); +#else + netif_tx_wake_all_queues(ieee->dev); +#endif +} + +inline void rtllib_randomize_cell(struct rtllib_device *ieee) +{ + + get_random_bytes(ieee->current_network.bssid, ETH_ALEN); + + /* an IBSS cell address must have the two less significant + * bits of the first byte = 2 + */ + ieee->current_network.bssid[0] &= ~0x01; + ieee->current_network.bssid[0] |= 0x02; +} + +/* called in user context only */ +void rtllib_start_master_bss(struct rtllib_device *ieee) +{ + ieee->assoc_id = 1; + + if (ieee->current_network.ssid_len == 0){ + strncpy(ieee->current_network.ssid, + RTLLIB_DEFAULT_TX_ESSID, + IW_ESSID_MAX_SIZE); + + ieee->current_network.ssid_len = strlen(RTLLIB_DEFAULT_TX_ESSID); + ieee->ssid_set = 1; + } + + memcpy(ieee->current_network.bssid, ieee->dev->dev_addr, ETH_ALEN); + + ieee->set_chan(ieee->dev, ieee->current_network.channel); + ieee->state = RTLLIB_LINKED; +#if defined (RTL8192S_WAPI_SUPPORT) + if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){ + WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0); + } +#endif + ieee->link_change(ieee->dev); + notify_wx_assoc_event(ieee); + + if (ieee->data_hard_resume) + ieee->data_hard_resume(ieee->dev); + + netif_carrier_on(ieee->dev); +} + +void rtllib_start_monitor_mode(struct rtllib_device *ieee) +{ + /* reset hardware status */ + if(ieee->raw_tx){ + if (ieee->data_hard_resume) + ieee->data_hard_resume(ieee->dev); + + netif_carrier_on(ieee->dev); + } +} + +void rtllib_start_ibss_wq(void *data) +{ + struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, start_ibss_wq); + /* iwconfig mode ad-hoc will schedule this and return + * on the other hand this will block further iwconfig SET + * operations because of the wx_sem hold. + * Anyway some most set operations set a flag to speed-up + * (abort) this wq (when syncro scanning) before sleeping + * on the semaphore + */ + if(!ieee->proto_started){ + printk("==========oh driver down return\n"); + return; + } + down(&ieee->wx_sem); + + if (ieee->current_network.ssid_len == 0){ + strcpy(ieee->current_network.ssid,RTLLIB_DEFAULT_TX_ESSID); + ieee->current_network.ssid_len = strlen(RTLLIB_DEFAULT_TX_ESSID); + ieee->ssid_set = 1; + } + + ieee->state = RTLLIB_NOLINK; +#ifdef ADHOC_11N + ieee->mode = IEEE_N_24G; +#else + ieee->mode = IEEE_G; +#endif + /* check if we have this cell in our network list */ + rtllib_softmac_check_all_nets(ieee); + + + /* if not then the state is not linked. Maybe the user swithced to + * ad-hoc mode just after being in monitor mode, or just after + * being very few time in managed mode (so the card have had no + * time to scan all the chans..) or we have just run up the iface + * after setting ad-hoc mode. So we have to give another try.. + * Here, in ibss mode, should be safe to do this without extra care + * (in bss mode we had to make sure no-one tryed to associate when + * we had just checked the ieee->state and we was going to start the + * scan) beacause in ibss mode the rtllib_new_net function, when + * finds a good net, just set the ieee->state to RTLLIB_LINKED, + * so, at worst, we waste a bit of time to initiate an unneeded syncro + * scan, that will stop at the first round because it sees the state + * associated. + */ + if (ieee->state == RTLLIB_NOLINK) + rtllib_start_scan_syncro(ieee, 0); + + /* the network definitively is not here.. create a new cell */ + if (ieee->state == RTLLIB_NOLINK){ + printk("creating new IBSS cell\n"); + ieee->current_network.channel = ieee->IbssStartChnl; + if(!ieee->wap_set) + rtllib_randomize_cell(ieee); + + if(ieee->modulation & RTLLIB_CCK_MODULATION){ + + ieee->current_network.rates_len = 4; + + ieee->current_network.rates[0] = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_1MB; + ieee->current_network.rates[1] = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_2MB; + ieee->current_network.rates[2] = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_5MB; + ieee->current_network.rates[3] = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_11MB; + + }else + ieee->current_network.rates_len = 0; + + if(ieee->modulation & RTLLIB_OFDM_MODULATION){ + ieee->current_network.rates_ex_len = 8; + + /*ieee->current_network.rates_ex[0] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_6MB; + ieee->current_network.rates_ex[1] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_9MB; + ieee->current_network.rates_ex[2] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_12MB; + ieee->current_network.rates_ex[3] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_18MB; + ieee->current_network.rates_ex[4] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_24MB; + ieee->current_network.rates_ex[5] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_36MB; + ieee->current_network.rates_ex[6] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_48MB; + ieee->current_network.rates_ex[7] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_54MB;*/ + + ieee->current_network.rates_ex[0] = RTLLIB_OFDM_RATE_6MB; + ieee->current_network.rates_ex[1] = RTLLIB_OFDM_RATE_9MB; + ieee->current_network.rates_ex[2] = RTLLIB_OFDM_RATE_12MB; + ieee->current_network.rates_ex[3] = RTLLIB_OFDM_RATE_18MB; + ieee->current_network.rates_ex[4] = RTLLIB_OFDM_RATE_24MB; + ieee->current_network.rates_ex[5] = RTLLIB_OFDM_RATE_36MB; + ieee->current_network.rates_ex[6] = RTLLIB_OFDM_RATE_48MB; + ieee->current_network.rates_ex[7] = RTLLIB_OFDM_RATE_54MB; + + ieee->rate = 108; + }else{ + ieee->current_network.rates_ex_len = 0; + ieee->rate = 22; + } + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) +#ifdef ADHOC_11N + ieee->current_network.qos_data.supported = 1; +#else + ieee->current_network.qos_data.supported = 0; +#endif + ieee->SetWirelessMode(ieee->dev, ieee->mode); +#else + ieee->current_network.qos_data.supported = 0; + ieee->SetWirelessMode(ieee->dev, IEEE_G); +#endif + ieee->current_network.mode = ieee->mode; + ieee->current_network.atim_window = 0; + ieee->current_network.capability = WLAN_CAPABILITY_IBSS; + } + + printk("%s(): ieee->mode = %d\n", __FUNCTION__, ieee->mode); + if((ieee->mode == IEEE_N_24G) || (ieee->mode == IEEE_N_5G)) + HTUseDefaultSetting(ieee); + else + ieee->pHTInfo->bCurrentHTSupport = false; + + ieee->SetHwRegHandler(ieee->dev, HW_VAR_MEDIA_STATUS, (u8 *)(&ieee->state)); + +#if defined (RTL8192S_WAPI_SUPPORT) + if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){ + WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0); + } +#endif + ieee->state = RTLLIB_LINKED; +#ifdef _RTL8192_EXT_PATCH_ + ieee->set_chan(ieee->dev, ieee->current_network.channel); +#endif + ieee->link_change(ieee->dev); + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + + if(ieee->pHTInfo->bCurBW40MHz) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); +#else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT); +#endif + if(ieee->LedControlHandler != NULL) + ieee->LedControlHandler(ieee->dev,LED_CTL_LINK); + + rtllib_start_send_beacons(ieee); + + notify_wx_assoc_event(ieee); + + if (ieee->data_hard_resume) + ieee->data_hard_resume(ieee->dev); + + netif_carrier_on(ieee->dev); + + up(&ieee->wx_sem); +} + +inline void rtllib_start_ibss(struct rtllib_device *ieee) +{ + queue_delayed_work_rsl(ieee->wq, &ieee->start_ibss_wq, MSECS(150)); +} + +/* this is called only in user context, with wx_sem held */ +void rtllib_start_bss(struct rtllib_device *ieee) +{ + unsigned long flags; +#ifdef ENABLE_DOT11D + if(IS_DOT11D_ENABLE(ieee) && !IS_COUNTRY_IE_VALID(ieee)) + { + if(! ieee->bGlobalDomain) + { + return; + } + } +#endif + /* check if we have already found the net we + * are interested in (if any). + * if not (we are disassociated and we are not + * in associating / authenticating phase) start the background scanning. + */ + rtllib_softmac_check_all_nets(ieee); + + /* ensure no-one start an associating process (thus setting + * the ieee->state to rtllib_ASSOCIATING) while we + * have just cheked it and we are going to enable scan. + * The rtllib_new_net function is always called with + * lock held (from both rtllib_softmac_check_all_nets and + * the rx path), so we cannot be in the middle of such function + */ + spin_lock_irqsave(&ieee->lock, flags); + + if (ieee->state == RTLLIB_NOLINK) { + rtllib_start_scan(ieee); + } + spin_unlock_irqrestore(&ieee->lock, flags); +} + +void rtllib_link_change_wq(void *data) +{ + struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, link_change_wq); + ieee->link_change(ieee->dev); +} +/* called only in userspace context */ +void rtllib_disassociate(struct rtllib_device *ieee) +{ + netif_carrier_off(ieee->dev); + if (ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE) + rtllib_reset_queue(ieee); + + if (ieee->data_hard_stop) + ieee->data_hard_stop(ieee->dev); +#ifdef ENABLE_DOT11D + if(IS_DOT11D_ENABLE(ieee)) + Dot11d_Reset(ieee); +#endif + ieee->state = RTLLIB_NOLINK; + ieee->is_set_key = false; + ieee->wap_set = 0; + + queue_delayed_work_rsl(ieee->wq, &ieee->link_change_wq, 0); + + +#ifndef FOR_ANDROID_X86 + notify_wx_assoc_event(ieee); +#endif +#ifdef RTL8192S_WAPI_SUPPORT + printk("==============> %s()\n", __FUNCTION__); + WapiReturnOneStaInfo(ieee, ieee->current_network.bssid, 0); +#endif +} +#ifdef RTL8192S_WAPI_SUPPORT +void ieee80211_disassociate_from_app(struct rtllib_device *ieee) +{ + netif_carrier_off(ieee->dev); + if (ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE) + rtllib_reset_queue(ieee); + + if (ieee->data_hard_stop) + ieee->data_hard_stop(ieee->dev); +#ifdef ENABLE_DOT11D + if(IS_DOT11D_ENABLE(ieee)) + Dot11d_Reset(ieee); +#endif + ieee->state = RTLLIB_NOLINK; + ieee->is_set_key = false; + ieee->wap_set = 0; + + queue_delayed_work_rsl(ieee->wq, &ieee->link_change_wq, 0); + + +#ifndef FOR_ANDROID_X86 + notify_wx_assoc_event(ieee); +#endif + + printk("==============> %s()\n", __FUNCTION__); + WapiReturnOneStaInfo(ieee, ieee->current_network.bssid, 1); +} + +#endif +void rtllib_associate_retry_wq(void *data) +{ + struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, associate_retry_wq); + unsigned long flags; + + down(&ieee->wx_sem); + if(!ieee->proto_started) + goto exit; + + if(ieee->state != RTLLIB_ASSOCIATING_RETRY) + goto exit; + + /* until we do not set the state to RTLLIB_NOLINK + * there are no possibility to have someone else trying + * to start an association procdure (we get here with + * ieee->state = RTLLIB_ASSOCIATING). + * When we set the state to RTLLIB_NOLINK it is possible + * that the RX path run an attempt to associate, but + * both rtllib_softmac_check_all_nets and the + * RX path works with ieee->lock held so there are no + * problems. If we are still disassociated then start a scan. + * the lock here is necessary to ensure no one try to start + * an association procedure when we have just checked the + * state and we are going to start the scan. + */ + ieee->beinretry = true; + ieee->state = RTLLIB_NOLINK; + + rtllib_softmac_check_all_nets(ieee); + + spin_lock_irqsave(&ieee->lock, flags); + + if(ieee->state == RTLLIB_NOLINK) + { + rtllib_start_scan(ieee); + } + spin_unlock_irqrestore(&ieee->lock, flags); + + ieee->beinretry = false; +exit: + up(&ieee->wx_sem); +} + +struct sk_buff *rtllib_get_beacon_(struct rtllib_device *ieee) +{ + u8 broadcast_addr[] = {0xff,0xff,0xff,0xff,0xff,0xff}; + + struct sk_buff *skb; + struct rtllib_probe_response *b; +#ifdef _RTL8192_EXT_PATCH_ + if((ieee->iw_mode == IW_MODE_MESH)&&(ieee->ext_patch_get_beacon_get_probersp )) + skb = ieee->ext_patch_get_beacon_get_probersp(ieee, broadcast_addr, &(ieee->current_mesh_network)); + else + skb = rtllib_probe_resp(ieee, broadcast_addr); +#else + skb = rtllib_probe_resp(ieee, broadcast_addr); +#endif + + if (!skb) + return NULL; + + b = (struct rtllib_probe_response *) skb->data; + b->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_BEACON); + + return skb; + +} + +struct sk_buff *rtllib_get_beacon(struct rtllib_device *ieee) +{ + struct sk_buff *skb; + struct rtllib_probe_response *b; + + skb = rtllib_get_beacon_(ieee); + if(!skb) + return NULL; + + b = (struct rtllib_probe_response *) skb->data; + b->header.seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4); + + if (ieee->seq_ctrl[0] == 0xFFF) + ieee->seq_ctrl[0] = 0; + else + ieee->seq_ctrl[0]++; + + return skb; +} + +void rtllib_softmac_stop_protocol(struct rtllib_device *ieee, u8 mesh_flag, u8 shutdown) +{ + rtllib_stop_scan_syncro(ieee); + down(&ieee->wx_sem); +#ifdef _RTL8192_EXT_PATCH_ + if(mesh_flag) { + rtllib_stop_mesh_protocol(ieee); + } + else +#endif + rtllib_stop_protocol(ieee,shutdown); + up(&ieee->wx_sem); +} + + +void rtllib_stop_protocol(struct rtllib_device *ieee, u8 shutdown) +{ + if (!ieee->proto_started) + return; + + if(shutdown){ + ieee->proto_started = 0; + ieee->proto_stoppping = 1; +#ifdef ENABLE_IPS + if(ieee->rtllib_ips_leave != NULL) + ieee->rtllib_ips_leave(ieee->dev); +#endif + } + + rtllib_stop_send_beacons(ieee); + del_timer_sync(&ieee->associate_timer); +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + del_timer_sync(&ieee->ibss_wait_timer); +#endif +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + cancel_delayed_work(&ieee->associate_retry_wq); + cancel_delayed_work(&ieee->start_ibss_wq); + cancel_delayed_work(&ieee->link_change_wq); +#endif + rtllib_stop_scan(ieee); + + if(ieee->state <= RTLLIB_ASSOCIATING_AUTHENTICATED) + ieee->state = RTLLIB_NOLINK; + + if (ieee->state == RTLLIB_LINKED){ + if (ieee->iw_mode == IW_MODE_INFRA) + SendDisassociation(ieee,1,deauth_lv_ss); + rtllib_disassociate(ieee); + } + + if(shutdown){ + RemoveAllTS(ieee); + ieee->proto_stoppping = 0; +#ifdef RTL8192S_WAPI_SUPPORT + if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)) + { + WapiReturnAllStaInfo(ieee); + } +#endif + } +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + if(ieee->iw_mode == IW_MODE_ADHOC) + DelStaInfoList(ieee); +#endif + + if(ieee->assocreq_ies){ + kfree(ieee->assocreq_ies); + ieee->assocreq_ies = NULL; + ieee->assocreq_ies_len = 0; + } + if(ieee->assocresp_ies){ + kfree(ieee->assocresp_ies); + ieee->assocresp_ies = NULL; + ieee->assocresp_ies_len = 0; + } +} + +#ifdef _RTL8192_EXT_PATCH_ +void rtllib_stop_mesh_protocol(struct rtllib_device *ieee) +{ + if (!ieee->mesh_started) + return; + ieee->mesh_started = 0; + + if(ieee->ext_patch_rtllib_stop_protocol) + ieee->ext_patch_rtllib_stop_protocol(ieee,0); + + rtllib_stop_send_beacons(ieee); +} +#endif + +void rtllib_softmac_start_protocol(struct rtllib_device *ieee, u8 mesh_flag) +{ + down(&ieee->wx_sem); +#ifdef _RTL8192_EXT_PATCH_ + if (mesh_flag) { + rtllib_start_mesh_protocol(ieee); + } + else +#endif + rtllib_start_protocol(ieee); + up(&ieee->wx_sem); +} + +void rtllib_start_protocol(struct rtllib_device *ieee) +{ + short ch = 0; + int i = 0; + + rtllib_update_active_chan_map(ieee); + + if (ieee->proto_started) + return; + + ieee->proto_started = 1; + + if (ieee->current_network.channel == 0) { + do { + ch++; + if (ch > MAX_CHANNEL_NUMBER) + return; /* no channel found */ + } while(!ieee->active_channel_map[ch]); + ieee->current_network.channel = ch; + } + + if (ieee->current_network.beacon_interval == 0) + ieee->current_network.beacon_interval = 100; + + for(i = 0; i < 17; i++) { + ieee->last_rxseq_num[i] = -1; + ieee->last_rxfrag_num[i] = -1; + ieee->last_packet_time[i] = 0; + } + + if(ieee->UpdateBeaconInterruptHandler) { +#ifdef _RTL8192_EXT_PATCH_ + if (ieee->iw_mode == IW_MODE_MESH) + ieee->UpdateBeaconInterruptHandler(ieee->dev, true); + else +#endif + ieee->UpdateBeaconInterruptHandler(ieee->dev, false); + } + ieee->wmm_acm = 0; + /* if the user set the MAC of the ad-hoc cell and then + * switch to managed mode, shall we make sure that association + * attempts does not fail just because the user provide the essid + * and the nic is still checking for the AP MAC ?? + */ +#ifdef _RTL8192_EXT_PATCH_ + if ((ieee->iw_mode == IW_MODE_INFRA) || ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0))) +#else + if (ieee->iw_mode == IW_MODE_INFRA) +#endif + { + rtllib_start_bss(ieee); + }else if (ieee->iw_mode == IW_MODE_ADHOC){ + if(ieee->UpdateBeaconInterruptHandler) + ieee->UpdateBeaconInterruptHandler(ieee->dev, true); + + rtllib_start_ibss(ieee); + + }else if (ieee->iw_mode == IW_MODE_MASTER) + rtllib_start_master_bss(ieee); + + else if(ieee->iw_mode == IW_MODE_MONITOR) + rtllib_start_monitor_mode(ieee); +} + +#ifdef _RTL8192_EXT_PATCH_ +void rtllib_start_mesh_protocol(struct rtllib_device *ieee) +{ + short ch = 0; + + rtllib_update_active_chan_map(ieee); + + if (ieee->mesh_started) + return; + + ieee->mesh_started = 1; + + if (ieee->current_mesh_network.channel == 0){ + do { + ch++; + if (ch > MAX_CHANNEL_NUMBER) + return; /* no channel found */ + } while(ieee->active_channel_map[ch]); + + ieee->current_mesh_network.channel = ch; + } + + if (ieee->current_mesh_network.beacon_interval == 0) + ieee->current_mesh_network.beacon_interval = 100; + ieee->wmm_acm = 0; + + if(ieee->UpdateBeaconInterruptHandler) + ieee->UpdateBeaconInterruptHandler(ieee->dev, true); + + if(ieee->ext_patch_rtllib_start_mesh) + ieee->ext_patch_rtllib_start_mesh(ieee); +} +#endif + + +#define DRV_NAME "Ieee80211" +void rtllib_softmac_init(struct rtllib_device *ieee) +{ + int i; + memset(&ieee->current_network, 0, sizeof(struct rtllib_network)); + + ieee->state = RTLLIB_NOLINK; +#ifdef _RTL8192_EXT_PATCH_ + ieee->mesh_state = RTLLIB_NOLINK; +#endif + for(i = 0; i < 5; i++) { + ieee->seq_ctrl[i] = 0; + } +#ifdef ENABLE_DOT11D + ieee->pDot11dInfo = kmalloc(sizeof(RT_DOT11D_INFO), GFP_ATOMIC); + if (!ieee->pDot11dInfo) + RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't alloc memory for DOT11D\n"); + memset(ieee->pDot11dInfo, 0, sizeof(RT_DOT11D_INFO)); +#endif + ieee->LinkDetectInfo.SlotIndex = 0; + ieee->LinkDetectInfo.SlotNum = 2; + ieee->LinkDetectInfo.NumRecvBcnInPeriod=0; + ieee->LinkDetectInfo.NumRecvDataInPeriod=0; + ieee->LinkDetectInfo.NumTxOkInPeriod =0; + ieee->LinkDetectInfo.NumRxOkInPeriod =0; + ieee->LinkDetectInfo.NumRxUnicastOkInPeriod=0; +#ifdef _RTL8192_EXT_PATCH_ + ieee->LinkDetectInfo.NumTxUnicastOkInPeriod = 0; + ieee->LinkDetectInfo.LastNumRxUnicast = 0; + ieee->LinkDetectInfo.LastNumTxUnicast = 0; + ieee->LinkDetectInfo.IdleCount = 0; +#endif + ieee->bIsAggregateFrame = false; + ieee->assoc_id = 0; + ieee->queue_stop = 0; + ieee->scanning_continue = 0; + ieee->softmac_features = 0; + ieee->wap_set = 0; + ieee->ssid_set = 0; + ieee->proto_started = 0; + ieee->proto_stoppping = 0; + ieee->basic_rate = RTLLIB_DEFAULT_BASIC_RATE; + ieee->rate = 22; + ieee->ps = RTLLIB_PS_DISABLED; + ieee->sta_sleep = LPS_IS_WAKE; + +#ifdef _RTL8192_EXT_PATCH_ + ieee->mesh_started = 0; +#endif + ieee->Regdot11HTOperationalRateSet[0]= 0xff; + ieee->Regdot11HTOperationalRateSet[1]= 0xff; + ieee->Regdot11HTOperationalRateSet[4]= 0x01; + + ieee->Regdot11TxHTOperationalRateSet[0]= 0xff; + ieee->Regdot11TxHTOperationalRateSet[1]= 0xff; + ieee->Regdot11TxHTOperationalRateSet[4]= 0x01; + + ieee->FirstIe_InScan = false; + ieee->actscanning = false; + ieee->beinretry = false; + ieee->is_set_key = false; + init_mgmt_queue(ieee); + + ieee->sta_edca_param[0] = 0x0000A403; + ieee->sta_edca_param[1] = 0x0000A427; + ieee->sta_edca_param[2] = 0x005E4342; + ieee->sta_edca_param[3] = 0x002F3262; + ieee->aggregation = true; + ieee->enable_rx_imm_BA = 1; +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,40) + _setup_timer(&ieee->scan_timer, + rtllib_softmac_scan_cb, + (unsigned long) ieee); +#endif + ieee->tx_pending.txb = NULL; + + _setup_timer(&ieee->associate_timer, + rtllib_associate_abort_cb, + (unsigned long) ieee); + + _setup_timer(&ieee->beacon_timer, + rtllib_send_beacon_cb, + (unsigned long) ieee); + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + _setup_timer(&ieee->ibss_wait_timer, + rtllib_ibss_wait_timeout, + (unsigned long) ieee); +#endif + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) +#ifdef PF_SYNCTHREAD + ieee->wq = create_workqueue(DRV_NAME,0); +#else + ieee->wq = create_workqueue(DRV_NAME); +#endif +#endif + + INIT_DELAYED_WORK_RSL(&ieee->link_change_wq,(void*)rtllib_link_change_wq,ieee); + INIT_DELAYED_WORK_RSL(&ieee->start_ibss_wq,(void*)rtllib_start_ibss_wq,ieee); + INIT_WORK_RSL(&ieee->associate_complete_wq, (void*)rtllib_associate_complete_wq,ieee); + INIT_DELAYED_WORK_RSL(&ieee->associate_procedure_wq, (void*)rtllib_associate_procedure_wq,ieee); + INIT_DELAYED_WORK_RSL(&ieee->softmac_scan_wq,(void*)rtllib_softmac_scan_wq,ieee); + INIT_DELAYED_WORK_RSL(&ieee->softmac_hint11d_wq,(void*)rtllib_softmac_hint11d_wq,ieee); + INIT_DELAYED_WORK_RSL(&ieee->associate_retry_wq, (void*)rtllib_associate_retry_wq,ieee); + INIT_WORK_RSL(&ieee->wx_sync_scan_wq,(void*)rtllib_wx_sync_scan_wq,ieee); + +#ifdef _RTL8192_EXT_PATCH_ + INIT_WORK_RSL(&ieee->ext_stop_scan_wq,(void*) rtllib_ext_stop_scan_wq,ieee); + INIT_WORK_RSL(&ieee->ext_send_beacon_wq,(void*) ext_rtllib_send_beacon_wq,ieee); +#endif + + sema_init(&ieee->wx_sem, 1); + sema_init(&ieee->scan_sem, 1); + sema_init(&ieee->ips_sem,1); + + spin_lock_init(&ieee->mgmt_tx_lock); + spin_lock_init(&ieee->beacon_lock); + + tasklet_init(&ieee->ps_task, + (void(*)(unsigned long)) rtllib_sta_ps, + (unsigned long)ieee); + +} + +void rtllib_softmac_free(struct rtllib_device *ieee) +{ + down(&ieee->wx_sem); +#ifdef ENABLE_DOT11D + if(NULL != ieee->pDot11dInfo) + { + kfree(ieee->pDot11dInfo); + ieee->pDot11dInfo = NULL; + } +#endif + del_timer_sync(&ieee->associate_timer); + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + cancel_delayed_work(&ieee->associate_retry_wq); + destroy_workqueue(ieee->wq); +#endif + + up(&ieee->wx_sem); +} + +/******************************************************** + * Start of WPA code. * + * this is stolen from the ipw2200 driver * + ********************************************************/ + + +static int rtllib_wpa_enable(struct rtllib_device *ieee, int value) +{ + /* This is called when wpa_supplicant loads and closes the driver + * interface. */ + printk("%s WPA\n",value ? "enabling" : "disabling"); + ieee->wpa_enabled = value; + memset(ieee->ap_mac_addr, 0, 6); + return 0; +} + + +void rtllib_wpa_assoc_frame(struct rtllib_device *ieee, char *wpa_ie, int wpa_ie_len) +{ + /* make sure WPA is enabled */ + rtllib_wpa_enable(ieee, 1); + + rtllib_disassociate(ieee); +} + + +static int rtllib_wpa_mlme(struct rtllib_device *ieee, int command, int reason) +{ + + int ret = 0; + + switch (command) { + case IEEE_MLME_STA_DEAUTH: + break; + + case IEEE_MLME_STA_DISASSOC: + rtllib_disassociate(ieee); + break; + + default: + printk("Unknown MLME request: %d\n", command); + ret = -EOPNOTSUPP; + } + + return ret; +} + + +static int rtllib_wpa_set_wpa_ie(struct rtllib_device *ieee, + struct ieee_param *param, int plen) +{ + u8 *buf; + + if (param->u.wpa_ie.len > MAX_WPA_IE_LEN || + (param->u.wpa_ie.len && param->u.wpa_ie.data == NULL)) + return -EINVAL; + + if (param->u.wpa_ie.len) { + buf = kmalloc(param->u.wpa_ie.len, GFP_KERNEL); + if (buf == NULL) + return -ENOMEM; + + memcpy(buf, param->u.wpa_ie.data, param->u.wpa_ie.len); + kfree(ieee->wpa_ie); + ieee->wpa_ie = buf; + ieee->wpa_ie_len = param->u.wpa_ie.len; + } else { + kfree(ieee->wpa_ie); + ieee->wpa_ie = NULL; + ieee->wpa_ie_len = 0; + } + + rtllib_wpa_assoc_frame(ieee, ieee->wpa_ie, ieee->wpa_ie_len); + return 0; +} + +#define AUTH_ALG_OPEN_SYSTEM 0x1 +#define AUTH_ALG_SHARED_KEY 0x2 +#define AUTH_ALG_LEAP 0x4 +static int rtllib_wpa_set_auth_algs(struct rtllib_device *ieee, int value) +{ + + struct rtllib_security sec = { + .flags = SEC_AUTH_MODE, + }; + int ret = 0; + + if (value & AUTH_ALG_SHARED_KEY) { + sec.auth_mode = WLAN_AUTH_SHARED_KEY; + ieee->open_wep = 0; + ieee->auth_mode = 1; + } else if (value & AUTH_ALG_OPEN_SYSTEM){ + sec.auth_mode = WLAN_AUTH_OPEN; + ieee->open_wep = 1; + ieee->auth_mode = 0; + } + else if (value & AUTH_ALG_LEAP){ + sec.auth_mode = WLAN_AUTH_LEAP >> 6; + ieee->open_wep = 1; + ieee->auth_mode = 2; + } + + + if (ieee->set_security) + ieee->set_security(ieee->dev, &sec); + + return ret; +} + +static int rtllib_wpa_set_param(struct rtllib_device *ieee, u8 name, u32 value) +{ + int ret=0; + unsigned long flags; + + switch (name) { + case IEEE_PARAM_WPA_ENABLED: + ret = rtllib_wpa_enable(ieee, value); + break; + + case IEEE_PARAM_TKIP_COUNTERMEASURES: + ieee->tkip_countermeasures=value; + break; + + case IEEE_PARAM_DROP_UNENCRYPTED: + { + /* HACK: + * + * wpa_supplicant calls set_wpa_enabled when the driver + * is loaded and unloaded, regardless of if WPA is being + * used. No other calls are made which can be used to + * determine if encryption will be used or not prior to + * association being expected. If encryption is not being + * used, drop_unencrypted is set to false, else true -- we + * can use this to determine if the CAP_PRIVACY_ON bit should + * be set. + */ + struct rtllib_security sec = { + .flags = SEC_ENABLED, + .enabled = value, + }; + ieee->drop_unencrypted = value; + /* We only change SEC_LEVEL for open mode. Others + * are set by ipw_wpa_set_encryption. + */ + if (!value) { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_0; + } + else { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_1; + } + if (ieee->set_security) + ieee->set_security(ieee->dev, &sec); + break; + } + + case IEEE_PARAM_PRIVACY_INVOKED: + ieee->privacy_invoked=value; + break; + + case IEEE_PARAM_AUTH_ALGS: + ret = rtllib_wpa_set_auth_algs(ieee, value); + break; + + case IEEE_PARAM_IEEE_802_1X: + ieee->ieee802_1x=value; + break; + case IEEE_PARAM_WPAX_SELECT: + spin_lock_irqsave(&ieee->wpax_suitlist_lock,flags); + spin_unlock_irqrestore(&ieee->wpax_suitlist_lock,flags); + break; + + default: + printk("Unknown WPA param: %d\n",name); + ret = -EOPNOTSUPP; + } + + return ret; +} + +/* implementation borrowed from hostap driver */ +static int rtllib_wpa_set_encryption(struct rtllib_device *ieee, + struct ieee_param *param, int param_len, u8 is_mesh) +{ + int ret = 0; +#ifdef _RTL8192_EXT_PATCH_ + u8 i = 0; +#endif + struct rtllib_crypto_ops *ops; + struct rtllib_crypt_data **crypt; + + struct rtllib_security sec = { + .flags = 0, + }; + + param->u.crypt.err = 0; + param->u.crypt.alg[IEEE_CRYPT_ALG_NAME_LEN - 1] = '\0'; + + if (param_len != + (int) ((char *) param->u.crypt.key - (char *) param) + + param->u.crypt.key_len) { + printk("Len mismatch %d, %d\n", param_len, + param->u.crypt.key_len); + return -EINVAL; + } + if (param->sta_addr[0] == 0xff && param->sta_addr[1] == 0xff && + param->sta_addr[2] == 0xff && param->sta_addr[3] == 0xff && + param->sta_addr[4] == 0xff && param->sta_addr[5] == 0xff) { + if (param->u.crypt.idx >= WEP_KEYS) + return -EINVAL; +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + crypt = &ieee->cryptlist[0]->crypt[param->u.crypt.idx]; + else + crypt = &ieee->sta_crypt[param->u.crypt.idx]; +#else + crypt = &ieee->crypt[param->u.crypt.idx]; +#endif + } else { + return -EINVAL; + } + + if (strcmp(param->u.crypt.alg, "none") == 0) { + if (crypt) { + sec.enabled = 0; + sec.level = SEC_LEVEL_0; + sec.flags |= SEC_ENABLED | SEC_LEVEL; + rtllib_crypt_delayed_deinit(ieee, crypt); + } + goto done; + } + sec.enabled = 1; + sec.flags |= SEC_ENABLED; + + /* IPW HW cannot build TKIP MIC, host decryption still needed. */ + if (!(ieee->host_encrypt || ieee->host_decrypt) && + strcmp(param->u.crypt.alg, "TKIP")) + goto skip_host_crypt; + + ops = rtllib_get_crypto_ops(param->u.crypt.alg); + if (ops == NULL && strcmp(param->u.crypt.alg, "WEP") == 0) { + request_module("rtllib_crypt_wep"); + ops = rtllib_get_crypto_ops(param->u.crypt.alg); + } else if (ops == NULL && strcmp(param->u.crypt.alg, "TKIP") == 0) { + request_module("rtllib_crypt_tkip"); + ops = rtllib_get_crypto_ops(param->u.crypt.alg); + } else if (ops == NULL && strcmp(param->u.crypt.alg, "CCMP") == 0) { + request_module("rtllib_crypt_ccmp"); + ops = rtllib_get_crypto_ops(param->u.crypt.alg); + } + if (ops == NULL) { + printk("unknown crypto alg '%s'\n", param->u.crypt.alg); + param->u.crypt.err = IEEE_CRYPT_ERR_UNKNOWN_ALG; + ret = -EINVAL; + goto done; + } +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + { + for (i=0; icryptlist[i]->crypt[param->u.crypt.idx]; + + *crypt = ieee->cryptlist[i]->crypt[param->u.crypt.idx]; + } +#endif + + if (*crypt == NULL || (*crypt)->ops != ops) { + struct rtllib_crypt_data *new_crypt; + + rtllib_crypt_delayed_deinit(ieee, crypt); + + new_crypt = (struct rtllib_crypt_data *) + kmalloc(sizeof(*new_crypt), GFP_KERNEL); + if (new_crypt == NULL) { + ret = -ENOMEM; + goto done; + } + memset(new_crypt, 0, sizeof(struct rtllib_crypt_data)); + new_crypt->ops = ops; +#ifdef BUILT_IN_RTLLIB + if (new_crypt->ops) +#else +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) + if (new_crypt->ops && try_module_get(new_crypt->ops->owner)) +#else + if (new_crypt->ops && try_inc_mod_count(new_crypt->ops->owner)) +#endif +#endif + new_crypt->priv = + new_crypt->ops->init(param->u.crypt.idx); + + if (new_crypt->priv == NULL) { + kfree(new_crypt); + param->u.crypt.err = IEEE_CRYPT_ERR_CRYPT_INIT_FAILED; + ret = -EINVAL; + goto done; + } + + *crypt = new_crypt; + } + + if (param->u.crypt.key_len > 0 && (*crypt)->ops->set_key && + (*crypt)->ops->set_key(param->u.crypt.key, + param->u.crypt.key_len, param->u.crypt.seq, + (*crypt)->priv) < 0) { + printk("key setting failed\n"); + param->u.crypt.err = IEEE_CRYPT_ERR_KEY_SET_FAILED; + ret = -EINVAL; + goto done; + } +#ifdef _RTL8192_EXT_PATCH_ + } +#endif + + skip_host_crypt: + if (param->u.crypt.set_tx) { + ieee->tx_keyidx = param->u.crypt.idx; + sec.active_key = param->u.crypt.idx; + sec.flags |= SEC_ACTIVE_KEY; + } else + sec.flags &= ~SEC_ACTIVE_KEY; + + if (param->u.crypt.alg != NULL) { + memcpy(sec.keys[param->u.crypt.idx], + param->u.crypt.key, + param->u.crypt.key_len); + sec.key_sizes[param->u.crypt.idx] = param->u.crypt.key_len; + sec.flags |= (1 << param->u.crypt.idx); + + if (strcmp(param->u.crypt.alg, "WEP") == 0) { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_1; + } else if (strcmp(param->u.crypt.alg, "TKIP") == 0) { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_2; + } else if (strcmp(param->u.crypt.alg, "CCMP") == 0) { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_3; + } + } + done: + if (ieee->set_security) + ieee->set_security(ieee->dev, &sec); + +#ifdef _RTL8192_EXT_PATCH_ + if (ret != 0) + { + if(is_mesh) + { + for (i=0; icryptlist[i]->crypt[param->u.crypt.idx]==NULL){ + break; + } + else{ + kfree(ieee->cryptlist[i]->crypt[param->u.crypt.idx]); + ieee->cryptlist[i]->crypt[param->u.crypt.idx] = NULL; + } + } + } + else + { + kfree(ieee->sta_crypt[param->u.crypt.idx]); + ieee->sta_crypt[param->u.crypt.idx] = NULL; + } + } +#endif + + + /* Do not reset port if card is in Managed mode since resetting will + * generate new IEEE 802.11 authentication which may end up in looping + * with IEEE 802.1X. If your hardware requires a reset after WEP + * configuration (for example... Prism2), implement the reset_port in + * the callbacks structures used to initialize the 802.11 stack. */ + if (ieee->reset_on_keychange && + ieee->iw_mode != IW_MODE_INFRA && + ieee->reset_port && + ieee->reset_port(ieee->dev)) { + printk("reset_port failed\n"); + param->u.crypt.err = IEEE_CRYPT_ERR_CARD_CONF_FAILED; + return -EINVAL; + } + + return ret; +} + +inline struct sk_buff *rtllib_disauth_skb( struct rtllib_network *beacon, + struct rtllib_device *ieee, u16 asRsn) +{ + struct sk_buff *skb; + struct rtllib_disauth *disauth; +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr=0; + int alignment=0; + int len = sizeof(struct rtllib_disauth) + ieee->tx_headroom + USB_512B_ALIGNMENT_SIZE; +#else + int len = sizeof(struct rtllib_disauth) + ieee->tx_headroom; + +#endif + skb = dev_alloc_skb(len); + if (!skb) { + return NULL; + } + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + skb_reserve(skb, ieee->tx_headroom); + + disauth = (struct rtllib_disauth *) skb_put(skb,sizeof(struct rtllib_disauth)); + disauth->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_DEAUTH); + disauth->header.duration_id = 0; + + memcpy(disauth->header.addr1, beacon->bssid, ETH_ALEN); + memcpy(disauth->header.addr2, ieee->dev->dev_addr, ETH_ALEN); + memcpy(disauth->header.addr3, beacon->bssid, ETH_ALEN); + + disauth->reason = cpu_to_le16(asRsn); + return skb; +} + +inline struct sk_buff *rtllib_disassociate_skb( struct rtllib_network *beacon, + struct rtllib_device *ieee, u16 asRsn) +{ + struct sk_buff *skb; + struct rtllib_disassoc *disass; +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr=0; + int alignment=0; + int len = sizeof(struct rtllib_disassoc) + ieee->tx_headroom + USB_512B_ALIGNMENT_SIZE; +#else + int len = sizeof(struct rtllib_disassoc) + ieee->tx_headroom; +#endif + skb = dev_alloc_skb(len); + + if (!skb) { + return NULL; + } + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + skb_reserve(skb, ieee->tx_headroom); + + disass = (struct rtllib_disassoc *) skb_put(skb,sizeof(struct rtllib_disassoc)); + disass->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_DISASSOC); + disass->header.duration_id = 0; + + memcpy(disass->header.addr1, beacon->bssid, ETH_ALEN); + memcpy(disass->header.addr2, ieee->dev->dev_addr, ETH_ALEN); + memcpy(disass->header.addr3, beacon->bssid, ETH_ALEN); + + disass->reason = cpu_to_le16(asRsn); + return skb; +} + +void SendDisassociation(struct rtllib_device *ieee, bool deauth, u16 asRsn) +{ + struct rtllib_network *beacon = &ieee->current_network; + struct sk_buff *skb; + + if(deauth) { + skb = rtllib_disauth_skb(beacon,ieee,asRsn); + } else { + skb = rtllib_disassociate_skb(beacon,ieee,asRsn); + } + + if (skb){ + softmac_mgmt_xmit(skb, ieee); + } +} + +u8 rtllib_ap_sec_type(struct rtllib_device *ieee) +{ + static u8 ccmp_ie[4] = {0x00,0x50,0xf2,0x04}; + static u8 ccmp_rsn_ie[4] = {0x00, 0x0f, 0xac, 0x04}; + int wpa_ie_len= ieee->wpa_ie_len; + struct rtllib_crypt_data* crypt; + int encrypt; + +#ifdef _RTL8192_EXT_PATCH_ + crypt = ieee->sta_crypt[ieee->tx_keyidx]; +#else + crypt = ieee->crypt[ieee->tx_keyidx]; +#endif + encrypt = (ieee->current_network.capability & WLAN_CAPABILITY_PRIVACY) ||\ + (ieee->host_encrypt && crypt && crypt->ops && \ + (0 == strcmp(crypt->ops->name,"WEP"))); + + /* simply judge */ + if(encrypt && (wpa_ie_len == 0)) { + return SEC_ALG_WEP; + } else if((wpa_ie_len != 0)) { + if (((ieee->wpa_ie[0] == 0xdd) && (!memcmp(&(ieee->wpa_ie[14]),ccmp_ie,4))) || + ((ieee->wpa_ie[0] == 0x30) && (!memcmp(&ieee->wpa_ie[10],ccmp_rsn_ie, 4)))) + return SEC_ALG_CCMP; + else + return SEC_ALG_TKIP; + } else { + return SEC_ALG_NONE; + } +} + +int rtllib_wpa_supplicant_ioctl(struct rtllib_device *ieee, struct iw_point *p, u8 is_mesh) +{ + struct ieee_param *param; + int ret=0; + + down(&ieee->wx_sem); + + if (p->length < sizeof(struct ieee_param) || !p->pointer){ + ret = -EINVAL; + goto out; + } + + param = (struct ieee_param *)kmalloc(p->length, GFP_KERNEL); + if (param == NULL){ + ret = -ENOMEM; + goto out; + } + if (copy_from_user(param, p->pointer, p->length)) { + kfree(param); + ret = -EFAULT; + goto out; + } + + switch (param->cmd) { + + case IEEE_CMD_SET_WPA_PARAM: + ret = rtllib_wpa_set_param(ieee, param->u.wpa_param.name, + param->u.wpa_param.value); + break; + + case IEEE_CMD_SET_WPA_IE: + ret = rtllib_wpa_set_wpa_ie(ieee, param, p->length); + break; + + case IEEE_CMD_SET_ENCRYPTION: +#ifdef _RTL8192_EXT_PATCH_ + ret = rtllib_wpa_set_encryption(ieee, param, p->length, is_mesh); +#else + ret = rtllib_wpa_set_encryption(ieee, param, p->length, 0); +#endif + break; + + case IEEE_CMD_MLME: + ret = rtllib_wpa_mlme(ieee, param->u.mlme.command, + param->u.mlme.reason_code); + break; + + default: + printk("Unknown WPA supplicant request: %d\n",param->cmd); + ret = -EOPNOTSUPP; + break; + } + + if (ret == 0 && copy_to_user(p->pointer, param, p->length)) + ret = -EFAULT; + + kfree(param); +out: + up(&ieee->wx_sem); + + return ret; +} + +void +rtllib_MgntDisconnectIBSS(struct rtllib_device* rtllib) +{ + u8 OpMode; + u8 i; + bool bFilterOutNonAssociatedBSSID = false; + + rtllib->state = RTLLIB_NOLINK; + + for(i=0;i<6;i++) rtllib->current_network.bssid[i]= 0x55; + + rtllib->OpMode = RT_OP_MODE_NO_LINK; + rtllib->SetHwRegHandler(rtllib->dev, HW_VAR_BSSID, rtllib->current_network.bssid); + OpMode = RT_OP_MODE_NO_LINK; + rtllib->SetHwRegHandler(rtllib->dev, HW_VAR_MEDIA_STATUS, &OpMode); + rtllib_stop_send_beacons(rtllib); + + bFilterOutNonAssociatedBSSID = false; + rtllib->SetHwRegHandler(rtllib->dev, HW_VAR_CECHK_BSSID, (u8*)(&bFilterOutNonAssociatedBSSID)); + notify_wx_assoc_event(rtllib); + +} + +void +rtllib_MlmeDisassociateRequest( + struct rtllib_device* rtllib, + u8* asSta, + u8 asRsn + ) +{ + u8 i; + u8 OpMode; + + RemovePeerTS(rtllib, asSta); + + + if(memcpy(rtllib->current_network.bssid,asSta,6) == 0) + { + rtllib->state = RTLLIB_NOLINK; + + for(i=0;i<6;i++) rtllib->current_network.bssid[i] = 0x22; + OpMode = RT_OP_MODE_NO_LINK; + rtllib->OpMode = RT_OP_MODE_NO_LINK; + rtllib->SetHwRegHandler(rtllib->dev, HW_VAR_MEDIA_STATUS, (u8 *)(&OpMode) ); + rtllib_disassociate(rtllib); + + rtllib->SetHwRegHandler(rtllib->dev, HW_VAR_BSSID, rtllib->current_network.bssid); + + } + +} + +void +rtllib_MgntDisconnectAP( + struct rtllib_device* rtllib, + u8 asRsn +) +{ + bool bFilterOutNonAssociatedBSSID = false; + + +#ifdef TO_DO + if( pMgntInfo->SecurityInfo.AuthMode > RT_802_11AuthModeAutoSwitch || + (pMgntInfo->bAPSuportCCKM && pMgntInfo->bCCX8021xenable) ) + { + SecClearAllKeys(rtllib->dev); + RT_TRACE(COMP_SEC, DBG_LOUD,("======>CCKM clear key...")) + } +#endif + bFilterOutNonAssociatedBSSID = false; + rtllib->SetHwRegHandler(rtllib->dev, HW_VAR_CECHK_BSSID, (u8*)(&bFilterOutNonAssociatedBSSID)); + rtllib_MlmeDisassociateRequest( rtllib, rtllib->current_network.bssid, asRsn ); + + rtllib->state = RTLLIB_NOLINK; +} + +bool +rtllib_MgntDisconnect( + struct rtllib_device* rtllib, + u8 asRsn +) +{ + if(rtllib->ps != RTLLIB_PS_DISABLED) + { +#ifndef RTL8190P + rtllib->sta_wake_up(rtllib->dev); +#endif + } + +#ifdef TO_DO + if(pMgntInfo->mActingAsAp) + { + RT_TRACE(COMP_MLME, DBG_LOUD, ("MgntDisconnect() ===> AP_DisassociateAllStation\n")); + AP_DisassociateAllStation(rtllib->dev, unspec_reason); + return true; + } +#endif + + if( rtllib->state == RTLLIB_LINKED ) + { + if( rtllib->iw_mode == IW_MODE_ADHOC ) + { + rtllib_MgntDisconnectIBSS(rtllib); + } +#ifdef _RTL8192_EXT_PATCH_ + if((rtllib->iw_mode == IW_MODE_INFRA ) || ((rtllib->iw_mode == IW_MODE_MESH) && (rtllib->only_mesh == 0))) +#else + if( rtllib->iw_mode == IW_MODE_INFRA ) +#endif + { +#ifdef TO_DO_LIST + SecClearAllKeys(Adapter); +#endif + rtllib_MgntDisconnectAP(rtllib, asRsn); + } + + } + + return true; +} + +void notify_wx_assoc_event(struct rtllib_device *ieee) +{ + union iwreq_data wrqu; + + if(ieee->cannot_notify) + return; + + wrqu.ap_addr.sa_family = ARPHRD_ETHER; + if (ieee->state == RTLLIB_LINKED) + memcpy(wrqu.ap_addr.sa_data, ieee->current_network.bssid, ETH_ALEN); + else{ + + printk("%s(): Tell user space disconnected\n",__func__); + memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN); + } + wireless_send_event(ieee->dev, SIOCGIWAP, &wrqu, NULL); +} + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(rtllib_get_beacon); +EXPORT_SYMBOL_RSL(rtllib_wake_queue); +EXPORT_SYMBOL_RSL(rtllib_stop_queue); +EXPORT_SYMBOL_RSL(rtllib_reset_queue); +EXPORT_SYMBOL_RSL(rtllib_softmac_stop_protocol); +EXPORT_SYMBOL_RSL(rtllib_softmac_start_protocol); +EXPORT_SYMBOL_RSL(rtllib_is_shortslot); +EXPORT_SYMBOL_RSL(rtllib_is_54g); +EXPORT_SYMBOL_RSL(rtllib_wpa_supplicant_ioctl); +EXPORT_SYMBOL_RSL(rtllib_ps_tx_ack); +EXPORT_SYMBOL_RSL(rtllib_softmac_xmit); +EXPORT_SYMBOL_RSL(rtllib_stop_send_beacons); +EXPORT_SYMBOL_RSL(notify_wx_assoc_event); +EXPORT_SYMBOL_RSL(SendDisassociation); +EXPORT_SYMBOL_RSL(rtllib_disassociate); +EXPORT_SYMBOL_RSL(rtllib_start_send_beacons); +EXPORT_SYMBOL_RSL(rtllib_stop_scan); +EXPORT_SYMBOL_RSL(rtllib_send_probe_requests); +EXPORT_SYMBOL_RSL(rtllib_softmac_scan_syncro); +EXPORT_SYMBOL_RSL(rtllib_start_scan_syncro); +EXPORT_SYMBOL_RSL(rtllib_sta_ps_send_null_frame); +EXPORT_SYMBOL_RSL(rtllib_sta_ps_send_pspoll_frame); +EXPORT_SYMBOL_RSL(rtllib_sta_wakeup); +EXPORT_SYMBOL_RSL(rtllib_ap_sec_type); +#ifdef _RTL8192_EXT_PATCH_ +EXPORT_SYMBOL_RSL(rtllib_MFIE_rate_len); +EXPORT_SYMBOL_RSL(rtllib_MFIE_Brate); +EXPORT_SYMBOL_RSL(rtllib_MFIE_Grate); +EXPORT_SYMBOL_RSL(rtllib_WMM_Info); +EXPORT_SYMBOL_RSL(rtllib_TURBO_Info); +EXPORT_SYMBOL_RSL(rtllib_ext_probe_resp_by_net); +EXPORT_SYMBOL_RSL(softmac_mgmt_xmit); +EXPORT_SYMBOL_RSL(rtllib_start_scan); +EXPORT_SYMBOL_RSL(rtllib_ext_send_11s_beacon); +EXPORT_SYMBOL_RSL(rtllib_rx_auth_rq); +EXPORT_SYMBOL_RSL(rtllib_associate_step1); +EXPORT_SYMBOL_RSL(rtllib_stop_protocol); +EXPORT_SYMBOL_RSL(rtllib_start_protocol); +EXPORT_SYMBOL_RSL(rtllib_resp_to_auth); + +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/api.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/api.c @@ -0,0 +1,261 @@ +/* + * Scatterlist Cryptographic API. + * + * Copyright (c) 2002 James Morris + * Copyright (c) 2002 David S. Miller (davem@redhat.com) + * + * Portions derived from Cryptoapi, by Alexander Kjeldaas + * and Nettle, by Niels Mé°ˆler. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + */ + + +#include +#include +#include "rtl_crypto.h" +#include +#include +#include +#include "internal.h" + +LIST_HEAD(crypto_alg_list); +DECLARE_RWSEM(crypto_alg_sem); + +static inline int crypto_alg_get(struct crypto_alg *alg) +{ +#ifdef BUILT_IN_CRYPTO + return 1; +#else +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) + return try_module_get(alg->cra_module); +#else + return try_inc_mod_count(alg->cra_module); +#endif +#endif +} + +static inline void crypto_alg_put(struct crypto_alg *alg) +{ +#ifndef BUILT_IN_CRYPTO + if (alg->cra_module) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) + module_put(alg->cra_module); +#else + __MOD_DEC_USE_COUNT(alg->cra_module); +#endif +#endif +} + +struct crypto_alg *crypto_alg_lookup(const char *name) +{ + struct crypto_alg *q, *alg = NULL; + + if (!name) + return NULL; + + down_read(&crypto_alg_sem); + + list_for_each_entry(q, &crypto_alg_list, cra_list) { + if (!(strcmp(q->cra_name, name))) { + if (crypto_alg_get(q)) + alg = q; + break; + } + } + + up_read(&crypto_alg_sem); + return alg; +} + +static int crypto_init_flags(struct crypto_tfm *tfm, u32 flags) +{ + tfm->crt_flags = 0; + + switch (crypto_tfm_alg_type(tfm)) { + case CRYPTO_ALG_TYPE_CIPHER: + return crypto_init_cipher_flags(tfm, flags); + + case CRYPTO_ALG_TYPE_DIGEST: + return crypto_init_digest_flags(tfm, flags); + + case CRYPTO_ALG_TYPE_COMPRESS: + return crypto_init_compress_flags(tfm, flags); + + default: + break; + } + + BUG(); + return -EINVAL; +} + +static int crypto_init_ops(struct crypto_tfm *tfm) +{ + switch (crypto_tfm_alg_type(tfm)) { + case CRYPTO_ALG_TYPE_CIPHER: + return crypto_init_cipher_ops(tfm); + + case CRYPTO_ALG_TYPE_DIGEST: + return crypto_init_digest_ops(tfm); + + case CRYPTO_ALG_TYPE_COMPRESS: + return crypto_init_compress_ops(tfm); + + default: + break; + } + + BUG(); + return -EINVAL; +} + +static void crypto_exit_ops(struct crypto_tfm *tfm) +{ + switch (crypto_tfm_alg_type(tfm)) { + case CRYPTO_ALG_TYPE_CIPHER: + crypto_exit_cipher_ops(tfm); + break; + + case CRYPTO_ALG_TYPE_DIGEST: + crypto_exit_digest_ops(tfm); + break; + + case CRYPTO_ALG_TYPE_COMPRESS: + crypto_exit_compress_ops(tfm); + break; + + default: + BUG(); + + } +} + +struct crypto_tfm *crypto_alloc_tfm(const char *name, u32 flags) +{ + struct crypto_tfm *tfm = NULL; + struct crypto_alg *alg; + + alg = crypto_alg_mod_lookup(name); + if (alg == NULL) + goto out; + + tfm = kmalloc(sizeof(*tfm) + alg->cra_ctxsize, GFP_KERNEL); + if (tfm == NULL) + goto out_put; + + memset(tfm, 0, sizeof(*tfm) + alg->cra_ctxsize); + + tfm->__crt_alg = alg; + + if (crypto_init_flags(tfm, flags)) + goto out_free_tfm; + + if (crypto_init_ops(tfm)) { + crypto_exit_ops(tfm); + goto out_free_tfm; + } + + goto out; + +out_free_tfm: + kfree(tfm); + tfm = NULL; +out_put: + crypto_alg_put(alg); +out: + return tfm; +} + +void crypto_free_tfm(struct crypto_tfm *tfm) +{ + struct crypto_alg *alg = tfm->__crt_alg; + int size = sizeof(*tfm) + alg->cra_ctxsize; + + crypto_exit_ops(tfm); + crypto_alg_put(alg); + memset(tfm, 0, size); + kfree(tfm); +} + +int crypto_register_alg(struct crypto_alg *alg) +{ + int ret = 0; + struct crypto_alg *q; + + down_write(&crypto_alg_sem); + + list_for_each_entry(q, &crypto_alg_list, cra_list) { + if (!(strcmp(q->cra_name, alg->cra_name))) { + ret = -EEXIST; + goto out; + } + } + + list_add_tail(&alg->cra_list, &crypto_alg_list); +out: + up_write(&crypto_alg_sem); + return ret; +} + +int crypto_unregister_alg(struct crypto_alg *alg) +{ + int ret = -ENOENT; + struct crypto_alg *q; + + BUG_ON(!alg->cra_module); + + down_write(&crypto_alg_sem); + list_for_each_entry(q, &crypto_alg_list, cra_list) { + if (alg == q) { + list_del(&alg->cra_list); + ret = 0; + goto out; + } + } +out: + up_write(&crypto_alg_sem); + return ret; +} + +int crypto_alg_available(const char *name, u32 flags) +{ + int ret = 0; + struct crypto_alg *alg = crypto_alg_mod_lookup(name); + + if (alg) { + crypto_alg_put(alg); + ret = 1; + } + + return ret; +} + +#ifndef BUILT_IN_CRYPTO +static int __init init_crypto(void) +{ + printk(KERN_INFO "Initializing Cryptographic API\n"); + crypto_init_proc(); + return 0; +} + +__initcall(init_crypto); + + +/* +EXPORT_SYMBOL_GPL(crypto_register_alg); +EXPORT_SYMBOL_GPL(crypto_unregister_alg); +EXPORT_SYMBOL_GPL(crypto_alloc_tfm); +EXPORT_SYMBOL_GPL(crypto_free_tfm); +EXPORT_SYMBOL_GPL(crypto_alg_available); +*/ +EXPORT_SYMBOL_RSL(crypto_register_alg); +EXPORT_SYMBOL_RSL(crypto_unregister_alg); +EXPORT_SYMBOL_RSL(crypto_alloc_tfm); +EXPORT_SYMBOL_RSL(crypto_free_tfm); +EXPORT_SYMBOL_RSL(crypto_alg_available); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/readme +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/readme @@ -0,0 +1,162 @@ +What this layer should do + +- It mantain the old mechanism as alternative, so the + ipw2100 driver works with really few changes. +- Encapsulate / Decapsulate rtllib packet +- Handle fragmentation +- Optionally provide an alterantive mechanism for netif queue stop/wake, + so that the rtllib layer will pass one fragment per time instead of + one txb struct per time. so the driver can stop the queue in the middle + of a packet. +- Provide two different TX interfaces for cards that can handle management + frames on one HW queue, and data on another, and for cards that have only + one HW queue (the latter untested and very, very rough). +- Optionally provide the logic for handling IBSS/MASTER/MONITOR/BSS modes + and for the channel, essid and wap get/set wireless extension requests. + so that the driver has only to change channel when the ieee stack tell it. +- Optionally provide a scanning mechanism so that the driver has not to + worry about this, just implement the set channel calback and pass + frames to the upper layer +- Optionally provide the bss client protocol handshaking (just with open + authentication) +- Optionally provide the probe request send mechanism +- Optionally provide the bss master mode logic to handle association + protocol (only open authentication) and probe responses. +- SW wep encryption (with open authentication) +- It collects some stats +- It provides beacons to the card when it ask for them + +What this layer doesn't do (yet) +- Perform shared authentication +- Have full support for master mode (the AP should loop back in the air + frames from an associated client to another. This could be done easily + with few lines of code, and it is done in my previous version of the + stach, but a table of association must be keept and a disassociation + policy must be decided and implemented. +- Handle cleanly the full ieee 802.11 protocol. In AP mode it never + disassociate clients, and it is really prone to always allow access. + In bss client mode it is a bit rough with AP deauth and disassoc requests. +- It has not any entry point to view the collected stats. +- Altought it takes care of the card supported rates in the management frame + it sends, support for rate changing on TXed packet is not complete. +- Give up once associated in bss client mode (it never detect a + signal loss condition to disassociate and restart scanning) +- Provide a mechanism for enabling the TX in monitor mode, so + userspace programs can TX raw packets. +- Provide a mechanism for cards that need that the SW take care of beacon + TX completely, in sense that the SW has to enqueue by itself beacons + to the card so it TX them (if any...) +APIs + +Callback functions in the original stack has been mantained. +following has been added (from rtllib.h) + + /* Softmac-generated frames (mamagement) are TXed via this + * callback if the flag IEEE_SOFTMAC_SINGLE_QUEUE is + * not set. As some cards may have different HW queues that + * one might want to use for data and management frames + * the option to have two callbacks might be useful. + * This fucntion can't sleep. + */ + int (*softmac_hard_start_xmit)(struct sk_buff *skb, + struct net_device *dev); + + /* used instead of hard_start_xmit (not softmac_hard_start_xmit) + * if the IEEE_SOFTMAC_TX_QUEUE feature is used to TX data + * frames. I the option IEEE_SOFTMAC_SINGLE_QUEUE is also set + * then also management frames are sent via this callback. + * This function can't sleep. + */ + void (*softmac_data_hard_start_xmit)(struct sk_buff *skb, + struct net_device *dev); + + /* stops the HW queue for DATA frames. Useful to avoid + * waste time to TX data frame when we are reassociating + * This function can sleep. + */ + void (*data_hard_stop)(struct net_device *dev); + + /* OK this is complementar to data_poll_hard_stop */ + void (*data_hard_resume)(struct net_device *dev); + + /* ask to the driver to retune the radio . + * This function can sleep. the driver should ensure + * the radio has been swithced before return. + */ + void (*set_chan)(struct net_device *dev,short ch); + + /* These are not used if the ieee stack takes care of + * scanning (IEEE_SOFTMAC_SCAN feature set). + * In this case only the set_chan is used. + * + * The syncro version is similar to the start_scan but + * does not return until all channels has been scanned. + * this is called in user context and should sleep, + * it is called in a work_queue when swithcing to ad-hoc mode + * or in behalf of iwlist scan when the card is associated + * and root user ask for a scan. + * the fucntion stop_scan should stop both the syncro and + * background scanning and can sleep. + * The fucntion start_scan should initiate the background + * scanning and can't sleep. + */ + void (*scan_syncro)(struct net_device *dev); + void (*start_scan)(struct net_device *dev); + void (*stop_scan)(struct net_device *dev); + + /* indicate the driver that the link state is changed + * for example it may indicate the card is associated now. + * Driver might be interested in this to apply RX filter + * rules or simply light the LINK led + */ + void (*link_change)(struct net_device *dev); + +Functions hard_data_[resume/stop] are optional and should not be used +if the driver decides to uses data+management frames enqueue in a +single HQ queue (thus using just the softmac_hard_data_start_xmit +callback). + +Function that the driver can use are: + +rtllib_get_beacon - this is called by the driver when + the HW needs a beacon. +rtllib_softmac_start_protocol - this should normally be called in the + driver open function +rtllib_softmac_stop_protocol - the opposite of the above +rtllib_wake_queue - this is similar to netif_wake_queue +rtllib_reset_queue - this throw away fragments pending(if any) +rtllib_stop_queue - this is similar to netif_stop_queue + + +known BUGS: +- When performing syncro scan (possiblily when swithcing to ad-hoc mode + and when running iwlist scan when associated) there is still an odd + behaviour.. I have not looked in this more accurately (yet). + +locking: +locking is done by means of three structures. +1- ieee->lock (by means of spin_[un]lock_irq[save/restore] +2- ieee->wx_sem +3- ieee->scan_sem + +the lock 1 is what protect most of the critical sections in the ieee stack. +the lock 2 is used to avoid that more than one of the SET wireless extension +handlers (as well as start/stop protocol function) are running at the same time. +the lock 1 is used when we need to modify or read the shared data in the wx handlers. +In other words the lock 2 will prevent one SET action will run across another SET +action (by make sleep the 2nd one) but allow GET actions, while the lock 1 +make atomic those little shared data access in both GET and SET operation. +So get operation will be never be delayed really: they will never sleep.. +Furthermore in the top of some SET operations a flag is set before acquiring +the lock. This is an help to make the previous running SET operation to +finish faster if needed (just in case the second one will totally undo the +first, so there is not need to complete the 1st really.. ). +The background scanning mechaninsm is protected by the lock 1 except for the +workqueue. this wq is here just to let the set_chan callback sleep (I thinked it +might be appreciated by USB network card driver developer). In this case the lock 3 +take its turn. +Thus the stop function needs both the locks. +Funny in the syncro scan the lock 2 play its role (as both the syncro_scan +function and the stop scan function are called with this semaphore held). + + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtl819x_TSProc.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtl819x_TSProc.c @@ -0,0 +1,668 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#include "rtllib.h" +#include +#include "rtl819x_TS.h" +extern void _setup_timer( struct timer_list*, void*, unsigned long); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) +#define list_for_each_entry_safe(pos, n, head, member) \ + for (pos = list_entry((head)->next, typeof(*pos), member), \ + n = list_entry(pos->member.next, typeof(*pos), member); \ + &pos->member != (head); \ + pos = n, n = list_entry(n->member.next, typeof(*n), member)) +#endif +void TsSetupTimeOut(unsigned long data) +{ +} + +void TsInactTimeout(unsigned long data) +{ +} + +void RxPktPendingTimeout(unsigned long data) +{ + PRX_TS_RECORD pRxTs = (PRX_TS_RECORD)data; + struct rtllib_device *ieee = container_of(pRxTs, struct rtllib_device, RxTsRecord[pRxTs->num]); + + PRX_REORDER_ENTRY pReorderEntry = NULL; + + unsigned long flags = 0; + struct rtllib_rxb *stats_IndicateArray[REORDER_WIN_SIZE]; + u8 index = 0; + bool bPktInBuf = false; + + spin_lock_irqsave(&(ieee->reorder_spinlock), flags); + if(pRxTs->RxTimeoutIndicateSeq != 0xffff) + { + while(!list_empty(&pRxTs->RxPendingPktList)) + { + pReorderEntry = (PRX_REORDER_ENTRY)list_entry(pRxTs->RxPendingPktList.prev,RX_REORDER_ENTRY,List); + if(index == 0) + pRxTs->RxIndicateSeq = pReorderEntry->SeqNum; + + if( SN_LESS(pReorderEntry->SeqNum, pRxTs->RxIndicateSeq) || + SN_EQUAL(pReorderEntry->SeqNum, pRxTs->RxIndicateSeq) ) + { + list_del_init(&pReorderEntry->List); + + if(SN_EQUAL(pReorderEntry->SeqNum, pRxTs->RxIndicateSeq)) + pRxTs->RxIndicateSeq = (pRxTs->RxIndicateSeq + 1) % 4096; + + RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): Indicate SeqNum: %d\n",__func__, pReorderEntry->SeqNum); + stats_IndicateArray[index] = pReorderEntry->prxb; + index++; + + list_add_tail(&pReorderEntry->List, &ieee->RxReorder_Unused_List); + } + else + { + bPktInBuf = true; + break; + } + } + } + + if(index>0){ + pRxTs->RxTimeoutIndicateSeq = 0xffff; + + if(index > REORDER_WIN_SIZE){ + RTLLIB_DEBUG(RTLLIB_DL_ERR, "RxReorderIndicatePacket(): Rx Reorer buffer full!! \n"); + spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags); + return; + } + rtllib_indicate_packets(ieee, stats_IndicateArray, index); + bPktInBuf = false; + } + + if(bPktInBuf && (pRxTs->RxTimeoutIndicateSeq==0xffff)){ + pRxTs->RxTimeoutIndicateSeq = pRxTs->RxIndicateSeq; + mod_timer(&pRxTs->RxPktPendingTimer, jiffies + MSECS(ieee->pHTInfo->RxReorderPendingTime)); + } + spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags); +} + +void TsAddBaProcess(unsigned long data) +{ + PTX_TS_RECORD pTxTs = (PTX_TS_RECORD)data; + u8 num = pTxTs->num; + struct rtllib_device *ieee = container_of(pTxTs, struct rtllib_device, TxTsRecord[num]); + + TsInitAddBA(ieee, pTxTs, BA_POLICY_IMMEDIATE, false); + RTLLIB_DEBUG(RTLLIB_DL_BA, "TsAddBaProcess(): ADDBA Req is started!! \n"); +} + + +void ResetTsCommonInfo(PTS_COMMON_INFO pTsCommonInfo) +{ + memset(pTsCommonInfo->Addr, 0, 6); + memset(&pTsCommonInfo->TSpec, 0, sizeof(TSPEC_BODY)); + memset(&pTsCommonInfo->TClass, 0, sizeof(QOS_TCLAS)*TCLAS_NUM); + pTsCommonInfo->TClasProc = 0; + pTsCommonInfo->TClasNum = 0; +} + +void ResetTxTsEntry(PTX_TS_RECORD pTS) +{ + ResetTsCommonInfo(&pTS->TsCommonInfo); + pTS->TxCurSeq = 0; + pTS->bAddBaReqInProgress = false; + pTS->bAddBaReqDelayed = false; + pTS->bUsingBa = false; + pTS->bDisable_AddBa = false; + ResetBaEntry(&pTS->TxAdmittedBARecord); + ResetBaEntry(&pTS->TxPendingBARecord); +} + +void ResetRxTsEntry(PRX_TS_RECORD pTS) +{ + ResetTsCommonInfo(&pTS->TsCommonInfo); + pTS->RxIndicateSeq = 0xffff; + pTS->RxTimeoutIndicateSeq = 0xffff; + ResetBaEntry(&pTS->RxAdmittedBARecord); +} +#ifdef _RTL8192_EXT_PATCH_ +void ResetAdmitTRStream(struct rtllib_device *ieee, u8 *Addr) +{ + u8 dir; + bool search_dir[4] = {0, 0, 0, 0}; + struct list_head* psearch_list; + PTS_COMMON_INFO pRet = NULL; + PRX_TS_RECORD pRxTS = NULL; + PTX_TS_RECORD pTxTS = NULL; + + if(ieee->iw_mode != IW_MODE_MESH) + return; + + search_dir[DIR_DOWN] = true; + psearch_list = &ieee->Rx_TS_Admit_List; + for(dir = 0; dir <= DIR_BI_DIR; dir++) + { + if(search_dir[dir] ==false ) + continue; + list_for_each_entry(pRet, psearch_list, List){ + if ((memcmp(pRet->Addr, Addr, 6) == 0) && (pRet->TSpec.f.TSInfo.field.ucDirection == dir)) + { + pRxTS = (PRX_TS_RECORD)pRet; + pRxTS->RxIndicateSeq = 0xffff; + pRxTS->RxTimeoutIndicateSeq = 0xffff; + } + + } + } + search_dir[DIR_UP] = true; + psearch_list = &ieee->Tx_TS_Admit_List; + for(dir = 0; dir <= DIR_BI_DIR; dir++) + { + if(search_dir[dir] ==false ) + continue; + list_for_each_entry(pRet, psearch_list, List){ + if ((memcmp(pRet->Addr, Addr, 6) == 0) && (pRet->TSpec.f.TSInfo.field.ucDirection == dir)) + { + pTxTS = (PTX_TS_RECORD)pRet; + pTxTS->TxCurSeq = 0xffff; + } + + } + } + + return; +} +#endif + +void TSInitialize(struct rtllib_device *ieee) +{ + PTX_TS_RECORD pTxTS = ieee->TxTsRecord; + PRX_TS_RECORD pRxTS = ieee->RxTsRecord; + PRX_REORDER_ENTRY pRxReorderEntry = ieee->RxReorderEntry; + u8 count = 0; + RTLLIB_DEBUG(RTLLIB_DL_TS, "==========>%s()\n", __FUNCTION__); + INIT_LIST_HEAD(&ieee->Tx_TS_Admit_List); + INIT_LIST_HEAD(&ieee->Tx_TS_Pending_List); + INIT_LIST_HEAD(&ieee->Tx_TS_Unused_List); + + for(count = 0; count < TOTAL_TS_NUM; count++) + { + pTxTS->num = count; + _setup_timer(&pTxTS->TsCommonInfo.SetupTimer, + TsSetupTimeOut, + (unsigned long) pTxTS); + + _setup_timer(&pTxTS->TsCommonInfo.InactTimer, + TsInactTimeout, + (unsigned long) pTxTS); + + _setup_timer(&pTxTS->TsAddBaTimer, + TsAddBaProcess, + (unsigned long) pTxTS); + + _setup_timer(&pTxTS->TxPendingBARecord.Timer, + BaSetupTimeOut, + (unsigned long) pTxTS); + _setup_timer(&pTxTS->TxAdmittedBARecord.Timer, + TxBaInactTimeout, + (unsigned long) pTxTS); + + ResetTxTsEntry(pTxTS); + list_add_tail(&pTxTS->TsCommonInfo.List, + &ieee->Tx_TS_Unused_List); + pTxTS++; + } + + INIT_LIST_HEAD(&ieee->Rx_TS_Admit_List); + INIT_LIST_HEAD(&ieee->Rx_TS_Pending_List); + INIT_LIST_HEAD(&ieee->Rx_TS_Unused_List); + for(count = 0; count < TOTAL_TS_NUM; count++) + { + pRxTS->num = count; + INIT_LIST_HEAD(&pRxTS->RxPendingPktList); + + _setup_timer(&pRxTS->TsCommonInfo.SetupTimer, + TsSetupTimeOut, + (unsigned long) pRxTS); + + _setup_timer(&pRxTS->TsCommonInfo.InactTimer, + TsInactTimeout, + (unsigned long) pRxTS); + + _setup_timer(&pRxTS->RxAdmittedBARecord.Timer, + RxBaInactTimeout, + (unsigned long) pRxTS); + + _setup_timer(&pRxTS->RxPktPendingTimer, + RxPktPendingTimeout, + (unsigned long) pRxTS); + + ResetRxTsEntry(pRxTS); + list_add_tail(&pRxTS->TsCommonInfo.List, &ieee->Rx_TS_Unused_List); + pRxTS++; + } + INIT_LIST_HEAD(&ieee->RxReorder_Unused_List); + for(count = 0; count < REORDER_ENTRY_NUM; count++) + { + list_add_tail( &pRxReorderEntry->List,&ieee->RxReorder_Unused_List); + if(count == (REORDER_ENTRY_NUM-1)) + break; + pRxReorderEntry = &ieee->RxReorderEntry[count+1]; + } + +} + +void AdmitTS(struct rtllib_device *ieee, PTS_COMMON_INFO pTsCommonInfo, u32 InactTime) +{ + del_timer_sync(&pTsCommonInfo->SetupTimer); + del_timer_sync(&pTsCommonInfo->InactTimer); + + if(InactTime!=0) + mod_timer(&pTsCommonInfo->InactTimer, jiffies + MSECS(InactTime)); +} + + +PTS_COMMON_INFO SearchAdmitTRStream(struct rtllib_device *ieee, u8* Addr, u8 TID, TR_SELECT TxRxSelect) +{ + u8 dir; + bool search_dir[4] = {0, 0, 0, 0}; + struct list_head* psearch_list; + PTS_COMMON_INFO pRet = NULL; + if(ieee->iw_mode == IW_MODE_MASTER) + { + if(TxRxSelect == TX_DIR) + { + search_dir[DIR_DOWN] = true; + search_dir[DIR_BI_DIR]= true; + } + else + { + search_dir[DIR_UP] = true; + search_dir[DIR_BI_DIR]= true; + } + } + else if(ieee->iw_mode == IW_MODE_ADHOC) + { + if(TxRxSelect == TX_DIR) + search_dir[DIR_UP] = true; + else + search_dir[DIR_DOWN] = true; + } + else + { + if(TxRxSelect == TX_DIR) + { + search_dir[DIR_UP] = true; + search_dir[DIR_BI_DIR]= true; + search_dir[DIR_DIRECT]= true; + } + else + { + search_dir[DIR_DOWN] = true; + search_dir[DIR_BI_DIR]= true; + search_dir[DIR_DIRECT]= true; + } + } + + if(TxRxSelect == TX_DIR) + psearch_list = &ieee->Tx_TS_Admit_List; + else + psearch_list = &ieee->Rx_TS_Admit_List; + + for(dir = 0; dir <= DIR_BI_DIR; dir++) + { + if(search_dir[dir] ==false ) + continue; + list_for_each_entry(pRet, psearch_list, List){ + if (memcmp(pRet->Addr, Addr, 6) == 0) + if (pRet->TSpec.f.TSInfo.field.ucTSID == TID) + if(pRet->TSpec.f.TSInfo.field.ucDirection == dir) + { + break; + } + + } + if(&pRet->List != psearch_list) + break; + } + + if(&pRet->List != psearch_list){ + return pRet ; + } + else + return NULL; +} + +void MakeTSEntry( + PTS_COMMON_INFO pTsCommonInfo, + u8* Addr, + PTSPEC_BODY pTSPEC, + PQOS_TCLAS pTCLAS, + u8 TCLAS_Num, + u8 TCLAS_Proc + ) +{ + u8 count; + + if(pTsCommonInfo == NULL) + return; + + memcpy(pTsCommonInfo->Addr, Addr, 6); + + if(pTSPEC != NULL) + memcpy((u8*)(&(pTsCommonInfo->TSpec)), (u8*)pTSPEC, sizeof(TSPEC_BODY)); + + for(count = 0; count < TCLAS_Num; count++) + memcpy((u8*)(&(pTsCommonInfo->TClass[count])), (u8*)pTCLAS, sizeof(QOS_TCLAS)); + + pTsCommonInfo->TClasProc = TCLAS_Proc; + pTsCommonInfo->TClasNum = TCLAS_Num; +} + +#ifdef _RTL8192_EXT_PATCH_ +void dump_ts_list(struct list_head * ts_list) +{ + PTS_COMMON_INFO pRet = NULL; + u8 i=0; + list_for_each_entry(pRet, ts_list, List){ + printk("i=%d ADD:"MAC_FMT", TID:%d, dir:%d\n",i,MAC_ARG(pRet->Addr), pRet->TSpec.f.TSInfo.field.ucTSID, pRet->TSpec.f.TSInfo.field.ucDirection); + i++; + } + +} +#endif + +bool GetTs( + struct rtllib_device* ieee, + PTS_COMMON_INFO *ppTS, + u8* Addr, + u8 TID, + TR_SELECT TxRxSelect, + bool bAddNewTs + ) +{ + u8 UP = 0; + if(is_broadcast_ether_addr(Addr) || is_multicast_ether_addr(Addr)) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "ERR! get TS for Broadcast or Multicast\n"); + return false; + } +#if 0 + if(ieee->pStaQos->CurrentQosMode == QOS_DISABLE) + { UP = 0; } + else if(ieee->pStaQos->CurrentQosMode & QOS_WMM) + { +#else + if (ieee->current_network.qos_data.supported == 0) + UP = 0; + else + { +#endif + if (!IsACValid(TID)) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "ERR! in %s(), TID(%d) is not valid\n", __FUNCTION__, TID); + return false; + } + + switch(TID) + { + case 0: + case 3: + UP = 0; + break; + + case 1: + case 2: + UP = 2; + break; + + case 4: + case 5: + UP = 5; + break; + + case 6: + case 7: + UP = 7; + break; + } + } + + *ppTS = SearchAdmitTRStream( + ieee, + Addr, + UP, + TxRxSelect); + if(*ppTS != NULL) + { + return true; + } + else + { + if(bAddNewTs == false) + { + RTLLIB_DEBUG(RTLLIB_DL_TS, "add new TS failed(tid:%d)\n", UP); + return false; + } + else + { + TSPEC_BODY TSpec; + PQOS_TSINFO pTSInfo = &TSpec.f.TSInfo; + struct list_head* pUnusedList = + (TxRxSelect == TX_DIR)? + (&ieee->Tx_TS_Unused_List): + (&ieee->Rx_TS_Unused_List); + + struct list_head* pAddmitList = + (TxRxSelect == TX_DIR)? + (&ieee->Tx_TS_Admit_List): + (&ieee->Rx_TS_Admit_List); + + DIRECTION_VALUE Dir = (ieee->iw_mode == IW_MODE_MASTER)? + ((TxRxSelect==TX_DIR)?DIR_DOWN:DIR_UP): + ((TxRxSelect==TX_DIR)?DIR_UP:DIR_DOWN); + RTLLIB_DEBUG(RTLLIB_DL_TS, "to add Ts\n"); + if(!list_empty(pUnusedList)) + { + (*ppTS) = list_entry(pUnusedList->next, TS_COMMON_INFO, List); + list_del_init(&(*ppTS)->List); + if(TxRxSelect==TX_DIR) + { + PTX_TS_RECORD tmp = container_of(*ppTS, TX_TS_RECORD, TsCommonInfo); + ResetTxTsEntry(tmp); + } + else{ + PRX_TS_RECORD tmp = container_of(*ppTS, RX_TS_RECORD, TsCommonInfo); + ResetRxTsEntry(tmp); + } + + RTLLIB_DEBUG(RTLLIB_DL_TS, "to init current TS, UP:%d, Dir:%d, addr:"MAC_FMT" ppTs=%p\n", UP, Dir, MAC_ARG(Addr), *ppTS); + pTSInfo->field.ucTrafficType = 0; + pTSInfo->field.ucTSID = UP; + pTSInfo->field.ucDirection = Dir; + pTSInfo->field.ucAccessPolicy = 1; + pTSInfo->field.ucAggregation = 0; + pTSInfo->field.ucPSB = 0; + pTSInfo->field.ucUP = UP; + pTSInfo->field.ucTSInfoAckPolicy = 0; + pTSInfo->field.ucSchedule = 0; + + MakeTSEntry(*ppTS, Addr, &TSpec, NULL, 0, 0); + AdmitTS(ieee, *ppTS, 0); + list_add_tail(&((*ppTS)->List), pAddmitList); + + return true; + } + else + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "ERR!!in function %s() There is not enough dir=%d(0=up down=1) TS record to be used!!", __FUNCTION__,Dir); + return false; + } + } + } +} + +void RemoveTsEntry( + struct rtllib_device* ieee, + PTS_COMMON_INFO pTs, + TR_SELECT TxRxSelect + ) +{ + del_timer_sync(&pTs->SetupTimer); + del_timer_sync(&pTs->InactTimer); + TsInitDelBA(ieee, pTs, TxRxSelect); + + if(TxRxSelect == RX_DIR) + { + PRX_REORDER_ENTRY pRxReorderEntry; + PRX_TS_RECORD pRxTS = (PRX_TS_RECORD)pTs; + + if(timer_pending(&pRxTS->RxPktPendingTimer)) + del_timer_sync(&pRxTS->RxPktPendingTimer); + + while(!list_empty(&pRxTS->RxPendingPktList)){ + pRxReorderEntry = (PRX_REORDER_ENTRY)list_entry(pRxTS->RxPendingPktList.prev,RX_REORDER_ENTRY,List); + RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): Delete SeqNum %d!\n",__FUNCTION__, pRxReorderEntry->SeqNum); + list_del_init(&pRxReorderEntry->List); + { + int i = 0; + struct rtllib_rxb * prxb = pRxReorderEntry->prxb; + if (unlikely(!prxb)){ + return; + } + for(i =0; i < prxb->nr_subframes; i++) { + dev_kfree_skb(prxb->subframes[i]); + } + kfree(prxb); + prxb = NULL; + } + list_add_tail(&pRxReorderEntry->List,&ieee->RxReorder_Unused_List); + } + } + else{ + PTX_TS_RECORD pTxTS = (PTX_TS_RECORD)pTs; + del_timer_sync(&pTxTS->TsAddBaTimer); + } +} + +void RemovePeerTS(struct rtllib_device* ieee, u8* Addr) +{ + PTS_COMMON_INFO pTS, pTmpTS; + printk("===========>RemovePeerTS,"MAC_FMT"\n", MAC_ARG(Addr)); +#if 1 + list_for_each_entry_safe(pTS, pTmpTS, &ieee->Tx_TS_Pending_List, List) + { + if (memcmp(pTS->Addr, Addr, 6) == 0) + { + RemoveTsEntry(ieee, pTS, TX_DIR); + list_del_init(&pTS->List); + list_add_tail(&pTS->List, &ieee->Tx_TS_Unused_List); + } + } + + list_for_each_entry_safe(pTS, pTmpTS, &ieee->Tx_TS_Admit_List, List) + { + if (memcmp(pTS->Addr, Addr, 6) == 0) + { + printk("====>remove Tx_TS_admin_list\n"); + RemoveTsEntry(ieee, pTS, TX_DIR); + list_del_init(&pTS->List); + list_add_tail(&pTS->List, &ieee->Tx_TS_Unused_List); + } + } + + list_for_each_entry_safe(pTS, pTmpTS, &ieee->Rx_TS_Pending_List, List) + { + if (memcmp(pTS->Addr, Addr, 6) == 0) + { + RemoveTsEntry(ieee, pTS, RX_DIR); + list_del_init(&pTS->List); + list_add_tail(&pTS->List, &ieee->Rx_TS_Unused_List); + } + } + + list_for_each_entry_safe(pTS, pTmpTS, &ieee->Rx_TS_Admit_List, List) + { + if (memcmp(pTS->Addr, Addr, 6) == 0) + { + RemoveTsEntry(ieee, pTS, RX_DIR); + list_del_init(&pTS->List); + list_add_tail(&pTS->List, &ieee->Rx_TS_Unused_List); + } + } +#endif +} + +void RemoveAllTS(struct rtllib_device* ieee) +{ + PTS_COMMON_INFO pTS, pTmpTS; +#if 1 + list_for_each_entry_safe(pTS, pTmpTS, &ieee->Tx_TS_Pending_List, List) + { + RemoveTsEntry(ieee, pTS, TX_DIR); + list_del_init(&pTS->List); + list_add_tail(&pTS->List, &ieee->Tx_TS_Unused_List); + } + + list_for_each_entry_safe(pTS, pTmpTS, &ieee->Tx_TS_Admit_List, List) + { + RemoveTsEntry(ieee, pTS, TX_DIR); + list_del_init(&pTS->List); + list_add_tail(&pTS->List, &ieee->Tx_TS_Unused_List); + } + + list_for_each_entry_safe(pTS, pTmpTS, &ieee->Rx_TS_Pending_List, List) + { + RemoveTsEntry(ieee, pTS, RX_DIR); + list_del_init(&pTS->List); + list_add_tail(&pTS->List, &ieee->Rx_TS_Unused_List); + } + + list_for_each_entry_safe(pTS, pTmpTS, &ieee->Rx_TS_Admit_List, List) + { + RemoveTsEntry(ieee, pTS, RX_DIR); + list_del_init(&pTS->List); + list_add_tail(&pTS->List, &ieee->Rx_TS_Unused_List); + } +#endif +} + +void TsStartAddBaProcess(struct rtllib_device* ieee, PTX_TS_RECORD pTxTS) +{ + if(pTxTS->bAddBaReqInProgress == false) + { + pTxTS->bAddBaReqInProgress = true; +#if 1 + if(pTxTS->bAddBaReqDelayed) + { + RTLLIB_DEBUG(RTLLIB_DL_BA, "TsStartAddBaProcess(): Delayed Start ADDBA after 60 sec!!\n"); + mod_timer(&pTxTS->TsAddBaTimer, jiffies + MSECS(TS_ADDBA_DELAY)); + } + else + { + RTLLIB_DEBUG(RTLLIB_DL_BA,"TsStartAddBaProcess(): Immediately Start ADDBA now!!\n"); + mod_timer(&pTxTS->TsAddBaTimer, jiffies+10); + } +#endif + } + else + RTLLIB_DEBUG(RTLLIB_DL_ERR, "%s()==>BA timer is already added\n", __FUNCTION__); +} + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(RemovePeerTS); +#ifdef _RTL8192_EXT_PATCH_ +EXPORT_SYMBOL_RSL(ResetAdmitTRStream); +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/wapi_interface.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/wapi_interface.h @@ -0,0 +1,98 @@ +#ifndef __INC_WAPI_INTERFACE_H +#define __INC_WAPI_INTERFACE_H +#include +#include /* ETH_ALEN */ + +/************************************************************* + * WAPI EVENT QUEUE : * + * Buffer events from driver to application. * + *************************************************************/ +#define WAPI_MAX_BUFF_LEN 2000 +#define WAPI_MAX_QUEUE_LEN 6 + +typedef enum +{ + E_WAPI_OK = 0, + E_WAPI_ITEM_TOO_LARGE = 1, + E_WAPI_QFULL = 2, + E_WAPI_QEMPTY = 3, + E_WAPI_QNULL = 4 +}WAPI_QUEUE_RET_VAL; + +typedef struct _WAPI_QUEUE_NODE +{ + u16 ItemSize; + u8 Item[WAPI_MAX_BUFF_LEN]; +}WAPI_QUEUE_NODE; + +typedef struct _WAPI_QUEUE +{ + int Head; + int Tail; + int NumItem; + int MaxItem; + WAPI_QUEUE_NODE ItemArray[WAPI_MAX_QUEUE_LEN]; + int MaxData; +}WAPI_QUEUE; + +typedef enum{ + WAPI_EVENT_RCV_PREAUTHENTICATE = 1, + WAPI_EVENT_RCV_STAKEY_REQUEST = 2, + WAPI_EVENT_RCV_AUTHENTICATE_ACTIVE = 3, + WAPI_EVENT_RCV_ACCESS_AUTHENTICATE_REQUEST = 4, + WAPI_EVENT_RCV_ACCESS_AUTHENTICATE_RESPONSE = 5, + WAPI_EVENT_RCV_CERTIFICATE_AUTHENTICATE_REQUEST = 6, + WAPI_EVENT_RCV_CERTIFICATE_AUTHENTICATE_RESPONSE = 7, + WAPI_EVENT_RCV_USK_REQUEST = 8, + WAPI_EVENT_RCV_USK_RESPONSE = 9, + WAPI_EVENT_RCV_USK_CONFIRM = 10, + WAPI_EVENT_RCV_MSK_NOTIFICATION = 11, + WAPI_EVENT_RCV_MSK_RESPONSE = 12, + WAPI_EVENT_AE_UPDATE_BK = 13, + WAPI_EVENT_AE_UPDATE_USK = 14, + WAPI_EVENT_AE_UPDATE_MSK = 15, + WAPI_EVENT_ASUE_UPDATE_BK = 16, + WAPI_EVENT_ASUE_UPDATE_USK = 17, + WAPI_EVENT_FIRST_AUTHENTICATOR = 18, + WAPI_EVENT_CONNECT = 19, + WAPI_EVENT_DISCONNECT = 20, + WAPI_EVENT_MAX_NUM = 21 +} WAPI_EVENT_ID; + +typedef struct _WAPI_EVENT_T{ + u8 EventId; + u8 MACAddr[ETH_ALEN]; + u16 BuffLength; + u8 Buff[0]; +}__attribute__ ((packed))WAPI_EVENT_T; + +#define WAPI_IsEmptyQueue(q) (q->NumItem==0 ? 1:0) +#define WAPI_IsFullQueue(q) (q->NumItem==q->MaxItem? 1:0) +#define WAPI_NumItemQueue(q) q->NumItem + +void WAPI_InitQueue(WAPI_QUEUE *q, int szMaxItem, int szMaxData); +int WAPI_EnQueue(spinlock_t *plock, WAPI_QUEUE *q, u8 *item, int itemsize); +int WAPI_DeQueue(spinlock_t *plock, WAPI_QUEUE *q, u8 *item, int *itemsize); +void WAPI_PrintQueue(WAPI_QUEUE *q); + +extern int pid_wapi; +extern void notifyWapiApplication(void); +/************************************************************* + * WAPI IOCTL: FROM APPLICATION TO DRIVER * + *************************************************************/ +#define WAPI_CMD_GET_WAPI_SUPPORT 0X8B81 +#define WAPI_CMD_SET_WAPI_ENABLE 0X8B82 +#define WAPI_CMD_SET_WAPI_PSK 0X8B83 +#define WAPI_CMD_SET_KEY 0X8B84 +#define WAPI_CMD_SET_MULTICAST_PN 0X8B85 +#define WAPI_CMD_GET_PN 0X8B86 +#define WAPI_CMD_GET_WAPIIE 0X8B87 +#define WAPI_CMD_SET_SSID 0X8B88 +#define WAPI_CMD_GET_BSSID 0X8B89 +#define WAPI_CMD_SET_IW_MODE 0X8B8b +#define WAPI_CMD_SET_DISASSOCIATE 0X8B8c +#define WAPI_CMD_SAVE_PID 0X8B8d +#define WAPI_CMD_DEQUEUE 0X8B90 + +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib_crypt_ccmp.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib_crypt_ccmp.c @@ -0,0 +1,544 @@ +/* + * Host AP crypt: host-based CCMP encryption implementation for Host AP driver + * + * Copyright (c) 2003-2004, Jouni Malinen + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See README and COPYING for + * more details. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef _RTL8192_EXT_PATCH_ +#include +#endif +#include "rtllib.h" + +#if defined(BUILT_IN_CRYPTO) || (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) +#include "rtl_crypto.h" +#else +#include +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + #include +#else + #include +#endif + +#ifndef BUILT_IN_RTLLIB +MODULE_AUTHOR("Jouni Malinen"); +MODULE_DESCRIPTION("Host AP crypt: CCMP"); +MODULE_LICENSE("GPL"); +#endif + + +#define AES_BLOCK_LEN 16 +#define CCMP_HDR_LEN 8 +#define CCMP_MIC_LEN 8 +#define CCMP_TK_LEN 16 +#define CCMP_PN_LEN 6 + +struct rtllib_ccmp_data { + u8 key[CCMP_TK_LEN]; + int key_set; + + u8 tx_pn[CCMP_PN_LEN]; + u8 rx_pn[CCMP_PN_LEN]; + + u32 dot11RSNAStatsCCMPFormatErrors; + u32 dot11RSNAStatsCCMPReplays; + u32 dot11RSNAStatsCCMPDecryptErrors; + + int key_idx; + + struct crypto_tfm *tfm; + + /* scratch buffers for virt_to_page() (crypto API) */ + u8 tx_b0[AES_BLOCK_LEN], tx_b[AES_BLOCK_LEN], + tx_e[AES_BLOCK_LEN], tx_s0[AES_BLOCK_LEN]; + u8 rx_b0[AES_BLOCK_LEN], rx_b[AES_BLOCK_LEN], rx_a[AES_BLOCK_LEN]; +}; + +void rtllib_ccmp_aes_encrypt(struct crypto_tfm *tfm, + const u8 pt[16], u8 ct[16]) +{ +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + struct scatterlist src, dst; + +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + src.page = virt_to_page(pt); + src.offset = offset_in_page(pt); + src.length = AES_BLOCK_LEN; + + dst.page = virt_to_page(ct); + dst.offset = offset_in_page(ct); + dst.length = AES_BLOCK_LEN; + +#else + sg_init_one(&src, pt, AES_BLOCK_LEN); + sg_init_one(&dst, ct, AES_BLOCK_LEN); +#endif + + crypto_cipher_encrypt(tfm, &dst, &src, AES_BLOCK_LEN); +#else + crypto_cipher_encrypt_one((void*)tfm, ct, pt); +#endif +} + +static void * rtllib_ccmp_init(int key_idx) +{ + struct rtllib_ccmp_data *priv; + + priv = kmalloc(sizeof(*priv), GFP_ATOMIC); + if (priv == NULL) + goto fail; + memset(priv, 0, sizeof(*priv)); + priv->key_idx = key_idx; + +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + priv->tfm = crypto_alloc_tfm("aes", 0); + if (priv->tfm == NULL) { + printk(KERN_DEBUG "rtllib_crypt_ccmp: could not allocate " + "crypto API aes\n"); + goto fail; + } + #else + priv->tfm = (void*)crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC); + if (IS_ERR(priv->tfm)) { + printk(KERN_DEBUG "rtllib_crypt_ccmp: could not allocate " + "crypto API aes\n"); + priv->tfm = NULL; + goto fail; + } + #endif + return priv; + +fail: + if (priv) { + if (priv->tfm) + #if defined(BUILT_IN_CRYPTO) || (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) + crypto_free_tfm(priv->tfm); + #else + crypto_free_cipher((void*)priv->tfm); + #endif + kfree(priv); + } + + return NULL; +} + + +static void rtllib_ccmp_deinit(void *priv) +{ + struct rtllib_ccmp_data *_priv = priv; + if (_priv && _priv->tfm) +#if defined(BUILT_IN_CRYPTO) || (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) + crypto_free_tfm(_priv->tfm); +#else + crypto_free_cipher((void*)_priv->tfm); +#endif + kfree(priv); +} + + +static inline void xor_block(u8 *b, u8 *a, size_t len) +{ + int i; + for (i = 0; i < len; i++) + b[i] ^= a[i]; +} + + + +static void ccmp_init_blocks(struct crypto_tfm *tfm, + struct rtllib_hdr_4addr *hdr, + u8 *pn, size_t dlen, u8 *b0, u8 *auth, + u8 *s0) +{ + u8 *pos, qc = 0; + size_t aad_len; + u16 fc; + int a4_included, qc_included; + u8 aad[2 * AES_BLOCK_LEN]; + + fc = le16_to_cpu(hdr->frame_ctl); + a4_included = ((fc & (RTLLIB_FCTL_TODS | RTLLIB_FCTL_FROMDS)) == + (RTLLIB_FCTL_TODS | RTLLIB_FCTL_FROMDS)); + /* + qc_included = ((WLAN_FC_GET_TYPE(fc) == RTLLIB_FTYPE_DATA) && + (WLAN_FC_GET_STYPE(fc) & 0x08)); + */ + qc_included = ((WLAN_FC_GET_TYPE(fc) == RTLLIB_FTYPE_DATA) && + (WLAN_FC_GET_STYPE(fc) & 0x80)); + aad_len = 22; + if (a4_included) + aad_len += 6; + if (qc_included) { + pos = (u8 *) &hdr->addr4; + if (a4_included) + pos += 6; + qc = *pos & 0x0f; + aad_len += 2; + } + /* CCM Initial Block: + * Flag (Include authentication header, M=3 (8-octet MIC), + * L=1 (2-octet Dlen)) + * Nonce: 0x00 | A2 | PN + * Dlen */ + b0[0] = 0x59; + b0[1] = qc; + memcpy(b0 + 2, hdr->addr2, ETH_ALEN); + memcpy(b0 + 8, pn, CCMP_PN_LEN); + b0[14] = (dlen >> 8) & 0xff; + b0[15] = dlen & 0xff; + + /* AAD: + * FC with bits 4..6 and 11..13 masked to zero; 14 is always one + * A1 | A2 | A3 + * SC with bits 4..15 (seq#) masked to zero + * A4 (if present) + * QC (if present) + */ + pos = (u8 *) hdr; + aad[0] = 0; /* aad_len >> 8 */ + aad[1] = aad_len & 0xff; + aad[2] = pos[0] & 0x8f; + aad[3] = pos[1] & 0xc7; + memcpy(aad + 4, hdr->addr1, 3 * ETH_ALEN); + pos = (u8 *) &hdr->seq_ctl; + aad[22] = pos[0] & 0x0f; + aad[23] = 0; /* all bits masked */ + memset(aad + 24, 0, 8); + if (a4_included) + memcpy(aad + 24, hdr->addr4, ETH_ALEN); + if (qc_included) { + aad[a4_included ? 30 : 24] = qc; + /* rest of QC masked */ + } + + /* Start with the first block and AAD */ + rtllib_ccmp_aes_encrypt(tfm, b0, auth); + xor_block(auth, aad, AES_BLOCK_LEN); + rtllib_ccmp_aes_encrypt(tfm, auth, auth); + xor_block(auth, &aad[AES_BLOCK_LEN], AES_BLOCK_LEN); + rtllib_ccmp_aes_encrypt(tfm, auth, auth); + b0[0] &= 0x07; + b0[14] = b0[15] = 0; + rtllib_ccmp_aes_encrypt(tfm, b0, s0); +} + + + +static int rtllib_ccmp_encrypt(struct sk_buff *skb, int hdr_len, void *priv) +{ + struct rtllib_ccmp_data *key = priv; + int data_len, i; + u8 *pos; + struct rtllib_hdr_4addr *hdr; + cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); +#ifdef _RTL8192_EXT_PATCH_ + u8 broadcastaddr[6] = {0xff,0xff,0xff,0xff,0xff,0xff}; + u8 is_broadcast_data = 0; +#endif + if (skb_headroom(skb) < CCMP_HDR_LEN || + skb_tailroom(skb) < CCMP_MIC_LEN || + skb->len < hdr_len) + return -1; + + data_len = skb->len - hdr_len; + pos = skb_push(skb, CCMP_HDR_LEN); + memmove(pos, pos + CCMP_HDR_LEN, hdr_len); + pos += hdr_len; + + i = CCMP_PN_LEN - 1; + while (i >= 0) { + key->tx_pn[i]++; + if (key->tx_pn[i] != 0) + break; + i--; + } + + *pos++ = key->tx_pn[5]; + *pos++ = key->tx_pn[4]; + *pos++ = 0; + *pos++ = (key->key_idx << 6) | (1 << 5) /* Ext IV included */; + *pos++ = key->tx_pn[3]; + *pos++ = key->tx_pn[2]; + *pos++ = key->tx_pn[1]; + *pos++ = key->tx_pn[0]; + + + hdr = (struct rtllib_hdr_4addr *) skb->data; +#ifdef _RTL8192_EXT_PATCH_ + if(tcb_desc->badhoc == 0){ + if(memcmp(hdr->addr1,broadcastaddr,6) == 0){ + is_broadcast_data = 1; + tcb_desc->bHwSec = 0; + } + if(is_multicast_ether_addr(hdr->addr1)){ + tcb_desc->bHwSec = 0; + } + } +#endif + if (!tcb_desc->bHwSec) + { + int blocks, last, len; + u8 *mic; + u8 *b0 = key->tx_b0; + u8 *b = key->tx_b; + u8 *e = key->tx_e; + u8 *s0 = key->tx_s0; + + mic = skb_put(skb, CCMP_MIC_LEN); + + ccmp_init_blocks(key->tfm, hdr, key->tx_pn, data_len, b0, b, s0); + + blocks = (data_len + AES_BLOCK_LEN - 1) / AES_BLOCK_LEN; + last = data_len % AES_BLOCK_LEN; + + for (i = 1; i <= blocks; i++) { + len = (i == blocks && last) ? last : AES_BLOCK_LEN; + /* Authentication */ + xor_block(b, pos, len); + rtllib_ccmp_aes_encrypt(key->tfm, b, b); + /* Encryption, with counter */ + b0[14] = (i >> 8) & 0xff; + b0[15] = i & 0xff; + rtllib_ccmp_aes_encrypt(key->tfm, b0, e); + xor_block(pos, e, len); + pos += len; + } + + for (i = 0; i < CCMP_MIC_LEN; i++) + mic[i] = b[i] ^ s0[i]; + } + return 0; +} + + +static int rtllib_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv) +{ + struct rtllib_ccmp_data *key = priv; + u8 keyidx, *pos; + struct rtllib_hdr_4addr *hdr; + cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + u8 pn[6]; + + if (skb->len < hdr_len + CCMP_HDR_LEN + CCMP_MIC_LEN) { + key->dot11RSNAStatsCCMPFormatErrors++; + return -1; + } + + hdr = (struct rtllib_hdr_4addr *) skb->data; + pos = skb->data + hdr_len; + keyidx = pos[3]; + if (!(keyidx & (1 << 5))) { + if (net_ratelimit()) { + printk(KERN_DEBUG "CCMP: received packet without ExtIV" + " flag from " MAC_FMT "\n", MAC_ARG(hdr->addr2)); + } + key->dot11RSNAStatsCCMPFormatErrors++; + return -2; + } + keyidx >>= 6; + if (key->key_idx != keyidx) { + printk(KERN_DEBUG "CCMP: RX tkey->key_idx=%d frame " + "keyidx=%d priv=%p\n", key->key_idx, keyidx, priv); + return -6; + } + if (!key->key_set) { + if (net_ratelimit()) { + printk(KERN_DEBUG "CCMP: received packet from " MAC_FMT + " with keyid=%d that does not have a configured" + " key\n", MAC_ARG(hdr->addr2), keyidx); + } + return -3; + } + + pn[0] = pos[7]; + pn[1] = pos[6]; + pn[2] = pos[5]; + pn[3] = pos[4]; + pn[4] = pos[1]; + pn[5] = pos[0]; + pos += 8; +#ifndef _RTL8192_EXT_PATCH_ + if (memcmp(pn, key->rx_pn, CCMP_PN_LEN) <= 0) { + if (net_ratelimit()) { + ; + } + key->dot11RSNAStatsCCMPReplays++; + return -4; + } +#endif + if (!tcb_desc->bHwSec) + { + size_t data_len = skb->len - hdr_len - CCMP_HDR_LEN - CCMP_MIC_LEN; + u8 *mic = skb->data + skb->len - CCMP_MIC_LEN; + u8 *b0 = key->rx_b0; + u8 *b = key->rx_b; + u8 *a = key->rx_a; + int i, blocks, last, len; + + + ccmp_init_blocks(key->tfm, hdr, pn, data_len, b0, a, b); + xor_block(mic, b, CCMP_MIC_LEN); + + blocks = (data_len + AES_BLOCK_LEN - 1) / AES_BLOCK_LEN; + last = data_len % AES_BLOCK_LEN; + + for (i = 1; i <= blocks; i++) { + len = (i == blocks && last) ? last : AES_BLOCK_LEN; + /* Decrypt, with counter */ + b0[14] = (i >> 8) & 0xff; + b0[15] = i & 0xff; + rtllib_ccmp_aes_encrypt(key->tfm, b0, b); + xor_block(pos, b, len); + /* Authentication */ + xor_block(a, pos, len); + rtllib_ccmp_aes_encrypt(key->tfm, a, a); + pos += len; + } + + if (memcmp(mic, a, CCMP_MIC_LEN) != 0) { + if (net_ratelimit()) { + printk(KERN_DEBUG "CCMP: decrypt failed: STA=" + MAC_FMT "\n", MAC_ARG(hdr->addr2)); + } + key->dot11RSNAStatsCCMPDecryptErrors++; + return -5; + } + + memcpy(key->rx_pn, pn, CCMP_PN_LEN); + } + /* Remove hdr and MIC */ + memmove(skb->data + CCMP_HDR_LEN, skb->data, hdr_len); + skb_pull(skb, CCMP_HDR_LEN); + skb_trim(skb, skb->len - CCMP_MIC_LEN); + + return keyidx; +} + + +static int rtllib_ccmp_set_key(void *key, int len, u8 *seq, void *priv) +{ + struct rtllib_ccmp_data *data = priv; + int keyidx; + struct crypto_tfm *tfm = data->tfm; + + keyidx = data->key_idx; + memset(data, 0, sizeof(*data)); + data->key_idx = keyidx; + data->tfm = tfm; + if (len == CCMP_TK_LEN) { + memcpy(data->key, key, CCMP_TK_LEN); + data->key_set = 1; + if (seq) { + data->rx_pn[0] = seq[5]; + data->rx_pn[1] = seq[4]; + data->rx_pn[2] = seq[3]; + data->rx_pn[3] = seq[2]; + data->rx_pn[4] = seq[1]; + data->rx_pn[5] = seq[0]; + } + crypto_cipher_setkey((void*)data->tfm, data->key, CCMP_TK_LEN); + } else if (len == 0) + data->key_set = 0; + else + return -1; + + return 0; +} + + +static int rtllib_ccmp_get_key(void *key, int len, u8 *seq, void *priv) +{ + struct rtllib_ccmp_data *data = priv; + + if (len < CCMP_TK_LEN) + return -1; + + if (!data->key_set) + return 0; + memcpy(key, data->key, CCMP_TK_LEN); + + if (seq) { + seq[0] = data->tx_pn[5]; + seq[1] = data->tx_pn[4]; + seq[2] = data->tx_pn[3]; + seq[3] = data->tx_pn[2]; + seq[4] = data->tx_pn[1]; + seq[5] = data->tx_pn[0]; + } + + return CCMP_TK_LEN; +} + + +static char * rtllib_ccmp_print_stats(char *p, void *priv) +{ + struct rtllib_ccmp_data *ccmp = priv; + p += sprintf(p, "key[%d] alg=CCMP key_set=%d " + "tx_pn=%02x%02x%02x%02x%02x%02x " + "rx_pn=%02x%02x%02x%02x%02x%02x " + "format_errors=%d replays=%d decrypt_errors=%d\n", + ccmp->key_idx, ccmp->key_set, + MAC_ARG(ccmp->tx_pn), MAC_ARG(ccmp->rx_pn), + ccmp->dot11RSNAStatsCCMPFormatErrors, + ccmp->dot11RSNAStatsCCMPReplays, + ccmp->dot11RSNAStatsCCMPDecryptErrors); + + return p; +} + +void rtllib_ccmp_null(void) +{ + return; +} + +static struct rtllib_crypto_ops rtllib_crypt_ccmp = { + .name = "CCMP", + .init = rtllib_ccmp_init, + .deinit = rtllib_ccmp_deinit, + .encrypt_mpdu = rtllib_ccmp_encrypt, + .decrypt_mpdu = rtllib_ccmp_decrypt, + .encrypt_msdu = NULL, + .decrypt_msdu = NULL, + .set_key = rtllib_ccmp_set_key, + .get_key = rtllib_ccmp_get_key, + .print_stats = rtllib_ccmp_print_stats, + .extra_prefix_len = CCMP_HDR_LEN, + .extra_postfix_len = CCMP_MIC_LEN, + .owner = THIS_MODULE, +}; + + +int __init rtllib_crypto_ccmp_init(void) +{ + return rtllib_register_crypto_ops(&rtllib_crypt_ccmp); +} + + +void __exit rtllib_crypto_ccmp_exit(void) +{ + rtllib_unregister_crypto_ops(&rtllib_crypt_ccmp); +} + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(rtllib_ccmp_null); + +module_init(rtllib_crypto_ccmp_init); +module_exit(rtllib_crypto_ccmp_exit); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib_tx.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib_tx.c @@ -0,0 +1,1622 @@ +/****************************************************************************** + + Copyright(c) 2003 - 2004 Intel Corporation. All rights reserved. + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program; if not, write to the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + The full GNU General Public License is included in this distribution in the + file called LICENSE. + + Contact Information: + James P. Ketrenos + Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + +****************************************************************************** + + Few modifications for Realtek's Wi-Fi drivers by + Andrea Merello + + A special thanks goes to Realtek for their support ! + +******************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "rtllib.h" + +#ifdef RTK_DMP_PLATFORM +#include +#endif + +/* + + +802.11 Data Frame + + +802.11 frame_contorl for data frames - 2 bytes + ,-----------------------------------------------------------------------------------------. +bits | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | + |----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|------| +val | 0 | 0 | 0 | 1 | x | 0 | 0 | 0 | 1 | 0 | x | x | x | x | x | + |----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|------| +desc | ^-ver-^ | ^type-^ | ^-----subtype-----^ | to |from |more |retry| pwr |more |wep | + | | | x=0 data,x=1 data+ack | DS | DS |frag | | mgm |data | | + '-----------------------------------------------------------------------------------------' + /\ + | +802.11 Data Frame | + ,--------- 'ctrl' expands to >-----------' + | + ,--'---,-------------------------------------------------------------. +Bytes | 2 | 2 | 6 | 6 | 6 | 2 | 0..2312 | 4 | + |------|------|---------|---------|---------|------|---------|------| +Desc. | ctrl | dura | DA/RA | TA | SA | Sequ | Frame | fcs | + | | tion | (BSSID) | | | ence | data | | + `--------------------------------------------------| |------' +Total: 28 non-data bytes `----.----' + | + .- 'Frame data' expands to <---------------------------' + | + V + ,---------------------------------------------------. +Bytes | 1 | 1 | 1 | 3 | 2 | 0-2304 | + |------|------|---------|----------|------|---------| +Desc. | SNAP | SNAP | Control |Eth Tunnel| Type | IP | + | DSAP | SSAP | | | | Packet | + | 0xAA | 0xAA |0x03 (UI)|0x00-00-F8| | | + `-----------------------------------------| | +Total: 8 non-data bytes `----.----' + | + .- 'IP Packet' expands, if WEP enabled, to <--' + | + V + ,-----------------------. +Bytes | 4 | 0-2296 | 4 | + |-----|-----------|-----| +Desc. | IV | Encrypted | ICV | + | | IP Packet | | + `-----------------------' +Total: 8 non-data bytes + + +802.3 Ethernet Data Frame + + ,-----------------------------------------. +Bytes | 6 | 6 | 2 | Variable | 4 | + |-------|-------|------|-----------|------| +Desc. | Dest. | Source| Type | IP Packet | fcs | + | MAC | MAC | | | | + `-----------------------------------------' +Total: 18 non-data bytes + +In the event that fragmentation is required, the incoming payload is split into +N parts of size ieee->fts. The first fragment contains the SNAP header and the +remaining packets are just data. + +If encryption is enabled, each fragment payload size is reduced by enough space +to add the prefix and postfix (IV and ICV totalling 8 bytes in the case of WEP) +So if you have 1500 bytes of payload with ieee->fts set to 500 without +encryption it will take 3 frames. With WEP it will take 4 frames as the +payload of each frame is reduced to 492 bytes. + +* SKB visualization +* +* ,- skb->data +* | +* | ETHERNET HEADER ,-<-- PAYLOAD +* | | 14 bytes from skb->data +* | 2 bytes for Type --> ,T. | (sizeof ethhdr) +* | | | | +* |,-Dest.--. ,--Src.---. | | | +* | 6 bytes| | 6 bytes | | | | +* v | | | | | | +* 0 | v 1 | v | v 2 +* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +* ^ | ^ | ^ | +* | | | | | | +* | | | | `T' <---- 2 bytes for Type +* | | | | +* | | '---SNAP--' <-------- 6 bytes for SNAP +* | | +* `-IV--' <-------------------- 4 bytes for IV (WEP) +* +* SNAP HEADER +* +*/ + +static u8 P802_1H_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0xf8 }; +static u8 RFC1042_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0x00 }; + +inline int rtllib_put_snap(u8 *data, u16 h_proto) +{ + struct rtllib_snap_hdr *snap; + u8 *oui; + + snap = (struct rtllib_snap_hdr *)data; + snap->dsap = 0xaa; + snap->ssap = 0xaa; + snap->ctrl = 0x03; + + if (h_proto == 0x8137 || h_proto == 0x80f3) + oui = P802_1H_OUI; + else + oui = RFC1042_OUI; + snap->oui[0] = oui[0]; + snap->oui[1] = oui[1]; + snap->oui[2] = oui[2]; + + *(u16 *)(data + SNAP_SIZE) = htons(h_proto); + + return SNAP_SIZE + sizeof(u16); +} + +#ifdef _RTL8192_EXT_PATCH_ +int rtllib_encrypt_fragment( + struct rtllib_device *ieee, + struct sk_buff *frag, + int hdr_len, + u8 is_mesh, + u8 entry) +#else +int rtllib_encrypt_fragment( + struct rtllib_device *ieee, + struct sk_buff *frag, + int hdr_len) +#endif +{ + struct rtllib_crypt_data* crypt = NULL; + int res; + +#ifdef _RTL8192_EXT_PATCH_ + if (is_mesh) { + crypt = ieee->cryptlist[entry]->crypt[ieee->mesh_txkeyidx]; + } else + crypt = ieee->sta_crypt[ieee->tx_keyidx]; +#else + crypt = ieee->crypt[ieee->tx_keyidx]; +#endif + + if (!(crypt && crypt->ops)) + { + printk("=========>%s(), crypt is null\n", __FUNCTION__); + return -1; + } +#ifdef CONFIG_RTLLIB_CRYPT_TKIP + struct rtllib_hdr_1addr *header; + + if (ieee->tkip_countermeasures && + crypt && crypt->ops && strcmp(crypt->ops->name, "TKIP") == 0) { + header = (struct rtllib_hdr_1addr *) frag->data; + if (net_ratelimit()) { + printk(KERN_DEBUG "%s: TKIP countermeasures: dropped " + "TX packet to " MAC_FMT "\n", + ieee->dev->name, MAC_ARG(header->addr1)); + } + return -1; + } +#endif + /* To encrypt, frame format is: + * IV (4 bytes), clear payload (including SNAP), ICV (4 bytes) */ + + /* Host-based IEEE 802.11 fragmentation for TX is not yet supported, so + * call both MSDU and MPDU encryption functions from here. */ + atomic_inc(&crypt->refcnt); + res = 0; + if (crypt->ops->encrypt_msdu) + res = crypt->ops->encrypt_msdu(frag, hdr_len, crypt->priv); + if (res == 0 && crypt->ops->encrypt_mpdu) + res = crypt->ops->encrypt_mpdu(frag, hdr_len, crypt->priv); + + atomic_dec(&crypt->refcnt); + if (res < 0) { + printk(KERN_INFO "%s: Encryption failed: len=%d.\n", + ieee->dev->name, frag->len); + ieee->ieee_stats.tx_discards++; + return -1; + } + + return 0; +} + + +void rtllib_txb_free(struct rtllib_txb *txb) { + if (unlikely(!txb)) + return; +#if 0 + for (i = 0; i < txb->nr_frags; i++) + if (txb->fragments[i]) + dev_kfree_skb_any(txb->fragments[i]); +#endif + kfree(txb); +} + +struct rtllib_txb *rtllib_alloc_txb(int nr_frags, int txb_size, + int gfp_mask) +{ +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr=0; + int alignment=0; +#endif + struct rtllib_txb *txb; + int i; + txb = kmalloc( + sizeof(struct rtllib_txb) + (sizeof(u8*) * nr_frags), + gfp_mask); + if (!txb) + return NULL; + + memset(txb, 0, sizeof(struct rtllib_txb)); + txb->nr_frags = nr_frags; + txb->frag_size = txb_size; + + for (i = 0; i < nr_frags; i++) { +#ifdef USB_USE_ALIGNMENT + txb->fragments[i] = dev_alloc_skb(txb_size+USB_512B_ALIGNMENT_SIZE); +#else + txb->fragments[i] = dev_alloc_skb(txb_size); +#endif + if (unlikely(!txb->fragments[i])) { + i--; + break; + } +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)(txb->fragments[i]->data); + alignment = Tmpaddr & 0x1ff; + skb_reserve(txb->fragments[i],(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + memset(txb->fragments[i]->cb, 0, sizeof(txb->fragments[i]->cb)); + } + if (unlikely(i != nr_frags)) { + while (i >= 0) + dev_kfree_skb_any(txb->fragments[i--]); + kfree(txb); + return NULL; + } + return txb; +} + +int +rtllib_classify(struct sk_buff *skb, u8 bIsAmsdu) +{ + struct ethhdr *eth; + struct iphdr *ip; + + eth = (struct ethhdr *)skb->data; + if (eth->h_proto != htons(ETH_P_IP)) + return 0; + +#ifdef ENABLE_AMSDU + if(bIsAmsdu) + ip = (struct iphdr*)(skb->data + sizeof(struct ether_header) + AMSDU_SUBHEADER_LEN + SNAP_SIZE + sizeof(u16)); + else + ip = (struct iphdr*)(skb->data + sizeof(struct ether_header)); +#else + RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA, skb->data, skb->len); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)) + ip = ip_hdr(skb); +#else + ip = (struct iphdr*)(skb->data + sizeof(struct ether_header)); +#endif +#endif + switch (ip->tos & 0xfc) { + case 0x20: + return 2; + case 0x40: + return 1; + case 0x60: + return 3; + case 0x80: + return 4; + case 0xa0: + return 5; + case 0xc0: + return 6; + case 0xe0: + return 7; + default: + return 0; + } +} + +#define SN_LESS(a, b) (((a-b)&0x800)!=0) +void rtllib_tx_query_agg_cap(struct rtllib_device* ieee, struct sk_buff* skb, cb_desc* tcb_desc) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + PTX_TS_RECORD pTxTs = NULL; + struct rtllib_hdr_1addr* hdr = (struct rtllib_hdr_1addr*)skb->data; + + if(rtllib_act_scanning(ieee,false)) + return; + + if (!pHTInfo->bCurrentHTSupport||!pHTInfo->bEnableHT){ + return; + } + if (!IsQoSDataFrame(skb->data)){ + return; + } + if (is_multicast_ether_addr(hdr->addr1) || is_broadcast_ether_addr(hdr->addr1)){ + return; + } +#ifdef TO_DO_LIST + if(pTcb->PacketLength >= 4096) + return; + if(!Adapter->HalFunc.GetNmodeSupportBySecCfgHandler(Adapter)) + return; +#endif + + if(tcb_desc->bdhcp || ieee->CntAfterLink<2){ + return; + } + + if(pHTInfo->IOTAction & HT_IOT_ACT_TX_NO_AGGREGATION){ + return; + } + + if(!ieee->GetNmodeSupportBySecCfg(ieee->dev)){ + return; + } + if(pHTInfo->bCurrentAMPDUEnable){ + if (!GetTs(ieee, (PTS_COMMON_INFO*)(&pTxTs), hdr->addr1, skb->priority, TX_DIR, true)){ + printk("%s: can't get TS\n", __func__); + return; + } + if (pTxTs->TxAdmittedBARecord.bValid == false){ + if (ieee->wpa_ie_len && (ieee->pairwise_key_type == KEY_TYPE_NA)) { + ; + } else if (tcb_desc->bdhcp == 1){ + ; + } else if (!pTxTs->bDisable_AddBa){ + TsStartAddBaProcess(ieee, pTxTs); + } + goto FORCED_AGG_SETTING; + } + else if (pTxTs->bUsingBa == false) + { + if (SN_LESS(pTxTs->TxAdmittedBARecord.BaStartSeqCtrl.field.SeqNum, (pTxTs->TxCurSeq+1)%4096)) + pTxTs->bUsingBa = true; + else + goto FORCED_AGG_SETTING; + } +#ifndef _RTL8192_EXT_PATCH_ +#ifndef RTL8192S_WAPI_SUPPORT + if (ieee->iw_mode == IW_MODE_INFRA) +#endif +#endif + { + tcb_desc->bAMPDUEnable = true; + tcb_desc->ampdu_factor = pHTInfo->CurrentAMPDUFactor; + tcb_desc->ampdu_density = pHTInfo->CurrentMPDUDensity; + } + } +FORCED_AGG_SETTING: + switch(pHTInfo->ForcedAMPDUMode ) + { + case HT_AGG_AUTO: + break; + + case HT_AGG_FORCE_ENABLE: + tcb_desc->bAMPDUEnable = true; + tcb_desc->ampdu_density = pHTInfo->ForcedMPDUDensity; + tcb_desc->ampdu_factor = pHTInfo->ForcedAMPDUFactor; + break; + + case HT_AGG_FORCE_DISABLE: + tcb_desc->bAMPDUEnable = false; + tcb_desc->ampdu_density = 0; + tcb_desc->ampdu_factor = 0; + break; + + } + return; +} + +extern void rtllib_qurey_ShortPreambleMode(struct rtllib_device* ieee, cb_desc* tcb_desc) +{ + tcb_desc->bUseShortPreamble = false; + if (tcb_desc->data_rate == 2) + { + return; + } + else if (ieee->current_network.capability & WLAN_CAPABILITY_SHORT_PREAMBLE) + { + tcb_desc->bUseShortPreamble = true; + } + return; +} + +extern void +rtllib_query_HTCapShortGI(struct rtllib_device *ieee, cb_desc *tcb_desc) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + tcb_desc->bUseShortGI = false; + + if(!pHTInfo->bCurrentHTSupport||!pHTInfo->bEnableHT) + return; + + if(pHTInfo->bForcedShortGI) + { + tcb_desc->bUseShortGI = true; + return; + } + + if((pHTInfo->bCurBW40MHz==true) && pHTInfo->bCurShortGI40MHz) + tcb_desc->bUseShortGI = true; + else if((pHTInfo->bCurBW40MHz==false) && pHTInfo->bCurShortGI20MHz) + tcb_desc->bUseShortGI = true; +} + +void rtllib_query_BandwidthMode(struct rtllib_device* ieee, cb_desc *tcb_desc) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + tcb_desc->bPacketBW = false; + + if(!pHTInfo->bCurrentHTSupport||!pHTInfo->bEnableHT) + return; + + if(tcb_desc->bMulticast || tcb_desc->bBroadcast) + return; + + if((tcb_desc->data_rate & 0x80)==0) + return; + if(pHTInfo->bCurBW40MHz && pHTInfo->bCurTxBW40MHz && !ieee->bandwidth_auto_switch.bforced_tx20Mhz) + tcb_desc->bPacketBW = true; + return; +} +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) || defined(RTL8192CE) +extern void rtllib_ibss_query_HTCapShortGI(struct rtllib_device *ieee, cb_desc *tcb_desc,u8 is_peer_shortGI_40M,u8 is_peer_shortGI_20M) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + tcb_desc->bUseShortGI = false; + + if(!pHTInfo->bCurrentHTSupport||!pHTInfo->bEnableHT || (ieee->iw_mode != IW_MODE_ADHOC)) + { + return; + } + + if(pHTInfo->bForcedShortGI) + { + tcb_desc->bUseShortGI = true; + return; + } + if((pHTInfo->bCurBW40MHz==true) && is_peer_shortGI_40M) + tcb_desc->bUseShortGI = true; + else if((pHTInfo->bCurBW40MHz==false) && is_peer_shortGI_20M) + tcb_desc->bUseShortGI = true; +} +void rtllib_ibss_query_BandwidthMode(struct rtllib_device* ieee, cb_desc *tcb_desc, u8 is_peer_40M) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + tcb_desc->bPacketBW = false; + + if(!pHTInfo->bCurrentHTSupport||!pHTInfo->bEnableHT || (ieee->iw_mode != IW_MODE_ADHOC)) + { + return; + } + + if(tcb_desc->bMulticast || tcb_desc->bBroadcast) + { + return; + } + + if((tcb_desc->data_rate & 0x80)==0) + { + return; + } + if(pHTInfo->bCurBW40MHz && is_peer_40M && !ieee->bandwidth_auto_switch.bforced_tx20Mhz) + tcb_desc->bPacketBW = true; + return; +} +#endif +void rtllib_query_protectionmode(struct rtllib_device* ieee, cb_desc* tcb_desc, struct sk_buff* skb) +{ + tcb_desc->bRTSSTBC = false; + tcb_desc->bRTSUseShortGI = false; + tcb_desc->bCTSEnable = false; + tcb_desc->RTSSC = 0; + tcb_desc->bRTSBW = false; + + if(tcb_desc->bBroadcast || tcb_desc->bMulticast) + return; + + if (is_broadcast_ether_addr(skb->data+16)) + return; + + if (ieee->mode < IEEE_N_24G) + { + if (skb->len > ieee->rts) + { + tcb_desc->bRTSEnable = true; + tcb_desc->rts_rate = MGN_24M; + } + else if (ieee->current_network.buseprotection) + { + tcb_desc->bRTSEnable = true; + tcb_desc->bCTSEnable = true; + tcb_desc->rts_rate = MGN_24M; + } + return; + } + else + { + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + while (true) + { + if(pHTInfo->IOTAction & HT_IOT_ACT_FORCED_CTS2SELF) + { + tcb_desc->bCTSEnable = true; + tcb_desc->rts_rate = MGN_24M; +#if defined(RTL8192SE) || defined(RTL8192SU) || defined RTL8192CE + tcb_desc->bRTSEnable = false; +#else + tcb_desc->bRTSEnable = true; +#endif + break; + } + else if(pHTInfo->IOTAction & (HT_IOT_ACT_FORCED_RTS|HT_IOT_ACT_PURE_N_MODE)) + { + tcb_desc->bRTSEnable = true; + tcb_desc->rts_rate = MGN_24M; + break; + } + if (ieee->current_network.buseprotection) + { + tcb_desc->bRTSEnable = true; + tcb_desc->bCTSEnable = true; + tcb_desc->rts_rate = MGN_24M; + break; + } + if(pHTInfo->bCurrentHTSupport && pHTInfo->bEnableHT) + { + u8 HTOpMode = pHTInfo->CurrentOpMode; + if((pHTInfo->bCurBW40MHz && (HTOpMode == 2 || HTOpMode == 3)) || + (!pHTInfo->bCurBW40MHz && HTOpMode == 3) ) + { + tcb_desc->rts_rate = MGN_24M; + tcb_desc->bRTSEnable = true; + break; + } + } + if (skb->len > ieee->rts) + { + tcb_desc->rts_rate = MGN_24M; + tcb_desc->bRTSEnable = true; + break; + } + if(tcb_desc->bAMPDUEnable) + { + tcb_desc->rts_rate = MGN_24M; + tcb_desc->bRTSEnable = false; + break; + } + goto NO_PROTECTION; + } + } + if( 0 ) + { + tcb_desc->bCTSEnable = true; + tcb_desc->rts_rate = MGN_24M; + tcb_desc->bRTSEnable = true; + } + if (ieee->current_network.capability & WLAN_CAPABILITY_SHORT_PREAMBLE) + tcb_desc->bUseShortPreamble = true; + if (ieee->iw_mode == IW_MODE_MASTER) + goto NO_PROTECTION; + return; +NO_PROTECTION: + tcb_desc->bRTSEnable = false; + tcb_desc->bCTSEnable = false; + tcb_desc->rts_rate = 0; + tcb_desc->RTSSC = 0; + tcb_desc->bRTSBW = false; +} + + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) || defined RTL8192CE +void rtllib_txrate_selectmode(struct rtllib_device* ieee, cb_desc* tcb_desc,struct sta_info *psta) +#else +void rtllib_txrate_selectmode(struct rtllib_device* ieee, cb_desc* tcb_desc) +#endif +{ + if(ieee->bTxDisableRateFallBack) + tcb_desc->bTxDisableRateFallBack = true; + + if(ieee->bTxUseDriverAssingedRate) + tcb_desc->bTxUseDriverAssingedRate = true; + +#if (defined _RTL8192_EXT_PATCH_ || defined RTL8192CE) + if(!tcb_desc->bTxDisableRateFallBack || !tcb_desc->bTxUseDriverAssingedRate) + { + if ((ieee->iw_mode == IW_MODE_INFRA) || (ieee->iw_mode == IW_MODE_MESH)) + tcb_desc->RATRIndex = 0; + else if (ieee->iw_mode == IW_MODE_ADHOC){ + if(tcb_desc->bMulticast || tcb_desc->bBroadcast){ + tcb_desc->data_rate = ieee->basic_rate; + tcb_desc->bTxUseDriverAssingedRate = 1; + }else{ + if(psta != NULL) + tcb_desc->RATRIndex = psta->ratr_index; + else + tcb_desc->RATRIndex = 7; + } + } + } + +#ifdef RTL8192CE + if(ieee->bUseRAMask && ieee->mode != WIRELESS_MODE_B) +#else + if(ieee->bUseRAMask) +#endif + { + if((ieee->iw_mode == IW_MODE_ADHOC) && (NULL != psta)){ + short peer_AID = psta->aid; + + tcb_desc->macId =0; + if((peer_AID > 0) && (peer_AID < PEER_MAX_ASSOC)) + { + tcb_desc->macId = peer_AID + 1; + }else{ + tcb_desc->macId = 1; + } + } + else{ + if((ieee->mode & WIRELESS_MODE_N_24G) || (ieee->mode & WIRELESS_MODE_N_5G)) + tcb_desc->RATRIndex = RATR_INX_WIRELESS_NGB; + else if(ieee->mode & WIRELESS_MODE_G) + tcb_desc->RATRIndex = RATR_INX_WIRELESS_GB; + else if(ieee->mode & WIRELESS_MODE_B) + tcb_desc->RATRIndex = RATR_INX_WIRELESS_B; + + tcb_desc->macId = 0; + } + } +#else + if(!tcb_desc->bTxDisableRateFallBack || !tcb_desc->bTxUseDriverAssingedRate) + { + if (ieee->iw_mode == IW_MODE_INFRA || ieee->iw_mode == IW_MODE_ADHOC) + tcb_desc->RATRIndex = 0; + } +#endif +} + +u16 rtllib_query_seqnum(struct rtllib_device*ieee, struct sk_buff* skb, u8* dst) +{ + u16 seqnum = 0; + + if (is_multicast_ether_addr(dst) || is_broadcast_ether_addr(dst)) + return 0; + if (IsQoSDataFrame(skb->data)) + { + PTX_TS_RECORD pTS = NULL; + if (!GetTs(ieee, (PTS_COMMON_INFO*)(&pTS), dst, skb->priority, TX_DIR, true)) + { + return 0; + } + seqnum = pTS->TxCurSeq; + pTS->TxCurSeq = (pTS->TxCurSeq+1)%4096; + return seqnum; + } + return 0; +} + + + +#ifdef ENABLE_AMSDU +#if 0 +static void CB_DESC_DUMP(pcb_desc tcb, char* func) +{ + printk("\n%s",func); + printk("\n-------------------CB DESC DUMP ><------------------------"); + printk("\npkt_size:\t %d", tcb->pkt_size); + printk("\nqueue_index:\t %d", tcb->queue_index); + printk("\nbMulticast:\t %d", tcb->bMulticast); + printk("\nbBroadcast:\t %d", tcb->bBroadcast); + printk("\nbPacketBw:\t %d", tcb->bPacketBW); + printk("\nbRTSEnable:\t %d", tcb->bRTSEnable); + printk("\nrts_rate:\t %d", tcb->rts_rate); + printk("\nbUseShortGI:\t %d", tcb->bUseShortGI); + printk("\nbAMSDU:\t %d", tcb->bAMSDU); + printk("\nFromAggrQ:\t %d", tcb->bFromAggrQ); + printk("\nRATRIndex:\t %d", tcb->RATRIndex); + printk("\ndata_rate:\t %d", tcb->data_rate); + printk("\n-------------------CB DESC DUMP <>------------------------\n"); +} +#endif +struct sk_buff *AMSDU_Aggregation( + struct rtllib_device *ieee, + struct sk_buff_head *pSendList + ) +{ + struct sk_buff * pSkb; + struct sk_buff * pAggrSkb; + u8 i; + u32 total_length = 0; + u32 skb_len, num_skb; + pcb_desc pcb; + u8 amsdu_shdr[AMSDU_SUBHEADER_LEN]; + u8 padding = 0; + u8 *p = NULL, *q=NULL; + u16 ether_type; + + num_skb = skb_queue_len(pSendList); + if(num_skb == 0) + return NULL; + if(num_skb == 1) + { + pSkb = (struct sk_buff *)skb_dequeue(pSendList); + memset(pSkb->cb, 0, sizeof(pSkb->cb)); + pcb = (pcb_desc)(pSkb->cb + MAX_DEV_ADDR_SIZE); + pcb->bFromAggrQ = true; + return pSkb; + } + + total_length += sizeof(struct ethhdr); + for(i=0; ilen <= (ETH_ALEN*2)) + { + dev_kfree_skb_any(pSkb); + continue; + } + skb_len = pSkb->len - ETH_ALEN*2 + SNAP_SIZE + AMSDU_SUBHEADER_LEN; + if(i < (num_skb-1)) + { + skb_len += ((4-skb_len%4)==4)?0:(4-skb_len%4); + } + total_length += skb_len; + skb_queue_tail(pSendList, pSkb); + } + + pAggrSkb = dev_alloc_skb(total_length); + if(NULL == pAggrSkb) + { + skb_queue_purge(pSendList); + printk("%s: Can not alloc skb!\n", __FUNCTION__); + return NULL; + } + skb_put(pAggrSkb,total_length); + pAggrSkb->priority = pSkb->priority; + + memset(pAggrSkb->cb, 0, sizeof(pAggrSkb->cb)); + pcb = (pcb_desc)(pAggrSkb->cb + MAX_DEV_ADDR_SIZE); + pcb->bFromAggrQ = true; + pcb->bAMSDU = true; + + memset(amsdu_shdr, 0, AMSDU_SUBHEADER_LEN); + p = pAggrSkb->data; + for(i=0; idata)->h_proto); + + skb_len = pSkb->len - sizeof(struct ethhdr) + AMSDU_SUBHEADER_LEN + SNAP_SIZE + sizeof(u16); + if(i < (num_skb-1)) + { + padding = ((4-skb_len%4)==4)?0:(4-skb_len%4); + skb_len += padding; + } + if(i == 0) + { + memcpy(p, pSkb->data, sizeof(struct ethhdr)); + p += sizeof(struct ethhdr); + } + memcpy(amsdu_shdr, pSkb->data, (ETH_ALEN*2)); + skb_pull(pSkb, sizeof(struct ethhdr)); + *(u16*)(amsdu_shdr+ETH_ALEN*2) = ntohs(pSkb->len + SNAP_SIZE + sizeof(u16)); + memcpy(p, amsdu_shdr, AMSDU_SUBHEADER_LEN); + p += AMSDU_SUBHEADER_LEN; + + rtllib_put_snap(p, ether_type); + p += SNAP_SIZE + sizeof(u16); + + memcpy(p, pSkb->data, pSkb->len); + p += pSkb->len; + if(padding > 0) + { + memset(p, 0, padding); + p += padding; + padding = 0; + } + dev_kfree_skb_any(pSkb); + } + + return pAggrSkb; +} + + +/* NOTE: + This function return a list of SKB which is proper to be aggregated. + If no proper SKB is found to do aggregation, SendList will only contain the input SKB. +*/ +u8 AMSDU_GetAggregatibleList( + struct rtllib_device * ieee, + struct sk_buff * pCurSkb, + struct sk_buff_head *pSendList, + u8 queue_index + ) +{ + struct sk_buff *pSkb = NULL; + u16 nMaxAMSDUSize = 0; + u32 AggrSize = 0; + u32 nAggrSkbNum = 0; + u8 padding = 0; + struct sta_info *psta = NULL; + u8 *addr = (u8*)(pCurSkb->data); + struct sk_buff_head *header; + struct sk_buff *punlinkskb = NULL; + + padding = ((4-pCurSkb->len%4)==4)?0:(4-pCurSkb->len%4); + AggrSize = AMSDU_SUBHEADER_LEN + pCurSkb->len + padding; + skb_queue_tail(pSendList, pCurSkb); + nAggrSkbNum++; + + if(ieee->iw_mode == IW_MODE_MASTER){ + psta = GetStaInfo(ieee, addr); + if(NULL != psta) + nMaxAMSDUSize = psta->htinfo.AMSDU_MaxSize; + else + return 1; + }else if(ieee->iw_mode == IW_MODE_ADHOC){ + psta = GetStaInfo(ieee, addr); + if(NULL != psta) + nMaxAMSDUSize = psta->htinfo.AMSDU_MaxSize; + else + return 1; + }else{ + nMaxAMSDUSize = ieee->pHTInfo->nCurrent_AMSDU_MaxSize; + } + + if(ieee->pHTInfo->ForcedAMSDUMode == HT_AGG_FORCE_ENABLE) + { + nMaxAMSDUSize = ieee->pHTInfo->ForcedAMSDUMaxSize; + } + + header = (&ieee->skb_aggQ[queue_index]); + pSkb = header->next; + while(pSkb != (struct sk_buff*)header) + { + if((ieee->iw_mode == IW_MODE_MASTER) ||(ieee->iw_mode == IW_MODE_ADHOC)) + { + if(memcmp(pCurSkb->data, pSkb->data, ETH_ALEN) != 0) + { + pSkb = pSkb->next; + continue; + } + } + if((AMSDU_SUBHEADER_LEN + pSkb->len + AggrSize < nMaxAMSDUSize) ) + { + punlinkskb = pSkb; + pSkb = pSkb->next; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14) + skb_unlink(punlinkskb, header); +#else + /* + * __skb_unlink before linux2.6.14 does not use spinlock to protect list head. + * add spinlock function manually. john,2008/12/03 + */ + { + unsigned long flags; + spin_lock_irqsave(&ieee->lock, flags); + __skb_unlink(punlinkskb,header); + spin_unlock_irqrestore(&ieee->lock, flags); + } +#endif + + padding = ((4-punlinkskb->len%4)==4)?0:(4-punlinkskb->len%4); + AggrSize += AMSDU_SUBHEADER_LEN + punlinkskb->len + padding; + skb_queue_tail(pSendList, punlinkskb); + nAggrSkbNum++; + } + else + { + if(!(AMSDU_SUBHEADER_LEN + pSkb->len + AggrSize < nMaxAMSDUSize)) + ; + + break; + } + } + return nAggrSkbNum; +} +#endif +static int wme_downgrade_ac(struct sk_buff *skb) +{ + switch (skb->priority) { + case 6: + case 7: + skb->priority = 5; /* VO -> VI */ + return 0; + case 4: + case 5: + skb->priority = 3; /* VI -> BE */ + return 0; + case 0: + case 3: + skb->priority = 1; /* BE -> BK */ + return 0; + default: + return -1; + } +} + +int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev) +{ + struct rtllib_device *ieee = (struct rtllib_device *)netdev_priv_rsl(dev); + struct rtllib_txb *txb = NULL; + struct rtllib_hdr_3addrqos *frag_hdr; + int i, bytes_per_frag, nr_frags, bytes_last_frag, frag_size; + unsigned long flags; + struct net_device_stats *stats = &ieee->stats; + int ether_type = 0, encrypt; + int bytes, fc, qos_ctl = 0, hdr_len; + struct sk_buff *skb_frag; + struct rtllib_hdr_3addrqos header = { /* Ensure zero initialized */ + .duration_id = 0, + .seq_ctl = 0, + .qos_ctl = 0 + }; + u8 dest[ETH_ALEN], src[ETH_ALEN]; + int qos_actived = ieee->current_network.qos_data.active; + struct rtllib_crypt_data* crypt = NULL; + cb_desc *tcb_desc; + u8 bIsMulticast = false; +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) || defined RTL8192CE + struct sta_info *p_sta = NULL; +#endif + u8 IsAmsdu = false; +#ifdef ENABLE_AMSDU + u8 queue_index = WME_AC_BE; + cb_desc *tcb_desc_skb; + u8 bIsSptAmsdu = false; +#endif + + bool bdhcp =false; +#ifndef _RTL8192_EXT_PATCH_ +#endif +#ifdef RTL8192S_WAPI_SUPPORT + static u8 zero14[14] = {0}; +#endif + spin_lock_irqsave(&ieee->lock, flags); + + /* If there is no driver handler to take the TXB, dont' bother + * creating it... */ + if ((!ieee->hard_start_xmit && !(ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE))|| + ((!ieee->softmac_data_hard_start_xmit && (ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE)))) { + printk(KERN_WARNING "%s: No xmit handler.\n", + ieee->dev->name); + goto success; + } + + + if(likely(ieee->raw_tx == 0)){ + if (unlikely(skb->len < SNAP_SIZE + sizeof(u16))) { + printk(KERN_WARNING "%s: skb too small (%d).\n", + ieee->dev->name, skb->len); + goto success; + } +#ifdef RTL8192S_WAPI_SUPPORT + if(memcmp(skb->data, zero14, sizeof(zero14))==0){ + if(WapiSendWaiPacket(ieee, skb)< 0) + goto failed; + else{ + spin_unlock_irqrestore(&ieee->lock, flags); + return 0; + } + } +#endif + /* Save source and destination addresses */ + memcpy(dest, skb->data, ETH_ALEN); + memcpy(src, skb->data+ETH_ALEN, ETH_ALEN); + +#ifdef ENABLE_AMSDU + if(ieee->iw_mode == IW_MODE_ADHOC) + { + p_sta = GetStaInfo(ieee, dest); + if(p_sta) { + if(p_sta->htinfo.bEnableHT) + bIsSptAmsdu = true; + } + }else if(ieee->iw_mode == IW_MODE_INFRA) { + bIsSptAmsdu = true; + }else + bIsSptAmsdu = true; + bIsSptAmsdu = (bIsSptAmsdu && ieee->pHTInfo->bCurrent_AMSDU_Support && qos_actived); + + tcb_desc_skb = (pcb_desc)(skb->cb + MAX_DEV_ADDR_SIZE); + if(bIsSptAmsdu) { + if(!tcb_desc_skb->bFromAggrQ) + { + if(qos_actived) + { + queue_index = UP2AC(skb->priority); + } else { + queue_index = WME_AC_BE; + } + + if ((skb_queue_len(&ieee->skb_aggQ[queue_index]) != 0)|| +#if defined RTL8192SE || defined RTL8192CE + (ieee->get_nic_desc_num(ieee->dev,queue_index)) > 1|| +#else + (!ieee->check_nic_enough_desc(ieee->dev,queue_index))|| +#endif + (ieee->queue_stop) || + (ieee->amsdu_in_process)) + { + /* insert the skb packet to the Aggregation queue */ + skb_queue_tail(&ieee->skb_aggQ[queue_index], skb); + spin_unlock_irqrestore(&ieee->lock, flags); + return 0; + } + } + else + { + if(tcb_desc_skb->bAMSDU) + IsAmsdu = true; + + ieee->amsdu_in_process = false; + } + } +#endif + memset(skb->cb, 0, sizeof(skb->cb)); + ether_type = ntohs(((struct ethhdr *)skb->data)->h_proto); + + if(ieee->iw_mode == IW_MODE_MONITOR) + { + txb = rtllib_alloc_txb(1, skb->len, GFP_ATOMIC); + if (unlikely(!txb)) { + printk(KERN_WARNING "%s: Could not allocate TXB\n", + ieee->dev->name); + goto failed; + } + + txb->encrypted = 0; + txb->payload_size = skb->len; + memcpy(skb_put(txb->fragments[0],skb->len), skb->data, skb->len); + + goto success; + } + + if (skb->len > 282){ + if (ETH_P_IP == ether_type) { + const struct iphdr *ip = (struct iphdr *)((u8 *)skb->data+14); + if (IPPROTO_UDP == ip->protocol) { + struct udphdr *udp = (struct udphdr *)((u8 *)ip + (ip->ihl << 2)); + if(((((u8 *)udp)[1] == 68) && (((u8 *)udp)[3] == 67)) || + ((((u8 *)udp)[1] == 67) && (((u8 *)udp)[3] == 68))) { + printk("DHCP pkt src port:%d, dest port:%d!!\n", ((u8 *)udp)[1],((u8 *)udp)[3]); + + bdhcp = true; +#ifdef _RTL8192_EXT_PATCH_ + ieee->LPSDelayCnt = 200; +#else + ieee->LPSDelayCnt = 200; +#endif + } + } + }else if(ETH_P_ARP == ether_type){ + printk("=================>DHCP Protocol start tx ARP pkt!!\n"); + bdhcp = true; + ieee->LPSDelayCnt = ieee->current_network.tim.tim_count; + + + } + } + + skb->priority = rtllib_classify(skb, IsAmsdu); +#ifdef RTL8192S_WAPI_SUPPORT + if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable){ + crypt = NULL; + encrypt = !(ether_type == ETH_P_PAE && ieee->ieee802_1x) && + ieee->host_encrypt && ieee->WapiSupport && ieee->wapiInfo.bWapiEnable; + } + else{ +#endif +#ifdef _RTL8192_EXT_PATCH_ + crypt = ieee->sta_crypt[ieee->tx_keyidx]; +#else + crypt = ieee->crypt[ieee->tx_keyidx]; +#endif + encrypt = !(ether_type == ETH_P_PAE && ieee->ieee802_1x) && + ieee->host_encrypt && crypt && crypt->ops; +#ifdef RTL8192S_WAPI_SUPPORT + } +#endif + if (!encrypt && ieee->ieee802_1x && + ieee->drop_unencrypted && ether_type != ETH_P_PAE) { + stats->tx_dropped++; + goto success; + } + #ifdef CONFIG_RTLLIB_DEBUG + if (crypt && !encrypt && ether_type == ETH_P_PAE) { + struct eapol *eap = (struct eapol *)(skb->data + + sizeof(struct ethhdr) - SNAP_SIZE - sizeof(u16)); + RTLLIB_DEBUG_EAP("TX: IEEE 802.11 EAPOL frame: %s\n", + eap_get_type(eap->type)); + } + #endif + + /* Advance the SKB to the start of the payload */ + skb_pull(skb, sizeof(struct ethhdr)); + + /* Determine total amount of storage required for TXB packets */ +#ifdef ENABLE_AMSDU + if(!IsAmsdu) + bytes = skb->len + SNAP_SIZE + sizeof(u16); + else + bytes = skb->len; +#else + bytes = skb->len + SNAP_SIZE + sizeof(u16); +#endif + + if (encrypt) + fc = RTLLIB_FTYPE_DATA | RTLLIB_FCTL_WEP; + else + fc = RTLLIB_FTYPE_DATA; + + if(qos_actived) + fc |= RTLLIB_STYPE_QOS_DATA; + else + fc |= RTLLIB_STYPE_DATA; + +#ifdef _RTL8192_EXT_PATCH_ + if ((ieee->iw_mode == IW_MODE_INFRA) + || (ieee->iw_mode == IW_MODE_MESH) ) +#else + if (ieee->iw_mode == IW_MODE_INFRA) +#endif + { + fc |= RTLLIB_FCTL_TODS; + /* To DS: Addr1 = BSSID, Addr2 = SA, + Addr3 = DA */ + memcpy(&header.addr1, ieee->current_network.bssid, ETH_ALEN); + memcpy(&header.addr2, &src, ETH_ALEN); + if(IsAmsdu) + memcpy(&header.addr3, ieee->current_network.bssid, ETH_ALEN); + else + memcpy(&header.addr3, &dest, ETH_ALEN); + } else if (ieee->iw_mode == IW_MODE_ADHOC) { + /* not From/To DS: Addr1 = DA, Addr2 = SA, + Addr3 = BSSID */ + memcpy(&header.addr1, dest, ETH_ALEN); + memcpy(&header.addr2, src, ETH_ALEN); + memcpy(&header.addr3, ieee->current_network.bssid, ETH_ALEN); + } + + bIsMulticast = is_broadcast_ether_addr(header.addr1) ||is_multicast_ether_addr(header.addr1); + + header.frame_ctl = cpu_to_le16(fc); + + /* Determine fragmentation size based on destination (multicast + * and broadcast are not fragmented) */ + if (bIsMulticast) { + frag_size = MAX_FRAG_THRESHOLD; + qos_ctl |= QOS_CTL_NOTCONTAIN_ACK; + } + else { +#ifdef ENABLE_AMSDU + if(bIsSptAmsdu) { + if(ieee->iw_mode == IW_MODE_ADHOC) { + if(p_sta) + frag_size = p_sta->htinfo.AMSDU_MaxSize; + else + frag_size = ieee->pHTInfo->nAMSDU_MaxSize; + } + else + frag_size = ieee->pHTInfo->nAMSDU_MaxSize; + qos_ctl = 0; + } + else +#endif + { + frag_size = ieee->fts; + qos_ctl = 0; + } + } + + if(qos_actived) + { + hdr_len = RTLLIB_3ADDR_LEN + 2; + + /* in case we are a client verify acm is not set for this ac */ + while (unlikely(ieee->wmm_acm & (0x01 << skb->priority))) { + printk("skb->priority = %x\n", skb->priority); + if (wme_downgrade_ac(skb)) { + break; + } + printk("converted skb->priority = %x\n", skb->priority); + } + qos_ctl |= skb->priority; +#ifdef ENABLE_AMSDU + if(IsAmsdu) + { + qos_ctl |= QOS_CTL_AMSDU_PRESENT; + } + header.qos_ctl = cpu_to_le16(qos_ctl); +#else + header.qos_ctl = cpu_to_le16(qos_ctl & RTLLIB_QOS_TID); +#endif + } else { + hdr_len = RTLLIB_3ADDR_LEN; + } + /* Determine amount of payload per fragment. Regardless of if + * this stack is providing the full 802.11 header, one will + * eventually be affixed to this fragment -- so we must account for + * it when determining the amount of payload space. */ + bytes_per_frag = frag_size - hdr_len; + if (ieee->config & + (CFG_RTLLIB_COMPUTE_FCS | CFG_RTLLIB_RESERVE_FCS)) + bytes_per_frag -= RTLLIB_FCS_LEN; + + /* Each fragment may need to have room for encryptiong pre/postfix */ + if (encrypt) { +#ifdef RTL8192S_WAPI_SUPPORT + if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable) + bytes_per_frag -= ieee->wapiInfo.extra_prefix_len + + ieee->wapiInfo.extra_postfix_len; + else +#endif + bytes_per_frag -= crypt->ops->extra_prefix_len + + crypt->ops->extra_postfix_len; + } + /* Number of fragments is the total bytes_per_frag / + * payload_per_fragment */ + nr_frags = bytes / bytes_per_frag; + bytes_last_frag = bytes % bytes_per_frag; + if (bytes_last_frag) + nr_frags++; + else + bytes_last_frag = bytes_per_frag; + + /* When we allocate the TXB we allocate enough space for the reserve + * and full fragment bytes (bytes_per_frag doesn't include prefix, + * postfix, header, FCS, etc.) */ + txb = rtllib_alloc_txb(nr_frags, frag_size + ieee->tx_headroom, GFP_ATOMIC); + if (unlikely(!txb)) { + printk(KERN_WARNING "%s: Could not allocate TXB\n", + ieee->dev->name); + goto failed; + } + txb->encrypted = encrypt; + txb->payload_size = bytes; + + if(qos_actived) + { + txb->queue_index = UP2AC(skb->priority); + } else { + txb->queue_index = WME_AC_BE;; + } + + for (i = 0; i < nr_frags; i++) { + skb_frag = txb->fragments[i]; + tcb_desc = (cb_desc *)(skb_frag->cb + MAX_DEV_ADDR_SIZE); +#ifdef _RTL8192_EXT_PATCH_ + tcb_desc->mesh_pkt = 0; + if(ieee->iw_mode == IW_MODE_ADHOC) + tcb_desc->badhoc = 1; + else + tcb_desc->badhoc = 0; +#endif + if(qos_actived){ + skb_frag->priority = skb->priority; + tcb_desc->queue_index = UP2AC(skb->priority); + } else { + skb_frag->priority = WME_AC_BE; + tcb_desc->queue_index = WME_AC_BE; + } + skb_reserve(skb_frag, ieee->tx_headroom); + + if (encrypt){ + if (ieee->hwsec_active) + tcb_desc->bHwSec = 1; + else + tcb_desc->bHwSec = 0; +#ifdef RTL8192S_WAPI_SUPPORT + if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable) + skb_reserve(skb_frag, ieee->wapiInfo.extra_prefix_len); + else +#endif + skb_reserve(skb_frag, crypt->ops->extra_prefix_len); + } + else + { + tcb_desc->bHwSec = 0; + } + frag_hdr = (struct rtllib_hdr_3addrqos *)skb_put(skb_frag, hdr_len); + memcpy(frag_hdr, &header, hdr_len); + + /* If this is not the last fragment, then add the MOREFRAGS + * bit to the frame control */ + if (i != nr_frags - 1) { + frag_hdr->frame_ctl = cpu_to_le16( + fc | RTLLIB_FCTL_MOREFRAGS); + bytes = bytes_per_frag; + + } else { + /* The last fragment takes the remaining length */ + bytes = bytes_last_frag; + } + if((qos_actived) && (!bIsMulticast)) + { + frag_hdr->seq_ctl = rtllib_query_seqnum(ieee, skb_frag, header.addr1); + frag_hdr->seq_ctl = cpu_to_le16(frag_hdr->seq_ctl<<4 | i); + } else { + frag_hdr->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0]<<4 | i); + } + /* Put a SNAP header on the first fragment */ +#ifdef ENABLE_AMSDU + if ((i == 0) && (!IsAmsdu)) +#else + if (i == 0) +#endif + { + rtllib_put_snap( + skb_put(skb_frag, SNAP_SIZE + sizeof(u16)), + ether_type); + bytes -= SNAP_SIZE + sizeof(u16); + } + + memcpy(skb_put(skb_frag, bytes), skb->data, bytes); + + /* Advance the SKB... */ + skb_pull(skb, bytes); + + /* Encryption routine will move the header forward in order + * to insert the IV between the header and the payload */ + if (encrypt) { +#ifdef RTL8192S_WAPI_SUPPORT + if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable){ + if(SecSMS4HeaderFillIV(ieee, skb_frag) == 0){ + SecSWSMS4Encryption(ieee, skb_frag); + } else { + spin_unlock_irqrestore(&ieee->lock, flags); + dev_kfree_skb_any(skb); + rtllib_txb_free(txb); + return 0; + } + } + else +#endif + { + +#ifdef _RTL8192_EXT_PATCH_ + rtllib_encrypt_fragment(ieee, skb_frag, hdr_len, 0, 0); +#else + rtllib_encrypt_fragment(ieee, skb_frag, hdr_len); +#endif + } + } + if (ieee->config & + (CFG_RTLLIB_COMPUTE_FCS | CFG_RTLLIB_RESERVE_FCS)) + skb_put(skb_frag, 4); + } + + if((qos_actived) && (!bIsMulticast)) + { + if (ieee->seq_ctrl[UP2AC(skb->priority) + 1] == 0xFFF) + ieee->seq_ctrl[UP2AC(skb->priority) + 1] = 0; + else + ieee->seq_ctrl[UP2AC(skb->priority) + 1]++; + } else { + if (ieee->seq_ctrl[0] == 0xFFF) + ieee->seq_ctrl[0] = 0; + else + ieee->seq_ctrl[0]++; + } + }else{ + if (unlikely(skb->len < sizeof(struct rtllib_hdr_3addr))) { + printk(KERN_WARNING "%s: skb too small (%d).\n", + ieee->dev->name, skb->len); + goto success; + } + + txb = rtllib_alloc_txb(1, skb->len, GFP_ATOMIC); + if(!txb){ + printk(KERN_WARNING "%s: Could not allocate TXB\n", + ieee->dev->name); + goto failed; + } + + txb->encrypted = 0; + txb->payload_size = skb->len; + memcpy(skb_put(txb->fragments[0],skb->len), skb->data, skb->len); + } + + success: + if (txb) + { +#if 1 + cb_desc *tcb_desc = (cb_desc *)(txb->fragments[0]->cb + MAX_DEV_ADDR_SIZE); + tcb_desc->bTxEnableFwCalcDur = 1; + tcb_desc->priority = skb->priority; + + if(ether_type == ETH_P_PAE) { + if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) + { + tcb_desc->data_rate = MgntQuery_TxRateExcludeCCKRates(ieee); + tcb_desc->bTxDisableRateFallBack = false; + }else{ + tcb_desc->data_rate = ieee->basic_rate; + tcb_desc->bTxDisableRateFallBack = 1; + } + + + tcb_desc->RATRIndex = 7; + tcb_desc->bTxUseDriverAssingedRate = 1; + } else { + if (is_multicast_ether_addr(header.addr1)) + tcb_desc->bMulticast = 1; + if (is_broadcast_ether_addr(header.addr1)) + tcb_desc->bBroadcast = 1; +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) || defined RTL8192CE + if ( tcb_desc->bMulticast || tcb_desc->bBroadcast){ + rtllib_txrate_selectmode(ieee, tcb_desc, p_sta); + tcb_desc->data_rate = ieee->basic_rate; + } + else + { + if(ieee->iw_mode == IW_MODE_ADHOC) + { + u8 is_peer_shortGI_40M = 0; + u8 is_peer_shortGI_20M = 0; + u8 is_peer_BW_40M = 0; + p_sta = GetStaInfo(ieee, header.addr1); + if(NULL == p_sta) + { + rtllib_txrate_selectmode(ieee, tcb_desc, p_sta); + tcb_desc->data_rate = ieee->rate; + } + else + { + rtllib_txrate_selectmode(ieee, tcb_desc, p_sta); + tcb_desc->data_rate = CURRENT_RATE(p_sta->wireless_mode, p_sta->CurDataRate, p_sta->htinfo.HTHighestOperaRate); + is_peer_shortGI_40M = p_sta->htinfo.bCurShortGI40MHz; + is_peer_shortGI_20M = p_sta->htinfo.bCurShortGI20MHz; + is_peer_BW_40M = p_sta->htinfo.bCurTxBW40MHz; + } + rtllib_qurey_ShortPreambleMode(ieee, tcb_desc); + rtllib_tx_query_agg_cap(ieee, txb->fragments[0], tcb_desc); + rtllib_ibss_query_HTCapShortGI(ieee, tcb_desc,is_peer_shortGI_40M,is_peer_shortGI_20M); + rtllib_ibss_query_BandwidthMode(ieee, tcb_desc,is_peer_BW_40M); + rtllib_query_protectionmode(ieee, tcb_desc, txb->fragments[0]); + } + else { + rtllib_txrate_selectmode(ieee, tcb_desc, p_sta); + tcb_desc->data_rate = CURRENT_RATE(ieee->mode, ieee->rate, ieee->HTCurrentOperaRate); + if(bdhcp == true){ + if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) { + tcb_desc->data_rate = MGN_1M; + tcb_desc->bTxDisableRateFallBack = false; + }else{ + tcb_desc->data_rate = MGN_1M; + tcb_desc->bTxDisableRateFallBack = 1; + } + + tcb_desc->RATRIndex = 7; + tcb_desc->bTxUseDriverAssingedRate = 1; + tcb_desc->bdhcp = 1; + } + rtllib_qurey_ShortPreambleMode(ieee, tcb_desc); + rtllib_tx_query_agg_cap(ieee, txb->fragments[0], tcb_desc); + rtllib_query_HTCapShortGI(ieee, tcb_desc); + rtllib_query_BandwidthMode(ieee, tcb_desc); + rtllib_query_protectionmode(ieee, tcb_desc, txb->fragments[0]); +#ifdef _RTL8192_EXT_PATCH_ + ieee->LinkDetectInfo.NumTxUnicastOkInPeriod ++; +#endif + } + } +#else + rtllib_txrate_selectmode(ieee, tcb_desc); + if ( tcb_desc->bMulticast || tcb_desc->bBroadcast) + tcb_desc->data_rate = ieee->basic_rate; + else + tcb_desc->data_rate = CURRENT_RATE(ieee->mode, ieee->rate, ieee->HTCurrentOperaRate); + + if(bdhcp == true){ + if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) + { + tcb_desc->data_rate = MgntQuery_TxRateExcludeCCKRates(ieee); + tcb_desc->bTxDisableRateFallBack = false; + }else{ + tcb_desc->data_rate = MGN_1M; + tcb_desc->bTxDisableRateFallBack = 1; + } + + + tcb_desc->RATRIndex = 7; + tcb_desc->bTxUseDriverAssingedRate = 1; + tcb_desc->bdhcp = 1; + } + + rtllib_qurey_ShortPreambleMode(ieee, tcb_desc); + rtllib_tx_query_agg_cap(ieee, txb->fragments[0], tcb_desc); + rtllib_query_HTCapShortGI(ieee, tcb_desc); + rtllib_query_BandwidthMode(ieee, tcb_desc); + rtllib_query_protectionmode(ieee, tcb_desc, txb->fragments[0]); +#endif + } +#endif + } + spin_unlock_irqrestore(&ieee->lock, flags); + dev_kfree_skb_any(skb); + if (txb) { + if (ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE){ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) + dev->stats.tx_packets++; + dev->stats.tx_bytes += txb->payload_size; +#endif + rtllib_softmac_xmit(txb, ieee); + }else{ + if ((*ieee->hard_start_xmit)(txb, dev) == 0) { + stats->tx_packets++; + stats->tx_bytes += txb->payload_size; + return 0; + } + rtllib_txb_free(txb); + } + } + + return 0; + + failed: + spin_unlock_irqrestore(&ieee->lock, flags); + netif_stop_queue(dev); + stats->tx_errors++; + return 1; + +} +int rtllib_xmit(struct sk_buff *skb, struct net_device *dev) +{ + memset(skb->cb, 0, sizeof(skb->cb)); + return rtllib_xmit_inter(skb, dev); +} + + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(rtllib_txb_free); +#ifdef ENABLE_AMSDU +EXPORT_SYMBOL_RSL(rtllib_xmit_inter); +EXPORT_SYMBOL_RSL(AMSDU_Aggregation); +EXPORT_SYMBOL_RSL(AMSDU_GetAggregatibleList); +#endif +#ifdef _RTL8192_EXT_PATCH_ +EXPORT_SYMBOL_RSL(rtllib_query_seqnum); +EXPORT_SYMBOL_RSL(rtllib_alloc_txb); +EXPORT_SYMBOL_RSL(rtllib_encrypt_fragment); +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/license +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/license @@ -0,0 +1,339 @@ + +"This software program is licensed subject to the GNU General Public License +(GPL). Version 2, June 1991, available at + + * Copyright (c) 2002-2003, Jouni Malinen + * + * Adaption to a generic IEEE 802.11 stack by James Ketrenos + * + * + * Copyright (c) 2004, Intel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See README and COPYING for + * more details. + */ + +/* + * This file defines the interface to the rtllib crypto module. + */ +#ifndef RTLLIB_CRYPT_H +#define RTLLIB_CRYPT_H + +#include + +struct rtllib_crypto_ops { + const char *name; + + /* init new crypto context (e.g., allocate private data space, + * select IV, etc.); returns NULL on failure or pointer to allocated + * private data on success */ + void * (*init)(int keyidx); + + /* deinitialize crypto context and free allocated private data */ + void (*deinit)(void *priv); + + /* encrypt/decrypt return < 0 on error or >= 0 on success. The return + * value from decrypt_mpdu is passed as the keyidx value for + * decrypt_msdu. skb must have enough head and tail room for the + * encryption; if not, error will be returned; these functions are + * called for all MPDUs (i.e., fragments). + */ + int (*encrypt_mpdu)(struct sk_buff *skb, int hdr_len, void *priv); + int (*decrypt_mpdu)(struct sk_buff *skb, int hdr_len, void *priv); + + /* These functions are called for full MSDUs, i.e. full frames. + * These can be NULL if full MSDU operations are not needed. */ + int (*encrypt_msdu)(struct sk_buff *skb, int hdr_len, void *priv); + int (*decrypt_msdu)(struct sk_buff *skb, int keyidx, int hdr_len, + void *priv, struct rtllib_device* ieee); + + int (*set_key)(void *key, int len, u8 *seq, void *priv); + int (*get_key)(void *key, int len, u8 *seq, void *priv); + + /* procfs handler for printing out key information and possible + * statistics */ + char * (*print_stats)(char *p, void *priv); + + /* maximum number of bytes added by encryption; encrypt buf is + * allocated with extra_prefix_len bytes, copy of in_buf, and + * extra_postfix_len; encrypt need not use all this space, but + * the result must start at the beginning of the buffer and correct + * length must be returned */ + int extra_prefix_len, extra_postfix_len; + + struct module *owner; +}; + +struct rtllib_crypt_data { + struct list_head list; /* delayed deletion list */ + struct rtllib_crypto_ops *ops; + void *priv; + atomic_t refcnt; +}; + +int rtllib_register_crypto_ops(struct rtllib_crypto_ops *ops); +int rtllib_unregister_crypto_ops(struct rtllib_crypto_ops *ops); +struct rtllib_crypto_ops * rtllib_get_crypto_ops(const char *name); +void rtllib_crypt_deinit_entries(struct rtllib_device *, int); +void rtllib_crypt_deinit_handler(unsigned long); +void rtllib_crypt_delayed_deinit(struct rtllib_device *ieee, + struct rtllib_crypt_data **crypt); +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) +#define offset_in_page(p) ((unsigned long)(p) & ~PAGE_MASK) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,31)) +#define crypto_alloc_tfm crypto_alloc_tfm_rsl +#define crypto_free_tfm crypto_free_tfm_rsl +#endif + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/crypto_compat.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/crypto_compat.h @@ -0,0 +1,88 @@ +/* + * Header file to maintain compatibility among different kernel versions. + * + * Copyright (c) 2004-2006 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See README and COPYING for + * more details. + */ + +#include + +static inline int crypto_cipher_encrypt(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + return tfm->crt_cipher.cit_encrypt(tfm, dst, src, nbytes); +} + + +static inline int crypto_cipher_decrypt(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + return tfm->crt_cipher.cit_decrypt(tfm, dst, src, nbytes); +} + +#if 0 +/* + * crypto_free_tfm - Free crypto transform + * @tfm: Transform to free + * + * crypto_free_tfm() frees up the transform and any associated resources, + * then drops the refcount on the associated algorithm. + */ +void crypto_free_tfm(struct crypto_tfm *tfm) +{ + struct crypto_alg *alg; + int size; + + if (unlikely(!tfm)) + return; + + alg = tfm->__crt_alg; + size = sizeof(*tfm) + alg->cra_ctxsize; + + if (alg->cra_exit) + alg->cra_exit(tfm); + crypto_exit_ops(tfm); + crypto_mod_put(alg); + memset(tfm, 0, size); + kfree(tfm); +} + +#endif +#if 1 + struct crypto_tfm *crypto_alloc_tfm(const char *name, u32 flags) +{ + struct crypto_tfm *tfm = NULL; + int err; + printk("call crypto_alloc_tfm!!!\n"); + do { + struct crypto_alg *alg; + + alg = crypto_alg_mod_lookup(name, 0, CRYPTO_ALG_ASYNC); + err = PTR_ERR(alg); + if (IS_ERR(alg)) + continue; + + tfm = __crypto_alloc_tfm(alg, flags); + err = 0; + if (IS_ERR(tfm)) { + crypto_mod_put(alg); + err = PTR_ERR(tfm); + tfm = NULL; + } + } while (err == -EAGAIN && !signal_pending(current)); + + return tfm; +} +#endif + + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib_rx.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib_rx.c @@ -0,0 +1,5322 @@ +/* + * Original code based Host AP (software wireless LAN access point) driver + * for Intersil Prism2/2.5/3 - hostap.o module, common routines + * + * Copyright (c) 2001-2002, SSH Communications Security Corp and Jouni Malinen + * + * Copyright (c) 2002-2003, Jouni Malinen + * Copyright (c) 2004, Intel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See README and COPYING for + * more details. + ****************************************************************************** + + Few modifications for Realtek's Wi-Fi drivers by + Andrea Merello + + A special thanks goes to Realtek for their support ! + +******************************************************************************/ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "rtllib.h" +#ifdef ENABLE_DOT11D +#include "dot11d.h" +#endif + +#if defined(RTLLIB_RADIOTAP) && (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,10)) +#include +#endif + +#if defined CONFIG_CFG_80211 +#include + +struct ieee80211_channel *rtllib_get_channel(struct wiphy *wiphy, + int freq) +{ + enum ieee80211_band band; + struct ieee80211_supported_band *sband; + int i; + + for (band = 0; band < IEEE80211_NUM_BANDS; band++) { + sband = wiphy->bands[band]; + + if (!sband) + continue; + + for (i = 0; i < sband->n_channels; i++) { + if (sband->channels[i].center_freq == freq) + return &sband->channels[i]; + } + } + + return NULL; +} + +int rtllib_channel_to_frequency(int chan) +{ + if (chan < 14) + return 2407 + chan * 5; + + if (chan == 14) + return 2484; + + /* FIXME: 802.11j 17.3.8.3.2 */ + return (chan + 1000) * 5; +} + +u32 rtllib_parse_elems_crc(u8 *start, size_t len, + struct ieee802_11_elems *elems, + u64 filter, u32 crc) +{ + size_t left = len; + u8 *pos = start; + bool calc_crc = filter != 0; + + memset(elems, 0, sizeof(*elems)); + elems->ie_start = start; + elems->total_len = len; + + while (left >= 2) { + u8 id, elen; + + id = *pos++; + elen = *pos++; + left -= 2; + + if (elen > left) + break; + + if (calc_crc && id < 64 && (filter & BIT(id))) + crc = crc32_be(crc, pos - 2, elen + 2); + + switch (id) { + case WLAN_EID_SSID: + elems->ssid = pos; + elems->ssid_len = elen; + break; + case WLAN_EID_SUPP_RATES: + elems->supp_rates = pos; + elems->supp_rates_len = elen; + break; + case WLAN_EID_FH_PARAMS: + elems->fh_params = pos; + elems->fh_params_len = elen; + break; + case WLAN_EID_DS_PARAMS: + elems->ds_params = pos; + elems->ds_params_len = elen; + break; + case WLAN_EID_CF_PARAMS: + elems->cf_params = pos; + elems->cf_params_len = elen; + break; + case WLAN_EID_TIM: + if (elen >= sizeof(struct ieee80211_tim_ie)) { + elems->tim = (void *)pos; + elems->tim_len = elen; + } + break; + case WLAN_EID_IBSS_PARAMS: + elems->ibss_params = pos; + elems->ibss_params_len = elen; + break; + case WLAN_EID_CHALLENGE: + elems->challenge = pos; + elems->challenge_len = elen; + break; + case WLAN_EID_VENDOR_SPECIFIC: + if (elen >= 4 && pos[0] == 0x00 && pos[1] == 0x50 && + pos[2] == 0xf2) { + /* Microsoft OUI (00:50:F2) */ + + if (calc_crc) + crc = crc32_be(crc, pos - 2, elen + 2); + + if (pos[3] == 1) { + /* OUI Type 1 - WPA IE */ + elems->wpa = pos; + elems->wpa_len = elen; + } else if (elen >= 5 && pos[3] == 2) { + /* OUI Type 2 - WMM IE */ + if (pos[4] == 0) { + elems->wmm_info = pos; + elems->wmm_info_len = elen; + } else if (pos[4] == 1) { + elems->wmm_param = pos; + elems->wmm_param_len = elen; + } + } + } + break; + case WLAN_EID_RSN: + elems->rsn = pos; + elems->rsn_len = elen; + break; + case WLAN_EID_ERP_INFO: + elems->erp_info = pos; + elems->erp_info_len = elen; + break; + case WLAN_EID_EXT_SUPP_RATES: + elems->ext_supp_rates = pos; + elems->ext_supp_rates_len = elen; + break; + case WLAN_EID_HT_CAPABILITY: + if (elen >= sizeof(struct ieee80211_ht_cap)) + elems->ht_cap_elem = (void *)pos; + break; + case WLAN_EID_HT_INFORMATION: + if (elen >= sizeof(struct ieee80211_ht_info)) + elems->ht_info_elem = (void *)pos; + break; + case WLAN_EID_MESH_ID: + elems->mesh_id = pos; + elems->mesh_id_len = elen; + break; + case WLAN_EID_MESH_CONFIG: + elems->mesh_config = pos; + elems->mesh_config_len = elen; + break; + case WLAN_EID_PEER_LINK: + elems->peer_link = pos; + elems->peer_link_len = elen; + break; + case WLAN_EID_PREQ: + elems->preq = pos; + elems->preq_len = elen; + break; + case WLAN_EID_PREP: + elems->prep = pos; + elems->prep_len = elen; + break; + case WLAN_EID_PERR: + elems->perr = pos; + elems->perr_len = elen; + break; + case WLAN_EID_CHANNEL_SWITCH: + elems->ch_switch_elem = pos; + elems->ch_switch_elem_len = elen; + break; + case WLAN_EID_QUIET: + if (!elems->quiet_elem) { + elems->quiet_elem = pos; + elems->quiet_elem_len = elen; + } + elems->num_of_quiet_elem++; + break; + case WLAN_EID_COUNTRY: + elems->country_elem = pos; + elems->country_elem_len = elen; + break; + case WLAN_EID_PWR_CONSTRAINT: + elems->pwr_constr_elem = pos; + elems->pwr_constr_elem_len = elen; + break; + case WLAN_EID_TIMEOUT_INTERVAL: + elems->timeout_int = pos; + elems->timeout_int_len = elen; + break; + default: + break; + } + + left -= elen; + pos += elen; + } + + return crc; +} + +void rtllib_parse_elems(u8 *start, size_t len, + struct ieee802_11_elems *elems) +{ + rtllib_parse_elems_crc(start, len, elems, 0, 0); +} + +void ieee80211_scan_rx(struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_status) +{ + struct rtllib_hdr_4addr *header = (struct rtllib_hdr_4addr *)skb->data ; + struct ieee80211_mgmt *mgmt; + struct ieee80211_bss *bss; + u8 *elements; + struct ieee80211_channel *channel; + size_t baselen; + int freq; + __le16 fc; + bool presp, beacon = false; + struct ieee802_11_elems elems; + s32 signal = 0; + + if (skb->len < 2) + return; + + mgmt = (struct ieee80211_mgmt *) skb->data; + fc = mgmt->frame_control; + + if (skb->len < 24) + return; + + presp = (WLAN_FC_GET_STYPE(header->frame_ctl) == RTLLIB_STYPE_PROBE_RESP); + if (presp) { + /* ignore ProbeResp to foreign address */ + if (memcmp(mgmt->da, ieee->dev->dev_addr, ETH_ALEN)) + return ;; + + presp = true; + elements = mgmt->u.probe_resp.variable; + baselen = offsetof(struct ieee80211_mgmt, u.probe_resp.variable); + } else { + beacon = (WLAN_FC_GET_STYPE(header->frame_ctl) == RTLLIB_STYPE_BEACON); + baselen = offsetof(struct ieee80211_mgmt, u.beacon.variable); + elements = mgmt->u.beacon.variable; + } + + if (!presp && !beacon) + return; + + if (baselen > skb->len) + return; + + rtllib_parse_elems(elements, skb->len - baselen, &elems); + + if (elems.ds_params && elems.ds_params_len == 1) + freq = rtllib_channel_to_frequency(elems.ds_params[0]); + else + return; + + channel = rtllib_get_channel(ieee->wdev.wiphy, freq); + + if (!channel || channel->flags & IEEE80211_CHAN_DISABLED) + return; + + signal = rx_status->signal * 100; + + bss = (void *)cfg80211_inform_bss_frame(ieee->wdev.wiphy, channel, + mgmt, skb->len, signal, GFP_ATOMIC); + + return; +} +#endif + + +#if defined(RTLLIB_RADIOTAP) && (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,10)) +static int rtllib_rx_radiotap_len(struct rtllib_device *ieee, struct rtllib_rx_stats *rx_status) +{ + int len; + + /* always present fields */ + len = sizeof(struct ieee80211_radiotap_header) + + 8 + /* TSFT */ + 1 + /* FLAGS */ + 1 + /* RATE */ + 2 + /* CHANNEL IN MHZ */ + 2 + /* CHANNEL BITFIELD */ + 1 + /* HW SIGNAL DBM */ + 1 + /* HW NOISE DBM */ + 1; /* ANTENNA NUMBER */ + + + if (len & 1) /* padding for RX_FLAGS if necessary */ + len++; + + /* make sure radiotap starts at a naturally aligned address */ + if (len % 8) + len = roundup(len, 8); + + return len; +} + +static void rtllib_add_rx_radiotap_header(struct rtllib_device *ieee, + struct sk_buff *skb, int rtap_len, struct rtllib_rx_stats *rx_status) +{ + struct ieee80211_radiotap_header *rthdr; + unsigned char *pos; + printk("add header!\n"); + rthdr = (struct ieee80211_radiotap_header *)skb_push(skb, rtap_len); + memset(rthdr, 0, rtap_len); + + rthdr->it_version = PKTHDR_RADIOTAP_VERSION; + rthdr->it_pad = 0; + rthdr->it_len = cpu_to_le16(rtap_len); + /* radiotap header, set always present flags */ + rthdr->it_present = cpu_to_le32( + (1 << IEEE80211_RADIOTAP_TSFT) | + (1 << IEEE80211_RADIOTAP_FLAGS) | + (1 << IEEE80211_RADIOTAP_RATE) | + (1 << IEEE80211_RADIOTAP_CHANNEL) | + (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | + (1 << IEEE80211_RADIOTAP_DBM_ANTNOISE) | + (1 << IEEE80211_RADIOTAP_ANTENNA)); + + pos = (unsigned char *)(rthdr+1); + /* the order of the following fields is important */ + /* IEEE80211_RADIOTAP_TSFT */ + *(__le64 *)pos = cpu_to_le64(rx_status->TimeStampLow); + pos += 8; + + /* IEEE80211_RADIOTAP_FLAGS */ + if (rx_status->bCRC) + *pos |= IEEE80211_RADIOTAP_F_BADFCS; + if (rx_status->bShortPreamble) + *pos |= IEEE80211_RADIOTAP_F_SHORTPRE; + pos++; + + /* IEEE80211_RADIOTAP_RATE */ + *pos = rx_status->rate / 5; + pos++; + + /* IEEE80211_RADIOTAP_CHANNEL */ + *(__le16 *)pos = cpu_to_le16(rx_status->received_channel); + pos += 2; +#if 0 + if (status->band == IEEE80211_BAND_5GHZ) + *(__le16 *)pos = cpu_to_le16(IEEE80211_CHAN_OFDM | + IEEE80211_CHAN_5GHZ); + else if (rate->flags & IEEE80211_RATE_ERP_G) + *(__le16 *)pos = cpu_to_le16(IEEE80211_CHAN_OFDM | + IEEE80211_CHAN_2GHZ); + else + *(__le16 *)pos = cpu_to_le16(IEEE80211_CHAN_CCK | + IEEE80211_CHAN_2GHZ); +#endif + pos += 2; + + + /* IEEE80211_RADIOTAP_DBM_ANTSIGNAL */ + *pos = rx_status->RxPower; + pos++; + + /* IEEE80211_RADIOTAP_DBM_ANTNOISE */ + *pos = rx_status->noise; + pos++; + + /* IEEE80211_RADIOTAP_ANTENNA */ + *pos = rx_status->Antenna; + pos++; + + /* IEEE80211_RADIOTAP_DB_ANTNOISE is not used */ + + /* IEEE80211_RADIOTAP_RX_FLAGS */ + /* ensure 2 byte alignment for the 2 byte field as required */ +#if 0 + if ((pos - (unsigned char *)rthdr) & 1) + pos++; + if (status->flag & RX_FLAG_FAILED_PLCP_CRC) + *(__le16 *)pos |= cpu_to_le16(IEEE80211_RADIOTAP_F_RX_BADPLCP); + pos += 2; +#endif +} +#endif + +static inline void rtllib_monitor_rx(struct rtllib_device *ieee, + struct sk_buff *skb,struct rtllib_rx_stats *rx_status, + size_t hdr_length) +{ + +#if defined(RTLLIB_RADIOTAP) && (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,10)) + int needed_headroom = 0; + struct sk_buff *radiotap_skb; + + needed_headroom = rtllib_rx_radiotap_len(ieee, rx_status); + printk("needed_headroom = %d\n", needed_headroom); + radiotap_skb = skb_copy_expand(skb, needed_headroom, 0, GFP_ATOMIC); + dev_kfree_skb(skb); + skb = NULL; + + if (!radiotap_skb) { + return; + } + + rtllib_add_rx_radiotap_header(ieee, radiotap_skb, needed_headroom, rx_status); + radiotap_skb->dev = ieee->dev; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) + skb_reset_mac_header(radiotap_skb); +#else + radiotap_skb->mac.raw = radiotap_skb->data; +#endif + radiotap_skb->ip_summed = CHECKSUM_UNNECESSARY; + radiotap_skb->pkt_type = PACKET_OTHERHOST; + radiotap_skb->protocol = htons(ETH_P_802_2); + memset(radiotap_skb->cb, 0, sizeof(radiotap_skb->cb)); + netif_rx(radiotap_skb); +#else + skb->dev = ieee->dev; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) + skb_reset_mac_header(skb); +#else + skb->mac.raw = skb->data; +#endif + skb_pull(skb, hdr_length); + skb->pkt_type = PACKET_OTHERHOST; + skb->protocol = __constant_htons(ETH_P_80211_RAW); + memset(skb->cb, 0, sizeof(skb->cb)); + netif_rx(skb); +#endif +} + +/* Called only as a tasklet (software IRQ) */ +static struct rtllib_frag_entry * +rtllib_frag_cache_find(struct rtllib_device *ieee, unsigned int seq, + unsigned int frag, u8 tid,u8 *src, u8 *dst) +{ + struct rtllib_frag_entry *entry; + int i; + + for (i = 0; i < RTLLIB_FRAG_CACHE_LEN; i++) { + entry = &ieee->frag_cache[tid][i]; + if (entry->skb != NULL && + time_after(jiffies, entry->first_frag_time + 2 * HZ)) { + RTLLIB_DEBUG_FRAG( + "expiring fragment cache entry " + "seq=%u last_frag=%u\n", + entry->seq, entry->last_frag); + dev_kfree_skb_any(entry->skb); + entry->skb = NULL; + } + + if (entry->skb != NULL && entry->seq == seq && + (entry->last_frag + 1 == frag || frag == -1) && + memcmp(entry->src_addr, src, ETH_ALEN) == 0 && + memcmp(entry->dst_addr, dst, ETH_ALEN) == 0) + return entry; + } + + return NULL; +} + +/* Called only as a tasklet (software IRQ) */ +static struct sk_buff * +rtllib_frag_cache_get(struct rtllib_device *ieee, + struct rtllib_hdr_4addr *hdr) +{ + struct sk_buff *skb = NULL; + u16 fc = le16_to_cpu(hdr->frame_ctl); + u16 sc = le16_to_cpu(hdr->seq_ctl); + unsigned int frag = WLAN_GET_SEQ_FRAG(sc); + unsigned int seq = WLAN_GET_SEQ_SEQ(sc); + struct rtllib_frag_entry *entry; + struct rtllib_hdr_3addrqos *hdr_3addrqos; + struct rtllib_hdr_4addrqos *hdr_4addrqos; + u8 tid; + + if (((fc & RTLLIB_FCTL_DSTODS) == RTLLIB_FCTL_DSTODS)&&RTLLIB_QOS_HAS_SEQ(fc)) { + hdr_4addrqos = (struct rtllib_hdr_4addrqos *)hdr; + tid = le16_to_cpu(hdr_4addrqos->qos_ctl) & RTLLIB_QCTL_TID; + tid = UP2AC(tid); + tid ++; + } else if (RTLLIB_QOS_HAS_SEQ(fc)) { + hdr_3addrqos = (struct rtllib_hdr_3addrqos *)hdr; + tid = le16_to_cpu(hdr_3addrqos->qos_ctl) & RTLLIB_QCTL_TID; + tid = UP2AC(tid); + tid ++; + } else { + tid = 0; + } + + if (frag == 0) { + /* Reserve enough space to fit maximum frame length */ + skb = dev_alloc_skb(ieee->dev->mtu + + sizeof(struct rtllib_hdr_4addr) + + 8 /* LLC */ + + 2 /* alignment */ + + 8 /* WEP */ + + ETH_ALEN /* WDS */ + + (RTLLIB_QOS_HAS_SEQ(fc)?2:0) /* QOS Control */); + if (skb == NULL) + return NULL; + + entry = &ieee->frag_cache[tid][ieee->frag_next_idx[tid]]; + ieee->frag_next_idx[tid]++; + if (ieee->frag_next_idx[tid] >= RTLLIB_FRAG_CACHE_LEN) + ieee->frag_next_idx[tid] = 0; + + if (entry->skb != NULL) + dev_kfree_skb_any(entry->skb); + + entry->first_frag_time = jiffies; + entry->seq = seq; + entry->last_frag = frag; + entry->skb = skb; + memcpy(entry->src_addr, hdr->addr2, ETH_ALEN); + memcpy(entry->dst_addr, hdr->addr1, ETH_ALEN); + } else { + /* received a fragment of a frame for which the head fragment + * should have already been received */ + entry = rtllib_frag_cache_find(ieee, seq, frag, tid,hdr->addr2, + hdr->addr1); + if (entry != NULL) { + entry->last_frag = frag; + skb = entry->skb; + } + } + + return skb; +} + + +/* Called only as a tasklet (software IRQ) */ +static int rtllib_frag_cache_invalidate(struct rtllib_device *ieee, + struct rtllib_hdr_4addr *hdr) +{ + u16 fc = le16_to_cpu(hdr->frame_ctl); + u16 sc = le16_to_cpu(hdr->seq_ctl); + unsigned int seq = WLAN_GET_SEQ_SEQ(sc); + struct rtllib_frag_entry *entry; + struct rtllib_hdr_3addrqos *hdr_3addrqos; + struct rtllib_hdr_4addrqos *hdr_4addrqos; + u8 tid; + + if(((fc & RTLLIB_FCTL_DSTODS) == RTLLIB_FCTL_DSTODS)&&RTLLIB_QOS_HAS_SEQ(fc)) { + hdr_4addrqos = (struct rtllib_hdr_4addrqos *)hdr; + tid = le16_to_cpu(hdr_4addrqos->qos_ctl) & RTLLIB_QCTL_TID; + tid = UP2AC(tid); + tid ++; + } else if (RTLLIB_QOS_HAS_SEQ(fc)) { + hdr_3addrqos = (struct rtllib_hdr_3addrqos *)hdr; + tid = le16_to_cpu(hdr_3addrqos->qos_ctl) & RTLLIB_QCTL_TID; + tid = UP2AC(tid); + tid ++; + } else { + tid = 0; + } + + entry = rtllib_frag_cache_find(ieee, seq, -1, tid,hdr->addr2, + hdr->addr1); + + if (entry == NULL) { + RTLLIB_DEBUG_FRAG( + "could not invalidate fragment cache " + "entry (seq=%u)\n", seq); + return -1; + } + + entry->skb = NULL; + return 0; +} + + + +/* rtllib_rx_frame_mgtmt + * + * Responsible for handling management control frames + * + * Called by rtllib_rx */ +static inline int +rtllib_rx_frame_mgmt(struct rtllib_device *ieee, struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats, u16 type, + u16 stype) +{ + /* On the struct stats definition there is written that + * this is not mandatory.... but seems that the probe + * response parser uses it + */ + struct rtllib_hdr_3addr * hdr = (struct rtllib_hdr_3addr *)skb->data; + + rx_stats->len = skb->len; + rtllib_rx_mgt(ieee,skb,rx_stats); +#ifdef _RTL8192_EXT_PATCH_ + if(ieee->iw_mode == IW_MODE_MESH){ + if ((stype != RTLLIB_STYPE_MESH_ACT) && (memcmp(hdr->addr1, ieee->dev->dev_addr, ETH_ALEN))) + { + dev_kfree_skb_any(skb); + return 0; + } + } + else +#endif + { + if ((memcmp(hdr->addr1, ieee->dev->dev_addr, ETH_ALEN))) + { + dev_kfree_skb_any(skb); + return 0; + } + } + rtllib_rx_frame_softmac(ieee, skb, rx_stats, type, stype); + + dev_kfree_skb_any(skb); + + return 0; + +#ifdef NOT_YET + if (ieee->iw_mode == IW_MODE_MASTER) { + printk(KERN_DEBUG "%s: Master mode not yet suppported.\n", + ieee->dev->name); + return 0; +/* + hostap_update_sta_ps(ieee, (struct hostap_rtllib_hdr_4addr *) + skb->data);*/ + } + + if (ieee->hostapd && type == RTLLIB_TYPE_MGMT) { + if (stype == WLAN_FC_STYPE_BEACON && + ieee->iw_mode == IW_MODE_MASTER) { + struct sk_buff *skb2; + /* Process beacon frames also in kernel driver to + * update STA(AP) table statistics */ + skb2 = skb_clone(skb, GFP_ATOMIC); + if (skb2) + hostap_rx(skb2->dev, skb2, rx_stats); + } + + /* send management frames to the user space daemon for + * processing */ + ieee->apdevstats.rx_packets++; + ieee->apdevstats.rx_bytes += skb->len; + prism2_rx_80211(ieee->apdev, skb, rx_stats, PRISM2_RX_MGMT); + return 0; + } + + if (ieee->iw_mode == IW_MODE_MASTER) { + if (type != WLAN_FC_TYPE_MGMT && type != WLAN_FC_TYPE_CTRL) { + printk(KERN_DEBUG "%s: unknown management frame " + "(type=0x%02x, stype=0x%02x) dropped\n", + skb->dev->name, type, stype); + return -1; + } + + hostap_rx(skb->dev, skb, rx_stats); + return 0; + } + + printk(KERN_DEBUG "%s: hostap_rx_frame_mgmt: management frame " + "received in non-Host AP mode\n", skb->dev->name); + return -1; +#endif +} + +#ifndef CONFIG_CFG_80211 +/* See IEEE 802.1H for LLC/SNAP encapsulation/decapsulation */ +/* Ethernet-II snap header (RFC1042 for most EtherTypes) */ +static unsigned char rfc1042_header[] = +{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00 }; +/* Bridge-Tunnel header (for EtherTypes ETH_P_AARP and ETH_P_IPX) */ +static unsigned char bridge_tunnel_header[] = +{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8 }; +/* No encapsulation header if EtherType < 0x600 (=length) */ +#endif + +/* Called by rtllib_rx_frame_decrypt */ +static int rtllib_is_eapol_frame(struct rtllib_device *ieee, + struct sk_buff *skb, size_t hdrlen) +{ + struct net_device *dev = ieee->dev; + u16 fc, ethertype; + struct rtllib_hdr_4addr *hdr; + u8 *pos; + + if (skb->len < 24) + return 0; + + hdr = (struct rtllib_hdr_4addr *) skb->data; + fc = le16_to_cpu(hdr->frame_ctl); + + /* check that the frame is unicast frame to us */ + if ((fc & (RTLLIB_FCTL_TODS | RTLLIB_FCTL_FROMDS)) == + RTLLIB_FCTL_TODS && + memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN) == 0 && + memcmp(hdr->addr3, dev->dev_addr, ETH_ALEN) == 0) { + /* ToDS frame with own addr BSSID and DA */ + } else if ((fc & (RTLLIB_FCTL_TODS | RTLLIB_FCTL_FROMDS)) == + RTLLIB_FCTL_FROMDS && + memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN) == 0) { + /* FromDS frame with own addr as DA */ + } else + return 0; + + if (skb->len < 24 + 8) + return 0; + + /* check for port access entity Ethernet type */ + pos = skb->data + hdrlen; + ethertype = (pos[6] << 8) | pos[7]; + if (ethertype == ETH_P_PAE) + return 1; + + return 0; +} + +/* Called only as a tasklet (software IRQ), by rtllib_rx */ +static inline int +rtllib_rx_frame_decrypt(struct rtllib_device* ieee, struct sk_buff *skb, + struct rtllib_crypt_data *crypt) +{ + struct rtllib_hdr_4addr *hdr; + int res, hdrlen; + + if (crypt == NULL || crypt->ops->decrypt_mpdu == NULL) + return 0; +#if 1 + if (ieee->hwsec_active) + { + cb_desc *tcb_desc = (cb_desc *)(skb->cb+ MAX_DEV_ADDR_SIZE); + tcb_desc->bHwSec = 1; + + if(ieee->need_sw_enc) + tcb_desc->bHwSec = 0; + } +#endif + hdr = (struct rtllib_hdr_4addr *) skb->data; + hdrlen = rtllib_get_hdrlen(le16_to_cpu(hdr->frame_ctl)); + +#ifdef CONFIG_RTLLIB_CRYPT_TKIP + if (ieee->tkip_countermeasures && + strcmp(crypt->ops->name, "TKIP") == 0) { + if (net_ratelimit()) { + printk(KERN_DEBUG "%s: TKIP countermeasures: dropped " + "received packet from " MAC_FMT "\n", + ieee->dev->name, MAC_ARG(hdr->addr2)); + } + return -1; + } +#endif + + atomic_inc(&crypt->refcnt); + res = crypt->ops->decrypt_mpdu(skb, hdrlen, crypt->priv); + atomic_dec(&crypt->refcnt); + if (res < 0) { + RTLLIB_DEBUG_DROP( + "decryption failed (SA=" MAC_FMT + ") res=%d\n", MAC_ARG(hdr->addr2), res); + if (res == -2) + RTLLIB_DEBUG_DROP("Decryption failed ICV " + "mismatch (key %d)\n", + skb->data[hdrlen + 3] >> 6); + ieee->ieee_stats.rx_discards_undecryptable++; + return -1; + } + + return res; +} + + +/* Called only as a tasklet (software IRQ), by rtllib_rx */ +static inline int +rtllib_rx_frame_decrypt_msdu(struct rtllib_device* ieee, struct sk_buff *skb, + int keyidx, struct rtllib_crypt_data *crypt) +{ + struct rtllib_hdr_4addr *hdr; + int res, hdrlen; + + if (crypt == NULL || crypt->ops->decrypt_msdu == NULL) + return 0; + if (ieee->hwsec_active) + { + cb_desc *tcb_desc = (cb_desc *)(skb->cb+ MAX_DEV_ADDR_SIZE); + tcb_desc->bHwSec = 1; + + if(ieee->need_sw_enc) + tcb_desc->bHwSec = 0; + } + + hdr = (struct rtllib_hdr_4addr *) skb->data; + hdrlen = rtllib_get_hdrlen(le16_to_cpu(hdr->frame_ctl)); + + atomic_inc(&crypt->refcnt); + res = crypt->ops->decrypt_msdu(skb, keyidx, hdrlen, crypt->priv,ieee); + atomic_dec(&crypt->refcnt); + if (res < 0) { + printk(KERN_DEBUG "%s: MSDU decryption/MIC verification failed" + " (SA=" MAC_FMT " keyidx=%d)\n", + ieee->dev->name, MAC_ARG(hdr->addr2), keyidx); + return -1; + } + + return 0; +} + +#ifdef _RTL8192_EXT_PATCH_ +static inline int rtllib_has_retry(u16 fc) +{ + return ((fc&RTLLIB_FCTL_RETRY)!=0); +} +#endif + +/* this function is stolen from ipw2200 driver*/ +#define IEEE_PACKET_RETRY_TIME (5*HZ) +static int is_duplicate_packet(struct rtllib_device *ieee, + struct rtllib_hdr_4addr *header) +{ + u16 fc = le16_to_cpu(header->frame_ctl); + u16 sc = le16_to_cpu(header->seq_ctl); + u16 seq = WLAN_GET_SEQ_SEQ(sc); + u16 frag = WLAN_GET_SEQ_FRAG(sc); + u16 *last_seq, *last_frag; + unsigned long *last_time; + struct rtllib_hdr_3addrqos *hdr_3addrqos; + struct rtllib_hdr_4addrqos *hdr_4addrqos; + u8 tid; + + if(((fc & RTLLIB_FCTL_DSTODS) == RTLLIB_FCTL_DSTODS)&&RTLLIB_QOS_HAS_SEQ(fc)) { + hdr_4addrqos = (struct rtllib_hdr_4addrqos *)header; + tid = le16_to_cpu(hdr_4addrqos->qos_ctl) & RTLLIB_QCTL_TID; + tid = UP2AC(tid); + tid ++; + } else if(RTLLIB_QOS_HAS_SEQ(fc)) { + hdr_3addrqos = (struct rtllib_hdr_3addrqos*)header; + tid = le16_to_cpu(hdr_3addrqos->qos_ctl) & RTLLIB_QCTL_TID; + tid = UP2AC(tid); + tid ++; + } else { + tid = 0; + } + + switch (ieee->iw_mode) { + case IW_MODE_ADHOC: + { + struct list_head *p; + struct ieee_ibss_seq *entry = NULL; + u8 *mac = header->addr2; + int index = mac[5] % IEEE_IBSS_MAC_HASH_SIZE; + list_for_each(p, &ieee->ibss_mac_hash[index]) { + entry = list_entry(p, struct ieee_ibss_seq, list); + if (!memcmp(entry->mac, mac, ETH_ALEN)) + break; + } + if (p == &ieee->ibss_mac_hash[index]) { + entry = kmalloc(sizeof(struct ieee_ibss_seq), GFP_ATOMIC); + if (!entry) { + printk(KERN_WARNING "Cannot malloc new mac entry\n"); + return 0; + } + memcpy(entry->mac, mac, ETH_ALEN); + entry->seq_num[tid] = seq; + entry->frag_num[tid] = frag; + entry->packet_time[tid] = jiffies; + list_add(&entry->list, &ieee->ibss_mac_hash[index]); + return 0; + } + last_seq = &entry->seq_num[tid]; + last_frag = &entry->frag_num[tid]; + last_time = &entry->packet_time[tid]; + break; + } + + case IW_MODE_INFRA: + last_seq = &ieee->last_rxseq_num[tid]; + last_frag = &ieee->last_rxfrag_num[tid]; + last_time = &ieee->last_packet_time[tid]; + + break; + +#ifdef _RTL8192_EXT_PATCH_ + case IW_MODE_MESH: + /* Drop duplicate 802.11 retransmissions (IEEE 802.11 Chap. 9.2.9) */ + if(!is_multicast_ether_addr(header->addr1)){ + struct list_head *p; + struct ieee_mesh_seq *entry = NULL; + u8 *mac = header->addr2; + int index = mac[5] % IEEE_IBSS_MAC_HASH_SIZE; + list_for_each(p, &ieee->mesh_mac_hash[index]) { + entry = list_entry(p, struct ieee_mesh_seq, list); + if (!memcmp(entry->mac, mac, ETH_ALEN)) + break; + } + + if (p == &ieee->mesh_mac_hash[index]) { + entry = kmalloc(sizeof(struct ieee_mesh_seq), GFP_ATOMIC); + if (!entry) { + printk(KERN_WARNING "Cannot malloc new mac entry\n"); + return 0; + } + memcpy(entry->mac, mac, ETH_ALEN); + entry->seq_num[tid] = header->seq_ctl; + entry->packet_time[tid] = jiffies; + list_add(&entry->list, &ieee->mesh_mac_hash[index]); + return 0; + } + last_seq = &entry->seq_num[tid]; + last_time = &entry->packet_time[tid]; + + if (unlikely(rtllib_has_retry(fc) && + *last_seq == header->seq_ctl)) { + goto drop; + } else { + *last_seq = header->seq_ctl; + } + *last_time = jiffies; + } + return 0; +#endif + default: + return 0; + } + + if ((*last_seq == seq) && + time_after(*last_time + IEEE_PACKET_RETRY_TIME, jiffies)) { + if (*last_frag == frag){ + goto drop; + + } + if (*last_frag + 1 != frag) + /* out-of-order fragment */ + goto drop; + } else + *last_seq = seq; + + *last_frag = frag; + *last_time = jiffies; + return 0; + +drop: + + return 1; +} +bool +AddReorderEntry( + PRX_TS_RECORD pTS, + PRX_REORDER_ENTRY pReorderEntry + ) +{ + struct list_head *pList = &pTS->RxPendingPktList; + + while(pList->next != &pTS->RxPendingPktList) + { + if( SN_LESS(pReorderEntry->SeqNum, ((PRX_REORDER_ENTRY)list_entry(pList->next,RX_REORDER_ENTRY,List))->SeqNum) ) + { + pList = pList->next; + } + else if( SN_EQUAL(pReorderEntry->SeqNum, ((PRX_REORDER_ENTRY)list_entry(pList->next,RX_REORDER_ENTRY,List))->SeqNum) ) + { + return false; + } + else + { + break; + } + } + pReorderEntry->List.next = pList->next; + pReorderEntry->List.next->prev = &pReorderEntry->List; + pReorderEntry->List.prev = pList; + pList->next = &pReorderEntry->List; + + return true; +} + +void rtllib_indicate_packets(struct rtllib_device *ieee, struct rtllib_rxb** prxbIndicateArray,u8 index) +{ + struct net_device_stats *stats = &ieee->stats; + u8 i = 0 , j=0; + u16 ethertype; + for(j = 0; jWapiSupport) && (ieee->wapiInfo.bWapiEnable)) + { + if(WapiCheckDropForRxReorderCase(ieee,prxb)) + { + WAPI_TRACE(WAPI_ERR, "%s(): Rx Reorder Drop case!!\n", __FUNCTION__); + for(i = 0; inr_subframes; i++) { + if(prxb->subframes[i]) + dev_kfree_skb(prxb->subframes[i]); + } + prxb->nr_subframes = 0; + } + } +#endif + for(i = 0; inr_subframes; i++) { + struct sk_buff *sub_skb = prxb->subframes[i]; + + /* convert hdr + possible LLC headers into Ethernet header */ + ethertype = (sub_skb->data[6] << 8) | sub_skb->data[7]; + if (sub_skb->len >= 8 && + ((memcmp(sub_skb->data, rfc1042_header, SNAP_SIZE) == 0 && + ethertype != ETH_P_AARP && ethertype != ETH_P_IPX) || + memcmp(sub_skb->data, bridge_tunnel_header, SNAP_SIZE) == 0)) { + /* remove RFC1042 or Bridge-Tunnel encapsulation and + * replace EtherType */ + skb_pull(sub_skb, SNAP_SIZE); + memcpy(skb_push(sub_skb, ETH_ALEN), prxb->src, ETH_ALEN); + memcpy(skb_push(sub_skb, ETH_ALEN), prxb->dst, ETH_ALEN); + } else { + u16 len; + /* Leave Ethernet header part of hdr and full payload */ + len = htons(sub_skb->len); + memcpy(skb_push(sub_skb, 2), &len, 2); + memcpy(skb_push(sub_skb, ETH_ALEN), prxb->src, ETH_ALEN); + memcpy(skb_push(sub_skb, ETH_ALEN), prxb->dst, ETH_ALEN); + } + + /* Indicat the packets to upper layer */ + if (sub_skb) { + stats->rx_packets++; + stats->rx_bytes += sub_skb->len; + + memset(sub_skb->cb, 0, sizeof(sub_skb->cb)); +#ifdef _RTL8192_EXT_PATCH_ + sub_skb->protocol = eth_type_trans(sub_skb, sub_skb->dev); +#else + sub_skb->protocol = eth_type_trans(sub_skb, ieee->dev); + sub_skb->dev = ieee->dev; +#endif +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) + sub_skb->dev->stats.rx_packets++; + sub_skb->dev->stats.rx_bytes += sub_skb->len; +#endif +#ifdef TCP_CSUM_OFFLOAD_RX + if ( prxb->tcp_csum_valid) + sub_skb->ip_summed = CHECKSUM_UNNECESSARY; + else + sub_skb->ip_summed = CHECKSUM_NONE; + +#else + sub_skb->ip_summed = CHECKSUM_NONE; /* 802.11 crc not sufficient */ +#endif + ieee->last_rx_ps_time = jiffies; + netif_rx(sub_skb); + } + } + kfree(prxb); + prxb = NULL; + } +} + +void +rtllib_FlushRxTsPendingPkts(struct rtllib_device *ieee, PRX_TS_RECORD pTS) +{ + PRX_REORDER_ENTRY pRxReorderEntry; + struct rtllib_rxb* RfdArray[REORDER_WIN_SIZE]; + u8 RfdCnt = 0; + + + del_timer_sync(&pTS->RxPktPendingTimer); + while(!list_empty(&pTS->RxPendingPktList)) + { + if(RfdCnt >= REORDER_WIN_SIZE){ + printk("-------------->%s() error! RfdCnt >= REORDER_WIN_SIZE\n", __func__); + break; + } + + pRxReorderEntry = (PRX_REORDER_ENTRY)list_entry(pTS->RxPendingPktList.prev,RX_REORDER_ENTRY,List); + RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): Indicate SeqNum %d!\n",__FUNCTION__, pRxReorderEntry->SeqNum); + list_del_init(&pRxReorderEntry->List); + + RfdArray[RfdCnt] = pRxReorderEntry->prxb; + + RfdCnt = RfdCnt + 1; + list_add_tail(&pRxReorderEntry->List, &ieee->RxReorder_Unused_List); + } + rtllib_indicate_packets(ieee, RfdArray, RfdCnt); + + pTS->RxIndicateSeq = 0xffff; + +#ifdef MERGE_TO_DO +#endif +} + + +void RxReorderIndicatePacket( struct rtllib_device *ieee, + struct rtllib_rxb* prxb, + PRX_TS_RECORD pTS, + u16 SeqNum) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + PRX_REORDER_ENTRY pReorderEntry = NULL; + struct rtllib_rxb* prxbIndicateArray[REORDER_WIN_SIZE]; + u8 WinSize = pHTInfo->RxReorderWinSize; + u16 WinEnd = 0; + u8 index = 0; + bool bMatchWinStart = false, bPktInBuf = false; + unsigned long flags; + + RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): Seq is %d,pTS->RxIndicateSeq is %d, WinSize is %d\n",__FUNCTION__,SeqNum,pTS->RxIndicateSeq,WinSize); + + spin_lock_irqsave(&(ieee->reorder_spinlock), flags); + + WinEnd = (pTS->RxIndicateSeq + WinSize -1)%4096; +#if 0 + if(!list_empty(&ieee->RxReorder_Unused_List)) + RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): ieee->RxReorder_Unused_List is nut NULL\n"); +#endif + /* Rx Reorder initialize condition.*/ + if(pTS->RxIndicateSeq == 0xffff) { + pTS->RxIndicateSeq = SeqNum; + } + + /* Drop out the packet which SeqNum is smaller than WinStart */ + if(SN_LESS(SeqNum, pTS->RxIndicateSeq)) { + RTLLIB_DEBUG(RTLLIB_DL_REORDER,"Packet Drop! IndicateSeq: %d, NewSeq: %d\n", + pTS->RxIndicateSeq, SeqNum); + pHTInfo->RxReorderDropCounter++; + { + int i; + for(i =0; i < prxb->nr_subframes; i++) { + dev_kfree_skb(prxb->subframes[i]); + } + kfree(prxb); + prxb = NULL; + } + spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags); + return; + } + + /* + * Sliding window manipulation. Conditions includes: + * 1. Incoming SeqNum is equal to WinStart =>Window shift 1 + * 2. Incoming SeqNum is larger than the WinEnd => Window shift N + */ + if(SN_EQUAL(SeqNum, pTS->RxIndicateSeq)) { + pTS->RxIndicateSeq = (pTS->RxIndicateSeq + 1) % 4096; + bMatchWinStart = true; + } else if(SN_LESS(WinEnd, SeqNum)) { + if(SeqNum >= (WinSize - 1)) { + pTS->RxIndicateSeq = SeqNum + 1 -WinSize; + } else { + pTS->RxIndicateSeq = 4095 - (WinSize - (SeqNum +1)) + 1; + } + RTLLIB_DEBUG(RTLLIB_DL_REORDER, "Window Shift! IndicateSeq: %d, NewSeq: %d\n",pTS->RxIndicateSeq, SeqNum); + } + + /* + * Indication process. + * After Packet dropping and Sliding Window shifting as above, we can now just indicate the packets + * with the SeqNum smaller than latest WinStart and buffer other packets. + */ + /* For Rx Reorder condition: + * 1. All packets with SeqNum smaller than WinStart => Indicate + * 2. All packets with SeqNum larger than or equal to WinStart => Buffer it. + */ + if(bMatchWinStart) { + /* Current packet is going to be indicated.*/ + RTLLIB_DEBUG(RTLLIB_DL_REORDER, "Packets indication!! IndicateSeq: %d, NewSeq: %d\n",\ + pTS->RxIndicateSeq, SeqNum); + prxbIndicateArray[0] = prxb; + index = 1; + } else { + /* Current packet is going to be inserted into pending list.*/ + if(!list_empty(&ieee->RxReorder_Unused_List)) { + pReorderEntry = (PRX_REORDER_ENTRY)list_entry(ieee->RxReorder_Unused_List.next,RX_REORDER_ENTRY,List); + list_del_init(&pReorderEntry->List); + + /* Make a reorder entry and insert into a the packet list.*/ + pReorderEntry->SeqNum = SeqNum; + pReorderEntry->prxb = prxb; + +#if 1 + if(!AddReorderEntry(pTS, pReorderEntry)) { + RTLLIB_DEBUG(RTLLIB_DL_REORDER, "%s(): Duplicate packet is dropped!! IndicateSeq: %d, NewSeq: %d\n", + __FUNCTION__, pTS->RxIndicateSeq, SeqNum); + list_add_tail(&pReorderEntry->List,&ieee->RxReorder_Unused_List); + { + int i; + for(i =0; i < prxb->nr_subframes; i++) { + dev_kfree_skb(prxb->subframes[i]); + } + kfree(prxb); + prxb = NULL; + } + } else { + RTLLIB_DEBUG(RTLLIB_DL_REORDER, + "Pkt insert into buffer!! IndicateSeq: %d, NewSeq: %d\n",pTS->RxIndicateSeq, SeqNum); + } +#endif + } + else { + /* + * Packets are dropped if there is not enough reorder entries. + * This part shall be modified!! We can just indicate all the + * packets in buffer and get reorder entries. + */ + RTLLIB_DEBUG(RTLLIB_DL_ERR, "RxReorderIndicatePacket(): There is no reorder entry!! Packet is dropped!!\n"); + { + int i; + for(i =0; i < prxb->nr_subframes; i++) { + dev_kfree_skb(prxb->subframes[i]); + } + kfree(prxb); + prxb = NULL; + } + } + } + + /* Check if there is any packet need indicate.*/ + while(!list_empty(&pTS->RxPendingPktList)) { + RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): start RREORDER indicate\n",__FUNCTION__); +#if 1 + pReorderEntry = (PRX_REORDER_ENTRY)list_entry(pTS->RxPendingPktList.prev,RX_REORDER_ENTRY,List); + if( SN_LESS(pReorderEntry->SeqNum, pTS->RxIndicateSeq) || + SN_EQUAL(pReorderEntry->SeqNum, pTS->RxIndicateSeq)) + { + /* This protect buffer from overflow. */ + if(index >= REORDER_WIN_SIZE) { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "RxReorderIndicatePacket(): Buffer overflow!! \n"); + bPktInBuf = true; + break; + } + + list_del_init(&pReorderEntry->List); + + if(SN_EQUAL(pReorderEntry->SeqNum, pTS->RxIndicateSeq)) + pTS->RxIndicateSeq = (pTS->RxIndicateSeq + 1) % 4096; + + prxbIndicateArray[index] = pReorderEntry->prxb; + RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): Indicate SeqNum %d!\n",__FUNCTION__, pReorderEntry->SeqNum); + index++; + + list_add_tail(&pReorderEntry->List,&ieee->RxReorder_Unused_List); + } else { + bPktInBuf = true; + break; + } +#endif + } + + /* Handling pending timer. Set this timer to prevent from long time Rx buffering.*/ + if(index>0) { + if(timer_pending(&pTS->RxPktPendingTimer)){ + del_timer_sync(&pTS->RxPktPendingTimer); + } + pTS->RxTimeoutIndicateSeq = 0xffff; + + if(index>REORDER_WIN_SIZE){ + RTLLIB_DEBUG(RTLLIB_DL_ERR, "RxReorderIndicatePacket(): Rx Reorer buffer full!! \n"); + spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags); + return; + } + rtllib_indicate_packets(ieee, prxbIndicateArray, index); + bPktInBuf = false; + } + + if(bPktInBuf && pTS->RxTimeoutIndicateSeq==0xffff) { + RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): SET rx timeout timer\n", __FUNCTION__); + pTS->RxTimeoutIndicateSeq = pTS->RxIndicateSeq; + mod_timer(&pTS->RxPktPendingTimer, jiffies + MSECS(pHTInfo->RxReorderPendingTime)); + } + spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags); +} + +u8 parse_subframe(struct rtllib_device* ieee,struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats, + struct rtllib_rxb *rxb,u8* src,u8* dst) +{ + struct rtllib_hdr_3addr *hdr = (struct rtllib_hdr_3addr* )skb->data; + u16 fc = le16_to_cpu(hdr->frame_ctl); + + u16 LLCOffset= sizeof(struct rtllib_hdr_3addr); + u16 ChkLength; + bool bIsAggregateFrame = false; + u16 nSubframe_Length; + u8 nPadding_Length = 0; + u16 SeqNum=0; + struct sk_buff *sub_skb; + u8 *data_ptr; + /* just for debug purpose */ + SeqNum = WLAN_GET_SEQ_SEQ(le16_to_cpu(hdr->seq_ctl)); + if((RTLLIB_QOS_HAS_SEQ(fc))&&\ + (((frameqos *)(skb->data + RTLLIB_3ADDR_LEN))->field.reserved)) { + bIsAggregateFrame = true; + } + + if(RTLLIB_QOS_HAS_SEQ(fc)) { + LLCOffset += 2; + } + if(rx_stats->bContainHTC) { + LLCOffset += sHTCLng; + } + + ChkLength = LLCOffset;/* + (Frame_WEP(frame)!=0 ?Adapter->MgntInfo.SecurityInfo.EncryptionHeadOverhead:0);*/ + + if( skb->len <= ChkLength ) { + return 0; + } + + skb_pull(skb, LLCOffset); + ieee->bIsAggregateFrame = bIsAggregateFrame; + if(!bIsAggregateFrame) { + rxb->nr_subframes = 1; + + /* altered by clark 3/30/2010 + * The buffer size of the skb indicated to upper layer + * must be less than 5000, or the defraged IP datagram + * in the IP layer will exceed "ipfrag_high_tresh" and be + * discarded. so there must not use the function + * "skb_copy" and "skb_clone" for "skb". + */ + + /* Allocate new skb for releasing to upper layer */ + sub_skb = dev_alloc_skb(RTLLIB_SKBBUFFER_SIZE); + skb_reserve(sub_skb, 12); + data_ptr = (u8 *)skb_put(sub_skb, skb->len); + memcpy(data_ptr, skb->data, skb->len); + sub_skb->dev = ieee->dev; + + rxb->subframes[0] = sub_skb; + + memcpy(rxb->src,src,ETH_ALEN); + memcpy(rxb->dst,dst,ETH_ALEN); + rxb->subframes[0]->dev = ieee->dev; + return 1; + } else { + rxb->nr_subframes = 0; + memcpy(rxb->src,src,ETH_ALEN); + memcpy(rxb->dst,dst,ETH_ALEN); + while(skb->len > ETHERNET_HEADER_SIZE) { + /* Offset 12 denote 2 mac address */ + nSubframe_Length = *((u16*)(skb->data + 12)); + nSubframe_Length = (nSubframe_Length>>8) + (nSubframe_Length<<8); + + if(skb->len<(ETHERNET_HEADER_SIZE + nSubframe_Length)) { + printk("%s: A-MSDU parse error!! pRfd->nTotalSubframe : %d\n",\ + __FUNCTION__,rxb->nr_subframes); + printk("%s: A-MSDU parse error!! Subframe Length: %d\n",__FUNCTION__, nSubframe_Length); + printk("nRemain_Length is %d and nSubframe_Length is : %d\n",skb->len,nSubframe_Length); + printk("The Packet SeqNum is %d\n",SeqNum); + return 0; + } + + /* move the data point to data content */ + skb_pull(skb, ETHERNET_HEADER_SIZE); + + /* altered by clark 3/30/2010 + * The buffer size of the skb indicated to upper layer + * must be less than 5000, or the defraged IP datagram + * in the IP layer will exceed "ipfrag_high_tresh" and be + * discarded. so there must not use the function + * "skb_copy" and "skb_clone" for "skb". + */ + + /* Allocate new skb for releasing to upper layer */ + sub_skb = dev_alloc_skb(nSubframe_Length + 12); + skb_reserve(sub_skb, 12); + data_ptr = (u8 *)skb_put(sub_skb, nSubframe_Length); + memcpy(data_ptr,skb->data,nSubframe_Length); + + sub_skb->dev = ieee->dev; + rxb->subframes[rxb->nr_subframes++] = sub_skb; + if(rxb->nr_subframes >= MAX_SUBFRAME_COUNT) { + RTLLIB_DEBUG_RX("ParseSubframe(): Too many Subframes! Packets dropped!\n"); + break; + } + skb_pull(skb,nSubframe_Length); + + if(skb->len != 0) { + nPadding_Length = 4 - ((nSubframe_Length + ETHERNET_HEADER_SIZE) % 4); + if(nPadding_Length == 4) { + nPadding_Length = 0; + } + + if(skb->len < nPadding_Length) { + return 0; + } + + skb_pull(skb,nPadding_Length); + } + } + + return rxb->nr_subframes; + } +} + + +size_t rtllib_rx_get_hdrlen(struct rtllib_device *ieee, struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats) +{ + struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data; + u16 fc = le16_to_cpu(hdr->frame_ctl); + size_t hdrlen = 0; + + hdrlen = rtllib_get_hdrlen(fc); + if (HTCCheck(ieee, skb->data)) { + if(net_ratelimit()) + printk("%s: find HTCControl!\n", __func__); + hdrlen += 4; + rx_stats->bContainHTC = 1; + } + + if(RTLLIB_QOS_HAS_SEQ(fc)) + rx_stats->bIsQosData = 1; + + return hdrlen; +} + +int rtllib_rx_check_duplicate(struct rtllib_device *ieee, struct sk_buff *skb, u8 multicast) +{ + struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data; + u16 fc, sc; + u8 frag, type, stype; + + fc = le16_to_cpu(hdr->frame_ctl); + type = WLAN_FC_GET_TYPE(fc); + stype = WLAN_FC_GET_STYPE(fc); + sc = le16_to_cpu(hdr->seq_ctl); + frag = WLAN_GET_SEQ_FRAG(sc); + +#ifdef _RTL8192_EXT_PATCH_ + if( (ieee->pHTInfo->bCurRxReorderEnable == false) || + !ieee->current_network.qos_data.active|| + !IsDataFrame(skb->data) || + IsLegacyDataFrame(skb->data) || + multicast) { + if (!multicast) { + if (is_duplicate_packet(ieee, hdr)){ + return -1; + } + } + } +#else + if( (ieee->pHTInfo->bCurRxReorderEnable == false) || + !ieee->current_network.qos_data.active || + !IsDataFrame(skb->data) || + IsLegacyDataFrame(skb->data)) { + if(!((type == RTLLIB_FTYPE_MGMT) && (stype == RTLLIB_STYPE_BEACON))){ + if (is_duplicate_packet(ieee, hdr)){ + return -1; + } + } + } +#endif + else { + PRX_TS_RECORD pRxTS = NULL; + if (GetTs(ieee, (PTS_COMMON_INFO*) &pRxTS, hdr->addr2, + (u8)Frame_QoSTID((u8*)(skb->data)), RX_DIR, true)) { + if ((fc & (1<<11)) && (frag == pRxTS->RxLastFragNum) && + (WLAN_GET_SEQ_SEQ(sc) == pRxTS->RxLastSeqNum)) { + return -1; + } else { + pRxTS->RxLastFragNum = frag; + pRxTS->RxLastSeqNum = WLAN_GET_SEQ_SEQ(sc); + } + } else { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "ERR!!%s(): No TS!! Skip the check!!\n",__FUNCTION__); + return -1; + } + } + + return 0; +} +void rtllib_rx_extract_addr(struct rtllib_device *ieee, struct rtllib_hdr_4addr *hdr, u8 *dst, u8 *src, u8 *bssid) +{ + u16 fc = le16_to_cpu(hdr->frame_ctl); + + switch (fc & (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) { + case RTLLIB_FCTL_FROMDS: + memcpy(dst, hdr->addr1, ETH_ALEN); + memcpy(src, hdr->addr3, ETH_ALEN); + memcpy(bssid, hdr->addr2, ETH_ALEN); + break; + case RTLLIB_FCTL_TODS: + memcpy(dst, hdr->addr3, ETH_ALEN); + memcpy(src, hdr->addr2, ETH_ALEN); + memcpy(bssid, hdr->addr1, ETH_ALEN); + break; + case RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS: + memcpy(dst, hdr->addr3, ETH_ALEN); + memcpy(src, hdr->addr4, ETH_ALEN); +#ifdef _RTL8192_EXT_PATCH_ + memcpy(bssid, ieee->current_mesh_network.bssid, ETH_ALEN); +#else + memcpy(bssid, ieee->current_network.bssid, ETH_ALEN); +#endif + break; + case 0: + memcpy(dst, hdr->addr1, ETH_ALEN); + memcpy(src, hdr->addr2, ETH_ALEN); + memcpy(bssid, hdr->addr3, ETH_ALEN); + break; + } +} +int rtllib_rx_data_filter(struct rtllib_device *ieee, u16 fc, u8 *dst, u8 *src, u8 *bssid, u8 *addr2) +{ + u8 zero_addr[ETH_ALEN] = {0}; + u8 type, stype; + + type = WLAN_FC_GET_TYPE(fc); + stype = WLAN_FC_GET_STYPE(fc); + + /* Filter frames from different BSS */ + if (((fc & RTLLIB_FCTL_DSTODS) != RTLLIB_FCTL_DSTODS) + && (compare_ether_addr(ieee->current_network.bssid, bssid) != 0) + && memcmp(ieee->current_network.bssid, zero_addr, ETH_ALEN)) { + return -1; + } + + /* Filter packets sent by an STA that will be forwarded by AP */ + if ( ieee->IntelPromiscuousModeInfo.bPromiscuousOn && + ieee->IntelPromiscuousModeInfo.bFilterSourceStationFrame ) { + if ((fc & RTLLIB_FCTL_TODS) && !(fc & RTLLIB_FCTL_FROMDS) && + (compare_ether_addr(dst, ieee->current_network.bssid) != 0) && + (compare_ether_addr(bssid, ieee->current_network.bssid) == 0)) { + return -1; + } + } + + /* Nullfunc frames may have PS-bit set, so they must be passed to + * hostap_handle_sta_rx() before being dropped here. */ + if(!ieee->IntelPromiscuousModeInfo.bPromiscuousOn){ + if (stype != RTLLIB_STYPE_DATA && + stype != RTLLIB_STYPE_DATA_CFACK && + stype != RTLLIB_STYPE_DATA_CFPOLL && + stype != RTLLIB_STYPE_DATA_CFACKPOLL&& + stype != RTLLIB_STYPE_QOS_DATA + ) { + if (stype != RTLLIB_STYPE_NULLFUNC) + RTLLIB_DEBUG_DROP( + "RX: dropped data frame " + "with no data (type=0x%02x, " + "subtype=0x%02x)\n", + type, stype); + return -1; + } + } + + if(ieee->iw_mode == IW_MODE_MESH) { +#ifdef _RTL8192_EXT_PATCH_ + /* check whether it exists the mesh entry for data packet */ + if(ieee->ext_patch_rtllib_is_mesh&&\ + (false ==ieee->ext_patch_rtllib_is_mesh(ieee, addr2))) { + if(ieee->only_mesh) { + return -1; + } else if(memcmp(bssid, ieee->current_network.bssid, ETH_ALEN)) { + return -1; + } + } +#endif + } else { + /* packets from our adapter are dropped (echo) */ + if (!memcmp(src, ieee->dev->dev_addr, ETH_ALEN)) + return -1; + + /* {broad,multi}cast packets to our BSS go through */ + if (is_multicast_ether_addr(dst) || is_broadcast_ether_addr(dst)) { + if (memcmp(bssid, ieee->current_network.bssid, ETH_ALEN)) { + return -1; + } + } + } + return 0; +} +int rtllib_rx_get_crypt( + struct rtllib_device *ieee, + struct sk_buff *skb, + struct rtllib_crypt_data **crypt, + size_t hdrlen) +{ + struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data; + u16 fc = le16_to_cpu(hdr->frame_ctl); + int idx = 0; + +#if defined (RTL8192S_WAPI_SUPPORT) + if (ieee->host_decrypt && (!ieee->wapiInfo.bWapiEnable)) +#else + if (ieee->host_decrypt) +#endif + { + if (skb->len >= hdrlen + 3) + idx = skb->data[hdrlen + 3] >> 6; + +#ifdef _RTL8192_EXT_PATCH_ + *crypt = ieee->sta_crypt[idx]; +#else + *crypt = ieee->crypt[idx]; +#endif + /* allow NULL decrypt to indicate an station specific override + * for default encryption */ + if (*crypt && ((*crypt)->ops == NULL || + (*crypt)->ops->decrypt_mpdu == NULL)) + *crypt = NULL; + + if (!*crypt && (fc & RTLLIB_FCTL_WEP)) { + /* This seems to be triggered by some (multicast?) + * frames from other than current BSS, so just drop the + * frames silently instead of filling system log with + * these reports. */ + RTLLIB_DEBUG_DROP("Decryption failed (not set)" + " (SA=" MAC_FMT ")\n", + MAC_ARG(hdr->addr2)); + ieee->ieee_stats.rx_discards_undecryptable++; + return -1; + } + } + + return 0; +} +int rtllib_rx_decrypt( + struct rtllib_device *ieee, + struct sk_buff **skb, + struct rtllib_rx_stats *rx_stats, + struct rtllib_crypt_data *crypt, + size_t hdrlen) +{ + struct rtllib_hdr_4addr *hdr; + int keyidx = 0; + u16 fc, sc; + u8 frag; + + hdr = (struct rtllib_hdr_4addr *)(*skb)->data; + fc = le16_to_cpu(hdr->frame_ctl); + sc = le16_to_cpu(hdr->seq_ctl); + frag = WLAN_GET_SEQ_FRAG(sc); + + if((!rx_stats->Decrypted)){ + ieee->need_sw_enc = 1; + }else{ + ieee->need_sw_enc = 0; + } + + if (ieee->host_decrypt && (fc & RTLLIB_FCTL_WEP) && + ((keyidx = rtllib_rx_frame_decrypt(ieee, (*skb), crypt)) < 0) +#if defined (RTL8192S_WAPI_SUPPORT) + && (!ieee->wapiInfo.bWapiEnable) +#endif + ) + { + printk("%s: decrypt frame error\n", __func__); + return -1; + } + +#if defined (RTL8192S_WAPI_SUPPORT) + if(ieee->wapiInfo.bWapiEnable){ + if(ieee->pairwise_key_type == KEY_TYPE_SMS4){ + if(false == SecSWSMS4Decryption(ieee, (*skb), rx_stats)){ + WAPI_TRACE(WAPI_ERR, "%s():SMS4 decrypt frame error\n",__func__); + return -1; + } + } + } +#endif + hdr = (struct rtllib_hdr_4addr *) (*skb)->data; + if ((frag != 0 || (fc & RTLLIB_FCTL_MOREFRAGS))) { + int flen; + struct sk_buff *frag_skb = rtllib_frag_cache_get(ieee, hdr); + RTLLIB_DEBUG_FRAG("Rx Fragment received (%u)\n", frag); + + if (!frag_skb) { + RTLLIB_DEBUG(RTLLIB_DL_RX | RTLLIB_DL_FRAG, + "Rx cannot get skb from fragment " + "cache (morefrag=%d seq=%u frag=%u)\n", + (fc & RTLLIB_FCTL_MOREFRAGS) != 0, + WLAN_GET_SEQ_SEQ(sc), frag); + return -1; + } + flen = (*skb)->len; + if (frag != 0) + flen -= hdrlen; + + if (frag_skb->tail + flen > frag_skb->end) { + printk(KERN_WARNING "%s: host decrypted and " + "reassembled frame did not fit skb\n", + __func__); + rtllib_frag_cache_invalidate(ieee, hdr); + return -1; + } + + if (frag == 0) { + /* copy first fragment (including full headers) into + * beginning of the fragment cache skb */ + memcpy(skb_put(frag_skb, flen), (*skb)->data, flen); + } else { + /* append frame payload to the end of the fragment + * cache skb */ + memcpy(skb_put(frag_skb, flen), (*skb)->data + hdrlen, + flen); + } + dev_kfree_skb_any(*skb); + *skb = NULL; + + if (fc & RTLLIB_FCTL_MOREFRAGS) { + /* more fragments expected - leave the skb in fragment + * cache for now; it will be delivered to upper layers + * after all fragments have been received */ + return -2; + } + + /* this was the last fragment and the frame will be + * delivered, so remove skb from fragment cache */ + *skb = frag_skb; + hdr = (struct rtllib_hdr_4addr *) (*skb)->data; + rtllib_frag_cache_invalidate(ieee, hdr); + } + + /* skb: hdr + (possible reassembled) full MSDU payload; possibly still + * encrypted/authenticated */ + if (ieee->host_decrypt && (fc & RTLLIB_FCTL_WEP) && +#if defined (RTL8192S_WAPI_SUPPORT) + (!ieee->wapiInfo.bWapiEnable) && +#endif + rtllib_rx_frame_decrypt_msdu(ieee, *skb, keyidx, crypt)) + { + printk("%s: ==>decrypt msdu error\n", __func__); + return -1; + } + + hdr = (struct rtllib_hdr_4addr *) (*skb)->data; + if (crypt && !(fc & RTLLIB_FCTL_WEP) && !ieee->open_wep) { + if (/*ieee->ieee802_1x &&*/ + rtllib_is_eapol_frame(ieee, *skb, hdrlen)) { + +#ifdef CONFIG_RTLLIB_DEBUG + /* pass unencrypted EAPOL frames even if encryption is + * configured */ + struct eapol *eap = (struct eapol *)((*skb)->data + + 24); + RTLLIB_DEBUG_EAP("RX: IEEE 802.1X EAPOL frame: %s\n", + eap_get_type(eap->type)); +#endif + } else { + RTLLIB_DEBUG_DROP( + "encryption configured, but RX " + "frame not encrypted (SA=" MAC_FMT ")\n", + MAC_ARG(hdr->addr2)); + return -1; + } + } + +#ifdef CONFIG_RTLLIB_DEBUG + if (crypt && !(fc & RTLLIB_FCTL_WEP) && + rtllib_is_eapol_frame(ieee, *skb, hdrlen)) { + struct eapol *eap = (struct eapol *)((*skb)->data + + 24); + RTLLIB_DEBUG_EAP("RX: IEEE 802.1X EAPOL frame: %s\n", + eap_get_type(eap->type)); + } +#endif + + if (crypt && !(fc & RTLLIB_FCTL_WEP) && !ieee->open_wep && + !rtllib_is_eapol_frame(ieee, *skb, hdrlen)) { + RTLLIB_DEBUG_DROP( + "dropped unencrypted RX data " + "frame from " MAC_FMT + " (drop_unencrypted=1)\n", + MAC_ARG(hdr->addr2)); + return -1; + } + + if(rtllib_is_eapol_frame(ieee, *skb, hdrlen)) { + printk(KERN_WARNING "RX: IEEE802.1X EAPOL frame!\n"); + } + + return 0; +} +void rtllib_rx_check_leave_lps(struct rtllib_device *ieee, u8 unicast, u8 nr_subframes) +{ +#if !defined(RTL8192SU) && !defined(RTL8192U) +#ifdef ENABLE_LPS + if(unicast){ + + if((ieee->state == RTLLIB_LINKED) /*&& !MgntInitAdapterInProgress(pMgntInfo)*/) + { + if( ((ieee->LinkDetectInfo.NumRxUnicastOkInPeriod +ieee->LinkDetectInfo.NumTxOkInPeriod) > 8 ) || + (ieee->LinkDetectInfo.NumRxUnicastOkInPeriod > 2) ) + { + if(ieee->LeisurePSLeave) + ieee->LeisurePSLeave(ieee->dev); + } + } + } +#endif +#endif + ieee->last_rx_ps_time = jiffies; +} +void rtllib_rx_indicate_pkt_legacy( + struct rtllib_device *ieee, + struct rtllib_rx_stats *rx_stats, + struct rtllib_rxb* rxb, + u8 *dst, + u8 *src) +{ +#ifndef _RTL8192_EXT_PATCH_ + struct net_device *dev = ieee->dev; +#endif + u16 ethertype; + int i = 0; + + if(rxb == NULL){ + printk("%s: rxb is NULL!!\n", __func__); + return ; + } + + for(i = 0; inr_subframes; i++) { + struct sk_buff *sub_skb = rxb->subframes[i]; + + if (sub_skb) { + /* convert hdr + possible LLC headers into Ethernet header */ + ethertype = (sub_skb->data[6] << 8) | sub_skb->data[7]; + if (sub_skb->len >= 8 && + ((memcmp(sub_skb->data, rfc1042_header, SNAP_SIZE) == 0 && + ethertype != ETH_P_AARP && ethertype != ETH_P_IPX) || + memcmp(sub_skb->data, bridge_tunnel_header, SNAP_SIZE) == 0)) { + /* remove RFC1042 or Bridge-Tunnel encapsulation and + * replace EtherType */ + skb_pull(sub_skb, SNAP_SIZE); + memcpy(skb_push(sub_skb, ETH_ALEN), src, ETH_ALEN); + memcpy(skb_push(sub_skb, ETH_ALEN), dst, ETH_ALEN); + } else { + u16 len; + /* Leave Ethernet header part of hdr and full payload */ + len = htons(sub_skb->len); + memcpy(skb_push(sub_skb, 2), &len, 2); + memcpy(skb_push(sub_skb, ETH_ALEN), src, ETH_ALEN); + memcpy(skb_push(sub_skb, ETH_ALEN), dst, ETH_ALEN); + } + + ieee->stats.rx_packets++; + ieee->stats.rx_bytes += sub_skb->len; + + if(is_multicast_ether_addr(dst)) { + ieee->stats.multicast++; + } + + /* Indicat the packets to upper layer */ + memset(sub_skb->cb, 0, sizeof(sub_skb->cb)); +#ifdef _RTL8192_EXT_PATCH_ + sub_skb->protocol = eth_type_trans(sub_skb, sub_skb->dev); +#else + sub_skb->protocol = eth_type_trans(sub_skb, dev); + sub_skb->dev = dev; +#endif +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) + sub_skb->dev->stats.rx_packets++; + sub_skb->dev->stats.rx_bytes += sub_skb->len; +#endif +#ifdef TCP_CSUM_OFFLOAD_RX + if ( rx_stats->tcp_csum_valid) + sub_skb->ip_summed = CHECKSUM_UNNECESSARY; + else + sub_skb->ip_summed = CHECKSUM_NONE; +#else + sub_skb->ip_summed = CHECKSUM_NONE; /* 802.11 crc not sufficient */ +#endif + netif_rx(sub_skb); + } + } + kfree(rxb); + rxb = NULL; +} +int rtllib_rx_InfraAdhoc(struct rtllib_device *ieee, struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats) +{ + struct net_device *dev = ieee->dev; + struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data; + struct rtllib_crypt_data *crypt = NULL; +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + struct sta_info * psta = NULL; +#endif + struct rtllib_rxb* rxb = NULL; + PRX_TS_RECORD pTS = NULL; + u16 fc, sc, SeqNum = 0; + u8 type, stype, multicast = 0, unicast = 0, nr_subframes = 0, TID = 0; + u8 dst[ETH_ALEN], src[ETH_ALEN], bssid[ETH_ALEN] = {0}, *payload; + size_t hdrlen = 0; +#if defined (RTL8192S_WAPI_SUPPORT) + u8 wapiDectResult = 0; +#endif + bool bToOtherSTA = false; + int ret = 0, i = 0; + + hdr = (struct rtllib_hdr_4addr *)skb->data; + fc = le16_to_cpu(hdr->frame_ctl); + type = WLAN_FC_GET_TYPE(fc); + stype = WLAN_FC_GET_STYPE(fc); + sc = le16_to_cpu(hdr->seq_ctl); + + /*Filter pkt not to me*/ + multicast = is_multicast_ether_addr(hdr->addr1)|is_broadcast_ether_addr(hdr->addr1); + unicast = !multicast; + if (unicast && (compare_ether_addr(dev->dev_addr, hdr->addr1) != 0)) { + if(ieee->bNetPromiscuousMode) + bToOtherSTA = true; + else + goto rx_dropped; + } + + /*Filter pkt has too small length */ + hdrlen = rtllib_rx_get_hdrlen(ieee, skb, rx_stats); + if(skb->len < hdrlen){ + printk("%s():ERR!!! skb->len is smaller than hdrlen\n",__FUNCTION__); + goto rx_dropped; + } + + /* Filter Duplicate pkt */ + ret = rtllib_rx_check_duplicate(ieee, skb, multicast); + if(ret < 0) + goto rx_dropped; + + /* Filter CTRL Frame */ + if (type == RTLLIB_FTYPE_CTL) { + goto rx_dropped; + } + + /* Filter MGNT Frame */ + if (type == RTLLIB_FTYPE_MGMT) { + if(bToOtherSTA) + goto rx_dropped; + if (rtllib_rx_frame_mgmt(ieee, skb, rx_stats, type, stype)) + goto rx_dropped; + else + goto rx_exit; + } + + /* Filter WAPI DATA Frame */ +#if defined (RTL8192S_WAPI_SUPPORT) + if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable){ + wapiDectResult = SecIsWAIPacket(ieee, skb); + if(wapiDectResult !=0){ + if(memcmp(&ieee->wapiInfo.wapiSeqnumAndFragNum,&sc,2)) + WapiHandleRecvPacket(ieee, skb, wapiDectResult); + memcpy(&ieee->wapiInfo.wapiSeqnumAndFragNum,&sc,2); + dev_kfree_skb_any(skb); + goto rx_exit; + } + } +#endif + + /* Update statstics for AP roaming */ + if(!bToOtherSTA){ + ieee->LinkDetectInfo.NumRecvDataInPeriod++; + ieee->LinkDetectInfo.NumRxOkInPeriod++; + } + dev->last_rx = jiffies; + + /* Data frame - extract src/dst addresses */ + rtllib_rx_extract_addr(ieee, hdr, dst, src, bssid); + + /* Filter Data frames */ + ret = rtllib_rx_data_filter(ieee, fc, dst, src, bssid, hdr->addr2); + if(ret < 0) + goto rx_dropped; + + if(skb->len == hdrlen){ + goto rx_dropped; + } + + /* Send pspoll based on moredata */ +#ifdef ENABLE_LPS + if ((ieee->iw_mode == IW_MODE_INFRA) && (ieee->sta_sleep == LPS_IS_SLEEP) + && (ieee->polling) && (!bToOtherSTA)) { + if (WLAN_FC_MORE_DATA(fc)) { + /* more data bit is set, let's request a new frame from the AP */ + rtllib_sta_ps_send_pspoll_frame(ieee); + } else { + ieee->polling = false; + } + } +#endif + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + if(ieee->iw_mode == IW_MODE_ADHOC){ + psta = GetStaInfo(ieee, src); + if(NULL != psta) + psta->LastActiveTime = jiffies; + } +#endif + + /* Get crypt if encrypted */ + ret = rtllib_rx_get_crypt(ieee, skb, &crypt, hdrlen); + if(ret == -1) + goto rx_dropped; + + /* Decrypt data frame (including reassemble) */ + ret = rtllib_rx_decrypt(ieee, &skb, rx_stats, crypt, hdrlen); + if(ret == -1) + goto rx_dropped; + else if(ret == -2) + goto rx_exit; + + /* Get TS for Rx Reorder */ + hdr = (struct rtllib_hdr_4addr *) skb->data; + if(ieee->current_network.qos_data.active && IsQoSDataFrame(skb->data) + && !is_multicast_ether_addr(hdr->addr1) && !is_broadcast_ether_addr(hdr->addr1) + && (!bToOtherSTA)) + { + TID = Frame_QoSTID(skb->data); + SeqNum = WLAN_GET_SEQ_SEQ(sc); + GetTs(ieee,(PTS_COMMON_INFO*) &pTS,hdr->addr2,TID,RX_DIR,true); + if(TID !=0 && TID !=3){ + ieee->bis_any_nonbepkts = true; + } + } + + /* Parse rx data frame (For AMSDU) */ + /* skb: hdr + (possible reassembled) full plaintext payload */ + payload = skb->data + hdrlen; + rxb = (struct rtllib_rxb*)kmalloc(sizeof(struct rtllib_rxb),GFP_ATOMIC); + if(rxb == NULL) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR,"%s(): kmalloc rxb error\n",__FUNCTION__); + goto rx_dropped; + } + /* to parse amsdu packets */ + /* qos data packets & reserved bit is 1 */ + if(parse_subframe(ieee,skb,rx_stats,rxb,src,dst) == 0) { + /* only to free rxb, and not submit the packets to upper layer */ + for(i =0; i < rxb->nr_subframes; i++) { + dev_kfree_skb(rxb->subframes[i]); + } + kfree(rxb); + rxb = NULL; + goto rx_dropped; + } + + /* Update WAPI PN */ +#ifdef RTL8192S_WAPI_SUPPORT + if(ieee->wapiInfo.bWapiEnable){ + if(rxb){ + rxb->UserPriority = TID; + memcpy(rxb->WapiTempPN, rx_stats->WapiTempPN, 16); + memcpy(rxb->WapiSrcAddr, rx_stats->WapiSrcAddr, 6); + rxb->bWapiCheckPNInDecrypt = rx_stats->bWapiCheckPNInDecrypt; + } + } +#endif + + /* Check if leave LPS */ + if(!bToOtherSTA){ + if(ieee->bIsAggregateFrame) + nr_subframes = rxb->nr_subframes; + else + nr_subframes = 1; + if(unicast) + ieee->LinkDetectInfo.NumRxUnicastOkInPeriod += nr_subframes; + rtllib_rx_check_leave_lps(ieee, unicast, nr_subframes); + } + + /* Indicate packets to upper layer or Rx Reorder */ + if(ieee->pHTInfo->bCurRxReorderEnable == false ||pTS == NULL || bToOtherSTA){ + rtllib_rx_indicate_pkt_legacy(ieee, rx_stats, rxb, dst, src); + }else{ +#ifdef TCP_CSUM_OFFLOAD_RX + rxb->tcp_csum_valid = rx_stats->tcp_csum_valid; +#endif + RxReorderIndicatePacket(ieee, rxb, pTS, SeqNum); + } + + dev_kfree_skb(skb); + skb = NULL; + + rx_exit: + return 1; + + rx_dropped: + if (rxb != NULL) + { + kfree(rxb); + rxb = NULL; + } + ieee->stats.rx_dropped++; + + /* Returning 0 indicates to caller that we have not handled the SKB-- + * so it is still allocated and can be used again by underlying + * hardware as a DMA target */ + return 0; +} + +int rtllib_rx_Master(struct rtllib_device *ieee, struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats) +{ + return 0; +} +int rtllib_rx_Monitor(struct rtllib_device *ieee, struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats) +{ + struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data; + u16 fc = le16_to_cpu(hdr->frame_ctl); + size_t hdrlen = rtllib_get_hdrlen(fc); + + if(skb->len < hdrlen){ + printk("%s():ERR!!! skb->len is smaller than hdrlen\n", __func__); + return 0; + } + + if (HTCCheck(ieee, skb->data)) { + if(net_ratelimit()) + printk("%s: Find HTCControl!\n", __func__); + hdrlen += 4; + } + +#if WIRELESS_EXT > 15 + rtllib_monitor_rx(ieee, skb, rx_stats, hdrlen); + ieee->stats.rx_packets++; + ieee->stats.rx_bytes += skb->len; +#endif + return 1; +} +#ifdef _RTL8192_EXT_PATCH_ +extern u8 msh_parse_subframe(struct rtllib_device *ieee,struct sk_buff *skb, struct rtllib_rxb *rxb); +extern int msh_rx_process_dataframe(struct rtllib_device *ieee, struct rtllib_rxb *rxb, struct rtllib_rx_stats *rx_stats); +int rtllib_rx_get_mesh_crypt( + struct rtllib_device *ieee, + struct sk_buff *skb, + struct rtllib_crypt_data **crypt, + size_t hdrlen) +{ + struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data; + u16 fc = le16_to_cpu(hdr->frame_ctl); + int idx = 0, i; + u8 find_crypt = false; + + if (ieee->host_decrypt){ + if (skb->len >= hdrlen + 3) + idx = skb->data[hdrlen + 3] >> 6; + if (ieee->mesh_sec_type == 1) { + if(ieee->mesh_security_setting==1 ||ieee->mesh_security_setting==3){ + i = rtllib_find_MP(ieee, hdr->addr2, 0); + if(is_multicast_ether_addr(hdr->addr1) || is_broadcast_ether_addr(hdr->addr1)){ + if(ieee->only_mesh){ + if(i != -1){ + i=0; + }else{ + printk("%s: Err find MP ("MAC_FMT")!SAE, Multicast and only mesh\n", __func__, MAC_ARG(hdr->addr2)); + return -1; + } + }else{ + if(i != -1){ + i=0; + }else{ + find_crypt = true; + *crypt = ieee->sta_crypt[idx]; + } + } + }else{ + if(ieee->only_mesh){ + if (i == -1){ + printk("%s: Err find MP ("MAC_FMT")!SAE, Unicast and only mesh\n", __func__, MAC_ARG(hdr->addr2)); + return -1; + } + }else{ + if (i == -1){ + find_crypt = true; + *crypt = ieee->sta_crypt[idx]; + } + } + } + if(find_crypt == false){ + if(ieee->cryptlist[i] == NULL) + return -1; + else + *crypt = ieee->cryptlist[i]->crypt[idx]; + } + } + } + else { + *crypt = ieee->cryptlist[0]->crypt[idx]; + if(*crypt){ + int i = rtllib_find_MP(ieee, hdr->addr2, 0); + if(ieee->only_mesh){ + if (i == -1){ + printk("%s: Err find MP ("MAC_FMT")!Not SAE, Only mesh.\n", __func__, MAC_ARG(hdr->addr2)); + return -1; + } + if (ieee->cryptlist[i] && ieee->cryptlist[i]->crypt[idx]) + *crypt = ieee->cryptlist[i]->crypt[idx]; + else{ + *crypt = NULL; + printk("%s: Err find crypt!Not SAE, Only mesh.\n", __func__); + return -1; + } + }else{ + if(i != -1) + { + if (ieee->cryptlist[i] && ieee->cryptlist[i]->crypt[idx]) + *crypt = ieee->cryptlist[i]->crypt[idx]; + else{ + *crypt = NULL; + printk("%s: Err find crypt!Not SAE, Only mesh.\n", __func__); + return -1; + } + } + else + *crypt = ieee->sta_crypt[idx]; + } + } + else{ + if(!ieee->ext_patch_rtllib_is_mesh(ieee,hdr->addr2)) + *crypt = ieee->sta_crypt[idx]; + } + } + + /* allow NULL decrypt to indicate an station specific override + * for default encryption */ + if (*crypt && ((*crypt)->ops == NULL || + (*crypt)->ops->decrypt_mpdu == NULL)) + *crypt = NULL; + + if (!*crypt && (fc & RTLLIB_FCTL_WEP)) { + /* This seems to be triggered by some (multicast?) + * frames from other than current BSS, so just drop the + * frames silently instead of filling system log with + * these reports. */ + RTLLIB_DEBUG_DROP("Decryption failed (not set)" + " (SA=" MAC_FMT ")\n", + MAC_ARG(hdr->addr2)); + ieee->ieee_stats.rx_discards_undecryptable++; + return -1; + } + } + return 0; +} +#endif + +int rtllib_rx_Mesh(struct rtllib_device *ieee, struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats) +{ +#ifdef _RTL8192_EXT_PATCH_ + struct net_device *dev = ieee->dev; + struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data; + struct rtllib_crypt_data *crypt = NULL; + struct rtllib_rxb* rxb = NULL; + PRX_TS_RECORD pTS = NULL; + u16 fc, sc, SeqNum = 0; + u8 type, stype, multicast = 0, unicast = 0, nr_subframes = 0, TID = 0; + u8 dst[ETH_ALEN], src[ETH_ALEN], bssid[ETH_ALEN] = {0}, *payload; + size_t hdrlen = 0; + int ret = 0, i = 0; + + hdr = (struct rtllib_hdr_4addr *)skb->data; + fc = le16_to_cpu(hdr->frame_ctl); + type = WLAN_FC_GET_TYPE(fc); + stype = WLAN_FC_GET_STYPE(fc); + sc = le16_to_cpu(hdr->seq_ctl); + + /*Filter pkt not to me*/ + multicast = is_multicast_ether_addr(hdr->addr1)|is_broadcast_ether_addr(hdr->addr1); + unicast = !multicast; + if (unicast && (compare_ether_addr(dev->dev_addr, hdr->addr1) != 0)) { + goto rx_dropped; + } + + /*Filter pkt has too small length */ + hdrlen = rtllib_rx_get_hdrlen(ieee, skb, rx_stats); + if(skb->len < hdrlen){ + printk("%s():ERR!!! skb->len is smaller than hdrlen\n",__FUNCTION__); + goto rx_dropped; + } + + /* Filter Duplicate pkt */ + ret = rtllib_rx_check_duplicate(ieee, skb, multicast); + if(ret < 0){ + goto rx_dropped; + } + + /* Update PeerMP expire time */ + if(ieee->ext_patch_rtllib_rx_mgt_update_expire) + ieee->ext_patch_rtllib_rx_mgt_update_expire( ieee, skb ); + + /* Filter CTRL Frame */ + if (type == RTLLIB_FTYPE_CTL) { + goto rx_dropped; + } + + /* Filter MGNT Frame */ + if (type == RTLLIB_FTYPE_MGMT) { + if (rtllib_rx_frame_mgmt(ieee, skb, rx_stats, type, stype)){ + printk("%s: Mgnt Frame! ret!=0\n", __func__); + goto rx_dropped; + } + else + goto rx_exit; + } + + /* Update statstics for AP roaming */ + if(ieee->only_mesh == 0){ + ieee->LinkDetectInfo.NumRecvDataInPeriod++; + ieee->LinkDetectInfo.NumRxOkInPeriod++; + dev->last_rx = jiffies; + } + + /* Data frame - extract src/dst addresses */ + rtllib_rx_extract_addr(ieee, hdr, dst, src, bssid); + + /* Filter Data frames */ + ret = rtllib_rx_data_filter(ieee, fc, dst, src, bssid, hdr->addr2); + if(ret < 0){ + goto rx_dropped; + } + if(skb->len == hdrlen){ + goto rx_dropped; + } + + /* Get crypt if encrypted */ + ret = rtllib_rx_get_mesh_crypt(ieee, skb, &crypt, hdrlen); + if(ret == -1) + goto rx_dropped; + + /* Decrypt data frame (including reassemble) */ + ret = rtllib_rx_decrypt(ieee, &skb, rx_stats, crypt, hdrlen); + if(ret == -1) + goto rx_dropped; + else if(ret == -2) + goto rx_exit; + + /* Get TS for Rx Reorder */ + hdr = (struct rtllib_hdr_4addr *) skb->data; + if(ieee->current_network.qos_data.active && IsQoSDataFrame(skb->data) + && !is_multicast_ether_addr(hdr->addr1) && !is_broadcast_ether_addr(hdr->addr1)) + { + TID = Frame_QoSTID(skb->data); + SeqNum = WLAN_GET_SEQ_SEQ(sc); + GetTs(ieee,(PTS_COMMON_INFO*) &pTS,hdr->addr2,TID,RX_DIR,true); + if(TID !=0 && TID !=3){ + ieee->bis_any_nonbepkts = true; + } + } + + /* Parse rx data frame */ + if((fc & (WIFI_MESH_TYPE | RTLLIB_FCTL_DSTODS)) + == (WIFI_MESH_TYPE | RTLLIB_FCTL_DSTODS)) + { + /* Parse Mesh data frame */ + rxb = (struct rtllib_rxb*)kmalloc(sizeof(struct rtllib_rxb),GFP_ATOMIC); + if(rxb == NULL) + { + printk("%s(): kmalloc rxb error\n", __func__); + goto rx_dropped; + } + memset(rxb, 0, sizeof(struct rtllib_rxb)); + if(msh_parse_subframe(ieee, skb, rxb)==0){ + /* only to free rxb, and not submit the packets to upper layer */ + for(i =0; i < rxb->nr_subframes; i++) { + if(rxb->subframes[i]) + dev_kfree_skb(rxb->subframes[i]); + } + kfree(rxb); + rxb = NULL; + goto rx_dropped; + } + ret = msh_rx_process_dataframe(ieee,rxb,rx_stats); + if(ret < 0) { + for(i =0; i < rxb->nr_subframes; i++) { + if(rxb->subframes[i]) + dev_kfree_skb(rxb->subframes[i]); + } + kfree(rxb); + rxb = NULL; + goto rx_dropped; + }else{ + kfree(rxb); + rxb = NULL; + } + } + else{ + /* Parse INFRA data frame (Server Ra0 mode) */ + /* skb: hdr + (possible reassembled) full plaintext payload */ + payload = skb->data + hdrlen; + rxb = (struct rtllib_rxb*)kmalloc(sizeof(struct rtllib_rxb),GFP_ATOMIC); + if(rxb == NULL) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR,"%s(): kmalloc rxb error\n", __func__); + goto rx_dropped; + } + /* to parse amsdu packets */ + /* qos data packets & reserved bit is 1 */ + if(parse_subframe(ieee,skb,rx_stats,rxb,src,dst) == 0) { + /* only to free rxb, and not submit the packets to upper layer */ + for(i =0; i < rxb->nr_subframes; i++) { + dev_kfree_skb(rxb->subframes[i]); + } + kfree(rxb); + rxb = NULL; + goto rx_dropped; + } + + if(ieee->bIsAggregateFrame) + nr_subframes = rxb->nr_subframes; + else + nr_subframes = 1; + if(unicast) + ieee->LinkDetectInfo.NumRxUnicastOkInPeriod += nr_subframes; + + /* Indicate packets to upper layer or Rx Reorder */ + if(ieee->pHTInfo->bCurRxReorderEnable == false ||pTS == NULL){ + rtllib_rx_indicate_pkt_legacy(ieee, rx_stats, rxb, dst, src); + }else{ + RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): REORDER ENABLE AND PTS not NULL, and we will enter RxReorderIndicatePacket()\n",__FUNCTION__); +#ifdef TCP_CSUM_OFFLOAD_RX + rxb->tcp_csum_valid = rx_stats->tcp_csum_valid; +#endif + RxReorderIndicatePacket(ieee, rxb, pTS, SeqNum); + } + } + + dev_kfree_skb(skb); + skb = NULL; + + + rx_exit: + return 1; + + rx_dropped: + if (rxb != NULL) + { + kfree(rxb); + rxb = NULL; + } + ieee->stats.rx_dropped++; + + /* Returning 0 indicates to caller that we have not handled the SKB-- + * so it is still allocated and can be used again by underlying + * hardware as a DMA target */ +#endif + return 0; +} + +#if 1 +/* All received frames are sent to this function. @skb contains the frame in + * IEEE 802.11 format, i.e., in the format it was sent over air. + * This function is called only as a tasklet (software IRQ). */ +int rtllib_rx(struct rtllib_device *ieee, struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats) +{ + int ret = 0; + + if((NULL==ieee) || (NULL==skb) || (NULL==rx_stats)){ + printk(KERN_INFO "%s: Input parameters NULL!\n", __func__); + goto rx_dropped; + } + if (skb->len < 10) { + printk(KERN_INFO "%s: SKB length < 10 \n", __func__); + goto rx_dropped; + } + + + if(ieee->softmac_process_bt_pkt) + ieee->softmac_process_bt_pkt(skb, ieee->dev); + + switch(ieee->iw_mode){ + case IW_MODE_ADHOC: + case IW_MODE_INFRA: + ret = rtllib_rx_InfraAdhoc(ieee, skb, rx_stats); + break; + case IW_MODE_MASTER: + case IW_MODE_REPEAT: + ret = rtllib_rx_Master(ieee, skb, rx_stats); + break; + case IW_MODE_MONITOR: + ret = rtllib_rx_Monitor(ieee, skb, rx_stats); + break; + case IW_MODE_MESH: + ret = rtllib_rx_Mesh(ieee, skb, rx_stats); + break; + default: + printk(KERN_INFO"%s: ERR iw mode!!!\n", __func__); + break; + } + + return ret; + + rx_dropped: + ieee->stats.rx_dropped++; + return 0; +} +#else +int rtllib_rx(struct rtllib_device *ieee, struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats) +{ + struct net_device *dev = ieee->dev; + struct rtllib_hdr_4addr *hdr; + size_t hdrlen; + u16 fc, type, stype, sc; + struct net_device_stats *stats = NULL; + unsigned int frag; + u8 *payload; + u16 ethertype; + u8 TID = 0; + u16 SeqNum = 0; + PRX_TS_RECORD pTS = NULL; +#ifdef NOT_YET + struct net_device *wds = NULL; + struct sk_buff *skb2 = NULL; + struct net_device *wds = NULL; + int frame_authorized = 0; + int from_assoc_ap = 0; + void *sta = NULL; +#endif + u8 dst[ETH_ALEN]; + u8 src[ETH_ALEN]; + u8 bssid[ETH_ALEN] = {0}; + u8 zero_addr[ETH_ALEN] = {0}; + struct rtllib_crypt_data *crypt = NULL; + int keyidx = 0; +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + struct sta_info * psta = NULL; +#endif + bool unicast_packet = false; + int i; + struct rtllib_rxb* rxb = NULL; + int multicast = 0; + bool tmp_dump = false; +#if defined _RTL8192_EXT_PATCH_ + int ret = 0; +#endif + bool bToOtherSTA = false; +#if defined (RTL8192S_WAPI_SUPPORT) + u8 wapiDectResult = 0; +#endif + hdr = (struct rtllib_hdr_4addr *)skb->data; + stats = &ieee->stats; + + multicast = is_multicast_ether_addr(hdr->addr1)|is_broadcast_ether_addr(hdr->addr1); + if (!multicast && (compare_ether_addr(dev->dev_addr, hdr->addr1) != 0)) { + if ((ieee->iw_mode == IW_MODE_MONITOR) || ieee->bNetPromiscuousMode){ + bToOtherSTA = true; + }else{ + goto rx_dropped; + } + } + + fc = le16_to_cpu(hdr->frame_ctl); + type = WLAN_FC_GET_TYPE(fc); + stype = WLAN_FC_GET_STYPE(fc); + sc = le16_to_cpu(hdr->seq_ctl); + frag = WLAN_GET_SEQ_FRAG(sc); + + ieee->need_sw_enc = 0; + + hdrlen = rtllib_get_hdrlen(fc); + if(skb->len < hdrlen){ + printk("%s():ERR!!! skb->len is smaller than hdrlen\n",__FUNCTION__); + goto rx_dropped; + } + + if (HTCCheck(ieee, skb->data)) { + if(net_ratelimit()) + printk("find HTCControl\n"); + hdrlen += 4; + rx_stats->bContainHTC = 1; + } + if(RTLLIB_QOS_HAS_SEQ(fc)) + rx_stats->bIsQosData = 1; + if ((0) && (type == RTLLIB_FTYPE_DATA) && ((is_broadcast_ether_addr(hdr->addr1)) || (compare_ether_addr(dev->dev_addr, hdr->addr1) == 0))) { + printk("===>RX data before decrypt\n"); + tmp_dump = true; + dump_buf(skb->data,skb->len); + } +#ifdef NOT_YET + hostap_update_rx_stats(local->ap, hdr, rx_stats); +#endif + +#ifndef _RTL8192_EXT_PATCH_ +#if defined (RTL8192S_WAPI_SUPPORT) + if (ieee->host_decrypt && (!ieee->wapiInfo.bWapiEnable)) +#else + if (ieee->host_decrypt) +#endif + { + int idx = 0; + if (skb->len >= hdrlen + 3) + idx = skb->data[hdrlen + 3] >> 6; + crypt = ieee->crypt[idx]; +#ifdef NOT_YET + sta = NULL; + + /* Use station specific key to override default keys if the + * receiver address is a unicast address ("individual RA"). If + * bcrx_sta_key parameter is set, station specific key is used + * even with broad/multicast targets (this is against IEEE + * 802.11, but makes it easier to use different keys with + * stations that do not support WEP key mapping). */ + + if (!(hdr->addr1[0] & 0x01) || local->bcrx_sta_key) + (void) hostap_handle_sta_crypto(local, hdr, &crypt, + &sta); +#endif + + /* allow NULL decrypt to indicate an station specific override + * for default encryption */ + if (crypt && (crypt->ops == NULL || + crypt->ops->decrypt_mpdu == NULL)) + crypt = NULL; + + if (!crypt && (fc & RTLLIB_FCTL_WEP)) { + /* This seems to be triggered by some (multicast?) + * frames from other than current BSS, so just drop the + * frames silently instead of filling system log with + * these reports. */ + RTLLIB_DEBUG_DROP("Decryption failed (not set)" + " (SA=" MAC_FMT ")\n", + MAC_ARG(hdr->addr2)); + ieee->ieee_stats.rx_discards_undecryptable++; + goto rx_dropped; + } + } +#endif + + if (skb->len < RTLLIB_DATA_HDR3_LEN) + goto rx_dropped; + +#ifdef _RTL8192_EXT_PATCH_ + if( (ieee->pHTInfo->bCurRxReorderEnable == false) || + !ieee->current_network.qos_data.active|| + !IsDataFrame(skb->data) || + IsLegacyDataFrame(skb->data) || + multicast) { + if (!multicast) { + if (is_duplicate_packet(ieee, hdr)){ + goto rx_dropped; + } + } + } +#else + if( (ieee->pHTInfo->bCurRxReorderEnable == false) || + !ieee->current_network.qos_data.active || + !IsDataFrame(skb->data) || + IsLegacyDataFrame(skb->data)) { + if(!((type == RTLLIB_FTYPE_MGMT) && (stype == RTLLIB_STYPE_BEACON))){ + if (is_duplicate_packet(ieee, hdr)){ + goto rx_dropped; + } + } + } +#endif + else { + PRX_TS_RECORD pRxTS = NULL; + if (GetTs(ieee, (PTS_COMMON_INFO*) &pRxTS, hdr->addr2, + (u8)Frame_QoSTID((u8*)(skb->data)), RX_DIR, true)) { + if ((fc & (1<<11)) && (frag == pRxTS->RxLastFragNum) && + (WLAN_GET_SEQ_SEQ(sc) == pRxTS->RxLastSeqNum)) { + goto rx_dropped; + } else { + pRxTS->RxLastFragNum = frag; + pRxTS->RxLastSeqNum = WLAN_GET_SEQ_SEQ(sc); + } + } else { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "ERR!!%s(): No TS!! Skip the check!!\n",__FUNCTION__); + goto rx_dropped; + } + } +#ifdef _RTL8192_EXT_PATCH_ + if((ieee->iw_mode == IW_MODE_MESH) && ieee->ext_patch_rtllib_rx_mgt_update_expire) + ieee->ext_patch_rtllib_rx_mgt_update_expire( ieee, skb ); +#endif + if (type == RTLLIB_FTYPE_MGMT) { + if (bToOtherSTA){ + goto rx_dropped; + } + if (rtllib_rx_frame_mgmt(ieee, skb, rx_stats, type, stype)) + goto rx_dropped; + else + goto rx_exit; + } + if (type == RTLLIB_FTYPE_CTL) { + goto rx_dropped; + } +#if defined (RTL8192S_WAPI_SUPPORT) + if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable){ + wapiDectResult = SecIsWAIPacket(ieee, skb); + if(wapiDectResult !=0){ + if(memcmp(&ieee->wapiInfo.wapiSeqnumAndFragNum,&sc,2)) + WapiHandleRecvPacket(ieee, skb, wapiDectResult); + memcpy(&ieee->wapiInfo.wapiSeqnumAndFragNum,&sc,2); + dev_kfree_skb_any(skb); + goto rx_exit; + } + } +#endif + /* Data frame - extract src/dst addresses */ + switch (fc & (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) { + case RTLLIB_FCTL_FROMDS: + memcpy(dst, hdr->addr1, ETH_ALEN); + memcpy(src, hdr->addr3, ETH_ALEN); + memcpy(bssid, hdr->addr2, ETH_ALEN); + break; + case RTLLIB_FCTL_TODS: + memcpy(dst, hdr->addr3, ETH_ALEN); + memcpy(src, hdr->addr2, ETH_ALEN); + memcpy(bssid, hdr->addr1, ETH_ALEN); + break; + case RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS: + if (skb->len < RTLLIB_DATA_HDR4_LEN) + goto rx_dropped; + memcpy(dst, hdr->addr3, ETH_ALEN); + memcpy(src, hdr->addr4, ETH_ALEN); +#ifdef _RTL8192_EXT_PATCH_ + memcpy(bssid, ieee->current_mesh_network.bssid, ETH_ALEN); +#else + memcpy(bssid, ieee->current_network.bssid, ETH_ALEN); +#endif + break; + case 0: + memcpy(dst, hdr->addr1, ETH_ALEN); + memcpy(src, hdr->addr2, ETH_ALEN); + memcpy(bssid, hdr->addr3, ETH_ALEN); + break; + } + + /* Filter frames from different BSS */ + if ((type != RTLLIB_FTYPE_CTL) && ((fc & RTLLIB_FCTL_DSTODS) != RTLLIB_FCTL_DSTODS) + && (compare_ether_addr(ieee->current_network.bssid, bssid) != 0) && memcmp(ieee->current_network.bssid, zero_addr, ETH_ALEN)) { + goto rx_dropped; + } + + /* Filter packets sent by an STA that will be forwarded by AP */ + if ( ieee->IntelPromiscuousModeInfo.bPromiscuousOn && + ieee->IntelPromiscuousModeInfo.bFilterSourceStationFrame ) { + if ((fc & RTLLIB_FCTL_TODS) && !(fc & RTLLIB_FCTL_FROMDS) && + (compare_ether_addr(dst, ieee->current_network.bssid) != 0) && + (compare_ether_addr(bssid, ieee->current_network.bssid) == 0)) { + goto rx_dropped; + } + } + +#ifdef NOT_YET + if (hostap_rx_frame_wds(ieee, hdr, fc, &wds)) + goto rx_dropped; + if (wds) { + skb->dev = dev = wds; + stats = hostap_get_stats(dev); + } + + if (ieee->iw_mode == IW_MODE_MASTER && !wds && + (fc & (RTLLIB_FCTL_TODS | RTLLIB_FCTL_FROMDS)) == RTLLIB_FCTL_FROMDS && + ieee->stadev && + memcmp(hdr->addr2, ieee->assoc_ap_addr, ETH_ALEN) == 0) { + /* Frame from BSSID of the AP for which we are a client */ + skb->dev = dev = ieee->stadev; + stats = hostap_get_stats(dev); + from_assoc_ap = 1; + } +#endif + + dev->last_rx = jiffies; + +#ifdef NOT_YET + if ((ieee->iw_mode == IW_MODE_MASTER || + ieee->iw_mode == IW_MODE_REPEAT) && + !from_assoc_ap) { + switch (hostap_handle_sta_rx(ieee, dev, skb, rx_stats, + wds != NULL)) { + case AP_RX_CONTINUE_NOT_AUTHORIZED: + frame_authorized = 0; + break; + case AP_RX_CONTINUE: + frame_authorized = 1; + break; + case AP_RX_DROP: + goto rx_dropped; + case AP_RX_EXIT: + goto rx_exit; + } + } +#endif + /* Nullfunc frames may have PS-bit set, so they must be passed to + * hostap_handle_sta_rx() before being dropped here. */ + if (stype != RTLLIB_STYPE_DATA && + stype != RTLLIB_STYPE_DATA_CFACK && + stype != RTLLIB_STYPE_DATA_CFPOLL && + stype != RTLLIB_STYPE_DATA_CFACKPOLL&& + stype != RTLLIB_STYPE_QOS_DATA + ) { + if (stype != RTLLIB_STYPE_NULLFUNC) + RTLLIB_DEBUG_DROP( + "RX: dropped data frame " + "with no data (type=0x%02x, " + "subtype=0x%02x, len=%d)\n", + type, stype, skb->len); + goto rx_dropped; + } + + if(skb->len == hdrlen){ + goto rx_dropped; + } + +#ifdef _RTL8192_EXT_PATCH_ + if(ieee->iw_mode == IW_MODE_MESH) { + /* check whether it exists the mesh entry for data packet */ + if(ieee->ext_patch_rtllib_is_mesh&&\ + (false ==ieee->ext_patch_rtllib_is_mesh(ieee,hdr->addr2))) { + if(ieee->only_mesh) { + goto rx_dropped; + } else if(memcmp(bssid, ieee->current_network.bssid, ETH_ALEN)) { + goto rx_dropped; + } + } + } else +#endif + { +#if 0 + /* check bssid under none mesh mode */ + if (memcmp(bssid, ieee->current_network.bssid, ETH_ALEN)) { + goto rx_dropped; + } +#endif + /* network filter more precisely */ + switch (ieee->iw_mode) { + case IW_MODE_ADHOC: + /* packets from our adapter are dropped (echo) */ + if (!memcmp(hdr->addr2, dev->dev_addr, ETH_ALEN)) + goto rx_dropped; + + /* {broad,multi}cast packets to our BSSID go through */ + if (is_multicast_ether_addr(hdr->addr1)) { + if(!memcmp(hdr->addr3, ieee->current_network.bssid, ETH_ALEN)) + break; + else + goto rx_dropped; + } + + /* packets not to our adapter, just discard it */ + if (memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN)) { + if (bToOtherSTA) + break; + else + goto rx_dropped; + } + + break; + + case IW_MODE_INFRA: + /* packets from our adapter are dropped (echo) */ + if (!memcmp(hdr->addr3, dev->dev_addr, ETH_ALEN)) + goto rx_dropped; + + /* {broad,multi}cast packets to our BSS go through */ + if (is_multicast_ether_addr(hdr->addr1)) { + if (!memcmp(hdr->addr2, ieee->current_network.bssid, ETH_ALEN)) { + break; + } else { + goto rx_dropped; + } + } + + /* packets to our adapter go through */ + if (memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN)) { + if (bToOtherSTA) + break; + else + goto rx_dropped; + } + + break; + } + + + } + +#ifdef ENABLE_LPS + if ((ieee->iw_mode == IW_MODE_INFRA) && (ieee->sta_sleep == LPS_IS_SLEEP) + && (ieee->polling)) { + if (WLAN_FC_MORE_DATA(fc)) { + /* more data bit is set, let's request a new frame from the AP */ + rtllib_sta_ps_send_pspoll_frame(ieee); + } else { + ieee->polling = false; + } + } +#endif + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + if(ieee->iw_mode == IW_MODE_ADHOC){ + psta = GetStaInfo(ieee, src); + if(NULL != psta) + psta->LastActiveTime = jiffies; + } +#endif + /* skb: hdr + (possibly fragmented, possibly encrypted) payload */ +#ifdef _RTL8192_EXT_PATCH_ +#if defined (RTL8192S_WAPI_SUPPORT) + if (ieee->host_decrypt && (!ieee->wapiInfo.bWapiEnable)) +#else + if (ieee->host_decrypt) +#endif + { + + int idx = 0; + if (skb->len >= hdrlen + 3) + idx = skb->data[hdrlen + 3] >> 6; + if (ieee->iw_mode == IW_MODE_MESH) + { + if (ieee->mesh_sec_type == 1) { + if(ieee->mesh_security_setting==1 ||ieee->mesh_security_setting==3) + { + bool find_crypt = false; + i = rtllib_find_MP(ieee, hdr->addr2, 0); + if(is_multicast_ether_addr(((struct rtllib_hdr_3addr*)skb->data)->addr1) || is_broadcast_ether_addr(((struct rtllib_hdr_3addr*)skb->data)->addr1)) + { + if(ieee->only_mesh){ + if(i != -1){ + i=0; + }else{ + printk("err find crypt\n"); + goto rx_dropped; + } + }else{ + if(i != -1){ + i=0; + }else{ + find_crypt = true; + crypt = ieee->sta_crypt[idx]; + } + } + }else{ + if(ieee->only_mesh){ + if (i != -1){ + }else{ + printk("err find crypt\n"); + goto rx_dropped; + } + }else{ + if (i != -1){ + }else{ + find_crypt = true; + crypt = ieee->sta_crypt[idx]; + } + } + } + if(find_crypt == false){ + if(ieee->cryptlist[i] == NULL) + goto rx_dropped; + else + crypt = ieee->cryptlist[i]->crypt[idx]; + } + } + } + else { + crypt = ieee->cryptlist[0]->crypt[idx]; + if(crypt) + { + int i = rtllib_find_MP(ieee, hdr->addr2, 0); + if(ieee->only_mesh) + { + if (i == -1) + { + printk("error find entry in entry list\n"); + goto rx_dropped; + } + if (ieee->cryptlist[i]&&ieee->cryptlist[i]->crypt[idx]) + crypt = ieee->cryptlist[i]->crypt[idx]; + + else + crypt = NULL; + } + else + { + if(i != -1) + { + if (ieee->cryptlist[i]&&ieee->cryptlist[i]->crypt[idx]) + crypt = ieee->cryptlist[i]->crypt[idx]; + else + crypt = NULL; + } + else + crypt = ieee->sta_crypt[idx]; + + } + } + else + { + if(!ieee->ext_patch_rtllib_is_mesh(ieee,hdr->addr2)) + crypt = ieee->sta_crypt[idx]; + } + } + } + else + crypt = ieee->sta_crypt[idx]; +#ifdef NOT_YET + sta = NULL; + + /* Use station specific key to override default keys if the + * receiver address is a unicast address ("individual RA"). If + * bcrx_sta_key parameter is set, station specific key is used + * even with broad/multicast targets (this is against IEEE + * 802.11, but makes it easier to use different keys with + * stations that do not support WEP key mapping). */ + + if (!(hdr->addr1[0] & 0x01) || local->bcrx_sta_key) + (void) hostap_handle_sta_crypto(local, hdr, &crypt, + &sta); +#endif + + /* allow NULL decrypt to indicate an station specific override + * for default encryption */ + if (crypt && (crypt->ops == NULL || + crypt->ops->decrypt_mpdu == NULL)) + crypt = NULL; + + if (!crypt && (fc & RTLLIB_FCTL_WEP)) { + /* This seems to be triggered by some (multicast?) + * frames from other than current BSS, so just drop the + * frames silently instead of filling system log with + * these reports. */ + RTLLIB_DEBUG_DROP("Decryption failed (not set)" + " (SA=" MAC_FMT ")\n", + MAC_ARG(hdr->addr2)); + ieee->ieee_stats.rx_discards_undecryptable++; + goto rx_dropped; + } + } +#endif + if((!rx_stats->Decrypted)){ + ieee->need_sw_enc = 1; + } + + if (ieee->host_decrypt && (fc & RTLLIB_FCTL_WEP) && + ((keyidx = rtllib_rx_frame_decrypt(ieee, skb, crypt)) < 0) +#if defined (RTL8192S_WAPI_SUPPORT) + && (!ieee->wapiInfo.bWapiEnable) +#endif + ) + { + printk("decrypt frame error\n"); + goto rx_dropped; + } + if (tmp_dump) { + printk("************after decrypt\n"); + dump_buf(skb->data,skb->len); + } +#if defined (RTL8192S_WAPI_SUPPORT) + if(ieee->wapiInfo.bWapiEnable){ + if(ieee->pairwise_key_type == KEY_TYPE_SMS4){ + if(false == SecSWSMS4Decryption(ieee, skb, rx_stats)){ + WAPI_TRACE(WAPI_ERR, "%s():SMS4 decrypt frame error\n",__FUNCTION__); + goto rx_dropped; + } + } + } +#endif + hdr = (struct rtllib_hdr_4addr *) skb->data; + + /* skb: hdr + (possibly fragmented) plaintext payload */ + if ((frag != 0 || (fc & RTLLIB_FCTL_MOREFRAGS))) { + int flen; + struct sk_buff *frag_skb = rtllib_frag_cache_get(ieee, hdr); + RTLLIB_DEBUG_FRAG("Rx Fragment received (%u)\n", frag); + + if (!frag_skb) { + RTLLIB_DEBUG(RTLLIB_DL_RX | RTLLIB_DL_FRAG, + "Rx cannot get skb from fragment " + "cache (morefrag=%d seq=%u frag=%u)\n", + (fc & RTLLIB_FCTL_MOREFRAGS) != 0, + WLAN_GET_SEQ_SEQ(sc), frag); + goto rx_dropped; + } + flen = skb->len; + if (frag != 0) + flen -= hdrlen; + + if (frag_skb->tail + flen > frag_skb->end) { + printk(KERN_WARNING "%s: host decrypted and " + "reassembled frame did not fit skb\n", + dev->name); + rtllib_frag_cache_invalidate(ieee, hdr); + goto rx_dropped; + } + + if (frag == 0) { + /* copy first fragment (including full headers) into + * beginning of the fragment cache skb */ + memcpy(skb_put(frag_skb, flen), skb->data, flen); + } else { + /* append frame payload to the end of the fragment + * cache skb */ + memcpy(skb_put(frag_skb, flen), skb->data + hdrlen, + flen); + } + dev_kfree_skb_any(skb); + skb = NULL; + + if (fc & RTLLIB_FCTL_MOREFRAGS) { + /* more fragments expected - leave the skb in fragment + * cache for now; it will be delivered to upper layers + * after all fragments have been received */ + goto rx_exit; + } + + /* this was the last fragment and the frame will be + * delivered, so remove skb from fragment cache */ + skb = frag_skb; + hdr = (struct rtllib_hdr_4addr *) skb->data; + rtllib_frag_cache_invalidate(ieee, hdr); + } + + /* skb: hdr + (possible reassembled) full MSDU payload; possibly still + * encrypted/authenticated */ + if (ieee->host_decrypt && (fc & RTLLIB_FCTL_WEP) && +#if defined (RTL8192S_WAPI_SUPPORT) + (!ieee->wapiInfo.bWapiEnable) && +#endif + rtllib_rx_frame_decrypt_msdu(ieee, skb, keyidx, crypt)) + { + printk("==>decrypt msdu error\n"); + goto rx_dropped; + } + + ieee->LinkDetectInfo.NumRecvDataInPeriod++; + ieee->LinkDetectInfo.NumRxOkInPeriod++; + + hdr = (struct rtllib_hdr_4addr *) skb->data; + if((!is_multicast_ether_addr(hdr->addr1)) && (!is_broadcast_ether_addr(hdr->addr1))) + unicast_packet = true; + if (crypt && !(fc & RTLLIB_FCTL_WEP) && !ieee->open_wep) { + if (/*ieee->ieee802_1x &&*/ + rtllib_is_eapol_frame(ieee, skb, hdrlen)) { + +#ifdef CONFIG_RTLLIB_DEBUG + /* pass unencrypted EAPOL frames even if encryption is + * configured */ + struct eapol *eap = (struct eapol *)(skb->data + + 24); + RTLLIB_DEBUG_EAP("RX: IEEE 802.1X EAPOL frame: %s\n", + eap_get_type(eap->type)); +#endif + } else { + RTLLIB_DEBUG_DROP( + "encryption configured, but RX " + "frame not encrypted (SA=" MAC_FMT ")\n", + MAC_ARG(hdr->addr2)); + goto rx_dropped; + } + } + +#ifdef CONFIG_RTLLIB_DEBUG + if (crypt && !(fc & RTLLIB_FCTL_WEP) && + rtllib_is_eapol_frame(ieee, skb, hdrlen)) { + struct eapol *eap = (struct eapol *)(skb->data + + 24); + RTLLIB_DEBUG_EAP("RX: IEEE 802.1X EAPOL frame: %s\n", + eap_get_type(eap->type)); + } +#endif + + if (crypt && !(fc & RTLLIB_FCTL_WEP) && !ieee->open_wep && + !rtllib_is_eapol_frame(ieee, skb, hdrlen)) { + RTLLIB_DEBUG_DROP( + "dropped unencrypted RX data " + "frame from " MAC_FMT + " (drop_unencrypted=1)\n", + MAC_ARG(hdr->addr2)); + goto rx_dropped; + } +/* + if(rtllib_is_eapol_frame(ieee, skb, hdrlen)) { + printk(KERN_WARNING "RX: IEEE802.1X EAPOL frame!\n"); + } +*/ + if(ieee->current_network.qos_data.active && IsQoSDataFrame(skb->data) + && !is_multicast_ether_addr(hdr->addr1) && !is_broadcast_ether_addr(hdr->addr1)) + { + TID = Frame_QoSTID(skb->data); + SeqNum = WLAN_GET_SEQ_SEQ(sc); + GetTs(ieee,(PTS_COMMON_INFO*) &pTS,hdr->addr2,TID,RX_DIR,true); + if(TID !=0 && TID !=3){ + ieee->bis_any_nonbepkts = true; + } + } +#ifdef _RTL8192_EXT_PATCH_ + if((fc & (WIFI_MESH_TYPE | RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) + == (WIFI_MESH_TYPE | RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) + { + if(ieee->iw_mode == IW_MODE_MESH){ + rxb = (struct rtllib_rxb*)kmalloc(sizeof(struct rtllib_rxb),GFP_ATOMIC); + if(rxb == NULL) + { + printk("%s(): kmalloc rxb error\n",__FUNCTION__); + goto rx_dropped; + } + memset(rxb, 0, sizeof(struct rtllib_rxb)); + if(msh_parse_subframe(ieee, skb, rxb)==0){ + /* only to free rxb, and not submit the packets to upper layer */ + for(i =0; i < rxb->nr_subframes; i++) { + if(rxb->subframes[i]) + dev_kfree_skb(rxb->subframes[i]); + } + kfree(rxb); + rxb = NULL; + goto rx_dropped; + } + ret = msh_rx_process_dataframe(ieee,rxb,rx_stats); + if(ret < 0) { + for(i =0; i < rxb->nr_subframes; i++) { + if(rxb->subframes[i]) + dev_kfree_skb(rxb->subframes[i]); + } + kfree(rxb); + rxb = NULL; + goto rx_dropped; + }else{ + kfree(rxb); + rxb = NULL; + } + }else + goto rx_dropped; + }else{ +#endif + /* skb: hdr + (possible reassembled) full plaintext payload */ + payload = skb->data + hdrlen; + rxb = (struct rtllib_rxb*)kmalloc(sizeof(struct rtllib_rxb),GFP_ATOMIC); + if(rxb == NULL) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR,"%s(): kmalloc rxb error\n",__FUNCTION__); + goto rx_dropped; + } + /* to parse amsdu packets */ + /* qos data packets & reserved bit is 1 */ + if(parse_subframe(ieee,skb,rx_stats,rxb,src,dst) == 0) { + /* only to free rxb, and not submit the packets to upper layer */ + for(i =0; i < rxb->nr_subframes; i++) { + dev_kfree_skb(rxb->subframes[i]); + } + kfree(rxb); + rxb = NULL; + goto rx_dropped; + } +#ifdef RTL8192S_WAPI_SUPPORT + if(ieee->wapiInfo.bWapiEnable){ + if(rxb){ + rxb->UserPriority = TID; + memcpy(rxb->WapiTempPN, rx_stats->WapiTempPN, 16); + memcpy(rxb->WapiSrcAddr, rx_stats->WapiSrcAddr, 6); + rxb->bWapiCheckPNInDecrypt = rx_stats->bWapiCheckPNInDecrypt; + } + } +#endif +#if !defined(RTL8192SU) && !defined(RTL8192U) +#ifdef ENABLE_LPS + if(unicast_packet) + { + if (type == RTLLIB_FTYPE_DATA) + { + + if(ieee->bIsAggregateFrame) + ieee->LinkDetectInfo.NumRxUnicastOkInPeriod+=rxb->nr_subframes; + else + ieee->LinkDetectInfo.NumRxUnicastOkInPeriod++; + + if((ieee->state == RTLLIB_LINKED) /*&& !MgntInitAdapterInProgress(pMgntInfo)*/) + { + if( ((ieee->LinkDetectInfo.NumRxUnicastOkInPeriod +ieee->LinkDetectInfo.NumTxOkInPeriod) > 8 ) || + (ieee->LinkDetectInfo.NumRxUnicastOkInPeriod > 2) ) + { + if(ieee->LeisurePSLeave) + ieee->LeisurePSLeave(dev); + } + } + } + } +#endif +#endif + ieee->last_rx_ps_time = jiffies; + if(ieee->pHTInfo->bCurRxReorderEnable == false ||pTS == NULL || bToOtherSTA ){ + for(i = 0; inr_subframes; i++) { + struct sk_buff *sub_skb = rxb->subframes[i]; + + if (sub_skb) { + /* convert hdr + possible LLC headers into Ethernet header */ + ethertype = (sub_skb->data[6] << 8) | sub_skb->data[7]; + if (sub_skb->len >= 8 && + ((memcmp(sub_skb->data, rfc1042_header, SNAP_SIZE) == 0 && + ethertype != ETH_P_AARP && ethertype != ETH_P_IPX) || + memcmp(sub_skb->data, bridge_tunnel_header, SNAP_SIZE) == 0)) { + /* remove RFC1042 or Bridge-Tunnel encapsulation and + * replace EtherType */ + skb_pull(sub_skb, SNAP_SIZE); + memcpy(skb_push(sub_skb, ETH_ALEN), src, ETH_ALEN); + memcpy(skb_push(sub_skb, ETH_ALEN), dst, ETH_ALEN); + } else { + u16 len; + /* Leave Ethernet header part of hdr and full payload */ + len = htons(sub_skb->len); + memcpy(skb_push(sub_skb, 2), &len, 2); + memcpy(skb_push(sub_skb, ETH_ALEN), src, ETH_ALEN); + memcpy(skb_push(sub_skb, ETH_ALEN), dst, ETH_ALEN); + } + + stats->rx_packets++; + stats->rx_bytes += sub_skb->len; + + if(is_multicast_ether_addr(dst)) { + stats->multicast++; + } + + /* Indicat the packets to upper layer */ + memset(sub_skb->cb, 0, sizeof(sub_skb->cb)); +#ifdef _RTL8192_EXT_PATCH_ + sub_skb->protocol = eth_type_trans(sub_skb, sub_skb->dev); +#else + sub_skb->protocol = eth_type_trans(sub_skb, dev); + sub_skb->dev = dev; +#endif +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) + sub_skb->dev->stats.rx_packets++; + sub_skb->dev->stats.rx_bytes += sub_skb->len; +#endif +#ifdef TCP_CSUM_OFFLOAD_RX + if ( rx_stats->tcp_csum_valid) + sub_skb->ip_summed = CHECKSUM_UNNECESSARY; + else + sub_skb->ip_summed = CHECKSUM_NONE; +#else + sub_skb->ip_summed = CHECKSUM_NONE; /* 802.11 crc not sufficient */ +#endif + + netif_rx(sub_skb); + } + } + kfree(rxb); + rxb = NULL; + + } + else + { + RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): REORDER ENABLE AND PTS not NULL, and we will enter RxReorderIndicatePacket()\n",__FUNCTION__); +#ifdef TCP_CSUM_OFFLOAD_RX + rxb->tcp_csum_valid = rx_stats->tcp_csum_valid; +#endif + RxReorderIndicatePacket(ieee, rxb, pTS, SeqNum); + } +#ifdef _RTL8192_EXT_PATCH_ + } +#endif +#ifndef JOHN_NOCPY + dev_kfree_skb(skb); +#endif + + rx_exit: +#ifdef NOT_YET + if (sta) + hostap_handle_sta_release(sta); +#endif + return 1; + + rx_dropped: + if (rxb != NULL) + { + kfree(rxb); + rxb = NULL; + } + stats->rx_dropped++; + + /* Returning 0 indicates to caller that we have not handled the SKB-- + * so it is still allocated and can be used again by underlying + * hardware as a DMA target */ + return 0; +} +#endif + +#define MGMT_FRAME_FIXED_PART_LENGTH 0x24 + +static u8 qos_oui[QOS_OUI_LEN] = { 0x00, 0x50, 0xF2 }; + +/* +* Make ther structure we read from the beacon packet has +* the right values +*/ +static int rtllib_verify_qos_info(struct rtllib_qos_information_element + *info_element, int sub_type) +{ + + if (info_element->qui_subtype != sub_type) + return -1; + if (memcmp(info_element->qui, qos_oui, QOS_OUI_LEN)) + return -1; + if (info_element->qui_type != QOS_OUI_TYPE) + return -1; + if (info_element->version != QOS_VERSION_1) + return -1; + + return 0; +} + + +/* + * Parse a QoS parameter element + */ +static int rtllib_read_qos_param_element(struct rtllib_qos_parameter_info + *element_param, struct rtllib_info_element + *info_element) +{ + int ret = 0; + u16 size = sizeof(struct rtllib_qos_parameter_info) - 2; + + if ((info_element == NULL) || (element_param == NULL)) + return -1; + + if (info_element->id == QOS_ELEMENT_ID && info_element->len == size) { + memcpy(element_param->info_element.qui, info_element->data, + info_element->len); + element_param->info_element.elementID = info_element->id; + element_param->info_element.length = info_element->len; + } else + ret = -1; + if (ret == 0) + ret = rtllib_verify_qos_info(&element_param->info_element, + QOS_OUI_PARAM_SUB_TYPE); + return ret; +} + +/* + * Parse a QoS information element + */ +static int rtllib_read_qos_info_element(struct + rtllib_qos_information_element + *element_info, struct rtllib_info_element + *info_element) +{ + int ret = 0; + u16 size = sizeof(struct rtllib_qos_information_element) - 2; + + if (element_info == NULL) + return -1; + if (info_element == NULL) + return -1; + + if ((info_element->id == QOS_ELEMENT_ID) && (info_element->len == size)) { + memcpy(element_info->qui, info_element->data, + info_element->len); + element_info->elementID = info_element->id; + element_info->length = info_element->len; + } else + ret = -1; + + if (ret == 0) + ret = rtllib_verify_qos_info(element_info, + QOS_OUI_INFO_SUB_TYPE); + return ret; +} + + +/* + * Write QoS parameters from the ac parameters. + */ +static int rtllib_qos_convert_ac_to_parameters(struct rtllib_qos_parameter_info *param_elm, + struct rtllib_qos_data *qos_data) +{ + struct rtllib_qos_ac_parameter *ac_params; + struct rtllib_qos_parameters *qos_param = &(qos_data->parameters); + int rc = 0; + int i; + u8 aci; + u8 acm; + + qos_data->wmm_acm = 0; + for (i = 0; i < QOS_QUEUE_NUM; i++) { + ac_params = &(param_elm->ac_params_record[i]); + + aci = (ac_params->aci_aifsn & 0x60) >> 5; + acm = (ac_params->aci_aifsn & 0x10) >> 4; + + if(aci >= QOS_QUEUE_NUM) + continue; + switch (aci) { + case 1: + /* BIT(0) | BIT(3) */ + if (acm) + qos_data->wmm_acm |= (0x01<<0)|(0x01<<3); + break; + case 2: + /* BIT(4) | BIT(5) */ + if (acm) + qos_data->wmm_acm |= (0x01<<4)|(0x01<<5); + break; + case 3: + /* BIT(6) | BIT(7) */ + if (acm) + qos_data->wmm_acm |= (0x01<<6)|(0x01<<7); + break; + case 0: + default: + /* BIT(1) | BIT(2) */ + if (acm) + qos_data->wmm_acm |= (0x01<<1)|(0x01<<2); + break; + } + + qos_param->aifs[aci] = (ac_params->aci_aifsn) & 0x0f; + + /* WMM spec P.11: The minimum value for AIFSN shall be 2 */ + qos_param->aifs[aci] = (qos_param->aifs[aci] < 2) ? 2:qos_param->aifs[aci]; + + qos_param->cw_min[aci] = ac_params->ecw_min_max & 0x0F; + + qos_param->cw_max[aci] = (ac_params->ecw_min_max & 0xF0) >> 4; + + qos_param->flag[aci] = + (ac_params->aci_aifsn & 0x10) ? 0x01 : 0x00; + qos_param->tx_op_limit[aci] = le16_to_cpu(ac_params->tx_op_limit); + } + return rc; +} + +/* + * we have a generic data element which it may contain QoS information or + * parameters element. check the information element length to decide + * which type to read + */ +static int rtllib_parse_qos_info_param_IE(struct rtllib_info_element + *info_element, + struct rtllib_network *network) +{ + int rc = 0; + struct rtllib_qos_information_element qos_info_element; + + rc = rtllib_read_qos_info_element(&qos_info_element, info_element); + + if (rc == 0) { + network->qos_data.param_count = qos_info_element.ac_info & 0x0F; + network->flags |= NETWORK_HAS_QOS_INFORMATION; + } else { + struct rtllib_qos_parameter_info param_element; + + rc = rtllib_read_qos_param_element(¶m_element, + info_element); + if (rc == 0) { + rtllib_qos_convert_ac_to_parameters(¶m_element, + &(network->qos_data)); + network->flags |= NETWORK_HAS_QOS_PARAMETERS; + network->qos_data.param_count = + param_element.info_element.ac_info & 0x0F; + } + } + + if (rc == 0) { + RTLLIB_DEBUG_QOS("QoS is supported\n"); + network->qos_data.supported = 1; + } + return rc; +} + +#ifdef CONFIG_RTLLIB_DEBUG +#define MFIE_STRING(x) case MFIE_TYPE_ ##x: return #x + +static const char *get_info_element_string(u16 id) +{ + switch (id) { + MFIE_STRING(SSID); + MFIE_STRING(RATES); + MFIE_STRING(FH_SET); + MFIE_STRING(DS_SET); + MFIE_STRING(CF_SET); + MFIE_STRING(TIM); + MFIE_STRING(IBSS_SET); + MFIE_STRING(COUNTRY); + MFIE_STRING(HOP_PARAMS); + MFIE_STRING(HOP_TABLE); + MFIE_STRING(REQUEST); + MFIE_STRING(CHALLENGE); + MFIE_STRING(POWER_CONSTRAINT); + MFIE_STRING(POWER_CAPABILITY); + MFIE_STRING(TPC_REQUEST); + MFIE_STRING(TPC_REPORT); + MFIE_STRING(SUPP_CHANNELS); + MFIE_STRING(CSA); + MFIE_STRING(MEASURE_REQUEST); + MFIE_STRING(MEASURE_REPORT); + MFIE_STRING(QUIET); + MFIE_STRING(IBSS_DFS); + MFIE_STRING(RSN); + MFIE_STRING(RATES_EX); + MFIE_STRING(GENERIC); + MFIE_STRING(QOS_PARAMETER); + default: + return "UNKNOWN"; + } +} +#endif + +#ifdef ENABLE_DOT11D +static inline void rtllib_extract_country_ie( + struct rtllib_device *ieee, + struct rtllib_info_element *info_element, + struct rtllib_network *network, + u8 * addr2) +{ + if (IS_DOT11D_ENABLE(ieee)) { + if(info_element->len!= 0) { + memcpy(network->CountryIeBuf, info_element->data, info_element->len); + network->CountryIeLen = info_element->len; + + if(!IS_COUNTRY_IE_VALID(ieee)) + { + if((rtllib_act_scanning(ieee,false) == true) && (ieee->FirstIe_InScan == 1)) + printk("Received beacon ContryIE, SSID: <%s>\n",network->ssid); + Dot11d_UpdateCountryIe(ieee, addr2, info_element->len, info_element->data); + } + } + + if (IS_EQUAL_CIE_SRC(ieee, addr2)) { + UPDATE_CIE_WATCHDOG(ieee); + } + } + +} +#endif + +int rtllib_parse_info_param(struct rtllib_device *ieee, + struct rtllib_info_element *info_element, + u16 length, + struct rtllib_network *network, + struct rtllib_rx_stats *stats) +{ + u8 i; + short offset; + u16 tmp_htcap_len=0; + u16 tmp_htinfo_len=0; + u16 ht_realtek_agg_len=0; + u8 ht_realtek_agg_buf[MAX_IE_LEN]; +#ifdef CONFIG_RTLLIB_DEBUG + char rates_str[64]; + char *p; +#endif +#ifdef RTL8192S_WAPI_SUPPORT + u8 tmp_wapi_len = 0; +#endif + while (length >= sizeof(*info_element)) { + if (sizeof(*info_element) + info_element->len > length) { + RTLLIB_DEBUG_MGMT("Info elem: parse failed: " + "info_element->len + 2 > left : " + "info_element->len+2=%zd left=%d, id=%d.\n", + info_element->len + + sizeof(*info_element), + length, info_element->id); + /* We stop processing but don't return an error here + * because some misbehaviour APs break this rule. ie. + * Orinoco AP1000. */ + break; + } + + switch (info_element->id) { + case MFIE_TYPE_SSID: + if (rtllib_is_empty_essid(info_element->data, + info_element->len)) { + network->flags |= NETWORK_EMPTY_ESSID; + break; + } + + network->ssid_len = min(info_element->len, + (u8) IW_ESSID_MAX_SIZE); + memcpy(network->ssid, info_element->data, network->ssid_len); + if (network->ssid_len < IW_ESSID_MAX_SIZE) + memset(network->ssid + network->ssid_len, 0, + IW_ESSID_MAX_SIZE - network->ssid_len); + + RTLLIB_DEBUG_MGMT("MFIE_TYPE_SSID: '%s' len=%d.\n", + network->ssid, network->ssid_len); + break; + + case MFIE_TYPE_RATES: +#ifdef CONFIG_RTLLIB_DEBUG + p = rates_str; +#endif + network->rates_len = min(info_element->len, + MAX_RATES_LENGTH); + for (i = 0; i < network->rates_len; i++) { + network->rates[i] = info_element->data[i]; +#ifdef CONFIG_RTLLIB_DEBUG + p += snprintf(p, sizeof(rates_str) - + (p - rates_str), "%02X ", + network->rates[i]); +#endif + if (rtllib_is_ofdm_rate + (info_element->data[i])) { + network->flags |= NETWORK_HAS_OFDM; + if (info_element->data[i] & + RTLLIB_BASIC_RATE_MASK) + network->flags &= + ~NETWORK_HAS_CCK; + } + + if (rtllib_is_cck_rate + (info_element->data[i])) { + network->flags |= NETWORK_HAS_CCK; + } + } + + RTLLIB_DEBUG_MGMT("MFIE_TYPE_RATES: '%s' (%d)\n", + rates_str, network->rates_len); + break; + + case MFIE_TYPE_RATES_EX: +#ifdef CONFIG_RTLLIB_DEBUG + p = rates_str; +#endif + network->rates_ex_len = min(info_element->len, + MAX_RATES_EX_LENGTH); + for (i = 0; i < network->rates_ex_len; i++) { + network->rates_ex[i] = info_element->data[i]; +#ifdef CONFIG_RTLLIB_DEBUG + p += snprintf(p, sizeof(rates_str) - + (p - rates_str), "%02X ", + network->rates[i]); +#endif + if (rtllib_is_ofdm_rate + (info_element->data[i])) { + network->flags |= NETWORK_HAS_OFDM; + if (info_element->data[i] & + RTLLIB_BASIC_RATE_MASK) + network->flags &= + ~NETWORK_HAS_CCK; + } + } + + RTLLIB_DEBUG_MGMT("MFIE_TYPE_RATES_EX: '%s' (%d)\n", + rates_str, network->rates_ex_len); + break; + + case MFIE_TYPE_DS_SET: + RTLLIB_DEBUG_MGMT("MFIE_TYPE_DS_SET: %d\n", + info_element->data[0]); + network->channel = info_element->data[0]; + break; + + case MFIE_TYPE_FH_SET: + RTLLIB_DEBUG_MGMT("MFIE_TYPE_FH_SET: ignored\n"); + break; + + case MFIE_TYPE_CF_SET: + RTLLIB_DEBUG_MGMT("MFIE_TYPE_CF_SET: ignored\n"); + break; + + case MFIE_TYPE_TIM: + if(info_element->len < 4) + break; + + network->tim.tim_count = info_element->data[0]; + network->tim.tim_period = info_element->data[1]; + + network->dtim_period = info_element->data[1]; + if(ieee->state != RTLLIB_LINKED) + break; +#if 0 + network->last_dtim_sta_time[0] = stats->mac_time[0]; +#else + network->last_dtim_sta_time[0] = jiffies; +#endif + network->last_dtim_sta_time[1] = stats->mac_time[1]; + + network->dtim_data = RTLLIB_DTIM_VALID; + + + if(info_element->data[2] & 1) + network->dtim_data |= RTLLIB_DTIM_MBCAST; + +#if 1 + offset = (info_element->data[2] >> 1)*2; + + + if(ieee->assoc_id < 8*offset || + ieee->assoc_id > 8*(offset + info_element->len -3)) + + break; + + offset = (ieee->assoc_id / 8) - offset; + if(info_element->data[3+offset] & (1<<(ieee->assoc_id%8))) + network->dtim_data |= RTLLIB_DTIM_UCAST; +#else + { + u16 numSta = 0; + u16 offset_byte = 0; + u16 offset_bit = 0; + + numSta = (info_element->data[2] &0xFE)*8; + + if(ieee->assoc_id < numSta || + ieee->assoc_id > (numSta + (info_element->len -3)*8)) + break; + + offset = ieee->assoc_id - numSta; + offset_byte = offset / 8; + offset_bit = offset % 8; + if(info_element->data[3+offset_byte] & (0x01<dtim_data |= RTLLIB_DTIM_UCAST; + } +#endif + + network->listen_interval = network->dtim_period; + break; + + case MFIE_TYPE_ERP: + network->erp_value = info_element->data[0]; + network->flags |= NETWORK_HAS_ERP_VALUE; + RTLLIB_DEBUG_MGMT("MFIE_TYPE_ERP_SET: %d\n", + network->erp_value); + break; + case MFIE_TYPE_IBSS_SET: + network->atim_window = info_element->data[0]; + RTLLIB_DEBUG_MGMT("MFIE_TYPE_IBSS_SET: %d\n", + network->atim_window); + break; + + case MFIE_TYPE_CHALLENGE: + RTLLIB_DEBUG_MGMT("MFIE_TYPE_CHALLENGE: ignored\n"); + break; + + case MFIE_TYPE_GENERIC: + RTLLIB_DEBUG_MGMT("MFIE_TYPE_GENERIC: %d bytes\n", + info_element->len); + if (!rtllib_parse_qos_info_param_IE(info_element, + network)) + break; + if (info_element->len >= 4 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x50 && + info_element->data[2] == 0xf2 && + info_element->data[3] == 0x01) { + network->wpa_ie_len = min(info_element->len + 2, + MAX_WPA_IE_LEN); + memcpy(network->wpa_ie, info_element, + network->wpa_ie_len); + break; + } +#ifdef THOMAS_TURBO + if (info_element->len == 7 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0xe0 && + info_element->data[2] == 0x4c && + info_element->data[3] == 0x01 && + info_element->data[4] == 0x02) { + network->Turbo_Enable = 1; + } +#endif + + if(tmp_htcap_len == 0){ + if(info_element->len >= 4 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x90 && + info_element->data[2] == 0x4c && + info_element->data[3] == 0x033){ + + tmp_htcap_len = min(info_element->len,(u8)MAX_IE_LEN); + if(tmp_htcap_len != 0){ + network->bssht.bdHTSpecVer = HT_SPEC_VER_EWC; + network->bssht.bdHTCapLen = tmp_htcap_len > sizeof(network->bssht.bdHTCapBuf)?\ + sizeof(network->bssht.bdHTCapBuf):tmp_htcap_len; + memcpy(network->bssht.bdHTCapBuf,info_element->data,network->bssht.bdHTCapLen); + } + } + if(tmp_htcap_len != 0){ + network->bssht.bdSupportHT = true; + network->bssht.bdHT1R = ((((PHT_CAPABILITY_ELE)(network->bssht.bdHTCapBuf))->MCS[1]) == 0); + }else{ + network->bssht.bdSupportHT = false; + network->bssht.bdHT1R = false; + } + } + + + if(tmp_htinfo_len == 0){ + if(info_element->len >= 4 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x90 && + info_element->data[2] == 0x4c && + info_element->data[3] == 0x034){ + + tmp_htinfo_len = min(info_element->len,(u8)MAX_IE_LEN); + if(tmp_htinfo_len != 0){ + network->bssht.bdHTSpecVer = HT_SPEC_VER_EWC; + if(tmp_htinfo_len){ + network->bssht.bdHTInfoLen = tmp_htinfo_len > sizeof(network->bssht.bdHTInfoBuf)?\ + sizeof(network->bssht.bdHTInfoBuf):tmp_htinfo_len; + memcpy(network->bssht.bdHTInfoBuf,info_element->data,network->bssht.bdHTInfoLen); + } + + } + + } + } + + if(ieee->aggregation){ + if(network->bssht.bdSupportHT){ + if(info_element->len >= 4 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0xe0 && + info_element->data[2] == 0x4c && + info_element->data[3] == 0x02){ + + ht_realtek_agg_len = min(info_element->len,(u8)MAX_IE_LEN); + memcpy(ht_realtek_agg_buf,info_element->data,info_element->len); + + } + if(ht_realtek_agg_len >= 5){ + network->realtek_cap_exit = true; + network->bssht.bdRT2RTAggregation = true; + + if((ht_realtek_agg_buf[4] == 1) && (ht_realtek_agg_buf[5] & 0x02)) + network->bssht.bdRT2RTLongSlotTime = true; + + if((ht_realtek_agg_buf[4]==1) && (ht_realtek_agg_buf[5] & RT_HT_CAP_USE_92SE)) + { + network->bssht.RT2RT_HT_Mode |= RT_HT_CAP_USE_92SE; + } + } + } + if(ht_realtek_agg_len >= 5){ + if((ht_realtek_agg_buf[5] & RT_HT_CAP_USE_SOFTAP)) + network->bssht.RT2RT_HT_Mode |= RT_HT_CAP_USE_SOFTAP; + } + } + + { + if((info_element->len >= 3 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x05 && + info_element->data[2] == 0xb5) || + (info_element->len >= 3 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x0a && + info_element->data[2] == 0xf7) || + (info_element->len >= 3 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x10 && + info_element->data[2] == 0x18)){ + + network->broadcom_cap_exist = true; + + } + } +#if 0 + if (tmp_htcap_len !=0) + { + u16 cap_ext = ((PHT_CAPABILITY_ELE)&info_element->data[0])->ExtHTCapInfo; + if ((cap_ext & 0x0c00) == 0x0c00) + { + network->ralink_cap_exist = true; + } + } +#endif + if(info_element->len >= 3 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x0c && + info_element->data[2] == 0x43) + { + network->ralink_cap_exist = true; + } + if((info_element->len >= 3 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x03 && + info_element->data[2] == 0x7f) || + (info_element->len >= 3 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x13 && + info_element->data[2] == 0x74)) + { + network->atheros_cap_exist = true; + } + + if ((info_element->len >= 3 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x50 && + info_element->data[2] == 0x43) ) + { + network->marvell_cap_exist = true; + } + if(info_element->len >= 3 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x40 && + info_element->data[2] == 0x96) + { + network->cisco_cap_exist = true; + } + + + if(info_element->len >= 3 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x0a && + info_element->data[2] == 0xf5) + { + network->airgo_cap_exist = true; + } + + if(info_element->len > 4 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x40 && + info_element->data[2] == 0x96 && + info_element->data[3] == 0x01) + { + if(info_element->len == 6) + { + memcpy(network->CcxRmState, &info_element[4], 2); + if(network->CcxRmState[0] != 0) + { + network->bCcxRmEnable = true; + } + else + network->bCcxRmEnable = false; + network->MBssidMask = network->CcxRmState[1] & 0x07; + if(network->MBssidMask != 0) + { + network->bMBssidValid = true; + network->MBssidMask = 0xff << (network->MBssidMask); + memcpy(network->MBssid, network->bssid, ETH_ALEN); + network->MBssid[5] &= network->MBssidMask; + } + else + { + network->bMBssidValid = false; + } + } + else + { + network->bCcxRmEnable = false; + } + } + if(info_element->len > 4 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x40 && + info_element->data[2] == 0x96 && + info_element->data[3] == 0x03) + { + if(info_element->len == 5) + { + network->bWithCcxVerNum = true; + network->BssCcxVerNumber = info_element->data[4]; + } + else + { + network->bWithCcxVerNum = false; + network->BssCcxVerNumber = 0; + } + } + if(info_element->len > 4 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x50 && + info_element->data[2] == 0xf2 && + info_element->data[3] == 0x04) + { + RTLLIB_DEBUG_MGMT("MFIE_TYPE_WZC: %d bytes\n", + info_element->len); +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + network->wzc_ie_len = min(info_element->len+2, + MAX_WZC_IE_LEN); + memcpy(network->wzc_ie, info_element, + network->wzc_ie_len); +#endif + } +#ifdef _RTL8192_EXT_PATCH_ +#ifdef COMPATIBLE_WITH_RALINK_MESH + if(info_element->len > 3 && + info_element->data[0] == 0x00 && + info_element->data[1] == 0x0F && + info_element->data[2] == 0xAC) + { + network->hostname_len = info_element->len - 3; + memcpy(network->hostname, (info_element->data+3), network->hostname_len); + } +#else + if(info_element->len > 4 && + info_element->data[0] == 0x48 && + info_element->data[1] == 0x4F && + info_element->data[2] == 0x53 && + info_element->data[3] == 0x54) + { + network->hostname_len = info_element->len - 4; + memcpy(network->hostname, (info_element->data+4), network->hostname_len); + } +#endif +#endif + break; + + case MFIE_TYPE_RSN: + RTLLIB_DEBUG_MGMT("MFIE_TYPE_RSN: %d bytes\n", + info_element->len); + network->rsn_ie_len = min(info_element->len + 2, + MAX_WPA_IE_LEN); + memcpy(network->rsn_ie, info_element, + network->rsn_ie_len); + break; + + case MFIE_TYPE_HT_CAP: + RTLLIB_DEBUG_SCAN("MFIE_TYPE_HT_CAP: %d bytes\n", + info_element->len); + tmp_htcap_len = min(info_element->len,(u8)MAX_IE_LEN); + if(tmp_htcap_len != 0){ + network->bssht.bdHTSpecVer = HT_SPEC_VER_EWC; + network->bssht.bdHTCapLen = tmp_htcap_len > sizeof(network->bssht.bdHTCapBuf)?\ + sizeof(network->bssht.bdHTCapBuf):tmp_htcap_len; + memcpy(network->bssht.bdHTCapBuf,info_element->data,network->bssht.bdHTCapLen); + + network->bssht.bdSupportHT = true; + network->bssht.bdHT1R = ((((PHT_CAPABILITY_ELE)(network->bssht.bdHTCapBuf))->MCS[1]) == 0); + + network->bssht.bdBandWidth = (HT_CHANNEL_WIDTH)(((PHT_CAPABILITY_ELE)(network->bssht.bdHTCapBuf))->ChlWidth); + } + else{ + network->bssht.bdSupportHT = false; + network->bssht.bdHT1R = false; + network->bssht.bdBandWidth = HT_CHANNEL_WIDTH_20 ; + } + break; + + + case MFIE_TYPE_HT_INFO: + RTLLIB_DEBUG_SCAN("MFIE_TYPE_HT_INFO: %d bytes\n", + info_element->len); + tmp_htinfo_len = min(info_element->len,(u8)MAX_IE_LEN); + if(tmp_htinfo_len){ + network->bssht.bdHTSpecVer = HT_SPEC_VER_IEEE; + network->bssht.bdHTInfoLen = tmp_htinfo_len > sizeof(network->bssht.bdHTInfoBuf)?\ + sizeof(network->bssht.bdHTInfoBuf):tmp_htinfo_len; + memcpy(network->bssht.bdHTInfoBuf,info_element->data,network->bssht.bdHTInfoLen); + } + break; + + case MFIE_TYPE_AIRONET: + RTLLIB_DEBUG_SCAN("MFIE_TYPE_AIRONET: %d bytes\n", + info_element->len); + if(info_element->len >IE_CISCO_FLAG_POSITION) + { + network->bWithAironetIE = true; + + if( (info_element->data[IE_CISCO_FLAG_POSITION]&SUPPORT_CKIP_MIC) || + (info_element->data[IE_CISCO_FLAG_POSITION]&SUPPORT_CKIP_PK) ) + { + network->bCkipSupported = true; + } + else + { + network->bCkipSupported = false; + } + } + else + { + network->bWithAironetIE = false; + network->bCkipSupported = false; + } + break; + case MFIE_TYPE_QOS_PARAMETER: + printk(KERN_ERR + "QoS Error need to parse QOS_PARAMETER IE\n"); + break; + +#ifdef ENABLE_DOT11D + case MFIE_TYPE_COUNTRY: + RTLLIB_DEBUG_SCAN("MFIE_TYPE_COUNTRY: %d bytes\n", + info_element->len); + rtllib_extract_country_ie(ieee, info_element, network, network->bssid); + break; +#endif +#ifdef _RTL8192_EXT_PATCH_ + case MFIE_TYPE_MESH_ID: + network->mesh_id_len = min(info_element->len, (u8)MAX_MESH_ID_LEN); + memcpy(network->mesh_id, info_element->data, network->mesh_id_len); + if (network->mesh_id_len < MAX_MESH_ID_LEN) { + memset(network->mesh_id + network->mesh_id_len, 0, + MAX_MESH_ID_LEN - network->mesh_id_len); + } + RTLLIB_DEBUG_MGMT("MFIE_TYPE_MESH_ID: '%s'len=%d.\n", network->mesh_id, + network->mesh_id_len); + break; + + case MFIE_TYPE_MESH_CONFIGURATION: + network->mesh_config_len = min(info_element->len, (u8)MESH_CONF_TOTAL_LEN); + memcpy(network->mesh_config.path_proto_id, info_element->data + 1, 4); + memcpy(network->mesh_config.path_metric_id, info_element->data + 5, 4); + memcpy(network->mesh_config.congest_ctl_mode, info_element->data + 9, 4); + memcpy(network->mesh_config.mesh_capability, info_element->data + 17, 2); + break; +#endif +/* TODO */ +#if 0 + /* 802.11h */ + case MFIE_TYPE_POWER_CONSTRAINT: + network->power_constraint = info_element->data[0]; + network->flags |= NETWORK_HAS_POWER_CONSTRAINT; + break; + + case MFIE_TYPE_CSA: + network->power_constraint = info_element->data[0]; + network->flags |= NETWORK_HAS_CSA; + break; + + case MFIE_TYPE_QUIET: + network->quiet.count = info_element->data[0]; + network->quiet.period = info_element->data[1]; + network->quiet.duration = info_element->data[2]; + network->quiet.offset = info_element->data[3]; + network->flags |= NETWORK_HAS_QUIET; + break; + + case MFIE_TYPE_IBSS_DFS: + if (network->ibss_dfs) + break; + network->ibss_dfs = kmemdup(info_element->data, + info_element->len, + GFP_ATOMIC); + if (!network->ibss_dfs) + return 1; + network->flags |= NETWORK_HAS_IBSS_DFS; + break; + + case MFIE_TYPE_TPC_REPORT: + network->tpc_report.transmit_power = + info_element->data[0]; + network->tpc_report.link_margin = info_element->data[1]; + network->flags |= NETWORK_HAS_TPC_REPORT; + break; +#endif +#ifdef RTL8192S_WAPI_SUPPORT + case MFIE_TYPE_WAPI: + RTLLIB_DEBUG_MGMT("MFIE_TYPE_WAPI: %d bytes\n", info_element->len); + tmp_wapi_len = min(info_element->len,(u8)MAX_WAPI_IE_LEN); + if(tmp_wapi_len){ + network->wapi_ie_len = tmp_wapi_len; + memcpy(network->wapi_ie,info_element->data,network->wapi_ie_len); + } + break; +#endif + default: + RTLLIB_DEBUG_MGMT + ("Unsupported info element: %s (%d)\n", + get_info_element_string(info_element->id), + info_element->id); + break; + } + + length -= sizeof(*info_element) + info_element->len; + info_element = + (struct rtllib_info_element *)&info_element-> + data[info_element->len]; + } + + if(!network->atheros_cap_exist && !network->broadcom_cap_exist && + !network->cisco_cap_exist && !network->ralink_cap_exist && !network->bssht.bdRT2RTAggregation) + { + network->unknown_cap_exist = true; + } + else + { + network->unknown_cap_exist = false; + } + return 0; +} + +static inline u8 rtllib_SignalStrengthTranslate( + u8 CurrSS + ) +{ + u8 RetSS; + + if(CurrSS >= 71 && CurrSS <= 100) + { + RetSS = 90 + ((CurrSS - 70) / 3); + } + else if(CurrSS >= 41 && CurrSS <= 70) + { + RetSS = 78 + ((CurrSS - 40) / 3); + } + else if(CurrSS >= 31 && CurrSS <= 40) + { + RetSS = 66 + (CurrSS - 30); + } + else if(CurrSS >= 21 && CurrSS <= 30) + { + RetSS = 54 + (CurrSS - 20); + } + else if(CurrSS >= 5 && CurrSS <= 20) + { + RetSS = 42 + (((CurrSS - 5) * 2) / 3); + } + else if(CurrSS == 4) + { + RetSS = 36; + } + else if(CurrSS == 3) + { + RetSS = 27; + } + else if(CurrSS == 2) + { + RetSS = 18; + } + else if(CurrSS == 1) + { + RetSS = 9; + } + else + { + RetSS = CurrSS; + } + + + + return RetSS; +} + +long rtllib_translate_todbm(u8 signal_strength_index ) +{ + long signal_power; + + signal_power = (long)((signal_strength_index + 1) >> 1); + signal_power -= 95; + + return signal_power; +} + +#ifdef _RTL8192_EXT_PATCH_ +extern int rtllib_network_init( +#else +static inline int rtllib_network_init( +#endif + struct rtllib_device *ieee, + struct rtllib_probe_response *beacon, + struct rtllib_network *network, + struct rtllib_rx_stats *stats) +{ +#ifdef CONFIG_RTLLIB_DEBUG +#endif + + /* + network->qos_data.active = 0; + network->qos_data.supported = 0; + network->qos_data.param_count = 0; + network->qos_data.old_param_count = 0; + */ + memset(&network->qos_data, 0, sizeof(struct rtllib_qos_data)); + + /* Pull out fixed field data */ + memcpy(network->bssid, beacon->header.addr3, ETH_ALEN); + network->capability = le16_to_cpu(beacon->capability); + network->last_scanned = jiffies; + network->time_stamp[0] = le32_to_cpu(beacon->time_stamp[0]); + network->time_stamp[1] = le32_to_cpu(beacon->time_stamp[1]); + network->beacon_interval = le32_to_cpu(beacon->beacon_interval); + /* Where to pull this? beacon->listen_interval;*/ + network->listen_interval = 0x0A; + network->rates_len = network->rates_ex_len = 0; + network->last_associate = 0; + network->ssid_len = 0; + network->hidden_ssid_len = 0; + memset(network->hidden_ssid, 0, sizeof(network->hidden_ssid)); + network->flags = 0; + network->atim_window = 0; + network->erp_value = (network->capability & WLAN_CAPABILITY_IBSS) ? + 0x3 : 0x0; + network->berp_info_valid = false; + network->broadcom_cap_exist = false; + network->ralink_cap_exist = false; + network->atheros_cap_exist = false; + network->cisco_cap_exist = false; + network->unknown_cap_exist = false; + network->realtek_cap_exit = false; + network->marvell_cap_exist = false; + network->airgo_cap_exist = false; +#ifdef THOMAS_TURBO + network->Turbo_Enable = 0; +#endif + network->SignalStrength = stats->SignalStrength; + network->RSSI = stats->SignalStrength; +#ifdef ENABLE_DOT11D + network->CountryIeLen = 0; + memset(network->CountryIeBuf, 0, MAX_IE_LEN); +#endif +#ifdef _RTL8192_EXT_PATCH_ + memset(network->hostname, 0, MAX_HOST_NAME_LENGTH); + network->hostname_len = 0; +#endif + HTInitializeBssDesc(&network->bssht); + if (stats->freq == RTLLIB_52GHZ_BAND) { + /* for A band (No DS info) */ + network->channel = stats->received_channel; + } else + network->flags |= NETWORK_HAS_CCK; + + network->wpa_ie_len = 0; + network->rsn_ie_len = 0; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + network->wzc_ie_len = 0; +#endif + + if (rtllib_parse_info_param(ieee, + beacon->info_element, + (stats->len - sizeof(*beacon)), + network, + stats)) + return 1; + + network->mode = 0; + if (stats->freq == RTLLIB_52GHZ_BAND) + network->mode = IEEE_A; + else { + if (network->flags & NETWORK_HAS_OFDM) + network->mode |= IEEE_G; + if (network->flags & NETWORK_HAS_CCK) + network->mode |= IEEE_B; + } + + if (network->mode == 0) { + RTLLIB_DEBUG_SCAN("Filtered out '%s (" MAC_FMT ")' " + "network.\n", + escape_essid(network->ssid, + network->ssid_len), + MAC_ARG(network->bssid)); + return 1; + } + + if(network->bssht.bdSupportHT){ +#ifdef _RTL8192_EXT_PATCH_ + if(network->mode == IEEE_A) + network->mode |= IEEE_N_5G; + else if(network->mode & (IEEE_G | IEEE_B)) + network->mode |= IEEE_N_24G; +#else + if(network->mode == IEEE_A) + network->mode = IEEE_N_5G; + else if(network->mode & (IEEE_G | IEEE_B)) + network->mode = IEEE_N_24G; +#endif + } + if (rtllib_is_empty_essid(network->ssid, network->ssid_len)) + network->flags |= NETWORK_EMPTY_ESSID; + +#if 0 + { + static u8 Netgear845T_Mac[3] = {0x00, 0x1B, 0x2F}; + static u8 Buffalo300N_Mac[3] = {0x00, 0x16, 0x01}; + + if(ieee->RF_Type == RF_1T1R || ieee->b1SSSupport == true) + { + if((memcmp(network->bssid, Netgear845T_Mac, 3)==0) ||(memcmp(network->bssid, Buffalo300N_Mac, 3)==0)) + { + network->bIsNetgear854T = true; + network->bssht.bdSupportHT = false; + if(network->mode == WIRELESS_MODE_N_24G) + { + network->mode = WIRELESS_MODE_B | WIRELESS_MODE_G; + } + + } + else + { + network->bIsNetgear854T = false; + } + } + } +#endif + +#if 1 + stats->signal = 30 + (stats->SignalStrength * 70) / 100; + stats->noise = rtllib_translate_todbm((u8)(100-stats->signal)) -25; +#endif + + memcpy(&network->stats, stats, sizeof(network->stats)); + + return 0; +} + +static inline int is_same_network(struct rtllib_network *src, + struct rtllib_network *dst, u8 ssidbroad) +{ + /* A network is only a duplicate if the channel, BSSID, ESSID + * and the capability field (in particular IBSS and BSS) all match. + * We treat all with the same BSSID and channel + * as one network */ + return + (((src->ssid_len == dst->ssid_len) || (!ssidbroad)) && + (src->channel == dst->channel) && + !memcmp(src->bssid, dst->bssid, ETH_ALEN) && + (!memcmp(src->ssid, dst->ssid, src->ssid_len) || (!ssidbroad)) && + ((src->capability & WLAN_CAPABILITY_IBSS) == + (dst->capability & WLAN_CAPABILITY_IBSS)) && + ((src->capability & WLAN_CAPABILITY_ESS) == + (dst->capability & WLAN_CAPABILITY_ESS))); +} + +static inline void update_ibss_network(struct rtllib_network *dst, + struct rtllib_network *src) +{ + memcpy(&dst->stats, &src->stats, sizeof(struct rtllib_rx_stats)); + dst->last_scanned = jiffies; +} + + +static inline void update_network(struct rtllib_network *dst, + struct rtllib_network *src) +{ + int qos_active; + u8 old_param; + + memcpy(&dst->stats, &src->stats, sizeof(struct rtllib_rx_stats)); + dst->capability = src->capability; + memcpy(dst->rates, src->rates, src->rates_len); + dst->rates_len = src->rates_len; + memcpy(dst->rates_ex, src->rates_ex, src->rates_ex_len); + dst->rates_ex_len = src->rates_ex_len; + if(src->ssid_len > 0) + { + if(dst->ssid_len == 0) + { + memset(dst->hidden_ssid, 0, sizeof(dst->hidden_ssid)); + dst->hidden_ssid_len = src->ssid_len; + memcpy(dst->hidden_ssid, src->ssid, src->ssid_len); + }else{ + memset(dst->ssid, 0, dst->ssid_len); + dst->ssid_len = src->ssid_len; + memcpy(dst->ssid, src->ssid, src->ssid_len); + } + } + dst->mode = src->mode; + dst->flags = src->flags; + dst->time_stamp[0] = src->time_stamp[0]; + dst->time_stamp[1] = src->time_stamp[1]; + if (src->flags & NETWORK_HAS_ERP_VALUE) + { + dst->erp_value = src->erp_value; + dst->berp_info_valid = src->berp_info_valid = true; + } + dst->beacon_interval = src->beacon_interval; + dst->listen_interval = src->listen_interval; + dst->atim_window = src->atim_window; + dst->dtim_period = src->dtim_period; + dst->dtim_data = src->dtim_data; + dst->last_dtim_sta_time[0] = src->last_dtim_sta_time[0]; + dst->last_dtim_sta_time[1] = src->last_dtim_sta_time[1]; + memcpy(&dst->tim, &src->tim, sizeof(struct rtllib_tim_parameters)); + + dst->bssht.bdSupportHT = src->bssht.bdSupportHT; + dst->bssht.bdRT2RTAggregation = src->bssht.bdRT2RTAggregation; + dst->bssht.bdHTCapLen= src->bssht.bdHTCapLen; + memcpy(dst->bssht.bdHTCapBuf,src->bssht.bdHTCapBuf,src->bssht.bdHTCapLen); + dst->bssht.bdHTInfoLen= src->bssht.bdHTInfoLen; + memcpy(dst->bssht.bdHTInfoBuf,src->bssht.bdHTInfoBuf,src->bssht.bdHTInfoLen); + dst->bssht.bdHTSpecVer = src->bssht.bdHTSpecVer; + dst->bssht.bdRT2RTLongSlotTime = src->bssht.bdRT2RTLongSlotTime; + dst->broadcom_cap_exist = src->broadcom_cap_exist; + dst->ralink_cap_exist = src->ralink_cap_exist; + dst->atheros_cap_exist = src->atheros_cap_exist; + dst->realtek_cap_exit = src->realtek_cap_exit; + dst->marvell_cap_exist = src->marvell_cap_exist; + dst->cisco_cap_exist = src->cisco_cap_exist; + dst->airgo_cap_exist = src->airgo_cap_exist; + dst->unknown_cap_exist = src->unknown_cap_exist; + memcpy(dst->wpa_ie, src->wpa_ie, src->wpa_ie_len); + dst->wpa_ie_len = src->wpa_ie_len; + memcpy(dst->rsn_ie, src->rsn_ie, src->rsn_ie_len); + dst->rsn_ie_len = src->rsn_ie_len; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + memcpy(dst->wzc_ie, src->wzc_ie, src->wzc_ie_len); + dst->wzc_ie_len = src->wzc_ie_len; +#endif + + dst->last_scanned = jiffies; + /* qos related parameters */ + qos_active = dst->qos_data.active; + old_param = dst->qos_data.param_count; +#if 0 + if(dst->flags & NETWORK_HAS_QOS_MASK){ + } + else { + dst->qos_data.supported = src->qos_data.supported; + dst->qos_data.param_count = src->qos_data.param_count; + } +#else + dst->qos_data.supported = src->qos_data.supported; + if(dst->flags & NETWORK_HAS_QOS_PARAMETERS){ + memcpy(&dst->qos_data, &src->qos_data, sizeof(struct rtllib_qos_data)); + } +#endif + if(dst->qos_data.supported == 1) { + if(dst->ssid_len) + RTLLIB_DEBUG_QOS + ("QoS the network %s is QoS supported\n", + dst->ssid); + else + RTLLIB_DEBUG_QOS + ("QoS the network is QoS supported\n"); + } + dst->qos_data.active = qos_active; + dst->qos_data.old_param_count = old_param; + + /* dst->last_associate is not overwritten */ + dst->wmm_info = src->wmm_info; + if(src->wmm_param[0].ac_aci_acm_aifsn|| \ + src->wmm_param[1].ac_aci_acm_aifsn|| \ + src->wmm_param[2].ac_aci_acm_aifsn|| \ + src->wmm_param[1].ac_aci_acm_aifsn) { + memcpy(dst->wmm_param, src->wmm_param, WME_AC_PRAM_LEN); + } + + dst->SignalStrength = src->SignalStrength; + dst->RSSI = src->RSSI; +#ifdef THOMAS_TURBO + dst->Turbo_Enable = src->Turbo_Enable; +#endif + +#ifdef ENABLE_DOT11D + dst->CountryIeLen = src->CountryIeLen; + memcpy(dst->CountryIeBuf, src->CountryIeBuf, src->CountryIeLen); +#endif + + dst->bWithAironetIE = src->bWithAironetIE; + dst->bCkipSupported = src->bCkipSupported; + memcpy(dst->CcxRmState,src->CcxRmState,2); + dst->bCcxRmEnable = src->bCcxRmEnable; + dst->MBssidMask = src->MBssidMask; + dst->bMBssidValid = src->bMBssidValid; + memcpy(dst->MBssid,src->MBssid,6); + dst->bWithCcxVerNum = src->bWithCcxVerNum; + dst->BssCcxVerNumber = src->BssCcxVerNumber; + +} +static inline int is_beacon(__le16 fc) +{ + return (WLAN_FC_GET_STYPE(le16_to_cpu(fc)) == RTLLIB_STYPE_BEACON); +} + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) || defined RTL8192CE +u8 AsocEntry_ComputeSum(u8 *paddr) +{ + u32 sum; + + sum = paddr[0]+ + paddr[1]+ + paddr[2]+ + paddr[3]+ + paddr[4]+ + paddr[5]; + + return (u8)(sum % PEER_MAX_ASSOC); +} +u8 AsocEntry_AssignAvailableAID(struct rtllib_device *ieee, u8 *paddr) +{ + int i; + + for(i = 0; i < PEER_MAX_ASSOC; i++) + { + if(ieee->AvailableAIDTable[i] == 99) + { + ieee->AvailableAIDTable[i] = AsocEntry_ComputeSum(paddr); + return i+1; + } + } + + return 1; +} + +void InitStaInfo(struct rtllib_device *ieee,int index) +{ + int idx = index; + ieee->peer_assoc_list[idx]->StaDataRate = 0; + ieee->peer_assoc_list[idx]->StaSS = 0; + ieee->peer_assoc_list[idx]->RetryFrameCnt = 0; + ieee->peer_assoc_list[idx]->NoRetryFrameCnt = 0; + ieee->peer_assoc_list[idx]->LastRetryCnt = 0; + ieee->peer_assoc_list[idx]->LastNoRetryCnt = 0; + ieee->peer_assoc_list[idx]->AvgRetryRate = 0; + ieee->peer_assoc_list[idx]->LastRetryRate = 0; + ieee->peer_assoc_list[idx]->txRateIndex = 11; + ieee->peer_assoc_list[idx]->APDataRate = 0x2; + ieee->peer_assoc_list[idx]->ForcedDataRate = 0x2; + +} + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) +static u8 IsStaInfoExist(struct rtllib_device *ieee, u8 *addr) +{ + int k=0; + struct sta_info * psta = NULL; + u8 sta_idx = PEER_MAX_ASSOC; + + for(k=0; kpeer_assoc_list[k]; + if(NULL != psta) + { + if(memcmp(addr, psta->macaddr, ETH_ALEN) == 0) + { + sta_idx = k; + break; + } + } + } + return sta_idx; +} + +static u8 GetFreeStaInfoIdx(struct rtllib_device *ieee, u8 *addr) +{ + int k = 0; + while((ieee->peer_assoc_list[k] != NULL) && (k < PEER_MAX_ASSOC)) + k++; + printk("%s: addr:"MAC_FMT" index: %d\n", __FUNCTION__, MAC_ARG(addr), k); + return k; +} +#endif + +struct sta_info *GetStaInfo(struct rtllib_device *ieee, u8 *addr) +{ + int k=0; + struct sta_info * psta = NULL; + struct sta_info * psta_find = NULL; + + for(k=0; kpeer_assoc_list[k]; + if(NULL != psta) + { + if(memcmp(addr, psta->macaddr, ETH_ALEN) == 0) + { + psta_find = psta; + break; + } + } + } + return psta_find; +} +void DelStaInfoList(struct rtllib_device *ieee) +{ + int idx = 0; + struct sta_info * AsocEntry = NULL; + + atomic_set(&ieee->AsocEntryNum, 0); + for(idx=0; idxpeer_assoc_list[idx]; + if(NULL != AsocEntry){ + kfree(AsocEntry); + ieee->peer_assoc_list[idx] = NULL; + } + ieee->AvailableAIDTable[idx] = 99; + } +} +void DelStaInfo(struct rtllib_device *ieee, u8 *addr) +{ + struct sta_info * psta = NULL; + int k=0; + + for(k=0; kpeer_assoc_list[k]; + if(NULL != psta){ + if(memcmp(addr, psta->macaddr, ETH_ALEN) == 0){ + if (psta->aid > 0 && psta->aid-1 < PEER_MAX_ASSOC) + ieee->AvailableAIDTable[psta->aid-1] = 99; + else + printk("%s(): clear non-existing entry AID\n", __func__); + + kfree(psta); + ieee->peer_assoc_list[k] = NULL; + atomic_dec(&ieee->AsocEntryNum); + } + } + } +} +void IbssAgeFunction(struct rtllib_device *ieee) +{ + struct sta_info* AsocEntry = NULL; + int idx; + unsigned long CurrentTime; + signed long TimeDifference; + struct rtllib_network *target; + + CurrentTime = jiffies; + + for(idx = 0; idx < PEER_MAX_ASSOC; idx++) + { + AsocEntry = ieee->peer_assoc_list[idx]; + if(AsocEntry) + { + TimeDifference = jiffies_to_msecs(CurrentTime - AsocEntry->LastActiveTime); + + if(TimeDifference > 20000) + { + printk("IbssAgeFunction(): "MAC_FMT" timeout\n", MAC_ARG(AsocEntry->macaddr)); +#ifdef RTL8192S_WAPI_SUPPORT + if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)) + { + WapiReturnOneStaInfo(ieee, AsocEntry->macaddr, 0); + } +#endif + kfree(AsocEntry); + ieee->peer_assoc_list[idx] = NULL; + atomic_dec(&ieee->AsocEntryNum); + + if(atomic_read(&ieee->AsocEntryNum) == 0){ + + down(&ieee->wx_sem); + rtllib_stop_protocol(ieee,true); + + list_for_each_entry(target, &ieee->network_list, list) { + if (is_same_network(target, &ieee->current_network,(target->ssid_len?1:0))){ + printk("delete sta of previous Ad-hoc\n"); + list_del(&target->list); + break; + } + } + + rtllib_start_protocol(ieee); + up(&ieee->wx_sem); + }else{ +#if defined (RTL8192S_WAPI_SUPPORT) + if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){ + WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0); + } +#endif + } + } + } + } + +#ifdef TO_DO_LIST + if(AsocEntry_AnyStationAssociated(pMgntInfo)==false) + DrvIFIndicateDisassociation(Adapter, unspec_reason); + + if(pMgntInfo->dot11CurrentWirelessMode == WIRELESS_MODE_G || + (IS_WIRELESS_MODE_N_24G(Adapter) && pMgntInfo->pHTInfo->bCurSuppCCK) ) + { + if(nBModeStaCnt == 0) + { + pMgntInfo->bUseProtection = false; + ActUpdate_mCapInfo(Adapter, pMgntInfo->mCap); + } + } + + if(IS_WIRELESS_MODE_N_24G(Adapter) || IS_WIRELESS_MODE_N_5G(Adapter) ) + { + if(nLegacyStaCnt > 0) + { + pMgntInfo->pHTInfo->CurrentOpMode = HT_OPMODE_MIXED; + } + else + { + if((pMgntInfo->pHTInfo->bCurBW40MHz) && (n20MHzStaCnt > 0)) + pMgntInfo->pHTInfo->CurrentOpMode = HT_OPMODE_40MHZ_PROTECT; + else + pMgntInfo->pHTInfo->CurrentOpMode = HT_OPMODE_NO_PROTECT; + + } + } + + if(IS_WIRELESS_MODE_G(Adapter) || + (IS_WIRELESS_MODE_N_24G(Adapter) && pMgntInfo->pHTInfo->bCurSuppCCK)) + { + if(pMgntInfo->bUseProtection) + { + u8 CckRate[4] = { MGN_1M, MGN_2M, MGN_5_5M, MGN_11M }; + OCTET_STRING osCckRate; + FillOctetString(osCckRate, CckRate, 4); + FilterSupportRate(pMgntInfo->mBrates, &osCckRate, false); + Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_BASIC_RATE, (pu1Byte)&osCckRate); + } + else + { + Adapter->HalFunc.SetHwRegHandler( Adapter, HW_VAR_BASIC_RATE, (pu1Byte)(&pMgntInfo->mBrates) ); + } + } +#endif +} +#endif + +static int IsPassiveChannel( struct rtllib_device *rtllib, u8 channel) +{ + if (MAX_CHANNEL_NUMBER < channel) { + printk("%s(): Invalid Channel\n", __FUNCTION__); + return 0; + } + + if(rtllib->active_channel_map[channel] == 2) + return 1; + + return 0; +} + +int IsLegalChannel( struct rtllib_device *rtllib, u8 channel) +{ + if (MAX_CHANNEL_NUMBER < channel) { + printk("%s(): Invalid Channel\n", __FUNCTION__); + return 0; + } + if (rtllib->active_channel_map[channel] > 0) + return 1; + + return 0; +} + + +static inline void rtllib_process_probe_response( + struct rtllib_device *ieee, + struct rtllib_probe_response *beacon, + struct rtllib_rx_stats *stats) +{ + struct rtllib_network *target; + struct rtllib_network *oldest = NULL; +#ifdef CONFIG_RTLLIB_DEBUG + struct rtllib_info_element *info_element = &beacon->info_element[0]; +#endif + unsigned long flags; + short renew; +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)) + struct rtllib_network *network = kzalloc(sizeof(struct rtllib_network), GFP_ATOMIC); +#else + struct rtllib_network *network = kmalloc(sizeof(*network), GFP_ATOMIC); + memset(network,0,sizeof(*network)); +#endif + + if (!network) { + return; + } + +#ifdef _RTL8192_EXT_PATCH_ + if(ieee->ext_patch_rtllib_process_probe_response_1) { + /* 2 deonte the normal beacon packet, + * discard it under mesh only mode */ + if(ieee->ext_patch_rtllib_process_probe_response_1(ieee, beacon, stats) != 2){ + goto free_network; + } else if((ieee->iw_mode == IW_MODE_MESH)&&ieee->only_mesh) { + goto free_network; + } + } +#endif + + RTLLIB_DEBUG_SCAN( + "'%s' (" MAC_FMT "): %c%c%c%c %c%c%c%c-%c%c%c%c %c%c%c%c\n", + escape_essid(info_element->data, info_element->len), + MAC_ARG(beacon->header.addr3), + (beacon->capability & (1<<0xf)) ? '1' : '0', + (beacon->capability & (1<<0xe)) ? '1' : '0', + (beacon->capability & (1<<0xd)) ? '1' : '0', + (beacon->capability & (1<<0xc)) ? '1' : '0', + (beacon->capability & (1<<0xb)) ? '1' : '0', + (beacon->capability & (1<<0xa)) ? '1' : '0', + (beacon->capability & (1<<0x9)) ? '1' : '0', + (beacon->capability & (1<<0x8)) ? '1' : '0', + (beacon->capability & (1<<0x7)) ? '1' : '0', + (beacon->capability & (1<<0x6)) ? '1' : '0', + (beacon->capability & (1<<0x5)) ? '1' : '0', + (beacon->capability & (1<<0x4)) ? '1' : '0', + (beacon->capability & (1<<0x3)) ? '1' : '0', + (beacon->capability & (1<<0x2)) ? '1' : '0', + (beacon->capability & (1<<0x1)) ? '1' : '0', + (beacon->capability & (1<<0x0)) ? '1' : '0'); + + if (rtllib_network_init(ieee, beacon, network, stats)) { + RTLLIB_DEBUG_SCAN("Dropped '%s' (" MAC_FMT ") via %s.\n", + escape_essid(info_element->data, + info_element->len), + MAC_ARG(beacon->header.addr3), + WLAN_FC_GET_STYPE(beacon->header.frame_ctl) == + RTLLIB_STYPE_PROBE_RESP ? + "PROBE RESPONSE" : "BEACON"); + goto free_network; + } + + + if (!IsLegalChannel(ieee, network->channel)) + goto free_network; + + if (WLAN_FC_GET_STYPE(beacon->header.frame_ctl) == RTLLIB_STYPE_PROBE_RESP) { + if (IsPassiveChannel(ieee, network->channel)) { + printk("GetScanInfo(): For Global Domain, " + "filter probe response at channel(%d).\n", network->channel); + goto free_network; + } + } + + /* The network parsed correctly -- so now we scan our known networks + * to see if we can find it in our list. + * + * NOTE: This search is definitely not optimized. Once its doing + * the "right thing" we'll optimize it for efficiency if + * necessary */ + + /* Search for this entry in the list and update it if it is + * already there. */ + + spin_lock_irqsave(&ieee->lock, flags); +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + if(is_beacon(beacon->header.frame_ctl)){ + if((ieee->iw_mode == IW_MODE_ADHOC) && (ieee->state == RTLLIB_LINKED)) + { + if((network->ssid_len == ieee->current_network.ssid_len) + && (!memcmp(network->ssid,ieee->current_network.ssid,ieee->current_network.ssid_len)) + && (network->channel == ieee->current_network.channel) + && (ieee->current_network.channel > 0) + && (ieee->current_network.channel <= 14)) + { + if(!memcmp(ieee->current_network.bssid,network->bssid,6)) + { + int idx = 0; + struct rtllib_hdr_3addr* header = NULL; + int idx_exist = 0; + if(timer_pending(&ieee->ibss_wait_timer)) + del_timer_sync(&ieee->ibss_wait_timer); + header = (struct rtllib_hdr_3addr*)&(beacon->header); + idx_exist = IsStaInfoExist(ieee,header->addr2); + if(idx_exist >= PEER_MAX_ASSOC) { + idx = GetFreeStaInfoIdx(ieee, header->addr2); + } else { + ieee->peer_assoc_list[idx_exist]->LastActiveTime = jiffies; + goto no_alloc; + } + if (idx >= PEER_MAX_ASSOC - 1) { + printk("\n%s():ERR!!!Buffer overflow - could not append!!!",__FUNCTION__); + goto free_network; + } else { + ieee->peer_assoc_list[idx] = (struct sta_info *)kmalloc(sizeof(struct sta_info), GFP_ATOMIC); + memset(ieee->peer_assoc_list[idx], 0, sizeof(struct sta_info)); + ieee->peer_assoc_list[idx]->LastActiveTime = jiffies; + memcpy(ieee->peer_assoc_list[idx]->macaddr,header->addr2,ETH_ALEN); + ieee->peer_assoc_list[idx]->ratr_index = 8; + InitStaInfo(ieee,idx); + atomic_inc(&ieee->AsocEntryNum); + ieee->peer_assoc_list[idx]->aid = AsocEntry_AssignAvailableAID(ieee, ieee->peer_assoc_list[idx]->macaddr); + ieee->check_ht_cap(ieee->dev,ieee->peer_assoc_list[idx],network); + queue_delayed_work_rsl(ieee->wq, &ieee->update_assoc_sta_info_wq, 0); + ieee->Adhoc_InitRateAdaptive(ieee->dev,ieee->peer_assoc_list[idx]); + } +#if defined (RTL8192S_WAPI_SUPPORT) + if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){ + WapiCreateAppEventAndSend(ieee,NULL,0,header->addr2,false, false, false, 0, false); + } +#endif + } + else + { +#if 0 + printk("%s(): SSID matched but BSSID mismatched.\n",__FUNCTION__); + + ieee->TargetTsf = beacon->time_stamp[1]; + ieee->TargetTsf <<= 32; + ieee->TargetTsf |= beacon->time_stamp[0]; + + ieee->CurrTsf = stats->TimeStampLow; + + queue_delayed_work_rsl(ieee->wq, &ieee->check_tsf_wq, 0); +#endif + } + } + } + } + if(ieee->iw_mode == IW_MODE_ADHOC){ + if((network->ssid_len == ieee->current_network.ssid_len) + && (!memcmp(network->ssid,ieee->current_network.ssid,ieee->current_network.ssid_len)) + && (network->capability & WLAN_CAPABILITY_IBSS) + && (ieee->state == RTLLIB_LINKED_SCANNING)) + { + if(memcmp(ieee->current_network.bssid,network->bssid,6)) + { + printk("%s(): SSID matched but BSSID mismatched.\n",__FUNCTION__); + + ieee->TargetTsf = beacon->time_stamp[1]; + ieee->TargetTsf <<= 32; + ieee->TargetTsf |= beacon->time_stamp[0]; + + ieee->CurrTsf = stats->TimeStampLow; + + queue_delayed_work_rsl(ieee->wq, &ieee->check_tsf_wq, 0); + } + } + } +#endif +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) +no_alloc: + if(ieee->iw_mode == IW_MODE_INFRA) +#endif + { + if(is_same_network(&ieee->current_network, network, (network->ssid_len?1:0))) { + update_network(&ieee->current_network, network); + if((ieee->current_network.mode == IEEE_N_24G || ieee->current_network.mode == IEEE_G) + && ieee->current_network.berp_info_valid){ + if(ieee->current_network.erp_value& ERP_UseProtection) + ieee->current_network.buseprotection = true; + else + ieee->current_network.buseprotection = false; + } + if(is_beacon(beacon->header.frame_ctl)) + { + if(ieee->state >= RTLLIB_LINKED) + ieee->LinkDetectInfo.NumRecvBcnInPeriod++; + } +#if 0 + else + network.flags = (~NETWORK_EMPTY_ESSID & network.flags)|(NETWORK_EMPTY_ESSID & ieee->current_network.flags); +#endif + } + } +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + else if(ieee->iw_mode == IW_MODE_ADHOC) + { + if(is_same_network(&ieee->current_network, network, (network->ssid_len?1:0))) { + update_ibss_network(&ieee->current_network, network); + } + } +#endif + list_for_each_entry(target, &ieee->network_list, list) { + if (is_same_network(target, network,(target->ssid_len?1:0))) + break; + if ((oldest == NULL) || + (target->last_scanned < oldest->last_scanned)) + oldest = target; + } + + /* If we didn't find a match, then get a new network slot to initialize + * with this beacon's information */ + if (&target->list == &ieee->network_list) { + if (list_empty(&ieee->network_free_list)) { + /* If there are no more slots, expire the oldest */ + list_del(&oldest->list); + target = oldest; + RTLLIB_DEBUG_SCAN("Expired '%s' (" MAC_FMT ") from " + "network list.\n", + escape_essid(target->ssid, + target->ssid_len), + MAC_ARG(target->bssid)); + } else { + /* Otherwise just pull from the free list */ + target = list_entry(ieee->network_free_list.next, + struct rtllib_network, list); + list_del(ieee->network_free_list.next); + } + + +#ifdef CONFIG_RTLLIB_DEBUG + RTLLIB_DEBUG_SCAN("Adding '%s' (" MAC_FMT ") via %s.\n", + escape_essid(network->ssid, + network->ssid_len), + MAC_ARG(network->bssid), + WLAN_FC_GET_STYPE(beacon->header.frame_ctl) == + RTLLIB_STYPE_PROBE_RESP ? + "PROBE RESPONSE" : "BEACON"); +#endif +#ifdef _RTL8192_EXT_PATCH_ + network->ext_entry = target->ext_entry; +#endif + memcpy(target, network, sizeof(*target)); + list_add_tail(&target->list, &ieee->network_list); + if(ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) + rtllib_softmac_new_net(ieee, network); + } else { + RTLLIB_DEBUG_SCAN("Updating '%s' (" MAC_FMT ") via %s.\n", + escape_essid(target->ssid, + target->ssid_len), + MAC_ARG(target->bssid), + WLAN_FC_GET_STYPE(beacon->header.frame_ctl) == + RTLLIB_STYPE_PROBE_RESP ? + "PROBE RESPONSE" : "BEACON"); + + /* we have an entry and we are going to update it. But this entry may + * be already expired. In this case we do the same as we found a new + * net and call the new_net handler + */ + renew = !time_after(target->last_scanned + ieee->scan_age, jiffies); +#if 0 + if(is_beacon(beacon->header.frame_ctl) == 0) + network.flags = (~NETWORK_EMPTY_ESSID & network.flags)|(NETWORK_EMPTY_ESSID & target->flags); + if(((network.flags & NETWORK_EMPTY_ESSID) == NETWORK_EMPTY_ESSID) \ + && (((network.ssid_len > 0) && (strncmp(target->ssid, network.ssid, network.ssid_len)))\ + ||((ieee->current_network.ssid_len == network.ssid_len)&&(strncmp(ieee->current_network.ssid, network.ssid, network.ssid_len) == 0)&&(ieee->state == RTLLIB_NOLINK)))) + renew = 1; +#else + if((!target->ssid_len) && + (((network->ssid_len > 0) && (target->hidden_ssid_len == 0)) + || ((ieee->current_network.ssid_len == network->ssid_len) && + (strncmp(ieee->current_network.ssid, network->ssid, network->ssid_len) == 0) && + (ieee->state == RTLLIB_NOLINK))) + ) { + renew = 1; + } +#endif +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + if(ieee->iw_mode == IW_MODE_ADHOC) + update_ibss_network(target, network); + else + update_network(target, network); +#else + update_network(target, network); +#endif + if(renew && (ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE)) + rtllib_softmac_new_net(ieee, network); + } + + spin_unlock_irqrestore(&ieee->lock, flags); + if (is_beacon(beacon->header.frame_ctl)&&is_same_network(&ieee->current_network, network, (network->ssid_len?1:0))&&\ + (ieee->state == RTLLIB_LINKED)) { + if(ieee->handle_beacon != NULL) { + ieee->handle_beacon(ieee->dev,beacon,&ieee->current_network); + } + } +free_network: + kfree(network); + return; +} + +void rtllib_rx_mgt(struct rtllib_device *ieee, + struct sk_buff *skb, + struct rtllib_rx_stats *stats) +{ + struct rtllib_hdr_4addr *header = (struct rtllib_hdr_4addr *)skb->data ; +#if 0 + if(ieee->sta_sleep || (ieee->ps != RTLLIB_PS_DISABLED && + ieee->iw_mode == IW_MODE_INFRA && + ieee->state == RTLLIB_LINKED)) + { + tasklet_schedule(&ieee->ps_task); + } +#endif + if(WLAN_FC_GET_STYPE(header->frame_ctl) != RTLLIB_STYPE_PROBE_RESP && + WLAN_FC_GET_STYPE(header->frame_ctl) != RTLLIB_STYPE_BEACON) + ieee->last_rx_ps_time = jiffies; + + switch (WLAN_FC_GET_STYPE(header->frame_ctl)) { + + case RTLLIB_STYPE_BEACON: + RTLLIB_DEBUG_MGMT("received BEACON (%d)\n", + WLAN_FC_GET_STYPE(header->frame_ctl)); + RTLLIB_DEBUG_SCAN("Beacon\n"); + rtllib_process_probe_response( + ieee, (struct rtllib_probe_response *)header, stats); + +#ifdef ENABLE_LPS + if(ieee->sta_sleep || (ieee->ps != RTLLIB_PS_DISABLED && + ieee->iw_mode == IW_MODE_INFRA && + ieee->state == RTLLIB_LINKED)) + { + tasklet_schedule(&ieee->ps_task); + } +#endif + + break; + + case RTLLIB_STYPE_PROBE_RESP: + RTLLIB_DEBUG_MGMT("received PROBE RESPONSE (%d)\n", + WLAN_FC_GET_STYPE(header->frame_ctl)); + RTLLIB_DEBUG_SCAN("Probe response\n"); + rtllib_process_probe_response( + ieee, (struct rtllib_probe_response *)header, stats); + break; + case RTLLIB_STYPE_PROBE_REQ: + RTLLIB_DEBUG_MGMT("received PROBE RESQUEST (%d)\n", + WLAN_FC_GET_STYPE(header->frame_ctl)); + RTLLIB_DEBUG_SCAN("Probe request\n"); + if ((ieee->softmac_features & IEEE_SOFTMAC_PROBERS) && + ((ieee->iw_mode == IW_MODE_ADHOC || + ieee->iw_mode == IW_MODE_MASTER) && + ieee->state == RTLLIB_LINKED)){ + rtllib_rx_probe_rq(ieee, skb); + } +#ifdef _RTL8192_EXT_PATCH_ + if((ieee->iw_mode == IW_MODE_MESH) && ieee->ext_patch_rtllib_rx_mgt_on_probe_req ) + ieee->ext_patch_rtllib_rx_mgt_on_probe_req( ieee, (struct rtllib_probe_request *)header, stats); +#endif + break; + } + +#if 0 +#ifdef CONFIG_CFG_80211 + if((rtllib_act_scanning(ieee,false) == true) && ((WLAN_FC_GET_STYPE(header->frame_ctl) ==RTLLIB_STYPE_PROBE_RESP) || + (WLAN_FC_GET_STYPE(header->frame_ctl) ==RTLLIB_STYPE_BEACON))) + return ieee80211_scan_rx(ieee, skb, stats); +#endif +#endif +} + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(rtllib_rx_mgt); +EXPORT_SYMBOL_RSL(rtllib_rx); +EXPORT_SYMBOL_RSL(IsLegalChannel); +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) +EXPORT_SYMBOL_RSL(IbssAgeFunction); +EXPORT_SYMBOL_RSL(GetStaInfo); +#endif +#ifdef _RTL8192_EXT_PATCH_ +EXPORT_SYMBOL_RSL(rtllib_network_init); +EXPORT_SYMBOL_RSL(rtllib_parse_info_param); +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib_crypt_wep.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib_crypt_wep.c @@ -0,0 +1,404 @@ +/* + * Host AP crypt: host-based WEP encryption implementation for Host AP driver + * + * Copyright (c) 2002-2004, Jouni Malinen + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See README and COPYING for + * more details. + */ + +#include +#include +#include +#include +#include +#include +#include +#ifdef _RTL8192_EXT_PATCH_ +#include +#endif +#include "rtllib.h" + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,20)) +#endif + + +#if defined(BUILT_IN_CRYPTO) || (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) +#include "rtl_crypto.h" +#else +#include +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + #include +#else + #include +#endif +#include +/* +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) +#include "rtl_crypto.h" +#else +#include +#endif + +#include +#include +*/ +#ifndef BUILT_IN_RTLLIB +MODULE_AUTHOR("Jouni Malinen"); +MODULE_DESCRIPTION("Host AP crypt: WEP"); +MODULE_LICENSE("GPL"); +#endif +struct prism2_wep_data { + u32 iv; +#define WEP_KEY_LEN 13 + u8 key[WEP_KEY_LEN + 1]; + u8 key_len; + u8 key_idx; + #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + struct crypto_tfm *tfm; + #else + struct crypto_blkcipher *tx_tfm; + struct crypto_blkcipher *rx_tfm; + #endif +}; + + +static void * prism2_wep_init(int keyidx) +{ + struct prism2_wep_data *priv; + + priv = kmalloc(sizeof(*priv), GFP_ATOMIC); + if (priv == NULL) + goto fail; + memset(priv, 0, sizeof(*priv)); + priv->key_idx = keyidx; + + #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + priv->tfm = crypto_alloc_tfm("arc4", 0); + if (priv->tfm == NULL) { + printk(KERN_DEBUG "rtllib_crypt_wep: could not allocate " + "crypto API arc4\n"); + goto fail; + } + #else + priv->tx_tfm = crypto_alloc_blkcipher("ecb(arc4)", 0, CRYPTO_ALG_ASYNC); + if (IS_ERR(priv->tx_tfm)) { + printk(KERN_DEBUG "rtllib_crypt_wep: could not allocate " + "crypto API arc4\n"); + priv->tx_tfm = NULL; + goto fail; + } + priv->rx_tfm = crypto_alloc_blkcipher("ecb(arc4)", 0, CRYPTO_ALG_ASYNC); + if (IS_ERR(priv->rx_tfm)) { + printk(KERN_DEBUG "rtllib_crypt_wep: could not allocate " + "crypto API arc4\n"); + priv->rx_tfm = NULL; + goto fail; + } + #endif + + /* start WEP IV from a random value */ + get_random_bytes(&priv->iv, 4); + + return priv; + +fail: + #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + if (priv) { + if (priv->tfm) + crypto_free_tfm(priv->tfm); + kfree(priv); + } + #else + if (priv) { + if (priv->tx_tfm) + crypto_free_blkcipher(priv->tx_tfm); + if (priv->rx_tfm) + crypto_free_blkcipher(priv->rx_tfm); + kfree(priv); + } + #endif + return NULL; +} + + +static void prism2_wep_deinit(void *priv) +{ + struct prism2_wep_data *_priv = priv; + #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + if (_priv && _priv->tfm) + crypto_free_tfm(_priv->tfm); + #else + if (_priv) { + if (_priv->tx_tfm) + crypto_free_blkcipher(_priv->tx_tfm); + if (_priv->rx_tfm) + crypto_free_blkcipher(_priv->rx_tfm); + } + #endif + kfree(priv); +} + +/* Perform WEP encryption on given skb that has at least 4 bytes of headroom + * for IV and 4 bytes of tailroom for ICV. Both IV and ICV will be transmitted, + * so the payload length increases with 8 bytes. + * + * WEP frame payload: IV + TX key idx, RC4(data), ICV = RC4(CRC32(data)) + */ +static int prism2_wep_encrypt(struct sk_buff *skb, int hdr_len, void *priv) +{ + struct prism2_wep_data *wep = priv; + u32 klen, len; + u8 key[WEP_KEY_LEN + 3]; + u8 *pos; + cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + #if ( !defined(BUILT_IN_CRYPTO) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) || (OPENSUSE_SLED)) ) + struct blkcipher_desc desc = {.tfm = wep->tx_tfm}; + #endif + u32 crc; + u8 *icv; +#ifdef _RTL8192_EXT_PATCH_ + u8 broadcastaddr[6] = {0xff,0xff,0xff,0xff,0xff,0xff}; + struct rtllib_hdr_3addr* tmp_header = (struct rtllib_hdr_3addr*)(skb->data); + u8 is_broadcast_data = 0; + u8 is_multicast_data = 0; +#endif + struct scatterlist sg; + if (skb_headroom(skb) < 4 || skb_tailroom(skb) < 4 || + skb->len < hdr_len){ + printk("Error!!!headroom=%d tailroom=%d skblen=%d hdr_len=%d\n",skb_headroom(skb),skb_tailroom(skb),skb->len,hdr_len); + return -1; + } +#ifdef _RTL8192_EXT_PATCH_ + if(tcb_desc->badhoc==0){ + if(memcmp(tmp_header->addr1,broadcastaddr,6) == 0){ + is_broadcast_data = 1; + tcb_desc->bHwSec = 0; + } + if(is_multicast_ether_addr(tmp_header->addr1)){ + is_multicast_data = 1; + tcb_desc->bHwSec = 0; + } + } +#endif + len = skb->len - hdr_len; + pos = skb_push(skb, 4); + memmove(pos, pos + 4, hdr_len); + pos += hdr_len; + + klen = 3 + wep->key_len; + + wep->iv++; + + /* Fluhrer, Mantin, and Shamir have reported weaknesses in the key + * scheduling algorithm of RC4. At least IVs (KeyByte + 3, 0xff, N) + * can be used to speedup attacks, so avoid using them. */ + if ((wep->iv & 0xff00) == 0xff00) { + u8 B = (wep->iv >> 16) & 0xff; + if (B >= 3 && B < klen) + wep->iv += 0x0100; + } + + /* Prepend 24-bit IV to RC4 key and TX frame */ + *pos++ = key[0] = (wep->iv >> 16) & 0xff; + *pos++ = key[1] = (wep->iv >> 8) & 0xff; + *pos++ = key[2] = wep->iv & 0xff; + *pos++ = wep->key_idx << 6; + + /* Copy rest of the WEP key (the secret part) */ + memcpy(key + 3, wep->key, wep->key_len); + + if (!tcb_desc->bHwSec) + { + + /* Append little-endian CRC32 and encrypt it to produce ICV */ + #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) + crc = ~crc32_le(~0, pos, len); + #else + crc = ~ether_crc_le(len, pos); + #endif + icv = skb_put(skb, 4); + icv[0] = crc; + icv[1] = crc >> 8; + icv[2] = crc >> 16; + icv[3] = crc >> 24; + + #if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + sg.page = virt_to_page(pos); + sg.offset = offset_in_page(pos); + sg.length = len + 4; + #else + sg_init_one(&sg, pos, len+4); + #endif + #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + crypto_cipher_setkey(wep->tfm, key, klen); + crypto_cipher_encrypt(wep->tfm, &sg, &sg, len + 4); + return 0; + #else + crypto_blkcipher_setkey(wep->tx_tfm, key, klen); + return crypto_blkcipher_encrypt(&desc, &sg, &sg, len + 4); + #endif + } + + return 0; +} + + +/* Perform WEP decryption on given buffer. Buffer includes whole WEP part of + * the frame: IV (4 bytes), encrypted payload (including SNAP header), + * ICV (4 bytes). len includes both IV and ICV. + * + * Returns 0 if frame was decrypted successfully and ICV was correct and -1 on + * failure. If frame is OK, IV and ICV will be removed. + */ +static int prism2_wep_decrypt(struct sk_buff *skb, int hdr_len, void *priv) +{ + struct prism2_wep_data *wep = priv; + u32 klen, plen; + u8 key[WEP_KEY_LEN + 3]; + u8 keyidx, *pos; + cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + #if ( !defined(BUILT_IN_CRYPTO) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) || (OPENSUSE_SLED)) ) + struct blkcipher_desc desc = {.tfm = wep->rx_tfm}; + #endif + u32 crc; + u8 icv[4]; + struct scatterlist sg; + if (skb->len < hdr_len + 8) + return -1; + + pos = skb->data + hdr_len; + key[0] = *pos++; + key[1] = *pos++; + key[2] = *pos++; + keyidx = *pos++ >> 6; + if (keyidx != wep->key_idx) + return -1; + + klen = 3 + wep->key_len; + + /* Copy rest of the WEP key (the secret part) */ + memcpy(key + 3, wep->key, wep->key_len); + + /* Apply RC4 to data and compute CRC32 over decrypted data */ + plen = skb->len - hdr_len - 8; + + if (!tcb_desc->bHwSec) + { + #if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + sg.page = virt_to_page(pos); + sg.offset = offset_in_page(pos); + sg.length = plen + 4; + #else + sg_init_one(&sg, pos, plen+4); + #endif + #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + crypto_cipher_setkey(wep->tfm, key, klen); + crypto_cipher_decrypt(wep->tfm, &sg, &sg, plen + 4); + #else + crypto_blkcipher_setkey(wep->rx_tfm, key, klen); + if (crypto_blkcipher_decrypt(&desc, &sg, &sg, plen + 4)) + return -7; + #endif + #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) + crc = ~crc32_le(~0, pos, plen); + #else + crc = ~ether_crc_le(plen, pos); + #endif + icv[0] = crc; + icv[1] = crc >> 8; + icv[2] = crc >> 16; + icv[3] = crc >> 24; + if (memcmp(icv, pos + plen, 4) != 0) { + /* ICV mismatch - drop frame */ + return -2; + } + } + /* Remove IV and ICV */ + memmove(skb->data + 4, skb->data, hdr_len); + skb_pull(skb, 4); + skb_trim(skb, skb->len - 4); + + return 0; +} + + +static int prism2_wep_set_key(void *key, int len, u8 *seq, void *priv) +{ + struct prism2_wep_data *wep = priv; + + if (len < 0 || len > WEP_KEY_LEN) + return -1; + + memcpy(wep->key, key, len); + wep->key_len = len; + + return 0; +} + + +static int prism2_wep_get_key(void *key, int len, u8 *seq, void *priv) +{ + struct prism2_wep_data *wep = priv; + + if (len < wep->key_len) + return -1; + + memcpy(key, wep->key, wep->key_len); + + return wep->key_len; +} + + +static char * prism2_wep_print_stats(char *p, void *priv) +{ + struct prism2_wep_data *wep = priv; + p += sprintf(p, "key[%d] alg=WEP len=%d\n", + wep->key_idx, wep->key_len); + return p; +} + + +static struct rtllib_crypto_ops rtllib_crypt_wep = { + .name = "WEP", + .init = prism2_wep_init, + .deinit = prism2_wep_deinit, + .encrypt_mpdu = prism2_wep_encrypt, + .decrypt_mpdu = prism2_wep_decrypt, + .encrypt_msdu = NULL, + .decrypt_msdu = NULL, + .set_key = prism2_wep_set_key, + .get_key = prism2_wep_get_key, + .print_stats = prism2_wep_print_stats, + .extra_prefix_len = 4, /* IV */ + .extra_postfix_len = 4, /* ICV */ + .owner = THIS_MODULE, +}; + + +int __init rtllib_crypto_wep_init(void) +{ + return rtllib_register_crypto_ops(&rtllib_crypt_wep); +} + + +void __exit rtllib_crypto_wep_exit(void) +{ + rtllib_unregister_crypto_ops(&rtllib_crypt_wep); +} + +void rtllib_wep_null(void) +{ + return; +} + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(rtllib_wep_null); + +module_init(rtllib_crypto_wep_init); +module_exit(rtllib_crypto_wep_exit); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/aes.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/aes.c @@ -0,0 +1,468 @@ +/* + * Cryptographic API. + * + * AES Cipher Algorithm. + * + * Based on Brian Gladman's code. + * + * Linux developers: + * Alexander Kjeldaas + * Herbert Valerio Riedel + * Kyle McMartin + * Adam J. Richter (conversion to 2.5 API). + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * --------------------------------------------------------------------------- + * Copyright (c) 2002, Dr Brian Gladman , Worcester, UK. + * All rights reserved. + * + * LICENSE TERMS + * + * The free distribution and use of this software in both source and binary + * form is allowed (with or without changes) provided that: + * + * 1. distributions of this source code include the above copyright + * notice, this list of conditions and the following disclaimer; + * + * 2. distributions in binary form include the above copyright + * notice, this list of conditions and the following disclaimer + * in the documentation and/or other associated materials; + * + * 3. the copyright holder's name is not used to endorse products + * built using this software without specific written permission. + * + * ALTERNATIVELY, provided that this notice is retained in full, this product + * may be distributed under the terms of the GNU General Public License (GPL), + * in which case the provisions of the GPL apply INSTEAD OF those given above. + * + * DISCLAIMER + * + * This software is provided 'as is' with no explicit or implied warranties + * in respect of its properties, including, but not limited to, correctness + * and/or fitness for purpose. + * --------------------------------------------------------------------------- + */ + +/* Some changes from the Gladman version: + s/RIJNDAEL(e_key)/E_KEY/g + s/RIJNDAEL(d_key)/D_KEY/g +*/ + +#include +#include +#include +#include +#include "rtl_crypto.h" +#include + +#define AES_MIN_KEY_SIZE 16 +#define AES_MAX_KEY_SIZE 32 + +#define AES_BLOCK_SIZE 16 + +static inline +u32 generic_rotr32 (const u32 x, const unsigned bits) +{ + const unsigned n = bits % 32; + return (x >> n) | (x << (32 - n)); +} + +static inline +u32 generic_rotl32 (const u32 x, const unsigned bits) +{ + const unsigned n = bits % 32; + return (x << n) | (x >> (32 - n)); +} + +#define rotl generic_rotl32 +#define rotr generic_rotr32 + +/* + * #define byte(x, nr) ((unsigned char)((x) >> (nr*8))) + */ +inline static u8 +byte(const u32 x, const unsigned n) +{ + return x >> (n << 3); +} + +#define u32_in(x) le32_to_cpu(*(const u32 *)(x)) +#define u32_out(to, from) (*(u32 *)(to) = cpu_to_le32(from)) + +struct aes_ctx { + int key_length; + u32 E[60]; + u32 D[60]; +}; + +#define E_KEY ctx->E +#define D_KEY ctx->D + +static u8 pow_tab[256] __initdata; +static u8 log_tab[256] __initdata; +static u8 sbx_tab[256] __initdata; +static u8 isb_tab[256] __initdata; +static u32 rco_tab[10]; +static u32 ft_tab[4][256]; +static u32 it_tab[4][256]; + +static u32 fl_tab[4][256]; +static u32 il_tab[4][256]; + +static inline u8 __init +f_mult (u8 a, u8 b) +{ + u8 aa = log_tab[a], cc = aa + log_tab[b]; + + return pow_tab[cc + (cc < aa ? 1 : 0)]; +} + +#define ff_mult(a,b) (a && b ? f_mult(a, b) : 0) + +#define f_rn(bo, bi, n, k) \ + bo[n] = ft_tab[0][byte(bi[n],0)] ^ \ + ft_tab[1][byte(bi[(n + 1) & 3],1)] ^ \ + ft_tab[2][byte(bi[(n + 2) & 3],2)] ^ \ + ft_tab[3][byte(bi[(n + 3) & 3],3)] ^ *(k + n) + +#define i_rn(bo, bi, n, k) \ + bo[n] = it_tab[0][byte(bi[n],0)] ^ \ + it_tab[1][byte(bi[(n + 3) & 3],1)] ^ \ + it_tab[2][byte(bi[(n + 2) & 3],2)] ^ \ + it_tab[3][byte(bi[(n + 1) & 3],3)] ^ *(k + n) + +#define ls_box(x) \ + ( fl_tab[0][byte(x, 0)] ^ \ + fl_tab[1][byte(x, 1)] ^ \ + fl_tab[2][byte(x, 2)] ^ \ + fl_tab[3][byte(x, 3)] ) + +#define f_rl(bo, bi, n, k) \ + bo[n] = fl_tab[0][byte(bi[n],0)] ^ \ + fl_tab[1][byte(bi[(n + 1) & 3],1)] ^ \ + fl_tab[2][byte(bi[(n + 2) & 3],2)] ^ \ + fl_tab[3][byte(bi[(n + 3) & 3],3)] ^ *(k + n) + +#define i_rl(bo, bi, n, k) \ + bo[n] = il_tab[0][byte(bi[n],0)] ^ \ + il_tab[1][byte(bi[(n + 3) & 3],1)] ^ \ + il_tab[2][byte(bi[(n + 2) & 3],2)] ^ \ + il_tab[3][byte(bi[(n + 1) & 3],3)] ^ *(k + n) + +static void __init +gen_tabs (void) +{ + u32 i, t; + u8 p, q; + + /* log and power tables for GF(2**8) finite field with + 0x011b as modular polynomial - the simplest primitive + root is 0x03, used here to generate the tables */ + + for (i = 0, p = 1; i < 256; ++i) { + pow_tab[i] = (u8) p; + log_tab[p] = (u8) i; + + p ^= (p << 1) ^ (p & 0x80 ? 0x01b : 0); + } + + log_tab[1] = 0; + + for (i = 0, p = 1; i < 10; ++i) { + rco_tab[i] = p; + + p = (p << 1) ^ (p & 0x80 ? 0x01b : 0); + } + + for (i = 0; i < 256; ++i) { + p = (i ? pow_tab[255 - log_tab[i]] : 0); + q = ((p >> 7) | (p << 1)) ^ ((p >> 6) | (p << 2)); + p ^= 0x63 ^ q ^ ((q >> 6) | (q << 2)); + sbx_tab[i] = p; + isb_tab[p] = (u8) i; + } + + for (i = 0; i < 256; ++i) { + p = sbx_tab[i]; + + t = p; + fl_tab[0][i] = t; + fl_tab[1][i] = rotl (t, 8); + fl_tab[2][i] = rotl (t, 16); + fl_tab[3][i] = rotl (t, 24); + + t = ((u32) ff_mult (2, p)) | + ((u32) p << 8) | + ((u32) p << 16) | ((u32) ff_mult (3, p) << 24); + + ft_tab[0][i] = t; + ft_tab[1][i] = rotl (t, 8); + ft_tab[2][i] = rotl (t, 16); + ft_tab[3][i] = rotl (t, 24); + + p = isb_tab[i]; + + t = p; + il_tab[0][i] = t; + il_tab[1][i] = rotl (t, 8); + il_tab[2][i] = rotl (t, 16); + il_tab[3][i] = rotl (t, 24); + + t = ((u32) ff_mult (14, p)) | + ((u32) ff_mult (9, p) << 8) | + ((u32) ff_mult (13, p) << 16) | + ((u32) ff_mult (11, p) << 24); + + it_tab[0][i] = t; + it_tab[1][i] = rotl (t, 8); + it_tab[2][i] = rotl (t, 16); + it_tab[3][i] = rotl (t, 24); + } +} + +#define star_x(x) (((x) & 0x7f7f7f7f) << 1) ^ ((((x) & 0x80808080) >> 7) * 0x1b) + +#define imix_col(y,x) \ + u = star_x(x); \ + v = star_x(u); \ + w = star_x(v); \ + t = w ^ (x); \ + (y) = u ^ v ^ w; \ + (y) ^= rotr(u ^ t, 8) ^ \ + rotr(v ^ t, 16) ^ \ + rotr(t,24) + +/* initialise the key schedule from the user supplied key */ + +#define loop4(i) \ +{ t = rotr(t, 8); t = ls_box(t) ^ rco_tab[i]; \ + t ^= E_KEY[4 * i]; E_KEY[4 * i + 4] = t; \ + t ^= E_KEY[4 * i + 1]; E_KEY[4 * i + 5] = t; \ + t ^= E_KEY[4 * i + 2]; E_KEY[4 * i + 6] = t; \ + t ^= E_KEY[4 * i + 3]; E_KEY[4 * i + 7] = t; \ +} + +#define loop6(i) \ +{ t = rotr(t, 8); t = ls_box(t) ^ rco_tab[i]; \ + t ^= E_KEY[6 * i]; E_KEY[6 * i + 6] = t; \ + t ^= E_KEY[6 * i + 1]; E_KEY[6 * i + 7] = t; \ + t ^= E_KEY[6 * i + 2]; E_KEY[6 * i + 8] = t; \ + t ^= E_KEY[6 * i + 3]; E_KEY[6 * i + 9] = t; \ + t ^= E_KEY[6 * i + 4]; E_KEY[6 * i + 10] = t; \ + t ^= E_KEY[6 * i + 5]; E_KEY[6 * i + 11] = t; \ +} + +#define loop8(i) \ +{ t = rotr(t, 8); ; t = ls_box(t) ^ rco_tab[i]; \ + t ^= E_KEY[8 * i]; E_KEY[8 * i + 8] = t; \ + t ^= E_KEY[8 * i + 1]; E_KEY[8 * i + 9] = t; \ + t ^= E_KEY[8 * i + 2]; E_KEY[8 * i + 10] = t; \ + t ^= E_KEY[8 * i + 3]; E_KEY[8 * i + 11] = t; \ + t = E_KEY[8 * i + 4] ^ ls_box(t); \ + E_KEY[8 * i + 12] = t; \ + t ^= E_KEY[8 * i + 5]; E_KEY[8 * i + 13] = t; \ + t ^= E_KEY[8 * i + 6]; E_KEY[8 * i + 14] = t; \ + t ^= E_KEY[8 * i + 7]; E_KEY[8 * i + 15] = t; \ +} + +static int +aes_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags) +{ + struct aes_ctx *ctx = ctx_arg; + u32 i, t, u, v, w; + + if (key_len != 16 && key_len != 24 && key_len != 32) { + *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN; + return -EINVAL; + } + + ctx->key_length = key_len; + + E_KEY[0] = u32_in (in_key); + E_KEY[1] = u32_in (in_key + 4); + E_KEY[2] = u32_in (in_key + 8); + E_KEY[3] = u32_in (in_key + 12); + + switch (key_len) { + case 16: + t = E_KEY[3]; + for (i = 0; i < 10; ++i) + loop4 (i); + break; + + case 24: + E_KEY[4] = u32_in (in_key + 16); + t = E_KEY[5] = u32_in (in_key + 20); + for (i = 0; i < 8; ++i) + loop6 (i); + break; + + case 32: + E_KEY[4] = u32_in (in_key + 16); + E_KEY[5] = u32_in (in_key + 20); + E_KEY[6] = u32_in (in_key + 24); + t = E_KEY[7] = u32_in (in_key + 28); + for (i = 0; i < 7; ++i) + loop8 (i); + break; + } + + D_KEY[0] = E_KEY[0]; + D_KEY[1] = E_KEY[1]; + D_KEY[2] = E_KEY[2]; + D_KEY[3] = E_KEY[3]; + + for (i = 4; i < key_len + 24; ++i) { + imix_col (D_KEY[i], E_KEY[i]); + } + + return 0; +} + +/* encrypt a block of text */ + +#define f_nround(bo, bi, k) \ + f_rn(bo, bi, 0, k); \ + f_rn(bo, bi, 1, k); \ + f_rn(bo, bi, 2, k); \ + f_rn(bo, bi, 3, k); \ + k += 4 + +#define f_lround(bo, bi, k) \ + f_rl(bo, bi, 0, k); \ + f_rl(bo, bi, 1, k); \ + f_rl(bo, bi, 2, k); \ + f_rl(bo, bi, 3, k) + +static void aes_encrypt(void *ctx_arg, u8 *out, const u8 *in) +{ + const struct aes_ctx *ctx = ctx_arg; + u32 b0[4], b1[4]; + const u32 *kp = E_KEY + 4; + b0[0] = u32_in (in) ^ E_KEY[0]; + b0[1] = u32_in (in + 4) ^ E_KEY[1]; + b0[2] = u32_in (in + 8) ^ E_KEY[2]; + b0[3] = u32_in (in + 12) ^ E_KEY[3]; + + if (ctx->key_length > 24) { + f_nround (b1, b0, kp); + f_nround (b0, b1, kp); + } + + if (ctx->key_length > 16) { + f_nround (b1, b0, kp); + f_nround (b0, b1, kp); + } + + f_nround (b1, b0, kp); + f_nround (b0, b1, kp); + f_nround (b1, b0, kp); + f_nround (b0, b1, kp); + f_nround (b1, b0, kp); + f_nround (b0, b1, kp); + f_nround (b1, b0, kp); + f_nround (b0, b1, kp); + f_nround (b1, b0, kp); + f_lround (b0, b1, kp); + + u32_out (out, b0[0]); + u32_out (out + 4, b0[1]); + u32_out (out + 8, b0[2]); + u32_out (out + 12, b0[3]); +} + +/* decrypt a block of text */ + +#define i_nround(bo, bi, k) \ + i_rn(bo, bi, 0, k); \ + i_rn(bo, bi, 1, k); \ + i_rn(bo, bi, 2, k); \ + i_rn(bo, bi, 3, k); \ + k -= 4 + +#define i_lround(bo, bi, k) \ + i_rl(bo, bi, 0, k); \ + i_rl(bo, bi, 1, k); \ + i_rl(bo, bi, 2, k); \ + i_rl(bo, bi, 3, k) + +static void aes_decrypt(void *ctx_arg, u8 *out, const u8 *in) +{ + const struct aes_ctx *ctx = ctx_arg; + u32 b0[4], b1[4]; + const int key_len = ctx->key_length; + const u32 *kp = D_KEY + key_len + 20; + + b0[0] = u32_in (in) ^ E_KEY[key_len + 24]; + b0[1] = u32_in (in + 4) ^ E_KEY[key_len + 25]; + b0[2] = u32_in (in + 8) ^ E_KEY[key_len + 26]; + b0[3] = u32_in (in + 12) ^ E_KEY[key_len + 27]; + + if (key_len > 24) { + i_nround (b1, b0, kp); + i_nround (b0, b1, kp); + } + + if (key_len > 16) { + i_nround (b1, b0, kp); + i_nround (b0, b1, kp); + } + + i_nround (b1, b0, kp); + i_nround (b0, b1, kp); + i_nround (b1, b0, kp); + i_nround (b0, b1, kp); + i_nround (b1, b0, kp); + i_nround (b0, b1, kp); + i_nround (b1, b0, kp); + i_nround (b0, b1, kp); + i_nround (b1, b0, kp); + i_lround (b0, b1, kp); + + u32_out (out, b0[0]); + u32_out (out + 4, b0[1]); + u32_out (out + 8, b0[2]); + u32_out (out + 12, b0[3]); +} + + +static struct crypto_alg aes_alg = { + .cra_name = "aes", + .cra_flags = CRYPTO_ALG_TYPE_CIPHER, + .cra_blocksize = AES_BLOCK_SIZE, + .cra_ctxsize = sizeof(struct aes_ctx), + .cra_module = THIS_MODULE, + .cra_list = LIST_HEAD_INIT(aes_alg.cra_list), + .cra_u = { + .cipher = { + .cia_min_keysize = AES_MIN_KEY_SIZE, + .cia_max_keysize = AES_MAX_KEY_SIZE, + .cia_setkey = aes_set_key, + .cia_encrypt = aes_encrypt, + .cia_decrypt = aes_decrypt + } + } +}; + +int __init aes_init(void) +{ + gen_tabs(); + return crypto_register_alg(&aes_alg); +} + +void __exit aes_fini(void) +{ + crypto_unregister_alg(&aes_alg); +} + +#ifndef BUILT_IN_CRYPTO +module_init(aes_init); +module_exit(aes_fini); + +MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm"); +MODULE_LICENSE("Dual BSD/GPL"); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib_module.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib_module.c @@ -0,0 +1,601 @@ +/******************************************************************************* + + Copyright(c) 2004 Intel Corporation. All rights reserved. + + Portions of this file are based on the WEP enablement code provided by the + Host AP project hostap-drivers v0.1.3 + Copyright (c) 2001-2002, SSH Communications Security Corp and Jouni Malinen + + Copyright (c) 2002-2003, Jouni Malinen + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program; if not, write to the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + The full GNU General Public License is included in this distribution in the + file called LICENSE. + + Contact Information: + James P. Ketrenos + Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + +*******************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "rtllib.h" + + +#ifndef BUILT_IN_RTLLIB +MODULE_DESCRIPTION("802.11 data/management/control stack"); +MODULE_AUTHOR("Copyright (C) 2004 Intel Corporation "); +MODULE_LICENSE("GPL"); +#endif + +#ifdef RTL8192CE +#define DRV_NAME "rtllib_92ce" +#elif defined RTL8192SE +#define DRV_NAME "rtllib_92se" +#elif defined RTL8192E +#define DRV_NAME "rtllib_92e" +#elif defined RTL8190P +#define DRV_NAME "rtllib_90p" +#elif defined RTL8192SU +#define DRV_NAME "rtllib_92su" +#elif defined RTL8192U +#define DRV_NAME "rtllib_92u" +#else +#define DRV_NAME "rtllib_9x" +#endif + +#ifdef CONFIG_CFG_80211 +#ifdef CONFIG_RTL_RFKILL +static inline void rtllib_rfkill_poll(struct wiphy *wiphy) +{ + struct rtllib_device *rtllib = NULL; + + rtllib = (struct rtllib_device *)wiphy_priv(wiphy); + + rtllib = (struct rtllib_device *)netdev_priv_rsl(rtllib->dev); + + if (rtllib->rtllib_rfkill_poll) + rtllib->rtllib_rfkill_poll(rtllib->dev); +} +#else +static inline void rtllib_rfkill_poll(struct wiphy *wiphy) {} +#endif +struct cfg80211_ops rtllib_config_ops = {.rfkill_poll = rtllib_rfkill_poll }; +void *rtllib_wiphy_privid = &rtllib_wiphy_privid; +#endif + +void _setup_timer( struct timer_list* ptimer, void* fun, unsigned long data ) +{ + ptimer->function = fun; + ptimer->data = data; + init_timer( ptimer ); +} + +#ifdef _RTL8192_EXT_PATCH_ +static inline int rtllib_mesh_networks_allocate(struct rtllib_device *ieee) +{ + if (ieee->mesh_networks) + return 0; + + ieee->mesh_networks = kmalloc( + MAX_NETWORK_COUNT * sizeof(struct rtllib_network), + GFP_KERNEL); + + if (!ieee->mesh_networks) { + printk(KERN_WARNING "%s: Out of memory allocating beacons\n", + ieee->dev->name); + return -ENOMEM; + } + + memset(ieee->mesh_networks, 0, + MAX_NETWORK_COUNT * sizeof(struct rtllib_network)); + + return 0; +} + +static inline void rtllib_mesh_networks_free(struct rtllib_device *ieee) +{ + if (!ieee->mesh_networks) + return; + kfree(ieee->mesh_networks); + ieee->mesh_networks = NULL; +} +#endif + +static inline int rtllib_networks_allocate(struct rtllib_device *ieee) +{ + if (ieee->networks) + return 0; + +#ifndef RTK_DMP_PLATFORM + ieee->networks = kmalloc( + MAX_NETWORK_COUNT * sizeof(struct rtllib_network), + GFP_KERNEL); +#else + ieee->networks = dvr_malloc(MAX_NETWORK_COUNT * sizeof(struct rtllib_network)); +#endif + if (!ieee->networks) { + printk(KERN_WARNING "%s: Out of memory allocating beacons\n", + ieee->dev->name); + return -ENOMEM; + } + + memset(ieee->networks, 0, + MAX_NETWORK_COUNT * sizeof(struct rtllib_network)); + + return 0; +} + +static inline void rtllib_networks_free(struct rtllib_device *ieee) +{ + if (!ieee->networks) + return; +#ifndef RTK_DMP_PLATFORM + kfree(ieee->networks); +#else + dvr_free(ieee->networks); +#endif + ieee->networks = NULL; +} + +static inline void rtllib_networks_initialize(struct rtllib_device *ieee) +{ + int i; + + INIT_LIST_HEAD(&ieee->network_free_list); + INIT_LIST_HEAD(&ieee->network_list); + for (i = 0; i < MAX_NETWORK_COUNT; i++) + list_add_tail(&ieee->networks[i].list, &ieee->network_free_list); +#ifdef _RTL8192_EXT_PATCH_ + INIT_LIST_HEAD(&ieee->mesh_network_free_list); + INIT_LIST_HEAD(&ieee->mesh_network_list); + for (i = 0; i < MAX_NETWORK_COUNT; i++) + list_add_tail(&ieee->mesh_networks[i].list, &ieee->mesh_network_free_list); +#endif +} + +#if defined CONFIG_CFG_80211 +static bool rtllib_wdev_alloc(struct rtllib_device *ieee, int sizeof_priv) +{ + int priv_size; + struct rtllib_device *rtllib = NULL; + + priv_size = ALIGN(sizeof(struct rtllib_device),NETDEV_ALIGN) + sizeof_priv; + + ieee->wdev.wiphy = wiphy_new(&rtllib_config_ops, priv_size); + if (!ieee->wdev.wiphy) { + RTLLIB_ERROR("Unable to allocate wiphy.\n"); + goto out_err_new; + } + + rtllib = (struct rtllib_device *)wiphy_priv(ieee->wdev.wiphy); + rtllib->dev = ieee->dev; + + ieee->dev->ieee80211_ptr = &ieee->wdev; + ieee->wdev.iftype = NL80211_IFTYPE_STATION; + + /* Fill-out wiphy structure bits we know... Not enough info + * here to call set_wiphy_dev or set MAC address or channel info + * -- have to do that in ->ndo_init... */ + ieee->wdev.wiphy->privid = rtllib_wiphy_privid; + + ieee->wdev.wiphy->max_scan_ssids = 1; + ieee->wdev.wiphy->max_scan_ie_len = 0; + ieee->wdev.wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC); + + return true; + +out_err_new: + wiphy_free(ieee->wdev.wiphy); + return false; +} +#endif + +struct net_device *alloc_rtllib(int sizeof_priv) +{ + struct rtllib_device *ieee = NULL; + struct net_device *dev; + int i,err; + + RTLLIB_DEBUG_INFO("Initializing...\n"); + + dev = alloc_etherdev(sizeof(struct rtllib_device) + sizeof_priv); + if (!dev) { + RTLLIB_ERROR("Unable to network device.\n"); + goto failed; + } + ieee = (struct rtllib_device *)netdev_priv_rsl(dev); + memset(ieee, 0, sizeof(struct rtllib_device)+sizeof_priv); + ieee->dev = dev; + +#ifdef CONFIG_CFG_80211 + if(!rtllib_wdev_alloc(ieee, sizeof_priv)) + goto failed; +#endif + err = rtllib_networks_allocate(ieee); + if (err) { + RTLLIB_ERROR("Unable to allocate beacon storage: %d\n", + err); + goto failed; + } +#ifdef _RTL8192_EXT_PATCH_ + err = rtllib_mesh_networks_allocate(ieee); + if (err) { + RTLLIB_ERROR("Unable to allocate mesh_beacon storage: %d\n", + err); + goto failed; + } +#endif + rtllib_networks_initialize(ieee); + + + /* Default fragmentation threshold is maximum payload size */ + ieee->fts = DEFAULT_FTS; + ieee->scan_age = DEFAULT_MAX_SCAN_AGE; + ieee->open_wep = 1; + + /* Default to enabling full open WEP with host based encrypt/decrypt */ + ieee->host_encrypt = 1; + ieee->host_decrypt = 1; + ieee->ieee802_1x = 1; /* Default to supporting 802.1x */ + + INIT_LIST_HEAD(&ieee->crypt_deinit_list); + _setup_timer(&ieee->crypt_deinit_timer, + rtllib_crypt_deinit_handler, + (unsigned long) ieee); + ieee->rtllib_ap_sec_type = rtllib_ap_sec_type; + + spin_lock_init(&ieee->lock); + spin_lock_init(&ieee->wpax_suitlist_lock); + spin_lock_init(&ieee->bw_spinlock); + spin_lock_init(&ieee->reorder_spinlock); + atomic_set(&(ieee->atm_chnlop), 0); + atomic_set(&(ieee->atm_swbw), 0); + + ieee->bHalfNMode = false; + ieee->wpa_enabled = 0; + ieee->tkip_countermeasures = 0; + ieee->drop_unencrypted = 0; + ieee->privacy_invoked = 0; + ieee->ieee802_1x = 1; + ieee->raw_tx = 0; + ieee->hwsec_active = 0; + +#ifdef _RTL8192_EXT_PATCH_ + for (i=0; icryptlist[i] = (struct rtllib_crypt_data_list*) kmalloc(sizeof(struct rtllib_crypt_data_list), GFP_KERNEL); + if (NULL == ieee->cryptlist[i]) + { + printk("error kmalloc cryptlist\n"); + goto failed; + } + memset(ieee->cryptlist[i], 0, sizeof(struct rtllib_crypt_data_list)); + } + memset(ieee->swmeshcamtable,0,sizeof(SW_CAM_TABLE)*32); +#endif + memset(ieee->swcamtable,0,sizeof(SW_CAM_TABLE)*32); + rtllib_softmac_init(ieee); + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)) + ieee->pHTInfo = (RT_HIGH_THROUGHPUT*)kzalloc(sizeof(RT_HIGH_THROUGHPUT), GFP_KERNEL); +#else + ieee->pHTInfo = (RT_HIGH_THROUGHPUT*)kmalloc(sizeof(RT_HIGH_THROUGHPUT), GFP_KERNEL); + memset(ieee->pHTInfo,0,sizeof(RT_HIGH_THROUGHPUT)); +#endif + if (ieee->pHTInfo == NULL) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't alloc memory for HTInfo\n"); + return NULL; + } + HTUpdateDefaultSetting(ieee); + HTInitializeHTInfo(ieee); + TSInitialize(ieee); +#if 0 + INIT_WORK_RSL(&ieee->ht_onAssRsp, (void(*)(void*)) HTOnAssocRsp_wq, ieee); +#endif + for (i = 0; i < IEEE_IBSS_MAC_HASH_SIZE; i++) + INIT_LIST_HEAD(&ieee->ibss_mac_hash[i]); + +#ifdef _RTL8192_EXT_PATCH_ + for (i = 0; i < IEEE_MESH_MAC_HASH_SIZE; i++) + INIT_LIST_HEAD(&ieee->mesh_mac_hash[i]); +#endif + + for (i = 0; i < 17; i++) { + ieee->last_rxseq_num[i] = -1; + ieee->last_rxfrag_num[i] = -1; + ieee->last_packet_time[i] = 0; + } + + rtllib_tkip_null(); + rtllib_wep_null(); + rtllib_ccmp_null(); + + return dev; + + failed: +#ifdef _RTL8192_EXT_PATCH_ + for (i=0; icryptlist[i]==NULL){ + continue; + } + kfree(ieee->cryptlist[i]); + ieee->cryptlist[i] = NULL; + + } +#endif + + if (dev) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)) + free_netdev(dev); +#else + kfree(dev); +#endif + return NULL; +} + + +void free_rtllib(struct net_device *dev) +{ + struct rtllib_device *ieee = (struct rtllib_device *)netdev_priv_rsl(dev); + int i; +#ifdef _RTL8192_EXT_PATCH_ + int j; + struct list_head *p, *q; + struct rtllib_crypt_data *crypt = NULL; +#endif +#if 1 + if (ieee->pHTInfo != NULL) + { + kfree(ieee->pHTInfo); + ieee->pHTInfo = NULL; + } +#endif + rtllib_softmac_free(ieee); + del_timer_sync(&ieee->crypt_deinit_timer); + rtllib_crypt_deinit_entries(ieee, 1); + +#ifdef _RTL8192_EXT_PATCH_ + for (j=0;jcryptlist[j] == NULL) + continue; + for (i = 0; i < WEP_KEYS; i++) { + crypt = ieee->cryptlist[j]->crypt[i]; + + if (crypt) + { + if (crypt->ops) { + crypt->ops->deinit(crypt->priv); + printk("===>%s():j is %d,i is %d\n",__FUNCTION__,j,i); +#ifndef BUILT_IN_RTLLIB +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) + module_put(crypt->ops->owner); +#else + __MOD_DEC_USE_COUNT(crypt->ops->owner); +#endif +#endif + } + kfree(crypt); + ieee->cryptlist[j]->crypt[i] = NULL; + } + } + kfree(ieee->cryptlist[j]); + } + for (i = 0; i < WEP_KEYS; i++) { + crypt = ieee->sta_crypt[i]; + if (crypt) + { + if (crypt->ops) { + crypt->ops->deinit(crypt->priv); +#ifndef BUILT_IN_RTLLIB +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) + module_put(crypt->ops->owner); +#else + __MOD_DEC_USE_COUNT(crypt->ops->owner); +#endif +#endif + } + kfree(crypt); + } + ieee->sta_crypt[i] = NULL; + } +#else + for (i = 0; i < WEP_KEYS; i++) { + struct rtllib_crypt_data *crypt = ieee->crypt[i]; + if (crypt) { + if (crypt->ops) { + crypt->ops->deinit(crypt->priv); +#ifndef BUILT_IN_RTLLIB +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) + module_put(crypt->ops->owner); +#else + __MOD_DEC_USE_COUNT(crypt->ops->owner); +#endif +#endif + } + kfree(crypt); + ieee->crypt[i] = NULL; + } + } +#endif + + rtllib_networks_free(ieee); +#ifdef _RTL8192_EXT_PATCH_ + rtllib_mesh_networks_free(ieee); +#endif +#if 0 + for (i = 0; i < IEEE_IBSS_MAC_HASH_SIZE; i++) { + list_for_each_safe(p, q, &ieee->ibss_mac_hash[i]) { + kfree(list_entry(p, struct ieee_ibss_seq, list)); + list_del(p); + } + } + +#endif +#ifdef _RTL8192_EXT_PATCH_ + for (i = 0; i < IEEE_MESH_MAC_HASH_SIZE; i++) { + list_for_each_safe(p, q, &ieee->mesh_mac_hash[i]) { + kfree(list_entry(p, struct ieee_mesh_seq, list)); + list_del(p); + } + } +#endif +#if defined (RTL8192S_WAPI_SUPPORT) + if (ieee->WapiSupport) + { + WapiFreeAllStaInfo(ieee); + } +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)) +#ifdef CONFIG_CFG_80211 + wiphy_unregister(ieee->wdev.wiphy); + wiphy_free(ieee->wdev.wiphy); +#endif + free_netdev(dev); +#else + kfree(dev); +#endif +} + +#ifdef CONFIG_RTLLIB_DEBUG + +u32 rtllib_debug_level = 0; +static int debug = \ + RTLLIB_DL_ERR + ; +struct proc_dir_entry *rtllib_proc = NULL; + +static int show_debug_level(char *page, char **start, off_t offset, + int count, int *eof, void *data) +{ + return snprintf(page, count, "0x%08X\n", rtllib_debug_level); +} + +static int store_debug_level(struct file *file, const char *buffer, + unsigned long count, void *data) +{ + char buf[] = "0x00000000"; + unsigned long len = min((unsigned long)sizeof(buf) - 1, count); + char *p = (char *)buf; + unsigned long val; + + if (copy_from_user(buf, buffer, len)) + return count; + buf[len] = 0; + if (p[1] == 'x' || p[1] == 'X' || p[0] == 'x' || p[0] == 'X') { + p++; + if (p[0] == 'x' || p[0] == 'X') + p++; + val = simple_strtoul(p, &p, 16); + } else + val = simple_strtoul(p, &p, 10); + if (p == buf) + printk(KERN_INFO DRV_NAME + ": %s is not in hex or decimal form.\n", buf); + else + rtllib_debug_level = val; + + return strnlen(buf, count); +} + +int __init rtllib_init(void) +{ +#ifdef CONFIG_RTLLIB_DEBUG + struct proc_dir_entry *e; + + rtllib_debug_level = debug; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + rtllib_proc = create_proc_entry(DRV_NAME, S_IFDIR, proc_net); +#else + rtllib_proc = create_proc_entry(DRV_NAME, S_IFDIR, init_net.proc_net); +#endif + if (rtllib_proc == NULL) { + RTLLIB_ERROR("Unable to create " DRV_NAME + " proc directory\n"); + return -EIO; + } + e = create_proc_entry("debug_level", S_IFREG | S_IRUGO | S_IWUSR, + rtllib_proc); + if (!e) { +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + remove_proc_entry(DRV_NAME, proc_net); +#else + remove_proc_entry(DRV_NAME, init_net.proc_net); +#endif + rtllib_proc = NULL; + return -EIO; + } + e->read_proc = show_debug_level; + e->write_proc = store_debug_level; + e->data = NULL; +#endif + + return 0; +} + +void __exit rtllib_exit(void) +{ +#ifdef CONFIG_RTLLIB_DEBUG + if (rtllib_proc) { + remove_proc_entry("debug_level", rtllib_proc); +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + remove_proc_entry(DRV_NAME, proc_net); +#else + remove_proc_entry(DRV_NAME, init_net.proc_net); +#endif + rtllib_proc = NULL; + } +#endif +} + +#ifndef BUILT_IN_RTLLIB +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) +#include +module_param(debug, int, 0444); +MODULE_PARM_DESC(debug, "debug output mask"); + + +module_exit(rtllib_exit); +module_init(rtllib_init); +#endif + +EXPORT_SYMBOL_RSL(alloc_rtllib); +EXPORT_SYMBOL_RSL(free_rtllib); +EXPORT_SYMBOL_RSL(rtllib_debug_level); +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/dot11d.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/dot11d.c @@ -0,0 +1,261 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifdef ENABLE_DOT11D +#include "dot11d.h" + +typedef struct _CHANNEL_LIST +{ + u8 Channel[32]; + u8 Len; +}CHANNEL_LIST, *PCHANNEL_LIST; + +static CHANNEL_LIST ChannelPlan[] = { + {{1,2,3,4,5,6,7,8,9,10,11,36,40,44,48,52,56,60,64,149,153,157,161,165},24}, + {{1,2,3,4,5,6,7,8,9,10,11},11}, + {{1,2,3,4,5,6,7,8,9,10,11,12,13,36,40,44,48,52,56,60,64},21}, + {{1,2,3,4,5,6,7,8,9,10,11,12,13},13}, + {{1,2,3,4,5,6,7,8,9,10,11,12,13},13}, + {{1,2,3,4,5,6,7,8,9,10,11,12,13,14,36,40,44,48,52,56,60,64},22}, + {{1,2,3,4,5,6,7,8,9,10,11,12,13,14,36,40,44,48,52,56,60,64},22}, + {{1,2,3,4,5,6,7,8,9,10,11,12,13},13}, + {{1,2,3,4,5,6,7,8,9,10,11,12,13,14,36,40,44,48,52,56,60,64},22}, + {{1,2,3,4,5,6,7,8,9,10,11,12,13,14,36,40,44,48,52,56,60,64},22}, + {{1,2,3,4,5,6,7,8,9,10,11,12,13,14},14}, + {{1,2,3,4,5,6,7,8,9,10,11,12,13},13}, + {{1,2,3,4,5,6,7,8,9,10,11,12,13,36,40,44,48,52,56,60,64},21} +}; + +void Dot11d_Init(struct rtllib_device *ieee) +{ + PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(ieee); +#ifdef CONFIG_CRDA + ieee->bGlobalDomain = true; + pDot11dInfo->bEnabled = true; +#else + pDot11dInfo->bEnabled = false; +#endif + + pDot11dInfo->State = DOT11D_STATE_NONE; + pDot11dInfo->CountryIeLen = 0; + memset(pDot11dInfo->channel_map, 0, MAX_CHANNEL_NUMBER+1); + memset(pDot11dInfo->MaxTxPwrDbmList, 0xFF, MAX_CHANNEL_NUMBER+1); + RESET_CIE_WATCHDOG(ieee); + +} + +void Dot11d_Channelmap(u8 channel_plan, struct rtllib_device* ieee) +{ + int i, max_chan = 14, min_chan = 1; + + ieee->bGlobalDomain = false; + + if (ChannelPlan[channel_plan].Len != 0) { + memset(GET_DOT11D_INFO(ieee)->channel_map, 0, sizeof(GET_DOT11D_INFO(ieee)->channel_map)); + for (i = 0; i < ChannelPlan[channel_plan].Len; i++) { + if (ChannelPlan[channel_plan].Channel[i] < min_chan || + ChannelPlan[channel_plan].Channel[i] > max_chan) + break; + GET_DOT11D_INFO(ieee)->channel_map[ChannelPlan[channel_plan].Channel[i]] = 1; + } + } + + switch (channel_plan) { + case COUNTRY_CODE_GLOBAL_DOMAIN: + ieee->bGlobalDomain = true; + for (i = 12; i <= 14; i++) { + GET_DOT11D_INFO(ieee)->channel_map[i] = 2; + } + ieee->IbssStartChnl= 10; + ieee->ibss_maxjoin_chal = 11; + break; + + case COUNTRY_CODE_WORLD_WIDE_13: + for (i = 12; i <= 13; i++) { + GET_DOT11D_INFO(ieee)->channel_map[i] = 2; + } + ieee->IbssStartChnl = 10; + ieee->ibss_maxjoin_chal = 11; + break; + + default: + ieee->IbssStartChnl = 1; + ieee->ibss_maxjoin_chal = 14; + break; + } +} + + +void Dot11d_Reset(struct rtllib_device *ieee) +{ + PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(ieee); +#if 0 + if(!pDot11dInfo->bEnabled) + return; +#endif + +#ifndef CONFIG_CRDA + u32 i; + memset(pDot11dInfo->channel_map, 0, MAX_CHANNEL_NUMBER+1); + memset(pDot11dInfo->MaxTxPwrDbmList, 0xFF, MAX_CHANNEL_NUMBER+1); + for (i=1; i<=11; i++) { + (pDot11dInfo->channel_map)[i] = 1; + } + for (i=12; i<=14; i++) { + (pDot11dInfo->channel_map)[i] = 2; + } +#endif + pDot11dInfo->State = DOT11D_STATE_NONE; + pDot11dInfo->CountryIeLen = 0; + RESET_CIE_WATCHDOG(ieee); + +} + +void Dot11d_UpdateCountryIe(struct rtllib_device *dev, u8 *pTaddr, + u16 CoutryIeLen, u8* pCoutryIe) +{ + PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(dev); +#ifdef CONFIG_CRDA + +#else + u8 i, j, NumTriples, MaxChnlNum; + PCHNL_TXPOWER_TRIPLE pTriple; + + memset(pDot11dInfo->channel_map, 0, MAX_CHANNEL_NUMBER+1); + memset(pDot11dInfo->MaxTxPwrDbmList, 0xFF, MAX_CHANNEL_NUMBER+1); + MaxChnlNum = 0; + NumTriples = (CoutryIeLen - 3) / 3; + pTriple = (PCHNL_TXPOWER_TRIPLE)(pCoutryIe + 3); + for(i = 0; i < NumTriples; i++) + { + if(MaxChnlNum >= pTriple->FirstChnl) + { + printk("Dot11d_UpdateCountryIe(): Invalid country IE, skip it........1\n"); + return; + } + if(MAX_CHANNEL_NUMBER < (pTriple->FirstChnl + pTriple->NumChnls)) + { + printk("Dot11d_UpdateCountryIe(): Invalid country IE, skip it........2\n"); + return; + } + + for(j = 0 ; j < pTriple->NumChnls; j++) + { + pDot11dInfo->channel_map[pTriple->FirstChnl + j] = 1; + pDot11dInfo->MaxTxPwrDbmList[pTriple->FirstChnl + j] = pTriple->MaxTxPowerInDbm; + MaxChnlNum = pTriple->FirstChnl + j; + } + + pTriple = (PCHNL_TXPOWER_TRIPLE)((u8*)pTriple + 3); + } +#if 0 + printk("Channel List:"); + for(i=1; i<= MAX_CHANNEL_NUMBER; i++) + if(pDot11dInfo->channel_map[i] > 0) + printk(" %d", i); + printk("\n"); +#endif +#endif + + UPDATE_CIE_SRC(dev, pTaddr); + + pDot11dInfo->CountryIeLen = CoutryIeLen; + memcpy(pDot11dInfo->CountryIeBuf, pCoutryIe,CoutryIeLen); + pDot11dInfo->State = DOT11D_STATE_LEARNED; + +#ifdef CONFIG_CRDA + queue_delayed_work_rsl(dev->wq, &dev->softmac_hint11d_wq, 0); +#endif +} + +u8 DOT11D_GetMaxTxPwrInDbm( struct rtllib_device *dev, u8 Channel) +{ + PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(dev); + u8 MaxTxPwrInDbm = 255; + + if(MAX_CHANNEL_NUMBER < Channel) + { + printk("DOT11D_GetMaxTxPwrInDbm(): Invalid Channel\n"); + return MaxTxPwrInDbm; + } + if(pDot11dInfo->channel_map[Channel]) + { + MaxTxPwrInDbm = pDot11dInfo->MaxTxPwrDbmList[Channel]; + } + + return MaxTxPwrInDbm; +} + +void DOT11D_ScanComplete( struct rtllib_device * dev) +{ + PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(dev); + + switch(pDot11dInfo->State) + { + case DOT11D_STATE_LEARNED: + pDot11dInfo->State = DOT11D_STATE_DONE; + break; + + case DOT11D_STATE_DONE: + { + Dot11d_Reset(dev); + } + break; + case DOT11D_STATE_NONE: + break; + } +} + +int ToLegalChannel( struct rtllib_device * dev, u8 channel) +{ + PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(dev); + u8 default_chn = 0; + u32 i = 0; + + for (i=1; i<= MAX_CHANNEL_NUMBER; i++) + { + if(pDot11dInfo->channel_map[i] > 0) + { + default_chn = i; + break; + } + } + + if(MAX_CHANNEL_NUMBER < channel) + { + printk("%s(): Invalid Channel\n", __FUNCTION__); + return default_chn; + } + + if(pDot11dInfo->channel_map[channel] > 0) + return channel; + + return default_chn; +} + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(Dot11d_Init); +EXPORT_SYMBOL_RSL(Dot11d_Channelmap); +EXPORT_SYMBOL_RSL(Dot11d_Reset); +EXPORT_SYMBOL_RSL(Dot11d_UpdateCountryIe); +EXPORT_SYMBOL_RSL(DOT11D_GetMaxTxPwrInDbm); +EXPORT_SYMBOL_RSL(DOT11D_ScanComplete); +EXPORT_SYMBOL_RSL(ToLegalChannel); +#endif + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib_crypt_tkip.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib_crypt_tkip.c @@ -0,0 +1,1047 @@ +/* + * Host AP crypt: host-based TKIP encryption implementation for Host AP driver + * + * Copyright (c) 2003-2004, Jouni Malinen + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See README and COPYING for + * more details. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef _RTL8192_EXT_PATCH_ +#include +#endif +#include "rtllib.h" +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,20)) +#endif + + +#if defined(BUILT_IN_CRYPTO) || (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) +#include "rtl_crypto.h" +#else +#include +#endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + #include +#else + #include +#endif + +#include + +#ifndef BUILT_IN_RTLLIB +MODULE_AUTHOR("Jouni Malinen"); +MODULE_DESCRIPTION("Host AP crypt: TKIP"); +MODULE_LICENSE("GPL"); +#endif + + +struct rtllib_tkip_data { +#define TKIP_KEY_LEN 32 + u8 key[TKIP_KEY_LEN]; + int key_set; + + u32 tx_iv32; + u16 tx_iv16; + u16 tx_ttak[5]; + int tx_phase1_done; + + u32 rx_iv32; + u16 rx_iv16; + bool initialized; + u16 rx_ttak[5]; + int rx_phase1_done; + u32 rx_iv32_new; + u16 rx_iv16_new; + + u32 dot11RSNAStatsTKIPReplays; + u32 dot11RSNAStatsTKIPICVErrors; + u32 dot11RSNAStatsTKIPLocalMICFailures; + + int key_idx; +#if ( !defined(BUILT_IN_CRYPTO) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) || (OPENSUSE_SLED)) ) + struct crypto_blkcipher *rx_tfm_arc4; + struct crypto_hash *rx_tfm_michael; + struct crypto_blkcipher *tx_tfm_arc4; + struct crypto_hash *tx_tfm_michael; +#else + struct crypto_tfm *tx_tfm_arc4; + struct crypto_tfm *tx_tfm_michael; + struct crypto_tfm *rx_tfm_arc4; + struct crypto_tfm *rx_tfm_michael; +#endif + /* scratch buffers for virt_to_page() (crypto API) */ + u8 rx_hdr[16], tx_hdr[16]; +}; + +static void * rtllib_tkip_init(int key_idx) +{ + struct rtllib_tkip_data *priv; + + priv = kmalloc(sizeof(*priv), GFP_ATOMIC); + if (priv == NULL) + goto fail; + memset(priv, 0, sizeof(*priv)); + priv->key_idx = key_idx; +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + priv->tx_tfm_arc4 = crypto_alloc_tfm("arc4", 0); + if (priv->tx_tfm_arc4 == NULL) { + printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate " + "crypto API arc4\n"); + goto fail; + } + + priv->tx_tfm_michael = crypto_alloc_tfm("michael_mic", 0); + if (priv->tx_tfm_michael == NULL) { + printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate " + "crypto API michael_mic\n"); + goto fail; + } + + priv->rx_tfm_arc4 = crypto_alloc_tfm("arc4", 0); + if (priv->rx_tfm_arc4 == NULL) { + printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate " + "crypto API arc4\n"); + goto fail; + } + + priv->rx_tfm_michael = crypto_alloc_tfm("michael_mic", 0); + if (priv->rx_tfm_michael == NULL) { + printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate " + "crypto API michael_mic\n"); + goto fail; + } +#else + priv->tx_tfm_arc4 = crypto_alloc_blkcipher("ecb(arc4)", 0, + CRYPTO_ALG_ASYNC); + if (IS_ERR(priv->tx_tfm_arc4)) { + printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate " + "crypto API arc4\n"); + priv->tx_tfm_arc4 = NULL; + goto fail; + } + + priv->tx_tfm_michael = crypto_alloc_hash("michael_mic", 0, + CRYPTO_ALG_ASYNC); + if (IS_ERR(priv->tx_tfm_michael)) { + printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate " + "crypto API michael_mic\n"); + priv->tx_tfm_michael = NULL; + goto fail; + } + + priv->rx_tfm_arc4 = crypto_alloc_blkcipher("ecb(arc4)", 0, + CRYPTO_ALG_ASYNC); + if (IS_ERR(priv->rx_tfm_arc4)) { + printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate " + "crypto API arc4\n"); + priv->rx_tfm_arc4 = NULL; + goto fail; + } + + priv->rx_tfm_michael = crypto_alloc_hash("michael_mic", 0, + CRYPTO_ALG_ASYNC); + if (IS_ERR(priv->rx_tfm_michael)) { + printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate " + "crypto API michael_mic\n"); + priv->rx_tfm_michael = NULL; + goto fail; + } +#endif + return priv; + +fail: + if (priv) { +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + if (priv->tx_tfm_michael) + crypto_free_tfm(priv->tx_tfm_michael); + if (priv->tx_tfm_arc4) + crypto_free_tfm(priv->tx_tfm_arc4); + if (priv->rx_tfm_michael) + crypto_free_tfm(priv->rx_tfm_michael); + if (priv->rx_tfm_arc4) + crypto_free_tfm(priv->rx_tfm_arc4); + +#else + if (priv->tx_tfm_michael) + crypto_free_hash(priv->tx_tfm_michael); + if (priv->tx_tfm_arc4) + crypto_free_blkcipher(priv->tx_tfm_arc4); + if (priv->rx_tfm_michael) + crypto_free_hash(priv->rx_tfm_michael); + if (priv->rx_tfm_arc4) + crypto_free_blkcipher(priv->rx_tfm_arc4); +#endif + kfree(priv); + } + + return NULL; +} + + +static void rtllib_tkip_deinit(void *priv) +{ + struct rtllib_tkip_data *_priv = priv; +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + if (_priv->tx_tfm_michael) + crypto_free_tfm(_priv->tx_tfm_michael); + if (_priv->tx_tfm_arc4) + crypto_free_tfm(_priv->tx_tfm_arc4); + if (_priv->rx_tfm_michael) + crypto_free_tfm(_priv->rx_tfm_michael); + if (_priv->rx_tfm_arc4) + crypto_free_tfm(_priv->rx_tfm_arc4); +#else + if (_priv) { + if (_priv->tx_tfm_michael) + crypto_free_hash(_priv->tx_tfm_michael); + if (_priv->tx_tfm_arc4) + crypto_free_blkcipher(_priv->tx_tfm_arc4); + if (_priv->rx_tfm_michael) + crypto_free_hash(_priv->rx_tfm_michael); + if (_priv->rx_tfm_arc4) + crypto_free_blkcipher(_priv->rx_tfm_arc4); + } +#endif + kfree(priv); +} + + +static inline u16 RotR1(u16 val) +{ + return (val >> 1) | (val << 15); +} + + +static inline u8 Lo8(u16 val) +{ + return val & 0xff; +} + + +static inline u8 Hi8(u16 val) +{ + return val >> 8; +} + + +static inline u16 Lo16(u32 val) +{ + return val & 0xffff; +} + + +static inline u16 Hi16(u32 val) +{ + return val >> 16; +} + + +static inline u16 Mk16(u8 hi, u8 lo) +{ + return lo | (((u16) hi) << 8); +} + + +static inline u16 Mk16_le(u16 *v) +{ + return le16_to_cpu(*v); +} + + +static const u16 Sbox[256] = +{ + 0xC6A5, 0xF884, 0xEE99, 0xF68D, 0xFF0D, 0xD6BD, 0xDEB1, 0x9154, + 0x6050, 0x0203, 0xCEA9, 0x567D, 0xE719, 0xB562, 0x4DE6, 0xEC9A, + 0x8F45, 0x1F9D, 0x8940, 0xFA87, 0xEF15, 0xB2EB, 0x8EC9, 0xFB0B, + 0x41EC, 0xB367, 0x5FFD, 0x45EA, 0x23BF, 0x53F7, 0xE496, 0x9B5B, + 0x75C2, 0xE11C, 0x3DAE, 0x4C6A, 0x6C5A, 0x7E41, 0xF502, 0x834F, + 0x685C, 0x51F4, 0xD134, 0xF908, 0xE293, 0xAB73, 0x6253, 0x2A3F, + 0x080C, 0x9552, 0x4665, 0x9D5E, 0x3028, 0x37A1, 0x0A0F, 0x2FB5, + 0x0E09, 0x2436, 0x1B9B, 0xDF3D, 0xCD26, 0x4E69, 0x7FCD, 0xEA9F, + 0x121B, 0x1D9E, 0x5874, 0x342E, 0x362D, 0xDCB2, 0xB4EE, 0x5BFB, + 0xA4F6, 0x764D, 0xB761, 0x7DCE, 0x527B, 0xDD3E, 0x5E71, 0x1397, + 0xA6F5, 0xB968, 0x0000, 0xC12C, 0x4060, 0xE31F, 0x79C8, 0xB6ED, + 0xD4BE, 0x8D46, 0x67D9, 0x724B, 0x94DE, 0x98D4, 0xB0E8, 0x854A, + 0xBB6B, 0xC52A, 0x4FE5, 0xED16, 0x86C5, 0x9AD7, 0x6655, 0x1194, + 0x8ACF, 0xE910, 0x0406, 0xFE81, 0xA0F0, 0x7844, 0x25BA, 0x4BE3, + 0xA2F3, 0x5DFE, 0x80C0, 0x058A, 0x3FAD, 0x21BC, 0x7048, 0xF104, + 0x63DF, 0x77C1, 0xAF75, 0x4263, 0x2030, 0xE51A, 0xFD0E, 0xBF6D, + 0x814C, 0x1814, 0x2635, 0xC32F, 0xBEE1, 0x35A2, 0x88CC, 0x2E39, + 0x9357, 0x55F2, 0xFC82, 0x7A47, 0xC8AC, 0xBAE7, 0x322B, 0xE695, + 0xC0A0, 0x1998, 0x9ED1, 0xA37F, 0x4466, 0x547E, 0x3BAB, 0x0B83, + 0x8CCA, 0xC729, 0x6BD3, 0x283C, 0xA779, 0xBCE2, 0x161D, 0xAD76, + 0xDB3B, 0x6456, 0x744E, 0x141E, 0x92DB, 0x0C0A, 0x486C, 0xB8E4, + 0x9F5D, 0xBD6E, 0x43EF, 0xC4A6, 0x39A8, 0x31A4, 0xD337, 0xF28B, + 0xD532, 0x8B43, 0x6E59, 0xDAB7, 0x018C, 0xB164, 0x9CD2, 0x49E0, + 0xD8B4, 0xACFA, 0xF307, 0xCF25, 0xCAAF, 0xF48E, 0x47E9, 0x1018, + 0x6FD5, 0xF088, 0x4A6F, 0x5C72, 0x3824, 0x57F1, 0x73C7, 0x9751, + 0xCB23, 0xA17C, 0xE89C, 0x3E21, 0x96DD, 0x61DC, 0x0D86, 0x0F85, + 0xE090, 0x7C42, 0x71C4, 0xCCAA, 0x90D8, 0x0605, 0xF701, 0x1C12, + 0xC2A3, 0x6A5F, 0xAEF9, 0x69D0, 0x1791, 0x9958, 0x3A27, 0x27B9, + 0xD938, 0xEB13, 0x2BB3, 0x2233, 0xD2BB, 0xA970, 0x0789, 0x33A7, + 0x2DB6, 0x3C22, 0x1592, 0xC920, 0x8749, 0xAAFF, 0x5078, 0xA57A, + 0x038F, 0x59F8, 0x0980, 0x1A17, 0x65DA, 0xD731, 0x84C6, 0xD0B8, + 0x82C3, 0x29B0, 0x5A77, 0x1E11, 0x7BCB, 0xA8FC, 0x6DD6, 0x2C3A, +}; + + +static inline u16 _S_(u16 v) +{ + u16 t = Sbox[Hi8(v)]; + return Sbox[Lo8(v)] ^ ((t << 8) | (t >> 8)); +} + + +#define PHASE1_LOOP_COUNT 8 + + +static void tkip_mixing_phase1(u16 *TTAK, const u8 *TK, const u8 *TA, u32 IV32) +{ + int i, j; + + /* Initialize the 80-bit TTAK from TSC (IV32) and TA[0..5] */ + TTAK[0] = Lo16(IV32); + TTAK[1] = Hi16(IV32); + TTAK[2] = Mk16(TA[1], TA[0]); + TTAK[3] = Mk16(TA[3], TA[2]); + TTAK[4] = Mk16(TA[5], TA[4]); + + for (i = 0; i < PHASE1_LOOP_COUNT; i++) { + j = 2 * (i & 1); + TTAK[0] += _S_(TTAK[4] ^ Mk16(TK[1 + j], TK[0 + j])); + TTAK[1] += _S_(TTAK[0] ^ Mk16(TK[5 + j], TK[4 + j])); + TTAK[2] += _S_(TTAK[1] ^ Mk16(TK[9 + j], TK[8 + j])); + TTAK[3] += _S_(TTAK[2] ^ Mk16(TK[13 + j], TK[12 + j])); + TTAK[4] += _S_(TTAK[3] ^ Mk16(TK[1 + j], TK[0 + j])) + i; + } +} + + +static void tkip_mixing_phase2(u8 *WEPSeed, const u8 *TK, const u16 *TTAK, + u16 IV16) +{ + /* Make temporary area overlap WEP seed so that the final copy can be + * avoided on little endian hosts. */ + u16 *PPK = (u16 *) &WEPSeed[4]; + + /* Step 1 - make copy of TTAK and bring in TSC */ + PPK[0] = TTAK[0]; + PPK[1] = TTAK[1]; + PPK[2] = TTAK[2]; + PPK[3] = TTAK[3]; + PPK[4] = TTAK[4]; + PPK[5] = TTAK[4] + IV16; + + /* Step 2 - 96-bit bijective mixing using S-box */ + PPK[0] += _S_(PPK[5] ^ Mk16_le((u16 *) &TK[0])); + PPK[1] += _S_(PPK[0] ^ Mk16_le((u16 *) &TK[2])); + PPK[2] += _S_(PPK[1] ^ Mk16_le((u16 *) &TK[4])); + PPK[3] += _S_(PPK[2] ^ Mk16_le((u16 *) &TK[6])); + PPK[4] += _S_(PPK[3] ^ Mk16_le((u16 *) &TK[8])); + PPK[5] += _S_(PPK[4] ^ Mk16_le((u16 *) &TK[10])); + + PPK[0] += RotR1(PPK[5] ^ Mk16_le((u16 *) &TK[12])); + PPK[1] += RotR1(PPK[0] ^ Mk16_le((u16 *) &TK[14])); + PPK[2] += RotR1(PPK[1]); + PPK[3] += RotR1(PPK[2]); + PPK[4] += RotR1(PPK[3]); + PPK[5] += RotR1(PPK[4]); + + /* Step 3 - bring in last of TK bits, assign 24-bit WEP IV value + * WEPSeed[0..2] is transmitted as WEP IV */ + WEPSeed[0] = Hi8(IV16); + WEPSeed[1] = (Hi8(IV16) | 0x20) & 0x7F; + WEPSeed[2] = Lo8(IV16); + WEPSeed[3] = Lo8((PPK[5] ^ Mk16_le((u16 *) &TK[0])) >> 1); + +#ifdef __BIG_ENDIAN + { + int i; + for (i = 0; i < 6; i++) + PPK[i] = (PPK[i] << 8) | (PPK[i] >> 8); + } +#endif +} + + +static int rtllib_tkip_encrypt(struct sk_buff *skb, int hdr_len, void *priv) +{ + struct rtllib_tkip_data *tkey = priv; + int len; + u8 *pos; + struct rtllib_hdr_4addr *hdr; + cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + + #if ( !defined(BUILT_IN_CRYPTO) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) || (OPENSUSE_SLED)) ) + struct blkcipher_desc desc = {.tfm = tkey->tx_tfm_arc4}; + int ret = 0; + #endif + u8 rc4key[16], *icv; + u32 crc; +#ifdef _RTL8192_EXT_PATCH_ + u8 broadcastaddr[6] = {0xff,0xff,0xff,0xff,0xff,0xff}; + u8 is_broadcast_data = 0; +#endif + struct scatterlist sg; + + if (skb_headroom(skb) < 8 || skb_tailroom(skb) < 4 || + skb->len < hdr_len) + return -1; + + hdr = (struct rtllib_hdr_4addr *) skb->data; +#ifdef _RTL8192_EXT_PATCH_ + if(tcb_desc->badhoc == 0){ + if(memcmp(hdr->addr1,broadcastaddr,6) == 0){ + is_broadcast_data = 1; + tcb_desc->bHwSec = 0; + } + if(is_multicast_ether_addr(hdr->addr1)){ + tcb_desc->bHwSec = 0; + } + } +#endif +#if 0 +printk("@@ tkey\n"); +printk("%x|", ((u32*)tkey->key)[0]); +printk("%x|", ((u32*)tkey->key)[1]); +printk("%x|", ((u32*)tkey->key)[2]); +printk("%x|", ((u32*)tkey->key)[3]); +printk("%x|", ((u32*)tkey->key)[4]); +printk("%x|", ((u32*)tkey->key)[5]); +printk("%x|", ((u32*)tkey->key)[6]); +printk("%x\n", ((u32*)tkey->key)[7]); +#endif + + if (!tcb_desc->bHwSec) + { + if (!tkey->tx_phase1_done) { + tkip_mixing_phase1(tkey->tx_ttak, tkey->key, hdr->addr2, + tkey->tx_iv32); + tkey->tx_phase1_done = 1; + } + tkip_mixing_phase2(rc4key, tkey->key, tkey->tx_ttak, tkey->tx_iv16); + } + else + tkey->tx_phase1_done = 1; + + + len = skb->len - hdr_len; + pos = skb_push(skb, 8); + memmove(pos, pos + 8, hdr_len); + pos += hdr_len; + + if (tcb_desc->bHwSec) + { + *pos++ = Hi8(tkey->tx_iv16); + *pos++ = (Hi8(tkey->tx_iv16) | 0x20) & 0x7F; + *pos++ = Lo8(tkey->tx_iv16); + } + else + { + *pos++ = rc4key[0]; + *pos++ = rc4key[1]; + *pos++ = rc4key[2]; + } + + *pos++ = (tkey->key_idx << 6) | (1 << 5) /* Ext IV included */; + *pos++ = tkey->tx_iv32 & 0xff; + *pos++ = (tkey->tx_iv32 >> 8) & 0xff; + *pos++ = (tkey->tx_iv32 >> 16) & 0xff; + *pos++ = (tkey->tx_iv32 >> 24) & 0xff; + + if (!tcb_desc->bHwSec) + { + icv = skb_put(skb, 4); +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) + crc = ~crc32_le(~0, pos, len); +#else + crc = ~ether_crc_le(len, pos); +#endif + icv[0] = crc; + icv[1] = crc >> 8; + icv[2] = crc >> 16; + icv[3] = crc >> 24; + +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + sg.page = virt_to_page(pos); + sg.offset = offset_in_page(pos); + sg.length = len + 4; +#else + sg_init_one(&sg, pos, len+4); +#endif + + +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + crypto_cipher_setkey(tkey->tx_tfm_arc4, rc4key, 16); + crypto_cipher_encrypt(tkey->tx_tfm_arc4, &sg, &sg, len + 4); +#else + crypto_blkcipher_setkey(tkey->tx_tfm_arc4, rc4key, 16); + ret= crypto_blkcipher_encrypt(&desc, &sg, &sg, len + 4); +#endif + + } + + tkey->tx_iv16++; + if (tkey->tx_iv16 == 0) { + tkey->tx_phase1_done = 0; + tkey->tx_iv32++; + } + + if (!tcb_desc->bHwSec) + #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + return 0; + #else + return ret; + #endif + else + return 0; + + +} + +static int rtllib_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv) +{ + struct rtllib_tkip_data *tkey = priv; + u8 keyidx, *pos; + u32 iv32; + u16 iv16; + struct rtllib_hdr_4addr *hdr; + cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); + #if ( !defined(BUILT_IN_CRYPTO) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) || (OPENSUSE_SLED)) ) + struct blkcipher_desc desc = {.tfm = tkey->rx_tfm_arc4}; + #endif + u8 rc4key[16]; + u8 icv[4]; + u32 crc; + struct scatterlist sg; + int plen; + if (skb->len < hdr_len + 8 + 4) + return -1; + + hdr = (struct rtllib_hdr_4addr *) skb->data; + pos = skb->data + hdr_len; + keyidx = pos[3]; + if (!(keyidx & (1 << 5))) { + if (net_ratelimit()) { + printk(KERN_DEBUG "TKIP: received packet without ExtIV" + " flag from " MAC_FMT "\n", MAC_ARG(hdr->addr2)); + } + return -2; + } + keyidx >>= 6; + if (tkey->key_idx != keyidx) { + printk(KERN_DEBUG "TKIP: RX tkey->key_idx=%d frame " + "keyidx=%d priv=%p\n", tkey->key_idx, keyidx, priv); + return -6; + } + if (!tkey->key_set) { + if (net_ratelimit()) { + printk(KERN_DEBUG "TKIP: received packet from " MAC_FMT + " with keyid=%d that does not have a configured" + " key\n", MAC_ARG(hdr->addr2), keyidx); + } + return -3; + } + iv16 = (pos[0] << 8) | pos[2]; + iv32 = pos[4] | (pos[5] << 8) | (pos[6] << 16) | (pos[7] << 24); + pos += 8; + + if (!tcb_desc->bHwSec || (skb->cb[0] == 1)) + { + if ((iv32 < tkey->rx_iv32 || + (iv32 == tkey->rx_iv32 && iv16 <= tkey->rx_iv16))&&tkey->initialized) { + if (net_ratelimit()) { + printk(KERN_DEBUG "TKIP: replay detected: STA=" MAC_FMT + " previous TSC %08x%04x received TSC " + "%08x%04x\n", MAC_ARG(hdr->addr2), + tkey->rx_iv32, tkey->rx_iv16, iv32, iv16); + } + tkey->dot11RSNAStatsTKIPReplays++; + return -4; + } + tkey->initialized = true; + + if (iv32 != tkey->rx_iv32 || !tkey->rx_phase1_done) { + tkip_mixing_phase1(tkey->rx_ttak, tkey->key, hdr->addr2, iv32); + tkey->rx_phase1_done = 1; + } + tkip_mixing_phase2(rc4key, tkey->key, tkey->rx_ttak, iv16); + + plen = skb->len - hdr_len - 12; + +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + sg.page = virt_to_page(pos); + sg.offset = offset_in_page(pos); + sg.length = plen + 4; +#else + sg_init_one(&sg, pos, plen+4); +#endif + +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + crypto_cipher_setkey(tkey->rx_tfm_arc4, rc4key, 16); + crypto_cipher_decrypt(tkey->rx_tfm_arc4, &sg, &sg, plen + 4); +#else + crypto_blkcipher_setkey(tkey->rx_tfm_arc4, rc4key, 16); + if (crypto_blkcipher_decrypt(&desc, &sg, &sg, plen + 4)) { + if (net_ratelimit()) { + printk(KERN_DEBUG ": TKIP: failed to decrypt " + "received packet from " MAC_FMT "\n", + MAC_ARG(hdr->addr2)); + } + return -7; + } +#endif + + #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) + crc = ~crc32_le(~0, pos, plen); + #else + crc = ~ether_crc_le(plen, pos); + #endif + icv[0] = crc; + icv[1] = crc >> 8; + icv[2] = crc >> 16; + icv[3] = crc >> 24; + + if (memcmp(icv, pos + plen, 4) != 0) { + if (iv32 != tkey->rx_iv32) { + /* Previously cached Phase1 result was already lost, so + * it needs to be recalculated for the next packet. */ + tkey->rx_phase1_done = 0; + } + if (net_ratelimit()) { + printk(KERN_DEBUG "TKIP: ICV error detected: STA=" + MAC_FMT "\n", MAC_ARG(hdr->addr2)); + } + tkey->dot11RSNAStatsTKIPICVErrors++; + return -5; + } + + } + + /* Update real counters only after Michael MIC verification has + * completed */ + tkey->rx_iv32_new = iv32; + tkey->rx_iv16_new = iv16; + + /* Remove IV and ICV */ + memmove(skb->data + 8, skb->data, hdr_len); + skb_pull(skb, 8); + skb_trim(skb, skb->len - 4); + +#ifdef JOHN_DUMP +if( ((u16*)skb->data)[0] & 0x4000){ + printk("@@ rx decrypted skb->data"); + int i; + for(i=0;ilen;i++){ + if( (i%24)==0 ) printk("\n"); + printk("%2x ", ((u8*)skb->data)[i]); + } + printk("\n"); +} +#endif /*JOHN_DUMP*/ + return keyidx; +} + + +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) +static int michael_mic(struct crypto_tfm * tfm_michael, u8 *key, u8 *hdr, + u8 *data, size_t data_len, u8 *mic) +{ + struct scatterlist sg[2]; +#if ( !defined(BUILT_IN_CRYPTO) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) ) + struct hash_desc desc; + int ret = 0; +#endif + + if (tfm_michael == NULL){ + printk(KERN_WARNING "michael_mic: tfm_michael == NULL\n"); + return -1; + } +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) + sg[0].page = virt_to_page(hdr); + sg[0].offset = offset_in_page(hdr); + sg[0].length = 16; + + sg[1].page = virt_to_page(data); + sg[1].offset = offset_in_page(data); + sg[1].length = data_len; +#else + sg_init_table(sg, 2); + sg_set_buf(&sg[0], hdr, 16); + sg_set_buf(&sg[1], data, data_len); +#endif + +#if ( defined(BUILT_IN_CRYPTO) || LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) ) + crypto_digest_init(tfm_michael); + crypto_digest_setkey(tfm_michael, key, 8); + crypto_digest_update(tfm_michael, sg, 2); + crypto_digest_final(tfm_michael, mic); + return 0; +#else +if (crypto_hash_setkey(tkey->tfm_michael, key, 8)) + return -1; + + desc.tfm = tkey->tfm_michael; + desc.flags = 0; + ret = crypto_hash_digest(&desc, sg, data_len + 16, mic); + return ret; +#endif +} +#else +static int michael_mic(struct crypto_hash *tfm_michael, u8 * key, u8 * hdr, + u8 * data, size_t data_len, u8 * mic) +{ + struct hash_desc desc; + struct scatterlist sg[2]; + + if (tfm_michael == NULL) { + printk(KERN_WARNING "michael_mic: tfm_michael == NULL\n"); + return -1; + } +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) + sg[0].page = virt_to_page(hdr); + sg[0].offset = offset_in_page(hdr); + sg[0].length = 16; + + sg[1].page = virt_to_page(data); + sg[1].offset = offset_in_page(data); + sg[1].length = data_len; +#else + sg_init_table(sg, 2); + sg_set_buf(&sg[0], hdr, 16); + sg_set_buf(&sg[1], data, data_len); +#endif + + if (crypto_hash_setkey(tfm_michael, key, 8)) + return -1; + + desc.tfm = tfm_michael; + desc.flags = 0; + return crypto_hash_digest(&desc, sg, data_len + 16, mic); +} +#endif + + + +static void michael_mic_hdr(struct sk_buff *skb, u8 *hdr) +{ + struct rtllib_hdr_4addr *hdr11; + + hdr11 = (struct rtllib_hdr_4addr *) skb->data; + switch (le16_to_cpu(hdr11->frame_ctl) & + (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) { + case RTLLIB_FCTL_TODS: + memcpy(hdr, hdr11->addr3, ETH_ALEN); /* DA */ + memcpy(hdr + ETH_ALEN, hdr11->addr2, ETH_ALEN); /* SA */ + break; + case RTLLIB_FCTL_FROMDS: + memcpy(hdr, hdr11->addr1, ETH_ALEN); /* DA */ + memcpy(hdr + ETH_ALEN, hdr11->addr3, ETH_ALEN); /* SA */ + break; + case RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS: + memcpy(hdr, hdr11->addr3, ETH_ALEN); /* DA */ + memcpy(hdr + ETH_ALEN, hdr11->addr4, ETH_ALEN); /* SA */ + break; + case 0: + memcpy(hdr, hdr11->addr1, ETH_ALEN); /* DA */ + memcpy(hdr + ETH_ALEN, hdr11->addr2, ETH_ALEN); /* SA */ + break; + } + + hdr[12] = 0; /* priority */ + + hdr[13] = hdr[14] = hdr[15] = 0; /* reserved */ +} + + +static int rtllib_michael_mic_add(struct sk_buff *skb, int hdr_len, void *priv) +{ + struct rtllib_tkip_data *tkey = priv; + u8 *pos; + struct rtllib_hdr_4addr *hdr; + + hdr = (struct rtllib_hdr_4addr *) skb->data; + + if (skb_tailroom(skb) < 8 || skb->len < hdr_len) { + printk(KERN_DEBUG "Invalid packet for Michael MIC add " + "(tailroom=%d hdr_len=%d skb->len=%d)\n", + skb_tailroom(skb), hdr_len, skb->len); + return -1; + } + + michael_mic_hdr(skb, tkey->tx_hdr); + + if(RTLLIB_QOS_HAS_SEQ(le16_to_cpu(hdr->frame_ctl))) { + tkey->tx_hdr[12] = *(skb->data + hdr_len - 2) & 0x07; + } + pos = skb_put(skb, 8); +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + if (michael_mic(tkey->tx_tfm_michael, &tkey->key[16], tkey->tx_hdr, + skb->data + hdr_len, skb->len - 8 - hdr_len, pos)) +#else + if (michael_mic(tkey->tx_tfm_michael, &tkey->key[16], tkey->tx_hdr, + skb->data + hdr_len, skb->len - 8 - hdr_len, pos)) +#endif + return -1; + + return 0; +} + + +#if WIRELESS_EXT >= 18 +static void rtllib_michael_mic_failure(struct net_device *dev, + struct rtllib_hdr_4addr *hdr, + int keyidx) +{ + union iwreq_data wrqu; + struct iw_michaelmicfailure ev; + + /* TODO: needed parameters: count, keyid, key type, TSC */ + memset(&ev, 0, sizeof(ev)); + ev.flags = keyidx & IW_MICFAILURE_KEY_ID; + if (hdr->addr1[0] & 0x01) + ev.flags |= IW_MICFAILURE_GROUP; + else + ev.flags |= IW_MICFAILURE_PAIRWISE; + ev.src_addr.sa_family = ARPHRD_ETHER; + memcpy(ev.src_addr.sa_data, hdr->addr2, ETH_ALEN); + memset(&wrqu, 0, sizeof(wrqu)); + wrqu.data.length = sizeof(ev); + wireless_send_event(dev, IWEVMICHAELMICFAILURE, &wrqu, (char *) &ev); +} +#elif WIRELESS_EXT >= 15 +static void rtllib_michael_mic_failure(struct net_device *dev, + struct rtllib_hdr_4addr *hdr, + int keyidx) +{ + union iwreq_data wrqu; + char buf[128]; + + /* TODO: needed parameters: count, keyid, key type, TSC */ + sprintf(buf, "MLME-MICHAELMICFAILURE.indication(keyid=%d %scast addr=" + MAC_FMT ")", keyidx, hdr->addr1[0] & 0x01 ? "broad" : "uni", + MAC_ARG(hdr->addr2)); + memset(&wrqu, 0, sizeof(wrqu)); + wrqu.data.length = strlen(buf); + wireless_send_event(dev, IWEVCUSTOM, &wrqu, buf); +} +#else /* WIRELESS_EXT >= 15 */ +static inline void rtllib_michael_mic_failure(struct net_device *dev, + struct rtllib_hdr_4addr *hdr, + int keyidx) +{ +} +#endif /* WIRELESS_EXT >= 15 */ + +static int rtllib_michael_mic_verify(struct sk_buff *skb, int keyidx, + int hdr_len, void *priv, struct rtllib_device* ieee) +{ + struct rtllib_tkip_data *tkey = priv; + u8 mic[8]; + struct rtllib_hdr_4addr *hdr; + + hdr = (struct rtllib_hdr_4addr *) skb->data; + + if (!tkey->key_set) + return -1; + + michael_mic_hdr(skb, tkey->rx_hdr); + if(RTLLIB_QOS_HAS_SEQ(le16_to_cpu(hdr->frame_ctl))) { + tkey->rx_hdr[12] = *(skb->data + hdr_len - 2) & 0x07; + } + +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + if (michael_mic(tkey->rx_tfm_michael, &tkey->key[24], tkey->rx_hdr, + skb->data + hdr_len, skb->len - 8 - hdr_len, mic)) +#else + if (michael_mic(tkey->rx_tfm_michael, &tkey->key[24], tkey->rx_hdr, + skb->data + hdr_len, skb->len - 8 - hdr_len, mic)) +#endif + return -1; + + if ((memcmp(mic, skb->data + skb->len - 8, 8) != 0)||(ieee->force_mic_error)) { + struct rtllib_hdr_4addr *hdr; + hdr = (struct rtllib_hdr_4addr *) skb->data; + printk(KERN_DEBUG "%s: Michael MIC verification failed for " + "MSDU from " MAC_FMT " keyidx=%d\n", + skb->dev ? skb->dev->name : "N/A", MAC_ARG(hdr->addr2), + keyidx); + printk("%d, force_mic_error = %d\n", (memcmp(mic, skb->data + skb->len - 8, 8) != 0),\ + ieee->force_mic_error); + if (skb->dev) { + printk("skb->dev != NULL\n"); + rtllib_michael_mic_failure(skb->dev, hdr, keyidx); + } + tkey->dot11RSNAStatsTKIPLocalMICFailures++; + ieee->force_mic_error = false; + return -1; + } + + /* Update TSC counters for RX now that the packet verification has + * completed. */ + tkey->rx_iv32 = tkey->rx_iv32_new; + tkey->rx_iv16 = tkey->rx_iv16_new; + + skb_trim(skb, skb->len - 8); + + return 0; +} + + +static int rtllib_tkip_set_key(void *key, int len, u8 *seq, void *priv) +{ + struct rtllib_tkip_data *tkey = priv; + int keyidx; +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + struct crypto_tfm *tfm = tkey->tx_tfm_michael; + struct crypto_tfm *tfm2 = tkey->tx_tfm_arc4; + struct crypto_tfm *tfm3 = tkey->rx_tfm_michael; + struct crypto_tfm *tfm4 = tkey->rx_tfm_arc4; +#else + struct crypto_hash *tfm = tkey->tx_tfm_michael; + struct crypto_blkcipher *tfm2 = tkey->tx_tfm_arc4; + struct crypto_hash *tfm3 = tkey->rx_tfm_michael; + struct crypto_blkcipher *tfm4 = tkey->rx_tfm_arc4; +#endif + + keyidx = tkey->key_idx; + memset(tkey, 0, sizeof(*tkey)); + tkey->key_idx = keyidx; +#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) ) + tkey->tx_tfm_michael = tfm; + tkey->tx_tfm_arc4 = tfm2; + tkey->rx_tfm_michael = tfm3; + tkey->rx_tfm_arc4 = tfm4; +#else + tkey->tx_tfm_michael = tfm; + tkey->tx_tfm_arc4 = tfm2; + tkey->rx_tfm_michael = tfm3; + tkey->rx_tfm_arc4 = tfm4; +#endif + + if (len == TKIP_KEY_LEN) { + memcpy(tkey->key, key, TKIP_KEY_LEN); + tkey->key_set = 1; + tkey->tx_iv16 = 1; /* TSC is initialized to 1 */ + if (seq) { + tkey->rx_iv32 = (seq[5] << 24) | (seq[4] << 16) | + (seq[3] << 8) | seq[2]; + tkey->rx_iv16 = (seq[1] << 8) | seq[0]; + } + } else if (len == 0) + tkey->key_set = 0; + else + return -1; + + return 0; +} + + +static int rtllib_tkip_get_key(void *key, int len, u8 *seq, void *priv) +{ + struct rtllib_tkip_data *tkey = priv; + + if (len < TKIP_KEY_LEN) + return -1; + + if (!tkey->key_set) + return 0; + memcpy(key, tkey->key, TKIP_KEY_LEN); + + if (seq) { + /* Return the sequence number of the last transmitted frame. */ + u16 iv16 = tkey->tx_iv16; + u32 iv32 = tkey->tx_iv32; + if (iv16 == 0) + iv32--; + iv16--; + seq[0] = tkey->tx_iv16; + seq[1] = tkey->tx_iv16 >> 8; + seq[2] = tkey->tx_iv32; + seq[3] = tkey->tx_iv32 >> 8; + seq[4] = tkey->tx_iv32 >> 16; + seq[5] = tkey->tx_iv32 >> 24; + } + + return TKIP_KEY_LEN; +} + + +static char * rtllib_tkip_print_stats(char *p, void *priv) +{ + struct rtllib_tkip_data *tkip = priv; + p += sprintf(p, "key[%d] alg=TKIP key_set=%d " + "tx_pn=%02x%02x%02x%02x%02x%02x " + "rx_pn=%02x%02x%02x%02x%02x%02x " + "replays=%d icv_errors=%d local_mic_failures=%d\n", + tkip->key_idx, tkip->key_set, + (tkip->tx_iv32 >> 24) & 0xff, + (tkip->tx_iv32 >> 16) & 0xff, + (tkip->tx_iv32 >> 8) & 0xff, + tkip->tx_iv32 & 0xff, + (tkip->tx_iv16 >> 8) & 0xff, + tkip->tx_iv16 & 0xff, + (tkip->rx_iv32 >> 24) & 0xff, + (tkip->rx_iv32 >> 16) & 0xff, + (tkip->rx_iv32 >> 8) & 0xff, + tkip->rx_iv32 & 0xff, + (tkip->rx_iv16 >> 8) & 0xff, + tkip->rx_iv16 & 0xff, + tkip->dot11RSNAStatsTKIPReplays, + tkip->dot11RSNAStatsTKIPICVErrors, + tkip->dot11RSNAStatsTKIPLocalMICFailures); + return p; +} + + +static struct rtllib_crypto_ops rtllib_crypt_tkip = { + .name = "TKIP", + .init = rtllib_tkip_init, + .deinit = rtllib_tkip_deinit, + .encrypt_mpdu = rtllib_tkip_encrypt, + .decrypt_mpdu = rtllib_tkip_decrypt, + .encrypt_msdu = rtllib_michael_mic_add, + .decrypt_msdu = rtllib_michael_mic_verify, + .set_key = rtllib_tkip_set_key, + .get_key = rtllib_tkip_get_key, + .print_stats = rtllib_tkip_print_stats, + .extra_prefix_len = 4 + 4, /* IV + ExtIV */ + .extra_postfix_len = 8 + 4, /* MIC + ICV */ + .owner = THIS_MODULE, +}; + + +int __init rtllib_crypto_tkip_init(void) +{ + return rtllib_register_crypto_ops(&rtllib_crypt_tkip); +} + + +void __exit rtllib_crypto_tkip_exit(void) +{ + rtllib_unregister_crypto_ops(&rtllib_crypt_tkip); +} + +void rtllib_tkip_null(void) +{ + return; +} + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(rtllib_tkip_null); + +module_init(rtllib_crypto_tkip_init); +module_exit(rtllib_crypto_tkip_exit); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/compress.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/compress.c @@ -0,0 +1,63 @@ +/* + * Cryptographic API. + * + * Compression operations. + * + * Copyright (c) 2002 James Morris + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the 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 +#include "rtl_crypto.h" +#include +#include +#include +#include "internal.h" + +static int crypto_compress(struct crypto_tfm *tfm, + const u8 *src, unsigned int slen, + u8 *dst, unsigned int *dlen) +{ + return tfm->__crt_alg->cra_compress.coa_compress(crypto_tfm_ctx(tfm), + src, slen, dst, + dlen); +} + +static int crypto_decompress(struct crypto_tfm *tfm, + const u8 *src, unsigned int slen, + u8 *dst, unsigned int *dlen) +{ + return tfm->__crt_alg->cra_compress.coa_decompress(crypto_tfm_ctx(tfm), + src, slen, dst, + dlen); +} + +int crypto_init_compress_flags(struct crypto_tfm *tfm, u32 flags) +{ + return flags ? -EINVAL : 0; +} + +int crypto_init_compress_ops(struct crypto_tfm *tfm) +{ + int ret = 0; + struct compress_tfm *ops = &tfm->crt_compress; + + ret = tfm->__crt_alg->cra_compress.coa_init(crypto_tfm_ctx(tfm)); + if (ret) + goto out; + + ops->cot_compress = crypto_compress; + ops->cot_decompress = crypto_decompress; + +out: + return ret; +} + +void crypto_exit_compress_ops(struct crypto_tfm *tfm) +{ + tfm->__crt_alg->cra_compress.coa_exit(crypto_tfm_ctx(tfm)); +} --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/dot11d.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/dot11d.h @@ -0,0 +1,83 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef __INC_DOT11D_H +#define __INC_DOT11D_H + +#ifdef ENABLE_DOT11D +#include "rtllib.h" + + + +typedef struct _CHNL_TXPOWER_TRIPLE { + u8 FirstChnl; + u8 NumChnls; + u8 MaxTxPowerInDbm; +}CHNL_TXPOWER_TRIPLE, *PCHNL_TXPOWER_TRIPLE; + +typedef enum _DOT11D_STATE { + DOT11D_STATE_NONE = 0, + DOT11D_STATE_LEARNED, + DOT11D_STATE_DONE, +}DOT11D_STATE; + +typedef struct _RT_DOT11D_INFO { + + bool bEnabled; + + u16 CountryIeLen; + u8 CountryIeBuf[MAX_IE_LEN]; + u8 CountryIeSrcAddr[6]; + u8 CountryIeWatchdog; + + u8 channel_map[MAX_CHANNEL_NUMBER+1]; + u8 MaxTxPwrDbmList[MAX_CHANNEL_NUMBER+1]; + + DOT11D_STATE State; +}RT_DOT11D_INFO, *PRT_DOT11D_INFO; +#define eqMacAddr(a,b) ( ((a)[0]==(b)[0] && (a)[1]==(b)[1] && (a)[2]==(b)[2] && (a)[3]==(b)[3] && (a)[4]==(b)[4] && (a)[5]==(b)[5]) ? 1:0 ) +#define cpMacAddr(des,src) ((des)[0]=(src)[0],(des)[1]=(src)[1],(des)[2]=(src)[2],(des)[3]=(src)[3],(des)[4]=(src)[4],(des)[5]=(src)[5]) +#define GET_DOT11D_INFO(__pIeeeDev) ((PRT_DOT11D_INFO)((__pIeeeDev)->pDot11dInfo)) + +#define IS_DOT11D_ENABLE(__pIeeeDev) GET_DOT11D_INFO(__pIeeeDev)->bEnabled +#define IS_COUNTRY_IE_VALID(__pIeeeDev) (GET_DOT11D_INFO(__pIeeeDev)->CountryIeLen > 0) + +#define IS_EQUAL_CIE_SRC(__pIeeeDev, __pTa) eqMacAddr(GET_DOT11D_INFO(__pIeeeDev)->CountryIeSrcAddr, __pTa) +#define UPDATE_CIE_SRC(__pIeeeDev, __pTa) cpMacAddr(GET_DOT11D_INFO(__pIeeeDev)->CountryIeSrcAddr, __pTa) + +#define IS_COUNTRY_IE_CHANGED(__pIeeeDev, __Ie) \ + (((__Ie).Length == 0 || (__Ie).Length != GET_DOT11D_INFO(__pIeeeDev)->CountryIeLen) ? \ + false : \ + (!memcmp(GET_DOT11D_INFO(__pIeeeDev)->CountryIeBuf, (__Ie).Octet, (__Ie).Length))) + +#define CIE_WATCHDOG_TH 1 +#define GET_CIE_WATCHDOG(__pIeeeDev) GET_DOT11D_INFO(__pIeeeDev)->CountryIeWatchdog +#define RESET_CIE_WATCHDOG(__pIeeeDev) GET_CIE_WATCHDOG(__pIeeeDev) = 0 +#define UPDATE_CIE_WATCHDOG(__pIeeeDev) ++GET_CIE_WATCHDOG(__pIeeeDev) + +#define IS_DOT11D_STATE_DONE(__pIeeeDev) (GET_DOT11D_INFO(__pIeeeDev)->State == DOT11D_STATE_DONE) + +void Dot11d_Init( struct rtllib_device *dev); +void Dot11d_Channelmap(u8 channel_plan, struct rtllib_device* ieee); +void Dot11d_Reset(struct rtllib_device *dev); +void Dot11d_UpdateCountryIe(struct rtllib_device *dev, u8 *pTaddr, u16 CoutryIeLen, u8 *pCoutryIe); +u8 DOT11D_GetMaxTxPwrInDbm(struct rtllib_device *dev, u8 Channel); +void DOT11D_ScanComplete(struct rtllib_device *dev); +int ToLegalChannel(struct rtllib_device *dev, u8 channel); +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib_endianfree.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib_endianfree.h @@ -0,0 +1,156 @@ +#ifndef __INC_ENDIANFREE_H +#define __INC_ENDIANFREE_H + +/* + * Call endian free function when + * 1. Read/write packet content. + * 2. Before write integer to IO. + * 3. After read integer from IO. + */ + +#define __MACHINE_LITTLE_ENDIAN 1234 /* LSB first: i386, vax */ +#define __MACHINE_BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net, ppc */ + +#define BYTE_ORDER __MACHINE_LITTLE_ENDIAN + +#if BYTE_ORDER == __MACHINE_LITTLE_ENDIAN +#define EF1Byte(_val) ((u8)(_val)) +#define EF2Byte(_val) ((u16)(_val)) +#define EF4Byte(_val) ((u32)(_val)) + +#else +#define EF1Byte(_val) ((u8)(_val)) +#define EF2Byte(_val) (((((u16)(_val))&0x00ff)<<8)|((((u16)(_val))&0xff00)>>8)) +#define EF4Byte(_val) (((((u32)(_val))&0x000000ff)<<24)|\ + ((((u32)(_val))&0x0000ff00)<<8)|\ + ((((u32)(_val))&0x00ff0000)>>8)|\ + ((((u32)(_val))&0xff000000)>>24)) +#endif + +#define ReadEF1Byte(_ptr) EF1Byte(*((u8 *)(_ptr))) +#define ReadEF2Byte(_ptr) EF2Byte(*((u16 *)(_ptr))) +#define ReadEF4Byte(_ptr) EF4Byte(*((u32 *)(_ptr))) + +#define WriteEF1Byte(_ptr, _val) (*((u8 *)(_ptr)))=EF1Byte(_val) +#define WriteEF2Byte(_ptr, _val) (*((u16 *)(_ptr)))=EF2Byte(_val) +#define WriteEF4Byte(_ptr, _val) (*((u32 *)(_ptr)))=EF4Byte(_val) +#if BYTE_ORDER == __MACHINE_LITTLE_ENDIAN +#define H2N1BYTE(_val) ((u8)(_val)) +#define H2N2BYTE(_val) (((((u16)(_val))&0x00ff)<<8)|\ + ((((u16)(_val))&0xff00)>>8)) +#define H2N4BYTE(_val) (((((u32)(_val))&0x000000ff)<<24)|\ + ((((u32)(_val))&0x0000ff00)<<8) |\ + ((((u32)(_val))&0x00ff0000)>>8) |\ + ((((u32)(_val))&0xff000000)>>24)) +#else +#define H2N1BYTE(_val) ((u8)(_val)) +#define H2N2BYTE(_val) ((u16)(_val)) +#define H2N4BYTE(_val) ((u32)(_val)) +#endif + +#if BYTE_ORDER == __MACHINE_LITTLE_ENDIAN +#define N2H1BYTE(_val) ((u8)(_val)) +#define N2H2BYTE(_val) (((((u16)(_val))&0x00ff)<<8)|\ + ((((u16)(_val))&0xff00)>>8)) +#define N2H4BYTE(_val) (((((u32)(_val))&0x000000ff)<<24)|\ + ((((u32)(_val))&0x0000ff00)<<8) |\ + ((((u32)(_val))&0x00ff0000)>>8) |\ + ((((u32)(_val))&0xff000000)>>24)) +#else +#define N2H1BYTE(_val) ((u8)(_val)) +#define N2H2BYTE(_val) ((u16)(_val)) +#define N2H4BYTE(_val) ((u32)(_val)) +#endif + +#define BIT_LEN_MASK_32(__BitLen) (0xFFFFFFFF >> (32 - (__BitLen))) +#define BIT_OFFSET_LEN_MASK_32(__BitOffset, __BitLen) (BIT_LEN_MASK_32(__BitLen) << (__BitOffset)) + +#define LE_P4BYTE_TO_HOST_4BYTE(__pStart) (EF4Byte(*((u32 *)(__pStart)))) + +#define LE_BITS_TO_4BYTE(__pStart, __BitOffset, __BitLen) \ + ( \ + ( LE_P4BYTE_TO_HOST_4BYTE(__pStart) >> (__BitOffset) ) \ + & \ + BIT_LEN_MASK_32(__BitLen) \ + ) + +#define LE_BITS_CLEARED_TO_4BYTE(__pStart, __BitOffset, __BitLen) \ + ( \ + LE_P4BYTE_TO_HOST_4BYTE(__pStart) \ + & \ + ( ~BIT_OFFSET_LEN_MASK_32(__BitOffset, __BitLen) ) \ + ) + +#define SET_BITS_TO_LE_4BYTE(__pStart, __BitOffset, __BitLen, __Value) \ + *((u32 *)(__pStart)) = \ + EF4Byte( \ + LE_BITS_CLEARED_TO_4BYTE(__pStart, __BitOffset, __BitLen) \ + | \ + ( (((u32)__Value) & BIT_LEN_MASK_32(__BitLen)) << (__BitOffset) ) \ + ); + + +#define BIT_LEN_MASK_16(__BitLen) \ + (0xFFFF >> (16 - (__BitLen))) + +#define BIT_OFFSET_LEN_MASK_16(__BitOffset, __BitLen) \ + (BIT_LEN_MASK_16(__BitLen) << (__BitOffset)) + +#define LE_P2BYTE_TO_HOST_2BYTE(__pStart) \ + (EF2Byte(*((u16 *)(__pStart)))) + +#define LE_BITS_TO_2BYTE(__pStart, __BitOffset, __BitLen) \ + ( \ + ( LE_P2BYTE_TO_HOST_2BYTE(__pStart) >> (__BitOffset) ) \ + & \ + BIT_LEN_MASK_16(__BitLen) \ + ) + +#define LE_BITS_CLEARED_TO_2BYTE(__pStart, __BitOffset, __BitLen) \ + ( \ + LE_P2BYTE_TO_HOST_2BYTE(__pStart) \ + & \ + ( ~BIT_OFFSET_LEN_MASK_16(__BitOffset, __BitLen) ) \ + ) + +#define SET_BITS_TO_LE_2BYTE(__pStart, __BitOffset, __BitLen, __Value) \ + *((u16 *)(__pStart)) = \ + EF2Byte( \ + LE_BITS_CLEARED_TO_2BYTE(__pStart, __BitOffset, __BitLen) \ + | \ + ( (((u16)__Value) & BIT_LEN_MASK_16(__BitLen)) << (__BitOffset) ) \ + ); + +#define BIT_LEN_MASK_8(__BitLen) \ + (0xFF >> (8 - (__BitLen))) + +#define BIT_OFFSET_LEN_MASK_8(__BitOffset, __BitLen) \ + (BIT_LEN_MASK_8(__BitLen) << (__BitOffset)) + +#define LE_P1BYTE_TO_HOST_1BYTE(__pStart) \ + (EF1Byte(*((u8 *)(__pStart)))) + +#define LE_BITS_TO_1BYTE(__pStart, __BitOffset, __BitLen) \ + ( \ + ( LE_P1BYTE_TO_HOST_1BYTE(__pStart) >> (__BitOffset) ) \ + & \ + BIT_LEN_MASK_8(__BitLen) \ + ) + +#define LE_BITS_CLEARED_TO_1BYTE(__pStart, __BitOffset, __BitLen) \ + ( \ + LE_P1BYTE_TO_HOST_1BYTE(__pStart) \ + & \ + ( ~BIT_OFFSET_LEN_MASK_8(__BitOffset, __BitLen) ) \ + ) + +#define SET_BITS_TO_LE_1BYTE(__pStart, __BitOffset, __BitLen, __Value) \ + *((u8 *)(__pStart)) = \ + EF1Byte( \ + LE_BITS_CLEARED_TO_1BYTE(__pStart, __BitOffset, __BitLen) \ + | \ + ( (((u8)__Value) & BIT_LEN_MASK_8(__BitLen)) << (__BitOffset) ) \ + ); + +#define N_BYTE_ALIGMENT(__Value, __Aligment) ((__Aligment == 1) ? (__Value) : (((__Value + __Aligment - 1) / __Aligment) * __Aligment)) +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtl819x_HTProc.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtl819x_HTProc.c @@ -0,0 +1,1739 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#include "rtllib.h" +#include "rtl819x_HT.h" +u8 MCS_FILTER_ALL[16] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +u8 MCS_FILTER_1SS[16] = {0xff, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +u16 MCS_DATA_RATE[2][2][77] = + { { {13, 26, 39, 52, 78, 104, 117, 130, 26, 52, 78 ,104, 156, 208, 234, 260, + 39, 78, 117, 234, 312, 351, 390, 52, 104, 156, 208, 312, 416, 468, 520, + 0, 78, 104, 130, 117, 156, 195, 104, 130, 130, 156, 182, 182, 208, 156, 195, + 195, 234, 273, 273, 312, 130, 156, 181, 156, 181, 208, 234, 208, 234, 260, 260, + 286, 195, 234, 273, 234, 273, 312, 351, 312, 351, 390, 390, 429}, + {14, 29, 43, 58, 87, 116, 130, 144, 29, 58, 87, 116, 173, 231, 260, 289, + 43, 87, 130, 173, 260, 347, 390, 433, 58, 116, 173, 231, 347, 462, 520, 578, + 0, 87, 116, 144, 130, 173, 217, 116, 144, 144, 173, 202, 202, 231, 173, 217, + 217, 260, 303, 303, 347, 144, 173, 202, 173, 202, 231, 260, 231, 260, 289, 289, + 318, 217, 260, 303, 260, 303, 347, 390, 347, 390, 433, 433, 477} }, + { {27, 54, 81, 108, 162, 216, 243, 270, 54, 108, 162, 216, 324, 432, 486, 540, + 81, 162, 243, 324, 486, 648, 729, 810, 108, 216, 324, 432, 648, 864, 972, 1080, + 12, 162, 216, 270, 243, 324, 405, 216, 270, 270, 324, 378, 378, 432, 324, 405, + 405, 486, 567, 567, 648, 270, 324, 378, 324, 378, 432, 486, 432, 486, 540, 540, + 594, 405, 486, 567, 486, 567, 648, 729, 648, 729, 810, 810, 891}, + {30, 60, 90, 120, 180, 240, 270, 300, 60, 120, 180, 240, 360, 480, 540, 600, + 90, 180, 270, 360, 540, 720, 810, 900, 120, 240, 360, 480, 720, 960, 1080, 1200, + 13, 180, 240, 300, 270, 360, 450, 240, 300, 300, 360, 420, 420, 480, 360, 450, + 450, 540, 630, 630, 720, 300, 360, 420, 360, 420, 480, 540, 480, 540, 600, 600, + 660, 450, 540, 630, 540, 630, 720, 810, 720, 810, 900, 900, 990} } + }; + +static u8 UNKNOWN_BORADCOM[3] = {0x00, 0x14, 0xbf}; +static u8 LINKSYSWRT330_LINKSYSWRT300_BROADCOM[3] = {0x00, 0x1a, 0x70}; +static u8 LINKSYSWRT350_LINKSYSWRT150_BROADCOM[3] = {0x00, 0x1d, 0x7e}; +static u8 BELKINF5D8233V1_RALINK[3] = {0x00, 0x17, 0x3f}; +static u8 BELKINF5D82334V3_RALINK[3] = {0x00, 0x1c, 0xdf}; +static u8 PCI_RALINK[3] = {0x00, 0x90, 0xcc}; +static u8 EDIMAX_RALINK[3] = {0x00, 0x0e, 0x2e}; +static u8 AIRLINK_RALINK[3] = {0x00, 0x18, 0x02}; +static u8 DLINK_ATHEROS_1[3] = {0x00, 0x1c, 0xf0}; +static u8 DLINK_ATHEROS_2[3] = {0x00, 0x21, 0x91}; +static u8 CISCO_BROADCOM[3] = {0x00, 0x17, 0x94}; +#if defined(RTL8192SU) +static u8 NETGEAR_BROADCOM[3] = {0x00, 0x1f, 0x33}; +#endif +static u8 LINKSYS_MARVELL_4400N[3] = {0x00, 0x14, 0xa4}; +void HTUpdateDefaultSetting(struct rtllib_device* ieee) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + +#ifdef RTL8192CE + pHTInfo->bRDGEnable = 0; +#endif + + pHTInfo->bAcceptAddbaReq = 1; + + pHTInfo->bRegShortGI20MHz= 1; + pHTInfo->bRegShortGI40MHz= 1; + + pHTInfo->bRegBW40MHz = 1; + + if(pHTInfo->bRegBW40MHz) + pHTInfo->bRegSuppCCK = 1; + else + pHTInfo->bRegSuppCCK = true; + + pHTInfo->nAMSDU_MaxSize = 7935UL; + pHTInfo->bAMSDU_Support = 0; + + pHTInfo->bAMPDUEnable = 1; + pHTInfo->AMPDU_Factor = 2; + pHTInfo->MPDU_Density = 0; + + pHTInfo->SelfMimoPs = 3; + if(pHTInfo->SelfMimoPs == 2) + pHTInfo->SelfMimoPs = 3; + ieee->bTxDisableRateFallBack = 0; + ieee->bTxUseDriverAssingedRate = 0; + + ieee->bTxEnableFwCalcDur = 1; + + pHTInfo->bRegRT2RTAggregation = 1; + + pHTInfo->bRegRxReorderEnable = 1; + pHTInfo->RxReorderWinSize = 64; + pHTInfo->RxReorderPendingTime = 30; + +#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE + pHTInfo->UsbTxAggrNum = 4; +#endif +#ifdef USB_RX_AGGREGATION_SUPPORT +#ifdef RTL8192SU + pHTInfo->UsbRxFwAggrEn = 1; + pHTInfo->UsbRxFwAggrPageNum = 48; + pHTInfo->UsbRxFwAggrPacketNum = 8; + pHTInfo->UsbRxFwAggrTimeout = 4; + pHTInfo->UsbRxPageSize= 128; +#else + pHTInfo->UsbRxFwAggrEn = 1; + pHTInfo->UsbRxFwAggrPageNum = 24; + pHTInfo->UsbRxFwAggrPacketNum = 8; + pHTInfo->UsbRxFwAggrTimeout = 8; +#endif +#endif + + +} +void HTDebugHTCapability(u8* CapIE, u8* TitleString ) +{ + + static u8 EWC11NHTCap[] = {0x00, 0x90, 0x4c, 0x33}; + PHT_CAPABILITY_ELE pCapELE; + + if(!memcmp(CapIE, EWC11NHTCap, sizeof(EWC11NHTCap))) + { + RTLLIB_DEBUG(RTLLIB_DL_HT, "EWC IE in %s()\n", __FUNCTION__); + pCapELE = (PHT_CAPABILITY_ELE)(&CapIE[4]); + }else + pCapELE = (PHT_CAPABILITY_ELE)(&CapIE[0]); + + RTLLIB_DEBUG(RTLLIB_DL_HT, ". Called by %s\n", TitleString ); + + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSupported Channel Width = %s\n", (pCapELE->ChlWidth)?"20MHz": "20/40MHz"); + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSupport Short GI for 20M = %s\n", (pCapELE->ShortGI20Mhz)?"YES": "NO"); + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSupport Short GI for 40M = %s\n", (pCapELE->ShortGI40Mhz)?"YES": "NO"); + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSupport TX STBC = %s\n", (pCapELE->TxSTBC)?"YES": "NO"); + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tMax AMSDU Size = %s\n", (pCapELE->MaxAMSDUSize)?"3839": "7935"); + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSupport CCK in 20/40 mode = %s\n", (pCapELE->DssCCk)?"YES": "NO"); + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tMax AMPDU Factor = %d\n", pCapELE->MaxRxAMPDUFactor); + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tMPDU Density = %d\n", pCapELE->MPDUDensity); + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tMCS Rate Set = [%x][%x][%x][%x][%x]\n", pCapELE->MCS[0],\ + pCapELE->MCS[1], pCapELE->MCS[2], pCapELE->MCS[3], pCapELE->MCS[4]); + return; + +} +void HTDebugHTInfo(u8* InfoIE, u8* TitleString) +{ + + static u8 EWC11NHTInfo[] = {0x00, 0x90, 0x4c, 0x34}; + PHT_INFORMATION_ELE pHTInfoEle; + + if(!memcmp(InfoIE, EWC11NHTInfo, sizeof(EWC11NHTInfo))) + { + RTLLIB_DEBUG(RTLLIB_DL_HT, "EWC IE in %s()\n", __FUNCTION__); + pHTInfoEle = (PHT_INFORMATION_ELE)(&InfoIE[4]); + }else + pHTInfoEle = (PHT_INFORMATION_ELE)(&InfoIE[0]); + + + RTLLIB_DEBUG(RTLLIB_DL_HT, ". Called by %s\n", TitleString); + + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tPrimary channel = %d\n", pHTInfoEle->ControlChl); + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSenondary channel ="); + switch(pHTInfoEle->ExtChlOffset) + { + case 0: + RTLLIB_DEBUG(RTLLIB_DL_HT, "Not Present\n"); + break; + case 1: + RTLLIB_DEBUG(RTLLIB_DL_HT, "Upper channel\n"); + break; + case 2: + RTLLIB_DEBUG(RTLLIB_DL_HT, "Reserved. Eooro!!!\n"); + break; + case 3: + RTLLIB_DEBUG(RTLLIB_DL_HT, "Lower Channel\n"); + break; + } + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tRecommended channel width = %s\n", (pHTInfoEle->RecommemdedTxWidth)?"20Mhz": "40Mhz"); + + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tOperation mode for protection = "); + switch(pHTInfoEle->OptMode) + { + case 0: + RTLLIB_DEBUG(RTLLIB_DL_HT, "No Protection\n"); + break; + case 1: + RTLLIB_DEBUG(RTLLIB_DL_HT, "HT non-member protection mode\n"); + break; + case 2: + RTLLIB_DEBUG(RTLLIB_DL_HT, "Suggest to open protection\n"); + break; + case 3: + RTLLIB_DEBUG(RTLLIB_DL_HT, "HT mixed mode\n"); + break; + } + + RTLLIB_DEBUG(RTLLIB_DL_HT, "\tBasic MCS Rate Set = [%x][%x][%x][%x][%x]\n", pHTInfoEle->BasicMSC[0],\ + pHTInfoEle->BasicMSC[1], pHTInfoEle->BasicMSC[2], pHTInfoEle->BasicMSC[3], pHTInfoEle->BasicMSC[4]); + return; +} + +bool IsHTHalfNmode40Bandwidth(struct rtllib_device* ieee) +{ + bool retValue = false; + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + if(pHTInfo->bCurrentHTSupport == false ) + retValue = false; + else if(pHTInfo->bRegBW40MHz == false) + retValue = false; + else if(!ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev)) + retValue = false; + else if(((PHT_CAPABILITY_ELE)(pHTInfo->PeerHTCapBuf))->ChlWidth) + retValue = true; + else + retValue = false; + + return retValue; +} + +bool IsHTHalfNmodeSGI(struct rtllib_device* ieee, bool is40MHz) +{ + bool retValue = false; + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + if(pHTInfo->bCurrentHTSupport == false ) + retValue = false; + else if(!ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev)) + retValue = false; + else if(is40MHz) + { + if(((PHT_CAPABILITY_ELE)(pHTInfo->PeerHTCapBuf))->ShortGI40Mhz) + retValue = true; + else + retValue = false; + } + else + { + if(((PHT_CAPABILITY_ELE)(pHTInfo->PeerHTCapBuf))->ShortGI20Mhz) + retValue = true; + else + retValue = false; + } + + return retValue; +} + +u16 HTHalfMcsToDataRate(struct rtllib_device* ieee, u8 nMcsRate) +{ + + u8 is40MHz; + u8 isShortGI; + + is40MHz = (IsHTHalfNmode40Bandwidth(ieee))?1:0; + isShortGI = (IsHTHalfNmodeSGI(ieee, is40MHz))? 1:0; + + return MCS_DATA_RATE[is40MHz][isShortGI][(nMcsRate&0x7f)]; +} + + +u16 HTMcsToDataRate( struct rtllib_device* ieee, u8 nMcsRate) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + u8 is40MHz = (pHTInfo->bCurBW40MHz)?1:0; + u8 isShortGI = (pHTInfo->bCurBW40MHz)? + ((pHTInfo->bCurShortGI40MHz)?1:0): + ((pHTInfo->bCurShortGI20MHz)?1:0); + return MCS_DATA_RATE[is40MHz][isShortGI][(nMcsRate&0x7f)]; +} + +u16 TxCountToDataRate( struct rtllib_device* ieee, u8 nDataRate) +{ + u16 CCKOFDMRate[12] = {0x02 , 0x04 , 0x0b , 0x16 , 0x0c , 0x12 , 0x18 , 0x24 , 0x30 , 0x48 , 0x60 , 0x6c}; + u8 is40MHz = 0; + u8 isShortGI = 0; + + if(nDataRate < 12) + { + return CCKOFDMRate[nDataRate]; + } + else + { + if (nDataRate >= 0x10 && nDataRate <= 0x1f) + { + is40MHz = 0; + isShortGI = 0; + + } + else if(nDataRate >=0x20 && nDataRate <= 0x2f ) + { + is40MHz = 1; + isShortGI = 0; + + } + else if(nDataRate >= 0x30 && nDataRate <= 0x3f ) + { + is40MHz = 0; + isShortGI = 1; + + } + else if(nDataRate >= 0x40 && nDataRate <= 0x4f ) + { + is40MHz = 1; + isShortGI = 1; + + } + return MCS_DATA_RATE[is40MHz][isShortGI][nDataRate&0xf]; + } +} + + + +bool IsHTHalfNmodeAPs(struct rtllib_device* ieee) +{ + bool retValue = false; + struct rtllib_network* net = &ieee->current_network; + +#if defined RTL8192CE || defined RTL8192SE + return false; +#endif + +#if 0 + if(ieee->bHalfNMode == false) + retValue = false; + else +#endif + if((memcmp(net->bssid, BELKINF5D8233V1_RALINK, 3)==0) || + (memcmp(net->bssid, BELKINF5D82334V3_RALINK, 3)==0) || + (memcmp(net->bssid, PCI_RALINK, 3)==0) || + (memcmp(net->bssid, EDIMAX_RALINK, 3)==0) || + (memcmp(net->bssid, AIRLINK_RALINK, 3)==0) || + (net->ralink_cap_exist)) + retValue = true; + else if((memcmp(net->bssid, UNKNOWN_BORADCOM, 3)==0) || + (memcmp(net->bssid, LINKSYSWRT330_LINKSYSWRT300_BROADCOM, 3)==0)|| + (memcmp(net->bssid, LINKSYSWRT350_LINKSYSWRT150_BROADCOM, 3)==0)|| + (net->broadcom_cap_exist)) + retValue = true; + else if(net->bssht.bdRT2RTAggregation) + retValue = true; + else + retValue = false; + + return retValue; +} + +void HTIOTPeerDetermine(struct rtllib_device* ieee) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + struct rtllib_network* net = &ieee->current_network; + if(net->bssht.bdRT2RTAggregation){ + pHTInfo->IOTPeer = HT_IOT_PEER_REALTEK; + if(net->bssht.RT2RT_HT_Mode & RT_HT_CAP_USE_92SE){ + pHTInfo->IOTPeer = HT_IOT_PEER_REALTEK_92SE; + } + if(net->bssht.RT2RT_HT_Mode & RT_HT_CAP_USE_SOFTAP){ + pHTInfo->IOTPeer = HT_IOT_PEER_92U_SOFTAP; + } + } + else if(net->broadcom_cap_exist) + pHTInfo->IOTPeer = HT_IOT_PEER_BROADCOM; + else if((memcmp(net->bssid, UNKNOWN_BORADCOM, 3)==0) || + (memcmp(net->bssid, LINKSYSWRT330_LINKSYSWRT300_BROADCOM, 3)==0)|| + (memcmp(net->bssid, LINKSYSWRT350_LINKSYSWRT150_BROADCOM, 3)==0)/*|| + (memcmp(net->bssid, NETGEAR834Bv2_BROADCOM, 3)==0) */) + pHTInfo->IOTPeer = HT_IOT_PEER_BROADCOM; + else if((memcmp(net->bssid, BELKINF5D8233V1_RALINK, 3)==0) || + (memcmp(net->bssid, BELKINF5D82334V3_RALINK, 3)==0) || + (memcmp(net->bssid, PCI_RALINK, 3)==0) || + (memcmp(net->bssid, EDIMAX_RALINK, 3)==0) || + (memcmp(net->bssid, AIRLINK_RALINK, 3)==0) || + net->ralink_cap_exist) + pHTInfo->IOTPeer = HT_IOT_PEER_RALINK; + else if((net->atheros_cap_exist )|| + (memcmp(net->bssid, DLINK_ATHEROS_1, 3) == 0)|| + (memcmp(net->bssid, DLINK_ATHEROS_2, 3) == 0)) + pHTInfo->IOTPeer = HT_IOT_PEER_ATHEROS; + else if((memcmp(net->bssid, CISCO_BROADCOM, 3)==0)||net->cisco_cap_exist) + pHTInfo->IOTPeer = HT_IOT_PEER_CISCO; + else if ((memcmp(net->bssid, LINKSYS_MARVELL_4400N, 3) == 0) || + net->marvell_cap_exist) + pHTInfo->IOTPeer = HT_IOT_PEER_MARVELL; + else if (net->airgo_cap_exist) + pHTInfo->IOTPeer = HT_IOT_PEER_AIRGO; + else + pHTInfo->IOTPeer = HT_IOT_PEER_UNKNOWN; + + RTLLIB_DEBUG(RTLLIB_DL_IOT, "Joseph debug!! IOTPEER: %x\n", pHTInfo->IOTPeer); +} + +u8 HTIOTActIsDisableMCS14(struct rtllib_device* ieee, u8* PeerMacAddr) +{ + u8 ret = 0; +#if 0 +#if (HAL_CODE_BASE==RTL8192 && DEV_BUS_TYPE==USB_INTERFACE) + if((memcmp(PeerMacAddr, UNKNOWN_BORADCOM, 3)==0) || + (memcmp(PeerMacAddr, LINKSYSWRT330_LINKSYSWRT300_BROADCOM, 3)==0) + ) + { + ret = 1; + } + + + if(pHTInfo->bCurrentRT2RTAggregation) + { + ret = 1; + } +#endif +#endif + return ret; + } + + +bool HTIOTActIsDisableMCS15(struct rtllib_device* ieee) +{ + bool retValue = false; + +#if defined(RTL8192U) + if(ieee->current_network.bssht.bdBandWidth == HT_CHANNEL_WIDTH_20_40) + retValue = true; + else + retValue = false; +#endif + + + return retValue; +} + +bool HTIOTActIsDisableMCSTwoSpatialStream(struct rtllib_device* ieee) +{ + bool retValue = false; +#ifdef RTL8192U + struct rtllib_network* net = &ieee->current_network; + + if((ieee->pHTInfo->bCurrentHTSupport == true) && (ieee->pairwise_key_type == KEY_TYPE_CCMP)) + { + if((memcmp(net->bssid, BELKINF5D8233V1_RALINK, 3)==0) || + (memcmp(net->bssid, PCI_RALINK, 3)==0) || + (memcmp(net->bssid, EDIMAX_RALINK, 3)==0)) + { + retValue = false; + } + } +#endif +#if defined(RTL8192SU) || defined RTL8192CE + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + if (ieee->rtllib_ap_sec_type && + (ieee->rtllib_ap_sec_type(ieee)&(SEC_ALG_WEP|SEC_ALG_TKIP))) + { + if( (pHTInfo->IOTPeer != HT_IOT_PEER_ATHEROS) && + (pHTInfo->IOTPeer != HT_IOT_PEER_UNKNOWN) && + (pHTInfo->IOTPeer != HT_IOT_PEER_MARVELL) && + (pHTInfo->IOTPeer != HT_IOT_PEER_REALTEK_92SE) && + (pHTInfo->IOTPeer != HT_IOT_PEER_RALINK) ) + retValue = true; + } +#elif defined(RTL8192SE) + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + if (ieee->rtllib_ap_sec_type && + (ieee->rtllib_ap_sec_type(ieee)&SEC_ALG_TKIP)) { + if(pHTInfo->IOTPeer == HT_IOT_PEER_RALINK){ + retValue = true; + } + } +#endif + return retValue; +} + +u8 HTIOTActIsDisableEDCATurbo(struct rtllib_device* ieee, u8* PeerMacAddr) +{ + u8 retValue = false; + + return retValue; +#if 0 + if((memcmp(PeerMacAddr, UNKNOWN_BORADCOM, 3)==0)|| + (memcmp(PeerMacAddr, LINKSYSWRT330_LINKSYSWRT300_BROADCOM, 3)==0)|| + (memcmp(PeerMacAddr, LINKSYSWRT350_LINKSYSWRT150_BROADCOM, 3)==0)) + + { + retValue = 1; + } + + return retValue; +#endif +} + + +bool HTIOTActIsEnableBETxOPLimit(struct rtllib_device* ieee) +{ + bool retValue = false; + +#if defined RTL8192SU + if(ieee->mode == IEEE_G) + retValue = true; +#elif defined RTL8192CE + if(ieee->mode == IEEE_G || + (ieee->rtllib_ap_sec_type(ieee)&(SEC_ALG_WEP|SEC_ALG_TKIP))) + retValue = true; +#endif + + return retValue; +} + + +u8 HTIOTActIsMgntUseCCK6M(struct rtllib_device* ieee,struct rtllib_network *network) +{ + u8 retValue = 0; + + +#if (defined RTL8192U || defined RTL8192E || defined RTL8190P) + { + if(ieee->pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM) + { + retValue = 1; + } + } +#endif + + return retValue; +} + +u8 +HTIOTActWAIOTBroadcom(struct rtllib_device* ieee) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + u8 retValue = false; + u8 boundary=59; + + pHTInfo->bWAIotBroadcom = false; + if(ieee->pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM) + { + if(ieee->current_network.bssht.bdBandWidth == HT_CHANNEL_WIDTH_20_40) + { + if(!(pHTInfo->bRegBW40MHz)) + { + if(ieee->current_network.mode != WIRELESS_MODE_B) + { + pHTInfo->bWAIotBroadcom = true; + + if(ieee->b_customer_lenovo_id == true) + boundary = 30; + + if( ieee->current_network.RSSI >= boundary) + retValue = true; + } + }else{ + ; + } + } + } + return retValue; +} + +u8 HTIOTActIsForcedCTS2Self(struct rtllib_device *ieee, struct rtllib_network *network) +{ + u8 retValue = 0; +#if (defined RTL8192SE || defined RTL8192SU || defined RTL8192CE) + if((ieee->pHTInfo->IOTPeer == HT_IOT_PEER_MARVELL) ||(ieee->pHTInfo->IOTPeer == HT_IOT_PEER_ATHEROS) ) +#else + if(ieee->pHTInfo->IOTPeer == HT_IOT_PEER_MARVELL) +#endif + { + retValue = 1; + } + + return retValue; +} + +u8 HTIOTActIsForcedRTSCTS(struct rtllib_device *ieee, struct rtllib_network *network) +{ + u8 retValue = 0; +#if defined(RTL8192SE) || defined(RTL8192SU) + if(ieee->pHTInfo->bCurrentHTSupport) + { + if((ieee->pHTInfo->IOTPeer != HT_IOT_PEER_REALTEK)&& + (ieee->pHTInfo->IOTPeer != HT_IOT_PEER_REALTEK_92SE)) + { + if((ieee->pHTInfo->IOTAction & HT_IOT_ACT_TX_NO_AGGREGATION) == 0) + retValue = 1; + } + } +#endif + return retValue; +} + +u8 +HTIOTActIsForcedAMSDU8K(struct rtllib_device *ieee, struct rtllib_network *network) +{ + u8 retValue = 0; + + return retValue; +} + +u8 HTIOTActIsCCDFsync(struct rtllib_device *ieee) +{ + u8 retValue = 0; +#if (defined RTL8190P || defined RTL8192U || defined RTL8192SU) + if(ieee->pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM) + { + retValue = 1; + } +#endif + return retValue; +} + +u8 +HTIOCActRejcectADDBARequest(struct rtllib_network *network) +{ + u8 retValue = 0; +#if (defined RTL8192SE || defined RTL8192SU || defined RTL8192CE) + { + + + } +#endif + + return retValue; + +} + +u8 + HTIOTActIsEDCABiasRx(struct rtllib_device* ieee,struct rtllib_network *network) +{ + u8 retValue = 0; +#ifdef RTL8192SU + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + { + if(pHTInfo->IOTPeer==HT_IOT_PEER_ATHEROS || + pHTInfo->IOTPeer==HT_IOT_PEER_BROADCOM || + pHTInfo->IOTPeer==HT_IOT_PEER_RALINK) + return 1; + + } +#elif defined RTL8192CE + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + { + if(pHTInfo->IOTPeer==HT_IOT_PEER_ATHEROS || + pHTInfo->IOTPeer==HT_IOT_PEER_RALINK) + return 1; + + } +#elif defined RTL8192SE + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + { + if(ieee->rtllib_ap_sec_type != NULL) + if(ieee->rtllib_ap_sec_type(ieee) == SEC_ALG_CCMP) + if(pHTInfo->IOTPeer==HT_IOT_PEER_RALINK){ + return 1; + } + + } +#endif + return retValue; +} + +u8 +HTIOTActDisableShortGI(struct rtllib_device* ieee,struct rtllib_network *network) +{ + u8 retValue = 0; + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + if(pHTInfo->IOTPeer==HT_IOT_PEER_RALINK) + { + retValue = 1; + } + + return retValue; +} + +u8 +HTIOTActDisableHighPower(struct rtllib_device* ieee,struct rtllib_network *network) +{ + u8 retValue = 0; + +#if (defined RTL8192SE || defined RTL8192SU || defined RTL8192CE) + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + if(pHTInfo->IOTPeer==HT_IOT_PEER_RALINK || + pHTInfo->IOTPeer==HT_IOT_PEER_REALTEK || + pHTInfo->IOTPeer==HT_IOT_PEER_REALTEK_92SE) + { + retValue = 1; + } +#endif + return retValue; +} + +void +HTIOTActDetermineRaFunc(struct rtllib_device* ieee, bool bPeerRx2ss) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + pHTInfo->IOTRaFunc &= HT_IOT_RAFUNC_DISABLE_ALL; + + if(pHTInfo->IOTPeer == HT_IOT_PEER_RALINK && !bPeerRx2ss) + pHTInfo->IOTRaFunc |= HT_IOT_RAFUNC_PEER_1R; + + if(pHTInfo->IOTAction & HT_IOT_ACT_AMSDU_ENABLE) + pHTInfo->IOTRaFunc |= HT_IOT_RAFUNC_TX_AMSDU; + +} + + +u8 +HTIOTActIsDisableTx40MHz(struct rtllib_device* ieee,struct rtllib_network *network) +{ + u8 retValue = 0; + +#if (defined RTL8192SU || defined RTL8192SE || defined RTL8192CE) + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + if( (KEY_TYPE_WEP104 == ieee->pairwise_key_type) || + (KEY_TYPE_WEP40 == ieee->pairwise_key_type) || + (KEY_TYPE_WEP104 == ieee->group_key_type) || + (KEY_TYPE_WEP40 == ieee->group_key_type) || + (KEY_TYPE_TKIP == ieee->pairwise_key_type) ) + { + if((pHTInfo->IOTPeer==HT_IOT_PEER_REALTEK) && (network->bssht.bdSupportHT)) + retValue = 1; + } +#endif + + return retValue; +} + +u8 +HTIOTActIsTxNoAggregation(struct rtllib_device* ieee,struct rtllib_network *network) +{ + u8 retValue = 0; + +#if (defined RTL8192SU || defined RTL8192SE || defined RTL8192CE) + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + if( (KEY_TYPE_WEP104 == ieee->pairwise_key_type) || + (KEY_TYPE_WEP40 == ieee->pairwise_key_type) || + (KEY_TYPE_WEP104 == ieee->group_key_type) || + (KEY_TYPE_WEP40 == ieee->group_key_type) || + (KEY_TYPE_TKIP == ieee->pairwise_key_type) ) + { + if(pHTInfo->IOTPeer==HT_IOT_PEER_REALTEK) + retValue = 1; + } +#endif + + return retValue; +} + + +u8 +HTIOTActIsDisableTx2SS(struct rtllib_device* ieee,struct rtllib_network *network) +{ + u8 retValue = 0; + +#if (defined RTL8192SU || defined RTL8192SE || defined RTL8192CE) + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + if( (KEY_TYPE_WEP104 == ieee->pairwise_key_type) || + (KEY_TYPE_WEP40 == ieee->pairwise_key_type) || + (KEY_TYPE_WEP104 == ieee->group_key_type) || + (KEY_TYPE_WEP40 == ieee->group_key_type) || + (KEY_TYPE_TKIP == ieee->pairwise_key_type) ) + { + if((pHTInfo->IOTPeer==HT_IOT_PEER_REALTEK) && (network->bssht.bdSupportHT)) + retValue = 1; + } +#endif + + return retValue; +} + + +bool HTIOCActIsDisableCckRate(struct rtllib_device* ieee,struct rtllib_network *network) +{ + bool retValue = false; +#if defined(RTL8192SU) + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + if(pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM) + { + if((memcmp(network->bssid, NETGEAR_BROADCOM, 3)==0) + && (network->bssht.bdBandWidth == HT_CHANNEL_WIDTH_20_40)) + return true; + } +#endif + return retValue; +} + +bool HTIOCActAllowPeerAggOnePacket(struct rtllib_device* ieee,struct rtllib_network *network) +{ + bool retValue = false; +#if defined(RTL8192SE) || defined(RTL8192SU) + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + { + if(ieee->VersionID<2) + if(pHTInfo->IOTPeer == HT_IOT_PEER_MARVELL) + return true; + + } +#endif + return retValue; +} + +bool +HTIOTActIsNullDataPowerSaving(struct rtllib_device* ieee,struct rtllib_network *network) +{ + bool retValue = false; +#if defined(RTL8192SE) || defined(RTL8192SU) + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + { + if(pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM) + return true; + + } +#endif + return retValue; +} + +void HTResetIOTSetting( + PRT_HIGH_THROUGHPUT pHTInfo +) +{ + pHTInfo->IOTAction = 0; + pHTInfo->IOTPeer = HT_IOT_PEER_UNKNOWN; + pHTInfo->IOTRaFunc = 0; +} + + +#ifdef _RTL8192_EXT_PATCH_ +void HTConstructCapabilityElement(struct rtllib_device* ieee, u8* posHTCap, u8* len, u8 IsEncrypt, u8 bIsBcn, bool bAssoc) +#else +void HTConstructCapabilityElement(struct rtllib_device* ieee, u8* posHTCap, u8* len, u8 IsEncrypt, bool bAssoc) +#endif +{ + PRT_HIGH_THROUGHPUT pHT = ieee->pHTInfo; + PHT_CAPABILITY_ELE pCapELE = NULL; + + if ((posHTCap == NULL) || (pHT == NULL)) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "posHTCap or pHTInfo can't be null in HTConstructCapabilityElement()\n"); + return; + } + memset(posHTCap, 0, *len); + + if((bAssoc) && (pHT->ePeerHTSpecVer == HT_SPEC_VER_EWC)) + { + u8 EWC11NHTCap[] = {0x00, 0x90, 0x4c, 0x33}; + memcpy(posHTCap, EWC11NHTCap, sizeof(EWC11NHTCap)); + pCapELE = (PHT_CAPABILITY_ELE)&(posHTCap[4]); + *len = 30 + 2; + }else + { + pCapELE = (PHT_CAPABILITY_ELE)posHTCap; + *len = 26 + 2; + } + + pCapELE->AdvCoding = 0; + if(ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev)) + { + pCapELE->ChlWidth = 0; + } + else + { +#ifdef _RTL8192_EXT_PATCH_ + if(bIsBcn) + pCapELE->ChlWidth = (pHT->bCurBW40MHz?1:0); + else +#endif + pCapELE->ChlWidth = (pHT->bRegBW40MHz?1:0); + } + + pCapELE->MimoPwrSave = pHT->SelfMimoPs; + pCapELE->GreenField = 0; + pCapELE->ShortGI20Mhz = 1; + pCapELE->ShortGI40Mhz = 1; + + pCapELE->TxSTBC = 1; +#if defined RTL8192SE || defined RTL8192CE + pCapELE->TxSTBC = 0; +#endif + pCapELE->RxSTBC = 0; + pCapELE->DelayBA = 0; + pCapELE->MaxAMSDUSize = (MAX_RECEIVE_BUFFER_SIZE>=7935)?1:0; + pCapELE->DssCCk = ((pHT->bRegBW40MHz)?(pHT->bRegSuppCCK?1:0):0); + pCapELE->PSMP = 0; + pCapELE->LSigTxopProtect = 0; + + + RTLLIB_DEBUG(RTLLIB_DL_HT, "TX HT cap/info ele BW=%d MaxAMSDUSize:%d DssCCk:%d\n", pCapELE->ChlWidth, pCapELE->MaxAMSDUSize, pCapELE->DssCCk); + + if( IsEncrypt) + { + pCapELE->MPDUDensity = 7; + pCapELE->MaxRxAMPDUFactor = 2; + } + else + { + pCapELE->MaxRxAMPDUFactor = 3; + pCapELE->MPDUDensity = 0; + } + + memcpy(pCapELE->MCS, ieee->Regdot11HTOperationalRateSet, 16); +#if 0 + if(pHT->IOTAction & HT_IOT_ACT_DISABLE_MCS15) + pCapELE->MCS[1] &= 0x7f; + + if(pHT->IOTAction & HT_IOT_ACT_DISABLE_MCS14) + pCapELE->MCS[1] &= 0xbf; + + if(pHT->IOTAction & HT_IOT_ACT_DISABLE_ALL_2SS) + pCapELE->MCS[1] &= 0x00; + + if(ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev)) + { + int i; + for(i = 1; i< 16; i++) + pCapELE->MCS[i] = 0; + } +#endif + + memset(&pCapELE->ExtHTCapInfo, 0, 2); + + + memset(pCapELE->TxBFCap, 0, 4); + + pCapELE->ASCap = 0; + +#if 0 + if(pHT->ePeerHTSpecVer == HT_SPEC_VER_EWC) + *len = 30 + 2; + else + *len = 26 + 2; +#endif + + if(bAssoc) + { + if(pHT->IOTAction & HT_IOT_ACT_DISABLE_MCS15) + pCapELE->MCS[1] &= 0x7f; + + if(pHT->IOTAction & HT_IOT_ACT_DISABLE_MCS14) + pCapELE->MCS[1] &= 0xbf; + + if(pHT->IOTAction & HT_IOT_ACT_DISABLE_ALL_2SS) + pCapELE->MCS[1] &= 0x00; + + if(pHT->IOTAction & HT_IOT_ACT_DISABLE_RX_40MHZ_SHORT_GI) + pCapELE->ShortGI40Mhz = 0; + + if(ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev)) + { + pCapELE->ChlWidth = 0; + + pCapELE->MCS[1] = 0; + } + } + + + + + + return; + +} +void HTConstructInfoElement(struct rtllib_device* ieee, u8* posHTInfo, u8* len, u8 IsEncrypt) +{ + PRT_HIGH_THROUGHPUT pHT = ieee->pHTInfo; + PHT_INFORMATION_ELE pHTInfoEle = (PHT_INFORMATION_ELE)posHTInfo; + if ((posHTInfo == NULL) || (pHTInfoEle == NULL)) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "posHTInfo or pHTInfoEle can't be null in HTConstructInfoElement()\n"); + return; + } + + memset(posHTInfo, 0, *len); +#ifdef _RTL8192_EXT_PATCH_ + if ((ieee->iw_mode == IW_MODE_ADHOC) || (ieee->iw_mode == IW_MODE_MASTER) ||(ieee->iw_mode == IW_MODE_MESH) ) +#else + if ( (ieee->iw_mode == IW_MODE_ADHOC) || (ieee->iw_mode == IW_MODE_MASTER)) +#endif + { + pHTInfoEle->ControlChl = ieee->current_network.channel; +#ifdef _RTL8192_EXT_PATCH_ + if((!ieee->only_mesh) && (ieee->iw_mode == IW_MODE_MESH) && (ieee->state == RTLLIB_LINKED)) + pHTInfoEle->ExtChlOffset = ((pHT->bRegBW40MHz == false)?HT_EXTCHNL_OFFSET_NO_EXT: + ieee->APExtChlOffset); + else if(ieee->iw_mode == IW_MODE_MESH) + pHTInfoEle->ExtChlOffset = ((pHT->bRegBW40MHz == false)?HT_EXTCHNL_OFFSET_NO_EXT: + (ieee->current_mesh_network.channel<=6)? + HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + else +#endif + pHTInfoEle->ExtChlOffset = ((pHT->bRegBW40MHz == false)?HT_EXTCHNL_OFFSET_NO_EXT: + (ieee->current_network.channel<=6)? + HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + pHTInfoEle->RecommemdedTxWidth = pHT->bRegBW40MHz; + pHTInfoEle->RIFS = 0; + pHTInfoEle->PSMPAccessOnly = 0; + pHTInfoEle->SrvIntGranularity = 0; + pHTInfoEle->OptMode = pHT->CurrentOpMode; + pHTInfoEle->NonGFDevPresent = 0; + pHTInfoEle->DualBeacon = 0; + pHTInfoEle->SecondaryBeacon = 0; + pHTInfoEle->LSigTxopProtectFull = 0; + pHTInfoEle->PcoActive = 0; + pHTInfoEle->PcoPhase = 0; + + memset(pHTInfoEle->BasicMSC, 0, 16); + + + *len = 22 + 2; + + } + else + { + *len = 0; + } + return; +} + +void HTConstructRT2RTAggElement(struct rtllib_device* ieee, u8* posRT2RTAgg, u8* len) +{ + if (posRT2RTAgg == NULL) { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "posRT2RTAgg can't be null in HTConstructRT2RTAggElement()\n"); + return; + } + memset(posRT2RTAgg, 0, *len); + *posRT2RTAgg++ = 0x00; + *posRT2RTAgg++ = 0xe0; + *posRT2RTAgg++ = 0x4c; + *posRT2RTAgg++ = 0x02; + *posRT2RTAgg++ = 0x01; + +#ifdef RTL8192CE + *posRT2RTAgg = 0x70; +#else + *posRT2RTAgg = 0x30; +#endif + + if(ieee->bSupportRemoteWakeUp) { + *posRT2RTAgg |= RT_HT_CAP_USE_WOW; + } + + *len = 6 + 2; + + return; + +#ifdef TODO + posRT2RTAgg->Length = 6; +#endif + + + + +} + +u8 HT_PickMCSRate(struct rtllib_device* ieee, u8* pOperateMCS) +{ + u8 i; + if (pOperateMCS == NULL) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "pOperateMCS can't be null in HT_PickMCSRate()\n"); + return false; + } + + switch(ieee->mode) + { + case IEEE_A: + case IEEE_B: + case IEEE_G: + + for(i=0;i<=15;i++){ + pOperateMCS[i] = 0; + } + break; + + case IEEE_N_24G: + case IEEE_N_5G: + + pOperateMCS[0] &=RATE_ADPT_1SS_MASK; + pOperateMCS[1] &=RATE_ADPT_2SS_MASK; + pOperateMCS[3] &=RATE_ADPT_MCS32_MASK; + break; + + default: + + break; + + } + + return true; +} + +u8 HTGetHighestMCSRate(struct rtllib_device* ieee, u8* pMCSRateSet, u8* pMCSFilter) +{ + u8 i, j; + u8 bitMap; + u8 mcsRate = 0; + u8 availableMcsRate[16]; + if (pMCSRateSet == NULL || pMCSFilter == NULL) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "pMCSRateSet or pMCSFilter can't be null in HTGetHighestMCSRate()\n"); + return false; + } + for(i=0; i<16; i++) + availableMcsRate[i] = pMCSRateSet[i] & pMCSFilter[i]; + + for(i = 0; i < 16; i++) + { + if(availableMcsRate[i] != 0) + break; + } + if(i == 16) + return false; + + for(i = 0; i < 16; i++) + { + if(availableMcsRate[i] != 0) + { + bitMap = availableMcsRate[i]; + for(j = 0; j < 8; j++) + { + if((bitMap%2) != 0) + { + if(HTMcsToDataRate(ieee, (8*i+j)) > HTMcsToDataRate(ieee, mcsRate)) + mcsRate = (8*i+j); + } + bitMap = bitMap>>1; + } + } + } + return (mcsRate|0x80); +} + +u8 HTFilterMCSRate( struct rtllib_device* ieee, u8* pSupportMCS, u8* pOperateMCS) +{ + + u8 i=0; + + for(i=0;i<=15;i++){ + pOperateMCS[i] = ieee->Regdot11TxHTOperationalRateSet[i]&pSupportMCS[i]; + } + + + + HT_PickMCSRate(ieee, pOperateMCS); + + if(ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev)) + pOperateMCS[1] = 0; + + for(i=2; i<=15; i++) + pOperateMCS[i] = 0; + + return true; +} +void HTSetConnectBwMode(struct rtllib_device* ieee, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset); +void HTOnAssocRsp(struct rtllib_device *ieee) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + PHT_CAPABILITY_ELE pPeerHTCap = NULL; + PHT_INFORMATION_ELE pPeerHTInfo = NULL; + u16 nMaxAMSDUSize = 0; + u8* pMcsFilter = NULL; + + static u8 EWC11NHTCap[] = {0x00, 0x90, 0x4c, 0x33}; + static u8 EWC11NHTInfo[] = {0x00, 0x90, 0x4c, 0x34}; + + if( pHTInfo->bCurrentHTSupport == false ) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "<=== HTOnAssocRsp(): HT_DISABLE\n"); + return; + } + RTLLIB_DEBUG(RTLLIB_DL_HT, "===> HTOnAssocRsp_wq(): HT_ENABLE\n"); + + if(!memcmp(pHTInfo->PeerHTCapBuf,EWC11NHTCap, sizeof(EWC11NHTCap))) + pPeerHTCap = (PHT_CAPABILITY_ELE)(&pHTInfo->PeerHTCapBuf[4]); + else + pPeerHTCap = (PHT_CAPABILITY_ELE)(pHTInfo->PeerHTCapBuf); + + if(!memcmp(pHTInfo->PeerHTInfoBuf, EWC11NHTInfo, sizeof(EWC11NHTInfo))) + pPeerHTInfo = (PHT_INFORMATION_ELE)(&pHTInfo->PeerHTInfoBuf[4]); + else + pPeerHTInfo = (PHT_INFORMATION_ELE)(pHTInfo->PeerHTInfoBuf); + +#ifdef _RTL8192_EXT_PATCH_ + ieee->APExtChlOffset = (HT_EXTCHNL_OFFSET)(pPeerHTInfo->ExtChlOffset); +#endif + RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA|RTLLIB_DL_HT, pPeerHTCap, sizeof(HT_CAPABILITY_ELE)); + HTSetConnectBwMode(ieee, (HT_CHANNEL_WIDTH)(pPeerHTCap->ChlWidth), (HT_EXTCHNL_OFFSET)(pPeerHTInfo->ExtChlOffset)); +#if defined RTL8192SE || defined RTL8192SU || defined RTL8192CE + if(pHTInfo->bCurBW40MHz == true) +#endif + pHTInfo->bCurTxBW40MHz = ((pPeerHTInfo->RecommemdedTxWidth == 1)?true:false); + + pHTInfo->bCurShortGI20MHz= + ((pHTInfo->bRegShortGI20MHz)?((pPeerHTCap->ShortGI20Mhz==1)?true:false):false); + pHTInfo->bCurShortGI40MHz= + ((pHTInfo->bRegShortGI40MHz)?((pPeerHTCap->ShortGI40Mhz==1)?true:false):false); + + pHTInfo->bCurSuppCCK = + ((pHTInfo->bRegSuppCCK)?((pPeerHTCap->DssCCk==1)?true:false):false); + + + pHTInfo->bCurrent_AMSDU_Support = pHTInfo->bAMSDU_Support; + + nMaxAMSDUSize = (pPeerHTCap->MaxAMSDUSize==0)?3839:7935; + + if(pHTInfo->nAMSDU_MaxSize > nMaxAMSDUSize ) + pHTInfo->nCurrent_AMSDU_MaxSize = nMaxAMSDUSize; + else + pHTInfo->nCurrent_AMSDU_MaxSize = pHTInfo->nAMSDU_MaxSize; + + pHTInfo->bCurrentAMPDUEnable = pHTInfo->bAMPDUEnable; + if (ieee->rtllib_ap_sec_type && + (ieee->rtllib_ap_sec_type(ieee)&(SEC_ALG_WEP|SEC_ALG_TKIP))){ + if( (pHTInfo->IOTPeer== HT_IOT_PEER_ATHEROS) || + (pHTInfo->IOTPeer == HT_IOT_PEER_UNKNOWN) ) + pHTInfo->bCurrentAMPDUEnable = false; + } + + if(!pHTInfo->bRegRT2RTAggregation) + { + if(pHTInfo->AMPDU_Factor > pPeerHTCap->MaxRxAMPDUFactor) + pHTInfo->CurrentAMPDUFactor = pPeerHTCap->MaxRxAMPDUFactor; + else + pHTInfo->CurrentAMPDUFactor = pHTInfo->AMPDU_Factor; + + } else { +#if 0 + osTmp= PacketGetElement( asocpdu, EID_Vendor, OUI_SUB_REALTEK_AGG, OUI_SUBTYPE_DONT_CARE); + if(osTmp.Length >= 5) +#endif + if (ieee->current_network.bssht.bdRT2RTAggregation) + { + if( ieee->pairwise_key_type != KEY_TYPE_NA) + pHTInfo->CurrentAMPDUFactor = pPeerHTCap->MaxRxAMPDUFactor; + else + pHTInfo->CurrentAMPDUFactor = HT_AGG_SIZE_64K; + }else + { + if(pPeerHTCap->MaxRxAMPDUFactor < HT_AGG_SIZE_32K) + pHTInfo->CurrentAMPDUFactor = pPeerHTCap->MaxRxAMPDUFactor; + else + pHTInfo->CurrentAMPDUFactor = HT_AGG_SIZE_32K; + } + } +#ifdef _RTL8192_EXT_PATCH_ + if (ieee->iw_mode == IW_MODE_MESH) { + if(ieee->rtllib_ap_sec_type && (ieee->rtllib_ap_sec_type(ieee)&(SEC_ALG_CCMP))){ + pHTInfo->CurrentAMPDUFactor = pHTInfo->AMPDU_Factor = 0; + printk("%s: In MSTA mode, AP is encrypted with AES, force CurrentAMPDUFactor to 8K!\n", __func__); + } + } +#endif + +#if 0 + if(pHTInfo->MPDU_Density > pPeerHTCap->MPDUDensity) + pHTInfo->CurrentMPDUDensity = pHTInfo->MPDU_Density; + else + pHTInfo->CurrentMPDUDensity = pPeerHTCap->MPDUDensity; + if(ieee->pairwise_key_type != KEY_TYPE_NA ) + pHTInfo->CurrentMPDUDensity = 7; +#else + if(pHTInfo->MPDU_Density > pPeerHTCap->MPDUDensity) + pHTInfo->CurrentMPDUDensity = pHTInfo->MPDU_Density; + else + pHTInfo->CurrentMPDUDensity = pPeerHTCap->MPDUDensity; +#endif +#if (defined RTL8192SE || defined RTL8192SU || defined RTL8192CE) + if(ieee->SetHwRegHandler != NULL) { + ieee->SetHwRegHandler( ieee->dev, HW_VAR_SHORTGI_DENSITY, (u8*)(&ieee->MaxMssDensity)); + ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_FACTOR, &pHTInfo->CurrentAMPDUFactor); + ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_MIN_SPACE, &pHTInfo->CurrentMPDUDensity); + } +#elif defined RTL8192CE + if(ieee->SetHwRegHandler != NULL) { + ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_FACTOR, &pHTInfo->CurrentAMPDUFactor); + ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_MIN_SPACE, &pHTInfo->CurrentMPDUDensity); + } +#endif +#ifndef RTL8190P + if(pHTInfo->IOTAction & HT_IOT_ACT_TX_USE_AMSDU_8K) +#else + if( 0 ) +#endif + { + pHTInfo->bCurrentAMPDUEnable = false; + pHTInfo->ForcedAMSDUMode = HT_AGG_FORCE_ENABLE; + pHTInfo->ForcedAMSDUMaxSize = 7935; + } + pHTInfo->bCurRxReorderEnable = pHTInfo->bRegRxReorderEnable; +#ifdef _RTL8192_EXT_PATCH_ + if (ieee->iw_mode == IW_MODE_MESH) { + if(ieee->rtllib_ap_sec_type && (ieee->rtllib_ap_sec_type(ieee)&(SEC_ALG_CCMP))){ + pHTInfo->bCurRxReorderEnable = pHTInfo->bRegRxReorderEnable = 0; + printk("%s: In MSTA mode, AP is encrypted with AES, force closing RxReorder!\n", __func__); + } + } +#endif + + + if(pPeerHTCap->MCS[0] == 0) + pPeerHTCap->MCS[0] = 0xff; + + HTIOTActDetermineRaFunc(ieee, ((pPeerHTCap->MCS[1])!=0)); + + HTFilterMCSRate(ieee, pPeerHTCap->MCS, ieee->dot11HTOperationalRateSet); + + pHTInfo->PeerMimoPs = pPeerHTCap->MimoPwrSave; + if(pHTInfo->PeerMimoPs == MIMO_PS_STATIC) + pMcsFilter = MCS_FILTER_1SS; + else + pMcsFilter = MCS_FILTER_ALL; + ieee->HTHighestOperaRate = HTGetHighestMCSRate(ieee, ieee->dot11HTOperationalRateSet, pMcsFilter); + ieee->HTCurrentOperaRate = ieee->HTHighestOperaRate; + + pHTInfo->CurrentOpMode = pPeerHTInfo->OptMode; + +} + +void HTSetConnectBwModeCallback(struct rtllib_device* ieee); +void HTInitializeHTInfo(struct rtllib_device* ieee) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + RTLLIB_DEBUG(RTLLIB_DL_HT, "===========>%s()\n", __FUNCTION__); + pHTInfo->bCurrentHTSupport = false; + + pHTInfo->bCurBW40MHz = false; + pHTInfo->bCurTxBW40MHz = false; + + pHTInfo->bCurShortGI20MHz = false; + pHTInfo->bCurShortGI40MHz = false; + pHTInfo->bForcedShortGI = false; + + pHTInfo->bCurSuppCCK = true; + + pHTInfo->bCurrent_AMSDU_Support = false; + pHTInfo->nCurrent_AMSDU_MaxSize = pHTInfo->nAMSDU_MaxSize; +#ifdef _RTL8192_EXT_PATCH_ + pHTInfo->bCurrent_Mesh_AMSDU_Support = true; +#endif + pHTInfo->CurrentMPDUDensity = pHTInfo->MPDU_Density; + pHTInfo->CurrentAMPDUFactor = pHTInfo->AMPDU_Factor; + + memset((void*)(&(pHTInfo->SelfHTCap)), 0, sizeof(pHTInfo->SelfHTCap)); + memset((void*)(&(pHTInfo->SelfHTInfo)), 0, sizeof(pHTInfo->SelfHTInfo)); + memset((void*)(&(pHTInfo->PeerHTCapBuf)), 0, sizeof(pHTInfo->PeerHTCapBuf)); + memset((void*)(&(pHTInfo->PeerHTInfoBuf)), 0, sizeof(pHTInfo->PeerHTInfoBuf)); + + pHTInfo->bSwBwInProgress = false; + pHTInfo->ChnlOp = CHNLOP_NONE; + + pHTInfo->ePeerHTSpecVer = HT_SPEC_VER_IEEE; + + pHTInfo->bCurrentRT2RTAggregation = false; + pHTInfo->bCurrentRT2RTLongSlotTime = false; + pHTInfo->RT2RT_HT_Mode = (RT_HT_CAPBILITY)0; + + pHTInfo->IOTPeer = 0; + pHTInfo->IOTAction = 0; + pHTInfo->IOTRaFunc = 0; + + { + u8* RegHTSuppRateSets = &(ieee->RegHTSuppRateSet[0]); + RegHTSuppRateSets[0] = 0xFF; + RegHTSuppRateSets[1] = 0xFF; + RegHTSuppRateSets[4] = 0x01; + } +} +void HTInitializeBssDesc(PBSS_HT pBssHT) +{ + + pBssHT->bdSupportHT = false; + memset(pBssHT->bdHTCapBuf, 0, sizeof(pBssHT->bdHTCapBuf)); + pBssHT->bdHTCapLen = 0; + memset(pBssHT->bdHTInfoBuf, 0, sizeof(pBssHT->bdHTInfoBuf)); + pBssHT->bdHTInfoLen = 0; + + pBssHT->bdHTSpecVer= HT_SPEC_VER_IEEE; + + pBssHT->bdRT2RTAggregation = false; + pBssHT->bdRT2RTLongSlotTime = false; + pBssHT->RT2RT_HT_Mode = (RT_HT_CAPBILITY)0; +} + +void HTResetSelfAndSavePeerSetting(struct rtllib_device* ieee, struct rtllib_network * pNetwork) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + u8 bIOTAction = 0; + + RTLLIB_DEBUG(RTLLIB_DL_HT, "==============>%s()\n", __FUNCTION__); + /*unmark bEnableHT flag here is the same reason why unmarked in function rtllib_softmac_new_net. WB 2008.09.10*/ + if (pNetwork->bssht.bdSupportHT) + { + pHTInfo->bCurrentHTSupport = true; + pHTInfo->ePeerHTSpecVer = pNetwork->bssht.bdHTSpecVer; + + if(pNetwork->bssht.bdHTCapLen > 0 && pNetwork->bssht.bdHTCapLen <= sizeof(pHTInfo->PeerHTCapBuf)) + memcpy(pHTInfo->PeerHTCapBuf, pNetwork->bssht.bdHTCapBuf, pNetwork->bssht.bdHTCapLen); + + if(pNetwork->bssht.bdHTInfoLen > 0 && pNetwork->bssht.bdHTInfoLen <= sizeof(pHTInfo->PeerHTInfoBuf)) + memcpy(pHTInfo->PeerHTInfoBuf, pNetwork->bssht.bdHTInfoBuf, pNetwork->bssht.bdHTInfoLen); + + if(pHTInfo->bRegRT2RTAggregation) + { + pHTInfo->bCurrentRT2RTAggregation = pNetwork->bssht.bdRT2RTAggregation; + pHTInfo->bCurrentRT2RTLongSlotTime = pNetwork->bssht.bdRT2RTLongSlotTime; + pHTInfo->RT2RT_HT_Mode = pNetwork->bssht.RT2RT_HT_Mode; + } + else + { + pHTInfo->bCurrentRT2RTAggregation = false; + pHTInfo->bCurrentRT2RTLongSlotTime = false; + pHTInfo->RT2RT_HT_Mode = (RT_HT_CAPBILITY)0; + } + + HTIOTPeerDetermine(ieee); + + pHTInfo->IOTAction = 0; + bIOTAction = HTIOTActIsDisableMCS14(ieee, pNetwork->bssid); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_MCS14; + + bIOTAction = HTIOTActIsDisableMCS15(ieee); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_MCS15; + + bIOTAction = HTIOTActIsDisableMCSTwoSpatialStream(ieee); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_ALL_2SS; + + + bIOTAction = HTIOTActIsDisableEDCATurbo(ieee, pNetwork->bssid); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_EDCA_TURBO; + +#if defined(RTL8190P) || defined(RTL8192E) || defined(RTL8192U) + bIOTAction = HTIOTActIsMgntUseCCK6M(ieee,pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_MGNT_USE_CCK_6M; +#elif defined(RTL8192SE) || defined(RTL8192SU) || defined RTL8192CE + bIOTAction = HTIOTActWAIOTBroadcom(ieee); + if(bIOTAction) + { + pHTInfo->IOTAction |= HT_IOT_ACT_WA_IOT_Broadcom; + } +#endif + bIOTAction = HTIOTActIsCCDFsync(ieee); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_CDD_FSYNC; +#if defined(RTL8192SU) || defined(RTL8192SE) || defined RTL8192CE + bIOTAction = HTIOTActIsForcedCTS2Self(ieee,pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_FORCED_CTS2SELF; + + + bIOTAction = HTIOTActIsEnableBETxOPLimit(ieee); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_FORCED_ENABLE_BE_TXOP; + +#if defined(RTL8192SU) + bIOTAction = HTIOCActRejcectADDBARequest(pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_REJECT_ADDBA_REQ; +#endif + + bIOTAction = HTIOCActAllowPeerAggOnePacket(ieee, pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_ALLOW_PEER_AGG_ONE_PKT; + + bIOTAction = HTIOTActIsEDCABiasRx(ieee, pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_EDCA_BIAS_ON_RX; + +#if defined(RTL8192SU) + bIOTAction = HTIOCActIsDisableCckRate(ieee, pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_CCK_RATE; +#endif + bIOTAction = HTIOTActDisableShortGI(ieee, pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_SHORT_GI; + + bIOTAction = HTIOTActDisableHighPower(ieee, pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_HIGH_POWER; + + + bIOTAction = HTIOTActIsForcedAMSDU8K(ieee, pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_TX_USE_AMSDU_8K; + +#if defined(RTL8192SU) + bIOTAction = HTIOTActIsTxNoAggregation(ieee, pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_TX_NO_AGGREGATION; + + bIOTAction = HTIOTActIsDisableTx40MHz(ieee, pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_TX_40_MHZ; + + bIOTAction = HTIOTActIsDisableTx2SS(ieee, pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_TX_2SS; +#endif + + bIOTAction = HTIOTActIsForcedRTSCTS(ieee, pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_FORCED_RTS; + + bIOTAction = HTIOTActIsNullDataPowerSaving(ieee, pNetwork); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_NULL_DATA_POWER_SAVING; +#endif + +#if 0 + bIOTAction = HTIOTActDisableRx40MHzShortGI(ieee, pBssDesc); + if(bIOTAction) + pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_RX_40MHZ_SHORT_GI; + +#endif + } + else + { + pHTInfo->bCurrentHTSupport = false; + pHTInfo->bCurrentRT2RTAggregation = false; + pHTInfo->bCurrentRT2RTLongSlotTime = false; + pHTInfo->RT2RT_HT_Mode = (RT_HT_CAPBILITY)0; + + pHTInfo->IOTAction = 0; + pHTInfo->IOTRaFunc = 0; + } + +} + +void HTUpdateSelfAndPeerSetting(struct rtllib_device* ieee, struct rtllib_network * pNetwork) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + PHT_INFORMATION_ELE pPeerHTInfo = (PHT_INFORMATION_ELE)pNetwork->bssht.bdHTInfoBuf; + + if(pHTInfo->bCurrentHTSupport) + { + if(pNetwork->bssht.bdHTInfoLen != 0) + pHTInfo->CurrentOpMode = pPeerHTInfo->OptMode; + + } +} + +void HTUseDefaultSetting(struct rtllib_device* ieee) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + +#ifdef _RTL8192_EXT_PATCH_ + ieee->current_mesh_network.qos_data.supported = 1; + ieee->current_mesh_network.qos_data.active = ieee->current_mesh_network.qos_data.supported; +#endif + if(pHTInfo->bEnableHT) + { + pHTInfo->bCurrentHTSupport = true; + pHTInfo->bCurSuppCCK = pHTInfo->bRegSuppCCK; + +#ifdef _RTL8192_EXT_PATCH_ + if(!((ieee->iw_mode == IW_MODE_MESH) && ieee->proto_started && (ieee->state == RTLLIB_LINKED))) + pHTInfo->bCurBW40MHz = pHTInfo->bRegBW40MHz; +#else + pHTInfo->bCurBW40MHz = pHTInfo->bRegBW40MHz; +#endif + pHTInfo->bCurShortGI20MHz= pHTInfo->bRegShortGI20MHz; + + pHTInfo->bCurShortGI40MHz= pHTInfo->bRegShortGI40MHz; +#ifdef _RTL8192_EXT_PATCH_ + ieee->current_mesh_network.qos_data.supported = 1; + ieee->current_mesh_network.qos_data.active = ieee->current_mesh_network.qos_data.supported; +#endif + + if(ieee->iw_mode == IW_MODE_ADHOC) + { + ieee->current_network.qos_data.active = ieee->current_network.qos_data.supported; + } +#ifdef ENABLE_AMSDU + if(ieee->iw_mode == IW_MODE_ADHOC) + { + pHTInfo->bCurrent_AMSDU_Support = 1; + } +#ifdef _RTL8192_EXT_PATCH_ + else if(ieee->iw_mode == IW_MODE_MESH) + { +#ifdef COMPATIBLE_WITH_RALINK_MESH + pHTInfo->bCurrent_Mesh_AMSDU_Support = 0; +#else + pHTInfo->bCurrent_Mesh_AMSDU_Support = 1; +#endif + pHTInfo->bCurrent_AMSDU_Support = pHTInfo->bAMSDU_Support; + } +#endif + else + pHTInfo->bCurrent_AMSDU_Support = pHTInfo->bAMSDU_Support; +#else + pHTInfo->bCurrent_AMSDU_Support = pHTInfo->bAMSDU_Support; +#endif + pHTInfo->nCurrent_AMSDU_MaxSize = pHTInfo->nAMSDU_MaxSize; + +#ifdef ENABLE_AMSDU + if(ieee->iw_mode == IW_MODE_ADHOC) + pHTInfo->bCurrentAMPDUEnable = 0; +#ifdef _RTL8192_EXT_PATCH_ + else if(ieee->iw_mode == IW_MODE_MESH) + { +#ifdef COMPATIBLE_WITH_RALINK_MESH + pHTInfo->bCurrentMeshAMPDUEnable = 1; +#else + pHTInfo->bCurrentMeshAMPDUEnable = 0; +#endif + pHTInfo->bCurrentAMPDUEnable = pHTInfo->bAMPDUEnable; + } +#endif + else + pHTInfo->bCurrentAMPDUEnable = pHTInfo->bAMPDUEnable; +#else + pHTInfo->bCurrentAMPDUEnable = pHTInfo->bAMPDUEnable; +#endif + pHTInfo->CurrentAMPDUFactor = pHTInfo->AMPDU_Factor; + + pHTInfo->CurrentMPDUDensity = pHTInfo->CurrentMPDUDensity; + + + HTFilterMCSRate(ieee, ieee->Regdot11TxHTOperationalRateSet, ieee->dot11HTOperationalRateSet); +#ifdef TODO + Adapter->HalFunc.InitHalRATRTableHandler( Adapter, &pMgntInfo->dot11OperationalRateSet, pMgntInfo->dot11HTOperationalRateSet); +#endif + ieee->HTHighestOperaRate = HTGetHighestMCSRate(ieee, ieee->dot11HTOperationalRateSet, MCS_FILTER_ALL); + ieee->HTCurrentOperaRate = ieee->HTHighestOperaRate; + +#if (defined RTL8192SE || defined RTL8192SU || defined RTL8192CE) + if(ieee->SetHwRegHandler != NULL) { + ieee->SetHwRegHandler( ieee->dev, HW_VAR_SHORTGI_DENSITY, (u8*)(&ieee->MaxMssDensity)); + ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_FACTOR, &pHTInfo->CurrentAMPDUFactor); + ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_MIN_SPACE, &pHTInfo->CurrentMPDUDensity); + } +#endif + + } + else + { + pHTInfo->bCurrentHTSupport = false; + } + return; +} +u8 HTCCheck(struct rtllib_device* ieee, u8* pFrame) +{ + if(ieee->pHTInfo->bCurrentHTSupport) + { + if( (IsQoSDataFrame(pFrame) && Frame_Order(pFrame)) == 1) + { + RTLLIB_DEBUG(RTLLIB_DL_HT, "HT CONTROL FILED EXIST!!\n"); + return true; + } + } + return false; +} + +void HTSetConnectBwMode(struct rtllib_device* ieee, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + if(pHTInfo->bRegBW40MHz == false) + return; + + if(ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev)) + Bandwidth=HT_CHANNEL_WIDTH_20; + + + if(pHTInfo->bSwBwInProgress) { + printk("%s: bSwBwInProgress!!\n", __FUNCTION__); + return; + } + if(Bandwidth==HT_CHANNEL_WIDTH_20_40) + { + if(ieee->current_network.channel<2 && Offset==HT_EXTCHNL_OFFSET_LOWER) + Offset = HT_EXTCHNL_OFFSET_NO_EXT; + if(Offset==HT_EXTCHNL_OFFSET_UPPER || Offset==HT_EXTCHNL_OFFSET_LOWER) { + pHTInfo->bCurBW40MHz = true; + pHTInfo->CurSTAExtChnlOffset = Offset; + } else { + pHTInfo->bCurBW40MHz = false; + pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_NO_EXT; + } + } else { + pHTInfo->bCurBW40MHz = false; + pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_NO_EXT; + } + + printk("%s():pHTInfo->bCurBW40MHz:%x\n", __func__, pHTInfo->bCurBW40MHz); + + pHTInfo->bSwBwInProgress = true; + + HTSetConnectBwModeCallback(ieee); + +} + +void HTSetConnectBwModeCallback(struct rtllib_device* ieee) +{ + PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo; + + RTLLIB_DEBUG(RTLLIB_DL_HT, "======>%s()\n", __FUNCTION__); + if(pHTInfo->bCurBW40MHz) + { + if(pHTInfo->CurSTAExtChnlOffset==HT_EXTCHNL_OFFSET_UPPER) + ieee->set_chan(ieee->dev, ieee->current_network.channel+2); + else if(pHTInfo->CurSTAExtChnlOffset==HT_EXTCHNL_OFFSET_LOWER) + ieee->set_chan(ieee->dev, ieee->current_network.channel-2); + else + ieee->set_chan(ieee->dev, ieee->current_network.channel); + + ieee->SetBWModeHandler(ieee->dev, HT_CHANNEL_WIDTH_20_40, pHTInfo->CurSTAExtChnlOffset); + } else { + ieee->set_chan(ieee->dev, ieee->current_network.channel); + ieee->SetBWModeHandler(ieee->dev, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT); + } + + pHTInfo->bSwBwInProgress = false; +} + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(HTUpdateSelfAndPeerSetting); +EXPORT_SYMBOL_RSL(HTFilterMCSRate); +EXPORT_SYMBOL_RSL(HTGetHighestMCSRate); +EXPORT_SYMBOL_RSL(MCS_FILTER_ALL); +EXPORT_SYMBOL_RSL(MCS_FILTER_1SS); +#ifdef _RTL8192_EXT_PATCH_ +EXPORT_SYMBOL_RSL(HTSetConnectBwMode); +EXPORT_SYMBOL_RSL(HTConstructCapabilityElement); +EXPORT_SYMBOL_RSL(HTConstructRT2RTAggElement); +EXPORT_SYMBOL_RSL(HTUseDefaultSetting); +EXPORT_SYMBOL_RSL(HTConstructInfoElement); +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/wapi_interface.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/wapi_interface.c @@ -0,0 +1,151 @@ +#if defined (RTL8192S_WAPI_SUPPORT) + +#include "wapi.h" +#include "wapi_interface.h" +#include "rtllib.h" + + +/************************************************************* + * WAPI EVENT QUEUE : * + * Buffer events from driver to application. * + *************************************************************/ +void WAPI_InitQueue(WAPI_QUEUE * q, int szMaxItem, int szMaxData) +{ + RT_ASSERT_RET(q); + + q->Head = 0; + q->Tail = 0; + q->NumItem = 0; + q->MaxItem = szMaxItem; + q->MaxData = szMaxData; +} + +int WAPI_EnQueue(spinlock_t *plock, WAPI_QUEUE *q, u8 *item, int itemsize) +{ + unsigned long flags; + + RT_ASSERT_RET_VALUE(plock, (-E_WAPI_QNULL)); + RT_ASSERT_RET_VALUE(q, (-E_WAPI_QNULL)); + RT_ASSERT_RET_VALUE(item, (-E_WAPI_QNULL)); + + if(WAPI_IsFullQueue(q)) + return -E_WAPI_QFULL; + if(itemsize > q->MaxData) + return -E_WAPI_ITEM_TOO_LARGE; + + spin_lock_irqsave(plock, flags); + + q->ItemArray[q->Tail].ItemSize = itemsize; + memset(q->ItemArray[q->Tail].Item, 0, sizeof(q->ItemArray[q->Tail].Item)); + memcpy(q->ItemArray[q->Tail].Item, item, itemsize); + q->NumItem++; + if((q->Tail+1) == q->MaxItem) + q->Tail = 0; + else + q->Tail++; + + spin_unlock_irqrestore(plock, flags); + + return E_WAPI_OK; +} + + +int WAPI_DeQueue(spinlock_t *plock, WAPI_QUEUE *q, u8 *item, int *itemsize) +{ + unsigned long flags; + + RT_ASSERT_RET_VALUE(plock, (-E_WAPI_QNULL)); + RT_ASSERT_RET_VALUE(q, (-E_WAPI_QNULL)); + RT_ASSERT_RET_VALUE(item, (-E_WAPI_QNULL)); + + if(WAPI_IsEmptyQueue(q)) + return -E_WAPI_QEMPTY; + + spin_lock_irqsave(plock, flags); + + memcpy(item, q->ItemArray[q->Head].Item, q->ItemArray[q->Head].ItemSize); + *itemsize = q->ItemArray[q->Head].ItemSize; + q->NumItem--; + if((q->Head+1) == q->MaxItem) + q->Head = 0; + else + q->Head++; + + spin_unlock_irqrestore(plock, flags); + + return E_WAPI_OK; +} + +void WAPI_PrintQueue(WAPI_QUEUE *q) +{ + int i, j, index; + + RT_ASSERT_RET(q); + + printk("\n/-------------------------------------------------\n"); + printk("[DOT11_PrintQueue]: MaxItem = %d, NumItem = %d, Head = %d, Tail = %d\n", q->MaxItem, q->NumItem, q->Head, q->Tail); + for(i=0; iNumItem; i++) { + index = (i + q->Head) % q->MaxItem; + printk("Queue[%d].ItemSize = %d ", index, q->ItemArray[index].ItemSize); + for(j=0; jItemArray[index].ItemSize; j++) + printk(" %x", q->ItemArray[index].Item[j]); + printk("\n"); + } + printk("------------------------------------------------/\n"); +} + +int pid_wapi = 0; +void notifyWapiApplication() +{ + struct task_struct *p; + + if(pid_wapi != 0){ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + p = find_task_by_pid(pid_wapi); +#else + p = find_task_by_vpid(pid_wapi); +#endif + if(p){ + send_sig(SIGUSR1,p,0); + }else { + pid_wapi = 0; + } + } +} + +int WAPI_CreateEvent_Send(struct rtllib_device *ieee, u8 EventId, u8 *MacAddr, u8 *Buff, u16 BufLen) +{ + WAPI_EVENT_T *pEvent; + u8 *pbuf = NULL; + int ret = 0; + + WAPI_TRACE(WAPI_API, "==========> %s: EventId=%d\n", __FUNCTION__, EventId); + + RT_ASSERT_RET_VALUE(ieee, -1); + RT_ASSERT_RET_VALUE(MacAddr, -1); + + pbuf= (u8 *)kmalloc((sizeof(WAPI_EVENT_T) + BufLen), GFP_ATOMIC); + if(NULL == pbuf) + return -1; + + pEvent = (WAPI_EVENT_T *)pbuf; + pEvent->EventId = EventId; + memcpy(pEvent->MACAddr, MacAddr, ETH_ALEN); + pEvent->BuffLength = BufLen; + if(BufLen > 0){ + memcpy(pEvent->Buff, Buff, BufLen); + } + + ret = WAPI_EnQueue(&ieee->wapi_queue_lock, ieee->wapi_queue, pbuf, (sizeof(WAPI_EVENT_T) + BufLen)); + notifyWapiApplication(); + + if(pbuf) + kfree(pbuf); + + WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__); + return ret; +} + +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/autoload.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/autoload.c @@ -0,0 +1,41 @@ +/* + * Cryptographic API. + * + * Algorithm autoloader. + * + * Copyright (c) 2002 James Morris + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + */ +#include "kmap_types.h" + +#include +#include "rtl_crypto.h" +#include +#include +#include "internal.h" + +#ifdef CONFIG_KMOD +/* + * A far more intelligent version of this is planned. For now, just + * try an exact match on the name of the algorithm. + */ +void crypto_alg_autoload(const char *name) +{ + request_module(name); +} + +struct crypto_alg *crypto_alg_mod_lookup(const char *name) +{ + struct crypto_alg *alg = crypto_alg_lookup(name); + if (alg == NULL) { + crypto_alg_autoload(name); + alg = crypto_alg_lookup(name); + } + return alg; +} +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/scatterwalk.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/scatterwalk.c @@ -0,0 +1,138 @@ +/* + * Cryptographic API. + * + * Cipher operations. + * + * Copyright (c) 2002 James Morris + * 2002 Adam J. Richter + * 2004 Jean-Luc Cooke + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the 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 +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) +#include "kmap_types.h" +#endif + +#include +#include +#include +#include +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) +#include +#else +#include +#endif +#include "internal.h" +#include "scatterwalk.h" + +enum km_type crypto_km_types[] = { + KM_USER0, + KM_USER1, + KM_SOFTIRQ0, + KM_SOFTIRQ1, +}; + +void *scatterwalk_whichbuf(struct scatter_walk *walk, unsigned int nbytes, void *scratch) +{ + if (nbytes <= walk->len_this_page && + (((unsigned long)walk->data) & (PAGE_CACHE_SIZE - 1)) + nbytes <= + PAGE_CACHE_SIZE) + return walk->data; + else + return scratch; +} + +static void memcpy_dir(void *buf, void *sgdata, size_t nbytes, int out) +{ + if (out) + memcpy(sgdata, buf, nbytes); + else + memcpy(buf, sgdata, nbytes); +} + +void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg) +{ + unsigned int rest_of_page; + + walk->sg = sg; + +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + walk->page = sg->page; +#else + walk->page = sg_page(sg); +#endif + walk->len_this_segment = sg->length; + + rest_of_page = PAGE_CACHE_SIZE - (sg->offset & (PAGE_CACHE_SIZE - 1)); + walk->len_this_page = min(sg->length, rest_of_page); + walk->offset = sg->offset; +} + +void scatterwalk_map(struct scatter_walk *walk, int out) +{ + walk->data = crypto_kmap(walk->page, out) + walk->offset; +} + +static void scatterwalk_pagedone(struct scatter_walk *walk, int out, + unsigned int more) +{ + /* walk->data may be pointing the first byte of the next page; + however, we know we transfered at least one byte. So, + walk->data - 1 will be a virtual address in the mapped page. */ + + if (out) + flush_dcache_page(walk->page); + + if (more) { + walk->len_this_segment -= walk->len_this_page; + + if (walk->len_this_segment) { + walk->page++; + walk->len_this_page = min(walk->len_this_segment, + (unsigned)PAGE_CACHE_SIZE); + walk->offset = 0; + } + else + scatterwalk_start(walk, sg_next(walk->sg)); + } +} + +void scatterwalk_done(struct scatter_walk *walk, int out, int more) +{ + crypto_kunmap(walk->data, out); + if (walk->len_this_page == 0 || !more) + scatterwalk_pagedone(walk, out, more); +} + +/* + * Do not call this unless the total length of all of the fragments + * has been verified as multiple of the block size. + */ +int scatterwalk_copychunks(void *buf, struct scatter_walk *walk, + size_t nbytes, int out) +{ + if (buf != walk->data) { + while (nbytes > walk->len_this_page) { + memcpy_dir(buf, walk->data, walk->len_this_page, out); + buf += walk->len_this_page; + nbytes -= walk->len_this_page; + + crypto_kunmap(walk->data, out); + scatterwalk_pagedone(walk, out, 1); + scatterwalk_map(walk, out); + } + + memcpy_dir(buf, walk->data, nbytes, out); + } + + walk->offset += nbytes; + walk->len_this_page -= nbytes; + walk->len_this_segment -= nbytes; + return 0; +} --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/digest.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/digest.c @@ -0,0 +1,120 @@ +/* + * Cryptographic API. + * + * Digest operations. + * + * Copyright (c) 2002 James Morris + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the 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 +#include "rtl_crypto.h" +#include +#include +#include +#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) +#include +#else +#include +#endif +#include "internal.h" + +static void init(struct crypto_tfm *tfm) +{ + tfm->__crt_alg->cra_digest.dia_init(crypto_tfm_ctx(tfm)); +} + +static void update(struct crypto_tfm *tfm, + struct scatterlist *sg, unsigned int nsg) +{ + unsigned int i; + + for (i = 0; i < nsg; i++) { + + #if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + struct page *pg = sg[i].page; + #else + struct page *pg = sg_page(&sg[i]); + #endif + unsigned int offset = sg[i].offset; + unsigned int l = sg[i].length; + + do { + unsigned int bytes_from_page = min(l, ((unsigned int) + (PAGE_SIZE)) - + offset); + char *p = crypto_kmap(pg, 0) + offset; + + tfm->__crt_alg->cra_digest.dia_update + (crypto_tfm_ctx(tfm), p, + bytes_from_page); + crypto_kunmap(p, 0); + crypto_yield(tfm); + offset = 0; + pg++; + l -= bytes_from_page; + } while (l > 0); + } +} + +static void final(struct crypto_tfm *tfm, u8 *out) +{ + tfm->__crt_alg->cra_digest.dia_final(crypto_tfm_ctx(tfm), out); +} + +static int setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen) +{ + u32 flags; + if (tfm->__crt_alg->cra_digest.dia_setkey == NULL) + return -ENOSYS; + return tfm->__crt_alg->cra_digest.dia_setkey(crypto_tfm_ctx(tfm), + key, keylen, &flags); +} + +static void digest(struct crypto_tfm *tfm, + struct scatterlist *sg, unsigned int nsg, u8 *out) +{ + unsigned int i; + + tfm->crt_digest.dit_init(tfm); + + for (i = 0; i < nsg; i++) { + #if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) + char *p = crypto_kmap(sg[i].page, 0) + sg[i].offset; + #else + char *p = crypto_kmap(sg_page(&sg[i]), 0) + sg[i].offset; + #endif + tfm->__crt_alg->cra_digest.dia_update(crypto_tfm_ctx(tfm), + p, sg[i].length); + crypto_kunmap(p, 0); + crypto_yield(tfm); + } + crypto_digest_final(tfm, out); +} + +int crypto_init_digest_flags(struct crypto_tfm *tfm, u32 flags) +{ + return flags ? -EINVAL : 0; +} + +int crypto_init_digest_ops(struct crypto_tfm *tfm) +{ + struct digest_tfm *ops = &tfm->crt_digest; + + ops->dit_init = init; + ops->dit_update = update; + ops->dit_final = final; + ops->dit_digest = digest; + ops->dit_setkey = setkey; + + return crypto_alloc_hmac_block(tfm); +} + +void crypto_exit_digest_ops(struct crypto_tfm *tfm) +{ + crypto_free_hmac_block(tfm); +} --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib.h @@ -0,0 +1,4206 @@ +/* + * Merged with mainline rtllib.h in Aug 2004. Original ieee802_11 + * remains copyright by the original authors + * + * Portions of the merged code are based on Host AP (software wireless + * LAN access point) driver for Intersil Prism2/2.5/3. + * + * Copyright (c) 2001-2002, SSH Communications Security Corp and Jouni Malinen + * + * Copyright (c) 2002-2003, Jouni Malinen + * + * Adaption to a generic IEEE 802.11 stack by James Ketrenos + * + * Copyright (c) 2004, Intel Corporation + * + * Modified for Realtek's wi-fi cards by Andrea Merello + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See README and COPYING for + * more details. + */ +#ifndef RTLLIB_H +#define RTLLIB_H +#include /* ETH_ALEN */ +#include /* ARRAY_SIZE */ +#include +#include +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) +#include +#else +#include +#include +#endif +#include +#include + +#include +#include + +#ifdef CONFIG_CFG_80211 +#include +#endif + +#include "rtl819x_HT.h" +#include "rtl819x_BA.h" +#include "rtl819x_TS.h" + +#include +#include /* ARPHRD_ETHER */ + +#ifndef WIRELESS_SPY +#define WIRELESS_SPY +#endif +#include + +#if defined (RTL8192S_WAPI_SUPPORT) +#include "wapi.h" +#include "wapi_interface.h" +#endif + +#ifndef IEEE80211_RADIOTAP_F_BADFCS +#define IEEE80211_RADIOTAP_F_BADFCS 0x40 /* bad FCS */ +#endif + +#ifndef IW_MODE_MONITOR +#define IW_MODE_MONITOR 6 +#endif + +#ifndef IWEVCUSTOM +#define IWEVCUSTOM 0x8c02 +#endif + +#ifndef IW_CUSTOM_MAX +/* Max number of char in custom event - use multiple of them if needed */ +#define IW_CUSTOM_MAX 256 /* In bytes */ +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) +#define jiffies_to_msecs(t) ((t) * 1000 / HZ) +#ifndef __bitwise +#define __bitwise __attribute__((bitwise)) +#endif +typedef __u16 __le16; + +#if (WIRELESS_EXT < 16) +struct iw_spy_data{ + /* --- Standard spy support --- */ + int spy_number; + u_char spy_address[IW_MAX_SPY][ETH_ALEN]; + struct iw_quality spy_stat[IW_MAX_SPY]; + /* --- Enhanced spy support (event) */ + struct iw_quality spy_thr_low; /* Low threshold */ + struct iw_quality spy_thr_high; /* High threshold */ + u_char spy_thr_under[IW_MAX_SPY]; +}; +#endif +#endif + +#ifndef container_of +/** + * container_of - cast a member of a structure out to the containing structure + * + * @ptr: the pointer to the member. + * @type: the type of the container struct this is embedded in. + * @member: the name of the member within the struct. + * + */ +#define container_of(ptr, type, member) ({ \ + const typeof( ((type *)0)->member ) *__mptr = (ptr); \ + (type *)( (char *)__mptr - offsetof(type,member) );}) +#endif + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) +#define skb_tail_pointer_rsl(skb) skb_tail_pointer(skb) +#else +#define skb_tail_pointer_rsl(skb) skb->tail +#endif + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) + #define EXPORT_SYMBOL_RSL(x) EXPORT_SYMBOL(x) +#else + #define EXPORT_SYMBOL_RSL(x) EXPORT_SYMBOL_NOVERS(x) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) +static inline void tq_init(struct tq_struct * task, void(*func)(void *), void *data) +{ + task->routine = func; + task->data = data; + INIT_LIST_HEAD(&task->list); + task->sync = 0; +} +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) +static inline void setup_timer(struct timer_list * timer, void(*function)(unsigned long), unsigned long data) +{ + timer->function = function; + timer->data = data; +} +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) + typedef struct delayed_work delayed_work_struct_rsl; + #define queue_delayed_work_rsl(x,y,z) queue_delayed_work(x,y,z) + #define INIT_DELAYED_WORK_RSL(x,y,z) INIT_DELAYED_WORK(x,y) +#elif LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,40) + typedef struct tq_struct delayed_work_struct_rsl; + #define queue_delayed_work_rsl(x,y,z) schedule_task(y) + #define INIT_DELAYED_WORK_RSL(x,y,z) tq_init(x,y,z) +#else + typedef struct work_struct delayed_work_struct_rsl; + #define queue_delayed_work_rsl(x,y,z) queue_delayed_work(x,y,z) + #define INIT_DELAYED_WORK_RSL(x,y,z) INIT_WORK(x,y,z) +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) + typedef struct work_struct work_struct_rsl; + #define queue_work_rsl(x,y) queue_work(x,y) + #define INIT_WORK_RSL(x,y,z) INIT_WORK(x,y) +#elif LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,40) + typedef struct tq_struct work_struct_rsl; + #define queue_work_rsl(x,y) schedule_task(y) + #define INIT_WORK_RSL(x,y,z) tq_init(x,y,z) +#else + typedef struct work_struct work_struct_rsl; + #define queue_work_rsl(x,y) queue_work(x,y) + #define INIT_WORK_RSL(x,y,z) INIT_WORK(x,y,z) +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) + #define container_of_work_rsl(x,y,z) container_of(x,y,z) + #define container_of_dwork_rsl(x,y,z) container_of(container_of(x, struct delayed_work, work), y, z) +#else + #define container_of_work_rsl(x,y,z) (x) + #define container_of_dwork_rsl(x,y,z) (x) +#endif + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,20)) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) +static inline char * +iwe_stream_add_event_rsl(struct iw_request_info *info, + char * stream, /* Stream of events */ + char * ends, /* End of stream */ + struct iw_event *iwe, /* Payload */ + int event_len) /* Real size of payload */ +{ + /* Check if it's possible */ + if((stream + event_len) < ends) { + iwe->len = event_len; + ndelay(1); + memcpy(stream, (char *) iwe, event_len); + stream += event_len; + } + return stream; +} +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) + #define iwe_stream_add_event_rsl(info,start,stop,iwe,len) iwe_stream_add_event(info,start,stop,iwe,len) +#else + #define iwe_stream_add_event_rsl(info,start,stop,iwe,len) iwe_stream_add_event(start,stop,iwe,len) +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) + #define iwe_stream_add_point_rsl(info,start,stop,iwe,p) iwe_stream_add_point(info,start,stop,iwe,p) +#else + #define iwe_stream_add_point_rsl(info,start,stop,iwe,p) iwe_stream_add_point(start,stop,iwe,p) +#endif + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + #define usb_alloc_urb_rsl(x,y) usb_alloc_urb(x,y) + #define usb_submit_urb_rsl(x,y) usb_submit_urb(x,y) +#else + #define usb_alloc_urb_rsl(x,y) usb_alloc_urb(x) + #define usb_submit_urb_rsl(x,y) usb_submit_urb(x) +#endif + +static inline void *netdev_priv_rsl(struct net_device *dev) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + return netdev_priv(dev); +#else + return dev->priv; +#endif +} + +#define KEY_TYPE_NA 0x0 +#define KEY_TYPE_WEP40 0x1 +#define KEY_TYPE_TKIP 0x2 +#define KEY_TYPE_CCMP 0x4 +#define KEY_TYPE_WEP104 0x5 +#if defined (RTL8192S_WAPI_SUPPORT) +#define KEY_TYPE_SMS4 0x8 +#endif +/* added for rtl819x tx procedure */ +#define MAX_QUEUE_SIZE 0x10 + +#if defined(RTL8192SU) || defined(RTL8190P) ||defined(RTL8192U) ||defined(RTL8192E) +#define BK_QUEUE 0 +#define BE_QUEUE 1 +#define VI_QUEUE 2 +#define VO_QUEUE 3 +#define HCCA_QUEUE 4 +#define TXCMD_QUEUE 5 +#define MGNT_QUEUE 6 +#define HIGH_QUEUE 7 +#define BEACON_QUEUE 8 +#elif defined(RTL8192SE) +#define BK_QUEUE 0 +#define BE_QUEUE 1 +#define VI_QUEUE 2 +#define VO_QUEUE 3 +#define BEACON_QUEUE 4 +#define TXCMD_QUEUE 5 +#define MGNT_QUEUE 6 +#define HIGH_QUEUE 7 +#define HCCA_QUEUE 8 + +#elif defined(RTL8192CE) + +#define BK_QUEUE 0 +#define BE_QUEUE 1 +#define VI_QUEUE 2 +#define VO_QUEUE 3 +#define BEACON_QUEUE 4 +#define TXCMD_QUEUE 5 +#define MGNT_QUEUE 6 +#define HIGH_QUEUE 7 +#define HCCA_QUEUE 8 +#endif + +#ifdef RTL8192CE +#define LOW_QUEUE BE_QUEUE +#define NORMAL_QUEUE MGNT_QUEUE +#else +#define LOW_QUEUE BE_QUEUE +#define NORMAL_QUEUE MGNT_QUEUE +#endif + +#ifndef IW_MODE_MESH +#define IW_MODE_MESH 7 +#endif +#ifdef _RTL8192_EXT_PATCH_ +#define WIFI_MESH_TYPE RTLLIB_FTYPE_DATA + +#define WLAN_MESH_HDR_LEN 6 +#define WLAN_MESH_HDR_6ADDR_LEN 18 +#define WLAN_MESH_HDR_4ADDR_LEN 6 +#define MAX_MP 65 +#define IEEE_MESH_MAC_HASH_SIZE 31 +#define MAX_MESH_ID_LEN 33 +#define MAX_HOST_NAME_LENGTH 33 +#endif +#define AMSDU_SUBHEADER_LEN 14 +#define SWRF_TIMEOUT 50 + +#define IE_CISCO_FLAG_POSITION 0x08 +#define SUPPORT_CKIP_MIC 0x08 +#define SUPPORT_CKIP_PK 0x10 +#define RT_RF_OFF_LEVL_ASPM BIT0 +#define RT_RF_OFF_LEVL_CLK_REQ BIT1 +#define RT_RF_OFF_LEVL_PCI_D3 BIT2 +#define RT_RF_OFF_LEVL_HALT_NIC BIT3 +#define RT_RF_OFF_LEVL_FREE_FW BIT4 +#define RT_RF_OFF_LEVL_FW_32K BIT5 +#define RT_RF_PS_LEVEL_ALWAYS_ASPM BIT6 +#define RT_RF_LPS_DISALBE_2R BIT30 +#define RT_RF_LPS_LEVEL_ASPM BIT31 +#define RT_IN_PS_LEVEL(pPSC, _PS_FLAG) ((pPSC->CurPsLevel & _PS_FLAG) ? true : false) +#define RT_CLEAR_PS_LEVEL(pPSC, _PS_FLAG) (pPSC->CurPsLevel &= (~(_PS_FLAG))) +#define RT_SET_PS_LEVEL(pPSC, _PS_FLAG) (pPSC->CurPsLevel |= _PS_FLAG) + +#if defined (RTL8192S_WAPI_SUPPORT) +#define SMS4_MIC_LEN 16 +#define WAPI_EXT_LEN 18 +#define MAX_WAPI_IE_LEN 255 +#define sMacHdrLng 24 +#endif + +/* defined for skb cb field */ +/* At most 28 byte */ +typedef struct cb_desc { + /* Tx Desc Related flags (8-9) */ + u8 bLastIniPkt:1; + u8 bCmdOrInit:1; + u8 bFirstSeg:1; + u8 bLastSeg:1; + u8 bEncrypt:1; + u8 bTxDisableRateFallBack:1; + u8 bTxUseDriverAssingedRate:1; + u8 bHwSec:1; + + u8 nStuckCount; + + /* Tx Firmware Relaged flags (10-11)*/ + u8 bCTSEnable:1; + u8 bRTSEnable:1; + u8 bUseShortGI:1; + u8 bUseShortPreamble:1; + u8 bTxEnableFwCalcDur:1; + u8 bAMPDUEnable:1; + u8 bRTSSTBC:1; + u8 RTSSC:1; + + u8 bRTSBW:1; + u8 bPacketBW:1; + u8 bRTSUseShortPreamble:1; + u8 bRTSUseShortGI:1; + u8 bMulticast:1; + u8 bBroadcast:1; + u8 drv_agg_enable:1; +#ifdef _RTL8192_EXT_PATCH_ + u8 mesh_pkt:1; +#else + u8 reserved2:1; +#endif + + /* Tx Desc related element(12-19) */ + u8 rata_index; + u8 queue_index; + u16 txbuf_size; + u8 RATRIndex; +#ifdef _RTL8192_EXT_PATCH_ + u8 mesh_type:2; + u8 bFromAggrQ:1; + u8 bAMSDU:1; + u8 brelay_pkt:1; + u8 badhoc:1; + u8 bretry_pkt:1; + u8 bFromRx:1; +#else + u8 bAMSDU:1; + u8 bFromAggrQ:1; + u8 reserved6:6; +#endif + u8 macId; + u8 priority; + + /* Tx firmware related element(20-27) */ + u8 data_rate; + u8 rts_rate; + u8 ampdu_factor; + u8 ampdu_density; + u8 DrvAggrNum; + u8 bdhcp; + u16 pkt_size; + u8 bIsSpecialDataFrame; + + u8 DescPktType; + + u8 bBTTxPacket; + u8 bIsBTProbRsp; + u8 bRxBTdata; +}cb_desc, *pcb_desc; + +/*--------------------------Define -------------------------------------------*/ +#define MGN_1M 0x02 +#define MGN_2M 0x04 +#define MGN_5_5M 0x0b +#define MGN_11M 0x16 + +#define MGN_6M 0x0c +#define MGN_9M 0x12 +#define MGN_12M 0x18 +#define MGN_18M 0x24 +#define MGN_24M 0x30 +#define MGN_36M 0x48 +#define MGN_48M 0x60 +#define MGN_54M 0x6c + +#define MGN_MCS0 0x80 +#define MGN_MCS1 0x81 +#define MGN_MCS2 0x82 +#define MGN_MCS3 0x83 +#define MGN_MCS4 0x84 +#define MGN_MCS5 0x85 +#define MGN_MCS6 0x86 +#define MGN_MCS7 0x87 +#define MGN_MCS8 0x88 +#define MGN_MCS9 0x89 +#define MGN_MCS10 0x8a +#define MGN_MCS11 0x8b +#define MGN_MCS12 0x8c +#define MGN_MCS13 0x8d +#define MGN_MCS14 0x8e +#define MGN_MCS15 0x8f +#define MGN_MCS0_SG 0x90 +#define MGN_MCS1_SG 0x91 +#define MGN_MCS2_SG 0x92 +#define MGN_MCS3_SG 0x93 +#define MGN_MCS4_SG 0x94 +#define MGN_MCS5_SG 0x95 +#define MGN_MCS6_SG 0x96 +#define MGN_MCS7_SG 0x97 +#define MGN_MCS8_SG 0x98 +#define MGN_MCS9_SG 0x99 +#define MGN_MCS10_SG 0x9a +#define MGN_MCS11_SG 0x9b +#define MGN_MCS12_SG 0x9c +#define MGN_MCS13_SG 0x9d +#define MGN_MCS14_SG 0x9e +#define MGN_MCS15_SG 0x9f + + +enum _ReasonCode{ + unspec_reason = 0x1, + auth_not_valid = 0x2, + deauth_lv_ss = 0x3, + inactivity = 0x4, + ap_overload = 0x5, + class2_err = 0x6, + class3_err = 0x7, + disas_lv_ss = 0x8, + asoc_not_auth = 0x9, + + mic_failure = 0xe, + + invalid_IE = 0x0d, + four_way_tmout = 0x0f, + two_way_tmout = 0x10, + IE_dismatch = 0x11, + invalid_Gcipher = 0x12, + invalid_Pcipher = 0x13, + invalid_AKMP = 0x14, + unsup_RSNIEver = 0x15, + invalid_RSNIE = 0x16, + auth_802_1x_fail= 0x17, + ciper_reject = 0x18, + + QoS_unspec = 0x20, + QAP_bandwidth = 0x21, + poor_condition = 0x22, + no_facility = 0x23, + req_declined = 0x25, + invalid_param = 0x26, + req_not_honored= 0x27, + TS_not_created = 0x2F, + DL_not_allowed = 0x30, + dest_not_exist = 0x31, + dest_not_QSTA = 0x32, +}; + +typedef enum _HAL_DEF_VARIABLE{ + HAL_DEF_TPC_ENABLE, + HAL_DEF_INIT_GAIN, + HAL_DEF_PROT_IMP_MODE, + HAL_DEF_HIGH_POWER_MECHANISM, + HAL_DEF_RATE_ADAPTIVE_MECHANISM, + HAL_DEF_ANTENNA_DIVERSITY_MECHANISM, + HAL_DEF_LED, + HAL_DEF_CW_MAX_MIN, + + HAL_DEF_WOWLAN, + HAL_DEF_ENDPOINTS, + HAL_DEF_MIN_TX_POWER_DBM, + HAL_DEF_MAX_TX_POWER_DBM, + HW_DEF_EFUSE_REPG_SECTION1_FLAG, + HW_DEF_EFUSE_REPG_DATA, + HW_DEF_GPIO, + HAL_DEF_PCI_SUPPORT_ASPM, + HAL_DEF_PCI_SUUPORT_L1_BACKDOOR, + HAL_DEF_THERMAL_VALUE, + HAL_DEF_USB_IN_TOKEN_REV, +}HAL_DEF_VARIABLE; + + +typedef enum _HW_VARIABLES{ + HW_VAR_ETHER_ADDR, + HW_VAR_MULTICAST_REG, + HW_VAR_BASIC_RATE, + HW_VAR_BSSID, + HW_VAR_MEDIA_STATUS, + HW_VAR_SECURITY_CONF, + HW_VAR_BEACON_INTERVAL, + HW_VAR_ATIM_WINDOW, + HW_VAR_LISTEN_INTERVAL, + HW_VAR_CS_COUNTER, + HW_VAR_DEFAULTKEY0, + HW_VAR_DEFAULTKEY1, + HW_VAR_DEFAULTKEY2, + HW_VAR_DEFAULTKEY3, + HW_VAR_SIFS, + HW_VAR_DIFS, + HW_VAR_EIFS, + HW_VAR_SLOT_TIME, + HW_VAR_ACK_PREAMBLE, + HW_VAR_CW_CONFIG, + HW_VAR_CW_VALUES, + HW_VAR_RATE_FALLBACK_CONTROL, + HW_VAR_CONTENTION_WINDOW, + HW_VAR_RETRY_COUNT, + HW_VAR_TR_SWITCH, + HW_VAR_COMMAND, + HW_VAR_WPA_CONFIG, + HW_VAR_AMPDU_MIN_SPACE, + HW_VAR_SHORTGI_DENSITY, + HW_VAR_AMPDU_FACTOR, + HW_VAR_MCS_RATE_AVAILABLE, + HW_VAR_AC_PARAM, + HW_VAR_ACM_CTRL, + HW_VAR_DIS_Req_Qsize, + HW_VAR_CCX_CHNL_LOAD, + HW_VAR_CCX_NOISE_HISTOGRAM, + HW_VAR_CCX_CLM_NHM, + HW_VAR_TxOPLimit, + HW_VAR_TURBO_MODE, + HW_VAR_RF_STATE, + HW_VAR_RF_OFF_BY_HW, + HW_VAR_BUS_SPEED, + HW_VAR_SET_DEV_POWER, + + HW_VAR_RCR, + HW_VAR_RATR_0, + HW_VAR_RRSR, + HW_VAR_CPU_RST, + HW_VAR_CECHK_BSSID, + HW_VAR_LBK_MODE, + HW_VAR_AES_11N_FIX, + HW_VAR_USB_RX_AGGR, + HW_VAR_USER_CONTROL_TURBO_MODE, + HW_VAR_RETRY_LIMIT, + HW_VAR_INIT_TX_RATE, + HW_VAR_TX_RATE_REG, + HW_VAR_EFUSE_USAGE, + HW_VAR_EFUSE_BYTES, + HW_VAR_AUTOLOAD_STATUS, + HW_VAR_RF_2R_DISABLE, + HW_VAR_SET_RPWM, + HW_VAR_H2C_FW_PWRMODE, + HW_VAR_H2C_FW_JOINBSSRPT, + HW_VAR_1X1_RECV_COMBINE, + HW_VAR_STOP_SEND_BEACON, + HW_VAR_TSF_TIMER, + HW_VAR_IO_CMD, + + HW_VAR_RF_RECOVERY, + HW_VAR_H2C_FW_UPDATE_GTK, + HW_VAR_WF_MASK, + HW_VAR_WF_CRC, + HW_VAR_WF_IS_MAC_ADDR, + HW_VAR_H2C_FW_OFFLOAD, + HW_VAR_RESET_WFCRC, + + HW_VAR_HANDLE_FW_C2H, + HW_VAR_DL_FW_RSVD_PAGE, + HW_VAR_AID, + HW_VAR_HW_SEQ_ENABLE, + HW_VAR_CORRECT_TSF, + HW_VAR_BCN_VALID, + HW_VAR_FWLPS_RF_ON, + HW_VAR_DUAL_TSF_RST, + HW_VAR_SWITCH_EPHY_WoWLAN, + HW_VAR_INT_MIGRATION, + HW_VAR_INT_AC, + HW_VAR_RF_TIMING, + + HW_VAR_MRC, +}HW_VARIABLES; + +typedef enum _RT_OP_MODE{ + RT_OP_MODE_AP, + RT_OP_MODE_INFRASTRUCTURE, + RT_OP_MODE_IBSS, + RT_OP_MODE_NO_LINK, +}RT_OP_MODE, *PRT_OP_MODE; + + +#define aSifsTime (((priv->rtllib->current_network.mode == IEEE_A)||(priv->rtllib->current_network.mode == IEEE_N_24G)||(priv->rtllib->current_network.mode == IEEE_N_5G))? 16 : 10) + +#define MGMT_QUEUE_NUM 5 + +#define IEEE_CMD_SET_WPA_PARAM 1 +#define IEEE_CMD_SET_WPA_IE 2 +#define IEEE_CMD_SET_ENCRYPTION 3 +#define IEEE_CMD_MLME 4 + +#define IEEE_PARAM_WPA_ENABLED 1 +#define IEEE_PARAM_TKIP_COUNTERMEASURES 2 +#define IEEE_PARAM_DROP_UNENCRYPTED 3 +#define IEEE_PARAM_PRIVACY_INVOKED 4 +#define IEEE_PARAM_AUTH_ALGS 5 +#define IEEE_PARAM_IEEE_802_1X 6 +#define IEEE_PARAM_WPAX_SELECT 7 +#define IEEE_PROTO_WPA 1 +#define IEEE_PROTO_RSN 2 +#define IEEE_WPAX_USEGROUP 0 +#define IEEE_WPAX_WEP40 1 +#define IEEE_WPAX_TKIP 2 +#define IEEE_WPAX_WRAP 3 +#define IEEE_WPAX_CCMP 4 +#define IEEE_WPAX_WEP104 5 + +#define IEEE_KEY_MGMT_IEEE8021X 1 +#define IEEE_KEY_MGMT_PSK 2 + +#define IEEE_MLME_STA_DEAUTH 1 +#define IEEE_MLME_STA_DISASSOC 2 + + +#define IEEE_CRYPT_ERR_UNKNOWN_ALG 2 +#define IEEE_CRYPT_ERR_UNKNOWN_ADDR 3 +#define IEEE_CRYPT_ERR_CRYPT_INIT_FAILED 4 +#define IEEE_CRYPT_ERR_KEY_SET_FAILED 5 +#define IEEE_CRYPT_ERR_TX_KEY_SET_FAILED 6 +#define IEEE_CRYPT_ERR_CARD_CONF_FAILED 7 +#define IEEE_CRYPT_ALG_NAME_LEN 16 + +#define MAX_IE_LEN 0xff +#ifdef _RTL8192_EXT_PATCH_ +#define ENABLE_NULL_PT_DEBUG +#endif +#ifdef ENABLE_NULL_PT_DEBUG +#define RT_ASSERT_RET(_Exp) \ + if(!(_Exp)) \ + { \ + printk("Rtl819x: "); \ + printk( "Assertion failed! %s,%s,line=%d\n", \ + #_Exp,__FUNCTION__,__LINE__); \ + return; \ + } +#define RT_ASSERT_RET_VALUE(_Exp,Ret) \ + if(!(_Exp)) \ + { \ + printk("Rtl819x: "); \ + printk( "Assertion failed! %s,%s,line=%d\n", \ + #_Exp,__FUNCTION__,__LINE__); \ + return (Ret); \ + } +#else +#define RT_ASSERT_RET(_Exp) do {} while(0) +#define RT_ASSERT_RET_VALUE(_Exp,Ret) do {} while(0) +#endif + +typedef struct ieee_param { + u32 cmd; + u8 sta_addr[ETH_ALEN]; + union { + struct { + u8 name; + u32 value; + } wpa_param; + struct { + u32 len; + u8 reserved[32]; + u8 data[0]; + } wpa_ie; + struct{ + int command; + int reason_code; + } mlme; + struct { + u8 alg[IEEE_CRYPT_ALG_NAME_LEN]; + u8 set_tx; + u32 err; + u8 idx; + u8 seq[8]; /* sequence counter (set: RX, get: TX) */ + u16 key_len; + u8 key[0]; + } crypt; + } u; +}ieee_param; + + +#if WIRELESS_EXT < 17 +#define IW_QUAL_QUAL_INVALID 0x10 +#define IW_QUAL_LEVEL_INVALID 0x20 +#define IW_QUAL_NOISE_INVALID 0x40 +#define IW_QUAL_QUAL_UPDATED 0x1 +#define IW_QUAL_LEVEL_UPDATED 0x2 +#define IW_QUAL_NOISE_UPDATED 0x4 +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9)) +#define MSECS(t) (HZ * ((t) / 1000) + (HZ * ((t) % 1000)) / 1000) +static inline unsigned long msleep_interruptible_rsl(unsigned int msecs) +{ + unsigned long timeout = MSECS(msecs) + 1; + + while (timeout) { + set_current_state(TASK_INTERRUPTIBLE); + timeout = schedule_timeout(timeout); + } + return timeout; +} + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,31)) +static inline void msleep(unsigned int msecs) +{ + unsigned long timeout = MSECS(msecs) + 1; + + while (timeout) { + set_current_state(TASK_UNINTERRUPTIBLE); + timeout = schedule_timeout(timeout); + } +} +#endif +#else +#define MSECS(t) msecs_to_jiffies(t) +#define msleep_interruptible_rsl msleep_interruptible +#endif + +#define RTLLIB_DATA_LEN 2304 +/* Maximum size for the MA-UNITDATA primitive, 802.11 standard section + 6.2.1.1.2. + + The figure in section 7.1.2 suggests a body size of up to 2312 + bytes is allowed, which is a bit confusing, I suspect this + represents the 2304 bytes of real data, plus a possible 8 bytes of + WEP IV and ICV. (this interpretation suggested by Ramiro Barreiro) */ +#define RTLLIB_1ADDR_LEN 10 +#define RTLLIB_2ADDR_LEN 16 +#define RTLLIB_3ADDR_LEN 24 +#define RTLLIB_4ADDR_LEN 30 +#define RTLLIB_FCS_LEN 4 +#define RTLLIB_HLEN (RTLLIB_4ADDR_LEN) +#define RTLLIB_FRAME_LEN (RTLLIB_DATA_LEN + RTLLIB_HLEN) +#define RTLLIB_MGMT_HDR_LEN 24 +#define RTLLIB_DATA_HDR3_LEN 24 +#define RTLLIB_DATA_HDR4_LEN 30 + +#define RTLLIB_SKBBUFFER_SIZE 2500 + +#define MIN_FRAG_THRESHOLD 256U +#define MAX_FRAG_THRESHOLD 2346U +#define MAX_HT_DATA_FRAG_THRESHOLD 0x2000 + +#define HT_AMSDU_SIZE_4K 3839 +#define HT_AMSDU_SIZE_8K 7935 + +/* Frame control field constants */ +#define RTLLIB_FCTL_VERS 0x0003 +#define RTLLIB_FCTL_FTYPE 0x000c +#define RTLLIB_FCTL_STYPE 0x00f0 +#define RTLLIB_FCTL_FRAMETYPE 0x00fc +#define RTLLIB_FCTL_TODS 0x0100 +#define RTLLIB_FCTL_FROMDS 0x0200 +#define RTLLIB_FCTL_DSTODS 0x0300 +#define RTLLIB_FCTL_MOREFRAGS 0x0400 +#define RTLLIB_FCTL_RETRY 0x0800 +#define RTLLIB_FCTL_PM 0x1000 +#define RTLLIB_FCTL_MOREDATA 0x2000 +#define RTLLIB_FCTL_WEP 0x4000 +#define RTLLIB_FCTL_ORDER 0x8000 + +#define RTLLIB_FTYPE_MGMT 0x0000 +#define RTLLIB_FTYPE_CTL 0x0004 +#define RTLLIB_FTYPE_DATA 0x0008 + +/* management */ +#define RTLLIB_STYPE_ASSOC_REQ 0x0000 +#define RTLLIB_STYPE_ASSOC_RESP 0x0010 +#define RTLLIB_STYPE_REASSOC_REQ 0x0020 +#define RTLLIB_STYPE_REASSOC_RESP 0x0030 +#define RTLLIB_STYPE_PROBE_REQ 0x0040 +#define RTLLIB_STYPE_PROBE_RESP 0x0050 +#define RTLLIB_STYPE_BEACON 0x0080 +#define RTLLIB_STYPE_ATIM 0x0090 +#define RTLLIB_STYPE_DISASSOC 0x00A0 +#define RTLLIB_STYPE_AUTH 0x00B0 +#define RTLLIB_STYPE_DEAUTH 0x00C0 +#define RTLLIB_STYPE_MANAGE_ACT 0x00D0 +#ifdef _RTL8192_EXT_PATCH_ +/* added for mesh action frame type */ +#ifdef COMPATIBLE_WITH_RALINK_MESH +#define RTLLIB_STYPE_MESH_ACT 0x00F0 +#else +#define RTLLIB_STYPE_MESH_ACT RTLLIB_STYPE_MANAGE_ACT +#endif +#endif + +/* control */ +#define RTLLIB_STYPE_PSPOLL 0x00A0 +#define RTLLIB_STYPE_RTS 0x00B0 +#define RTLLIB_STYPE_CTS 0x00C0 +#define RTLLIB_STYPE_ACK 0x00D0 +#define RTLLIB_STYPE_CFEND 0x00E0 +#define RTLLIB_STYPE_CFENDACK 0x00F0 +#define RTLLIB_STYPE_BLOCKACK 0x0094 + +/* data */ +#define RTLLIB_STYPE_DATA 0x0000 +#define RTLLIB_STYPE_DATA_CFACK 0x0010 +#define RTLLIB_STYPE_DATA_CFPOLL 0x0020 +#define RTLLIB_STYPE_DATA_CFACKPOLL 0x0030 +#define RTLLIB_STYPE_NULLFUNC 0x0040 +#define RTLLIB_STYPE_CFACK 0x0050 +#define RTLLIB_STYPE_CFPOLL 0x0060 +#define RTLLIB_STYPE_CFACKPOLL 0x0070 +#define RTLLIB_STYPE_QOS_DATA 0x0080 +#define RTLLIB_STYPE_QOS_NULL 0x00C0 + +#define RTLLIB_SCTL_FRAG 0x000F +#define RTLLIB_SCTL_SEQ 0xFFF0 + +/* QOS control */ +#define RTLLIB_QCTL_TID 0x000F + +#define FC_QOS_BIT BIT7 +#define IsDataFrame(pdu) ( ((pdu[0] & 0x0C)==0x08) ? true : false ) +#define IsLegacyDataFrame(pdu) (IsDataFrame(pdu) && (!(pdu[0]&FC_QOS_BIT)) ) +#define IsQoSDataFrame(pframe) ((*(u16*)pframe&(RTLLIB_STYPE_QOS_DATA|RTLLIB_FTYPE_DATA)) == (RTLLIB_STYPE_QOS_DATA|RTLLIB_FTYPE_DATA)) +#define Frame_Order(pframe) (*(u16*)pframe&RTLLIB_FCTL_ORDER) +#define SN_LESS(a, b) (((a-b)&0x800)!=0) +#define SN_EQUAL(a, b) (a == b) +#define MAX_DEV_ADDR_SIZE 8 + +typedef enum _ACT_CATEGORY{ + ACT_CAT_QOS = 1, + ACT_CAT_DLS = 2, + ACT_CAT_BA = 3, + ACT_CAT_HT = 7, + ACT_CAT_WMM = 17, +#ifdef _RTL8192_EXT_PATCH_ + ACT_CAT_MESH_PEERLINK_MGNT = 0x0f, + ACT_CAT_MESH_LINK_METRIC = 0x10, + ACT_CAT_MESH_PATH_SELECT = 0x11, + ACT_CAT_MESH_INTERWORKING = 0x12, + ACT_CAT_MESH_SECURITY_INFO = 35, +#endif +} ACT_CATEGORY, *PACT_CATEGORY; + +typedef enum _TS_ACTION{ + ACT_ADDTSREQ = 0, + ACT_ADDTSRSP = 1, + ACT_DELTS = 2, + ACT_SCHEDULE = 3, +} TS_ACTION, *PTS_ACTION; + +typedef enum _BA_ACTION{ + ACT_ADDBAREQ = 0, + ACT_ADDBARSP = 1, + ACT_DELBA = 2, +} BA_ACTION, *PBA_ACTION; +#ifdef _RTL8192_EXT_PATCH_ +typedef enum _PEERLINK_ACTION{ + ACT_PEERLINK_OPEN = 0, + ACT_PEERLINK_CONFIRM = 1, + ACT_PEERLINK_CLOSE =2, +} PEERLINK_ACTION, *PPEERLINK_ACTION; + +typedef enum _LINK_METRIC_ACTION{ + ACT_LINKMETRIC_REQ = 0, + ACT_LINKMETRIC_RSP = 1, +} LINK_METRIC_ACTION, *PLINK_METRIC_ACTION; + +typedef enum _PATH_SELECT_ACTION{ + ACT_PATH_REQ = 0, + ACT_PATH_REPLY = 1, + ACT_PATH_ERR =2, + ACT_RANN =3, +} PATH_SELECT_ACTION, *PPATH_SELECT_ACTION; + +typedef enum _MESH_PEERING_PROTOCOL_VERSION_VALUE{ + Mesh_Peering_Management_Protocol_V =42, + Abbreviated_Handshake_Protocol_V = 43, +}MESH_PEERING_PROTOCOL_VERSION_VALUE; +#endif + +typedef enum _InitialGainOpType{ + IG_Backup=0, + IG_Restore, + IG_Max +}InitialGainOpType; +typedef enum _LED_CTL_MODE{ + LED_CTL_POWER_ON = 1, + LED_CTL_LINK = 2, + LED_CTL_NO_LINK = 3, + LED_CTL_TX = 4, + LED_CTL_RX = 5, + LED_CTL_SITE_SURVEY = 6, + LED_CTL_POWER_OFF = 7, + LED_CTL_START_TO_LINK = 8, + LED_CTL_START_WPS = 9, + LED_CTL_STOP_WPS = 10, + LED_CTL_START_WPS_BOTTON = 11, + LED_CTL_STOP_WPS_FAIL = 12, + LED_CTL_STOP_WPS_FAIL_OVERLAP = 13, +}LED_CTL_MODE; + +typedef enum _RT_RF_TYPE_DEF +{ + RF_1T2R = 0, + RF_2T4R, + RF_2T2R, + RF_1T1R, + RF_2T2R_GREEN, + RF_819X_MAX_TYPE +}RT_RF_TYPE_DEF; + +typedef enum _WIRELESS_MODE { + WIRELESS_MODE_UNKNOWN = 0x00, + WIRELESS_MODE_A = 0x01, + WIRELESS_MODE_B = 0x02, + WIRELESS_MODE_G = 0x04, + WIRELESS_MODE_AUTO = 0x08, + WIRELESS_MODE_N_24G = 0x10, + WIRELESS_MODE_N_5G = 0x20 +} WIRELESS_MODE; + +typedef enum _NETWORK_TYPE{ + WIRELESS_11B = 1, + WIRELESS_11G = 2, + WIRELESS_11A = 4, + WIRELESS_11N = 8 +} WIRELESS_NETWORK_TYPE; + +#define OUI_SUBTYPE_WMM_INFO 0 +#define OUI_SUBTYPE_WMM_PARAM 1 +#define OUI_SUBTYPE_QOS_CAPABI 5 + +/* debug macros */ +#define CONFIG_RTLLIB_DEBUG +#ifdef CONFIG_RTLLIB_DEBUG +extern u32 rtllib_debug_level; +#define RTLLIB_DEBUG(level, fmt, args...) \ +do { if (rtllib_debug_level & (level)) \ + printk(KERN_DEBUG "rtllib: " fmt, ## args); } while (0) +#define RTLLIB_DEBUG_DATA(level, data, datalen) \ + do{ if ((rtllib_debug_level & (level)) == (level)) \ + { \ + int i; \ + u8* pdata = (u8*) data; \ + printk(KERN_DEBUG "rtllib: %s()\n", __FUNCTION__); \ + for(i=0; i<(int)(datalen); i++) \ + { \ + printk("%2.2x ", pdata[i]); \ + if ((i+1)%16 == 0) printk("\n"); \ + } \ + printk("\n"); \ + } \ + } while (0) +#else +#define RTLLIB_DEBUG(level, fmt, args...) do {} while (0) +#define RTLLIB_DEBUG_DATA(level, data, datalen) do {} while(0) +#endif /* CONFIG_RTLLIB_DEBUG */ + +/* debug macros not dependent on CONFIG_RTLLIB_DEBUG */ + +#define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x" +#define MAC_ARG(x) ((u8*)(x))[0],((u8*)(x))[1],((u8*)(x))[2],((u8*)(x))[3],((u8*)(x))[4],((u8*)(x))[5] + +/* + * To use the debug system; + * + * If you are defining a new debug classification, simply add it to the #define + * list here in the form of: + * + * #define RTLLIB_DL_xxxx VALUE + * + * shifting value to the left one bit from the previous entry. xxxx should be + * the name of the classification (for example, WEP) + * + * You then need to either add a RTLLIB_xxxx_DEBUG() macro definition for your + * classification, or use RTLLIB_DEBUG(RTLLIB_DL_xxxx, ...) whenever you want + * to send output to that classification. + * + * To add your debug level to the list of levels seen when you perform + * + * % cat /proc/net/ipw/debug_level + * + * you simply need to add your entry to the ipw_debug_levels array. + * + * If you do not see debug_level in /proc/net/ipw then you do not have + * CONFIG_RTLLIB_DEBUG defined in your kernel configuration + * + */ + +#define RTLLIB_DL_INFO (1<<0) +#define RTLLIB_DL_WX (1<<1) +#define RTLLIB_DL_SCAN (1<<2) +#define RTLLIB_DL_STATE (1<<3) +#define RTLLIB_DL_MGMT (1<<4) +#define RTLLIB_DL_FRAG (1<<5) +#define RTLLIB_DL_EAP (1<<6) +#define RTLLIB_DL_DROP (1<<7) + +#define RTLLIB_DL_TX (1<<8) +#define RTLLIB_DL_RX (1<<9) + +#define RTLLIB_DL_HT (1<<10) +#define RTLLIB_DL_BA (1<<11) +#define RTLLIB_DL_TS (1<<12) +#define RTLLIB_DL_QOS (1<<13) +#define RTLLIB_DL_REORDER (1<<14) +#define RTLLIB_DL_IOT (1<<15) +#define RTLLIB_DL_IPS (1<<16) +#define RTLLIB_DL_TRACE (1<<29) +#define RTLLIB_DL_DATA (1<<30) +#define RTLLIB_DL_ERR (1<<31) +#define RTLLIB_ERROR(f, a...) printk(KERN_ERR "rtllib: " f, ## a) +#define RTLLIB_WARNING(f, a...) printk(KERN_WARNING "rtllib: " f, ## a) +#define RTLLIB_DEBUG_INFO(f, a...) RTLLIB_DEBUG(RTLLIB_DL_INFO, f, ## a) + +#define RTLLIB_DEBUG_WX(f, a...) RTLLIB_DEBUG(RTLLIB_DL_WX, f, ## a) +#define RTLLIB_DEBUG_SCAN(f, a...) RTLLIB_DEBUG(RTLLIB_DL_SCAN, f, ## a) +#define RTLLIB_DEBUG_STATE(f, a...) RTLLIB_DEBUG(RTLLIB_DL_STATE, f, ## a) +#define RTLLIB_DEBUG_MGMT(f, a...) RTLLIB_DEBUG(RTLLIB_DL_MGMT, f, ## a) +#define RTLLIB_DEBUG_FRAG(f, a...) RTLLIB_DEBUG(RTLLIB_DL_FRAG, f, ## a) +#define RTLLIB_DEBUG_EAP(f, a...) RTLLIB_DEBUG(RTLLIB_DL_EAP, f, ## a) +#define RTLLIB_DEBUG_DROP(f, a...) RTLLIB_DEBUG(RTLLIB_DL_DROP, f, ## a) +#define RTLLIB_DEBUG_TX(f, a...) RTLLIB_DEBUG(RTLLIB_DL_TX, f, ## a) +#define RTLLIB_DEBUG_RX(f, a...) RTLLIB_DEBUG(RTLLIB_DL_RX, f, ## a) +#define RTLLIB_DEBUG_QOS(f, a...) RTLLIB_DEBUG(RTLLIB_DL_QOS, f, ## a) + +#ifdef CONFIG_RTLLIB_DEBUG +/* Added by Annie, 2005-11-22. */ +#define MAX_STR_LEN 64 +/* I want to see ASCII 33 to 126 only. Otherwise, I print '?'. Annie, 2005-11-22.*/ +#define PRINTABLE(_ch) (_ch>'!' && _ch<'~') +#define RTLLIB_PRINT_STR(_Comp, _TitleString, _Ptr, _Len) \ + if((_Comp) & level) \ + { \ + int __i; \ + u8 buffer[MAX_STR_LEN]; \ + int length = (_Len\n", _Len, buffer); \ + } +#else +#define RTLLIB_PRINT_STR(_Comp, _TitleString, _Ptr, _Len) do {} while (0) +#endif + +#ifndef ETH_P_PAE +#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */ +#define ETH_P_IP 0x0800 /* Internet Protocol packet */ +#define ETH_P_ARP 0x0806 /* Address Resolution packet */ +#endif /* ETH_P_PAE */ + +#define ETH_P_PREAUTH 0x88C7 /* IEEE 802.11i pre-authentication */ + +#ifndef ETH_P_80211_RAW +#define ETH_P_80211_RAW (ETH_P_ECONET + 1) +#endif + +/* IEEE 802.11 defines */ + +#define P80211_OUI_LEN 3 + +struct rtllib_snap_hdr { + + u8 dsap; /* always 0xAA */ + u8 ssap; /* always 0xAA */ + u8 ctrl; /* always 0x03 */ + u8 oui[P80211_OUI_LEN]; /* organizational universal id */ + +} __attribute__ ((packed)); + +enum _REG_PREAMBLE_MODE{ + PREAMBLE_LONG = 1, + PREAMBLE_AUTO = 2, + PREAMBLE_SHORT= 3, +}; + +#define SNAP_SIZE sizeof(struct rtllib_snap_hdr) + +#define WLAN_FC_GET_VERS(fc) ((fc) & RTLLIB_FCTL_VERS) +#define WLAN_FC_GET_TYPE(fc) ((fc) & RTLLIB_FCTL_FTYPE) +#define WLAN_FC_GET_STYPE(fc) ((fc) & RTLLIB_FCTL_STYPE) +#define WLAN_FC_MORE_DATA(fc) ((fc) & RTLLIB_FCTL_MOREDATA) + +#define WLAN_FC_GET_FRAMETYPE(fc) ((fc) & RTLLIB_FCTL_FRAMETYPE) +#define WLAN_GET_SEQ_FRAG(seq) ((seq) & RTLLIB_SCTL_FRAG) +#define WLAN_GET_SEQ_SEQ(seq) (((seq) & RTLLIB_SCTL_SEQ) >> 4) + +#ifndef CONFIG_CFG_80211 +/* Authentication algorithms */ +#define WLAN_AUTH_OPEN 0 +#define WLAN_AUTH_SHARED_KEY 1 +#define WLAN_AUTH_LEAP 128 + +#define WLAN_AUTH_CHALLENGE_LEN 128 + +#define WLAN_CAPABILITY_ESS (1<<0) +#define WLAN_CAPABILITY_IBSS (1<<1) +#define WLAN_CAPABILITY_CF_POLLABLE (1<<2) +#define WLAN_CAPABILITY_CF_POLL_REQUEST (1<<3) +#define WLAN_CAPABILITY_PRIVACY (1<<4) +#define WLAN_CAPABILITY_SHORT_PREAMBLE (1<<5) +#define WLAN_CAPABILITY_PBCC (1<<6) +#define WLAN_CAPABILITY_CHANNEL_AGILITY (1<<7) +#define WLAN_CAPABILITY_SPECTRUM_MGMT (1<<8) +#define WLAN_CAPABILITY_QOS (1<<9) +#define WLAN_CAPABILITY_SHORT_SLOT_TIME (1<<10) +#define WLAN_CAPABILITY_DSSS_OFDM (1<<13) + +/* 802.11g ERP information element */ +#define WLAN_ERP_NON_ERP_PRESENT (1<<0) +#define WLAN_ERP_USE_PROTECTION (1<<1) +#define WLAN_ERP_BARKER_PREAMBLE (1<<2) + +/* Status codes */ +enum rtllib_statuscode { + WLAN_STATUS_SUCCESS = 0, + WLAN_STATUS_UNSPECIFIED_FAILURE = 1, + WLAN_STATUS_CAPS_UNSUPPORTED = 10, + WLAN_STATUS_REASSOC_NO_ASSOC = 11, + WLAN_STATUS_ASSOC_DENIED_UNSPEC = 12, + WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG = 13, + WLAN_STATUS_UNKNOWN_AUTH_TRANSACTION = 14, + WLAN_STATUS_CHALLENGE_FAIL = 15, + WLAN_STATUS_AUTH_TIMEOUT = 16, + WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA = 17, + WLAN_STATUS_ASSOC_DENIED_RATES = 18, + /* 802.11b */ + WLAN_STATUS_ASSOC_DENIED_NOSHORTPREAMBLE = 19, + WLAN_STATUS_ASSOC_DENIED_NOPBCC = 20, + WLAN_STATUS_ASSOC_DENIED_NOAGILITY = 21, + /* 802.11h */ + WLAN_STATUS_ASSOC_DENIED_NOSPECTRUM = 22, + WLAN_STATUS_ASSOC_REJECTED_BAD_POWER = 23, + WLAN_STATUS_ASSOC_REJECTED_BAD_SUPP_CHAN = 24, + /* 802.11g */ + WLAN_STATUS_ASSOC_DENIED_NOSHORTTIME = 25, + WLAN_STATUS_ASSOC_DENIED_NODSSSOFDM = 26, + /* 802.11i */ + WLAN_STATUS_INVALID_IE = 40, + WLAN_STATUS_INVALID_GROUP_CIPHER = 41, + WLAN_STATUS_INVALID_PAIRWISE_CIPHER = 42, + WLAN_STATUS_INVALID_AKMP = 43, + WLAN_STATUS_UNSUPP_RSN_VERSION = 44, + WLAN_STATUS_INVALID_RSN_IE_CAP = 45, + WLAN_STATUS_CIPHER_SUITE_REJECTED = 46, +}; + +/* Reason codes */ +enum rtllib_reasoncode { + WLAN_REASON_UNSPECIFIED = 1, + WLAN_REASON_PREV_AUTH_NOT_VALID = 2, + WLAN_REASON_DEAUTH_LEAVING = 3, + WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY = 4, + WLAN_REASON_DISASSOC_AP_BUSY = 5, + WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA = 6, + WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA = 7, + WLAN_REASON_DISASSOC_STA_HAS_LEFT = 8, + WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH = 9, + /* 802.11h */ + WLAN_REASON_DISASSOC_BAD_POWER = 10, + WLAN_REASON_DISASSOC_BAD_SUPP_CHAN = 11, + /* 802.11i */ + WLAN_REASON_INVALID_IE = 13, + WLAN_REASON_MIC_FAILURE = 14, + WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT = 15, + WLAN_REASON_GROUP_KEY_HANDSHAKE_TIMEOUT = 16, + WLAN_REASON_IE_DIFFERENT = 17, + WLAN_REASON_INVALID_GROUP_CIPHER = 18, + WLAN_REASON_INVALID_PAIRWISE_CIPHER = 19, + WLAN_REASON_INVALID_AKMP = 20, + WLAN_REASON_UNSUPP_RSN_VERSION = 21, + WLAN_REASON_INVALID_RSN_IE_CAP = 22, + WLAN_REASON_IEEE8021X_FAILED = 23, + WLAN_REASON_CIPHER_SUITE_REJECTED = 24, +}; +#endif + +#define RTLLIB_STATMASK_SIGNAL (1<<0) +#define RTLLIB_STATMASK_RSSI (1<<1) +#define RTLLIB_STATMASK_NOISE (1<<2) +#define RTLLIB_STATMASK_RATE (1<<3) +#define RTLLIB_STATMASK_WEMASK 0x7 + +#define RTLLIB_CCK_MODULATION (1<<0) +#define RTLLIB_OFDM_MODULATION (1<<1) + +#define RTLLIB_24GHZ_BAND (1<<0) +#define RTLLIB_52GHZ_BAND (1<<1) + +#define RTLLIB_CCK_RATE_LEN 4 +#define RTLLIB_CCK_RATE_1MB 0x02 +#define RTLLIB_CCK_RATE_2MB 0x04 +#define RTLLIB_CCK_RATE_5MB 0x0B +#define RTLLIB_CCK_RATE_11MB 0x16 +#define RTLLIB_OFDM_RATE_LEN 8 +#define RTLLIB_OFDM_RATE_6MB 0x0C +#define RTLLIB_OFDM_RATE_9MB 0x12 +#define RTLLIB_OFDM_RATE_12MB 0x18 +#define RTLLIB_OFDM_RATE_18MB 0x24 +#define RTLLIB_OFDM_RATE_24MB 0x30 +#define RTLLIB_OFDM_RATE_36MB 0x48 +#define RTLLIB_OFDM_RATE_48MB 0x60 +#define RTLLIB_OFDM_RATE_54MB 0x6C +#define RTLLIB_BASIC_RATE_MASK 0x80 + +#define RTLLIB_CCK_RATE_1MB_MASK (1<<0) +#define RTLLIB_CCK_RATE_2MB_MASK (1<<1) +#define RTLLIB_CCK_RATE_5MB_MASK (1<<2) +#define RTLLIB_CCK_RATE_11MB_MASK (1<<3) +#define RTLLIB_OFDM_RATE_6MB_MASK (1<<4) +#define RTLLIB_OFDM_RATE_9MB_MASK (1<<5) +#define RTLLIB_OFDM_RATE_12MB_MASK (1<<6) +#define RTLLIB_OFDM_RATE_18MB_MASK (1<<7) +#define RTLLIB_OFDM_RATE_24MB_MASK (1<<8) +#define RTLLIB_OFDM_RATE_36MB_MASK (1<<9) +#define RTLLIB_OFDM_RATE_48MB_MASK (1<<10) +#define RTLLIB_OFDM_RATE_54MB_MASK (1<<11) + +#define RTLLIB_CCK_RATES_MASK 0x0000000F +#define RTLLIB_CCK_BASIC_RATES_MASK (RTLLIB_CCK_RATE_1MB_MASK | \ + RTLLIB_CCK_RATE_2MB_MASK) +#define RTLLIB_CCK_DEFAULT_RATES_MASK (RTLLIB_CCK_BASIC_RATES_MASK | \ + RTLLIB_CCK_RATE_5MB_MASK | \ + RTLLIB_CCK_RATE_11MB_MASK) + +#define RTLLIB_OFDM_RATES_MASK 0x00000FF0 +#define RTLLIB_OFDM_BASIC_RATES_MASK (RTLLIB_OFDM_RATE_6MB_MASK | \ + RTLLIB_OFDM_RATE_12MB_MASK | \ + RTLLIB_OFDM_RATE_24MB_MASK) +#define RTLLIB_OFDM_DEFAULT_RATES_MASK (RTLLIB_OFDM_BASIC_RATES_MASK | \ + RTLLIB_OFDM_RATE_9MB_MASK | \ + RTLLIB_OFDM_RATE_18MB_MASK | \ + RTLLIB_OFDM_RATE_36MB_MASK | \ + RTLLIB_OFDM_RATE_48MB_MASK | \ + RTLLIB_OFDM_RATE_54MB_MASK) +#define RTLLIB_DEFAULT_RATES_MASK (RTLLIB_OFDM_DEFAULT_RATES_MASK | \ + RTLLIB_CCK_DEFAULT_RATES_MASK) + +#define RTLLIB_NUM_OFDM_RATES 8 +#define RTLLIB_NUM_CCK_RATES 4 +#define RTLLIB_OFDM_SHIFT_MASK_A 4 + + +/* this is stolen and modified from the madwifi driver*/ +#define RTLLIB_FC0_TYPE_MASK 0x0c +#define RTLLIB_FC0_TYPE_DATA 0x08 +#define RTLLIB_FC0_SUBTYPE_MASK 0xB0 +#define RTLLIB_FC0_SUBTYPE_QOS 0x80 + +#define RTLLIB_QOS_HAS_SEQ(fc) \ + (((fc) & (RTLLIB_FC0_TYPE_MASK | RTLLIB_FC0_SUBTYPE_MASK)) == \ + (RTLLIB_FC0_TYPE_DATA | RTLLIB_FC0_SUBTYPE_QOS)) + +/* this is stolen from ipw2200 driver */ +#define IEEE_IBSS_MAC_HASH_SIZE 31 +struct ieee_ibss_seq { + u8 mac[ETH_ALEN]; + u16 seq_num[17]; + u16 frag_num[17]; + unsigned long packet_time[17]; + struct list_head list; +}; + +#ifdef _RTL8192_EXT_PATCH_ +struct ieee_mesh_seq { + u8 mac[ETH_ALEN]; + u16 seq_num[17]; + u16 frag_num[17]; + unsigned long packet_time[17]; + struct list_head list; +}; +#endif +/* NOTE: This data is for statistical purposes; not all hardware provides this + * information for frames received. Not setting these will not cause + * any adverse affects. */ +struct rtllib_rx_stats { +#if 1 + u32 mac_time[2]; + s8 rssi; + u8 signal; + u8 noise; + u16 rate; /* in 100 kbps */ + u8 received_channel; + u8 control; + u8 mask; + u8 freq; + u16 len; + u64 tsf; + u32 beacon_time; + u8 nic_type; + u16 Length; + u8 SignalQuality; + s32 RecvSignalPower; + s8 RxPower; + u8 SignalStrength; + u16 bHwError:1; + u16 bCRC:1; + u16 bICV:1; + u16 bShortPreamble:1; + u16 Antenna:1; + u16 Decrypted:1; + u16 Wakeup:1; + u16 Reserved0:1; + u8 AGC; + u32 TimeStampLow; + u32 TimeStampHigh; + bool bShift; + bool bIsQosData; + u8 UserPriority; + + u8 RxDrvInfoSize; + u8 RxBufShift; + bool bIsAMPDU; + bool bFirstMPDU; + bool bContainHTC; + bool RxIs40MHzPacket; + u32 RxPWDBAll; + u8 RxMIMOSignalStrength[4]; + s8 RxMIMOSignalQuality[2]; + bool bPacketMatchBSSID; + bool bIsCCK; + bool bPacketToSelf; + u8* virtual_address; + u16 packetlength; + u16 fraglength; + u16 fragoffset; + u16 ntotalfrag; + bool bisrxaggrsubframe; + bool bPacketBeacon; + bool bToSelfBA; + char cck_adc_pwdb[4]; + u16 Seq_Num; + u8 nTotalAggPkt; +#ifdef TCP_CSUM_OFFLOAD_RX + u8 tcp_csum_valid; +#endif +#if defined (RTL8192S_WAPI_SUPPORT) + u8 WapiTempPN[16]; + u8 WapiSrcAddr[6]; + u8 bWapiCheckPNInDecrypt; +#endif +#endif + +}; + +/* IEEE 802.11 requires that STA supports concurrent reception of at least + * three fragmented frames. This define can be increased to support more + * concurrent frames, but it should be noted that each entry can consume about + * 2 kB of RAM and increasing cache size will slow down frame reassembly. */ +#define RTLLIB_FRAG_CACHE_LEN 4 + +struct rtllib_frag_entry { + unsigned long first_frag_time; + unsigned int seq; + unsigned int last_frag; + struct sk_buff *skb; + u8 src_addr[ETH_ALEN]; + u8 dst_addr[ETH_ALEN]; +}; + +struct rtllib_stats { + unsigned int tx_unicast_frames; + unsigned int tx_multicast_frames; + unsigned int tx_fragments; + unsigned int tx_unicast_octets; + unsigned int tx_multicast_octets; + unsigned int tx_deferred_transmissions; + unsigned int tx_single_retry_frames; + unsigned int tx_multiple_retry_frames; + unsigned int tx_retry_limit_exceeded; + unsigned int tx_discards; + unsigned int rx_unicast_frames; + unsigned int rx_multicast_frames; + unsigned int rx_fragments; + unsigned int rx_unicast_octets; + unsigned int rx_multicast_octets; + unsigned int rx_fcs_errors; + unsigned int rx_discards_no_buffer; + unsigned int tx_discards_wrong_sa; + unsigned int rx_discards_undecryptable; + unsigned int rx_message_in_msg_fragments; + unsigned int rx_message_in_bad_msg_fragments; +}; + +struct rtllib_device; + +#include "rtllib_crypt.h" + +#define SEC_KEY_1 (1<<0) +#define SEC_KEY_2 (1<<1) +#define SEC_KEY_3 (1<<2) +#define SEC_KEY_4 (1<<3) +#define SEC_ACTIVE_KEY (1<<4) +#define SEC_AUTH_MODE (1<<5) +#define SEC_UNICAST_GROUP (1<<6) +#define SEC_LEVEL (1<<7) +#define SEC_ENABLED (1<<8) +#define SEC_ENCRYPT (1<<9) + +#define SEC_LEVEL_0 0 /* None */ +#define SEC_LEVEL_1 1 /* WEP 40 and 104 bit */ +#define SEC_LEVEL_2 2 /* Level 1 + TKIP */ +#define SEC_LEVEL_2_CKIP 3 /* Level 1 + CKIP */ +#define SEC_LEVEL_3 4 /* Level 2 + CCMP */ + +#define SEC_ALG_NONE 0 +#define SEC_ALG_WEP 1 +#define SEC_ALG_TKIP 2 +#define SEC_ALG_CCMP 4 + +#define WEP_KEYS 4 +#define WEP_KEY_LEN 13 +#define SCM_KEY_LEN 32 +#define SCM_TEMPORAL_KEY_LENGTH 16 + +struct rtllib_security { + u16 active_key:2, + enabled:1, + auth_mode:2, + auth_algo:4, + unicast_uses_group:1, + encrypt:1; + u8 key_sizes[WEP_KEYS]; + u8 keys[WEP_KEYS][SCM_KEY_LEN]; + u8 level; + u16 flags; +} __attribute__ ((packed)); + + +/* + 802.11 data frame from AP + ,-------------------------------------------------------------------. +Bytes | 2 | 2 | 6 | 6 | 6 | 2 | 0..2312 | 4 | + |------|------|---------|---------|---------|------|---------|------| +Desc. | ctrl | dura | DA/RA | TA | SA | Sequ | frame | fcs | + | | tion | (BSSID) | | | ence | data | | + `-------------------------------------------------------------------' +Total: 28-2340 bytes +*/ + +/* Management Frame Information Element Types */ +enum rtllib_mfie { + MFIE_TYPE_SSID = 0, + MFIE_TYPE_RATES = 1, + MFIE_TYPE_FH_SET = 2, + MFIE_TYPE_DS_SET = 3, + MFIE_TYPE_CF_SET = 4, + MFIE_TYPE_TIM = 5, + MFIE_TYPE_IBSS_SET = 6, + MFIE_TYPE_COUNTRY = 7, + MFIE_TYPE_HOP_PARAMS = 8, + MFIE_TYPE_HOP_TABLE = 9, + MFIE_TYPE_REQUEST = 10, + MFIE_TYPE_CHALLENGE = 16, + MFIE_TYPE_POWER_CONSTRAINT = 32, + MFIE_TYPE_POWER_CAPABILITY = 33, + MFIE_TYPE_TPC_REQUEST = 34, + MFIE_TYPE_TPC_REPORT = 35, + MFIE_TYPE_SUPP_CHANNELS = 36, + MFIE_TYPE_CSA = 37, + MFIE_TYPE_MEASURE_REQUEST = 38, + MFIE_TYPE_MEASURE_REPORT = 39, + MFIE_TYPE_QUIET = 40, + MFIE_TYPE_IBSS_DFS = 41, + MFIE_TYPE_ERP = 42, + MFIE_TYPE_HT_CAP= 45, + MFIE_TYPE_RSN = 48, + MFIE_TYPE_RATES_EX = 50, +#ifdef _RTL8192_EXT_PATCH_ + MFIE_TYPE_MESH_PANN = 51, + MFIE_TYPE_MESH_RANN = 52, + MFIE_TYPE_MESH_PATH_REQ = 138, + MFIE_TYPE_MESH_PATH_REP = 139, + MFIE_TYPE_MESH_PATH_ERR = 140, +#endif + MFIE_TYPE_HT_INFO= 61, +#if defined (RTL8192S_WAPI_SUPPORT) + MFIE_TYPE_WAPI = 68, +#endif + MFIE_TYPE_AIRONET=133, +#ifdef _RTL8192_EXT_PATCH_ + MFIE_TYPE_MESH_CONFIGURATION = 121, + MFIE_TYPE_MESH_ID = 122, + MFIE_TYPE_MESH_LOCAL_LINK_STATE_ANNOU = 138, + MFIE_TYPE_MESH_ABBR_HANDSHAKE_IE_ =139, + MFIE_TYPE_MESH_PEER_LINK_MGNT = 125, + MFIE_TYPE_MESH_NEIGHBOR_LIST = 142, + MFIE_TYPE_MESH_TIM = 143, + MFIE_TYPE_MESH_ATIM_WINDOW = 144, + MFIE_TYPE_MESH_BEACON_TIMING = 145, + MFIE_TYPE_MESH_MDAOP_ADVERTISMENTS = 148, + MFIE_TYPE_MESH_MSC = 149, + MFIE_TYPE_MESH_MSA = 150, + MFIE_TYPE_MESH_MOAOP_SET_TEARDOWN = 212, +#endif + MFIE_TYPE_GENERIC = 221, + MFIE_TYPE_QOS_PARAMETER = 222, +}; + +/* Minimal header; can be used for passing 802.11 frames with sufficient + * information to determine what type of underlying data type is actually + * stored in the data. */ +struct rtllib_pspoll_hdr { + __le16 frame_ctl; + __le16 aid; + u8 bssid[ETH_ALEN]; + u8 ta[ETH_ALEN]; +} __attribute__ ((packed)); + +struct rtllib_hdr { + __le16 frame_ctl; + __le16 duration_id; + u8 payload[0]; +} __attribute__ ((packed)); + +struct rtllib_hdr_1addr { + __le16 frame_ctl; + __le16 duration_id; + u8 addr1[ETH_ALEN]; + u8 payload[0]; +} __attribute__ ((packed)); + +struct rtllib_hdr_2addr { + __le16 frame_ctl; + __le16 duration_id; + u8 addr1[ETH_ALEN]; + u8 addr2[ETH_ALEN]; + u8 payload[0]; +} __attribute__ ((packed)); + +struct rtllib_hdr_3addr { + __le16 frame_ctl; + __le16 duration_id; + u8 addr1[ETH_ALEN]; + u8 addr2[ETH_ALEN]; + u8 addr3[ETH_ALEN]; + __le16 seq_ctl; + u8 payload[0]; +} __attribute__ ((packed)); + +struct rtllib_hdr_4addr { + __le16 frame_ctl; + __le16 duration_id; + u8 addr1[ETH_ALEN]; + u8 addr2[ETH_ALEN]; + u8 addr3[ETH_ALEN]; + __le16 seq_ctl; + u8 addr4[ETH_ALEN]; + u8 payload[0]; +} __attribute__ ((packed)); + +struct rtllib_hdr_3addrqos { + __le16 frame_ctl; + __le16 duration_id; + u8 addr1[ETH_ALEN]; + u8 addr2[ETH_ALEN]; + u8 addr3[ETH_ALEN]; + __le16 seq_ctl; + __le16 qos_ctl; + u8 payload[0]; +} __attribute__ ((packed)); + +struct rtllib_hdr_4addrqos { + __le16 frame_ctl; + __le16 duration_id; + u8 addr1[ETH_ALEN]; + u8 addr2[ETH_ALEN]; + u8 addr3[ETH_ALEN]; + __le16 seq_ctl; + u8 addr4[ETH_ALEN]; + __le16 qos_ctl; + u8 payload[0]; +} __attribute__ ((packed)); + +struct rtllib_info_element { + u8 id; + u8 len; + u8 data[0]; +} __attribute__ ((packed)); + +#ifdef _RTL8192_EXT_PATCH_ + +struct mesh_peering_protocol_version_t{ + u8 OUI[3]; + u8 value; +} __attribute__ ((packed)); +struct rtllib_plink_open { + struct rtllib_hdr_3addr header; + u8 category; + u8 action; +#ifndef COMPATIBLE_WITH_RALINK_MESH + struct mesh_peering_protocol_version_t mesh_peering_protocol_version; +#endif + __le16 capability; + /* SSID, supported rates, RSN */ + struct rtllib_info_element info_element[0]; +} __attribute__ ((packed)); + +struct rtllib_plink_confirm { + struct rtllib_hdr_3addr header; + u8 category; + u8 action; +#ifndef COMPATIBLE_WITH_RALINK_MESH + struct mesh_peering_protocol_version_t mesh_peering_protocol_version; +#endif + __le16 capability; +#ifdef COMPATIBLE_WITH_RALINK_MESH + __le16 status_code; +#endif + __le16 aid; + /* SSID, supported rates, RSN */ + struct rtllib_info_element info_element[0]; +} __attribute__ ((packed)); + +struct rtllib_plink_close { + struct rtllib_hdr_3addr header; + u8 category; + u8 action; +#ifndef COMPATIBLE_WITH_RALINK_MESH + struct mesh_peering_protocol_version_t mesh_peering_protocol_version; +#endif + /* SSID, supported rates, RSN */ + struct rtllib_info_element info_element[0]; +} __attribute__ ((packed)); + +struct rtllib_linkmetric_report { + struct rtllib_hdr_3addr header; + u8 category; + u8 action; + struct rtllib_info_element info_element[0]; +} __attribute__ ((packed)); + +struct rtllib_linkmetric_req { + struct rtllib_hdr_3addr header; + u8 category; + u8 action; +} __attribute__ ((packed)); +#endif + +struct rtllib_authentication { + struct rtllib_hdr_3addr header; + __le16 algorithm; + __le16 transaction; + __le16 status; + /*challenge*/ + struct rtllib_info_element info_element[0]; +} __attribute__ ((packed)); + +struct rtllib_disauth { + struct rtllib_hdr_3addr header; + __le16 reason; +} __attribute__ ((packed)); + +struct rtllib_disassoc { + struct rtllib_hdr_3addr header; + __le16 reason; +} __attribute__ ((packed)); + +struct rtllib_probe_request { + struct rtllib_hdr_3addr header; + /* SSID, supported rates */ + struct rtllib_info_element info_element[0]; +} __attribute__ ((packed)); + +struct rtllib_probe_response { + struct rtllib_hdr_3addr header; + u32 time_stamp[2]; + __le16 beacon_interval; + __le16 capability; + /* SSID, supported rates, FH params, DS params, + * CF params, IBSS params, TIM (if beacon), RSN */ + struct rtllib_info_element info_element[0]; +} __attribute__ ((packed)); + +/* Alias beacon for probe_response */ +#define rtllib_beacon rtllib_probe_response + +struct rtllib_assoc_request_frame { + struct rtllib_hdr_3addr header; + __le16 capability; + __le16 listen_interval; + /* SSID, supported rates, RSN */ + struct rtllib_info_element info_element[0]; +} __attribute__ ((packed)); + +struct rtllib_reassoc_request_frame { + struct rtllib_hdr_3addr header; + __le16 capability; + __le16 listen_interval; + u8 current_ap[ETH_ALEN]; + /* SSID, supported rates, RSN */ + struct rtllib_info_element info_element[0]; +} __attribute__ ((packed)); + +struct rtllib_assoc_response_frame { + struct rtllib_hdr_3addr header; + __le16 capability; + __le16 status; + __le16 aid; + struct rtllib_info_element info_element[0]; /* supported rates */ +} __attribute__ ((packed)); + +struct rtllib_txb { + u8 nr_frags; + u8 encrypted; + u8 queue_index; + u8 rts_included; + u16 reserved; + __le16 frag_size; + __le16 payload_size; + struct sk_buff *fragments[0]; +}; + +#define MAX_TX_AGG_COUNT 16 +struct rtllib_drv_agg_txb { + u8 nr_drv_agg_frames; + struct sk_buff *tx_agg_frames[MAX_TX_AGG_COUNT]; +}__attribute__((packed)); + +#define MAX_SUBFRAME_COUNT 64 +struct rtllib_rxb { + u8 nr_subframes; + struct sk_buff *subframes[MAX_SUBFRAME_COUNT]; + u8 dst[ETH_ALEN]; + u8 src[ETH_ALEN]; +#ifdef TCP_CSUM_OFFLOAD_RX + u8 tcp_csum_valid; +#endif +#if defined (RTL8192S_WAPI_SUPPORT) + u8 UserPriority; + u8 WapiTempPN[16]; + u8 WapiSrcAddr[6]; + u8 bWapiCheckPNInDecrypt; +#endif +}__attribute__((packed)); + +typedef union _frameqos { + u16 shortdata; + u8 chardata[2]; + struct { + u16 tid:4; + u16 eosp:1; + u16 ack_policy:2; + u16 reserved:1; + u16 txop:8; + }field; +}frameqos,*pframeqos; + +/* SWEEP TABLE ENTRIES NUMBER*/ +#define MAX_SWEEP_TAB_ENTRIES 42 +#define MAX_SWEEP_TAB_ENTRIES_PER_PACKET 7 +/* MAX_RATES_LENGTH needs to be 12. The spec says 8, and many APs + * only use 8, and then use extended rates for the remaining supported + * rates. Other APs, however, stick all of their supported rates on the + * main rates information element... */ +#define MAX_RATES_LENGTH ((u8)12) +#define MAX_RATES_EX_LENGTH ((u8)16) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) +#define MAX_NETWORK_COUNT 16 +#else +#define MAX_NETWORK_COUNT 96 +#endif + +#define MAX_CHANNEL_NUMBER 161 +#define RTLLIB_SOFTMAC_SCAN_TIME 100 +#define RTLLIB_SOFTMAC_ASSOC_RETRY_TIME (HZ * 2) + +#define CRC_LENGTH 4U + +#define MAX_WPA_IE_LEN 64 +#define MAX_WZC_IE_LEN 256 + +#define NETWORK_EMPTY_ESSID (1<<0) +#define NETWORK_HAS_OFDM (1<<1) +#define NETWORK_HAS_CCK (1<<2) + +/* QoS structure */ +#define NETWORK_HAS_QOS_PARAMETERS (1<<3) +#define NETWORK_HAS_QOS_INFORMATION (1<<4) +#define NETWORK_HAS_QOS_MASK (NETWORK_HAS_QOS_PARAMETERS | \ + NETWORK_HAS_QOS_INFORMATION) +/* 802.11h */ +#define NETWORK_HAS_POWER_CONSTRAINT (1<<5) +#define NETWORK_HAS_CSA (1<<6) +#define NETWORK_HAS_QUIET (1<<7) +#define NETWORK_HAS_IBSS_DFS (1<<8) +#define NETWORK_HAS_TPC_REPORT (1<<9) + +#define NETWORK_HAS_ERP_VALUE (1<<10) + +#define QOS_QUEUE_NUM 4 +#define QOS_OUI_LEN 3 +#define QOS_OUI_TYPE 2 +#define QOS_ELEMENT_ID 221 +#define QOS_OUI_INFO_SUB_TYPE 0 +#define QOS_OUI_PARAM_SUB_TYPE 1 +#define QOS_VERSION_1 1 +#define QOS_AIFSN_MIN_VALUE 2 +#if 1 +struct rtllib_qos_information_element { + u8 elementID; + u8 length; + u8 qui[QOS_OUI_LEN]; + u8 qui_type; + u8 qui_subtype; + u8 version; + u8 ac_info; +} __attribute__ ((packed)); + +struct rtllib_qos_ac_parameter { + u8 aci_aifsn; + u8 ecw_min_max; + __le16 tx_op_limit; +} __attribute__ ((packed)); + +struct rtllib_qos_parameter_info { + struct rtllib_qos_information_element info_element; + u8 reserved; + struct rtllib_qos_ac_parameter ac_params_record[QOS_QUEUE_NUM]; +} __attribute__ ((packed)); + +struct rtllib_qos_parameters { + __le16 cw_min[QOS_QUEUE_NUM]; + __le16 cw_max[QOS_QUEUE_NUM]; + u8 aifs[QOS_QUEUE_NUM]; + u8 flag[QOS_QUEUE_NUM]; + __le16 tx_op_limit[QOS_QUEUE_NUM]; +} __attribute__ ((packed)); + +struct rtllib_qos_data { + struct rtllib_qos_parameters parameters; + unsigned int wmm_acm; + int active; + int supported; + u8 param_count; + u8 old_param_count; +}; + +struct rtllib_tim_parameters { + u8 tim_count; + u8 tim_period; +} __attribute__ ((packed)); + +struct rtllib_wmm_ac_param { + u8 ac_aci_acm_aifsn; + u8 ac_ecwmin_ecwmax; + u16 ac_txop_limit; +}; + +struct rtllib_wmm_ts_info { + u8 ac_dir_tid; + u8 ac_up_psb; + u8 reserved; +} __attribute__ ((packed)); + +struct rtllib_wmm_tspec_elem { + struct rtllib_wmm_ts_info ts_info; + u16 norm_msdu_size; + u16 max_msdu_size; + u32 min_serv_inter; + u32 max_serv_inter; + u32 inact_inter; + u32 suspen_inter; + u32 serv_start_time; + u32 min_data_rate; + u32 mean_data_rate; + u32 peak_data_rate; + u32 max_burst_size; + u32 delay_bound; + u32 min_phy_rate; + u16 surp_band_allow; + u16 medium_time; +}__attribute__((packed)); +#endif +enum eap_type { + EAP_PACKET = 0, + EAPOL_START, + EAPOL_LOGOFF, + EAPOL_KEY, + EAPOL_ENCAP_ASF_ALERT +}; + +static const char *eap_types[] = { + [EAP_PACKET] = "EAP-Packet", + [EAPOL_START] = "EAPOL-Start", + [EAPOL_LOGOFF] = "EAPOL-Logoff", + [EAPOL_KEY] = "EAPOL-Key", + [EAPOL_ENCAP_ASF_ALERT] = "EAPOL-Encap-ASF-Alert" +}; + +static inline const char *eap_get_type(int type) +{ + return ((u32)type >= ARRAY_SIZE(eap_types)) ? "Unknown" : eap_types[type]; +} +static inline u8 Frame_QoSTID(u8* buf) +{ + struct rtllib_hdr_3addr *hdr; + u16 fc; + hdr = (struct rtllib_hdr_3addr *)buf; + fc = le16_to_cpu(hdr->frame_ctl); + return (u8)((frameqos*)(buf + (((fc & RTLLIB_FCTL_TODS)&&(fc & RTLLIB_FCTL_FROMDS))? 30 : 24)))->field.tid; +} + + +struct eapol { + u8 snap[6]; + u16 ethertype; + u8 version; + u8 type; + u16 length; +} __attribute__ ((packed)); + +struct rtllib_softmac_stats{ + unsigned int rx_ass_ok; + unsigned int rx_ass_err; + unsigned int rx_probe_rq; + unsigned int tx_probe_rs; + unsigned int tx_beacons; + unsigned int rx_auth_rq; + unsigned int rx_auth_rs_ok; + unsigned int rx_auth_rs_err; + unsigned int tx_auth_rq; + unsigned int no_auth_rs; + unsigned int no_ass_rs; + unsigned int tx_ass_rq; + unsigned int rx_ass_rq; + unsigned int tx_probe_rq; + unsigned int reassoc; + unsigned int swtxstop; + unsigned int swtxawake; + unsigned char CurrentShowTxate; + unsigned char last_packet_rate; + unsigned int txretrycount; +}; + +#define BEACON_PROBE_SSID_ID_POSITION 12 + +struct rtllib_info_element_hdr { + u8 id; + u8 len; +} __attribute__ ((packed)); + +/* + * These are the data types that can make up management packets + * + u16 auth_algorithm; + u16 auth_sequence; + u16 beacon_interval; + u16 capability; + u8 current_ap[ETH_ALEN]; + u16 listen_interval; + struct { + u16 association_id:14, reserved:2; + } __attribute__ ((packed)); + u32 time_stamp[2]; + u16 reason; + u16 status; +*/ + +#define RTLLIB_DEFAULT_TX_ESSID "Penguin" +#define RTLLIB_DEFAULT_BASIC_RATE 2 +#ifdef _RTL8192_EXT_PATCH_ +#define RTLLIB_DEFAULT_MESHID "CMPC-mesh" +#define RTLLIB_DEFAULT_MESH_CHAN 7 +#endif + +enum {WMM_all_frame, WMM_two_frame, WMM_four_frame, WMM_six_frame}; +#define MAX_SP_Len (WMM_all_frame << 4) +#define RTLLIB_QOS_TID 0x0f +#define QOS_CTL_NOTCONTAIN_ACK (0x01 << 5) +#define QOS_CTL_AMSDU_PRESENT (0x01 << 7) + +#define RTLLIB_DTIM_MBCAST 4 +#define RTLLIB_DTIM_UCAST 2 +#define RTLLIB_DTIM_VALID 1 +#define RTLLIB_DTIM_INVALID 0 + +#define RTLLIB_PS_DISABLED 0 +#define RTLLIB_PS_UNICAST RTLLIB_DTIM_UCAST +#define RTLLIB_PS_MBCAST RTLLIB_DTIM_MBCAST + +#ifdef WMM_Hang_8187 +#undef WMM_Hang_8187 +#endif + +#define WME_AC_BK 0x00 +#define WME_AC_BE 0x01 +#define WME_AC_VI 0x02 +#define WME_AC_VO 0x03 +#define WME_ACI_MASK 0x03 +#define WME_AIFSN_MASK 0x03 +#define WME_AC_PRAM_LEN 16 + +#define MAX_RECEIVE_BUFFER_SIZE 9100 + +#if 1 +#define UP2AC(up) ( \ + ((up) < 1) ? WME_AC_BE : \ + ((up) < 3) ? WME_AC_BK : \ + ((up) < 4) ? WME_AC_BE : \ + ((up) < 6) ? WME_AC_VI : \ + WME_AC_VO) +#endif +#define AC2UP(_ac) ( \ + ((_ac) == WME_AC_VO) ? 6 : \ + ((_ac) == WME_AC_VI) ? 5 : \ + ((_ac) == WME_AC_BK) ? 1 : \ + 0) + +#define ETHER_ADDR_LEN 6 /* length of an Ethernet address */ +#define ETHERNET_HEADER_SIZE 14 /* length of two Ethernet address plus ether type*/ + +struct ether_header { + u8 ether_dhost[ETHER_ADDR_LEN]; + u8 ether_shost[ETHER_ADDR_LEN]; + u16 ether_type; +} __attribute__((packed)); + +#ifndef ETHERTYPE_PAE +#define ETHERTYPE_PAE 0x888e /* EAPOL PAE/802.1x */ +#endif +#ifndef ETHERTYPE_IP +#define ETHERTYPE_IP 0x0800 /* IP protocol */ +#endif + + +typedef enum _erp_t{ + ERP_NonERPpresent = 0x01, + ERP_UseProtection = 0x02, + ERP_BarkerPreambleMode = 0x04, +} erp_t; + +#ifdef _RTL8192_EXT_PATCH_ +typedef struct _mesh_config_t { + u8 path_proto_id[4]; + u8 path_metric_id[4]; + u8 congest_ctl_mode[4]; + u8 mesh_capability[2]; +} mesh_config_t; +#define MESH_CONF_TOTAL_LEN 19 +#endif + +struct rtllib_network { + /* These entries are used to identify a unique network */ + u8 bssid[ETH_ALEN]; + u8 channel; + /* Ensure null-terminated for any debug msgs */ + u8 ssid[IW_ESSID_MAX_SIZE + 1]; + u8 ssid_len; + u8 hidden_ssid[IW_ESSID_MAX_SIZE + 1]; + u8 hidden_ssid_len; + struct rtllib_qos_data qos_data; + + bool bWithAironetIE; + bool bCkipSupported; + bool bCcxRmEnable; + u16 CcxRmState[2]; + bool bMBssidValid; + u8 MBssidMask; + u8 MBssid[6]; + bool bWithCcxVerNum; + u8 BssCcxVerNumber; + /* These are network statistics */ + struct rtllib_rx_stats stats; + u16 capability; + u8 rates[MAX_RATES_LENGTH]; + u8 rates_len; + u8 rates_ex[MAX_RATES_EX_LENGTH]; + u8 rates_ex_len; + unsigned long last_scanned; + u8 mode; + u32 flags; + u32 last_associate; + u32 time_stamp[2]; + u16 beacon_interval; + u16 listen_interval; + u16 atim_window; + u8 erp_value; + u8 wpa_ie[MAX_WPA_IE_LEN]; + size_t wpa_ie_len; + u8 rsn_ie[MAX_WPA_IE_LEN]; + size_t rsn_ie_len; +#if defined RTL8192S_WAPI_SUPPORT + u8 wapi_ie[MAX_WAPI_IE_LEN]; + size_t wapi_ie_len; +#endif +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + u8 wzc_ie[MAX_WZC_IE_LEN]; + size_t wzc_ie_len; +#endif + + struct rtllib_tim_parameters tim; + u8 dtim_period; + u8 dtim_data; + u32 last_dtim_sta_time[2]; + + u8 wmm_info; + struct rtllib_wmm_ac_param wmm_param[4]; +#ifdef THOMAS_TURBO + u8 Turbo_Enable; +#endif +#ifdef ENABLE_DOT11D + u16 CountryIeLen; + u8 CountryIeBuf[MAX_IE_LEN]; +#endif + BSS_HT bssht; + bool broadcom_cap_exist; + bool realtek_cap_exit; + bool marvell_cap_exist; + bool ralink_cap_exist; + bool atheros_cap_exist; + bool cisco_cap_exist; + bool airgo_cap_exist; + bool unknown_cap_exist; + bool berp_info_valid; + bool buseprotection; + bool bIsNetgear854T; + u8 SignalStrength; + u8 RSSI; +#ifdef _RTL8192_EXT_PATCH_ + u8 hostname[MAX_HOST_NAME_LENGTH]; + u8 hostname_len; + u8 mesh_id[MAX_MESH_ID_LEN]; + u8 mesh_id_len; + mesh_config_t mesh_config; + u8 mesh_config_len; + void *ext_entry; +#endif + + struct list_head list; +}; + +#if 1 +enum rtllib_state { + + /* the card is not linked at all */ + RTLLIB_NOLINK = 0, + + /* RTLLIB_ASSOCIATING* are for BSS client mode + * the driver shall not perform RX filtering unless + * the state is LINKED. + * The driver shall just check for the state LINKED and + * defaults to NOLINK for ALL the other states (including + * LINKED_SCANNING) + */ + + /* the association procedure will start (wq scheduling)*/ + RTLLIB_ASSOCIATING, + RTLLIB_ASSOCIATING_RETRY, + + /* the association procedure is sending AUTH request*/ + RTLLIB_ASSOCIATING_AUTHENTICATING, + + /* the association procedure has successfully authentcated + * and is sending association request + */ + RTLLIB_ASSOCIATING_AUTHENTICATED, + + /* the link is ok. the card associated to a BSS or linked + * to a ibss cell or acting as an AP and creating the bss + */ + RTLLIB_LINKED, + + /* same as LINKED, but the driver shall apply RX filter + * rules as we are in NO_LINK mode. As the card is still + * logically linked, but it is doing a syncro site survey + * then it will be back to LINKED state. + */ + RTLLIB_LINKED_SCANNING, +#ifdef _RTL8192_EXT_PATCH_ + RTLLIB_MESH_SCANNING, + RTLLIB_MESH_LINKED, +#endif +}; +#else +enum rtllib_state { + RTLLIB_UNINITIALIZED = 0, + RTLLIB_INITIALIZED, + RTLLIB_ASSOCIATING, + RTLLIB_ASSOCIATED, + RTLLIB_AUTHENTICATING, + RTLLIB_AUTHENTICATED, + RTLLIB_SHUTDOWN +}; +#endif + +#define DEFAULT_MAX_SCAN_AGE (15 * HZ) +#define DEFAULT_FTS 2346 + +#define CFG_RTLLIB_RESERVE_FCS (1<<0) +#define CFG_RTLLIB_COMPUTE_FCS (1<<1) +#define CFG_RTLLIB_RTS (1<<2) + +#define RTLLIB_24GHZ_MIN_CHANNEL 1 +#define RTLLIB_24GHZ_MAX_CHANNEL 14 +#define RTLLIB_24GHZ_CHANNELS (RTLLIB_24GHZ_MAX_CHANNEL - \ + RTLLIB_24GHZ_MIN_CHANNEL + 1) + +#define RTLLIB_52GHZ_MIN_CHANNEL 34 +#define RTLLIB_52GHZ_MAX_CHANNEL 165 +#define RTLLIB_52GHZ_CHANNELS (RTLLIB_52GHZ_MAX_CHANNEL - \ + RTLLIB_52GHZ_MIN_CHANNEL + 1) + +#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)) +extern inline int is_multicast_ether_addr(const u8 *addr) +{ + return ((addr[0] != 0xff) && (0x01 & addr[0])); +} +#endif + +#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,13)) +extern inline int is_broadcast_ether_addr(const u8 *addr) +{ + return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \ + (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff)); +} +#endif +#ifndef eqMacAddr +#define eqMacAddr(a,b) ( ((a)[0]==(b)[0] && (a)[1]==(b)[1] && (a)[2]==(b)[2] && (a)[3]==(b)[3] && (a)[4]==(b)[4] && (a)[5]==(b)[5]) ? 1:0 ) +#endif +typedef struct tx_pending_t{ + int frag; + struct rtllib_txb *txb; +}tx_pending_t; + +typedef struct _bandwidth_autoswitch +{ + long threshold_20Mhzto40Mhz; + long threshold_40Mhzto20Mhz; + bool bforced_tx20Mhz; + bool bautoswitch_enable; +}bandwidth_autoswitch,*pbandwidth_autoswitch; + + + +#define REORDER_WIN_SIZE 128 +#define REORDER_ENTRY_NUM 128 +typedef struct _RX_REORDER_ENTRY +{ + struct list_head List; + u16 SeqNum; + struct rtllib_rxb* prxb; +} RX_REORDER_ENTRY, *PRX_REORDER_ENTRY; +typedef enum _Fsync_State{ + Default_Fsync, + HW_Fsync, + SW_Fsync +}Fsync_State; + +typedef enum _RT_PS_MODE +{ + eActive, + eMaxPs, + eFastPs, + eAutoPs, +}RT_PS_MODE; + +typedef enum _IPS_CALLBACK_FUNCION +{ + IPS_CALLBACK_NONE = 0, + IPS_CALLBACK_MGNT_LINK_REQUEST = 1, + IPS_CALLBACK_JOIN_REQUEST = 2, +}IPS_CALLBACK_FUNCION; + +typedef enum _RT_JOIN_ACTION{ + RT_JOIN_INFRA = 1, + RT_JOIN_IBSS = 2, + RT_START_IBSS = 3, + RT_NO_ACTION = 4, +}RT_JOIN_ACTION; + +typedef struct _IbssParms{ + u16 atimWin; +}IbssParms, *PIbssParms; +#define MAX_NUM_RATES 264 + +typedef enum _RT_RF_POWER_STATE +{ + eRfOn, + eRfSleep, + eRfOff +}RT_RF_POWER_STATE; + +#define MAX_SUPPORT_WOL_PATTERN_NUM 8 + +#define MAX_WOL_BIT_MASK_SIZE 16 +#define MAX_WOL_PATTERN_SIZE 128 + +typedef enum _WOLPATTERN_TYPE +{ + eNetBIOS = 0, + eIPv4IPv6ARP, + eIPv4IPv6TCPSYN, + eMACIDOnly, + eNoDefined, +}WOLPATTERN_TYPE; + +typedef struct _RT_PM_WOL_PATTERN_INFO +{ + u32 PatternId; + u32 Mask[4]; + u16 CrcRemainder; + u8 WFMIndex; + WOLPATTERN_TYPE PatternType; +}RT_PM_WOL_PATTERN_INFO, *PRT_PM_WOL_PATTERN_INFO; + +typedef struct _RT_POWER_SAVE_CONTROL +{ + + bool bInactivePs; + bool bIPSModeBackup; + bool bHaltAdapterClkRQ; + bool bSwRfProcessing; + RT_RF_POWER_STATE eInactivePowerState; + work_struct_rsl InactivePsWorkItem; + struct timer_list InactivePsTimer; + + IPS_CALLBACK_FUNCION ReturnPoint; + + bool bTmpBssDesc; + RT_JOIN_ACTION tmpJoinAction; + struct rtllib_network tmpBssDesc; + + bool bTmpScanOnly; + bool bTmpActiveScan; + bool bTmpFilterHiddenAP; + bool bTmpUpdateParms; + u8 tmpSsidBuf[33]; + OCTET_STRING tmpSsid2Scan; + bool bTmpSsid2Scan; + u8 tmpNetworkType; + u8 tmpChannelNumber; + u16 tmpBcnPeriod; + u8 tmpDtimPeriod; + u16 tmpmCap; + OCTET_STRING tmpSuppRateSet; + u8 tmpSuppRateBuf[MAX_NUM_RATES]; + bool bTmpSuppRate; + IbssParms tmpIbpm; + bool bTmpIbpm; + + bool bLeisurePs; + u32 PowerProfile; + u8 LpsIdleCount; + u8 PowerMode; + u8 RegMaxLPSAwakeIntvl; + u8 LPSAwakeIntvl; + + u32 CurPsLevel; + u32 RegRfPsLevel; + + bool bFwCtrlLPS; + u8 FWCtrlPSMode; + + bool LinkReqInIPSRFOffPgs; + bool BufConnectinfoBefore; + + + bool bGpioRfSw; + + u8 RegAMDPciASPM; + + u8 oWLANMode; + RT_PM_WOL_PATTERN_INFO PmWoLPatternInfo[MAX_SUPPORT_WOL_PATTERN_NUM]; + +}RT_POWER_SAVE_CONTROL,*PRT_POWER_SAVE_CONTROL; + +typedef u32 RT_RF_CHANGE_SOURCE; +#define RF_CHANGE_BY_SW BIT31 +#define RF_CHANGE_BY_HW BIT30 +#define RF_CHANGE_BY_PS BIT29 +#define RF_CHANGE_BY_IPS BIT28 +#define RF_CHANGE_BY_INIT 0 + +typedef enum +{ + COUNTRY_CODE_FCC = 0, + COUNTRY_CODE_IC = 1, + COUNTRY_CODE_ETSI = 2, + COUNTRY_CODE_SPAIN = 3, + COUNTRY_CODE_FRANCE = 4, + COUNTRY_CODE_MKK = 5, + COUNTRY_CODE_MKK1 = 6, + COUNTRY_CODE_ISRAEL = 7, + COUNTRY_CODE_TELEC = 8, + COUNTRY_CODE_MIC = 9, + COUNTRY_CODE_GLOBAL_DOMAIN = 10, + COUNTRY_CODE_WORLD_WIDE_13 = 11, + COUNTRY_CODE_TELEC_NETGEAR = 12, + COUNTRY_CODE_MAX +}country_code_type_t; + +typedef enum _SCAN_OPERATION_BACKUP_OPT{ + SCAN_OPT_BACKUP=0, + SCAN_OPT_RESTORE, + SCAN_OPT_MAX +}SCAN_OPERATION_BACKUP_OPT; + +typedef enum _FW_CMD_IO_TYPE{ + FW_CMD_DIG_ENABLE = 0, + FW_CMD_DIG_DISABLE = 1, + FW_CMD_DIG_HALT = 2, + FW_CMD_DIG_RESUME = 3, + FW_CMD_HIGH_PWR_ENABLE = 4, + FW_CMD_HIGH_PWR_DISABLE = 5, + FW_CMD_RA_RESET = 6, + FW_CMD_RA_ACTIVE= 7, + FW_CMD_RA_REFRESH_N= 8, + FW_CMD_RA_REFRESH_BG= 9, + FW_CMD_RA_INIT= 10, + FW_CMD_IQK_INIT = 11, + FW_CMD_TXPWR_TRACK_ENABLE = 12, + FW_CMD_TXPWR_TRACK_DISABLE = 13, + FW_CMD_TXPWR_TRACK_THERMAL = 14, + FW_CMD_PAUSE_DM_BY_SCAN = 15, + FW_CMD_RESUME_DM_BY_SCAN = 16, + FW_CMD_RA_REFRESH_N_COMB = 17, + FW_CMD_RA_REFRESH_BG_COMB = 18, + FW_CMD_ANTENNA_SW_ENABLE = 19, + FW_CMD_ANTENNA_SW_DISABLE = 20, + FW_CMD_TX_FEEDBACK_CCX_ENABLE = 21, + FW_CMD_LPS_ENTER = 22, + FW_CMD_LPS_LEAVE = 23, + FW_CMD_DIG_MODE_SS = 24, + FW_CMD_DIG_MODE_FA = 25, + FW_CMD_ADD_A2_ENTRY = 26, + FW_CMD_CTRL_DM_BY_DRIVER = 27, + FW_CMD_CTRL_DM_BY_DRIVER_NEW = 28, + FW_CMD_PAPE_CONTROL = 29, +#ifdef CONFIG_FW_SETCHAN + FW_CMD_CHAN_SET = 30, +#else + FW_CMD_IQK_ENABLE = 30, +#endif +}FW_CMD_IO_TYPE,*PFW_CMD_IO_TYPE; + +#define RT_MAX_LD_SLOT_NUM 10 +typedef struct _RT_LINK_DETECT_T{ + + u32 NumRecvBcnInPeriod; + u32 NumRecvDataInPeriod; + + u32 RxBcnNum[RT_MAX_LD_SLOT_NUM]; + u32 RxDataNum[RT_MAX_LD_SLOT_NUM]; + u16 SlotNum; + u16 SlotIndex; + + u32 NumTxOkInPeriod; + u32 NumRxOkInPeriod; + u32 NumRxUnicastOkInPeriod; + bool bBusyTraffic; + bool bHigherBusyTraffic; + bool bHigherBusyRxTraffic; + u8 IdleCount; + u32 NumTxUnicastOkInPeriod; + u32 LastNumTxUnicast; + u32 LastNumRxUnicast; +}RT_LINK_DETECT_T, *PRT_LINK_DETECT_T; + +#ifdef _RTL8192_EXT_PATCH_ +struct rtllib_crypt_data_list{ + u8 used; + u8 mac_addr[ETH_ALEN]; + struct rtllib_crypt_data *crypt[WEP_KEYS]; +}__attribute__((packed)); + +typedef struct _SW_RATR_TABLE{ + bool bused; + u32 ratr_value; +}SW_RATR_TABLE, *PSW_RATR_TABLE; +#endif + +typedef struct _SW_CAM_TABLE{ + + u8 macaddr[6]; + bool bused; + u8 key_buf[16]; + u16 key_type; + u8 useDK; + u8 key_index; + +}SW_CAM_TABLE,*PSW_CAM_TABLE; +#define TOTAL_CAM_ENTRY 32 +typedef struct _rate_adaptive +{ + u8 rate_adaptive_disabled; + u8 ratr_state; + u16 reserve; + + u32 high_rssi_thresh_for_ra; + u32 high2low_rssi_thresh_for_ra; + u8 low2high_rssi_thresh_for_ra40M; + u32 low_rssi_thresh_for_ra40M; + u8 low2high_rssi_thresh_for_ra20M; + u32 low_rssi_thresh_for_ra20M; + u32 upper_rssi_threshold_ratr; + u32 MiddleUpperRSSIThresholdRATR; + u32 middle_rssi_threshold_ratr; + u32 MiddleLowRSSIThresholdRATR; + u32 low_rssi_threshold_ratr; + u32 UltraLowRSSIThresholdRATR; + u32 low_rssi_threshold_ratr_40M; + u32 low_rssi_threshold_ratr_20M; + u8 ping_rssi_enable; + u32 ping_rssi_ratr; + u32 ping_rssi_thresh_for_ra; + u32 last_ratr; + u8 PreRATRState; + +} rate_adaptive, *prate_adaptive; +typedef enum _RATR_TABLE_MODE_8192S{ + RATR_INX_WIRELESS_NGB = 0, + RATR_INX_WIRELESS_NG = 1, + RATR_INX_WIRELESS_NB = 2, + RATR_INX_WIRELESS_N = 3, + RATR_INX_WIRELESS_GB = 4, + RATR_INX_WIRELESS_G = 5, + RATR_INX_WIRELESS_B = 6, + RATR_INX_WIRELESS_MC = 7, + RATR_INX_WIRELESS_A = 8, +}RATR_TABLE_MODE_8192S, *PRATR_TABLE_MODE_8192S; + +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) || defined RTL8192CE +#define PEER_MAX_ASSOC 10 +typedef struct _RSSI_STA{ + long UndecoratedSmoothedPWDB; +}RSSI_STA, *PRSSI_STA; + +struct sta_info { + u8 macaddr[ETH_ALEN]; + u16 aid; + u8 authentication; + u8 encryption; + u16 capability; + u8 ratr_index; + int wireless_mode; + RT_HTINFO_STA_ENTRY htinfo; + u8 wme_enable; + u32 CurDataRate; + RSSI_STA rssi_stat; + rate_adaptive rate_adaptive; + u8 bPowerSave; + struct sk_buff_head PsQueue; + u32 LastActiveTime; + u16 StaDataRate; + u32 StaSS; + u16 RetryFrameCnt; + u16 LastRetryCnt; + u16 NoRetryFrameCnt; + u16 LastNoRetryCnt; + int AvgRetryRate; + int LastRetryRate; + u8 txRateIndex; + u16 APDataRate; + u16 ForcedDataRate; +} __attribute__ ((packed)); +#endif +#ifdef _RTL8192_EXT_PATCH_ +typedef struct _RT_PEERMP_HTINFO{ + u8 bEnableHT; + u8 bCurrentHTSupport; + + u8 bRegBW40MHz; + u8 bCurBW40MHz; + + u8 bRegShortGI40MHz; + u8 bCurShortGI40MHz; + + u8 bRegShortGI20MHz; + u8 bCurShortGI20MHz; + + u8 bCurSuppCCK; + + + + + u8 PeerHTCapBuf[32]; + u8 PeerHTInfoBuf[32]; + + + u8 bAMSDU_Support; + u16 nAMSDU_MaxSize; + u8 bCurrent_Mesh_AMSDU_Support; + + + u8 bAMPDUEnable; + u8 bCurrentMeshAMPDUEnable; + u8 AMPDU_Factor; + u8 CurrentAMPDUFactor; + u8 MPDU_Density; + u8 CurrentMPDUDensity; + + u8 ForcedAMPDUFactor; + u8 ForcedMPDUDensity; + + HT_AGGRE_MODE_E ForcedAMSDUMode; + u16 ForcedAMSDUMaxSize; + + u8 bForcedShortGI; + + u8 CurrentOpMode; + + u8 MimoPs; + + HT_EXTCHNL_OFFSET CurSTAExtChnlOffset; + u8 bCurTxBW40MHz; + u8 PeerBandwidth; + + u8 bSwBwInProgress; + CHNLOP ChnlOp; + u8 SwBwStep; + + u8 bRegRT2RTAggregation; + u8 bCurrentRT2RTAggregation; + u8 bCurrentRT2RTLongSlotTime; + u8 szRT2RTAggBuffer[10]; + + u8 bRegRxReorderEnable; + u8 bCurRxReorderEnable; + u8 RxReorderWinSize; + u8 RxReorderPendingTime; + u16 RxReorderDropCounter; + +#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE + u8 UsbTxAggrNum; +#endif +#ifdef USB_RX_AGGREGATION_SUPPORT + u8 UsbRxFwAggrEn; + u8 UsbRxFwAggrPageNum; + u8 UsbRxFwAggrPacketNum; + u8 UsbRxFwAggrTimeout; +#endif + + u8 bIsPeerBcm; + + u8 McsRateSet[16]; + u8 HTHighestOperaRate; + u8 IOTPeer; + u32 IOTAction; +} __attribute__ ((packed)) peerMP_htinfo, *ppeerMP_htinfo; +#endif + +#define NUM_PMKID_CACHE 16 +typedef struct _RT_PMKID_LIST +{ + u8 bUsed; + u8 Bssid[6]; + u8 PMKID[16]; + u8 SsidBuf[33]; + u8* ssid_octet; + u16 ssid_length; +} RT_PMKID_LIST, *PRT_PMKID_LIST; + +#ifdef CONFIG_CFG_80211 +enum { + LIBIPW_CH_PASSIVE_ONLY = (1 << 0), + LIBIPW_CH_80211H_RULES = (1 << 1), + LIBIPW_CH_B_ONLY = (1 << 2), + LIBIPW_CH_NO_IBSS = (1 << 3), + LIBIPW_CH_UNIFORM_SPREADING = (1 << 4), + LIBIPW_CH_RADAR_DETECT = (1 << 5), + LIBIPW_CH_INVALID = (1 << 6), +}; +struct rtllib_channel { + u32 freq; + u8 channel; + u8 flags; + u8 max_power; +}; + +#define RTLLIB_24GHZ_MIN_CHANNEL 1 +#define RTLLIB_24GHZ_MAX_CHANNEL 14 +#define RTLLIB_24GHZ_CHANNELS (RTLLIB_24GHZ_MAX_CHANNEL - \ + RTLLIB_24GHZ_MIN_CHANNEL + 1) + +struct reg_dmn_pair_mapping { + u16 regDmnEnum; + u16 reg_5ghz_ctl; + u16 reg_2ghz_ctl; +}; + +struct rtl_regulatory { + char alpha2[2]; + u16 country_code; + u16 max_power_level; + u32 tp_scale; + u16 current_rd; + u16 current_rd_ext; + int16_t power_limit; + struct reg_dmn_pair_mapping *regpair; +}; + +struct ieee80211_bss { + /* Yes, this is a hack */ + struct cfg80211_bss cbss; + + /* don't want to look up all the time */ + size_t ssid_len; + u8 ssid[IEEE80211_MAX_SSID_LEN]; + + u8 dtim_period; + + bool wmm_used; + + unsigned long last_probe_resp; + +#ifdef CONFIG_MAC80211_MESH + u8 *mesh_id; + size_t mesh_id_len; + u8 *mesh_cfg; +#endif + + #define IEEE80211_MAX_SUPP_RATES 32 + u8 supp_rates[IEEE80211_MAX_SUPP_RATES]; + size_t supp_rates_len; + + /* + * During assocation, we save an ERP value from a probe response so + * that we can feed ERP info to the driver when handling the + * association completes. these fields probably won't be up-to-date + * otherwise, you probably don't want to use them. + */ + bool has_erp_value; + u8 erp_value; +}; + +/* Parsed Information Elements */ +struct ieee802_11_elems { + u8 *ie_start; + size_t total_len; + + /* pointers to IEs */ + u8 *ssid; + u8 *supp_rates; + u8 *fh_params; + u8 *ds_params; + u8 *cf_params; + struct ieee80211_tim_ie *tim; + u8 *ibss_params; + u8 *challenge; + u8 *wpa; + u8 *rsn; + u8 *erp_info; + u8 *ext_supp_rates; + u8 *wmm_info; + u8 *wmm_param; + struct ieee80211_ht_cap *ht_cap_elem; + struct ieee80211_ht_info *ht_info_elem; + u8 *mesh_config; + u8 *mesh_id; + u8 *peer_link; + u8 *preq; + u8 *prep; + u8 *perr; + u8 *ch_switch_elem; + u8 *country_elem; + u8 *pwr_constr_elem; + u8 *quiet_elem; /* first quite element */ + u8 *timeout_int; + + /* length of them, respectively */ + u8 ssid_len; + u8 supp_rates_len; + u8 fh_params_len; + u8 ds_params_len; + u8 cf_params_len; + u8 tim_len; + u8 ibss_params_len; + u8 challenge_len; + u8 wpa_len; + u8 rsn_len; + u8 erp_info_len; + u8 ext_supp_rates_len; + u8 wmm_info_len; + u8 wmm_param_len; + u8 mesh_config_len; + u8 mesh_id_len; + u8 peer_link_len; + u8 preq_len; + u8 prep_len; + u8 perr_len; + u8 ch_switch_elem_len; + u8 country_elem_len; + u8 pwr_constr_elem_len; + u8 quiet_elem_len; + u8 num_of_quiet_elem; /* can be more the one */ + u8 timeout_int_len; +}; + +#endif + + +typedef struct _RT_INTEL_PROMISCUOUS_MODE_INFO { + bool bPromiscuousOn; + bool bFilterSourceStationFrame; +} RT_INTEL_PROMISCUOUS_MODE_INFO, *PRT_INTEL_PROMISCUOUS_MODE_INFO; + +typedef struct _WIRELESS_SETTING_BEFORE_SCAN +{ + /*WirelessModeScanInProgress is designed for driver to keep the previous band(2.4G/5G) + during scan. It is only meaningful for a/b/g device which require to switch band twice + during scan (either 2.4->5->2.4 or 5->2.4->5*/ + WIRELESS_MODE WirelessModeScanInProgress; + + /*WirelessMode is designed to keep the original wireless mode setting before scan*/ + WIRELESS_MODE WirelessMode; + + /*ChannelNumber is designd to keep the original channel number before scan*/ + u8 ChannelNumber; + + /*ChannelBandwidth is designed to keep the original channel bandwidth(20/40MHz) before scan*/ + HT_CHANNEL_WIDTH ChannelBandwidth; + + /* Extension channel offset before scan. This is useful when channel bandwidth is 40MHz. */ + HT_EXTCHNL_OFFSET ExtChnlOffset; +}WIRELESS_SETTING_BEFORE_SCAN, *PWIRELESS_SETTING_BEFORE_SCAN; + + +/*************** DRIVER STATUS *****/ +#define STATUS_SCANNING 0 +#define STATUS_SCAN_HW 1 +#define STATUS_SCAN_ABORTING 2 +#define STATUS_SETTING_CHAN 3 +/*************** DRIVER STATUS *****/ + +enum { + NO_USE = 0, + USED = 1, + HW_SEC = 2, + SW_SEC = 3, +}; + +enum { + LPS_IS_WAKE = 0, + LPS_IS_SLEEP = 1, + LPS_WAIT_NULL_DATA_SEND =2, +}; + +struct rtllib_device { + struct pci_dev *pdev; + struct net_device *dev; + struct rtllib_security sec; + + bool disable_mgnt_queue; + + unsigned long status; + short hwscan_ch_bk; + HT_EXTCHNL_OFFSET chan_offset_bk; + HT_CHANNEL_WIDTH bandwidth_bk; + u8 hwscan_sem_up; +#ifdef CONFIG_CFG_80211 + struct wireless_dev wdev; + struct rtl_regulatory regulatory; +#endif + u8 CntAfterLink; + + RT_OP_MODE OpMode; + WIRELESS_SETTING_BEFORE_SCAN SettingBeforeScan; + + u8 VersionID; + /* The last AssocReq/Resp IEs */ + u8 *assocreq_ies, *assocresp_ies; + size_t assocreq_ies_len, assocresp_ies_len; + + bool b_customer_lenovo_id; + bool bForcedShowRxRate; + bool bForcedShowRateStill; + u8 SystemQueryDataRateCount; + bool bForcedBgMode; + bool bUseRAMask; + bool b1x1RecvCombine; + u8 RF_Type; + bool b1SSSupport; + + u8 hwsec_active; + bool is_silent_reset; + bool force_mic_error; + bool is_roaming; + bool ieee_up; + bool cannot_notify; + bool bSupportRemoteWakeUp; + RT_PS_MODE dot11PowerSaveMode; + bool actscanning; + bool FirstIe_InScan; + bool be_scan_inprogress; + bool beinretry; + RT_RF_POWER_STATE eRFPowerState; + RT_RF_CHANGE_SOURCE RfOffReason; + bool is_set_key; + bool wx_set_enc; +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) || defined RTL8192CE + struct sta_info *peer_assoc_list[PEER_MAX_ASSOC]; + u8 AvailableAIDTable[PEER_MAX_ASSOC]; + atomic_t AsocEntryNum; + u64 CurrTsf; + u64 TargetTsf; + u64 bdTstamp; + bool Peer_bCurBW40M; +#endif + PRT_HIGH_THROUGHPUT pHTInfo; + spinlock_t bw_spinlock; + + spinlock_t reorder_spinlock; + u8 Regdot11HTOperationalRateSet[16]; + u8 Regdot11TxHTOperationalRateSet[16]; + u8 dot11HTOperationalRateSet[16]; + u8 RegHTSuppRateSet[16]; + u8 HTCurrentOperaRate; + u8 HTHighestOperaRate; + u8 MinSpaceCfg; + u8 MaxMssDensity; + u8 bTxDisableRateFallBack; + u8 bTxUseDriverAssingedRate; + u8 bTxEnableFwCalcDur; + atomic_t atm_chnlop; + atomic_t atm_swbw; + + struct list_head Tx_TS_Admit_List; + struct list_head Tx_TS_Pending_List; + struct list_head Tx_TS_Unused_List; + TX_TS_RECORD TxTsRecord[TOTAL_TS_NUM]; + struct list_head Rx_TS_Admit_List; + struct list_head Rx_TS_Pending_List; + struct list_head Rx_TS_Unused_List; + RX_TS_RECORD RxTsRecord[TOTAL_TS_NUM]; + RX_REORDER_ENTRY RxReorderEntry[128]; + struct list_head RxReorder_Unused_List; + u8 ForcedPriority; + + + /* Bookkeeping structures */ + struct net_device_stats stats; + struct rtllib_stats ieee_stats; + struct rtllib_softmac_stats softmac_stats; + + /* Probe / Beacon management */ + struct list_head network_free_list; + struct list_head network_list; +#ifdef RTL8192U + struct list_head network_bssid_free_list; + struct list_head network_bssid_list; +#endif + struct rtllib_network *networks; + int scans; + int scan_age; + + int iw_mode; /* operating mode (IW_MODE_*) */ + bool bNetPromiscuousMode; + RT_INTEL_PROMISCUOUS_MODE_INFO IntelPromiscuousModeInfo; + + struct iw_spy_data spy_data; + + spinlock_t lock; + spinlock_t wpax_suitlist_lock; + + int tx_headroom; /* Set to size of any additional room needed at front + * of allocated Tx SKBs */ + u32 config; + + /* WEP and other encryption related settings at the device level */ + int open_wep; /* Set to 1 to allow unencrypted frames */ + int auth_mode; + int reset_on_keychange; /* Set to 1 if the HW needs to be reset on + * WEP key changes */ + + /* If the host performs {en,de}cryption, then set to 1 */ + int host_encrypt; + int host_encrypt_msdu; + int host_decrypt; + /* host performs multicast decryption */ + int host_mc_decrypt; + + /* host should strip IV and ICV from protected frames */ + /* meaningful only when hardware decryption is being used */ + int host_strip_iv_icv; + + int host_open_frag; + int host_build_iv; + int ieee802_1x; /* is IEEE 802.1X used */ + + /* WPA data */ + bool bHalfNMode; + bool bHalfWirelessN24GMode; + int wpa_enabled; + int drop_unencrypted; + int tkip_countermeasures; + int privacy_invoked; + size_t wpa_ie_len; + u8 *wpa_ie; + size_t wps_ie_len; + u8 *wps_ie; + u8 ap_mac_addr[6]; + u16 pairwise_key_type; + u16 group_key_type; + struct list_head crypt_deinit_list; +#ifdef _RTL8192_EXT_PATCH_ + struct rtllib_crypt_data_list* cryptlist[MAX_MP]; + struct rtllib_crypt_data *sta_crypt[WEP_KEYS]; +#else + struct rtllib_crypt_data *crypt[WEP_KEYS]; +#endif + + int tx_keyidx; /* default TX key index (crypt[tx_keyidx]) */ + SW_CAM_TABLE swcamtable[TOTAL_CAM_ENTRY]; + struct timer_list crypt_deinit_timer; + int crypt_quiesced; + + int bcrx_sta_key; /* use individual keys to override default keys even + * with RX of broad/multicast frames */ + + RT_PMKID_LIST PMKIDList[NUM_PMKID_CACHE]; + + /* Fragmentation structures */ + struct rtllib_frag_entry frag_cache[17][RTLLIB_FRAG_CACHE_LEN]; + unsigned int frag_next_idx[17]; + u16 fts; /* Fragmentation Threshold */ +#define DEFAULT_RTS_THRESHOLD 2346U +#define MIN_RTS_THRESHOLD 1 +#define MAX_RTS_THRESHOLD 2346U + u16 rts; /* RTS threshold */ + + /* Association info */ + u8 bssid[ETH_ALEN]; + + /* This stores infos for the current network. + * Either the network we are associated in INFRASTRUCTURE + * or the network that we are creating in MASTER mode. + * ad-hoc is a mixture ;-). + * Note that in infrastructure mode, even when not associated, + * fields bssid and essid may be valid (if wpa_set and essid_set + * are true) as thy carry the value set by the user via iwconfig + */ + struct rtllib_network current_network; + + enum rtllib_state state; + + int short_slot; + int reg_mode; + int mode; /* A, B, G */ + int modulation; /* CCK, OFDM */ + int freq_band; /* 2.4Ghz, 5.2Ghz, Mixed */ + int abg_true; /* ABG flag */ + + /* used for forcing the ibss workqueue to terminate + * without wait for the syncro scan to terminate + */ + short sync_scan_hurryup; + u16 scan_watch_dog; + int perfect_rssi; + int worst_rssi; + + u16 prev_seq_ctl; /* used to drop duplicate frames */ + + /* map of allowed channels. 0 is dummy */ +#ifdef ENABLE_DOT11D + void* pDot11dInfo; + bool bGlobalDomain; +#else + u8 channel_map[MAX_CHANNEL_NUMBER+1]; +#endif + u8 active_channel_map[MAX_CHANNEL_NUMBER+1]; + + u8 IbssStartChnl; + u8 ibss_maxjoin_chal; + +#ifdef _RTL8192_EXT_PATCH_ + u8 backup_channel; +#endif + bool bUseProtection; + + int rate; /* current rate */ + int basic_rate; + u32 currentRate; + + short active_scan; + + /* this contains flags for selectively enable softmac support */ + u16 softmac_features; + + /* if the sequence control field is not filled by HW */ + u16 seq_ctrl[5]; + + /* association procedure transaction sequence number */ + u16 associate_seq; + + /* AID for RTXed association responses */ + u16 assoc_id; + + /* power save mode related*/ + u8 ack_tx_to_ieee; + short ps; + short sta_sleep; + int ps_timeout; + int ps_period; + struct tasklet_struct ps_task; + u32 ps_th; + u32 ps_tl; + bool polling; + + short raw_tx; + /* used if IEEE_SOFTMAC_TX_QUEUE is set */ + short queue_stop; + short scanning_continue ; + short proto_started; + short proto_stoppping; + + struct semaphore wx_sem; + struct semaphore scan_sem; + struct semaphore ips_sem; + + spinlock_t mgmt_tx_lock; + spinlock_t beacon_lock; + + short beacon_txing; + + short wap_set; + short ssid_set; + + /* set on initialization */ + u8 qos_support; + unsigned int wmm_acm; + + /* for discarding duplicated packets in IBSS */ + struct list_head ibss_mac_hash[IEEE_IBSS_MAC_HASH_SIZE]; + + /* for discarding duplicated packets in BSS */ + u16 last_rxseq_num[17]; /* rx seq previous per-tid */ + u16 last_rxfrag_num[17];/* tx frag previous per-tid */ + unsigned long last_packet_time[17]; + + /* for PS mode */ + unsigned long last_rx_ps_time; + bool bAwakePktSent; + u8 LPSDelayCnt; + + /* used if IEEE_SOFTMAC_SINGLE_QUEUE is set */ + struct sk_buff *mgmt_queue_ring[MGMT_QUEUE_NUM]; + int mgmt_queue_head; + int mgmt_queue_tail; +#define RTLLIB_QUEUE_LIMIT 128 + u8 AsocRetryCount; + unsigned int hw_header; + struct sk_buff_head skb_waitQ[MAX_QUEUE_SIZE]; + struct sk_buff_head skb_aggQ[MAX_QUEUE_SIZE]; + struct sk_buff_head skb_drv_aggQ[MAX_QUEUE_SIZE]; + u32 sta_edca_param[4]; + bool aggregation; + bool enable_rx_imm_BA; + bool bibsscoordinator; + + bool bdynamic_txpower_enable; + + bool bCTSToSelfEnable; + u8 CTSToSelfTH; + + u32 fsync_time_interval; + u32 fsync_rate_bitmap; + u8 fsync_rssi_threshold; + bool bfsync_enable; + + u8 fsync_multiple_timeinterval; + u32 fsync_firstdiff_ratethreshold; + u32 fsync_seconddiff_ratethreshold; + Fsync_State fsync_state; + bool bis_any_nonbepkts; + bandwidth_autoswitch bandwidth_auto_switch; + bool FwRWRF; + + RT_LINK_DETECT_T LinkDetectInfo; + bool bIsAggregateFrame; + RT_POWER_SAVE_CONTROL PowerSaveControl; + u8 amsdu_in_process; + + /* used if IEEE_SOFTMAC_TX_QUEUE is set */ + struct tx_pending_t tx_pending; + + /* used if IEEE_SOFTMAC_ASSOCIATE is set */ + struct timer_list associate_timer; + + /* used if IEEE_SOFTMAC_BEACONS is set */ + struct timer_list beacon_timer; +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + struct timer_list ibss_wait_timer; +#endif + u8 need_sw_enc; +#ifdef _RTL8192_EXT_PATCH_ + struct net_device *meshdev; + struct net_device_stats *meshstats; + u8 only_mesh; + u8 hostname[MAX_HOST_NAME_LENGTH]; + u8 hostname_len; + struct list_head mesh_network_free_list; + struct list_head mesh_network_list; + struct rtllib_network *mesh_networks; + struct rtllib_network current_mesh_network; + enum rtllib_state mesh_state; + short mesh_started; + int mesh_security_setting; + int mesh_sec_type; + struct list_head mesh_mac_hash[IEEE_MESH_MAC_HASH_SIZE]; + u64 LinkingPeerBitMap; + u8 LinkingPeerAddr[MAX_MP-1][ETH_ALEN]; + u8 LinkingPeerSecState[MAX_MP-1]; + u8 mesh_cached_PTK[MAX_MP-1][16]; + u32 peer_AID_bitmap; + u8 peer_AID_Addr[30][ETH_ALEN]; + int mesh_txkeyidx; + u16 mesh_pairwise_key_type; + u16 mesh_group_key_type; + u32 HwSecCamBitMap; + u8 HwSecCamStaAddr[TOTAL_CAM_ENTRY][ETH_ALEN]; + SW_CAM_TABLE swmeshcamtable[TOTAL_CAM_ENTRY]; + SW_RATR_TABLE swmeshratrtable[8]; + short meshid_set; + u8 p2pmode; + u8 serverExtChlOffset; + u8 APExtChlOffset; + short meshScanMode; + struct sk_buff_head skb_meshaggQ[MAX_QUEUE_SIZE]; + u8 mesh_amsdu_in_process; +#endif + work_struct_rsl associate_complete_wq; +#ifdef ENABLE_IPS + work_struct_rsl ips_leave_wq; +#endif +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + delayed_work_struct_rsl check_tsf_wq; + delayed_work_struct_rsl update_assoc_sta_info_wq; +#endif + delayed_work_struct_rsl associate_procedure_wq; + delayed_work_struct_rsl softmac_scan_wq; + delayed_work_struct_rsl softmac_hint11d_wq; + delayed_work_struct_rsl associate_retry_wq; + delayed_work_struct_rsl start_ibss_wq; +#ifndef RTL8190P + delayed_work_struct_rsl hw_wakeup_wq; + delayed_work_struct_rsl hw_sleep_wq; +#endif + delayed_work_struct_rsl link_change_wq; + work_struct_rsl wx_sync_scan_wq; +#ifdef _RTL8192_EXT_PATCH_ + work_struct_rsl ext_stop_scan_wq; + work_struct_rsl ext_send_beacon_wq; + work_struct_rsl ext_create_crypt_for_peers_wq; + work_struct_rsl ext_path_sel_ops_wq; + work_struct_rsl ext_update_extchnloffset_wq; + delayed_work_struct_rsl ext_wx_set_key_wq; + work_struct_rsl ext_start_mesh_protocol_wq; +#endif + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct workqueue_struct *wq; +#else + u32 *wq; +#endif +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,40) + /* used for periodly scan */ + struct timer_list scan_timer; +#endif +#if defined (RTL8192S_WAPI_SUPPORT) + u8 WapiSupport; + RT_WAPI_T wapiInfo; + struct list_head cache_frag_list; + spinlock_t wapi_queue_lock; + WAPI_QUEUE *wapi_queue; +#endif + +#ifdef _RTL8192_EXT_PATCH_ + int (*set_mesh_key)(struct net_device *dev, + struct iw_point *encoding, struct iw_encode_ext *ext, u8 *addr); +#endif + /* Callback functions */ + void (*set_security)(struct net_device *dev, + struct rtllib_security *sec); + + /* Used to TX data frame by using txb structs. + * this is not used if in the softmac_features + * is set the flag IEEE_SOFTMAC_TX_QUEUE + */ + int (*hard_start_xmit)(struct rtllib_txb *txb, + struct net_device *dev); + + int (*reset_port)(struct net_device *dev); + int (*is_queue_full) (struct net_device * dev, int pri); + + int (*handle_management) (struct net_device * dev, + struct rtllib_network * network, u16 type); + int (*is_qos_active) (struct net_device *dev, struct sk_buff *skb); + + /* Softmac-generated frames (mamagement) are TXed via this + * callback if the flag IEEE_SOFTMAC_SINGLE_QUEUE is + * not set. As some cards may have different HW queues that + * one might want to use for data and management frames + * the option to have two callbacks might be useful. + * This fucntion can't sleep. + */ + int (*softmac_hard_start_xmit)(struct sk_buff *skb, + struct net_device *dev); + + /* used instead of hard_start_xmit (not softmac_hard_start_xmit) + * if the IEEE_SOFTMAC_TX_QUEUE feature is used to TX data + * frames. I the option IEEE_SOFTMAC_SINGLE_QUEUE is also set + * then also management frames are sent via this callback. + * This function can't sleep. + */ + void (*softmac_data_hard_start_xmit)(struct sk_buff *skb, + struct net_device *dev,int rate); + + /* stops the HW queue for DATA frames. Useful to avoid + * waste time to TX data frame when we are reassociating + * This function can sleep. + */ + void (*data_hard_stop)(struct net_device *dev); + + /* OK this is complementar to data_poll_hard_stop */ + void (*data_hard_resume)(struct net_device *dev); + + /* ask to the driver to retune the radio . + * This function can sleep. the driver should ensure + * the radio has been swithced before return. + */ + void (*set_chan)(struct net_device *dev,short ch); + + /* These are not used if the ieee stack takes care of + * scanning (IEEE_SOFTMAC_SCAN feature set). + * In this case only the set_chan is used. + * + * The syncro version is similar to the start_scan but + * does not return until all channels has been scanned. + * this is called in user context and should sleep, + * it is called in a work_queue when swithcing to ad-hoc mode + * or in behalf of iwlist scan when the card is associated + * and root user ask for a scan. + * the fucntion stop_scan should stop both the syncro and + * background scanning and can sleep. + * The fucntion start_scan should initiate the background + * scanning and can't sleep. + */ + void (*scan_syncro)(struct net_device *dev); + void (*start_scan)(struct net_device *dev); + void (*stop_scan)(struct net_device *dev); + + void (*rtllib_start_hw_scan)(struct net_device *dev); + void (*rtllib_stop_hw_scan)(struct net_device *dev); + + /* indicate the driver that the link state is changed + * for example it may indicate the card is associated now. + * Driver might be interested in this to apply RX filter + * rules or simply light the LINK led + */ + void (*link_change)(struct net_device *dev); + + /* these two function indicates to the HW when to start + * and stop to send beacons. This is used when the + * IEEE_SOFTMAC_BEACONS is not set. For now the + * stop_send_bacons is NOT guaranteed to be called only + * after start_send_beacons. + */ + void (*start_send_beacons) (struct net_device *dev); + void (*stop_send_beacons) (struct net_device *dev); + + /* power save mode related */ + void (*sta_wake_up) (struct net_device *dev); + void (*enter_sleep_state) (struct net_device *dev, u32 th, u32 tl); + short (*ps_is_queue_empty) (struct net_device *dev); +#if 0 + /* Typical STA methods */ + int (*handle_auth) (struct net_device * dev, + struct rtllib_auth * auth); + int (*handle_deauth) (struct net_device * dev, + struct rtllib_deauth * auth); + int (*handle_action) (struct net_device * dev, + struct rtllib_action * action, + struct rtllib_rx_stats * stats); + int (*handle_disassoc) (struct net_device * dev, + struct rtllib_disassoc * assoc); +#endif + int (*handle_beacon) (struct net_device * dev, struct rtllib_beacon * beacon, struct rtllib_network * network); +#if 0 + int (*handle_probe_response) (struct net_device * dev, + struct rtllib_probe_response * resp, + struct rtllib_network * network); + int (*handle_probe_request) (struct net_device * dev, + struct rtllib_probe_request * req, + struct rtllib_rx_stats * stats); +#endif + int (*handle_assoc_response) (struct net_device * dev, struct rtllib_assoc_response_frame * resp, struct rtllib_network * network); + +#if 0 + /* Typical AP methods */ + int (*handle_assoc_request) (struct net_device * dev); + int (*handle_reassoc_request) (struct net_device * dev, + struct rtllib_reassoc_request * req); +#endif + + /* check whether Tx hw resouce available */ + short (*check_nic_enough_desc)(struct net_device *dev, int queue_index); + short (*get_nic_desc_num)(struct net_device *dev, int queue_index); + void (*SetBWModeHandler)(struct net_device *dev, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset); + bool (*GetNmodeSupportBySecCfg)(struct net_device* dev); + void (*SetWirelessMode)(struct net_device* dev, u8 wireless_mode); + bool (*GetHalfNmodeSupportByAPsHandler)(struct net_device* dev); + u8 (*rtllib_ap_sec_type)(struct rtllib_device *ieee); + void (*HalUsbRxAggrHandler)(struct net_device *dev, bool Value); + void (*InitialGainHandler)(struct net_device *dev, u8 Operation); + int (*softmac_process_bt_pkt)(struct sk_buff *skb, struct net_device *dev); + +#ifdef _RTL8192_EXT_PATCH_ + int (*set_key_for_AP)(struct rtllib_device *ieee); + void (*del_hwsec_cam_entry)(struct rtllib_device *ieee, u8 *addr); + int (*set_key_for_peer) (struct net_device *dev,u8 *Addr,u8 KeyIndex,u16 KeyType,u32 *KeyContent ); + int (*ext_patch_rtllib_start_protocol) (struct rtllib_device *ieee); + + short (*ext_patch_rtllib_probe_req_1) (struct rtllib_device *ieee); + u8* (*ext_patch_rtllib_probe_req_2) (struct rtllib_device *ieee, struct sk_buff *skb, u8 *tag); + + void (*ext_patch_rtllib_stop_protocol) (struct rtllib_device *ieee,bool is_silent_reset); + + int (*ext_patch_rtllib_rx_frame_softmac_on_peerlink_open) (struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_stats); + int (*ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm) (struct rtllib_device *ieee, struct sk_buff *skb); + int (*ext_patch_rtllib_rx_frame_softmac_on_peerlink_close) (struct rtllib_device *ieee, struct sk_buff *skb); + void (*ext_patch_rtllib_close_all_peerlink) (struct rtllib_device *ieee, __le16 reason); + + int (*ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report) (struct rtllib_device *ieee, struct sk_buff *skb); + int (*ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req) (struct rtllib_device *ieee, struct sk_buff *skb); + + int (*ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq) (struct rtllib_device *ieee, struct sk_buff *skb,struct rtllib_rx_stats *rx_stats); + int (*ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep) (struct rtllib_device *ieee, struct sk_buff *skb,struct rtllib_rx_stats *rx_stats); + int (*ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr) (struct rtllib_device *ieee, struct sk_buff *skb,struct rtllib_rx_stats *rx_stats); + int (*ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann) (struct rtllib_device *ieee, struct sk_buff *skb,struct rtllib_rx_stats *rx_stats); + int (*ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann) (struct rtllib_device *ieee, struct sk_buff *skb,struct rtllib_rx_stats *rx_stats); + + int (*ext_patch_rtllib_ext_stop_scan_wq_set_channel) (struct rtllib_device *ieee); + int (*ext_patch_r819x_wx_set_mesh_chan)(struct net_device *dev, unsigned char channel); + void (*ext_patch_r819x_wx_set_channel) (struct rtllib_device *ieee, int ch); + + int (*ext_patch_rtllib_softmac_xmit_get_rate) (struct rtllib_device *ieee, struct sk_buff *skb); + int (*ext_patch_rtllib_rx_frame_softmac_on_auth)(struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_stats); + int (*ext_patch_rtllib_rx_frame_softmac_on_deauth)(struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_stats); + int (*ext_patch_rtllib_tx_data)(struct rtllib_device *ieee, struct rtllib_hdr_4addrqos* header, u8* is_peer_n_mode, u8* is_peer_40M, + u8* is_peer_shortGI_40M, u8* is_peer_shortGI_20M,u8* peer_highest_opra_rate,u8* peer_ratr_index, u8* AID); + bool (*ext_patch_rtllib_is_mesh)(struct rtllib_device * ieee,u8 * addr); + ppeerMP_htinfo (*ext_patch_rtllib_get_peermp_htinfo) (struct rtllib_device *ieee,u8 * daddr); + int (* ext_patch_rtllib_create_crypt_for_peer)(struct rtllib_device * ieee); + void (*ext_patch_rtllib_start_mesh)(struct rtllib_device *ieee); + void (*ext_patch_rtllib_rx_mgt_on_probe_req) ( struct rtllib_device *ieee, struct rtllib_probe_request *beacon, struct rtllib_rx_stats *stats); + unsigned int(*ext_patch_rtllib_process_probe_response_1)(struct rtllib_device *ieee, struct rtllib_probe_response *beacon, struct rtllib_rx_stats *stats); + + void (*ext_patch_rtllib_rx_mgt_update_expire) ( struct rtllib_device *ieee, struct sk_buff *skb); + struct sk_buff* (*ext_patch_get_beacon_get_probersp)(struct rtllib_device *ieee, u8 *dest, struct rtllib_network *net); + + int (*ext_patch_rtllib_rx_on_rx) (struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_stats, u16 type, u16 stype); + + int (*ext_patch_rtllib_rx_frame_get_hdrlen) (struct rtllib_device *ieee, struct sk_buff *skb); + + int (*ext_patch_rtllib_rx_frame_get_mac_hdrlen) (struct rtllib_device *ieee, struct sk_buff *skb); + + int (*ext_patch_rtllib_rx_frame_get_mesh_hdrlen_llc) (struct rtllib_device *ieee, struct sk_buff *skb); + int (*ext_patch_rtllib_rx_is_valid_framectl) (struct rtllib_device *ieee, u16 fc, u16 type, u16 stype); + + + /* added by david for setting acl dynamically */ + u8 (*ext_patch_rtllib_acl_query) (struct rtllib_device *ieee, u8 *sa); + + + struct sk_buff* (*ext_patch_rtllib_send_ath_commit) (struct rtllib_device * ieee,u8 * addr); + struct sk_buff* (*ext_patch_rtllib_send_ath_confirm) (struct rtllib_device * ieee,u8 * addr); + int (*ext_patch_rtllib_rx_ath_commit) (struct rtllib_device * ieee,u8 * addr); + u8 (*ext_patch_rtllib_rx_ath_confirm) (struct rtllib_device *ieee, u8* pframe,u16 strlen,u8 *addr); + +#endif + bool (*SetFwCmdHandler)(struct net_device *dev, FW_CMD_IO_TYPE FwCmdIO); + void (*UpdateHalRAMaskHandler)(struct net_device* dev, bool bMulticast, u8 macId, u8 MimoPs, u8 WirelessMode, u8 bCurTxBW40MHz, u8 rssi_level); + void (*UpdateBeaconInterruptHandler)(struct net_device* dev, bool start); + void (*UpdateInterruptMaskHandler)(struct net_device* dev, u32 AddMSR, u32 RemoveMSR); + u16 (*rtl_11n_user_show_rates)(struct net_device *dev); + void (*ScanOperationBackupHandler)(struct net_device *dev, u8 Operation); + void (*LedControlHandler)(struct net_device * dev, LED_CTL_MODE LedAction); + void (*SetHwRegHandler)(struct net_device *dev,u8 variable,u8* val); + void (*GetHwRegHandler)(struct net_device *dev,u8 variable,u8* val); + + void (*AllowAllDestAddrHandler)(struct net_device *dev, bool bAllowAllDA, bool WriteIntoReg); + +#ifdef ENABLE_IPS + void (*rtllib_ips_leave_wq) (struct net_device *dev); + void (*rtllib_ips_leave)(struct net_device *dev); +#endif +#ifdef ENABLE_LPS + void (*LeisurePSLeave)(struct net_device *dev); +#endif +#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) + void (*SetBeaconRelatedRegistersHandler)(struct net_device* dev); + bool (*check_ht_cap)(struct net_device* dev, struct sta_info *sta, struct rtllib_network* net); + void (*Adhoc_InitRateAdaptive)(struct net_device *dev,struct sta_info *pEntry); +#endif + void (*rtllib_rfkill_poll)(struct net_device *dev); + + /* This must be the last item so that it points to the data + * allocated beyond this structure by alloc_rtllib */ + u8 priv[0]; +}; + +#define IEEE_A (1<<0) +#define IEEE_B (1<<1) +#define IEEE_G (1<<2) +#define IEEE_N_24G (1<<4) +#define IEEE_N_5G (1<<5) +#define IEEE_MODE_MASK (IEEE_A|IEEE_B|IEEE_G) + +/* Generate a 802.11 header */ + +/* Uses the channel change callback directly + * instead of [start/stop] scan callbacks + */ +#define IEEE_SOFTMAC_SCAN (1<<2) + +/* Perform authentication and association handshake */ +#define IEEE_SOFTMAC_ASSOCIATE (1<<3) + +/* Generate probe requests */ +#define IEEE_SOFTMAC_PROBERQ (1<<4) + +/* Generate respones to probe requests */ +#define IEEE_SOFTMAC_PROBERS (1<<5) + +/* The ieee802.11 stack will manages the netif queue + * wake/stop for the driver, taking care of 802.11 + * fragmentation. See softmac.c for details. */ +#define IEEE_SOFTMAC_TX_QUEUE (1<<7) + +/* Uses only the softmac_data_hard_start_xmit + * even for TX management frames. + */ +#define IEEE_SOFTMAC_SINGLE_QUEUE (1<<8) + +/* Generate beacons. The stack will enqueue beacons + * to the card + */ +#define IEEE_SOFTMAC_BEACONS (1<<6) + +#ifdef _RTL8192_EXT_PATCH_ +static inline int rtllib_find_MP(struct rtllib_device* ieee, const u8* addr, u8 set) +{ + int i=0; + for (i=1; icryptlist[i]->used == 0) && set) { + memcpy(ieee->cryptlist[i]->mac_addr, addr, ETH_ALEN); + ieee->cryptlist[i]->used = 1; + return i; + } else if (0 == memcmp(ieee->cryptlist[i]->mac_addr, addr, ETH_ALEN)) { + return i; + } + } + return -1; +} +#endif + +static inline void *rtllib_priv(struct net_device *dev) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + return ((struct rtllib_device *)netdev_priv(dev))->priv; +#else + return ((struct rtllib_device *)dev->priv)->priv; +#endif +} + +extern inline int rtllib_is_empty_essid(const char *essid, int essid_len) +{ + /* Single white space is for Linksys APs */ + if (essid_len == 1 && essid[0] == ' ') + return 1; + + /* Otherwise, if the entire essid is 0, we assume it is hidden */ + while (essid_len) { + essid_len--; + if (essid[essid_len] != '\0') + return 0; + } + + return 1; +} + +extern inline int rtllib_is_valid_mode(struct rtllib_device *ieee, int mode) +{ + /* + * It is possible for both access points and our device to support + * combinations of modes, so as long as there is one valid combination + * of ap/device supported modes, then return success + * + */ + if ((mode & IEEE_A) && + (ieee->modulation & RTLLIB_OFDM_MODULATION) && + (ieee->freq_band & RTLLIB_52GHZ_BAND)) + return 1; + + if ((mode & IEEE_G) && + (ieee->modulation & RTLLIB_OFDM_MODULATION) && + (ieee->freq_band & RTLLIB_24GHZ_BAND)) + return 1; + + if ((mode & IEEE_B) && + (ieee->modulation & RTLLIB_CCK_MODULATION) && + (ieee->freq_band & RTLLIB_24GHZ_BAND)) + return 1; + + return 0; +} + +extern inline int rtllib_get_hdrlen(u16 fc) +{ + int hdrlen = RTLLIB_3ADDR_LEN; + + switch (WLAN_FC_GET_TYPE(fc)) { + case RTLLIB_FTYPE_DATA: + if ((fc & RTLLIB_FCTL_FROMDS) && (fc & RTLLIB_FCTL_TODS)) + hdrlen = RTLLIB_4ADDR_LEN; /* Addr4 */ + if(RTLLIB_QOS_HAS_SEQ(fc)) + hdrlen += 2; /* QOS ctrl*/ + break; + case RTLLIB_FTYPE_CTL: + switch (WLAN_FC_GET_STYPE(fc)) { + case RTLLIB_STYPE_CTS: + case RTLLIB_STYPE_ACK: + hdrlen = RTLLIB_1ADDR_LEN; + break; + default: + hdrlen = RTLLIB_2ADDR_LEN; + break; + } + break; + } + + return hdrlen; +} + +static inline u8 *rtllib_get_payload(struct rtllib_hdr *hdr) +{ + switch (rtllib_get_hdrlen(le16_to_cpu(hdr->frame_ctl))) { + case RTLLIB_1ADDR_LEN: + return ((struct rtllib_hdr_1addr *)hdr)->payload; + case RTLLIB_2ADDR_LEN: + return ((struct rtllib_hdr_2addr *)hdr)->payload; + case RTLLIB_3ADDR_LEN: + return ((struct rtllib_hdr_3addr *)hdr)->payload; + case RTLLIB_4ADDR_LEN: + return ((struct rtllib_hdr_4addr *)hdr)->payload; + } + return NULL; +} + +static inline int rtllib_is_ofdm_rate(u8 rate) +{ + switch (rate & ~RTLLIB_BASIC_RATE_MASK) { + case RTLLIB_OFDM_RATE_6MB: + case RTLLIB_OFDM_RATE_9MB: + case RTLLIB_OFDM_RATE_12MB: + case RTLLIB_OFDM_RATE_18MB: + case RTLLIB_OFDM_RATE_24MB: + case RTLLIB_OFDM_RATE_36MB: + case RTLLIB_OFDM_RATE_48MB: + case RTLLIB_OFDM_RATE_54MB: + return 1; + } + return 0; +} + +static inline int rtllib_is_cck_rate(u8 rate) +{ + switch (rate & ~RTLLIB_BASIC_RATE_MASK) { + case RTLLIB_CCK_RATE_1MB: + case RTLLIB_CCK_RATE_2MB: + case RTLLIB_CCK_RATE_5MB: + case RTLLIB_CCK_RATE_11MB: + return 1; + } + return 0; +} + + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) +static inline unsigned compare_ether_addr(const u8 *addr1, const u8 *addr2) +{ + const u16 *a = (const u16 *) addr1; + const u16 *b = (const u16 *) addr2; + + BUILD_BUG_ON(ETH_ALEN != 6); + return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | (a[2] ^ b[2])) != 0; +} +#endif + +/* rtllib.c */ +extern void free_rtllib(struct net_device *dev); +extern struct net_device *alloc_rtllib(int sizeof_priv); + +extern int rtllib_set_encryption(struct rtllib_device *ieee); + +/* rtllib_tx.c */ + +#ifdef _RTL8192_EXT_PATCH_ +extern int rtllib_encrypt_fragment( + struct rtllib_device *ieee, + struct sk_buff *frag, + int hdr_len, u8 is_mesh, u8 entry); +#else +extern int rtllib_encrypt_fragment( + struct rtllib_device *ieee, + struct sk_buff *frag, + int hdr_len); +#endif + +extern int rtllib_xmit(struct sk_buff *skb, struct net_device *dev); +extern int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev); +#ifdef _RTL8192_EXT_PATCH_ +extern int rtllib_classify(struct sk_buff *skb, u8 bIsAmsdu); +extern int rtllib_mesh_xmit(struct sk_buff *skb, struct net_device *dev); +extern inline int rtllib_put_snap(u8 *data, u16 h_proto); +#endif +extern void rtllib_txb_free(struct rtllib_txb *); + +#ifdef ENABLE_AMSDU +extern struct sk_buff *AMSDU_Aggregation(struct rtllib_device *ieee, struct sk_buff_head *pSendList); +extern u8 AMSDU_GetAggregatibleList(struct rtllib_device *ieee, struct sk_buff *pCurSkb, struct sk_buff_head *pSendList, u8 queue_index); +extern struct sk_buff *msh_AMSDU_Aggregation(struct rtllib_device *ieee, struct sk_buff_head *pSendList); +extern u8 msh_AMSDU_GetAggregatibleList(struct rtllib_device *ieee, struct sk_buff *pCurSkb, struct sk_buff_head *pSendList, u8 queue_index); +#endif + +/* rtllib_rx.c */ +extern int rtllib_rx(struct rtllib_device *ieee, struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats); +extern void rtllib_rx_mgt(struct rtllib_device *ieee, + struct sk_buff *skb, + struct rtllib_rx_stats *stats); +extern void rtllib_rx_probe_rq(struct rtllib_device *ieee, + struct sk_buff *skb); +extern int IsLegalChannel( struct rtllib_device *rtllib, u8 channel); + +/* rtllib_wx.c */ +extern int rtllib_wx_get_scan(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *key); +#ifdef _RTL8192_EXT_PATCH_ +extern int rtllib_wx_set_encode(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *key, u8 is_mesh); +extern int rtllib_wx_get_encode(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *key, u8 is_mesh); +extern int rtllib_mesh_set_encode_ext(struct rtllib_device *ieee, + struct iw_point *encoding, struct iw_encode_ext *ext, int entry); +#if WIRELESS_EXT >= 18 +extern int rtllib_wx_get_encode_ext(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data* wrqu, char *extra, u8 is_mesh); +extern int rtllib_wx_set_encode_ext(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data* wrqu, char *extra, u8 is_mesh); +#endif +#else +extern int rtllib_wx_set_encode(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *key); +extern int rtllib_wx_get_encode(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *key); +#if WIRELESS_EXT >= 18 +extern int rtllib_wx_get_encode_ext(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data* wrqu, char *extra); +extern int rtllib_wx_set_encode_ext(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data* wrqu, char *extra); +#endif +#endif +extern int rtllib_wx_set_auth(struct rtllib_device *ieee, + struct iw_request_info *info, + struct iw_param *data, char *extra); +extern int rtllib_wx_set_mlme(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); +extern int rtllib_wx_set_gen_ie(struct rtllib_device *ieee, u8 *ie, size_t len); + +/* rtllib_softmac.c */ +extern short rtllib_is_54g(struct rtllib_network *net); +extern short rtllib_is_shortslot(struct rtllib_network net); +extern int rtllib_rx_frame_softmac(struct rtllib_device *ieee, struct sk_buff *skb, + struct rtllib_rx_stats *rx_stats, u16 type, + u16 stype); +extern void rtllib_softmac_new_net(struct rtllib_device *ieee, struct rtllib_network *net); + +void SendDisassociation(struct rtllib_device *ieee, bool deauth, u16 asRsn); +extern void rtllib_softmac_xmit(struct rtllib_txb *txb, struct rtllib_device *ieee); + +extern void rtllib_stop_send_beacons(struct rtllib_device *ieee); +extern void notify_wx_assoc_event(struct rtllib_device *ieee); +extern void rtllib_softmac_check_all_nets(struct rtllib_device *ieee); +extern void rtllib_start_bss(struct rtllib_device *ieee); +extern void rtllib_start_master_bss(struct rtllib_device *ieee); +extern void rtllib_start_ibss(struct rtllib_device *ieee); +extern void rtllib_softmac_init(struct rtllib_device *ieee); +extern void rtllib_softmac_free(struct rtllib_device *ieee); +extern void rtllib_associate_abort(struct rtllib_device *ieee); +extern void rtllib_disassociate(struct rtllib_device *ieee); +extern void rtllib_stop_scan(struct rtllib_device *ieee); +extern bool rtllib_act_scanning(struct rtllib_device *ieee, bool sync_scan); +extern void rtllib_stop_scan_syncro(struct rtllib_device *ieee); +extern void rtllib_start_scan_syncro(struct rtllib_device *ieee, u8 is_mesh); +extern inline struct sk_buff *rtllib_probe_req(struct rtllib_device *ieee); +extern u8 MgntQuery_MgntFrameTxRate(struct rtllib_device *ieee); +extern void rtllib_sta_ps_send_null_frame(struct rtllib_device *ieee, short pwr); +extern void rtllib_sta_wakeup(struct rtllib_device *ieee, short nl); +extern void rtllib_sta_ps_send_pspoll_frame(struct rtllib_device *ieee); +extern void rtllib_check_all_nets(struct rtllib_device *ieee); +extern void rtllib_start_protocol(struct rtllib_device *ieee); +extern void rtllib_stop_protocol(struct rtllib_device *ieee, u8 shutdown); + +extern void rtllib_EnableNetMonitorMode(struct net_device* dev, bool bInitState); +extern void rtllib_DisableNetMonitorMode(struct net_device* dev, bool bInitState); +extern void rtllib_EnableIntelPromiscuousMode(struct net_device* dev, bool bInitState); +extern void rtllib_DisableIntelPromiscuousMode(struct net_device* dev, bool bInitState); +extern void rtllib_send_probe_requests(struct rtllib_device *ieee, u8 is_mesh); + +extern void rtllib_softmac_stop_protocol(struct rtllib_device *ieee, u8 mesh_flag, u8 shutdown); +extern void rtllib_softmac_start_protocol(struct rtllib_device *ieee,u8 mesh_flag); + +#ifdef _RTL8192_EXT_PATCH_ +extern void rtllib_start_mesh_protocol(struct rtllib_device *ieee); +extern void rtllib_stop_mesh_protocol(struct rtllib_device *ieee); +#endif +extern void rtllib_reset_queue(struct rtllib_device *ieee); +extern void rtllib_wake_queue(struct rtllib_device *ieee); +extern void rtllib_stop_queue(struct rtllib_device *ieee); +extern void rtllib_wake_all_queues(struct rtllib_device *ieee); +extern void rtllib_stop_all_queues(struct rtllib_device *ieee); +extern struct sk_buff *rtllib_get_beacon(struct rtllib_device *ieee); +extern void rtllib_start_send_beacons(struct rtllib_device *ieee); +extern void rtllib_stop_send_beacons(struct rtllib_device *ieee); +extern int rtllib_wpa_supplicant_ioctl(struct rtllib_device *ieee, struct iw_point *p, u8 is_mesh); + +extern void notify_wx_assoc_event(struct rtllib_device *ieee); +extern void rtllib_ps_tx_ack(struct rtllib_device *ieee, short success); + +extern void softmac_mgmt_xmit(struct sk_buff *skb, struct rtllib_device *ieee); +extern u16 rtllib_query_seqnum(struct rtllib_device*ieee, struct sk_buff* skb, u8* dst); +extern u8 rtllib_ap_sec_type(struct rtllib_device *ieee); + +#ifdef _RTL8192_EXT_PATCH_ +extern void rtllib_resp_to_auth(struct rtllib_device *ieee, int s, u8* dest); +extern void rtllib_associate_step1(struct rtllib_device *ieee,u8 * addr); +extern bool rtllib_ext_prepare_to_joinmesh(struct rtllib_device *ieee, struct rtllib_network *pstat); +extern u8 HTFilterMCSRate( struct rtllib_device* ieee, u8* pSupportMCS, u8* pOperateMCS); +extern void HTUseDefaultSetting(struct rtllib_device* ieee); +extern void rtllib_start_scan(struct rtllib_device *ieee); +extern struct sk_buff* rtllib_ext_probe_resp_by_net(struct rtllib_device *ieee, u8 *dest, struct rtllib_network *net); +extern int rtllib_network_init(struct rtllib_device *ieee, struct rtllib_probe_response *beacon, struct rtllib_network *network, struct rtllib_rx_stats *stats); +extern struct rtllib_txb *rtllib_alloc_txb(int nr_frags, int txb_size, int gfp_mask); +extern void rtllib_ext_send_11s_beacon(struct rtllib_device *ieee); +#endif + +/* rtllib_crypt_ccmp&tkip&wep.c */ +extern void rtllib_tkip_null(void); +extern void rtllib_wep_null(void); +extern void rtllib_ccmp_null(void); + +/* rtllib_softmac_wx.c */ + +extern int rtllib_wx_get_wap(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *ext); + +extern int rtllib_wx_set_wap(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *awrq, + char *extra); + +extern int rtllib_wx_get_essid(struct rtllib_device *ieee, struct iw_request_info *a,union iwreq_data *wrqu,char *b); + +extern int rtllib_wx_set_rate(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); + +extern int rtllib_wx_get_rate(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); + +extern int rtllib_wx_set_mode(struct rtllib_device *ieee, struct iw_request_info *a, + union iwreq_data *wrqu, char *b); + +extern int rtllib_wx_set_scan(struct rtllib_device *ieee, struct iw_request_info *a, + union iwreq_data *wrqu, char *b); + +extern int rtllib_wx_set_essid(struct rtllib_device *ieee, + struct iw_request_info *a, + union iwreq_data *wrqu, char *extra); + +extern int rtllib_wx_get_mode(struct rtllib_device *ieee, struct iw_request_info *a, + union iwreq_data *wrqu, char *b); + +extern int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a, + union iwreq_data *wrqu, char *b); + +#ifdef _RTL8192_EXT_PATCH_ +extern int rtllib_wx_get_freq(struct rtllib_device *ieee, struct iw_request_info *a, + union iwreq_data *wrqu, char *b, u8 is_mesh); +#else +extern int rtllib_wx_get_freq(struct rtllib_device *ieee, struct iw_request_info *a, + union iwreq_data *wrqu, char *b); +#endif +extern void rtllib_wx_sync_scan_wq(void *data); + +extern int rtllib_wx_set_rawtx(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); + +extern int rtllib_wx_get_name(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); + +extern int rtllib_wx_set_power(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); + +extern int rtllib_wx_get_power(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); + +extern int rtllib_wx_set_rts(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); + +extern int rtllib_wx_get_rts(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); +#ifdef _RTL8192_EXT_PATCH_ +extern void rtllib_sta_ps_send_null_frame(struct rtllib_device *ieee, short pwr); +#endif +#define MAX_RECEIVE_BUFFER_SIZE 9100 +extern void HTDebugHTCapability(u8* CapIE, u8* TitleString ); +extern void HTDebugHTInfo(u8* InfoIE, u8* TitleString); + +void HTSetConnectBwMode(struct rtllib_device* ieee, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset); +extern void HTUpdateDefaultSetting(struct rtllib_device* ieee); +#ifdef _RTL8192_EXT_PATCH_ +extern void HTConstructCapabilityElement(struct rtllib_device* ieee, u8* posHTCap, u8* len, u8 isEncrypt, u8 bIsBcn,bool bAssoc); +#else +extern void HTConstructCapabilityElement(struct rtllib_device* ieee, u8* posHTCap, u8* len, u8 isEncrypt,bool bAssoc); +#endif +extern void HTConstructInfoElement(struct rtllib_device* ieee, u8* posHTInfo, u8* len, u8 isEncrypt); +extern void HTConstructRT2RTAggElement(struct rtllib_device* ieee, u8* posRT2RTAgg, u8* len); +extern void HTOnAssocRsp(struct rtllib_device *ieee); +extern void HTInitializeHTInfo(struct rtllib_device* ieee); +extern void HTInitializeBssDesc(PBSS_HT pBssHT); +extern void HTResetSelfAndSavePeerSetting(struct rtllib_device* ieee, struct rtllib_network * pNetwork); +extern void HTUpdateSelfAndPeerSetting(struct rtllib_device* ieee, struct rtllib_network * pNetwork); +extern u8 HTGetHighestMCSRate(struct rtllib_device* ieee, u8* pMCSRateSet, u8* pMCSFilter); +extern u8 MCS_FILTER_ALL[]; +extern u16 MCS_DATA_RATE[2][2][77] ; +extern u8 HTCCheck(struct rtllib_device* ieee, u8* pFrame); +extern void HTResetIOTSetting(PRT_HIGH_THROUGHPUT pHTInfo); +extern bool IsHTHalfNmodeAPs(struct rtllib_device* ieee); +extern u16 HTHalfMcsToDataRate(struct rtllib_device* ieee, u8 nMcsRate); +extern u16 HTMcsToDataRate( struct rtllib_device* ieee, u8 nMcsRate); +extern u16 TxCountToDataRate( struct rtllib_device* ieee, u8 nDataRate); +extern int rtllib_rx_ADDBAReq( struct rtllib_device* ieee, struct sk_buff *skb); +extern int rtllib_rx_ADDBARsp( struct rtllib_device* ieee, struct sk_buff *skb); +extern int rtllib_rx_DELBA(struct rtllib_device* ieee,struct sk_buff *skb); +extern void TsInitAddBA( struct rtllib_device* ieee, PTX_TS_RECORD pTS, u8 Policy, u8 bOverwritePending); +extern void TsInitDelBA( struct rtllib_device* ieee, PTS_COMMON_INFO pTsCommonInfo, TR_SELECT TxRxSelect); +extern void BaSetupTimeOut(unsigned long data); +extern void TxBaInactTimeout(unsigned long data); +extern void RxBaInactTimeout(unsigned long data); +extern void ResetBaEntry( PBA_RECORD pBA); +extern bool GetTs( + struct rtllib_device* ieee, + PTS_COMMON_INFO *ppTS, + u8* Addr, + u8 TID, + TR_SELECT TxRxSelect, + bool bAddNewTs + ); +extern void TSInitialize(struct rtllib_device *ieee); +extern void TsStartAddBaProcess(struct rtllib_device* ieee, PTX_TS_RECORD pTxTS); +extern void RemovePeerTS(struct rtllib_device* ieee, u8* Addr); +extern void RemoveAllTS(struct rtllib_device* ieee); +#ifdef _RTL8192_EXT_PATCH_ +extern void ResetAdmitTRStream(struct rtllib_device *ieee, u8 *Addr); +#endif +void rtllib_softmac_scan_syncro(struct rtllib_device *ieee, u8 is_mesh); + +extern const long rtllib_wlan_frequencies[]; + +extern inline void rtllib_increment_scans(struct rtllib_device *ieee) +{ + ieee->scans++; +} + +extern inline int rtllib_get_scans(struct rtllib_device *ieee) +{ + return ieee->scans; +} + +static inline const char *escape_essid(const char *essid, u8 essid_len) { + static char escaped[IW_ESSID_MAX_SIZE * 2 + 1]; + const char *s = essid; + char *d = escaped; + + if (rtllib_is_empty_essid(essid, essid_len)) { + memcpy(escaped, "", sizeof("")); + return escaped; + } + + essid_len = min(essid_len, (u8)IW_ESSID_MAX_SIZE); + while (essid_len--) { + if (*s == '\0') { + *d++ = '\\'; + *d++ = '0'; + s++; + } else { + *d++ = *s++; + } + } + *d = '\0'; + return escaped; +} + +#define CONVERT_RATE(_ieee, _MGN_RATE) (_MGN_RATE +#include +#include "wapi.h" +#include "wapi_interface.h" +#include "rtllib.h" + +#define LITTLE_ENDIAN +#define ENCRYPT 0 +#define DECRYPT 1 + +u32 wapi_debug_component = WAPI_INIT | + WAPI_ERR ; + +void WapiInit(struct rtllib_device *ieee) +{ + PRT_WAPI_T pWapiInfo; + int i; + + WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__); + RT_ASSERT_RET(ieee); + + pWapiInfo = &ieee->wapiInfo; + pWapiInfo->bWapiEnable = false; + + INIT_LIST_HEAD(&ieee->cache_frag_list); + + INIT_LIST_HEAD(&pWapiInfo->wapiBKIDIdleList); + INIT_LIST_HEAD(&pWapiInfo->wapiBKIDStoreList); + for(i=0;iwapiBKID[i].list, &pWapiInfo->wapiBKIDIdleList); + } + + INIT_LIST_HEAD(&pWapiInfo->wapiSTAIdleList); + INIT_LIST_HEAD(&pWapiInfo->wapiSTAUsedList); + for(i=0;iwapiSta[i].list, &pWapiInfo->wapiSTAIdleList); + } + + spin_lock_init(&ieee->wapi_queue_lock); + + ieee->wapi_queue = (WAPI_QUEUE *)kmalloc((sizeof(WAPI_QUEUE)), GFP_KERNEL); + if (!ieee->wapi_queue) { + return; + } + memset((void *)ieee->wapi_queue, 0, sizeof (WAPI_QUEUE)); + WAPI_InitQueue(ieee->wapi_queue, WAPI_MAX_QUEUE_LEN, WAPI_MAX_BUFF_LEN); + + WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__); +} + +void WapiExit(struct rtllib_device *ieee) +{ + WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__); + RT_ASSERT_RET(ieee); + + if(ieee->wapi_queue) + kfree(ieee->wapi_queue); + ieee->wapi_queue = 0; + + WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__); +} + +void WapiCreateAppEventAndSend( + struct rtllib_device *ieee, + u8 *pbuffer, + u16 buf_len, + u8 *DestAddr, + u8 bUpdateBK, + u8 bUpdateUSK, + u8 bUpdateMSK, + u8 RcvPktType, + u8 bDisconnect +) +{ + PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo); + PRT_WAPI_STA_INFO pWapiSta = NULL; + u8 WapiASUEPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ; + u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ; + u8 bFind = false, bRecvAEPacket = false, bRecvASUEPacket = false, EventId = 0; + + WAPI_TRACE(WAPI_API, "==========> %s\n", __FUNCTION__); + WAPI_TRACE(WAPI_API, "DestAddr="MAC_FMT" bUpdateBK=%d bUpdateUSK=%d bUpdateMSK=%d RcvPktType=%d bDisconnect=%d\n", + MAC_ARG(DestAddr), bUpdateBK, bUpdateUSK, bUpdateMSK, RcvPktType,bDisconnect); + + /*if(!pWapiInfo->bWapiEnable){ + WAPI_TRACE(WAPI_ERR,"%s: ieee->WapiSupport = 0!!\n",__FUNCTION__); + return; + }*/ + + if(list_empty(&pWapiInfo->wapiSTAUsedList)){ + bFind = false; + }else{ + list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) { + if(!memcmp(DestAddr,pWapiSta->PeerMacAddr,ETH_ALEN)){ + bFind = true; + break; + } + } + } + + WAPI_TRACE(WAPI_API, "%s: DestAddr="MAC_FMT" bFind=%d\n", __FUNCTION__, MAC_ARG(DestAddr), bFind); + switch(RcvPktType){ + case WAPI_PREAUTHENTICATE: + EventId = WAPI_EVENT_RCV_PREAUTHENTICATE; + bRecvAEPacket = true; + bRecvASUEPacket = false; + break; + case WAPI_ACCESS_AUTHENTICATE_REQUEST: + EventId = WAPI_EVENT_RCV_ACCESS_AUTHENTICATE_REQUEST; + bRecvAEPacket = true; + bRecvASUEPacket = false; + break; + case WAPI_USK_RESPONSE: + EventId = WAPI_EVENT_RCV_USK_RESPONSE; + bRecvAEPacket = true; + bRecvASUEPacket = false; + break; + case WAPI_MSK_RESPONSE: + EventId = WAPI_EVENT_RCV_MSK_RESPONSE; + bRecvAEPacket = true; + bRecvASUEPacket = false; + break; + case WAPI_STAKEY_REQUEST: + EventId = WAPI_EVENT_RCV_STAKEY_REQUEST; + bRecvAEPacket = false; + bRecvASUEPacket = true; + break; + case WAPI_AUTHENTICATE_ACTIVE: + EventId = WAPI_EVENT_RCV_AUTHENTICATE_ACTIVE; + bRecvAEPacket = false; + bRecvASUEPacket = true; + break; + case WAPI_ACCESS_AUTHENTICATE_RESPONSE: + EventId = WAPI_EVENT_RCV_ACCESS_AUTHENTICATE_RESPONSE; + bRecvAEPacket = false; + bRecvASUEPacket = true; + break; + case WAPI_USK_REQUEST: + EventId = WAPI_EVENT_RCV_USK_REQUEST; + bRecvAEPacket = false; + bRecvASUEPacket = true; + break; + case WAPI_USK_CONFIRM: + EventId = WAPI_EVENT_RCV_USK_CONFIRM; + bRecvAEPacket = false; + bRecvASUEPacket = true; + break; + case WAPI_MSK_NOTIFICATION: + EventId = WAPI_EVENT_RCV_MSK_NOTIFICATION; + bRecvAEPacket = false; + bRecvASUEPacket = true; + break; + default: + break; + } + + if(ieee->iw_mode == IW_MODE_INFRA){ + if(bRecvAEPacket || bUpdateMSK){ + goto out; + } + if(bRecvASUEPacket){ + WAPI_CreateEvent_Send(ieee, EventId, DestAddr, pbuffer, buf_len); + goto out; + } + if(bUpdateBK && bFind){ + EventId = WAPI_EVENT_ASUE_UPDATE_BK; + WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0); + goto out; + } + if(bUpdateUSK&& bFind){ + EventId = WAPI_EVENT_ASUE_UPDATE_USK; + WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0); + goto out; + } + if(bDisconnect && bFind){ + EventId = WAPI_EVENT_DISCONNECT; + WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0); + goto out; + } + } + else if(ieee->iw_mode == IW_MODE_ADHOC) + { + if((bFind )&& (!pWapiSta->bSetkeyOk) && (bUpdateBK ||bUpdateUSK||bUpdateMSK)) + goto out; + if(bRecvASUEPacket){ + WAPI_CreateEvent_Send(ieee, EventId, DestAddr, pbuffer, buf_len); + if(EventId != WAPI_EVENT_RCV_USK_REQUEST) + goto out; + } + if((!bFind) && (!bDisconnect) && (!bUpdateMSK)) + { + if(!list_empty(&pWapiInfo->wapiSTAIdleList)) + { + pWapiSta =(PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAIdleList.next, RT_WAPI_STA_INFO, list); + list_del_init(&pWapiSta->list); + list_add_tail(&pWapiSta->list, &pWapiInfo->wapiSTAUsedList); + WAPI_TRACE(WAPI_API, "%s: Add wapi station "MAC_FMT"\n", __FUNCTION__, MAC_ARG(DestAddr)); + memcpy(pWapiSta->PeerMacAddr,DestAddr,6); + memcpy(pWapiSta->lastRxMulticastPN, WapiAEMultiCastPNInitialValueSrc, 16); + memcpy(pWapiSta->lastRxUnicastPN, WapiASUEPNInitialValueSrc, 16); + } + + pWapiInfo->bFirstAuthentiateInProgress= true; + + EventId = WAPI_EVENT_FIRST_AUTHENTICATOR; + WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0); + goto out; + }else{ + if(bRecvAEPacket){ + WAPI_CreateEvent_Send(ieee, EventId, DestAddr, pbuffer, buf_len); + goto out; + } + if(bDisconnect){ + EventId = WAPI_EVENT_DISCONNECT; + WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0); + goto out; + } + if(bUpdateBK){ + EventId = WAPI_EVENT_AE_UPDATE_BK; + WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0); + goto out; + } + if(bUpdateUSK){ + EventId = WAPI_EVENT_AE_UPDATE_USK; + WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0); + goto out; + } + if(bUpdateMSK){ + list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) { + if(pWapiSta->bSetkeyOk){ + EventId = WAPI_EVENT_AE_UPDATE_MSK; + WAPI_CreateEvent_Send(ieee, EventId, pWapiSta->PeerMacAddr, NULL, 0); + } + } + goto out; + } + } + } + +out: + WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__); + return; +} + + +void WapiReturnAllStaInfo(struct rtllib_device *ieee) +{ + PRT_WAPI_T pWapiInfo; + PRT_WAPI_STA_INFO pWapiStaInfo; + PRT_WAPI_BKID pWapiBkid; + WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__); + + pWapiInfo = &ieee->wapiInfo; + + while(!list_empty(&(pWapiInfo->wapiSTAUsedList))) + { + pWapiStaInfo = (PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAUsedList.next, RT_WAPI_STA_INFO, list); + list_del_init(&pWapiStaInfo->list); + memset(pWapiStaInfo->PeerMacAddr,0,ETH_ALEN); + pWapiStaInfo->bSetkeyOk = 0; + list_add_tail(&pWapiStaInfo->list, &pWapiInfo->wapiSTAIdleList); + } + + while(!list_empty(&(pWapiInfo->wapiBKIDStoreList))) + { + pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDStoreList.next, RT_WAPI_BKID, list); + list_del_init(&pWapiBkid->list); + memset(pWapiBkid->bkid,0,16); + list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDIdleList); + } + WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__); +} + +void WapiReturnOneStaInfo(struct rtllib_device *ieee, u8 *MacAddr, u8 from_app) +{ + PRT_WAPI_T pWapiInfo; + PRT_WAPI_STA_INFO pWapiStaInfo = NULL; + PRT_WAPI_BKID pWapiBkid = NULL; + + pWapiInfo = &ieee->wapiInfo; + + WAPI_TRACE(WAPI_API, "==========> %s\n", __FUNCTION__); + + if(!from_app) + WapiCreateAppEventAndSend(ieee,NULL,0,MacAddr, false,false,false,0,true); + if(list_empty(&(pWapiInfo->wapiSTAUsedList))){ + return; + }else{ + list_for_each_entry(pWapiStaInfo, &pWapiInfo->wapiSTAUsedList, list) { + if(!memcmp(pWapiStaInfo->PeerMacAddr,MacAddr,ETH_ALEN)){ + pWapiStaInfo->bAuthenticateInProgress = false; + pWapiStaInfo->bSetkeyOk = false; + memset(pWapiStaInfo->PeerMacAddr,0,ETH_ALEN); + list_del_init(&pWapiStaInfo->list); + list_add_tail(&pWapiStaInfo->list, &pWapiInfo->wapiSTAIdleList); + break; + } + + } + } + + if(ieee->iw_mode == IW_MODE_INFRA){ + while(!list_empty(&(pWapiInfo->wapiBKIDStoreList))) + { + pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDStoreList.next, RT_WAPI_BKID, list); + list_del_init(&pWapiBkid->list); + memset(pWapiBkid->bkid,0,16); + list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDIdleList); + } + } + WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__); + return; +} + +void WapiFreeAllStaInfo(struct rtllib_device *ieee) +{ + PRT_WAPI_T pWapiInfo; + PRT_WAPI_STA_INFO pWapiStaInfo; + PRT_WAPI_BKID pWapiBkid; + WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__); + pWapiInfo = &ieee->wapiInfo; + + WapiReturnAllStaInfo(ieee); + while(!list_empty(&(pWapiInfo->wapiSTAIdleList))) + { + pWapiStaInfo = (PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAIdleList.next, RT_WAPI_STA_INFO, list); + list_del_init(&pWapiStaInfo->list); + } + + while(!list_empty(&(pWapiInfo->wapiBKIDIdleList))) + { + pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDIdleList.next, RT_WAPI_BKID, list); + list_del_init(&pWapiBkid->list); + } + WAPI_TRACE(WAPI_INIT, "<=========== %s\n", __FUNCTION__); + return; +} + +u8 SecIsWAIPacket(struct rtllib_device* ieee,struct sk_buff *skb) +{ + PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo); + PRT_WAPI_STA_INFO pWapiSta = NULL; + u8 WaiPkt = 0, *pTaddr, bFind = false; + u8 Offset_TypeWAI = 24 + 6; + struct rtllib_hdr_3addrqos *header; + u16 mask = 1, fc = 0; + + if((!pWapiInfo->bWapiEnable) || (!ieee->wapiInfo.bWapiEnable)) + return 0; + + header = (struct rtllib_hdr_3addrqos *)skb->data; + + fc = le16_to_cpu(header->frame_ctl); + if(fc & RTLLIB_FCTL_WEP) + return 0; + + pTaddr = header->addr2; + if(list_empty(&pWapiInfo->wapiSTAUsedList)){ + bFind = false; + }else{ + list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list){ + if(!memcmp(pTaddr,pWapiSta->PeerMacAddr,6)){ + bFind = true; + break; + } + } + } + + WAPI_TRACE(WAPI_API, "%s: bFind=%d pTaddr="MAC_FMT"\n", __FUNCTION__, bFind, MAC_ARG(pTaddr)); + + if( IsQoSDataFrame(skb->data) ){ + Offset_TypeWAI += sQoSCtlLng; + } + + if((header->frame_ctl & (mask<<14)) != 0){ + Offset_TypeWAI += WAPI_EXT_LEN; + } + + if( skb->len < (Offset_TypeWAI+1) ){ + WAPI_TRACE(WAPI_ERR, "%s(): invalid length(%d)\n",__FUNCTION__,skb->len); + return 0; + } + + if( (skb->data[Offset_TypeWAI]==0x88) && (skb->data[Offset_TypeWAI+1]==0xb4) ){ + WaiPkt = skb->data[Offset_TypeWAI+5]; + if(ieee->iw_mode == IW_MODE_ADHOC){ + if(bFind){ + if((WaiPkt == 8) && (pWapiInfo->wapiTxMsk.bSet) && (pWapiSta->wapiMsk.bSet) && ((skb->data[Offset_TypeWAI+14] & 0x10)==0)){ + printk("==============> %s(): Receive USK Request After MSK set!\n", __FUNCTION__); + DelStaInfo(ieee, pTaddr); + WapiReturnOneStaInfo (ieee, pTaddr, 0); + WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0); + } + + } + } + }else{ + WAPI_TRACE(WAPI_API, "%s(): non wai packet\n",__FUNCTION__); + } + + WAPI_TRACE(WAPI_API, "%s(): Recvd WAI frame. IsWAIPkt(%d)\n",__FUNCTION__, WaiPkt); + + return WaiPkt; +} + +/****************** +*********************/ +u8 Wapi_defragment(struct rtllib_device* ieee,u8* data, u16 len, + u8* pTaddr,bool bAuthenticator,u8* rxbuffer,u16* rxbuffer_len) +{ + PRT_CACHE_INFO pcache_info = NULL; + bool bfind = false; + + if(!list_empty(&ieee->cache_frag_list)){ + list_for_each_entry(pcache_info, &ieee->cache_frag_list, list) { + if((memcmp(pcache_info->saddr,pTaddr,ETH_ALEN)==0) + && (pcache_info->bAuthenticator == bAuthenticator)) + { + bfind = true; + break; + } + } + } + WAPI_TRACE(WAPI_RX, "%s: bFind=%d pTaddr="MAC_FMT"\n", __FUNCTION__, bfind, MAC_ARG(pTaddr)); + if(bfind == false) { + pcache_info = kmalloc(sizeof(RT_CACHE_INFO),GFP_ATOMIC); + if(pcache_info == NULL){ + WAPI_TRACE(WAPI_ERR,"%s(): can't malloc mem\n", __FUNCTION__); + goto drop2; + } + memset(pcache_info,0,sizeof(RT_CACHE_INFO)); + if(data[11] == 0x1){ + WAPI_TRACE(WAPI_RX, "%s(): First fragment, and have More fragments\n",__FUNCTION__); + memcpy(&(pcache_info->recvSeq),data+8, 2); + if(data[10] != 0x00) + { + WAPI_TRACE(WAPI_ERR, "%s(): First fragment,but fragnum is not 0.\n",__FUNCTION__); + goto drop1; + }else{ + data[10] = 0x0; + data[11] = 0x0; + if (len > 2000) { + WAPI_TRACE(WAPI_ERR,"111****************************%s():cache buf len is not enough: %d\n",__FUNCTION__,len); + goto drop1; + } + pcache_info->lastFragNum= 0x00; + memcpy(pcache_info->cache_buffer,data,len); + pcache_info->cache_buffer_len = len; + pcache_info->bAuthenticator = bAuthenticator; + memcpy(pcache_info->saddr,pTaddr,ETH_ALEN); + list_add_tail(&pcache_info->list, &ieee->cache_frag_list); + WAPI_TRACE(WAPI_RX, "%s(): First fragment, allocate cache to store.\n",__FUNCTION__); + goto drop2; + } + }else{ + if(data[10] == 0){ + WAPI_TRACE(WAPI_RX, "%s(): First fragment, no More fragment, ready to send to App.\n",__FUNCTION__); + if (len > 2000) { + WAPI_TRACE(WAPI_ERR,"222****************************%s():cache buf len is not enough: %d\n",__FUNCTION__,len); + goto drop1; + } + memcpy(rxbuffer,data,len); + *rxbuffer_len = len; + goto success; + }else{ + WAPI_TRACE(WAPI_ERR, "%s(): First fragment,no More fragment, but fragnum is not 0.\n",__FUNCTION__); + goto drop1; + } + } + } + else{ + if(data[11] == 0x1){ + if(memcmp(data+8,&(pcache_info->recvSeq),2)) { + WAPI_TRACE(WAPI_ERR, "%s(): Not First fragment, More fragment, seq num error.\n",__FUNCTION__); + list_del(&pcache_info->list); + goto drop1; + }else{ + if(data[10] == (pcache_info->lastFragNum+1)){ + WAPI_TRACE(WAPI_RX, "%s(): Not First fragment, More fragment, same seq num, copy to cache.\n",__FUNCTION__); + if ((pcache_info->cache_buffer_len + len - 12) > 2000) { + WAPI_TRACE(WAPI_ERR,"333****************************%s():cache buf len is not enough: %d\n",__FUNCTION__,pcache_info->cache_buffer_len + len - 12); + list_del(&pcache_info->list); + goto drop1; + } + memcpy(pcache_info->cache_buffer+(pcache_info->cache_buffer_len),data+12,len-12); + pcache_info->cache_buffer_len += len-12; + pcache_info->lastFragNum = data[10]; + goto drop2; + }else{ + WAPI_TRACE(WAPI_ERR, "%s(): Not First fragment, More fragment, same seq num, fragnum error.\n",__FUNCTION__); + list_del(&pcache_info->list); + goto drop1; + } + } + }else{ + if(memcmp(data+8,&(pcache_info->recvSeq),2)) { + WAPI_TRACE(WAPI_ERR, "%s(): Not First fragment, no More fragment, seq num error.\n",__FUNCTION__); + list_del(&pcache_info->list); + goto drop1; + }else{ + if(data[10] == (pcache_info->lastFragNum+1)){ + WAPI_TRACE(WAPI_RX, "%s(): Not First fragment, no More fragment, same seq num, ready to send to App.\n",__FUNCTION__); + if ((pcache_info->cache_buffer_len + len - 12) > 2000) { + WAPI_TRACE(WAPI_ERR,"444****************************%s():cache buf len is not enough: %d\n",__FUNCTION__,pcache_info->cache_buffer_len + len - 12); + list_del(&pcache_info->list); + goto drop1; + } + memcpy(pcache_info->cache_buffer+(pcache_info->cache_buffer_len),data+12,len-12); + pcache_info->cache_buffer_len += len-12; + memcpy(rxbuffer,pcache_info->cache_buffer,pcache_info->cache_buffer_len); + *rxbuffer_len = pcache_info->cache_buffer_len; + list_del(&pcache_info->list); + goto success; + }else{ + WAPI_TRACE(WAPI_ERR, "%s(): Not First fragment, no More fragment, same seq num, fragnum error.\n",__FUNCTION__); + list_del(&pcache_info->list); + goto drop1; + } + } + } + } + +drop1: + if(pcache_info) + kfree(pcache_info); + pcache_info = NULL; + return false; +drop2: + return false; +success: + if(pcache_info) + kfree(pcache_info); + pcache_info = NULL; + return true; +} + +/**************************************************************************** + * data[8-9]: Sequence Number + * data[10]: Fragment No + * data[11]: Flag = 1 indicates more data. + *****************************************************************************/ +void WapiHandleRecvPacket(struct rtllib_device* ieee,struct sk_buff *skb,u8 WaiPkt) +{ + PRT_WAPI_T pWapiInfo; + struct rtllib_hdr_3addrqos *hdr; + u8 *pTaddr, *recvPtr, *rxbuffer; + u8 bAuthenticator = false, receive_result = false; + int hdrlen = 0; + u16 recvLength = 0, fc = 0, rxbuffer_len = 0; + + WAPI_TRACE(WAPI_RX, "===========> %s: WaiPkt is %d\n", __FUNCTION__,WaiPkt); + + hdr = (struct rtllib_hdr_3addrqos *)skb->data; + pTaddr = hdr->addr2; + fc = hdr->frame_ctl; + hdrlen = rtllib_get_hdrlen(fc); + + pWapiInfo = &(ieee->wapiInfo); + if((WaiPkt == WAPI_CERTIFICATE_AUTHENTICATE_REQUEST) + ||(WaiPkt == WAPI_CERTIFICATE_AUTHENTICATE_RESPONSE)) + { + WAPI_TRACE(WAPI_RX, "%s: Valid Wai Packet \n", __FUNCTION__); + return; + }else{ + switch(WaiPkt) + { + case WAPI_PREAUTHENTICATE: + case WAPI_ACCESS_AUTHENTICATE_REQUEST: + case WAPI_USK_RESPONSE: + case WAPI_MSK_RESPONSE: + bAuthenticator = true; + break; + default: + break; + } + recvLength = skb->len - hdrlen - (SNAP_SIZE + sizeof(u16)); + recvPtr = skb->data + hdrlen + (SNAP_SIZE + sizeof(u16)); + + rxbuffer = kmalloc(2000, GFP_ATOMIC); + if(NULL == rxbuffer) + return; + + receive_result = Wapi_defragment(ieee,recvPtr, recvLength,pTaddr,bAuthenticator,rxbuffer,&rxbuffer_len); + if(receive_result) + WapiCreateAppEventAndSend(ieee, rxbuffer, rxbuffer_len, pTaddr, false,false, false, WaiPkt, false); + + kfree(rxbuffer); + } + WAPI_TRACE(WAPI_RX, "<=========== %s\n", __FUNCTION__); +} + +void WapiSetIE(struct rtllib_device *ieee) +{ + PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo); + u16 protocolVer = 1; + u16 akmCnt = 1; + u16 suiteCnt = 1; + u16 capability = 0; + u8 OUI[3]; + + OUI[0] = 0x00; + OUI[1] = 0x14; + OUI[2] = 0x72; + + pWapiInfo->wapiIELength = 0; + memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &protocolVer, 2); + pWapiInfo->wapiIELength +=2; + memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &akmCnt, 2); + pWapiInfo->wapiIELength +=2; + + if(pWapiInfo->bWapiPSK){ + memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3); + pWapiInfo->wapiIELength +=3; + pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x2; + pWapiInfo->wapiIELength +=1; + }else{ + memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3); + pWapiInfo->wapiIELength +=3; + pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1; + pWapiInfo->wapiIELength +=1; + } + + memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &suiteCnt, 2); + pWapiInfo->wapiIELength +=2; + memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3); + pWapiInfo->wapiIELength +=3; + pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1; + pWapiInfo->wapiIELength +=1; + + memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3); + pWapiInfo->wapiIELength +=3; + pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1; + pWapiInfo->wapiIELength +=1; + + memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &capability, 2); + pWapiInfo->wapiIELength +=2; +} + + +/* PN1 > PN2, return 1, + * else return 0. + */ +u32 WapiComparePN(u8 *PN1, u8 *PN2) +{ + char i; + + if ((NULL == PN1) || (NULL == PN2)) + return 1; + + if ((PN2[15] - PN1[15]) & 0x80) + return 1; + + for (i=16; i>0; i--) + { + if(PN1[i-1] == PN2[i-1]) + continue; + else if(PN1[i-1] > PN2[i-1]) + return 1; + else + return 0; + } + + return 0; +} + +/* AddCount: 1 or 2. + * If overflow, return 1, + * else return 0. + */ +u8 WapiIncreasePN(u8 *PN, u8 AddCount) +{ + u8 i; + + if (NULL == PN) + return 1; + /* + if(AddCount == 2){ + printk("############################%s(): PN[0]=0x%x\n", __FUNCTION__, PN[0]); + if(PN[0] == 0x48){ + PN[0] += AddCount; + return 1; + }else{ + PN[0] += AddCount; + return 0; + } + } + */ + + for (i=0; i<16; i++) + { + if (PN[i] + AddCount <= 0xff) + { + PN[i] += AddCount; + return 0; + } + else + { + PN[i] += AddCount; + AddCount = 1; + } + } + + return 1; +} + + +void WapiGetLastRxUnicastPNForQoSData( + u8 UserPriority, + PRT_WAPI_STA_INFO pWapiStaInfo, + u8 *PNOut +) +{ + WAPI_TRACE(WAPI_RX, "===========> %s\n", __FUNCTION__); + switch(UserPriority) + { + case 0: + case 3: + memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNBEQueue,16); + break; + case 1: + case 2: + memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNBKQueue,16); + break; + case 4: + case 5: + memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNVIQueue,16); + break; + case 6: + case 7: + memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNVOQueue,16); + break; + default: + WAPI_TRACE(WAPI_ERR, "%s: Unknown TID \n", __FUNCTION__); + break; + } + WAPI_TRACE(WAPI_RX, "<=========== %s\n", __FUNCTION__); +} + + +void WapiSetLastRxUnicastPNForQoSData( + u8 UserPriority, + u8 *PNIn, + PRT_WAPI_STA_INFO pWapiStaInfo +) +{ + WAPI_TRACE(WAPI_RX, "===========> %s\n", __FUNCTION__); + switch(UserPriority) + { + case 0: + case 3: + memcpy(pWapiStaInfo->lastRxUnicastPNBEQueue,PNIn,16); + break; + case 1: + case 2: + memcpy(pWapiStaInfo->lastRxUnicastPNBKQueue,PNIn,16); + break; + case 4: + case 5: + memcpy(pWapiStaInfo->lastRxUnicastPNVIQueue,PNIn,16); + break; + case 6: + case 7: + memcpy(pWapiStaInfo->lastRxUnicastPNVOQueue,PNIn,16); + break; + default: + WAPI_TRACE(WAPI_ERR, "%s: Unknown TID \n", __FUNCTION__); + break; + } + WAPI_TRACE(WAPI_RX, "<=========== %s\n", __FUNCTION__); +} + + +/**************************************************************************** +TRUE-----------------bRxReorder == FALSE not RX-Reorder +FALSE----------------bRxReorder == TRUE do RX Reorder +add to support WAPI to N-mode +*****************************************************************************/ +u8 WapiCheckPnInSwDecrypt( + struct rtllib_device *ieee, + struct sk_buff *pskb +) +{ + struct rtllib_hdr_3addrqos *header; + u16 fc; + u8 *pDaddr, *pTaddr, *pRaddr; + u8 ret = false; + + header = (struct rtllib_hdr_3addrqos *)pskb->data; + pTaddr = header->addr2; + pRaddr = header->addr1; + fc = le16_to_cpu(header->frame_ctl); + + if((fc & RTLLIB_FCTL_TODS) == RTLLIB_FCTL_TODS) + pDaddr = header->addr3; + else + pDaddr = header->addr1; + + if(eqMacAddr(pRaddr, ieee->dev->dev_addr) && + !is_multicast_ether_addr(pDaddr) && + ieee->current_network.qos_data.active && + IsQoSDataFrame(pskb->data) && ieee->pHTInfo->bCurrentHTSupport && + ieee->pHTInfo->bCurRxReorderEnable) + ret = false; + else + ret = true; + + WAPI_TRACE(WAPI_RX, "%s: return %d\n", __FUNCTION__, ret); + return ret; +} + + +/**************************************************************************** +TRUE-----------------Drop +FALSE---------------- handle +add to support WAPI to N-mode +*****************************************************************************/ +u8 WapiCheckDropForRxReorderCase( + struct rtllib_device *ieee, + struct rtllib_rxb* prxb +) +{ + PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo); + u8 *pLastRecvPN = NULL; + u8 bFind = false; + PRT_WAPI_STA_INFO pWapiSta = NULL; + + if(!pWapiInfo->bWapiEnable) + return false; + + if(list_empty(&pWapiInfo->wapiSTAUsedList)){ + bFind = false; + }else{ + list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) { + if(!memcmp(prxb->WapiSrcAddr,pWapiSta->PeerMacAddr,ETH_ALEN)){ + bFind = true; + break; + } + } + } + WAPI_TRACE(WAPI_RX, "%s: bFind=%d prxb->WapiSrcAddr="MAC_FMT"\n", __FUNCTION__, bFind, MAC_ARG(prxb->WapiSrcAddr)); + + if(bFind){ + switch(prxb->UserPriority) + { + case 0: + case 3: + pLastRecvPN = pWapiSta->lastRxUnicastPNBEQueue; + break; + case 1: + case 2: + pLastRecvPN = pWapiSta->lastRxUnicastPNBKQueue; + break; + case 4: + case 5: + pLastRecvPN = pWapiSta->lastRxUnicastPNVIQueue; + break; + case 6: + case 7: + pLastRecvPN = pWapiSta->lastRxUnicastPNVOQueue; + break; + default: + WAPI_TRACE(WAPI_ERR,"%s: Unknown TID \n",__FUNCTION__); + break; + } + + if(!WapiComparePN(prxb->WapiTempPN,pLastRecvPN)) + { + WAPI_TRACE(WAPI_RX,"%s: Equal PN!!\n",__FUNCTION__); + return true; + } + else + { + memcpy(pLastRecvPN,prxb->WapiTempPN,16); + return false; + } + } + else + return false; +} + +int WapiSendWaiPacket(struct rtllib_device *ieee, struct sk_buff *pskb) +{ + struct sk_buff * newskb = NULL; + struct rtllib_hdr_3addr *mac_hdr=NULL; + cb_desc *tcb_desc = NULL; + + RT_ASSERT_RET_VALUE(ieee,-1); + RT_ASSERT_RET_VALUE(pskb,-1); + + if(pskb->len < (14 + sizeof(struct rtllib_hdr_3addr))) + { + WAPI_TRACE(WAPI_ERR, "%s: WAI frame is too small!!\n", __FUNCTION__); + goto failed; + } + + skb_pull(pskb, 14); + + newskb = dev_alloc_skb(pskb->len+ieee->tx_headroom); + if(!newskb){ + WAPI_TRACE(WAPI_ERR,"%s: can't alloc skb\n",__FUNCTION__); + goto failed; + } + skb_reserve(newskb, ieee->tx_headroom); + memcpy(skb_put(newskb, pskb->len), pskb->data, pskb->len); + dev_kfree_skb_any(pskb); + /* called with 2nd parm 0, no tx mgmt lock required */ + rtllib_sta_wakeup(ieee,0); + + tcb_desc = (cb_desc *)(newskb->cb + MAX_DEV_ADDR_SIZE); +#ifdef RTL8192SU_FPGA_UNSPECIFIED_NETWORK + tcb_desc->queue_index = NORMAL_QUEUE; +#else + tcb_desc->queue_index = BE_QUEUE; +#endif + tcb_desc->data_rate = 0x02; + tcb_desc->bTxUseDriverAssingedRate = true; + tcb_desc->RATRIndex = 7; + tcb_desc->bTxDisableRateFallBack = 1; +#ifdef _RTL8192_EXT_PATCH_ + tcb_desc->macId = 0; +#endif + + mac_hdr = (struct rtllib_hdr_3addr *)(newskb->data); + mac_hdr->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4); + if (ieee->seq_ctrl[0] == 0xFFF) + ieee->seq_ctrl[0] = 0; + else + ieee->seq_ctrl[0]++; + + if(!ieee->check_nic_enough_desc(ieee->dev,tcb_desc->queue_index)||\ + (skb_queue_len(&ieee->skb_waitQ[tcb_desc->queue_index]) != 0)||\ + (ieee->queue_stop) ) { + WAPI_TRACE(WAPI_TX, "%s: Insert to waitqueue (idx=%d)!!\n", __FUNCTION__, tcb_desc->queue_index); + skb_queue_tail(&ieee->skb_waitQ[tcb_desc->queue_index], newskb); + } else { + ieee->softmac_hard_start_xmit(newskb,ieee->dev); + } + + return 0; + +failed: + dev_kfree_skb_any(pskb); + return -1; +} +/********************************************************** + **********************************************************/ +const u8 Sbox[256] = { +0xd6,0x90,0xe9,0xfe,0xcc,0xe1,0x3d,0xb7,0x16,0xb6,0x14,0xc2,0x28,0xfb,0x2c,0x05, +0x2b,0x67,0x9a,0x76,0x2a,0xbe,0x04,0xc3,0xaa,0x44,0x13,0x26,0x49,0x86,0x06,0x99, +0x9c,0x42,0x50,0xf4,0x91,0xef,0x98,0x7a,0x33,0x54,0x0b,0x43,0xed,0xcf,0xac,0x62, +0xe4,0xb3,0x1c,0xa9,0xc9,0x08,0xe8,0x95,0x80,0xdf,0x94,0xfa,0x75,0x8f,0x3f,0xa6, +0x47,0x07,0xa7,0xfc,0xf3,0x73,0x17,0xba,0x83,0x59,0x3c,0x19,0xe6,0x85,0x4f,0xa8, +0x68,0x6b,0x81,0xb2,0x71,0x64,0xda,0x8b,0xf8,0xeb,0x0f,0x4b,0x70,0x56,0x9d,0x35, +0x1e,0x24,0x0e,0x5e,0x63,0x58,0xd1,0xa2,0x25,0x22,0x7c,0x3b,0x01,0x21,0x78,0x87, +0xd4,0x00,0x46,0x57,0x9f,0xd3,0x27,0x52,0x4c,0x36,0x02,0xe7,0xa0,0xc4,0xc8,0x9e, +0xea,0xbf,0x8a,0xd2,0x40,0xc7,0x38,0xb5,0xa3,0xf7,0xf2,0xce,0xf9,0x61,0x15,0xa1, +0xe0,0xae,0x5d,0xa4,0x9b,0x34,0x1a,0x55,0xad,0x93,0x32,0x30,0xf5,0x8c,0xb1,0xe3, +0x1d,0xf6,0xe2,0x2e,0x82,0x66,0xca,0x60,0xc0,0x29,0x23,0xab,0x0d,0x53,0x4e,0x6f, +0xd5,0xdb,0x37,0x45,0xde,0xfd,0x8e,0x2f,0x03,0xff,0x6a,0x72,0x6d,0x6c,0x5b,0x51, +0x8d,0x1b,0xaf,0x92,0xbb,0xdd,0xbc,0x7f,0x11,0xd9,0x5c,0x41,0x1f,0x10,0x5a,0xd8, +0x0a,0xc1,0x31,0x88,0xa5,0xcd,0x7b,0xbd,0x2d,0x74,0xd0,0x12,0xb8,0xe5,0xb4,0xb0, +0x89,0x69,0x97,0x4a,0x0c,0x96,0x77,0x7e,0x65,0xb9,0xf1,0x09,0xc5,0x6e,0xc6,0x84, +0x18,0xf0,0x7d,0xec,0x3a,0xdc,0x4d,0x20,0x79,0xee,0x5f,0x3e,0xd7,0xcb,0x39,0x48 +}; + +const u32 CK[32] = { + 0x00070e15, 0x1c232a31, 0x383f464d, 0x545b6269, + 0x70777e85, 0x8c939aa1, 0xa8afb6bd, 0xc4cbd2d9, + 0xe0e7eef5, 0xfc030a11, 0x181f262d, 0x343b4249, + 0x50575e65, 0x6c737a81, 0x888f969d, 0xa4abb2b9, + 0xc0c7ced5, 0xdce3eaf1, 0xf8ff060d, 0x141b2229, + 0x30373e45, 0x4c535a61, 0x686f767d, 0x848b9299, + 0xa0a7aeb5, 0xbcc3cad1, 0xd8dfe6ed, 0xf4fb0209, + 0x10171e25, 0x2c333a41, 0x484f565d, 0x646b7279 }; + +#define Rotl(_x, _y) (((_x) << (_y)) | ((_x) >> (32 - (_y)))) + +#define ByteSub(_A) (Sbox[(_A) >> 24 & 0xFF] << 24 | \ + Sbox[(_A) >> 16 & 0xFF] << 16 | \ + Sbox[(_A) >> 8 & 0xFF] << 8 | \ + Sbox[(_A) & 0xFF]) + +#define L1(_B) ((_B) ^ Rotl(_B, 2) ^ Rotl(_B, 10) ^ Rotl(_B, 18) ^ Rotl(_B, 24)) +#define L2(_B) ((_B) ^ Rotl(_B, 13) ^ Rotl(_B, 23)) + +static void +xor_block(void *dst, void *src1, void *src2) +/* 128-bit xor: *dst = *src1 xor *src2. Pointers must be 32-bit aligned */ +{ + ((u32 *)dst)[0] = ((u32 *)src1)[0] ^ ((u32 *)src2)[0]; + ((u32 *)dst)[1] = ((u32 *)src1)[1] ^ ((u32 *)src2)[1]; + ((u32 *)dst)[2] = ((u32 *)src1)[2] ^ ((u32 *)src2)[2]; + ((u32 *)dst)[3] = ((u32 *)src1)[3] ^ ((u32 *)src2)[3]; +} + + +void SMS4Crypt(u8 *Input, u8 *Output, u32 *rk) +{ + u32 r, mid, x0, x1, x2, x3, *p; + p = (u32 *)Input; + x0 = p[0]; + x1 = p[1]; + x2 = p[2]; + x3 = p[3]; +#ifdef LITTLE_ENDIAN + x0 = Rotl(x0, 16); x0 = ((x0 & 0x00FF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8); + x1 = Rotl(x1, 16); x1 = ((x1 & 0x00FF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8); + x2 = Rotl(x2, 16); x2 = ((x2 & 0x00FF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8); + x3 = Rotl(x3, 16); x3 = ((x3 & 0x00FF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8); +#endif + for (r = 0; r < 32; r += 4) + { + mid = x1 ^ x2 ^ x3 ^ rk[r + 0]; + mid = ByteSub(mid); + x0 ^= L1(mid); + mid = x2 ^ x3 ^ x0 ^ rk[r + 1]; + mid = ByteSub(mid); + x1 ^= L1(mid); + mid = x3 ^ x0 ^ x1 ^ rk[r + 2]; + mid = ByteSub(mid); + x2 ^= L1(mid); + mid = x0 ^ x1 ^ x2 ^ rk[r + 3]; + mid = ByteSub(mid); + x3 ^= L1(mid); + } +#ifdef LITTLE_ENDIAN + x0 = Rotl(x0, 16); x0 = ((x0 & 0x00FF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8); + x1 = Rotl(x1, 16); x1 = ((x1 & 0x00FF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8); + x2 = Rotl(x2, 16); x2 = ((x2 & 0x00FF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8); + x3 = Rotl(x3, 16); x3 = ((x3 & 0x00FF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8); +#endif + p = (u32 *)Output; + p[0] = x3; + p[1] = x2; + p[2] = x1; + p[3] = x0; +} + + + +void SMS4KeyExt(u8 *Key, u32 *rk, u32 CryptFlag) +{ + u32 r, mid, x0, x1, x2, x3, *p; + + p = (u32 *)Key; + x0 = p[0]; + x1 = p[1]; + x2 = p[2]; + x3 = p[3]; +#ifdef LITTLE_ENDIAN + x0 = Rotl(x0, 16); x0 = ((x0 & 0xFF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8); + x1 = Rotl(x1, 16); x1 = ((x1 & 0xFF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8); + x2 = Rotl(x2, 16); x2 = ((x2 & 0xFF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8); + x3 = Rotl(x3, 16); x3 = ((x3 & 0xFF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8); +#endif + + x0 ^= 0xa3b1bac6; + x1 ^= 0x56aa3350; + x2 ^= 0x677d9197; + x3 ^= 0xb27022dc; + for (r = 0; r < 32; r += 4) + { + mid = x1 ^ x2 ^ x3 ^ CK[r + 0]; + mid = ByteSub(mid); + rk[r + 0] = x0 ^= L2(mid); + mid = x2 ^ x3 ^ x0 ^ CK[r + 1]; + mid = ByteSub(mid); + rk[r + 1] = x1 ^= L2(mid); + mid = x3 ^ x0 ^ x1 ^ CK[r + 2]; + mid = ByteSub(mid); + rk[r + 2] = x2 ^= L2(mid); + mid = x0 ^ x1 ^ x2 ^ CK[r + 3]; + mid = ByteSub(mid); + rk[r + 3] = x3 ^= L2(mid); + } + if (CryptFlag == DECRYPT) + { + for (r = 0; r < 16; r++) + mid = rk[r], rk[r] = rk[31 - r], rk[31 - r] = mid; + } +} + + +void WapiSMS4Cryption(u8 *Key, u8 *IV, u8 *Input, u16 InputLength, + u8 *Output, u16 *OutputLength, u32 CryptFlag) +{ + u32 blockNum,i,j, rk[32]; + u16 remainder; + u8 blockIn[16],blockOut[16], tempIV[16], k; + + *OutputLength = 0; + remainder = InputLength & 0x0F; + blockNum = InputLength >> 4; + if(remainder !=0) + blockNum++; + else + remainder = 16; + + for(k=0;k<16;k++) + tempIV[k] = IV[15-k]; + + memcpy(blockIn, tempIV, 16); + + SMS4KeyExt((u8 *)Key, rk,CryptFlag); + + for(i=0; i> 4; + + for(k=0;k<16;k++) + tempIV[k] = IV[15-k]; + + memcpy(BlockIn, tempIV, 16); + + SMS4KeyExt((u8 *)Key, rk, ENCRYPT); + + SMS4Crypt((u8 *)BlockIn, BlockOut, rk); + + for(i=0; i> 4; + + for(i=0; iframe_ctl); + if((fc & (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) == (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) + { + memcpy((TempBuf+22), (pHeader+24), 6); + QosOffset = 30; + }else{ + memset((TempBuf+22), 0, 6); + QosOffset = 24; + } + + if( IsQoSDataFrame(pHeader)){ + memcpy((TempBuf+28), (pHeader+QosOffset), 2); + TempLen += 2; + IV = pHeader + QosOffset + 2 + 2; + }else{ + IV = pHeader + QosOffset + 2; + } + + TempBuf[TempLen-1] = (u8)(DataLen & 0xff); + TempBuf[TempLen-2] = (u8)((DataLen & 0xff00)>>8); + TempBuf[TempLen-4] = KeyIdx; + + WAPI_DATA(WAPI_TX, "CalculateMic - KEY", MicKey, 16); + WAPI_DATA(WAPI_TX, "CalculateMic - IV", IV, 16); + WAPI_DATA(WAPI_TX, "CalculateMic - TempBuf", TempBuf, TempLen); + WAPI_DATA(WAPI_TX, "CalculateMic - pData", pData, DataLen); + + WapiSMS4CalculateMic(MicKey, IV, TempBuf, TempLen, + pData, DataLen, MicBuffer, &MicLen); + + if (MicLen != 16) + WAPI_TRACE(WAPI_ERR,"%s: MIC Length Error!!\n",__FUNCTION__); +} + +int SecSMS4HeaderFillIV(struct rtllib_device *ieee, struct sk_buff *pskb) +{ + u8 *pSecHeader = NULL, *pos = NULL, *pRA = NULL; + u8 bPNOverflow = false, bFindMatchPeer = false, hdr_len = 0; + PWLAN_HEADER_WAPI_EXTENSION pWapiExt = NULL; + PRT_WAPI_T pWapiInfo = &ieee->wapiInfo; + PRT_WAPI_STA_INFO pWapiSta = NULL; + int ret = 0; + + if ((!ieee->WapiSupport) || (!ieee->wapiInfo.bWapiEnable)){ + WAPI_TRACE(WAPI_ERR,"%s: ieee->WapiSupport = 0!!\n",__FUNCTION__); + return -1; + } + + hdr_len = sMacHdrLng; + if(IsQoSDataFrame(pskb->data) ){ + hdr_len += sQoSCtlLng; + } + + pos = skb_push(pskb, ieee->wapiInfo.extra_prefix_len); + memmove(pos, pos+ieee->wapiInfo.extra_prefix_len, hdr_len); + + pSecHeader = pskb->data + hdr_len; + pWapiExt = (PWLAN_HEADER_WAPI_EXTENSION)pSecHeader; + pRA = pskb->data + 4; + + WAPI_DATA(WAPI_TX, "FillIV - Before Fill IV", pskb->data, pskb->len); + + if( is_multicast_ether_addr(pRA) ){ + if(!pWapiInfo->wapiTxMsk.bTxEnable){ + WAPI_TRACE(WAPI_ERR,"%s: bTxEnable = 0!!\n",__FUNCTION__); + return -2; + } + if(pWapiInfo->wapiTxMsk.keyId <= 1){ + pWapiExt->KeyIdx = pWapiInfo->wapiTxMsk.keyId; + pWapiExt->Reserved = 0; + bPNOverflow = WapiIncreasePN(pWapiInfo->lastTxMulticastPN, 1); + memcpy(pWapiExt->PN, pWapiInfo->lastTxMulticastPN, 16); + if (bPNOverflow){ + WAPI_TRACE(WAPI_ERR,"===============>%s():multicast PN overflow\n",__FUNCTION__); + WapiCreateAppEventAndSend(ieee,NULL,0,pRA, false, false, true, 0, false); + } + }else{ + WAPI_TRACE(WAPI_ERR,"%s: Invalid Wapi Multicast KeyIdx!!\n",__FUNCTION__); + ret = -3; + } + } + else{ + list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) { + if(!memcmp(pWapiSta->PeerMacAddr,pRA,6)){ + bFindMatchPeer = true; + break; + } + } + if (bFindMatchPeer){ + if((!pWapiSta->wapiUskUpdate.bTxEnable) && (!pWapiSta->wapiUsk.bTxEnable)){ + WAPI_TRACE(WAPI_ERR,"%s: bTxEnable = 0!!\n",__FUNCTION__); + return -4; + } + if (pWapiSta->wapiUsk.keyId <= 1){ + if(pWapiSta->wapiUskUpdate.bTxEnable) + pWapiExt->KeyIdx = pWapiSta->wapiUskUpdate.keyId; + else + pWapiExt->KeyIdx = pWapiSta->wapiUsk.keyId; + + pWapiExt->Reserved = 0; + bPNOverflow = WapiIncreasePN(pWapiSta->lastTxUnicastPN, 2); + memcpy(pWapiExt->PN, pWapiSta->lastTxUnicastPN, 16); + if (bPNOverflow){ + WAPI_TRACE(WAPI_ERR,"===============>%s():unicast PN overflow\n",__FUNCTION__); + WapiCreateAppEventAndSend(ieee,NULL,0,pWapiSta->PeerMacAddr, false, true, false, 0, false); + } + }else{ + WAPI_TRACE(WAPI_ERR,"%s: Invalid Wapi Unicast KeyIdx!!\n",__FUNCTION__); + ret = -5; + } + } + else{ + WAPI_TRACE(WAPI_ERR,"%s: Can not find Peer Sta "MAC_FMT"!!\n",__FUNCTION__, MAC_ARG(pRA)); + ret = -6; + } + } + + WAPI_DATA(WAPI_TX, "FillIV - After Fill IV", pskb->data, pskb->len); + return ret; +} + +void SecSWSMS4Encryption( + struct rtllib_device *ieee, + struct sk_buff *pskb + ) +{ + PRT_WAPI_T pWapiInfo = &ieee->wapiInfo; + PRT_WAPI_STA_INFO pWapiSta = NULL; + u8 *SecPtr = NULL, *pRA, *pMicKey = NULL, *pDataKey = NULL, *pIV = NULL, *pHeader = pskb->data; + u8 IVOffset, DataOffset, bFindMatchPeer = false, KeyIdx = 0, MicBuffer[16]; + u16 OutputLength; + +#if defined(RTL8192U) || defined(RTL8192SU) + u32 SpecificHeadOverhead = 0; +#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE + cb_desc *tcb_desc = (cb_desc *)(pskb->cb + MAX_DEV_ADDR_SIZE); + if (tcb_desc->drv_agg_enable) + SpecificHeadOverhead = TX_PACKET_DRVAGGR_SUBFRAME_SHIFT_BYTES; + else +#endif + SpecificHeadOverhead = TX_PACKET_SHIFT_BYTES; + + pHeader += SpecificHeadOverhead; +#endif + WAPI_TRACE(WAPI_TX, "=========>%s\n", __FUNCTION__); + + if( IsQoSDataFrame(pHeader) ){ + IVOffset = sMacHdrLng + sQoSCtlLng; + }else{ + IVOffset = sMacHdrLng; + } + + DataOffset = IVOffset + ieee->wapiInfo.extra_prefix_len; + + pRA = pHeader + 4; + if( is_multicast_ether_addr(pRA) ){ + KeyIdx = pWapiInfo->wapiTxMsk.keyId; + pIV = pWapiInfo->lastTxMulticastPN; + pMicKey = pWapiInfo->wapiTxMsk.micKey; + pDataKey = pWapiInfo->wapiTxMsk.dataKey; + }else{ + if (!list_empty(&(pWapiInfo->wapiSTAUsedList))){ + list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) { + if (0 == memcmp(pWapiSta->PeerMacAddr, pRA, 6)){ + bFindMatchPeer = true; + break; + } + } + + if (bFindMatchPeer){ + if (pWapiSta->wapiUskUpdate.bTxEnable){ + KeyIdx = pWapiSta->wapiUskUpdate.keyId; + WAPI_TRACE(WAPI_TX, "%s(): Use update USK!! KeyIdx=%d\n", __FUNCTION__, KeyIdx); + pIV = pWapiSta->lastTxUnicastPN; + pMicKey = pWapiSta->wapiUskUpdate.micKey; + pDataKey = pWapiSta->wapiUskUpdate.dataKey; + }else{ + KeyIdx = pWapiSta->wapiUsk.keyId; + WAPI_TRACE(WAPI_TX, "%s(): Use USK!! KeyIdx=%d\n", __FUNCTION__, KeyIdx); + pIV = pWapiSta->lastTxUnicastPN; + pMicKey = pWapiSta->wapiUsk.micKey; + pDataKey = pWapiSta->wapiUsk.dataKey; + } + }else{ + WAPI_TRACE(WAPI_ERR,"%s: Can not find Peer Sta!!\n",__FUNCTION__); + return; + } + }else{ + WAPI_TRACE(WAPI_ERR,"%s: wapiSTAUsedList is empty!!\n",__FUNCTION__); + return; + } + } + + SecPtr = pHeader; + SecCalculateMicSMS4(KeyIdx, pMicKey, SecPtr, (SecPtr+DataOffset), pskb->len-DataOffset, MicBuffer); + + WAPI_DATA(WAPI_TX, "Encryption - MIC", MicBuffer, ieee->wapiInfo.extra_postfix_len); + + memcpy(skb_put(pskb,ieee->wapiInfo.extra_postfix_len), + MicBuffer, + ieee->wapiInfo.extra_postfix_len + ); + + WapiSMS4Encryption(pDataKey, pIV, (SecPtr+DataOffset), pskb->len-DataOffset, (SecPtr+DataOffset), &OutputLength); + + WAPI_DATA(WAPI_TX, "Encryption - After SMS4 encryption", pskb->data,pskb->len); + + if (OutputLength != pskb->len-DataOffset) + WAPI_TRACE(WAPI_ERR,"%s: Output Length Error!!\n",__FUNCTION__); + + WAPI_TRACE(WAPI_TX, "<=========%s\n", __FUNCTION__); +} + +u8 SecSWSMS4Decryption( + struct rtllib_device *ieee, + struct sk_buff *pskb, + struct rtllib_rx_stats *rx_stats + ) +{ + PRT_WAPI_T pWapiInfo = &ieee->wapiInfo; + PRT_WAPI_STA_INFO pWapiSta = NULL; + u8 IVOffset, DataOffset, bFindMatchPeer = false, bUseUpdatedKey = false; + u8 KeyIdx, MicBuffer[16], lastRxPNforQoS[16]; + u8 *pRA, *pTA, *pMicKey, *pDataKey, *pLastRxPN, *pRecvPN, *pSecData, *pRecvMic, *pos; + u8 TID = 0; + u16 OutputLength, DataLen; + + rx_stats->bWapiCheckPNInDecrypt = WapiCheckPnInSwDecrypt(ieee, pskb); + WAPI_TRACE(WAPI_RX, "=========>%s: check PN %d\n", __FUNCTION__,rx_stats->bWapiCheckPNInDecrypt); + WAPI_DATA(WAPI_RX, "Decryption - Before decryption", pskb->data, pskb->len); + + IVOffset = sMacHdrLng; + if( rx_stats->bIsQosData ){ + IVOffset += sQoSCtlLng; + } + if( rx_stats->bContainHTC ) + IVOffset += sHTCLng; + + + DataOffset = IVOffset + ieee->wapiInfo.extra_prefix_len; + + pRA = pskb->data + 4; + pTA = pskb->data + 10; + KeyIdx = *(pskb->data + IVOffset); + pRecvPN = pskb->data + IVOffset + 2; + pSecData = pskb->data + DataOffset; + DataLen = pskb->len - DataOffset; + pRecvMic = pskb->data + pskb->len - ieee->wapiInfo.extra_postfix_len; + TID = Frame_QoSTID(pskb->data); + + if (!list_empty(&(pWapiInfo->wapiSTAUsedList))){ + list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) { + if (0 == memcmp(pWapiSta->PeerMacAddr, pTA, 6)){ + bFindMatchPeer = true; + break; + } + } + } + + if (!bFindMatchPeer){ + WAPI_TRACE(WAPI_ERR, "%s: Can not find Peer Sta "MAC_FMT" for Key Info!!!\n", __FUNCTION__, MAC_ARG(pTA)); + return false; + } + + if( is_multicast_ether_addr(pRA) ){ + WAPI_TRACE(WAPI_RX, "%s: Multicast decryption !!!\n", __FUNCTION__); + if (pWapiSta->wapiMsk.keyId == KeyIdx && pWapiSta->wapiMsk.bSet){ + pLastRxPN = pWapiSta->lastRxMulticastPN; + if (!WapiComparePN(pRecvPN, pLastRxPN)){ + WAPI_TRACE(WAPI_ERR, "%s: MSK PN is not larger than last, Dropped!!!\n", __FUNCTION__); + WAPI_DATA(WAPI_ERR, "pRecvPN:", pRecvPN, 16); + WAPI_DATA(WAPI_ERR, "pLastRxPN:", pLastRxPN, 16); + return false; + } + + memcpy(pLastRxPN, pRecvPN, 16); + pMicKey = pWapiSta->wapiMsk.micKey; + pDataKey = pWapiSta->wapiMsk.dataKey; + }else if (pWapiSta->wapiMskUpdate.keyId == KeyIdx && pWapiSta->wapiMskUpdate.bSet){ + WAPI_TRACE(WAPI_RX, "%s: Use Updated MSK for Decryption !!!\n", __FUNCTION__); + bUseUpdatedKey = true; + memcpy(pWapiSta->lastRxMulticastPN, pRecvPN, 16); + pMicKey = pWapiSta->wapiMskUpdate.micKey; + pDataKey = pWapiSta->wapiMskUpdate.dataKey; + }else{ + WAPI_TRACE(WAPI_ERR, "%s: Can not find MSK with matched KeyIdx(%d), Dropped !!!\n", __FUNCTION__,KeyIdx); + return false; + } + } + else{ + WAPI_TRACE(WAPI_RX, "%s: Unicast decryption !!!\n", __FUNCTION__); + if (pWapiSta->wapiUsk.keyId == KeyIdx && pWapiSta->wapiUsk.bSet){ + WAPI_TRACE(WAPI_RX, "%s: Use USK for Decryption!!!\n", __FUNCTION__); + if(rx_stats->bWapiCheckPNInDecrypt){ + if(rx_stats->bIsQosData){ + WapiGetLastRxUnicastPNForQoSData(TID, pWapiSta, lastRxPNforQoS); + pLastRxPN = lastRxPNforQoS; + }else{ + pLastRxPN = pWapiSta->lastRxUnicastPN; + } + if (!WapiComparePN(pRecvPN, pLastRxPN)){ + return false; + } + if(rx_stats->bIsQosData){ + WapiSetLastRxUnicastPNForQoSData(TID, pRecvPN, pWapiSta); + }else{ + memcpy(pWapiSta->lastRxUnicastPN, pRecvPN, 16); + } + }else{ + memcpy(rx_stats->WapiTempPN,pRecvPN,16); + } + + if (ieee->iw_mode == IW_MODE_INFRA){ + if ((pRecvPN[0] & 0x1) == 0){ + WAPI_TRACE(WAPI_ERR, "%s: Rx USK PN is not odd when Infra STA mode, Dropped !!!\n", __FUNCTION__); + return false; + } + } + + pMicKey = pWapiSta->wapiUsk.micKey; + pDataKey = pWapiSta->wapiUsk.dataKey; + } + else if (pWapiSta->wapiUskUpdate.keyId == KeyIdx && pWapiSta->wapiUskUpdate.bSet ){ + WAPI_TRACE(WAPI_RX, "%s: Use Updated USK for Decryption!!!\n", __FUNCTION__); + if(pWapiSta->bAuthenticatorInUpdata) + bUseUpdatedKey = true; + else + bUseUpdatedKey = false; + + if(rx_stats->bIsQosData){ + WapiSetLastRxUnicastPNForQoSData(TID, pRecvPN, pWapiSta); + }else{ + memcpy(pWapiSta->lastRxUnicastPN, pRecvPN, 16); + } + pMicKey = pWapiSta->wapiUskUpdate.micKey; + pDataKey = pWapiSta->wapiUskUpdate.dataKey; + }else{ + WAPI_TRACE(WAPI_ERR, "%s: No valid USK!!!KeyIdx=%d pWapiSta->wapiUsk.keyId=%d pWapiSta->wapiUskUpdate.keyId=%d\n", __FUNCTION__, KeyIdx, pWapiSta->wapiUsk.keyId, pWapiSta->wapiUskUpdate.keyId); + dump_buf(pskb->data,pskb->len); + return false; + } + } + + WAPI_DATA(WAPI_RX, "Decryption - DataKey", pDataKey, 16); + WAPI_DATA(WAPI_RX, "Decryption - IV", pRecvPN, 16); + WapiSMS4Decryption(pDataKey, pRecvPN, pSecData, DataLen, pSecData, &OutputLength); + + if (OutputLength != DataLen) + WAPI_TRACE(WAPI_ERR, "%s: Output Length Error!!!!\n", __FUNCTION__); + + WAPI_DATA(WAPI_RX, "Decryption - After decryption", pskb->data, pskb->len); + + DataLen -= ieee->wapiInfo.extra_postfix_len; + + SecCalculateMicSMS4(KeyIdx, pMicKey, pskb->data, pSecData, DataLen, MicBuffer); + + WAPI_DATA(WAPI_RX, "Decryption - MIC received", pRecvMic, SMS4_MIC_LEN); + WAPI_DATA(WAPI_RX, "Decryption - MIC calculated", MicBuffer, SMS4_MIC_LEN); + + if (0 == memcmp(MicBuffer, pRecvMic, ieee->wapiInfo.extra_postfix_len)){ + WAPI_TRACE(WAPI_RX, "%s: Check MIC OK!!\n", __FUNCTION__); + if (bUseUpdatedKey){ + if ( is_multicast_ether_addr(pRA) ){ + WAPI_TRACE(WAPI_API, "%s(): AE use new update MSK!!\n", __FUNCTION__); + pWapiSta->wapiMsk.keyId = pWapiSta->wapiMskUpdate.keyId; + memcpy(pWapiSta->wapiMsk.dataKey, pWapiSta->wapiMskUpdate.dataKey, 16); + memcpy(pWapiSta->wapiMsk.micKey, pWapiSta->wapiMskUpdate.micKey, 16); + pWapiSta->wapiMskUpdate.bTxEnable = pWapiSta->wapiMskUpdate.bSet = false; + }else{ + WAPI_TRACE(WAPI_API, "%s(): AE use new update USK!!\n", __FUNCTION__); + pWapiSta->wapiUsk.keyId = pWapiSta->wapiUskUpdate.keyId; + memcpy(pWapiSta->wapiUsk.dataKey, pWapiSta->wapiUskUpdate.dataKey, 16); + memcpy(pWapiSta->wapiUsk.micKey, pWapiSta->wapiUskUpdate.micKey, 16); + pWapiSta->wapiUskUpdate.bTxEnable = pWapiSta->wapiUskUpdate.bSet = false; + } + } + }else{ + WAPI_TRACE(WAPI_ERR, "%s: Check MIC Error, Dropped !!!!\n", __FUNCTION__); + return false; + } + + pos = pskb->data; + memmove(pos+ieee->wapiInfo.extra_prefix_len, pos, IVOffset); + skb_pull(pskb, ieee->wapiInfo.extra_prefix_len); + + WAPI_TRACE(WAPI_RX, "<=========%s\n", __FUNCTION__); + + return true; +} + +void wapi_test_set_key(struct rtllib_device *ieee, u8* buf) +{ /*Data: keyType(1) + bTxEnable(1) + bAuthenticator(1) + bUpdate(1) + PeerAddr(6) + DataKey(16) + MicKey(16) + KeyId(1)*/ + PRT_WAPI_T pWapiInfo = &ieee->wapiInfo; + PRT_WAPI_BKID pWapiBkid; + PRT_WAPI_STA_INFO pWapiSta; + u8 data[43]; + bool bTxEnable; + bool bUpdate; + bool bAuthenticator; + u8 PeerAddr[6]; + u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ; + u8 WapiASUEPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ; + u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ; + + WAPI_TRACE(WAPI_INIT, "===========>%s\n", __FUNCTION__); + + if (!ieee->WapiSupport){ + return; + } + + copy_from_user(data, buf, 43); + bTxEnable = data[1]; + bAuthenticator = data[2]; + bUpdate = data[3]; + memcpy(PeerAddr,data+4,6); + + if(data[0] == 0x3){ + if(!list_empty(&(pWapiInfo->wapiBKIDIdleList))){ + pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDIdleList.next, RT_WAPI_BKID, list); + list_del_init(&pWapiBkid->list); + memcpy(pWapiBkid->bkid, data+10, 16); + WAPI_DATA(WAPI_INIT, "SetKey - BKID", pWapiBkid->bkid, 16); + list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDStoreList); + } + }else{ + list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) { + if(!memcmp(pWapiSta->PeerMacAddr,PeerAddr,6)){ + pWapiSta->bAuthenticatorInUpdata = false; + switch(data[0]){ + case 1: + if(bAuthenticator){ + memcpy(pWapiSta->lastTxUnicastPN,WapiAEPNInitialValueSrc,16); + if(!bUpdate) { + WAPI_TRACE(WAPI_INIT,"AE fisrt set usk \n"); + pWapiSta->wapiUsk.bSet = true; + memcpy(pWapiSta->wapiUsk.dataKey,data+10,16); + memcpy(pWapiSta->wapiUsk.micKey,data+26,16); + pWapiSta->wapiUsk.keyId = *(data+42); + pWapiSta->wapiUsk.bTxEnable = true; + WAPI_DATA(WAPI_INIT, "SetKey - AE USK Data Key", pWapiSta->wapiUsk.dataKey, 16); + WAPI_DATA(WAPI_INIT, "SetKey - AE USK Mic Key", pWapiSta->wapiUsk.micKey, 16); + } + else + { + WAPI_TRACE(WAPI_INIT, "AE update usk \n"); + pWapiSta->wapiUskUpdate.bSet = true; + pWapiSta->bAuthenticatorInUpdata = true; + memcpy(pWapiSta->wapiUskUpdate.dataKey,data+10,16); + memcpy(pWapiSta->wapiUskUpdate.micKey,data+26,16); + memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPN,WapiASUEPNInitialValueSrc,16); + pWapiSta->wapiUskUpdate.keyId = *(data+42); + pWapiSta->wapiUskUpdate.bTxEnable = true; + } + } + else{ + if(!bUpdate){ + WAPI_TRACE(WAPI_INIT,"ASUE fisrt set usk \n"); + if(bTxEnable){ + pWapiSta->wapiUsk.bTxEnable = true; + memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16); + }else{ + pWapiSta->wapiUsk.bSet = true; + memcpy(pWapiSta->wapiUsk.dataKey,data+10,16); + memcpy(pWapiSta->wapiUsk.micKey,data+26,16); + pWapiSta->wapiUsk.keyId = *(data+42); + pWapiSta->wapiUsk.bTxEnable = false; + } + }else{ + WAPI_TRACE(WAPI_INIT,"ASUE update usk \n"); + if(bTxEnable){ + pWapiSta->wapiUskUpdate.bTxEnable = true; + if(pWapiSta->wapiUskUpdate.bSet){ + memcpy(pWapiSta->wapiUsk.dataKey,pWapiSta->wapiUskUpdate.dataKey,16); + memcpy(pWapiSta->wapiUsk.micKey,pWapiSta->wapiUskUpdate.micKey,16); + pWapiSta->wapiUsk.keyId=pWapiSta->wapiUskUpdate.keyId; + memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiASUEPNInitialValueSrc,16); + memcpy(pWapiSta->lastRxUnicastPN,WapiASUEPNInitialValueSrc,16); + pWapiSta->wapiUskUpdate.bTxEnable = false; + pWapiSta->wapiUskUpdate.bSet = false; + } + memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16); + }else{ + pWapiSta->wapiUskUpdate.bSet = true; + memcpy(pWapiSta->wapiUskUpdate.dataKey,data+10,16); + memcpy(pWapiSta->wapiUskUpdate.micKey,data+26,16); + pWapiSta->wapiUskUpdate.keyId = *(data+42); + pWapiSta->wapiUskUpdate.bTxEnable = false; + } + } + } + break; + case 2: + if(bAuthenticator){ + pWapiInfo->wapiTxMsk.bSet = true; + memcpy(pWapiInfo->wapiTxMsk.dataKey,data+10,16); + memcpy(pWapiInfo->wapiTxMsk.micKey,data+26,16); + pWapiInfo->wapiTxMsk.keyId = *(data+42); + pWapiInfo->wapiTxMsk.bTxEnable = true; + memcpy(pWapiInfo->lastTxMulticastPN,WapiAEMultiCastPNInitialValueSrc,16); + + if(!bUpdate){ + WAPI_TRACE(WAPI_INIT, "AE fisrt set msk \n"); + if(!pWapiSta->bSetkeyOk) + pWapiSta->bSetkeyOk = true; + pWapiInfo->bFirstAuthentiateInProgress= false; + }else{ + WAPI_TRACE(WAPI_INIT,"AE update msk \n"); + } + + WAPI_DATA(WAPI_INIT, "SetKey - AE MSK Data Key", pWapiInfo->wapiTxMsk.dataKey, 16); + WAPI_DATA(WAPI_INIT, "SetKey - AE MSK Mic Key", pWapiInfo->wapiTxMsk.micKey, 16); + } + else{ + if(!bUpdate){ + WAPI_TRACE(WAPI_INIT,"ASUE fisrt set msk \n"); + pWapiSta->wapiMsk.bSet = true; + memcpy(pWapiSta->wapiMsk.dataKey,data+10,16); + memcpy(pWapiSta->wapiMsk.micKey,data+26,16); + pWapiSta->wapiMsk.keyId = *(data+42); + pWapiSta->wapiMsk.bTxEnable = false; + if(!pWapiSta->bSetkeyOk) + pWapiSta->bSetkeyOk = true; + pWapiInfo->bFirstAuthentiateInProgress= false; + WAPI_DATA(WAPI_INIT, "SetKey - ASUE MSK Data Key", pWapiSta->wapiMsk.dataKey, 16); + WAPI_DATA(WAPI_INIT, "SetKey - ASUE MSK Mic Key", pWapiSta->wapiMsk.micKey, 16); + }else{ + WAPI_TRACE(WAPI_INIT,"ASUE update msk \n"); + pWapiSta->wapiMskUpdate.bSet = true; + memcpy(pWapiSta->wapiMskUpdate.dataKey,data+10,16); + memcpy(pWapiSta->wapiMskUpdate.micKey,data+26,16); + pWapiSta->wapiMskUpdate.keyId = *(data+42); + pWapiSta->wapiMskUpdate.bTxEnable = false; + } + } + break; + default: + WAPI_TRACE(WAPI_ERR,"Unknown Flag \n"); + break; + } + } + } + } + WAPI_TRACE(WAPI_INIT, "<===========%s\n", __FUNCTION__); +} + +void wapi_test_init(struct rtllib_device *ieee) +{ + u8 keybuf[100]; + u8 mac_addr[6]={0x00,0xe0,0x4c,0x72,0x04,0x70}; + u8 UskDataKey[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f}; + u8 UskMicKey[16]={0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f}; + u8 UskId = 0; + u8 MskDataKey[16]={0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f}; + u8 MskMicKey[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f}; + u8 MskId = 0; + + WAPI_TRACE(WAPI_INIT, "===========>%s\n", __FUNCTION__); + + WAPI_TRACE(WAPI_INIT, "%s: Enable wapi!!!!\n", __FUNCTION__); + ieee->wapiInfo.bWapiEnable = true; + ieee->pairwise_key_type = KEY_TYPE_SMS4; + ieee->group_key_type = KEY_TYPE_SMS4; + ieee->wapiInfo.extra_prefix_len = WAPI_EXT_LEN; + ieee->wapiInfo.extra_postfix_len = SMS4_MIC_LEN; + + WAPI_TRACE(WAPI_INIT, "%s: Set USK!!!!\n", __FUNCTION__); + memset(keybuf,0,100); + keybuf[0] = 1; + keybuf[1] = 1; + keybuf[2] = 1; + keybuf[3] = 0; + + memcpy(keybuf+4,mac_addr,6); + memcpy(keybuf+10,UskDataKey,16); + memcpy(keybuf+26,UskMicKey,16); + keybuf[42]=UskId; + wapi_test_set_key(ieee, keybuf); + + memset(keybuf,0,100); + keybuf[0] = 1; + keybuf[1] = 1; + keybuf[2] = 0; + keybuf[3] = 0; + + memcpy(keybuf+4,mac_addr,6); + memcpy(keybuf+10,UskDataKey,16); + memcpy(keybuf+26,UskMicKey,16); + keybuf[42]=UskId; + wapi_test_set_key(ieee, keybuf); + + WAPI_TRACE(WAPI_INIT, "%s: Set MSK!!!!\n", __FUNCTION__); + memset(keybuf,0,100); + keybuf[0] = 2; + keybuf[1] = 1; + keybuf[2] = 1; + keybuf[3] = 0; + memcpy(keybuf+4,mac_addr,6); + memcpy(keybuf+10,MskDataKey,16); + memcpy(keybuf+26,MskMicKey,16); + keybuf[42] = MskId; + wapi_test_set_key(ieee, keybuf); + + memset(keybuf,0,100); + keybuf[0] = 2; + keybuf[1] = 1; + keybuf[2] = 0; + keybuf[3] = 0; + memcpy(keybuf+4,mac_addr,6); + memcpy(keybuf+10,MskDataKey,16); + memcpy(keybuf+26,MskMicKey,16); + keybuf[42] = MskId; + wapi_test_set_key(ieee, keybuf); + WAPI_TRACE(WAPI_INIT, "<===========%s\n", __FUNCTION__); +} + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/proc.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/proc.c @@ -0,0 +1,115 @@ +/* + * Scatterlist Cryptographic API. + * + * Procfs information. + * + * Copyright (c) 2002 James Morris + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the 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 +#include "rtl_crypto.h" +#include +#include +#include +#include "internal.h" + +extern struct list_head crypto_alg_list; +extern struct rw_semaphore crypto_alg_sem; + +static void *c_start(struct seq_file *m, loff_t *pos) +{ + struct list_head *v; + loff_t n = *pos; + + down_read(&crypto_alg_sem); + list_for_each(v, &crypto_alg_list) + if (!n--) + return list_entry(v, struct crypto_alg, cra_list); + return NULL; +} + +static void *c_next(struct seq_file *m, void *p, loff_t *pos) +{ + struct list_head *v = p; + + (*pos)++; + v = v->next; + return (v == &crypto_alg_list) ? + NULL : list_entry(v, struct crypto_alg, cra_list); +} + +static void c_stop(struct seq_file *m, void *p) +{ + up_read(&crypto_alg_sem); +} + +static int c_show(struct seq_file *m, void *p) +{ + struct crypto_alg *alg = (struct crypto_alg *)p; + + seq_printf(m, "name : %s\n", alg->cra_name); + seq_printf(m, "module : %s\n", + (alg->cra_module ? + alg->cra_module->name : + "kernel")); + + switch (alg->cra_flags & CRYPTO_ALG_TYPE_MASK) { + case CRYPTO_ALG_TYPE_CIPHER: + seq_printf(m, "type : cipher\n"); + seq_printf(m, "blocksize : %u\n", alg->cra_blocksize); + seq_printf(m, "min keysize : %u\n", + alg->cra_cipher.cia_min_keysize); + seq_printf(m, "max keysize : %u\n", + alg->cra_cipher.cia_max_keysize); + break; + + case CRYPTO_ALG_TYPE_DIGEST: + seq_printf(m, "type : digest\n"); + seq_printf(m, "blocksize : %u\n", alg->cra_blocksize); + seq_printf(m, "digestsize : %u\n", + alg->cra_digest.dia_digestsize); + break; + case CRYPTO_ALG_TYPE_COMPRESS: + seq_printf(m, "type : compression\n"); + break; + default: + seq_printf(m, "type : unknown\n"); + break; + } + + seq_putc(m, '\n'); + return 0; +} + +static struct seq_operations crypto_seq_ops = { + .start = c_start, + .next = c_next, + .stop = c_stop, + .show = c_show +}; + +static int crypto_info_open(struct inode *inode, struct file *file) +{ + return seq_open(file, &crypto_seq_ops); +} + +static struct file_operations proc_crypto_ops = { + .open = crypto_info_open, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release +}; + +void __init crypto_init_proc(void) +{ + struct proc_dir_entry *proc; + + proc = create_proc_entry("crypto", 0, NULL); + if (proc) + proc->proc_fops = &proc_crypto_ops; +} --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/arc4.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/arc4.c @@ -0,0 +1,105 @@ +/* + * Cryptographic API + * + * ARC4 Cipher Algorithm + * + * Jon Oberheide + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the 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 +#include +#include "rtl_crypto.h" + +#define ARC4_MIN_KEY_SIZE 1 +#define ARC4_MAX_KEY_SIZE 256 +#define ARC4_BLOCK_SIZE 1 + +struct arc4_ctx { + u8 S[256]; + u8 x, y; +}; + +static int arc4_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags) +{ + struct arc4_ctx *ctx = ctx_arg; + int i, j = 0, k = 0; + + ctx->x = 1; + ctx->y = 0; + + for(i = 0; i < 256; i++) + ctx->S[i] = i; + + for(i = 0; i < 256; i++) + { + u8 a = ctx->S[i]; + j = (j + in_key[k] + a) & 0xff; + ctx->S[i] = ctx->S[j]; + ctx->S[j] = a; + if((unsigned int)++k >= key_len) + k = 0; + } + + return 0; +} + +static void arc4_crypt(void *ctx_arg, u8 *out, const u8 *in) +{ + struct arc4_ctx *ctx = ctx_arg; + + u8 *const S = ctx->S; + u8 x = ctx->x; + u8 y = ctx->y; + u8 a, b; + + a = S[x]; + y = (y + a) & 0xff; + b = S[y]; + S[x] = b; + S[y] = a; + x = (x + 1) & 0xff; + *out++ = *in ^ S[(a + b) & 0xff]; + + ctx->x = x; + ctx->y = y; +} + +static struct crypto_alg arc4_alg = { + .cra_name = "arc4", + .cra_flags = CRYPTO_ALG_TYPE_CIPHER, + .cra_blocksize = ARC4_BLOCK_SIZE, + .cra_ctxsize = sizeof(struct arc4_ctx), + .cra_module = THIS_MODULE, + .cra_list = LIST_HEAD_INIT(arc4_alg.cra_list), + .cra_u = { .cipher = { + .cia_min_keysize = ARC4_MIN_KEY_SIZE, + .cia_max_keysize = ARC4_MAX_KEY_SIZE, + .cia_setkey = arc4_set_key, + .cia_encrypt = arc4_crypt, + .cia_decrypt = arc4_crypt } } +}; + +int __init arc4_init(void) +{ + return crypto_register_alg(&arc4_alg); +} + + +void __exit arc4_exit(void) +{ + crypto_unregister_alg(&arc4_alg); +} + +#ifndef BUILT_IN_CRYPTO +module_init(arc4_init); +module_exit(arc4_exit); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("ARC4 Cipher Algorithm"); +MODULE_AUTHOR("Jon Oberheide "); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/kmap_types.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/kmap_types.h @@ -0,0 +1,20 @@ +#ifndef __KMAP_TYPES_H + +#define __KMAP_TYPES_H + + +enum km_type { + KM_BOUNCE_READ, + KM_SKB_SUNRPC_DATA, + KM_SKB_DATA_SOFTIRQ, + KM_USER0, + KM_USER1, + KM_BH_IRQ, + KM_SOFTIRQ0, + KM_SOFTIRQ1, + KM_TYPE_NR +}; + +#define _ASM_KMAP_TYPES_H + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtl819x_HT.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtl819x_HT.h @@ -0,0 +1,501 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef _RTL819XU_HTTYPE_H_ +#define _RTL819XU_HTTYPE_H_ + + +#define HT_OPMODE_NO_PROTECT 0 +#define HT_OPMODE_OPTIONAL 1 +#define HT_OPMODE_40MHZ_PROTECT 2 +#define HT_OPMODE_MIXED 3 + +#define MIMO_PS_STATIC 0 +#define MIMO_PS_DYNAMIC 1 +#define MIMO_PS_NOLIMIT 3 + + + +#define sHTCLng 4 + + +#define HT_SUPPORTED_MCS_1SS_BITMAP 0x000000ff +#define HT_SUPPORTED_MCS_2SS_BITMAP 0x0000ff00 +#define HT_SUPPORTED_MCS_1SS_2SS_BITMAP HT_MCS_1SS_BITMAP|HT_MCS_1SS_2SS_BITMAP + + +typedef enum _HT_MCS_RATE{ + HT_MCS0 = 0x00000001, + HT_MCS1 = 0x00000002, + HT_MCS2 = 0x00000004, + HT_MCS3 = 0x00000008, + HT_MCS4 = 0x00000010, + HT_MCS5 = 0x00000020, + HT_MCS6 = 0x00000040, + HT_MCS7 = 0x00000080, + HT_MCS8 = 0x00000100, + HT_MCS9 = 0x00000200, + HT_MCS10 = 0x00000400, + HT_MCS11 = 0x00000800, + HT_MCS12 = 0x00001000, + HT_MCS13 = 0x00002000, + HT_MCS14 = 0x00004000, + HT_MCS15 = 0x00008000, +}HT_MCS_RATE,*PHT_MCS_RATE; + +typedef enum _HT_CHANNEL_WIDTH{ + HT_CHANNEL_WIDTH_20 = 0, + HT_CHANNEL_WIDTH_20_40 = 1, +}HT_CHANNEL_WIDTH, *PHT_CHANNEL_WIDTH; + +typedef enum _HT_EXTCHNL_OFFSET{ + HT_EXTCHNL_OFFSET_NO_EXT = 0, + HT_EXTCHNL_OFFSET_UPPER = 1, + HT_EXTCHNL_OFFSET_NO_DEF = 2, + HT_EXTCHNL_OFFSET_LOWER = 3, +}HT_EXTCHNL_OFFSET, *PHT_EXTCHNL_OFFSET; + +typedef enum _CHNLOP{ + CHNLOP_NONE = 0, + CHNLOP_SCAN = 1, + CHNLOP_SWBW = 2, + CHNLOP_SWCHNL = 3, +} CHNLOP, *PCHNLOP; + +#define CHHLOP_IN_PROGRESS(_pHTInfo) \ + ((_pHTInfo)->ChnlOp > CHNLOP_NONE) ? true : false + +/* +typedef union _HT_CAPABILITY{ + u16 ShortData; + u8 CharData[2]; + struct + { + u16 AdvCoding:1; + u16 ChlWidth:1; + u16 MimoPwrSave:2; + u16 GreenField:1; + u16 ShortGI20Mhz:1; + u16 ShortGI40Mhz:1; + u16 STBC:1; + u16 BeamForm:1; + u16 DelayBA:1; + u16 MaxAMSDUSize:1; + u16 DssCCk:1; + u16 PSMP:1; + u16 Rsvd:3; + }Field; +}HT_CAPABILITY, *PHT_CAPABILITY; + +typedef union _HT_CAPABILITY_MACPARA{ + u8 ShortData; + u8 CharData[1]; + struct + { + u8 MaxRxAMPDU:2; + u8 MPDUDensity:2; + u8 Rsvd:4; + }Field; +}HT_CAPABILITY_MACPARA, *PHT_CAPABILITY_MACPARA; +*/ + +typedef enum _HT_ACTION{ + ACT_RECOMMAND_WIDTH = 0, + ACT_MIMO_PWR_SAVE = 1, + ACT_PSMP = 2, + ACT_SET_PCO_PHASE = 3, + ACT_MIMO_CHL_MEASURE = 4, + ACT_RECIPROCITY_CORRECT = 5, + ACT_MIMO_CSI_MATRICS = 6, + ACT_MIMO_NOCOMPR_STEER = 7, + ACT_MIMO_COMPR_STEER = 8, + ACT_ANTENNA_SELECT = 9, +} HT_ACTION, *PHT_ACTION; + + +typedef enum _HT_Bandwidth_40MHZ_Sub_Carrier{ + SC_MODE_DUPLICATE = 0, + SC_MODE_LOWER = 1, + SC_MODE_UPPER = 2, + SC_MODE_FULL40MHZ = 3, +}HT_BW40_SC_E; + +typedef struct _HT_CAPABILITY_ELE{ + + u8 AdvCoding:1; + u8 ChlWidth:1; + u8 MimoPwrSave:2; + u8 GreenField:1; + u8 ShortGI20Mhz:1; + u8 ShortGI40Mhz:1; + u8 TxSTBC:1; + u8 RxSTBC:2; + u8 DelayBA:1; + u8 MaxAMSDUSize:1; + u8 DssCCk:1; + u8 PSMP:1; + u8 Rsvd1:1; + u8 LSigTxopProtect:1; + + u8 MaxRxAMPDUFactor:2; + u8 MPDUDensity:3; + u8 Rsvd2:3; + + u8 MCS[16]; + + + u16 ExtHTCapInfo; + + u8 TxBFCap[4]; + + u8 ASCap; + +} __attribute__ ((packed)) HT_CAPABILITY_ELE, *PHT_CAPABILITY_ELE; + + +typedef struct _HT_INFORMATION_ELE{ + u8 ControlChl; + + u8 ExtChlOffset:2; + u8 RecommemdedTxWidth:1; + u8 RIFS:1; + u8 PSMPAccessOnly:1; + u8 SrvIntGranularity:3; + + u8 OptMode:2; + u8 NonGFDevPresent:1; + u8 Revd1:5; + u8 Revd2:8; + + u8 Rsvd3:6; + u8 DualBeacon:1; + u8 DualCTSProtect:1; + + u8 SecondaryBeacon:1; + u8 LSigTxopProtectFull:1; + u8 PcoActive:1; + u8 PcoPhase:1; + u8 Rsvd4:4; + + u8 BasicMSC[16]; +} __attribute__ ((packed)) HT_INFORMATION_ELE, *PHT_INFORMATION_ELE; + +typedef struct _MIMOPS_CTRL{ + u8 MimoPsEnable:1; + u8 MimoPsMode:1; + u8 Reserved:6; +} MIMOPS_CTRL, *PMIMOPS_CTRL; + +typedef enum _HT_SPEC_VER{ + HT_SPEC_VER_IEEE = 0, + HT_SPEC_VER_EWC = 1, +}HT_SPEC_VER, *PHT_SPEC_VER; + +typedef enum _HT_AGGRE_MODE_E{ + HT_AGG_AUTO = 0, + HT_AGG_FORCE_ENABLE = 1, + HT_AGG_FORCE_DISABLE = 2, +}HT_AGGRE_MODE_E, *PHT_AGGRE_MODE_E; + + +typedef struct _RT_HIGH_THROUGHPUT{ + u8 bEnableHT; + u8 bCurrentHTSupport; + + u8 bRegBW40MHz; + u8 bCurBW40MHz; + + u8 bRegShortGI40MHz; + u8 bCurShortGI40MHz; + + u8 bRegShortGI20MHz; + u8 bCurShortGI20MHz; + + u8 bRegSuppCCK; + u8 bCurSuppCCK; + + HT_SPEC_VER ePeerHTSpecVer; + + + HT_CAPABILITY_ELE SelfHTCap; + HT_INFORMATION_ELE SelfHTInfo; + + u8 PeerHTCapBuf[32]; + u8 PeerHTInfoBuf[32]; + + + u8 bAMSDU_Support; + u16 nAMSDU_MaxSize; + u8 bCurrent_AMSDU_Support; + u16 nCurrent_AMSDU_MaxSize; +#ifdef _RTL8192_EXT_PATCH_ + u8 bCurrent_Mesh_AMSDU_Support; +#endif + + u8 bAMPDUEnable; + u8 bCurrentAMPDUEnable; + u8 AMPDU_Factor; + u8 CurrentAMPDUFactor; + u8 MPDU_Density; + u8 CurrentMPDUDensity; +#ifdef _RTL8192_EXT_PATCH_ + u8 bCurrentMeshAMPDUEnable; +#endif + + HT_AGGRE_MODE_E ForcedAMPDUMode; + u8 ForcedAMPDUFactor; + u8 ForcedMPDUDensity; + + HT_AGGRE_MODE_E ForcedAMSDUMode; + u16 ForcedAMSDUMaxSize; + + u8 bForcedShortGI; + + u8 CurrentOpMode; + + u8 SelfMimoPs; + u8 PeerMimoPs; + + HT_EXTCHNL_OFFSET CurSTAExtChnlOffset; + u8 bCurTxBW40MHz; + u8 PeerBandwidth; + + u8 bSwBwInProgress; + CHNLOP ChnlOp; + u8 SwBwStep; + + u8 bRegRT2RTAggregation; + u8 RT2RT_HT_Mode; + u8 bCurrentRT2RTAggregation; + u8 bCurrentRT2RTLongSlotTime; + u8 szRT2RTAggBuffer[10]; + + u8 bRegRxReorderEnable; + u8 bCurRxReorderEnable; + u8 RxReorderWinSize; + u8 RxReorderPendingTime; + u16 RxReorderDropCounter; + +#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE + u8 UsbTxAggrNum; +#endif +#ifdef USB_RX_AGGREGATION_SUPPORT + u8 UsbRxFwAggrEn; + u8 UsbRxFwAggrPageNum; + u8 UsbRxFwAggrPacketNum; + u8 UsbRxFwAggrTimeout; + u8 UsbRxPageSize; +#endif + + u8 bIsPeerBcm; + + u8 IOTPeer; + u32 IOTAction; + u8 IOTRaFunc; + + u8 bWAIotBroadcom; + u8 WAIotTH; + +#ifdef RTL8192CE + u8 bRDGEnable; +#endif + + u8 bAcceptAddbaReq; +} __attribute__ ((packed)) RT_HIGH_THROUGHPUT, *PRT_HIGH_THROUGHPUT; + + + +typedef struct _RT_HTINFO_STA_ENTRY{ + u8 bEnableHT; + + u8 bSupportCck; + + u16 AMSDU_MaxSize; + + u8 AMPDU_Factor; + u8 MPDU_Density; + + u8 HTHighestOperaRate; + + u8 bBw40MHz; + + u8 bCurTxBW40MHz; + + u8 bCurShortGI20MHz; + + u8 bCurShortGI40MHz; + + u8 MimoPs; + + u8 McsRateSet[16]; + + u8 bCurRxReorderEnable; + + u16 nAMSDU_MaxSize; + +}RT_HTINFO_STA_ENTRY, *PRT_HTINFO_STA_ENTRY; + + + + + + +typedef struct _BSS_HT{ + + u8 bdSupportHT; + + u8 bdHTCapBuf[32]; + u16 bdHTCapLen; + u8 bdHTInfoBuf[32]; + u16 bdHTInfoLen; + + HT_SPEC_VER bdHTSpecVer; + HT_CHANNEL_WIDTH bdBandWidth; + + u8 bdRT2RTAggregation; + u8 bdRT2RTLongSlotTime; + u8 RT2RT_HT_Mode; + u8 bdHT1R; +} __attribute__ ((packed)) BSS_HT, *PBSS_HT; + +typedef struct _MIMO_RSSI{ + u32 EnableAntenna; + u32 AntennaA; + u32 AntennaB; + u32 AntennaC; + u32 AntennaD; + u32 Average; +}MIMO_RSSI, *PMIMO_RSSI; + +typedef struct _MIMO_EVM{ + u32 EVM1; + u32 EVM2; +}MIMO_EVM, *PMIMO_EVM; + +typedef struct _FALSE_ALARM_STATISTICS{ + u32 Cnt_Parity_Fail; + u32 Cnt_Rate_Illegal; + u32 Cnt_Crc8_fail; + u32 Cnt_Mcs_fail; + u32 Cnt_Ofdm_fail; + u32 Cnt_Cck_fail; + u32 Cnt_all; +}FALSE_ALARM_STATISTICS, *PFALSE_ALARM_STATISTICS; + + +extern u8 MCS_FILTER_ALL[16]; +extern u8 MCS_FILTER_1SS[16]; + +#define PICK_RATE(_nLegacyRate, _nMcsRate) \ + (_nMcsRate==0)?(_nLegacyRate&0x7f):(_nMcsRate) +#define LEGACY_WIRELESS_MODE IEEE_MODE_MASK + +#define CURRENT_RATE(WirelessMode, LegacyRate, HTRate) \ + ((WirelessMode & (LEGACY_WIRELESS_MODE))!=0)?\ + (LegacyRate):\ + (PICK_RATE(LegacyRate, HTRate)) + + + +#define RATE_ADPT_1SS_MASK 0xFF +#define RATE_ADPT_2SS_MASK 0xF0 +#define RATE_ADPT_MCS32_MASK 0x01 + +#define IS_11N_MCS_RATE(rate) (rate&0x80) + +typedef enum _HT_AGGRE_SIZE{ + HT_AGG_SIZE_8K = 0, + HT_AGG_SIZE_16K = 1, + HT_AGG_SIZE_32K = 2, + HT_AGG_SIZE_64K = 3, +}HT_AGGRE_SIZE_E, *PHT_AGGRE_SIZE_E; + +typedef enum _HT_IOT_PEER +{ + HT_IOT_PEER_UNKNOWN = 0, + HT_IOT_PEER_REALTEK = 1, + HT_IOT_PEER_REALTEK_92SE = 2, + HT_IOT_PEER_BROADCOM = 3, + HT_IOT_PEER_RALINK = 4, + HT_IOT_PEER_ATHEROS = 5, + HT_IOT_PEER_CISCO= 6, + HT_IOT_PEER_MARVELL=7, + HT_IOT_PEER_92U_SOFTAP = 8, + HT_IOT_PEER_SELF_SOFTAP = 9, + HT_IOT_PEER_AIRGO = 10, + HT_IOT_PEER_MAX = 11, +}HT_IOT_PEER_E, *PHTIOT_PEER_E; + +typedef enum _HT_IOT_PEER_SUBTYPE +{ + HT_IOT_PEER_ATHEROS_DIR635 = 0, +}HT_IOT_PEER_SUBTYPE_E, *PHTIOT_PEER_SUBTYPE_E; + +typedef enum _HT_IOT_ACTION{ + HT_IOT_ACT_TX_USE_AMSDU_4K = 0x00000001, + HT_IOT_ACT_TX_USE_AMSDU_8K = 0x00000002, + HT_IOT_ACT_DISABLE_MCS14 = 0x00000004, + HT_IOT_ACT_DISABLE_MCS15 = 0x00000008, + HT_IOT_ACT_DISABLE_ALL_2SS = 0x00000010, + HT_IOT_ACT_DISABLE_EDCA_TURBO = 0x00000020, + HT_IOT_ACT_MGNT_USE_CCK_6M = 0x00000040, + HT_IOT_ACT_CDD_FSYNC = 0x00000080, + HT_IOT_ACT_PURE_N_MODE = 0x00000100, + HT_IOT_ACT_FORCED_CTS2SELF = 0x00000200, + HT_IOT_ACT_FORCED_RTS = 0x00000400, + HT_IOT_ACT_AMSDU_ENABLE = 0x00000800, + HT_IOT_ACT_REJECT_ADDBA_REQ = 0x00001000, + HT_IOT_ACT_ALLOW_PEER_AGG_ONE_PKT = 0x00002000, + HT_IOT_ACT_EDCA_BIAS_ON_RX = 0x00004000, + + HT_IOT_ACT_HYBRID_AGGREGATION = 0x00010000, + HT_IOT_ACT_DISABLE_SHORT_GI = 0x00020000, + HT_IOT_ACT_DISABLE_HIGH_POWER = 0x00040000, + HT_IOT_ACT_DISABLE_TX_40_MHZ = 0x00080000, + HT_IOT_ACT_TX_NO_AGGREGATION = 0x00100000, + HT_IOT_ACT_DISABLE_TX_2SS = 0x00200000, + + HT_IOT_ACT_MID_HIGHPOWER = 0x00400000, + HT_IOT_ACT_NULL_DATA_POWER_SAVING = 0x00800000, + + HT_IOT_ACT_DISABLE_CCK_RATE = 0x01000000, + HT_IOT_ACT_FORCED_ENABLE_BE_TXOP = 0x02000000, + HT_IOT_ACT_WA_IOT_Broadcom = 0x04000000, + HT_IOT_ACT_DISABLE_RX_40MHZ_SHORT_GI = 0x08000000, + + HT_IOT_ACT_IPTIME_704 = 0x10000000, + +}HT_IOT_ACTION_E, *PHT_IOT_ACTION_E; + +typedef enum _HT_IOT_RAFUNC{ + HT_IOT_RAFUNC_DISABLE_ALL = 0x00, + HT_IOT_RAFUNC_PEER_1R = 0x01, + HT_IOT_RAFUNC_TX_AMSDU = 0x02, +}HT_IOT_RAFUNC, *PHT_IOT_RAFUNC; + +typedef enum _RT_HT_CAP{ + RT_HT_CAP_USE_TURBO_AGGR = 0x01, + RT_HT_CAP_USE_LONG_PREAMBLE = 0x02, + RT_HT_CAP_USE_AMPDU = 0x04, + RT_HT_CAP_USE_WOW = 0x8, + RT_HT_CAP_USE_SOFTAP = 0x10, + RT_HT_CAP_USE_92SE = 0x20, +}RT_HT_CAPBILITY, *PRT_HT_CAPBILITY; + +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib_wx.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib_wx.c @@ -0,0 +1,1346 @@ +/****************************************************************************** + + Copyright(c) 2004 Intel Corporation. All rights reserved. + + Portions of this file are based on the WEP enablement code provided by the + Host AP project hostap-drivers v0.1.3 + Copyright (c) 2001-2002, SSH Communications Security Corp and Jouni Malinen + + Copyright (c) 2002-2003, Jouni Malinen + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program; if not, write to the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + The full GNU General Public License is included in this distribution in the + file called LICENSE. + + Contact Information: + James P. Ketrenos + Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + +******************************************************************************/ +#include +#include +#include +#include + +#include "rtllib.h" +#if 0 +static const char *rtllib_modes[] = { + "?", "a", "b", "ab", "g", "ag", "bg", "abg" +}; +#endif +struct modes_unit { + char *mode_string; + int mode_size; +}; +static struct modes_unit rtllib_modes[] = { + {"a",1}, + {"b",1}, + {"g",1}, + {"?",1}, +#ifdef _RTL8192_EXT_PATCH_ + {"n",5}, + {"n",4}, +#else + {"N-24G",5}, + {"N-5G",4}, +#endif +}; + +#define MAX_CUSTOM_LEN 64 +static inline char *rtl819x_translate_scan(struct rtllib_device *ieee, + char *start, char *stop, + struct rtllib_network *network, + struct iw_request_info *info) +{ + char custom[MAX_CUSTOM_LEN]; + char proto_name[IFNAMSIZ]; + char *pname = proto_name; + char *p; + struct iw_event iwe; + int i, j; + u16 max_rate, rate; + static u8 EWC11NHTCap[] = {0x00, 0x90, 0x4c, 0x33}; + + /* First entry *MUST* be the AP MAC address */ + iwe.cmd = SIOCGIWAP; + iwe.u.ap_addr.sa_family = ARPHRD_ETHER; + memcpy(iwe.u.ap_addr.sa_data, network->bssid, ETH_ALEN); + start = iwe_stream_add_event_rsl(info, start, stop, &iwe, IW_EV_ADDR_LEN); + /* Remaining entries will be displayed in the order we provide them */ + + /* Add the ESSID */ + iwe.cmd = SIOCGIWESSID; + iwe.u.data.flags = 1; + if(network->ssid_len > 0){ + iwe.u.data.length = min(network->ssid_len, (u8)32); + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, network->ssid); + }else if(network->hidden_ssid_len == 0){ + iwe.u.data.length = sizeof(""); + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, ""); + }else { + iwe.u.data.length = min(network->hidden_ssid_len, (u8)32); + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, network->hidden_ssid); + } + /* Add the protocol name */ + iwe.cmd = SIOCGIWNAME; + for(i=0; i<(sizeof(rtllib_modes)/sizeof(rtllib_modes[0])); i++) { + if(network->mode&(1<capability & + (WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_IBSS)) { + if (network->capability & WLAN_CAPABILITY_ESS) + iwe.u.mode = IW_MODE_MASTER; + else + iwe.u.mode = IW_MODE_ADHOC; + start = iwe_stream_add_event_rsl(info, start, stop, &iwe, IW_EV_UINT_LEN); + } + + /* Add frequency/channel */ + iwe.cmd = SIOCGIWFREQ; +/* iwe.u.freq.m = rtllib_frequency(network->channel, network->mode); + iwe.u.freq.e = 3; */ + iwe.u.freq.m = network->channel; + iwe.u.freq.e = 0; + iwe.u.freq.i = 0; + start = iwe_stream_add_event_rsl(info, start, stop, &iwe, IW_EV_FREQ_LEN); + + /* Add encryption capability */ + iwe.cmd = SIOCGIWENCODE; + if (network->capability & WLAN_CAPABILITY_PRIVACY) + iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY; + else + iwe.u.data.flags = IW_ENCODE_DISABLED; + iwe.u.data.length = 0; + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, network->ssid); + /* Add basic and extended rates */ + max_rate = 0; + p = custom; + p += snprintf(p, MAX_CUSTOM_LEN - (p - custom), " Rates (Mb/s): "); + for (i = 0, j = 0; i < network->rates_len; ) { + if (j < network->rates_ex_len && + ((network->rates_ex[j] & 0x7F) < + (network->rates[i] & 0x7F))) + rate = network->rates_ex[j++] & 0x7F; + else + rate = network->rates[i++] & 0x7F; + if (rate > max_rate) + max_rate = rate; + p += snprintf(p, MAX_CUSTOM_LEN - (p - custom), + "%d%s ", rate >> 1, (rate & 1) ? ".5" : ""); + } + for (; j < network->rates_ex_len; j++) { + rate = network->rates_ex[j] & 0x7F; + p += snprintf(p, MAX_CUSTOM_LEN - (p - custom), + "%d%s ", rate >> 1, (rate & 1) ? ".5" : ""); + if (rate > max_rate) + max_rate = rate; + } + + if (network->mode >= IEEE_N_24G) + { + PHT_CAPABILITY_ELE ht_cap = NULL; + bool is40M = false, isShortGI = false; + u8 max_mcs = 0; + if (!memcmp(network->bssht.bdHTCapBuf, EWC11NHTCap, 4)) + ht_cap = (PHT_CAPABILITY_ELE)&network->bssht.bdHTCapBuf[4]; + else + ht_cap = (PHT_CAPABILITY_ELE)&network->bssht.bdHTCapBuf[0]; + is40M = (ht_cap->ChlWidth)?1:0; + isShortGI = (ht_cap->ChlWidth)? + ((ht_cap->ShortGI40Mhz)?1:0): + ((ht_cap->ShortGI20Mhz)?1:0); + + max_mcs = HTGetHighestMCSRate(ieee, ht_cap->MCS, MCS_FILTER_ALL); + rate = MCS_DATA_RATE[is40M][isShortGI][max_mcs&0x7f]; + if (rate > max_rate) + max_rate = rate; + } +#if 0 + printk("max rate:%d ===basic rate:\n", max_rate); + for (i=0;irates_len;i++) + printk(" %x", network->rates[i]); + printk("\n=======extend rate\n"); + for (i=0; irates_ex_len; i++) + printk(" %x", network->rates_ex[i]); + printk("\n"); +#endif + iwe.cmd = SIOCGIWRATE; + iwe.u.bitrate.fixed = iwe.u.bitrate.disabled = 0; + iwe.u.bitrate.value = max_rate * 500000; + start = iwe_stream_add_event_rsl(info, start, stop, &iwe, + IW_EV_PARAM_LEN); + iwe.cmd = IWEVCUSTOM; + iwe.u.data.length = p - custom; + if (iwe.u.data.length) + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, custom); + /* Add quality statistics */ + /* TODO: Fix these values... */ + iwe.cmd = IWEVQUAL; + iwe.u.qual.qual = network->stats.signal; + iwe.u.qual.level = network->stats.rssi; + iwe.u.qual.noise = network->stats.noise; + iwe.u.qual.updated = network->stats.mask & RTLLIB_STATMASK_WEMASK; + if (!(network->stats.mask & RTLLIB_STATMASK_RSSI)) + iwe.u.qual.updated |= IW_QUAL_LEVEL_INVALID; + if (!(network->stats.mask & RTLLIB_STATMASK_NOISE)) + iwe.u.qual.updated |= IW_QUAL_NOISE_INVALID; + if (!(network->stats.mask & RTLLIB_STATMASK_SIGNAL)) + iwe.u.qual.updated |= IW_QUAL_QUAL_INVALID; + iwe.u.qual.updated = 7; + start = iwe_stream_add_event_rsl(info, start, stop, &iwe, IW_EV_QUAL_LEN); + + iwe.cmd = IWEVCUSTOM; + p = custom; + iwe.u.data.length = p - custom; + if (iwe.u.data.length) + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, custom); +#if (WIRELESS_EXT < 18) + if (ieee->wpa_enabled && network->wpa_ie_len){ + char buf[MAX_WPA_IE_LEN * 2 + 30]; + u8 *p = buf; + p += sprintf(p, "wpa_ie="); + for (i = 0; i < network->wpa_ie_len; i++) { + p += sprintf(p, "%02x", network->wpa_ie[i]); + } + + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = IWEVCUSTOM; + iwe.u.data.length = strlen(buf); + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, buf); + } + + if (ieee->wpa_enabled && network->rsn_ie_len){ + char buf[MAX_WPA_IE_LEN * 2 + 30]; + + u8 *p = buf; + p += sprintf(p, "rsn_ie="); + for (i = 0; i < network->rsn_ie_len; i++) { + p += sprintf(p, "%02x", network->rsn_ie[i]); + } + + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = IWEVCUSTOM; + iwe.u.data.length = strlen(buf); + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, buf); + } +#else + memset(&iwe, 0, sizeof(iwe)); + if (network->wpa_ie_len) + { + char buf[MAX_WPA_IE_LEN]; + memcpy(buf, network->wpa_ie, network->wpa_ie_len); + iwe.cmd = IWEVGENIE; + iwe.u.data.length = network->wpa_ie_len; + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, buf); + } + memset(&iwe, 0, sizeof(iwe)); + if (network->rsn_ie_len) + { + char buf[MAX_WPA_IE_LEN]; + memcpy(buf, network->rsn_ie, network->rsn_ie_len); + iwe.cmd = IWEVGENIE; + iwe.u.data.length = network->rsn_ie_len; + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, buf); + } + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) +#ifndef CUSTOMER_ID_INTEL_CMPC + /* add info for WZC */ + memset(&iwe, 0, sizeof(iwe)); + if (network->wzc_ie_len) + { + char buf[MAX_WZC_IE_LEN]; + memcpy(buf, network->wzc_ie, network->wzc_ie_len); + iwe.cmd = IWEVGENIE; + iwe.u.data.length = network->wzc_ie_len; + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, buf); + } +#endif +#endif +#endif + + /* Add EXTRA: Age to display seconds since last beacon/probe response + * for given network. */ + iwe.cmd = IWEVCUSTOM; + p = custom; + p += snprintf(p, MAX_CUSTOM_LEN - (p - custom), + " Last beacon: %lums ago", (jiffies - network->last_scanned) / (HZ / 100)); + iwe.u.data.length = p - custom; + if (iwe.u.data.length) + start = iwe_stream_add_point_rsl(info, start, stop, &iwe, custom); + + return start; +} + +int rtllib_wx_get_scan(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct rtllib_network *network; + unsigned long flags; + + char *ev = extra; + char *stop = ev + wrqu->data.length; + int i = 0; + int err = 0; + RTLLIB_DEBUG_WX("Getting scan\n"); + down(&ieee->wx_sem); + spin_lock_irqsave(&ieee->lock, flags); + + list_for_each_entry(network, &ieee->network_list, list) { + i++; + if((stop-ev)<200) + { + err = -E2BIG; + break; + } + if (ieee->scan_age == 0 || + time_after(network->last_scanned + ieee->scan_age, jiffies)) + ev = rtl819x_translate_scan(ieee, ev, stop, network, info); + else + RTLLIB_DEBUG_SCAN( + "Not showing network '%s (" + MAC_FMT ")' due to age (%lums).\n", + escape_essid(network->ssid, + network->ssid_len), + MAC_ARG(network->bssid), + (jiffies - network->last_scanned) / (HZ / 100)); + } + + spin_unlock_irqrestore(&ieee->lock, flags); + up(&ieee->wx_sem); + wrqu->data.length = ev - extra; + wrqu->data.flags = 0; + + RTLLIB_DEBUG_WX("exit: %d networks returned.\n", i); + + return err; +} + +#ifdef _RTL8192_EXT_PATCH_ +int rtllib_wx_set_encode(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *keybuf, u8 is_mesh) +#else +int rtllib_wx_set_encode(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *keybuf) +#endif +{ + struct iw_point *erq = &(wrqu->encoding); + struct net_device *dev = ieee->dev; + struct rtllib_security sec = { + .flags = 0 + }; + int i, key, key_provided, len; + struct rtllib_crypt_data **crypt; + + RTLLIB_DEBUG_WX("SET_ENCODE\n"); + + key = erq->flags & IW_ENCODE_INDEX; + if (key) { + if (key > WEP_KEYS) + return -EINVAL; + key--; + key_provided = 1; + } else { + key_provided = 0; +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + key = ieee->mesh_txkeyidx; + else +#endif + key = ieee->tx_keyidx; + } + + RTLLIB_DEBUG_WX("Key: %d [%s]\n", key, key_provided ? + "provided" : "default"); +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + crypt = &ieee->cryptlist[0]->crypt[key]; + else + crypt = &ieee->sta_crypt[key]; +#else + crypt = &ieee->crypt[key]; +#endif + if (erq->flags & IW_ENCODE_DISABLED) { + if (key_provided && *crypt) { + RTLLIB_DEBUG_WX("Disabling encryption on key %d.\n", + key); + rtllib_crypt_delayed_deinit(ieee, crypt); + } else + RTLLIB_DEBUG_WX("Disabling encryption.\n"); + + /* Check all the keys to see if any are still configured, + * and if no key index was provided, de-init them all */ + for (i = 0; i < WEP_KEYS; i++) { +#ifdef _RTL8192_EXT_PATCH_ + bool null_crypt = false; + if(is_mesh) + null_crypt = (ieee->cryptlist[0]->crypt[i] != NULL) ? true:false; + else + null_crypt = (ieee->sta_crypt[i] != NULL) ? true:false; + if (null_crypt) +#else + if (ieee->crypt[i] != NULL) +#endif + { + if (key_provided) + break; +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + rtllib_crypt_delayed_deinit(ieee, &ieee->cryptlist[0]->crypt[i]); + else + rtllib_crypt_delayed_deinit(ieee, &ieee->sta_crypt[i]); +#else + rtllib_crypt_delayed_deinit(ieee, &ieee->crypt[i]); +#endif + + } + } + + if (i == WEP_KEYS) { + sec.enabled = 0; + sec.level = SEC_LEVEL_0; + sec.flags |= SEC_ENABLED | SEC_LEVEL; + } + + goto done; + } + + + + sec.enabled = 1; + sec.flags |= SEC_ENABLED; + + if (*crypt != NULL && (*crypt)->ops != NULL && + strcmp((*crypt)->ops->name, "WEP") != 0) { + /* changing to use WEP; deinit previously used algorithm + * on this key */ + rtllib_crypt_delayed_deinit(ieee, crypt); + } + + if (*crypt == NULL) { + struct rtllib_crypt_data *new_crypt; + + /* take WEP into use */ + new_crypt = kmalloc(sizeof(struct rtllib_crypt_data), + GFP_KERNEL); + if (new_crypt == NULL) + return -ENOMEM; + memset(new_crypt, 0, sizeof(struct rtllib_crypt_data)); + new_crypt->ops = rtllib_get_crypto_ops("WEP"); + if (!new_crypt->ops) { + request_module("rtllib_crypt_wep"); + new_crypt->ops = rtllib_get_crypto_ops("WEP"); + } + +#ifdef BUILT_IN_RTLLIB + if (new_crypt->ops) +#else +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) + if (new_crypt->ops && try_module_get(new_crypt->ops->owner)) +#else + if (new_crypt->ops && try_inc_mod_count(new_crypt->ops->owner)) +#endif +#endif + { + new_crypt->priv = new_crypt->ops->init(key); + } + + if (!new_crypt->ops || !new_crypt->priv) { + kfree(new_crypt); + new_crypt = NULL; + + printk(KERN_WARNING "%s: could not initialize WEP: " + "load module rtllib_crypt_wep\n", + dev->name); + return -EOPNOTSUPP; + } + *crypt = new_crypt; + } + + /* If a new key was provided, set it up */ + if (erq->length > 0) { + len = erq->length <= 5 ? 5 : 13; + memcpy(sec.keys[key], keybuf, erq->length); + if (len > erq->length) + memset(sec.keys[key] + erq->length, 0, + len - erq->length); + RTLLIB_DEBUG_WX("Setting key %d to '%s' (%d:%d bytes)\n", + key, escape_essid(sec.keys[key], len), + erq->length, len); + sec.key_sizes[key] = len; + (*crypt)->ops->set_key(sec.keys[key], len, NULL, + (*crypt)->priv); + sec.flags |= (1 << key); + /* This ensures a key will be activated if no key is + * explicitely set */ + if (key == sec.active_key) + sec.flags |= SEC_ACTIVE_KEY; +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + ieee->mesh_txkeyidx = key; + else +#endif + ieee->tx_keyidx = key; + + } else { + len = (*crypt)->ops->get_key(sec.keys[key], WEP_KEY_LEN, + NULL, (*crypt)->priv); + if (len == 0) { + /* Set a default key of all 0 */ + printk("Setting key %d to all zero.\n", + key); + + RTLLIB_DEBUG_WX("Setting key %d to all zero.\n", + key); + memset(sec.keys[key], 0, 13); + (*crypt)->ops->set_key(sec.keys[key], 13, NULL, + (*crypt)->priv); + sec.key_sizes[key] = 13; + sec.flags |= (1 << key); + } + + /* No key data - just set the default TX key index */ + if (key_provided) { + RTLLIB_DEBUG_WX( + "Setting key %d to default Tx key.\n", key); +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + ieee->mesh_txkeyidx = key; + else +#endif + ieee->tx_keyidx = key; + sec.active_key = key; + sec.flags |= SEC_ACTIVE_KEY; + } + } +#ifdef _RTL8192_EXT_PATCH_ + if ((ieee->iw_mode == IW_MODE_MESH)&&(is_mesh)&&ieee->ext_patch_rtllib_create_crypt_for_peer) + { + ieee->ext_patch_rtllib_create_crypt_for_peer(ieee); + } +#endif + done: + ieee->open_wep = !(erq->flags & IW_ENCODE_RESTRICTED); + ieee->auth_mode = ieee->open_wep ? WLAN_AUTH_OPEN : WLAN_AUTH_SHARED_KEY; + sec.auth_mode = ieee->open_wep ? WLAN_AUTH_OPEN : WLAN_AUTH_SHARED_KEY; + sec.flags |= SEC_AUTH_MODE; + RTLLIB_DEBUG_WX("Auth: %s\n", sec.auth_mode == WLAN_AUTH_OPEN ? + "OPEN" : "SHARED KEY"); + + /* For now we just support WEP, so only set that security level... + * TODO: When WPA is added this is one place that needs to change */ + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_1; /* 40 and 104 bit WEP */ + + if (ieee->set_security) + ieee->set_security(dev, &sec); + + /* Do not reset port if card is in Managed mode since resetting will + * generate new IEEE 802.11 authentication which may end up in looping + * with IEEE 802.1X. If your hardware requires a reset after WEP + * configuration (for example... Prism2), implement the reset_port in + * the callbacks structures used to initialize the 802.11 stack. */ + if (ieee->reset_on_keychange && + ieee->iw_mode != IW_MODE_INFRA && + ieee->reset_port && ieee->reset_port(dev)) { + printk(KERN_DEBUG "%s: reset_port failed\n", dev->name); + return -EINVAL; + } + return 0; +} + +#ifdef _RTL8192_EXT_PATCH_ +int rtllib_wx_get_encode(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *keybuf, u8 is_mesh) +#else +int rtllib_wx_get_encode(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *keybuf) +#endif +{ + struct iw_point *erq = &(wrqu->encoding); + int len, key; + struct rtllib_crypt_data *crypt; + + RTLLIB_DEBUG_WX("GET_ENCODE\n"); + + if(ieee->iw_mode == IW_MODE_MONITOR) + return -1; + + key = erq->flags & IW_ENCODE_INDEX; + if (key) { + if (key > WEP_KEYS) + return -EINVAL; + key--; + } else { +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + key = ieee->mesh_txkeyidx; + else +#endif + key = ieee->tx_keyidx; + } +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + crypt = ieee->cryptlist[0]->crypt[key]; + else + crypt = ieee->sta_crypt[key]; +#else + crypt = ieee->crypt[key]; +#endif + + erq->flags = key + 1; + + if (crypt == NULL || crypt->ops == NULL) { + erq->length = 0; + erq->flags |= IW_ENCODE_DISABLED; + return 0; + } +#if 0 + if (strcmp(crypt->ops->name, "WEP") != 0) { + /* only WEP is supported with wireless extensions, so just + * report that encryption is used */ + erq->length = 0; + erq->flags |= IW_ENCODE_ENABLED; + return 0; + } +#endif + len = crypt->ops->get_key(keybuf, SCM_KEY_LEN, NULL, crypt->priv); + erq->length = (len >= 0 ? len : 0); + + erq->flags |= IW_ENCODE_ENABLED; + + if (ieee->open_wep) + erq->flags |= IW_ENCODE_OPEN; + else + erq->flags |= IW_ENCODE_RESTRICTED; + + return 0; +} +#if (WIRELESS_EXT >= 18) +#ifdef _RTL8192_EXT_PATCH_ +int rtllib_wx_set_encode_ext(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra, u8 is_mesh) +#else +int rtllib_wx_set_encode_ext(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +#endif +{ + int ret = 0; + struct net_device *dev = ieee->dev; + struct iw_point *encoding = &wrqu->encoding; + struct iw_encode_ext *ext = (struct iw_encode_ext *)extra; + int i, idx; + int group_key = 0; + const char *alg, *module; + struct rtllib_crypto_ops *ops; + struct rtllib_crypt_data **crypt; + + struct rtllib_security sec = { + .flags = 0, + }; + idx = encoding->flags & IW_ENCODE_INDEX; + if (idx) { + if (idx < 1 || idx > WEP_KEYS) + return -EINVAL; + idx--; + } else{ +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + idx = ieee->mesh_txkeyidx; + else +#endif + idx = ieee->tx_keyidx; + } + if (ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) { +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + crypt = &ieee->cryptlist[0]->crypt[idx]; + else + crypt = &ieee->sta_crypt[idx]; +#else + crypt = &ieee->crypt[idx]; +#endif + group_key = 1; + } else { + /* some Cisco APs use idx>0 for unicast in dynamic WEP */ + if (idx != 0 && ext->alg != IW_ENCODE_ALG_WEP) + return -EINVAL; +#ifdef _RTL8192_EXT_PATCH_ + if ((ieee->iw_mode == IW_MODE_INFRA)|| + ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0))){ + if(is_mesh) + crypt = &ieee->cryptlist[0]->crypt[idx]; + else + crypt = &ieee->sta_crypt[idx]; + } + else + return -EINVAL; +#else + if (ieee->iw_mode == IW_MODE_INFRA) + crypt = &ieee->crypt[idx]; + else + return -EINVAL; +#endif + } + + sec.flags |= SEC_ENABLED; + if ((encoding->flags & IW_ENCODE_DISABLED) || + ext->alg == IW_ENCODE_ALG_NONE) { + if (*crypt) + rtllib_crypt_delayed_deinit(ieee, crypt); + + for (i = 0; i < WEP_KEYS; i++) + { +#ifdef _RTL8192_EXT_PATCH_ + if ((is_mesh)&&(ieee->cryptlist[0]->crypt[i] != NULL)) + break; + if ((!is_mesh)&&(ieee->sta_crypt[i] != NULL)) + break; +#else + if (ieee->crypt[i] != NULL) + break; +#endif + } + if (i == WEP_KEYS) { + sec.enabled = 0; + sec.level = SEC_LEVEL_0; + sec.flags |= SEC_LEVEL; + } + goto done; + } + + sec.enabled = 1; +#if 0 + if (group_key ? !ieee->host_mc_decrypt : + !(ieee->host_encrypt || ieee->host_decrypt || + ieee->host_encrypt_msdu)) + goto skip_host_crypt; +#endif + switch (ext->alg) { + case IW_ENCODE_ALG_WEP: + alg = "WEP"; + module = "rtllib_crypt_wep"; + break; + case IW_ENCODE_ALG_TKIP: + alg = "TKIP"; + module = "rtllib_crypt_tkip"; + break; + case IW_ENCODE_ALG_CCMP: + alg = "CCMP"; + module = "rtllib_crypt_ccmp"; + break; + default: + RTLLIB_DEBUG_WX("%s: unknown crypto alg %d\n", + dev->name, ext->alg); + ret = -EINVAL; + goto done; + } + printk("alg name:%s\n",alg); + + ops = rtllib_get_crypto_ops(alg); + if (ops == NULL) { + char tempbuf[100]; + + memset( tempbuf, 0x00, 100 ); + sprintf( tempbuf, "%s", module); + request_module("%s",tempbuf); + ops = rtllib_get_crypto_ops(alg); + } + if (ops == NULL) { + RTLLIB_DEBUG_WX("%s: unknown crypto alg %d\n", + dev->name, ext->alg); + printk("========>unknown crypto alg %d\n", ext->alg); + ret = -EINVAL; + goto done; + } + + if (*crypt == NULL || (*crypt)->ops != ops) { + struct rtllib_crypt_data *new_crypt; + + rtllib_crypt_delayed_deinit(ieee, crypt); + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)) + new_crypt = kzalloc(sizeof(*new_crypt), GFP_KERNEL); +#else + new_crypt = kmalloc(sizeof(*new_crypt), GFP_KERNEL); + memset(new_crypt,0,sizeof(*new_crypt)); +#endif + if (new_crypt == NULL) { + ret = -ENOMEM; + goto done; + } + new_crypt->ops = ops; +#ifdef BUILT_IN_RTLLIB + if (new_crypt->ops) +#else + if (new_crypt->ops && try_module_get(new_crypt->ops->owner)) +#endif + { + new_crypt->priv = new_crypt->ops->init(idx); + } + + if (new_crypt->priv == NULL) { + kfree(new_crypt); + ret = -EINVAL; + goto done; + } + *crypt = new_crypt; + + } +#ifdef _RTL8192_EXT_PATCH_ + if ((ieee->iw_mode == IW_MODE_MESH)&&(is_mesh)) + { + int j; + for (j=1; jcryptlist[j]->crypt[idx]; + if (*crypttmp == NULL) + break; + if (*crypttmp && (*crypttmp)->ops != ops) + rtllib_crypt_delayed_deinit(ieee, crypttmp); + } + } +#endif + + if (ext->key_len > 0 && (*crypt)->ops->set_key && + (*crypt)->ops->set_key(ext->key, ext->key_len, ext->rx_seq, + (*crypt)->priv) < 0) { + RTLLIB_DEBUG_WX("%s: key setting failed\n", dev->name); + printk("key setting failed\n"); + ret = -EINVAL; + goto done; + } +#if 1 + if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) { +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + ieee->mesh_txkeyidx = idx; + else +#endif + ieee->tx_keyidx = idx; + sec.active_key = idx; + sec.flags |= SEC_ACTIVE_KEY; + } +#ifdef _RTL8192_EXT_PATCH_ + if ((ieee->iw_mode == IW_MODE_MESH)&&(is_mesh)&&ieee->ext_patch_rtllib_create_crypt_for_peer) + { + ieee->ext_patch_rtllib_create_crypt_for_peer(ieee); + } +#endif + if (ext->alg != IW_ENCODE_ALG_NONE) { + sec.key_sizes[idx] = ext->key_len; + sec.flags |= (1 << idx); + if (ext->alg == IW_ENCODE_ALG_WEP) { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_1; + } else if (ext->alg == IW_ENCODE_ALG_TKIP) { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_2; + } else if (ext->alg == IW_ENCODE_ALG_CCMP) { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_3; + } + /* Don't set sec level for group keys. */ + if (group_key) + sec.flags &= ~SEC_LEVEL; + } +#endif +done: + if (ieee->set_security) + ieee->set_security(ieee->dev, &sec); + + if (ieee->reset_on_keychange && + ieee->iw_mode != IW_MODE_INFRA && + ieee->reset_port && ieee->reset_port(dev)) { + RTLLIB_DEBUG_WX("%s: reset_port failed\n", dev->name); + return -EINVAL; + } + return ret; +} + +#ifdef _RTL8192_EXT_PATCH_ +int rtllib_wx_get_encode_ext(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra, u8 is_mesh) +#else +int rtllib_wx_get_encode_ext(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +#endif +{ + struct iw_point *encoding = &wrqu->encoding; + struct iw_encode_ext *ext = (struct iw_encode_ext *)extra; + struct rtllib_crypt_data *crypt; + int idx, max_key_len; + + max_key_len = encoding->length - sizeof(*ext); + if (max_key_len < 0) + return -EINVAL; + + idx = encoding->flags & IW_ENCODE_INDEX; + if (idx) { + if (idx < 1 || idx > WEP_KEYS) + return -EINVAL; + idx--; + } else{ +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + idx = ieee->mesh_txkeyidx; + else +#endif + idx = ieee->tx_keyidx; + } + if (!(ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) && + (ext->alg != IW_ENCODE_ALG_WEP)) +#ifdef _RTL8192_EXT_PATCH_ + if (idx != 0 || !((ieee->iw_mode == IW_MODE_INFRA) || ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0)))) +#else + if (idx != 0 || (ieee->iw_mode != IW_MODE_INFRA)) +#endif + return -EINVAL; + +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + crypt = ieee->cryptlist[0]->crypt[idx]; + else + crypt = ieee->sta_crypt[idx]; +#else + crypt = ieee->crypt[idx]; +#endif + + encoding->flags = idx + 1; + memset(ext, 0, sizeof(*ext)); + + if (crypt == NULL || crypt->ops == NULL ) { + ext->alg = IW_ENCODE_ALG_NONE; + ext->key_len = 0; + encoding->flags |= IW_ENCODE_DISABLED; + } else { + if (strcmp(crypt->ops->name, "WEP") == 0 ) + ext->alg = IW_ENCODE_ALG_WEP; + else if (strcmp(crypt->ops->name, "TKIP")) + ext->alg = IW_ENCODE_ALG_TKIP; + else if (strcmp(crypt->ops->name, "CCMP")) + ext->alg = IW_ENCODE_ALG_CCMP; + else + return -EINVAL; + ext->key_len = crypt->ops->get_key(ext->key, SCM_KEY_LEN, NULL, crypt->priv); + encoding->flags |= IW_ENCODE_ENABLED; + if (ext->key_len && + (ext->alg == IW_ENCODE_ALG_TKIP || + ext->alg == IW_ENCODE_ALG_CCMP)) + ext->ext_flags |= IW_ENCODE_EXT_TX_SEQ_VALID; + + } + + return 0; +} +#ifdef _RTL8192_EXT_PATCH_ +int rtllib_mesh_set_encode_ext(struct rtllib_device *ieee, + struct iw_point *encoding, struct iw_encode_ext *ext, int entry) +{ + int ret = 0; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + struct net_device *dev = ieee->dev; + int i, idx; + int group_key = 0; + const char *alg, *module; + struct rtllib_crypto_ops *ops; + struct rtllib_crypt_data **crypt; + + struct rtllib_security sec = { + .flags = 0, + }; + idx = encoding->flags & IW_ENCODE_INDEX; + + if (idx) { + if (idx < 1 || idx > WEP_KEYS) + return -EINVAL; + idx--; + } else + idx = ieee->tx_keyidx; + + + if (ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) { + crypt = &ieee->cryptlist[0]->crypt[idx]; + group_key = 1; + } else { + /* some Cisco APs use idx>0 for unicast in dynamic WEP */ + if (idx != 0 && ext->alg != IW_ENCODE_ALG_WEP) + return -EINVAL; + if ((ieee->iw_mode == IW_MODE_INFRA) || (ieee->mesh_started==1)) + { + crypt = &ieee->cryptlist[entry]->crypt[idx]; +#if 0 + if(*crypt == NULL ) + printk("%s: ERR! &ieee->cryptlist[%d]->crypt[%d] is NULL.\n",__func__, entry,idx); +#endif + } + else + return -EINVAL; + } + + sec.flags |= SEC_ENABLED; + if ((encoding->flags & IW_ENCODE_DISABLED) || + ext->alg == IW_ENCODE_ALG_NONE) { + if (*crypt){ + printk("=====>%s():DISABLE crypt is not NULL\n",__FUNCTION__); + rtllib_crypt_delayed_deinit(ieee, crypt); + } +#ifdef _RTL8192_EXT_PATCH_ + if(1) + { + int j; + for (j=1; jcryptlist[j]->crypt[idx]; + if (*crypttmp == NULL) + continue; + printk("======>crypt is not NULL\n"); + rtllib_crypt_delayed_deinit(ieee, crypttmp); + } + } +#endif + + for (i = 0; i < WEP_KEYS; i++){ + if (ieee->cryptlist[0]->crypt[i] != NULL) + break; + } + if (i == WEP_KEYS) { + sec.enabled = 0; + sec.level = SEC_LEVEL_0; + sec.flags |= SEC_LEVEL; + } + goto done; + } + + sec.enabled = 1; +#if 0 + if (group_key ? !ieee->host_mc_decrypt : + !(ieee->host_encrypt || ieee->host_decrypt || + ieee->host_encrypt_msdu)) + goto skip_host_crypt; +#endif + switch (ext->alg) { + case IW_ENCODE_ALG_WEP: + alg = "WEP"; + module = "rtllib_crypt_wep"; + break; + case IW_ENCODE_ALG_TKIP: + alg = "TKIP"; + module = "rtllib_crypt_tkip"; + break; + case IW_ENCODE_ALG_CCMP: + alg = "CCMP"; + module = "rtllib_crypt_ccmp"; + break; + default: + RTLLIB_DEBUG_WX("%s: unknown crypto alg %d\n", + dev->name, ext->alg); + ret = -EINVAL; + goto done; + } + printk("%s: alg name:%s\n",__FUNCTION__, alg); + + ops = rtllib_get_crypto_ops(alg); + if (ops == NULL) { + request_module("%s",module); + ops = rtllib_get_crypto_ops(alg); + } + if (ops == NULL) { + RTLLIB_DEBUG_WX("%s: unknown crypto alg %d\n", + dev->name, ext->alg); + printk("========>unknown crypto alg %d\n", ext->alg); + ret = -EINVAL; + goto done; + } + + if (*crypt == NULL || (*crypt)->ops != ops) { + + struct rtllib_crypt_data *new_crypt; + + rtllib_crypt_delayed_deinit(ieee, crypt); + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)) + new_crypt = kzalloc(sizeof(*new_crypt), GFP_KERNEL); +#else + new_crypt = kmalloc(sizeof(*new_crypt), GFP_KERNEL); + memset(new_crypt,0,sizeof(*new_crypt)); +#endif + if (new_crypt == NULL) { + ret = -ENOMEM; + goto done; + } + new_crypt->ops = ops; +#ifdef BUILT_IN_RTLLIB + if (new_crypt->ops) +#else + if (new_crypt->ops && try_module_get(new_crypt->ops->owner)) +#endif + { + new_crypt->priv = new_crypt->ops->init(idx); + } + if (new_crypt->priv == NULL) { + kfree(new_crypt); + ret = -EINVAL; + goto done; + } + *crypt = new_crypt; + } + + printk("%s: key_len %x \n",__FUNCTION__, ext->key_len); + + if (ext->key_len > 0 && (*crypt)->ops->set_key && + (*crypt)->ops->set_key(ext->key, ext->key_len, ext->rx_seq, + (*crypt)->priv) < 0) { + RTLLIB_DEBUG_WX("%s: key setting failed\n", dev->name); + printk("key setting failed\n"); + ret = -EINVAL; + goto done; + } +#if 1 + if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) { + ieee->mesh_txkeyidx = idx; + sec.active_key = idx; + sec.flags |= SEC_ACTIVE_KEY; + } + + if (ext->alg != IW_ENCODE_ALG_NONE) { + sec.key_sizes[idx] = ext->key_len; + sec.flags |= (1 << idx); + if (ext->alg == IW_ENCODE_ALG_WEP) { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_1; + } else if (ext->alg == IW_ENCODE_ALG_TKIP) { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_2; + } else if (ext->alg == IW_ENCODE_ALG_CCMP) { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_3; + } + /* Don't set sec level for group keys. */ + if (group_key) + sec.flags &= ~SEC_LEVEL; + } +#endif +done: + if (ieee->set_security) + ieee->set_security(ieee->dev, &sec); + + if (ieee->reset_on_keychange && + ieee->iw_mode != IW_MODE_INFRA && + ieee->reset_port && ieee->reset_port(dev)) { + RTLLIB_DEBUG_WX("%s: reset_port failed\n", dev->name); + return -EINVAL; + } +#endif + return ret; +} +#endif + +int rtllib_wx_set_mlme(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + u8 i = 0; + bool deauth = false; + struct iw_mlme *mlme = (struct iw_mlme *) extra; + + if (ieee->state != RTLLIB_LINKED) + return -ENOLINK; + + down(&ieee->wx_sem); + + switch (mlme->cmd) { + case IW_MLME_DEAUTH: + deauth = true; + /* leave break out intentionly */ + + case IW_MLME_DISASSOC: +#ifdef _RTL8192_EXT_PATCH_ + if(!((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 1))) + { +#endif + if(deauth == true) { + printk("disauth packet !\n"); + } else { + printk("dis associate packet!\n"); + } + + ieee->cannot_notify = true; + + SendDisassociation(ieee,deauth,mlme->reason_code); + rtllib_disassociate(ieee); + + ieee->wap_set = 0; + for(i=0;i<6;i++) ieee->current_network.bssid[i]= 0x55; + + ieee->ssid_set = 0; + ieee->current_network.ssid[0] = '\0'; + ieee->current_network.ssid_len = 0; +#ifdef _RTL8192_EXT_PATCH_ + } +#endif + break; + default: + up(&ieee->wx_sem); + return -EOPNOTSUPP; + } + + up(&ieee->wx_sem); + +#endif + return 0; +} + +int rtllib_wx_set_auth(struct rtllib_device *ieee, + struct iw_request_info *info, + struct iw_param *data, char *extra) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) + switch (data->flags & IW_AUTH_INDEX) { + case IW_AUTH_WPA_VERSION: + break; + case IW_AUTH_CIPHER_PAIRWISE: + case IW_AUTH_CIPHER_GROUP: + case IW_AUTH_KEY_MGMT: + /* + * Host AP driver does not use these parameters and allows + * wpa_supplicant to control them internally. + */ + break; + case IW_AUTH_TKIP_COUNTERMEASURES: + ieee->tkip_countermeasures = data->value; + break; + case IW_AUTH_DROP_UNENCRYPTED: + ieee->drop_unencrypted = data->value; + break; + + case IW_AUTH_80211_AUTH_ALG: + if(data->value & IW_AUTH_ALG_SHARED_KEY){ + ieee->open_wep = 0; + ieee->auth_mode = 1; + } + else if(data->value & IW_AUTH_ALG_OPEN_SYSTEM){ + ieee->open_wep = 1; + ieee->auth_mode = 0; + } + else if(data->value & IW_AUTH_ALG_LEAP){ + ieee->open_wep = 1; + ieee->auth_mode = 2; + } + else + return -EINVAL; + break; + +#if 1 + case IW_AUTH_WPA_ENABLED: + ieee->wpa_enabled = (data->value)?1:0; + break; + +#endif + case IW_AUTH_RX_UNENCRYPTED_EAPOL: + ieee->ieee802_1x = data->value; + break; + case IW_AUTH_PRIVACY_INVOKED: + ieee->privacy_invoked = data->value; + break; + default: + return -EOPNOTSUPP; + } +#endif + return 0; +} +#endif + +int rtllib_wx_set_gen_ie(struct rtllib_device *ieee, u8 *ie, size_t len) +{ +#if (WIRELESS_EXT >= 18 ) + u8 *buf; + u8 eid, wps_oui[4]={0x0,0x50,0xf2,0x04}; + + if (len > MAX_WPA_IE_LEN || (len && ie == NULL)) { + return -EINVAL; + } + + if (len) { + eid = ie[0]; + if ((eid == MFIE_TYPE_GENERIC) && (!memcmp(&ie[2], wps_oui, 4))) { + + ieee->wps_ie_len = (len < MAX_WZC_IE_LEN) ? (len):(MAX_WZC_IE_LEN); + buf = kmalloc(ieee->wps_ie_len, GFP_KERNEL); + if (buf == NULL) + return -ENOMEM; + memcpy(buf, ie, ieee->wps_ie_len); + ieee->wps_ie = buf; + return 0; + } + } + ieee->wps_ie_len = 0; + if (ieee->wps_ie) + kfree(ieee->wps_ie); + ieee->wps_ie = NULL; + if (len) { + if (len != ie[1]+2) { + return -EINVAL; + } + buf = kmalloc(len, GFP_KERNEL); + if (buf == NULL) + return -ENOMEM; + memcpy(buf, ie, len); + kfree(ieee->wpa_ie); + ieee->wpa_ie = buf; + ieee->wpa_ie_len = len; + } else { + if (ieee->wpa_ie) + kfree(ieee->wpa_ie); + ieee->wpa_ie = NULL; + ieee->wpa_ie_len = 0; + } +#endif + return 0; +} + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(rtllib_wx_set_gen_ie); +#if (WIRELESS_EXT >= 18) +EXPORT_SYMBOL_RSL(rtllib_wx_set_mlme); +EXPORT_SYMBOL_RSL(rtllib_wx_set_auth); +EXPORT_SYMBOL_RSL(rtllib_wx_set_encode_ext); +EXPORT_SYMBOL_RSL(rtllib_wx_get_encode_ext); +#endif +EXPORT_SYMBOL_RSL(rtllib_wx_get_scan); +EXPORT_SYMBOL_RSL(rtllib_wx_set_encode); +EXPORT_SYMBOL_RSL(rtllib_wx_get_encode); +#endif +#ifdef _RTL8192_EXT_PATCH_ +EXPORT_SYMBOL_RSL(rtllib_mesh_set_encode_ext); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtllib_softmac_wx.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtllib_softmac_wx.c @@ -0,0 +1,747 @@ +/* IEEE 802.11 SoftMAC layer + * Copyright (c) 2005 Andrea Merello + * + * Mostly extracted from the rtl8180-sa2400 driver for the + * in-kernel generic ieee802.11 stack. + * + * Some pieces of code might be stolen from ipw2100 driver + * copyright of who own it's copyright ;-) + * + * PS wx handler mostly stolen from hostap, copyright who + * own it's copyright ;-) + * + * released under the GPL + */ + + +#include "rtllib.h" +#ifdef ENABLE_DOT11D +#include "dot11d.h" +#endif +/* FIXME: add A freqs */ + +const long rtllib_wlan_frequencies[] = { + 2412, 2417, 2422, 2427, + 2432, 2437, 2442, 2447, + 2452, 2457, 2462, 2467, + 2472, 2484 +}; + + +int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ + int ret; + struct iw_freq *fwrq = & wrqu->freq; + + down(&ieee->wx_sem); + + if(ieee->iw_mode == IW_MODE_INFRA){ + ret = 0; + goto out; + } + + /* if setting by freq convert to channel */ + if (fwrq->e == 1) { + if ((fwrq->m >= (int) 2.412e8 && + fwrq->m <= (int) 2.487e8)) { + int f = fwrq->m / 100000; + int c = 0; + + while ((c < 14) && (f != rtllib_wlan_frequencies[c])) + c++; + + /* hack to fall through */ + fwrq->e = 0; + fwrq->m = c + 1; + } + } + + if (fwrq->e > 0 || fwrq->m > 14 || fwrq->m < 1 ){ + ret = -EOPNOTSUPP; + goto out; + + }else { /* Set the channel */ + +#ifdef ENABLE_DOT11D + if (ieee->active_channel_map[fwrq->m] != 1) { + ret = -EINVAL; + goto out; + } +#endif + ieee->current_network.channel = fwrq->m; + ieee->set_chan(ieee->dev, ieee->current_network.channel); + + if(ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER) + if(ieee->state == RTLLIB_LINKED){ + + rtllib_stop_send_beacons(ieee); + rtllib_start_send_beacons(ieee); + } + } + + ret = 0; +out: + up(&ieee->wx_sem); + return ret; +} + + +#ifdef _RTL8192_EXT_PATCH_ +int rtllib_wx_get_freq(struct rtllib_device *ieee, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b, u8 is_mesh) +#else +int rtllib_wx_get_freq(struct rtllib_device *ieee, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +#endif +{ + struct iw_freq *fwrq = & wrqu->freq; + +#ifdef _RTL8192_EXT_PATCH_ + if(is_mesh) + { + if (ieee->current_mesh_network.channel == 0) + return -1; + fwrq->m = rtllib_wlan_frequencies[ieee->current_mesh_network.channel-1] * 100000; + fwrq->e = 1; + } + else +#endif + { + if (ieee->current_network.channel == 0) + return -1; + fwrq->m = rtllib_wlan_frequencies[ieee->current_network.channel-1] * 100000; + fwrq->e = 1; + } + return 0; +} + +int rtllib_wx_get_wap(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + unsigned long flags; + + wrqu->ap_addr.sa_family = ARPHRD_ETHER; + + if (ieee->iw_mode == IW_MODE_MONITOR) + return -1; + + /* We want avoid to give to the user inconsistent infos*/ + spin_lock_irqsave(&ieee->lock, flags); + + if (ieee->state != RTLLIB_LINKED && + ieee->state != RTLLIB_LINKED_SCANNING && + ieee->wap_set == 0) + + memset(wrqu->ap_addr.sa_data, 0, ETH_ALEN); + else + memcpy(wrqu->ap_addr.sa_data, + ieee->current_network.bssid, ETH_ALEN); + + spin_unlock_irqrestore(&ieee->lock, flags); + + return 0; +} + + +int rtllib_wx_set_wap(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *awrq, + char *extra) +{ + + int ret = 0; + u8 zero[] = {0,0,0,0,0,0}; + unsigned long flags; + + short ifup = ieee->proto_started; + struct sockaddr *temp = (struct sockaddr *)awrq; + + rtllib_stop_scan_syncro(ieee); + + down(&ieee->wx_sem); + /* use ifconfig hw ether */ + if (ieee->iw_mode == IW_MODE_MASTER){ + ret = -1; + goto out; + } + + if (temp->sa_family != ARPHRD_ETHER){ + ret = -EINVAL; + goto out; + } + + if (memcmp(temp->sa_data, zero,ETH_ALEN) == 0){ + spin_lock_irqsave(&ieee->lock, flags); + memcpy(ieee->current_network.bssid, temp->sa_data, ETH_ALEN); + ieee->wap_set = 0; + spin_unlock_irqrestore(&ieee->lock, flags); + ret = -1; + goto out; + } + + + if (ifup) + rtllib_stop_protocol(ieee,true); + + /* just to avoid to give inconsistent infos in the + * get wx method. not really needed otherwise + */ + spin_lock_irqsave(&ieee->lock, flags); + + ieee->cannot_notify = false; + memcpy(ieee->current_network.bssid, temp->sa_data, ETH_ALEN); + ieee->wap_set = (memcmp(temp->sa_data, zero,ETH_ALEN)!=0); + + spin_unlock_irqrestore(&ieee->lock, flags); + + if (ifup) + rtllib_start_protocol(ieee); +out: + up(&ieee->wx_sem); + return ret; +} + + int rtllib_wx_get_essid(struct rtllib_device *ieee, struct iw_request_info *a,union iwreq_data *wrqu,char *b) +{ + int len,ret = 0; + unsigned long flags; + + if (ieee->iw_mode == IW_MODE_MONITOR) + return -1; + + /* We want avoid to give to the user inconsistent infos*/ + spin_lock_irqsave(&ieee->lock, flags); + + if (ieee->current_network.ssid[0] == '\0' || + ieee->current_network.ssid_len == 0){ + ret = -1; + goto out; + } + + if (ieee->state != RTLLIB_LINKED && + ieee->state != RTLLIB_LINKED_SCANNING && + ieee->ssid_set == 0){ + ret = -1; + goto out; + } + len = ieee->current_network.ssid_len; + wrqu->essid.length = len; + strncpy(b,ieee->current_network.ssid,len); + wrqu->essid.flags = 1; + +out: + spin_unlock_irqrestore(&ieee->lock, flags); + + return ret; + +} + +int rtllib_wx_set_rate(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + + u32 target_rate = wrqu->bitrate.value; + + ieee->rate = target_rate/100000; + return 0; +} + +int rtllib_wx_get_rate(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + u32 tmp_rate = 0; +#if defined RTL8192SU + if (ieee->mode & (IEEE_A | IEEE_B | IEEE_G)) + tmp_rate = ieee->rate; + else if (ieee->mode & IEEE_N_5G) + tmp_rate = 580; + else if (ieee->mode & IEEE_N_24G) { + if (ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev)) + tmp_rate = HTHalfMcsToDataRate(ieee, 15); + else + tmp_rate = HTMcsToDataRate(ieee, 15); + } +#elif defined RTL8192SE || defined RTL8192CE + tmp_rate = ieee->rtl_11n_user_show_rates(ieee->dev); +#else + tmp_rate = TxCountToDataRate(ieee, ieee->softmac_stats.CurrentShowTxate); +#endif + wrqu->bitrate.value = tmp_rate * 500000; + + return 0; +} + + +int rtllib_wx_set_rts(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + if (wrqu->rts.disabled || !wrqu->rts.fixed) + ieee->rts = DEFAULT_RTS_THRESHOLD; + else + { + if (wrqu->rts.value < MIN_RTS_THRESHOLD || + wrqu->rts.value > MAX_RTS_THRESHOLD) + return -EINVAL; + ieee->rts = wrqu->rts.value; + } + return 0; +} + +int rtllib_wx_get_rts(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + wrqu->rts.value = ieee->rts; + wrqu->rts.fixed = 0; /* no auto select */ + wrqu->rts.disabled = (wrqu->rts.value == DEFAULT_RTS_THRESHOLD); + return 0; +} + +int rtllib_wx_set_mode(struct rtllib_device *ieee, struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ + int set_mode_status = 0; + + rtllib_stop_scan_syncro(ieee); + down(&ieee->wx_sem); + switch (wrqu->mode) { + case IW_MODE_MONITOR: + case IW_MODE_ADHOC: + case IW_MODE_INFRA: +#ifdef _RTL8192_EXT_PATCH_ + case IW_MODE_MESH: +#endif + break; + case IW_MODE_AUTO: + wrqu->mode = IW_MODE_INFRA; + break; + default: + set_mode_status = -EINVAL; + goto out; + } + + if (wrqu->mode == ieee->iw_mode) + goto out; + + if (wrqu->mode == IW_MODE_MONITOR) { +#if defined(RTLLIB_RADIOTAP) && (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,10)) + ieee->dev->type = ARPHRD_IEEE80211_RADIOTAP; +#else + ieee->dev->type = ARPHRD_IEEE80211; +#endif + rtllib_EnableNetMonitorMode(ieee->dev,false); + + } else { + ieee->dev->type = ARPHRD_ETHER; + if (ieee->iw_mode == IW_MODE_MONITOR) + rtllib_DisableNetMonitorMode(ieee->dev,false); + } + + if (!ieee->proto_started) { + ieee->iw_mode = wrqu->mode; + } else { + rtllib_stop_protocol(ieee,true); + ieee->iw_mode = wrqu->mode; +#if defined (RTL8192S_WAPI_SUPPORT) + if(ieee->iw_mode == IW_MODE_ADHOC) + ieee->wapiInfo.bWapiPSK = true; +#endif + rtllib_start_protocol(ieee); + } + +out: + up(&ieee->wx_sem); + return set_mode_status; +} + +void rtllib_wx_sync_scan_wq(void *data) +{ + struct rtllib_device *ieee = container_of_work_rsl(data, struct rtllib_device, wx_sync_scan_wq); + short chan; + HT_EXTCHNL_OFFSET chan_offset=0; + HT_CHANNEL_WIDTH bandwidth=0; + int b40M = 0; + static int count = 0; + + if (!(ieee->softmac_features & IEEE_SOFTMAC_SCAN)){ + rtllib_start_scan_syncro(ieee, 0); + goto out; + } + + chan = ieee->current_network.channel; + +#ifdef ENABLE_LPS + if (ieee->LeisurePSLeave) { + ieee->LeisurePSLeave(ieee->dev); + } + /* notify AP to be in PS mode */ + rtllib_sta_ps_send_null_frame(ieee, 1); + rtllib_sta_ps_send_null_frame(ieee, 1); +#endif + + rtllib_stop_all_queues(ieee); + + if (ieee->data_hard_stop) + ieee->data_hard_stop(ieee->dev); + rtllib_stop_send_beacons(ieee); + ieee->state = RTLLIB_LINKED_SCANNING; + ieee->link_change(ieee->dev); + /* wait for ps packet to be kicked out successfully */ + msleep(50); + + if(ieee->ScanOperationBackupHandler) + ieee->ScanOperationBackupHandler(ieee->dev,SCAN_OPT_BACKUP); + + if (ieee->pHTInfo->bCurrentHTSupport && ieee->pHTInfo->bEnableHT && ieee->pHTInfo->bCurBW40MHz) { + b40M = 1; + chan_offset = ieee->pHTInfo->CurSTAExtChnlOffset; + bandwidth = (HT_CHANNEL_WIDTH)ieee->pHTInfo->bCurBW40MHz; + printk("Scan in 40M, force to 20M first:%d, %d\n", chan_offset, bandwidth); + ieee->SetBWModeHandler(ieee->dev, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT); + } + + rtllib_start_scan_syncro(ieee, 0); + + if (b40M) { + printk("Scan in 20M, back to 40M\n"); + if (chan_offset == HT_EXTCHNL_OFFSET_UPPER) + ieee->set_chan(ieee->dev, chan + 2); + else if (chan_offset == HT_EXTCHNL_OFFSET_LOWER) + ieee->set_chan(ieee->dev, chan - 2); + else + ieee->set_chan(ieee->dev, chan); + ieee->SetBWModeHandler(ieee->dev, bandwidth, chan_offset); + } else { + ieee->set_chan(ieee->dev, chan); + } + + if(ieee->ScanOperationBackupHandler) + ieee->ScanOperationBackupHandler(ieee->dev,SCAN_OPT_RESTORE); + + ieee->state = RTLLIB_LINKED; + ieee->link_change(ieee->dev); + +#ifdef ENABLE_LPS + /* Notify AP that I wake up again */ + rtllib_sta_ps_send_null_frame(ieee, 0); +#endif + + if (ieee->LinkDetectInfo.NumRecvBcnInPeriod == 0 || + ieee->LinkDetectInfo.NumRecvDataInPeriod == 0 ) { + ieee->LinkDetectInfo.NumRecvBcnInPeriod = 1; + ieee->LinkDetectInfo.NumRecvDataInPeriod= 1; + } + + if (ieee->data_hard_resume) + ieee->data_hard_resume(ieee->dev); + + if(ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER) + rtllib_start_send_beacons(ieee); + + rtllib_wake_all_queues(ieee); + + count = 0; +out: + up(&ieee->wx_sem); + +} + +int rtllib_wx_set_scan(struct rtllib_device *ieee, struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ + int ret = 0; + + down(&ieee->wx_sem); + + if (ieee->iw_mode == IW_MODE_MONITOR || !(ieee->proto_started)){ + ret = -1; + goto out; + } + + if ( ieee->state == RTLLIB_LINKED){ + queue_work_rsl(ieee->wq, &ieee->wx_sync_scan_wq); + /* intentionally forget to up sem */ + return 0; + } + +out: + up(&ieee->wx_sem); + return ret; +} + +int rtllib_wx_set_essid(struct rtllib_device *ieee, + struct iw_request_info *a, + union iwreq_data *wrqu, char *extra) +{ + + int ret=0,len,i; + short proto_started; + unsigned long flags; + + rtllib_stop_scan_syncro(ieee); + down(&ieee->wx_sem); + + proto_started = ieee->proto_started; + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) + len = ((wrqu->essid.length-1) < IW_ESSID_MAX_SIZE) ? (wrqu->essid.length-1) : IW_ESSID_MAX_SIZE; +#else + len = (wrqu->essid.length < IW_ESSID_MAX_SIZE) ? wrqu->essid.length : IW_ESSID_MAX_SIZE; +#endif + + if (len > IW_ESSID_MAX_SIZE){ + ret= -E2BIG; + goto out; + } + + if (ieee->iw_mode == IW_MODE_MONITOR){ + ret= -1; + goto out; + } + + for (i=0; ilock, flags); + + if (wrqu->essid.flags && wrqu->essid.length) { + strncpy(ieee->current_network.ssid, extra, len); + ieee->current_network.ssid_len = len; +#if 0 + { + int i; + for (i=0; icannot_notify = false; + ieee->ssid_set = 1; + } + else{ + ieee->ssid_set = 0; + ieee->current_network.ssid[0] = '\0'; + ieee->current_network.ssid_len = 0; + } + spin_unlock_irqrestore(&ieee->lock, flags); + + if (proto_started) + rtllib_start_protocol(ieee); +out: + up(&ieee->wx_sem); + return ret; +} + + int rtllib_wx_get_mode(struct rtllib_device *ieee, struct iw_request_info *a, + union iwreq_data *wrqu, char *b) +{ +#ifdef _RTL8192_EXT_PATCH_ + if(ieee->iw_mode == IW_MODE_MESH) { + /* WEXT could not show mesh mode properly, + * just disable it */ + if(ieee->only_mesh) { + return -1; + } else { + wrqu->mode = IW_MODE_INFRA; + } + } + else +#endif + wrqu->mode = ieee->iw_mode; + return 0; +} + + int rtllib_wx_set_rawtx(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + + int *parms = (int *)extra; + int enable = (parms[0] > 0); + short prev = ieee->raw_tx; + + down(&ieee->wx_sem); + + if(enable) + ieee->raw_tx = 1; + else + ieee->raw_tx = 0; + + printk(KERN_INFO"raw TX is %s\n", + ieee->raw_tx ? "enabled" : "disabled"); + + if(ieee->iw_mode == IW_MODE_MONITOR) + { + if(prev == 0 && ieee->raw_tx){ + if (ieee->data_hard_resume) + ieee->data_hard_resume(ieee->dev); + + netif_carrier_on(ieee->dev); + } + + if(prev && ieee->raw_tx == 1) + netif_carrier_off(ieee->dev); + } + + up(&ieee->wx_sem); + + return 0; +} + +int rtllib_wx_get_name(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + strcpy(wrqu->name, "802.11"); + + if (ieee->modulation & RTLLIB_CCK_MODULATION) + strcat(wrqu->name, "b"); + if (ieee->modulation & RTLLIB_OFDM_MODULATION) + strcat(wrqu->name, "g"); + if (ieee->mode & (IEEE_N_24G | IEEE_N_5G)) + strcat(wrqu->name, "n"); +#if 0 + if((ieee->state == RTLLIB_LINKED) || + (ieee->state == RTLLIB_LINKED_SCANNING)) + strcat(wrqu->name," linked"); + else if(ieee->state != RTLLIB_NOLINK) + strcat(wrqu->name," link.."); +#endif + return 0; +} + + +/* this is mostly stolen from hostap */ +int rtllib_wx_set_power(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + int ret = 0; +#if 1 + if( + (!ieee->sta_wake_up) || + (!ieee->enter_sleep_state) || + (!ieee->ps_is_queue_empty)){ + + RTLLIB_DEBUG(RTLLIB_DL_ERR,"%s(): PS mode is tryied to be use but driver missed a callback\n\n",__FUNCTION__); + + return -1; + } +#endif + down(&ieee->wx_sem); + + if (wrqu->power.disabled){ + printk("===>%s(): power disable\n",__FUNCTION__); + ieee->ps = RTLLIB_PS_DISABLED; + goto exit; + } + if (wrqu->power.flags & IW_POWER_TIMEOUT) { + ieee->ps_timeout = wrqu->power.value / 1000; + printk("===>%s():ps_timeout is %d\n",__FUNCTION__,ieee->ps_timeout); + } + + if (wrqu->power.flags & IW_POWER_PERIOD) { + + ieee->ps_period = wrqu->power.value / 1000; + + } + switch (wrqu->power.flags & IW_POWER_MODE) { + case IW_POWER_UNICAST_R: + ieee->ps = RTLLIB_PS_UNICAST; + break; + case IW_POWER_MULTICAST_R: + ieee->ps = RTLLIB_PS_MBCAST; + break; + case IW_POWER_ALL_R: + ieee->ps = RTLLIB_PS_UNICAST | RTLLIB_PS_MBCAST; + break; + + case IW_POWER_ON: + break; + + default: + ret = -EINVAL; + goto exit; + + } +exit: + up(&ieee->wx_sem); + return ret; + +} + +/* this is stolen from hostap */ +int rtllib_wx_get_power(struct rtllib_device *ieee, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + int ret =0; + + down(&ieee->wx_sem); + + if(ieee->ps == RTLLIB_PS_DISABLED){ + wrqu->power.disabled = 1; + goto exit; + } + + wrqu->power.disabled = 0; + + if ((wrqu->power.flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) { + wrqu->power.flags = IW_POWER_TIMEOUT; + wrqu->power.value = ieee->ps_timeout * 1000; + } else { + wrqu->power.flags = IW_POWER_PERIOD; + wrqu->power.value = ieee->ps_period * 1000; + } + + if ((ieee->ps & (RTLLIB_PS_MBCAST | RTLLIB_PS_UNICAST)) == (RTLLIB_PS_MBCAST | RTLLIB_PS_UNICAST)) + wrqu->power.flags |= IW_POWER_ALL_R; + else if (ieee->ps & RTLLIB_PS_MBCAST) + wrqu->power.flags |= IW_POWER_MULTICAST_R; + else + wrqu->power.flags |= IW_POWER_UNICAST_R; + +exit: + up(&ieee->wx_sem); + return ret; + +} + +#ifndef BUILT_IN_RTLLIB +EXPORT_SYMBOL_RSL(rtllib_wx_get_essid); +EXPORT_SYMBOL_RSL(rtllib_wx_set_essid); +EXPORT_SYMBOL_RSL(rtllib_wx_set_rate); +EXPORT_SYMBOL_RSL(rtllib_wx_get_rate); +EXPORT_SYMBOL_RSL(rtllib_wx_set_wap); +EXPORT_SYMBOL_RSL(rtllib_wx_get_wap); +EXPORT_SYMBOL_RSL(rtllib_wx_set_mode); +EXPORT_SYMBOL_RSL(rtllib_wx_get_mode); +EXPORT_SYMBOL_RSL(rtllib_wx_set_scan); +EXPORT_SYMBOL_RSL(rtllib_wx_get_freq); +EXPORT_SYMBOL_RSL(rtllib_wx_set_freq); +EXPORT_SYMBOL_RSL(rtllib_wx_set_rawtx); +EXPORT_SYMBOL_RSL(rtllib_wx_get_name); +EXPORT_SYMBOL_RSL(rtllib_wx_set_power); +EXPORT_SYMBOL_RSL(rtllib_wx_get_power); +EXPORT_SYMBOL_RSL(rtllib_wlan_frequencies); +EXPORT_SYMBOL_RSL(rtllib_wx_set_rts); +EXPORT_SYMBOL_RSL(rtllib_wx_get_rts); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtl819x_BA.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtl819x_BA.h @@ -0,0 +1,79 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef _BATYPE_H_ +#define _BATYPE_H_ + +#define TOTAL_TXBA_NUM 16 +#define TOTAL_RXBA_NUM 16 + +#define BA_SETUP_TIMEOUT 200 +#define BA_INACT_TIMEOUT 60000 + +#define BA_POLICY_DELAYED 0 +#define BA_POLICY_IMMEDIATE 1 + +#define ADDBA_STATUS_SUCCESS 0 +#define ADDBA_STATUS_REFUSED 37 +#define ADDBA_STATUS_INVALID_PARAM 38 + +#define DELBA_REASON_QSTA_LEAVING 36 +#define DELBA_REASON_END_BA 37 +#define DELBA_REASON_UNKNOWN_BA 38 +#define DELBA_REASON_TIMEOUT 39 +typedef union _SEQUENCE_CONTROL{ + u16 ShortData; + struct + { + u16 FragNum:4; + u16 SeqNum:12; + }field; +}SEQUENCE_CONTROL, *PSEQUENCE_CONTROL; + +typedef union _BA_PARAM_SET { + u8 charData[2]; + u16 shortData; + struct { + u16 AMSDU_Support:1; + u16 BAPolicy:1; + u16 TID:4; + u16 BufferSize:10; + } field; +} BA_PARAM_SET, *PBA_PARAM_SET; + +typedef union _DELBA_PARAM_SET { + u8 charData[2]; + u16 shortData; + struct { + u16 Reserved:11; + u16 Initiator:1; + u16 TID:4; + } field; +} DELBA_PARAM_SET, *PDELBA_PARAM_SET; + +typedef struct _BA_RECORD { + struct timer_list Timer; + u8 bValid; + u8 DialogToken; + BA_PARAM_SET BaParamSet; + u16 BaTimeoutValue; + SEQUENCE_CONTROL BaStartSeqCtrl; +} BA_RECORD, *PBA_RECORD; + +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtl_crypto.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtl_crypto.h @@ -0,0 +1,409 @@ +/* + * Scatterlist Cryptographic API. + * + * Copyright (c) 2002 James Morris + * Copyright (c) 2002 David S. Miller (davem@redhat.com) + * + * Portions derived from Cryptoapi, by Alexander Kjeldaas + * and Nettle, by Niels Mé°ˆler. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + */ +#ifndef _LINUX_CRYPTO_H +#define _LINUX_CRYPTO_H + +#include +#include +#include +#include +#include +#include +#include + +#ifdef BUILT_IN_CRYPTO +#ifdef CONFIG_CRYPTO_HMAC +#undef CONFIG_CRYPTO_HMAC +#endif + +#ifdef CONFIG_KMOD +#undef CONFIG_KMOD +#endif +#endif /* BUILT_IN_CRYPTO */ + +#define crypto_register_alg crypto_register_alg_rsl +#define crypto_unregister_alg crypto_unregister_alg_rsl +#define crypto_alloc_tfm crypto_alloc_tfm_rsl +#define crypto_free_tfm crypto_free_tfm_rsl +#define crypto_alg_available crypto_alg_available_rsl + +/* + * Algorithm masks and types. + */ +#define CRYPTO_ALG_TYPE_MASK 0x000000ff +#define CRYPTO_ALG_TYPE_CIPHER 0x00000001 +#define CRYPTO_ALG_TYPE_DIGEST 0x00000002 +#define CRYPTO_ALG_TYPE_COMPRESS 0x00000004 + +/* + * Transform masks and values (for crt_flags). + */ +#define CRYPTO_TFM_MODE_MASK 0x000000ff +#define CRYPTO_TFM_REQ_MASK 0x000fff00 +#define CRYPTO_TFM_RES_MASK 0xfff00000 + +#define CRYPTO_TFM_MODE_ECB 0x00000001 +#define CRYPTO_TFM_MODE_CBC 0x00000002 +#define CRYPTO_TFM_MODE_CFB 0x00000004 +#define CRYPTO_TFM_MODE_CTR 0x00000008 + +#define CRYPTO_TFM_REQ_WEAK_KEY 0x00000100 +#define CRYPTO_TFM_RES_WEAK_KEY 0x00100000 +#define CRYPTO_TFM_RES_BAD_KEY_LEN 0x00200000 +#define CRYPTO_TFM_RES_BAD_KEY_SCHED 0x00400000 +#define CRYPTO_TFM_RES_BAD_BLOCK_LEN 0x00800000 +#define CRYPTO_TFM_RES_BAD_FLAGS 0x01000000 + +/* + * Miscellaneous stuff. + */ +#define CRYPTO_UNSPEC 0 +#define CRYPTO_MAX_ALG_NAME 64 + +struct scatterlist; + +/* + * Algorithms: modular crypto algorithm implementations, managed + * via crypto_register_alg() and crypto_unregister_alg(). + */ +struct cipher_alg { + unsigned int cia_min_keysize; + unsigned int cia_max_keysize; + int (*cia_setkey)(void *ctx, const u8 *key, + unsigned int keylen, u32 *flags); + void (*cia_encrypt)(void *ctx, u8 *dst, const u8 *src); + void (*cia_decrypt)(void *ctx, u8 *dst, const u8 *src); +}; + +struct digest_alg { + unsigned int dia_digestsize; + void (*dia_init)(void *ctx); + void (*dia_update)(void *ctx, const u8 *data, unsigned int len); + void (*dia_final)(void *ctx, u8 *out); + int (*dia_setkey)(void *ctx, const u8 *key, + unsigned int keylen, u32 *flags); +}; + +struct compress_alg { + int (*coa_init)(void *ctx); + void (*coa_exit)(void *ctx); + int (*coa_compress)(void *ctx, const u8 *src, unsigned int slen, + u8 *dst, unsigned int *dlen); + int (*coa_decompress)(void *ctx, const u8 *src, unsigned int slen, + u8 *dst, unsigned int *dlen); +}; + +#define cra_cipher cra_u.cipher +#define cra_digest cra_u.digest +#define cra_compress cra_u.compress + +struct crypto_alg { + struct list_head cra_list; + u32 cra_flags; + unsigned int cra_blocksize; + unsigned int cra_ctxsize; + const char cra_name[CRYPTO_MAX_ALG_NAME]; + + union { + struct cipher_alg cipher; + struct digest_alg digest; + struct compress_alg compress; + } cra_u; + + struct module *cra_module; +}; + +/* + * Algorithm registration interface. + */ +int crypto_register_alg(struct crypto_alg *alg); +int crypto_unregister_alg(struct crypto_alg *alg); + +/* + * Algorithm query interface. + */ +int crypto_alg_available(const char *name, u32 flags); + +/* + * Transforms: user-instantiated objects which encapsulate algorithms + * and core processing logic. Managed via crypto_alloc_tfm() and + * crypto_free_tfm(), as well as the various helpers below. + */ +struct crypto_tfm; + +struct cipher_tfm { + void *cit_iv; + unsigned int cit_ivsize; + u32 cit_mode; + int (*cit_setkey)(struct crypto_tfm *tfm, + const u8 *key, unsigned int keylen); + int (*cit_encrypt)(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes); + int (*cit_encrypt_iv)(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes, u8 *iv); + int (*cit_decrypt)(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes); + int (*cit_decrypt_iv)(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes, u8 *iv); + void (*cit_xor_block)(u8 *dst, const u8 *src); +}; + +struct digest_tfm { + void (*dit_init)(struct crypto_tfm *tfm); + void (*dit_update)(struct crypto_tfm *tfm, + struct scatterlist *sg, unsigned int nsg); + void (*dit_final)(struct crypto_tfm *tfm, u8 *out); + void (*dit_digest)(struct crypto_tfm *tfm, struct scatterlist *sg, + unsigned int nsg, u8 *out); + int (*dit_setkey)(struct crypto_tfm *tfm, + const u8 *key, unsigned int keylen); +#ifdef CONFIG_CRYPTO_HMAC + void *dit_hmac_block; +#endif +}; + +struct compress_tfm { + int (*cot_compress)(struct crypto_tfm *tfm, + const u8 *src, unsigned int slen, + u8 *dst, unsigned int *dlen); + int (*cot_decompress)(struct crypto_tfm *tfm, + const u8 *src, unsigned int slen, + u8 *dst, unsigned int *dlen); +}; + +#define crt_cipher crt_u.cipher +#define crt_digest crt_u.digest +#define crt_compress crt_u.compress + +struct crypto_tfm { + + u32 crt_flags; + + union { + struct cipher_tfm cipher; + struct digest_tfm digest; + struct compress_tfm compress; + } crt_u; + + struct crypto_alg *__crt_alg; +}; + +/* + * Transform user interface. + */ + +/* + * crypto_alloc_tfm() will first attempt to locate an already loaded algorithm. + * If that fails and the kernel supports dynamically loadable modules, it + * will then attempt to load a module of the same name or alias. A refcount + * is grabbed on the algorithm which is then associated with the new transform. + * + * crypto_free_tfm() frees up the transform and any associated resources, + * then drops the refcount on the associated algorithm. + */ +struct crypto_tfm *crypto_alloc_tfm(const char *alg_name, u32 tfm_flags); +void crypto_free_tfm(struct crypto_tfm *tfm); + +/* + * Transform helpers which query the underlying algorithm. + */ +static inline const char *crypto_tfm_alg_name(struct crypto_tfm *tfm) +{ + return tfm->__crt_alg->cra_name; +} + +static inline const char *crypto_tfm_alg_modname(struct crypto_tfm *tfm) +{ + struct crypto_alg *alg = tfm->__crt_alg; + + if (alg->cra_module) + return alg->cra_module->name; + else + return NULL; +} + +static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm) +{ + return tfm->__crt_alg->cra_flags & CRYPTO_ALG_TYPE_MASK; +} + +static inline unsigned int crypto_tfm_alg_min_keysize(struct crypto_tfm *tfm) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + return tfm->__crt_alg->cra_cipher.cia_min_keysize; +} + +static inline unsigned int crypto_tfm_alg_max_keysize(struct crypto_tfm *tfm) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + return tfm->__crt_alg->cra_cipher.cia_max_keysize; +} + +static inline unsigned int crypto_tfm_alg_ivsize(struct crypto_tfm *tfm) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + return tfm->crt_cipher.cit_ivsize; +} + +static inline unsigned int crypto_tfm_alg_blocksize(struct crypto_tfm *tfm) +{ + return tfm->__crt_alg->cra_blocksize; +} + +static inline unsigned int crypto_tfm_alg_digestsize(struct crypto_tfm *tfm) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST); + return tfm->__crt_alg->cra_digest.dia_digestsize; +} + +/* + * API wrappers. + */ +static inline void crypto_digest_init(struct crypto_tfm *tfm) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST); + tfm->crt_digest.dit_init(tfm); +} + +static inline void crypto_digest_update(struct crypto_tfm *tfm, + struct scatterlist *sg, + unsigned int nsg) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST); + tfm->crt_digest.dit_update(tfm, sg, nsg); +} + +static inline void crypto_digest_final(struct crypto_tfm *tfm, u8 *out) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST); + tfm->crt_digest.dit_final(tfm, out); +} + +static inline void crypto_digest_digest(struct crypto_tfm *tfm, + struct scatterlist *sg, + unsigned int nsg, u8 *out) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST); + tfm->crt_digest.dit_digest(tfm, sg, nsg, out); +} + +static inline int crypto_digest_setkey(struct crypto_tfm *tfm, + const u8 *key, unsigned int keylen) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST); + if (tfm->crt_digest.dit_setkey == NULL) + return -ENOSYS; + return tfm->crt_digest.dit_setkey(tfm, key, keylen); +} + +static inline int crypto_cipher_setkey(struct crypto_tfm *tfm, + const u8 *key, unsigned int keylen) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + return tfm->crt_cipher.cit_setkey(tfm, key, keylen); +} + +static inline int crypto_cipher_encrypt(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + return tfm->crt_cipher.cit_encrypt(tfm, dst, src, nbytes); +} + +static inline int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes, u8 *iv) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB); + return tfm->crt_cipher.cit_encrypt_iv(tfm, dst, src, nbytes, iv); +} + +static inline int crypto_cipher_decrypt(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + return tfm->crt_cipher.cit_decrypt(tfm, dst, src, nbytes); +} + +static inline int crypto_cipher_decrypt_iv(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes, u8 *iv) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB); + return tfm->crt_cipher.cit_decrypt_iv(tfm, dst, src, nbytes, iv); +} + +static inline void crypto_cipher_set_iv(struct crypto_tfm *tfm, + const u8 *src, unsigned int len) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + memcpy(tfm->crt_cipher.cit_iv, src, len); +} + +static inline void crypto_cipher_get_iv(struct crypto_tfm *tfm, + u8 *dst, unsigned int len) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); + memcpy(dst, tfm->crt_cipher.cit_iv, len); +} + +static inline int crypto_comp_compress(struct crypto_tfm *tfm, + const u8 *src, unsigned int slen, + u8 *dst, unsigned int *dlen) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS); + return tfm->crt_compress.cot_compress(tfm, src, slen, dst, dlen); +} + +static inline int crypto_comp_decompress(struct crypto_tfm *tfm, + const u8 *src, unsigned int slen, + u8 *dst, unsigned int *dlen) +{ + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS); + return tfm->crt_compress.cot_decompress(tfm, src, slen, dst, dlen); +} + +/* + * HMAC support. + */ +#ifdef CONFIG_CRYPTO_HMAC +void crypto_hmac_init(struct crypto_tfm *tfm, u8 *key, unsigned int *keylen); +void crypto_hmac_update(struct crypto_tfm *tfm, + struct scatterlist *sg, unsigned int nsg); +void crypto_hmac_final(struct crypto_tfm *tfm, u8 *key, + unsigned int *keylen, u8 *out); +void crypto_hmac(struct crypto_tfm *tfm, u8 *key, unsigned int *keylen, + struct scatterlist *sg, unsigned int nsg, u8 *out); +#endif /* CONFIG_CRYPTO_HMAC */ + +#endif /* _LINUX_CRYPTO_H */ + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/wapi.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/wapi.h @@ -0,0 +1,135 @@ +#ifndef __INC_WAPI_H +#define __INC_WAPI_H + +#include +#include +#include "rtl819x_Qos.h" + +/* WAPI trace debug */ +extern u32 wapi_debug_component; + +#define WAPI_TRACE(component, x, args...) \ +do { if(wapi_debug_component & (component)) \ + printk(KERN_DEBUG "WAPI" ":" x "" , \ + ##args);\ +}while(0); + +#define WAPI_DATA(component, x, buf, len) \ +do { if(wapi_debug_component & (component)){ \ + printk("%s:\n", x);\ + dump_buf((buf), (len));}\ +}while(0); + +enum WAPI_DEBUG { + WAPI_INIT =BIT0, + WAPI_API = BIT1, + WAPI_TX = BIT2, + WAPI_RX = BIT3, + WAPI_ERR = BIT31 +}; + +#define WAPI_MAX_BKID_NUM 64 +#define WAPI_MAX_STAINFO_NUM 64 +typedef struct _RT_WAPI_BKID +{ + struct list_head list; + u8 bkid[16]; +}RT_WAPI_BKID,*PRT_WAPI_BKID; + +typedef struct _RT_WAPI_KEY +{ + u8 dataKey[16]; + u8 micKey[16]; + u8 keyId; + bool bSet; + bool bTxEnable; +}RT_WAPI_KEY,*PRT_WAPI_KEY; + +typedef enum _RT_WAPI_PACKET_TYPE +{ + WAPI_NONE = 0, + WAPI_PREAUTHENTICATE=1, + WAPI_STAKEY_REQUEST=2, + WAPI_AUTHENTICATE_ACTIVE=3, + WAPI_ACCESS_AUTHENTICATE_REQUEST=4, + WAPI_ACCESS_AUTHENTICATE_RESPONSE=5, + WAPI_CERTIFICATE_AUTHENTICATE_REQUEST=6, + WAPI_CERTIFICATE_AUTHENTICATE_RESPONSE=7, + WAPI_USK_REQUEST=8, + WAPI_USK_RESPONSE=9, + WAPI_USK_CONFIRM=10, + WAPI_MSK_NOTIFICATION=11, + WAPI_MSK_RESPONSE=12 +}RT_WAPI_PACKET_TYPE; + +typedef struct _RT_CACHE_INFO { + u8 cache_buffer[2000]; + u16 cache_buffer_len; + u8 saddr[6]; + bool bAuthenticator; + u16 recvSeq; + u8 lastFragNum; + struct list_head list; +}RT_CACHE_INFO, *PRT_CACHE_INFO; + +typedef struct _RT_WAPI_STA_INFO +{ + struct list_head list; + u8 PeerMacAddr[6]; + RT_WAPI_KEY wapiUsk; + RT_WAPI_KEY wapiUskUpdate; + RT_WAPI_KEY wapiMsk; + RT_WAPI_KEY wapiMskUpdate; + u8 lastRxUnicastPN[16]; + u8 lastTxUnicastPN[16]; + u8 lastRxMulticastPN[16]; + u8 lastRxUnicastPNBEQueue[16]; + u8 lastRxUnicastPNBKQueue[16]; + u8 lastRxUnicastPNVIQueue[16]; + u8 lastRxUnicastPNVOQueue[16]; + bool bSetkeyOk; + bool bAuthenticateInProgress; + bool bAuthenticatorInUpdata; +}RT_WAPI_STA_INFO,*PRT_WAPI_STA_INFO; + +typedef struct _RT_WAPI_T +{ + u8 assoReqWapiIE[256]; + u8 assoReqWapiIELength; + u8 assoRspWapiIE[256]; + u8 assoRspWapiIELength; + u8 sendbeaconWapiIE[256]; + u8 sendbeaconWapiIELength; + RT_WAPI_BKID wapiBKID[WAPI_MAX_BKID_NUM]; + struct list_head wapiBKIDIdleList; + struct list_head wapiBKIDStoreList; + RT_WAPI_KEY wapiTxMsk; + + u8 wapiDestMacAddr[6]; + bool bAuthenticator; + u8 lastTxMulticastPN[16]; + RT_WAPI_STA_INFO wapiSta[WAPI_MAX_STAINFO_NUM]; + struct list_head wapiSTAIdleList; + struct list_head wapiSTAUsedList; + bool bWapiEnable; + bool bUpdateUsk; + bool bUpdateMsk; + + u8 wapiIE[256]; + u8 wapiIELength; + bool bWapiNotSetEncMacHeader; + bool bWapiPSK; + bool bFirstAuthentiateInProgress; + u16 wapiSeqnumAndFragNum; + int extra_prefix_len; + int extra_postfix_len; +}RT_WAPI_T,*PRT_WAPI_T; + +typedef struct _WLAN_HEADER_WAPI_EXTENSION +{ + u8 KeyIdx; + u8 Reserved; + u8 PN[16]; +} WLAN_HEADER_WAPI_EXTENSION, *PWLAN_HEADER_WAPI_EXTENSION; + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/cipher.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/cipher.c @@ -0,0 +1,298 @@ +/* + * Cryptographic API. + * + * Cipher operations. + * + * Copyright (c) 2002 James Morris + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the 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 +#include "rtl_crypto.h" +#include +#include +#include +#include +#include "internal.h" +#include "scatterwalk.h" + +typedef void (cryptfn_t)(void *, u8 *, const u8 *); +typedef void (procfn_t)(struct crypto_tfm *, u8 *, + u8*, cryptfn_t, int enc, void *, int); + +static inline void xor_64(u8 *a, const u8 *b) +{ + ((u32 *)a)[0] ^= ((u32 *)b)[0]; + ((u32 *)a)[1] ^= ((u32 *)b)[1]; +} + +static inline void xor_128(u8 *a, const u8 *b) +{ + ((u32 *)a)[0] ^= ((u32 *)b)[0]; + ((u32 *)a)[1] ^= ((u32 *)b)[1]; + ((u32 *)a)[2] ^= ((u32 *)b)[2]; + ((u32 *)a)[3] ^= ((u32 *)b)[3]; +} + + +/* + * Generic encrypt/decrypt wrapper for ciphers, handles operations across + * multiple page boundaries by using temporary blocks. In user context, + * the kernel is given a chance to schedule us once per block. + */ +static int crypt(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes, cryptfn_t crfn, + procfn_t prfn, int enc, void *info) +{ + struct scatter_walk walk_in, walk_out; + const unsigned int bsize = crypto_tfm_alg_blocksize(tfm); + u8 tmp_src[bsize]; + u8 tmp_dst[bsize]; + + if (!nbytes) + return 0; + + if (nbytes % bsize) { + tfm->crt_flags |= CRYPTO_TFM_RES_BAD_BLOCK_LEN; + return -EINVAL; + } + + scatterwalk_start(&walk_in, src); + scatterwalk_start(&walk_out, dst); + + for(;;) { + u8 *src_p, *dst_p; + int in_place; + + scatterwalk_map(&walk_in, 0); + scatterwalk_map(&walk_out, 1); + src_p = scatterwalk_whichbuf(&walk_in, bsize, tmp_src); + dst_p = scatterwalk_whichbuf(&walk_out, bsize, tmp_dst); + in_place = scatterwalk_samebuf(&walk_in, &walk_out, + src_p, dst_p); + + nbytes -= bsize; + + scatterwalk_copychunks(src_p, &walk_in, bsize, 0); + + prfn(tfm, dst_p, src_p, crfn, enc, info, in_place); + + scatterwalk_done(&walk_in, 0, nbytes); + + scatterwalk_copychunks(dst_p, &walk_out, bsize, 1); + scatterwalk_done(&walk_out, 1, nbytes); + + if (!nbytes) + return 0; + + crypto_yield(tfm); + } +} + +static void cbc_process(struct crypto_tfm *tfm, u8 *dst, u8 *src, + cryptfn_t fn, int enc, void *info, int in_place) +{ + u8 *iv = info; + + /* Null encryption */ + if (!iv) + return; + + if (enc) { + tfm->crt_u.cipher.cit_xor_block(iv, src); + fn(crypto_tfm_ctx(tfm), dst, iv); + memcpy(iv, dst, crypto_tfm_alg_blocksize(tfm)); + } else { + u8 stack[in_place ? crypto_tfm_alg_blocksize(tfm) : 0]; + u8 *buf = in_place ? stack : dst; + + fn(crypto_tfm_ctx(tfm), buf, src); + tfm->crt_u.cipher.cit_xor_block(buf, iv); + memcpy(iv, src, crypto_tfm_alg_blocksize(tfm)); + if (buf != dst) + memcpy(dst, buf, crypto_tfm_alg_blocksize(tfm)); + } +} + +static void ecb_process(struct crypto_tfm *tfm, u8 *dst, u8 *src, + cryptfn_t fn, int enc, void *info, int in_place) +{ + fn(crypto_tfm_ctx(tfm), dst, src); +} + +static int setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen) +{ + struct cipher_alg *cia = &tfm->__crt_alg->cra_cipher; + + if (keylen < cia->cia_min_keysize || keylen > cia->cia_max_keysize) { + tfm->crt_flags |= CRYPTO_TFM_RES_BAD_KEY_LEN; + return -EINVAL; + } else + return cia->cia_setkey(crypto_tfm_ctx(tfm), key, keylen, + &tfm->crt_flags); +} + +static int ecb_encrypt(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, unsigned int nbytes) +{ + return crypt(tfm, dst, src, nbytes, + tfm->__crt_alg->cra_cipher.cia_encrypt, + ecb_process, 1, NULL); +} + +static int ecb_decrypt(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes) +{ + return crypt(tfm, dst, src, nbytes, + tfm->__crt_alg->cra_cipher.cia_decrypt, + ecb_process, 1, NULL); +} + +static int cbc_encrypt(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes) +{ + return crypt(tfm, dst, src, nbytes, + tfm->__crt_alg->cra_cipher.cia_encrypt, + cbc_process, 1, tfm->crt_cipher.cit_iv); +} + +static int cbc_encrypt_iv(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes, u8 *iv) +{ + return crypt(tfm, dst, src, nbytes, + tfm->__crt_alg->cra_cipher.cia_encrypt, + cbc_process, 1, iv); +} + +static int cbc_decrypt(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes) +{ + return crypt(tfm, dst, src, nbytes, + tfm->__crt_alg->cra_cipher.cia_decrypt, + cbc_process, 0, tfm->crt_cipher.cit_iv); +} + +static int cbc_decrypt_iv(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes, u8 *iv) +{ + return crypt(tfm, dst, src, nbytes, + tfm->__crt_alg->cra_cipher.cia_decrypt, + cbc_process, 0, iv); +} + +static int nocrypt(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes) +{ + return -ENOSYS; +} + +static int nocrypt_iv(struct crypto_tfm *tfm, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes, u8 *iv) +{ + return -ENOSYS; +} + +int crypto_init_cipher_flags(struct crypto_tfm *tfm, u32 flags) +{ + u32 mode = flags & CRYPTO_TFM_MODE_MASK; + + tfm->crt_cipher.cit_mode = mode ? mode : CRYPTO_TFM_MODE_ECB; + if (flags & CRYPTO_TFM_REQ_WEAK_KEY) + tfm->crt_flags = CRYPTO_TFM_REQ_WEAK_KEY; + + return 0; +} + +int crypto_init_cipher_ops(struct crypto_tfm *tfm) +{ + int ret = 0; + struct cipher_tfm *ops = &tfm->crt_cipher; + + ops->cit_setkey = setkey; + + switch (tfm->crt_cipher.cit_mode) { + case CRYPTO_TFM_MODE_ECB: + ops->cit_encrypt = ecb_encrypt; + ops->cit_decrypt = ecb_decrypt; + break; + + case CRYPTO_TFM_MODE_CBC: + ops->cit_encrypt = cbc_encrypt; + ops->cit_decrypt = cbc_decrypt; + ops->cit_encrypt_iv = cbc_encrypt_iv; + ops->cit_decrypt_iv = cbc_decrypt_iv; + break; + + case CRYPTO_TFM_MODE_CFB: + ops->cit_encrypt = nocrypt; + ops->cit_decrypt = nocrypt; + ops->cit_encrypt_iv = nocrypt_iv; + ops->cit_decrypt_iv = nocrypt_iv; + break; + + case CRYPTO_TFM_MODE_CTR: + ops->cit_encrypt = nocrypt; + ops->cit_decrypt = nocrypt; + ops->cit_encrypt_iv = nocrypt_iv; + ops->cit_decrypt_iv = nocrypt_iv; + break; + + default: + BUG(); + } + + if (ops->cit_mode == CRYPTO_TFM_MODE_CBC) { + + switch (crypto_tfm_alg_blocksize(tfm)) { + case 8: + ops->cit_xor_block = xor_64; + break; + + case 16: + ops->cit_xor_block = xor_128; + break; + + default: + printk(KERN_WARNING "%s: block size %u not supported\n", + crypto_tfm_alg_name(tfm), + crypto_tfm_alg_blocksize(tfm)); + ret = -EINVAL; + goto out; + } + + ops->cit_ivsize = crypto_tfm_alg_blocksize(tfm); + ops->cit_iv = kmalloc(ops->cit_ivsize, GFP_KERNEL); + if (ops->cit_iv == NULL) + ret = -ENOMEM; + } + +out: + return ret; +} + +void crypto_exit_cipher_ops(struct crypto_tfm *tfm) +{ + if (tfm->crt_cipher.cit_iv) + kfree(tfm->crt_cipher.cit_iv); +} --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtl819x_Qos.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtl819x_Qos.h @@ -0,0 +1,722 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef __INC_QOS_TYPE_H +#define __INC_QOS_TYPE_H + +#include "rtllib_endianfree.h" + +#define BIT0 0x00000001 +#define BIT1 0x00000002 +#define BIT2 0x00000004 +#define BIT3 0x00000008 +#define BIT4 0x00000010 +#define BIT5 0x00000020 +#define BIT6 0x00000040 +#define BIT7 0x00000080 +#define BIT8 0x00000100 +#define BIT9 0x00000200 +#define BIT10 0x00000400 +#define BIT11 0x00000800 +#define BIT12 0x00001000 +#define BIT13 0x00002000 +#define BIT14 0x00004000 +#define BIT15 0x00008000 +#define BIT16 0x00010000 +#define BIT17 0x00020000 +#define BIT18 0x00040000 +#define BIT19 0x00080000 +#define BIT20 0x00100000 +#define BIT21 0x00200000 +#define BIT22 0x00400000 +#define BIT23 0x00800000 +#define BIT24 0x01000000 +#define BIT25 0x02000000 +#define BIT26 0x04000000 +#define BIT27 0x08000000 +#define BIT28 0x10000000 +#define BIT29 0x20000000 +#define BIT30 0x40000000 +#define BIT31 0x80000000 + +#ifndef RTK_DMP_PLATFORM +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +#ifndef bool +typedef enum{false = 0, true} bool; +#endif +#endif +#endif + +typedef union _QOS_TSINFO{ + u8 charData[3]; + struct { + u8 ucTrafficType:1; + u8 ucTSID:4; + u8 ucDirection:2; + u8 ucAccessPolicy:2; + u8 ucAggregation:1; + u8 ucPSB:1; + u8 ucUP:3; + u8 ucTSInfoAckPolicy:2; + u8 ucSchedule:1; + u8 ucReserved:7; + }field; +}QOS_TSINFO, *PQOS_TSINFO; +typedef union _TSPEC_BODY{ + u8 charData[55]; + + struct + { + QOS_TSINFO TSInfo; + u16 NominalMSDUsize; + u16 MaxMSDUsize; + u32 MinServiceItv; + u32 MaxServiceItv; + u32 InactivityItv; + u32 SuspenItv; + u32 ServiceStartTime; + u32 MinDataRate; + u32 MeanDataRate; + u32 PeakDataRate; + u32 MaxBurstSize; + u32 DelayBound; + u32 MinPhyRate; + u16 SurplusBandwidthAllowance; + u16 MediumTime; + } f; +}TSPEC_BODY, *PTSPEC_BODY; + +typedef struct _WMM_TSPEC{ + u8 ID; + u8 Length; + u8 OUI[3]; + u8 OUI_Type; + u8 OUI_SubType; + u8 Version; + TSPEC_BODY Body; +} WMM_TSPEC, *PWMM_TSPEC; + +typedef struct _OCTET_STRING{ + u8 *Octet; + u16 Length; +}OCTET_STRING, *POCTET_STRING; +#define MAX_WMMELE_LENGTH 64 + +typedef u32 QOS_MODE, *PQOS_MODE; +#define QOS_DISABLE 0 +#define QOS_WMM 1 +#define QOS_WMMSA 2 +#define QOS_EDCA 4 +#define QOS_HCCA 8 +#define QOS_WMM_UAPSD 16 + +#define WMM_PARAM_ELE_BODY_LEN 18 + +#define MAX_STA_TS_COUNT 16 +#define MAX_AP_TS_COUNT 32 +#define QOS_TSTREAM_KEY_SIZE 13 + +#define WMM_ACTION_CATEGORY_CODE 17 +#define WMM_PARAM_ELE_BODY_LEN 18 + +#define MAX_TSPEC_TSID 15 +#define SESSION_REJECT_TSID 0xfe +#define DEFAULT_TSID 0xff + +#define ADDTS_TIME_SLOT 100 + +#define ACM_TIMEOUT 1000 +#define SESSION_REJECT_TIMEOUT 60000 + +typedef enum _ACK_POLICY{ + eAckPlc0_ACK = 0x00, + eAckPlc1_NoACK = 0x01, +}ACK_POLICY,*PACK_POLICY; + + +#if 0 +#define FRAME_OFFSET_QOS_CTRL(_pStart) (24 + 6*GET_80211_HDR_FROM_DS(_pStart)*GET_80211_HDR_TO_DS(_pStart)) + +#define GET_QOS_CTRL(_pStart) ReadEF2Byte((pu1Byte)(_pStart) + FRAME_OFFSET_QOS_CTRL(_pStart)) +#define SET_QOS_CTRL(_pStart, _value) WriteEF2Byte((pu1Byte)(_pStart) + FRAME_OFFSET_QOS_CTRL(_pStart), _value) + +#define GET_QOS_CTRL_WMM_UP(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 0, 3)) +#define SET_QOS_CTRL_WMM_UP(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 0, 3, (u1Byte)(_value)) + +#define GET_QOS_CTRL_WMM_EOSP(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 4, 1)) +#define SET_QOS_CTRL_WMM_EOSP(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 4, 1, (u1Byte)(_value)) + +#define GET_QOS_CTRL_WMM_ACK_POLICY(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 5, 2)) +#define SET_QOS_CTRL_WMM_ACK_POLICY(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 5, 2, (u1Byte)(_value)) + +#define GET_QOS_CTRL_STA_DATA_TID(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 0, 4)) +#define SET_QOS_CTRL_STA_DATA_TID(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 0, 4, (u1Byte)(_value)) + +#define GET_QOS_CTRL_STA_DATA_QSIZE_FLAG(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 4, 1)) +#define SET_QOS_CTRL_STA_DATA_QSIZE_FLAG(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 4, 1, (u1Byte)(_value)) + +#define GET_QOS_CTRL_STA_DATA_ACK_POLICY(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 5, 2)) +#define SET_QOS_CTRL_STA_DATA_ACK_POLICY(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 5, 2, (u1Byte)(_value)) + +#define GET_QOS_CTRL_STA_DATA_USRSVD(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 7, 1)) +#define SET_QOS_CTRL_STA_DATA_USRSVD(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 7, 1, (u1Byte)(_value)) + +#define GET_QOS_CTRL_STA_DATA_TXOP(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 8, 8)) +#define SET_QOS_CTRL_STA_DATA_TXOP(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 8, 8, (u1Byte)(_value)) + +#define GET_QOS_CTRL_STA_DATA_QSIZE(_pStart) GET_QOS_CTRL_STA_DATA_TXOP(_pStart) +#define SET_QOS_CTRL_STA_DATA_QSIZE(_pStart, _value) SET_QOS_CTRL_STA_DATA_TXOP(_pStart) + +#define GET_QOS_CTRL_HC_DATA_TID(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 0, 4)) +#define SET_QOS_CTRL_HC_DATA_TID(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 0, 4, (u1Byte)(_value)) + +#define GET_QOS_CTRL_HC_DATA_EOSP(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 4, 1)) +#define SET_QOS_CTRL_HC_DATA_EOSP(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 4, 1, (u1Byte)(_value)) + +#define GET_QOS_CTRL_HC_DATA_ACK_POLICY(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 5, 2)) +#define SET_QOS_CTRL_HC_DATA_ACK_POLICY(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 5, 2, (u1Byte)(_value)) + +#define GET_QOS_CTRL_HC_DATA_PS_BUFSTATE(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 8, 8)) +#define SET_QOS_CTRL_HC_DATA_PS_BUFSTATE(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 8, 8, (u1Byte)(_value)) + +#define GET_QOS_CTRL_HC_CFP_TID(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 0, 4)) +#define SET_QOS_CTRL_HC_CFP_TID(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 0, 4, (u1Byte)(_value)) + +#define GET_QOS_CTRL_HC_CFP_EOSP(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 4, 1)) +#define SET_QOS_CTRL_HC_CFP_EOSP(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 4, 1, (u1Byte)(_value)) + +#define GET_QOS_CTRL_HC_CFP_ACK_POLICY(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 5, 2)) +#define SET_QOS_CTRL_HC_CFP_ACK_POLICY(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 5, 2, (u1Byte)(_value)) + +#define GET_QOS_CTRL_HC_CFP_USRSVD(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 7, 1)) +#define SET_QOS_CTRL_HC_CFP_USRSVD(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 7, 1, (u1Byte)(_value)) + +#define GET_QOS_CTRL_HC_CFP_TXOP_LIMIT(_pStart) ((u1Byte)LE_BITS_TO_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 8, 8)) +#define SET_QOS_CTRL_HC_CFP_TXOP_LIMIT(_pStart, _value) SET_BITS_TO_LE_2BYTE((pu1Byte)(_pStart)+FRAME_OFFSET_QOS_CTRL(_pStart), 8, 8, (u1Byte)(_value)) +#endif + + + +#define SET_WMM_QOS_INFO_FIELD(_pStart, _val) WriteEF1Byte(_pStart, _val) + +#define GET_WMM_QOS_INFO_FIELD_PARAMETERSET_COUNT(_pStart) LE_BITS_TO_1BYTE(_pStart, 0, 4) +#define SET_WMM_QOS_INFO_FIELD_PARAMETERSET_COUNT(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 0, 4, _val) + +#define GET_WMM_QOS_INFO_FIELD_AP_UAPSD(_pStart) LE_BITS_TO_1BYTE(_pStart, 7, 1) +#define SET_WMM_QOS_INFO_FIELD_AP_UAPSD(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 7, 1, _val) + +#define GET_WMM_QOS_INFO_FIELD_STA_AC_VO_UAPSD(_pStart) LE_BITS_TO_1BYTE(_pStart, 0, 1) +#define SET_WMM_QOS_INFO_FIELD_STA_AC_VO_UAPSD(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 0, 1, _val) + +#define GET_WMM_QOS_INFO_FIELD_STA_AC_VI_UAPSD(_pStart) LE_BITS_TO_1BYTE(_pStart, 1, 1) +#define SET_WMM_QOS_INFO_FIELD_STA_AC_VI_UAPSD(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 1, 1, _val) + +#define GET_WMM_QOS_INFO_FIELD_STA_AC_BE_UAPSD(_pStart) LE_BITS_TO_1BYTE(_pStart, 2, 1) +#define SET_WMM_QOS_INFO_FIELD_STA_AC_BE_UAPSD(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 2, 1, _val) + +#define GET_WMM_QOS_INFO_FIELD_STA_AC_BK_UAPSD(_pStart) LE_BITS_TO_1BYTE(_pStart, 3, 1) +#define SET_WMM_QOS_INFO_FIELD_STA_AC_BK_UAPSD(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 3, 1, _val) + +#define GET_WMM_QOS_INFO_FIELD_STA_MAX_SP_LEN(_pStart) LE_BITS_TO_1BYTE(_pStart, 5, 2) +#define SET_WMM_QOS_INFO_FIELD_STA_MAX_SP_LEN(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 5, 2, _val) + +#if 0 +#define WMM_INFO_ELEMENT_SIZE 7 + +#define GET_WMM_INFO_ELE_OUI(_pStart) ((u8*)(_pStart)) +#define SET_WMM_INFO_ELE_OUI(_pStart, _pVal) memcpy(_pStart, _pVal, 3); + +#define GET_WMM_INFO_ELE_OUI_TYPE(_pStart) ( EF1Byte( *((u8*)(_pStart)+3) ) ) +#define SET_WMM_INFO_ELE_OUI_TYPE(_pStart, _val) ( *((u8*)(_pStart)+3) = EF1Byte(_val) ) + +#define GET_WMM_INFO_ELE_OUI_SUBTYPE(_pStart) ( EF1Byte( *((u8*)(_pStart)+4) ) ) +#define SET_WMM_INFO_ELE_OUI_SUBTYPE(_pStart, _val) ( *((u8*)(_pStart)+4) = EF1Byte(_val) ) + +#define GET_WMM_INFO_ELE_VERSION(_pStart) ( EF1Byte( *((u8*)(_pStart)+5) ) ) +#define SET_WMM_INFO_ELE_VERSION(_pStart, _val) ( *((u8*)(_pStart)+5) = EF1Byte(_val) ) + +#define GET_WMM_INFO_ELE_QOS_INFO_FIELD(_pStart) ( EF1Byte( *((u8*)(_pStart)+6) ) ) +#define SET_WMM_INFO_ELE_QOS_INFO_FIELD(_pStart, _val) ( *((u8*)(_pStart)+6) = EF1Byte(_val) ) + + +#define CLEAR_TSPEC(_tspec) ( PlatformZeroMemory((_tspec), TSPEC_SIZE) ) + +#define GET_TSPEC_ID(_tspec) EF1Byte( (_tspec)[0] ) +#define SET_TSPEC_ID(_tspec, _value) ( (_tspec)[0] = EF1Byte(_value) ) + +#define GET_TSPEC_LENGTH(_tspec) EF1Byte( (_tspec)[1] ) +#define SET_TSPEC_LENGTH(_tspec, _value) ( (_tspec)[1] = EF1Byte(_value) ) + +#define GET_TSPEC_OUI(_tspec, _value) \ + { (_value)[0]=(_tspec)[2]; (_value)[1]=(_tspec)[3]; (_value)[2]=(_tspec)[4]; } +#define SET_TSPEC_OUI(_tspec, _value) \ + { (_tspec)[2]=(_value)[0]; (_tspec)[3]=(_value)[1]; (_tspec)[4]=(_value)[2]; } + +#define GET_TSPEC_OUI_TYPE(_tspec) EF1Byte( (_tspec)[5] ) +#define SET_TSPEC_OUI_TYPE(_tspec, _value) ( (_tspec)[5] = EF1Byte(_value) ) + +#define GET_TSPEC_OUI_SUBTYPE(_tspec) EF1Byte( (_tspec)[6] ) +#define SET_TSPEC_OUI_SUBTYPE(_tspec, _value) ( (_tspec)[6] = EF1Byte(_value) ) + +#define GET_TSPEC_VERSION(_tspec) EF1Byte( (_tspec)[7] ) +#define SET_TSPEC_VERSION(_tspec, _value) ( (_tspec)[7] = EF1Byte(_value) ) + + +#define GET_TSPEC_TSINFO_TRAFFIC_TYPE(_tspec) LE_BITS_TO_1BYTE( (_tspec)+8, 0, 1) +#define SET_TSPEC_TSINFO_TRAFFIC_TYPE(_tspec, _value) SET_BITS_TO_LE_1BYTE( (_tspec)+8, 0, 1, (_value) ) + +#define GET_TSPEC_TSINFO_TSID(_tspec) LE_BITS_TO_1BYTE( (_tspec)+8, 1, 4) +#define SET_TSPEC_TSINFO_TSID(_tspec, _value) SET_BITS_TO_LE_1BYTE( (_tspec)+8, 1, 4, (_value) ) + +#define GET_TSPEC_TSINFO_DIRECTION(_tspec) LE_BITS_TO_1BYTE( (_tspec)+8, 5, 2) +#define SET_TSPEC_TSINFO_DIRECTION(_tspec, _value) SET_BITS_TO_LE_1BYTE( (_tspec)+8, 5, 2, (_value) ) + +#define GET_TSPEC_TSINFO_ACCESS_POLICY_BIT0(_tspec) LE_BITS_TO_1BYTE( (_tspec)+8, 7, 1) +#define SET_TSPEC_TSINFO_ACCESS_POLICY_BIT0(_tspec, _value) SET_BITS_TO_LE_1BYTE( (_tspec)+8, 7, 1, (_value) ) + + +#define GET_TSPEC_TSINFO_ACCESS_POLICY_BIT1(_tspec) LE_BITS_TO_1BYTE( (_tspec)+9, 0, 1) +#define SET_TSPEC_TSINFO_ACCESS_POLICY_BIT1(_tspec, _value) SET_BITS_TO_LE_1BYTE( (_tspec)+9, 0, 1, (_value) ) + +#define GET_TSPEC_TSINFO_AGGREGATION(_tspec) LE_BITS_TO_1BYTE( (_tspec)+9, 1, 1) +#define SET_TSPEC_TSINFO_AGGREGATION(_tspec, _value) SET_BITS_TO_LE_1BYTE( (_tspec)+9, 1, 1, (_value) ) + +#define GET_TSPEC_TSINFO_PSB(_tspec) LE_BITS_TO_1BYTE( (_tspec)+9, 2, 1) +#define SET_TSPEC_TSINFO_PSB(_tspec, _value) SET_BITS_TO_LE_1BYTE( (_tspec)+9, 2, 1, (_value) ) + +#define GET_TSPEC_TSINFO_UP(_tspec) LE_BITS_TO_1BYTE( (_tspec)+9, 3, 3) +#define SET_TSPEC_TSINFO_UP(_tspec, _value) SET_BITS_TO_LE_1BYTE( (_tspec)+9, 3, 3, (_value) ) + +#define GET_TSPEC_TSINFO_ACK_POLICY(_tspec) LE_BITS_TO_1BYTE( (_tspec)+9, 6, 2) +#define SET_TSPEC_TSINFO_ACK_POLICY(_tspec, _value) SET_BITS_TO_LE_1BYTE( (_tspec)+9, 6, 2, (_value) ) + + +#define GET_TSPEC_TSINFO_SCHEDULE(_tspec) LE_BITS_TO_1BYTE( (_tspec)+10, 0, 1) +#define SET_TSPEC_TSINFO_SCHEDULE(_tspec, _value) SET_BITS_TO_LE_1BYTE( (_tspec)+10, 0, 1, (_value) ) + + +#define GET_TSPEC_NOMINAL_MSDU_SIZE(_tspec) LE_BITS_TO_2BYTE( (_tspec)+11, 0, 16) +#define SET_TSPEC_NOMINAL_MSDU_SIZE(_tspec, _value) SET_BITS_TO_LE_2BYTE( (_tspec)+11, 0, 16, (_value) ) + +#define GET_TSPEC_MAX_MSDU_SIZE(_tspec) LE_BITS_TO_2BYTE( (_tspec)+13, 0, 16) +#define SET_TSPEC_MAX_MSDU_SIZE(_tspec, _value) SET_BITS_TO_LE_2BYTE( (_tspec)+13, 0, 16, (_value) ) + +#define GET_TSPEC_MIN_SERVICE_INTERVAL(_tspec) LE_BITS_TO_4BYTE( (_tspec)+15, 0, 32) +#define SET_TSPEC_MIN_SERVICE_INTERVAL(_tspec, _value) SET_BITS_TO_LE_4BYTE( (_tspec)+15, 0, 32, (_value) ) + +#define GET_TSPEC_MAX_SERVICE_INTERVAL(_tspec) LE_BITS_TO_4BYTE( (_tspec)+19, 0, 32) +#define SET_TSPEC_MAX_SERVICE_INTERVAL(_tspec, _value) SET_BITS_TO_LE_4BYTE( (_tspec)+19, 0, 32, (_value) ) + +#define GET_TSPEC_INACTIVITY_INTERVAL(_tspec) LE_BITS_TO_4BYTE( (_tspec)+23, 0, 32) +#define SET_TSPEC_INACTIVITY_INTERVAL(_tspec, _value) SET_BITS_TO_LE_4BYTE( (_tspec)+23, 0, 32, (_value) ) + +#define GET_TSPEC_SUSPENSION_INTERVAL(_tspec) LE_BITS_TO_4BYTE( (_tspec)+27, 0, 32) +#define SET_TSPEC_SUSPENSION_INTERVAL(_tspec, _value) SET_BITS_TO_LE_4BYTE( (_tspec)+27, 0, 32, (_value) ) + +#define GET_TSPEC_SERVICE_START_TIME(_tspec) LE_BITS_TO_4BYTE( (_tspec)+31, 0, 32) +#define SET_TSPEC_SERVICE_START_TIME(_tspec, _value) SET_BITS_TO_LE_4BYTE( (_tspec)+31, 0, 32, (_value) ) + +#define GET_TSPEC_MIN_DATA_RATE(_tspec) LE_BITS_TO_4BYTE( (_tspec)+35, 0, 32) +#define SET_TSPEC_MIN_DATA_RATE(_tspec, _value) SET_BITS_TO_LE_4BYTE( (_tspec)+35, 0, 32, (_value) ) + +#define GET_TSPEC_MEAN_DATA_RATE(_tspec) LE_BITS_TO_4BYTE( (_tspec)+39, 0, 32) +#define SET_TSPEC_MEAN_DATA_RATE(_tspec, _value) SET_BITS_TO_LE_4BYTE( (_tspec)+39, 0, 32, (_value) ) + +#define GET_TSPEC_PEAK_DATA_RATE(_tspec) LE_BITS_TO_4BYTE( (_tspec)+43, 0, 32) +#define SET_TSPEC_PEAK_DATA_RATE(_tspec, _value) SET_BITS_TO_LE_4BYTE( (_tspec)+43, 0, 32, (_value) ) + +#define GET_TSPEC_MAX_BURST_SIZE(_tspec) LE_BITS_TO_4BYTE( (_tspec)+47, 0, 32) +#define SET_TSPEC_MAX_BURST_SIZE(_tspec, _value) SET_BITS_TO_LE_4BYTE( (_tspec)+47, 0, 32, (_value) ) + +#define GET_TSPEC_DELAY_BOUND(_tspec) LE_BITS_TO_4BYTE( (_tspec)+51, 0, 32) +#define SET_TSPEC_DELAY_BOUND(_tspec, _value) SET_BITS_TO_LE_4BYTE( (_tspec)+51, 0, 32, (_value) ) + +#define GET_TSPEC_MIN_PHY_RATE(_tspec) LE_BITS_TO_4BYTE( (_tspec)+55, 0, 32) +#define SET_TSPEC_MIN_PHY_RATE(_tspec, _value) SET_BITS_TO_LE_4BYTE( (_tspec)+55, 0, 32, (_value) ) + +#define GET_TSPEC_SURPLUS_BANDWITH_ALLOWANCE(_tspec) LE_BITS_TO_2BYTE( (_tspec)+59, 0, 16) +#define SET_TSPEC_SURPLUS_BANDWITH_ALLOWANCE(_tspec, _value) SET_BITS_TO_LE_2BYTE( (_tspec)+59, 0, 16, (_value) ) + +#define GET_TSPEC_MEDIUM_TIME(_tspec) LE_BITS_TO_2BYTE( (_tspec)+61, 0, 16) +#define SET_TSPEC_MEDIUM_TIME(_tspec, _value) SET_BITS_TO_LE_2BYTE( (_tspec)+61, 0, 16, (_value) ) + +#define GET_TSPEC_TSINFO_ACCESS_POLICY(_tspec) \ + ( (GET_TSPEC_TSINFO_ACCESS_POLICY_BIT1(_tspec) << 1) | GET_TSPEC_TSINFO_ACCESS_POLICY_BIT0(_tspec) ) +#define SET_TSPEC_TSINFO_ACCESS_POLICY(_tspec, _value) \ + {\ + SET_TSPEC_TSINFO_ACCESS_POLICY_BIT0((_tspec), (_value)&0x01);\ + SET_TSPEC_TSINFO_ACCESS_POLICY_BIT1((_tspec), (_value)&0x02);\ + } + + +#define GET_TSINFO_TRAFFIC_TYPE(_tsinfo) LE_BITS_TO_1BYTE( (_tsinfo), 0, 1) +#define SET_TSINFO_TRAFFIC_TYPE(_tsinfo, _value) SET_BITS_TO_LE_1BYTE( (_tsinfo), 0, 1, (_value) ) + +#define GET_TSINFO_TSID(_tsinfo) LE_BITS_TO_1BYTE( (_tsinfo), 1, 4) +#define SET_TSINFO_TSID(_tsinfo, _value) SET_BITS_TO_LE_1BYTE( (_tsinfo), 1, 4, (_value) ) + +#define GET_TSINFO_DIRECTION(_tsinfo) LE_BITS_TO_1BYTE( (_tsinfo), 5, 2) +#define SET_TSINFO_DIRECTION(_tsinfo, _value) SET_BITS_TO_LE_1BYTE( (_tsinfo), 5, 2, (_value) ) + +#define GET_TSINFO_ACCESS_POLICY_BIT0(_tsinfo) LE_BITS_TO_1BYTE( (_tsinfo), 7, 1) +#define SET_TSINFO_ACCESS_POLICY_BIT0(_tsinfo, _value) SET_BITS_TO_LE_1BYTE( (_tsinfo), 7, 1, (_value) ) + + +#define GET_TSINFO_ACCESS_POLICY_BIT1(_tsinfo) LE_BITS_TO_1BYTE( (_tsinfo) + 1, 0, 1) +#define SET_TSINFO_ACCESS_POLICY_BIT1(_tsinfo, _value) SET_BITS_TO_LE_1BYTE( (_tsinfo) + 1, 0, 1, (_value) ) + +#define GET_TSINFO_AGGREGATION(_tsinfo) LE_BITS_TO_1BYTE( (_tsinfo) + 1, 1, 1) +#define SET_TSINFO_AGGREGATION(_tsinfo, _value) SET_BITS_TO_LE_1BYTE( (_tsinfo) + 1, 1, 1, (_value) ) + +#define GET_TSINFO_PSB(_tsinfo) LE_BITS_TO_1BYTE( (_tsinfo) + 1, 2, 1) +#define SET_TSINFO_PSB(_tsinfo, _value) SET_BITS_TO_LE_1BYTE( (_tsinfo) + 1, 2, 1, (_value) ) + +#define GET_TSINFO_UP(_tsinfo) LE_BITS_TO_1BYTE( (_tsinfo) + 1, 3, 3) +#define SET_TSINFO_UP(_tsinfo, _value) SET_BITS_TO_LE_1BYTE( (_tsinfo) + 1, 3, 3, (_value) ) + +#define GET_TSINFO_ACK_POLICY(_tsinfo) LE_BITS_TO_1BYTE( (_tsinfo) + 1, 6, 2) +#define SET_TSINFO_ACK_POLICY(_tsinfo, _value) SET_BITS_TO_LE_1BYTE( (_tsinfo) + 1, 6, 2, (_value) ) + +#define GET_TSINFO_SCHEDULE(_tsinfo) LE_BITS_TO_1BYTE( (_tsinfo) + 2, 0, 1) +#define SET_TSINFO_SCHEDULE(_tsinfo, _value) SET_BITS_TO_LE_1BYTE( (_tsinfo) + 2, 0, 1, (_value) ) + + +#define QOS_RATE_TO_BPS(_rate) ( (u4Byte)( ((_rate)*1000*1000)/2 ) ) +#define QOS_BPS_TO_RATE(_bps) ( (u1Byte)( ((_bps)/(1000*1000))*2 ) ) +#endif + +typedef enum { + QOSIE_SRC_ADDTSREQ, + QOSIE_SRC_ADDTSRSP, + QOSIE_SRC_REASOCREQ, + QOSIE_SRC_REASOCRSP, + QOSIE_SRC_DELTS, +} QOSIE_SOURCE; + + +typedef u32 AC_CODING; +#define AC0_BE 0 +#define AC1_BK 1 +#define AC2_VI 2 +#define AC3_VO 3 +#define AC_MAX 4 + + +#define AC_PARAM_SIZE 4 + +#define GET_WMM_AC_PARAM_AIFSN(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 0, 4) ) +#define SET_WMM_AC_PARAM_AIFSN(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 0, 4, _val) + +#define GET_WMM_AC_PARAM_ACM(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 4, 1) ) +#define SET_WMM_AC_PARAM_ACM(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 4, 1, _val) + +#define GET_WMM_AC_PARAM_ACI(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 5, 2) ) +#define SET_WMM_AC_PARAM_ACI(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 5, 2, _val) + +#define GET_WMM_AC_PARAM_ACI_AIFSN(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 0, 8) ) +#define SET_WMM_AC_PARAM_ACI_AIFSN(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 0, 8, _val) + +#define GET_WMM_AC_PARAM_ECWMIN(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 8, 4) ) +#define SET_WMM_AC_PARAM_ECWMIN(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 8, 4, _val) + +#define GET_WMM_AC_PARAM_ECWMAX(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 12, 4) ) +#define SET_WMM_AC_PARAM_ECWMAX(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 12, 4, _val) + +#define GET_WMM_AC_PARAM_TXOP_LIMIT(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 16, 16) ) +#define SET_WMM_AC_PARAM_TXOP_LIMIT(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 16, 16, _val) + + + +#define WMM_PARAM_ELEMENT_SIZE (8+(4*AC_PARAM_SIZE)) + +#if 0 +#define GET_WMM_PARAM_ELE_OUI(_pStart) ((pu1Byte)(_pStart)) +#define SET_WMM_PARAM_ELE_OUI(_pStart, _pVal) PlatformMoveMemory(_pStart, _pVal, 3) + +#define GET_WMM_PARAM_ELE_OUI_TYPE(_pStart) ( EF1Byte( *((pu1Byte)(_pStart)+3) ) ) +#define SET_WMM_PARAM_ELE_OUI_TYPE(_pStart, _val) ( *((pu1Byte)(_pStart)+3) = EF1Byte(_val) ) + +#define GET_WMM_PARAM_ELE_OUI_SUBTYPE(_pStart) ( EF1Byte( *((pu1Byte)(_pStart)+4) ) ) +#define SET_WMM_PARAM_ELE_OUI_SUBTYPE(_pStart, _val) ( *((pu1Byte)(_pStart)+4) = EF1Byte(_val) ) + +#define GET_WMM_PARAM_ELE_VERSION(_pStart) ( EF1Byte( *((pu1Byte)(_pStart)+5) ) ) +#define SET_WMM_PARAM_ELE_VERSION(_pStart, _val) ( *((pu1Byte)(_pStart)+5) = EF1Byte(_val) ) + +#define GET_WMM_PARAM_ELE_QOS_INFO_FIELD(_pStart) ( EF1Byte( *((pu1Byte)(_pStart)+6) ) ) +#define SET_WMM_PARAM_ELE_QOS_INFO_FIELD(_pStart, _val) ( *((pu1Byte)(_pStart)+6) = EF1Byte(_val) ) + +#define GET_WMM_PARAM_ELE_AC_PARAMS(_pStart) ( (pu1Byte)(_pStart)+8 ) +#define SET_WMM_PARAM_ELE_AC_PARAMS(_pStart, _pVal) PlatformMoveMemory((_pStart)+8, _pVal, 16) + +#define GET_WMM_PARAM_ELE_SINGLE_AC_PARAM(_pStart, acIdx) ( ((pu1Byte)(_pStart))+8+ acIdx*4 ) +#define SET_WMM_PARAM_ELE_SINGLE_AC_PARAM(_pStart, acIdx, _pVal) PlatformMoveMemory( ((pu1Byte)(_pStart))+8+ acIdx*4, _pVal, 4) + +#define GET_WMM_PARAM_ELE_AC_PARAM(_pStart) ( (pu1Byte)(_pStart)+8 ) +#define SET_WMM_PARAM_ELE_AC_PARAM(_pStart, _pVal) PlatformMoveMemory((_pStart)+8, _pVal, 16) +#endif + +typedef enum _QOS_ELE_SUBTYPE{ + QOSELE_TYPE_INFO = 0x00, + QOSELE_TYPE_PARAM = 0x01, +}QOS_ELE_SUBTYPE,*PQOS_ELE_SUBTYPE; + + +typedef enum _DIRECTION_VALUE{ + DIR_UP = 0, + DIR_DOWN = 1, + DIR_DIRECT = 2, + DIR_BI_DIR = 3, +}DIRECTION_VALUE,*PDIRECTION_VALUE; + +#if 0 + +#define GET_TSPEC_BODY_TSINFO_TRAFFIC_TYPE(_TSpecBody) LE_BITS_TO_1BYTE( (_TSpecBody), 0, 1) +#define SET_TSPEC_BODY_TSINFO_TRAFFIC_TYPE(_TSpecBody, _value) SET_BITS_TO_LE_1BYTE( (_TSpecBody), 0, 1 , (_value)) + +#define GET_TSPEC_BODY_TSINFO_TSID(_TSpecBody) LE_BITS_TO_1BYTE( (_TSpecBody), 1, 4) +#define SET_TSPEC_BODY_TSINFO_TSID(_TSpecBody, _value) SET_BITS_TO_LE_1BYTE( (_TSpecBody), 1, 4 , (_value)) + +#define GET_TSPEC_BODY_TSINFO_DIRECTION(_TSpecBody) LE_BITS_TO_1BYTE( (_TSpecBody), 5, 2) +#define SET_TSPEC_BODY_TSINFO_DIRECTION(_TSpecBody, _value) SET_BITS_TO_LE_1BYTE( (_TSpecBody), 5, 2 , (_value)) + +#define GET_TSPEC_BODY_TSINFO_ACCESS_POLICY_BIT0(_TSpecBody) LE_BITS_TO_1BYTE( (_TSpecBody), 7, 1) +#define SET_TSPEC_BODY_TSINFO_ACCESS_POLICY_BIT0(_TSpecBody, _value) SET_BITS_TO_LE_1BYTE( (_TSpecBody), 7, 1 , (_value)) + +#define GET_TSPEC_BODY_TSINFO_ACCESS_POLICY_BIT1(_TSpecBody) LE_BITS_TO_1BYTE( (_TSpecBody)+1, 0, 1) +#define SET_TSPEC_BODY_TSINFO_ACCESS_POLICY_BIT1(_TSpecBody, _value) SET_BITS_TO_LE_1BYTE( (_TSpecBody)+1, 0, 1 , (_value)) + +#define GET_TSPEC_BODY_TSINFO_ACCESS_POLICY(_TSpecBody) \ + ((GET_TSPEC_BODY_TSINFO_ACCESS_POLICY_BIT1(_TSpecBody) << 1 ) | (GET_TSPEC_BODY_TSINFO_ACCESS_POLICY_BIT0(_TSpecBody) )) +#define SET_TSPEC_BODY_TSINFO_ACCESS_POLICY(_TSpecBody, _value) \ + {\ + SET_TSPEC_BODY_TSINFO_ACCESS_POLICY_BIT0((_TSpecBody), (_value) & 0x01); \ + SET_TSPEC_BODY_TSINFO_ACCESS_POLICY_BIT1((_TSpecBody), (_value) & 0x02); \ + } + +#define GET_TSPEC_BODY_TSINFO_AGGREGATION(_TSpecBody) LE_BITS_TO_1BYTE( (_TSpecBody)+1, 1, 1) +#define SET_TSPEC_BODY_TSINFO_AGGREGATION(_TSpecBody, _value) SET_BITS_TO_LE_1BYTE( (_TSpecBody)+1, 1, 1 , (_value)) + +#define GET_TSPEC_BODY_TSINFO_PSB(_TSpecBody) LE_BITS_TO_1BYTE( (_TSpecBody)+1, 2, 1) +#define SET_TSPEC_BODY_TSINFO_PSB(_TSpecBody, _value) SET_BITS_TO_LE_1BYTE( (_TSpecBody)+1, 2, 1 , (_value)) + +#define GET_TSPEC_BODY_TSINFO_UP(_TSpecBody) LE_BITS_TO_1BYTE( (_TSpecBody)+1, 3, 3) +#define SET_TSPEC_BODY_TSINFO_UP(_TSpecBody, _value) SET_BITS_TO_LE_1BYTE( (_TSpecBody)+1, 3, 3 , (_value)) + +#define GET_TSPEC_BODY_TSINFO_ACK_POLICY(_TSpecBody) LE_BITS_TO_1BYTE( (_TSpecBody)+1, 6, 2) +#define SET_TSPEC_BODY_TSINFO_ACK_POLICY(_TSpecBody, _value) SET_BITS_TO_LE_1BYTE( (_TSpecBody)+1, 6, 2 , (_value)) + +#define GET_TSPEC_BODY_TSINFO_SCHEDULE(_TSpecBody) LE_BITS_TO_1BYTE( (_TSpecBody)+2, 0, 1) +#define SET_TSPEC_BODY_TSINFO_SCHEDULE(_TSpecBody, _value) SET_BITS_TO_LE_1BYTE( (_TSpecBody)+2, 0, 1 , (_value)) + + + +#define TSPEC_SIZE (2+6+55) +typedef u8 WMM_TSPEC[TSPEC_SIZE], *PWMM_TSPEC; +#endif + +typedef enum _ACM_METHOD{ + eAcmWay0_SwAndHw = 0, + eAcmWay1_HW = 1, + eAcmWay2_SW = 2, +}ACM_METHOD,*PACM_METHOD; + + +typedef struct _ACM{ + u64 UsedTime; + u64 MediumTime; + u8 HwAcmCtl; +}ACM, *PACM; + + + +typedef u8 AC_UAPSD, *PAC_UAPSD; + +#define GET_VO_UAPSD(_apsd) ((_apsd) & BIT0) +#define SET_VO_UAPSD(_apsd) ((_apsd) |= BIT0) + +#define GET_VI_UAPSD(_apsd) ((_apsd) & BIT1) +#define SET_VI_UAPSD(_apsd) ((_apsd) |= BIT1) + +#define GET_BK_UAPSD(_apsd) ((_apsd) & BIT2) +#define SET_BK_UAPSD(_apsd) ((_apsd) |= BIT2) + +#define GET_BE_UAPSD(_apsd) ((_apsd) & BIT3) +#define SET_BE_UAPSD(_apsd) ((_apsd) |= BIT3) + +typedef union _QOS_TCLAS{ + + struct _TYPE_GENERAL{ + u8 Priority; + u8 ClassifierType; + u8 Mask; + } TYPE_GENERAL; + + struct _TYPE0_ETH{ + u8 Priority; + u8 ClassifierType; + u8 Mask; + u8 SrcAddr[6]; + u8 DstAddr[6]; + u16 Type; + } TYPE0_ETH; + + struct _TYPE1_IPV4{ + u8 Priority; + u8 ClassifierType; + u8 Mask; + u8 Version; + u8 SrcIP[4]; + u8 DstIP[4]; + u16 SrcPort; + u16 DstPort; + u8 DSCP; + u8 Protocol; + u8 Reserved; + } TYPE1_IPV4; + + struct _TYPE1_IPV6{ + u8 Priority; + u8 ClassifierType; + u8 Mask; + u8 Version; + u8 SrcIP[16]; + u8 DstIP[16]; + u16 SrcPort; + u16 DstPort; + u8 FlowLabel[3]; + } TYPE1_IPV6; + + struct _TYPE2_8021Q{ + u8 Priority; + u8 ClassifierType; + u8 Mask; + u16 TagType; + } TYPE2_8021Q; +} QOS_TCLAS, *PQOS_TCLAS; + +typedef struct _QOS_TSTREAM{ + + bool bUsed; + u16 MsduLifetime; + bool bEstablishing; + u8 TimeSlotCount; + u8 DialogToken; + WMM_TSPEC TSpec; + WMM_TSPEC OutStandingTSpec; + u8 NominalPhyRate; +} QOS_TSTREAM, *PQOS_TSTREAM; + +typedef struct _STA_QOS{ + u8 WMMIEBuf[MAX_WMMELE_LENGTH]; + u8* WMMIE; + + QOS_MODE QosCapability; + QOS_MODE CurrentQosMode; + + AC_UAPSD b4ac_Uapsd; + AC_UAPSD Curr4acUapsd; + u8 bInServicePeriod; + u8 MaxSPLength; + int NumBcnBeforeTrigger; + + u8 * pWMMInfoEle; + u8 WMMParamEle[WMM_PARAM_ELEMENT_SIZE]; + + ACM acm[4]; + ACM_METHOD AcmMethod; + + QOS_TSTREAM StaTsArray[MAX_STA_TS_COUNT]; + u8 DialogToken; + WMM_TSPEC TSpec; + + u8 QBssWirelessMode; + + bool bNoAck; + + bool bEnableRxImmBA; + +}STA_QOS, *PSTA_QOS; + +#define QBSS_LOAD_SIZE 5 +#define GET_QBSS_LOAD_STA_COUNT(__pStart) ReadEF2Byte(__pStart) +#define SET_QBSS_LOAD_STA_COUNT(__pStart, __Value) WriteEF2Byte(__pStart, __Value) +#define GET_QBSS_LOAD_CHNL_UTILIZATION(__pStart) ReadEF1Byte((u8*)(__pStart) + 2) +#define SET_QBSS_LOAD_CHNL_UTILIZATION(__pStart, __Value) WriteEF1Byte((u8*)(__pStart) + 2, __Value) +#define GET_QBSS_LOAD_AVAILABLE_CAPACITY(__pStart) ReadEF2Byte((u8*)(__pStart) + 3) +#define SET_QBSS_LOAD_AVAILABLE_CAPACITY(__pStart, __Value) WriteEF2Byte((u8*)(__pStart) + 3, __Value) + +typedef struct _BSS_QOS{ + + QOS_MODE bdQoSMode; + u8 bdWMMIEBuf[MAX_WMMELE_LENGTH]; + OCTET_STRING bdWMMIE; + + QOS_ELE_SUBTYPE EleSubType; + + u8* pWMMInfoEle; + u8* pWMMParamEle; + + u8 QBssLoad[QBSS_LOAD_SIZE]; + bool bQBssLoadValid; +}BSS_QOS, *PBSS_QOS; + +#define sQoSCtlLng 2 +#define QOS_CTRL_LEN(_QosMode) ( (_QosMode > QOS_DISABLE)? sQoSCtlLng : 0 ) + + +#define IsACValid(ac) ( ( ac>=0 && ac<=7 )? true : false ) + + +typedef union _ACI_AIFSN{ + u8 charData; + + struct + { + u8 AIFSN:4; + u8 ACM:1; + u8 ACI:2; + u8 Reserved:1; + }f; +}ACI_AIFSN, *PACI_AIFSN; + +typedef union _ECW{ + u8 charData; + struct + { + u8 ECWmin:4; + u8 ECWmax:4; + }f; +}ECW, *PECW; + +typedef union _AC_PARAM{ + u32 longData; + u8 charData[4]; + + struct + { + ACI_AIFSN AciAifsn; + ECW Ecw; + u16 TXOPLimit; + }f; +}AC_PARAM, *PAC_PARAM; + + + + + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtl819x_BAProc.c +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtl819x_BAProc.c @@ -0,0 +1,669 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#include "rtllib.h" +#include "rtl819x_BA.h" +#ifdef RTK_DMP_PLATFORM +#include +#endif + +void ActivateBAEntry(struct rtllib_device* ieee, PBA_RECORD pBA, u16 Time) +{ + pBA->bValid = true; + if(Time != 0) + mod_timer(&pBA->Timer, jiffies + MSECS(Time)); +} + +void DeActivateBAEntry( struct rtllib_device* ieee, PBA_RECORD pBA) +{ + pBA->bValid = false; + del_timer_sync(&pBA->Timer); +} +u8 TxTsDeleteBA( struct rtllib_device* ieee, PTX_TS_RECORD pTxTs) +{ + PBA_RECORD pAdmittedBa = &pTxTs->TxAdmittedBARecord; + PBA_RECORD pPendingBa = &pTxTs->TxPendingBARecord; + u8 bSendDELBA = false; + + if(pPendingBa->bValid) + { + DeActivateBAEntry(ieee, pPendingBa); + bSendDELBA = true; + } + + if(pAdmittedBa->bValid) + { + DeActivateBAEntry(ieee, pAdmittedBa); + bSendDELBA = true; + } + + return bSendDELBA; +} + +u8 RxTsDeleteBA( struct rtllib_device* ieee, PRX_TS_RECORD pRxTs) +{ + PBA_RECORD pBa = &pRxTs->RxAdmittedBARecord; + u8 bSendDELBA = false; + + if(pBa->bValid) + { + DeActivateBAEntry(ieee, pBa); + bSendDELBA = true; + } + + return bSendDELBA; +} + +void ResetBaEntry( PBA_RECORD pBA) +{ + pBA->bValid = false; + pBA->BaParamSet.shortData = 0; + pBA->BaTimeoutValue = 0; + pBA->DialogToken = 0; + pBA->BaStartSeqCtrl.ShortData = 0; +} +static struct sk_buff* rtllib_ADDBA(struct rtllib_device* ieee, u8* Dst, PBA_RECORD pBA, u16 StatusCode, u8 type) +{ + struct sk_buff *skb = NULL; + struct rtllib_hdr_3addr* BAReq = NULL; + u8* tag = NULL; + u16 tmp = 0; + u16 len = ieee->tx_headroom + 9; + RTLLIB_DEBUG(RTLLIB_DL_TRACE | RTLLIB_DL_BA, "========>%s(), frame(%d) sentd to:"MAC_FMT", ieee->dev:%p\n", __FUNCTION__, type, MAC_ARG(Dst), ieee->dev); + if (pBA == NULL||ieee == NULL) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "pBA(%p) is NULL or ieee(%p) is NULL\n", pBA, ieee); + return NULL; + } +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr=0; + int alignment=0; + skb = dev_alloc_skb(len + sizeof( struct rtllib_hdr_3addr) + USB_512B_ALIGNMENT_SIZE); +#else + skb = dev_alloc_skb(len + sizeof( struct rtllib_hdr_3addr)); +#endif + if (skb == NULL) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't alloc skb for ADDBA_REQ\n"); + return NULL; + } + + memset(skb->data, 0, sizeof( struct rtllib_hdr_3addr)); + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + + skb_reserve(skb, ieee->tx_headroom); + + BAReq = ( struct rtllib_hdr_3addr *) skb_put(skb,sizeof( struct rtllib_hdr_3addr)); + + memcpy(BAReq->addr1, Dst, ETH_ALEN); + memcpy(BAReq->addr2, ieee->dev->dev_addr, ETH_ALEN); + +#ifdef _RTL8192_EXT_PATCH_ + if((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0) && ieee->ext_patch_rtllib_is_mesh && ieee->ext_patch_rtllib_is_mesh(ieee, Dst)){ +#ifdef COMPATIBLE_WITH_RALINK_MESH + memcpy(BAReq->addr3, Dst, ETH_ALEN); +#else + memcpy(BAReq->addr3, ieee->current_mesh_network.bssid, ETH_ALEN); +#endif + } + else + memcpy(BAReq->addr3, ieee->current_network.bssid, ETH_ALEN); +#else + memcpy(BAReq->addr3, ieee->current_network.bssid, ETH_ALEN); +#endif + BAReq->frame_ctl = cpu_to_le16(RTLLIB_STYPE_MANAGE_ACT); + + tag = (u8*)skb_put(skb, 9); + *tag ++= ACT_CAT_BA; + *tag ++= type; + *tag ++= pBA->DialogToken; + + if (ACT_ADDBARSP == type) + { + printk("====>to send ADDBARSP\n"); + tmp = cpu_to_le16(StatusCode); + memcpy(tag, (u8*)&tmp, 2); + tag += 2; + } + tmp = cpu_to_le16(pBA->BaParamSet.shortData); + memcpy(tag, (u8*)&tmp, 2); + tag += 2; + tmp = cpu_to_le16(pBA->BaTimeoutValue); + memcpy(tag, (u8*)&tmp, 2); + tag += 2; + + if (ACT_ADDBAREQ == type) + { + memcpy(tag,(u8*)&(pBA->BaStartSeqCtrl), 2); + tag += 2; + } + + RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA|RTLLIB_DL_BA, skb->data, skb->len); + return skb; +} + +static struct sk_buff* rtllib_DELBA( + struct rtllib_device* ieee, + u8* dst, + PBA_RECORD pBA, + TR_SELECT TxRxSelect, + u16 ReasonCode + ) +{ + DELBA_PARAM_SET DelbaParamSet; + struct sk_buff *skb = NULL; + struct rtllib_hdr_3addr* Delba = NULL; + u8* tag = NULL; + u16 tmp = 0; + u16 len = 6 + ieee->tx_headroom; + + if (net_ratelimit()) + RTLLIB_DEBUG(RTLLIB_DL_TRACE | RTLLIB_DL_BA, "========>%s(), ReasonCode(%d) sentd to:"MAC_FMT"\n", __FUNCTION__, ReasonCode, MAC_ARG(dst)); + + memset(&DelbaParamSet, 0, 2); + + DelbaParamSet.field.Initiator = (TxRxSelect==TX_DIR)?1:0; + DelbaParamSet.field.TID = pBA->BaParamSet.field.TID; + +#ifdef USB_USE_ALIGNMENT + u32 Tmpaddr=0; + int alignment=0; + skb = dev_alloc_skb(len + sizeof( struct rtllib_hdr_3addr) + USB_512B_ALIGNMENT_SIZE); +#else + skb = dev_alloc_skb(len + sizeof( struct rtllib_hdr_3addr)); +#endif + if (skb == NULL) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't alloc skb for ADDBA_REQ\n"); + return NULL; + } + +#ifdef USB_USE_ALIGNMENT + Tmpaddr = (u32)skb->data; + alignment = Tmpaddr & 0x1ff; + skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment)); +#endif + skb_reserve(skb, ieee->tx_headroom); + + Delba = ( struct rtllib_hdr_3addr *) skb_put(skb,sizeof( struct rtllib_hdr_3addr)); + + memcpy(Delba->addr1, dst, ETH_ALEN); + memcpy(Delba->addr2, ieee->dev->dev_addr, ETH_ALEN); +#ifdef _RTL8192_EXT_PATCH_ + if((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0) && ieee->ext_patch_rtllib_is_mesh && ieee->ext_patch_rtllib_is_mesh(ieee, dst)){ +#ifdef COMPATIBLE_WITH_RALINK_MESH + memcpy(Delba->addr3, dst, ETH_ALEN); +#else + memcpy(Delba->addr3, ieee->current_mesh_network.bssid, ETH_ALEN); +#endif + } + else + memcpy(Delba->addr3, ieee->current_network.bssid, ETH_ALEN); +#else + memcpy(Delba->addr3, ieee->current_network.bssid, ETH_ALEN); +#endif + Delba->frame_ctl = cpu_to_le16(RTLLIB_STYPE_MANAGE_ACT); + + tag = (u8*)skb_put(skb, 6); + + *tag ++= ACT_CAT_BA; + *tag ++= ACT_DELBA; + + tmp = cpu_to_le16(DelbaParamSet.shortData); + memcpy(tag, (u8*)&tmp, 2); + tag += 2; + tmp = cpu_to_le16(ReasonCode); + memcpy(tag, (u8*)&tmp, 2); + tag += 2; + + RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA|RTLLIB_DL_BA, skb->data, skb->len); + if (net_ratelimit()) + RTLLIB_DEBUG(RTLLIB_DL_TRACE | RTLLIB_DL_BA, "<=====%s()\n", __FUNCTION__); + return skb; +} + +void rtllib_send_ADDBAReq(struct rtllib_device* ieee, u8* dst, PBA_RECORD pBA) +{ + struct sk_buff *skb = NULL; + skb = rtllib_ADDBA(ieee, dst, pBA, 0, ACT_ADDBAREQ); + + if (skb) + { + printk("====>to send ADDBAREQ!!!!!\n"); + softmac_mgmt_xmit(skb, ieee); + } + else + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "alloc skb error in function %s()\n", __FUNCTION__); + } + return; +} + +void rtllib_send_ADDBARsp(struct rtllib_device* ieee, u8* dst, PBA_RECORD pBA, u16 StatusCode) +{ + struct sk_buff *skb = NULL; + skb = rtllib_ADDBA(ieee, dst, pBA, StatusCode, ACT_ADDBARSP); + if (skb) + { + softmac_mgmt_xmit(skb, ieee); + } + else + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "alloc skb error in function %s()\n", __FUNCTION__); + } + + return; + +} + +void rtllib_send_DELBA(struct rtllib_device* ieee, u8* dst, PBA_RECORD pBA, TR_SELECT TxRxSelect, u16 ReasonCode) +{ + struct sk_buff *skb = NULL; + skb = rtllib_DELBA(ieee, dst, pBA, TxRxSelect, ReasonCode); + if (skb) + { + softmac_mgmt_xmit(skb, ieee); + } + else + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "alloc skb error in function %s()\n", __FUNCTION__); + } + return ; +} + +int rtllib_rx_ADDBAReq( struct rtllib_device* ieee, struct sk_buff *skb) +{ + struct rtllib_hdr_3addr* req = NULL; + u16 rc = 0; + u8 * dst = NULL, *pDialogToken = NULL, *tag = NULL; + PBA_RECORD pBA = NULL; + PBA_PARAM_SET pBaParamSet = NULL; + u16* pBaTimeoutVal = NULL; + PSEQUENCE_CONTROL pBaStartSeqCtrl = NULL; + PRX_TS_RECORD pTS = NULL; + + if (skb->len < sizeof( struct rtllib_hdr_3addr) + 9) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, " Invalid skb len in BAREQ(%d / %d)\n",(int)skb->len, (int)(sizeof( struct rtllib_hdr_3addr) + 9)); + return -1; + } + + RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA|RTLLIB_DL_BA, skb->data, skb->len); + + req = ( struct rtllib_hdr_3addr*) skb->data; + tag = (u8*)req; + dst = (u8*)(&req->addr2[0]); + tag += sizeof( struct rtllib_hdr_3addr); + pDialogToken = tag + 2; + pBaParamSet = (PBA_PARAM_SET)(tag + 3); + pBaTimeoutVal = (u16*)(tag + 5); + pBaStartSeqCtrl = (PSEQUENCE_CONTROL)(req + 7); + + printk("====>rx ADDBAREQ from :"MAC_FMT"\n", MAC_ARG(dst)); + if( +#ifdef _RTL8192_EXT_PATCH_ + (ieee->current_network.qos_data.active == 0 && ieee->current_mesh_network.qos_data.active==0) || +#else + ieee->current_network.qos_data.active == 0 || +#endif + (ieee->pHTInfo->bCurrentHTSupport == false) || + (ieee->pHTInfo->IOTAction & HT_IOT_ACT_REJECT_ADDBA_REQ)) + { + rc = ADDBA_STATUS_REFUSED; + RTLLIB_DEBUG(RTLLIB_DL_ERR, "Failed to reply on ADDBA_REQ as some capability is not ready(%d, %d)\n", ieee->current_network.qos_data.active, ieee->pHTInfo->bCurrentHTSupport); + goto OnADDBAReq_Fail; + } + if( !GetTs( + ieee, + (PTS_COMMON_INFO*)(&pTS), + dst, + (u8)(pBaParamSet->field.TID), + RX_DIR, + true) ) + { + rc = ADDBA_STATUS_REFUSED; + RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't get TS in %s()\n", __FUNCTION__); + goto OnADDBAReq_Fail; + } + pBA = &pTS->RxAdmittedBARecord; + + if(pBaParamSet->field.BAPolicy == BA_POLICY_DELAYED) + { + rc = ADDBA_STATUS_INVALID_PARAM; + RTLLIB_DEBUG(RTLLIB_DL_ERR, "BA Policy is not correct in %s()\n", __FUNCTION__); + goto OnADDBAReq_Fail; + } + + + rtllib_FlushRxTsPendingPkts(ieee, pTS); + + DeActivateBAEntry(ieee, pBA); + pBA->DialogToken = *pDialogToken; + pBA->BaParamSet = *pBaParamSet; + pBA->BaTimeoutValue = *pBaTimeoutVal; + pBA->BaStartSeqCtrl = *pBaStartSeqCtrl; + + if (ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev)|| + (ieee->pHTInfo->IOTAction & HT_IOT_ACT_ALLOW_PEER_AGG_ONE_PKT)) + pBA->BaParamSet.field.BufferSize = 1; + else + pBA->BaParamSet.field.BufferSize = 32; + + ActivateBAEntry(ieee, pBA, 0); + rtllib_send_ADDBARsp(ieee, dst, pBA, ADDBA_STATUS_SUCCESS); + + return 0; + +OnADDBAReq_Fail: + { + BA_RECORD BA; + BA.BaParamSet = *pBaParamSet; + BA.BaTimeoutValue = *pBaTimeoutVal; + BA.DialogToken = *pDialogToken; + BA.BaParamSet.field.BAPolicy = BA_POLICY_IMMEDIATE; + rtllib_send_ADDBARsp(ieee, dst, &BA, rc); + return 0; + } + +} + +int rtllib_rx_ADDBARsp( struct rtllib_device* ieee, struct sk_buff *skb) +{ + struct rtllib_hdr_3addr* rsp = NULL; + PBA_RECORD pPendingBA, pAdmittedBA; + PTX_TS_RECORD pTS = NULL; + u8* dst = NULL, *pDialogToken = NULL, *tag = NULL; + u16* pStatusCode = NULL, *pBaTimeoutVal = NULL; + PBA_PARAM_SET pBaParamSet = NULL; + u16 ReasonCode; + + if (skb->len < sizeof( struct rtllib_hdr_3addr) + 9) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, " Invalid skb len in BARSP(%d / %d)\n", (int)skb->len, (int)(sizeof( struct rtllib_hdr_3addr) + 9)); + return -1; + } + rsp = ( struct rtllib_hdr_3addr*)skb->data; + tag = (u8*)rsp; + dst = (u8*)(&rsp->addr2[0]); + tag += sizeof( struct rtllib_hdr_3addr); + pDialogToken = tag + 2; + pStatusCode = (u16*)(tag + 3); + pBaParamSet = (PBA_PARAM_SET)(tag + 5); + pBaTimeoutVal = (u16*)(tag + 7); + + printk("====>rx ADDBARSP from :"MAC_FMT"\n", MAC_ARG(dst)); + if( +#ifdef _RTL8192_EXT_PATCH_ + (ieee->current_network.qos_data.active == 0 && ieee->current_mesh_network.qos_data.active==0) || +#else + ieee->current_network.qos_data.active == 0 || +#endif + ieee->pHTInfo->bCurrentHTSupport == false || + ieee->pHTInfo->bCurrentAMPDUEnable == false ) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "reject to ADDBA_RSP as some capability is not ready(%d, %d, %d)\n",ieee->current_network.qos_data.active, ieee->pHTInfo->bCurrentHTSupport, ieee->pHTInfo->bCurrentAMPDUEnable); + ReasonCode = DELBA_REASON_UNKNOWN_BA; + goto OnADDBARsp_Reject; + } + + + if (!GetTs( + ieee, + (PTS_COMMON_INFO*)(&pTS), + dst, + (u8)(pBaParamSet->field.TID), + TX_DIR, + false) ) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't get TS in %s()\n", __FUNCTION__); + ReasonCode = DELBA_REASON_UNKNOWN_BA; + goto OnADDBARsp_Reject; + } + + pTS->bAddBaReqInProgress = false; + pPendingBA = &pTS->TxPendingBARecord; + pAdmittedBA = &pTS->TxAdmittedBARecord; + + + if((pAdmittedBA->bValid==true)) + { + RTLLIB_DEBUG(RTLLIB_DL_BA, "OnADDBARsp(): Recv ADDBA Rsp. Drop because already admit it! \n"); + return -1; + } + else if((pPendingBA->bValid == false) ||(*pDialogToken != pPendingBA->DialogToken)) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "OnADDBARsp(): Recv ADDBA Rsp. BA invalid, DELBA! \n"); + ReasonCode = DELBA_REASON_UNKNOWN_BA; + goto OnADDBARsp_Reject; + } + else + { + RTLLIB_DEBUG(RTLLIB_DL_BA, "OnADDBARsp(): Recv ADDBA Rsp. BA is admitted! Status code:%X\n", *pStatusCode); + DeActivateBAEntry(ieee, pPendingBA); + } + + + if(*pStatusCode == ADDBA_STATUS_SUCCESS) + { + if(pBaParamSet->field.BAPolicy == BA_POLICY_DELAYED) + { + pTS->bAddBaReqDelayed = true; + DeActivateBAEntry(ieee, pAdmittedBA); + ReasonCode = DELBA_REASON_END_BA; + goto OnADDBARsp_Reject; + } + + + pAdmittedBA->DialogToken = *pDialogToken; + pAdmittedBA->BaTimeoutValue = *pBaTimeoutVal; + pAdmittedBA->BaStartSeqCtrl = pPendingBA->BaStartSeqCtrl; + pAdmittedBA->BaParamSet = *pBaParamSet; + DeActivateBAEntry(ieee, pAdmittedBA); + ActivateBAEntry(ieee, pAdmittedBA, *pBaTimeoutVal); + } else { + pTS->bAddBaReqDelayed = true; + pTS->bDisable_AddBa = true; + ReasonCode = DELBA_REASON_END_BA; + goto OnADDBARsp_Reject; + } + + return 0; + +OnADDBARsp_Reject: + { + BA_RECORD BA; + BA.BaParamSet = *pBaParamSet; + rtllib_send_DELBA(ieee, dst, &BA, TX_DIR, ReasonCode); + return 0; + } + +} + +int rtllib_rx_DELBA(struct rtllib_device* ieee,struct sk_buff *skb) +{ + struct rtllib_hdr_3addr* delba = NULL; + PDELBA_PARAM_SET pDelBaParamSet = NULL; + u16* pReasonCode = NULL; + u8* dst = NULL; + + if (skb->len < sizeof( struct rtllib_hdr_3addr) + 6) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, " Invalid skb len in DELBA(%d / %d)\n", (int)skb->len, (int)(sizeof( struct rtllib_hdr_3addr) + 6)); + return -1; + } + + if( +#ifdef _RTL8192_EXT_PATCH_ + (ieee->current_network.qos_data.active == 0 && ieee->current_mesh_network.qos_data.active==0) || +#else + ieee->current_network.qos_data.active == 0 || +#endif + ieee->pHTInfo->bCurrentHTSupport == false ) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "received DELBA while QOS or HT is not supported(%d, %d)\n",ieee->current_network.qos_data.active, ieee->pHTInfo->bCurrentHTSupport); + return -1; + } + + RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA|RTLLIB_DL_BA, skb->data, skb->len); + delba = ( struct rtllib_hdr_3addr*)skb->data; + dst = (u8*)(&delba->addr2[0]); + delba += sizeof( struct rtllib_hdr_3addr); + pDelBaParamSet = (PDELBA_PARAM_SET)(delba+2); + pReasonCode = (u16*)(delba+4); + + if(pDelBaParamSet->field.Initiator == 1) + { + PRX_TS_RECORD pRxTs; + + if( !GetTs( + ieee, + (PTS_COMMON_INFO*)&pRxTs, + dst, + (u8)pDelBaParamSet->field.TID, + RX_DIR, + false) ) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't get TS for RXTS in %s().dst:"MAC_FMT" TID:%d\n", __FUNCTION__, MAC_ARG(dst), (u8)pDelBaParamSet->field.TID); + return -1; + } + + RxTsDeleteBA(ieee, pRxTs); + } + else + { + PTX_TS_RECORD pTxTs; + + if(!GetTs( + ieee, + (PTS_COMMON_INFO*)&pTxTs, + dst, + (u8)pDelBaParamSet->field.TID, + TX_DIR, + false) ) + { + RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't get TS for TXTS in %s()\n", __FUNCTION__); + return -1; + } + + pTxTs->bUsingBa = false; + pTxTs->bAddBaReqInProgress = false; + pTxTs->bAddBaReqDelayed = false; + del_timer_sync(&pTxTs->TsAddBaTimer); + TxTsDeleteBA(ieee, pTxTs); + } + return 0; +} + +void +TsInitAddBA( + struct rtllib_device* ieee, + PTX_TS_RECORD pTS, + u8 Policy, + u8 bOverwritePending + ) +{ + PBA_RECORD pBA = &pTS->TxPendingBARecord; + + if(pBA->bValid==true && bOverwritePending==false) + return; + + DeActivateBAEntry(ieee, pBA); + + pBA->DialogToken++; + pBA->BaParamSet.field.AMSDU_Support = 0; + pBA->BaParamSet.field.BAPolicy = Policy; + pBA->BaParamSet.field.TID = pTS->TsCommonInfo.TSpec.f.TSInfo.field.ucTSID; + pBA->BaParamSet.field.BufferSize = 32; + pBA->BaTimeoutValue = 0; + pBA->BaStartSeqCtrl.field.SeqNum = (pTS->TxCurSeq + 3) % 4096; + + ActivateBAEntry(ieee, pBA, BA_SETUP_TIMEOUT); + + rtllib_send_ADDBAReq(ieee, pTS->TsCommonInfo.Addr, pBA); +} + +void +TsInitDelBA( struct rtllib_device* ieee, PTS_COMMON_INFO pTsCommonInfo, TR_SELECT TxRxSelect) +{ + + if(TxRxSelect == TX_DIR) + { + PTX_TS_RECORD pTxTs = (PTX_TS_RECORD)pTsCommonInfo; + + if(TxTsDeleteBA(ieee, pTxTs)) + rtllib_send_DELBA( + ieee, + pTsCommonInfo->Addr, + (pTxTs->TxAdmittedBARecord.bValid)?(&pTxTs->TxAdmittedBARecord):(&pTxTs->TxPendingBARecord), + TxRxSelect, + DELBA_REASON_END_BA); + } + else if(TxRxSelect == RX_DIR) + { + PRX_TS_RECORD pRxTs = (PRX_TS_RECORD)pTsCommonInfo; + if(RxTsDeleteBA(ieee, pRxTs)) + rtllib_send_DELBA( + ieee, + pTsCommonInfo->Addr, + &pRxTs->RxAdmittedBARecord, + TxRxSelect, + DELBA_REASON_END_BA ); + } +} +void BaSetupTimeOut(unsigned long data) +{ + PTX_TS_RECORD pTxTs = (PTX_TS_RECORD)data; + + pTxTs->bAddBaReqInProgress = false; + pTxTs->bAddBaReqDelayed = true; + pTxTs->TxPendingBARecord.bValid = false; +} + +void TxBaInactTimeout(unsigned long data) +{ + PTX_TS_RECORD pTxTs = (PTX_TS_RECORD)data; + struct rtllib_device *ieee = container_of(pTxTs, struct rtllib_device, TxTsRecord[pTxTs->num]); + TxTsDeleteBA(ieee, pTxTs); + rtllib_send_DELBA( + ieee, + pTxTs->TsCommonInfo.Addr, + &pTxTs->TxAdmittedBARecord, + TX_DIR, + DELBA_REASON_TIMEOUT); +} + +void RxBaInactTimeout(unsigned long data) +{ + PRX_TS_RECORD pRxTs = (PRX_TS_RECORD)data; + struct rtllib_device *ieee = container_of(pRxTs, struct rtllib_device, RxTsRecord[pRxTs->num]); + + RxTsDeleteBA(ieee, pRxTs); + rtllib_send_DELBA( + ieee, + pRxTs->TsCommonInfo.Addr, + &pRxTs->RxAdmittedBARecord, + RX_DIR, + DELBA_REASON_TIMEOUT); + return ; +} + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/internal.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/internal.h @@ -0,0 +1,130 @@ +/* + * Cryptographic API. + * + * Copyright (c) 2002 James Morris + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + */ +#ifndef _CRYPTO_INTERNAL_H +#define _CRYPTO_INTERNAL_H + + +#include +#include "rtl_crypto.h" +#include +#include +#include + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12)) +#include +#else +#include +#include +#endif +#include + +#ifdef BUILT_IN_CRYPTO +#ifdef CONFIG_CRYPTO_HMAC +#undef CONFIG_CRYPTO_HMAC +#endif + +#ifdef CONFIG_KMOD +#undef CONFIG_KMOD +#endif +#endif /* BUILT_IN_CRYPTO */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20)) +#define list_for_each_entry(pos, head, member) \ + for (pos = list_entry((head)->next, typeof(*pos), member), \ + prefetch(pos->member.next); \ + &pos->member != (head); \ + pos = list_entry(pos->member.next, typeof(*pos), member), \ + prefetch(pos->member.next)) + +static inline void cond_resched(void) +{ + if (need_resched()) { + set_current_state(TASK_RUNNING); + schedule(); + } +} +#endif + +extern enum km_type crypto_km_types[]; + +static inline enum km_type crypto_kmap_type(int out) +{ + return crypto_km_types[(in_softirq() ? 2 : 0) + out]; +} + +static inline void *crypto_kmap(struct page *page, int out) +{ + return kmap_atomic(page, crypto_kmap_type(out)); +} + +static inline void crypto_kunmap(void *vaddr, int out) +{ + kunmap_atomic(vaddr, crypto_kmap_type(out)); +} + +static inline void crypto_yield(struct crypto_tfm *tfm) +{ + if (!in_softirq()) + cond_resched(); +} + +static inline void *crypto_tfm_ctx(struct crypto_tfm *tfm) +{ + return (void *)&tfm[1]; +} + +struct crypto_alg *crypto_alg_lookup(const char *name); + +#ifdef CONFIG_KMOD +void crypto_alg_autoload(const char *name); +struct crypto_alg *crypto_alg_mod_lookup(const char *name); +#else +static inline struct crypto_alg *crypto_alg_mod_lookup(const char *name) +{ + return crypto_alg_lookup(name); +} +#endif + +#ifdef CONFIG_CRYPTO_HMAC +int crypto_alloc_hmac_block(struct crypto_tfm *tfm); +void crypto_free_hmac_block(struct crypto_tfm *tfm); +#else +static inline int crypto_alloc_hmac_block(struct crypto_tfm *tfm) +{ + return 0; +} + +static inline void crypto_free_hmac_block(struct crypto_tfm *tfm) +{ } +#endif + +#ifdef CONFIG_PROC_FS +void __init crypto_init_proc(void); +#else +static inline void crypto_init_proc(void) +{ } +#endif + +int crypto_init_digest_flags(struct crypto_tfm *tfm, u32 flags); +int crypto_init_cipher_flags(struct crypto_tfm *tfm, u32 flags); +int crypto_init_compress_flags(struct crypto_tfm *tfm, u32 flags); + +int crypto_init_digest_ops(struct crypto_tfm *tfm); +int crypto_init_cipher_ops(struct crypto_tfm *tfm); +int crypto_init_compress_ops(struct crypto_tfm *tfm); + +void crypto_exit_digest_ops(struct crypto_tfm *tfm); +void crypto_exit_cipher_ops(struct crypto_tfm *tfm); +void crypto_exit_compress_ops(struct crypto_tfm *tfm); + +#endif /* _CRYPTO_INTERNAL_H */ + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/Makefile +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/Makefile @@ -0,0 +1,214 @@ +NIC_SELECT = RTL8192SE + +KVER := $(shell uname -r) +MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/$(NIC_SELECT) + +CC = gcc +ifneq ($(shell uname -r|cut -d. -f1,2), 2.4) +EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/wireless +EXTRA_CFLAGS += -O2 + +#it will fail to compile in suse linux enterprise 10 sp2. This flag is to solve this problem. +ifeq ($(shell uname -r | cut -d. -f1,2,3,4), 2.6.16.60-0) +EXTRA_CFLAGS += -DOPENSUSE_SLED +endif +ifeq ($(NIC_SELECT), RTL8192SE) + EXTRA_CFLAGS += -DRTL8192S_DISABLE_FW_DM=0 + EXTRA_CFLAGS += -DRTL8192SE + EXTRA_CFLAGS += -DENABLE_IPS + EXTRA_CFLAGS += -DENABLE_LPS +endif +ifeq ($(NIC_SELECT), RTL8192SU) + EXTRA_CFLAGS += -DRTL8192S_DISABLE_FW_DM=0 + EXTRA_CFLAGS += -DRTL8192SU + EXTRA_CFLAGS += -DENABLE_IPS + EXTRA_CFLAGS += -DENABLE_LPS + EXTRA_CFLAGS += -DUSB_RX_AGGREGATION_SUPPORT + EXTRA_CFLAGS += -DTCP_CSUM_OFFLOAD_RX +endif +ifeq ($(NIC_SELECT), RTL8190P) + EXTRA_CFLAGS += -DRTL8190P +endif +ifeq ($(NIC_SELECT), RTL8192E) + EXTRA_CFLAGS += -DRTL8192E + EXTRA_CFLAGS += -DENABLE_IPS + EXTRA_CFLAGS += -DENABLE_LPS +endif +ifeq ($(NIC_SELECT),RTL8192U) +EXTRA_CFLAGS += -DRTL8192U +#EXTRA_CFLAGS += -DENABLE_AMSDU +EXTRA_CFLAGS += -DUSB_TX_DRIVER_AGGREGATION_ENABLE +EXTRA_CFLAGS += -DUSB_RX_AGGREGATION_SUPPORT + +# For RTK DMP platform +#EXTRA_CFLAGS += -DRTK_DMP_PLATFORM +#EXTRA_CFLAGS += -DWIFI_TEST + +endif +ifeq ($(NIC_SELECT), RTL8191SE_MESH) +AUTHTYPE=SAE +#AUTHTYPE=OPEN +EXTRA_CFLAGS += -DRTL8192SE \ + -DRTL8192S_DISABLE_FW_DM=0 \ + -D_RTL8192_EXT_PATCH_\ + -DENABLE_IPS \ + -DENABLE_LPS \ + -DCUSTOMER_ID_INTEL_CMPC +ifeq ($(AUTHTYPE),SAE) +EXTRA_CFLAGS += -DMESH_ABBR_HANDSHK_SUPPORT\ + -DMESH_ATH_2 +endif +endif +#EXTRA_CFLAGS += -DJOHN_NOCPY +EXTRA_CFLAGS += -DTHOMAS_TURBO +#flags to enable or disble 80211D feature +EXTRA_CFLAGS += -DENABLE_DOT11D +rtllib-rsl-objs := rtllib_rx.o \ + rtllib_softmac.o \ + rtllib_tx.o \ + rtllib_wx.o \ + rtllib_module.o \ + rtllib_softmac_wx.o\ + rtl819x_HTProc.o\ + rtl819x_TSProc.o\ + rtl819x_BAProc.o\ + dot11d.o + +rtllib_crypt-rsl-objs := rtllib_crypt.o +rtllib_crypt_tkip-rsl-objs := rtllib_crypt_tkip.o +rtllib_crypt_ccmp-rsl-objs := rtllib_crypt_ccmp.o +rtllib_crypt_wep-rsl-objs := rtllib_crypt_wep.o + +obj-m +=rtllib-rsl.o +obj-m +=rtllib_crypt-rsl.o +obj-m +=rtllib_crypt_wep-rsl.o +obj-m +=rtllib_crypt_tkip-rsl.o +obj-m +=rtllib_crypt_ccmp-rsl.o + +KSRC := /lib/modules/$(KVER)/build +INSTALL_PREFIX := + +all: modules + +modules: + $(MAKE) -C $(KSRC) M=$(PWD) CC=$(CC) modules + +install: modules + rm -fr $(MODDESTDIR) + mkdir -p $(MODDESTDIR) + @install -p -m 644 rtllib_crypt-rsl.ko $(MODDESTDIR) + @install -p -m 644 rtllib_crypt_wep-rsl.ko $(MODDESTDIR) + @install -p -m 644 rtllib_crypt_tkip-rsl.ko $(MODDESTDIR) + @install -p -m 644 rtllib_crypt_ccmp-rsl.ko $(MODDESTDIR) + @install -p -m 644 rtllib-rsl.ko $(MODDESTDIR) + depmod -a +uninstall: + rm -fr $(MODDESTDIR) + depmod -a + +else +LD := ld +KSRC := /lib/modules/$(KVER)/build +CONFIG_FILE := $(KSRC)/include/linux/autoconf.h + +CFLAGS += -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall +CFLAGS += -I$(KSRC)/include -I. +#Kernel 2.4.31 +CFLAGS += -DMODVERSIONS -DEXPORT_SYMTAB -include $(KSRC)/include/linux/modversions.h +#Kernel 2.4.20 +#CFLAGS += -D__NO_VERSION__ -DEXPORT_SYMTAB +CFLAGS += -DENABLE_DOT11D +CFLAGS += -DTHOMAS_TURBO + +ifeq ($(NIC_SELECT),RTL8192U) +CFLAGS += -DRTL8192U +#EXTRA_CFLAGS += -DENABLE_AMSDU +EXTRA_CFLAGS += -DUSB_TX_DRIVER_AGGREGATION_ENABLE +EXTRA_CFLAGS += -DUSB_RX_AGGREGATION_SUPPORT +endif +ifeq ($(NIC_SELECT),RTL8192E) +CFLAGS += -DRTL8192E +endif +ifeq ($(NIC_SELECT),RTL8190P) +CFLAGS += -DRTL8190P +endif +ifeq ($(NIC_SELECT),RTL8192SE) +CFLAGS += -DRTL8192SE +CFLAGS += -DRTL8192S_DISABLE_FW_DM=0 +endif +ifeq ($(NIC_SELECT), RTL8191SE_MESH) +AUTHTYPE=SAE +#AUTHTYPE=OPEN +CFLAGS += -DRTL8192SE +CFLAGS += -DRTL8192S_DISABLE_FW_DM=0 +CFLAGS += -D_RTL8192_EXT_PATCH_ +ifeq ($(AUTHTYPE),SAE) +CFLAGS += -DMESH_ABBR_HANDSHK_SUPPORT\ +CFLAGS += -DMESH_ATH_2 +endif +endif + +SMP := $(shell $(CC) $(MODCFLAGS) -E -dM $(CONFIG_FILE) | \ + grep CONFIG_SMP | awk '{print $$3}') +ifneq ($(SMP),1) + SMP := 0 +endif +ifeq ($(SMP),1) + CFLAGS += -D__SMP__ +endif + +#CFLAGS += -DJOHN_NOCPY + +OBJS := ${patsubst %.c, %.o, ${wildcard *.c}} +all:${OBJS} rtllib_crypt-rsl.o michael_mic-rsl.o aes-rsl.o rtllib_crypt_wep-rsl.o rtllib_crypt_tkip-rsl.o rtllib_crypt_ccmp-rsl.o crypto-rsl.o rtllib-rsl.o + +rtllib_crypt-rsl.o: rtllib_crypt.o + mv $^ $@ + +michael_mic-rsl.o: michael_mic.o + mv $^ $@ + +aes-rsl.o: aes.o + mv $^ $@ + +rtllib_crypt_wep-rsl.o: rtllib_crypt_wep.o + mv $^ $@ + +rtllib_crypt_tkip-rsl.o: rtllib_crypt_tkip.o + mv $^ $@ + +rtllib_crypt_ccmp-rsl.o: rtllib_crypt_ccmp.o + mv $^ $@ + +crypto-rsl.o: arc4.o api.o autoload.o cipher.o compress.o digest.o scatterwalk.o proc.o + $(LD) -r $^ -o $@ + +rtllib-rsl.o: rtllib_rx.o rtllib_tx.o rtllib_wx.o rtllib_module.o rtllib_softmac_wx.o rtllib_softmac.o rtl819x_HTProc.o rtl819x_TSProc.o rtl819x_BAProc.o dot11d.o + $(LD) -r $^ -o $@ +install: + rm -fr $(MODDESTDIR) + mkdir -p $(MODDESTDIR) + @install -p -m 644 rtllib_crypt-rsl.o $(MODDESTDIR) + @install -p -m 644 crypto-rsl.o $(MODDESTDIR) + @install -p -m 644 michael_mic-rsl.o $(MODDESTDIR) + @install -p -m 644 aes-rsl.o $(MODDESTDIR) + @install -p -m 644 rtllib_crypt_wep-rsl.o $(MODDESTDIR) + @install -p -m 644 rtllib_crypt_tkip-rsl.o $(MODDESTDIR) + @install -p -m 644 rtllib_crypt_ccmp-rsl.o $(MODDESTDIR) + @install -p -m 644 rtllib-rsl.o $(MODDESTDIR) + /sbin/depmod -a ${shell uname -r} + +uninstall: + rm -fr $(MODDESTDIR) + /sbin/depmod -a ${shell uname -r} + +endif + +.PHONY: clean +clean: + rm -fr *.mod.c *.mod *.o .*.cmd *.mod.* *.ko *.o *~ + rm -rf .tmp_versions + rm -rf Module.symvers + rm -fr Module.markers + rm -fr modules.order + rm -fr tags --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/scatterwalk.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/scatterwalk.h @@ -0,0 +1,53 @@ +/* + * Cryptographic API. + * + * Copyright (c) 2002 James Morris + * Copyright (c) 2002 Adam J. Richter + * Copyright (c) 2004 Jean-Luc Cooke + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the 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 +#include + +struct scatter_walk { + struct scatterlist *sg; + struct page *page; + void *data; + unsigned int len_this_page; + unsigned int len_this_segment; + unsigned int offset; +}; + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) +/* Define sg_next is an inline routine now in case we want to change + scatterlist to a linked list later. */ +static inline struct scatterlist *sg_next(struct scatterlist *sg) +{ + return sg + 1; +} +#endif + +static inline int scatterwalk_samebuf(struct scatter_walk *walk_in, + struct scatter_walk *walk_out, + void *src_p, void *dst_p) +{ + return walk_in->page == walk_out->page && + walk_in->offset == walk_out->offset && + walk_in->data == src_p && walk_out->data == dst_p; +} + +void *scatterwalk_whichbuf(struct scatter_walk *walk, unsigned int nbytes, void *scratch); +void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg); +int scatterwalk_copychunks(void *buf, struct scatter_walk *walk, size_t nbytes, int out); +void scatterwalk_map(struct scatter_walk *walk, int out); +void scatterwalk_done(struct scatter_walk *walk, int out, int more); + +#endif /* _CRYPTO_SCATTERWALK_H */ --- linux-2.6.35.orig/ubuntu/rtl8192se/rtllib/rtl819x_TS.h +++ linux-2.6.35/ubuntu/rtl8192se/rtllib/rtl819x_TS.h @@ -0,0 +1,72 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef _TSTYPE_H_ +#define _TSTYPE_H_ +#include "rtl819x_Qos.h" +#define TS_SETUP_TIMEOUT 60 +#define TS_INACT_TIMEOUT 60 +#define TS_ADDBA_DELAY 60 + +#define TOTAL_TS_NUM 16 +#define TCLAS_NUM 4 + +typedef enum _TR_SELECT { + TX_DIR = 0, + RX_DIR = 1, +} TR_SELECT, *PTR_SELECT; + +typedef struct _TS_COMMON_INFO{ + struct list_head List; + struct timer_list SetupTimer; + struct timer_list InactTimer; + u8 Addr[6]; + TSPEC_BODY TSpec; + QOS_TCLAS TClass[TCLAS_NUM]; + u8 TClasProc; + u8 TClasNum; +} TS_COMMON_INFO, *PTS_COMMON_INFO; + +typedef struct _TX_TS_RECORD{ + TS_COMMON_INFO TsCommonInfo; + u16 TxCurSeq; + BA_RECORD TxPendingBARecord; + BA_RECORD TxAdmittedBARecord; + u8 bAddBaReqInProgress; + u8 bAddBaReqDelayed; + u8 bUsingBa; + u8 bDisable_AddBa; + struct timer_list TsAddBaTimer; + u8 num; +} TX_TS_RECORD, *PTX_TS_RECORD; + +typedef struct _RX_TS_RECORD { + TS_COMMON_INFO TsCommonInfo; + u16 RxIndicateSeq; + u16 RxTimeoutIndicateSeq; + struct list_head RxPendingPktList; + struct timer_list RxPktPendingTimer; + BA_RECORD RxAdmittedBARecord; + u16 RxLastSeqNum; + u8 RxLastFragNum; + u8 num; +} RX_TS_RECORD, *PRX_TS_RECORD; + + +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.h @@ -0,0 +1,63 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef __INC_HAL8192SE_FW_IMG_H +#define __INC_HAL8192SE_FW_IMG_H + +#include + +/*Created on 2010/ 4/12, 5:56*/ + +#define ImgArrayLength 87000 +extern u8 Rtl8192SEFwImgArray[ImgArrayLength]; +#define MainArrayLength 1 +extern u8 Rtl8192SEFwMainArray[MainArrayLength]; +#define DataArrayLength 1 +extern u8 Rtl8192SEFwDataArray[DataArrayLength]; +#define PHY_REG_2T2RArrayLength 372 +extern u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength]; +#define PHY_REG_1T2RArrayLength 1 +extern u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength]; +#define PHY_ChangeTo_1T1RArrayLength 48 +extern u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength]; +#define PHY_ChangeTo_1T2RArrayLength 45 +extern u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength]; +#define PHY_ChangeTo_2T2RArrayLength 45 +extern u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength]; +#define PHY_REG_Array_PGLength 84 +extern u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength]; +#define RadioA_1T_ArrayLength 202 +extern u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength]; +#define RadioB_ArrayLength 22 +extern u32 Rtl8192SERadioB_Array[RadioB_ArrayLength]; +#define RadioA_to1T_ArrayLength 196 +extern u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength]; +#define RadioA_to2T_ArrayLength 196 +extern u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength]; +#define RadioB_GM_ArrayLength 10 +extern u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength]; +#define MAC_2T_ArrayLength 106 +extern u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength]; +#define MACPHY_Array_PGLength 1 +extern u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength]; +#define AGCTAB_ArrayLength 320 +extern u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength]; +#define AGCTAB_1TArrayLength 1 +extern u32 Rtl8192SEAGCTAB_1TArray[AGCTAB_1TArrayLength]; + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_dev.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_dev.h @@ -0,0 +1,80 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef _RTL8192SE_H +#define _RTL8192SE_H + +#include "r8192S_def.h" + +u8 rtl8192se_QueryIsShort(u8 TxHT, u8 TxRate, cb_desc *tcb_desc); +bool rtl8192se_GetHalfNmodeSupportByAPs(struct net_device* dev); +bool rtl8192se_GetNmodeSupportBySecCfg(struct net_device *dev); +bool rtl8192se_HalTxCheckStuck(struct net_device *dev); +bool rtl8192se_HalRxCheckStuck(struct net_device *dev); +void rtl8192se_interrupt_recognized(struct net_device *dev, u32 *p_inta, u32 *p_intb); +void rtl8192se_enable_rx(struct net_device *dev); +void rtl8192se_enable_tx(struct net_device *dev); +void rtl8192se_EnableInterrupt(struct net_device *dev); +void rtl8192se_DisableInterrupt(struct net_device *dev); +void rtl8192se_ClearInterrupt(struct net_device *dev); +void rtl8192se_InitializeVariables(struct net_device *dev); +void rtl8192se_start_beacon(struct net_device *dev); +u8 MRateToHwRate8192SE(struct net_device*dev, u8 rate); +void rtl8192se_get_eeprom_size(struct net_device* dev); +void MacConfigBeforeFwDownload(struct net_device *dev); +bool rtl8192se_adapter_start(struct net_device* dev); +void rtl8192se_link_change(struct net_device *dev); +void rtl8192se_AllowAllDestAddr(struct net_device* dev, bool bAllowAllDA, bool WriteIntoReg); +void rtl8192se_tx_fill_desc(struct net_device *dev, tx_desc *pDesc, cb_desc *cb_desc, struct sk_buff *skb); +void rtl8192se_tx_fill_cmd_desc(struct net_device *dev, tx_desc_cmd *entry, cb_desc *cb_desc, + struct sk_buff *skb); +bool rtl8192se_rx_query_status_desc(struct net_device* dev, struct rtllib_rx_stats* stats, + rx_desc *pdesc, struct sk_buff* skb); +void rtl8192se_halt_adapter(struct net_device *dev, bool bReset); +void rtl8192se_update_ratr_table(struct net_device* dev,u8* pMcsRate,struct sta_info* pEntry); +int r8192se_resume_firm(struct net_device *dev); +void PHY_SetRtl8192seRfHalt(struct net_device* dev); +void UpdateHalRAMask8192SE(struct net_device* dev, bool bMulticast, u8 macId, u8 MimoPs, u8 WirelessMode, u8 bCurTxBW40MHz, u8 rssi_level); +u8 HalSetSysClk8192SE(struct net_device *dev, u8 Data); +bool rtl8192se_RxCommandPacketHandle(struct net_device *dev, struct sk_buff* skb,rx_desc *pdesc); +bool rtl8192se_check_ht_cap(struct net_device* dev, struct sta_info *sta, + struct rtllib_network* net); +u8 rtl8192se_MapHwQueueToFirmwareQueue(u8 QueueID, u8 priority); + +void GetHwReg8192SE(struct net_device *dev,u8 variable,u8* val); +void SetHwReg8192SE(struct net_device *dev,u8 variable,u8* val); +void Adhoc_InitRateAdaptive(struct net_device *dev,struct sta_info *pEntry); +void SetBeaconRelatedRegisters8192SE(struct net_device *dev); + +#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,20) +void rtl8192se_check_tsf_wq(struct work_struct * work); +void rtl8192se_update_assoc_sta_info_wq(struct work_struct * work); +#else +void rtl8192se_check_tsf_wq(struct net_device *dev); +void rtl8192se_update_assoc_sta_info_wq(struct net_device *dev); +#endif +void gen_RefreshLedState(struct net_device *dev); + +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_led.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_led.c @@ -0,0 +1,1380 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#include "../rtl_core.h" +#ifdef RTL8192SE +#define LED_BLINK_NORMAL_INTERVAL 100 +#define LED_BLINK_SLOWLY_INTERVAL 200 + +#define LED_BLINK_NORMAL_INTERVAL_NETTRONIX 100 +#define LED_BLINK_SLOWLY_INTERVAL_NETTRONIX 2000 + +#define LED_BLINK_SLOWLY_INTERVAL_PORNET 1000 +#define LED_BLINK_NORMAL_INTERVAL_PORNET 100 + + +#define LED_CM2_BLINK_ON_INTERVAL 250 +#define LED_CM2_BLINK_OFF_INTERVAL 4750 + +#define LED_CM8_BLINK_OFF_INTERVAL 3750 + +#define LED_RunTop_BLINK_INTERVAL 300 + +#define LED_CM3_BLINK_INTERVAL 1500 + + + +static void BlinkTimerCallback(unsigned long data); + + +void InitLed8190Pci(struct net_device *dev, PLED_8190 pLed,LED_PIN_8190 LedPin) +{ + pLed->dev = dev; + pLed->LedPin = LedPin; + + pLed->CurrLedState = LED_OFF; + pLed->bLedOn = false; + pLed->bLedBlinkInProgress = false; + pLed->BlinkTimes = 0; + pLed->BlinkingLedState = LED_OFF; + + setup_timer(&pLed->BlinkTimer, + BlinkTimerCallback, + (unsigned long) pLed); +} + +void DeInitLed8190Pci(PLED_8190 pLed) +{ + del_timer_sync(&(pLed->BlinkTimer)); + pLed->bLedBlinkInProgress = false; +} + +void SwLedOn( struct net_device *dev , PLED_8190 pLed) +{ + u8 LedCfg; + + LedCfg = read_nic_byte(dev, LEDCFG); + + switch(pLed->LedPin) + { + case LED_PIN_GPIO0: + break; + + case LED_PIN_LED0: + write_nic_byte(dev, LEDCFG, LedCfg&0xf0); + break; + + case LED_PIN_LED1: + write_nic_byte(dev, LEDCFG, LedCfg&0x0f); + break; + + default: + break; + } + + pLed->bLedOn = true; +} + +void SwLedOff(struct net_device *dev, PLED_8190 pLed) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 LedCfg; + + LedCfg = read_nic_byte(dev, LEDCFG); + + switch(pLed->LedPin) + { + case LED_PIN_GPIO0: + break; + + case LED_PIN_LED0: + LedCfg &= 0xf0; + + if(priv->bLedOpenDrain == true) + write_nic_byte(dev, LEDCFG, (LedCfg|BIT1)); + else + write_nic_byte(dev, LEDCFG, (LedCfg|BIT3)); + break; + + case LED_PIN_LED1: + LedCfg &= 0x0f; + write_nic_byte(dev, LEDCFG, (LedCfg|BIT7)); + break; + + default: + break; + } + + pLed->bLedOn = false; +} + + +void InitSwLeds(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + InitLed8190Pci( + dev, + &(priv->SwLed0), + LED_PIN_LED0); + + InitLed8190Pci( + dev, + &(priv->SwLed1), + LED_PIN_LED1); +} + + +void DeInitSwLeds(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + DeInitLed8190Pci( &(priv->SwLed0) ); + DeInitLed8190Pci( &(priv->SwLed1) ); +} + +void HwLedBlink(struct net_device *dev, PLED_8190 pLed) +{ + + + switch(pLed->LedPin) + { + case LED_PIN_GPIO0: + break; + + case LED_PIN_LED0: + break; + + case LED_PIN_LED1: + break; + + default: + break; + } + + pLed->bLedOn = true; +} + + + +void SwLedBlink(PLED_8190 pLed) +{ + struct net_device *dev = (struct net_device *)pLed->dev; + struct r8192_priv *priv = rtllib_priv(dev); + bool bStopBlinking = false; + + if( pLed->BlinkingLedState == LED_ON ) + { + SwLedOn(dev, pLed); + RT_TRACE(COMP_LED, "Blinktimes (%d): turn on\n", pLed->BlinkTimes); + } + else + { + SwLedOff(dev, pLed); + RT_TRACE(COMP_LED, "Blinktimes (%d): turn off\n", pLed->BlinkTimes); + } + + pLed->BlinkTimes--; + switch(pLed->CurrLedState) + { + case LED_BLINK_NORMAL: + case LED_BLINK_TXRX: + case LED_BLINK_RUNTOP: + if(pLed->BlinkTimes == 0) + { + bStopBlinking = true; + } + break; + + case LED_SCAN_BLINK: + if( (priv->rtllib->state == RTLLIB_LINKED) && + (!rtllib_act_scanning(priv->rtllib,true))&& + (pLed->BlinkTimes % 2 == 0)) + { + bStopBlinking = true; + } + break; + + case LED_NO_LINK_BLINK: + case LED_BLINK_StartToBlink: + if( (priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_INFRA)) + { + bStopBlinking = true; + } + else if((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_ADHOC)) + { + bStopBlinking = true; + } + else if(pLed->BlinkTimes == 0) + { + bStopBlinking = true; + } + break; + + case LED_BLINK_CAMEO: + if((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_INFRA)) + { + bStopBlinking = true; + } + else if((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_ADHOC) ) + { + bStopBlinking = true; + } + break; + + default: + bStopBlinking = true; + break; + } + + if(bStopBlinking) + { + if( priv->rtllib->eRFPowerState != eRfOn ) + { + SwLedOff(dev, pLed); + } + else if(pLed->CurrLedState == LED_BLINK_TXRX) + { + SwLedOff(dev, pLed); + } + else if(pLed->CurrLedState == LED_BLINK_RUNTOP) + { + SwLedOff(dev, pLed); + } + else if( (priv->rtllib->state == RTLLIB_LINKED) && (pLed->bLedOn == false)) + { + SwLedOn(dev, pLed); + } + else if( (priv->rtllib->state != RTLLIB_LINKED) && pLed->bLedOn == true) + { + SwLedOff(dev, pLed); + } + + pLed->BlinkTimes = 0; + pLed->bLedBlinkInProgress = false; + } + else + { + if( pLed->BlinkingLedState == LED_ON ) + pLed->BlinkingLedState = LED_OFF; + else + pLed->BlinkingLedState = LED_ON; + + switch( pLed->CurrLedState ) + { + case LED_BLINK_NORMAL: + case LED_BLINK_TXRX: + case LED_BLINK_StartToBlink: + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL)); + break; + + case LED_BLINK_SLOWLY: + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL)); + break; + + case LED_SCAN_BLINK: + case LED_NO_LINK_BLINK: + if( pLed->bLedOn ) + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL)); + else + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_OFF_INTERVAL)); + break; + + case LED_BLINK_RUNTOP: + mod_timer(&(pLed->BlinkTimer),jiffies + MSECS(LED_RunTop_BLINK_INTERVAL)); + break; + + case LED_BLINK_CAMEO: + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET)); + break; + + default: + RT_TRACE(COMP_ERR, "SwLedCm2Blink(): unexpected state!\n"); + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL)); + break; + } + } +} + +void SwLedBlink5(PLED_8190 pLed) +{ + struct net_device *dev = (struct net_device *)pLed->dev; + struct r8192_priv *priv = rtllib_priv(dev); + bool bStopBlinking = false; + + if( pLed->BlinkingLedState == LED_ON ) + { + SwLedOn(dev, pLed); + RT_TRACE(COMP_LED, "Blinktimes (%d): turn on\n", pLed->BlinkTimes); + } + else + { + SwLedOff(dev, pLed); + RT_TRACE(COMP_LED, "Blinktimes (%d): turn off\n", pLed->BlinkTimes); + } + + switch(pLed->CurrLedState) + { + case LED_OFF: + SwLedOff(dev, pLed); + break; + + case LED_BLINK_SLOWLY: + if( pLed->bLedOn ) + pLed->BlinkingLedState = LED_OFF; + else + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_NETTRONIX)); + break; + + case LED_BLINK_NORMAL: + pLed->BlinkTimes--; + if( pLed->BlinkTimes == 0 ) + { + bStopBlinking = true; + } + if(bStopBlinking) + { + if( priv->rtllib->eRFPowerState != eRfOn ) + { + SwLedOff(dev, pLed); + } + else + { + pLed->bLedSlowBlinkInProgress = true; + pLed->CurrLedState = LED_BLINK_SLOWLY; + if( pLed->bLedOn ) + pLed->BlinkingLedState = LED_OFF; + else + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_NETTRONIX)); + } + pLed->BlinkTimes = 0; + pLed->bLedBlinkInProgress = false; + } + else + { + if( priv->rtllib->eRFPowerState != eRfOn ) + { + SwLedOff(dev, pLed); + } + else + { + if( pLed->bLedOn ) + pLed->BlinkingLedState = LED_OFF; + else + pLed->BlinkingLedState = LED_ON; + + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL_NETTRONIX)); + } + } + break; + + default: + break; + } + +} + + +void SwLedBlink6(PLED_8190 pLed) +{ + struct net_device *dev = (struct net_device *)pLed->dev; + struct r8192_priv *priv = rtllib_priv(dev); + bool bStopBlinking = false; + + if( pLed->BlinkingLedState == LED_ON ) + { + SwLedOn(dev, pLed); + RT_TRACE(COMP_LED, "Blinktimes (%d): turn on\n", pLed->BlinkTimes); + } + else + { + SwLedOff(dev, pLed); + RT_TRACE(COMP_LED, "Blinktimes (%d): turn off\n", pLed->BlinkTimes); + } + + switch(pLed->CurrLedState) + { + case LED_OFF: + SwLedOff(dev, pLed); + break; + + case LED_BLINK_SLOWLY: + if( pLed->bLedOn ) + pLed->BlinkingLedState = LED_OFF; + else + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET)); + break; + + case LED_BLINK_NORMAL: + pLed->BlinkTimes--; + if( pLed->BlinkTimes == 0 ) + { + bStopBlinking = true; + } + if(bStopBlinking) + { + if( priv->rtllib->eRFPowerState != eRfOn ) + { + SwLedOff(dev, pLed); + } + else + { + pLed->bLedSlowBlinkInProgress = true; + pLed->CurrLedState = LED_BLINK_SLOWLY; + if( pLed->bLedOn ) + pLed->BlinkingLedState = LED_OFF; + else + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET)); + } + pLed->BlinkTimes = 0; + pLed->bLedBlinkInProgress = false; + } + else + { + if( priv->rtllib->eRFPowerState != eRfOn ) + { + SwLedOff(dev, pLed); + } + else + { + if( pLed->bLedOn ) + pLed->BlinkingLedState = LED_OFF; + else + pLed->BlinkingLedState = LED_ON; + + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL_PORNET)); + } + } + break; + + default: + break; + } + +} + +void SwLedBlink7( PLED_8190 pLed) +{ + struct net_device *dev = (struct net_device *)pLed->dev; + + SwLedOn(dev, pLed); + RT_TRACE(COMP_LED, "Blinktimes (%d): turn on\n", pLed->BlinkTimes); +} + +void BlinkTimerCallback(unsigned long data) +{ + PLED_8190 pLed = (PLED_8190)data; + struct net_device *dev = (struct net_device *)pLed->dev; + struct r8192_priv *priv = rtllib_priv(dev); + + switch(priv->LedStrategy) + { + case SW_LED_MODE1: + break; + case SW_LED_MODE2: + break; + case SW_LED_MODE3: + break; + case SW_LED_MODE5: + break; + case SW_LED_MODE6: + break; + + case SW_LED_MODE7: + SwLedBlink7(pLed); + break; + + default: + break; + } +} + +void SwLedControlMode0(struct net_device *dev,LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed0 = &(priv->SwLed0); + PLED_8190 pLed1 = &(priv->SwLed1); + + switch(LedAction) + { + case LED_CTL_TX: + case LED_CTL_RX: + break; + + case LED_CTL_LINK: + pLed0->CurrLedState = LED_ON; + SwLedOn(dev, pLed0); + + pLed1->CurrLedState = LED_BLINK_NORMAL; + HwLedBlink(dev, pLed1); + break; + + case LED_CTL_POWER_ON: + pLed0->CurrLedState = LED_OFF; + SwLedOff(dev, pLed0); + + pLed1->CurrLedState = LED_BLINK_NORMAL; + HwLedBlink(dev, pLed1); + + break; + + case LED_CTL_POWER_OFF: + pLed0->CurrLedState = LED_OFF; + SwLedOff(dev, pLed0); + + pLed1->CurrLedState = LED_OFF; + SwLedOff(dev, pLed1); + break; + + case LED_CTL_SITE_SURVEY: + break; + + case LED_CTL_NO_LINK: + pLed0->CurrLedState = LED_OFF; + SwLedOff(dev, pLed0); + + pLed1->CurrLedState = LED_BLINK_NORMAL; + HwLedBlink(dev, pLed1); + break; + + default: + break; + } + + RT_TRACE(COMP_LED, "Led0 %d Led1 %d\n", pLed0->CurrLedState, pLed1->CurrLedState); +} + + +void SwLedControlMode1(struct net_device *dev, LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed = &(priv->SwLed1); + + switch(LedAction) + { + case LED_CTL_TX: + case LED_CTL_RX: + if( pLed->bLedBlinkInProgress == false ) + { + pLed->bLedBlinkInProgress = true; + + pLed->CurrLedState = LED_BLINK_NORMAL; + pLed->BlinkTimes = 2; + + if( pLed->bLedOn ) + pLed->BlinkingLedState = LED_OFF; + else + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL)); + } + break; + + case LED_CTL_SITE_SURVEY: + if( pLed->bLedBlinkInProgress == false ) + { + pLed->bLedBlinkInProgress = true; + + if(priv->rtllib->state == RTLLIB_LINKED) + { + pLed->CurrLedState = LED_SCAN_BLINK; + pLed->BlinkTimes = 4; + } + else + { + pLed->CurrLedState = LED_NO_LINK_BLINK; + pLed->BlinkTimes = 24; + } + + if( pLed->bLedOn ) + { + pLed->BlinkingLedState = LED_OFF; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL)); + } + else + { + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_OFF_INTERVAL)); + } + } + else + { + if(pLed->CurrLedState != LED_NO_LINK_BLINK) + { + if(priv->rtllib->state == RTLLIB_LINKED) + { + pLed->CurrLedState = LED_SCAN_BLINK; + } + else + { + pLed->CurrLedState = LED_NO_LINK_BLINK; + } + } + } + break; + + case LED_CTL_NO_LINK: + if( pLed->bLedBlinkInProgress == false ) + { + pLed->bLedBlinkInProgress = true; + + pLed->CurrLedState = LED_NO_LINK_BLINK; + pLed->BlinkTimes = 24; + + if( pLed->bLedOn ) + { + pLed->BlinkingLedState = LED_OFF; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL)); + } + else + { + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_OFF_INTERVAL)); + } + } + else + { + pLed->CurrLedState = LED_NO_LINK_BLINK; + } + break; + + case LED_CTL_LINK: + pLed->CurrLedState = LED_ON; + if( pLed->bLedBlinkInProgress == false ) + { + SwLedOn(dev, pLed); + } + break; + + case LED_CTL_POWER_OFF: + pLed->CurrLedState = LED_OFF; + if(pLed->bLedBlinkInProgress) + { + del_timer_sync(&(pLed->BlinkTimer)); + pLed->bLedBlinkInProgress = false; + } + SwLedOff(dev, pLed); + break; + + default: + break; + } + + RT_TRACE(COMP_LED, "Led %d \n", pLed->CurrLedState); +} + +void SwLedControlMode2(struct net_device *dev, LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed0 = &(priv->SwLed0); + PLED_8190 pLed1 = &(priv->SwLed1); + + switch(LedAction) + { + case LED_CTL_POWER_ON: + pLed0->CurrLedState = LED_OFF; + SwLedOff(dev, pLed0); + + pLed1->CurrLedState = LED_BLINK_CAMEO; + if( pLed1->bLedBlinkInProgress == false ) + { + pLed1->bLedBlinkInProgress = true; + + pLed1->BlinkTimes = 6; + + if( pLed1->bLedOn ) + pLed1->BlinkingLedState = LED_OFF; + else + pLed1->BlinkingLedState = LED_ON; + mod_timer(&(pLed1->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET)); + } + break; + + case LED_CTL_TX: + case LED_CTL_RX: + if( pLed0->bLedBlinkInProgress == false ) + { + pLed0->bLedBlinkInProgress = true; + + pLed0->CurrLedState = LED_BLINK_TXRX; + pLed0->BlinkTimes = 2; + + if( pLed0->bLedOn ) + pLed0->BlinkingLedState = LED_OFF; + else + pLed0->BlinkingLedState = LED_ON; + + mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL)); + } + break; + + case LED_CTL_NO_LINK: + pLed1->CurrLedState = LED_BLINK_CAMEO; + if( pLed1->bLedBlinkInProgress == false ) + { + pLed1->bLedBlinkInProgress = true; + + pLed1->BlinkTimes = 6; + + if( pLed1->bLedOn ) + pLed1->BlinkingLedState = LED_OFF; + else + pLed1->BlinkingLedState = LED_ON; + mod_timer(&(pLed1->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET)); + } + break; + + case LED_CTL_LINK: + pLed1->CurrLedState = LED_ON; + if( pLed1->bLedBlinkInProgress == false ) + { + SwLedOn(dev, pLed1); + } + break; + + case LED_CTL_POWER_OFF: + pLed0->CurrLedState = LED_OFF; + pLed1->CurrLedState = LED_OFF; + if(pLed0->bLedBlinkInProgress) + { + del_timer_sync(&(pLed0->BlinkTimer)); + pLed0->bLedBlinkInProgress = false; + } + if(pLed1->bLedBlinkInProgress) + { + del_timer_sync(&(pLed1->BlinkTimer)); + pLed1->bLedBlinkInProgress = false; + } + SwLedOff(dev, pLed0); + SwLedOff(dev, pLed1); + break; + + default: + break; + } + + RT_TRACE(COMP_LED, "Led0 %d, Led1 %d \n", pLed0->CurrLedState, pLed1->CurrLedState); +} + + + +void SwLedControlMode3(struct net_device *dev, LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed0 = &(priv->SwLed0); + PLED_8190 pLed1 = &(priv->SwLed1); + + switch(LedAction) + { + case LED_CTL_POWER_ON: + pLed0->CurrLedState = LED_ON; + SwLedOn(dev, pLed0); + pLed1->CurrLedState = LED_OFF; + SwLedOff(dev, pLed1); + break; + + case LED_CTL_TX: + case LED_CTL_RX: + if( pLed1->bLedBlinkInProgress == false ) + { + pLed1->bLedBlinkInProgress = true; + + pLed1->CurrLedState = LED_BLINK_RUNTOP; + pLed1->BlinkTimes = 2; + + if( pLed1->bLedOn ) + pLed1->BlinkingLedState = LED_OFF; + else + pLed1->BlinkingLedState = LED_ON; + + mod_timer(&(pLed1->BlinkTimer), jiffies + MSECS(LED_RunTop_BLINK_INTERVAL)); + } + break; + + case LED_CTL_POWER_OFF: + pLed0->CurrLedState = LED_OFF; + pLed1->CurrLedState = LED_OFF; + if(pLed0->bLedBlinkInProgress) + { + del_timer_sync(&(pLed0->BlinkTimer)); + pLed0->bLedBlinkInProgress = false; + } + if(pLed1->bLedBlinkInProgress) + { + del_timer_sync(&(pLed1->BlinkTimer)); + pLed1->bLedBlinkInProgress = false; + } + SwLedOff(dev, pLed0); + SwLedOff(dev, pLed1); + break; + + default: + break; + } + + RT_TRACE(COMP_LED, "Led0 %d, Led1 %d \n", pLed0->CurrLedState, pLed1->CurrLedState); +} + + +void SwLedControlMode4(struct net_device *dev, LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed0 = &(priv->SwLed0); + PLED_8190 pLed1 = &(priv->SwLed1); + + switch(LedAction) + { + case LED_CTL_POWER_ON: + pLed1->CurrLedState = LED_ON; + SwLedOn(dev, pLed1); + pLed0->CurrLedState = LED_OFF; + SwLedOff(dev, pLed0); + break; + + case LED_CTL_TX: + case LED_CTL_RX: + if( pLed0->bLedBlinkInProgress == false ) + { + pLed0->bLedBlinkInProgress = true; + + pLed0->CurrLedState = LED_BLINK_RUNTOP; + pLed0->BlinkTimes = 2; + + if( pLed0->bLedOn ) + pLed0->BlinkingLedState = LED_OFF; + else + pLed0->BlinkingLedState = LED_ON; + + mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_RunTop_BLINK_INTERVAL)); + } + break; + + case LED_CTL_POWER_OFF: + pLed0->CurrLedState = LED_OFF; + pLed1->CurrLedState = LED_OFF; + if(pLed0->bLedBlinkInProgress) + { + del_timer_sync(&(pLed0->BlinkTimer)); + pLed0->bLedBlinkInProgress = false; + } + if(pLed1->bLedBlinkInProgress) + { + del_timer_sync(&(pLed1->BlinkTimer)); + pLed1->bLedBlinkInProgress = false; + } + SwLedOff(dev, pLed0); + SwLedOff(dev, pLed1); + break; + + default: + break; + } + + RT_TRACE(COMP_LED, "Led0 %d, Led1 %d \n", pLed0->CurrLedState, pLed1->CurrLedState); +} + +void SwLedControlMode5(struct net_device *dev, LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed0 = &(priv->SwLed0); + PLED_8190 pLed1 = &(priv->SwLed1); + switch(LedAction) + { + case LED_CTL_POWER_ON: + case LED_CTL_START_TO_LINK: + case LED_CTL_NO_LINK: + pLed1->CurrLedState = LED_OFF; + SwLedOff(dev, pLed1); + + + if( pLed0->bLedSlowBlinkInProgress == false ) + { + pLed0->bLedSlowBlinkInProgress = true; + pLed0->CurrLedState = LED_BLINK_SLOWLY; + if( pLed0->bLedOn ) + pLed0->BlinkingLedState = LED_OFF; + else + pLed0->BlinkingLedState = LED_ON; + mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_NETTRONIX)); + } + + break; + + case LED_CTL_TX: + case LED_CTL_RX: + pLed1->CurrLedState = LED_ON; + SwLedOn(dev, pLed1); + + if( pLed0->bLedBlinkInProgress == false ) + { + del_timer_sync(&(pLed0->BlinkTimer)); + pLed0->bLedSlowBlinkInProgress = false; + pLed0->bLedBlinkInProgress = true; + pLed0->CurrLedState = LED_BLINK_NORMAL; + pLed0->BlinkTimes = 2; + + if( pLed0->bLedOn ) + pLed0->BlinkingLedState = LED_OFF; + else + pLed0->BlinkingLedState = LED_ON; + mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL_NETTRONIX)); + } + break; + + case LED_CTL_LINK: + pLed1->CurrLedState = LED_ON; + SwLedOn(dev, pLed1); + + if( pLed0->bLedSlowBlinkInProgress == false ) + { + pLed0->bLedSlowBlinkInProgress = true; + pLed0->CurrLedState = LED_BLINK_SLOWLY; + if( pLed0->bLedOn ) + pLed0->BlinkingLedState = LED_OFF; + else + pLed0->BlinkingLedState = LED_ON; + mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_NETTRONIX)); + } + break; + + + case LED_CTL_POWER_OFF: + pLed0->CurrLedState = LED_OFF; + pLed1->CurrLedState = LED_OFF; + if( pLed0->bLedSlowBlinkInProgress == true ) + { + del_timer_sync(&(pLed0->BlinkTimer)); + pLed0->bLedSlowBlinkInProgress = false; + } + if(pLed0->bLedBlinkInProgress == true) + { + del_timer_sync(&(pLed0->BlinkTimer)); + pLed0->bLedBlinkInProgress = false; + } + SwLedOff(dev, pLed0); + SwLedOff(dev, pLed1); + break; + + default: + break; + } + + +} + +void SwLedControlMode6(struct net_device *dev, LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed0 = &(priv->SwLed0); + PLED_8190 pLed1 = &(priv->SwLed1); + + + switch(LedAction) + { + case LED_CTL_POWER_ON: + case LED_CTL_START_TO_LINK: + case LED_CTL_NO_LINK: + case LED_CTL_LINK: + case LED_CTL_SITE_SURVEY: + pLed1->CurrLedState = LED_OFF; + SwLedOff(dev, pLed1); + + if( pLed0->bLedSlowBlinkInProgress == false ) + { + pLed0->bLedSlowBlinkInProgress = true; + pLed0->CurrLedState = LED_BLINK_SLOWLY; + if( pLed0->bLedOn ) + pLed0->BlinkingLedState = LED_OFF; + else + pLed0->BlinkingLedState = LED_ON; + mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET)); + } + break; + + case LED_CTL_TX: + case LED_CTL_RX: + pLed1->CurrLedState = LED_OFF; + SwLedOff(dev, pLed1); + if( pLed0->bLedBlinkInProgress == false ) + { + del_timer_sync(&(pLed0->BlinkTimer)); + pLed0->bLedSlowBlinkInProgress = false; + pLed0->bLedBlinkInProgress = true; + pLed0->CurrLedState = LED_BLINK_NORMAL; + pLed0->BlinkTimes = 2; + if( pLed0->bLedOn ) + pLed0->BlinkingLedState = LED_OFF; + else + pLed0->BlinkingLedState = LED_ON; + mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL_PORNET)); + } + break; + + case LED_CTL_POWER_OFF: + pLed1->CurrLedState = LED_OFF; + SwLedOff(dev, pLed1); + + pLed0->CurrLedState = LED_OFF; + if( pLed0->bLedSlowBlinkInProgress == true ) + { + del_timer_sync(&(pLed0->BlinkTimer)); + pLed0->bLedSlowBlinkInProgress = false; + } + if(pLed0->bLedBlinkInProgress == true) + { + del_timer_sync(&(pLed0->BlinkTimer)); + pLed0->bLedBlinkInProgress = false; + } + SwLedOff(dev, pLed0); + break; + + default: + break; + + } +} + + +void SwLedControlMode7(struct net_device *dev, LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed0 = &(priv->SwLed0); + + switch(LedAction) + { + case LED_CTL_POWER_ON: + case LED_CTL_LINK: + case LED_CTL_NO_LINK: + SwLedOn(dev, pLed0); + break; + + case LED_CTL_POWER_OFF: + SwLedOff(dev, pLed0); + break; + + default: + break; + + } +} + +void +SwLedControlMode8(struct net_device *dev, LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed = &(priv->SwLed0); + + switch(LedAction) + { + case LED_CTL_TX: + case LED_CTL_RX: + if( pLed->bLedBlinkInProgress == false && priv->rtllib->state == RTLLIB_LINKED) + { + pLed->bLedBlinkInProgress = true; + + pLed->CurrLedState = LED_BLINK_NORMAL; + pLed->BlinkTimes = 2; + + if( pLed->bLedOn ) + pLed->BlinkingLedState = LED_OFF; + else + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL)); + } + break; + + case LED_CTL_SITE_SURVEY: + if( pLed->bLedBlinkInProgress == false ) + { + pLed->bLedBlinkInProgress = true; + pLed->CurrLedState = LED_SCAN_BLINK; + pLed->BlinkTimes = 2; + + if( pLed->bLedOn ) + { + pLed->BlinkingLedState = LED_OFF; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL)); + } + else + { + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM8_BLINK_OFF_INTERVAL)); + } + } + else if(pLed->CurrLedState != LED_SCAN_BLINK) + { + del_timer_sync(&(pLed->BlinkTimer)); + pLed->CurrLedState = LED_SCAN_BLINK; + pLed->BlinkTimes = 2; + + if( pLed->bLedOn ) + { + pLed->BlinkingLedState = LED_OFF; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL)); + } + else + { + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM8_BLINK_OFF_INTERVAL)); + } + } + break; + + case LED_CTL_POWER_ON: + case LED_CTL_NO_LINK: + if( pLed->bLedBlinkInProgress == false ) + { + pLed->bLedBlinkInProgress = true; + + pLed->CurrLedState = LED_NO_LINK_BLINK; + pLed->BlinkTimes = 24; + + if( pLed->bLedOn ) + { + pLed->BlinkingLedState = LED_OFF; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL)); + } + else + { + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM8_BLINK_OFF_INTERVAL)); + } + } + else if(pLed->CurrLedState != LED_SCAN_BLINK && pLed->CurrLedState != LED_NO_LINK_BLINK) + { + pLed->CurrLedState = LED_NO_LINK_BLINK; + pLed->BlinkTimes = 24; + + if( pLed->bLedOn ) + { + pLed->BlinkingLedState = LED_OFF; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL)); + } + else + { + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM8_BLINK_OFF_INTERVAL)); + } + } + break; + + case LED_CTL_LINK: + pLed->CurrLedState = LED_ON; + if(pLed->bLedBlinkInProgress) + { + del_timer_sync(&(pLed->BlinkTimer)); + pLed->bLedBlinkInProgress = false; + } + SwLedOn(dev, pLed); + break; + + case LED_CTL_POWER_OFF: + pLed->CurrLedState = LED_OFF; + if(pLed->bLedBlinkInProgress) + { + del_timer_sync(&(pLed->BlinkTimer)); + pLed->bLedBlinkInProgress = false; + } + SwLedOff(dev, pLed); + break; + + default: + break; + } +} + +void +SwLedControlMode9(struct net_device *dev, LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed = &(priv->SwLed0); + + switch(LedAction) + { + case LED_CTL_TX: + case LED_CTL_RX: + if( pLed->bLedBlinkInProgress == false ) + { + pLed->bLedBlinkInProgress = true; + + pLed->CurrLedState = LED_BLINK_NORMAL; + pLed->BlinkTimes = 2; + + if( pLed->bLedOn ) + pLed->BlinkingLedState = LED_OFF; + else + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL)); + } + break; + + case LED_CTL_SITE_SURVEY: + if(priv->rtllib->LinkDetectInfo.bBusyTraffic && priv->rtllib->state == RTLLIB_LINKED) + ; + else + { + if( pLed->bLedBlinkInProgress == true ) + del_timer_sync(&(pLed->BlinkTimer)); + else + pLed->bLedBlinkInProgress = true; + + pLed->CurrLedState = LED_SCAN_BLINK; + pLed->BlinkTimes = 24; + + if( pLed->bLedOn ) + { + pLed->BlinkingLedState = LED_OFF; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL)); + } + else + { + pLed->BlinkingLedState = LED_ON; + mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL)); + } + } + break; + + case LED_CTL_POWER_ON: + case LED_CTL_NO_LINK: + case LED_CTL_LINK: + if( pLed->bLedBlinkInProgress == false ) + { + pLed->CurrLedState = LED_ON; + SwLedOn(dev, pLed); + } + break; + + case LED_CTL_POWER_OFF: + pLed->CurrLedState = LED_OFF; + if(pLed->bLedBlinkInProgress) + { + del_timer_sync(&(pLed->BlinkTimer)); + pLed->bLedBlinkInProgress = false; + } + SwLedOff(dev, pLed); + break; + + default: + break; + } + + RT_TRACE(COMP_LED, "LED9 CurrLedState %d\n", pLed->CurrLedState); + +} + +void +SwLedControlMode10(struct net_device *dev, LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed0 = &(priv->SwLed0); + + switch(LedAction) + { + case LED_CTL_LINK: + SwLedOn(dev, pLed0); + break; + + case LED_CTL_POWER_ON: + case LED_CTL_NO_LINK: + case LED_CTL_POWER_OFF: + SwLedOff(dev, pLed0); + break; + + default: + break; + } +} + +void LedControl8192SE(struct net_device *dev, LED_CTL_MODE LedAction) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if(IS_NIC_DOWN(priv)) + return; + +#ifdef TO_DO_LIST + if(Adapter->bInHctTest) + return; +#endif + + if( priv->rtllib->eRFPowerState != eRfOn && + (LedAction == LED_CTL_TX || LedAction == LED_CTL_RX || + LedAction == LED_CTL_SITE_SURVEY || + LedAction == LED_CTL_LINK || + LedAction == LED_CTL_NO_LINK|| + LedAction == LED_CTL_START_TO_LINK || + LedAction == LED_CTL_POWER_ON) ) + { + return; + } + + RT_TRACE(COMP_LED, "LedAction %d, \n", LedAction); + + switch(priv->LedStrategy) + { + case SW_LED_MODE0: + break; + case SW_LED_MODE1: + break; + case SW_LED_MODE2: + break; + case SW_LED_MODE3: + break; + case SW_LED_MODE4: + break; + case SW_LED_MODE5: + break; + + case SW_LED_MODE6: + break; + + case SW_LED_MODE7: + SwLedControlMode7(dev, LedAction); + break; + case SW_LED_MODE8: + SwLedControlMode8(dev, LedAction); + break; + + case SW_LED_MODE9: + SwLedControlMode9(dev, LedAction); + break; + case SW_LED_MODE10: + SwLedControlMode10(dev, LedAction); + break; + + default: + break; + } +} + +#ifdef TO_DO_LIST +#ifdef NDIS50_MINIPORT +void LedBlinkTimerStallCheck(struct net_device *dev) +{ +} + + +void DoLedTimerStallCheck(PLED_8190 pLed) +{ +} +#endif +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_def.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_def.h @@ -0,0 +1,756 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef R8192SE_DEF_H +#define R8192SE_DEF_H + +#include +#include "../rtllib/rtllib_endianfree.h" + +#define HAL_RETRY_LIMIT_INFRA 48 +#define HAL_RETRY_LIMIT_AP_ADHOC 7 + +#define HAL_DM_DIG_DISABLE BIT0 +#define HAL_DM_HIPWR_DISABLE BIT1 + +#define RX_DESC_SIZE 24 +#define RX_DRV_INFO_SIZE_UNIT 8 + + +#define TX_DESC_SIZE 32 + +#define SET_TX_DESC_PKT_SIZE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 0, 16, __Value) +#define SET_TX_DESC_OFFSET(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 16, 8, __Value) +#define SET_TX_DESC_TYPE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 24, 2, __Value) +#define SET_TX_DESC_LAST_SEG(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 26, 1, __Value) +#define SET_TX_DESC_FIRST_SEG(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 27, 1, __Value) +#define SET_TX_DESC_LINIP(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 28, 1, __Value) +#define SET_TX_DESC_AMSDU(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 29, 1, __Value) +#define SET_TX_DESC_GREEN_FIELD(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 30, 1, __Value) +#define SET_TX_DESC_OWN(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 31, 1, __Value) + +#define SET_TX_DESC_MACID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 0, 5, __Value) +#define SET_TX_DESC_MORE_DATA(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 5, 1, __Value) +#define SET_TX_DESC_MORE_FRAG(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 6, 1, __Value) +#define SET_TX_DESC_PIFS(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 7, 1, __Value) +#define SET_TX_DESC_QUEUE_SEL(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 8, 5, __Value) +#define SET_TX_DESC_ACK_POLICY(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 13, 2, __Value) +#define SET_TX_DESC_NO_ACM(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 15, 1, __Value) +#define SET_TX_DESC_NON_QOS(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 16, 1, __Value) +#define SET_TX_DESC_KEY_ID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 17, 2, __Value) +#define SET_TX_DESC_OUI(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 19, 1, __Value) +#define SET_TX_DESC_PKT_TYPE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 20, 1, __Value) +#define SET_TX_DESC_EN_DESC_ID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 21, 1, __Value) +#define SET_TX_DESC_SEC_TYPE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 22, 2, __Value) +#define SET_TX_DESC_WDS(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 24, 1, __Value) +#define SET_TX_DESC_HTC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 25, 1, __Value) +#define SET_TX_DESC_PKT_OFFSET(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 26, 5, __Value) +#define SET_TX_DESC_HWPC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 27, 1, __Value) + +#define SET_TX_DESC_DATA_RETRY_LIMIT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 0, 6, __Value) +#define SET_TX_DESC_RETRY_LIMIT_ENABLE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 6, 1, __Value) +#define SET_TX_DESC_TSFL(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 7, 5, __Value) +#define SET_TX_DESC_RTS_RETRY_COUNT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 12, 6, __Value) +#define SET_TX_DESC_DATA_RETRY_COUNT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 18, 6, __Value) +#define SET_TX_DESC_RSVD_MACID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(((__pTxDesc) + 8), 24, 5, __Value) +#define SET_TX_DESC_AGG_ENABLE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 29, 1, __Value) +#define SET_TX_DESC_AGG_BREAK(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 30, 1, __Value) +#define SET_TX_DESC_OWN_MAC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 31, 1, __Value) + +#define SET_TX_DESC_NEXT_HEAP_PAGE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+12, 0, 8, __Value) +#define SET_TX_DESC_TAIL_PAGE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+12, 8, 8, __Value) +#define SET_TX_DESC_SEQ(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+12, 16, 12, __Value) +#define SET_TX_DESC_FRAG(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+12, 28, 4, __Value) + +#define SET_TX_DESC_RTS_RATE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 0, 6, __Value) +#define SET_TX_DESC_DISABLE_RTS_FB(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 6, 1, __Value) +#define SET_TX_DESC_RTS_RATE_FB_LIMIT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 7, 4, __Value) +#define SET_TX_DESC_CTS_ENABLE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 11, 1, __Value) +#define SET_TX_DESC_RTS_ENABLE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 12, 1, __Value) +#define SET_TX_DESC_RA_BRSR_ID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 13, 3, __Value) +#define SET_TX_DESC_TXHT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 16, 1, __Value) +#define SET_TX_DESC_TX_SHORT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 17, 1, __Value) +#define SET_TX_DESC_TX_BANDWIDTH(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 18, 1, __Value) +#define SET_TX_DESC_TX_SUB_CARRIER(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 19, 2, __Value) +#define SET_TX_DESC_TX_STBC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 21, 2, __Value) +#define SET_TX_DESC_TX_REVERSE_DIRECTION(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 23, 1, __Value) +#define SET_TX_DESC_RTS_HT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 24, 1, __Value) +#define SET_TX_DESC_RTS_SHORT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 25, 1, __Value) +#define SET_TX_DESC_RTS_BANDWIDTH(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 26, 1, __Value) +#define SET_TX_DESC_RTS_SUB_CARRIER(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 27, 2, __Value) +#define SET_TX_DESC_RTS_STBC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 29, 2, __Value) +#define SET_TX_DESC_USER_RATE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 31, 1, __Value) + +#define SET_TX_DESC_PACKET_ID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+20, 0, 9, __Value) +#define SET_TX_DESC_TX_RATE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+20, 9, 6, __Value) +#define SET_TX_DESC_DISABLE_FB(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+20, 15, 1, __Value) +#define SET_TX_DESC_DATA_RATE_FB_LIMIT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+20, 16, 5, __Value) +#define SET_TX_DESC_TX_AGC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+20, 21, 11, __Value) + +#define SET_TX_DESC_IP_CHECK_SUM(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+24, 0, 16, __Value) +#define SET_TX_DESC_TCP_CHECK_SUM(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+24, 16, 16, __Value) + +#define SET_TX_DESC_TX_BUFFER_SIZE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+28, 0, 16, __Value) +#define SET_TX_DESC_IP_HEADER_OFFSET(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+28, 16, 8, __Value) +#define SET_TX_DESC_TCP_ENABLE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+28, 31, 1, __Value) + +#define SET_TX_DESC_TX_BUFFER_ADDRESS(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+32, 0, 32, __Value) + + +#define TX_DESC_NEXT_DESC_OFFSET 36 +#define CLEAR_PCI_TX_DESC_CONTENT(__pTxDesc, _size) \ + { \ + if(_size > TX_DESC_NEXT_DESC_OFFSET) \ + memset((void*)__pTxDesc, 0, TX_DESC_NEXT_DESC_OFFSET); \ + else \ + memset((void*)__pTxDesc, 0, _size); \ + if(_size > (TX_DESC_NEXT_DESC_OFFSET + 4)) \ + memset((void*)(__pTxDesc + (TX_DESC_NEXT_DESC_OFFSET + 4)), 0, (_size - TX_DESC_NEXT_DESC_OFFSET)); \ + } + +#define C2H_RX_CMD_HDR_LEN 8 +#define GET_C2H_CMD_CMD_LEN(__pRxHeader) LE_BITS_TO_4BYTE((__pRxHeader), 0, 16) +#define GET_C2H_CMD_ELEMENT_ID(__pRxHeader) LE_BITS_TO_4BYTE((__pRxHeader), 16, 8) +#define GET_C2H_CMD_CMD_SEQ(__pRxHeader) LE_BITS_TO_4BYTE((__pRxHeader), 24, 7) +#define GET_C2H_CMD_CONTINUE(__pRxHeader) LE_BITS_TO_4BYTE((__pRxHeader), 31, 1) +#define GET_C2H_CMD_CONTENT(__pRxHeader) ((u8*)(__pRxHeader) + C2H_RX_CMD_HDR_LEN) + +#define GET_C2H_CMD_FEEDBACK_ELEMENT_ID(__pCmdFBHeader) LE_BITS_TO_4BYTE((__pCmdFBHeader), 0, 8) +#define GET_C2H_CMD_FEEDBACK_CCX_LEN(__pCmdFBHeader) LE_BITS_TO_4BYTE((__pCmdFBHeader), 8, 8) +#define GET_C2H_CMD_FEEDBACK_CCX_CMD_CNT(__pCmdFBHeader) LE_BITS_TO_4BYTE((__pCmdFBHeader), 16, 16) +#define GET_C2H_CMD_FEEDBACK_CCX_MAC_ID(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 0, 5) +#define GET_C2H_CMD_FEEDBACK_CCX_VALID(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 7, 1) +#define GET_C2H_CMD_FEEDBACK_CCX_RETRY_CNT(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 8, 5) +#define GET_C2H_CMD_FEEDBACK_CCX_TOK(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 15, 1) +#define GET_C2H_CMD_FEEDBACK_CCX_QSEL(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 16, 4) +#define GET_C2H_CMD_FEEDBACK_CCX_SEQ(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 20, 12) + + +#if 0 +#define BK_QUEUE 0 +#define BE_QUEUE 1 +#define VI_QUEUE 2 +#define VO_QUEUE 3 +#define BEACON_QUEUE 4 +#define TXCMD_QUEUE 5 +#define MGNT_QUEUE 6 +#define HIGH_QUEUE 7 +#define HCCA_QUEUE 8 + +#define LOW_QUEUE BE_QUEUE +#define NORMAL_QUEUE MGNT_QUEUE +#endif + +#define RX_MPDU_QUEUE 0 +#define RX_CMD_QUEUE 1 +#define RX_MAX_QUEUE 2 + + +typedef enum _rtl819x_loopback{ + RTL819X_NO_LOOPBACK = 0, + RTL819X_MAC_LOOPBACK = 1, + RTL819X_DMA_LOOPBACK = 2, + RTL819X_CCK_LOOPBACK = 3, +}rtl819x_loopback_e; + +#define RESET_DELAY_8185 20 + +#define RT_IBSS_INT_MASKS 0 + +#define DESC92S_RATE1M 0x00 +#define DESC92S_RATE2M 0x01 +#define DESC92S_RATE5_5M 0x02 +#define DESC92S_RATE11M 0x03 +#define DESC92S_RATE6M 0x04 +#define DESC92S_RATE9M 0x05 +#define DESC92S_RATE12M 0x06 +#define DESC92S_RATE18M 0x07 +#define DESC92S_RATE24M 0x08 +#define DESC92S_RATE36M 0x09 +#define DESC92S_RATE48M 0x0a +#define DESC92S_RATE54M 0x0b +#define DESC92S_RATEMCS0 0x0c +#define DESC92S_RATEMCS1 0x0d +#define DESC92S_RATEMCS2 0x0e +#define DESC92S_RATEMCS3 0x0f +#define DESC92S_RATEMCS4 0x10 +#define DESC92S_RATEMCS5 0x11 +#define DESC92S_RATEMCS6 0x12 +#define DESC92S_RATEMCS7 0x13 +#define DESC92S_RATEMCS8 0x14 +#define DESC92S_RATEMCS9 0x15 +#define DESC92S_RATEMCS10 0x16 +#define DESC92S_RATEMCS11 0x17 +#define DESC92S_RATEMCS12 0x18 +#define DESC92S_RATEMCS13 0x19 +#define DESC92S_RATEMCS14 0x1a +#define DESC92S_RATEMCS15 0x1b +#define DESC92S_RATEMCS15_SG 0x1c +#define DESC92S_RATEMCS32 0x20 + +#define SHORT_SLOT_TIME 9 +#define NON_SHORT_SLOT_TIME 20 + + +#define MAX_LINES_HWCONFIG_TXT 1000 +#define MAX_BYTES_LINE_HWCONFIG_TXT 256 + +#define SW_THREE_WIRE 0 +#define HW_THREE_WIRE 2 + +#define BT_DEMO_BOARD 0 +#define BT_QA_BOARD 1 +#define BT_FPGA 2 + +#define Rx_Smooth_Factor 20 + +#define QSLT_BK 0x2 +#define QSLT_BE 0x0 +#define QSLT_VI 0x5 +#define QSLT_VO 0x7 +#define QSLT_BEACON 0x10 +#define QSLT_HIGH 0x11 +#define QSLT_MGNT 0x12 +#define QSLT_CMD 0x13 + +#define NUM_OF_FIRMWARE_QUEUE 10 +#define NUM_OF_PAGES_IN_FW 0x100 +#define NUM_OF_PAGE_IN_FW_QUEUE_BK 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_BE 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_VI 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_VO 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_HCCA 0x0 +#define NUM_OF_PAGE_IN_FW_QUEUE_CMD 0x0 +#define NUM_OF_PAGE_IN_FW_QUEUE_MGNT 0x02 +#define NUM_OF_PAGE_IN_FW_QUEUE_HIGH 0x02 +#define NUM_OF_PAGE_IN_FW_QUEUE_BCN 0x2 +#define NUM_OF_PAGE_IN_FW_QUEUE_PUB 0xA1 + +#define NUM_OF_PAGE_IN_FW_QUEUE_BK_DTM 0x026 +#define NUM_OF_PAGE_IN_FW_QUEUE_BE_DTM 0x048 +#define NUM_OF_PAGE_IN_FW_QUEUE_VI_DTM 0x048 +#define NUM_OF_PAGE_IN_FW_QUEUE_VO_DTM 0x026 +#define NUM_OF_PAGE_IN_FW_QUEUE_PUB_DTM 0x00 + +#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0 +#define HAL_PRIME_CHNL_OFFSET_LOWER 1 +#define HAL_PRIME_CHNL_OFFSET_UPPER 2 + + + +#define MAX_SILENT_RESET_RX_SLOT_NUM 10 +typedef enum tag_Rf_OpType +{ + RF_OP_By_SW_3wire = 0, + RF_OP_By_FW, + RF_OP_MAX +}RF_OpType_E; + + +typedef enum _POWER_SAVE_MODE +{ + POWER_SAVE_MODE_ACTIVE, + POWER_SAVE_MODE_SAVE, +}POWER_SAVE_MODE; + +typedef enum _INTERFACE_SELECT_8190PCI{ + INTF_SEL1_MINICARD = 0, + INTF_SEL0_PCIE = 1, + INTF_SEL2_RSV = 2, + INTF_SEL3_RSV = 3, +} INTERFACE_SELECT_8190PCI, *PINTERFACE_SELECT_8190PCI; + + +typedef struct _BB_REGISTER_DEFINITION{ + u32 rfintfs; + u32 rfintfi; + u32 rfintfo; + u32 rfintfe; + u32 rf3wireOffset; + u32 rfLSSI_Select; + u32 rfTxGainStage; + u32 rfHSSIPara1; + u32 rfHSSIPara2; + u32 rfSwitchControl; + u32 rfAGCControl1; + u32 rfAGCControl2; + u32 rfRxIQImbalance; + u32 rfRxAFE; + u32 rfTxIQImbalance; + u32 rfTxAFE; + u32 rfLSSIReadBack; + u32 rfLSSIReadBackPi; +}BB_REGISTER_DEFINITION_T, *PBB_REGISTER_DEFINITION_T; + + + + +typedef struct _rx_fwinfo_8192s{ + + /*u32 gain_0:7; + u32 trsw_0:1; + u32 gain_1:7; + u32 trsw_1:1; + u32 gain_2:7; + u32 trsw_2:1; + u32 gain_3:7; + u32 trsw_3:1; */ + u8 gain_trsw[4]; + + /*u32 pwdb_all:8; + u32 cfosho_0:8; + u32 cfosho_1:8; + u32 cfosho_2:8;*/ + u8 pwdb_all; + u8 cfosho[4]; + + /*u32 cfosho_3:8; + u32 cfotail_0:8; + u32 cfotail_1:8; + u32 cfotail_2:8;*/ + u8 cfotail[4]; + + /*u32 cfotail_3:8; + u32 rxevm_0:8; + u32 rxevm_1:8; + u32 rxsnr_0:8;*/ + s8 rxevm[2]; + s8 rxsnr[4]; + + /*u32 rxsnr_1:8; + u32 rxsnr_2:8; + u32 rxsnr_3:8; + u32 pdsnr_0:8;*/ + u8 pdsnr[2]; + + /*u32 pdsnr_1:8; + u32 csi_current_0:8; + u32 csi_current_1:8; + u32 csi_target_0:8;*/ + u8 csi_current[2]; + u8 csi_target[2]; + + /*u32 csi_target_1:8; + u32 sigevm:8; + u32 max_ex_pwr:8; + u32 ex_intf_flag:1; + u32 sgi_en:1; + u32 rxsc:2; + u32 reserve:4;*/ + u8 sigevm; + u8 max_ex_pwr; + u8 ex_intf_flag:1; + u8 sgi_en:1; + u8 rxsc:2; + u8 reserve:4; + +}rx_fwinfo, *prx_fwinfo; + +typedef struct _LOG_INTERRUPT_8190 +{ + u32 nIMR_COMDOK; + u32 nIMR_MGNTDOK; + u32 nIMR_HIGH; + u32 nIMR_VODOK; + u32 nIMR_VIDOK; + u32 nIMR_BEDOK; + u32 nIMR_BKDOK; + u32 nIMR_ROK; + u32 nIMR_RCOK; + u32 nIMR_TBDOK; + u32 nIMR_BDOK; + u32 nIMR_RXFOVW; +} LOG_INTERRUPT_8190_T, *PLOG_INTERRUPT_8190_T; + +typedef struct _phy_cck_rx_status_report_819xpci +{ + u8 adc_pwdb_X[4]; + u8 sq_rpt; + u8 cck_agc_rpt; +}phy_sts_cck_819xpci_t, phy_sts_cck_8192s_t; + +#define PHY_RSSI_SLID_WIN_MAX 100 +#define PHY_LINKQUALITY_SLID_WIN_MAX 20 +#define PHY_Beacon_RSSI_SLID_WIN_MAX 10 + +typedef struct _tx_desc_8192se{ + + u32 PktSize:16; + u32 Offset:8; + u32 Type:2; + u32 LastSeg:1; + u32 FirstSeg:1; + u32 LINIP:1; + u32 AMSDU:1; + u32 GF:1; + u32 OWN:1; + + u32 MacID:5; + u32 MoreData:1; + u32 MoreFrag:1; + u32 PIFS:1; + u32 QueueSel:5; + u32 AckPolicy:2; + u32 NoACM:1; + u32 NonQos:1; + u32 KeyID:2; + u32 OUI:1; + u32 PktType:1; + u32 EnDescID:1; + u32 SecType:2; + u32 HTC:1; + u32 WDS:1; + u32 PktOffset:5; + u32 HWPC:1; + + u32 DataRetryLmt:6; + u32 RetryLmtEn:1; + u32 TSFL:5; + u32 RTSRC:6; + u32 DATARC:6; + u32 Rsvd_MacID:5; + u32 AggEn:1; + u32 BK:1; + u32 OwnMAC:1; + + u32 NextHeadPage:8; + u32 TailPage:8; + u32 Seq:12; + u32 Frag:4; + + u32 RTSRate:6; + u32 DisRTSFB:1; + u32 RTSRateFBLmt:4; + u32 CTS2Self:1; + u32 RTSEn:1; + u32 RaBRSRID:3; + u32 TXHT:1; + u32 TxShort:1; + u32 TxBw:1; + u32 TXSC:2; + u32 STBC:2; + u32 RD:1; + u32 RTSHT:1; + u32 RTSShort:1; + u32 RTSBW:1; + u32 RTSSC:2; + u32 RTSSTBC:2; + u32 UserRate:1; + + u32 PktID:9; + u32 TxRate:6; + u32 DISFB:1; + u32 DataRateFBLmt:5; + u32 TxAGC:11; + + u32 IPChkSum:16; + u32 TCPChkSum:16; + + u32 TxBufferSize:16; + u32 IPHdrOffset:8; + u32 Rsvd3:7; + u32 TCPEn:1; + + u32 TxBuffAddr; + + u32 NextDescAddress; + + u32 Reserve_Pass_92S_PCIE_MM_Limit[6]; + +} tx_desc, *ptx_desc; + + +typedef struct _tx_desc_cmd_8192se{ + u32 PktSize:16; + u32 Offset:8; + u32 Rsvd0:2; + u32 FirstSeg:1; + u32 LastSeg:1; + u32 LINIP:1; + u32 Rsvd1:2; + u32 OWN:1; + + u32 Rsvd2; + u32 Rsvd3; + u32 Rsvd4; + u32 Rsvd5; + u32 Rsvd6; + u32 Rsvd7; + + u32 TxBufferSize:16; + u32 Rsvd8:16; + + u32 TxBufferAddr; + + u32 NextTxDescAddress; + + u32 Reserve_Pass_92S_PCIE_MM_Limit[6]; + +}tx_desc_cmd, *ptx_desc_cmd; + + +typedef struct _tx_status_desc_8192se{ + + u32 PktSize:16; + u32 Offset:8; + u32 Type:2; + u32 LastSeg:1; + u32 FirstSeg:1; + u32 LINIP:1; + u32 AMSDU:1; + u32 GF:1; + u32 OWN:1; + + u32 MacID:5; + u32 MoreData:1; + u32 MoreFrag:1; + u32 PIFS:1; + u32 QueueSel:5; + u32 AckPolicy:2; + u32 NoACM:1; + u32 NonQos:1; + u32 KeyID:2; + u32 OUI:1; + u32 PktType:1; + u32 EnDescID:1; + u32 SecType:2; + u32 HTC:1; + u32 WDS:1; + u32 PktOffset:5; + u32 HWPC:1; + + u32 DataRetryLmt:6; + u32 RetryLmtEn:1; + u32 TSFL:5; + u32 RTSRC:6; + u32 DATARC:6; + u32 Rsvd1:5; + u32 AggEn:1; + u32 BK:1; + u32 OwnMAC:1; + + u32 NextHeadPage:8; + u32 TailPage:8; + u32 Seq:12; + u32 Frag:4; + + u32 RTSRate:6; + u32 DisRTSFB:1; + u32 RTSRateFBLmt:4; + u32 CTS2Self:1; + u32 RTSEn:1; + u32 RaBRSRID:3; + u32 TXHT:1; + u32 TxShort:1; + u32 TxBw:1; + u32 TXSC:2; + u32 STBC:2; + u32 RD:1; + u32 RTSHT:1; + u32 RTSShort:1; + u32 RTSBW:1; + u32 RTSSC:2; + u32 RTSSTBC:2; + u32 UserRate:1; + + u32 PktID:9; + u32 TxRate:6; + u32 DISFB:1; + u32 DataRateFBLmt:5; + u32 TxAGC:11; + + u32 IPChkSum:16; + u32 TCPChkSum:16; + + u32 TxBufferSize:16; + u32 IPHdrOffset:8; + u32 Rsvd2:7; + u32 TCPEn:1; + + u32 TxBufferAddr; + + u32 NextDescAddress; + + u32 Reserve_Pass_92S_PCIE_MM_Limit[6]; + +}tx_status_desc, *ptx_status_desc; + + +typedef struct _rx_desc_8192se{ + u32 Length:14; + u32 CRC32:1; + u32 ICVError:1; + u32 DrvInfoSize:4; + u32 Security:3; + u32 Qos:1; + u32 Shift:2; + u32 PHYStatus:1; + u32 SWDec:1; + u32 LastSeg:1; + u32 FirstSeg:1; + u32 EOR:1; + u32 OWN:1; + + u32 MACID:5; + u32 TID:4; + u32 HwRsvd:5; + u32 PAGGR:1; + u32 FAGGR:1; + u32 A1_FIT:4; + u32 A2_FIT:4; + u32 PAM:1; + u32 PWR:1; + u32 MoreData:1; + u32 MoreFrag:1; + u32 Type:2; + u32 MC:1; + u32 BC:1; + + u32 Seq:12; + u32 Frag:4; + u32 NextPktLen:14; + u32 NextIND:1; + u32 Rsvd:1; + + u32 RxMCS:6; + u32 RxHT:1; + u32 AMSDU:1; + u32 SPLCP:1; + u32 BandWidth:1; + u32 HTC:1; + u32 TCPChkRpt:1; + u32 IPChkRpt:1; + u32 TCPChkValID:1; + u32 HwPCErr:1; + u32 HwPCInd:1; + u32 IV0:16; + + u32 IV1; + + u32 TSFL; + + u32 BufferAddress; + + u32 NextRxDescAddress; + +#if 0 + u32 BA_SSN:12; + u32 BA_VLD:1; + u32 RSVD:19; +#endif + +} rx_desc, *prx_desc; + + + +typedef struct _rx_desc_status_8192se{ + u32 Length:14; + u32 CRC32:1; + u32 ICVError:1; + u32 DrvInfoSize:4; + u32 Security:3; + u32 Qos:1; + u32 Shift:2; + u32 PHYStatus:1; + u32 SWDec:1; + u32 LastSeg:1; + u32 FirstSeg:1; + u32 EOR:1; + u32 OWN:1; + + u32 MACID:5; + u32 TID:4; + u32 HwRsvd:5; + u32 PAGGR:1; + u32 FAGGR:1; + u32 A1_FIT:4; + u32 A2_FIT:4; + u32 PAM:1; + u32 PWR:1; + u32 MoreData:1; + u32 MoreFrag:1; + u32 Type:2; + u32 MC:1; + u32 BC:1; + + u32 Seq:12; + u32 Frag:4; + u32 NextPktLen:14; + u32 NextIND:1; + u32 Rsvd:1; + + u32 RxMCS:6; + u32 RxHT:1; + u32 AMSDU:1; + u32 SPLCP:1; + u32 BW:1; + u32 HTC:1; + u32 TCPChkRpt:1; + u32 IPChkRpt:1; + u32 TCPChkValID:1; + u32 HwPCErr:1; + u32 HwPCInd:1; + u32 IV0:16; + + u32 IV1; + + u32 TSFL; + + + u32 BufferAddress; + + u32 NextRxDescAddress; + +#if 0 + u32 BA_SSN:12; + u32 BA_VLD:1; + u32 RSVD:19; +#endif +}rx_desc_status, *prx_desc_status; + +typedef enum _HAL_FW_C2H_CMD_ID +{ + HAL_FW_C2H_CMD_Read_MACREG = 0, + HAL_FW_C2H_CMD_Read_BBREG = 1, + HAL_FW_C2H_CMD_Read_RFREG = 2, + HAL_FW_C2H_CMD_Read_EEPROM = 3, + HAL_FW_C2H_CMD_Read_EFUSE = 4, + HAL_FW_C2H_CMD_Read_CAM = 5, + HAL_FW_C2H_CMD_Get_BasicRate = 6, + HAL_FW_C2H_CMD_Get_DataRate = 7, + HAL_FW_C2H_CMD_Survey = 8 , + HAL_FW_C2H_CMD_SurveyDone = 9, + HAL_FW_C2H_CMD_JoinBss = 10, + HAL_FW_C2H_CMD_AddSTA = 11, + HAL_FW_C2H_CMD_DelSTA = 12, + HAL_FW_C2H_CMD_AtimDone = 13, + HAL_FW_C2H_CMD_TX_Report = 14, + HAL_FW_C2H_CMD_CCX_Report = 15, + HAL_FW_C2H_CMD_DTM_Report = 16, + HAL_FW_C2H_CMD_TX_Rate_Statistics = 17, + HAL_FW_C2H_CMD_C2HLBK = 18, + HAL_FW_C2H_CMD_C2HDBG = 19, + HAL_FW_C2H_CMD_C2HFEEDBACK = 20, + HAL_FW_C2H_CMD_BT_State = 25, + HAL_FW_C2H_CMD_BT_Service = 26, + HAL_FW_C2H_CMD_MAX +}HAL_FW_C2H_CMD_ID; + +#define HAL_FW_C2H_CMD_C2HFEEDBACK_CCX_PER_PKT_RPT 0x04 +#define HAL_FW_C2H_CMD_C2HFEEDBACK_DTM_TX_STATISTICS_RPT 0x05 +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.c @@ -0,0 +1,6302 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + +#ifdef RTL8192SE +#include "r8192S_hwimg.h" + +/*Created on 2010/ 4/12, 5:56*/ + +u8 Rtl8192SEFwImgArray[ImgArrayLength] = { +0x92,0x81,0x3e,0x70,0x30,0x00,0x00,0x00,0x08,0xc0,0x00,0x00,0x50,0x93,0x00,0x00, +0x30,0x00,0x00,0x00,0xc0,0x91,0x00,0x00,0x3e,0x00,0x13,0x00,0x04,0x09,0x09,0x44, +0x92,0x81,0x01,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x7f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x25,0xb0,0x1a,0x3c,0x80,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c,0x80,0x00,0x7b,0x37, +0x00,0x00,0x5b,0xaf,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c, +0x80,0x00,0x7b,0x37,0x00,0x00,0x5b,0xaf,0x01,0x80,0x1a,0x3c,0x64,0xb7,0x5a,0x27, +0x08,0x00,0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x04,0x00,0xa1,0xaf,0x08,0x00,0xa2,0xaf,0x0c,0x00,0xa3,0xaf,0x10,0x00,0xa4,0xaf, +0x14,0x00,0xa5,0xaf,0x18,0x00,0xa6,0xaf,0x1c,0x00,0xa7,0xaf,0x20,0x00,0xa8,0xaf, +0x24,0x00,0xa9,0xaf,0x28,0x00,0xaa,0xaf,0x2c,0x00,0xab,0xaf,0x30,0x00,0xac,0xaf, +0x34,0x00,0xad,0xaf,0x38,0x00,0xae,0xaf,0x3c,0x00,0xaf,0xaf,0x12,0x40,0x00,0x00, +0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0xb0,0xaf,0x44,0x00,0xb1,0xaf, +0x48,0x00,0xb2,0xaf,0x4c,0x00,0xb3,0xaf,0x50,0x00,0xb4,0xaf,0x54,0x00,0xb5,0xaf, +0x58,0x00,0xb6,0xaf,0x5c,0x00,0xb7,0xaf,0x60,0x00,0xb8,0xaf,0x64,0x00,0xb9,0xaf, +0x68,0x00,0xbc,0xaf,0x6c,0x00,0xbd,0xaf,0x70,0x00,0xbe,0xaf,0x74,0x00,0xbf,0xaf, +0x78,0x00,0xa8,0xaf,0x7c,0x00,0xa9,0xaf,0x80,0x00,0xaa,0xaf,0x71,0x2d,0x00,0x08, +0x21,0x20,0xa0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x25,0xb0,0x06,0x3c,0x00,0x80,0x02,0x3c,0xe8,0xff,0xbd,0x27,0x18,0x03,0xc3,0x34, +0x00,0x03,0x42,0x24,0x14,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x42,0xb0,0x03,0x3c, +0x03,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x02,0x80,0x0a,0x3c,0x02,0x80,0x10,0x3c, +0xff,0x00,0x42,0x30,0x00,0x46,0x02,0x00,0x10,0x00,0x42,0x30,0x13,0x00,0x40,0x10, +0x03,0x46,0x08,0x00,0xec,0x3d,0x42,0x8d,0x38,0x15,0x05,0x26,0xec,0x23,0xa4,0x94, +0x01,0x00,0x47,0x24,0x10,0x00,0x02,0x24,0xb0,0x03,0xc9,0x34,0x00,0x00,0x62,0xa0, +0x07,0x00,0x80,0x10,0x1c,0x03,0xc6,0x34,0xf0,0x23,0xa2,0x94,0xec,0x23,0xa0,0xa4, +0xf0,0x23,0xa0,0xa4,0x00,0x00,0x04,0x24,0x00,0x00,0xc2,0xa0,0x00,0x00,0x20,0xad, +0x01,0x00,0x82,0x24,0xec,0x3d,0x47,0xad,0xec,0x23,0xa2,0xa4,0x12,0x00,0x00,0x05, +0x42,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x38,0x15,0x04,0x26,0x18,0x0b,0x83,0x94,0x14,0x0b,0x85,0x94, +0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c, +0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34,0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4, +0x08,0x00,0xe0,0x03,0x14,0x0b,0x83,0xa4,0x80,0xff,0x03,0x24,0x03,0x00,0x42,0x34, +0x00,0x00,0x43,0xa0,0x0d,0x1e,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x38,0x15,0x04,0x26, +0x18,0x0b,0x83,0x94,0x14,0x0b,0x85,0x94,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f, +0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c,0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34, +0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4,0x08,0x00,0xe0,0x03,0x14,0x0b,0x83,0xa4, +0xff,0x00,0x84,0x30,0x0b,0x00,0x82,0x2c,0xff,0xff,0xe7,0x30,0x10,0x00,0xa8,0x93, +0x19,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00, +0x50,0x8e,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00, +0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x43,0xb0,0x02,0x3c,0x78,0x00,0x44,0x34, +0x07,0x00,0xe2,0x30,0x00,0x00,0x85,0xac,0x04,0x00,0x86,0xac,0x04,0x00,0x40,0x18, +0x00,0x00,0x00,0x00,0xf8,0xff,0xe2,0x30,0x08,0x00,0x42,0x24,0xff,0xff,0x47,0x30, +0x21,0x10,0xe8,0x00,0x00,0x80,0x03,0x3c,0x08,0x00,0x82,0xac,0x25,0x10,0x43,0x00, +0x08,0x00,0x82,0xac,0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x6c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c, +0x20,0x01,0x00,0x08,0x60,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08, +0x54,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x48,0x00,0x44,0x34, +0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x3c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c, +0x20,0x01,0x00,0x08,0x30,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08, +0x24,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x18,0x00,0x44,0x34, +0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x0c,0x00,0x44,0x34,0x20,0x01,0x00,0x08, +0x43,0xb0,0x04,0x3c,0x01,0x00,0x02,0x24,0x43,0xb0,0x03,0x3c,0x04,0x20,0x82,0x00, +0x88,0x00,0x65,0x34,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0xff,0x42,0x30, +0x05,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x00,0x00,0xa2,0x94, +0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x30,0x24,0x10,0x44,0x00,0xf5,0xff,0x40,0x1c, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c, +0x00,0x80,0x02,0x3c,0xd0,0xff,0xbd,0x27,0x18,0x03,0x03,0x35,0x7c,0x05,0x42,0x24, +0x00,0x00,0x62,0xac,0x28,0x00,0xb4,0xaf,0x20,0x00,0xb2,0xaf,0x18,0x00,0xb0,0xaf, +0x2c,0x00,0xbf,0xaf,0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,0x08,0x00,0xf3,0x8c, +0xff,0x00,0xc6,0x30,0x00,0x01,0x02,0x24,0x0c,0x00,0xf1,0x84,0x23,0x10,0x46,0x00, +0xff,0xff,0xa3,0x30,0xff,0xff,0x50,0x30,0xff,0x00,0x94,0x30,0xd0,0x03,0x08,0x35, +0x21,0x30,0xc5,0x00,0x21,0x20,0x80,0x02,0x21,0x28,0x60,0x02,0x21,0x38,0x00,0x02, +0x02,0x92,0x03,0x00,0x00,0x00,0x11,0xad,0x00,0x00,0x13,0xad,0x8f,0x01,0x00,0x08, +0x00,0x00,0x00,0x00,0x01,0x01,0x23,0x2a,0xff,0xff,0x22,0x32,0x21,0x98,0x70,0x02, +0x21,0x20,0x80,0x02,0x00,0x01,0x10,0x24,0x4d,0x01,0x00,0x0c,0x0b,0x80,0x43,0x00, +0xc0,0x10,0x12,0x00,0x28,0xb0,0x03,0x3c,0x21,0x10,0x43,0x00,0x00,0x00,0x45,0x90, +0x20,0x10,0x06,0x3c,0x21,0x20,0x80,0x02,0xff,0x00,0xb2,0x30,0x00,0x12,0x12,0x00, +0x21,0x30,0x46,0x00,0x21,0x28,0x60,0x02,0x21,0x38,0x00,0x02,0x10,0x01,0x00,0x0c, +0x10,0x00,0xa0,0xaf,0x23,0x18,0x30,0x02,0x00,0x8c,0x03,0x00,0x03,0x8c,0x11,0x00, +0xe8,0xff,0x20,0x1e,0x00,0x00,0x00,0x00,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0xc8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c, +0x25,0xb0,0x04,0x3c,0x20,0x00,0xb2,0xaf,0x38,0x15,0x52,0x24,0x00,0x80,0x02,0x3c, +0x18,0x03,0x83,0x34,0x78,0x06,0x42,0x24,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf, +0x30,0x00,0xbf,0xaf,0x2c,0x00,0xb5,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x00,0x00,0x62,0xac,0xb0,0x03,0x93,0x34,0x21,0xa0,0x40,0x02,0xdc,0x24,0x42,0x8e, +0x48,0x25,0x50,0x8e,0x21,0x20,0x00,0x00,0x00,0x00,0x62,0xae,0xe0,0x24,0x42,0xae, +0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,0x48,0x25,0x44,0x8e, +0x4c,0x25,0x43,0x8e,0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00, +0x0a,0x18,0x82,0x00,0x48,0x25,0x43,0xae,0x48,0x25,0x85,0x8e,0x00,0x00,0x00,0x00, +0x00,0x00,0x65,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02, +0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,0xff,0x00,0x15,0x24,0x21,0x20,0x00,0x00, +0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0x20,0x10,0x02,0x3c,0x40,0x00,0x07,0x24, +0x00,0x1a,0x11,0x00,0x21,0x18,0x62,0x00,0x05,0x00,0x35,0x12,0x21,0x30,0x60,0x00, +0x90,0x24,0x91,0xa2,0xdc,0x24,0x83,0xae,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x00,0x00,0x05,0x96,0x30,0x24,0x83,0x8e,0x2a,0xb0,0x02,0x3c,0x27,0x20,0x05,0x00, +0x01,0x00,0x46,0x34,0x21,0x10,0x65,0x00,0x2b,0x18,0x64,0x00,0x02,0x00,0x60,0x10, +0x00,0x00,0x00,0x00,0x30,0x24,0x82,0xae,0x04,0x00,0x04,0x8e,0x08,0x00,0x03,0x8e, +0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0x84,0x30,0x24,0x18,0x62,0x00, +0x00,0x26,0x04,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x00,0x40,0x04,0x3c,0xc0,0xff,0x02,0x24,0x25,0x18,0x64,0x00, +0x24,0x18,0x62,0x00,0x08,0x00,0x03,0xae,0x01,0x00,0x02,0x24,0x02,0x00,0x03,0x24, +0x00,0x00,0xc2,0xa0,0x00,0x00,0xc3,0xa0,0xbc,0xff,0x35,0x16,0x41,0xb0,0x03,0x3c, +0x08,0x0b,0x82,0x8e,0x30,0x00,0xbf,0x8f,0x00,0x38,0x42,0x34,0x00,0x00,0x62,0xac, +0x2c,0x00,0xb5,0x8f,0x08,0x0b,0x82,0xae,0x24,0x00,0xb3,0x8f,0x28,0x00,0xb4,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x38,0x00,0xbd,0x27,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,0xc0,0xff,0xbd,0x27, +0x18,0x03,0x83,0x34,0x04,0x08,0x42,0x24,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf, +0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x02,0x80,0x02,0x3c,0x38,0x15,0x52,0x24,0xb0,0x03,0x95,0x34,0x25,0x02,0x00,0x08, +0x21,0xf0,0x40,0x02,0x08,0x00,0x04,0xae,0x82,0x0b,0x82,0x92,0x00,0x00,0x00,0x00, +0x45,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c,0x09,0x00,0x42,0x34,0x01,0x00,0x03,0x24, +0x02,0x00,0x04,0x24,0x00,0x00,0x43,0xa0,0x00,0x00,0x44,0xa0,0x5a,0x00,0x36,0x12, +0x00,0x00,0x00,0x00,0xf4,0x24,0x42,0x8e,0x60,0x25,0x53,0x8e,0x01,0x00,0x04,0x24, +0x00,0x00,0xa2,0xae,0xf8,0x24,0x42,0xae,0x00,0x00,0xb3,0xae,0x4d,0x01,0x00,0x0c, +0x21,0xa0,0xc0,0x03,0x60,0x25,0x44,0x8e,0x64,0x25,0x43,0x8e,0x40,0x00,0x84,0x24, +0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x60,0x25,0x43,0xae, +0x60,0x25,0xc5,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0xa5,0xae,0x02,0x80,0x17,0x3c, +0xff,0xff,0x62,0x32,0x25,0x80,0x57,0x00,0x00,0x00,0xb0,0xae,0x0c,0x00,0x02,0x92, +0xff,0x00,0x16,0x24,0x01,0x00,0x04,0x24,0x00,0x00,0xa2,0xae,0x0c,0x00,0x11,0x92, +0x20,0x10,0x02,0x3c,0x40,0x00,0x07,0x24,0x00,0x1a,0x11,0x00,0x21,0x18,0x62,0x00, +0x05,0x00,0x36,0x12,0x21,0x30,0x60,0x00,0xf4,0x24,0xc3,0xaf,0x98,0x24,0xd1,0xa3, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x04,0x00,0x04,0x8e,0x08,0x00,0x03,0x8e, +0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0x84,0x30,0x24,0x18,0x62,0x00, +0x00,0x26,0x04,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0xc0,0xff,0x05,0x24, +0x82,0x11,0x03,0x00,0x24,0x20,0x65,0x00,0x01,0x00,0x42,0x30,0xbd,0xff,0x40,0x10, +0x04,0x00,0x84,0x34,0x08,0x00,0x03,0xae,0x82,0x0b,0x82,0x92,0x00,0x00,0x00,0x00, +0xbd,0xff,0x40,0x14,0x2a,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x01,0x00,0x03,0x24,0x82,0x0b,0x83,0xa2, +0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30, +0x25,0x10,0x57,0x00,0x02,0x00,0x43,0x94,0x00,0x00,0x00,0x00,0xff,0xc0,0x64,0x30, +0x00,0xc0,0x84,0x34,0x86,0x27,0x00,0x0c,0x83,0x0b,0x83,0xa2,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2a,0xb0,0x02,0x3c,0x09,0x00,0x42,0x34, +0x01,0x00,0x03,0x24,0x02,0x00,0x04,0x24,0x00,0x00,0x43,0xa0,0x00,0x00,0x44,0xa0, +0xa8,0xff,0x36,0x16,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x38,0x15,0x62,0x24, +0x08,0x0b,0x43,0x8c,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x38,0x63,0x34, +0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x83,0xac,0x08,0x00,0xe0,0x03, +0x08,0x0b,0x43,0xac,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,0xc0,0xff,0xbd,0x27, +0x18,0x03,0x83,0x34,0x54,0x0a,0x42,0x24,0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf, +0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf, +0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x16,0x3c, +0x38,0x15,0xd3,0x26,0xb0,0x03,0x94,0x34,0x02,0x80,0x15,0x3c,0x21,0xb8,0x60,0x02, +0xe8,0x24,0x62,0x8e,0x54,0x25,0x70,0x8e,0x01,0x00,0x04,0x24,0x00,0x00,0x82,0xae, +0xec,0x24,0x62,0xae,0x00,0x00,0x90,0xae,0x4d,0x01,0x00,0x0c,0x21,0x88,0xe0,0x02, +0x54,0x25,0x64,0x8e,0x58,0x25,0x63,0x8e,0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24, +0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x54,0x25,0x63,0xae,0x54,0x25,0xe5,0x8e, +0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32, +0x25,0x80,0x02,0x02,0x00,0x00,0x90,0xae,0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00, +0x00,0x00,0x82,0xae,0x0c,0x00,0x12,0x92,0xff,0x00,0x02,0x24,0x0a,0x00,0x42,0x12, +0x00,0x1a,0x12,0x00,0x20,0x10,0x02,0x3c,0x21,0x18,0x62,0x00,0xe8,0x24,0xe3,0xae, +0x94,0x24,0xf2,0xa2,0x21,0x30,0x60,0x00,0x01,0x00,0x04,0x24,0x40,0x00,0x07,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x10,0x24,0x22,0x8e,0x04,0x00,0x03,0x8e, +0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x5d,0x00,0x40,0x14,0x1f,0x00,0x64,0x30, +0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00, +0x00,0x26,0x04,0x00,0x25,0x28,0x44,0x00,0x08,0x00,0x05,0xae,0xc2,0x11,0x05,0x00, +0x01,0x00,0x43,0x30,0x47,0x00,0x60,0x14,0x01,0x00,0x02,0x24,0x00,0x00,0x04,0x96, +0x34,0x24,0x23,0x8e,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0x05,0x00,0x40,0x10, +0xff,0xdf,0x02,0x3c,0x21,0x10,0x64,0x00,0x34,0x24,0x22,0xae,0x08,0x00,0x05,0x8e, +0xff,0xdf,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x28,0xa2,0x00,0x00,0x40,0x03,0x3c, +0x25,0x28,0xa3,0x00,0x82,0x11,0x05,0x00,0x01,0x00,0x42,0x30,0x03,0x00,0x40,0x14, +0xc0,0xff,0x02,0x24,0x24,0x10,0xa2,0x00,0x04,0x00,0x45,0x34,0x08,0x00,0x05,0xae, +0x38,0x15,0xc2,0x26,0x82,0x0b,0x44,0x90,0x01,0x00,0x03,0x24,0x3b,0x00,0x83,0x10, +0x7f,0xff,0x02,0x24,0x24,0x10,0xa2,0x00,0x08,0x00,0x02,0xae,0x38,0x15,0xc5,0x26, +0xec,0x24,0xa2,0x8c,0x20,0x00,0x10,0x8e,0x00,0x80,0x03,0x3c,0x25,0x10,0x43,0x00, +0x2a,0xb0,0x03,0x3c,0x08,0x00,0x50,0xac,0x05,0x00,0x70,0x34,0x01,0x00,0x02,0x24, +0x02,0x00,0x03,0x24,0x00,0x00,0x02,0xa2,0x00,0x00,0x03,0xa2,0xfc,0x3d,0xa2,0x96, +0xff,0x00,0x03,0x24,0x01,0x00,0x42,0x24,0xfc,0x3d,0xa2,0xa6,0xfc,0x3d,0xa4,0x96, +0x25,0xb0,0x02,0x3c,0x66,0x03,0x42,0x34,0x00,0x00,0x44,0xa4,0x98,0xff,0x43,0x16, +0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x38,0x42,0x34, +0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x62,0xac,0x08,0x00,0xe0,0x03, +0x08,0x0b,0xa2,0xac,0xc3,0xff,0x62,0x14,0xff,0xdf,0x02,0x3c,0x00,0x00,0x04,0x96, +0x30,0x24,0x23,0x8e,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0xbd,0xff,0x40,0x10, +0xff,0xdf,0x02,0x3c,0x21,0x10,0x64,0x00,0xeb,0x02,0x00,0x08,0x30,0x24,0x22,0xae, +0x08,0x00,0x05,0x8e,0xe0,0x02,0x00,0x08,0xc2,0x11,0x05,0x00,0x80,0x00,0xa5,0x34, +0xff,0x02,0x00,0x08,0x08,0x00,0x05,0xae,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf, +0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x02,0x80,0x06,0x3c,0xb4,0x3e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x18,0x03,0x42,0x34,0xe8,0x0c,0x63,0x24,0x40,0x00,0xa4,0x30,0x00,0x00,0x43,0xac, +0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0x7f,0x00,0xa2,0x30,0xbf,0x00,0xa2,0x30, +0x01,0x00,0x16,0x24,0xb4,0x3e,0xc2,0xa0,0xb4,0x3e,0xc2,0x90,0x25,0xb0,0x04,0x3c, +0x88,0x02,0x83,0x34,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x02,0x80,0x14,0x3c,0x38,0x15,0x92,0x26,0xb0,0x03,0x93,0x34, +0x02,0x80,0x15,0x3c,0x7d,0x03,0x00,0x08,0x21,0xb8,0x40,0x02,0x08,0x00,0x03,0x8e, +0x01,0x00,0x04,0x24,0x25,0x18,0x62,0x00,0x82,0x17,0x03,0x00,0x01,0x00,0x42,0x30, +0x9a,0x00,0x44,0x10,0x08,0x00,0x03,0xae,0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30, +0x05,0x00,0x40,0x14,0x2a,0xb0,0x05,0x3c,0xc0,0xff,0x02,0x24,0x24,0x10,0x62,0x00, +0x04,0x00,0x42,0x34,0x08,0x00,0x02,0xae,0x0d,0x00,0xa6,0x34,0x04,0x00,0xc2,0x24, +0x0b,0x30,0x56,0x00,0x02,0x00,0x03,0x24,0x00,0x00,0xc4,0xa0,0x00,0x00,0xc3,0xa0, +0xfc,0x3d,0xa2,0x96,0x66,0x03,0x24,0x35,0x01,0x00,0x42,0x24,0xfc,0x3d,0xa2,0xa6, +0xfc,0x3d,0xa3,0x96,0xff,0x00,0x02,0x24,0x00,0x00,0x83,0xa4,0x98,0x00,0x22,0x12, +0x00,0x00,0x00,0x00,0xac,0x24,0x42,0x8e,0x18,0x25,0x50,0x8e,0x03,0x00,0x04,0x24, +0x00,0x00,0x62,0xae,0xb0,0x24,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c, +0x00,0x00,0x00,0x00,0x18,0x25,0x44,0x8e,0x1c,0x25,0x43,0x8e,0x40,0x00,0x84,0x24, +0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x18,0x25,0x43,0xae, +0x18,0x25,0xe2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c, +0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92, +0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24, +0x0d,0x00,0x22,0x12,0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00, +0x69,0x00,0xc0,0x12,0xac,0x24,0xe2,0xae,0x74,0x24,0xf1,0xa2,0x38,0x15,0x82,0x26, +0xac,0x24,0x46,0x8c,0x18,0x25,0x45,0x8c,0x03,0x00,0x04,0x24,0x40,0x00,0x07,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x38,0x15,0x86,0x26,0x10,0x24,0xc2,0x8c, +0x04,0x00,0x08,0x8e,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14, +0x1f,0x00,0x07,0x31,0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34, +0x24,0x10,0x43,0x00,0x00,0x26,0x07,0x00,0x25,0x18,0x44,0x00,0x08,0x00,0x03,0xae, +0x00,0x00,0x05,0x96,0x34,0x24,0xc4,0x8c,0xff,0xff,0xa3,0x30,0x27,0x10,0x03,0x00, +0x2b,0x10,0x82,0x00,0x04,0x00,0x40,0x10,0x21,0x10,0x83,0x00,0x34,0x24,0xc2,0xac, +0x04,0x00,0x08,0x8e,0x00,0x00,0x05,0x96,0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00, +0x47,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00, +0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x04,0x00,0x40,0x14, +0xff,0xff,0xa2,0x30,0xfd,0x0f,0x42,0x28,0x09,0x00,0x40,0x14,0xff,0xff,0xa3,0x30, +0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x18,0x43,0x00, +0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x08,0x00,0x03,0xae,0xff,0xff,0xa3,0x30, +0xff,0x01,0x62,0x30,0x03,0x00,0x40,0x10,0x43,0x32,0x03,0x00,0x00,0x02,0x62,0x24, +0x43,0x32,0x02,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x02,0x22,0x08,0x00, +0x80,0x10,0x02,0x00,0x38,0x15,0x83,0x26,0x21,0x38,0x43,0x00,0x1f,0x00,0x84,0x30, +0x21,0x20,0xe4,0x00,0xf8,0x0c,0x82,0x90,0x25,0xb0,0x09,0x3c,0xb0,0x03,0x25,0x35, +0x21,0x10,0xc2,0x00,0xf8,0x0c,0x82,0xa0,0x00,0x00,0xa6,0xac,0x04,0x00,0x02,0x8e, +0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x1f,0x00,0x42,0x30,0x21,0x10,0xe2,0x00, +0xf8,0x0c,0x43,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xac,0x04,0x00,0x08,0x8e, +0xf7,0x0c,0xe4,0x90,0x02,0x12,0x08,0x00,0x1f,0x00,0x42,0x30,0x21,0x10,0xe2,0x00, +0xf8,0x0c,0x43,0x90,0x00,0x00,0x00,0x00,0x2b,0x20,0x83,0x00,0x67,0xff,0x80,0x14, +0x00,0x40,0x02,0x3c,0x08,0x00,0x03,0x8e,0x01,0x00,0x04,0x24,0x82,0x17,0x03,0x00, +0x01,0x00,0x42,0x30,0x68,0xff,0x44,0x14,0x00,0x00,0x00,0x00,0x02,0x12,0x08,0x00, +0x1f,0x00,0x42,0x30,0x21,0x10,0xe2,0x00,0xf8,0x0c,0x40,0xa0,0x08,0x00,0x03,0x8e, +0x67,0x03,0x00,0x08,0x82,0x11,0x03,0x00,0x9f,0x03,0x00,0x08,0x70,0x24,0xf1,0xa2, +0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30, +0x14,0x00,0x42,0x28,0xb7,0xff,0x40,0x14,0x42,0x12,0x03,0x00,0x9f,0xff,0x02,0x3c, +0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,0xc4,0x03,0x00,0x08,0x10,0x00,0x02,0xae, +0x21,0x00,0xc0,0x12,0x38,0x15,0x82,0x26,0x74,0x24,0x43,0x90,0x25,0xb0,0x02,0x3c, +0x41,0x00,0xa4,0x34,0xb0,0x03,0x42,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0x43,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x38,0x15,0x85,0x26, +0x08,0x0b,0xa4,0x8c,0x01,0x00,0x02,0x3c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x80,0x42,0x34, +0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x64,0xac, +0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,0x70,0x24,0x43,0x90,0x25,0xb0,0x02,0x3c, +0x40,0x00,0xa4,0x34,0xb0,0x03,0x42,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0x43,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x38,0x15,0x85,0x26, +0x08,0x0b,0xa4,0x8c,0x01,0x00,0x02,0x3c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x80,0x42,0x34, +0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x64,0xac, +0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf, +0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x02,0x80,0x06,0x3c,0xb4,0x3e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x18,0x03,0x42,0x34,0x58,0x11,0x63,0x24,0x10,0x00,0xa4,0x30,0x00,0x00,0x43,0xac, +0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0xdf,0x00,0xa2,0x30,0xef,0x00,0xa2,0x30, +0x01,0x00,0x16,0x24,0xb4,0x3e,0xc2,0xa0,0xb4,0x3e,0xc3,0x90,0x25,0xb0,0x02,0x3c, +0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x14,0x3c,0x38,0x15,0x92,0x26, +0x21,0x98,0x40,0x00,0x02,0x80,0x15,0x3c,0x9a,0x04,0x00,0x08,0x21,0xb8,0x40,0x02, +0x08,0x00,0x03,0x8e,0x01,0x00,0x04,0x24,0x25,0x18,0x62,0x00,0x82,0x17,0x03,0x00, +0x01,0x00,0x42,0x30,0x9a,0x00,0x44,0x10,0x08,0x00,0x03,0xae,0x82,0x11,0x03,0x00, +0x01,0x00,0x42,0x30,0x05,0x00,0x40,0x14,0x2a,0xb0,0x05,0x3c,0xc0,0xff,0x02,0x24, +0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,0x08,0x00,0x02,0xae,0x15,0x00,0xa6,0x34, +0x04,0x00,0xc2,0x24,0x0b,0x30,0x56,0x00,0x02,0x00,0x03,0x24,0x00,0x00,0xc4,0xa0, +0x00,0x00,0xc3,0xa0,0xfc,0x3d,0xa2,0x96,0x66,0x03,0x24,0x35,0x01,0x00,0x42,0x24, +0xfc,0x3d,0xa2,0xa6,0xfc,0x3d,0xa3,0x96,0xff,0x00,0x02,0x24,0x00,0x00,0x83,0xa4, +0x98,0x00,0x22,0x12,0x00,0x00,0x00,0x00,0xb8,0x24,0x42,0x8e,0x24,0x25,0x50,0x8e, +0x04,0x00,0x04,0x24,0x00,0x00,0x62,0xae,0xbc,0x24,0x42,0xae,0x00,0x00,0x70,0xae, +0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,0x24,0x25,0x44,0x8e,0x28,0x25,0x43,0x8e, +0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00, +0x24,0x25,0x43,0xae,0x24,0x25,0xe2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae, +0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae, +0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92, +0xff,0x00,0x02,0x24,0x0d,0x00,0x22,0x12,0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c, +0x21,0x10,0x43,0x00,0x69,0x00,0xc0,0x12,0xb8,0x24,0xe2,0xae,0x7c,0x24,0xf1,0xa2, +0x38,0x15,0x82,0x26,0xb8,0x24,0x46,0x8c,0x24,0x25,0x45,0x8c,0x04,0x00,0x04,0x24, +0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x38,0x15,0x86,0x26, +0x10,0x24,0xc2,0x8c,0x04,0x00,0x08,0x8e,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30, +0x08,0x00,0x40,0x14,0x1f,0x00,0x07,0x31,0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c, +0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,0x00,0x26,0x07,0x00,0x25,0x18,0x44,0x00, +0x08,0x00,0x03,0xae,0x00,0x00,0x05,0x96,0x34,0x24,0xc4,0x8c,0xff,0xff,0xa3,0x30, +0x27,0x10,0x03,0x00,0x2b,0x10,0x82,0x00,0x04,0x00,0x40,0x10,0x21,0x10,0x83,0x00, +0x34,0x24,0xc2,0xac,0x04,0x00,0x08,0x8e,0x00,0x00,0x05,0x96,0x10,0x00,0x04,0x8e, +0x00,0x00,0x00,0x00,0x47,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e, +0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28, +0x04,0x00,0x40,0x14,0xff,0xff,0xa2,0x30,0xfd,0x0f,0x42,0x28,0x09,0x00,0x40,0x14, +0xff,0xff,0xa3,0x30,0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34, +0x24,0x18,0x43,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x08,0x00,0x03,0xae, +0xff,0xff,0xa3,0x30,0xff,0x01,0x62,0x30,0x03,0x00,0x40,0x10,0x43,0x32,0x03,0x00, +0x00,0x02,0x62,0x24,0x43,0x32,0x02,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00, +0x02,0x22,0x08,0x00,0x80,0x10,0x02,0x00,0x38,0x15,0x83,0x26,0x21,0x38,0x43,0x00, +0x1f,0x00,0x84,0x30,0x21,0x20,0xe4,0x00,0xf8,0x0c,0x82,0x90,0x25,0xb0,0x09,0x3c, +0xb0,0x03,0x25,0x35,0x21,0x10,0xc2,0x00,0xf8,0x0c,0x82,0xa0,0x00,0x00,0xa6,0xac, +0x04,0x00,0x02,0x8e,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x1f,0x00,0x42,0x30, +0x21,0x10,0xe2,0x00,0xf8,0x0c,0x43,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xac, +0x04,0x00,0x08,0x8e,0xf7,0x0c,0xe4,0x90,0x02,0x12,0x08,0x00,0x1f,0x00,0x42,0x30, +0x21,0x10,0xe2,0x00,0xf8,0x0c,0x43,0x90,0x00,0x00,0x00,0x00,0x2b,0x20,0x83,0x00, +0x67,0xff,0x80,0x14,0x00,0x40,0x02,0x3c,0x08,0x00,0x03,0x8e,0x01,0x00,0x04,0x24, +0x82,0x17,0x03,0x00,0x01,0x00,0x42,0x30,0x68,0xff,0x44,0x14,0x00,0x00,0x00,0x00, +0x02,0x12,0x08,0x00,0x1f,0x00,0x42,0x30,0x21,0x10,0xe2,0x00,0xf8,0x0c,0x40,0xa0, +0x08,0x00,0x03,0x8e,0x84,0x04,0x00,0x08,0x82,0x11,0x03,0x00,0xbc,0x04,0x00,0x08, +0x78,0x24,0xf1,0xa2,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00, +0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,0xb7,0xff,0x40,0x14,0x42,0x12,0x03,0x00, +0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,0xe1,0x04,0x00,0x08, +0x10,0x00,0x02,0xae,0x20,0x00,0xc0,0x12,0x38,0x15,0x82,0x26,0x7c,0x24,0x43,0x90, +0x25,0xb0,0x02,0x3c,0x43,0x00,0xa4,0x34,0xb0,0x03,0x42,0x34,0x00,0x00,0x83,0xa0, +0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x38,0x15,0x85,0x26,0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x06,0x00,0x03,0x3c, +0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac, +0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0x78,0x24,0x43,0x90,0x25,0xb0,0x02,0x3c, +0x42,0x00,0xa4,0x34,0xb0,0x03,0x42,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0x43,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x38,0x15,0x85,0x26, +0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f, +0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f, +0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x06,0x00,0x03,0x3c,0x25,0x10,0x43,0x00, +0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03, +0x08,0x0b,0xa2,0xac,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf,0x38,0x00,0xbf,0xaf, +0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf, +0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x02,0x80,0x06,0x3c, +0xb4,0x3e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34, +0xc4,0x15,0x63,0x24,0x01,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,0x21,0xb0,0x00,0x00, +0x03,0x00,0x80,0x10,0xf7,0x00,0xa2,0x30,0xfe,0x00,0xa2,0x30,0x01,0x00,0x16,0x24, +0xb4,0x3e,0xc2,0xa0,0xb4,0x3e,0xc3,0x90,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34, +0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x02,0x80,0x14,0x3c,0x38,0x15,0x92,0x26,0x21,0x98,0x40,0x00,0x02,0x80,0x15,0x3c, +0xe1,0x05,0x00,0x08,0x21,0xb8,0x40,0x02,0xfd,0x0f,0x42,0x28,0x95,0x00,0x40,0x10, +0x00,0x20,0x02,0x3c,0x08,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x25,0x18,0x62,0x00, +0x08,0x00,0x03,0xae,0xff,0xff,0xa3,0x30,0xff,0x01,0x62,0x30,0x03,0x00,0x40,0x10, +0x43,0x32,0x03,0x00,0x00,0x02,0x62,0x24,0x43,0x32,0x02,0x00,0xc0,0x10,0x07,0x00, +0x21,0x10,0x47,0x00,0x02,0x22,0x08,0x00,0x80,0x10,0x02,0x00,0x38,0x15,0x83,0x26, +0x21,0x38,0x43,0x00,0x1f,0x00,0x84,0x30,0x21,0x20,0xe4,0x00,0xf8,0x0c,0x82,0x90, +0x25,0xb0,0x09,0x3c,0xb0,0x03,0x25,0x35,0x21,0x10,0xc2,0x00,0xf8,0x0c,0x82,0xa0, +0x00,0x00,0xa6,0xac,0x04,0x00,0x02,0x8e,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00, +0x1f,0x00,0x42,0x30,0x21,0x10,0xe2,0x00,0xf8,0x0c,0x43,0x90,0x00,0x00,0x00,0x00, +0x00,0x00,0xa3,0xac,0x04,0x00,0x08,0x8e,0xf7,0x0c,0xe4,0x90,0x02,0x12,0x08,0x00, +0x1f,0x00,0x42,0x30,0x21,0x10,0xe2,0x00,0xf8,0x0c,0x43,0x90,0x00,0x00,0x00,0x00, +0x2b,0x20,0x83,0x00,0x72,0x00,0x80,0x10,0x01,0x00,0x04,0x24,0x08,0x00,0x03,0x8e, +0x00,0x40,0x02,0x3c,0x25,0x18,0x62,0x00,0x82,0x17,0x03,0x00,0x01,0x00,0x42,0x30, +0x71,0x00,0x44,0x10,0x08,0x00,0x03,0xae,0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30, +0x05,0x00,0x40,0x14,0x2a,0xb0,0x05,0x3c,0xc0,0xff,0x02,0x24,0x24,0x10,0x62,0x00, +0x04,0x00,0x42,0x34,0x08,0x00,0x02,0xae,0x1d,0x00,0xa6,0x34,0x04,0x00,0xc2,0x24, +0x0b,0x30,0x56,0x00,0x02,0x00,0x03,0x24,0x00,0x00,0xc4,0xa0,0x00,0x00,0xc3,0xa0, +0xfc,0x3d,0xa2,0x96,0x66,0x03,0x24,0x35,0x01,0x00,0x42,0x24,0xfc,0x3d,0xa2,0xa6, +0xfc,0x3d,0xa3,0x96,0xff,0x00,0x02,0x24,0x00,0x00,0x83,0xa4,0x6f,0x00,0x22,0x12, +0x00,0x00,0x00,0x00,0xc4,0x24,0x42,0x8e,0x30,0x25,0x50,0x8e,0x05,0x00,0x04,0x24, +0x00,0x00,0x62,0xae,0xc8,0x24,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c, +0x00,0x00,0x00,0x00,0x30,0x25,0x44,0x8e,0x34,0x25,0x43,0x8e,0x40,0x00,0x84,0x24, +0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x30,0x25,0x43,0xae, +0x30,0x25,0xe2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c, +0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92, +0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24, +0x0d,0x00,0x22,0x12,0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00, +0x40,0x00,0xc0,0x12,0xc4,0x24,0xe2,0xae,0x8c,0x24,0xf1,0xa2,0x38,0x15,0x82,0x26, +0xc4,0x24,0x46,0x8c,0x30,0x25,0x45,0x8c,0x05,0x00,0x04,0x24,0x40,0x00,0x07,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x38,0x15,0x86,0x26,0x10,0x24,0xc2,0x8c, +0x04,0x00,0x08,0x8e,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14, +0x1f,0x00,0x07,0x31,0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34, +0x24,0x10,0x43,0x00,0x00,0x26,0x07,0x00,0x25,0x18,0x44,0x00,0x08,0x00,0x03,0xae, +0x00,0x00,0x05,0x96,0x34,0x24,0xc4,0x8c,0xff,0xff,0xa3,0x30,0x27,0x10,0x03,0x00, +0x2b,0x10,0x82,0x00,0x04,0x00,0x40,0x10,0x21,0x10,0x83,0x00,0x34,0x24,0xc2,0xac, +0x04,0x00,0x08,0x8e,0x00,0x00,0x05,0x96,0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00, +0x1e,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00, +0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x6a,0xff,0x40,0x10, +0xff,0xff,0xa2,0x30,0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34, +0x24,0x18,0x43,0x00,0x00,0x40,0x04,0x3c,0x9c,0x05,0x00,0x08,0x25,0x18,0x64,0x00, +0x08,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x82,0x17,0x03,0x00,0x01,0x00,0x42,0x30, +0x91,0xff,0x44,0x14,0x00,0x00,0x00,0x00,0x02,0x12,0x08,0x00,0x1f,0x00,0x42,0x30, +0x21,0x10,0xe2,0x00,0xf8,0x0c,0x40,0xa0,0x08,0x00,0x03,0x8e,0xcb,0x05,0x00,0x08, +0x82,0x11,0x03,0x00,0x03,0x06,0x00,0x08,0x80,0x24,0xf1,0xa2,0x14,0x00,0x03,0x8e, +0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28, +0xe0,0xff,0x40,0x14,0x42,0x12,0x03,0x00,0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x10,0x82,0x00,0x28,0x06,0x00,0x08,0x10,0x00,0x02,0xae,0x20,0x00,0xc0,0x12, +0x38,0x15,0x82,0x26,0x8c,0x24,0x43,0x90,0x25,0xb0,0x02,0x3c,0x45,0x00,0xa4,0x34, +0xb0,0x03,0x42,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x38,0x15,0x85,0x26,0x08,0x0b,0xa2,0x8c, +0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f, +0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f, +0x18,0x00,0xb0,0x8f,0x18,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c, +0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac, +0x80,0x24,0x43,0x90,0x25,0xb0,0x02,0x3c,0x44,0x00,0xa4,0x34,0xb0,0x03,0x42,0x34, +0x00,0x00,0x83,0xa0,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x38,0x15,0x85,0x26,0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f, +0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x18,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27, +0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0xc0,0xff,0xbd,0x27, +0x30,0x00,0xb6,0xaf,0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf, +0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0x02,0x80,0x06,0x3c,0xb4,0x3e,0xc5,0x90,0x00,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,0x3c,0x1a,0x63,0x24,0x02,0x00,0xa4,0x30, +0x00,0x00,0x43,0xac,0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0xfb,0x00,0xa2,0x30, +0xfd,0x00,0xa2,0x30,0x01,0x00,0x16,0x24,0xb4,0x3e,0xc2,0xa0,0xb4,0x3e,0xc3,0x90, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x14,0x3c,0x38,0x15,0x92,0x26, +0x21,0x98,0x40,0x00,0x02,0x80,0x15,0x3c,0xff,0x06,0x00,0x08,0x21,0xb8,0x40,0x02, +0xfd,0x0f,0x42,0x28,0x95,0x00,0x40,0x10,0x00,0x20,0x02,0x3c,0x08,0x00,0x03,0x8e, +0x00,0x00,0x00,0x00,0x25,0x18,0x62,0x00,0x08,0x00,0x03,0xae,0xff,0xff,0xa3,0x30, +0xff,0x01,0x62,0x30,0x03,0x00,0x40,0x10,0x43,0x32,0x03,0x00,0x00,0x02,0x62,0x24, +0x43,0x32,0x02,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x02,0x22,0x08,0x00, +0x80,0x10,0x02,0x00,0x38,0x15,0x83,0x26,0x21,0x38,0x43,0x00,0x1f,0x00,0x84,0x30, +0x21,0x20,0xe4,0x00,0xf8,0x0c,0x82,0x90,0x25,0xb0,0x09,0x3c,0xb0,0x03,0x25,0x35, +0x21,0x10,0xc2,0x00,0xf8,0x0c,0x82,0xa0,0x00,0x00,0xa6,0xac,0x04,0x00,0x02,0x8e, +0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x1f,0x00,0x42,0x30,0x21,0x10,0xe2,0x00, +0xf8,0x0c,0x43,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xac,0x04,0x00,0x08,0x8e, +0xf7,0x0c,0xe4,0x90,0x02,0x12,0x08,0x00,0x1f,0x00,0x42,0x30,0x21,0x10,0xe2,0x00, +0xf8,0x0c,0x43,0x90,0x00,0x00,0x00,0x00,0x2b,0x20,0x83,0x00,0x72,0x00,0x80,0x10, +0x01,0x00,0x04,0x24,0x08,0x00,0x03,0x8e,0x00,0x40,0x02,0x3c,0x25,0x18,0x62,0x00, +0x82,0x17,0x03,0x00,0x01,0x00,0x42,0x30,0x71,0x00,0x44,0x10,0x08,0x00,0x03,0xae, +0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30,0x05,0x00,0x40,0x14,0x2a,0xb0,0x05,0x3c, +0xc0,0xff,0x02,0x24,0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,0x08,0x00,0x02,0xae, +0x25,0x00,0xa6,0x34,0x04,0x00,0xc2,0x24,0x0b,0x30,0x56,0x00,0x02,0x00,0x03,0x24, +0x00,0x00,0xc4,0xa0,0x00,0x00,0xc3,0xa0,0xfc,0x3d,0xa2,0x96,0x66,0x03,0x24,0x35, +0x01,0x00,0x42,0x24,0xfc,0x3d,0xa2,0xa6,0xfc,0x3d,0xa3,0x96,0xff,0x00,0x02,0x24, +0x00,0x00,0x83,0xa4,0x6f,0x00,0x22,0x12,0x00,0x00,0x00,0x00,0xd0,0x24,0x42,0x8e, +0x3c,0x25,0x50,0x8e,0x06,0x00,0x04,0x24,0x00,0x00,0x62,0xae,0xd4,0x24,0x42,0xae, +0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,0x3c,0x25,0x44,0x8e, +0x40,0x25,0x43,0x8e,0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00, +0x0a,0x18,0x82,0x00,0x3c,0x25,0x43,0xae,0x3c,0x25,0xe2,0x8e,0x00,0x00,0x00,0x00, +0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02, +0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae, +0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,0x0d,0x00,0x22,0x12,0x00,0x12,0x11,0x00, +0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,0x40,0x00,0xc0,0x12,0xd0,0x24,0xe2,0xae, +0x88,0x24,0xf1,0xa2,0x38,0x15,0x82,0x26,0xd0,0x24,0x46,0x8c,0x3c,0x25,0x45,0x8c, +0x06,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x38,0x15,0x86,0x26,0x10,0x24,0xc2,0x8c,0x04,0x00,0x08,0x8e,0x42,0x10,0x02,0x00, +0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14,0x1f,0x00,0x07,0x31,0x08,0x00,0x02,0x8e, +0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,0x00,0x26,0x07,0x00, +0x25,0x18,0x44,0x00,0x08,0x00,0x03,0xae,0x00,0x00,0x05,0x96,0x34,0x24,0xc4,0x8c, +0xff,0xff,0xa3,0x30,0x27,0x10,0x03,0x00,0x2b,0x10,0x82,0x00,0x04,0x00,0x40,0x10, +0x21,0x10,0x83,0x00,0x34,0x24,0xc2,0xac,0x04,0x00,0x08,0x8e,0x00,0x00,0x05,0x96, +0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0x1e,0x00,0x80,0x04,0x00,0x00,0x00,0x00, +0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30, +0x0c,0x00,0x42,0x28,0x6a,0xff,0x40,0x10,0xff,0xff,0xa2,0x30,0x08,0x00,0x02,0x8e, +0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x18,0x43,0x00,0x00,0x40,0x04,0x3c, +0xba,0x06,0x00,0x08,0x25,0x18,0x64,0x00,0x08,0x00,0x03,0x8e,0x00,0x00,0x00,0x00, +0x82,0x17,0x03,0x00,0x01,0x00,0x42,0x30,0x91,0xff,0x44,0x14,0x00,0x00,0x00,0x00, +0x02,0x12,0x08,0x00,0x1f,0x00,0x42,0x30,0x21,0x10,0xe2,0x00,0xf8,0x0c,0x40,0xa0, +0x08,0x00,0x03,0x8e,0xe9,0x06,0x00,0x08,0x82,0x11,0x03,0x00,0x21,0x07,0x00,0x08, +0x84,0x24,0xf1,0xa2,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00, +0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,0xe0,0xff,0x40,0x14,0x42,0x12,0x03,0x00, +0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,0x46,0x07,0x00,0x08, +0x10,0x00,0x02,0xae,0x20,0x00,0xc0,0x12,0x38,0x15,0x82,0x26,0x88,0x24,0x43,0x90, +0x25,0xb0,0x02,0x3c,0x47,0x00,0xa4,0x34,0xb0,0x03,0x42,0x34,0x00,0x00,0x83,0xa0, +0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x38,0x15,0x85,0x26,0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x60,0x00,0x03,0x3c, +0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac, +0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0x84,0x24,0x43,0x90,0x25,0xb0,0x02,0x3c, +0x46,0x00,0xa4,0x34,0xb0,0x03,0x42,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0x43,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x38,0x15,0x85,0x26, +0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f, +0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f, +0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x60,0x00,0x03,0x3c,0x25,0x10,0x43,0x00, +0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03, +0x08,0x0b,0xa2,0xac,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xb4,0x1e,0x63,0x24, +0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x02,0x80,0x05,0x3c,0x38,0x15,0xa5,0x24,0x10,0x0b,0xa2,0x8c, +0x08,0x0b,0xa4,0x8c,0x00,0x08,0x03,0x3c,0x24,0x10,0x43,0x00,0x25,0x20,0x82,0x00, +0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac, +0x25,0xb0,0x05,0x3c,0x00,0x80,0x02,0x3c,0xc0,0xff,0xbd,0x27,0x18,0x03,0xa4,0x34, +0x10,0x1f,0x42,0x24,0x2a,0xb0,0x03,0x3c,0x00,0x00,0x82,0xac,0x3c,0x00,0xbf,0xaf, +0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf, +0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0x2c,0x00,0x63,0x34,0x00,0x00,0x69,0x8c,0xff,0x00,0x02,0x24, +0xff,0x00,0x24,0x31,0xbe,0x00,0x82,0x10,0x00,0x80,0x22,0x31,0x37,0x00,0x40,0x10, +0x00,0xff,0x02,0x3c,0x00,0x80,0x02,0x3c,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24, +0x14,0x00,0x82,0x10,0x02,0x80,0x03,0x3c,0x38,0x15,0x70,0x24,0xff,0x00,0x23,0x31, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x6c,0x25,0x05,0x8e, +0x25,0xb0,0x02,0x3c,0xff,0x00,0x28,0x31,0x7c,0x03,0x42,0x34,0x00,0x00,0x48,0xa4, +0x21,0x30,0x60,0x00,0x00,0x25,0x03,0xae,0x9c,0x24,0x09,0xa2,0x0a,0x00,0x04,0x24, +0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x01,0x00,0x03,0x24, +0x74,0x25,0x03,0xa2,0x02,0x80,0x02,0x3c,0x38,0x15,0x44,0x24,0x74,0x25,0x83,0x90, +0x01,0x00,0x02,0x24,0x28,0x00,0x62,0x10,0x02,0x80,0x03,0x3c,0x38,0x15,0x70,0x24, +0x75,0x25,0x02,0x92,0x00,0x00,0x00,0x00,0x08,0x00,0x40,0x10,0x00,0x04,0x03,0x3c, +0x10,0x0b,0x02,0x8e,0x08,0x0b,0x04,0x8e,0x24,0x10,0x43,0x00,0x25,0x20,0x82,0x00, +0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,0x08,0x0b,0x04,0xae,0x3c,0x00,0xbf,0x8f, +0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f, +0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f, +0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x24,0x10,0x22,0x01, +0xcb,0xff,0x40,0x10,0xff,0x00,0x02,0x24,0x02,0x80,0x02,0x3c,0x38,0x15,0x43,0x24, +0x9c,0x24,0x62,0x90,0x20,0xb0,0x03,0x3c,0xb0,0x03,0xa4,0x34,0x00,0x12,0x02,0x00, +0x21,0x10,0x43,0x00,0x0c,0x00,0x49,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x89,0xac, +0xdf,0x07,0x00,0x08,0xff,0x00,0x24,0x31,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0x21,0x88,0x80,0x00,0xb0,0x03,0x55,0x34, +0x01,0x00,0x13,0x24,0x21,0xb0,0x80,0x00,0x02,0x00,0x17,0x24,0x01,0x00,0x1e,0x24, +0x73,0x08,0x00,0x08,0x21,0xa0,0x80,0x00,0x20,0x00,0x02,0x24,0x61,0x00,0x82,0x14, +0x02,0x80,0x02,0x3c,0x50,0x93,0x46,0xac,0x21,0x20,0xc0,0x00,0x02,0x00,0x82,0x90, +0x75,0x25,0xc5,0x92,0x03,0x00,0x83,0x90,0x08,0x00,0xc6,0x24,0xff,0x00,0x52,0x30, +0x10,0x00,0xbe,0x14,0x7f,0x00,0x63,0x30,0x02,0x80,0x04,0x3c,0xf1,0x3d,0x82,0x90, +0x00,0x00,0x00,0x00,0x7f,0x00,0x42,0x30,0x07,0x00,0x62,0x10,0x25,0xb0,0x05,0x3c, +0xf2,0x23,0xc2,0x96,0x1e,0x03,0xa5,0x34,0x10,0x00,0x42,0x34,0x00,0x00,0xa2,0xa4, +0xf1,0x3d,0x83,0xa0,0xf2,0x23,0xc2,0xa6,0x31,0x00,0x42,0x2e,0x0b,0x00,0x40,0x10, +0x30,0x00,0x02,0x24,0x01,0x80,0x02,0x3c,0x84,0x7f,0x42,0x24,0xc0,0x18,0x12,0x00, +0x21,0x18,0x62,0x00,0x04,0x00,0x62,0x8c,0x02,0x80,0x03,0x3c,0x21,0x20,0xc0,0x00, +0x09,0xf8,0x40,0x00,0x4c,0x93,0x62,0xac,0x30,0x00,0x02,0x24,0x06,0x00,0x42,0x12, +0x02,0x80,0x05,0x3c,0x7c,0x8e,0xa5,0x24,0x00,0x00,0xa9,0x8c,0x00,0x00,0x00,0x00, +0x01,0x00,0x33,0xa1,0x01,0x00,0x37,0xa1,0x75,0x25,0x82,0x92,0x00,0x00,0x00,0x00, +0x3f,0x00,0x5e,0x14,0xff,0x00,0x02,0x24,0x0c,0x00,0x10,0x92,0x00,0x00,0x00,0x00, +0xff,0x00,0x09,0x32,0x3a,0x00,0x22,0x11,0x20,0x10,0x02,0x3c,0x9c,0x24,0x90,0xa2, +0x9c,0x24,0x28,0x92,0x6c,0x25,0x25,0x8e,0xff,0x00,0x03,0x31,0x00,0x1a,0x03,0x00, +0x21,0x18,0x62,0x00,0x25,0xb0,0x02,0x3c,0x7c,0x03,0x42,0x34,0x00,0x00,0xa9,0xae, +0x21,0x30,0x60,0x00,0x00,0x00,0x48,0xa4,0x0a,0x00,0x04,0x24,0x00,0x25,0x23,0xae, +0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x6c,0x25,0x30,0x8e, +0x0a,0x00,0x04,0x24,0x00,0x00,0xb0,0xae,0x4d,0x01,0x00,0x0c,0xff,0xff,0x10,0x32, +0x02,0x80,0x02,0x3c,0x02,0x80,0x05,0x3c,0x25,0x80,0x02,0x02,0xb2,0x3d,0xa3,0x90, +0x02,0x00,0x04,0x92,0x0f,0x00,0x63,0x30,0xaf,0xff,0x77,0x14,0x21,0x30,0x04,0x02, +0x00,0x00,0x02,0x8e,0x00,0x0c,0x03,0x3c,0x24,0x10,0x43,0x00,0x0d,0x00,0x43,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0x00,0x00,0x00,0x00,0x02,0x13,0x02,0x00, +0x3f,0x00,0x42,0x30,0x07,0x00,0x40,0x14,0x05,0x00,0x03,0x24,0x14,0x00,0x02,0x8e, +0x00,0x00,0x00,0x00,0x42,0x15,0x02,0x00,0x07,0x00,0x42,0x30,0xa1,0xff,0x43,0x10, +0x02,0x80,0x02,0x3c,0xbe,0x48,0x00,0x0c,0x01,0x00,0x04,0x24,0x62,0x24,0x22,0x96, +0x75,0x25,0x33,0xa2,0x01,0x00,0x42,0x24,0x52,0x08,0x00,0x08,0x62,0x24,0x22,0xa6, +0x02,0x80,0x05,0x3c,0x38,0x15,0xa2,0x24,0xf5,0x07,0x00,0x08,0x74,0x25,0x40,0xa0, +0x02,0x80,0x02,0x3c,0xa4,0x3e,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34, +0x00,0x00,0x64,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0xfb,0x07,0x00,0x08,0x02,0x80,0x03,0x3c,0xc8,0xff,0xbd,0x27, +0xff,0xff,0xa8,0x30,0x02,0x80,0x02,0x3c,0x25,0x40,0x02,0x01,0x30,0x00,0xb6,0xaf, +0x20,0x00,0xb2,0xaf,0x34,0x00,0xbf,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x00,0x00,0x03,0x8d, +0xff,0xff,0xd2,0x30,0x21,0xb0,0xa0,0x00,0x00,0xc0,0x02,0x24,0x08,0x00,0x45,0x26, +0x04,0x00,0x06,0x8d,0x24,0x18,0x62,0x00,0xff,0x3f,0xa5,0x30,0xf0,0xff,0x02,0x3c, +0x25,0x18,0x65,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x80,0x05,0x3c, +0x25,0x18,0x65,0x00,0xff,0x01,0xc6,0x34,0x00,0x00,0x03,0xad,0x04,0x00,0x06,0xad, +0x21,0x48,0x80,0x00,0xff,0xff,0xe7,0x30,0x18,0x00,0x12,0xa5,0x1a,0x00,0x07,0xa1, +0x18,0x00,0x03,0x8d,0xff,0x7f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x02,0x80,0x15,0x3c,0x18,0x00,0x03,0xad,0x38,0x15,0xa5,0x26,0xee,0x23,0xa3,0x90, +0x00,0x00,0x00,0x00,0x01,0x00,0x62,0x24,0xee,0x23,0xa2,0xa0,0x18,0x00,0x04,0x8d, +0xff,0x80,0x02,0x3c,0x20,0x00,0x45,0x26,0xff,0xff,0x42,0x34,0x7f,0x00,0x63,0x30, +0xff,0xff,0xb2,0x30,0x24,0x20,0x82,0x00,0x00,0x1e,0x03,0x00,0x25,0xb0,0x02,0x3c, +0xc0,0x00,0x42,0x34,0x25,0x20,0x83,0x00,0x07,0x00,0x45,0x32,0x18,0x00,0x04,0xad, +0x00,0x00,0x52,0xa4,0x03,0x00,0xa0,0x10,0xff,0xff,0x42,0x32,0x08,0x00,0x42,0x26, +0xff,0xff,0x42,0x30,0x38,0x15,0xb4,0x26,0xd0,0x25,0x86,0x8e,0xd4,0x25,0x90,0x8e, +0xf8,0xff,0x52,0x30,0x21,0x10,0xd2,0x00,0x2b,0x10,0x02,0x02,0x31,0x00,0x40,0x10, +0xff,0x00,0x33,0x31,0x23,0x80,0x06,0x02,0x21,0x28,0xc0,0x02,0xff,0xff,0x07,0x32, +0x01,0x00,0x11,0x24,0x21,0x20,0x60,0x02,0x10,0x01,0x00,0x0c,0x10,0x00,0xb1,0xaf, +0x23,0x18,0x50,0x02,0xff,0xff,0x72,0x30,0x22,0x10,0x02,0x3c,0x21,0x10,0x42,0x02, +0x21,0x20,0x60,0x02,0x4d,0x01,0x00,0x0c,0xd0,0x25,0x82,0xae,0x21,0x28,0xd0,0x02, +0x21,0x38,0x40,0x02,0x21,0x20,0x60,0x02,0x10,0x00,0xb1,0xaf,0x22,0x10,0x06,0x3c, +0x10,0x01,0x00,0x0c,0x38,0x15,0xb1,0x26,0xd0,0x25,0x23,0x8e,0x25,0xb0,0x10,0x3c, +0xb0,0x03,0x02,0x36,0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,0x4d,0x01,0x00,0x0c, +0x00,0x00,0x00,0x00,0xd0,0x25,0x25,0x8e,0xec,0x00,0x02,0x36,0xbd,0x00,0x04,0x36, +0x00,0x00,0x45,0xac,0x00,0x00,0x83,0x90,0xc2,0x00,0x10,0x36,0x34,0x00,0xbf,0x8f, +0x10,0x00,0x63,0x34,0x00,0x00,0x83,0xa0,0x30,0x00,0xb6,0x8f,0x00,0x00,0x05,0xa6, +0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f, +0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03, +0x38,0x00,0xbd,0x27,0x21,0x28,0xc0,0x02,0x21,0x20,0x60,0x02,0x21,0x38,0x40,0x02, +0x01,0x00,0x02,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa2,0xaf,0xd0,0x25,0x83,0x8e, +0x38,0x15,0xb1,0x26,0x25,0xb0,0x10,0x3c,0x21,0x18,0x72,0x00,0xd0,0x25,0x83,0xae, +0xd0,0x25,0x23,0x8e,0xb0,0x03,0x02,0x36,0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac, +0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,0xd0,0x25,0x25,0x8e,0xec,0x00,0x02,0x36, +0xbd,0x00,0x04,0x36,0x00,0x00,0x45,0xac,0x00,0x00,0x83,0x90,0xc2,0x00,0x10,0x36, +0x34,0x00,0xbf,0x8f,0x10,0x00,0x63,0x34,0x00,0x00,0x83,0xa0,0x30,0x00,0xb6,0x8f, +0x00,0x00,0x05,0xa6,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c, +0x14,0x00,0xb1,0xaf,0x18,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0xbf,0x00,0x42,0x34, +0x00,0x00,0x43,0x90,0x21,0x28,0x00,0x00,0x08,0x00,0x06,0x24,0x04,0x00,0x63,0x2c, +0x12,0x00,0x60,0x14,0x21,0x88,0x80,0x00,0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x4c,0x3b,0x63,0x24, +0x04,0x00,0x64,0x8c,0x00,0x00,0x23,0xae,0x04,0x00,0x71,0xac,0x00,0x00,0x91,0xac, +0x04,0x00,0x24,0xae,0x00,0x60,0x82,0x40,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x08,0x00,0x82,0x94, +0x02,0x80,0x04,0x3c,0x58,0x45,0x00,0x0c,0x25,0x20,0x44,0x00,0x00,0x60,0x10,0x40, +0x01,0x00,0x01,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x08,0x00,0x25,0x8e, +0x0c,0x00,0x26,0x96,0x14,0x00,0x27,0x96,0xa7,0x08,0x00,0x0c,0x09,0x00,0x04,0x24, +0x04,0x00,0x23,0x8e,0x00,0x00,0x22,0x8e,0x21,0x20,0x20,0x02,0x00,0x00,0x62,0xac, +0x04,0x00,0x43,0xac,0x00,0x00,0x31,0xae,0x40,0x49,0x00,0x0c,0x04,0x00,0x31,0xae, +0x00,0x60,0x90,0x40,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0xe8,0x25,0x63,0x24,0x18,0x03,0x42,0x34,0xe0,0xff,0xbd,0x27,0xff,0xff,0x84,0x30, +0x00,0x00,0x43,0xac,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf, +0x1c,0x00,0xbf,0xaf,0xff,0xff,0xb0,0x30,0xff,0xff,0xd2,0x30,0x1f,0x49,0x00,0x0c, +0xff,0xff,0xf1,0x30,0x21,0x20,0x40,0x00,0x0a,0x00,0x40,0x10,0x21,0x18,0x00,0x00, +0x08,0x00,0x43,0x94,0x14,0x00,0x50,0xac,0x02,0x80,0x02,0x3c,0x25,0x18,0x62,0x00, +0x18,0x00,0x63,0x24,0x06,0x00,0x71,0xa4,0x42,0x09,0x00,0x0c,0x04,0x00,0x72,0xa4, +0x01,0x00,0x03,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0x2a,0xb0,0x04,0x3c,0x28,0x00,0x85,0x34,0x03,0x00,0x82,0x90,0x04,0x00,0x84,0x24, +0x05,0x00,0x40,0x14,0x2b,0x18,0xa4,0x00,0xfb,0xff,0x60,0x10,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xa0,0x26,0x63,0x24,0x18,0x03,0x42,0x34, +0xd0,0xff,0xbd,0x27,0x00,0x00,0x43,0xac,0x24,0x00,0xb3,0xaf,0x28,0x00,0xbf,0xaf, +0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x9c,0x09,0x00,0x0c,0x18,0x00,0xb0,0xaf, +0x06,0x00,0x40,0x10,0x02,0x80,0x13,0x3c,0x38,0x15,0x63,0x26,0x82,0x0b,0x62,0x90, +0x00,0x00,0x00,0x00,0x9f,0x00,0x40,0x14,0x00,0xc0,0x04,0x34,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2a,0xb0,0x02,0x3c,0x36,0x00,0x42,0x34, +0x00,0x00,0x43,0x90,0x38,0x15,0x66,0x26,0xd8,0x25,0xc5,0x8c,0xc0,0x18,0x03,0x00, +0x23,0xb0,0x04,0x3c,0xf0,0x07,0x63,0x30,0xff,0x1f,0x02,0x3c,0x21,0x18,0x64,0x00, +0xff,0xff,0x42,0x34,0x24,0x20,0x62,0x00,0x23,0x88,0x85,0x00,0x00,0x04,0x22,0x26, +0x2b,0x28,0x85,0x00,0x88,0x25,0xc3,0x8c,0x0b,0x88,0x45,0x00,0xe1,0x01,0x22,0x2e, +0x84,0x25,0xc3,0xac,0xdc,0x25,0xc4,0xac,0x8e,0x25,0xc0,0xa4,0x14,0x00,0x40,0x14, +0x8d,0x25,0xc0,0xa0,0x20,0xfe,0x82,0x24,0x20,0x02,0x83,0x24,0x0a,0x18,0x45,0x00, +0x23,0x10,0x02,0x3c,0xff,0x03,0x42,0x34,0x2b,0x10,0x43,0x00,0x21,0x28,0x60,0x00, +0x34,0x00,0x40,0x14,0xd8,0x25,0xc3,0xac,0xdc,0x25,0xc2,0x8c,0x00,0x00,0x00,0x00, +0x2b,0x18,0x45,0x00,0x23,0x88,0x45,0x00,0x03,0x00,0x60,0x10,0xe1,0x01,0x22,0x2e, +0x00,0x04,0x31,0x26,0xe1,0x01,0x22,0x2e,0x0e,0x00,0x40,0x10,0x38,0x15,0x70,0x26, +0x38,0x15,0x70,0x26,0xdc,0x25,0x03,0x8e,0xd8,0x25,0x04,0x8e,0x00,0x00,0x00,0x00, +0x2b,0x10,0x83,0x00,0x26,0x00,0x40,0x14,0x2b,0x10,0x64,0x00,0x52,0x00,0x40,0x14, +0x25,0xb0,0x02,0x3c,0x80,0x00,0x03,0x24,0xd0,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x38,0x15,0x70,0x26,0xd8,0x25,0x03,0x96,0x2a,0xb0,0x02,0x3c,0x35,0x00,0x42,0x34, +0xc2,0x88,0x03,0x00,0x00,0x00,0x51,0xa0,0x4b,0x20,0x00,0x0c,0x00,0x00,0x00,0x00, +0x8e,0x25,0x03,0x96,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x08,0x0b,0x02,0x8e,0x80,0x00,0x03,0x3c,0x41,0xb0,0x04,0x3c,0x25,0x10,0x43,0x00, +0x00,0x00,0x82,0xac,0x28,0x00,0xbf,0x8f,0x08,0x0b,0x02,0xae,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x30,0x00,0xbd,0x27,0x00,0xfc,0xa5,0x24,0xde,0x09,0x00,0x08,0xd8,0x25,0xc5,0xac, +0x84,0x25,0x05,0x8e,0x21,0x30,0x80,0x00,0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x84,0x25,0x03,0x8e,0x8e,0x25,0x05,0x96, +0xd8,0x25,0x02,0x8e,0x21,0x18,0x71,0x00,0x21,0x28,0x25,0x02,0x21,0x10,0x51,0x00, +0x09,0x00,0x04,0x24,0xd8,0x25,0x02,0xae,0x84,0x25,0x03,0xae,0x4d,0x01,0x00,0x0c, +0x8e,0x25,0x05,0xa6,0x38,0x15,0x70,0x26,0xd8,0x25,0x03,0x96,0x2a,0xb0,0x02,0x3c, +0x35,0x00,0x42,0x34,0xc2,0x88,0x03,0x00,0x00,0x00,0x51,0xa0,0x4b,0x20,0x00,0x0c, +0x00,0x00,0x00,0x00,0x8e,0x25,0x03,0x96,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34, +0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x08,0x0b,0x02,0x8e,0x80,0x00,0x03,0x3c,0x41,0xb0,0x04,0x3c, +0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac,0x28,0x00,0xbf,0x8f,0x08,0x0b,0x02,0xae, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0xe0,0x25,0x02,0x8e,0x84,0x25,0x05,0x8e, +0x21,0x30,0x80,0x00,0x23,0x88,0x44,0x00,0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x84,0x25,0x03,0x8e,0x8e,0x25,0x02,0x96, +0xdc,0x25,0x12,0x96,0x21,0x18,0x71,0x00,0x21,0x10,0x22,0x02,0x23,0x10,0x11,0x3c, +0x84,0x25,0x03,0xae,0x8e,0x25,0x02,0xa6,0x0c,0x00,0x40,0x16,0xd8,0x25,0x11,0xae, +0x09,0x00,0x04,0x24,0x4d,0x01,0x00,0x0c,0x38,0x15,0x70,0x26,0x26,0x0a,0x00,0x08, +0x00,0x00,0x00,0x00,0x38,0x27,0x62,0x94,0x82,0x0b,0x60,0xa0,0x86,0x27,0x00,0x0c, +0x21,0x20,0x44,0x00,0xbb,0x09,0x00,0x08,0x00,0x00,0x00,0x00,0x4d,0x01,0x00,0x0c, +0x09,0x00,0x04,0x24,0x84,0x25,0x05,0x8e,0x09,0x00,0x04,0x24,0x23,0x10,0x06,0x3c, +0x21,0x38,0x40,0x02,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x84,0x25,0x03,0x8e, +0x8e,0x25,0x02,0x96,0x21,0x20,0x51,0x02,0x21,0x18,0x72,0x00,0x21,0x10,0x42,0x02, +0xd8,0x25,0x04,0xae,0x09,0x00,0x04,0x24,0x84,0x25,0x03,0xae,0x55,0x0a,0x00,0x08, +0x8e,0x25,0x02,0xa6,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x05,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x09,0x00,0x02,0x24,0x02,0x80,0x09,0x3c, +0x38,0x15,0x28,0x25,0xf4,0x23,0x06,0x8d,0xff,0xff,0x02,0x34,0x44,0x00,0xc2,0x10, +0x21,0x38,0x80,0x00,0x2b,0x10,0xc7,0x00,0x34,0x00,0x40,0x10,0x02,0x19,0x06,0x00, +0x21,0x10,0xc7,0x00,0x23,0x10,0x43,0x00,0x10,0x00,0x46,0x24,0xf4,0x23,0x06,0xad, +0xf8,0x23,0x02,0xad,0x38,0x15,0x26,0x25,0x05,0x00,0xc4,0x90,0xff,0xff,0x02,0x34, +0xff,0x00,0x83,0x30,0x33,0x00,0x62,0x10,0x00,0x11,0x07,0x00,0xff,0x00,0x84,0x30, +0x2b,0x10,0x87,0x00,0x20,0x00,0x40,0x10,0x03,0x19,0x04,0x00,0x03,0x11,0x04,0x00, +0x21,0x18,0x87,0x00,0x23,0x18,0x62,0x00,0x10,0x00,0x64,0x24,0x05,0x00,0xc4,0xa0, +0xf8,0x23,0xc3,0xac,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x45,0x00,0x38,0x15,0x23,0x25,0x80,0x10,0x02,0x00,0x21,0x28,0x43,0x00, +0x80,0x11,0xa6,0x8c,0x00,0x21,0x07,0x00,0xff,0xff,0xc2,0x38,0x0a,0x30,0x82,0x00, +0x2b,0x18,0xc7,0x00,0x07,0x00,0x60,0x10,0x21,0x10,0xc7,0x00,0x02,0x19,0x06,0x00, +0x23,0x10,0x43,0x00,0x10,0x00,0x46,0x24,0x80,0x11,0xa6,0xac,0x08,0x00,0xe0,0x03, +0x84,0x11,0xa2,0xac,0x02,0x19,0x06,0x00,0x23,0x10,0x43,0x00,0x80,0x11,0xa2,0xac, +0x08,0x00,0xe0,0x03,0x84,0x11,0xa2,0xac,0x21,0x10,0x87,0x00,0x23,0x10,0x43,0x00, +0x05,0x00,0xc2,0xa0,0x95,0x0a,0x00,0x08,0xf8,0x23,0xc2,0xac,0x21,0x10,0xc7,0x00, +0x23,0x10,0x43,0x00,0xf4,0x23,0x02,0xad,0xf8,0x23,0x02,0xad,0x38,0x15,0x26,0x25, +0x05,0x00,0xc4,0x90,0xff,0xff,0x02,0x34,0xff,0x00,0x83,0x30,0xcf,0xff,0x62,0x14, +0x00,0x11,0x07,0x00,0x21,0x20,0x40,0x00,0x8b,0x0a,0x00,0x08,0x05,0x00,0xc2,0xa0, +0x00,0x31,0x04,0x00,0x7d,0x0a,0x00,0x08,0xf4,0x23,0x06,0xad,0x63,0x00,0x82,0x24, +0x77,0x00,0x42,0x2c,0x00,0x00,0x85,0x28,0x04,0x00,0x40,0x10,0x21,0x18,0x00,0x00, +0x64,0x00,0x82,0x24,0x64,0x00,0x03,0x24,0x0b,0x18,0x45,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0xe8,0xff,0xbd,0x27,0x14,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf, +0x0c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,0x04,0x00,0x42,0x28, +0x0d,0x00,0x40,0x14,0x21,0x38,0xa0,0x00,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24, +0x0c,0x24,0x43,0x8c,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x63,0x24, +0x0c,0x24,0x43,0xac,0x04,0x00,0xa4,0x90,0x18,0x00,0xbd,0x27,0x42,0x20,0x04,0x00, +0xc3,0x0a,0x00,0x08,0x96,0xff,0x84,0x24,0x02,0x80,0x10,0x3c,0x25,0xb0,0x06,0x3c, +0x38,0x15,0x05,0x26,0x24,0x08,0xc3,0x34,0x00,0x00,0x64,0x8c,0x08,0x24,0xa2,0x8c, +0x00,0x02,0x84,0x30,0x01,0x00,0x42,0x24,0x21,0x00,0x80,0x10,0x08,0x24,0xa2,0xac, +0x05,0x00,0xe5,0x90,0x01,0x00,0x02,0x24,0x60,0x00,0xa6,0x30,0x42,0x31,0x06,0x00, +0x42,0x00,0xc2,0x10,0x02,0x00,0xc2,0x28,0x51,0x00,0x40,0x14,0x02,0x00,0x02,0x24, +0x47,0x00,0xc2,0x10,0x03,0x00,0x02,0x24,0x2e,0x00,0xc2,0x10,0x1f,0x00,0xa2,0x30, +0xc3,0x0a,0x00,0x0c,0x21,0x20,0x00,0x01,0x38,0x15,0x05,0x26,0x04,0x24,0xa4,0x8c, +0x21,0x30,0x40,0x00,0xff,0xff,0x02,0x34,0x31,0x00,0x82,0x10,0x00,0x00,0x00,0x00, +0x2b,0x10,0x86,0x00,0x26,0x00,0x40,0x10,0x02,0x19,0x04,0x00,0x21,0x10,0x86,0x00, +0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x23,0x20,0x43,0x00,0x10,0x00,0x84,0x24, +0x21,0x10,0xc0,0x00,0x18,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x04,0x24,0xa4,0xac, +0x05,0x00,0xe2,0x90,0x6b,0x0c,0xc3,0x34,0x82,0x31,0x02,0x00,0x00,0x00,0x66,0xa0, +0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x82,0x24,0x01,0x00,0x02,0x24,0x21,0x00,0xc2,0x10,0x00,0x00,0x00,0x00, +0x02,0x00,0xc2,0x28,0x30,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x25,0x00,0xc2,0x10, +0xe9,0xff,0x03,0x24,0x03,0x00,0x02,0x24,0xd9,0xff,0xc2,0x14,0xce,0xff,0x03,0x24, +0x05,0x00,0xe2,0x90,0x00,0x00,0x00,0x00,0x3e,0x00,0x42,0x30,0xf8,0x0a,0x00,0x08, +0x23,0x40,0x62,0x00,0x40,0x10,0x02,0x00,0x23,0x0b,0x00,0x08,0xce,0xff,0x03,0x24, +0x21,0x10,0x86,0x00,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x23,0x10,0x43,0x00, +0x04,0x24,0xa2,0xac,0x18,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x21,0x10,0xc0,0x00, +0x00,0x21,0x06,0x00,0x00,0x0b,0x00,0x08,0x04,0x24,0xa4,0xac,0x1f,0x00,0xa2,0x30, +0x40,0x10,0x02,0x00,0x05,0x00,0x03,0x24,0xf8,0x0a,0x00,0x08,0x23,0x40,0x62,0x00, +0x05,0x00,0xe2,0x90,0x05,0x00,0x03,0x24,0x36,0x0b,0x00,0x08,0x3e,0x00,0x42,0x30, +0x1f,0x00,0xa2,0x30,0x40,0x10,0x02,0x00,0xe9,0xff,0x03,0x24,0xf8,0x0a,0x00,0x08, +0x23,0x40,0x62,0x00,0x05,0x00,0xe2,0x90,0x3f,0x0b,0x00,0x08,0x3e,0x00,0x42,0x30, +0xb3,0xff,0xc0,0x14,0x1f,0x00,0xa2,0x30,0x40,0x10,0x02,0x00,0xfd,0xff,0x03,0x24, +0xf8,0x0a,0x00,0x08,0x23,0x40,0x62,0x00,0xad,0xff,0xc0,0x14,0xfd,0xff,0x03,0x24, +0x05,0x00,0xe2,0x90,0x48,0x0b,0x00,0x08,0x3e,0x00,0x42,0x30,0xe0,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x0c,0x00,0x82,0x8c, +0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,0x29,0x00,0x40,0x14, +0x21,0x80,0xa0,0x00,0x00,0x00,0xa4,0x8c,0x02,0x80,0x11,0x3c,0x3f,0x00,0x84,0x30, +0x40,0x20,0x04,0x00,0xc3,0x0a,0x00,0x0c,0x96,0xff,0x84,0x24,0x38,0x15,0x25,0x26, +0xfc,0x23,0xa4,0x8c,0x21,0x18,0x40,0x00,0xff,0xff,0x02,0x34,0x3c,0x00,0x82,0x10, +0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,0x27,0x00,0x40,0x10,0x21,0x10,0x83,0x00, +0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00,0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24, +0xfc,0x23,0xa4,0xac,0x00,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00, +0x7e,0x00,0x84,0x30,0xc3,0x0a,0x00,0x0c,0x96,0xff,0x84,0x24,0x38,0x15,0x25,0x26, +0x00,0x24,0xa4,0x8c,0x21,0x18,0x40,0x00,0xff,0xff,0x02,0x34,0x25,0x00,0x82,0x10, +0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,0x0b,0x00,0x40,0x10,0x21,0x10,0x83,0x00, +0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00,0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24, +0x00,0x24,0xa4,0xac,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x02,0x19,0x04,0x00,0x23,0x10,0x43,0x00,0x20,0x00,0xbd,0x27, +0x08,0x00,0xe0,0x03,0x00,0x24,0xa2,0xac,0x02,0x19,0x04,0x00,0x23,0x10,0x43,0x00, +0xfc,0x23,0xa2,0xac,0x00,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00, +0x7e,0x00,0x84,0x30,0xc3,0x0a,0x00,0x0c,0x96,0xff,0x84,0x24,0x38,0x15,0x25,0x26, +0x00,0x24,0xa4,0x8c,0x21,0x18,0x40,0x00,0xff,0xff,0x02,0x34,0xde,0xff,0x82,0x14, +0x2b,0x10,0x83,0x00,0x00,0x21,0x03,0x00,0x79,0x0b,0x00,0x08,0x00,0x24,0xa4,0xac, +0x00,0x21,0x03,0x00,0x65,0x0b,0x00,0x08,0xfc,0x23,0xa4,0xac,0x98,0xff,0xbd,0x27, +0x02,0x80,0x02,0x3c,0x58,0x00,0xb6,0xaf,0x64,0x00,0xbf,0xaf,0x60,0x00,0xbe,0xaf, +0x5c,0x00,0xb7,0xaf,0x54,0x00,0xb5,0xaf,0x50,0x00,0xb4,0xaf,0x4c,0x00,0xb3,0xaf, +0x48,0x00,0xb2,0xaf,0x44,0x00,0xb1,0xaf,0x40,0x00,0xb0,0xaf,0x38,0x15,0x56,0x24, +0x25,0xb0,0x03,0x3c,0x04,0x01,0x62,0x34,0x00,0x00,0x43,0x8c,0xc0,0x25,0xc7,0x8e, +0x00,0x00,0x00,0x00,0x33,0x00,0xe3,0x10,0xc4,0x25,0xc3,0xae,0x2b,0x10,0x67,0x00, +0xbf,0x00,0x40,0x14,0x2b,0x10,0xe3,0x00,0xe9,0x00,0x40,0x14,0x02,0x80,0x02,0x3c, +0x38,0x15,0x44,0x24,0x94,0x25,0x83,0x94,0x02,0x80,0x02,0x3c,0x21,0x88,0x00,0x00, +0x18,0x00,0x40,0x1a,0x25,0x98,0x62,0x00,0x21,0xf0,0x80,0x00,0x01,0x00,0x14,0x24, +0x21,0x20,0x00,0x00,0x21,0x80,0x93,0x00,0x00,0x00,0x05,0x8e,0x00,0x00,0x00,0x00, +0x07,0x00,0xa0,0x10,0x01,0x00,0x22,0x26,0x04,0x00,0x02,0x8e,0x00,0xf0,0x03,0x3c, +0x00,0x20,0x04,0x3c,0x24,0x10,0x43,0x00,0x1f,0x00,0x44,0x10,0x06,0x00,0x22,0x26, +0xff,0xff,0x51,0x30,0x82,0x16,0x05,0x00,0x01,0x00,0x42,0x30,0x35,0x00,0x54,0x10, +0x02,0x80,0x03,0x3c,0x80,0x20,0x11,0x00,0x2a,0x10,0x92,0x00,0xed,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0x38,0x00,0xa4,0x8f,0x40,0x49,0x00,0x0c,0x00,0x00,0x00,0x00, +0x02,0x80,0x02,0x3c,0x08,0x04,0x44,0x24,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00, +0xc2,0x2e,0x00,0x0c,0x21,0x38,0x00,0x00,0x25,0xb0,0x03,0x3c,0x04,0x01,0x62,0x34, +0x00,0x00,0x43,0x8c,0xc0,0x25,0xc7,0x8e,0x00,0x00,0x00,0x00,0xcf,0xff,0xe3,0x14, +0xc4,0x25,0xc3,0xae,0x25,0xb0,0x04,0x3c,0x00,0x01,0x82,0x34,0x00,0x00,0x47,0xac, +0xdc,0x0b,0x00,0x08,0xc0,0x25,0xc7,0xae,0xc8,0x0c,0xc2,0x8f,0x00,0x00,0x00,0x00, +0x01,0x00,0x42,0x24,0xc8,0x0c,0xc2,0xaf,0x0c,0x00,0x04,0x8e,0x0c,0x00,0x02,0x24, +0x3f,0x00,0x83,0x30,0x7b,0x00,0x62,0x10,0x21,0x28,0xc0,0x03,0x3f,0x00,0x83,0x30, +0x0d,0x00,0x02,0x24,0x70,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x3f,0x00,0x83,0x30, +0x0e,0x00,0x02,0x24,0x04,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x8e, +0xd0,0x0b,0x00,0x08,0x06,0x00,0x22,0x26,0xd4,0x0c,0xc2,0x8f,0x00,0x00,0x00,0x00, +0x01,0x00,0x42,0x24,0xd4,0x0c,0xc2,0xaf,0x00,0x00,0x05,0x8e,0xd0,0x0b,0x00,0x08, +0x06,0x00,0x22,0x26,0x38,0x15,0x62,0x8c,0x00,0x00,0x00,0x00,0x42,0x11,0x02,0x00, +0x01,0x00,0x42,0x30,0x05,0x00,0x54,0x10,0xc2,0x13,0x05,0x00,0x1e,0x00,0x42,0x30, +0x21,0x10,0x51,0x00,0xd5,0x0b,0x00,0x08,0xff,0xff,0x51,0x30,0x38,0x15,0x64,0x24, +0x01,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0x24,0x00,0x40,0x14,0x02,0x80,0x04,0x3c, +0x04,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x04,0x00,0x0f,0x00,0x45,0x30, +0x08,0x00,0xa3,0x28,0x1c,0x00,0x60,0x10,0x02,0x17,0x04,0x00,0x03,0x00,0x43,0x30, +0x08,0x00,0x60,0x10,0x00,0xc0,0x02,0x3c,0x24,0x10,0x82,0x00,0x16,0x00,0x40,0x14, +0x03,0x00,0x02,0x24,0x15,0x00,0x62,0x10,0x02,0x80,0x04,0x3c,0x14,0x00,0x60,0x10, +0x38,0x15,0x82,0x24,0x80,0x10,0x11,0x00,0x21,0xa8,0x53,0x00,0x02,0x80,0x02,0x3c, +0x38,0x15,0x42,0x24,0x21,0x18,0xa2,0x00,0xec,0xff,0xa2,0x8e,0xf0,0x04,0x77,0x90, +0x25,0xb0,0x03,0x3c,0xd4,0x02,0x63,0x34,0x21,0x28,0xa0,0x02,0x21,0x20,0x00,0x02, +0x00,0x00,0x62,0xac,0xcd,0x0a,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x20,0x40,0x00, +0x77,0x0a,0x00,0x0c,0x21,0x28,0xe0,0x02,0x02,0x80,0x04,0x3c,0x38,0x15,0x82,0x24, +0x01,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x80,0x00,0x74,0x10,0x00,0x00,0x00,0x00, +0x02,0x80,0x04,0x3c,0x38,0x15,0x84,0x24,0x01,0x00,0x83,0x90,0x02,0x00,0x02,0x24, +0x08,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x8e,0x00,0x00,0x00,0x00, +0xc2,0x13,0x05,0x00,0x1e,0x00,0x42,0x30,0x21,0x10,0x51,0x00,0xd5,0x0b,0x00,0x08, +0xff,0xff,0x51,0x30,0x04,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x04,0x00, +0x0f,0x00,0x46,0x30,0x08,0x00,0xc3,0x28,0xf3,0xff,0x60,0x10,0x02,0x17,0x04,0x00, +0x03,0x00,0x42,0x30,0xf0,0xff,0x40,0x14,0x80,0x10,0x11,0x00,0x21,0xa8,0x53,0x00, +0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0x21,0x18,0xc2,0x00,0xec,0xff,0xa2,0x8e, +0xf0,0x04,0x77,0x90,0x25,0xb0,0x03,0x3c,0xd4,0x02,0x63,0x34,0x21,0x28,0xa0,0x02, +0x21,0x20,0x00,0x02,0x00,0x00,0x62,0xac,0xcd,0x0a,0x00,0x0c,0x00,0x00,0x00,0x00, +0x21,0x20,0x40,0x00,0x77,0x0a,0x00,0x0c,0x21,0x28,0xe0,0x02,0x00,0x00,0x05,0x8e, +0x49,0x0c,0x00,0x08,0xc2,0x13,0x05,0x00,0xd0,0x0c,0xa2,0x8c,0x00,0x00,0x00,0x00, +0x01,0x00,0x42,0x24,0xd0,0x0c,0xa2,0xac,0x0c,0x00,0x04,0x8e,0xfc,0x0b,0x00,0x08, +0x3f,0x00,0x83,0x30,0xcc,0x0c,0xc2,0x8f,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24, +0xcc,0x0c,0xc2,0xaf,0x0c,0x00,0x04,0x8e,0xf8,0x0b,0x00,0x08,0x3f,0x00,0x83,0x30, +0xc8,0x25,0xc2,0x8e,0xff,0xff,0x71,0x30,0x23,0x10,0x47,0x00,0xff,0xff,0x50,0x30, +0x21,0x18,0x11,0x02,0xff,0xff,0x72,0x30,0x1f,0x49,0x00,0x0c,0x21,0x20,0x40,0x02, +0x74,0x00,0x40,0x10,0x38,0x00,0xa2,0xaf,0x38,0x00,0xa3,0x8f,0xc0,0x25,0xc6,0x8e, +0x21,0x38,0x00,0x02,0x08,0x00,0x62,0x8c,0x08,0x00,0x04,0x24,0x10,0x00,0xa0,0xaf, +0x21,0x18,0x52,0x00,0x21,0x28,0x40,0x00,0x90,0x25,0xc3,0xae,0x10,0x01,0x00,0x0c, +0x94,0x25,0xc2,0xae,0x4d,0x01,0x00,0x0c,0x08,0x00,0x04,0x24,0x94,0x25,0xc5,0x8e, +0x25,0xb0,0x04,0x3c,0x24,0x10,0x02,0x3c,0x21,0x28,0xb0,0x00,0x00,0x01,0x90,0x34, +0x00,0x00,0x02,0xae,0x21,0x38,0x20,0x02,0x08,0x00,0x04,0x24,0x24,0x10,0x06,0x3c, +0xc0,0x25,0xc2,0xae,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0xc4,0x25,0xc3,0x8e, +0x08,0x00,0x04,0x24,0x4d,0x01,0x00,0x0c,0xc0,0x25,0xc3,0xae,0xc0,0x25,0xc2,0x8e, +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xae,0xbc,0x0b,0x00,0x08,0x02,0x80,0x02,0x3c, +0x23,0x10,0x67,0x00,0xff,0xff,0x52,0x30,0x1f,0x49,0x00,0x0c,0x21,0x20,0x40,0x02, +0x53,0x00,0x40,0x10,0x38,0x00,0xa2,0xaf,0x38,0x00,0xa3,0x8f,0xc0,0x25,0xc6,0x8e, +0x08,0x00,0x04,0x24,0x08,0x00,0x62,0x8c,0x21,0x38,0x40,0x02,0x10,0x00,0xa0,0xaf, +0x21,0x18,0x52,0x00,0x21,0x28,0x40,0x00,0x90,0x25,0xc3,0xae,0x10,0x01,0x00,0x0c, +0x94,0x25,0xc2,0xae,0xc4,0x25,0xc3,0x8e,0x08,0x00,0x04,0x24,0x4d,0x01,0x00,0x0c, +0xc0,0x25,0xc3,0xae,0xc0,0x25,0xc3,0x8e,0x25,0xb0,0x04,0x3c,0x00,0x01,0x82,0x34, +0x00,0x00,0x43,0xac,0xbc,0x0b,0x00,0x08,0x02,0x80,0x02,0x3c,0x04,0x00,0x04,0x8e, +0x00,0x00,0x00,0x00,0x02,0x14,0x04,0x00,0x0f,0x00,0x42,0x30,0x08,0x00,0x42,0x28, +0x06,0x00,0x40,0x10,0x00,0xc0,0x02,0x3c,0x02,0x17,0x04,0x00,0x03,0x00,0x42,0x30, +0x0b,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,0x00,0xc0,0x02,0x3c,0x24,0x10,0x82,0x00, +0x73,0xff,0x40,0x14,0x02,0x17,0x04,0x00,0x03,0x00,0x42,0x30,0x03,0x00,0x03,0x24, +0x6f,0xff,0x43,0x10,0x00,0x00,0x00,0x00,0x6d,0xff,0x40,0x10,0x02,0x80,0x03,0x3c, +0x38,0x15,0x62,0x8c,0x00,0x00,0x00,0x00,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30, +0x15,0x00,0x54,0x10,0x21,0xb8,0x00,0x00,0x80,0x10,0x11,0x00,0x21,0xa8,0x53,0x00, +0xec,0xff,0xa3,0x8e,0x25,0xb0,0x02,0x3c,0xd4,0x02,0x42,0x34,0x21,0x20,0x00,0x02, +0x21,0x28,0xa0,0x02,0x00,0x00,0x43,0xac,0xcd,0x0a,0x00,0x0c,0x00,0x00,0x00,0x00, +0x21,0x20,0x40,0x00,0x77,0x0a,0x00,0x0c,0x21,0x28,0xe0,0x02,0x58,0xff,0xe0,0x16, +0x00,0x00,0x00,0x00,0x21,0x28,0xa0,0x02,0x4f,0x0b,0x00,0x0c,0x21,0x20,0x00,0x02, +0x41,0x0c,0x00,0x08,0x02,0x80,0x04,0x3c,0x02,0x14,0x04,0x00,0x0f,0x00,0x42,0x30, +0x38,0x15,0x63,0x24,0x21,0x10,0x43,0x00,0xf0,0x04,0x57,0x90,0xdb,0x0c,0x00,0x08, +0x80,0x10,0x11,0x00,0x25,0xb0,0x04,0x3c,0x44,0x44,0x02,0x3c,0xbc,0x02,0x83,0x34, +0x44,0x44,0x42,0x34,0x00,0x00,0x62,0xac,0xdd,0x0b,0x00,0x08,0x02,0x80,0x02,0x3c, +0xc4,0x25,0xc5,0x8e,0x25,0xb0,0x02,0x3c,0x00,0x01,0x43,0x34,0xbc,0x02,0x44,0x34, +0x66,0x66,0x02,0x3c,0x66,0x66,0x42,0x34,0x00,0x00,0x65,0xac,0x00,0x00,0x82,0xac, +0xdc,0x0b,0x00,0x08,0xc0,0x25,0xc5,0xae,0x00,0x80,0x02,0x3c,0x18,0x34,0x43,0x24, +0x25,0xb0,0x02,0x3c,0xc0,0xff,0xbd,0x27,0x18,0x03,0x42,0x34,0x38,0x00,0xbe,0xaf, +0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf, +0x3c,0x00,0xbf,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0x00,0x00,0x43,0xac,0x21,0xf0,0x00,0x00,0x02,0x80,0x14,0x3c, +0x02,0x80,0x15,0x3c,0x02,0x80,0x16,0x3c,0x02,0x80,0x17,0x3c,0x38,0x15,0x92,0x26, +0xf0,0x23,0x43,0x96,0x25,0xb0,0x04,0x3c,0x00,0x80,0x06,0x3c,0x18,0x03,0x85,0x34, +0x01,0x00,0x63,0x24,0x18,0x34,0xc2,0x24,0x00,0x00,0xa2,0xac,0xf0,0x23,0x43,0xa6, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0xc6,0x00,0x84,0x34,0x00,0x00,0x82,0x94,0x00,0x00,0x00,0x00,0x11,0x00,0x42,0x2c, +0x08,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,0x02,0x80,0x04,0x3c,0xa4,0x3e,0x62,0x8c, +0xbc,0x3e,0x83,0x8c,0x02,0x80,0x06,0x3c,0xbc,0x3e,0x80,0xac,0x25,0x10,0x43,0x00, +0xa4,0x3e,0xc2,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x25,0xb0,0x10,0x3c,0xc0,0x02,0x02,0x36,0x00,0x00,0x53,0x8c,0xff,0x00,0x05,0x3c, +0xff,0xff,0xa2,0x34,0x2b,0x10,0x53,0x00,0x40,0x00,0x40,0x10,0x00,0xff,0x02,0x3c, +0xff,0x00,0x42,0x34,0x00,0xfd,0x04,0x3c,0x24,0x18,0x62,0x02,0x17,0x00,0x82,0x34, +0x2e,0x07,0x62,0x10,0x2b,0x10,0x43,0x00,0x33,0x02,0x40,0x14,0xb5,0x00,0x82,0x34, +0x00,0xf9,0x06,0x3c,0x43,0x07,0x66,0x10,0x2b,0x10,0xc3,0x00,0xfa,0x02,0x40,0x14, +0x01,0x00,0x82,0x34,0x00,0xf1,0x02,0x3c,0x04,0x00,0x42,0x34,0x5b,0x07,0x62,0x10, +0x2b,0x10,0x43,0x00,0x45,0x03,0x40,0x14,0x00,0xf0,0x06,0x3c,0x03,0x00,0xc2,0x34, +0xf2,0x07,0x62,0x10,0x2b,0x10,0x43,0x00,0xdb,0x03,0x40,0x14,0x00,0xe0,0x02,0x3c, +0x8e,0x05,0x62,0x10,0x2b,0x10,0x43,0x00,0x44,0x05,0x40,0x14,0x01,0x00,0xc2,0x34, +0x00,0xc0,0x02,0x3c,0x6c,0x03,0x62,0x10,0x00,0xd0,0x02,0x3c,0x40,0x08,0x62,0x10, +0x00,0x0f,0x62,0x32,0x00,0xf0,0x02,0x3c,0x24,0x28,0x62,0x02,0x18,0x00,0xa2,0x10, +0x0f,0x00,0x03,0x3c,0x00,0x70,0x0a,0x3c,0x24,0x10,0x6a,0x02,0x02,0x25,0x13,0x00, +0xff,0xff,0x63,0x34,0x00,0x50,0x06,0x3c,0x24,0x38,0x63,0x02,0x02,0x47,0x02,0x00, +0xff,0x00,0x84,0x30,0x99,0x03,0xa6,0x10,0xff,0x00,0x69,0x32,0x2b,0x10,0xc5,0x00, +0x8d,0x03,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0x20,0x02,0x3c,0xd7,0x06,0xa2,0x10, +0x2b,0x10,0x45,0x00,0x47,0x04,0x40,0x14,0x00,0x30,0x02,0x3c,0xd4,0x06,0xa0,0x10, +0x80,0x10,0x04,0x00,0x00,0x10,0x02,0x3c,0xd1,0x06,0xa2,0x10,0x80,0x10,0x04,0x00, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x08,0x3c, +0x64,0x03,0x02,0x35,0x00,0x00,0x43,0x94,0x68,0x03,0x04,0x35,0xf0,0x3d,0xa3,0xa6, +0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x3e,0xc2,0xae,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xf0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00, +0x01,0x00,0x42,0x30,0xca,0x01,0x40,0x10,0x38,0x15,0x86,0x26,0x38,0x15,0x87,0x26, +0x38,0x15,0x84,0x8e,0xd8,0x02,0xe5,0x8c,0xe8,0x02,0xe6,0x8c,0xf0,0xff,0x02,0x3c, +0xff,0xff,0x42,0x34,0x00,0x50,0x03,0x3c,0x24,0x28,0xa2,0x00,0x01,0x00,0x84,0x34, +0x24,0x30,0xc3,0x00,0x00,0x10,0x02,0x3c,0x38,0x15,0x84,0xae,0xb6,0x06,0xc2,0x10, +0xd8,0x02,0xe5,0xac,0xf0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30, +0xb4,0x01,0x40,0x10,0xfb,0xff,0x03,0x24,0x38,0x15,0x82,0x8e,0x00,0x00,0x00,0x00, +0x04,0x00,0x42,0x34,0x38,0x15,0x82,0xae,0xf0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00, +0x04,0x00,0x42,0x30,0x42,0x01,0x40,0x10,0xdf,0xff,0x03,0x24,0x38,0x15,0x82,0x8e, +0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x34,0x38,0x15,0x82,0xae,0xf0,0x3d,0xa2,0x96, +0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30,0x42,0x01,0x40,0x14,0x00,0x00,0x00,0x00, +0xf0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,0x10,0x00,0x42,0x30,0x26,0x00,0x40,0x10, +0x38,0x15,0x84,0x26,0xc9,0x02,0x82,0x90,0x00,0x3e,0xc3,0x8e,0x01,0x00,0x42,0x24, +0xc9,0x02,0x82,0xa0,0x0f,0x00,0x63,0x30,0x01,0x00,0x02,0x24,0xc3,0x06,0x62,0x10, +0x02,0x80,0x04,0x3c,0x00,0x3e,0x82,0x8c,0x02,0x00,0x03,0x24,0x0f,0x00,0x42,0x30, +0xc0,0x06,0x43,0x10,0x00,0x00,0x00,0x00,0x00,0x3e,0x82,0x8c,0x03,0x00,0x03,0x24, +0x0f,0x00,0x42,0x30,0x02,0x00,0x43,0x10,0x03,0x00,0x04,0x24,0x21,0x20,0x00,0x00, +0x70,0x4a,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x3e,0xc3,0x8e,0xf0,0x3d,0xa5,0x96, +0x25,0xb0,0x02,0x3c,0xf0,0x00,0x63,0x30,0x64,0x03,0x42,0x34,0x02,0x19,0x03,0x00, +0xef,0x00,0xa5,0x30,0x38,0x15,0x84,0x26,0x02,0x00,0x83,0xa0,0x00,0x00,0x45,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0xf0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00, +0x20,0x00,0x42,0x30,0x26,0x00,0x40,0x10,0x38,0x15,0x84,0x26,0xca,0x02,0x82,0x90, +0x00,0x3e,0xc3,0x8e,0x01,0x00,0x42,0x24,0xca,0x02,0x82,0xa0,0x0f,0x00,0x63,0x30, +0x01,0x00,0x02,0x24,0x97,0x06,0x62,0x10,0x02,0x80,0x04,0x3c,0x00,0x3e,0x82,0x8c, +0x02,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x98,0x06,0x43,0x10,0x00,0x00,0x00,0x00, +0x00,0x3e,0x82,0x8c,0x03,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x02,0x00,0x43,0x10, +0x03,0x00,0x04,0x24,0x21,0x20,0x00,0x00,0x70,0x4a,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x3e,0xc3,0x8e,0xf0,0x3d,0xa5,0x96,0x25,0xb0,0x02,0x3c,0xf0,0x00,0x63,0x30, +0x64,0x03,0x42,0x34,0x02,0x19,0x03,0x00,0xdf,0x00,0xa5,0x30,0x38,0x15,0x84,0x26, +0x02,0x00,0x83,0xa0,0x00,0x00,0x45,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0xf0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x30,0xbe,0x00,0x40,0x10, +0x38,0x15,0x84,0x26,0x38,0x15,0x8f,0x26,0x08,0x00,0xe4,0x8d,0x00,0x00,0x00,0x00, +0x42,0x17,0x04,0x00,0x03,0x00,0x42,0x30,0x71,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x00,0x3e,0xc2,0x8e,0xff,0x9f,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x18,0x83,0x00, +0x00,0xff,0x11,0x3c,0x00,0x20,0x04,0x3c,0x25,0x18,0x64,0x00,0x24,0x10,0x51,0x00, +0x08,0x00,0xe3,0xad,0xce,0x01,0x40,0x14,0x02,0x80,0x10,0x3c,0x25,0xb0,0x0e,0x3c, +0x03,0x0d,0xc2,0x35,0x00,0x00,0x43,0x90,0x10,0x00,0xe4,0x8d,0xff,0x3f,0x02,0x3c, +0xff,0xff,0x42,0x34,0x24,0x58,0x82,0x00,0x70,0x00,0x63,0x30,0x00,0x40,0x02,0x3c, +0x7a,0x06,0x60,0x10,0x25,0x58,0x62,0x01,0x94,0x0e,0xc2,0x35,0x9c,0x0e,0xc3,0x35, +0xa4,0x0e,0xc4,0x35,0xac,0x0e,0xc5,0x35,0x00,0x00,0x47,0x8c,0x00,0x00,0x6a,0x8c, +0x00,0x00,0x8c,0x8c,0x00,0x00,0xa6,0x8c,0x0c,0x00,0xe4,0x8d,0xb4,0x0e,0xc2,0x35, +0x00,0x00,0x49,0x8c,0xff,0x03,0x05,0x3c,0x00,0xfc,0x08,0x24,0xbc,0x0e,0xc2,0x35, +0x24,0x38,0xe5,0x00,0x24,0x30,0xc5,0x00,0x24,0x18,0x68,0x01,0x02,0x3c,0x07,0x00, +0x00,0x00,0x4b,0x8c,0x24,0x20,0x88,0x00,0x02,0x34,0x06,0x00,0xcc,0x0e,0xcd,0x35, +0xc4,0x0e,0xc8,0x35,0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,0x25,0x20,0x87,0x00, +0x25,0x18,0x66,0x00,0x00,0x00,0x07,0x8d,0x24,0x50,0x45,0x01,0x00,0x00,0xa6,0x8d, +0x24,0x48,0x25,0x01,0x24,0x18,0x62,0x00,0x24,0x20,0x82,0x00,0x82,0x51,0x0a,0x00, +0x82,0x49,0x09,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,0x25,0x20,0x8a,0x00, +0x25,0x18,0x69,0x00,0x24,0x60,0x85,0x01,0x24,0x58,0x65,0x01,0x24,0x18,0x62,0x00, +0x24,0x30,0xc5,0x00,0x00,0x61,0x0c,0x00,0x24,0x20,0x82,0x00,0x00,0x59,0x0b,0x00, +0x24,0x38,0xe5,0x00,0x25,0x20,0x8c,0x00,0x25,0x18,0x6b,0x00,0x02,0x3c,0x07,0x00, +0x02,0x34,0x06,0x00,0x16,0x00,0xe6,0xa5,0x0c,0x00,0xe4,0xad,0x10,0x00,0xe3,0xad, +0x14,0x00,0xe7,0xa5,0x38,0x15,0x83,0x26,0x0c,0x00,0x62,0x8c,0x00,0x00,0x00,0x00, +0x3a,0x06,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x3e,0xc2,0x8e,0xff,0x00,0x04,0x3c, +0x24,0x10,0x44,0x00,0x05,0x00,0x40,0x10,0x12,0x00,0x02,0x24,0x00,0x3e,0xc2,0x8e, +0x00,0x00,0x00,0x00,0x24,0x10,0x44,0x00,0x02,0x14,0x02,0x00,0xc3,0x02,0x62,0xa0, +0xb7,0x4f,0x00,0x0c,0x10,0x00,0xa4,0x27,0xf2,0x4e,0x00,0x0c,0x00,0x00,0x00,0x00, +0x38,0x15,0x82,0x26,0x0c,0x00,0x43,0x8c,0x00,0x80,0x04,0x3c,0x25,0x18,0x64,0x00, +0x0c,0x00,0x43,0xac,0x38,0x15,0x82,0x26,0xc3,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x61,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0xf0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x30,0x4c,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x8e,0x00,0x00,0x00,0x00,0x42,0x10,0x02,0x00, +0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xf0,0x3d,0xa2,0x96, +0x00,0x00,0x00,0x00,0x00,0x01,0x42,0x30,0xd8,0x00,0x40,0x14,0x02,0x80,0x02,0x3c, +0x38,0x15,0x82,0x26,0xea,0x02,0x40,0xa0,0xf0,0x3d,0xa2,0x96,0x01,0x00,0x03,0x24, +0x00,0x02,0x42,0x30,0xd9,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x8e, +0xfd,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x25,0xb0,0x05,0x3c,0x38,0x15,0x82,0xae, +0x4c,0x00,0xa3,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30, +0x05,0x00,0x40,0x14,0x3f,0xff,0x03,0x24,0x38,0x15,0x82,0x8e,0x00,0x00,0x00,0x00, +0x24,0x10,0x43,0x00,0x38,0x15,0x82,0xae,0x4c,0x3b,0xe4,0x8e,0x00,0x80,0x06,0x3c, +0x18,0x35,0xc2,0x24,0x18,0x03,0xa3,0x34,0x4c,0x3b,0xe6,0x26,0x00,0x00,0x62,0xac, +0x11,0x00,0x86,0x10,0x02,0x80,0x02,0x3c,0xbf,0x00,0xb2,0x34,0x38,0x15,0x51,0x24, +0x21,0x80,0xc0,0x00,0x21,0xf0,0x00,0x00,0x00,0x00,0x42,0x92,0x00,0x00,0x00,0x00, +0x04,0x00,0x42,0x2c,0x09,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x14,0x26,0x24,0x8e, +0x42,0x09,0x00,0x0c,0x00,0x00,0x00,0x00,0x4c,0x3b,0xe2,0x8e,0x00,0x00,0x00,0x00, +0xf5,0xff,0x50,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x08,0x08,0x44,0x24, +0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,0xc2,0x2e,0x00,0x0c,0x21,0x38,0x00,0x00, +0x1c,0x0d,0x00,0x08,0x38,0x15,0x92,0x26,0x08,0x00,0x83,0x8c,0xff,0x9f,0x02,0x3c, +0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x08,0x00,0x83,0xac,0xf0,0x3d,0xa2,0x96, +0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x30,0xb6,0xff,0x40,0x10,0x00,0x00,0x00,0x00, +0x38,0x15,0x85,0x26,0xc8,0x02,0xa4,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34, +0x02,0x1f,0x04,0x00,0x01,0x00,0x63,0x24,0x24,0x20,0x82,0x00,0x00,0x1f,0x03,0x00, +0x25,0x20,0x83,0x00,0xd1,0x4b,0x00,0x0c,0xc8,0x02,0xa4,0xac,0xf0,0x3d,0xa3,0x96, +0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,0x7f,0x00,0x63,0x30,0x00,0x00,0x43,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x8d,0x0e,0x00,0x08,0x00,0x00,0x00,0x00, +0x38,0x15,0x82,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00,0x38,0x15,0x82,0xae, +0xf0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30,0xc0,0xfe,0x40,0x10, +0x00,0x00,0x00,0x00,0x38,0x15,0x85,0x26,0xc8,0x02,0xa4,0x8c,0xff,0xf0,0x02,0x3c, +0xff,0xff,0x42,0x34,0x02,0x1e,0x04,0x00,0x0f,0x00,0x63,0x30,0x01,0x00,0x63,0x24, +0x0f,0x00,0x63,0x30,0x24,0x20,0x82,0x00,0x00,0x1e,0x03,0x00,0x25,0x20,0x83,0x00, +0x40,0x4a,0x00,0x0c,0xc8,0x02,0xa4,0xac,0xb8,0x4b,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x3e,0xc2,0x8e,0x01,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0xb7,0x0a,0x43,0x10, +0x02,0x80,0x04,0x3c,0x00,0x3e,0x82,0x8c,0x02,0x00,0x03,0x24,0x0f,0x00,0x42,0x30, +0xb4,0x0a,0x43,0x10,0x00,0x00,0x00,0x00,0x00,0x3e,0x82,0x8c,0x03,0x00,0x03,0x24, +0x0f,0x00,0x42,0x30,0x02,0x00,0x43,0x10,0x03,0x00,0x04,0x24,0x21,0x20,0x00,0x00, +0x70,0x4a,0x00,0x0c,0x00,0x00,0x00,0x00,0x29,0xb0,0x02,0x3c,0x00,0x00,0x40,0xac, +0x08,0x00,0x44,0x34,0x0c,0x00,0x45,0x34,0x10,0x00,0x46,0x34,0x3c,0x00,0x51,0x34, +0x04,0x00,0x43,0x34,0x14,0x00,0x47,0x34,0x18,0x00,0x48,0x34,0x1c,0x00,0x49,0x34, +0x20,0x00,0x4a,0x34,0x24,0x00,0x4b,0x34,0x28,0x00,0x4c,0x34,0x2c,0x00,0x4d,0x34, +0x30,0x00,0x4e,0x34,0x34,0x00,0x4f,0x34,0x38,0x00,0x50,0x34,0x02,0x80,0x02,0x3c, +0x00,0x00,0x60,0xac,0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac,0xff,0xff,0x04,0x24, +0x00,0x00,0xc0,0xac,0x21,0x28,0x00,0x00,0x00,0x00,0xe0,0xac,0x38,0x15,0x46,0x24, +0x00,0x00,0x00,0xad,0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad,0x00,0x00,0x60,0xad, +0x00,0x00,0x80,0xad,0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad,0x00,0x00,0xe0,0xad, +0x00,0x00,0x00,0xae,0x00,0x00,0x20,0xae,0x21,0x18,0xa6,0x00,0x01,0x00,0xa5,0x24, +0x08,0x00,0xa2,0x28,0xfc,0xff,0x40,0x14,0xf0,0x04,0x64,0xa0,0x02,0x80,0x02,0x3c, +0x38,0x15,0x43,0x24,0x1f,0x00,0x05,0x24,0x90,0x11,0x62,0x8c,0xff,0xff,0xa5,0x24, +0xf0,0x00,0x42,0x34,0x90,0x11,0x62,0xac,0xfb,0xff,0xa1,0x04,0x94,0x00,0x63,0x24, +0xf0,0x3d,0xa3,0x96,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,0xf7,0x00,0x63,0x30, +0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0xb8,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x8e,0xa9,0x0d,0x00,0x08,0x24,0x10,0x43,0x00, +0x38,0x15,0x84,0x8e,0xe8,0x02,0xc5,0x8c,0xfe,0xff,0x02,0x24,0x00,0x90,0x03,0x3c, +0x24,0x20,0x82,0x00,0x24,0x18,0xa3,0x00,0x00,0x10,0x02,0x3c,0x3d,0xfe,0x62,0x14, +0x38,0x15,0x84,0xae,0x50,0x0c,0x03,0x35,0xff,0xbf,0x02,0x3c,0x00,0x00,0x64,0x90, +0xff,0xff,0x42,0x34,0x24,0x10,0xa2,0x00,0x00,0x80,0x03,0x3c,0x25,0x10,0x43,0x00, +0xe8,0x02,0xc2,0xac,0xa1,0x0d,0x00,0x08,0xdb,0x02,0xc4,0xa0,0xff,0xff,0x03,0x24, +0x38,0x15,0x42,0x24,0xea,0x02,0x43,0xa0,0xf0,0x3d,0xa2,0x96,0x01,0x00,0x03,0x24, +0x00,0x02,0x42,0x30,0x29,0xff,0x43,0x14,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x8e, +0xa2,0x0e,0x00,0x08,0x02,0x00,0x42,0x34,0x1a,0x05,0x62,0x10,0x00,0xfd,0x06,0x3c, +0x2b,0x10,0x43,0x00,0xe5,0x00,0x40,0x14,0x31,0x00,0x82,0x34,0x43,0x05,0x62,0x10, +0x2b,0x10,0x43,0x00,0x39,0x01,0x40,0x14,0xa6,0x00,0x82,0x34,0x24,0x00,0x82,0x34, +0x54,0x05,0x62,0x10,0x2b,0x10,0x43,0x00,0xe0,0x01,0x40,0x14,0x28,0x00,0x82,0x34, +0x20,0x00,0x82,0x34,0x25,0x06,0x62,0x10,0x2b,0x10,0x43,0x00,0xfc,0x02,0x40,0x14, +0x22,0x00,0xc2,0x34,0x18,0x00,0x82,0x34,0xdf,0x07,0x62,0x10,0x19,0x00,0x82,0x34, +0xd1,0xfd,0x62,0x14,0x00,0xf0,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xc0,0x02,0x62,0x34, +0x00,0x00,0x40,0xac,0x94,0x0e,0x64,0x34,0x9c,0x0e,0x62,0x34,0xa4,0x0e,0x65,0x34, +0xac,0x0e,0x66,0x34,0x00,0x00,0x89,0x8c,0x38,0x15,0x8f,0x26,0x00,0x00,0x4b,0x8c, +0x00,0x00,0xac,0x8c,0x00,0x00,0xc4,0x8c,0xb4,0x0e,0x62,0x34,0x0c,0x00,0xe5,0x8d, +0x10,0x00,0xe6,0x8d,0x00,0x00,0x4a,0x8c,0xff,0x03,0x07,0x3c,0x00,0xfc,0x08,0x24, +0xbc,0x0e,0x62,0x34,0x24,0x48,0x27,0x01,0x24,0x20,0x87,0x00,0x00,0x00,0x4d,0x8c, +0x24,0x30,0xc8,0x00,0x02,0x4c,0x09,0x00,0x24,0x28,0xa8,0x00,0x02,0x24,0x04,0x00, +0xcc,0x0e,0x68,0x34,0xf0,0xff,0x02,0x3c,0xc4,0x0e,0x63,0x34,0xff,0x03,0x42,0x34, +0x25,0x28,0xa9,0x00,0x25,0x30,0xc4,0x00,0x00,0x00,0x69,0x8c,0x08,0x00,0xe4,0x8d, +0x00,0x00,0x0e,0x8d,0x24,0x58,0x67,0x01,0x24,0x50,0x47,0x01,0x24,0x30,0xc2,0x00, +0x24,0x28,0xa2,0x00,0x82,0x59,0x0b,0x00,0x82,0x51,0x0a,0x00,0x0f,0xc0,0x03,0x3c, +0xff,0x9f,0x02,0x3c,0xff,0xff,0x63,0x34,0xff,0xff,0x42,0x34,0x25,0x28,0xab,0x00, +0x25,0x30,0xca,0x00,0x24,0x60,0x87,0x01,0x24,0x68,0xa7,0x01,0xff,0x00,0x08,0x3c, +0x24,0x20,0x82,0x00,0x24,0x30,0xc3,0x00,0x24,0x28,0xa3,0x00,0x24,0x70,0xc7,0x01, +0x00,0x61,0x0c,0x00,0x00,0x69,0x0d,0x00,0x24,0x48,0x27,0x01,0x00,0xff,0x03,0x35, +0x00,0x20,0x02,0x3c,0x25,0x20,0x82,0x00,0x25,0x28,0xac,0x00,0x25,0x30,0xcd,0x00, +0x02,0x4c,0x09,0x00,0x02,0x74,0x0e,0x00,0x24,0x18,0x63,0x02,0x08,0x00,0xe4,0xad, +0x0c,0x00,0xe5,0xad,0x10,0x00,0xe6,0xad,0x14,0x00,0xe9,0xa5,0x6b,0x09,0x60,0x10, +0x16,0x00,0xee,0xa5,0x24,0x10,0x68,0x02,0x02,0x14,0x02,0x00,0x02,0x1a,0x13,0x00, +0xc7,0x02,0xe2,0xa1,0xc3,0x02,0xe3,0xa1,0x38,0x15,0x82,0x26,0xc3,0x02,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x61,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0xb7,0x4f,0x00,0x0c,0x10,0x00,0xa4,0x27,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x25,0xb0,0x04,0x3c,0x94,0x0e,0x82,0x34,0x9c,0x0e,0x83,0x34,0xa4,0x0e,0x85,0x34, +0xac,0x0e,0x86,0x34,0x00,0x00,0x49,0x8c,0x00,0x00,0x6c,0x8c,0xb4,0x0e,0x82,0x34, +0x00,0x00,0xae,0x8c,0x10,0x00,0xe3,0x8d,0x00,0x00,0xc8,0x8c,0x0c,0x00,0xe5,0x8d, +0x00,0x00,0x4a,0x8c,0xff,0x3f,0x02,0x3c,0xff,0x03,0x06,0x3c,0xff,0xff,0x42,0x34, +0x00,0xfc,0x07,0x24,0x24,0x18,0x62,0x00,0x24,0x48,0x26,0x01,0xbc,0x0e,0x82,0x34, +0x24,0x40,0x06,0x01,0x00,0x00,0x4b,0x8c,0x24,0x18,0x67,0x00,0x24,0x28,0xa7,0x00, +0x02,0x44,0x08,0x00,0xcc,0x0e,0x8d,0x34,0x02,0x4c,0x09,0x00,0xc4,0x0e,0x84,0x34, +0xf0,0xff,0x02,0x3c,0x00,0x00,0x87,0x8c,0xff,0x03,0x42,0x34,0x00,0x00,0xa4,0x8d, +0x25,0x18,0x68,0x00,0x25,0x28,0xa9,0x00,0x24,0x60,0x86,0x01,0x24,0x50,0x46,0x01, +0x00,0x3e,0x08,0x8e,0x24,0x18,0x62,0x00,0x24,0x28,0xa2,0x00,0x82,0x61,0x0c,0x00, +0x82,0x51,0x0a,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,0x25,0x28,0xac,0x00, +0x25,0x18,0x6a,0x00,0x24,0x70,0xc6,0x01,0x24,0x58,0x66,0x01,0x24,0x18,0x62,0x00, +0x24,0x28,0xa2,0x00,0x24,0x20,0x86,0x00,0x00,0x71,0x0e,0x00,0x00,0x59,0x0b,0x00, +0x24,0x38,0xe6,0x00,0xff,0xff,0x02,0x3c,0x25,0x28,0xae,0x00,0x25,0x18,0x6b,0x00, +0x02,0x3c,0x07,0x00,0x02,0x24,0x04,0x00,0x24,0x40,0x02,0x01,0x0c,0x00,0xe5,0xad, +0x10,0x00,0xe3,0xad,0x14,0x00,0xe7,0xa5,0x64,0x00,0x00,0x11,0x16,0x00,0xe4,0xa5, +0x00,0x3e,0x03,0x8e,0x00,0x3e,0x02,0x8e,0x02,0x1c,0x03,0x00,0x24,0x10,0x51,0x00, +0x02,0x16,0x02,0x00,0xc7,0x02,0xe2,0xa1,0xc3,0x02,0xe3,0xa1,0xb7,0x4f,0x00,0x0c, +0x10,0x00,0xa4,0x27,0xf0,0x3d,0xa3,0x96,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34, +0xbf,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x7e,0x0e,0x00,0x08,0x38,0x15,0x82,0x26,0x72,0x04,0x62,0x10,0x00,0xfd,0x05,0x3c, +0x2b,0x10,0x43,0x00,0x9d,0x00,0x40,0x14,0x10,0x00,0x82,0x34,0x07,0x00,0xc2,0x34, +0xb3,0x04,0x62,0x10,0x2b,0x10,0x43,0x00,0x57,0x01,0x40,0x14,0x03,0x00,0xc2,0x34, +0xaa,0x05,0x62,0x10,0x2b,0x10,0x43,0x00,0x27,0x02,0x40,0x14,0x00,0xf9,0x02,0x3c, +0x01,0x00,0xc2,0x34,0x2e,0x07,0x62,0x10,0x02,0x00,0xc2,0x34,0x0a,0xfd,0x62,0x14, +0x00,0xf0,0x02,0x3c,0x38,0x15,0x82,0x26,0x84,0x24,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xff,0x06,0x3c, +0x0f,0x00,0xc2,0x34,0x68,0x04,0x62,0x10,0x2b,0x10,0x43,0x00,0x6a,0x00,0x40,0x14, +0x21,0x00,0xc2,0x34,0x00,0xfe,0x07,0x3c,0x1a,0x00,0xe2,0x34,0x81,0x04,0x62,0x10, +0x2b,0x10,0x43,0x00,0x0e,0x01,0x40,0x14,0x07,0x00,0xc2,0x34,0x11,0x00,0xe2,0x34, +0xe7,0x07,0x62,0x10,0x2b,0x10,0x43,0x00,0xe0,0x01,0x40,0x14,0x18,0x00,0xe2,0x34, +0xb6,0x00,0x82,0x34,0x9d,0x07,0x62,0x10,0x10,0x00,0xe2,0x34,0xea,0xfc,0x62,0x14, +0x00,0xf0,0x02,0x3c,0x38,0x15,0x83,0x26,0x82,0x0b,0x62,0x90,0x00,0x00,0x00,0x00, +0x00,0xfd,0x40,0x14,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34, +0x24,0x10,0x62,0x02,0x02,0xf2,0x02,0x00,0x01,0x00,0x02,0x24,0x21,0x20,0xc0,0x03, +0x82,0x0b,0x62,0xa0,0x86,0x27,0x00,0x0c,0x83,0x0b,0x7e,0xa0,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x12,0x00,0x02,0x24, +0xc7,0x02,0xe2,0xa1,0x37,0x10,0x00,0x08,0xc3,0x02,0xe2,0xa1,0x00,0xf8,0x04,0x3c, +0x14,0x00,0x82,0x34,0xd7,0x04,0x62,0x10,0x2b,0x10,0x43,0x00,0x86,0x00,0x40,0x14, +0x17,0x00,0x82,0x34,0x10,0x00,0x82,0x34,0xe4,0x04,0x62,0x10,0x2b,0x10,0x43,0x00, +0x43,0x01,0x40,0x14,0x12,0x00,0x82,0x34,0x00,0xf2,0x02,0x3c,0xd7,0x05,0x62,0x10, +0x01,0x00,0x42,0x34,0xbc,0xfc,0x62,0x14,0x00,0xf0,0x02,0x3c,0x25,0xb0,0x05,0x3c, +0xc4,0x02,0xa3,0x34,0x00,0x00,0x64,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x98,0x82,0x00,0x01,0x00,0x03,0x3c,0x2b,0x18,0x73,0x00,0xcd,0xfc,0x60,0x10, +0x25,0xb0,0x02,0x3c,0xc8,0x02,0xa2,0x34,0x00,0x00,0x52,0x8c,0x00,0xb0,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x25,0x98,0x63,0x02,0xc0,0x02,0x42,0x34,0x00,0x00,0x72,0xae, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xae,0x04,0x62,0x10, +0x00,0xfd,0x06,0x3c,0x2b,0x10,0x43,0x00,0x53,0x00,0x40,0x14,0xab,0x00,0x82,0x34, +0xa2,0x00,0x82,0x34,0x9f,0x06,0x62,0x10,0x2b,0x10,0x43,0x00,0x4e,0x01,0x40,0x14, +0xa4,0x00,0xc2,0x34,0xa0,0x00,0x82,0x34,0xd8,0x04,0x62,0x10,0xa1,0x00,0x82,0x34, +0x99,0xfc,0x62,0x14,0x00,0xf0,0x02,0x3c,0x02,0x24,0x13,0x00,0xb8,0x1d,0x00,0x0c, +0xff,0x00,0x84,0x30,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x6b,0x04,0x62,0x10,0x2b,0x10,0x43,0x00, +0x7f,0x00,0x40,0x14,0x31,0x00,0xc2,0x34,0x12,0x00,0xc2,0x34,0xb6,0x06,0x62,0x10, +0x2b,0x10,0x43,0x00,0x54,0x01,0x40,0x14,0x14,0x00,0xc2,0x34,0x10,0x00,0xc2,0x34, +0xb8,0x06,0x62,0x10,0x11,0x00,0xc2,0x34,0x83,0xfc,0x62,0x14,0x00,0xf0,0x02,0x3c, +0xe2,0x48,0x00,0x0c,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x20,0x04,0x62,0x10, +0x2b,0x10,0x43,0x00,0xa1,0x00,0x40,0x14,0x13,0x00,0x82,0x34,0x05,0x00,0x82,0x34, +0x2b,0x10,0x43,0x00,0xd7,0x00,0x40,0x14,0x08,0x00,0x82,0x34,0x03,0x00,0x82,0x34, +0x2b,0x10,0x62,0x00,0x8b,0xfc,0x40,0x10,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34, +0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x72,0x30,0x05,0x00,0x44,0x36, +0x00,0x00,0x44,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x63,0x04,0xa2,0x10,0x2b,0x10,0x45,0x00, +0x6a,0x01,0x40,0x14,0x00,0xa0,0x02,0x3c,0x00,0x60,0x02,0x3c,0x04,0x00,0xa2,0x10, +0x80,0x10,0x04,0x00,0x77,0xfc,0xaa,0x14,0x25,0xb0,0x02,0x3c,0x80,0x10,0x04,0x00, +0x21,0x10,0x44,0x00,0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,0x21,0x10,0x48,0x00, +0xc5,0x03,0x49,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x47,0x06,0x62,0x10,0x2b,0x10,0x43,0x00, +0x2a,0x01,0x40,0x14,0xaf,0x00,0xc2,0x34,0xa7,0x00,0x82,0x34,0xa0,0x06,0x62,0x10, +0xaa,0x00,0x82,0x34,0x48,0xfc,0x62,0x14,0x00,0xf0,0x02,0x3c,0xaa,0x53,0x00,0x0c, +0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x8e,0x06,0x62,0x10,0x2b,0x10,0x43,0x00, +0xdf,0x00,0x40,0x14,0x20,0x00,0x82,0x34,0x15,0x00,0x82,0x34,0x82,0x06,0x62,0x10, +0x16,0x00,0x82,0x34,0x38,0xfc,0x62,0x14,0x00,0xf0,0x02,0x3c,0xaf,0x1a,0x00,0x0c, +0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xf1,0x04,0x3c,0xda,0x04,0x64,0x10, +0x2b,0x10,0x83,0x00,0xd1,0x01,0x40,0x14,0x02,0x00,0x82,0x34,0x08,0x00,0xc2,0x34, +0xcd,0x06,0x62,0x10,0x20,0x00,0xc2,0x34,0x27,0xfc,0x62,0x14,0x00,0xf0,0x02,0x3c, +0x38,0x15,0x85,0x26,0xc8,0x02,0xa4,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34, +0x02,0x1f,0x04,0x00,0x01,0x00,0x63,0x24,0x24,0x20,0x82,0x00,0x00,0x1f,0x03,0x00, +0x25,0x20,0x83,0x00,0xc8,0x02,0xa4,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xd1,0x4b,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x65,0x04,0x62,0x10,0x2b,0x10,0x43,0x00,0x5d,0x01,0x40,0x14,0x42,0x00,0xc2,0x34, +0x22,0x00,0xc2,0x34,0xf6,0x04,0x62,0x10,0x30,0x00,0xc2,0x34,0x06,0xfc,0x62,0x14, +0x00,0xf0,0x02,0x3c,0x38,0x15,0x82,0x26,0x75,0x25,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x3a,0x05,0x62,0x10, +0x2b,0x10,0x43,0x00,0xb2,0x00,0x40,0x14,0x2a,0x00,0xc2,0x34,0x25,0x00,0x82,0x34, +0x2d,0x05,0x62,0x10,0x26,0x00,0x82,0x34,0xf3,0xfb,0x62,0x14,0x00,0xf0,0x02,0x3c, +0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00, +0xff,0x00,0x72,0x30,0x08,0x00,0x44,0x36,0x00,0x00,0x44,0xa0,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0xf7,0x04,0x62,0x10,0x2b,0x10,0x43,0x00,0x54,0x00,0x40,0x14,0x0d,0x00,0xc2,0x34, +0xec,0x04,0x66,0x10,0x01,0x00,0xc2,0x34,0xdf,0xfb,0x62,0x14,0x00,0xf0,0x02,0x3c, +0xa7,0x48,0x00,0x0c,0x01,0x00,0x04,0x24,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x43,0x04,0x62,0x10, +0x2b,0x10,0x43,0x00,0x37,0x01,0x40,0x14,0x15,0x00,0xa2,0x34,0x11,0x00,0x82,0x34, +0x9e,0x06,0x62,0x10,0x12,0x00,0x82,0x34,0xcf,0xfb,0x62,0x14,0x00,0xf0,0x02,0x3c, +0x02,0x1c,0x13,0x00,0xff,0x00,0x67,0x30,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x00,0xff,0x64,0x32,0x80,0x10,0x02,0x00, +0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,0x02,0x91,0x04,0x00,0x80,0x11,0x52,0xac, +0x84,0x11,0x52,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xfb,0x04,0x3c,0x01,0x00,0x82,0x34, +0x1b,0x04,0x62,0x10,0x2b,0x10,0x43,0x00,0x36,0x01,0x40,0x14,0x03,0x00,0x82,0x34, +0x20,0x00,0xc2,0x34,0xac,0x04,0x62,0x10,0xff,0x00,0x02,0x3c,0xb2,0xfb,0x64,0x14, +0x00,0xf0,0x02,0x3c,0x38,0x15,0x85,0x26,0x10,0x24,0xa2,0x8c,0xfd,0xff,0x03,0x24, +0xfe,0xff,0x04,0x24,0x24,0x10,0x43,0x00,0x24,0x10,0x44,0x00,0x10,0x24,0xa2,0xac, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x8d,0x02,0xa2,0x10,0x00,0x40,0x02,0x3c,0x47,0xff,0xa2,0x10, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0xd9,0x05,0x62,0x10,0x2b,0x10,0x43,0x00,0xbc,0x01,0x40,0x14, +0x09,0x00,0xa2,0x34,0x07,0x00,0x82,0x34,0x97,0xfb,0x62,0x14,0x00,0xf0,0x02,0x3c, +0x73,0x52,0x00,0x0c,0x21,0x20,0x60,0x02,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x74,0x04,0x62,0x10, +0x2b,0x10,0x43,0x00,0x4d,0x02,0x40,0x14,0x38,0x15,0x82,0x26,0x0c,0x00,0xc2,0x34, +0x89,0xfb,0x62,0x14,0x00,0xf0,0x02,0x3c,0x38,0x15,0x82,0x26,0x5c,0x24,0x44,0x94, +0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34, +0x00,0x00,0x64,0xa4,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x50,0x04,0x62,0x10,0x2b,0x10,0x43,0x00,0xd9,0x01,0x40,0x14,0x00,0xff,0x68,0x32, +0x02,0x22,0x08,0x00,0x21,0x90,0x00,0x00,0xef,0x11,0x00,0x08,0x27,0xb0,0x07,0x3c, +0x00,0x01,0x42,0x2e,0x0b,0x00,0x40,0x10,0x08,0x00,0xe7,0x24,0x00,0x00,0xe2,0x94, +0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x30,0xff,0x00,0xc3,0x33,0xf8,0xff,0x64,0x14, +0x01,0x00,0x52,0x26,0xff,0xff,0x52,0x26,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x00,0x00,0x52,0xa4,0xff,0x00,0x42,0x2e,0x82,0xfb,0x40,0x14,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x12,0x87,0x03,0x3c,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x74,0x05,0x62,0x10,0x2b,0x10,0x43,0x00,0x3d,0x01,0x40,0x14,0x21,0x00,0x82,0x34, +0x18,0x00,0x82,0x34,0x58,0xfb,0x62,0x14,0x00,0xf0,0x02,0x3c,0x08,0x1b,0x00,0x0c, +0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x1c,0x05,0x62,0x10,0x2b,0x10,0x43,0x00, +0x12,0x05,0x40,0x14,0x38,0x15,0x82,0x26,0x08,0x26,0x40,0xac,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0xfe,0x04,0x62,0x10,0x2b,0x10,0x62,0x00,0xdf,0x04,0x40,0x14,0x30,0x00,0xc2,0x34, +0x41,0xfb,0x62,0x14,0x00,0xf0,0x02,0x3c,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34, +0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x72,0x30,0x10,0x00,0x44,0x36, +0x00,0x00,0x44,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x0f,0x05,0x62,0x10,0x2b,0x10,0x62,0x00, +0xf8,0x01,0x40,0x14,0x38,0x15,0x82,0x26,0x20,0x00,0xc2,0x34,0x2e,0xfb,0x62,0x14, +0x00,0xf0,0x02,0x3c,0x02,0x80,0x04,0x3c,0xa4,0x3e,0x83,0x8c,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xf7,0x04,0x62,0x10, +0x2b,0x10,0x43,0x00,0x0e,0x01,0x40,0x14,0xb4,0x00,0xc2,0x34,0xae,0x00,0xc2,0x34, +0x1d,0xfb,0x62,0x14,0x00,0xf0,0x02,0x3c,0x00,0xff,0x65,0x32,0x02,0x24,0x13,0x00, +0xff,0x00,0x84,0x30,0xf2,0x49,0x00,0x0c,0x02,0x2a,0x05,0x00,0x25,0xb0,0x03,0x3c, +0xc4,0x02,0x63,0x34,0x00,0x00,0x62,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x99,0x04,0x62,0x10, +0x2b,0x10,0x43,0x00,0x92,0x01,0x40,0x14,0x12,0x00,0xe2,0x34,0x0a,0xfb,0x62,0x14, +0x00,0xf0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34,0x24,0x10,0x62,0x02, +0x02,0xf2,0x02,0x00,0x38,0x15,0x83,0x26,0x83,0x0b,0x7e,0xa0,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x78,0x04,0xa2,0x10, +0x2b,0x10,0x45,0x00,0x6f,0x01,0x40,0x14,0x00,0xb0,0x02,0x3c,0x00,0x90,0x02,0x3c, +0x0c,0xfb,0xa2,0x14,0x25,0xb0,0x02,0x3c,0x38,0x15,0x82,0x26,0x21,0x10,0x82,0x00, +0x77,0x04,0x49,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x05,0x00,0x42,0x34,0x5e,0x04,0x62,0x10, +0x2b,0x10,0x43,0x00,0x22,0x01,0x40,0x14,0x38,0x15,0x82,0x26,0x7c,0x24,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34, +0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x45,0x04,0x62,0x10,0x2b,0x10,0x43,0x00,0x09,0x01,0x40,0x14,0x38,0x15,0x85,0x26, +0x38,0x15,0x84,0x26,0x08,0x00,0x83,0x8c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x00,0x20,0x02,0x3c,0x25,0x18,0x62,0x00,0x02,0x34,0x13,0x00, +0x00,0x1f,0x65,0x32,0x25,0xb0,0x02,0x3c,0x02,0x92,0x05,0x00,0x3f,0x00,0xc8,0x30, +0xc0,0x02,0x42,0x34,0xc1,0x02,0x88,0xa0,0x08,0x00,0x83,0xac,0xbc,0x02,0x92,0xa0, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x1e,0x04,0x62,0x10, +0x2b,0x10,0x43,0x00,0x07,0x01,0x40,0x14,0x02,0x14,0x13,0x00,0xbe,0xfa,0x66,0x14, +0x00,0xf0,0x02,0x3c,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34,0x24,0x10,0x62,0x02, +0x25,0xb0,0x03,0x3c,0x02,0x9a,0x02,0x00,0x21,0x10,0x63,0x02,0x00,0x00,0x52,0x8c, +0xc4,0x02,0x63,0x34,0x00,0x00,0x72,0xac,0x00,0x00,0x52,0x8c,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x47,0x05,0x62,0x10,0x2b,0x10,0x43,0x00,0x81,0x01,0x40,0x14,0x43,0x00,0xc2,0x34, +0x41,0x00,0xc2,0x34,0xa8,0xfa,0x62,0x14,0x00,0xf0,0x02,0x3c,0x38,0x15,0x82,0x26, +0x62,0x24,0x44,0x94,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34, +0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xa4,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0xb6,0xfa,0x62,0x10,0x2b,0x10,0x43,0x00,0x9b,0x00,0x40,0x14, +0x02,0x14,0x13,0x00,0xff,0x00,0x04,0x3c,0x00,0xff,0x82,0x34,0x24,0x10,0x62,0x02, +0xb0,0xfa,0x40,0x10,0x25,0xb0,0x02,0x3c,0x38,0x15,0x83,0x26,0x00,0xff,0x65,0x32, +0x08,0x03,0x66,0x90,0x02,0x2a,0x05,0x00,0xfb,0xff,0xa2,0x24,0x24,0x20,0x64,0x02, +0x02,0x24,0x04,0x00,0x23,0x03,0x62,0xa0,0x25,0xb0,0x02,0x3c,0x00,0x01,0xc6,0x34, +0xfb,0xff,0x87,0x24,0xc0,0x02,0x42,0x34,0x08,0x03,0x66,0xac,0x21,0x03,0x67,0xa0, +0x20,0x03,0x64,0xa0,0x22,0x03,0x65,0xa0,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x10,0x05,0x62,0x10,0x2b,0x10,0x62,0x00,0x5d,0x01,0x40,0x14, +0x38,0x15,0x82,0x26,0x7c,0xfa,0x65,0x14,0x00,0xf0,0x02,0x3c,0x00,0xff,0x68,0x32, +0x02,0x1a,0x08,0x00,0xff,0x00,0x02,0x24,0xa4,0x03,0x62,0x10,0x25,0xb0,0x05,0x3c, +0x0e,0x00,0x60,0x14,0x00,0xcc,0x02,0x34,0x25,0xb0,0x04,0x3c,0x64,0x03,0x84,0x34, +0x38,0x15,0x87,0x26,0x00,0x00,0x85,0x94,0xe8,0x02,0xe6,0x8c,0xff,0xef,0x02,0x3c, +0xff,0xfe,0x03,0x24,0xff,0xff,0x42,0x34,0x24,0x28,0xa3,0x00,0x24,0x30,0xc2,0x00, +0x00,0x00,0x85,0xa4,0xe8,0x02,0xe6,0xac,0x00,0xcc,0x02,0x34,0x81,0xfa,0x02,0x15, +0x25,0xb0,0x02,0x3c,0x38,0x15,0x82,0x26,0xe8,0x02,0x43,0x8c,0x00,0x10,0x04,0x3c, +0x25,0x18,0x64,0x00,0xe8,0x02,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x74,0xfa,0x62,0x10, +0x2b,0x10,0x43,0x00,0x49,0x04,0x40,0x14,0x00,0xff,0x62,0x32,0x02,0xf2,0x02,0x00, +0xec,0x00,0xc0,0x13,0x25,0xb0,0x05,0x3c,0x94,0x00,0xa2,0x34,0x00,0x00,0x43,0x94, +0xb0,0x03,0xa6,0x34,0xff,0xff,0xca,0x27,0xff,0xff,0x72,0x30,0x1b,0x00,0x5e,0x02, +0x02,0x00,0xc0,0x17,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x00,0x00,0xd2,0xac, +0x38,0x15,0x88,0x26,0x01,0x00,0x02,0x24,0xef,0x0a,0x02,0xa1,0x80,0xff,0x02,0x24, +0x4f,0x00,0xab,0x34,0x9e,0x00,0xac,0x34,0xf2,0x0a,0x09,0x95,0x44,0x00,0xa7,0x34, +0xd8,0x00,0xa5,0x34,0x12,0x90,0x00,0x00,0x80,0x22,0x12,0x00,0x00,0xf8,0x84,0x24, +0x18,0x00,0xd2,0x03,0xff,0xff,0x5e,0x31,0x00,0x19,0x1e,0x00,0x25,0x18,0x62,0x00, +0x26,0xb0,0x02,0x3c,0x00,0x00,0xde,0xac,0x7c,0x00,0x42,0x34,0x00,0x00,0x63,0xa1, +0x00,0x00,0xd2,0xac,0x00,0x00,0x92,0xa5,0x42,0x91,0x04,0x00,0x00,0x00,0xd2,0xac, +0x00,0x00,0x52,0xa4,0x00,0x00,0xe3,0x94,0xff,0xfd,0x02,0x24,0x24,0x18,0x62,0x00, +0x00,0x00,0xe3,0xa4,0x00,0x00,0xe4,0x94,0x12,0x68,0x00,0x00,0x23,0x48,0x2d,0x01, +0x00,0x02,0x84,0x34,0xf4,0x0a,0x09,0xa5,0x00,0x00,0xe4,0xa4,0x00,0x00,0xa2,0x90, +0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x34,0x00,0x00,0xa2,0xa0,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x1d,0xfa,0x62,0x14,0x00,0xf0,0x02,0x3c,0x38,0x15,0x82,0x26,0x10,0x0b,0x43,0x8c, +0x00,0x04,0x04,0x3c,0x25,0x18,0x64,0x00,0x10,0x0b,0x43,0xac,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x11,0xfa,0x62,0x14,0x00,0xf0,0x02,0x3c,0xc2,0x13,0x13,0x00,0xfe,0x00,0x44,0x30, +0x00,0xff,0x63,0x32,0x41,0x00,0x82,0x2c,0xf0,0x05,0x40,0x10,0x02,0xf2,0x03,0x00, +0xc0,0x10,0x1e,0x00,0x21,0x10,0x5e,0x00,0x80,0x10,0x02,0x00,0x38,0x15,0x83,0x26, +0x21,0x10,0x43,0x00,0xf7,0x0c,0x44,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x1f,0x00,0x47,0x30, +0xc0,0x18,0x07,0x00,0x21,0x18,0x67,0x00,0x00,0x0f,0x64,0x32,0x80,0x18,0x03,0x00, +0x02,0x4a,0x04,0x00,0x25,0xb0,0x02,0x3c,0x38,0x15,0x84,0x26,0x21,0x18,0x67,0x00, +0xc8,0x02,0x46,0x34,0x21,0x28,0x24,0x01,0xc4,0x02,0x42,0x34,0x80,0x18,0x03,0x00, +0x00,0x00,0x52,0x8c,0x21,0x18,0x64,0x00,0x00,0x00,0xc8,0x8c,0xf0,0x04,0xa7,0xa0, +0x90,0x11,0x64,0x8c,0x0f,0xff,0x02,0x24,0xc0,0x28,0x09,0x00,0x24,0x20,0x82,0x00, +0x29,0xb0,0x02,0x3c,0x21,0x28,0xa2,0x00,0x00,0x31,0x09,0x00,0x25,0xb0,0x02,0x3c, +0x25,0x20,0x86,0x00,0xc0,0x02,0x42,0x34,0x90,0x11,0x64,0xac,0x00,0x00,0xb2,0xac, +0x04,0x00,0xa8,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0xdd,0xf9,0x62,0x14,0x00,0xf0,0x02,0x3c,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34, +0x00,0x00,0x44,0x90,0x38,0x15,0x85,0x26,0x08,0x03,0xa6,0x90,0xff,0x00,0x92,0x30, +0x02,0x00,0x43,0x36,0x08,0x03,0xa6,0xac,0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0xd8,0x02,0xa3,0x8c,0x0f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x10,0x00,0x04,0x3c,0x25,0xb0,0x02,0x3c,0x25,0x18,0x64,0x00,0xc0,0x02,0x42,0x34, +0xd8,0x02,0xa3,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x74,0x24,0x44,0x90,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34, +0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x00,0xff,0x63,0x32,0xff,0x00,0x5e,0x30,0x04,0x00,0xc0,0x13, +0x02,0x9a,0x03,0x00,0x01,0x00,0x02,0x24,0x02,0x00,0xc2,0x13,0x01,0x00,0x04,0x24, +0x21,0x20,0x00,0x00,0x2a,0x42,0x00,0x0c,0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36, +0x95,0x44,0x00,0x0c,0x21,0x20,0x60,0x02,0xff,0xff,0x10,0x36,0x24,0x90,0x50,0x00, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x52,0xac,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x28,0xb0,0x12,0x3c,0x00,0x00,0x42,0x96,0x02,0x1c,0x13,0x00,0xff,0x00,0x64,0x30, +0xff,0xff,0x5e,0x30,0xff,0x00,0xc3,0x33,0x0c,0x00,0x83,0x10,0xff,0x7f,0x03,0x3c, +0x08,0x00,0x52,0x26,0x00,0x00,0x42,0x96,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x30, +0xff,0x00,0xc3,0x33,0x04,0x00,0x83,0x10,0xff,0xff,0x42,0x32,0x00,0x08,0x42,0x2c, +0xf7,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0xff,0x7f,0x03,0x3c,0xff,0xff,0x63,0x34, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x24,0x18,0x43,0x02,0x00,0x00,0x43,0xac, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x9f,0xf9,0xa2,0x14,0x25,0xb0,0x02,0x3c,0x80,0x10,0x04,0x00, +0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,0x6c,0x05,0x47,0xac,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x38,0x15,0x82,0x26,0x82,0x0b,0x44,0x90,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34, +0x00,0x00,0x64,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x4f,0x00,0xa2,0x34,0x9e,0x00,0xa3,0x34,0x00,0x00,0x40,0xa0, +0x00,0x00,0x60,0xa4,0x94,0x00,0xa2,0x34,0x00,0x00,0x43,0x94,0x9a,0x00,0xa4,0x34, +0x98,0x00,0xa6,0x34,0xff,0xff,0x72,0x30,0x80,0x12,0x12,0x00,0x00,0xf8,0x42,0x24, +0x42,0x91,0x02,0x00,0x00,0x14,0x02,0x24,0x00,0x00,0x82,0xa4,0x26,0xb0,0x02,0x3c, +0xb0,0x03,0xa7,0x34,0xa0,0x80,0x03,0x24,0x7c,0x00,0x42,0x34,0x00,0x00,0xc3,0xa4, +0x44,0x00,0xa4,0x34,0x00,0x00,0xf2,0xac,0x00,0x00,0x52,0xa4,0x00,0x00,0x83,0x94, +0xff,0xfd,0x02,0x24,0xd8,0x00,0xa5,0x34,0x24,0x18,0x62,0x00,0x00,0x00,0x83,0xa4, +0x00,0x00,0x82,0x94,0x38,0x15,0x86,0x26,0x00,0x02,0x42,0x34,0x00,0x00,0x82,0xa4, +0x00,0x00,0xa3,0x90,0xbf,0xff,0x02,0x24,0xf4,0x0a,0xc0,0xa4,0x24,0x18,0x62,0x00, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0xef,0x0a,0xc0,0xa0,0x00,0x00,0xa3,0xa0, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x5e,0x24,0x40,0xa4, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x69,0x24,0x43,0x90,0x6a,0x24,0x44,0x94,0x68,0x24,0x45,0x90, +0x00,0x1a,0x03,0x00,0x00,0x24,0x04,0x00,0x25,0x28,0xa3,0x00,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x25,0x28,0xa4,0x00,0x00,0x00,0x45,0xac,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x29,0xf9,0x62,0x14,0x00,0xf0,0x02,0x3c,0xce,0x48,0x00,0x0c,0xff,0xff,0x04,0x34, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x10,0x24,0x43,0x8c,0xfe,0xff,0x04,0x24,0x02,0x00,0x63,0x34, +0x24,0x18,0x64,0x00,0x10,0x24,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x80,0x10,0x04,0x00, +0x21,0x10,0x44,0x00,0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,0x21,0x10,0x48,0x00, +0x38,0x03,0x49,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xdb,0x02,0xe3,0x90,0x50,0x0c,0x02,0x35, +0x21,0x28,0x00,0x00,0x00,0x00,0x43,0xa0,0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30, +0x06,0x00,0xa3,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0xa2,0x24,0x38,0x15,0x82,0x26, +0xdb,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,0x58,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x38,0x15,0x85,0x26,0xe8,0x02,0xa3,0x8c, +0x00,0x40,0x04,0x3c,0xff,0x7f,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0xa1,0x0d,0x00,0x08,0xe8,0x02,0xa3,0xac,0x68,0x03,0x05,0x36, +0x00,0x00,0xa3,0x8c,0x00,0xff,0x62,0x32,0x00,0x12,0x02,0x00,0xff,0xff,0x72,0x30, +0x25,0x10,0x52,0x00,0x00,0x00,0xa2,0xac,0x64,0x03,0x04,0x36,0x00,0x00,0x82,0x90, +0x00,0x00,0x00,0x00,0xff,0x00,0x52,0x30,0x25,0xb0,0x02,0x3c,0x40,0x00,0x43,0x36, +0xc0,0x02,0x42,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0xfa,0x0d,0x00,0x08,0x01,0x00,0x04,0x24,0xd0,0x0d,0x00,0x08, +0x01,0x00,0x04,0x24,0xd0,0x0d,0x00,0x08,0x02,0x00,0x04,0x24,0xfa,0x0d,0x00,0x08, +0x02,0x00,0x04,0x24,0x8c,0x24,0x43,0x92,0xc4,0x02,0x02,0x36,0x00,0x00,0x43,0xac, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x00,0xff,0x63,0x32,0x02,0xf2,0x03,0x00,0xc0,0x10,0x1e,0x00, +0x21,0x10,0x5e,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x52,0x00,0xf7,0x0c,0x44,0x90, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x03,0x36,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xb7,0x4f,0x00,0x0c, +0x10,0x00,0xa4,0x27,0x7e,0x0e,0x00,0x08,0x38,0x15,0x82,0x26,0xd1,0x4b,0x00,0x0c, +0x10,0x00,0xeb,0xad,0x66,0x0e,0x00,0x08,0x38,0x15,0x83,0x26,0x24,0x10,0x65,0x02, +0x02,0x94,0x02,0x00,0x00,0xff,0x63,0x32,0x07,0x00,0x42,0x2e,0xcc,0xf8,0x40,0x10, +0x02,0xf2,0x03,0x00,0x02,0x80,0x04,0x3c,0x88,0x8e,0x83,0x24,0x80,0x10,0x12,0x00, +0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00, +0x00,0x00,0x00,0x00,0x64,0x03,0x03,0x36,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00, +0xfa,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x64,0x03,0x02,0x36, +0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x72,0x30,0x20,0x00,0x44,0x36, +0x00,0x00,0x44,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x56,0x01,0x02,0x36,0xff,0x00,0x03,0x24, +0x00,0x00,0x43,0xa4,0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,0xe0,0x3d,0x44,0xa0, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0xd8,0x02,0x43,0x8e,0x0f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x12,0x01,0x02,0x3c,0x13,0x13,0x42,0x34,0x0c,0x09,0x04,0x36, +0xd8,0x02,0x43,0xae,0x00,0x00,0x82,0xac,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x00,0xff,0xa2,0x34,0x24,0x10,0x62,0x02,0x02,0xf2,0x02,0x00, +0x01,0x00,0x03,0x24,0x13,0x01,0xc3,0x13,0x02,0x00,0xc2,0x2b,0x54,0x02,0x40,0x14, +0x03,0x00,0x02,0x24,0x30,0x03,0xc2,0x13,0x38,0x15,0x82,0x26,0x7c,0x0b,0x44,0x94, +0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34, +0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x70,0x24,0x43,0x92,0xc4,0x02,0x02,0x36,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x29,0xb0,0x02,0x3c,0x04,0x00,0x44,0x34,0x08,0x00,0x45,0x34,0x0c,0x00,0x46,0x34, +0x3c,0x00,0x43,0x34,0x10,0x00,0x47,0x34,0x14,0x00,0x48,0x34,0x18,0x00,0x49,0x34, +0x1c,0x00,0x4a,0x34,0x20,0x00,0x4b,0x34,0x24,0x00,0x4c,0x34,0x28,0x00,0x4d,0x34, +0x2c,0x00,0x4e,0x34,0x30,0x00,0x4f,0x34,0x34,0x00,0x50,0x34,0x38,0x00,0x51,0x34, +0x00,0x00,0x40,0xac,0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac,0xff,0xff,0x04,0x24, +0x00,0x00,0xc0,0xac,0x21,0x28,0x00,0x00,0x00,0x00,0xe0,0xac,0x21,0x30,0x40,0x02, +0x00,0x00,0x00,0xad,0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad,0x00,0x00,0x60,0xad, +0x00,0x00,0x80,0xad,0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad,0x00,0x00,0xe0,0xad, +0x00,0x00,0x00,0xae,0x00,0x00,0x20,0xae,0x00,0x00,0x60,0xac,0x21,0x18,0xa6,0x00, +0x01,0x00,0xa5,0x24,0x08,0x00,0xa2,0x28,0xfc,0xff,0x40,0x14,0xf0,0x04,0x64,0xa0, +0x02,0x80,0x02,0x3c,0x38,0x15,0x43,0x24,0x1f,0x00,0x05,0x24,0x90,0x11,0x62,0x8c, +0xff,0xff,0xa5,0x24,0xf0,0x00,0x42,0x34,0x90,0x11,0x62,0xac,0xfb,0xff,0xa1,0x04, +0x94,0x00,0x63,0x24,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x06,0x3c,0xb8,0x3e,0xc3,0x8c, +0xc4,0x02,0x02,0x36,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x24,0x10,0x65,0x02, +0x00,0xff,0x63,0x32,0x02,0xf4,0x02,0x00,0x04,0x00,0xc0,0x13,0x02,0x9a,0x03,0x00, +0x01,0x00,0x02,0x24,0x02,0x00,0xc2,0x13,0x01,0x00,0x04,0x24,0x21,0x20,0x00,0x00, +0x25,0xb0,0x10,0x3c,0x2a,0x42,0x00,0x0c,0xc4,0x02,0x10,0x36,0x00,0x00,0x12,0x8e, +0x0f,0x00,0x11,0x3c,0x21,0x20,0x60,0x02,0x21,0x30,0x40,0x02,0x6a,0x44,0x00,0x0c, +0xff,0xff,0x25,0x36,0x21,0x20,0x60,0x02,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36, +0x00,0x00,0x02,0xae,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x21,0x10,0x82,0x00, +0x5a,0x04,0x49,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xb8,0x4b,0x00,0x0c,0x00,0x00,0x00,0x00, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x41,0x1a,0x00,0x0c,0xfd,0x00,0x04,0x24,0x00,0x1c,0x02,0x3c, +0x00,0x1c,0x42,0x34,0xa0,0x00,0x04,0x36,0x00,0x00,0x82,0xac,0x00,0xe0,0x02,0x3c, +0x00,0xbe,0x42,0x34,0xa8,0x00,0x06,0x36,0xa4,0x00,0x05,0x36,0x00,0x04,0x03,0x24, +0x00,0x00,0xa3,0xac,0x00,0x00,0xc2,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x21,0x90,0x00,0x00, +0x89,0x15,0x00,0x08,0x27,0xb0,0x04,0x3c,0x00,0x01,0x42,0x2e,0x0c,0x00,0x40,0x10, +0x08,0x00,0x84,0x24,0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0xff,0x7e,0x30, +0xff,0x00,0xc2,0x33,0xf0,0x00,0x42,0x28,0xf7,0xff,0x40,0x14,0x01,0x00,0x52,0x26, +0xff,0xff,0x52,0x26,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x5e,0xa4, +0xff,0x00,0x42,0x2e,0xe7,0xf7,0x40,0x14,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x12,0x87,0x03,0x3c,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x0f,0x62,0x32, +0x02,0x22,0x02,0x00,0x01,0x00,0x03,0x24,0x2b,0x04,0x83,0x10,0x02,0x00,0x02,0x24, +0x22,0x04,0x82,0x10,0x03,0x00,0x02,0x24,0xa9,0x03,0x82,0x10,0x00,0x00,0x00,0x00, +0x70,0x4a,0x00,0x0c,0x21,0x20,0x00,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x84,0x26, +0x08,0x00,0x83,0x8c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x08,0x00,0x83,0xac,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x70,0x25,0x44,0x8c, +0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34, +0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x38,0x15,0x82,0x26,0x10,0x24,0x43,0x8c,0xfd,0xff,0x04,0x24,0x24,0x18,0x64,0x00, +0x01,0x00,0x63,0x34,0x10,0x24,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x1c,0x13,0x00, +0x1f,0x00,0x67,0x30,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x38,0x15,0x84,0x26,0x21,0x30,0x44,0x00, +0x90,0x11,0xc3,0x90,0x0f,0x00,0x02,0x24,0x02,0x29,0x03,0x00,0x05,0x00,0xa2,0x10, +0x21,0x18,0xa4,0x00,0xf0,0x04,0x62,0x90,0x00,0x00,0x00,0x00,0x0a,0x00,0x47,0x10, +0xff,0xff,0x02,0x24,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0xff,0xff,0x03,0x24, +0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xf0,0x04,0x62,0xa0,0x90,0x11,0xc3,0x8c, +0x29,0xb0,0x02,0x3c,0xc0,0x20,0x05,0x00,0x21,0x20,0x82,0x00,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0xf0,0x00,0x63,0x34,0x90,0x11,0xc3,0xac,0x00,0x00,0x80,0xac, +0x04,0x00,0x80,0xac,0x00,0x00,0x45,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26, +0x80,0x24,0x44,0x90,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34, +0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x7a,0x0b,0x44,0x94,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x03,0x36,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xff,0xa5,0x34,0x24,0x28,0x65,0x02, +0x25,0xb0,0x04,0x3c,0x02,0x2a,0x05,0x00,0x94,0x00,0x83,0x34,0x40,0x11,0x05,0x00, +0x26,0xb0,0x06,0x3c,0x00,0x00,0x65,0xa4,0xc0,0xff,0x52,0x24,0x7c,0x00,0xcc,0x34, +0x04,0x00,0x07,0x24,0x9a,0x00,0x88,0x34,0x98,0x00,0x89,0x34,0x96,0x00,0x8a,0x34, +0x7a,0x00,0xc6,0x34,0xb0,0x03,0x8b,0x34,0x00,0x04,0x02,0x24,0xa0,0x00,0x03,0x24, +0x00,0x00,0x02,0xa5,0x44,0x00,0x84,0x34,0x00,0x00,0x23,0xa5,0x00,0x00,0x47,0xa5, +0x00,0x00,0xc7,0xa0,0x00,0x00,0x72,0xad,0x00,0x00,0x92,0xa5,0x00,0x00,0x83,0x94, +0xff,0xfd,0x02,0x24,0x38,0x15,0x86,0x26,0x24,0x18,0x62,0x00,0x00,0x00,0x83,0xa4, +0x00,0x00,0x82,0x94,0xf2,0x0a,0xc5,0xa4,0x00,0x02,0x42,0x34,0x00,0x00,0x82,0xa4, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x28,0xb0,0x02,0x3c,0x00,0x00,0x43,0x90,0xff,0x00,0x02,0x24, +0xff,0x00,0x73,0x30,0x42,0xf7,0x62,0x12,0x28,0xb0,0x05,0x3c,0xff,0x00,0x04,0x24, +0xc0,0x10,0x13,0x00,0x21,0x10,0x45,0x00,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00, +0xff,0x00,0x73,0x30,0xfb,0xff,0x64,0x16,0xc0,0x10,0x13,0x00,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x01,0x00,0x02,0x24,0x38,0x15,0x83,0x26,0x5e,0x24,0x62,0xa4,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x02,0x80,0x02,0x3c,0xbc,0x3e,0x43,0x8c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xff,0x42,0x34,0x24,0x10,0x62,0x02, +0x02,0xf2,0x02,0x00,0x07,0x00,0x03,0x24,0x04,0x03,0xc3,0x13,0x08,0x00,0xc2,0x2b, +0xf6,0x02,0x40,0x10,0x20,0x00,0x02,0x24,0x1a,0xf7,0xc0,0x17,0x25,0xb0,0x02,0x3c, +0x02,0x80,0x04,0x3c,0xb0,0x3d,0x83,0x94,0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0xa7,0x48,0x00,0x0c,0x21,0x20,0x00,0x00,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0xa7,0x48,0x00,0x0c,0x07,0x00,0x04,0x24,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0xb0,0x05,0x3c, +0xc4,0x02,0xa3,0x34,0x00,0x00,0x64,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x98,0x82,0x00,0x01,0x00,0x03,0x3c,0x2b,0x18,0x73,0x00,0xf9,0xf6,0x60,0x10, +0x25,0xb0,0x02,0x3c,0x00,0xb0,0x02,0x3c,0x25,0x98,0x62,0x02,0x00,0x00,0x72,0x8e, +0xc8,0x02,0xa2,0x34,0x00,0x00,0x52,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x64,0x03,0xa5,0x34, +0x38,0x15,0x86,0x26,0x00,0x00,0xa3,0x94,0xe8,0x02,0xc4,0x8c,0xff,0xef,0x02,0x3c, +0xff,0xff,0x42,0x34,0x24,0x20,0x82,0x00,0x00,0x01,0x63,0x34,0x00,0x00,0xa3,0xa4, +0xfa,0x12,0x00,0x08,0xe8,0x02,0xc4,0xac,0x38,0x15,0x82,0x26,0x02,0x1a,0x13,0x00, +0x02,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36, +0x60,0x00,0x06,0x24,0x6a,0x44,0x00,0x0c,0x24,0x00,0x04,0x24,0xf2,0x19,0x00,0x0c, +0xe8,0x03,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x24,0x00,0x04,0x24,0x95,0x44,0x00,0x0c,0xff,0xff,0x05,0x36, +0x1f,0x00,0x52,0x30,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x00,0x00,0x52,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xff,0x00,0x03,0x3c, +0xc4,0x02,0x44,0x34,0x00,0xff,0x63,0x34,0x00,0x00,0x92,0x8c,0x24,0x18,0x63,0x02, +0x02,0x9a,0x03,0x00,0x21,0x10,0x62,0x02,0x00,0x00,0x52,0xac,0x00,0x00,0x52,0x8c, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x92,0xac,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x14,0x13,0x00,0x00,0x1f,0x63,0x32, +0x3f,0x00,0x48,0x30,0x25,0xb0,0x02,0x3c,0x02,0x92,0x03,0x00,0xc0,0x02,0x42,0x34, +0x38,0x15,0x83,0x26,0xc1,0x02,0x68,0xa0,0xbc,0x02,0x72,0xa0,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x78,0x24,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34, +0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x80,0x10,0x04,0x00,0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,0xf8,0x04,0x47,0xac, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x38,0x15,0x82,0x26,0x83,0x0b,0x44,0x90,0x25,0xb0,0x03,0x3c, +0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x1c,0x13,0x00,0x00,0x1f,0x62,0x32, +0x38,0x15,0x90,0x26,0x02,0x92,0x02,0x00,0x3f,0x00,0x68,0x30,0xc1,0x02,0x08,0xa2, +0xbc,0x02,0x12,0xa2,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0xac,0x23,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x90,0x40,0x00, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x52,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x03,0x00,0x02,0x92,0x00,0x00,0x00,0x00, +0x01,0x00,0x42,0x24,0x03,0x00,0x02,0xa2,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c, +0x65,0x03,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x72,0x30, +0x02,0x00,0x44,0x36,0x00,0x00,0x44,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x24,0x13,0x00, +0xb6,0x4b,0x00,0x0c,0xff,0x00,0x84,0x30,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x34, +0x38,0x15,0x83,0x26,0x08,0x26,0x62,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x40,0x4a,0x00,0x0c, +0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x6e,0x24,0x44,0x94, +0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34, +0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0xae,0xfd,0xc0,0x17,0x38,0x15,0x82,0x26,0x78,0x0b,0x44,0x94,0x25,0xb0,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x71,0x0a,0x00,0x0c, +0x21,0x20,0xc0,0x03,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x90,0x53,0x00,0x0c,0x21,0x20,0x60,0x02, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c,0x00,0xff,0xa2,0x34,0xc4,0x02,0x63,0x34, +0x24,0x10,0x62,0x02,0x00,0x00,0x65,0x8c,0x02,0xf2,0x02,0x00,0x7c,0x4b,0x00,0x0c, +0x21,0x20,0xc0,0x03,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x84,0x26,0x08,0x00,0x83,0x8c, +0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x08,0x00,0x83,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x38,0x15,0x84,0x26,0x10,0x0b,0x83,0x8c,0xff,0xfb,0x02,0x3c, +0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x10,0x0b,0x83,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x38,0x15,0x82,0x26,0x88,0x24,0x44,0x90,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xeb,0x48,0x00,0x0c,0x00,0x00,0x00,0x00, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x00,0xff,0x63,0x32,0x00,0xff,0x02,0x34,0x1e,0x01,0x62,0x10, +0x38,0x15,0x82,0x26,0x08,0x26,0x40,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c, +0x64,0x03,0x63,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0xfd,0x00,0x42,0x30, +0x00,0x00,0x62,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x75,0x1a,0x00,0x0c,0x00,0x00,0x00,0x00, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x3b,0x1b,0x00,0x0c,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x00,0xff,0x62,0x32,0x02,0x92,0x02,0x00,0x02,0x1c,0x13,0x00,0x01,0x00,0x02,0x24, +0x76,0x01,0x42,0x12,0xff,0x00,0x67,0x30,0x02,0x00,0x02,0x24,0x63,0x01,0x42,0x12, +0x03,0x00,0x02,0x24,0x50,0x01,0x42,0x12,0x04,0x00,0x02,0x24,0x3e,0x01,0x42,0x12, +0x08,0x00,0x02,0x24,0x2b,0x01,0x42,0x12,0x09,0x00,0x02,0x24,0x18,0x01,0x42,0x12, +0x0a,0x00,0x02,0x24,0x05,0x01,0x42,0x12,0x0b,0x00,0x02,0x24,0xf2,0x00,0x42,0x12, +0x0c,0x00,0x02,0x24,0xd7,0x00,0x42,0x12,0x0d,0x00,0x02,0x24,0xc4,0x00,0x42,0x12, +0x0e,0x00,0x02,0x24,0xb1,0x00,0x42,0x12,0x0f,0x00,0x02,0x24,0x9e,0x00,0x42,0x12, +0x10,0x00,0x02,0x24,0xa7,0xf5,0x42,0x16,0x25,0xb0,0x02,0x3c,0xc0,0x10,0x07,0x00, +0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x38,0x15,0x83,0x26, +0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x64,0x11,0x44,0x94,0x60,0x11,0x45,0x94, +0x25,0xb0,0x06,0x3c,0x00,0x24,0x04,0x00,0xc4,0x02,0xc3,0x34,0x21,0x28,0xa4,0x00, +0x00,0x00,0x65,0xac,0x70,0x11,0x47,0x8c,0x6c,0x11,0x43,0x8c,0x68,0x11,0x44,0x94, +0x25,0xb0,0x02,0x3c,0x21,0x18,0x67,0x00,0x00,0x1c,0x03,0x00,0xc8,0x02,0xc6,0x34, +0x21,0x20,0x83,0x00,0xc0,0x02,0x42,0x34,0x00,0x00,0xc4,0xac,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x83,0x26,0x10,0x24,0x62,0x8c, +0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x34,0x10,0x24,0x62,0xac,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x38,0x15,0x82,0x26,0xf2,0x23,0x44,0x94,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xa4,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xff,0x62,0x32,0x02,0x9a,0x02,0x00, +0x62,0x00,0x60,0x12,0x01,0x00,0x02,0x24,0xd7,0x01,0x62,0x12,0x00,0x00,0x00,0x00, +0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xff,0x62,0x32, +0x02,0xf2,0x02,0x00,0xc0,0x18,0x1e,0x00,0x21,0x18,0x7e,0x00,0x38,0x15,0x82,0x26, +0x02,0x24,0x13,0x00,0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0xff,0x00,0x84,0x30, +0x21,0x18,0x64,0x00,0xf8,0x0c,0x64,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x7e,0x0b,0x44,0x94,0x25,0xb0,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x1c,0x13,0x00, +0x1f,0x00,0x67,0x30,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00, +0x25,0xb0,0x04,0x3c,0x21,0x10,0x47,0x00,0x02,0x80,0x03,0x3c,0xc8,0x02,0x85,0x34, +0x38,0x15,0x63,0x24,0xc4,0x02,0x84,0x34,0x80,0x10,0x02,0x00,0x00,0x00,0x92,0x8c, +0x21,0x48,0x43,0x00,0x00,0x00,0xa8,0x8c,0x21,0x58,0x80,0x00,0x21,0x28,0x00,0x00, +0xff,0x00,0x0a,0x24,0x29,0xb0,0x06,0x3c,0x21,0x20,0xa3,0x00,0xf0,0x04,0x82,0x90, +0x00,0x00,0x00,0x00,0x8f,0x01,0x4a,0x10,0x00,0x00,0x00,0x00,0x8d,0x01,0x47,0x10, +0x00,0x00,0x00,0x00,0x01,0x00,0xa5,0x24,0x08,0x00,0xa2,0x28,0xf6,0xff,0x40,0x14, +0x08,0x00,0xc6,0x24,0x08,0x00,0x02,0x24,0x2e,0xf5,0xa2,0x14,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0xff,0xff,0x03,0x24,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x00,0xff,0xa2,0x34,0x24,0x10,0x62,0x02,0x02,0xf2,0x02,0x00,0x38,0x15,0x83,0x26, +0x21,0x20,0xc0,0x03,0x86,0x27,0x00,0x0c,0x82,0x0b,0x60,0xa0,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x2a,0x42,0x00,0x0c, +0x21,0x20,0x00,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00, +0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,0x21,0x10,0x47,0x00,0xe8,0x26,0x83,0x24, +0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00, +0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x02,0x80,0x06,0x3c, +0xe4,0x26,0xc3,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c, +0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34, +0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c, +0x21,0x10,0x47,0x00,0xe0,0x26,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00, +0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34, +0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x47,0x00,0x02,0x80,0x06,0x3c,0xdc,0x26,0xc3,0x24,0x80,0x10,0x02,0x00, +0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x34,0x38,0x15,0x83,0x26, +0x08,0x26,0x62,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00, +0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,0x21,0x10,0x47,0x00,0xd8,0x26,0x83,0x24, +0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00, +0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x02,0x80,0x06,0x3c, +0xd4,0x26,0xc3,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c, +0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34, +0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c, +0x21,0x10,0x47,0x00,0xd0,0x26,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00, +0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34, +0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x47,0x00,0x02,0x80,0x06,0x3c,0xcc,0x26,0xc3,0x24,0x80,0x10,0x02,0x00, +0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x38,0x15,0x83,0x26,0x80,0x10,0x02,0x00, +0x21,0x10,0x43,0x00,0xec,0x11,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00, +0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,0x21,0x10,0x47,0x00,0xc8,0x26,0x83,0x24, +0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00, +0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x38,0x15,0x83,0x26, +0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x8c,0x11,0x44,0x8c,0x25,0xb0,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00, +0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x38,0x15,0x83,0x26, +0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x88,0x11,0x44,0x8c,0x25,0xb0,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x12,0x00,0x02,0x24, +0xc7,0x02,0xe2,0xa1,0xde,0x0f,0x00,0x08,0xc3,0x02,0xe2,0xa1,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0xb4,0xfd,0x03,0x24,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c, +0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00, +0x70,0x4a,0x00,0x0c,0x03,0x00,0x04,0x24,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0xf4,0xc2,0x17, +0x25,0xb0,0x02,0x3c,0x02,0x80,0x02,0x3c,0xca,0x3d,0x43,0x90,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x06,0x3c, +0xb7,0x3d,0xc3,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x00,0x11,0x1e,0x00,0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00, +0x2f,0x03,0x44,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x01,0x00,0x84,0x30, +0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x00,0x19,0x1e,0x00, +0x21,0x18,0x62,0x00,0x30,0x03,0x64,0x94,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x11,0x1e,0x00,0x38,0x15,0x83,0x26, +0x21,0x10,0x43,0x00,0x2c,0x03,0x44,0x8c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x42,0x26,0x04,0x00,0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26, +0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,0x36,0x03,0x64,0x94,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26, +0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,0x35,0x03,0x64,0x90,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26, +0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,0x34,0x03,0x64,0x90,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26, +0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,0x32,0x03,0x64,0x94,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34, +0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x18,0x0f,0x00,0x08, +0x01,0x00,0x04,0x24,0x18,0x0f,0x00,0x08,0x02,0x00,0x04,0x24,0x70,0x4a,0x00,0x0c, +0x02,0x00,0x04,0x24,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac, +0x7f,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x70,0x4a,0x00,0x0c,0x01,0x00,0x04,0x24, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0xf0,0x04,0x87,0xa0,0x90,0x11,0x22,0x8d,0x0f,0x00,0xa3,0x30, +0x0f,0xff,0x04,0x24,0x00,0x19,0x03,0x00,0x24,0x10,0x44,0x00,0x25,0x10,0x43,0x00, +0x90,0x11,0x22,0xad,0x00,0x00,0xd2,0xac,0x04,0x00,0xc8,0xac,0x00,0x00,0x65,0xad, +0x4e,0x18,0x00,0x08,0x08,0x00,0x02,0x24,0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x7f,0x0d,0x00,0x08, +0x00,0x00,0x00,0x00,0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x60,0x89,0x64,0xac,0x00,0x60,0x82,0x40, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x60,0x89,0x45,0x8c, +0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,0xc8,0x67,0x63,0x24, +0x00,0x00,0x43,0xac,0x04,0x00,0x02,0x24,0x1e,0x00,0xa2,0x10,0x05,0x00,0xa2,0x2c, +0x10,0x00,0x40,0x10,0x05,0x00,0x02,0x24,0x03,0x00,0x02,0x24,0x08,0x00,0xa2,0x10, +0x00,0x19,0x04,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0xc0,0x10,0x02,0x00, +0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00,0x21,0x10,0x44,0x00,0x40,0x19,0x02,0x00, +0xff,0xff,0x63,0x24,0xfe,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xf3,0xff,0xa2,0x10,0x06,0x00,0x02,0x24,0xf2,0xff,0xa2,0x14, +0x80,0x10,0x04,0x00,0x40,0x11,0x04,0x00,0x23,0x10,0x44,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x44,0x00,0x00,0x19,0x02,0x00,0x23,0x18,0x62,0x00,0x08,0x1a,0x00,0x08, +0x00,0x19,0x03,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0xc0,0x10,0x02,0x00, +0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00,0x21,0x10,0x44,0x00,0x08,0x1a,0x00,0x08, +0x00,0x19,0x02,0x00,0x02,0x80,0x02,0x3c,0x60,0x89,0x45,0x8c,0x00,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,0x84,0x68,0x63,0x24,0x00,0x00,0x43,0xac, +0x05,0x00,0x02,0x24,0x10,0x00,0xa2,0x10,0x06,0x00,0xa2,0x2c,0x09,0x00,0x40,0x14, +0x04,0x00,0x02,0x24,0x06,0x00,0x02,0x24,0x0f,0x00,0xa2,0x10,0x00,0x11,0x04,0x00, +0xff,0xff,0x84,0x24,0xfe,0xff,0x80,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xfa,0xff,0xa2,0x14,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00, +0x30,0x1a,0x00,0x08,0x40,0x20,0x02,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00, +0x30,0x1a,0x00,0x08,0x80,0x20,0x02,0x00,0x23,0x10,0x44,0x00,0x30,0x1a,0x00,0x08, +0x40,0x20,0x02,0x00,0xff,0xff,0x85,0x30,0x21,0x30,0x00,0x00,0x25,0xb0,0x03,0x3c, +0x2a,0xb0,0x04,0x3c,0xb4,0x00,0x63,0x34,0x01,0x00,0xa2,0x24,0x31,0x00,0x84,0x34, +0x00,0x00,0x65,0xa0,0x00,0x00,0x85,0xa0,0xff,0xff,0x45,0x30,0x12,0x00,0xa0,0x10, +0x01,0x00,0x03,0x24,0x28,0xb0,0x07,0x3c,0x56,0x1a,0x00,0x08,0xff,0xff,0x08,0x24, +0x00,0x00,0x83,0xa0,0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30,0x2b,0x10,0xa3,0x00, +0x09,0x00,0x40,0x14,0x08,0x00,0xc6,0x24,0xf9,0xff,0x65,0x14,0x21,0x20,0xc7,0x00, +0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30,0x2b,0x10,0xa3,0x00,0x00,0x00,0x88,0xa0, +0xf9,0xff,0x40,0x10,0x08,0x00,0xc6,0x24,0x00,0x01,0xa2,0x2c,0x13,0x00,0x40,0x10, +0x21,0x18,0xa0,0x00,0xff,0x00,0x08,0x24,0x28,0xb0,0x07,0x3c,0x6a,0x1a,0x00,0x08, +0xff,0xff,0x09,0x24,0xff,0xff,0x43,0x30,0x00,0x00,0xa2,0xa0,0x00,0x01,0x62,0x2c, +0x0a,0x00,0x40,0x10,0x08,0x00,0xc6,0x24,0x01,0x00,0x62,0x24,0xf9,0xff,0x68,0x14, +0x21,0x28,0xc7,0x00,0x00,0x01,0x02,0x24,0xff,0xff,0x43,0x30,0x00,0x01,0x62,0x2c, +0x00,0x00,0xa9,0xa0,0xf8,0xff,0x40,0x14,0x08,0x00,0xc6,0x24,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xd0,0xff,0xbd,0x27,0x28,0x00,0xbf,0xaf,0x24,0x00,0xb5,0xaf, +0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf, +0x10,0x00,0xb0,0xaf,0x00,0x60,0x12,0x40,0x01,0x00,0x41,0x36,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x42,0x00,0x15,0x36,0xff,0xff,0x02,0x24, +0x00,0x00,0xa2,0xa2,0xd8,0x00,0x05,0x36,0x40,0x00,0x11,0x36,0xa8,0x00,0x14,0x36, +0xa0,0x00,0x13,0x36,0x00,0x10,0x03,0x24,0xa4,0x00,0x10,0x36,0x00,0x80,0x02,0x3c, +0x00,0x00,0x23,0xa6,0x00,0x00,0xa0,0xa0,0x00,0x00,0x60,0xae,0x00,0x00,0x00,0xae, +0x00,0x00,0x82,0xae,0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24,0xfd,0x00,0x04,0x24, +0x25,0x18,0x62,0x00,0xfc,0x17,0x02,0x24,0x00,0x00,0xa3,0xa0,0x00,0x00,0x22,0xa6, +0x41,0x1a,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24, +0x74,0x0b,0x45,0x8c,0x6c,0x0b,0x43,0x8c,0x70,0x0b,0x44,0x8c,0xfc,0x37,0x02,0x24, +0x00,0x00,0x63,0xae,0x00,0x00,0x04,0xae,0x00,0x00,0x85,0xae,0x00,0x00,0x22,0xa6, +0x00,0x00,0xa0,0xa2,0x00,0x60,0x92,0x40,0x28,0x00,0xbf,0x8f,0x24,0x00,0xb5,0x8f, +0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0xc8,0xff,0xbd,0x27, +0x34,0x00,0xbf,0xaf,0x30,0x00,0xbe,0xaf,0x2c,0x00,0xb7,0xaf,0x28,0x00,0xb6,0xaf, +0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x16,0x40,0x01,0x00,0xc1,0x36, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x11,0x3c,0x40,0x00,0x30,0x36, +0xff,0xff,0x02,0x24,0x42,0x00,0x3e,0x36,0xfc,0x77,0x13,0x24,0x00,0x00,0xc2,0xa3, +0xfc,0x57,0x12,0x24,0x00,0x00,0x13,0xa6,0x21,0x1a,0x00,0x0c,0x32,0x00,0x04,0x24, +0xfc,0x37,0x17,0x24,0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6,0x21,0x1a,0x00,0x0c, +0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x24,0x00,0x00,0x17,0xa6,0x21,0x1a,0x00,0x0c, +0x00,0x00,0x00,0x00,0x00,0x00,0x13,0xa6,0x21,0x1a,0x00,0x0c,0x32,0x00,0x04,0x24, +0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6,0x21,0x1a,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x00,0x02,0x96,0x24,0xfa,0x03,0x24,0xd8,0x00,0x25,0x36,0x24,0x10,0x43,0x00, +0x00,0x00,0x02,0xa6,0x00,0x00,0xa3,0x90,0xa0,0x00,0x34,0x36,0xa4,0x00,0x35,0x36, +0xa8,0x00,0x33,0x36,0x7f,0x00,0x63,0x30,0x00,0x80,0x02,0x3c,0x00,0x00,0xa3,0xa0, +0x00,0x00,0x80,0xae,0x00,0x00,0xa0,0xae,0x00,0x00,0x62,0xae,0x00,0x00,0xa3,0x90, +0x80,0xff,0x02,0x24,0xfd,0x00,0x04,0x24,0x25,0x18,0x62,0x00,0x00,0x00,0xa3,0xa0, +0x00,0x00,0x12,0xa6,0x41,0x1a,0x00,0x0c,0x56,0x01,0x31,0x36,0x02,0x80,0x02,0x3c, +0x38,0x15,0x42,0x24,0x74,0x0b,0x45,0x8c,0x6c,0x0b,0x43,0x8c,0x70,0x0b,0x44,0x8c, +0xff,0x0f,0x02,0x24,0x00,0x00,0x83,0xae,0x00,0x00,0xa4,0xae,0x00,0x00,0x65,0xae, +0x00,0x00,0x17,0xa6,0x00,0x00,0x22,0xa6,0x00,0x00,0xc0,0xa3,0x00,0x60,0x96,0x40, +0x34,0x00,0xbf,0x8f,0x30,0x00,0xbe,0x8f,0x2c,0x00,0xb7,0x8f,0x28,0x00,0xb6,0x8f, +0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27, +0xd0,0xff,0xbd,0x27,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf, +0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf, +0x10,0x00,0xb0,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x40,0x00,0x05,0x36,0x00,0x00,0xa2,0x94, +0xaf,0xff,0x03,0x24,0xa8,0x00,0x13,0x36,0x24,0x10,0x43,0x00,0x00,0x00,0xa2,0xa4, +0xa0,0x00,0x12,0x36,0xa4,0x00,0x10,0x36,0x00,0x00,0x55,0x8e,0x00,0x00,0x16,0x8e, +0x00,0x00,0x71,0x8e,0x00,0x80,0x14,0x3c,0xfc,0x37,0x02,0x24,0x00,0x00,0x40,0xae, +0xfd,0x00,0x04,0x24,0x00,0x00,0x00,0xae,0x21,0x88,0x34,0x02,0x00,0x00,0x74,0xae, +0x00,0x00,0xa2,0xa4,0x41,0x1a,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0xae, +0x00,0x00,0x16,0xae,0x00,0x00,0x71,0xae,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f, +0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x04,0x3c, +0x40,0x00,0x84,0x34,0x00,0x00,0x82,0x94,0xd8,0xfd,0x03,0x24,0x24,0x10,0x43,0x00, +0xfc,0x37,0x03,0x24,0x00,0x00,0x82,0xa4,0x00,0x00,0x83,0xa4,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x00,0x60,0x08,0x40,0x01,0x00,0x01,0x35,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x25,0xb0,0x02,0x3c,0x08,0x09,0x42,0x34,0x03,0x08,0x03,0x24,0x00,0x00,0x43,0xac, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x02,0x80,0x07,0x3c, +0x61,0x0a,0x45,0x34,0x38,0x15,0xe6,0x24,0xf4,0x0d,0x42,0x34,0x00,0x00,0x43,0x94, +0x00,0x00,0xa4,0x90,0x6e,0x24,0xc2,0x94,0xff,0xff,0x63,0x30,0x02,0x00,0x40,0x14, +0xff,0x00,0x84,0x30,0x6c,0x24,0xc0,0xa4,0x00,0x1c,0x03,0x00,0x01,0x00,0x42,0x24, +0x03,0x1c,0x03,0x00,0x2b,0x00,0x60,0x04,0x6e,0x24,0xc2,0xa4,0x38,0x15,0xe2,0x24, +0x6c,0x24,0x44,0xa4,0x69,0x24,0x40,0xa0,0x38,0x15,0xe3,0x24,0x69,0x24,0x62,0x90, +0x00,0x00,0x00,0x00,0x1a,0x00,0x42,0x2c,0x1d,0x00,0x40,0x14,0x14,0x00,0x02,0x24, +0x25,0xb0,0x02,0x3c,0x02,0x08,0x42,0x34,0x00,0x00,0x43,0x94,0x21,0x28,0x00,0x00, +0xff,0xfe,0x64,0x30,0x00,0x00,0x44,0xa4,0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30, +0x06,0x00,0xa3,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0xa2,0x24,0x25,0xb0,0x02,0x3c, +0x02,0x08,0x42,0x34,0x00,0x01,0x83,0x34,0x00,0x00,0x43,0xa4,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x38,0x15,0xe2,0x24,0x6a,0x24,0x43,0x94,0x6e,0x24,0x40,0xa4, +0x69,0x24,0x40,0xa0,0x01,0x00,0x63,0x24,0x6a,0x24,0x43,0xa4,0x14,0x00,0x02,0x24, +0x02,0x80,0x03,0x3c,0x84,0x93,0x62,0xac,0x00,0x60,0x88,0x40,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x6c,0x24,0xc2,0x94,0x00,0x00,0x00,0x00,0xd4,0xff,0x44,0x14, +0x38,0x15,0xe2,0x24,0x69,0x24,0xc2,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24, +0x6e,0x1b,0x00,0x08,0x69,0x24,0xc2,0xa0,0x00,0x00,0x82,0x8c,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x30,0x10,0x00,0x02,0x24,0x0c,0x00,0xc2,0x10, +0x11,0x00,0xc3,0x28,0x06,0x00,0x60,0x10,0x20,0x00,0x02,0x24,0x08,0x00,0x02,0x24, +0x0d,0x00,0xc2,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x06,0x00,0xc2,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x00,0x00,0x85,0xa4,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xa0,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,0x00,0x00,0x43,0x90, +0xff,0xff,0xa5,0x24,0x00,0x2c,0x05,0x00,0xfd,0x00,0x63,0x30,0x03,0x2c,0x05,0x00, +0xff,0xff,0x87,0x30,0x00,0x00,0x43,0xa0,0x1a,0x00,0xa0,0x04,0x00,0x00,0x00,0x00, +0x21,0x30,0x40,0x00,0x07,0x10,0xa7,0x00,0x01,0x00,0x42,0x30,0xfd,0x00,0x64,0x30, +0x00,0x00,0x42,0x38,0x02,0x00,0x63,0x34,0x0a,0x18,0x82,0x00,0x00,0x00,0xc3,0xa0, +0x04,0x00,0x63,0x34,0x00,0x00,0xc3,0xa0,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24, +0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0xfb,0x00,0x63,0x30,0x00,0x00,0xc3,0xa0, +0x04,0x00,0x02,0x24,0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24, +0xff,0xff,0xa2,0x24,0x00,0x2c,0x02,0x00,0x03,0x2c,0x05,0x00,0xea,0xff,0xa1,0x04, +0x07,0x10,0xa7,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c, +0x0a,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0xff,0xff,0x84,0x24,0x00,0x24,0x04,0x00, +0x03,0x24,0x04,0x00,0xff,0x00,0x65,0x30,0x1d,0x00,0x80,0x04,0x21,0x38,0x00,0x00, +0x21,0x30,0x40,0x00,0x01,0x00,0x08,0x24,0x04,0x00,0xa5,0x34,0x00,0x00,0xc5,0xa0, +0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x45,0x30,0x01,0x00,0xa3,0x30, +0x05,0x00,0x60,0x10,0x04,0x00,0x02,0x24,0x04,0x10,0x88,0x00,0x25,0x10,0x47,0x00, +0xff,0xff,0x47,0x30,0x04,0x00,0x02,0x24,0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04, +0xff,0xff,0x42,0x24,0xfb,0x00,0xa5,0x30,0x00,0x00,0xc5,0xa0,0x09,0x00,0x02,0x24, +0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0xff,0xff,0x82,0x24, +0x00,0x24,0x02,0x00,0x03,0x24,0x04,0x00,0xe7,0xff,0x81,0x04,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf, +0x25,0xb0,0x10,0x3c,0x0a,0x00,0x10,0x36,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf, +0x00,0x00,0x02,0x92,0xff,0xff,0x91,0x30,0x03,0x00,0x05,0x24,0xc0,0x00,0x42,0x30, +0x80,0x00,0x43,0x34,0x00,0x00,0x03,0xa2,0x04,0x00,0x63,0x34,0x00,0x00,0x03,0xa2, +0xfb,0x00,0x63,0x30,0x00,0x00,0x03,0xa2,0x08,0x00,0x63,0x34,0x00,0x00,0x03,0xa2, +0x04,0x00,0x63,0x34,0x00,0x00,0x03,0xa2,0xfb,0x00,0x63,0x30,0x00,0x00,0x03,0xa2, +0xbd,0x1b,0x00,0x0c,0x06,0x00,0x04,0x24,0x42,0x20,0x11,0x00,0xbd,0x1b,0x00,0x0c, +0x06,0x00,0x05,0x24,0xe3,0x1b,0x00,0x0c,0x10,0x00,0x04,0x24,0x00,0x00,0x03,0x92, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0xc0,0x00,0x63,0x30,0x00,0x00,0x03,0xa2, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27, +0x14,0x00,0xb1,0xaf,0xff,0xff,0xb1,0x30,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf, +0x1c,0x00,0xbf,0xaf,0x21,0x90,0xc0,0x00,0x0a,0x00,0x20,0x12,0xff,0xff,0x90,0x30, +0x0a,0x1c,0x00,0x0c,0x21,0x20,0x00,0x02,0xfe,0xff,0x23,0x26,0x02,0x00,0x04,0x26, +0x00,0x00,0x42,0xa6,0xff,0xff,0x71,0x30,0xff,0xff,0x90,0x30,0xf8,0xff,0x20,0x16, +0x02,0x00,0x52,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x25,0xb0,0x03,0x3c, +0x0a,0x00,0x68,0x34,0x00,0x00,0x02,0x91,0xff,0xff,0xa5,0x30,0xff,0x00,0x84,0x30, +0x1f,0x00,0xa0,0x10,0xff,0x00,0x47,0x30,0x21,0x48,0x00,0x01,0x0c,0x00,0x6c,0x34, +0x0b,0x00,0x6b,0x34,0xc0,0xff,0x0a,0x24,0x21,0x68,0x00,0x01,0x25,0x10,0xea,0x00, +0xff,0x00,0x47,0x30,0x00,0x00,0x64,0xa1,0x00,0x00,0x27,0xa1,0x00,0x00,0x22,0x91, +0x00,0x00,0x00,0x00,0xff,0x00,0x47,0x30,0xc0,0x00,0xe3,0x30,0x08,0x00,0x60,0x10, +0x00,0x00,0x00,0x00,0x21,0x40,0xa0,0x01,0x00,0x00,0x02,0x91,0x00,0x00,0x00,0x00, +0xff,0x00,0x47,0x30,0xc0,0x00,0xe3,0x30,0xfb,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x00,0x00,0x82,0x8d,0xfc,0xff,0xa3,0x24,0x04,0x00,0x84,0x24,0xff,0xff,0x65,0x30, +0x00,0x00,0xc2,0xac,0xff,0x00,0x84,0x30,0xe8,0xff,0xa0,0x14,0x04,0x00,0xc6,0x24, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0x84,0x30,0x21,0x68,0xe0,0x00, +0xff,0xff,0xa5,0x30,0xc0,0x50,0x04,0x00,0x00,0x60,0x0c,0x40,0x01,0x00,0x81,0x35, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x00,0x00,0xc2,0x90,0x01,0x00,0xc3,0x90, +0x25,0xb0,0x07,0x3c,0x00,0x14,0x02,0x00,0x25,0x28,0xa2,0x00,0x00,0x1e,0x03,0x00, +0x01,0x80,0x08,0x3c,0x25,0x20,0xa3,0x00,0x40,0x02,0xe9,0x34,0x25,0x18,0x48,0x01, +0x44,0x02,0xe7,0x34,0x00,0x00,0xe4,0xac,0x00,0x00,0x23,0xad,0x03,0x00,0xc2,0x90, +0x02,0x00,0xc4,0x90,0x04,0x00,0xc3,0x90,0x05,0x00,0xc5,0x90,0x00,0x12,0x02,0x00, +0x25,0x20,0x82,0x00,0x00,0x1c,0x03,0x00,0x01,0x00,0x4a,0x25,0x25,0x20,0x83,0x00, +0x00,0x2e,0x05,0x00,0x25,0x40,0x48,0x01,0x25,0x20,0x85,0x00,0x00,0x00,0xe4,0xac, +0x01,0x00,0x4a,0x25,0x00,0x00,0x28,0xad,0x01,0x80,0x0b,0x3c,0x21,0x40,0x00,0x00, +0x21,0x10,0xa8,0x01,0x01,0x00,0x43,0x90,0x00,0x00,0x45,0x90,0x02,0x00,0x44,0x90, +0x03,0x00,0x46,0x90,0x00,0x1a,0x03,0x00,0x25,0x28,0xa3,0x00,0x00,0x24,0x04,0x00, +0x25,0x28,0xa4,0x00,0x00,0x36,0x06,0x00,0x04,0x00,0x08,0x25,0x25,0x10,0x4b,0x01, +0x25,0x20,0xa6,0x00,0x10,0x00,0x03,0x2d,0x00,0x00,0xe4,0xac,0x01,0x00,0x4a,0x25, +0x00,0x00,0x22,0xad,0xee,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x8c,0x40, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0xff,0x84,0x30,0x42,0xb0,0x08,0x3c, +0x80,0x10,0x04,0x00,0x21,0x10,0x48,0x00,0x04,0x00,0x46,0xac,0x00,0x00,0x07,0x91, +0x40,0x18,0x04,0x00,0x03,0x00,0x06,0x24,0xff,0x00,0xe7,0x30,0x04,0x30,0x66,0x00, +0x01,0x00,0x02,0x24,0x04,0x10,0x62,0x00,0x25,0x30,0xc7,0x00,0xff,0xff,0xa5,0x30, +0x25,0x10,0x47,0x00,0x02,0x00,0xa0,0x14,0xff,0x00,0xc7,0x30,0xff,0x00,0x47,0x30, +0x42,0xb0,0x02,0x3c,0x00,0x00,0x47,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x42,0xb0,0x02,0x3c,0x03,0x00,0x47,0x34,0x00,0x00,0xe3,0x90,0xff,0x00,0x84,0x30, +0x04,0x00,0x84,0x24,0xff,0x00,0x65,0x30,0x01,0x00,0x02,0x24,0x04,0x30,0x82,0x00, +0x07,0x18,0x85,0x00,0x25,0xb0,0x02,0x3c,0xe8,0x03,0x42,0x34,0x01,0x00,0x63,0x30, +0x21,0x20,0xc0,0x00,0x00,0x00,0x45,0xa0,0x02,0x00,0x60,0x10,0x00,0x00,0x00,0x00, +0x00,0x00,0xe6,0xa0,0x08,0x00,0xe0,0x03,0x24,0x10,0x85,0x00,0x00,0x60,0x03,0x40, +0x01,0x00,0x61,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c, +0x6c,0x89,0x42,0x24,0x04,0x00,0x45,0x8c,0x00,0x00,0x82,0xac,0x04,0x00,0x44,0xac, +0x00,0x00,0xa4,0xac,0x04,0x00,0x85,0xac,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x14,0x00,0x83,0x90,0x01,0x00,0x02,0x24,0x08,0x00,0x86,0xac, +0x18,0x00,0x85,0xac,0x00,0x00,0x84,0xac,0x03,0x00,0x62,0x10,0x04,0x00,0x84,0xac, +0xd3,0x1c,0x00,0x08,0x0c,0x00,0x80,0xac,0x0c,0x00,0x82,0x8c,0xd3,0x1c,0x00,0x08, +0x10,0x00,0x82,0xac,0x00,0x60,0x03,0x40,0x01,0x00,0x61,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x04,0x00,0x85,0x8c,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0xa2,0xac,0x04,0x00,0x45,0xac,0x00,0x00,0x84,0xac,0x04,0x00,0x84,0xac, +0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xc8,0xff,0xbd,0x27, +0x30,0x00,0xbe,0xaf,0x25,0xb0,0x02,0x3c,0x02,0x80,0x1e,0x3c,0x2c,0x00,0xb7,0xaf, +0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf, +0x34,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf, +0x18,0x03,0x56,0x34,0x00,0x80,0x17,0x3c,0x02,0x80,0x14,0x3c,0x02,0x80,0x15,0x3c, +0x6c,0x89,0xd3,0x27,0xec,0x73,0xe2,0x26,0x00,0x00,0xc2,0xae,0x6c,0x89,0xd1,0x8f, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0xec,0x3d,0x92,0x8e,0x00,0x00,0x00,0x00,0x24,0x00,0x40,0x12,0x00,0x00,0x00,0x00, +0xec,0x3d,0x80,0xae,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x21,0x00,0x33,0x12,0x21,0x80,0x20,0x02,0x14,0x00,0x23,0x92,0x01,0x00,0x02,0x24, +0x00,0x00,0x31,0x8e,0x29,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0x60,0x14, +0x02,0x00,0x02,0x24,0x0c,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x2b,0x10,0x43,0x02, +0x1c,0x00,0x40,0x10,0x23,0x10,0x72,0x00,0x1c,0x1d,0x00,0x08,0x0c,0x00,0x02,0xae, +0xef,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x0c,0x00,0x03,0x8e,0x00,0x00,0x00,0x00, +0xeb,0xff,0x60,0x10,0x2b,0x10,0x43,0x02,0xf7,0xff,0x40,0x14,0x23,0x10,0x72,0x00, +0x18,0x00,0x04,0x8e,0x08,0x00,0x02,0x8e,0x00,0x00,0x00,0x00,0x09,0xf8,0x40,0x00, +0x0c,0x00,0x00,0xae,0x1c,0x1d,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x0c,0xa4,0x26,0x21,0x28,0x00,0x00, +0x21,0x30,0x00,0x00,0xc2,0x2e,0x00,0x0c,0x21,0x38,0x00,0x00,0x0e,0x1d,0x00,0x08, +0xec,0x73,0xe2,0x26,0x08,0x00,0x02,0x8e,0x18,0x00,0x04,0x8e,0x09,0xf8,0x40,0x00, +0x00,0x00,0x00,0x00,0x1c,0x1d,0x00,0x08,0x0c,0x00,0x02,0xae,0x0c,0x00,0x03,0x8e, +0x00,0x00,0x00,0x00,0x2b,0x10,0x43,0x02,0xdb,0xff,0x40,0x14,0x23,0x10,0x72,0x00, +0x08,0x00,0x02,0x8e,0x18,0x00,0x04,0x8e,0x09,0xf8,0x40,0x00,0x00,0x00,0x00,0x00, +0x10,0x00,0x03,0x8e,0x1c,0x1d,0x00,0x08,0x0c,0x00,0x03,0xae,0x02,0x80,0x02,0x3c, +0x48,0x39,0x43,0x8c,0x02,0x80,0x06,0x3c,0xb6,0x3d,0xc7,0x90,0xff,0x00,0xa5,0x30, +0x25,0xb0,0x02,0x3c,0x42,0x18,0x03,0x00,0xff,0x00,0x84,0x30,0x21,0x40,0xa2,0x00, +0x11,0x00,0x02,0x24,0x01,0x00,0x63,0x30,0x14,0x00,0x86,0x2c,0x0f,0x00,0xe2,0x10, +0x10,0x00,0xa9,0x2c,0x01,0x00,0x02,0x24,0x04,0x00,0x62,0x10,0x25,0xb0,0x03,0x3c, +0x60,0x01,0x04,0xa1,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x10,0x00,0xa2,0x34, +0x21,0x30,0x43,0x00,0xfa,0xff,0x20,0x11,0x21,0x10,0xa3,0x00,0x60,0x01,0x44,0xa0, +0x60,0x01,0xc4,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xf1,0xff,0xc0,0x14, +0x1c,0x00,0x87,0x38,0x13,0x00,0x02,0x24,0x65,0x1d,0x00,0x08,0x0b,0x20,0x47,0x00, +0xff,0x00,0x84,0x30,0x01,0x00,0x03,0x24,0x10,0x00,0x02,0x3c,0x04,0x18,0x83,0x00, +0xf0,0x70,0x42,0x34,0x15,0x00,0x84,0x2c,0x06,0x00,0x80,0x10,0x24,0x28,0x62,0x00, +0x0f,0x00,0x63,0x30,0x04,0x00,0xa0,0x14,0x01,0x00,0x02,0x24,0x02,0x00,0x60,0x14, +0x02,0x00,0x02,0x24,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xc0,0x40,0x04,0x00,0x21,0x18,0x04,0x01,0x80,0x18,0x03,0x00,0x21,0x18,0x64,0x00, +0x02,0x80,0x02,0x3c,0x80,0x18,0x03,0x00,0x38,0x15,0x42,0x24,0x21,0x18,0x62,0x00, +0x8c,0x11,0x66,0x8c,0x21,0x38,0x60,0x00,0x92,0x11,0x60,0xa0,0x93,0x11,0x60,0xa0, +0x1c,0x00,0x05,0x24,0x99,0x1d,0x00,0x08,0x01,0x00,0x03,0x24,0x08,0x00,0xa0,0x04, +0x21,0x10,0x04,0x01,0x04,0x10,0xa3,0x00,0x24,0x10,0xc2,0x00,0xfb,0xff,0x40,0x10, +0xff,0xff,0xa5,0x24,0x01,0x00,0xa5,0x24,0x92,0x11,0xe5,0xa0,0x21,0x10,0x04,0x01, +0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x02,0x00, +0x38,0x15,0x63,0x24,0x21,0x18,0x43,0x00,0x8c,0x11,0x66,0x8c,0x21,0x28,0x00,0x00, +0xad,0x1d,0x00,0x08,0x01,0x00,0x07,0x24,0x1d,0x00,0xa2,0x28,0x08,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x04,0x10,0xa7,0x00,0x24,0x10,0xc2,0x00,0xfa,0xff,0x40,0x10, +0x01,0x00,0xa5,0x24,0xff,0xff,0xa5,0x24,0x08,0x00,0xe0,0x03,0x93,0x11,0x65,0xa0, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xd8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0xc0,0x80,0x04,0x00,0x21,0x80,0x04,0x02, +0x80,0x80,0x10,0x00,0x21,0x80,0x04,0x02,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24, +0x80,0x80,0x10,0x00,0x20,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf, +0x21,0x80,0x02,0x02,0x14,0x00,0xb1,0xaf,0x90,0x11,0x03,0x8e,0x25,0xb0,0x02,0x3c, +0x80,0x01,0x53,0x34,0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00, +0x00,0x00,0x71,0x92,0x88,0x11,0x05,0x8e,0x84,0x01,0x62,0x8c,0x21,0x90,0x80,0x00, +0xff,0x00,0x31,0x32,0x24,0x10,0x45,0x00,0x88,0x1d,0x00,0x0c,0x8c,0x11,0x02,0xae, +0x92,0x11,0x04,0x92,0x57,0x1d,0x00,0x0c,0xff,0x00,0x45,0x32,0x92,0x11,0x04,0x92, +0x78,0x1d,0x00,0x0c,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24, +0x0a,0x88,0x62,0x00,0x00,0x00,0x71,0xa2,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x28,0x00,0xbd,0x27,0xff,0xff,0x84,0x30,0x00,0x02,0x82,0x30,0x07,0x00,0x03,0x24, +0x0d,0x00,0x40,0x14,0x0b,0x00,0x84,0x30,0x0c,0x00,0x82,0x2c,0x0a,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00,0xa4,0x8e,0x63,0x24, +0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00, +0x00,0x00,0x00,0x00,0x07,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x06,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x05,0x00,0x03,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x04,0x00,0x03,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x03,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x02,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x01,0x00,0x03,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x21,0x18,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x88,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x70,0x00,0xbe,0xaf, +0x6c,0x00,0xb7,0xaf,0x68,0x00,0xb6,0xaf,0x64,0x00,0xb5,0xaf,0x5c,0x00,0xb3,0xaf, +0x58,0x00,0xb2,0xaf,0x74,0x00,0xbf,0xaf,0x60,0x00,0xb4,0xaf,0x54,0x00,0xb1,0xaf, +0x50,0x00,0xb0,0xaf,0xd4,0x8e,0x42,0x24,0x00,0x00,0x54,0x8c,0x08,0x00,0x03,0x24, +0x02,0x80,0x0b,0x3c,0x21,0x98,0x00,0x00,0x21,0xa8,0x00,0x00,0x21,0xb8,0x00,0x00, +0x21,0xf0,0x00,0x00,0x21,0xb0,0x00,0x00,0x21,0x90,0x80,0x02,0x10,0x00,0xa3,0xaf, +0x14,0x00,0xa0,0xaf,0x18,0x00,0xa0,0xaf,0x1c,0x00,0xa0,0xaf,0x20,0x00,0xa0,0xaf, +0x24,0x00,0xa0,0xaf,0x28,0x00,0xa0,0xaf,0x2c,0x00,0xa0,0xaf,0x30,0x00,0xa0,0xaf, +0x34,0x00,0xa0,0xaf,0x38,0x00,0xa0,0xaf,0x3c,0x00,0xa0,0xaf,0x40,0x00,0xa0,0xaf, +0xc5,0x1e,0x00,0x08,0x44,0x00,0xa0,0xaf,0x5c,0x11,0x42,0xae,0x78,0x11,0x44,0x8e, +0x74,0x11,0x47,0x8e,0x60,0x11,0x48,0x8e,0x64,0x11,0x45,0x8e,0x6c,0x11,0x46,0x8e, +0x70,0x11,0x43,0x8e,0x21,0x38,0xe4,0x00,0x02,0x80,0x04,0x3c,0x38,0x15,0x84,0x24, +0x21,0x10,0x24,0x02,0x21,0x40,0x05,0x01,0x21,0x30,0xc3,0x00,0xce,0x04,0x42,0x90, +0x5c,0x11,0x4a,0x8e,0x0c,0x00,0xe0,0x10,0x21,0x48,0x00,0x00,0x2b,0x48,0x47,0x00, +0x0b,0x00,0x20,0x15,0x02,0x80,0x02,0x3c,0x07,0x00,0x22,0x2e,0xa3,0x01,0x40,0x14, +0xc0,0x10,0x07,0x00,0x0c,0x00,0x02,0x24,0x9f,0x01,0x22,0x12,0x0d,0x00,0x02,0x24, +0x9e,0x01,0x22,0x12,0xc0,0x10,0x07,0x00,0x93,0x00,0x20,0x11,0x02,0x80,0x02,0x3c, +0x38,0x15,0x42,0x24,0x80,0x18,0x11,0x00,0x21,0x18,0x62,0x00,0x21,0x20,0x51,0x02, +0xce,0x11,0x85,0x90,0xf8,0x04,0x62,0x8c,0x00,0x00,0x00,0x00,0x04,0x10,0xa2,0x00, +0x2b,0x10,0x4a,0x00,0x88,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xec,0x11,0x42,0x8e, +0x01,0x00,0x07,0x24,0x04,0x18,0x27,0x02,0x24,0x10,0x43,0x00,0x10,0x01,0x40,0x10, +0x1c,0x00,0x22,0x2e,0x21,0x28,0x51,0x02,0x94,0x11,0xa6,0x90,0xce,0x11,0xa2,0x90, +0x0a,0x00,0x04,0x24,0xff,0x00,0xc3,0x30,0x04,0x20,0x44,0x00,0x2a,0x18,0x64,0x00, +0x07,0x01,0x60,0x10,0x1c,0x00,0x22,0x2e,0x01,0x00,0xc2,0x24,0xff,0x00,0x43,0x30, +0xb7,0x01,0x64,0x10,0x94,0x11,0xa2,0xa0,0x38,0x15,0x65,0x25,0x80,0x10,0x11,0x00, +0x21,0x10,0x45,0x00,0x6c,0x05,0x44,0x8c,0xf8,0x04,0x43,0x8c,0x21,0x30,0xc5,0x02, +0x40,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x21,0x18,0x62,0x00,0x82,0x50,0x03,0x00, +0x5c,0x11,0xca,0xac,0x08,0x26,0xa3,0x8c,0xff,0xff,0x02,0x34,0x06,0x00,0x62,0x10, +0x21,0x20,0x20,0x02,0xff,0x00,0x65,0x32,0x57,0x1d,0x00,0x0c,0x48,0x00,0xab,0xaf, +0x48,0x00,0xab,0x8f,0x21,0x20,0x20,0x02,0x78,0x1d,0x00,0x0c,0x48,0x00,0xab,0xaf, +0x10,0x00,0xa4,0x8f,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x20,0x62,0x00, +0x10,0x00,0xa4,0xaf,0x48,0x00,0xab,0x8f,0xc7,0x00,0x60,0x12,0x38,0x15,0x70,0x25, +0x38,0x15,0x62,0x25,0x21,0x10,0xa2,0x02,0x70,0x11,0x40,0xac,0x74,0x11,0x40,0xac, +0x78,0x11,0x40,0xac,0x60,0x11,0x40,0xac,0x64,0x11,0x40,0xac,0x68,0x11,0x40,0xac, +0x6c,0x11,0x40,0xac,0x44,0x00,0xa2,0x8f,0x40,0x00,0xa4,0x8f,0x01,0x00,0x73,0x26, +0x94,0x00,0x42,0x24,0x44,0x00,0xa2,0xaf,0x3c,0x00,0xa2,0x8f,0x94,0x00,0x84,0x24, +0x40,0x00,0xa4,0xaf,0x94,0x00,0x42,0x24,0x38,0x00,0xa4,0x8f,0x3c,0x00,0xa2,0xaf, +0x34,0x00,0xa2,0x8f,0x94,0x00,0x84,0x24,0x38,0x00,0xa4,0xaf,0x94,0x00,0x42,0x24, +0x30,0x00,0xa4,0x8f,0x34,0x00,0xa2,0xaf,0x2c,0x00,0xa2,0x8f,0x94,0x00,0x84,0x24, +0x30,0x00,0xa4,0xaf,0x94,0x00,0x42,0x24,0x28,0x00,0xa4,0x8f,0x2c,0x00,0xa2,0xaf, +0x24,0x00,0xa2,0x8f,0x94,0x00,0x84,0x24,0x28,0x00,0xa4,0xaf,0x94,0x00,0x42,0x24, +0x20,0x00,0xa4,0x8f,0x24,0x00,0xa2,0xaf,0x1c,0x00,0xa2,0x8f,0x94,0x00,0x84,0x24, +0x20,0x00,0xa4,0xaf,0x94,0x00,0x42,0x24,0x18,0x00,0xa4,0x8f,0x1c,0x00,0xa2,0xaf, +0x14,0x00,0xa2,0x8f,0x94,0x00,0x84,0x24,0x20,0x00,0x63,0x2a,0x94,0x00,0x42,0x24, +0x94,0x00,0x52,0x26,0x94,0x00,0xd6,0x26,0x18,0x00,0xa4,0xaf,0x94,0x00,0xde,0x27, +0x14,0x00,0xa2,0xaf,0x94,0x00,0x94,0x26,0x94,0x00,0xf7,0x26,0x2e,0x01,0x60,0x10, +0x94,0x00,0xb5,0x26,0x90,0x11,0x42,0x8e,0x00,0x00,0x00,0x00,0x02,0x13,0x02,0x00, +0x01,0x00,0x42,0x30,0xc2,0xff,0x40,0x10,0x25,0xb0,0x02,0x3c,0x21,0x10,0x62,0x02, +0x60,0x01,0x44,0x90,0x78,0x11,0x43,0x8e,0x74,0x11,0x46,0x8e,0xff,0x00,0x91,0x30, +0x02,0x80,0x04,0x3c,0x38,0x15,0x84,0x24,0x21,0x10,0x24,0x02,0x77,0x04,0x44,0x90, +0x5a,0x04,0x45,0x90,0x5c,0x11,0x47,0x8e,0x18,0x00,0x64,0x00,0x12,0x18,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0xc5,0x00,0x12,0x30,0x00,0x00, +0x21,0x30,0xc3,0x00,0x2b,0x10,0xe6,0x00,0x53,0xff,0x40,0x10,0x23,0x10,0xe6,0x00, +0x33,0x1e,0x00,0x08,0x5c,0x11,0x40,0xae,0x81,0x00,0xe0,0x10,0x00,0x00,0x00,0x00, +0x82,0x00,0x20,0x15,0x38,0x15,0x62,0x25,0x40,0x10,0x07,0x00,0x21,0x10,0x47,0x00, +0x82,0x10,0x02,0x00,0x2b,0x10,0x46,0x00,0x97,0xff,0x40,0x10,0x21,0x20,0x20,0x02, +0x20,0x00,0xa2,0x8f,0x38,0x15,0x68,0x25,0x01,0x00,0x05,0x24,0x21,0x20,0x48,0x00, +0x21,0x30,0x91,0x00,0xec,0x11,0x83,0x8c,0x04,0x10,0x25,0x02,0xb1,0x11,0xc7,0x90, +0x27,0x10,0x02,0x00,0x24,0x18,0x62,0x00,0xec,0x11,0x83,0xac,0x09,0x00,0xe5,0x10, +0x94,0x11,0xc0,0xa0,0x1c,0x00,0xa3,0x8f,0x21,0x38,0x00,0x00,0x21,0x20,0x68,0x00, +0x21,0x18,0x87,0x00,0x01,0x00,0xe7,0x24,0x1d,0x00,0xe2,0x28,0xfc,0xff,0x40,0x14, +0xce,0x11,0x60,0xa0,0x18,0x00,0xa4,0x8f,0x38,0x15,0x63,0x25,0x21,0x50,0x60,0x00, +0x21,0x10,0x83,0x00,0x21,0x10,0x51,0x00,0xb1,0x11,0x40,0xa0,0x02,0x80,0x03,0x3c, +0x02,0x80,0x02,0x3c,0xdc,0x8d,0x49,0x24,0x68,0x8d,0x68,0x24,0x21,0x38,0x00,0x00, +0x80,0x18,0x07,0x00,0x21,0x10,0x69,0x00,0x21,0x20,0x68,0x00,0x00,0x00,0x46,0x8c, +0x00,0x00,0x85,0x8c,0x01,0x00,0xe7,0x24,0x21,0x18,0x6a,0x00,0x1d,0x00,0xe2,0x28, +0xf8,0x04,0x65,0xac,0xf6,0xff,0x40,0x14,0x6c,0x05,0x66,0xac,0x14,0x00,0x20,0x12, +0x02,0x80,0x05,0x3c,0x93,0x11,0x82,0x92,0xff,0xff,0x27,0x26,0x2a,0x10,0xe2,0x00, +0x0f,0x00,0x40,0x14,0x02,0x80,0x0b,0x3c,0x38,0x15,0x62,0x25,0x21,0x10,0xc2,0x03, +0x93,0x11,0x45,0x90,0x8c,0x11,0x44,0x8c,0x01,0x00,0x06,0x24,0x04,0x18,0xe6,0x00, +0x24,0x10,0x83,0x00,0x23,0x01,0x43,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0xe7,0x24, +0x2a,0x10,0xe5,0x00,0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00,0x02,0x80,0x05,0x3c, +0xb6,0x3d,0xa3,0x90,0x22,0x00,0x02,0x24,0x04,0x01,0x62,0x10,0x38,0x15,0x62,0x25, +0x38,0x15,0x63,0x25,0x80,0x10,0x11,0x00,0x21,0x10,0x43,0x00,0x6c,0x05,0x44,0x8c, +0xf8,0x04,0x43,0x8c,0xb6,0x3d,0xa5,0x90,0x40,0x10,0x04,0x00,0x21,0x10,0x44,0x00, +0x21,0x18,0x62,0x00,0x22,0x00,0x02,0x24,0xf3,0x00,0xa2,0x10,0x82,0x50,0x03,0x00, +0xec,0x11,0x83,0x8e,0x01,0x00,0x02,0x24,0x04,0x10,0x22,0x02,0x25,0x18,0x62,0x00, +0xec,0x11,0x83,0xae,0x38,0x15,0x63,0x25,0x21,0x10,0xe3,0x02,0x5c,0x11,0x4a,0xac, +0x08,0x26,0x64,0x8c,0xff,0xff,0x02,0x34,0x36,0xff,0x82,0x14,0x21,0x20,0x20,0x02, +0x78,0x1d,0x00,0x0c,0x48,0x00,0xab,0xaf,0x10,0x00,0xa4,0x8f,0x01,0x00,0x42,0x38, +0x04,0x00,0x03,0x24,0x0a,0x20,0x62,0x00,0x10,0x00,0xa4,0xaf,0x48,0x00,0xab,0x8f, +0x3b,0xff,0x60,0x16,0x38,0x15,0x70,0x25,0x64,0x11,0x05,0x96,0x60,0x11,0x02,0x96, +0x25,0xb0,0x11,0x3c,0x00,0x2c,0x05,0x00,0x21,0x28,0x45,0x00,0x5a,0x49,0x00,0x0c, +0x68,0x0c,0x24,0x36,0x70,0x11,0x02,0x8e,0x6c,0x11,0x05,0x8e,0x68,0x11,0x03,0x96, +0x6c,0x0c,0x24,0x36,0x21,0x28,0xa2,0x00,0x00,0x2c,0x05,0x00,0x5a,0x49,0x00,0x0c, +0x21,0x28,0x65,0x00,0x48,0x00,0xab,0x8f,0x8d,0x1e,0x00,0x08,0x38,0x15,0x62,0x25, +0x1d,0xff,0x20,0x11,0x21,0x20,0x20,0x02,0x38,0x15,0x62,0x25,0x80,0x18,0x11,0x00, +0x21,0x18,0x62,0x00,0x6c,0x05,0x64,0x8c,0x00,0x00,0x00,0x00,0x2b,0x20,0x44,0x01, +0x15,0xff,0x80,0x10,0x21,0x20,0x20,0x02,0xec,0x1e,0x00,0x08,0x00,0x00,0x00,0x00, +0xfe,0xfe,0x40,0x10,0x38,0x15,0x65,0x25,0x21,0x20,0x51,0x02,0xb1,0x11,0x83,0x90, +0x01,0x00,0x02,0x24,0x8d,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x44,0x00,0xa3,0x8f, +0x38,0x15,0x42,0x24,0x21,0x20,0x62,0x00,0x21,0x38,0x00,0x00,0x21,0x18,0x87,0x00, +0x01,0x00,0xe7,0x24,0x1d,0x00,0xe2,0x28,0xfc,0xff,0x40,0x14,0xce,0x11,0x60,0xa0, +0x40,0x00,0xa4,0x8f,0x02,0x80,0x0b,0x3c,0x38,0x15,0x65,0x25,0x21,0x30,0x85,0x00, +0xec,0x11,0xc2,0x8c,0x01,0x00,0x03,0x24,0x04,0x18,0x23,0x02,0x27,0x18,0x03,0x00, +0x21,0x20,0xd1,0x00,0x24,0x10,0x43,0x00,0xb1,0x11,0x80,0xa0,0xec,0x11,0xc2,0xac, +0x12,0x00,0x20,0x16,0x94,0x11,0x80,0xa0,0x92,0x11,0xc2,0x90,0x00,0x00,0x00,0x00, +0x0e,0x00,0x40,0x10,0x01,0x00,0x07,0x24,0x3c,0x00,0xa3,0x8f,0x01,0x00,0x06,0x24, +0x21,0x10,0x65,0x00,0x92,0x11,0x44,0x90,0x8c,0x11,0x45,0x8c,0x04,0x18,0xe6,0x00, +0x24,0x10,0xa3,0x00,0xad,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xe7,0x24, +0x2a,0x10,0x87,0x00,0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00,0x38,0x00,0xa2,0x8f, +0x02,0x80,0x0b,0x3c,0x38,0x15,0x64,0x25,0x21,0x18,0x44,0x00,0x92,0x11,0x62,0x90, +0x01,0x00,0x27,0x26,0x2a,0x10,0x47,0x00,0x0f,0x00,0x40,0x14,0x02,0x80,0x05,0x3c, +0x34,0x00,0xa3,0x8f,0x01,0x00,0x06,0x24,0x21,0x10,0x64,0x00,0x92,0x11,0x45,0x90, +0x8c,0x11,0x44,0x8c,0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00,0x94,0x00,0x43,0x10, +0x00,0x00,0x00,0x00,0x01,0x00,0xe7,0x24,0x2a,0x10,0xa7,0x00,0xfa,0xff,0x40,0x10, +0x04,0x18,0xe6,0x00,0x02,0x80,0x05,0x3c,0xb6,0x3d,0xa3,0x90,0x22,0x00,0x02,0x24, +0x5e,0x00,0x62,0x10,0xee,0xff,0x22,0x26,0xb6,0x3d,0xa3,0x90,0x22,0x00,0x02,0x24, +0x50,0x00,0x62,0x10,0x11,0x00,0x02,0x24,0xb6,0x3d,0xa3,0x90,0x22,0x00,0x02,0x24, +0xae,0xfe,0x62,0x14,0x38,0x15,0x65,0x25,0x28,0x00,0xa2,0x8f,0x02,0x80,0x0b,0x3c, +0x38,0x15,0x66,0x25,0x21,0x20,0x46,0x00,0x90,0x11,0x85,0x8c,0x01,0x00,0x03,0x24, +0x42,0x13,0x05,0x00,0x07,0x00,0x42,0x30,0xa3,0xfe,0x43,0x10,0x14,0x00,0x22,0x2e, +0xa1,0xfe,0x40,0x14,0x1c,0x00,0x22,0x2e,0x9f,0xfe,0x40,0x10,0xff,0xff,0x02,0x3c, +0xff,0x1f,0x42,0x34,0x24,0x10,0xa2,0x00,0x00,0x20,0x42,0x34,0x90,0x11,0x82,0xac, +0x93,0x11,0x83,0x90,0xff,0xff,0x27,0x26,0x2a,0x18,0xe3,0x00,0x96,0xfe,0x60,0x14, +0x00,0x00,0x00,0x00,0x24,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x21,0x10,0x66,0x00, +0x93,0x11,0x45,0x90,0x8c,0x11,0x44,0x8c,0xe3,0x1f,0x00,0x08,0x01,0x00,0x06,0x24, +0x2a,0x10,0xe5,0x00,0x8c,0xfe,0x40,0x14,0x00,0x00,0x00,0x00,0x04,0x18,0xe6,0x00, +0x24,0x10,0x83,0x00,0xfa,0xff,0x43,0x14,0xff,0xff,0xe7,0x24,0x01,0x00,0xe7,0x24, +0x6e,0x1e,0x00,0x08,0xff,0x00,0xf1,0x30,0xc0,0x10,0x07,0x00,0x23,0x10,0x47,0x00, +0xc2,0x10,0x02,0x00,0x2b,0x10,0x48,0x00,0x6c,0xfe,0x40,0x14,0x00,0x00,0x00,0x00, +0x4e,0x1e,0x00,0x08,0x00,0x00,0x00,0x00,0x10,0x00,0xa3,0x8f,0x74,0x00,0xbf,0x8f, +0x70,0x00,0xbe,0x8f,0x6c,0x00,0xb7,0x8f,0x68,0x00,0xb6,0x8f,0x64,0x00,0xb5,0x8f, +0x60,0x00,0xb4,0x8f,0x5c,0x00,0xb3,0x8f,0x58,0x00,0xb2,0x8f,0x54,0x00,0xb1,0x8f, +0x50,0x00,0xb0,0x8f,0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34,0x78,0x00,0xbd,0x27, +0x00,0x00,0x43,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x18,0x00,0x22,0x2e, +0x21,0x00,0x40,0x14,0x05,0x00,0x22,0x2e,0xce,0x11,0x83,0x90,0x00,0x00,0x00,0x00, +0x05,0x00,0x62,0x2c,0x76,0xff,0x40,0x10,0x01,0x00,0x62,0x24,0x80,0x1f,0x00,0x08, +0xce,0x11,0x82,0xa0,0xb0,0xff,0x22,0x16,0x38,0x15,0x62,0x25,0x2c,0x00,0xa3,0x8f, +0x80,0x00,0x04,0x3c,0x21,0x10,0x62,0x00,0x8c,0x11,0x43,0x8c,0x17,0x00,0x02,0x24, +0x24,0x18,0x64,0x00,0xbe,0x1f,0x00,0x08,0x0b,0x88,0x43,0x00,0xff,0x00,0x42,0x30, +0x02,0x00,0x42,0x2c,0xa0,0xff,0x40,0x10,0x38,0x15,0x62,0x25,0x30,0x00,0xa4,0x8f, +0x00,0x00,0x00,0x00,0x21,0x10,0x82,0x00,0x8c,0x11,0x43,0x8c,0x00,0x01,0x04,0x3c, +0x18,0x00,0x02,0x24,0x24,0x18,0x64,0x00,0xba,0x1f,0x00,0x08,0x0b,0x88,0x43,0x00, +0x6e,0x1e,0x00,0x08,0xb1,0x11,0xa7,0xa0,0x04,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0xce,0x11,0x83,0x90,0x09,0x20,0x00,0x08,0x03,0x00,0x62,0x2c,0xce,0x11,0x83,0x90, +0x09,0x20,0x00,0x08,0x04,0x00,0x62,0x2c,0x13,0x00,0x02,0x24,0x0c,0xff,0x22,0x16, +0x38,0x15,0x63,0x25,0x43,0x1f,0x00,0x08,0x21,0x10,0xe3,0x02,0x14,0x00,0xa3,0x8f, +0x00,0x00,0x00,0x00,0x21,0x20,0x62,0x00,0x90,0x11,0x83,0x8c,0x00,0x00,0x00,0x00, +0x42,0x13,0x03,0x00,0x07,0x00,0x42,0x30,0xf5,0xfe,0x40,0x10,0x14,0x00,0x22,0x2e, +0xf3,0xfe,0x40,0x10,0x0c,0x00,0x22,0x2e,0xf1,0xfe,0x40,0x14,0xff,0xff,0x02,0x3c, +0xff,0x1f,0x42,0x34,0x24,0x10,0x62,0x00,0x30,0x1f,0x00,0x08,0x90,0x11,0x82,0xac, +0xff,0x00,0xf1,0x30,0xb6,0x1f,0x00,0x08,0x02,0x80,0x05,0x3c,0x9f,0x1f,0x00,0x08, +0xff,0x00,0xf1,0x30,0x2b,0x1f,0x00,0x08,0xff,0x00,0xf1,0x30,0xa8,0xff,0xbd,0x27, +0x02,0x80,0x02,0x3c,0x38,0x00,0xb2,0xaf,0x54,0x00,0xbf,0xaf,0x50,0x00,0xbe,0xaf, +0x4c,0x00,0xb7,0xaf,0x48,0x00,0xb6,0xaf,0x44,0x00,0xb5,0xaf,0x40,0x00,0xb4,0xaf, +0x3c,0x00,0xb3,0xaf,0x34,0x00,0xb1,0xaf,0x30,0x00,0xb0,0xaf,0x38,0x15,0x46,0x24, +0x8d,0x25,0xc4,0x90,0x88,0x25,0xc3,0x8c,0x84,0x25,0xc2,0x8c,0x21,0x90,0x64,0x00, +0x2b,0x10,0x42,0x02,0x7e,0x00,0x40,0x10,0x21,0x88,0xc0,0x00,0x02,0x80,0x1e,0x3c, +0x02,0x80,0x17,0x3c,0x21,0xa8,0xc0,0x00,0x21,0xb0,0xc0,0x00,0x6a,0x20,0x00,0x08, +0x01,0x00,0x14,0x24,0x84,0x25,0xc2,0x8e,0x10,0x00,0x52,0x26,0x2b,0x10,0x42,0x02, +0x73,0x00,0x40,0x10,0x21,0x88,0xc0,0x02,0x8d,0x25,0x22,0x92,0xff,0xff,0x45,0x32, +0x25,0x28,0xb7,0x00,0x10,0x00,0x42,0x24,0x8d,0x25,0x22,0xa2,0x14,0x39,0xc4,0x27, +0x60,0x45,0x00,0x0c,0x10,0x00,0x06,0x24,0x10,0x24,0x23,0x8e,0x00,0x00,0x00,0x00, +0x42,0x18,0x03,0x00,0x01,0x00,0x63,0x30,0x71,0x00,0x74,0x10,0x02,0x80,0x03,0x3c, +0x38,0x15,0x63,0x24,0xe0,0x23,0x62,0x8c,0x00,0x00,0x00,0x00,0x42,0x84,0x02,0x00, +0x1f,0x00,0x10,0x32,0xc0,0x48,0x10,0x00,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00, +0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x55,0x00,0x90,0x11,0x45,0x8c, +0x00,0x00,0x00,0x00,0x02,0x1b,0x05,0x00,0x01,0x00,0x63,0x30,0xdd,0xff,0x60,0x10, +0x21,0x30,0xa0,0x02,0x25,0xb0,0x02,0x3c,0x21,0x40,0x02,0x02,0xdc,0x23,0xa7,0x8e, +0x10,0x24,0xa2,0x8e,0x60,0x01,0x03,0x91,0x82,0x25,0x07,0x00,0x01,0x00,0x42,0x30, +0xff,0x00,0x6b,0x30,0x9a,0x00,0x54,0x10,0x3f,0x00,0x8a,0x30,0x02,0x80,0x04,0x3c, +0xd8,0x8e,0x84,0x24,0x00,0x00,0x86,0x8c,0x04,0x00,0x04,0x24,0xdc,0x23,0xc3,0x8c, +0x00,0x00,0x00,0x00,0x82,0x15,0x03,0x00,0x3f,0x00,0x42,0x30,0x05,0x00,0x42,0x28, +0x0a,0x00,0x60,0x04,0x0a,0x50,0x82,0x00,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00, +0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x7c,0x11,0x43,0x8c, +0x04,0x00,0x0a,0x24,0x01,0x00,0x63,0x24,0x7c,0x11,0x43,0xac,0xe0,0x23,0xc2,0x8c, +0x00,0x00,0x00,0x00,0x02,0x13,0x02,0x00,0x1f,0x00,0x42,0x30,0x08,0x00,0x42,0x28, +0xb8,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xdc,0x23,0xc2,0x8c,0x00,0x00,0x00,0x00, +0x3f,0x00,0x42,0x30,0xb3,0xff,0x4b,0x14,0x00,0x00,0x00,0x00,0x9f,0x00,0x40,0x11, +0x21,0x10,0x30,0x01,0xa8,0x00,0x54,0x11,0x80,0x10,0x02,0x00,0x02,0x00,0x02,0x24, +0xb0,0x00,0x42,0x11,0x21,0x10,0x30,0x01,0x03,0x00,0x02,0x24,0xb8,0x00,0x42,0x11, +0x21,0x10,0x30,0x01,0xc0,0x00,0x44,0x11,0x21,0x10,0x30,0x01,0x21,0x10,0x30,0x01, +0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x28,0x46,0x00, +0x80,0x11,0xa3,0x8c,0x21,0x10,0x66,0x01,0x94,0x04,0x44,0x90,0x02,0x19,0x03,0x00, +0x2b,0x18,0x64,0x00,0xc8,0x00,0x60,0x14,0x00,0x00,0x00,0x00,0x74,0x11,0xa3,0x8c, +0x80,0x10,0x0b,0x00,0x21,0x10,0x4b,0x00,0x01,0x00,0x63,0x24,0x21,0x10,0x46,0x00, +0x74,0x11,0xa3,0xac,0x21,0x10,0x4a,0x00,0x38,0x03,0x44,0x90,0x5c,0x11,0xa3,0x8c, +0x00,0x00,0x00,0x00,0x21,0x18,0x64,0x00,0x5c,0x11,0xa3,0xac,0x84,0x25,0xc2,0x8e, +0x10,0x00,0x52,0x26,0x2b,0x10,0x42,0x02,0x8f,0xff,0x40,0x14,0x21,0x88,0xc0,0x02, +0x54,0x00,0xbf,0x8f,0x50,0x00,0xbe,0x8f,0x4c,0x00,0xb7,0x8f,0x48,0x00,0xb6,0x8f, +0x44,0x00,0xb5,0x8f,0x40,0x00,0xb4,0x8f,0x3c,0x00,0xb3,0x8f,0x38,0x00,0xb2,0x8f, +0x34,0x00,0xb1,0x8f,0x30,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x58,0x00,0xbd,0x27, +0xe0,0x23,0x22,0x8e,0x00,0x00,0x00,0x00,0x42,0x14,0x02,0x00,0x10,0x00,0x43,0x30, +0x90,0xff,0x60,0x10,0x0f,0x00,0x50,0x30,0x1f,0x49,0x00,0x0c,0x48,0x00,0x04,0x24, +0x74,0xff,0x40,0x10,0x21,0x98,0x40,0x00,0x14,0x00,0x02,0x24,0x28,0x00,0x04,0x24, +0x14,0x00,0x62,0xae,0x0c,0x00,0x64,0xae,0x14,0x00,0xa3,0x8f,0xe0,0xff,0x04,0x24, +0x08,0x00,0x07,0x24,0x80,0x00,0x63,0x34,0x14,0x00,0xa3,0xaf,0xe0,0x23,0x26,0x8e, +0x24,0x18,0x64,0x00,0xff,0xe0,0x04,0x24,0x42,0x14,0x06,0x00,0x1f,0x00,0x42,0x30, +0x25,0x18,0x62,0x00,0x14,0x00,0xa3,0xaf,0xdc,0x23,0x25,0x8e,0x24,0x18,0x64,0x00, +0x02,0x23,0x06,0x00,0x82,0x13,0x05,0x00,0x00,0x1f,0x42,0x30,0x25,0x18,0x62,0x00, +0xff,0xff,0x02,0x3c,0xff,0x7f,0x42,0x34,0xc2,0x2f,0x05,0x00,0x24,0x18,0x62,0x00, +0xc0,0x2b,0x05,0x00,0x0f,0x00,0x02,0x3c,0x25,0x18,0x65,0x00,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x00,0x35,0x06,0x00,0xf0,0xff,0x02,0x3c,0x25,0x18,0x66,0x00, +0xff,0xff,0x42,0x34,0x0f,0x00,0x84,0x30,0x24,0x18,0x62,0x00,0x00,0x24,0x04,0x00, +0x25,0x18,0x64,0x00,0x02,0x80,0x04,0x3c,0x10,0x00,0xa5,0x27,0x74,0x39,0x84,0x24, +0x02,0x00,0x06,0x24,0x04,0x00,0x02,0x24,0x11,0x00,0xa7,0xa3,0x14,0x00,0xa3,0xaf, +0x6c,0x45,0x00,0x0c,0x10,0x00,0xa2,0xa3,0x08,0x00,0x64,0x96,0x10,0x00,0xa5,0x27, +0x02,0x00,0x06,0x24,0x25,0x20,0x97,0x00,0x6c,0x45,0x00,0x0c,0x20,0x00,0x84,0x24, +0x42,0x09,0x00,0x0c,0x21,0x20,0x60,0x02,0x7e,0x20,0x00,0x08,0xc0,0x48,0x10,0x00, +0x02,0x12,0x05,0x00,0x01,0x00,0x42,0x30,0x14,0x00,0x54,0x10,0xc2,0x10,0x05,0x00, +0x01,0x00,0x42,0x30,0x76,0x00,0x54,0x10,0x00,0x00,0x00,0x00,0x1c,0x24,0xa2,0x96, +0x60,0x01,0x03,0x91,0xc2,0x27,0x07,0x00,0x21,0x10,0x42,0x01,0x38,0x24,0xa3,0xa2, +0x13,0x00,0x80,0x10,0x1c,0x24,0xa2,0xa6,0x59,0xff,0x94,0x14,0x02,0x80,0x04,0x3c, +0x18,0x24,0xa2,0x96,0x22,0x24,0xa3,0x96,0x01,0x00,0x42,0x24,0x01,0x00,0x63,0x24, +0x18,0x24,0xa2,0xa6,0x94,0x20,0x00,0x08,0x22,0x24,0xa3,0xa6,0x5d,0x00,0xe0,0x04, +0x00,0x00,0x00,0x00,0x1a,0x24,0xa3,0x96,0x26,0x24,0xa2,0x96,0x01,0x00,0x63,0x24, +0x01,0x00,0x42,0x24,0x26,0x24,0xa2,0xa6,0x93,0x20,0x00,0x08,0x1a,0x24,0xc3,0xa4, +0x1a,0x24,0xa3,0x96,0x28,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24, +0x28,0x24,0xa2,0xa6,0x93,0x20,0x00,0x08,0x1a,0x24,0xc3,0xa4,0x80,0x10,0x02,0x00, +0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x60,0x11,0x43,0x8c, +0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x5c,0xff,0x54,0x15,0x60,0x11,0x43,0xac, +0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x46,0x00,0x64,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24, +0x64,0x11,0x43,0xac,0x02,0x00,0x02,0x24,0x54,0xff,0x42,0x15,0x03,0x00,0x02,0x24, +0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x46,0x00,0x68,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24, +0x68,0x11,0x43,0xac,0x03,0x00,0x02,0x24,0x4a,0xff,0x42,0x15,0x21,0x10,0x30,0x01, +0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00, +0x6c,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x43,0xff,0x44,0x15, +0x6c,0x11,0x43,0xac,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x70,0x11,0x43,0x8c,0x00,0x00,0x00,0x00, +0x01,0x00,0x63,0x24,0x70,0x11,0x43,0xac,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00, +0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x28,0x46,0x00,0x80,0x11,0xa3,0x8c, +0x21,0x10,0x66,0x01,0x94,0x04,0x44,0x90,0x02,0x19,0x03,0x00,0x2b,0x18,0x64,0x00, +0x3a,0xff,0x60,0x10,0x00,0x00,0x00,0x00,0x78,0x11,0xa3,0x8c,0x80,0x10,0x0b,0x00, +0x02,0x80,0x04,0x3c,0x38,0x15,0x84,0x24,0x21,0x10,0x4b,0x00,0x01,0x00,0x63,0x24, +0x21,0x10,0x44,0x00,0x78,0x11,0xa3,0xac,0x21,0x10,0x4a,0x00,0xc9,0x03,0x44,0x90, +0x5c,0x11,0xa3,0x8c,0x00,0x00,0x00,0x00,0x21,0x18,0x64,0x00,0xd7,0x20,0x00,0x08, +0x5c,0x11,0xa3,0xac,0x18,0x24,0xa3,0x96,0x20,0x24,0xa2,0x96,0x01,0x00,0x63,0x24, +0x01,0x00,0x42,0x24,0x20,0x24,0xa2,0xa6,0x93,0x20,0x00,0x08,0x18,0x24,0xc3,0xa4, +0x08,0x00,0xe0,0x04,0x00,0x00,0x00,0x00,0x1a,0x24,0xa3,0x96,0x24,0x24,0xa2,0x96, +0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x24,0x24,0xa2,0xa6,0x93,0x20,0x00,0x08, +0x1a,0x24,0xc3,0xa4,0x18,0x24,0xa3,0x96,0x1e,0x24,0xa2,0x96,0x01,0x00,0x63,0x24, +0x01,0x00,0x42,0x24,0x1e,0x24,0xa2,0xa6,0x93,0x20,0x00,0x08,0x18,0x24,0xc3,0xa4, +0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x02,0x80,0x10,0x3c,0x38,0x15,0x02,0x8e, +0x00,0x00,0x00,0x00,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x11,0x00,0x40,0x14, +0x14,0x00,0xbf,0xaf,0x25,0xb0,0x05,0x3c,0x4c,0x00,0xa2,0x34,0x00,0x00,0x43,0x90, +0x38,0x15,0x07,0x26,0xf9,0x0a,0xe2,0x90,0x03,0x00,0x66,0x30,0x09,0x00,0x46,0x10, +0x58,0x00,0xa2,0x34,0x00,0x00,0x44,0x8c,0x29,0xb0,0x03,0x3c,0x5c,0x00,0xa2,0x34, +0x00,0x00,0x64,0xac,0x00,0x00,0x44,0x8c,0x04,0x00,0x63,0x34,0xf9,0x0a,0xe6,0xa0, +0x00,0x00,0x64,0xac,0x25,0xb0,0x02,0x3c,0x2d,0x0a,0x46,0x34,0xa2,0x0d,0x43,0x34, +0xa4,0x0d,0x44,0x34,0xa6,0x0d,0x45,0x34,0xa8,0x0d,0x42,0x34,0x00,0x00,0x67,0x94, +0x00,0x00,0x88,0x94,0x00,0x00,0xa9,0x94,0x00,0x00,0x44,0x94,0x00,0x00,0xc3,0x90, +0x38,0x15,0x02,0x26,0xe2,0x02,0x44,0xa4,0x40,0x00,0x63,0x34,0xff,0x00,0x63,0x30, +0x00,0x00,0xc3,0xa0,0xdc,0x02,0x47,0xa4,0xde,0x02,0x48,0xa4,0xe0,0x02,0x49,0xa4, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x07,0x3c,0x5b,0x0a,0xe2,0x34, +0x00,0x00,0x44,0x90,0x38,0x15,0x06,0x26,0x5c,0x0a,0xe2,0x34,0x00,0x00,0x45,0x90, +0xdc,0x02,0xc3,0x94,0xde,0x02,0xc2,0x94,0xe0,0x02,0xc9,0x94,0xe2,0x02,0xc8,0x94, +0xff,0x00,0x84,0x30,0x21,0x18,0x62,0x00,0x00,0x22,0x04,0x00,0xff,0x00,0xa5,0x30, +0x21,0x20,0x85,0x00,0x21,0x18,0x69,0x00,0xff,0xff,0x82,0x30,0x21,0x18,0x68,0x00, +0x21,0x18,0x62,0x00,0x64,0x0c,0xe7,0x34,0xff,0xff,0x42,0x30,0xe4,0x02,0xc3,0xac, +0x00,0x00,0xe2,0xa4,0xe8,0x02,0xc4,0xa4,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x02,0x26,0xfc,0x23,0x43,0x8c,0x25,0xb0,0x02,0x3c,0x68,0x0c,0x42,0x34, +0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x38,0x15,0x02,0x26,0x00,0x24,0x43,0x8c,0x25,0xb0,0x02,0x3c, +0x69,0x0c,0x42,0x34,0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30,0x00,0x00,0x43,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x38,0x15,0x02,0x26,0x04,0x24,0x43,0x8c, +0x25,0xb0,0x02,0x3c,0x6a,0x0c,0x42,0x34,0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30, +0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x38,0x15,0x02,0x26, +0x08,0x24,0x44,0x94,0x25,0xb0,0x03,0x3c,0x6c,0x0c,0x63,0x34,0x00,0x00,0x64,0xa4, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x38,0x15,0x02,0x26,0x0c,0x24,0x44,0x94, +0x25,0xb0,0x03,0x3c,0x6e,0x0c,0x63,0x34,0x00,0x00,0x64,0xa4,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x38,0x15,0x02,0x26,0x06,0x00,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x91,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x03,0x26,0x06,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x06,0x00,0x42,0x28, +0x06,0x00,0x40,0x10,0x02,0x80,0x04,0x3c,0xe8,0x02,0x62,0x94,0x00,0x00,0x00,0x00, +0x1f,0x00,0x42,0x28,0x16,0x00,0x40,0x14,0xf7,0xff,0x03,0x24,0x38,0x15,0x82,0x8c, +0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x34,0x38,0x15,0x82,0xac,0x38,0x15,0x02,0x8e, +0x38,0x15,0x04,0x26,0x06,0x00,0x80,0xa4,0x11,0x00,0x45,0x30,0x01,0x00,0x02,0x24, +0x16,0x00,0xa2,0x10,0xe8,0x02,0x80,0xa4,0x60,0x53,0x00,0x0c,0x00,0x00,0x00,0x00, +0x38,0x15,0x02,0x26,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x0c,0x24,0x40,0xac, +0x08,0x24,0x40,0xac,0x18,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x38,0x15,0x82,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00,0x38,0x15,0x82,0xac, +0x38,0x15,0x02,0x8e,0x38,0x15,0x04,0x26,0x06,0x00,0x80,0xa4,0x11,0x00,0x45,0x30, +0x01,0x00,0x02,0x24,0xec,0xff,0xa2,0x14,0xe8,0x02,0x80,0xa4,0xe8,0x02,0x82,0x8c, +0x00,0x00,0x00,0x00,0x02,0x17,0x02,0x00,0x01,0x00,0x42,0x30,0xe6,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90, +0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,0x4e,0x00,0x65,0x10,0x38,0x15,0x05,0x26, +0xea,0x02,0xa2,0x90,0x00,0x00,0x00,0x00,0x07,0x00,0x40,0x14,0x38,0x15,0x06,0x26, +0x38,0x15,0x02,0x8e,0x01,0x00,0x03,0x24,0x42,0x11,0x02,0x00,0x01,0x00,0x42,0x30, +0x4b,0x00,0x43,0x10,0x3e,0x00,0x02,0x24,0xea,0x02,0xc3,0x90,0xff,0x00,0x02,0x24, +0xd1,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34, +0x00,0x00,0x45,0x90,0xcc,0x02,0xc4,0x94,0xe4,0x02,0xc7,0x8c,0x32,0x00,0x02,0x24, +0x20,0x00,0x03,0x24,0x7f,0x00,0xa5,0x30,0x2b,0x20,0xe4,0x00,0xd4,0x02,0xc2,0xa0, +0xd5,0x02,0xc3,0xa0,0x0c,0x00,0x80,0x14,0xff,0xff,0xa2,0x24,0xce,0x02,0xc2,0x94, +0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x00,0x09,0x00,0x40,0x14,0x38,0x15,0x04,0x26, +0xd0,0x02,0xc2,0x94,0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x00,0x02,0x00,0x40,0x10, +0x02,0x00,0xa2,0x24,0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30,0x38,0x15,0x04,0x26, +0xd4,0x02,0x83,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x65,0x00,0xca,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x21,0x28,0x60,0x00,0x38,0x15,0x03,0x26,0xe4,0x02,0x62,0x8c, +0x00,0x00,0x00,0x00,0x11,0x27,0x42,0x2c,0xbf,0x00,0x40,0x14,0x3a,0x00,0xa2,0x2c, +0x32,0x00,0x05,0x24,0x44,0x00,0x03,0x24,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34, +0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34,0x00,0x00,0x45,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x58,0x0c,0x42,0x34, +0x00,0x00,0x45,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x66,0x22,0x00,0x08, +0x00,0x00,0x00,0x00,0xea,0x02,0x82,0x90,0x00,0x00,0x00,0x00,0xb0,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x24,0x88,0x22,0x00,0x08,0xea,0x02,0x82,0xa0, +0x02,0x00,0xa4,0x90,0xd4,0x02,0xa2,0xa0,0x1c,0x00,0x03,0x24,0x06,0x00,0x02,0x24, +0xa2,0x00,0x82,0x10,0xd5,0x02,0xa3,0xa0,0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34, +0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,0x7e,0xff,0x60,0x10, +0x38,0x15,0x04,0x26,0xfc,0x23,0x83,0x8c,0xff,0xff,0x02,0x34,0x7a,0xff,0x62,0x10, +0x00,0x00,0x00,0x00,0xe4,0x02,0x83,0x8c,0x00,0x00,0x00,0x00,0xe9,0x03,0x62,0x2c, +0xa7,0x00,0x40,0x14,0x90,0x01,0x62,0x2c,0xd6,0x02,0x83,0x90,0x00,0x00,0x00,0x00, +0x00,0x16,0x03,0x00,0x03,0x16,0x02,0x00,0xfe,0xff,0x42,0x24,0xfc,0xff,0x42,0x28, +0x02,0x00,0x40,0x10,0xfe,0xff,0x62,0x24,0xfc,0xff,0x02,0x24,0xd6,0x02,0x82,0xa0, +0x38,0x15,0x05,0x26,0x90,0x11,0xa2,0x8c,0x06,0x00,0x03,0x24,0x07,0x00,0x42,0x30, +0xa6,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0xfc,0x23,0xa2,0x8c,0x00,0x24,0xa3,0x8c, +0x0c,0x24,0xa4,0x8c,0x02,0x11,0x02,0x00,0x02,0x19,0x03,0x00,0x7f,0x00,0x4a,0x30, +0x7f,0x00,0x6b,0x30,0x2b,0x38,0x6a,0x01,0x21,0x30,0x40,0x01,0x05,0x00,0x80,0x14, +0x0a,0x30,0x67,0x01,0x80,0x11,0xa2,0x8c,0x00,0x00,0x00,0x00,0x02,0x11,0x02,0x00, +0x7f,0x00,0x46,0x30,0x25,0xb0,0x02,0x3c,0x04,0x0d,0x42,0x34,0x00,0x00,0x43,0x90, +0x01,0x00,0x02,0x24,0xff,0x00,0x63,0x30,0x8d,0x00,0x62,0x10,0x04,0x00,0xc2,0x24, +0x02,0x00,0xe0,0x14,0x23,0x10,0x4b,0x01,0x23,0x10,0x6a,0x01,0xff,0x00,0x42,0x30, +0x15,0x00,0x42,0x2c,0x05,0x00,0x40,0x14,0x25,0xb0,0x02,0x3c,0x38,0x15,0x03,0x26, +0x0a,0x00,0x02,0x24,0xd6,0x02,0x62,0xa0,0x25,0xb0,0x02,0x3c,0x6c,0x03,0x42,0x34, +0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x03,0x00,0x03,0x16,0x02,0x00, +0x02,0x00,0x40,0x14,0x0a,0x00,0x42,0x24,0x0a,0x00,0xc2,0x24,0x38,0x15,0x04,0x26, +0xd6,0x02,0x83,0x90,0x00,0x36,0x02,0x00,0x03,0x36,0x06,0x00,0xd2,0x02,0x85,0x90, +0x23,0x18,0xc3,0x00,0x00,0x36,0x03,0x00,0x03,0x36,0x06,0x00,0xff,0x00,0xa2,0x30, +0x2a,0x10,0x46,0x00,0x5c,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x00,0x36,0x05,0x00, +0x03,0x36,0x06,0x00,0x38,0x15,0x03,0x26,0xe4,0x02,0x62,0x8c,0x00,0x00,0x00,0x00, +0x11,0x27,0x42,0x2c,0x50,0x00,0x40,0x14,0x3a,0x00,0xc2,0x28,0x32,0x00,0xc2,0x28, +0x4d,0x00,0x40,0x10,0x3a,0x00,0xc2,0x28,0x32,0x00,0x06,0x24,0x44,0x00,0x03,0x24, +0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,0x00,0x00,0x43,0xa0,0x38,0x15,0x03,0x26, +0x08,0x24,0x62,0x8c,0x00,0x00,0x00,0x00,0x05,0x00,0x40,0x14,0x25,0xb0,0x02,0x3c, +0x0c,0x24,0x62,0x8c,0x00,0x00,0x00,0x00,0x15,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c, +0x50,0x0c,0x42,0x34,0xff,0x00,0xc4,0x30,0x00,0x00,0x44,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x58,0x0c,0x42,0x34,0x00,0x00,0x44,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x66,0x22,0x00,0x08,0x00,0x00,0x00,0x00, +0xd3,0x02,0x63,0x90,0x50,0x0c,0x42,0x34,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x38,0x15,0x02,0x26,0xd3,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x58,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x66,0x22,0x00,0x08,0x00,0x00,0x00,0x00,0x43,0xff,0x40,0x10,0x48,0x00,0x03,0x24, +0xbe,0x22,0x00,0x08,0x44,0x00,0x03,0x24,0xd5,0x02,0x83,0x90,0x00,0x00,0x00,0x00, +0x2b,0x10,0xa3,0x00,0xb6,0x22,0x00,0x08,0x0b,0x28,0x62,0x00,0x25,0xb0,0x02,0x3c, +0x00,0x08,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x27,0x18,0x03,0x00, +0x01,0x00,0x63,0x30,0x59,0xff,0x60,0x10,0x25,0xb0,0x02,0x3c,0x36,0x00,0x02,0x24, +0xe2,0x22,0x00,0x08,0xd2,0x02,0xa2,0xa0,0xb5,0xff,0x40,0x10,0x48,0x00,0x03,0x24, +0x44,0x23,0x00,0x08,0x44,0x00,0x03,0x24,0xd3,0x02,0x83,0x80,0x00,0x00,0x00,0x00, +0xff,0x00,0x62,0x30,0x2a,0x10,0xc2,0x00,0x39,0x23,0x00,0x08,0x0b,0x30,0x62,0x00, +0x64,0xff,0x40,0x10,0x38,0x15,0x05,0x26,0xd6,0x02,0x83,0x90,0x00,0x00,0x00,0x00, +0x00,0x16,0x03,0x00,0x03,0x16,0x02,0x00,0x02,0x00,0x42,0x24,0x0d,0x00,0x42,0x28, +0x09,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0xfb,0x22,0x00,0x08,0x0c,0x00,0x02,0x24, +0x00,0x36,0x02,0x00,0x18,0x23,0x00,0x08,0x03,0x36,0x06,0x00,0x80,0x11,0xa2,0x8c, +0x0f,0x23,0x00,0x08,0x2b,0x38,0x6a,0x01,0xfb,0x22,0x00,0x08,0x02,0x00,0x62,0x24, +0xc0,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf,0x25,0xb0,0x14,0x3c,0x24,0x00,0xb3,0xaf, +0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf, +0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x20,0x00,0xb2,0xaf, +0xd8,0x00,0x86,0x36,0x00,0x00,0xc3,0x90,0x02,0x80,0x02,0x3c,0x38,0x15,0x51,0x24, +0x2a,0xb0,0x10,0x3c,0xa0,0xff,0x02,0x24,0x25,0x18,0x62,0x00,0x34,0x00,0x05,0x36, +0xfe,0xff,0x02,0x24,0xbc,0x02,0x32,0x92,0x40,0x00,0x04,0x24,0x00,0x00,0xc3,0xa0, +0x00,0x00,0xa2,0xa0,0x1f,0x49,0x00,0x0c,0x00,0x96,0x12,0x00,0x21,0x98,0x40,0x00, +0x8d,0x00,0x60,0x12,0x00,0x40,0x02,0x3c,0x08,0x00,0x63,0x8e,0xb0,0x03,0x82,0x36, +0x25,0xb0,0x1e,0x3c,0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,0xfb,0x44,0x00,0x0c, +0x21,0xb8,0x20,0x02,0x42,0x00,0xd5,0x37,0x03,0x0c,0xd1,0x37,0x17,0x0e,0xd6,0x37, +0x04,0x00,0x14,0x24,0x2a,0xb0,0x03,0x3c,0x06,0x00,0x63,0x34,0x00,0x00,0x62,0x94, +0x00,0x00,0x00,0x00,0x00,0xff,0x42,0x30,0x0a,0x00,0x40,0x18,0x00,0x00,0x00,0x00, +0x02,0x80,0x04,0x3c,0x98,0x91,0x84,0x24,0x00,0x00,0x83,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x00,0xff,0x42,0x30,0xfc,0xff,0x40,0x1c, +0x00,0x00,0x00,0x00,0x08,0x00,0x65,0x8e,0x20,0x10,0x06,0x3c,0x01,0x00,0x04,0x24, +0x00,0xfe,0xc6,0x34,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa4,0xaf, +0x4d,0x01,0x00,0x0c,0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,0x9c,0x91,0x42,0x24, +0x00,0x00,0x45,0x8c,0x01,0x00,0x03,0x24,0x21,0x20,0x00,0x00,0x00,0x00,0xa3,0xa0, +0xff,0xff,0x03,0x24,0x00,0x00,0xa3,0xa2,0x00,0x00,0x22,0x92,0x00,0x00,0x00,0x00, +0xff,0x00,0x42,0x30,0x40,0x00,0x42,0x34,0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24, +0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24, +0x02,0x00,0x02,0x24,0x02,0x80,0x04,0x3c,0x00,0x00,0xa2,0xa0,0x38,0x15,0x83,0x24, +0xc1,0x02,0x62,0x90,0x00,0x00,0xc4,0x92,0x21,0x28,0x00,0x00,0x00,0x00,0xc2,0xa2, +0xff,0x00,0x90,0x30,0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30,0x06,0x00,0xa3,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0xa2,0x24,0xef,0xff,0x02,0x24,0x64,0x00,0x04,0x24, +0x00,0x00,0xa2,0xa2,0x21,0x1a,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x92, +0x21,0x20,0x00,0x00,0xbf,0x00,0x42,0x30,0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24, +0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24, +0x21,0x1a,0x00,0x0c,0x84,0x03,0x04,0x24,0xf4,0x08,0xc2,0x37,0x00,0x00,0x43,0x8c, +0x00,0x80,0x04,0x3c,0xdf,0x07,0x84,0x34,0x00,0x00,0xd0,0xa2,0x21,0x10,0x00,0x00, +0x24,0x28,0x64,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x00,0x00,0xa0,0xa2,0x00,0x00,0x22,0x92, +0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x40,0x00,0x42,0x34,0x00,0x00,0x22,0xa2, +0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x82,0x24,0xbe,0x02,0xe2,0x92,0x1f,0x00,0xa3,0x30,0x2b,0x10,0x62,0x00, +0x0a,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0xbf,0x02,0xe2,0x92,0x00,0x00,0x00,0x00, +0x2b,0x10,0x43,0x00,0x05,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x01,0x00,0x02,0x3c, +0x25,0x10,0x62,0x00,0x21,0x90,0x42,0x02,0x02,0x80,0x02,0x3c,0xb6,0x3d,0x43,0x90, +0x22,0x00,0x02,0x24,0x1c,0x00,0x62,0x10,0x92,0x00,0x02,0x24,0x1b,0x00,0x62,0x10, +0x02,0x80,0x03,0x3c,0xff,0xff,0x94,0x26,0x21,0x1a,0x00,0x0c,0xf4,0x01,0x04,0x24, +0x89,0xff,0x81,0x06,0x2a,0xb0,0x03,0x3c,0x04,0x00,0x60,0x12,0x25,0xb0,0x02,0x3c, +0x40,0x49,0x00,0x0c,0x21,0x20,0x60,0x02,0x25,0xb0,0x02,0x3c,0xd8,0x02,0x42,0x34, +0x00,0x00,0x52,0xac,0x21,0x10,0x40,0x02,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f, +0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x02,0x80,0x03,0x3c,0x38,0x15,0x63,0x24, +0xbe,0x02,0x62,0x90,0xc0,0x07,0xa3,0x30,0x82,0x19,0x03,0x00,0x2b,0x10,0x62,0x00, +0xe0,0xff,0x40,0x10,0x02,0x80,0x04,0x3c,0x38,0x15,0x84,0x24,0xbf,0x02,0x82,0x90, +0x00,0x00,0x00,0x00,0x2b,0x10,0x43,0x00,0xda,0xff,0x40,0x10,0x00,0x12,0x03,0x00, +0x10,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x49,0x24,0x00,0x08,0x21,0x90,0x42,0x02, +0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36, +0xf0,0xf8,0x06,0x34,0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf, +0x6a,0x44,0x00,0x0c,0x14,0x00,0xb1,0xaf,0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24, +0x02,0x80,0x12,0x3c,0xff,0xff,0x05,0x36,0x56,0x30,0x06,0x24,0x6a,0x44,0x00,0x0c, +0x1a,0x00,0x04,0x24,0x38,0x15,0x51,0x26,0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24, +0x08,0x03,0x23,0x92,0x04,0x00,0x02,0x24,0x20,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c, +0x18,0x03,0x25,0x8e,0x25,0xb0,0x10,0x3c,0xed,0x53,0x00,0x0c,0x00,0x0e,0x04,0x36, +0x18,0x03,0x25,0x8e,0xed,0x53,0x00,0x0c,0x04,0x0e,0x04,0x36,0x1c,0x03,0x25,0x8e, +0xed,0x53,0x00,0x0c,0x08,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,0xed,0x53,0x00,0x0c, +0x10,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,0xed,0x53,0x00,0x0c,0x14,0x0e,0x04,0x36, +0x18,0x03,0x25,0x8e,0xed,0x53,0x00,0x0c,0x18,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e, +0xed,0x53,0x00,0x0c,0x1c,0x0e,0x04,0x36,0x38,0x15,0x43,0x26,0x1c,0x00,0xbf,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x04,0x00,0x02,0x24, +0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x62,0xa0,0x00,0x0e,0x42,0x34, +0x00,0x00,0x43,0x8c,0x18,0x03,0x25,0x8e,0x00,0x00,0x00,0x00,0xde,0xff,0x65,0x14, +0x25,0xb0,0x10,0x3c,0xa3,0x24,0x00,0x08,0x38,0x15,0x43,0x26,0xe0,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,0xf0,0xf8,0x06,0x34, +0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x6a,0x44,0x00,0x0c, +0x14,0x00,0xb1,0xaf,0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24,0xff,0xff,0x05,0x36, +0x56,0x30,0x06,0x24,0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0x02,0x80,0x10,0x3c, +0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24,0x38,0x15,0x02,0x26,0x08,0x03,0x46,0x90, +0x25,0xb0,0x11,0x3c,0x10,0x10,0x12,0x3c,0x01,0x00,0x03,0x24,0x00,0x0e,0x24,0x36, +0x1e,0x00,0xc3,0x10,0x10,0x10,0x45,0x36,0xed,0x53,0x00,0x0c,0x00,0x00,0x00,0x00, +0x04,0x0e,0x24,0x36,0xed,0x53,0x00,0x0c,0x10,0x10,0x45,0x36,0x08,0x0e,0x24,0x36, +0xed,0x53,0x00,0x0c,0x10,0x10,0x05,0x24,0x10,0x0e,0x24,0x36,0xed,0x53,0x00,0x0c, +0x10,0x10,0x45,0x36,0x14,0x0e,0x24,0x36,0xed,0x53,0x00,0x0c,0x10,0x10,0x45,0x36, +0x18,0x0e,0x24,0x36,0xed,0x53,0x00,0x0c,0x10,0x10,0x45,0x36,0x1c,0x0e,0x24,0x36, +0xed,0x53,0x00,0x0c,0x10,0x10,0x45,0x36,0x38,0x15,0x03,0x26,0x1c,0x00,0xbf,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24, +0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x62,0xa0,0x00,0x00,0x86,0x8c, +0x00,0x00,0x00,0x00,0xe0,0xff,0xc5,0x14,0x38,0x15,0x03,0x26,0x1c,0x00,0xbf,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24, +0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x62,0xa0,0xe0,0xff,0xbd,0x27, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x11,0x3c,0x01,0x00,0x10,0x3c, +0xff,0xff,0x25,0x36,0xf4,0x98,0x06,0x36,0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf, +0x6a,0x44,0x00,0x0c,0x18,0x00,0xb2,0xaf,0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24, +0x56,0x30,0x06,0x36,0xff,0xff,0x25,0x36,0x1a,0x00,0x04,0x24,0x6a,0x44,0x00,0x0c, +0x02,0x80,0x11,0x3c,0x38,0x15,0x30,0x26,0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24, +0x08,0x03,0x02,0x92,0x25,0xb0,0x12,0x3c,0x08,0x00,0x40,0x14,0x08,0x0e,0x44,0x36, +0x25,0xb0,0x02,0x3c,0x00,0x0e,0x42,0x34,0x00,0x00,0x45,0x8c,0xf0,0x02,0x03,0x8e, +0x00,0x00,0x00,0x00,0x17,0x00,0xa3,0x10,0x38,0x15,0x22,0x26,0xec,0x02,0x05,0x8e, +0xed,0x53,0x00,0x0c,0x00,0x00,0x00,0x00,0xf0,0x02,0x05,0x8e,0xed,0x53,0x00,0x0c, +0x00,0x0e,0x44,0x36,0xf4,0x02,0x05,0x8e,0xed,0x53,0x00,0x0c,0x04,0x0e,0x44,0x36, +0xf8,0x02,0x05,0x8e,0xed,0x53,0x00,0x0c,0x10,0x0e,0x44,0x36,0xfc,0x02,0x05,0x8e, +0xed,0x53,0x00,0x0c,0x14,0x0e,0x44,0x36,0x00,0x03,0x05,0x8e,0xed,0x53,0x00,0x0c, +0x18,0x0e,0x44,0x36,0x04,0x03,0x05,0x8e,0xed,0x53,0x00,0x0c,0x1c,0x0e,0x44,0x36, +0x38,0x15,0x22,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x40,0xa0, +0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x11,0x3c, +0x01,0x00,0x10,0x3c,0xff,0xff,0x25,0x36,0xf4,0x98,0x06,0x36,0x15,0x00,0x04,0x24, +0x1c,0x00,0xbf,0xaf,0x6a,0x44,0x00,0x0c,0x18,0x00,0xb2,0xaf,0x21,0x1a,0x00,0x0c, +0x64,0x00,0x04,0x24,0x02,0x80,0x12,0x3c,0xff,0xff,0x25,0x36,0x56,0x30,0x06,0x36, +0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0x38,0x15,0x51,0x26,0x21,0x1a,0x00,0x0c, +0x64,0x00,0x04,0x24,0x08,0x03,0x23,0x92,0x03,0x00,0x02,0x24,0x2c,0x00,0x62,0x10, +0x25,0xb0,0x02,0x3c,0xf0,0x02,0x25,0x8e,0x25,0xb0,0x10,0x3c,0xed,0x53,0x00,0x0c, +0x00,0x0e,0x04,0x36,0xf4,0x02,0x25,0x8e,0xed,0x53,0x00,0x0c,0x04,0x0e,0x04,0x36, +0xf8,0x02,0x25,0x8e,0xed,0x53,0x00,0x0c,0x10,0x0e,0x04,0x36,0xfc,0x02,0x25,0x8e, +0xed,0x53,0x00,0x0c,0x14,0x0e,0x04,0x36,0x00,0x03,0x25,0x8e,0xed,0x53,0x00,0x0c, +0x18,0x0e,0x04,0x36,0x04,0x03,0x25,0x8e,0xed,0x53,0x00,0x0c,0x1c,0x0e,0x04,0x36, +0x0c,0x03,0x24,0x8e,0xec,0x02,0x22,0x8e,0x00,0x00,0x00,0x00,0x21,0x28,0x44,0x00, +0x00,0xff,0xa3,0x30,0xff,0xff,0x02,0x3c,0xff,0x00,0x42,0x34,0x01,0x3f,0x63,0x2c, +0x24,0x10,0xa2,0x00,0x0c,0x00,0x60,0x10,0x08,0x0e,0x04,0x36,0xed,0x53,0x00,0x0c, +0x00,0x00,0x00,0x00,0x38,0x15,0x43,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x03,0x00,0x02,0x24,0x20,0x00,0xbd,0x27, +0x08,0x00,0xe0,0x03,0x08,0x03,0x62,0xa0,0x6b,0x25,0x00,0x08,0x00,0x3f,0x45,0x34, +0x00,0x0e,0x42,0x34,0x00,0x00,0x43,0x8c,0xf0,0x02,0x25,0x8e,0x00,0x00,0x00,0x00, +0xd2,0xff,0x65,0x14,0x25,0xb0,0x10,0x3c,0x6e,0x25,0x00,0x08,0x38,0x15,0x43,0x26, +0x25,0xb0,0x03,0x3c,0x02,0x80,0x06,0x3c,0x50,0x0c,0x63,0x34,0x38,0x15,0xc4,0x8c, +0x00,0x00,0x65,0x90,0x1a,0x00,0x02,0x24,0x10,0x00,0x84,0x34,0x00,0x2e,0x05,0x00, +0x00,0x00,0x62,0xa0,0x03,0x2e,0x05,0x00,0x38,0x15,0xc4,0xac,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x25,0xb0,0x07,0x3c,0xf8,0x08,0xe2,0x34,0x00,0x00,0x43,0x90, +0x00,0x00,0x00,0x00,0x00,0x1e,0x03,0x00,0x03,0x1e,0x03,0x00,0x21,0x18,0xa3,0x00, +0x92,0xff,0x64,0x24,0xbb,0xff,0x82,0x28,0x07,0x00,0x40,0x14,0xff,0x00,0xa2,0x30, +0x38,0x15,0xc3,0x24,0x06,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24, +0x06,0x00,0x62,0xa4,0xff,0x00,0xa2,0x30,0x50,0x0c,0xe3,0x34,0x00,0x00,0x62,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x38,0x15,0xc3,0x8c,0xef,0xff,0x02,0x24, +0x23,0x20,0x04,0x00,0x24,0x18,0x62,0x00,0x25,0xb0,0x02,0x3c,0x92,0x0c,0x42,0x34, +0xff,0x00,0x84,0x30,0x38,0x15,0xc3,0xac,0x00,0x00,0x44,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xd8,0xff,0xbd,0x27, +0x18,0x00,0xb2,0xaf,0x02,0x80,0x12,0x3c,0x38,0x15,0x43,0x8e,0x25,0xb0,0x02,0x3c, +0x90,0x0c,0x42,0x34,0xc2,0x18,0x03,0x00,0x01,0x00,0x63,0x30,0x00,0x00,0x43,0xa0, +0x24,0x00,0xbf,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf, +0x10,0x00,0xb0,0xaf,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x38,0x15,0x46,0x26, +0x90,0x11,0xc2,0x8c,0x06,0x00,0x03,0x24,0x07,0x00,0x42,0x30,0x7a,0x00,0x43,0x10, +0x00,0x00,0x00,0x00,0xfc,0x23,0xc4,0x8c,0x00,0x24,0xc2,0x8c,0x0c,0x24,0xc5,0x8c, +0x02,0x21,0x04,0x00,0x02,0x11,0x02,0x00,0x7f,0x00,0x84,0x30,0x7f,0x00,0x42,0x30, +0x2b,0x18,0x44,0x00,0x21,0xa0,0x80,0x00,0x6f,0x00,0xa0,0x10,0x0a,0xa0,0x43,0x00, +0x38,0x15,0x42,0x8e,0x38,0x15,0x44,0x26,0x40,0x00,0x03,0x24,0xc4,0x00,0x42,0x30, +0x08,0x03,0x93,0x90,0x73,0x00,0x43,0x10,0x01,0x00,0x02,0x24,0x25,0xb0,0x08,0x3c, +0x4c,0x00,0x03,0x35,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30, +0x34,0x00,0x40,0x10,0x38,0x15,0x45,0x26,0x38,0x15,0x42,0x92,0x00,0x00,0x00,0x00, +0x82,0x11,0x02,0x00,0x2f,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x0e,0x05,0x35, +0x00,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00,0x69,0x00,0x40,0x10,0x10,0x0e,0x07,0x35, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x08,0x0e,0x02,0x35,0x04,0x0e,0x03,0x35,0x00,0x00,0x44,0x8c,0x00,0x00,0xa5,0x8c, +0x00,0x00,0x66,0x8c,0x02,0x80,0x02,0x3c,0x38,0x15,0x49,0x24,0xec,0x02,0x24,0xad, +0xf0,0x02,0x25,0xad,0xf4,0x02,0x26,0xad,0x14,0x0e,0x04,0x35,0x02,0x80,0x02,0x3c, +0x18,0x0e,0x05,0x35,0x00,0x00,0xe7,0x8c,0x1c,0x0e,0x06,0x35,0x00,0x00,0x83,0x8c, +0xb6,0x3d,0x4a,0x90,0x00,0x00,0xa2,0x8c,0x00,0x00,0xc4,0x8c,0xf8,0x02,0x27,0xad, +0x00,0x03,0x22,0xad,0x22,0x00,0x02,0x24,0xfc,0x02,0x23,0xad,0xa0,0x00,0x42,0x11, +0x04,0x03,0x24,0xad,0x92,0x00,0x02,0x24,0x9e,0x00,0x42,0x11,0x0d,0x08,0x02,0x35, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x38,0x15,0x42,0x8e, +0x3f,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x40,0x00,0x42,0x34,0x38,0x15,0x42,0xae, +0x38,0x15,0x45,0x26,0x08,0x03,0xa2,0x8c,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00, +0x0f,0x00,0x40,0x14,0x38,0x15,0x42,0x26,0x25,0xb0,0x02,0x3c,0x84,0x01,0x42,0x34, +0x00,0x00,0x44,0x8c,0x0d,0x00,0x03,0x24,0x81,0x00,0x83,0x10,0x40,0x00,0x02,0x24, +0x4a,0x00,0x03,0x24,0x23,0x03,0xa2,0xa0,0x45,0x00,0x02,0x24,0x20,0x03,0xa3,0xa0, +0x21,0x03,0xa2,0xa0,0x46,0x00,0x03,0x24,0x22,0x03,0xa3,0xa0,0x38,0x15,0x42,0x26, +0x80,0x11,0x43,0x8c,0x25,0xb0,0x02,0x3c,0x60,0x0c,0x42,0x34,0x02,0x19,0x03,0x00, +0xff,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x44,0x8e,0x44,0x00,0x02,0x24,0xc4,0x00,0x83,0x30,0x35,0x00,0x62,0x10, +0x38,0x15,0x45,0x26,0x24,0x00,0xbf,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x80,0x11,0xc2,0x8c,0x38,0x15,0x44,0x26, +0x40,0x00,0x03,0x24,0x02,0x11,0x02,0x00,0x7f,0x00,0x54,0x30,0x38,0x15,0x42,0x8e, +0x08,0x03,0x93,0x90,0xc4,0x00,0x42,0x30,0x91,0xff,0x43,0x14,0x25,0xb0,0x08,0x3c, +0x01,0x00,0x02,0x24,0x0d,0x00,0x62,0x12,0x04,0x00,0x02,0x24,0x0b,0x00,0x62,0x12, +0x38,0x15,0x43,0x26,0xff,0xff,0x02,0x24,0xe7,0x25,0x00,0x08,0x08,0x03,0x62,0xa0, +0x00,0x00,0xe3,0x8c,0x3f,0x3f,0x02,0x3c,0x3f,0x3f,0x42,0x34,0x94,0xff,0x62,0x14, +0x00,0x00,0x00,0x00,0x21,0x26,0x00,0x08,0x38,0x15,0x45,0x26,0x0f,0x00,0x10,0x3c, +0x01,0x00,0x11,0x3c,0xff,0xff,0x05,0x36,0xf4,0x98,0x26,0x36,0x6a,0x44,0x00,0x0c, +0x15,0x00,0x04,0x24,0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24,0xff,0xff,0x05,0x36, +0x56,0x30,0x26,0x36,0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0x21,0x1a,0x00,0x0c, +0x64,0x00,0x04,0x24,0x38,0x15,0x43,0x26,0xff,0xff,0x02,0x24,0xe7,0x25,0x00,0x08, +0x08,0x03,0x62,0xa0,0xfc,0x23,0xa3,0x8c,0xff,0xff,0x02,0x34,0xc9,0xff,0x62,0x10, +0x42,0x11,0x04,0x00,0x01,0x00,0x42,0x30,0x01,0x00,0x03,0x24,0xc5,0xff,0x43,0x14, +0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00, +0x03,0x00,0x63,0x30,0xbf,0xff,0x60,0x10,0x00,0x00,0x00,0x00,0x08,0x24,0xa2,0x8c, +0x00,0x00,0x00,0x00,0x05,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x0c,0x24,0xa2,0x8c, +0x00,0x00,0x00,0x00,0x1a,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x38,0x15,0x42,0x8e, +0x00,0x00,0x00,0x00,0xc2,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x14,0x00,0x40,0x14, +0x02,0x80,0x03,0x3c,0x03,0x00,0x02,0x24,0x4b,0x00,0x62,0x12,0x04,0x00,0x62,0x2a, +0x2d,0x00,0x40,0x10,0x04,0x00,0x02,0x24,0x51,0x00,0x60,0x12,0x01,0x00,0x02,0x24, +0xa8,0xff,0x62,0x16,0x38,0x15,0x63,0x24,0x20,0x03,0x62,0x90,0x00,0x00,0x00,0x00, +0x2b,0x10,0x82,0x02,0x3c,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x23,0x03,0x62,0x90, +0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,0x2d,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0xf7,0x24,0x00,0x0c,0x00,0x00,0x00,0x00,0x45,0x26,0x00,0x08,0x00,0x00,0x00,0x00, +0x3b,0x00,0x02,0x24,0x46,0x00,0x03,0x24,0x23,0x03,0xa2,0xa0,0x20,0x03,0xa3,0xa0, +0x41,0x00,0x02,0x24,0x40,0x00,0x03,0x24,0x32,0x26,0x00,0x08,0x21,0x03,0xa2,0xa0, +0x0d,0x08,0x02,0x35,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x63,0x30, +0x08,0x00,0x62,0x2c,0x0f,0x00,0x63,0x38,0x5d,0xff,0x40,0x14,0x01,0x00,0x65,0x24, +0x00,0x16,0x05,0x00,0x00,0x24,0x05,0x00,0x00,0x1a,0x05,0x00,0x25,0x10,0x44,0x00, +0x25,0x10,0x43,0x00,0x25,0x10,0x45,0x00,0x25,0x18,0x65,0x00,0x1c,0x03,0x23,0xad, +0x18,0x26,0x00,0x08,0x18,0x03,0x22,0xad,0x11,0x00,0x62,0x12,0xff,0x00,0x02,0x24, +0x7c,0xff,0x62,0x16,0x38,0x15,0x63,0x24,0x22,0x03,0x62,0x90,0x00,0x00,0x00,0x00, +0x2b,0x10,0x82,0x02,0x24,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x20,0x03,0x62,0x90, +0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x0b,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0xb3,0x24,0x00,0x0c,0x00,0x00,0x00,0x00,0x45,0x26,0x00,0x08,0x00,0x00,0x00,0x00, +0x38,0x15,0x63,0x24,0x21,0x03,0x62,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00, +0xf7,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x74,0x24,0x00,0x0c,0x00,0x00,0x00,0x00, +0x45,0x26,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x63,0x24,0x24,0x03,0x62,0x90, +0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0xc1,0xff,0x40,0x10,0x00,0x00,0x00,0x00, +0x34,0x25,0x00,0x0c,0x00,0x00,0x00,0x00,0x45,0x26,0x00,0x08,0x00,0x00,0x00,0x00, +0x38,0x15,0x63,0x24,0x22,0x03,0x62,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02, +0xe3,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x25,0x03,0x62,0x90,0x00,0x00,0x00,0x00, +0x2b,0x10,0x54,0x00,0xb2,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x34,0x25,0x00,0x0c, +0x00,0x00,0x00,0x00,0x45,0x26,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x08,0x3c, +0x38,0x15,0x05,0x25,0x80,0x11,0xa4,0x8c,0xea,0x02,0xa3,0x90,0x02,0x11,0x04,0x00, +0x26,0x00,0x60,0x14,0x7f,0x00,0x46,0x30,0x25,0xb0,0x07,0x3c,0x4c,0x00,0xe2,0x34, +0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x20,0x00,0x60,0x10,0x00,0x00,0x00,0x00, +0xff,0xff,0x02,0x34,0x1d,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x00,0x08,0xe3,0x34, +0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x19,0x00,0x40,0x10, +0x4b,0x00,0xc2,0x2c,0x3e,0x00,0x40,0x10,0x01,0x00,0x04,0x24,0xd8,0xff,0xc2,0x24, +0x1e,0x00,0x42,0x2c,0x49,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c,0x38,0x15,0x04,0x25, +0xd7,0x02,0x82,0x90,0x00,0x00,0x00,0x00,0x44,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c, +0x25,0xb0,0x02,0x3c,0x87,0x0c,0x42,0x34,0x20,0x00,0x03,0x24,0x00,0x00,0x43,0xa0, +0xd7,0x02,0x80,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x17,0x00,0x40,0x10,0x01,0x00,0x04,0x24,0xd8,0xff,0xc2,0x24, +0x1e,0x00,0x42,0x2c,0x44,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c,0x38,0x15,0x04,0x25, +0xd7,0x02,0x82,0x90,0x00,0x00,0x00,0x00,0x3f,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c, +0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,0x44,0x00,0x03,0x24,0x00,0x00,0x43,0xa0, +0xd7,0x02,0x80,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0xd7,0x02,0xa2,0x90,0x00,0x00,0x00,0x00,0xe7,0xff,0x44,0x10, +0x43,0x00,0x02,0x24,0x30,0x0c,0xe3,0x34,0xd7,0x02,0xa4,0xa0,0x00,0x00,0x62,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0xd7,0x02,0xa2,0x90,0x00,0x00,0x00,0x00,0xc0,0xff,0x44,0x10,0x10,0x00,0x02,0x24, +0x87,0x0c,0xe3,0x34,0xd7,0x02,0xa4,0xa0,0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xc7,0xff,0x40,0x10, +0x00,0x00,0x00,0x00,0x38,0x15,0x04,0x25,0xd7,0x02,0x82,0x90,0x02,0x00,0x03,0x24, +0xc2,0xff,0x43,0x10,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0x87,0x0c,0x42,0x34, +0xd7,0x02,0x83,0xa0,0x00,0x00,0x40,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xb4,0xff,0x40,0x10,0x00,0x00,0x00,0x00, +0x38,0x15,0x04,0x25,0xd7,0x02,0x82,0x90,0x02,0x00,0x03,0x24,0xaf,0xff,0x43,0x10, +0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xd7,0x02,0x83,0xa0,0x30,0x0c,0x42,0x34, +0x42,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xff,0xff,0x8d,0x30,0x00,0x60,0x0f,0x40, +0x01,0x00,0xe1,0x35,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x06,0x3c, +0x38,0x15,0xce,0x24,0x82,0x0b,0xc2,0x91,0x00,0x00,0x00,0x00,0x1d,0x00,0x40,0x10, +0x25,0xb0,0x03,0x3c,0x38,0x02,0x64,0x34,0x80,0xff,0x02,0x24,0x00,0x00,0x82,0xa0, +0x34,0x02,0x6a,0x34,0xd2,0x01,0x65,0x34,0xd6,0x01,0x66,0x34,0xda,0x01,0x67,0x34, +0xde,0x01,0x63,0x34,0x00,0x00,0xa8,0x94,0x00,0x00,0xc9,0x94,0x00,0x00,0xeb,0x94, +0x00,0x00,0x6c,0x94,0x00,0x00,0x44,0x95,0xb0,0xfe,0xa2,0x25,0xff,0xff,0x4d,0x30, +0x80,0x0b,0xc4,0xa5,0x00,0x00,0xa0,0xa4,0x78,0x0b,0xc8,0xa5,0x00,0x00,0xc0,0xa4, +0x7a,0x0b,0xc9,0xa5,0x00,0x00,0xe0,0xa4,0x7c,0x0b,0xcb,0xa5,0x00,0x00,0x60,0xa4, +0x00,0x00,0x4d,0xa5,0x7e,0x0b,0xcc,0xa5,0x00,0x60,0x8f,0x40,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x2a,0xb0,0x02,0x3c,0x0a,0x00,0x45,0x34,0x63,0x00,0x03,0x24, +0xff,0xff,0x04,0x34,0x00,0x00,0xa2,0x90,0x00,0x00,0x00,0x00,0x0a,0x00,0x40,0x10, +0x38,0x15,0xc2,0x24,0x64,0x00,0x02,0x24,0xff,0xff,0x42,0x24,0xff,0xff,0x42,0x30, +0xfe,0xff,0x40,0x14,0xff,0xff,0x42,0x24,0xff,0xff,0x62,0x24,0xff,0xff,0x43,0x30, +0xf4,0xff,0x64,0x14,0x38,0x15,0xc2,0x24,0x80,0x0b,0x48,0x94,0x7e,0x0b,0x47,0x94, +0x78,0x0b,0x49,0x94,0x7a,0x0b,0x4a,0x94,0x7c,0x0b,0x4b,0x94,0x25,0xb0,0x03,0x3c, +0x38,0x02,0x6c,0x34,0x34,0x02,0x62,0x34,0xd2,0x01,0x64,0x34,0xd6,0x01,0x65,0x34, +0xda,0x01,0x66,0x34,0xde,0x01,0x63,0x34,0x00,0x00,0x48,0xa4,0x00,0x00,0x89,0xa4, +0x00,0x00,0xaa,0xa4,0x00,0x00,0xcb,0xa4,0x00,0x00,0x67,0xa4,0x00,0x00,0x80,0xa1, +0x00,0x60,0x8f,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x04,0x3c, +0x08,0x00,0x83,0x34,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x00,0x14,0x02,0x00, +0x03,0x14,0x02,0x00,0x1a,0x00,0x40,0x04,0x60,0x02,0x85,0x34,0x00,0x00,0xa3,0x90, +0x05,0x00,0x02,0x24,0x00,0x03,0x8b,0x34,0xff,0x00,0x63,0x30,0x04,0x03,0x8c,0x34, +0xbd,0x00,0x8a,0x34,0x03,0x00,0x86,0x34,0x40,0x00,0x85,0x34,0xfc,0x77,0x09,0x24, +0x11,0x00,0x62,0x10,0x23,0x00,0x84,0x34,0x00,0x00,0xc2,0x90,0xfe,0xff,0x03,0x24, +0x24,0x10,0x43,0x00,0x00,0x00,0xc2,0xa0,0x22,0x00,0x02,0x24,0x00,0x00,0x60,0xad, +0x00,0x00,0x80,0xad,0x00,0x00,0x82,0xa0,0xfc,0x37,0x02,0x24,0x00,0x00,0xa9,0xa4, +0x00,0x00,0xa2,0xa4,0x00,0x00,0xa9,0xa4,0x00,0x00,0xa0,0xa4,0x00,0x00,0xa0,0xa4, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad, +0x00,0x00,0x42,0x91,0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x34,0x00,0x00,0x42,0xa1, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd0,0xff,0xbd,0x27,0x1c,0x00,0xb1,0xaf, +0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf, +0x18,0x00,0xb0,0xaf,0xff,0xff,0x11,0x24,0x02,0x80,0x13,0x3c,0x41,0xb0,0x02,0x3c, +0x38,0x15,0x66,0x26,0x04,0x00,0x42,0x34,0x00,0x00,0x47,0x8c,0x0c,0x0b,0xc5,0x8c, +0x02,0x80,0x03,0x3c,0xbe,0x3d,0x64,0x90,0x08,0x0b,0xc8,0x8c,0x02,0x80,0x02,0x3c, +0xe0,0x3d,0x49,0x90,0x25,0xb0,0x0a,0x3c,0x25,0x90,0xa7,0x00,0xb0,0x03,0x42,0x35, +0x00,0x00,0x52,0xac,0x00,0x24,0x04,0x00,0x00,0x00,0x48,0xac,0x84,0x02,0x43,0x35, +0x8c,0x02,0x45,0x35,0x01,0x00,0x02,0x24,0x00,0x00,0x72,0xac,0x00,0x00,0xa4,0xac, +0x8d,0x04,0x22,0x11,0x0c,0x0b,0xd2,0xac,0x38,0x15,0x70,0x26,0x08,0x0b,0x02,0x8e, +0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00,0x01,0x00,0x42,0x30,0x31,0x00,0x40,0x10, +0x02,0x80,0x14,0x3c,0x25,0xb0,0x0b,0x3c,0x04,0x00,0x63,0x35,0x00,0x00,0x6a,0x8c, +0x40,0x00,0x02,0x3c,0x24,0x10,0x42,0x01,0x70,0x04,0x40,0x14,0x01,0x00,0x03,0x24, +0xb2,0x3d,0x82,0x92,0x00,0x00,0x00,0x00,0x0f,0x00,0x42,0x30,0xcd,0x04,0x43,0x10, +0x20,0xbd,0x02,0x3c,0xec,0x02,0x65,0x35,0x4d,0x00,0x68,0x35,0xf1,0x02,0x69,0x35, +0x08,0x00,0x07,0x24,0x78,0x02,0x42,0x34,0x00,0x00,0x43,0xa4,0x00,0x00,0x00,0xa1, +0x00,0x00,0x27,0xa1,0x00,0x00,0xa0,0xac,0x00,0x00,0xa2,0x8c,0xff,0x00,0x03,0x3c, +0x80,0x00,0x04,0x3c,0xff,0x00,0x4a,0x30,0x25,0x50,0x43,0x01,0x24,0x20,0x44,0x01, +0xf2,0x02,0x66,0x35,0x0a,0x00,0x6a,0x35,0x80,0xff,0x02,0x24,0x00,0x00,0x00,0xa1, +0x00,0x00,0x27,0xa1,0x00,0x00,0xa3,0xac,0x00,0x00,0xa3,0xac,0x00,0x00,0xc0,0xa0, +0x00,0x00,0x42,0xa1,0x04,0x00,0x80,0x10,0x02,0x00,0x65,0x35,0x84,0xff,0x02,0x24, +0x00,0x00,0x42,0xa1,0x02,0x00,0x65,0x35,0x00,0x00,0xa3,0x94,0x0c,0x0b,0x04,0x8e, +0xff,0xbf,0x02,0x24,0x24,0x18,0x62,0x00,0x01,0x00,0x84,0x38,0x00,0x00,0xa3,0xa4, +0x0c,0x0b,0x04,0xae,0x38,0x15,0x66,0x26,0x08,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00, +0x24,0x28,0x52,0x00,0x04,0x00,0xa3,0x30,0x09,0x00,0x60,0x10,0x08,0x00,0xa2,0x30, +0x0c,0x0b,0xc2,0x8c,0x25,0xb0,0x03,0x3c,0x04,0x00,0x04,0x24,0x04,0x00,0x42,0x38, +0xb0,0x03,0x63,0x34,0x00,0x00,0x64,0xac,0x0c,0x0b,0xc2,0xac,0x08,0x00,0xa2,0x30, +0x06,0x00,0x40,0x10,0x10,0x00,0xa2,0x30,0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00, +0x08,0x00,0x42,0x38,0x0c,0x0b,0xc2,0xac,0x10,0x00,0xa2,0x30,0x06,0x00,0x40,0x10, +0x20,0x00,0xa2,0x30,0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x10,0x00,0x42,0x38, +0x0c,0x0b,0xc2,0xac,0x20,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,0x40,0x00,0xa2,0x30, +0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x38,0x0c,0x0b,0xc2,0xac, +0x40,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,0x80,0x00,0xa2,0x30,0x0c,0x0b,0xc2,0x8c, +0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x38,0x0c,0x0b,0xc2,0xac,0x80,0x00,0xa2,0x30, +0x06,0x00,0x40,0x10,0x00,0x01,0xa2,0x30,0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00, +0x80,0x00,0x42,0x38,0x0c,0x0b,0xc2,0xac,0x00,0x01,0xa2,0x30,0x06,0x00,0x40,0x10, +0x00,0x02,0xa2,0x30,0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x00,0x01,0x42,0x38, +0x0c,0x0b,0xc2,0xac,0x00,0x02,0xa2,0x30,0x06,0x00,0x40,0x10,0x00,0x04,0xa2,0x30, +0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x00,0x02,0x42,0x38,0x0c,0x0b,0xc2,0xac, +0x00,0x04,0xa2,0x30,0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x0c,0x0b,0xc2,0x8c, +0x00,0x00,0x00,0x00,0x00,0x04,0x42,0x38,0x0c,0x0b,0xc2,0xac,0x00,0x08,0xa2,0x30, +0x36,0x00,0x40,0x10,0x2a,0xb0,0x03,0x3c,0x00,0x00,0x6a,0x8c,0xff,0x00,0x02,0x24, +0xff,0x00,0x44,0x31,0x2c,0x00,0x82,0x10,0x00,0x80,0x42,0x31,0x17,0x04,0x40,0x14, +0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x0b,0x00,0x40,0x10, +0xff,0x00,0x02,0x24,0x90,0x24,0xc2,0x90,0x20,0xb0,0x03,0x3c,0x00,0x12,0x02,0x00, +0x21,0x10,0x43,0x00,0x0c,0x00,0x4a,0x8c,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34, +0x00,0x00,0x6a,0xac,0xff,0x00,0x44,0x31,0xff,0x00,0x02,0x24,0x1a,0x00,0x82,0x10, +0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x48,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c, +0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xdc,0x24,0x03,0xae, +0x21,0x20,0x00,0x00,0x90,0x24,0x0a,0xa2,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c, +0x10,0x00,0xa0,0xaf,0x08,0x0b,0x05,0x8e,0x02,0x80,0x06,0x3c,0xa4,0x3e,0xc4,0x8c, +0xff,0xc7,0x02,0x24,0x24,0x28,0xa2,0x00,0x25,0xb0,0x02,0x3c,0x04,0x00,0x84,0x34, +0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x65,0xac, +0xa4,0x3e,0xc4,0xac,0x08,0x0b,0x05,0xae,0x38,0x15,0x63,0x26,0x0c,0x0b,0x62,0x8c, +0x00,0x00,0x00,0x00,0x00,0x08,0x42,0x38,0x0c,0x0b,0x62,0xac,0x38,0x15,0x65,0x26, +0x08,0x0b,0xa2,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00,0x00,0x10,0x42,0x30, +0x38,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c,0x08,0x00,0x43,0x34,0x00,0x00,0x6a,0x8c, +0xff,0x00,0x02,0x24,0xff,0x00,0x44,0x31,0x2c,0x00,0x82,0x10,0x00,0x80,0x42,0x31, +0xdd,0x03,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01, +0x0b,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x98,0x24,0xa2,0x90,0x20,0xb0,0x03,0x3c, +0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,0x0c,0x00,0x4a,0x8c,0x25,0xb0,0x03,0x3c, +0xb0,0x03,0x63,0x34,0x00,0x00,0x6a,0xac,0xff,0x00,0x44,0x31,0xff,0x00,0x02,0x24, +0x1a,0x00,0x82,0x10,0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x60,0x25,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0xf4,0x24,0x03,0xae,0x01,0x00,0x04,0x24,0x98,0x24,0x0a,0xa2,0x40,0x00,0x07,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x08,0x0b,0x05,0x8e,0x02,0x80,0x06,0x3c, +0xa4,0x3e,0xc4,0x8c,0xff,0xc7,0x02,0x24,0x24,0x28,0xa2,0x00,0x25,0xb0,0x02,0x3c, +0x10,0x00,0x84,0x34,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac, +0x00,0x00,0x65,0xac,0xa4,0x3e,0xc4,0xac,0x08,0x0b,0x05,0xae,0x38,0x15,0x63,0x26, +0x0c,0x0b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x10,0x42,0x38,0x0c,0x0b,0x62,0xac, +0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00, +0x00,0x20,0x42,0x30,0x37,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c,0x04,0x00,0x43,0x34, +0x00,0x00,0x6a,0x8c,0xff,0x00,0x02,0x24,0xff,0x00,0x44,0x31,0xc1,0x03,0x82,0x10, +0x00,0x80,0x42,0x31,0xa3,0x03,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c, +0x24,0x10,0x42,0x01,0x0b,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x94,0x24,0xa2,0x90, +0x20,0xb0,0x03,0x3c,0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,0x0c,0x00,0x4a,0x8c, +0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34,0x00,0x00,0x6a,0xac,0xff,0x00,0x44,0x31, +0xff,0x00,0x02,0x24,0x1a,0x00,0x82,0x10,0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31, +0x54,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x21,0x30,0x60,0x00,0xe8,0x24,0x03,0xae,0x01,0x00,0x04,0x24,0x94,0x24,0x0a,0xa2, +0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x08,0x0b,0x05,0x8e, +0x02,0x80,0x06,0x3c,0xa4,0x3e,0xc4,0x8c,0xff,0xc7,0x02,0x24,0x24,0x28,0xa2,0x00, +0x25,0xb0,0x02,0x3c,0x20,0x00,0x84,0x34,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c, +0x00,0x00,0x44,0xac,0x00,0x00,0x65,0xac,0xa4,0x3e,0xc4,0xac,0x08,0x0b,0x05,0xae, +0x38,0x15,0x63,0x26,0x0c,0x0b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x20,0x42,0x38, +0x0c,0x0b,0x62,0xac,0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,0x00,0x00,0x00,0x00, +0x24,0x10,0x52,0x00,0x00,0x80,0x42,0x30,0x59,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c, +0x0c,0x00,0xc3,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31, +0x75,0x03,0x87,0x10,0x00,0x80,0x42,0x31,0x24,0x00,0x40,0x14,0x00,0x80,0x02,0x3c, +0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x22,0x00,0x40,0x10,0xff,0x00,0x02,0x24, +0x40,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30, +0x0f,0x00,0x87,0x10,0x38,0x15,0x62,0x26,0x70,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90, +0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x09,0x00,0x83,0x10,0x38,0x15,0x62,0x26, +0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00, +0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x70,0x24,0xe3,0xa0,0x38,0x15,0x62,0x26, +0x70,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31, +0x00,0x00,0x4a,0xac,0x81,0x29,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac, +0xff,0x00,0x02,0x24,0x24,0x00,0x82,0x10,0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31, +0x18,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x21,0x30,0x60,0x00,0x70,0x24,0x0a,0xa2,0xac,0x24,0x03,0xae,0x03,0x00,0x04,0x24, +0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x0a,0x3c, +0xb4,0x3e,0x47,0x91,0x02,0x80,0x09,0x3c,0xa4,0x3e,0x25,0x8d,0x08,0x0b,0x06,0x8e, +0x01,0x00,0x08,0x3c,0x80,0xff,0x02,0x24,0x25,0x38,0xe2,0x00,0x00,0x80,0x03,0x35, +0x80,0x00,0xa5,0x34,0x27,0x18,0x03,0x00,0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c, +0x24,0x30,0xc3,0x00,0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c, +0x00,0x00,0x44,0xac,0x27,0x88,0x08,0x00,0x00,0x00,0x66,0xac,0xa4,0x3e,0x25,0xad, +0xb4,0x3e,0x47,0xa1,0x08,0x0b,0x06,0xae,0x38,0x15,0x63,0x26,0x0c,0x0b,0x62,0x8c, +0x00,0x00,0x00,0x00,0x00,0x80,0x42,0x38,0x0c,0x0b,0x62,0xac,0x38,0x15,0x65,0x26, +0x08,0x0b,0xa2,0x8c,0x01,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00, +0x24,0x10,0x43,0x00,0x56,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c,0x10,0x00,0xc3,0x34, +0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0x20,0x03,0x87,0x10, +0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c, +0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24, +0x41,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30, +0x0e,0x00,0x87,0x10,0x38,0x15,0x62,0x26,0x74,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90, +0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00, +0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14, +0xff,0x00,0x44,0x30,0x74,0x24,0xe3,0xa0,0x38,0x15,0x62,0x26,0x74,0x24,0x43,0x90, +0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac, +0xe0,0x29,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24, +0x22,0x00,0x82,0x10,0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x18,0x25,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0xac,0x24,0x03,0xae,0x03,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x74,0x24,0x0a,0xa2, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,0xb4,0x3e,0x27,0x91, +0x02,0x80,0x08,0x3c,0xa4,0x3e,0x05,0x8d,0x08,0x0b,0x06,0x8e,0x01,0x00,0x02,0x3c, +0x00,0x80,0x42,0x34,0x40,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00, +0x80,0x00,0xa5,0x34,0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00, +0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac, +0xa4,0x3e,0x05,0xad,0xb4,0x3e,0x27,0xa1,0x08,0x0b,0x06,0xae,0x38,0x15,0x62,0x26, +0x0c,0x0b,0x43,0x8c,0x01,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac, +0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,0x02,0x00,0x03,0x3c,0x24,0x10,0x52,0x00, +0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c,0x14,0x00,0xc3,0x34, +0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0xe4,0x02,0x87,0x10, +0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c, +0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24, +0x42,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30, +0x0e,0x00,0x87,0x10,0x38,0x15,0x62,0x26,0x78,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90, +0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00, +0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14, +0xff,0x00,0x44,0x30,0x78,0x24,0xe3,0xa0,0x38,0x15,0x62,0x26,0x78,0x24,0x43,0x90, +0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac, +0x3c,0x2a,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24, +0x25,0x00,0x82,0x10,0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x24,0x25,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0x78,0x24,0x0a,0xa2,0xb8,0x24,0x03,0xae,0x04,0x00,0x04,0x24,0x40,0x00,0x07,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x0a,0x3c,0xb4,0x3e,0x47,0x91, +0x02,0x80,0x09,0x3c,0xa4,0x3e,0x25,0x8d,0x08,0x0b,0x06,0x8e,0x06,0x00,0x02,0x3c, +0x20,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x01,0xa5,0x34, +0x25,0xb0,0x03,0x3c,0x04,0x00,0x02,0x3c,0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02, +0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00,0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c, +0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac,0xa4,0x3e,0x25,0xad,0xb4,0x3e,0x47,0xa1, +0x08,0x0b,0x06,0xae,0x00,0x00,0x11,0xad,0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c, +0x02,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac,0x38,0x15,0x65,0x26, +0x08,0x0b,0xa2,0x8c,0x04,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00, +0x24,0x10,0x43,0x00,0x58,0x00,0x40,0x10,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x62,0x34, +0x2a,0xb0,0x08,0x3c,0x00,0x00,0x51,0xac,0x18,0x00,0x06,0x35,0x00,0x00,0xca,0x8c, +0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0x70,0x02,0x87,0x10,0x04,0x00,0x02,0x24, +0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c, +0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x43,0x00,0x06,0x35, +0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10, +0x38,0x15,0x62,0x26,0x7c,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30, +0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00, +0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30, +0x7c,0x24,0xe3,0xa0,0x38,0x15,0x62,0x26,0x7c,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c, +0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c, +0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0x9f,0x2a,0x00,0x08, +0xff,0x00,0x02,0x24,0x00,0x00,0xc2,0xac,0xff,0x00,0x02,0x24,0x21,0x00,0x82,0x10, +0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x24,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c, +0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xb8,0x24,0x03,0xae, +0x04,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x7c,0x24,0x0a,0xa2,0x10,0x01,0x00,0x0c, +0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,0xb4,0x3e,0x27,0x91,0x02,0x80,0x08,0x3c, +0xa4,0x3e,0x05,0x8d,0x08,0x0b,0x06,0x8e,0x06,0x00,0x02,0x3c,0x10,0x00,0xe7,0x34, +0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x01,0xa5,0x34,0x00,0x26,0x07,0x00, +0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c, +0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac,0xa4,0x3e,0x05,0xad,0xb4,0x3e,0x27,0xa1, +0x08,0x0b,0x06,0xae,0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x04,0x00,0x04,0x3c, +0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac,0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c, +0x08,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10, +0x2a,0xb0,0x06,0x3c,0x1c,0x00,0xc3,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24, +0xff,0x00,0x44,0x31,0x19,0x02,0x87,0x10,0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31, +0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01, +0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x44,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90, +0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x38,0x15,0x62,0x26, +0x80,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30, +0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90, +0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x80,0x24,0xe3,0xa0, +0x38,0x15,0x62,0x26,0x80,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00, +0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34, +0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0xfa,0x2a,0x00,0x08,0xff,0x00,0x02,0x24, +0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,0x25,0x00,0x82,0x10,0x38,0x15,0x70,0x26, +0xff,0x00,0x43,0x31,0x30,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00, +0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x80,0x24,0x0a,0xa2,0xc4,0x24,0x03,0xae, +0x05,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x02,0x80,0x0a,0x3c,0xb4,0x3e,0x47,0x91,0x02,0x80,0x09,0x3c,0xa4,0x3e,0x25,0x8d, +0x08,0x0b,0x06,0x8e,0x18,0x00,0x02,0x3c,0x08,0x00,0xe7,0x34,0x27,0x10,0x02,0x00, +0x24,0x30,0xc2,0x00,0x00,0x02,0xa5,0x34,0x25,0xb0,0x03,0x3c,0x10,0x00,0x02,0x3c, +0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02,0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00, +0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c,0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac, +0xa4,0x3e,0x25,0xad,0xb4,0x3e,0x47,0xa1,0x08,0x0b,0x06,0xae,0x00,0x00,0x11,0xad, +0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x08,0x00,0x04,0x3c,0x26,0x18,0x64,0x00, +0x0c,0x0b,0x43,0xac,0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,0x10,0x00,0x03,0x3c, +0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00,0x24,0x10,0x43,0x00,0x58,0x00,0x40,0x10, +0x25,0xb0,0x06,0x3c,0xb0,0x03,0xc2,0x34,0x2a,0xb0,0x08,0x3c,0x00,0x00,0x51,0xac, +0x20,0x00,0x03,0x35,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31, +0xbb,0x01,0x87,0x10,0x90,0x03,0xc2,0x34,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14, +0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10, +0xff,0x00,0x02,0x24,0x45,0x00,0x06,0x35,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00, +0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x38,0x15,0x62,0x26,0x8c,0x24,0xa4,0xa0, +0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10, +0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00, +0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x8c,0x24,0xe3,0xa0,0x38,0x15,0x62,0x26, +0x8c,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31, +0x00,0x00,0x4a,0xac,0x5d,0x2b,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac, +0xff,0x00,0x02,0x24,0x21,0x00,0x82,0x10,0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31, +0x30,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x21,0x30,0x60,0x00,0xc4,0x24,0x03,0xae,0x05,0x00,0x04,0x24,0x40,0x00,0x07,0x24, +0x8c,0x24,0x0a,0xa2,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c, +0xb4,0x3e,0x27,0x91,0x02,0x80,0x08,0x3c,0xa4,0x3e,0x05,0x8d,0x08,0x0b,0x06,0x8e, +0x18,0x00,0x02,0x3c,0x01,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00, +0x00,0x02,0xa5,0x34,0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00, +0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac, +0xa4,0x3e,0x05,0xad,0xb4,0x3e,0x27,0xa1,0x08,0x0b,0x06,0xae,0x38,0x15,0x62,0x26, +0x0c,0x0b,0x43,0x8c,0x10,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac, +0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,0x20,0x00,0x03,0x3c,0x24,0x10,0x52,0x00, +0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c,0x24,0x00,0xc3,0x34, +0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0x63,0x01,0x87,0x10, +0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c, +0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24, +0x46,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30, +0x0e,0x00,0x87,0x10,0x38,0x15,0x62,0x26,0x84,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90, +0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00, +0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14, +0xff,0x00,0x44,0x30,0x84,0x24,0xe3,0xa0,0x38,0x15,0x62,0x26,0x84,0x24,0x43,0x90, +0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac, +0xb8,0x2b,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24, +0x25,0x00,0x82,0x10,0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x3c,0x25,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0x84,0x24,0x0a,0xa2,0xd0,0x24,0x03,0xae,0x06,0x00,0x04,0x24,0x40,0x00,0x07,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x0a,0x3c,0xb4,0x3e,0x47,0x91, +0x02,0x80,0x09,0x3c,0xa4,0x3e,0x25,0x8d,0x08,0x0b,0x06,0x8e,0x60,0x00,0x02,0x3c, +0x04,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x04,0xa5,0x34, +0x25,0xb0,0x03,0x3c,0x40,0x00,0x02,0x3c,0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02, +0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00,0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c, +0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac,0xa4,0x3e,0x25,0xad,0xb4,0x3e,0x47,0xa1, +0x08,0x0b,0x06,0xae,0x00,0x00,0x11,0xad,0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c, +0x20,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac,0x38,0x15,0x65,0x26, +0x08,0x0b,0xa2,0x8c,0x40,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00, +0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,0x38,0x15,0x70,0x26,0x25,0xb0,0x02,0x3c, +0x2a,0xb0,0x07,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x51,0xac,0x28,0x00,0xe3,0x34, +0x00,0x00,0x6a,0x8c,0xff,0x00,0x06,0x24,0xff,0x00,0x44,0x31,0xd0,0x00,0x86,0x10, +0x25,0xbd,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c, +0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24, +0x47,0x00,0xe7,0x34,0x00,0x00,0xe2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30, +0x0e,0x00,0x86,0x10,0x38,0x15,0x62,0x26,0x88,0x24,0xa4,0xa0,0x00,0x00,0xe2,0x90, +0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x30,0xa0,0x00, +0x21,0x28,0xe0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14, +0xff,0x00,0x44,0x30,0x88,0x24,0xc3,0xa0,0x38,0x15,0x62,0x26,0x88,0x24,0x43,0x90, +0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac, +0x1c,0x2c,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24, +0x21,0x00,0x82,0x10,0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x3c,0x25,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0xd0,0x24,0x03,0xae,0x06,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x88,0x24,0x0a,0xa2, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,0xb4,0x3e,0x27,0x91, +0x02,0x80,0x08,0x3c,0xa4,0x3e,0x05,0x8d,0x08,0x0b,0x06,0x8e,0x60,0x00,0x02,0x3c, +0x02,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x04,0xa5,0x34, +0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34, +0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac,0xa4,0x3e,0x05,0xad, +0xb4,0x3e,0x27,0xa1,0x08,0x0b,0x06,0xae,0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c, +0x40,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac,0x38,0x15,0x70,0x26, +0x08,0x0b,0x06,0x8e,0x00,0x04,0x11,0x3c,0x24,0x10,0xd2,0x00,0x24,0x10,0x51,0x00, +0x57,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x24,0x28,0xd2,0x00,0x00,0x08,0x04,0x3c, +0x24,0x10,0xa4,0x00,0x08,0x00,0x40,0x10,0x80,0x00,0x07,0x3c,0x0c,0x0b,0x03,0x8e, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x26,0x18,0x64,0x00,0x00,0x00,0x44,0xac, +0x0c,0x0b,0x03,0xae,0x80,0x00,0x07,0x3c,0x24,0x10,0xa7,0x00,0x21,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x0c,0x0b,0x03,0x8e,0x25,0xb0,0x08,0x3c,0xb0,0x03,0x09,0x35, +0x2a,0xb0,0x02,0x3c,0x00,0x00,0x23,0xad,0x36,0x00,0x42,0x34,0x00,0x00,0x43,0x90, +0x23,0xb0,0x04,0x3c,0xff,0x1f,0x02,0x3c,0xc0,0x18,0x03,0x00,0xf0,0x07,0x63,0x30, +0xd8,0x25,0x05,0x8e,0x21,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x60,0x00,0x65,0x10,0xdc,0x25,0x03,0xae,0x02,0x80,0x05,0x3c,0xa4,0x3e,0xa3,0x8c, +0x27,0x20,0x07,0x00,0x24,0x20,0xc4,0x00,0x00,0x08,0x63,0x34,0x41,0xb0,0x02,0x3c, +0x00,0x00,0x23,0xad,0x00,0x00,0x44,0xac,0xa4,0x3e,0xa3,0xac,0x08,0x0b,0x04,0xae, +0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x80,0x00,0x04,0x3c,0x26,0x18,0x64,0x00, +0x0c,0x0b,0x43,0xac,0x38,0x15,0x66,0x26,0x08,0x0b,0xc3,0x8c,0x00,0x01,0x04,0x3c, +0x24,0x28,0x72,0x00,0x24,0x10,0xa4,0x00,0x06,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c, +0x0c,0x0b,0xc3,0x8c,0xb0,0x03,0x42,0x34,0x26,0x18,0x64,0x00,0x00,0x00,0x44,0xac, +0x0c,0x0b,0xc3,0xac,0x00,0x02,0x04,0x3c,0x24,0x10,0xa4,0x00,0x06,0x00,0x40,0x10, +0x25,0xb0,0x03,0x3c,0x0c,0x0b,0xc2,0x8c,0xb0,0x03,0x63,0x34,0x26,0x10,0x44,0x00, +0x0c,0x0b,0xc2,0xac,0x00,0x00,0x64,0xac,0xb2,0x3d,0x82,0x92,0x01,0x00,0x03,0x24, +0x0f,0x00,0x42,0x30,0x21,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x2c,0x00,0xbf,0x8f, +0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f, +0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0x0c,0x0b,0x02,0x8e, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x38,0x55,0x28,0x00,0x08,0x0c,0x0b,0x02,0xae, +0xa7,0x48,0x00,0x0c,0x07,0x00,0x04,0x24,0x0c,0x0b,0x03,0x8e,0x08,0x0b,0x06,0x8e, +0x25,0xb0,0x02,0x3c,0x26,0x18,0x71,0x00,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x4a,0x2c,0x00,0x08,0x0c,0x0b,0x03,0xae,0x56,0x01,0x42,0x35,0x00,0x00,0x43,0x94, +0x00,0x00,0x00,0x00,0x70,0xfb,0x60,0x10,0x00,0x00,0x00,0x00,0xa7,0x48,0x00,0x0c, +0x07,0x00,0x04,0x24,0x1f,0x28,0x00,0x08,0x38,0x15,0x70,0x26,0x2c,0x00,0xbf,0x8f, +0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f, +0x18,0x00,0xb0,0x8f,0xd3,0x27,0x00,0x08,0x30,0x00,0xbd,0x27,0x00,0x00,0x62,0xac, +0xb3,0x28,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xf0,0x28,0x00,0x08, +0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0x2d,0x29,0x00,0x08,0xff,0x00,0x02,0x24, +0x01,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x3f,0x2c,0x00,0x08, +0x38,0x15,0x62,0x26,0xd0,0x03,0x03,0x35,0x80,0x00,0x02,0x24,0x00,0x00,0x62,0xac, +0x75,0x2c,0x00,0x08,0x38,0x15,0x62,0x26,0x25,0xb0,0x02,0x3c,0x07,0x00,0x03,0x24, +0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x38,0x15,0x63,0x26,0x0c,0x0b,0x62,0x8c, +0x00,0x00,0x00,0x00,0x00,0x80,0x42,0x38,0xab,0x29,0x00,0x08,0x0c,0x0b,0x62,0xac, +0x06,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x04,0x2a,0x00,0x08, +0x38,0x15,0x62,0x26,0x25,0xb0,0x02,0x3c,0x07,0x00,0x03,0x24,0x90,0x03,0x42,0x34, +0x00,0x00,0x43,0xac,0x38,0x15,0x63,0x26,0x0c,0x0b,0x62,0x8c,0x00,0x00,0x00,0x00, +0x00,0x20,0x42,0x38,0x4d,0x29,0x00,0x08,0x0c,0x0b,0x62,0xac,0x90,0x03,0x63,0x34, +0x00,0x00,0x62,0xac,0xc2,0x2a,0x00,0x08,0x38,0x15,0x62,0x26,0x03,0x00,0x03,0x24, +0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x21,0x2b,0x00,0x08,0x38,0x15,0x62,0x26, +0x00,0x00,0x40,0xac,0x80,0x2b,0x00,0x08,0x38,0x15,0x62,0x26,0x02,0x00,0x03,0x24, +0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0xdf,0x2b,0x00,0x08,0x38,0x15,0x62,0x26, +0x05,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x63,0x2a,0x00,0x08, +0x38,0x15,0x62,0x26,0x01,0x00,0x04,0x24,0x17,0x00,0x05,0x24,0x21,0x30,0x00,0x00, +0x7a,0x09,0x00,0x0c,0x21,0x38,0x00,0x00,0x53,0xfb,0x40,0x10,0x38,0x15,0x66,0x26, +0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x38,0x56,0x28,0x00,0x08, +0x0c,0x0b,0x02,0xae,0x25,0xb0,0x0d,0x3c,0x01,0x80,0x02,0x3c,0x18,0x03,0xa4,0x35, +0x24,0xb4,0x42,0x24,0x02,0x80,0x03,0x3c,0x41,0xb0,0x08,0x3c,0x00,0x00,0x82,0xac, +0x38,0x15,0x6a,0x24,0x0a,0x00,0x02,0x35,0x00,0x00,0x44,0x94,0x16,0x0b,0x43,0x95, +0x14,0x0b,0x4b,0x95,0x25,0x18,0x64,0x00,0xff,0xff,0x6c,0x30,0x24,0x10,0x8b,0x01, +0x02,0x00,0x42,0x30,0x53,0x00,0x40,0x10,0x02,0x00,0x64,0x38,0x02,0x00,0x02,0x24, +0xc0,0x03,0xa3,0x35,0x00,0x00,0x62,0xac,0x16,0x0b,0x44,0xa5,0x24,0x38,0x8b,0x01, +0x04,0x00,0xe2,0x30,0x0a,0x00,0x40,0x10,0x08,0x00,0xe2,0x30,0x16,0x0b,0x43,0x95, +0x0c,0x00,0x04,0x35,0xc0,0x03,0xa5,0x35,0x04,0x00,0x63,0x38,0x04,0x00,0x02,0x24, +0x00,0x00,0x86,0x8c,0x00,0x00,0xa2,0xac,0x16,0x0b,0x43,0xa5,0x08,0x00,0xe2,0x30, +0x08,0x00,0x40,0x10,0x10,0x00,0xe2,0x30,0x16,0x0b,0x42,0x95,0xc0,0x03,0xa4,0x35, +0x08,0x00,0x03,0x24,0x08,0x00,0x42,0x38,0x00,0x00,0x83,0xac,0x16,0x0b,0x42,0xa5, +0x10,0x00,0xe2,0x30,0x08,0x00,0x40,0x10,0x20,0x00,0xe2,0x30,0x16,0x0b,0x42,0x95, +0xc0,0x03,0xa4,0x35,0x10,0x00,0x03,0x24,0x10,0x00,0x42,0x38,0x00,0x00,0x83,0xac, +0x16,0x0b,0x42,0xa5,0x20,0x00,0xe2,0x30,0x08,0x00,0x40,0x10,0x80,0x00,0xe2,0x30, +0x16,0x0b,0x42,0x95,0xc0,0x03,0xa4,0x35,0x20,0x00,0x03,0x24,0x20,0x00,0x42,0x38, +0x00,0x00,0x83,0xac,0x16,0x0b,0x42,0xa5,0x80,0x00,0xe2,0x30,0x15,0x00,0x40,0x10, +0x24,0x10,0x8b,0x01,0x02,0x80,0x09,0x3c,0x16,0x0b,0x46,0x95,0xa4,0x3e,0x25,0x8d, +0x10,0x00,0x02,0x3c,0x7f,0xff,0x04,0x24,0x24,0x20,0x64,0x01,0x25,0x28,0xa2,0x00, +0x80,0x00,0xc6,0x38,0xb0,0x03,0xa7,0x35,0x08,0x00,0x08,0x35,0xc0,0x03,0xa3,0x35, +0x80,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0x21,0x58,0x80,0x00,0x00,0x00,0xe5,0xac, +0x16,0x0b,0x46,0xa5,0xa4,0x3e,0x25,0xad,0x00,0x00,0x04,0xa5,0x14,0x0b,0x44,0xa5, +0x24,0x10,0x8b,0x01,0x00,0x30,0x42,0x30,0x07,0x00,0x40,0x10,0x02,0x80,0x02,0x3c, +0x16,0x0b,0x42,0x95,0x00,0x00,0x00,0x00,0x00,0x10,0x42,0x38,0x00,0x20,0x42,0x34, +0x16,0x0b,0x42,0xa5,0x02,0x80,0x02,0x3c,0xb2,0x3d,0x43,0x90,0x01,0x00,0x02,0x24, +0x0f,0x00,0x63,0x30,0x05,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x1f,0x2d,0x00,0x08,0x16,0x0b,0x43,0xa5,0xd3,0x27,0x00,0x08, +0x00,0x00,0x00,0x00,0xf8,0xff,0xbd,0x27,0x25,0xb0,0x05,0x3c,0x04,0x00,0xb1,0xaf, +0x00,0x00,0xb0,0xaf,0x18,0x03,0xa6,0x34,0x00,0x00,0xc3,0x8c,0x1c,0x03,0xa2,0x34, +0x00,0x00,0x43,0xac,0x00,0x40,0x07,0x40,0x00,0x68,0x09,0x40,0x00,0x70,0x02,0x40, +0x00,0x60,0x08,0x40,0x01,0x80,0x02,0x3c,0xc4,0xb5,0x42,0x24,0x00,0x00,0xc2,0xac, +0x80,0x00,0x87,0x8c,0x7c,0x02,0xa2,0x34,0x84,0x02,0xa3,0x34,0x88,0x02,0xa6,0x34, +0x00,0x00,0x47,0xac,0x00,0x00,0x69,0xac,0x00,0x00,0xc8,0xac,0x74,0x00,0x83,0x8c, +0x8c,0x02,0xa2,0x34,0x90,0x02,0xa7,0x34,0x00,0x00,0x43,0xac,0x08,0x00,0x86,0x8c, +0x94,0x02,0xa8,0x34,0x98,0x02,0xa9,0x34,0x00,0x00,0xe6,0xac,0x0c,0x00,0x82,0x8c, +0x9c,0x02,0xa6,0x34,0xa0,0x02,0xa7,0x34,0x00,0x00,0x02,0xad,0x10,0x00,0x83,0x8c, +0xa4,0x02,0xa8,0x34,0xa8,0x02,0xaa,0x34,0x00,0x00,0x23,0xad,0x14,0x00,0x82,0x8c, +0xac,0x02,0xa9,0x34,0xb0,0x02,0xab,0x34,0x00,0x00,0xc2,0xac,0x18,0x00,0x83,0x8c, +0xb4,0x02,0xa6,0x34,0xb8,0x02,0xac,0x34,0x00,0x00,0xe3,0xac,0x1c,0x00,0x82,0x8c, +0xbc,0x02,0xa7,0x34,0xc0,0x02,0xad,0x34,0x00,0x00,0x02,0xad,0x20,0x00,0x83,0x8c, +0xc4,0x02,0xa8,0x34,0xc8,0x02,0xae,0x34,0x00,0x00,0x43,0xad,0x24,0x00,0x82,0x8c, +0xcc,0x02,0xaa,0x34,0xd0,0x02,0xaf,0x34,0x00,0x00,0x22,0xad,0x28,0x00,0x83,0x8c, +0xd4,0x02,0xa9,0x34,0xd8,0x02,0xb0,0x34,0x00,0x00,0x63,0xad,0x2c,0x00,0x82,0x8c, +0x70,0x02,0xab,0x34,0x74,0x02,0xb1,0x34,0x00,0x00,0xc2,0xac,0x30,0x00,0x83,0x8c, +0x78,0x02,0xa5,0x34,0x00,0x00,0x83,0xad,0x34,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0xe2,0xac,0x38,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xad, +0x3c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xad,0x40,0x00,0x83,0x8c, +0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xad,0x44,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x42,0xad,0x48,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xe3,0xad, +0x4c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0xad,0x50,0x00,0x83,0x8c, +0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xae,0x54,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x62,0xad,0x58,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0xae, +0x5c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xac,0xd7,0x2d,0x00,0x08, +0x00,0x00,0x00,0x00,0x01,0x80,0x1b,0x3c,0x64,0xb7,0x7b,0x27,0x25,0xb0,0x1a,0x3c, +0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00, +0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf, +0x0c,0x00,0x63,0xaf,0x10,0x00,0x64,0xaf,0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf, +0x1c,0x00,0x67,0xaf,0x20,0x00,0x68,0xaf,0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf, +0x2c,0x00,0x6b,0xaf,0x30,0x00,0x6c,0xaf,0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf, +0x3c,0x00,0x6f,0xaf,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40, +0x40,0x00,0x70,0xaf,0x44,0x00,0x71,0xaf,0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf, +0x50,0x00,0x74,0xaf,0x54,0x00,0x75,0xaf,0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf, +0x60,0x00,0x78,0xaf,0x64,0x00,0x79,0xaf,0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf, +0x70,0x00,0x7e,0xaf,0x74,0x00,0x7f,0xaf,0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf, +0x80,0x00,0x6a,0xaf,0x00,0x68,0x1a,0x40,0x7f,0x00,0x5b,0x33,0x30,0x00,0x60,0x13, +0x00,0x00,0x00,0x00,0x25,0xb0,0x1b,0x3c,0x30,0x03,0x7b,0x37,0x00,0x00,0x00,0x00, +0x00,0x00,0x7a,0xaf,0x00,0x00,0x00,0x00,0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00, +0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf, +0x0c,0x00,0x63,0xaf,0x10,0x00,0x64,0xaf,0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf, +0x1c,0x00,0x67,0xaf,0x20,0x00,0x68,0xaf,0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf, +0x2c,0x00,0x6b,0xaf,0x30,0x00,0x6c,0xaf,0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf, +0x3c,0x00,0x6f,0xaf,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40, +0x40,0x00,0x70,0xaf,0x44,0x00,0x71,0xaf,0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf, +0x50,0x00,0x74,0xaf,0x54,0x00,0x75,0xaf,0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf, +0x60,0x00,0x78,0xaf,0x64,0x00,0x79,0xaf,0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf, +0x70,0x00,0x7e,0xaf,0x74,0x00,0x7f,0xaf,0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf, +0x80,0x00,0x6a,0xaf,0x71,0x2d,0x00,0x08,0x21,0x20,0x60,0x03,0x00,0x00,0x00,0x00, +0x25,0xb0,0x08,0x3c,0x20,0x03,0x08,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0xad, +0x00,0x04,0x5b,0x33,0x0a,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x01,0x80,0x08,0x3c, +0xf8,0x9f,0x08,0x25,0x00,0x00,0x00,0x00,0x25,0xb0,0x1b,0x3c,0x24,0x03,0x7b,0x37, +0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xaf,0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00, +0x00,0x08,0x5b,0x33,0x25,0xb0,0x08,0x3c,0x28,0x03,0x08,0x35,0x00,0x00,0x00,0x00, +0x00,0x00,0x1b,0xad,0x06,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x01,0x80,0x08,0x3c, +0x24,0xb4,0x08,0x25,0x00,0x00,0x00,0x00,0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00, +0x02,0x80,0x1a,0x3c,0xa4,0x3e,0x5a,0x27,0x04,0x00,0x5b,0x97,0x25,0xb0,0x08,0x3c, +0x30,0x03,0x08,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xad,0x18,0x00,0x60,0x13, +0x00,0x00,0x00,0x00,0x08,0xec,0x9b,0x27,0x00,0x00,0x00,0x00,0x04,0x00,0x61,0x8f, +0xfc,0x03,0x70,0x7b,0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b, +0x3c,0x01,0x68,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b, +0xbc,0x01,0x6c,0x7b,0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b, +0xbc,0x02,0x74,0x7b,0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b, +0xbc,0x03,0x7e,0x7b,0x80,0x00,0x7b,0x8f,0xc0,0x2e,0x00,0x08,0x00,0x00,0x00,0x00, +0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27, +0x08,0x00,0x5b,0xaf,0xfc,0xef,0x9d,0x27,0x00,0x00,0x4a,0x8f,0x00,0x00,0x00,0x00, +0x21,0x00,0x40,0x11,0x00,0x00,0x00,0x00,0x02,0x80,0x08,0x3c,0x04,0x3e,0x08,0x25, +0x21,0x48,0x00,0x00,0x21,0x58,0x00,0x00,0x01,0x00,0x6b,0x25,0x1a,0x00,0x40,0x11, +0x24,0x70,0x4b,0x01,0x14,0x00,0xc0,0x11,0x01,0x00,0x04,0x24,0x00,0x00,0x00,0x00, +0x04,0x00,0x44,0xa3,0x26,0x50,0x4b,0x01,0x00,0x00,0x4a,0xaf,0x80,0x80,0x09,0x00, +0x21,0x80,0x08,0x02,0x00,0x00,0x10,0x8e,0x00,0x00,0x00,0x00,0x09,0xf8,0x00,0x02, +0x00,0x00,0x00,0x00,0x01,0x80,0x1b,0x3c,0x2c,0xba,0x7b,0x27,0x25,0xb0,0x1a,0x3c, +0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x02,0x80,0x1a,0x3c,0xa4,0x3e,0x5a,0x27, +0xe1,0xff,0x00,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x29,0x25,0x40,0x58,0x0b,0x00, +0x83,0x2e,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x1b,0x3c,0xa4,0x3e,0x7b,0x27, +0x21,0x60,0x00,0x00,0x04,0x00,0x6c,0xa7,0x08,0x00,0x7a,0x8f,0x00,0x00,0x00,0x00, +0xf8,0xff,0x5a,0x27,0x00,0x00,0x5a,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x5a,0x27, +0x84,0x00,0x44,0x8f,0x00,0x00,0x00,0x00,0xf9,0xff,0x80,0x10,0x00,0x00,0x00,0x00, +0x04,0x00,0x41,0x8f,0xfc,0x03,0x50,0x7b,0x7c,0x00,0x42,0x7b,0xbc,0x00,0x44,0x7b, +0xfc,0x00,0x46,0x7b,0x3c,0x01,0x48,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02, +0x7c,0x01,0x4a,0x7b,0xbc,0x01,0x4c,0x7b,0xfc,0x01,0x4e,0x7b,0x3c,0x02,0x50,0x7b, +0x7c,0x02,0x52,0x7b,0xbc,0x02,0x54,0x7b,0xfc,0x02,0x56,0x7b,0x3c,0x03,0x58,0x7b, +0x7c,0x03,0x5c,0x7b,0xbc,0x03,0x5e,0x7b,0x80,0x00,0x5b,0x8f,0x00,0x00,0x00,0x00, +0x08,0x00,0x60,0x03,0x10,0x00,0x00,0x42,0x00,0x60,0x05,0x40,0x42,0x28,0x05,0x00, +0x40,0x28,0x05,0x00,0x00,0x60,0x85,0x40,0x04,0x00,0x81,0xac,0x08,0x00,0x82,0xac, +0x0c,0x00,0x83,0xac,0x20,0x00,0x88,0xac,0x24,0x00,0x89,0xac,0x28,0x00,0x8a,0xac, +0x2c,0x00,0x8b,0xac,0x30,0x00,0x8c,0xac,0x34,0x00,0x8d,0xac,0x38,0x00,0x8e,0xac, +0x3c,0x00,0x8f,0xac,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x40,0x00,0x90,0xac, +0x44,0x00,0x91,0xac,0x48,0x00,0x92,0xac,0x4c,0x00,0x93,0xac,0x50,0x00,0x94,0xac, +0x54,0x00,0x95,0xac,0x58,0x00,0x96,0xac,0x5c,0x00,0x97,0xac,0x60,0x00,0x98,0xac, +0x64,0x00,0x99,0xac,0x68,0x00,0x9c,0xac,0x6c,0x00,0x9d,0xac,0x70,0x00,0x9e,0xac, +0x74,0x00,0x9f,0xac,0x78,0x00,0x88,0xac,0x7c,0x00,0x89,0xac,0x80,0x00,0x9f,0xac, +0xf8,0xff,0x84,0x24,0x00,0x00,0x84,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x84,0x24, +0x84,0x00,0x86,0x8c,0x00,0x00,0x00,0x00,0xf9,0xff,0xc0,0x10,0x00,0x00,0x00,0x00, +0x21,0xd8,0x80,0x00,0x01,0x00,0xba,0x24,0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b, +0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b, +0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b, +0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b, +0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b, +0x80,0x00,0x7b,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40, +0x00,0x60,0x05,0x40,0x42,0x28,0x05,0x00,0x40,0x28,0x05,0x00,0x00,0x60,0x85,0x40, +0x04,0x00,0x81,0xac,0x08,0x00,0x82,0xac,0x0c,0x00,0x83,0xac,0x20,0x00,0x88,0xac, +0x24,0x00,0x89,0xac,0x28,0x00,0x8a,0xac,0x2c,0x00,0x8b,0xac,0x30,0x00,0x8c,0xac, +0x34,0x00,0x8d,0xac,0x38,0x00,0x8e,0xac,0x3c,0x00,0x8f,0xac,0x12,0x40,0x00,0x00, +0x10,0x48,0x00,0x00,0x40,0x00,0x90,0xac,0x44,0x00,0x91,0xac,0x48,0x00,0x92,0xac, +0x4c,0x00,0x93,0xac,0x50,0x00,0x94,0xac,0x54,0x00,0x94,0xac,0x58,0x00,0x96,0xac, +0x5c,0x00,0x96,0xac,0x60,0x00,0x98,0xac,0x64,0x00,0x99,0xac,0x68,0x00,0x9c,0xac, +0x6c,0x00,0x9d,0xac,0x70,0x00,0x9e,0xac,0x78,0x00,0x88,0xac,0x7c,0x00,0x89,0xac, +0x80,0x00,0x9f,0xac,0x84,0x00,0x80,0xac,0xf8,0xff,0x84,0x24,0x00,0x00,0x84,0x8c, +0x00,0x00,0x00,0x00,0x08,0x00,0x84,0x24,0x84,0x00,0x86,0x8c,0xfa,0xff,0xc0,0x10, +0x00,0x00,0x00,0x00,0x21,0xd8,0x80,0x00,0x01,0x00,0xba,0x24,0x04,0x00,0x61,0x8f, +0xfc,0x03,0x70,0x7b,0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b, +0x3c,0x01,0x68,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b, +0xbc,0x01,0x6c,0x7b,0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b, +0xbc,0x02,0x74,0x7b,0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b, +0xbc,0x03,0x7e,0x7b,0x80,0x00,0x7b,0x8f,0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xb1,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x1b,0x3c,0x00,0x00,0x7b,0x27, +0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x00,0x00,0x05,0x24, +0x03,0x00,0xa4,0x24,0x00,0xa0,0x80,0x40,0x00,0xa0,0x84,0x40,0x01,0x80,0x04,0x3c, +0x98,0x03,0x84,0x24,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x80,0x1b,0x3c,0x98,0x03,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27, +0x00,0x00,0x5b,0xaf,0x02,0x80,0x1a,0x3c,0x00,0x00,0x5a,0x27,0xfc,0x03,0x5d,0x27, +0x02,0x80,0x1c,0x3c,0x00,0x14,0x9c,0x27,0x00,0xf0,0x08,0x3c,0x00,0x0c,0x08,0x35, +0x00,0x60,0x88,0x40,0x02,0x80,0x04,0x3c,0x00,0x00,0x84,0x24,0xff,0x7f,0x05,0x3c, +0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x20,0x84,0x4c,0xff,0xff,0x05,0x34, +0x21,0x28,0xa4,0x00,0x00,0x28,0x85,0x4c,0x00,0x80,0x04,0x3c,0x00,0x00,0x84,0x24, +0xff,0x7f,0x05,0x3c,0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x00,0x84,0x4c, +0xff,0xff,0x06,0x34,0x21,0x30,0xc4,0x00,0x24,0x30,0xc5,0x00,0x00,0x08,0x86,0x4c, +0x00,0xa0,0x04,0x40,0x10,0x00,0x84,0x34,0x00,0xa0,0x84,0x40,0x01,0x80,0x1b,0x3c, +0x24,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf, +0x00,0x00,0x00,0x00,0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x84, +0x20,0x00,0x06,0x24,0x25,0x28,0xa6,0x00,0x00,0x00,0x85,0xa4,0x01,0x80,0x1b,0x3c, +0x54,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf, +0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x8c,0x00,0x00,0x00,0x00, +0x10,0x00,0xa5,0x30,0xfc,0xff,0xa0,0x10,0x00,0x00,0x00,0x00,0xff,0x1f,0x07,0x3c, +0xff,0xff,0xe7,0x34,0x02,0x80,0x05,0x3c,0xb0,0x3d,0xa5,0x24,0xff,0xff,0xa5,0x30, +0x40,0xb0,0x04,0x3c,0x25,0x28,0xa4,0x00,0x24,0x28,0xa7,0x00,0x21,0x30,0x00,0x00, +0x43,0xb0,0x02,0x3c,0x00,0x80,0x04,0x3c,0x40,0x00,0x84,0x34,0x00,0x00,0x45,0xac, +0x04,0x00,0x46,0xac,0x08,0x00,0x44,0xac,0x9d,0x55,0x00,0x08,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24, +0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0x08,0x00,0xe0,0x03,0x01,0x00,0x42,0x24, +0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x21,0x18,0x40,0x00,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x44,0x05,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x04,0x00,0x85,0x8c,0x00,0x80,0x03,0x3c,0x01,0x00,0x02,0x24,0x25,0x28,0xa3,0x00, +0x00,0x00,0xa4,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x74,0x05,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x04,0x00,0x82,0x8c,0x02,0x00,0x83,0x94,0x00,0x80,0x07,0x3c,0x25,0x28,0x47,0x00, +0x00,0x00,0xa2,0x8c,0x10,0x00,0x02,0x24,0x13,0x00,0x62,0x10,0x11,0x00,0x66,0x28, +0x06,0x00,0xc0,0x10,0x20,0x00,0x02,0x24,0x08,0x00,0x02,0x24,0x17,0x00,0x62,0x10, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0xfd,0xff,0x62,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xac, +0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x25,0x10,0x47,0x00,0x00,0x00,0x42,0x8c, +0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0xa2,0xa4,0x04,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x25,0x18,0x67,0x00, +0x00,0x00,0x62,0x94,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0x82,0x8c, +0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xa0,0x04,0x00,0x83,0x8c,0x00,0x00,0x00,0x00, +0x25,0x18,0x67,0x00,0x00,0x00,0x62,0x90,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24, +0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,0x1c,0x00,0xbf,0xaf, +0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x38,0x15,0x31,0x26,0x6c,0x25,0x30,0x96, +0x02,0x80,0x02,0x3c,0x01,0x80,0x03,0x3c,0x25,0x80,0x02,0x02,0x25,0xb0,0x02,0x3c, +0x38,0x06,0x63,0x24,0x18,0x03,0x42,0x34,0x60,0x00,0x04,0x26,0x80,0x00,0x05,0x26, +0x00,0x00,0x43,0xac,0x6c,0x45,0x00,0x0c,0x03,0x00,0x06,0x24,0x21,0x20,0x00,0x02, +0x21,0x28,0x00,0x00,0x58,0x45,0x00,0x0c,0x08,0x00,0x06,0x24,0x6c,0x25,0x22,0x8e, +0x0c,0x00,0x03,0x24,0x0c,0x00,0x43,0xae,0x08,0x00,0x42,0xae,0x12,0x00,0x02,0x24, +0x14,0x00,0x42,0xae,0x21,0x20,0x40,0x02,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x42,0x09,0x00,0x08,0x20,0x00,0xbd,0x27, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x02,0x80,0x02,0x3c,0x21,0x48,0x80,0x00, +0x38,0x15,0x48,0x24,0x21,0x38,0x00,0x00,0x21,0x28,0x27,0x01,0x00,0x00,0xa2,0x90, +0x21,0x20,0xe8,0x00,0x01,0x00,0xe7,0x24,0x50,0x0c,0x82,0xa0,0x1e,0x00,0xa3,0x90, +0x1e,0x00,0xe6,0x28,0x6e,0x0c,0x83,0xa0,0x3c,0x00,0xa2,0x90,0x00,0x00,0x00,0x00, +0x8c,0x0c,0x82,0xa0,0x5a,0x00,0xa3,0x90,0xf3,0xff,0xc0,0x14,0xaa,0x0c,0x83,0xa0, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24, +0x20,0xbd,0x03,0x3c,0x58,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x0f,0x27,0x07,0x24, +0x20,0x00,0x42,0x34,0x00,0x00,0x62,0xa0,0xff,0xff,0xe7,0x24,0xff,0xff,0xe1,0x04, +0xff,0xff,0xe7,0x24,0x62,0xbd,0x04,0x3c,0x24,0x10,0x82,0x34,0x00,0x00,0x40,0xa0, +0x28,0x10,0x83,0x34,0x0c,0x11,0x86,0x34,0x0e,0x00,0x02,0x24,0x00,0x00,0x60,0xa0, +0x00,0x11,0x85,0x34,0x00,0x00,0xc2,0xa0,0x00,0x00,0xa7,0x8c,0xdf,0xff,0x02,0x24, +0x10,0x00,0x86,0x34,0x24,0x38,0xe2,0x00,0x49,0x0c,0x03,0x24,0xcf,0xff,0x02,0x24, +0x00,0x00,0xc3,0xac,0x04,0x00,0x84,0x34,0x00,0x00,0xa7,0xac,0x24,0x38,0xe2,0x00, +0x41,0x0c,0x02,0x24,0x00,0x00,0xa7,0xac,0x00,0x00,0x80,0xac,0x00,0x00,0xc2,0xac, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x25,0xb0,0x05,0x3c,0x01,0x80,0x03,0x3c,0x21,0x38,0x80,0x00,0x18,0x03,0xa2,0x34, +0xa8,0x08,0x63,0x24,0x01,0x00,0x04,0x24,0x00,0x00,0x43,0xac,0x35,0x00,0xe4,0x10, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x10,0x20,0x08,0xa2,0x34,0x02,0x00,0x02,0x24, +0x83,0x00,0xe2,0x10,0x03,0x00,0x02,0x24,0x5a,0x00,0xe2,0x10,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x00,0x00,0x44,0x8c, +0x38,0x15,0x66,0x24,0x70,0x08,0x02,0x24,0xe0,0x08,0x03,0x24,0x8c,0x0b,0xc2,0xac, +0x40,0x08,0x02,0x24,0x90,0x0b,0xc3,0xac,0x9c,0x0b,0xc2,0xac,0x78,0x08,0x03,0x24, +0x0c,0x08,0x02,0x24,0xa0,0x0b,0xc3,0xac,0xa4,0x0b,0xc2,0xac,0x10,0x08,0x03,0x24, +0x20,0x08,0x02,0x24,0xa8,0x0b,0xc3,0xac,0xac,0x0b,0xc2,0xac,0x24,0x08,0x03,0x24, +0x58,0x08,0x02,0x24,0xb0,0x0b,0xc3,0xac,0xb4,0x0b,0xc2,0xac,0x50,0x0c,0x03,0x24, +0x54,0x0c,0x02,0x24,0xb8,0x0b,0xc3,0xac,0xbc,0x0b,0xc2,0xac,0x14,0x0c,0x03,0x24, +0x10,0x0c,0x02,0x24,0x60,0x08,0x05,0x24,0xc0,0x0b,0xc3,0xac,0xc4,0x0b,0xc2,0xac, +0x80,0x0c,0x03,0x24,0x84,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xcc,0x0b,0xc2,0xac, +0x98,0x0b,0xc5,0xac,0xc8,0x0b,0xc3,0xac,0x89,0x0b,0xc0,0xa0,0x94,0x0b,0xc5,0xac, +0x02,0x00,0x80,0x10,0xa0,0x08,0x02,0x24,0xb8,0x08,0x02,0x24,0x08,0x00,0xe0,0x03, +0xd0,0x0b,0xc2,0xac,0x28,0x08,0xa2,0x34,0x02,0x80,0x03,0x3c,0x00,0x00,0x44,0x8c, +0x38,0x15,0x66,0x24,0x70,0x08,0x02,0x24,0xe0,0x08,0x03,0x24,0x8c,0x0b,0xc2,0xac, +0x44,0x08,0x02,0x24,0x90,0x0b,0xc3,0xac,0x9c,0x0b,0xc2,0xac,0x78,0x08,0x03,0x24, +0x0c,0x08,0x02,0x24,0xa0,0x0b,0xc3,0xac,0xa4,0x0b,0xc2,0xac,0x14,0x08,0x03,0x24, +0x28,0x08,0x02,0x24,0xa8,0x0b,0xc3,0xac,0xac,0x0b,0xc2,0xac,0x2c,0x08,0x03,0x24, +0x58,0x08,0x02,0x24,0xb0,0x0b,0xc3,0xac,0xb4,0x0b,0xc2,0xac,0x58,0x0c,0x03,0x24, +0x5c,0x0c,0x02,0x24,0xb8,0x0b,0xc3,0xac,0xbc,0x0b,0xc2,0xac,0x1c,0x0c,0x03,0x24, +0x18,0x0c,0x02,0x24,0x64,0x08,0x05,0x24,0xc0,0x0b,0xc3,0xac,0xc4,0x0b,0xc2,0xac, +0x88,0x0c,0x03,0x24,0x8c,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xcc,0x0b,0xc2,0xac, +0x89,0x0b,0xc7,0xa0,0x98,0x0b,0xc5,0xac,0xc8,0x0b,0xc3,0xac,0x94,0x0b,0xc5,0xac, +0xd6,0xff,0x80,0x10,0xa4,0x08,0x02,0x24,0xbc,0x08,0x02,0x24,0x08,0x00,0xe0,0x03, +0xd0,0x0b,0xc2,0xac,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0xac,0x08,0x03,0x24, +0xd0,0x0b,0x43,0xac,0x74,0x08,0x03,0x24,0xe4,0x08,0x04,0x24,0x8c,0x0b,0x43,0xac, +0x4c,0x08,0x03,0x24,0x90,0x0b,0x44,0xac,0x9c,0x0b,0x43,0xac,0x7c,0x08,0x04,0x24, +0x0c,0x08,0x03,0x24,0xa0,0x0b,0x44,0xac,0xa4,0x0b,0x43,0xac,0x1c,0x08,0x04,0x24, +0x38,0x08,0x03,0x24,0xa8,0x0b,0x44,0xac,0xac,0x0b,0x43,0xac,0x3c,0x08,0x04,0x24, +0x5c,0x08,0x03,0x24,0xb0,0x0b,0x44,0xac,0xb4,0x0b,0x43,0xac,0x68,0x0c,0x04,0x24, +0x6c,0x0c,0x03,0x24,0xb8,0x0b,0x44,0xac,0xbc,0x0b,0x43,0xac,0x2c,0x0c,0x04,0x24, +0x28,0x0c,0x03,0x24,0x6c,0x08,0x05,0x24,0xc0,0x0b,0x44,0xac,0xc4,0x0b,0x43,0xac, +0x98,0x0c,0x04,0x24,0x9c,0x0c,0x03,0x24,0x89,0x0b,0x47,0xa0,0x98,0x0b,0x45,0xac, +0xc8,0x0b,0x44,0xac,0xcc,0x0b,0x43,0xac,0x08,0x00,0xe0,0x03,0x94,0x0b,0x45,0xac, +0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0xa8,0x08,0x03,0x24,0xd0,0x0b,0x43,0xac, +0x74,0x08,0x03,0x24,0xe4,0x08,0x04,0x24,0x8c,0x0b,0x43,0xac,0x48,0x08,0x03,0x24, +0x90,0x0b,0x44,0xac,0x9c,0x0b,0x43,0xac,0x7c,0x08,0x04,0x24,0x0c,0x08,0x03,0x24, +0xa0,0x0b,0x44,0xac,0xa4,0x0b,0x43,0xac,0x18,0x08,0x04,0x24,0x30,0x08,0x03,0x24, +0xa8,0x0b,0x44,0xac,0xac,0x0b,0x43,0xac,0x34,0x08,0x04,0x24,0x5c,0x08,0x03,0x24, +0xb0,0x0b,0x44,0xac,0xb4,0x0b,0x43,0xac,0x60,0x0c,0x04,0x24,0x64,0x0c,0x03,0x24, +0xb8,0x0b,0x44,0xac,0xbc,0x0b,0x43,0xac,0x24,0x0c,0x04,0x24,0x20,0x0c,0x03,0x24, +0x68,0x08,0x05,0x24,0xc0,0x0b,0x44,0xac,0xc4,0x0b,0x43,0xac,0x90,0x0c,0x04,0x24, +0x94,0x0c,0x03,0x24,0x89,0x0b,0x47,0xa0,0x98,0x0b,0x45,0xac,0xc8,0x0b,0x44,0xac, +0xcc,0x0b,0x43,0xac,0x08,0x00,0xe0,0x03,0x94,0x0b,0x45,0xac,0xe6,0x42,0x00,0x08, +0x21,0x18,0x00,0x00,0x20,0x00,0x62,0x2c,0x06,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x06,0x10,0x64,0x00,0x01,0x00,0x42,0x30,0xfa,0xff,0x40,0x10,0x01,0x00,0x63,0x24, +0xff,0xff,0x63,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xd8,0xff,0xbd,0x27, +0x25,0xb0,0x02,0x3c,0x18,0x00,0xb2,0xaf,0x21,0x90,0x82,0x00,0xff,0xff,0x02,0x24, +0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf, +0x21,0x88,0xa0,0x00,0x21,0x20,0xa0,0x00,0x21,0x18,0x40,0x02,0x10,0x00,0xa2,0x10, +0x21,0x98,0xc0,0x00,0x00,0x00,0x50,0x8e,0xe1,0x42,0x00,0x0c,0x00,0x00,0x00,0x00, +0x04,0x10,0x53,0x00,0x27,0x18,0x11,0x00,0x25,0x18,0x62,0x00,0x24,0x18,0x70,0x00, +0x00,0x00,0x43,0xae,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27, +0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x28,0x00,0xbd,0x27,0x00,0x00,0x66,0xac,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x21,0x30,0x80,0x00,0xd4,0x20,0x44,0x8c, +0xed,0x42,0x00,0x08,0xff,0xff,0x05,0x24,0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c, +0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x20,0x82,0x00, +0x00,0x00,0x90,0x8c,0x21,0x88,0xa0,0x00,0xe1,0x42,0x00,0x0c,0x21,0x20,0xa0,0x00, +0x24,0x80,0x11,0x02,0x06,0x10,0x50,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27, +0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,0x28,0x00,0xbf,0xaf,0x20,0x00,0xb4,0xaf, +0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x24,0x00,0xb5,0xaf,0x10,0x00,0xb0,0xaf, +0x38,0x15,0x31,0x26,0xb0,0x0b,0x22,0x8e,0x25,0xb0,0x12,0x3c,0x24,0x08,0x53,0x36, +0x21,0x10,0x52,0x00,0x00,0x00,0x70,0x8e,0x00,0x00,0x55,0x8c,0x7f,0x80,0x03,0x3c, +0xff,0x7f,0x02,0x3c,0xff,0xff,0x63,0x34,0xff,0xff,0x42,0x34,0x24,0x10,0x02,0x02, +0x24,0x18,0xa3,0x02,0xc0,0x25,0x04,0x00,0x25,0x18,0x64,0x00,0x00,0x80,0x14,0x3c, +0x00,0x00,0x62,0xae,0x01,0x00,0x04,0x24,0xf2,0x19,0x00,0x0c,0x25,0xa8,0x74,0x00, +0xb0,0x0b,0x22,0x8e,0x25,0x80,0x14,0x02,0x01,0x00,0x04,0x24,0x21,0x10,0x52,0x00, +0x00,0x00,0x55,0xac,0xf2,0x19,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xae, +0xf2,0x19,0x00,0x0c,0x01,0x00,0x04,0x24,0xd0,0x0b,0x24,0x8e,0x0f,0x00,0x05,0x3c, +0x28,0x00,0xbf,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0xff,0xa5,0x34, +0x18,0x43,0x00,0x08,0x30,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf, +0x02,0x80,0x11,0x3c,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x38,0x15,0x27,0x26, +0x8b,0x0b,0xe5,0x90,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x70,0x0d,0x63,0x24, +0x18,0x03,0x42,0x34,0x02,0x00,0x06,0x24,0x00,0x00,0x43,0xac,0x34,0x00,0xa6,0x10, +0x21,0x80,0x80,0x00,0x03,0x00,0x03,0x24,0x3a,0x00,0xa3,0x10,0x2e,0x00,0x02,0x2e, +0x10,0x00,0x02,0x2e,0x07,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xff,0x00,0x04,0x32, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x29,0x43,0x00,0x08, +0x20,0x00,0xbd,0x27,0xfa,0xff,0xa6,0x14,0xff,0x00,0x04,0x32,0x89,0x0b,0xe4,0x90, +0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10,0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x38,0x00,0x85,0x10,0x38,0x15,0x22,0x26,0x2e,0x00,0x83,0x10, +0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24,0x18,0x43,0x00,0x0c,0xff,0xff,0x05,0x24, +0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34,0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24, +0xed,0x42,0x00,0x0c,0xff,0xff,0x05,0x24,0x38,0x15,0x22,0x26,0x89,0x0b,0x44,0x90, +0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10,0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14, +0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10,0x03,0x00,0x02,0x24,0xdb,0xff,0x82,0x14, +0x00,0x00,0x00,0x00,0x38,0x15,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c, +0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00,0x72,0x43,0x00,0x08,0xff,0x00,0x04,0x32, +0x25,0x00,0x82,0x2c,0xcc,0xff,0x40,0x14,0x03,0x00,0x03,0x24,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0xc7,0xff,0x40,0x14,0x10,0x00,0x02,0x2e,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x38,0x15,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c, +0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,0x84,0x43,0x00,0x08,0x00,0x08,0x04,0x24, +0xcc,0xff,0x80,0x14,0x38,0x15,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24, +0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,0x84,0x43,0x00,0x08,0x00,0x08,0x04,0x24, +0xb2,0xff,0x80,0x14,0x00,0x00,0x00,0x00,0x38,0x15,0x22,0x26,0x8c,0x0b,0x44,0x8c, +0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00,0x72,0x43,0x00,0x08, +0xff,0x00,0x04,0x32,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c, +0x38,0x15,0x28,0x26,0x8b,0x0b,0x06,0x91,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x1c,0x0f,0x63,0x24,0x18,0x03,0x42,0x34,0x02,0x00,0x07,0x24,0x18,0x00,0xb2,0xaf, +0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,0x00,0x00,0x43,0xac,0x21,0x90,0xa0,0x00, +0x39,0x00,0xc7,0x10,0xff,0x00,0x90,0x30,0x03,0x00,0x03,0x24,0x3f,0x00,0xc3,0x10, +0x2e,0x00,0x02,0x2e,0x10,0x00,0x02,0x2e,0x0c,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x0f,0x00,0x04,0x3c,0xff,0xff,0x84,0x34,0x24,0x20,0x44,0x02,0x00,0x15,0x10,0x00, +0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x25,0x20,0x44,0x00,0x13,0x43,0x00,0x08,0x20,0x00,0xbd,0x27,0xf5,0xff,0xc7,0x14, +0x0f,0x00,0x04,0x3c,0x89,0x0b,0x04,0x91,0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10, +0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x38,0x00,0x86,0x10, +0x38,0x15,0x22,0x26,0x2e,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24, +0x18,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34, +0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24,0xed,0x42,0x00,0x0c,0xff,0xff,0x05,0x24, +0x38,0x15,0x22,0x26,0x89,0x0b,0x44,0x90,0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10, +0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10, +0x03,0x00,0x02,0x24,0xd6,0xff,0x82,0x14,0x00,0x00,0x00,0x00,0x38,0x15,0x22,0x26, +0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00, +0xdf,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0x25,0x00,0x02,0x2e,0xc7,0xff,0x40,0x14, +0x03,0x00,0x03,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xc1,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x38,0x15,0x22,0x26, +0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24, +0xf6,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xcc,0xff,0x80,0x14,0x38,0x15,0x22,0x26, +0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24, +0xf6,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xad,0xff,0x80,0x14,0x00,0x00,0x00,0x00, +0x38,0x15,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c, +0x21,0x30,0x00,0x00,0xdf,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0xe8,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0x21,0x80,0x80,0x00,0x14,0x00,0xbf,0xaf,0x29,0x43,0x00,0x0c, +0x21,0x20,0x00,0x00,0x40,0x01,0x44,0x34,0x21,0x18,0x40,0x00,0x1f,0x00,0x02,0x2e, +0x00,0x23,0x04,0x00,0x10,0x00,0x40,0x10,0x10,0x00,0x05,0x2e,0x00,0x01,0x64,0x34, +0x06,0x00,0xa0,0x10,0x00,0x23,0x04,0x00,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x13,0x43,0x00,0x0c, +0xf1,0xff,0x10,0x26,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x13,0x43,0x00,0x0c,0xe2,0xff,0x10,0x26, +0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0x25,0xb0,0x02,0x3c,0x27,0x38,0x05,0x00,0x21,0x40,0x82,0x00, +0xff,0xff,0x02,0x24,0x07,0x00,0xa2,0x10,0x25,0x38,0xe6,0x00,0x00,0x00,0x02,0x8d, +0x00,0x00,0x00,0x00,0x24,0x10,0xe2,0x00,0x00,0x00,0x02,0xad,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xad,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xd8,0xff,0xbd,0x27,0xa8,0x11,0x42,0x24, +0x18,0x03,0x63,0x34,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf, +0x24,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac, +0x21,0x88,0xa0,0x00,0x21,0x98,0xc0,0x00,0x21,0xa0,0x80,0x00,0x00,0x60,0x12,0x40, +0x01,0x00,0x41,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x0f,0x00,0x02,0x3c, +0xff,0xff,0x42,0x34,0x0a,0x00,0x22,0x12,0x21,0x28,0xc0,0x00,0x5c,0x43,0x00,0x0c, +0x00,0x00,0x00,0x00,0x21,0x20,0x20,0x02,0xe1,0x42,0x00,0x0c,0x21,0x80,0x40,0x00, +0x04,0x10,0x53,0x00,0x27,0x28,0x11,0x00,0x25,0x28,0xa2,0x00,0x24,0x28,0xb0,0x00, +0xc7,0x43,0x00,0x0c,0xff,0x00,0x84,0x32,0x00,0x60,0x92,0x40,0x24,0x00,0xbf,0x8f, +0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x01,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xe0,0xff,0xbd,0x27,0x54,0x12,0x63,0x24,0x18,0x03,0x42,0x34, +0x18,0x00,0xb2,0xaf,0x1c,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf, +0x00,0x00,0x43,0xac,0x21,0x90,0xa0,0x00,0x00,0x60,0x11,0x40,0x01,0x00,0x21,0x36, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x5c,0x43,0x00,0x0c,0x00,0x00,0x00,0x00, +0x21,0x80,0x40,0x00,0xe1,0x42,0x00,0x0c,0x21,0x20,0x40,0x02,0x24,0x80,0x12,0x02, +0x06,0x80,0x50,0x00,0x00,0x60,0x91,0x40,0x21,0x10,0x00,0x02,0x1c,0x00,0xbf,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xc8,0xff,0xbd,0x27,0x2c,0x00,0xb1,0xaf,0xff,0xff,0x05,0x24, +0x21,0x88,0x80,0x00,0x02,0x00,0x06,0x24,0x10,0x00,0xa4,0x27,0x34,0x00,0xbf,0xaf, +0x30,0x00,0xb2,0xaf,0x58,0x45,0x00,0x0c,0x28,0x00,0xb0,0xaf,0x08,0x00,0x30,0x96, +0x02,0x80,0x02,0x3c,0x21,0x28,0x00,0x00,0x25,0x80,0x02,0x02,0x21,0x20,0x00,0x02, +0x58,0x45,0x00,0x0c,0x10,0x00,0x06,0x24,0x20,0x00,0x02,0x96,0x24,0x00,0x04,0x26, +0x10,0x00,0xa5,0x27,0x03,0xff,0x42,0x30,0xc8,0x00,0x42,0x34,0x20,0x00,0x02,0xa6, +0x60,0x45,0x00,0x0c,0x06,0x00,0x06,0x24,0x25,0xb0,0x03,0x3c,0x50,0x00,0x62,0x34, +0x00,0x00,0x44,0x8c,0x54,0x00,0x65,0x34,0x58,0x00,0x66,0x34,0x18,0x00,0xa4,0xaf, +0x00,0x00,0xa2,0x8c,0x5c,0x00,0x63,0x34,0x2a,0x00,0x04,0x26,0x1c,0x00,0xa2,0xaf, +0x00,0x00,0xc7,0x8c,0x18,0x00,0xa5,0x27,0x06,0x00,0x06,0x24,0x20,0x00,0xa7,0xaf, +0x00,0x00,0x62,0x8c,0x1a,0x00,0x12,0x24,0x60,0x45,0x00,0x0c,0x24,0x00,0xa2,0xaf, +0x30,0x00,0x04,0x26,0x20,0x00,0xa5,0x27,0x60,0x45,0x00,0x0c,0x06,0x00,0x06,0x24, +0x13,0x00,0x03,0x24,0x14,0x00,0x23,0xae,0x0c,0x00,0x32,0xae,0x08,0x00,0x05,0x8e, +0x04,0x00,0x04,0x8e,0xff,0xdf,0x02,0x3c,0x14,0x00,0x06,0x8e,0xff,0xff,0x42,0x34, +0x10,0x00,0x07,0x8e,0xff,0xe0,0x03,0x24,0x24,0x28,0xa2,0x00,0x00,0x40,0x02,0x3c, +0x24,0x20,0x83,0x00,0x25,0x28,0xa2,0x00,0xff,0x81,0x03,0x24,0xfe,0xff,0x02,0x3c, +0x24,0x30,0xc3,0x00,0xff,0xff,0x42,0x34,0x00,0x12,0x84,0x34,0x00,0x80,0x03,0x3c, +0x24,0x20,0x82,0x00,0x25,0x38,0xe3,0x00,0x00,0x26,0xc6,0x34,0x80,0x00,0xa5,0x34, +0x20,0x00,0x02,0x24,0x00,0x00,0x12,0xa6,0x10,0x00,0x07,0xae,0x02,0x00,0x02,0xa2, +0x14,0x00,0x06,0xae,0x04,0x00,0x04,0xae,0x08,0x00,0x05,0xae,0x34,0x00,0xbf,0x8f, +0x30,0x00,0xb2,0x8f,0x2c,0x00,0xb1,0x8f,0x28,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x38,0x00,0xbd,0x27,0x54,0x45,0x00,0x08,0xff,0x00,0xa5,0x30,0x00,0x00,0x85,0xa0, +0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24,0xfc,0xff,0xc0,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x05,0x00,0xc0,0x10,0x00,0x00,0x00,0x00, +0x00,0x00,0x85,0xac,0xff,0xff,0xc6,0x24,0xfd,0xff,0xc0,0x14,0x04,0x00,0x84,0x24, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10, +0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24,0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24, +0x01,0x00,0xa5,0x24,0x00,0x00,0xe2,0xa0,0xfb,0xff,0x66,0x14,0x01,0x00,0xe7,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10, +0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24,0x00,0x00,0xa2,0x8c,0xff,0xff,0x63,0x24, +0x04,0x00,0xa5,0x24,0x00,0x00,0xe2,0xac,0xfb,0xff,0x66,0x14,0x04,0x00,0xe7,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x2b,0x10,0xa4,0x00,0x0d,0x00,0x40,0x14, +0xff,0xff,0x02,0x24,0xff,0xff,0xc6,0x24,0x08,0x00,0xc2,0x10,0x21,0x18,0x80,0x00, +0xff,0xff,0x07,0x24,0x00,0x00,0xa2,0x90,0xff,0xff,0xc6,0x24,0x01,0x00,0xa5,0x24, +0x00,0x00,0x62,0xa0,0xfb,0xff,0xc7,0x14,0x01,0x00,0x63,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x80,0x00,0x21,0x28,0xa6,0x00,0x21,0x18,0x86,0x00,0xff,0xff,0xc6,0x24, +0xfa,0xff,0xc2,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0x07,0x24,0xff,0xff,0xa5,0x24, +0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24,0xff,0xff,0xc6,0x24,0xfb,0xff,0xc7,0x14, +0x00,0x00,0x62,0xa0,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x0c,0x00,0xc0,0x10, +0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x90,0x00,0x00,0xa3,0x90,0x01,0x00,0x84,0x24, +0x23,0x10,0x43,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x04,0x00,0x40,0x14, +0x01,0x00,0xa5,0x24,0xff,0xff,0xc6,0x24,0xf6,0xff,0xc0,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0xc0,0x00,0xab,0x45,0x00,0x08,0x21,0x18,0x86,0x00, +0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x45,0x10,0x00,0x00,0x00,0x00, +0x01,0x00,0x84,0x24,0xfa,0xff,0x83,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x80,0x00,0x09,0x00,0xc0,0x10,0xff,0xff,0xc3,0x24,0xff,0x00,0xa5,0x30, +0xff,0xff,0x06,0x24,0x00,0x00,0x82,0x90,0xff,0xff,0x63,0x24,0x05,0x00,0x45,0x10, +0x01,0x00,0x84,0x24,0xfb,0xff,0x66,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0xff,0xff,0x82,0x24,0x21,0x38,0x00,0x00, +0x1f,0x00,0xc0,0x10,0x21,0x18,0x00,0x00,0x02,0x80,0x02,0x3c,0x40,0x92,0x4b,0x24, +0x00,0x00,0x87,0x90,0x00,0x00,0xa3,0x90,0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24, +0x21,0x10,0xeb,0x00,0x16,0x00,0xe0,0x10,0x01,0x00,0xa5,0x24,0x14,0x00,0x60,0x10, +0x21,0x48,0x6b,0x00,0x10,0x00,0xe3,0x10,0x20,0x00,0xe8,0x24,0x00,0x00,0x42,0x90, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x02,0x00,0x40,0x10,0x20,0x00,0x6a,0x24, +0xff,0x00,0x07,0x31,0x00,0x00,0x22,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30, +0x02,0x00,0x40,0x10,0xff,0x00,0xe7,0x30,0xff,0x00,0x43,0x31,0xff,0x00,0x63,0x30, +0x03,0x00,0xe3,0x14,0x00,0x00,0x00,0x00,0xe5,0xff,0xc0,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x23,0x10,0xe3,0x00,0x21,0x18,0x80,0x00,0x00,0x00,0xa2,0x90, +0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0xfc,0xff,0x40,0x14,0x01,0x00,0x84,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x21,0x38,0x80,0x00,0xff,0xff,0x03,0x24, +0xff,0xff,0xc6,0x24,0x06,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90, +0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0xf9,0xff,0x40,0x14,0x01,0x00,0x84,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00,0x00,0x00,0x82,0x80,0xfa,0x45,0x00,0x08, +0x21,0x18,0x80,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00, +0xfc,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24, +0x00,0x00,0x82,0xa0,0xfc,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x12,0x00,0xc0,0x10,0x21,0x18,0x80,0x00,0x00,0x00,0x82,0x80, +0x0b,0x46,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x80, +0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90, +0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0x05,0x00,0x40,0x10,0x01,0x00,0x84,0x24, +0xff,0xff,0xc6,0x24,0xf9,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xa0, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x00,0x00,0x83,0x90,0x00,0x00,0xa2,0x90, +0x01,0x00,0x84,0x24,0x23,0x10,0x62,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00, +0x03,0x00,0x40,0x14,0x01,0x00,0xa5,0x24,0xf7,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x21,0x10,0x00,0x00,0x0b,0x00,0xc0,0x10, +0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x00,0x00,0x83,0x90,0xff,0xff,0xc6,0x24, +0x23,0x10,0x62,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x03,0x00,0x40,0x14, +0x01,0x00,0xa5,0x24,0xf5,0xff,0x60,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x80,0x00,0x2e,0x05,0x00,0x21,0x10,0x80,0x00, +0x3c,0x46,0x00,0x08,0x03,0x2e,0x05,0x00,0x07,0x00,0x60,0x10,0x01,0x00,0x42,0x24, +0x00,0x00,0x43,0x80,0x00,0x00,0x00,0x00,0xfb,0xff,0x65,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x00,0x00,0x82,0x80,0x48,0x46,0x00,0x08,0x21,0x18,0x80,0x00,0x01,0x00,0x63,0x24, +0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,0x23,0x10,0x64,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf, +0x21,0x80,0xa0,0x00,0x14,0x00,0xb1,0xaf,0x18,0x00,0xbf,0xaf,0x21,0x88,0x80,0x00, +0x42,0x46,0x00,0x0c,0x00,0x86,0x10,0x00,0x21,0x18,0x51,0x00,0x03,0x86,0x10,0x00, +0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00,0x0a,0x00,0x50,0x10,0x21,0x10,0x60,0x00, +0xff,0xff,0x63,0x24,0x2b,0x10,0x71,0x00,0xf9,0xff,0x40,0x10,0x21,0x10,0x00,0x00, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x21,0x30,0x80,0x00,0x0d,0x00,0xa0,0x10, +0xff,0xff,0xa3,0x24,0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00,0x09,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x24,0xff,0xff,0x63,0x24,0x05,0x00,0x65,0x10, +0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x80,0x00,0x00,0x00,0x00,0xfa,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x23,0x10,0xc4,0x00,0x00,0x00,0x82,0x90, +0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10,0x21,0x40,0x00,0x00,0x00,0x00,0xa9,0x80, +0x00,0x00,0x00,0x00,0x17,0x00,0x20,0x11,0x21,0x30,0xa0,0x00,0x00,0x3e,0x02,0x00, +0x03,0x3e,0x07,0x00,0x21,0x18,0x20,0x01,0x15,0x00,0xe3,0x10,0x00,0x00,0x00,0x00, +0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0x00,0x1e,0x02,0x00, +0x03,0x1e,0x03,0x00,0xf8,0xff,0x60,0x14,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00, +0x06,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x90, +0x00,0x00,0x00,0x00,0xeb,0xff,0x40,0x14,0x01,0x00,0x08,0x25,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x01,0x00,0x00,0xa2,0x90,0x8d,0x46,0x00,0x08,0x00,0x16,0x02,0x00, +0x00,0x00,0xc2,0x90,0x8d,0x46,0x00,0x08,0x00,0x16,0x02,0x00,0x00,0x00,0x87,0x90, +0x00,0x00,0x00,0x00,0x14,0x00,0xe0,0x10,0x21,0x10,0x80,0x00,0x00,0x00,0xa4,0x90, +0x00,0x00,0x00,0x00,0x00,0x1e,0x04,0x00,0x03,0x1e,0x03,0x00,0x09,0x00,0x60,0x10, +0x21,0x30,0xa0,0x00,0x00,0x3e,0x07,0x00,0x03,0x3e,0x07,0x00,0x0b,0x00,0xe3,0x10, +0x01,0x00,0xc6,0x24,0x00,0x00,0xc3,0x80,0x00,0x00,0x00,0x00,0xfb,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0x00,0x00,0x47,0x90,0x00,0x00,0x00,0x00, +0xf0,0xff,0xe0,0x14,0x00,0x00,0x00,0x00,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf, +0x18,0x00,0xbf,0xaf,0x21,0x80,0x80,0x00,0x1d,0x00,0x80,0x10,0x21,0x88,0xa0,0x00, +0x79,0x46,0x00,0x0c,0x21,0x20,0x00,0x02,0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82, +0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0x22,0x00,0x40,0x10,0x21,0x18,0x00,0x00, +0x9d,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x05,0x00,0x40,0x10,0x21,0x18,0x40,0x00, +0x00,0x00,0x42,0x80,0x00,0x00,0x00,0x00,0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x02,0x80,0x02,0x3c,0x70,0x93,0x43,0xac,0x21,0x18,0x00,0x02,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x00,0x00,0x60,0xa0,0xce,0x46,0x00,0x08,0x01,0x00,0x63,0x24, +0x02,0x80,0x02,0x3c,0x70,0x93,0x50,0x8c,0x00,0x00,0x00,0x00,0xf3,0xff,0x00,0x12, +0x21,0x18,0x00,0x00,0x79,0x46,0x00,0x0c,0x21,0x20,0x00,0x02,0x21,0x80,0x02,0x02, +0x00,0x00,0x02,0x82,0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0xe0,0xff,0x40,0x14, +0x21,0x18,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x02,0x80,0x02,0x3c,0x70,0x93,0x40,0xac,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0xe0,0xff,0xbd,0x27,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf, +0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x90,0x8c,0x21,0x90,0x80,0x00, +0x21,0x88,0xa0,0x00,0x21,0x18,0x00,0x00,0x0f,0x00,0x00,0x12,0x21,0x20,0x00,0x02, +0x79,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82, +0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0x07,0x00,0x40,0x10,0x21,0x18,0x00,0x00, +0x9d,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x18,0x40,0x00,0x09,0x00,0x40,0x14, +0x00,0x00,0x42,0xae,0x21,0x18,0x00,0x02,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x00,0x00,0x42,0x80,0x00,0x00,0x00,0x00,0xf5,0xff,0x40,0x10, +0x01,0x00,0x64,0x24,0x00,0x00,0x60,0xa0,0x07,0x47,0x00,0x08,0x00,0x00,0x44,0xae, +0xd8,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x21,0x88,0x80,0x00,0x21,0x20,0xa0,0x00, +0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf, +0x42,0x46,0x00,0x0c,0x21,0x98,0xa0,0x00,0x21,0x90,0x40,0x00,0x08,0x00,0x40,0x16, +0x21,0x10,0x20,0x02,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27, +0x42,0x46,0x00,0x0c,0x21,0x20,0x20,0x02,0x21,0x80,0x40,0x00,0x2a,0x10,0x52,0x00, +0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x02, +0x21,0x30,0x40,0x02,0x95,0x45,0x00,0x0c,0xff,0xff,0x10,0x26,0x0b,0x00,0x40,0x10, +0x2a,0x18,0x12,0x02,0xf8,0xff,0x60,0x10,0x01,0x00,0x31,0x26,0x20,0x00,0xbf,0x8f, +0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x23,0x47,0x00,0x08, +0x21,0x10,0x20,0x02,0x00,0x00,0x87,0x90,0x00,0x00,0x00,0x00,0x27,0x00,0xe0,0x10, +0x00,0x00,0x00,0x00,0x00,0x00,0xa6,0x90,0x00,0x00,0x00,0x00,0x0a,0x00,0xc0,0x10, +0xdf,0xff,0x02,0x24,0x24,0x18,0xc2,0x00,0x24,0x10,0xe2,0x00,0x00,0x16,0x02,0x00, +0x00,0x1e,0x03,0x00,0x03,0x16,0x02,0x00,0x03,0x1e,0x03,0x00,0x0a,0x00,0x43,0x10, +0x00,0x00,0x00,0x00,0xdf,0xff,0x02,0x24,0x24,0x18,0xc2,0x00,0x24,0x10,0xe2,0x00, +0x00,0x16,0x02,0x00,0x00,0x1e,0x03,0x00,0x03,0x1e,0x03,0x00,0x03,0x16,0x02,0x00, +0x08,0x00,0xe0,0x03,0x23,0x10,0x43,0x00,0x66,0x47,0x00,0x08,0xdf,0xff,0x08,0x24, +0x00,0x00,0xa6,0x90,0x00,0x00,0x00,0x00,0x24,0x10,0x06,0x01,0x00,0x16,0x02,0x00, +0xf0,0xff,0xc0,0x10,0x03,0x16,0x02,0x00,0xef,0xff,0x62,0x14,0xdf,0xff,0x02,0x24, +0x01,0x00,0x84,0x24,0x00,0x00,0x87,0x90,0x01,0x00,0xa5,0x24,0x24,0x10,0x07,0x01, +0x00,0x1e,0x02,0x00,0xf2,0xff,0xe0,0x14,0x03,0x1e,0x03,0x00,0x00,0x00,0xa6,0x90, +0xdf,0xff,0x02,0x24,0x24,0x18,0xc2,0x00,0x24,0x10,0xe2,0x00,0x00,0x16,0x02,0x00, +0x00,0x1e,0x03,0x00,0x03,0x1e,0x03,0x00,0x03,0x16,0x02,0x00,0x08,0x00,0xe0,0x03, +0x23,0x10,0x43,0x00,0xa8,0xff,0xbd,0x27,0x44,0x00,0xb5,0xaf,0x40,0x00,0xb4,0xaf, +0x38,0x00,0xb2,0xaf,0x34,0x00,0xb1,0xaf,0x54,0x00,0xbf,0xaf,0x50,0x00,0xbe,0xaf, +0x4c,0x00,0xb7,0xaf,0x48,0x00,0xb6,0xaf,0x3c,0x00,0xb3,0xaf,0x30,0x00,0xb0,0xaf, +0x21,0x90,0xa0,0x00,0x00,0x00,0xa5,0x90,0x21,0xa8,0x80,0x00,0x21,0xa0,0xc0,0x00, +0x00,0x26,0x05,0x00,0x03,0x26,0x04,0x00,0x0f,0x00,0x80,0x10,0x21,0x88,0xa0,0x02, +0x25,0x00,0x02,0x24,0x1b,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x58,0x00,0xa0,0x12, +0x00,0x00,0x00,0x00,0x00,0x00,0x25,0xa2,0x01,0x00,0x31,0x26,0x01,0x00,0x52,0x26, +0x00,0x00,0x45,0x92,0x00,0x00,0x00,0x00,0x00,0x26,0x05,0x00,0x03,0x26,0x04,0x00, +0xf4,0xff,0x80,0x14,0x25,0x00,0x02,0x24,0x02,0x00,0xa0,0x12,0x23,0x10,0x35,0x02, +0x00,0x00,0x20,0xa2,0x54,0x00,0xbf,0x8f,0x50,0x00,0xbe,0x8f,0x4c,0x00,0xb7,0x8f, +0x48,0x00,0xb6,0x8f,0x44,0x00,0xb5,0x8f,0x40,0x00,0xb4,0x8f,0x3c,0x00,0xb3,0x8f, +0x38,0x00,0xb2,0x8f,0x34,0x00,0xb1,0x8f,0x30,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x58,0x00,0xbd,0x27,0x01,0x00,0x52,0x26,0x00,0x00,0x44,0x92,0x73,0x00,0x02,0x24, +0x00,0x1e,0x04,0x00,0x03,0x1e,0x03,0x00,0x2c,0x00,0x62,0x10,0x10,0x00,0xb3,0x27, +0x23,0x00,0x02,0x24,0x21,0xf0,0x60,0x02,0x21,0x38,0x00,0x00,0x3b,0x00,0x62,0x10, +0x1c,0x00,0x05,0x24,0x00,0x16,0x04,0x00,0x03,0x16,0x02,0x00,0x68,0x00,0x03,0x24, +0x3d,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x00,0x16,0x04,0x00,0x03,0x16,0x02,0x00, +0x40,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x20,0x00,0x82,0x34,0x00,0x16,0x02,0x00, +0x03,0x16,0x02,0x00,0x78,0x00,0x03,0x24,0x43,0x00,0x43,0x10,0x20,0x00,0x86,0x30, +0x00,0x1e,0x04,0x00,0x03,0x1e,0x03,0x00,0x64,0x00,0x02,0x24,0x50,0x00,0x62,0x10, +0x40,0x00,0x02,0x24,0x82,0x00,0x62,0x10,0x21,0x00,0x02,0x24,0x93,0x00,0x62,0x10, +0x63,0x00,0x02,0x24,0x75,0x00,0x62,0x10,0x11,0x00,0xb3,0x27,0x10,0x00,0xa4,0xa3, +0x21,0x80,0xc0,0x03,0x2b,0x10,0x13,0x02,0xc0,0xff,0x40,0x10,0x00,0x00,0x00,0x00, +0xa1,0x00,0xa0,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x92,0x01,0x00,0x10,0x26, +0x00,0x00,0x22,0xa2,0xcf,0x47,0x00,0x08,0x01,0x00,0x31,0x26,0x00,0x00,0x82,0x8e, +0x04,0x00,0x94,0x26,0x21,0x80,0x40,0x00,0x00,0x00,0x02,0x92,0x00,0x00,0x00,0x00, +0xb2,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x64,0x00,0xa0,0x12,0x00,0x00,0x00,0x00, +0x00,0x00,0x22,0xa2,0x01,0x00,0x10,0x26,0xdc,0x47,0x00,0x08,0x01,0x00,0x31,0x26, +0x94,0x48,0x00,0x0c,0x01,0x00,0x52,0x26,0x00,0x00,0x45,0x92,0x00,0x00,0x00,0x00, +0x00,0x26,0x05,0x00,0x96,0x47,0x00,0x08,0x03,0x26,0x04,0x00,0x01,0x00,0x52,0x26, +0x00,0x00,0x44,0x92,0x68,0x00,0x03,0x24,0x00,0x16,0x04,0x00,0x03,0x16,0x02,0x00, +0xc5,0xff,0x43,0x14,0x01,0x00,0x07,0x24,0x01,0x00,0x52,0x26,0x00,0x00,0x44,0x92, +0x00,0x00,0x00,0x00,0x00,0x16,0x04,0x00,0x03,0x16,0x02,0x00,0xc2,0xff,0x43,0x14, +0x0c,0x00,0x05,0x24,0x01,0x00,0x52,0x26,0x00,0x00,0x44,0x92,0x78,0x00,0x03,0x24, +0x20,0x00,0x82,0x34,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0xc0,0xff,0x43,0x14, +0x04,0x00,0x05,0x24,0x20,0x00,0x86,0x30,0x00,0x00,0x84,0x8e,0x35,0x00,0xe0,0x14, +0x04,0x00,0x94,0x26,0xc6,0xff,0xa0,0x04,0x02,0x80,0x02,0x3c,0x80,0x8e,0x42,0x24, +0x00,0x00,0x47,0x8c,0x07,0x10,0xa4,0x00,0x0f,0x00,0x42,0x30,0x21,0x10,0x47,0x00, +0x00,0x00,0x43,0x90,0xfc,0xff,0xa5,0x24,0x25,0x18,0xc3,0x00,0x00,0x00,0x63,0xa2, +0xf8,0xff,0xa1,0x04,0x01,0x00,0x73,0x26,0xcf,0x47,0x00,0x08,0x21,0x80,0xc0,0x03, +0x00,0x00,0x82,0x8e,0x04,0x00,0x94,0x26,0x56,0x00,0x40,0x04,0x21,0x28,0x40,0x00, +0x21,0x80,0x60,0x02,0x02,0x80,0x02,0x3c,0x84,0x8e,0x42,0x24,0x00,0x00,0x46,0x8c, +0x00,0x00,0x00,0x00,0x18,0x00,0xa6,0x00,0xc3,0x27,0x05,0x00,0x10,0x10,0x00,0x00, +0x83,0x10,0x02,0x00,0x23,0x10,0x44,0x00,0x80,0x18,0x02,0x00,0x21,0x18,0x62,0x00, +0x40,0x18,0x03,0x00,0x23,0x18,0xa3,0x00,0x30,0x00,0x63,0x24,0x00,0x00,0x63,0xa2, +0x21,0x28,0x40,0x00,0xf3,0xff,0x40,0x14,0x01,0x00,0x73,0x26,0x36,0x48,0x00,0x08, +0xff,0xff,0x63,0x26,0x00,0x00,0x65,0x80,0x00,0x00,0x02,0x92,0x00,0x00,0x00,0x00, +0x00,0x00,0x62,0xa0,0x00,0x00,0x05,0xa2,0xff,0xff,0x63,0x24,0x01,0x00,0x10,0x26, +0x2b,0x10,0x03,0x02,0xf7,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0xcf,0x47,0x00,0x08, +0x21,0x80,0xc0,0x03,0x58,0x00,0xc3,0x34,0x30,0x00,0x02,0x24,0x12,0x00,0xb3,0x27, +0x10,0x00,0xa2,0xa3,0x07,0x48,0x00,0x08,0x11,0x00,0xa3,0xa3,0x00,0x00,0x82,0x8e, +0x04,0x00,0x94,0x26,0xce,0x47,0x00,0x08,0x10,0x00,0xa2,0xa3,0x00,0x00,0x04,0x82, +0x94,0x48,0x00,0x0c,0x01,0x00,0x10,0x26,0xdc,0x47,0x00,0x08,0x00,0x00,0x00,0x00, +0x00,0x00,0x83,0x8e,0x28,0x00,0xb0,0x27,0x2c,0x00,0xa4,0x27,0x2b,0x10,0x04,0x02, +0x28,0x00,0xa3,0xaf,0x0b,0x00,0x40,0x10,0x04,0x00,0x94,0x26,0x21,0xb8,0x80,0x00, +0x02,0x80,0x16,0x3c,0x00,0x00,0x06,0x92,0x21,0x20,0x60,0x02,0x01,0x00,0x10,0x26, +0x79,0x48,0x00,0x0c,0x54,0x89,0xc5,0x26,0x2b,0x18,0x17,0x02,0xf9,0xff,0x60,0x14, +0x21,0x98,0x62,0x02,0xce,0x47,0x00,0x08,0xff,0xff,0x73,0x26,0x00,0x00,0x82,0x8e, +0x00,0x00,0x00,0x00,0x06,0x00,0x56,0x24,0x21,0x80,0x40,0x00,0x2b,0x10,0x56,0x00, +0xf8,0xff,0x40,0x10,0x04,0x00,0x94,0x26,0x02,0x80,0x17,0x3c,0x00,0x00,0x06,0x82, +0x21,0x20,0x60,0x02,0x01,0x00,0x10,0x26,0x79,0x48,0x00,0x0c,0x58,0x89,0xe5,0x26, +0x2b,0x18,0x16,0x02,0xf9,0xff,0x60,0x14,0x21,0x98,0x62,0x02,0xce,0x47,0x00,0x08, +0xff,0xff,0x73,0x26,0x2d,0x00,0x02,0x24,0x23,0x28,0x05,0x00,0x11,0x00,0xb3,0x27, +0x1a,0x48,0x00,0x08,0x10,0x00,0xa2,0xa3,0x00,0x00,0x04,0x82,0x94,0x48,0x00,0x0c, +0x01,0x00,0x10,0x26,0xd0,0x47,0x00,0x08,0x2b,0x10,0x13,0x02,0xe8,0xff,0xbd,0x27, +0x20,0x00,0xa6,0xaf,0x20,0x00,0xa6,0x27,0x10,0x00,0xbf,0xaf,0x24,0x00,0xa7,0xaf, +0x77,0x47,0x00,0x0c,0x1c,0x00,0xa5,0xaf,0x10,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf, +0x02,0x80,0x06,0x3c,0x74,0x93,0xc5,0x8c,0x02,0x80,0x02,0x3c,0x40,0x93,0x42,0x24, +0x03,0x00,0xa3,0x30,0x21,0x18,0x62,0x00,0x00,0x00,0x64,0x80,0x01,0x00,0xa5,0x24, +0x94,0x48,0x00,0x0c,0x74,0x93,0xc5,0xac,0x10,0x00,0xbf,0x8f,0x08,0x00,0x04,0x24, +0x94,0x48,0x00,0x08,0x18,0x00,0xbd,0x27,0x00,0x26,0x04,0x00,0x03,0x26,0x04,0x00, +0x00,0x00,0x84,0x48,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x26,0x04,0x00, +0x03,0x26,0x04,0x00,0xf7,0xff,0x82,0x24,0x05,0x00,0x42,0x2c,0x06,0x00,0x40,0x14, +0x21,0x18,0x00,0x00,0x20,0x00,0x02,0x24,0x03,0x00,0x82,0x10,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x25,0xb0,0x05,0x3c,0x01,0x00,0x06,0x24,0x01,0x80,0x02,0x3c, +0x04,0x30,0x86,0x00,0xf1,0x02,0xa7,0x34,0xed,0x02,0xa4,0x34,0x9c,0x22,0x42,0x24, +0x18,0x03,0xa5,0x34,0x08,0x00,0x03,0x24,0x00,0x00,0xa2,0xac,0x00,0x00,0xe3,0xa0, +0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0, +0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0, +0x00,0x00,0x80,0xa0,0x00,0x00,0xe0,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xff,0xff,0x84,0x30,0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x02,0x80,0x05,0x3c,0x38,0x15,0xa5,0x24,0xf2,0x23,0xa3,0x94, +0x25,0xb0,0x02,0x3c,0x1e,0x03,0x42,0x34,0x25,0x20,0x83,0x00,0x00,0x00,0x44,0xa4, +0xf2,0x23,0xa4,0xa4,0x00,0x60,0x86,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xff,0xff,0x84,0x30,0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x02,0x80,0x05,0x3c,0x38,0x15,0xa5,0x24,0xf2,0x23,0xa2,0x94, +0x60,0x24,0xa3,0x94,0x27,0x20,0x04,0x00,0x24,0x18,0x83,0x00,0x24,0x20,0x82,0x00, +0x25,0xb0,0x02,0x3c,0x1e,0x03,0x42,0x34,0x60,0x24,0xa3,0xa4,0x00,0x00,0x44,0xa4, +0xf2,0x23,0xa4,0xa4,0x00,0x60,0x86,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x02,0x80,0x04,0x3c,0x38,0x15,0x84,0x24,0x14,0x00,0x05,0x24,0x02,0x80,0x02,0x3c, +0x01,0x00,0x03,0x24,0x84,0x93,0x45,0xac,0x68,0x24,0x83,0xa0,0x08,0x00,0xe0,0x03, +0x6e,0x24,0x80,0xa4,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x84,0x93,0x40,0xac, +0x08,0x00,0xe0,0x03,0xa0,0x39,0x60,0xa0,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c, +0xc0,0x23,0x42,0x24,0x18,0x03,0x63,0x34,0x00,0x00,0x62,0xac,0x00,0x00,0x83,0x90, +0x30,0x00,0x02,0x24,0x05,0x00,0x62,0x10,0x21,0x20,0x00,0x00,0x31,0x00,0x02,0x24, +0x02,0x00,0x62,0x10,0x01,0x00,0x04,0x24,0x07,0x00,0x04,0x24,0xa7,0x48,0x00,0x08, +0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xfc,0x23,0x42,0x24, +0x18,0x03,0x63,0x34,0x02,0x80,0x04,0x3c,0x00,0x00,0x62,0xac,0x08,0x00,0xe0,0x03, +0xec,0x3d,0x80,0xac,0x02,0x80,0x02,0x3c,0x54,0x3b,0x42,0x24,0xc0,0x20,0x04,0x00, +0x21,0x20,0x82,0x00,0x21,0x28,0x00,0x00,0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x09,0x00,0x44,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x43,0x8c,0x21,0x28,0x40,0x00, +0x00,0x00,0x42,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xac,0x04,0x00,0x43,0xac, +0x00,0x00,0xa5,0xac,0x04,0x00,0xa5,0xac,0x00,0x60,0x86,0x40,0x08,0x00,0xe0,0x03, +0x21,0x10,0xa0,0x00,0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x21,0x80,0x80,0x00, +0x01,0x01,0x02,0x2e,0x14,0x00,0xbf,0xaf,0x01,0x00,0x04,0x24,0x01,0x02,0x03,0x2e, +0x0b,0x00,0x40,0x14,0x21,0x28,0x00,0x00,0x02,0x00,0x04,0x24,0x08,0x00,0x60,0x14, +0x01,0x08,0x02,0x2e,0x06,0x00,0x40,0x14,0x03,0x00,0x04,0x24,0x14,0x00,0xbf,0x8f, +0x10,0x00,0xb0,0x8f,0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27, +0x07,0x49,0x00,0x0c,0x00,0x00,0x00,0x00,0xf8,0xff,0x40,0x10,0x21,0x28,0x40,0x00, +0x0c,0x00,0x50,0xac,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0xa0,0x00, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x02,0x80,0x03,0x3c,0x6c,0x3b,0x62,0x8c, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x10,0x00,0x83,0x8c,0x02,0x80,0x02,0x3c, +0x54,0x3b,0x42,0x24,0xc0,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0x65,0x8c, +0x02,0x80,0x07,0x3c,0x02,0x80,0x08,0x3c,0x00,0x00,0x85,0xac,0x04,0x00,0xa4,0xac, +0x04,0x00,0x83,0xac,0xb8,0x3e,0xe5,0x8c,0x00,0x00,0x00,0x00,0x05,0x00,0xa0,0x10, +0x00,0x00,0x64,0xac,0xa4,0x3e,0x02,0x8d,0xb8,0x3e,0xe0,0xac,0x25,0x10,0x45,0x00, +0xa4,0x3e,0x02,0xad,0x00,0x60,0x86,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0xc0,0x80,0x04,0x00, +0x21,0x10,0x04,0x02,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x02,0x80,0x06,0x3c, +0x14,0x00,0xb1,0xaf,0x80,0x10,0x02,0x00,0x21,0x88,0x80,0x00,0xff,0x1f,0x03,0x3c, +0x38,0x15,0xc4,0x24,0x21,0x20,0x44,0x00,0xff,0xff,0x63,0x34,0x25,0xb0,0x02,0x3c, +0x84,0x01,0x42,0x34,0x18,0x00,0xbf,0xaf,0x88,0x11,0x83,0xac,0x00,0x00,0x43,0x8c, +0x08,0x00,0x22,0x2a,0x07,0x00,0x25,0x32,0x28,0x00,0x40,0x10,0x8c,0x11,0x83,0xac, +0x90,0x11,0x82,0x8c,0xf8,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x25,0x10,0x45,0x00, +0x90,0x11,0x82,0xac,0x21,0x80,0x11,0x02,0x80,0x80,0x10,0x00,0x21,0x80,0x11,0x02, +0x38,0x15,0xc2,0x24,0x80,0x80,0x10,0x00,0x21,0x80,0x02,0x02,0x90,0x11,0x03,0x8e, +0xff,0xfe,0x02,0x24,0xff,0xef,0x05,0x24,0x24,0x18,0x62,0x00,0xff,0xff,0x02,0x3c, +0xff,0x1f,0x42,0x34,0x24,0x18,0x65,0x00,0x24,0x18,0x62,0x00,0x90,0x11,0x03,0xae, +0x88,0x1d,0x00,0x0c,0x21,0x20,0x20,0x02,0x92,0x11,0x03,0x92,0x25,0xb0,0x02,0x3c, +0x21,0x10,0x22,0x02,0x60,0x01,0x43,0xa0,0x18,0x00,0xbf,0x8f,0x7c,0x11,0x00,0xae, +0x60,0x11,0x00,0xae,0x64,0x11,0x00,0xae,0x68,0x11,0x00,0xae,0x6c,0x11,0x00,0xae, +0x70,0x11,0x00,0xae,0x74,0x11,0x00,0xae,0x78,0x11,0x00,0xae,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x90,0x11,0x83,0x8c, +0xf8,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0x7f,0x49,0x00,0x08,0x90,0x11,0x83,0xac, +0xff,0x00,0xa5,0x30,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x45,0x00,0x02,0x80,0x03,0x3c,0x38,0x15,0x63,0x24,0x80,0x10,0x02,0x00, +0x21,0x10,0x43,0x00,0x90,0x11,0x43,0x8c,0x25,0xb0,0x05,0x3c,0xff,0x00,0xc6,0x30, +0x21,0x30,0xc5,0x00,0xaf,0x01,0xc2,0x90,0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00, +0x21,0x18,0x65,0x00,0xff,0x00,0x88,0x30,0xff,0x00,0x49,0x30,0x84,0x01,0x66,0x8c, +0x21,0x50,0x00,0x00,0x21,0x58,0x00,0x00,0x2b,0x00,0x20,0x11,0x21,0x20,0x00,0x01, +0x2b,0x00,0xc0,0x10,0x2b,0x10,0x09,0x01,0x21,0x28,0x00,0x00,0xc7,0x49,0x00,0x08, +0x01,0x00,0x07,0x24,0xff,0x00,0x65,0x30,0x1d,0x00,0xa2,0x2c,0x07,0x00,0x40,0x10, +0xff,0xff,0x02,0x25,0x04,0x10,0xa7,0x00,0x24,0x10,0x46,0x00,0xf9,0xff,0x40,0x10, +0x01,0x00,0xa3,0x24,0x21,0x58,0xa0,0x00,0xff,0xff,0x02,0x25,0xff,0x00,0x45,0x30, +0x2b,0x18,0xab,0x00,0x0f,0x00,0x60,0x14,0x2b,0x10,0x49,0x01,0x01,0x00,0x04,0x24, +0x04,0x10,0xa4,0x00,0x24,0x10,0x46,0x00,0xff,0xff,0xa7,0x24,0x04,0x00,0x40,0x10, +0x01,0x00,0x43,0x25,0x17,0x00,0x49,0x11,0xff,0x00,0x6a,0x30,0x21,0x40,0xa0,0x00, +0xff,0x00,0xe5,0x30,0x2b,0x10,0xab,0x00,0xf6,0xff,0x40,0x10,0x04,0x10,0xa4,0x00, +0x2b,0x10,0x49,0x01,0x08,0x00,0x40,0x10,0x21,0x20,0x00,0x01,0x23,0x10,0x2a,0x01, +0x2a,0x10,0x62,0x01,0x04,0x00,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x69,0x01, +0x21,0x10,0x4a,0x00,0xff,0x00,0x44,0x30,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00, +0xfd,0xff,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x09,0x01,0xe8,0x49,0x00,0x08, +0xff,0x00,0x44,0x30,0x21,0x20,0x00,0x01,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00, +0xff,0x00,0x84,0x30,0xc0,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x44,0x00,0x02,0x80,0x03,0x3c,0x38,0x15,0x63,0x24,0x80,0x10,0x02,0x00, +0x21,0x10,0x43,0x00,0x25,0xb0,0x06,0x3c,0x90,0x11,0x43,0x8c,0xff,0x00,0xa5,0x30, +0x21,0x20,0x86,0x00,0x21,0x28,0xa6,0x00,0x60,0x01,0x82,0x90,0xaf,0x01,0xa4,0x90, +0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x66,0x00,0xff,0x00,0x48,0x30, +0xff,0x00,0x89,0x30,0x84,0x01,0x66,0x8c,0x21,0x50,0x00,0x00,0x21,0x58,0x00,0x00, +0x2b,0x00,0x20,0x11,0x21,0x20,0x00,0x01,0x2b,0x00,0xc0,0x10,0x2b,0x10,0x09,0x01, +0x21,0x28,0x00,0x00,0x15,0x4a,0x00,0x08,0x01,0x00,0x07,0x24,0xff,0x00,0x65,0x30, +0x1d,0x00,0xa2,0x2c,0x07,0x00,0x40,0x10,0xff,0xff,0x02,0x25,0x04,0x10,0xa7,0x00, +0x24,0x10,0x46,0x00,0xf9,0xff,0x40,0x10,0x01,0x00,0xa3,0x24,0x21,0x58,0xa0,0x00, +0xff,0xff,0x02,0x25,0xff,0x00,0x45,0x30,0x2b,0x18,0xab,0x00,0x0f,0x00,0x60,0x14, +0x2b,0x10,0x49,0x01,0x01,0x00,0x04,0x24,0x04,0x10,0xa4,0x00,0x24,0x10,0x46,0x00, +0xff,0xff,0xa7,0x24,0x04,0x00,0x40,0x10,0x01,0x00,0x43,0x25,0x17,0x00,0x49,0x11, +0xff,0x00,0x6a,0x30,0x21,0x40,0xa0,0x00,0xff,0x00,0xe5,0x30,0x2b,0x10,0xab,0x00, +0xf6,0xff,0x40,0x10,0x04,0x10,0xa4,0x00,0x2b,0x10,0x49,0x01,0x08,0x00,0x40,0x10, +0x21,0x20,0x00,0x01,0x23,0x10,0x2a,0x01,0x2a,0x10,0x62,0x01,0x04,0x00,0x40,0x14, +0x21,0x20,0x00,0x00,0x23,0x10,0x69,0x01,0x21,0x10,0x4a,0x00,0xff,0x00,0x44,0x30, +0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xfd,0xff,0x40,0x14,0x21,0x20,0x00,0x00, +0x23,0x10,0x09,0x01,0x36,0x4a,0x00,0x08,0xff,0x00,0x44,0x30,0x21,0x20,0x00,0x01, +0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xd8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c, +0x18,0x00,0xb2,0xaf,0xff,0xff,0x03,0x3c,0x38,0x15,0x52,0x24,0x1c,0x00,0xb3,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x20,0x00,0xbf,0xaf,0xff,0x1f,0x73,0x34, +0x21,0x88,0x00,0x00,0x21,0x80,0x40,0x02,0x63,0x49,0x00,0x0c,0x21,0x20,0x20,0x02, +0x90,0x11,0x02,0x8e,0x21,0x28,0x00,0x00,0x24,0x10,0x53,0x00,0x00,0x20,0x42,0x34, +0x90,0x11,0x02,0xae,0x92,0x11,0x03,0x92,0x00,0x00,0x00,0x00,0x80,0x18,0x03,0x00, +0x21,0x18,0x72,0x00,0xf8,0x04,0x64,0x8c,0x6c,0x05,0x62,0x8c,0x00,0x00,0x00,0x00, +0x21,0x10,0x44,0x00,0x42,0x10,0x02,0x00,0x5c,0x11,0x02,0xae,0x21,0x10,0x05,0x02, +0x01,0x00,0xa5,0x24,0x1d,0x00,0xa3,0x28,0xce,0x11,0x40,0xa0,0x94,0x11,0x40,0xa0, +0xfa,0xff,0x60,0x14,0xb1,0x11,0x40,0xa0,0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a, +0xec,0x11,0x00,0xae,0xe4,0xff,0x40,0x14,0x94,0x00,0x10,0x26,0x20,0x00,0xbf,0x8f, +0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0xc0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c, +0x2c,0x00,0xb5,0xaf,0x38,0x15,0x46,0x24,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf, +0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf, +0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x08,0x26,0xc2,0x8c, +0xff,0x00,0x03,0x24,0xff,0x00,0x8d,0x30,0xff,0xff,0x42,0x38,0x0b,0x18,0x02,0x00, +0xff,0xff,0x04,0x34,0x10,0x00,0xa3,0xaf,0x08,0x26,0xc4,0xac,0xb9,0x00,0xa0,0x11, +0x08,0x00,0x15,0x24,0x02,0x80,0x02,0x3c,0x48,0x8d,0x45,0x24,0x94,0x04,0xc4,0x24, +0x91,0x4a,0x00,0x08,0x21,0x88,0x00,0x00,0x01,0x00,0x31,0x26,0x00,0x00,0x82,0xa0, +0x1d,0x00,0x22,0x2a,0x0b,0x00,0x40,0x10,0x01,0x00,0x84,0x24,0x21,0x10,0x25,0x02, +0x00,0x00,0x42,0x90,0x00,0x00,0x00,0x00,0xf7,0xff,0x40,0x10,0xfd,0xff,0x43,0x24, +0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x00,0x00,0x83,0xa0,0xf7,0xff,0x40,0x14, +0x01,0x00,0x84,0x24,0x02,0x80,0x02,0x3c,0x38,0x15,0x4a,0x24,0x02,0x80,0x03,0x3c, +0x02,0x80,0x02,0x3c,0xe0,0x8a,0x6c,0x24,0x68,0x8a,0x4b,0x24,0x21,0x88,0x00,0x00, +0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01,0x21,0x38,0x2c,0x01, +0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01, +0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc9,0x03,0x64,0xa0,0xf8,0xff,0x40,0x14, +0x38,0x03,0x65,0xa0,0x21,0x10,0x2b,0x02,0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90, +0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x77,0x04,0x64,0xa0, +0x5a,0x04,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25,0xaf,0x00,0xa0,0x11, +0x02,0x80,0x02,0x3c,0x38,0x15,0x48,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c, +0xdc,0x8d,0x69,0x24,0x68,0x8d,0x47,0x24,0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00, +0x21,0x10,0x69,0x00,0x21,0x20,0x67,0x00,0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c, +0x01,0x00,0x31,0x26,0x21,0x18,0x68,0x00,0x04,0x00,0x22,0x2a,0xf8,0x04,0x65,0xac, +0xf6,0xff,0x40,0x14,0x6c,0x05,0x66,0xac,0x02,0x80,0x02,0x3c,0x38,0x15,0x49,0x24, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xdc,0x8d,0x68,0x24,0x68,0x8d,0x47,0x24, +0x04,0x00,0x11,0x24,0x80,0x20,0x11,0x00,0x21,0x10,0x88,0x00,0x21,0x30,0x87,0x00, +0x00,0x00,0x45,0x8c,0x00,0x00,0xc3,0x8c,0x01,0x00,0x31,0x26,0x21,0x20,0x89,0x00, +0x82,0x28,0x05,0x00,0x82,0x18,0x03,0x00,0x1d,0x00,0x22,0x2a,0xf8,0x04,0x83,0xac, +0xf4,0xff,0x40,0x14,0x6c,0x05,0x85,0xac,0x02,0x80,0x02,0x3c,0x38,0x15,0x56,0x24, +0xff,0xff,0x02,0x3c,0x21,0xf0,0xc0,0x02,0xff,0x1f,0x57,0x34,0x21,0x88,0x00,0x00, +0x21,0xa0,0x00,0x00,0xee,0x4a,0x00,0x08,0x21,0x90,0xc0,0x02,0x01,0x00,0x31,0x26, +0x20,0x00,0x22,0x2a,0x94,0x00,0x52,0x26,0x3d,0x00,0x40,0x10,0x94,0x00,0x94,0x26, +0x90,0x11,0x44,0x8e,0x01,0x00,0x03,0x24,0x02,0x13,0x04,0x00,0x01,0x00,0x53,0x30, +0xf6,0xff,0x63,0x16,0x07,0x00,0x82,0x30,0x25,0xb0,0x03,0x3c,0x80,0x10,0x02,0x00, +0x21,0x10,0x43,0x00,0x84,0x01,0x45,0x8c,0x88,0x11,0x43,0x8e,0x21,0x20,0x20,0x02, +0x24,0x28,0xa3,0x00,0x88,0x1d,0x00,0x0c,0x8c,0x11,0x45,0xae,0x92,0x11,0x44,0x92, +0x57,0x1d,0x00,0x0c,0xff,0x00,0x25,0x32,0x90,0x11,0x42,0x8e,0x00,0x00,0x00,0x00, +0x24,0x10,0x57,0x00,0x00,0x20,0x42,0x34,0x90,0x11,0x42,0xae,0x92,0x11,0x50,0x92, +0x00,0x00,0x00,0x00,0x21,0x20,0x00,0x02,0x78,0x1d,0x00,0x0c,0x80,0x80,0x10,0x00, +0x21,0x80,0x16,0x02,0x60,0x11,0x40,0xae,0x64,0x11,0x40,0xae,0x68,0x11,0x40,0xae, +0x6c,0x11,0x40,0xae,0x70,0x11,0x40,0xae,0x74,0x11,0x40,0xae,0x78,0x11,0x40,0xae, +0x7c,0x11,0x40,0xae,0xf8,0x04,0x04,0x8e,0x6c,0x05,0x03,0x8e,0x26,0x10,0x53,0x00, +0x21,0x30,0x00,0x00,0x21,0x18,0x64,0x00,0x42,0x18,0x03,0x00,0x04,0x00,0x04,0x24, +0x0a,0xa8,0x82,0x00,0x5c,0x11,0x43,0xae,0x21,0x20,0x9e,0x02,0x21,0x10,0x86,0x00, +0x01,0x00,0xc6,0x24,0x1d,0x00,0xc3,0x28,0xce,0x11,0x40,0xa0,0x94,0x11,0x40,0xa0, +0xfa,0xff,0x60,0x14,0xb1,0x11,0x40,0xa0,0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a, +0xec,0x11,0x80,0xac,0x94,0x00,0x52,0x26,0xc5,0xff,0x40,0x14,0x94,0x00,0x94,0x26, +0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34,0x00,0x00,0x55,0xa0,0x10,0x00,0xa3,0x8f, +0x00,0x00,0x00,0x00,0x03,0x00,0x60,0x14,0x02,0x80,0x03,0x3c,0x38,0x15,0x62,0x24, +0x08,0x26,0x40,0xac,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x40,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0x48,0x8d,0x45,0x24,0x94,0x04,0xc4,0x24, +0x21,0x88,0x00,0x00,0x21,0x10,0x25,0x02,0x00,0x00,0x43,0x90,0x01,0x00,0x31,0x26, +0x1d,0x00,0x22,0x2a,0x00,0x00,0x83,0xa0,0xfa,0xff,0x40,0x14,0x01,0x00,0x84,0x24, +0x02,0x80,0x02,0x3c,0x38,0x15,0x4a,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c, +0x04,0x8c,0x6c,0x24,0xa4,0x8a,0x4b,0x24,0x21,0x88,0x00,0x00,0x21,0x48,0x00,0x00, +0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01,0x21,0x38,0x2c,0x01,0x21,0x10,0xe6,0x00, +0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01,0x01,0x00,0xc6,0x24, +0x05,0x00,0xc2,0x28,0xc9,0x03,0x64,0xa0,0xf8,0xff,0x40,0x14,0x38,0x03,0x65,0xa0, +0x21,0x10,0x2b,0x02,0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x2a,0x02, +0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x77,0x04,0x64,0xa0,0x5a,0x04,0x65,0xa0, +0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25,0x02,0x80,0x02,0x3c,0x38,0x15,0x49,0x24, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xdc,0x8d,0x68,0x24,0x68,0x8d,0x47,0x24, +0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,0x21,0x10,0x68,0x00,0x21,0x20,0x67,0x00, +0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c,0x01,0x00,0x31,0x26,0x21,0x18,0x69,0x00, +0x1d,0x00,0x22,0x2a,0xf8,0x04,0x65,0xac,0xf6,0xff,0x40,0x14,0x6c,0x05,0x66,0xac, +0xe1,0x4a,0x00,0x08,0x02,0x80,0x02,0x3c,0xd8,0xff,0xbd,0x27,0xff,0xff,0x84,0x30, +0x18,0x00,0xb2,0xaf,0xf0,0x01,0x92,0x30,0x02,0x91,0x12,0x00,0x14,0x00,0xb1,0xaf, +0xc0,0x88,0x12,0x00,0x21,0x88,0x32,0x02,0x80,0x88,0x11,0x00,0x21,0x88,0x32,0x02, +0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0x80,0x88,0x11,0x00,0x21,0x88,0x22,0x02, +0x20,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,0x10,0x00,0xb0,0xaf,0x90,0x11,0x30,0x8e, +0x00,0x02,0x83,0x30,0xff,0xfe,0x02,0x24,0x2b,0x18,0x03,0x00,0x00,0x10,0x10,0x36, +0x24,0x80,0x02,0x02,0x00,0x1a,0x03,0x00,0x00,0x04,0x82,0x30,0x25,0x80,0x03,0x02, +0x2b,0x10,0x02,0x00,0xf7,0xff,0x03,0x24,0x24,0x80,0x03,0x02,0xc0,0x10,0x02,0x00, +0x25,0x80,0x02,0x02,0x88,0x11,0x25,0xae,0x90,0x11,0x30,0xae,0xe5,0x1d,0x00,0x0c, +0x21,0x98,0xa0,0x00,0xf8,0xff,0x03,0x24,0x24,0x80,0x03,0x02,0x07,0x00,0x42,0x30, +0x25,0x80,0x02,0x02,0x07,0x00,0x03,0x32,0x25,0xb0,0x02,0x3c,0x80,0x18,0x03,0x00, +0x90,0x11,0x30,0xae,0x21,0x18,0x62,0x00,0x84,0x01,0x62,0x8c,0x21,0x20,0x40,0x02, +0x24,0x10,0x53,0x00,0x88,0x1d,0x00,0x0c,0x8c,0x11,0x22,0xae,0x92,0x11,0x24,0x92, +0x21,0x28,0x40,0x02,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x57,0x1d,0x00,0x08,0x28,0x00,0xbd,0x27, +0x63,0x49,0x00,0x08,0xff,0x00,0x84,0x30,0x02,0x80,0x02,0x3c,0x38,0x15,0x43,0x24, +0x1f,0x00,0x04,0x24,0x90,0x11,0x62,0x8c,0xff,0xff,0x84,0x24,0x00,0x10,0x42,0x34, +0x90,0x11,0x62,0xac,0xfb,0xff,0x81,0x04,0x94,0x00,0x63,0x24,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x23,0x10,0xa4,0x00,0x2b,0x18,0xa4,0x00, +0x23,0x20,0x85,0x00,0x08,0x00,0xe0,0x03,0x0b,0x10,0x83,0x00,0x20,0xff,0xbd,0x27, +0xcc,0x00,0xb5,0xaf,0xdc,0x00,0xbf,0xaf,0xd8,0x00,0xbe,0xaf,0xd4,0x00,0xb7,0xaf, +0xd0,0x00,0xb6,0xaf,0xc8,0x00,0xb4,0xaf,0xc4,0x00,0xb3,0xaf,0xc0,0x00,0xb2,0xaf, +0xbc,0x00,0xb1,0xaf,0xb8,0x00,0xb0,0xaf,0x21,0xa8,0x00,0x00,0x40,0x11,0x15,0x00, +0x10,0x00,0xa3,0x27,0x21,0x10,0x43,0x00,0x07,0x00,0x16,0x24,0xff,0xff,0xd6,0x26, +0x00,0x00,0x40,0xac,0xfd,0xff,0xc1,0x06,0x04,0x00,0x42,0x24,0x01,0x00,0xb5,0x26, +0x03,0x00,0xa2,0x2e,0xf6,0xff,0x40,0x14,0x40,0x11,0x15,0x00,0x25,0xb0,0x10,0x3c, +0xc4,0x02,0x02,0x36,0x00,0x00,0x40,0xac,0x04,0x00,0x03,0x36,0x00,0x00,0x62,0x8c, +0x04,0x0c,0x03,0x36,0x00,0x00,0x63,0x8c,0x08,0x0c,0x04,0x36,0x0f,0x00,0x11,0x3c, +0xac,0x00,0xa3,0xaf,0x00,0x00,0x84,0x8c,0x24,0x10,0x51,0x00,0x02,0xf4,0x02,0x00, +0xb0,0x00,0xa4,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36, +0x70,0x00,0xa2,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x74,0x00,0xa2,0xaf, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x21,0x1a,0x00,0x0c, +0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0xe0,0x0e,0x02,0x36, +0x21,0x20,0x40,0x00,0x00,0x00,0x42,0x8c,0xdc,0x0e,0x12,0x36,0x70,0x0e,0x13,0x36, +0x78,0x00,0xa2,0xaf,0x00,0x00,0x42,0x8e,0x74,0x0e,0x14,0x36,0x78,0x0e,0x15,0x36, +0x7c,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8e,0x7c,0x0e,0x16,0x36,0x80,0x0e,0x17,0x36, +0x80,0x00,0xa3,0xaf,0x00,0x00,0x82,0x8e,0xd4,0x0e,0x10,0x36,0xed,0x3f,0x11,0x3c, +0x84,0x00,0xa2,0xaf,0x00,0x00,0xa3,0x8e,0xfb,0x92,0x25,0x36,0x88,0x00,0xa3,0xaf, +0x00,0x00,0xc2,0x8e,0x00,0x00,0x00,0x00,0x8c,0x00,0xa2,0xaf,0x00,0x00,0xe3,0x8e, +0x25,0xb0,0x02,0x3c,0x84,0x0e,0x42,0x34,0x90,0x00,0xa3,0xaf,0x00,0x00,0x42,0x8c, +0x25,0xb0,0x03,0x3c,0x88,0x0e,0x63,0x34,0x94,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8c, +0x25,0xb0,0x02,0x3c,0x8c,0x0e,0x42,0x34,0x98,0x00,0xa3,0xaf,0x00,0x00,0x42,0x8c, +0x25,0xb0,0x03,0x3c,0xd0,0x0e,0x63,0x34,0x9c,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8c, +0x00,0x00,0x00,0x00,0xa0,0x00,0xa3,0xaf,0x00,0x00,0x02,0x8e,0x25,0xb0,0x03,0x3c, +0xd8,0x0e,0x63,0x34,0xa4,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8c,0xc3,0x4b,0x00,0x0c, +0xa8,0x00,0xa3,0xaf,0x21,0x20,0x40,0x02,0xc3,0x4b,0x00,0x0c,0xfb,0x92,0x25,0x36, +0x21,0x20,0x60,0x02,0xc3,0x4b,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0x80,0x02, +0xc3,0x4b,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0xa0,0x02,0xc3,0x4b,0x00,0x0c, +0xfb,0x92,0x25,0x36,0x21,0x20,0xc0,0x02,0xc3,0x4b,0x00,0x0c,0xfb,0x92,0x25,0x36, +0x21,0x20,0xe0,0x02,0xc3,0x4b,0x00,0x0c,0xfb,0x92,0x25,0x36,0x02,0x80,0x02,0x3c, +0xdc,0x8e,0x42,0x24,0x00,0x00,0x44,0x8c,0xfb,0x92,0x25,0x36,0xc3,0x4b,0x00,0x0c, +0x25,0xb0,0x13,0x3c,0x02,0x80,0x03,0x3c,0xe0,0x8e,0x63,0x24,0x00,0x00,0x64,0x8c, +0xfb,0x92,0x25,0x36,0xc3,0x4b,0x00,0x0c,0x21,0xb0,0x00,0x00,0x02,0x80,0x02,0x3c, +0xe4,0x8e,0x42,0x24,0x00,0x00,0x44,0x8c,0xfb,0x92,0x25,0x36,0xc3,0x4b,0x00,0x0c, +0xff,0x03,0x14,0x3c,0x02,0x80,0x03,0x3c,0xe8,0x8e,0x63,0x24,0x00,0x00,0x64,0x8c, +0xfb,0x92,0x25,0x36,0xc3,0x4b,0x00,0x0c,0x10,0x00,0xb7,0x27,0x21,0x20,0x00,0x02, +0xc3,0x4b,0x00,0x0c,0xfb,0x92,0x25,0x36,0x02,0x80,0x02,0x3c,0xec,0x8e,0x42,0x24, +0x00,0x00,0x44,0x8c,0xc3,0x4b,0x00,0x0c,0xfb,0x92,0x25,0x36,0xaf,0x4c,0x00,0x08, +0x21,0xa8,0x00,0x00,0x6e,0x00,0xc2,0x13,0x02,0x80,0x02,0x3c,0xac,0x0e,0x62,0x36, +0x94,0x0e,0x63,0x36,0x00,0x00,0x48,0x8c,0x00,0x00,0x64,0x8c,0xb4,0x0e,0x62,0x36, +0x9c,0x0e,0x63,0x36,0x00,0x00,0x45,0x8c,0x00,0x00,0x66,0x8c,0x25,0xb0,0x03,0x3c, +0xbc,0x0e,0x63,0x34,0x00,0x00,0x67,0x8c,0x24,0x20,0x94,0x00,0x00,0xd8,0x02,0x3c, +0x24,0x10,0x02,0x01,0x24,0x28,0xb4,0x00,0x24,0x30,0xd4,0x00,0x24,0x38,0xf4,0x00, +0x02,0x24,0x04,0x00,0x20,0x01,0x03,0x24,0x01,0x00,0x42,0x2c,0x02,0x2c,0x05,0x00, +0x02,0x34,0x06,0x00,0xe8,0x00,0x83,0x10,0x02,0x3c,0x07,0x00,0xe6,0x00,0xa3,0x10, +0x20,0x00,0x03,0x24,0xe4,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,0xe2,0x00,0xe3,0x10, +0x01,0x00,0x08,0x24,0x80,0x00,0x03,0x24,0x08,0x00,0x83,0x10,0x21,0x20,0x00,0x00, +0x06,0x00,0xa3,0x10,0x21,0x20,0x00,0x00,0xe0,0x03,0x03,0x24,0x03,0x00,0xc3,0x10, +0x00,0x00,0x00,0x00,0xdb,0x00,0xe3,0x10,0x01,0x00,0x04,0x24,0x05,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0xd7,0x00,0x80,0x14, +0x94,0x0e,0x63,0x36,0x01,0x00,0xb5,0x26,0x0a,0x00,0xa2,0x2e,0x01,0x01,0x40,0x10, +0x00,0x00,0x00,0x00,0xcb,0xff,0xc0,0x17,0x01,0x00,0x02,0x24,0xa0,0x00,0x03,0x3c, +0x30,0x54,0x65,0x34,0xc3,0x4b,0x00,0x0c,0x04,0x0c,0x64,0x36,0x08,0x00,0x05,0x3c, +0xe4,0x00,0xa5,0x34,0xc3,0x4b,0x00,0x0c,0x08,0x0c,0x64,0x36,0x28,0x0e,0x64,0x36, +0xc3,0x4b,0x00,0x0c,0x80,0x80,0x05,0x3c,0x14,0x02,0x02,0x3c,0x48,0x01,0x45,0x34, +0xc3,0x4b,0x00,0x0c,0x40,0x0e,0x64,0x36,0x16,0x68,0x05,0x3c,0xa2,0x04,0xa5,0x34, +0xc3,0x4b,0x00,0x0c,0x44,0x0e,0x64,0x36,0x4c,0x0e,0x64,0x36,0xc3,0x4b,0x00,0x0c, +0xd1,0x28,0x05,0x24,0x14,0x02,0x03,0x3c,0x4d,0x01,0x65,0x34,0xc3,0x4b,0x00,0x0c, +0x60,0x0e,0x64,0x36,0x16,0x28,0x05,0x3c,0xba,0x08,0xa5,0x34,0xc3,0x4b,0x00,0x0c, +0x64,0x0e,0x64,0x36,0x6c,0x0e,0x64,0x36,0xc3,0x4b,0x00,0x0c,0xd1,0x28,0x05,0x24, +0x00,0xfb,0x05,0x3c,0x01,0x00,0xa5,0x34,0xc3,0x4b,0x00,0x0c,0x48,0x0e,0x64,0x36, +0x00,0xf8,0x05,0x3c,0x01,0x00,0xa5,0x34,0xc3,0x4b,0x00,0x0c,0x48,0x0e,0x64,0x36, +0xf2,0x19,0x00,0x0c,0x03,0x00,0x04,0x24,0xa0,0x00,0x02,0x3c,0x33,0x54,0x45,0x34, +0xc3,0x4b,0x00,0x0c,0x04,0x0c,0x64,0x36,0x08,0x0c,0x64,0x36,0xc3,0x4b,0x00,0x0c, +0xe4,0x00,0x05,0x24,0x28,0x0e,0x64,0x36,0xc3,0x4b,0x00,0x0c,0x21,0x28,0x00,0x00, +0x01,0x00,0x02,0x24,0x96,0xff,0xc2,0x17,0xac,0x0e,0x62,0x36,0x02,0x80,0x02,0x3c, +0xf0,0x8e,0x42,0x24,0x25,0xb0,0x03,0x3c,0x00,0x00,0x44,0x8c,0x20,0x08,0x63,0x34, +0x00,0x00,0x71,0x8c,0x00,0x01,0x03,0x3c,0x00,0x01,0x65,0x34,0xc3,0x4b,0x00,0x0c, +0x25,0xb0,0x12,0x3c,0x00,0x01,0x02,0x3c,0x00,0x01,0x45,0x34,0xc3,0x4b,0x00,0x0c, +0x28,0x08,0x44,0x36,0xa0,0x00,0x03,0x3c,0x30,0x54,0x65,0x34,0xc3,0x4b,0x00,0x0c, +0x04,0x0c,0x44,0x36,0x08,0x00,0x05,0x3c,0xe4,0x00,0xa5,0x34,0xc3,0x4b,0x00,0x0c, +0x08,0x0c,0x44,0x36,0x28,0x0e,0x44,0x36,0xc3,0x4b,0x00,0x0c,0x80,0x80,0x05,0x3c, +0x00,0x01,0x02,0x3c,0x00,0x7c,0x45,0x34,0xc3,0x4b,0x00,0x0c,0x30,0x0e,0x44,0x36, +0x00,0x01,0x03,0x3c,0x00,0x48,0x65,0x34,0xc3,0x4b,0x00,0x0c,0x34,0x0e,0x44,0x36, +0x00,0x10,0x02,0x3c,0x1f,0xdc,0x45,0x34,0xc3,0x4b,0x00,0x0c,0x38,0x0e,0x44,0x36, +0x00,0x10,0x03,0x3c,0x1f,0x8c,0x65,0x34,0xc3,0x4b,0x00,0x0c,0x3c,0x0e,0x44,0x36, +0x14,0x02,0x02,0x3c,0x02,0x01,0x45,0x34,0xc3,0x4b,0x00,0x0c,0x40,0x0e,0x44,0x36, +0x16,0x68,0x05,0x3c,0xc7,0x04,0xa5,0x34,0xc3,0x4b,0x00,0x0c,0x44,0x0e,0x44,0x36, +0x4c,0x0e,0x44,0x36,0xc3,0x4b,0x00,0x0c,0xd1,0x28,0x05,0x24,0x6c,0x0e,0x44,0x36, +0xc3,0x4b,0x00,0x0c,0xd1,0x28,0x05,0x24,0x00,0x01,0x03,0x3c,0x00,0x7c,0x65,0x34, +0xc3,0x4b,0x00,0x0c,0x50,0x0e,0x44,0x36,0x00,0x01,0x02,0x3c,0x00,0x48,0x45,0x34, +0xc3,0x4b,0x00,0x0c,0x54,0x0e,0x44,0x36,0x00,0x10,0x03,0x3c,0x23,0xdc,0x65,0x34, +0xc3,0x4b,0x00,0x0c,0x58,0x0e,0x44,0x36,0x00,0x10,0x02,0x3c,0x23,0x8c,0x45,0x34, +0xc3,0x4b,0x00,0x0c,0x5c,0x0e,0x44,0x36,0x14,0x02,0x03,0x3c,0x02,0x01,0x65,0x34, +0xc3,0x4b,0x00,0x0c,0x60,0x0e,0x44,0x36,0x16,0x28,0x05,0x3c,0x07,0x0d,0xa5,0x34, +0xc3,0x4b,0x00,0x0c,0x64,0x0e,0x44,0x36,0x48,0x0e,0x44,0x36,0xc3,0x4b,0x00,0x0c, +0x00,0xfb,0x05,0x3c,0x00,0xf8,0x05,0x3c,0xc3,0x4b,0x00,0x0c,0x48,0x0e,0x44,0x36, +0x00,0x02,0x10,0x3c,0xf2,0x19,0x00,0x0c,0x03,0x00,0x04,0x24,0x4c,0x0e,0x44,0x36, +0xc3,0x4b,0x00,0x0c,0xd1,0x28,0x05,0x36,0xd1,0x28,0x05,0x36,0xc3,0x4b,0x00,0x0c, +0x6c,0x0e,0x44,0x36,0x48,0x0e,0x44,0x36,0xc3,0x4b,0x00,0x0c,0x00,0xfb,0x05,0x3c, +0x00,0xf8,0x05,0x3c,0xc3,0x4b,0x00,0x0c,0x48,0x0e,0x44,0x36,0xf2,0x19,0x00,0x0c, +0x03,0x00,0x04,0x24,0xac,0x00,0xa5,0x8f,0x04,0x0c,0x44,0x36,0xc3,0x4b,0x00,0x0c, +0x00,0x01,0x31,0x32,0xb0,0x00,0xa5,0x8f,0x08,0x0c,0x44,0x36,0xc3,0x4b,0x00,0x0c, +0x2b,0x88,0x11,0x00,0x28,0x0e,0x44,0x36,0xc3,0x4b,0x00,0x0c,0x21,0x28,0x00,0x00, +0x23,0xff,0x20,0x16,0xac,0x0e,0x62,0x36,0x02,0x80,0x02,0x3c,0xf0,0x8e,0x42,0x24, +0x00,0x00,0x44,0x8c,0xc3,0x4b,0x00,0x0c,0x00,0x01,0x05,0x3c,0x28,0x08,0x44,0x36, +0xc3,0x4b,0x00,0x0c,0x00,0x01,0x05,0x3c,0xac,0x0e,0x62,0x36,0x94,0x0e,0x63,0x36, +0x00,0x00,0x48,0x8c,0x00,0x00,0x64,0x8c,0xb4,0x0e,0x62,0x36,0x9c,0x0e,0x63,0x36, +0x00,0x00,0x45,0x8c,0x00,0x00,0x66,0x8c,0x25,0xb0,0x03,0x3c,0xbc,0x0e,0x63,0x34, +0x00,0x00,0x67,0x8c,0x24,0x20,0x94,0x00,0x00,0xd8,0x02,0x3c,0x24,0x10,0x02,0x01, +0x24,0x28,0xb4,0x00,0x24,0x30,0xd4,0x00,0x24,0x38,0xf4,0x00,0x02,0x24,0x04,0x00, +0x20,0x01,0x03,0x24,0x01,0x00,0x42,0x2c,0x02,0x2c,0x05,0x00,0x02,0x34,0x06,0x00, +0x1a,0xff,0x83,0x14,0x02,0x3c,0x07,0x00,0x80,0x00,0x03,0x24,0x20,0xff,0x83,0x14, +0x21,0x40,0x00,0x00,0xa5,0x4c,0x00,0x08,0x21,0x20,0x00,0x00,0x00,0x00,0x62,0x8c, +0x9c,0x0e,0x65,0x36,0xa4,0x0e,0x66,0x36,0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00, +0x00,0x00,0xe2,0xae,0x00,0x00,0xa4,0x8c,0xac,0x0e,0x67,0x36,0xb4,0x0e,0x65,0x36, +0x24,0x20,0x94,0x00,0x02,0x24,0x04,0x00,0x04,0x00,0xe4,0xae,0x00,0x00,0xc3,0x8c, +0xc4,0x0e,0x64,0x36,0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,0x08,0x00,0xe3,0xae, +0x00,0x00,0xe2,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00, +0x0c,0x00,0xe2,0xae,0x00,0x00,0xa3,0x8c,0x00,0x00,0x00,0x00,0x24,0x18,0x74,0x00, +0x02,0x1c,0x03,0x00,0x10,0x00,0xe3,0xae,0x25,0xb0,0x03,0x3c,0xbc,0x0e,0x63,0x34, +0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00, +0x14,0x00,0xe2,0xae,0x00,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x24,0x18,0x74,0x00, +0x02,0x1c,0x03,0x00,0x18,0x00,0xe3,0xae,0x25,0xb0,0x03,0x3c,0xcc,0x0e,0x63,0x34, +0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00, +0x1c,0x00,0xe2,0xae,0x01,0x00,0xd6,0x26,0x03,0x00,0xc2,0x2e,0xc7,0xfe,0x40,0x14, +0x20,0x00,0xf7,0x26,0x10,0x00,0xb0,0x8f,0x00,0x00,0x00,0x00,0x39,0x01,0x00,0x16, +0x00,0x00,0x00,0x00,0x30,0x00,0xb1,0x8f,0x00,0x00,0x00,0x00,0x06,0x00,0x20,0x16, +0x21,0x20,0x00,0x02,0x50,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00,0x29,0x00,0x40,0x10, +0xff,0x00,0x05,0x24,0x21,0x20,0x00,0x02,0xcc,0x4b,0x00,0x0c,0x21,0x28,0x20,0x02, +0x03,0x00,0x42,0x2c,0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x34,0x00,0xa5,0x8f, +0x14,0x00,0xa4,0x8f,0xcc,0x4b,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c, +0x1c,0x00,0x40,0x14,0x21,0x28,0x00,0x00,0x50,0x00,0xb2,0x8f,0x21,0x20,0x00,0x02, +0xcc,0x4b,0x00,0x0c,0x21,0x28,0x40,0x02,0x03,0x00,0x42,0x2c,0x09,0x00,0x40,0x10, +0x21,0x20,0x20,0x02,0x54,0x00,0xa5,0x8f,0x14,0x00,0xa4,0x8f,0xcc,0x4b,0x00,0x0c, +0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c,0x0e,0x00,0x40,0x14,0x21,0x28,0x00,0x00, +0x21,0x20,0x20,0x02,0xcc,0x4b,0x00,0x0c,0x21,0x28,0x40,0x02,0x03,0x00,0x42,0x2c, +0xd0,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x54,0x00,0xa5,0x8f,0x34,0x00,0xa4,0x8f, +0xcc,0x4b,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c,0xc9,0x00,0x40,0x10, +0x01,0x00,0x05,0x24,0xff,0x00,0x02,0x24,0xcb,0x00,0xa2,0x10,0x25,0xb0,0x03,0x3c, +0x10,0x00,0xa2,0x27,0x40,0x29,0x05,0x00,0x02,0x80,0x0f,0x3c,0x21,0x28,0xa2,0x00, +0x38,0x15,0xec,0x25,0x00,0x00,0xa6,0x8c,0x0c,0x00,0xa7,0x8c,0x0c,0x00,0x83,0x8d, +0x10,0x00,0x84,0x8d,0x04,0x00,0xa8,0x8c,0x10,0x00,0xa9,0x8c,0x00,0xfc,0x02,0x24, +0x08,0x00,0xaa,0x8c,0x14,0x00,0xab,0x8c,0x24,0x20,0x82,0x00,0xff,0x03,0xc6,0x30, +0x24,0x18,0x62,0x00,0xff,0x03,0xe7,0x30,0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34, +0x25,0x18,0x66,0x00,0x25,0x20,0x87,0x00,0xff,0x03,0x08,0x31,0xff,0x03,0x29,0x31, +0x24,0x20,0x82,0x00,0x24,0x18,0x62,0x00,0x80,0x42,0x08,0x00,0x80,0x4a,0x09,0x00, +0x0f,0xc0,0x02,0x3c,0x1c,0x00,0xa6,0x8c,0x18,0x00,0xa7,0x8c,0xff,0xff,0x42,0x34, +0x25,0x18,0x68,0x00,0x25,0x20,0x89,0x00,0xff,0x03,0x4a,0x31,0xff,0x03,0x6b,0x31, +0x24,0x20,0x82,0x00,0x00,0x55,0x0a,0x00,0x24,0x18,0x62,0x00,0x00,0x5d,0x0b,0x00, +0x25,0x18,0x6a,0x00,0x25,0x20,0x8b,0x00,0x16,0x00,0x86,0xa5,0x0c,0x00,0x83,0xad, +0x10,0x00,0x84,0xad,0x14,0x00,0x87,0xa5,0x38,0x15,0xf1,0x25,0x10,0x00,0x22,0x8e, +0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,0x4d,0x00,0x43,0x10,0x25,0xb0,0x12,0x3c, +0x0c,0x00,0x23,0x8e,0x80,0x0c,0x44,0x36,0x00,0x00,0x88,0x8c,0x00,0x02,0x62,0x30, +0xc0,0xff,0x13,0x3c,0x82,0x6d,0x08,0x00,0x03,0x00,0x40,0x10,0xff,0x03,0x65,0x30, +0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00,0x18,0x00,0xad,0x00,0x82,0x62,0x03,0x00, +0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31,0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00, +0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30,0x00,0xfc,0x02,0x24,0x25,0x60,0x82,0x01, +0x18,0x00,0x8d,0x01,0x00,0xfc,0x74,0x36,0x24,0x28,0x14,0x01,0x12,0x80,0x00,0x00, +0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x28,0xa2,0x00, +0xc3,0x4b,0x00,0x0c,0x25,0x28,0xa6,0x00,0x94,0x0c,0x44,0x36,0x00,0x00,0x85,0x8c, +0xff,0x0f,0x02,0x3c,0xff,0xff,0x55,0x34,0xc0,0x03,0x10,0x32,0x24,0x28,0xb5,0x00, +0x80,0x85,0x10,0x00,0xc3,0x4b,0x00,0x0c,0x25,0x28,0xb0,0x00,0x10,0x00,0x2c,0x8e, +0x88,0x0c,0x44,0x36,0x00,0x00,0x88,0x8c,0x82,0x2a,0x0c,0x00,0xff,0x03,0xa5,0x30, +0x24,0x10,0x13,0x01,0x00,0x02,0xa3,0x30,0x03,0x00,0x60,0x10,0x82,0x6d,0x02,0x00, +0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00,0x18,0x00,0xad,0x00,0x02,0x65,0x0c,0x00, +0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31,0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00, +0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30,0x00,0xfc,0x02,0x24,0x25,0x60,0x82,0x01, +0x18,0x00,0x8d,0x01,0x24,0x28,0x14,0x01,0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00, +0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x28,0xa2,0x00,0xc3,0x4b,0x00,0x0c, +0x25,0x28,0xa6,0x00,0x9c,0x0c,0x44,0x36,0x00,0x00,0x85,0x8c,0xc0,0x03,0x10,0x32, +0x80,0x85,0x10,0x00,0x24,0x28,0xb5,0x00,0xc3,0x4b,0x00,0x0c,0x25,0x28,0xb0,0x00, +0x78,0x00,0xa5,0x8f,0x25,0xb0,0x10,0x3c,0xc3,0x4b,0x00,0x0c,0xe0,0x0e,0x04,0x36, +0x7c,0x00,0xa5,0x8f,0xc3,0x4b,0x00,0x0c,0xdc,0x0e,0x04,0x36,0x80,0x00,0xa5,0x8f, +0xc3,0x4b,0x00,0x0c,0x70,0x0e,0x04,0x36,0x84,0x00,0xa5,0x8f,0xc3,0x4b,0x00,0x0c, +0x74,0x0e,0x04,0x36,0x88,0x00,0xa5,0x8f,0xc3,0x4b,0x00,0x0c,0x78,0x0e,0x04,0x36, +0x8c,0x00,0xa5,0x8f,0xc3,0x4b,0x00,0x0c,0x7c,0x0e,0x04,0x36,0x90,0x00,0xa5,0x8f, +0xc3,0x4b,0x00,0x0c,0x80,0x0e,0x04,0x36,0x94,0x00,0xa5,0x8f,0xc3,0x4b,0x00,0x0c, +0x84,0x0e,0x04,0x36,0x98,0x00,0xa5,0x8f,0xc3,0x4b,0x00,0x0c,0x88,0x0e,0x04,0x36, +0x9c,0x00,0xa5,0x8f,0xc3,0x4b,0x00,0x0c,0x8c,0x0e,0x04,0x36,0xa0,0x00,0xa5,0x8f, +0xc3,0x4b,0x00,0x0c,0xd0,0x0e,0x04,0x36,0xa4,0x00,0xa5,0x8f,0xc3,0x4b,0x00,0x0c, +0xd4,0x0e,0x04,0x36,0xa8,0x00,0xa5,0x8f,0x88,0x0e,0x04,0x36,0xc3,0x4b,0x00,0x0c, +0x0f,0x00,0x10,0x3c,0x70,0x00,0xa6,0x8f,0xff,0xff,0x05,0x36,0x6a,0x44,0x00,0x0c, +0x21,0x20,0x00,0x00,0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c, +0x01,0x00,0x04,0x24,0x74,0x00,0xa6,0x8f,0xff,0xff,0x05,0x36,0x6a,0x44,0x00,0x0c, +0x21,0x20,0x00,0x00,0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c, +0x21,0x20,0x00,0x00,0xdc,0x00,0xbf,0x8f,0xd8,0x00,0xbe,0x8f,0xd4,0x00,0xb7,0x8f, +0xd0,0x00,0xb6,0x8f,0xcc,0x00,0xb5,0x8f,0xc8,0x00,0xb4,0x8f,0xc4,0x00,0xb3,0x8f, +0xc0,0x00,0xb2,0x8f,0xbc,0x00,0xb1,0x8f,0xb8,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0xe0,0x00,0xbd,0x27,0xff,0x00,0x05,0x24,0xff,0x00,0x02,0x24,0x39,0xff,0xa2,0x14, +0x10,0x00,0xa2,0x27,0x25,0xb0,0x03,0x3c,0x94,0x0e,0x62,0x34,0x9c,0x0e,0x64,0x34, +0xa4,0x0e,0x65,0x34,0xac,0x0e,0x66,0x34,0x02,0x80,0x0f,0x3c,0x00,0x00,0x49,0x8c, +0x38,0x15,0xed,0x25,0x00,0x00,0x8c,0x8c,0x00,0x00,0xae,0x8c,0x00,0x00,0xc7,0x8c, +0xb4,0x0e,0x62,0x34,0x0c,0x00,0xa4,0x8d,0x10,0x00,0xa5,0x8d,0x00,0x00,0x4a,0x8c, +0xff,0x03,0x06,0x3c,0x00,0xfc,0x08,0x24,0xbc,0x0e,0x62,0x34,0x24,0x48,0x26,0x01, +0x24,0x38,0xe6,0x00,0x00,0x00,0x4b,0x8c,0x24,0x28,0xa8,0x00,0x24,0x20,0x88,0x00, +0x02,0x3c,0x07,0x00,0xcc,0x0e,0x68,0x34,0x02,0x4c,0x09,0x00,0xc4,0x0e,0x63,0x34, +0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,0x25,0x28,0xa7,0x00,0x25,0x20,0x89,0x00, +0x00,0x00,0x67,0x8c,0x24,0x60,0x86,0x01,0x00,0x00,0x03,0x8d,0x24,0x50,0x46,0x01, +0x24,0x28,0xa2,0x00,0x24,0x20,0x82,0x00,0x82,0x61,0x0c,0x00,0x82,0x51,0x0a,0x00, +0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,0x25,0x20,0x8c,0x00,0x25,0x28,0xaa,0x00, +0x24,0x70,0xc6,0x01,0x24,0x58,0x66,0x01,0x24,0x28,0xa2,0x00,0x24,0x18,0x66,0x00, +0x00,0x71,0x0e,0x00,0x24,0x20,0x82,0x00,0x00,0x59,0x0b,0x00,0x24,0x38,0xe6,0x00, +0x25,0x20,0x8e,0x00,0x25,0x28,0xab,0x00,0x02,0x3c,0x07,0x00,0x02,0x1c,0x03,0x00, +0x16,0x00,0xa3,0xa5,0x0c,0x00,0xa4,0xad,0x10,0x00,0xa5,0xad,0x18,0x4e,0x00,0x08, +0x14,0x00,0xa7,0xa5,0x30,0x00,0xb1,0x8f,0xc0,0x4d,0x00,0x08,0x21,0x20,0x00,0x02, +0xe0,0xff,0xbd,0x27,0x44,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3,0x49,0x00,0x03,0x24, +0x47,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,0x74,0x94,0xe7,0x24,0x11,0x00,0xa3,0xa3, +0x12,0x00,0xa2,0xa3,0x10,0x27,0x03,0x24,0x01,0x00,0x02,0x24,0x01,0x80,0x06,0x3c, +0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0xdc,0x3e,0xc6,0x24,0x0c,0x00,0xe3,0xac, +0x14,0x00,0xe2,0xa0,0x18,0x00,0xbf,0xaf,0xe1,0x1c,0x00,0x0c,0x13,0x00,0xa0,0xa3, +0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0xd0,0xff,0xbd,0x27,0x25,0xb0,0x03,0x3c,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf, +0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf,0x18,0x00,0xb2,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x03,0x0d,0x64,0x34,0x00,0x00,0x82,0x90, +0x00,0x00,0x00,0x00,0xff,0x00,0x54,0x30,0x70,0x00,0x93,0x32,0x63,0x00,0x60,0x12, +0x42,0x00,0x63,0x34,0x8f,0x00,0x82,0x32,0x00,0x00,0x82,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x5b,0x00,0x60,0x12,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c, +0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0xa8,0x40,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x21,0x1a,0x00,0x0c, +0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00, +0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0xb0,0x40,0x00,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x64,0x00,0x04,0x24,0x21,0x1a,0x00,0x0c, +0x08,0x00,0x10,0x3c,0xff,0xff,0x10,0x36,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00, +0x01,0x00,0x12,0x3c,0x24,0x30,0xb0,0x02,0x25,0x30,0xd2,0x00,0xff,0xff,0x25,0x36, +0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24, +0x24,0x80,0xd0,0x02,0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0x25,0x30,0x12,0x02, +0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0x21,0x1a,0x00,0x0c, +0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c, +0x18,0x00,0x04,0x24,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0x80,0x40,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x21,0x1a,0x00,0x0c, +0x64,0x00,0x04,0x24,0x18,0x00,0x04,0x24,0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c, +0x00,0x80,0x06,0x36,0xf2,0x19,0x00,0x0c,0x03,0x00,0x04,0x24,0x27,0x00,0x60,0x16, +0x25,0xb0,0x02,0x3c,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f, +0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x25,0xb0,0x02,0x3c,0x42,0x00,0x42,0x34,0x30,0x00,0xbd,0x27, +0x00,0x00,0x40,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x24, +0x00,0x00,0x62,0xa0,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c,0x18,0x00,0x04,0x24,0x95,0x44,0x00,0x0c, +0xff,0xff,0x25,0x36,0x21,0x80,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24,0x18,0x00,0x04,0x24, +0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c,0x00,0x80,0x06,0x36,0xf2,0x19,0x00,0x0c, +0x03,0x00,0x04,0x24,0xdb,0xff,0x60,0x12,0x25,0xb0,0x02,0x3c,0x03,0x0d,0x42,0x34, +0x00,0x00,0x54,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x0f,0x00,0x10,0x3c, +0x21,0x30,0xa0,0x02,0xff,0xff,0x05,0x36,0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00, +0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24, +0xff,0xff,0x05,0x36,0x21,0x30,0xc0,0x02,0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00, +0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f, +0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x20,0x00,0x00,0x2a,0x42,0x00,0x08, +0x30,0x00,0xbd,0x27,0xc0,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf,0x02,0x80,0x14,0x3c, +0x30,0x00,0xb6,0xaf,0x38,0x15,0x85,0x26,0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf, +0x2c,0x00,0xb5,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0x0c,0x00,0xa2,0x8c,0xc8,0x02,0xa3,0x90,0x06,0x00,0x16,0x24, +0x82,0x17,0x02,0x00,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14, +0xc8,0x02,0xa3,0xa0,0x08,0x00,0xa2,0x8c,0x01,0x00,0x03,0x24,0x42,0x17,0x02,0x00, +0x03,0x00,0x42,0x30,0x4e,0x01,0x43,0x10,0x25,0xb0,0x02,0x3c,0x38,0x15,0x85,0x26, +0x0c,0x00,0xa2,0x8c,0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,0x01,0x00,0x44,0x30, +0x0d,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x08,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00, +0x42,0x17,0x02,0x00,0x03,0x00,0x43,0x30,0xef,0xff,0x64,0x14,0x00,0x00,0x00,0x00, +0x10,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00,0x82,0x17,0x02,0x00,0x60,0x02,0x43,0x10, +0x0f,0x00,0x10,0x3c,0xc7,0x02,0xb3,0x90,0x25,0xb0,0x02,0x3c,0x62,0x0c,0x42,0x34, +0xff,0x00,0x63,0x32,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x90,0x26,0xc6,0x02,0x02,0x92,0x00,0x00,0x00,0x00,0x6f,0x01,0x40,0x10, +0x01,0x00,0x02,0x24,0x25,0xb0,0x11,0x3c,0x03,0x0d,0x23,0x36,0x00,0x00,0x62,0x90, +0x00,0x00,0x00,0x00,0x70,0x00,0x42,0x30,0x95,0x01,0x40,0x14,0xcc,0x00,0x02,0x24, +0xc4,0x02,0x02,0x96,0x00,0x00,0x00,0x00,0x23,0x20,0x53,0x00,0x2b,0x18,0x53,0x00, +0x23,0x10,0x62,0x02,0x0a,0x10,0x83,0x00,0x03,0x00,0x42,0x2c,0x62,0x01,0x40,0x10, +0x00,0x00,0x00,0x00,0xc4,0x02,0x03,0x92,0x63,0x0c,0x22,0x36,0x21,0x20,0x00,0x00, +0x00,0x00,0x43,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x38,0x15,0x83,0x26,0xc3,0x02,0x62,0x90, +0x08,0x00,0x66,0x8c,0xc2,0x02,0x73,0xa0,0x23,0x20,0x53,0x00,0x2b,0x38,0x62,0x02, +0x23,0x90,0x62,0x02,0x02,0x2c,0x06,0x00,0x0b,0x90,0x87,0x00,0x3f,0x00,0xa5,0x30, +0x3f,0x00,0xc4,0x30,0x24,0x00,0x02,0x24,0x20,0x00,0x03,0x24,0x23,0x10,0x44,0x00, +0x7d,0x01,0x40,0x16,0x23,0x18,0x65,0x00,0x21,0x40,0x80,0x00,0x21,0xa8,0xa0,0x00, +0x02,0x80,0x17,0x3c,0x2b,0x28,0xc8,0x02,0xf3,0x01,0xa0,0x10,0x38,0x15,0x82,0x26, +0x80,0x10,0x08,0x00,0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,0x18,0x00,0x44,0x8c, +0x00,0x00,0x00,0x00,0x82,0x25,0x04,0x00,0x38,0x15,0x86,0x26,0x0c,0x00,0xc3,0x8c, +0x00,0x00,0x00,0x00,0xff,0x03,0x67,0x30,0x7b,0x01,0xe0,0x10,0x00,0x02,0x62,0x30, +0x04,0x00,0x40,0x10,0x18,0x00,0xe4,0x00,0x00,0xfc,0x02,0x24,0x25,0x38,0xe2,0x00, +0x18,0x00,0xe4,0x00,0x82,0x82,0x03,0x00,0xff,0x03,0x10,0x32,0x00,0x02,0x03,0x32, +0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x45,0x30, +0x00,0xfc,0x02,0x24,0x25,0x80,0x02,0x02,0x18,0x00,0x04,0x02,0x80,0x1d,0x04,0x00, +0x25,0xb0,0x11,0x3c,0x80,0x0c,0x24,0x36,0x94,0x0c,0x31,0x36,0x12,0x80,0x00,0x00, +0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x18,0x62,0x00, +0x25,0x18,0x65,0x00,0x21,0x28,0x60,0x00,0xc3,0x4b,0x00,0x0c,0x10,0x00,0xa3,0xaf, +0x00,0x00,0x23,0x8e,0xff,0x0f,0x02,0x3c,0xc0,0x03,0x10,0x32,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x80,0x85,0x10,0x00,0x25,0x18,0x70,0x00,0x21,0x20,0x20,0x02, +0x21,0x28,0x60,0x00,0x10,0x00,0xa3,0xaf,0xc3,0x4b,0x00,0x0c,0x00,0x00,0x00,0x00, +0x38,0x15,0x83,0x26,0x08,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x59,0x01,0x40,0x04, +0xc0,0x28,0x15,0x00,0x21,0x10,0xa3,0x00,0xac,0x00,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x22,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xad,0x00,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x23,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xae,0x00,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x24,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xaf,0x00,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x25,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb0,0x00,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x26,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb1,0x00,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x27,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb2,0x00,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x28,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb3,0x00,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x29,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0xb6,0x3d,0xe3,0x92,0x22,0x00,0x02,0x24,0x03,0x00,0x62,0x10,0x92,0x00,0x02,0x24, +0x0d,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x08,0x00,0x43,0x8c, +0x01,0x00,0x44,0x3a,0x24,0x00,0x02,0x24,0x02,0x1a,0x03,0x00,0x3f,0x00,0x63,0x30, +0x01,0x00,0x84,0x30,0x67,0x01,0x80,0x10,0x23,0x28,0x43,0x00,0x42,0x18,0x12,0x00, +0x40,0x10,0x03,0x00,0x21,0x90,0x43,0x00,0x38,0x15,0x83,0x26,0xc3,0x02,0x62,0x90, +0x00,0x00,0x00,0x00,0x2b,0x10,0x62,0x02,0x46,0x01,0x40,0x10,0x2b,0x10,0x45,0x02, +0x06,0x00,0x40,0x10,0x24,0x00,0x06,0x24,0x08,0x00,0x62,0x8c,0x00,0x00,0x00,0x00, +0x02,0x12,0x02,0x00,0x3f,0x00,0x42,0x30,0x21,0x30,0x52,0x00,0x2b,0x28,0xc6,0x02, +0x46,0x01,0xa0,0x10,0x38,0x15,0x82,0x26,0x80,0x10,0x06,0x00,0x38,0x15,0x83,0x26, +0x21,0x10,0x43,0x00,0x18,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x82,0x25,0x04,0x00, +0x38,0x15,0x83,0x26,0x10,0x00,0x70,0x8c,0x00,0x00,0x00,0x00,0x82,0x3a,0x10,0x00, +0xff,0x03,0xe7,0x30,0x4d,0x01,0xe0,0x10,0x00,0x02,0xe2,0x30,0x04,0x00,0x40,0x10, +0x18,0x00,0xe4,0x00,0x00,0xfc,0x02,0x24,0x25,0x38,0xe2,0x00,0x18,0x00,0xe4,0x00, +0x02,0x85,0x10,0x00,0xff,0x03,0x10,0x32,0x00,0x02,0x03,0x32,0x12,0x10,0x00,0x00, +0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x45,0x30,0x00,0xfc,0x02,0x24, +0x25,0x80,0x02,0x02,0x18,0x00,0x04,0x02,0x80,0x1d,0x04,0x00,0x25,0xb0,0x11,0x3c, +0x88,0x0c,0x24,0x36,0x9c,0x0c,0x31,0x36,0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00, +0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x18,0x62,0x00,0x25,0x18,0x65,0x00, +0x21,0x28,0x60,0x00,0xc3,0x4b,0x00,0x0c,0x10,0x00,0xa3,0xaf,0x00,0x00,0x23,0x8e, +0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0xc0,0x03,0x10,0x32,0x24,0x18,0x62,0x00, +0x80,0x85,0x10,0x00,0x25,0x18,0x70,0x00,0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x00, +0xc3,0x4b,0x00,0x0c,0x10,0x00,0xa3,0xaf,0xd8,0x4f,0x00,0x08,0x00,0x00,0x00,0x00, +0x80,0x0c,0x42,0x34,0x00,0x00,0x43,0x8c,0x21,0x30,0xa0,0x00,0xc0,0xff,0x02,0x3c, +0x24,0x20,0x62,0x00,0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c,0x2b,0x51,0x00,0x08, +0x18,0x00,0xc3,0x24,0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e,0x0d,0x00,0x40,0x10, +0x02,0x80,0x17,0x3c,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x45,0x00, +0xf8,0xff,0x44,0x14,0x04,0x00,0x63,0x24,0x08,0x00,0xc2,0x8c,0xc0,0xff,0x03,0x24, +0x3f,0x00,0x24,0x32,0x24,0x10,0x43,0x00,0x25,0x10,0x44,0x00,0x08,0x00,0xc2,0xac, +0x02,0x80,0x17,0x3c,0xb6,0x3d,0xe3,0x92,0x22,0x00,0x02,0x24,0x3a,0x00,0x62,0x10, +0x92,0x00,0x02,0x24,0x39,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,0x25,0xb0,0x02,0x3c, +0x24,0x0a,0x42,0x34,0x00,0x00,0x44,0x8c,0x3f,0x3f,0x03,0x3c,0x3f,0x3f,0x63,0x34, +0x24,0x20,0x83,0x00,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0xe6,0x15,0x53,0x24, +0xee,0x16,0x72,0x24,0x21,0x88,0x00,0x00,0x52,0x51,0x00,0x08,0x10,0x00,0xa4,0xaf, +0x95,0x45,0x00,0x0c,0x00,0x00,0x00,0x00,0x43,0x00,0x40,0x10,0x38,0x15,0x85,0x26, +0x01,0x00,0x31,0x26,0x21,0x00,0x22,0x2e,0x17,0x00,0x40,0x10,0x38,0x15,0x82,0x26, +0xc0,0x80,0x11,0x00,0x10,0x00,0xa4,0x27,0x21,0x28,0x13,0x02,0x95,0x45,0x00,0x0c, +0x04,0x00,0x06,0x24,0x21,0x28,0x12,0x02,0x10,0x00,0xa4,0x27,0xf0,0xff,0x40,0x14, +0x04,0x00,0x06,0x24,0x38,0x15,0x85,0x26,0x08,0x00,0xa3,0x8c,0xc0,0xff,0x02,0x3c, +0xff,0xff,0x42,0x34,0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00,0x00,0x24,0x04,0x00, +0xff,0x7f,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x08,0x00,0xa3,0xac,0x38,0x15,0x82,0x26,0x0c,0x00,0x43,0x8c,0x00,0x40,0x04,0x3c, +0x25,0x18,0x64,0x00,0xd1,0x4f,0x00,0x08,0x0c,0x00,0x43,0xac,0xc6,0x02,0x02,0xa2, +0xff,0x4f,0x00,0x08,0xc4,0x02,0x13,0xa6,0x0a,0x4f,0x00,0x0c,0x00,0x00,0x00,0x00, +0x0f,0x50,0x00,0x08,0xc4,0x02,0x13,0xa6,0x25,0xb0,0x02,0x3c,0x88,0x0c,0x42,0x34, +0x00,0x00,0x44,0x8c,0x02,0x80,0x03,0x3c,0x38,0x15,0x66,0x24,0xc0,0xff,0x02,0x3c, +0x24,0x20,0x82,0x00,0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c,0x83,0x51,0x00,0x08, +0x18,0x00,0xc3,0x24,0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e,0xbc,0xff,0x40,0x10, +0x25,0xb0,0x02,0x3c,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x45,0x00, +0xf8,0xff,0x44,0x14,0x04,0x00,0x63,0x24,0x08,0x00,0xc2,0x8c,0x3f,0x00,0x23,0x32, +0xff,0xc0,0x04,0x24,0x24,0x10,0x44,0x00,0x00,0x1a,0x03,0x00,0x25,0x10,0x43,0x00, +0x3d,0x51,0x00,0x08,0x08,0x00,0xc2,0xac,0x08,0x00,0xa3,0x8c,0xc0,0xff,0x02,0x3c, +0xff,0xff,0x42,0x34,0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00,0x00,0x24,0x04,0x00, +0x25,0x18,0x64,0x00,0x00,0x80,0x02,0x3c,0x66,0x51,0x00,0x08,0x25,0x18,0x62,0x00, +0x63,0x0c,0x23,0x36,0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x19,0x50,0x00,0x08,0x38,0x15,0x83,0x26,0x8b,0x00,0xe0,0x10,0x21,0x40,0x00,0x00, +0x2b,0x10,0x42,0x02,0x21,0x20,0x92,0x00,0x00,0x00,0x42,0x38,0x24,0x00,0x08,0x24, +0x2b,0x18,0x43,0x02,0x0b,0x40,0x82,0x00,0x7d,0xfe,0x60,0x10,0x20,0x00,0x15,0x24, +0x38,0x15,0x83,0x26,0x0a,0x00,0x62,0x94,0x02,0x80,0x17,0x3c,0x3f,0x00,0x42,0x30, +0x2b,0x50,0x00,0x08,0x21,0xa8,0x52,0x00,0x83,0x00,0xa0,0x10,0x80,0x10,0x08,0x00, +0x21,0x10,0x46,0x00,0x18,0x00,0x45,0x8c,0x25,0xb0,0x04,0x3c,0xc3,0x4b,0x00,0x0c, +0x80,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,0x94,0x0c,0x84,0x34,0x60,0x50,0x00,0x08, +0x21,0x28,0x00,0x00,0x21,0x10,0xa3,0x00,0xb4,0x01,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x22,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb5,0x01,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x23,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb6,0x01,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x24,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb7,0x01,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x25,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb8,0x01,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x26,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb9,0x01,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x27,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xba,0x01,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x28,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xbb,0x01,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x29,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0xc6,0x50,0x00,0x08,0x00,0x00,0x00,0x00,0x30,0x00,0x43,0x8c,0x34,0x50,0x00,0x08, +0x82,0x25,0x03,0x00,0x08,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00, +0x3f,0x00,0x42,0x30,0x2b,0x18,0x42,0x02,0xbc,0xfe,0x60,0x14,0x23,0x30,0x52,0x00, +0x21,0x30,0x00,0x00,0x21,0x28,0x00,0x00,0x38,0x15,0x82,0x26,0x30,0x00,0x43,0x8c, +0xee,0x50,0x00,0x08,0x82,0x25,0x03,0x00,0x23,0x10,0x92,0x00,0x2b,0x18,0x44,0x02, +0x2b,0x20,0x45,0x02,0x0b,0x40,0x43,0x00,0xf5,0xfd,0x80,0x14,0x23,0xa8,0xb2,0x00, +0x2a,0x50,0x00,0x08,0x21,0xa8,0x00,0x00,0x30,0x00,0xc5,0x8c,0xb9,0x51,0x00,0x08, +0x25,0xb0,0x04,0x3c,0xff,0xff,0x43,0x26,0x42,0x18,0x03,0x00,0x40,0x10,0x03,0x00, +0x21,0x10,0x43,0x00,0xd8,0x50,0x00,0x08,0x01,0x00,0x52,0x24,0x21,0x00,0xa0,0x10, +0x80,0x10,0x06,0x00,0x21,0x10,0x43,0x00,0x18,0x00,0x45,0x8c,0x25,0xb0,0x04,0x3c, +0xc3,0x4b,0x00,0x0c,0x88,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,0x9c,0x0c,0x84,0x34, +0xc3,0x4b,0x00,0x0c,0x21,0x28,0x00,0x00,0xd8,0x4f,0x00,0x08,0x00,0x00,0x00,0x00, +0xff,0xff,0x05,0x36,0x60,0x00,0x06,0x24,0x6a,0x44,0x00,0x0c,0x24,0x00,0x04,0x24, +0xf2,0x19,0x00,0x0c,0xe8,0x03,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x24,0x00,0x04,0x24,0x95,0x44,0x00,0x0c, +0xff,0xff,0x05,0x36,0x1f,0x00,0x53,0x30,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x21,0x1a,0x00,0x0c,0x64,0x00,0x04,0x24,0xf1,0x4f,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x30,0x00,0x65,0x8c,0x46,0x52,0x00,0x08,0x25,0xb0,0x04,0x3c, +0x00,0xff,0x84,0x30,0x02,0x22,0x04,0x00,0x08,0x00,0x80,0x10,0x02,0x80,0x02,0x3c, +0xff,0x00,0x02,0x24,0x04,0x00,0x82,0x10,0xcc,0xff,0x03,0x24,0x02,0x80,0x02,0x3c, +0x08,0x00,0xe0,0x03,0x22,0x18,0x43,0xa0,0x02,0x80,0x02,0x3c,0x08,0x00,0xe0,0x03, +0x22,0x18,0x44,0xa0,0x02,0x24,0x04,0x00,0xff,0x00,0x84,0x30,0xc0,0x10,0x04,0x00, +0x21,0x10,0x44,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x02,0x80,0x03,0x3c, +0x80,0x10,0x02,0x00,0x38,0x15,0x63,0x24,0x20,0x00,0x84,0x2c,0x09,0x00,0x80,0x10, +0x21,0x10,0x43,0x00,0x80,0x11,0x43,0x8c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x02,0x19,0x03,0x00,0x7f,0x00,0x63,0x30,0x00,0x00,0x43,0xac,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x2c,0x39,0x43,0x8c,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x02,0x19,0x03,0x00,0x7f,0x00,0x63,0x30,0x00,0x00,0x43,0xac, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0x85,0x30,0xd2,0xff,0xa3,0x24, +0xfe,0xff,0xa2,0x24,0xda,0xff,0xa4,0x24,0x04,0x00,0x63,0x2c,0x08,0x00,0x84,0x2c, +0x06,0x00,0x60,0x14,0xff,0x00,0x42,0x30,0xf0,0xff,0xa2,0x24,0xfc,0xff,0xa3,0x24, +0x16,0x00,0x46,0x2c,0x03,0x00,0x80,0x10,0xff,0x00,0x62,0x30,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xfa,0xff,0xa3,0x24,0xfc,0xff,0xc0,0x10,0x21,0x10,0xa0,0x00, +0x08,0x00,0xe0,0x03,0xff,0x00,0x62,0x30,0xe0,0xff,0xbd,0x27,0x02,0x80,0x08,0x3c, +0x18,0x00,0xbf,0xaf,0x38,0x15,0x08,0x25,0xe8,0x02,0x07,0x8d,0x02,0x80,0x02,0x3c, +0xb6,0x3d,0x49,0x90,0x00,0x03,0x02,0x3c,0x25,0x38,0xe2,0x00,0xff,0xf3,0x02,0x3c, +0xff,0xff,0x42,0x34,0x02,0x80,0x03,0x3c,0x24,0x38,0xe2,0x00,0x3c,0x94,0x6a,0x24, +0x01,0x80,0x06,0x3c,0x22,0x00,0x02,0x24,0x21,0x20,0x40,0x01,0x34,0x4b,0xc6,0x24, +0x10,0x00,0xa5,0x27,0x05,0x00,0x22,0x11,0xe8,0x02,0x07,0xad,0x18,0x00,0xbf,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x44,0x00,0x02,0x24, +0x10,0x00,0xa2,0xa3,0x49,0x00,0x03,0x24,0x47,0x00,0x02,0x24,0x11,0x00,0xa3,0xa3, +0x12,0x00,0xa2,0xa3,0xd0,0x07,0x03,0x24,0x01,0x00,0x02,0x24,0x13,0x00,0xa0,0xa3, +0x0c,0x00,0x43,0xad,0xe1,0x1c,0x00,0x0c,0x14,0x00,0x42,0xa1,0x18,0x00,0xbf,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0x02,0x80,0x10,0x3c,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf, +0x38,0x15,0x04,0x26,0xd8,0x02,0x82,0x8c,0x01,0x00,0x03,0x24,0x02,0x15,0x02,0x00, +0x0f,0x00,0x42,0x30,0x07,0x00,0x43,0x10,0x25,0xb0,0x06,0x3c,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x4c,0x00,0xc3,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00, +0x03,0x00,0x42,0x30,0x45,0x00,0x40,0x10,0xff,0xf3,0x02,0x3c,0xe8,0x02,0x85,0x8c, +0x00,0x00,0x00,0x00,0x82,0x16,0x05,0x00,0x03,0x00,0x42,0x30,0x17,0x00,0x40,0x14, +0x38,0x15,0x11,0x26,0x0c,0x09,0xc3,0x34,0x00,0x00,0x63,0x8c,0x12,0x01,0x02,0x3c, +0x13,0x13,0x42,0x34,0x6b,0x00,0x62,0x10,0xff,0xfc,0x02,0x3c,0x22,0x02,0x02,0x3c, +0x23,0x13,0x42,0x34,0x52,0x00,0x62,0x10,0xff,0xfc,0x02,0x3c,0x00,0x03,0x02,0x3c, +0x25,0x10,0xa2,0x00,0xe8,0x02,0x82,0xac,0x38,0x15,0x05,0x26,0xe8,0x02,0xa3,0x8c, +0xff,0xf3,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x04,0x04,0x3c, +0x25,0x18,0x64,0x00,0xe8,0x02,0xa3,0xac,0x38,0x15,0x11,0x26,0xfc,0x23,0x24,0x8e, +0xff,0xff,0x02,0x34,0xd5,0xff,0x82,0x10,0x00,0x00,0x00,0x00,0x80,0x11,0x22,0x8e, +0x00,0x00,0x00,0x00,0x02,0x11,0x02,0x00,0x7f,0x00,0x42,0x30,0x3f,0x00,0x43,0x2c, +0x28,0x00,0x60,0x14,0x3b,0x00,0x42,0x2c,0x00,0x24,0x22,0x8e,0x02,0x19,0x04,0x00, +0x02,0x11,0x02,0x00,0x23,0x18,0x62,0x00,0x3a,0x00,0x60,0x18,0x01,0x00,0x03,0x24, +0xeb,0x02,0x22,0x92,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0x0e,0x00,0x43,0x10, +0x38,0x15,0x02,0x26,0x25,0xb0,0x04,0x3c,0x12,0x01,0x05,0x3c,0x0c,0x09,0x84,0x34, +0xc3,0x4b,0x00,0x0c,0x13,0x13,0xa5,0x34,0xe8,0x02,0x23,0x8e,0xff,0xfc,0x02,0x3c, +0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x01,0x04,0x3c,0x25,0x18,0x64,0x00, +0xe8,0x02,0x23,0xae,0x38,0x15,0x02,0x26,0xe8,0x02,0x43,0x8c,0x00,0x20,0x04,0x3c, +0x25,0x18,0x64,0x00,0xd9,0x52,0x00,0x08,0xe8,0x02,0x43,0xac,0xe8,0x02,0x83,0x8c, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x20,0x00,0xbd,0x27,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0xe8,0x02,0x83,0xac,0xa5,0xff,0x40,0x10,0x03,0x00,0x03,0x24,0xeb,0x02,0x22,0x92, +0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0xa0,0xff,0x43,0x10,0x32,0x03,0x05,0x3c, +0x25,0xb0,0x04,0x3c,0x0c,0x09,0x84,0x34,0xc3,0x4b,0x00,0x0c,0x33,0x13,0xa5,0x34, +0xe8,0x02,0x23,0x8e,0xff,0xdf,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x00,0x03,0x04,0x3c,0x25,0x18,0x64,0x00,0xd9,0x52,0x00,0x08,0xe8,0x02,0x23,0xae, +0xff,0xff,0x42,0x34,0x24,0x10,0xa2,0x00,0x00,0x02,0x03,0x3c,0xf7,0x52,0x00,0x08, +0x25,0x10,0x43,0x00,0xeb,0x02,0x22,0x92,0x02,0x00,0x03,0x24,0x03,0x00,0x42,0x30, +0xd5,0xff,0x43,0x10,0x38,0x15,0x02,0x26,0x25,0xb0,0x04,0x3c,0x22,0x02,0x05,0x3c, +0x0c,0x09,0x84,0x34,0xc3,0x4b,0x00,0x0c,0x23,0x13,0xa5,0x34,0xe8,0x02,0x23,0x8e, +0xff,0xfc,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x21,0x53,0x00,0x08, +0x00,0x02,0x04,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0xa2,0x00,0x00,0x01,0x03,0x3c, +0xf7,0x52,0x00,0x08,0x25,0x10,0x43,0x00,0x25,0xb0,0x03,0x3c,0x03,0x0d,0x63,0x34, +0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x08,0x00,0x42,0x34, +0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x03,0x0d,0x63,0x34, +0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xf7,0x00,0x42,0x30,0x00,0x00,0x62,0xa0, +0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,0x00,0x00,0x62,0x90, +0x21,0x20,0x00,0x00,0x3f,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24, +0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24, +0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00, +0xff,0x00,0x42,0x30,0x80,0x00,0x42,0x34,0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24, +0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xff,0x00,0x03,0x3c, +0x82,0x01,0x49,0x34,0x81,0x01,0x48,0x34,0x24,0x10,0x83,0x00,0x02,0x3c,0x02,0x00, +0x00,0xff,0x63,0x34,0x02,0x80,0x02,0x3c,0x38,0x15,0x45,0x24,0x02,0x32,0x04,0x00, +0x01,0x00,0x02,0x24,0x24,0x20,0x83,0x00,0xda,0x0c,0xa2,0xa0,0xc8,0x0c,0xa0,0xac, +0xcc,0x0c,0xa0,0xac,0xd0,0x0c,0xa0,0xac,0x06,0x00,0x80,0x14,0xd4,0x0c,0xa0,0xac, +0x00,0x00,0x02,0x91,0x00,0x00,0x23,0x91,0xd8,0x0c,0xa2,0xa0,0x08,0x00,0xe0,0x03, +0xd9,0x0c,0xa3,0xa0,0xd9,0x0c,0xa7,0xa0,0x08,0x00,0xe0,0x03,0xd8,0x0c,0xa6,0xa0, +0x02,0x80,0x03,0x3c,0x38,0x15,0x63,0x24,0xd9,0x0c,0x66,0x90,0xd8,0x0c,0x65,0x90, +0x25,0xb0,0x02,0x3c,0x82,0x01,0x44,0x34,0x81,0x01,0x42,0x34,0x00,0x00,0x45,0xa0, +0x00,0x00,0x86,0xa0,0x08,0x00,0xe0,0x03,0xda,0x0c,0x60,0xa0,0x02,0x80,0x08,0x3c, +0x38,0x15,0x04,0x25,0xda,0x0c,0x82,0x90,0x00,0x00,0x00,0x00,0x15,0x00,0x40,0x10, +0x21,0x18,0x00,0x00,0xcc,0x0c,0x82,0x8c,0xc8,0x0c,0x85,0x8c,0x25,0xb0,0x03,0x3c, +0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x82,0x01,0x67,0x34,0x0f,0x00,0x40,0x10, +0x81,0x01,0x66,0x34,0xd9,0x0c,0x83,0x90,0xd8,0x0c,0x82,0x90,0xf0,0x00,0x63,0x30, +0x1f,0x00,0x42,0x30,0x00,0x00,0xc2,0xa0,0x00,0x00,0xe3,0xa0,0x38,0x15,0x02,0x25, +0x01,0x00,0x03,0x24,0xd4,0x0c,0x40,0xac,0xc8,0x0c,0x40,0xac,0xcc,0x0c,0x40,0xac, +0xd0,0x0c,0x40,0xac,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xd0,0x0c,0x82,0x8c, +0x25,0xb0,0x03,0x3c,0x82,0x01,0x69,0x34,0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00, +0x0e,0x00,0x40,0x14,0x81,0x01,0x66,0x34,0xd4,0x0c,0x82,0x8c,0x00,0x00,0x00,0x00, +0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x08,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0xd9,0x0c,0x83,0x90,0xd8,0x0c,0x82,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0xc2,0xa0, +0x00,0x00,0x23,0xa1,0xca,0x53,0x00,0x08,0x38,0x15,0x02,0x25,0xd9,0x0c,0x83,0x90, +0xd8,0x0c,0x82,0x90,0xf0,0x00,0x63,0x30,0x7f,0x00,0x42,0x30,0x00,0x00,0xc2,0xa0, +0x00,0x00,0x23,0xa1,0xca,0x53,0x00,0x08,0x38,0x15,0x02,0x25,0x00,0x00,0x85,0xac, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x25,0xb0,0x03,0x3c,0x33,0x02,0x65,0x34,0x00,0x11,0x04,0x00,0x00,0x00,0xa2,0xa0, +0x30,0x02,0x63,0x34,0x00,0x00,0x65,0x8c,0x0f,0x00,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x28,0xa2,0x00,0x01,0x00,0x03,0x24,0x04,0x18,0x83,0x00,0x02,0x00,0xa0,0x10, +0x21,0x10,0x00,0x00,0xff,0xff,0x62,0x30,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x25,0xb0,0x11,0x3c,0x18,0x00,0xb2,0xaf, +0x4c,0x00,0x22,0x36,0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x44,0x90, +0x02,0x80,0x03,0x3c,0x02,0x00,0x02,0x24,0xff,0x00,0x84,0x30,0x07,0x00,0x82,0x10, +0x38,0x15,0x72,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x5e,0x24,0x43,0x96, +0x01,0x00,0x02,0x24,0xf7,0xff,0x62,0x14,0x21,0x20,0x00,0x00,0xf6,0x53,0x00,0x0c, +0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x24,0xf6,0x53,0x00,0x0c,0x21,0x80,0x40,0x00, +0x25,0x80,0x02,0x02,0x33,0x02,0x23,0x36,0x08,0x00,0x02,0x24,0xff,0xff,0x10,0x32, +0x40,0x00,0x25,0x36,0x00,0x00,0x62,0xa0,0xea,0xff,0x00,0x16,0x00,0x00,0x00,0x00, +0x00,0x00,0xa2,0x94,0x5c,0x24,0x43,0x96,0xff,0xdf,0x42,0x30,0x00,0x20,0x44,0x34, +0x01,0x00,0x63,0x24,0x5c,0x24,0x43,0xa6,0x00,0x00,0xa2,0xa4,0x00,0x00,0xa4,0xa4, +0x13,0x54,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xb8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c, +0x3c,0x00,0xb1,0xaf,0x38,0x00,0xb0,0xaf,0x40,0x00,0xbf,0xaf,0x38,0x15,0x50,0x24, +0x10,0x24,0x03,0x8e,0x02,0x80,0x11,0x3c,0x01,0x00,0x02,0x24,0x01,0x00,0x63,0x30, +0x10,0x00,0xa4,0x27,0x4c,0x39,0x25,0x26,0x07,0x00,0x62,0x10,0x0a,0x00,0x06,0x24, +0x40,0x00,0xbf,0x8f,0x3c,0x00,0xb1,0x8f,0x38,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27,0x6c,0x45,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x21,0x28,0x00,0x00,0x4c,0x39,0x24,0x26,0x58,0x45,0x00,0x0c,0x0a,0x00,0x06,0x24, +0x28,0x00,0x03,0x24,0x05,0x00,0x02,0x24,0x15,0x24,0x03,0xa2,0x14,0x24,0x02,0xa2, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x1f,0x49,0x00,0x0c, +0x48,0x00,0x04,0x24,0x21,0x80,0x40,0x00,0x10,0x00,0xa5,0x27,0xe4,0xff,0x40,0x10, +0x0a,0x00,0x06,0x24,0x08,0x00,0x44,0x94,0x14,0x00,0x02,0x24,0x14,0x00,0x02,0xae, +0x02,0x80,0x02,0x3c,0x28,0x00,0x03,0x24,0x25,0x20,0x82,0x00,0x0c,0x00,0x03,0xae, +0x6c,0x45,0x00,0x0c,0x20,0x00,0x84,0x24,0x42,0x09,0x00,0x0c,0x21,0x20,0x00,0x02, +0x46,0x54,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x18,0x03,0x42,0x34,0xc0,0x51,0x63,0x24,0x00,0x00,0x43,0xac,0x63,0x00,0x02,0x24, +0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0x02,0x80,0x02,0x3c, +0xb0,0x3d,0x45,0x94,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xb3,0x3d,0x66,0x90, +0xc0,0x3d,0x47,0x90,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xcb,0x3d,0x6a,0x90, +0xcd,0x3d,0x4b,0x90,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xd0,0x3d,0x6c,0x90, +0xd2,0x3d,0x4d,0x90,0x07,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,0x25,0xb0,0x04,0x3c, +0xbd,0x3d,0x43,0xa0,0xb0,0x03,0x84,0x34,0x02,0x80,0x02,0x3c,0x02,0x80,0x18,0x3c, +0xb2,0x3d,0x08,0x93,0x00,0x00,0x85,0xac,0xbe,0x3d,0x40,0xa0,0x02,0x80,0x02,0x3c, +0x00,0x00,0x86,0xac,0xbf,0x3d,0x40,0xa0,0x02,0x80,0x02,0x3c,0x00,0x00,0x87,0xac, +0x02,0x80,0x0f,0x3c,0xe0,0x3d,0x40,0xa0,0x02,0x80,0x02,0x3c,0xdc,0x3d,0x40,0xa4, +0x38,0x15,0xee,0x25,0x02,0x80,0x03,0x3c,0xfd,0xff,0x02,0x24,0xde,0x3d,0x60,0xa4, +0xe2,0x0a,0xc2,0xa1,0x01,0x00,0x03,0x24,0x00,0x78,0x02,0x24,0xe0,0x0a,0xc3,0xa1, +0xe4,0x0a,0xc2,0xa5,0xff,0x07,0x03,0x24,0x0f,0x00,0x09,0x31,0x02,0x00,0x02,0x24, +0xe6,0x0a,0xc3,0xa5,0x00,0x00,0x88,0xac,0x00,0x00,0x8a,0xac,0x00,0x00,0x8b,0xac, +0x00,0x00,0x8c,0xac,0x00,0x00,0x8d,0xac,0x0c,0x00,0x22,0x11,0x82,0x0b,0xc0,0xa1, +0xb2,0x3d,0x02,0x93,0x01,0x00,0x05,0x24,0x0f,0x00,0x42,0x30,0x20,0x00,0x45,0x10, +0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0xfc,0x3d,0x40,0xa4, +0xf1,0x3d,0x65,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c, +0xb7,0x3d,0x44,0x90,0x06,0x00,0x03,0x24,0x2d,0x00,0x83,0x10,0x0b,0x00,0x02,0x24, +0x22,0x00,0x82,0x10,0x02,0x80,0x02,0x3c,0xca,0x3d,0x43,0x90,0x00,0x00,0x00,0x00, +0x36,0x00,0x60,0x10,0x00,0xe0,0x02,0x3c,0x04,0xe0,0x02,0x3c,0x38,0x15,0xe4,0x25, +0x00,0x8e,0x42,0x34,0x00,0x15,0x03,0x3c,0x74,0x0b,0x82,0xac,0x00,0x15,0x63,0x34, +0x00,0x42,0x02,0x24,0x6c,0x0b,0x83,0xac,0x70,0x0b,0x82,0xac,0xb2,0x3d,0x02,0x93, +0x01,0x00,0x05,0x24,0x0f,0x00,0x42,0x30,0xe2,0xff,0x45,0x14,0x00,0x00,0x00,0x00, +0x00,0x80,0x02,0x3c,0x38,0x15,0xe4,0x25,0x02,0xbc,0x42,0x34,0x15,0x15,0x03,0x3c, +0x07,0x07,0x63,0x34,0x74,0x0b,0x82,0xac,0x02,0x02,0x02,0x3c,0x6c,0x0b,0x83,0xac, +0x70,0x0b,0x82,0xac,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xfc,0x3d,0x40,0xa4, +0xf1,0x3d,0x65,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x80,0x02,0x3c, +0x00,0xbc,0x42,0x34,0x15,0x15,0x03,0x3c,0x74,0x0b,0xc2,0xad,0x07,0x07,0x63,0x34, +0x03,0x03,0x02,0x3c,0x6c,0x0b,0xc3,0xad,0xae,0x54,0x00,0x08,0x70,0x0b,0xc2,0xad, +0x02,0x80,0x02,0x3c,0xca,0x3d,0x43,0x90,0x00,0x00,0x00,0x00,0x14,0x00,0x60,0x10, +0x00,0xc0,0x02,0x3c,0x04,0xc0,0x02,0x3c,0x00,0xb8,0x42,0x34,0x74,0x0b,0xc2,0xad, +0x00,0x15,0x03,0x3c,0x02,0x02,0x02,0x3c,0x00,0x07,0x63,0x34,0x00,0x22,0x42,0x34, +0x6c,0x0b,0xc3,0xad,0xae,0x54,0x00,0x08,0x70,0x0b,0xc2,0xad,0x38,0x15,0xe4,0x25, +0x00,0xb2,0x42,0x34,0x00,0x1c,0x03,0x3c,0x74,0x0b,0x82,0xac,0x00,0x1c,0x63,0x34, +0x00,0x04,0x02,0x24,0x6c,0x0b,0x83,0xac,0xcd,0x54,0x00,0x08,0x70,0x0b,0x82,0xac, +0x00,0xb2,0x42,0x34,0x1c,0x1c,0x03,0x3c,0x74,0x0b,0xc2,0xad,0x07,0x07,0x63,0x34, +0x00,0x04,0x02,0x24,0x6c,0x0b,0xc3,0xad,0xae,0x54,0x00,0x08,0x70,0x0b,0xc2,0xad, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x7f,0x00,0x02,0x3c,0x0d,0xb8,0x46,0x34, +0x80,0x00,0x03,0x3c,0x25,0x30,0xc3,0x00,0x00,0x04,0x02,0x3c,0x25,0x30,0xc2,0x00, +0x00,0x08,0x03,0x3c,0x25,0x30,0xc3,0x00,0x02,0x80,0x04,0x3c,0x01,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x38,0x15,0x84,0x24,0x41,0xb0,0x05,0x3c,0x30,0x54,0x63,0x24, +0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x00,0xa6,0xac,0x10,0x0b,0x86,0xac, +0x08,0x0b,0x86,0xac,0x08,0x00,0xa5,0x34,0x86,0x00,0x06,0x24,0x00,0x00,0xa6,0xa4, +0x14,0x0b,0x86,0xa4,0x0c,0x0b,0x80,0xac,0x16,0x0b,0x80,0xa4,0x18,0x0b,0x86,0xa4, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x2b,0x55,0x00,0x08,0x00,0x00,0x00,0x00,0x42,0xb0,0x02,0x3c, +0xa0,0xff,0x03,0x24,0x01,0x00,0x42,0x34,0xe8,0xff,0xbd,0x27,0x21,0x20,0x00,0x00, +0x01,0x00,0x05,0x24,0x00,0x01,0x06,0x24,0x00,0x00,0x43,0xa0,0x10,0x00,0xbf,0xaf, +0xaa,0x1c,0x00,0x0c,0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f,0x03,0x00,0x04,0x24, +0x01,0x00,0x05,0x24,0x40,0x1f,0x06,0x24,0xaa,0x1c,0x00,0x08,0x18,0x00,0xbd,0x27, +0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x14,0x00,0xbf,0xaf,0x81,0x58,0x00,0x0c, +0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0xff,0xff,0x03,0x34, +0x21,0x80,0x40,0x00,0xf8,0x23,0x43,0xac,0xf0,0x23,0x40,0xa4,0xf2,0x23,0x40,0xa4, +0xf4,0x23,0x43,0xac,0x21,0x38,0x00,0x00,0x80,0xff,0x08,0x24,0x21,0x30,0x40,0x00, +0x21,0x28,0x40,0x00,0xdc,0x0c,0xa0,0xa4,0xde,0x0c,0xa0,0xa4,0xe0,0x0c,0xa0,0xa4, +0xe2,0x0c,0xa0,0xa4,0xe4,0x0c,0xa0,0xa4,0xe6,0x0c,0xa0,0xa4,0xe8,0x0c,0xa0,0xa4, +0xea,0x0c,0xa0,0xa4,0xec,0x0c,0xa0,0xa4,0x21,0x20,0x00,0x00,0x21,0x18,0xc4,0x00, +0x01,0x00,0x84,0x24,0x08,0x00,0x82,0x28,0xfc,0xff,0x40,0x14,0xf8,0x0c,0x60,0xa0, +0x01,0x00,0xe7,0x24,0x20,0x00,0xe2,0x28,0xf7,0x0c,0xc8,0xa0,0x24,0x00,0xa5,0x24, +0xec,0xff,0x40,0x14,0x24,0x00,0xc6,0x24,0x25,0xb0,0x02,0x3c,0x10,0x00,0x03,0x24, +0xb0,0x03,0x42,0x34,0x02,0x80,0x04,0x3c,0x60,0x18,0x84,0x24,0x00,0x00,0x43,0xac, +0x21,0x28,0x00,0x00,0x58,0x45,0x00,0x0c,0x04,0x00,0x06,0x24,0x51,0x59,0x00,0x0c, +0x00,0x00,0x00,0x00,0xc4,0x59,0x00,0x0c,0x08,0x26,0x00,0xae,0x26,0x5b,0x00,0x0c, +0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0xb6,0x3d,0x64,0x90,0x92,0x00,0x02,0x24, +0x03,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0xa0,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00, +0x86,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,0xfd,0x59,0x00,0x0c,0x00,0x00,0x00,0x00, +0x29,0x5c,0x00,0x0c,0x00,0x00,0x00,0x00,0x5e,0x24,0x00,0xa6,0x0f,0x5c,0x00,0x0c, +0x5c,0x24,0x00,0xa6,0x02,0x80,0x05,0x3c,0x02,0x80,0x06,0x3c,0x44,0x3b,0xa3,0x24, +0x4c,0x3b,0xc4,0x24,0x80,0x00,0x02,0x24,0x64,0x24,0x02,0xa6,0x14,0x00,0xbf,0x8f, +0x04,0x00,0x63,0xac,0x44,0x3b,0xa3,0xac,0x4c,0x3b,0xc4,0xac,0x04,0x00,0x84,0xac, +0x68,0x24,0x00,0xa2,0x69,0x24,0x00,0xa2,0x6a,0x24,0x00,0xa6,0x60,0x24,0x00,0xa6, +0x62,0x24,0x00,0xa6,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27, +0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x58,0x56,0x63,0x24,0x18,0x03,0x42,0x34, +0x00,0x00,0x43,0xac,0x69,0x58,0x00,0x08,0x00,0x00,0x00,0x00,0xe8,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0x01,0x80,0x02,0x3c,0x25,0xb0,0x10,0x3c,0x18,0x03,0x03,0x36, +0x74,0x56,0x42,0x24,0x00,0x00,0x62,0xac,0x14,0x00,0xbf,0xaf,0x70,0x54,0x00,0x0c, +0x00,0x00,0x00,0x00,0x22,0x56,0x00,0x0c,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x24, +0x02,0x80,0x02,0x3c,0x45,0x58,0x00,0x0c,0xc3,0x20,0x43,0xa0,0x32,0x41,0x00,0x0c, +0x00,0x00,0x00,0x00,0x3e,0x55,0x00,0x0c,0x00,0x00,0x00,0x00,0x44,0x00,0x03,0x36, +0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x34,0x00,0x00,0x62,0xa4, +0x96,0x55,0x00,0x0c,0x00,0x00,0x00,0x00,0x2d,0x55,0x00,0x0c,0x00,0x00,0x00,0x00, +0x11,0x58,0x00,0x0c,0x00,0x00,0x00,0x00,0xd5,0x57,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x80,0x04,0x3c,0x8c,0x2e,0x84,0x24,0x2e,0x58,0x00,0x0c,0x01,0x00,0x05,0x24, +0x00,0x80,0x04,0x3c,0x18,0x34,0x84,0x24,0x2e,0x58,0x00,0x0c,0x02,0x00,0x05,0x24, +0xff,0x48,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x80,0x04,0x3c,0xec,0x73,0x84,0x24, +0x2e,0x58,0x00,0x0c,0x03,0x00,0x05,0x24,0x02,0x80,0x02,0x3c,0xc0,0x3d,0x43,0x90, +0x43,0x00,0x04,0x36,0x29,0x00,0x60,0x10,0xd8,0x00,0x10,0x36,0x07,0x00,0x02,0x24, +0x2b,0x00,0x62,0x10,0x25,0xb0,0x04,0x3c,0x10,0x02,0x86,0x34,0x43,0x00,0x85,0x34, +0x03,0x00,0x02,0x24,0x10,0x00,0x03,0x24,0x00,0x00,0xa2,0xa0,0xd8,0x00,0x84,0x34, +0x00,0x00,0xc3,0xa0,0x00,0x00,0x82,0x90,0x80,0xff,0x03,0x24,0x42,0xb0,0x05,0x3c, +0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xa0,0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34, +0x00,0x00,0x82,0x94,0x00,0x00,0x00,0x00,0xc0,0x00,0x42,0x34,0x00,0x00,0x82,0xa4, +0x00,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x34,0x00,0x00,0xa3,0xa0, +0x0c,0x55,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24, +0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,0xc2,0x2e,0x00,0x0c,0x21,0x38,0x00,0x00, +0x2b,0x55,0x00,0x0c,0x00,0x00,0x00,0x00,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f, +0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x00,0x00,0x80,0xa0, +0x00,0x00,0x03,0x92,0x80,0xff,0x02,0x24,0x25,0x18,0x62,0x00,0x00,0x00,0x03,0xa2, +0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x82,0x94,0x42,0xb0,0x05,0x3c, +0xc0,0x00,0x42,0x34,0x00,0x00,0x82,0xa4,0x00,0x00,0xa3,0x90,0x00,0x00,0x00,0x00, +0x01,0x00,0x63,0x34,0x00,0x00,0xa3,0xa0,0x0c,0x55,0x00,0x0c,0x00,0x00,0x00,0x00, +0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00, +0xc2,0x2e,0x00,0x0c,0x21,0x38,0x00,0x00,0x2b,0x55,0x00,0x0c,0x00,0x00,0x00,0x00, +0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0x21,0x20,0x00,0x00,0x20,0xb0,0x06,0x3c,0xff,0xff,0x05,0x34, +0x21,0x18,0x86,0x00,0x04,0x00,0x84,0x24,0x2a,0x10,0xa4,0x00,0x00,0x00,0x60,0xac, +0xfb,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xb8,0xff,0xbd,0x27,0x25,0xb0,0x04,0x3c,0x44,0x00,0xbf,0xaf,0x40,0x00,0xbe,0xaf, +0x3c,0x00,0xb7,0xaf,0x38,0x00,0xb6,0xaf,0x34,0x00,0xb5,0xaf,0x30,0x00,0xb4,0xaf, +0x2c,0x00,0xb3,0xaf,0x28,0x00,0xb2,0xaf,0x24,0x00,0xb1,0xaf,0x20,0x00,0xb0,0xaf, +0x0a,0x00,0x83,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x30, +0x0c,0x00,0x40,0x10,0x4c,0x87,0x02,0x3c,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00, +0x10,0x00,0x42,0x30,0x60,0x01,0x40,0x10,0x4c,0x87,0x02,0x3c,0x54,0x00,0x83,0x34, +0x50,0x00,0x82,0x34,0x00,0x00,0x45,0xac,0x00,0x00,0x65,0xa4,0x46,0x56,0x00,0x08, +0x02,0x80,0x03,0x3c,0x54,0x00,0x85,0x34,0x00,0xe0,0x42,0x34,0x50,0x00,0x84,0x34, +0x12,0x01,0x03,0x24,0x00,0x00,0x82,0xac,0x00,0x00,0xa3,0xac,0x02,0x80,0x03,0x3c, +0x38,0x15,0x62,0x24,0xe2,0x0a,0x4f,0x90,0xe6,0x0a,0x45,0x94,0x25,0xb0,0x1e,0x3c, +0x1c,0x00,0xaf,0xa3,0x6c,0x0b,0x43,0x8c,0x58,0x00,0xc6,0x37,0x5c,0x00,0xc7,0x37, +0x10,0x00,0xa3,0xaf,0x70,0x0b,0x4f,0x8c,0x96,0x01,0x03,0x24,0xff,0xff,0x04,0x24, +0x14,0x00,0xaf,0xaf,0x74,0x0b,0x42,0x8c,0x60,0x00,0xc8,0x37,0x64,0x00,0xc9,0x37, +0x18,0x00,0xa2,0xaf,0x24,0x10,0x02,0x3c,0x21,0x28,0xa2,0x00,0x4c,0x81,0x02,0x3c, +0x00,0xe0,0x42,0x34,0x00,0x00,0xc2,0xac,0x8a,0x00,0xca,0x37,0x00,0x00,0xe3,0xac, +0x89,0x00,0xcb,0x37,0x28,0x28,0x02,0x24,0x09,0x00,0x03,0x24,0x00,0x00,0x04,0xad, +0x8c,0x00,0xcd,0x37,0x00,0x00,0x24,0xad,0x8e,0x00,0xce,0x37,0x00,0x00,0x42,0xa5, +0x00,0x00,0x63,0xa1,0x10,0x10,0x02,0x24,0x0a,0x0a,0x03,0x24,0x00,0x00,0xa2,0xa5, +0x00,0x00,0xc3,0xa5,0x25,0xb0,0x03,0x3c,0x13,0x00,0x02,0x24,0x90,0x00,0x63,0x34, +0x00,0x00,0x62,0xa0,0x25,0xb0,0x02,0x3c,0x40,0x00,0x03,0x24,0x91,0x00,0x42,0x34, +0x00,0x00,0x43,0xa0,0x92,0x00,0xd1,0x37,0x3a,0x01,0x02,0x24,0x21,0x00,0x03,0x24, +0xb5,0x00,0xd2,0x37,0x00,0x00,0x22,0xa6,0x00,0x00,0x43,0xa2,0x10,0x00,0xa3,0x8f, +0xa0,0x00,0xd3,0x37,0xa4,0x00,0xd4,0x37,0x00,0x00,0x63,0xae,0x14,0x00,0xa2,0x8f, +0xa8,0x00,0xd5,0x37,0xac,0x00,0xd6,0x37,0x00,0x00,0x82,0xae,0x18,0x00,0xa3,0x8f, +0x21,0x10,0x02,0x3c,0xff,0x77,0x42,0x34,0x00,0x00,0xa3,0xae,0x00,0x00,0xc2,0xae, +0x25,0xb0,0x02,0x3c,0xd8,0x00,0x42,0x34,0xb0,0x00,0xd7,0x37,0x00,0x00,0xe5,0xae, +0x00,0x00,0x40,0xa0,0x1c,0x00,0xa2,0x93,0x25,0xb0,0x03,0x3c,0xb4,0x00,0x63,0x34, +0x00,0x00,0x62,0xa0,0xb6,0x00,0xdf,0x37,0x04,0x00,0x03,0x24,0x25,0xb0,0x02,0x3c, +0x00,0x00,0xe3,0xa3,0xb9,0x00,0x42,0x34,0x25,0xb0,0x03,0x3c,0x00,0x00,0x44,0xa0, +0xba,0x00,0x63,0x34,0x0f,0x00,0x02,0x24,0x00,0x00,0x62,0xa4,0x25,0xb0,0x02,0x3c, +0x16,0x01,0x42,0x34,0x00,0x00,0x40,0xa4,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x18,0x01,0x63,0x34,0x1a,0x01,0x42,0x34,0x00,0x00,0x60,0xa4,0x00,0x00,0x40,0xa4, +0x25,0xb0,0x03,0x3c,0xff,0xff,0x02,0x3c,0xff,0x0f,0x42,0x34,0xdc,0x00,0x63,0x34, +0x00,0x00,0x62,0xac,0x2f,0x00,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x32,0x32,0x63,0x34, +0xd0,0x01,0x42,0x34,0x00,0x00,0x43,0xac,0x5e,0x00,0x0c,0x3c,0x25,0xb0,0x03,0x3c, +0x08,0x00,0x02,0x3c,0x32,0x43,0x90,0x35,0xd8,0x01,0xcf,0x37,0xd4,0x01,0x63,0x34, +0x30,0xa5,0x42,0x34,0x00,0x00,0x70,0xac,0x28,0x83,0x8c,0x35,0x00,0x00,0xe2,0xad, +0xdc,0x01,0xc3,0x37,0x1a,0x06,0x02,0x24,0x02,0x80,0x0f,0x3c,0xe0,0x01,0xc4,0x37, +0xb6,0x3d,0xed,0x91,0x00,0x00,0x6c,0xac,0x00,0x00,0x82,0xa4,0xc2,0x00,0x02,0x3c, +0x07,0x07,0x03,0x24,0x51,0x10,0x42,0x34,0xf4,0x01,0xc5,0x37,0xf8,0x01,0xc6,0x37, +0x00,0x00,0xa3,0xa4,0x00,0x02,0xc7,0x37,0x00,0x00,0xc2,0xac,0x26,0x00,0x03,0x24, +0x04,0x00,0x02,0x24,0x03,0x02,0xc8,0x37,0x00,0x00,0xe3,0xa4,0x36,0x02,0xc9,0x37, +0x00,0x00,0x02,0xa1,0xc0,0x01,0x03,0x24,0x0c,0x00,0x02,0x24,0x34,0x02,0xca,0x37, +0x00,0x00,0x22,0xa1,0x37,0x02,0xcb,0x37,0x00,0x00,0x43,0xa5,0x03,0x00,0x02,0x24, +0x22,0x00,0x03,0x24,0x00,0x00,0x62,0xa1,0xd0,0x00,0xa3,0x11,0x1b,0x1b,0x02,0x3c, +0x13,0x13,0x02,0x3c,0x13,0x13,0x42,0x34,0x60,0x01,0xc3,0x37,0x64,0x01,0xc4,0x37, +0x68,0x01,0xc5,0x37,0x7c,0x01,0xca,0x37,0x6c,0x01,0xc6,0x37,0x70,0x01,0xc7,0x37, +0x74,0x01,0xc8,0x37,0x78,0x01,0xc9,0x37,0x00,0x00,0x62,0xac,0x00,0x00,0x82,0xac, +0x02,0x80,0x03,0x3c,0x00,0x00,0xa2,0xac,0x00,0x00,0xc2,0xac,0x00,0x00,0xe2,0xac, +0x00,0x00,0x02,0xad,0x00,0x00,0x22,0xad,0x00,0x00,0x42,0xad,0xb6,0x3d,0x65,0x90, +0x25,0xb0,0x0c,0x3c,0x01,0x70,0x03,0x3c,0x80,0x01,0x82,0x35,0x08,0x5f,0x63,0x34, +0x22,0x00,0x04,0x24,0x00,0x00,0x43,0xac,0xaf,0x00,0xa4,0x10,0x0f,0x1f,0x02,0x3c, +0x92,0x00,0x02,0x24,0xac,0x00,0xa2,0x10,0x0f,0x1f,0x02,0x3c,0x0f,0x10,0x02,0x3c, +0x00,0xf0,0x51,0x34,0xf7,0x01,0x92,0x35,0x15,0xf0,0x4d,0x34,0x77,0x00,0x0e,0x24, +0x84,0x01,0x87,0x35,0x88,0x01,0x88,0x35,0x10,0xf0,0x44,0x34,0x8c,0x01,0x85,0x35, +0x05,0xf0,0x42,0x34,0x00,0x00,0xed,0xac,0x90,0x01,0x83,0x35,0x00,0x00,0x04,0xad, +0x94,0x01,0x86,0x35,0x00,0x00,0xa2,0xac,0xf5,0x0f,0x02,0x24,0x00,0x00,0x71,0xac, +0x98,0x01,0x89,0x35,0x00,0x00,0xc2,0xac,0x9c,0x01,0x8a,0x35,0xf0,0x0f,0x03,0x24, +0x0d,0x00,0x02,0x24,0x25,0xb0,0x0f,0x3c,0x00,0x00,0x23,0xad,0xa0,0x01,0x8b,0x35, +0x00,0x00,0x42,0xad,0xf6,0x01,0x8c,0x35,0xff,0xff,0x02,0x24,0xa7,0x01,0xef,0x35, +0x00,0x00,0x6d,0xad,0x25,0xb0,0x05,0x3c,0x00,0x00,0x8e,0xa1,0x00,0x00,0x4e,0xa2, +0x00,0x00,0xe2,0xa1,0x25,0xb0,0x02,0x3c,0xa8,0x01,0xb8,0x34,0xff,0xff,0x09,0x24, +0xac,0x01,0x42,0x34,0x03,0x04,0x04,0x3c,0x07,0x08,0x03,0x3c,0x25,0xb0,0x0f,0x3c, +0x00,0x00,0x09,0xaf,0x0c,0x00,0x06,0x24,0x00,0x00,0x49,0xac,0x01,0x02,0x84,0x34, +0x05,0x06,0x63,0x34,0xb4,0x01,0xb1,0x34,0xb8,0x01,0xb2,0x34,0xbc,0x01,0xb3,0x34, +0xc0,0x01,0xb4,0x34,0xc1,0x01,0xb5,0x34,0xc2,0x01,0xb6,0x34,0xc3,0x01,0xb7,0x34, +0x0d,0x00,0x08,0x24,0xc4,0x01,0xab,0x34,0xc5,0x01,0xac,0x34,0x0e,0x00,0x07,0x24, +0xc6,0x01,0xaa,0x34,0xc7,0x01,0xad,0x34,0xb0,0x01,0xef,0x35,0x0f,0x00,0x02,0x24, +0x00,0x00,0xe4,0xad,0x00,0x00,0x23,0xae,0x00,0x00,0x44,0xae,0x00,0x00,0x63,0xae, +0x00,0x00,0x86,0xa2,0x00,0x00,0xa6,0xa2,0x00,0x00,0xc6,0xa2,0x00,0x00,0xe8,0xa2, +0x00,0x00,0x68,0xa1,0x00,0x00,0x87,0xa1,0x00,0x00,0x47,0xa1,0x00,0x00,0xa2,0xa1, +0x57,0x01,0x02,0x3c,0x48,0x00,0xbf,0x34,0x46,0x00,0xae,0x34,0x0e,0xe2,0x42,0x34, +0x25,0xb0,0x03,0x3c,0x00,0x00,0xc0,0xa5,0x4c,0x00,0xbe,0x34,0x00,0x00,0xe2,0xaf, +0x40,0x00,0x63,0x34,0xbc,0x00,0x02,0x24,0x00,0x00,0xc0,0xa3,0x64,0x03,0xb9,0x34, +0x00,0x00,0x62,0xa4,0xfc,0x37,0x02,0x24,0x00,0x00,0x20,0xa3,0xd8,0x00,0xa7,0x34, +0x00,0x00,0x62,0xa4,0x00,0x00,0xe3,0x90,0x80,0xff,0x02,0x24,0x2a,0xb0,0x04,0x3c, +0x25,0x18,0x62,0x00,0x26,0xb0,0x06,0x3c,0x30,0x00,0x89,0x34,0x00,0x00,0xe3,0xa0, +0x38,0x00,0x84,0x34,0x20,0x20,0x02,0x24,0x40,0x00,0x03,0x24,0x00,0x00,0x82,0xa4, +0x79,0x00,0xc8,0x34,0x00,0x00,0x23,0xa1,0x94,0x00,0xaa,0x34,0x16,0x00,0x02,0x24, +0x64,0x00,0x03,0x24,0x00,0x00,0x02,0xa1,0x7c,0x00,0xd2,0x34,0x00,0x00,0x43,0xa5, +0x98,0x00,0xab,0x34,0x7a,0x00,0xc6,0x34,0x22,0x00,0x02,0x24,0x04,0x00,0x03,0x24, +0x00,0x00,0x62,0xa5,0x9c,0x00,0xac,0x34,0x00,0x00,0xc3,0xa0,0x20,0x0c,0x02,0x24, +0x0a,0x00,0x03,0x24,0x00,0x00,0x42,0xa6,0x9a,0x00,0xad,0x34,0x00,0x00,0x83,0xa1, +0x96,0x00,0xae,0x34,0xff,0x03,0x02,0x24,0x02,0x00,0x03,0x24,0x25,0xb0,0x0f,0x3c, +0x00,0x00,0xa2,0xa5,0x89,0x00,0xb1,0x34,0x00,0x00,0xc3,0xa5,0x20,0x00,0x02,0x24, +0xb7,0x00,0xef,0x35,0x09,0x00,0x03,0x24,0x00,0x00,0xe2,0xa1,0x44,0x00,0xa5,0x34, +0x00,0x00,0x23,0xa2,0x00,0x00,0xa3,0x94,0x02,0x80,0x02,0x3c,0x38,0x15,0x46,0x24, +0xff,0xfd,0x02,0x24,0x24,0x18,0x62,0x00,0x00,0x00,0xa3,0xa4,0x00,0x00,0xa2,0x94, +0xe2,0x0a,0xc4,0x90,0x04,0x02,0x03,0x24,0x00,0x02,0x42,0x34,0x00,0x00,0xa2,0xa4, +0x29,0xb0,0x02,0x3c,0x40,0x00,0x42,0x34,0x00,0x00,0x43,0xa4,0x41,0x1a,0x00,0x0c, +0x00,0x00,0x00,0x00,0x44,0x00,0xbf,0x8f,0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f, +0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f,0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f, +0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f,0x20,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27,0x54,0x00,0x85,0x34,0x00,0xe0,0x42,0x34, +0x50,0x00,0x84,0x34,0x12,0x01,0x03,0x24,0x00,0x00,0x82,0xac,0x00,0x00,0xa3,0xa4, +0x46,0x56,0x00,0x08,0x02,0x80,0x03,0x3c,0x00,0xf0,0x51,0x34,0xf7,0x01,0x92,0x35, +0x15,0xf0,0x4d,0x34,0xfa,0x56,0x00,0x08,0xff,0xff,0x0e,0x24,0xd8,0x56,0x00,0x08, +0x1b,0x1b,0x42,0x34,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x08,0x3c,0xfc,0x37,0x02,0x24, +0x40,0x00,0x63,0x34,0x01,0x80,0x04,0x3c,0x00,0x00,0x62,0xa4,0x24,0x7b,0x84,0x24, +0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35,0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00, +0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00,0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30, +0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac, +0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24,0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14, +0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c,0x01,0x80,0x02,0x3c,0x1c,0x75,0x44,0x24, +0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35,0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00, +0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00,0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30, +0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac, +0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24,0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c, +0x02,0x80,0x05,0x3c,0x30,0x60,0x42,0x24,0x02,0x80,0x03,0x3c,0x04,0x3e,0xa2,0xac, +0x00,0x80,0x02,0x3c,0xa4,0x3e,0x60,0xac,0x04,0x3e,0xa4,0x24,0x02,0x80,0x03,0x3c, +0x78,0x06,0x42,0x24,0xa8,0x3e,0x60,0xa4,0x08,0x00,0x82,0xac,0x02,0x80,0x03,0x3c, +0x00,0x80,0x02,0x3c,0xaa,0x3e,0x60,0xa4,0x02,0x80,0x06,0x3c,0x54,0x0a,0x42,0x24, +0x00,0x80,0x03,0x3c,0xac,0x3e,0xc7,0x24,0x14,0x00,0x82,0xac,0x04,0x08,0x63,0x24, +0x02,0x80,0x02,0x3c,0xac,0x3e,0xc0,0xac,0x10,0x00,0x83,0xac,0x04,0x00,0xe0,0xac, +0x02,0x80,0x03,0x3c,0xb4,0x3e,0x40,0xa0,0x02,0x80,0x02,0x3c,0xb8,0x3e,0x60,0xac, +0xbc,0x3e,0x40,0xac,0x00,0x80,0x02,0x3c,0x00,0x80,0x03,0x3c,0xb4,0x1e,0x42,0x24, +0xe8,0x0c,0x63,0x24,0x40,0x00,0x82,0xac,0x1c,0x00,0x83,0xac,0x00,0x80,0x02,0x3c, +0x00,0x80,0x03,0x3c,0x58,0x11,0x42,0x24,0xc4,0x15,0x63,0x24,0x20,0x00,0x82,0xac, +0x24,0x00,0x83,0xac,0x00,0x80,0x02,0x3c,0x00,0x80,0x03,0x3c,0x3c,0x1a,0x42,0x24, +0xa0,0x26,0x63,0x24,0x28,0x00,0x82,0xac,0x2c,0x00,0x83,0xac,0x00,0x80,0x02,0x3c, +0x00,0x80,0x03,0x3c,0x10,0x1f,0x42,0x24,0x00,0x03,0x63,0x24,0x3c,0x00,0x82,0xac, +0x08,0x00,0xe0,0x03,0x50,0x00,0x83,0xac,0x25,0xb0,0x02,0x3c,0x08,0x00,0x42,0x34, +0x00,0x00,0x43,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x0e,0x3c, +0x02,0x80,0x08,0x3c,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0xf8,0x03,0x4d,0x24, +0x00,0x14,0x6c,0x24,0x01,0x00,0x07,0x24,0x00,0x00,0xcb,0x25,0xff,0xff,0x0a,0x24, +0x00,0x04,0x09,0x25,0x80,0x1a,0x07,0x00,0x21,0x10,0x6b,0x00,0x00,0x00,0x42,0xac, +0x90,0x00,0x4a,0xac,0x00,0x04,0x04,0x8d,0x01,0x00,0xe7,0x24,0x08,0x00,0x45,0x24, +0x21,0x18,0x6d,0x00,0x05,0x00,0xe6,0x28,0x04,0x00,0x82,0xac,0x00,0x00,0x44,0xac, +0x04,0x00,0x49,0xac,0x00,0x04,0x02,0xad,0x8c,0x00,0x40,0xac,0x6c,0x00,0xa3,0xac, +0xf0,0xff,0xc0,0x14,0x68,0x00,0xac,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0xc9,0xad, +0x05,0x00,0xa2,0x2c,0x13,0x00,0x40,0x10,0xff,0xff,0x07,0x24,0x02,0x80,0x02,0x3c, +0x80,0x1a,0x05,0x00,0x00,0x00,0x42,0x24,0x0e,0x00,0xa0,0x10,0x21,0x30,0x62,0x00, +0x90,0x00,0xc3,0x8c,0xff,0xff,0x02,0x24,0x0a,0x00,0x62,0x14,0x00,0x00,0x00,0x00, +0x8c,0x00,0xc2,0x8c,0x00,0x00,0x00,0x00,0x06,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x01,0x00,0x02,0x24,0x88,0x00,0xc4,0xac,0x8c,0x00,0xc2,0xac,0x90,0x00,0xc5,0xac, +0x21,0x38,0xa0,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00,0x25,0xb0,0x04,0x3c, +0x01,0x80,0x02,0x3c,0x18,0x03,0x85,0x34,0x14,0x61,0x42,0x24,0xe0,0xff,0xbd,0x27, +0x00,0x00,0xa2,0xac,0x1b,0x00,0x86,0x34,0xdb,0xff,0x03,0x24,0x27,0x00,0x84,0x34, +0x07,0x00,0x02,0x24,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x83,0xa0, +0x18,0x00,0xbf,0xaf,0x00,0x00,0xc2,0xa0,0x01,0x00,0x11,0x24,0x21,0x80,0x00,0x00, +0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x02,0x01,0x00,0x02,0x26,0xff,0x00,0x50,0x30, +0x2b,0x18,0x30,0x02,0xfa,0xff,0x60,0x10,0x00,0x00,0x00,0x00,0x2a,0x42,0x00,0x0c, +0x21,0x20,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x04,0x3c, +0x2d,0x0a,0x84,0x34,0x00,0x00,0x83,0x90,0x02,0x80,0x06,0x3c,0x78,0x93,0xc5,0x24, +0x02,0x00,0x02,0x24,0xcf,0x00,0x63,0x30,0x14,0x00,0xa2,0xa0,0x20,0x00,0x63,0x34, +0x20,0x4e,0x02,0x24,0x00,0x00,0x83,0xa0,0x0c,0x00,0xa2,0xac,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x93,0xc4,0x24,0x02,0x80,0x05,0x3c,0x00,0x80,0x06,0x3c, +0x64,0x89,0xa5,0x24,0xe1,0x1c,0x00,0x08,0x30,0x6d,0xc6,0x24,0x03,0x80,0x03,0x3c, +0x00,0x80,0x63,0x24,0x40,0x10,0x04,0x3c,0xff,0xff,0x63,0x30,0x02,0x80,0x02,0x3c, +0x38,0x15,0x42,0x24,0x25,0xc0,0x64,0x00,0x1c,0x25,0x58,0xac,0x80,0x00,0x18,0x27, +0x28,0x25,0x58,0xac,0x80,0x00,0x18,0x27,0x34,0x25,0x58,0xac,0x80,0x00,0x18,0x27, +0x40,0x25,0x58,0xac,0x80,0x00,0x18,0x27,0xe0,0xff,0xbd,0x27,0x4c,0x25,0x58,0xac, +0x80,0x00,0x18,0x27,0x1c,0x00,0xb7,0xaf,0x18,0x00,0xb6,0xaf,0x14,0x00,0xb5,0xaf, +0x10,0x00,0xb4,0xaf,0x0c,0x00,0xb3,0xaf,0x08,0x00,0xb2,0xaf,0x04,0x00,0xb1,0xaf, +0x00,0x00,0xb0,0xaf,0x58,0x25,0x58,0xac,0x28,0x25,0x45,0x8c,0x34,0x25,0x46,0x8c, +0x40,0x25,0x47,0x8c,0x4c,0x25,0x48,0x8c,0x58,0x25,0x49,0x8c,0x80,0x00,0x18,0x27, +0x64,0x25,0x58,0xac,0x21,0x50,0x00,0x03,0x25,0x18,0x64,0x00,0x25,0xb0,0x0e,0x3c, +0x20,0x10,0x04,0x3c,0x80,0x00,0x18,0x27,0x18,0x25,0x43,0xac,0x24,0x25,0x45,0xac, +0x30,0x25,0x46,0xac,0x3c,0x25,0x47,0xac,0x48,0x25,0x48,0xac,0x54,0x25,0x49,0xac, +0xac,0x00,0xc3,0x35,0xb0,0x24,0x44,0xac,0xac,0x24,0x44,0xac,0xbc,0x24,0x44,0xac, +0xb8,0x24,0x44,0xac,0xc8,0x24,0x44,0xac,0xc4,0x24,0x44,0xac,0xd4,0x24,0x44,0xac, +0xd0,0x24,0x44,0xac,0x70,0x25,0x58,0xac,0x60,0x25,0x4a,0xac,0xe0,0x24,0x44,0xac, +0xdc,0x24,0x44,0xac,0xec,0x24,0x44,0xac,0xe8,0x24,0x44,0xac,0xf8,0x24,0x44,0xac, +0xf4,0x24,0x44,0xac,0x00,0x02,0x18,0x27,0x00,0x00,0x68,0x8c,0xe4,0x0a,0x46,0x94, +0x88,0x25,0x58,0xac,0xb0,0x00,0xc3,0x35,0x00,0x00,0x76,0x8c,0x21,0x10,0x05,0x3c, +0x70,0x25,0x52,0x8c,0x23,0x10,0x0c,0x3c,0x22,0x10,0x0d,0x3c,0x02,0x80,0x11,0x3c, +0x02,0x80,0x14,0x3c,0x02,0x80,0x15,0x3c,0x02,0x80,0x17,0x3c,0x00,0x80,0xa3,0x34, +0x24,0x10,0x07,0x3c,0x21,0x98,0x00,0x03,0x23,0x18,0x66,0x00,0x00,0x02,0x18,0x27, +0x54,0x3b,0x26,0x26,0x5c,0x3b,0x8a,0x26,0x64,0x3b,0xa9,0x26,0x6c,0x3b,0xeb,0x26, +0x00,0x04,0x8f,0x35,0x01,0x00,0x08,0x25,0x00,0x40,0xb0,0x35,0x00,0x01,0xce,0x35, +0x6c,0x25,0x52,0xac,0x84,0x25,0x53,0xac,0xe0,0x25,0x4f,0xac,0xa4,0x25,0x48,0xac, +0xb0,0x25,0x43,0xac,0xd4,0x25,0x50,0xac,0xc8,0x25,0x56,0xac,0x00,0x00,0xc7,0xad, +0xc4,0x25,0x47,0xac,0xe4,0x25,0x44,0xac,0x04,0x25,0x44,0xac,0x00,0x25,0x44,0xac, +0x8e,0x25,0x40,0xa4,0x8d,0x25,0x40,0xa0,0x8c,0x25,0x40,0xa0,0xd8,0x25,0x4c,0xac, +0xdc,0x25,0x4c,0xac,0x9c,0x25,0x45,0xac,0xa0,0x25,0x45,0xac,0xa8,0x25,0x45,0xac, +0xac,0x25,0x45,0xac,0xcc,0x25,0x4d,0xac,0xd0,0x25,0x4d,0xac,0xc0,0x25,0x47,0xac, +0xe8,0x25,0x44,0xac,0xf4,0x25,0x58,0xac,0xf0,0x25,0x58,0xac,0x04,0x00,0x29,0xad, +0x5c,0x3b,0x8a,0xae,0x04,0x00,0x6b,0xad,0x64,0x3b,0xa9,0xae,0x04,0x00,0xc6,0xac, +0x6c,0x3b,0xeb,0xae,0x54,0x3b,0x26,0xae,0x04,0x00,0x4a,0xad,0x02,0x80,0x03,0x3c, +0x00,0x14,0x62,0x24,0x00,0x14,0x66,0xac,0x04,0x00,0xc2,0xac,0x54,0x3b,0x22,0xae, +0x04,0x00,0x46,0xac,0x08,0x00,0x58,0xac,0x10,0x00,0x40,0xac,0x00,0x01,0x18,0x27, +0x21,0x48,0x40,0x00,0x18,0x00,0x48,0x24,0x01,0x00,0x07,0x24,0x21,0x18,0x40,0x01, +0x21,0x28,0x00,0x00,0x07,0x00,0x06,0x24,0x21,0x20,0xa8,0x00,0x21,0x10,0xa9,0x00, +0xff,0xff,0xc6,0x24,0x20,0x00,0x58,0xac,0x28,0x00,0x47,0xac,0x18,0x00,0xa5,0x24, +0x00,0x00,0x8a,0xac,0x04,0x00,0x83,0xac,0x00,0x00,0x64,0xac,0x00,0x01,0x18,0x27, +0xf5,0xff,0xc1,0x04,0x21,0x18,0x80,0x00,0x02,0x80,0x02,0x3c,0x64,0x3b,0x49,0x24, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x04,0x00,0x27,0x8d,0xd8,0x14,0x4b,0x24, +0x04,0x00,0x44,0xad,0x02,0x00,0x08,0x24,0x00,0x14,0x6a,0x24,0x21,0x28,0x00,0x00, +0x01,0x00,0x06,0x24,0x21,0x20,0xab,0x00,0x21,0x10,0xaa,0x00,0xff,0xff,0xc6,0x24, +0xe0,0x00,0x58,0xac,0xe8,0x00,0x48,0xac,0x18,0x00,0xa5,0x24,0x00,0x00,0x89,0xac, +0x04,0x00,0x87,0xac,0x00,0x00,0xe4,0xac,0x00,0x02,0x18,0x27,0xf5,0xff,0xc1,0x04, +0x21,0x38,0x80,0x00,0x02,0x80,0x02,0x3c,0x6c,0x3b,0x48,0x24,0x02,0x80,0x03,0x3c, +0x02,0x80,0x02,0x3c,0x04,0x00,0x07,0x8d,0x08,0x15,0x4b,0x24,0x04,0x00,0x24,0xad, +0x00,0x14,0x6a,0x24,0x03,0x00,0x09,0x24,0x21,0x28,0x00,0x00,0x01,0x00,0x06,0x24, +0x21,0x20,0xab,0x00,0x21,0x10,0xaa,0x00,0xff,0xff,0xc6,0x24,0x10,0x01,0x58,0xac, +0x18,0x01,0x49,0xac,0x18,0x00,0xa5,0x24,0x00,0x00,0x88,0xac,0x04,0x00,0x87,0xac, +0x00,0x00,0xe4,0xac,0x00,0x08,0x18,0x27,0xf5,0xff,0xc1,0x04,0x21,0x38,0x80,0x00, +0x1c,0x00,0xb7,0x8f,0x18,0x00,0xb6,0x8f,0x14,0x00,0xb5,0x8f,0x10,0x00,0xb4,0x8f, +0x0c,0x00,0xb3,0x8f,0x08,0x00,0xb2,0x8f,0x04,0x00,0xb1,0x8f,0x00,0x00,0xb0,0x8f, +0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x04,0x00,0x04,0xad,0xc8,0xff,0xbd,0x27, +0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf, +0x68,0x8d,0x73,0x24,0xdc,0x8d,0x52,0x24,0x02,0x80,0x03,0x3c,0xff,0xff,0x02,0x3c, +0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x30,0x00,0xbf,0xaf,0xff,0x1f,0x54,0x34,0x38,0x15,0x70,0x24,0x21,0x88,0x00,0x00, +0x02,0x80,0x15,0x3c,0x63,0x49,0x00,0x0c,0x21,0x20,0x20,0x02,0x90,0x11,0x05,0x8e, +0x6c,0x00,0x66,0x8e,0x6c,0x00,0x43,0x8e,0x48,0x8d,0xa2,0x26,0x1b,0x00,0x44,0x90, +0x21,0x18,0x66,0x00,0x24,0x28,0xb4,0x00,0x00,0x21,0x04,0x00,0x42,0x18,0x03,0x00, +0x00,0x20,0xa5,0x34,0x5c,0x11,0x03,0xae,0x80,0x11,0x04,0xae,0x90,0x11,0x05,0xae, +0x84,0x11,0x04,0xae,0x21,0x30,0x00,0x00,0x21,0x10,0x06,0x02,0x01,0x00,0xc6,0x24, +0x1d,0x00,0xc3,0x28,0xb1,0x11,0x40,0xa0,0x94,0x11,0x40,0xa0,0xfa,0xff,0x60,0x14, +0xce,0x11,0x40,0xa0,0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0xec,0x11,0x00,0xae, +0xe4,0xff,0x40,0x14,0x94,0x00,0x10,0x26,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c, +0x38,0x15,0x4b,0x24,0x02,0x80,0x02,0x3c,0xdc,0x8d,0x6f,0x24,0x68,0x8d,0x4d,0x24, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x48,0x8d,0x6e,0x24,0x28,0x8d,0x4c,0x24, +0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,0x21,0x20,0x6d,0x00,0x21,0x10,0x6f,0x00, +0x21,0x28,0x2e,0x02,0x21,0x30,0x2c,0x02,0x00,0x00,0x88,0x8c,0x00,0x00,0xa9,0x90, +0x00,0x00,0xc7,0x90,0x00,0x00,0x4a,0x8c,0x21,0x10,0x2b,0x02,0x01,0x00,0x31,0x26, +0x21,0x18,0x6b,0x00,0x1d,0x00,0x24,0x2a,0xf8,0x04,0x68,0xac,0xce,0x04,0x47,0xa0, +0x6c,0x05,0x6a,0xac,0xef,0xff,0x80,0x14,0x94,0x04,0x49,0xa0,0x02,0x80,0x02,0x3c, +0x38,0x15,0x4a,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x04,0x8c,0x6b,0x24, +0xa4,0x8a,0x4c,0x24,0x21,0x88,0x00,0x00,0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00, +0x21,0x40,0x2a,0x01,0x21,0x38,0x2b,0x01,0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90, +0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01,0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28, +0xc9,0x03,0x64,0xa0,0xf8,0xff,0x40,0x14,0x38,0x03,0x65,0xa0,0x21,0x10,0x2c,0x02, +0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26, +0x1d,0x00,0x22,0x2a,0x77,0x04,0x64,0xa0,0x5a,0x04,0x65,0xa0,0xeb,0xff,0x40,0x14, +0x05,0x00,0x29,0x25,0x30,0x00,0xbf,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x29,0xb0,0x02,0x3c,0xf8,0xff,0xbd,0x27, +0x00,0x00,0x40,0xac,0x08,0x00,0x44,0x34,0x0c,0x00,0x45,0x34,0x10,0x00,0x46,0x34, +0x04,0x00,0x43,0x34,0x14,0x00,0x47,0x34,0x18,0x00,0x48,0x34,0x1c,0x00,0x49,0x34, +0x20,0x00,0x4a,0x34,0x24,0x00,0x4b,0x34,0x28,0x00,0x4c,0x34,0x2c,0x00,0x4d,0x34, +0x30,0x00,0x4e,0x34,0x34,0x00,0x4f,0x34,0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf, +0x3c,0x00,0x51,0x34,0x38,0x00,0x50,0x34,0x02,0x80,0x02,0x3c,0x00,0x00,0x60,0xac, +0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac,0x21,0x20,0x00,0x00,0x00,0x00,0xc0,0xac, +0xff,0xff,0x05,0x24,0x00,0x00,0xe0,0xac,0x38,0x15,0x46,0x24,0x00,0x00,0x00,0xad, +0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad,0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad, +0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad,0x00,0x00,0xe0,0xad,0x00,0x00,0x00,0xae, +0x00,0x00,0x20,0xae,0x21,0x18,0x86,0x00,0x01,0x00,0x84,0x24,0x08,0x00,0x82,0x28, +0xfc,0xff,0x40,0x14,0xf0,0x04,0x65,0xa0,0x02,0x80,0x02,0x3c,0x38,0x15,0x43,0x24, +0x1f,0x00,0x04,0x24,0x90,0x11,0x62,0x8c,0xff,0xff,0x84,0x24,0xf0,0x00,0x42,0x34, +0x90,0x11,0x62,0xac,0xfb,0xff,0x81,0x04,0x94,0x00,0x63,0x24,0x04,0x00,0xb1,0x8f, +0x00,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x08,0x00,0xbd,0x27,0x48,0xfd,0xbd,0x27, +0xb4,0x02,0xb3,0xaf,0x02,0x80,0x02,0x3c,0x02,0x80,0x13,0x3c,0xf4,0x8e,0x46,0x24, +0x38,0x15,0x63,0x26,0xb0,0x02,0xb2,0xaf,0xac,0x02,0xb1,0xaf,0xa8,0x02,0xb0,0xaf, +0x03,0x00,0x60,0xa0,0x21,0x38,0xa0,0x03,0x90,0x00,0xc8,0x24,0x00,0x00,0xc2,0x8c, +0x04,0x00,0xc3,0x8c,0x08,0x00,0xc4,0x8c,0x0c,0x00,0xc5,0x8c,0x10,0x00,0xc6,0x24, +0x00,0x00,0xe2,0xac,0x04,0x00,0xe3,0xac,0x08,0x00,0xe4,0xac,0x0c,0x00,0xe5,0xac, +0xf6,0xff,0xc8,0x14,0x10,0x00,0xe7,0x24,0x00,0x00,0xc3,0x8c,0x02,0x80,0x02,0x3c, +0x88,0x8f,0x58,0x24,0x00,0x00,0xe3,0xac,0x98,0x00,0xb9,0x27,0x00,0x01,0x12,0x27, +0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x09,0x00,0x04,0x93,0x0d,0x00,0x05,0x93, +0x00,0x00,0x11,0x93,0x02,0x00,0x0d,0x93,0x04,0x00,0x10,0x93,0x06,0x00,0x0c,0x93, +0x08,0x00,0x0f,0x93,0x0a,0x00,0x07,0x93,0x0c,0x00,0x0e,0x93,0x0e,0x00,0x06,0x93, +0x03,0x00,0x08,0x93,0x07,0x00,0x09,0x93,0x0b,0x00,0x0a,0x93,0x0f,0x00,0x0b,0x93, +0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0x22,0x04,0x00,0x00,0x2a,0x05,0x00, +0x25,0x10,0x51,0x00,0x25,0x18,0x70,0x00,0x25,0x20,0x8f,0x00,0x25,0x28,0xae,0x00, +0x00,0x6c,0x0d,0x00,0x00,0x64,0x0c,0x00,0x00,0x3c,0x07,0x00,0x00,0x34,0x06,0x00, +0x25,0x68,0xa2,0x01,0x25,0x60,0x83,0x01,0x25,0x38,0xe4,0x00,0x25,0x30,0xc5,0x00, +0x00,0x46,0x08,0x00,0x00,0x4e,0x09,0x00,0x00,0x56,0x0a,0x00,0x00,0x5e,0x0b,0x00, +0x25,0x40,0x0d,0x01,0x25,0x48,0x2c,0x01,0x25,0x50,0x47,0x01,0x25,0x58,0x66,0x01, +0x10,0x00,0x18,0x27,0x00,0x00,0x28,0xaf,0x04,0x00,0x29,0xaf,0x08,0x00,0x2a,0xaf, +0x0c,0x00,0x2b,0xaf,0xd2,0xff,0x12,0x17,0x10,0x00,0x39,0x27,0x01,0x00,0x02,0x93, +0x05,0x00,0x03,0x93,0x00,0x00,0x09,0x93,0x02,0x00,0x04,0x93,0x04,0x00,0x08,0x93, +0x06,0x00,0x05,0x93,0x07,0x00,0x06,0x93,0x03,0x00,0x07,0x93,0x00,0x12,0x02,0x00, +0x00,0x1a,0x03,0x00,0x25,0x10,0x49,0x00,0x25,0x18,0x68,0x00,0x00,0x24,0x04,0x00, +0x00,0x2c,0x05,0x00,0x25,0x20,0x82,0x00,0x25,0x28,0xa3,0x00,0x00,0x3e,0x07,0x00, +0x00,0x36,0x06,0x00,0x02,0x80,0x02,0x3c,0x25,0x38,0xe4,0x00,0x25,0x30,0xc5,0x00, +0x90,0x90,0x58,0x24,0x04,0x00,0x26,0xaf,0x00,0x00,0x27,0xaf,0x00,0x01,0x12,0x27, +0xa0,0x01,0xb9,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x09,0x00,0x04,0x93, +0x0d,0x00,0x05,0x93,0x00,0x00,0x11,0x93,0x02,0x00,0x0d,0x93,0x04,0x00,0x10,0x93, +0x06,0x00,0x0c,0x93,0x08,0x00,0x0f,0x93,0x0a,0x00,0x07,0x93,0x0c,0x00,0x0e,0x93, +0x0e,0x00,0x06,0x93,0x03,0x00,0x08,0x93,0x07,0x00,0x09,0x93,0x0b,0x00,0x0a,0x93, +0x0f,0x00,0x0b,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0x22,0x04,0x00, +0x00,0x2a,0x05,0x00,0x25,0x10,0x51,0x00,0x25,0x18,0x70,0x00,0x25,0x20,0x8f,0x00, +0x25,0x28,0xae,0x00,0x00,0x6c,0x0d,0x00,0x00,0x64,0x0c,0x00,0x00,0x3c,0x07,0x00, +0x00,0x34,0x06,0x00,0x25,0x68,0xa2,0x01,0x25,0x60,0x83,0x01,0x25,0x38,0xe4,0x00, +0x25,0x30,0xc5,0x00,0x00,0x46,0x08,0x00,0x00,0x4e,0x09,0x00,0x00,0x56,0x0a,0x00, +0x00,0x5e,0x0b,0x00,0x25,0x40,0x0d,0x01,0x25,0x48,0x2c,0x01,0x25,0x50,0x47,0x01, +0x25,0x58,0x66,0x01,0x10,0x00,0x18,0x27,0x00,0x00,0x28,0xaf,0x04,0x00,0x29,0xaf, +0x08,0x00,0x2a,0xaf,0x0c,0x00,0x2b,0xaf,0xd2,0xff,0x12,0x17,0x10,0x00,0x39,0x27, +0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x00,0x00,0x09,0x93,0x02,0x00,0x04,0x93, +0x04,0x00,0x08,0x93,0x06,0x00,0x05,0x93,0x07,0x00,0x06,0x93,0x03,0x00,0x07,0x93, +0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x25,0x10,0x49,0x00,0x25,0x18,0x68,0x00, +0x00,0x24,0x04,0x00,0x00,0x2c,0x05,0x00,0x25,0x20,0x82,0x00,0x25,0x28,0xa3,0x00, +0x00,0x3e,0x07,0x00,0x00,0x36,0x06,0x00,0x25,0x30,0xc5,0x00,0x25,0x38,0xe4,0x00, +0x02,0x80,0x02,0x3c,0x04,0x00,0x26,0xaf,0x00,0x00,0x27,0xaf,0x38,0x15,0x46,0x24, +0x21,0x50,0x00,0x00,0x80,0x20,0x0a,0x00,0x21,0x10,0x9d,0x00,0x00,0x00,0x45,0x8c, +0x01,0x00,0x43,0x25,0xff,0x00,0x6a,0x30,0x21,0x20,0x86,0x00,0x25,0x00,0x42,0x2d, +0xf8,0xff,0x40,0x14,0x18,0x00,0x85,0xac,0x02,0x80,0x02,0x3c,0x38,0x15,0x4b,0x24, +0x21,0x50,0x00,0x00,0xc0,0x10,0x0a,0x00,0x21,0x48,0x5d,0x00,0x21,0x38,0x00,0x00, +0x21,0x40,0x4b,0x00,0x21,0x10,0x27,0x01,0xa0,0x01,0x46,0x90,0x98,0x00,0x45,0x90, +0x01,0x00,0xe4,0x24,0x21,0x18,0x07,0x01,0xff,0x00,0x87,0x30,0x08,0x00,0xe2,0x2c, +0xb4,0x01,0x66,0xa0,0xf7,0xff,0x40,0x14,0xac,0x00,0x65,0xa0,0x01,0x00,0x42,0x25, +0xff,0x00,0x4a,0x30,0x21,0x00,0x43,0x2d,0xef,0xff,0x60,0x14,0xc0,0x10,0x0a,0x00, +0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00, +0x20,0x00,0x63,0x30,0x4f,0x00,0x60,0x10,0x38,0x15,0x64,0x26,0x33,0x00,0x02,0x24, +0xc1,0x02,0x62,0xa1,0x1c,0x00,0x03,0x24,0x0f,0x00,0x02,0x24,0xbc,0x02,0x63,0xa1, +0xbd,0x02,0x62,0xa1,0x38,0x15,0x65,0x26,0x08,0x00,0xa4,0x8c,0xff,0x7f,0x09,0x3c, +0xff,0xff,0x29,0x35,0xc0,0xff,0x02,0x24,0x24,0x20,0x89,0x00,0x24,0x20,0x82,0x00, +0x0c,0x00,0x84,0x34,0xff,0xc0,0x02,0x24,0xc8,0x02,0xa0,0xa0,0x24,0x20,0x82,0x00, +0xc0,0xff,0x02,0x3c,0xc8,0x02,0xa6,0x8c,0xff,0xff,0x42,0x34,0x00,0x18,0x84,0x34, +0x24,0x20,0x82,0x00,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0xbf,0xff,0x03,0x3c, +0x24,0x30,0xc2,0x00,0xff,0xff,0x63,0x34,0x7f,0xff,0x02,0x3c,0x24,0x20,0x83,0x00, +0xff,0xff,0x42,0x34,0x24,0x20,0x82,0x00,0x7f,0xff,0x03,0x24,0x40,0x40,0x84,0x34, +0xff,0xff,0x02,0x3c,0x24,0x20,0x83,0x00,0xff,0x7f,0x42,0x34,0xc8,0x02,0xa6,0xac, +0x24,0x20,0x82,0x00,0xc9,0x02,0xa0,0xa0,0x0c,0x00,0xa6,0x8c,0xff,0x9f,0x02,0x3c, +0xc8,0x02,0xa7,0x8c,0xff,0xff,0x42,0x34,0xff,0xbf,0x03,0x3c,0x10,0x00,0xa8,0x8c, +0xff,0xff,0x63,0x34,0x24,0x20,0x82,0x00,0xff,0xf0,0x02,0x3c,0x24,0x30,0xc3,0x00, +0xff,0xff,0x42,0x34,0xff,0x3f,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x38,0xe2,0x00, +0xb4,0x02,0xb3,0x8f,0x1f,0x00,0x02,0x24,0xb0,0x02,0xb2,0x8f,0xac,0x02,0xb1,0x8f, +0xa8,0x02,0xb0,0x8f,0x24,0x40,0x03,0x01,0xbe,0x02,0xa2,0xa0,0x01,0x00,0x03,0x24, +0xff,0xff,0x02,0x24,0x24,0x30,0xc9,0x00,0xc0,0x02,0xa3,0xa0,0xc2,0x02,0xa2,0xa0, +0xff,0x00,0x03,0x24,0x12,0x00,0x02,0x24,0xb8,0x02,0xbd,0x27,0xc8,0x02,0xa7,0xac, +0x08,0x00,0xa4,0xac,0x10,0x00,0xa8,0xac,0x0c,0x00,0xa6,0xac,0xc4,0x02,0xa3,0xa4, +0xc7,0x02,0xa2,0xa0,0xca,0x02,0xa0,0xa0,0xbf,0x02,0xa0,0xa0,0x08,0x00,0xe0,0x03, +0xc6,0x02,0xa0,0xa0,0x33,0x00,0x02,0x24,0xc1,0x02,0x82,0xa0,0x0d,0x00,0x03,0x24, +0x03,0x00,0x02,0x24,0xbc,0x02,0x83,0xa0,0xd7,0x5a,0x00,0x08,0xbd,0x02,0x82,0xa0, +0x02,0x80,0x18,0x3c,0x38,0x15,0x02,0x27,0xff,0xff,0x03,0x34,0xe0,0xff,0xbd,0x27, +0x18,0x00,0xbf,0xaf,0x21,0x78,0x40,0x00,0x04,0x24,0x43,0xac,0xea,0x02,0x40,0xa0, +0xf4,0x23,0x43,0xac,0xfc,0x23,0x43,0xac,0x00,0x24,0x43,0xac,0x08,0x24,0x40,0xac, +0x0c,0x24,0x40,0xac,0x1f,0x00,0x0e,0x24,0xff,0xff,0xce,0x25,0x80,0x11,0x43,0xac, +0x84,0x11,0x43,0xac,0xfc,0xff,0xc1,0x05,0x94,0x00,0x42,0x24,0x38,0x15,0x04,0x8f, +0xd8,0x02,0xe5,0x8d,0xf0,0xff,0x02,0x3c,0xe8,0x02,0xe7,0x8d,0xfd,0xff,0x03,0x24, +0xff,0xff,0x42,0x34,0x20,0x00,0x0e,0x24,0x24,0x20,0x83,0x00,0x24,0x28,0xa2,0x00, +0xff,0xff,0x0d,0x24,0xff,0xef,0x02,0x3c,0x38,0x15,0x04,0xaf,0xff,0xff,0x42,0x34, +0xd8,0x02,0xe5,0xad,0x02,0x00,0xed,0xa1,0xdb,0x02,0xee,0xa1,0xd8,0x02,0xe0,0xa1, +0xff,0xbf,0x03,0x3c,0x38,0x15,0x08,0x8f,0xd8,0x02,0xe9,0x8d,0x24,0x38,0xe2,0x00, +0xff,0xff,0x63,0x34,0x24,0x38,0xe3,0x00,0xff,0x7f,0x02,0x3c,0x0f,0xff,0x03,0x3c, +0xfe,0xff,0x04,0x24,0xff,0xff,0x42,0x34,0xff,0xff,0x63,0x34,0x24,0x40,0x04,0x01, +0x24,0x38,0xe2,0x00,0x24,0x48,0x23,0x01,0xff,0xdf,0x02,0x3c,0xdf,0xff,0x03,0x24, +0x24,0x40,0x03,0x01,0xff,0xff,0x42,0x34,0x10,0x00,0x03,0x3c,0x24,0x38,0xe2,0x00, +0x25,0x48,0x23,0x01,0x0a,0x00,0x02,0x24,0x00,0x02,0x03,0x24,0x38,0x15,0x08,0xaf, +0x02,0x80,0x0a,0x3c,0xd6,0x02,0xe2,0xa1,0xd0,0x02,0xe3,0xa5,0x00,0x01,0x02,0x24, +0x49,0x00,0x03,0x24,0xe8,0x02,0xe7,0xad,0xd8,0x02,0xe9,0xad,0x04,0x94,0x4a,0x25, +0x3e,0x00,0x0c,0x24,0x01,0x00,0x0b,0x24,0x11,0x00,0xa3,0xa3,0xce,0x02,0xe2,0xa5, +0xd0,0x07,0x03,0x24,0x44,0x00,0x02,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa2,0xa3, +0x10,0x00,0xa5,0x27,0x47,0x00,0x02,0x24,0x21,0x20,0x40,0x01,0xe0,0x86,0xc6,0x24, +0xd4,0x02,0xec,0xa1,0xcc,0x02,0xee,0xa5,0x01,0x00,0xeb,0xa1,0x0c,0x00,0x43,0xad, +0x14,0x00,0x4b,0xa1,0x05,0x00,0xed,0xa1,0xd2,0x02,0xec,0xa1,0xd3,0x02,0xee,0xa1, +0xd5,0x02,0xee,0xa1,0x12,0x00,0xa2,0xa3,0xe1,0x1c,0x00,0x0c,0x13,0x00,0xa0,0xa3, +0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x50,0x00,0x03,0x24,0x10,0x00,0xa3,0xa3, +0x12,0x22,0x40,0xa0,0x41,0x00,0x03,0x24,0x52,0x00,0x02,0x24,0x02,0x80,0x07,0x3c, +0xac,0x94,0xe7,0x24,0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3,0xd0,0x07,0x02,0x24, +0x01,0x00,0x03,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00, +0xd4,0x4e,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf, +0xe1,0x1c,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xc8,0xff,0xbd,0x27,0x24,0x00,0xb1,0xaf, +0x02,0x80,0x11,0x3c,0x38,0x15,0x23,0x8e,0xef,0xff,0x02,0x24,0x02,0x80,0x07,0x3c, +0x24,0x18,0x62,0x00,0xf7,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0x44,0x00,0x02,0x24, +0x1c,0x95,0xe7,0x24,0x2c,0x00,0xb3,0xaf,0x10,0x00,0xa2,0xa3,0x01,0x00,0x13,0x24, +0x64,0x00,0x02,0x24,0x01,0x80,0x06,0x3c,0x38,0x15,0x23,0xae,0x28,0x00,0xb2,0xaf, +0x20,0x00,0xb0,0xaf,0x21,0x20,0xe0,0x00,0x38,0x15,0x30,0x26,0x47,0x00,0x12,0x24, +0x10,0x00,0xa5,0x27,0x49,0x00,0x03,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xf3,0xa0, +0x00,0x96,0xc6,0x24,0x30,0x00,0xbf,0xaf,0x11,0x00,0xa3,0xa3,0x12,0x00,0xb2,0xa3, +0x06,0x00,0x00,0xa6,0xe1,0x1c,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x38,0x15,0x23,0x8e, +0xff,0xff,0x02,0x24,0xff,0x00,0x4a,0x30,0xfb,0xff,0x02,0x24,0x24,0x18,0x62,0x00, +0x3f,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0x02,0x80,0x08,0x3c,0x3b,0x00,0x02,0x24, +0xc8,0x94,0x08,0x25,0x19,0x00,0xa2,0xa3,0x01,0x00,0x07,0x3c,0xd0,0x07,0x02,0x24, +0x01,0x80,0x06,0x3c,0x38,0x15,0x23,0xae,0x56,0x30,0xe9,0x34,0x08,0x03,0x0a,0xae, +0x43,0x00,0x03,0x24,0xf4,0x98,0xe7,0x34,0x18,0x00,0xa5,0x27,0x0c,0x00,0x02,0xad, +0x14,0x00,0x13,0xa1,0x21,0x20,0x00,0x01,0xec,0x96,0xc6,0x24,0x18,0x00,0xb2,0xa3, +0x1a,0x00,0xa3,0xa3,0x10,0x03,0x07,0xae,0x14,0x03,0x09,0xae,0x1b,0x00,0xa0,0xa3, +0x0c,0x03,0x00,0xae,0x18,0x03,0x00,0xae,0xe1,0x1c,0x00,0x0c,0x1c,0x03,0x00,0xae, +0x1e,0x00,0x02,0x24,0x4a,0x00,0x03,0x24,0x25,0x03,0x02,0xa2,0x20,0x03,0x03,0xa2, +0x45,0x00,0x02,0x24,0x46,0x00,0x03,0x24,0x21,0x03,0x02,0xa2,0x22,0x03,0x03,0xa2, +0x40,0x00,0x02,0x24,0x23,0x00,0x03,0x24,0x23,0x03,0x02,0xa2,0x24,0x03,0x03,0xa2, +0x30,0x00,0xbf,0x8f,0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f, +0x20,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27, +0x3b,0x00,0x02,0x24,0x43,0x00,0x03,0x24,0x10,0x00,0xa2,0xa3,0x11,0x00,0xa3,0xa3, +0x36,0x00,0x02,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x07,0x3c,0xe4,0x94,0xe7,0x24, +0x12,0x00,0xa2,0xa3,0x0f,0x18,0x60,0xa0,0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24, +0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0xec,0x9b,0xc6,0x24, +0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf,0xe1,0x1c,0x00,0x0c, +0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x52,0x00,0x03,0x24, +0x10,0x00,0xa3,0xa3,0x94,0x39,0x40,0xa4,0x54,0x00,0x03,0x24,0x53,0x00,0x02,0x24, +0x02,0x80,0x07,0x3c,0x38,0x95,0xe7,0x24,0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3, +0xf4,0x01,0x02,0x24,0x01,0x00,0x03,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27, +0x21,0x20,0xe0,0x00,0x18,0x50,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0, +0x18,0x00,0xbf,0xaf,0xe1,0x1c,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x02,0x80,0x04,0x3c, +0xd8,0xff,0xbd,0x27,0x4c,0x39,0x84,0x24,0x21,0x28,0x00,0x00,0x20,0x00,0xbf,0xaf, +0x58,0x45,0x00,0x0c,0x0a,0x00,0x06,0x24,0x02,0x80,0x07,0x3c,0x38,0x15,0xe7,0x24, +0x10,0x24,0xe3,0x8c,0xfd,0xff,0x02,0x24,0x02,0x80,0x08,0x3c,0x24,0x18,0x62,0x00, +0xfe,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0x05,0x00,0x02,0x24,0x10,0x24,0xe3,0xac, +0x14,0x24,0xe2,0xa0,0x28,0x00,0x03,0x24,0x46,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3, +0x15,0x24,0xe3,0xa0,0x4b,0x00,0x02,0x24,0x42,0x00,0x03,0x24,0x54,0x95,0x08,0x25, +0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0xd0,0x07,0x03,0x24,0x01,0x00,0x02,0x24, +0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0x00,0x01,0xe0,0x50,0xc6,0x24, +0x12,0x24,0xe0,0xa4,0x0c,0x00,0x03,0xad,0x14,0x00,0x02,0xa1,0xe1,0x1c,0x00,0x0c, +0x13,0x00,0xa0,0xa3,0x20,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x28,0x00,0xbd,0x27,0xd8,0xff,0xbd,0x27,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x20,0x00,0xbf,0xaf,0x21,0x80,0x80,0x00, +0x21,0x98,0xa0,0x00,0x21,0x88,0xc0,0x00,0x21,0x90,0x00,0x00,0x00,0x00,0x04,0x82, +0x99,0x48,0x00,0x0c,0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,0x01,0x00,0x10,0x26, +0xff,0xff,0x10,0x26,0x00,0x00,0x04,0x92,0x2b,0x00,0x02,0x24,0x00,0x1e,0x04,0x00, +0x03,0x1e,0x03,0x00,0x41,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x10,0x00,0x02,0x24, +0x30,0x00,0x22,0x12,0x00,0x1e,0x04,0x00,0x07,0x00,0x20,0x16,0x21,0x18,0x80,0x00, +0x00,0x1e,0x04,0x00,0x03,0x1e,0x03,0x00,0x30,0x00,0x02,0x24,0x3b,0x00,0x62,0x10, +0x0a,0x00,0x11,0x24,0x21,0x18,0x80,0x00,0x00,0x16,0x03,0x00,0x03,0x16,0x02,0x00, +0x1a,0x00,0x40,0x10,0xff,0x00,0x64,0x30,0xa9,0xff,0x82,0x24,0x61,0x00,0x83,0x2c, +0xff,0x00,0x45,0x30,0x09,0x00,0x60,0x10,0x41,0x00,0x86,0x2c,0xc9,0xff,0x82,0x24, +0xff,0x00,0x45,0x30,0x05,0x00,0xc0,0x10,0x3a,0x00,0x87,0x2c,0xd0,0xff,0x82,0x24, +0x02,0x00,0xe0,0x10,0xff,0x00,0x05,0x24,0xff,0x00,0x45,0x30,0x2a,0x10,0xb1,0x00, +0x0a,0x00,0x40,0x10,0x18,0x00,0x51,0x02,0x01,0x00,0x10,0x26,0x12,0x10,0x00,0x00, +0x2b,0x18,0x52,0x00,0x23,0x00,0x60,0x14,0x21,0x90,0xa2,0x00,0x00,0x00,0x03,0x92, +0x00,0x00,0x00,0x00,0xe8,0xff,0x60,0x14,0xff,0x00,0x64,0x30,0x02,0x00,0x60,0x12, +0x21,0x10,0x40,0x02,0x00,0x00,0x70,0xae,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x28,0x00,0xbd,0x27,0x03,0x1e,0x03,0x00,0x30,0x00,0x02,0x24,0xce,0xff,0x62,0x14, +0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x82,0x78,0x00,0x02,0x24,0x03,0x00,0x62,0x10, +0x58,0x00,0x02,0x24,0xd0,0xff,0x62,0x14,0x21,0x18,0x80,0x00,0x02,0x00,0x10,0x26, +0x00,0x00,0x04,0x92,0x73,0x5c,0x00,0x08,0x10,0x00,0x11,0x24,0x01,0x00,0x10,0x26, +0x00,0x00,0x04,0x92,0x6a,0x5c,0x00,0x08,0x10,0x00,0x02,0x24,0x9f,0x5c,0x00,0x08, +0x08,0x00,0x11,0x24,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0xff,0x02,0x24,0x08,0x00,0xe0,0x03, +0x28,0x00,0xbd,0x27,0x21,0x48,0x80,0x00,0x31,0x00,0xc0,0x14,0x21,0x50,0x00,0x00, +0x00,0x00,0x87,0x90,0x30,0x00,0x02,0x24,0x00,0x1e,0x07,0x00,0x03,0x1e,0x03,0x00, +0x2e,0x00,0x62,0x10,0x0a,0x00,0x06,0x24,0x02,0x80,0x02,0x3c,0x40,0x92,0x4b,0x24, +0xff,0x00,0xe8,0x30,0x21,0x10,0x0b,0x01,0x00,0x00,0x44,0x90,0x00,0x1e,0x07,0x00, +0x03,0x1e,0x03,0x00,0x44,0x00,0x82,0x30,0x02,0x00,0x87,0x30,0xd0,0xff,0x63,0x24, +0x1a,0x00,0x40,0x10,0x04,0x00,0x84,0x30,0x07,0x00,0x80,0x14,0x2b,0x10,0x66,0x00, +0x21,0x10,0x00,0x01,0x02,0x00,0xe0,0x10,0xe0,0xff,0x03,0x25,0xff,0x00,0x62,0x30, +0xc9,0xff,0x43,0x24,0x2b,0x10,0x66,0x00,0x10,0x00,0x40,0x10,0x18,0x00,0x46,0x01, +0x01,0x00,0x29,0x25,0x00,0x00,0x27,0x91,0x00,0x00,0x00,0x00,0xff,0x00,0xe8,0x30, +0x12,0x10,0x00,0x00,0x21,0x50,0x43,0x00,0x21,0x10,0x0b,0x01,0x00,0x00,0x44,0x90, +0x00,0x1e,0x07,0x00,0x03,0x1e,0x03,0x00,0x44,0x00,0x82,0x30,0x02,0x00,0x87,0x30, +0xd0,0xff,0x63,0x24,0xe8,0xff,0x40,0x14,0x04,0x00,0x84,0x30,0x02,0x00,0xa0,0x10, +0x00,0x00,0x00,0x00,0x00,0x00,0xa9,0xac,0x08,0x00,0xe0,0x03,0x21,0x10,0x40,0x01, +0x00,0x00,0x87,0x90,0xc1,0x5c,0x00,0x08,0x02,0x80,0x02,0x3c,0x01,0x00,0x89,0x24, +0x00,0x00,0x27,0x91,0x78,0x00,0x02,0x24,0x00,0x1e,0x07,0x00,0x03,0x1e,0x03,0x00, +0xcd,0xff,0x62,0x14,0x08,0x00,0x06,0x24,0x01,0x00,0x22,0x91,0x02,0x80,0x03,0x3c, +0x40,0x92,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x90,0x00,0x00,0x00,0x00, +0x44,0x00,0x84,0x30,0xc5,0xff,0x80,0x10,0x02,0x80,0x02,0x3c,0x01,0x00,0x29,0x25, +0x00,0x00,0x27,0x91,0xc1,0x5c,0x00,0x08,0x10,0x00,0x06,0x24,0xe8,0xff,0xbd,0x27, +0x10,0x00,0xbf,0xaf,0x00,0x00,0x83,0x80,0x2d,0x00,0x02,0x24,0x04,0x00,0x62,0x10, +0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f,0xb7,0x5c,0x00,0x08,0x18,0x00,0xbd,0x27, +0xb7,0x5c,0x00,0x0c,0x01,0x00,0x84,0x24,0x10,0x00,0xbf,0x8f,0x23,0x10,0x02,0x00, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xd8,0xff,0xbd,0x27,0x1c,0x00,0xb3,0xaf, +0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x20,0x00,0xbf,0xaf, +0x21,0x80,0x80,0x00,0x21,0x90,0xa0,0x00,0x21,0x98,0xc0,0x00,0x21,0x88,0x00,0x00, +0x00,0x00,0x04,0x82,0x99,0x48,0x00,0x0c,0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14, +0x01,0x00,0x10,0x26,0xff,0xff,0x10,0x26,0x00,0x00,0x03,0x82,0x2d,0x00,0x02,0x24, +0x0f,0x00,0x62,0x10,0x21,0x20,0x00,0x02,0x21,0x28,0x40,0x02,0x53,0x5c,0x00,0x0c, +0x21,0x30,0x60,0x02,0x12,0x00,0x40,0x04,0x21,0x18,0x40,0x00,0x23,0x10,0x02,0x00, +0x0a,0x10,0x71,0x00,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27, +0x01,0x00,0x10,0x26,0x21,0x20,0x00,0x02,0x21,0x28,0x40,0x02,0x53,0x5c,0x00,0x0c, +0x21,0x30,0x60,0x02,0xff,0xff,0x11,0x24,0xf0,0xff,0x41,0x04,0x21,0x18,0x40,0x00, +0xf0,0xff,0x20,0x16,0x00,0x80,0x02,0x3c,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0x7f,0x02,0x3c, +0xff,0xff,0x42,0x34,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x78,0x0c,0x00,0x00,0x01,0x00,0x00,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x01,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x02,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x03,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x04,0x5d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x05,0x5b,0x78,0x0c,0x00,0x00,0x01,0x00,0x06,0x59,0x78,0x0c,0x00,0x00, +0x01,0x00,0x07,0x57,0x78,0x0c,0x00,0x00,0x01,0x00,0x08,0x55,0x78,0x0c,0x00,0x00, +0x01,0x00,0x09,0x53,0x78,0x0c,0x00,0x00,0x01,0x00,0x0a,0x51,0x78,0x0c,0x00,0x00, +0x01,0x00,0x0b,0x4f,0x78,0x0c,0x00,0x00,0x01,0x00,0x0c,0x4d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x0d,0x4b,0x78,0x0c,0x00,0x00,0x01,0x00,0x0e,0x49,0x78,0x0c,0x00,0x00, +0x01,0x00,0x0f,0x47,0x78,0x0c,0x00,0x00,0x01,0x00,0x10,0x45,0x78,0x0c,0x00,0x00, +0x01,0x00,0x11,0x43,0x78,0x0c,0x00,0x00,0x01,0x00,0x12,0x41,0x78,0x0c,0x00,0x00, +0x01,0x00,0x13,0x3f,0x78,0x0c,0x00,0x00,0x01,0x00,0x14,0x3d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x15,0x3b,0x78,0x0c,0x00,0x00,0x01,0x00,0x16,0x39,0x78,0x0c,0x00,0x00, +0x01,0x00,0x17,0x37,0x78,0x0c,0x00,0x00,0x01,0x00,0x18,0x35,0x78,0x0c,0x00,0x00, +0x01,0x00,0x19,0x33,0x78,0x0c,0x00,0x00,0x01,0x00,0x1a,0x31,0x78,0x0c,0x00,0x00, +0x01,0x00,0x1b,0x2f,0x78,0x0c,0x00,0x00,0x01,0x00,0x1c,0x2d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x1d,0x2b,0x78,0x0c,0x00,0x00,0x01,0x00,0x1e,0x29,0x78,0x0c,0x00,0x00, +0x01,0x00,0x1f,0x27,0x78,0x0c,0x00,0x00,0x01,0x00,0x20,0x25,0x78,0x0c,0x00,0x00, +0x01,0x00,0x21,0x23,0x78,0x0c,0x00,0x00,0x01,0x00,0x22,0x21,0x78,0x0c,0x00,0x00, +0x01,0x00,0x23,0x1f,0x78,0x0c,0x00,0x00,0x01,0x00,0x24,0x1d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x25,0x1b,0x78,0x0c,0x00,0x00,0x01,0x00,0x26,0x19,0x78,0x0c,0x00,0x00, +0x01,0x00,0x27,0x17,0x78,0x0c,0x00,0x00,0x01,0x00,0x28,0x15,0x78,0x0c,0x00,0x00, +0x01,0x00,0x29,0x13,0x78,0x0c,0x00,0x00,0x01,0x00,0x2a,0x11,0x78,0x0c,0x00,0x00, +0x01,0x00,0x2b,0x0f,0x78,0x0c,0x00,0x00,0x01,0x00,0x2c,0x0d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x2d,0x0b,0x78,0x0c,0x00,0x00,0x01,0x00,0x2e,0x09,0x78,0x0c,0x00,0x00, +0x01,0x00,0x2f,0x07,0x78,0x0c,0x00,0x00,0x01,0x00,0x30,0x05,0x78,0x0c,0x00,0x00, +0x01,0x00,0x31,0x03,0x78,0x0c,0x00,0x00,0x01,0x00,0x32,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x33,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x34,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x35,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x36,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x37,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x38,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x39,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3a,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x3b,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3c,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x3d,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3e,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x3f,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x40,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x41,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x42,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x43,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x44,0x5d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x45,0x5b,0x78,0x0c,0x00,0x00,0x01,0x00,0x46,0x59,0x78,0x0c,0x00,0x00, +0x01,0x00,0x47,0x57,0x78,0x0c,0x00,0x00,0x01,0x00,0x48,0x55,0x78,0x0c,0x00,0x00, +0x01,0x00,0x49,0x53,0x78,0x0c,0x00,0x00,0x01,0x00,0x4a,0x51,0x78,0x0c,0x00,0x00, +0x01,0x00,0x4b,0x4f,0x78,0x0c,0x00,0x00,0x01,0x00,0x4c,0x4d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x4d,0x4b,0x78,0x0c,0x00,0x00,0x01,0x00,0x4e,0x49,0x78,0x0c,0x00,0x00, +0x01,0x00,0x4f,0x47,0x78,0x0c,0x00,0x00,0x01,0x00,0x50,0x45,0x78,0x0c,0x00,0x00, +0x01,0x00,0x51,0x43,0x78,0x0c,0x00,0x00,0x01,0x00,0x52,0x41,0x78,0x0c,0x00,0x00, +0x01,0x00,0x53,0x3f,0x78,0x0c,0x00,0x00,0x01,0x00,0x54,0x3d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x55,0x3b,0x78,0x0c,0x00,0x00,0x01,0x00,0x56,0x39,0x78,0x0c,0x00,0x00, +0x01,0x00,0x57,0x37,0x78,0x0c,0x00,0x00,0x01,0x00,0x58,0x35,0x78,0x0c,0x00,0x00, +0x01,0x00,0x59,0x33,0x78,0x0c,0x00,0x00,0x01,0x00,0x5a,0x31,0x78,0x0c,0x00,0x00, +0x01,0x00,0x5b,0x2f,0x78,0x0c,0x00,0x00,0x01,0x00,0x5c,0x2d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x5d,0x2b,0x78,0x0c,0x00,0x00,0x01,0x00,0x5e,0x29,0x78,0x0c,0x00,0x00, +0x01,0x00,0x5f,0x27,0x78,0x0c,0x00,0x00,0x01,0x00,0x60,0x25,0x78,0x0c,0x00,0x00, +0x01,0x00,0x61,0x23,0x78,0x0c,0x00,0x00,0x01,0x00,0x62,0x21,0x78,0x0c,0x00,0x00, +0x01,0x00,0x63,0x1f,0x78,0x0c,0x00,0x00,0x01,0x00,0x64,0x1d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x65,0x1b,0x78,0x0c,0x00,0x00,0x01,0x00,0x66,0x19,0x78,0x0c,0x00,0x00, +0x01,0x00,0x67,0x17,0x78,0x0c,0x00,0x00,0x01,0x00,0x68,0x15,0x78,0x0c,0x00,0x00, +0x01,0x00,0x69,0x13,0x78,0x0c,0x00,0x00,0x01,0x00,0x6a,0x11,0x78,0x0c,0x00,0x00, +0x01,0x00,0x6b,0x0f,0x78,0x0c,0x00,0x00,0x01,0x00,0x6c,0x0d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x6d,0x0b,0x78,0x0c,0x00,0x00,0x01,0x00,0x6e,0x09,0x78,0x0c,0x00,0x00, +0x01,0x00,0x6f,0x07,0x78,0x0c,0x00,0x00,0x01,0x00,0x70,0x05,0x78,0x0c,0x00,0x00, +0x01,0x00,0x71,0x03,0x78,0x0c,0x00,0x00,0x01,0x00,0x72,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x73,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x74,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x75,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x76,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x77,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x78,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x79,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7a,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x7b,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7c,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x7d,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7e,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x7f,0x01,0x78,0x0c,0x00,0x00,0x1e,0x00,0x00,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x01,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x02,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x03,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x04,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x05,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x06,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x07,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x08,0x3e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x09,0x40,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0a,0x42,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x0b,0x44,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0c,0x46,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x0d,0x48,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0e,0x48,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x0f,0x4a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x10,0x4a,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x11,0x4c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x12,0x4c,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x13,0x4e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x14,0x50,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x15,0x50,0x78,0x0c,0x00,0x00,0x1e,0x00,0x16,0x50,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x17,0x52,0x78,0x0c,0x00,0x00,0x1e,0x00,0x18,0x52,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x19,0x52,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1a,0x54,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x1b,0x54,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1c,0x54,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x1d,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1e,0x56,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x1f,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x20,0x56,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x21,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x22,0x58,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x23,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x24,0x58,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x25,0x5a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x26,0x5a,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x27,0x5a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x28,0x5c,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x29,0x5c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2a,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x2b,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2c,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x2d,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2e,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x2f,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x30,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x31,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x32,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x33,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x34,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x35,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x36,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x37,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x38,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x39,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3a,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x3b,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3c,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x3d,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3e,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x3f,0x5e,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x08,0x00,0x00, +0x00,0x00,0x04,0x03,0x04,0x08,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x08,0x00,0x00, +0x00,0xfc,0x00,0x00,0x0c,0x08,0x00,0x00,0x0a,0x00,0x00,0x04,0x10,0x08,0x00,0x00, +0xff,0x10,0x10,0x80,0x14,0x08,0x00,0x00,0x10,0x3d,0x0c,0x02,0x18,0x08,0x00,0x00, +0xc5,0x03,0x00,0x00,0x1c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x24,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x28,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x2c,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x30,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x34,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x38,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x3c,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x40,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x4c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x54,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x08,0x00,0x00, +0x65,0xa9,0x65,0xa9,0x5c,0x08,0x00,0x00,0x65,0xa9,0x65,0xa9,0x60,0x08,0x00,0x00, +0x30,0x01,0x7f,0x0f,0x64,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x68,0x08,0x00,0x00, +0x30,0x01,0x7f,0x0f,0x6c,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x70,0x08,0x00,0x00, +0x00,0x03,0x00,0x03,0x74,0x08,0x00,0x00,0x00,0x03,0x00,0x03,0x78,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x7c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x94,0x08,0x00,0x00,0xfe,0xff,0xff,0xff,0x98,0x08,0x00,0x00, +0x10,0x20,0x30,0x40,0x9c,0x08,0x00,0x00,0x50,0x60,0x70,0x00,0xb0,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0xe0,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xe4,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x0e,0x00,0x00, +0x03,0x03,0x03,0x03,0x08,0x0e,0x00,0x00,0x03,0x03,0x00,0x00,0x0c,0x0e,0x00,0x00, +0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x14,0x0e,0x00,0x00, +0x03,0x03,0x03,0x03,0x18,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x1c,0x0e,0x00,0x00, +0x03,0x03,0x03,0x03,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x09,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x09,0x00,0x00, +0x33,0x13,0x32,0x03,0x08,0x0a,0x00,0x00,0x00,0x86,0x88,0x8f,0x2c,0x0a,0x00,0x00, +0x00,0x00,0x92,0x00,0x00,0x0c,0x00,0x00,0x80,0x00,0x00,0x00,0x04,0x0c,0x00,0x00, +0x33,0x54,0x00,0x00,0x08,0x0c,0x00,0x00,0xe4,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00, +0x6c,0x6c,0x6c,0x6c,0x10,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x14,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x1c,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x20,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x24,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x28,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x2c,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x30,0x0c,0x00,0x00,0x44,0x6a,0xe9,0x8d,0x34,0x0c,0x00,0x00, +0xcd,0x52,0x96,0x46,0x38,0x0c,0x00,0x00,0x90,0x5a,0x01,0x48,0x3c,0x0c,0x00,0x00, +0x64,0x97,0x97,0x1a,0x40,0x0c,0x00,0x00,0x3f,0x42,0x7c,0x1f,0x44,0x0c,0x00,0x00, +0xb7,0x00,0x01,0x00,0x48,0x0c,0x00,0x00,0x00,0x00,0x02,0xec,0x4c,0x0c,0x00,0x00, +0x03,0x03,0xfc,0x00,0x50,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x54,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x58,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x5c,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x60,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x64,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x68,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x6c,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x70,0x0c,0x00,0x00,0x0d,0x00,0x5a,0x2c,0x74,0x0c,0x00,0x00, +0x1b,0x15,0x86,0x01,0x78,0x0c,0x00,0x00,0x1f,0x00,0x00,0x00,0x7c,0x0c,0x00,0x00, +0x12,0x16,0xb9,0x00,0x80,0x0c,0x00,0x00,0x80,0x00,0x00,0x20,0x84,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0x88,0x0c,0x00,0x00,0x80,0x00,0x00,0x20,0x8c,0x0c,0x00,0x00, +0x00,0x00,0x20,0x08,0x90,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x94,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0x98,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x9c,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xa0,0x0c,0x00,0x00,0x92,0x24,0x49,0x00,0xa4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xa8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xac,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xb0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xb8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xbc,0x0c,0x00,0x00, +0x92,0x24,0x49,0x00,0xc0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xc4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xc8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xd0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xd4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xd8,0x0c,0x00,0x00,0x27,0x24,0xb2,0x64,0xdc,0x0c,0x00,0x00, +0x32,0x69,0x76,0x00,0xe0,0x0c,0x00,0x00,0x22,0x22,0x22,0x00,0xe4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xe8,0x0c,0x00,0x00,0x02,0x43,0x64,0x07,0x00,0x0d,0x00,0x00, +0x80,0x07,0x00,0x00,0x04,0x0d,0x00,0x00,0x03,0x04,0x00,0x00,0x08,0x0d,0x00,0x00, +0x7f,0x90,0x00,0x00,0x0c,0x0d,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x0d,0x00,0x00, +0x99,0x99,0x69,0xa0,0x14,0x0d,0x00,0x00,0x67,0x3c,0x99,0x99,0x18,0x0d,0x00,0x00, +0x6b,0x5b,0x8f,0x6a,0x1c,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x24,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x2c,0x0d,0x00,0x00,0x75,0x19,0x97,0xcc,0x30,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x34,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x3c,0x0d,0x00,0x00,0x93,0x72,0x02,0x00,0x40,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x50,0x0d,0x00,0x00,0x0a,0x14,0x37,0x64,0x54,0x0d,0x00,0x00, +0x02,0xbd,0x4d,0x02,0x58,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x5c,0x0d,0x00,0x00, +0x64,0x20,0x03,0x30,0x60,0x0d,0x00,0x00,0x68,0xde,0x53,0x46,0x64,0x0d,0x00,0x00, +0x3c,0x8a,0x51,0x00,0x68,0x0d,0x00,0x00,0x06,0x01,0x00,0x00,0xff,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x74,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x34,0x01,0x00,0x00, +0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x34,0x01,0x00,0x00, +0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x30,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x13,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x17,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x06,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x06,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x08,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x0c,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x1f,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x01,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x38,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x02,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x01,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x01,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0xd4,0x29,0x00,0x80,0x00,0xb7,0x00,0x00,0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00, +0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00, +0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00, +0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00, +0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00, +0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00, +0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00, +0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00, +0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00, +0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00, +0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00, +0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00, +0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00, +0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00, +0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00, +0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00, +0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00, +0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00, +0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00, +0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00, +0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00, +0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00, +0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00, +0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00, +0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00, +0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00, +0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00, +0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00, +0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00, +0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00, +0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00, +0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00, +0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00, +0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00, +0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00, +0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00, +0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00, +0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00, +0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00, +0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00, +0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00, +0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00, +0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00, +0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00, +0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00, +0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00, +0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00, +0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00, +0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00, +0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00, +0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00, +0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00, +0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00, +0xff,0xff,0xff,0x00,0x00,0xb7,0x00,0x00,0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00, +0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00, +0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00, +0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00, +0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00, +0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00, +0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00, +0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00, +0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00, +0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00, +0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00, +0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00, +0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00, +0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00, +0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00, +0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00, +0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00, +0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00, +0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00, +0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00, +0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00, +0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00, +0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00, +0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00, +0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00, +0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00, +0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00, +0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00, +0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00, +0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00, +0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00, +0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00, +0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00, +0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00, +0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00, +0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00, +0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00, +0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00, +0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00, +0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00, +0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00, +0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00, +0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00, +0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00, +0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00, +0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00, +0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00, +0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00, +0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00, +0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00, +0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00, +0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00, +0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00, +0xff,0xff,0xff,0x00,0x0a,0x00,0x00,0x00,0x4f,0x6e,0x41,0x73,0x73,0x6f,0x63,0x52, +0x65,0x71,0x00,0x00,0x4f,0x6e,0x41,0x73,0x73,0x6f,0x63,0x52,0x73,0x70,0x00,0x00, +0x4f,0x6e,0x52,0x65,0x41,0x73,0x73,0x6f,0x63,0x52,0x65,0x71,0x00,0x00,0x00,0x00, +0x4f,0x6e,0x52,0x65,0x41,0x73,0x73,0x6f,0x63,0x52,0x73,0x70,0x00,0x00,0x00,0x00, +0x4f,0x6e,0x50,0x72,0x6f,0x62,0x65,0x52,0x65,0x71,0x00,0x00,0x4f,0x6e,0x50,0x72, +0x6f,0x62,0x65,0x52,0x73,0x70,0x00,0x00,0x44,0x6f,0x52,0x65,0x73,0x65,0x72,0x76, +0x65,0x64,0x00,0x00,0x44,0x6f,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x00,0x00, +0x4f,0x6e,0x42,0x65,0x61,0x63,0x6f,0x6e,0x00,0x00,0x00,0x00,0x4f,0x6e,0x41,0x54, +0x49,0x4d,0x00,0x00,0x4f,0x6e,0x44,0x69,0x73,0x61,0x73,0x73,0x6f,0x63,0x00,0x00, +0x4f,0x6e,0x41,0x75,0x74,0x68,0x00,0x00,0x4f,0x6e,0x44,0x65,0x41,0x75,0x74,0x68, +0x00,0x00,0x00,0x00,0x4f,0x6e,0x41,0x63,0x74,0x69,0x6f,0x6e,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xf0,0x87,0x01,0x80,0x2c,0x13,0x01,0x80,0x10,0x00,0x00,0x00, +0xfc,0x87,0x01,0x80,0x34,0x13,0x01,0x80,0x20,0x00,0x00,0x00,0x08,0x88,0x01,0x80, +0x2c,0x13,0x01,0x80,0x30,0x00,0x00,0x00,0x18,0x88,0x01,0x80,0x34,0x13,0x01,0x80, +0x40,0x00,0x00,0x00,0x28,0x88,0x01,0x80,0x3c,0x13,0x01,0x80,0x50,0x00,0x00,0x00, +0x34,0x88,0x01,0x80,0x44,0x13,0x01,0x80,0x00,0x00,0x00,0x00,0x40,0x88,0x01,0x80, +0xac,0x13,0x01,0x80,0x00,0x00,0x00,0x00,0x4c,0x88,0x01,0x80,0xac,0x13,0x01,0x80, +0x80,0x00,0x00,0x00,0x58,0x88,0x01,0x80,0x4c,0x13,0x01,0x80,0x90,0x00,0x00,0x00, +0x64,0x88,0x01,0x80,0x54,0x13,0x01,0x80,0xa0,0x00,0x00,0x00,0x6c,0x88,0x01,0x80, +0x5c,0x13,0x01,0x80,0xb0,0x00,0x00,0x00,0x78,0x88,0x01,0x80,0x94,0x13,0x01,0x80, +0xc0,0x00,0x00,0x00,0x80,0x88,0x01,0x80,0x9c,0x13,0x01,0x80,0xd0,0x00,0x00,0x00, +0x8c,0x88,0x01,0x80,0xa4,0x13,0x01,0x80,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, +0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46,0x00,0x00,0x00,0x00,0x25,0x64,0x2e,0x00, +0x25,0x68,0x68,0x58,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x5f,0x57, +0x44,0x4f,0x47,0x00,0x6c,0x89,0x01,0x80,0x6c,0x89,0x01,0x80,0x31,0x10,0x10,0x00, +0x00,0x30,0x00,0x00,0x31,0x20,0x10,0x00,0x00,0x30,0x00,0x00,0x31,0x28,0x10,0x00, +0x00,0x30,0x00,0x00,0x31,0x2c,0x10,0x10,0x00,0x30,0x00,0x00,0x31,0x2f,0x10,0x10, +0x00,0x30,0x00,0x00,0x31,0x30,0x18,0x00,0x00,0x30,0x00,0x00,0x31,0x30,0x20,0x10, +0x00,0x30,0x00,0x00,0x22,0x20,0x18,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x14,0x08, +0x00,0x20,0x00,0x00,0x22,0x21,0x1c,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x08, +0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x10,0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x18, +0x00,0x20,0x00,0x00,0x1a,0x19,0x18,0x10,0x00,0x18,0x00,0x00,0x12,0x11,0x10,0x08, +0x00,0x10,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x02, +0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x04,0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x06, +0x00,0x08,0x00,0x00,0x08,0x07,0x06,0x04,0x00,0x06,0x00,0x00,0x06,0x05,0x04,0x02, +0x00,0x04,0x00,0x00,0x06,0x05,0x04,0x03,0x00,0x04,0x00,0x00,0x05,0x04,0x03,0x02, +0x00,0x03,0x00,0x00,0x09,0x08,0x07,0x06,0x07,0x06,0x06,0x05,0x05,0x04,0x04,0x03, +0x06,0x05,0x05,0x04,0x04,0x03,0x03,0x03,0x05,0x04,0x04,0x03,0x03,0x02,0x02,0x02, +0x00,0x09,0x08,0x07,0x06,0x07,0x06,0x06,0x05,0x05,0x04,0x04,0x03,0x05,0x04,0x04, +0x03,0x03,0x02,0x02,0x02,0x04,0x03,0x03,0x02,0x02,0x01,0x01,0x01,0x00,0x00,0x00, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x08,0x08,0x08,0x08, +0x20,0x20,0x20,0x20,0x08,0x08,0x08,0x08,0x18,0x20,0x20,0x20,0x30,0x08,0x08,0x08, +0x08,0x18,0x18,0x18,0x18,0x18,0x20,0x30,0x30,0x10,0x20,0x20,0x20,0x20,0x20,0x30, +0x30,0x08,0x10,0x20,0x20,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20, +0x08,0x08,0x08,0x08,0x18,0x20,0x20,0x20,0x20,0x08,0x08,0x08,0x08,0x18,0x18,0x18, +0x18,0x18,0x20,0x30,0x30,0x08,0x08,0x08,0x08,0x20,0x20,0x30,0x30,0x08,0x10,0x20, +0x20,0x20,0x30,0x30,0x30,0x30,0x00,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08, +0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x00, +0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00, +0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x12,0x11,0x10,0x08,0x00,0x22, +0x21,0x20,0x18,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09, +0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20, +0x18,0x00,0x22,0x21,0x1c,0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x0a,0x09,0x08,0x02, +0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00, +0x1a,0x19,0x18,0x10,0x00,0x22,0x21,0x20,0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x22, +0x21,0x1c,0x08,0x00,0x31,0x30,0x18,0x00,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09, +0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x1a,0x19,0x18, +0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10, +0x00,0x1a,0x19,0x18,0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x31,0x2c,0x10,0x10,0x00, +0x31,0x28,0x10,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22, +0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x1c,0x08,0x00,0x22,0x21, +0x14,0x08,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2c,0x10,0x10,0x00,0x0a,0x09,0x08, +0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x20,0x18,0x08, +0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,0x2f,0x10,0x10,0x00, +0x31,0x10,0x10,0x00,0x00,0x31,0x2c,0x10,0x10,0x00,0x00,0x00,0x0a,0x09,0x08,0x04, +0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00, +0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a, +0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x12,0x11, +0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08, +0x04,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00, +0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x1c,0x08,0x00,0x22,0x21,0x14,0x08,0x00, +0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a, +0x09,0x08,0x00,0x00,0x1a,0x19,0x18,0x10,0x00,0x22,0x21,0x20,0x10,0x00,0x22,0x21, +0x20,0x08,0x00,0x22,0x21,0x14,0x08,0x00,0x22,0x21,0x14,0x08,0x00,0x0a,0x09,0x08, +0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04, +0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00, +0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x31, +0x2c,0x10,0x10,0x00,0x31,0x28,0x10,0x00,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09, +0x08,0x04,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20, +0x18,0x00,0x22,0x20,0x18,0x08,0x00,0x31,0x30,0x18,0x00,0x00,0x31,0x2c,0x10,0x10, +0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00, +0x22,0x21,0x1c,0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x31,0x30,0x20,0x10,0x00,0x31, +0x30,0x18,0x00,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,0x2c,0x10,0x10,0x00,0x00,0x00, +0x01,0x02,0x04,0x08,0x02,0x04,0x08,0x0c,0x10,0x18,0x20,0x30,0x02,0x04,0x08,0x0c, +0x10,0x18,0x20,0x30,0x06,0x0c,0x10,0x18,0x24,0x30,0x3c,0x48,0x48,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x26,0x2a,0x00,0x00,0x00,0x00, +0x21,0x27,0x29,0x2a,0x00,0x00,0x00,0x1f,0x23,0x28,0x2a,0x2c,0x2d,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x00,0x00, +0x60,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x40,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0x30,0x02,0x00,0x00, +0x2c,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0x48,0x03,0x00,0x00, +0x60,0x09,0x00,0x00,0x60,0x09,0x00,0x00,0x80,0x0c,0x00,0x00,0xa0,0x0f,0x00,0x00, +0xa0,0x0f,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x24,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x64,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0x18,0x01,0x00,0x00,0x64,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0xa4,0x01,0x00,0x00,0xb0,0x04,0x00,0x00,0xb0,0x04,0x00,0x00,0x40,0x06,0x00,0x00, +0xd0,0x07,0x00,0x00,0xd0,0x07,0x00,0x00,0x2c,0x05,0x00,0x80,0x20,0x05,0x00,0x80, +0x14,0x05,0x00,0x80,0x08,0x05,0x00,0x80,0xfc,0x04,0x00,0x80,0xf0,0x04,0x00,0x80, +0xe4,0x04,0x00,0x80,0xd8,0x04,0x00,0x80,0xcc,0x04,0x00,0x80,0xc0,0x04,0x00,0x80, +0x78,0x04,0x00,0x80,0x2c,0x00,0x2a,0xb0,0x40,0x89,0x01,0x80,0x67,0x66,0x66,0x66, +0xb4,0x65,0x00,0x80,0x18,0x66,0x00,0x80,0xe8,0x65,0x00,0x80,0xdc,0x66,0x00,0x80, +0xac,0x66,0x00,0x80,0x7c,0x66,0x00,0x80,0x4c,0x66,0x00,0x80,0xd4,0x77,0x00,0x80, +0xe0,0x77,0x00,0x80,0xec,0x77,0x00,0x80,0xf8,0x77,0x00,0x80,0xd4,0x77,0x00,0x80, +0xd4,0x77,0x00,0x80,0xd4,0x77,0x00,0x80,0xd4,0x77,0x00,0x80,0x04,0x78,0x00,0x80, +0x10,0x78,0x00,0x80,0x1c,0x78,0x00,0x80,0x28,0x78,0x00,0x80,0x38,0x15,0x02,0x80, +0x38,0x15,0x02,0x80,0x84,0x0e,0x25,0xb0,0x88,0x0e,0x25,0xb0,0x8c,0x0e,0x25,0xb0, +0xd0,0x0e,0x25,0xb0,0xd8,0x0e,0x25,0xb0,0x20,0x08,0x25,0xb0,0xfe,0x01,0x80,0x7f, +0xe2,0x01,0x80,0x78,0xc7,0x01,0xc0,0x71,0xae,0x01,0x80,0x6b,0x95,0x01,0x40,0x65, +0x7f,0x01,0xc0,0x5f,0x69,0x01,0x40,0x5a,0x55,0x01,0x40,0x55,0x42,0x01,0x80,0x50, +0x30,0x01,0x00,0x4c,0x1f,0x01,0xc0,0x47,0x0f,0x01,0xc0,0x43,0x00,0x01,0x00,0x40, +0xf2,0x00,0x80,0x3c,0xe4,0x00,0x00,0x39,0xd7,0x00,0xc0,0x35,0xcb,0x00,0xc0,0x32, +0xc0,0x00,0x00,0x30,0xb5,0x00,0x40,0x2d,0xab,0x00,0xc0,0x2a,0xa2,0x00,0x80,0x28, +0x98,0x00,0x00,0x26,0x90,0x00,0x00,0x24,0x88,0x00,0x00,0x22,0x80,0x00,0x00,0x20, +0x79,0x00,0x40,0x1e,0x72,0x00,0x80,0x1c,0x6c,0x00,0x00,0x1b,0x66,0x00,0x80,0x19, +0x60,0x00,0x00,0x18,0x5b,0x00,0xc0,0x16,0x56,0x00,0x80,0x15,0x51,0x00,0x40,0x14, +0x4c,0x00,0x00,0x13,0x48,0x00,0x00,0x12,0x44,0x00,0x00,0x11,0x40,0x00,0x00,0x10, +0x36,0x35,0x2e,0x25,0x1c,0x12,0x09,0x04,0x33,0x32,0x2b,0x23,0x1a,0x11,0x08,0x04, +0x30,0x2f,0x29,0x21,0x19,0x10,0x08,0x03,0x2d,0x2d,0x27,0x1f,0x18,0x0f,0x08,0x03, +0x2b,0x2a,0x25,0x1e,0x16,0x0e,0x07,0x03,0x28,0x28,0x22,0x1c,0x15,0x0d,0x07,0x03, +0x26,0x25,0x21,0x1b,0x14,0x0d,0x06,0x03,0x24,0x23,0x1f,0x19,0x13,0x0c,0x06,0x03, +0x22,0x21,0x1d,0x18,0x11,0x0b,0x06,0x02,0x20,0x20,0x1b,0x16,0x11,0x08,0x05,0x02, +0x1f,0x1e,0x1a,0x15,0x10,0x0a,0x05,0x02,0x1d,0x1c,0x18,0x14,0x0f,0x0a,0x05,0x02, +0x1b,0x1a,0x17,0x13,0x0e,0x09,0x04,0x02,0x1a,0x19,0x16,0x12,0x0d,0x09,0x04,0x02, +0x18,0x17,0x15,0x11,0x0c,0x08,0x04,0x02,0x17,0x16,0x13,0x10,0x0c,0x08,0x04,0x02, +0x16,0x15,0x12,0x0f,0x0b,0x07,0x04,0x01,0x14,0x14,0x11,0x0e,0x0b,0x07,0x03,0x02, +0x13,0x13,0x10,0x0d,0x0a,0x06,0x03,0x01,0x12,0x12,0x0f,0x0c,0x09,0x06,0x03,0x01, +0x11,0x11,0x0f,0x0c,0x09,0x06,0x03,0x01,0x10,0x10,0x0e,0x0b,0x08,0x05,0x03,0x01, +0x0f,0x0f,0x0d,0x0b,0x08,0x05,0x03,0x01,0x0e,0x0e,0x0c,0x0a,0x08,0x05,0x02,0x01, +0x0d,0x0d,0x0c,0x0a,0x07,0x05,0x02,0x01,0x0d,0x0c,0x0b,0x09,0x07,0x04,0x02,0x01, +0x0c,0x0c,0x0a,0x09,0x06,0x04,0x02,0x01,0x0b,0x0b,0x0a,0x08,0x06,0x04,0x02,0x01, +0x0b,0x0a,0x09,0x08,0x06,0x04,0x02,0x01,0x0a,0x0a,0x09,0x07,0x05,0x03,0x02,0x01, +0x0a,0x09,0x08,0x07,0x05,0x03,0x02,0x01,0x09,0x09,0x08,0x06,0x05,0x03,0x01,0x01, +0x09,0x08,0x07,0x06,0x04,0x03,0x01,0x01,0x36,0x35,0x2e,0x1b,0x00,0x00,0x00,0x00, +0x33,0x32,0x2b,0x19,0x00,0x00,0x00,0x00,0x30,0x2f,0x29,0x18,0x00,0x00,0x00,0x00, +0x2d,0x2d,0x17,0x17,0x00,0x00,0x00,0x00,0x2b,0x2a,0x25,0x15,0x00,0x00,0x00,0x00, +0x28,0x28,0x24,0x14,0x00,0x00,0x00,0x00,0x26,0x25,0x21,0x13,0x00,0x00,0x00,0x00, +0x24,0x23,0x1f,0x12,0x00,0x00,0x00,0x00,0x22,0x21,0x1d,0x11,0x00,0x00,0x00,0x00, +0x20,0x20,0x1b,0x10,0x00,0x00,0x00,0x00,0x1f,0x1e,0x1a,0x0f,0x00,0x00,0x00,0x00, +0x1d,0x1c,0x18,0x0e,0x00,0x00,0x00,0x00,0x1b,0x1a,0x17,0x0e,0x00,0x00,0x00,0x00, +0x1a,0x19,0x16,0x0d,0x00,0x00,0x00,0x00,0x18,0x17,0x15,0x0c,0x00,0x00,0x00,0x00, +0x17,0x16,0x13,0x0b,0x00,0x00,0x00,0x00,0x16,0x15,0x12,0x0b,0x00,0x00,0x00,0x00, +0x14,0x14,0x11,0x0a,0x00,0x00,0x00,0x00,0x13,0x13,0x10,0x0a,0x00,0x00,0x00,0x00, +0x12,0x12,0x0f,0x09,0x00,0x00,0x00,0x00,0x11,0x11,0x0f,0x09,0x00,0x00,0x00,0x00, +0x10,0x10,0x0e,0x08,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0d,0x08,0x00,0x00,0x00,0x00, +0x0e,0x0e,0x0c,0x07,0x00,0x00,0x00,0x00,0x0d,0x0d,0x0c,0x07,0x00,0x00,0x00,0x00, +0x0d,0x0c,0x0b,0x06,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x06,0x00,0x00,0x00,0x00, +0x0b,0x0b,0x0a,0x06,0x00,0x00,0x00,0x00,0x0b,0x0a,0x09,0x05,0x00,0x00,0x00,0x00, +0x0a,0x0a,0x09,0x05,0x00,0x00,0x00,0x00,0x0a,0x09,0x08,0x05,0x00,0x00,0x00,0x00, +0x09,0x09,0x08,0x05,0x00,0x00,0x00,0x00,0x09,0x08,0x07,0x04,0x00,0x00,0x00,0x00, +0x06,0x00,0x2a,0xb0,0x05,0x00,0x2a,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x28,0x28,0x28,0x28,0x28,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x41,0x41,0x41,0x41,0x41,0x41,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x42,0x42,0x42,0x42,0x42,0x42,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x2d,0x5c,0x7c,0x2f,0x00,0x00,0x00,0x00, +0xaa,0xc4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6b,0x34,0xf0,0x00,0x6b,0x34,0xf0, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6b,0x25,0x60, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x09,0x66,0xd0,0xb8,0xff,0xff,0xff,0xff,}; + +u8 Rtl8192SEFwMainArray[MainArrayLength] = { +0x0, }; + +u8 Rtl8192SEFwDataArray[DataArrayLength] = { +0x0, }; + +u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength] = { +0x01c,0x07000000, +0x800,0x00040000, +0x804,0x00008003, +0x808,0x0000fc00, +0x80c,0x0000000a, +0x810,0x10005088, +0x814,0x020c3d10, +0x818,0x00200185, +0x81c,0x00000000, +0x820,0x01000000, +0x824,0x00390004, +0x828,0x01000000, +0x82c,0x00390004, +0x830,0x00000004, +0x834,0x00690200, +0x838,0x00000004, +0x83c,0x00690200, +0x840,0x00010000, +0x844,0x00010000, +0x848,0x00000000, +0x84c,0x00000000, +0x850,0x00000000, +0x854,0x00000000, +0x858,0x48484848, +0x85c,0x65a965a9, +0x860,0x0f7f0130, +0x864,0x0f7f0130, +0x868,0x0f7f0130, +0x86c,0x0f7f0130, +0x870,0x03000700, +0x874,0x03000300, +0x878,0x00020002, +0x87c,0x004f0201, +0x880,0xa8300ac1, +0x884,0x00000058, +0x888,0x00000008, +0x88c,0x00000004, +0x890,0x00000000, +0x894,0xfffffffe, +0x898,0x40302010, +0x89c,0x00706050, +0x8b0,0x00000000, +0x8e0,0x00000000, +0x8e4,0x00000000, +0xe00,0x30333333, +0xe04,0x2a2d2e2f, +0xe08,0x00003232, +0xe10,0x30333333, +0xe14,0x2a2d2e2f, +0xe18,0x30333333, +0xe1c,0x2a2d2e2f, +0xe30,0x01007c00, +0xe34,0x01004800, +0xe38,0x1000dc1f, +0xe3c,0x10008c1f, +0xe40,0x021400a0, +0xe44,0x281600a0, +0xe48,0xf8000001, +0xe4c,0x00002910, +0xe50,0x01007c00, +0xe54,0x01004800, +0xe58,0x1000dc1f, +0xe5c,0x10008c1f, +0xe60,0x021400a0, +0xe64,0x281600a0, +0xe6c,0x00002910, +0xe70,0x31ed92fb, +0xe74,0x361536fb, +0xe78,0x361536fb, +0xe7c,0x361536fb, +0xe80,0x361536fb, +0xe84,0x000d92fb, +0xe88,0x000d92fb, +0xe8c,0x31ed92fb, +0xed0,0x31ed92fb, +0xed4,0x31ed92fb, +0xed8,0x000d92fb, +0xedc,0x000d92fb, +0xee0,0x000d92fb, +0xee4,0x015e5448, +0xee8,0x21555448, +0x900,0x00000000, +0x904,0x00000023, +0x908,0x00000000, +0x90c,0x01121313, +0xa00,0x00d047c8, +0xa04,0x80ff0008, +0xa08,0x8ccd8300, +0xa0c,0x2e62120f, +0xa10,0x9500bb78, +0xa14,0x11144028, +0xa18,0x00881117, +0xa1c,0x89140f00, +0xa20,0x1a1b0000, +0xa24,0x090e1317, +0xa28,0x00000204, +0xa2c,0x10d30000, +0xc00,0x40071d40, +0xc04,0x00a05633, +0xc08,0x000000e4, +0xc0c,0x6c6c6c6c, +0xc10,0x08800000, +0xc14,0x40000100, +0xc18,0x08000000, +0xc1c,0x40000100, +0xc20,0x08000000, +0xc24,0x40000100, +0xc28,0x08000000, +0xc2c,0x40000100, +0xc30,0x6de9ac44, +0xc34,0x469652cf, +0xc38,0x49795994, +0xc3c,0x0a979764, +0xc40,0x1f7c403f, +0xc44,0x000100b7, +0xc48,0xec020000, +0xc4c,0x007f037f, +0xc50,0x69543420, +0xc54,0x433c0094, +0xc58,0x69543420, +0xc5c,0x433c0094, +0xc60,0x69543420, +0xc64,0x433c0094, +0xc68,0x69543420, +0xc6c,0x433c0094, +0xc70,0x2c7f000d, +0xc74,0x0186155b, +0xc78,0x0000001f, +0xc7c,0x00b91612, +0xc80,0x40000100, +0xc84,0x20f60000, +0xc88,0x20000080, +0xc8c,0x20200000, +0xc90,0x40000100, +0xc94,0x00000000, +0xc98,0x40000100, +0xc9c,0x00000000, +0xca0,0x00492492, +0xca4,0x00000000, +0xca8,0x00000000, +0xcac,0x00000000, +0xcb0,0x00000000, +0xcb4,0x00000000, +0xcb8,0x00000000, +0xcbc,0x28000000, +0xcc0,0x00000000, +0xcc4,0x00000000, +0xcc8,0x00000000, +0xccc,0x00000000, +0xcd0,0x00000000, +0xcd4,0x00000000, +0xcd8,0x64b22427, +0xcdc,0x00766932, +0xce0,0x00222222, +0xce4,0x00000000, +0xce8,0x37644302, +0xcec,0x2f97d40c, +0xd00,0x00000750, +0xd04,0x00000403, +0xd08,0x0000907f, +0xd0c,0x00000001, +0xd10,0xa0633333, +0xd14,0x33333c63, +0xd18,0x6a8f5b6b, +0xd1c,0x00000000, +0xd20,0x00000000, +0xd24,0x00000000, +0xd28,0x00000000, +0xd2c,0xcc979975, +0xd30,0x00000000, +0xd34,0x00000000, +0xd38,0x00000000, +0xd3c,0x00027293, +0xd40,0x00000000, +0xd44,0x00000000, +0xd48,0x00000000, +0xd50,0x6437140a, +0xd54,0x024dbd02, +0xd58,0x00000000, +0xd5c,0x30032064, +0xd60,0x4653de68, +0xd64,0x00518a3c, +0xd68,0x00002101, +0xf14,0x00000003, +0xf4c,0x00000000, +0xf00,0x00000300, +}; + +u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength] = { +0x0, }; + +u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength] = { +0x844,0xffffffff,0x00010000, +0x804,0x0000000f,0x00000001, +0x824,0x00f0000f,0x00300004, +0x82c,0x00f0000f,0x00100002, +0x870,0x04000000,0x00000001, +0x864,0x00000400,0x00000000, +0x878,0x000f000f,0x00000002, +0xe74,0x0f000000,0x00000002, +0xe78,0x0f000000,0x00000002, +0xe7c,0x0f000000,0x00000002, +0xe80,0x0f000000,0x00000002, +0x90c,0x000000ff,0x00000011, +0xc04,0x000000ff,0x00000011, +0xd04,0x0000000f,0x00000001, +0x1f4,0xffff0000,0x00007777, +0x234,0xf8000000,0x0000000a, +}; + +u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength] = { +0x804,0x0000000f,0x00000003, +0x824,0x00f0000f,0x00300004, +0x82c,0x00f0000f,0x00300002, +0x870,0x04000000,0x00000001, +0x864,0x00000400,0x00000000, +0x878,0x000f000f,0x00000002, +0xe74,0x0f000000,0x00000002, +0xe78,0x0f000000,0x00000002, +0xe7c,0x0f000000,0x00000002, +0xe80,0x0f000000,0x00000002, +0x90c,0x000000ff,0x00000011, +0xc04,0x000000ff,0x00000033, +0xd04,0x0000000f,0x00000003, +0x1f4,0xffff0000,0x00007777, +0x234,0xf8000000,0x0000000a, +}; + +u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength] = { +0x804,0x0000000f,0x00000003, +0x824,0x00f0000f,0x00300004, +0x82c,0x00f0000f,0x00300004, +0x870,0x04000000,0x00000001, +0x864,0x00000400,0x00000001, +0x878,0x000f000f,0x00020002, +0xe74,0x0f000000,0x00000006, +0xe78,0x0f000000,0x00000006, +0xe7c,0x0f000000,0x00000006, +0xe80,0x0f000000,0x00000006, +0x90c,0x000000ff,0x00000033, +0xc04,0x000000ff,0x00000033, +0xd04,0x0000000f,0x00000003, +0x1f4,0xffff0000,0x0000ffff, +0x234,0xf8000000,0x00000013, +}; + +u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength] = { +0xe00,0xffffffff,0x06090909, +0xe04,0xffffffff,0x00030406, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x0a0c0d0e, +0xe14,0xffffffff,0x04070809, +0xe18,0xffffffff,0x0a0c0d0e, +0xe1c,0xffffffff,0x04070809, +0xe00,0xffffffff,0x04040404, +0xe04,0xffffffff,0x00020204, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x02040404, +0xe14,0xffffffff,0x00000002, +0xe18,0xffffffff,0x02040404, +0xe1c,0xffffffff,0x00000002, +0xe00,0xffffffff,0x04040404, +0xe04,0xffffffff,0x00020204, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x02040404, +0xe14,0xffffffff,0x00000002, +0xe18,0xffffffff,0x02040404, +0xe1c,0xffffffff,0x00000002, +0xe00,0xffffffff,0x02020202, +0xe04,0xffffffff,0x00020202, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x02020202, +0xe14,0xffffffff,0x00000002, +0xe18,0xffffffff,0x02020202, +0xe1c,0xffffffff,0x00000002, +}; + +u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength] = { +0x000,0x00030159, +0x001,0x00030250, +0x002,0x00010000, +0x010,0x0008000f, +0x011,0x000231fc, +0x010,0x000c000f, +0x011,0x0003f9f8, +0x010,0x0002000f, +0x011,0x00020101, +0x014,0x0001093e, +0x014,0x0009093e, +0x015,0x0000f8f4, +0x017,0x000f6500, +0x01a,0x00013056, +0x01b,0x00060000, +0x01c,0x00000300, +0x01e,0x00031059, +0x021,0x00054000, +0x022,0x0000083c, +0x023,0x00001558, +0x024,0x00000060, +0x025,0x00022583, +0x026,0x0000f200, +0x027,0x000eacf1, +0x028,0x0009bd54, +0x029,0x00004582, +0x02a,0x00000001, +0x02b,0x00021334, +0x02a,0x00000000, +0x02b,0x0000000a, +0x02a,0x00000001, +0x02b,0x00000808, +0x02b,0x00053333, +0x02c,0x0000000c, +0x02a,0x00000002, +0x02b,0x00000808, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000003, +0x02b,0x00000808, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000004, +0x02b,0x00000808, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000005, +0x02b,0x00000709, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x00000006, +0x02b,0x00000709, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000007, +0x02b,0x00000709, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000008, +0x02b,0x00000709, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000009, +0x02b,0x0000060a, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000a, +0x02b,0x0000060a, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x0000000b, +0x02b,0x0000060a, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x0000000c, +0x02b,0x0000060a, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x0000000d, +0x02b,0x0000050b, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000e, +0x02b,0x0000050b, +0x02b,0x00066623, +0x02c,0x0000001a, +0x02a,0x000e4000, +0x030,0x00020000, +0x031,0x000b9631, +0x032,0x0000130d, +0x033,0x00000187, +0x013,0x00019e6c, +0x013,0x00015e94, +0x000,0x00010159, +0x018,0x0000f401, +0x0fe,0x00000000, +0x01e,0x0003105b, +0x0fe,0x00000000, +0x000,0x00030159, +0x010,0x0004000f, +0x011,0x000203f9, +}; + +u32 Rtl8192SERadioB_Array[RadioB_ArrayLength] = { +0x000,0x00030159, +0x001,0x00001041, +0x002,0x00011000, +0x005,0x00080fc0, +0x007,0x000fc803, +0x013,0x00017cb0, +0x013,0x00011cc0, +0x013,0x0000dc60, +0x013,0x00008c60, +0x013,0x00004450, +0x013,0x00000020, +}; + +u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength] = { +0x000,0x00030159, +0x001,0x00030250, +0x002,0x00010000, +0x010,0x0008000f, +0x011,0x000231fc, +0x010,0x000c000f, +0x011,0x0003f9f8, +0x014,0x0001093e, +0x014,0x0009093e, +0x015,0x000198f4, +0x017,0x000f6500, +0x01a,0x00013056, +0x01b,0x00060000, +0x01c,0x00000300, +0x01e,0x00031059, +0x021,0x00054000, +0x022,0x0000083c, +0x023,0x00001558, +0x024,0x00000060, +0x025,0x00022583, +0x026,0x0000f200, +0x027,0x000eacf1, +0x028,0x000dbd54, +0x029,0x00004582, +0x02a,0x00000001, +0x02b,0x00021334, +0x02a,0x00000000, +0x02b,0x0000000a, +0x02a,0x00000001, +0x02b,0x00000808, +0x02b,0x00053333, +0x02c,0x0000000c, +0x02a,0x00000002, +0x02b,0x00000808, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000003, +0x02b,0x00000808, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000004, +0x02b,0x00000808, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000005, +0x02b,0x00000709, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x00000006, +0x02b,0x00000709, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000007, +0x02b,0x00000709, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000008, +0x02b,0x00000709, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000009, +0x02b,0x0000060a, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000a, +0x02b,0x0000060a, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x0000000b, +0x02b,0x0000060a, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x0000000c, +0x02b,0x0000060a, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x0000000d, +0x02b,0x0000050b, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000e, +0x02b,0x0000050b, +0x02b,0x00066623, +0x02c,0x0000001a, +0x02a,0x000e4000, +0x030,0x00020000, +0x031,0x000b9631, +0x033,0x00000187, +0x013,0x00019e6c, +0x013,0x00015e94, +0x000,0x00010159, +0x018,0x0000f401, +0x0fe,0x00000000, +0x01e,0x0003105b, +0x0fe,0x00000000, +0x000,0x00030159, +0x010,0x0004000f, +0x011,0x000203f9, +}; + +u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength] = { +0x000,0x00030159, +0x001,0x00030250, +0x002,0x00010000, +0x010,0x0008000f, +0x011,0x000231fc, +0x010,0x000c000f, +0x011,0x0003f9f8, +0x014,0x0001093e, +0x014,0x0009093e, +0x015,0x000198f4, +0x017,0x000f6500, +0x01a,0x00013056, +0x01b,0x00060000, +0x01c,0x00000300, +0x01e,0x00031059, +0x021,0x00054000, +0x022,0x0000083c, +0x023,0x00001558, +0x024,0x00000060, +0x025,0x00022583, +0x026,0x0000f200, +0x027,0x000eacf1, +0x028,0x000dbd54, +0x029,0x00004582, +0x02a,0x00000001, +0x02b,0x00021334, +0x02a,0x00000000, +0x02b,0x0000000a, +0x02a,0x00000001, +0x02b,0x00000808, +0x02b,0x00053333, +0x02c,0x0000000c, +0x02a,0x00000002, +0x02b,0x00000808, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000003, +0x02b,0x00000808, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000004, +0x02b,0x00000808, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000005, +0x02b,0x00000709, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x00000006, +0x02b,0x00000709, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000007, +0x02b,0x00000709, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000008, +0x02b,0x00000709, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000009, +0x02b,0x0000060a, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000a, +0x02b,0x0000060a, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x0000000b, +0x02b,0x0000060a, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x0000000c, +0x02b,0x0000060a, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x0000000d, +0x02b,0x0000050b, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000e, +0x02b,0x0000050b, +0x02b,0x00066623, +0x02c,0x0000001a, +0x02a,0x000e4000, +0x030,0x00020000, +0x031,0x000b9631, +0x033,0x00000187, +0x013,0x00019e6c, +0x013,0x00015e94, +0x000,0x00010159, +0x018,0x0000f401, +0x0fe,0x00000000, +0x01e,0x0003105b, +0x0fe,0x00000000, +0x000,0x00030159, +0x010,0x0004000f, +0x011,0x000203f9, +}; + +u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength] = { +0x000,0x00030159, +0x001,0x00001041, +0x002,0x00011000, +0x005,0x00080fc0, +0x007,0x000fc803, +}; + +u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength] = { +0x020,0x00000035, +0x048,0x0000000e, +0x049,0x000000f0, +0x04a,0x00000077, +0x04b,0x00000083, +0x0b5,0x00000021, +0x0dc,0x000000ff, +0x0dd,0x000000ff, +0x0de,0x000000ff, +0x0df,0x000000ff, +0x116,0x00000000, +0x117,0x00000000, +0x118,0x00000000, +0x119,0x00000000, +0x11a,0x00000000, +0x11b,0x00000000, +0x11c,0x00000000, +0x11d,0x00000000, +0x160,0x0000000b, +0x161,0x0000000b, +0x162,0x0000000b, +0x163,0x0000000b, +0x164,0x0000000b, +0x165,0x0000000b, +0x166,0x0000000b, +0x167,0x0000000b, +0x168,0x0000000b, +0x169,0x0000000b, +0x16a,0x0000000b, +0x16b,0x0000000b, +0x16c,0x0000000b, +0x16d,0x0000000b, +0x16e,0x0000000b, +0x16f,0x0000000b, +0x170,0x0000000b, +0x171,0x0000000b, +0x172,0x0000000b, +0x173,0x0000000b, +0x174,0x0000000b, +0x175,0x0000000b, +0x176,0x0000000b, +0x177,0x0000000b, +0x178,0x0000000b, +0x179,0x0000000b, +0x17a,0x0000000b, +0x17b,0x0000000b, +0x17c,0x0000000b, +0x17d,0x0000000b, +0x17e,0x0000000b, +0x17f,0x0000000b, +0x236,0x0000000c, +0x503,0x00000022, +0x560,0x00000000, +}; + +u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength] = { +0x0, }; + +u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength] = { +0xc78,0x7f000001, +0xc78,0x7f010001, +0xc78,0x7e020001, +0xc78,0x7d030001, +0xc78,0x7c040001, +0xc78,0x7b050001, +0xc78,0x7a060001, +0xc78,0x79070001, +0xc78,0x78080001, +0xc78,0x77090001, +0xc78,0x760a0001, +0xc78,0x750b0001, +0xc78,0x740c0001, +0xc78,0x730d0001, +0xc78,0x720e0001, +0xc78,0x710f0001, +0xc78,0x70100001, +0xc78,0x6f110001, +0xc78,0x6f120001, +0xc78,0x6e130001, +0xc78,0x6d140001, +0xc78,0x6d150001, +0xc78,0x6c160001, +0xc78,0x6b170001, +0xc78,0x6a180001, +0xc78,0x6a190001, +0xc78,0x691a0001, +0xc78,0x681b0001, +0xc78,0x671c0001, +0xc78,0x661d0001, +0xc78,0x651e0001, +0xc78,0x641f0001, +0xc78,0x63200001, +0xc78,0x4c210001, +0xc78,0x4b220001, +0xc78,0x4a230001, +0xc78,0x49240001, +0xc78,0x48250001, +0xc78,0x47260001, +0xc78,0x46270001, +0xc78,0x45280001, +0xc78,0x44290001, +0xc78,0x2c2a0001, +0xc78,0x2b2b0001, +0xc78,0x2a2c0001, +0xc78,0x292d0001, +0xc78,0x282e0001, +0xc78,0x272f0001, +0xc78,0x26300001, +0xc78,0x25310001, +0xc78,0x24320001, +0xc78,0x23330001, +0xc78,0x22340001, +0xc78,0x09350001, +0xc78,0x08360001, +0xc78,0x07370001, +0xc78,0x06380001, +0xc78,0x05390001, +0xc78,0x043a0001, +0xc78,0x033b0001, +0xc78,0x023c0001, +0xc78,0x013d0001, +0xc78,0x003e0001, +0xc78,0x003f0001, +0xc78,0x7f400001, +0xc78,0x7f410001, +0xc78,0x7e420001, +0xc78,0x7d430001, +0xc78,0x7c440001, +0xc78,0x7b450001, +0xc78,0x7a460001, +0xc78,0x79470001, +0xc78,0x78480001, +0xc78,0x77490001, +0xc78,0x764a0001, +0xc78,0x754b0001, +0xc78,0x744c0001, +0xc78,0x734d0001, +0xc78,0x724e0001, +0xc78,0x714f0001, +0xc78,0x70500001, +0xc78,0x6f510001, +0xc78,0x6f520001, +0xc78,0x6e530001, +0xc78,0x6d540001, +0xc78,0x6d550001, +0xc78,0x6c560001, +0xc78,0x6b570001, +0xc78,0x6a580001, +0xc78,0x6a590001, +0xc78,0x695a0001, +0xc78,0x685b0001, +0xc78,0x675c0001, +0xc78,0x665d0001, +0xc78,0x655e0001, +0xc78,0x645f0001, +0xc78,0x63600001, +0xc78,0x4c610001, +0xc78,0x4b620001, +0xc78,0x4a630001, +0xc78,0x49640001, +0xc78,0x48650001, +0xc78,0x47660001, +0xc78,0x46670001, +0xc78,0x45680001, +0xc78,0x44690001, +0xc78,0x2c6a0001, +0xc78,0x2b6b0001, +0xc78,0x2a6c0001, +0xc78,0x296d0001, +0xc78,0x286e0001, +0xc78,0x276f0001, +0xc78,0x26700001, +0xc78,0x25710001, +0xc78,0x24720001, +0xc78,0x23730001, +0xc78,0x22740001, +0xc78,0x09750001, +0xc78,0x08760001, +0xc78,0x07770001, +0xc78,0x06780001, +0xc78,0x05790001, +0xc78,0x047a0001, +0xc78,0x037b0001, +0xc78,0x027c0001, +0xc78,0x017d0001, +0xc78,0x007e0001, +0xc78,0x007f0001, +0xc78,0x3000001e, +0xc78,0x3001001e, +0xc78,0x3002001e, +0xc78,0x3003001e, +0xc78,0x3004001e, +0xc78,0x3405001e, +0xc78,0x3806001e, +0xc78,0x3e07001e, +0xc78,0x3e08001e, +0xc78,0x4409001e, +0xc78,0x460a001e, +0xc78,0x480b001e, +0xc78,0x480c001e, +0xc78,0x4e0d001e, +0xc78,0x560e001e, +0xc78,0x5a0f001e, +0xc78,0x5e10001e, +0xc78,0x6211001e, +0xc78,0x6c12001e, +0xc78,0x7213001e, +0xc78,0x7214001e, +0xc78,0x7215001e, +0xc78,0x7216001e, +0xc78,0x7217001e, +0xc78,0x7218001e, +0xc78,0x7219001e, +0xc78,0x721a001e, +0xc78,0x721b001e, +0xc78,0x721c001e, +0xc78,0x721d001e, +0xc78,0x721e001e, +0xc78,0x721f001e, +}; + +u32 Rtl8192SEAGCTAB_1TArray[AGCTAB_1TArrayLength] = { +0x0, }; + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.c @@ -0,0 +1,1867 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#include "../rtl_core.h" +#include + +#ifdef RTL8192SE +/*---------------------------Define Local Constant---------------------------*/ +#define _POWERON_DELAY_ +#define _PRE_EXECUTE_READ_CMD_ + +#define EFUSE_REPEAT_THRESHOLD_ 3 +#define EFUSE_ERROE_HANDLE 1 + + +typedef struct _EFUSE_MAP_A{ + u8 offset; + u8 word_start; + u8 byte_start; + u8 byte_cnts; + +}EFUSE_MAP, *PEFUSE_MAP; + +typedef struct PG_PKT_STRUCT_A{ + u8 offset; + u8 word_en; + u8 data[8]; +}PGPKT_STRUCT,*PPGPKT_STRUCT; + +typedef enum _EFUSE_DATA_ITEM{ + EFUSE_CHIP_ID=0, + EFUSE_LDO_SETTING, + EFUSE_CLK_SETTING, + EFUSE_SDIO_SETTING, + EFUSE_CCCR, + EFUSE_SDIO_MODE, + EFUSE_OCR, + EFUSE_F0CIS, + EFUSE_F1CIS, + EFUSE_MAC_ADDR, + EFUSE_EEPROM_VER, + EFUSE_CHAN_PLAN, + EFUSE_TXPW_TAB +} EFUSE_DATA_ITEM; + +struct efuse_priv +{ + u8 id[2]; + u8 ldo_setting[2]; + u8 clk_setting[2]; + u8 cccr; + u8 sdio_mode; + u8 ocr[3]; + u8 cis0[17]; + u8 cis1[48]; + u8 mac_addr[6]; + u8 eeprom_verno; + u8 channel_plan; + u8 tx_power_b[14]; + u8 tx_power_g[14]; +}; + +/*---------------------------Define Local Constant---------------------------*/ + + +/*------------------------Define global variable-----------------------------*/ +const u8 MAX_PGPKT_SIZE = 9; +const u8 PGPKT_DATA_SIZE = 8; +const u32 EFUSE_MAX_SIZE = 512; + +const u8 EFUSE_OOB_PROTECT_BYTES = 15; + + +const EFUSE_MAP RTL8712_SDIO_EFUSE_TABLE[]={ +/*ID*/ {0 ,0 ,0 ,2 }, +/*LDO Setting*/ {0 ,1 ,0 ,2 }, +/*CLK Setting*/ {0 ,2 ,0 ,2 }, +/*SDIO Setting*/{1 ,0 ,0 ,1 }, +/*CCCR*/ {1 ,0 ,1 ,1 }, +/*SDIO MODE*/ {1 ,1 ,0 ,1 }, +/*OCR*/ {1 ,1 ,1 ,3 }, +/*CCIS*/ {1 ,3 ,0 ,17 }, +/*F1CIS*/ {3 ,3 ,1 ,48 }, +/*MAC Addr*/ {10 ,0 ,0 ,6 }, +/*EEPROM ver*/ {10 ,3 ,0 ,1 }, +/*Channel plan*/{10 ,3 ,1 ,1 }, +/*TxPwIndex */ {11 ,0 ,0 ,28 } +}; + +/*------------------------Define global variable-----------------------------*/ + + +/*------------------------Define local variable------------------------------*/ + +/*------------------------Define local variable------------------------------*/ + + +/*--------------------Define function prototype-----------------------*/ +extern void +EFUSE_Initialize(struct net_device* dev); +extern u8 +EFUSE_Read1Byte(struct net_device* dev, u16 Address); +extern void +EFUSE_Write1Byte(struct net_device* dev, u16 Address,u8 Value); + +static void +efuse_ShadowRead1Byte(struct net_device* dev,u16 Offset,u8 *Value); +static void +efuse_ShadowRead2Byte(struct net_device* dev, u16 Offset,u16 *Value ); +static void +efuse_ShadowRead4Byte(struct net_device* dev, u16 Offset,u32 *Value ); +static void +efuse_ShadowWrite1Byte(struct net_device* dev, u16 Offset, u8 Value); +static void +efuse_ShadowWrite2Byte(struct net_device* dev, u16 Offset,u16 Value); +static void +efuse_ShadowWrite4Byte(struct net_device* dev, u16 Offset,u32 Value); + +static u8 +efuse_OneByteRead(struct net_device* dev,u16 addr,u8 *data); +static u8 +efuse_OneByteWrite(struct net_device* dev,u16 addr, u8 data); + +static void +efuse_ReadAllMap(struct net_device* dev,u8 *Efuse); +#ifdef TO_DO_LIST +static void +efuse_WriteAllMap(struct net_device* dev,u8 *eeprom,u32 eeprom_size); +static bool +efuse_ParsingMap(char* szStr,u32* pu4bVal,u32* pu4bMove); +#endif +static u8 +efuse_PgPacketRead( struct net_device* dev,u8 offset,u8 *data); +static u8 +efuse_PgPacketWrite(struct net_device* dev,u8 offset,u8 word_en,u8 *data); +static void +efuse_WordEnableDataRead( u8 word_en,u8 *sourdata,u8 *targetdata); +static u8 +efuse_WordEnableDataWrite( struct net_device* dev, u16 efuse_addr, u8 word_en, u8 *data); +static void +efuse_PowerSwitch(struct net_device* dev,u8 PwrState); +static u16 +efuse_GetCurrentSize(struct net_device* dev); +static u8 +efuse_CalculateWordCnts(u8 word_en); +#if 0 +static void +efuse_ResetLoader(struct net_device* dev); +#endif +#ifdef TO_DO_LIST +static void efuse_reg_ctrl(struct net_device* dev, u8 bPowerOn); +#endif +/*--------------------Define function prototype-----------------------*/ + + + +extern void +EFUSE_Initialize(struct net_device* dev) +{ + u8 Bytetemp = {0x00}; + u8 temp = {0x00}; + + Bytetemp = read_nic_byte(dev, SYS_FUNC_EN+1); + temp = Bytetemp | 0x20; + write_nic_byte(dev, SYS_FUNC_EN+1, temp); + + Bytetemp = read_nic_byte(dev, SYS_ISO_CTRL+1); + temp = Bytetemp & 0xFE; + write_nic_byte(dev, SYS_ISO_CTRL+1, temp); + + + Bytetemp = read_nic_byte(dev, EFUSE_TEST+3); + temp = Bytetemp | 0x80; + write_nic_byte(dev, EFUSE_TEST+3, temp); + + write_nic_byte(dev, 0x2F8, 0x3); + + write_nic_byte(dev, EFUSE_CTRL+3, 0x72); + +} /* EFUSE_Initialize */ + + +extern u8 +EFUSE_Read1Byte(struct net_device* dev, u16 Address) +{ + u8 data; + u8 Bytetemp = {0x00}; + u8 temp = {0x00}; + u32 k=0; + + if (Address < EFUSE_REAL_CONTENT_LEN) + { + temp = Address & 0xFF; + write_nic_byte(dev, EFUSE_CTRL+1, temp); + Bytetemp = read_nic_byte(dev, EFUSE_CTRL+2); + temp = ((Address >> 8) & 0x03) | (Bytetemp & 0xFC); + write_nic_byte(dev, EFUSE_CTRL+2, temp); + + Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3); + temp = Bytetemp & 0x7F; + write_nic_byte(dev, EFUSE_CTRL+3, temp); + + Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3); + while(!(Bytetemp & 0x80)) + { + Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3); + k++; + if(k==1000) + { + k=0; + break; + } + } + data=read_nic_byte(dev, EFUSE_CTRL); + return data; + } + else + return 0xFF; + +} /* EFUSE_Read1Byte */ + + +extern void +EFUSE_Write1Byte(struct net_device* dev, u16 Address,u8 Value) +{ + u8 Bytetemp = {0x00}; + u8 temp = {0x00}; + u32 k=0; + + + if( Address < EFUSE_REAL_CONTENT_LEN) + { + write_nic_byte(dev, EFUSE_CTRL, Value); + + temp = Address & 0xFF; + write_nic_byte(dev, EFUSE_CTRL+1, temp); + Bytetemp = read_nic_byte(dev, EFUSE_CTRL+2); + + temp = ((Address >> 8) & 0x03) | (Bytetemp & 0xFC); + write_nic_byte(dev, EFUSE_CTRL+2, temp); + + Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3); + temp = Bytetemp | 0x80; + write_nic_byte(dev, EFUSE_CTRL+3, temp); + + Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3); + while(Bytetemp & 0x80) + { + Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3); + k++; + if(k==100) + { + k=0; + break; + } + } + } + +} /* EFUSE_Write1Byte */ + + +#ifdef EFUSE_FOR_92SU +void do_93c46(struct net_device* dev, u8 addorvalue) +{ + u8 cs[1] = {0x88}; + u8 cssk[1] = {0x8c}; + u8 csdi[1] = {0x8a}; + u8 csskdi[1] = {0x8e}; + u8 count; + + for(count=0 ; count<8 ; count++) + { + if((addorvalue&0x80)!=0) + { + write_nic_byte(dev, EPROM_CMD, csdi[0]); + write_nic_byte(dev, EPROM_CMD, csskdi[0]); + } + else + { + write_nic_byte(dev, EPROM_CMD, cs[0]); + write_nic_byte(dev, EPROM_CMD, cssk[0]); + } + addorvalue = addorvalue << 1; + } +} + + +u16 Read93C46(struct net_device* dev, u16 Reg ) +{ + + u8 clear[1] = {0x0}; + u8 cs[1] = {0x88}; + u8 cssk[1] = {0x8c}; + u8 csdi[1] = {0x8a}; + u8 csskdi[1] = {0x8e}; + u8 EepromSEL[1]={0x00}; + u8 address; + + u16 storedataF[1] = {0x0}; + u8 t,data[1],storedata[1]; + + + address = (u8)Reg; + + *EepromSEL= read_nic_byte(dev, EPROM_CMD); + + if((*EepromSEL & 0x10) == 0x10) + { + address = address | 0x80; + + write_nic_byte(dev, EPROM_CMD, csdi[0]); + write_nic_byte(dev, EPROM_CMD, csskdi[0]); + do_93c46(dev, address); + } + + + for(t=0 ; t<16 ; t++) + { + write_nic_byte(dev, EPROM_CMD, cs[0]); + write_nic_byte(dev, EPROM_CMD, cssk[0]); + *data= read_nic_byte(dev, EPROM_CMD); + + if(*data & 0x8d) + { + *data = *data & 0x01; + *storedata = *data; + } + else + { + *data = *data & 0x01 ; + *storedata = *data; + } + *storedataF = (*storedataF << 1 ) + *storedata; + } + write_nic_byte(dev, EPROM_CMD, cs[0]); + write_nic_byte(dev, EPROM_CMD, clear[0]); + + return *storedataF; +} + + +void +ReadEFuseByte(struct net_device* dev,u16 _offset, u8 *pbuf) +{ + + u32 value32; + u8 readbyte; + u16 retry; + + + write_nic_byte(dev, EFUSE_CTRL+1, (_offset & 0xff)); + readbyte = read_nic_byte(dev, EFUSE_CTRL+2); + write_nic_byte(dev, EFUSE_CTRL+2, ((_offset >> 8) & 0x03) | (readbyte & 0xfc)); + + readbyte = read_nic_byte(dev, EFUSE_CTRL+3); + write_nic_byte(dev, EFUSE_CTRL+3, (readbyte & 0x7f)); + + retry = 0; + value32 = read_nic_dword(dev, EFUSE_CTRL); + while(!(((value32 >> 24) & 0xff) & 0x80) && (retry<10000)) + { + value32 = read_nic_dword(dev, EFUSE_CTRL); + retry++; + } + *pbuf = (u8)(value32 & 0xff); +} + + +#define EFUSE_READ_SWITCH 1 +void +ReadEFuse(struct net_device* dev, u16 _offset, u16 _size_byte, u8 *pbuf) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 efuseTbl[EFUSE_MAP_LEN]; + u8 rtemp8[1]; + u16 eFuse_Addr = 0; + u8 offset, wren; + u16 i, j; + u16 eFuseWord[EFUSE_MAX_SECTION][EFUSE_MAX_WORD_UNIT]; + u16 efuse_utilized = 0; + u16 efuse_usage = 0; +#ifdef EFUSE_REPG_WORKAROUND + u16 sec1_addr = 0, sec5_addr = 0; +#endif + + if((_offset + _size_byte)>EFUSE_MAP_LEN) + { + printk("ReadEFuse(): Invalid offset with read bytes!!\n"); + return; + } + + for (i = 0; i < EFUSE_MAX_SECTION; i++) + for (j = 0; j < EFUSE_MAX_WORD_UNIT; j++) + eFuseWord[i][j]=0xFFFF; + + for (i = 0; i < EFUSE_MAP_LEN; i++) + efuseTbl[i] = 0xFF; + + ReadEFuseByte(dev, eFuse_Addr, rtemp8); + if(*rtemp8 != 0xFF) + { + efuse_utilized++; + eFuse_Addr++; + } + while((*rtemp8 != 0xFF) && (eFuse_Addr < EFUSE_REAL_CONTENT_LEN)) + { + offset = ((*rtemp8 >> 4) & 0x0f); +#ifdef EFUSE_REPG_WORKAROUND + if (IS_HARDWARE_TYPE_8192SE(dev)) + { + if (offset == 1) + { + sec1_addr = eFuse_Addr; + } + else if (offset == 5) + { + sec5_addr = eFuse_Addr; + } + + if (sec1_addr > sec5_addr) + { + priv->efuse_RePGSec1Flag = false; + } + else + { + priv->efuse_RePGSec1Flag = true; + } + } +#endif + if(offset < EFUSE_MAX_SECTION){ + wren = (*rtemp8 & 0x0f); + for(i=0; i<4; i++){ + if(!(wren & 0x01)){ + ReadEFuseByte(dev, eFuse_Addr, rtemp8); eFuse_Addr++; + efuse_utilized++; + eFuseWord[offset][i] = (*rtemp8 & 0xff); + if(eFuse_Addr >= EFUSE_REAL_CONTENT_LEN) break; + ReadEFuseByte(dev, eFuse_Addr, rtemp8); eFuse_Addr++; + efuse_utilized++; + eFuseWord[offset][i] |= (((u16)*rtemp8 << 8) & 0xff00); + if(eFuse_Addr >= EFUSE_REAL_CONTENT_LEN) break; + } + wren >>= 1; + } + } + ReadEFuseByte(dev, eFuse_Addr, rtemp8); + if(*rtemp8 != 0xFF && (eFuse_Addr < 512)) + { + efuse_utilized++; + eFuse_Addr++; + } + } + + for(i=0; i> 8) & 0xff); +#ifdef FUSE_REPG_WORKAROUND + if ((i == 1) && (priv->efuse_RePGSec1Flag == true)) + { + priv->efuse_RePGData[j*2]=(eFuseWord[i][j] & 0xff); + priv->efuse_RePGData[(j*2)+1]=((eFuseWord[i][j] >> 8) & 0xff); + } +#endif + } + } + for(i=0; i<_size_byte; i++) + pbuf[i] = efuseTbl[_offset+i]; + priv->EfuseUsedBytes = efuse_utilized; + efuse_usage = (u8)((efuse_utilized*100)/EFUSE_REAL_CONTENT_LEN); + priv->EfuseUsedPercentage = efuse_usage; +} +#endif + +extern bool EFUSE_ShadowUpdateChk(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 SectionIdx, i, Base; + u16 WordsNeed = 0, HdrNum = 0, TotalBytes = 0, EfuseUsed = 0; + bool bWordChanged, bResult = true; + + for (SectionIdx = 0; SectionIdx < 16; SectionIdx++) { + Base = SectionIdx * 8; + bWordChanged = false; + + for (i = 0; i < 8; i=i+2) { + if((priv->EfuseMap[EFUSE_INIT_MAP][Base+i] != + priv->EfuseMap[EFUSE_MODIFY_MAP][Base+i]) || + (priv->EfuseMap[EFUSE_INIT_MAP][Base+i+1] != + priv->EfuseMap[EFUSE_MODIFY_MAP][Base+i+1])) { + WordsNeed++; + bWordChanged = true; + } + } + + if( bWordChanged == true ) + HdrNum++; + } + + TotalBytes = HdrNum + WordsNeed * 2; + EfuseUsed = priv->EfuseUsedBytes; + + if ((TotalBytes + EfuseUsed) >= (EFUSE_MAX_SIZE - EFUSE_OOB_PROTECT_BYTES)) + bResult = false; + + return bResult; +} + +extern void +EFUSE_ShadowRead( struct net_device* dev, u8 Type, u16 Offset, u32 *Value) +{ + + if (Type == 1) + efuse_ShadowRead1Byte(dev, Offset, (u8 *)Value); + else if (Type == 2) + efuse_ShadowRead2Byte(dev, Offset, (u16 *)Value); + else if (Type == 4) + efuse_ShadowRead4Byte(dev, Offset, (u32 *)Value); + +} + + +extern void +EFUSE_ShadowWrite( struct net_device* dev, u8 Type, u16 Offset,u32 Value) +{ + + if (Offset >= 0x18 && Offset <= 0x1F) + return; + + if (Type == 1) + efuse_ShadowWrite1Byte(dev, Offset, (u8)Value); + else if (Type == 2) + efuse_ShadowWrite2Byte(dev, Offset, (u16)Value); + else if (Type == 4) + efuse_ShadowWrite4Byte(dev, Offset, (u32)Value); + +} + + +extern bool EFUSE_ShadowUpdate(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u16 i, offset, base = 0; + u8 word_en = 0x0F; + bool first_pg = false; + + if (!EFUSE_ShadowUpdateChk(dev)) { + efuse_ReadAllMap(dev, &priv->EfuseMap[EFUSE_INIT_MAP][0]); + memcpy(&priv->EfuseMap[EFUSE_MODIFY_MAP][0], + (void *)&priv->EfuseMap[EFUSE_INIT_MAP][0], HWSET_MAX_SIZE_92S); + + printk("<---EFUSE_ShadowUpdate(): Efuse out of capacity!!\n"); + return false; + } + + efuse_PowerSwitch(dev, true); + + for (offset = 0; offset < 16; offset++) + { + if(IS_HARDWARE_TYPE_8192SE(dev)){ + if (offset == 3) + continue; + } + word_en = 0x0F; + base = offset * 8; + + for (i = 0; i < 8; i++) + { + if (offset == 0 && priv->EfuseMap[EFUSE_INIT_MAP][base+i] == 0xFF) + { + first_pg = true; + } + + if (first_pg == true && offset == 1 && IS_HARDWARE_TYPE_8192SE(dev)) + { + continue; + } + + if (first_pg == true) + { + word_en &= ~(BIT(i/2)); + priv->EfuseMap[EFUSE_INIT_MAP][base+i] = + priv->EfuseMap[EFUSE_MODIFY_MAP][base+i]; + }else + { + if ( priv->EfuseMap[EFUSE_INIT_MAP][base+i] != + priv->EfuseMap[EFUSE_MODIFY_MAP][base+i]) + { + word_en &= ~(EFUSE_BIT(i/2)); + + priv->EfuseMap[EFUSE_INIT_MAP][base+i] = + priv->EfuseMap[EFUSE_MODIFY_MAP][base+i]; + } + } + } + + if (word_en != 0x0F) + { + u8 tmpdata[8]; + + memcpy(tmpdata, &(priv->EfuseMap[EFUSE_MODIFY_MAP][base]), 8); + efuse_PgPacketWrite(dev,(u8)offset,word_en,tmpdata); + } + + } + if (first_pg == true && IS_HARDWARE_TYPE_8192SE(dev)) + { + u8 tmpdata[8]; + + memcpy(tmpdata, (&priv->EfuseMap[EFUSE_MODIFY_MAP][8]), 8); + efuse_PgPacketWrite(dev, 1, 0x0, tmpdata); +#if 0 + u1Byte tmpdata[8] = {0xFF, 0xFF, 0xEC, 0x10, 0xFF, 0xFF, 0xFF, 0xFF}; + + efuse_PgPacketWrite(pAdapter, 1, 0xD, tmpdata); +#endif + } + + + efuse_PowerSwitch(dev, false); + efuse_ReadAllMap(dev, &priv->EfuseMap[EFUSE_INIT_MAP][0]); + memcpy(&priv->EfuseMap[EFUSE_MODIFY_MAP][0], + (void *)&priv->EfuseMap[EFUSE_INIT_MAP][0], HWSET_MAX_SIZE_92S); + + return true; +} + + +extern void EFUSE_ShadowMapUpdate(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if (priv->AutoloadFailFlag == true){ + memset(&(priv->EfuseMap[EFUSE_INIT_MAP][0]), 0xff, 128); + }else{ + efuse_ReadAllMap(dev, &priv->EfuseMap[EFUSE_INIT_MAP][0]); + } + memcpy(&priv->EfuseMap[EFUSE_MODIFY_MAP][0], + &priv->EfuseMap[EFUSE_INIT_MAP][0], HWSET_MAX_SIZE_92S); + +} + + +extern void +EFUSE_ForceWriteVendorId( struct net_device* dev) +{ + u8 tmpdata[8] = {0xFF, 0xFF, 0xEC, 0x10, 0xFF, 0xFF, 0xFF, 0xFF}; + + efuse_PowerSwitch(dev, true); + + efuse_PgPacketWrite(dev, 1, 0xD, tmpdata); + + efuse_PowerSwitch(dev, false); + +} + +extern void +EFUSE_RePgSection1(struct net_device* dev) +{ +#ifdef EFUSE_REPG_WORKAROUND + + struct r8192_priv *priv = rtllib_priv(dev); + + if (priv->efuse_RePGSec1Flag == true) + { + efuse_PowerSwitch(dev, true); + RT_TRACE(COMP_INIT, "EFUSE REPG: %p, %u\n", priv->efuse_RePGData, 8); + + efuse_PgPacketWrite(dev, 1, 0x0d, priv->efuse_RePGData); + efuse_PowerSwitch(dev, false); + priv->efuse_RePGSec1Flag = false; + } +#endif +} + + +static void +efuse_ShadowRead1Byte(struct net_device* dev, u16 Offset, u8 *Value) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + *Value = priv->EfuseMap[EFUSE_MODIFY_MAP][Offset]; + +} + +static void +efuse_ShadowRead2Byte(struct net_device* dev, u16 Offset, u16 *Value) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + *Value = priv->EfuseMap[EFUSE_MODIFY_MAP][Offset]; + *Value |= priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+1]<<8; + +} + +static void +efuse_ShadowRead4Byte(struct net_device* dev, u16 Offset, u32 *Value) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + *Value = priv->EfuseMap[EFUSE_MODIFY_MAP][Offset]; + *Value |= priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+1]<<8; + *Value |= priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+2]<<16; + *Value |= priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+3]<<24; + +} + + + +static void +efuse_ShadowWrite1Byte(struct net_device* dev, u16 Offset, u8 Value) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + priv->EfuseMap[EFUSE_MODIFY_MAP][Offset] = Value; + +} + +static void +efuse_ShadowWrite2Byte(struct net_device* dev, u16 Offset, u16 Value) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + priv->EfuseMap[EFUSE_MODIFY_MAP][Offset] = Value&0x00FF; + priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+1] = Value>>8; + +} + +static void +efuse_ShadowWrite4Byte(struct net_device* dev, u16 Offset, u32 Value) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + priv->EfuseMap[EFUSE_MODIFY_MAP][Offset] = (u8)(Value&0x000000FF); + priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+1] = (u8)((Value>>8)&0x0000FF); + priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+2] = (u8)((Value>>16)&0x00FF); + priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+3] = (u8)((Value>>24)&0xFF); + +} + + +static u8 +efuse_OneByteRead(struct net_device* dev, u16 addr,u8 *data) +{ + u8 tmpidx = 0; + u8 bResult; + + write_nic_byte(dev, EFUSE_CTRL+1, (u8)(addr&0xff)); + write_nic_byte(dev, EFUSE_CTRL+2, ((u8)((addr>>8) &0x03) ) | + (read_nic_byte(dev, EFUSE_CTRL+2)&0xFC )); + + write_nic_byte(dev, EFUSE_CTRL+3, 0x72); + + while(!(0x80 &read_nic_byte(dev, EFUSE_CTRL+3))&&(tmpidx<100)) + { + tmpidx++; + } + if(tmpidx<100) + { + *data=read_nic_byte(dev, EFUSE_CTRL); + bResult = true; + } + else + { + *data = 0xff; + bResult = false; + } + return bResult; +} + +static u8 +efuse_OneByteWrite(struct net_device* dev, u16 addr, u8 data) +{ + u8 tmpidx = 0; + u8 bResult; + + + + write_nic_byte(dev, EFUSE_CTRL+1, (u8)(addr&0xff)); + write_nic_byte(dev, EFUSE_CTRL+2, + read_nic_byte(dev, EFUSE_CTRL+2)|(u8)((addr>>8)&0x03) ); + + write_nic_byte(dev, EFUSE_CTRL, data); + write_nic_byte(dev, EFUSE_CTRL+3, 0xF2); + + while((0x80 & read_nic_byte(dev, EFUSE_CTRL+3)) && (tmpidx<100) ){ + tmpidx++; + } + + if(tmpidx<100) + { + bResult = true; + } + else + { + bResult = false; + } + + return bResult; +} + + +static void +efuse_ReadAllMap(struct net_device* dev, u8 *Efuse) +{ + + efuse_PowerSwitch(dev, true); + ReadEFuse(dev, 0, 128, Efuse); + efuse_PowerSwitch(dev, false); +#if 0 + RT_TRACE(COMP_INIT, "efuse_ResetLoader\n"); + efuse_ResetLoader(dev); + + write_nic_byte(dev, EFUSE_CLK, 0x03); + + ReadEFuse(dev, 0, 128, Efuse); + + write_nic_byte(dev, EFUSE_CLK, 0x02); +#if 0 + for(offset = 0;offset<16;offset++) + { + PlatformFillMemory((PVOID)pg_data, 8, 0xff); + efuse_PgPacketRead(pAdapter,offset,pg_data); + + PlatformMoveMemory((PVOID)&Efuse[offset*8], (PVOID)pg_data, 8); + } +#endif + + if (Efuse[0] != 0x29 || Efuse[1] != 0x81) + { + if (index ++ < 5) + { + RT_TRACE(COMP_INIT, "EFUSE R FAIL %d\n", index); + efuse_ReadAllMap(dev, Efuse); + } + } + else + { + index = 0; + } + +#endif +} + + +#ifdef TO_DO_LIST +static void +efuse_WriteAllMap(struct net_device* dev,u8 *eeprom, u32 eeprom_size) +{ + unsigned char word_en = 0x00; + + unsigned char tmpdata[8]; + unsigned char offset; + + efuse_PowerSwitch(dev, true); + + for(offset=0 ; offset< eeprom_size/PGPKT_DATA_SIZE ; offset++) + { + if (IS_HARDWARE_TYPE_8192SE(dev)) + { + if (offset == 3/* || offset > 9*/) + continue; + else + word_en = 0x00; + } + + memcpy(tmpdata, (eeprom+(offset*PGPKT_DATA_SIZE)), 8); + + + efuse_PgPacketWrite(dev,offset,word_en,tmpdata); + + + } + + efuse_PowerSwitch(dev, false); + +} +#endif +static u8 +efuse_PgPacketRead( struct net_device* dev, u8 offset, u8 *data) +{ + u8 ReadState = PG_STATE_HEADER; + + bool bContinual = true; + bool bDataEmpty = true ; + + u8 efuse_data,word_cnts=0; + u16 efuse_addr = 0; + u8 hoffset=0,hworden=0; + u8 tmpidx=0; + u8 tmpdata[8]; + + if(data==NULL) return false; + if(offset>15) return false; + + memset(data, 0xff, sizeof(u8)*PGPKT_DATA_SIZE); + memset(tmpdata, 0xff, sizeof(u8)*PGPKT_DATA_SIZE); + + + while(bContinual && (efuse_addr < EFUSE_MAX_SIZE) ) + { + if(ReadState & PG_STATE_HEADER) + { + if(efuse_OneByteRead(dev, efuse_addr ,&efuse_data)&&(efuse_data!=0xFF)){ + hoffset = (efuse_data>>4) & 0x0F; + hworden = efuse_data & 0x0F; + word_cnts = efuse_CalculateWordCnts(hworden); + bDataEmpty = true ; + + if(hoffset==offset){ + for(tmpidx = 0;tmpidx< word_cnts*2 ;tmpidx++){ + if(efuse_OneByteRead(dev, efuse_addr+1+tmpidx ,&efuse_data) ){ + tmpdata[tmpidx] = efuse_data; + if(efuse_data!=0xff){ + bDataEmpty = false; + } + } + } + if(bDataEmpty==false){ + ReadState = PG_STATE_DATA; + }else{ + efuse_addr = efuse_addr + (word_cnts*2)+1; + ReadState = PG_STATE_HEADER; + } + } + else{ + efuse_addr = efuse_addr + (word_cnts*2)+1; + ReadState = PG_STATE_HEADER; + } + + } + else{ + bContinual = false ; + } + } + else if(ReadState & PG_STATE_DATA) + { + efuse_WordEnableDataRead(hworden,tmpdata,data); + efuse_addr = efuse_addr + (word_cnts*2)+1; + ReadState = PG_STATE_HEADER; + } + + } + + + if( (data[0]==0xff) &&(data[1]==0xff) && (data[2]==0xff) && (data[3]==0xff) && + (data[4]==0xff) &&(data[5]==0xff) && (data[6]==0xff) && (data[7]==0xff)) + return false; + else + return true; + +} + + +static u8 efuse_PgPacketWrite(struct net_device* dev, u8 offset, u8 word_en,u8 *data) +{ + u8 WriteState = PG_STATE_HEADER; + bool bContinual = true,bDataEmpty=true, bResult = true; + u16 efuse_addr = 0; + u8 efuse_data; + + u8 pg_header = 0; + + u8 tmp_word_cnts=0,target_word_cnts=0; + u8 tmp_header,match_word_en,tmp_word_en; + + PGPKT_STRUCT target_pkt; + PGPKT_STRUCT tmp_pkt; + + u8 originaldata[sizeof(u8)*8]; + u8 tmpindex = 0,badworden = 0x0F; + + static u32 repeat_times = 0; + + if (efuse_GetCurrentSize(dev) >= EFUSE_MAX_SIZE - EFUSE_OOB_PROTECT_BYTES) { + printk("efuse_PgPacketWrite error \n"); + return false; + } + + target_pkt.offset = offset; + target_pkt.word_en= word_en; + + memset(target_pkt.data,0xFF,sizeof(u8)*8); + + efuse_WordEnableDataRead(word_en,data,target_pkt.data); + target_word_cnts = efuse_CalculateWordCnts(target_pkt.word_en); + + printk("EFUSE Power ON\n"); + + while (bContinual && (efuse_addr < (EFUSE_MAX_SIZE - EFUSE_OOB_PROTECT_BYTES))) + { + if(WriteState==PG_STATE_HEADER) + { + bDataEmpty=true; + badworden = 0x0F; + printk("EFUSE PG_STATE_HEADER\n"); + if ( efuse_OneByteRead(dev, efuse_addr ,&efuse_data) && + (efuse_data!=0xFF)) + { + tmp_header = efuse_data; + + tmp_pkt.offset = (tmp_header>>4) & 0x0F; + tmp_pkt.word_en = tmp_header & 0x0F; + tmp_word_cnts = efuse_CalculateWordCnts(tmp_pkt.word_en); + + if(tmp_pkt.offset != target_pkt.offset) + { + efuse_addr = efuse_addr + (tmp_word_cnts*2) +1; + #if (EFUSE_ERROE_HANDLE == 1) + WriteState = PG_STATE_HEADER; + #endif + } + else + { + for(tmpindex=0 ; tmpindex<(tmp_word_cnts*2) ; tmpindex++) + { + if(efuse_OneByteRead(dev, (efuse_addr+1+tmpindex) ,&efuse_data)&&(efuse_data != 0xFF)){ + bDataEmpty = false; + } + } + if(bDataEmpty == false) + { + efuse_addr = efuse_addr + (tmp_word_cnts*2) +1; + #if (EFUSE_ERROE_HANDLE == 1) + WriteState=PG_STATE_HEADER; + #endif + } + else + { + match_word_en = 0x0F; + if( !( (target_pkt.word_en&BIT0)|(tmp_pkt.word_en&BIT0) )) + { + match_word_en &= (~BIT0); + } + if( !( (target_pkt.word_en&BIT1)|(tmp_pkt.word_en&BIT1) )) + { + match_word_en &= (~BIT1); + } + if( !( (target_pkt.word_en&BIT2)|(tmp_pkt.word_en&BIT2) )) + { + match_word_en &= (~BIT2); + } + if( !( (target_pkt.word_en&BIT3)|(tmp_pkt.word_en&BIT3) )) + { + match_word_en &= (~BIT3); + } + + if((match_word_en&0x0F)!=0x0F) + { + badworden = efuse_WordEnableDataWrite(dev,efuse_addr+1, tmp_pkt.word_en ,target_pkt.data); + + if(0x0F != (badworden&0x0F)) + { + u8 reorg_offset = offset; + u8 reorg_worden=badworden; + efuse_PgPacketWrite(dev,reorg_offset,reorg_worden,originaldata); + } + + tmp_word_en = 0x0F; + if( (target_pkt.word_en&BIT0)^(match_word_en&BIT0) ) + { + tmp_word_en &= (~BIT0); + } + if( (target_pkt.word_en&BIT1)^(match_word_en&BIT1) ) + { + tmp_word_en &= (~BIT1); + } + if( (target_pkt.word_en&BIT2)^(match_word_en&BIT2) ) + { + tmp_word_en &= (~BIT2); + } + if( (target_pkt.word_en&BIT3)^(match_word_en&BIT3) ) + { + tmp_word_en &=(~BIT3); + } + + if((tmp_word_en&0x0F)!=0x0F){ + efuse_addr = efuse_GetCurrentSize(dev); + target_pkt.offset = offset; + target_pkt.word_en= tmp_word_en; + }else{ + bContinual = false; + } + #if (EFUSE_ERROE_HANDLE == 1) + WriteState=PG_STATE_HEADER; + repeat_times++; + if(repeat_times>EFUSE_REPEAT_THRESHOLD_){ + bContinual = false; + bResult = false; + } + #endif + } + else{ + efuse_addr = efuse_addr + (2*tmp_word_cnts) +1; + target_pkt.offset = offset; + target_pkt.word_en= target_pkt.word_en; + #if (EFUSE_ERROE_HANDLE == 1) + WriteState=PG_STATE_HEADER; + #endif + } + } + } + printk("EFUSE PG_STATE_HEADER-1\n"); + } + else + { + pg_header = ((target_pkt.offset << 4)&0xf0) |target_pkt.word_en; + + efuse_OneByteWrite(dev,efuse_addr, pg_header); + efuse_OneByteRead(dev,efuse_addr, &tmp_header); + + if(tmp_header == pg_header) + { + WriteState = PG_STATE_DATA; + } + #if (EFUSE_ERROE_HANDLE == 1) + else if(tmp_header == 0xFF){ + WriteState = PG_STATE_HEADER; + repeat_times++; + if(repeat_times>EFUSE_REPEAT_THRESHOLD_){ + bContinual = false; + bResult = false; + } + } + #endif + else + { + tmp_pkt.offset = (tmp_header>>4) & 0x0F; + tmp_pkt.word_en= tmp_header & 0x0F; + tmp_word_cnts = efuse_CalculateWordCnts(tmp_pkt.word_en); + + memset(originaldata,0xff,sizeof(u8)*8); + + if(efuse_PgPacketRead( dev, tmp_pkt.offset,originaldata)) + { + badworden = efuse_WordEnableDataWrite(dev,efuse_addr+1,tmp_pkt.word_en,originaldata); + if(0x0F != (badworden&0x0F)) + { + u8 reorg_offset = tmp_pkt.offset; + u8 reorg_worden=badworden; + efuse_PgPacketWrite(dev,reorg_offset,reorg_worden,originaldata); + efuse_addr = efuse_GetCurrentSize(dev); + } + else{ + efuse_addr = efuse_addr + (tmp_word_cnts*2) +1; + } + } + else + { + efuse_addr = efuse_addr + (tmp_word_cnts*2) +1; + } + + #if (EFUSE_ERROE_HANDLE == 1) + WriteState=PG_STATE_HEADER; + repeat_times++; + if(repeat_times>EFUSE_REPEAT_THRESHOLD_){ + bContinual = false; + bResult = false; + } + #endif + + printk("EFUSE PG_STATE_HEADER-2\n"); + } + + } + + } + else if(WriteState==PG_STATE_DATA) + { + printk("EFUSE PG_STATE_DATA\n"); + badworden = 0x0f; + badworden = efuse_WordEnableDataWrite(dev,efuse_addr+1,target_pkt.word_en,target_pkt.data); + if((badworden&0x0F)==0x0F) + { + bContinual = false; + } + else + { + efuse_addr = efuse_addr + (2*target_word_cnts) +1; + + target_pkt.offset = offset; + target_pkt.word_en= badworden; + target_word_cnts = efuse_CalculateWordCnts(target_pkt.word_en); + #if (EFUSE_ERROE_HANDLE == 1) + WriteState=PG_STATE_HEADER; + repeat_times++; + if(repeat_times>EFUSE_REPEAT_THRESHOLD_){ + bContinual = false; + bResult = false; + } + #endif + printk("EFUSE PG_STATE_HEADER-3\n"); + } + } + } + + + return true; +} + + +static void +efuse_WordEnableDataRead( u8 word_en,u8 *sourdata,u8 *targetdata) +{ + + + + if (!(word_en&BIT0)) + { + targetdata[0] = sourdata[0]; + targetdata[1] = sourdata[1]; + } + if (!(word_en&BIT1)) + { + targetdata[2] = sourdata[2]; + targetdata[3] = sourdata[3]; + } + if (!(word_en&BIT2)) + { + targetdata[4] = sourdata[4]; + targetdata[5] = sourdata[5]; + } + if (!(word_en&BIT3)) + { + targetdata[6] = sourdata[6]; + targetdata[7] = sourdata[7]; + } +} + + +static u8 +efuse_WordEnableDataWrite( struct net_device* dev, u16 efuse_addr, u8 word_en, u8 *data) +{ + u16 tmpaddr = 0; + u16 start_addr = efuse_addr; + u8 badworden = 0x0F; + u8 tmpdata[8]; + + memset(tmpdata,0xff,PGPKT_DATA_SIZE); + + + + if(!(word_en&BIT0)) + { + tmpaddr = start_addr; + efuse_OneByteWrite(dev,start_addr++, data[0]); + efuse_OneByteWrite(dev,start_addr++, data[1]); + + efuse_OneByteRead(dev,tmpaddr, &tmpdata[0]); + efuse_OneByteRead(dev,tmpaddr+1, &tmpdata[1]); + if((data[0]!=tmpdata[0])||(data[1]!=tmpdata[1])){ + badworden &= (~BIT0); + } + } + if(!(word_en&BIT1)) + { + tmpaddr = start_addr; + efuse_OneByteWrite(dev,start_addr++, data[2]); + efuse_OneByteWrite(dev,start_addr++, data[3]); + + efuse_OneByteRead(dev,tmpaddr , &tmpdata[2]); + efuse_OneByteRead(dev,tmpaddr+1, &tmpdata[3]); + if((data[2]!=tmpdata[2])||(data[3]!=tmpdata[3])){ + badworden &=( ~BIT1); + } + } + if(!(word_en&BIT2)) + { + tmpaddr = start_addr; + efuse_OneByteWrite(dev,start_addr++, data[4]); + efuse_OneByteWrite(dev,start_addr++, data[5]); + + efuse_OneByteRead(dev,tmpaddr, &tmpdata[4]); + efuse_OneByteRead(dev,tmpaddr+1, &tmpdata[5]); + if((data[4]!=tmpdata[4])||(data[5]!=tmpdata[5])){ + badworden &=( ~BIT2); + } + } + if(!(word_en&BIT3)) + { + tmpaddr = start_addr; + efuse_OneByteWrite(dev,start_addr++, data[6]); + efuse_OneByteWrite(dev,start_addr++, data[7]); + + efuse_OneByteRead(dev,tmpaddr, &tmpdata[6]); + efuse_OneByteRead(dev,tmpaddr+1, &tmpdata[7]); + if((data[6]!=tmpdata[6])||(data[7]!=tmpdata[7])){ + badworden &=( ~BIT3); + } + } + return badworden; +} + + +static void +efuse_PowerSwitch(struct net_device* dev, u8 PwrState) +{ + u8 tempval; + if (PwrState == true) + { + tempval = read_nic_byte(dev, EFUSE_TEST+3); + write_nic_byte(dev, EFUSE_TEST+3, (tempval | 0x80)); + + write_nic_byte(dev, EFUSE_CLK, 0x03); + } + else + { + tempval = read_nic_byte(dev, EFUSE_TEST+3); + write_nic_byte(dev, EFUSE_TEST+3, (tempval & 0x7F)); + + write_nic_byte(dev, EFUSE_CLK, 0x02); + } + +} /* efuse_PowerSwitch */ + + +static u16 +efuse_GetCurrentSize(struct net_device* dev) +{ + bool bContinual = true; + + u16 efuse_addr = 0; + u8 hoffset=0,hworden=0; + u8 efuse_data,word_cnts=0; + + + while ( bContinual && + efuse_OneByteRead(dev, efuse_addr ,&efuse_data) && + (efuse_addr < EFUSE_MAX_SIZE) ) + { + if(efuse_data!=0xFF) + { + hoffset = (efuse_data>>4) & 0x0F; + hworden = efuse_data & 0x0F; + word_cnts = efuse_CalculateWordCnts(hworden); + efuse_addr = efuse_addr + (word_cnts*2)+1; + } + else + { + bContinual = false ; + } + } + + + return efuse_addr; + +} + + +static u8 +efuse_CalculateWordCnts(u8 word_en) +{ + u8 word_cnts = 0; + if(!(word_en & BIT0)) word_cnts++; + if(!(word_en & BIT1)) word_cnts++; + if(!(word_en & BIT2)) word_cnts++; + if(!(word_en & BIT3)) word_cnts++; + return word_cnts; +} + + +#if 0 +static void efuse_ResetLoader(struct net_device* dev) +{ + u16 tmpU2b; + + tmpU2b = read_nic_word(dev, SYS_FUNC_EN); + write_nic_word(dev, SYS_FUNC_EN, (tmpU2b&~(BIT12))); + mdelay(10); + write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|BIT12)); + mdelay(10); + +} +#endif + + #ifdef TO_DO_LIST +extern bool +EFUSE_ProgramMap(struct net_device* dev, char* pFileName,u8 TableType) +{ + struct r8192_priv *priv = rtllib_priv(dev); + s4Byte nLinesRead, ithLine; + RT_STATUS rtStatus = RT_STATUS_SUCCESS; + char* szLine; + u32 u4bRegValue, u4RegMask; + u32 u4bMove; + u16 index = 0; + u16 i; + u8 eeprom[HWSET_MAX_SIZE_92S]; + + rtStatus = PlatformReadFile( + dev, + pFileName, + (u8*)(priv->BufOfLines), + MAX_LINES_HWCONFIG_TXT, + MAX_BYTES_LINE_HWCONFIG_TXT, + &nLinesRead + ); + + if(rtStatus == RT_STATUS_SUCCESS) + { + memcp(pHalData->BufOfLines3, pHalData->BufOfLines, + nLinesRead*MAX_BYTES_LINE_HWCONFIG_TXT); + pHalData->nLinesRead3 = nLinesRead; + } + + if(rtStatus == RT_STATUS_SUCCESS) + { + printk("szEepromFile(): read %s ok\n", pFileName); + for(ithLine = 0; ithLine < nLinesRead; ithLine++) + { + szLine = pHalData->BufOfLines[ithLine]; + printk("Line-%d String =%s\n", ithLine, szLine); + + if(!IsCommentString(szLine)) + { + for (i = 0; i < 8; i++) + { + u32 j; + + efuse_ParsingMap(szLine, &u4bRegValue, &u4bMove); + + szLine += u4bMove; + eeprom[index++] = (u8)(u4bRegValue&0xff); + eeprom[index++] = (u8)((u4bRegValue>>8)&0xff); + + printk("Addr-%d = %x\n", (ithLine*8+i), u4bRegValue); + } + } + + } + + } + else + { + printk("szEepromFile(): Fail read%s\n", pFileName); + return RT_STATUS_FAILURE; + } + + + + if (TableType == 1) + { + efuse_WriteAllMap(dev, eeprom, HWSET_MAX_SIZE_92S); + } + else + { + for (i = 0; i < HWSET_MAX_SIZE_92S; i++) + EFUSE_ShadowWrite(dev, 1, i, (u32)eeprom[i]); + } + + return rtStatus; +} /* EFUSE_ProgramMap */ + +#endif + +bool IsHexDigit( char chTmp) +{ + if( (chTmp >= '0' && chTmp <= '9') || + (chTmp >= 'a' && chTmp <= 'f') || + (chTmp >= 'A' && chTmp <= 'F') ) + { + return true; + } + else + { + return false; + } +} + +u32 MapCharToHexDigit(char chTmp) +{ + if(chTmp >= '0' && chTmp <= '9') + return (chTmp - '0'); + else if(chTmp >= 'a' && chTmp <= 'f') + return (10 + (chTmp - 'a')); + else if(chTmp >= 'A' && chTmp <= 'F') + return (10 + (chTmp - 'A')); + else + return 0; +} + +#ifdef TO_DO_LIST +static bool +efuse_ParsingMap(char* szStr,u32* pu4bVal,u32* pu4bMove) +{ + char* szScan = szStr; + + if(szStr == NULL || pu4bVal == NULL || pu4bMove == NULL) + { + return false; + } + + *pu4bMove = 0; + *pu4bVal = 0; + + while( *szScan != '\0' && + (*szScan == ' ' || *szScan == '\t') ) + { + szScan++; + (*pu4bMove)++; + } + + if(!IsHexDigit(*szScan)) + { + return false; + } + + do + { + (*pu4bVal) <<= 4; + *pu4bVal += MapCharToHexDigit(*szScan); + + szScan++; + (*pu4bMove)++; + } while(IsHexDigit(*szScan)); + + return true; + +} /* efuse_ParsingMap */ +#endif + +int efuse_one_byte_rw(struct net_device* dev, u8 bRead, u16 addr, u8 *data) +{ + u32 bResult; + u8 tmpidx = 0; + u8 tmpv8=0; + + + write_nic_byte(dev, EFUSE_CTRL+1, (u8)(addr&0xff)); + tmpv8 = ((u8)((addr>>8) &0x03) ) | (read_nic_byte(dev, EFUSE_CTRL+2)&0xFC ); + write_nic_byte(dev, EFUSE_CTRL+2, tmpv8); + + if(true==bRead){ + + write_nic_byte(dev, EFUSE_CTRL+3, 0x72); + + while(!(0x80 & read_nic_byte(dev, EFUSE_CTRL+3)) && (tmpidx<100) ){ + tmpidx++; + } + if(tmpidx<100){ + *data=read_nic_byte(dev, EFUSE_CTRL); + bResult = true; + } + else + { + *data = 0; + bResult = false; + } + + } + else{ + write_nic_byte(dev, EFUSE_CTRL, *data); + + write_nic_byte(dev, EFUSE_CTRL+3, 0xF2); + + while((0x80 & read_nic_byte(dev, EFUSE_CTRL+3)) && (tmpidx<100) ){ + tmpidx++; + } + if(tmpidx<100) + { + *data=read_nic_byte(dev, EFUSE_CTRL); + bResult = true; + } + else + { + *data = 0; + bResult = false; + } + + } + return bResult; +} +void efuse_access(struct net_device* dev, u8 bRead,u16 start_addr, u8 cnts, u8 *data) +{ + u8 efuse_clk_ori,efuse_clk_new; + u32 i = 0; + + if(start_addr>0x200) return; + efuse_clk_ori = read_nic_byte(dev,SYS_FUNC_EN+1); + efuse_clk_new = efuse_clk_ori|0x20; + + if(efuse_clk_new!= efuse_clk_ori){ + write_nic_byte(dev, SYS_FUNC_EN+1, efuse_clk_new); + } +#ifdef _POWERON_DELAY_ + mdelay(10); +#endif + write_nic_byte(dev, EFUSE_TEST+3, (read_nic_byte(dev, EFUSE_TEST+3)|0x80)); + write_nic_byte(dev, EFUSE_CLK_CTRL, (read_nic_byte(dev, EFUSE_CLK_CTRL)|0x03)); + +#ifdef _PRE_EXECUTE_READ_CMD_ + { + unsigned char tmpdata; + efuse_OneByteRead(dev, 0,&tmpdata); + } +#endif + + for(i=0;i (sizeof(RTL8712_SDIO_EFUSE_TABLE)/sizeof(EFUSE_MAP))){ + return ; + } + + offset = RTL8712_SDIO_EFUSE_TABLE[efuse_read_item].offset ; + word_start = RTL8712_SDIO_EFUSE_TABLE[efuse_read_item].word_start; + byte_start = RTL8712_SDIO_EFUSE_TABLE[efuse_read_item].byte_start; + byte_cnts = RTL8712_SDIO_EFUSE_TABLE[efuse_read_item].byte_cnts; + + if(data_size!=byte_cnts){ + return; + } + + pg_pkt_cnts = (byte_cnts /PGPKT_DATA_SIZE) +1; + + if(pg_pkt_cnts > 1){ + tmpdata = efusedata; + + if(tmpdata!=NULL) + { + memset(tmpdata,0xff,pg_pkt_cnts*PGPKT_DATA_SIZE); + + for(tmpidx=0;tmpidx (sizeof(RTL8712_SDIO_EFUSE_TABLE)/sizeof(EFUSE_MAP))){ + return ; + } + + offset = RTL8712_SDIO_EFUSE_TABLE[efuse_write_item].offset ; + word_start = RTL8712_SDIO_EFUSE_TABLE[efuse_write_item].word_start; + byte_start = RTL8712_SDIO_EFUSE_TABLE[efuse_write_item].byte_start; + byte_cnts = RTL8712_SDIO_EFUSE_TABLE[efuse_write_item].byte_cnts; + + if(data_size > byte_cnts){ + return; + } + pg_pkt_cnts = (byte_cnts /PGPKT_DATA_SIZE) +1; + word_cnts = byte_cnts /2 ; + + if(byte_cnts %2){ + word_cnts+=1; + } + if((byte_start==1)||((byte_cnts%2)==1)){ + + if((efuse_write_item==EFUSE_F0CIS)||(efuse_write_item==EFUSE_F1CIS)){ + memset(pg_data,0xff,PGPKT_DATA_SIZE); + efuse_PgPacketRead(dev,offset,pg_data); + + if(efuse_write_item==EFUSE_F0CIS){ + word_en = 0x07; + memcpy(pg_data+word_start*2+byte_start,data,sizeof(u8)*2); + efuse_PgPacketWrite(dev,offset,word_en,pg_data+(word_start*2)); + + word_en = 0x00; + efuse_PgPacketWrite(dev,(offset+1),word_en,data+2); + + word_en = 0x00; + efuse_PgPacketRead(dev,offset+2,pg_data); + memcpy(pg_data,data+2+8,sizeof(u8)*7); + + efuse_PgPacketWrite(dev,(offset+2),word_en,pg_data); + } + else if(efuse_write_item==EFUSE_F1CIS){ + word_en = 0x07; + efuse_PgPacketRead(dev,offset,pg_data); + pg_data[7] = data[0]; + efuse_PgPacketWrite(dev,offset,word_en,pg_data+(word_start*2)); + + word_en = 0x00; + for(tmpidx = 0 ;tmpidx<(word_cnts/4);tmpidx++){ + efuse_PgPacketWrite(dev,(offset+1+tmpidx),word_en,data+1+(tmpidx*PGPKT_DATA_SIZE)); + } + } + + } + else{ + memset(pg_data,0xff,PGPKT_DATA_SIZE); + if((efuse_write_item==EFUSE_SDIO_SETTING)||(efuse_write_item==EFUSE_CCCR)){ + word_en = 0x0e ; + tmpbytes = 2; + } + else if(efuse_write_item == EFUSE_SDIO_MODE){ + word_en = 0x0d ; + tmpbytes = 2; + } + else if(efuse_write_item == EFUSE_OCR){ + word_en = 0x09 ; + tmpbytes = 4; + } + else if((efuse_write_item == EFUSE_EEPROM_VER)||(efuse_write_item==EFUSE_CHAN_PLAN)){ + word_en = 0x07 ; + tmpbytes = 2; + } + if(bWordUnit==true){ + memcpy(pg_data+word_start*2 ,data,sizeof(u8)*tmpbytes); + } + else{ + efuse_PgPacketRead(dev,offset,pg_data); + memcpy(pg_data+(2*word_start)+byte_start,data,sizeof(u8)*byte_cnts); + } + + efuse_PgPacketWrite(dev,offset,word_en,pg_data+(word_start*2)); + + } + + } + else if(pg_pkt_cnts>1){ + if(word_start==0){ + word_en = 0x00; + for(tmpidx = 0 ;tmpidx<(word_cnts/4);tmpidx++) + { + efuse_PgPacketWrite(dev,(offset+tmpidx),word_en,data+(tmpidx*PGPKT_DATA_SIZE)); + } + word_en = 0x0f; + for(tmpidx= 0; tmpidx<(word_cnts%4) ; tmpidx++) + { + tmpbitmask =tmpidx; + word_en &= (~(EFUSE_BIT(tmpbitmask))); + } + efuse_PgPacketWrite(dev,offset+(word_cnts/4),word_en,data+((word_cnts/4)*PGPKT_DATA_SIZE)); + }else + { + + } + } + else{ + word_en = 0x0f; + for(tmpidx= 0; tmpidx +******************************************************************************/ +#ifndef __INC_FIRMWARE_H +#define __INC_FIRMWARE_H + +#include "r8192S_def.h" + +#define RTL8190_MAX_FIRMWARE_CODE_SIZE 64000 +#define RTL8190_CPU_START_OFFSET 0x80 +#define MAX_FIRMWARE_CODE_SIZE 0xFF00 + +#define H2C_TX_CMD_HDR_LEN 8 + +#define RTL8192S_FW_PKT_FRAG_SIZE 0x4000 + +#ifdef RTL8192SE +#define GET_COMMAND_PACKET_FRAG_THRESHOLD(v) 4*(v/4) - 8 +#else +#define GET_COMMAND_PACKET_FRAG_THRESHOLD(v) (4*(v/4) - 8 - USB_HWDESC_HEADER_LEN) +#endif + +typedef enum _DESC_PACKET_TYPE{ + DESC_PACKET_TYPE_INIT = 0, + DESC_PACKET_TYPE_NORMAL = 1, +}DESC_PACKET_TYPE; + + +#ifdef RTL8192S +typedef enum _firmware_init_step{ + FW_INIT_STEP0_IMEM = 0, + FW_INIT_STEP1_MAIN = 1, + FW_INIT_STEP2_DATA = 2, +}firmware_init_step_e; +#else +typedef enum _firmware_init_step{ + FW_INIT_STEP0_BOOT = 0, + FW_INIT_STEP1_MAIN = 1, + FW_INIT_STEP2_DATA = 2, +}firmware_init_step_e; +#endif + +typedef enum _firmware_source{ + FW_SOURCE_IMG_FILE = 0, + FW_SOURCE_HEADER_FILE = 1, +}firmware_source_e, *pfirmware_source_e; + +typedef enum _opt_rst_type{ + OPT_SYSTEM_RESET = 0, + OPT_FIRMWARE_RESET = 1, +}opt_rst_type_e; + +typedef enum _FIRMWARE_STATUS{ + FW_STATUS_0_INIT = 0, + FW_STATUS_1_MOVE_BOOT_CODE = 1, + FW_STATUS_2_MOVE_MAIN_CODE = 2, + FW_STATUS_3_TURNON_CPU = 3, + FW_STATUS_4_MOVE_DATA_CODE = 4, + FW_STATUS_5_READY = 5, +}FIRMWARE_STATUS; + +typedef enum _H2C_CMD{ + FW_H2C_SETPWRMODE = 0, + FW_H2C_JOINBSSRPT = 1, + FW_H2C_WoWLAN_UPDATE_GTK = 2, + FW_H2C_WoWLAN_UPDATE_IV = 3, + FW_H2C_WoWLAN_OFFLOAD = 4, + FW_H2C_SITESURVEY=5, +}H2C_CMD; + + typedef struct _H2C_SETPWRMODE_PARM { + u8 mode; + u8 flag_low_traffic_en; + u8 flag_lpnav_en; + u8 flag_rf_low_snr_en; + u8 flag_dps_en; + u8 bcn_rx_en; + u8 bcn_pass_cnt; + u8 bcn_to; // beacon TO (ms). ¡§=0¡¨ no limit. + u16 bcn_itv; + u8 app_itv; + u8 awake_bcn_itvl; + u8 smart_ps; + u8 bcn_pass_period; + }H2C_SETPWRMODE_PARM, *PH2C_SETPWRMODE_PARM; + +typedef struct _H2C_JOINBSSRPT_PARM { + u8 OpMode; + u8 Ps_Qos_Info; + u8 Bssid[6]; + u16 BcnItv; + u16 Aid; +}H2C_JOINBSSRPT_PARM, *PH2C_JOINBSSRPT_PARM; + +typedef struct _H2C_WPA_PTK { + u8 kck[16]; /* EAPOL-Key Key Confirmation Key (KCK) */ + u8 kek[16]; /* EAPOL-Key Key Encryption Key (KEK) */ + u8 tk1[16]; /* Temporal Key 1 (TK1) */ + union { + u8 tk2[16]; + struct { + u8 tx_mic_key[8]; + u8 rx_mic_key[8]; + }Athu; + }U; +}H2C_WPA_PTK; + +typedef struct _H2C_WPA_TWO_WAY_PARA{ + u8 pairwise_en_alg; + u8 group_en_alg; + H2C_WPA_PTK wpa_ptk_value; +}H2C_WPA_TWO_WAY_PARA, *PH2C_WPA_TWO_WAY_PARA; + +typedef struct _tx_desc_8192se_fw{ + + u32 PktSize:16; + u32 Offset:8; + u32 Type:2; + u32 LastSeg:1; + u32 FirstSeg:1; + u32 LINIP:1; + u32 AMSDU:1; + u32 GF:1; + u32 OWN:1; + + u32 MacID:5; + u32 MoreData:1; + u32 MoreFrag:1; + u32 PIFS:1; + u32 QueueSel:5; + u32 AckPolicy:2; + u32 NoACM:1; + u32 NonQos:1; + u32 KeyID:2; + u32 OUI:1; + u32 PktType:1; + u32 EnDescID:1; + u32 SecType:2; + u32 HTC:1; + u32 WDS:1; + u32 PktOffset:5; + u32 HWPC:1; + + u32 DataRetryLmt:6; + u32 RetryLmtEn:1; + u32 TSFL:5; + u32 RTSRC:6; + u32 DATARC:6; + + u32 Rsvd1:5; + u32 AggEn:1; + u32 BK:1; + u32 OwnMAC:1; + + u32 NextHeadPage:8; + u32 TailPage:8; + u32 Seq:12; + u32 Frag:4; + + u32 RTSRate:6; + u32 DisRTSFB:1; + u32 RTSRateFBLmt:4; + u32 CTS2Self:1; + u32 RTSEn:1; + u32 RaBRSRID:3; + u32 TXHT:1; + u32 TxShort:1; + u32 TxBw:1; + u32 TXSC:2; + u32 STBC:2; + u32 RD:1; + u32 RTSHT:1; + u32 RTSShort:1; + u32 RTSBW:1; + u32 RTSSC:2; + u32 RTSSTBC:2; + u32 UserRate:1; + + u32 PktID:9; + u32 TxRate:6; + u32 DISFB:1; + u32 DataRateFBLmt:5; + u32 TxAGC:11; + + u32 IPChkSum:16; + u32 TCPChkSum:16; + + u32 TxBufferSize:16; + u32 IPHdrOffset:8; + u32 Rsvd3:7; + u32 TCPEn:1; +} tx_desc_fw, *ptx_desc_fw; + +typedef struct _H2C_SITESURVEY_PARA { + u32 start_flag; + u32 probe_req_len; + tx_desc_fw desc; + u8 probe_req[0]; +}H2C_SITESURVEY_PARA, *PH2C_SITESURVEY_PARA; + + typedef enum _FIRMWARE_H2C_CMD{ + H2C_Read_MACREG_CMD , /*0*/ + H2C_Write_MACREG_CMD , + H2C_ReadBB_CMD , + H2C_WriteBB_CMD , + H2C_ReadRF_CMD , + H2C_WriteRF_CMD , /*5*/ + H2C_Read_EEPROM_CMD , + H2C_Write_EEPROM_CMD , + H2C_Read_EFUSE_CMD , + H2C_Write_EFUSE_CMD , + H2C_Read_CAM_CMD , /*10*/ + H2C_Write_CAM_CMD , + H2C_setBCNITV_CMD, + H2C_setMBIDCFG_CMD, + H2C_JoinBss_CMD , + H2C_DisConnect_CMD, /*15*/ + H2C_CreateBss_CMD , + H2C_SetOpMode_CMD, + H2C_SiteSurvey_CMD, + H2C_SetAuth_CMD, + H2C_SetKey_CMD , /*20*/ + H2C_SetStaKey_CMD , + H2C_SetAssocSta_CMD, + H2C_DelAssocSta_CMD , + H2C_SetStaPwrState_CMD , + H2C_SetBasicRate_CMD , /*25*/ + H2C_GetBasicRate_CMD , + H2C_SetDataRate_CMD , + H2C_GetDataRate_CMD , + H2C_SetPhyInfo_CMD , + H2C_GetPhyInfo_CMD , /*30*/ + H2C_SetPhy_CMD , + H2C_GetPhy_CMD , + H2C_readRssi_CMD , + H2C_readGain_CMD , + H2C_SetAtim_CMD , /*35*/ + H2C_SetPwrMode_CMD , + H2C_JoinbssRpt_CMD, + H2C_SetRaTable_CMD , + H2C_GetRaTable_CMD , + H2C_GetCCXReport_CMD, /*40*/ + H2C_GetDTMReport_CMD, + H2C_GetTXRateStatistics_CMD, + H2C_SetUsbSuspend_CMD, + H2C_SetH2cLbk_CMD , + H2C_tmp1 , /*45*/ + H2C_WoWLAN_UPDATE_GTK_CMD , + H2C_WoWLAN_FW_OFFLOAD , + H2C_tmp2 , + H2C_tmp3 , + H2C_WoWLAN_UPDATE_IV_CMD , /*50*/ + H2C_tmp4, + MAX_H2CCMD /*52*/ +}FIRMWARE_H2C_CMD; + + +typedef struct _RT_8192S_FIRMWARE_PRIV { + + u8 signature_0; + u8 signature_1; + u8 hci_sel; + u8 chip_version; + u8 customer_ID_0; + u8 customer_ID_1; + u8 rf_config; + u8 usb_ep_num; + + u8 regulatory_class_0; + u8 regulatory_class_1; + u8 regulatory_class_2; + u8 regulatory_class_3; + u8 rfintfs; + u8 def_nettype; + u8 rsvd010; + u8 rsvd011; + + + u8 lbk_mode; + u8 mp_mode; + u8 rsvd020; + u8 rsvd021; + u8 rsvd022; + u8 rsvd023; + u8 rsvd024; + u8 rsvd025; + + u8 qos_en; + u8 bw_40MHz_en; + u8 AMSDU2AMPDU_en; + u8 AMPDU_en; + u8 rate_control_offload; + u8 aggregation_offload; + u8 rsvd030; + u8 rsvd031; + + + unsigned char beacon_offload; + unsigned char MLME_offload; + unsigned char hwpc_offload; + unsigned char tcp_checksum_offload; + unsigned char tcp_offload; + unsigned char ps_control_offload; + unsigned char WWLAN_offload; + unsigned char rsvd040; + + u8 tcp_tx_frame_len_L; + u8 tcp_tx_frame_len_H; + u8 tcp_rx_frame_len_L; + u8 tcp_rx_frame_len_H; + u8 rsvd050; + u8 rsvd051; + u8 rsvd052; + u8 rsvd053; +}RT_8192S_FIRMWARE_PRIV, *PRT_8192S_FIRMWARE_PRIV; + +typedef struct _RT_8192S_FIRMWARE_HDR { + + u16 Signature; + u16 Version; + u32 DMEMSize; + + + u32 IMG_IMEM_SIZE; + u32 IMG_SRAM_SIZE; + + u32 FW_PRIV_SIZE; + u32 Rsvd0; + + u32 Rsvd1; + u32 Rsvd2; + + RT_8192S_FIRMWARE_PRIV FWPriv; + +}RT_8192S_FIRMWARE_HDR, *PRT_8192S_FIRMWARE_HDR; + +#define RT_8192S_FIRMWARE_HDR_SIZE 80 +#define RT_8192S_FIRMWARE_HDR_EXCLUDE_PRI_SIZE 32 + +typedef enum _FIRMWARE_8192S_STATUS{ + FW_STATUS_INIT = 0, + FW_STATUS_LOAD_IMEM = 1, + FW_STATUS_LOAD_EMEM = 2, + FW_STATUS_LOAD_DMEM = 3, + FW_STATUS_READY = 4, +}FIRMWARE_8192S_STATUS; + +typedef struct _rt_firmware{ + firmware_source_e eFWSource; + PRT_8192S_FIRMWARE_HDR pFwHeader; + FIRMWARE_8192S_STATUS FWStatus; + u16 FirmwareVersion; + u8 FwIMEM[RTL8190_MAX_FIRMWARE_CODE_SIZE]; + u8 FwEMEM[RTL8190_MAX_FIRMWARE_CODE_SIZE]; + u32 FwIMEMLen; + u32 FwEMEMLen; + u8 szFwTmpBuffer[164000]; + u32 szFwTmpBufferLen; + u16 CmdPacketFragThresold; +}rt_firmware, *prt_firmware; + +#define FW_DIG_ENABLE_CTL BIT0 +#define FW_HIGH_PWR_ENABLE_CTL BIT1 +#define FW_SS_CTL BIT2 +#define FW_RA_INIT_CTL BIT3 +#define FW_RA_BG_CTL BIT4 +#define FW_RA_N_CTL BIT5 +#define FW_PWR_TRK_CTL BIT6 +#define FW_IQK_CTL BIT7 +#define FW_FA_CTL BIT8 +#define FW_DRIVER_CTRL_DM_CTL BIT9 +#define FW_PAPE_CTL_BY_SW_HW BIT10 +#define FW_DISABLE_ALL_DM 0 + +#define FW_PWR_TRK_PARAM_CLR 0x0000ffff +#define FW_RA_PARAM_CLR 0xffff0000 + +#define FW_CMD_IO_CLR(priv, _Bit) \ + udelay(1000); \ + priv->FwCmdIOMap &= (~_Bit); + +#define FW_CMD_IO_UPDATE(priv, _val) \ + priv->FwCmdIOMap = _val; + +#define FW_CMD_IO_SET(priv, _val) \ + write_nic_word(priv->rtllib->dev, LBUS_MON_ADDR, (u16)_val); \ + FW_CMD_IO_UPDATE(priv, _val);\ + +#define FW_CMD_PARA_SET(priv, _val) \ + write_nic_dword(priv->rtllib->dev, LBUS_ADDR_MASK, _val); \ + priv->FwCmdIOParam = _val; + +#define FW_CMD_IO_QUERY(priv) (u16)(priv->FwCmdIOMap) +#define FW_CMD_IO_PARA_QUERY(priv) ((u32)(priv->FwCmdIOParam)) + +bool FirmwareEnableCPU(struct net_device *dev); +bool FirmwareCheckReady(struct net_device *dev, u8 LoadFWStatus); + +bool FirmwareDownload92S(struct net_device *dev); +int rtl8192se_send_scan_cmd(struct net_device *dev, bool start); + +void rtl8192se_dump_skb_data(struct sk_buff *skb); +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.c @@ -0,0 +1,6398 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +/*Created on 2009/11/17, 16:15*/ + +#ifdef RTL8192SE +#include "r8192S_hwimg.h" + +u8 Rtl8192SEFwImgArray[ImgArrayLength] = { +0x92,0x81,0x4a,0x70,0x30,0x00,0x00,0x00,0x08,0xa4,0x00,0x00,0x88,0xb5,0x00,0x00, +0x30,0x00,0x00,0x00,0x00,0xb4,0x00,0x00,0x4a,0x00,0x00,0x00,0x11,0x17,0x13,0x29, +0x92,0x81,0x01,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x7f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x25,0xb0,0x1a,0x3c,0x80,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c,0x80,0x00,0x7b,0x37, +0x00,0x00,0x5b,0xaf,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c, +0x80,0x00,0x7b,0x37,0x00,0x00,0x5b,0xaf,0x01,0x80,0x1a,0x3c,0x10,0x9d,0x5a,0x27, +0x08,0x00,0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x04,0x00,0xa1,0xaf,0x08,0x00,0xa2,0xaf,0x0c,0x00,0xa3,0xaf,0x10,0x00,0xa4,0xaf, +0x14,0x00,0xa5,0xaf,0x18,0x00,0xa6,0xaf,0x1c,0x00,0xa7,0xaf,0x20,0x00,0xa8,0xaf, +0x24,0x00,0xa9,0xaf,0x28,0x00,0xaa,0xaf,0x2c,0x00,0xab,0xaf,0x30,0x00,0xac,0xaf, +0x34,0x00,0xad,0xaf,0x38,0x00,0xae,0xaf,0x3c,0x00,0xaf,0xaf,0x12,0x40,0x00,0x00, +0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0xb0,0xaf,0x44,0x00,0xb1,0xaf, +0x48,0x00,0xb2,0xaf,0x4c,0x00,0xb3,0xaf,0x50,0x00,0xb4,0xaf,0x54,0x00,0xb5,0xaf, +0x58,0x00,0xb6,0xaf,0x5c,0x00,0xb7,0xaf,0x60,0x00,0xb8,0xaf,0x64,0x00,0xb9,0xaf, +0x68,0x00,0xbc,0xaf,0x6c,0x00,0xbd,0xaf,0x70,0x00,0xbe,0xaf,0x74,0x00,0xbf,0xaf, +0x78,0x00,0xa8,0xaf,0x7c,0x00,0xa9,0xaf,0x80,0x00,0xaa,0xaf,0xda,0x26,0x00,0x08, +0x21,0x20,0xa0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0x88,0x30,0x80,0x28,0x08,0x00,0x2a,0xb0,0x0a,0x3c,0x21,0x38,0xaa,0x00, +0x0c,0x00,0xe6,0x8c,0x02,0x80,0x03,0x3c,0xcc,0x3f,0x63,0x24,0x25,0xb0,0x02,0x3c, +0xb0,0x03,0x42,0x34,0x21,0x28,0xa3,0x00,0xff,0x00,0xc4,0x30,0xff,0x00,0x09,0x24, +0x00,0x00,0x45,0xac,0x00,0x00,0x43,0xac,0x05,0x00,0x89,0x10,0x00,0x00,0x00,0x00, +0x00,0x80,0xc2,0x30,0x04,0x00,0x40,0x10,0x00,0x80,0x02,0x3c,0x0c,0x00,0xe2,0xac, +0x08,0x00,0xe0,0x03,0x21,0x10,0xc0,0x00,0x00,0xff,0x02,0x3c,0x24,0x10,0xc2,0x00, +0xfb,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x21,0x20,0x0a,0x01,0x40,0x00,0x82,0x90, +0x00,0x00,0x00,0x00,0xff,0x00,0x43,0x30,0x12,0x00,0x69,0x10,0x00,0x00,0x00,0x00, +0x00,0x00,0xa3,0xa0,0x40,0x00,0x83,0x90,0x00,0x00,0xa6,0x90,0xff,0x00,0x63,0x30, +0xff,0x00,0xc2,0x30,0xfa,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x20,0xb0,0x03,0x3c, +0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,0x0c,0x00,0x46,0x8c,0x25,0xb0,0x03,0x3c, +0xb0,0x03,0x63,0x34,0x21,0x10,0xc0,0x00,0x00,0x00,0x66,0xac,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0xa6,0x90,0xe7,0x00,0x00,0x08,0xff,0x00,0xc2,0x30, +0xff,0xff,0x84,0x30,0x80,0x20,0x04,0x00,0x2a,0xb0,0x02,0x3c,0x21,0x48,0x82,0x00, +0x00,0x00,0x25,0x8d,0x02,0x80,0x02,0x3c,0xec,0x3f,0x42,0x24,0x21,0x40,0x82,0x00, +0x25,0xb0,0x03,0x3c,0x02,0x80,0x02,0x3c,0xb0,0x03,0x67,0x34,0xcc,0x3f,0x42,0x24, +0xff,0x00,0xa4,0x30,0xff,0x00,0x03,0x24,0x00,0x00,0xe8,0xac,0x00,0x80,0xa6,0x30, +0x00,0x00,0xe2,0xac,0x06,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x00,0xff,0x02,0x3c, +0x05,0x00,0xc0,0x10,0x24,0x10,0xa2,0x00,0x00,0x80,0x02,0x3c,0x00,0x00,0x22,0xad, +0x08,0x00,0xe0,0x03,0x21,0x10,0xa0,0x00,0xfd,0xff,0x40,0x10,0x00,0x00,0x00,0x00, +0x00,0x00,0x03,0x91,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x0c,0x00,0x65,0x8c,0x00,0x00,0x00,0x00,0x21,0x10,0xa0,0x00,0x00,0x00,0xe5,0xac, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x05,0x3c,0x00,0x80,0x02,0x3c, +0xe0,0xff,0xbd,0x27,0x18,0x03,0xa3,0x34,0x68,0x04,0x42,0x24,0x18,0x00,0xbf,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x42,0xb0,0x02,0x3c,0x03,0x00,0x46,0x34, +0x00,0x00,0xc3,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x70,0x30,0x10,0x00,0x02,0x32, +0x18,0x00,0x40,0x10,0x02,0x80,0x11,0x3c,0x78,0x1b,0x27,0x26,0xec,0x23,0xe4,0x94, +0x10,0x00,0x02,0x24,0x00,0x00,0xc2,0xa0,0x08,0x00,0x80,0x10,0x1c,0x03,0xa3,0x34, +0xf0,0x23,0xe2,0x94,0xb0,0x03,0xa4,0x34,0x00,0x00,0x62,0xa0,0x00,0x00,0x80,0xac, +0xec,0x23,0xe0,0xa4,0xf0,0x23,0xe0,0xa4,0x00,0x00,0x04,0x24,0x02,0x80,0x05,0x3c, +0x02,0x80,0x06,0x3c,0x8c,0x43,0xa2,0x8c,0xbc,0x44,0xc3,0x8c,0x01,0x00,0x84,0x24, +0x01,0x00,0x42,0x24,0x01,0x00,0x63,0x24,0xec,0x23,0xe4,0xa4,0x8c,0x43,0xa2,0xac, +0xbc,0x44,0xc3,0xac,0x00,0x16,0x10,0x00,0x03,0x16,0x02,0x00,0x71,0x00,0x40,0x04, +0x42,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x40,0x00,0x02,0x32,0x16,0x00,0x40,0x10,0x78,0x1b,0x24,0x26, +0x42,0xb0,0x03,0x3c,0x40,0x00,0x02,0x24,0x03,0x00,0x63,0x34,0x00,0x00,0x62,0xa0, +0x02,0x80,0x03,0x3c,0xb6,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x1a,0x00,0x40,0x10, +0x02,0x80,0x04,0x3c,0xb6,0x44,0x60,0xa0,0x02,0x80,0x04,0x3c,0xb2,0x44,0x83,0x90, +0xfd,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0xb2,0x44,0x83,0xa0,0xb2,0x44,0x82,0x90, +0x00,0x00,0x00,0x00,0x07,0x00,0x42,0x30,0x2c,0x00,0x40,0x10,0x02,0x80,0x02,0x3c, +0x78,0x1b,0x24,0x26,0x18,0x0b,0x83,0x94,0x14,0x0b,0x85,0x94,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c, +0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34,0x20,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4, +0x08,0x00,0xe0,0x03,0x14,0x0b,0x83,0xa4,0x9e,0x44,0x82,0x90,0x02,0x80,0x05,0x3c, +0x01,0x00,0x42,0x24,0x9e,0x44,0x82,0xa0,0xb2,0x44,0xa3,0x90,0xef,0xff,0x02,0x24, +0x24,0x18,0x62,0x00,0xb2,0x44,0xa3,0xa0,0x9e,0x44,0x82,0x90,0x00,0x00,0x00,0x00, +0x02,0x00,0x42,0x2c,0x24,0x00,0x40,0x14,0x78,0x1b,0x23,0x26,0xe8,0x0a,0x62,0x90, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x3d,0x00,0x40,0x10,0x02,0x80,0x02,0x3c, +0x02,0x80,0x03,0x3c,0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0xdc,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24, +0xb9,0x44,0x62,0xa0,0x65,0x01,0x00,0x08,0x78,0x1b,0x24,0x26,0xb0,0x44,0x40,0xa0, +0x02,0x80,0x03,0x3c,0x99,0x44,0x64,0x90,0xf9,0x1f,0x00,0x0c,0xff,0x00,0x84,0x30, +0x78,0x1b,0x24,0x26,0x18,0x0b,0x83,0x94,0x14,0x0b,0x85,0x94,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c, +0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34,0x20,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4, +0x08,0x00,0xe0,0x03,0x14,0x0b,0x83,0xa4,0x02,0x80,0x05,0x3c,0x02,0x80,0x03,0x3c, +0xac,0x44,0xa2,0x8c,0xa4,0x44,0x64,0x8c,0x02,0x80,0x03,0x3c,0x21,0x10,0x44,0x00, +0xac,0x44,0xa2,0xac,0xac,0x44,0xa4,0x8c,0x25,0xb0,0x02,0x3c,0xe4,0x02,0x42,0x34, +0x00,0x00,0x44,0xac,0xa0,0x44,0x62,0x94,0x02,0x80,0x05,0x3c,0x99,0x44,0xa4,0x90, +0xff,0xff,0x42,0x30,0x40,0x10,0x02,0x00,0xf6,0xff,0x42,0x24,0x02,0x80,0x03,0x3c, +0xff,0x00,0x84,0x30,0xf9,0x1f,0x00,0x0c,0x88,0x44,0x62,0xac,0x95,0x01,0x00,0x08, +0x78,0x1b,0x24,0x26,0x80,0xff,0x03,0x24,0x03,0x00,0x42,0x34,0x00,0x00,0x43,0xa0, +0x1b,0x16,0x00,0x0c,0x00,0x00,0x00,0x00,0x49,0x01,0x00,0x08,0x00,0x00,0x00,0x00, +0xb9,0x44,0x40,0xa0,0x65,0x01,0x00,0x08,0x78,0x1b,0x24,0x26,0xff,0x00,0x84,0x30, +0x0b,0x00,0x82,0x2c,0xff,0xff,0xe7,0x30,0x10,0x00,0xa8,0x93,0x19,0x00,0x40,0x10, +0x21,0x18,0x00,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00,0x48,0xaf,0x63,0x24, +0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00, +0x00,0x00,0x00,0x00,0x43,0xb0,0x02,0x3c,0x78,0x00,0x44,0x34,0x07,0x00,0xe2,0x30, +0x00,0x00,0x85,0xac,0x04,0x00,0x86,0xac,0x04,0x00,0x40,0x18,0x00,0x00,0x00,0x00, +0xf8,0xff,0xe2,0x30,0x08,0x00,0x42,0x24,0xff,0xff,0x47,0x30,0x21,0x10,0xe8,0x00, +0x00,0x80,0x03,0x3c,0x08,0x00,0x82,0xac,0x25,0x10,0x43,0x00,0x08,0x00,0x82,0xac, +0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x43,0xb0,0x02,0x3c, +0xd3,0x01,0x00,0x08,0x6c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08, +0x60,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08,0x54,0x00,0x44,0x34, +0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08,0x48,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c, +0xd3,0x01,0x00,0x08,0x3c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08, +0x30,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08,0x24,0x00,0x44,0x34, +0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08,0x18,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c, +0xd3,0x01,0x00,0x08,0x0c,0x00,0x44,0x34,0xd3,0x01,0x00,0x08,0x43,0xb0,0x04,0x3c, +0x01,0x00,0x02,0x24,0x43,0xb0,0x03,0x3c,0x04,0x20,0x82,0x00,0x88,0x00,0x65,0x34, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0xff,0x42,0x30,0x05,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x00,0x00,0xa2,0x94,0x00,0x00,0x00,0x00, +0xff,0xff,0x42,0x30,0x24,0x10,0x44,0x00,0xf5,0xff,0x40,0x1c,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c,0x00,0x80,0x02,0x3c, +0xd0,0xff,0xbd,0x27,0x18,0x03,0x03,0x35,0x48,0x08,0x42,0x24,0x00,0x00,0x62,0xac, +0x28,0x00,0xb4,0xaf,0x20,0x00,0xb2,0xaf,0x18,0x00,0xb0,0xaf,0x2c,0x00,0xbf,0xaf, +0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,0x08,0x00,0xf3,0x8c,0xff,0x00,0xc6,0x30, +0x00,0x01,0x02,0x24,0x0c,0x00,0xf1,0x84,0x23,0x10,0x46,0x00,0xff,0xff,0xa3,0x30, +0xff,0xff,0x50,0x30,0xff,0x00,0x94,0x30,0xd0,0x03,0x08,0x35,0x21,0x30,0xc5,0x00, +0x21,0x20,0x80,0x02,0x21,0x28,0x60,0x02,0x21,0x38,0x00,0x02,0x02,0x92,0x03,0x00, +0x00,0x00,0x11,0xad,0x00,0x00,0x13,0xad,0x42,0x02,0x00,0x08,0x00,0x00,0x00,0x00, +0x01,0x01,0x23,0x2a,0xff,0xff,0x22,0x32,0x21,0x98,0x70,0x02,0x21,0x20,0x80,0x02, +0x00,0x01,0x10,0x24,0x00,0x02,0x00,0x0c,0x0b,0x80,0x43,0x00,0xc0,0x10,0x12,0x00, +0x28,0xb0,0x03,0x3c,0x21,0x10,0x43,0x00,0x00,0x00,0x45,0x90,0x20,0x10,0x06,0x3c, +0x21,0x20,0x80,0x02,0xff,0x00,0xb2,0x30,0x00,0x12,0x12,0x00,0x21,0x30,0x46,0x00, +0x21,0x28,0x60,0x02,0x21,0x38,0x00,0x02,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x23,0x18,0x30,0x02,0x00,0x8c,0x03,0x00,0x03,0x8c,0x11,0x00,0xe8,0xff,0x20,0x1e, +0x00,0x00,0x00,0x00,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x30,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x18,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf, +0x21,0x38,0x80,0x00,0x02,0x80,0x02,0x3c,0x78,0x1b,0x44,0x24,0x00,0x00,0xe8,0x94, +0x28,0x24,0x83,0x8c,0x21,0x80,0xa0,0x00,0x27,0x10,0x08,0x00,0x2b,0x10,0x62,0x00, +0x03,0x00,0x40,0x10,0x21,0x28,0xc0,0x00,0x21,0x10,0x68,0x00,0x28,0x24,0x82,0xac, +0x04,0x24,0x82,0x8c,0x04,0x00,0xe3,0x8c,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30, +0x20,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,0x08,0x00,0xe2,0x8c,0xff,0xe0,0x03,0x3c, +0xff,0xff,0x63,0x34,0x00,0x26,0x04,0x00,0x24,0x10,0x43,0x00,0x25,0x18,0x44,0x00, +0x10,0x00,0xe4,0x8c,0x00,0x00,0x00,0x00,0x1a,0x00,0x80,0x04,0x08,0x00,0xe3,0xac, +0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30,0x05,0x00,0x40,0x14,0x02,0x00,0x04,0x24, +0xc0,0xff,0x02,0x24,0x24,0x10,0x62,0x00,0x0f,0x00,0x42,0x34,0x08,0x00,0xe2,0xac, +0x21,0x30,0x00,0x02,0x01,0x00,0x02,0x24,0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c, +0x10,0x00,0xa2,0xaf,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x50,0xac, +0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb0,0x8f,0x02,0x00,0x04,0x24,0x00,0x02,0x00,0x08, +0x20,0x00,0xbd,0x27,0x10,0x00,0xe4,0x8c,0x08,0x00,0xe3,0x8c,0xe9,0xff,0x81,0x04, +0x82,0x11,0x03,0x00,0x14,0x00,0xe2,0x8c,0x00,0x00,0x00,0x00,0x42,0x12,0x02,0x00, +0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,0xe2,0xff,0x40,0x14,0x82,0x11,0x03,0x00, +0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,0x70,0x02,0x00,0x08, +0x10,0x00,0xe2,0xac,0xff,0xff,0x84,0x30,0x2a,0xb0,0x02,0x3c,0x0d,0x00,0x42,0x34, +0x80,0x20,0x04,0x00,0x21,0x20,0x82,0x00,0x04,0x00,0x82,0x24,0xff,0xff,0xa5,0x30, +0x0b,0x20,0x45,0x00,0x01,0x00,0x03,0x24,0x02,0x00,0x02,0x24,0x00,0x00,0x83,0xa0, +0x00,0x00,0x82,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xc0,0xff,0xbd,0x27, +0x02,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,0x24,0x00,0xb3,0xaf,0x78,0x1b,0x53,0x24, +0x00,0x80,0x02,0x3c,0x38,0x00,0xbe,0xaf,0x8c,0x0a,0x42,0x24,0xb0,0x03,0x7e,0x34, +0x18,0x03,0x63,0x34,0x2c,0x00,0xb5,0xaf,0x3c,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf, +0x30,0x00,0xb6,0xaf,0x28,0x00,0xb4,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x21,0xa8,0x60,0x02,0xc0,0x24,0x62,0x8e, +0x2c,0x25,0x72,0x8e,0x21,0x20,0x00,0x00,0x00,0x00,0xc2,0xaf,0xc4,0x24,0x62,0xae, +0x00,0x00,0xd2,0xaf,0x00,0x02,0x00,0x0c,0x21,0xa0,0xa0,0x02,0x2c,0x25,0x64,0x8e, +0x30,0x25,0x63,0x8e,0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00, +0x0a,0x18,0x82,0x00,0x02,0x80,0x02,0x3c,0x2c,0x25,0x63,0xae,0x74,0xaf,0x42,0x24, +0x2c,0x25,0xa5,0x8e,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac, +0x02,0x80,0x02,0x3c,0xff,0xff,0x43,0x32,0x25,0x80,0x62,0x00,0x00,0x00,0x90,0xac, +0x0c,0x00,0x02,0x92,0xff,0x00,0x16,0x24,0x01,0x00,0x17,0x24,0x00,0x00,0x82,0xac, +0x0c,0x00,0x11,0x92,0x20,0x10,0x02,0x3c,0x21,0x20,0x00,0x00,0x00,0x1a,0x11,0x00, +0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x05,0x00,0x36,0x12,0x40,0x00,0x07,0x24, +0xc0,0x24,0xa3,0xae,0x74,0x24,0xb1,0xa2,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x00,0x00,0x02,0x96,0x24,0x24,0x83,0x8e,0x21,0x28,0x40,0x02,0x27,0x30,0x02,0x00, +0x21,0x10,0x62,0x00,0x2b,0x18,0x66,0x00,0x21,0x20,0x00,0x00,0x02,0x00,0x60,0x10, +0x40,0x00,0x07,0x24,0x24,0x24,0x82,0xae,0x04,0x00,0x06,0x8e,0x08,0x00,0x03,0x8e, +0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0xc6,0x30,0x24,0x18,0x62,0x00, +0x00,0x36,0x06,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x66,0x00,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x00,0x40,0x06,0x3c,0x25,0x18,0x66,0x00,0xc0,0xff,0x02,0x24, +0x24,0x18,0x62,0x00,0x08,0x00,0x03,0xae,0xc4,0x24,0xa6,0x8e,0xc3,0x01,0x00,0x0c, +0x10,0x00,0xb7,0xaf,0xc4,0x24,0xa3,0x8e,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34, +0x00,0x00,0x43,0xac,0x00,0x02,0x00,0x0c,0x21,0x20,0x00,0x00,0x2a,0xb0,0x02,0x3c, +0x01,0x00,0x42,0x34,0x02,0x00,0x03,0x24,0x00,0x00,0x57,0xa0,0x00,0x00,0x43,0xa0, +0xae,0xff,0x36,0x16,0x41,0xb0,0x03,0x3c,0x08,0x0b,0xa2,0x8e,0x3c,0x00,0xbf,0x8f, +0x00,0x38,0x42,0x34,0x00,0x00,0x62,0xac,0x38,0x00,0xbe,0x8f,0x08,0x0b,0xa2,0xae, +0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c, +0xc0,0xff,0xbd,0x27,0x18,0x03,0x83,0x34,0x68,0x0c,0x42,0x24,0x3c,0x00,0xbf,0xaf, +0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf, +0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x78,0x1b,0x55,0x24,0xb0,0x03,0x96,0x34, +0x4e,0x03,0x00,0x08,0x21,0xf0,0xa0,0x02,0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34, +0x02,0x80,0x03,0x3c,0x78,0x1b,0x71,0x24,0x08,0x00,0x02,0xae,0xdc,0x24,0x26,0x8e, +0x01,0x00,0x04,0x24,0x21,0x28,0x80,0x02,0x40,0x00,0x07,0x24,0x01,0x00,0x12,0x24, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xb2,0xaf,0xdc,0x24,0x23,0x8e,0x25,0xb0,0x02,0x3c, +0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x02,0x00,0x0c,0x01,0x00,0x04,0x24, +0x82,0x0b,0x22,0x92,0x00,0x00,0x00,0x00,0x88,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c, +0x09,0x00,0x42,0x34,0x02,0x00,0x03,0x24,0x00,0x00,0x52,0xa0,0x00,0x00,0x43,0xa0, +0x9d,0x00,0x77,0x12,0x00,0x00,0x00,0x00,0xd8,0x24,0xa2,0x8e,0x44,0x25,0xb4,0x8e, +0x01,0x00,0x04,0x24,0x00,0x00,0xc2,0xae,0xdc,0x24,0xa2,0xae,0x00,0x00,0xd4,0xae, +0x00,0x02,0x00,0x0c,0x00,0x00,0x00,0x00,0x44,0x25,0xa4,0x8e,0x48,0x25,0xa3,0x8e, +0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00, +0x44,0x25,0xa3,0xae,0x44,0x25,0xc2,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0xc2,0xae, +0x02,0x80,0x11,0x3c,0xff,0xff,0x82,0x32,0x25,0x80,0x51,0x00,0x00,0x00,0xd0,0xae, +0x0c,0x00,0x03,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xae,0x02,0x00,0x02,0x92, +0x06,0x00,0x03,0x96,0x21,0x10,0x54,0x00,0xff,0xff,0x42,0x30,0x01,0x00,0x63,0x30, +0x12,0x00,0x60,0x10,0x25,0x30,0x51,0x00,0xec,0x0c,0xc3,0x97,0x00,0x00,0x00,0x00, +0x01,0x00,0x62,0x24,0xec,0x0c,0xc2,0xa7,0x0c,0x00,0x04,0x8e,0x00,0xf0,0x02,0x3c, +0xff,0x0f,0x63,0x30,0xff,0xff,0x42,0x34,0x00,0x2c,0x03,0x00,0x24,0x20,0x82,0x00, +0x25,0x20,0x85,0x00,0x0c,0x00,0x04,0xae,0x16,0x00,0xc2,0x94,0x00,0x19,0x03,0x00, +0x0f,0x00,0x42,0x30,0x25,0x10,0x43,0x00,0x16,0x00,0xc2,0xa4,0x02,0x80,0x03,0x3c, +0x98,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x17,0x00,0x40,0x10,0x02,0x80,0x03,0x3c, +0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30,0x77,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00, +0x0f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x0b,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x21,0x10,0x54,0x00,0xff,0xff,0x42,0x30, +0x25,0x28,0x51,0x00,0x00,0x00,0xa4,0x94,0x08,0x00,0x02,0x24,0x0c,0x00,0x83,0x30, +0x6a,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x0c,0x00,0x13,0x92,0xff,0x00,0x17,0x24, +0x0d,0x00,0x77,0x12,0x02,0x80,0x02,0x3c,0x78,0x1b,0x48,0x24,0x00,0x1a,0x13,0x00, +0x20,0x10,0x02,0x3c,0x44,0x25,0x05,0x8d,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0x01,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0xd8,0x24,0x03,0xad,0x78,0x24,0x13,0xa1, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x04,0x00,0x04,0x8e,0x08,0x00,0x03,0x8e, +0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0x84,0x30,0x24,0x18,0x62,0x00, +0x00,0x26,0x04,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x82,0x11,0x03,0x00, +0x01,0x00,0x42,0x30,0x78,0xff,0x40,0x10,0xc0,0xff,0x02,0x24,0x08,0x00,0x03,0xae, +0x02,0x80,0x03,0x3c,0x78,0x1b,0x71,0x24,0xdc,0x24,0x26,0x8e,0x01,0x00,0x04,0x24, +0x21,0x28,0x80,0x02,0x40,0x00,0x07,0x24,0x01,0x00,0x12,0x24,0xc3,0x01,0x00,0x0c, +0x10,0x00,0xb2,0xaf,0xdc,0x24,0x23,0x8e,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34, +0x00,0x00,0x43,0xac,0x00,0x02,0x00,0x0c,0x01,0x00,0x04,0x24,0x82,0x0b,0x22,0x92, +0x00,0x00,0x00,0x00,0x7a,0xff,0x40,0x14,0x2a,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x82,0x0b,0x32,0xa2, +0x02,0x00,0x02,0x92,0x02,0x80,0x03,0x3c,0x21,0x10,0x54,0x00,0xff,0xff,0x42,0x30, +0x25,0x10,0x43,0x00,0x02,0x00,0x45,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0xa4,0x30, +0x00,0xc0,0x84,0x24,0xff,0xff,0x84,0x30,0x2c,0x22,0x00,0x0c,0x83,0x0b,0x25,0xa2, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2a,0xb0,0x02,0x3c, +0x09,0x00,0x42,0x34,0x02,0x00,0x03,0x24,0x00,0x00,0x52,0xa0,0x00,0x00,0x43,0xa0, +0x65,0xff,0x77,0x16,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x08,0x0b,0x22,0x8e,0x41,0xb0,0x03,0x3c, +0x3c,0x00,0xbf,0x8f,0x00,0x38,0x42,0x34,0x00,0x00,0x62,0xac,0x38,0x00,0xbe,0x8f, +0x08,0x0b,0x22,0xae,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f, +0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f, +0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x55,0x1f,0x00,0x0c, +0x01,0x00,0x04,0x24,0x8a,0x03,0x00,0x08,0x02,0x80,0x03,0x3c,0xb1,0x44,0x43,0x90, +0x00,0x00,0x00,0x00,0x94,0xff,0x60,0x14,0x00,0x10,0x82,0x34,0x9a,0x03,0x00,0x08, +0x00,0x00,0xa2,0xa4,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x24,0x10,0x63,0x24, +0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xc0,0xff,0xbd,0x27,0x2c,0x00,0xb5,0xaf,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf, +0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf, +0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x02,0x80,0x06,0x3c, +0x54,0x44,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34, +0x40,0x10,0x63,0x24,0x40,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,0x21,0xa8,0x00,0x00, +0x03,0x00,0x80,0x10,0x7f,0x00,0xa2,0x30,0xbf,0x00,0xa2,0x30,0x01,0x00,0x15,0x24, +0x54,0x44,0xc2,0xa0,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x02,0x80,0x02,0x3c,0x78,0x1b,0x52,0x24,0x02,0x80,0x17,0x3c,0x02,0x80,0x14,0x3c, +0x21,0xf0,0x40,0x02,0x4c,0x04,0x00,0x08,0x21,0xb0,0x40,0x02,0x58,0x24,0xd0,0xa3, +0xfc,0x24,0x45,0x8e,0x90,0x24,0x46,0x8e,0x03,0x00,0x04,0x24,0x40,0x00,0x07,0x24, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x94,0x24,0xc5,0x8e,0x21,0x20,0x20,0x02, +0x51,0x02,0x00,0x0c,0x21,0x30,0x60,0x02,0x21,0x20,0x00,0x00,0x21,0x28,0xa0,0x02, +0x95,0x02,0x00,0x0c,0x21,0x30,0x00,0x02,0x9c,0x43,0x82,0x96,0x25,0xb0,0x05,0x3c, +0x66,0x03,0xa4,0x34,0x01,0x00,0x42,0x24,0x9c,0x43,0x82,0xa6,0x9c,0x43,0x83,0x96, +0xff,0x00,0x02,0x24,0x00,0x00,0x83,0xa4,0x5f,0x00,0x02,0x12,0x00,0x00,0x00,0x00, +0x90,0x24,0x42,0x8e,0x03,0x00,0x04,0x24,0xfc,0x24,0x53,0x8e,0x00,0x02,0x00,0x0c, +0x94,0x24,0x42,0xae,0xfc,0x24,0x44,0x8e,0x00,0x25,0x43,0x8e,0x02,0x80,0x10,0x3c, +0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00, +0xff,0xff,0x65,0x32,0x25,0x88,0xb0,0x00,0xfc,0x24,0x43,0xae,0x02,0x00,0x22,0x92, +0x06,0x00,0x23,0x96,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,0x01,0x00,0x63,0x30, +0x11,0x00,0x60,0x10,0x25,0x28,0x50,0x00,0xec,0x0c,0x44,0x96,0x00,0xf0,0x06,0x3c, +0xff,0xff,0xc6,0x34,0x01,0x00,0x82,0x24,0xec,0x0c,0x42,0xa6,0x0c,0x00,0x23,0x8e, +0xff,0x0f,0x84,0x30,0x00,0x14,0x04,0x00,0x24,0x18,0x66,0x00,0x25,0x18,0x62,0x00, +0x0c,0x00,0x23,0xae,0x16,0x00,0xa2,0x94,0x00,0x21,0x04,0x00,0x0f,0x00,0x42,0x30, +0x25,0x10,0x44,0x00,0x16,0x00,0xa2,0xa4,0x98,0x44,0xe2,0x92,0x00,0x00,0x00,0x00, +0x1c,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00, +0x02,0x00,0x42,0x30,0x21,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c, +0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28, +0x0b,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x00,0x22,0x92,0x00,0x00,0x00,0x00, +0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,0x25,0x28,0x50,0x00,0x00,0x00,0xa4,0x94, +0x08,0x00,0x02,0x24,0x0c,0x00,0x83,0x30,0x43,0x00,0x62,0x10,0x02,0x80,0x02,0x3c, +0x98,0x44,0xe2,0x92,0x05,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x0f,0x00,0x43,0x10, +0x02,0x80,0x03,0x3c,0x0c,0x00,0x30,0x92,0xff,0x00,0x02,0x24,0xa6,0xff,0x02,0x12, +0x00,0x12,0x10,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,0x9b,0xff,0xa0,0x16, +0x90,0x24,0xc2,0xaf,0x34,0x04,0x00,0x08,0x54,0x24,0xd0,0xa3,0x55,0x1f,0x00,0x0c, +0x01,0x00,0x04,0x24,0x7c,0x04,0x00,0x08,0x02,0x80,0x03,0x3c,0xb3,0x44,0x62,0x90, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0xee,0xff,0x40,0x10,0x02,0x80,0x03,0x3c, +0xb2,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x34,0xb2,0x44,0x62,0xa0, +0x91,0x04,0x00,0x08,0x00,0x00,0x00,0x00,0x29,0x00,0xa0,0x12,0x2a,0xb0,0x02,0x3c, +0x58,0x24,0xc3,0x92,0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00,0x41,0x00,0x42,0x34, +0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x78,0x1b,0x45,0x24,0x08,0x0b,0xa4,0x8c, +0x01,0x00,0x02,0x3c,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x80,0x42,0x34, +0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x64,0xac, +0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,0xb1,0x44,0x43,0x90,0x00,0x00,0x00,0x00, +0xbb,0xff,0x60,0x14,0x00,0x10,0x82,0x34,0x8c,0x04,0x00,0x08,0x00,0x00,0xa2,0xa4, +0x54,0x24,0xc3,0x92,0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00,0x40,0x00,0x42,0x34, +0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x78,0x1b,0x45,0x24,0x08,0x0b,0xa4,0x8c, +0x01,0x00,0x02,0x3c,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x80,0x42,0x34, +0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x64,0xac, +0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,0xb8,0xff,0xbd,0x27,0x44,0x00,0xbf,0xaf, +0x40,0x00,0xbe,0xaf,0x3c,0x00,0xb7,0xaf,0x38,0x00,0xb6,0xaf,0x34,0x00,0xb5,0xaf, +0x30,0x00,0xb4,0xaf,0x2c,0x00,0xb3,0xaf,0x28,0x00,0xb2,0xaf,0x24,0x00,0xb1,0xaf, +0x20,0x00,0xb0,0xaf,0x02,0x80,0x06,0x3c,0x54,0x44,0xc5,0x90,0x00,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,0xd8,0x13,0x63,0x24,0x10,0x00,0xa4,0x30, +0x00,0x00,0x43,0xac,0x18,0x00,0xa0,0xaf,0x04,0x00,0x80,0x10,0xdf,0x00,0xa2,0x30, +0x01,0x00,0x03,0x24,0xef,0x00,0xa2,0x30,0x18,0x00,0xa3,0xaf,0x54,0x44,0xc2,0xa0, +0x54,0x44,0xc3,0x90,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x02,0x80,0x17,0x3c,0x78,0x1b,0xf4,0x26,0x21,0xa8,0x40,0x00,0x02,0x80,0x16,0x3c, +0x39,0x05,0x00,0x08,0x21,0xf0,0x80,0x02,0x60,0x24,0x71,0xa0,0x78,0x1b,0xe2,0x26, +0x9c,0x24,0x46,0x8c,0x08,0x25,0x45,0x8c,0x04,0x00,0x04,0x24,0x40,0x00,0x07,0x24, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x78,0x1b,0xf2,0x26,0xa0,0x24,0x45,0x8e, +0x21,0x20,0x00,0x02,0x51,0x02,0x00,0x0c,0x21,0x30,0x60,0x02,0x18,0x00,0xa5,0x8f, +0x02,0x00,0x04,0x24,0x95,0x02,0x00,0x0c,0x21,0x30,0x20,0x02,0x9c,0x43,0xc2,0x96, +0x25,0xb0,0x05,0x3c,0x66,0x03,0xa4,0x34,0x01,0x00,0x42,0x24,0x9c,0x43,0xc2,0xa6, +0x9c,0x43,0xc3,0x96,0xff,0x00,0x02,0x24,0x00,0x00,0x83,0xa4,0x71,0x00,0x22,0x12, +0x00,0x00,0x00,0x00,0x9c,0x24,0x82,0x8e,0x08,0x25,0x93,0x8e,0x04,0x00,0x04,0x24, +0x00,0x00,0xa2,0xae,0xa0,0x24,0x82,0xae,0x00,0x00,0xb3,0xae,0x00,0x02,0x00,0x0c, +0x00,0x00,0x00,0x00,0x08,0x25,0x84,0x8e,0x0c,0x25,0x83,0x8e,0x40,0x00,0x84,0x24, +0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x08,0x25,0x83,0xae, +0x08,0x25,0xc2,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xae,0x02,0x80,0x11,0x3c, +0xff,0xff,0x62,0x32,0x25,0x80,0x51,0x00,0x00,0x00,0xb0,0xae,0x0c,0x00,0x03,0x92, +0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xae,0x02,0x00,0x02,0x92,0x06,0x00,0x03,0x96, +0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,0x01,0x00,0x63,0x30,0x12,0x00,0x60,0x10, +0x25,0x30,0x51,0x00,0xec,0x0c,0xc3,0x97,0x00,0x00,0x00,0x00,0x01,0x00,0x62,0x24, +0xec,0x0c,0xc2,0xa7,0x0c,0x00,0x04,0x8e,0x00,0xf0,0x02,0x3c,0xff,0x0f,0x63,0x30, +0xff,0xff,0x42,0x34,0x00,0x2c,0x03,0x00,0x24,0x20,0x82,0x00,0x25,0x20,0x85,0x00, +0x0c,0x00,0x04,0xae,0x16,0x00,0xc2,0x94,0x00,0x19,0x03,0x00,0x0f,0x00,0x42,0x30, +0x25,0x10,0x43,0x00,0x16,0x00,0xc2,0xa4,0x02,0x80,0x03,0x3c,0x98,0x44,0x62,0x90, +0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c, +0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30,0x31,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00, +0x0f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x0c,0x00,0x40,0x10,0x02,0x80,0x03,0x3c, +0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30, +0x25,0x28,0x51,0x00,0x00,0x00,0xa4,0x94,0x08,0x00,0x02,0x24,0x0c,0x00,0x83,0x30, +0x48,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x98,0x44,0x62,0x90, +0x05,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x0f,0x00,0x43,0x10,0x02,0x80,0x03,0x3c, +0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,0x97,0xff,0x22,0x12,0x20,0x10,0x03,0x3c, +0x00,0x12,0x11,0x00,0x21,0x10,0x43,0x00,0x78,0x1b,0xe3,0x26,0x9c,0x24,0x62,0xac, +0x18,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00,0x87,0xff,0x40,0x14,0x00,0x00,0x00,0x00, +0x1f,0x05,0x00,0x08,0x5c,0x24,0x71,0xa0,0xb3,0x44,0x62,0x90,0x00,0x00,0x00,0x00, +0x02,0x00,0x42,0x30,0xee,0xff,0x40,0x10,0x02,0x80,0x03,0x3c,0xb2,0x44,0x62,0x90, +0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x34,0xb2,0x44,0x62,0xa0,0x8c,0x05,0x00,0x08, +0x00,0x00,0x00,0x00,0x55,0x1f,0x00,0x0c,0x01,0x00,0x04,0x24,0x76,0x05,0x00,0x08, +0x02,0x80,0x03,0x3c,0x18,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x28,0x00,0x60,0x10, +0x2a,0xb0,0x02,0x3c,0x60,0x24,0x43,0x92,0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00, +0x43,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x78,0x1b,0xe5,0x26,0x08,0x0b,0xa2,0x8c, +0x44,0x00,0xbf,0x8f,0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f,0x38,0x00,0xb6,0x8f, +0x34,0x00,0xb5,0x8f,0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f, +0x24,0x00,0xb1,0x8f,0x20,0x00,0xb0,0x8f,0x06,0x00,0x03,0x3c,0x25,0x10,0x43,0x00, +0x41,0xb0,0x04,0x3c,0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03, +0x08,0x0b,0xa2,0xac,0xb1,0x44,0x43,0x90,0x00,0x00,0x00,0x00,0xb7,0xff,0x60,0x14, +0x02,0x80,0x03,0x3c,0x00,0x10,0x82,0x34,0x87,0x05,0x00,0x08,0x00,0x00,0xa2,0xa4, +0x5c,0x24,0x43,0x92,0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00,0x42,0x00,0x42,0x34, +0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x78,0x1b,0xe5,0x26,0x08,0x0b,0xa2,0x8c,0x44,0x00,0xbf,0x8f, +0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f,0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f, +0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f, +0x20,0x00,0xb0,0x8f,0x06,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c, +0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac, +0xb8,0xff,0xbd,0x27,0x44,0x00,0xbf,0xaf,0x40,0x00,0xbe,0xaf,0x3c,0x00,0xb7,0xaf, +0x38,0x00,0xb6,0xaf,0x34,0x00,0xb5,0xaf,0x30,0x00,0xb4,0xaf,0x2c,0x00,0xb3,0xaf, +0x28,0x00,0xb2,0xaf,0x24,0x00,0xb1,0xaf,0x20,0x00,0xb0,0xaf,0x02,0x80,0x06,0x3c, +0x54,0x44,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34, +0xd0,0x17,0x63,0x24,0x01,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,0x18,0x00,0xa0,0xaf, +0x04,0x00,0x80,0x10,0xf7,0x00,0xa2,0x30,0x01,0x00,0x03,0x24,0xfe,0x00,0xa2,0x30, +0x18,0x00,0xa3,0xaf,0x54,0x44,0xc2,0xa0,0x54,0x44,0xc3,0x90,0x25,0xb0,0x02,0x3c, +0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x02,0x80,0x17,0x3c,0x78,0x1b,0xf4,0x26,0x21,0xa8,0x40,0x00, +0x02,0x80,0x16,0x3c,0x36,0x06,0x00,0x08,0x21,0xf0,0x80,0x02,0x68,0x24,0x71,0xa0, +0x78,0x1b,0xe2,0x26,0xa8,0x24,0x46,0x8c,0x14,0x25,0x45,0x8c,0x05,0x00,0x04,0x24, +0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x78,0x1b,0xf2,0x26, +0xac,0x24,0x45,0x8e,0x21,0x20,0x00,0x02,0x51,0x02,0x00,0x0c,0x21,0x30,0x60,0x02, +0x18,0x00,0xa5,0x8f,0x04,0x00,0x04,0x24,0x95,0x02,0x00,0x0c,0x21,0x30,0x20,0x02, +0x9c,0x43,0xc2,0x96,0x25,0xb0,0x05,0x3c,0x66,0x03,0xa4,0x34,0x01,0x00,0x42,0x24, +0x9c,0x43,0xc2,0xa6,0x9c,0x43,0xc3,0x96,0xff,0x00,0x02,0x24,0x00,0x00,0x83,0xa4, +0x71,0x00,0x22,0x12,0x00,0x00,0x00,0x00,0xa8,0x24,0x82,0x8e,0x14,0x25,0x93,0x8e, +0x05,0x00,0x04,0x24,0x00,0x00,0xa2,0xae,0xac,0x24,0x82,0xae,0x00,0x00,0xb3,0xae, +0x00,0x02,0x00,0x0c,0x00,0x00,0x00,0x00,0x14,0x25,0x84,0x8e,0x18,0x25,0x83,0x8e, +0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00, +0x14,0x25,0x83,0xae,0x14,0x25,0xc2,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xae, +0x02,0x80,0x11,0x3c,0xff,0xff,0x62,0x32,0x25,0x80,0x51,0x00,0x00,0x00,0xb0,0xae, +0x0c,0x00,0x03,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xae,0x02,0x00,0x02,0x92, +0x06,0x00,0x03,0x96,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,0x01,0x00,0x63,0x30, +0x12,0x00,0x60,0x10,0x25,0x30,0x51,0x00,0xec,0x0c,0xc3,0x97,0x00,0x00,0x00,0x00, +0x01,0x00,0x62,0x24,0xec,0x0c,0xc2,0xa7,0x0c,0x00,0x04,0x8e,0x00,0xf0,0x02,0x3c, +0xff,0x0f,0x63,0x30,0xff,0xff,0x42,0x34,0x00,0x2c,0x03,0x00,0x24,0x20,0x82,0x00, +0x25,0x20,0x85,0x00,0x0c,0x00,0x04,0xae,0x16,0x00,0xc2,0x94,0x00,0x19,0x03,0x00, +0x0f,0x00,0x42,0x30,0x25,0x10,0x43,0x00,0x16,0x00,0xc2,0xa4,0x02,0x80,0x03,0x3c, +0x98,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x02,0x80,0x03,0x3c,0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30, +0x31,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90, +0x00,0x00,0x00,0x00,0x0f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x0c,0x00,0x40,0x10, +0x02,0x80,0x03,0x3c,0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x21,0x10,0x53,0x00, +0xff,0xff,0x42,0x30,0x25,0x28,0x51,0x00,0x00,0x00,0xa4,0x94,0x08,0x00,0x02,0x24, +0x0c,0x00,0x83,0x30,0x48,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c, +0x98,0x44,0x62,0x90,0x05,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x0f,0x00,0x43,0x10, +0x02,0x80,0x03,0x3c,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,0x97,0xff,0x22,0x12, +0x20,0x10,0x03,0x3c,0x00,0x12,0x11,0x00,0x21,0x10,0x43,0x00,0x78,0x1b,0xe3,0x26, +0xa8,0x24,0x62,0xac,0x18,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00,0x87,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0x1c,0x06,0x00,0x08,0x64,0x24,0x71,0xa0,0xb3,0x44,0x62,0x90, +0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30,0xee,0xff,0x40,0x10,0x02,0x80,0x03,0x3c, +0xb2,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x34,0xb2,0x44,0x62,0xa0, +0x89,0x06,0x00,0x08,0x00,0x00,0x00,0x00,0x55,0x1f,0x00,0x0c,0x01,0x00,0x04,0x24, +0x73,0x06,0x00,0x08,0x02,0x80,0x03,0x3c,0x18,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00, +0x28,0x00,0x60,0x10,0x2a,0xb0,0x02,0x3c,0x68,0x24,0x43,0x92,0xb0,0x03,0xa5,0x34, +0x21,0x20,0x60,0x00,0x45,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x78,0x1b,0xe5,0x26, +0x08,0x0b,0xa2,0x8c,0x44,0x00,0xbf,0x8f,0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f, +0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f,0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f, +0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f,0x20,0x00,0xb0,0x8f,0x18,0x00,0x03,0x3c, +0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0xac, +0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0xb1,0x44,0x43,0x90,0x00,0x00,0x00,0x00, +0xb7,0xff,0x60,0x14,0x02,0x80,0x03,0x3c,0x00,0x10,0x82,0x34,0x84,0x06,0x00,0x08, +0x00,0x00,0xa2,0xa4,0x64,0x24,0x43,0x92,0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00, +0x44,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x78,0x1b,0xe5,0x26,0x08,0x0b,0xa2,0x8c, +0x44,0x00,0xbf,0x8f,0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f,0x38,0x00,0xb6,0x8f, +0x34,0x00,0xb5,0x8f,0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f, +0x24,0x00,0xb1,0x8f,0x20,0x00,0xb0,0x8f,0x18,0x00,0x03,0x3c,0x25,0x10,0x43,0x00, +0x41,0xb0,0x04,0x3c,0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03, +0x08,0x0b,0xa2,0xac,0xb8,0xff,0xbd,0x27,0x44,0x00,0xbf,0xaf,0x40,0x00,0xbe,0xaf, +0x3c,0x00,0xb7,0xaf,0x38,0x00,0xb6,0xaf,0x34,0x00,0xb5,0xaf,0x30,0x00,0xb4,0xaf, +0x2c,0x00,0xb3,0xaf,0x28,0x00,0xb2,0xaf,0x24,0x00,0xb1,0xaf,0x20,0x00,0xb0,0xaf, +0x02,0x80,0x06,0x3c,0x54,0x44,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x18,0x03,0x42,0x34,0xc4,0x1b,0x63,0x24,0x02,0x00,0xa4,0x30,0x00,0x00,0x43,0xac, +0x18,0x00,0xa0,0xaf,0x04,0x00,0x80,0x10,0xfb,0x00,0xa2,0x30,0x01,0x00,0x03,0x24, +0xfd,0x00,0xa2,0x30,0x18,0x00,0xa3,0xaf,0x54,0x44,0xc2,0xa0,0x54,0x44,0xc3,0x90, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x17,0x3c,0x78,0x1b,0xf4,0x26, +0x21,0xa8,0x40,0x00,0x02,0x80,0x16,0x3c,0x33,0x07,0x00,0x08,0x21,0xf0,0x80,0x02, +0x70,0x24,0x71,0xa0,0x78,0x1b,0xe2,0x26,0xb4,0x24,0x46,0x8c,0x20,0x25,0x45,0x8c, +0x06,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x78,0x1b,0xf2,0x26,0xb8,0x24,0x45,0x8e,0x21,0x20,0x00,0x02,0x51,0x02,0x00,0x0c, +0x21,0x30,0x60,0x02,0x18,0x00,0xa5,0x8f,0x06,0x00,0x04,0x24,0x95,0x02,0x00,0x0c, +0x21,0x30,0x20,0x02,0x9c,0x43,0xc2,0x96,0x25,0xb0,0x05,0x3c,0x66,0x03,0xa4,0x34, +0x01,0x00,0x42,0x24,0x9c,0x43,0xc2,0xa6,0x9c,0x43,0xc3,0x96,0xff,0x00,0x02,0x24, +0x00,0x00,0x83,0xa4,0x71,0x00,0x22,0x12,0x00,0x00,0x00,0x00,0xb4,0x24,0x82,0x8e, +0x20,0x25,0x93,0x8e,0x06,0x00,0x04,0x24,0x00,0x00,0xa2,0xae,0xb8,0x24,0x82,0xae, +0x00,0x00,0xb3,0xae,0x00,0x02,0x00,0x0c,0x00,0x00,0x00,0x00,0x20,0x25,0x84,0x8e, +0x24,0x25,0x83,0x8e,0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00, +0x0a,0x18,0x82,0x00,0x20,0x25,0x83,0xae,0x20,0x25,0xc2,0x8f,0x00,0x00,0x00,0x00, +0x00,0x00,0xa2,0xae,0x02,0x80,0x11,0x3c,0xff,0xff,0x62,0x32,0x25,0x80,0x51,0x00, +0x00,0x00,0xb0,0xae,0x0c,0x00,0x03,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xae, +0x02,0x00,0x02,0x92,0x06,0x00,0x03,0x96,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30, +0x01,0x00,0x63,0x30,0x12,0x00,0x60,0x10,0x25,0x30,0x51,0x00,0xec,0x0c,0xc3,0x97, +0x00,0x00,0x00,0x00,0x01,0x00,0x62,0x24,0xec,0x0c,0xc2,0xa7,0x0c,0x00,0x04,0x8e, +0x00,0xf0,0x02,0x3c,0xff,0x0f,0x63,0x30,0xff,0xff,0x42,0x34,0x00,0x2c,0x03,0x00, +0x24,0x20,0x82,0x00,0x25,0x20,0x85,0x00,0x0c,0x00,0x04,0xae,0x16,0x00,0xc2,0x94, +0x00,0x19,0x03,0x00,0x0f,0x00,0x42,0x30,0x25,0x10,0x43,0x00,0x16,0x00,0xc2,0xa4, +0x02,0x80,0x03,0x3c,0x98,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00, +0x02,0x00,0x42,0x30,0x31,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c, +0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28, +0x0c,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00, +0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,0x25,0x28,0x51,0x00,0x00,0x00,0xa4,0x94, +0x08,0x00,0x02,0x24,0x0c,0x00,0x83,0x30,0x48,0x00,0x62,0x10,0x02,0x80,0x02,0x3c, +0x02,0x80,0x03,0x3c,0x98,0x44,0x62,0x90,0x05,0x00,0x03,0x24,0xff,0x00,0x42,0x30, +0x0f,0x00,0x43,0x10,0x02,0x80,0x03,0x3c,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24, +0x97,0xff,0x22,0x12,0x20,0x10,0x03,0x3c,0x00,0x12,0x11,0x00,0x21,0x10,0x43,0x00, +0x78,0x1b,0xe3,0x26,0xb4,0x24,0x62,0xac,0x18,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00, +0x87,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x19,0x07,0x00,0x08,0x6c,0x24,0x71,0xa0, +0xb3,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x30,0xee,0xff,0x40,0x10, +0x02,0x80,0x03,0x3c,0xb2,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x34, +0xb2,0x44,0x62,0xa0,0x86,0x07,0x00,0x08,0x00,0x00,0x00,0x00,0x55,0x1f,0x00,0x0c, +0x01,0x00,0x04,0x24,0x70,0x07,0x00,0x08,0x02,0x80,0x03,0x3c,0x18,0x00,0xa3,0x8f, +0x00,0x00,0x00,0x00,0x28,0x00,0x60,0x10,0x2a,0xb0,0x02,0x3c,0x70,0x24,0x43,0x92, +0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00,0x47,0x00,0x42,0x34,0x00,0x00,0x43,0xa0, +0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x78,0x1b,0xe5,0x26,0x08,0x0b,0xa2,0x8c,0x44,0x00,0xbf,0x8f,0x40,0x00,0xbe,0x8f, +0x3c,0x00,0xb7,0x8f,0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f,0x30,0x00,0xb4,0x8f, +0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f,0x20,0x00,0xb0,0x8f, +0x60,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x48,0x00,0xbd,0x27, +0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0xb1,0x44,0x43,0x90, +0x00,0x00,0x00,0x00,0xb7,0xff,0x60,0x14,0x02,0x80,0x03,0x3c,0x00,0x10,0x82,0x34, +0x81,0x07,0x00,0x08,0x00,0x00,0xa2,0xa4,0x6c,0x24,0x43,0x92,0xb0,0x03,0xa5,0x34, +0x21,0x20,0x60,0x00,0x46,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x78,0x1b,0xe5,0x26, +0x08,0x0b,0xa2,0x8c,0x44,0x00,0xbf,0x8f,0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f, +0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f,0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f, +0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f,0x20,0x00,0xb0,0x8f,0x60,0x00,0x03,0x3c, +0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0xac, +0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0xb8,0x1f,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x05,0x3c,0x78,0x1b,0xa5,0x24, +0x10,0x0b,0xa2,0x8c,0x08,0x0b,0xa4,0x8c,0x00,0x08,0x03,0x3c,0x24,0x10,0x43,0x00, +0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,0x08,0x00,0xe0,0x03, +0x08,0x0b,0xa4,0xac,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,0xc8,0xff,0xbd,0x27, +0x18,0x03,0x83,0x34,0x14,0x20,0x42,0x24,0x30,0x00,0xbf,0xaf,0x2c,0x00,0xb5,0xaf, +0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x02,0x80,0x14,0x3c,0x78,0x1b,0x93,0x26,0xfc,0x00,0x82,0x34, +0x00,0x00,0x45,0x8c,0xe4,0x0a,0x66,0x96,0x94,0x25,0x63,0x96,0x8c,0x25,0x67,0x8e, +0x23,0x28,0xa6,0x00,0x21,0x10,0xa3,0x00,0x23,0x88,0x47,0x00,0xb0,0x03,0x84,0x34, +0x23,0x30,0x23,0x02,0x2b,0x10,0x71,0x00,0x00,0x00,0x83,0xac,0x00,0x00,0x91,0xac, +0x0b,0x88,0xc2,0x00,0x21,0x20,0x20,0x02,0x39,0x15,0x00,0x0c,0x90,0x25,0x65,0xae, +0x4b,0x00,0x40,0x10,0x21,0x90,0x40,0x00,0x0c,0x00,0x51,0xac,0x8c,0x25,0x68,0x8e, +0x90,0x25,0x62,0x8e,0x08,0x00,0x45,0x8e,0x20,0xbd,0x03,0x3c,0x88,0x03,0x63,0x34, +0x2b,0x10,0x48,0x00,0x40,0x10,0x15,0x3c,0x21,0x20,0x00,0x00,0xff,0xff,0x27,0x32, +0x00,0x00,0x65,0xac,0x28,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0xe4,0x0a,0x66,0x96, +0x08,0x00,0x42,0x96,0x40,0x10,0x05,0x3c,0x21,0x20,0x00,0x00,0x21,0x30,0x06,0x01, +0x25,0x28,0x45,0x00,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x02,0x3c, +0x68,0x41,0x42,0x24,0x78,0x1b,0x84,0x26,0x90,0x25,0x83,0x8c,0x04,0x00,0x45,0x8c, +0x8c,0x25,0x83,0xac,0x00,0x00,0x42,0xae,0x04,0x00,0x52,0xac,0x00,0x00,0xb2,0xac, +0x04,0x00,0x45,0xae,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x78,0x1b,0x85,0x26,0x10,0x0b,0xa2,0x8c,0x08,0x0b,0xa3,0x8c, +0x30,0x00,0xbf,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x04,0x00,0x42,0x30, +0x25,0x18,0x62,0x00,0x41,0xb0,0x04,0x3c,0x38,0x00,0xbd,0x27,0x00,0x00,0x83,0xac, +0x08,0x00,0xe0,0x03,0x08,0x0b,0xa3,0xac,0x94,0x25,0x70,0x8e,0x08,0x00,0x45,0x96, +0xe4,0x0a,0x66,0x96,0x23,0x80,0x08,0x02,0xff,0xff,0x10,0x32,0x21,0x30,0x06,0x01, +0x25,0x28,0xb5,0x00,0x21,0x38,0x00,0x02,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x00,0x02,0x00,0x0c,0x21,0x20,0x00,0x00,0x08,0x00,0x45,0x96,0xe4,0x0a,0x62,0x96, +0x23,0x38,0x30,0x02,0x25,0x28,0xb5,0x00,0x21,0xb0,0x06,0x3c,0x21,0x28,0xb0,0x00, +0x21,0x30,0x46,0x00,0xff,0xff,0xe7,0x30,0x3d,0x08,0x00,0x08,0x21,0x20,0x00,0x00, +0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x02,0x80,0x04,0x3c,0x58,0x44,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x10,0x63,0x34, +0x58,0x44,0x83,0xac,0x00,0x60,0x82,0x40,0x49,0x08,0x00,0x08,0x00,0x00,0x00,0x00, +0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc0,0xff,0xbd,0x27,0x00,0x22,0x63,0x24, +0x18,0x03,0x42,0x34,0x2a,0xb0,0x04,0x3c,0x00,0x00,0x43,0xac,0x3c,0x00,0xbf,0xaf, +0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf, +0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0x2c,0x00,0x84,0x34,0x00,0x00,0x88,0x8c,0xff,0x00,0x02,0x24, +0xff,0x00,0x03,0x31,0x9e,0x00,0x62,0x10,0x00,0x80,0x02,0x31,0x33,0x00,0x40,0x10, +0x00,0xff,0x02,0x3c,0x00,0x80,0x02,0x3c,0x00,0x00,0x82,0xac,0xff,0x00,0x02,0x24, +0x10,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x78,0x1b,0x50,0x24,0xff,0x00,0x03,0x31, +0x50,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0xe4,0x24,0x03,0xae,0x21,0x30,0x60,0x00,0x80,0x24,0x08,0xa2,0x0a,0x00,0x04,0x24, +0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x01,0x00,0x03,0x24, +0x58,0x25,0x03,0xa2,0x02,0x80,0x02,0x3c,0x78,0x1b,0x44,0x24,0x58,0x25,0x83,0x90, +0x01,0x00,0x02,0x24,0x25,0x00,0x62,0x10,0x02,0x80,0x03,0x3c,0x78,0x1b,0x70,0x24, +0x59,0x25,0x02,0x92,0x00,0x00,0x00,0x00,0x08,0x00,0x40,0x10,0x00,0x04,0x03,0x3c, +0x10,0x0b,0x02,0x8e,0x08,0x0b,0x04,0x8e,0x24,0x10,0x43,0x00,0x25,0x20,0x82,0x00, +0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,0x08,0x0b,0x04,0xae,0x3c,0x00,0xbf,0x8f, +0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f, +0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f, +0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x24,0x10,0x02,0x01, +0xcf,0xff,0x40,0x10,0xff,0x00,0x02,0x24,0x02,0x80,0x03,0x3c,0x78,0x1b,0x62,0x24, +0x80,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x0c,0x00,0x68,0x8c,0x9b,0x08,0x00,0x08,0xff,0x00,0x03,0x31,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0x21,0x88,0x80,0x00, +0x7c,0x03,0x57,0x34,0x1e,0x03,0x5e,0x34,0x21,0x98,0x80,0x00,0xb0,0x03,0x56,0x34, +0x01,0x00,0x15,0x24,0x07,0x09,0x00,0x08,0x01,0x00,0x14,0x24,0xf2,0x23,0x22,0x96, +0x59,0x25,0x35,0xa2,0x01,0x00,0x42,0x34,0x00,0x00,0xc2,0xa7,0xf2,0x23,0x22,0xa6, +0x30,0x00,0x02,0x24,0x06,0x00,0x42,0x12,0x02,0x80,0x02,0x3c,0x78,0xaf,0x42,0x24, +0x00,0x00,0x48,0x8c,0x02,0x00,0x02,0x24,0x01,0x00,0x15,0xa1,0x01,0x00,0x02,0xa1, +0x59,0x25,0x62,0x92,0x00,0x00,0x00,0x00,0x45,0x00,0x54,0x14,0xff,0x00,0x02,0x24, +0x0c,0x00,0x03,0x92,0x00,0x00,0x00,0x00,0xff,0x00,0x69,0x30,0x40,0x00,0x22,0x11, +0x20,0x10,0x02,0x3c,0x80,0x24,0x63,0xa2,0x80,0x24,0x28,0x92,0x50,0x25,0x25,0x8e, +0xff,0x00,0x03,0x31,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0xc9,0xae, +0x21,0x30,0x60,0x00,0x00,0x00,0xe8,0xa6,0x0a,0x00,0x04,0x24,0xe4,0x24,0x23,0xae, +0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x50,0x25,0x30,0x8e, +0x00,0x02,0x00,0x0c,0x0a,0x00,0x04,0x24,0xff,0xff,0x10,0x32,0x02,0x80,0x02,0x3c, +0x25,0x80,0x02,0x02,0x02,0x00,0x03,0x92,0x20,0x00,0x02,0x24,0xd3,0xff,0x62,0x14, +0x21,0x20,0x03,0x02,0x02,0x80,0x02,0x3c,0x88,0xb5,0x44,0xac,0x20,0x00,0x03,0x26, +0x02,0x00,0x62,0x90,0x59,0x25,0x25,0x92,0x03,0x00,0x64,0x90,0xff,0x00,0x52,0x30, +0x7f,0x00,0x83,0x30,0x10,0x00,0xb4,0x14,0x28,0x00,0x04,0x26,0x02,0x80,0x05,0x3c, +0x91,0x43,0xa2,0x90,0x00,0x00,0x00,0x00,0x7f,0x00,0x42,0x30,0x08,0x00,0x62,0x10, +0x32,0x00,0x42,0x2e,0xf2,0x23,0x22,0x96,0x00,0x00,0x00,0x00,0x10,0x00,0x42,0x34, +0x00,0x00,0xc2,0xa7,0x91,0x43,0xa3,0xa0,0xf2,0x23,0x22,0xa6,0x32,0x00,0x42,0x2e, +0xbf,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0xc0,0x18,0x12,0x00, +0x94,0x9f,0x42,0x24,0x21,0x18,0x62,0x00,0x04,0x00,0x62,0x8c,0x02,0x80,0x03,0x3c, +0x09,0xf8,0x40,0x00,0x84,0xb5,0x62,0xac,0xe9,0x08,0x00,0x08,0x30,0x00,0x02,0x24, +0x02,0x80,0x03,0x3c,0x78,0x1b,0x62,0x24,0xad,0x08,0x00,0x08,0x58,0x25,0x40,0xa0, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0xb3,0x08,0x00,0x08,0x02,0x80,0x03,0x3c,0xc8,0xff,0xbd,0x27,0xff,0xff,0xa8,0x30, +0x02,0x80,0x02,0x3c,0x25,0x40,0x02,0x01,0x30,0x00,0xb6,0xaf,0x20,0x00,0xb2,0xaf, +0x34,0x00,0xbf,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf, +0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x00,0x00,0x03,0x8d,0xff,0xff,0xd2,0x30, +0x21,0xb0,0xa0,0x00,0x00,0xc0,0x02,0x24,0x08,0x00,0x45,0x26,0x04,0x00,0x06,0x8d, +0x24,0x18,0x62,0x00,0xff,0x3f,0xa5,0x30,0xf0,0xff,0x02,0x3c,0x25,0x18,0x65,0x00, +0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x80,0x05,0x3c,0x25,0x18,0x65,0x00, +0xff,0x01,0xc6,0x34,0x00,0x00,0x03,0xad,0x04,0x00,0x06,0xad,0x21,0x48,0x80,0x00, +0xff,0xff,0xe7,0x30,0x18,0x00,0x12,0xa5,0x1a,0x00,0x07,0xa1,0x18,0x00,0x03,0x8d, +0xff,0x7f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x02,0x80,0x15,0x3c, +0x18,0x00,0x03,0xad,0x78,0x1b,0xa5,0x26,0xee,0x23,0xa3,0x90,0x00,0x00,0x00,0x00, +0x01,0x00,0x62,0x24,0xee,0x23,0xa2,0xa0,0x18,0x00,0x04,0x8d,0xff,0x80,0x02,0x3c, +0x20,0x00,0x45,0x26,0xff,0xff,0x42,0x34,0x7f,0x00,0x63,0x30,0xff,0xff,0xb2,0x30, +0x24,0x20,0x82,0x00,0x00,0x1e,0x03,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x00,0x42,0x34, +0x25,0x20,0x83,0x00,0x07,0x00,0x45,0x32,0x18,0x00,0x04,0xad,0x00,0x00,0x52,0xa4, +0x03,0x00,0xa0,0x10,0xff,0xff,0x42,0x32,0x08,0x00,0x42,0x26,0xff,0xff,0x42,0x30, +0x78,0x1b,0xb4,0x26,0xb4,0x25,0x86,0x8e,0xb8,0x25,0x90,0x8e,0xf8,0xff,0x52,0x30, +0x21,0x10,0xd2,0x00,0x2b,0x10,0x02,0x02,0x31,0x00,0x40,0x10,0xff,0x00,0x33,0x31, +0x23,0x80,0x06,0x02,0x21,0x28,0xc0,0x02,0xff,0xff,0x07,0x32,0x01,0x00,0x11,0x24, +0x21,0x20,0x60,0x02,0xc3,0x01,0x00,0x0c,0x10,0x00,0xb1,0xaf,0x23,0x18,0x50,0x02, +0xff,0xff,0x72,0x30,0x22,0x10,0x02,0x3c,0x21,0x10,0x42,0x02,0x21,0x20,0x60,0x02, +0x00,0x02,0x00,0x0c,0xb4,0x25,0x82,0xae,0x21,0x28,0xd0,0x02,0x21,0x38,0x40,0x02, +0x21,0x20,0x60,0x02,0x10,0x00,0xb1,0xaf,0x22,0x10,0x06,0x3c,0xc3,0x01,0x00,0x0c, +0x78,0x1b,0xb1,0x26,0xb4,0x25,0x23,0x8e,0x25,0xb0,0x10,0x3c,0xb0,0x03,0x02,0x36, +0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,0x00,0x02,0x00,0x0c,0x00,0x00,0x00,0x00, +0xb4,0x25,0x25,0x8e,0xec,0x00,0x02,0x36,0xbd,0x00,0x04,0x36,0x00,0x00,0x45,0xac, +0x00,0x00,0x83,0x90,0xc2,0x00,0x10,0x36,0x34,0x00,0xbf,0x8f,0x10,0x00,0x63,0x34, +0x00,0x00,0x83,0xa0,0x30,0x00,0xb6,0x8f,0x00,0x00,0x05,0xa6,0x2c,0x00,0xb5,0x8f, +0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f, +0x18,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27, +0x21,0x28,0xc0,0x02,0x21,0x20,0x60,0x02,0x21,0x38,0x40,0x02,0x01,0x00,0x02,0x24, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xa2,0xaf,0xb4,0x25,0x83,0x8e,0x78,0x1b,0xb1,0x26, +0x25,0xb0,0x10,0x3c,0x21,0x18,0x72,0x00,0xb4,0x25,0x83,0xae,0xb4,0x25,0x23,0x8e, +0xb0,0x03,0x02,0x36,0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,0x00,0x02,0x00,0x0c, +0x00,0x00,0x00,0x00,0xb4,0x25,0x25,0x8e,0xec,0x00,0x02,0x36,0xbd,0x00,0x04,0x36, +0x00,0x00,0x45,0xac,0x00,0x00,0x83,0x90,0xc2,0x00,0x10,0x36,0x34,0x00,0xbf,0x8f, +0x10,0x00,0x63,0x34,0x00,0x00,0x83,0xa0,0x30,0x00,0xb6,0x8f,0x00,0x00,0x05,0xa6, +0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f, +0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03, +0x38,0x00,0xbd,0x27,0xc8,0xff,0xbd,0x27,0x1c,0x00,0xb1,0xaf,0x34,0x00,0xbf,0xaf, +0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf, +0x20,0x00,0xb2,0xaf,0x18,0x00,0xb0,0xaf,0x21,0x88,0x80,0x00,0x00,0x60,0x14,0x40, +0x01,0x00,0x81,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x14,0x00,0x83,0x8c, +0x02,0x80,0x15,0x3c,0x15,0x00,0x02,0x24,0x78,0x1b,0xb3,0x26,0x21,0x28,0x00,0x00, +0x1d,0x00,0x62,0x10,0x08,0x00,0x06,0x24,0x08,0x00,0x82,0x94,0x02,0x80,0x04,0x3c, +0x3e,0x46,0x00,0x0c,0x25,0x20,0x44,0x00,0x08,0x00,0x25,0x8e,0x0c,0x00,0x26,0x96, +0x14,0x00,0x27,0x96,0x3e,0x09,0x00,0x0c,0x09,0x00,0x04,0x24,0x04,0x00,0x22,0x8e, +0x00,0x00,0x23,0x8e,0x21,0x20,0x20,0x02,0x00,0x00,0x43,0xac,0x04,0x00,0x62,0xac, +0x00,0x00,0x31,0xae,0x56,0x15,0x00,0x0c,0x04,0x00,0x31,0xae,0x00,0x60,0x94,0x40, +0x34,0x00,0xbf,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x0c,0x00,0x90,0x8c,0x25,0xb0,0x02,0x3c, +0xc0,0x00,0x42,0x34,0xb4,0x25,0x68,0x8e,0x07,0x00,0x07,0x32,0x00,0x00,0x50,0xa4, +0x08,0x00,0x05,0x26,0x0b,0x80,0xa7,0x00,0xb8,0x25,0x63,0x8e,0xf8,0xff,0x10,0x32, +0x21,0x10,0x10,0x01,0x23,0x90,0x68,0x00,0x2b,0x18,0x62,0x00,0x01,0x00,0x16,0x24, +0x09,0x00,0x04,0x24,0x21,0x30,0x00,0x01,0x33,0x00,0x60,0x10,0xff,0xff,0x07,0x32, +0x08,0x00,0x25,0x8e,0xff,0xff,0x47,0x32,0x23,0x80,0x12,0x02,0xc3,0x01,0x00,0x0c, +0x10,0x00,0xb6,0xaf,0x22,0x10,0x03,0x3c,0x21,0x18,0x03,0x02,0x09,0x00,0x04,0x24, +0x00,0x02,0x00,0x0c,0xb4,0x25,0x63,0xae,0x08,0x00,0x25,0x8e,0xff,0xff,0x07,0x32, +0x09,0x00,0x04,0x24,0x21,0x28,0xb2,0x00,0x22,0x10,0x06,0x3c,0xc3,0x01,0x00,0x0c, +0x10,0x00,0xb6,0xaf,0x00,0x02,0x00,0x0c,0x09,0x00,0x04,0x24,0x78,0x1b,0xa2,0x26, +0xb4,0x25,0x46,0x8c,0x25,0xb0,0x03,0x3c,0xec,0x00,0x64,0x34,0x00,0x00,0x86,0xac, +0xbd,0x00,0x65,0x34,0x00,0x00,0xa2,0x90,0xc2,0x00,0x63,0x34,0x21,0x20,0x20,0x02, +0x10,0x00,0x42,0x34,0x00,0x00,0xa2,0xa0,0x00,0x00,0x66,0xa4,0x04,0x00,0x22,0x8e, +0x00,0x00,0x23,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0xac,0x04,0x00,0x62,0xac, +0x00,0x00,0x31,0xae,0x56,0x15,0x00,0x0c,0x04,0x00,0x31,0xae,0x00,0x60,0x94,0x40, +0x34,0x00,0xbf,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x08,0x00,0x25,0x8e,0x01,0x00,0x02,0x24, +0x21,0x30,0x00,0x01,0x09,0x00,0x04,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa2,0xaf, +0xb4,0x25,0x63,0x8e,0x00,0x00,0x00,0x00,0x21,0x18,0x70,0x00,0x2d,0x0a,0x00,0x08, +0xb4,0x25,0x63,0xae,0xe8,0xff,0xbd,0x27,0x14,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf, +0x21,0x28,0x80,0x00,0x00,0x60,0x10,0x40,0x01,0x00,0x01,0x36,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0xbf,0x00,0x42,0x34,0x00,0x00,0x43,0x90, +0x00,0x00,0x00,0x00,0x04,0x00,0x63,0x2c,0x05,0x00,0x60,0x10,0x02,0x80,0x06,0x3c, +0x70,0x41,0xc3,0x8c,0x70,0x41,0xc2,0x24,0x0c,0x00,0x62,0x10,0x00,0x00,0x00,0x00, +0x70,0x41,0xc2,0x24,0x04,0x00,0x43,0x8c,0x00,0x00,0xa2,0xac,0x04,0x00,0x45,0xac, +0x00,0x00,0x65,0xac,0x04,0x00,0xa3,0xac,0x00,0x60,0x90,0x40,0x14,0x00,0xbf,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xd9,0x09,0x00,0x0c, +0x00,0x00,0x00,0x00,0x00,0x60,0x90,0x40,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0xd0,0xff,0xbd,0x27,0x18,0x03,0x42,0x34,0xf8,0x29,0x63,0x24,0x28,0x00,0xbf,0xaf, +0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x00,0x00,0x43,0xac,0x02,0x80,0x04,0x3c,0x98,0x44,0x82,0x90,0x00,0x00,0x00,0x00, +0x09,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x02,0x80,0x02,0x3c,0xb1,0x44,0x43,0x90, +0x00,0x00,0x00,0x00,0x61,0x00,0x60,0x10,0x02,0x80,0x02,0x3c,0x9c,0x1e,0x00,0x0c, +0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x78,0x41,0x43,0x8c,0x78,0x41,0x42,0x24, +0x66,0x00,0x62,0x10,0x02,0x80,0x13,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x2a,0xb0,0x02,0x3c,0x36,0x00,0x42,0x34,0x00,0x00,0x43,0x90, +0x78,0x1b,0x66,0x26,0xbc,0x25,0xc5,0x8c,0xc0,0x18,0x03,0x00,0x23,0xb0,0x04,0x3c, +0xf0,0x07,0x63,0x30,0xff,0x1f,0x02,0x3c,0x21,0x18,0x64,0x00,0xff,0xff,0x42,0x34, +0x24,0x20,0x62,0x00,0x23,0x88,0x85,0x00,0x00,0x04,0x22,0x26,0x2b,0x28,0x85,0x00, +0x6c,0x25,0xc3,0x8c,0x0b,0x88,0x45,0x00,0xe1,0x01,0x22,0x2e,0x68,0x25,0xc3,0xac, +0xc0,0x25,0xc4,0xac,0x72,0x25,0xc0,0xa4,0x14,0x00,0x40,0x14,0x71,0x25,0xc0,0xa0, +0x20,0xfe,0x82,0x24,0x20,0x02,0x83,0x24,0x0a,0x18,0x45,0x00,0x23,0x10,0x02,0x3c, +0xff,0x03,0x42,0x34,0x2b,0x10,0x43,0x00,0x21,0x28,0x60,0x00,0x34,0x00,0x40,0x14, +0xbc,0x25,0xc3,0xac,0xc0,0x25,0xc2,0x8c,0x00,0x00,0x00,0x00,0x2b,0x18,0x45,0x00, +0x23,0x88,0x45,0x00,0x03,0x00,0x60,0x10,0xe1,0x01,0x22,0x2e,0x00,0x04,0x31,0x26, +0xe1,0x01,0x22,0x2e,0x0e,0x00,0x40,0x10,0x78,0x1b,0x70,0x26,0x78,0x1b,0x70,0x26, +0xc0,0x25,0x03,0x8e,0xbc,0x25,0x04,0x8e,0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00, +0x41,0x00,0x40,0x14,0x2b,0x10,0x64,0x00,0x6d,0x00,0x40,0x14,0x25,0xb0,0x02,0x3c, +0x80,0x00,0x03,0x24,0xd0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x78,0x1b,0x70,0x26, +0xbc,0x25,0x03,0x96,0x2a,0xb0,0x02,0x3c,0x35,0x00,0x42,0x34,0xc2,0x88,0x03,0x00, +0x00,0x00,0x51,0xa0,0x45,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,0x72,0x25,0x03,0x96, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x08,0x0b,0x02,0x8e, +0x80,0x00,0x03,0x3c,0x41,0xb0,0x04,0x3c,0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac, +0x28,0x00,0xbf,0x8f,0x08,0x0b,0x02,0xae,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f, +0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27, +0x00,0xfc,0xa5,0x24,0xbd,0x0a,0x00,0x08,0xbc,0x25,0xc5,0xac,0x01,0x00,0x04,0x24, +0xba,0x44,0x44,0xa0,0x02,0x80,0x03,0x3c,0x99,0x44,0x64,0x90,0x02,0x80,0x13,0x3c, +0xf9,0x1f,0x00,0x0c,0xff,0x00,0x84,0x30,0x02,0x80,0x02,0x3c,0x78,0x41,0x43,0x8c, +0x78,0x41,0x42,0x24,0x9c,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x90,0x1e,0x00,0x0c, +0x00,0x00,0x00,0x00,0x98,0xff,0x40,0x10,0x78,0x1b,0x63,0x26,0x82,0x0b,0x62,0x90, +0x00,0x00,0x00,0x00,0x94,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x98,0x26,0x64,0x94, +0x82,0x0b,0x60,0xa0,0x00,0xc0,0x84,0x24,0x2c,0x22,0x00,0x0c,0xff,0xff,0x84,0x30, +0x9a,0x0a,0x00,0x08,0x00,0x00,0x00,0x00,0x68,0x25,0x05,0x8e,0x21,0x30,0x80,0x00, +0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x68,0x25,0x03,0x8e,0x72,0x25,0x05,0x96,0xbc,0x25,0x02,0x8e,0x21,0x18,0x71,0x00, +0x21,0x28,0x25,0x02,0x21,0x10,0x51,0x00,0x09,0x00,0x04,0x24,0xbc,0x25,0x02,0xae, +0x68,0x25,0x03,0xae,0x00,0x02,0x00,0x0c,0x72,0x25,0x05,0xa6,0x78,0x1b,0x70,0x26, +0xbc,0x25,0x03,0x96,0x2a,0xb0,0x02,0x3c,0x35,0x00,0x42,0x34,0xc2,0x88,0x03,0x00, +0x00,0x00,0x51,0xa0,0x45,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,0x72,0x25,0x03,0x96, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x08,0x0b,0x02,0x8e, +0x80,0x00,0x03,0x3c,0x41,0xb0,0x04,0x3c,0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac, +0x28,0x00,0xbf,0x8f,0x08,0x0b,0x02,0xae,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f, +0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27, +0xc4,0x25,0x02,0x8e,0x68,0x25,0x05,0x8e,0x21,0x30,0x80,0x00,0x23,0x88,0x44,0x00, +0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x68,0x25,0x03,0x8e,0x72,0x25,0x02,0x96,0xc0,0x25,0x12,0x96,0x21,0x18,0x71,0x00, +0x21,0x10,0x22,0x02,0x23,0x10,0x11,0x3c,0x68,0x25,0x03,0xae,0x72,0x25,0x02,0xa6, +0x06,0x00,0x40,0x16,0xbc,0x25,0x11,0xae,0x09,0x00,0x04,0x24,0x00,0x02,0x00,0x0c, +0x78,0x1b,0x70,0x26,0x20,0x0b,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x0c, +0x09,0x00,0x04,0x24,0x68,0x25,0x05,0x8e,0x09,0x00,0x04,0x24,0x23,0x10,0x06,0x3c, +0x21,0x38,0x40,0x02,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x68,0x25,0x03,0x8e, +0x72,0x25,0x02,0x96,0x21,0x20,0x51,0x02,0x21,0x18,0x72,0x00,0x21,0x10,0x42,0x02, +0xbc,0x25,0x04,0xae,0x09,0x00,0x04,0x24,0x68,0x25,0x03,0xae,0x4f,0x0b,0x00,0x08, +0x72,0x25,0x02,0xa6,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x08,0x00,0x02,0x24,0xfc,0x00,0x84,0x30, +0x50,0x00,0x02,0x24,0x11,0x00,0x82,0x10,0x05,0x00,0x03,0x24,0x51,0x00,0x82,0x28, +0x10,0x00,0x40,0x10,0xa0,0x00,0x02,0x24,0x20,0x00,0x02,0x24,0x0b,0x00,0x82,0x10, +0x02,0x00,0x03,0x24,0x21,0x00,0x82,0x28,0x15,0x00,0x40,0x14,0x30,0x00,0x02,0x24, +0x06,0x00,0x82,0x10,0x03,0x00,0x03,0x24,0x04,0x00,0x03,0x24,0x40,0x00,0x02,0x24, +0x02,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x0c,0x00,0x03,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0xfd,0xff,0x82,0x10,0x08,0x00,0x03,0x24,0xa1,0x00,0x82,0x28, +0x0c,0x00,0x40,0x10,0xc0,0x00,0x02,0x24,0x80,0x00,0x02,0x24,0xf7,0xff,0x82,0x10, +0x06,0x00,0x03,0x24,0x07,0x00,0x03,0x24,0x84,0x0b,0x00,0x08,0x90,0x00,0x02,0x24, +0xf2,0xff,0x80,0x10,0x21,0x18,0x00,0x00,0x01,0x00,0x03,0x24,0x84,0x0b,0x00,0x08, +0x10,0x00,0x02,0x24,0xed,0xff,0x82,0x10,0x0a,0x00,0x03,0x24,0xc1,0x00,0x82,0x28, +0x04,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x09,0x00,0x03,0x24,0x84,0x0b,0x00,0x08, +0xb0,0x00,0x02,0x24,0x0b,0x00,0x03,0x24,0x84,0x0b,0x00,0x08,0xd0,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x3c,0x25,0xb0,0x04,0x3c, +0x98,0x2e,0x63,0x24,0x18,0x03,0x84,0x34,0x00,0x00,0x83,0xac,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x00,0x80,0x03,0x3c, +0x25,0xb0,0x04,0x3c,0xdc,0x2e,0x63,0x24,0x18,0x03,0x84,0x34,0x00,0x00,0x83,0xac, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x3c,0x25,0xb0,0x04,0x3c, +0xf8,0x2e,0x63,0x24,0x18,0x03,0x84,0x34,0x00,0x00,0x83,0xac,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x00,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x7c,0x2f,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x25,0xb0,0x03,0x3c,0x00,0x80,0x02,0x3c, +0xb0,0x03,0x65,0x34,0x98,0x2f,0x42,0x24,0x18,0x03,0x63,0x34,0x00,0x00,0x62,0xac, +0x00,0x00,0xa4,0xac,0x00,0x00,0x83,0x8c,0x21,0x10,0x00,0x00,0xff,0x3f,0x63,0x30, +0x00,0x00,0xa3,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x98,0xff,0xbd,0x27,0x60,0x00,0xbe,0xaf,0x5c,0x00,0xb7,0xaf, +0x48,0x00,0xb2,0xaf,0x44,0x00,0xb1,0xaf,0x64,0x00,0xbf,0xaf,0x58,0x00,0xb6,0xaf, +0x54,0x00,0xb5,0xaf,0x50,0x00,0xb4,0xaf,0x4c,0x00,0xb3,0xaf,0x40,0x00,0xb0,0xaf, +0x21,0x88,0x80,0x00,0x02,0x00,0x84,0x90,0x21,0xf0,0x00,0x00,0x21,0xb8,0x00,0x00, +0x0f,0x00,0x84,0x30,0xc0,0x20,0x04,0x00,0x21,0x20,0x91,0x00,0x18,0x00,0x92,0x24, +0x00,0x60,0x13,0x40,0x01,0x00,0x61,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x02,0x80,0x05,0x3c,0x28,0x00,0x84,0x24,0x18,0x42,0xa5,0x24,0x7b,0x46,0x00,0x0c, +0x06,0x00,0x06,0x24,0xa6,0x00,0x40,0x14,0x02,0x80,0x14,0x3c,0x98,0x44,0x82,0x92, +0x00,0x00,0x00,0x00,0xb0,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24, +0xe8,0x0a,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0xaa,0x00,0x40,0x10, +0x02,0x80,0x09,0x3c,0xb9,0x44,0x22,0x91,0x00,0x00,0x00,0x00,0x06,0x00,0x40,0x10, +0x02,0x80,0x02,0x3c,0xb9,0x44,0x22,0x91,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x24, +0xb9,0x44,0x22,0xa1,0x02,0x80,0x02,0x3c,0x9e,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c, +0xb2,0x44,0x62,0x90,0xfd,0xff,0x03,0x24,0x42,0xb0,0x04,0x3c,0x24,0x10,0x43,0x00, +0x02,0x80,0x03,0x3c,0xb2,0x44,0x62,0xa0,0x00,0x00,0x83,0x90,0xef,0xff,0x02,0x24, +0x03,0x00,0x85,0x34,0x24,0x18,0x62,0x00,0x40,0x00,0x02,0x24,0x00,0x00,0x83,0xa0, +0x02,0x80,0x16,0x3c,0x00,0x00,0xa2,0xa0,0xa0,0x44,0xc2,0x96,0x20,0x00,0x43,0x96, +0xff,0xff,0x42,0x30,0x0a,0x00,0x43,0x10,0x02,0x80,0x15,0x3c,0x25,0xb0,0x02,0x3c, +0x94,0x00,0x42,0x34,0xa0,0x44,0xc3,0xa6,0x00,0x00,0x43,0xa4,0xa0,0x44,0xc3,0x96, +0x00,0x00,0x00,0x00,0xff,0xff,0x63,0x30,0x80,0x1a,0x03,0x00,0xa4,0x44,0xa3,0xae, +0x25,0xb0,0x10,0x3c,0x84,0x00,0x02,0x36,0x00,0x00,0x44,0x8c,0x80,0x00,0x10,0x36, +0x00,0x00,0x02,0x8e,0xa4,0x44,0xa6,0x8e,0x21,0x18,0x00,0x00,0x00,0x28,0x04,0x00, +0x21,0x20,0x00,0x00,0x25,0x28,0xa3,0x00,0x25,0x20,0x82,0x00,0x24,0x22,0x00,0x0c, +0x38,0x00,0xa9,0xaf,0x02,0x80,0x05,0x3c,0x00,0x00,0x04,0x8e,0xa4,0x44,0xa6,0x8e, +0xa8,0x44,0xa3,0x94,0x23,0x20,0x82,0x00,0x21,0x20,0x86,0x00,0xff,0xff,0x63,0x30, +0x80,0x1a,0x03,0x00,0x23,0x20,0x83,0x00,0x02,0x80,0x08,0x3c,0xac,0x44,0x04,0xad, +0x00,0x00,0x02,0x8e,0x21,0x18,0x00,0x00,0x21,0x38,0x00,0x00,0x00,0x50,0x42,0x24, +0x00,0x50,0x45,0x2c,0x21,0x18,0x65,0x00,0x2b,0x20,0xe3,0x00,0xac,0x44,0x06,0x8d, +0x38,0x00,0xa9,0x8f,0x8f,0x00,0x80,0x14,0x00,0x00,0x00,0x00,0x8b,0x00,0x67,0x10, +0x2b,0x10,0xc2,0x00,0xac,0x44,0x04,0x8d,0x25,0xb0,0x02,0x3c,0xe4,0x02,0x42,0x34, +0x00,0x00,0x44,0xac,0xa0,0x44,0xc3,0x96,0x02,0x80,0x02,0x3c,0x05,0x00,0x05,0x24, +0xff,0xff,0x63,0x30,0x40,0x18,0x03,0x00,0xf6,0xff,0x63,0x24,0x88,0x44,0x43,0xac, +0x00,0x00,0x27,0x8e,0x24,0x00,0x44,0x26,0x30,0x00,0xa6,0x27,0xff,0x3f,0xe7,0x30, +0x8a,0x11,0x00,0x0c,0xdc,0xff,0xe7,0x24,0x2c,0x00,0x40,0x10,0x21,0x28,0x40,0x00, +0x98,0x44,0x82,0x92,0x02,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x7f,0x00,0x43,0x10, +0x02,0x80,0x04,0x3c,0x02,0x00,0xa2,0x90,0x00,0x00,0x00,0x00,0x08,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x04,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x62,0x30, +0x04,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x01,0x00,0x17,0x24,0xb6,0x44,0x57,0xa0, +0x04,0x00,0xa3,0x90,0x30,0x00,0xa7,0x8f,0x00,0x00,0x00,0x00,0x04,0x00,0xe2,0x28, +0x16,0x00,0x40,0x14,0xfe,0x00,0x66,0x30,0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24, +0x98,0x26,0x64,0x94,0xc0,0x10,0x06,0x00,0x2a,0x10,0x82,0x00,0x10,0x00,0x40,0x14, +0x02,0x80,0x03,0x3c,0x21,0x10,0xc7,0x00,0xfd,0xff,0x42,0x24,0xc0,0x10,0x02,0x00, +0x2a,0x10,0x44,0x00,0x0a,0x00,0x40,0x14,0xc2,0x10,0x04,0x00,0x23,0x30,0x46,0x00, +0x21,0x18,0xa6,0x00,0x05,0x00,0x62,0x90,0x07,0x00,0x84,0x30,0x01,0x00,0x03,0x24, +0x07,0x10,0x82,0x00,0x01,0x00,0x42,0x30,0x0b,0xf0,0x62,0x00,0x02,0x80,0x03,0x3c, +0xb2,0x44,0x62,0x90,0xef,0xff,0x03,0x24,0x21,0x20,0xe0,0x02,0x24,0x10,0x43,0x00, +0x02,0x80,0x03,0x3c,0xb2,0x44,0x62,0xa0,0x98,0x44,0x83,0x92,0x02,0x80,0x02,0x3c, +0x10,0xaf,0x42,0x24,0xff,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00, +0x00,0x00,0x66,0x8c,0x00,0x00,0x00,0x00,0x09,0xf8,0xc0,0x00,0x21,0x28,0xc0,0x03, +0x00,0x60,0x93,0x40,0x64,0x00,0xbf,0x8f,0x60,0x00,0xbe,0x8f,0x5c,0x00,0xb7,0x8f, +0x58,0x00,0xb6,0x8f,0x54,0x00,0xb5,0x8f,0x50,0x00,0xb4,0x8f,0x4c,0x00,0xb3,0x8f, +0x48,0x00,0xb2,0x8f,0x44,0x00,0xb1,0x8f,0x40,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x68,0x00,0xbd,0x27,0x98,0x44,0x82,0x92,0x00,0x00,0x00,0x00, +0xef,0xff,0x40,0x14,0x02,0x80,0x03,0x3c,0x78,0x1b,0x70,0x24,0xe8,0x0a,0x02,0x92, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0xe9,0xff,0x40,0x10,0x24,0x00,0x44,0x26, +0x00,0x00,0x27,0x8e,0x05,0x00,0x05,0x24,0xff,0x3f,0xe7,0x30,0xdc,0xff,0xe7,0x24, +0x8a,0x11,0x00,0x0c,0x30,0x00,0xa6,0x27,0xe1,0xff,0x40,0x10,0x21,0x28,0x40,0x00, +0x30,0x00,0xa7,0x8f,0x04,0x00,0x42,0x90,0x04,0x00,0xe3,0x28,0xdc,0xff,0x60,0x14, +0xfe,0x00,0x46,0x30,0x98,0x26,0x04,0x96,0xc0,0x10,0x06,0x00,0x2a,0x10,0x82,0x00, +0xd7,0xff,0x40,0x14,0x21,0x10,0xc7,0x00,0xfd,0xff,0x42,0x24,0xc0,0x10,0x02,0x00, +0x2a,0x10,0x44,0x00,0xd2,0xff,0x40,0x14,0xc2,0x10,0x04,0x00,0x23,0x30,0x46,0x00, +0x21,0x18,0xa6,0x00,0x05,0x00,0x62,0x90,0x07,0x00,0x84,0x30,0x07,0x10,0x82,0x00, +0x01,0x00,0x42,0x30,0xca,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x0e,0x46,0x00,0x0c, +0x21,0x20,0x00,0x00,0xc4,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x75,0xff,0x40,0x10, +0x00,0x00,0x00,0x00,0xb9,0x44,0x22,0x91,0x00,0x00,0x00,0x00,0x71,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0xb9,0x44,0x22,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24, +0xb9,0x44,0x22,0xa1,0x75,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x03,0x00,0xa2,0x90, +0x02,0x80,0x07,0x3c,0xb4,0x44,0xe2,0xa0,0x02,0x00,0xa3,0x90,0x21,0x30,0x80,0x00, +0xb5,0x44,0x83,0xa0,0xb5,0x44,0x82,0x90,0x00,0x00,0x00,0x00,0x06,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0xb4,0x44,0xe2,0x90,0x00,0x00,0x00,0x00,0xb5,0x44,0xc2,0xa0, +0x8d,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xb5,0x44,0x82,0x90,0x00,0x00,0x00,0x00, +0xb5,0x44,0xc2,0xa0,0x8d,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x09,0x3c, +0x78,0x1b,0x28,0x25,0xf4,0x23,0x06,0x8d,0xff,0xff,0x02,0x34,0x44,0x00,0xc2,0x10, +0x21,0x38,0x80,0x00,0x2b,0x10,0xc7,0x00,0x34,0x00,0x40,0x10,0x02,0x19,0x06,0x00, +0x21,0x10,0xc7,0x00,0x23,0x10,0x43,0x00,0x10,0x00,0x46,0x24,0xf4,0x23,0x06,0xad, +0xf8,0x23,0x02,0xad,0x78,0x1b,0x26,0x25,0x06,0x00,0xc4,0x94,0xff,0xff,0x02,0x34, +0xff,0xff,0x83,0x30,0x33,0x00,0x62,0x10,0x00,0x11,0x07,0x00,0xff,0xff,0x84,0x30, +0x2b,0x10,0x87,0x00,0x20,0x00,0x40,0x10,0x03,0x19,0x04,0x00,0x03,0x11,0x04,0x00, +0x21,0x18,0x87,0x00,0x23,0x18,0x62,0x00,0x10,0x00,0x64,0x24,0x06,0x00,0xc4,0xa4, +0xf8,0x23,0xc3,0xac,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x45,0x00,0x78,0x1b,0x23,0x25,0x80,0x10,0x02,0x00,0x21,0x28,0x43,0x00, +0x80,0x11,0xa6,0x8c,0x00,0x21,0x07,0x00,0xff,0xff,0xc2,0x38,0x0a,0x30,0x82,0x00, +0x2b,0x18,0xc7,0x00,0x07,0x00,0x60,0x10,0x21,0x10,0xc7,0x00,0x02,0x19,0x06,0x00, +0x23,0x10,0x43,0x00,0x10,0x00,0x46,0x24,0x80,0x11,0xa6,0xac,0x08,0x00,0xe0,0x03, +0x84,0x11,0xa2,0xac,0x02,0x19,0x06,0x00,0x23,0x10,0x43,0x00,0x80,0x11,0xa2,0xac, +0x08,0x00,0xe0,0x03,0x84,0x11,0xa2,0xac,0x21,0x10,0x87,0x00,0x23,0x10,0x43,0x00, +0x06,0x00,0xc2,0xa4,0x3d,0x0d,0x00,0x08,0xf8,0x23,0xc2,0xac,0x21,0x10,0xc7,0x00, +0x23,0x10,0x43,0x00,0xf4,0x23,0x02,0xad,0xf8,0x23,0x02,0xad,0x78,0x1b,0x26,0x25, +0x06,0x00,0xc4,0x94,0xff,0xff,0x02,0x34,0xff,0xff,0x83,0x30,0xcf,0xff,0x62,0x14, +0x00,0x11,0x07,0x00,0x21,0x20,0x40,0x00,0x33,0x0d,0x00,0x08,0x06,0x00,0xc2,0xa4, +0x00,0x31,0x04,0x00,0x25,0x0d,0x00,0x08,0xf4,0x23,0x06,0xad,0x63,0x00,0x82,0x24, +0x77,0x00,0x42,0x2c,0x00,0x00,0x85,0x28,0x04,0x00,0x40,0x10,0x21,0x18,0x00,0x00, +0x64,0x00,0x82,0x24,0x64,0x00,0x03,0x24,0x0b,0x18,0x45,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,0x0c,0x00,0x82,0x8c, +0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,0x07,0x00,0x40,0x14, +0x25,0xb0,0x02,0x3c,0x04,0x00,0xa4,0x90,0x10,0x00,0xbf,0x8f,0x18,0x00,0xbd,0x27, +0x42,0x20,0x04,0x00,0x6b,0x0d,0x00,0x08,0x96,0xff,0x84,0x24,0x24,0x08,0x42,0x34, +0x00,0x00,0x43,0x8c,0x00,0x00,0x00,0x00,0x00,0x02,0x63,0x30,0x1b,0x00,0x60,0x14, +0x01,0x00,0x02,0x24,0x05,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x82,0x21,0x03,0x00, +0x3c,0x00,0x82,0x10,0x02,0x00,0x82,0x28,0x57,0x00,0x40,0x14,0x02,0x00,0x02,0x24, +0x46,0x00,0x82,0x10,0x03,0x00,0x02,0x24,0x2e,0x00,0x82,0x10,0x3e,0x00,0x63,0x30, +0x6b,0x0d,0x00,0x0c,0x21,0x20,0xc0,0x00,0x06,0x00,0x45,0x24,0x65,0x00,0xa4,0x2c, +0x64,0x00,0x03,0x24,0x0a,0x28,0x64,0x00,0xdd,0xff,0xa2,0x24,0x08,0x00,0x42,0x2c, +0x1f,0x00,0x40,0x10,0xe5,0xff,0xa2,0x24,0xfe,0xff,0xa5,0x24,0x10,0x00,0xbf,0x8f, +0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x05,0x00,0xa3,0x90, +0x00,0x00,0x00,0x00,0x60,0x00,0x64,0x30,0x42,0x21,0x04,0x00,0x25,0x00,0x82,0x10, +0x02,0x00,0x82,0x28,0x36,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x2f,0x00,0x82,0x10, +0x03,0x00,0x02,0x24,0xe6,0xff,0x82,0x14,0x1f,0x00,0x62,0x30,0x40,0x10,0x02,0x00, +0xd8,0xff,0x03,0x24,0x23,0x30,0x62,0x00,0x6b,0x0d,0x00,0x0c,0x21,0x20,0xc0,0x00, +0x06,0x00,0x45,0x24,0x65,0x00,0xa4,0x2c,0x64,0x00,0x03,0x24,0x0a,0x28,0x64,0x00, +0xdd,0xff,0xa2,0x24,0x08,0x00,0x42,0x2c,0xe3,0xff,0x40,0x14,0xe5,0xff,0xa2,0x24, +0x08,0x00,0x42,0x2c,0x06,0x00,0x40,0x10,0xf1,0xff,0xa2,0x24,0x9f,0x0d,0x00,0x08, +0xfa,0xff,0xa5,0x24,0xd8,0xff,0x02,0x24,0x94,0x0d,0x00,0x08,0x23,0x30,0x43,0x00, +0x0c,0x00,0x42,0x2c,0x0c,0x00,0x40,0x10,0xfb,0xff,0xa2,0x24,0x9f,0x0d,0x00,0x08, +0xf8,0xff,0xa5,0x24,0x3e,0x00,0x63,0x30,0xfe,0xff,0x02,0x24,0x94,0x0d,0x00,0x08, +0x23,0x30,0x43,0x00,0x1f,0x00,0x62,0x30,0x40,0x10,0x02,0x00,0xfe,0xff,0x03,0x24, +0xb2,0x0d,0x00,0x08,0x23,0x30,0x62,0x00,0x0a,0x00,0x42,0x2c,0xcb,0xff,0x40,0x10, +0x00,0x00,0x00,0x00,0x9f,0x0d,0x00,0x08,0xfc,0xff,0xa5,0x24,0x3e,0x00,0x63,0x30, +0xec,0xff,0x02,0x24,0x94,0x0d,0x00,0x08,0x23,0x30,0x43,0x00,0x1f,0x00,0x62,0x30, +0x40,0x10,0x02,0x00,0xec,0xff,0x03,0x24,0xb2,0x0d,0x00,0x08,0x23,0x30,0x62,0x00, +0xb3,0xff,0x80,0x14,0x1f,0x00,0x62,0x30,0x40,0x10,0x02,0x00,0x0e,0x00,0x03,0x24, +0xb2,0x0d,0x00,0x08,0x23,0x30,0x62,0x00,0xad,0xff,0x80,0x14,0x3e,0x00,0x63,0x30, +0x0e,0x00,0x02,0x24,0x94,0x0d,0x00,0x08,0x23,0x30,0x43,0x00,0xa0,0xff,0xbd,0x27, +0x5c,0x00,0xbf,0xaf,0x58,0x00,0xbe,0xaf,0x54,0x00,0xb7,0xaf,0x50,0x00,0xb6,0xaf, +0x4c,0x00,0xb5,0xaf,0x48,0x00,0xb4,0xaf,0x44,0x00,0xb3,0xaf,0x40,0x00,0xb2,0xaf, +0x3c,0x00,0xb1,0xaf,0x38,0x00,0xb0,0xaf,0x02,0x80,0x02,0x3c,0x68,0x41,0x45,0x8c, +0x00,0x80,0x04,0x3c,0xac,0x37,0x83,0x24,0x68,0x41,0x44,0x24,0x25,0xb0,0x02,0x3c, +0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0xbb,0x00,0xa4,0x10,0x02,0x80,0x02,0x3c, +0x02,0x80,0x03,0x3c,0x7c,0xaf,0x42,0x24,0x80,0xaf,0x63,0x24,0x00,0x00,0x5e,0x8c, +0x00,0x00,0x75,0x8c,0xf0,0x25,0xd6,0x8f,0x21,0x20,0x00,0x00,0x21,0xb8,0x00,0x00, +0x08,0x00,0xc2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xae,0x08,0x00,0xc3,0x96, +0x02,0x80,0x02,0x3c,0x00,0x02,0x00,0x0c,0x25,0xa0,0x62,0x00,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xe4,0x0a,0xc3,0x97, +0x8c,0x25,0xc2,0x8f,0x25,0xb0,0x04,0x3c,0xf8,0x00,0x84,0x34,0x21,0x10,0x43,0x00, +0x00,0x00,0x82,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x23,0x0e,0x00,0x08,0x00,0x00,0x00,0x00,0x0c,0x00,0xc2,0x8e,0x00,0x00,0x00,0x00, +0x2b,0x10,0xe2,0x02,0x86,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x8e, +0x21,0x98,0x80,0x02,0x42,0x1b,0x02,0x00,0x78,0x00,0x63,0x30,0x02,0x26,0x02,0x00, +0xff,0x3f,0x42,0x30,0x21,0x10,0x43,0x00,0x03,0x00,0x84,0x30,0x21,0x10,0x44,0x00, +0x18,0x00,0x42,0x24,0xff,0xff,0x52,0x30,0x7f,0x00,0x43,0x32,0x00,0x00,0xb2,0xae, +0x03,0x00,0x60,0x10,0x80,0xff,0x42,0x32,0x80,0x00,0x42,0x26,0x80,0xff,0x42,0x30, +0x00,0x00,0xa2,0xae,0x21,0x90,0x40,0x00,0x02,0x00,0x62,0x96,0x21,0x18,0xf2,0x02, +0xff,0xff,0x77,0x30,0x0f,0x00,0x42,0x30,0x00,0x00,0xa2,0xae,0x00,0x00,0x63,0x8e, +0x21,0xa0,0x92,0x02,0x42,0x13,0x03,0x00,0x78,0x00,0x42,0x30,0x02,0x1e,0x03,0x00, +0x03,0x00,0x63,0x30,0x21,0x10,0x53,0x00,0x21,0x88,0x43,0x00,0x18,0x00,0x25,0x26, +0x00,0x00,0xa5,0xae,0x01,0x00,0xa4,0x90,0x18,0x00,0x22,0x92,0x00,0x22,0x04,0x00, +0x73,0x0b,0x00,0x0c,0x25,0x20,0x82,0x00,0x40,0x18,0x02,0x00,0x21,0x18,0x62,0x00, +0x02,0x80,0x04,0x3c,0x21,0x80,0x40,0x00,0x80,0x18,0x03,0x00,0x98,0xa8,0x82,0x24, +0x21,0x18,0x62,0x00,0x08,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x09,0xf8,0x40,0x00, +0x21,0x20,0x60,0x02,0x06,0x00,0x03,0x24,0xc7,0xff,0x03,0x16,0x00,0x00,0x00,0x00, +0xe8,0x0a,0xc2,0x93,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0xc2,0xff,0x40,0x10, +0x02,0x80,0x02,0x3c,0x28,0x00,0x24,0x26,0x18,0x42,0x45,0x24,0x7b,0x46,0x00,0x0c, +0x06,0x00,0x06,0x24,0xbc,0xff,0x40,0x14,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c, +0xbc,0x44,0x64,0x8c,0x9c,0x44,0x43,0x90,0x02,0x80,0x02,0x3c,0x38,0xa9,0x45,0x8c, +0xff,0x00,0x63,0x30,0x40,0x10,0x03,0x00,0x21,0x10,0x43,0x00,0xc0,0x10,0x02,0x00, +0x21,0x10,0x43,0x00,0x23,0x20,0x85,0x00,0x80,0x10,0x02,0x00,0x2b,0x20,0x82,0x00, +0xad,0xff,0x80,0x14,0x02,0x80,0x03,0x3c,0xbc,0x44,0x62,0x8c,0x21,0x20,0x40,0x02, +0x02,0x80,0x03,0x3c,0x39,0x15,0x00,0x0c,0x38,0xa9,0x62,0xac,0x1d,0x01,0x40,0x10, +0x21,0x88,0x40,0x00,0x00,0x00,0x65,0x8e,0x08,0x00,0x50,0x94,0x04,0x00,0x64,0x8e, +0xf0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0xe0,0xff,0x03,0x24,0x24,0x28,0xa2,0x00, +0xff,0xfb,0x02,0x3c,0x24,0x20,0x83,0x00,0xff,0xff,0x42,0x34,0x02,0x80,0x03,0x3c, +0x25,0x80,0x03,0x02,0x24,0x28,0xa2,0x00,0x1e,0x00,0x84,0x34,0x04,0x00,0x64,0xae, +0x00,0x00,0x65,0xae,0x21,0x20,0x00,0x02,0x21,0x28,0x60,0x02,0x52,0x46,0x00,0x0c, +0x06,0x00,0x06,0x24,0xc8,0xff,0x46,0x26,0xcb,0xff,0x43,0x26,0x00,0x00,0xc2,0x28, +0x0b,0x30,0x62,0x00,0x18,0x00,0x04,0x26,0x83,0x30,0x06,0x00,0x52,0x46,0x00,0x0c, +0x38,0x00,0x65,0x26,0x15,0x00,0x03,0x24,0x14,0x00,0x23,0xae,0x00,0x00,0x62,0x8e, +0x21,0x20,0x20,0x02,0x42,0x1b,0x02,0x00,0x78,0x00,0x63,0x30,0x02,0x2e,0x02,0x00, +0xff,0x3f,0x42,0x30,0x21,0x10,0x43,0x00,0x03,0x00,0xa5,0x30,0x21,0x10,0x45,0x00, +0x18,0x00,0x42,0x24,0x59,0x0a,0x00,0x0c,0x0c,0x00,0x22,0xae,0x0c,0x00,0xc2,0x8e, +0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x02,0x7c,0xff,0x40,0x14,0x00,0x00,0x00,0x00, +0x00,0x60,0x10,0x40,0x01,0x00,0x01,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x04,0x00,0xc3,0x8e,0x00,0x00,0xc2,0x8e,0x21,0x20,0xc0,0x02,0x00,0x00,0x62,0xac, +0x04,0x00,0x43,0xac,0x00,0x00,0xd6,0xae,0x56,0x15,0x00,0x0c,0x04,0x00,0xd6,0xae, +0x00,0x60,0x90,0x40,0x02,0x80,0x04,0x3c,0x68,0x41,0x83,0x8c,0x68,0x41,0x82,0x24, +0x4c,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x7c,0xaf,0x42,0x24, +0x00,0x00,0x51,0x8c,0x25,0xb0,0x10,0x3c,0x04,0x01,0x02,0x36,0x00,0x00,0x43,0x8c, +0xa4,0x25,0x27,0x8e,0x00,0x00,0x00,0x00,0xc5,0x00,0xe3,0x10,0xa8,0x25,0x23,0xae, +0x2b,0x10,0x67,0x00,0xe4,0x00,0x40,0x14,0x2b,0x10,0xe3,0x00,0x0c,0x01,0x40,0x14, +0x23,0x10,0x67,0x00,0x02,0x80,0x03,0x3c,0x78,0x1b,0x64,0x24,0x78,0x25,0x83,0x94, +0x02,0x80,0x02,0x3c,0x21,0x90,0x00,0x00,0x22,0x00,0xe0,0x1a,0x25,0x88,0x62,0x00, +0x21,0xa8,0x80,0x00,0x21,0xf0,0x80,0x00,0x21,0x80,0x00,0x00,0x01,0x00,0x14,0x24, +0x21,0x98,0x11,0x02,0x04,0x00,0x62,0x8e,0x02,0x00,0x03,0x24,0x02,0x17,0x02,0x00, +0x03,0x00,0x42,0x30,0x31,0x00,0x43,0x10,0x02,0x80,0x04,0x3c,0x21,0x10,0x11,0x02, +0x00,0x00,0x43,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x60,0x10,0x01,0x00,0x42,0x26, +0x04,0x00,0x62,0x8e,0x00,0xf0,0x03,0x3c,0x00,0x20,0x04,0x3c,0x24,0x10,0x43,0x00, +0x10,0x00,0x44,0x10,0x00,0x00,0x00,0x00,0x06,0x00,0x42,0x26,0x00,0x00,0x65,0x8e, +0xff,0xff,0x52,0x30,0x82,0x16,0x05,0x00,0x01,0x00,0x42,0x30,0x4a,0x00,0x54,0x10, +0x02,0x80,0x03,0x3c,0x80,0x80,0x12,0x00,0x2a,0x10,0x17,0x02,0xe4,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0x56,0x15,0x00,0x0c,0x21,0x20,0xc0,0x02,0x8e,0x0f,0x00,0x08, +0x02,0x80,0x02,0x3c,0xc8,0x0c,0xa2,0x8e,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24, +0xc8,0x0c,0xa2,0xae,0x0c,0x00,0x64,0x8e,0x0c,0x00,0x02,0x24,0x3f,0x00,0x83,0x30, +0xa6,0x00,0x62,0x10,0x21,0x28,0xa0,0x02,0x3f,0x00,0x83,0x30,0x0d,0x00,0x02,0x24, +0x9b,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x3f,0x00,0x83,0x30,0x0e,0x00,0x02,0x24, +0xe2,0xff,0x62,0x14,0x06,0x00,0x42,0x26,0xd4,0x0c,0xa2,0x8e,0x00,0x00,0x00,0x00, +0x01,0x00,0x42,0x24,0xe6,0x0e,0x00,0x08,0xd4,0x0c,0xa2,0xae,0x98,0x44,0x82,0x90, +0x00,0x00,0x00,0x00,0xce,0xff,0x40,0x10,0x21,0x10,0x11,0x02,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x98,0x44,0x82,0x90, +0x02,0x80,0x03,0x3c,0xe4,0xae,0x65,0x24,0xff,0x00,0x42,0x30,0x80,0x10,0x02,0x00, +0x21,0x10,0x45,0x00,0x00,0x00,0x43,0x8c,0x00,0x00,0x64,0x8e,0x04,0x00,0x65,0x8e, +0x09,0xf8,0x60,0x00,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0x9a,0x44,0x82,0x90, +0x0c,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x10,0x02,0x80,0x03,0x3c, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xdc,0x0e,0x00,0x08, +0x21,0x10,0x11,0x02,0xb1,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0xf8,0xff,0x40,0x10, +0x02,0x80,0x04,0x3c,0xb7,0x44,0x82,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24, +0xb7,0x44,0x82,0xa0,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0xdc,0x0e,0x00,0x08,0x21,0x10,0x11,0x02,0x78,0x1b,0x62,0x8c,0x00,0x00,0x00,0x00, +0x02,0x11,0x02,0x00,0x03,0x00,0x42,0x30,0x05,0x00,0x54,0x10,0xc2,0x13,0x05,0x00, +0x1e,0x00,0x42,0x30,0x21,0x10,0x52,0x00,0xed,0x0e,0x00,0x08,0xff,0xff,0x52,0x30, +0x01,0x00,0xc2,0x93,0x00,0x00,0x00,0x00,0x1c,0x00,0x40,0x14,0x02,0x80,0x04,0x3c, +0x04,0x00,0x64,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x04,0x00,0x0f,0x00,0x45,0x30, +0x08,0x00,0xa3,0x28,0x14,0x00,0x60,0x10,0x02,0x17,0x04,0x00,0x03,0x00,0x43,0x30, +0x08,0x00,0x60,0x10,0x00,0xc0,0x02,0x3c,0x24,0x10,0x82,0x00,0x0e,0x00,0x40,0x14, +0x03,0x00,0x02,0x24,0x0d,0x00,0x62,0x10,0x02,0x80,0x04,0x3c,0x0c,0x00,0x60,0x10, +0x78,0x1b,0x82,0x24,0x21,0x10,0xbe,0x00,0xf0,0x04,0x50,0x90,0x80,0x28,0x12,0x00, +0x21,0x28,0xb1,0x00,0x75,0x0d,0x00,0x0c,0x21,0x20,0x60,0x02,0x21,0x20,0x40,0x00, +0x1f,0x0d,0x00,0x0c,0x21,0x28,0x00,0x02,0x02,0x80,0x04,0x3c,0x78,0x1b,0x82,0x24, +0x01,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x89,0x00,0x74,0x10,0x00,0x00,0x00,0x00, +0x02,0x80,0x04,0x3c,0x78,0x1b,0x84,0x24,0x01,0x00,0x83,0x90,0x02,0x00,0x02,0x24, +0x08,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x8e,0x00,0x00,0x00,0x00, +0xc2,0x13,0x05,0x00,0x1e,0x00,0x42,0x30,0x21,0x10,0x52,0x00,0xed,0x0e,0x00,0x08, +0xff,0xff,0x52,0x30,0x04,0x00,0x64,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x04,0x00, +0x0f,0x00,0x45,0x30,0x08,0x00,0xa3,0x28,0xf3,0xff,0x60,0x10,0x02,0x17,0x04,0x00, +0x03,0x00,0x42,0x30,0xf0,0xff,0x40,0x14,0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24, +0x21,0x10,0xa3,0x00,0xf0,0x04,0x50,0x90,0x80,0x28,0x12,0x00,0x21,0x28,0xb1,0x00, +0x75,0x0d,0x00,0x0c,0x21,0x20,0x60,0x02,0x21,0x20,0x40,0x00,0x1f,0x0d,0x00,0x0c, +0x21,0x28,0x00,0x02,0x00,0x00,0x65,0x8e,0x6d,0x0f,0x00,0x08,0xc2,0x13,0x05,0x00, +0x02,0x80,0x04,0x3c,0x00,0x01,0x02,0x36,0x78,0x1b,0x84,0x24,0x00,0x00,0x47,0xac, +0xa4,0x25,0x87,0xac,0x02,0x80,0x02,0x3c,0x08,0x04,0x44,0x24,0x21,0x28,0x00,0x00, +0x21,0x30,0x00,0x00,0x2d,0x28,0x00,0x0c,0x21,0x38,0x00,0x00,0xf7,0x0d,0x00,0x08, +0x02,0x80,0x02,0x3c,0x99,0x99,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x96,0x99,0x63,0x34, +0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x1e,0x0e,0x00,0x08,0x00,0x00,0x00,0x00, +0xd0,0x0c,0xa2,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xd0,0x0c,0xa2,0xac, +0x0c,0x00,0x64,0x8e,0x03,0x0f,0x00,0x08,0x3f,0x00,0x83,0x30,0xcc,0x0c,0xa2,0x8e, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xcc,0x0c,0xa2,0xae,0x0c,0x00,0x64,0x8e, +0xff,0x0e,0x00,0x08,0x3f,0x00,0x83,0x30,0xac,0x25,0x22,0x8e,0xff,0xff,0x73,0x30, +0x23,0x10,0x47,0x00,0xff,0xff,0x52,0x30,0x21,0x18,0x53,0x02,0xff,0xff,0x77,0x30, +0x39,0x15,0x00,0x0c,0x21,0x20,0xe0,0x02,0xda,0xff,0x40,0x10,0x21,0xb0,0x40,0x00, +0x08,0x00,0x42,0x8c,0xa4,0x25,0x26,0x8e,0x21,0x38,0x40,0x02,0x21,0x18,0x57,0x00, +0x74,0x25,0x23,0xae,0x21,0x28,0x40,0x00,0x08,0x00,0x04,0x24,0x78,0x25,0x22,0xae, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x00,0x02,0x00,0x0c,0x08,0x00,0x04,0x24, +0x78,0x25,0x25,0x8e,0x24,0x10,0x02,0x3c,0x00,0x01,0x10,0x36,0x00,0x00,0x02,0xae, +0x21,0x38,0x60,0x02,0x21,0x28,0xb2,0x00,0x08,0x00,0x04,0x24,0x24,0x10,0x06,0x3c, +0xa4,0x25,0x22,0xae,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0xa8,0x25,0x23,0x8e, +0x08,0x00,0x04,0x24,0x00,0x02,0x00,0x0c,0xa4,0x25,0x23,0xae,0xa4,0x25,0x22,0x8e, +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xae,0xca,0x0e,0x00,0x08,0x02,0x80,0x03,0x3c, +0xff,0xff,0x57,0x30,0x39,0x15,0x00,0x0c,0x21,0x20,0xe0,0x02,0x42,0x00,0x40,0x10, +0x21,0xb0,0x40,0x00,0x08,0x00,0x42,0x8c,0xa4,0x25,0x26,0x8e,0x08,0x00,0x04,0x24, +0x21,0x18,0x57,0x00,0x74,0x25,0x23,0xae,0x21,0x28,0x40,0x00,0x21,0x38,0xe0,0x02, +0x78,0x25,0x22,0xae,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0xa8,0x25,0x23,0x8e, +0x08,0x00,0x04,0x24,0x00,0x02,0x00,0x0c,0xa4,0x25,0x23,0xae,0xa4,0x25,0x23,0x8e, +0x00,0x01,0x02,0x36,0x00,0x00,0x43,0xac,0xca,0x0e,0x00,0x08,0x02,0x80,0x03,0x3c, +0x04,0x00,0x64,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x04,0x00,0x0f,0x00,0x42,0x30, +0x08,0x00,0x42,0x28,0x06,0x00,0x40,0x10,0x00,0xc0,0x02,0x3c,0x02,0x17,0x04,0x00, +0x03,0x00,0x42,0x30,0x0b,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,0x00,0xc0,0x02,0x3c, +0x24,0x10,0x82,0x00,0x6a,0xff,0x40,0x14,0x02,0x17,0x04,0x00,0x03,0x00,0x42,0x30, +0x03,0x00,0x03,0x24,0x66,0xff,0x43,0x10,0x00,0x00,0x00,0x00,0x64,0xff,0x40,0x10, +0x02,0x80,0x03,0x3c,0x78,0x1b,0x62,0x8c,0x00,0x00,0x00,0x00,0x42,0x10,0x02,0x00, +0x01,0x00,0x42,0x30,0x06,0x00,0x54,0x14,0x21,0x80,0x00,0x00,0x02,0x14,0x04,0x00, +0x0f,0x00,0x42,0x30,0x78,0x1b,0x63,0x24,0x21,0x10,0x43,0x00,0xf0,0x04,0x50,0x90, +0x80,0x28,0x12,0x00,0x21,0x28,0xb1,0x00,0xec,0xff,0xa2,0x8c,0x25,0xb0,0x03,0x3c, +0xd4,0x02,0x63,0x34,0x21,0x20,0x60,0x02,0x00,0x00,0x62,0xac,0x75,0x0d,0x00,0x0c, +0x00,0x00,0x00,0x00,0x21,0x20,0x40,0x00,0x1f,0x0d,0x00,0x0c,0x21,0x28,0x00,0x02, +0x65,0x0f,0x00,0x08,0x02,0x80,0x04,0x3c,0xa8,0x25,0x23,0x8e,0x00,0x01,0x02,0x36, +0x00,0x00,0x43,0xac,0x8d,0x0f,0x00,0x08,0xa4,0x25,0x23,0xae,0xe0,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x0c,0x00,0x82,0x8c, +0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,0x29,0x00,0x40,0x14, +0x21,0x80,0xa0,0x00,0x00,0x00,0xa4,0x8c,0x02,0x80,0x11,0x3c,0x3f,0x00,0x84,0x30, +0x40,0x20,0x04,0x00,0x6b,0x0d,0x00,0x0c,0x96,0xff,0x84,0x24,0x78,0x1b,0x25,0x26, +0xfc,0x23,0xa4,0x8c,0x21,0x18,0x40,0x00,0xff,0xff,0x02,0x34,0x3c,0x00,0x82,0x10, +0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,0x27,0x00,0x40,0x10,0x21,0x10,0x83,0x00, +0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00,0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24, +0xfc,0x23,0xa4,0xac,0x00,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00, +0x7e,0x00,0x84,0x30,0x6b,0x0d,0x00,0x0c,0x96,0xff,0x84,0x24,0x78,0x1b,0x25,0x26, +0x00,0x24,0xa4,0x8c,0x21,0x18,0x40,0x00,0xff,0xff,0x02,0x34,0x25,0x00,0x82,0x10, +0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,0x0b,0x00,0x40,0x10,0x21,0x10,0x83,0x00, +0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00,0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24, +0x00,0x24,0xa4,0xac,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x02,0x19,0x04,0x00,0x23,0x10,0x43,0x00,0x20,0x00,0xbd,0x27, +0x08,0x00,0xe0,0x03,0x00,0x24,0xa2,0xac,0x02,0x19,0x04,0x00,0x23,0x10,0x43,0x00, +0xfc,0x23,0xa2,0xac,0x00,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00, +0x7e,0x00,0x84,0x30,0x6b,0x0d,0x00,0x0c,0x96,0xff,0x84,0x24,0x78,0x1b,0x25,0x26, +0x00,0x24,0xa4,0x8c,0x21,0x18,0x40,0x00,0xff,0xff,0x02,0x34,0xde,0xff,0x82,0x14, +0x2b,0x10,0x83,0x00,0x00,0x21,0x03,0x00,0x49,0x10,0x00,0x08,0x00,0x24,0xa4,0xac, +0x00,0x21,0x03,0x00,0x35,0x10,0x00,0x08,0xfc,0x23,0xa4,0xac,0xb8,0xff,0xbd,0x27, +0x25,0xb0,0x03,0x3c,0x44,0x00,0xbf,0xaf,0x40,0x00,0xbe,0xaf,0x3c,0x00,0xb7,0xaf, +0x38,0x00,0xb6,0xaf,0x34,0x00,0xb5,0xaf,0x30,0x00,0xb4,0xaf,0x2c,0x00,0xb3,0xaf, +0x28,0x00,0xb2,0xaf,0x24,0x00,0xb1,0xaf,0x20,0x00,0xb0,0xaf,0x44,0x00,0x63,0x34, +0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00, +0x0e,0x00,0x40,0x04,0x18,0x00,0xa0,0xaf,0x21,0x20,0x60,0x00,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0xff,0x42,0x30,0x64,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x02,0x00, +0x03,0x16,0x02,0x00,0xf6,0xff,0x41,0x04,0x21,0x10,0x00,0x00,0x02,0x80,0x02,0x3c, +0x78,0x41,0x43,0x8c,0x00,0x80,0x06,0x3c,0xcc,0x41,0xc2,0x24,0x25,0xb0,0x05,0x3c, +0x02,0x80,0x06,0x3c,0x18,0x03,0xa4,0x34,0x78,0x41,0xd1,0x24,0x00,0x00,0x82,0xac, +0x5d,0x00,0x71,0x10,0x01,0x00,0x15,0x24,0x2a,0xb0,0x02,0x3c,0x02,0x80,0x03,0x3c, +0x06,0x00,0x56,0x34,0x78,0x1b,0x74,0x24,0xb0,0x03,0xb7,0x34,0x21,0xf0,0x80,0x00, +0x05,0x00,0x53,0x34,0x01,0x00,0x12,0x24,0x1b,0x00,0xa0,0x12,0x02,0x80,0x03,0x3c, +0x98,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x17,0x00,0x40,0x10,0x21,0xa8,0x00,0x00, +0x01,0x00,0x06,0x24,0x18,0x00,0xa6,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90, +0x00,0x00,0x00,0x00,0x0f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,0x57,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x02,0x80,0x06,0x3c,0x56,0x43,0xc2,0x90,0x00,0x00,0x00,0x00, +0x02,0x00,0x42,0x30,0x4d,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x00,0xc2,0x96,0x00,0x26,0x90,0x8e, +0x00,0xff,0x42,0x30,0x00,0x00,0xf0,0xae,0x0d,0x00,0x40,0x18,0x02,0x80,0x02,0x3c, +0x84,0xaf,0x42,0x24,0x21,0x28,0xc0,0x03,0x00,0x00,0x44,0x8c,0x02,0x80,0x06,0x3c, +0x88,0xaf,0xc6,0x24,0x00,0x00,0xc3,0x8c,0x00,0x00,0xa4,0xac,0x00,0x00,0x62,0x94, +0x00,0x00,0x00,0x00,0x00,0xff,0x42,0x30,0xfb,0xff,0x40,0x1c,0x00,0x00,0x00,0x00, +0x0c,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x07,0x00,0x62,0x30,0x48,0x00,0x40,0x14, +0x08,0x00,0x62,0x24,0xc2,0x10,0x03,0x00,0x08,0x00,0x05,0x8e,0xcc,0x24,0x86,0x8e, +0xc0,0x10,0x02,0x00,0x20,0x00,0x42,0x24,0xff,0xff,0x47,0x30,0x01,0x00,0x04,0x24, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xb2,0xaf,0x00,0x02,0x00,0x0c,0x01,0x00,0x04,0x24, +0x02,0x00,0x02,0x24,0x00,0x00,0x72,0xa2,0x00,0x00,0x62,0xa2,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x04,0x00,0x03,0x8e, +0x00,0x00,0x02,0x8e,0x21,0x20,0x00,0x02,0x00,0x00,0x62,0xac,0x04,0x00,0x43,0xac, +0x00,0x00,0x10,0xae,0x56,0x15,0x00,0x0c,0x04,0x00,0x10,0xae,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x00,0x22,0x8e,0x00,0x00,0x00,0x00, +0xad,0xff,0x51,0x14,0x00,0x00,0x00,0x00,0x18,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00, +0x07,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x98,0x44,0x62,0x90, +0x00,0x00,0x00,0x00,0x11,0x00,0x40,0x14,0x18,0x00,0xa0,0xaf,0x02,0x80,0x02,0x3c, +0x08,0x08,0x44,0x24,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,0x2d,0x28,0x00,0x0c, +0x21,0x38,0x00,0x00,0x94,0x10,0x00,0x08,0x02,0x80,0x02,0x3c,0x55,0x1f,0x00,0x0c, +0x01,0x00,0x04,0x24,0xbf,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0xf9,0x1f,0x00,0x0c, +0x04,0x00,0x04,0x24,0xba,0x10,0x00,0x08,0x02,0x80,0x06,0x3c,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x06,0x3c, +0x99,0x44,0xc4,0x90,0xf9,0x1f,0x00,0x0c,0xff,0x00,0x84,0x30,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x04,0x11,0x00,0x08,0x02,0x80,0x02,0x3c, +0xda,0x10,0x00,0x08,0xc2,0x10,0x02,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00, +0x08,0x00,0xe0,0x03,0x08,0x00,0x82,0x24,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf, +0x24,0x11,0x00,0x0c,0x74,0x00,0x84,0x24,0x21,0x28,0x40,0x00,0x10,0x00,0xa4,0x27, +0x46,0x46,0x00,0x0c,0x02,0x00,0x06,0x24,0x10,0x00,0xa2,0x97,0x18,0x00,0xbf,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27, +0x18,0x00,0xbf,0xaf,0x24,0x11,0x00,0x0c,0x10,0x00,0xa5,0xa7,0x21,0x20,0x40,0x00, +0x10,0x00,0xa5,0x27,0x46,0x46,0x00,0x0c,0x02,0x00,0x06,0x24,0x18,0x00,0xbf,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03, +0x0a,0x00,0x82,0x24,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf,0x3f,0x11,0x00,0x0c, +0x74,0x00,0x84,0x24,0x21,0x28,0x40,0x00,0x10,0x00,0xa4,0x27,0x46,0x46,0x00,0x0c, +0x02,0x00,0x06,0x24,0x10,0x00,0xa2,0x97,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf, +0x21,0x80,0x80,0x00,0x00,0x00,0x05,0xa2,0x01,0x00,0x06,0xa2,0x18,0x00,0xb2,0xaf, +0x14,0x00,0xb1,0xaf,0x1c,0x00,0xbf,0xaf,0x21,0x88,0xc0,0x00,0x02,0x00,0x84,0x24, +0x30,0x00,0xb2,0x8f,0x0d,0x00,0xc0,0x14,0x21,0x28,0xe0,0x00,0x00,0x00,0x43,0x8e, +0x21,0x10,0x11,0x02,0x1c,0x00,0xbf,0x8f,0x21,0x18,0x71,0x00,0x02,0x00,0x63,0x24, +0x00,0x00,0x43,0xae,0x14,0x00,0xb1,0x8f,0x18,0x00,0xb2,0x8f,0x10,0x00,0xb0,0x8f, +0x02,0x00,0x42,0x24,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x46,0x46,0x00,0x0c, +0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x8e,0x21,0x10,0x11,0x02,0x1c,0x00,0xbf,0x8f, +0x21,0x18,0x71,0x00,0x02,0x00,0x63,0x24,0x00,0x00,0x43,0xae,0x14,0x00,0xb1,0x8f, +0x18,0x00,0xb2,0x8f,0x10,0x00,0xb0,0x8f,0x02,0x00,0x42,0x24,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x21,0x80,0xa0,0x00, +0x18,0x00,0xb2,0xaf,0x21,0x28,0xc0,0x00,0x21,0x90,0xe0,0x00,0x21,0x30,0x00,0x02, +0x1c,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x46,0x46,0x00,0x0c,0x21,0x88,0x80,0x00, +0x00,0x00,0x43,0x8e,0x21,0x10,0x30,0x02,0x1c,0x00,0xbf,0x8f,0x21,0x18,0x70,0x00, +0x00,0x00,0x43,0xae,0x14,0x00,0xb1,0x8f,0x18,0x00,0xb2,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x10,0x00,0xe0,0x18,0x21,0x18,0x00,0x00, +0x00,0x00,0xc0,0xac,0x21,0x40,0x00,0x00,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00, +0x0c,0x00,0x45,0x10,0x21,0x18,0x80,0x00,0x01,0x00,0x82,0x90,0x00,0x00,0x00,0x00, +0x21,0x18,0x48,0x00,0x02,0x00,0x68,0x24,0x21,0x10,0x82,0x00,0x2b,0x18,0x07,0x01, +0xf5,0xff,0x60,0x14,0x02,0x00,0x44,0x24,0x21,0x18,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x01,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0xc2,0xac, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x7f,0x00,0x84,0x30,0x0c,0x00,0x82,0x2c, +0x0a,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00, +0x8c,0xaf,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00, +0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x6c,0x00,0x03,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x60,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x48,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x30,0x00,0x03,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x24,0x00,0x03,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x18,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x12,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x0c,0x00,0x03,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x16,0x00,0x03,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x0b,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x04,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x02,0x00,0x03,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xc8,0xff,0xbd,0x27,0x24,0x00,0xb5,0xaf, +0x02,0x80,0x15,0x3c,0x2c,0x00,0xb7,0xaf,0x28,0x00,0xb6,0xaf,0x20,0x00,0xb4,0xaf, +0x1c,0x00,0xb3,0xaf,0x30,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf, +0x10,0x00,0xb0,0xaf,0x21,0xb8,0x80,0x00,0x21,0xa0,0x00,0x00,0x21,0x98,0x00,0x00, +0x78,0x1b,0xb6,0x26,0x78,0x1b,0xa2,0x26,0x21,0x10,0x62,0x02,0x44,0x0b,0x51,0x90, +0xfe,0x00,0x03,0x24,0x1e,0x00,0x23,0x12,0xff,0x00,0x02,0x24,0x21,0x00,0x22,0x12, +0x21,0x10,0x80,0x02,0xa2,0x11,0x00,0x0c,0x21,0x20,0x20,0x02,0x21,0x88,0x40,0x00, +0x21,0x80,0x00,0x00,0x21,0x90,0xc0,0x02,0x21,0x10,0x12,0x02,0x26,0x0b,0x44,0x90, +0x00,0x00,0x00,0x00,0x02,0x00,0x82,0x24,0xff,0x00,0x42,0x30,0x02,0x00,0x42,0x2c, +0x05,0x00,0x40,0x14,0x01,0x00,0x10,0x26,0xa2,0x11,0x00,0x0c,0x00,0x00,0x00,0x00, +0x05,0x00,0x51,0x10,0x01,0x00,0x03,0x24,0x1e,0x00,0x02,0x2a,0xf3,0xff,0x40,0x14, +0x21,0x10,0x12,0x02,0x21,0x18,0x00,0x00,0x01,0x00,0x02,0x24,0x14,0x00,0x62,0x10, +0xff,0x00,0x22,0x32,0x21,0x10,0xf4,0x02,0x00,0x00,0x51,0xa0,0x01,0x00,0x94,0x26, +0x01,0x00,0x73,0x26,0x1e,0x00,0x62,0x2a,0xdb,0xff,0x40,0x14,0x78,0x1b,0xa2,0x26, +0x21,0x10,0x80,0x02,0x30,0x00,0xbf,0x8f,0x2c,0x00,0xb7,0x8f,0x28,0x00,0xb6,0x8f, +0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27, +0x01,0x12,0x00,0x08,0x80,0x00,0x51,0x34,0xb8,0xff,0xbd,0x27,0x3c,0x00,0xb3,0xaf, +0x38,0x00,0xb2,0xaf,0x30,0x00,0xb0,0xaf,0x21,0x90,0xc0,0x00,0x21,0x98,0xa0,0x00, +0x1e,0x00,0x06,0x24,0x21,0x28,0x00,0x00,0x21,0x80,0x80,0x00,0x10,0x00,0xa4,0x27, +0x40,0x00,0xbf,0xaf,0x35,0x46,0x00,0x0c,0x34,0x00,0xb1,0xaf,0x10,0x00,0xa4,0x27, +0xd2,0x11,0x00,0x0c,0x00,0x00,0x40,0xae,0x21,0x88,0x40,0x00,0x09,0x00,0x43,0x28, +0x21,0x38,0x40,0x00,0x08,0x00,0x02,0x24,0x0a,0x88,0x43,0x00,0x01,0x00,0x02,0x24, +0x21,0x20,0x60,0x02,0x10,0x00,0xa5,0x27,0x0e,0x00,0x02,0x12,0x21,0x30,0x20,0x02, +0x05,0x00,0x60,0x14,0xf8,0xff,0xf1,0x24,0x21,0x20,0x60,0x02,0x18,0x00,0xa5,0x27, +0x08,0x00,0x20,0x16,0x21,0x30,0x20,0x02,0x40,0x00,0xbf,0x8f,0x3c,0x00,0xb3,0x8f, +0x38,0x00,0xb2,0x8f,0x34,0x00,0xb1,0x8f,0x30,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x48,0x00,0xbd,0x27,0x46,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0xae, +0x40,0x00,0xbf,0x8f,0x3c,0x00,0xb3,0x8f,0x38,0x00,0xb2,0x8f,0x34,0x00,0xb1,0x8f, +0x30,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0x94, +0x21,0x30,0x80,0x00,0x10,0x00,0x85,0x24,0x42,0x1a,0x02,0x00,0xc2,0x11,0x02,0x00, +0x02,0x00,0x42,0x30,0x01,0x00,0x63,0x30,0x25,0x18,0x43,0x00,0x01,0x00,0x04,0x24, +0x07,0x00,0x64,0x10,0x00,0x00,0x00,0x00,0x05,0x00,0x60,0x10,0x0a,0x00,0xc5,0x24, +0x02,0x00,0x02,0x24,0x02,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x18,0x00,0xc5,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0xa0,0x00,0x00,0x00,0x82,0x94,0x21,0x30,0x80,0x00, +0x04,0x00,0x85,0x24,0x42,0x1a,0x02,0x00,0xc2,0x11,0x02,0x00,0x02,0x00,0x42,0x30, +0x01,0x00,0x63,0x30,0x25,0x18,0x43,0x00,0x01,0x00,0x04,0x24,0x04,0x00,0x64,0x10, +0x00,0x00,0x00,0x00,0x02,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0x10,0x00,0xc5,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0xa0,0x00,0x13,0x00,0xa0,0x18,0x21,0x30,0x00,0x00, +0x02,0x00,0x07,0x24,0x04,0x00,0x08,0x24,0x0b,0x00,0x09,0x24,0x16,0x00,0x0a,0x24, +0x21,0x10,0x86,0x00,0x00,0x00,0x43,0x90,0x01,0x00,0xc6,0x24,0x7f,0x00,0x63,0x30, +0x07,0x00,0x67,0x10,0x2a,0x10,0xc5,0x00,0x05,0x00,0x68,0x10,0x00,0x00,0x00,0x00, +0x03,0x00,0x69,0x10,0x00,0x00,0x00,0x00,0x05,0x00,0x6a,0x14,0x00,0x00,0x00,0x00, +0xf3,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf, +0x6a,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f,0x01,0x00,0x44,0x38, +0x03,0x00,0x03,0x24,0x01,0x00,0x02,0x24,0x0b,0x10,0x64,0x00,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x60,0x02,0x40, +0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c, +0xfc,0xa9,0x64,0xac,0x00,0x60,0x82,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x02,0x80,0x02,0x3c,0xfc,0xa9,0x45,0x8c,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x18,0x03,0x42,0x34,0x70,0x4a,0x63,0x24,0x00,0x00,0x43,0xac,0x04,0x00,0x02,0x24, +0x1e,0x00,0xa2,0x10,0x05,0x00,0xa2,0x2c,0x10,0x00,0x40,0x10,0x05,0x00,0x02,0x24, +0x03,0x00,0x02,0x24,0x08,0x00,0xa2,0x10,0x00,0x19,0x04,0x00,0x80,0x10,0x04,0x00, +0x21,0x10,0x44,0x00,0xc0,0x10,0x02,0x00,0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00, +0x21,0x10,0x44,0x00,0x40,0x19,0x02,0x00,0xff,0xff,0x63,0x24,0xfe,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xf3,0xff,0xa2,0x10, +0x06,0x00,0x02,0x24,0xf2,0xff,0xa2,0x14,0x80,0x10,0x04,0x00,0x40,0x11,0x04,0x00, +0x23,0x10,0x44,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x00,0x19,0x02,0x00, +0x23,0x18,0x62,0x00,0xb2,0x12,0x00,0x08,0x00,0x19,0x03,0x00,0x80,0x10,0x04,0x00, +0x21,0x10,0x44,0x00,0xc0,0x10,0x02,0x00,0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00, +0x21,0x10,0x44,0x00,0xb2,0x12,0x00,0x08,0x00,0x19,0x02,0x00,0x02,0x80,0x02,0x3c, +0xfc,0xa9,0x45,0x8c,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34, +0x2c,0x4b,0x63,0x24,0x00,0x00,0x43,0xac,0x05,0x00,0x02,0x24,0x06,0x00,0xa2,0x10, +0x06,0x00,0xa2,0x2c,0x0c,0x00,0x40,0x10,0x06,0x00,0x02,0x24,0x04,0x00,0x02,0x24, +0x0e,0x00,0xa2,0x10,0x80,0x10,0x04,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00, +0x80,0x10,0x02,0x00,0xff,0xff,0x42,0x24,0xfe,0xff,0x40,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xf7,0xff,0xa2,0x14,0x00,0x11,0x04,0x00, +0x23,0x10,0x44,0x00,0xdd,0x12,0x00,0x08,0x40,0x10,0x02,0x00,0x21,0x10,0x44,0x00, +0xdd,0x12,0x00,0x08,0x40,0x10,0x02,0x00,0xff,0xff,0x85,0x30,0x21,0x30,0x00,0x00, +0x25,0xb0,0x03,0x3c,0x2a,0xb0,0x04,0x3c,0xb4,0x00,0x63,0x34,0x01,0x00,0xa2,0x24, +0x31,0x00,0x84,0x34,0x00,0x00,0x65,0xa0,0x00,0x00,0x85,0xa0,0xff,0xff,0x45,0x30, +0x12,0x00,0xa0,0x10,0x01,0x00,0x03,0x24,0x28,0xb0,0x07,0x3c,0xff,0x12,0x00,0x08, +0xff,0xff,0x08,0x24,0x00,0x00,0x83,0xa0,0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30, +0x2b,0x10,0xa3,0x00,0x09,0x00,0x40,0x14,0x08,0x00,0xc6,0x24,0xf9,0xff,0x65,0x14, +0x21,0x20,0xc7,0x00,0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30,0x2b,0x10,0xa3,0x00, +0x00,0x00,0x88,0xa0,0xf9,0xff,0x40,0x10,0x08,0x00,0xc6,0x24,0x00,0x01,0xa2,0x2c, +0x13,0x00,0x40,0x10,0x21,0x18,0xa0,0x00,0xff,0x00,0x08,0x24,0x28,0xb0,0x07,0x3c, +0x13,0x13,0x00,0x08,0xff,0xff,0x09,0x24,0xff,0xff,0x43,0x30,0x00,0x00,0xa2,0xa0, +0x00,0x01,0x62,0x2c,0x0a,0x00,0x40,0x10,0x08,0x00,0xc6,0x24,0x01,0x00,0x62,0x24, +0xf9,0xff,0x68,0x14,0x21,0x28,0xc7,0x00,0x00,0x01,0x02,0x24,0xff,0xff,0x43,0x30, +0x00,0x01,0x62,0x2c,0x00,0x00,0xa9,0xa0,0xf8,0xff,0x40,0x14,0x08,0x00,0xc6,0x24, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd0,0xff,0xbd,0x27,0x28,0x00,0xbf,0xaf, +0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x12,0x40,0x01,0x00,0x41,0x36, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x42,0x00,0x15,0x36, +0xff,0xff,0x02,0x24,0x00,0x00,0xa2,0xa2,0xd8,0x00,0x05,0x36,0x40,0x00,0x11,0x36, +0xa8,0x00,0x14,0x36,0xa0,0x00,0x13,0x36,0x00,0x10,0x03,0x24,0xa4,0x00,0x10,0x36, +0x00,0x80,0x02,0x3c,0x00,0x00,0x23,0xa6,0x00,0x00,0xa0,0xa0,0x00,0x00,0x60,0xae, +0x00,0x00,0x00,0xae,0x00,0x00,0x82,0xae,0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24, +0xfd,0x00,0x04,0x24,0x25,0x18,0x62,0x00,0xfc,0x17,0x02,0x24,0x00,0x00,0xa3,0xa0, +0x00,0x00,0x22,0xa6,0xea,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c, +0x78,0x1b,0x42,0x24,0x74,0x0b,0x45,0x8c,0x6c,0x0b,0x43,0x8c,0x70,0x0b,0x44,0x8c, +0xfc,0x37,0x02,0x24,0x00,0x00,0x63,0xae,0x00,0x00,0x04,0xae,0x00,0x00,0x85,0xae, +0x00,0x00,0x22,0xa6,0x00,0x00,0xa0,0xa2,0x00,0x60,0x92,0x40,0x28,0x00,0xbf,0x8f, +0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27, +0xc8,0xff,0xbd,0x27,0x34,0x00,0xbf,0xaf,0x30,0x00,0xbe,0xaf,0x2c,0x00,0xb7,0xaf, +0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf, +0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x16,0x40, +0x01,0x00,0xc1,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x11,0x3c, +0x40,0x00,0x30,0x36,0xff,0xff,0x02,0x24,0x42,0x00,0x3e,0x36,0xfc,0x77,0x13,0x24, +0x00,0x00,0xc2,0xa3,0xfc,0x57,0x12,0x24,0x00,0x00,0x13,0xa6,0xcb,0x12,0x00,0x0c, +0x32,0x00,0x04,0x24,0xfc,0x37,0x17,0x24,0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6, +0xcb,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x24,0x00,0x00,0x17,0xa6, +0xcb,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0xa6,0xcb,0x12,0x00,0x0c, +0x32,0x00,0x04,0x24,0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6,0xcb,0x12,0x00,0x0c, +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x96,0x24,0xfa,0x03,0x24,0xd8,0x00,0x25,0x36, +0x24,0x10,0x43,0x00,0x00,0x00,0x02,0xa6,0x00,0x00,0xa3,0x90,0xa0,0x00,0x34,0x36, +0xa4,0x00,0x35,0x36,0xa8,0x00,0x33,0x36,0x7f,0x00,0x63,0x30,0x00,0x80,0x02,0x3c, +0x00,0x00,0xa3,0xa0,0x00,0x00,0x80,0xae,0x00,0x00,0xa0,0xae,0x00,0x00,0x62,0xae, +0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24,0xfd,0x00,0x04,0x24,0x25,0x18,0x62,0x00, +0x00,0x00,0xa3,0xa0,0x00,0x00,0x12,0xa6,0xea,0x12,0x00,0x0c,0x56,0x01,0x31,0x36, +0x02,0x80,0x02,0x3c,0x78,0x1b,0x42,0x24,0x74,0x0b,0x45,0x8c,0x6c,0x0b,0x43,0x8c, +0x70,0x0b,0x44,0x8c,0xff,0x0f,0x02,0x24,0x00,0x00,0x83,0xae,0x00,0x00,0xa4,0xae, +0x00,0x00,0x65,0xae,0x00,0x00,0x17,0xa6,0x00,0x00,0x22,0xa6,0x00,0x00,0xc0,0xa3, +0x00,0x60,0x96,0x40,0x34,0x00,0xbf,0x8f,0x30,0x00,0xbe,0x8f,0x2c,0x00,0xb7,0x8f, +0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x38,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf, +0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x40,0x00,0x05,0x36, +0x00,0x00,0xa2,0x94,0xaf,0xff,0x03,0x24,0xa8,0x00,0x13,0x36,0x24,0x10,0x43,0x00, +0x00,0x00,0xa2,0xa4,0xa0,0x00,0x12,0x36,0xa4,0x00,0x10,0x36,0x00,0x00,0x55,0x8e, +0x00,0x00,0x16,0x8e,0x00,0x00,0x71,0x8e,0x00,0x80,0x14,0x3c,0xfc,0x37,0x02,0x24, +0x00,0x00,0x40,0xae,0xfd,0x00,0x04,0x24,0x00,0x00,0x00,0xae,0x21,0x88,0x34,0x02, +0x00,0x00,0x74,0xae,0x00,0x00,0xa2,0xa4,0xea,0x12,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x00,0x55,0xae,0x00,0x00,0x16,0xae,0x00,0x00,0x71,0xae,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f, +0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x25,0xb0,0x04,0x3c,0x40,0x00,0x84,0x34,0x00,0x00,0x82,0x94,0xd8,0xfd,0x03,0x24, +0x24,0x10,0x43,0x00,0xfc,0x37,0x03,0x24,0x00,0x00,0x82,0xa4,0x00,0x00,0x83,0xa4, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xc8,0xff,0xbd,0x27,0x25,0xb0,0x03,0x3c,0x1c,0x00,0xb3,0xaf, +0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x34,0x00,0xbf,0xaf, +0x30,0x00,0xbe,0xaf,0x2c,0x00,0xb7,0xaf,0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf, +0x20,0x00,0xb4,0xaf,0x0a,0x00,0x67,0x34,0x00,0x00,0xe2,0x90,0xff,0xff,0xb2,0x30, +0x21,0x98,0xc0,0x00,0xff,0x00,0x91,0x30,0x20,0x00,0x40,0x12,0xff,0x00,0x50,0x30, +0x21,0xa0,0xe0,0x00,0x0c,0x00,0x77,0x34,0x0b,0x00,0x76,0x34,0x21,0xf0,0xe0,0x00, +0xc0,0xff,0x15,0x24,0x25,0x10,0x15,0x02,0xff,0x00,0x50,0x30,0x00,0x00,0xd1,0xa2, +0x00,0x00,0x90,0xa2,0x00,0x00,0x82,0x92,0x00,0x00,0x00,0x00,0xff,0x00,0x50,0x30, +0xc0,0x00,0x03,0x32,0x07,0x00,0x60,0x10,0x21,0x20,0xc0,0x03,0x00,0x00,0x82,0x90, +0x00,0x00,0x00,0x00,0xff,0x00,0x50,0x30,0xc0,0x00,0x03,0x32,0xfb,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0x8e,0x04,0x00,0x23,0x26,0x64,0x00,0x04,0x24, +0x00,0x00,0x62,0xae,0x9c,0x12,0x00,0x0c,0xff,0x00,0x71,0x30,0xfc,0xff,0x42,0x26, +0xff,0xff,0x52,0x30,0xe7,0xff,0x40,0x16,0x04,0x00,0x73,0x26,0x34,0x00,0xbf,0x8f, +0x30,0x00,0xbe,0x8f,0x2c,0x00,0xb7,0x8f,0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f, +0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0xff,0x00,0x84,0x30, +0xff,0xff,0xac,0x30,0xc0,0x48,0x04,0x00,0x00,0x60,0x0e,0x40,0x01,0x00,0xc1,0x35, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0x40,0x02,0x4d,0x34, +0xf8,0xff,0xe7,0x24,0x21,0x40,0x00,0x00,0x01,0x00,0x0f,0x24,0x44,0x02,0x4b,0x34, +0x57,0x14,0x00,0x08,0x01,0x80,0x0a,0x3c,0x28,0x00,0x0f,0x11,0x00,0x00,0x00,0x00, +0x01,0x00,0xe2,0x90,0x00,0x00,0xe4,0x90,0x02,0x00,0xe3,0x90,0x03,0x00,0xe5,0x90, +0x00,0x12,0x02,0x00,0x25,0x20,0x82,0x00,0x00,0x1c,0x03,0x00,0x25,0x20,0x83,0x00, +0x21,0x10,0x28,0x01,0x00,0x2e,0x05,0x00,0x01,0x00,0x08,0x25,0x25,0x20,0x85,0x00, +0x25,0x10,0x4a,0x00,0x06,0x00,0x03,0x2d,0x00,0x00,0x64,0xad,0x04,0x00,0xe7,0x24, +0x00,0x00,0xa2,0xad,0x12,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0xea,0xff,0x00,0x15, +0x00,0x00,0x00,0x00,0x00,0x00,0xc2,0x90,0x01,0x00,0xc3,0x90,0x04,0x00,0xe7,0x24, +0x00,0x14,0x02,0x00,0x25,0x10,0x82,0x01,0x00,0x1e,0x03,0x00,0x25,0x20,0x43,0x00, +0x21,0x10,0x28,0x01,0x01,0x00,0x08,0x25,0x25,0x10,0x4a,0x00,0x06,0x00,0x03,0x2d, +0x00,0x00,0x64,0xad,0x00,0x00,0xa2,0xad,0xf0,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x00,0x60,0x8e,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x03,0x00,0xc2,0x90, +0x02,0x00,0xc4,0x90,0x04,0x00,0xc3,0x90,0x05,0x00,0xc5,0x90,0x49,0x14,0x00,0x08, +0x00,0x12,0x02,0x00,0xff,0xff,0x84,0x30,0x42,0xb0,0x08,0x3c,0x80,0x10,0x04,0x00, +0x21,0x10,0x48,0x00,0x04,0x00,0x46,0xac,0x00,0x00,0x07,0x91,0x40,0x18,0x04,0x00, +0x03,0x00,0x06,0x24,0xff,0x00,0xe7,0x30,0x04,0x30,0x66,0x00,0x01,0x00,0x02,0x24, +0x04,0x10,0x62,0x00,0x25,0x30,0xc7,0x00,0xff,0xff,0xa5,0x30,0x25,0x10,0x47,0x00, +0x02,0x00,0xa0,0x14,0xff,0x00,0xc7,0x30,0xff,0x00,0x47,0x30,0x42,0xb0,0x02,0x3c, +0x00,0x00,0x47,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x42,0xb0,0x02,0x3c, +0x03,0x00,0x47,0x34,0x00,0x00,0xe3,0x90,0xff,0x00,0x84,0x30,0x04,0x00,0x84,0x24, +0xff,0x00,0x65,0x30,0x01,0x00,0x02,0x24,0x04,0x30,0x82,0x00,0x07,0x18,0x85,0x00, +0x25,0xb0,0x02,0x3c,0xe8,0x03,0x42,0x34,0x01,0x00,0x63,0x30,0x21,0x20,0xc0,0x00, +0x00,0x00,0x45,0xa0,0x02,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xa0, +0x08,0x00,0xe0,0x03,0x24,0x10,0x85,0x00,0x00,0x60,0x03,0x40,0x01,0x00,0x61,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x00,0xaa,0x42,0x24, +0x04,0x00,0x45,0x8c,0x00,0x00,0x82,0xac,0x04,0x00,0x44,0xac,0x00,0x00,0xa4,0xac, +0x04,0x00,0x85,0xac,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x14,0x00,0x83,0x90,0x01,0x00,0x02,0x24,0x08,0x00,0x86,0xac,0x18,0x00,0x85,0xac, +0x00,0x00,0x84,0xac,0x03,0x00,0x62,0x10,0x04,0x00,0x84,0xac,0x9a,0x14,0x00,0x08, +0x0c,0x00,0x80,0xac,0x0c,0x00,0x82,0x8c,0x9a,0x14,0x00,0x08,0x10,0x00,0x82,0xac, +0x00,0x60,0x03,0x40,0x01,0x00,0x61,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x04,0x00,0x85,0x8c,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xac, +0x04,0x00,0x45,0xac,0x00,0x00,0x84,0xac,0x04,0x00,0x84,0xac,0x00,0x60,0x83,0x40, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xc8,0xff,0xbd,0x27,0x28,0x00,0xb6,0xaf, +0x25,0xb0,0x02,0x3c,0x02,0x80,0x16,0x3c,0x2c,0x00,0xb7,0xaf,0x24,0x00,0xb5,0xaf, +0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x30,0x00,0xbf,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x18,0x03,0x55,0x34,0x00,0x80,0x17,0x3c, +0x02,0x80,0x13,0x3c,0x02,0x80,0x14,0x3c,0x00,0xaa,0xd2,0x26,0x08,0x53,0xe2,0x26, +0x00,0x00,0xa2,0xae,0x00,0xaa,0xd0,0x8e,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x8c,0x43,0x71,0x8e,0x00,0x00,0x00,0x00, +0x25,0x00,0x20,0x12,0x00,0x00,0x00,0x00,0x8c,0x43,0x60,0xae,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x23,0x00,0x12,0x12,0x08,0x0c,0x84,0x26, +0x14,0x00,0x03,0x92,0x01,0x00,0x02,0x24,0x2b,0x00,0x62,0x10,0x00,0x00,0x00,0x00, +0x0a,0x00,0x60,0x14,0x02,0x00,0x02,0x24,0x0c,0x00,0x03,0x8e,0x00,0x00,0x00,0x00, +0x2b,0x10,0x23,0x02,0x1e,0x00,0x40,0x10,0x23,0x10,0x71,0x00,0x0c,0x00,0x02,0xae, +0x00,0x00,0x10,0x8e,0xe2,0x14,0x00,0x08,0x00,0x00,0x00,0x00,0xfc,0xff,0x62,0x14, +0x00,0x00,0x00,0x00,0x0c,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0xf8,0xff,0x60,0x10, +0x2b,0x10,0x23,0x02,0xf5,0xff,0x40,0x14,0x23,0x10,0x71,0x00,0x08,0x00,0x02,0x8e, +0x18,0x00,0x04,0x8e,0x09,0xf8,0x40,0x00,0x0c,0x00,0x00,0xae,0x00,0x00,0x10,0x8e, +0xe2,0x14,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x08,0x0c,0x84,0x26,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00, +0x2d,0x28,0x00,0x0c,0x21,0x38,0x00,0x00,0xd4,0x14,0x00,0x08,0x08,0x53,0xe2,0x26, +0x08,0x00,0x02,0x8e,0x18,0x00,0x04,0x8e,0x09,0xf8,0x40,0x00,0x00,0x00,0x00,0x00, +0xf0,0x14,0x00,0x08,0x0c,0x00,0x02,0xae,0x0c,0x00,0x03,0x8e,0x00,0x00,0x00,0x00, +0x2b,0x10,0x23,0x02,0xd9,0xff,0x40,0x14,0x23,0x10,0x71,0x00,0x08,0x00,0x02,0x8e, +0x18,0x00,0x04,0x8e,0x09,0xf8,0x40,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x03,0x8e, +0x00,0x00,0x00,0x00,0x0c,0x00,0x03,0xae,0x00,0x00,0x10,0x8e,0xe2,0x14,0x00,0x08, +0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x80,0x41,0x42,0x24,0xc0,0x20,0x04,0x00, +0x21,0x20,0x82,0x00,0x21,0x28,0x00,0x00,0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x09,0x00,0x44,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x43,0x8c,0x21,0x28,0x40,0x00, +0x00,0x00,0x42,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xac,0x04,0x00,0x43,0xac, +0x00,0x00,0xa5,0xac,0x04,0x00,0xa5,0xac,0x00,0x60,0x86,0x40,0x08,0x00,0xe0,0x03, +0x21,0x10,0xa0,0x00,0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x21,0x80,0x80,0x00, +0x01,0x01,0x02,0x2e,0x14,0x00,0xbf,0xaf,0x01,0x00,0x04,0x24,0x01,0x02,0x03,0x2e, +0x0b,0x00,0x40,0x14,0x21,0x28,0x00,0x00,0x02,0x00,0x04,0x24,0x08,0x00,0x60,0x14, +0x01,0x08,0x02,0x2e,0x06,0x00,0x40,0x14,0x03,0x00,0x04,0x24,0x14,0x00,0xbf,0x8f, +0x10,0x00,0xb0,0x8f,0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27, +0x21,0x15,0x00,0x0c,0x00,0x00,0x00,0x00,0xf8,0xff,0x40,0x10,0x21,0x28,0x40,0x00, +0x0c,0x00,0x50,0xac,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0xa0,0x00, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x10,0x00,0x83,0x8c,0x02,0x80,0x02,0x3c, +0x80,0x41,0x42,0x24,0xc0,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0x65,0x8c, +0x02,0x80,0x07,0x3c,0x02,0x80,0x08,0x3c,0x00,0x00,0x85,0xac,0x04,0x00,0xa4,0xac, +0x04,0x00,0x83,0xac,0x58,0x44,0xe5,0x8c,0x00,0x00,0x00,0x00,0x05,0x00,0xa0,0x10, +0x00,0x00,0x64,0xac,0x44,0x44,0x02,0x8d,0x58,0x44,0xe0,0xac,0x25,0x10,0x45,0x00, +0x44,0x44,0x02,0xad,0x00,0x60,0x86,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x02,0x80,0x02,0x3c,0x7c,0x3f,0x43,0x8c,0xff,0x00,0xa5,0x30,0x25,0xb0,0x02,0x3c, +0x42,0x18,0x03,0x00,0x21,0x30,0xa2,0x00,0x01,0x00,0x63,0x30,0x01,0x00,0x02,0x24, +0x10,0x00,0xa7,0x2c,0x04,0x00,0x62,0x10,0xff,0x00,0x84,0x30,0x60,0x01,0xc4,0xa0, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c,0x10,0x00,0xa2,0x34, +0xfa,0xff,0xe0,0x10,0x21,0x40,0x43,0x00,0x60,0x01,0xc4,0xa0,0x60,0x01,0x04,0xa1, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0x84,0x30,0x01,0x00,0x03,0x24, +0x10,0x00,0x02,0x3c,0x04,0x18,0x83,0x00,0xf0,0x70,0x42,0x34,0x15,0x00,0x84,0x2c, +0x06,0x00,0x80,0x10,0x24,0x28,0x62,0x00,0x0f,0x00,0x63,0x30,0x04,0x00,0xa0,0x14, +0x01,0x00,0x02,0x24,0x02,0x00,0x60,0x14,0x02,0x00,0x02,0x24,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xc0,0x40,0x04,0x00,0x21,0x18,0x04,0x01, +0x80,0x18,0x03,0x00,0x21,0x18,0x64,0x00,0x02,0x80,0x02,0x3c,0x80,0x18,0x03,0x00, +0x78,0x1b,0x42,0x24,0x21,0x18,0x62,0x00,0x8c,0x11,0x66,0x8c,0x21,0x38,0x60,0x00, +0x92,0x11,0x60,0xa0,0x93,0x11,0x60,0xa0,0x1c,0x00,0x05,0x24,0xa7,0x15,0x00,0x08, +0x01,0x00,0x03,0x24,0x08,0x00,0xa0,0x04,0x21,0x10,0x04,0x01,0x04,0x10,0xa3,0x00, +0x24,0x10,0xc2,0x00,0xfb,0xff,0x40,0x10,0xff,0xff,0xa5,0x24,0x01,0x00,0xa5,0x24, +0x92,0x11,0xe5,0xa0,0x21,0x10,0x04,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00, +0x02,0x80,0x03,0x3c,0x80,0x10,0x02,0x00,0x78,0x1b,0x63,0x24,0x21,0x18,0x43,0x00, +0x8c,0x11,0x66,0x8c,0x21,0x28,0x00,0x00,0xbb,0x15,0x00,0x08,0x01,0x00,0x07,0x24, +0x1d,0x00,0xa2,0x28,0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x04,0x10,0xa7,0x00, +0x24,0x10,0xc2,0x00,0xfa,0xff,0x40,0x10,0x01,0x00,0xa5,0x24,0xff,0xff,0xa5,0x24, +0x08,0x00,0xe0,0x03,0x93,0x11,0x65,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf, +0xc0,0x80,0x04,0x00,0x21,0x80,0x04,0x02,0x80,0x80,0x10,0x00,0x21,0x80,0x04,0x02, +0x02,0x80,0x02,0x3c,0x78,0x1b,0x42,0x24,0x80,0x80,0x10,0x00,0x20,0x00,0xbf,0xaf, +0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x21,0x80,0x02,0x02,0x14,0x00,0xb1,0xaf, +0x90,0x11,0x03,0x8e,0x25,0xb0,0x02,0x3c,0x80,0x01,0x53,0x34,0x07,0x00,0x63,0x30, +0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0x71,0x92,0x88,0x11,0x05,0x8e, +0x84,0x01,0x62,0x8c,0x21,0x90,0x80,0x00,0xff,0x00,0x31,0x32,0x24,0x10,0x45,0x00, +0x96,0x15,0x00,0x0c,0x8c,0x11,0x02,0xae,0x92,0x11,0x04,0x92,0x70,0x15,0x00,0x0c, +0xff,0x00,0x45,0x32,0x92,0x11,0x04,0x92,0x86,0x15,0x00,0x0c,0x00,0x00,0x00,0x00, +0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x88,0x62,0x00,0x00,0x00,0x71,0xa2, +0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0xff,0xff,0x84,0x30, +0x00,0x02,0x82,0x30,0x07,0x00,0x03,0x24,0x0d,0x00,0x40,0x14,0x0b,0x00,0x84,0x30, +0x0c,0x00,0x82,0x2c,0x0a,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c, +0x80,0x10,0x04,0x00,0xe0,0xaf,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c, +0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x03,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x06,0x00,0x03,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x05,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x04,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x03,0x00,0x03,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x02,0x00,0x03,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x21,0x18,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x90,0xff,0xbd,0x27, +0x02,0x80,0x02,0x3c,0x68,0x00,0xbe,0xaf,0x64,0x00,0xb7,0xaf,0x60,0x00,0xb6,0xaf, +0x5c,0x00,0xb5,0xaf,0x54,0x00,0xb3,0xaf,0x50,0x00,0xb2,0xaf,0x6c,0x00,0xbf,0xaf, +0x58,0x00,0xb4,0xaf,0x4c,0x00,0xb1,0xaf,0x48,0x00,0xb0,0xaf,0x10,0xb0,0x42,0x24, +0x00,0x00,0x54,0x8c,0x08,0x00,0x03,0x24,0x10,0x00,0xa3,0xaf,0x21,0x98,0x00,0x00, +0x21,0xa8,0x00,0x00,0x21,0xb8,0x00,0x00,0x21,0xf0,0x00,0x00,0x14,0x00,0xa0,0xaf, +0x18,0x00,0xa0,0xaf,0x1c,0x00,0xa0,0xaf,0x20,0x00,0xa0,0xaf,0x21,0xb0,0x00,0x00, +0x24,0x00,0xa0,0xaf,0x28,0x00,0xa0,0xaf,0x2c,0x00,0xa0,0xaf,0x30,0x00,0xa0,0xaf, +0x34,0x00,0xa0,0xaf,0x38,0x00,0xa0,0xaf,0x3c,0x00,0xa0,0xaf,0x40,0x00,0xa0,0xaf, +0x21,0x90,0x80,0x02,0x90,0x11,0x42,0x8e,0x00,0x00,0x00,0x00,0x02,0x13,0x02,0x00, +0x01,0x00,0x42,0x30,0x6c,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c,0x21,0x10,0x62,0x02, +0x60,0x01,0x44,0x90,0x78,0x11,0x43,0x8e,0x74,0x11,0x46,0x8e,0xff,0x00,0x91,0x30, +0x02,0x80,0x04,0x3c,0x78,0x1b,0x84,0x24,0x21,0x10,0x24,0x02,0x77,0x04,0x44,0x90, +0x5a,0x04,0x45,0x90,0x5c,0x11,0x47,0x8e,0x18,0x00,0x64,0x00,0x12,0x18,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0xc5,0x00,0x12,0x30,0x00,0x00, +0x21,0x30,0xc3,0x00,0x2b,0x10,0xe6,0x00,0x25,0x01,0x40,0x14,0x23,0x10,0xe6,0x00, +0x5c,0x11,0x42,0xae,0x78,0x11,0x44,0x8e,0x74,0x11,0x47,0x8e,0x60,0x11,0x48,0x8e, +0x64,0x11,0x45,0x8e,0x6c,0x11,0x46,0x8e,0x70,0x11,0x43,0x8e,0x21,0x38,0xe4,0x00, +0x02,0x80,0x04,0x3c,0x78,0x1b,0x84,0x24,0x21,0x10,0x24,0x02,0x21,0x40,0x05,0x01, +0x21,0x30,0xc3,0x00,0xce,0x04,0x42,0x90,0x5c,0x11,0x4a,0x8e,0x0c,0x00,0xe0,0x10, +0x21,0x48,0x00,0x00,0x2b,0x48,0x47,0x00,0x0b,0x00,0x20,0x15,0x02,0x80,0x02,0x3c, +0x07,0x00,0x22,0x2e,0x93,0x01,0x40,0x14,0xc0,0x10,0x07,0x00,0x0c,0x00,0x02,0x24, +0x8f,0x01,0x22,0x12,0x0d,0x00,0x02,0x24,0x8e,0x01,0x22,0x12,0xc0,0x10,0x07,0x00, +0x81,0x00,0x20,0x11,0x02,0x80,0x02,0x3c,0x78,0x1b,0x42,0x24,0x80,0x18,0x11,0x00, +0x21,0x18,0x62,0x00,0x21,0x20,0x51,0x02,0xce,0x11,0x85,0x90,0xf8,0x04,0x62,0x8c, +0x00,0x00,0x00,0x00,0x04,0x10,0xa2,0x00,0x2b,0x10,0x4a,0x00,0x76,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0xec,0x11,0x42,0x8e,0x01,0x00,0x07,0x24,0x04,0x18,0x27,0x02, +0x24,0x10,0x43,0x00,0x04,0x01,0x40,0x10,0x1c,0x00,0x22,0x2e,0x21,0x28,0x51,0x02, +0x94,0x11,0xa6,0x90,0xce,0x11,0xa2,0x90,0x0a,0x00,0x04,0x24,0xff,0x00,0xc3,0x30, +0x04,0x20,0x44,0x00,0x2a,0x18,0x64,0x00,0xfb,0x00,0x60,0x10,0x1c,0x00,0x22,0x2e, +0x01,0x00,0xc2,0x24,0xff,0x00,0x43,0x30,0x8c,0x01,0x64,0x10,0x94,0x11,0xa2,0xa0, +0x02,0x80,0x04,0x3c,0x78,0x1b,0x85,0x24,0x80,0x10,0x11,0x00,0x21,0x10,0x45,0x00, +0x6c,0x05,0x44,0x8c,0xf8,0x04,0x43,0x8c,0x21,0x30,0xc5,0x02,0x40,0x10,0x04,0x00, +0x21,0x10,0x44,0x00,0x21,0x18,0x62,0x00,0x82,0x50,0x03,0x00,0x5c,0x11,0xca,0xac, +0xec,0x25,0xa3,0x8c,0xff,0xff,0x02,0x34,0x03,0x00,0x62,0x10,0x21,0x20,0x20,0x02, +0x70,0x15,0x00,0x0c,0xff,0x00,0x65,0x32,0x86,0x15,0x00,0x0c,0x21,0x20,0x20,0x02, +0x10,0x00,0xa4,0x8f,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x20,0x62,0x00, +0xbc,0x00,0x60,0x12,0x10,0x00,0xa4,0xaf,0x02,0x80,0x03,0x3c,0x78,0x1b,0x62,0x24, +0x21,0x10,0xa2,0x02,0x70,0x11,0x40,0xac,0x74,0x11,0x40,0xac,0x78,0x11,0x40,0xac, +0x60,0x11,0x40,0xac,0x64,0x11,0x40,0xac,0x68,0x11,0x40,0xac,0x6c,0x11,0x40,0xac, +0x40,0x00,0xa4,0x8f,0x3c,0x00,0xa2,0x8f,0x01,0x00,0x73,0x26,0x94,0x00,0x84,0x24, +0x94,0x00,0x42,0x24,0x40,0x00,0xa4,0xaf,0x3c,0x00,0xa2,0xaf,0x38,0x00,0xa4,0x8f, +0x34,0x00,0xa2,0x8f,0x20,0x00,0x63,0x2a,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24, +0x38,0x00,0xa4,0xaf,0x34,0x00,0xa2,0xaf,0x30,0x00,0xa4,0x8f,0x2c,0x00,0xa2,0x8f, +0x94,0x00,0x52,0x26,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x30,0x00,0xa4,0xaf, +0x2c,0x00,0xa2,0xaf,0x28,0x00,0xa4,0x8f,0x24,0x00,0xa2,0x8f,0x94,0x00,0xd6,0x26, +0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x28,0x00,0xa4,0xaf,0x24,0x00,0xa2,0xaf, +0x20,0x00,0xa4,0x8f,0x1c,0x00,0xa2,0x8f,0x94,0x00,0xde,0x27,0x94,0x00,0x84,0x24, +0x94,0x00,0x42,0x24,0x20,0x00,0xa4,0xaf,0x1c,0x00,0xa2,0xaf,0x18,0x00,0xa4,0x8f, +0x14,0x00,0xa2,0x8f,0x94,0x00,0x94,0x26,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24, +0x18,0x00,0xa4,0xaf,0x14,0x00,0xa2,0xaf,0x94,0x00,0xf7,0x26,0x59,0xff,0x60,0x14, +0x94,0x00,0xb5,0x26,0x10,0x00,0xa3,0x8f,0x6c,0x00,0xbf,0x8f,0x68,0x00,0xbe,0x8f, +0x64,0x00,0xb7,0x8f,0x60,0x00,0xb6,0x8f,0x5c,0x00,0xb5,0x8f,0x58,0x00,0xb4,0x8f, +0x54,0x00,0xb3,0x8f,0x50,0x00,0xb2,0x8f,0x4c,0x00,0xb1,0x8f,0x48,0x00,0xb0,0x8f, +0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34,0x70,0x00,0xbd,0x27,0x00,0x00,0x43,0xa0, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x87,0x00,0xe0,0x10,0x00,0x00,0x00,0x00, +0x87,0x00,0x20,0x15,0x02,0x80,0x03,0x3c,0x40,0x10,0x07,0x00,0x21,0x10,0x47,0x00, +0x82,0x10,0x02,0x00,0x2b,0x10,0x46,0x00,0xa7,0xff,0x40,0x10,0x00,0x00,0x00,0x00, +0x20,0x00,0xa2,0x8f,0x02,0x80,0x04,0x3c,0x78,0x1b,0x88,0x24,0x21,0x20,0x48,0x00, +0x21,0x30,0x91,0x00,0xec,0x11,0x83,0x8c,0x01,0x00,0x05,0x24,0x04,0x10,0x25,0x02, +0xb1,0x11,0xc7,0x90,0x27,0x10,0x02,0x00,0x24,0x18,0x62,0x00,0xec,0x11,0x83,0xac, +0x09,0x00,0xe5,0x10,0x94,0x11,0xc0,0xa0,0x1c,0x00,0xa3,0x8f,0x21,0x38,0x00,0x00, +0x21,0x20,0x68,0x00,0x21,0x18,0x87,0x00,0x01,0x00,0xe7,0x24,0x1d,0x00,0xe2,0x28, +0xfc,0xff,0x40,0x14,0xce,0x11,0x60,0xa0,0x02,0x80,0x04,0x3c,0x78,0x1b,0x83,0x24, +0x18,0x00,0xa4,0x8f,0x21,0x50,0x60,0x00,0x21,0x38,0x00,0x00,0x21,0x10,0x83,0x00, +0x21,0x10,0x51,0x00,0xb1,0x11,0x40,0xa0,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c, +0x70,0xae,0x49,0x24,0xfc,0xad,0x68,0x24,0x80,0x18,0x07,0x00,0x21,0x10,0x69,0x00, +0x21,0x20,0x68,0x00,0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c,0x01,0x00,0xe7,0x24, +0x21,0x18,0x6a,0x00,0x1d,0x00,0xe2,0x28,0xf8,0x04,0x65,0xac,0xf6,0xff,0x40,0x14, +0x6c,0x05,0x66,0xac,0x15,0x00,0x20,0x12,0x02,0x80,0x05,0x3c,0x93,0x11,0x82,0x92, +0xff,0xff,0x27,0x26,0x2a,0x10,0xe2,0x00,0x10,0x00,0x40,0x14,0x02,0x80,0x03,0x3c, +0x14,0x00,0xa4,0x8f,0x78,0x1b,0x62,0x24,0x21,0x10,0x82,0x00,0x93,0x11,0x45,0x90, +0x8c,0x11,0x44,0x8c,0x01,0x00,0x06,0x24,0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00, +0x06,0x01,0x43,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0xe7,0x24,0x2a,0x10,0xe5,0x00, +0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00,0x02,0x80,0x05,0x3c,0x56,0x43,0xa3,0x90, +0x22,0x00,0x02,0x24,0xe8,0x00,0x62,0x10,0x02,0x80,0x03,0x3c,0x02,0x80,0x04,0x3c, +0x78,0x1b,0x83,0x24,0x80,0x10,0x11,0x00,0x21,0x10,0x43,0x00,0x6c,0x05,0x44,0x8c, +0xf8,0x04,0x43,0x8c,0x56,0x43,0xa5,0x90,0x40,0x10,0x04,0x00,0x21,0x10,0x44,0x00, +0x21,0x18,0x62,0x00,0x22,0x00,0x02,0x24,0xd6,0x00,0xa2,0x10,0x82,0x50,0x03,0x00, +0xec,0x11,0x83,0x8e,0x01,0x00,0x02,0x24,0x04,0x10,0x22,0x02,0x25,0x18,0x62,0x00, +0xec,0x11,0x83,0xae,0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24,0x21,0x10,0xe3,0x02, +0x5c,0x11,0x4a,0xac,0xec,0x25,0x64,0x8c,0xff,0xff,0x02,0x34,0x44,0xff,0x82,0x14, +0x21,0x20,0x20,0x02,0x86,0x15,0x00,0x0c,0x21,0x20,0x20,0x02,0x10,0x00,0xa4,0x8f, +0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x20,0x62,0x00,0x46,0xff,0x60,0x16, +0x10,0x00,0xa4,0xaf,0x02,0x80,0x02,0x3c,0x78,0x1b,0x50,0x24,0x64,0x11,0x05,0x96, +0x60,0x11,0x02,0x96,0x25,0xb0,0x11,0x3c,0x00,0x2c,0x05,0x00,0x21,0x28,0x45,0x00, +0x10,0x50,0x00,0x0c,0x68,0x0c,0x24,0x36,0x70,0x11,0x02,0x8e,0x6c,0x11,0x05,0x8e, +0x68,0x11,0x03,0x96,0x6c,0x0c,0x24,0x36,0x21,0x28,0xa2,0x00,0x00,0x2c,0x05,0x00, +0x10,0x50,0x00,0x0c,0x21,0x28,0x65,0x00,0xaf,0x16,0x00,0x08,0x02,0x80,0x03,0x3c, +0x59,0x16,0x00,0x08,0x5c,0x11,0x40,0xae,0x27,0xff,0x20,0x11,0x02,0x80,0x03,0x3c, +0x78,0x1b,0x62,0x24,0x80,0x18,0x11,0x00,0x21,0x18,0x62,0x00,0x6c,0x05,0x64,0x8c, +0x00,0x00,0x00,0x00,0x2b,0x20,0x44,0x01,0x1f,0xff,0x80,0x10,0x00,0x00,0x00,0x00, +0x00,0x17,0x00,0x08,0x00,0x00,0x00,0x00,0x0a,0xff,0x40,0x10,0x02,0x80,0x04,0x3c, +0x21,0x20,0x51,0x02,0xb1,0x11,0x83,0x90,0x01,0x00,0x02,0x24,0x78,0x00,0x62,0x10, +0x02,0x80,0x02,0x3c,0x40,0x00,0xa3,0x8f,0x78,0x1b,0x42,0x24,0x21,0x20,0x62,0x00, +0x21,0x38,0x00,0x00,0x21,0x18,0x87,0x00,0x01,0x00,0xe7,0x24,0x1d,0x00,0xe2,0x28, +0xfc,0xff,0x40,0x14,0xce,0x11,0x60,0xa0,0x3c,0x00,0xa2,0x8f,0x02,0x80,0x04,0x3c, +0x78,0x1b,0x85,0x24,0x21,0x30,0x45,0x00,0xec,0x11,0xc2,0x8c,0x01,0x00,0x03,0x24, +0x04,0x18,0x23,0x02,0x27,0x18,0x03,0x00,0x21,0x20,0xd1,0x00,0x24,0x10,0x43,0x00, +0xb1,0x11,0x80,0xa0,0xec,0x11,0xc2,0xac,0x12,0x00,0x20,0x16,0x94,0x11,0x80,0xa0, +0x92,0x11,0xc2,0x90,0x00,0x00,0x00,0x00,0x0e,0x00,0x40,0x10,0x01,0x00,0x07,0x24, +0x38,0x00,0xa3,0x8f,0x01,0x00,0x06,0x24,0x21,0x10,0x65,0x00,0x92,0x11,0x44,0x90, +0x8c,0x11,0x45,0x8c,0x04,0x18,0xe6,0x00,0x24,0x10,0xa3,0x00,0x8d,0x00,0x43,0x10, +0x00,0x00,0x00,0x00,0x01,0x00,0xe7,0x24,0x2a,0x10,0x87,0x00,0xfa,0xff,0x40,0x10, +0x04,0x18,0xe6,0x00,0x02,0x80,0x02,0x3c,0x78,0x1b,0x44,0x24,0x34,0x00,0xa2,0x8f, +0x01,0x00,0x27,0x26,0x21,0x18,0x44,0x00,0x92,0x11,0x62,0x90,0x00,0x00,0x00,0x00, +0x2a,0x10,0x47,0x00,0x0f,0x00,0x40,0x14,0x02,0x80,0x05,0x3c,0x30,0x00,0xa3,0x8f, +0x01,0x00,0x06,0x24,0x21,0x10,0x64,0x00,0x92,0x11,0x45,0x90,0x8c,0x11,0x44,0x8c, +0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00,0x73,0x00,0x43,0x10,0x00,0x00,0x00,0x00, +0x01,0x00,0xe7,0x24,0x2a,0x10,0xa7,0x00,0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00, +0x02,0x80,0x05,0x3c,0x56,0x43,0xa3,0x90,0x22,0x00,0x02,0x24,0x3e,0x00,0x62,0x10, +0xee,0xff,0x22,0x26,0x56,0x43,0xa3,0x90,0x22,0x00,0x02,0x24,0xbd,0xfe,0x62,0x14, +0x02,0x80,0x04,0x3c,0x28,0x00,0xa2,0x8f,0x78,0x1b,0x86,0x24,0x21,0x20,0x46,0x00, +0x90,0x11,0x85,0x8c,0x01,0x00,0x03,0x24,0x42,0x13,0x05,0x00,0x07,0x00,0x42,0x30, +0xb3,0xfe,0x43,0x10,0x14,0x00,0x22,0x2e,0xb1,0xfe,0x40,0x14,0x1c,0x00,0x22,0x2e, +0xaf,0xfe,0x40,0x10,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,0x24,0x10,0xa2,0x00, +0x00,0x20,0x42,0x34,0x90,0x11,0x82,0xac,0x93,0x11,0x83,0x90,0xff,0xff,0x27,0x26, +0x2a,0x18,0xe3,0x00,0xa6,0xfe,0x60,0x14,0x00,0x00,0x00,0x00,0x24,0x00,0xa3,0x8f, +0x00,0x00,0x00,0x00,0x21,0x10,0x66,0x00,0x93,0x11,0x45,0x90,0x8c,0x11,0x44,0x8c, +0xf9,0x17,0x00,0x08,0x01,0x00,0x06,0x24,0x2a,0x10,0xe5,0x00,0x9c,0xfe,0x40,0x14, +0x00,0x00,0x00,0x00,0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00,0xfa,0xff,0x43,0x14, +0xff,0xff,0xe7,0x24,0x01,0x00,0xe7,0x24,0x94,0x16,0x00,0x08,0xff,0x00,0xf1,0x30, +0xc0,0x10,0x07,0x00,0x23,0x10,0x47,0x00,0xc2,0x10,0x02,0x00,0x2b,0x10,0x48,0x00, +0x7c,0xfe,0x40,0x14,0x00,0x00,0x00,0x00,0x74,0x16,0x00,0x08,0x00,0x00,0x00,0x00, +0x18,0x00,0x22,0x2e,0x17,0x00,0x40,0x14,0x05,0x00,0x22,0x2e,0xce,0x11,0x83,0x90, +0x00,0x00,0x00,0x00,0x05,0x00,0x62,0x2c,0x8b,0xff,0x40,0x10,0x01,0x00,0x62,0x24, +0x9a,0x17,0x00,0x08,0xce,0x11,0x82,0xa0,0xff,0x00,0x42,0x30,0x02,0x00,0x42,0x2c, +0xc0,0xff,0x40,0x10,0x02,0x80,0x04,0x3c,0x2c,0x00,0xa3,0x8f,0x78,0x1b,0x82,0x24, +0x21,0x10,0x62,0x00,0x8c,0x11,0x43,0x8c,0x00,0x01,0x04,0x3c,0x18,0x00,0x02,0x24, +0x24,0x18,0x64,0x00,0xd5,0x17,0x00,0x08,0x0b,0x88,0x43,0x00,0x94,0x16,0x00,0x08, +0xb1,0x11,0xa7,0xa0,0x04,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xce,0x11,0x83,0x90, +0x0e,0x18,0x00,0x08,0x03,0x00,0x62,0x2c,0xce,0x11,0x83,0x90,0x0e,0x18,0x00,0x08, +0x04,0x00,0x62,0x2c,0x13,0x00,0x02,0x24,0x29,0xff,0x22,0x16,0x02,0x80,0x02,0x3c, +0x5b,0x17,0x00,0x08,0x78,0x1b,0x43,0x24,0x78,0x1b,0x62,0x24,0x21,0x20,0xc2,0x03, +0x90,0x11,0x83,0x8c,0x00,0x00,0x00,0x00,0x42,0x13,0x03,0x00,0x07,0x00,0x42,0x30, +0x12,0xff,0x40,0x10,0x14,0x00,0x22,0x2e,0x10,0xff,0x40,0x10,0x0c,0x00,0x22,0x2e, +0x0e,0xff,0x40,0x14,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,0x24,0x10,0x62,0x00, +0x47,0x17,0x00,0x08,0x90,0x11,0x82,0xac,0xff,0x00,0xf1,0x30,0xd1,0x17,0x00,0x08, +0x02,0x80,0x05,0x3c,0xb9,0x17,0x00,0x08,0xff,0x00,0xf1,0x30,0x42,0x17,0x00,0x08, +0xff,0x00,0xf1,0x30,0xa8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x38,0x00,0xb2,0xaf, +0x54,0x00,0xbf,0xaf,0x50,0x00,0xbe,0xaf,0x4c,0x00,0xb7,0xaf,0x48,0x00,0xb6,0xaf, +0x44,0x00,0xb5,0xaf,0x40,0x00,0xb4,0xaf,0x3c,0x00,0xb3,0xaf,0x34,0x00,0xb1,0xaf, +0x30,0x00,0xb0,0xaf,0x78,0x1b,0x46,0x24,0x71,0x25,0xc4,0x90,0x6c,0x25,0xc3,0x8c, +0x68,0x25,0xc2,0x8c,0x21,0x90,0x64,0x00,0x2b,0x10,0x42,0x02,0x7e,0x00,0x40,0x10, +0x21,0x88,0xc0,0x00,0x02,0x80,0x1e,0x3c,0x02,0x80,0x17,0x3c,0x21,0xa8,0xc0,0x00, +0x21,0xb0,0xc0,0x00,0x64,0x18,0x00,0x08,0x01,0x00,0x14,0x24,0x68,0x25,0xc2,0x8e, +0x10,0x00,0x52,0x26,0x2b,0x10,0x42,0x02,0x73,0x00,0x40,0x10,0x21,0x88,0xc0,0x02, +0x71,0x25,0x22,0x92,0xff,0xff,0x45,0x32,0x25,0x28,0xb7,0x00,0x10,0x00,0x42,0x24, +0x71,0x25,0x22,0xa2,0x54,0x3f,0xc4,0x27,0x46,0x46,0x00,0x0c,0x10,0x00,0x06,0x24, +0x04,0x24,0x23,0x8e,0x00,0x00,0x00,0x00,0x42,0x18,0x03,0x00,0x01,0x00,0x63,0x30, +0x71,0x00,0x74,0x10,0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24,0xe0,0x23,0x62,0x8c, +0x00,0x00,0x00,0x00,0x42,0x84,0x02,0x00,0x1f,0x00,0x10,0x32,0xc0,0x48,0x10,0x00, +0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x55,0x00,0x90,0x11,0x45,0x8c,0x00,0x00,0x00,0x00,0x02,0x1b,0x05,0x00, +0x01,0x00,0x63,0x30,0xdd,0xff,0x60,0x10,0x21,0x30,0xa0,0x02,0x25,0xb0,0x02,0x3c, +0x21,0x40,0x02,0x02,0xdc,0x23,0xa7,0x8e,0x04,0x24,0xa2,0x8e,0x60,0x01,0x03,0x91, +0x82,0x25,0x07,0x00,0x01,0x00,0x42,0x30,0xff,0x00,0x6b,0x30,0x9a,0x00,0x54,0x10, +0x3f,0x00,0x8a,0x30,0x02,0x80,0x04,0x3c,0x14,0xb0,0x84,0x24,0x00,0x00,0x86,0x8c, +0x04,0x00,0x04,0x24,0xdc,0x23,0xc3,0x8c,0x00,0x00,0x00,0x00,0x82,0x15,0x03,0x00, +0x3f,0x00,0x42,0x30,0x05,0x00,0x42,0x28,0x0a,0x00,0x60,0x04,0x0a,0x50,0x82,0x00, +0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x46,0x00,0x7c,0x11,0x43,0x8c,0x04,0x00,0x0a,0x24,0x01,0x00,0x63,0x24, +0x7c,0x11,0x43,0xac,0xe0,0x23,0xc2,0x8c,0x00,0x00,0x00,0x00,0x02,0x13,0x02,0x00, +0x1f,0x00,0x42,0x30,0x08,0x00,0x42,0x28,0xb8,0xff,0x40,0x10,0x00,0x00,0x00,0x00, +0xdc,0x23,0xc2,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,0xb3,0xff,0x4b,0x14, +0x00,0x00,0x00,0x00,0x9f,0x00,0x40,0x11,0x21,0x10,0x30,0x01,0xa8,0x00,0x54,0x11, +0x80,0x10,0x02,0x00,0x02,0x00,0x02,0x24,0xb0,0x00,0x42,0x11,0x21,0x10,0x30,0x01, +0x03,0x00,0x02,0x24,0xb8,0x00,0x42,0x11,0x21,0x10,0x30,0x01,0xc0,0x00,0x44,0x11, +0x21,0x10,0x30,0x01,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00, +0x80,0x10,0x02,0x00,0x21,0x28,0x46,0x00,0x80,0x11,0xa3,0x8c,0x21,0x10,0x66,0x01, +0x94,0x04,0x44,0x90,0x02,0x19,0x03,0x00,0x2b,0x18,0x64,0x00,0xc8,0x00,0x60,0x14, +0x00,0x00,0x00,0x00,0x74,0x11,0xa3,0x8c,0x80,0x10,0x0b,0x00,0x21,0x10,0x4b,0x00, +0x01,0x00,0x63,0x24,0x21,0x10,0x46,0x00,0x74,0x11,0xa3,0xac,0x21,0x10,0x4a,0x00, +0x38,0x03,0x44,0x90,0x5c,0x11,0xa3,0x8c,0x00,0x00,0x00,0x00,0x21,0x18,0x64,0x00, +0x5c,0x11,0xa3,0xac,0x68,0x25,0xc2,0x8e,0x10,0x00,0x52,0x26,0x2b,0x10,0x42,0x02, +0x8f,0xff,0x40,0x14,0x21,0x88,0xc0,0x02,0x54,0x00,0xbf,0x8f,0x50,0x00,0xbe,0x8f, +0x4c,0x00,0xb7,0x8f,0x48,0x00,0xb6,0x8f,0x44,0x00,0xb5,0x8f,0x40,0x00,0xb4,0x8f, +0x3c,0x00,0xb3,0x8f,0x38,0x00,0xb2,0x8f,0x34,0x00,0xb1,0x8f,0x30,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x58,0x00,0xbd,0x27,0xe0,0x23,0x22,0x8e,0x00,0x00,0x00,0x00, +0x42,0x14,0x02,0x00,0x10,0x00,0x43,0x30,0x90,0xff,0x60,0x10,0x0f,0x00,0x50,0x30, +0x39,0x15,0x00,0x0c,0x48,0x00,0x04,0x24,0x74,0xff,0x40,0x10,0x21,0x98,0x40,0x00, +0x14,0x00,0x02,0x24,0x28,0x00,0x04,0x24,0x14,0x00,0x62,0xae,0x0c,0x00,0x64,0xae, +0x14,0x00,0xa3,0x8f,0xe0,0xff,0x04,0x24,0x08,0x00,0x07,0x24,0x80,0x00,0x63,0x34, +0x14,0x00,0xa3,0xaf,0xe0,0x23,0x26,0x8e,0x24,0x18,0x64,0x00,0xff,0xe0,0x04,0x24, +0x42,0x14,0x06,0x00,0x1f,0x00,0x42,0x30,0x25,0x18,0x62,0x00,0x14,0x00,0xa3,0xaf, +0xdc,0x23,0x25,0x8e,0x24,0x18,0x64,0x00,0x02,0x23,0x06,0x00,0x82,0x13,0x05,0x00, +0x00,0x1f,0x42,0x30,0x25,0x18,0x62,0x00,0xff,0xff,0x02,0x3c,0xff,0x7f,0x42,0x34, +0xc2,0x2f,0x05,0x00,0x24,0x18,0x62,0x00,0xc0,0x2b,0x05,0x00,0x0f,0x00,0x02,0x3c, +0x25,0x18,0x65,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x35,0x06,0x00, +0xf0,0xff,0x02,0x3c,0x25,0x18,0x66,0x00,0xff,0xff,0x42,0x34,0x0f,0x00,0x84,0x30, +0x24,0x18,0x62,0x00,0x00,0x24,0x04,0x00,0x25,0x18,0x64,0x00,0x02,0x80,0x04,0x3c, +0x10,0x00,0xa5,0x27,0xa8,0x3f,0x84,0x24,0x02,0x00,0x06,0x24,0x04,0x00,0x02,0x24, +0x11,0x00,0xa7,0xa3,0x14,0x00,0xa3,0xaf,0x52,0x46,0x00,0x0c,0x10,0x00,0xa2,0xa3, +0x08,0x00,0x64,0x96,0x10,0x00,0xa5,0x27,0x02,0x00,0x06,0x24,0x25,0x20,0x97,0x00, +0x52,0x46,0x00,0x0c,0x20,0x00,0x84,0x24,0x59,0x0a,0x00,0x0c,0x21,0x20,0x60,0x02, +0x78,0x18,0x00,0x08,0xc0,0x48,0x10,0x00,0x02,0x12,0x05,0x00,0x01,0x00,0x42,0x30, +0x14,0x00,0x54,0x10,0xc2,0x10,0x05,0x00,0x01,0x00,0x42,0x30,0x76,0x00,0x54,0x10, +0x00,0x00,0x00,0x00,0x10,0x24,0xa2,0x96,0x60,0x01,0x03,0x91,0xc2,0x27,0x07,0x00, +0x21,0x10,0x42,0x01,0x2c,0x24,0xa3,0xa2,0x13,0x00,0x80,0x10,0x10,0x24,0xa2,0xa6, +0x59,0xff,0x94,0x14,0x02,0x80,0x04,0x3c,0x0c,0x24,0xa2,0x96,0x16,0x24,0xa3,0x96, +0x01,0x00,0x42,0x24,0x01,0x00,0x63,0x24,0x0c,0x24,0xa2,0xa6,0x8e,0x18,0x00,0x08, +0x16,0x24,0xa3,0xa6,0x5d,0x00,0xe0,0x04,0x00,0x00,0x00,0x00,0x0e,0x24,0xa3,0x96, +0x1a,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x1a,0x24,0xa2,0xa6, +0x8d,0x18,0x00,0x08,0x0e,0x24,0xc3,0xa4,0x0e,0x24,0xa3,0x96,0x1c,0x24,0xa2,0x96, +0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x1c,0x24,0xa2,0xa6,0x8d,0x18,0x00,0x08, +0x0e,0x24,0xc3,0xa4,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x46,0x00,0x60,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24, +0x5c,0xff,0x54,0x15,0x60,0x11,0x43,0xac,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00, +0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x64,0x11,0x43,0x8c, +0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x64,0x11,0x43,0xac,0x02,0x00,0x02,0x24, +0x54,0xff,0x42,0x15,0x03,0x00,0x02,0x24,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00, +0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x68,0x11,0x43,0x8c, +0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x68,0x11,0x43,0xac,0x03,0x00,0x02,0x24, +0x4a,0xff,0x42,0x15,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x6c,0x11,0x43,0x8c,0x00,0x00,0x00,0x00, +0x01,0x00,0x63,0x24,0x43,0xff,0x44,0x15,0x6c,0x11,0x43,0xac,0x21,0x10,0x30,0x01, +0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00, +0x70,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x70,0x11,0x43,0xac, +0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00, +0x21,0x28,0x46,0x00,0x80,0x11,0xa3,0x8c,0x21,0x10,0x66,0x01,0x94,0x04,0x44,0x90, +0x02,0x19,0x03,0x00,0x2b,0x18,0x64,0x00,0x3a,0xff,0x60,0x10,0x00,0x00,0x00,0x00, +0x78,0x11,0xa3,0x8c,0x80,0x10,0x0b,0x00,0x02,0x80,0x04,0x3c,0x78,0x1b,0x84,0x24, +0x21,0x10,0x4b,0x00,0x01,0x00,0x63,0x24,0x21,0x10,0x44,0x00,0x78,0x11,0xa3,0xac, +0x21,0x10,0x4a,0x00,0xc9,0x03,0x44,0x90,0x5c,0x11,0xa3,0x8c,0x00,0x00,0x00,0x00, +0x21,0x18,0x64,0x00,0xd1,0x18,0x00,0x08,0x5c,0x11,0xa3,0xac,0x0c,0x24,0xa3,0x96, +0x14,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x14,0x24,0xa2,0xa6, +0x8d,0x18,0x00,0x08,0x0c,0x24,0xc3,0xa4,0x08,0x00,0xe0,0x04,0x00,0x00,0x00,0x00, +0x0e,0x24,0xa3,0x96,0x18,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24, +0x18,0x24,0xa2,0xa6,0x8d,0x18,0x00,0x08,0x0e,0x24,0xc3,0xa4,0x0c,0x24,0xa3,0x96, +0x12,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x12,0x24,0xa2,0xa6, +0x8d,0x18,0x00,0x08,0x0c,0x24,0xc3,0xa4,0x02,0x80,0x0a,0x3c,0x78,0x1b,0x42,0x8d, +0xe8,0xff,0xbd,0x27,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x11,0x00,0x40,0x14, +0x10,0x00,0xbf,0xaf,0x25,0xb0,0x05,0x3c,0x4c,0x00,0xa2,0x34,0x00,0x00,0x43,0x90, +0x78,0x1b,0x46,0x25,0xf9,0x0a,0xc2,0x90,0x03,0x00,0x67,0x30,0x09,0x00,0x47,0x10, +0x58,0x00,0xa2,0x34,0x00,0x00,0x44,0x8c,0x29,0xb0,0x03,0x3c,0x5c,0x00,0xa2,0x34, +0x00,0x00,0x64,0xac,0x00,0x00,0x44,0x8c,0x04,0x00,0x63,0x34,0xf9,0x0a,0xc7,0xa0, +0x00,0x00,0x64,0xac,0x78,0x1b,0x42,0x25,0xcb,0x02,0x43,0x90,0x25,0xb0,0x02,0x3c, +0x90,0x0c,0x42,0x34,0x0f,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x42,0x25,0xc9,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x91,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x78,0x1b,0x42,0x25,0xca,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,0x92,0x0c,0x63,0x34, +0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x78,0x1b,0x42,0x25, +0xc8,0x02,0x43,0x8c,0x25,0xb0,0x02,0x3c,0x93,0x0c,0x42,0x34,0x02,0x1f,0x03,0x00, +0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x78,0x1b,0x42,0x25, +0xea,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,0x98,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x2d,0x0a,0x46,0x34, +0xa2,0x0d,0x43,0x34,0xa4,0x0d,0x44,0x34,0xa6,0x0d,0x45,0x34,0xa8,0x0d,0x42,0x34, +0x00,0x00,0x67,0x94,0x00,0x00,0x88,0x94,0x00,0x00,0xa9,0x94,0x00,0x00,0x44,0x94, +0x00,0x00,0xc3,0x90,0x78,0x1b,0x42,0x25,0xe2,0x02,0x44,0xa4,0x40,0x00,0x63,0x34, +0xff,0x00,0x63,0x30,0x00,0x00,0xc3,0xa0,0xdc,0x02,0x47,0xa4,0xde,0x02,0x48,0xa4, +0xe0,0x02,0x49,0xa4,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x07,0x3c, +0x5b,0x0a,0xe2,0x34,0x00,0x00,0x44,0x90,0x78,0x1b,0x46,0x25,0x5c,0x0a,0xe2,0x34, +0x00,0x00,0x45,0x90,0xdc,0x02,0xc3,0x94,0xde,0x02,0xc2,0x94,0xe0,0x02,0xc9,0x94, +0xe2,0x02,0xc8,0x94,0xff,0x00,0x84,0x30,0x21,0x18,0x62,0x00,0x00,0x22,0x04,0x00, +0xff,0x00,0xa5,0x30,0x21,0x20,0x85,0x00,0x21,0x18,0x69,0x00,0xff,0xff,0x82,0x30, +0x21,0x18,0x68,0x00,0x21,0x18,0x62,0x00,0x64,0x0c,0xe7,0x34,0xff,0xff,0x42,0x30, +0xe4,0x02,0xc3,0xac,0x00,0x00,0xe2,0xa4,0xe8,0x02,0xc4,0xa4,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x42,0x8d,0x01,0x00,0x03,0x24,0x01,0x00,0x44,0x30, +0x07,0x00,0x83,0x10,0x78,0x1b,0x45,0x25,0x24,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00, +0x10,0x00,0xbf,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27, +0xe8,0x02,0xa2,0x8c,0x00,0x00,0x00,0x00,0x02,0x17,0x02,0x00,0x01,0x00,0x42,0x30, +0xf5,0xff,0x40,0x14,0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90, +0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,0x4e,0x00,0x64,0x10,0x00,0x00,0x00,0x00, +0x78,0x1b,0x45,0x25,0xea,0x02,0xa2,0x90,0x00,0x00,0x00,0x00,0x07,0x00,0x40,0x14, +0x78,0x1b,0x46,0x25,0x78,0x1b,0x42,0x8d,0x01,0x00,0x03,0x24,0x02,0x11,0x02,0x00, +0x03,0x00,0x42,0x30,0x49,0x00,0x43,0x10,0x3e,0x00,0x02,0x24,0xea,0x02,0xc3,0x90, +0xff,0x00,0x02,0x24,0xe0,0xff,0x62,0x14,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34, +0x00,0x00,0x45,0x90,0xcc,0x02,0xc4,0x94,0xe4,0x02,0xc7,0x8c,0x32,0x00,0x02,0x24, +0x20,0x00,0x03,0x24,0x7f,0x00,0xa5,0x30,0x2b,0x20,0xe4,0x00,0xd4,0x02,0xc2,0xa0, +0xd5,0x02,0xc3,0xa0,0x0c,0x00,0x80,0x14,0xff,0xff,0xa2,0x24,0xce,0x02,0xc2,0x94, +0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x00,0x09,0x00,0x40,0x14,0x78,0x1b,0x44,0x25, +0xd0,0x02,0xc2,0x94,0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x00,0x02,0x00,0x40,0x10, +0x02,0x00,0xa2,0x24,0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30,0x78,0x1b,0x44,0x25, +0xd4,0x02,0x83,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x65,0x00,0x7e,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x21,0x28,0x60,0x00,0x78,0x1b,0x43,0x25,0xe4,0x02,0x62,0x8c, +0x00,0x00,0x00,0x00,0x11,0x27,0x42,0x2c,0x73,0x00,0x40,0x14,0x3a,0x00,0xa2,0x2c, +0x32,0x00,0x05,0x24,0x44,0x00,0x03,0x24,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34, +0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34,0x00,0x00,0x45,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x58,0x0c,0x42,0x34, +0x00,0x00,0x45,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x3e,0x1a,0x00,0x08, +0x00,0x00,0x00,0x00,0xea,0x02,0xa2,0x90,0x00,0x00,0x00,0x00,0xb0,0xff,0x40,0x14, +0xff,0xff,0x02,0x24,0x50,0x1a,0x00,0x08,0xea,0x02,0xa2,0xa0,0x02,0x00,0xa4,0x90, +0xd4,0x02,0xa2,0xa0,0x1c,0x00,0x03,0x24,0x06,0x00,0x02,0x24,0x57,0x00,0x82,0x10, +0xd5,0x02,0xa3,0xa0,0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90, +0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,0x8f,0xff,0x60,0x10,0x78,0x1b,0x44,0x25, +0x80,0x11,0x83,0x8c,0xff,0xff,0x02,0x34,0x8b,0xff,0x62,0x10,0x00,0x00,0x00,0x00, +0xe4,0x02,0x83,0x8c,0x00,0x00,0x00,0x00,0xe9,0x03,0x62,0x2c,0x5c,0x00,0x40,0x14, +0x90,0x01,0x62,0x2c,0xd6,0x02,0x83,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x03,0x00, +0x03,0x16,0x02,0x00,0xfe,0xff,0x42,0x24,0xfc,0xff,0x42,0x28,0x02,0x00,0x40,0x10, +0xfe,0xff,0x62,0x24,0xfc,0xff,0x02,0x24,0xd6,0x02,0x82,0xa0,0x78,0x1b,0x44,0x25, +0x80,0x11,0x82,0x8c,0xd6,0x02,0x83,0x90,0xd2,0x02,0x85,0x90,0x02,0x11,0x02,0x00, +0x7f,0x00,0x42,0x30,0x0a,0x00,0x47,0x24,0x23,0x18,0xe3,0x00,0x00,0x3e,0x03,0x00, +0x03,0x3e,0x07,0x00,0xff,0x00,0xa2,0x30,0x2a,0x10,0x47,0x00,0x3e,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x00,0x3e,0x05,0x00,0x03,0x3e,0x07,0x00,0x78,0x1b,0x43,0x25, +0xe4,0x02,0x62,0x8c,0x00,0x00,0x00,0x00,0x11,0x27,0x42,0x2c,0x32,0x00,0x40,0x14, +0x3a,0x00,0xe2,0x28,0x32,0x00,0xe2,0x28,0x2f,0x00,0x40,0x10,0x3a,0x00,0xe2,0x28, +0x32,0x00,0x07,0x24,0x44,0x00,0x03,0x24,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34, +0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34,0xff,0x00,0xe4,0x30, +0x00,0x00,0x44,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c, +0x58,0x0c,0x42,0x34,0x00,0x00,0x44,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x3e,0x1a,0x00,0x08,0x00,0x00,0x00,0x00,0x8f,0xff,0x40,0x10,0x48,0x00,0x03,0x24, +0x86,0x1a,0x00,0x08,0x44,0x00,0x03,0x24,0xd5,0x02,0x83,0x90,0x00,0x00,0x00,0x00, +0x2b,0x10,0xa3,0x00,0x7e,0x1a,0x00,0x08,0x0b,0x28,0x62,0x00,0x25,0xb0,0x02,0x3c, +0x00,0x08,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x27,0x18,0x03,0x00, +0x01,0x00,0x63,0x30,0xa4,0xff,0x60,0x10,0x25,0xb0,0x02,0x3c,0x36,0x00,0x02,0x24, +0xa9,0x1a,0x00,0x08,0xd2,0x02,0xa2,0xa0,0xd3,0xff,0x40,0x10,0x48,0x00,0x03,0x24, +0xde,0x1a,0x00,0x08,0x44,0x00,0x03,0x24,0xd3,0x02,0x83,0x80,0x00,0x00,0x00,0x00, +0xff,0x00,0x62,0x30,0x2a,0x10,0xe2,0x00,0xd3,0x1a,0x00,0x08,0x0b,0x38,0x62,0x00, +0xae,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xd6,0x02,0x83,0x90,0x00,0x00,0x00,0x00, +0x00,0x16,0x03,0x00,0x03,0x16,0x02,0x00,0x02,0x00,0x42,0x24,0x0d,0x00,0x42,0x28, +0x03,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0xc2,0x1a,0x00,0x08,0x0c,0x00,0x02,0x24, +0xc2,0x1a,0x00,0x08,0x02,0x00,0x62,0x24,0xc0,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf, +0x25,0xb0,0x14,0x3c,0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf, +0x2c,0x00,0xb5,0xaf,0x20,0x00,0xb2,0xaf,0xd8,0x00,0x86,0x36,0x00,0x00,0xc3,0x90, +0x02,0x80,0x02,0x3c,0x78,0x1b,0x51,0x24,0x2a,0xb0,0x10,0x3c,0xa0,0xff,0x02,0x24, +0x25,0x18,0x62,0x00,0x34,0x00,0x05,0x36,0xfe,0xff,0x02,0x24,0xbc,0x02,0x32,0x92, +0x40,0x00,0x04,0x24,0x00,0x00,0xc3,0xa0,0x00,0x00,0xa2,0xa0,0x39,0x15,0x00,0x0c, +0x00,0x96,0x12,0x00,0x21,0x98,0x40,0x00,0x8d,0x00,0x60,0x12,0x00,0x40,0x02,0x3c, +0x08,0x00,0x63,0x8e,0xb0,0x03,0x82,0x36,0x25,0xb0,0x1e,0x3c,0x21,0x20,0x60,0x02, +0x00,0x00,0x43,0xac,0x02,0x45,0x00,0x0c,0x21,0xb8,0x20,0x02,0x42,0x00,0xd5,0x37, +0x03,0x0c,0xd1,0x37,0x17,0x0e,0xd6,0x37,0x04,0x00,0x14,0x24,0x2a,0xb0,0x03,0x3c, +0x06,0x00,0x63,0x34,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x00,0xff,0x42,0x30, +0x0a,0x00,0x40,0x18,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0xd4,0xb2,0x84,0x24, +0x00,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00, +0x00,0xff,0x42,0x30,0xfc,0xff,0x40,0x1c,0x00,0x00,0x00,0x00,0x08,0x00,0x65,0x8e, +0x20,0x10,0x06,0x3c,0x01,0x00,0x04,0x24,0x00,0xfe,0xc6,0x34,0x40,0x00,0x07,0x24, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xa4,0xaf,0x00,0x02,0x00,0x0c,0x01,0x00,0x04,0x24, +0x02,0x80,0x02,0x3c,0xd8,0xb2,0x42,0x24,0x00,0x00,0x45,0x8c,0x01,0x00,0x03,0x24, +0x21,0x20,0x00,0x00,0x00,0x00,0xa3,0xa0,0xff,0xff,0x03,0x24,0x00,0x00,0xa3,0xa2, +0x00,0x00,0x22,0x92,0x00,0x00,0x00,0x00,0xff,0x00,0x42,0x30,0x40,0x00,0x42,0x34, +0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x02,0x00,0x02,0x24,0x02,0x80,0x04,0x3c, +0x00,0x00,0xa2,0xa0,0x78,0x1b,0x83,0x24,0xc1,0x02,0x62,0x90,0x00,0x00,0xc4,0x92, +0x21,0x28,0x00,0x00,0x00,0x00,0xc2,0xa2,0xff,0x00,0x90,0x30,0x01,0x00,0xa2,0x24, +0xff,0x00,0x45,0x30,0x06,0x00,0xa3,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0xa2,0x24, +0xef,0xff,0x02,0x24,0x64,0x00,0x04,0x24,0x00,0x00,0xa2,0xa2,0xcb,0x12,0x00,0x0c, +0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x92,0x21,0x20,0x00,0x00,0xbf,0x00,0x42,0x30, +0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0xcb,0x12,0x00,0x0c,0x84,0x03,0x04,0x24, +0xf4,0x08,0xc2,0x37,0x00,0x00,0x43,0x8c,0x00,0x80,0x04,0x3c,0xdf,0x07,0x84,0x34, +0x00,0x00,0xd0,0xa2,0x21,0x10,0x00,0x00,0x24,0x28,0x64,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x00,0x00,0xa0,0xa2,0x00,0x00,0x22,0x92,0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30, +0x40,0x00,0x42,0x34,0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30, +0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0xbe,0x02,0xe2,0x92, +0x1f,0x00,0xa3,0x30,0x2b,0x10,0x62,0x00,0x0a,0x00,0x40,0x10,0x02,0x80,0x02,0x3c, +0xbf,0x02,0xe2,0x92,0x00,0x00,0x00,0x00,0x2b,0x10,0x43,0x00,0x05,0x00,0x40,0x10, +0x02,0x80,0x02,0x3c,0x01,0x00,0x02,0x3c,0x25,0x10,0x62,0x00,0x21,0x90,0x42,0x02, +0x02,0x80,0x02,0x3c,0x56,0x43,0x43,0x90,0x22,0x00,0x02,0x24,0x1c,0x00,0x62,0x10, +0x92,0x00,0x02,0x24,0x1b,0x00,0x62,0x10,0x02,0x80,0x03,0x3c,0xff,0xff,0x94,0x26, +0xcb,0x12,0x00,0x0c,0xf4,0x01,0x04,0x24,0x89,0xff,0x81,0x06,0x2a,0xb0,0x03,0x3c, +0x04,0x00,0x60,0x12,0x25,0xb0,0x02,0x3c,0x56,0x15,0x00,0x0c,0x21,0x20,0x60,0x02, +0x25,0xb0,0x02,0x3c,0xd8,0x02,0x42,0x34,0x00,0x00,0x52,0xac,0x21,0x10,0x40,0x02, +0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f, +0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f, +0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27, +0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24,0xbe,0x02,0x62,0x90,0xc0,0x07,0xa3,0x30, +0x82,0x19,0x03,0x00,0x2b,0x10,0x62,0x00,0xe0,0xff,0x40,0x10,0x02,0x80,0x04,0x3c, +0x78,0x1b,0x84,0x24,0xbf,0x02,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x43,0x00, +0xda,0xff,0x40,0x10,0x00,0x12,0x03,0x00,0x10,0x00,0x03,0x3c,0x25,0x10,0x43,0x00, +0xbf,0x1b,0x00,0x08,0x21,0x90,0x42,0x02,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf, +0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,0xf0,0xf8,0x06,0x34,0x15,0x00,0x04,0x24, +0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0xb8,0x44,0x00,0x0c,0x14,0x00,0xb1,0xaf, +0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x02,0x80,0x12,0x3c,0xff,0xff,0x05,0x36, +0x56,0x30,0x06,0x24,0xb8,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0x78,0x1b,0x51,0x26, +0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x08,0x03,0x23,0x92,0x04,0x00,0x02,0x24, +0x20,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,0x18,0x03,0x25,0x8e,0x25,0xb0,0x10,0x3c, +0xb1,0x5a,0x00,0x0c,0x00,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c, +0x04,0x0e,0x04,0x36,0x1c,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x08,0x0e,0x04,0x36, +0x18,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x10,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e, +0xb1,0x5a,0x00,0x0c,0x14,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c, +0x18,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x1c,0x0e,0x04,0x36, +0x78,0x1b,0x43,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x04,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03, +0x08,0x03,0x62,0xa0,0x00,0x0e,0x42,0x34,0x00,0x00,0x43,0x8c,0x18,0x03,0x25,0x8e, +0x00,0x00,0x00,0x00,0xde,0xff,0x65,0x14,0x25,0xb0,0x10,0x3c,0x19,0x1c,0x00,0x08, +0x78,0x1b,0x43,0x26,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x10,0x3c, +0xff,0xff,0x05,0x36,0xf0,0xf8,0x06,0x34,0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf, +0x18,0x00,0xb2,0xaf,0xb8,0x44,0x00,0x0c,0x14,0x00,0xb1,0xaf,0xcb,0x12,0x00,0x0c, +0x64,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x56,0x30,0x06,0x24,0xb8,0x44,0x00,0x0c, +0x1a,0x00,0x04,0x24,0x02,0x80,0x10,0x3c,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24, +0x78,0x1b,0x02,0x26,0x08,0x03,0x46,0x90,0x25,0xb0,0x11,0x3c,0x10,0x10,0x12,0x3c, +0x01,0x00,0x03,0x24,0x00,0x0e,0x24,0x36,0x1e,0x00,0xc3,0x10,0x10,0x10,0x45,0x36, +0xb1,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,0x04,0x0e,0x24,0x36,0xb1,0x5a,0x00,0x0c, +0x10,0x10,0x45,0x36,0x08,0x0e,0x24,0x36,0xb1,0x5a,0x00,0x0c,0x10,0x10,0x05,0x24, +0x10,0x0e,0x24,0x36,0xb1,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,0x14,0x0e,0x24,0x36, +0xb1,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,0x18,0x0e,0x24,0x36,0xb1,0x5a,0x00,0x0c, +0x10,0x10,0x45,0x36,0x1c,0x0e,0x24,0x36,0xb1,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36, +0x78,0x1b,0x03,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03, +0x08,0x03,0x62,0xa0,0x00,0x00,0x86,0x8c,0x00,0x00,0x00,0x00,0xe0,0xff,0xc5,0x14, +0x78,0x1b,0x03,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03, +0x08,0x03,0x62,0xa0,0xd8,0xff,0xbd,0x27,0x1c,0x00,0xb3,0xaf,0x02,0x80,0x13,0x3c, +0x14,0x00,0xb1,0xaf,0x78,0x1b,0x71,0x26,0x10,0x03,0x26,0x8e,0x10,0x00,0xb0,0xaf, +0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,0x15,0x00,0x04,0x24,0x20,0x00,0xbf,0xaf, +0xb8,0x44,0x00,0x0c,0x18,0x00,0xb2,0xaf,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24, +0x14,0x03,0x26,0x8e,0xff,0xff,0x05,0x36,0xb8,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24, +0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x08,0x03,0x22,0x92,0x25,0xb0,0x12,0x3c, +0x08,0x00,0x40,0x14,0x08,0x0e,0x44,0x36,0x25,0xb0,0x02,0x3c,0x00,0x0e,0x42,0x34, +0x00,0x00,0x45,0x8c,0xf0,0x02,0x23,0x8e,0x00,0x00,0x00,0x00,0x17,0x00,0xa3,0x10, +0x78,0x1b,0x62,0x26,0xec,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00, +0xf0,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x00,0x0e,0x44,0x36,0xf4,0x02,0x25,0x8e, +0xb1,0x5a,0x00,0x0c,0x04,0x0e,0x44,0x36,0xf8,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c, +0x10,0x0e,0x44,0x36,0xfc,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x14,0x0e,0x44,0x36, +0x00,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x18,0x0e,0x44,0x36,0x04,0x03,0x25,0x8e, +0xb1,0x5a,0x00,0x0c,0x1c,0x0e,0x44,0x36,0x78,0x1b,0x62,0x26,0x20,0x00,0xbf,0x8f, +0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x28,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x40,0xa0,0xe0,0xff,0xbd,0x27, +0x18,0x00,0xb2,0xaf,0x02,0x80,0x12,0x3c,0x14,0x00,0xb1,0xaf,0x78,0x1b,0x51,0x26, +0x10,0x03,0x26,0x8e,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36, +0x1c,0x00,0xbf,0xaf,0xb8,0x44,0x00,0x0c,0x15,0x00,0x04,0x24,0xcb,0x12,0x00,0x0c, +0x64,0x00,0x04,0x24,0x14,0x03,0x26,0x8e,0xff,0xff,0x05,0x36,0xb8,0x44,0x00,0x0c, +0x1a,0x00,0x04,0x24,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x08,0x03,0x23,0x92, +0x03,0x00,0x02,0x24,0x2c,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,0xf0,0x02,0x25,0x8e, +0x25,0xb0,0x10,0x3c,0xb1,0x5a,0x00,0x0c,0x00,0x0e,0x04,0x36,0xf4,0x02,0x25,0x8e, +0xb1,0x5a,0x00,0x0c,0x04,0x0e,0x04,0x36,0xf8,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c, +0x10,0x0e,0x04,0x36,0xfc,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x14,0x0e,0x04,0x36, +0x00,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x18,0x0e,0x04,0x36,0x04,0x03,0x25,0x8e, +0xb1,0x5a,0x00,0x0c,0x1c,0x0e,0x04,0x36,0x0c,0x03,0x24,0x8e,0xec,0x02,0x22,0x8e, +0x00,0x00,0x00,0x00,0x21,0x28,0x44,0x00,0x00,0xff,0xa3,0x30,0xff,0xff,0x02,0x3c, +0xff,0x00,0x42,0x34,0x01,0x3f,0x63,0x2c,0x24,0x10,0xa2,0x00,0x0c,0x00,0x60,0x10, +0x08,0x0e,0x04,0x36,0xb1,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,0x78,0x1b,0x43,0x26, +0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x03,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x62,0xa0, +0xe1,0x1c,0x00,0x08,0x00,0x3f,0x45,0x34,0x00,0x0e,0x42,0x34,0x00,0x00,0x43,0x8c, +0xf0,0x02,0x25,0x8e,0x00,0x00,0x00,0x00,0xd2,0xff,0x65,0x14,0x25,0xb0,0x10,0x3c, +0xe4,0x1c,0x00,0x08,0x78,0x1b,0x43,0x26,0xd8,0xff,0xbd,0x27,0x18,0x00,0xb2,0xaf, +0x02,0x80,0x12,0x3c,0x20,0x00,0xb4,0xaf,0x24,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x78,0x1b,0x44,0x26,0x80,0x11,0x82,0x8c, +0x78,0x1b,0x43,0x8e,0x08,0x03,0x93,0x90,0x02,0x11,0x02,0x00,0x7f,0x00,0x54,0x30, +0xcc,0x00,0x63,0x30,0x40,0x00,0x02,0x24,0x68,0x00,0x62,0x10,0x01,0x00,0x02,0x24, +0x25,0xb0,0x08,0x3c,0x4c,0x00,0x03,0x35,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00, +0x03,0x00,0x42,0x30,0x07,0x00,0x40,0x10,0x78,0x1b,0x45,0x26,0x78,0x1b,0x42,0x92, +0x00,0x00,0x00,0x00,0x82,0x11,0x02,0x00,0x2f,0x00,0x40,0x10,0x00,0x0e,0x05,0x35, +0x78,0x1b,0x45,0x26,0x08,0x03,0xa2,0x8c,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00, +0x0f,0x00,0x40,0x14,0x78,0x1b,0x42,0x26,0x25,0xb0,0x02,0x3c,0x84,0x01,0x42,0x34, +0x00,0x00,0x44,0x8c,0x0d,0x00,0x03,0x24,0x7b,0x00,0x83,0x10,0x3e,0x00,0x02,0x24, +0x4a,0x00,0x03,0x24,0x23,0x03,0xa2,0xa0,0x20,0x03,0xa3,0xa0,0x45,0x00,0x02,0x24, +0x43,0x00,0x03,0x24,0x21,0x03,0xa2,0xa0,0x22,0x03,0xa3,0xa0,0x78,0x1b,0x42,0x26, +0x80,0x11,0x43,0x8c,0x25,0xb0,0x02,0x3c,0x60,0x0c,0x42,0x34,0x02,0x19,0x03,0x00, +0xff,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x78,0x1b,0x45,0x8e,0x44,0x00,0x02,0x24,0xcc,0x00,0xa3,0x30,0x3e,0x00,0x62,0x10, +0x78,0x1b,0x44,0x26,0x24,0x00,0xbf,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x00,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00, +0x5e,0x00,0x40,0x10,0x10,0x0e,0x07,0x35,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x08,0x0e,0x02,0x35,0x04,0x0e,0x03,0x35, +0x00,0x00,0x44,0x8c,0x00,0x00,0xa5,0x8c,0x00,0x00,0x66,0x8c,0x02,0x80,0x02,0x3c, +0x78,0x1b,0x49,0x24,0xec,0x02,0x24,0xad,0xf0,0x02,0x25,0xad,0xf4,0x02,0x26,0xad, +0x14,0x0e,0x04,0x35,0x02,0x80,0x02,0x3c,0x18,0x0e,0x05,0x35,0x00,0x00,0xe7,0x8c, +0x1c,0x0e,0x06,0x35,0x00,0x00,0x83,0x8c,0x56,0x43,0x4a,0x90,0x00,0x00,0xa2,0x8c, +0x00,0x00,0xc4,0x8c,0xf8,0x02,0x27,0xad,0x00,0x03,0x22,0xad,0x22,0x00,0x02,0x24, +0xfc,0x02,0x23,0xad,0x5a,0x00,0x42,0x11,0x04,0x03,0x24,0xad,0x92,0x00,0x02,0x24, +0x58,0x00,0x42,0x11,0x0d,0x08,0x02,0x35,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x78,0x1b,0x42,0x8e,0x3f,0xff,0x03,0x24,0x24,0x10,0x43,0x00, +0x40,0x00,0x42,0x34,0x14,0x1d,0x00,0x08,0x78,0x1b,0x42,0xae,0x3a,0x00,0x62,0x12, +0x04,0x00,0x02,0x24,0x38,0x00,0x62,0x12,0x78,0x1b,0x43,0x26,0xff,0xff,0x02,0x24, +0x08,0x1d,0x00,0x08,0x08,0x03,0x62,0xa0,0x80,0x11,0x83,0x8c,0xff,0xff,0x02,0x34, +0xc0,0xff,0x62,0x10,0x02,0x11,0x05,0x00,0x03,0x00,0x45,0x30,0x01,0x00,0x03,0x24, +0xbc,0xff,0xa3,0x14,0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90, +0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,0xb6,0xff,0x60,0x10,0x03,0x00,0x02,0x24, +0x65,0x00,0x62,0x12,0x04,0x00,0x62,0x2a,0x47,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x6a,0x00,0x60,0x12,0x00,0x00,0x00,0x00,0xae,0xff,0x65,0x16,0x00,0x00,0x00,0x00, +0x20,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x56,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x23,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00, +0x48,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x6d,0x1c,0x00,0x0c,0x00,0x00,0x00,0x00, +0x39,0x1d,0x00,0x08,0x00,0x00,0x00,0x00,0x3b,0x00,0x02,0x24,0x46,0x00,0x03,0x24, +0x23,0x03,0xa2,0xa0,0x20,0x03,0xa3,0xa0,0x41,0x00,0x02,0x24,0x40,0x00,0x03,0x24, +0x21,0x03,0xa2,0xa0,0x27,0x1d,0x00,0x08,0x22,0x03,0xa3,0xa0,0x00,0x00,0xe3,0x8c, +0x3f,0x3f,0x02,0x3c,0x3f,0x3f,0x42,0x34,0x9f,0xff,0x62,0x14,0x00,0x00,0x00,0x00, +0x15,0x1d,0x00,0x08,0x78,0x1b,0x45,0x26,0x0f,0x00,0x10,0x3c,0x01,0x00,0x11,0x3c, +0xff,0xff,0x05,0x36,0xf4,0x98,0x26,0x36,0xb8,0x44,0x00,0x0c,0x15,0x00,0x04,0x24, +0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x56,0x30,0x26,0x36, +0xb8,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24, +0x78,0x1b,0x43,0x26,0xff,0xff,0x02,0x24,0x08,0x1d,0x00,0x08,0x08,0x03,0x62,0xa0, +0x0d,0x08,0x02,0x35,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x63,0x30, +0x08,0x00,0x62,0x2c,0x0f,0x00,0x63,0x38,0xa3,0xff,0x40,0x14,0x01,0x00,0x65,0x24, +0x00,0x16,0x05,0x00,0x00,0x24,0x05,0x00,0x00,0x1a,0x05,0x00,0x25,0x10,0x44,0x00, +0x25,0x10,0x43,0x00,0x25,0x10,0x45,0x00,0x25,0x18,0x65,0x00,0x1c,0x03,0x23,0xad, +0x66,0x1d,0x00,0x08,0x18,0x03,0x22,0xad,0x04,0x00,0x02,0x24,0x11,0x00,0x62,0x12, +0xff,0x00,0x02,0x24,0x67,0xff,0x62,0x16,0x00,0x00,0x00,0x00,0x22,0x03,0x82,0x90, +0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x21,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x20,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x0a,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x29,0x1c,0x00,0x0c,0x00,0x00,0x00,0x00,0x39,0x1d,0x00,0x08, +0x00,0x00,0x00,0x00,0x21,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00, +0xf8,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xea,0x1b,0x00,0x0c,0x00,0x00,0x00,0x00, +0x39,0x1d,0x00,0x08,0x00,0x00,0x00,0x00,0x24,0x03,0x82,0x90,0x00,0x00,0x00,0x00, +0x2b,0x10,0x82,0x02,0xa8,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xab,0x1c,0x00,0x0c, +0x00,0x00,0x00,0x00,0x39,0x1d,0x00,0x08,0x00,0x00,0x00,0x00,0x22,0x03,0x82,0x90, +0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0xe6,0xff,0x40,0x10,0x00,0x00,0x00,0x00, +0x25,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,0x9a,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0xab,0x1c,0x00,0x0c,0x00,0x00,0x00,0x00,0x39,0x1d,0x00,0x08, +0x00,0x00,0x00,0x00,0x02,0x80,0x08,0x3c,0x78,0x1b,0x05,0x25,0x80,0x11,0xa4,0x8c, +0xea,0x02,0xa3,0x90,0x02,0x11,0x04,0x00,0x26,0x00,0x60,0x14,0x7f,0x00,0x46,0x30, +0x25,0xb0,0x07,0x3c,0x4c,0x00,0xe2,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00, +0x20,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x34,0x1d,0x00,0x82,0x10, +0x00,0x00,0x00,0x00,0x00,0x08,0xe3,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00, +0x01,0x00,0x42,0x30,0x19,0x00,0x40,0x10,0x4b,0x00,0xc2,0x2c,0x3e,0x00,0x40,0x10, +0x01,0x00,0x04,0x24,0xd8,0xff,0xc2,0x24,0x1e,0x00,0x42,0x2c,0x49,0x00,0x40,0x10, +0x23,0x00,0xc2,0x2c,0x78,0x1b,0x04,0x25,0xd7,0x02,0x82,0x90,0x00,0x00,0x00,0x00, +0x44,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c,0x25,0xb0,0x02,0x3c,0x87,0x0c,0x42,0x34, +0x20,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,0xd7,0x02,0x80,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x17,0x00,0x40,0x10, +0x01,0x00,0x04,0x24,0xd8,0xff,0xc2,0x24,0x1e,0x00,0x42,0x2c,0x44,0x00,0x40,0x10, +0x23,0x00,0xc2,0x2c,0x78,0x1b,0x04,0x25,0xd7,0x02,0x82,0x90,0x00,0x00,0x00,0x00, +0x3f,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34, +0x44,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,0xd7,0x02,0x80,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xd7,0x02,0xa2,0x90, +0x00,0x00,0x00,0x00,0xe7,0xff,0x44,0x10,0x43,0x00,0x02,0x24,0x30,0x0c,0xe3,0x34, +0xd7,0x02,0xa4,0xa0,0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xd7,0x02,0xa2,0x90,0x00,0x00,0x00,0x00, +0xc0,0xff,0x44,0x10,0x10,0x00,0x02,0x24,0x87,0x0c,0xe3,0x34,0xd7,0x02,0xa4,0xa0, +0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0xc7,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x78,0x1b,0x04,0x25, +0xd7,0x02,0x82,0x90,0x02,0x00,0x03,0x24,0xc2,0xff,0x43,0x10,0x00,0x00,0x00,0x00, +0x25,0xb0,0x02,0x3c,0x87,0x0c,0x42,0x34,0xd7,0x02,0x83,0xa0,0x00,0x00,0x40,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0xb4,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x78,0x1b,0x04,0x25,0xd7,0x02,0x82,0x90, +0x02,0x00,0x03,0x24,0xaf,0xff,0x43,0x10,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c, +0xd7,0x02,0x83,0xa0,0x30,0x0c,0x42,0x34,0x42,0x00,0x03,0x24,0x00,0x00,0x43,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x2a,0xb0,0x04,0x3c,0x28,0x00,0x85,0x34,0x02,0x00,0x82,0x94,0x04,0x00,0x84,0x24, +0x05,0x00,0x40,0x14,0x2b,0x18,0xa4,0x00,0xfb,0xff,0x60,0x10,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,0x90,0x1e,0x00,0x0c,0x00,0x00,0x00,0x00, +0x08,0x00,0x40,0x10,0x01,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,0xb8,0x44,0x43,0xa0, +0x14,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x6c,0x44,0x44,0xac, +0xb7,0x44,0x60,0xa0,0x10,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0x9e,0x44,0x40,0xa0,0xff,0x00,0x85,0x30, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xb0,0x44,0x60,0xa0,0x08,0x00,0xa4,0x2c, +0xb2,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xba,0x44,0x60,0xa0, +0x98,0x44,0x45,0xa0,0x11,0x00,0x80,0x10,0x02,0x80,0x03,0x3c,0x80,0x10,0x05,0x00, +0xdc,0xb2,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00, +0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x80,0x05,0x3c,0x78,0x1b,0xa5,0x24, +0x08,0x0b,0xa4,0x8c,0x00,0x70,0x02,0x3c,0x08,0x00,0x42,0x34,0x25,0x20,0x82,0x00, +0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,0x08,0x0b,0xa4,0xac,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x02,0x80,0x05,0x3c,0x78,0x1b,0xa5,0x24,0x08,0x0b,0xa4,0x8c, +0x00,0x70,0x02,0x3c,0x08,0x00,0x42,0x34,0x27,0x10,0x02,0x00,0x24,0x20,0x82,0x00, +0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac, +0x02,0x80,0x05,0x3c,0x78,0x1b,0xa5,0x24,0x08,0x0b,0xa2,0x8c,0x14,0x0b,0xa6,0x94, +0x00,0x70,0x04,0x3c,0x41,0xb0,0x03,0x3c,0x08,0x00,0x42,0x34,0x27,0x20,0x04,0x00, +0x00,0x00,0x62,0xac,0x24,0x20,0x44,0x00,0x10,0x00,0xc6,0x34,0x08,0x00,0x67,0x34, +0x02,0x80,0x08,0x3c,0x01,0x00,0x02,0x24,0x00,0x00,0x64,0xac,0x00,0x00,0xe6,0xa4, +0xb4,0x44,0x02,0xa1,0xb4,0x44,0x03,0x91,0x02,0x80,0x02,0x3c,0x14,0x0b,0xa6,0xa4, +0xb5,0x44,0x43,0xa0,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,0x02,0x80,0x05,0x3c, +0x78,0x1b,0xa5,0x24,0x08,0x0b,0xa3,0x8c,0x14,0x0b,0xa6,0x94,0x00,0x70,0x02,0x3c, +0x41,0xb0,0x04,0x3c,0x08,0x00,0x63,0x34,0x27,0x10,0x02,0x00,0x24,0x10,0x62,0x00, +0x10,0x00,0xc6,0x34,0x08,0x00,0x87,0x34,0x14,0x0b,0xa6,0xa4,0x00,0x00,0x83,0xac, +0x00,0x00,0x82,0xac,0x00,0x00,0xe6,0xa4,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac, +0x25,0xb0,0x03,0x3c,0xbe,0x00,0x63,0x34,0x00,0x00,0x62,0x94,0x08,0x00,0xe0,0x03, +0x01,0x00,0x42,0x2c,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,0x90,0x1e,0x00,0x0c, +0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x15,0x00,0x40,0x10,0x78,0x41,0x64,0x24, +0x78,0x41,0x62,0x8c,0x00,0x00,0x00,0x00,0x11,0x00,0x44,0x14,0x02,0x80,0x02,0x3c, +0xb8,0x44,0x43,0x90,0x01,0x00,0x02,0x24,0xff,0x00,0x63,0x30,0x0c,0x00,0x62,0x10, +0x01,0x00,0x04,0x24,0x02,0x80,0x03,0x3c,0x99,0x44,0x62,0x90,0x00,0x00,0x00,0x00, +0x0f,0x00,0x42,0x30,0x05,0x00,0x42,0x28,0x05,0x00,0x40,0x10,0x21,0x10,0x80,0x00, +0x10,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27, +0x10,0x00,0xbf,0x8f,0x21,0x20,0x00,0x00,0x21,0x10,0x80,0x00,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,0x90,0x1e,0x00,0x0c, +0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x25,0x00,0x40,0x10,0x78,0x41,0x64,0x24, +0x78,0x41,0x62,0x8c,0x00,0x00,0x00,0x00,0x21,0x00,0x44,0x14,0x01,0x00,0x05,0x24, +0x02,0x80,0x03,0x3c,0xb0,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x42,0x30, +0x1b,0x00,0x45,0x10,0x02,0x80,0x03,0x3c,0x99,0x44,0x62,0x90,0x00,0x00,0x00,0x00, +0x0f,0x00,0x42,0x30,0x03,0x00,0x42,0x28,0x15,0x00,0x40,0x10,0x02,0x80,0x03,0x3c, +0xb2,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x30,0x10,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0xb2,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x10,0x00,0x42,0x30, +0x0b,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,0xb8,0x44,0x62,0x90,0x00,0x00,0x00,0x00, +0xff,0x00,0x42,0x30,0x06,0x00,0x45,0x10,0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c, +0xb9,0x44,0x43,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x60,0x10,0x00,0x00,0x00,0x00, +0x21,0x20,0x00,0x00,0x10,0x00,0xbf,0x8f,0x21,0x10,0x80,0x00,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0xff,0x00,0x84,0x30,0x18,0x00,0xbf,0xaf, +0x14,0x00,0xb1,0xaf,0x29,0x00,0x80,0x10,0x10,0x00,0xb0,0xaf,0x25,0xb0,0x03,0x3c, +0x04,0x0c,0x62,0x90,0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x02,0x00,0x42,0x34, +0x04,0x0c,0x62,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x04,0x0d,0x62,0x90, +0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x02,0x00,0x42,0x34,0x04,0x0d,0x62,0xa0, +0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x82,0x24,0x25,0xb0,0x10,0x3c,0x70,0x0e,0x05,0x8e,0x80,0x01,0x11,0x3c, +0x70,0x0e,0x04,0x24,0x34,0x5b,0x00,0x0c,0x25,0x28,0xb1,0x00,0x8c,0x0e,0x05,0x8e, +0x8c,0x0e,0x04,0x24,0x34,0x5b,0x00,0x0c,0x25,0x28,0xb1,0x00,0x03,0x00,0x05,0x3c, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x59,0x01,0xa5,0x34, +0x44,0x08,0x04,0x24,0x34,0x5b,0x00,0x08,0x20,0x00,0xbd,0x27,0x44,0x08,0x04,0x24, +0x34,0x5b,0x00,0x0c,0x21,0x28,0x00,0x00,0x25,0xb0,0x03,0x3c,0x04,0x0c,0x62,0x90, +0x21,0x20,0x00,0x00,0xfd,0x00,0x42,0x30,0x04,0x0c,0x62,0xa0,0x01,0x00,0x82,0x24, +0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24, +0x25,0xb0,0x03,0x3c,0x04,0x0d,0x62,0x90,0x21,0x20,0x00,0x00,0xfd,0x00,0x42,0x30, +0x04,0x0d,0x62,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x25,0xb0,0x11,0x3c,0x70,0x0e,0x25,0x8e, +0x7f,0xfe,0x10,0x3c,0xff,0xff,0x10,0x36,0x24,0x28,0xb0,0x00,0x34,0x5b,0x00,0x0c, +0x70,0x0e,0x04,0x24,0x8c,0x0e,0x25,0x8e,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f, +0x24,0x28,0xb0,0x00,0x8c,0x0e,0x04,0x24,0x10,0x00,0xb0,0x8f,0x34,0x5b,0x00,0x08, +0x20,0x00,0xbd,0x27,0x25,0xb0,0x03,0x3c,0xfc,0x37,0x02,0x24,0x40,0x00,0x64,0x34, +0x00,0x00,0x82,0xa4,0x42,0x00,0x65,0x34,0x03,0x00,0x02,0x24,0x00,0x00,0xa0,0xa0, +0x03,0x08,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf, +0x10,0x00,0xb0,0xaf,0x02,0x80,0x02,0x3c,0x98,0x44,0x43,0x90,0x00,0x00,0x00,0x00, +0x07,0x00,0x60,0x10,0x25,0xb0,0x10,0x3c,0x02,0x80,0x03,0x3c,0x56,0x43,0x62,0x90, +0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30,0x2e,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x21,0x00,0x06,0x36,0x00,0x00,0xc2,0x90,0x18,0x00,0x03,0x36,0x42,0x00,0x05,0x36, +0x01,0x00,0x42,0x34,0x00,0x00,0xc2,0xa0,0x40,0x00,0x11,0x36,0x00,0x00,0x60,0xa0, +0xff,0xff,0x02,0x24,0xfc,0x57,0x03,0x24,0x00,0x00,0xa2,0xa0,0x64,0x00,0x04,0x24, +0x00,0x00,0x23,0xa6,0xcb,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0xfc,0x77,0x02,0x24, +0x00,0x00,0x22,0xa6,0xcb,0x12,0x00,0x0c,0x0a,0x00,0x04,0x24,0x03,0x08,0x00,0xa2, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x0a,0x00,0x04,0x24,0xcb,0x12,0x00,0x0c, +0x25,0xb0,0x10,0x3c,0x40,0x00,0x10,0x36,0xfc,0x37,0x02,0x24,0x00,0x00,0x02,0xa6, +0xcb,0x12,0x00,0x0c,0x0a,0x00,0x04,0x24,0xfc,0x77,0x02,0x24,0x00,0x00,0x02,0xa6, +0xcb,0x12,0x00,0x0c,0x0a,0x00,0x04,0x24,0xfc,0x57,0x02,0x24,0x00,0x00,0x02,0xa6, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x55,0x1f,0x00,0x0c,0x21,0x20,0x00,0x00,0xc8,0x1f,0x00,0x08, +0x25,0xb0,0x10,0x3c,0xd8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x20,0x00,0xbf,0xaf, +0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0xff,0x00,0x90,0x30, +0x00,0x60,0x13,0x40,0x01,0x00,0x61,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x02,0x80,0x11,0x3c,0x9a,0x44,0x22,0x92,0x0f,0x00,0x12,0x32,0x0f,0x00,0x42,0x30, +0x0d,0x00,0x52,0x10,0x04,0x00,0x02,0x32,0x13,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x9a,0x44,0x22,0x92,0x0c,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x2f,0x00,0x43,0x10, +0x08,0x00,0x02,0x32,0x9a,0x44,0x22,0x92,0x04,0x00,0x03,0x24,0x0f,0x00,0x42,0x30, +0x5a,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x00,0x60,0x93,0x40,0x20,0x00,0xbf,0x8f, +0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x9a,0x44,0x22,0x92,0x00,0x00,0x00,0x00, +0x04,0x00,0x42,0x30,0x33,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x9a,0x44,0x22,0x92, +0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30,0x32,0x00,0x40,0x10,0x08,0x00,0x02,0x32, +0x30,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,0x60,0x26,0x62,0x90,0x00,0x00,0x00,0x00, +0x01,0x00,0x42,0x30,0x3d,0x00,0x40,0x14,0x01,0x00,0x04,0x24,0x9a,0x44,0x22,0x92, +0xf0,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x9a,0x44,0x22,0xa2,0x9a,0x44,0x23,0x92, +0x00,0x00,0x00,0x00,0x25,0x18,0x43,0x02,0x9a,0x44,0x23,0xa2,0x00,0x60,0x93,0x40, +0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0xd1,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0x05,0x1f,0x00,0x0c,0x00,0x00,0x00,0x00,0xd2,0xff,0x40,0x10, +0x00,0x00,0x00,0x00,0x9a,0x44,0x22,0x92,0xf0,0xff,0x03,0x24,0x24,0x10,0x43,0x00, +0x9a,0x44,0x22,0xa2,0x02,0x80,0x03,0x3c,0x9a,0x44,0x22,0x92,0x60,0x26,0x64,0x90, +0x04,0x00,0x42,0x34,0x01,0x00,0x84,0x30,0x9a,0x44,0x22,0xa2,0xc1,0xff,0x80,0x10, +0x00,0x00,0x00,0x00,0x0e,0x46,0x00,0x0c,0x01,0x00,0x04,0x24,0x11,0x20,0x00,0x08, +0x00,0x00,0x00,0x00,0xa9,0x1f,0x00,0x0c,0x00,0x00,0x00,0x00,0x23,0x20,0x00,0x08, +0x00,0x00,0x00,0x00,0x9a,0x44,0x22,0x92,0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30, +0xd2,0xff,0x40,0x14,0x08,0x00,0x02,0x32,0xd0,0xff,0x40,0x10,0x02,0x80,0x02,0x3c, +0xb1,0x44,0x43,0x90,0x01,0x00,0x02,0x24,0xff,0x00,0x63,0x30,0x1b,0x00,0x62,0x10, +0x02,0x80,0x03,0x3c,0x60,0x26,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30, +0xc6,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x21,0x20,0x00,0x00,0x0e,0x46,0x00,0x0c, +0x00,0x00,0x00,0x00,0x2f,0x20,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0x1f,0x00,0x0c, +0x00,0x00,0x00,0x00,0xa4,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xb9,0x1f,0x00,0x0c, +0x00,0x00,0x00,0x00,0x9a,0x44,0x22,0x92,0xf0,0xff,0x03,0x24,0x24,0x10,0x43,0x00, +0x9a,0x44,0x22,0xa2,0x9a,0x44,0x23,0x92,0x00,0x00,0x00,0x00,0x02,0x00,0x63,0x34, +0x9a,0x44,0x23,0xa2,0x37,0x20,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c, +0x98,0x44,0x43,0x90,0x00,0x00,0x00,0x00,0xac,0xff,0x60,0x14,0x02,0x80,0x03,0x3c, +0x65,0x20,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x98,0x44,0x43,0x90, +0x00,0x00,0x00,0x00,0x0c,0x00,0x60,0x10,0x02,0x80,0x02,0x3c,0xb1,0x44,0x43,0x90, +0x00,0x00,0x00,0x00,0x0a,0x00,0x60,0x14,0x0c,0x00,0x04,0x24,0x02,0x80,0x03,0x3c, +0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x42,0x30,0x04,0x00,0x42,0x28, +0x03,0x00,0x40,0x14,0x04,0x00,0x04,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xf9,0x1f,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0xe8,0xff,0xbd,0x27,0x68,0x82,0x63,0x24,0x18,0x03,0x42,0x34,0x14,0x00,0xbf,0xaf, +0x10,0x00,0xb0,0xaf,0x00,0x00,0x43,0xac,0x00,0x60,0x10,0x40,0x01,0x00,0x01,0x36, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x60,0x26,0x62,0x90, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x17,0x00,0x40,0x10,0x02,0x80,0x02,0x3c, +0x02,0x80,0x02,0x3c,0x9a,0x44,0x43,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x63,0x30, +0x04,0x00,0x63,0x28,0x17,0x00,0x60,0x14,0x04,0x00,0x04,0x24,0x02,0x80,0x03,0x3c, +0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x0c,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xb9,0x44,0x62,0xa0, +0x00,0x60,0x90,0x40,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xb9,0x44,0x40,0xa0,0x00,0x60,0x90,0x40, +0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0xf9,0x1f,0x00,0x0c,0x00,0x00,0x00,0x00,0xb4,0x20,0x00,0x08, +0x02,0x80,0x03,0x3c,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xe8,0xff,0xbd,0x27, +0x34,0x83,0x42,0x24,0x18,0x03,0x63,0x34,0x14,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf, +0x00,0x00,0x62,0xac,0x00,0x60,0x10,0x40,0x01,0x00,0x01,0x36,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x02,0x80,0x04,0x3c,0xb7,0x44,0x82,0x90,0x00,0x00,0x00,0x00, +0x0a,0x00,0x40,0x10,0x14,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,0x6c,0x44,0x43,0xac, +0xb7,0x44,0x80,0xa0,0x00,0x60,0x90,0x40,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x02,0x80,0x03,0x3c, +0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,0xba,0x44,0x44,0xa0,0xb8,0x44,0x60,0xa0, +0x02,0x80,0x02,0x3c,0x99,0x44,0x44,0x90,0xf9,0x1f,0x00,0x0c,0xff,0x00,0x84,0x30, +0x00,0x60,0x90,0x40,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x42,0x11,0x05,0x00,0x0f,0x00,0x46,0x30, +0xe8,0xff,0xbd,0x27,0x09,0x00,0xc3,0x28,0x14,0x00,0xbf,0xaf,0x15,0x00,0x60,0x10, +0x10,0x00,0xb0,0xaf,0x82,0x16,0x05,0x00,0x01,0x00,0x42,0x30,0x15,0x00,0x40,0x10, +0x00,0xc0,0x02,0x3c,0x24,0x10,0xa2,0x00,0x47,0x00,0x40,0x14,0xc2,0x15,0x04,0x00, +0x01,0x00,0x42,0x30,0x54,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c, +0x3c,0xaf,0x63,0x24,0x21,0x18,0xc3,0x00,0x02,0x80,0x04,0x3c,0xb3,0x44,0x85,0x90, +0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x24,0x10,0x45,0x00,0x4a,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0x24,0x10,0xa2,0x00,0x1f,0x00,0x40,0x14,0xc2,0x15,0x04,0x00, +0x01,0x00,0x42,0x30,0x0b,0x00,0x40,0x10,0x02,0x80,0x04,0x3c,0x02,0x80,0x03,0x3c, +0x3c,0xaf,0x63,0x24,0x21,0x18,0xc3,0x00,0x02,0x80,0x04,0x3c,0xb3,0x44,0x85,0x90, +0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x24,0x10,0x45,0x00,0x3b,0x00,0x40,0x14, +0x02,0x80,0x04,0x3c,0xb2,0x44,0x82,0x90,0xfe,0xff,0x03,0x24,0x24,0x10,0x43,0x00, +0xb2,0x44,0x82,0xa0,0xb2,0x44,0x82,0x90,0x00,0x00,0x00,0x00,0x07,0x00,0x42,0x30, +0xe4,0xff,0x40,0x14,0x02,0x80,0x02,0x3c,0xb0,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c, +0x99,0x44,0x64,0x90,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0xff,0x00,0x84,0x30, +0xf9,0x1f,0x00,0x08,0x18,0x00,0xbd,0x27,0x02,0x80,0x04,0x3c,0xb2,0x44,0x82,0x90, +0xfd,0xff,0x03,0x24,0x14,0x00,0xbf,0x8f,0x24,0x10,0x43,0x00,0x02,0x80,0x03,0x3c, +0xb2,0x44,0x82,0xa0,0xb6,0x44,0x60,0xa0,0x42,0xb0,0x04,0x3c,0x00,0x00,0x82,0x90, +0x10,0x00,0xb0,0x8f,0xef,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x03,0x00,0x85,0x34, +0x40,0x00,0x03,0x24,0x18,0x00,0xbd,0x27,0x00,0x00,0x82,0xa0,0x00,0x00,0xa3,0xa0, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x42,0xb0,0x07,0x3c,0x00,0x00,0xe3,0x90, +0xef,0xff,0x02,0x24,0x03,0x00,0xf0,0x34,0x24,0x18,0x62,0x00,0x40,0x00,0x02,0x24, +0x00,0x00,0xe3,0xa0,0x02,0x00,0x04,0x24,0x00,0x00,0x02,0xa2,0x21,0x28,0x00,0x00, +0x71,0x14,0x00,0x0c,0x00,0x03,0x06,0x24,0x44,0x00,0x02,0x24,0x00,0x00,0x02,0xa2, +0x11,0x21,0x00,0x08,0x00,0x00,0x00,0x00,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f, +0x01,0x00,0x04,0x24,0x1c,0x46,0x00,0x08,0x18,0x00,0xbd,0x27,0xb2,0x44,0x82,0x90, +0x27,0x21,0x00,0x08,0xfb,0xff,0x03,0x24,0x82,0x26,0x05,0x00,0xe8,0xff,0xbd,0x27, +0x00,0xc0,0x02,0x3c,0x01,0x00,0x84,0x30,0x14,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf, +0x0c,0x00,0x80,0x10,0x24,0x10,0xa2,0x00,0x42,0xb0,0x07,0x3c,0x03,0x00,0xf0,0x34, +0x02,0x00,0x04,0x24,0x21,0x28,0x00,0x00,0x31,0x00,0x40,0x14,0x00,0x03,0x06,0x24, +0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x04,0x24,0x1c,0x46,0x00,0x08, +0x18,0x00,0xbd,0x27,0x42,0xb0,0x04,0x3c,0x02,0x80,0x06,0x3c,0x0f,0x00,0x40,0x14, +0x03,0x00,0x87,0x34,0x02,0x80,0x06,0x3c,0xb2,0x44,0xc3,0x90,0xfe,0xff,0x02,0x24, +0x24,0x18,0x62,0x00,0xb2,0x44,0xc3,0xa0,0xb2,0x44,0xc2,0x90,0x00,0x00,0x00,0x00, +0x07,0x00,0x42,0x30,0x16,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x14,0x00,0xbf,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xb2,0x44,0xc3,0x90, +0xfd,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0x02,0x80,0x02,0x3c,0xb2,0x44,0xc3,0xa0, +0xb6,0x44,0x40,0xa0,0x00,0x00,0x83,0x90,0xef,0xff,0x02,0x24,0x24,0x18,0x62,0x00, +0x40,0x00,0x02,0x24,0x00,0x00,0x83,0xa0,0x00,0x00,0xe2,0xa0,0xb2,0x44,0xc2,0x90, +0x00,0x00,0x00,0x00,0x07,0x00,0x42,0x30,0xec,0xff,0x40,0x14,0x02,0x80,0x02,0x3c, +0xb0,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c,0x99,0x44,0x64,0x90,0x14,0x00,0xbf,0x8f, +0x10,0x00,0xb0,0x8f,0xff,0x00,0x84,0x30,0xf9,0x1f,0x00,0x08,0x18,0x00,0xbd,0x27, +0x00,0x00,0xe3,0x90,0xef,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0x40,0x00,0x02,0x24, +0x00,0x00,0xe3,0xa0,0x00,0x00,0x02,0xa2,0x71,0x14,0x00,0x0c,0x00,0x00,0x00,0x00, +0x44,0x00,0x02,0x24,0x00,0x00,0x02,0xa2,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0xff,0x00,0xa5,0x30, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x02,0x80,0x10,0x3c, +0x03,0x00,0xa0,0x14,0xff,0x00,0x91,0x30,0x19,0x00,0x20,0x12,0x02,0x80,0x02,0x3c, +0xb2,0x44,0x03,0x92,0xfb,0xff,0x02,0x24,0x01,0x00,0x04,0x24,0x24,0x18,0x62,0x00, +0xb2,0x44,0x03,0xa2,0x2e,0x00,0xa0,0x14,0x01,0x00,0x02,0x24,0xb2,0x44,0x02,0x92, +0xfe,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0xb2,0x44,0x02,0xa2,0x02,0x00,0x04,0x24, +0x21,0x28,0x00,0x00,0x13,0x00,0x20,0x16,0x00,0x03,0x06,0x24,0xb2,0x44,0x02,0x92, +0xfd,0xff,0x03,0x24,0x18,0x00,0xbf,0x8f,0x24,0x10,0x43,0x00,0xb2,0x44,0x02,0xa2, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0xb0,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c,0x99,0x44,0x64,0x90,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0x00,0x84,0x30,0xf9,0x1f,0x00,0x08, +0x20,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0x01,0x00,0x07,0x24,0xb0,0x44,0x47,0xa0, +0xb2,0x44,0x03,0x92,0x00,0x00,0x00,0x00,0x02,0x00,0x63,0x34,0xb2,0x44,0x03,0xa2, +0x71,0x14,0x00,0x0c,0x00,0x00,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x42,0xb0,0x02,0x3c,0x44,0x00,0x03,0x24,0x03,0x00,0x42,0x34, +0x20,0x00,0xbd,0x27,0x00,0x00,0x43,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x02,0x80,0x03,0x3c,0xb0,0x44,0x62,0xa0,0xb2,0x44,0x05,0x92,0x00,0x00,0x00,0x00, +0x01,0x00,0xa5,0x34,0xb2,0x44,0x05,0xa2,0x1c,0x46,0x00,0x0c,0x00,0x00,0x00,0x00, +0xc4,0x21,0x00,0x08,0x02,0x00,0x04,0x24,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c, +0xe8,0xff,0xbd,0x27,0xd8,0x87,0x42,0x24,0x18,0x03,0x63,0x34,0x10,0x00,0xb0,0xaf, +0x00,0x00,0x62,0xac,0x02,0x80,0x10,0x3c,0x99,0x44,0x02,0x92,0x00,0x00,0x00,0x00, +0x0f,0x00,0x42,0x30,0x03,0x00,0x42,0x28,0x05,0x00,0x40,0x10,0x14,0x00,0xbf,0xaf, +0x25,0x1f,0x00,0x0c,0x00,0x00,0x00,0x00,0x04,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x99,0x44,0x04,0x92,0xf9,0x1f,0x00,0x0c,0xff,0x00,0x84,0x30,0x02,0x80,0x04,0x3c, +0x78,0x1b,0x84,0x24,0x18,0x0b,0x83,0x94,0x14,0x0b,0x85,0x94,0x14,0x00,0xbf,0x8f, +0x10,0x00,0xb0,0x8f,0x02,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c,0x25,0x18,0x65,0x00, +0x08,0x00,0x42,0x34,0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4,0x08,0x00,0xe0,0x03, +0x14,0x0b,0x83,0xa4,0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x14,0x00,0xbf,0xaf, +0x02,0x80,0x10,0x3c,0x08,0x14,0x04,0x26,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00, +0x2d,0x28,0x00,0x0c,0x21,0x38,0x00,0x00,0x1e,0x22,0x00,0x08,0x08,0x14,0x04,0x26, +0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,0x82,0x5b,0x00,0x0c,0x21,0x38,0x00,0x00, +0x10,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27, +0xff,0xff,0x8d,0x30,0x00,0x60,0x0f,0x40,0x01,0x00,0xe1,0x35,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x02,0x80,0x06,0x3c,0x78,0x1b,0xce,0x24,0x82,0x0b,0xc2,0x91, +0x00,0x00,0x00,0x00,0x1d,0x00,0x40,0x10,0x25,0xb0,0x03,0x3c,0x38,0x02,0x64,0x34, +0x80,0xff,0x02,0x24,0x00,0x00,0x82,0xa0,0x34,0x02,0x6a,0x34,0xd2,0x01,0x65,0x34, +0xd6,0x01,0x66,0x34,0xda,0x01,0x67,0x34,0xde,0x01,0x63,0x34,0x00,0x00,0xa8,0x94, +0x00,0x00,0xc9,0x94,0x00,0x00,0xeb,0x94,0x00,0x00,0x6c,0x94,0x00,0x00,0x44,0x95, +0xb0,0xfe,0xa2,0x25,0xff,0xff,0x4d,0x30,0x80,0x0b,0xc4,0xa5,0x00,0x00,0xa0,0xa4, +0x78,0x0b,0xc8,0xa5,0x00,0x00,0xc0,0xa4,0x7a,0x0b,0xc9,0xa5,0x00,0x00,0xe0,0xa4, +0x7c,0x0b,0xcb,0xa5,0x00,0x00,0x60,0xa4,0x00,0x00,0x4d,0xa5,0x7e,0x0b,0xcc,0xa5, +0x00,0x60,0x8f,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x2a,0xb0,0x02,0x3c, +0x0a,0x00,0x45,0x34,0x63,0x00,0x03,0x24,0xff,0xff,0x04,0x34,0x00,0x00,0xa2,0x90, +0x00,0x00,0x00,0x00,0x0a,0x00,0x40,0x10,0x78,0x1b,0xc2,0x24,0x64,0x00,0x02,0x24, +0xff,0xff,0x42,0x24,0xff,0xff,0x42,0x30,0xfe,0xff,0x40,0x14,0xff,0xff,0x42,0x24, +0xff,0xff,0x62,0x24,0xff,0xff,0x43,0x30,0xf4,0xff,0x64,0x14,0x78,0x1b,0xc2,0x24, +0x80,0x0b,0x48,0x94,0x7e,0x0b,0x47,0x94,0x78,0x0b,0x49,0x94,0x7a,0x0b,0x4a,0x94, +0x7c,0x0b,0x4b,0x94,0x25,0xb0,0x03,0x3c,0x38,0x02,0x6c,0x34,0x34,0x02,0x62,0x34, +0xd2,0x01,0x64,0x34,0xd6,0x01,0x65,0x34,0xda,0x01,0x66,0x34,0xde,0x01,0x63,0x34, +0x00,0x00,0x48,0xa4,0x00,0x00,0x89,0xa4,0x00,0x00,0xaa,0xa4,0x00,0x00,0xcb,0xa4, +0x00,0x00,0x67,0xa4,0x00,0x00,0x80,0xa1,0x00,0x60,0x8f,0x40,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x25,0xb0,0x04,0x3c,0x08,0x00,0x83,0x34,0x00,0x00,0x62,0x94, +0x00,0x00,0x00,0x00,0x00,0x14,0x02,0x00,0x03,0x14,0x02,0x00,0x1a,0x00,0x40,0x04, +0x60,0x02,0x85,0x34,0x00,0x00,0xa3,0x90,0x05,0x00,0x02,0x24,0x00,0x03,0x8b,0x34, +0xff,0x00,0x63,0x30,0x04,0x03,0x8c,0x34,0xbd,0x00,0x8a,0x34,0x03,0x00,0x86,0x34, +0x40,0x00,0x85,0x34,0xfc,0x77,0x09,0x24,0x11,0x00,0x62,0x10,0x23,0x00,0x84,0x34, +0x00,0x00,0xc2,0x90,0xfe,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x00,0x00,0xc2,0xa0, +0x22,0x00,0x02,0x24,0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,0x00,0x00,0x82,0xa0, +0xfc,0x37,0x02,0x24,0x00,0x00,0xa9,0xa4,0x00,0x00,0xa2,0xa4,0x00,0x00,0xa9,0xa4, +0x00,0x00,0xa0,0xa4,0x00,0x00,0xa0,0xa4,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,0x00,0x00,0x42,0x91,0x00,0x00,0x00,0x00, +0x08,0x00,0x42,0x34,0x00,0x00,0x42,0xa1,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xd0,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf,0x2c,0x00,0xbf,0xaf,0x24,0x00,0xb3,0xaf, +0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0xff,0xff,0x14,0x24, +0x02,0x80,0x13,0x3c,0x41,0xb0,0x02,0x3c,0x78,0x1b,0x66,0x26,0x04,0x00,0x42,0x34, +0x00,0x00,0x47,0x8c,0x0c,0x0b,0xc5,0x8c,0x02,0x80,0x03,0x3c,0x5e,0x43,0x64,0x90, +0x08,0x0b,0xc8,0x8c,0x02,0x80,0x02,0x3c,0x80,0x43,0x49,0x90,0x25,0xb0,0x0a,0x3c, +0x25,0x88,0xa7,0x00,0xb0,0x03,0x42,0x35,0x00,0x00,0x51,0xac,0x00,0x24,0x04,0x00, +0x00,0x00,0x48,0xac,0x84,0x02,0x43,0x35,0x8c,0x02,0x45,0x35,0x01,0x00,0x02,0x24, +0x00,0x00,0x71,0xac,0x00,0x00,0xa4,0xac,0x0a,0x03,0x22,0x11,0x0c,0x0b,0xd1,0xac, +0x78,0x1b,0x64,0x26,0x08,0x0b,0x82,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x51,0x00, +0x01,0x00,0x42,0x30,0x0e,0x00,0x40,0x10,0x78,0x1b,0x67,0x26,0x25,0xb0,0x0b,0x3c, +0xb0,0x03,0x63,0x35,0x01,0x00,0x06,0x24,0x00,0x00,0x66,0xac,0x04,0x00,0x62,0x35, +0x00,0x00,0x4a,0x8c,0x0c,0x0b,0x83,0x8c,0x40,0x00,0x02,0x3c,0x24,0x10,0x42,0x01, +0x01,0x00,0x63,0x38,0x18,0x01,0x40,0x10,0x0c,0x0b,0x83,0xac,0x78,0x1b,0x67,0x26, +0x08,0x0b,0xe8,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x11,0x01,0x04,0x00,0x42,0x30, +0x18,0x00,0x40,0x10,0x78,0x1b,0x70,0x26,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x64,0x34, +0x04,0x00,0x02,0x24,0x00,0x00,0x82,0xac,0x0c,0x0b,0xe2,0x8c,0xfc,0x00,0x63,0x34, +0xe4,0x0a,0xe5,0x94,0x8c,0x25,0xe4,0x8c,0x00,0x00,0x66,0x8c,0x04,0x00,0x42,0x38, +0x21,0x50,0x85,0x00,0x0a,0x00,0xca,0x10,0x0c,0x0b,0xe2,0xac,0x02,0x80,0x05,0x3c, +0x44,0x44,0xa2,0x8c,0xfb,0xff,0x04,0x24,0x24,0x20,0x04,0x01,0x00,0x10,0x42,0x34, +0x41,0xb0,0x03,0x3c,0x44,0x44,0xa2,0xac,0x00,0x00,0x64,0xac,0x08,0x0b,0xe4,0xac, +0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x24,0x20,0x51,0x00, +0x08,0x00,0x83,0x30,0x06,0x00,0x60,0x10,0x10,0x00,0x82,0x30,0x0c,0x0b,0x02,0x8e, +0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x38,0x0c,0x0b,0x02,0xae,0x10,0x00,0x82,0x30, +0x06,0x00,0x40,0x10,0x20,0x00,0x82,0x30,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00, +0x10,0x00,0x42,0x38,0x0c,0x0b,0x02,0xae,0x20,0x00,0x82,0x30,0x06,0x00,0x40,0x10, +0x40,0x00,0x82,0x30,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x38, +0x0c,0x0b,0x02,0xae,0x40,0x00,0x82,0x30,0x06,0x00,0x40,0x10,0x80,0x00,0x82,0x30, +0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x38,0x0c,0x0b,0x02,0xae, +0x80,0x00,0x82,0x30,0x06,0x00,0x40,0x10,0x00,0x01,0x82,0x30,0x0c,0x0b,0x02,0x8e, +0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x38,0x0c,0x0b,0x02,0xae,0x00,0x01,0x82,0x30, +0x06,0x00,0x40,0x10,0x00,0x02,0x82,0x30,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00, +0x00,0x01,0x42,0x38,0x0c,0x0b,0x02,0xae,0x00,0x02,0x82,0x30,0x06,0x00,0x40,0x10, +0x00,0x04,0x82,0x30,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x00,0x02,0x42,0x38, +0x0c,0x0b,0x02,0xae,0x00,0x04,0x82,0x30,0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x00,0x04,0x42,0x38,0x0c,0x0b,0x02,0xae, +0x00,0x08,0x82,0x30,0x7a,0x02,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26, +0x08,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x51,0x00,0x00,0x10,0x42,0x30, +0x50,0x02,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26,0x08,0x0b,0x03,0x8e, +0x00,0x00,0x00,0x00,0x24,0x10,0x71,0x00,0x00,0x20,0x42,0x30,0x42,0x02,0x40,0x14, +0x00,0x00,0x00,0x00,0x24,0x10,0x71,0x00,0x00,0x80,0x42,0x30,0xf6,0x00,0x40,0x14, +0x01,0x00,0x12,0x3c,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00, +0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00,0x24,0x10,0x52,0x00,0x20,0x01,0x40,0x14, +0x00,0x00,0x00,0x00,0x08,0x0b,0x02,0x8e,0x02,0x00,0x12,0x3c,0x24,0x10,0x51,0x00, +0x24,0x10,0x52,0x00,0x48,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26, +0x08,0x0b,0x02,0x8e,0x04,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00, +0x24,0x10,0x52,0x00,0x71,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26, +0x08,0x0b,0x02,0x8e,0x08,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x52,0x00, +0x98,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e, +0x10,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00,0x24,0x10,0x52,0x00, +0xc1,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e, +0x20,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x52,0x00,0xe8,0x01,0x40,0x14, +0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,0x40,0x00,0x12,0x3c, +0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00,0x24,0x10,0x52,0x00,0x9a,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x78,0x1b,0x68,0x26,0x08,0x0b,0x07,0x8d,0x00,0x04,0x05,0x3c, +0x24,0x10,0xf1,0x00,0x24,0x10,0x45,0x00,0x1b,0x00,0x40,0x10,0x78,0x1b,0x66,0x26, +0x2a,0xb0,0x02,0x3c,0x2c,0x00,0x42,0x34,0x00,0x00,0x4a,0x8c,0xff,0x00,0x02,0x24, +0xff,0x00,0x43,0x31,0x58,0x02,0x62,0x10,0x02,0x80,0x06,0x3c,0x44,0x44,0xc4,0x8c, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x80,0x84,0x34,0x27,0x28,0x05,0x00, +0x00,0x00,0x44,0xac,0x24,0x28,0xe5,0x00,0x41,0xb0,0x03,0x3c,0x02,0x80,0x02,0x3c, +0x00,0x00,0x65,0xac,0x44,0x44,0xc4,0xac,0x08,0x0b,0x05,0xad,0x9a,0x43,0x40,0xa4, +0x78,0x1b,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x00,0x04,0x04,0x3c,0x26,0x18,0x64,0x00, +0x0c,0x0b,0x43,0xac,0x78,0x1b,0x66,0x26,0x08,0x0b,0xc7,0x8c,0x00,0x08,0x04,0x3c, +0x24,0x28,0xf1,0x00,0x24,0x10,0xa4,0x00,0x08,0x00,0x40,0x10,0x80,0x00,0x08,0x3c, +0x0c,0x0b,0xc3,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x26,0x18,0x64,0x00, +0x00,0x00,0x44,0xac,0x0c,0x0b,0xc3,0xac,0x80,0x00,0x08,0x3c,0x24,0x10,0xa8,0x00, +0x21,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x0c,0x0b,0xc3,0x8c,0x25,0xb0,0x09,0x3c, +0xb0,0x03,0x2a,0x35,0x2a,0xb0,0x02,0x3c,0x00,0x00,0x43,0xad,0x36,0x00,0x42,0x34, +0x00,0x00,0x43,0x90,0x23,0xb0,0x04,0x3c,0xff,0x1f,0x02,0x3c,0xc0,0x18,0x03,0x00, +0xf0,0x07,0x63,0x30,0xbc,0x25,0xc5,0x8c,0x21,0x18,0x64,0x00,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x2a,0x02,0x65,0x10,0xc0,0x25,0xc3,0xac,0x02,0x80,0x05,0x3c, +0x44,0x44,0xa3,0x8c,0x27,0x20,0x08,0x00,0x24,0x20,0xe4,0x00,0x00,0x08,0x63,0x34, +0x41,0xb0,0x02,0x3c,0x00,0x00,0x43,0xad,0x00,0x00,0x44,0xac,0x44,0x44,0xa3,0xac, +0x08,0x0b,0xc4,0xac,0x78,0x1b,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x80,0x00,0x04,0x3c, +0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac,0x78,0x1b,0x66,0x26,0x08,0x0b,0xc3,0x8c, +0x00,0x01,0x04,0x3c,0x24,0x28,0x71,0x00,0x24,0x10,0xa4,0x00,0x06,0x00,0x40,0x10, +0x25,0xb0,0x02,0x3c,0x0c,0x0b,0xc3,0x8c,0xb0,0x03,0x42,0x34,0x26,0x18,0x64,0x00, +0x00,0x00,0x44,0xac,0x0c,0x0b,0xc3,0xac,0x00,0x02,0x04,0x3c,0x24,0x10,0xa4,0x00, +0x08,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x0c,0x0b,0xc2,0x8c,0x25,0xb0,0x03,0x3c, +0xb0,0x03,0x63,0x34,0x26,0x10,0x44,0x00,0x0c,0x0b,0xc2,0xac,0x00,0x00,0x64,0xac, +0x02,0x80,0x02,0x3c,0x52,0x43,0x43,0x90,0x01,0x00,0x02,0x24,0x0f,0x00,0x63,0x30, +0xf1,0x01,0x62,0x10,0x00,0x00,0x00,0x00,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0x20,0xbd,0x02,0x3c,0xec,0x02,0x65,0x35, +0x4d,0x00,0x68,0x35,0xf1,0x02,0x69,0x35,0x08,0x00,0x07,0x24,0x78,0x02,0x42,0x34, +0x00,0x00,0x46,0xa4,0x00,0x00,0x00,0xa1,0x00,0x00,0x27,0xa1,0x00,0x00,0xa0,0xac, +0x00,0x00,0xa2,0x8c,0xff,0x00,0x03,0x3c,0x80,0x00,0x04,0x3c,0xff,0x00,0x4a,0x30, +0x25,0x50,0x43,0x01,0x24,0x20,0x44,0x01,0xf2,0x02,0x66,0x35,0x0a,0x00,0x6a,0x35, +0x80,0xff,0x02,0x24,0x00,0x00,0x00,0xa1,0x00,0x00,0x27,0xa1,0x00,0x00,0xa3,0xac, +0x00,0x00,0xa3,0xac,0x00,0x00,0xc0,0xa0,0x00,0x00,0x42,0xa1,0x04,0x00,0x80,0x10, +0x02,0x00,0x62,0x35,0x84,0xff,0x02,0x24,0x00,0x00,0x42,0xa1,0x02,0x00,0x62,0x35, +0x00,0x00,0x43,0x94,0xff,0xbf,0x04,0x24,0x24,0x18,0x64,0x00,0x00,0x00,0x43,0xa4, +0xd8,0x22,0x00,0x08,0x78,0x1b,0x67,0x26,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00, +0xc0,0x00,0x00,0x0c,0x07,0x00,0x04,0x24,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30, +0xff,0x00,0x02,0x24,0x1b,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x20,0x25,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0xb4,0x24,0x03,0xae,0x06,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x70,0x24,0x0a,0xa2, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x06,0x3c,0x02,0x80,0x07,0x3c, +0x44,0x44,0xc3,0x8c,0x54,0x44,0xe4,0x90,0x08,0x0b,0x05,0x8e,0x60,0x00,0x02,0x3c, +0x27,0x10,0x02,0x00,0x24,0x28,0xa2,0x00,0x00,0x04,0x63,0x34,0x02,0x00,0x84,0x34, +0x41,0xb0,0x02,0x3c,0x44,0x44,0xc3,0xac,0x54,0x44,0xe4,0xa0,0x00,0x00,0x45,0xac, +0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x26,0x10,0x52,0x00, +0x79,0x23,0x00,0x08,0x0c,0x0b,0x02,0xae,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00, +0xc0,0x00,0x00,0x0c,0x21,0x20,0x00,0x00,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30, +0xff,0x00,0x02,0x24,0x1e,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0xfc,0x24,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0x90,0x24,0x03,0xae,0x03,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x54,0x24,0x0a,0xa2, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x07,0x3c,0x02,0x80,0x08,0x3c, +0x44,0x44,0xe5,0x8c,0x54,0x44,0x06,0x91,0x08,0x0b,0x04,0x8e,0x01,0x00,0x09,0x3c, +0x00,0x80,0x22,0x35,0x27,0x10,0x02,0x00,0x80,0xff,0x03,0x24,0x24,0x20,0x82,0x00, +0x25,0x30,0xc3,0x00,0x80,0x00,0xa5,0x34,0x41,0xb0,0x02,0x3c,0x44,0x44,0xe5,0xac, +0x54,0x44,0x06,0xa1,0x27,0xa0,0x09,0x00,0x00,0x00,0x44,0xac,0x08,0x0b,0x04,0xae, +0x0c,0x0b,0x02,0x8e,0x01,0x00,0x12,0x3c,0x00,0x80,0x42,0x38,0x0c,0x0b,0x02,0xae, +0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x51,0x00, +0x24,0x10,0x54,0x00,0x24,0x10,0x52,0x00,0xe2,0xfe,0x40,0x10,0x00,0x00,0x00,0x00, +0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x0c,0x01,0x00,0x04,0x24, +0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,0xff,0x00,0x02,0x24,0x1b,0x00,0x62,0x10, +0xff,0x00,0x43,0x31,0xfc,0x24,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00, +0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x90,0x24,0x03,0xae,0x03,0x00,0x04,0x24, +0x40,0x00,0x07,0x24,0x58,0x24,0x0a,0xa2,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x02,0x80,0x06,0x3c,0x02,0x80,0x07,0x3c,0x44,0x44,0xc3,0x8c,0x54,0x44,0xe4,0x90, +0x08,0x0b,0x05,0x8e,0x00,0x80,0x42,0x36,0x27,0x10,0x02,0x00,0x24,0x28,0xa2,0x00, +0x80,0x00,0x63,0x34,0x40,0x00,0x84,0x34,0x41,0xb0,0x02,0x3c,0x44,0x44,0xc3,0xac, +0x54,0x44,0xe4,0xa0,0x00,0x00,0x45,0xac,0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e, +0x00,0x00,0x00,0x00,0x26,0x10,0x52,0x00,0x0c,0x0b,0x02,0xae,0x78,0x1b,0x70,0x26, +0x08,0x0b,0x02,0x8e,0x02,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x52,0x00, +0xbb,0xfe,0x40,0x10,0x00,0x00,0x00,0x00,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00, +0xc0,0x00,0x00,0x0c,0x02,0x00,0x04,0x24,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30, +0xff,0x00,0x02,0x24,0x1d,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x08,0x25,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0x9c,0x24,0x03,0xae,0x04,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x5c,0x24,0x0a,0xa2, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x06,0x3c,0x44,0x44,0xc3,0x8c, +0x02,0x80,0x07,0x3c,0x54,0x44,0xe4,0x90,0x08,0x0b,0x05,0x8e,0x06,0x00,0x02,0x3c, +0x27,0x10,0x02,0x00,0x00,0x01,0x63,0x34,0x24,0x28,0xa2,0x00,0x44,0x44,0xc3,0xac, +0x20,0x00,0x84,0x34,0x41,0xb0,0x02,0x3c,0x04,0x00,0x03,0x3c,0x54,0x44,0xe4,0xa0, +0x26,0xa0,0x83,0x02,0x00,0x00,0x45,0xac,0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e, +0x00,0x00,0x00,0x00,0x26,0x10,0x52,0x00,0x0c,0x0b,0x02,0xae,0x78,0x1b,0x70,0x26, +0x08,0x0b,0x02,0x8e,0x04,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00, +0x24,0x10,0x52,0x00,0x92,0xfe,0x40,0x10,0x00,0x00,0x00,0x00,0x86,0x20,0x00,0x0c, +0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x0c,0x03,0x00,0x04,0x24,0x21,0x50,0x40,0x00, +0xff,0x00,0x43,0x30,0xff,0x00,0x02,0x24,0x1b,0x00,0x62,0x10,0xff,0x00,0x43,0x31, +0x08,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x21,0x30,0x60,0x00,0x9c,0x24,0x03,0xae,0x04,0x00,0x04,0x24,0x40,0x00,0x07,0x24, +0x60,0x24,0x0a,0xa2,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x06,0x3c, +0x02,0x80,0x07,0x3c,0x44,0x44,0xc3,0x8c,0x54,0x44,0xe4,0x90,0x08,0x0b,0x05,0x8e, +0x06,0x00,0x02,0x3c,0x27,0x10,0x02,0x00,0x24,0x28,0xa2,0x00,0x00,0x01,0x63,0x34, +0x10,0x00,0x84,0x34,0x41,0xb0,0x02,0x3c,0x44,0x44,0xc3,0xac,0x54,0x44,0xe4,0xa0, +0x00,0x00,0x45,0xac,0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00, +0x26,0x10,0x52,0x00,0x0c,0x0b,0x02,0xae,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e, +0x08,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x52,0x00,0x6b,0xfe,0x40,0x10, +0x00,0x00,0x00,0x00,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x0c, +0x04,0x00,0x04,0x24,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,0xff,0x00,0x02,0x24, +0x1d,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x14,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c, +0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xa8,0x24,0x03,0xae, +0x05,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x64,0x24,0x0a,0xa2,0xc3,0x01,0x00,0x0c, +0x10,0x00,0xa0,0xaf,0x02,0x80,0x06,0x3c,0x44,0x44,0xc3,0x8c,0x02,0x80,0x07,0x3c, +0x54,0x44,0xe4,0x90,0x08,0x0b,0x05,0x8e,0x18,0x00,0x02,0x3c,0x27,0x10,0x02,0x00, +0x00,0x02,0x63,0x34,0x24,0x28,0xa2,0x00,0x44,0x44,0xc3,0xac,0x08,0x00,0x84,0x34, +0x41,0xb0,0x02,0x3c,0x10,0x00,0x03,0x3c,0x54,0x44,0xe4,0xa0,0x26,0xa0,0x83,0x02, +0x00,0x00,0x45,0xac,0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00, +0x26,0x10,0x52,0x00,0x0c,0x0b,0x02,0xae,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e, +0x10,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00,0x24,0x10,0x52,0x00, +0x42,0xfe,0x40,0x10,0x00,0x00,0x00,0x00,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00, +0xc0,0x00,0x00,0x0c,0x05,0x00,0x04,0x24,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30, +0xff,0x00,0x02,0x24,0x1b,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x14,0x25,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0xa8,0x24,0x03,0xae,0x05,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x68,0x24,0x0a,0xa2, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x06,0x3c,0x02,0x80,0x07,0x3c, +0x44,0x44,0xc3,0x8c,0x54,0x44,0xe4,0x90,0x08,0x0b,0x05,0x8e,0x18,0x00,0x02,0x3c, +0x27,0x10,0x02,0x00,0x24,0x28,0xa2,0x00,0x00,0x02,0x63,0x34,0x01,0x00,0x84,0x34, +0x41,0xb0,0x02,0x3c,0x44,0x44,0xc3,0xac,0x54,0x44,0xe4,0xa0,0x00,0x00,0x45,0xac, +0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x26,0x10,0x52,0x00, +0x0c,0x0b,0x02,0xae,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,0x20,0x00,0x12,0x3c, +0x24,0x10,0x51,0x00,0x24,0x10,0x52,0x00,0x1b,0xfe,0x40,0x10,0x00,0x00,0x00,0x00, +0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x0c,0x06,0x00,0x04,0x24, +0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,0xff,0x00,0x02,0x24,0x1d,0x00,0x62,0x10, +0xff,0x00,0x43,0x31,0x20,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00, +0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xb4,0x24,0x03,0xae,0x06,0x00,0x04,0x24, +0x40,0x00,0x07,0x24,0x6c,0x24,0x0a,0xa2,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x02,0x80,0x06,0x3c,0x44,0x44,0xc3,0x8c,0x02,0x80,0x07,0x3c,0x54,0x44,0xe4,0x90, +0x08,0x0b,0x05,0x8e,0x60,0x00,0x02,0x3c,0x27,0x10,0x02,0x00,0x00,0x04,0x63,0x34, +0x24,0x28,0xa2,0x00,0x44,0x44,0xc3,0xac,0x04,0x00,0x84,0x34,0x41,0xb0,0x02,0x3c, +0x40,0x00,0x03,0x3c,0x54,0x44,0xe4,0xa0,0x26,0xa0,0x83,0x02,0x00,0x00,0x45,0xac, +0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x26,0x10,0x52,0x00, +0x71,0x23,0x00,0x08,0x0c,0x0b,0x02,0xae,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00, +0x0c,0x0b,0x02,0x8e,0x08,0x0b,0x03,0x8e,0x00,0x20,0x42,0x38,0x41,0x23,0x00,0x08, +0x0c,0x0b,0x02,0xae,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,0xf4,0x00,0x00,0x0c, +0x01,0x00,0x04,0x24,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,0xff,0x00,0x02,0x24, +0x16,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x44,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c, +0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0xd8,0x24,0x03,0xae,0x21,0x30,0x60,0x00, +0x01,0x00,0x04,0x24,0x78,0x24,0x0a,0xa2,0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c, +0x10,0x00,0xa0,0xaf,0x02,0x80,0x05,0x3c,0x44,0x44,0xa3,0x8c,0x08,0x0b,0x04,0x8e, +0xff,0xc7,0x02,0x24,0x10,0x00,0x63,0x34,0x24,0x20,0x82,0x00,0x41,0xb0,0x02,0x3c, +0x44,0x44,0xa3,0xac,0x00,0x00,0x44,0xac,0x08,0x0b,0x04,0xae,0x0c,0x0b,0x02,0x8e, +0x00,0x00,0x00,0x00,0x00,0x10,0x42,0x38,0x3a,0x23,0x00,0x08,0x0c,0x0b,0x02,0xae, +0xf4,0x00,0x00,0x0c,0x21,0x20,0x00,0x00,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30, +0xff,0x00,0x02,0x24,0x16,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x2c,0x25,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0xc0,0x24,0x03,0xae, +0x21,0x30,0x60,0x00,0x21,0x20,0x00,0x00,0x74,0x24,0x0a,0xa2,0x40,0x00,0x07,0x24, +0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x05,0x3c,0x44,0x44,0xa3,0x8c, +0x08,0x0b,0x04,0x8e,0xff,0xc7,0x02,0x24,0x04,0x00,0x63,0x34,0x24,0x20,0x82,0x00, +0x41,0xb0,0x02,0x3c,0x44,0x44,0xa3,0xac,0x00,0x00,0x44,0xac,0x08,0x0b,0x04,0xae, +0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x00,0x08,0x42,0x38,0x33,0x23,0x00,0x08, +0x0c,0x0b,0x02,0xae,0x56,0x01,0x42,0x35,0x00,0x00,0x43,0x94,0x00,0x00,0x00,0x00, +0xf3,0xfc,0x60,0x10,0x00,0x00,0x00,0x00,0xde,0x4f,0x00,0x0c,0x07,0x00,0x04,0x24, +0xc5,0x22,0x00,0x08,0x78,0x1b,0x64,0x26,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x79,0x22,0x00,0x08,0x30,0x00,0xbd,0x27,0x25,0xb0,0x02,0x3c,0x01,0x00,0x03,0x24, +0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x95,0x23,0x00,0x08,0x78,0x1b,0x62,0x26, +0xd0,0x03,0x23,0x35,0x80,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xc6,0x23,0x00,0x08, +0x78,0x1b,0x62,0x26,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf, +0x10,0x00,0xb0,0xaf,0x25,0xb0,0x0c,0x3c,0x01,0x80,0x02,0x3c,0x18,0x03,0x83,0x35, +0xa4,0x97,0x42,0x24,0x02,0x80,0x11,0x3c,0x41,0xb0,0x0b,0x3c,0x00,0x00,0x62,0xac, +0x78,0x1b,0x2a,0x26,0x0a,0x00,0x62,0x35,0x00,0x00,0x44,0x94,0x16,0x0b,0x43,0x95, +0x14,0x0b,0x49,0x95,0x25,0x30,0x64,0x00,0xff,0xff,0xd0,0x30,0x24,0x10,0x09,0x02, +0x02,0x00,0x42,0x30,0x9e,0x00,0x40,0x10,0xc0,0x03,0x83,0x35,0x02,0x00,0x02,0x24, +0x00,0x00,0x62,0xac,0x02,0x80,0x08,0x3c,0x44,0x44,0x04,0x8d,0xdc,0x02,0x82,0x35, +0x00,0x00,0x47,0x90,0xfd,0xff,0x03,0x24,0x00,0x80,0x02,0x3c,0x24,0x18,0x23,0x01, +0x25,0x20,0x82,0x00,0x02,0x00,0xc6,0x38,0x08,0x00,0x65,0x35,0x02,0x80,0x02,0x3c, +0x99,0x44,0x47,0xa0,0x44,0x44,0x04,0xad,0x16,0x0b,0x46,0xa5,0x21,0x48,0x60,0x00, +0x00,0x00,0xa3,0xa4,0x14,0x0b,0x43,0xa5,0x24,0x38,0x09,0x02,0x04,0x00,0xe2,0x30, +0x0a,0x00,0x40,0x10,0x08,0x00,0xe2,0x30,0x16,0x0b,0x43,0x95,0x0c,0x00,0x64,0x35, +0xc0,0x03,0x85,0x35,0x04,0x00,0x63,0x38,0x04,0x00,0x02,0x24,0x00,0x00,0x86,0x8c, +0x00,0x00,0xa2,0xac,0x16,0x0b,0x43,0xa5,0x08,0x00,0xe2,0x30,0x08,0x00,0x40,0x10, +0x10,0x00,0xe2,0x30,0x16,0x0b,0x42,0x95,0xc0,0x03,0x84,0x35,0x08,0x00,0x03,0x24, +0x08,0x00,0x42,0x38,0x00,0x00,0x83,0xac,0x16,0x0b,0x42,0xa5,0x10,0x00,0xe2,0x30, +0x3a,0x00,0x40,0x10,0x78,0x1b,0x29,0x26,0xc0,0x03,0x84,0x35,0x10,0x00,0x02,0x24, +0x00,0x00,0x82,0xac,0x16,0x0b,0x43,0x95,0x02,0x80,0x05,0x3c,0xba,0x44,0xa4,0x90, +0x10,0x00,0x63,0x38,0x02,0x80,0x02,0x3c,0x16,0x0b,0x43,0xa5,0x7c,0x44,0x47,0x24, +0x69,0x00,0x80,0x14,0x21,0x30,0x00,0x00,0xe8,0x0a,0x42,0x91,0x00,0x00,0x00,0x00, +0x01,0x00,0x42,0x30,0x69,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c, +0x98,0x44,0x82,0x90,0x00,0x00,0x00,0x00,0x64,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x98,0x44,0x82,0x90,0x02,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x66,0x00,0x43,0x10, +0x00,0x00,0x00,0x00,0x98,0x44,0x82,0x90,0x03,0x00,0x03,0x24,0xff,0x00,0x42,0x30, +0x61,0x00,0x43,0x10,0x02,0x80,0x05,0x3c,0xb2,0x44,0xa2,0x90,0x02,0x80,0x03,0x3c, +0x02,0x00,0x04,0x24,0x10,0x00,0x42,0x34,0xb2,0x44,0xa2,0xa0,0x9d,0x44,0x66,0x90, +0x21,0x28,0x00,0x00,0x0c,0x00,0xe0,0xac,0xff,0x00,0xc6,0x30,0x71,0x14,0x00,0x0c, +0x00,0x32,0x06,0x00,0x42,0xb0,0x02,0x3c,0x03,0x00,0x42,0x34,0x44,0x00,0x04,0x24, +0x00,0x00,0x44,0xa0,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00, +0x0f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,0x04,0x00,0x40,0x10,0x78,0x1b,0x29,0x26, +0xf9,0x1f,0x00,0x0c,0x04,0x00,0x04,0x24,0x78,0x1b,0x29,0x26,0x14,0x0b,0x27,0x95, +0x00,0x00,0x00,0x00,0x24,0x28,0x07,0x02,0x20,0x00,0xa2,0x30,0x09,0x00,0x40,0x10, +0x80,0x00,0xa2,0x30,0x16,0x0b,0x22,0x95,0x25,0xb0,0x03,0x3c,0x20,0x00,0x04,0x24, +0x20,0x00,0x42,0x38,0xc0,0x03,0x63,0x34,0x00,0x00,0x64,0xac,0x16,0x0b,0x22,0xa5, +0x80,0x00,0xa2,0x30,0x17,0x00,0x40,0x10,0x24,0x10,0x07,0x02,0x02,0x80,0x08,0x3c, +0x44,0x44,0x04,0x8d,0x16,0x0b,0x26,0x95,0x25,0xb0,0x03,0x3c,0x10,0x00,0x02,0x3c, +0x7f,0xff,0x05,0x24,0x24,0x28,0xe5,0x00,0x25,0x20,0x82,0x00,0xb0,0x03,0x67,0x34, +0x80,0x00,0x02,0x24,0xc0,0x03,0x63,0x34,0x00,0x00,0x62,0xac,0x41,0xb0,0x02,0x3c, +0x80,0x00,0xc6,0x38,0x08,0x00,0x42,0x34,0x00,0x00,0xe4,0xac,0x16,0x0b,0x26,0xa5, +0x44,0x44,0x04,0xad,0x21,0x38,0xa0,0x00,0x00,0x00,0x45,0xa4,0x14,0x0b,0x25,0xa5, +0x24,0x10,0x07,0x02,0x00,0x30,0x42,0x30,0x07,0x00,0x40,0x10,0x02,0x80,0x02,0x3c, +0x16,0x0b,0x22,0x95,0x00,0x00,0x00,0x00,0x00,0x10,0x42,0x38,0x00,0x20,0x42,0x34, +0x16,0x0b,0x22,0xa5,0x02,0x80,0x02,0x3c,0x52,0x43,0x43,0x90,0x01,0x00,0x02,0x24, +0x0f,0x00,0x63,0x30,0x0f,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0x12,0x26,0x00,0x08,0x16,0x0b,0x46,0xa5,0xe8,0x0a,0x42,0x91,0xba,0x44,0xa0,0xa0, +0x01,0x00,0x42,0x30,0x99,0xff,0x40,0x14,0x01,0x00,0x06,0x24,0x62,0x26,0x00,0x08, +0x0c,0x00,0xe0,0xac,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x79,0x22,0x00,0x08,0x20,0x00,0xbd,0x27,0x02,0x80,0x04,0x3c,0xb5,0x44,0x82,0x90, +0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x24,0xb5,0x44,0x82,0xa0,0xb5,0x44,0x83,0x90, +0x00,0x00,0x00,0x00,0x07,0x00,0x60,0x10,0x02,0x80,0x02,0x3c,0x9e,0x44,0x43,0x90, +0x00,0x00,0x00,0x00,0x03,0x00,0x60,0x14,0x00,0x00,0x00,0x00,0x12,0x00,0xc0,0x10, +0x02,0x80,0x02,0x3c,0xb5,0x44,0x82,0x90,0x00,0x00,0x00,0x00,0x05,0x00,0x40,0x14, +0x0c,0x00,0xe0,0xac,0x02,0x80,0x02,0x3c,0xb4,0x44,0x43,0x90,0x00,0x00,0x00,0x00, +0xb5,0x44,0x83,0xa0,0x02,0x80,0x05,0x3c,0xb2,0x44,0xa2,0x90,0x02,0x80,0x03,0x3c, +0x02,0x00,0x04,0x24,0x10,0x00,0x42,0x34,0xb2,0x44,0xa2,0xa0,0x9d,0x44,0x66,0x90, +0x52,0x26,0x00,0x08,0x21,0x28,0x00,0x00,0x02,0x80,0x04,0x3c,0xac,0x44,0x83,0x8c, +0xa4,0x44,0x45,0x8c,0xe4,0x02,0x86,0x35,0x21,0x18,0x65,0x00,0xac,0x44,0x83,0xac, +0xac,0x44,0x82,0x8c,0x02,0x80,0x03,0x3c,0x00,0x00,0xc2,0xac,0xa0,0x44,0x62,0x94, +0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x30,0x40,0x10,0x02,0x00,0xf6,0xff,0x42,0x24, +0x62,0x26,0x00,0x08,0x0c,0x00,0xe2,0xac,0xf8,0xff,0xbd,0x27,0x04,0x00,0xb1,0xaf, +0x00,0x00,0xb0,0xaf,0x00,0x40,0x09,0x40,0x00,0x68,0x0a,0x40,0x00,0x70,0x02,0x40, +0x00,0x60,0x0b,0x40,0x25,0xb0,0x05,0x3c,0x18,0x03,0xa7,0x34,0x00,0x00,0xe6,0x8c, +0x01,0x80,0x02,0x3c,0x1c,0x03,0xa3,0x34,0x68,0x9b,0x42,0x24,0x00,0x00,0x66,0xac, +0x00,0x00,0xe2,0xac,0x80,0x00,0x83,0x8c,0x7c,0x02,0xa2,0x34,0x80,0x02,0xa6,0x34, +0x84,0x02,0xa7,0x34,0x88,0x02,0xa8,0x34,0x00,0x00,0x43,0xac,0x00,0x00,0xc9,0xac, +0x00,0x00,0xea,0xac,0x00,0x00,0x0b,0xad,0x74,0x00,0x83,0x8c,0x8c,0x02,0xa2,0x34, +0x90,0x02,0xa7,0x34,0x00,0x00,0x43,0xac,0x08,0x00,0x86,0x8c,0x94,0x02,0xa8,0x34, +0x98,0x02,0xa9,0x34,0x00,0x00,0xe6,0xac,0x0c,0x00,0x82,0x8c,0x9c,0x02,0xa6,0x34, +0xa0,0x02,0xa7,0x34,0x00,0x00,0x02,0xad,0x10,0x00,0x83,0x8c,0xa4,0x02,0xa8,0x34, +0xa8,0x02,0xaa,0x34,0x00,0x00,0x23,0xad,0x14,0x00,0x82,0x8c,0xac,0x02,0xa9,0x34, +0xb0,0x02,0xab,0x34,0x00,0x00,0xc2,0xac,0x18,0x00,0x83,0x8c,0xb4,0x02,0xa6,0x34, +0xb8,0x02,0xac,0x34,0x00,0x00,0xe3,0xac,0x1c,0x00,0x82,0x8c,0xbc,0x02,0xa7,0x34, +0xc0,0x02,0xad,0x34,0x00,0x00,0x02,0xad,0x20,0x00,0x83,0x8c,0xc4,0x02,0xa8,0x34, +0xc8,0x02,0xae,0x34,0x00,0x00,0x43,0xad,0x24,0x00,0x82,0x8c,0xcc,0x02,0xaa,0x34, +0xd0,0x02,0xaf,0x34,0x00,0x00,0x22,0xad,0x28,0x00,0x83,0x8c,0xd4,0x02,0xa9,0x34, +0xd8,0x02,0xb0,0x34,0x00,0x00,0x63,0xad,0x2c,0x00,0x82,0x8c,0x70,0x02,0xab,0x34, +0x74,0x02,0xb1,0x34,0x00,0x00,0xc2,0xac,0x30,0x00,0x83,0x8c,0x78,0x02,0xa5,0x34, +0x00,0x00,0x83,0xad,0x34,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0xac, +0x38,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xad,0x3c,0x00,0x82,0x8c, +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xad,0x40,0x00,0x83,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0xc3,0xad,0x44,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0xad, +0x48,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xe3,0xad,0x4c,0x00,0x82,0x8c, +0x00,0x00,0x00,0x00,0x00,0x00,0x22,0xad,0x50,0x00,0x83,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x03,0xae,0x54,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xad, +0x58,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0xae,0x5c,0x00,0x82,0x8c, +0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xac,0x42,0x27,0x00,0x08,0x00,0x00,0x00,0x00, +0x01,0x80,0x1b,0x3c,0x10,0x9d,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27, +0x00,0x00,0x5b,0xaf,0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,0x80,0xda,0x1b,0x00, +0x08,0x00,0x7b,0x27,0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf,0x0c,0x00,0x63,0xaf, +0x10,0x00,0x64,0xaf,0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf,0x1c,0x00,0x67,0xaf, +0x20,0x00,0x68,0xaf,0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf,0x2c,0x00,0x6b,0xaf, +0x30,0x00,0x6c,0xaf,0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf,0x3c,0x00,0x6f,0xaf, +0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0x70,0xaf, +0x44,0x00,0x71,0xaf,0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf,0x50,0x00,0x74,0xaf, +0x54,0x00,0x75,0xaf,0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf,0x60,0x00,0x78,0xaf, +0x64,0x00,0x79,0xaf,0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf,0x70,0x00,0x7e,0xaf, +0x74,0x00,0x7f,0xaf,0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf,0x80,0x00,0x6a,0xaf, +0x00,0x68,0x1a,0x40,0x7f,0x00,0x5b,0x33,0x30,0x00,0x60,0x13,0x00,0x00,0x00,0x00, +0x25,0xb0,0x1b,0x3c,0x30,0x03,0x7b,0x37,0x00,0x00,0x00,0x00,0x00,0x00,0x7a,0xaf, +0x00,0x00,0x00,0x00,0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,0x80,0xda,0x1b,0x00, +0x08,0x00,0x7b,0x27,0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf,0x0c,0x00,0x63,0xaf, +0x10,0x00,0x64,0xaf,0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf,0x1c,0x00,0x67,0xaf, +0x20,0x00,0x68,0xaf,0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf,0x2c,0x00,0x6b,0xaf, +0x30,0x00,0x6c,0xaf,0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf,0x3c,0x00,0x6f,0xaf, +0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0x70,0xaf, +0x44,0x00,0x71,0xaf,0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf,0x50,0x00,0x74,0xaf, +0x54,0x00,0x75,0xaf,0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf,0x60,0x00,0x78,0xaf, +0x64,0x00,0x79,0xaf,0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf,0x70,0x00,0x7e,0xaf, +0x74,0x00,0x7f,0xaf,0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf,0x80,0x00,0x6a,0xaf, +0xda,0x26,0x00,0x08,0x21,0x20,0x60,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c, +0x20,0x03,0x08,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0xad,0x00,0x04,0x5b,0x33, +0x0a,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x01,0x80,0x08,0x3c,0x90,0x8a,0x08,0x25, +0x00,0x00,0x00,0x00,0x25,0xb0,0x1b,0x3c,0x24,0x03,0x7b,0x37,0x00,0x00,0x00,0x00, +0x00,0x00,0x68,0xaf,0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x08,0x5b,0x33, +0x25,0xb0,0x08,0x3c,0x28,0x03,0x08,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xad, +0x06,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x01,0x80,0x08,0x3c,0xa4,0x97,0x08,0x25, +0x00,0x00,0x00,0x00,0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x80,0x1a,0x3c, +0x44,0x44,0x5a,0x27,0x04,0x00,0x5b,0x97,0x25,0xb0,0x08,0x3c,0x30,0x03,0x08,0x35, +0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xad,0x18,0x00,0x60,0x13,0x00,0x00,0x00,0x00, +0x08,0xe8,0x9b,0x27,0x00,0x00,0x00,0x00,0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b, +0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b, +0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b, +0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b, +0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b, +0x80,0x00,0x7b,0x8f,0x2b,0x28,0x00,0x08,0x00,0x00,0x00,0x00,0x21,0xd8,0xa0,0x03, +0x82,0xda,0x1b,0x00,0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,0x08,0x00,0x5b,0xaf, +0xfc,0xeb,0x9d,0x27,0x00,0x00,0x4a,0x8f,0x00,0x00,0x00,0x00,0x21,0x00,0x40,0x11, +0x00,0x00,0x00,0x00,0x02,0x80,0x08,0x3c,0xa4,0x43,0x08,0x25,0x21,0x48,0x00,0x00, +0x21,0x58,0x00,0x00,0x01,0x00,0x6b,0x25,0x1a,0x00,0x40,0x11,0x24,0x70,0x4b,0x01, +0x14,0x00,0xc0,0x11,0x01,0x00,0x04,0x24,0x00,0x00,0x00,0x00,0x04,0x00,0x44,0xa3, +0x26,0x50,0x4b,0x01,0x00,0x00,0x4a,0xaf,0x80,0x80,0x09,0x00,0x21,0x80,0x08,0x02, +0x00,0x00,0x10,0x8e,0x00,0x00,0x00,0x00,0x09,0xf8,0x00,0x02,0x00,0x00,0x00,0x00, +0x01,0x80,0x1b,0x3c,0xd8,0x9f,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27, +0x00,0x00,0x5b,0xaf,0x02,0x80,0x1a,0x3c,0x44,0x44,0x5a,0x27,0xe1,0xff,0x00,0x10, +0x00,0x00,0x00,0x00,0x01,0x00,0x29,0x25,0x40,0x58,0x0b,0x00,0xee,0x27,0x00,0x08, +0x00,0x00,0x00,0x00,0x02,0x80,0x1b,0x3c,0x44,0x44,0x7b,0x27,0x21,0x60,0x00,0x00, +0x04,0x00,0x6c,0xa7,0x08,0x00,0x7a,0x8f,0x00,0x00,0x00,0x00,0xf8,0xff,0x5a,0x27, +0x00,0x00,0x5a,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x5a,0x27,0x84,0x00,0x44,0x8f, +0x00,0x00,0x00,0x00,0xf9,0xff,0x80,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x41,0x8f, +0xfc,0x03,0x50,0x7b,0x7c,0x00,0x42,0x7b,0xbc,0x00,0x44,0x7b,0xfc,0x00,0x46,0x7b, +0x3c,0x01,0x48,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x4a,0x7b, +0xbc,0x01,0x4c,0x7b,0xfc,0x01,0x4e,0x7b,0x3c,0x02,0x50,0x7b,0x7c,0x02,0x52,0x7b, +0xbc,0x02,0x54,0x7b,0xfc,0x02,0x56,0x7b,0x3c,0x03,0x58,0x7b,0x7c,0x03,0x5c,0x7b, +0xbc,0x03,0x5e,0x7b,0x80,0x00,0x5b,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x60,0x03, +0x10,0x00,0x00,0x42,0x00,0x60,0x05,0x40,0x42,0x28,0x05,0x00,0x40,0x28,0x05,0x00, +0x00,0x60,0x85,0x40,0x04,0x00,0x81,0xac,0x08,0x00,0x82,0xac,0x0c,0x00,0x83,0xac, +0x20,0x00,0x88,0xac,0x24,0x00,0x89,0xac,0x28,0x00,0x8a,0xac,0x2c,0x00,0x8b,0xac, +0x30,0x00,0x8c,0xac,0x34,0x00,0x8d,0xac,0x38,0x00,0x8e,0xac,0x3c,0x00,0x8f,0xac, +0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x40,0x00,0x90,0xac,0x44,0x00,0x91,0xac, +0x48,0x00,0x92,0xac,0x4c,0x00,0x93,0xac,0x50,0x00,0x94,0xac,0x54,0x00,0x95,0xac, +0x58,0x00,0x96,0xac,0x5c,0x00,0x97,0xac,0x60,0x00,0x98,0xac,0x64,0x00,0x99,0xac, +0x68,0x00,0x9c,0xac,0x6c,0x00,0x9d,0xac,0x70,0x00,0x9e,0xac,0x74,0x00,0x9f,0xac, +0x78,0x00,0x88,0xac,0x7c,0x00,0x89,0xac,0x80,0x00,0x9f,0xac,0xf8,0xff,0x84,0x24, +0x00,0x00,0x84,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x84,0x24,0x84,0x00,0x86,0x8c, +0x00,0x00,0x00,0x00,0xf9,0xff,0xc0,0x10,0x00,0x00,0x00,0x00,0x21,0xd8,0x80,0x00, +0x01,0x00,0xba,0x24,0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b,0x7c,0x00,0x62,0x7b, +0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b,0x13,0x00,0x00,0x02, +0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b,0xfc,0x01,0x6e,0x7b, +0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b,0xfc,0x02,0x76,0x7b, +0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b,0x80,0x00,0x7b,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40,0x00,0x60,0x05,0x40, +0x42,0x28,0x05,0x00,0x40,0x28,0x05,0x00,0x00,0x60,0x85,0x40,0x04,0x00,0x81,0xac, +0x08,0x00,0x82,0xac,0x0c,0x00,0x83,0xac,0x20,0x00,0x88,0xac,0x24,0x00,0x89,0xac, +0x28,0x00,0x8a,0xac,0x2c,0x00,0x8b,0xac,0x30,0x00,0x8c,0xac,0x34,0x00,0x8d,0xac, +0x38,0x00,0x8e,0xac,0x3c,0x00,0x8f,0xac,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00, +0x40,0x00,0x90,0xac,0x44,0x00,0x91,0xac,0x48,0x00,0x92,0xac,0x4c,0x00,0x93,0xac, +0x50,0x00,0x94,0xac,0x54,0x00,0x94,0xac,0x58,0x00,0x96,0xac,0x5c,0x00,0x96,0xac, +0x60,0x00,0x98,0xac,0x64,0x00,0x99,0xac,0x68,0x00,0x9c,0xac,0x6c,0x00,0x9d,0xac, +0x70,0x00,0x9e,0xac,0x78,0x00,0x88,0xac,0x7c,0x00,0x89,0xac,0x80,0x00,0x9f,0xac, +0x84,0x00,0x80,0xac,0xf8,0xff,0x84,0x24,0x00,0x00,0x84,0x8c,0x00,0x00,0x00,0x00, +0x08,0x00,0x84,0x24,0x84,0x00,0x86,0x8c,0xfa,0xff,0xc0,0x10,0x00,0x00,0x00,0x00, +0x21,0xd8,0x80,0x00,0x01,0x00,0xba,0x24,0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b, +0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b, +0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b, +0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b, +0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b, +0x80,0x00,0x7b,0x8f,0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xd7,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x1b,0x3c,0x00,0x00,0x7b,0x27, +0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x00,0x00,0x05,0x24, +0x03,0x00,0xa4,0x24,0x00,0xa0,0x80,0x40,0x00,0xa0,0x84,0x40,0x01,0x80,0x04,0x3c, +0x98,0x03,0x84,0x24,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x80,0x1b,0x3c,0x98,0x03,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27, +0x00,0x00,0x5b,0xaf,0x02,0x80,0x1a,0x3c,0x00,0x00,0x5a,0x27,0xfc,0x03,0x5d,0x27, +0x02,0x80,0x1c,0x3c,0x00,0x18,0x9c,0x27,0x00,0xf0,0x08,0x3c,0x00,0x0c,0x08,0x35, +0x00,0x60,0x88,0x40,0x02,0x80,0x04,0x3c,0x00,0x00,0x84,0x24,0xff,0x7f,0x05,0x3c, +0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x20,0x84,0x4c,0xff,0xff,0x05,0x34, +0x21,0x28,0xa4,0x00,0x00,0x28,0x85,0x4c,0x02,0x80,0x08,0x3c,0x00,0x00,0x08,0x25, +0x00,0x00,0x00,0xad,0x03,0x80,0x09,0x3c,0x7c,0xc3,0x29,0x25,0x04,0x00,0x08,0x25, +0xfe,0xff,0x09,0x15,0x00,0x00,0x00,0xad,0x00,0x80,0x04,0x3c,0x00,0x00,0x84,0x24, +0xff,0x7f,0x05,0x3c,0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x00,0x84,0x4c, +0xff,0xff,0x06,0x34,0x21,0x30,0xc4,0x00,0x24,0x30,0xc5,0x00,0x00,0x08,0x86,0x4c, +0x00,0xa0,0x04,0x40,0x10,0x00,0x84,0x34,0x00,0xa0,0x84,0x40,0x01,0x80,0x1b,0x3c, +0x44,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf, +0x00,0x00,0x00,0x00,0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x84, +0x20,0x00,0x06,0x24,0x25,0x28,0xa6,0x00,0x00,0x00,0x85,0xa4,0x01,0x80,0x1b,0x3c, +0x74,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf, +0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x8c,0x00,0x00,0x00,0x00, +0x10,0x00,0xa5,0x30,0xfc,0xff,0xa0,0x10,0x00,0x00,0x00,0x00,0xff,0x1f,0x07,0x3c, +0xff,0xff,0xe7,0x34,0x02,0x80,0x05,0x3c,0x50,0x43,0xa5,0x24,0xff,0xff,0xa5,0x30, +0x40,0xb0,0x04,0x3c,0x25,0x28,0xa4,0x00,0x24,0x28,0xa7,0x00,0x21,0x30,0x00,0x00, +0x43,0xb0,0x02,0x3c,0x00,0x80,0x04,0x3c,0x40,0x00,0x84,0x34,0x00,0x00,0x45,0xac, +0x04,0x00,0x46,0xac,0x08,0x00,0x44,0xac,0x7e,0x5e,0x00,0x08,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24, +0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0x08,0x00,0xe0,0x03,0x01,0x00,0x42,0x24, +0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x21,0x18,0x40,0x00,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03, +0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03, +0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0xe0,0xff,0xbd,0x27,0x18,0x00,0xb2,0xaf,0x1c,0x00,0xbf,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x30,0x80,0x00,0x21,0x90,0x00,0x00, +0x00,0x60,0x11,0x40,0x01,0x00,0x21,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x0d,0x00,0x83,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x60,0x14,0x02,0x80,0x02,0x3c, +0x01,0x00,0x03,0x24,0x9c,0x44,0x43,0xa0,0x0c,0x00,0xc2,0x90,0x02,0x80,0x05,0x3c, +0xb1,0x44,0xa2,0xa0,0x00,0x00,0xc4,0x90,0x05,0x00,0x02,0x24,0xff,0x00,0x83,0x30, +0x4b,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x24,0x3b,0x00,0x62,0x10, +0xff,0x00,0x84,0x30,0x09,0x00,0x82,0x2c,0x2f,0x00,0x40,0x10,0x02,0x80,0x10,0x3c, +0x98,0x44,0x02,0x92,0x00,0x00,0x00,0x00,0xff,0x00,0x42,0x30,0x2b,0x00,0x82,0x10, +0x00,0x00,0x00,0x00,0xad,0x1e,0x00,0x0c,0x00,0x00,0x00,0x00,0x98,0x44,0x02,0x92, +0x00,0x00,0x00,0x00,0x3e,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,0x60,0x26,0x62,0x90, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x5a,0x00,0x40,0x10,0x02,0x80,0x02,0x3c, +0x02,0x80,0x03,0x3c,0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x40,0x14, +0x25,0xb0,0x02,0x3c,0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24, +0xb9,0x44,0x62,0xa0,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00, +0x0f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,0x04,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c, +0xf9,0x1f,0x00,0x0c,0x04,0x00,0x04,0x24,0x25,0xb0,0x02,0x3c,0x00,0x01,0x03,0x24, +0x16,0x01,0x42,0x34,0x00,0x00,0x43,0xa4,0x00,0x60,0x91,0x40,0x21,0x10,0x40,0x02, +0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x04,0x00,0x12,0x24,0x00,0x60,0x91,0x40, +0x21,0x10,0x40,0x02,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x0b,0x00,0xc2,0x90, +0x00,0x00,0x00,0x00,0x03,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,0x02,0x80,0x03,0x3c, +0x01,0x00,0x02,0x24,0xb4,0x44,0x62,0xa0,0xb4,0x44,0x63,0x90,0x02,0x80,0x02,0x3c, +0xb5,0x44,0x43,0xa0,0x00,0x00,0xc4,0x90,0xb7,0x41,0x00,0x08,0xff,0x00,0x84,0x30, +0xb1,0x44,0xa0,0xa0,0x00,0x00,0xc4,0x90,0xb4,0x41,0x00,0x08,0xff,0x00,0x83,0x30, +0x42,0xb0,0x05,0x3c,0x00,0x00,0xa3,0x90,0xef,0xff,0x02,0x24,0x03,0x00,0xa6,0x34, +0x24,0x18,0x62,0x00,0x40,0x00,0x02,0x24,0x00,0x00,0xa3,0xa0,0x0c,0x00,0x04,0x24, +0x00,0x00,0xc2,0xa0,0x02,0x80,0x03,0x3c,0xf9,0x1f,0x00,0x0c,0x88,0x44,0x60,0xac, +0x02,0x80,0x03,0x3c,0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30, +0x17,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x78,0x1b,0x45,0x24, +0x82,0x0b,0xa3,0x90,0x25,0xb0,0x02,0x3c,0x16,0x01,0x42,0x34,0x00,0x00,0x40,0xa4, +0xce,0xff,0x60,0x10,0x00,0x00,0x00,0x00,0x98,0x26,0xa4,0x94,0x82,0x0b,0xa0,0xa0, +0x00,0xc0,0x84,0x24,0x2c,0x22,0x00,0x0c,0xff,0xff,0x84,0x30,0xe9,0x41,0x00,0x08, +0x00,0x00,0x00,0x00,0xb9,0x44,0x40,0xa0,0x25,0xb0,0x02,0x3c,0x00,0x01,0x03,0x24, +0x16,0x01,0x42,0x34,0x00,0x00,0x43,0xa4,0xe0,0x41,0x00,0x08,0x00,0x00,0x00,0x00, +0x55,0x1f,0x00,0x0c,0x01,0x00,0x04,0x24,0x15,0x42,0x00,0x08,0x02,0x80,0x02,0x3c, +0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf, +0x14,0x00,0xb1,0xaf,0x21,0x80,0x80,0x00,0x00,0x60,0x11,0x40,0x01,0x00,0x21,0x36, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x00,0x00,0x02,0x92,0x02,0x80,0x04,0x3c, +0x25,0xb0,0x05,0x3c,0x02,0x80,0x07,0x3c,0x98,0x26,0x84,0x24,0x50,0x00,0xa5,0x34, +0x06,0x00,0x06,0x24,0x13,0x00,0x40,0x14,0x78,0x1b,0xe3,0x24,0xe8,0x0a,0x62,0x90, +0x78,0x1b,0xf2,0x24,0x02,0x80,0x04,0x3c,0xfe,0x00,0x42,0x30,0xe8,0x0a,0x62,0xa0, +0xe8,0x0a,0x42,0x92,0x18,0x42,0x84,0x24,0x01,0x00,0x42,0x30,0x18,0x00,0x40,0x14, +0x02,0x00,0x05,0x26,0x00,0x60,0x91,0x40,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x46,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x07,0x3c, +0x78,0x1b,0xe3,0x24,0xe8,0x0a,0x62,0x90,0x78,0x1b,0xf2,0x24,0x02,0x80,0x04,0x3c, +0x01,0x00,0x42,0x34,0xe8,0x0a,0x62,0xa0,0xe8,0x0a,0x42,0x92,0x18,0x42,0x84,0x24, +0x02,0x00,0x05,0x26,0x01,0x00,0x42,0x30,0xea,0xff,0x40,0x10,0x06,0x00,0x06,0x24, +0x01,0x00,0x03,0x92,0x02,0x80,0x02,0x3c,0xb3,0x44,0x43,0xa0,0x46,0x46,0x00,0x0c, +0x00,0x00,0x00,0x00,0x08,0x00,0x04,0x96,0x02,0x80,0x03,0x3c,0xa0,0x44,0x64,0xa4, +0xa0,0x44,0x62,0x94,0x02,0x80,0x03,0x3c,0xff,0xff,0x42,0x30,0x80,0x12,0x02,0x00, +0xa4,0x44,0x62,0xac,0x0a,0x00,0x04,0x96,0x14,0x00,0x03,0x24,0x02,0x80,0x02,0x3c, +0xb9,0x44,0x43,0xa0,0x98,0x26,0x44,0xa6,0x00,0x60,0x91,0x40,0x1c,0x00,0xbf,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x25,0xb0,0x02,0x3c,0x21,0x20,0x82,0x00,0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c, +0x25,0xb0,0x06,0x3c,0x78,0x1b,0x45,0x24,0x01,0x80,0x02,0x3c,0x18,0x03,0xc3,0x34, +0x54,0x0a,0x42,0x24,0x20,0x08,0xc8,0x34,0x21,0x38,0x80,0x00,0x60,0x08,0x09,0x24, +0x00,0x00,0x62,0xac,0x07,0x00,0x80,0x10,0x70,0x08,0x02,0x24,0x01,0x00,0x02,0x24, +0x28,0x08,0xc3,0x34,0x2a,0x00,0x82,0x10,0x64,0x08,0x06,0x24,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x8d,0xe0,0x08,0x03,0x24,0x8c,0x0b,0xa2,0xac, +0x40,0x08,0x02,0x24,0x90,0x0b,0xa3,0xac,0x9c,0x0b,0xa2,0xac,0x78,0x08,0x03,0x24, +0x0c,0x08,0x02,0x24,0xa0,0x0b,0xa3,0xac,0xa4,0x0b,0xa2,0xac,0x10,0x08,0x03,0x24, +0x20,0x08,0x02,0x24,0xa8,0x0b,0xa3,0xac,0xac,0x0b,0xa2,0xac,0x24,0x08,0x03,0x24, +0x58,0x08,0x02,0x24,0xb0,0x0b,0xa3,0xac,0xb4,0x0b,0xa2,0xac,0x50,0x0c,0x03,0x24, +0x54,0x0c,0x02,0x24,0xb8,0x0b,0xa3,0xac,0xbc,0x0b,0xa2,0xac,0x14,0x0c,0x03,0x24, +0x10,0x0c,0x02,0x24,0xc0,0x0b,0xa3,0xac,0xc4,0x0b,0xa2,0xac,0x80,0x0c,0x03,0x24, +0x84,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xcc,0x0b,0xa2,0xac,0x98,0x0b,0xa9,0xac, +0xc8,0x0b,0xa3,0xac,0x89,0x0b,0xa0,0xa0,0x94,0x0b,0xa9,0xac,0x02,0x00,0x80,0x10, +0xa0,0x08,0x02,0x24,0xb8,0x08,0x02,0x24,0x08,0x00,0xe0,0x03,0xd0,0x0b,0xa2,0xac, +0x70,0x08,0x02,0x24,0x00,0x00,0x64,0x8c,0xe0,0x08,0x03,0x24,0x8c,0x0b,0xa2,0xac, +0x44,0x08,0x02,0x24,0x90,0x0b,0xa3,0xac,0x9c,0x0b,0xa2,0xac,0x78,0x08,0x03,0x24, +0x0c,0x08,0x02,0x24,0xa0,0x0b,0xa3,0xac,0xa4,0x0b,0xa2,0xac,0x14,0x08,0x03,0x24, +0x28,0x08,0x02,0x24,0xa8,0x0b,0xa3,0xac,0xac,0x0b,0xa2,0xac,0x2c,0x08,0x03,0x24, +0x58,0x08,0x02,0x24,0xb0,0x0b,0xa3,0xac,0xb4,0x0b,0xa2,0xac,0x58,0x0c,0x03,0x24, +0x5c,0x0c,0x02,0x24,0xb8,0x0b,0xa3,0xac,0xbc,0x0b,0xa2,0xac,0x1c,0x0c,0x03,0x24, +0x18,0x0c,0x02,0x24,0xc0,0x0b,0xa3,0xac,0xc4,0x0b,0xa2,0xac,0x88,0x0c,0x03,0x24, +0x8c,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xcc,0x0b,0xa2,0xac,0x89,0x0b,0xa7,0xa0, +0x98,0x0b,0xa6,0xac,0xc8,0x0b,0xa3,0xac,0x94,0x0b,0xa6,0xac,0xda,0xff,0x80,0x10, +0xa4,0x08,0x02,0x24,0xbc,0x08,0x02,0x24,0x08,0x00,0xe0,0x03,0xd0,0x0b,0xa2,0xac, +0xfb,0x42,0x00,0x08,0x21,0x18,0x00,0x00,0x20,0x00,0x62,0x2c,0x06,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x06,0x10,0x64,0x00,0x01,0x00,0x42,0x30,0xfa,0xff,0x40,0x10, +0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0xd8,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x25,0xb0,0x02,0x3c,0x21,0x88,0xa0,0x00, +0xff,0xff,0x03,0x24,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf, +0x20,0x00,0xbf,0xaf,0x21,0x98,0xc0,0x00,0x21,0x28,0xc0,0x00,0x21,0x90,0x80,0x00, +0x09,0x00,0x23,0x12,0x21,0x80,0x82,0x00,0x00,0x00,0x10,0x8e,0xf6,0x42,0x00,0x0c, +0x21,0x20,0x20,0x02,0x27,0x28,0x11,0x00,0x24,0x28,0xb0,0x00,0x04,0x10,0x53,0x00, +0x25,0x28,0xa2,0x00,0x21,0x20,0x40,0x02,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x8a,0x42,0x00,0x08, +0x28,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0x21,0x30,0x80,0x00,0x14,0x27,0x44,0x8c, +0x02,0x43,0x00,0x08,0xff,0xff,0x05,0x24,0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c, +0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x20,0x82,0x00, +0x00,0x00,0x90,0x8c,0x21,0x88,0xa0,0x00,0xf6,0x42,0x00,0x0c,0x21,0x20,0xa0,0x00, +0x24,0x80,0x11,0x02,0x06,0x10,0x50,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd8,0xff,0xbd,0x27, +0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,0x20,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf, +0x1c,0x00,0xb3,0xaf,0x10,0x00,0xb0,0xaf,0x78,0x1b,0x31,0x26,0xb0,0x0b,0x23,0x8e, +0x25,0xb0,0x02,0x3c,0x24,0x08,0x53,0x8c,0x21,0x18,0x62,0x00,0x00,0x00,0x70,0x8c, +0x7f,0x80,0x02,0x3c,0xff,0xff,0x42,0x34,0xff,0x7f,0x05,0x3c,0x24,0x80,0x02,0x02, +0xc0,0x25,0x04,0x00,0xff,0xff,0xa5,0x34,0x24,0x28,0x65,0x02,0x25,0x80,0x04,0x02, +0x8a,0x42,0x00,0x0c,0x24,0x08,0x04,0x24,0x9c,0x12,0x00,0x0c,0x01,0x00,0x04,0x24, +0x00,0x80,0x12,0x3c,0xb0,0x0b,0x24,0x8e,0x25,0x80,0x12,0x02,0x8a,0x42,0x00,0x0c, +0x21,0x28,0x00,0x02,0x9c,0x12,0x00,0x0c,0x01,0x00,0x04,0x24,0x25,0x28,0x72,0x02, +0x8a,0x42,0x00,0x0c,0x24,0x08,0x04,0x24,0x9c,0x12,0x00,0x0c,0x01,0x00,0x04,0x24, +0xd0,0x0b,0x24,0x8e,0x0f,0x00,0x05,0x3c,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0xff,0xa5,0x34, +0x24,0x43,0x00,0x08,0x28,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf, +0x02,0x80,0x11,0x3c,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x78,0x1b,0x27,0x26, +0x8b,0x0b,0xe5,0x90,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x90,0x0d,0x63,0x24, +0x18,0x03,0x42,0x34,0x02,0x00,0x06,0x24,0x00,0x00,0x43,0xac,0x34,0x00,0xa6,0x10, +0x21,0x80,0x80,0x00,0x03,0x00,0x03,0x24,0x3a,0x00,0xa3,0x10,0x2e,0x00,0x02,0x2e, +0x10,0x00,0x02,0x2e,0x07,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xff,0x00,0x04,0x32, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x35,0x43,0x00,0x08, +0x20,0x00,0xbd,0x27,0xfa,0xff,0xa6,0x14,0xff,0x00,0x04,0x32,0x89,0x0b,0xe4,0x90, +0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10,0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x38,0x00,0x85,0x10,0x78,0x1b,0x22,0x26,0x2e,0x00,0x83,0x10, +0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24,0x24,0x43,0x00,0x0c,0xff,0xff,0x05,0x24, +0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34,0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24, +0x02,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,0x78,0x1b,0x22,0x26,0x89,0x0b,0x44,0x90, +0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10,0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14, +0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10,0x03,0x00,0x02,0x24,0xdb,0xff,0x82,0x14, +0x00,0x00,0x00,0x00,0x78,0x1b,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c, +0x02,0x43,0x00,0x0c,0x21,0x30,0x00,0x00,0x7a,0x43,0x00,0x08,0xff,0x00,0x04,0x32, +0x25,0x00,0x82,0x2c,0xcc,0xff,0x40,0x14,0x03,0x00,0x03,0x24,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0xc7,0xff,0x40,0x14,0x10,0x00,0x02,0x2e,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x78,0x1b,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c, +0x02,0x43,0x00,0x0c,0x0f,0x00,0x06,0x24,0x8c,0x43,0x00,0x08,0x00,0x08,0x04,0x24, +0xcc,0xff,0x80,0x14,0x78,0x1b,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24, +0x02,0x43,0x00,0x0c,0x0f,0x00,0x06,0x24,0x8c,0x43,0x00,0x08,0x00,0x08,0x04,0x24, +0xb2,0xff,0x80,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x22,0x26,0x8c,0x0b,0x44,0x8c, +0x0f,0x00,0x05,0x24,0x02,0x43,0x00,0x0c,0x21,0x30,0x00,0x00,0x7a,0x43,0x00,0x08, +0xff,0x00,0x04,0x32,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c, +0x78,0x1b,0x28,0x26,0x8b,0x0b,0x06,0x91,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x3c,0x0f,0x63,0x24,0x18,0x03,0x42,0x34,0x02,0x00,0x07,0x24,0x18,0x00,0xb2,0xaf, +0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,0x00,0x00,0x43,0xac,0x21,0x90,0xa0,0x00, +0x39,0x00,0xc7,0x10,0xff,0x00,0x90,0x30,0x03,0x00,0x03,0x24,0x3f,0x00,0xc3,0x10, +0x2e,0x00,0x02,0x2e,0x10,0x00,0x02,0x2e,0x0c,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x0f,0x00,0x04,0x3c,0xff,0xff,0x84,0x34,0x24,0x20,0x44,0x02,0x00,0x15,0x10,0x00, +0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x25,0x20,0x44,0x00,0x1f,0x43,0x00,0x08,0x20,0x00,0xbd,0x27,0xf5,0xff,0xc7,0x14, +0x0f,0x00,0x04,0x3c,0x89,0x0b,0x04,0x91,0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10, +0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x38,0x00,0x86,0x10, +0x78,0x1b,0x22,0x26,0x2e,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24, +0x24,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34, +0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24,0x02,0x43,0x00,0x0c,0xff,0xff,0x05,0x24, +0x78,0x1b,0x22,0x26,0x89,0x0b,0x44,0x90,0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10, +0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10, +0x03,0x00,0x02,0x24,0xd6,0xff,0x82,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x22,0x26, +0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0x02,0x43,0x00,0x0c,0x21,0x30,0x00,0x00, +0xe7,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0x25,0x00,0x02,0x2e,0xc7,0xff,0x40,0x14, +0x03,0x00,0x03,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xc1,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x78,0x1b,0x22,0x26, +0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0x02,0x43,0x00,0x0c,0x0f,0x00,0x06,0x24, +0xfe,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xcc,0xff,0x80,0x14,0x78,0x1b,0x22,0x26, +0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24,0x02,0x43,0x00,0x0c,0x0f,0x00,0x06,0x24, +0xfe,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xad,0xff,0x80,0x14,0x00,0x00,0x00,0x00, +0x78,0x1b,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24,0x02,0x43,0x00,0x0c, +0x21,0x30,0x00,0x00,0xe7,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0xe8,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0x21,0x80,0x80,0x00,0x14,0x00,0xbf,0xaf,0x35,0x43,0x00,0x0c, +0x21,0x20,0x00,0x00,0x40,0x01,0x44,0x34,0x21,0x18,0x40,0x00,0x1f,0x00,0x02,0x2e, +0x00,0x23,0x04,0x00,0x10,0x00,0x40,0x10,0x10,0x00,0x05,0x2e,0x00,0x01,0x64,0x34, +0x06,0x00,0xa0,0x10,0x00,0x23,0x04,0x00,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x1f,0x43,0x00,0x0c, +0xf1,0xff,0x10,0x26,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x1f,0x43,0x00,0x0c,0xe2,0xff,0x10,0x26, +0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c,0x18,0x00,0xbf,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x20,0x82,0x00,0x00,0x00,0x90,0x8c, +0x21,0x88,0xa0,0x00,0xf6,0x42,0x00,0x0c,0x21,0x20,0xa0,0x00,0x24,0x80,0x11,0x02, +0x06,0x10,0x50,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd8,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c, +0x18,0x00,0xb2,0xaf,0x21,0x90,0x82,0x00,0xff,0xff,0x02,0x24,0x1c,0x00,0xb3,0xaf, +0x14,0x00,0xb1,0xaf,0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x88,0xa0,0x00, +0x21,0x20,0xa0,0x00,0x21,0x18,0x40,0x02,0x10,0x00,0xa2,0x10,0x21,0x98,0xc0,0x00, +0x00,0x00,0x50,0x8e,0xf6,0x42,0x00,0x0c,0x00,0x00,0x00,0x00,0x27,0x18,0x11,0x00, +0x24,0x18,0x70,0x00,0x04,0x10,0x53,0x00,0x25,0x18,0x62,0x00,0x00,0x00,0x43,0xae, +0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x20,0x00,0xbf,0x8f, +0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x28,0x00,0xbd,0x27,0x00,0x00,0x66,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x25,0xb0,0x02,0x3c,0x21,0x38,0x82,0x00,0xff,0xff,0x02,0x24,0x27,0x40,0x05,0x00, +0x08,0x00,0xa2,0x10,0x24,0x18,0xc5,0x00,0x00,0x00,0xe2,0x8c,0x00,0x00,0x00,0x00, +0x24,0x10,0x02,0x01,0x25,0x10,0x43,0x00,0x00,0x00,0xe2,0xac,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x21,0x38,0xa0,0x00,0x25,0xb0,0x02,0x3c,0xff,0xff,0x03,0x24,0x27,0x48,0x05,0x00, +0x24,0x40,0xc7,0x00,0x21,0x28,0xc0,0x00,0x05,0x00,0xe3,0x10,0x21,0x30,0x82,0x00, +0x00,0x00,0xc5,0x8c,0x00,0x00,0x00,0x00,0x24,0x28,0x25,0x01,0x25,0x28,0xa8,0x00, +0x8a,0x42,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c, +0xd8,0xff,0xbd,0x27,0xe0,0x12,0x42,0x24,0x18,0x03,0x63,0x34,0x20,0x00,0xb4,0xaf, +0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,0x24,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf, +0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x21,0x88,0xa0,0x00,0x21,0x98,0xc0,0x00, +0x21,0xa0,0x80,0x00,0x00,0x60,0x12,0x40,0x01,0x00,0x41,0x36,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x0f,0x00,0x02,0x3c,0xff,0xff,0x42,0x34,0x0a,0x00,0x22,0x12, +0x21,0x28,0xc0,0x00,0x64,0x43,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x20,0x20,0x02, +0xf6,0x42,0x00,0x0c,0x21,0x80,0x40,0x00,0x27,0x28,0x11,0x00,0x24,0x28,0xb0,0x00, +0x04,0x10,0x53,0x00,0x25,0x28,0xa2,0x00,0xcf,0x43,0x00,0x0c,0xff,0x00,0x84,0x32, +0x00,0x60,0x92,0x40,0x24,0x00,0xbf,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x28,0x00,0xbd,0x27,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x8c,0x13,0x63,0x24, +0x18,0x03,0x42,0x34,0xe0,0xff,0xbd,0x27,0x00,0x00,0x43,0xac,0x18,0x00,0xbf,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x64,0x43,0x00,0x0c,0x21,0x88,0xa0,0x00, +0x21,0x80,0x40,0x00,0xf6,0x42,0x00,0x0c,0x21,0x20,0x20,0x02,0x24,0x80,0x11,0x02, +0x06,0x10,0x50,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf, +0x95,0x42,0x00,0x0c,0xff,0x00,0x84,0x30,0x10,0x00,0xbf,0x8f,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xc8,0xff,0xbd,0x27,0x2c,0x00,0xb1,0xaf,0xff,0xff,0x05,0x24,0x21,0x88,0x80,0x00, +0x02,0x00,0x06,0x24,0x10,0x00,0xa4,0x27,0x34,0x00,0xbf,0xaf,0x30,0x00,0xb2,0xaf, +0x3e,0x46,0x00,0x0c,0x28,0x00,0xb0,0xaf,0x08,0x00,0x30,0x96,0x02,0x80,0x02,0x3c, +0x21,0x28,0x00,0x00,0x25,0x80,0x02,0x02,0x21,0x20,0x00,0x02,0x3e,0x46,0x00,0x0c, +0x10,0x00,0x06,0x24,0x20,0x00,0x02,0x96,0x24,0x00,0x04,0x26,0x10,0x00,0xa5,0x27, +0x03,0xff,0x42,0x30,0xc8,0x00,0x42,0x34,0x20,0x00,0x02,0xa6,0x46,0x46,0x00,0x0c, +0x06,0x00,0x06,0x24,0x25,0xb0,0x03,0x3c,0x50,0x00,0x62,0x34,0x00,0x00,0x44,0x8c, +0x54,0x00,0x65,0x34,0x58,0x00,0x66,0x34,0x18,0x00,0xa4,0xaf,0x00,0x00,0xa2,0x8c, +0x5c,0x00,0x63,0x34,0x2a,0x00,0x04,0x26,0x1c,0x00,0xa2,0xaf,0x00,0x00,0xc7,0x8c, +0x18,0x00,0xa5,0x27,0x06,0x00,0x06,0x24,0x20,0x00,0xa7,0xaf,0x00,0x00,0x62,0x8c, +0x1a,0x00,0x12,0x24,0x46,0x46,0x00,0x0c,0x24,0x00,0xa2,0xaf,0x30,0x00,0x04,0x26, +0x20,0x00,0xa5,0x27,0x46,0x46,0x00,0x0c,0x06,0x00,0x06,0x24,0x13,0x00,0x03,0x24, +0x14,0x00,0x23,0xae,0x0c,0x00,0x32,0xae,0x08,0x00,0x05,0x8e,0x04,0x00,0x04,0x8e, +0xff,0xdf,0x02,0x3c,0x14,0x00,0x06,0x8e,0xff,0xff,0x42,0x34,0x10,0x00,0x07,0x8e, +0xff,0xe0,0x03,0x24,0x24,0x28,0xa2,0x00,0x00,0x40,0x02,0x3c,0x24,0x20,0x83,0x00, +0x25,0x28,0xa2,0x00,0xff,0x81,0x03,0x24,0xfe,0xff,0x02,0x3c,0x24,0x30,0xc3,0x00, +0xff,0xff,0x42,0x34,0x00,0x12,0x84,0x34,0x00,0x80,0x03,0x3c,0x24,0x20,0x82,0x00, +0x25,0x38,0xe3,0x00,0x00,0x26,0xc6,0x34,0x80,0x00,0xa5,0x34,0x20,0x00,0x02,0x24, +0x00,0x00,0x12,0xa6,0x10,0x00,0x07,0xae,0x02,0x00,0x02,0xa2,0x14,0x00,0x06,0xae, +0x04,0x00,0x04,0xae,0x08,0x00,0x05,0xae,0x34,0x00,0xbf,0x8f,0x30,0x00,0xb2,0x8f, +0x2c,0x00,0xb1,0x8f,0x28,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27, +0xc8,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf,0x18,0x00,0xb0,0xaf,0xff,0xff,0xf4,0x30, +0x25,0xb0,0x10,0x3c,0x01,0x80,0x02,0x3c,0x1c,0x00,0xb1,0xaf,0x18,0x03,0x03,0x36, +0x58,0x15,0x42,0x24,0x20,0x00,0x91,0x26,0x30,0x00,0xb6,0xaf,0x24,0x00,0xb3,0xaf, +0x21,0xb0,0x80,0x00,0x48,0x00,0xb3,0x93,0x21,0x20,0x20,0x02,0x00,0x00,0x62,0xac, +0x2c,0x00,0xb5,0xaf,0x20,0x00,0xb2,0xaf,0x34,0x00,0xbf,0xaf,0xff,0x00,0xb5,0x30, +0x39,0x15,0x00,0x0c,0xff,0x00,0xd2,0x30,0x0b,0x00,0x40,0x14,0x10,0x00,0xa2,0xaf, +0x34,0x00,0xbf,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x08,0x00,0x43,0x8c,0xb0,0x03,0x02,0x36, +0x02,0x80,0x10,0x3c,0x00,0x00,0x43,0xac,0x10,0x00,0xa2,0x8f,0x21,0x30,0x20,0x02, +0x21,0x28,0x00,0x00,0x08,0x00,0x44,0x94,0x35,0x46,0x00,0x0c,0x25,0x20,0x90,0x00, +0x10,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x62,0x94,0x00,0x00,0x00,0x00, +0x25,0x88,0x50,0x00,0x50,0x00,0x60,0x16,0x20,0x00,0x30,0x26,0x20,0x00,0x32,0xa6, +0x48,0x00,0x02,0x24,0x6b,0x00,0x42,0x12,0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x24, +0x4c,0x00,0xa2,0x16,0x21,0x28,0xc0,0x02,0xa4,0x00,0x02,0x24,0x6a,0x00,0x42,0x12, +0x02,0x80,0x02,0x3c,0x10,0x00,0xa2,0x8f,0x25,0xb0,0x10,0x3c,0xb0,0x03,0x10,0x36, +0x0c,0x00,0x54,0xac,0x10,0x00,0xa2,0x8f,0x12,0x00,0x03,0x24,0x21,0x28,0x00,0x00, +0x14,0x00,0x43,0xac,0x00,0x00,0x14,0xae,0x10,0x00,0xa2,0x8f,0x08,0x00,0x06,0x24, +0x08,0x00,0x43,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xae,0x10,0x00,0xa2,0x8f, +0x02,0x80,0x03,0x3c,0x08,0x00,0x44,0x94,0x00,0x00,0x00,0x00,0x25,0x88,0x83,0x00, +0x3e,0x46,0x00,0x0c,0x21,0x20,0x20,0x02,0x04,0x00,0x25,0x8e,0x08,0x00,0x26,0x8e, +0x14,0x00,0x27,0x8e,0x10,0x00,0x24,0x8e,0xff,0xe0,0x03,0x24,0xff,0xdf,0x02,0x3c, +0x24,0x28,0xa3,0x00,0xff,0xff,0x42,0x34,0xff,0x81,0x03,0x24,0x24,0x38,0xe3,0x00, +0x24,0x30,0xc2,0x00,0x00,0x80,0x03,0x3c,0x00,0x40,0x02,0x3c,0x25,0x30,0xc2,0x00, +0x25,0x20,0x83,0x00,0x00,0x12,0xa5,0x34,0x20,0x00,0x02,0x24,0x10,0x00,0x24,0xae, +0x00,0x00,0x34,0xa6,0x02,0x00,0x22,0xa2,0x04,0x00,0x25,0xae,0x14,0x00,0x27,0xae, +0x08,0x00,0x26,0xae,0x00,0x60,0x05,0x40,0x01,0x00,0xa1,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x10,0x00,0xa3,0x8f,0x78,0x41,0x42,0x24, +0x04,0x00,0x44,0x8c,0x00,0x00,0x62,0xac,0x04,0x00,0x43,0xac,0x10,0x00,0xa2,0x27, +0x00,0x00,0x83,0xac,0x04,0x00,0x64,0xac,0x00,0x00,0x02,0xae,0x00,0x60,0x85,0x40, +0x34,0x00,0xbf,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x00,0x10,0x42,0x36,0x8a,0x45,0x00,0x08, +0x20,0x00,0x22,0xa6,0x24,0x00,0x24,0x26,0x46,0x46,0x00,0x0c,0x06,0x00,0x06,0x24, +0x02,0x80,0x05,0x3c,0x98,0x26,0xa5,0x24,0x2a,0x00,0x24,0x26,0x46,0x46,0x00,0x0c, +0x06,0x00,0x06,0x24,0x02,0x80,0x05,0x3c,0x30,0x00,0x24,0x26,0x18,0x42,0xa5,0x24, +0x46,0x46,0x00,0x0c,0x06,0x00,0x06,0x24,0x02,0x80,0x05,0x3c,0x78,0x1b,0xa5,0x24, +0xec,0x0c,0xa6,0x94,0x00,0x00,0x00,0x00,0x01,0x00,0xc2,0x24,0x00,0x21,0x06,0x00, +0xff,0xff,0x46,0x30,0xff,0xff,0x84,0x30,0x00,0x10,0xc2,0x2c,0x0a,0x30,0x02,0x00, +0x02,0x1a,0x04,0x00,0x17,0x00,0x03,0xa2,0x16,0x00,0x04,0xa2,0x93,0x45,0x00,0x08, +0xec,0x0c,0xa6,0xa4,0x20,0x00,0x22,0x96,0x00,0x00,0x00,0x00,0x00,0x01,0x42,0x34, +0x8d,0x45,0x00,0x08,0x20,0x00,0x22,0xa6,0x10,0x42,0x43,0x94,0x02,0x80,0x05,0x3c, +0x24,0x00,0x24,0x26,0x00,0xc0,0x63,0x24,0xff,0xff,0x63,0x30,0x02,0x12,0x03,0x00, +0x18,0x42,0xa5,0x24,0x03,0x00,0x02,0xa2,0x02,0x00,0x03,0xa2,0x46,0x46,0x00,0x0c, +0x06,0x00,0x06,0x24,0x02,0x80,0x05,0x3c,0x2a,0x00,0x24,0x26,0x98,0x26,0xa5,0x24, +0x46,0x46,0x00,0x0c,0x06,0x00,0x06,0x24,0x93,0x45,0x00,0x08,0x00,0x00,0x00,0x00, +0xff,0x00,0x82,0x30,0x02,0x80,0x04,0x3c,0xe0,0xff,0xbd,0x27,0x18,0x42,0x84,0x24, +0x08,0x00,0x05,0x24,0x48,0x00,0x06,0x24,0x18,0x00,0x07,0x24,0x18,0x00,0xbf,0xaf, +0x56,0x45,0x00,0x0c,0x10,0x00,0xa2,0xaf,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x05,0x3c, +0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb0,0xaf,0x78,0x1b,0xa5,0x24,0x98,0x26,0xa2,0x94, +0x01,0x00,0x03,0x24,0xff,0x00,0x90,0x30,0x00,0xc0,0x42,0x24,0xff,0xff,0x44,0x30, +0x2c,0x22,0x00,0x0c,0x82,0x0b,0xa3,0xa0,0x02,0x80,0x04,0x3c,0x18,0x42,0x84,0x24, +0x04,0x00,0x05,0x24,0xa4,0x00,0x06,0x24,0x10,0x00,0x07,0x24,0x56,0x45,0x00,0x0c, +0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x3a,0x46,0x00,0x08, +0xff,0x00,0xa5,0x30,0x00,0x00,0x85,0xa0,0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24, +0xfc,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x05,0x00,0xc0,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0xff,0xff,0xc6,0x24, +0xfd,0xff,0xc0,0x14,0x04,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10,0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24, +0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24,0x01,0x00,0xa5,0x24,0x00,0x00,0xe2,0xa0, +0xfb,0xff,0x66,0x14,0x01,0x00,0xe7,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00, +0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10,0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24, +0x00,0x00,0xa2,0x8c,0xff,0xff,0x63,0x24,0x04,0x00,0xa5,0x24,0x00,0x00,0xe2,0xac, +0xfb,0xff,0x66,0x14,0x04,0x00,0xe7,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00, +0x2b,0x10,0xa4,0x00,0x0d,0x00,0x40,0x14,0xff,0xff,0x02,0x24,0xff,0xff,0xc6,0x24, +0x08,0x00,0xc2,0x10,0x21,0x18,0x80,0x00,0xff,0xff,0x07,0x24,0x00,0x00,0xa2,0x90, +0xff,0xff,0xc6,0x24,0x01,0x00,0xa5,0x24,0x00,0x00,0x62,0xa0,0xfb,0xff,0xc7,0x14, +0x01,0x00,0x63,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x21,0x28,0xa6,0x00, +0x21,0x18,0x86,0x00,0xff,0xff,0xc6,0x24,0xfa,0xff,0xc2,0x10,0x00,0x00,0x00,0x00, +0xff,0xff,0x07,0x24,0xff,0xff,0xa5,0x24,0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24, +0xff,0xff,0xc6,0x24,0xfb,0xff,0xc7,0x14,0x00,0x00,0x62,0xa0,0x08,0x00,0xe0,0x03, +0x21,0x10,0x80,0x00,0x0c,0x00,0xc0,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x90, +0x00,0x00,0xa3,0x90,0x01,0x00,0x84,0x24,0x23,0x10,0x43,0x00,0x00,0x16,0x02,0x00, +0x03,0x16,0x02,0x00,0x04,0x00,0x40,0x14,0x01,0x00,0xa5,0x24,0xff,0xff,0xc6,0x24, +0xf6,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0xc0,0x00, +0x91,0x46,0x00,0x08,0x21,0x18,0x86,0x00,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00, +0x04,0x00,0x45,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0x24,0xfa,0xff,0x83,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x09,0x00,0xc0,0x10, +0xff,0xff,0xc3,0x24,0xff,0x00,0xa5,0x30,0xff,0xff,0x06,0x24,0x00,0x00,0x82,0x90, +0xff,0xff,0x63,0x24,0x05,0x00,0x45,0x10,0x01,0x00,0x84,0x24,0xfb,0xff,0x66,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0xff,0xff,0x82,0x24,0x21,0x38,0x00,0x00,0x1f,0x00,0xc0,0x10,0x21,0x18,0x00,0x00, +0x02,0x80,0x02,0x3c,0x80,0xb4,0x4b,0x24,0x00,0x00,0x87,0x90,0x00,0x00,0xa3,0x90, +0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24,0x21,0x10,0xeb,0x00,0x16,0x00,0xe0,0x10, +0x01,0x00,0xa5,0x24,0x14,0x00,0x60,0x10,0x21,0x48,0x6b,0x00,0x10,0x00,0xe3,0x10, +0x20,0x00,0xe8,0x24,0x00,0x00,0x42,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30, +0x02,0x00,0x40,0x10,0x20,0x00,0x6a,0x24,0xff,0x00,0x07,0x31,0x00,0x00,0x22,0x91, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x02,0x00,0x40,0x10,0xff,0x00,0xe7,0x30, +0xff,0x00,0x43,0x31,0xff,0x00,0x63,0x30,0x03,0x00,0xe3,0x14,0x00,0x00,0x00,0x00, +0xe5,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x23,0x10,0xe3,0x00, +0x21,0x18,0x80,0x00,0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0, +0xfc,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x21,0x38,0x80,0x00,0xff,0xff,0x03,0x24,0xff,0xff,0xc6,0x24,0x06,0x00,0xc3,0x10, +0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0, +0xf9,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00, +0x00,0x00,0x82,0x80,0xe0,0x46,0x00,0x08,0x21,0x18,0x80,0x00,0x01,0x00,0x84,0x24, +0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,0x00,0x00,0x00,0x00, +0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0xfc,0xff,0x40,0x14, +0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x12,0x00,0xc0,0x10, +0x21,0x18,0x80,0x00,0x00,0x00,0x82,0x80,0xf1,0x46,0x00,0x08,0x00,0x00,0x00,0x00, +0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0, +0x05,0x00,0x40,0x10,0x01,0x00,0x84,0x24,0xff,0xff,0xc6,0x24,0xf9,0xff,0xc0,0x14, +0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xa0,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x00,0x00,0x83,0x90,0x00,0x00,0xa2,0x90,0x01,0x00,0x84,0x24,0x23,0x10,0x62,0x00, +0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x03,0x00,0x40,0x14,0x01,0x00,0xa5,0x24, +0xf7,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x21,0x10,0x00,0x00,0x0b,0x00,0xc0,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90, +0x00,0x00,0x83,0x90,0xff,0xff,0xc6,0x24,0x23,0x10,0x62,0x00,0x00,0x16,0x02,0x00, +0x03,0x16,0x02,0x00,0x03,0x00,0x40,0x14,0x01,0x00,0xa5,0x24,0xf5,0xff,0x60,0x14, +0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x80, +0x00,0x2e,0x05,0x00,0x21,0x10,0x80,0x00,0x22,0x47,0x00,0x08,0x03,0x2e,0x05,0x00, +0x07,0x00,0x60,0x10,0x01,0x00,0x42,0x24,0x00,0x00,0x43,0x80,0x00,0x00,0x00,0x00, +0xfb,0xff,0x65,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x00,0x00,0x82,0x80,0x2e,0x47,0x00,0x08, +0x21,0x18,0x80,0x00,0x01,0x00,0x63,0x24,0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00, +0xfc,0xff,0x40,0x14,0x23,0x10,0x64,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x21,0x80,0xa0,0x00,0x14,0x00,0xb1,0xaf, +0x18,0x00,0xbf,0xaf,0x21,0x88,0x80,0x00,0x28,0x47,0x00,0x0c,0x00,0x86,0x10,0x00, +0x21,0x18,0x51,0x00,0x03,0x86,0x10,0x00,0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00, +0x0a,0x00,0x50,0x10,0x21,0x10,0x60,0x00,0xff,0xff,0x63,0x24,0x2b,0x10,0x71,0x00, +0xf9,0xff,0x40,0x10,0x21,0x10,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0x21,0x30,0x80,0x00,0x0d,0x00,0xa0,0x10,0xff,0xff,0xa3,0x24,0x00,0x00,0x82,0x80, +0x00,0x00,0x00,0x00,0x09,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x24, +0xff,0xff,0x63,0x24,0x05,0x00,0x65,0x10,0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x80, +0x00,0x00,0x00,0x00,0xfa,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x23,0x10,0xc4,0x00,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10, +0x21,0x40,0x00,0x00,0x00,0x00,0xa9,0x80,0x00,0x00,0x00,0x00,0x17,0x00,0x20,0x11, +0x21,0x30,0xa0,0x00,0x00,0x3e,0x02,0x00,0x03,0x3e,0x07,0x00,0x21,0x18,0x20,0x01, +0x15,0x00,0xe3,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x90, +0x00,0x00,0x00,0x00,0x00,0x1e,0x02,0x00,0x03,0x1e,0x03,0x00,0xf8,0xff,0x60,0x14, +0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x06,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0xeb,0xff,0x40,0x14, +0x01,0x00,0x08,0x25,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x01,0x00,0x00,0xa2,0x90, +0x73,0x47,0x00,0x08,0x00,0x16,0x02,0x00,0x00,0x00,0xc2,0x90,0x73,0x47,0x00,0x08, +0x00,0x16,0x02,0x00,0x00,0x00,0x87,0x90,0x00,0x00,0x00,0x00,0x14,0x00,0xe0,0x10, +0x21,0x10,0x80,0x00,0x00,0x00,0xa4,0x90,0x00,0x00,0x00,0x00,0x00,0x1e,0x04,0x00, +0x03,0x1e,0x03,0x00,0x09,0x00,0x60,0x10,0x21,0x30,0xa0,0x00,0x00,0x3e,0x07,0x00, +0x03,0x3e,0x07,0x00,0x0b,0x00,0xe3,0x10,0x01,0x00,0xc6,0x24,0x00,0x00,0xc3,0x80, +0x00,0x00,0x00,0x00,0xfb,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24, +0x00,0x00,0x47,0x90,0x00,0x00,0x00,0x00,0xf0,0xff,0xe0,0x14,0x00,0x00,0x00,0x00, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x21,0x80,0x80,0x00, +0x1d,0x00,0x80,0x10,0x21,0x88,0xa0,0x00,0x5f,0x47,0x00,0x0c,0x21,0x20,0x00,0x02, +0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82,0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02, +0x22,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x83,0x47,0x00,0x0c,0x00,0x00,0x00,0x00, +0x05,0x00,0x40,0x10,0x21,0x18,0x40,0x00,0x00,0x00,0x42,0x80,0x00,0x00,0x00,0x00, +0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0xa8,0xb5,0x43,0xac, +0x21,0x18,0x00,0x02,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x00,0x00,0x60,0xa0, +0xb4,0x47,0x00,0x08,0x01,0x00,0x63,0x24,0x02,0x80,0x02,0x3c,0xa8,0xb5,0x50,0x8c, +0x00,0x00,0x00,0x00,0xf3,0xff,0x00,0x12,0x21,0x18,0x00,0x00,0x5f,0x47,0x00,0x0c, +0x21,0x20,0x00,0x02,0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82,0x21,0x28,0x20,0x02, +0x21,0x20,0x00,0x02,0xe0,0xff,0x40,0x14,0x21,0x18,0x00,0x00,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x02,0x80,0x02,0x3c,0xa8,0xb5,0x40,0xac, +0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xe0,0xff,0xbd,0x27, +0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf, +0x00,0x00,0x90,0x8c,0x21,0x90,0x80,0x00,0x21,0x88,0xa0,0x00,0x21,0x18,0x00,0x00, +0x0f,0x00,0x00,0x12,0x21,0x20,0x00,0x02,0x5f,0x47,0x00,0x0c,0x00,0x00,0x00,0x00, +0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82,0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02, +0x07,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x83,0x47,0x00,0x0c,0x00,0x00,0x00,0x00, +0x21,0x18,0x40,0x00,0x09,0x00,0x40,0x14,0x00,0x00,0x42,0xae,0x21,0x18,0x00,0x02, +0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x00,0x00,0x42,0x80, +0x00,0x00,0x00,0x00,0xf5,0xff,0x40,0x10,0x01,0x00,0x64,0x24,0x00,0x00,0x60,0xa0, +0xed,0x47,0x00,0x08,0x00,0x00,0x44,0xae,0xd8,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf, +0x21,0x88,0x80,0x00,0x21,0x20,0xa0,0x00,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf, +0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x28,0x47,0x00,0x0c,0x21,0x98,0xa0,0x00, +0x21,0x90,0x40,0x00,0x08,0x00,0x40,0x16,0x21,0x10,0x20,0x02,0x20,0x00,0xbf,0x8f, +0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x28,0x47,0x00,0x0c,0x21,0x20,0x20,0x02, +0x21,0x80,0x40,0x00,0x2a,0x10,0x52,0x00,0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x02,0x21,0x30,0x40,0x02,0x7b,0x46,0x00,0x0c, +0xff,0xff,0x10,0x26,0x0b,0x00,0x40,0x10,0x2a,0x18,0x12,0x02,0xf8,0xff,0x60,0x10, +0x01,0x00,0x31,0x26,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x28,0x00,0xbd,0x27,0x09,0x48,0x00,0x08,0x21,0x10,0x20,0x02,0x01,0x80,0x02,0x3c, +0xa4,0x20,0x43,0x24,0x25,0xb0,0x02,0x3c,0xc0,0xff,0xbd,0x27,0x18,0x03,0x42,0x34, +0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,0x20,0x00,0xb2,0xaf, +0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x00,0x00,0x43,0xac,0x21,0xa0,0x00,0x00, +0x02,0x80,0x13,0x3c,0x02,0x80,0x15,0x3c,0x02,0x80,0x17,0x3c,0x02,0x80,0x16,0x3c, +0x78,0x1b,0x67,0x26,0xf0,0x23,0xe3,0x94,0x25,0xb0,0x11,0x3c,0x01,0x80,0x05,0x3c, +0x18,0x03,0x24,0x36,0x01,0x00,0x63,0x24,0xa4,0x20,0xa2,0x24,0x00,0x00,0x82,0xac, +0xf0,0x23,0xe3,0xa4,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0xc6,0x00,0x23,0x36,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00, +0x11,0x00,0x42,0x2c,0x08,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,0x02,0x80,0x04,0x3c, +0x44,0x44,0x62,0x8c,0x5c,0x44,0x83,0x8c,0x02,0x80,0x05,0x3c,0x5c,0x44,0x80,0xac, +0x25,0x10,0x43,0x00,0x44,0x44,0xa2,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0xc0,0x02,0x26,0x36,0x00,0x00,0xd2,0x8c,0x00,0x00,0x00,0x00, +0x03,0x00,0x40,0x12,0xff,0x00,0x03,0x3c,0x01,0x00,0x82,0x26,0xff,0xff,0x54,0x30, +0xff,0xff,0x62,0x34,0x2b,0x10,0x52,0x00,0x1d,0x02,0x40,0x10,0x00,0x50,0x82,0x2e, +0x00,0xff,0x02,0x3c,0xff,0x00,0x42,0x34,0x00,0xfd,0x06,0x3c,0x24,0x28,0x42,0x02, +0x14,0x00,0xc2,0x34,0xf7,0x04,0xa2,0x10,0x2b,0x10,0x45,0x00,0x33,0x02,0x40,0x14, +0x00,0xfd,0x04,0x3c,0x00,0xf2,0x08,0x3c,0x01,0x00,0x02,0x35,0x0b,0x05,0xa2,0x10, +0x2b,0x10,0x45,0x00,0xd3,0x02,0x40,0x14,0x00,0xfb,0x04,0x3c,0x00,0xf0,0x04,0x3c, +0x20,0x00,0x82,0x34,0x59,0x05,0xa2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x45,0x00, +0xfe,0x02,0x40,0x14,0x01,0x00,0x82,0x34,0x68,0x05,0xa2,0x10,0x00,0x00,0x00,0x00, +0x2b,0x10,0x45,0x00,0x07,0x04,0x40,0x14,0x03,0x00,0x82,0x34,0x00,0xe0,0x02,0x3c, +0xb7,0x05,0xa2,0x10,0x00,0xff,0x48,0x32,0xb3,0x04,0xa4,0x10,0xff,0x00,0x02,0x3c, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x21,0xa0,0x00,0x00,0x00,0x00,0x40,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x25,0xb0,0x08,0x3c,0x64,0x03,0x02,0x35,0x00,0x00,0x43,0x94,0x68,0x03,0x04,0x35, +0x90,0x43,0xa3,0xa6,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0xa0,0x43,0xe2,0xae, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x90,0x43,0xa2,0x96, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0xd2,0x01,0x40,0x10,0x78,0x1b,0x66,0x26, +0x78,0x1b,0x67,0x26,0x78,0x1b,0x64,0x8e,0xd8,0x02,0xe5,0x8c,0xe8,0x02,0xe6,0x8c, +0xf0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x00,0x50,0x03,0x3c,0x24,0x28,0xa2,0x00, +0x01,0x00,0x84,0x34,0x24,0x30,0xc3,0x00,0x00,0x10,0x02,0x3c,0x78,0x1b,0x64,0xae, +0x9b,0x04,0xc2,0x10,0xd8,0x02,0xe5,0xac,0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00, +0x02,0x00,0x42,0x30,0xbc,0x01,0x40,0x10,0xf3,0xff,0x03,0x24,0x78,0x1b,0x62,0x8e, +0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00,0x04,0x00,0x42,0x34,0x78,0x1b,0x62,0xae, +0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x30,0x49,0x01,0x40,0x10, +0xcf,0xff,0x03,0x24,0x78,0x1b,0x62,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00, +0x10,0x00,0x42,0x34,0x78,0x1b,0x62,0xae,0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00, +0x08,0x00,0x42,0x30,0x48,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0x90,0x43,0xa2,0x96, +0x00,0x00,0x00,0x00,0x10,0x00,0x42,0x30,0x26,0x00,0x40,0x10,0x78,0x1b,0x64,0x26, +0xc9,0x02,0x82,0x90,0xa0,0x43,0xe3,0x8e,0x01,0x00,0x42,0x24,0xc9,0x02,0x82,0xa0, +0x0f,0x00,0x63,0x30,0x01,0x00,0x02,0x24,0xa6,0x04,0x62,0x10,0x02,0x80,0x04,0x3c, +0xa0,0x43,0x82,0x8c,0x02,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0xa5,0x04,0x43,0x10, +0x00,0x00,0x00,0x00,0xa0,0x43,0x82,0x8c,0x03,0x00,0x03,0x24,0x0f,0x00,0x42,0x30, +0x02,0x00,0x43,0x10,0x03,0x00,0x04,0x24,0x21,0x20,0x00,0x00,0x15,0x51,0x00,0x0c, +0x00,0x00,0x00,0x00,0xa0,0x43,0xe3,0x8e,0x90,0x43,0xa5,0x96,0x25,0xb0,0x02,0x3c, +0xf0,0x00,0x63,0x30,0x64,0x03,0x42,0x34,0x02,0x19,0x03,0x00,0xef,0x00,0xa5,0x30, +0x78,0x1b,0x64,0x26,0x02,0x00,0x83,0xa0,0x00,0x00,0x45,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x30, +0x26,0x00,0x40,0x10,0x78,0x1b,0x64,0x26,0xca,0x02,0x82,0x90,0xa0,0x43,0xe3,0x8e, +0x01,0x00,0x42,0x24,0xca,0x02,0x82,0xa0,0x0f,0x00,0x63,0x30,0x01,0x00,0x02,0x24, +0x7a,0x04,0x62,0x10,0x02,0x80,0x04,0x3c,0xa0,0x43,0x82,0x8c,0x02,0x00,0x03,0x24, +0x0f,0x00,0x42,0x30,0x79,0x04,0x43,0x10,0x00,0x00,0x00,0x00,0xa0,0x43,0x82,0x8c, +0x03,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x02,0x00,0x43,0x10,0x03,0x00,0x04,0x24, +0x21,0x20,0x00,0x00,0x15,0x51,0x00,0x0c,0x00,0x00,0x00,0x00,0xa0,0x43,0xe3,0x8e, +0x90,0x43,0xa5,0x96,0x25,0xb0,0x02,0x3c,0xf0,0x00,0x63,0x30,0x64,0x03,0x42,0x34, +0x02,0x19,0x03,0x00,0xdf,0x00,0xa5,0x30,0x78,0x1b,0x64,0x26,0x02,0x00,0x83,0xa0, +0x00,0x00,0x45,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x90,0x43,0xa2,0x96, +0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x30,0xc4,0x00,0x40,0x10,0x78,0x1b,0x64,0x26, +0x78,0x1b,0x6f,0x26,0x08,0x00,0xe4,0x8d,0x00,0x00,0x00,0x00,0x42,0x17,0x04,0x00, +0x03,0x00,0x42,0x30,0x71,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0xa0,0x43,0xe2,0x8e, +0xff,0x9f,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x18,0x83,0x00,0x00,0xff,0x11,0x3c, +0x00,0x20,0x04,0x3c,0x25,0x18,0x64,0x00,0x24,0x10,0x51,0x00,0x08,0x00,0xe3,0xad, +0x98,0x01,0x40,0x14,0x02,0x80,0x10,0x3c,0x25,0xb0,0x0e,0x3c,0x03,0x0d,0xc2,0x35, +0x00,0x00,0x43,0x90,0x10,0x00,0xe4,0x8d,0xff,0x3f,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x58,0x82,0x00,0x70,0x00,0x63,0x30,0x00,0x40,0x02,0x3c,0x56,0x04,0x60,0x10, +0x25,0x58,0x62,0x01,0x94,0x0e,0xc2,0x35,0x9c,0x0e,0xc3,0x35,0xa4,0x0e,0xc4,0x35, +0xac,0x0e,0xc5,0x35,0x00,0x00,0x47,0x8c,0x00,0x00,0x6a,0x8c,0x00,0x00,0x8c,0x8c, +0x00,0x00,0xa6,0x8c,0x0c,0x00,0xe4,0x8d,0xb4,0x0e,0xc2,0x35,0x00,0x00,0x49,0x8c, +0xff,0x03,0x05,0x3c,0x00,0xfc,0x08,0x24,0xbc,0x0e,0xc2,0x35,0x24,0x38,0xe5,0x00, +0x24,0x30,0xc5,0x00,0x24,0x18,0x68,0x01,0x02,0x3c,0x07,0x00,0x00,0x00,0x4b,0x8c, +0x24,0x20,0x88,0x00,0x02,0x34,0x06,0x00,0xcc,0x0e,0xcd,0x35,0xc4,0x0e,0xc8,0x35, +0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,0x25,0x20,0x87,0x00,0x25,0x18,0x66,0x00, +0x00,0x00,0x07,0x8d,0x24,0x50,0x45,0x01,0x00,0x00,0xa6,0x8d,0x24,0x48,0x25,0x01, +0x24,0x18,0x62,0x00,0x24,0x20,0x82,0x00,0x82,0x51,0x0a,0x00,0x82,0x49,0x09,0x00, +0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,0x25,0x20,0x8a,0x00,0x25,0x18,0x69,0x00, +0x24,0x60,0x85,0x01,0x24,0x58,0x65,0x01,0x24,0x18,0x62,0x00,0x24,0x30,0xc5,0x00, +0x00,0x61,0x0c,0x00,0x24,0x20,0x82,0x00,0x00,0x59,0x0b,0x00,0x24,0x38,0xe5,0x00, +0x25,0x20,0x8c,0x00,0x25,0x18,0x6b,0x00,0x02,0x3c,0x07,0x00,0x02,0x34,0x06,0x00, +0x16,0x00,0xe6,0xa5,0x0c,0x00,0xe4,0xad,0x10,0x00,0xe3,0xad,0x14,0x00,0xe7,0xa5, +0x78,0x1b,0x63,0x26,0x0c,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x16,0x04,0x40,0x04, +0x00,0x00,0x00,0x00,0xa0,0x43,0xe2,0x8e,0xff,0x00,0x04,0x3c,0x24,0x10,0x44,0x00, +0x05,0x00,0x40,0x10,0x12,0x00,0x02,0x24,0xa0,0x43,0xe2,0x8e,0x00,0x00,0x00,0x00, +0x24,0x10,0x44,0x00,0x02,0x14,0x02,0x00,0xc3,0x02,0x62,0xa0,0x6c,0x56,0x00,0x0c, +0x10,0x00,0xa4,0x27,0xa7,0x55,0x00,0x0c,0x00,0x00,0x00,0x00,0x78,0x1b,0x62,0x26, +0x0c,0x00,0x43,0x8c,0x00,0x80,0x04,0x3c,0x25,0x18,0x64,0x00,0x0c,0x00,0x43,0xac, +0x78,0x1b,0x62,0x26,0xc3,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,0x61,0x0c,0x63,0x34, +0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x90,0x43,0xa2,0x96, +0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x30,0x52,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x78,0x1b,0x62,0x8e,0x00,0x00,0x00,0x00,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30, +0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00, +0x00,0x01,0x42,0x30,0xe6,0x00,0x40,0x14,0x02,0x80,0x02,0x3c,0x78,0x1b,0x62,0x26, +0xea,0x02,0x40,0xa0,0x90,0x43,0xa2,0x96,0x01,0x00,0x03,0x24,0x00,0x02,0x42,0x30, +0xe7,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x78,0x1b,0x62,0x8e,0xfd,0xff,0x03,0x24, +0x24,0x10,0x43,0x00,0x78,0x1b,0x62,0xae,0x25,0xb0,0x04,0x3c,0x4c,0x00,0x83,0x34, +0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0x05,0x00,0x40,0x14, +0x01,0x80,0x05,0x3c,0x78,0x1b,0x62,0x8e,0x3f,0xff,0x03,0x24,0x24,0x10,0x43,0x00, +0x78,0x1b,0x62,0xae,0x18,0x03,0x82,0x34,0xa4,0x21,0xa3,0x24,0x00,0x00,0x43,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x70,0x41,0xc2,0x8e,0x70,0x41,0xc3,0x26,0x11,0x00,0x43,0x10,0x02,0x80,0x02,0x3c, +0xbf,0x00,0x92,0x34,0x78,0x1b,0x51,0x24,0x21,0x80,0x60,0x00,0x21,0xf0,0x00,0x00, +0x00,0x00,0x42,0x92,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x2c,0x08,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0xf8,0x25,0x24,0x8e,0xd9,0x09,0x00,0x0c,0x00,0x00,0x00,0x00, +0x70,0x41,0xc3,0x8e,0x00,0x00,0x00,0x00,0xf5,0xff,0x70,0x14,0x00,0x00,0x00,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c, +0x21,0x28,0x00,0x00,0x08,0x10,0x44,0x24,0x21,0x30,0x00,0x00,0x2d,0x28,0x00,0x0c, +0x21,0x38,0x00,0x00,0x3f,0x48,0x00,0x08,0x78,0x1b,0x67,0x26,0x08,0x00,0x83,0x8c, +0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x08,0x00,0x83,0xac, +0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x30,0xb0,0xff,0x40,0x10, +0x00,0x00,0x00,0x00,0x78,0x1b,0x65,0x26,0xc8,0x02,0xa4,0x8c,0xff,0x0f,0x02,0x3c, +0xff,0xff,0x42,0x34,0x02,0x1f,0x04,0x00,0x01,0x00,0x63,0x24,0x24,0x20,0x82,0x00, +0x00,0x1f,0x03,0x00,0x25,0x20,0x83,0x00,0x76,0x52,0x00,0x0c,0xc8,0x02,0xa4,0xac, +0x90,0x43,0xa3,0x96,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,0x7f,0x00,0x63,0x30, +0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x9a,0x49,0x00,0x08, +0x00,0x00,0x00,0x00,0x78,0x1b,0x62,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00, +0x78,0x1b,0x62,0xae,0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30, +0xba,0xfe,0x40,0x10,0x00,0x00,0x00,0x00,0x78,0x1b,0x65,0x26,0xc8,0x02,0xa4,0x8c, +0xff,0xf0,0x02,0x3c,0xff,0xff,0x42,0x34,0x02,0x1e,0x04,0x00,0x0f,0x00,0x63,0x30, +0x01,0x00,0x63,0x24,0x0f,0x00,0x63,0x30,0x24,0x20,0x82,0x00,0x00,0x1e,0x03,0x00, +0x25,0x20,0x83,0x00,0xe5,0x50,0x00,0x0c,0xc8,0x02,0xa4,0xac,0x5d,0x52,0x00,0x0c, +0x00,0x00,0x00,0x00,0xa0,0x43,0xe2,0x8e,0x01,0x00,0x03,0x24,0x0f,0x00,0x42,0x30, +0x86,0x05,0x43,0x10,0x02,0x80,0x04,0x3c,0xa0,0x43,0x82,0x8c,0x02,0x00,0x03,0x24, +0x0f,0x00,0x42,0x30,0x83,0x05,0x43,0x10,0x00,0x00,0x00,0x00,0xa0,0x43,0x82,0x8c, +0x03,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x02,0x00,0x43,0x10,0x03,0x00,0x04,0x24, +0x21,0x20,0x00,0x00,0x15,0x51,0x00,0x0c,0x00,0x00,0x00,0x00,0x29,0xb0,0x02,0x3c, +0x00,0x00,0x40,0xac,0x08,0x00,0x44,0x34,0x0c,0x00,0x45,0x34,0x10,0x00,0x46,0x34, +0x3c,0x00,0x51,0x34,0x04,0x00,0x43,0x34,0x14,0x00,0x47,0x34,0x18,0x00,0x48,0x34, +0x1c,0x00,0x49,0x34,0x20,0x00,0x4a,0x34,0x24,0x00,0x4b,0x34,0x28,0x00,0x4c,0x34, +0x2c,0x00,0x4d,0x34,0x30,0x00,0x4e,0x34,0x34,0x00,0x4f,0x34,0x38,0x00,0x50,0x34, +0x02,0x80,0x02,0x3c,0x00,0x00,0x60,0xac,0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac, +0xff,0xff,0x04,0x24,0x00,0x00,0xc0,0xac,0x21,0x28,0x00,0x00,0x00,0x00,0xe0,0xac, +0x78,0x1b,0x46,0x24,0x00,0x00,0x00,0xad,0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad, +0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad, +0x00,0x00,0xe0,0xad,0x00,0x00,0x00,0xae,0x00,0x00,0x20,0xae,0x21,0x18,0xa6,0x00, +0x01,0x00,0xa5,0x24,0x08,0x00,0xa2,0x28,0xfc,0xff,0x40,0x14,0xf0,0x04,0x64,0xa0, +0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24,0x1f,0x00,0x05,0x24,0x90,0x11,0x62,0x8c, +0xff,0xff,0xa5,0x24,0xf0,0x00,0x42,0x34,0x90,0x11,0x62,0xac,0xfb,0xff,0xa1,0x04, +0x94,0x00,0x63,0x24,0x90,0x43,0xa3,0x96,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34, +0xf7,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0xc5,0x48,0x00,0x08,0x00,0x00,0x00,0x00,0x78,0x1b,0x62,0x8e,0xb5,0x48,0x00,0x08, +0x24,0x10,0x43,0x00,0x78,0x1b,0x64,0x8e,0xe8,0x02,0xc5,0x8c,0xfe,0xff,0x02,0x24, +0x00,0x90,0x03,0x3c,0x24,0x20,0x82,0x00,0x24,0x18,0xa3,0x00,0x00,0x10,0x02,0x3c, +0x35,0xfe,0x62,0x14,0x78,0x1b,0x64,0xae,0x50,0x0c,0x03,0x35,0xff,0xbf,0x02,0x3c, +0x00,0x00,0x64,0x90,0xff,0xff,0x42,0x34,0x24,0x10,0xa2,0x00,0x00,0x80,0x03,0x3c, +0x25,0x10,0x43,0x00,0xe8,0x02,0xc2,0xac,0xac,0x48,0x00,0x08,0xdb,0x02,0xc4,0xa0, +0x07,0xfe,0x40,0x14,0xc4,0x02,0x23,0x36,0xff,0xff,0x02,0x24,0x21,0xa0,0x00,0x00, +0x00,0x00,0xc0,0xac,0x00,0x00,0x62,0xac,0x8a,0x48,0x00,0x08,0x00,0x00,0x00,0x00, +0xff,0xff,0x03,0x24,0x78,0x1b,0x42,0x24,0xea,0x02,0x43,0xa0,0x90,0x43,0xa2,0x96, +0x01,0x00,0x03,0x24,0x00,0x02,0x42,0x30,0x1b,0xff,0x43,0x14,0x00,0x00,0x00,0x00, +0x78,0x1b,0x62,0x8e,0x25,0xb0,0x03,0x3c,0x77,0x00,0x04,0x24,0x02,0x00,0x42,0x34, +0x99,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x78,0x1b,0x62,0xae,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0xb1,0x49,0x00,0x08,0x25,0xb0,0x04,0x3c,0xa5,0x00,0x82,0x34, +0xf1,0x02,0xa2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x45,0x00,0x77,0x00,0x40,0x14, +0x00,0xfe,0x06,0x3c,0x28,0x00,0x82,0x34,0x0b,0x03,0xa2,0x10,0x0f,0x00,0x10,0x3c, +0x2b,0x10,0x45,0x00,0xb4,0x00,0x40,0x14,0xa1,0x00,0x82,0x34,0x18,0x00,0x82,0x34, +0x1c,0x03,0xa2,0x10,0x2b,0x10,0x45,0x00,0x41,0x01,0x40,0x14,0x23,0x00,0x82,0x34, +0x16,0x00,0x82,0x34,0xf2,0x03,0xa2,0x10,0x02,0x14,0x12,0x00,0x17,0x00,0x82,0x34, +0xcf,0xfd,0xa2,0x14,0x25,0xb0,0x04,0x3c,0x68,0x03,0x85,0x34,0x00,0x00,0xa3,0x8c, +0x00,0xff,0x42,0x32,0x00,0x12,0x02,0x00,0xff,0xff,0x74,0x30,0x25,0x10,0x54,0x00, +0x00,0x00,0xa2,0xac,0x64,0x03,0x84,0x34,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00, +0xff,0x00,0x54,0x30,0x40,0x00,0x83,0x36,0x00,0x00,0x83,0xa0,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x25,0xb0,0x04,0x3c,0x94,0x0e,0x82,0x34,0x9c,0x0e,0x83,0x34, +0xa4,0x0e,0x85,0x34,0xac,0x0e,0x86,0x34,0x00,0x00,0x49,0x8c,0x00,0x00,0x6c,0x8c, +0xb4,0x0e,0x82,0x34,0x00,0x00,0xae,0x8c,0x10,0x00,0xe3,0x8d,0x00,0x00,0xc8,0x8c, +0x0c,0x00,0xe5,0x8d,0x00,0x00,0x4a,0x8c,0xff,0x3f,0x02,0x3c,0xff,0x03,0x06,0x3c, +0xff,0xff,0x42,0x34,0x00,0xfc,0x07,0x24,0x24,0x18,0x62,0x00,0x24,0x48,0x26,0x01, +0xbc,0x0e,0x82,0x34,0x24,0x40,0x06,0x01,0x00,0x00,0x4b,0x8c,0x24,0x18,0x67,0x00, +0x24,0x28,0xa7,0x00,0x02,0x44,0x08,0x00,0xcc,0x0e,0x8d,0x34,0x02,0x4c,0x09,0x00, +0xc4,0x0e,0x84,0x34,0xf0,0xff,0x02,0x3c,0x00,0x00,0x87,0x8c,0xff,0x03,0x42,0x34, +0x00,0x00,0xa4,0x8d,0x25,0x18,0x68,0x00,0x25,0x28,0xa9,0x00,0x24,0x60,0x86,0x01, +0x24,0x50,0x46,0x01,0xa0,0x43,0x08,0x8e,0x24,0x18,0x62,0x00,0x24,0x28,0xa2,0x00, +0x82,0x61,0x0c,0x00,0x82,0x51,0x0a,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34, +0x25,0x28,0xac,0x00,0x25,0x18,0x6a,0x00,0x24,0x70,0xc6,0x01,0x24,0x58,0x66,0x01, +0x24,0x18,0x62,0x00,0x24,0x28,0xa2,0x00,0x24,0x20,0x86,0x00,0x00,0x71,0x0e,0x00, +0x00,0x59,0x0b,0x00,0x24,0x38,0xe6,0x00,0xff,0xff,0x02,0x3c,0x25,0x28,0xae,0x00, +0x25,0x18,0x6b,0x00,0x02,0x3c,0x07,0x00,0x02,0x24,0x04,0x00,0x24,0x40,0x02,0x01, +0x0c,0x00,0xe5,0xad,0x10,0x00,0xe3,0xad,0x14,0x00,0xe7,0xa5,0x56,0x00,0x00,0x11, +0x16,0x00,0xe4,0xa5,0xa0,0x43,0x03,0x8e,0xa0,0x43,0x02,0x8e,0x02,0x1c,0x03,0x00, +0x24,0x10,0x51,0x00,0x02,0x16,0x02,0x00,0xc7,0x02,0xe2,0xa1,0xc3,0x02,0xe3,0xa1, +0x6c,0x56,0x00,0x0c,0x10,0x00,0xa4,0x27,0x90,0x43,0xa3,0x96,0x25,0xb0,0x02,0x3c, +0x64,0x03,0x42,0x34,0xbf,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x8b,0x49,0x00,0x08,0x78,0x1b,0x62,0x26,0x10,0x00,0xc2,0x34, +0x7a,0x02,0xa2,0x10,0x2b,0x10,0x45,0x00,0x9a,0x00,0x40,0x14,0x19,0x00,0xc2,0x34, +0xaa,0x00,0x82,0x34,0x12,0x03,0xa2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x45,0x00, +0x2d,0x01,0x40,0x14,0xae,0x00,0x82,0x34,0xa6,0x00,0x82,0x34,0xdf,0x03,0xa2,0x10, +0x00,0x00,0x00,0x00,0xa7,0x00,0x82,0x34,0x5a,0xfd,0xa2,0x14,0x25,0xb0,0x02,0x3c, +0x00,0xff,0x42,0x32,0x02,0xa2,0x02,0x00,0x02,0x1c,0x12,0x00,0x01,0x00,0x02,0x24, +0x50,0x04,0x82,0x12,0xff,0x00,0x68,0x30,0x02,0x00,0x02,0x24,0x41,0x04,0x82,0x12, +0xc0,0x10,0x08,0x00,0x03,0x00,0x02,0x24,0x4d,0xfd,0x82,0x16,0xc0,0x10,0x08,0x00, +0x21,0x10,0x48,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,0x21,0x10,0x48,0x00, +0x08,0x2d,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c, +0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x02,0x00,0x82,0x34,0x65,0x02,0xa2,0x10,0x2b,0x10,0x45,0x00, +0x8b,0x00,0x40,0x14,0x10,0x00,0xc2,0x34,0x00,0xf8,0x03,0x3c,0x17,0x00,0x62,0x34, +0x4b,0x03,0xa2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x45,0x00,0x0e,0x01,0x40,0x14, +0x15,0x00,0x62,0x34,0x3c,0x04,0xa2,0x10,0x00,0x00,0x00,0x00,0x16,0x00,0x62,0x34, +0x2f,0xfd,0xa2,0x14,0x00,0x00,0x00,0x00,0x58,0x13,0x00,0x0c,0x00,0x00,0x00,0x00, +0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x12,0x00,0x02,0x24,0xc7,0x02,0xe2,0xa1, +0x0e,0x4b,0x00,0x08,0xc3,0x02,0xe2,0xa1,0xd0,0x02,0xa2,0x10,0x00,0x00,0x00,0x00, +0x2b,0x10,0x45,0x00,0x7f,0x00,0x40,0x14,0xa3,0x00,0x82,0x34,0x29,0x00,0x82,0x34, +0xa6,0x03,0xa2,0x10,0xa0,0x00,0x82,0x34,0x1e,0xfd,0xa2,0x14,0x25,0xb0,0x02,0x3c, +0x00,0x0f,0x42,0x32,0x02,0x22,0x02,0x00,0x01,0x00,0x03,0x24,0x3b,0x04,0x83,0x10, +0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x24,0x45,0x04,0x82,0x10,0x00,0x00,0x00,0x00, +0x03,0x00,0x02,0x24,0xff,0x03,0x82,0x10,0x00,0x00,0x00,0x00,0x15,0x51,0x00,0x0c, +0x21,0x20,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xf1,0x04,0x3c, +0x02,0x00,0x82,0x34,0x0a,0xfd,0xa2,0x10,0x2b,0x10,0x45,0x00,0x1c,0x01,0x40,0x14, +0x04,0x00,0x82,0x34,0x44,0x03,0xa4,0x10,0x26,0xb0,0x06,0x3c,0x01,0x00,0x82,0x34, +0x04,0xfd,0xa2,0x14,0x25,0xb0,0x02,0x3c,0x00,0xff,0x42,0x32,0x02,0xf2,0x02,0x00, +0xba,0x03,0xc0,0x13,0x25,0xb0,0x05,0x3c,0x94,0x00,0xa2,0x34,0x00,0x00,0x43,0x94, +0xb0,0x03,0xa6,0x34,0xff,0xff,0xca,0x27,0xff,0xff,0x74,0x30,0x1b,0x00,0x9e,0x02, +0x02,0x00,0xc0,0x17,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x00,0x00,0xd4,0xac, +0x78,0x1b,0x68,0x26,0x01,0x00,0x02,0x24,0xef,0x0a,0x02,0xa1,0x80,0xff,0x02,0x24, +0x4f,0x00,0xab,0x34,0x9e,0x00,0xac,0x34,0xf2,0x0a,0x09,0x95,0x44,0x00,0xa7,0x34, +0xd8,0x00,0xa5,0x34,0x12,0xa0,0x00,0x00,0x80,0x22,0x14,0x00,0x00,0xf8,0x84,0x24, +0x18,0x00,0xd4,0x03,0xff,0xff,0x5e,0x31,0x00,0x19,0x1e,0x00,0x25,0x18,0x62,0x00, +0x26,0xb0,0x02,0x3c,0x00,0x00,0xde,0xac,0x7c,0x00,0x42,0x34,0x00,0x00,0x63,0xa1, +0x00,0x00,0xd4,0xac,0x00,0x00,0x94,0xa5,0x42,0xa1,0x04,0x00,0x00,0x00,0xd4,0xac, +0x00,0x00,0x54,0xa4,0x00,0x00,0xe3,0x94,0xff,0xfd,0x02,0x24,0x24,0x18,0x62,0x00, +0x00,0x00,0xe3,0xa4,0x00,0x00,0xe4,0x94,0x12,0x68,0x00,0x00,0x23,0x48,0x2d,0x01, +0x00,0x02,0x84,0x34,0xf4,0x0a,0x09,0xa5,0x00,0x00,0xe4,0xa4,0x00,0x00,0xa2,0x90, +0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x34,0x00,0x00,0xa2,0xa0,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x35,0x02,0xa2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x45,0x00, +0xac,0x00,0x40,0x14,0x12,0x00,0xc2,0x34,0xac,0x02,0xa2,0x10,0x00,0x00,0x00,0x00, +0x2b,0x10,0xa2,0x00,0x2d,0x03,0x40,0x14,0x00,0x00,0x00,0x00,0x18,0x00,0xc2,0x34, +0xbf,0xfc,0xa2,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x78,0x1b,0x62,0x26,0x83,0x0b,0x44,0x90, +0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x26,0x02,0xa2,0x10,0x2b,0x10,0x45,0x00,0xd7,0x00,0x40,0x14,0x12,0x00,0xc2,0x34, +0x03,0x00,0x82,0x34,0x23,0x03,0xa2,0x10,0x07,0x00,0xc2,0x34,0xa8,0xfc,0xa2,0x14, +0x00,0x00,0x00,0x00,0x34,0x59,0x00,0x0c,0x21,0x20,0x40,0x02,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x5f,0x01,0xa2,0x10,0x2b,0x10,0x45,0x00,0x01,0x01,0x40,0x14, +0x78,0x1b,0x63,0x26,0x25,0xb0,0x02,0x3c,0xff,0x00,0x03,0x3c,0xc4,0x02,0x42,0x34, +0x00,0xff,0x63,0x34,0x24,0x18,0x43,0x02,0x00,0x00,0x45,0x8c,0x02,0xf2,0x03,0x00, +0x21,0x52,0x00,0x0c,0x21,0x20,0xc0,0x03,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x9e,0x02,0xa2,0x10,0x2b,0x10,0x45,0x00,0xfb,0x00,0x40,0x14,0x24,0x00,0x82,0x34, +0x19,0x00,0x82,0x34,0x8f,0xfc,0xa2,0x14,0x25,0xb0,0x02,0x3c,0x25,0xb0,0x03,0x3c, +0xc0,0x02,0x62,0x34,0x00,0x00,0x40,0xac,0x94,0x0e,0x64,0x34,0x9c,0x0e,0x62,0x34, +0xa4,0x0e,0x65,0x34,0xac,0x0e,0x66,0x34,0x00,0x00,0x89,0x8c,0x78,0x1b,0x6f,0x26, +0x00,0x00,0x4b,0x8c,0x00,0x00,0xac,0x8c,0x00,0x00,0xc4,0x8c,0xb4,0x0e,0x62,0x34, +0x0c,0x00,0xe5,0x8d,0x10,0x00,0xe6,0x8d,0x00,0x00,0x4a,0x8c,0xff,0x03,0x07,0x3c, +0x00,0xfc,0x08,0x24,0xbc,0x0e,0x62,0x34,0x24,0x48,0x27,0x01,0x24,0x20,0x87,0x00, +0x00,0x00,0x4d,0x8c,0x24,0x30,0xc8,0x00,0x02,0x4c,0x09,0x00,0x24,0x28,0xa8,0x00, +0x02,0x24,0x04,0x00,0xcc,0x0e,0x68,0x34,0xf0,0xff,0x02,0x3c,0xc4,0x0e,0x63,0x34, +0xff,0x03,0x42,0x34,0x25,0x28,0xa9,0x00,0x25,0x30,0xc4,0x00,0x00,0x00,0x69,0x8c, +0x08,0x00,0xe4,0x8d,0x00,0x00,0x0e,0x8d,0x24,0x58,0x67,0x01,0x24,0x50,0x47,0x01, +0x24,0x30,0xc2,0x00,0x24,0x28,0xa2,0x00,0x82,0x59,0x0b,0x00,0x82,0x51,0x0a,0x00, +0x0f,0xc0,0x03,0x3c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x63,0x34,0xff,0xff,0x42,0x34, +0x25,0x28,0xab,0x00,0x25,0x30,0xca,0x00,0x24,0x60,0x87,0x01,0x24,0x68,0xa7,0x01, +0xff,0x00,0x08,0x3c,0x24,0x20,0x82,0x00,0x24,0x30,0xc3,0x00,0x24,0x28,0xa3,0x00, +0x24,0x70,0xc7,0x01,0x00,0x61,0x0c,0x00,0x00,0x69,0x0d,0x00,0x24,0x48,0x27,0x01, +0x00,0xff,0x03,0x35,0x00,0x20,0x02,0x3c,0x25,0x20,0x82,0x00,0x25,0x28,0xac,0x00, +0x25,0x30,0xcd,0x00,0x02,0x4c,0x09,0x00,0x02,0x74,0x0e,0x00,0x24,0x18,0x43,0x02, +0x08,0x00,0xe4,0xad,0x0c,0x00,0xe5,0xad,0x10,0x00,0xe6,0xad,0x14,0x00,0xe9,0xa5, +0x55,0x03,0x60,0x10,0x16,0x00,0xee,0xa5,0x24,0x10,0x48,0x02,0x02,0x14,0x02,0x00, +0x02,0x1a,0x12,0x00,0xc7,0x02,0xe2,0xa1,0xc3,0x02,0xe3,0xa1,0x78,0x1b,0x62,0x26, +0xc3,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,0x61,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x6c,0x56,0x00,0x0c,0x10,0x00,0xa4,0x27, +0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x92,0x02,0xa2,0x10,0x00,0x00,0x00,0x00, +0x2b,0x10,0x45,0x00,0x82,0x00,0x40,0x14,0xaf,0x00,0x82,0x34,0xab,0x00,0x82,0x34, +0x2b,0xfc,0xa2,0x14,0x00,0x00,0x00,0x00,0x54,0x5a,0x00,0x0c,0x21,0x20,0x40,0x02, +0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x3d,0x02,0xa4,0x10,0x2b,0x10,0x85,0x00, +0x87,0x00,0x40,0x14,0x78,0x1b,0x62,0x26,0x18,0x00,0x62,0x34,0x20,0xfc,0xa2,0x14, +0x00,0x00,0x00,0x00,0xb1,0x13,0x00,0x0c,0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x00,0xff,0x03,0x3c,0x0f,0x00,0x62,0x34,0x0d,0x02,0xa2,0x10, +0x2b,0x10,0x45,0x00,0x70,0x00,0x40,0x14,0x10,0x00,0x62,0x34,0x1a,0x00,0xc2,0x34, +0x14,0xfc,0xa2,0x14,0x25,0xb0,0x02,0x3c,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34, +0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,0x01,0x00,0x03,0x24,0x28,0x03,0xc3,0x13, +0x78,0x1b,0x62,0x26,0x02,0x00,0xc2,0x2b,0x1f,0x03,0x40,0x14,0x03,0x00,0x02,0x24, +0x19,0x03,0xc2,0x13,0x00,0x00,0x00,0x00,0x78,0x1b,0x62,0x26,0x7c,0x0b,0x44,0x94, +0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0xcd,0x01,0xa2,0x10,0x2b,0x10,0xa2,0x00,0x7b,0x00,0x40,0x14, +0x02,0x14,0x12,0x00,0x08,0x00,0x82,0x34,0xfa,0xfb,0xa2,0x14,0x25,0xb0,0x02,0x3c, +0x00,0xff,0x42,0x32,0x02,0x92,0x02,0x00,0x05,0x00,0x40,0x12,0x21,0x20,0x00,0x00, +0x01,0x00,0x02,0x24,0x02,0x00,0x42,0x12,0x01,0x00,0x04,0x24,0x21,0x20,0x00,0x00, +0x95,0x42,0x00,0x0c,0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c, +0xe8,0x01,0xa2,0x10,0x2b,0x10,0xa2,0x00,0x68,0x02,0x40,0x14,0x00,0x00,0x00,0x00, +0xe8,0xfb,0xa8,0x14,0x25,0xb0,0x02,0x3c,0x25,0xb0,0x05,0x3c,0xc4,0x02,0xa3,0x34, +0x00,0x00,0x64,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x90,0x82,0x00, +0x01,0x00,0x03,0x3c,0x2b,0x18,0x72,0x00,0xdd,0xfb,0x60,0x10,0x00,0xb0,0x02,0x3c, +0x25,0x90,0x42,0x02,0x00,0x00,0x54,0x8e,0xc8,0x02,0xa2,0x34,0x00,0x00,0x54,0xac, +0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x75,0x02,0xa2,0x10,0x2b,0x10,0x45,0x00, +0x66,0x00,0x40,0x14,0x02,0x1c,0x12,0x00,0x1f,0x00,0x68,0x30,0xc0,0x10,0x08,0x00, +0x21,0x10,0x48,0x00,0x80,0x10,0x02,0x00,0x25,0xb0,0x04,0x3c,0x21,0x10,0x48,0x00, +0x02,0x80,0x03,0x3c,0xc8,0x02,0x85,0x34,0x78,0x1b,0x63,0x24,0xc4,0x02,0x84,0x34, +0x80,0x10,0x02,0x00,0x00,0x00,0x94,0x8c,0x21,0x48,0x43,0x00,0x00,0x00,0xa7,0x8c, +0x21,0x58,0x80,0x00,0x21,0x28,0x00,0x00,0xff,0x00,0x0a,0x24,0x29,0xb0,0x06,0x3c, +0x21,0x20,0xa3,0x00,0xf0,0x04,0x82,0x90,0x00,0x00,0x00,0x00,0x6a,0x02,0x4a,0x10, +0x00,0x00,0x00,0x00,0x68,0x02,0x48,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xa5,0x24, +0x08,0x00,0xa2,0x28,0xf6,0xff,0x40,0x14,0x08,0x00,0xc6,0x24,0x08,0x00,0x02,0x24, +0xb3,0xfb,0xa2,0x14,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xff,0xff,0x03,0x24, +0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c, +0xab,0xfb,0xa2,0x14,0x00,0x00,0x00,0x00,0xe5,0x50,0x00,0x0c,0x00,0x00,0x00,0x00, +0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0xa6,0xfb,0xa2,0x14,0x25,0xb0,0x02,0x3c, +0x00,0xff,0x43,0x32,0x00,0xff,0x02,0x34,0x5f,0x00,0x62,0x14,0x78,0x1b,0x62,0x26, +0x78,0x1b,0x63,0x26,0xff,0xff,0x02,0x34,0x86,0x48,0x00,0x08,0xec,0x25,0x62,0xac, +0x04,0x24,0x43,0x8c,0xfd,0xff,0x04,0x24,0x24,0x18,0x64,0x00,0x01,0x00,0x63,0x34, +0x86,0x48,0x00,0x08,0x04,0x24,0x43,0xac,0x96,0xfb,0xa2,0x14,0x25,0xb0,0x02,0x3c, +0x78,0x1b,0x65,0x26,0xd8,0x02,0xa3,0x8c,0x0f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x12,0x01,0x04,0x3c,0x25,0xb0,0x02,0x3c,0x0c,0x09,0x42,0x34, +0x13,0x13,0x84,0x34,0xd8,0x02,0xa3,0xac,0x00,0x00,0x44,0xac,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0x43,0x32, +0xff,0x00,0x5e,0x30,0x04,0x00,0xc0,0x13,0x02,0x92,0x03,0x00,0x01,0x00,0x02,0x24, +0x02,0x00,0xc2,0x13,0x01,0x00,0x04,0x24,0x21,0x20,0x00,0x00,0x95,0x42,0x00,0x0c, +0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,0xe3,0x44,0x00,0x0c,0x21,0x20,0x40,0x02, +0xff,0xff,0x10,0x36,0x24,0xa0,0x50,0x00,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x00,0x00,0x54,0xac,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x1f,0x00,0x68,0x30, +0xc0,0x10,0x08,0x00,0x21,0x10,0x48,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x48,0x00, +0x80,0x10,0x02,0x00,0x78,0x1b,0x64,0x26,0x21,0x30,0x44,0x00,0x90,0x11,0xc3,0x90, +0x0f,0x00,0x02,0x24,0x02,0x29,0x03,0x00,0xaf,0xff,0xa2,0x10,0x21,0x18,0xa4,0x00, +0xf0,0x04,0x62,0x90,0x00,0x00,0x00,0x00,0xab,0xff,0x48,0x14,0xc0,0x20,0x05,0x00, +0xff,0xff,0x02,0x24,0xf0,0x04,0x62,0xa0,0x90,0x11,0xc3,0x8c,0x29,0xb0,0x02,0x3c, +0x21,0x20,0x82,0x00,0x25,0xb0,0x02,0x3c,0xf0,0x00,0x63,0x34,0xc4,0x02,0x42,0x34, +0x90,0x11,0xc3,0xac,0x00,0x00,0x80,0xac,0x04,0x00,0x80,0xac,0x00,0x00,0x45,0xac, +0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0x42,0x34,0x24,0x10,0x42,0x02, +0x25,0xb0,0x03,0x3c,0x02,0x92,0x02,0x00,0x21,0x10,0x43,0x02,0x00,0x00,0x54,0x8c, +0xc4,0x02,0x63,0x34,0x00,0x00,0x74,0xac,0x00,0x00,0x54,0x8c,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x78,0x1b,0x62,0x26,0x86,0x48,0x00,0x08,0xec,0x25,0x40,0xac, +0xdb,0x02,0xe3,0x90,0x50,0x0c,0x02,0x35,0x21,0x28,0x00,0x00,0x00,0x00,0x43,0xa0, +0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30,0x06,0x00,0xa3,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0xa2,0x24,0x78,0x1b,0x62,0x26,0xdb,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x58,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x78,0x1b,0x65,0x26,0xe8,0x02,0xa3,0x8c,0x00,0x40,0x04,0x3c,0xff,0x7f,0x02,0x3c, +0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0xac,0x48,0x00,0x08, +0xe8,0x02,0xa3,0xac,0x00,0xff,0x62,0x34,0x24,0x10,0x42,0x02,0x21,0xfb,0x40,0x10, +0x25,0xb0,0x02,0x3c,0x08,0x03,0xe5,0x90,0x24,0x18,0x43,0x02,0x00,0xff,0x44,0x32, +0x02,0x1c,0x03,0x00,0x02,0x22,0x04,0x00,0x00,0x01,0xa5,0x34,0xfb,0xff,0x66,0x24, +0xfb,0xff,0x82,0x24,0x23,0x03,0xe2,0xa0,0x08,0x03,0xe5,0xac,0x21,0x03,0xe6,0xa0, +0x20,0x03,0xe3,0xa0,0x86,0x48,0x00,0x08,0x22,0x03,0xe4,0xa0,0x07,0x49,0x00,0x08, +0x01,0x00,0x04,0x24,0xdd,0x48,0x00,0x08,0x01,0x00,0x04,0x24,0x07,0x49,0x00,0x08, +0x02,0x00,0x04,0x24,0xdd,0x48,0x00,0x08,0x02,0x00,0x04,0x24,0xc4,0x02,0x23,0x36, +0x00,0x00,0x64,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x90,0x82,0x00, +0x01,0x00,0x03,0x3c,0x2b,0x18,0x72,0x00,0x01,0xfb,0x60,0x10,0xc8,0x02,0x22,0x36, +0x00,0x00,0x54,0x8c,0x00,0xb0,0x03,0x3c,0x25,0x90,0x43,0x02,0x00,0x00,0x54,0xae, +0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x6c,0x56,0x00,0x0c,0x10,0x00,0xa4,0x27, +0x8b,0x49,0x00,0x08,0x78,0x1b,0x62,0x26,0x76,0x52,0x00,0x0c,0x10,0x00,0xeb,0xad, +0x73,0x49,0x00,0x08,0x78,0x1b,0x63,0x26,0x24,0x20,0x43,0x02,0x5b,0x52,0x00,0x0c, +0x02,0x24,0x04,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x82,0x0b,0xe2,0x90, +0x00,0x00,0x00,0x00,0x31,0xfe,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0xff,0x62,0x34, +0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,0x01,0x00,0x02,0x24,0x21,0x20,0xc0,0x03, +0x82,0x0b,0xe2,0xa0,0x2c,0x22,0x00,0x0c,0x83,0x0b,0xfe,0xa0,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x04,0x24,0xe2,0x8c,0xfe,0xff,0x03,0x24,0x02,0x00,0x42,0x34,0x24,0x10,0x43,0x00, +0x86,0x48,0x00,0x08,0x04,0x24,0xe2,0xac,0xff,0xff,0x05,0x36,0x60,0x00,0x06,0x24, +0xb8,0x44,0x00,0x0c,0x24,0x00,0x04,0x24,0x9c,0x12,0x00,0x0c,0xe8,0x03,0x04,0x24, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x24,0x00,0x04,0x24,0xe3,0x44,0x00,0x0c,0xff,0xff,0x05,0x36,0x1f,0x00,0x54,0x30, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcb,0x12,0x00,0x0c, +0x64,0x00,0x04,0x24,0xc4,0x02,0x22,0x36,0x00,0x00,0x54,0xa0,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x08,0x00,0xe3,0x8c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x86,0x48,0x00,0x08,0x08,0x00,0xe3,0xac,0xc8,0x02,0xe4,0x8c, +0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0x02,0x1f,0x04,0x00,0x01,0x00,0x63,0x24, +0x24,0x20,0x82,0x00,0x00,0x1f,0x03,0x00,0x25,0x20,0x83,0x00,0xc8,0x02,0xe4,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x76,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0x62,0x34, +0xc4,0x02,0x24,0x36,0x00,0x00,0x94,0x8c,0x24,0x10,0x42,0x02,0x02,0x92,0x02,0x00, +0x21,0x18,0x51,0x02,0x00,0x00,0x74,0xac,0x00,0x00,0x74,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x94,0xac,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x82,0x0b,0xe3,0x90, +0xc4,0x02,0x22,0x36,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x29,0xb0,0x02,0x3c, +0x00,0x00,0x40,0xac,0x04,0x00,0x44,0x34,0x08,0x00,0x45,0x34,0x0c,0x00,0x46,0x34, +0x3c,0x00,0x43,0x34,0x10,0x00,0x47,0x34,0x14,0x00,0x48,0x34,0x18,0x00,0x49,0x34, +0x1c,0x00,0x4a,0x34,0x20,0x00,0x4b,0x34,0x24,0x00,0x4c,0x34,0x28,0x00,0x4d,0x34, +0x2c,0x00,0x4e,0x34,0x30,0x00,0x4f,0x34,0x34,0x00,0x50,0x34,0x38,0x00,0x51,0x34, +0x02,0x80,0x02,0x3c,0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac,0xff,0xff,0x04,0x24, +0x00,0x00,0xc0,0xac,0x21,0x28,0x00,0x00,0x00,0x00,0xe0,0xac,0x78,0x1b,0x46,0x24, +0x00,0x00,0x00,0xad,0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad,0x00,0x00,0x60,0xad, +0x00,0x00,0x80,0xad,0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad,0x00,0x00,0xe0,0xad, +0x00,0x00,0x00,0xae,0x00,0x00,0x20,0xae,0x00,0x00,0x60,0xac,0x21,0x18,0xa6,0x00, +0x01,0x00,0xa5,0x24,0x08,0x00,0xa2,0x28,0xfc,0xff,0x40,0x14,0xf0,0x04,0x64,0xa0, +0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24,0x1f,0x00,0x05,0x24,0x90,0x11,0x62,0x8c, +0xff,0xff,0xa5,0x24,0xf0,0x00,0x42,0x34,0x90,0x11,0x62,0xac,0xfb,0xff,0xa1,0x04, +0x94,0x00,0x63,0x24,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x24,0x20,0x43,0x02, +0xc6,0x15,0x00,0x0c,0x02,0x24,0x04,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x6e,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x02,0x1a,0x08,0x00,0xff,0x00,0x02,0x24,0x2b,0x01,0x62,0x10,0x25,0xb0,0x05,0x3c, +0x0e,0x00,0x60,0x14,0x00,0xcc,0x02,0x34,0x25,0xb0,0x04,0x3c,0x64,0x03,0x84,0x34, +0x78,0x1b,0x67,0x26,0x00,0x00,0x85,0x94,0xe8,0x02,0xe6,0x8c,0xff,0xef,0x02,0x3c, +0xff,0xfe,0x03,0x24,0xff,0xff,0x42,0x34,0x24,0x28,0xa3,0x00,0x24,0x30,0xc2,0x00, +0x00,0x00,0x85,0xa4,0xe8,0x02,0xe6,0xac,0x00,0xcc,0x02,0x34,0x39,0xfa,0x02,0x15, +0x25,0xb0,0x02,0x3c,0x78,0x1b,0x62,0x26,0xe8,0x02,0x43,0x8c,0x00,0x10,0x04,0x3c, +0x25,0x18,0x64,0x00,0x86,0x48,0x00,0x08,0xe8,0x02,0x43,0xac,0x24,0x10,0x43,0x02, +0x02,0xf4,0x02,0x00,0x00,0xff,0x43,0x32,0x04,0x00,0xc0,0x13,0x02,0x92,0x03,0x00, +0x01,0x00,0x02,0x24,0x02,0x00,0xc2,0x13,0x01,0x00,0x04,0x24,0x21,0x20,0x00,0x00, +0x25,0xb0,0x10,0x3c,0x95,0x42,0x00,0x0c,0xc4,0x02,0x10,0x36,0x00,0x00,0x14,0x8e, +0x0f,0x00,0x11,0x3c,0x21,0x20,0x40,0x02,0x21,0x30,0x80,0x02,0xb8,0x44,0x00,0x0c, +0xff,0xff,0x25,0x36,0x21,0x20,0x40,0x02,0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36, +0x00,0x00,0x02,0xae,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x00,0xff,0x62,0x34, +0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,0x78,0x1b,0x63,0x26,0x83,0x0b,0x7e,0xa0, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xff,0x00,0x02,0x24,0x56,0x01,0x63,0x34, +0x00,0x00,0x62,0xa4,0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,0x86,0x48,0x00,0x08, +0x80,0x43,0x44,0xa0,0x24,0x10,0x43,0x02,0x02,0xa4,0x02,0x00,0x00,0xff,0x43,0x32, +0x07,0x00,0x82,0x2e,0xfe,0xf9,0x40,0x10,0x02,0xf2,0x03,0x00,0x02,0x80,0x04,0x3c, +0xbc,0xaf,0x83,0x24,0x80,0x10,0x14,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c, +0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x78,0x1b,0x65,0x26, +0xd8,0x02,0xa3,0x8c,0x0f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x10,0x00,0x04,0x3c,0x25,0x18,0x64,0x00,0x86,0x48,0x00,0x08,0xd8,0x02,0xa3,0xac, +0xe4,0x13,0x00,0x0c,0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x78,0x1b,0x65,0x26,0x04,0x24,0xa2,0x8c,0xfd,0xff,0x03,0x24,0xfe,0xff,0x04,0x24, +0x24,0x10,0x43,0x00,0x24,0x10,0x44,0x00,0x86,0x48,0x00,0x08,0x04,0x24,0xa2,0xac, +0x1f,0x00,0x48,0x30,0xc0,0x18,0x08,0x00,0x21,0x18,0x68,0x00,0x00,0x0f,0x45,0x32, +0x80,0x18,0x03,0x00,0x02,0x2a,0x05,0x00,0x78,0x1b,0x64,0x26,0x25,0xb0,0x02,0x3c, +0x21,0x18,0x68,0x00,0x21,0x30,0xa4,0x00,0xc8,0x02,0x47,0x34,0x80,0x18,0x03,0x00, +0xc4,0x02,0x42,0x34,0x00,0x00,0x54,0x8c,0x21,0x18,0x64,0x00,0x00,0x00,0xe7,0x8c, +0xf0,0x04,0xc8,0xa0,0x90,0x11,0x64,0x8c,0x0f,0xff,0x02,0x24,0xc0,0x30,0x05,0x00, +0x24,0x20,0x82,0x00,0x00,0x29,0x05,0x00,0x29,0xb0,0x02,0x3c,0x21,0x30,0xc2,0x00, +0x25,0x20,0x85,0x00,0x90,0x11,0x64,0xac,0x00,0x00,0xd4,0xac,0x04,0x00,0xc7,0xac, +0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0x65,0x34,0x24,0x28,0x45,0x02, +0x25,0xb0,0x04,0x3c,0x02,0x2a,0x05,0x00,0x94,0x00,0x83,0x34,0x40,0x11,0x05,0x00, +0x00,0x00,0x65,0xa4,0xc0,0xff,0x54,0x24,0x7c,0x00,0xcc,0x34,0x04,0x00,0x07,0x24, +0x9a,0x00,0x88,0x34,0x98,0x00,0x89,0x34,0x96,0x00,0x8a,0x34,0x7a,0x00,0xc6,0x34, +0xb0,0x03,0x8b,0x34,0x00,0x04,0x02,0x24,0xa0,0x00,0x03,0x24,0x00,0x00,0x02,0xa5, +0x44,0x00,0x84,0x34,0x00,0x00,0x23,0xa5,0x00,0x00,0x47,0xa5,0x00,0x00,0xc7,0xa0, +0x00,0x00,0x74,0xad,0x00,0x00,0x94,0xa5,0x00,0x00,0x83,0x94,0xff,0xfd,0x02,0x24, +0x78,0x1b,0x66,0x26,0x24,0x18,0x62,0x00,0x00,0x00,0x83,0xa4,0x00,0x00,0x82,0x94, +0xf2,0x0a,0xc5,0xa4,0x00,0x02,0x42,0x34,0x00,0x00,0x82,0xa4,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x24,0x20,0x43,0x02,0x00,0xff,0x45,0x32,0x02,0x24,0x04,0x00, +0x97,0x50,0x00,0x0c,0x02,0x2a,0x05,0x00,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34, +0x00,0x00,0x62,0xa0,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xff,0x00,0x02,0x3c, +0x00,0xff,0x42,0x34,0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,0x78,0x1b,0x63,0x26, +0x21,0x20,0xc0,0x03,0x2c,0x22,0x00,0x0c,0x82,0x0b,0x60,0xa0,0xa9,0x4d,0x00,0x08, +0x00,0x00,0x00,0x00,0x78,0x1b,0x63,0x26,0x04,0x24,0x62,0x8c,0x00,0x00,0x00,0x00, +0x03,0x00,0x42,0x34,0x86,0x48,0x00,0x08,0x04,0x24,0x62,0xac,0x6f,0x0b,0x00,0x0c, +0x21,0x20,0xc0,0x03,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x5d,0x52,0x00,0x0c, +0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x02,0x1c,0x12,0x00, +0x00,0x1f,0x42,0x32,0x78,0x1b,0x70,0x26,0x02,0xa2,0x02,0x00,0x3f,0x00,0x67,0x30, +0xc1,0x02,0x07,0xa2,0xbc,0x02,0x14,0xa2,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x22,0x1b,0x00,0x0c,0x00,0x00,0x00,0x00, +0x21,0xa0,0x40,0x00,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x54,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x03,0x00,0x02,0x92, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0x86,0x48,0x00,0x08,0x03,0x00,0x02,0xa2, +0x24,0x18,0x43,0x02,0x02,0x44,0x03,0x00,0xc0,0x10,0x08,0x00,0x21,0x10,0x48,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x48,0x00,0x00,0xff,0x44,0x32,0x80,0x10,0x02,0x00, +0x78,0x1b,0x63,0x26,0x21,0x10,0x43,0x00,0x02,0xa1,0x04,0x00,0x80,0x11,0x54,0xac, +0x86,0x48,0x00,0x08,0x84,0x11,0x54,0xac,0xf0,0x04,0x88,0xa0,0x90,0x11,0x22,0x8d, +0x0f,0x00,0xa3,0x30,0x0f,0xff,0x04,0x24,0x00,0x19,0x03,0x00,0x24,0x10,0x44,0x00, +0x25,0x10,0x43,0x00,0x90,0x11,0x22,0xad,0x00,0x00,0xd4,0xac,0x04,0x00,0xc7,0xac, +0x00,0x00,0x65,0xad,0xd2,0x4c,0x00,0x08,0x08,0x00,0x02,0x24,0x4f,0x00,0xa2,0x34, +0x9e,0x00,0xa3,0x34,0x00,0x00,0x40,0xa0,0x00,0x00,0x60,0xa4,0x94,0x00,0xa2,0x34, +0x00,0x00,0x43,0x94,0x9a,0x00,0xa4,0x34,0x98,0x00,0xa6,0x34,0xff,0xff,0x74,0x30, +0x80,0x12,0x14,0x00,0x00,0xf8,0x42,0x24,0x42,0xa1,0x02,0x00,0x00,0x14,0x02,0x24, +0x00,0x00,0x82,0xa4,0x26,0xb0,0x02,0x3c,0xb0,0x03,0xa7,0x34,0xa0,0x80,0x03,0x24, +0x7c,0x00,0x42,0x34,0x00,0x00,0xc3,0xa4,0x44,0x00,0xa4,0x34,0x00,0x00,0xf4,0xac, +0x00,0x00,0x54,0xa4,0x00,0x00,0x83,0x94,0xff,0xfd,0x02,0x24,0xd8,0x00,0xa5,0x34, +0x24,0x18,0x62,0x00,0x00,0x00,0x83,0xa4,0x00,0x00,0x82,0x94,0x78,0x1b,0x66,0x26, +0x00,0x02,0x42,0x34,0x00,0x00,0x82,0xa4,0x00,0x00,0xa3,0x90,0xbf,0xff,0x02,0x24, +0xf4,0x0a,0xc0,0xa4,0x24,0x18,0x62,0x00,0xef,0x0a,0xc0,0xa0,0x00,0x00,0xa3,0xa0, +0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x64,0x03,0xa5,0x34,0x78,0x1b,0x66,0x26, +0x00,0x00,0xa3,0x94,0xe8,0x02,0xc4,0x8c,0xff,0xef,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x20,0x82,0x00,0x00,0x01,0x63,0x34,0x00,0x00,0xa3,0xa4,0x4c,0x4e,0x00,0x08, +0xe8,0x02,0xc4,0xac,0x15,0x51,0x00,0x0c,0x03,0x00,0x04,0x24,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x21,0x10,0x48,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x48,0x00, +0x78,0x1b,0x63,0x26,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x8c,0x11,0x44,0x8c, +0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0x87,0x48,0x00,0x08, +0x25,0xb0,0x02,0x3c,0xc0,0x10,0x08,0x00,0x21,0x10,0x48,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x48,0x00,0x78,0x1b,0x63,0x26,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00, +0x88,0x11,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac, +0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x1e,0x13,0x00,0x0c,0x00,0x00,0x00,0x00, +0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x12,0x00,0x02,0x24,0xc7,0x02,0xe2,0xa1, +0x45,0x4c,0x00,0x08,0xc3,0x02,0xe2,0xa1,0x78,0x1b,0x62,0x26,0x7e,0x0b,0x44,0x94, +0x43,0x4b,0x00,0x08,0x25,0xb0,0x03,0x3c,0xe3,0xfc,0xc0,0x17,0x25,0xb0,0x03,0x3c, +0x78,0x1b,0x62,0x26,0x78,0x0b,0x44,0x94,0x44,0x4b,0x00,0x08,0xc4,0x02,0x63,0x34, +0x7a,0x0b,0x44,0x94,0x43,0x4b,0x00,0x08,0x25,0xb0,0x03,0x3c,0x2b,0x4a,0x00,0x08, +0x01,0x00,0x04,0x24,0x2b,0x4a,0x00,0x08,0x02,0x00,0x04,0x24,0x15,0x51,0x00,0x0c, +0x01,0x00,0x04,0x24,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x19,0x1e,0x00, +0x78,0x1b,0x62,0x26,0x21,0x18,0x62,0x00,0x36,0x03,0x64,0x94,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x15,0x51,0x00,0x0c,0x02,0x00,0x04,0x24,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x00,0x19,0x1e,0x00,0x78,0x1b,0x62,0x26,0x21,0x18,0x62,0x00,0x35,0x03,0x64,0x90, +0xb2,0x4f,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x19,0x1e,0x00,0x78,0x1b,0x62,0x26, +0x21,0x18,0x62,0x00,0x34,0x03,0x64,0x90,0xb2,0x4f,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x00,0x19,0x1e,0x00,0x78,0x1b,0x62,0x26,0x21,0x18,0x62,0x00,0x32,0x03,0x64,0x94, +0xb2,0x4f,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x19,0x1e,0x00,0x78,0x1b,0x62,0x26, +0x21,0x18,0x62,0x00,0x30,0x03,0x64,0x94,0xb2,0x4f,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x00,0x11,0x1e,0x00,0x78,0x1b,0x63,0x26,0x21,0x10,0x43,0x00,0x2c,0x03,0x44,0x8c, +0xb1,0x4f,0x00,0x08,0x42,0x26,0x04,0x00,0x00,0x11,0x1e,0x00,0x78,0x1b,0x63,0x26, +0x21,0x10,0x43,0x00,0x2f,0x03,0x44,0x90,0xb1,0x4f,0x00,0x08,0x01,0x00,0x84,0x30, +0x25,0xb0,0x05,0x3c,0x01,0x00,0x06,0x24,0x01,0x80,0x02,0x3c,0x04,0x30,0x86,0x00, +0xf1,0x02,0xa7,0x34,0xed,0x02,0xa4,0x34,0x78,0x3f,0x42,0x24,0x18,0x03,0xa5,0x34, +0x08,0x00,0x03,0x24,0x00,0x00,0xa2,0xac,0x00,0x00,0xe3,0xa0,0x00,0x00,0x80,0xa0, +0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0, +0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0, +0x00,0x00,0xe0,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c, +0x25,0xb0,0x03,0x3c,0xd4,0x3f,0x42,0x24,0x18,0x03,0x63,0x34,0x00,0x00,0x62,0xac, +0x00,0x00,0x83,0x90,0x30,0x00,0x02,0x24,0x05,0x00,0x62,0x10,0x21,0x20,0x00,0x00, +0x31,0x00,0x02,0x24,0x02,0x00,0x62,0x10,0x01,0x00,0x04,0x24,0x07,0x00,0x04,0x24, +0xde,0x4f,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c, +0x10,0x40,0x42,0x24,0x18,0x03,0x63,0x34,0x02,0x80,0x04,0x3c,0x00,0x00,0x62,0xac, +0x08,0x00,0xe0,0x03,0x8c,0x43,0x80,0xac,0x02,0x80,0x03,0x3c,0x98,0x41,0x62,0x8c, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0xc0,0x80,0x04,0x00,0x21,0x80,0x04,0x02,0x80,0x80,0x10,0x00, +0x21,0x80,0x04,0x02,0x02,0x80,0x02,0x3c,0x78,0x1b,0x42,0x24,0x80,0x80,0x10,0x00, +0x21,0x80,0x02,0x02,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf, +0x90,0x11,0x05,0x8e,0xff,0x1f,0x02,0x3c,0x25,0xb0,0x12,0x3c,0xff,0xff,0x42,0x34, +0xf8,0xff,0x03,0x24,0x88,0x11,0x02,0xae,0x84,0x01,0x46,0x36,0x24,0x28,0xa3,0x00, +0xff,0xfe,0x02,0x24,0x00,0x00,0xc7,0x8c,0x24,0x28,0xa2,0x00,0xff,0xef,0x03,0x24, +0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,0x24,0x28,0xa3,0x00,0x24,0x28,0xa2,0x00, +0x8c,0x11,0x07,0xae,0x90,0x11,0x05,0xae,0x96,0x15,0x00,0x0c,0x21,0x88,0x80,0x00, +0x92,0x11,0x02,0x92,0x21,0x88,0x32,0x02,0x1c,0x00,0xbf,0x8f,0x60,0x01,0x22,0xa2, +0x18,0x00,0xb2,0x8f,0x7c,0x11,0x00,0xae,0x60,0x11,0x00,0xae,0x64,0x11,0x00,0xae, +0x68,0x11,0x00,0xae,0x6c,0x11,0x00,0xae,0x70,0x11,0x00,0xae,0x74,0x11,0x00,0xae, +0x78,0x11,0x00,0xae,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0xff,0x00,0xa5,0x30,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24, +0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x90,0x11,0x43,0x8c,0x25,0xb0,0x05,0x3c, +0xff,0x00,0xc6,0x30,0x21,0x30,0xc5,0x00,0xaf,0x01,0xc2,0x90,0x07,0x00,0x63,0x30, +0x80,0x18,0x03,0x00,0x21,0x18,0x65,0x00,0xff,0x00,0x88,0x30,0xff,0x00,0x49,0x30, +0x84,0x01,0x66,0x8c,0x21,0x50,0x00,0x00,0x21,0x58,0x00,0x00,0x2b,0x00,0x20,0x11, +0x21,0x20,0x00,0x01,0x2b,0x00,0xc0,0x10,0x2b,0x10,0x09,0x01,0x21,0x28,0x00,0x00, +0x6c,0x50,0x00,0x08,0x01,0x00,0x07,0x24,0xff,0x00,0x65,0x30,0x1d,0x00,0xa2,0x2c, +0x07,0x00,0x40,0x10,0xff,0xff,0x02,0x25,0x04,0x10,0xa7,0x00,0x24,0x10,0x46,0x00, +0xf9,0xff,0x40,0x10,0x01,0x00,0xa3,0x24,0x21,0x58,0xa0,0x00,0xff,0xff,0x02,0x25, +0xff,0x00,0x45,0x30,0x2b,0x18,0xab,0x00,0x0f,0x00,0x60,0x14,0x2b,0x10,0x49,0x01, +0x01,0x00,0x04,0x24,0x04,0x10,0xa4,0x00,0x24,0x10,0x46,0x00,0xff,0xff,0xa7,0x24, +0x04,0x00,0x40,0x10,0x01,0x00,0x43,0x25,0x17,0x00,0x49,0x11,0xff,0x00,0x6a,0x30, +0x21,0x40,0xa0,0x00,0xff,0x00,0xe5,0x30,0x2b,0x10,0xab,0x00,0xf6,0xff,0x40,0x10, +0x04,0x10,0xa4,0x00,0x2b,0x10,0x49,0x01,0x08,0x00,0x40,0x10,0x21,0x20,0x00,0x01, +0x23,0x10,0x2a,0x01,0x2a,0x10,0x62,0x01,0x04,0x00,0x40,0x14,0x21,0x20,0x00,0x00, +0x23,0x10,0x69,0x01,0x21,0x10,0x4a,0x00,0xff,0x00,0x44,0x30,0x08,0x00,0xe0,0x03, +0x21,0x10,0x80,0x00,0xfd,0xff,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x09,0x01, +0x8d,0x50,0x00,0x08,0xff,0x00,0x44,0x30,0x21,0x20,0x00,0x01,0x08,0x00,0xe0,0x03, +0x21,0x10,0x80,0x00,0xff,0x00,0x84,0x30,0xc0,0x10,0x04,0x00,0x21,0x10,0x44,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24, +0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x25,0xb0,0x06,0x3c,0x90,0x11,0x43,0x8c, +0xff,0x00,0xa5,0x30,0x21,0x20,0x86,0x00,0x21,0x28,0xa6,0x00,0x60,0x01,0x82,0x90, +0xaf,0x01,0xa4,0x90,0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x66,0x00, +0xff,0x00,0x48,0x30,0xff,0x00,0x89,0x30,0x84,0x01,0x66,0x8c,0x21,0x50,0x00,0x00, +0x21,0x58,0x00,0x00,0x2b,0x00,0x20,0x11,0x21,0x20,0x00,0x01,0x2b,0x00,0xc0,0x10, +0x2b,0x10,0x09,0x01,0x21,0x28,0x00,0x00,0xba,0x50,0x00,0x08,0x01,0x00,0x07,0x24, +0xff,0x00,0x65,0x30,0x1d,0x00,0xa2,0x2c,0x07,0x00,0x40,0x10,0xff,0xff,0x02,0x25, +0x04,0x10,0xa7,0x00,0x24,0x10,0x46,0x00,0xf9,0xff,0x40,0x10,0x01,0x00,0xa3,0x24, +0x21,0x58,0xa0,0x00,0xff,0xff,0x02,0x25,0xff,0x00,0x45,0x30,0x2b,0x18,0xab,0x00, +0x0f,0x00,0x60,0x14,0x2b,0x10,0x49,0x01,0x01,0x00,0x04,0x24,0x04,0x10,0xa4,0x00, +0x24,0x10,0x46,0x00,0xff,0xff,0xa7,0x24,0x04,0x00,0x40,0x10,0x01,0x00,0x43,0x25, +0x17,0x00,0x49,0x11,0xff,0x00,0x6a,0x30,0x21,0x40,0xa0,0x00,0xff,0x00,0xe5,0x30, +0x2b,0x10,0xab,0x00,0xf6,0xff,0x40,0x10,0x04,0x10,0xa4,0x00,0x2b,0x10,0x49,0x01, +0x08,0x00,0x40,0x10,0x21,0x20,0x00,0x01,0x23,0x10,0x2a,0x01,0x2a,0x10,0x62,0x01, +0x04,0x00,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x69,0x01,0x21,0x10,0x4a,0x00, +0xff,0x00,0x44,0x30,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xfd,0xff,0x40,0x14, +0x21,0x20,0x00,0x00,0x23,0x10,0x09,0x01,0xdb,0x50,0x00,0x08,0xff,0x00,0x44,0x30, +0x21,0x20,0x00,0x01,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xd8,0xff,0xbd,0x27, +0x02,0x80,0x02,0x3c,0x18,0x00,0xb2,0xaf,0xff,0xff,0x03,0x3c,0x78,0x1b,0x52,0x24, +0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x20,0x00,0xbf,0xaf, +0xff,0x1f,0x73,0x34,0x21,0x88,0x00,0x00,0x21,0x80,0x40,0x02,0x19,0x50,0x00,0x0c, +0x21,0x20,0x20,0x02,0x90,0x11,0x02,0x8e,0x21,0x28,0x00,0x00,0x24,0x10,0x53,0x00, +0x00,0x20,0x42,0x34,0x90,0x11,0x02,0xae,0x92,0x11,0x03,0x92,0x00,0x00,0x00,0x00, +0x80,0x18,0x03,0x00,0x21,0x18,0x72,0x00,0xf8,0x04,0x64,0x8c,0x6c,0x05,0x62,0x8c, +0x00,0x00,0x00,0x00,0x21,0x10,0x44,0x00,0x42,0x10,0x02,0x00,0x5c,0x11,0x02,0xae, +0x21,0x10,0x05,0x02,0x01,0x00,0xa5,0x24,0x1d,0x00,0xa3,0x28,0xce,0x11,0x40,0xa0, +0x94,0x11,0x40,0xa0,0xfa,0xff,0x60,0x14,0xb1,0x11,0x40,0xa0,0x01,0x00,0x31,0x26, +0x20,0x00,0x22,0x2a,0xec,0x11,0x00,0xae,0xe4,0xff,0x40,0x14,0x94,0x00,0x10,0x26, +0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0xc0,0xff,0xbd,0x27, +0x02,0x80,0x02,0x3c,0x2c,0x00,0xb5,0xaf,0x78,0x1b,0x46,0x24,0x3c,0x00,0xbf,0xaf, +0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0xec,0x25,0xc2,0x8c,0xff,0x00,0x03,0x24,0xff,0x00,0x8d,0x30,0xff,0xff,0x42,0x38, +0x0b,0x18,0x02,0x00,0xff,0xff,0x04,0x34,0x10,0x00,0xa3,0xaf,0xec,0x25,0xc4,0xac, +0xb9,0x00,0xa0,0x11,0x08,0x00,0x15,0x24,0x02,0x80,0x02,0x3c,0xdc,0xad,0x45,0x24, +0x94,0x04,0xc4,0x24,0x36,0x51,0x00,0x08,0x21,0x88,0x00,0x00,0x01,0x00,0x31,0x26, +0x00,0x00,0x82,0xa0,0x1d,0x00,0x22,0x2a,0x0b,0x00,0x40,0x10,0x01,0x00,0x84,0x24, +0x21,0x10,0x25,0x02,0x00,0x00,0x42,0x90,0x00,0x00,0x00,0x00,0xf7,0xff,0x40,0x10, +0xfd,0xff,0x43,0x24,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x00,0x00,0x83,0xa0, +0xf7,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x02,0x80,0x02,0x3c,0x78,0x1b,0x4a,0x24, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x74,0xab,0x6c,0x24,0xfc,0xaa,0x4b,0x24, +0x21,0x88,0x00,0x00,0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01, +0x21,0x38,0x2c,0x01,0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90, +0x21,0x18,0x06,0x01,0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc9,0x03,0x64,0xa0, +0xf8,0xff,0x40,0x14,0x38,0x03,0x65,0xa0,0x21,0x10,0x2b,0x02,0x1d,0x00,0x44,0x90, +0x00,0x00,0x45,0x90,0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a, +0x77,0x04,0x64,0xa0,0x5a,0x04,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25, +0xaf,0x00,0xa0,0x11,0x02,0x80,0x02,0x3c,0x78,0x1b,0x48,0x24,0x02,0x80,0x03,0x3c, +0x02,0x80,0x02,0x3c,0x70,0xae,0x69,0x24,0xfc,0xad,0x47,0x24,0x21,0x88,0x00,0x00, +0x80,0x18,0x11,0x00,0x21,0x10,0x69,0x00,0x21,0x20,0x67,0x00,0x00,0x00,0x46,0x8c, +0x00,0x00,0x85,0x8c,0x01,0x00,0x31,0x26,0x21,0x18,0x68,0x00,0x04,0x00,0x22,0x2a, +0xf8,0x04,0x65,0xac,0xf6,0xff,0x40,0x14,0x6c,0x05,0x66,0xac,0x02,0x80,0x02,0x3c, +0x78,0x1b,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x70,0xae,0x68,0x24, +0xfc,0xad,0x47,0x24,0x04,0x00,0x11,0x24,0x80,0x20,0x11,0x00,0x21,0x10,0x88,0x00, +0x21,0x30,0x87,0x00,0x00,0x00,0x45,0x8c,0x00,0x00,0xc3,0x8c,0x01,0x00,0x31,0x26, +0x21,0x20,0x89,0x00,0x82,0x28,0x05,0x00,0x82,0x18,0x03,0x00,0x1d,0x00,0x22,0x2a, +0xf8,0x04,0x83,0xac,0xf4,0xff,0x40,0x14,0x6c,0x05,0x85,0xac,0x02,0x80,0x02,0x3c, +0x78,0x1b,0x56,0x24,0xff,0xff,0x02,0x3c,0x21,0xf0,0xc0,0x02,0xff,0x1f,0x57,0x34, +0x21,0x88,0x00,0x00,0x21,0xa0,0x00,0x00,0x93,0x51,0x00,0x08,0x21,0x90,0xc0,0x02, +0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0x94,0x00,0x52,0x26,0x3d,0x00,0x40,0x10, +0x94,0x00,0x94,0x26,0x90,0x11,0x44,0x8e,0x01,0x00,0x03,0x24,0x02,0x13,0x04,0x00, +0x01,0x00,0x53,0x30,0xf6,0xff,0x63,0x16,0x07,0x00,0x82,0x30,0x25,0xb0,0x03,0x3c, +0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x84,0x01,0x45,0x8c,0x88,0x11,0x43,0x8e, +0x21,0x20,0x20,0x02,0x24,0x28,0xa3,0x00,0x96,0x15,0x00,0x0c,0x8c,0x11,0x45,0xae, +0x92,0x11,0x44,0x92,0x70,0x15,0x00,0x0c,0xff,0x00,0x25,0x32,0x90,0x11,0x42,0x8e, +0x00,0x00,0x00,0x00,0x24,0x10,0x57,0x00,0x00,0x20,0x42,0x34,0x90,0x11,0x42,0xae, +0x92,0x11,0x50,0x92,0x00,0x00,0x00,0x00,0x21,0x20,0x00,0x02,0x86,0x15,0x00,0x0c, +0x80,0x80,0x10,0x00,0x21,0x80,0x16,0x02,0x60,0x11,0x40,0xae,0x64,0x11,0x40,0xae, +0x68,0x11,0x40,0xae,0x6c,0x11,0x40,0xae,0x70,0x11,0x40,0xae,0x74,0x11,0x40,0xae, +0x78,0x11,0x40,0xae,0x7c,0x11,0x40,0xae,0xf8,0x04,0x04,0x8e,0x6c,0x05,0x03,0x8e, +0x26,0x10,0x53,0x00,0x21,0x30,0x00,0x00,0x21,0x18,0x64,0x00,0x42,0x18,0x03,0x00, +0x04,0x00,0x04,0x24,0x0a,0xa8,0x82,0x00,0x5c,0x11,0x43,0xae,0x21,0x20,0x9e,0x02, +0x21,0x10,0x86,0x00,0x01,0x00,0xc6,0x24,0x1d,0x00,0xc3,0x28,0xce,0x11,0x40,0xa0, +0x94,0x11,0x40,0xa0,0xfa,0xff,0x60,0x14,0xb1,0x11,0x40,0xa0,0x01,0x00,0x31,0x26, +0x20,0x00,0x22,0x2a,0xec,0x11,0x80,0xac,0x94,0x00,0x52,0x26,0xc5,0xff,0x40,0x14, +0x94,0x00,0x94,0x26,0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34,0x00,0x00,0x55,0xa0, +0x10,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x03,0x00,0x60,0x14,0x02,0x80,0x03,0x3c, +0x78,0x1b,0x62,0x24,0xec,0x25,0x40,0xac,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f, +0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0xdc,0xad,0x45,0x24, +0x94,0x04,0xc4,0x24,0x21,0x88,0x00,0x00,0x21,0x10,0x25,0x02,0x00,0x00,0x43,0x90, +0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x00,0x00,0x83,0xa0,0xfa,0xff,0x40,0x14, +0x01,0x00,0x84,0x24,0x02,0x80,0x02,0x3c,0x78,0x1b,0x4a,0x24,0x02,0x80,0x03,0x3c, +0x02,0x80,0x02,0x3c,0x98,0xac,0x6c,0x24,0x38,0xab,0x4b,0x24,0x21,0x88,0x00,0x00, +0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01,0x21,0x38,0x2c,0x01, +0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01, +0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc9,0x03,0x64,0xa0,0xf8,0xff,0x40,0x14, +0x38,0x03,0x65,0xa0,0x21,0x10,0x2b,0x02,0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90, +0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x77,0x04,0x64,0xa0, +0x5a,0x04,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25,0x02,0x80,0x02,0x3c, +0x78,0x1b,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x70,0xae,0x68,0x24, +0xfc,0xad,0x47,0x24,0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,0x21,0x10,0x68,0x00, +0x21,0x20,0x67,0x00,0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c,0x01,0x00,0x31,0x26, +0x21,0x18,0x69,0x00,0x1d,0x00,0x22,0x2a,0xf8,0x04,0x65,0xac,0xf6,0xff,0x40,0x14, +0x6c,0x05,0x66,0xac,0x86,0x51,0x00,0x08,0x02,0x80,0x02,0x3c,0xd8,0xff,0xbd,0x27, +0xff,0xff,0x84,0x30,0x18,0x00,0xb2,0xaf,0xf0,0x01,0x92,0x30,0x02,0x91,0x12,0x00, +0x14,0x00,0xb1,0xaf,0xc0,0x88,0x12,0x00,0x21,0x88,0x32,0x02,0x80,0x88,0x11,0x00, +0x21,0x88,0x32,0x02,0x02,0x80,0x02,0x3c,0x78,0x1b,0x42,0x24,0x80,0x88,0x11,0x00, +0x21,0x88,0x22,0x02,0x20,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,0x10,0x00,0xb0,0xaf, +0x90,0x11,0x30,0x8e,0x00,0x02,0x83,0x30,0xff,0xfe,0x02,0x24,0x2b,0x18,0x03,0x00, +0x00,0x10,0x10,0x36,0x24,0x80,0x02,0x02,0x00,0x1a,0x03,0x00,0x00,0x04,0x82,0x30, +0x25,0x80,0x03,0x02,0x2b,0x10,0x02,0x00,0xf7,0xff,0x03,0x24,0x24,0x80,0x03,0x02, +0xc0,0x10,0x02,0x00,0x25,0x80,0x02,0x02,0x88,0x11,0x25,0xae,0x90,0x11,0x30,0xae, +0xf3,0x15,0x00,0x0c,0x21,0x98,0xa0,0x00,0xf8,0xff,0x03,0x24,0x24,0x80,0x03,0x02, +0x07,0x00,0x42,0x30,0x25,0x80,0x02,0x02,0x07,0x00,0x03,0x32,0x25,0xb0,0x02,0x3c, +0x80,0x18,0x03,0x00,0x90,0x11,0x30,0xae,0x21,0x18,0x62,0x00,0x84,0x01,0x62,0x8c, +0x21,0x20,0x40,0x02,0x24,0x10,0x53,0x00,0x96,0x15,0x00,0x0c,0x8c,0x11,0x22,0xae, +0x92,0x11,0x24,0x92,0x21,0x28,0x40,0x02,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x70,0x15,0x00,0x08, +0x28,0x00,0xbd,0x27,0x19,0x50,0x00,0x08,0xff,0x00,0x84,0x30,0x02,0x80,0x02,0x3c, +0x78,0x1b,0x43,0x24,0x1f,0x00,0x04,0x24,0x90,0x11,0x62,0x8c,0xff,0xff,0x84,0x24, +0x00,0x10,0x42,0x34,0x90,0x11,0x62,0xac,0xfb,0xff,0x81,0x04,0x94,0x00,0x63,0x24, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x23,0x10,0xa4,0x00, +0x2b,0x18,0xa4,0x00,0x23,0x20,0x85,0x00,0x08,0x00,0xe0,0x03,0x0b,0x10,0x83,0x00, +0x20,0xff,0xbd,0x27,0xcc,0x00,0xb5,0xaf,0xdc,0x00,0xbf,0xaf,0xd8,0x00,0xbe,0xaf, +0xd4,0x00,0xb7,0xaf,0xd0,0x00,0xb6,0xaf,0xc8,0x00,0xb4,0xaf,0xc4,0x00,0xb3,0xaf, +0xc0,0x00,0xb2,0xaf,0xbc,0x00,0xb1,0xaf,0xb8,0x00,0xb0,0xaf,0x21,0xa8,0x00,0x00, +0x40,0x11,0x15,0x00,0x10,0x00,0xa3,0x27,0x21,0x10,0x43,0x00,0x07,0x00,0x16,0x24, +0xff,0xff,0xd6,0x26,0x00,0x00,0x40,0xac,0xfd,0xff,0xc1,0x06,0x04,0x00,0x42,0x24, +0x01,0x00,0xb5,0x26,0x03,0x00,0xa2,0x2e,0xf6,0xff,0x40,0x14,0x40,0x11,0x15,0x00, +0x25,0xb0,0x10,0x3c,0xc4,0x02,0x02,0x36,0x00,0x00,0x40,0xac,0x04,0x00,0x03,0x36, +0x00,0x00,0x62,0x8c,0x04,0x0c,0x03,0x36,0x00,0x00,0x63,0x8c,0x08,0x0c,0x04,0x36, +0x0f,0x00,0x11,0x3c,0xac,0x00,0xa3,0xaf,0x00,0x00,0x84,0x8c,0x24,0x10,0x51,0x00, +0x02,0xf4,0x02,0x00,0xb0,0x00,0xa4,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,0xe3,0x44,0x00,0x0c, +0xff,0xff,0x25,0x36,0x70,0x00,0xa2,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x95,0x42,0x00,0x0c, +0x01,0x00,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36, +0x74,0x00,0xa2,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x95,0x42,0x00,0x0c,0x21,0x20,0x00,0x00, +0xe0,0x0e,0x02,0x36,0x21,0x20,0x40,0x00,0x00,0x00,0x42,0x8c,0xdc,0x0e,0x12,0x36, +0x70,0x0e,0x13,0x36,0x78,0x00,0xa2,0xaf,0x00,0x00,0x42,0x8e,0x74,0x0e,0x14,0x36, +0x78,0x0e,0x15,0x36,0x7c,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8e,0x7c,0x0e,0x16,0x36, +0x80,0x0e,0x17,0x36,0x80,0x00,0xa3,0xaf,0x00,0x00,0x82,0x8e,0xd4,0x0e,0x10,0x36, +0xed,0x3f,0x11,0x3c,0x84,0x00,0xa2,0xaf,0x00,0x00,0xa3,0x8e,0xfb,0x92,0x25,0x36, +0x88,0x00,0xa3,0xaf,0x00,0x00,0xc2,0x8e,0x00,0x00,0x00,0x00,0x8c,0x00,0xa2,0xaf, +0x00,0x00,0xe3,0x8e,0x25,0xb0,0x02,0x3c,0x84,0x0e,0x42,0x34,0x90,0x00,0xa3,0xaf, +0x00,0x00,0x42,0x8c,0x25,0xb0,0x03,0x3c,0x88,0x0e,0x63,0x34,0x94,0x00,0xa2,0xaf, +0x00,0x00,0x63,0x8c,0x25,0xb0,0x02,0x3c,0x8c,0x0e,0x42,0x34,0x98,0x00,0xa3,0xaf, +0x00,0x00,0x42,0x8c,0x25,0xb0,0x03,0x3c,0xd0,0x0e,0x63,0x34,0x9c,0x00,0xa2,0xaf, +0x00,0x00,0x63,0x8c,0x00,0x00,0x00,0x00,0xa0,0x00,0xa3,0xaf,0x00,0x00,0x02,0x8e, +0x25,0xb0,0x03,0x3c,0xd8,0x0e,0x63,0x34,0xa4,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8c, +0x68,0x52,0x00,0x0c,0xa8,0x00,0xa3,0xaf,0x21,0x20,0x40,0x02,0x68,0x52,0x00,0x0c, +0xfb,0x92,0x25,0x36,0x21,0x20,0x60,0x02,0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36, +0x21,0x20,0x80,0x02,0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0xa0,0x02, +0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0xc0,0x02,0x68,0x52,0x00,0x0c, +0xfb,0x92,0x25,0x36,0x21,0x20,0xe0,0x02,0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36, +0x02,0x80,0x02,0x3c,0x18,0xb0,0x42,0x24,0x00,0x00,0x44,0x8c,0xfb,0x92,0x25,0x36, +0x68,0x52,0x00,0x0c,0x25,0xb0,0x13,0x3c,0x02,0x80,0x03,0x3c,0x1c,0xb0,0x63,0x24, +0x00,0x00,0x64,0x8c,0xfb,0x92,0x25,0x36,0x68,0x52,0x00,0x0c,0x21,0xb0,0x00,0x00, +0x02,0x80,0x02,0x3c,0x20,0xb0,0x42,0x24,0x00,0x00,0x44,0x8c,0xfb,0x92,0x25,0x36, +0x68,0x52,0x00,0x0c,0xff,0x03,0x14,0x3c,0x02,0x80,0x03,0x3c,0x24,0xb0,0x63,0x24, +0x00,0x00,0x64,0x8c,0xfb,0x92,0x25,0x36,0x68,0x52,0x00,0x0c,0x10,0x00,0xb7,0x27, +0x21,0x20,0x00,0x02,0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36,0x02,0x80,0x02,0x3c, +0x28,0xb0,0x42,0x24,0x00,0x00,0x44,0x8c,0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36, +0x54,0x53,0x00,0x08,0x21,0xa8,0x00,0x00,0x6e,0x00,0xc2,0x13,0x02,0x80,0x02,0x3c, +0xac,0x0e,0x62,0x36,0x94,0x0e,0x63,0x36,0x00,0x00,0x48,0x8c,0x00,0x00,0x64,0x8c, +0xb4,0x0e,0x62,0x36,0x9c,0x0e,0x63,0x36,0x00,0x00,0x45,0x8c,0x00,0x00,0x66,0x8c, +0x25,0xb0,0x03,0x3c,0xbc,0x0e,0x63,0x34,0x00,0x00,0x67,0x8c,0x24,0x20,0x94,0x00, +0x00,0xd8,0x02,0x3c,0x24,0x10,0x02,0x01,0x24,0x28,0xb4,0x00,0x24,0x30,0xd4,0x00, +0x24,0x38,0xf4,0x00,0x02,0x24,0x04,0x00,0x20,0x01,0x03,0x24,0x01,0x00,0x42,0x2c, +0x02,0x2c,0x05,0x00,0x02,0x34,0x06,0x00,0xe8,0x00,0x83,0x10,0x02,0x3c,0x07,0x00, +0xe6,0x00,0xa3,0x10,0x20,0x00,0x03,0x24,0xe4,0x00,0xc3,0x10,0x00,0x00,0x00,0x00, +0xe2,0x00,0xe3,0x10,0x01,0x00,0x08,0x24,0x80,0x00,0x03,0x24,0x08,0x00,0x83,0x10, +0x21,0x20,0x00,0x00,0x06,0x00,0xa3,0x10,0x21,0x20,0x00,0x00,0xe0,0x03,0x03,0x24, +0x03,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,0xdb,0x00,0xe3,0x10,0x01,0x00,0x04,0x24, +0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x11,0x00,0x00,0x00,0x00, +0xd7,0x00,0x80,0x14,0x94,0x0e,0x63,0x36,0x01,0x00,0xb5,0x26,0x0a,0x00,0xa2,0x2e, +0x01,0x01,0x40,0x10,0x00,0x00,0x00,0x00,0xcb,0xff,0xc0,0x17,0x01,0x00,0x02,0x24, +0xa0,0x00,0x03,0x3c,0x30,0x54,0x65,0x34,0x68,0x52,0x00,0x0c,0x04,0x0c,0x64,0x36, +0x08,0x00,0x05,0x3c,0xe4,0x00,0xa5,0x34,0x68,0x52,0x00,0x0c,0x08,0x0c,0x64,0x36, +0x28,0x0e,0x64,0x36,0x68,0x52,0x00,0x0c,0x80,0x80,0x05,0x3c,0x14,0x02,0x02,0x3c, +0x48,0x01,0x45,0x34,0x68,0x52,0x00,0x0c,0x40,0x0e,0x64,0x36,0x16,0x68,0x05,0x3c, +0xa2,0x04,0xa5,0x34,0x68,0x52,0x00,0x0c,0x44,0x0e,0x64,0x36,0x4c,0x0e,0x64,0x36, +0x68,0x52,0x00,0x0c,0xd1,0x28,0x05,0x24,0x14,0x02,0x03,0x3c,0x4d,0x01,0x65,0x34, +0x68,0x52,0x00,0x0c,0x60,0x0e,0x64,0x36,0x16,0x28,0x05,0x3c,0xba,0x08,0xa5,0x34, +0x68,0x52,0x00,0x0c,0x64,0x0e,0x64,0x36,0x6c,0x0e,0x64,0x36,0x68,0x52,0x00,0x0c, +0xd1,0x28,0x05,0x24,0x00,0xfb,0x05,0x3c,0x01,0x00,0xa5,0x34,0x68,0x52,0x00,0x0c, +0x48,0x0e,0x64,0x36,0x00,0xf8,0x05,0x3c,0x01,0x00,0xa5,0x34,0x68,0x52,0x00,0x0c, +0x48,0x0e,0x64,0x36,0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24,0xa0,0x00,0x02,0x3c, +0x33,0x54,0x45,0x34,0x68,0x52,0x00,0x0c,0x04,0x0c,0x64,0x36,0x08,0x0c,0x64,0x36, +0x68,0x52,0x00,0x0c,0xe4,0x00,0x05,0x24,0x28,0x0e,0x64,0x36,0x68,0x52,0x00,0x0c, +0x21,0x28,0x00,0x00,0x01,0x00,0x02,0x24,0x96,0xff,0xc2,0x17,0xac,0x0e,0x62,0x36, +0x02,0x80,0x02,0x3c,0x2c,0xb0,0x42,0x24,0x25,0xb0,0x03,0x3c,0x00,0x00,0x44,0x8c, +0x20,0x08,0x63,0x34,0x00,0x00,0x71,0x8c,0x00,0x01,0x03,0x3c,0x00,0x01,0x65,0x34, +0x68,0x52,0x00,0x0c,0x25,0xb0,0x12,0x3c,0x00,0x01,0x02,0x3c,0x00,0x01,0x45,0x34, +0x68,0x52,0x00,0x0c,0x28,0x08,0x44,0x36,0xa0,0x00,0x03,0x3c,0x30,0x54,0x65,0x34, +0x68,0x52,0x00,0x0c,0x04,0x0c,0x44,0x36,0x08,0x00,0x05,0x3c,0xe4,0x00,0xa5,0x34, +0x68,0x52,0x00,0x0c,0x08,0x0c,0x44,0x36,0x28,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c, +0x80,0x80,0x05,0x3c,0x00,0x01,0x02,0x3c,0x00,0x7c,0x45,0x34,0x68,0x52,0x00,0x0c, +0x30,0x0e,0x44,0x36,0x00,0x01,0x03,0x3c,0x00,0x48,0x65,0x34,0x68,0x52,0x00,0x0c, +0x34,0x0e,0x44,0x36,0x00,0x10,0x02,0x3c,0x1f,0xdc,0x45,0x34,0x68,0x52,0x00,0x0c, +0x38,0x0e,0x44,0x36,0x00,0x10,0x03,0x3c,0x1f,0x8c,0x65,0x34,0x68,0x52,0x00,0x0c, +0x3c,0x0e,0x44,0x36,0x14,0x02,0x02,0x3c,0x02,0x01,0x45,0x34,0x68,0x52,0x00,0x0c, +0x40,0x0e,0x44,0x36,0x16,0x68,0x05,0x3c,0xc7,0x04,0xa5,0x34,0x68,0x52,0x00,0x0c, +0x44,0x0e,0x44,0x36,0x4c,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c,0xd1,0x28,0x05,0x24, +0x6c,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c,0xd1,0x28,0x05,0x24,0x00,0x01,0x03,0x3c, +0x00,0x7c,0x65,0x34,0x68,0x52,0x00,0x0c,0x50,0x0e,0x44,0x36,0x00,0x01,0x02,0x3c, +0x00,0x48,0x45,0x34,0x68,0x52,0x00,0x0c,0x54,0x0e,0x44,0x36,0x00,0x10,0x03,0x3c, +0x23,0xdc,0x65,0x34,0x68,0x52,0x00,0x0c,0x58,0x0e,0x44,0x36,0x00,0x10,0x02,0x3c, +0x23,0x8c,0x45,0x34,0x68,0x52,0x00,0x0c,0x5c,0x0e,0x44,0x36,0x14,0x02,0x03,0x3c, +0x02,0x01,0x65,0x34,0x68,0x52,0x00,0x0c,0x60,0x0e,0x44,0x36,0x16,0x28,0x05,0x3c, +0x07,0x0d,0xa5,0x34,0x68,0x52,0x00,0x0c,0x64,0x0e,0x44,0x36,0x48,0x0e,0x44,0x36, +0x68,0x52,0x00,0x0c,0x00,0xfb,0x05,0x3c,0x00,0xf8,0x05,0x3c,0x68,0x52,0x00,0x0c, +0x48,0x0e,0x44,0x36,0x00,0x02,0x10,0x3c,0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24, +0x4c,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c,0xd1,0x28,0x05,0x36,0xd1,0x28,0x05,0x36, +0x68,0x52,0x00,0x0c,0x6c,0x0e,0x44,0x36,0x48,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c, +0x00,0xfb,0x05,0x3c,0x00,0xf8,0x05,0x3c,0x68,0x52,0x00,0x0c,0x48,0x0e,0x44,0x36, +0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24,0xac,0x00,0xa5,0x8f,0x04,0x0c,0x44,0x36, +0x68,0x52,0x00,0x0c,0x00,0x01,0x31,0x32,0xb0,0x00,0xa5,0x8f,0x08,0x0c,0x44,0x36, +0x68,0x52,0x00,0x0c,0x2b,0x88,0x11,0x00,0x28,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c, +0x21,0x28,0x00,0x00,0x23,0xff,0x20,0x16,0xac,0x0e,0x62,0x36,0x02,0x80,0x02,0x3c, +0x2c,0xb0,0x42,0x24,0x00,0x00,0x44,0x8c,0x68,0x52,0x00,0x0c,0x00,0x01,0x05,0x3c, +0x28,0x08,0x44,0x36,0x68,0x52,0x00,0x0c,0x00,0x01,0x05,0x3c,0xac,0x0e,0x62,0x36, +0x94,0x0e,0x63,0x36,0x00,0x00,0x48,0x8c,0x00,0x00,0x64,0x8c,0xb4,0x0e,0x62,0x36, +0x9c,0x0e,0x63,0x36,0x00,0x00,0x45,0x8c,0x00,0x00,0x66,0x8c,0x25,0xb0,0x03,0x3c, +0xbc,0x0e,0x63,0x34,0x00,0x00,0x67,0x8c,0x24,0x20,0x94,0x00,0x00,0xd8,0x02,0x3c, +0x24,0x10,0x02,0x01,0x24,0x28,0xb4,0x00,0x24,0x30,0xd4,0x00,0x24,0x38,0xf4,0x00, +0x02,0x24,0x04,0x00,0x20,0x01,0x03,0x24,0x01,0x00,0x42,0x2c,0x02,0x2c,0x05,0x00, +0x02,0x34,0x06,0x00,0x1a,0xff,0x83,0x14,0x02,0x3c,0x07,0x00,0x80,0x00,0x03,0x24, +0x20,0xff,0x83,0x14,0x21,0x40,0x00,0x00,0x4a,0x53,0x00,0x08,0x21,0x20,0x00,0x00, +0x00,0x00,0x62,0x8c,0x9c,0x0e,0x65,0x36,0xa4,0x0e,0x66,0x36,0x24,0x10,0x54,0x00, +0x02,0x14,0x02,0x00,0x00,0x00,0xe2,0xae,0x00,0x00,0xa4,0x8c,0xac,0x0e,0x67,0x36, +0xb4,0x0e,0x65,0x36,0x24,0x20,0x94,0x00,0x02,0x24,0x04,0x00,0x04,0x00,0xe4,0xae, +0x00,0x00,0xc3,0x8c,0xc4,0x0e,0x64,0x36,0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00, +0x08,0x00,0xe3,0xae,0x00,0x00,0xe2,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00, +0x02,0x14,0x02,0x00,0x0c,0x00,0xe2,0xae,0x00,0x00,0xa3,0x8c,0x00,0x00,0x00,0x00, +0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,0x10,0x00,0xe3,0xae,0x25,0xb0,0x03,0x3c, +0xbc,0x0e,0x63,0x34,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00, +0x02,0x14,0x02,0x00,0x14,0x00,0xe2,0xae,0x00,0x00,0x83,0x8c,0x00,0x00,0x00,0x00, +0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,0x18,0x00,0xe3,0xae,0x25,0xb0,0x03,0x3c, +0xcc,0x0e,0x63,0x34,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00, +0x02,0x14,0x02,0x00,0x1c,0x00,0xe2,0xae,0x01,0x00,0xd6,0x26,0x03,0x00,0xc2,0x2e, +0xc7,0xfe,0x40,0x14,0x20,0x00,0xf7,0x26,0x10,0x00,0xb0,0x8f,0x00,0x00,0x00,0x00, +0x49,0x01,0x00,0x16,0x00,0x00,0x00,0x00,0x30,0x00,0xb1,0x8f,0x00,0x00,0x00,0x00, +0x06,0x00,0x20,0x16,0x21,0x20,0x00,0x02,0x50,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00, +0x29,0x00,0x40,0x10,0xff,0x00,0x05,0x24,0x21,0x20,0x00,0x02,0x71,0x52,0x00,0x0c, +0x21,0x28,0x20,0x02,0x03,0x00,0x42,0x2c,0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x34,0x00,0xa5,0x8f,0x14,0x00,0xa4,0x8f,0x71,0x52,0x00,0x0c,0x00,0x00,0x00,0x00, +0x03,0x00,0x42,0x2c,0x1c,0x00,0x40,0x14,0x21,0x28,0x00,0x00,0x50,0x00,0xb2,0x8f, +0x21,0x20,0x00,0x02,0x71,0x52,0x00,0x0c,0x21,0x28,0x40,0x02,0x03,0x00,0x42,0x2c, +0x09,0x00,0x40,0x10,0x21,0x20,0x20,0x02,0x54,0x00,0xa5,0x8f,0x14,0x00,0xa4,0x8f, +0x71,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c,0x0e,0x00,0x40,0x14, +0x21,0x28,0x00,0x00,0x21,0x20,0x20,0x02,0x71,0x52,0x00,0x0c,0x21,0x28,0x40,0x02, +0x03,0x00,0x42,0x2c,0xe0,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x54,0x00,0xa5,0x8f, +0x34,0x00,0xa4,0x8f,0x71,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c, +0xd9,0x00,0x40,0x10,0x01,0x00,0x05,0x24,0xff,0x00,0x02,0x24,0xdb,0x00,0xa2,0x10, +0x25,0xb0,0x03,0x3c,0x10,0x00,0xa2,0x27,0x40,0x29,0x05,0x00,0x02,0x80,0x0f,0x3c, +0x21,0x28,0xa2,0x00,0x78,0x1b,0xec,0x25,0x00,0x00,0xa6,0x8c,0x0c,0x00,0xa7,0x8c, +0x0c,0x00,0x83,0x8d,0x10,0x00,0x84,0x8d,0x04,0x00,0xa8,0x8c,0x10,0x00,0xa9,0x8c, +0x00,0xfc,0x02,0x24,0x08,0x00,0xaa,0x8c,0x14,0x00,0xab,0x8c,0x24,0x20,0x82,0x00, +0xff,0x03,0xc6,0x30,0x24,0x18,0x62,0x00,0xff,0x03,0xe7,0x30,0xf0,0xff,0x02,0x3c, +0xff,0x03,0x42,0x34,0x25,0x18,0x66,0x00,0x25,0x20,0x87,0x00,0xff,0x03,0x08,0x31, +0xff,0x03,0x29,0x31,0x24,0x20,0x82,0x00,0x24,0x18,0x62,0x00,0x80,0x42,0x08,0x00, +0x80,0x4a,0x09,0x00,0x0f,0xc0,0x02,0x3c,0x1c,0x00,0xa6,0x8c,0x18,0x00,0xa7,0x8c, +0xff,0xff,0x42,0x34,0x25,0x18,0x68,0x00,0x25,0x20,0x89,0x00,0xff,0x03,0x4a,0x31, +0xff,0x03,0x6b,0x31,0x24,0x20,0x82,0x00,0x00,0x55,0x0a,0x00,0x24,0x18,0x62,0x00, +0x00,0x5d,0x0b,0x00,0x25,0x18,0x6a,0x00,0x25,0x20,0x8b,0x00,0x16,0x00,0x86,0xa5, +0x0c,0x00,0x83,0xad,0x10,0x00,0x84,0xad,0x14,0x00,0x87,0xa5,0x78,0x1b,0xf1,0x25, +0x10,0x00,0x22,0x8e,0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,0x4d,0x00,0x43,0x10, +0x25,0xb0,0x12,0x3c,0x0c,0x00,0x23,0x8e,0x80,0x0c,0x44,0x36,0x00,0x00,0x88,0x8c, +0x00,0x02,0x62,0x30,0xc0,0xff,0x13,0x3c,0x82,0x6d,0x08,0x00,0x03,0x00,0x40,0x10, +0xff,0x03,0x65,0x30,0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00,0x18,0x00,0xad,0x00, +0x82,0x62,0x03,0x00,0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31,0x12,0x10,0x00,0x00, +0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30,0x00,0xfc,0x02,0x24, +0x25,0x60,0x82,0x01,0x18,0x00,0x8d,0x01,0x00,0xfc,0x74,0x36,0x24,0x28,0x14,0x01, +0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00, +0x25,0x28,0xa2,0x00,0x68,0x52,0x00,0x0c,0x25,0x28,0xa6,0x00,0x94,0x0c,0x44,0x36, +0x00,0x00,0x85,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x55,0x34,0xc0,0x03,0x10,0x32, +0x24,0x28,0xb5,0x00,0x80,0x85,0x10,0x00,0x68,0x52,0x00,0x0c,0x25,0x28,0xb0,0x00, +0x10,0x00,0x2c,0x8e,0x88,0x0c,0x44,0x36,0x00,0x00,0x88,0x8c,0x82,0x2a,0x0c,0x00, +0xff,0x03,0xa5,0x30,0x24,0x10,0x13,0x01,0x00,0x02,0xa3,0x30,0x03,0x00,0x60,0x10, +0x82,0x6d,0x02,0x00,0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00,0x18,0x00,0xad,0x00, +0x02,0x65,0x0c,0x00,0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31,0x12,0x10,0x00,0x00, +0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30,0x00,0xfc,0x02,0x24, +0x25,0x60,0x82,0x01,0x18,0x00,0x8d,0x01,0x24,0x28,0x14,0x01,0x12,0x80,0x00,0x00, +0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x28,0xa2,0x00, +0x68,0x52,0x00,0x0c,0x25,0x28,0xa6,0x00,0x9c,0x0c,0x44,0x36,0x00,0x00,0x85,0x8c, +0xc0,0x03,0x10,0x32,0x80,0x85,0x10,0x00,0x24,0x28,0xb5,0x00,0x68,0x52,0x00,0x0c, +0x25,0x28,0xb0,0x00,0x78,0x00,0xa5,0x8f,0x25,0xb0,0x10,0x3c,0x68,0x52,0x00,0x0c, +0xe0,0x0e,0x04,0x36,0x7c,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0xdc,0x0e,0x04,0x36, +0x80,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0x70,0x0e,0x04,0x36,0x84,0x00,0xa5,0x8f, +0x68,0x52,0x00,0x0c,0x74,0x0e,0x04,0x36,0x88,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c, +0x78,0x0e,0x04,0x36,0x8c,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0x7c,0x0e,0x04,0x36, +0x90,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0x80,0x0e,0x04,0x36,0x94,0x00,0xa5,0x8f, +0x68,0x52,0x00,0x0c,0x84,0x0e,0x04,0x36,0x98,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c, +0x88,0x0e,0x04,0x36,0x9c,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0x8c,0x0e,0x04,0x36, +0xa0,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0xd0,0x0e,0x04,0x36,0xa4,0x00,0xa5,0x8f, +0x68,0x52,0x00,0x0c,0xd4,0x0e,0x04,0x36,0xa8,0x00,0xa5,0x8f,0x88,0x0e,0x04,0x36, +0x68,0x52,0x00,0x0c,0x0f,0x00,0x10,0x3c,0x70,0x00,0xa6,0x8f,0xff,0xff,0x05,0x36, +0xb8,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24, +0x95,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0x74,0x00,0xa6,0x8f,0xff,0xff,0x05,0x36, +0xb8,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24, +0x95,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0xff,0xff,0x05,0x36,0xe3,0x44,0x00,0x0c, +0x1e,0x00,0x04,0x24,0x21,0x88,0x40,0x00,0xfd,0xff,0x06,0x24,0x01,0x00,0x42,0x34, +0x24,0x30,0x46,0x00,0xff,0xff,0x05,0x36,0xb8,0x44,0x00,0x0c,0x1e,0x00,0x04,0x24, +0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x03,0x00,0x26,0x36, +0xb8,0x44,0x00,0x0c,0x1e,0x00,0x04,0x24,0xdc,0x00,0xbf,0x8f,0xd8,0x00,0xbe,0x8f, +0xd4,0x00,0xb7,0x8f,0xd0,0x00,0xb6,0x8f,0xcc,0x00,0xb5,0x8f,0xc8,0x00,0xb4,0x8f, +0xc4,0x00,0xb3,0x8f,0xc0,0x00,0xb2,0x8f,0xbc,0x00,0xb1,0x8f,0xb8,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0xe0,0x00,0xbd,0x27,0xff,0x00,0x05,0x24,0xff,0x00,0x02,0x24, +0x29,0xff,0xa2,0x14,0x10,0x00,0xa2,0x27,0x25,0xb0,0x03,0x3c,0x94,0x0e,0x62,0x34, +0x9c,0x0e,0x64,0x34,0xa4,0x0e,0x65,0x34,0xac,0x0e,0x66,0x34,0x02,0x80,0x0f,0x3c, +0x00,0x00,0x49,0x8c,0x78,0x1b,0xed,0x25,0x00,0x00,0x8c,0x8c,0x00,0x00,0xae,0x8c, +0x00,0x00,0xc7,0x8c,0xb4,0x0e,0x62,0x34,0x0c,0x00,0xa4,0x8d,0x10,0x00,0xa5,0x8d, +0x00,0x00,0x4a,0x8c,0xff,0x03,0x06,0x3c,0x00,0xfc,0x08,0x24,0xbc,0x0e,0x62,0x34, +0x24,0x48,0x26,0x01,0x24,0x38,0xe6,0x00,0x00,0x00,0x4b,0x8c,0x24,0x28,0xa8,0x00, +0x24,0x20,0x88,0x00,0x02,0x3c,0x07,0x00,0xcc,0x0e,0x68,0x34,0x02,0x4c,0x09,0x00, +0xc4,0x0e,0x63,0x34,0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,0x25,0x28,0xa7,0x00, +0x25,0x20,0x89,0x00,0x00,0x00,0x67,0x8c,0x24,0x60,0x86,0x01,0x00,0x00,0x03,0x8d, +0x24,0x50,0x46,0x01,0x24,0x28,0xa2,0x00,0x24,0x20,0x82,0x00,0x82,0x61,0x0c,0x00, +0x82,0x51,0x0a,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,0x25,0x20,0x8c,0x00, +0x25,0x28,0xaa,0x00,0x24,0x70,0xc6,0x01,0x24,0x58,0x66,0x01,0x24,0x28,0xa2,0x00, +0x24,0x18,0x66,0x00,0x00,0x71,0x0e,0x00,0x24,0x20,0x82,0x00,0x00,0x59,0x0b,0x00, +0x24,0x38,0xe6,0x00,0x25,0x20,0x8e,0x00,0x25,0x28,0xab,0x00,0x02,0x3c,0x07,0x00, +0x02,0x1c,0x03,0x00,0x16,0x00,0xa3,0xa5,0x0c,0x00,0xa4,0xad,0x10,0x00,0xa5,0xad, +0xbd,0x54,0x00,0x08,0x14,0x00,0xa7,0xa5,0x30,0x00,0xb1,0x8f,0x65,0x54,0x00,0x08, +0x21,0x20,0x00,0x02,0xe0,0xff,0xbd,0x27,0x44,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3, +0x49,0x00,0x03,0x24,0x47,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,0x1c,0xb6,0xe7,0x24, +0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0x10,0x27,0x03,0x24,0x01,0x00,0x02,0x24, +0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0xb0,0x59,0xc6,0x24, +0x0c,0x00,0xe3,0xac,0x14,0x00,0xe2,0xa0,0x18,0x00,0xbf,0xaf,0xa8,0x14,0x00,0x0c, +0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,0x25,0xb0,0x03,0x3c,0x20,0x00,0xb4,0xaf, +0x1c,0x00,0xb3,0xaf,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf, +0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x03,0x0d,0x64,0x34, +0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x54,0x30,0x70,0x00,0x93,0x32, +0x63,0x00,0x60,0x12,0x42,0x00,0x63,0x34,0x8f,0x00,0x82,0x32,0x00,0x00,0x82,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x5b,0x00,0x60,0x12,0x00,0x00,0x00,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x0f,0x00,0x11,0x3c,0x21,0x20,0x00,0x00,0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36, +0x21,0xa8,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x95,0x42,0x00,0x0c,0x01,0x00,0x04,0x24, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x21,0x20,0x00,0x00,0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0xb0,0x40,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x64,0x00,0x04,0x24, +0xcb,0x12,0x00,0x0c,0x08,0x00,0x10,0x3c,0xff,0xff,0x10,0x36,0x95,0x42,0x00,0x0c, +0x21,0x20,0x00,0x00,0x01,0x00,0x12,0x3c,0x24,0x30,0xb0,0x02,0x25,0x30,0xd2,0x00, +0xff,0xff,0x25,0x36,0xb8,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0xcb,0x12,0x00,0x0c, +0x64,0x00,0x04,0x24,0x24,0x80,0xd0,0x02,0x95,0x42,0x00,0x0c,0x01,0x00,0x04,0x24, +0x25,0x30,0x12,0x02,0xff,0xff,0x25,0x36,0xb8,0x44,0x00,0x0c,0x21,0x20,0x00,0x00, +0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x95,0x42,0x00,0x0c,0x21,0x20,0x00,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x0f,0x00,0x11,0x3c,0x18,0x00,0x04,0x24,0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36, +0x21,0x80,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x18,0x00,0x04,0x24,0xff,0xff,0x25,0x36, +0xb8,0x44,0x00,0x0c,0x00,0x80,0x06,0x36,0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24, +0x27,0x00,0x60,0x16,0x25,0xb0,0x02,0x3c,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f, +0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x25,0xb0,0x02,0x3c,0x42,0x00,0x42,0x34, +0x30,0x00,0xbd,0x27,0x00,0x00,0x40,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xff,0xff,0x02,0x24,0x00,0x00,0x62,0xa0,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c,0x18,0x00,0x04,0x24, +0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0x80,0x40,0x00,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24, +0x18,0x00,0x04,0x24,0xff,0xff,0x25,0x36,0xb8,0x44,0x00,0x0c,0x00,0x80,0x06,0x36, +0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24,0xdb,0xff,0x60,0x12,0x25,0xb0,0x02,0x3c, +0x03,0x0d,0x42,0x34,0x00,0x00,0x54,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x0f,0x00,0x10,0x3c,0x21,0x30,0xa0,0x02,0xff,0xff,0x05,0x36,0xb8,0x44,0x00,0x0c, +0x21,0x20,0x00,0x00,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x95,0x42,0x00,0x0c, +0x01,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x21,0x30,0xc0,0x02,0xb8,0x44,0x00,0x0c, +0x21,0x20,0x00,0x00,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x2c,0x00,0xbf,0x8f, +0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x20,0x00,0x00, +0x95,0x42,0x00,0x08,0x30,0x00,0xbd,0x27,0xc0,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf, +0x02,0x80,0x14,0x3c,0x78,0x1b,0x85,0x26,0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf, +0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf, +0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0xc8,0x02,0xa3,0x90,0x25,0xb0,0x02,0x3c, +0x9a,0x0c,0x42,0x34,0x01,0x00,0x63,0x24,0xff,0x00,0x64,0x30,0x00,0x00,0x44,0xa0, +0xc8,0x02,0xa3,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x78,0x1b,0x85,0x26, +0x0c,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00,0x82,0x17,0x02,0x00,0x01,0x00,0x42,0x30, +0x08,0x00,0x40,0x14,0x06,0x00,0x16,0x24,0x08,0x00,0xa2,0x8c,0x01,0x00,0x03,0x24, +0x42,0x17,0x02,0x00,0x03,0x00,0x42,0x30,0x4e,0x01,0x43,0x10,0x25,0xb0,0x02,0x3c, +0x78,0x1b,0x85,0x26,0x0c,0x00,0xa2,0x8c,0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00, +0x01,0x00,0x44,0x30,0x0d,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x38,0x00,0xbf,0x8f, +0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x08,0x00,0xa2,0x8c, +0x00,0x00,0x00,0x00,0x42,0x17,0x02,0x00,0x03,0x00,0x43,0x30,0xef,0xff,0x64,0x14, +0x00,0x00,0x00,0x00,0x10,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00,0x82,0x17,0x02,0x00, +0x60,0x02,0x43,0x10,0x0f,0x00,0x10,0x3c,0xc7,0x02,0xb3,0x90,0x25,0xb0,0x02,0x3c, +0x62,0x0c,0x42,0x34,0xff,0x00,0x63,0x32,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x90,0x26,0xc6,0x02,0x02,0x92,0x00,0x00,0x00,0x00, +0x6f,0x01,0x40,0x10,0x01,0x00,0x02,0x24,0x25,0xb0,0x11,0x3c,0x03,0x0d,0x23,0x36, +0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x70,0x00,0x42,0x30,0x95,0x01,0x40,0x14, +0xcc,0x00,0x02,0x24,0xc4,0x02,0x02,0x96,0x00,0x00,0x00,0x00,0x23,0x20,0x53,0x00, +0x2b,0x18,0x53,0x00,0x23,0x10,0x62,0x02,0x0a,0x10,0x83,0x00,0x03,0x00,0x42,0x2c, +0x62,0x01,0x40,0x10,0x00,0x00,0x00,0x00,0xc4,0x02,0x03,0x92,0x63,0x0c,0x22,0x36, +0x21,0x20,0x00,0x00,0x00,0x00,0x43,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30, +0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x78,0x1b,0x83,0x26, +0xc3,0x02,0x62,0x90,0x08,0x00,0x66,0x8c,0xc2,0x02,0x73,0xa0,0x23,0x20,0x53,0x00, +0x2b,0x38,0x62,0x02,0x23,0x90,0x62,0x02,0x02,0x2c,0x06,0x00,0x0b,0x90,0x87,0x00, +0x3f,0x00,0xa5,0x30,0x3f,0x00,0xc4,0x30,0x24,0x00,0x02,0x24,0x20,0x00,0x03,0x24, +0x23,0x10,0x44,0x00,0x7d,0x01,0x40,0x16,0x23,0x18,0x65,0x00,0x21,0x40,0x80,0x00, +0x21,0xa8,0xa0,0x00,0x02,0x80,0x17,0x3c,0x2b,0x28,0xc8,0x02,0xf3,0x01,0xa0,0x10, +0x78,0x1b,0x82,0x26,0x80,0x10,0x08,0x00,0x78,0x1b,0x83,0x26,0x21,0x10,0x43,0x00, +0x18,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x82,0x25,0x04,0x00,0x78,0x1b,0x86,0x26, +0x0c,0x00,0xc3,0x8c,0x00,0x00,0x00,0x00,0xff,0x03,0x67,0x30,0x7b,0x01,0xe0,0x10, +0x00,0x02,0x62,0x30,0x04,0x00,0x40,0x10,0x18,0x00,0xe4,0x00,0x00,0xfc,0x02,0x24, +0x25,0x38,0xe2,0x00,0x18,0x00,0xe4,0x00,0x82,0x82,0x03,0x00,0xff,0x03,0x10,0x32, +0x00,0x02,0x03,0x32,0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10, +0xff,0x03,0x45,0x30,0x00,0xfc,0x02,0x24,0x25,0x80,0x02,0x02,0x18,0x00,0x04,0x02, +0x80,0x1d,0x04,0x00,0x25,0xb0,0x11,0x3c,0x80,0x0c,0x24,0x36,0x94,0x0c,0x31,0x36, +0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00, +0x25,0x18,0x62,0x00,0x25,0x18,0x65,0x00,0x21,0x28,0x60,0x00,0x68,0x52,0x00,0x0c, +0x10,0x00,0xa3,0xaf,0x00,0x00,0x23,0x8e,0xff,0x0f,0x02,0x3c,0xc0,0x03,0x10,0x32, +0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x80,0x85,0x10,0x00,0x25,0x18,0x70,0x00, +0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x00,0x10,0x00,0xa3,0xaf,0x68,0x52,0x00,0x0c, +0x00,0x00,0x00,0x00,0x78,0x1b,0x83,0x26,0x08,0x00,0x62,0x8c,0x00,0x00,0x00,0x00, +0x59,0x01,0x40,0x04,0xc0,0x28,0x15,0x00,0x21,0x10,0xa3,0x00,0xac,0x00,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x22,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xad,0x00,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x23,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xae,0x00,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x24,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xaf,0x00,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x25,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb0,0x00,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x26,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb1,0x00,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x27,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb2,0x00,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x28,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb3,0x00,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x29,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x56,0x43,0xe3,0x92,0x22,0x00,0x02,0x24,0x03,0x00,0x62,0x10, +0x92,0x00,0x02,0x24,0x0d,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x82,0x26, +0x08,0x00,0x43,0x8c,0x01,0x00,0x44,0x3a,0x24,0x00,0x02,0x24,0x02,0x1a,0x03,0x00, +0x3f,0x00,0x63,0x30,0x01,0x00,0x84,0x30,0x71,0x01,0x80,0x10,0x23,0x28,0x43,0x00, +0x42,0x18,0x12,0x00,0x40,0x10,0x03,0x00,0x21,0x90,0x43,0x00,0x78,0x1b,0x83,0x26, +0xc3,0x02,0x62,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x62,0x02,0x46,0x01,0x40,0x10, +0x2b,0x10,0x45,0x02,0x06,0x00,0x40,0x10,0x24,0x00,0x06,0x24,0x08,0x00,0x62,0x8c, +0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x3f,0x00,0x42,0x30,0x21,0x30,0x52,0x00, +0x2b,0x28,0xc6,0x02,0x46,0x01,0xa0,0x10,0x78,0x1b,0x82,0x26,0x80,0x10,0x06,0x00, +0x78,0x1b,0x83,0x26,0x21,0x10,0x43,0x00,0x18,0x00,0x44,0x8c,0x00,0x00,0x00,0x00, +0x82,0x25,0x04,0x00,0x78,0x1b,0x83,0x26,0x10,0x00,0x70,0x8c,0x00,0x00,0x00,0x00, +0x82,0x3a,0x10,0x00,0xff,0x03,0xe7,0x30,0x3c,0x01,0xe0,0x10,0x00,0x02,0xe2,0x30, +0x04,0x00,0x40,0x10,0x18,0x00,0xe4,0x00,0x00,0xfc,0x02,0x24,0x25,0x38,0xe2,0x00, +0x18,0x00,0xe4,0x00,0x02,0x85,0x10,0x00,0xff,0x03,0x10,0x32,0x00,0x02,0x03,0x32, +0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x45,0x30, +0x00,0xfc,0x02,0x24,0x25,0x80,0x02,0x02,0x18,0x00,0x04,0x02,0x80,0x1d,0x04,0x00, +0x25,0xb0,0x11,0x3c,0x88,0x0c,0x24,0x36,0x9c,0x0c,0x31,0x36,0x12,0x80,0x00,0x00, +0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x18,0x62,0x00, +0x25,0x18,0x65,0x00,0x21,0x28,0x60,0x00,0x68,0x52,0x00,0x0c,0x10,0x00,0xa3,0xaf, +0x00,0x00,0x23,0x8e,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0xc0,0x03,0x10,0x32, +0x24,0x18,0x62,0x00,0x80,0x85,0x10,0x00,0x25,0x18,0x70,0x00,0x21,0x20,0x20,0x02, +0x21,0x28,0x60,0x00,0x68,0x52,0x00,0x0c,0x10,0x00,0xa3,0xaf,0x99,0x56,0x00,0x08, +0x00,0x00,0x00,0x00,0x80,0x0c,0x42,0x34,0x00,0x00,0x43,0x8c,0x21,0x30,0xa0,0x00, +0xc0,0xff,0x02,0x3c,0x24,0x20,0x62,0x00,0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c, +0xec,0x57,0x00,0x08,0x18,0x00,0xc3,0x24,0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e, +0x0d,0x00,0x40,0x10,0x02,0x80,0x17,0x3c,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00, +0x24,0x10,0x45,0x00,0xf8,0xff,0x44,0x14,0x04,0x00,0x63,0x24,0x08,0x00,0xc2,0x8c, +0xc0,0xff,0x03,0x24,0x3f,0x00,0x24,0x32,0x24,0x10,0x43,0x00,0x25,0x10,0x44,0x00, +0x08,0x00,0xc2,0xac,0x02,0x80,0x17,0x3c,0x56,0x43,0xe3,0x92,0x22,0x00,0x02,0x24, +0x3a,0x00,0x62,0x10,0x92,0x00,0x02,0x24,0x39,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c, +0x25,0xb0,0x02,0x3c,0x24,0x0a,0x42,0x34,0x00,0x00,0x44,0x8c,0x3f,0x3f,0x03,0x3c, +0x3f,0x3f,0x63,0x34,0x24,0x20,0x83,0x00,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c, +0x26,0x1c,0x53,0x24,0x2e,0x1d,0x72,0x24,0x21,0x88,0x00,0x00,0x13,0x58,0x00,0x08, +0x10,0x00,0xa4,0xaf,0x7b,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x43,0x00,0x40,0x10, +0x78,0x1b,0x85,0x26,0x01,0x00,0x31,0x26,0x21,0x00,0x22,0x2e,0x17,0x00,0x40,0x10, +0x78,0x1b,0x82,0x26,0xc0,0x80,0x11,0x00,0x10,0x00,0xa4,0x27,0x21,0x28,0x13,0x02, +0x7b,0x46,0x00,0x0c,0x04,0x00,0x06,0x24,0x21,0x28,0x12,0x02,0x10,0x00,0xa4,0x27, +0xf0,0xff,0x40,0x14,0x04,0x00,0x06,0x24,0x78,0x1b,0x85,0x26,0x08,0x00,0xa3,0x8c, +0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00, +0x00,0x24,0x04,0x00,0xff,0x7f,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x08,0x00,0xa3,0xac,0x78,0x1b,0x82,0x26,0x0c,0x00,0x43,0x8c, +0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x92,0x56,0x00,0x08,0x0c,0x00,0x43,0xac, +0xc6,0x02,0x02,0xa2,0xc0,0x56,0x00,0x08,0xc4,0x02,0x13,0xa6,0xbf,0x55,0x00,0x0c, +0x00,0x00,0x00,0x00,0xd0,0x56,0x00,0x08,0xc4,0x02,0x13,0xa6,0x25,0xb0,0x02,0x3c, +0x88,0x0c,0x42,0x34,0x00,0x00,0x44,0x8c,0x02,0x80,0x03,0x3c,0x78,0x1b,0x66,0x24, +0xc0,0xff,0x02,0x3c,0x24,0x20,0x82,0x00,0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c, +0x44,0x58,0x00,0x08,0x18,0x00,0xc3,0x24,0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e, +0xbc,0xff,0x40,0x10,0x25,0xb0,0x02,0x3c,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00, +0x24,0x10,0x45,0x00,0xf8,0xff,0x44,0x14,0x04,0x00,0x63,0x24,0x08,0x00,0xc2,0x8c, +0x3f,0x00,0x23,0x32,0xff,0xc0,0x04,0x24,0x24,0x10,0x44,0x00,0x00,0x1a,0x03,0x00, +0x25,0x10,0x43,0x00,0xfe,0x57,0x00,0x08,0x08,0x00,0xc2,0xac,0x08,0x00,0xa3,0x8c, +0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00, +0x00,0x24,0x04,0x00,0x25,0x18,0x64,0x00,0x00,0x80,0x02,0x3c,0x27,0x58,0x00,0x08, +0x25,0x18,0x62,0x00,0x63,0x0c,0x23,0x36,0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0xda,0x56,0x00,0x08,0x78,0x1b,0x83,0x26,0x98,0x00,0xe0,0x10, +0x21,0x40,0x00,0x00,0x2b,0x10,0x42,0x02,0x21,0x20,0x92,0x00,0x00,0x00,0x42,0x38, +0x24,0x00,0x08,0x24,0x2b,0x18,0x43,0x02,0x0b,0x40,0x82,0x00,0x7d,0xfe,0x60,0x10, +0x20,0x00,0x15,0x24,0x78,0x1b,0x83,0x26,0x0a,0x00,0x62,0x94,0x02,0x80,0x17,0x3c, +0x3f,0x00,0x42,0x30,0xec,0x56,0x00,0x08,0x21,0xa8,0x52,0x00,0x96,0x00,0xa0,0x10, +0x80,0x10,0x08,0x00,0x21,0x10,0x46,0x00,0x18,0x00,0x45,0x8c,0x25,0xb0,0x04,0x3c, +0x68,0x52,0x00,0x0c,0x80,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,0x94,0x0c,0x84,0x34, +0x21,0x57,0x00,0x08,0x21,0x28,0x00,0x00,0x21,0x10,0xa3,0x00,0xb4,0x01,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x22,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb5,0x01,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x23,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb6,0x01,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x24,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb7,0x01,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x25,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb8,0x01,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x26,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb9,0x01,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x27,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xba,0x01,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x28,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xbb,0x01,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x29,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x87,0x57,0x00,0x08,0x00,0x00,0x00,0x00,0x30,0x00,0x43,0x8c, +0xf5,0x56,0x00,0x08,0x82,0x25,0x03,0x00,0x08,0x00,0x62,0x8c,0x00,0x00,0x00,0x00, +0x02,0x12,0x02,0x00,0x3f,0x00,0x42,0x30,0x2b,0x18,0x42,0x02,0xbc,0xfe,0x60,0x14, +0x23,0x30,0x52,0x00,0x21,0x30,0x00,0x00,0x21,0x28,0x00,0x00,0x78,0x1b,0x82,0x26, +0x30,0x00,0x43,0x8c,0xaf,0x57,0x00,0x08,0x82,0x25,0x03,0x00,0x32,0x00,0xa0,0x10, +0x80,0x10,0x06,0x00,0x21,0x10,0x43,0x00,0x18,0x00,0x45,0x8c,0x25,0xb0,0x04,0x3c, +0x68,0x52,0x00,0x0c,0x88,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,0x9c,0x0c,0x84,0x34, +0x68,0x52,0x00,0x0c,0x21,0x28,0x00,0x00,0x99,0x56,0x00,0x08,0x00,0x00,0x00,0x00, +0x23,0x10,0x92,0x00,0x2b,0x18,0x44,0x02,0x2b,0x20,0x45,0x02,0x0b,0x40,0x43,0x00, +0xe8,0xfd,0x80,0x14,0x23,0xa8,0xb2,0x00,0xeb,0x56,0x00,0x08,0x21,0xa8,0x00,0x00, +0xff,0xff,0x43,0x26,0x42,0x18,0x03,0x00,0x40,0x10,0x03,0x00,0x21,0x10,0x43,0x00, +0x99,0x57,0x00,0x08,0x01,0x00,0x52,0x24,0x30,0x00,0xc5,0x8c,0x7a,0x58,0x00,0x08, +0x25,0xb0,0x04,0x3c,0xff,0xff,0x05,0x36,0x60,0x00,0x06,0x24,0xb8,0x44,0x00,0x0c, +0x24,0x00,0x04,0x24,0x9c,0x12,0x00,0x0c,0xe8,0x03,0x04,0x24,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x24,0x00,0x04,0x24, +0xe3,0x44,0x00,0x0c,0xff,0xff,0x05,0x36,0x1f,0x00,0x53,0x30,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24, +0xb2,0x56,0x00,0x08,0x25,0xb0,0x02,0x3c,0x30,0x00,0x65,0x8c,0xf6,0x58,0x00,0x08, +0x25,0xb0,0x04,0x3c,0x00,0xff,0x84,0x30,0x02,0x22,0x04,0x00,0x08,0x00,0x80,0x10, +0x02,0x80,0x02,0x3c,0xff,0x00,0x02,0x24,0x04,0x00,0x82,0x10,0xcc,0xff,0x03,0x24, +0x02,0x80,0x02,0x3c,0x08,0x00,0xe0,0x03,0x62,0x1e,0x43,0xa0,0x02,0x80,0x02,0x3c, +0x08,0x00,0xe0,0x03,0x62,0x1e,0x44,0xa0,0x02,0x24,0x04,0x00,0xff,0x00,0x84,0x30, +0xc0,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00, +0x02,0x80,0x03,0x3c,0x80,0x10,0x02,0x00,0x78,0x1b,0x63,0x24,0x20,0x00,0x84,0x2c, +0x09,0x00,0x80,0x10,0x21,0x10,0x43,0x00,0x80,0x11,0x43,0x8c,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x02,0x19,0x03,0x00,0x7f,0x00,0x63,0x30,0x00,0x00,0x43,0xac, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x6c,0x3f,0x43,0x8c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x02,0x19,0x03,0x00,0x7f,0x00,0x63,0x30, +0x00,0x00,0x43,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0x85,0x30, +0xd2,0xff,0xa3,0x24,0xfe,0xff,0xa2,0x24,0xda,0xff,0xa4,0x24,0x04,0x00,0x63,0x2c, +0x08,0x00,0x84,0x2c,0x06,0x00,0x60,0x14,0xff,0x00,0x42,0x30,0xf0,0xff,0xa2,0x24, +0xfc,0xff,0xa3,0x24,0x16,0x00,0x46,0x2c,0x03,0x00,0x80,0x10,0xff,0x00,0x62,0x30, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xfa,0xff,0xa3,0x24,0xfc,0xff,0xc0,0x10, +0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,0xff,0x00,0x62,0x30,0xe0,0xff,0xbd,0x27, +0x02,0x80,0x08,0x3c,0x78,0x1b,0x08,0x25,0x18,0x00,0xbf,0xaf,0xe8,0x02,0x07,0x8d, +0x02,0x80,0x02,0x3c,0x56,0x43,0x49,0x90,0x00,0x03,0x02,0x3c,0x25,0x38,0xe2,0x00, +0xff,0xf3,0x02,0x3c,0x02,0x80,0x03,0x3c,0xff,0xff,0x42,0x34,0xe4,0xb5,0x6a,0x24, +0x24,0x38,0xe2,0x00,0xff,0xff,0x03,0x34,0x01,0x80,0x06,0x3c,0x22,0x00,0x02,0x24, +0x21,0x20,0x40,0x01,0x44,0x66,0xc6,0x24,0x10,0x00,0xa5,0x27,0xe8,0x02,0x07,0xad, +0x00,0x24,0x03,0xad,0x05,0x00,0x22,0x11,0xfc,0x23,0x03,0xad,0x18,0x00,0xbf,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x44,0x00,0x02,0x24, +0x10,0x00,0xa2,0xa3,0x49,0x00,0x03,0x24,0x47,0x00,0x02,0x24,0x11,0x00,0xa3,0xa3, +0x12,0x00,0xa2,0xa3,0xd0,0x07,0x03,0x24,0x01,0x00,0x02,0x24,0x13,0x00,0xa0,0xa3, +0x0c,0x00,0x43,0xad,0xa8,0x14,0x00,0x0c,0x14,0x00,0x42,0xa1,0x18,0x00,0xbf,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0x02,0x80,0x10,0x3c,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf, +0x78,0x1b,0x04,0x26,0xd8,0x02,0x82,0x8c,0x01,0x00,0x03,0x24,0x02,0x15,0x02,0x00, +0x0f,0x00,0x42,0x30,0x07,0x00,0x43,0x10,0x25,0xb0,0x06,0x3c,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x4c,0x00,0xc3,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00, +0x03,0x00,0x42,0x30,0x45,0x00,0x40,0x10,0xff,0xf3,0x02,0x3c,0xe8,0x02,0x85,0x8c, +0x00,0x00,0x00,0x00,0x82,0x16,0x05,0x00,0x03,0x00,0x42,0x30,0x17,0x00,0x40,0x14, +0x78,0x1b,0x11,0x26,0x0c,0x09,0xc3,0x34,0x00,0x00,0x63,0x8c,0x12,0x01,0x02,0x3c, +0x13,0x13,0x42,0x34,0x6b,0x00,0x62,0x10,0xff,0xfc,0x02,0x3c,0x22,0x02,0x02,0x3c, +0x23,0x13,0x42,0x34,0x52,0x00,0x62,0x10,0xff,0xfc,0x02,0x3c,0x00,0x03,0x02,0x3c, +0x25,0x10,0xa2,0x00,0xe8,0x02,0x82,0xac,0x78,0x1b,0x05,0x26,0xe8,0x02,0xa3,0x8c, +0xff,0xf3,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x04,0x04,0x3c, +0x25,0x18,0x64,0x00,0xe8,0x02,0xa3,0xac,0x78,0x1b,0x11,0x26,0xfc,0x23,0x24,0x8e, +0xff,0xff,0x02,0x34,0xd5,0xff,0x82,0x10,0x00,0x00,0x00,0x00,0x80,0x11,0x22,0x8e, +0x00,0x00,0x00,0x00,0x02,0x11,0x02,0x00,0x7f,0x00,0x42,0x30,0x3f,0x00,0x43,0x2c, +0x28,0x00,0x60,0x14,0x3b,0x00,0x42,0x2c,0x00,0x24,0x22,0x8e,0x02,0x19,0x04,0x00, +0x02,0x11,0x02,0x00,0x23,0x18,0x62,0x00,0x3a,0x00,0x60,0x18,0x01,0x00,0x03,0x24, +0xeb,0x02,0x22,0x92,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0x0e,0x00,0x43,0x10, +0x78,0x1b,0x02,0x26,0x25,0xb0,0x04,0x3c,0x12,0x01,0x05,0x3c,0x0c,0x09,0x84,0x34, +0x68,0x52,0x00,0x0c,0x13,0x13,0xa5,0x34,0xe8,0x02,0x23,0x8e,0xff,0xfc,0x02,0x3c, +0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x01,0x04,0x3c,0x25,0x18,0x64,0x00, +0xe8,0x02,0x23,0xae,0x78,0x1b,0x02,0x26,0xe8,0x02,0x43,0x8c,0x00,0x20,0x04,0x3c, +0x25,0x18,0x64,0x00,0x9d,0x59,0x00,0x08,0xe8,0x02,0x43,0xac,0xe8,0x02,0x83,0x8c, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x20,0x00,0xbd,0x27,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0xe8,0x02,0x83,0xac,0xa5,0xff,0x40,0x10,0x03,0x00,0x03,0x24,0xeb,0x02,0x22,0x92, +0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0xa0,0xff,0x43,0x10,0x32,0x03,0x05,0x3c, +0x25,0xb0,0x04,0x3c,0x0c,0x09,0x84,0x34,0x68,0x52,0x00,0x0c,0x33,0x13,0xa5,0x34, +0xe8,0x02,0x23,0x8e,0xff,0xdf,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x00,0x03,0x04,0x3c,0x25,0x18,0x64,0x00,0x9d,0x59,0x00,0x08,0xe8,0x02,0x23,0xae, +0xff,0xff,0x42,0x34,0x24,0x10,0xa2,0x00,0x00,0x02,0x03,0x3c,0xbb,0x59,0x00,0x08, +0x25,0x10,0x43,0x00,0xeb,0x02,0x22,0x92,0x02,0x00,0x03,0x24,0x03,0x00,0x42,0x30, +0xd5,0xff,0x43,0x10,0x78,0x1b,0x02,0x26,0x25,0xb0,0x04,0x3c,0x22,0x02,0x05,0x3c, +0x0c,0x09,0x84,0x34,0x68,0x52,0x00,0x0c,0x23,0x13,0xa5,0x34,0xe8,0x02,0x23,0x8e, +0xff,0xfc,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0xe5,0x59,0x00,0x08, +0x00,0x02,0x04,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0xa2,0x00,0x00,0x01,0x03,0x3c, +0xbb,0x59,0x00,0x08,0x25,0x10,0x43,0x00,0x25,0xb0,0x03,0x3c,0x03,0x0d,0x63,0x34, +0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x08,0x00,0x42,0x34, +0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x03,0x0d,0x63,0x34, +0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xf7,0x00,0x42,0x30,0x00,0x00,0x62,0xa0, +0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,0x00,0x00,0x62,0x90, +0x21,0x20,0x00,0x00,0x3f,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24, +0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24, +0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00, +0xff,0x00,0x42,0x30,0x80,0x00,0x42,0x34,0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24, +0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xff,0x00,0x03,0x3c, +0x82,0x01,0x49,0x34,0x81,0x01,0x48,0x34,0x24,0x10,0x83,0x00,0x02,0x3c,0x02,0x00, +0x00,0xff,0x63,0x34,0x02,0x80,0x02,0x3c,0x78,0x1b,0x45,0x24,0x02,0x32,0x04,0x00, +0x01,0x00,0x02,0x24,0x24,0x20,0x83,0x00,0xda,0x0c,0xa2,0xa0,0xc8,0x0c,0xa0,0xac, +0xcc,0x0c,0xa0,0xac,0xd0,0x0c,0xa0,0xac,0x06,0x00,0x80,0x14,0xd4,0x0c,0xa0,0xac, +0x00,0x00,0x02,0x91,0x00,0x00,0x23,0x91,0xd8,0x0c,0xa2,0xa0,0x08,0x00,0xe0,0x03, +0xd9,0x0c,0xa3,0xa0,0xd9,0x0c,0xa7,0xa0,0x08,0x00,0xe0,0x03,0xd8,0x0c,0xa6,0xa0, +0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24,0xd9,0x0c,0x66,0x90,0xd8,0x0c,0x65,0x90, +0x25,0xb0,0x02,0x3c,0x82,0x01,0x44,0x34,0x81,0x01,0x42,0x34,0x00,0x00,0x45,0xa0, +0x00,0x00,0x86,0xa0,0x08,0x00,0xe0,0x03,0xda,0x0c,0x60,0xa0,0x02,0x80,0x08,0x3c, +0x78,0x1b,0x04,0x25,0xda,0x0c,0x82,0x90,0x00,0x00,0x00,0x00,0x15,0x00,0x40,0x10, +0x21,0x18,0x00,0x00,0xcc,0x0c,0x82,0x8c,0xc8,0x0c,0x85,0x8c,0x25,0xb0,0x03,0x3c, +0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x82,0x01,0x67,0x34,0x0f,0x00,0x40,0x10, +0x81,0x01,0x66,0x34,0xd9,0x0c,0x83,0x90,0xd8,0x0c,0x82,0x90,0xf0,0x00,0x63,0x30, +0x1f,0x00,0x42,0x30,0x00,0x00,0xc2,0xa0,0x00,0x00,0xe3,0xa0,0x78,0x1b,0x02,0x25, +0x01,0x00,0x03,0x24,0xd4,0x0c,0x40,0xac,0xc8,0x0c,0x40,0xac,0xcc,0x0c,0x40,0xac, +0xd0,0x0c,0x40,0xac,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xd0,0x0c,0x82,0x8c, +0x25,0xb0,0x03,0x3c,0x82,0x01,0x69,0x34,0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00, +0x0e,0x00,0x40,0x14,0x81,0x01,0x66,0x34,0xd4,0x0c,0x82,0x8c,0x00,0x00,0x00,0x00, +0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x08,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0xd9,0x0c,0x83,0x90,0xd8,0x0c,0x82,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0xc2,0xa0, +0x00,0x00,0x23,0xa1,0x8e,0x5a,0x00,0x08,0x78,0x1b,0x02,0x25,0xd9,0x0c,0x83,0x90, +0xd8,0x0c,0x82,0x90,0xf0,0x00,0x63,0x30,0x7f,0x00,0x42,0x30,0x00,0x00,0xc2,0xa0, +0x00,0x00,0x23,0xa1,0x8e,0x5a,0x00,0x08,0x78,0x1b,0x02,0x25,0x00,0x00,0x85,0xac, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x25,0xb0,0x03,0x3c,0x33,0x02,0x65,0x34,0x00,0x11,0x04,0x00,0x00,0x00,0xa2,0xa0, +0x30,0x02,0x63,0x34,0x00,0x00,0x65,0x8c,0x0f,0x00,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x28,0xa2,0x00,0x01,0x00,0x03,0x24,0x04,0x18,0x83,0x00,0x02,0x00,0xa0,0x10, +0x21,0x10,0x00,0x00,0xff,0xff,0x62,0x30,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x25,0xb0,0x11,0x3c,0x18,0x00,0xb2,0xaf, +0x4c,0x00,0x22,0x36,0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x44,0x90, +0x02,0x80,0x03,0x3c,0x02,0x00,0x02,0x24,0xff,0x00,0x84,0x30,0x07,0x00,0x82,0x10, +0x78,0x1b,0x72,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x52,0x24,0x43,0x96, +0x01,0x00,0x02,0x24,0xf7,0xff,0x62,0x14,0x21,0x20,0x00,0x00,0xba,0x5a,0x00,0x0c, +0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x24,0xba,0x5a,0x00,0x0c,0x21,0x80,0x40,0x00, +0x25,0x80,0x02,0x02,0x33,0x02,0x23,0x36,0x08,0x00,0x02,0x24,0xff,0xff,0x10,0x32, +0x40,0x00,0x25,0x36,0x00,0x00,0x62,0xa0,0xea,0xff,0x00,0x16,0x00,0x00,0x00,0x00, +0x00,0x00,0xa2,0x94,0x50,0x24,0x43,0x96,0xff,0xdf,0x42,0x30,0x00,0x20,0x44,0x34, +0x01,0x00,0x63,0x24,0x50,0x24,0x43,0xa6,0x00,0x00,0xa2,0xa4,0x00,0x00,0xa4,0xa4, +0xd7,0x5a,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xb8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c, +0x3c,0x00,0xb1,0xaf,0x38,0x00,0xb0,0xaf,0x40,0x00,0xbf,0xaf,0x78,0x1b,0x50,0x24, +0x04,0x24,0x03,0x8e,0x02,0x80,0x11,0x3c,0x01,0x00,0x02,0x24,0x01,0x00,0x63,0x30, +0x10,0x00,0xa4,0x27,0x80,0x3f,0x25,0x26,0x07,0x00,0x62,0x10,0x0a,0x00,0x06,0x24, +0x40,0x00,0xbf,0x8f,0x3c,0x00,0xb1,0x8f,0x38,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27,0x52,0x46,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x21,0x28,0x00,0x00,0x80,0x3f,0x24,0x26,0x3e,0x46,0x00,0x0c,0x0a,0x00,0x06,0x24, +0x28,0x00,0x03,0x24,0x05,0x00,0x02,0x24,0x09,0x24,0x03,0xa2,0x08,0x24,0x02,0xa2, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x39,0x15,0x00,0x0c, +0x48,0x00,0x04,0x24,0x21,0x80,0x40,0x00,0x10,0x00,0xa5,0x27,0xe4,0xff,0x40,0x10, +0x0a,0x00,0x06,0x24,0x08,0x00,0x44,0x94,0x14,0x00,0x02,0x24,0x14,0x00,0x02,0xae, +0x02,0x80,0x02,0x3c,0x28,0x00,0x03,0x24,0x25,0x20,0x82,0x00,0x0c,0x00,0x03,0xae, +0x52,0x46,0x00,0x0c,0x20,0x00,0x84,0x24,0x59,0x0a,0x00,0x0c,0x21,0x20,0x00,0x02, +0x0a,0x5b,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0x21,0x20,0x82,0x00, +0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xe8,0xff,0xbd,0x27,0xff,0x00,0xa5,0x30,0x10,0x00,0xb0,0xaf, +0x14,0x00,0xbf,0xaf,0x18,0x00,0xa0,0x14,0xff,0x00,0x90,0x30,0x2c,0x00,0x00,0x12, +0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x01,0x00,0x07,0x24,0xb0,0x44,0x67,0xa0, +0x02,0x80,0x08,0x3c,0xb2,0x44,0x02,0x91,0x02,0x00,0x04,0x24,0x21,0x28,0x00,0x00, +0x02,0x00,0x42,0x34,0x00,0x03,0x06,0x24,0xb2,0x44,0x02,0xa1,0x71,0x14,0x00,0x0c, +0x00,0x00,0x00,0x00,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x42,0xb0,0x02,0x3c, +0x44,0x00,0x03,0x24,0x03,0x00,0x42,0x34,0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa0, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x24,0x02,0x80,0x02,0x3c, +0xb0,0x44,0x43,0xa0,0x02,0x80,0x02,0x3c,0xb3,0x44,0x43,0x90,0x0f,0x00,0x02,0x24, +0x02,0x80,0x05,0x3c,0x0f,0x00,0x63,0x30,0x07,0x00,0x62,0x10,0x01,0x00,0x04,0x24, +0xb2,0x44,0xa2,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x34,0xb2,0x44,0xa2,0xa0, +0x1c,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0xdb,0xff,0x00,0x16,0x02,0x80,0x03,0x3c, +0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27, +0xb0,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c,0x99,0x44,0x64,0x90,0x14,0x00,0xbf,0x8f, +0x10,0x00,0xb0,0x8f,0xff,0x00,0x84,0x30,0xf9,0x1f,0x00,0x08,0x18,0x00,0xbd,0x27, +0xe8,0xff,0xbd,0x27,0x10,0x00,0xb2,0xaf,0x0c,0x00,0xb1,0xaf,0x08,0x00,0xb0,0xaf, +0x21,0x40,0xe0,0x00,0x21,0x90,0xa0,0x03,0x21,0x60,0xc0,0x00,0x21,0x78,0x80,0x00, +0x45,0x00,0xe0,0x14,0x21,0x50,0xa0,0x00,0x2b,0x10,0xa6,0x00,0x78,0x00,0x40,0x10, +0xff,0xff,0x02,0x34,0x2b,0x10,0x46,0x00,0x8f,0x01,0x40,0x10,0x21,0x28,0xc0,0x00, +0xff,0x00,0x02,0x3c,0xff,0xff,0x42,0x34,0x10,0x00,0x03,0x24,0x2b,0x10,0x46,0x00, +0x18,0x00,0x04,0x24,0x21,0x30,0x60,0x00,0x0b,0x30,0x82,0x00,0x02,0x80,0x03,0x3c, +0x06,0x10,0xc5,0x00,0xfc,0xb2,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x90, +0x20,0x00,0x02,0x24,0x21,0x20,0x86,0x00,0x23,0x30,0x44,0x00,0x08,0x00,0xc0,0x10, +0x02,0x4c,0x0c,0x00,0x23,0x10,0x46,0x00,0x06,0x10,0x4f,0x00,0x04,0x18,0xca,0x00, +0x25,0x50,0x62,0x00,0x04,0x60,0xcc,0x00,0x04,0x78,0xcf,0x00,0x02,0x4c,0x0c,0x00, +0x1b,0x00,0x49,0x01,0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00, +0xff,0xff,0x87,0x31,0x02,0x24,0x0f,0x00,0x12,0x18,0x00,0x00,0x10,0x28,0x00,0x00, +0x00,0x14,0x05,0x00,0x25,0x28,0x44,0x00,0x18,0x00,0x67,0x00,0x12,0x58,0x00,0x00, +0x2b,0x18,0xab,0x00,0x00,0x00,0x00,0x00,0x1b,0x00,0x49,0x01,0x02,0x00,0x20,0x15, +0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x08,0x00,0x60,0x10,0x00,0x00,0x00,0x00, +0x21,0x28,0xac,0x00,0x2b,0x10,0xac,0x00,0x04,0x00,0x40,0x14,0x2b,0x10,0xab,0x00, +0x00,0x00,0x42,0x38,0x21,0x18,0xac,0x00,0x0b,0x28,0x62,0x00,0x23,0x28,0xab,0x00, +0x1b,0x00,0xa9,0x00,0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00, +0xff,0xff,0xe4,0x31,0x12,0x18,0x00,0x00,0x10,0x40,0x00,0x00,0x00,0x00,0x00,0x00, +0x42,0x5c,0x00,0x08,0x18,0x00,0x67,0x00,0x2b,0x10,0xa7,0x00,0x0a,0x00,0x40,0x10, +0xff,0xff,0x02,0x34,0x10,0x00,0xb2,0x8f,0x0c,0x00,0xb1,0x8f,0x08,0x00,0xb0,0x8f, +0x21,0x10,0x80,0x00,0x21,0x18,0xa0,0x00,0x00,0x00,0xa4,0xaf,0x04,0x00,0xa5,0xaf, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x2b,0x10,0x47,0x00,0xd2,0x00,0x40,0x10, +0x00,0x01,0xe3,0x2c,0xff,0x00,0x02,0x3c,0x10,0x00,0x03,0x24,0xff,0xff,0x42,0x34, +0x2b,0x10,0x47,0x00,0x18,0x00,0x04,0x24,0x21,0x28,0x60,0x00,0x0b,0x28,0x82,0x00, +0x06,0x10,0xa8,0x00,0x02,0x80,0x03,0x3c,0xfc,0xb2,0x63,0x24,0x21,0x10,0x43,0x00, +0x00,0x00,0x44,0x90,0x20,0x00,0x02,0x24,0x21,0x20,0x85,0x00,0x23,0x30,0x44,0x00, +0xce,0x00,0xc0,0x14,0x23,0x38,0x46,0x00,0x2b,0x10,0x0a,0x01,0x04,0x00,0x40,0x14, +0x23,0x20,0xec,0x01,0x2b,0x10,0xec,0x01,0x05,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x2b,0x10,0xe4,0x01,0x23,0x18,0x48,0x01,0x23,0x50,0x62,0x00,0x21,0x78,0x80,0x00, +0x04,0x00,0x40,0x12,0x21,0xc0,0xe0,0x01,0x21,0xc8,0x40,0x01,0x00,0x00,0x58,0xae, +0x04,0x00,0x59,0xae,0x00,0x00,0xa2,0x8f,0x04,0x00,0xa3,0x8f,0x10,0x00,0xb2,0x8f, +0x0c,0x00,0xb1,0x8f,0x08,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27, +0x53,0x00,0xc0,0x10,0x01,0x00,0x02,0x24,0xff,0xff,0x02,0x34,0x2b,0x10,0x4c,0x00, +0x59,0x00,0x40,0x14,0xff,0x00,0x02,0x3c,0x00,0x01,0x83,0x2d,0x08,0x00,0x02,0x24, +0x21,0x28,0x00,0x00,0x0a,0x28,0x43,0x00,0x06,0x10,0xac,0x00,0x02,0x80,0x03,0x3c, +0xfc,0xb2,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x90,0x20,0x00,0x02,0x24, +0x21,0x20,0x85,0x00,0x23,0x30,0x44,0x00,0x5b,0x00,0xc0,0x14,0x00,0x00,0x00,0x00, +0x23,0x50,0x4c,0x01,0x02,0x4c,0x0c,0x00,0xff,0xff,0x8d,0x31,0x1b,0x00,0x49,0x01, +0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x02,0x24,0x0f,0x00, +0x12,0x18,0x00,0x00,0x10,0x28,0x00,0x00,0x00,0x14,0x05,0x00,0x25,0x28,0x44,0x00, +0x18,0x00,0x6d,0x00,0x12,0x58,0x00,0x00,0x2b,0x18,0xab,0x00,0x00,0x00,0x00,0x00, +0x1b,0x00,0x49,0x01,0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00, +0x08,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0x21,0x28,0xac,0x00,0x2b,0x10,0xac,0x00, +0x04,0x00,0x40,0x14,0x2b,0x10,0xab,0x00,0x00,0x00,0x42,0x38,0x21,0x18,0xac,0x00, +0x0b,0x28,0x62,0x00,0x23,0x28,0xab,0x00,0x1b,0x00,0xa9,0x00,0x02,0x00,0x20,0x15, +0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0xff,0xff,0xe4,0x31,0x12,0x18,0x00,0x00, +0x10,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x6d,0x00, +0x00,0x14,0x08,0x00,0x12,0x58,0x00,0x00,0x25,0x40,0x44,0x00,0x2b,0x18,0x0b,0x01, +0x1b,0x00,0xa9,0x00,0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00, +0x08,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0x21,0x40,0x0c,0x01,0x2b,0x10,0x0c,0x01, +0x04,0x00,0x40,0x14,0x2b,0x10,0x0b,0x01,0x21,0x18,0x0c,0x01,0x00,0x00,0x42,0x38, +0x0b,0x40,0x62,0x00,0xab,0xff,0x40,0x12,0x23,0x78,0x0b,0x01,0x06,0xc0,0xcf,0x00, +0x21,0xc8,0x00,0x00,0x00,0x00,0x58,0xae,0xff,0x5b,0x00,0x08,0x04,0x00,0x59,0xae, +0x1b,0x00,0x47,0x00,0x02,0x00,0xe0,0x14,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00, +0xff,0xff,0x02,0x34,0x12,0x60,0x00,0x00,0x2b,0x10,0x4c,0x00,0xab,0xff,0x40,0x10, +0x00,0x01,0x83,0x2d,0xff,0x00,0x02,0x3c,0x10,0x00,0x03,0x24,0xff,0xff,0x42,0x34, +0x2b,0x10,0x4c,0x00,0x18,0x00,0x04,0x24,0x21,0x28,0x60,0x00,0x0b,0x28,0x82,0x00, +0x02,0x80,0x03,0x3c,0x06,0x10,0xac,0x00,0xfc,0xb2,0x63,0x24,0x21,0x10,0x43,0x00, +0x00,0x00,0x44,0x90,0x20,0x00,0x02,0x24,0x21,0x20,0x85,0x00,0x23,0x30,0x44,0x00, +0xa7,0xff,0xc0,0x10,0x00,0x00,0x00,0x00,0x23,0x38,0x46,0x00,0x04,0x60,0xcc,0x00, +0x06,0x58,0xea,0x00,0x02,0x4c,0x0c,0x00,0x1b,0x00,0x69,0x01,0x02,0x00,0x20,0x15, +0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0xff,0xff,0x8d,0x31,0x06,0x18,0xef,0x00, +0x04,0x10,0xca,0x00,0x25,0x50,0x43,0x00,0x02,0x24,0x0a,0x00,0x12,0x28,0x00,0x00, +0x10,0x40,0x00,0x00,0x00,0x14,0x08,0x00,0x25,0x40,0x44,0x00,0x18,0x00,0xad,0x00, +0x12,0x28,0x00,0x00,0x2b,0x18,0x05,0x01,0x00,0x00,0x00,0x00,0x1b,0x00,0x69,0x01, +0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x05,0x00,0x60,0x10, +0x04,0x78,0xcf,0x00,0x21,0x40,0x0c,0x01,0x2b,0x10,0x0c,0x01,0x93,0x00,0x40,0x10, +0x2b,0x10,0x05,0x01,0x23,0x40,0x05,0x01,0x1b,0x00,0x09,0x01,0x02,0x00,0x20,0x15, +0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0xff,0xff,0x44,0x31,0x12,0x18,0x00,0x00, +0x10,0x58,0x00,0x00,0x00,0x14,0x0b,0x00,0x25,0x58,0x44,0x00,0x18,0x00,0x6d,0x00, +0x12,0x28,0x00,0x00,0x2b,0x18,0x65,0x01,0x00,0x00,0x00,0x00,0x1b,0x00,0x09,0x01, +0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x77,0xff,0x60,0x10, +0x23,0x50,0x65,0x01,0x21,0x58,0x6c,0x01,0x2b,0x10,0x6c,0x01,0x04,0x00,0x40,0x14, +0x2b,0x10,0x65,0x01,0x00,0x00,0x42,0x38,0x21,0x18,0x6c,0x01,0x0b,0x58,0x62,0x00, +0x1d,0x5c,0x00,0x08,0x23,0x50,0x65,0x01,0x08,0x00,0x02,0x24,0x21,0x28,0x00,0x00, +0x0a,0x28,0x43,0x00,0x02,0x80,0x03,0x3c,0x06,0x10,0xa8,0x00,0xfc,0xb2,0x63,0x24, +0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x90,0x20,0x00,0x02,0x24,0x21,0x20,0x85,0x00, +0x23,0x30,0x44,0x00,0x34,0xff,0xc0,0x10,0x23,0x38,0x46,0x00,0x06,0x10,0xec,0x00, +0x04,0x18,0xc8,0x00,0x25,0x40,0x62,0x00,0x06,0x58,0xea,0x00,0x02,0x6c,0x08,0x00, +0x1b,0x00,0x6d,0x01,0x02,0x00,0xa0,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00, +0xff,0xff,0x11,0x31,0x06,0x10,0xef,0x00,0x04,0x18,0xca,0x00,0x25,0x50,0x62,0x00, +0x02,0x24,0x0a,0x00,0x04,0x60,0xcc,0x00,0x12,0x80,0x00,0x00,0x10,0x48,0x00,0x00, +0x00,0x14,0x09,0x00,0x25,0x48,0x44,0x00,0x12,0x28,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x11,0x02,0x12,0x70,0x00,0x00,0x2b,0x18,0x2e,0x01, +0x00,0x00,0x00,0x00,0x1b,0x00,0x6d,0x01,0x02,0x00,0xa0,0x15,0x00,0x00,0x00,0x00, +0x0d,0x00,0x07,0x00,0x0a,0x00,0x60,0x10,0x04,0x78,0xcf,0x00,0x21,0x48,0x28,0x01, +0x2b,0x10,0x28,0x01,0x06,0x00,0x40,0x14,0xff,0xff,0xb0,0x24,0x2b,0x10,0x2e,0x01, +0x03,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0x10,0x26,0x21,0x48,0x28,0x01, +0x23,0x48,0x2e,0x01,0x1b,0x00,0x2d,0x01,0x02,0x00,0xa0,0x15,0x00,0x00,0x00,0x00, +0x0d,0x00,0x07,0x00,0xff,0xff,0x44,0x31,0x12,0x28,0x00,0x00,0x10,0x58,0x00,0x00, +0x00,0x14,0x0b,0x00,0x25,0x58,0x44,0x00,0x18,0x00,0xb1,0x00,0x12,0x70,0x00,0x00, +0x2b,0x18,0x6e,0x01,0x00,0x00,0x00,0x00,0x1b,0x00,0x2d,0x01,0x02,0x00,0xa0,0x15, +0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x0b,0x00,0x60,0x10,0x00,0x14,0x10,0x00, +0x21,0x58,0x68,0x01,0x2b,0x10,0x68,0x01,0x06,0x00,0x40,0x14,0xff,0xff,0xa5,0x24, +0x2b,0x10,0x6e,0x01,0x04,0x00,0x40,0x10,0x00,0x14,0x10,0x00,0xff,0xff,0xa5,0x24, +0x21,0x58,0x68,0x01,0x00,0x14,0x10,0x00,0x25,0x10,0x45,0x00,0x23,0x58,0x6e,0x01, +0x19,0x00,0x4c,0x00,0x10,0x28,0x00,0x00,0x2b,0x18,0x65,0x01,0x12,0x48,0x00,0x00, +0x05,0x00,0x60,0x14,0x23,0x20,0x2c,0x01,0x07,0x00,0xab,0x14,0x2b,0x10,0xe9,0x01, +0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x24,0x01,0x23,0x18,0xa8,0x00, +0x23,0x28,0x62,0x00,0x21,0x48,0x80,0x00,0xea,0xfe,0x40,0x12,0x23,0x18,0xe9,0x01, +0x23,0x20,0x65,0x01,0x2b,0x10,0xe3,0x01,0x23,0x50,0x82,0x00,0x04,0x28,0xea,0x00, +0x06,0x18,0xc3,0x00,0x25,0xc0,0xa3,0x00,0x06,0xc8,0xca,0x00,0x00,0x00,0x58,0xae, +0xff,0x5b,0x00,0x08,0x04,0x00,0x59,0xae,0x00,0x01,0xc3,0x2c,0x08,0x00,0x02,0x24, +0x21,0x30,0x00,0x00,0x99,0x5b,0x00,0x08,0x0a,0x30,0x43,0x00,0x00,0x00,0x42,0x38, +0x21,0x18,0x0c,0x01,0x93,0x5c,0x00,0x08,0x0b,0x40,0x62,0x00,0x25,0xb0,0x02,0x3c, +0x4d,0x00,0x44,0x34,0xff,0x00,0x03,0x3c,0xec,0x02,0x42,0x34,0x00,0x00,0x43,0xac, +0x00,0x00,0x80,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xc4,0x74,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x7f,0x00,0x02,0x3c,0x0d,0xb8,0x46,0x34, +0x80,0x00,0x03,0x3c,0x25,0x30,0xc3,0x00,0x00,0x04,0x02,0x3c,0x25,0x30,0xc2,0x00, +0x00,0x08,0x03,0x3c,0x25,0x30,0xc3,0x00,0x02,0x80,0x04,0x3c,0x01,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x78,0x1b,0x84,0x24,0x41,0xb0,0x05,0x3c,0xe0,0x74,0x63,0x24, +0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x00,0xa6,0xac,0x10,0x0b,0x86,0xac, +0x08,0x0b,0x86,0xac,0x08,0x00,0xa5,0x34,0x86,0x00,0x06,0x24,0x00,0x00,0xa6,0xa4, +0x14,0x0b,0x86,0xa4,0x0c,0x0b,0x80,0xac,0x16,0x0b,0x80,0xa4,0x08,0x00,0xe0,0x03, +0x18,0x0b,0x86,0xa4,0x53,0x5d,0x00,0x08,0x00,0x00,0x00,0x00,0x42,0xb0,0x02,0x3c, +0xa0,0xff,0x03,0x24,0x01,0x00,0x42,0x34,0xe8,0xff,0xbd,0x27,0x21,0x20,0x00,0x00, +0x01,0x00,0x05,0x24,0x00,0x01,0x06,0x24,0x00,0x00,0x43,0xa0,0x10,0x00,0xbf,0xaf, +0x71,0x14,0x00,0x0c,0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f,0x03,0x00,0x04,0x24, +0x01,0x00,0x05,0x24,0x40,0x1f,0x06,0x24,0x71,0x14,0x00,0x08,0x18,0x00,0xbd,0x27, +0x25,0xb0,0x03,0x3c,0x01,0x80,0x02,0x3c,0xe0,0xff,0xbd,0x27,0x18,0x03,0x64,0x34, +0x98,0x75,0x42,0x24,0x00,0x00,0x82,0xac,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf, +0x18,0x00,0xbf,0xaf,0xb6,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x02,0x80,0x10,0x3c, +0x78,0x1b,0x10,0x26,0xe3,0x0a,0x02,0xa2,0x34,0x61,0x00,0x0c,0xee,0x23,0x00,0xa2, +0xff,0xff,0x02,0x34,0x21,0x88,0x00,0x02,0xf8,0x23,0x02,0xae,0xf0,0x23,0x00,0xa6, +0xf2,0x23,0x00,0xa6,0xf4,0x23,0x02,0xae,0x21,0x28,0x00,0x00,0x21,0x20,0x00,0x02, +0x04,0x00,0xa2,0x24,0x01,0x00,0xa5,0x24,0x20,0x00,0xa3,0x28,0xee,0x0c,0x82,0xa4, +0xdc,0x0c,0x80,0xa4,0xde,0x0c,0x80,0xa4,0xe0,0x0c,0x80,0xa4,0xe2,0x0c,0x80,0xa4, +0xe4,0x0c,0x80,0xa4,0xe6,0x0c,0x80,0xa4,0xe8,0x0c,0x80,0xa4,0xea,0x0c,0x80,0xa4, +0xec,0x0c,0x80,0xa4,0xf0,0x0c,0x80,0xa0,0xf1,0xff,0x60,0x14,0x24,0x00,0x84,0x24, +0x25,0xb0,0x02,0x3c,0x10,0x00,0x03,0x24,0xb0,0x03,0x42,0x34,0x02,0x80,0x04,0x3c, +0xa0,0x1e,0x84,0x24,0x00,0x00,0x43,0xac,0x21,0x28,0x00,0x00,0x3e,0x46,0x00,0x0c, +0x04,0x00,0x06,0x24,0x11,0x62,0x00,0x0c,0x00,0x00,0x00,0x00,0x84,0x62,0x00,0x0c, +0xec,0x25,0x20,0xae,0xe6,0x63,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c, +0x56,0x43,0x64,0x90,0x92,0x00,0x02,0x24,0x03,0x00,0x82,0x10,0x00,0x00,0x00,0x00, +0x5c,0x64,0x00,0x0c,0x00,0x00,0x00,0x00,0x42,0x64,0x00,0x0c,0x00,0x00,0x00,0x00, +0xbd,0x62,0x00,0x0c,0x00,0x00,0x00,0x00,0xc9,0x64,0x00,0x0c,0x00,0x00,0x00,0x00, +0x50,0x24,0x20,0xa6,0xaf,0x64,0x00,0x0c,0x52,0x24,0x20,0xa6,0xf3,0x64,0x00,0x0c, +0x00,0x00,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x02,0x80,0x05,0x3c,0x02,0x80,0x06,0x3c,0x02,0x80,0x07,0x3c,0x68,0x41,0xa2,0x24, +0x70,0x41,0xc3,0x24,0x78,0x41,0xe4,0x24,0x20,0x00,0xbd,0x27,0x04,0x00,0x42,0xac, +0x68,0x41,0xa2,0xac,0x04,0x00,0x63,0xac,0x70,0x41,0xc3,0xac,0x78,0x41,0xe4,0xac, +0x08,0x00,0xe0,0x03,0x04,0x00,0x84,0xac,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0xe8,0xff,0xbd,0x27,0x00,0x77,0x63,0x24,0x18,0x03,0x42,0x34,0x14,0x00,0xbf,0xaf, +0x10,0x00,0xb0,0xaf,0x00,0x00,0x43,0xac,0x21,0x20,0x00,0x00,0x01,0x00,0x82,0x24, +0xff,0xff,0x44,0x30,0x64,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24, +0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x52,0x43,0x48,0x90,0x50,0x43,0x65,0x94, +0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x53,0x43,0x46,0x90,0x60,0x43,0x67,0x90, +0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x6b,0x43,0x49,0x90,0x6d,0x43,0x6a,0x90, +0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x70,0x43,0x4b,0x90,0x72,0x43,0x6c,0x90, +0x02,0x80,0x02,0x3c,0x07,0x00,0x03,0x24,0x25,0xb0,0x04,0x3c,0x5d,0x43,0x43,0xa0, +0xb0,0x03,0x84,0x34,0x02,0x80,0x02,0x3c,0x00,0x00,0x85,0xac,0x5e,0x43,0x40,0xa0, +0x02,0x80,0x02,0x3c,0x00,0x00,0x86,0xac,0x5f,0x43,0x40,0xa0,0x02,0x80,0x02,0x3c, +0x00,0x00,0x87,0xac,0x02,0x80,0x03,0x3c,0x80,0x43,0x40,0xa0,0x02,0x80,0x10,0x3c, +0x02,0x80,0x02,0x3c,0x78,0x1b,0x0d,0x26,0x7e,0x43,0x60,0xa4,0x7c,0x43,0x40,0xa4, +0x01,0x00,0x03,0x24,0xfd,0xff,0x02,0x24,0xe0,0x0a,0xa3,0xa1,0xe2,0x0a,0xa2,0xa1, +0xff,0x07,0x03,0x24,0x00,0x78,0x02,0x24,0xe6,0x0a,0xa3,0xa5,0xe4,0x0a,0xa2,0xa5, +0xff,0xff,0x03,0x24,0x02,0x80,0x02,0x3c,0x00,0x00,0x88,0xac,0x0f,0x00,0x0e,0x31, +0x00,0x00,0x89,0xac,0x00,0x00,0x8a,0xac,0x00,0x00,0x8b,0xac,0x00,0x00,0x8c,0xac, +0x91,0x43,0x43,0xa0,0x02,0x00,0x02,0x24,0xe8,0x0a,0xa0,0xa1,0x31,0x00,0xc2,0x11, +0x82,0x0b,0xa0,0xa1,0x00,0x80,0x02,0x3c,0x15,0x15,0x03,0x3c,0x02,0xbc,0x42,0x34, +0x07,0x07,0x63,0x34,0x74,0x0b,0xa2,0xad,0x6c,0x0b,0xa3,0xad,0x02,0x02,0x02,0x3c, +0x70,0x0b,0xa2,0xad,0x02,0x80,0x02,0x3c,0x25,0xb0,0x04,0x3c,0x9c,0x43,0x40,0xa4, +0x0a,0x00,0x83,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x30, +0x12,0x00,0x40,0x10,0x4c,0x87,0x02,0x3c,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00, +0x10,0x00,0x42,0x30,0x38,0x00,0x40,0x14,0x21,0x20,0x00,0x00,0x08,0x00,0x82,0x24, +0xff,0xff,0x44,0x30,0x80,0x00,0x83,0x2c,0xfc,0xff,0x60,0x14,0x78,0x1b,0x03,0x26, +0x01,0x00,0x02,0x24,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x05,0x00,0x04,0x24, +0x8b,0x0b,0x62,0xa0,0x93,0x12,0x00,0x08,0x18,0x00,0xbd,0x27,0x54,0x00,0x85,0x34, +0x00,0xe0,0x42,0x34,0x50,0x00,0x84,0x34,0x12,0x01,0x03,0x24,0x00,0x00,0x82,0xac, +0x00,0x00,0xa3,0xac,0x01,0x00,0x02,0x24,0x78,0x1b,0x03,0x26,0x14,0x00,0xbf,0x8f, +0x10,0x00,0xb0,0x8f,0x05,0x00,0x04,0x24,0x8b,0x0b,0x62,0xa0,0x93,0x12,0x00,0x08, +0x18,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0x57,0x43,0x44,0x90,0x06,0x00,0x03,0x24, +0x25,0x00,0x83,0x10,0x0b,0x00,0x02,0x24,0x10,0x00,0x82,0x10,0x00,0x80,0x02,0x3c, +0x02,0x80,0x02,0x3c,0x6a,0x43,0x43,0x90,0x00,0x00,0x00,0x00,0x2c,0x00,0x60,0x10, +0x00,0xe0,0x02,0x3c,0x04,0xe0,0x02,0x3c,0x78,0x1b,0x04,0x26,0x00,0x8e,0x42,0x34, +0x00,0x15,0x03,0x3c,0x74,0x0b,0x82,0xac,0x00,0x15,0x63,0x34,0x00,0x42,0x02,0x24, +0x6c,0x0b,0x83,0xac,0x0f,0x5e,0x00,0x08,0x70,0x0b,0x82,0xac,0x00,0xbc,0x42,0x34, +0x15,0x15,0x03,0x3c,0x74,0x0b,0xa2,0xad,0x07,0x07,0x63,0x34,0x03,0x03,0x02,0x3c, +0x0e,0x5e,0x00,0x08,0x6c,0x0b,0xa3,0xad,0x02,0x80,0x06,0x3c,0x00,0xb4,0xc6,0x24, +0xf5,0x13,0x00,0x0c,0x80,0x00,0x05,0x24,0x78,0x1b,0x03,0x26,0x01,0x00,0x02,0x24, +0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x05,0x00,0x04,0x24,0x8b,0x0b,0x62,0xa0, +0x93,0x12,0x00,0x08,0x18,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0x6a,0x43,0x43,0x90, +0x00,0x00,0x00,0x00,0x13,0x00,0x60,0x10,0x1c,0x1c,0x03,0x3c,0x04,0xc0,0x02,0x3c, +0x00,0xb8,0x42,0x34,0x74,0x0b,0xa2,0xad,0x00,0x15,0x03,0x3c,0x02,0x02,0x02,0x3c, +0x00,0x07,0x63,0x34,0x00,0x22,0x42,0x34,0x0e,0x5e,0x00,0x08,0x6c,0x0b,0xa3,0xad, +0x78,0x1b,0x04,0x26,0x00,0xb2,0x42,0x34,0x00,0x1c,0x03,0x3c,0x74,0x0b,0x82,0xac, +0x00,0x1c,0x63,0x34,0x00,0x04,0x02,0x24,0x6c,0x0b,0x83,0xac,0x0f,0x5e,0x00,0x08, +0x70,0x0b,0x82,0xac,0x00,0xc0,0x02,0x3c,0x00,0xb2,0x42,0x34,0x74,0x0b,0xa2,0xad, +0x07,0x07,0x63,0x34,0x00,0x04,0x02,0x24,0x0e,0x5e,0x00,0x08,0x6c,0x0b,0xa3,0xad, +0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x01,0x80,0x02,0x3c,0x25,0xb0,0x10,0x3c, +0x18,0x03,0x03,0x36,0xf8,0x79,0x42,0x24,0x00,0x00,0x62,0xac,0x14,0x00,0xbf,0xaf, +0xc0,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,0xff,0x5e,0x00,0x0c,0x00,0x00,0x00,0x00, +0x25,0x61,0x00,0x0c,0x00,0x00,0x00,0x00,0x29,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00, +0x3a,0x41,0x00,0x0c,0x00,0x00,0x00,0x00,0x66,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00, +0x44,0x00,0x03,0x36,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x34, +0x00,0x00,0x62,0xa4,0x31,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,0x55,0x5d,0x00,0x0c, +0x00,0x00,0x00,0x00,0xf1,0x60,0x00,0x0c,0x00,0x00,0x00,0x00,0xaf,0x60,0x00,0x0c, +0x00,0x00,0x00,0x00,0x00,0x80,0x04,0x3c,0xac,0x37,0x84,0x24,0x0e,0x61,0x00,0x0c, +0x01,0x00,0x05,0x24,0x00,0x80,0x04,0x3c,0xcc,0x41,0x84,0x24,0x0e,0x61,0x00,0x0c, +0x02,0x00,0x05,0x24,0x01,0x80,0x04,0x3c,0xa4,0x20,0x84,0x24,0x0e,0x61,0x00,0x0c, +0x04,0x00,0x05,0x24,0x04,0x50,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x80,0x04,0x3c, +0x08,0x53,0x84,0x24,0x0e,0x61,0x00,0x0c,0x03,0x00,0x05,0x24,0x02,0x80,0x02,0x3c, +0x60,0x43,0x43,0x90,0x43,0x00,0x04,0x36,0x2a,0x00,0x60,0x10,0xd8,0x00,0x10,0x36, +0x07,0x00,0x02,0x24,0x2c,0x00,0x62,0x10,0x25,0xb0,0x04,0x3c,0x43,0x00,0x85,0x34, +0x10,0x02,0x86,0x34,0x03,0x00,0x02,0x24,0x10,0x00,0x03,0x24,0x00,0x00,0xa2,0xa0, +0xd8,0x00,0x84,0x34,0x00,0x00,0xc3,0xa0,0x00,0x00,0x82,0x90,0x80,0xff,0x03,0x24, +0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xa0,0x32,0x61,0x00,0x0c,0x00,0x00,0x00,0x00, +0x42,0xb0,0x03,0x3c,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x34, +0x00,0x00,0x62,0xa0,0x38,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c, +0x44,0x00,0x63,0x34,0x00,0x00,0x62,0x94,0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24, +0xc0,0x00,0x42,0x34,0x00,0x00,0x62,0xa4,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00, +0x2d,0x28,0x00,0x0c,0x21,0x38,0x00,0x00,0x53,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00, +0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0x00,0x00,0x80,0xa0,0x00,0x00,0x03,0x92,0x80,0xff,0x02,0x24, +0x25,0x18,0x62,0x00,0x00,0x00,0x03,0xa2,0x32,0x61,0x00,0x0c,0x00,0x00,0x00,0x00, +0x42,0xb0,0x03,0x3c,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x34, +0x00,0x00,0x62,0xa0,0x38,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c, +0x44,0x00,0x63,0x34,0x00,0x00,0x62,0x94,0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24, +0xc0,0x00,0x42,0x34,0x00,0x00,0x62,0xa4,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00, +0x2d,0x28,0x00,0x0c,0x21,0x38,0x00,0x00,0x53,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00, +0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0xb0,0xff,0xbd,0x27,0x02,0x80,0x03,0x3c,0x4c,0x00,0xbf,0xaf, +0x48,0x00,0xbe,0xaf,0x3c,0x00,0xb5,0xaf,0x38,0x00,0xb4,0xaf,0x34,0x00,0xb3,0xaf, +0x30,0x00,0xb2,0xaf,0x2c,0x00,0xb1,0xaf,0x28,0x00,0xb0,0xaf,0x44,0x00,0xb7,0xaf, +0x40,0x00,0xb6,0xaf,0x78,0x1b,0x62,0x24,0xe2,0x0a,0x43,0x90,0xe4,0x0a,0x45,0x94, +0xe6,0x0a,0x46,0x94,0x1c,0x00,0xa3,0xa3,0x6c,0x0b,0x43,0x8c,0x24,0xb0,0x04,0x3c, +0x21,0xb0,0x07,0x3c,0x10,0x00,0xa3,0xaf,0x70,0x0b,0x43,0x8c,0x25,0xb0,0x1e,0x3c, +0x01,0x00,0x88,0x34,0x14,0x00,0xa3,0xaf,0x74,0x0b,0x42,0x8c,0x21,0x38,0xa7,0x00, +0xff,0x1f,0x03,0x3c,0x18,0x00,0xa2,0xaf,0x20,0xb0,0x02,0x3c,0xff,0xff,0x42,0x34, +0x21,0x28,0xa2,0x00,0x4c,0x81,0x02,0x3c,0xff,0xff,0x63,0x34,0x21,0x40,0xc8,0x00, +0x58,0x00,0xc9,0x37,0x21,0x30,0xc4,0x00,0x00,0xe0,0x42,0x34,0x00,0x00,0x22,0xad, +0xff,0xff,0x04,0x24,0x24,0x40,0x03,0x01,0x24,0x28,0xa3,0x00,0x24,0x38,0xe3,0x00, +0x24,0x30,0xc3,0x00,0x5c,0x00,0xca,0x37,0x60,0x00,0xcb,0x37,0x64,0x00,0xcc,0x37, +0x8a,0x00,0xcd,0x37,0x96,0x01,0x03,0x24,0x28,0x28,0x02,0x24,0x00,0x00,0x43,0xad, +0x89,0x00,0xce,0x37,0x00,0x00,0x64,0xad,0x8c,0x00,0xcf,0x37,0x00,0x00,0x84,0xad, +0x09,0x00,0x03,0x24,0x00,0x00,0xa2,0xa5,0x0a,0x0a,0x02,0x24,0x00,0x00,0xc3,0xa1, +0x00,0x00,0xe2,0xa5,0x25,0xb0,0x02,0x3c,0x0e,0x0e,0x03,0x24,0x8e,0x00,0x42,0x34, +0x00,0x00,0x43,0xa4,0x90,0x00,0xd1,0x37,0x13,0x00,0x02,0x24,0x00,0x00,0x22,0xa2, +0x40,0x00,0x03,0x24,0x3a,0x01,0x02,0x24,0x91,0x00,0xd2,0x37,0x92,0x00,0xd3,0x37, +0x00,0x00,0x43,0xa2,0x00,0x00,0x62,0xa6,0x25,0xb0,0x02,0x3c,0x21,0x00,0x03,0x24, +0xb5,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x10,0x00,0xa3,0x8f,0xa0,0x00,0xd5,0x37, +0x25,0xb0,0x02,0x3c,0x00,0x00,0xa3,0xae,0x14,0x00,0xa3,0x8f,0xa4,0x00,0x42,0x34, +0xb0,0x00,0xdf,0x37,0x00,0x00,0x43,0xac,0x18,0x00,0xa3,0x8f,0x25,0xb0,0x02,0x3c, +0xa8,0x00,0x42,0x34,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0x25,0xb0,0x03,0x3c, +0xac,0x00,0x42,0x34,0xf8,0x00,0x63,0x34,0x00,0x00,0x45,0xac,0x00,0x00,0x67,0xac, +0x25,0xb0,0x02,0x3c,0x25,0xb0,0x03,0x3c,0x08,0x01,0x42,0x34,0xd8,0x00,0x63,0x34, +0x00,0x00,0xe6,0xaf,0x00,0x00,0x48,0xac,0x00,0x00,0x60,0xa0,0x1c,0x00,0xa3,0x93, +0x25,0xb0,0x02,0x3c,0xb4,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c, +0x04,0x00,0x03,0x24,0xb6,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c, +0xb9,0x00,0x42,0x34,0x25,0xb0,0x03,0x3c,0x00,0x00,0x44,0xa0,0xba,0x00,0x63,0x34, +0x0f,0x00,0x02,0x24,0x00,0x00,0x62,0xa4,0x25,0xb0,0x02,0x3c,0x1a,0x01,0x42,0x34, +0x16,0x01,0xd4,0x37,0x18,0x01,0xd0,0x37,0x25,0xb0,0x03,0x3c,0x00,0x00,0x80,0xa6, +0xdc,0x00,0x63,0x34,0x00,0x00,0x00,0xa6,0x00,0x00,0x40,0xa4,0xff,0xcf,0x02,0x24, +0x00,0x00,0x62,0xac,0x02,0x80,0x02,0x3c,0x56,0x43,0x42,0x90,0xd0,0x01,0xc4,0x37, +0x5e,0x00,0x03,0x3c,0x20,0x00,0xa2,0xaf,0x2f,0x00,0x02,0x3c,0x32,0x32,0x42,0x34, +0x00,0x00,0x82,0xac,0x08,0x00,0x02,0x3c,0x32,0x43,0x63,0x34,0x30,0xa5,0x42,0x34, +0xd4,0x01,0xc5,0x37,0xd8,0x01,0xc6,0x37,0x00,0x00,0xa3,0xac,0xdc,0x01,0xc7,0x37, +0x00,0x00,0xc2,0xac,0x49,0xa5,0x03,0x34,0x1a,0x06,0x02,0x24,0xe0,0x01,0xc8,0x37, +0x00,0x00,0xe3,0xac,0xf4,0x01,0xc9,0x37,0x00,0x00,0x02,0xa5,0x07,0x07,0x03,0x24, +0xc2,0x00,0x02,0x3c,0x00,0x00,0x23,0xa5,0x51,0x10,0x42,0x34,0x26,0x00,0x03,0x24, +0xf8,0x01,0xca,0x37,0x00,0x02,0xcb,0x37,0x00,0x00,0x42,0xad,0x03,0x02,0xcc,0x37, +0x00,0x00,0x63,0xa5,0x0c,0x00,0x02,0x24,0x04,0x00,0x03,0x24,0x36,0x02,0xcd,0x37, +0x00,0x00,0x83,0xa1,0x34,0x02,0xce,0x37,0x00,0x00,0xa2,0xa1,0xc0,0x01,0x03,0x24, +0x03,0x00,0x02,0x24,0x37,0x02,0xcf,0x37,0x00,0x00,0xc3,0xa5,0x00,0x00,0xe2,0xa1, +0x20,0x00,0xa2,0x8f,0x22,0x00,0x03,0x24,0xd2,0x00,0x43,0x10,0x1b,0x1b,0x02,0x3c, +0x13,0x13,0x02,0x3c,0x13,0x13,0x42,0x34,0x60,0x01,0xc3,0x37,0x64,0x01,0xc4,0x37, +0x68,0x01,0xc5,0x37,0x7c,0x01,0xca,0x37,0x6c,0x01,0xc6,0x37,0x70,0x01,0xc7,0x37, +0x74,0x01,0xc8,0x37,0x78,0x01,0xc9,0x37,0x00,0x00,0x62,0xac,0x00,0x00,0x82,0xac, +0x02,0x80,0x03,0x3c,0x00,0x00,0xa2,0xac,0x00,0x00,0xc2,0xac,0x00,0x00,0xe2,0xac, +0x00,0x00,0x02,0xad,0x00,0x00,0x22,0xad,0x00,0x00,0x42,0xad,0x56,0x43,0x65,0x90, +0x25,0xb0,0x0c,0x3c,0x01,0x70,0x03,0x3c,0x80,0x01,0x82,0x35,0x08,0x5f,0x63,0x34, +0x22,0x00,0x04,0x24,0x00,0x00,0x43,0xac,0xb1,0x00,0xa4,0x10,0x0f,0x1f,0x02,0x3c, +0x92,0x00,0x02,0x24,0xae,0x00,0xa2,0x10,0x0f,0x1f,0x02,0x3c,0x0f,0x10,0x02,0x3c, +0x00,0xf0,0x4f,0x34,0xf7,0x01,0x91,0x35,0x15,0xf0,0x4d,0x34,0x77,0x00,0x0e,0x24, +0x84,0x01,0x87,0x35,0x88,0x01,0x88,0x35,0x10,0xf0,0x44,0x34,0x8c,0x01,0x85,0x35, +0x05,0xf0,0x42,0x34,0x00,0x00,0xed,0xac,0x90,0x01,0x83,0x35,0x00,0x00,0x04,0xad, +0x94,0x01,0x86,0x35,0x00,0x00,0xa2,0xac,0xf5,0x0f,0x02,0x24,0x00,0x00,0x6f,0xac, +0x25,0xb0,0x05,0x3c,0x00,0x00,0xc2,0xac,0x98,0x01,0x89,0x35,0x9c,0x01,0x8a,0x35, +0xf0,0x0f,0x03,0x24,0x0d,0x00,0x02,0x24,0x00,0x00,0x23,0xad,0xa0,0x01,0x8b,0x35, +0x00,0x00,0x42,0xad,0xa7,0x01,0xb7,0x34,0xf6,0x01,0x8c,0x35,0xff,0xff,0x02,0x24, +0x00,0x00,0x6d,0xad,0x03,0x04,0x04,0x3c,0x00,0x00,0x8e,0xa1,0x07,0x08,0x03,0x3c, +0x00,0x00,0x2e,0xa2,0x00,0x00,0xe2,0xa2,0x25,0xb0,0x02,0x3c,0x01,0x02,0x84,0x34, +0x05,0x06,0x63,0x34,0xa8,0x01,0xb6,0x34,0xff,0xff,0x09,0x24,0xac,0x01,0xaf,0x34, +0xb4,0x01,0xb1,0x34,0xb8,0x01,0xb2,0x34,0xbc,0x01,0xb3,0x34,0xb0,0x01,0x42,0x34, +0x00,0x00,0xc9,0xae,0x00,0x00,0xe9,0xad,0x00,0x00,0x44,0xac,0x00,0x00,0x23,0xae, +0x00,0x00,0x44,0xae,0x00,0x00,0x63,0xae,0x25,0xb0,0x03,0x3c,0x0c,0x00,0x06,0x24, +0xc0,0x01,0x63,0x34,0x25,0xb0,0x02,0x3c,0x00,0x00,0x66,0xa0,0xc1,0x01,0xb5,0x34, +0xc2,0x01,0x42,0x34,0x25,0xb0,0x03,0x3c,0x00,0x00,0xa6,0xa2,0x0d,0x00,0x08,0x24, +0x00,0x00,0x46,0xa0,0xc4,0x01,0xab,0x34,0xc5,0x01,0xac,0x34,0x0e,0x00,0x07,0x24, +0xc6,0x01,0xaa,0x34,0xc7,0x01,0xad,0x34,0xc3,0x01,0x63,0x34,0x0f,0x00,0x02,0x24, +0x00,0x00,0x68,0xa0,0x00,0x00,0x68,0xa1,0x00,0x00,0x87,0xa1,0x00,0x00,0x47,0xa1, +0x00,0x00,0xa2,0xa1,0x57,0x01,0x02,0x3c,0x48,0x00,0xbf,0x34,0x46,0x00,0xae,0x34, +0x0e,0xe2,0x42,0x34,0x00,0x00,0xc0,0xa5,0x4c,0x00,0xbe,0x34,0x00,0x00,0xe2,0xaf, +0x4d,0x00,0xb9,0x34,0x80,0xff,0x02,0x24,0x00,0x00,0xc0,0xa3,0x00,0x00,0x22,0xa3, +0x25,0xb0,0x02,0x3c,0xbc,0x00,0x03,0x24,0x40,0x00,0x42,0x34,0x00,0x00,0x43,0xa4, +0x25,0xb0,0x03,0x3c,0x64,0x03,0xb8,0x34,0xfc,0x37,0x02,0x24,0x40,0x00,0x63,0x34, +0x00,0x00,0x00,0xa3,0x00,0x00,0x62,0xa4,0x02,0x80,0x02,0x3c,0xd8,0x00,0xaa,0x34, +0x78,0x1b,0x43,0x24,0xe2,0x0a,0x64,0x90,0x00,0x00,0x47,0x91,0x2a,0xb0,0x06,0x3c, +0xa0,0xff,0x02,0x24,0x25,0x38,0xe2,0x00,0x34,0x00,0xc9,0x34,0x01,0x00,0x83,0x24, +0x00,0x00,0x47,0xa1,0x26,0xb0,0x08,0x3c,0x00,0x00,0x23,0xa1,0x30,0x00,0xce,0x34, +0x20,0x20,0x02,0x24,0x38,0x00,0xc6,0x34,0x40,0x00,0x03,0x24,0x00,0x00,0xc2,0xa4, +0x79,0x00,0x0b,0x35,0x00,0x00,0xc3,0xa1,0x94,0x00,0xac,0x34,0x16,0x00,0x02,0x24, +0x64,0x00,0x03,0x24,0x00,0x00,0x62,0xa1,0x7c,0x00,0x15,0x35,0x00,0x00,0x83,0xa5, +0x98,0x00,0xad,0x34,0x7a,0x00,0x08,0x35,0x22,0x00,0x02,0x24,0x04,0x00,0x03,0x24, +0x00,0x00,0xa2,0xa5,0x9c,0x00,0xaf,0x34,0x00,0x00,0x03,0xa1,0x20,0x0c,0x02,0x24, +0x0a,0x00,0x03,0x24,0x00,0x00,0xa2,0xa6,0x00,0x00,0xe3,0xa1,0x25,0xb0,0x03,0x3c, +0xff,0x03,0x02,0x24,0x9a,0x00,0x63,0x34,0x00,0x00,0x62,0xa4,0x96,0x00,0xb1,0x34, +0x02,0x00,0x03,0x24,0x00,0x00,0x23,0xa6,0xb7,0x00,0xb2,0x34,0x89,0x00,0xb3,0x34, +0x20,0x00,0x02,0x24,0x09,0x00,0x03,0x24,0x00,0x00,0x42,0xa2,0x44,0x00,0xa5,0x34, +0x00,0x00,0x63,0xa2,0x00,0x00,0xa2,0x94,0xff,0xfd,0x03,0x24,0x04,0x02,0x06,0x24, +0x24,0x10,0x43,0x00,0x00,0x00,0xa2,0xa4,0x00,0x00,0xa3,0x94,0x29,0xb0,0x02,0x3c, +0x40,0x00,0x42,0x34,0x00,0x02,0x63,0x34,0x00,0x00,0xa3,0xa4,0xff,0x00,0x84,0x30, +0x00,0x00,0x46,0xa4,0xea,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x4c,0x00,0xbf,0x8f, +0x48,0x00,0xbe,0x8f,0x44,0x00,0xb7,0x8f,0x40,0x00,0xb6,0x8f,0x3c,0x00,0xb5,0x8f, +0x38,0x00,0xb4,0x8f,0x34,0x00,0xb3,0x8f,0x30,0x00,0xb2,0x8f,0x2c,0x00,0xb1,0x8f, +0x28,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x50,0x00,0xbd,0x27, +0x00,0xf0,0x4f,0x34,0xf7,0x01,0x91,0x35,0x15,0xf0,0x4d,0x34,0xd2,0x5f,0x00,0x08, +0xff,0xff,0x0e,0x24,0xb0,0x5f,0x00,0x08,0x1b,0x1b,0x42,0x34,0x25,0xb0,0x03,0x3c, +0x25,0xb0,0x08,0x3c,0xfc,0x37,0x02,0x24,0x40,0x00,0x63,0x34,0x02,0x80,0x04,0x3c, +0x00,0x00,0x62,0xa4,0x34,0x9b,0x84,0x24,0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35, +0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00, +0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30,0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac,0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24, +0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c, +0x02,0x80,0x02,0x3c,0x2c,0x95,0x44,0x24,0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35, +0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00, +0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30,0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac,0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24, +0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x02,0x80,0x05,0x3c,0xb0,0x83,0x42,0x24, +0x02,0x80,0x03,0x3c,0xa4,0x43,0xa2,0xac,0x00,0x80,0x02,0x3c,0x44,0x44,0x60,0xac, +0xa4,0x43,0xa4,0x24,0x02,0x80,0x03,0x3c,0x8c,0x0a,0x42,0x24,0x48,0x44,0x60,0xa4, +0x08,0x00,0x82,0xac,0x02,0x80,0x03,0x3c,0x00,0x80,0x02,0x3c,0x4a,0x44,0x60,0xa4, +0x02,0x80,0x06,0x3c,0x24,0x10,0x42,0x24,0x00,0x80,0x03,0x3c,0x4c,0x44,0xc7,0x24, +0x14,0x00,0x82,0xac,0x68,0x0c,0x63,0x24,0x02,0x80,0x02,0x3c,0x4c,0x44,0xc0,0xac, +0x10,0x00,0x83,0xac,0x04,0x00,0xe0,0xac,0x02,0x80,0x03,0x3c,0x54,0x44,0x40,0xa0, +0x02,0x80,0x02,0x3c,0x58,0x44,0x60,0xac,0x5c,0x44,0x40,0xac,0x01,0x80,0x02,0x3c, +0x00,0x80,0x03,0x3c,0xd8,0x87,0x42,0x24,0x40,0x10,0x63,0x24,0x7c,0x00,0x82,0xac, +0x1c,0x00,0x83,0xac,0x00,0x80,0x02,0x3c,0x00,0x80,0x03,0x3c,0xd8,0x13,0x42,0x24, +0xd0,0x17,0x63,0x24,0x20,0x00,0x82,0xac,0x24,0x00,0x83,0xac,0x00,0x80,0x02,0x3c, +0x00,0x80,0x03,0x3c,0xc4,0x1b,0x42,0x24,0xf8,0x29,0x63,0x24,0x28,0x00,0x82,0xac, +0x2c,0x00,0x83,0xac,0x00,0x80,0x02,0x3c,0x00,0x80,0x03,0x3c,0x14,0x20,0x42,0x24, +0x00,0x22,0x63,0x24,0x30,0x00,0x82,0xac,0x3c,0x00,0x83,0xac,0x00,0x80,0x02,0x3c, +0x00,0x80,0x03,0x3c,0x68,0x04,0x42,0x24,0xb8,0x1f,0x63,0x24,0x50,0x00,0x82,0xac, +0x08,0x00,0xe0,0x03,0x40,0x00,0x83,0xac,0x25,0xb0,0x02,0x3c,0x08,0x00,0x42,0x34, +0x00,0x00,0x43,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x0e,0x3c, +0x02,0x80,0x08,0x3c,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0xf8,0x03,0x4d,0x24, +0x00,0x18,0x6c,0x24,0x01,0x00,0x07,0x24,0x00,0x00,0xcb,0x25,0xff,0xff,0x0a,0x24, +0x00,0x04,0x09,0x25,0x80,0x1a,0x07,0x00,0x21,0x10,0x6b,0x00,0x00,0x00,0x42,0xac, +0x90,0x00,0x4a,0xac,0x00,0x04,0x04,0x8d,0x01,0x00,0xe7,0x24,0x08,0x00,0x45,0x24, +0x21,0x18,0x6d,0x00,0x06,0x00,0xe6,0x28,0x04,0x00,0x82,0xac,0x00,0x00,0x44,0xac, +0x04,0x00,0x49,0xac,0x00,0x04,0x02,0xad,0x8c,0x00,0x40,0xac,0x6c,0x00,0xa3,0xac, +0xf0,0xff,0xc0,0x14,0x68,0x00,0xac,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0xc9,0xad, +0x06,0x00,0xa2,0x2c,0x13,0x00,0x40,0x10,0xff,0xff,0x07,0x24,0x02,0x80,0x02,0x3c, +0x80,0x1a,0x05,0x00,0x00,0x00,0x42,0x24,0x0e,0x00,0xa0,0x10,0x21,0x30,0x62,0x00, +0x90,0x00,0xc3,0x8c,0xff,0xff,0x02,0x24,0x0a,0x00,0x62,0x14,0x00,0x00,0x00,0x00, +0x8c,0x00,0xc2,0x8c,0x00,0x00,0x00,0x00,0x06,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x01,0x00,0x02,0x24,0x88,0x00,0xc4,0xac,0x8c,0x00,0xc2,0xac,0x90,0x00,0xc5,0xac, +0x21,0x38,0xa0,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00,0x02,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,0x94,0x84,0x63,0x24,0xe8,0xff,0xbd,0x27, +0x00,0x00,0x43,0xac,0x10,0x00,0xbf,0xaf,0x95,0x42,0x00,0x0c,0x21,0x20,0x00,0x00, +0x10,0x00,0xbf,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x03,0x80,0x05,0x3c,0x00,0x80,0xa5,0x24, +0x40,0x10,0x0c,0x3c,0xff,0xff,0xa5,0x30,0x02,0x80,0x04,0x3c,0x78,0x1b,0x84,0x24, +0x25,0xc8,0xac,0x00,0x00,0x25,0x99,0xac,0x80,0x00,0x39,0x27,0xe0,0xff,0xbd,0x27, +0x0c,0x25,0x99,0xac,0x80,0x00,0x39,0x27,0x1c,0x00,0xb7,0xaf,0x18,0x00,0xb6,0xaf, +0x14,0x00,0xb5,0xaf,0x10,0x00,0xb4,0xaf,0x0c,0x00,0xb3,0xaf,0x08,0x00,0xb2,0xaf, +0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf,0x18,0x25,0x99,0xac,0x80,0x00,0x39,0x27, +0x24,0x25,0x99,0xac,0xe2,0x0a,0x86,0x90,0x80,0x00,0x39,0x27,0x30,0x25,0x99,0xac, +0x80,0x00,0x39,0x27,0x3c,0x25,0x99,0xac,0x20,0xb0,0x02,0x3c,0x0c,0x25,0x87,0x8c, +0x18,0x25,0x88,0x8c,0x24,0x25,0x89,0x8c,0x30,0x25,0x8a,0x8c,0x3c,0x25,0x8b,0x8c, +0x00,0x01,0x42,0x34,0x00,0x32,0x06,0x00,0xff,0x1f,0x03,0x3c,0x80,0x00,0x39,0x27, +0x21,0x30,0xc2,0x00,0xff,0xff,0x63,0x34,0x24,0x30,0xc3,0x00,0x48,0x25,0x99,0xac, +0x20,0x10,0x03,0x3c,0x21,0x68,0x20,0x03,0x25,0x28,0xac,0x00,0x25,0xb0,0x0e,0x3c, +0x80,0x00,0x39,0x27,0xfc,0x24,0x85,0xac,0x08,0x25,0x87,0xac,0x14,0x25,0x88,0xac, +0x20,0x25,0x89,0xac,0x2c,0x25,0x8a,0xac,0xcc,0x24,0x86,0xac,0x38,0x25,0x8b,0xac, +0xac,0x00,0xc2,0x35,0x94,0x24,0x83,0xac,0x90,0x24,0x83,0xac,0xa0,0x24,0x83,0xac, +0x9c,0x24,0x83,0xac,0xac,0x24,0x83,0xac,0xa8,0x24,0x83,0xac,0x54,0x25,0x99,0xac, +0xd0,0x24,0x86,0xac,0x44,0x25,0x8d,0xac,0xb8,0x24,0x83,0xac,0xb4,0x24,0x83,0xac, +0xc4,0x24,0x83,0xac,0xc0,0x24,0x83,0xac,0xdc,0x24,0x83,0xac,0xd8,0x24,0x83,0xac, +0x00,0x02,0x39,0x27,0x00,0x00,0x48,0x8c,0xe4,0x0a,0x87,0x94,0x6c,0x25,0x99,0xac, +0xb0,0x00,0xc2,0x35,0x00,0x00,0x56,0x8c,0x21,0x10,0x06,0x3c,0x54,0x25,0x92,0x8c, +0x23,0x10,0x0b,0x3c,0x22,0x10,0x0f,0x3c,0x02,0x80,0x14,0x3c,0x02,0x80,0x15,0x3c, +0x02,0x80,0x17,0x3c,0x02,0x80,0x18,0x3c,0x00,0x80,0xc5,0x34,0x21,0x98,0x20,0x03, +0x23,0x28,0xa7,0x00,0x00,0x02,0x39,0x27,0x24,0x10,0x07,0x3c,0x80,0x41,0x89,0x26, +0x88,0x41,0xaa,0x26,0x90,0x41,0xec,0x26,0x98,0x41,0x0d,0x27,0x00,0x04,0x70,0x35, +0x01,0x00,0x08,0x25,0x00,0x40,0xf1,0x35,0x00,0x01,0xce,0x35,0x01,0x00,0x02,0x24, +0x50,0x25,0x92,0xac,0x59,0x25,0x82,0xa0,0x68,0x25,0x93,0xac,0xc4,0x25,0x90,0xac, +0x88,0x25,0x88,0xac,0x94,0x25,0x85,0xac,0xb8,0x25,0x91,0xac,0xac,0x25,0x96,0xac, +0x00,0x00,0xc7,0xad,0xa8,0x25,0x87,0xac,0xc8,0x25,0x83,0xac,0xe8,0x24,0x83,0xac, +0xe4,0x24,0x83,0xac,0x72,0x25,0x80,0xa4,0x71,0x25,0x80,0xa0,0x70,0x25,0x80,0xa0, +0xbc,0x25,0x8b,0xac,0xc0,0x25,0x8b,0xac,0x80,0x25,0x86,0xac,0x84,0x25,0x86,0xac, +0x8c,0x25,0x86,0xac,0x90,0x25,0x86,0xac,0xb0,0x25,0x8f,0xac,0xb4,0x25,0x8f,0xac, +0xa4,0x25,0x87,0xac,0xcc,0x25,0x83,0xac,0xd8,0x25,0x99,0xac,0xd4,0x25,0x99,0xac, +0x04,0x00,0x4a,0xad,0x80,0x41,0x89,0xae,0x04,0x00,0x8c,0xad,0x88,0x41,0xaa,0xae, +0x04,0x00,0xad,0xad,0x90,0x41,0xec,0xae,0x98,0x41,0x0d,0xaf,0x04,0x00,0x29,0xad, +0x02,0x80,0x02,0x3c,0x00,0x18,0x43,0x24,0x21,0x20,0x20,0x01,0x03,0x00,0x06,0x24, +0x21,0x10,0x80,0x00,0xff,0xff,0xc6,0x24,0x08,0x00,0x79,0xac,0x00,0x00,0x63,0xac, +0x10,0x00,0x60,0xac,0x00,0x00,0x69,0xac,0x21,0x20,0x60,0x00,0x04,0x00,0x62,0xac, +0x00,0x00,0x43,0xac,0x00,0x01,0x39,0x27,0xf5,0xff,0xc1,0x04,0x18,0x00,0x63,0x24, +0x02,0x80,0x02,0x3c,0x88,0x41,0x48,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c, +0x04,0x00,0x07,0x8d,0x60,0x18,0x4b,0x24,0x04,0x00,0x24,0xad,0x00,0x18,0x6a,0x24, +0x01,0x00,0x09,0x24,0x21,0x28,0x00,0x00,0x0f,0x00,0x06,0x24,0x21,0x20,0xab,0x00, +0x21,0x10,0xaa,0x00,0xff,0xff,0xc6,0x24,0x68,0x00,0x59,0xac,0x70,0x00,0x49,0xac, +0x18,0x00,0xa5,0x24,0x00,0x00,0x88,0xac,0x04,0x00,0x87,0xac,0x00,0x00,0xe4,0xac, +0x00,0x01,0x39,0x27,0xf5,0xff,0xc1,0x04,0x21,0x38,0x80,0x00,0x02,0x80,0x02,0x3c, +0x90,0x41,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x04,0x00,0x25,0x8d, +0xe0,0x19,0x4b,0x24,0x04,0x00,0x04,0xad,0x00,0x18,0x6a,0x24,0x02,0x00,0x07,0x24, +0x21,0x20,0x00,0x00,0x0f,0x00,0x06,0x24,0x21,0x40,0x8b,0x00,0x21,0x10,0x8a,0x00, +0xff,0xff,0xc6,0x24,0xe8,0x01,0x59,0xac,0xf0,0x01,0x47,0xac,0x18,0x00,0x84,0x24, +0x00,0x00,0x09,0xad,0x04,0x00,0x05,0xad,0x00,0x00,0xa8,0xac,0x00,0x02,0x39,0x27, +0xf5,0xff,0xc1,0x04,0x21,0x28,0x00,0x01,0x02,0x80,0x05,0x3c,0x98,0x41,0xa5,0x24, +0x04,0x00,0xa6,0x8c,0x1c,0x00,0xb7,0x8f,0x18,0x00,0xb6,0x8f,0x14,0x00,0xb5,0x8f, +0x10,0x00,0xb4,0x8f,0x0c,0x00,0xb3,0x8f,0x08,0x00,0xb2,0x8f,0x04,0x00,0xb1,0x8f, +0x00,0x00,0xb0,0x8f,0x02,0x80,0x07,0x3c,0x02,0x80,0x03,0x3c,0x60,0x1b,0xe4,0x24, +0x00,0x18,0x63,0x24,0x03,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x68,0x03,0x79,0xac, +0x04,0x00,0x28,0xad,0x04,0x00,0xa4,0xac,0x70,0x03,0x62,0xac,0x60,0x1b,0xe5,0xac, +0x04,0x00,0x86,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0xc4,0xac,0xc8,0xff,0xbd,0x27, +0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf, +0xfc,0xad,0x73,0x24,0x70,0xae,0x52,0x24,0x02,0x80,0x03,0x3c,0xff,0xff,0x02,0x3c, +0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x30,0x00,0xbf,0xaf,0xff,0x1f,0x54,0x34,0x78,0x1b,0x70,0x24,0x21,0x88,0x00,0x00, +0x02,0x80,0x15,0x3c,0x19,0x50,0x00,0x0c,0x21,0x20,0x20,0x02,0x90,0x11,0x05,0x8e, +0x6c,0x00,0x66,0x8e,0x6c,0x00,0x43,0x8e,0xdc,0xad,0xa2,0x26,0x1b,0x00,0x44,0x90, +0x21,0x18,0x66,0x00,0x24,0x28,0xb4,0x00,0x00,0x21,0x04,0x00,0x42,0x18,0x03,0x00, +0x00,0x20,0xa5,0x34,0x5c,0x11,0x03,0xae,0x80,0x11,0x04,0xae,0x90,0x11,0x05,0xae, +0x84,0x11,0x04,0xae,0x21,0x30,0x00,0x00,0x21,0x10,0x06,0x02,0x01,0x00,0xc6,0x24, +0x1d,0x00,0xc3,0x28,0xb1,0x11,0x40,0xa0,0x94,0x11,0x40,0xa0,0xfa,0xff,0x60,0x14, +0xce,0x11,0x40,0xa0,0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0xec,0x11,0x00,0xae, +0xe4,0xff,0x40,0x14,0x94,0x00,0x10,0x26,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c, +0x78,0x1b,0x4b,0x24,0x02,0x80,0x02,0x3c,0x70,0xae,0x6f,0x24,0xfc,0xad,0x4d,0x24, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xdc,0xad,0x6e,0x24,0xbc,0xad,0x4c,0x24, +0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,0x21,0x20,0x6d,0x00,0x21,0x10,0x6f,0x00, +0x21,0x28,0x2e,0x02,0x21,0x30,0x2c,0x02,0x00,0x00,0x88,0x8c,0x00,0x00,0xa9,0x90, +0x00,0x00,0xc7,0x90,0x00,0x00,0x4a,0x8c,0x21,0x10,0x2b,0x02,0x01,0x00,0x31,0x26, +0x21,0x18,0x6b,0x00,0x1d,0x00,0x24,0x2a,0xf8,0x04,0x68,0xac,0xce,0x04,0x47,0xa0, +0x6c,0x05,0x6a,0xac,0xef,0xff,0x80,0x14,0x94,0x04,0x49,0xa0,0x02,0x80,0x02,0x3c, +0x78,0x1b,0x4a,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x98,0xac,0x6b,0x24, +0x38,0xab,0x4c,0x24,0x21,0x88,0x00,0x00,0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00, +0x21,0x40,0x2a,0x01,0x21,0x38,0x2b,0x01,0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90, +0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01,0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28, +0xc9,0x03,0x64,0xa0,0xf8,0xff,0x40,0x14,0x38,0x03,0x65,0xa0,0x21,0x10,0x2c,0x02, +0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26, +0x1d,0x00,0x22,0x2a,0x77,0x04,0x64,0xa0,0x5a,0x04,0x65,0xa0,0xeb,0xff,0x40,0x14, +0x05,0x00,0x29,0x25,0x30,0x00,0xbf,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x29,0xb0,0x02,0x3c,0xf8,0xff,0xbd,0x27, +0x00,0x00,0x40,0xac,0x08,0x00,0x44,0x34,0x0c,0x00,0x45,0x34,0x10,0x00,0x46,0x34, +0x04,0x00,0x43,0x34,0x14,0x00,0x47,0x34,0x18,0x00,0x48,0x34,0x1c,0x00,0x49,0x34, +0x20,0x00,0x4a,0x34,0x24,0x00,0x4b,0x34,0x28,0x00,0x4c,0x34,0x2c,0x00,0x4d,0x34, +0x30,0x00,0x4e,0x34,0x34,0x00,0x4f,0x34,0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf, +0x3c,0x00,0x51,0x34,0x38,0x00,0x50,0x34,0x02,0x80,0x02,0x3c,0x00,0x00,0x60,0xac, +0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac,0x21,0x20,0x00,0x00,0x00,0x00,0xc0,0xac, +0xff,0xff,0x05,0x24,0x00,0x00,0xe0,0xac,0x78,0x1b,0x46,0x24,0x00,0x00,0x00,0xad, +0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad,0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad, +0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad,0x00,0x00,0xe0,0xad,0x00,0x00,0x00,0xae, +0x00,0x00,0x20,0xae,0x21,0x18,0x86,0x00,0x01,0x00,0x84,0x24,0x08,0x00,0x82,0x28, +0xfc,0xff,0x40,0x14,0xf0,0x04,0x65,0xa0,0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24, +0x1f,0x00,0x04,0x24,0x90,0x11,0x62,0x8c,0xff,0xff,0x84,0x24,0xf0,0x00,0x42,0x34, +0x90,0x11,0x62,0xac,0xfb,0xff,0x81,0x04,0x94,0x00,0x63,0x24,0x04,0x00,0xb1,0x8f, +0x00,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x08,0x00,0xbd,0x27,0x48,0xfd,0xbd,0x27, +0xb4,0x02,0xb3,0xaf,0x02,0x80,0x02,0x3c,0x02,0x80,0x13,0x3c,0x30,0xb0,0x46,0x24, +0x78,0x1b,0x63,0x26,0xb0,0x02,0xb2,0xaf,0xac,0x02,0xb1,0xaf,0xa8,0x02,0xb0,0xaf, +0x03,0x00,0x60,0xa0,0x21,0x38,0xa0,0x03,0x90,0x00,0xc8,0x24,0x00,0x00,0xc2,0x8c, +0x04,0x00,0xc3,0x8c,0x08,0x00,0xc4,0x8c,0x0c,0x00,0xc5,0x8c,0x10,0x00,0xc6,0x24, +0x00,0x00,0xe2,0xac,0x04,0x00,0xe3,0xac,0x08,0x00,0xe4,0xac,0x0c,0x00,0xe5,0xac, +0xf6,0xff,0xc8,0x14,0x10,0x00,0xe7,0x24,0x00,0x00,0xc3,0x8c,0x02,0x80,0x02,0x3c, +0xc4,0xb0,0x58,0x24,0x00,0x00,0xe3,0xac,0x98,0x00,0xb9,0x27,0x00,0x01,0x12,0x27, +0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x09,0x00,0x04,0x93,0x0d,0x00,0x05,0x93, +0x00,0x00,0x11,0x93,0x02,0x00,0x0d,0x93,0x04,0x00,0x10,0x93,0x06,0x00,0x0c,0x93, +0x08,0x00,0x0f,0x93,0x0a,0x00,0x07,0x93,0x0c,0x00,0x0e,0x93,0x0e,0x00,0x06,0x93, +0x03,0x00,0x08,0x93,0x07,0x00,0x09,0x93,0x0b,0x00,0x0a,0x93,0x0f,0x00,0x0b,0x93, +0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0x22,0x04,0x00,0x00,0x2a,0x05,0x00, +0x25,0x10,0x51,0x00,0x25,0x18,0x70,0x00,0x25,0x20,0x8f,0x00,0x25,0x28,0xae,0x00, +0x00,0x6c,0x0d,0x00,0x00,0x64,0x0c,0x00,0x00,0x3c,0x07,0x00,0x00,0x34,0x06,0x00, +0x25,0x68,0xa2,0x01,0x25,0x60,0x83,0x01,0x25,0x38,0xe4,0x00,0x25,0x30,0xc5,0x00, +0x00,0x46,0x08,0x00,0x00,0x4e,0x09,0x00,0x00,0x56,0x0a,0x00,0x00,0x5e,0x0b,0x00, +0x25,0x40,0x0d,0x01,0x25,0x48,0x2c,0x01,0x25,0x50,0x47,0x01,0x25,0x58,0x66,0x01, +0x10,0x00,0x18,0x27,0x00,0x00,0x28,0xaf,0x04,0x00,0x29,0xaf,0x08,0x00,0x2a,0xaf, +0x0c,0x00,0x2b,0xaf,0xd2,0xff,0x12,0x17,0x10,0x00,0x39,0x27,0x01,0x00,0x02,0x93, +0x05,0x00,0x03,0x93,0x00,0x00,0x09,0x93,0x02,0x00,0x04,0x93,0x04,0x00,0x08,0x93, +0x06,0x00,0x05,0x93,0x07,0x00,0x06,0x93,0x03,0x00,0x07,0x93,0x00,0x12,0x02,0x00, +0x00,0x1a,0x03,0x00,0x25,0x10,0x49,0x00,0x25,0x18,0x68,0x00,0x00,0x24,0x04,0x00, +0x00,0x2c,0x05,0x00,0x25,0x20,0x82,0x00,0x25,0x28,0xa3,0x00,0x00,0x3e,0x07,0x00, +0x00,0x36,0x06,0x00,0x02,0x80,0x02,0x3c,0x25,0x38,0xe4,0x00,0x25,0x30,0xc5,0x00, +0xcc,0xb1,0x58,0x24,0x04,0x00,0x26,0xaf,0x00,0x00,0x27,0xaf,0x00,0x01,0x12,0x27, +0xa0,0x01,0xb9,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x09,0x00,0x04,0x93, +0x0d,0x00,0x05,0x93,0x00,0x00,0x11,0x93,0x02,0x00,0x0d,0x93,0x04,0x00,0x10,0x93, +0x06,0x00,0x0c,0x93,0x08,0x00,0x0f,0x93,0x0a,0x00,0x07,0x93,0x0c,0x00,0x0e,0x93, +0x0e,0x00,0x06,0x93,0x03,0x00,0x08,0x93,0x07,0x00,0x09,0x93,0x0b,0x00,0x0a,0x93, +0x0f,0x00,0x0b,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0x22,0x04,0x00, +0x00,0x2a,0x05,0x00,0x25,0x10,0x51,0x00,0x25,0x18,0x70,0x00,0x25,0x20,0x8f,0x00, +0x25,0x28,0xae,0x00,0x00,0x6c,0x0d,0x00,0x00,0x64,0x0c,0x00,0x00,0x3c,0x07,0x00, +0x00,0x34,0x06,0x00,0x25,0x68,0xa2,0x01,0x25,0x60,0x83,0x01,0x25,0x38,0xe4,0x00, +0x25,0x30,0xc5,0x00,0x00,0x46,0x08,0x00,0x00,0x4e,0x09,0x00,0x00,0x56,0x0a,0x00, +0x00,0x5e,0x0b,0x00,0x25,0x40,0x0d,0x01,0x25,0x48,0x2c,0x01,0x25,0x50,0x47,0x01, +0x25,0x58,0x66,0x01,0x10,0x00,0x18,0x27,0x00,0x00,0x28,0xaf,0x04,0x00,0x29,0xaf, +0x08,0x00,0x2a,0xaf,0x0c,0x00,0x2b,0xaf,0xd2,0xff,0x12,0x17,0x10,0x00,0x39,0x27, +0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x00,0x00,0x09,0x93,0x02,0x00,0x04,0x93, +0x04,0x00,0x08,0x93,0x06,0x00,0x05,0x93,0x07,0x00,0x06,0x93,0x03,0x00,0x07,0x93, +0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x25,0x10,0x49,0x00,0x25,0x18,0x68,0x00, +0x00,0x24,0x04,0x00,0x00,0x2c,0x05,0x00,0x25,0x20,0x82,0x00,0x25,0x28,0xa3,0x00, +0x00,0x3e,0x07,0x00,0x00,0x36,0x06,0x00,0x25,0x30,0xc5,0x00,0x25,0x38,0xe4,0x00, +0x02,0x80,0x02,0x3c,0x04,0x00,0x26,0xaf,0x00,0x00,0x27,0xaf,0x78,0x1b,0x46,0x24, +0x21,0x50,0x00,0x00,0x80,0x20,0x0a,0x00,0x21,0x10,0x9d,0x00,0x00,0x00,0x45,0x8c, +0x01,0x00,0x43,0x25,0xff,0x00,0x6a,0x30,0x21,0x20,0x86,0x00,0x25,0x00,0x42,0x2d, +0xf8,0xff,0x40,0x14,0x18,0x00,0x85,0xac,0x02,0x80,0x02,0x3c,0x78,0x1b,0x4b,0x24, +0x21,0x50,0x00,0x00,0xc0,0x10,0x0a,0x00,0x21,0x48,0x5d,0x00,0x21,0x38,0x00,0x00, +0x21,0x40,0x4b,0x00,0x21,0x10,0x27,0x01,0xa0,0x01,0x46,0x90,0x98,0x00,0x45,0x90, +0x01,0x00,0xe4,0x24,0x21,0x18,0x07,0x01,0xff,0x00,0x87,0x30,0x08,0x00,0xe2,0x2c, +0xb4,0x01,0x66,0xa0,0xf7,0xff,0x40,0x14,0xac,0x00,0x65,0xa0,0x01,0x00,0x42,0x25, +0xff,0x00,0x4a,0x30,0x21,0x00,0x43,0x2d,0xef,0xff,0x60,0x14,0xc0,0x10,0x0a,0x00, +0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00, +0x20,0x00,0x63,0x30,0x4f,0x00,0x60,0x10,0x78,0x1b,0x64,0x26,0x33,0x00,0x02,0x24, +0xc1,0x02,0x62,0xa1,0x1c,0x00,0x03,0x24,0x0f,0x00,0x02,0x24,0xbc,0x02,0x63,0xa1, +0xbd,0x02,0x62,0xa1,0x78,0x1b,0x65,0x26,0x08,0x00,0xa4,0x8c,0xff,0x7f,0x09,0x3c, +0xff,0xff,0x29,0x35,0xc0,0xff,0x02,0x24,0x24,0x20,0x89,0x00,0x24,0x20,0x82,0x00, +0x0c,0x00,0x84,0x34,0xff,0xc0,0x02,0x24,0xc8,0x02,0xa0,0xa0,0x24,0x20,0x82,0x00, +0xc0,0xff,0x02,0x3c,0xc8,0x02,0xa6,0x8c,0xff,0xff,0x42,0x34,0x00,0x18,0x84,0x34, +0x24,0x20,0x82,0x00,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0xbf,0xff,0x03,0x3c, +0x24,0x30,0xc2,0x00,0xff,0xff,0x63,0x34,0x7f,0xff,0x02,0x3c,0x24,0x20,0x83,0x00, +0xff,0xff,0x42,0x34,0x24,0x20,0x82,0x00,0x7f,0xff,0x03,0x24,0x40,0x40,0x84,0x34, +0xff,0xff,0x02,0x3c,0x24,0x20,0x83,0x00,0xff,0x7f,0x42,0x34,0xc8,0x02,0xa6,0xac, +0x24,0x20,0x82,0x00,0xc9,0x02,0xa0,0xa0,0x0c,0x00,0xa6,0x8c,0xff,0x9f,0x02,0x3c, +0xc8,0x02,0xa7,0x8c,0xff,0xff,0x42,0x34,0xff,0xbf,0x03,0x3c,0x10,0x00,0xa8,0x8c, +0xff,0xff,0x63,0x34,0x24,0x20,0x82,0x00,0xff,0xf0,0x02,0x3c,0x24,0x30,0xc3,0x00, +0xff,0xff,0x42,0x34,0xff,0x3f,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x38,0xe2,0x00, +0xb4,0x02,0xb3,0x8f,0x1f,0x00,0x02,0x24,0xb0,0x02,0xb2,0x8f,0xac,0x02,0xb1,0x8f, +0xa8,0x02,0xb0,0x8f,0x24,0x40,0x03,0x01,0xbe,0x02,0xa2,0xa0,0x01,0x00,0x03,0x24, +0xff,0xff,0x02,0x24,0x24,0x30,0xc9,0x00,0xc0,0x02,0xa3,0xa0,0xc2,0x02,0xa2,0xa0, +0xff,0x00,0x03,0x24,0x12,0x00,0x02,0x24,0xb8,0x02,0xbd,0x27,0xc8,0x02,0xa7,0xac, +0x08,0x00,0xa4,0xac,0x10,0x00,0xa8,0xac,0x0c,0x00,0xa6,0xac,0xc4,0x02,0xa3,0xa4, +0xc7,0x02,0xa2,0xa0,0xca,0x02,0xa0,0xa0,0xbf,0x02,0xa0,0xa0,0x08,0x00,0xe0,0x03, +0xc6,0x02,0xa0,0xa0,0x33,0x00,0x02,0x24,0xc1,0x02,0x82,0xa0,0x0d,0x00,0x03,0x24, +0x03,0x00,0x02,0x24,0xbc,0x02,0x83,0xa0,0x97,0x63,0x00,0x08,0xbd,0x02,0x82,0xa0, +0x02,0x80,0x19,0x3c,0x78,0x1b,0x22,0x27,0xe0,0xff,0xbd,0x27,0xff,0xff,0x03,0x34, +0x18,0x00,0xbf,0xaf,0x21,0xc0,0x40,0x00,0xf4,0x23,0x43,0xac,0xea,0x02,0x40,0xa0, +0x1f,0x00,0x0f,0x24,0xff,0xff,0xef,0x25,0x80,0x11,0x43,0xac,0x84,0x11,0x43,0xac, +0xfc,0xff,0xe1,0x05,0x94,0x00,0x42,0x24,0x78,0x1b,0x24,0x8f,0xd8,0x02,0x05,0x8f, +0xf0,0xff,0x02,0x3c,0xe8,0x02,0x07,0x8f,0xfd,0xff,0x03,0x24,0xff,0xff,0x42,0x34, +0x24,0x20,0x83,0x00,0x24,0x28,0xa2,0x00,0x20,0x00,0x0f,0x24,0xff,0xff,0x0e,0x24, +0xff,0xef,0x02,0x3c,0x78,0x1b,0x24,0xaf,0xff,0xff,0x42,0x34,0xd8,0x02,0x05,0xaf, +0x02,0x00,0x0e,0xa3,0xdb,0x02,0x0f,0xa3,0xd8,0x02,0x00,0xa3,0xff,0xbf,0x03,0x3c, +0x78,0x1b,0x28,0x8f,0xd8,0x02,0x09,0x8f,0x24,0x38,0xe2,0x00,0xff,0xff,0x63,0x34, +0x24,0x38,0xe3,0x00,0xff,0x7f,0x02,0x3c,0x0f,0xff,0x03,0x3c,0xfe,0xff,0x04,0x24, +0xff,0xff,0x42,0x34,0xff,0xff,0x63,0x34,0x24,0x40,0x04,0x01,0x24,0x38,0xe2,0x00, +0x24,0x48,0x23,0x01,0xff,0xdf,0x02,0x3c,0xcf,0xff,0x03,0x24,0x24,0x40,0x03,0x01, +0xff,0xff,0x42,0x34,0x10,0x00,0x03,0x3c,0x24,0x38,0xe2,0x00,0x25,0x48,0x23,0x01, +0x0a,0x00,0x02,0x24,0x00,0x02,0x03,0x24,0x78,0x1b,0x28,0xaf,0x02,0x80,0x0a,0x3c, +0xd6,0x02,0x02,0xa3,0xd0,0x02,0x03,0xa7,0x00,0x01,0x02,0x24,0x49,0x00,0x03,0x24, +0xe8,0x02,0x07,0xaf,0xd8,0x02,0x09,0xaf,0xac,0xb5,0x4a,0x25,0x3e,0x00,0x0c,0x24, +0x1c,0x00,0x0d,0x24,0x01,0x00,0x0b,0x24,0x11,0x00,0xa3,0xa3,0xce,0x02,0x02,0xa7, +0xd0,0x07,0x03,0x24,0x44,0x00,0x02,0x24,0x00,0x80,0x06,0x3c,0x10,0x00,0xa2,0xa3, +0x10,0x00,0xa5,0x27,0x47,0x00,0x02,0x24,0x21,0x20,0x40,0x01,0xc8,0x66,0xc6,0x24, +0xd4,0x02,0x0c,0xa3,0xd5,0x02,0x0d,0xa3,0xcc,0x02,0x0f,0xa7,0x01,0x00,0x0b,0xa3, +0x0c,0x00,0x43,0xad,0x14,0x00,0x4b,0xa1,0x06,0x00,0x0e,0xa7,0xd2,0x02,0x0c,0xa3, +0xd3,0x02,0x0d,0xa3,0x12,0x00,0xa2,0xa3,0xa8,0x14,0x00,0x0c,0x13,0x00,0xa0,0xa3, +0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x50,0x00,0x03,0x24,0x10,0x00,0xa3,0xa3, +0x52,0x28,0x40,0xa0,0x41,0x00,0x03,0x24,0x52,0x00,0x02,0x24,0x02,0x80,0x07,0x3c, +0x54,0xb6,0xe7,0x24,0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3,0xd0,0x07,0x02,0x24, +0x01,0x00,0x03,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00, +0xe4,0x69,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf, +0xa8,0x14,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x02,0x80,0x09,0x3c,0x78,0x1b,0x23,0x8d, +0xff,0xff,0x02,0x24,0xff,0x00,0x4b,0x30,0xf3,0xff,0x02,0x24,0x24,0x18,0x62,0x00, +0x3f,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0xd8,0xff,0xbd,0x27,0x78,0x1b,0x23,0xad, +0x47,0x00,0x02,0x24,0x3b,0x00,0x03,0x24,0x02,0x80,0x08,0x3c,0x70,0xb6,0x08,0x25, +0x18,0x00,0xb0,0xaf,0x10,0x00,0xa2,0xa3,0x78,0x1b,0x30,0x25,0x11,0x00,0xa3,0xa3, +0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,0x01,0x00,0x07,0x3c,0x00,0x80,0x06,0x3c, +0x08,0x03,0x0b,0xae,0x1c,0x00,0xb1,0xaf,0x56,0x30,0xea,0x34,0x43,0x00,0x11,0x24, +0xf4,0x98,0xe7,0x34,0x10,0x00,0xa5,0x27,0x0c,0x00,0x02,0xad,0x14,0x00,0x03,0xa1, +0x21,0x20,0x00,0x01,0xd8,0x73,0xc6,0x24,0x20,0x00,0xbf,0xaf,0x12,0x00,0xb1,0xa3, +0x10,0x03,0x07,0xae,0x14,0x03,0x0a,0xae,0x13,0x00,0xa0,0xa3,0x0c,0x03,0x00,0xae, +0x18,0x03,0x00,0xae,0xa8,0x14,0x00,0x0c,0x1c,0x03,0x00,0xae,0x1e,0x00,0x02,0x24, +0x25,0x03,0x02,0xa2,0x4a,0x00,0x03,0x24,0x45,0x00,0x02,0x24,0x20,0x03,0x03,0xa2, +0x21,0x03,0x02,0xa2,0x23,0x00,0x03,0x24,0x3e,0x00,0x02,0x24,0x22,0x03,0x11,0xa2, +0x23,0x03,0x02,0xa2,0x24,0x03,0x03,0xa2,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb1,0x8f, +0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27, +0x3b,0x00,0x02,0x24,0x43,0x00,0x03,0x24,0x10,0x00,0xa2,0xa3,0x11,0x00,0xa3,0xa3, +0x36,0x00,0x02,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x07,0x3c,0x8c,0xb6,0xe7,0x24, +0x12,0x00,0xa2,0xa3,0x4f,0x1e,0x60,0xa0,0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24, +0x00,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0x04,0x78,0xc6,0x24, +0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf,0xa8,0x14,0x00,0x0c, +0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x52,0x00,0x03,0x24, +0x10,0x00,0xa3,0xa3,0xc8,0x3f,0x40,0xa4,0x54,0x00,0x03,0x24,0x53,0x00,0x02,0x24, +0x02,0x80,0x07,0x3c,0xc4,0xb6,0xe7,0x24,0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3, +0xf4,0x01,0x02,0x24,0x01,0x00,0x03,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27, +0x21,0x20,0xe0,0x00,0x28,0x6b,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0, +0x18,0x00,0xbf,0xaf,0xa8,0x14,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x02,0x80,0x04,0x3c, +0xd8,0xff,0xbd,0x27,0x80,0x3f,0x84,0x24,0x21,0x28,0x00,0x00,0x20,0x00,0xbf,0xaf, +0x3e,0x46,0x00,0x0c,0x0a,0x00,0x06,0x24,0x02,0x80,0x07,0x3c,0x78,0x1b,0xe7,0x24, +0x04,0x24,0xe3,0x8c,0xfd,0xff,0x02,0x24,0x02,0x80,0x08,0x3c,0x24,0x18,0x62,0x00, +0xfe,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0x05,0x00,0x02,0x24,0x04,0x24,0xe3,0xac, +0x08,0x24,0xe2,0xa0,0x28,0x00,0x03,0x24,0x46,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3, +0x09,0x24,0xe3,0xa0,0x4b,0x00,0x02,0x24,0x42,0x00,0x03,0x24,0xe0,0xb6,0x08,0x25, +0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0xd0,0x07,0x03,0x24,0x01,0x00,0x02,0x24, +0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0x00,0x01,0xf0,0x6b,0xc6,0x24, +0x06,0x24,0xe0,0xa4,0x0c,0x00,0x03,0xad,0x14,0x00,0x02,0xa1,0xa8,0x14,0x00,0x0c, +0x13,0x00,0xa0,0xa3,0x20,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x28,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x03,0x3c,0x1c,0x00,0xbf,0xaf, +0x18,0x00,0xb0,0xaf,0x44,0xaf,0x62,0x24,0x02,0x00,0x48,0x90,0x44,0xaf,0x67,0x94, +0x02,0x80,0x02,0x3c,0x60,0x44,0x42,0x24,0x02,0x00,0x10,0x24,0x01,0x80,0x06,0x3c, +0x21,0x20,0x40,0x00,0x10,0x00,0xa5,0x27,0x14,0x00,0x50,0xa0,0x34,0x83,0xc6,0x24, +0x10,0x00,0xa7,0xa7,0x12,0x00,0xa8,0xa3,0xa8,0x14,0x00,0x0c,0x13,0x00,0xa0,0xa3, +0x02,0x80,0x02,0x3c,0x7c,0x44,0x42,0x24,0x01,0x80,0x06,0x3c,0x21,0x20,0x40,0x00, +0x10,0x00,0xa5,0x27,0x14,0x00,0x50,0xa0,0xa8,0x14,0x00,0x0c,0x68,0x82,0xc6,0x24, +0x02,0x80,0x02,0x3c,0x98,0x44,0x40,0xa0,0x0c,0x00,0x04,0x24,0x02,0x80,0x03,0x3c, +0x02,0x80,0x02,0x3c,0x99,0x44,0x64,0xa0,0x9a,0x44,0x44,0xa0,0x02,0x80,0x03,0x3c, +0x02,0x80,0x02,0x3c,0xb1,0x44,0x60,0xa0,0x01,0x00,0x06,0x24,0xb7,0x44,0x40,0xa0, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xb8,0x44,0x60,0xa0,0x9c,0x44,0x46,0xa0, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xb9,0x44,0x60,0xa0,0x08,0x00,0x04,0x24, +0x9b,0x44,0x46,0xa0,0x02,0x80,0x02,0x3c,0x9d,0x44,0x44,0xa0,0x01,0x00,0x05,0x24, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x9e,0x44,0x60,0xa0,0x64,0x00,0x04,0x24, +0xa8,0x44,0x45,0xa4,0x02,0x80,0x03,0x3c,0x01,0x00,0x02,0x3c,0xa0,0x44,0x64,0xa4, +0x00,0x90,0x42,0x34,0x02,0x80,0x03,0x3c,0xa4,0x44,0x62,0xac,0x02,0x80,0x04,0x3c, +0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0xac,0x44,0x80,0xac,0x1c,0x00,0xbf,0x8f, +0xb0,0x44,0x40,0xa0,0x18,0x00,0xb0,0x8f,0xb2,0x44,0x60,0xa0,0x02,0x80,0x02,0x3c, +0x02,0x80,0x03,0x3c,0xba,0x44,0x40,0xa0,0xb3,0x44,0x60,0xa0,0x02,0x80,0x02,0x3c, +0x02,0x80,0x03,0x3c,0xb4,0x44,0x45,0xa0,0x20,0x00,0xbd,0x27,0xb5,0x44,0x65,0xa0, +0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0xb6,0x44,0x40,0xa0,0xbc,0x44,0x60,0xac, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x78,0x0c,0x00,0x00,0x01,0x00,0x00,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x01,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x02,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x03,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x04,0x5d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x05,0x5b,0x78,0x0c,0x00,0x00,0x01,0x00,0x06,0x59,0x78,0x0c,0x00,0x00, +0x01,0x00,0x07,0x57,0x78,0x0c,0x00,0x00,0x01,0x00,0x08,0x55,0x78,0x0c,0x00,0x00, +0x01,0x00,0x09,0x53,0x78,0x0c,0x00,0x00,0x01,0x00,0x0a,0x51,0x78,0x0c,0x00,0x00, +0x01,0x00,0x0b,0x4f,0x78,0x0c,0x00,0x00,0x01,0x00,0x0c,0x4d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x0d,0x4b,0x78,0x0c,0x00,0x00,0x01,0x00,0x0e,0x49,0x78,0x0c,0x00,0x00, +0x01,0x00,0x0f,0x47,0x78,0x0c,0x00,0x00,0x01,0x00,0x10,0x45,0x78,0x0c,0x00,0x00, +0x01,0x00,0x11,0x43,0x78,0x0c,0x00,0x00,0x01,0x00,0x12,0x41,0x78,0x0c,0x00,0x00, +0x01,0x00,0x13,0x3f,0x78,0x0c,0x00,0x00,0x01,0x00,0x14,0x3d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x15,0x3b,0x78,0x0c,0x00,0x00,0x01,0x00,0x16,0x39,0x78,0x0c,0x00,0x00, +0x01,0x00,0x17,0x37,0x78,0x0c,0x00,0x00,0x01,0x00,0x18,0x35,0x78,0x0c,0x00,0x00, +0x01,0x00,0x19,0x33,0x78,0x0c,0x00,0x00,0x01,0x00,0x1a,0x31,0x78,0x0c,0x00,0x00, +0x01,0x00,0x1b,0x2f,0x78,0x0c,0x00,0x00,0x01,0x00,0x1c,0x2d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x1d,0x2b,0x78,0x0c,0x00,0x00,0x01,0x00,0x1e,0x29,0x78,0x0c,0x00,0x00, +0x01,0x00,0x1f,0x27,0x78,0x0c,0x00,0x00,0x01,0x00,0x20,0x25,0x78,0x0c,0x00,0x00, +0x01,0x00,0x21,0x23,0x78,0x0c,0x00,0x00,0x01,0x00,0x22,0x21,0x78,0x0c,0x00,0x00, +0x01,0x00,0x23,0x1f,0x78,0x0c,0x00,0x00,0x01,0x00,0x24,0x1d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x25,0x1b,0x78,0x0c,0x00,0x00,0x01,0x00,0x26,0x19,0x78,0x0c,0x00,0x00, +0x01,0x00,0x27,0x17,0x78,0x0c,0x00,0x00,0x01,0x00,0x28,0x15,0x78,0x0c,0x00,0x00, +0x01,0x00,0x29,0x13,0x78,0x0c,0x00,0x00,0x01,0x00,0x2a,0x11,0x78,0x0c,0x00,0x00, +0x01,0x00,0x2b,0x0f,0x78,0x0c,0x00,0x00,0x01,0x00,0x2c,0x0d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x2d,0x0b,0x78,0x0c,0x00,0x00,0x01,0x00,0x2e,0x09,0x78,0x0c,0x00,0x00, +0x01,0x00,0x2f,0x07,0x78,0x0c,0x00,0x00,0x01,0x00,0x30,0x05,0x78,0x0c,0x00,0x00, +0x01,0x00,0x31,0x03,0x78,0x0c,0x00,0x00,0x01,0x00,0x32,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x33,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x34,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x35,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x36,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x37,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x38,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x39,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3a,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x3b,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3c,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x3d,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3e,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x3f,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x40,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x41,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x42,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x43,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x44,0x5d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x45,0x5b,0x78,0x0c,0x00,0x00,0x01,0x00,0x46,0x59,0x78,0x0c,0x00,0x00, +0x01,0x00,0x47,0x57,0x78,0x0c,0x00,0x00,0x01,0x00,0x48,0x55,0x78,0x0c,0x00,0x00, +0x01,0x00,0x49,0x53,0x78,0x0c,0x00,0x00,0x01,0x00,0x4a,0x51,0x78,0x0c,0x00,0x00, +0x01,0x00,0x4b,0x4f,0x78,0x0c,0x00,0x00,0x01,0x00,0x4c,0x4d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x4d,0x4b,0x78,0x0c,0x00,0x00,0x01,0x00,0x4e,0x49,0x78,0x0c,0x00,0x00, +0x01,0x00,0x4f,0x47,0x78,0x0c,0x00,0x00,0x01,0x00,0x50,0x45,0x78,0x0c,0x00,0x00, +0x01,0x00,0x51,0x43,0x78,0x0c,0x00,0x00,0x01,0x00,0x52,0x41,0x78,0x0c,0x00,0x00, +0x01,0x00,0x53,0x3f,0x78,0x0c,0x00,0x00,0x01,0x00,0x54,0x3d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x55,0x3b,0x78,0x0c,0x00,0x00,0x01,0x00,0x56,0x39,0x78,0x0c,0x00,0x00, +0x01,0x00,0x57,0x37,0x78,0x0c,0x00,0x00,0x01,0x00,0x58,0x35,0x78,0x0c,0x00,0x00, +0x01,0x00,0x59,0x33,0x78,0x0c,0x00,0x00,0x01,0x00,0x5a,0x31,0x78,0x0c,0x00,0x00, +0x01,0x00,0x5b,0x2f,0x78,0x0c,0x00,0x00,0x01,0x00,0x5c,0x2d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x5d,0x2b,0x78,0x0c,0x00,0x00,0x01,0x00,0x5e,0x29,0x78,0x0c,0x00,0x00, +0x01,0x00,0x5f,0x27,0x78,0x0c,0x00,0x00,0x01,0x00,0x60,0x25,0x78,0x0c,0x00,0x00, +0x01,0x00,0x61,0x23,0x78,0x0c,0x00,0x00,0x01,0x00,0x62,0x21,0x78,0x0c,0x00,0x00, +0x01,0x00,0x63,0x1f,0x78,0x0c,0x00,0x00,0x01,0x00,0x64,0x1d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x65,0x1b,0x78,0x0c,0x00,0x00,0x01,0x00,0x66,0x19,0x78,0x0c,0x00,0x00, +0x01,0x00,0x67,0x17,0x78,0x0c,0x00,0x00,0x01,0x00,0x68,0x15,0x78,0x0c,0x00,0x00, +0x01,0x00,0x69,0x13,0x78,0x0c,0x00,0x00,0x01,0x00,0x6a,0x11,0x78,0x0c,0x00,0x00, +0x01,0x00,0x6b,0x0f,0x78,0x0c,0x00,0x00,0x01,0x00,0x6c,0x0d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x6d,0x0b,0x78,0x0c,0x00,0x00,0x01,0x00,0x6e,0x09,0x78,0x0c,0x00,0x00, +0x01,0x00,0x6f,0x07,0x78,0x0c,0x00,0x00,0x01,0x00,0x70,0x05,0x78,0x0c,0x00,0x00, +0x01,0x00,0x71,0x03,0x78,0x0c,0x00,0x00,0x01,0x00,0x72,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x73,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x74,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x75,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x76,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x77,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x78,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x79,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7a,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x7b,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7c,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x7d,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7e,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x7f,0x01,0x78,0x0c,0x00,0x00,0x1e,0x00,0x00,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x01,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x02,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x03,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x04,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x05,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x06,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x07,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x08,0x3e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x09,0x40,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0a,0x42,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x0b,0x44,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0c,0x46,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x0d,0x48,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0e,0x48,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x0f,0x4a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x10,0x4a,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x11,0x4c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x12,0x4c,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x13,0x4e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x14,0x50,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x15,0x50,0x78,0x0c,0x00,0x00,0x1e,0x00,0x16,0x50,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x17,0x52,0x78,0x0c,0x00,0x00,0x1e,0x00,0x18,0x52,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x19,0x52,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1a,0x54,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x1b,0x54,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1c,0x54,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x1d,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1e,0x56,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x1f,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x20,0x56,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x21,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x22,0x58,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x23,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x24,0x58,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x25,0x5a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x26,0x5a,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x27,0x5a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x28,0x5c,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x29,0x5c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2a,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x2b,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2c,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x2d,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2e,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x2f,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x30,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x31,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x32,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x33,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x34,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x35,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x36,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x37,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x38,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x39,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3a,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x3b,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3c,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x3d,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3e,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x3f,0x5e,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x08,0x00,0x00, +0x00,0x00,0x04,0x03,0x04,0x08,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x08,0x00,0x00, +0x00,0xfc,0x00,0x00,0x0c,0x08,0x00,0x00,0x0a,0x00,0x00,0x04,0x10,0x08,0x00,0x00, +0xff,0x10,0x10,0x80,0x14,0x08,0x00,0x00,0x10,0x3d,0x0c,0x02,0x18,0x08,0x00,0x00, +0xc5,0x03,0x00,0x00,0x1c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x24,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x28,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x2c,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x30,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x34,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x38,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x3c,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x40,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x4c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x54,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x08,0x00,0x00, +0x65,0xa9,0x65,0xa9,0x5c,0x08,0x00,0x00,0x65,0xa9,0x65,0xa9,0x60,0x08,0x00,0x00, +0x30,0x01,0x7f,0x0f,0x64,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x68,0x08,0x00,0x00, +0x30,0x01,0x7f,0x0f,0x6c,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x70,0x08,0x00,0x00, +0x00,0x03,0x00,0x03,0x74,0x08,0x00,0x00,0x00,0x03,0x00,0x03,0x78,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x7c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x94,0x08,0x00,0x00,0xfe,0xff,0xff,0xff,0x98,0x08,0x00,0x00, +0x10,0x20,0x30,0x40,0x9c,0x08,0x00,0x00,0x50,0x60,0x70,0x00,0xb0,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0xe0,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xe4,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x0e,0x00,0x00, +0x03,0x03,0x03,0x03,0x08,0x0e,0x00,0x00,0x03,0x03,0x00,0x00,0x0c,0x0e,0x00,0x00, +0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x14,0x0e,0x00,0x00, +0x03,0x03,0x03,0x03,0x18,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x1c,0x0e,0x00,0x00, +0x03,0x03,0x03,0x03,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x09,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x09,0x00,0x00, +0x33,0x13,0x32,0x03,0x08,0x0a,0x00,0x00,0x00,0x86,0x88,0x8f,0x2c,0x0a,0x00,0x00, +0x00,0x00,0x92,0x00,0x00,0x0c,0x00,0x00,0x80,0x00,0x00,0x00,0x04,0x0c,0x00,0x00, +0x33,0x54,0x00,0x00,0x08,0x0c,0x00,0x00,0xe4,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00, +0x6c,0x6c,0x6c,0x6c,0x10,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x14,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x1c,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x20,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x24,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x28,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x2c,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x30,0x0c,0x00,0x00,0x44,0x6a,0xe9,0x8d,0x34,0x0c,0x00,0x00, +0xcd,0x52,0x96,0x46,0x38,0x0c,0x00,0x00,0x90,0x5a,0x01,0x48,0x3c,0x0c,0x00,0x00, +0x64,0x97,0x97,0x1a,0x40,0x0c,0x00,0x00,0x3f,0x42,0x7c,0x1f,0x44,0x0c,0x00,0x00, +0xb7,0x00,0x01,0x00,0x48,0x0c,0x00,0x00,0x00,0x00,0x02,0xec,0x4c,0x0c,0x00,0x00, +0x03,0x03,0xfc,0x00,0x50,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x54,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x58,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x5c,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x60,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x64,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x68,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x6c,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x70,0x0c,0x00,0x00,0x0d,0x00,0x5a,0x2c,0x74,0x0c,0x00,0x00, +0x1b,0x15,0x86,0x01,0x78,0x0c,0x00,0x00,0x1f,0x00,0x00,0x00,0x7c,0x0c,0x00,0x00, +0x12,0x16,0xb9,0x00,0x80,0x0c,0x00,0x00,0x80,0x00,0x00,0x20,0x84,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0x88,0x0c,0x00,0x00,0x80,0x00,0x00,0x20,0x8c,0x0c,0x00,0x00, +0x00,0x00,0x20,0x08,0x90,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x94,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0x98,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x9c,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xa0,0x0c,0x00,0x00,0x92,0x24,0x49,0x00,0xa4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xa8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xac,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xb0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xb8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xbc,0x0c,0x00,0x00, +0x92,0x24,0x49,0x00,0xc0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xc4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xc8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xd0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xd4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xd8,0x0c,0x00,0x00,0x27,0x24,0xb2,0x64,0xdc,0x0c,0x00,0x00, +0x32,0x69,0x76,0x00,0xe0,0x0c,0x00,0x00,0x22,0x22,0x22,0x00,0xe4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xe8,0x0c,0x00,0x00,0x02,0x43,0x64,0x07,0x00,0x0d,0x00,0x00, +0x80,0x07,0x00,0x00,0x04,0x0d,0x00,0x00,0x03,0x04,0x00,0x00,0x08,0x0d,0x00,0x00, +0x7f,0x90,0x00,0x00,0x0c,0x0d,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x0d,0x00,0x00, +0x99,0x99,0x69,0xa0,0x14,0x0d,0x00,0x00,0x67,0x3c,0x99,0x99,0x18,0x0d,0x00,0x00, +0x6b,0x5b,0x8f,0x6a,0x1c,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x24,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x2c,0x0d,0x00,0x00,0x75,0x19,0x97,0xcc,0x30,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x34,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x3c,0x0d,0x00,0x00,0x93,0x72,0x02,0x00,0x40,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x50,0x0d,0x00,0x00,0x0a,0x14,0x37,0x64,0x54,0x0d,0x00,0x00, +0x02,0xbd,0x4d,0x02,0x58,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x5c,0x0d,0x00,0x00, +0x64,0x20,0x03,0x30,0x60,0x0d,0x00,0x00,0x68,0xde,0x53,0x46,0x64,0x0d,0x00,0x00, +0x3c,0x8a,0x51,0x00,0x68,0x0d,0x00,0x00,0x06,0x01,0x00,0x00,0xff,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x64,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x6c,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x74,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x7c,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x84,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x8c,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x94,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x9c,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0xa4,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0xac,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x9c,0x2d,0x00,0x80,0x10,0x00,0x00,0x00,0x94,0x2d,0x00,0x80,0x10,0x00,0x00,0x00, +0xb4,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0xbc,0x05,0x01,0x80,0x34,0x01,0x00,0x00, +0xc4,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0xcc,0x05,0x01,0x80,0x34,0x01,0x00,0x00, +0xc4,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0xd4,0x05,0x01,0x80,0x30,0x00,0x00,0x00, +0xdc,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0xe4,0x05,0x01,0x80,0x13,0x00,0x00,0x00, +0xec,0x05,0x01,0x80,0x17,0x00,0x00,0x00,0xf4,0x05,0x01,0x80,0x06,0x00,0x00,0x00, +0xfc,0x05,0x01,0x80,0x06,0x00,0x00,0x00,0x04,0x06,0x01,0x80,0x08,0x00,0x00,0x00, +0x0c,0x06,0x01,0x80,0x0c,0x00,0x00,0x00,0x14,0x06,0x01,0x80,0x04,0x00,0x00,0x00, +0x1c,0x06,0x01,0x80,0x1f,0x00,0x00,0x00,0x24,0x06,0x01,0x80,0x01,0x00,0x00,0x00, +0x2c,0x06,0x01,0x80,0x38,0x00,0x00,0x00,0x34,0x06,0x01,0x80,0x04,0x00,0x00,0x00, +0x3c,0x06,0x01,0x80,0x02,0x00,0x00,0x00,0x44,0x06,0x01,0x80,0x04,0x00,0x00,0x00, +0x4c,0x06,0x01,0x80,0x01,0x00,0x00,0x00,0x54,0x06,0x01,0x80,0x01,0x00,0x00,0x00, +0x5c,0x06,0x01,0x80,0x0c,0x00,0x00,0x00,0x64,0x06,0x01,0x80,0x0e,0x00,0x00,0x00, +0x6c,0x06,0x01,0x80,0x0c,0x00,0x00,0x00,0xb8,0x08,0x01,0x80,0x78,0x00,0x00,0x00, +0xf0,0x09,0x01,0x80,0x04,0x00,0x00,0x00,0xf8,0x09,0x01,0x80,0x04,0x00,0x00,0x00, +0xa4,0x2d,0x00,0x80,0x04,0x00,0x00,0x00,0xac,0x2d,0x00,0x80,0x04,0x00,0x00,0x00, +0xb4,0x2d,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x0a,0x01,0x80,0x08,0x00,0x00,0x00, +0x08,0x0a,0x01,0x80,0x10,0x00,0x00,0x00,0x10,0x0a,0x01,0x80,0x01,0x00,0x00,0x00, +0x18,0x0a,0x01,0x80,0x01,0x00,0x00,0x00,0x20,0x0a,0x01,0x80,0x10,0x00,0x00,0x00, +0xc4,0x2d,0x00,0x80,0x00,0xb7,0x00,0x00,0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00, +0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00, +0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00, +0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00, +0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00, +0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00, +0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00, +0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00, +0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00, +0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00, +0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00, +0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00, +0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00, +0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00, +0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00, +0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00, +0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00, +0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00, +0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00, +0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00, +0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00, +0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00, +0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00, +0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00, +0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00, +0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00, +0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00, +0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00, +0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00, +0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00, +0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00, +0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00, +0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00, +0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00, +0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00, +0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00, +0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00, +0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00, +0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00, +0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00, +0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00, +0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00, +0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00, +0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00, +0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00, +0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00, +0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00, +0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00, +0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00, +0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00, +0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00, +0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00, +0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00, +0xff,0xff,0xff,0x00,0x00,0xb7,0x00,0x00,0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00, +0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00, +0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00, +0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00, +0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00, +0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00, +0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00, +0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00, +0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00, +0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00, +0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00, +0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00, +0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00, +0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00, +0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00, +0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00, +0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00, +0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00, +0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00, +0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00, +0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00, +0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00, +0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00, +0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00, +0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00, +0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00, +0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00, +0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00, +0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00, +0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00, +0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00, +0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00, +0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00, +0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00, +0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00, +0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00, +0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00, +0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00, +0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00, +0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00, +0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00, +0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00, +0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00, +0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00, +0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00, +0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00, +0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00, +0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00, +0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00, +0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00, +0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00, +0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00, +0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00, +0xff,0xff,0xff,0x00,0x4f,0x6e,0x41,0x73,0x73,0x6f,0x63,0x52,0x65,0x71,0x00,0x00, +0x4f,0x6e,0x41,0x73,0x73,0x6f,0x63,0x52,0x73,0x70,0x00,0x00,0x4f,0x6e,0x52,0x65, +0x41,0x73,0x73,0x6f,0x63,0x52,0x65,0x71,0x00,0x00,0x00,0x00,0x4f,0x6e,0x52,0x65, +0x41,0x73,0x73,0x6f,0x63,0x52,0x73,0x70,0x00,0x00,0x00,0x00,0x4f,0x6e,0x50,0x72, +0x6f,0x62,0x65,0x52,0x65,0x71,0x00,0x00,0x4f,0x6e,0x50,0x72,0x6f,0x62,0x65,0x52, +0x73,0x70,0x00,0x00,0x4f,0x6e,0x42,0x65,0x61,0x63,0x6f,0x6e,0x00,0x00,0x00,0x00, +0x4f,0x6e,0x41,0x54,0x49,0x4d,0x00,0x00,0x4f,0x6e,0x44,0x69,0x73,0x61,0x73,0x73, +0x6f,0x63,0x00,0x00,0x4f,0x6e,0x41,0x75,0x74,0x68,0x00,0x00,0x4f,0x6e,0x44,0x65, +0x41,0x75,0x74,0x68,0x00,0x00,0x00,0x00,0x4f,0x6e,0x41,0x63,0x74,0x69,0x6f,0x6e, +0x00,0x00,0x00,0x00,0x4f,0x6e,0x45,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x00, +0x00,0x00,0x00,0x00,0xfc,0xa7,0x01,0x80,0x24,0x2f,0x00,0x80,0x10,0x00,0x00,0x00, +0x08,0xa8,0x01,0x80,0x2c,0x2f,0x00,0x80,0x20,0x00,0x00,0x00,0x14,0xa8,0x01,0x80, +0x24,0x2f,0x00,0x80,0x30,0x00,0x00,0x00,0x24,0xa8,0x01,0x80,0x2c,0x2f,0x00,0x80, +0x40,0x00,0x00,0x00,0x34,0xa8,0x01,0x80,0x34,0x2f,0x00,0x80,0x50,0x00,0x00,0x00, +0x40,0xa8,0x01,0x80,0x54,0x2f,0x00,0x80,0x80,0x00,0x00,0x00,0x4c,0xa8,0x01,0x80, +0x04,0x30,0x00,0x80,0x90,0x00,0x00,0x00,0x58,0xa8,0x01,0x80,0x5c,0x2f,0x00,0x80, +0xa0,0x00,0x00,0x00,0x60,0xa8,0x01,0x80,0x6c,0x2f,0x00,0x80,0xb0,0x00,0x00,0x00, +0x6c,0xa8,0x01,0x80,0x64,0x2f,0x00,0x80,0xc0,0x00,0x00,0x00,0x74,0xa8,0x01,0x80, +0x74,0x2f,0x00,0x80,0xd0,0x00,0x00,0x00,0x80,0xa8,0x01,0x80,0x7c,0x2f,0x00,0x80, +0x0c,0x00,0x00,0x00,0x8c,0xa8,0x01,0x80,0x98,0x2f,0x00,0x80,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x04,0x05,0x06,0x07,0x08,0xff,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x01,0x80,0x00,0xaa,0x01,0x80, +0x31,0x10,0x10,0x00,0x00,0x30,0x00,0x00,0x31,0x20,0x10,0x00,0x00,0x30,0x00,0x00, +0x31,0x28,0x10,0x00,0x00,0x30,0x00,0x00,0x31,0x2c,0x10,0x10,0x00,0x30,0x00,0x00, +0x31,0x2f,0x10,0x10,0x00,0x30,0x00,0x00,0x31,0x30,0x18,0x00,0x00,0x30,0x00,0x00, +0x31,0x30,0x20,0x10,0x00,0x30,0x00,0x00,0x22,0x20,0x18,0x08,0x00,0x20,0x00,0x00, +0x22,0x21,0x14,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x1c,0x08,0x00,0x20,0x00,0x00, +0x22,0x21,0x20,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x10,0x00,0x20,0x00,0x00, +0x22,0x21,0x20,0x18,0x00,0x20,0x00,0x00,0x1a,0x19,0x18,0x10,0x00,0x18,0x00,0x00, +0x12,0x11,0x10,0x08,0x00,0x10,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x08,0x00,0x00, +0x0a,0x09,0x08,0x02,0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x04,0x00,0x08,0x00,0x00, +0x0a,0x09,0x08,0x06,0x00,0x08,0x00,0x00,0x08,0x07,0x06,0x04,0x00,0x06,0x00,0x00, +0x06,0x05,0x04,0x02,0x00,0x04,0x00,0x00,0x06,0x05,0x04,0x03,0x00,0x04,0x00,0x00, +0x05,0x04,0x03,0x02,0x00,0x03,0x00,0x00,0x09,0x08,0x07,0x06,0x07,0x06,0x06,0x05, +0x05,0x04,0x04,0x03,0x06,0x05,0x05,0x04,0x04,0x03,0x03,0x03,0x05,0x04,0x04,0x03, +0x03,0x02,0x02,0x02,0x00,0x09,0x08,0x07,0x06,0x07,0x06,0x06,0x05,0x05,0x04,0x04, +0x03,0x05,0x04,0x04,0x03,0x03,0x02,0x02,0x02,0x04,0x03,0x03,0x02,0x02,0x01,0x01, +0x01,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20, +0x08,0x08,0x08,0x08,0x20,0x20,0x20,0x20,0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20, +0x30,0x08,0x08,0x08,0x08,0x18,0x18,0x18,0x18,0x18,0x20,0x30,0x30,0x10,0x20,0x20, +0x20,0x20,0x20,0x30,0x30,0x08,0x10,0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x08,0x08,0x08,0x08, +0x08,0x20,0x20,0x20,0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20,0x20,0x08,0x08,0x08, +0x08,0x18,0x18,0x18,0x18,0x18,0x20,0x30,0x30,0x10,0x20,0x20,0x20,0x20,0x20,0x30, +0x30,0x08,0x10,0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x0a,0x09,0x08,0x04, +0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00, +0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a, +0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x12,0x11, +0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08, +0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x18, +0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x1c,0x08,0x00,0x22,0x20,0x18,0x08,0x00, +0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a, +0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x10,0x00,0x22,0x21, +0x20,0x08,0x00,0x22,0x21,0x1c,0x08,0x00,0x31,0x30,0x18,0x00,0x00,0x0a,0x09,0x08, +0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04, +0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00, +0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x31, +0x2c,0x10,0x10,0x00,0x31,0x28,0x10,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21, +0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x14, +0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2c,0x10,0x10, +0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00, +0x22,0x21,0x20,0x18,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31, +0x2f,0x10,0x10,0x00,0x31,0x10,0x10,0x00,0x00,0x31,0x2c,0x10,0x10,0x00,0x00,0x00, +0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a, +0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09, +0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10, +0x08,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x0a,0x09,0x08,0x04, +0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00, +0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x1c,0x08,0x00,0x22, +0x21,0x14,0x08,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09, +0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20, +0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x14,0x08,0x00,0x22,0x21,0x14,0x08, +0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00, +0x0a,0x09,0x08,0x04,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a, +0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x22,0x21, +0x20,0x08,0x00,0x31,0x2c,0x10,0x10,0x00,0x31,0x28,0x10,0x00,0x00,0x12,0x11,0x10, +0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x08, +0x00,0x22,0x21,0x14,0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x31,0x30,0x20,0x10,0x00, +0x31,0x2c,0x10,0x10,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22, +0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2f, +0x10,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,0x10,0x10,0x00,0x00,0x31,0x2c,0x10, +0x10,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x02,0x04,0x08,0x0c,0x10,0x18,0x20,0x30, +0x02,0x04,0x08,0x0c,0x10,0x18,0x20,0x30,0x06,0x0c,0x10,0x18,0x24,0x30,0x3c,0x48, +0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x27,0x2c, +0x19,0x1b,0x1e,0x20,0x23,0x29,0x2a,0x2b,0x00,0x00,0x00,0x00,0x25,0x29,0x2b,0x2e, +0x2e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x48,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0xd8,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0xe0,0x01,0x00,0x00, +0x30,0x02,0x00,0x00,0x2c,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0xe0,0x01,0x00,0x00, +0xd0,0x02,0x00,0x00,0x80,0x0c,0x00,0x00,0x80,0x0c,0x00,0x00,0x80,0x0c,0x00,0x00, +0xa0,0x0f,0x00,0x00,0xa0,0x0f,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x00,0x00, +0x60,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3c,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x64,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x40,0x06,0x00,0x00,0x40,0x06,0x00,0x00, +0x40,0x06,0x00,0x00,0xd0,0x07,0x00,0x00,0xd0,0x07,0x00,0x00,0x30,0x7a,0x00,0x80, +0x88,0x85,0x00,0x80,0x88,0x85,0x00,0x80,0x88,0x85,0x00,0x80,0x88,0x85,0x00,0x80, +0xd8,0x83,0x00,0x80,0x38,0x7a,0x00,0x80,0x30,0x7a,0x00,0x80,0x30,0x7a,0x00,0x80, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb8,0x86,0x00,0x80,0xb8,0x86,0x00,0x80, +0xb8,0x86,0x00,0x80,0xb8,0x86,0x00,0x80,0xfc,0x6c,0x01,0x80,0x1c,0x6d,0x01,0x80, +0x04,0x6d,0x01,0x80,0x0c,0x6d,0x01,0x80,0x14,0x6d,0x01,0x80,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x08,0x04,0x04,0x08,0x02,0x02,0x01,0x01,0x50,0x53,0x00,0x00, +0xf8,0x07,0x00,0x80,0xec,0x07,0x00,0x80,0xe0,0x07,0x00,0x80,0xd4,0x07,0x00,0x80, +0xc8,0x07,0x00,0x80,0xbc,0x07,0x00,0x80,0xb0,0x07,0x00,0x80,0xa4,0x07,0x00,0x80, +0x98,0x07,0x00,0x80,0x8c,0x07,0x00,0x80,0x44,0x07,0x00,0x80,0xb0,0x03,0x25,0xb0, +0x2c,0x00,0x2a,0xb0,0x78,0x1b,0x02,0x80,0xb0,0x03,0x25,0xb0,0x44,0x44,0x33,0x33, +0x06,0x00,0x2a,0xb0,0x3c,0x47,0x00,0x80,0x30,0x47,0x00,0x80,0x24,0x47,0x00,0x80, +0x18,0x47,0x00,0x80,0x0c,0x47,0x00,0x80,0x00,0x47,0x00,0x80,0xf4,0x46,0x00,0x80, +0xe8,0x46,0x00,0x80,0xdc,0x46,0x00,0x80,0xd0,0x46,0x00,0x80,0xc4,0x46,0x00,0x80, +0xb8,0x46,0x00,0x80,0x60,0x3f,0x01,0x80,0x48,0x3f,0x01,0x80,0x30,0x3f,0x01,0x80, +0x18,0x3f,0x01,0x80,0x00,0x3f,0x01,0x80,0xe8,0x3e,0x01,0x80,0xb4,0x3e,0x01,0x80, +0x00,0x02,0x00,0x00,0x08,0x09,0x00,0x00,0x0c,0x58,0x00,0x80,0x18,0x58,0x00,0x80, +0x24,0x58,0x00,0x80,0x30,0x58,0x00,0x80,0x0c,0x58,0x00,0x80,0x0c,0x58,0x00,0x80, +0x0c,0x58,0x00,0x80,0x0c,0x58,0x00,0x80,0x3c,0x58,0x00,0x80,0x48,0x58,0x00,0x80, +0x54,0x58,0x00,0x80,0x60,0x58,0x00,0x80,0x78,0x1b,0x02,0x80,0x78,0x1b,0x02,0x80, +0x84,0x0e,0x25,0xb0,0x88,0x0e,0x25,0xb0,0x8c,0x0e,0x25,0xb0,0xd0,0x0e,0x25,0xb0, +0xd8,0x0e,0x25,0xb0,0x20,0x08,0x25,0xb0,0xfe,0x01,0x80,0x7f,0xe2,0x01,0x80,0x78, +0xc7,0x01,0xc0,0x71,0xae,0x01,0x80,0x6b,0x95,0x01,0x40,0x65,0x7f,0x01,0xc0,0x5f, +0x69,0x01,0x40,0x5a,0x55,0x01,0x40,0x55,0x42,0x01,0x80,0x50,0x30,0x01,0x00,0x4c, +0x1f,0x01,0xc0,0x47,0x0f,0x01,0xc0,0x43,0x00,0x01,0x00,0x40,0xf2,0x00,0x80,0x3c, +0xe4,0x00,0x00,0x39,0xd7,0x00,0xc0,0x35,0xcb,0x00,0xc0,0x32,0xc0,0x00,0x00,0x30, +0xb5,0x00,0x40,0x2d,0xab,0x00,0xc0,0x2a,0xa2,0x00,0x80,0x28,0x98,0x00,0x00,0x26, +0x90,0x00,0x00,0x24,0x88,0x00,0x00,0x22,0x80,0x00,0x00,0x20,0x79,0x00,0x40,0x1e, +0x72,0x00,0x80,0x1c,0x6c,0x00,0x00,0x1b,0x66,0x00,0x80,0x19,0x60,0x00,0x00,0x18, +0x5b,0x00,0xc0,0x16,0x56,0x00,0x80,0x15,0x51,0x00,0x40,0x14,0x4c,0x00,0x00,0x13, +0x48,0x00,0x00,0x12,0x44,0x00,0x00,0x11,0x40,0x00,0x00,0x10,0x36,0x35,0x2e,0x25, +0x1c,0x12,0x09,0x04,0x33,0x32,0x2b,0x23,0x1a,0x11,0x08,0x04,0x30,0x2f,0x29,0x21, +0x19,0x10,0x08,0x03,0x2d,0x2d,0x27,0x1f,0x18,0x0f,0x08,0x03,0x2b,0x2a,0x25,0x1e, +0x16,0x0e,0x07,0x03,0x28,0x28,0x22,0x1c,0x15,0x0d,0x07,0x03,0x26,0x25,0x21,0x1b, +0x14,0x0d,0x06,0x03,0x24,0x23,0x1f,0x19,0x13,0x0c,0x06,0x03,0x22,0x21,0x1d,0x18, +0x11,0x0b,0x06,0x02,0x20,0x20,0x1b,0x16,0x11,0x08,0x05,0x02,0x1f,0x1e,0x1a,0x15, +0x10,0x0a,0x05,0x02,0x1d,0x1c,0x18,0x14,0x0f,0x0a,0x05,0x02,0x1b,0x1a,0x17,0x13, +0x0e,0x09,0x04,0x02,0x1a,0x19,0x16,0x12,0x0d,0x09,0x04,0x02,0x18,0x17,0x15,0x11, +0x0c,0x08,0x04,0x02,0x17,0x16,0x13,0x10,0x0c,0x08,0x04,0x02,0x16,0x15,0x12,0x0f, +0x0b,0x07,0x04,0x01,0x14,0x14,0x11,0x0e,0x0b,0x07,0x03,0x02,0x13,0x13,0x10,0x0d, +0x0a,0x06,0x03,0x01,0x12,0x12,0x0f,0x0c,0x09,0x06,0x03,0x01,0x11,0x11,0x0f,0x0c, +0x09,0x06,0x03,0x01,0x10,0x10,0x0e,0x0b,0x08,0x05,0x03,0x01,0x0f,0x0f,0x0d,0x0b, +0x08,0x05,0x03,0x01,0x0e,0x0e,0x0c,0x0a,0x08,0x05,0x02,0x01,0x0d,0x0d,0x0c,0x0a, +0x07,0x05,0x02,0x01,0x0d,0x0c,0x0b,0x09,0x07,0x04,0x02,0x01,0x0c,0x0c,0x0a,0x09, +0x06,0x04,0x02,0x01,0x0b,0x0b,0x0a,0x08,0x06,0x04,0x02,0x01,0x0b,0x0a,0x09,0x08, +0x06,0x04,0x02,0x01,0x0a,0x0a,0x09,0x07,0x05,0x03,0x02,0x01,0x0a,0x09,0x08,0x07, +0x05,0x03,0x02,0x01,0x09,0x09,0x08,0x06,0x05,0x03,0x01,0x01,0x09,0x08,0x07,0x06, +0x04,0x03,0x01,0x01,0x36,0x35,0x2e,0x1b,0x00,0x00,0x00,0x00,0x33,0x32,0x2b,0x19, +0x00,0x00,0x00,0x00,0x30,0x2f,0x29,0x18,0x00,0x00,0x00,0x00,0x2d,0x2d,0x17,0x17, +0x00,0x00,0x00,0x00,0x2b,0x2a,0x25,0x15,0x00,0x00,0x00,0x00,0x28,0x28,0x24,0x14, +0x00,0x00,0x00,0x00,0x26,0x25,0x21,0x13,0x00,0x00,0x00,0x00,0x24,0x23,0x1f,0x12, +0x00,0x00,0x00,0x00,0x22,0x21,0x1d,0x11,0x00,0x00,0x00,0x00,0x20,0x20,0x1b,0x10, +0x00,0x00,0x00,0x00,0x1f,0x1e,0x1a,0x0f,0x00,0x00,0x00,0x00,0x1d,0x1c,0x18,0x0e, +0x00,0x00,0x00,0x00,0x1b,0x1a,0x17,0x0e,0x00,0x00,0x00,0x00,0x1a,0x19,0x16,0x0d, +0x00,0x00,0x00,0x00,0x18,0x17,0x15,0x0c,0x00,0x00,0x00,0x00,0x17,0x16,0x13,0x0b, +0x00,0x00,0x00,0x00,0x16,0x15,0x12,0x0b,0x00,0x00,0x00,0x00,0x14,0x14,0x11,0x0a, +0x00,0x00,0x00,0x00,0x13,0x13,0x10,0x0a,0x00,0x00,0x00,0x00,0x12,0x12,0x0f,0x09, +0x00,0x00,0x00,0x00,0x11,0x11,0x0f,0x09,0x00,0x00,0x00,0x00,0x10,0x10,0x0e,0x08, +0x00,0x00,0x00,0x00,0x0f,0x0f,0x0d,0x08,0x00,0x00,0x00,0x00,0x0e,0x0e,0x0c,0x07, +0x00,0x00,0x00,0x00,0x0d,0x0d,0x0c,0x07,0x00,0x00,0x00,0x00,0x0d,0x0c,0x0b,0x06, +0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x06,0x00,0x00,0x00,0x00,0x0b,0x0b,0x0a,0x06, +0x00,0x00,0x00,0x00,0x0b,0x0a,0x09,0x05,0x00,0x00,0x00,0x00,0x0a,0x0a,0x09,0x05, +0x00,0x00,0x00,0x00,0x0a,0x09,0x08,0x05,0x00,0x00,0x00,0x00,0x09,0x09,0x08,0x05, +0x00,0x00,0x00,0x00,0x09,0x08,0x07,0x04,0x00,0x00,0x00,0x00,0x06,0x00,0x2a,0xb0, +0x05,0x00,0x2a,0xb0,0x34,0x7b,0x00,0x80,0xbc,0x7b,0x00,0x80,0x60,0x7b,0x00,0x80, +0xbc,0x7b,0x00,0x80,0xbc,0x7b,0x00,0x80,0xbc,0x7b,0x00,0x80,0xbc,0x7b,0x00,0x80, +0x08,0x7b,0x00,0x80,0x00,0x01,0x02,0x02,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x28,0x28,0x28,0x28,0x28,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x41,0x41,0x41,0x41,0x41,0x41,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x42,0x42,0x42,0x42,0x42,0x42,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x36,0xc2,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x45,0xc4,0xf0,0x00,0x45,0xc4,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x45,0xb5,0x60,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x02, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0xc7,0x00,0xb8,0xff,0xff,0xff,0xff, +}; + +u8 Rtl8192SEFwMainArray[MainArrayLength] = { +0x0, }; + +u8 Rtl8192SEFwDataArray[DataArrayLength] = { +0x0, }; + +u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength] = { +0x01c,0x07000000, +0x800,0x00040000, +0x804,0x00008003, +0x808,0x0000fc00, +0x80c,0x0000000a, +0x810,0x10005088, +0x814,0x020c3d10, +0x818,0x00200185, +0x81c,0x00000000, +0x820,0x01000000, +0x824,0x00390004, +0x828,0x01000000, +0x82c,0x00390004, +0x830,0x00000004, +0x834,0x00690200, +0x838,0x00000004, +0x83c,0x00690200, +0x840,0x00010000, +0x844,0x00010000, +0x848,0x00000000, +0x84c,0x00000000, +0x850,0x00000000, +0x854,0x00000000, +0x858,0x48484848, +0x85c,0x65a965a9, +0x860,0x0f7f0130, +0x864,0x0f7f0130, +0x868,0x0f7f0130, +0x86c,0x0f7f0130, +0x870,0x03000700, +0x874,0x03000300, +0x878,0x00020002, +0x87c,0x004f0201, +0x880,0xa8300ac1, +0x884,0x00000058, +0x888,0x00000008, +0x88c,0x00000004, +0x890,0x00000000, +0x894,0xfffffffe, +0x898,0x40302010, +0x89c,0x00706050, +0x8b0,0x00000000, +0x8e0,0x00000000, +0x8e4,0x00000000, +0xe00,0x30333333, +0xe04,0x2a2d2e2f, +0xe08,0x00003232, +0xe10,0x30333333, +0xe14,0x2a2d2e2f, +0xe18,0x30333333, +0xe1c,0x2a2d2e2f, +0xe30,0x01007c00, +0xe34,0x01004800, +0xe38,0x1000dc1f, +0xe3c,0x10008c1f, +0xe40,0x021400a0, +0xe44,0x281600a0, +0xe48,0xf8000001, +0xe4c,0x00002910, +0xe50,0x01007c00, +0xe54,0x01004800, +0xe58,0x1000dc1f, +0xe5c,0x10008c1f, +0xe60,0x021400a0, +0xe64,0x281600a0, +0xe6c,0x00002910, +0xe70,0x31ed92fb, +0xe74,0x361536fb, +0xe78,0x361536fb, +0xe7c,0x361536fb, +0xe80,0x361536fb, +0xe84,0x000d92fb, +0xe88,0x000d92fb, +0xe8c,0x31ed92fb, +0xed0,0x31ed92fb, +0xed4,0x31ed92fb, +0xed8,0x000d92fb, +0xedc,0x000d92fb, +0xee0,0x000d92fb, +0xee4,0x015e5448, +0xee8,0x21555448, +0x900,0x00000000, +0x904,0x00000023, +0x908,0x00000000, +0x90c,0x01121313, +0xa00,0x00d047c8, +0xa04,0x80ff0008, +0xa08,0x88cd8300, +0xa0c,0x2e62120f, +0xa10,0x9500bb78, +0xa14,0x11144028, +0xa18,0x00881117, +0xa1c,0x89140f00, +0xa20,0x1a1b0000, +0xa24,0x090e1317, +0xa28,0x00000204, +0xa2c,0x10d30000, +0xc00,0x40071d40, +0xc04,0x00a05633, +0xc08,0x000000e4, +0xc0c,0x6c6c6c6c, +0xc10,0x08800000, +0xc14,0x40000100, +0xc18,0x08000000, +0xc1c,0x40000100, +0xc20,0x08000000, +0xc24,0x40000100, +0xc28,0x08000000, +0xc2c,0x40000100, +0xc30,0x6de9ac44, +0xc34,0x469652cf, +0xc38,0x49795994, +0xc3c,0x0a979764, +0xc40,0x1f7c403f, +0xc44,0x000100b7, +0xc48,0xec020000, +0xc4c,0x007f037f, +0xc50,0x69543420, +0xc54,0x433c0094, +0xc58,0x69543420, +0xc5c,0x433c0094, +0xc60,0x69543420, +0xc64,0x433c0094, +0xc68,0x69543420, +0xc6c,0x433c0094, +0xc70,0x2c7f000d, +0xc74,0x0186175b, +0xc78,0x0000001f, +0xc7c,0x00b91612, +0xc80,0x40000100, +0xc84,0x20f60000, +0xc88,0x20000080, +0xc8c,0x20200000, +0xc90,0x40000100, +0xc94,0x00000000, +0xc98,0x40000100, +0xc9c,0x00000000, +0xca0,0x00492492, +0xca4,0x00000000, +0xca8,0x00000000, +0xcac,0x00000000, +0xcb0,0x00000000, +0xcb4,0x00000000, +0xcb8,0x00000000, +0xcbc,0x28000000, +0xcc0,0x00000000, +0xcc4,0x00000000, +0xcc8,0x00000000, +0xccc,0x00000000, +0xcd0,0x00000000, +0xcd4,0x00000000, +0xcd8,0x64b22427, +0xcdc,0x00766932, +0xce0,0x00222222, +0xce4,0x00000000, +0xce8,0x37644302, +0xcec,0x2f97d40c, +0xd00,0x00000750, +0xd04,0x00000403, +0xd08,0x0000907f, +0xd0c,0x00000001, +0xd10,0xa0633333, +0xd14,0x33333c63, +0xd18,0x6a8f5b6b, +0xd1c,0x00000000, +0xd20,0x00000000, +0xd24,0x00000000, +0xd28,0x00000000, +0xd2c,0xcc979975, +0xd30,0x00000000, +0xd34,0x00000000, +0xd38,0x00000000, +0xd3c,0x00027293, +0xd40,0x00000000, +0xd44,0x00000000, +0xd48,0x00000000, +0xd50,0x6437140a, +0xd54,0x024dbd02, +0xd58,0x00000000, +0xd5c,0x30032064, +0xd60,0x4653de68, +0xd64,0x00518a3c, +0xd68,0x00002101, +0xf14,0x00000003, +0xf4c,0x00000000, +0xf00,0x00000300, +}; + +u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength] = { +0x0, }; + +u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength] = { +0x844,0xffffffff,0x00010000, +0x804,0x0000000f,0x00000001, +0x824,0x00f0000f,0x00300004, +0x82c,0x00f0000f,0x00100002, +0x870,0x04000000,0x00000001, +0x864,0x00000400,0x00000000, +0x878,0x000f000f,0x00000002, +0xe74,0x0f000000,0x00000002, +0xe78,0x0f000000,0x00000002, +0xe7c,0x0f000000,0x00000002, +0xe80,0x0f000000,0x00000002, +0x90c,0x000000ff,0x00000011, +0xc04,0x000000ff,0x00000011, +0xd04,0x0000000f,0x00000001, +0x1f4,0xffff0000,0x00007777, +0x234,0xf8000000,0x0000000a, +}; + +u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength] = { +0x804,0x0000000f,0x00000003, +0x824,0x00f0000f,0x00300004, +0x82c,0x00f0000f,0x00300002, +0x870,0x04000000,0x00000001, +0x864,0x00000400,0x00000000, +0x878,0x000f000f,0x00000002, +0xe74,0x0f000000,0x00000002, +0xe78,0x0f000000,0x00000002, +0xe7c,0x0f000000,0x00000002, +0xe80,0x0f000000,0x00000002, +0x90c,0x000000ff,0x00000011, +0xc04,0x000000ff,0x00000033, +0xd04,0x0000000f,0x00000003, +0x1f4,0xffff0000,0x00007777, +0x234,0xf8000000,0x0000000a, +}; + +u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength] = { +0x804,0x0000000f,0x00000003, +0x824,0x00f0000f,0x00300004, +0x82c,0x00f0000f,0x00300004, +0x870,0x04000000,0x00000001, +0x864,0x00000400,0x00000001, +0x878,0x000f000f,0x00020002, +0xe74,0x0f000000,0x00000006, +0xe78,0x0f000000,0x00000006, +0xe7c,0x0f000000,0x00000006, +0xe80,0x0f000000,0x00000006, +0x90c,0x000000ff,0x00000033, +0xc04,0x000000ff,0x00000033, +0xd04,0x0000000f,0x00000003, +0x1f4,0xffff0000,0x0000ffff, +0x234,0xf8000000,0x00000013, +}; + +u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength] = { +0xe00,0xffffffff,0x06090909, +0xe04,0xffffffff,0x00030406, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x0a0c0d0e, +0xe14,0xffffffff,0x03040508, +0xe18,0xffffffff,0x0a0c0d0e, +0xe1c,0xffffffff,0x03040508, +0xe00,0xffffffff,0x04040404, +0xe04,0xffffffff,0x00020204, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x02040404, +0xe14,0xffffffff,0x00000002, +0xe18,0xffffffff,0x02040404, +0xe1c,0xffffffff,0x00000002, +0xe00,0xffffffff,0x04040404, +0xe04,0xffffffff,0x00020204, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x02040404, +0xe14,0xffffffff,0x00000002, +0xe18,0xffffffff,0x02040404, +0xe1c,0xffffffff,0x00000002, +0xe00,0xffffffff,0x02020202, +0xe04,0xffffffff,0x00020202, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x02020202, +0xe14,0xffffffff,0x00000002, +0xe18,0xffffffff,0x02020202, +0xe1c,0xffffffff,0x00000002, +}; + +u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength] = { +0x000,0x00030159, +0x001,0x00030250, +0x002,0x00010000, +0x010,0x0008000f, +0x011,0x000231fc, +0x010,0x000c000f, +0x011,0x0003f9f8, +0x010,0x0002000f, +0x011,0x00020101, +0x014,0x0001093e, +0x014,0x0009093e, +0x015,0x0000f8f4, +0x017,0x000f6500, +0x01a,0x00013056, +0x01b,0x00060000, +0x01c,0x00000300, +0x01e,0x00031059, +0x021,0x00054000, +0x022,0x0000083c, +0x023,0x00001558, +0x024,0x00000060, +0x025,0x00022583, +0x026,0x0000f200, +0x027,0x000eacf1, +0x028,0x0009bd54, +0x029,0x00004582, +0x02a,0x00000001, +0x02b,0x00021334, +0x02a,0x00000000, +0x02b,0x0000000a, +0x02a,0x00000001, +0x02b,0x00000808, +0x02b,0x00053333, +0x02c,0x0000000c, +0x02a,0x00000002, +0x02b,0x00000808, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000003, +0x02b,0x00000808, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000004, +0x02b,0x00000808, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000005, +0x02b,0x00000709, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x00000006, +0x02b,0x00000709, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000007, +0x02b,0x00000709, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000008, +0x02b,0x00000709, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000009, +0x02b,0x0000060a, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000a, +0x02b,0x0000060a, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x0000000b, +0x02b,0x0000060a, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x0000000c, +0x02b,0x0000060a, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x0000000d, +0x02b,0x0000050b, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000e, +0x02b,0x0000050b, +0x02b,0x00066623, +0x02c,0x0000001a, +0x02a,0x000e4000, +0x030,0x00020000, +0x031,0x000b9631, +0x032,0x0000130d, +0x033,0x00000187, +0x013,0x00019e6c, +0x013,0x00015e94, +0x000,0x00010159, +0x018,0x0000f401, +0x0fe,0x00000000, +0x01e,0x0003105b, +0x0fe,0x00000000, +0x000,0x00030159, +0x010,0x0004000f, +0x011,0x000203f9, +}; + +u32 Rtl8192SERadioB_Array[RadioB_ArrayLength] = { +0x000,0x00030159, +0x001,0x00001041, +0x002,0x00011000, +0x005,0x00080fc0, +0x007,0x000fc803, +0x013,0x00017cb0, +0x013,0x00011cc0, +0x013,0x0000dc60, +0x013,0x00008c60, +0x013,0x00004450, +0x013,0x00000020, +}; + +u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength] = { +0x000,0x00030159, +0x001,0x00030250, +0x002,0x00010000, +0x010,0x0008000f, +0x011,0x000231fc, +0x010,0x000c000f, +0x011,0x0003f9f8, +0x014,0x0001093e, +0x014,0x0009093e, +0x015,0x000198f4, +0x017,0x000f6500, +0x01a,0x00013056, +0x01b,0x00060000, +0x01c,0x00000300, +0x01e,0x00031059, +0x021,0x00054000, +0x022,0x0000083c, +0x023,0x00001558, +0x024,0x00000060, +0x025,0x00022583, +0x026,0x0000f200, +0x027,0x000eacf1, +0x028,0x000dbd54, +0x029,0x00004582, +0x02a,0x00000001, +0x02b,0x00021334, +0x02a,0x00000000, +0x02b,0x0000000a, +0x02a,0x00000001, +0x02b,0x00000808, +0x02b,0x00053333, +0x02c,0x0000000c, +0x02a,0x00000002, +0x02b,0x00000808, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000003, +0x02b,0x00000808, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000004, +0x02b,0x00000808, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000005, +0x02b,0x00000709, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x00000006, +0x02b,0x00000709, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000007, +0x02b,0x00000709, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000008, +0x02b,0x00000709, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000009, +0x02b,0x0000060a, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000a, +0x02b,0x0000060a, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x0000000b, +0x02b,0x0000060a, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x0000000c, +0x02b,0x0000060a, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x0000000d, +0x02b,0x0000050b, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000e, +0x02b,0x0000050b, +0x02b,0x00066623, +0x02c,0x0000001a, +0x02a,0x000e4000, +0x030,0x00020000, +0x031,0x000b9631, +0x033,0x00000187, +0x013,0x00019e6c, +0x013,0x00015e94, +0x000,0x00010159, +0x018,0x0000f401, +0x0fe,0x00000000, +0x01e,0x0003105b, +0x0fe,0x00000000, +0x000,0x00030159, +0x010,0x0004000f, +0x011,0x000203f9, +}; + +u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength] = { +0x000,0x00030159, +0x001,0x00030250, +0x002,0x00010000, +0x010,0x0008000f, +0x011,0x000231fc, +0x010,0x000c000f, +0x011,0x0003f9f8, +0x014,0x0001093e, +0x014,0x0009093e, +0x015,0x000198f4, +0x017,0x000f6500, +0x01a,0x00013056, +0x01b,0x00060000, +0x01c,0x00000300, +0x01e,0x00031059, +0x021,0x00054000, +0x022,0x0000083c, +0x023,0x00001558, +0x024,0x00000060, +0x025,0x00022583, +0x026,0x0000f200, +0x027,0x000eacf1, +0x028,0x000dbd54, +0x029,0x00004582, +0x02a,0x00000001, +0x02b,0x00021334, +0x02a,0x00000000, +0x02b,0x0000000a, +0x02a,0x00000001, +0x02b,0x00000808, +0x02b,0x00053333, +0x02c,0x0000000c, +0x02a,0x00000002, +0x02b,0x00000808, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000003, +0x02b,0x00000808, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000004, +0x02b,0x00000808, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000005, +0x02b,0x00000709, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x00000006, +0x02b,0x00000709, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000007, +0x02b,0x00000709, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000008, +0x02b,0x00000709, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000009, +0x02b,0x0000060a, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000a, +0x02b,0x0000060a, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x0000000b, +0x02b,0x0000060a, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x0000000c, +0x02b,0x0000060a, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x0000000d, +0x02b,0x0000050b, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000e, +0x02b,0x0000050b, +0x02b,0x00066623, +0x02c,0x0000001a, +0x02a,0x000e4000, +0x030,0x00020000, +0x031,0x000b9631, +0x033,0x00000187, +0x013,0x00019e6c, +0x013,0x00015e94, +0x000,0x00010159, +0x018,0x0000f401, +0x0fe,0x00000000, +0x01e,0x0003105b, +0x0fe,0x00000000, +0x000,0x00030159, +0x010,0x0004000f, +0x011,0x000203f9, +}; + +u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength] = { +0x000,0x00030159, +0x001,0x00001041, +0x002,0x00011000, +0x005,0x00080fc0, +0x007,0x000fc803, +}; + +u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength] = { +0x020,0x00000035, +0x048,0x0000000e, +0x049,0x000000f0, +0x04a,0x00000077, +0x04b,0x00000083, +0x0b5,0x00000021, +0x0dc,0x000000ff, +0x0dd,0x000000ff, +0x0de,0x000000ff, +0x0df,0x000000ff, +0x116,0x00000000, +0x117,0x00000000, +0x118,0x00000000, +0x119,0x00000000, +0x11a,0x00000000, +0x11b,0x00000000, +0x11c,0x00000000, +0x11d,0x00000000, +0x160,0x0000000b, +0x161,0x0000000b, +0x162,0x0000000b, +0x163,0x0000000b, +0x164,0x0000000b, +0x165,0x0000000b, +0x166,0x0000000b, +0x167,0x0000000b, +0x168,0x0000000b, +0x169,0x0000000b, +0x16a,0x0000000b, +0x16b,0x0000000b, +0x16c,0x0000000b, +0x16d,0x0000000b, +0x16e,0x0000000b, +0x16f,0x0000000b, +0x170,0x0000000b, +0x171,0x0000000b, +0x172,0x0000000b, +0x173,0x0000000b, +0x174,0x0000000b, +0x175,0x0000000b, +0x176,0x0000000b, +0x177,0x0000000b, +0x178,0x0000000b, +0x179,0x0000000b, +0x17a,0x0000000b, +0x17b,0x0000000b, +0x17c,0x0000000b, +0x17d,0x0000000b, +0x17e,0x0000000b, +0x17f,0x0000000b, +0x236,0x0000000c, +0x503,0x00000022, +0x560,0x00000000, +}; + +u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength] = { +0x0, }; + +u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength] = { +0xc78,0x7f000001, +0xc78,0x7f010001, +0xc78,0x7e020001, +0xc78,0x7d030001, +0xc78,0x7c040001, +0xc78,0x7b050001, +0xc78,0x7a060001, +0xc78,0x79070001, +0xc78,0x78080001, +0xc78,0x77090001, +0xc78,0x760a0001, +0xc78,0x750b0001, +0xc78,0x740c0001, +0xc78,0x730d0001, +0xc78,0x720e0001, +0xc78,0x710f0001, +0xc78,0x70100001, +0xc78,0x6f110001, +0xc78,0x6f120001, +0xc78,0x6e130001, +0xc78,0x6d140001, +0xc78,0x6d150001, +0xc78,0x6c160001, +0xc78,0x6b170001, +0xc78,0x6a180001, +0xc78,0x6a190001, +0xc78,0x691a0001, +0xc78,0x681b0001, +0xc78,0x671c0001, +0xc78,0x661d0001, +0xc78,0x651e0001, +0xc78,0x641f0001, +0xc78,0x63200001, +0xc78,0x4c210001, +0xc78,0x4b220001, +0xc78,0x4a230001, +0xc78,0x49240001, +0xc78,0x48250001, +0xc78,0x47260001, +0xc78,0x46270001, +0xc78,0x45280001, +0xc78,0x44290001, +0xc78,0x2c2a0001, +0xc78,0x2b2b0001, +0xc78,0x2a2c0001, +0xc78,0x292d0001, +0xc78,0x282e0001, +0xc78,0x272f0001, +0xc78,0x26300001, +0xc78,0x25310001, +0xc78,0x24320001, +0xc78,0x23330001, +0xc78,0x22340001, +0xc78,0x09350001, +0xc78,0x08360001, +0xc78,0x07370001, +0xc78,0x06380001, +0xc78,0x05390001, +0xc78,0x043a0001, +0xc78,0x033b0001, +0xc78,0x023c0001, +0xc78,0x013d0001, +0xc78,0x003e0001, +0xc78,0x003f0001, +0xc78,0x7f400001, +0xc78,0x7f410001, +0xc78,0x7e420001, +0xc78,0x7d430001, +0xc78,0x7c440001, +0xc78,0x7b450001, +0xc78,0x7a460001, +0xc78,0x79470001, +0xc78,0x78480001, +0xc78,0x77490001, +0xc78,0x764a0001, +0xc78,0x754b0001, +0xc78,0x744c0001, +0xc78,0x734d0001, +0xc78,0x724e0001, +0xc78,0x714f0001, +0xc78,0x70500001, +0xc78,0x6f510001, +0xc78,0x6f520001, +0xc78,0x6e530001, +0xc78,0x6d540001, +0xc78,0x6d550001, +0xc78,0x6c560001, +0xc78,0x6b570001, +0xc78,0x6a580001, +0xc78,0x6a590001, +0xc78,0x695a0001, +0xc78,0x685b0001, +0xc78,0x675c0001, +0xc78,0x665d0001, +0xc78,0x655e0001, +0xc78,0x645f0001, +0xc78,0x63600001, +0xc78,0x4c610001, +0xc78,0x4b620001, +0xc78,0x4a630001, +0xc78,0x49640001, +0xc78,0x48650001, +0xc78,0x47660001, +0xc78,0x46670001, +0xc78,0x45680001, +0xc78,0x44690001, +0xc78,0x2c6a0001, +0xc78,0x2b6b0001, +0xc78,0x2a6c0001, +0xc78,0x296d0001, +0xc78,0x286e0001, +0xc78,0x276f0001, +0xc78,0x26700001, +0xc78,0x25710001, +0xc78,0x24720001, +0xc78,0x23730001, +0xc78,0x22740001, +0xc78,0x09750001, +0xc78,0x08760001, +0xc78,0x07770001, +0xc78,0x06780001, +0xc78,0x05790001, +0xc78,0x047a0001, +0xc78,0x037b0001, +0xc78,0x027c0001, +0xc78,0x017d0001, +0xc78,0x007e0001, +0xc78,0x007f0001, +0xc78,0x3000001e, +0xc78,0x3001001e, +0xc78,0x3002001e, +0xc78,0x3003001e, +0xc78,0x3004001e, +0xc78,0x3405001e, +0xc78,0x3806001e, +0xc78,0x3e07001e, +0xc78,0x3e08001e, +0xc78,0x4409001e, +0xc78,0x460a001e, +0xc78,0x480b001e, +0xc78,0x480c001e, +0xc78,0x4e0d001e, +0xc78,0x560e001e, +0xc78,0x5a0f001e, +0xc78,0x5e10001e, +0xc78,0x6211001e, +0xc78,0x6c12001e, +0xc78,0x7213001e, +0xc78,0x7214001e, +0xc78,0x7215001e, +0xc78,0x7216001e, +0xc78,0x7217001e, +0xc78,0x7218001e, +0xc78,0x7219001e, +0xc78,0x721a001e, +0xc78,0x721b001e, +0xc78,0x721c001e, +0xc78,0x721d001e, +0xc78,0x721e001e, +0xc78,0x721f001e, +}; + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_phy.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_phy.h @@ -0,0 +1,202 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +/* Check to see if the file has been included already. */ +#ifndef _R8192S_PHY_H +#define _R8192S_PHY_H + + +/*--------------------------Define Parameters-------------------------------*/ +#define LOOP_LIMIT 5 +#define MAX_STALL_TIME 50 +#define AntennaDiversityValue 0x80 +#define MAX_TXPWR_IDX_NMODE_92S 63 +#define Reset_Cnt_Limit 3 + + +#define MAX_PRECMD_CNT 16 +#define MAX_RFDEPENDCMD_CNT 16 +#define MAX_POSTCMD_CNT 16 +#ifdef RTL8192SE +#define SET_RTL8192SE_RF_SLEEP(dev) \ +{ \ + u8 u1bTmp; \ + u1bTmp = read_nic_byte (dev, LDOV12D_CTRL); \ + u1bTmp |= BIT0; \ + write_nic_byte(dev, LDOV12D_CTRL, u1bTmp); \ + write_nic_byte(dev, SPS1_CTRL, 0x0); \ + write_nic_byte(dev, TXPAUSE, 0xFF); \ + write_nic_word(dev, CMDR, 0x57FC); \ + udelay(100); \ + write_nic_word(dev, CMDR, 0x77FC); \ + write_nic_byte(dev, PHY_CCA, 0x0); \ + udelay(10); \ + write_nic_word(dev, CMDR, 0x37FC); \ + udelay(10); \ + write_nic_word(dev, CMDR, 0x77FC); \ + udelay(10); \ + write_nic_word(dev, CMDR, 0x57FC); \ +} + + +#endif + +/*--------------------------Define Parameters-------------------------------*/ + + +/*------------------------------Define structure----------------------------*/ +typedef enum _SwChnlCmdID{ + CmdID_End, + CmdID_SetTxPowerLevel, + CmdID_BBRegWrite10, + CmdID_WritePortUlong, + CmdID_WritePortUshort, + CmdID_WritePortUchar, + CmdID_RF_WriteReg, +}SwChnlCmdID; + + +typedef struct _SwChnlCmd{ + SwChnlCmdID CmdID; + u32 Para1; + u32 Para2; + u32 msDelay; +}__attribute__ ((packed)) SwChnlCmd; + +extern u32 rtl819XMACPHY_Array_PG[]; +extern u32 rtl819XPHY_REG_1T2RArray[]; +extern u32 rtl819XAGCTAB_Array[]; +extern u32 rtl819XRadioA_Array[]; +extern u32 rtl819XRadioB_Array[]; +extern u32 rtl819XRadioC_Array[]; +extern u32 rtl819XRadioD_Array[]; + +typedef enum _HW90_BLOCK{ + HW90_BLOCK_MAC = 0, + HW90_BLOCK_PHY0 = 1, + HW90_BLOCK_PHY1 = 2, + HW90_BLOCK_RF = 3, + HW90_BLOCK_MAXIMUM = 4, +}HW90_BLOCK_E, *PHW90_BLOCK_E; + +typedef enum _RF90_RADIO_PATH{ + RF90_PATH_A = 0, + RF90_PATH_B = 1, + RF90_PATH_C = 2, + RF90_PATH_D = 3, +#ifndef _RTL8192_EXT_PATCH_ + RF90_PATH_MAX = 4, +#endif +}RF90_RADIO_PATH_E, *PRF90_RADIO_PATH_E; +#ifdef _RTL8192_EXT_PATCH_ +#define RF90_PATH_MAX 2 +#endif + +#define bMaskByte0 0xff +#define bMaskByte1 0xff00 +#define bMaskByte2 0xff0000 +#define bMaskByte3 0xff000000 +#define bMaskHWord 0xffff0000 +#define bMaskLWord 0x0000ffff +#define bMaskDWord 0xffffffff + +typedef enum _BaseBand_Config_Type{ + BaseBand_Config_PHY_REG = 0, + BaseBand_Config_AGC_TAB = 1, +}BaseBand_Config_Type, *PBaseBand_Config_Type; + +typedef enum _VERSION_8190{ + VERSION_8190_BD=0x3, + VERSION_8190_BE +}VERSION_8190,*PVERSION_8190; + + +typedef enum _VERSION_8192S{ + VERSION_8192S_ACUT, + VERSION_8192S_BCUT, + VERSION_8192S_CCUT +}VERSION_8192S,*PVERSION_8192S; + +typedef enum _PHY_Rate_Tx_Power_Offset_Area{ + RA_OFFSET_LEGACY_OFDM1, + RA_OFFSET_LEGACY_OFDM2, + RA_OFFSET_HT_OFDM1, + RA_OFFSET_HT_OFDM2, + RA_OFFSET_HT_OFDM3, + RA_OFFSET_HT_OFDM4, + RA_OFFSET_HT_CCK, +}RA_OFFSET_AREA,*PRA_OFFSET_AREA; +#if 0 +typedef enum _RATR_TABLE_MODE_8192S{ + RATR_INX_WIRELESS_NGB = 0, + RATR_INX_WIRELESS_NG = 1, + RATR_INX_WIRELESS_NB = 2, + RATR_INX_WIRELESS_N = 3, + RATR_INX_WIRELESS_GB = 4, + RATR_INX_WIRELESS_G = 5, + RATR_INX_WIRELESS_B = 6, + RATR_INX_WIRELESS_MC = 7, + RATR_INX_WIRELESS_A = 8, +}RATR_TABLE_MODE_8192S, *PRATR_TABLE_MODE_8192S; +#endif +/*------------------------------Define structure----------------------------*/ + + +/*------------------------Export global variable----------------------------*/ +/*------------------------Export global variable----------------------------*/ + + +/*------------------------Export Marco Definition---------------------------*/ +/*------------------------Export Marco Definition---------------------------*/ + + +/*--------------------------Exported Function prototype---------------------*/ + +extern u32 rtl8192_QueryBBReg(struct net_device* dev,u32 RegAddr, u32 BitMask); +extern void rtl8192_setBBreg(struct net_device* dev,u32 RegAddr, u32 BitMask,u32 Data); +extern u32 rtl8192_phy_QueryRFReg(struct net_device* dev,RF90_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask); +extern void rtl8192_phy_SetRFReg(struct net_device* dev,RF90_RADIO_PATH_E eRFPath, u32 RegAddr,u32 BitMask,u32 Data); + +bool rtl8192_phy_checkBBAndRF(struct net_device* dev, HW90_BLOCK_E CheckBlock, RF90_RADIO_PATH_E eRFPath); + + +extern bool PHY_MACConfig8192S(struct net_device* dev); +extern bool PHY_BBConfig8192S(struct net_device* dev); +extern bool PHY_RFConfig8192S(struct net_device* dev); + +extern u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device* dev,RF90_RADIO_PATH_E eRFPath); +extern void rtl8192_SetBWMode(struct net_device* dev,HT_CHANNEL_WIDTH ChnlWidth,HT_EXTCHNL_OFFSET Offset ); +extern u8 rtl8192_phy_SwChnl(struct net_device* dev,u8 channel); +extern u8 rtl8192_phy_CheckIsLegalRFPath(struct net_device* dev,u32 eRFPath ); +extern void rtl8192_BBConfig(struct net_device* dev); +extern void PHY_IQCalibrateBcut(struct net_device* dev); +extern void PHY_IQCalibrate(struct net_device* dev); +extern void PHY_GetHWRegOriginalValue(struct net_device* dev); + +extern void InitialGainOperateWorkItemCallBack(void *data); +void rtl8192_phy_setTxPower(struct net_device* dev, u8 channel); + +/*--------------------------Exported Function prototype---------------------*/ +bool rtl8192se_set_fw_cmd(struct net_device* dev, FW_CMD_IO_TYPE FwCmdIO); +extern void PHY_SetBeaconHwReg( struct net_device* dev, u16 BeaconInterval); +void ChkFwCmdIoDone(struct net_device* dev); +void PHY_SwitchEphyParameter(struct net_device* dev); +bool PHY_SetRFPowerState(struct net_device* dev, RT_RF_POWER_STATE eRFPowerState); +extern void PHY_ScanOperationBackup8192S(struct net_device* dev,u8 Operation); +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_scan.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_scan.c @@ -0,0 +1,413 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#include "../rtl_core.h" + +#define IWL_SCAN_CHECK_WATCHDOG (7 * HZ) + +void rtl8192se_hw_scan_simu(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,hw_scan_simu_wq); + struct net_device *dev = priv->rtllib->dev; +#else + struct net_device *dev = (struct net_device *)data; + struct r8192_priv *priv = rtllib_priv(dev); +#endif + + rtllib_update_active_chan_map(priv->rtllib); + + priv->rtllib->current_network.channel = (priv->rtllib->current_network.channel + 1) % 12; + if (priv->rtllib->scan_watch_dog++ > 12) + { + goto out; /* no good chans */ + } + + if ((!test_bit(STATUS_SCANNING, &priv->rtllib->status)) || + (test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status))){ + goto out; + } + + if(priv->rtllib->current_network.channel != 0){ + priv->rtllib->set_chan(dev,priv->rtllib->current_network.channel); +#ifdef _RTL8192_EXT_PATCH_ + rtllib_send_probe_requests(priv->rtllib, 1); +#else + rtllib_send_probe_requests(priv->rtllib, 0); +#endif + } + + queue_delayed_work_rsl(priv->priv_wq, &priv->hw_scan_simu_wq, MSECS(RTLLIB_SOFTMAC_SCAN_TIME)); + + return; +out: + priv->rtllib->scan_watch_dog =0; + rtl8192se_rx_surveydone_cmd(dev); + + if(priv->rtllib->state == RTLLIB_LINKED_SCANNING){ + priv->rtllib->current_network.channel = priv->rtllib->hwscan_ch_bk; + printk("%s():back to linked chan:%d\n", __func__,priv->rtllib->current_network.channel); + priv->rtllib->set_chan(dev,priv->rtllib->current_network.channel); + } +} + +void rtl8192se_before_hw_scan(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + HT_EXTCHNL_OFFSET chan_offset=0; + HT_CHANNEL_WIDTH bandwidth=0; + struct rtllib_device *ieee = priv->rtllib; + + if(priv->rtllib->state != RTLLIB_LINKED) + return; + + +#ifdef ENABLE_LPS + if (ieee->LeisurePSLeave) { + ieee->LeisurePSLeave(ieee->dev); + } + /* notify AP to be in PS mode */ + rtllib_sta_ps_send_null_frame(ieee, 1); + rtllib_sta_ps_send_null_frame(ieee, 1); +#endif + + rtllib_stop_all_queues(ieee); + + if (ieee->data_hard_stop) + ieee->data_hard_stop(ieee->dev); + rtllib_stop_send_beacons(ieee); + ieee->state = RTLLIB_LINKED_SCANNING; + ieee->link_change(ieee->dev); + /* wait for ps packet to be kicked out successfully */ + mdelay(50); + +#if(RTL8192S_DISABLE_FW_DM == 0) + if (ieee->SetFwCmdHandler) { + ieee->SetFwCmdHandler(ieee->dev, FW_CMD_PAUSE_DM_BY_SCAN); + } +#endif + + if (ieee->pHTInfo->bCurrentHTSupport && ieee->pHTInfo->bEnableHT && ieee->pHTInfo->bCurBW40MHz) { + priv->hwscan_bw_40 = 1; + priv->rtllib->chan_offset_bk = chan_offset = ieee->pHTInfo->CurSTAExtChnlOffset; + priv->rtllib->bandwidth_bk = bandwidth = (HT_CHANNEL_WIDTH)ieee->pHTInfo->bCurBW40MHz; + printk("before scan force BW to 20M:%d, %d\n", chan_offset, bandwidth); + ieee->SetBWModeHandler(ieee->dev, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT); + } +} +void rtl8192se_after_hw_scan(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + HT_EXTCHNL_OFFSET chan_offset = priv->rtllib->chan_offset_bk; + HT_CHANNEL_WIDTH bandwidth = priv->rtllib->bandwidth_bk; + struct rtllib_device *ieee = priv->rtllib; + + if(priv->rtllib->state != RTLLIB_LINKED_SCANNING){ + goto out; + } + + if (ieee->LinkDetectInfo.NumRecvBcnInPeriod == 0 || + ieee->LinkDetectInfo.NumRecvDataInPeriod == 0 ) { + ieee->LinkDetectInfo.NumRecvBcnInPeriod = 1; + ieee->LinkDetectInfo.NumRecvDataInPeriod= 1; + } + + if (priv->hwscan_bw_40) { + priv->hwscan_bw_40 = 0; + printk("after scan back BW to 40M:%d, %d\n", chan_offset, bandwidth); +#if 1 + if (chan_offset == HT_EXTCHNL_OFFSET_UPPER){ + ieee->set_chan(ieee->dev, priv->rtllib->hwscan_ch_bk + 2); + }else if (chan_offset == HT_EXTCHNL_OFFSET_LOWER){ + ieee->set_chan(ieee->dev, priv->rtllib->hwscan_ch_bk - 2); + }else{ + priv->rtllib->current_network.channel = priv->rtllib->hwscan_ch_bk; + ieee->set_chan(ieee->dev, priv->rtllib->hwscan_ch_bk); + } +#endif + ieee->SetBWModeHandler(ieee->dev, bandwidth, chan_offset); + } else { + ieee->set_chan(ieee->dev, priv->rtllib->hwscan_ch_bk); + } + +#if(RTL8192S_DISABLE_FW_DM == 0) + if (ieee->SetFwCmdHandler) { + ieee->SetFwCmdHandler(ieee->dev, FW_CMD_RESUME_DM_BY_SCAN); + } +#endif + ieee->state = RTLLIB_LINKED; + ieee->link_change(ieee->dev); + +#ifdef ENABLE_LPS + /* Notify AP that I wake up again */ + rtllib_sta_ps_send_null_frame(ieee, 0); +#endif + + if (ieee->data_hard_resume) + ieee->data_hard_resume(ieee->dev); + + if(ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER) + rtllib_start_send_beacons(ieee); + + rtllib_wake_all_queues(ieee); + +out: + return; +} +/* Service HAL_FW_C2H_CMD_SurveyDone (0x9) */ +void rtl8192se_rx_surveydone_cmd(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + + + cancel_delayed_work(&priv->check_hw_scan_wq); + + /* If a request to abort was given, or the scan did not succeed + * then we reset the scan state machine and terminate, + * re-queuing another scan if one has been requested */ + if (test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status)) { + RT_TRACE(COMP_ERR, "Aborted scan completed.\n"); + clear_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status); + } + + rtl8192se_after_hw_scan(dev); + +#ifdef CONFIG_FW_PARSEBEACON + if(priv->rtllib->state < RTLLIB_LINKED) + write_nic_dword(dev, RXFILTERMAP, 0x0100); +#endif + + mdelay(1); + + clear_bit(STATUS_SCANNING, &priv->rtllib->status); + + { + union iwreq_data wrqu; + memset(&wrqu, 0, sizeof(wrqu)); + wireless_send_event(priv->rtllib->dev,SIOCGIWSCAN,&wrqu,NULL); + } + + if(priv->rtllib->hwscan_sem_up == 0){ + up(&priv->wx_sem); + priv->rtllib->hwscan_sem_up = 1; + } + + + return; +} + + +void rtl8192se_check_hw_scan(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,check_hw_scan_wq); + struct net_device *dev = priv->rtllib->dev; +#else + struct net_device *dev = (struct net_device *)data; + struct r8192_priv *priv = rtllib_priv(dev); +#endif + unsigned long flags; + + + spin_lock_irqsave(&priv->fw_scan_lock,flags); + printk("----------->%s()\n", __func__); + + if (test_bit(STATUS_SCANNING, &priv->rtllib->status) || + test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status)) { + printk("FW Scan long time without stop, stop hw scan\n"); + rtl8192se_send_scan_abort(dev); + } + + + if(priv->rtllib->hwscan_sem_up == 0){ + up(&priv->wx_sem); + priv->rtllib->hwscan_sem_up = 1; + } + + printk("<-----------%s()\n", __func__); + spin_unlock_irqrestore(&priv->fw_scan_lock,flags); +} + +void rtl8192se_start_hw_scan(void *data) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,start_hw_scan_wq); + struct net_device *dev = priv->rtllib->dev; +#else + struct net_device *dev = (struct net_device *)data; + struct r8192_priv *priv = rtllib_priv(dev); +#endif + bool start_flag =true; + unsigned long flags; + + down(&priv->wx_sem); + priv->rtllib->hwscan_sem_up = 0; + + spin_lock_irqsave(&priv->fw_scan_lock,flags); + + + cancel_delayed_work(&priv->check_hw_scan_wq); + + /* Make sure the scan wasn't canceled before this queued work + * was given the chance to run... */ + if (!test_bit(STATUS_SCANNING, &priv->rtllib->status)){ + RT_TRACE(COMP_ERR,"scan was canceled."); + goto done; + } + + if (test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status)) { + RT_TRACE(COMP_ERR, "Scan request while abort pending. Queuing."); + goto done; + } + + +#ifdef CONFIG_FW_PARSEBEACON + if(priv->rtllib->state < RTLLIB_LINKED) + write_nic_dword(dev, RXFILTERMAP, 0x0000); +#endif + + rtl8192se_before_hw_scan(dev); + rtl8192se_send_scan_cmd(dev,start_flag); + + queue_delayed_work_rsl(priv->priv_wq,&priv->check_hw_scan_wq,MSECS(7000)); + + + spin_unlock_irqrestore(&priv->fw_scan_lock,flags); + + return; + + done: + up(&priv->wx_sem); + priv->rtllib->hwscan_sem_up = 1; + /* Cannot perform scan. Make sure we clear scanning + * bits from status so next scan request can be performed. + * If we don't clear scanning status bit here all next scan + * will fail + */ + clear_bit(STATUS_SCANNING, &priv->rtllib->status); + + /* inform mac80211 scan aborted */ + + spin_unlock_irqrestore(&priv->fw_scan_lock,flags); + + return; +} + +void rtl8192se_hw_scan_initiate(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + unsigned long flags; + + spin_lock_irqsave(&priv->fw_scan_lock,flags); + + + if (test_bit(STATUS_SCANNING, &priv->rtllib->status)) { + printk("Scan already in progress.\n"); + goto done; + } + + if (test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status)) { + printk("Scan request while abort pending\n"); + goto done; + } + + + set_bit(STATUS_SCANNING, &priv->rtllib->status); + + queue_delayed_work_rsl(priv->priv_wq,&priv->start_hw_scan_wq,0); + +done: + spin_unlock_irqrestore(&priv->fw_scan_lock,flags); + + return; +} + +void rtl8192se_send_scan_abort(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int ret = true; + bool start_flag =false; + + + /* If there isn't a scan actively going on in the hardware + * then we are in between scan bands and not actually + * actively scanning, so don't send the abort command */ + if (!test_bit(STATUS_SCANNING, &priv->rtllib->status)) { + goto done; + } + + ret = rtl8192se_send_scan_cmd(dev, start_flag); + mdelay(1); + +#ifdef CONFIG_FW_PARSEBEACON + if(priv->rtllib->state < RTLLIB_LINKED) + write_nic_dword(dev, RXFILTERMAP, 0x0100); +#endif + + if (ret) { + goto done; + } + + +done: + clear_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status); + clear_bit(STATUS_SCANNING, &priv->rtllib->status); + + return; +} + +/** + * rtl8192se_cancel_hw_scan - Cancel any currently executing HW scan + * + * NOTE: priv->mutex is not required before calling this function + */ +void rtl8192se_cancel_hw_scan(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + unsigned long flags; + + spin_lock_irqsave(&priv->fw_scan_lock,flags); + + if (test_bit(STATUS_SCANNING, &priv->rtllib->status)) { + if (!test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status)) { + printk("====>%s stop HW scan\n", __func__); + cancel_delayed_work(&priv->check_hw_scan_wq); + + set_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status); + rtl8192se_send_scan_abort(dev); + } else { + printk("-------------->%s()Scan abort already in progress.\n", __func__); + } + } + + if(priv->rtllib->hwscan_sem_up == 0){ + up(&priv->wx_sem); + priv->rtllib->hwscan_sem_up = 1; + } + + spin_unlock_irqrestore(&priv->fw_scan_lock,flags); + return; +} + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_dev.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_dev.c @@ -0,0 +1,5469 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#include "../rtl_core.h" +#include "../rtl_dm.h" +#include "../rtl_wx.h" + +#ifdef _RTL8192_EXT_PATCH_ +#include "../../../mshclass/msh_class.h" +#include "../rtl_mesh.h" +#endif + +extern int WDCAPARA_ADD[]; + +void rtl8192se_start_beacon(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct rtllib_network *net = NULL; + u16 BcnTimeCfg = 0; + u16 BcnCW = 6; + u16 BcnIFS = 0xf; + + if((priv->rtllib->iw_mode == IW_MODE_ADHOC) || (priv->rtllib->iw_mode == IW_MODE_MASTER)) + net = &priv->rtllib->current_network; +#ifdef _RTL8192_EXT_PATCH_ + else if(priv->rtllib->iw_mode == IW_MODE_MESH) + net = &priv->rtllib->current_mesh_network; +#endif + else + return; + + rtl8192_irq_disable(dev); + + write_nic_word(dev, ATIMWND, 2); + + write_nic_word(dev, BCN_INTERVAL, net->beacon_interval); + PHY_SetBeaconHwReg(dev, net->beacon_interval); + +#ifdef RTL8192SE + write_nic_word(dev, BCN_DRV_EARLY_INT, 10<<4); +#else + write_nic_word(dev, BCN_DRV_EARLY_INT, 10); +#endif + write_nic_word(dev, BCN_DMATIME, 256); + + write_nic_byte(dev, BCN_ERR_THRESH, 100); + +if(priv->pFirmware->FirmwareVersion > 49){ + switch(priv->rtllib->iw_mode) + { + case IW_MODE_ADHOC: + case IW_MODE_MESH: + BcnTimeCfg |= (BcnCW<beacon_interval); + write_nic_dword(dev, WFM5, 0xF1000000 |((u16)( u1Temp) << 8)); + ChkFwCmdIoDone(dev); + } +}else{ + BcnTimeCfg |= BcnCW<rtllib->iw_mode) { + case IW_MODE_INFRA: + if (priv->rtllib->state == RTLLIB_LINKED) + msr |= (MSR_LINK_MANAGED << MSR_LINK_SHIFT); + else + msr |= (MSR_LINK_NONE << MSR_LINK_SHIFT); + LedAction = LED_CTL_LINK; + break; + case IW_MODE_ADHOC: + if (priv->rtllib->state == RTLLIB_LINKED) + msr |= (MSR_LINK_ADHOC << MSR_LINK_SHIFT); + else + msr |= (MSR_LINK_NONE << MSR_LINK_SHIFT); + break; + case IW_MODE_MASTER: + if (priv->rtllib->state == RTLLIB_LINKED) + msr |= (MSR_LINK_MASTER << MSR_LINK_SHIFT); + else + msr |= (MSR_LINK_NONE << MSR_LINK_SHIFT); + break; +#ifdef _RTL8192_EXT_PATCH_ + case IW_MODE_MESH: + printk("%s: iw_mode=%d state=%d only_mesh=%d mesh_state=%d\n", __FUNCTION__,priv->rtllib->iw_mode,priv->rtllib->state, priv->rtllib->only_mesh, priv->rtllib->mesh_state); + if (priv->rtllib->only_mesh) { + if (priv->rtllib->mesh_state == RTLLIB_MESH_LINKED) + msr |= (MSR_LINK_MASTER<rtllib->mesh_state == RTLLIB_MESH_LINKED) { + msr |= (MSR_LINK_ADHOC << MSR_LINK_SHIFT); + } else { + msr |= (MSR_LINK_NONE << MSR_LINK_SHIFT); + } + if (priv->rtllib->state == RTLLIB_LINKED) + msr |= (MSR_LINK_MANAGED << MSR_LINK_SHIFT); + } + break; +#endif + default: + break; + } + + write_nic_byte(dev, MSR, msr); + if(priv->rtllib->LedControlHandler) + priv->rtllib->LedControlHandler(dev, LedAction); +} + +static void rtl8192se_config_hw_for_load_fail(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u16 i; + u8 sMacAddr[6] = {0x00, 0xE0, 0x4C, 0x81, 0x92, 0x00}; + u8 rf_path, index; + u32 tmp1111 = 0; + u32 tmp2222 = 0; + + RT_TRACE(COMP_INIT, "====> rtl8192se_config_hw_for_load_fail\n"); + + for(;tmp2222<0xff;tmp2222+=4) + { + tmp1111= read_nic_dword(dev, tmp2222); + } + + write_nic_byte(dev, SYS_ISO_CTRL+1, 0xE8); + mdelay(10); + write_nic_byte(dev, PMC_FSM, 0x02); + + priv->eeprom_vid= 0; + priv->eeprom_did= 0; + priv->eeprom_ChannelPlan= 0; + priv->eeprom_CustomerID= 0; + + get_random_bytes(&sMacAddr[5], 1); + for(i = 0; i < 6; i++) + dev->dev_addr[i] = sMacAddr[i]; + + + priv->rf_type= RTL819X_DEFAULT_RF_TYPE; + priv->rf_chip = RF_6052; + +#if (EEPROM_OLD_FORMAT_SUPPORT == 1) + for(i=0; i<14; i++) + { + priv->EEPROMTxPowerLevelCCK[i] = (u8)(EEPROM_Default_TxPower & 0xff); + RT_TRACE(COMP_INIT, "CCK 2.4G Tx Pwr Index %d = 0x%02x\n", + i, priv->EEPROMTxPowerLevelCCK[i]); + } + + for(i=0; i<14; i++) + { + priv->EEPROMTxPowerLevelOFDM24G[i] = (u8)(EEPROM_Default_TxPower & 0xff); + RT_TRACE(COMP_INIT, "OFDM 2.4G Tx Pwr Index %d = 0x%02x\n", + i, priv->EEPROMTxPowerLevelOFDM24G[i]); + } + + for(i=0; i<14; i++) + { + priv->TxPowerLevelOFDM24G[i] = priv->EEPROMTxPowerLevelOFDM24G[i]; + priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK[i]; + } + for(i=0; i<6; i++) + { + priv->EEPROMHT2T_TxPwr[i] = EEPROM_Default_HT2T_TxPwr; + } + +#else + for (rf_path = 0; rf_path < 2; rf_path++) + { + for (i = 0; i < 3; i++) + { + priv->RfCckChnlAreaTxPwr[rf_path][i] = + priv->RfOfdmChnlAreaTxPwr1T[rf_path][i] = + priv->RfOfdmChnlAreaTxPwr2T[rf_path][i] = + EEPROM_Default_TxPowerLevel; + } + } + + for (rf_path = 0; rf_path < 2; rf_path++) + { + for(i=0; i<14; i++) + { + if (i < 3) + index = 0; + else if (i < 8) + index = 1; + else + index = 2; + + priv->RfTxPwrLevelCck[rf_path][i] = + priv->RfCckChnlAreaTxPwr[rf_path][index] = + priv->RfTxPwrLevelOfdm1T[rf_path][i] = + priv->RfOfdmChnlAreaTxPwr1T[rf_path][index] = + priv->RfTxPwrLevelOfdm2T[rf_path][i] = + priv->RfOfdmChnlAreaTxPwr2T[rf_path][index] = + (u8)(EEPROM_Default_TxPower & 0xff); + + if (rf_path == 0) + { + priv->TxPowerLevelOFDM24G[i] = (u8)(EEPROM_Default_TxPower & 0xff); + priv->TxPowerLevelCCK[i] = (u8)(EEPROM_Default_TxPower & 0xff); + } + } + + } + + RT_TRACE(COMP_INIT, "All TxPwr = 0x%x\n", EEPROM_Default_TxPower); + + for(i=0; i<14; i++) + { + priv->TxPwrHt20Diff[RF90_PATH_A][i] = DEFAULT_HT20_TXPWR_DIFF; + priv->TxPwrHt20Diff[RF90_PATH_B][i] = DEFAULT_HT20_TXPWR_DIFF; + + priv->TxPwrLegacyHtDiff[0][i] = EEPROM_Default_LegacyHTTxPowerDiff; + priv->TxPwrLegacyHtDiff[1][i] = EEPROM_Default_LegacyHTTxPowerDiff; + } + + priv->TxPwrSafetyFlag = 0; +#endif + + priv->EEPROMTxPowerDiff = EEPROM_Default_LegacyHTTxPowerDiff; + priv->LegacyHTTxPowerDiff = priv->EEPROMTxPowerDiff; + RT_TRACE(COMP_INIT, "TxPowerDiff = %#x\n", priv->EEPROMTxPowerDiff); + + for (rf_path = 0; rf_path < 2; rf_path++) + { + for (i = 0; i < 3; i++) + { + priv->EEPROMPwrGroup[rf_path][i] = 0; + } + } + + for (rf_path = 0; rf_path < 2; rf_path++) + { + for(i=0; i<14; i++) + { + if (i < 3) + index = 0; + else if (i < 8) + index = 1; + else + index = 2; + priv->PwrGroupHT20[rf_path][i] = (priv->EEPROMPwrGroup[rf_path][index]&0xf); + priv->PwrGroupHT40[rf_path][i] = ((priv->EEPROMPwrGroup[rf_path][index]&0xf0)>>4); + } + } + priv->EEPROMRegulatory = 0; + + priv->EEPROMTSSI_A = EEPROM_Default_TSSI; + priv->EEPROMTSSI_B = EEPROM_Default_TSSI; + + for(i=0; i<6; i++) + { + priv->EEPROMHT2T_TxPwr[i] = EEPROM_Default_HT2T_TxPwr; + } + + + priv->EEPROMThermalMeter = EEPROM_Default_ThermalMeter; + priv->ThermalMeter[0] = (priv->EEPROMThermalMeter&0x1f); + priv->TSSI_13dBm = priv->EEPROMThermalMeter *100; + + priv->BluetoothCoexist = EEPROM_Default_BlueToothCoexist; + priv->EEPROMBluetoothType = EEPROM_Default_BlueToothType; + priv->EEPROMBluetoothAntNum = EEPROM_Default_BlueToothAntNum; + priv->EEPROMBluetoothAntIsolation = EEPROM_Default_BlueToothAntIso; + + priv->EEPROMCrystalCap = EEPROM_Default_CrystalCap; + priv->CrystalCap = priv->EEPROMCrystalCap; + + priv->eeprom_ChannelPlan = 0; + priv->eeprom_version = 1; + priv->bTXPowerDataReadFromEEPORM = false; + + priv->rf_type = RTL819X_DEFAULT_RF_TYPE; + priv->rf_chip = RF_6052; + priv->eeprom_CustomerID = 0; + RT_TRACE(COMP_INIT, "EEPROM Customer ID: 0x%2x\n", priv->eeprom_CustomerID); + + + priv->EEPROMBoardType = EEPROM_Default_BoardType; + RT_TRACE(COMP_INIT, "BoardType = %#x\n", priv->EEPROMBoardType); + + priv->LedStrategy = SW_LED_MODE7; + + + RT_TRACE(COMP_INIT,"<==== rtl8192se_config_hw_for_load_fail\n"); +} + +static void rtl8192se_get_IC_Inferiority(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 Efuse_ID; + + priv->IC_Class = IC_INFERIORITY_A; + if((priv->epromtype == EEPROM_BOOT_EFUSE) && !priv->AutoloadFailFlag) + { + Efuse_ID = EFUSE_Read1Byte(dev, EFUSE_IC_ID_OFFSET); + + if(Efuse_ID == 0xfe) + { + priv->IC_Class = IC_INFERIORITY_B; + + } + } +} + +void +HalCustomizedBehavior8192S(struct net_device* dev) +{ + struct r8192_priv* priv = rtllib_priv(dev); + priv->rtllib->bForcedShowRateStill = false; + switch(priv->CustomerID) + { + case RT_CID_DEFAULT: + case RT_CID_819x_SAMSUNG: + if(priv->CustomerID == RT_CID_819x_SAMSUNG) + ; + priv->LedStrategy = SW_LED_MODE7; + if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x1A3B && priv->eeprom_smid == 0x1A07) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + priv->rtllib->bForcedBgMode = true; + priv->rtllib->bForcedShowRateStill = true; + } + } + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x1A3B && priv->eeprom_smid == 0x1A04) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + priv->rtllib->bForcedBgMode = true; + priv->rtllib->bForcedShowRateStill = true; + } + } + else if(priv->eeprom_svid == 0x1A3B && (priv->eeprom_smid == 0x1104 || + priv->eeprom_smid == 0x1107)) + { + priv->rtllib->bForcedShowRateStill = true; + } + else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7171) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + priv->rtllib->bForcedBgMode = true; + } + } + else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7150) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7172) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7150) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7186) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7174) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7150) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + + break; + + case RT_CID_819x_Acer: + priv->LedStrategy = SW_LED_MODE7; + + if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x7172) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x7173) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x7186) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x7187) + { + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + break; + + case RT_CID_TOSHIBA: + priv->rtllib->current_network.channel = 10; + priv->LedStrategy = SW_LED_MODE7; + priv->EEPROMRegulatory = 1; + if(priv->eeprom_smid >= 0x7000 && priv->eeprom_smid < 0x8000){ + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + priv->rtllib->bForcedBgMode = true; + } + } + break; + case RT_CID_CCX: + priv->DMFlag |= (HAL_DM_DIG_DISABLE | HAL_DM_HIPWR_DISABLE); + break; + + case RT_CID_819x_Lenovo: + priv->LedStrategy = SW_LED_MODE7; + if(priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE025){ + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + else if (priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8191) + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + break; + + case RT_CID_819x_QMI: + priv->LedStrategy = SW_LED_MODE8; + break; + + case RT_CID_819x_MSI: + priv->LedStrategy = SW_LED_MODE9; + if(priv->eeprom_svid == 0x1462 && priv->eeprom_smid == 0x897A){ + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + } + break; + + case RT_CID_819x_HP: + priv->LedStrategy = SW_LED_MODE7; + priv->bLedOpenDrain = true; + + case RT_CID_819x_Foxcoon: + priv->LedStrategy = SW_LED_MODE10; + if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8192) + if(priv->RegWirelessMode != WIRELESS_MODE_B){ + priv->RegWirelessMode = WIRELESS_MODE_G; + priv->rtllib->mode = WIRELESS_MODE_G; + } + break; + + case RT_CID_WHQL: + ; + break; + + default: + RT_TRACE(COMP_INIT,"Unkown hardware Type \n"); + break; + } +} + +static void rtl8192se_read_eeprom_info(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u16 i,usValue; + u16 EEPROMId; +#if (EEPROM_OLD_FORMAT_SUPPORT == 1) + u8 tmpBuffer[30]; +#endif + u8 tempval; + u8 hwinfo[HWSET_MAX_SIZE_92S]; + u8 rf_path, index; + + RT_TRACE(COMP_INIT, "====> rtl8192se_read_eeprom_info\n"); + + if (priv->epromtype== EEPROM_93C46) + { + write_nic_byte(dev, SYS_ISO_CTRL+1, 0xE8); + mdelay(10); + write_nic_byte(dev, PMC_FSM, 0x02); + + RT_TRACE(COMP_INIT, "EEPROM\n"); + for(i = 0; i < HWSET_MAX_SIZE_92S; i += 2) + { + usValue = eprom_read(dev, (u16) (i>>1)); + *((u16*)(&hwinfo[i])) = usValue; + } + } + else if (priv->epromtype == EEPROM_BOOT_EFUSE) + { + RT_TRACE(COMP_INIT, "EFUSE\n"); + + EFUSE_ShadowMapUpdate(dev); + + memcpy( hwinfo, &priv->EfuseMap[EFUSE_INIT_MAP][0], HWSET_MAX_SIZE_92S); + } + + + EEPROMId = *((u16 *)&hwinfo[0]); + if( EEPROMId != RTL8190_EEPROM_ID ) + { + RT_TRACE(COMP_ERR, "EEPROM ID(%#x) is invalid!!\n", EEPROMId); + priv->AutoloadFailFlag=true; + } + else + { + RT_TRACE(COMP_EPROM, "Autoload OK\n"); + priv->AutoloadFailFlag=false; + } + + if (priv->AutoloadFailFlag == true) + { + rtl8192se_config_hw_for_load_fail(dev); + return; + } + + rtl8192se_get_IC_Inferiority(dev); + + priv->eeprom_vid = *(u16 *)&hwinfo[EEPROM_VID]; + priv->eeprom_did = *(u16 *)&hwinfo[EEPROM_DID]; + priv->eeprom_svid = *(u16 *)&hwinfo[EEPROM_SVID]; + priv->eeprom_smid = *(u16 *)&hwinfo[EEPROM_SMID]; + priv->eeprom_version = *(u16 *)&hwinfo[EEPROM_Version]; + + RT_TRACE(COMP_EPROM, "EEPROMId = 0x%4x\n", EEPROMId); + RT_TRACE(COMP_EPROM, "EEPROM VID = 0x%4x\n", priv->eeprom_vid); + RT_TRACE(COMP_EPROM, "EEPROM DID = 0x%4x\n", priv->eeprom_did); + RT_TRACE(COMP_EPROM, "EEPROM SVID = 0x%4x\n", priv->eeprom_svid); + RT_TRACE(COMP_EPROM, "EEPROM SMID = 0x%4x\n", priv->eeprom_smid); + + priv->EEPROMOptional = *(u8 *)&hwinfo[EEPROM_Optional]; + priv->ShowRateMode = 2; + priv->rtllib->bForcedShowRxRate = false; + + if(priv->ShowRateMode == 0) { + if((priv->EEPROMOptional & BIT3) == 0x08/*0000_1000*/) { + priv->rtllib->bForcedShowRxRate = true; + } + } else if(priv->ShowRateMode == 2){ + priv->rtllib->bForcedShowRxRate = true; + } + + for(i = 0; i < 6; i += 2) + { + usValue = *(u16 *)&hwinfo[EEPROM_MAC_ADDR+i]; + *((u16*)(&dev->dev_addr[i])) = usValue; + } + for (i=0;i<6;i++) + write_nic_byte(dev, MACIDR0+i, dev->dev_addr[i]); + + RT_TRACE(COMP_EPROM, "ReadAdapterInfo8192S(), Permanent Address = %02x-%02x-%02x-%02x-%02x-%02x\n", + dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2], dev->dev_addr[3], + dev->dev_addr[4], dev->dev_addr[5]); + +#if (EEPROM_OLD_FORMAT_SUPPORT == 1) + for(i = 0; i < EEPROM_TX_PWR_INDEX_RANGE; i += 2) + { + usValue = *(u16 *)&hwinfo[EEPROM_TxPowerBase+i]; + *((u16 *)(&tmpBuffer[i])) = usValue; + } + for(i=0; i<14; i++) + { + priv->EEPROMTxPowerLevelCCK[i] = (u8)tmpBuffer[i]; + priv->EEPROMTxPowerLevelOFDM24G[i] = (u8)tmpBuffer[i+14]; + } + + + for(i=0; i<14; i++) + { + priv->TxPowerLevelOFDM24G[i] = priv->EEPROMTxPowerLevelOFDM24G[i]; + priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK[i]; + + RT_TRACE(COMP_EPROM, "CH%d CCK Tx PWR IDX = 0x%02x\n", i, priv->EEPROMTxPowerLevelCCK[i]); + RT_TRACE(COMP_EPROM, "CH%d OFDM Tx PWR IDX = 0x%02x\n", i, priv->EEPROMTxPowerLevelOFDM24G[i]); + } + + for(i = 0; i < 6; i += 2) + { + usValue = *(u16 *)&hwinfo[EEPROM_HT2T_CH1_A+i]; + *((u16*)(&priv->EEPROMHT2T_TxPwr[i])) = usValue; + } + for(i=0; i<6; i++) + { + RT_TRACE(COMP_EPROM, "EEPROMHT2T_TxPwr, Index %d = 0x%02x\n", i, priv->EEPROMHT2T_TxPwr[i]); + } + +#else + + for (rf_path = 0; rf_path < 2; rf_path++) + { + for (i = 0; i < 3; i++) + { + priv->RfCckChnlAreaTxPwr[rf_path][i] = + hwinfo[EEPROM_TxPowerBase+rf_path*3+i]; + + priv->RfOfdmChnlAreaTxPwr1T[rf_path][i] = + hwinfo[EEPROM_TxPowerBase+6+rf_path*3+i]; + + priv->RfOfdmChnlAreaTxPwr2T[rf_path][i] = + hwinfo[EEPROM_TxPowerBase+12+rf_path*3+i]; + } + } + + for (rf_path = 0; rf_path < 2; rf_path++) + { + for (i = 0; i < 3; i++) + { + RT_TRACE(COMP_EPROM,"CCK RF-%d CHan_Area-%d = 0x%x\n", rf_path, i, + priv->RfCckChnlAreaTxPwr[rf_path][i]); + RT_TRACE(COMP_EPROM, "OFDM-1T RF-%d CHan_Area-%d = 0x%x\n", rf_path, i, + priv->RfOfdmChnlAreaTxPwr1T[rf_path][i]); + RT_TRACE(COMP_EPROM,"OFDM-2T RF-%d CHan_Area-%d = 0x%x\n", rf_path, i, + priv->RfOfdmChnlAreaTxPwr2T[rf_path][i]); + } + + for(i=0; i<14; i++) + { + if (i < 3) + index = 0; + else if (i < 8) + index = 1; + else + index = 2; + + priv->RfTxPwrLevelCck[rf_path][i] = + priv->RfCckChnlAreaTxPwr[rf_path][index]; + priv->RfTxPwrLevelOfdm1T[rf_path][i] = + priv->RfOfdmChnlAreaTxPwr1T[rf_path][index]; + priv->RfTxPwrLevelOfdm2T[rf_path][i] = + priv->RfOfdmChnlAreaTxPwr2T[rf_path][index]; + + if (rf_path == 0) + { + priv->TxPowerLevelOFDM24G[i] = priv->RfTxPwrLevelOfdm1T[rf_path][i] ; + priv->TxPowerLevelCCK[i] = priv->RfTxPwrLevelCck[rf_path][i]; + } + } + + for(i=0; i<14; i++) + { + RT_TRACE(COMP_EPROM, "Rf-%d TxPwr CH-%d CCK OFDM_1T OFDM_2T= 0x%x/0x%x/0x%x\n", + rf_path, i, priv->RfTxPwrLevelCck[rf_path][i], + priv->RfTxPwrLevelOfdm1T[rf_path][i] , + priv->RfTxPwrLevelOfdm2T[rf_path][i] ); + } + } + for (rf_path = 0; rf_path < 2; rf_path++) + { + for (i = 0; i < 3; i++) + { + priv->EEPROMPwrGroup[rf_path][i] = hwinfo[EEPROM_TxPWRGroup+rf_path*3+i]; + } + } + + for (rf_path = 0; rf_path < 2; rf_path++) + { + for(i=0; i<14; i++) + { + if (i < 3) + index = 0; + else if (i < 8) + index = 1; + else + index = 2; + priv->PwrGroupHT20[rf_path][i] = (priv->EEPROMPwrGroup[rf_path][index]&0xf); + priv->PwrGroupHT40[rf_path][i] = ((priv->EEPROMPwrGroup[rf_path][index]&0xf0)>>4); + RT_TRACE(COMP_INIT, "RF-%d PwrGroupHT20[%d] = 0x%x\n", rf_path, i, priv->PwrGroupHT20[rf_path][i]); + RT_TRACE(COMP_INIT, "RF-%d PwrGroupHT40[%d] = 0x%x\n", rf_path, i, priv->PwrGroupHT40[rf_path][i]); + } + } + + for(i=0; i<14; i++) + { + if (i < 3) + index = 0; + else if (i < 8) + index = 1; + else + index = 2; + + tempval = (*(u8 *)&hwinfo[EEPROM_TX_PWR_HT20_DIFF+index])&0xff; + priv->TxPwrHt20Diff[RF90_PATH_A][i] = (tempval&0xF); + priv->TxPwrHt20Diff[RF90_PATH_B][i] = ((tempval>>4)&0xF); + + if (i < 3) + index = 0; + else if (i < 8) + index = 0x11; + else + index = 1; + + tempval = (*(u8 *)&hwinfo[EEPROM_TX_PWR_OFDM_DIFF+index])&0xff; + priv->TxPwrLegacyHtDiff[RF90_PATH_A][i] = (tempval&0xF); + priv->TxPwrLegacyHtDiff[RF90_PATH_B][i] = ((tempval>>4)&0xF); + + tempval = (*(u8 *)&hwinfo[TX_PWR_SAFETY_CHK]); + priv->TxPwrSafetyFlag = (tempval&0x01); + } + + priv->EEPROMRegulatory = 0; + if(priv->eeprom_version >= 2) + { + if(priv->eeprom_version >= 4) + priv->EEPROMRegulatory = (hwinfo[EEPROM_Regulatory]&0x7); + else + priv->EEPROMRegulatory = (hwinfo[EEPROM_Regulatory]&0x1); + } + RT_TRACE(COMP_INIT, "EEPROMRegulatory = 0x%x\n", priv->EEPROMRegulatory); + + for(i=0; i<14; i++) + RT_TRACE(COMP_EPROM, "RF-A Ht20 to HT40 Diff[%d] = 0x%x\n", i, priv->TxPwrHt20Diff[RF90_PATH_A][i]); + for(i=0; i<14; i++) + RT_TRACE(COMP_EPROM, "RF-A Legacy to Ht40 Diff[%d] = 0x%x\n", i, priv->TxPwrLegacyHtDiff[RF90_PATH_A][i]); + for(i=0; i<14; i++) + RT_TRACE(COMP_EPROM, "RF-B Ht20 to HT40 Diff[%d] = 0x%x\n", i, priv->TxPwrHt20Diff[RF90_PATH_B][i]); + for(i=0; i<14; i++) + RT_TRACE(COMP_EPROM, "RF-B Legacy to HT40 Diff[%d] = 0x%x\n", i, priv->TxPwrLegacyHtDiff[RF90_PATH_B][i]); +#endif + RT_TRACE(COMP_EPROM, "TxPwrSafetyFlag = %d\n", priv->TxPwrSafetyFlag); + + tempval = (*(u8 *)&hwinfo[EEPROM_RFInd_PowerDiff])&0xff; + priv->EEPROMTxPowerDiff = tempval; + priv->LegacyHTTxPowerDiff = priv->TxPwrLegacyHtDiff[RF90_PATH_A][0]; + + RT_TRACE(COMP_EPROM, "TxPowerDiff = %#x\n", priv->EEPROMTxPowerDiff); + + usValue = *(u16 *)&hwinfo[EEPROM_TSSI_A]; + priv->EEPROMTSSI_A = (u8)((usValue&0xff00)>>8); + usValue = *(u8 *)&hwinfo[EEPROM_TSSI_B]; + priv->EEPROMTSSI_B = (u8)(usValue&0xff); + RT_TRACE(COMP_EPROM, "TSSI_A = %#x, TSSI_B = %#x\n", + priv->EEPROMTSSI_A, priv->EEPROMTSSI_B); + + tempval = *(u8 *)&hwinfo[EEPROM_ThermalMeter]; + priv->EEPROMThermalMeter = tempval; + RT_TRACE(COMP_EPROM, "ThermalMeter = %#x\n", priv->EEPROMThermalMeter); + priv->ThermalMeter[0] =(priv->EEPROMThermalMeter&0x1f); + priv->TSSI_13dBm = priv->EEPROMThermalMeter *100; + + tempval = *(u8 *)&hwinfo[EEPROM_BLUETOOTH_COEXIST]; + priv->EEPROMBluetoothCoexist = ((tempval&0x2)>>1); + priv->BluetoothCoexist = priv->EEPROMBluetoothCoexist; + tempval = hwinfo[EEPROM_BLUETOOTH_TYPE]; + priv->EEPROMBluetoothType = ((tempval&0xe)>>1); + priv->EEPROMBluetoothAntNum = (tempval&0x1); + priv->EEPROMBluetoothAntIsolation = ((tempval&0x10)>>4); + RT_TRACE(COMP_EPROM, "BlueTooth Coexistance = %#x\n", priv->BluetoothCoexist); + +#ifdef MERGE_TO_DO + BT_VAR_INIT(Adapter); + + tempval = hwinfo[EEPROM_WoWLAN]; + priv->EEPROMSupportWoWLAN = ((tempval&0x4)>>2); + if (priv->EEPROMSupportWoWLAN) + priv->bHwSupportRemoteWakeUp = true; + else + priv->bHwSupportRemoteWakeUp = false; +#endif +#ifdef RTL8192S_WAPI_SUPPORT + tempval = *(u8 *)&hwinfo[EEPROM_WAPI_SUPPORT]; + priv->EEPROMWapiSupport = ((tempval&0x10)>>4); + priv->EEPROMWapiSupport = 1; + + priv->WapiSupport = priv->EEPROMWapiSupport; + priv->rtllib->WapiSupport = priv->WapiSupport; + RT_TRACE(COMP_EPROM, "WAPI Support = %#x\n", priv->WapiSupport); +#endif + + tempval = (*(u8 *)&hwinfo[EEPROM_CrystalCap])>>4; + priv->EEPROMCrystalCap =tempval; + RT_TRACE(COMP_EPROM, "CrystalCap = %#x\n", priv->EEPROMCrystalCap); + priv->CrystalCap = priv->EEPROMCrystalCap; + + priv->eeprom_ChannelPlan = *(u8 *)&hwinfo[EEPROM_ChannelPlan]; + priv->bTXPowerDataReadFromEEPORM = true; + RT_TRACE(COMP_EPROM, "EEPROM ChannelPlan = 0x%4x\n", priv->eeprom_ChannelPlan); + + tempval = *(u8*)&hwinfo[EEPROM_BoardType]; + if (tempval == 0) + priv->rf_type= RF_2T2R; + else if (tempval == 1) + priv->rf_type = RF_1T2R; + else if (tempval == 2) + priv->rf_type = RF_1T2R; + else if (tempval == 3) + priv->rf_type = RF_1T1R; + + priv->rtllib->RF_Type = priv->rf_type; + priv->rtllib->b1x1RecvCombine = false; + if (priv->rf_type == RF_1T2R) + { + tempval = read_nic_byte(dev, 0x07); + if (!(tempval & BIT0)) + { + priv->rtllib->b1x1RecvCombine = true; + RT_TRACE(COMP_INIT, "RF_TYPE=1T2R but only 1SS\n"); + } + } + priv->rtllib->b1SSSupport = priv->rtllib->b1x1RecvCombine; + + priv->rf_chip = RF_6052; + + priv->eeprom_CustomerID = *(u8 *)&hwinfo[EEPROM_CustomID]; + + RT_TRACE(COMP_EPROM, "EEPROM Customer ID: 0x%2x, rf_chip:%x\n", priv->eeprom_CustomerID, priv->rf_chip); + + priv->rtllib->b_customer_lenovo_id = false; + + switch(priv->eeprom_CustomerID) + { + case EEPROM_CID_DEFAULT: + + if(priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8190) + priv->CustomerID = RT_CID_819x_Lenovo; + else if(priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8191) + priv->CustomerID = RT_CID_819x_Lenovo; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE020) + priv->CustomerID = RT_CID_819x_Lenovo; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE025) + priv->CustomerID = RT_CID_819x_Lenovo; + else if(priv->eeprom_svid == 0x1A32 && priv->eeprom_smid == 0x0308) + priv->CustomerID = RT_CID_819x_QMI; + else if(priv->eeprom_svid == 0x1A32 && priv->eeprom_smid == 0x0311) + priv->CustomerID = RT_CID_819x_QMI; + else if(priv->eeprom_svid == 0x1462 && priv->eeprom_smid == 0x6897) + priv->CustomerID = RT_CID_819x_MSI; + else if(priv->eeprom_svid == 0x1462 && priv->eeprom_smid == 0x3821) + priv->CustomerID = RT_CID_819x_MSI; + else if(priv->eeprom_svid == 0x1462 && priv->eeprom_smid == 0x897A) + priv->CustomerID = RT_CID_819x_MSI; + /****************************************************************************/ + /* ACER ID */ + /****************************************************************************/ + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x7172) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x7173) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8186) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8187) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8156) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8157) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x7172) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x7173) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x8186) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x8187) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x8156) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x8157) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE021) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE022) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8158) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8159) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0xE021) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0xE022) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x8158) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x8159) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x7186) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x7187) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8186) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8187) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8156) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8157) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x7186) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x7187) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x8186) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x8187) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x8156) + priv->CustomerID = RT_CID_819x_Acer; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x1025 && priv->eeprom_smid == 0x8157) + priv->CustomerID = RT_CID_819x_Acer; + /****************************************************************************/ + /* ACER ID END */ + /****************************************************************************/ + + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x103C && priv->eeprom_smid == 0x1467) + priv->CustomerID = RT_CID_819x_HP; + + else if(priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8192) + priv->CustomerID = RT_CID_819x_Foxcoon; + else if(priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8193) + priv->CustomerID = RT_CID_819x_Foxcoon; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8188) + priv->CustomerID = RT_CID_819x_SAMSUNG; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8189) + priv->CustomerID = RT_CID_819x_SAMSUNG; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE023) + priv->CustomerID = RT_CID_819x_SAMSUNG; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE024) + priv->CustomerID = RT_CID_819x_SAMSUNG; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8190) + priv->CustomerID = RT_CID_819x_SAMSUNG; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8191) + priv->CustomerID = RT_CID_819x_SAMSUNG; + else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 && + priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8192) + priv->CustomerID = RT_CID_819x_SAMSUNG; + else + priv->CustomerID = RT_CID_DEFAULT; + break; + + case EEPROM_CID_TOSHIBA: + priv->CustomerID = RT_CID_TOSHIBA; + break; + + case EEPROM_CID_QMI: + priv->CustomerID = RT_CID_819x_QMI; + break; + + case EEPROM_CID_WHQL: +#ifdef TO_DO_LIST + priv->bInHctTest = true; + priv->bSupportTurboMode = false; + priv->bAutoTurboBy8186 = false; + priv->PowerSaveControl.bInactivePs = false; + priv->PowerSaveControl.bIPSModeBackup = false; + priv->PowerSaveControl.bLeisurePs = false; + priv->keepAliveLevel = 0; + priv->bUnloadDriverwhenS3S4 = false; +#endif + break; + + default: + priv->CustomerID = RT_CID_DEFAULT; + break; + + } + +#if defined (RTL8192S_WAPI_SUPPORT) + if (priv->rtllib->WapiSupport) + { + WapiInit(priv->rtllib); + } +#endif + RT_TRACE(COMP_INIT, "<==== rtl8192se_read_eeprom_info\n"); +} + +void rtl8192se_get_eeprom_size(struct net_device* dev) +{ + struct r8192_priv* priv = rtllib_priv(dev); + u8 curCR = 0; + curCR = read_nic_byte(dev, EPROM_CMD); + PHY_RFShadowRefresh(dev); + if (curCR & BIT4){ + RT_TRACE(COMP_EPROM, "Boot from EEPROM\n"); + priv->epromtype = EEPROM_93C46; + } + else{ + RT_TRACE(COMP_EPROM, "Boot from EFUSE\n"); + priv->epromtype = EEPROM_BOOT_EFUSE; + } + if (curCR & BIT5){ + RT_TRACE(COMP_EPROM,"Autoload OK\n"); + priv->AutoloadFailFlag=false; + rtl8192se_read_eeprom_info(dev); + } + else{ + RT_TRACE(COMP_INIT, "AutoLoad Fail reported from CR9346!!\n"); + priv->AutoloadFailFlag=true; + rtl8192se_config_hw_for_load_fail(dev); + + if (priv->epromtype == EEPROM_BOOT_EFUSE) + { +#if (RTL92SE_FPGA_VERIFY == 0) + EFUSE_ShadowMapUpdate(dev); +#endif + } + } +#ifdef TO_DO_LIST + if(Adapter->bInHctTest) + { + pMgntInfo->PowerSaveControl.bInactivePs = false; + pMgntInfo->PowerSaveControl.bIPSModeBackup = false; + pMgntInfo->PowerSaveControl.bLeisurePs = false; + pMgntInfo->keepAliveLevel = 0; + } +#endif +#ifdef ENABLE_DOT11D + priv->ChannelPlan = COUNTRY_CODE_WORLD_WIDE_13; + + if(priv->ChannelPlan == COUNTRY_CODE_GLOBAL_DOMAIN) { + GET_DOT11D_INFO(priv->rtllib)->bEnabled = 1; + RT_TRACE(COMP_INIT, "%s: Enable dot11d when RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN!\n", __FUNCTION__); + } +#endif + + RT_TRACE(COMP_INIT, "RegChannelPlan(%d) EEPROMChannelPlan(%d)", \ + priv->RegChannelPlan, priv->eeprom_ChannelPlan); + RT_TRACE(COMP_INIT, "ChannelPlan = %d\n" , priv->ChannelPlan); + HalCustomizedBehavior8192S(dev); +} + +#if (RTL92SE_FPGA_VERIFY == 1) +static void MacConfigBeforeFwDownload(struct net_device* dev) +{ + struct r8192_priv* priv = rtllib_priv(dev); + u8 i; + u8 tmpU1b; + u16 tmpU2b; + u32 addr; + + RT_TRACE(COMP_INIT, "Set some register before enable NIC\r\n"); + + tmpU1b = read_nic_byte(dev, 0x562); + tmpU1b |= 0x08; + write_nic_byte(dev, 0x562, tmpU1b); + tmpU1b &= ~(BIT3); + write_nic_byte(dev, 0x562, tmpU1b); + + tmpU1b = read_nic_byte(dev, SYS_FUNC_EN+1); + tmpU1b &= 0x73; + write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b); + + tmpU1b = read_nic_byte(dev, SYS_CLKR); + tmpU1b &= 0xfa; + write_nic_byte(dev, SYS_CLKR, tmpU1b); + + RT_TRACE(COMP_INIT, "Delay 1000ms before reset NIC. I dont know how long should we delay!!!!!\r\n"); + ssleep(1); + + write_nic_byte(dev, SYS_CLKR, SYS_CLKSEL_80M); + + tmpU1b = read_nic_byte(dev, SPS1_CTRL); + write_nic_byte(dev, SPS1_CTRL, (tmpU1b|SPS1_LDEN)); + + tmpU1b = read_nic_byte(dev, AFE_MISC); + write_nic_byte(dev, AFE_MISC, (tmpU1b|AFE_BGEN)); + + tmpU1b = read_nic_byte(dev, LDOA15_CTRL); + write_nic_byte(dev, LDOA15_CTRL, (tmpU1b|LDA15_EN)); + + tmpU1b = read_nic_byte(dev, SPS1_CTRL); + write_nic_byte(dev, SPS1_CTRL, (tmpU1b|SPS1_SWEN)); + + tmpU1b = read_nic_byte(dev, AFE_MISC); + write_nic_byte(dev, AFE_MISC, (tmpU1b|AFE_MBEN)); + + tmpU2b = read_nic_word(dev, SYS_ISO_CTRL); + write_nic_word(dev, SYS_ISO_CTRL, (tmpU2b|ISO_PWC_DV2RP)); + + tmpU2b = read_nic_word(dev, SYS_ISO_CTRL); + write_nic_word(dev, SYS_ISO_CTRL, (tmpU2b &(~ISO_PWC_RV2RP))); + + tmpU2b = read_nic_word(dev, AFE_XTAL_CTRL); + write_nic_word(dev, AFE_XTAL_CTRL, (tmpU2b &(~XTAL_GATE_AFE))); + + tmpU1b = read_nic_byte(dev, AFE_PLL_CTRL); + write_nic_byte(dev, AFE_PLL_CTRL, (tmpU1b|APLL_EN)); + + write_nic_byte(dev, SYS_ISO_CTRL, 0xEE); + + tmpU2b = read_nic_word(dev, SYS_CLKR); + write_nic_word(dev, SYS_CLKR, (tmpU2b|SYS_MAC_CLK_EN)); + + tmpU2b = read_nic_word(dev, SYS_FUNC_EN); + write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|FEN_DCORE|FEN_MREGEN)); + + tmpU2b = read_nic_word(dev, SYS_CLKR); + write_nic_word(dev, SYS_CLKR, ((tmpU2b|SYS_FWHW_SEL)&(~SYS_SWHW_SEL))); + + write_nic_byte(dev, RF_CTRL, 0); + write_nic_byte(dev, RF_CTRL, 7); + + write_nic_word(dev, CMDR, 0x37FC); + +#if 1 + write_nic_byte(dev, 0x6, 0x30); + write_nic_byte(dev, 0x49, 0xf0); + + write_nic_byte(dev, 0x4b, 0x81); + + write_nic_byte(dev, 0xb5, 0x21); + + write_nic_byte(dev, 0xdc, 0xff); + write_nic_byte(dev, 0xdd, 0xff); + write_nic_byte(dev, 0xde, 0xff); + write_nic_byte(dev, 0xdf, 0xff); + + write_nic_byte(dev, 0x11a, 0x00); + write_nic_byte(dev, 0x11b, 0x00); + + for (i = 0; i < 32; i++) + write_nic_byte(dev, INIMCS_SEL+i, 0x1b); + + write_nic_byte(dev, 0x236, 0xff); + + write_nic_byte(dev, 0x503, 0x22); + + if(priv->bSupportASPM){ + write_nic_byte(dev, 0x560, 0x40); + } else { + write_nic_byte(dev, 0x560, 0x00); + } + + write_nic_byte(dev, DBG_PORT, 0x91); +#endif + +#ifdef CONFIG_RX_CMD + write_nic_dword(dev, RCDA, priv->rx_ring_dma[RX_CMD_QUEUE]); +#endif + write_nic_dword(dev, RDQDA, priv->rx_ring_dma[RX_MPDU_QUEUE]); + rtl8192_tx_enable(dev); + + RT_TRACE(COMP_INIT, "<---MacConfig8192SE()\n"); + +} /* MacConfigBeforeFwDownload */ +#else +void gen_RefreshLedState(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PLED_8190 pLed0 = &(priv->SwLed0); + + if(priv->bfirst_init) + { + RT_TRACE(COMP_INIT, "gen_RefreshLedState first init\n"); + return; + } + + if(priv->rtllib->RfOffReason == RF_CHANGE_BY_IPS ) + { + SwLedOn(dev, pLed0); + } + else + { + SwLedOff(dev, pLed0); + } + +} +void MacConfigBeforeFwDownload(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 i; + u8 tmpU1b; + u16 tmpU2b; + u8 PollingCnt = 20; + + RT_TRACE(COMP_INIT, "--->MacConfigBeforeFwDownload()\n"); + + if (priv->initialized_at_probe) { + return; + } + + if(priv->bfirst_init) + { + tmpU1b = read_nic_byte(dev, SYS_FUNC_EN+1); + tmpU1b &= 0xFE; + write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b); + udelay(1); + write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b|BIT0); + } + + tmpU1b = read_nic_byte(dev, (SYS_CLKR + 1)); + if(tmpU1b & BIT7) + { + tmpU1b &= ~(BIT6 | BIT7); + if(!HalSetSysClk8192SE(dev, tmpU1b)) + return; + } + +#ifdef MERGE_TO_DO + if( (pHalData->bt_coexist.BluetoothCoexist) && + (pHalData->bt_coexist.BT_CoexistType == BT_CSR) ) + { + write_nic_byte(dev, AFE_PLL_CTRL, 0x0); + udelay(50); + write_nic_byte(dev, LDOA15_CTRL, 0x34); + udelay(50); + } + else +#endif + { + write_nic_byte(dev, AFE_PLL_CTRL, 0x0); + udelay(50); + write_nic_byte(dev, LDOA15_CTRL, 0x34); + udelay(50); + } + + + write_nic_byte(dev, RPWM, 0x0); + + tmpU1b = read_nic_byte(dev, SYS_FUNC_EN+1); + tmpU1b &= 0x73; + write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b); + mdelay(1); + + write_nic_byte(dev, CMDR, 0); + write_nic_byte(dev, TCR, 0); + +#if (DEMO_BOARD_SUPPORT == 0) + tmpU1b = read_nic_byte(dev, SPS1_CTRL); + tmpU1b &= 0xfc; + write_nic_byte(dev, SPS1_CTRL, tmpU1b); +#endif + + tmpU1b = read_nic_byte(dev, 0x562); + tmpU1b |= 0x08; + write_nic_byte(dev, 0x562, tmpU1b); + tmpU1b &= ~(BIT3); + write_nic_byte(dev, 0x562, tmpU1b); + + + + + + RT_TRACE(COMP_INIT, "Enable AFE clock source\r\n"); + tmpU1b = read_nic_byte(dev, AFE_XTAL_CTRL); + write_nic_byte(dev, AFE_XTAL_CTRL, (tmpU1b|0x01)); + udelay(2000); + tmpU1b = read_nic_byte(dev, AFE_XTAL_CTRL+1); + write_nic_byte(dev, AFE_XTAL_CTRL+1, (tmpU1b&0xfb)); + + + RT_TRACE(COMP_INIT, "Enable AFE Macro Block's Bandgap\r\n"); + tmpU1b = read_nic_byte(dev, AFE_MISC); + write_nic_byte(dev, AFE_MISC, (tmpU1b|BIT0)); + mdelay(1); + + RT_TRACE(COMP_INIT, "Enable AFE Mbias\r\n"); + tmpU1b = read_nic_byte(dev, AFE_MISC); + write_nic_byte(dev, AFE_MISC, (tmpU1b|0x02)); + mdelay(1); + + tmpU1b = read_nic_byte(dev, LDOA15_CTRL); + write_nic_byte(dev, LDOA15_CTRL, (tmpU1b|BIT0)); + + + + tmpU2b = read_nic_word(dev, SYS_ISO_CTRL); + write_nic_word(dev, SYS_ISO_CTRL, (tmpU2b|BIT11)); + + + tmpU2b = read_nic_word(dev, SYS_FUNC_EN); + write_nic_word(dev, SYS_FUNC_EN, (tmpU2b |BIT13)); + + + write_nic_byte(dev, SYS_ISO_CTRL+1, 0x68); + + udelay(200); + tmpU1b = read_nic_byte(dev, AFE_PLL_CTRL); + write_nic_byte(dev, AFE_PLL_CTRL, (tmpU1b|BIT0|BIT4)); + +#if 1 + udelay(100); + write_nic_byte(dev, AFE_PLL_CTRL, (tmpU1b|BIT0|BIT4|BIT6)); + udelay(10); + write_nic_byte(dev, AFE_PLL_CTRL, (tmpU1b|BIT0|BIT4)); + udelay(10); +#endif + tmpU1b = read_nic_byte(dev, AFE_PLL_CTRL+1); + write_nic_byte(dev, AFE_PLL_CTRL+1, (tmpU1b|BIT0)); + mdelay(1); + + write_nic_byte(dev, SYS_ISO_CTRL, 0xA6); + + tmpU2b = read_nic_word(dev, SYS_CLKR); + write_nic_word(dev, SYS_CLKR, (tmpU2b|BIT12|BIT11)); + + tmpU2b = read_nic_word(dev, SYS_FUNC_EN); + write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|BIT11)); + + tmpU1b = read_nic_byte(dev, SYS_FUNC_EN+1); + write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b&~(BIT7)); + + write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|BIT11|BIT15)); + + tmpU2b = read_nic_word(dev, SYS_CLKR); + write_nic_word(dev, SYS_CLKR, (tmpU2b&(~BIT2))); + + tmpU1b = read_nic_byte(dev, (SYS_CLKR + 1)); + tmpU1b = ((tmpU1b | BIT7) & (~BIT6)); + if(!HalSetSysClk8192SE(dev, tmpU1b)) + return; + +#if 0 + tmpU2b = read_nic_word(dev, SYS_CLKR); + write_nic_word(dev, SYS_CLKR, ((tmpU2b|BIT15)&(~BIT14))); +#endif + + write_nic_word(dev, CMDR, 0x07FC); + +#if 1 + write_nic_byte(dev, 0x6, 0x30); + write_nic_byte(dev, 0x49, 0xf0); + + write_nic_byte(dev, 0x4b, 0x81); + + write_nic_byte(dev, 0xb5, 0x21); + + write_nic_byte(dev, 0xdc, 0xff); + write_nic_byte(dev, 0xdd, 0xff); + write_nic_byte(dev, 0xde, 0xff); + write_nic_byte(dev, 0xdf, 0xff); + + write_nic_byte(dev, 0x11a, 0x00); + write_nic_byte(dev, 0x11b, 0x00); + + for (i = 0; i < 32; i++) + write_nic_byte(dev, INIMCS_SEL+i, 0x1b); + + write_nic_byte(dev, 0x236, 0xff); + + write_nic_byte(dev, 0x503, 0x22); + if(priv->bSupportASPM && !priv->bSupportBackDoor){ + write_nic_byte(dev, 0x560, 0x40); + } else { + write_nic_byte(dev, 0x560, 0x00); + } + + write_nic_byte(dev, DBG_PORT, 0x91); +#endif + + write_nic_dword(dev, RDQDA, priv->rx_ring_dma[RX_MPDU_QUEUE]); +#ifdef CONFIG_RX_CMD + write_nic_dword(dev, RCDA, priv->rx_ring_dma[RX_CMD_QUEUE]); +#endif + rtl8192_tx_enable(dev); + + write_nic_word(dev, CMDR, 0x37FC); + do { + tmpU1b = read_nic_byte(dev, TCR); + if((tmpU1b & TXDMA_INIT_VALUE) == TXDMA_INIT_VALUE) + break; + + udelay(5); + } while(PollingCnt--); + + if(PollingCnt <= 0 ) + { + RT_TRACE(COMP_ERR, "MacConfigBeforeFwDownloadASIC(): Polling TXDMA_INIT_VALUE timeout!! Current TCR(%#x)\n", tmpU1b); + tmpU1b = read_nic_byte(dev, CMDR); + write_nic_byte(dev, CMDR, tmpU1b&(~TXDMA_EN)); + udelay(2); + write_nic_byte(dev, CMDR, tmpU1b|TXDMA_EN); + } + + gen_RefreshLedState(dev); + + RT_TRACE(COMP_INIT, "<---MacConfigBeforeFwDownload()\n"); + +} /* MacConfigBeforeFwDownload */ +#endif + +static void MacConfigAfterFwDownload(struct net_device* dev) +{ + u8 i; + u16 tmpU2b; + struct r8192_priv* priv = rtllib_priv(dev); + + + write_nic_byte(dev, CMDR, + (u8)(BBRSTn|BB_GLB_RSTn|SCHEDULE_EN|MACRXEN|MACTXEN|DDMA_EN|FW2HW_EN| + RXDMA_EN|TXDMA_EN|HCI_RXDMA_EN|HCI_TXDMA_EN)); + write_nic_dword(dev, TCR, + read_nic_dword(dev, TCR)|TXDMAPRE2FULL); + write_nic_dword(dev, RCR, priv->ReceiveConfig); + +#if 0 + for (i=0;i<6;i++) + write_nic_byte(dev, MACIDR0+i, dev->dev_addr[i]); +#endif + write_nic_word(dev, SIFS_CCK, 0x0a0a); + write_nic_word(dev, SIFS_OFDM, 0x1010); + write_nic_byte(dev, ACK_TIMEOUT, 0x40); + + write_nic_word(dev, BCN_INTERVAL, 100); + write_nic_word(dev, ATIMWND, 2); +#ifdef _ENABLE_SW_BEACON + write_nic_word(dev, BCN_DRV_EARLY_INT, BIT15); +#endif + +#if 0 + write_nic_dword(dev, RQPN1, + NUM_OF_PAGE_IN_FW_QUEUE_BK<<0 | NUM_OF_PAGE_IN_FW_QUEUE_BE<<8 |\ + NUM_OF_PAGE_IN_FW_QUEUE_VI<<16 | NUM_OF_PAGE_IN_FW_QUEUE_VO<<24); + write_nic_dword(dev, RQPN2, + NUM_OF_PAGE_IN_FW_QUEUE_HCCA << 0 | NUM_OF_PAGE_IN_FW_QUEUE_CMD << 8|\ + NUM_OF_PAGE_IN_FW_QUEUE_MGNT << 16 |NUM_OF_PAGE_IN_FW_QUEUE_HIGH << 24); + write_nic_dword(dev, RQPN3, + NUM_OF_PAGE_IN_FW_QUEUE_BCN<<0 | NUM_OF_PAGE_IN_FW_QUEUE_PUB<<8); + write_nic_byte(dev, LD_RQPN, BIT7); +#endif + + + + + write_nic_byte(dev, RXDMA, + read_nic_byte(dev, RXDMA)|BIT6); + + if (priv->card_8192_version== VERSION_8192S_ACUT) + write_nic_byte(dev, RRSR, 0xf0); + else if (priv->card_8192_version == VERSION_8192S_BCUT) + write_nic_byte(dev, RRSR, 0xff); + write_nic_byte(dev, RRSR+1, 0x01); + write_nic_byte(dev, RRSR+2, 0x00); + + for (i = 0; i < 8; i++) + { + + if (priv->card_8192_version == VERSION_8192S_ACUT) + write_nic_dword(dev, ARFR0+i*4, 0x1f0ff0f0); +#if 0 + else if (priv->card_8192_version == VERSION_8192S_BCUT) + write_nic_dword(dev, ARFR0+i*4, 0x1f0ff0f0); +#endif + } + + write_nic_byte(dev, AGGLEN_LMT_H, 0x0f); + write_nic_word(dev, AGGLEN_LMT_L, 0x7442); + write_nic_word(dev, AGGLEN_LMT_L+2, 0xddd7); + write_nic_word(dev, AGGLEN_LMT_L+4, 0xd772); + write_nic_word(dev, AGGLEN_LMT_L+6, 0xfffd); + + write_nic_dword(dev, DARFRC, 0x04010000); + write_nic_dword(dev, DARFRC+4, 0x09070605); + write_nic_dword(dev, RARFRC, 0x04010000); + write_nic_dword(dev, RARFRC+4, 0x09070605); + + + + write_nic_word(dev, SG_RATE, 0xFFFF); + + + write_nic_word(dev, NAV_PROT_LEN, 0x0080); + write_nic_byte(dev, CFEND_TH, 0xFF); + write_nic_byte(dev, AMPDU_MIN_SPACE, 0x07); + write_nic_byte(dev, TXOP_STALL_CTRL, 0x00); + + + /*write_nic_byte(dev, PCIF, ((MXDMA2_NoLimit<epromtype == EEPROM_BOOT_EFUSE) + { + u8 tempval; + + tempval = read_nic_byte(dev, SYS_ISO_CTRL+1); + tempval &= 0xFE; + write_nic_byte(dev, SYS_ISO_CTRL+1, tempval); + + + + write_nic_byte(dev, EFUSE_CTRL+3, 0x72); + RT_TRACE(COMP_INIT, "EFUSE CONFIG OK\n"); + } + RT_TRACE(COMP_INIT, "MacConfigAfterFwDownload OK\n"); + +} /* MacConfigAfterFwDownload */ + +static void rtl8192se_HalDetectPwrDownMode(struct net_device*dev) +{ + u8 tmpvalue; + struct r8192_priv *priv = rtllib_priv(dev); + EFUSE_ShadowRead(dev, 1, 0x78, (u32 *)&tmpvalue); + + if (tmpvalue & BIT0) { + priv->pwrdown = true; + } else { + priv->pwrdown = false; + } +} + +void HwConfigureRTL8192SE(struct net_device *dev) +{ + + struct r8192_priv* priv = rtllib_priv(dev); + + u8 regBwOpMode = 0; + u32 regRATR = 0, regRRSR = 0; + u8 regTmp = 0; + + + switch(priv->rtllib->mode) + { + case WIRELESS_MODE_B: + regBwOpMode = BW_OPMODE_20MHZ; + regRATR = RATE_ALL_CCK; + regRRSR = RATE_ALL_CCK; + break; + case WIRELESS_MODE_A: + regBwOpMode = BW_OPMODE_5G |BW_OPMODE_20MHZ; + regRATR = RATE_ALL_OFDM_AG; + regRRSR = RATE_ALL_OFDM_AG; + break; + case WIRELESS_MODE_G: + regBwOpMode = BW_OPMODE_20MHZ; + regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG; + regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG; + break; + case WIRELESS_MODE_AUTO: + case WIRELESS_MODE_N_24G: + regBwOpMode = BW_OPMODE_20MHZ; + regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS; + regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG; + break; + case WIRELESS_MODE_N_5G: + regBwOpMode = BW_OPMODE_5G; + regRATR = RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS; + regRRSR = RATE_ALL_OFDM_AG; + break; + default: + regBwOpMode = BW_OPMODE_20MHZ; + regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG; + regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG; + break; + } + + regTmp = read_nic_byte(dev, INIRTSMCS_SEL); +#if (RTL8192SU_DISABLE_CCK_RATE == 1) + regRRSR = ((regRRSR & 0x000ffff0)<<8) | regTmp; +#else + regRRSR = ((regRRSR & 0x000fffff)<<8) | regTmp; +#endif + write_nic_dword(dev, INIRTSMCS_SEL, regRRSR); + + write_nic_byte(dev, BW_OPMODE, regBwOpMode); + priv->rtllib->SetHwRegHandler(dev, HW_VAR_RETRY_LIMIT, (u8*)(&priv->ShortRetryLimit)); + + write_nic_byte(dev, MLT, 0x8f); + + + +#if 1 + switch(priv->rf_type) + { + case RF_1T2R: + case RF_1T1R: + RT_TRACE(COMP_INIT, "Initializeadapter: RF_Type%s\n", priv->rf_type==RF_1T1R? "(1T1R)":"(1T2R)"); + priv->rtllib->MinSpaceCfg = (MAX_MSS_DENSITY_1T<<3); + break; + case RF_2T2R: + case RF_2T2R_GREEN: + RT_TRACE(COMP_INIT, "Initializeadapter:RF_Type(2T2R)\n"); + priv->rtllib->MinSpaceCfg = (MAX_MSS_DENSITY_2T<<3); + break; + } + write_nic_byte(dev, AMPDU_MIN_SPACE, priv->rtllib->MinSpaceCfg); +#else + priv->rtllib->MinSpaceCfg = 0x90; + SetHwReg8192SE(dev, HW_VAR_AMPDU_MIN_SPACE, (u8*)(&priv->rtllib->MinSpaceCfg)); +#endif +} + +void +RF_RECOVERY(struct net_device*dev ,u8 Start, u8 End) +{ + u8 offset; + u8 counter; + + + for(offset = Start; offsetbeing_init_adapter = true; +#ifdef CONFIG_ASPM_OR_D3 + RT_DISABLE_ASPM(dev); +#endif +start: + rtl8192_pci_resetdescring(dev); + MacConfigBeforeFwDownload(dev); + priv->initialized_at_probe = false; + + priv->card_8192_version = priv->rtllib->VersionID + = (VERSION_8192S)((read_nic_dword(dev, PMC_FSM)>>16)&0xF); + + RT_TRACE(COMP_INIT, "NIC version : %s\n", ((read_nic_dword(dev, PMC_FSM)>>15)&0x1)?"C-cut":"B-cut"); + + rtl8192se_GPIOBit3CfgInputMode(dev); + + rtStatus = FirmwareDownload92S((struct net_device*)dev); + if(rtStatus != true) + { + if(fw_download_times <= 10){ + RT_TRACE(COMP_INIT, "rtl8192se_adapter_start(): Download Firmware failed %d times, Download again!!\n",fw_download_times); + fw_download_times = fw_download_times + 1; + goto start; + }else{ + RT_TRACE(COMP_INIT, "rtl8192se_adapter_start(): Download Firmware failed 10, end!!\n"); + goto end; + } + } + + MacConfigAfterFwDownload(dev); + + priv->FwCmdIOMap = read_nic_word(dev, LBUS_MON_ADDR); + priv->FwCmdIOParam = read_nic_dword(dev, LBUS_ADDR_MASK); + + +#if (RTL8192S_DISABLE_FW_DM == 1) + write_nic_dword(dev, WFM5, FW_DM_DISABLE); + ChkFwCmdIoDone(dev); + write_nic_dword(dev, WFM5, FW_TXANT_SWITCH_DISABLE); + ChkFwCmdIoDone(dev); +#endif + +#if (HAL_MAC_ENABLE == 1) + RT_TRACE(COMP_INIT, "MAC Config Start!\n"); + if (PHY_MACConfig8192S(dev) != true) + { + RT_TRACE(COMP_ERR, "MAC Config failed\n"); + return rtStatus; + } + RT_TRACE(COMP_INIT, "MAC Config Finished!\n"); +#endif + + write_nic_dword(dev, CMDR, 0x37FC); + +#if (HAL_BB_ENABLE == 1) + RT_TRACE(COMP_INIT, "BB Config Start!\n"); + if (PHY_BBConfig8192S(dev) != true) + { + RT_TRACE(COMP_INIT, "BB Config failed\n"); + return rtStatus; + } + RT_TRACE(COMP_INIT, "BB Config Finished!\n"); +#endif + + + +#if 1 + + priv->Rf_Mode = RF_OP_By_SW_3wire; +#else + priv->Rf_Mode = RF_OP_By_SW_3wire; +#if (HAL_RF_ENABLE == 1) + RT_TRACE(COMP_INIT, "RF Config started!\n"); + +#if (RTL92SE_FPGA_VERIFY == 0) + write_nic_byte(dev, AFE_XTAL_CTRL+1, 0xDB); + if(priv->card_8192_version== VERSION_8192S_ACUT) + write_nic_byte(dev, SPS1_CTRL+3, 0x07); + else + write_nic_byte(dev, RF_CTRL, 0x07); +#endif + if(PHY_RFConfig8192S(dev) != true) + { + RT_TRACE(COMP_ERR, "RF Config failed\n"); + return rtStatus; + } + RT_TRACE(COMP_INIT, "RF Config Finished!\n"); +#endif + + + priv->RfRegChnlVal[0] = rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)0, RF_CHNLBW, bRFRegOffsetMask); + priv->RfRegChnlVal[1] = rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)1, RF_CHNLBW, bRFRegOffsetMask); + + rtl8192_setBBreg(dev, rFPGA0_RFMOD, bCCKEn, 0x1); + rtl8192_setBBreg(dev, rFPGA0_RFMOD, bOFDMEn, 0x1); + + HwConfigureRTL8192SE(dev); + + if(priv->ResetProgress == RESET_TYPE_NORESET) + rtl8192_SetWirelessMode(dev, priv->rtllib->mode); + CamResetAllEntry(dev); + { + u8 SECR_value = 0x0; + SECR_value |= SCR_TxEncEnable; + SECR_value |= SCR_RxDecEnable; + SECR_value |= SCR_NoSKMC; + write_nic_byte(dev, SECR, SECR_value); + } + + { + int i; + for (i=0; i<4; i++) + write_nic_dword(dev, WDCAPARA_ADD[i], 0x5e4322); + } + { + PHY_GetHWRegOriginalValue(dev); +#ifndef CONFIG_MP + rtl8192_phy_setTxPower(dev, priv->chan); +#endif + } +#endif + + + if(!priv->pwrdown){ + if(priv->RegRfOff == true) + { + RT_TRACE((COMP_INIT|COMP_RF), "==++==> InitializeAdapter8190(): Turn off RF for RegRfOff ----------\n"); + MgntActSet_RF_State(dev, eRfOff, RF_CHANGE_BY_SW,true); + + for(eRFPath = 0; eRFPath NumTotalRFPath; eRFPath++) + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, 0x4, 0xC00, 0x0); + + } + else if(priv->rtllib->RfOffReason > RF_CHANGE_BY_PS) + { + RT_RF_CHANGE_SOURCE rfoffreason = priv->rtllib->RfOffReason; + + RT_TRACE((COMP_INIT|COMP_RF), "InitializeAdapter8190(): ==++==> Turn off RF for RfOffReason(%d) ----------\n", priv->rtllib->RfOffReason); + printk("InitializeAdapter8190(): ==++==> Turn off RF for RfOffReason(%d) ----------\n", priv->rtllib->RfOffReason); + + priv->rtllib->RfOffReason = RF_CHANGE_BY_INIT; + priv->rtllib->eRFPowerState = eRfOn; + MgntActSet_RF_State(dev, eRfOff, rfoffreason,true); + + } + else + { +#if 0 + u8 u1Tmp; + RT_RF_POWER_STATE eRfPowerStateToSet; + + write_nic_byte(dev, MAC_PINMUX_CFG, (GPIOMUX_EN | GPIOSEL_GPIO)); + u1Tmp = read_nic_byte(dev, MAC_PINMUX_CFG); + u1Tmp = read_nic_byte(dev, GPIO_IO_SEL); + u1Tmp &= HAL_8192S_HW_GPIO_OFF_MASK; + write_nic_byte(dev, GPIO_IO_SEL, u1Tmp); + u1Tmp = read_nic_byte(dev, GPIO_IO_SEL); + mdelay(5); + u1Tmp = read_nic_byte(dev, GPIO_IN); + RTPRINT(FPWR, PWRHW, ("GPIO_IN=%02x\n", u1Tmp)); + eRfPowerStateToSet = (u1Tmp & HAL_8192S_HW_GPIO_OFF_BIT) ? eRfOn : eRfOff; + + RT_TRACE(COMP_INIT, "==++==> InitializeAdapter8190(): RF=%d \n", eRfPowerStateToSet); + if (eRfPowerStateToSet == eRfOff) + { + MgntActSet_RF_State(dev, eRfOff, RF_CHANGE_BY_HW, TRUE); + + } + else + { + priv->rtllib->RfOffReason = 0; + } +#else + if(priv->bHwRadioOff == false){ + priv->rtllib->eRFPowerState = eRfOn; + priv->rtllib->RfOffReason = 0; + if(priv->rtllib->LedControlHandler) + priv->rtllib->LedControlHandler(dev, LED_CTL_POWER_ON); + } +#endif + } + } + +#if 1 +#if (HAL_RF_ENABLE == 1) + RT_TRACE(COMP_INIT, "RF Config started!\n"); + +#if (RTL92SE_FPGA_VERIFY == 0) + write_nic_byte(dev, AFE_XTAL_CTRL+1, 0xDB); + if(priv->card_8192_version== VERSION_8192S_ACUT) + write_nic_byte(dev, SPS1_CTRL+3, 0x07); + else + write_nic_byte(dev, RF_CTRL, 0x07); +#endif + if(PHY_RFConfig8192S(dev) != true) + { + RT_TRACE(COMP_INIT, "RF Config failed\n"); + return rtStatus; + } + RT_TRACE(COMP_INIT, "RF Config Finished!\n"); +#endif + + priv->RfRegChnlVal[0] = rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)0, RF_CHNLBW, bRFRegOffsetMask); + priv->RfRegChnlVal[1] = rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)1, RF_CHNLBW, bRFRegOffsetMask); + + /*---- Set CCK and OFDM Block "ON"----*/ + rtl8192_setBBreg(dev, rFPGA0_RFMOD, bCCKEn, 0x1); + rtl8192_setBBreg(dev, rFPGA0_RFMOD, bOFDMEn, 0x1); + + HwConfigureRTL8192SE(dev); + + + + { + /* Get original hw reg values */ + PHY_GetHWRegOriginalValue(dev); + /* Write correct tx power index */ +#ifndef CONFIG_MP + rtl8192_phy_setTxPower(dev, priv->chan); +#endif + } +#endif + + + + { + int i; + for (i=0;i<6;i++) + write_nic_byte(dev, MACIDR0+i, dev->dev_addr[i]); + } + + tmpU1b = read_nic_byte(dev, MAC_PINMUX_CFG); + write_nic_byte(dev, MAC_PINMUX_CFG, tmpU1b&(~BIT3)); + + if(priv->CustomerID == RT_CID_CCX) + { + RT_TRACE(COMP_INIT ,"InitializeAdapter8192SE(): Set FW Cmd FW_TX_FEEDBACK_CCX_ENABLE\n"); + write_nic_dword(dev, WFM5, FW_TX_FEEDBACK_CCX_ENABLE); + ChkFwCmdIoDone(dev); + + write_nic_dword(dev, WFM5, FW_HIGH_PWR_DISABLE); + ChkFwCmdIoDone(dev); + write_nic_dword(dev, WFM5, FW_DIG_HALT); + ChkFwCmdIoDone(dev); + + write_nic_byte(dev, 0xC50, 0x1C); + write_nic_byte(dev, 0xC58, 0x1C); + } + + write_nic_byte(dev, 0x4d, 0x0); + + if(priv->pFirmware->FirmwareVersion >= 0x49){ + u8 tmp_byte = 0; + + tmp_byte = read_nic_byte(dev, FW_RSVD_PG_CRTL) & (~BIT4); + tmp_byte = tmp_byte | BIT5; + write_nic_byte(dev, FW_RSVD_PG_CRTL, tmp_byte); + + write_nic_dword(dev, TXDESC_MSK, 0xFFFFCFFF); + } + + if(priv->pFirmware->FirmwareVersion >= 0x35) + { + priv->rtllib->SetFwCmdHandler(dev, FW_CMD_RA_INIT); + } + else if(priv->pFirmware->FirmwareVersion >= 0x34) + { + write_nic_dword(dev, WFM5, FW_RA_INIT); + ChkFwCmdIoDone(dev); + } + else + { + write_nic_dword(dev, WFM5, FW_RA_RESET); + ChkFwCmdIoDone(dev); + write_nic_dword(dev, WFM5, FW_RA_ACTIVE); + ChkFwCmdIoDone(dev); + write_nic_dword(dev, WFM5, FW_RA_REFRESH); + ChkFwCmdIoDone(dev); + } + + + + PHY_SwitchEphyParameter(dev); + RF_RECOVERY(dev, 0x25, 0x29); + + if(priv->ResetProgress == RESET_TYPE_NORESET) + rtl8192_SetWirelessMode(dev, priv->rtllib->mode); + + CamResetAllEntry(dev); + { + u8 SECR_value = 0x0; + SECR_value |= SCR_TxEncEnable; + SECR_value |= SCR_RxDecEnable; + SECR_value |= SCR_NoSKMC; + write_nic_byte(dev, SECR, SECR_value); + } + + { + int i; + for (i=0; i<4; i++) + write_nic_dword(dev, WDCAPARA_ADD[i], 0x5e4322); + } + + priv->SilentResetRxSlotIndex = 0; + for( i=0; i < MAX_SILENT_RESET_RX_SLOT_NUM; i++ ) + { + priv->SilentResetRxStuckEvent[i] = 0; + } + + if(priv->BluetoothCoexist) + { + printk("Write reg 0x%x = 1 for Bluetooth Co-existance\n", SYSF_CFG); + write_nic_byte(dev, SYSF_CFG, 0x1); + } + + priv->bIgnoreSilentReset = true; + + + if(priv->rf_type ==RF_1T2R) + { +#ifdef MERGE_TODO + bool MrcToSet = true; + RT_TRACE(COMP_INIT, "InitializeAdapter8192SE(): Set MRC settings on as default!!\n"); + priv->rtllib->SetHwRegHandler(dev, HW_VAR_MRC, (u8*)&MrcToSet); +#endif + } + +#ifdef CONFIG_FW_PARSEBEACON + if (!(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){ + write_nic_dword(dev, RXFILTERMAP, 0x0100); + } +#endif + rtl8192_irq_enable(dev); +end: + + priv->rtllib->LPSDelayCnt = 10; + + priv->being_init_adapter = false; + return rtStatus; + + +} + +void rtl8192se_net_update(struct net_device *dev) +{ + + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_network *net = &priv->rtllib->current_network; + u16 rate_config = 0; + u32 regTmp = 0; + u8 rateIndex = 0; + u8 RetryLimit = 0x30; + u16 cap = net->capability; + + priv->short_preamble = cap & WLAN_CAPABILITY_SHORT_PREAMBLE; + + { + rtl8192_config_rate(dev, &rate_config); + if (priv->card_8192_version== VERSION_8192S_ACUT) + priv->basic_rate = rate_config = rate_config & 0x150; + else if (priv->card_8192_version == VERSION_8192S_BCUT) + priv->basic_rate= rate_config = rate_config & 0x15f; + + priv->dot11CurrentPreambleMode = PREAMBLE_AUTO; + +#if 1 + if(priv->rtllib->pHTInfo->IOTPeer == HT_IOT_PEER_CISCO && ((rate_config &0x150)==0)) + { + rate_config |=0x010; + } + if(priv->rtllib->pHTInfo->IOTPeer & HT_IOT_ACT_WA_IOT_Broadcom) + { + rate_config &= 0x1f0; + printk("HW_VAR_BASIC_RATE, HT_IOT_ACT_WA_IOT_Broadcom, BrateCfg = 0x%x\n", rate_config); + } + + write_nic_byte(dev, RRSR, rate_config&0xff); + write_nic_byte(dev, RRSR+1, (rate_config>>8)&0xff); + + while(rate_config > 0x1) + { + rate_config = (rate_config>> 1); + rateIndex++; + } + write_nic_byte(dev, INIRTSMCS_SEL, rateIndex); + + regTmp = (priv->nCur40MhzPrimeSC) << 5; + if (priv->short_preamble) + regTmp |= 0x80; + write_nic_byte(dev, RRSR+2, regTmp); +#endif + } + + write_nic_dword(dev,BSSIDR,((u32*)net->bssid)[0]); + write_nic_word(dev,BSSIDR+4,((u16*)net->bssid)[2]); + + if (priv->rtllib->iw_mode == IW_MODE_ADHOC){ + RetryLimit = HAL_RETRY_LIMIT_AP_ADHOC; + } else { + RetryLimit = (priv->CustomerID == RT_CID_CCX) ? 7 : HAL_RETRY_LIMIT_INFRA; + } + priv->rtllib->SetHwRegHandler(dev, HW_VAR_RETRY_LIMIT, (u8*)(&RetryLimit)); + + if (priv->rtllib->iw_mode == IW_MODE_ADHOC){ + priv->rtllib->SetHwRegHandler( dev, HW_VAR_BEACON_INTERVAL, (u8*)(&net->beacon_interval)); + } + + rtl8192_update_cap(dev, cap); +} + +#ifdef _RTL8192_EXT_PATCH_ +void rtl8192se_mesh_net_update(struct net_device *dev) +{ + + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_network *net = &priv->rtllib->current_mesh_network; + u16 rate_config = 0; + u32 regTmp = 0; + u8 rateIndex = 0; + u8 retrylimit = 0x7; + u16 cap = net->capability; + /* At the peer mesh mode, the peer MP shall recognize the short preamble */ + priv->short_preamble = 1; + + if (priv->card_8192_version== VERSION_8192S_ACUT) + priv->basic_rate = rate_config = 0x150; + else if (priv->card_8192_version == VERSION_8192S_BCUT) + priv->basic_rate= rate_config = 0x15f; + + write_nic_byte(dev, RRSR, rate_config&0xff); + write_nic_byte(dev, RRSR+1, (rate_config>>8)&0xff); + + while(rate_config > 0x1) + { + rate_config = (rate_config>> 1); + rateIndex++; + } + write_nic_byte(dev, INIRTSMCS_SEL, rateIndex); + + regTmp = (priv->nCur40MhzPrimeSC) << 5; + if (priv->short_preamble) + regTmp |= 0x80; + write_nic_byte(dev, RRSR+2, regTmp); + + + write_nic_word(dev, BCN_INTERVAL, net->beacon_interval); + PHY_SetBeaconHwReg( dev, net->beacon_interval); + rtl8192_update_cap(dev, cap); + + priv->ShortRetryLimit = + priv->LongRetryLimit = retrylimit; + + write_nic_word(dev,RETRY_LIMIT, \ + retrylimit << RETRY_LIMIT_SHORT_SHIFT | \ + retrylimit << RETRY_LIMIT_LONG_SHIFT); +} +#endif + +void rtl8192se_link_change(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + u32 reg = 0; + + if(IS_NIC_DOWN(priv)) + return; + + priv->rtllib->GetHwRegHandler(dev, HW_VAR_RCR, (u8*)(®)); + + printk("===>%s():ieee->iw_mode is %d\n",__FUNCTION__,ieee->iw_mode); + if (ieee->state == RTLLIB_LINKED) { +#ifdef CONFIG_FW_PARSEBEACON + if (!(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){ + write_nic_dword(dev, RXFILTERMAP, 0x0000); + } +#endif + if(priv->DM_Type == DM_Type_ByFW) + { + if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_HIGH_POWER) + ieee->SetFwCmdHandler(dev, FW_CMD_HIGH_PWR_DISABLE); + else + ieee->SetFwCmdHandler(dev, FW_CMD_HIGH_PWR_ENABLE); + } + + rtl8192se_net_update(dev); + + if(ieee->bUseRAMask) + { + ieee->UpdateHalRAMaskHandler( + dev, + false, + 0, + ieee->pHTInfo->PeerMimoPs, + ieee->mode, + ieee->pHTInfo->bCurTxBW40MHz, + 0); + priv->rssi_level = 0; + } + else + { + rtl8192se_update_ratr_table(dev,ieee->dot11HTOperationalRateSet,NULL); + } + + { + prate_adaptive pRA = (prate_adaptive)&priv->rate_adaptive; + pRA->PreRATRState = DM_RATR_STA_MAX; + } + + if(ieee->IntelPromiscuousModeInfo.bPromiscuousOn) + ; + else + reg |= RCR_CBSSID; + } +#ifdef _RTL8192_EXT_PATCH_ + else if ((ieee->mesh_state == RTLLIB_MESH_LINKED) && ieee->only_mesh) { + rtl8192se_mesh_net_update(dev); + if(ieee->bUseRAMask){ + ieee->UpdateHalRAMaskHandler( + dev, + false, + 0, + ieee->pHTInfo->PeerMimoPs, + ieee->mode, + ieee->pHTInfo->bCurTxBW40MHz, + 0); + priv->rssi_level = 0; + }else{ + rtl8192se_update_ratr_table(dev,ieee->dot11HTOperationalRateSet,NULL); + } +#ifdef CONFIG_FW_PARSEBEACON + if (!(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){ + write_nic_dword(dev, RXFILTERMAP, 0x0100); + } +#endif + reg &= ~RCR_CBSSID; + } +#endif + else{ +#ifdef CONFIG_FW_PARSEBEACON + if (!(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){ + write_nic_dword(dev, RXFILTERMAP, 0x0100); + } +#endif + reg &= ~RCR_CBSSID; + } + priv->rtllib->SetHwRegHandler( dev, HW_VAR_RCR, (u8*)(®) ); + + rtl8192se_update_msr(dev); + { + u32 temp = read_nic_dword(dev, TCR); + write_nic_dword(dev, TCR, temp&(~BIT8)); + write_nic_dword(dev, TCR, temp|BIT8); + } +} + +void rtl8192se_AllowAllDestAddr(struct net_device* dev, + bool bAllowAllDA, bool WriteIntoReg) +{ + struct r8192_priv* priv = rtllib_priv(dev); + + if( bAllowAllDA ) + { + priv->ReceiveConfig |= RCR_AAP; + } + else + { + priv->ReceiveConfig &= ~RCR_AAP; + } + + if( WriteIntoReg ) + { + write_nic_dword( dev, RCR, priv->ReceiveConfig ); + } +} + + +u8 MRateToHwRate8192SE(struct net_device*dev, u8 rate) +{ + u8 ret = DESC92S_RATE1M; + u16 max_sg_rate; + static u16 multibss_sg_old = 0x1234; + u16 multibss_sg; + + switch(rate) + { + case MGN_1M: ret = DESC92S_RATE1M; break; + case MGN_2M: ret = DESC92S_RATE2M; break; + case MGN_5_5M: ret = DESC92S_RATE5_5M; break; + case MGN_11M: ret = DESC92S_RATE11M; break; + case MGN_6M: ret = DESC92S_RATE6M; break; + case MGN_9M: ret = DESC92S_RATE9M; break; + case MGN_12M: ret = DESC92S_RATE12M; break; + case MGN_18M: ret = DESC92S_RATE18M; break; + case MGN_24M: ret = DESC92S_RATE24M; break; + case MGN_36M: ret = DESC92S_RATE36M; break; + case MGN_48M: ret = DESC92S_RATE48M; break; + case MGN_54M: ret = DESC92S_RATE54M; break; + + case MGN_MCS0: ret = DESC92S_RATEMCS0; break; + case MGN_MCS1: ret = DESC92S_RATEMCS1; break; + case MGN_MCS2: ret = DESC92S_RATEMCS2; break; + case MGN_MCS3: ret = DESC92S_RATEMCS3; break; + case MGN_MCS4: ret = DESC92S_RATEMCS4; break; + case MGN_MCS5: ret = DESC92S_RATEMCS5; break; + case MGN_MCS6: ret = DESC92S_RATEMCS6; break; + case MGN_MCS7: ret = DESC92S_RATEMCS7; break; + case MGN_MCS8: ret = DESC92S_RATEMCS8; break; + case MGN_MCS9: ret = DESC92S_RATEMCS9; break; + case MGN_MCS10: ret = DESC92S_RATEMCS10; break; + case MGN_MCS11: ret = DESC92S_RATEMCS11; break; + case MGN_MCS12: ret = DESC92S_RATEMCS12; break; + case MGN_MCS13: ret = DESC92S_RATEMCS13; break; + case MGN_MCS14: ret = DESC92S_RATEMCS14; break; + case MGN_MCS15: ret = DESC92S_RATEMCS15; break; + + case MGN_MCS0_SG: + case MGN_MCS1_SG: + case MGN_MCS2_SG: + case MGN_MCS3_SG: + case MGN_MCS4_SG: + case MGN_MCS5_SG: + case MGN_MCS6_SG: + case MGN_MCS7_SG: + case MGN_MCS8_SG: + case MGN_MCS9_SG: + case MGN_MCS10_SG: + case MGN_MCS11_SG: + case MGN_MCS12_SG: + case MGN_MCS13_SG: + case MGN_MCS14_SG: + case MGN_MCS15_SG: + ret = DESC92S_RATEMCS15_SG; + max_sg_rate = rate&0xf; + multibss_sg = max_sg_rate | (max_sg_rate<<4) | (max_sg_rate<<8) | (max_sg_rate<<12); + if (multibss_sg_old != multibss_sg) + { + write_nic_dword(dev, SG_RATE, multibss_sg); + multibss_sg_old = multibss_sg; + } + break; + + + case (0x80|0x20): ret = DESC92S_RATEMCS32; break; + + default: ret = DESC92S_RATEMCS15; break; + + } + + return ret; +} + +u8 rtl8192se_MapHwQueueToFirmwareQueue(u8 QueueID, u8 priority) +{ + u8 QueueSelect = 0x0; + + switch(QueueID) { +#if defined RTL8192E || defined RTL8190P + case BE_QUEUE: + QueueSelect = QSLT_BE; + break; + + case BK_QUEUE: + QueueSelect = QSLT_BK; + break; + + case VO_QUEUE: + QueueSelect = QSLT_VO; + break; + + case VI_QUEUE: + QueueSelect = QSLT_VI; + break; + case MGNT_QUEUE: + QueueSelect = QSLT_MGNT; + break; + case BEACON_QUEUE: + QueueSelect = QSLT_BEACON; + break; + case TXCMD_QUEUE: + QueueSelect = QSLT_CMD; + break; + case HIGH_QUEUE: + QueueSelect = QSLT_HIGH; + break; +#elif defined RTL8192SE + case BE_QUEUE: + QueueSelect = priority; + break; + case BK_QUEUE: + QueueSelect = priority; + break; + case VO_QUEUE: + QueueSelect = priority; + break; + case VI_QUEUE: + QueueSelect = priority; + break; + case MGNT_QUEUE: + QueueSelect = QSLT_BE; + break; + case BEACON_QUEUE: + QueueSelect = QSLT_BEACON; + break; + case TXCMD_QUEUE: + QueueSelect = QSLT_CMD; + break; + case HIGH_QUEUE: + QueueSelect = QSLT_HIGH; + break; +#endif + default: + RT_TRACE(COMP_ERR, "TransmitTCB(): Impossible Queue Selection: %d \n", QueueID); + break; + } + return QueueSelect; +} + + +void rtl8192se_tx_fill_desc(struct net_device* dev, tx_desc * pDesc, cb_desc * cb_desc, struct sk_buff* skb) +{ + u8 *pSeq; + u16 Temp; + struct r8192_priv* priv = rtllib_priv(dev); + + struct rtllib_hdr_1addr * header = NULL; + + dma_addr_t mapping = pci_map_single(priv->pdev, skb->data, skb->len, PCI_DMA_TODEVICE); + + u16 fc=0, stype=0; + header = (struct rtllib_hdr_1addr *)(((u8*)skb->data)); + fc = header->frame_ctl; + stype = WLAN_FC_GET_STYPE(fc); + memset((void*)pDesc, 0, 32); + + { + + if(priv->rtllib->bUseRAMask){ + if(cb_desc->macId < 32) + { + pDesc->MacID = cb_desc->macId; + pDesc->Rsvd_MacID = cb_desc->macId; + } + } + pDesc->TXHT = (cb_desc->data_rate&0x80)?1:0; + +#if (RTL92SE_FPGA_VERIFY == 0) + if (priv->card_8192_version== VERSION_8192S_ACUT) + { + if (cb_desc->data_rate== MGN_1M || cb_desc->data_rate == MGN_2M || + cb_desc->data_rate == MGN_5_5M || cb_desc->data_rate == MGN_11M) + { + cb_desc->data_rate = MGN_12M; + } + } +#endif + pDesc->TxRate = MRateToHwRate8192SE(dev,cb_desc->data_rate); + pDesc->TxShort = rtl8192se_QueryIsShort(((cb_desc->data_rate&0x80)?1:0), MRateToHwRate8192SE(dev,cb_desc->data_rate), cb_desc); + + if(cb_desc->bAMPDUEnable) + { + pDesc->AggEn = 1; + } + else + { + pDesc->AggEn = 0; + } + + { + pSeq = (u8 *)(skb->data+22); + Temp = pSeq[0]; + Temp <<= 12; + Temp |= (*(u16 *)pSeq)>>4; + pDesc->Seq = Temp; + } + + pDesc->RTSEn = (cb_desc->bRTSEnable && cb_desc->bCTSEnable==false)?1:0; + pDesc->CTS2Self = (cb_desc->bCTSEnable)?1:0; + pDesc->RTSSTBC = (cb_desc->bRTSSTBC)?1:0; + pDesc->RTSHT = (cb_desc->rts_rate&0x80)?1:0; + +#if (RTL92SE_FPGA_VERIFY == 0) + if (priv->card_8192_version== VERSION_8192S_ACUT) + { + if (cb_desc->rts_rate == MGN_1M || cb_desc->rts_rate == MGN_2M || + cb_desc->rts_rate == MGN_5_5M || cb_desc->rts_rate == MGN_11M) + { + cb_desc->rts_rate = MGN_12M; + } + } +#endif + pDesc->RTSRate = MRateToHwRate8192SE(dev,cb_desc->rts_rate); + pDesc->RTSRate = MRateToHwRate8192SE(dev,MGN_24M); + pDesc->RTSBW = 0; + pDesc->RTSSC = cb_desc->RTSSC; + pDesc->RTSShort = (pDesc->RTSHT==0)?(cb_desc->bRTSUseShortPreamble?1:0):(cb_desc->bRTSUseShortGI?1:0); + if(priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) + { + if(cb_desc->bPacketBW) + { + pDesc->TxBw = 1; + pDesc->TXSC = 0; + } + else + { + pDesc->TxBw = 0; + pDesc->TXSC = priv->nCur40MhzPrimeSC; + } + } + else + { + pDesc->TxBw = 0; + pDesc->TXSC = 0; + } + + pDesc->LINIP = 0; + pDesc->Offset = 32; + pDesc->PktSize = (u16)skb->len; + + pDesc->RaBRSRID = cb_desc->RATRIndex; +#if 0 +printk("*************TXDESC:\n"); +printk("\tTxRate: %d\n", pDesc->TxRate); +printk("\tAMPDUEn: %d\n", pDesc->AggEn); +printk("\tTxBw: %d\n", pDesc->TxBw); +printk("\tTXSC: %d\n", pDesc->TXSC); +printk("\tPktSize: %d\n", pDesc->PktSize); +printk("\tRatrIdx: %d\n", pDesc->RaBRSRID); +#endif + if (cb_desc->bHwSec) { + static u8 tmp =0; + if (!tmp) { + tmp = 1; + } +#ifdef _RTL8192_EXT_PATCH_ + if(cb_desc->mesh_pkt == 0) +#endif + { + switch (priv->rtllib->pairwise_key_type) { + case KEY_TYPE_WEP40: + case KEY_TYPE_WEP104: + pDesc->SecType = 0x1; + break; + case KEY_TYPE_TKIP: + pDesc->SecType = 0x2; + break; + case KEY_TYPE_CCMP: + pDesc->SecType = 0x3; + break; + case KEY_TYPE_NA: + pDesc->SecType = 0x0; + break; + } + } +#ifdef _RTL8192_EXT_PATCH_ + else if(cb_desc->mesh_pkt == 1) + { + switch (priv->rtllib->mesh_pairwise_key_type) { + case KEY_TYPE_WEP40: + case KEY_TYPE_WEP104: + pDesc->SecType = 0x1; + break; + case KEY_TYPE_TKIP: + pDesc->SecType = 0x2; + break; + case KEY_TYPE_CCMP: + pDesc->SecType = 0x3; + break; + case KEY_TYPE_NA: + pDesc->SecType = 0x0; + break; + } + } +#endif + } + + pDesc->PktID = 0x0; + pDesc->QueueSel = rtl8192se_MapHwQueueToFirmwareQueue(cb_desc->queue_index, cb_desc->priority); + + pDesc->DataRateFBLmt = 0x1F; + pDesc->DISFB = cb_desc->bTxDisableRateFallBack; + pDesc->UserRate = cb_desc->bTxUseDriverAssingedRate; + + if (pDesc->UserRate == true && pDesc->TXHT == true) + RF_ChangeTxPath(dev, cb_desc->data_rate); + + } + + + pDesc->FirstSeg = 1; + pDesc->LastSeg = 1; + + pDesc->TxBufferSize= (u16)skb->len; + + pDesc->TxBuffAddr = cpu_to_le32(mapping); + +} + +void rtl8192se_tx_fill_cmd_desc(struct net_device* dev, tx_desc_cmd * entry, cb_desc * cb_desc, struct sk_buff* skb) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if(cb_desc->bCmdOrInit == DESC_PACKET_TYPE_INIT) { + + dma_addr_t mapping = pci_map_single(priv->pdev, skb->data, skb->len, PCI_DMA_TODEVICE); + + memset((void*)entry, 0, 32); + + entry->LINIP = cb_desc->bLastIniPkt; + + entry->FirstSeg = 1; + entry->LastSeg = 1; + + entry->TxBufferSize= (u16)(skb->len); + entry->TxBufferAddr = cpu_to_le32(mapping); + entry->PktSize = (u16)(skb->len); + + { + entry->OWN = 1; + } + } else { + + u8* pDesc = (u8*)entry; + + dma_addr_t mapping = pci_map_single(priv->pdev, skb->data, skb->len, PCI_DMA_TODEVICE); + + CLEAR_PCI_TX_DESC_CONTENT(pDesc, sizeof(tx_desc_cmd)); + + SET_TX_DESC_FIRST_SEG(pDesc, 1); + SET_TX_DESC_LAST_SEG(pDesc, 1); + + SET_TX_DESC_OFFSET(pDesc, 0x20); + + SET_TX_DESC_PKT_SIZE(pDesc, (u16)(skb->len)); + SET_TX_DESC_QUEUE_SEL(pDesc, 0x13); + + + SET_BITS_TO_LE_4BYTE(skb->data, 24, 7, priv->H2CTxCmdSeq); + + SET_TX_DESC_TX_BUFFER_SIZE(pDesc, (u16)(skb->len)); + SET_TX_DESC_TX_BUFFER_ADDRESS(pDesc, cpu_to_le32(mapping)); + + SET_TX_DESC_OWN(pDesc, 1); + + RT_TRACE(COMP_CMD, "TxFillCmdDesc8192SE(): H2C Tx Cmd Content ----->\n"); + } +} + +u8 HwRateToMRate92S(bool bIsHT, u8 rate) +{ + u8 ret_rate = 0x02; + + if (!bIsHT) { + switch (rate) { + case DESC92S_RATE1M: + ret_rate = MGN_1M; + break; + case DESC92S_RATE2M: + ret_rate = MGN_2M; + break; + case DESC92S_RATE5_5M: + ret_rate = MGN_5_5M; + break; + case DESC92S_RATE11M: + ret_rate = MGN_11M; + break; + case DESC92S_RATE6M: + ret_rate = MGN_6M; + break; + case DESC92S_RATE9M: + ret_rate = MGN_9M; + break; + case DESC92S_RATE12M: + ret_rate = MGN_12M; + break; + case DESC92S_RATE18M: + ret_rate = MGN_18M; + break; + case DESC92S_RATE24M: + ret_rate = MGN_24M; + break; + case DESC92S_RATE36M: + ret_rate = MGN_36M; + break; + case DESC92S_RATE48M: + ret_rate = MGN_48M; + break; + case DESC92S_RATE54M: + ret_rate = MGN_54M; + break; + default: + ret_rate = 0xff; + break; + } + } else { + switch (rate) { + case DESC92S_RATEMCS0: + ret_rate = MGN_MCS0; + break; + case DESC92S_RATEMCS1: + ret_rate = MGN_MCS1; + break; + case DESC92S_RATEMCS2: + ret_rate = MGN_MCS2; + break; + case DESC92S_RATEMCS3: + ret_rate = MGN_MCS3; + break; + case DESC92S_RATEMCS4: + ret_rate = MGN_MCS4; + break; + case DESC92S_RATEMCS5: + ret_rate = MGN_MCS5; + break; + case DESC92S_RATEMCS6: + ret_rate = MGN_MCS6; + break; + case DESC92S_RATEMCS7: + ret_rate = MGN_MCS7; + break; + case DESC92S_RATEMCS8: + ret_rate = MGN_MCS8; + break; + case DESC92S_RATEMCS9: + ret_rate = MGN_MCS9; + break; + case DESC92S_RATEMCS10: + ret_rate = MGN_MCS10; + break; + case DESC92S_RATEMCS11: + ret_rate = MGN_MCS11; + break; + case DESC92S_RATEMCS12: + ret_rate = MGN_MCS12; + break; + case DESC92S_RATEMCS13: + ret_rate = MGN_MCS13; + break; + case DESC92S_RATEMCS14: + ret_rate = MGN_MCS14; + break; + case DESC92S_RATEMCS15: + ret_rate = MGN_MCS15; + break; + case DESC92S_RATEMCS32: + ret_rate = (0x80|0x20); + break; + default: + ret_rate = 0xff; + break; + } + + } + return ret_rate; +} + +long +rtl8192se_signal_scale_mapping(struct r8192_priv * priv, + long currsig + ) +{ + long retsig = 0; + + if(currsig> 47) + retsig = 100; + else if(currsig >14 && currsig <=47) + retsig = 100 - ((47-currsig)*3)/2; + else if(currsig >2 && currsig <=14) + retsig = 48-((14-currsig)*15)/7; + else if(currsig >=0) + retsig = currsig * 9+1; + + return retsig; +} + + +#define rx_hal_is_cck_rate(_pdesc)\ + (_pdesc->RxMCS == DESC92S_RATE1M ||\ + _pdesc->RxMCS == DESC92S_RATE2M ||\ + _pdesc->RxMCS == DESC92S_RATE5_5M ||\ + _pdesc->RxMCS == DESC92S_RATE11M) +#ifdef _RTL8192_EXT_PATCH_ +void rtl8192se_query_rxphystatus( + struct r8192_priv * priv, + struct rtllib_rx_stats * pstats, + prx_desc pdesc, + prx_fwinfo pDrvInfo, + bool bpacket_match_bssid, + bool bpacket_toself, + bool bPacketBeacon + ) +{ + bool is_cck_rate; + phy_sts_cck_8192s_t* cck_buf; + u8 rx_pwr_all=0, rx_pwr[4], rf_rx_num=0, EVM, PWDB_ALL; + u8 i, max_spatial_stream; + u32 rssi, total_rssi = 0; + u8 cck_highpwr = 0; + is_cck_rate = rx_hal_is_cck_rate(pdesc); + + pstats->bPacketMatchBSSID = bpacket_match_bssid; + pstats->bPacketToSelf = bpacket_toself; + pstats->bIsCCK = is_cck_rate; + pstats->bPacketBeacon = bPacketBeacon; + + pstats->RxMIMOSignalQuality[0] = -1; + pstats->RxMIMOSignalQuality[1] = -1; + + if (is_cck_rate){ + u8 report; + + cck_buf = (phy_sts_cck_8192s_t*)pDrvInfo; + + if(priv->rtllib->eRFPowerState == eRfOn) + cck_highpwr = (u8)priv->bCckHighPower; + else + cck_highpwr = false; + if (!cck_highpwr){ + report = cck_buf->cck_agc_rpt & 0xc0; + report = report >> 6; + switch(report){ + case 0x3: + rx_pwr_all = -40 - (cck_buf->cck_agc_rpt&0x3e); + break; + case 0x2: + rx_pwr_all = -20 - (cck_buf->cck_agc_rpt&0x3e); + break; + case 0x1: + rx_pwr_all = -2 - (cck_buf->cck_agc_rpt&0x3e); + break; + case 0x0: + rx_pwr_all = 14 - (cck_buf->cck_agc_rpt&0x3e); + break; + } + } + else{ + report = pDrvInfo->cfosho[0] & 0x60; + report = report >> 5; + switch(report){ + case 0x3: + rx_pwr_all = -40 - ((cck_buf->cck_agc_rpt & 0x1f)<<1); + break; + case 0x2: + rx_pwr_all = -20 - ((cck_buf->cck_agc_rpt & 0x1f)<<1); + break; + case 0x1: + rx_pwr_all = -2 - ((cck_buf->cck_agc_rpt & 0x1f)<<1); + break; + case 0x0: + rx_pwr_all = 14 - ((cck_buf->cck_agc_rpt & 0x1f)<<1); + break; + } + } + + PWDB_ALL= rtl819x_query_rxpwrpercentage(rx_pwr_all); + { + PWDB_ALL+=6; + if(PWDB_ALL > 100) + PWDB_ALL = 100; + if(PWDB_ALL > 34 && PWDB_ALL <= 42) + PWDB_ALL -= 2; + else if(PWDB_ALL > 26 && PWDB_ALL <= 34) + PWDB_ALL -= 6; + else if(PWDB_ALL > 14 && PWDB_ALL <= 26) + PWDB_ALL -= 8; + else if(PWDB_ALL > 4 && PWDB_ALL <= 14) + PWDB_ALL -= 4; + } + pstats->RxPWDBAll = PWDB_ALL; + pstats->RecvSignalPower = rx_pwr_all; + + if (bpacket_match_bssid){ + u8 sq; + if(priv->CustomerID == RT_CID_819x_Lenovo) + { + if(PWDB_ALL >= 50) + sq = 100; + else if(PWDB_ALL >= 35 && PWDB_ALL < 50) + sq = 80; + else if(PWDB_ALL >= 22 && PWDB_ALL < 35) + sq = 60; + else if(PWDB_ALL >= 18 && PWDB_ALL < 22) + sq = 40; + else + sq = 20; + } + else + { + if (pstats->RxPWDBAll > 40) + sq = 100; + else{ + sq = cck_buf->sq_rpt; + if (sq > 64) + sq = 0; + else if(sq < 20) + sq = 100; + else + sq = ((64-sq)*100)/44; + } + } + pstats->SignalQuality = sq; + pstats->RxMIMOSignalQuality[0] = sq; + pstats->RxMIMOSignalQuality[1] = -1; + } + } + else{ + priv->brfpath_rxenable[0] = priv->brfpath_rxenable[1] = true; + + for (i=RF90_PATH_A; ibrfpath_rxenable[i]) + rf_rx_num ++; + + rx_pwr[i] = ((pDrvInfo->gain_trsw[i]&0x3f)*2) - 110; + rssi = rtl819x_query_rxpwrpercentage(rx_pwr[i]); + total_rssi += rssi; + + priv->stats.rxSNRdB[i] = (long)(pDrvInfo->rxsnr[i]/2); + + if (bpacket_match_bssid){ + pstats->RxMIMOSignalStrength[i] = (u8)rssi; + if(priv->CustomerID == RT_CID_819x_Lenovo) + { + u8 SQ; + + if(i == 0) + { + if(rssi >= 50) + SQ = 100; + else if(rssi >= 35 && rssi < 50) + SQ = 80; + else if(rssi >= 22 && rssi < 35) + SQ = 60; + else if(rssi >= 18 && rssi < 22) + SQ = 40; + else + SQ = 20; + pstats->SignalQuality = SQ; + } + } + } + } + rx_pwr_all = ((pDrvInfo->pwdb_all >> 1) & 0x7f) - 106; + PWDB_ALL = rtl819x_query_rxpwrpercentage(rx_pwr_all); + + pstats->RxPWDBAll = PWDB_ALL; + pstats->RxPower = rx_pwr_all; + pstats->RecvSignalPower = rx_pwr_all; + + if(priv->CustomerID != RT_CID_819x_Lenovo){ + if (pdesc->RxHT && pdesc->RxMCS >= DESC92S_RATEMCS8 && pdesc->RxMCS <= DESC92S_RATEMCS15) + max_spatial_stream = 2; + else + max_spatial_stream = 1; + + for(i=0; irxevm[i]); + + if (bpacket_match_bssid) + { + if (i==0) + pstats->SignalQuality = (u8)(EVM & 0xff); + pstats->RxMIMOSignalQuality[i] = (u8)(EVM&0xff); + } + } + } +#if 1 + if (pdesc->BandWidth) + priv->stats.received_bwtype[1+pDrvInfo->rxsc]++; + else + priv->stats.received_bwtype[0]++; +#endif + } + + if (is_cck_rate){ + pstats->SignalStrength = (u8)(rtl8192se_signal_scale_mapping(priv,PWDB_ALL)); + } + else { + if (rf_rx_num != 0) + pstats->SignalStrength = (u8)(rtl8192se_signal_scale_mapping(priv,total_rssi/=rf_rx_num)); + } +} +#else +void rtl8192se_query_rxphystatus( + struct r8192_priv * priv, + struct rtllib_rx_stats * pstats, + prx_desc pdesc, + prx_fwinfo pDrvInfo, + struct rtllib_rx_stats * precord_stats, + bool bpacket_match_bssid, + bool bpacket_toself, + bool bPacketBeacon, + bool bToSelfBA + ) +{ + bool is_cck_rate; + phy_sts_cck_8192s_t* cck_buf; + s8 rx_pwr_all=0, rx_pwr[4]; + u8 rf_rx_num=0, EVM, PWDB_ALL; + u8 i, max_spatial_stream; + u32 rssi, total_rssi = 0; + + is_cck_rate = rx_hal_is_cck_rate(pdesc); + + memset(precord_stats, 0, sizeof(struct rtllib_rx_stats)); + pstats->bPacketMatchBSSID = precord_stats->bPacketMatchBSSID = bpacket_match_bssid; + pstats->bPacketToSelf = precord_stats->bPacketToSelf = bpacket_toself; + pstats->bIsCCK = precord_stats->bIsCCK = is_cck_rate; + pstats->bPacketBeacon = precord_stats->bPacketBeacon = bPacketBeacon; + pstats->bToSelfBA = precord_stats->bToSelfBA = bToSelfBA; + pstats->bIsCCK = precord_stats->bIsCCK = is_cck_rate; + + pstats->RxMIMOSignalQuality[0] = -1; + pstats->RxMIMOSignalQuality[1] = -1; + precord_stats->RxMIMOSignalQuality[0] = -1; + precord_stats->RxMIMOSignalQuality[1] = -1; + + if (is_cck_rate){ + u8 report, cck_highpwr; + + cck_buf = (phy_sts_cck_8192s_t*)pDrvInfo; + + if(!priv->bInPowerSaveMode) + cck_highpwr = (u8)rtl8192_QueryBBReg(priv->rtllib->dev, rFPGA0_XA_HSSIParameter2, BIT9); + else + cck_highpwr = false; + if (!cck_highpwr){ + report = cck_buf->cck_agc_rpt & 0xc0; + report = report >> 6; + switch(report){ + case 0x3: + rx_pwr_all = -35 - (cck_buf->cck_agc_rpt&0x3e); + break; + case 0x2: + rx_pwr_all = -23 - (cck_buf->cck_agc_rpt&0x3e); + break; + case 0x1: + rx_pwr_all = -11 - (cck_buf->cck_agc_rpt&0x3e); + break; + case 0x0: + rx_pwr_all = 8 - (cck_buf->cck_agc_rpt&0x3e); + break; + } + } + else{ + report = pDrvInfo->cfosho[0] & 0x60; + report = report >> 5; + switch(report){ + case 0x3: + rx_pwr_all = -35 - ((cck_buf->cck_agc_rpt & 0x1f)<<1); + break; + case 0x2: + rx_pwr_all = -23 - ((cck_buf->cck_agc_rpt & 0x1f)<<1); + break; + case 0x1: + rx_pwr_all = -11 - ((cck_buf->cck_agc_rpt & 0x1f)<<1); + break; + case 0x0: + rx_pwr_all = -8 - ((cck_buf->cck_agc_rpt & 0x1f)<<1); + break; + } + } + + PWDB_ALL= rtl819x_query_rxpwrpercentage(rx_pwr_all); + pstats->RxPWDBAll = precord_stats->RxPWDBAll = PWDB_ALL; + pstats->RecvSignalPower = rx_pwr_all; + + if (bpacket_match_bssid){ + u8 sq; + if (pstats->RxPWDBAll > 40) + sq = 100; + else{ + sq = cck_buf->sq_rpt; + if (sq > 64) + sq = 0; + else if(sq < 20) + sq = 100; + else + sq = ((64-sq)*100)/44; + } + pstats->SignalQuality = precord_stats->SignalQuality = sq; + pstats->RxMIMOSignalQuality[0] = precord_stats->RxMIMOSignalQuality[0] = sq; + pstats->RxMIMOSignalQuality[1] = precord_stats->RxMIMOSignalQuality[1] = -1; + } + } + else{ + priv->brfpath_rxenable[0] = priv->brfpath_rxenable[1] = true; + + for (i=RF90_PATH_A; ibrfpath_rxenable[i]) + rf_rx_num ++; + + rx_pwr[i] = ((pDrvInfo->gain_trsw[i]&0x3f)*2) - 110; + rssi = rtl819x_query_rxpwrpercentage(rx_pwr[i]); + total_rssi += rssi; + + priv->stats.rxSNRdB[i] = (long)(pDrvInfo->rxsnr[i]/2); + + if (bpacket_match_bssid){ + pstats->RxMIMOSignalStrength[i] = (u8)rssi; + precord_stats->RxMIMOSignalStrength [i] = (u8)rssi; + } + } + + rx_pwr_all = ((pDrvInfo->pwdb_all >> 1) & 0x7f) - 0x106; + PWDB_ALL = rtl819x_query_rxpwrpercentage(rx_pwr_all); + + pstats->RxPWDBAll = precord_stats->RxPWDBAll = PWDB_ALL; + pstats->RxPower = precord_stats->RxPower = rx_pwr_all; + pstats->RecvSignalPower = precord_stats->RecvSignalPower = rx_pwr_all; + + if (pdesc->RxHT && pdesc->RxMCS >= DESC92S_RATEMCS8 && pdesc->RxMCS <= DESC92S_RATEMCS15) + max_spatial_stream = 2; + else + max_spatial_stream = 1; + + for(i=0; irxevm[i]); + + if (bpacket_match_bssid) + { + if (i==0) + pstats->SignalQuality = + precord_stats->SignalQuality = (u8)(EVM&0xff); + pstats->RxMIMOSignalQuality[i] = + precord_stats->RxMIMOSignalQuality[i] = (u8)(EVM&0xff); + } + } +#if 0 + if (pdesc->BW) + priv->stats.received_bwtype[1+pDrvInfo->rxsc]++; + else + priv->stats.received_bwtype[0]++; +#endif + } + + if (is_cck_rate) + pstats->SignalStrength = + precord_stats->SignalStrength = (u8)(rtl8192se_signal_scale_mapping(priv,PWDB_ALL)); + else + if (rf_rx_num != 0) + pstats->SignalStrength = + precord_stats->SignalStrength = (u8)(rtl8192se_signal_scale_mapping(priv,total_rssi/=rf_rx_num)); + +} +#endif + +#ifdef _RTL8192_EXT_PATCH_ +void rtl819x_update_rxsignalstatistics8192S( + struct r8192_priv * priv, + struct rtllib_rx_stats * pstats + ) +{ + int weighting = 0; + + + if(priv->stats.recv_signal_power == 0) + priv->stats.recv_signal_power = pstats->RecvSignalPower; + + if(pstats->RecvSignalPower > priv->stats.recv_signal_power) + weighting = 5; + else if(pstats->RecvSignalPower < priv->stats.recv_signal_power) + weighting = (-5); + priv->stats.recv_signal_power = (priv->stats.recv_signal_power * 5 + pstats->RecvSignalPower + weighting) / 6; + +} + +void Process_UI_RSSI_8192S(struct r8192_priv * priv,struct rtllib_rx_stats * pstats) +{ + u8 rfPath; + u32 last_rssi, tmpVal; + + if(pstats->bPacketToSelf || pstats->bPacketBeacon) + { + priv->stats.RssiCalculateCnt++; + if(priv->stats.ui_rssi.TotalNum++ >= PHY_RSSI_SLID_WIN_MAX) + { + priv->stats.ui_rssi.TotalNum = PHY_RSSI_SLID_WIN_MAX; + last_rssi = priv->stats.ui_rssi.elements[priv->stats.ui_rssi.index]; + priv->stats.ui_rssi.TotalVal -= last_rssi; + } + priv->stats.ui_rssi.TotalVal += pstats->SignalStrength; + + priv->stats.ui_rssi.elements[priv->stats.ui_rssi.index++] = pstats->SignalStrength; + if(priv->stats.ui_rssi.index >= PHY_RSSI_SLID_WIN_MAX) + priv->stats.ui_rssi.index = 0; + + tmpVal = priv->stats.ui_rssi.TotalVal/priv->stats.ui_rssi.TotalNum; + priv->stats.signal_strength = rtl819x_translate_todbm(priv, (u8)tmpVal); + + } + + if(!pstats->bIsCCK && pstats->bPacketToSelf) + { + for (rfPath = RF90_PATH_A; rfPath < priv->NumTotalRFPath; rfPath++) + { + if (!rtl8192_phy_CheckIsLegalRFPath(priv->rtllib->dev, rfPath)) + continue; + RT_TRACE(COMP_DBG, "pstats->RxMIMOSignalStrength[%d] = %d \n", rfPath, pstats->RxMIMOSignalStrength[rfPath] ); + + if(priv->stats.rx_rssi_percentage[rfPath] == 0) + { + priv->stats.rx_rssi_percentage[rfPath] = pstats->RxMIMOSignalStrength[rfPath]; + } + + if(pstats->RxMIMOSignalStrength[rfPath] > priv->stats.rx_rssi_percentage[rfPath]) + { + priv->stats.rx_rssi_percentage[rfPath] = + ( (priv->stats.rx_rssi_percentage[rfPath]*(Rx_Smooth_Factor-1)) + + (pstats->RxMIMOSignalStrength[rfPath])) /(Rx_Smooth_Factor); + priv->stats.rx_rssi_percentage[rfPath] = priv->stats.rx_rssi_percentage[rfPath] + 1; + } + else + { + priv->stats.rx_rssi_percentage[rfPath] = + ( (priv->stats.rx_rssi_percentage[rfPath]*(Rx_Smooth_Factor-1)) + + (pstats->RxMIMOSignalStrength[rfPath])) /(Rx_Smooth_Factor); + } + RT_TRACE(COMP_DBG, "priv->stats.rx_rssi_percentage[%d] = %d \n",rfPath, priv->stats.rx_rssi_percentage[rfPath] ); + } + } + +} + +void Process_PWDB_8192S(struct r8192_priv * priv,struct rtllib_rx_stats * pstats,struct rtllib_network* pnet, struct sta_info *pEntry) +{ + long UndecoratedSmoothedPWDB=0; + + if(priv->rtllib->iw_mode == IW_MODE_MESH){ + if(pnet){ + if(priv->mshobj->ext_patch_get_peermp_rssi_param) + UndecoratedSmoothedPWDB = priv->mshobj->ext_patch_get_peermp_rssi_param(pnet); + }else + UndecoratedSmoothedPWDB = priv->undecorated_smoothed_pwdb; + } + else if(priv->rtllib->iw_mode == IW_MODE_ADHOC){ + if(pEntry){ + UndecoratedSmoothedPWDB = pEntry->rssi_stat.UndecoratedSmoothedPWDB; + } + }else + UndecoratedSmoothedPWDB = priv->undecorated_smoothed_pwdb; + + if(pstats->bPacketToSelf || pstats->bPacketBeacon){ + if(UndecoratedSmoothedPWDB < 0){ + UndecoratedSmoothedPWDB = pstats->RxPWDBAll; + } + + if(pstats->RxPWDBAll > (u32)UndecoratedSmoothedPWDB){ + UndecoratedSmoothedPWDB = + ( ((UndecoratedSmoothedPWDB)*(Rx_Smooth_Factor-1)) + + (pstats->RxPWDBAll)) /(Rx_Smooth_Factor); + UndecoratedSmoothedPWDB = UndecoratedSmoothedPWDB + 1; + }else{ + UndecoratedSmoothedPWDB = + ( ((UndecoratedSmoothedPWDB)*(Rx_Smooth_Factor-1)) + + (pstats->RxPWDBAll)) /(Rx_Smooth_Factor); + } + if(priv->rtllib->iw_mode == IW_MODE_MESH){ + if(pnet){ + if(priv->mshobj->ext_patch_set_peermp_rssi_param) + priv->mshobj->ext_patch_set_peermp_rssi_param(pnet,UndecoratedSmoothedPWDB); + }else + priv->undecorated_smoothed_pwdb = UndecoratedSmoothedPWDB; + }else if(priv->rtllib->iw_mode == IW_MODE_ADHOC){ + if(pEntry){ + pEntry->rssi_stat.UndecoratedSmoothedPWDB = UndecoratedSmoothedPWDB; + } + }else{ + priv->undecorated_smoothed_pwdb = UndecoratedSmoothedPWDB; + } + rtl819x_update_rxsignalstatistics8192S(priv, pstats); + } +} + +void Process_UiLinkQuality8192S(struct r8192_priv * priv,struct rtllib_rx_stats * pstats) +{ + u32 last_evm=0, nSpatialStream, tmpVal; + + if(pstats->SignalQuality != 0) + { + if (pstats->bPacketToSelf || pstats->bPacketBeacon) + { + if(priv->stats.ui_link_quality.TotalNum++ >= PHY_LINKQUALITY_SLID_WIN_MAX) + { + priv->stats.ui_link_quality.TotalNum = PHY_LINKQUALITY_SLID_WIN_MAX; + last_evm = priv->stats.ui_link_quality.elements[priv->stats.ui_link_quality.index]; + priv->stats.ui_link_quality.TotalVal -= last_evm; + } + priv->stats.ui_link_quality.TotalVal += pstats->SignalQuality; + + priv->stats.ui_link_quality.elements[priv->stats.ui_link_quality.index++] = pstats->SignalQuality; + if(priv->stats.ui_link_quality.index >= PHY_LINKQUALITY_SLID_WIN_MAX) + priv->stats.ui_link_quality.index = 0; + + + tmpVal = priv->stats.ui_link_quality.TotalVal/priv->stats.ui_link_quality.TotalNum; + priv->stats.signal_quality = tmpVal; + priv->stats.last_signal_strength_inpercent = tmpVal; + + for(nSpatialStream = 0; nSpatialStream<2 ; nSpatialStream++) + { + if(pstats->RxMIMOSignalQuality[nSpatialStream] != -1) + { + if(priv->stats.rx_evm_percentage[nSpatialStream] == 0) + { + priv->stats.rx_evm_percentage[nSpatialStream] = pstats->RxMIMOSignalQuality[nSpatialStream]; + } + priv->stats.rx_evm_percentage[nSpatialStream] = + ( (priv->stats.rx_evm_percentage[nSpatialStream]*(Rx_Smooth_Factor-1)) + + (pstats->RxMIMOSignalQuality[nSpatialStream]* 1)) /(Rx_Smooth_Factor); + } + } + } + } + else + ; + +} +#endif + + +#ifdef _RTL8192_EXT_PATCH_ +void rtl8192se_process_phyinfo(struct r8192_priv * priv, u8* buffer,struct rtllib_rx_stats * pcurrent_stats,struct rtllib_network * pnet, struct sta_info *pEntry) +#else +void rtl8192se_process_phyinfo(struct r8192_priv * priv, u8* buffer,struct rtllib_rx_stats * pprevious_stats, struct rtllib_rx_stats * pcurrent_stats) +#endif +{ +#ifdef _RTL8192_EXT_PATCH_ + if(!pcurrent_stats->bPacketMatchBSSID) + return; + Process_UI_RSSI_8192S(priv, pcurrent_stats); + Process_PWDB_8192S(priv, pcurrent_stats, pnet, pEntry); + Process_UiLinkQuality8192S(priv, pcurrent_stats); +#else + bool bcheck = false; + u8 rfpath; + u32 nspatial_stream, tmp_val; + static u32 slide_rssi_index=0, slide_rssi_statistics=0; + static u32 slide_evm_index=0, slide_evm_statistics=0; + static u32 last_rssi=0, last_evm=0; + static u32 slide_beacon_adc_pwdb_index=0, slide_beacon_adc_pwdb_statistics=0; + static u32 last_beacon_adc_pwdb=0; + + struct rtllib_hdr_3addr *hdr; + u16 sc ; + unsigned int frag,seq; + hdr = (struct rtllib_hdr_3addr *)buffer; + sc = le16_to_cpu(hdr->seq_ctl); + frag = WLAN_GET_SEQ_FRAG(sc); + seq = WLAN_GET_SEQ_SEQ(sc); + pcurrent_stats->Seq_Num = seq; + if(!pprevious_stats->bIsAMPDU) + { + bcheck = true; + }else { +#if 0 + if( !pcurrent_stats->bIsAMPDU || pcurrent_stats->bFirstMPDU) + bcheck = true; +#endif + } + + if(slide_rssi_statistics++ >= PHY_RSSI_SLID_WIN_MAX) + { + slide_rssi_statistics = PHY_RSSI_SLID_WIN_MAX; + last_rssi = priv->stats.slide_signal_strength[slide_rssi_index]; + priv->stats.slide_rssi_total -= last_rssi; + } + priv->stats.slide_rssi_total += pprevious_stats->SignalStrength; + + priv->stats.slide_signal_strength[slide_rssi_index++] = pprevious_stats->SignalStrength; + if(slide_rssi_index >= PHY_RSSI_SLID_WIN_MAX) + slide_rssi_index = 0; + + tmp_val = priv->stats.slide_rssi_total/slide_rssi_statistics; + priv->stats.signal_strength = rtl819x_translate_todbm(priv, (u8)tmp_val); + pcurrent_stats->rssi = priv->stats.signal_strength; + if(!pprevious_stats->bPacketMatchBSSID) + { + if(!pprevious_stats->bToSelfBA) + return; + } + + if(!bcheck) + return; + + rtl819x_process_cck_rxpathsel(priv,pprevious_stats); + + priv->stats.num_process_phyinfo++; +#if 0 + if(slide_rssi_statistics++ >= PHY_RSSI_SLID_WIN_MAX) + { + slide_rssi_statistics = PHY_RSSI_SLID_WIN_MAX; + last_rssi = priv->stats.slide_signal_strength[slide_rssi_index]; + priv->stats.slide_rssi_total -= last_rssi; + } + priv->stats.slide_rssi_total += pprevious_stats->SignalStrength; + + priv->stats.slide_signal_strength[slide_rssi_index++] = pprevious_stats->SignalStrength; + if(slide_rssi_index >= PHY_RSSI_SLID_WIN_MAX) + slide_rssi_index = 0; + + tmp_val = priv->stats.slide_rssi_total/slide_rssi_statistics; + priv->stats.signal_strength = rtl819x_translate_todbm(priv, (u8)tmp_val); + +#endif + if(!pprevious_stats->bIsCCK && pprevious_stats->bPacketToSelf) + { + for (rfpath = RF90_PATH_A; rfpath < RF90_PATH_C; rfpath++) + { + if (!rtl8192_phy_CheckIsLegalRFPath(priv->rtllib->dev, rfpath)) + continue; + RT_TRACE(COMP_DBG,"Jacken -> pPreviousstats->RxMIMOSignalStrength[rfpath] = %d \n" ,pprevious_stats->RxMIMOSignalStrength[rfpath] ); + if(priv->stats.rx_rssi_percentage[rfpath] == 0) + { + priv->stats.rx_rssi_percentage[rfpath] = pprevious_stats->RxMIMOSignalStrength[rfpath]; + } + if(pprevious_stats->RxMIMOSignalStrength[rfpath] > priv->stats.rx_rssi_percentage[rfpath]) + { + priv->stats.rx_rssi_percentage[rfpath] = + ( (priv->stats.rx_rssi_percentage[rfpath]*(Rx_Smooth_Factor-1)) + + (pprevious_stats->RxMIMOSignalStrength[rfpath])) /(Rx_Smooth_Factor); + priv->stats.rx_rssi_percentage[rfpath] = priv->stats.rx_rssi_percentage[rfpath] + 1; + } + else + { + priv->stats.rx_rssi_percentage[rfpath] = + ( (priv->stats.rx_rssi_percentage[rfpath]*(Rx_Smooth_Factor-1)) + + (pprevious_stats->RxMIMOSignalStrength[rfpath])) /(Rx_Smooth_Factor); + } + RT_TRACE(COMP_DBG,"Jacken -> priv->RxStats.RxRSSIPercentage[rfPath] = %d \n" ,priv->stats.rx_rssi_percentage[rfpath] ); + } + } + + + if(pprevious_stats->bPacketBeacon) + { + if(slide_beacon_adc_pwdb_statistics++ >= PHY_Beacon_RSSI_SLID_WIN_MAX) + { + slide_beacon_adc_pwdb_statistics = PHY_Beacon_RSSI_SLID_WIN_MAX; + last_beacon_adc_pwdb = priv->stats.Slide_Beacon_pwdb[slide_beacon_adc_pwdb_index]; + priv->stats.Slide_Beacon_Total -= last_beacon_adc_pwdb; + } + priv->stats.Slide_Beacon_Total += pprevious_stats->RxPWDBAll; + priv->stats.Slide_Beacon_pwdb[slide_beacon_adc_pwdb_index] = pprevious_stats->RxPWDBAll; + slide_beacon_adc_pwdb_index++; + if(slide_beacon_adc_pwdb_index >= PHY_Beacon_RSSI_SLID_WIN_MAX) + slide_beacon_adc_pwdb_index = 0; + pprevious_stats->RxPWDBAll = priv->stats.Slide_Beacon_Total/slide_beacon_adc_pwdb_statistics; + if(pprevious_stats->RxPWDBAll >= 3) + pprevious_stats->RxPWDBAll -= 3; + } + + RT_TRACE(COMP_RXDESC, "Smooth %s PWDB = %d\n", + pprevious_stats->bIsCCK? "CCK": "OFDM", + pprevious_stats->RxPWDBAll); + + if(pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA) + { + if(priv->undecorated_smoothed_pwdb < 0) + { + priv->undecorated_smoothed_pwdb = pprevious_stats->RxPWDBAll; + } +#if 1 + if(pprevious_stats->RxPWDBAll > (u32)priv->undecorated_smoothed_pwdb) + { + priv->undecorated_smoothed_pwdb = + ( ((priv->undecorated_smoothed_pwdb)*(Rx_Smooth_Factor-1)) + + (pprevious_stats->RxPWDBAll)) /(Rx_Smooth_Factor); + priv->undecorated_smoothed_pwdb = priv->undecorated_smoothed_pwdb + 1; + } + else + { + priv->undecorated_smoothed_pwdb = + ( ((priv->undecorated_smoothed_pwdb)*(Rx_Smooth_Factor-1)) + + (pprevious_stats->RxPWDBAll)) /(Rx_Smooth_Factor); + } +#else + if(pPreviousRfd->Status.RxPWDBAll > (u32)pHalData->UndecoratedSmoothedPWDB) + { + pHalData->UndecoratedSmoothedPWDB = + ( ((pHalData->UndecoratedSmoothedPWDB)* 5) + (pPreviousRfd->Status.RxPWDBAll)) / 6; + pHalData->UndecoratedSmoothedPWDB = pHalData->UndecoratedSmoothedPWDB + 1; + } + else + { + pHalData->UndecoratedSmoothedPWDB = + ( ((pHalData->UndecoratedSmoothedPWDB)* 5) + (pPreviousRfd->Status.RxPWDBAll)) / 6; + } +#endif + rtl819x_update_rxsignalstatistics8190pci(priv,pprevious_stats); + } + + if(pprevious_stats->SignalQuality == 0) + { + } + else + { + if(pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA){ + if(slide_evm_statistics++ >= PHY_RSSI_SLID_WIN_MAX){ + slide_evm_statistics = PHY_RSSI_SLID_WIN_MAX; + last_evm = priv->stats.slide_evm[slide_evm_index]; + priv->stats.slide_evm_total -= last_evm; + } + + priv->stats.slide_evm_total += pprevious_stats->SignalQuality; + + priv->stats.slide_evm[slide_evm_index++] = pprevious_stats->SignalQuality; + if(slide_evm_index >= PHY_RSSI_SLID_WIN_MAX) + slide_evm_index = 0; + + tmp_val = priv->stats.slide_evm_total/slide_evm_statistics; + priv->stats.signal_quality = tmp_val; + priv->stats.last_signal_strength_inpercent = tmp_val; + } + + if(pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA) + { + for(nspatial_stream = 0; nspatial_stream<2 ; nspatial_stream++) + { + if(pprevious_stats->RxMIMOSignalQuality[nspatial_stream] != -1) + { + if(priv->stats.rx_evm_percentage[nspatial_stream] == 0) + { + priv->stats.rx_evm_percentage[nspatial_stream] = pprevious_stats->RxMIMOSignalQuality[nspatial_stream]; + } + priv->stats.rx_evm_percentage[nspatial_stream] = + ( (priv->stats.rx_evm_percentage[nspatial_stream]* (Rx_Smooth_Factor-1)) + + (pprevious_stats->RxMIMOSignalQuality[nspatial_stream]* 1)) / (Rx_Smooth_Factor); + } + } + } + } +#endif + +} + + + +void rtl8192se_TranslateRxSignalStuff(struct net_device *dev, + struct sk_buff *skb, + struct rtllib_rx_stats * pstats, + prx_desc pdesc, + prx_fwinfo pdrvinfo) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + bool bpacket_match_bssid, bpacket_toself; + bool bPacketBeacon=false; + struct rtllib_hdr_3addr *hdr; +#ifdef _RTL8192_EXT_PATCH_ + struct rtllib_network* pnet=NULL; + u8 *psaddr; + struct sta_info *pEntry = NULL; +#else + bool bToSelfBA=false; + static struct rtllib_rx_stats previous_stats; +#endif + u16 fc,type; + u8* tmp_buf; + u8 *praddr; + + tmp_buf = skb->data + pstats->RxDrvInfoSize + pstats->RxBufShift; + + hdr = (struct rtllib_hdr_3addr *)tmp_buf; + fc = le16_to_cpu(hdr->frame_ctl); + type = WLAN_FC_GET_TYPE(fc); + praddr = hdr->addr1; + +#ifdef _RTL8192_EXT_PATCH_ + psaddr = hdr->addr2; + if((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->mshobj->ext_patch_get_mpinfo)) + pnet = priv->mshobj->ext_patch_get_mpinfo(dev,psaddr); + if(priv->rtllib->iw_mode == IW_MODE_ADHOC){ + pEntry = GetStaInfo(priv->rtllib, psaddr); + } +#endif +#ifdef _RTL8192_EXT_PATCH_ + bpacket_match_bssid = ((RTLLIB_FTYPE_CTL != type) && (!pstats->bHwError) && (!pstats->bCRC)&& (!pstats->bICV)); + if(pnet){ + bpacket_match_bssid = bpacket_match_bssid; + } + else{ + bpacket_match_bssid = bpacket_match_bssid && + (!compare_ether_addr(priv->rtllib->current_network.bssid, + (fc & RTLLIB_FCTL_TODS)? hdr->addr1 : + (fc & RTLLIB_FCTL_FROMDS )? hdr->addr2 : hdr->addr3)); + } +#else + bpacket_match_bssid = ((RTLLIB_FTYPE_CTL != type) && + (!compare_ether_addr(priv->rtllib->current_network.bssid, + (fc & RTLLIB_FCTL_TODS)? hdr->addr1 : + (fc & RTLLIB_FCTL_FROMDS )? hdr->addr2 : hdr->addr3)) + && (!pstats->bHwError) && (!pstats->bCRC)&& (!pstats->bICV)); +#endif + bpacket_toself = bpacket_match_bssid & (!compare_ether_addr(praddr, priv->rtllib->dev->dev_addr)); + if(WLAN_FC_GET_FRAMETYPE(fc)== RTLLIB_STYPE_BEACON){ + bPacketBeacon = true; + } +#ifndef _RTL8192_EXT_PATCH_ + if(WLAN_FC_GET_FRAMETYPE(fc) == RTLLIB_STYPE_BLOCKACK){ + if ((!compare_ether_addr(praddr,dev->dev_addr))) + bToSelfBA = true; + } +#endif + if(bpacket_match_bssid){ + priv->stats.numpacket_matchbssid++; + } + if(bpacket_toself){ + priv->stats.numpacket_toself++; + } +#ifdef _RTL8192_EXT_PATCH_ + rtl8192se_query_rxphystatus(priv, pstats, pdesc, pdrvinfo, bpacket_match_bssid, + bpacket_toself ,bPacketBeacon); + rtl8192se_process_phyinfo(priv, tmp_buf,pstats,pnet, pEntry); + +#else + rtl8192se_process_phyinfo(priv, tmp_buf,&previous_stats, pstats); + rtl8192se_query_rxphystatus(priv, pstats, pdesc, pdrvinfo, &previous_stats, bpacket_match_bssid, + bpacket_toself ,bPacketBeacon, bToSelfBA); + rtl8192_record_rxdesc_forlateruse(pstats, &previous_stats); +#endif + +} + +void rtl8192se_UpdateReceivedRateHistogramStatistics( + struct net_device *dev, + struct rtllib_rx_stats* pstats + ) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u32 rcvType=1; + u32 rateIndex; + u32 preamble_guardinterval; + + #if 0 + if (pRfd->queue_id == CMPK_RX_QUEUE_ID) + return; + #endif + if(pstats->bCRC) + rcvType = 2; + else if(pstats->bICV) + rcvType = 3; + + if(pstats->bShortPreamble) + preamble_guardinterval = 1; + else + preamble_guardinterval = 0; + + switch(pstats->rate) + { + case MGN_1M: rateIndex = 0; break; + case MGN_2M: rateIndex = 1; break; + case MGN_5_5M: rateIndex = 2; break; + case MGN_11M: rateIndex = 3; break; + case MGN_6M: rateIndex = 4; break; + case MGN_9M: rateIndex = 5; break; + case MGN_12M: rateIndex = 6; break; + case MGN_18M: rateIndex = 7; break; + case MGN_24M: rateIndex = 8; break; + case MGN_36M: rateIndex = 9; break; + case MGN_48M: rateIndex = 10; break; + case MGN_54M: rateIndex = 11; break; + case MGN_MCS0: rateIndex = 12; break; + case MGN_MCS1: rateIndex = 13; break; + case MGN_MCS2: rateIndex = 14; break; + case MGN_MCS3: rateIndex = 15; break; + case MGN_MCS4: rateIndex = 16; break; + case MGN_MCS5: rateIndex = 17; break; + case MGN_MCS6: rateIndex = 18; break; + case MGN_MCS7: rateIndex = 19; break; + case MGN_MCS8: rateIndex = 20; break; + case MGN_MCS9: rateIndex = 21; break; + case MGN_MCS10: rateIndex = 22; break; + case MGN_MCS11: rateIndex = 23; break; + case MGN_MCS12: rateIndex = 24; break; + case MGN_MCS13: rateIndex = 25; break; + case MGN_MCS14: rateIndex = 26; break; + case MGN_MCS15: rateIndex = 27; break; + default: rateIndex = 28; break; + } + priv->stats.received_preamble_GI[preamble_guardinterval][rateIndex]++; + priv->stats.received_rate_histogram[0][rateIndex]++; + priv->stats.received_rate_histogram[rcvType][rateIndex]++; +} + +bool rtl8192se_rx_query_status_desc(struct net_device* dev, struct rtllib_rx_stats* stats, rx_desc *pdesc, struct sk_buff* skb) +{ + struct r8192_priv* priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + u32 PHYStatus = pdesc->PHYStatus; + rx_fwinfo* pDrvInfo; + stats->Length = (u16)pdesc->Length; + stats->RxDrvInfoSize = (u8)pdesc->DrvInfoSize*8; + stats->RxBufShift = (u8)((pdesc->Shift)&0x03); + stats->bICV = (u16)pdesc->ICVError; + stats->bCRC = (u16)pdesc->CRC32; + stats->bHwError = (u16)(pdesc->CRC32|pdesc->ICVError); + stats->Decrypted = !pdesc->SWDec; + stats->rate = (u8)pdesc->RxMCS; + stats->bShortPreamble= (u16)pdesc->SPLCP; + stats->bIsAMPDU = (bool)(pdesc->PAGGR==1); + stats->bFirstMPDU = (bool)((pdesc->PAGGR==1) && (pdesc->FAGGR==1)); + stats->TimeStampLow = pdesc->TSFL; + stats->RxIs40MHzPacket= (bool)pdesc->BandWidth; + if(IS_UNDER_11N_AES_MODE(ieee)) + { + if(stats->bICV && !stats->bCRC) + { + stats->bICV = false; + stats->bHwError = false; + } + } + + + if(stats->Length > 0x2000 || stats->Length < 24) + { + stats->bHwError |= 1; + } + rtl8192se_UpdateReceivedRateHistogramStatistics(dev, stats); + + if(!stats->bHwError) + stats->rate = HwRateToMRate92S((bool)(pdesc->RxHT), (u8)(pdesc->RxMCS)); + else + { + stats->rate = MGN_1M; + return false; + } + + rtl819x_UpdateRxPktTimeStamp(dev, stats); + + if((stats->RxBufShift + stats->RxDrvInfoSize) > 0) + stats->bShift = 1; + + if (PHYStatus == true) + { + pDrvInfo = (rx_fwinfo*)(skb->data + stats->RxBufShift); + + rtl8192se_TranslateRxSignalStuff(dev, skb, stats, pdesc, pDrvInfo); + + } + return true; +} + +void rtl8192se_halt_adapter(struct net_device *dev, bool bReset) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int i; + u8 wait = 30; + + RT_TRACE(COMP_INIT, "==> rtl8192se_halt_adapter()\n"); + +#if 1 + while (wait-- >= 10 && priv->PwrDomainProtect == true) + { + if (priv->PwrDomainProtect == true) + { + RT_TRACE(COMP_INIT, "Delay 20ms to wait PwrDomainProtect\n"); + mdelay(20); + } + else + break; + } + + if (wait == 9) + RT_TRACE(COMP_INIT, "PwrDomainProtect FAIL\n"); +#endif + + priv->rtllib->state = RTLLIB_NOLINK; + rtl8192se_update_msr(dev); +#if 1 + PHY_SetRtl8192seRfHalt(dev); +#endif + udelay(100); + +#if 0 + udelay(20); + if (!bReset) { + mdelay(20); + } +#endif + for(i = 0; i < MAX_QUEUE_SIZE; i++) { + skb_queue_purge(&priv->rtllib->skb_waitQ [i]); + } + for(i = 0; i < MAX_QUEUE_SIZE; i++) { + skb_queue_purge(&priv->rtllib->skb_aggQ [i]); + } +#ifdef _RTL8192_EXT_PATCH_ + for(i = 0; i < MAX_QUEUE_SIZE; i++) { + skb_queue_purge(&priv->rtllib->skb_meshaggQ [i]); + } +#endif + + skb_queue_purge(&priv->skb_queue); + RT_TRACE(COMP_INIT, "<== HaltAdapter8192SE()\n"); + return; +} + +u8 GetFreeRATRIndex8192SE (struct net_device* dev) +{ + struct r8192_priv* priv = rtllib_priv(dev); + u8 bitmap = priv->RATRTableBitmap; + u8 ratr_index = 0; + for( ;ratr_index<7; ratr_index++) + { + if((bitmap & BIT0) == 0) + { + priv->RATRTableBitmap |= BIT0<>1; + } + return ratr_index; +} + +void rtl8192se_update_ratr_table(struct net_device* dev,u8* pMcsRate,struct sta_info* pEntry) +{ + struct r8192_priv* priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + u32 ratr_value = 0; + u8 ratr_index = 0; + u8 bNMode = 0; + u16 shortGI_rate = 0; + u32 tmp_ratr_value = 0; + u8 MimoPs; + WIRELESS_MODE WirelessMode; + u8 bCurTxBW40MHz, bCurShortGI40MHz, bCurShortGI20MHz; + + if(ieee->iw_mode == IW_MODE_ADHOC){ + if(pEntry == NULL){ + printk("Doesn't have match Entry\n"); + return; + } + + if(pEntry->ratr_index != 8) + ratr_index = pEntry->ratr_index; + else + ratr_index = GetFreeRATRIndex8192SE(dev); + + if(ratr_index == 7){ + RT_TRACE(COMP_RATE, "Ratrtable are full"); + return; + } + MimoPs = pEntry->htinfo.MimoPs; + + if((ieee->mode == WIRELESS_MODE_G) && (pEntry->wireless_mode == WIRELESS_MODE_N_24G)) + WirelessMode = ieee->mode; + else + WirelessMode = pEntry->wireless_mode; + + bCurTxBW40MHz = pEntry->htinfo.bCurTxBW40MHz; + bCurShortGI40MHz = pEntry->htinfo.bCurShortGI40MHz; + bCurShortGI20MHz = pEntry->htinfo.bCurShortGI20MHz; + pEntry->ratr_index = ratr_index; + } + else + { + ratr_index = 0; + WirelessMode = ieee->mode; + MimoPs = ieee->pHTInfo->PeerMimoPs; + bCurTxBW40MHz = ieee->pHTInfo->bCurTxBW40MHz; + bCurShortGI40MHz = ieee->pHTInfo->bCurShortGI40MHz; + bCurShortGI20MHz = ieee->pHTInfo->bCurShortGI20MHz; + } + + rtl8192_config_rate(dev, (u16*)(&ratr_value)); + ratr_value |= (*(u16*)(pMcsRate)) << 12; + switch (WirelessMode) + { + case IEEE_A: + ratr_value &= 0x00000FF0; + break; + case IEEE_B: + ratr_value &= 0x0000000D; + break; + case IEEE_G: + case IEEE_G|IEEE_B: + ratr_value &= 0x00000FF5; + break; + case IEEE_N_24G: + case IEEE_N_5G: + bNMode = 1; + if (MimoPs == 0) + ratr_value &= 0x0007F005; + else{ + if (priv->rf_type == RF_1T2R ||priv->rf_type == RF_1T1R || (ieee->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_TX_2SS)){ + if ((bCurTxBW40MHz) && !(ieee->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_TX_40_MHZ)) + ratr_value &= 0x000FF015; + else + ratr_value &= 0x000ff005; + }else{ + if ((bCurTxBW40MHz) && !(ieee->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_TX_40_MHZ)) + ratr_value &= 0x0f0ff015; + else + ratr_value &= 0x0f0ff005; + } + } + break; + default: + printk("====>%s(), mode is not correct:%x\n", __FUNCTION__,WirelessMode); + break; + } + if (priv->card_8192_version>= VERSION_8192S_BCUT) + ratr_value &= 0x0FFFFFFF; + else if (priv->card_8192_version == VERSION_8192S_ACUT) + ratr_value &= 0x0FFFFFF0; + + if (((ieee->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_SHORT_GI)==0) && + bNMode && ((bCurTxBW40MHz && bCurShortGI40MHz) || + (!bCurTxBW40MHz && bCurShortGI20MHz))) + { + ratr_value |= 0x10000000; + tmp_ratr_value = (ratr_value>>12); + for(shortGI_rate=15; shortGI_rate>0; shortGI_rate--) + { + if((1<pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) + { + ratr_value &= 0xfffffff0; + printk("UpdateHalRATRTable8192SE(), for HT_IOT_ACT_WA_IOT_Broadcom, ratr_value = 0x%x\n", ratr_value); + } + + write_nic_dword(dev, ARFR0+ratr_index*4, ratr_value); + RT_TRACE(COMP_RATE, "%s: ratr_index=%d ratr_table=0x%8.8x\n", __FUNCTION__,ratr_index, read_nic_dword(dev, ARFR0+ratr_index*4)); + if (ratr_value & 0xfffff000){ + rtl8192se_set_fw_cmd(dev, FW_CMD_RA_REFRESH_N); + } + else{ + rtl8192se_set_fw_cmd(dev, FW_CMD_RA_REFRESH_BG); + } +} + +int r8192se_resume_firm(struct net_device *dev) +{ + write_nic_byte(dev, 0x42, 0xFF); + write_nic_word(dev, 0x40, 0x77FC); + write_nic_word(dev, 0x40, 0x57FC); + write_nic_word(dev, 0x40, 0x37FC); + write_nic_word(dev, 0x40, 0x77FC); + + udelay(100); + + write_nic_word(dev, 0x40, 0x57FC); + write_nic_word(dev, 0x40, 0x37FC); + write_nic_byte(dev, 0x42, 0x00); + + return 0; +} +void PHY_SetRtl8192seRfHalt(struct net_device* dev) +{ + struct r8192_priv* priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + u8 u1bTmp; + + if(priv->rtllib->RfOffReason == RF_CHANGE_BY_IPS && priv->LedStrategy == SW_LED_MODE8) + { + SET_RTL8192SE_RF_SLEEP(dev); + return; + } + +#ifdef LOW_DOWN_POWER + if(0) +#else + if(priv->bDriverIsGoingToUnload) +#endif + write_nic_byte(dev,0x560,0x0); + + RT_TRACE(COMP_PS, "PHY_SetRtl8192seRfHalt save BB/RF\n"); + u1bTmp = read_nic_byte(dev, LDOV12D_CTRL); + u1bTmp |= BIT0; + write_nic_byte(dev, LDOV12D_CTRL, u1bTmp); + write_nic_byte(dev, SPS1_CTRL, 0x0); + write_nic_byte(dev, TXPAUSE, 0xFF); + write_nic_word(dev, CMDR, 0x57FC); + udelay(100); + write_nic_word(dev, CMDR, 0x77FC); + write_nic_byte(dev, PHY_CCA, 0x0); + udelay(10); + write_nic_word(dev, CMDR, 0x37FC); + udelay(10); + write_nic_word(dev, CMDR, 0x77FC); + udelay(10); + write_nic_word(dev, CMDR, 0x57FC); + write_nic_word(dev, CMDR, 0x0000); + + +#ifdef LOW_DOWN_POWER + if(0) +#else + if(priv->bDriverIsGoingToUnload) +#endif + { + u1bTmp = read_nic_byte(dev, (SYS_FUNC_EN+ 1)); + u1bTmp &= ~(BIT0); + write_nic_byte(dev, SYS_FUNC_EN+1, u1bTmp); + } + + + u1bTmp = read_nic_byte(dev, (SYS_CLKR + 1)); + + if (u1bTmp & BIT7) { + u1bTmp &= ~(BIT6 | BIT7); + if(!HalSetSysClk8192SE(dev, u1bTmp)) { + printk("Switch ctrl path fail\n"); + return; + } + } + +#ifdef LOW_DOWN_POWER + if((priv->rtllib->RfOffReason & (RF_CHANGE_BY_IPS | RF_CHANGE_BY_HW)) && + !priv->bDriverIsGoingToUnload) +#else + if(priv->rtllib->RfOffReason==RF_CHANGE_BY_IPS && !priv->bDriverIsGoingToUnload) +#endif + { + write_nic_byte(dev, 0x03, 0xF9); + } else + { + write_nic_byte(dev, 0x03, 0xF9); + } + write_nic_byte(dev, SYS_CLKR+1, 0x70); + write_nic_byte(dev, AFE_PLL_CTRL+1, 0x68); + write_nic_byte(dev, AFE_PLL_CTRL, 0x00); + write_nic_byte(dev, LDOA15_CTRL, 0x34); + write_nic_byte(dev, AFE_XTAL_CTRL, 0x0E); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC); +} + + +/* +* Description: +* Set RateAdaptive Mask +* /param Adapter Pionter to Adapter entity +* /param bMulticast TURE if broadcast or multicast, used for softAP basic rate +* /param macId macID to set +* /param wirelessMode wireless mode of associated AP/client +* /return void +* +*/ +void UpdateHalRAMask8192SE( + struct net_device* dev, + bool bMulticast, + u8 macId, + u8 MimoPs, + u8 WirelessMode, + u8 bCurTxBW40MHz, + u8 rssi_level){ + struct r8192_priv* priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo; + u8* pMcsRate = ieee->dot11HTOperationalRateSet; + u32 ratr_bitmap, RateSet, mask=0, band = 0, ratr_value = 0; + u8 shortGI_rate = 0, bShortGI = false; + + RT_TRACE(COMP_RATE, "%s: macid:%d MimoPs=%d WirelessMode=0x%x bCurTxBW40MHz=%d rssid_level=%d\n",__FUNCTION__, macId, MimoPs, WirelessMode,bCurTxBW40MHz, rssi_level); + rtl8192_config_rate(dev, (u16*)&RateSet); + RateSet |= (*(u16*)(pMcsRate)) << 12; + ratr_bitmap = RateSet; + + switch (WirelessMode){ + case WIRELESS_MODE_B: + band |= WIRELESS_11B; + ratr_bitmap &= 0x0000000d; + break; + case WIRELESS_MODE_G: + case (WIRELESS_MODE_G |WIRELESS_MODE_B): + band |= (WIRELESS_11G | WIRELESS_11B); + + if(rssi_level == 1) + ratr_bitmap &= 0x00000f00; + else if(rssi_level == 2) + ratr_bitmap &= 0x00000ff0; + else + ratr_bitmap &= 0x00000ff5; + break; + case WIRELESS_MODE_A: + band |= WIRELESS_11A; + ratr_bitmap &= 0x00000ff0; + break; + case WIRELESS_MODE_N_24G: + case WIRELESS_MODE_N_5G: + { + band |= (WIRELESS_11N| WIRELESS_11G| WIRELESS_11B); + if(MimoPs == MIMO_PS_STATIC){ + if(rssi_level == 1) + ratr_bitmap &= 0x00070000; + else if(rssi_level == 2) + ratr_bitmap &= 0x0007f000; + else + ratr_bitmap &= 0x0007f005; + }else{ + if (priv->rf_type == RF_1T2R || priv->rf_type == RF_1T1R) + { + + if(rssi_level == 1) + ratr_bitmap &= 0x000f0000; + else if(rssi_level ==3) + ratr_bitmap &= 0x000fc000; + else if(rssi_level == 5) + ratr_bitmap &= 0x000ff000; + else + { + if (bCurTxBW40MHz) + ratr_bitmap &= 0x000ff015; + else + ratr_bitmap &= 0x000ff005; + } + + } + else + { + if(rssi_level == 1) + ratr_bitmap &= 0x0f8f0000; + else if(rssi_level == 3) + ratr_bitmap &= 0x0f8fc000; + else if(rssi_level == 5) + ratr_bitmap &= 0x0f8ff000; + else + { + if (bCurTxBW40MHz) + ratr_bitmap &= 0x0f8ff015; + else + ratr_bitmap &= 0x0f8ff005; + } + + } + } + if( (pHTInfo->bCurTxBW40MHz && pHTInfo->bCurShortGI40MHz) || + (!pHTInfo->bCurTxBW40MHz && pHTInfo->bCurShortGI20MHz)){ + if(macId == 0) + bShortGI = true; + else + bShortGI = false; + } + break; + } + default: + band |= (WIRELESS_11N| WIRELESS_11G| WIRELESS_11B); + + if(priv->rf_type == RF_1T2R) + ratr_bitmap &= 0x000ff0ff; + else + ratr_bitmap &= 0x0f8ff0ff; + break; + } + + if (priv->card_8192_version >= VERSION_8192S_BCUT) + ratr_bitmap &= 0x0FFFFFFF; + else if (priv->card_8192_version == VERSION_8192S_ACUT) + ratr_bitmap &= 0x0FFFFFF0; + + if(bShortGI){ + ratr_bitmap |= 0x10000000; + ratr_value = (ratr_bitmap>>12); + for(shortGI_rate=15; shortGI_rate>0; shortGI_rate--){ + if((1<rtllib->pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) + ratr_bitmap &= 0xfffffff0; + if(priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_SHORT_GI) + ratr_bitmap &=0x0fffffff; + } + mask |= (bMulticast ? 1 : 0)<<9 | (macId & 0x1f)<<4 | (band & 0xf); + + RT_TRACE(COMP_RATE, "%s(): mask = %x, bitmap = %x\n",__func__, mask, ratr_bitmap); + write_nic_dword(dev, 0x2c4, ratr_bitmap); + write_nic_dword(dev, WFM5, (FW_RA_UPDATE_MASK | (mask << 8))); +} + +u8 HalSetSysClk8192SE( struct net_device *dev, u8 Data) +{ +#if 0 + write_nic_byte(dev, (SYS_CLKR + 1), Data); + udelay(200);; + return 1; +#else + { + u8 WaitCount = 100; + bool bResult = false; + +#ifdef TO_DO_LIST + RT_DISABLE_FUNC(Adapter, DF_IO_BIT); + + do + { + if(pDevice->IOCount == 0) + break; + delay_us(10); + }while(WaitCount -- > 0); + + if(WaitCount == 0) + { + RT_ENABLE_FUNC(Adapter, DF_IO_BIT); + RT_TRACE(COMP_POWER, DBG_WARNING, ("HalSetSysClk8192SE(): Wait too long! Skip ....\n")); + return false; + } + #endif + write_nic_byte(dev,SYS_CLKR + 1,Data); + + udelay(400); + + + { + u8 TmpValue; + TmpValue=read_nic_byte(dev,SYS_CLKR + 1); + bResult = ((TmpValue&BIT7)== (Data & BIT7)); + if((Data &(BIT6|BIT7)) == false) + { + WaitCount = 100; + TmpValue = 0; + while(1) + { + WaitCount--; + TmpValue=read_nic_byte(dev, SYS_CLKR + 1); + if((TmpValue &BIT6)) + break; + printk("wait for BIT6 return value %x\n",TmpValue); + if(WaitCount==0) + break; + udelay(10); + } + if(WaitCount == 0) + bResult = false; + else + bResult = true; + } + } +#ifdef TO_DO_LIST + RT_ENABLE_FUNC(Adapter, DF_IO_BIT); +#endif + RT_TRACE(COMP_PS,"HalSetSysClk8192SE():Value = %02X, return: %d\n", Data, bResult); + return bResult; + } +#endif +} + +static u8 LegacyRateSet[12] = {0x02 , 0x04 , 0x0b , 0x16 , 0x0c , 0x12 , 0x18 , 0x24 , 0x30 , 0x48 , 0x60 , 0x6c}; +void GetHwReg8192SE(struct net_device *dev,u8 variable,u8* val) +{ + struct r8192_priv* priv = rtllib_priv(dev); + switch(variable) + { + case HW_VAR_INIT_TX_RATE: + { + u8 RateIdx = read_nic_byte(dev, TX_RATE_REG); + if(RateIdx < 76) + *((u8*)(val)) = (RateIdx<12)?(LegacyRateSet[RateIdx]):((RateIdx-12)|0x80); + else + *((u8*)(val)) = 0; + } + break; + + case HW_VAR_RCR: + *((u32*)(val)) = priv->ReceiveConfig; + break; + + case HW_VAR_MRC: + { + *((bool*)(val)) = priv->bCurrentMrcSwitch; + } + break; + + default: + break; + } +} + +void SetHwReg8192SE(struct net_device *dev,u8 variable,u8* val) +{ + struct r8192_priv* priv = rtllib_priv(dev); + switch(variable) + { + case HW_VAR_AMPDU_MIN_SPACE: + { + u8 MinSpacingToSet; + u8 SecMinSpace; + + MinSpacingToSet = *((u8*)val); + if(MinSpacingToSet <= 7) + { + if((priv->rtllib->current_network.capability & WLAN_CAPABILITY_PRIVACY) == 0) + SecMinSpace = 0; + else if (priv->rtllib->rtllib_ap_sec_type && + (priv->rtllib->rtllib_ap_sec_type(priv->rtllib) + & (SEC_ALG_WEP|SEC_ALG_TKIP))) + SecMinSpace = 7; + else + SecMinSpace = 1; + + if(MinSpacingToSet < SecMinSpace) + MinSpacingToSet = SecMinSpace; + priv->rtllib->MinSpaceCfg = ((priv->rtllib->MinSpaceCfg&0xf8) |MinSpacingToSet); + RT_TRACE(COMP_MLME, "Set HW_VAR_AMPDU_MIN_SPACE: %#x\n", priv->rtllib->MinSpaceCfg); + write_nic_byte(dev, AMPDU_MIN_SPACE, priv->rtllib->MinSpaceCfg); + } + } + break; + case HW_VAR_SHORTGI_DENSITY: + { + u8 DensityToSet; + + DensityToSet = *((u8*)val); + priv->rtllib->MinSpaceCfg|= (DensityToSet<<3); + RT_TRACE(COMP_MLME, "Set HW_VAR_SHORTGI_DENSITY: %#x\n", priv->rtllib->MinSpaceCfg); + write_nic_byte(dev, AMPDU_MIN_SPACE, priv->rtllib->MinSpaceCfg); + break; + } + case HW_VAR_AMPDU_FACTOR: + { + u8 FactorToSet; + u8 RegToSet; + u8 FactorLevel[18] = {2, 4, 4, 7, 7, 13, 13, 13, 2, 7, 7, 13, 13, 15, 15, 15, 15, 0}; + u8 index = 0; + + FactorToSet = *((u8*)val); + if(FactorToSet <= 3) + { + FactorToSet = (1<<(FactorToSet + 2)); + if(FactorToSet>0xf) + FactorToSet = 0xf; + + for(index=0; index<17; index++) + { + if(FactorLevel[index] > FactorToSet) + FactorLevel[index] = FactorToSet; + } + + for(index=0; index<8; index++) + { + RegToSet = ((FactorLevel[index*2]) | (FactorLevel[index*2+1]<<4)); + write_nic_byte(dev, AGGLEN_LMT_L+index, RegToSet); + } + RegToSet = ((FactorLevel[16]) | (FactorLevel[17]<<4)); + write_nic_byte(dev, AGGLEN_LMT_H, RegToSet); + + RT_TRACE(COMP_MLME, "Set HW_VAR_AMPDU_FACTOR: %#x\n", FactorToSet); + } + } + break; + case HW_VAR_AC_PARAM: + { + u8 pAcParam = *((u8*)val); +#ifdef MERGE_TO_DO + u32 eACI = GET_WMM_AC_PARAM_ACI(pAcParam); +#else + u32 eACI = pAcParam; +#endif + u8 u1bAIFS; + u32 u4bAcParam; + u8 mode = priv->rtllib->mode; + struct rtllib_qos_parameters *qos_parameters = &priv->rtllib->current_network.qos_data.parameters; + + + u1bAIFS = qos_parameters->aifs[pAcParam] * ((mode&(IEEE_G|IEEE_N_24G)) ?9:20) + aSifsTime; + + dm_init_edca_turbo(dev); + + u4bAcParam = ( (((u32)(qos_parameters->tx_op_limit[pAcParam])) << AC_PARAM_TXOP_LIMIT_OFFSET) | + (((u32)(qos_parameters->cw_max[pAcParam])) << AC_PARAM_ECW_MAX_OFFSET) | + (((u32)(qos_parameters->cw_min[pAcParam])) << AC_PARAM_ECW_MIN_OFFSET) | + (((u32)u1bAIFS) << AC_PARAM_AIFS_OFFSET) ); + + printk("%s():HW_VAR_AC_PARAM eACI:%x:%x\n", __func__,eACI, u4bAcParam); + switch(eACI) + { + case AC1_BK: + write_nic_dword(dev, EDCAPARA_BK, u4bAcParam); + break; + + case AC0_BE: + write_nic_dword(dev, EDCAPARA_BE, u4bAcParam); + break; + + case AC2_VI: + write_nic_dword(dev, EDCAPARA_VI, u4bAcParam); + break; + + case AC3_VO: + write_nic_dword(dev, EDCAPARA_VO, u4bAcParam); + break; + + default: + printk("SetHwReg8185(): invalid ACI: %d !\n", eACI); + break; + } + if(priv->AcmMethod != eAcmWay2_SW) + priv->rtllib->SetHwRegHandler(dev, HW_VAR_ACM_CTRL, (u8*)(&pAcParam)); + } + break; + case HW_VAR_ACM_CTRL: + { + struct rtllib_qos_parameters *qos_parameters = &priv->rtllib->current_network.qos_data.parameters; + u8 pAcParam = *((u8*)val); +#ifdef MERGE_TO_DO + u32 eACI = GET_WMM_AC_PARAM_ACI(pAciAifsn); +#else + u32 eACI = pAcParam; +#endif + PACI_AIFSN pAciAifsn = (PACI_AIFSN)&(qos_parameters->aifs[0]); + u8 ACM = pAciAifsn->f.ACM; + u8 AcmCtrl = read_nic_byte( dev, AcmHwCtrl); + + printk("===========>%s():HW_VAR_ACM_CTRL:%x\n", __func__,eACI); + AcmCtrl = AcmCtrl | ((priv->AcmMethod == 2)?0x0:0x1); + + if( ACM ) + { + switch(eACI) + { + case AC0_BE: + AcmCtrl |= AcmHw_BeqEn; + break; + + case AC2_VI: + AcmCtrl |= AcmHw_ViqEn; + break; + case AC3_VO: + AcmCtrl |= AcmHw_VoqEn; + break; + + default: + RT_TRACE( COMP_QOS, "SetHwReg8185(): [HW_VAR_ACM_CTRL] ACM set failed: eACI is %d\n", eACI ); + break; + } + } + else + { + switch(eACI) + { + case AC0_BE: + AcmCtrl &= (~AcmHw_BeqEn); + break; + + case AC2_VI: + AcmCtrl &= (~AcmHw_ViqEn); + break; + + case AC3_VO: + AcmCtrl &= (~AcmHw_BeqEn); + break; + + default: + break; + } + } + + RT_TRACE( COMP_QOS, "SetHwReg8190pci(): [HW_VAR_ACM_CTRL] Write 0x%X\n", AcmCtrl ); + write_nic_byte(dev, AcmHwCtrl, AcmCtrl ); + } + break; + + case HW_VAR_BASIC_RATE: + { + u16 BrateCfg = 0; + u8 RateIndex = 0; + + + rtl8192_config_rate(dev, &BrateCfg); + + if (priv->card_8192_version == VERSION_8192S_ACUT) + priv->basic_rate = BrateCfg = BrateCfg & 0x150; + else if (priv->card_8192_version == VERSION_8192S_BCUT) + priv->basic_rate = BrateCfg = BrateCfg & 0x15f; + + if(priv->rtllib->pHTInfo->IOTPeer == HT_IOT_PEER_CISCO && ((BrateCfg &0x150)==0)) + { + BrateCfg |=0x010; + } + if(priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) + { + BrateCfg &= 0x1f0; + printk("HW_VAR_BASIC_RATE, HT_IOT_ACT_WA_IOT_Broadcom, BrateCfg = 0x%x\n", BrateCfg); + } + + BrateCfg |= 0x01; + + write_nic_byte(dev, RRSR, BrateCfg&0xff); + write_nic_byte(dev, RRSR+1, (BrateCfg>>8)&0xff); + + while(BrateCfg > 0x1) + { + BrateCfg = (BrateCfg >> 1); + RateIndex++; + } + write_nic_byte(dev, INIRTSMCS_SEL, RateIndex); + } + break; + case HW_VAR_RETRY_LIMIT: + { + u8 RetryLimit = ((u8*)(val))[0]; + + priv->ShortRetryLimit = RetryLimit; + priv->LongRetryLimit = RetryLimit; + + write_nic_word(dev, RETRY_LIMIT, + RetryLimit << RETRY_LIMIT_SHORT_SHIFT | \ + RetryLimit << RETRY_LIMIT_LONG_SHIFT); + } + break; + case HW_VAR_BEACON_INTERVAL: + { + write_nic_word(dev, BCN_INTERVAL, *((u16*)val)); + PHY_SetBeaconHwReg(dev, *((u16*)val)); + } + break; + + case HW_VAR_BSSID: + write_nic_dword(dev, BSSIDR, ((u32*)(val))[0]); + write_nic_word(dev, BSSIDR+4, ((u16*)(val+4))[0]); + break; + + case HW_VAR_MEDIA_STATUS: + { + RT_OP_MODE OpMode = *((RT_OP_MODE *)(val)); + LED_CTL_MODE LedAction = LED_CTL_NO_LINK; + u8 btMsr = read_nic_byte(dev, MSR); + + btMsr &= 0xfc; + switch(OpMode) + { + case RT_OP_MODE_INFRASTRUCTURE: + btMsr |= MSR_INFRA; + LedAction = LED_CTL_LINK; + break; + + case RT_OP_MODE_IBSS: + btMsr |= MSR_ADHOC; + break; + + case RT_OP_MODE_AP: + btMsr |= MSR_AP; + LedAction = LED_CTL_LINK; + break; + + default: + btMsr |= MSR_NOLINK; + break; + } + + write_nic_byte(dev, MSR, btMsr); + + { + u32 temp = read_nic_dword(dev, TCR); + write_nic_dword(dev, TCR, temp&(~BIT8)); + write_nic_dword(dev, TCR, temp|BIT8); + } + priv->rtllib->LedControlHandler(dev, LedAction); + } + break; + + case HW_VAR_RCR: + { + write_nic_dword(dev, RCR,((u32*)(val))[0]); + priv->ReceiveConfig = ((u32*)(val))[0]; + } + break; + + case HW_VAR_CECHK_BSSID: + { + u32 RegRCR, Type; + + Type = ((u8*)(val))[0]; + priv->rtllib->GetHwRegHandler(dev, HW_VAR_RCR, (u8*)(&RegRCR)); + +#if (RTL92SE_FPGA_VERIFY == 1) + RegRCR &= (~RCR_CBSSID); +#else +#if 1 + if (Type == true) + RegRCR |= (RCR_CBSSID); + else if (Type == false) + RegRCR &= (~RCR_CBSSID); +#endif + priv->rtllib->SetHwRegHandler( dev, HW_VAR_RCR, (u8*)(&RegRCR) ); +#endif + } + break; + + case HW_VAR_SLOT_TIME: + { + + priv->slot_time = val[0]; + write_nic_byte(dev, SLOT_TIME, val[0]); + +#ifdef MERGE_TO_DO + if(priv->rtllib->current_network.qos_data.supported !=0) + { + for(eACI = 0; eACI < AC_MAX; eACI++) + { + priv->rtllib->SetHwRegHandler(dev, HW_VAR_AC_PARAM, (u8*)(&eACI)); + } + } + else + { + u8 u1bAIFS = aSifsTime + (2 * priv->slot_time); + + write_nic_byte(dev, EDCAPARA_VO, u1bAIFS); + write_nic_byte(dev, EDCAPARA_VI, u1bAIFS); + write_nic_byte(dev, EDCAPARA_BE, u1bAIFS); + write_nic_byte(dev, EDCAPARA_BK, u1bAIFS); + } +#endif + } + break; + + case HW_VAR_ACK_PREAMBLE: + { + u8 regTmp; + priv->short_preamble = (bool)(*(u8*)val ); + regTmp = (priv->nCur40MhzPrimeSC)<<5; + if(priv->short_preamble) + regTmp |= 0x80; + + write_nic_byte(dev, RRSR+2, regTmp); + } + break; + + case HW_VAR_SIFS: + write_nic_byte(dev, SIFS_OFDM, val[0]); + write_nic_byte(dev, SIFS_OFDM+1, val[1]); + break; + + case HW_VAR_MRC: + { + + bool bMrcToSet = *( (bool*)val ); + u8 U1bData = 0; + + if( bMrcToSet ) + { + + rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, bMaskByte0, 0x33); + U1bData = (u8)rtl8192_QueryBBReg(dev, rOFDM1_TRxPathEnable, bMaskByte0); + rtl8192_setBBreg(dev, rOFDM1_TRxPathEnable, bMaskByte0, ((U1bData&0xf0)|0x03)); + U1bData = (u8)rtl8192_QueryBBReg(dev, rOFDM0_TRxPathEnable, bMaskByte1); + rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, bMaskByte1, (U1bData|0x04)); + + priv->bCurrentMrcSwitch = bMrcToSet; + } + else + { + rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, bMaskByte0, 0x13); + U1bData = (u8)rtl8192_QueryBBReg(dev, rOFDM1_TRxPathEnable, bMaskByte0); + rtl8192_setBBreg(dev, rOFDM1_TRxPathEnable, bMaskByte0, ((U1bData&0xf0)|0x01)); + U1bData = (u8)rtl8192_QueryBBReg(dev, rOFDM0_TRxPathEnable, bMaskByte1); + rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, bMaskByte1, (U1bData&0xfb)); + + priv->bCurrentMrcSwitch = bMrcToSet; + } + } + break; + + default: + break; + } +} + +void SetBeaconRelatedRegisters8192SE(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + struct rtllib_network *net = &priv->rtllib->current_network; + u16 BcnTimeCfg = 0; + u16 BcnCW = 6, BcnIFS = 0xf; + u16 AtimWindow = 2; + int OpMode = priv->rtllib->iw_mode; + u16 BcnInterval = net->beacon_interval; + write_nic_word(dev, ATIMWND, AtimWindow); + + write_nic_word(dev, BCN_INTERVAL, BcnInterval); + + write_nic_word(dev, BCN_DRV_EARLY_INT, 10<<4); + + write_nic_word(dev, BCN_DMATIME, 256); + + write_nic_byte(dev, BCN_ERR_THRESH, 100); + + + switch(OpMode) + { + case IW_MODE_ADHOC: + BcnTimeCfg |= (BcnCW<rtllib; + u8 bitmap = 0; + int i; + + for (i = 0; i < PEER_MAX_ASSOC; i++) { + if (NULL != ieee->peer_assoc_list[i]) { + bitmap |= BIT0 << ieee->peer_assoc_list[i]->ratr_index; + } + } + + priv->RATRTableBitmap = bitmap; + return; +} + +bool rtl8192se_check_ht_cap(struct net_device* dev, struct sta_info *sta, + struct rtllib_network* net) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + PHT_CAPABILITY_ELE pHTCapIE = NULL; + PHT_INFORMATION_ELE pPeerHTInfo = NULL; + u8 ExtChlOffset=0; + u8 *pMcsFilter = NULL; + u16 nMaxAMSDUSize = 0; + static u8 EWC11NHTCap[] = {0x00, 0x90, 0x4c, 0x33}; + static u8 EWC11NHTInfo[] = {0x00, 0x90, 0x4c, 0x34}; + + if ((ieee->mode != WIRELESS_MODE_N_24G) && + (ieee->mode != WIRELESS_MODE_N_5G)) { + if (net->mode == IEEE_N_5G) + sta->wireless_mode = IEEE_A; + else if (net->mode == IEEE_N_24G) { + if (net->rates_ex_len > 0) + sta->wireless_mode = IEEE_G; + else + sta->wireless_mode = IEEE_B; + } else + sta->wireless_mode = net->mode; + printk("%s():i am G mode ,do not need to check Cap IE. wireless_mode=0x%x\n", + __FUNCTION__, sta->wireless_mode); + return false; + } + if ((ieee->mode ==WIRELESS_MODE_N_24G) + && ieee->pHTInfo->bRegSuppCCK== false) { + if(net->mode == IEEE_B){ + sta->wireless_mode = net->mode; + printk("%s(): peer is B MODE return\n", __FUNCTION__); + return false; + } + } + if(net->bssht.bdHTCapLen != 0) + { + sta->htinfo.bEnableHT = true; + sta->htinfo.bCurRxReorderEnable = ieee->pHTInfo->bRegRxReorderEnable; + if(net->mode == IEEE_A) + sta->wireless_mode = IEEE_N_5G; + else + sta->wireless_mode = IEEE_N_24G; + } else { + printk("%s(): have no HTCap IE, mode is %d\n",__FUNCTION__,net->mode); + sta->wireless_mode = net->mode; + sta->htinfo.bEnableHT = false; + return true; + } + + if (!memcmp(net->bssht.bdHTCapBuf ,EWC11NHTCap, sizeof(EWC11NHTCap))) + pHTCapIE = (PHT_CAPABILITY_ELE)(&(net->bssht.bdHTCapBuf[4])); + else + pHTCapIE = (PHT_CAPABILITY_ELE)(net->bssht.bdHTCapBuf); + + if (!memcmp(net->bssht.bdHTInfoBuf, EWC11NHTInfo, sizeof(EWC11NHTInfo))) + pPeerHTInfo = (PHT_INFORMATION_ELE)(&net->bssht.bdHTInfoBuf[4]); + else + pPeerHTInfo = (PHT_INFORMATION_ELE)(net->bssht.bdHTInfoBuf); + + ExtChlOffset=((ieee->pHTInfo->bRegBW40MHz == false)?HT_EXTCHNL_OFFSET_NO_EXT: + (ieee->current_network.channel<=6)? + HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + printk("******** STA wireless mode %d\n", sta->wireless_mode); + + if (ieee->pHTInfo->bRegSuppCCK) + sta->htinfo.bSupportCck = (pHTCapIE->DssCCk==1)?true:false; + else { + if(pHTCapIE->DssCCk==1) + return false; + } + + sta->htinfo.MimoPs= pHTCapIE->MimoPwrSave; + + printk("******** PEER MP MimoPs %d\n", sta->htinfo.MimoPs); + if(ieee->pHTInfo->bRegBW40MHz) + sta->htinfo.bBw40MHz= (pHTCapIE->ChlWidth==1)?true:false; + else + sta->htinfo.bBw40MHz = false; + + if((pPeerHTInfo->ExtChlOffset) != ExtChlOffset) + sta->htinfo.bBw40MHz = false; + + ieee->Peer_bCurBW40M = sta->htinfo.bBw40MHz; + printk("******** PEER MP bCurBW40M %d\n", sta->htinfo.bBw40MHz); + if(ieee->pHTInfo->bRegBW40MHz == true) + sta->htinfo.bCurTxBW40MHz = sta->htinfo.bBw40MHz; + + printk("******** PEER MP bCurTxBW40MHz %d\n", sta->htinfo.bCurTxBW40MHz); + sta->htinfo.bCurShortGI20MHz= + ((ieee->pHTInfo->bRegShortGI20MHz)?((pHTCapIE->ShortGI20Mhz==1)?true:false):false); + sta->htinfo.bCurShortGI40MHz= + ((ieee->pHTInfo->bRegShortGI40MHz)?((pHTCapIE->ShortGI40Mhz==1)?true:false):false); + + printk("******** PEER MP bCurShortGI20MHz %d, bCurShortGI40MHz %d\n",sta->htinfo.bCurShortGI20MHz,sta->htinfo.bCurShortGI40MHz); + nMaxAMSDUSize = (pHTCapIE->MaxAMSDUSize==0)?3839:7935; + if(ieee->pHTInfo->nAMSDU_MaxSize >= nMaxAMSDUSize) + sta->htinfo.AMSDU_MaxSize = nMaxAMSDUSize; + else + sta->htinfo.AMSDU_MaxSize = ieee->pHTInfo->nAMSDU_MaxSize; + + printk("****************AMSDU_MaxSize=%d\n",sta->htinfo.AMSDU_MaxSize); + + if(ieee->pHTInfo->AMPDU_Factor >= pHTCapIE->MaxRxAMPDUFactor) + sta->htinfo.AMPDU_Factor = pHTCapIE->MaxRxAMPDUFactor; + else + sta->htinfo.AMPDU_Factor = ieee->pHTInfo->AMPDU_Factor; + + if(ieee->pHTInfo->MPDU_Density >= pHTCapIE->MPDUDensity) + sta->htinfo.MPDU_Density = pHTCapIE->MPDUDensity; + else + sta->htinfo.MPDU_Density = ieee->pHTInfo->MPDU_Density; + + HTFilterMCSRate(ieee, pHTCapIE->MCS, sta->htinfo.McsRateSet); + if(sta->htinfo.MimoPs == 0) + pMcsFilter = MCS_FILTER_1SS; + else + pMcsFilter = MCS_FILTER_ALL; + + sta->htinfo.HTHighestOperaRate = HTGetHighestMCSRate(ieee, sta->htinfo.McsRateSet, pMcsFilter); + printk("******** PEER MP HTHighestOperaRate %x\n",sta->htinfo.HTHighestOperaRate); + + return true; + +} + +#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,20) +void rtl8192se_check_tsf_wq(struct work_struct * work) +{ + struct delayed_work *dwork = container_of(work,struct delayed_work,work); + struct rtllib_device *ieee = container_of(dwork, struct rtllib_device, check_tsf_wq); + struct net_device *dev = ieee->dev; +#else +void rtl8192se_check_tsf_wq(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; +#endif + u32 CurrTsfHigh,CurrTsfLow; + u32 TargetTsfHigh,TargetTsfLow; + + CurrTsfHigh = read_nic_dword(dev, TSFR+4); + CurrTsfLow = (u32)(ieee->CurrTsf & 0xffff); + TargetTsfHigh = (u32)(ieee->TargetTsf >> 32); + TargetTsfLow = (u32)(ieee->TargetTsf & 0xffff); + + printk("Current TSF Low = %x, Hight = %x\n",CurrTsfLow,CurrTsfHigh); + printk("Target TSF Low = %x, Hight = %x\n",TargetTsfLow,TargetTsfHigh); + + ieee->CurrTsf |= (u64)CurrTsfHigh << 32; + + if(ieee->CurrTsf < ieee->TargetTsf) + { + down(&ieee->wx_sem); + + rtllib_stop_protocol(ieee,true); + + ieee->ssid_set = 1; + + rtllib_start_protocol(ieee); + + up(&ieee->wx_sem); + } +} + +#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,20) +void rtl8192se_update_assoc_sta_info_wq(struct work_struct * work) +{ + struct delayed_work *dwork = container_of(work,struct delayed_work,work); + struct rtllib_device *ieee = container_of(dwork, struct rtllib_device, update_assoc_sta_info_wq); + struct net_device *dev = ieee->dev; +#else +void rtl8192se_update_assoc_sta_info_wq(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; +#endif + struct sta_info * pEntry = NULL; + int idx = 0; + for(idx=0; idxpeer_assoc_list[idx]; + if(NULL != pEntry) + { + u8 * addr = pEntry->macaddr; + + if(ieee->bUseRAMask){ + if((pEntry->wireless_mode & WIRELESS_MODE_N_24G) || (pEntry->wireless_mode & WIRELESS_MODE_N_5G)) + pEntry->ratr_index = RATR_INX_WIRELESS_NGB; + else if(pEntry->wireless_mode & WIRELESS_MODE_G) + pEntry->ratr_index = RATR_INX_WIRELESS_GB; + else if(pEntry->wireless_mode & WIRELESS_MODE_B) + pEntry->ratr_index = RATR_INX_WIRELESS_B; + ieee->UpdateHalRAMaskHandler(dev, + false, + pEntry->aid+1, + pEntry->htinfo.MimoPs, + pEntry->wireless_mode, + pEntry->htinfo.bCurTxBW40MHz, + 0); + } + else + rtl8192se_update_ratr_table(dev,pEntry->htinfo.McsRateSet,pEntry); + printk("%s: STA:"MAC_FMT", aid:%d, wireless_mode=0x%x ratr_index=%d\n",__FUNCTION__,MAC_ARG(addr), pEntry->aid, pEntry->wireless_mode, pEntry->ratr_index); + } + } + if(!ieee->bUseRAMask) + UpdateHalRATRTableIndex(dev); + + if(ieee->Peer_bCurBW40M) + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + else + HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); +} + +bool +rtl8192se_RxCommandPacketHandle( + struct net_device *dev, + struct sk_buff* skb, + rx_desc *pdesc) +{ + u8* pRxCmdHeader; + u8* pCmdContent; + u16 total_length, offset; + u16 RxCmdLen; + u8 RxCmdElementID, RxCmdSeq; + bool RxCmdContinue; + +#if 0 + if ((pRfd->queue_id != CMPK_RX_QUEUE_ID) || (pRfd == NULL)) + { + return 0; + } +#endif + + +#if 0 + if(pdesc->MACID == 0x1e) + { + return 0; + } +#endif + + total_length = pdesc->Length; + pRxCmdHeader = skb->data; + offset = 0; + + do + { + RxCmdLen = (u16)GET_C2H_CMD_CMD_LEN(pRxCmdHeader + offset); + RxCmdElementID = (u8)GET_C2H_CMD_ELEMENT_ID(pRxCmdHeader + offset); + RxCmdSeq = (u8)GET_C2H_CMD_CMD_SEQ(pRxCmdHeader + offset); + RxCmdContinue = (bool)GET_C2H_CMD_CONTINUE(pRxCmdHeader + offset); + pCmdContent = (u8*)GET_C2H_CMD_CONTENT(pRxCmdHeader + offset); + + if((offset + C2H_RX_CMD_HDR_LEN + RxCmdLen) > total_length) + { + printk("Wrong C2H Cmd length!\n"); + break; + } + + RT_TRACE(COMP_CMD, "RxCmdLen = 0x%x, RxCmdElementID = 0x%x, RxCmdSeq = 0x%x, RxCmdContinue = 0x%x\n", + RxCmdLen, RxCmdElementID, RxCmdSeq, RxCmdContinue); + RT_TRACE(COMP_CMD, "Rx CMD Packet Hex Data :%x\n", total_length); + RT_TRACE(COMP_CMD, "Rx CMD Content Hex Data :%x:%x\n", *pCmdContent, RxCmdLen); + + switch(RxCmdElementID) + { + case HAL_FW_C2H_CMD_C2HFEEDBACK: + { + switch(GET_C2H_CMD_FEEDBACK_ELEMENT_ID(pCmdContent)) + { + case HAL_FW_C2H_CMD_C2HFEEDBACK_CCX_PER_PKT_RPT: + { + RT_TRACE(COMP_CMD, "HAL_FW_C2H_CMD_C2HFEEDBACK_CCX_PER_PKT_RPT FW_DBG CMD Hex:%x\n", total_length); + } + break; + + case HAL_FW_C2H_CMD_C2HFEEDBACK_DTM_TX_STATISTICS_RPT: + break; + + default: + break; + } + } + break; + + case HAL_FW_C2H_CMD_C2HDBG: + RT_TRACE(COMP_CMD, "rtl8192se_RxCommandPacketHandle(): %x:%x<*** FW_DBG CMD String ***>\n", *pCmdContent, RxCmdLen); + break; + + case HAL_FW_C2H_CMD_BT_State: + { + } + break; + case HAL_FW_C2H_CMD_BT_Service: + { + } + break; + case HAL_FW_C2H_CMD_SurveyDone: + { + rtl8192se_rx_surveydone_cmd(dev); + } + break; + default: + RT_TRACE(COMP_CMD, "rtl8192se_RxCommandPacketHandle(): Receive unhandled C2H CMD (%d)\n", RxCmdElementID); + break; + } + + offset += (C2H_RX_CMD_HDR_LEN + N_BYTE_ALIGMENT(RxCmdLen, 8)); + + if(!RxCmdContinue || ((offset + C2H_RX_CMD_HDR_LEN) > total_length)) + { + break; + } + }while(true); + RT_TRACE(COMP_RECV, "RxCommandPacketHandle8190Pci(): It is a command packet\n"); + + return 1; +} + +void +rtl8192se_InitializeVariables(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if (priv->rf_type == RF_1T1R) + strcpy(priv->nick, "rtl8191SEVA1"); + else if (priv->rf_type == RF_1T2R) + strcpy(priv->nick, "rtl8191SEVA2"); + else + strcpy(priv->nick, "rtl8192SE"); + +#ifdef _ENABLE_SW_BEACON + priv->rtllib->softmac_features = IEEE_SOFTMAC_SCAN | + IEEE_SOFTMAC_ASSOCIATE | IEEE_SOFTMAC_PROBERQ | + IEEE_SOFTMAC_PROBERS | IEEE_SOFTMAC_TX_QUEUE | + IEEE_SOFTMAC_BEACONS; +#else +#ifdef _RTL8192_EXT_PATCH_ + priv->rtllib->softmac_features = IEEE_SOFTMAC_SCAN | + IEEE_SOFTMAC_ASSOCIATE | IEEE_SOFTMAC_PROBERQ | + IEEE_SOFTMAC_PROBERS | IEEE_SOFTMAC_TX_QUEUE /* | + IEEE_SOFTMAC_BEACONS*/; +#else + priv->rtllib->softmac_features = IEEE_SOFTMAC_SCAN | + IEEE_SOFTMAC_ASSOCIATE | IEEE_SOFTMAC_PROBERQ | + IEEE_SOFTMAC_PROBERS | IEEE_SOFTMAC_TX_QUEUE /* | + IEEE_SOFTMAC_BEACONS*/; +#endif +#endif + + priv->rtllib->tx_headroom = 0; + + priv->ShortRetryLimit = 0x30; + priv->LongRetryLimit = 0x30; + + priv->EarlyRxThreshold = 7; + priv->pwrGroupCnt = 0; + + priv->bIgnoreSilentReset = false; + priv->enable_gpio0 = 0; + + priv->TransmitConfig = 0; + + priv->ReceiveConfig = + RCR_APPFCS | RCR_APWRMGT | /*RCR_ADD3 |*/ + RCR_AMF | RCR_ADF | RCR_APP_MIC | RCR_APP_ICV | + RCR_AICV | RCR_ACRC32 | + RCR_AB | RCR_AM | + RCR_APM | + /*RCR_AAP |*/ + RCR_APP_PHYST_STAFF | RCR_APP_PHYST_RXFF | + (priv->EarlyRxThreshold<irq_mask[0] = + (IMR_ROK | IMR_VODOK | IMR_VIDOK | IMR_BEDOK | IMR_BKDOK | \ + IMR_HCCADOK | IMR_MGNTDOK | IMR_COMDOK | IMR_HIGHDOK | \ + IMR_BDOK | IMR_RXCMDOK | /*IMR_TIMEOUT0 |*/ IMR_RDU | IMR_RXFOVW/* | \ + IMR_BcnInt| IMR_TXFOVW | IMR_TBDOK | IMR_TBDER*/); +#else + priv->irq_mask[0] = + (IMR_ROK | IMR_VODOK | IMR_VIDOK | IMR_BEDOK | IMR_BKDOK | \ + IMR_HCCADOK | IMR_MGNTDOK | IMR_COMDOK | IMR_HIGHDOK | \ + IMR_BDOK | IMR_RXCMDOK | /*IMR_TIMEOUT0 |*/ IMR_RDU | IMR_RXFOVW | \ + IMR_BcnInt/*| IMR_TXFOVW*/ /*| IMR_TBDOK | IMR_TBDER*/); +#endif + priv->irq_mask[1] = 0;/* IMR_TBDOK | IMR_TBDER*/ + + + priv->MidHighPwrTHR_L1 = 0x3B; + priv->MidHighPwrTHR_L2 = 0x40; + priv->PwrDomainProtect = false; + + if (!(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){ + if (!priv->scan_cmd) { + priv->scan_cmd = kmalloc(sizeof(H2C_SITESURVEY_PARA) + + RTL_MAX_SCAN_SIZE, GFP_KERNEL); + } + } + + rtl8192se_HalDetectPwrDownMode(dev); +} + +void rtl8192se_EnableInterrupt(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + priv->irq_enabled = 1; + +#ifdef RTL8192CE + write_nic_dword(dev, REG_HIMR, priv->irq_mask[0]&0xFFFFFFFF); +#else + write_nic_dword(dev,INTA_MASK, priv->irq_mask[0]); +#endif + +#ifdef RTL8192SE + write_nic_dword(dev,INTA_MASK+4, priv->irq_mask[1]&0x3F); +#endif + +} + +void rtl8192se_DisableInterrupt(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + +#ifdef RTL8192CE + write_nic_dword(dev, REG_HIMR, IMR8190_DISABLED); +#else + write_nic_dword(dev,INTA_MASK,0); +#endif + +#ifdef RTL8192SE + write_nic_dword(dev,INTA_MASK + 4,0); +#endif + priv->irq_enabled = 0; +} + +void rtl8192se_ClearInterrupt(struct net_device *dev) +{ + u32 tmp = 0; +#ifdef RTL8192CE + tmp = read_nic_dword(dev, REG_HISR); + write_nic_dword(dev, REG_HISR, tmp); +#else + tmp = read_nic_dword(dev, ISR); + write_nic_dword(dev, ISR, tmp); +#endif + +#ifdef RTL8192SE + tmp = read_nic_dword(dev, ISR+4); + write_nic_dword(dev, ISR+4, tmp); +#endif +} + +void rtl8192se_enable_rx(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + write_nic_dword(dev, RDQDA,priv->rx_ring_dma[RX_MPDU_QUEUE]); +#ifdef CONFIG_RX_CMD + write_nic_dword(dev, RCDA, priv->rx_ring_dma[RX_CMD_QUEUE]); +#endif +} + +u32 TX_DESC_BASE[] = {TBKDA, TBEDA, TVIDA, TVODA, TBDA, TCDA, TMDA, THPDA, HDA}; +void rtl8192se_enable_tx(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u32 i; + + for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) + write_nic_dword(dev, TX_DESC_BASE[i], priv->tx_ring[i].dma); +} + + +void rtl8192se_beacon_disable(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u32 reg; + +#ifdef RTL8192CE + reg = read_nic_dword(priv->rtllib->dev,REG_HIMR); + + reg &= ~(IMR_BcnInt | IMR_BcnInt | IMR_TBDOK | IMR_TBDER); + write_nic_dword(priv->rtllib->dev, REG_HIMR, reg); +#else + reg = read_nic_dword(priv->rtllib->dev,INTA_MASK); + + reg &= ~(IMR_BcnInt | IMR_BcnInt | IMR_TBDOK | IMR_TBDER); + write_nic_dword(priv->rtllib->dev, INTA_MASK, reg); +#endif +} + +void rtl8192se_interrupt_recognized(struct net_device *dev, u32 *p_inta, u32 *p_intb) +{ +#ifdef RTL8192SE + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + *p_inta = read_nic_dword(dev, ISR) & priv->irq_mask[0]; +#else + *p_inta = read_nic_dword(dev, ISR) ; +#endif + write_nic_dword(dev,ISR,*p_inta); +#ifdef RTL8192SE + *p_intb = read_nic_dword(dev, ISR+4); + write_nic_dword(dev, ISR+4, *p_intb); +#endif +} + +bool rtl8192se_HalRxCheckStuck(struct net_device *dev) +{ + + struct r8192_priv *priv = rtllib_priv(dev); + u16 RegRxCounter = (u16)(priv->InterruptLog.nIMR_ROK&0xffff); + bool bStuck = false; + u32 SlotIndex = 0, TotalRxStuckCount = 0; + u8 i; + u8 SilentResetRxSoltNum = 4; + + + SlotIndex = (priv->SilentResetRxSlotIndex++)%SilentResetRxSoltNum; + + if(priv->RxCounter==RegRxCounter) + { + priv->SilentResetRxStuckEvent[SlotIndex] = 1; + + for( i = 0; i < SilentResetRxSoltNum ; i++ ) + TotalRxStuckCount += priv->SilentResetRxStuckEvent[i]; + + if(TotalRxStuckCount == SilentResetRxSoltNum) + { + bStuck = true; + for( i = 0; i < SilentResetRxSoltNum ; i++ ) + TotalRxStuckCount += priv->SilentResetRxStuckEvent[i]; + } + + + } else { + priv->SilentResetRxStuckEvent[SlotIndex] = 0; + } + + priv->RxCounter = RegRxCounter; + + return bStuck; +} + +bool rtl8192se_HalTxCheckStuck(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + bool bStuck = false; +#if defined(RTL8192E) || defined(RTL8190P) + u16 RegTxCounter = read_nic_word(dev, 0x128); +#elif defined (RTL8192SE) || defined (RTL8192CE) + u16 RegTxCounter = read_nic_word(dev, 0x366); +#else + u16 RegTxCounter = priv->TxCounter + 1; + WARN_ON(1); +#endif + + RT_TRACE(COMP_RESET, "%s():RegTxCounter is %d,TxCounter is %d\n", + __FUNCTION__,RegTxCounter,priv->TxCounter); + + if(priv->TxCounter == RegTxCounter) + bStuck = true; + + priv->TxCounter = RegTxCounter; + + return bStuck; +} + +bool rtl8192se_GetNmodeSupportBySecCfg(struct net_device *dev) +{ +#ifdef RTL8192SE + return true; +#else + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + if (ieee->rtllib_ap_sec_type && + (ieee->rtllib_ap_sec_type(priv->rtllib)&(SEC_ALG_WEP|SEC_ALG_TKIP))) { + return false; + } else { + return true; + } +#endif +} + +bool rtl8192se_GetHalfNmodeSupportByAPs(struct net_device* dev) +{ +#ifdef RTL8192SE + return false; +#else + bool Reval; + struct r8192_priv* priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + + if(ieee->bHalfWirelessN24GMode == true) + Reval = true; + else + Reval = false; + + return Reval; +#endif +} + +u8 rtl8192se_QueryIsShort(u8 TxHT, u8 TxRate, cb_desc *tcb_desc) +{ + u8 tmp_Short; + + tmp_Short = (TxHT==1)?((tcb_desc->bUseShortGI)?1:0):((tcb_desc->bUseShortPreamble)?1:0); +#if defined RTL8192SE || defined RTL8192CE + if(TxHT==1 && TxRate != DESC92S_RATEMCS15) +#elif defined RTL8192E || defined RTL8190P + if(TxHT==1 && TxRate != DESC90_RATEMCS15) +#endif + tmp_Short = 0; + + return tmp_Short; +} + +void +ActUpdateChannelAccessSetting( + struct net_device* dev, + WIRELESS_MODE WirelessMode, + PCHANNEL_ACCESS_SETTING ChnlAccessSetting + ) +{ + struct r8192_priv* priv = rtllib_priv(dev); + +#if 0 + WIRELESS_MODE Tmp_WirelessMode = WirelessMode; + + switch( Tmp_WirelessMode ) + { + case WIRELESS_MODE_A: + ChnlAccessSetting->SlotTimeTimer = 9; + ChnlAccessSetting->CWminIndex = 4; + ChnlAccessSetting->CWmaxIndex = 10; + break; + case WIRELESS_MODE_B: + ChnlAccessSetting->SlotTimeTimer = 20; + ChnlAccessSetting->CWminIndex = 5; + ChnlAccessSetting->CWmaxIndex = 10; + break; + case WIRELESS_MODE_G: + ChnlAccessSetting->SlotTimeTimer = 20; + ChnlAccessSetting->CWminIndex = 4; + ChnlAccessSetting->CWmaxIndex = 10; + break; + case WIRELESS_MODE_N_24G: + case WIRELESS_MODE_N_5G: + ChnlAccessSetting->SlotTimeTimer = 9; + ChnlAccessSetting->CWminIndex = 4; + ChnlAccessSetting->CWmaxIndex = 10; + break; + default: + RT_ASSERT(false, ("ActUpdateChannelAccessSetting(): Wireless mode is not defined!\n")); + break; + } + +#endif + + { + u16 SIFS_Timer; + + if(WirelessMode == WIRELESS_MODE_G) + SIFS_Timer = 0x0e0e; + else + SIFS_Timer = 0x1010; + + SIFS_Timer = 0x0e0e; + priv->rtllib->SetHwRegHandler( dev, HW_VAR_SIFS, (u8*)&SIFS_Timer); + + } + +} \ No newline at end of file --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.c @@ -0,0 +1,5610 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +/*Created on 2009/ 7/23, 5: 4*/ + +#ifdef RTL8192SE +#include "r8192S_hwimg.h" + +u8 Rtl8192SEFwImgArray[ImgArrayLength] = { +0x92,0x81,0x31,0x70,0x30,0x00,0x00,0x00,0x08,0x84,0x00,0x00,0x48,0xa4,0x00,0x00, +0x30,0x00,0x00,0x00,0xc0,0xa2,0x00,0x00,0x31,0x00,0x02,0x00,0x07,0x20,0x16,0x06, +0x92,0x81,0x01,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x7f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x25,0xb0,0x1a,0x3c,0x80,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c,0x80,0x00,0x7b,0x37, +0x00,0x00,0x5b,0xaf,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c, +0x80,0x00,0x7b,0x37,0x00,0x00,0x5b,0xaf,0x00,0x80,0x1a,0x3c,0x44,0x7c,0x5a,0x27, +0x08,0x00,0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x04,0x00,0xa1,0xaf,0x08,0x00,0xa2,0xaf,0x0c,0x00,0xa3,0xaf,0x10,0x00,0xa4,0xaf, +0x14,0x00,0xa5,0xaf,0x18,0x00,0xa6,0xaf,0x1c,0x00,0xa7,0xaf,0x20,0x00,0xa8,0xaf, +0x24,0x00,0xa9,0xaf,0x28,0x00,0xaa,0xaf,0x2c,0x00,0xab,0xaf,0x30,0x00,0xac,0xaf, +0x34,0x00,0xad,0xaf,0x38,0x00,0xae,0xaf,0x3c,0x00,0xaf,0xaf,0x12,0x40,0x00,0x00, +0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0xb0,0xaf,0x44,0x00,0xb1,0xaf, +0x48,0x00,0xb2,0xaf,0x4c,0x00,0xb3,0xaf,0x50,0x00,0xb4,0xaf,0x54,0x00,0xb5,0xaf, +0x58,0x00,0xb6,0xaf,0x5c,0x00,0xb7,0xaf,0x60,0x00,0xb8,0xaf,0x64,0x00,0xb9,0xaf, +0x68,0x00,0xbc,0xaf,0x6c,0x00,0xbd,0xaf,0x70,0x00,0xbe,0xaf,0x74,0x00,0xbf,0xaf, +0x78,0x00,0xa8,0xaf,0x7c,0x00,0xa9,0xaf,0x80,0x00,0xaa,0xaf,0xac,0x1e,0x00,0x08, +0x21,0x20,0xa0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x25,0xb0,0x06,0x3c,0x00,0x80,0x02,0x3c,0xe8,0xff,0xbd,0x27,0x18,0x03,0xc3,0x34, +0x00,0x03,0x42,0x24,0x14,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x42,0xb0,0x03,0x3c, +0x03,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x02,0x80,0x0a,0x3c,0x02,0x80,0x10,0x3c, +0xff,0x00,0x42,0x30,0x00,0x46,0x02,0x00,0x10,0x00,0x42,0x30,0x13,0x00,0x40,0x10, +0x03,0x46,0x08,0x00,0x24,0x7e,0x42,0x8d,0x68,0x15,0x05,0x26,0xe0,0x63,0xa4,0x94, +0x01,0x00,0x47,0x24,0x10,0x00,0x02,0x24,0xb0,0x03,0xc9,0x34,0x00,0x00,0x62,0xa0, +0x07,0x00,0x80,0x10,0x1c,0x03,0xc6,0x34,0xe4,0x63,0xa2,0x94,0xe0,0x63,0xa0,0xa4, +0xe4,0x63,0xa0,0xa4,0x00,0x00,0x04,0x24,0x00,0x00,0xc2,0xac,0x00,0x00,0x20,0xad, +0x01,0x00,0x82,0x24,0x24,0x7e,0x47,0xad,0xe0,0x63,0xa2,0xa4,0x12,0x00,0x00,0x05, +0x42,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x68,0x15,0x04,0x26,0x0c,0x4b,0x83,0x94,0x08,0x4b,0x85,0x94, +0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c, +0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34,0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4, +0x08,0x00,0xe0,0x03,0x08,0x4b,0x83,0xa4,0x80,0xff,0x03,0x24,0x03,0x00,0x42,0x34, +0x00,0x00,0x43,0xa0,0x64,0x10,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x68,0x15,0x04,0x26, +0x0c,0x4b,0x83,0x94,0x08,0x4b,0x85,0x94,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f, +0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c,0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34, +0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4,0x08,0x00,0xe0,0x03,0x08,0x4b,0x83,0xa4, +0xff,0x00,0x84,0x30,0x0b,0x00,0x82,0x2c,0xff,0xff,0xe7,0x30,0x10,0x00,0xa8,0x93, +0x19,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00, +0x58,0x9f,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00, +0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x43,0xb0,0x02,0x3c,0x78,0x00,0x44,0x34, +0x07,0x00,0xe2,0x30,0x00,0x00,0x85,0xac,0x04,0x00,0x86,0xac,0x04,0x00,0x40,0x18, +0x00,0x00,0x00,0x00,0xf8,0xff,0xe2,0x30,0x08,0x00,0x42,0x24,0xff,0xff,0x47,0x30, +0x21,0x10,0xe8,0x00,0x00,0x80,0x03,0x3c,0x08,0x00,0x82,0xac,0x25,0x10,0x43,0x00, +0x08,0x00,0x82,0xac,0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x6c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c, +0x20,0x01,0x00,0x08,0x60,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08, +0x54,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x48,0x00,0x44,0x34, +0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x3c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c, +0x20,0x01,0x00,0x08,0x30,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08, +0x24,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x18,0x00,0x44,0x34, +0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x0c,0x00,0x44,0x34,0x20,0x01,0x00,0x08, +0x43,0xb0,0x04,0x3c,0x01,0x00,0x02,0x24,0x25,0xb0,0x03,0x3c,0x04,0x20,0x82,0x00, +0x18,0x03,0x67,0x34,0x00,0x80,0x02,0x3c,0x43,0xb0,0x03,0x3c,0x34,0x05,0x46,0x24, +0x88,0x00,0x65,0x34,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0xff,0x42,0x30, +0x05,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x00,0x00,0xe6,0xac, +0x00,0x00,0xa2,0x94,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x30,0x24,0x10,0x44,0x00, +0xf4,0xff,0x40,0x1c,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x25,0xb0,0x08,0x3c,0x00,0x80,0x02,0x3c,0xc8,0xff,0xbd,0x27,0x18,0x03,0x03,0x35, +0x90,0x05,0x42,0x24,0x00,0x00,0x62,0xac,0x30,0x00,0xb6,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,0x34,0x00,0xbf,0xaf,0x2c,0x00,0xb5,0xaf, +0x20,0x00,0xb2,0xaf,0x18,0x00,0xb0,0xaf,0x0c,0x00,0xf2,0x84,0x08,0x00,0xf5,0x8c, +0xff,0x00,0xc6,0x30,0x00,0x01,0x02,0x24,0x23,0x10,0x46,0x00,0xff,0xff,0x51,0x30, +0xd0,0x03,0x08,0x35,0xff,0x00,0x96,0x30,0x00,0x00,0x12,0xad,0x21,0xa0,0xa0,0x00, +0x21,0x30,0xc5,0x00,0x00,0x00,0x15,0xad,0x21,0x20,0xc0,0x02,0x21,0x28,0xa0,0x02, +0x21,0x38,0x20,0x02,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x23,0x18,0x51,0x02, +0xff,0xff,0x82,0x32,0x00,0x94,0x03,0x00,0x03,0x94,0x12,0x00,0xa6,0x01,0x00,0x08, +0x02,0x9a,0x02,0x00,0x28,0xb0,0x03,0x3c,0xc0,0x10,0x13,0x00,0x21,0x10,0x43,0x00, +0x00,0x00,0x44,0x90,0x25,0xb0,0x10,0x3c,0x20,0x10,0x02,0x3c,0xff,0x00,0x93,0x30, +0x00,0x22,0x13,0x00,0xff,0xff,0x43,0x32,0x01,0x01,0x45,0x2a,0x21,0xa0,0x82,0x00, +0x21,0xa8,0xb1,0x02,0xd0,0x03,0x02,0x36,0x00,0x01,0x11,0x24,0x0b,0x88,0x65,0x00, +0x21,0x20,0xc0,0x02,0x00,0x00,0x53,0xac,0x4d,0x01,0x00,0x0c,0xb0,0x03,0x10,0x36, +0x21,0x30,0x80,0x02,0x21,0x20,0xc0,0x02,0x21,0x28,0xa0,0x02,0x21,0x38,0x20,0x02, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x23,0x18,0x51,0x02,0x00,0x94,0x03,0x00, +0x03,0x94,0x12,0x00,0x00,0x00,0x12,0xae,0xe2,0xff,0x40,0x1e,0x00,0x00,0x00,0x00, +0x34,0x00,0xbf,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0xc8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c, +0x25,0xb0,0x04,0x3c,0x20,0x00,0xb2,0xaf,0x68,0x15,0x52,0x24,0x00,0x80,0x02,0x3c, +0x18,0x03,0x83,0x34,0xc8,0x06,0x42,0x24,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf, +0x30,0x00,0xbf,0xaf,0x2c,0x00,0xb5,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x00,0x00,0x62,0xac,0xb0,0x03,0x93,0x34,0x21,0xa0,0x40,0x02,0xb4,0x64,0x42,0x8e, +0x20,0x65,0x50,0x8e,0x21,0x20,0x00,0x00,0x00,0x00,0x62,0xae,0xb8,0x64,0x42,0xae, +0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,0x20,0x65,0x44,0x8e, +0x24,0x65,0x43,0x8e,0x20,0x00,0x84,0x24,0x3f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00, +0x0a,0x18,0x82,0x00,0x20,0x65,0x43,0xae,0x20,0x65,0x85,0x8e,0x00,0x00,0x00,0x00, +0x00,0x00,0x65,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02, +0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,0xff,0x00,0x15,0x24,0x21,0x20,0x00,0x00, +0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0x20,0x10,0x02,0x3c,0x20,0x00,0x07,0x24, +0x00,0x1a,0x11,0x00,0x21,0x18,0x62,0x00,0x05,0x00,0x35,0x12,0x21,0x30,0x60,0x00, +0x68,0x64,0x91,0xa2,0xb4,0x64,0x83,0xae,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x00,0x00,0x05,0x96,0x18,0x64,0x83,0x8e,0x2a,0xb0,0x02,0x3c,0x27,0x20,0x05,0x00, +0x01,0x00,0x46,0x34,0x21,0x10,0x65,0x00,0x2b,0x18,0x64,0x00,0x02,0x00,0x60,0x10, +0x00,0x00,0x00,0x00,0x18,0x64,0x82,0xae,0x04,0x00,0x04,0x8e,0x08,0x00,0x03,0x8e, +0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0x84,0x30,0x24,0x18,0x62,0x00, +0x00,0x26,0x04,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x00,0x40,0x04,0x3c,0xc0,0xff,0x02,0x24,0x25,0x18,0x64,0x00, +0x24,0x18,0x62,0x00,0x08,0x00,0x03,0xae,0x01,0x00,0x02,0x24,0x02,0x00,0x03,0x24, +0x00,0x00,0xc2,0xa0,0x00,0x00,0xc3,0xa0,0xbc,0xff,0x35,0x16,0x41,0xb0,0x03,0x3c, +0xfc,0x4a,0x82,0x8e,0x30,0x00,0xbf,0x8f,0x00,0x38,0x42,0x34,0x00,0x00,0x62,0xac, +0x2c,0x00,0xb5,0x8f,0xfc,0x4a,0x82,0xae,0x24,0x00,0xb3,0x8f,0x28,0x00,0xb4,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x38,0x00,0xbd,0x27,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,0xc0,0xff,0xbd,0x27, +0x18,0x03,0x83,0x34,0x54,0x08,0x42,0x24,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf, +0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x02,0x80,0x02,0x3c,0x68,0x15,0x52,0x24,0xb0,0x03,0x95,0x34,0x39,0x02,0x00,0x08, +0x21,0xf0,0x40,0x02,0x08,0x00,0x04,0xae,0x76,0x4b,0x82,0x92,0x00,0x00,0x00,0x00, +0x45,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c,0x09,0x00,0x42,0x34,0x01,0x00,0x03,0x24, +0x02,0x00,0x04,0x24,0x00,0x00,0x43,0xa0,0x00,0x00,0x44,0xa0,0x5a,0x00,0x36,0x12, +0x00,0x00,0x00,0x00,0xcc,0x64,0x42,0x8e,0x38,0x65,0x53,0x8e,0x01,0x00,0x04,0x24, +0x00,0x00,0xa2,0xae,0xd0,0x64,0x42,0xae,0x00,0x00,0xb3,0xae,0x4d,0x01,0x00,0x0c, +0x21,0xa0,0xc0,0x03,0x38,0x65,0x44,0x8e,0x3c,0x65,0x43,0x8e,0x20,0x00,0x84,0x24, +0x3f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x38,0x65,0x43,0xae, +0x38,0x65,0xc5,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0xa5,0xae,0x02,0x80,0x17,0x3c, +0xff,0xff,0x62,0x32,0x25,0x80,0x57,0x00,0x00,0x00,0xb0,0xae,0x0c,0x00,0x02,0x92, +0xff,0x00,0x16,0x24,0x01,0x00,0x04,0x24,0x00,0x00,0xa2,0xae,0x0c,0x00,0x11,0x92, +0x20,0x10,0x02,0x3c,0x20,0x00,0x07,0x24,0x00,0x1a,0x11,0x00,0x21,0x18,0x62,0x00, +0x05,0x00,0x36,0x12,0x21,0x30,0x60,0x00,0xcc,0x64,0xc3,0xaf,0x70,0x64,0xd1,0xa3, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x04,0x00,0x04,0x8e,0x08,0x00,0x03,0x8e, +0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0x84,0x30,0x24,0x18,0x62,0x00, +0x00,0x26,0x04,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0xc0,0xff,0x05,0x24, +0x82,0x11,0x03,0x00,0x24,0x20,0x65,0x00,0x01,0x00,0x42,0x30,0xbd,0xff,0x40,0x10, +0x04,0x00,0x84,0x34,0x08,0x00,0x03,0xae,0x76,0x4b,0x82,0x92,0x00,0x00,0x00,0x00, +0xbd,0xff,0x40,0x14,0x2a,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x01,0x00,0x03,0x24,0x76,0x4b,0x83,0xa2, +0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30, +0x25,0x10,0x57,0x00,0x02,0x00,0x43,0x94,0x00,0x00,0x00,0x00,0xff,0xc0,0x64,0x30, +0x00,0xc0,0x84,0x34,0xe3,0x18,0x00,0x0c,0x77,0x4b,0x83,0xa2,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2a,0xb0,0x02,0x3c,0x09,0x00,0x42,0x34, +0x01,0x00,0x03,0x24,0x02,0x00,0x04,0x24,0x00,0x00,0x43,0xa0,0x00,0x00,0x44,0xa0, +0xa8,0xff,0x36,0x16,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x68,0x15,0x62,0x24, +0xfc,0x4a,0x43,0x8c,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x38,0x63,0x34, +0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x83,0xac,0x08,0x00,0xe0,0x03, +0xfc,0x4a,0x43,0xac,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,0xc0,0xff,0xbd,0x27, +0x18,0x03,0x83,0x34,0xa4,0x0a,0x42,0x24,0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf, +0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf, +0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x16,0x3c, +0x68,0x15,0xd3,0x26,0xb0,0x03,0x94,0x34,0x02,0x80,0x15,0x3c,0x21,0xb8,0x60,0x02, +0xc0,0x64,0x62,0x8e,0x2c,0x65,0x70,0x8e,0x01,0x00,0x04,0x24,0x00,0x00,0x82,0xae, +0xc4,0x64,0x62,0xae,0x00,0x00,0x90,0xae,0x4d,0x01,0x00,0x0c,0x21,0x88,0xe0,0x02, +0x2c,0x65,0x64,0x8e,0x30,0x65,0x63,0x8e,0x20,0x00,0x84,0x24,0x3f,0x00,0x62,0x24, +0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x2c,0x65,0x63,0xae,0x2c,0x65,0xe5,0x8e, +0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32, +0x25,0x80,0x02,0x02,0x00,0x00,0x90,0xae,0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00, +0x00,0x00,0x82,0xae,0x0c,0x00,0x12,0x92,0xff,0x00,0x02,0x24,0x0a,0x00,0x42,0x12, +0x00,0x1a,0x12,0x00,0x20,0x10,0x02,0x3c,0x21,0x18,0x62,0x00,0xc0,0x64,0xe3,0xae, +0x6c,0x64,0xf2,0xa2,0x21,0x30,0x60,0x00,0x01,0x00,0x04,0x24,0x20,0x00,0x07,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0xf8,0x63,0x22,0x8e,0x04,0x00,0x03,0x8e, +0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x5d,0x00,0x40,0x14,0x1f,0x00,0x64,0x30, +0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00, +0x00,0x26,0x04,0x00,0x25,0x28,0x44,0x00,0x08,0x00,0x05,0xae,0xc2,0x11,0x05,0x00, +0x01,0x00,0x43,0x30,0x47,0x00,0x60,0x14,0x01,0x00,0x02,0x24,0x00,0x00,0x04,0x96, +0x1c,0x64,0x23,0x8e,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0x05,0x00,0x40,0x10, +0xff,0xdf,0x02,0x3c,0x21,0x10,0x64,0x00,0x1c,0x64,0x22,0xae,0x08,0x00,0x05,0x8e, +0xff,0xdf,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x28,0xa2,0x00,0x00,0x40,0x03,0x3c, +0x25,0x28,0xa3,0x00,0x82,0x11,0x05,0x00,0x01,0x00,0x42,0x30,0x03,0x00,0x40,0x14, +0xc0,0xff,0x02,0x24,0x24,0x10,0xa2,0x00,0x04,0x00,0x45,0x34,0x08,0x00,0x05,0xae, +0x68,0x15,0xc2,0x26,0x76,0x4b,0x44,0x90,0x01,0x00,0x03,0x24,0x3b,0x00,0x83,0x10, +0x7f,0xff,0x02,0x24,0x24,0x10,0xa2,0x00,0x08,0x00,0x02,0xae,0x68,0x15,0xc5,0x26, +0xc4,0x64,0xa2,0x8c,0x20,0x00,0x10,0x8e,0x00,0x80,0x03,0x3c,0x25,0x10,0x43,0x00, +0x2a,0xb0,0x03,0x3c,0x08,0x00,0x50,0xac,0x05,0x00,0x70,0x34,0x01,0x00,0x02,0x24, +0x02,0x00,0x03,0x24,0x00,0x00,0x02,0xa2,0x00,0x00,0x03,0xa2,0x2a,0x7e,0xa2,0x96, +0xff,0x00,0x03,0x24,0x01,0x00,0x42,0x24,0x2a,0x7e,0xa2,0xa6,0x2a,0x7e,0xa4,0x96, +0x25,0xb0,0x02,0x3c,0x66,0x03,0x42,0x34,0x00,0x00,0x44,0xa4,0x98,0xff,0x43,0x16, +0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x38,0x42,0x34, +0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x62,0xac,0x08,0x00,0xe0,0x03, +0xfc,0x4a,0xa2,0xac,0xc3,0xff,0x62,0x14,0xff,0xdf,0x02,0x3c,0x00,0x00,0x04,0x96, +0x18,0x64,0x23,0x8e,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0xbd,0xff,0x40,0x10, +0xff,0xdf,0x02,0x3c,0x21,0x10,0x64,0x00,0xff,0x02,0x00,0x08,0x18,0x64,0x22,0xae, +0x08,0x00,0x05,0x8e,0xf4,0x02,0x00,0x08,0xc2,0x11,0x05,0x00,0x80,0x00,0xa5,0x34, +0x13,0x03,0x00,0x08,0x08,0x00,0x05,0xae,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf, +0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x02,0x80,0x06,0x3c,0xdc,0x7e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x18,0x03,0x42,0x34,0x38,0x0d,0x63,0x24,0x40,0x00,0xa4,0x30,0x00,0x00,0x43,0xac, +0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0x7f,0x00,0xa2,0x30,0xbf,0x00,0xa2,0x30, +0x01,0x00,0x16,0x24,0xdc,0x7e,0xc2,0xa0,0xdc,0x7e,0xc2,0x90,0x25,0xb0,0x04,0x3c, +0x88,0x02,0x83,0x34,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x02,0x80,0x15,0x3c,0x68,0x15,0xb2,0x26,0xb0,0x03,0x93,0x34, +0x02,0x80,0x14,0x3c,0xc0,0x03,0x00,0x08,0x21,0xb8,0x40,0x02,0x4c,0x64,0xf1,0xa2, +0x68,0x15,0xa2,0x26,0x84,0x64,0x46,0x8c,0xf0,0x64,0x45,0x8c,0x03,0x00,0x04,0x24, +0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x68,0x15,0xa5,0x26, +0xf8,0x63,0xa2,0x8c,0x04,0x00,0x03,0x8e,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30, +0x08,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c, +0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,0x00,0x26,0x04,0x00,0x25,0x18,0x44,0x00, +0x08,0x00,0x03,0xae,0x00,0x00,0x04,0x96,0x1c,0x64,0xa3,0x8c,0x27,0x10,0x04,0x00, +0x2b,0x10,0x62,0x00,0x02,0x00,0x40,0x10,0x21,0x10,0x64,0x00,0x1c,0x64,0xa2,0xac, +0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0x53,0x00,0x80,0x04,0x00,0x00,0x00,0x00, +0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30, +0x0c,0x00,0x42,0x28,0x06,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x96, +0x00,0x00,0x00,0x00,0xfd,0x0f,0x42,0x28,0x44,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x18,0x43,0x00, +0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x08,0x00,0x03,0xae,0x82,0x11,0x03,0x00, +0x01,0x00,0x42,0x30,0x05,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c,0xc0,0xff,0x02,0x24, +0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,0x08,0x00,0x02,0xae,0x0d,0x00,0xe2,0x34, +0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24, +0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0x2a,0x7e,0x84,0x96,0x25,0xb0,0x06,0x3c, +0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0x2a,0x7e,0x84,0xa6,0x2a,0x7e,0x82,0x96, +0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x33,0x00,0x23,0x12,0x00,0x00,0x00,0x00, +0x84,0x64,0x42,0x8e,0xf0,0x64,0x50,0x8e,0x03,0x00,0x04,0x24,0x00,0x00,0x62,0xae, +0x88,0x64,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00, +0xf0,0x64,0x44,0x8e,0xf4,0x64,0x43,0x8e,0x20,0x00,0x84,0x24,0x3f,0x00,0x62,0x24, +0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0xf0,0x64,0x43,0xae,0xf0,0x64,0xe2,0x8e, +0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32, +0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00, +0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,0x9f,0xff,0x22,0x12, +0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,0x93,0xff,0xc0,0x16, +0x84,0x64,0xe2,0xae,0x74,0x03,0x00,0x08,0x48,0x64,0xf1,0xa2,0x08,0x00,0x03,0x8e, +0xa8,0x03,0x00,0x08,0x82,0x11,0x03,0x00,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00, +0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,0xab,0xff,0x40,0x14, +0x42,0x12,0x03,0x00,0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00, +0x96,0x03,0x00,0x08,0x10,0x00,0x02,0xae,0x20,0x00,0xc0,0x12,0x68,0x15,0xa2,0x26, +0x4c,0x64,0x43,0x90,0x41,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0, +0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa4,0x8c,0x01,0x00,0x02,0x3c,0x38,0x00,0xbf,0x8f, +0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x00,0x80,0x42,0x34,0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27, +0x00,0x00,0x64,0xac,0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa4,0xac,0x48,0x64,0x43,0x90, +0x40,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x68,0x15,0xa5,0x26, +0xfc,0x4a,0xa4,0x8c,0x01,0x00,0x02,0x3c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x80,0x42,0x34, +0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x64,0xac, +0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa4,0xac,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf, +0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x02,0x80,0x06,0x3c,0xdc,0x7e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x18,0x03,0x42,0x34,0xc8,0x10,0x63,0x24,0x10,0x00,0xa4,0x30,0x00,0x00,0x43,0xac, +0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0xdf,0x00,0xa2,0x30,0xef,0x00,0xa2,0x30, +0x01,0x00,0x16,0x24,0xdc,0x7e,0xc2,0xa0,0xdc,0x7e,0xc3,0x90,0x25,0xb0,0x02,0x3c, +0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x15,0x3c,0x68,0x15,0xb2,0x26, +0x21,0x98,0x40,0x00,0x02,0x80,0x14,0x3c,0xa5,0x04,0x00,0x08,0x21,0xb8,0x40,0x02, +0x54,0x64,0xf1,0xa2,0x68,0x15,0xa2,0x26,0x90,0x64,0x46,0x8c,0xfc,0x64,0x45,0x8c, +0x04,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x68,0x15,0xa5,0x26,0xf8,0x63,0xa2,0x8c,0x04,0x00,0x03,0x8e,0x42,0x10,0x02,0x00, +0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,0x08,0x00,0x02,0x8e, +0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,0x00,0x26,0x04,0x00, +0x25,0x18,0x44,0x00,0x08,0x00,0x03,0xae,0x00,0x00,0x04,0x96,0x1c,0x64,0xa3,0x8c, +0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0x02,0x00,0x40,0x10,0x21,0x10,0x64,0x00, +0x1c,0x64,0xa2,0xac,0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0x53,0x00,0x80,0x04, +0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00, +0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x06,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x00,0x00,0x02,0x96,0x00,0x00,0x00,0x00,0xfd,0x0f,0x42,0x28,0x44,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34, +0x24,0x18,0x43,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x08,0x00,0x03,0xae, +0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30,0x05,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c, +0xc0,0xff,0x02,0x24,0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,0x08,0x00,0x02,0xae, +0x15,0x00,0xe2,0x34,0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24, +0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0x2a,0x7e,0x84,0x96, +0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0x2a,0x7e,0x84,0xa6, +0x2a,0x7e,0x82,0x96,0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x33,0x00,0x23,0x12, +0x00,0x00,0x00,0x00,0x90,0x64,0x42,0x8e,0xfc,0x64,0x50,0x8e,0x04,0x00,0x04,0x24, +0x00,0x00,0x62,0xae,0x94,0x64,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c, +0x00,0x00,0x00,0x00,0xfc,0x64,0x44,0x8e,0x00,0x65,0x43,0x8e,0x20,0x00,0x84,0x24, +0x3f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0xfc,0x64,0x43,0xae, +0xfc,0x64,0xe2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c, +0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92, +0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24, +0x9f,0xff,0x22,0x12,0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00, +0x93,0xff,0xc0,0x16,0x90,0x64,0xe2,0xae,0x59,0x04,0x00,0x08,0x50,0x64,0xf1,0xa2, +0x08,0x00,0x03,0x8e,0x8d,0x04,0x00,0x08,0x82,0x11,0x03,0x00,0x14,0x00,0x03,0x8e, +0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28, +0xab,0xff,0x40,0x14,0x42,0x12,0x03,0x00,0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x10,0x82,0x00,0x7b,0x04,0x00,0x08,0x10,0x00,0x02,0xae,0x1f,0x00,0xc0,0x12, +0x68,0x15,0xa2,0x26,0x54,0x64,0x43,0x90,0x43,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34, +0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f, +0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x06,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27, +0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa2,0xac,0x50,0x64,0x43,0x90, +0x42,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x68,0x15,0xa5,0x26, +0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f, +0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f, +0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x06,0x00,0x03,0x3c,0x25,0x10,0x43,0x00, +0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03, +0xfc,0x4a,0xa2,0xac,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf,0x38,0x00,0xbf,0xaf, +0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf, +0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x02,0x80,0x06,0x3c, +0xdc,0x7e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34, +0x54,0x14,0x63,0x24,0x01,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,0x21,0xb0,0x00,0x00, +0x03,0x00,0x80,0x10,0xf7,0x00,0xa2,0x30,0xfe,0x00,0xa2,0x30,0x01,0x00,0x16,0x24, +0xdc,0x7e,0xc2,0xa0,0xdc,0x7e,0xc3,0x90,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34, +0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x02,0x80,0x15,0x3c,0x68,0x15,0xb2,0x26,0x21,0x98,0x40,0x00,0x02,0x80,0x14,0x3c, +0x5c,0x05,0x00,0x08,0x21,0xb8,0x40,0x02,0x00,0x00,0x02,0x96,0x00,0x00,0x00,0x00, +0xfd,0x0f,0x42,0x28,0x67,0x00,0x40,0x10,0x00,0x20,0x02,0x3c,0x08,0x00,0x03,0x8e, +0x00,0x00,0x00,0x00,0x25,0x18,0x62,0x00,0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30, +0x6b,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c,0xc0,0xff,0x02,0x24,0x24,0x10,0x62,0x00, +0x04,0x00,0x42,0x34,0x2a,0xb0,0x07,0x3c,0x08,0x00,0x02,0xae,0x1d,0x00,0xe2,0x34, +0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24, +0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0x2a,0x7e,0x84,0x96,0x25,0xb0,0x06,0x3c, +0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0x2a,0x7e,0x84,0xa6,0x2a,0x7e,0x82,0x96, +0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x67,0x00,0x23,0x12,0x00,0x00,0x00,0x00, +0x9c,0x64,0x42,0x8e,0x08,0x65,0x50,0x8e,0x05,0x00,0x04,0x24,0x00,0x00,0x62,0xae, +0xa0,0x64,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00, +0x08,0x65,0x44,0x8e,0x0c,0x65,0x43,0x8e,0x20,0x00,0x84,0x24,0x3f,0x00,0x62,0x24, +0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x08,0x65,0x43,0xae,0x08,0x65,0xe2,0x8e, +0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32, +0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00, +0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,0x0d,0x00,0x22,0x12, +0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,0x66,0x00,0xc0,0x12, +0x9c,0x64,0xe2,0xae,0x64,0x64,0xf1,0xa2,0x68,0x15,0xa2,0x26,0x9c,0x64,0x46,0x8c, +0x08,0x65,0x45,0x8c,0x05,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c, +0x10,0x00,0xa0,0xaf,0x68,0x15,0xa5,0x26,0xf8,0x63,0xa2,0x8c,0x04,0x00,0x03,0x8e, +0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14,0x1f,0x00,0x64,0x30, +0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00, +0x00,0x26,0x04,0x00,0x25,0x10,0x44,0x00,0x08,0x00,0x02,0xae,0x00,0x00,0x04,0x96, +0x1c,0x64,0xa3,0x8c,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0x02,0x00,0x40,0x10, +0x21,0x10,0x64,0x00,0x1c,0x64,0xa2,0xac,0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00, +0x47,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00, +0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x96,0xff,0x40,0x10, +0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34, +0x24,0x10,0x43,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x44,0x00,0x82,0x11,0x03,0x00, +0x01,0x00,0x42,0x30,0x99,0xff,0x40,0x10,0xc0,0xff,0x02,0x24,0x2a,0xb0,0x07,0x3c, +0x1d,0x00,0xe2,0x34,0x08,0x00,0x03,0xae,0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00, +0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0, +0x2a,0x7e,0x84,0x96,0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24, +0x2a,0x7e,0x84,0xa6,0x2a,0x7e,0x82,0x96,0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4, +0x9b,0xff,0x23,0x16,0x00,0x00,0x00,0x00,0x2d,0x00,0xc0,0x12,0x68,0x15,0xa2,0x26, +0x64,0x64,0x43,0x90,0x45,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0, +0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x18,0x00,0x03,0x3c, +0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac, +0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa2,0xac,0x7e,0x05,0x00,0x08,0x58,0x64,0xf1,0xa2, +0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30, +0x14,0x00,0x42,0x28,0xb7,0xff,0x40,0x14,0x42,0x12,0x03,0x00,0x9f,0xff,0x02,0x3c, +0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,0xa0,0x05,0x00,0x08,0x10,0x00,0x02,0xae, +0x58,0x64,0x43,0x90,0x44,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0, +0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x18,0x00,0x03,0x3c, +0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac, +0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa2,0xac,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf, +0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x02,0x80,0x06,0x3c,0xdc,0x7e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x18,0x03,0x42,0x34,0x38,0x18,0x63,0x24,0x02,0x00,0xa4,0x30,0x00,0x00,0x43,0xac, +0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0xfb,0x00,0xa2,0x30,0xfd,0x00,0xa2,0x30, +0x01,0x00,0x16,0x24,0xdc,0x7e,0xc2,0xa0,0xdc,0x7e,0xc3,0x90,0x25,0xb0,0x02,0x3c, +0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x02,0x80,0x15,0x3c,0x68,0x15,0xb2,0x26,0x21,0x98,0x40,0x00, +0x02,0x80,0x14,0x3c,0x55,0x06,0x00,0x08,0x21,0xb8,0x40,0x02,0x00,0x00,0x02,0x96, +0x00,0x00,0x00,0x00,0xfd,0x0f,0x42,0x28,0x67,0x00,0x40,0x10,0x00,0x20,0x02,0x3c, +0x08,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x25,0x18,0x62,0x00,0x82,0x11,0x03,0x00, +0x01,0x00,0x42,0x30,0x6b,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c,0xc0,0xff,0x02,0x24, +0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,0x2a,0xb0,0x07,0x3c,0x08,0x00,0x02,0xae, +0x25,0x00,0xe2,0x34,0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24, +0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0x2a,0x7e,0x84,0x96, +0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0x2a,0x7e,0x84,0xa6, +0x2a,0x7e,0x82,0x96,0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x67,0x00,0x23,0x12, +0x00,0x00,0x00,0x00,0xa8,0x64,0x42,0x8e,0x14,0x65,0x50,0x8e,0x06,0x00,0x04,0x24, +0x00,0x00,0x62,0xae,0xac,0x64,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c, +0x00,0x00,0x00,0x00,0x14,0x65,0x44,0x8e,0x18,0x65,0x43,0x8e,0x20,0x00,0x84,0x24, +0x3f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x14,0x65,0x43,0xae, +0x14,0x65,0xe2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c, +0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92, +0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24, +0x0d,0x00,0x22,0x12,0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00, +0x66,0x00,0xc0,0x12,0xa8,0x64,0xe2,0xae,0x60,0x64,0xf1,0xa2,0x68,0x15,0xa2,0x26, +0xa8,0x64,0x46,0x8c,0x14,0x65,0x45,0x8c,0x06,0x00,0x04,0x24,0x20,0x00,0x07,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x68,0x15,0xa5,0x26,0xf8,0x63,0xa2,0x8c, +0x04,0x00,0x03,0x8e,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14, +0x1f,0x00,0x64,0x30,0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34, +0x24,0x10,0x43,0x00,0x00,0x26,0x04,0x00,0x25,0x10,0x44,0x00,0x08,0x00,0x02,0xae, +0x00,0x00,0x04,0x96,0x1c,0x64,0xa3,0x8c,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00, +0x02,0x00,0x40,0x10,0x21,0x10,0x64,0x00,0x1c,0x64,0xa2,0xac,0x10,0x00,0x04,0x8e, +0x00,0x00,0x00,0x00,0x47,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e, +0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28, +0x96,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c, +0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x44,0x00, +0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30,0x99,0xff,0x40,0x10,0xc0,0xff,0x02,0x24, +0x2a,0xb0,0x07,0x3c,0x25,0x00,0xe2,0x34,0x08,0x00,0x03,0xae,0x04,0x00,0x43,0x24, +0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0, +0x00,0x00,0x43,0xa0,0x2a,0x7e,0x84,0x96,0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34, +0x01,0x00,0x84,0x24,0x2a,0x7e,0x84,0xa6,0x2a,0x7e,0x82,0x96,0xff,0x00,0x03,0x24, +0x00,0x00,0xa2,0xa4,0x9b,0xff,0x23,0x16,0x00,0x00,0x00,0x00,0x2d,0x00,0xc0,0x12, +0x68,0x15,0xa2,0x26,0x60,0x64,0x43,0x90,0x47,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34, +0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f, +0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x60,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27, +0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa2,0xac,0x77,0x06,0x00,0x08, +0x5c,0x64,0xf1,0xa2,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00, +0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,0xb7,0xff,0x40,0x14,0x42,0x12,0x03,0x00, +0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,0x99,0x06,0x00,0x08, +0x10,0x00,0x02,0xae,0x5c,0x64,0x43,0x90,0x46,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34, +0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f, +0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x60,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27, +0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa2,0xac,0x00,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x1c,0x1c,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x05,0x3c, +0x68,0x15,0xa5,0x24,0x04,0x4b,0xa2,0x8c,0xfc,0x4a,0xa4,0x8c,0x00,0x08,0x03,0x3c, +0x24,0x10,0x43,0x00,0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac, +0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa4,0xac,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c, +0xc0,0xff,0xbd,0x27,0x18,0x03,0x83,0x34,0x78,0x1c,0x42,0x24,0x3c,0x00,0xbf,0xaf, +0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf, +0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x2a,0xb0,0x03,0x3c,0x68,0x15,0x51,0x24, +0xb0,0x03,0x93,0x34,0x2c,0x00,0x77,0x34,0x02,0x80,0x15,0x3c,0x02,0x80,0x16,0x3c, +0x41,0x07,0x00,0x08,0x02,0x80,0x1e,0x3c,0x74,0x64,0x26,0x92,0x44,0x65,0x25,0x8e, +0x00,0x32,0x06,0x00,0x21,0x30,0xc2,0x00,0xd8,0x64,0x26,0xae,0x10,0x01,0x00,0x0c, +0x10,0x00,0xa0,0xaf,0x44,0x65,0x30,0x8e,0x0a,0x00,0x04,0x24,0x21,0x90,0x00,0x00, +0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0xff,0xff,0x10,0x32,0x02,0x80,0x02,0x3c, +0x25,0x80,0x02,0x02,0x0c,0x00,0x05,0x92,0x02,0x00,0x04,0x92,0xff,0x00,0x02,0x24, +0xff,0x00,0xa3,0x30,0x04,0x00,0x62,0x10,0x21,0x80,0x04,0x02,0x00,0x00,0x63,0xae, +0x01,0x00,0x12,0x24,0x74,0x64,0x25,0xa2,0x48,0xa4,0xb0,0xae,0x21,0x28,0x00,0x02, +0x02,0x00,0xa2,0x90,0x08,0x00,0x10,0x26,0x21,0x20,0x00,0x02,0xff,0x00,0x42,0x30, +0x00,0x00,0x62,0xae,0x03,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x7f,0x00,0x63,0x30, +0x00,0x00,0x63,0xae,0x00,0x00,0x72,0xae,0x03,0x00,0xa2,0x90,0x44,0xa4,0xc3,0x92, +0x02,0x00,0xa2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x42,0x30,0x2f,0x00,0x42,0x28, +0x11,0x00,0x40,0x10,0x08,0x00,0x02,0x24,0x03,0x00,0xa2,0x90,0x00,0x00,0x00,0x00, +0x7f,0x00,0x42,0x30,0x44,0xa4,0xc2,0xa2,0x02,0x00,0xa3,0x90,0x02,0x80,0x02,0x3c, +0xf4,0x91,0x42,0x24,0xff,0x00,0x63,0x30,0xc0,0x18,0x03,0x00,0x21,0x18,0x62,0x00, +0x04,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x09,0xf8,0x40,0x00,0x40,0xa4,0xc2,0xaf, +0x21,0xa0,0x40,0x00,0x08,0x00,0x02,0x24,0x0a,0x00,0x04,0x24,0x05,0x00,0x82,0x12, +0x00,0x01,0x07,0x24,0x01,0x00,0x02,0x24,0x02,0x00,0x03,0x24,0x01,0x00,0xe2,0xa2, +0x01,0x00,0xe3,0xa2,0xbc,0xff,0x40,0x16,0x20,0x10,0x02,0x3c,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xfc,0x4a,0x22,0x8e, +0x00,0x04,0x03,0x3c,0x41,0xb0,0x04,0x3c,0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac, +0x3c,0x00,0xbf,0x8f,0xfc,0x4a,0x22,0xae,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x40,0x00,0xbd,0x27,0xc8,0xff,0xbd,0x27,0xff,0xff,0xa8,0x30,0x02,0x80,0x02,0x3c, +0x25,0x40,0x02,0x01,0x30,0x00,0xb6,0xaf,0x20,0x00,0xb2,0xaf,0x34,0x00,0xbf,0xaf, +0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0x00,0x00,0x03,0x8d,0xff,0xff,0xd2,0x30,0x21,0xb0,0xa0,0x00, +0x00,0xc0,0x02,0x24,0x08,0x00,0x45,0x26,0x04,0x00,0x06,0x8d,0x24,0x18,0x62,0x00, +0xff,0x3f,0xa5,0x30,0xf0,0xff,0x02,0x3c,0x25,0x18,0x65,0x00,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0x00,0x80,0x05,0x3c,0x25,0x18,0x65,0x00,0xff,0x01,0xc6,0x34, +0x00,0x00,0x03,0xad,0x04,0x00,0x06,0xad,0x21,0x48,0x80,0x00,0xff,0xff,0xe7,0x30, +0x18,0x00,0x12,0xa5,0x1a,0x00,0x07,0xa1,0x18,0x00,0x03,0x8d,0xff,0x7f,0x02,0x3c, +0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x02,0x80,0x15,0x3c,0x18,0x00,0x03,0xad, +0x68,0x15,0xa5,0x26,0xe2,0x63,0xa3,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x62,0x24, +0xe2,0x63,0xa2,0xa0,0x18,0x00,0x04,0x8d,0xff,0x80,0x02,0x3c,0x20,0x00,0x45,0x26, +0xff,0xff,0x42,0x34,0x7f,0x00,0x63,0x30,0xff,0xff,0xb2,0x30,0x24,0x20,0x82,0x00, +0x00,0x1e,0x03,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x00,0x42,0x34,0x25,0x20,0x83,0x00, +0x07,0x00,0x45,0x32,0x18,0x00,0x04,0xad,0x00,0x00,0x52,0xa4,0x03,0x00,0xa0,0x10, +0xff,0xff,0x42,0x32,0x08,0x00,0x42,0x26,0xff,0xff,0x42,0x30,0x68,0x15,0xb4,0x26, +0xb4,0x65,0x86,0x8e,0xb8,0x65,0x90,0x8e,0xf8,0xff,0x52,0x30,0x21,0x10,0xd2,0x00, +0x2b,0x10,0x02,0x02,0x31,0x00,0x40,0x10,0xff,0x00,0x33,0x31,0x23,0x80,0x06,0x02, +0x21,0x28,0xc0,0x02,0xff,0xff,0x07,0x32,0x01,0x00,0x11,0x24,0x21,0x20,0x60,0x02, +0x10,0x01,0x00,0x0c,0x10,0x00,0xb1,0xaf,0x23,0x18,0x50,0x02,0xff,0xff,0x72,0x30, +0x22,0x10,0x02,0x3c,0x21,0x10,0x42,0x02,0x21,0x20,0x60,0x02,0x4d,0x01,0x00,0x0c, +0xb4,0x65,0x82,0xae,0x21,0x28,0xd0,0x02,0x21,0x38,0x40,0x02,0x21,0x20,0x60,0x02, +0x10,0x00,0xb1,0xaf,0x22,0x10,0x06,0x3c,0x10,0x01,0x00,0x0c,0x68,0x15,0xb1,0x26, +0xb4,0x65,0x23,0x8e,0x25,0xb0,0x10,0x3c,0xb0,0x03,0x02,0x36,0x21,0x20,0x60,0x02, +0x00,0x00,0x43,0xac,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,0xb4,0x65,0x25,0x8e, +0xec,0x00,0x02,0x36,0xbd,0x00,0x04,0x36,0x00,0x00,0x45,0xac,0x00,0x00,0x83,0x90, +0xc2,0x00,0x10,0x36,0x34,0x00,0xbf,0x8f,0x10,0x00,0x63,0x34,0x00,0x00,0x83,0xa0, +0x30,0x00,0xb6,0x8f,0x00,0x00,0x05,0xa6,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x21,0x28,0xc0,0x02, +0x21,0x20,0x60,0x02,0x21,0x38,0x40,0x02,0x01,0x00,0x02,0x24,0x10,0x01,0x00,0x0c, +0x10,0x00,0xa2,0xaf,0xb4,0x65,0x83,0x8e,0x68,0x15,0xb1,0x26,0x25,0xb0,0x10,0x3c, +0x21,0x18,0x72,0x00,0xb4,0x65,0x83,0xae,0xb4,0x65,0x23,0x8e,0xb0,0x03,0x02,0x36, +0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00, +0xb4,0x65,0x25,0x8e,0xec,0x00,0x02,0x36,0xbd,0x00,0x04,0x36,0x00,0x00,0x45,0xac, +0x00,0x00,0x83,0x90,0xc2,0x00,0x10,0x36,0x34,0x00,0xbf,0x8f,0x10,0x00,0x63,0x34, +0x00,0x00,0x83,0xa0,0x30,0x00,0xb6,0x8f,0x00,0x00,0x05,0xa6,0x2c,0x00,0xb5,0x8f, +0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f, +0x18,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27, +0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c,0x14,0x00,0xb1,0xaf,0x18,0x00,0xbf,0xaf, +0x10,0x00,0xb0,0xaf,0xbf,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x21,0x28,0x00,0x00, +0x08,0x00,0x06,0x24,0x04,0x00,0x63,0x2c,0x12,0x00,0x60,0x14,0x21,0x88,0x80,0x00, +0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x02,0x80,0x03,0x3c,0x60,0x7b,0x63,0x24,0x04,0x00,0x64,0x8c,0x00,0x00,0x23,0xae, +0x04,0x00,0x71,0xac,0x00,0x00,0x91,0xac,0x04,0x00,0x24,0xae,0x00,0x60,0x82,0x40, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x08,0x00,0x82,0x94,0x02,0x80,0x04,0x3c,0x58,0x45,0x00,0x0c, +0x25,0x20,0x44,0x00,0x00,0x60,0x10,0x40,0x01,0x00,0x01,0x36,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x08,0x00,0x25,0x8e,0x0c,0x00,0x26,0x96,0x14,0x00,0x27,0x96, +0x95,0x07,0x00,0x0c,0x09,0x00,0x04,0x24,0x04,0x00,0x23,0x8e,0x00,0x00,0x22,0x8e, +0x21,0x20,0x20,0x02,0x00,0x00,0x62,0xac,0x04,0x00,0x43,0xac,0x00,0x00,0x31,0xae, +0x70,0x4f,0x00,0x0c,0x04,0x00,0x31,0xae,0x00,0x60,0x90,0x40,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0x02,0x80,0x02,0x3c,0x68,0x15,0x47,0x24,0xec,0x64,0xe3,0x90,0xff,0xff,0xa5,0x30, +0x09,0x00,0xa3,0x10,0x21,0x20,0xc0,0x00,0x5c,0x65,0xe2,0x8c,0x00,0x00,0x00,0x00, +0x08,0x00,0xc2,0xac,0x66,0x65,0xe3,0x94,0x0e,0x00,0x02,0x24,0x14,0x00,0xc2,0xac, +0x30,0x08,0x00,0x08,0x0c,0x00,0xc3,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x2a,0xb0,0x04,0x3c,0x28,0x00,0x85,0x34,0x03,0x00,0x82,0x90,0x04,0x00,0x84,0x24, +0x05,0x00,0x40,0x14,0x2b,0x18,0xa4,0x00,0xfb,0xff,0x60,0x10,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x10,0x22,0x63,0x24,0x18,0x03,0x42,0x34, +0xd0,0xff,0xbd,0x27,0x00,0x00,0x43,0xac,0x24,0x00,0xb3,0xaf,0x28,0x00,0xbf,0xaf, +0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x78,0x08,0x00,0x0c,0x18,0x00,0xb0,0xaf, +0x06,0x00,0x40,0x10,0x02,0x80,0x13,0x3c,0x68,0x15,0x63,0x26,0x76,0x4b,0x62,0x90, +0x00,0x00,0x00,0x00,0x9b,0x00,0x40,0x14,0x00,0xc0,0x04,0x34,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2a,0xb0,0x02,0x3c,0x36,0x00,0x42,0x34, +0x00,0x00,0x43,0x90,0x68,0x15,0x66,0x26,0xbc,0x65,0xc5,0x8c,0xc0,0x18,0x03,0x00, +0x23,0xb0,0x04,0x3c,0xf0,0x07,0x63,0x30,0xff,0x1f,0x02,0x3c,0x21,0x18,0x64,0x00, +0xff,0xff,0x42,0x34,0x24,0x20,0x62,0x00,0x23,0x88,0x85,0x00,0x2b,0x38,0x85,0x00, +0x00,0x04,0x22,0x26,0x60,0x65,0xc3,0x8c,0x0b,0x88,0x47,0x00,0x01,0x04,0x25,0x2e, +0x5c,0x65,0xc3,0xac,0xc0,0x65,0xc4,0xac,0x66,0x65,0xc0,0xa4,0x11,0x00,0xa0,0x14, +0x65,0x65,0xc0,0xa0,0x00,0xfc,0x83,0x24,0x23,0x10,0x02,0x3c,0x0b,0x18,0x87,0x00, +0xff,0x03,0x42,0x34,0x2b,0x10,0x43,0x00,0x33,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x23,0x88,0x83,0x00,0x2b,0x10,0x83,0x00,0xbc,0x65,0xc3,0xac,0x03,0x00,0x40,0x10, +0x01,0x04,0x25,0x2e,0x00,0x04,0x31,0x26,0x01,0x04,0x25,0x2e,0x0e,0x00,0xa0,0x10, +0x68,0x15,0x70,0x26,0x68,0x15,0x70,0x26,0xc0,0x65,0x03,0x8e,0xbc,0x65,0x04,0x8e, +0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,0x25,0x00,0x40,0x14,0x2b,0x10,0x64,0x00, +0x51,0x00,0x40,0x14,0x25,0xb0,0x02,0x3c,0x80,0x00,0x03,0x24,0xd0,0x03,0x42,0x34, +0x00,0x00,0x43,0xac,0x68,0x15,0x70,0x26,0xbc,0x65,0x03,0x96,0x2a,0xb0,0x02,0x3c, +0x35,0x00,0x42,0x34,0xc2,0x88,0x03,0x00,0x00,0x00,0x51,0xa0,0x8e,0x12,0x00,0x0c, +0x00,0x00,0x00,0x00,0x66,0x65,0x03,0x96,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34, +0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0xfc,0x4a,0x02,0x8e,0x80,0x00,0x03,0x3c,0x41,0xb0,0x04,0x3c, +0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac,0x28,0x00,0xbf,0x8f,0xfc,0x4a,0x02,0xae, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0xb8,0x08,0x00,0x08,0x00,0xfc,0x63,0x24, +0x5c,0x65,0x05,0x8e,0x21,0x30,0x80,0x00,0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x5c,0x65,0x03,0x8e,0x66,0x65,0x05,0x96, +0xbc,0x65,0x02,0x8e,0x21,0x18,0x71,0x00,0x21,0x28,0x25,0x02,0x21,0x10,0x51,0x00, +0x09,0x00,0x04,0x24,0xbc,0x65,0x02,0xae,0x5c,0x65,0x03,0xae,0x4d,0x01,0x00,0x0c, +0x66,0x65,0x05,0xa6,0x68,0x15,0x70,0x26,0xbc,0x65,0x03,0x96,0x2a,0xb0,0x02,0x3c, +0x35,0x00,0x42,0x34,0xc2,0x88,0x03,0x00,0x00,0x00,0x51,0xa0,0x8e,0x12,0x00,0x0c, +0x00,0x00,0x00,0x00,0x66,0x65,0x03,0x96,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34, +0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0xfc,0x4a,0x02,0x8e,0x80,0x00,0x03,0x3c,0x41,0xb0,0x04,0x3c, +0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac,0x28,0x00,0xbf,0x8f,0xfc,0x4a,0x02,0xae, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0xc4,0x65,0x02,0x8e,0x5c,0x65,0x05,0x8e, +0x21,0x30,0x80,0x00,0x23,0x88,0x44,0x00,0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x5c,0x65,0x03,0x8e,0x66,0x65,0x02,0x96, +0xc0,0x65,0x12,0x96,0x21,0x18,0x71,0x00,0x21,0x10,0x22,0x02,0x23,0x10,0x11,0x3c, +0x5c,0x65,0x03,0xae,0x66,0x65,0x02,0xa6,0x0c,0x00,0x40,0x16,0xbc,0x65,0x11,0xae, +0x09,0x00,0x04,0x24,0x4d,0x01,0x00,0x0c,0x68,0x15,0x70,0x26,0xfe,0x08,0x00,0x08, +0x00,0x00,0x00,0x00,0x44,0x67,0x62,0x94,0x76,0x4b,0x60,0xa0,0xe3,0x18,0x00,0x0c, +0x21,0x20,0x44,0x00,0x97,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x4d,0x01,0x00,0x0c, +0x09,0x00,0x04,0x24,0x5c,0x65,0x05,0x8e,0x09,0x00,0x04,0x24,0x23,0x10,0x06,0x3c, +0x21,0x38,0x40,0x02,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x5c,0x65,0x03,0x8e, +0x66,0x65,0x02,0x96,0x21,0x20,0x51,0x02,0x21,0x18,0x72,0x00,0x21,0x10,0x42,0x02, +0xbc,0x65,0x04,0xae,0x09,0x00,0x04,0x24,0x5c,0x65,0x03,0xae,0x2d,0x09,0x00,0x08, +0x66,0x65,0x02,0xa6,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x05,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x02,0x80,0x09,0x3c, +0x68,0x15,0x28,0x25,0xe8,0x63,0x06,0x8d,0xff,0xff,0x02,0x34,0x3f,0x00,0xc2,0x10, +0x21,0x38,0x80,0x00,0x2b,0x10,0xc7,0x00,0x30,0x00,0x40,0x10,0x02,0x19,0x06,0x00, +0x21,0x10,0xc7,0x00,0x23,0x10,0x43,0x00,0x10,0x00,0x46,0x24,0xe8,0x63,0x06,0xad, +0x68,0x15,0x26,0x25,0x04,0x40,0xc4,0x8c,0xec,0x63,0x02,0xad,0xff,0xff,0x02,0x34, +0x2f,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x87,0x00,0x1f,0x00,0x40,0x10, +0x02,0x19,0x04,0x00,0x21,0x10,0x87,0x00,0x23,0x10,0x43,0x00,0x10,0x00,0x44,0x24, +0x04,0x40,0xc4,0xac,0xec,0x63,0xc2,0xac,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x68,0x15,0x23,0x25,0x80,0x10,0x02,0x00, +0x21,0x28,0x43,0x00,0x74,0x51,0xa6,0x8c,0x00,0x21,0x07,0x00,0xff,0xff,0xc2,0x38, +0x0a,0x30,0x82,0x00,0x2b,0x18,0xc7,0x00,0x07,0x00,0x60,0x10,0x21,0x10,0xc7,0x00, +0x02,0x19,0x06,0x00,0x23,0x10,0x43,0x00,0x10,0x00,0x46,0x24,0x74,0x51,0xa6,0xac, +0x08,0x00,0xe0,0x03,0x78,0x51,0xa2,0xac,0x02,0x19,0x06,0x00,0x23,0x10,0x43,0x00, +0x74,0x51,0xa2,0xac,0x08,0x00,0xe0,0x03,0x78,0x51,0xa2,0xac,0x21,0x10,0x87,0x00, +0x23,0x10,0x43,0x00,0x69,0x09,0x00,0x08,0x04,0x40,0xc2,0xac,0x21,0x10,0xc7,0x00, +0x68,0x15,0x26,0x25,0x04,0x40,0xc4,0x8c,0x23,0x10,0x43,0x00,0xe8,0x63,0x02,0xad, +0xec,0x63,0x02,0xad,0xff,0xff,0x02,0x34,0xd4,0xff,0x82,0x14,0x2b,0x10,0x87,0x00, +0x00,0x21,0x07,0x00,0x62,0x09,0x00,0x08,0x04,0x40,0xc4,0xac,0x00,0x31,0x04,0x00, +0x55,0x09,0x00,0x08,0xe8,0x63,0x06,0xad,0x63,0x00,0x82,0x24,0x77,0x00,0x42,0x2c, +0x00,0x00,0x85,0x28,0x04,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x64,0x00,0x82,0x24, +0x64,0x00,0x03,0x24,0x0b,0x18,0x45,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x0c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,0x04,0x00,0x42,0x28, +0x17,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c,0x24,0x08,0x42,0x34,0x00,0x00,0x43,0x8c, +0x00,0x00,0x00,0x00,0x00,0x02,0x63,0x30,0x16,0x00,0x60,0x14,0x01,0x00,0x02,0x24, +0x05,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x82,0x21,0x03,0x00,0x28,0x00,0x82,0x10, +0xf5,0xff,0x02,0x24,0x02,0x00,0x82,0x28,0x39,0x00,0x40,0x14,0x02,0x00,0x02,0x24, +0x2e,0x00,0x82,0x10,0xe9,0xff,0x02,0x24,0x03,0x00,0x02,0x24,0x24,0x00,0x82,0x10, +0x3e,0x00,0x63,0x30,0x05,0x00,0xc4,0x24,0x96,0x09,0x00,0x08,0x00,0x00,0x00,0x00, +0x04,0x00,0xa4,0x90,0x00,0x00,0x00,0x00,0x42,0x20,0x04,0x00,0x96,0x09,0x00,0x08, +0x96,0xff,0x84,0x24,0x05,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x60,0x00,0x64,0x30, +0x42,0x21,0x04,0x00,0x0e,0x00,0x82,0x10,0x1f,0x00,0x62,0x30,0x02,0x00,0x82,0x28, +0x1d,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x14,0x00,0x82,0x10,0x1f,0x00,0x62,0x30, +0x03,0x00,0x02,0x24,0xeb,0xff,0x82,0x14,0x1f,0x00,0x62,0x30,0x40,0x10,0x02,0x00, +0xdd,0xff,0x03,0x24,0x23,0x30,0x62,0x00,0xba,0x09,0x00,0x08,0x05,0x00,0xc4,0x24, +0x40,0x10,0x02,0x00,0xf5,0xff,0x03,0x24,0xd2,0x09,0x00,0x08,0x23,0x30,0x62,0x00, +0x3e,0x00,0x63,0x30,0x23,0x30,0x43,0x00,0xba,0x09,0x00,0x08,0x05,0x00,0xc4,0x24, +0xdd,0xff,0x02,0x24,0xda,0x09,0x00,0x08,0x23,0x30,0x43,0x00,0x40,0x10,0x02,0x00, +0xe9,0xff,0x03,0x24,0xd2,0x09,0x00,0x08,0x23,0x30,0x62,0x00,0x3e,0x00,0x63,0x30, +0xda,0x09,0x00,0x08,0x23,0x30,0x43,0x00,0xd2,0xff,0x80,0x14,0x1f,0x00,0x62,0x30, +0x40,0x10,0x02,0x00,0xf8,0xff,0x03,0x24,0xd2,0x09,0x00,0x08,0x23,0x30,0x62,0x00, +0xcc,0xff,0x80,0x14,0x3e,0x00,0x63,0x30,0xf8,0xff,0x02,0x24,0xda,0x09,0x00,0x08, +0x23,0x30,0x43,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf, +0x14,0x00,0xb1,0xaf,0x0c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30, +0x04,0x00,0x42,0x28,0x29,0x00,0x40,0x14,0x21,0x80,0xa0,0x00,0x00,0x00,0xa4,0x8c, +0x02,0x80,0x11,0x3c,0x3f,0x00,0x84,0x30,0x40,0x20,0x04,0x00,0x96,0x09,0x00,0x0c, +0x96,0xff,0x84,0x24,0x68,0x15,0x25,0x26,0xf0,0x63,0xa4,0x8c,0x21,0x18,0x40,0x00, +0xff,0xff,0x02,0x34,0x3c,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00, +0x27,0x00,0x40,0x10,0x21,0x10,0x83,0x00,0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00, +0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24,0xf0,0x63,0xa4,0xac,0x00,0x00,0x04,0x8e, +0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00,0x7e,0x00,0x84,0x30,0x96,0x09,0x00,0x0c, +0x96,0xff,0x84,0x24,0x68,0x15,0x25,0x26,0xf4,0x63,0xa4,0x8c,0x21,0x18,0x40,0x00, +0xff,0xff,0x02,0x34,0x25,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00, +0x0b,0x00,0x40,0x10,0x21,0x10,0x83,0x00,0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00, +0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24,0xf4,0x63,0xa4,0xac,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x02,0x19,0x04,0x00, +0x23,0x10,0x43,0x00,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0xf4,0x63,0xa2,0xac, +0x02,0x19,0x04,0x00,0x23,0x10,0x43,0x00,0xf0,0x63,0xa2,0xac,0x00,0x00,0x04,0x8e, +0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00,0x7e,0x00,0x84,0x30,0x96,0x09,0x00,0x0c, +0x96,0xff,0x84,0x24,0x68,0x15,0x25,0x26,0xf4,0x63,0xa4,0x8c,0x21,0x18,0x40,0x00, +0xff,0xff,0x02,0x34,0xde,0xff,0x82,0x14,0x2b,0x10,0x83,0x00,0x00,0x21,0x03,0x00, +0x1b,0x0a,0x00,0x08,0xf4,0x63,0xa4,0xac,0x00,0x21,0x03,0x00,0x07,0x0a,0x00,0x08, +0xf0,0x63,0xa4,0xac,0x98,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x58,0x00,0xb6,0xaf, +0x64,0x00,0xbf,0xaf,0x60,0x00,0xbe,0xaf,0x5c,0x00,0xb7,0xaf,0x54,0x00,0xb5,0xaf, +0x50,0x00,0xb4,0xaf,0x4c,0x00,0xb3,0xaf,0x48,0x00,0xb2,0xaf,0x44,0x00,0xb1,0xaf, +0x40,0x00,0xb0,0xaf,0x68,0x15,0x56,0x24,0x25,0xb0,0x03,0x3c,0x04,0x01,0x62,0x34, +0x00,0x00,0x43,0x8c,0xa4,0x65,0xc7,0x8e,0x00,0x00,0x00,0x00,0x34,0x00,0xe3,0x10, +0xa8,0x65,0xc3,0xae,0x2b,0x10,0x67,0x00,0xaa,0x00,0x40,0x14,0x2b,0x10,0xe3,0x00, +0xd4,0x00,0x40,0x14,0x02,0x80,0x02,0x3c,0x68,0x15,0x44,0x24,0x78,0x65,0x83,0x94, +0x02,0x80,0x02,0x3c,0x21,0x88,0x00,0x00,0x19,0x00,0x40,0x1a,0x25,0x98,0x62,0x00, +0x21,0xf0,0x80,0x00,0x21,0xb8,0x80,0x00,0x01,0x00,0x15,0x24,0x21,0x20,0x00,0x00, +0x21,0x80,0x93,0x00,0x00,0x00,0x05,0x8e,0x00,0x00,0x00,0x00,0x07,0x00,0xa0,0x10, +0x01,0x00,0x22,0x26,0x04,0x00,0x02,0x8e,0x00,0xf0,0x03,0x3c,0x00,0x20,0x04,0x3c, +0x24,0x10,0x43,0x00,0x1f,0x00,0x44,0x10,0x06,0x00,0x22,0x26,0xff,0xff,0x51,0x30, +0x82,0x16,0x05,0x00,0x01,0x00,0x42,0x30,0x35,0x00,0x55,0x10,0x00,0x00,0x00,0x00, +0x80,0x20,0x11,0x00,0x2a,0x10,0x92,0x00,0xed,0xff,0x40,0x14,0x00,0x00,0x00,0x00, +0x38,0x00,0xa4,0x8f,0x70,0x4f,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c, +0x08,0x04,0x44,0x24,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,0xfe,0x1f,0x00,0x0c, +0x21,0x38,0x00,0x00,0x25,0xb0,0x03,0x3c,0x04,0x01,0x62,0x34,0x00,0x00,0x43,0x8c, +0xa4,0x65,0xc7,0x8e,0x00,0x00,0x00,0x00,0xce,0xff,0xe3,0x14,0xa8,0x65,0xc3,0xae, +0x25,0xb0,0x03,0x3c,0x00,0x01,0x62,0x34,0x00,0x00,0x47,0xac,0x7f,0x0a,0x00,0x08, +0xa4,0x65,0xc7,0xae,0xbc,0x4c,0xc2,0x8f,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24, +0xbc,0x4c,0xc2,0xaf,0x0c,0x00,0x04,0x8e,0x0c,0x00,0x02,0x24,0x3f,0x00,0x83,0x30, +0x65,0x00,0x62,0x10,0x21,0x28,0xc0,0x03,0x3f,0x00,0x83,0x30,0x0d,0x00,0x02,0x24, +0x5a,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x3f,0x00,0x83,0x30,0x0e,0x00,0x02,0x24, +0x04,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x8e,0x73,0x0a,0x00,0x08, +0x06,0x00,0x22,0x26,0xc8,0x4c,0xc2,0x8f,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24, +0xc8,0x4c,0xc2,0xaf,0x00,0x00,0x05,0x8e,0x73,0x0a,0x00,0x08,0x06,0x00,0x22,0x26, +0x00,0x40,0xe2,0x8e,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x0f,0x00,0x42,0x30, +0x05,0x00,0x55,0x10,0xc2,0x13,0x05,0x00,0x1e,0x00,0x42,0x30,0x21,0x10,0x51,0x00, +0x78,0x0a,0x00,0x08,0xff,0xff,0x51,0x30,0x02,0x40,0xe2,0x92,0x00,0x00,0x00,0x00, +0x1f,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,0x04,0x00,0x03,0x8e,0x00,0x00,0x00,0x00, +0x02,0x14,0x03,0x00,0x0f,0x00,0x42,0x30,0x18,0x00,0x40,0x14,0x02,0x17,0x03,0x00, +0x03,0x00,0x44,0x30,0x08,0x00,0x80,0x10,0x00,0xc0,0x02,0x3c,0x24,0x10,0x62,0x00, +0x12,0x00,0x40,0x14,0x03,0x00,0x02,0x24,0x11,0x00,0x82,0x10,0x02,0x80,0x03,0x3c, +0x10,0x00,0x80,0x10,0x68,0x15,0x63,0x24,0x80,0x10,0x11,0x00,0x21,0xa0,0x53,0x00, +0xec,0xff,0x83,0x8e,0x25,0xb0,0x02,0x3c,0xd4,0x02,0x42,0x34,0x21,0x28,0x80,0x02, +0x21,0x20,0x00,0x02,0x00,0x00,0x43,0xac,0xa0,0x09,0x00,0x0c,0x00,0x00,0x00,0x00, +0x21,0x20,0x40,0x00,0x4f,0x09,0x00,0x0c,0x21,0x28,0x00,0x00,0x02,0x80,0x03,0x3c, +0x68,0x15,0x63,0x24,0x02,0x40,0x62,0x90,0x00,0x00,0x00,0x00,0x88,0x00,0x55,0x10, +0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0x68,0x15,0x84,0x24,0x02,0x40,0x83,0x90, +0x02,0x00,0x02,0x24,0x6a,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c, +0x4c,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30, +0x08,0x00,0x55,0x10,0x02,0x80,0x04,0x3c,0x00,0x00,0x05,0x8e,0x00,0x00,0x00,0x00, +0xc2,0x13,0x05,0x00,0x1e,0x00,0x42,0x30,0x21,0x10,0x51,0x00,0x78,0x0a,0x00,0x08, +0xff,0xff,0x51,0x30,0xd0,0x02,0x02,0x24,0x68,0x15,0x84,0x24,0xe8,0x63,0x82,0xac, +0x00,0x00,0x05,0x8e,0xed,0x0a,0x00,0x08,0xc2,0x13,0x05,0x00,0xc4,0x4c,0xa2,0x8c, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xc4,0x4c,0xa2,0xac,0x0c,0x00,0x04,0x8e, +0x9f,0x0a,0x00,0x08,0x3f,0x00,0x83,0x30,0xc0,0x4c,0xc2,0x8f,0x00,0x00,0x00,0x00, +0x01,0x00,0x42,0x24,0xc0,0x4c,0xc2,0xaf,0x0c,0x00,0x04,0x8e,0x9b,0x0a,0x00,0x08, +0x3f,0x00,0x83,0x30,0xac,0x65,0xc2,0x8e,0xff,0xff,0x71,0x30,0x23,0x10,0x47,0x00, +0xff,0xff,0x50,0x30,0x21,0x18,0x11,0x02,0xff,0xff,0x72,0x30,0x54,0x4f,0x00,0x0c, +0x21,0x20,0x40,0x02,0x7d,0x00,0x40,0x10,0x38,0x00,0xa2,0xaf,0x38,0x00,0xa3,0x8f, +0xa4,0x65,0xc6,0x8e,0x21,0x38,0x00,0x02,0x08,0x00,0x62,0x8c,0x08,0x00,0x04,0x24, +0x10,0x00,0xa0,0xaf,0x21,0x18,0x52,0x00,0x21,0x28,0x40,0x00,0x74,0x65,0xc3,0xae, +0x10,0x01,0x00,0x0c,0x78,0x65,0xc2,0xae,0x4d,0x01,0x00,0x0c,0x08,0x00,0x04,0x24, +0x78,0x65,0xc5,0x8e,0x25,0xb0,0x04,0x3c,0x24,0x10,0x02,0x3c,0x21,0x28,0xb0,0x00, +0x00,0x01,0x90,0x34,0x00,0x00,0x02,0xae,0x21,0x38,0x20,0x02,0x08,0x00,0x04,0x24, +0x24,0x10,0x06,0x3c,0xa4,0x65,0xc2,0xae,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0xa8,0x65,0xc3,0x8e,0x08,0x00,0x04,0x24,0x4d,0x01,0x00,0x0c,0xa4,0x65,0xc3,0xae, +0xa4,0x65,0xc2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xae,0x5e,0x0a,0x00,0x08, +0x02,0x80,0x02,0x3c,0x23,0x10,0x67,0x00,0xff,0xff,0x52,0x30,0x54,0x4f,0x00,0x0c, +0x21,0x20,0x40,0x02,0x5c,0x00,0x40,0x10,0x38,0x00,0xa2,0xaf,0x38,0x00,0xa3,0x8f, +0xa4,0x65,0xc6,0x8e,0x08,0x00,0x04,0x24,0x08,0x00,0x62,0x8c,0x21,0x38,0x40,0x02, +0x10,0x00,0xa0,0xaf,0x21,0x18,0x52,0x00,0x21,0x28,0x40,0x00,0x74,0x65,0xc3,0xae, +0x10,0x01,0x00,0x0c,0x78,0x65,0xc2,0xae,0xa8,0x65,0xc3,0x8e,0x08,0x00,0x04,0x24, +0x4d,0x01,0x00,0x0c,0xa4,0x65,0xc3,0xae,0xa4,0x65,0xc3,0x8e,0x25,0xb0,0x04,0x3c, +0x00,0x01,0x82,0x34,0x00,0x00,0x43,0xac,0x5e,0x0a,0x00,0x08,0x02,0x80,0x02,0x3c, +0x04,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x03,0x00,0x0f,0x00,0x42,0x30, +0x08,0x00,0x42,0x28,0x91,0xff,0x40,0x10,0x02,0x17,0x03,0x00,0x03,0x00,0x42,0x30, +0x8e,0xff,0x40,0x14,0x80,0x10,0x11,0x00,0x21,0xa0,0x53,0x00,0xec,0xff,0x83,0x8e, +0x25,0xb0,0x02,0x3c,0xd4,0x02,0x42,0x34,0x21,0x28,0x80,0x02,0x21,0x20,0x00,0x02, +0x00,0x00,0x43,0xac,0xa0,0x09,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x20,0x40,0x00, +0x4f,0x09,0x00,0x0c,0x21,0x28,0x00,0x00,0xe4,0x0a,0x00,0x08,0x25,0xb0,0x03,0x3c, +0x04,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x03,0x00,0x0f,0x00,0x42,0x30, +0x08,0x00,0x42,0x28,0x06,0x00,0x40,0x10,0x00,0xc0,0x02,0x3c,0x02,0x17,0x03,0x00, +0x03,0x00,0x42,0x30,0x0c,0x00,0x40,0x10,0x80,0x10,0x11,0x00,0x00,0xc0,0x02,0x3c, +0x24,0x10,0x62,0x00,0x6c,0xff,0x40,0x14,0x02,0x80,0x04,0x3c,0x02,0x17,0x03,0x00, +0x03,0x00,0x42,0x30,0x03,0x00,0x03,0x24,0x68,0xff,0x43,0x10,0x68,0x15,0x84,0x24, +0x64,0xff,0x40,0x10,0x80,0x10,0x11,0x00,0x21,0xa0,0x53,0x00,0xec,0xff,0x83,0x8e, +0x25,0xb0,0x02,0x3c,0xd4,0x02,0x42,0x34,0x21,0x20,0x00,0x02,0x21,0x28,0x80,0x02, +0x00,0x00,0x43,0xac,0xa0,0x09,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x20,0x40,0x00, +0x4f,0x09,0x00,0x0c,0x21,0x28,0x00,0x00,0x21,0x20,0x00,0x02,0xf1,0x09,0x00,0x0c, +0x21,0x28,0x80,0x02,0xde,0x0a,0x00,0x08,0x02,0x80,0x04,0x3c,0x25,0xb0,0x04,0x3c, +0x44,0x44,0x02,0x3c,0xbc,0x02,0x83,0x34,0x44,0x44,0x42,0x34,0x00,0x00,0x62,0xac, +0x80,0x0a,0x00,0x08,0x02,0x80,0x02,0x3c,0xa8,0x65,0xc5,0x8e,0x25,0xb0,0x02,0x3c, +0x00,0x01,0x43,0x34,0xbc,0x02,0x44,0x34,0x66,0x66,0x02,0x3c,0x66,0x66,0x42,0x34, +0x00,0x00,0x65,0xac,0x00,0x00,0x82,0xac,0x7f,0x0a,0x00,0x08,0xa4,0x65,0xc5,0xae, +0x25,0xb0,0x06,0x3c,0x00,0x80,0x02,0x3c,0x2a,0xb0,0x04,0x3c,0x18,0x03,0xc5,0x34, +0x70,0x2e,0x42,0x24,0x00,0x00,0xa2,0xac,0x22,0x00,0x83,0x34,0x1a,0x00,0x85,0x34, +0x00,0x00,0x67,0x94,0x06,0x00,0x84,0x34,0x00,0x00,0xa2,0x94,0x00,0x00,0x83,0x94, +0xff,0x00,0xed,0x30,0xff,0x00,0x42,0x30,0x21,0x68,0x4d,0x00,0xff,0x00,0x63,0x30, +0x21,0x68,0x6d,0x00,0x68,0x03,0xc2,0x34,0x02,0x80,0x07,0x3c,0x00,0x00,0x4d,0xa4, +0x68,0x15,0xe7,0x24,0xc6,0x00,0xc3,0x34,0xca,0x00,0xc4,0x34,0x00,0x00,0x6b,0x90, +0x60,0x4b,0xe5,0x8c,0x00,0x00,0x82,0x90,0xcc,0x00,0xc3,0x34,0x00,0x00,0x68,0x90, +0xd4,0x00,0xc4,0x34,0x64,0x4b,0xe3,0x8c,0x00,0x00,0x8a,0x90,0x61,0x4b,0xec,0x90, +0xff,0x00,0x04,0x3c,0x00,0x4a,0x0d,0x00,0x23,0x48,0x2d,0x01,0x24,0x28,0xa4,0x00, +0xff,0x00,0x6d,0x31,0xff,0x00,0x42,0x30,0x21,0x10,0xa2,0x01,0x24,0x18,0x64,0x00, +0x02,0x2c,0x05,0x00,0x69,0x4b,0xe4,0x90,0xff,0x00,0x08,0x31,0x21,0x60,0x85,0x01, +0x02,0x1c,0x03,0x00,0x21,0x10,0x48,0x00,0xff,0x00,0x4a,0x31,0x21,0x10,0x4a,0x00, +0x21,0x60,0x83,0x01,0x21,0x60,0x84,0x01,0xff,0xff,0x4d,0x30,0x23,0x18,0x8d,0x01, +0xff,0xff,0x6c,0x30,0xff,0xff,0x29,0x31,0x6a,0x03,0xc2,0x34,0x6c,0x03,0xc3,0x34, +0x1f,0x03,0xc5,0x34,0x2b,0x20,0x2c,0x01,0x6e,0x03,0xc6,0x34,0x00,0x00,0x49,0xa4, +0x00,0x00,0x6d,0xa4,0x00,0x00,0xcc,0xa4,0x05,0x00,0x80,0x10,0x00,0x00,0x00,0x00, +0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24,0x25,0x18,0x62,0x00,0x00,0x00,0xa3,0xa0, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x70,0x9a,0x64,0xac, +0x00,0x60,0x82,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c, +0x70,0x9a,0x45,0x8c,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34, +0xac,0x2f,0x63,0x24,0x00,0x00,0x43,0xac,0x04,0x00,0x02,0x24,0x1e,0x00,0xa2,0x10, +0x05,0x00,0xa2,0x2c,0x10,0x00,0x40,0x10,0x05,0x00,0x02,0x24,0x03,0x00,0x02,0x24, +0x08,0x00,0xa2,0x10,0x00,0x19,0x04,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00, +0xc0,0x10,0x02,0x00,0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00,0x21,0x10,0x44,0x00, +0x40,0x19,0x02,0x00,0xff,0xff,0x63,0x24,0xfe,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xf3,0xff,0xa2,0x10,0x06,0x00,0x02,0x24, +0xf2,0xff,0xa2,0x14,0x80,0x10,0x04,0x00,0x40,0x11,0x04,0x00,0x23,0x10,0x44,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x00,0x19,0x02,0x00,0x23,0x18,0x62,0x00, +0x01,0x0c,0x00,0x08,0x00,0x19,0x03,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00, +0xc0,0x10,0x02,0x00,0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00,0x21,0x10,0x44,0x00, +0x01,0x0c,0x00,0x08,0x00,0x19,0x02,0x00,0x02,0x80,0x02,0x3c,0x70,0x9a,0x45,0x8c, +0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,0x68,0x30,0x63,0x24, +0x00,0x00,0x43,0xac,0x05,0x00,0x02,0x24,0x10,0x00,0xa2,0x10,0x06,0x00,0xa2,0x2c, +0x09,0x00,0x40,0x14,0x04,0x00,0x02,0x24,0x06,0x00,0x02,0x24,0x0f,0x00,0xa2,0x10, +0x00,0x11,0x04,0x00,0xff,0xff,0x84,0x24,0xfe,0xff,0x80,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xfa,0xff,0xa2,0x14,0x80,0x10,0x04,0x00, +0x21,0x10,0x44,0x00,0x29,0x0c,0x00,0x08,0x40,0x20,0x02,0x00,0x80,0x10,0x04,0x00, +0x21,0x10,0x44,0x00,0x29,0x0c,0x00,0x08,0x80,0x20,0x02,0x00,0x23,0x10,0x44,0x00, +0x29,0x0c,0x00,0x08,0x40,0x20,0x02,0x00,0xff,0xff,0x85,0x30,0x21,0x30,0x00,0x00, +0x25,0xb0,0x03,0x3c,0x2a,0xb0,0x04,0x3c,0xb4,0x00,0x63,0x34,0x01,0x00,0xa2,0x24, +0x31,0x00,0x84,0x34,0x00,0x00,0x65,0xa0,0x00,0x00,0x85,0xa0,0xff,0xff,0x45,0x30, +0x12,0x00,0xa0,0x10,0x01,0x00,0x03,0x24,0x28,0xb0,0x07,0x3c,0x4f,0x0c,0x00,0x08, +0xff,0xff,0x08,0x24,0x00,0x00,0x83,0xa0,0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30, +0x2b,0x10,0xa3,0x00,0x09,0x00,0x40,0x14,0x08,0x00,0xc6,0x24,0xf9,0xff,0x65,0x14, +0x21,0x20,0xc7,0x00,0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30,0x2b,0x10,0xa3,0x00, +0x00,0x00,0x88,0xa0,0xf9,0xff,0x40,0x10,0x08,0x00,0xc6,0x24,0x00,0x01,0xa2,0x2c, +0x13,0x00,0x40,0x10,0x21,0x18,0xa0,0x00,0xff,0x00,0x08,0x24,0x28,0xb0,0x07,0x3c, +0x63,0x0c,0x00,0x08,0xff,0xff,0x09,0x24,0xff,0xff,0x43,0x30,0x00,0x00,0xa2,0xa0, +0x00,0x01,0x62,0x2c,0x0a,0x00,0x40,0x10,0x08,0x00,0xc6,0x24,0x01,0x00,0x62,0x24, +0xf9,0xff,0x68,0x14,0x21,0x28,0xc7,0x00,0x00,0x01,0x02,0x24,0xff,0xff,0x43,0x30, +0x00,0x01,0x62,0x2c,0x00,0x00,0xa9,0xa0,0xf8,0xff,0x40,0x14,0x08,0x00,0xc6,0x24, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd0,0xff,0xbd,0x27,0x28,0x00,0xbf,0xaf, +0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x12,0x40,0x01,0x00,0x41,0x36, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x42,0x00,0x15,0x36, +0xff,0xff,0x02,0x24,0x00,0x00,0xa2,0xa2,0xd8,0x00,0x05,0x36,0x40,0x00,0x11,0x36, +0xa8,0x00,0x14,0x36,0xa0,0x00,0x13,0x36,0x00,0x10,0x03,0x24,0xa4,0x00,0x10,0x36, +0x00,0x80,0x02,0x3c,0x00,0x00,0x23,0xa6,0x00,0x00,0xa0,0xa0,0x00,0x00,0x60,0xae, +0x00,0x00,0x00,0xae,0x00,0x00,0x82,0xae,0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24, +0xfd,0x00,0x04,0x24,0x25,0x18,0x62,0x00,0xfc,0x17,0x02,0x24,0x00,0x00,0xa3,0xa0, +0x00,0x00,0x22,0xa6,0x3a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c, +0x68,0x15,0x42,0x24,0x68,0x4b,0x45,0x8c,0x60,0x4b,0x43,0x8c,0x64,0x4b,0x44,0x8c, +0xfc,0x37,0x02,0x24,0x00,0x00,0x63,0xae,0x00,0x00,0x04,0xae,0x00,0x00,0x85,0xae, +0x00,0x00,0x22,0xa6,0x00,0x00,0xa0,0xa2,0x00,0x60,0x92,0x40,0x28,0x00,0xbf,0x8f, +0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27, +0xc8,0xff,0xbd,0x27,0x34,0x00,0xbf,0xaf,0x30,0x00,0xbe,0xaf,0x2c,0x00,0xb7,0xaf, +0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf, +0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x16,0x40, +0x01,0x00,0xc1,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x11,0x3c, +0x40,0x00,0x30,0x36,0xff,0xff,0x02,0x24,0x42,0x00,0x3e,0x36,0xfc,0x77,0x13,0x24, +0x00,0x00,0xc2,0xa3,0xfc,0x57,0x12,0x24,0x00,0x00,0x13,0xa6,0x1a,0x0c,0x00,0x0c, +0x32,0x00,0x04,0x24,0xfc,0x37,0x17,0x24,0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6, +0x1a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x24,0x00,0x00,0x17,0xa6, +0x1a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0xa6,0x1a,0x0c,0x00,0x0c, +0x32,0x00,0x04,0x24,0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6,0x1a,0x0c,0x00,0x0c, +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x96,0x24,0xfa,0x03,0x24,0xd8,0x00,0x25,0x36, +0x24,0x10,0x43,0x00,0x00,0x00,0x02,0xa6,0x00,0x00,0xa3,0x90,0xa0,0x00,0x34,0x36, +0xa4,0x00,0x35,0x36,0xa8,0x00,0x33,0x36,0x7f,0x00,0x63,0x30,0x00,0x80,0x02,0x3c, +0x00,0x00,0xa3,0xa0,0x00,0x00,0x80,0xae,0x00,0x00,0xa0,0xae,0x00,0x00,0x62,0xae, +0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24,0xfd,0x00,0x04,0x24,0x25,0x18,0x62,0x00, +0x00,0x00,0xa3,0xa0,0x00,0x00,0x12,0xa6,0x3a,0x0c,0x00,0x0c,0x56,0x01,0x31,0x36, +0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,0x68,0x4b,0x45,0x8c,0x60,0x4b,0x43,0x8c, +0x64,0x4b,0x44,0x8c,0xff,0x0f,0x02,0x24,0x00,0x00,0x83,0xae,0x00,0x00,0xa4,0xae, +0x00,0x00,0x65,0xae,0x00,0x00,0x17,0xa6,0x00,0x00,0x22,0xa6,0x00,0x00,0xc0,0xa3, +0x00,0x60,0x96,0x40,0x34,0x00,0xbf,0x8f,0x30,0x00,0xbe,0x8f,0x2c,0x00,0xb7,0x8f, +0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x38,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf, +0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x40,0x00,0x05,0x36, +0x00,0x00,0xa2,0x94,0xaf,0xff,0x03,0x24,0xa8,0x00,0x13,0x36,0x24,0x10,0x43,0x00, +0x00,0x00,0xa2,0xa4,0xa0,0x00,0x12,0x36,0xa4,0x00,0x10,0x36,0x00,0x00,0x55,0x8e, +0x00,0x00,0x16,0x8e,0x00,0x00,0x71,0x8e,0x00,0x80,0x14,0x3c,0xfc,0x37,0x02,0x24, +0x00,0x00,0x40,0xae,0xfd,0x00,0x04,0x24,0x00,0x00,0x00,0xae,0x21,0x88,0x34,0x02, +0x00,0x00,0x74,0xae,0x00,0x00,0xa2,0xa4,0x3a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x00,0x55,0xae,0x00,0x00,0x16,0xae,0x00,0x00,0x71,0xae,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f, +0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x25,0xb0,0x04,0x3c,0x40,0x00,0x84,0x34,0x00,0x00,0x82,0x94,0xd8,0xfd,0x03,0x24, +0x24,0x10,0x43,0x00,0xfc,0x37,0x03,0x24,0x00,0x00,0x82,0xa4,0x00,0x00,0x83,0xa4, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xff,0xff,0xc6,0x30,0x10,0x00,0x02,0x24,0x0c,0x00,0xc2,0x10,0x11,0x00,0xc3,0x28, +0x06,0x00,0x60,0x10,0x20,0x00,0x02,0x24,0x08,0x00,0x02,0x24,0x0d,0x00,0xc2,0x10, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x06,0x00,0xc2,0x10, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xa4, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0xff,0xff,0xa5,0x24, +0x00,0x2c,0x05,0x00,0xfd,0x00,0x63,0x30,0x03,0x2c,0x05,0x00,0xff,0xff,0x87,0x30, +0x00,0x00,0x43,0xa0,0x1a,0x00,0xa0,0x04,0x00,0x00,0x00,0x00,0x21,0x30,0x40,0x00, +0x07,0x10,0xa7,0x00,0x01,0x00,0x42,0x30,0xfd,0x00,0x64,0x30,0x00,0x00,0x42,0x38, +0x02,0x00,0x63,0x34,0x0a,0x18,0x82,0x00,0x00,0x00,0xc3,0xa0,0x04,0x00,0x63,0x34, +0x00,0x00,0xc3,0xa0,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04, +0xff,0xff,0x42,0x24,0xfb,0x00,0x63,0x30,0x00,0x00,0xc3,0xa0,0x04,0x00,0x02,0x24, +0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0xff,0xff,0xa2,0x24, +0x00,0x2c,0x02,0x00,0x03,0x2c,0x05,0x00,0xea,0xff,0xa1,0x04,0x07,0x10,0xa7,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34, +0x00,0x00,0x43,0x90,0xff,0xff,0x84,0x24,0x00,0x24,0x04,0x00,0x03,0x24,0x04,0x00, +0xff,0x00,0x65,0x30,0x1d,0x00,0x80,0x04,0x21,0x38,0x00,0x00,0x21,0x30,0x40,0x00, +0x01,0x00,0x08,0x24,0x04,0x00,0xa5,0x34,0x00,0x00,0xc5,0xa0,0x00,0x00,0xc2,0x90, +0x00,0x00,0x00,0x00,0xff,0x00,0x45,0x30,0x01,0x00,0xa3,0x30,0x05,0x00,0x60,0x10, +0x04,0x00,0x02,0x24,0x04,0x10,0x88,0x00,0x25,0x10,0x47,0x00,0xff,0xff,0x47,0x30, +0x04,0x00,0x02,0x24,0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24, +0xfb,0x00,0xa5,0x30,0x00,0x00,0xc5,0xa0,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24, +0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0xff,0xff,0x82,0x24,0x00,0x24,0x02,0x00, +0x03,0x24,0x04,0x00,0xe7,0xff,0x81,0x04,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0xe0,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x25,0xb0,0x10,0x3c, +0x0a,0x00,0x10,0x36,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x00,0x00,0x02,0x92, +0xff,0xff,0x91,0x30,0x03,0x00,0x05,0x24,0xc0,0x00,0x42,0x30,0x80,0x00,0x43,0x34, +0x00,0x00,0x03,0xa2,0x04,0x00,0x63,0x34,0x00,0x00,0x03,0xa2,0xfb,0x00,0x63,0x30, +0x00,0x00,0x03,0xa2,0x08,0x00,0x63,0x34,0x00,0x00,0x03,0xa2,0x04,0x00,0x63,0x34, +0x00,0x00,0x03,0xa2,0xfb,0x00,0x63,0x30,0x00,0x00,0x03,0xa2,0x64,0x0d,0x00,0x0c, +0x06,0x00,0x04,0x24,0x42,0x20,0x11,0x00,0x64,0x0d,0x00,0x0c,0x06,0x00,0x05,0x24, +0x8a,0x0d,0x00,0x0c,0x10,0x00,0x04,0x24,0x00,0x00,0x03,0x92,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0xc0,0x00,0x63,0x30,0x00,0x00,0x03,0xa2,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf, +0xff,0xff,0xb1,0x30,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf, +0x21,0x90,0xc0,0x00,0x0a,0x00,0x20,0x12,0xff,0xff,0x90,0x30,0xb1,0x0d,0x00,0x0c, +0x21,0x20,0x00,0x02,0xfe,0xff,0x23,0x26,0x02,0x00,0x04,0x26,0x00,0x00,0x42,0xa6, +0xff,0xff,0x71,0x30,0xff,0xff,0x90,0x30,0xf8,0xff,0x20,0x16,0x02,0x00,0x52,0x26, +0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x25,0xb0,0x03,0x3c,0x0a,0x00,0x68,0x34, +0x00,0x00,0x02,0x91,0xff,0xff,0xa5,0x30,0xff,0x00,0x84,0x30,0x1f,0x00,0xa0,0x10, +0xff,0x00,0x47,0x30,0x21,0x48,0x00,0x01,0x0c,0x00,0x6c,0x34,0x0b,0x00,0x6b,0x34, +0xc0,0xff,0x0a,0x24,0x21,0x68,0x00,0x01,0x25,0x10,0xea,0x00,0xff,0x00,0x47,0x30, +0x00,0x00,0x64,0xa1,0x00,0x00,0x27,0xa1,0x00,0x00,0x22,0x91,0x00,0x00,0x00,0x00, +0xff,0x00,0x47,0x30,0xc0,0x00,0xe3,0x30,0x08,0x00,0x60,0x10,0x00,0x00,0x00,0x00, +0x21,0x40,0xa0,0x01,0x00,0x00,0x02,0x91,0x00,0x00,0x00,0x00,0xff,0x00,0x47,0x30, +0xc0,0x00,0xe3,0x30,0xfb,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x8d, +0xfc,0xff,0xa3,0x24,0x04,0x00,0x84,0x24,0xff,0xff,0x65,0x30,0x00,0x00,0xc2,0xac, +0xff,0x00,0x84,0x30,0xe8,0xff,0xa0,0x14,0x04,0x00,0xc6,0x24,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xff,0x00,0x84,0x30,0x21,0x68,0xe0,0x00,0xff,0xff,0xa5,0x30, +0xc0,0x50,0x04,0x00,0x00,0x60,0x0c,0x40,0x01,0x00,0x81,0x35,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x00,0x00,0xc2,0x90,0x01,0x00,0xc3,0x90,0x25,0xb0,0x07,0x3c, +0x00,0x14,0x02,0x00,0x25,0x28,0xa2,0x00,0x00,0x1e,0x03,0x00,0x01,0x80,0x08,0x3c, +0x25,0x20,0xa3,0x00,0x40,0x02,0xe9,0x34,0x25,0x18,0x48,0x01,0x44,0x02,0xe7,0x34, +0x00,0x00,0xe4,0xac,0x00,0x00,0x23,0xad,0x03,0x00,0xc2,0x90,0x02,0x00,0xc4,0x90, +0x04,0x00,0xc3,0x90,0x05,0x00,0xc5,0x90,0x00,0x12,0x02,0x00,0x25,0x20,0x82,0x00, +0x00,0x1c,0x03,0x00,0x01,0x00,0x4a,0x25,0x25,0x20,0x83,0x00,0x00,0x2e,0x05,0x00, +0x25,0x40,0x48,0x01,0x25,0x20,0x85,0x00,0x00,0x00,0xe4,0xac,0x01,0x00,0x4a,0x25, +0x00,0x00,0x28,0xad,0x01,0x80,0x0b,0x3c,0x21,0x40,0x00,0x00,0x21,0x10,0xa8,0x01, +0x01,0x00,0x43,0x90,0x00,0x00,0x45,0x90,0x02,0x00,0x44,0x90,0x03,0x00,0x46,0x90, +0x00,0x1a,0x03,0x00,0x25,0x28,0xa3,0x00,0x00,0x24,0x04,0x00,0x25,0x28,0xa4,0x00, +0x00,0x36,0x06,0x00,0x04,0x00,0x08,0x25,0x25,0x10,0x4b,0x01,0x25,0x20,0xa6,0x00, +0x10,0x00,0x03,0x2d,0x00,0x00,0xe4,0xac,0x01,0x00,0x4a,0x25,0x00,0x00,0x22,0xad, +0xee,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x8c,0x40,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xff,0xff,0x84,0x30,0x42,0xb0,0x08,0x3c,0x80,0x10,0x04,0x00, +0x21,0x10,0x48,0x00,0x04,0x00,0x46,0xac,0x00,0x00,0x07,0x91,0x40,0x18,0x04,0x00, +0x03,0x00,0x06,0x24,0xff,0x00,0xe7,0x30,0x04,0x30,0x66,0x00,0x01,0x00,0x02,0x24, +0x04,0x10,0x62,0x00,0x25,0x30,0xc7,0x00,0xff,0xff,0xa5,0x30,0x25,0x10,0x47,0x00, +0x02,0x00,0xa0,0x14,0xff,0x00,0xc7,0x30,0xff,0x00,0x47,0x30,0x42,0xb0,0x02,0x3c, +0x00,0x00,0x47,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x42,0xb0,0x02,0x3c, +0x03,0x00,0x47,0x34,0x00,0x00,0xe3,0x90,0xff,0x00,0x84,0x30,0x04,0x00,0x84,0x24, +0xff,0x00,0x65,0x30,0x01,0x00,0x02,0x24,0x04,0x30,0x82,0x00,0x07,0x18,0x85,0x00, +0x25,0xb0,0x02,0x3c,0xe8,0x03,0x42,0x34,0x01,0x00,0x63,0x30,0x21,0x20,0xc0,0x00, +0x00,0x00,0x45,0xa0,0x02,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xa0, +0x08,0x00,0xe0,0x03,0x24,0x10,0x85,0x00,0x00,0x60,0x03,0x40,0x01,0x00,0x61,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x74,0x9a,0x42,0x24, +0x04,0x00,0x45,0x8c,0x00,0x00,0x82,0xac,0x04,0x00,0x44,0xac,0x00,0x00,0xa4,0xac, +0x04,0x00,0x85,0xac,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x14,0x00,0x83,0x90,0x01,0x00,0x02,0x24,0x08,0x00,0x86,0xac,0x18,0x00,0x85,0xac, +0x00,0x00,0x84,0xac,0x03,0x00,0x62,0x10,0x04,0x00,0x84,0xac,0x7a,0x0e,0x00,0x08, +0x0c,0x00,0x80,0xac,0x0c,0x00,0x82,0x8c,0x7a,0x0e,0x00,0x08,0x10,0x00,0x82,0xac, +0x00,0x60,0x03,0x40,0x01,0x00,0x61,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x04,0x00,0x85,0x8c,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xac, +0x04,0x00,0x45,0xac,0x00,0x00,0x84,0xac,0x04,0x00,0x84,0xac,0x00,0x60,0x83,0x40, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd0,0xff,0xbd,0x27,0x28,0x00,0xb6,0xaf, +0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x14,0x00,0xb1,0xaf,0x2c,0x00,0xbf,0xaf, +0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x80,0x16,0x3c, +0x02,0x80,0x14,0x3c,0x02,0x80,0x11,0x3c,0x02,0x80,0x15,0x3c,0x24,0x7e,0x24,0x8e, +0x25,0xb0,0x02,0x3c,0x88,0x3a,0xc3,0x26,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x74,0x9a,0x90,0x8e,0x18,0x00,0x80,0x10,0x74,0x9a,0x82,0x26,0x15,0x00,0x02,0x12, +0x00,0x00,0x00,0x00,0x21,0x98,0x40,0x00,0x01,0x00,0x12,0x24,0x14,0x00,0x02,0x92, +0x00,0x00,0x00,0x00,0x1d,0x00,0x52,0x10,0x00,0x00,0x00,0x00,0x09,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x0c,0x00,0x03,0x8e,0x24,0x7e,0x22,0x8e,0x00,0x00,0x00,0x00, +0x23,0x20,0x62,0x00,0x2b,0x10,0x43,0x00,0x0e,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x0c,0x00,0x04,0xae,0x00,0x00,0x10,0x8e,0x00,0x00,0x00,0x00,0xef,0xff,0x13,0x16, +0x00,0x00,0x00,0x00,0x24,0x7e,0x20,0xae,0x08,0x0c,0xa4,0x26,0x21,0x28,0x00,0x00, +0x21,0x30,0x00,0x00,0xfe,0x1f,0x00,0x0c,0x21,0x38,0x00,0x00,0xaf,0x0e,0x00,0x08, +0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0x18,0x00,0x04,0x8e,0x09,0xf8,0x40,0x00, +0x00,0x00,0x00,0x00,0xc9,0x0e,0x00,0x08,0x0c,0x00,0x02,0xae,0x0c,0x00,0x03,0x8e, +0x24,0x7e,0x22,0x8e,0x00,0x00,0x00,0x00,0x23,0x20,0x62,0x00,0x2b,0x10,0x43,0x00, +0xe7,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0x18,0x00,0x04,0x8e, +0x09,0xf8,0x40,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x03,0x8e,0xc9,0x0e,0x00,0x08, +0x0c,0x00,0x03,0xae,0x02,0x80,0x02,0x3c,0x60,0x79,0x43,0x8c,0xff,0x00,0xa5,0x30, +0x25,0xb0,0x02,0x3c,0x42,0x18,0x03,0x00,0x21,0x30,0xa2,0x00,0x01,0x00,0x63,0x30, +0x01,0x00,0x02,0x24,0x10,0x00,0xa7,0x2c,0x04,0x00,0x62,0x10,0xff,0x00,0x84,0x30, +0x60,0x01,0xc4,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c, +0x10,0x00,0xa2,0x34,0xfa,0xff,0xe0,0x10,0x21,0x40,0x43,0x00,0x60,0x01,0xc4,0xa0, +0x60,0x01,0x04,0xa1,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0x84,0x30, +0x01,0x00,0x03,0x24,0x10,0x00,0x02,0x3c,0x04,0x18,0x83,0x00,0xf0,0x70,0x42,0x34, +0x15,0x00,0x84,0x2c,0x06,0x00,0x80,0x10,0x24,0x28,0x62,0x00,0x0f,0x00,0x63,0x30, +0x04,0x00,0xa0,0x14,0x01,0x00,0x02,0x24,0x02,0x00,0x60,0x14,0x02,0x00,0x02,0x24, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0xa5,0x30, +0x04,0x00,0xa2,0x2c,0x14,0x00,0x40,0x10,0xff,0x00,0x84,0x30,0x02,0x80,0x03,0x3c, +0xee,0x7d,0x62,0x90,0x00,0x00,0x00,0x00,0xef,0xff,0x42,0x24,0xff,0x00,0x42,0x30, +0x02,0x00,0x42,0x2c,0x0e,0x00,0x40,0x10,0x02,0x00,0x03,0x24,0x24,0x00,0x83,0x10, +0x0f,0x10,0x02,0x3c,0x03,0x00,0x82,0x28,0x14,0x00,0x40,0x10,0x03,0x00,0x02,0x24, +0x01,0x00,0x02,0x24,0x2f,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0xff,0x1f,0x02,0x3c, +0x08,0x00,0xe0,0x03,0xff,0xff,0x42,0x34,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x35,0x00,0x83,0x10,0x0f,0x1f,0x02,0x3c,0x03,0x00,0x82,0x28,0x16,0x00,0x40,0x10, +0x03,0x00,0x02,0x24,0x01,0x00,0x02,0x24,0xf4,0xff,0x82,0x14,0x00,0x00,0x00,0x00, +0x0f,0x1f,0x02,0x3c,0x08,0x00,0xe0,0x03,0x00,0x80,0x42,0x34,0xf0,0xff,0x82,0x14, +0xff,0x1f,0x02,0x3c,0x01,0x00,0x02,0x24,0x29,0x00,0xa2,0x10,0x0f,0x10,0x02,0x3c, +0x02,0x00,0xa2,0x28,0x1f,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x28,0x00,0xa3,0x10, +0x00,0x00,0x00,0x00,0xe5,0xff,0xa4,0x14,0x00,0x00,0x00,0x00,0x0f,0x10,0x02,0x3c, +0x08,0x00,0xe0,0x03,0x00,0xf0,0x42,0x34,0xe1,0xff,0x82,0x14,0xff,0x1f,0x02,0x3c, +0x01,0x00,0x02,0x24,0x1c,0x00,0xa2,0x10,0x0f,0x00,0x02,0x3c,0x02,0x00,0xa2,0x28, +0x0b,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x1c,0x00,0xa3,0x10,0x00,0x00,0x00,0x00, +0xd6,0xff,0xa4,0x14,0x00,0x00,0x00,0x00,0x0f,0x00,0x02,0x3c,0x08,0x00,0xe0,0x03, +0x00,0xf0,0x42,0x34,0x0f,0x10,0x02,0x3c,0x08,0x00,0xe0,0x03,0x00,0x80,0x42,0x34, +0xce,0xff,0xa0,0x14,0x00,0x00,0x00,0x00,0x0f,0x00,0x02,0x3c,0x08,0x00,0xe0,0x03, +0x15,0xf0,0x42,0x34,0xc9,0xff,0xa0,0x14,0x00,0x00,0x00,0x00,0x0f,0x10,0x02,0x3c, +0x08,0x00,0xe0,0x03,0x15,0xf0,0x42,0x34,0x08,0x00,0xe0,0x03,0x00,0xf0,0x42,0x34, +0x08,0x00,0xe0,0x03,0x10,0xf0,0x42,0x34,0x08,0x00,0xe0,0x03,0x10,0xf0,0x42,0x34, +0x0f,0x10,0x02,0x3c,0x08,0x00,0xe0,0x03,0x05,0xf0,0x42,0x34,0x0f,0x00,0x02,0x3c, +0x08,0x00,0xe0,0x03,0x05,0xf0,0x42,0x34,0xc0,0x40,0x04,0x00,0x21,0x18,0x04,0x01, +0x80,0x18,0x03,0x00,0x21,0x18,0x64,0x00,0x02,0x80,0x02,0x3c,0x80,0x18,0x03,0x00, +0x68,0x15,0x42,0x24,0x21,0x18,0x62,0x00,0x80,0x51,0x66,0x8c,0x21,0x38,0x60,0x00, +0x86,0x51,0x60,0xa0,0x87,0x51,0x60,0xa0,0x1c,0x00,0x05,0x24,0x7b,0x0f,0x00,0x08, +0x01,0x00,0x03,0x24,0x08,0x00,0xa0,0x04,0x21,0x10,0x04,0x01,0x04,0x10,0xa3,0x00, +0x24,0x10,0xc2,0x00,0xfb,0xff,0x40,0x10,0xff,0xff,0xa5,0x24,0x01,0x00,0xa5,0x24, +0x86,0x51,0xe5,0xa0,0x21,0x10,0x04,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00, +0x02,0x80,0x03,0x3c,0x80,0x10,0x02,0x00,0x68,0x15,0x63,0x24,0x21,0x18,0x43,0x00, +0x80,0x51,0x66,0x8c,0x21,0x28,0x00,0x00,0x8f,0x0f,0x00,0x08,0x01,0x00,0x07,0x24, +0x1d,0x00,0xa2,0x28,0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x04,0x10,0xa7,0x00, +0x24,0x10,0xc2,0x00,0xfa,0xff,0x40,0x10,0x01,0x00,0xa5,0x24,0xff,0xff,0xa5,0x24, +0x08,0x00,0xe0,0x03,0x87,0x51,0x65,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xc8,0xff,0xbd,0x27,0x28,0x00,0xb6,0xaf,0x02,0x80,0x16,0x3c,0x30,0x00,0xbe,0xaf, +0x2c,0x00,0xb7,0xaf,0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x18,0x00,0xb2,0xaf, +0x14,0x00,0xb1,0xaf,0x01,0x00,0x15,0x24,0x21,0x88,0x00,0x00,0x68,0x15,0xde,0x26, +0x21,0xa0,0x00,0x00,0x21,0x90,0x00,0x00,0x25,0xb0,0x17,0x3c,0x34,0x00,0xbf,0xaf, +0x1c,0x00,0xb3,0xaf,0xb0,0x0f,0x00,0x08,0x10,0x00,0xb0,0xaf,0x01,0x00,0x31,0x26, +0x20,0x00,0x22,0x2e,0x94,0x00,0x52,0x26,0x2e,0x00,0x40,0x10,0x94,0x00,0x94,0x26, +0x68,0x15,0xc2,0x26,0x21,0x30,0x42,0x02,0x84,0x51,0xc5,0x8c,0x00,0x00,0x00,0x00, +0x02,0x13,0x05,0x00,0x01,0x00,0x42,0x30,0xf4,0xff,0x55,0x14,0x42,0x1a,0x05,0x00, +0x74,0x51,0xc2,0x8c,0x07,0x00,0x64,0x30,0x02,0x11,0x02,0x00,0x7f,0x00,0x43,0x30, +0x2d,0x00,0x95,0x10,0x07,0x00,0xb3,0x30,0x02,0x00,0x82,0x28,0x3a,0x00,0x40,0x14, +0x02,0x00,0x02,0x24,0x30,0x00,0x82,0x10,0x03,0x00,0x02,0x24,0x3c,0x00,0x82,0x10, +0x1a,0x00,0x62,0x2c,0x21,0x80,0x9e,0x02,0x84,0x51,0x02,0x8e,0x04,0x00,0x63,0x2e, +0x42,0x12,0x02,0x00,0x0a,0x00,0x60,0x10,0x07,0x00,0x44,0x30,0x0f,0x0f,0x00,0x0c, +0x21,0x28,0x60,0x02,0x80,0x20,0x13,0x00,0x7c,0x51,0x02,0xae,0x21,0x20,0x97,0x00, +0x84,0x01,0x83,0x8c,0x00,0x00,0x00,0x00,0x24,0x18,0x62,0x00,0x80,0x51,0x03,0xae, +0x6a,0x0f,0x00,0x0c,0x21,0x20,0x20,0x02,0x21,0x10,0x37,0x02,0x01,0x00,0x31,0x26, +0x60,0x01,0x43,0x90,0x20,0x00,0x22,0x2e,0x94,0x00,0x52,0x26,0xd4,0xff,0x40,0x14, +0x94,0x00,0x94,0x26,0x34,0x00,0xbf,0x8f,0x30,0x00,0xbe,0x8f,0x2c,0x00,0xb7,0x8f, +0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x32,0x00,0x62,0x2c,0xda,0xff,0x40,0x10, +0x21,0x80,0x9e,0x02,0xff,0xf1,0x03,0x24,0x24,0x10,0xa3,0x00,0x00,0x04,0x42,0x34, +0xc5,0x0f,0x00,0x08,0x84,0x51,0xc2,0xac,0x38,0x00,0x62,0x2c,0x12,0x00,0x40,0x14, +0x14,0x00,0x62,0x2c,0xff,0xf1,0x03,0x24,0x24,0x10,0xa3,0x00,0x00,0x02,0x42,0x34, +0xc5,0x0f,0x00,0x08,0x84,0x51,0xc2,0xac,0xcb,0xff,0x80,0x14,0x21,0x80,0x9e,0x02, +0xff,0xf1,0x03,0x24,0x24,0x10,0xa3,0x00,0xc6,0x0f,0x00,0x08,0x84,0x51,0xc2,0xac, +0xc5,0xff,0x40,0x14,0x21,0x80,0x9e,0x02,0xff,0xf1,0x03,0x24,0x24,0x10,0xa3,0x00, +0xf0,0x0f,0x00,0x08,0x00,0x04,0x42,0x34,0xbf,0xff,0x40,0x10,0x21,0x80,0x9e,0x02, +0xff,0xf1,0x03,0x24,0x24,0x10,0xa3,0x00,0x00,0x06,0x42,0x34,0xc6,0x0f,0x00,0x08, +0x84,0x51,0xc2,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd8,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0xc0,0x80,0x04,0x00,0x21,0x80,0x04,0x02,0x80,0x80,0x10,0x00, +0x21,0x80,0x04,0x02,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,0x80,0x80,0x10,0x00, +0x20,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x21,0x80,0x02,0x02, +0x14,0x00,0xb1,0xaf,0x84,0x51,0x03,0x8e,0x25,0xb0,0x02,0x3c,0x80,0x01,0x53,0x34, +0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0x71,0x92, +0x7c,0x51,0x05,0x8e,0x84,0x01,0x62,0x8c,0x21,0x90,0x80,0x00,0xff,0x00,0x31,0x32, +0x24,0x10,0x45,0x00,0x6a,0x0f,0x00,0x0c,0x80,0x51,0x02,0xae,0x86,0x51,0x04,0x92, +0xe9,0x0e,0x00,0x0c,0xff,0x00,0x45,0x32,0x86,0x51,0x04,0x92,0xff,0x0e,0x00,0x0c, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x88,0x62,0x00, +0x00,0x00,0x71,0xa2,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27, +0xff,0xff,0x84,0x30,0x00,0x02,0x82,0x30,0x07,0x00,0x03,0x24,0x0d,0x00,0x40,0x14, +0x0b,0x00,0x84,0x30,0x0c,0x00,0x82,0x2c,0x0a,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00,0xa0,0x9f,0x63,0x24,0x21,0x10,0x43,0x00, +0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00, +0x07,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x06,0x00,0x03,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x05,0x00,0x03,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x04,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x03,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x02,0x00,0x03,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x21,0x18,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00, +0x90,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x68,0x00,0xbe,0xaf,0x64,0x00,0xb7,0xaf, +0x60,0x00,0xb6,0xaf,0x5c,0x00,0xb5,0xaf,0x54,0x00,0xb3,0xaf,0x50,0x00,0xb2,0xaf, +0x6c,0x00,0xbf,0xaf,0x58,0x00,0xb4,0xaf,0x4c,0x00,0xb1,0xaf,0x48,0x00,0xb0,0xaf, +0xd0,0x9f,0x42,0x24,0x00,0x00,0x54,0x8c,0x08,0x00,0x03,0x24,0x10,0x00,0xa3,0xaf, +0x21,0x98,0x00,0x00,0x21,0xa8,0x00,0x00,0x21,0xb8,0x00,0x00,0x21,0xf0,0x00,0x00, +0x14,0x00,0xa0,0xaf,0x18,0x00,0xa0,0xaf,0x1c,0x00,0xa0,0xaf,0x20,0x00,0xa0,0xaf, +0x21,0xb0,0x00,0x00,0x24,0x00,0xa0,0xaf,0x28,0x00,0xa0,0xaf,0x2c,0x00,0xa0,0xaf, +0x30,0x00,0xa0,0xaf,0x34,0x00,0xa0,0xaf,0x38,0x00,0xa0,0xaf,0x3c,0x00,0xa0,0xaf, +0x40,0x00,0xa0,0xaf,0x21,0x90,0x80,0x02,0x84,0x51,0x42,0x8e,0x00,0x00,0x00,0x00, +0x02,0x13,0x02,0x00,0x01,0x00,0x42,0x30,0x6c,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c, +0x21,0x10,0x62,0x02,0x60,0x01,0x44,0x90,0x6c,0x51,0x43,0x8e,0x68,0x51,0x46,0x8e, +0xff,0x00,0x91,0x30,0x02,0x80,0x04,0x3c,0x68,0x15,0x84,0x24,0x21,0x10,0x24,0x02, +0x73,0x44,0x44,0x90,0x56,0x44,0x45,0x90,0x50,0x51,0x47,0x8e,0x18,0x00,0x64,0x00, +0x12,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0xc5,0x00, +0x12,0x30,0x00,0x00,0x21,0x30,0xc3,0x00,0x2b,0x10,0xe6,0x00,0x25,0x01,0x40,0x14, +0x23,0x10,0xe6,0x00,0x50,0x51,0x42,0xae,0x6c,0x51,0x44,0x8e,0x68,0x51,0x47,0x8e, +0x54,0x51,0x48,0x8e,0x58,0x51,0x45,0x8e,0x60,0x51,0x46,0x8e,0x64,0x51,0x43,0x8e, +0x21,0x38,0xe4,0x00,0x02,0x80,0x04,0x3c,0x68,0x15,0x84,0x24,0x21,0x10,0x24,0x02, +0x21,0x40,0x05,0x01,0x21,0x30,0xc3,0x00,0xca,0x44,0x42,0x90,0x50,0x51,0x4a,0x8e, +0x0c,0x00,0xe0,0x10,0x21,0x48,0x00,0x00,0x2b,0x48,0x47,0x00,0x0b,0x00,0x20,0x15, +0x02,0x80,0x02,0x3c,0x07,0x00,0x22,0x2e,0x93,0x01,0x40,0x14,0xc0,0x10,0x07,0x00, +0x0c,0x00,0x02,0x24,0x8f,0x01,0x22,0x12,0x0d,0x00,0x02,0x24,0x8e,0x01,0x22,0x12, +0xc0,0x10,0x07,0x00,0x81,0x00,0x20,0x11,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24, +0x80,0x18,0x11,0x00,0x21,0x18,0x62,0x00,0x21,0x20,0x51,0x02,0xc2,0x51,0x85,0x90, +0xec,0x44,0x62,0x8c,0x00,0x00,0x00,0x00,0x04,0x10,0xa2,0x00,0x2b,0x10,0x4a,0x00, +0x76,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xe0,0x51,0x42,0x8e,0x01,0x00,0x07,0x24, +0x04,0x18,0x27,0x02,0x24,0x10,0x43,0x00,0x04,0x01,0x40,0x10,0x1c,0x00,0x22,0x2e, +0x21,0x28,0x51,0x02,0x88,0x51,0xa6,0x90,0xc2,0x51,0xa2,0x90,0x0a,0x00,0x04,0x24, +0xff,0x00,0xc3,0x30,0x04,0x20,0x44,0x00,0x2a,0x18,0x64,0x00,0xfb,0x00,0x60,0x10, +0x1c,0x00,0x22,0x2e,0x01,0x00,0xc2,0x24,0xff,0x00,0x43,0x30,0x8c,0x01,0x64,0x10, +0x88,0x51,0xa2,0xa0,0x02,0x80,0x04,0x3c,0x68,0x15,0x85,0x24,0x80,0x10,0x11,0x00, +0x21,0x10,0x45,0x00,0x60,0x45,0x44,0x8c,0xec,0x44,0x43,0x8c,0x21,0x30,0xc5,0x02, +0x40,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x21,0x18,0x62,0x00,0x82,0x50,0x03,0x00, +0x50,0x51,0xca,0xac,0xec,0x65,0xa3,0x8c,0xff,0xff,0x02,0x34,0x03,0x00,0x62,0x10, +0x21,0x20,0x20,0x02,0xe9,0x0e,0x00,0x0c,0xff,0x00,0x65,0x32,0xff,0x0e,0x00,0x0c, +0x21,0x20,0x20,0x02,0x10,0x00,0xa4,0x8f,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24, +0x0a,0x20,0x62,0x00,0xbc,0x00,0x60,0x12,0x10,0x00,0xa4,0xaf,0x02,0x80,0x03,0x3c, +0x68,0x15,0x62,0x24,0x21,0x10,0xa2,0x02,0x64,0x51,0x40,0xac,0x68,0x51,0x40,0xac, +0x6c,0x51,0x40,0xac,0x54,0x51,0x40,0xac,0x58,0x51,0x40,0xac,0x5c,0x51,0x40,0xac, +0x60,0x51,0x40,0xac,0x40,0x00,0xa4,0x8f,0x3c,0x00,0xa2,0x8f,0x01,0x00,0x73,0x26, +0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x40,0x00,0xa4,0xaf,0x3c,0x00,0xa2,0xaf, +0x38,0x00,0xa4,0x8f,0x34,0x00,0xa2,0x8f,0x20,0x00,0x63,0x2a,0x94,0x00,0x84,0x24, +0x94,0x00,0x42,0x24,0x38,0x00,0xa4,0xaf,0x34,0x00,0xa2,0xaf,0x30,0x00,0xa4,0x8f, +0x2c,0x00,0xa2,0x8f,0x94,0x00,0x52,0x26,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24, +0x30,0x00,0xa4,0xaf,0x2c,0x00,0xa2,0xaf,0x28,0x00,0xa4,0x8f,0x24,0x00,0xa2,0x8f, +0x94,0x00,0xd6,0x26,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x28,0x00,0xa4,0xaf, +0x24,0x00,0xa2,0xaf,0x20,0x00,0xa4,0x8f,0x1c,0x00,0xa2,0x8f,0x94,0x00,0xde,0x27, +0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x20,0x00,0xa4,0xaf,0x1c,0x00,0xa2,0xaf, +0x18,0x00,0xa4,0x8f,0x14,0x00,0xa2,0x8f,0x94,0x00,0x94,0x26,0x94,0x00,0x84,0x24, +0x94,0x00,0x42,0x24,0x18,0x00,0xa4,0xaf,0x14,0x00,0xa2,0xaf,0x94,0x00,0xf7,0x26, +0x59,0xff,0x60,0x14,0x94,0x00,0xb5,0x26,0x10,0x00,0xa3,0x8f,0x6c,0x00,0xbf,0x8f, +0x68,0x00,0xbe,0x8f,0x64,0x00,0xb7,0x8f,0x60,0x00,0xb6,0x8f,0x5c,0x00,0xb5,0x8f, +0x58,0x00,0xb4,0x8f,0x54,0x00,0xb3,0x8f,0x50,0x00,0xb2,0x8f,0x4c,0x00,0xb1,0x8f, +0x48,0x00,0xb0,0x8f,0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34,0x70,0x00,0xbd,0x27, +0x00,0x00,0x43,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x87,0x00,0xe0,0x10, +0x00,0x00,0x00,0x00,0x87,0x00,0x20,0x15,0x02,0x80,0x03,0x3c,0x40,0x10,0x07,0x00, +0x21,0x10,0x47,0x00,0x82,0x10,0x02,0x00,0x2b,0x10,0x46,0x00,0xa7,0xff,0x40,0x10, +0x00,0x00,0x00,0x00,0x20,0x00,0xa2,0x8f,0x02,0x80,0x04,0x3c,0x68,0x15,0x88,0x24, +0x21,0x20,0x48,0x00,0x21,0x30,0x91,0x00,0xe0,0x51,0x83,0x8c,0x01,0x00,0x05,0x24, +0x04,0x10,0x25,0x02,0xa5,0x51,0xc7,0x90,0x27,0x10,0x02,0x00,0x24,0x18,0x62,0x00, +0xe0,0x51,0x83,0xac,0x09,0x00,0xe5,0x10,0x88,0x51,0xc0,0xa0,0x1c,0x00,0xa3,0x8f, +0x21,0x38,0x00,0x00,0x21,0x20,0x68,0x00,0x21,0x18,0x87,0x00,0x01,0x00,0xe7,0x24, +0x1d,0x00,0xe2,0x28,0xfc,0xff,0x40,0x14,0xc2,0x51,0x60,0xa0,0x02,0x80,0x04,0x3c, +0x68,0x15,0x83,0x24,0x18,0x00,0xa4,0x8f,0x21,0x50,0x60,0x00,0x21,0x38,0x00,0x00, +0x21,0x10,0x83,0x00,0x21,0x10,0x51,0x00,0xa5,0x51,0x40,0xa0,0x02,0x80,0x03,0x3c, +0x02,0x80,0x02,0x3c,0xe4,0x9e,0x49,0x24,0x70,0x9e,0x68,0x24,0x80,0x18,0x07,0x00, +0x21,0x10,0x69,0x00,0x21,0x20,0x68,0x00,0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c, +0x01,0x00,0xe7,0x24,0x21,0x18,0x6a,0x00,0x1d,0x00,0xe2,0x28,0xec,0x44,0x65,0xac, +0xf6,0xff,0x40,0x14,0x60,0x45,0x66,0xac,0x15,0x00,0x20,0x12,0x02,0x80,0x05,0x3c, +0x87,0x51,0x82,0x92,0xff,0xff,0x27,0x26,0x2a,0x10,0xe2,0x00,0x10,0x00,0x40,0x14, +0x02,0x80,0x03,0x3c,0x14,0x00,0xa4,0x8f,0x68,0x15,0x62,0x24,0x21,0x10,0x82,0x00, +0x87,0x51,0x45,0x90,0x80,0x51,0x44,0x8c,0x01,0x00,0x06,0x24,0x04,0x18,0xe6,0x00, +0x24,0x10,0x83,0x00,0x06,0x01,0x43,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0xe7,0x24, +0x2a,0x10,0xe5,0x00,0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00,0x02,0x80,0x05,0x3c, +0xee,0x7d,0xa3,0x90,0x22,0x00,0x02,0x24,0xe8,0x00,0x62,0x10,0x02,0x80,0x03,0x3c, +0x02,0x80,0x04,0x3c,0x68,0x15,0x83,0x24,0x80,0x10,0x11,0x00,0x21,0x10,0x43,0x00, +0x60,0x45,0x44,0x8c,0xec,0x44,0x43,0x8c,0xee,0x7d,0xa5,0x90,0x40,0x10,0x04,0x00, +0x21,0x10,0x44,0x00,0x21,0x18,0x62,0x00,0x22,0x00,0x02,0x24,0xd6,0x00,0xa2,0x10, +0x82,0x50,0x03,0x00,0xe0,0x51,0x83,0x8e,0x01,0x00,0x02,0x24,0x04,0x10,0x22,0x02, +0x25,0x18,0x62,0x00,0xe0,0x51,0x83,0xae,0x02,0x80,0x02,0x3c,0x68,0x15,0x43,0x24, +0x21,0x10,0xe3,0x02,0x50,0x51,0x4a,0xac,0xec,0x65,0x64,0x8c,0xff,0xff,0x02,0x34, +0x44,0xff,0x82,0x14,0x21,0x20,0x20,0x02,0xff,0x0e,0x00,0x0c,0x21,0x20,0x20,0x02, +0x10,0x00,0xa4,0x8f,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x20,0x62,0x00, +0x46,0xff,0x60,0x16,0x10,0x00,0xa4,0xaf,0x02,0x80,0x02,0x3c,0x68,0x15,0x50,0x24, +0x58,0x51,0x05,0x96,0x54,0x51,0x02,0x96,0x25,0xb0,0x11,0x3c,0x00,0x2c,0x05,0x00, +0x21,0x28,0x45,0x00,0x82,0x4f,0x00,0x0c,0x68,0x0c,0x24,0x36,0x64,0x51,0x02,0x8e, +0x60,0x51,0x05,0x8e,0x5c,0x51,0x03,0x96,0x6c,0x0c,0x24,0x36,0x21,0x28,0xa2,0x00, +0x00,0x2c,0x05,0x00,0x82,0x4f,0x00,0x0c,0x21,0x28,0x65,0x00,0xf8,0x10,0x00,0x08, +0x02,0x80,0x03,0x3c,0xa2,0x10,0x00,0x08,0x50,0x51,0x40,0xae,0x27,0xff,0x20,0x11, +0x02,0x80,0x03,0x3c,0x68,0x15,0x62,0x24,0x80,0x18,0x11,0x00,0x21,0x18,0x62,0x00, +0x60,0x45,0x64,0x8c,0x00,0x00,0x00,0x00,0x2b,0x20,0x44,0x01,0x1f,0xff,0x80,0x10, +0x00,0x00,0x00,0x00,0x49,0x11,0x00,0x08,0x00,0x00,0x00,0x00,0x0a,0xff,0x40,0x10, +0x02,0x80,0x04,0x3c,0x21,0x20,0x51,0x02,0xa5,0x51,0x83,0x90,0x01,0x00,0x02,0x24, +0x78,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x40,0x00,0xa3,0x8f,0x68,0x15,0x42,0x24, +0x21,0x20,0x62,0x00,0x21,0x38,0x00,0x00,0x21,0x18,0x87,0x00,0x01,0x00,0xe7,0x24, +0x1d,0x00,0xe2,0x28,0xfc,0xff,0x40,0x14,0xc2,0x51,0x60,0xa0,0x3c,0x00,0xa2,0x8f, +0x02,0x80,0x04,0x3c,0x68,0x15,0x85,0x24,0x21,0x30,0x45,0x00,0xe0,0x51,0xc2,0x8c, +0x01,0x00,0x03,0x24,0x04,0x18,0x23,0x02,0x27,0x18,0x03,0x00,0x21,0x20,0xd1,0x00, +0x24,0x10,0x43,0x00,0xa5,0x51,0x80,0xa0,0xe0,0x51,0xc2,0xac,0x12,0x00,0x20,0x16, +0x88,0x51,0x80,0xa0,0x86,0x51,0xc2,0x90,0x00,0x00,0x00,0x00,0x0e,0x00,0x40,0x10, +0x01,0x00,0x07,0x24,0x38,0x00,0xa3,0x8f,0x01,0x00,0x06,0x24,0x21,0x10,0x65,0x00, +0x86,0x51,0x44,0x90,0x80,0x51,0x45,0x8c,0x04,0x18,0xe6,0x00,0x24,0x10,0xa3,0x00, +0x8d,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xe7,0x24,0x2a,0x10,0x87,0x00, +0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00,0x02,0x80,0x02,0x3c,0x68,0x15,0x44,0x24, +0x34,0x00,0xa2,0x8f,0x01,0x00,0x27,0x26,0x21,0x18,0x44,0x00,0x86,0x51,0x62,0x90, +0x00,0x00,0x00,0x00,0x2a,0x10,0x47,0x00,0x0f,0x00,0x40,0x14,0x02,0x80,0x05,0x3c, +0x30,0x00,0xa3,0x8f,0x01,0x00,0x06,0x24,0x21,0x10,0x64,0x00,0x86,0x51,0x45,0x90, +0x80,0x51,0x44,0x8c,0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00,0x73,0x00,0x43,0x10, +0x00,0x00,0x00,0x00,0x01,0x00,0xe7,0x24,0x2a,0x10,0xa7,0x00,0xfa,0xff,0x40,0x10, +0x04,0x18,0xe6,0x00,0x02,0x80,0x05,0x3c,0xee,0x7d,0xa3,0x90,0x22,0x00,0x02,0x24, +0x3e,0x00,0x62,0x10,0xee,0xff,0x22,0x26,0xee,0x7d,0xa3,0x90,0x22,0x00,0x02,0x24, +0xbd,0xfe,0x62,0x14,0x02,0x80,0x04,0x3c,0x28,0x00,0xa2,0x8f,0x68,0x15,0x86,0x24, +0x21,0x20,0x46,0x00,0x84,0x51,0x85,0x8c,0x01,0x00,0x03,0x24,0x42,0x13,0x05,0x00, +0x07,0x00,0x42,0x30,0xb3,0xfe,0x43,0x10,0x14,0x00,0x22,0x2e,0xb1,0xfe,0x40,0x14, +0x1c,0x00,0x22,0x2e,0xaf,0xfe,0x40,0x10,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34, +0x24,0x10,0xa2,0x00,0x00,0x20,0x42,0x34,0x84,0x51,0x82,0xac,0x87,0x51,0x83,0x90, +0xff,0xff,0x27,0x26,0x2a,0x18,0xe3,0x00,0xa6,0xfe,0x60,0x14,0x00,0x00,0x00,0x00, +0x24,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x21,0x10,0x66,0x00,0x87,0x51,0x45,0x90, +0x80,0x51,0x44,0x8c,0x42,0x12,0x00,0x08,0x01,0x00,0x06,0x24,0x2a,0x10,0xe5,0x00, +0x9c,0xfe,0x40,0x14,0x00,0x00,0x00,0x00,0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00, +0xfa,0xff,0x43,0x14,0xff,0xff,0xe7,0x24,0x01,0x00,0xe7,0x24,0xdd,0x10,0x00,0x08, +0xff,0x00,0xf1,0x30,0xc0,0x10,0x07,0x00,0x23,0x10,0x47,0x00,0xc2,0x10,0x02,0x00, +0x2b,0x10,0x48,0x00,0x7c,0xfe,0x40,0x14,0x00,0x00,0x00,0x00,0xbd,0x10,0x00,0x08, +0x00,0x00,0x00,0x00,0x18,0x00,0x22,0x2e,0x17,0x00,0x40,0x14,0x05,0x00,0x22,0x2e, +0xc2,0x51,0x83,0x90,0x00,0x00,0x00,0x00,0x05,0x00,0x62,0x2c,0x8b,0xff,0x40,0x10, +0x01,0x00,0x62,0x24,0xe3,0x11,0x00,0x08,0xc2,0x51,0x82,0xa0,0xff,0x00,0x42,0x30, +0x02,0x00,0x42,0x2c,0xc0,0xff,0x40,0x10,0x02,0x80,0x04,0x3c,0x2c,0x00,0xa3,0x8f, +0x68,0x15,0x82,0x24,0x21,0x10,0x62,0x00,0x80,0x51,0x43,0x8c,0x00,0x01,0x04,0x3c, +0x18,0x00,0x02,0x24,0x24,0x18,0x64,0x00,0x1e,0x12,0x00,0x08,0x0b,0x88,0x43,0x00, +0xdd,0x10,0x00,0x08,0xa5,0x51,0xa7,0xa0,0x04,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0xc2,0x51,0x83,0x90,0x57,0x12,0x00,0x08,0x03,0x00,0x62,0x2c,0xc2,0x51,0x83,0x90, +0x57,0x12,0x00,0x08,0x04,0x00,0x62,0x2c,0x13,0x00,0x02,0x24,0x29,0xff,0x22,0x16, +0x02,0x80,0x02,0x3c,0xa4,0x11,0x00,0x08,0x68,0x15,0x43,0x24,0x68,0x15,0x62,0x24, +0x21,0x20,0xc2,0x03,0x84,0x51,0x83,0x8c,0x00,0x00,0x00,0x00,0x42,0x13,0x03,0x00, +0x07,0x00,0x42,0x30,0x12,0xff,0x40,0x10,0x14,0x00,0x22,0x2e,0x10,0xff,0x40,0x10, +0x0c,0x00,0x22,0x2e,0x0e,0xff,0x40,0x14,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34, +0x24,0x10,0x62,0x00,0x90,0x11,0x00,0x08,0x84,0x51,0x82,0xac,0xff,0x00,0xf1,0x30, +0x1a,0x12,0x00,0x08,0x02,0x80,0x05,0x3c,0x02,0x12,0x00,0x08,0xff,0x00,0xf1,0x30, +0x8b,0x11,0x00,0x08,0xff,0x00,0xf1,0x30,0xa8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c, +0x38,0x00,0xb2,0xaf,0x54,0x00,0xbf,0xaf,0x50,0x00,0xbe,0xaf,0x4c,0x00,0xb7,0xaf, +0x48,0x00,0xb6,0xaf,0x44,0x00,0xb5,0xaf,0x40,0x00,0xb4,0xaf,0x3c,0x00,0xb3,0xaf, +0x34,0x00,0xb1,0xaf,0x30,0x00,0xb0,0xaf,0x68,0x15,0x46,0x24,0x65,0x65,0xc4,0x90, +0x60,0x65,0xc3,0x8c,0x5c,0x65,0xc2,0x8c,0x21,0x90,0x64,0x00,0x2b,0x10,0x42,0x02, +0x7e,0x00,0x40,0x10,0x21,0x88,0xc0,0x00,0x02,0x80,0x1e,0x3c,0x02,0x80,0x17,0x3c, +0x21,0xa8,0xc0,0x00,0x21,0xb0,0xc0,0x00,0xad,0x12,0x00,0x08,0x01,0x00,0x14,0x24, +0x5c,0x65,0xc2,0x8e,0x10,0x00,0x52,0x26,0x2b,0x10,0x42,0x02,0x73,0x00,0x40,0x10, +0x21,0x88,0xc0,0x02,0x65,0x65,0x22,0x92,0xff,0xff,0x45,0x32,0x25,0x28,0xb7,0x00, +0x10,0x00,0x42,0x24,0x65,0x65,0x22,0xa2,0x38,0x79,0xc4,0x27,0x60,0x45,0x00,0x0c, +0x10,0x00,0x06,0x24,0xf8,0x63,0x23,0x8e,0x00,0x00,0x00,0x00,0x42,0x18,0x03,0x00, +0x01,0x00,0x63,0x30,0x71,0x00,0x74,0x10,0x02,0x80,0x03,0x3c,0x68,0x15,0x63,0x24, +0xd4,0x63,0x62,0x8c,0x00,0x00,0x00,0x00,0x42,0x84,0x02,0x00,0x1f,0x00,0x10,0x32, +0xc0,0x48,0x10,0x00,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x55,0x00,0x84,0x51,0x45,0x8c,0x00,0x00,0x00,0x00, +0x02,0x1b,0x05,0x00,0x01,0x00,0x63,0x30,0xdd,0xff,0x60,0x10,0x21,0x30,0xa0,0x02, +0x25,0xb0,0x02,0x3c,0x21,0x40,0x02,0x02,0xd0,0x63,0xa7,0x8e,0xf8,0x63,0xa2,0x8e, +0x60,0x01,0x03,0x91,0x82,0x25,0x07,0x00,0x01,0x00,0x42,0x30,0xff,0x00,0x6b,0x30, +0x9a,0x00,0x54,0x10,0x3f,0x00,0x8a,0x30,0x02,0x80,0x04,0x3c,0xd4,0x9f,0x84,0x24, +0x00,0x00,0x86,0x8c,0x04,0x00,0x04,0x24,0xd0,0x63,0xc3,0x8c,0x00,0x00,0x00,0x00, +0x82,0x15,0x03,0x00,0x3f,0x00,0x42,0x30,0x05,0x00,0x42,0x28,0x0a,0x00,0x60,0x04, +0x0a,0x50,0x82,0x00,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x70,0x51,0x43,0x8c,0x04,0x00,0x0a,0x24, +0x01,0x00,0x63,0x24,0x70,0x51,0x43,0xac,0xd4,0x63,0xc2,0x8c,0x00,0x00,0x00,0x00, +0x02,0x13,0x02,0x00,0x1f,0x00,0x42,0x30,0x08,0x00,0x42,0x28,0xb8,0xff,0x40,0x10, +0x00,0x00,0x00,0x00,0xd0,0x63,0xc2,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30, +0xb3,0xff,0x4b,0x14,0x00,0x00,0x00,0x00,0x9f,0x00,0x40,0x11,0x21,0x10,0x30,0x01, +0xa8,0x00,0x54,0x11,0x80,0x10,0x02,0x00,0x02,0x00,0x02,0x24,0xb0,0x00,0x42,0x11, +0x21,0x10,0x30,0x01,0x03,0x00,0x02,0x24,0xb8,0x00,0x42,0x11,0x21,0x10,0x30,0x01, +0xc0,0x00,0x44,0x11,0x21,0x10,0x30,0x01,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00, +0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x28,0x46,0x00,0x74,0x51,0xa3,0x8c, +0x21,0x10,0x66,0x01,0x90,0x44,0x44,0x90,0x02,0x19,0x03,0x00,0x2b,0x18,0x64,0x00, +0xc8,0x00,0x60,0x14,0x00,0x00,0x00,0x00,0x68,0x51,0xa3,0x8c,0x80,0x10,0x0b,0x00, +0x21,0x10,0x4b,0x00,0x01,0x00,0x63,0x24,0x21,0x10,0x46,0x00,0x68,0x51,0xa3,0xac, +0x21,0x10,0x4a,0x00,0x34,0x43,0x44,0x90,0x50,0x51,0xa3,0x8c,0x00,0x00,0x00,0x00, +0x21,0x18,0x64,0x00,0x50,0x51,0xa3,0xac,0x5c,0x65,0xc2,0x8e,0x10,0x00,0x52,0x26, +0x2b,0x10,0x42,0x02,0x8f,0xff,0x40,0x14,0x21,0x88,0xc0,0x02,0x54,0x00,0xbf,0x8f, +0x50,0x00,0xbe,0x8f,0x4c,0x00,0xb7,0x8f,0x48,0x00,0xb6,0x8f,0x44,0x00,0xb5,0x8f, +0x40,0x00,0xb4,0x8f,0x3c,0x00,0xb3,0x8f,0x38,0x00,0xb2,0x8f,0x34,0x00,0xb1,0x8f, +0x30,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x58,0x00,0xbd,0x27,0xd4,0x63,0x22,0x8e, +0x00,0x00,0x00,0x00,0x42,0x14,0x02,0x00,0x10,0x00,0x43,0x30,0x90,0xff,0x60,0x10, +0x0f,0x00,0x50,0x30,0x54,0x4f,0x00,0x0c,0x48,0x00,0x04,0x24,0x74,0xff,0x40,0x10, +0x21,0x98,0x40,0x00,0x14,0x00,0x02,0x24,0x28,0x00,0x04,0x24,0x14,0x00,0x62,0xae, +0x0c,0x00,0x64,0xae,0x14,0x00,0xa3,0x8f,0xe0,0xff,0x04,0x24,0x08,0x00,0x07,0x24, +0x80,0x00,0x63,0x34,0x14,0x00,0xa3,0xaf,0xd4,0x63,0x26,0x8e,0x24,0x18,0x64,0x00, +0xff,0xe0,0x04,0x24,0x42,0x14,0x06,0x00,0x1f,0x00,0x42,0x30,0x25,0x18,0x62,0x00, +0x14,0x00,0xa3,0xaf,0xd0,0x63,0x25,0x8e,0x24,0x18,0x64,0x00,0x02,0x23,0x06,0x00, +0x82,0x13,0x05,0x00,0x00,0x1f,0x42,0x30,0x25,0x18,0x62,0x00,0xff,0xff,0x02,0x3c, +0xff,0x7f,0x42,0x34,0xc2,0x2f,0x05,0x00,0x24,0x18,0x62,0x00,0xc0,0x2b,0x05,0x00, +0x0f,0x00,0x02,0x3c,0x25,0x18,0x65,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x00,0x35,0x06,0x00,0xf0,0xff,0x02,0x3c,0x25,0x18,0x66,0x00,0xff,0xff,0x42,0x34, +0x0f,0x00,0x84,0x30,0x24,0x18,0x62,0x00,0x00,0x24,0x04,0x00,0x25,0x18,0x64,0x00, +0x02,0x80,0x04,0x3c,0x10,0x00,0xa5,0x27,0x8c,0x79,0x84,0x24,0x02,0x00,0x06,0x24, +0x04,0x00,0x02,0x24,0x11,0x00,0xa7,0xa3,0x14,0x00,0xa3,0xaf,0x6c,0x45,0x00,0x0c, +0x10,0x00,0xa2,0xa3,0x08,0x00,0x64,0x96,0x10,0x00,0xa5,0x27,0x02,0x00,0x06,0x24, +0x25,0x20,0x97,0x00,0x6c,0x45,0x00,0x0c,0x20,0x00,0x84,0x24,0x30,0x08,0x00,0x0c, +0x21,0x20,0x60,0x02,0xc1,0x12,0x00,0x08,0xc0,0x48,0x10,0x00,0x02,0x12,0x05,0x00, +0x01,0x00,0x42,0x30,0x14,0x00,0x54,0x10,0xc2,0x10,0x05,0x00,0x01,0x00,0x42,0x30, +0x76,0x00,0x54,0x10,0x00,0x00,0x00,0x00,0x04,0x64,0xa2,0x96,0x60,0x01,0x03,0x91, +0xc2,0x27,0x07,0x00,0x21,0x10,0x42,0x01,0x20,0x64,0xa3,0xa2,0x13,0x00,0x80,0x10, +0x04,0x64,0xa2,0xa6,0x59,0xff,0x94,0x14,0x02,0x80,0x04,0x3c,0x00,0x64,0xa2,0x96, +0x0a,0x64,0xa3,0x96,0x01,0x00,0x42,0x24,0x01,0x00,0x63,0x24,0x00,0x64,0xa2,0xa6, +0xd7,0x12,0x00,0x08,0x0a,0x64,0xa3,0xa6,0x5d,0x00,0xe0,0x04,0x00,0x00,0x00,0x00, +0x02,0x64,0xa3,0x96,0x0e,0x64,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24, +0x0e,0x64,0xa2,0xa6,0xd6,0x12,0x00,0x08,0x02,0x64,0xc3,0xa4,0x02,0x64,0xa3,0x96, +0x10,0x64,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x10,0x64,0xa2,0xa6, +0xd6,0x12,0x00,0x08,0x02,0x64,0xc3,0xa4,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x54,0x51,0x43,0x8c,0x00,0x00,0x00,0x00, +0x01,0x00,0x63,0x24,0x5c,0xff,0x54,0x15,0x54,0x51,0x43,0xac,0x21,0x10,0x30,0x01, +0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00, +0x58,0x51,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x58,0x51,0x43,0xac, +0x02,0x00,0x02,0x24,0x54,0xff,0x42,0x15,0x03,0x00,0x02,0x24,0x21,0x10,0x30,0x01, +0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00, +0x5c,0x51,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x5c,0x51,0x43,0xac, +0x03,0x00,0x02,0x24,0x4a,0xff,0x42,0x15,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00, +0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x60,0x51,0x43,0x8c, +0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x43,0xff,0x44,0x15,0x60,0x51,0x43,0xac, +0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x46,0x00,0x64,0x51,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24, +0x64,0x51,0x43,0xac,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00, +0x80,0x10,0x02,0x00,0x21,0x28,0x46,0x00,0x74,0x51,0xa3,0x8c,0x21,0x10,0x66,0x01, +0x90,0x44,0x44,0x90,0x02,0x19,0x03,0x00,0x2b,0x18,0x64,0x00,0x3a,0xff,0x60,0x10, +0x00,0x00,0x00,0x00,0x6c,0x51,0xa3,0x8c,0x80,0x10,0x0b,0x00,0x02,0x80,0x04,0x3c, +0x68,0x15,0x84,0x24,0x21,0x10,0x4b,0x00,0x01,0x00,0x63,0x24,0x21,0x10,0x44,0x00, +0x6c,0x51,0xa3,0xac,0x21,0x10,0x4a,0x00,0xc5,0x43,0x44,0x90,0x50,0x51,0xa3,0x8c, +0x00,0x00,0x00,0x00,0x21,0x18,0x64,0x00,0x1a,0x13,0x00,0x08,0x50,0x51,0xa3,0xac, +0x00,0x64,0xa3,0x96,0x08,0x64,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24, +0x08,0x64,0xa2,0xa6,0xd6,0x12,0x00,0x08,0x00,0x64,0xc3,0xa4,0x08,0x00,0xe0,0x04, +0x00,0x00,0x00,0x00,0x02,0x64,0xa3,0x96,0x0c,0x64,0xa2,0x96,0x01,0x00,0x63,0x24, +0x01,0x00,0x42,0x24,0x0c,0x64,0xa2,0xa6,0xd6,0x12,0x00,0x08,0x02,0x64,0xc3,0xa4, +0x00,0x64,0xa3,0x96,0x06,0x64,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24, +0x06,0x64,0xa2,0xa6,0xd6,0x12,0x00,0x08,0x00,0x64,0xc3,0xa4,0x25,0xb0,0x05,0x3c, +0x4c,0x00,0xa2,0x34,0x02,0x80,0x07,0x3c,0x00,0x00,0x43,0x90,0x68,0x15,0xe4,0x24, +0xed,0x4a,0x82,0x90,0x03,0x00,0x66,0x30,0x24,0x00,0x46,0x10,0x00,0x00,0x00,0x00, +0x18,0x00,0xc0,0x14,0x25,0xb0,0x03,0x3c,0xe6,0x42,0x82,0x90,0x00,0x00,0x00,0x00, +0x15,0x00,0x40,0x14,0x58,0x00,0x62,0x34,0x1c,0x00,0x02,0x24,0x50,0x0c,0xa3,0x34, +0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c, +0x58,0x0c,0x42,0x34,0x1c,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x25,0xb0,0x03,0x3c,0x58,0x00,0x62,0x34,0x00,0x00,0x45,0x8c,0x29,0xb0,0x04,0x3c, +0x5c,0x00,0x63,0x34,0x00,0x00,0x85,0xac,0x00,0x00,0x65,0x8c,0x68,0x15,0xe2,0x24, +0x04,0x00,0x84,0x34,0xed,0x4a,0x46,0xa0,0x00,0x00,0x85,0xac,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x25,0xb0,0x02,0x3c,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf, +0x2d,0x0a,0x46,0x34,0xa2,0x0d,0x43,0x34,0xa4,0x0d,0x44,0x34,0xa6,0x0d,0x45,0x34, +0xa8,0x0d,0x42,0x34,0x00,0x00,0x67,0x94,0x00,0x00,0x88,0x94,0x00,0x00,0xa9,0x94, +0x00,0x00,0x44,0x94,0x00,0x00,0xc3,0x90,0x02,0x80,0x0a,0x3c,0x68,0x15,0x42,0x25, +0x40,0x00,0x63,0x34,0xff,0x00,0x63,0x30,0xde,0x42,0x44,0xa4,0x00,0x00,0xc3,0xa0, +0xd8,0x42,0x47,0xa4,0xda,0x42,0x48,0xa4,0xdc,0x42,0x49,0xa4,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x25,0xb0,0x07,0x3c,0x5b,0x0a,0xe2,0x34,0x00,0x00,0x44,0x90, +0x68,0x15,0x46,0x25,0x5c,0x0a,0xe2,0x34,0x00,0x00,0x45,0x90,0xd8,0x42,0xc3,0x94, +0xda,0x42,0xc2,0x94,0xdc,0x42,0xc9,0x94,0xde,0x42,0xc8,0x94,0xff,0x00,0x84,0x30, +0x21,0x18,0x62,0x00,0x00,0x22,0x04,0x00,0xff,0x00,0xa5,0x30,0x21,0x20,0x85,0x00, +0x21,0x18,0x69,0x00,0xff,0xff,0x82,0x30,0x21,0x18,0x68,0x00,0x21,0x18,0x62,0x00, +0x64,0x0c,0xe7,0x34,0xff,0xff,0x42,0x30,0xe0,0x42,0xc3,0xac,0x00,0x00,0xe2,0xa4, +0xe4,0x42,0xc4,0xa4,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x45,0x25, +0x00,0x40,0xa2,0x8c,0x01,0x00,0x03,0x24,0x0f,0x00,0x44,0x30,0x07,0x00,0x83,0x10, +0x00,0x00,0x00,0x00,0x88,0x59,0x00,0x0c,0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xe4,0x42,0xa2,0x8c, +0x00,0x00,0x00,0x00,0x02,0x17,0x02,0x00,0x01,0x00,0x42,0x30,0xf5,0xff,0x40,0x14, +0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00, +0x03,0x00,0x63,0x30,0x3f,0x00,0x64,0x10,0x68,0x15,0x44,0x25,0xe6,0x42,0x82,0x90, +0x00,0x00,0x00,0x00,0x07,0x00,0x40,0x14,0x01,0x00,0x03,0x24,0x00,0x40,0x82,0x8c, +0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x0f,0x00,0x42,0x30,0x3c,0x00,0x43,0x10, +0x25,0xb0,0x02,0x3c,0x68,0x15,0x45,0x25,0xe6,0x42,0xa3,0x90,0xff,0x00,0x02,0x24, +0xe0,0xff,0x62,0x14,0x25,0xb0,0x03,0x3c,0xc8,0x42,0xa2,0x94,0xe0,0x42,0xa6,0x8c, +0x50,0x0c,0x63,0x34,0x00,0x00,0x64,0x90,0x2b,0x10,0xc2,0x00,0x85,0x00,0x40,0x10, +0x7f,0x00,0x84,0x30,0xff,0xff,0x82,0x24,0xff,0x00,0x44,0x30,0x68,0x15,0x45,0x25, +0xd0,0x42,0xa3,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x64,0x00,0x78,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x21,0x20,0x60,0x00,0x68,0x15,0x43,0x25,0xe0,0x42,0x62,0x8c, +0x00,0x00,0x00,0x00,0x11,0x27,0x42,0x2c,0x6d,0x00,0x40,0x14,0x3a,0x00,0x82,0x2c, +0x32,0x00,0x04,0x24,0x44,0x00,0x03,0x24,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34, +0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34,0x00,0x00,0x44,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x58,0x0c,0x42,0x34, +0x00,0x00,0x44,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x69,0x14,0x00,0x08, +0x00,0x00,0x00,0x00,0xe6,0x42,0xa2,0x90,0x00,0x00,0x00,0x00,0xbf,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x24,0x7b,0x14,0x00,0x08,0xe6,0x42,0xa2,0xa0, +0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30, +0xa4,0xff,0x60,0x10,0xff,0xff,0x02,0x34,0xe8,0x63,0x83,0x8c,0x00,0x00,0x00,0x00, +0xa0,0xff,0x62,0x10,0x00,0x00,0x00,0x00,0xe0,0x42,0x83,0x8c,0x00,0x00,0x00,0x00, +0x65,0x00,0x62,0x2c,0x59,0x00,0x40,0x14,0x28,0x00,0x62,0x2c,0xd2,0x42,0x83,0x90, +0x00,0x00,0x00,0x00,0x00,0x16,0x03,0x00,0x03,0x16,0x02,0x00,0xfe,0xff,0x42,0x24, +0xfc,0xff,0x42,0x28,0x02,0x00,0x40,0x10,0xfe,0xff,0x62,0x24,0xfc,0xff,0x02,0x24, +0xd2,0x42,0x82,0xa0,0x68,0x15,0x45,0x25,0xe8,0x63,0xa2,0x8c,0xd2,0x42,0xa3,0x90, +0xce,0x42,0xa6,0x90,0x02,0x11,0x02,0x00,0x7f,0x00,0x42,0x30,0x0a,0x00,0x44,0x24, +0x23,0x18,0x83,0x00,0x00,0x26,0x03,0x00,0x03,0x26,0x04,0x00,0xff,0x00,0xc2,0x30, +0x2a,0x10,0x44,0x00,0x4d,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x00,0x26,0x06,0x00, +0x03,0x26,0x04,0x00,0x68,0x15,0x43,0x25,0xe0,0x42,0x62,0x8c,0x00,0x00,0x00,0x00, +0x11,0x27,0x42,0x2c,0x33,0x00,0x40,0x14,0x3a,0x00,0x82,0x28,0x32,0x00,0x82,0x28, +0x30,0x00,0x40,0x10,0x3a,0x00,0x82,0x28,0x32,0x00,0x04,0x24,0x44,0x00,0x03,0x24, +0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c, +0x50,0x0c,0x42,0x34,0xff,0x00,0x84,0x30,0x00,0x00,0x44,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x58,0x0c,0x42,0x34,0x00,0x00,0x44,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x69,0x14,0x00,0x08,0x00,0x00,0x00,0x00, +0x95,0xff,0x40,0x10,0x48,0x00,0x03,0x24,0xa2,0x14,0x00,0x08,0x44,0x00,0x03,0x24, +0xd1,0x42,0xa3,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,0x9a,0x14,0x00,0x08, +0x0b,0x20,0x62,0x00,0xca,0x42,0xa2,0x94,0x00,0x00,0x00,0x00,0x2b,0x10,0xc2,0x00, +0x7a,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0xcc,0x42,0xa2,0x94,0x00,0x00,0x00,0x00, +0x2b,0x10,0xc2,0x00,0x07,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x92,0x14,0x00,0x08, +0x01,0x00,0x82,0x24,0xd2,0xff,0x40,0x10,0x48,0x00,0x03,0x24,0xf4,0x14,0x00,0x08, +0x44,0x00,0x03,0x24,0x92,0x14,0x00,0x08,0x02,0x00,0x82,0x24,0xb2,0xff,0x40,0x10, +0x68,0x15,0x45,0x25,0xd2,0x42,0x83,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x03,0x00, +0x03,0x16,0x02,0x00,0x02,0x00,0x42,0x24,0x0d,0x00,0x42,0x28,0x09,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0xd8,0x14,0x00,0x08,0x0c,0x00,0x02,0x24,0xcf,0x42,0xa3,0x80, +0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x2a,0x10,0x82,0x00,0xe9,0x14,0x00,0x08, +0x0b,0x20,0x62,0x00,0xd8,0x14,0x00,0x08,0x02,0x00,0x62,0x24,0xc0,0xff,0xbd,0x27, +0x28,0x00,0xb4,0xaf,0x25,0xb0,0x14,0x3c,0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf, +0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x20,0x00,0xb2,0xaf,0xd8,0x00,0x86,0x36, +0x00,0x00,0xc3,0x90,0x02,0x80,0x02,0x3c,0x68,0x15,0x51,0x24,0x2a,0xb0,0x10,0x3c, +0xa0,0xff,0x02,0x24,0x25,0x18,0x62,0x00,0x34,0x00,0x05,0x36,0xfe,0xff,0x02,0x24, +0xbc,0x42,0x32,0x92,0x40,0x00,0x04,0x24,0x00,0x00,0xc3,0xa0,0x00,0x00,0xa2,0xa0, +0x54,0x4f,0x00,0x0c,0x00,0x96,0x12,0x00,0x21,0x98,0x40,0x00,0x8d,0x00,0x60,0x12, +0x00,0x40,0x02,0x3c,0x08,0x00,0x63,0x8e,0xb0,0x03,0x82,0x36,0x25,0xb0,0x1e,0x3c, +0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,0xfb,0x44,0x00,0x0c,0x21,0xb8,0x20,0x02, +0x42,0x00,0xd5,0x37,0x03,0x0c,0xd1,0x37,0x17,0x0e,0xd6,0x37,0x04,0x00,0x14,0x24, +0x2a,0xb0,0x03,0x3c,0x06,0x00,0x63,0x34,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00, +0x00,0xff,0x42,0x30,0x0a,0x00,0x40,0x18,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c, +0x94,0xa2,0x84,0x24,0x00,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x94, +0x00,0x00,0x00,0x00,0x00,0xff,0x42,0x30,0xfc,0xff,0x40,0x1c,0x00,0x00,0x00,0x00, +0x08,0x00,0x65,0x8e,0x20,0x10,0x06,0x3c,0x01,0x00,0x04,0x24,0x00,0xfe,0xc6,0x34, +0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa4,0xaf,0x4d,0x01,0x00,0x0c, +0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,0x98,0xa2,0x42,0x24,0x00,0x00,0x45,0x8c, +0x01,0x00,0x03,0x24,0x21,0x20,0x00,0x00,0x00,0x00,0xa3,0xa0,0xff,0xff,0x03,0x24, +0x00,0x00,0xa3,0xa2,0x00,0x00,0x22,0x92,0x00,0x00,0x00,0x00,0xff,0x00,0x42,0x30, +0x40,0x00,0x42,0x34,0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30, +0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x02,0x00,0x02,0x24, +0x02,0x80,0x04,0x3c,0x00,0x00,0xa2,0xa0,0x68,0x15,0x83,0x24,0xc1,0x42,0x62,0x90, +0x00,0x00,0xc4,0x92,0x21,0x28,0x00,0x00,0x00,0x00,0xc2,0xa2,0xff,0x00,0x90,0x30, +0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30,0x06,0x00,0xa3,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0xa2,0x24,0xef,0xff,0x02,0x24,0x64,0x00,0x04,0x24,0x00,0x00,0xa2,0xa2, +0x1a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x92,0x21,0x20,0x00,0x00, +0xbf,0x00,0x42,0x30,0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30, +0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x1a,0x0c,0x00,0x0c, +0x84,0x03,0x04,0x24,0xf4,0x08,0xc2,0x37,0x00,0x00,0x43,0x8c,0x00,0x80,0x04,0x3c, +0xdf,0x07,0x84,0x34,0x00,0x00,0xd0,0xa2,0x21,0x10,0x00,0x00,0x24,0x28,0x64,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x00,0x00,0xa0,0xa2,0x00,0x00,0x22,0x92,0x21,0x20,0x00,0x00, +0xff,0x00,0x42,0x30,0x40,0x00,0x42,0x34,0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24, +0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24, +0xbe,0x42,0xe2,0x92,0x1f,0x00,0xa3,0x30,0x2b,0x10,0x62,0x00,0x0a,0x00,0x40,0x10, +0x02,0x80,0x02,0x3c,0xbf,0x42,0xe2,0x92,0x00,0x00,0x00,0x00,0x2b,0x10,0x43,0x00, +0x05,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x01,0x00,0x02,0x3c,0x25,0x10,0x62,0x00, +0x21,0x90,0x42,0x02,0x02,0x80,0x02,0x3c,0xee,0x7d,0x43,0x90,0x22,0x00,0x02,0x24, +0x1c,0x00,0x62,0x10,0x92,0x00,0x02,0x24,0x1b,0x00,0x62,0x10,0x02,0x80,0x03,0x3c, +0xff,0xff,0x94,0x26,0x1a,0x0c,0x00,0x0c,0xf4,0x01,0x04,0x24,0x89,0xff,0x81,0x06, +0x2a,0xb0,0x03,0x3c,0x04,0x00,0x60,0x12,0x25,0xb0,0x02,0x3c,0x70,0x4f,0x00,0x0c, +0x21,0x20,0x60,0x02,0x25,0xb0,0x02,0x3c,0xd8,0x02,0x42,0x34,0x00,0x00,0x52,0xac, +0x21,0x10,0x40,0x02,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x40,0x00,0xbd,0x27,0x02,0x80,0x03,0x3c,0x68,0x15,0x63,0x24,0xbe,0x42,0x62,0x90, +0xc0,0x07,0xa3,0x30,0x82,0x19,0x03,0x00,0x2b,0x10,0x62,0x00,0xe0,0xff,0x40,0x10, +0x02,0x80,0x04,0x3c,0x68,0x15,0x84,0x24,0xbf,0x42,0x82,0x90,0x00,0x00,0x00,0x00, +0x2b,0x10,0x43,0x00,0xda,0xff,0x40,0x10,0x00,0x12,0x03,0x00,0x10,0x00,0x03,0x3c, +0x25,0x10,0x43,0x00,0xd8,0x15,0x00,0x08,0x21,0x90,0x42,0x02,0xe0,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,0xf0,0xf8,0x06,0x34, +0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x6a,0x44,0x00,0x0c, +0x14,0x00,0xb1,0xaf,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x02,0x80,0x12,0x3c, +0xff,0xff,0x05,0x36,0x56,0x30,0x06,0x24,0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24, +0x68,0x15,0x51,0x26,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x04,0x43,0x23,0x92, +0x04,0x00,0x02,0x24,0x20,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,0x14,0x43,0x25,0x8e, +0x25,0xb0,0x10,0x3c,0x15,0x5a,0x00,0x0c,0x00,0x0e,0x04,0x36,0x14,0x43,0x25,0x8e, +0x15,0x5a,0x00,0x0c,0x04,0x0e,0x04,0x36,0x18,0x43,0x25,0x8e,0x15,0x5a,0x00,0x0c, +0x08,0x0e,0x04,0x36,0x14,0x43,0x25,0x8e,0x15,0x5a,0x00,0x0c,0x10,0x0e,0x04,0x36, +0x14,0x43,0x25,0x8e,0x15,0x5a,0x00,0x0c,0x14,0x0e,0x04,0x36,0x14,0x43,0x25,0x8e, +0x15,0x5a,0x00,0x0c,0x18,0x0e,0x04,0x36,0x14,0x43,0x25,0x8e,0x15,0x5a,0x00,0x0c, +0x1c,0x0e,0x04,0x36,0x68,0x15,0x43,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x04,0x00,0x02,0x24,0x20,0x00,0xbd,0x27, +0x08,0x00,0xe0,0x03,0x04,0x43,0x62,0xa0,0x00,0x0e,0x42,0x34,0x00,0x00,0x43,0x8c, +0x14,0x43,0x25,0x8e,0x00,0x00,0x00,0x00,0xde,0xff,0x65,0x14,0x25,0xb0,0x10,0x3c, +0x32,0x16,0x00,0x08,0x68,0x15,0x43,0x26,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf, +0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,0xf0,0xf8,0x06,0x34,0x15,0x00,0x04,0x24, +0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x6a,0x44,0x00,0x0c,0x14,0x00,0xb1,0xaf, +0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x56,0x30,0x06,0x24, +0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0x02,0x80,0x10,0x3c,0x1a,0x0c,0x00,0x0c, +0x64,0x00,0x04,0x24,0x68,0x15,0x02,0x26,0x04,0x43,0x46,0x90,0x25,0xb0,0x11,0x3c, +0x10,0x10,0x12,0x3c,0x01,0x00,0x03,0x24,0x00,0x0e,0x24,0x36,0x1e,0x00,0xc3,0x10, +0x10,0x10,0x45,0x36,0x15,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,0x04,0x0e,0x24,0x36, +0x15,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,0x08,0x0e,0x24,0x36,0x15,0x5a,0x00,0x0c, +0x10,0x10,0x05,0x24,0x10,0x0e,0x24,0x36,0x15,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36, +0x14,0x0e,0x24,0x36,0x15,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,0x18,0x0e,0x24,0x36, +0x15,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,0x1c,0x0e,0x24,0x36,0x15,0x5a,0x00,0x0c, +0x10,0x10,0x45,0x36,0x68,0x15,0x03,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x20,0x00,0xbd,0x27, +0x08,0x00,0xe0,0x03,0x04,0x43,0x62,0xa0,0x00,0x00,0x86,0x8c,0x00,0x00,0x00,0x00, +0xe0,0xff,0xc5,0x14,0x68,0x15,0x03,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x20,0x00,0xbd,0x27, +0x08,0x00,0xe0,0x03,0x04,0x43,0x62,0xa0,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf, +0x10,0x00,0xb0,0xaf,0x0f,0x00,0x11,0x3c,0x01,0x00,0x10,0x3c,0xff,0xff,0x25,0x36, +0xf4,0x98,0x06,0x36,0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf,0x6a,0x44,0x00,0x0c, +0x18,0x00,0xb2,0xaf,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x56,0x30,0x06,0x36, +0xff,0xff,0x25,0x36,0x1a,0x00,0x04,0x24,0x6a,0x44,0x00,0x0c,0x02,0x80,0x11,0x3c, +0x68,0x15,0x30,0x26,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x04,0x43,0x02,0x92, +0x25,0xb0,0x12,0x3c,0x08,0x00,0x40,0x14,0x08,0x0e,0x44,0x36,0x25,0xb0,0x02,0x3c, +0x00,0x0e,0x42,0x34,0x00,0x00,0x45,0x8c,0xec,0x42,0x03,0x8e,0x00,0x00,0x00,0x00, +0x17,0x00,0xa3,0x10,0x68,0x15,0x22,0x26,0xe8,0x42,0x05,0x8e,0x15,0x5a,0x00,0x0c, +0x00,0x00,0x00,0x00,0xec,0x42,0x05,0x8e,0x15,0x5a,0x00,0x0c,0x00,0x0e,0x44,0x36, +0xf0,0x42,0x05,0x8e,0x15,0x5a,0x00,0x0c,0x04,0x0e,0x44,0x36,0xf4,0x42,0x05,0x8e, +0x15,0x5a,0x00,0x0c,0x10,0x0e,0x44,0x36,0xf8,0x42,0x05,0x8e,0x15,0x5a,0x00,0x0c, +0x14,0x0e,0x44,0x36,0xfc,0x42,0x05,0x8e,0x15,0x5a,0x00,0x0c,0x18,0x0e,0x44,0x36, +0x00,0x43,0x05,0x8e,0x15,0x5a,0x00,0x0c,0x1c,0x0e,0x44,0x36,0x68,0x15,0x22,0x26, +0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x04,0x43,0x40,0xa0,0xe0,0xff,0xbd,0x27, +0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x11,0x3c,0x01,0x00,0x10,0x3c, +0xff,0xff,0x25,0x36,0xf4,0x98,0x06,0x36,0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf, +0x6a,0x44,0x00,0x0c,0x18,0x00,0xb2,0xaf,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24, +0x02,0x80,0x12,0x3c,0xff,0xff,0x25,0x36,0x56,0x30,0x06,0x36,0x6a,0x44,0x00,0x0c, +0x1a,0x00,0x04,0x24,0x68,0x15,0x51,0x26,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24, +0x04,0x43,0x23,0x92,0x03,0x00,0x02,0x24,0x2c,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c, +0xec,0x42,0x25,0x8e,0x25,0xb0,0x10,0x3c,0x15,0x5a,0x00,0x0c,0x00,0x0e,0x04,0x36, +0xf0,0x42,0x25,0x8e,0x15,0x5a,0x00,0x0c,0x04,0x0e,0x04,0x36,0xf4,0x42,0x25,0x8e, +0x15,0x5a,0x00,0x0c,0x10,0x0e,0x04,0x36,0xf8,0x42,0x25,0x8e,0x15,0x5a,0x00,0x0c, +0x14,0x0e,0x04,0x36,0xfc,0x42,0x25,0x8e,0x15,0x5a,0x00,0x0c,0x18,0x0e,0x04,0x36, +0x00,0x43,0x25,0x8e,0x15,0x5a,0x00,0x0c,0x1c,0x0e,0x04,0x36,0x08,0x43,0x24,0x8e, +0xe8,0x42,0x22,0x8e,0x00,0x00,0x00,0x00,0x21,0x28,0x44,0x00,0x00,0xff,0xa3,0x30, +0xff,0xff,0x02,0x3c,0xff,0x00,0x42,0x34,0x01,0x3f,0x63,0x2c,0x24,0x10,0xa2,0x00, +0x0c,0x00,0x60,0x10,0x08,0x0e,0x04,0x36,0x15,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00, +0x68,0x15,0x43,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x03,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03, +0x04,0x43,0x62,0xa0,0xfa,0x16,0x00,0x08,0x00,0x3f,0x45,0x34,0x00,0x0e,0x42,0x34, +0x00,0x00,0x43,0x8c,0xec,0x42,0x25,0x8e,0x00,0x00,0x00,0x00,0xd2,0xff,0x65,0x14, +0x25,0xb0,0x10,0x3c,0xfd,0x16,0x00,0x08,0x68,0x15,0x43,0x26,0xd0,0xff,0xbd,0x27, +0x18,0x00,0xb2,0xaf,0x02,0x80,0x12,0x3c,0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf, +0x68,0x15,0x42,0x26,0x28,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf, +0x10,0x00,0xb0,0xaf,0xe8,0x63,0x43,0x8c,0x02,0x80,0x15,0x3c,0xee,0x7d,0xa4,0x92, +0x04,0x43,0x53,0x90,0x25,0xb0,0x02,0x3c,0x0f,0x0c,0x42,0x34,0x02,0x19,0x03,0x00, +0x00,0x00,0x44,0xa0,0x7f,0x00,0x74,0x30,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x68,0x15,0x42,0x26,0x00,0x40,0x43,0x8c,0x00,0x10,0x02,0x24,0xf0,0xf0,0x63,0x30, +0x98,0x00,0x62,0x10,0x01,0x00,0x02,0x24,0x25,0xb0,0x09,0x3c,0x4c,0x00,0x23,0x35, +0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0x3f,0x00,0x40,0x10, +0x68,0x15,0x45,0x26,0x68,0x15,0x4a,0x26,0x00,0x40,0x42,0x8d,0x00,0x00,0x00,0x00, +0x02,0x13,0x02,0x00,0x0f,0x00,0x42,0x30,0x38,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x00,0x0e,0x25,0x35,0x00,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00,0x8c,0x00,0x40,0x10, +0x10,0x0e,0x26,0x35,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x08,0x0e,0x22,0x35,0x04,0x0e,0x24,0x35,0x00,0x00,0x43,0x8c, +0x00,0x00,0xa5,0x8c,0x00,0x00,0x82,0x8c,0xe8,0x42,0x43,0xad,0xec,0x42,0x45,0xad, +0xf0,0x42,0x42,0xad,0x14,0x0e,0x24,0x35,0x18,0x0e,0x22,0x35,0x1c,0x0e,0x25,0x35, +0x00,0x00,0xc6,0x8c,0x00,0x00,0x87,0x8c,0x00,0x00,0x48,0x8c,0x00,0x00,0xa4,0x8c, +0x00,0xff,0x63,0x30,0x9a,0x0c,0x22,0x35,0x02,0x1a,0x03,0x00,0x00,0x43,0x44,0xad, +0x00,0x00,0x43,0xa0,0xf4,0x42,0x46,0xad,0xf8,0x42,0x47,0xad,0xfc,0x42,0x48,0xad, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0xee,0x7d,0xa3,0x92,0x22,0x00,0x02,0x24, +0xac,0x00,0x62,0x10,0x92,0x00,0x02,0x24,0xab,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x68,0x15,0x44,0x26, +0x00,0x40,0x83,0x8c,0xff,0xff,0x02,0x3c,0xff,0x0f,0x42,0x34,0x24,0x18,0x62,0x00, +0x00,0x10,0x63,0x34,0x00,0x40,0x83,0xac,0x68,0x15,0x45,0x26,0x04,0x43,0xa2,0x8c, +0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x0f,0x00,0x40,0x14,0x68,0x15,0x42,0x26, +0x25,0xb0,0x02,0x3c,0x84,0x01,0x42,0x34,0x00,0x00,0x44,0x8c,0x0d,0x00,0x03,0x24, +0x8c,0x00,0x83,0x10,0x3e,0x00,0x02,0x24,0x4a,0x00,0x03,0x24,0x1f,0x43,0xa2,0xa0, +0x45,0x00,0x02,0x24,0x1c,0x43,0xa3,0xa0,0x1d,0x43,0xa2,0xa0,0x43,0x00,0x03,0x24, +0x1e,0x43,0xa3,0xa0,0x68,0x15,0x42,0x26,0xe8,0x63,0x43,0x8c,0x25,0xb0,0x02,0x3c, +0x60,0x0c,0x42,0x34,0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30,0x00,0x00,0x43,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x42,0x26,0x04,0x40,0x43,0x8c, +0x25,0xb0,0x02,0x3c,0x98,0x0c,0x42,0x34,0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30, +0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x42,0x26, +0x1e,0x43,0x44,0x90,0x25,0xb0,0x03,0x3c,0x66,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x42,0x26,0x1c,0x43,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x67,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x68,0x15,0x44,0x26,0x00,0x40,0x85,0x8c,0x10,0x10,0x02,0x24, +0xf0,0xf0,0xa3,0x30,0x2b,0x00,0x62,0x10,0xff,0xff,0x02,0x34,0x28,0x00,0xbf,0x8f, +0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x30,0x00,0xbd,0x27,0x0d,0x00,0x62,0x12,0x04,0x00,0x02,0x24,0x0b,0x00,0x62,0x12, +0x68,0x15,0x43,0x26,0xff,0xff,0x02,0x24,0x2e,0x17,0x00,0x08,0x04,0x43,0x62,0xa0, +0x00,0x00,0xc3,0x8c,0x3f,0x3f,0x02,0x3c,0x3f,0x3f,0x42,0x34,0x71,0xff,0x62,0x14, +0x00,0x00,0x00,0x00,0x73,0x17,0x00,0x08,0x68,0x15,0x45,0x26,0x0f,0x00,0x10,0x3c, +0x01,0x00,0x11,0x3c,0xff,0xff,0x05,0x36,0xf4,0x98,0x26,0x36,0x6a,0x44,0x00,0x0c, +0x15,0x00,0x04,0x24,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0xff,0xff,0x05,0x36, +0x56,0x30,0x26,0x36,0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0x1a,0x0c,0x00,0x0c, +0x64,0x00,0x04,0x24,0x68,0x15,0x43,0x26,0xff,0xff,0x02,0x24,0x2e,0x17,0x00,0x08, +0x04,0x43,0x62,0xa0,0xe8,0x63,0x83,0x8c,0x00,0x00,0x00,0x00,0xd3,0xff,0x62,0x10, +0x02,0x12,0x05,0x00,0x0f,0x00,0x45,0x30,0x01,0x00,0x03,0x24,0xcf,0xff,0xa3,0x14, +0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00, +0x03,0x00,0x63,0x30,0xc9,0xff,0x60,0x10,0x03,0x00,0x02,0x24,0x4d,0x00,0x62,0x12, +0x04,0x00,0x62,0x2a,0x2f,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x52,0x00,0x60,0x12, +0x00,0x00,0x00,0x00,0xc1,0xff,0x65,0x16,0x00,0x00,0x00,0x00,0x1c,0x43,0x82,0x90, +0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x3e,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x1f,0x43,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,0x30,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x86,0x16,0x00,0x0c,0x00,0x00,0x00,0x00,0xbb,0x17,0x00,0x08, +0x00,0x00,0x00,0x00,0x3b,0x00,0x02,0x24,0x46,0x00,0x03,0x24,0x1f,0x43,0xa2,0xa0, +0x1c,0x43,0xa3,0xa0,0x41,0x00,0x02,0x24,0x40,0x00,0x03,0x24,0x84,0x17,0x00,0x08, +0x1d,0x43,0xa2,0xa0,0x25,0xb0,0x02,0x3c,0x0d,0x08,0x42,0x34,0x00,0x00,0x43,0x90, +0x00,0x00,0x00,0x00,0x0f,0x00,0x63,0x30,0x08,0x00,0x62,0x2c,0x0f,0x00,0x63,0x38, +0x4f,0xff,0x40,0x14,0x01,0x00,0x65,0x24,0x00,0x1c,0x05,0x00,0x00,0x16,0x05,0x00, +0x25,0x10,0x43,0x00,0x00,0x22,0x05,0x00,0x25,0x10,0x44,0x00,0x68,0x15,0x43,0x26, +0x25,0x20,0x85,0x00,0x25,0x10,0x45,0x00,0x18,0x43,0x64,0xac,0x68,0x17,0x00,0x08, +0x14,0x43,0x62,0xac,0x04,0x00,0x02,0x24,0x11,0x00,0x62,0x12,0xff,0x00,0x02,0x24, +0x92,0xff,0x62,0x16,0x00,0x00,0x00,0x00,0x1e,0x43,0x82,0x90,0x00,0x00,0x00,0x00, +0x2b,0x10,0x82,0x02,0x21,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x1c,0x43,0x82,0x90, +0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x0a,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x42,0x16,0x00,0x0c,0x00,0x00,0x00,0x00,0xbb,0x17,0x00,0x08,0x00,0x00,0x00,0x00, +0x1d,0x43,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,0xf8,0xff,0x40,0x10, +0x00,0x00,0x00,0x00,0x03,0x16,0x00,0x0c,0x00,0x00,0x00,0x00,0xbb,0x17,0x00,0x08, +0x00,0x00,0x00,0x00,0x20,0x43,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02, +0xc0,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xc3,0x16,0x00,0x0c,0x00,0x00,0x00,0x00, +0xbb,0x17,0x00,0x08,0x00,0x00,0x00,0x00,0x1e,0x43,0x82,0x90,0x00,0x00,0x00,0x00, +0x2b,0x10,0x82,0x02,0xe6,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x21,0x43,0x82,0x90, +0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,0xb2,0xff,0x40,0x14,0x00,0x00,0x00,0x00, +0xc3,0x16,0x00,0x0c,0x00,0x00,0x00,0x00,0xbb,0x17,0x00,0x08,0x00,0x00,0x00,0x00, +0x02,0x80,0x08,0x3c,0x68,0x15,0x05,0x25,0xe8,0x63,0xa4,0x8c,0xe6,0x42,0xa3,0x90, +0x02,0x11,0x04,0x00,0x26,0x00,0x60,0x14,0x7f,0x00,0x46,0x30,0x25,0xb0,0x07,0x3c, +0x4c,0x00,0xe2,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x20,0x00,0x60,0x10, +0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x34,0x1d,0x00,0x82,0x10,0x00,0x00,0x00,0x00, +0x00,0x08,0xe3,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30, +0x19,0x00,0x40,0x10,0x4b,0x00,0xc2,0x2c,0x3e,0x00,0x40,0x10,0x01,0x00,0x04,0x24, +0xd8,0xff,0xc2,0x24,0x1e,0x00,0x42,0x2c,0x49,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c, +0x68,0x15,0x04,0x25,0xd3,0x42,0x82,0x90,0x00,0x00,0x00,0x00,0x44,0x00,0x40,0x10, +0x23,0x00,0xc2,0x2c,0x25,0xb0,0x02,0x3c,0x87,0x0c,0x42,0x34,0x20,0x00,0x03,0x24, +0x00,0x00,0x43,0xa0,0xd3,0x42,0x80,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x17,0x00,0x40,0x10,0x01,0x00,0x04,0x24, +0xd8,0xff,0xc2,0x24,0x1e,0x00,0x42,0x2c,0x44,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c, +0x68,0x15,0x04,0x25,0xd3,0x42,0x82,0x90,0x00,0x00,0x00,0x00,0x3f,0x00,0x40,0x10, +0x23,0x00,0xc2,0x2c,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,0x44,0x00,0x03,0x24, +0x00,0x00,0x43,0xa0,0xd3,0x42,0x80,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xd3,0x42,0xa2,0x90,0x00,0x00,0x00,0x00, +0xe7,0xff,0x44,0x10,0x43,0x00,0x02,0x24,0x30,0x0c,0xe3,0x34,0xd3,0x42,0xa4,0xa0, +0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0xd3,0x42,0xa2,0x90,0x00,0x00,0x00,0x00,0xc0,0xff,0x44,0x10, +0x10,0x00,0x02,0x24,0x87,0x0c,0xe3,0x34,0xd3,0x42,0xa4,0xa0,0x00,0x00,0x62,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0xc7,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x68,0x15,0x04,0x25,0xd3,0x42,0x82,0x90, +0x02,0x00,0x03,0x24,0xc2,0xff,0x43,0x10,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c, +0x87,0x0c,0x42,0x34,0xd3,0x42,0x83,0xa0,0x00,0x00,0x40,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xb4,0xff,0x40,0x10, +0x00,0x00,0x00,0x00,0x68,0x15,0x04,0x25,0xd3,0x42,0x82,0x90,0x02,0x00,0x03,0x24, +0xaf,0xff,0x43,0x10,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xd3,0x42,0x83,0xa0, +0x30,0x0c,0x42,0x34,0x42,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xff,0xff,0x8d,0x30, +0x00,0x60,0x0f,0x40,0x01,0x00,0xe1,0x35,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x02,0x80,0x06,0x3c,0x68,0x15,0xce,0x24,0x76,0x4b,0xc2,0x91,0x00,0x00,0x00,0x00, +0x1d,0x00,0x40,0x10,0x25,0xb0,0x03,0x3c,0x38,0x02,0x64,0x34,0x80,0xff,0x02,0x24, +0x00,0x00,0x82,0xa0,0x34,0x02,0x6a,0x34,0xd2,0x01,0x65,0x34,0xd6,0x01,0x66,0x34, +0xda,0x01,0x67,0x34,0xde,0x01,0x63,0x34,0x00,0x00,0xa8,0x94,0x00,0x00,0xc9,0x94, +0x00,0x00,0xeb,0x94,0x00,0x00,0x6c,0x94,0x00,0x00,0x44,0x95,0xb0,0xfe,0xa2,0x25, +0xff,0xff,0x4d,0x30,0x74,0x4b,0xc4,0xa5,0x00,0x00,0xa0,0xa4,0x6c,0x4b,0xc8,0xa5, +0x00,0x00,0xc0,0xa4,0x6e,0x4b,0xc9,0xa5,0x00,0x00,0xe0,0xa4,0x70,0x4b,0xcb,0xa5, +0x00,0x00,0x60,0xa4,0x00,0x00,0x4d,0xa5,0x72,0x4b,0xcc,0xa5,0x00,0x60,0x8f,0x40, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x2a,0xb0,0x02,0x3c,0x0a,0x00,0x45,0x34, +0x63,0x00,0x03,0x24,0xff,0xff,0x04,0x34,0x00,0x00,0xa2,0x90,0x00,0x00,0x00,0x00, +0x0a,0x00,0x40,0x10,0x68,0x15,0xc2,0x24,0x64,0x00,0x02,0x24,0xff,0xff,0x42,0x24, +0xff,0xff,0x42,0x30,0xfe,0xff,0x40,0x14,0xff,0xff,0x42,0x24,0xff,0xff,0x62,0x24, +0xff,0xff,0x43,0x30,0xf4,0xff,0x64,0x14,0x68,0x15,0xc2,0x24,0x74,0x4b,0x48,0x94, +0x72,0x4b,0x47,0x94,0x6c,0x4b,0x49,0x94,0x6e,0x4b,0x4a,0x94,0x70,0x4b,0x4b,0x94, +0x25,0xb0,0x03,0x3c,0x38,0x02,0x6c,0x34,0x34,0x02,0x62,0x34,0xd2,0x01,0x64,0x34, +0xd6,0x01,0x65,0x34,0xda,0x01,0x66,0x34,0xde,0x01,0x63,0x34,0x00,0x00,0x48,0xa4, +0x00,0x00,0x89,0xa4,0x00,0x00,0xaa,0xa4,0x00,0x00,0xcb,0xa4,0x00,0x00,0x67,0xa4, +0x00,0x00,0x80,0xa1,0x00,0x60,0x8f,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x25,0xb0,0x02,0x3c,0x08,0x00,0x43,0x34,0x00,0x00,0x64,0x94,0x03,0x00,0x49,0x34, +0x40,0x00,0x45,0x34,0x00,0x24,0x04,0x00,0x03,0x24,0x04,0x00,0xfc,0x77,0x0a,0x24, +0x00,0x03,0x46,0x34,0x04,0x03,0x47,0x34,0x0f,0x00,0x80,0x04,0x23,0x00,0x48,0x34, +0x00,0x00,0x22,0x91,0xfe,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x00,0x00,0x22,0xa1, +0x22,0x00,0x02,0x24,0x00,0x00,0xc0,0xac,0x00,0x00,0xe0,0xac,0x00,0x00,0x02,0xa1, +0xfc,0x37,0x02,0x24,0x00,0x00,0xaa,0xa4,0x00,0x00,0xa2,0xa4,0x00,0x00,0xaa,0xa4, +0x00,0x00,0xa0,0xa4,0x00,0x00,0xa0,0xa4,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xd0,0xff,0xbd,0x27,0x1c,0x00,0xb1,0xaf,0x28,0x00,0xbf,0xaf,0x24,0x00,0xb3,0xaf, +0x20,0x00,0xb2,0xaf,0x18,0x00,0xb0,0xaf,0xff,0xff,0x11,0x24,0x02,0x80,0x13,0x3c, +0x41,0xb0,0x02,0x3c,0x68,0x15,0x66,0x26,0x04,0x00,0x42,0x34,0x00,0x00,0x47,0x8c, +0x00,0x4b,0xc5,0x8c,0x02,0x80,0x03,0x3c,0xf6,0x7d,0x64,0x90,0xfc,0x4a,0xc8,0x8c, +0x02,0x80,0x02,0x3c,0x18,0x7e,0x49,0x90,0x25,0xb0,0x0a,0x3c,0x25,0x90,0xa7,0x00, +0xb0,0x03,0x42,0x35,0x00,0x00,0x52,0xac,0x00,0x24,0x04,0x00,0x00,0x00,0x48,0xac, +0x84,0x02,0x43,0x35,0x8c,0x02,0x45,0x35,0x01,0x00,0x02,0x24,0x00,0x00,0x72,0xac, +0x00,0x00,0xa4,0xac,0x88,0x04,0x22,0x11,0x00,0x4b,0xd2,0xac,0x68,0x15,0x64,0x26, +0xfc,0x4a,0x82,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00,0x01,0x00,0x42,0x30, +0x0e,0x00,0x40,0x10,0x68,0x15,0x66,0x26,0x25,0xb0,0x0b,0x3c,0xb0,0x03,0x63,0x35, +0x01,0x00,0x06,0x24,0x00,0x00,0x66,0xac,0x04,0x00,0x62,0x35,0x00,0x00,0x4a,0x8c, +0x00,0x4b,0x83,0x8c,0x40,0x00,0x02,0x3c,0x24,0x10,0x42,0x01,0x01,0x00,0x63,0x38, +0x47,0x04,0x40,0x10,0x00,0x4b,0x83,0xac,0x68,0x15,0x66,0x26,0xfc,0x4a,0xc2,0x8c, +0x00,0x00,0x00,0x00,0x24,0x28,0x52,0x00,0x04,0x00,0xa3,0x30,0x09,0x00,0x60,0x10, +0x08,0x00,0xa2,0x30,0x00,0x4b,0xc2,0x8c,0x25,0xb0,0x03,0x3c,0x04,0x00,0x04,0x24, +0x04,0x00,0x42,0x38,0xb0,0x03,0x63,0x34,0x00,0x00,0x64,0xac,0x00,0x4b,0xc2,0xac, +0x08,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,0x10,0x00,0xa2,0x30,0x00,0x4b,0xc2,0x8c, +0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x38,0x00,0x4b,0xc2,0xac,0x10,0x00,0xa2,0x30, +0x06,0x00,0x40,0x10,0x20,0x00,0xa2,0x30,0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00, +0x10,0x00,0x42,0x38,0x00,0x4b,0xc2,0xac,0x20,0x00,0xa2,0x30,0x06,0x00,0x40,0x10, +0x40,0x00,0xa2,0x30,0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x38, +0x00,0x4b,0xc2,0xac,0x40,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,0x80,0x00,0xa2,0x30, +0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x38,0x00,0x4b,0xc2,0xac, +0x80,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,0x00,0x01,0xa2,0x30,0x00,0x4b,0xc2,0x8c, +0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x38,0x00,0x4b,0xc2,0xac,0x00,0x01,0xa2,0x30, +0x06,0x00,0x40,0x10,0x00,0x02,0xa2,0x30,0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00, +0x00,0x01,0x42,0x38,0x00,0x4b,0xc2,0xac,0x00,0x02,0xa2,0x30,0x06,0x00,0x40,0x10, +0x00,0x04,0xa2,0x30,0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x00,0x02,0x42,0x38, +0x00,0x4b,0xc2,0xac,0x00,0x04,0xa2,0x30,0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x00,0x04,0x42,0x38,0x00,0x4b,0xc2,0xac, +0x00,0x08,0xa2,0x30,0x36,0x00,0x40,0x10,0x2a,0xb0,0x03,0x3c,0x00,0x00,0x6a,0x8c, +0xff,0x00,0x02,0x24,0xff,0x00,0x44,0x31,0x2c,0x00,0x82,0x10,0x00,0x80,0x42,0x31, +0x35,0x04,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01, +0x0b,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x68,0x64,0xc2,0x90,0x20,0xb0,0x03,0x3c, +0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,0x0c,0x00,0x4a,0x8c,0x25,0xb0,0x03,0x3c, +0xb0,0x03,0x63,0x34,0x00,0x00,0x6a,0xac,0xff,0x00,0x44,0x31,0xff,0x00,0x02,0x24, +0x1a,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x20,0x65,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0xb4,0x64,0x03,0xae,0x21,0x20,0x00,0x00,0x68,0x64,0x0a,0xa2,0x20,0x00,0x07,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0xfc,0x4a,0x05,0x8e,0x02,0x80,0x06,0x3c, +0xcc,0x7e,0xc4,0x8c,0xff,0xc7,0x02,0x24,0x24,0x28,0xa2,0x00,0x25,0xb0,0x02,0x3c, +0x04,0x00,0x84,0x34,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac, +0x00,0x00,0x65,0xac,0xcc,0x7e,0xc4,0xac,0xfc,0x4a,0x05,0xae,0x68,0x15,0x63,0x26, +0x00,0x4b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x08,0x42,0x38,0x00,0x4b,0x62,0xac, +0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00, +0x00,0x10,0x42,0x30,0x38,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c,0x08,0x00,0x43,0x34, +0x00,0x00,0x6a,0x8c,0xff,0x00,0x02,0x24,0xff,0x00,0x44,0x31,0x2c,0x00,0x82,0x10, +0x00,0x80,0x42,0x31,0xfb,0x03,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c, +0x24,0x10,0x42,0x01,0x0b,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x70,0x64,0xa2,0x90, +0x20,0xb0,0x03,0x3c,0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,0x0c,0x00,0x4a,0x8c, +0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34,0x00,0x00,0x6a,0xac,0xff,0x00,0x44,0x31, +0xff,0x00,0x02,0x24,0x1a,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31, +0x38,0x65,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x21,0x30,0x60,0x00,0xcc,0x64,0x03,0xae,0x01,0x00,0x04,0x24,0x70,0x64,0x0a,0xa2, +0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0xfc,0x4a,0x05,0x8e, +0x02,0x80,0x06,0x3c,0xcc,0x7e,0xc4,0x8c,0xff,0xc7,0x02,0x24,0x24,0x28,0xa2,0x00, +0x25,0xb0,0x02,0x3c,0x10,0x00,0x84,0x34,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c, +0x00,0x00,0x44,0xac,0x00,0x00,0x65,0xac,0xcc,0x7e,0xc4,0xac,0xfc,0x4a,0x05,0xae, +0x68,0x15,0x63,0x26,0x00,0x4b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x10,0x42,0x38, +0x00,0x4b,0x62,0xac,0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,0x00,0x00,0x00,0x00, +0x24,0x10,0x52,0x00,0x00,0x20,0x42,0x30,0x37,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c, +0x04,0x00,0x43,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x02,0x24,0xff,0x00,0x44,0x31, +0xe9,0x03,0x82,0x10,0x00,0x80,0x42,0x31,0xc1,0x03,0x40,0x14,0x00,0x80,0x02,0x3c, +0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x0b,0x00,0x40,0x10,0xff,0x00,0x02,0x24, +0x6c,0x64,0xa2,0x90,0x20,0xb0,0x03,0x3c,0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00, +0x0c,0x00,0x4a,0x8c,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34,0x00,0x00,0x6a,0xac, +0xff,0x00,0x44,0x31,0xff,0x00,0x02,0x24,0x1a,0x00,0x82,0x10,0x68,0x15,0x70,0x26, +0xff,0x00,0x43,0x31,0x2c,0x65,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00, +0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xc0,0x64,0x03,0xae,0x01,0x00,0x04,0x24, +0x6c,0x64,0x0a,0xa2,0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0xfc,0x4a,0x05,0x8e,0x02,0x80,0x06,0x3c,0xcc,0x7e,0xc4,0x8c,0xff,0xc7,0x02,0x24, +0x24,0x28,0xa2,0x00,0x25,0xb0,0x02,0x3c,0x20,0x00,0x84,0x34,0x80,0x03,0x42,0x34, +0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x65,0xac,0xcc,0x7e,0xc4,0xac, +0xfc,0x4a,0x05,0xae,0x68,0x15,0x63,0x26,0x00,0x4b,0x62,0x8c,0x00,0x00,0x00,0x00, +0x00,0x20,0x42,0x38,0x00,0x4b,0x62,0xac,0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c, +0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00,0x00,0x80,0x42,0x30,0x58,0x00,0x40,0x10, +0x2a,0xb0,0x06,0x3c,0x0c,0x00,0xc3,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24, +0xff,0x00,0x44,0x31,0x9d,0x03,0x87,0x10,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14, +0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10, +0xff,0x00,0x02,0x24,0x40,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00, +0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26,0x48,0x64,0xa4,0xa0, +0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10, +0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00, +0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x48,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26, +0x48,0x64,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31, +0x00,0x00,0x4a,0xac,0xa9,0x1a,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac, +0xff,0x00,0x02,0x24,0x24,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31, +0xf0,0x64,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x21,0x30,0x60,0x00,0x48,0x64,0x0a,0xa2,0x84,0x64,0x03,0xae,0x03,0x00,0x04,0x24, +0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x0a,0x3c, +0xdc,0x7e,0x47,0x91,0x02,0x80,0x09,0x3c,0xcc,0x7e,0x25,0x8d,0xfc,0x4a,0x06,0x8e, +0x01,0x00,0x08,0x3c,0x80,0xff,0x02,0x24,0x25,0x38,0xe2,0x00,0x00,0x80,0x03,0x35, +0x80,0x00,0xa5,0x34,0x27,0x18,0x03,0x00,0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c, +0x24,0x30,0xc3,0x00,0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c, +0x00,0x00,0x44,0xac,0x27,0x88,0x08,0x00,0x00,0x00,0x66,0xac,0xcc,0x7e,0x25,0xad, +0xdc,0x7e,0x47,0xa1,0xfc,0x4a,0x06,0xae,0x68,0x15,0x63,0x26,0x00,0x4b,0x62,0x8c, +0x00,0x00,0x00,0x00,0x00,0x80,0x42,0x38,0x00,0x4b,0x62,0xac,0x68,0x15,0x65,0x26, +0xfc,0x4a,0xa2,0x8c,0x01,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00, +0x24,0x10,0x43,0x00,0x56,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c,0x10,0x00,0xc3,0x34, +0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0x49,0x03,0x87,0x10, +0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c, +0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24, +0x41,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30, +0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26,0x4c,0x64,0xa4,0xa0,0x00,0x00,0xc2,0x90, +0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00, +0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14, +0xff,0x00,0x44,0x30,0x4c,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26,0x4c,0x64,0x43,0x90, +0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac, +0x08,0x1b,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24, +0x22,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0xf0,0x64,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0x84,0x64,0x03,0xae,0x03,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x4c,0x64,0x0a,0xa2, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,0xdc,0x7e,0x27,0x91, +0x02,0x80,0x08,0x3c,0xcc,0x7e,0x05,0x8d,0xfc,0x4a,0x06,0x8e,0x01,0x00,0x02,0x3c, +0x00,0x80,0x42,0x34,0x40,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00, +0x80,0x00,0xa5,0x34,0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00, +0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac, +0xcc,0x7e,0x05,0xad,0xdc,0x7e,0x27,0xa1,0xfc,0x4a,0x06,0xae,0x68,0x15,0x62,0x26, +0x00,0x4b,0x43,0x8c,0x01,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac, +0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,0x02,0x00,0x03,0x3c,0x24,0x10,0x52,0x00, +0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c,0x14,0x00,0xc3,0x34, +0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0xcf,0x02,0x87,0x10, +0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c, +0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24, +0x42,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30, +0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26,0x50,0x64,0xa4,0xa0,0x00,0x00,0xc2,0x90, +0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00, +0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14, +0xff,0x00,0x44,0x30,0x50,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26,0x50,0x64,0x43,0x90, +0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac, +0x64,0x1b,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24, +0x25,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0xfc,0x64,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0x50,0x64,0x0a,0xa2,0x90,0x64,0x03,0xae,0x04,0x00,0x04,0x24,0x20,0x00,0x07,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x0a,0x3c,0xdc,0x7e,0x47,0x91, +0x02,0x80,0x09,0x3c,0xcc,0x7e,0x25,0x8d,0xfc,0x4a,0x06,0x8e,0x06,0x00,0x02,0x3c, +0x20,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x01,0xa5,0x34, +0x25,0xb0,0x03,0x3c,0x04,0x00,0x02,0x3c,0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02, +0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00,0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c, +0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac,0xcc,0x7e,0x25,0xad,0xdc,0x7e,0x47,0xa1, +0xfc,0x4a,0x06,0xae,0x00,0x00,0x11,0xad,0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c, +0x02,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac,0x68,0x15,0x65,0x26, +0xfc,0x4a,0xa2,0x8c,0x04,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00, +0x24,0x10,0x43,0x00,0x58,0x00,0x40,0x10,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x62,0x34, +0x2a,0xb0,0x08,0x3c,0x00,0x00,0x51,0xac,0x18,0x00,0x06,0x35,0x00,0x00,0xca,0x8c, +0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0xa1,0x02,0x87,0x10,0x04,0x00,0x02,0x24, +0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c, +0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x43,0x00,0x06,0x35, +0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10, +0x68,0x15,0x62,0x26,0x54,0x64,0xa4,0xa0,0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30, +0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00, +0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30, +0x54,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26,0x54,0x64,0x43,0x90,0x20,0xb0,0x02,0x3c, +0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c, +0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0xc7,0x1b,0x00,0x08, +0xff,0x00,0x02,0x24,0x00,0x00,0xc2,0xac,0xff,0x00,0x02,0x24,0x21,0x00,0x82,0x10, +0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0xfc,0x64,0x05,0x8e,0x20,0x10,0x02,0x3c, +0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x90,0x64,0x03,0xae, +0x04,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x54,0x64,0x0a,0xa2,0x10,0x01,0x00,0x0c, +0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,0xdc,0x7e,0x27,0x91,0x02,0x80,0x08,0x3c, +0xcc,0x7e,0x05,0x8d,0xfc,0x4a,0x06,0x8e,0x06,0x00,0x02,0x3c,0x10,0x00,0xe7,0x34, +0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x01,0xa5,0x34,0x00,0x26,0x07,0x00, +0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c, +0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac,0xcc,0x7e,0x05,0xad,0xdc,0x7e,0x27,0xa1, +0xfc,0x4a,0x06,0xae,0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c,0x04,0x00,0x04,0x3c, +0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac,0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c, +0x08,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10, +0x2a,0xb0,0x06,0x3c,0x1c,0x00,0xc3,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24, +0xff,0x00,0x44,0x31,0x3e,0x02,0x87,0x10,0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31, +0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01, +0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x44,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90, +0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26, +0x58,0x64,0xa4,0xa0,0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30, +0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90, +0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x58,0x64,0xe3,0xa0, +0x68,0x15,0x62,0x26,0x58,0x64,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00, +0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34, +0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0x22,0x1c,0x00,0x08,0xff,0x00,0x02,0x24, +0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,0x25,0x00,0x82,0x10,0x68,0x15,0x70,0x26, +0xff,0x00,0x43,0x31,0x08,0x65,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00, +0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x58,0x64,0x0a,0xa2,0x9c,0x64,0x03,0xae, +0x05,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf, +0x02,0x80,0x0a,0x3c,0xdc,0x7e,0x47,0x91,0x02,0x80,0x09,0x3c,0xcc,0x7e,0x25,0x8d, +0xfc,0x4a,0x06,0x8e,0x18,0x00,0x02,0x3c,0x08,0x00,0xe7,0x34,0x27,0x10,0x02,0x00, +0x24,0x30,0xc2,0x00,0x00,0x02,0xa5,0x34,0x25,0xb0,0x03,0x3c,0x10,0x00,0x02,0x3c, +0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02,0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00, +0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c,0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac, +0xcc,0x7e,0x25,0xad,0xdc,0x7e,0x47,0xa1,0xfc,0x4a,0x06,0xae,0x00,0x00,0x11,0xad, +0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c,0x08,0x00,0x04,0x3c,0x26,0x18,0x64,0x00, +0x00,0x4b,0x43,0xac,0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,0x10,0x00,0x03,0x3c, +0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00,0x24,0x10,0x43,0x00,0x58,0x00,0x40,0x10, +0x25,0xb0,0x06,0x3c,0xb0,0x03,0xc2,0x34,0x2a,0xb0,0x08,0x3c,0x00,0x00,0x51,0xac, +0x20,0x00,0x03,0x35,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31, +0xe0,0x01,0x87,0x10,0x90,0x03,0xc2,0x34,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14, +0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10, +0xff,0x00,0x02,0x24,0x45,0x00,0x06,0x35,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00, +0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26,0x64,0x64,0xa4,0xa0, +0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10, +0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00, +0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x64,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26, +0x64,0x64,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31, +0x00,0x00,0x4a,0xac,0x85,0x1c,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac, +0xff,0x00,0x02,0x24,0x21,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31, +0x08,0x65,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00, +0x21,0x30,0x60,0x00,0x9c,0x64,0x03,0xae,0x05,0x00,0x04,0x24,0x20,0x00,0x07,0x24, +0x64,0x64,0x0a,0xa2,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c, +0xdc,0x7e,0x27,0x91,0x02,0x80,0x08,0x3c,0xcc,0x7e,0x05,0x8d,0xfc,0x4a,0x06,0x8e, +0x18,0x00,0x02,0x3c,0x01,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00, +0x00,0x02,0xa5,0x34,0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00, +0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac, +0xcc,0x7e,0x05,0xad,0xdc,0x7e,0x27,0xa1,0xfc,0x4a,0x06,0xae,0x68,0x15,0x62,0x26, +0x00,0x4b,0x43,0x8c,0x10,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac, +0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,0x20,0x00,0x03,0x3c,0x24,0x10,0x52,0x00, +0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c,0x24,0x00,0xc3,0x34, +0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0x58,0x01,0x87,0x10, +0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c, +0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24, +0x46,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30, +0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26,0x5c,0x64,0xa4,0xa0,0x00,0x00,0xc2,0x90, +0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00, +0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14, +0xff,0x00,0x44,0x30,0x5c,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26,0x5c,0x64,0x43,0x90, +0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac, +0xe0,0x1c,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24, +0x25,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x14,0x65,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0x5c,0x64,0x0a,0xa2,0xa8,0x64,0x03,0xae,0x06,0x00,0x04,0x24,0x20,0x00,0x07,0x24, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x0a,0x3c,0xdc,0x7e,0x47,0x91, +0x02,0x80,0x09,0x3c,0xcc,0x7e,0x25,0x8d,0xfc,0x4a,0x06,0x8e,0x60,0x00,0x02,0x3c, +0x04,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x04,0xa5,0x34, +0x25,0xb0,0x03,0x3c,0x40,0x00,0x02,0x3c,0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02, +0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00,0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c, +0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac,0xcc,0x7e,0x25,0xad,0xdc,0x7e,0x47,0xa1, +0xfc,0x4a,0x06,0xae,0x00,0x00,0x11,0xad,0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c, +0x20,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac,0x68,0x15,0x65,0x26, +0xfc,0x4a,0xa2,0x8c,0x40,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00, +0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,0x68,0x15,0x70,0x26,0x25,0xb0,0x02,0x3c, +0x2a,0xb0,0x07,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x51,0xac,0x28,0x00,0xe3,0x34, +0x00,0x00,0x6a,0x8c,0xff,0x00,0x06,0x24,0xff,0x00,0x44,0x31,0xfe,0x00,0x86,0x10, +0x25,0xbd,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c, +0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24, +0x47,0x00,0xe7,0x34,0x00,0x00,0xe2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30, +0x0e,0x00,0x86,0x10,0x68,0x15,0x62,0x26,0x60,0x64,0xa4,0xa0,0x00,0x00,0xe2,0x90, +0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x30,0xa0,0x00, +0x21,0x28,0xe0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14, +0xff,0x00,0x44,0x30,0x60,0x64,0xc3,0xa0,0x68,0x15,0x62,0x26,0x60,0x64,0x43,0x90, +0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac, +0x44,0x1d,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24, +0x21,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x14,0x65,0x05,0x8e, +0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00, +0xa8,0x64,0x03,0xae,0x06,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x60,0x64,0x0a,0xa2, +0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,0xdc,0x7e,0x27,0x91, +0x02,0x80,0x08,0x3c,0xcc,0x7e,0x05,0x8d,0xfc,0x4a,0x06,0x8e,0x60,0x00,0x02,0x3c, +0x02,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x04,0xa5,0x34, +0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34, +0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac,0xcc,0x7e,0x05,0xad, +0xdc,0x7e,0x27,0xa1,0xfc,0x4a,0x06,0xae,0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c, +0x40,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac,0x68,0x15,0x70,0x26, +0xfc,0x4a,0x06,0x8e,0x00,0x04,0x11,0x3c,0x24,0x10,0xd2,0x00,0x24,0x10,0x51,0x00, +0x77,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x24,0x28,0xd2,0x00,0x00,0x08,0x04,0x3c, +0x24,0x10,0xa4,0x00,0x08,0x00,0x40,0x10,0x80,0x00,0x07,0x3c,0x00,0x4b,0x03,0x8e, +0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x26,0x18,0x64,0x00,0x00,0x00,0x44,0xac, +0x00,0x4b,0x03,0xae,0x80,0x00,0x07,0x3c,0x24,0x10,0xa7,0x00,0x21,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x00,0x4b,0x03,0x8e,0x25,0xb0,0x08,0x3c,0xb0,0x03,0x09,0x35, +0x2a,0xb0,0x02,0x3c,0x00,0x00,0x23,0xad,0x36,0x00,0x42,0x34,0x00,0x00,0x43,0x90, +0x23,0xb0,0x04,0x3c,0xff,0x1f,0x02,0x3c,0xc0,0x18,0x03,0x00,0xf0,0x07,0x63,0x30, +0xbc,0x65,0x05,0x8e,0x21,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x84,0x00,0x65,0x10,0xc0,0x65,0x03,0xae,0x02,0x80,0x05,0x3c,0xcc,0x7e,0xa3,0x8c, +0x27,0x20,0x07,0x00,0x24,0x20,0xc4,0x00,0x00,0x08,0x63,0x34,0x41,0xb0,0x02,0x3c, +0x00,0x00,0x23,0xad,0x00,0x00,0x44,0xac,0xcc,0x7e,0xa3,0xac,0xfc,0x4a,0x04,0xae, +0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c,0x80,0x00,0x04,0x3c,0x26,0x18,0x64,0x00, +0x00,0x4b,0x43,0xac,0x68,0x15,0x66,0x26,0xfc,0x4a,0xc3,0x8c,0x00,0x01,0x04,0x3c, +0x24,0x28,0x72,0x00,0x24,0x10,0xa4,0x00,0x06,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c, +0x00,0x4b,0xc3,0x8c,0xb0,0x03,0x42,0x34,0x26,0x18,0x64,0x00,0x00,0x00,0x44,0xac, +0x00,0x4b,0xc3,0xac,0x00,0x02,0x04,0x3c,0x24,0x10,0xa4,0x00,0x08,0x00,0x40,0x10, +0x02,0x80,0x02,0x3c,0x00,0x4b,0xc2,0x8c,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34, +0x26,0x10,0x44,0x00,0x00,0x4b,0xc2,0xac,0x00,0x00,0x64,0xac,0x02,0x80,0x02,0x3c, +0xea,0x7d,0x43,0x90,0x01,0x00,0x02,0x24,0x0f,0x00,0x63,0x30,0x3f,0x00,0x62,0x10, +0x00,0x00,0x00,0x00,0x28,0x00,0xbf,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f, +0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27, +0x20,0xbd,0x02,0x3c,0xec,0x02,0x65,0x35,0x4d,0x00,0x68,0x35,0xf1,0x02,0x69,0x35, +0x08,0x00,0x07,0x24,0x78,0x02,0x42,0x34,0x00,0x00,0x46,0xa4,0x00,0x00,0x00,0xa1, +0x00,0x00,0x27,0xa1,0x00,0x00,0xa0,0xac,0x00,0x00,0xa2,0x8c,0xff,0x00,0x03,0x3c, +0x80,0x00,0x04,0x3c,0xff,0x00,0x4a,0x30,0x25,0x50,0x43,0x01,0x24,0x20,0x44,0x01, +0xf2,0x02,0x66,0x35,0x0a,0x00,0x6a,0x35,0x80,0xff,0x02,0x24,0x00,0x00,0x00,0xa1, +0x00,0x00,0x27,0xa1,0x00,0x00,0xa3,0xac,0x00,0x00,0xa3,0xac,0x00,0x00,0xc0,0xa0, +0x00,0x00,0x42,0xa1,0x04,0x00,0x80,0x10,0x02,0x00,0x62,0x35,0x84,0xff,0x02,0x24, +0x00,0x00,0x42,0xa1,0x02,0x00,0x62,0x35,0x00,0x00,0x43,0x94,0xff,0xbf,0x04,0x24, +0x24,0x18,0x64,0x00,0x00,0x00,0x43,0xa4,0x7f,0x19,0x00,0x08,0x68,0x15,0x66,0x26, +0x0e,0x4f,0x00,0x0c,0x07,0x00,0x04,0x24,0x00,0x4b,0x03,0x8e,0xfc,0x4a,0x06,0x8e, +0x25,0xb0,0x02,0x3c,0x26,0x18,0x71,0x00,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x72,0x1d,0x00,0x08,0x00,0x4b,0x03,0xae,0x56,0x01,0x42,0x35,0x00,0x00,0x43,0x94, +0x00,0x00,0x00,0x00,0x75,0xfb,0x60,0x10,0x00,0x00,0x00,0x00,0x0e,0x4f,0x00,0x0c, +0x07,0x00,0x04,0x24,0x6c,0x19,0x00,0x08,0x68,0x15,0x64,0x26,0x28,0x00,0xbf,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x30,0x19,0x00,0x08,0x30,0x00,0xbd,0x27,0x00,0x00,0x62,0xac,0xdc,0x19,0x00,0x08, +0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0x19,0x1a,0x00,0x08,0xff,0x00,0x02,0x24, +0x00,0x00,0x62,0xac,0x56,0x1a,0x00,0x08,0xff,0x00,0x02,0x24,0x05,0x00,0x03,0x24, +0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x8b,0x1b,0x00,0x08,0x68,0x15,0x62,0x26, +0x02,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x07,0x1d,0x00,0x08, +0x68,0x15,0x62,0x26,0xd0,0x03,0x03,0x35,0x80,0x00,0x02,0x24,0x00,0x00,0x62,0xac, +0x9d,0x1d,0x00,0x08,0x68,0x15,0x62,0x26,0x01,0x00,0x03,0x24,0x90,0x03,0x42,0x34, +0x00,0x00,0x43,0xac,0x67,0x1d,0x00,0x08,0x68,0x15,0x62,0x26,0x25,0xb0,0x02,0x3c, +0x07,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x68,0x15,0x63,0x26, +0x00,0x4b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x80,0x42,0x38,0xd3,0x1a,0x00,0x08, +0x00,0x4b,0x62,0xac,0x06,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x2c,0x1b,0x00,0x08,0x68,0x15,0x62,0x26,0x25,0xb0,0x02,0x3c,0x07,0x00,0x03,0x24, +0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x68,0x15,0x63,0x26,0x00,0x4b,0x62,0x8c, +0x00,0x00,0x00,0x00,0x00,0x20,0x42,0x38,0x76,0x1a,0x00,0x08,0x00,0x4b,0x62,0xac, +0x03,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x49,0x1c,0x00,0x08, +0x68,0x15,0x62,0x26,0x00,0x00,0x40,0xac,0xa8,0x1c,0x00,0x08,0x68,0x15,0x62,0x26, +0x90,0x03,0x63,0x34,0x00,0x00,0x62,0xac,0xea,0x1b,0x00,0x08,0x68,0x15,0x62,0x26, +0x25,0xb0,0x0d,0x3c,0x00,0x80,0x02,0x3c,0x18,0x03,0xa4,0x35,0x10,0x79,0x42,0x24, +0x02,0x80,0x03,0x3c,0x41,0xb0,0x08,0x3c,0x00,0x00,0x82,0xac,0x68,0x15,0x6a,0x24, +0x0a,0x00,0x02,0x35,0x00,0x00,0x44,0x94,0x0a,0x4b,0x43,0x95,0x08,0x4b,0x4b,0x95, +0x25,0x18,0x64,0x00,0xff,0xff,0x6c,0x30,0x24,0x10,0x8b,0x01,0x02,0x00,0x42,0x30, +0x53,0x00,0x40,0x10,0x02,0x00,0x64,0x38,0x02,0x00,0x02,0x24,0xc0,0x03,0xa3,0x35, +0x00,0x00,0x62,0xac,0x0a,0x4b,0x44,0xa5,0x24,0x38,0x8b,0x01,0x04,0x00,0xe2,0x30, +0x0a,0x00,0x40,0x10,0x08,0x00,0xe2,0x30,0x0a,0x4b,0x43,0x95,0x0c,0x00,0x04,0x35, +0xc0,0x03,0xa5,0x35,0x04,0x00,0x63,0x38,0x04,0x00,0x02,0x24,0x00,0x00,0x86,0x8c, +0x00,0x00,0xa2,0xac,0x0a,0x4b,0x43,0xa5,0x08,0x00,0xe2,0x30,0x08,0x00,0x40,0x10, +0x10,0x00,0xe2,0x30,0x0a,0x4b,0x42,0x95,0xc0,0x03,0xa4,0x35,0x08,0x00,0x03,0x24, +0x08,0x00,0x42,0x38,0x00,0x00,0x83,0xac,0x0a,0x4b,0x42,0xa5,0x10,0x00,0xe2,0x30, +0x08,0x00,0x40,0x10,0x20,0x00,0xe2,0x30,0x0a,0x4b,0x42,0x95,0xc0,0x03,0xa4,0x35, +0x10,0x00,0x03,0x24,0x10,0x00,0x42,0x38,0x00,0x00,0x83,0xac,0x0a,0x4b,0x42,0xa5, +0x20,0x00,0xe2,0x30,0x08,0x00,0x40,0x10,0x80,0x00,0xe2,0x30,0x0a,0x4b,0x42,0x95, +0xc0,0x03,0xa4,0x35,0x20,0x00,0x03,0x24,0x20,0x00,0x42,0x38,0x00,0x00,0x83,0xac, +0x0a,0x4b,0x42,0xa5,0x80,0x00,0xe2,0x30,0x15,0x00,0x40,0x10,0x24,0x10,0x8b,0x01, +0x02,0x80,0x09,0x3c,0x0a,0x4b,0x46,0x95,0xcc,0x7e,0x25,0x8d,0x08,0x00,0x02,0x3c, +0x7f,0xff,0x04,0x24,0x24,0x20,0x64,0x01,0x25,0x28,0xa2,0x00,0x80,0x00,0xc6,0x38, +0xb0,0x03,0xa7,0x35,0x08,0x00,0x08,0x35,0xc0,0x03,0xa3,0x35,0x80,0x00,0x02,0x24, +0x00,0x00,0x62,0xac,0x21,0x58,0x80,0x00,0x00,0x00,0xe5,0xac,0x0a,0x4b,0x46,0xa5, +0xcc,0x7e,0x25,0xad,0x00,0x00,0x04,0xa5,0x08,0x4b,0x44,0xa5,0x24,0x10,0x8b,0x01, +0x00,0x30,0x42,0x30,0x07,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x0a,0x4b,0x42,0x95, +0x00,0x00,0x00,0x00,0x00,0x10,0x42,0x38,0x00,0x20,0x42,0x34,0x0a,0x4b,0x42,0xa5, +0x02,0x80,0x02,0x3c,0xea,0x7d,0x43,0x90,0x01,0x00,0x02,0x24,0x0f,0x00,0x63,0x30, +0x05,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x5a,0x1e,0x00,0x08,0x0a,0x4b,0x43,0xa5,0x30,0x19,0x00,0x08,0x00,0x00,0x00,0x00, +0xf8,0xff,0xbd,0x27,0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf,0x00,0x40,0x02,0x40, +0x00,0x68,0x08,0x40,0x00,0x70,0x02,0x40,0x00,0x60,0x09,0x40,0x25,0xb0,0x05,0x3c, +0x00,0x80,0x02,0x3c,0x18,0x03,0xa3,0x34,0xb0,0x7a,0x42,0x24,0x00,0x00,0x62,0xac, +0x80,0x00,0x87,0x8c,0x7c,0x02,0xa2,0x34,0x84,0x02,0xa3,0x34,0x88,0x02,0xa6,0x34, +0x00,0x00,0x47,0xac,0x00,0x00,0x68,0xac,0x00,0x00,0xc9,0xac,0x74,0x00,0x83,0x8c, +0x8c,0x02,0xa2,0x34,0x90,0x02,0xa7,0x34,0x00,0x00,0x43,0xac,0x08,0x00,0x86,0x8c, +0x94,0x02,0xa8,0x34,0x98,0x02,0xa9,0x34,0x00,0x00,0xe6,0xac,0x0c,0x00,0x82,0x8c, +0x9c,0x02,0xa6,0x34,0xa0,0x02,0xa7,0x34,0x00,0x00,0x02,0xad,0x10,0x00,0x83,0x8c, +0xa4,0x02,0xa8,0x34,0xa8,0x02,0xaa,0x34,0x00,0x00,0x23,0xad,0x14,0x00,0x82,0x8c, +0xac,0x02,0xa9,0x34,0xb0,0x02,0xab,0x34,0x00,0x00,0xc2,0xac,0x18,0x00,0x83,0x8c, +0xb4,0x02,0xa6,0x34,0xb8,0x02,0xac,0x34,0x00,0x00,0xe3,0xac,0x1c,0x00,0x82,0x8c, +0xbc,0x02,0xa7,0x34,0xc0,0x02,0xad,0x34,0x00,0x00,0x02,0xad,0x20,0x00,0x83,0x8c, +0xc4,0x02,0xa8,0x34,0xc8,0x02,0xae,0x34,0x00,0x00,0x43,0xad,0x24,0x00,0x82,0x8c, +0xcc,0x02,0xaa,0x34,0xd0,0x02,0xaf,0x34,0x00,0x00,0x22,0xad,0x28,0x00,0x83,0x8c, +0xd4,0x02,0xa9,0x34,0xd8,0x02,0xb0,0x34,0x00,0x00,0x63,0xad,0x2c,0x00,0x82,0x8c, +0x70,0x02,0xab,0x34,0x74,0x02,0xb1,0x34,0x00,0x00,0xc2,0xac,0x30,0x00,0x83,0x8c, +0x78,0x02,0xa5,0x34,0x00,0x00,0x83,0xad,0x34,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0xe2,0xac,0x38,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xad, +0x3c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xad,0x40,0x00,0x83,0x8c, +0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xad,0x44,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x42,0xad,0x48,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xe3,0xad, +0x4c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0xad,0x50,0x00,0x83,0x8c, +0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xae,0x54,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x62,0xad,0x58,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0xae, +0x5c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xac,0x0f,0x1f,0x00,0x08, +0x00,0x00,0x00,0x00,0x00,0x80,0x1b,0x3c,0x44,0x7c,0x7b,0x27,0x25,0xb0,0x1a,0x3c, +0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00, +0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf, +0x0c,0x00,0x63,0xaf,0x10,0x00,0x64,0xaf,0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf, +0x1c,0x00,0x67,0xaf,0x20,0x00,0x68,0xaf,0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf, +0x2c,0x00,0x6b,0xaf,0x30,0x00,0x6c,0xaf,0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf, +0x3c,0x00,0x6f,0xaf,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40, +0x40,0x00,0x70,0xaf,0x44,0x00,0x71,0xaf,0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf, +0x50,0x00,0x74,0xaf,0x54,0x00,0x75,0xaf,0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf, +0x60,0x00,0x78,0xaf,0x64,0x00,0x79,0xaf,0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf, +0x70,0x00,0x7e,0xaf,0x74,0x00,0x7f,0xaf,0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf, +0x80,0x00,0x6a,0xaf,0x00,0x68,0x1a,0x40,0x25,0xb0,0x1b,0x3c,0x1c,0x03,0x7b,0x37, +0x00,0x00,0x00,0x00,0x00,0x00,0x7a,0xaf,0x7f,0x00,0x5b,0x33,0x30,0x00,0x60,0x13, +0x00,0x00,0x00,0x00,0x25,0xb0,0x1b,0x3c,0x30,0x03,0x7b,0x37,0x00,0x00,0x00,0x00, +0x00,0x00,0x7a,0xaf,0x00,0x00,0x00,0x00,0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00, +0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf, +0x0c,0x00,0x63,0xaf,0x10,0x00,0x64,0xaf,0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf, +0x1c,0x00,0x67,0xaf,0x20,0x00,0x68,0xaf,0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf, +0x2c,0x00,0x6b,0xaf,0x30,0x00,0x6c,0xaf,0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf, +0x3c,0x00,0x6f,0xaf,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40, +0x40,0x00,0x70,0xaf,0x44,0x00,0x71,0xaf,0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf, +0x50,0x00,0x74,0xaf,0x54,0x00,0x75,0xaf,0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf, +0x60,0x00,0x78,0xaf,0x64,0x00,0x79,0xaf,0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf, +0x70,0x00,0x7e,0xaf,0x74,0x00,0x7f,0xaf,0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf, +0x80,0x00,0x6a,0xaf,0xac,0x1e,0x00,0x08,0x21,0x20,0x60,0x03,0x00,0x00,0x00,0x00, +0x25,0xb0,0x08,0x3c,0x20,0x03,0x08,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0xad, +0x00,0x04,0x5b,0x33,0x0a,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x00,0x80,0x08,0x3c, +0x30,0x65,0x08,0x25,0x00,0x00,0x00,0x00,0x25,0xb0,0x1b,0x3c,0x24,0x03,0x7b,0x37, +0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xaf,0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00, +0x00,0x08,0x5b,0x33,0x25,0xb0,0x08,0x3c,0x28,0x03,0x08,0x35,0x00,0x00,0x00,0x00, +0x00,0x00,0x1b,0xad,0x06,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x00,0x80,0x08,0x3c, +0x10,0x79,0x08,0x25,0x00,0x00,0x00,0x00,0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00, +0x02,0x80,0x1a,0x3c,0xcc,0x7e,0x5a,0x27,0x04,0x00,0x5b,0x97,0x25,0xb0,0x08,0x3c, +0x30,0x03,0x08,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xad,0x18,0x00,0x60,0x13, +0x00,0x00,0x00,0x00,0x08,0xec,0x9b,0x27,0x00,0x00,0x00,0x00,0x04,0x00,0x61,0x8f, +0xfc,0x03,0x70,0x7b,0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b, +0x3c,0x01,0x68,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b, +0xbc,0x01,0x6c,0x7b,0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b, +0xbc,0x02,0x74,0x7b,0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b, +0xbc,0x03,0x7e,0x7b,0x80,0x00,0x7b,0x8f,0xfc,0x1f,0x00,0x08,0x00,0x00,0x00,0x00, +0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27, +0x08,0x00,0x5b,0xaf,0xfc,0xef,0x9d,0x27,0x00,0x00,0x4a,0x8f,0x00,0x00,0x00,0x00, +0x21,0x00,0x40,0x11,0x00,0x00,0x00,0x00,0x02,0x80,0x08,0x3c,0x2c,0x7e,0x08,0x25, +0x21,0x48,0x00,0x00,0x21,0x58,0x00,0x00,0x01,0x00,0x6b,0x25,0x1a,0x00,0x40,0x11, +0x24,0x70,0x4b,0x01,0x14,0x00,0xc0,0x11,0x01,0x00,0x04,0x24,0x00,0x00,0x00,0x00, +0x04,0x00,0x44,0xa3,0x26,0x50,0x4b,0x01,0x00,0x00,0x4a,0xaf,0x80,0x80,0x09,0x00, +0x21,0x80,0x08,0x02,0x00,0x00,0x10,0x8e,0x00,0x00,0x00,0x00,0x09,0xf8,0x00,0x02, +0x00,0x00,0x00,0x00,0x00,0x80,0x1b,0x3c,0x1c,0x7f,0x7b,0x27,0x25,0xb0,0x1a,0x3c, +0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x02,0x80,0x1a,0x3c,0xcc,0x7e,0x5a,0x27, +0xe1,0xff,0x00,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x29,0x25,0x40,0x58,0x0b,0x00, +0xbf,0x1f,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x1b,0x3c,0xcc,0x7e,0x7b,0x27, +0x21,0x60,0x00,0x00,0x04,0x00,0x6c,0xa7,0x08,0x00,0x7a,0x8f,0x00,0x00,0x00,0x00, +0xf8,0xff,0x5a,0x27,0x00,0x00,0x5a,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x5a,0x27, +0x84,0x00,0x44,0x8f,0x00,0x00,0x00,0x00,0xf9,0xff,0x80,0x10,0x00,0x00,0x00,0x00, +0x04,0x00,0x41,0x8f,0xfc,0x03,0x50,0x7b,0x7c,0x00,0x42,0x7b,0xbc,0x00,0x44,0x7b, +0xfc,0x00,0x46,0x7b,0x3c,0x01,0x48,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02, +0x7c,0x01,0x4a,0x7b,0xbc,0x01,0x4c,0x7b,0xfc,0x01,0x4e,0x7b,0x3c,0x02,0x50,0x7b, +0x7c,0x02,0x52,0x7b,0xbc,0x02,0x54,0x7b,0xfc,0x02,0x56,0x7b,0x3c,0x03,0x58,0x7b, +0x7c,0x03,0x5c,0x7b,0xbc,0x03,0x5e,0x7b,0x80,0x00,0x5b,0x8f,0x00,0x00,0x00,0x00, +0x08,0x00,0x60,0x03,0x10,0x00,0x00,0x42,0x00,0x60,0x05,0x40,0x42,0x28,0x05,0x00, +0x40,0x28,0x05,0x00,0x00,0x60,0x85,0x40,0x04,0x00,0x81,0xac,0x08,0x00,0x82,0xac, +0x0c,0x00,0x83,0xac,0x20,0x00,0x88,0xac,0x24,0x00,0x89,0xac,0x28,0x00,0x8a,0xac, +0x2c,0x00,0x8b,0xac,0x30,0x00,0x8c,0xac,0x34,0x00,0x8d,0xac,0x38,0x00,0x8e,0xac, +0x3c,0x00,0x8f,0xac,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x40,0x00,0x90,0xac, +0x44,0x00,0x91,0xac,0x48,0x00,0x92,0xac,0x4c,0x00,0x93,0xac,0x50,0x00,0x94,0xac, +0x54,0x00,0x95,0xac,0x58,0x00,0x96,0xac,0x5c,0x00,0x97,0xac,0x60,0x00,0x98,0xac, +0x64,0x00,0x99,0xac,0x68,0x00,0x9c,0xac,0x6c,0x00,0x9d,0xac,0x70,0x00,0x9e,0xac, +0x74,0x00,0x9f,0xac,0x78,0x00,0x88,0xac,0x7c,0x00,0x89,0xac,0x80,0x00,0x9f,0xac, +0xf8,0xff,0x84,0x24,0x00,0x00,0x84,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x84,0x24, +0x84,0x00,0x86,0x8c,0x00,0x00,0x00,0x00,0xf9,0xff,0xc0,0x10,0x00,0x00,0x00,0x00, +0x21,0xd8,0x80,0x00,0x01,0x00,0xba,0x24,0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b, +0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b, +0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b, +0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b, +0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b, +0x80,0x00,0x7b,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40, +0x00,0x60,0x05,0x40,0x42,0x28,0x05,0x00,0x40,0x28,0x05,0x00,0x00,0x60,0x85,0x40, +0x04,0x00,0x81,0xac,0x08,0x00,0x82,0xac,0x0c,0x00,0x83,0xac,0x20,0x00,0x88,0xac, +0x24,0x00,0x89,0xac,0x28,0x00,0x8a,0xac,0x2c,0x00,0x8b,0xac,0x30,0x00,0x8c,0xac, +0x34,0x00,0x8d,0xac,0x38,0x00,0x8e,0xac,0x3c,0x00,0x8f,0xac,0x12,0x40,0x00,0x00, +0x10,0x48,0x00,0x00,0x40,0x00,0x90,0xac,0x44,0x00,0x91,0xac,0x48,0x00,0x92,0xac, +0x4c,0x00,0x93,0xac,0x50,0x00,0x94,0xac,0x54,0x00,0x94,0xac,0x58,0x00,0x96,0xac, +0x5c,0x00,0x96,0xac,0x60,0x00,0x98,0xac,0x64,0x00,0x99,0xac,0x68,0x00,0x9c,0xac, +0x6c,0x00,0x9d,0xac,0x70,0x00,0x9e,0xac,0x78,0x00,0x88,0xac,0x7c,0x00,0x89,0xac, +0x80,0x00,0x9f,0xac,0x84,0x00,0x80,0xac,0xf8,0xff,0x84,0x24,0x00,0x00,0x84,0x8c, +0x00,0x00,0x00,0x00,0x08,0x00,0x84,0x24,0x84,0x00,0x86,0x8c,0xfa,0xff,0xc0,0x10, +0x00,0x00,0x00,0x00,0x21,0xd8,0x80,0x00,0x01,0x00,0xba,0x24,0x04,0x00,0x61,0x8f, +0xfc,0x03,0x70,0x7b,0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b, +0x3c,0x01,0x68,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b, +0xbc,0x01,0x6c,0x7b,0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b, +0xbc,0x02,0x74,0x7b,0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b, +0xbc,0x03,0x7e,0x7b,0x80,0x00,0x7b,0x8f,0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x60,0xb9,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x1b,0x3c,0x00,0x00,0x7b,0x27, +0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x00,0x00,0x05,0x24, +0x03,0x00,0xa4,0x24,0x00,0xa0,0x80,0x40,0x00,0xa0,0x84,0x40,0x01,0x80,0x04,0x3c, +0x98,0x03,0x84,0x24,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x80,0x1b,0x3c,0x98,0x03,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27, +0x00,0x00,0x5b,0xaf,0x02,0x80,0x1a,0x3c,0x00,0x00,0x5a,0x27,0xfc,0x03,0x5d,0x27, +0x02,0x80,0x1c,0x3c,0x00,0x14,0x9c,0x27,0x00,0xf0,0x08,0x3c,0x00,0x0c,0x08,0x35, +0x00,0x60,0x88,0x40,0x02,0x80,0x04,0x3c,0x00,0x00,0x84,0x24,0xff,0x7f,0x05,0x3c, +0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x20,0x84,0x4c,0xff,0xff,0x05,0x34, +0x21,0x28,0xa4,0x00,0x00,0x28,0x85,0x4c,0x00,0x80,0x04,0x3c,0x00,0x00,0x84,0x24, +0xff,0x7f,0x05,0x3c,0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x00,0x84,0x4c, +0xff,0xff,0x06,0x34,0x21,0x30,0xc4,0x00,0x24,0x30,0xc5,0x00,0x00,0x08,0x86,0x4c, +0x00,0xa0,0x04,0x40,0x10,0x00,0x84,0x34,0x00,0xa0,0x84,0x40,0x01,0x80,0x1b,0x3c, +0x24,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf, +0x00,0x00,0x00,0x00,0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x84, +0x20,0x00,0x06,0x24,0x25,0x28,0xa6,0x00,0x00,0x00,0x85,0xa4,0x01,0x80,0x1b,0x3c, +0x54,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf, +0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x8c,0x00,0x00,0x00,0x00, +0x10,0x00,0xa5,0x30,0xfc,0xff,0xa0,0x10,0x00,0x00,0x00,0x00,0xff,0x1f,0x07,0x3c, +0xff,0xff,0xe7,0x34,0x02,0x80,0x05,0x3c,0xe8,0x7d,0xa5,0x24,0xff,0xff,0xa5,0x30, +0x40,0xb0,0x04,0x3c,0x25,0x28,0xa4,0x00,0x24,0x28,0xa7,0x00,0x21,0x30,0x00,0x00, +0x43,0xb0,0x02,0x3c,0x00,0x80,0x04,0x3c,0x40,0x00,0x84,0x34,0x00,0x00,0x45,0xac, +0x04,0x00,0x46,0xac,0x08,0x00,0x44,0xac,0x8b,0x5b,0x00,0x08,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24, +0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0x08,0x00,0xe0,0x03,0x01,0x00,0x42,0x24, +0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x21,0x18,0x40,0x00,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x44,0x05,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x04,0x00,0x85,0x8c,0x00,0x80,0x03,0x3c,0x01,0x00,0x02,0x24,0x25,0x28,0xa3,0x00, +0x00,0x00,0xa4,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x74,0x05,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x04,0x00,0x82,0x8c,0x02,0x00,0x83,0x94,0x00,0x80,0x07,0x3c,0x25,0x28,0x47,0x00, +0x00,0x00,0xa2,0x8c,0x10,0x00,0x02,0x24,0x13,0x00,0x62,0x10,0x11,0x00,0x66,0x28, +0x06,0x00,0xc0,0x10,0x20,0x00,0x02,0x24,0x08,0x00,0x02,0x24,0x17,0x00,0x62,0x10, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0xfd,0xff,0x62,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xac, +0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x25,0x10,0x47,0x00,0x00,0x00,0x42,0x8c, +0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0xa2,0xa4,0x04,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x25,0x18,0x67,0x00, +0x00,0x00,0x62,0x94,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0x82,0x8c, +0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xa0,0x04,0x00,0x83,0x8c,0x00,0x00,0x00,0x00, +0x25,0x18,0x67,0x00,0x00,0x00,0x62,0x90,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24, +0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,0x1c,0x00,0xbf,0xaf, +0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x68,0x15,0x31,0x26,0x44,0x65,0x30,0x96, +0x02,0x80,0x02,0x3c,0x01,0x80,0x03,0x3c,0x25,0x80,0x02,0x02,0x25,0xb0,0x02,0x3c, +0x38,0x06,0x63,0x24,0x18,0x03,0x42,0x34,0x60,0x00,0x04,0x26,0x80,0x00,0x05,0x26, +0x00,0x00,0x43,0xac,0x6c,0x45,0x00,0x0c,0x03,0x00,0x06,0x24,0x21,0x20,0x00,0x02, +0x21,0x28,0x00,0x00,0x58,0x45,0x00,0x0c,0x08,0x00,0x06,0x24,0x44,0x65,0x22,0x8e, +0x0c,0x00,0x03,0x24,0x0c,0x00,0x43,0xae,0x08,0x00,0x42,0xae,0x12,0x00,0x02,0x24, +0x14,0x00,0x42,0xae,0x21,0x20,0x40,0x02,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x30,0x08,0x00,0x08,0x20,0x00,0xbd,0x27, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24, +0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x02,0x80,0x02,0x3c,0x21,0x48,0x80,0x00, +0x68,0x15,0x48,0x24,0x21,0x38,0x00,0x00,0x21,0x28,0x27,0x01,0x00,0x00,0xa2,0x90, +0x21,0x20,0xe8,0x00,0x01,0x00,0xe7,0x24,0x44,0x4c,0x82,0xa0,0x1e,0x00,0xa3,0x90, +0x1e,0x00,0xe6,0x28,0x62,0x4c,0x83,0xa0,0x3c,0x00,0xa2,0x90,0x00,0x00,0x00,0x00, +0x80,0x4c,0x82,0xa0,0x5a,0x00,0xa3,0x90,0xf3,0xff,0xc0,0x14,0x9e,0x4c,0x83,0xa0, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24, +0x20,0xbd,0x03,0x3c,0x58,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x0f,0x27,0x07,0x24, +0x20,0x00,0x42,0x34,0x00,0x00,0x62,0xa0,0xff,0xff,0xe7,0x24,0xff,0xff,0xe1,0x04, +0xff,0xff,0xe7,0x24,0x62,0xbd,0x04,0x3c,0x24,0x10,0x82,0x34,0x00,0x00,0x40,0xa0, +0x28,0x10,0x83,0x34,0x0c,0x11,0x86,0x34,0x0e,0x00,0x02,0x24,0x00,0x00,0x60,0xa0, +0x00,0x11,0x85,0x34,0x00,0x00,0xc2,0xa0,0x00,0x00,0xa7,0x8c,0xdf,0xff,0x02,0x24, +0x10,0x00,0x86,0x34,0x24,0x38,0xe2,0x00,0x49,0x0c,0x03,0x24,0xcf,0xff,0x02,0x24, +0x00,0x00,0xc3,0xac,0x04,0x00,0x84,0x34,0x00,0x00,0xa7,0xac,0x24,0x38,0xe2,0x00, +0x41,0x0c,0x02,0x24,0x00,0x00,0xa7,0xac,0x00,0x00,0x80,0xac,0x00,0x00,0xc2,0xac, +0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x25,0xb0,0x05,0x3c,0x01,0x80,0x03,0x3c,0x21,0x38,0x80,0x00,0x18,0x03,0xa2,0x34, +0xa8,0x08,0x63,0x24,0x01,0x00,0x04,0x24,0x00,0x00,0x43,0xac,0x35,0x00,0xe4,0x10, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x10,0x20,0x08,0xa2,0x34,0x02,0x00,0x02,0x24, +0x83,0x00,0xe2,0x10,0x03,0x00,0x02,0x24,0x5a,0x00,0xe2,0x10,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x00,0x00,0x44,0x8c, +0x68,0x15,0x66,0x24,0x70,0x08,0x02,0x24,0xe0,0x08,0x03,0x24,0x80,0x4b,0xc2,0xac, +0x40,0x08,0x02,0x24,0x84,0x4b,0xc3,0xac,0x90,0x4b,0xc2,0xac,0x78,0x08,0x03,0x24, +0x0c,0x08,0x02,0x24,0x94,0x4b,0xc3,0xac,0x98,0x4b,0xc2,0xac,0x10,0x08,0x03,0x24, +0x20,0x08,0x02,0x24,0x9c,0x4b,0xc3,0xac,0xa0,0x4b,0xc2,0xac,0x24,0x08,0x03,0x24, +0x58,0x08,0x02,0x24,0xa4,0x4b,0xc3,0xac,0xa8,0x4b,0xc2,0xac,0x50,0x0c,0x03,0x24, +0x54,0x0c,0x02,0x24,0xac,0x4b,0xc3,0xac,0xb0,0x4b,0xc2,0xac,0x14,0x0c,0x03,0x24, +0x10,0x0c,0x02,0x24,0x60,0x08,0x05,0x24,0xb4,0x4b,0xc3,0xac,0xb8,0x4b,0xc2,0xac, +0x80,0x0c,0x03,0x24,0x84,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xc0,0x4b,0xc2,0xac, +0x8c,0x4b,0xc5,0xac,0xbc,0x4b,0xc3,0xac,0x7d,0x4b,0xc0,0xa0,0x88,0x4b,0xc5,0xac, +0x02,0x00,0x80,0x10,0xa0,0x08,0x02,0x24,0xb8,0x08,0x02,0x24,0x08,0x00,0xe0,0x03, +0xc4,0x4b,0xc2,0xac,0x28,0x08,0xa2,0x34,0x02,0x80,0x03,0x3c,0x00,0x00,0x44,0x8c, +0x68,0x15,0x66,0x24,0x70,0x08,0x02,0x24,0xe0,0x08,0x03,0x24,0x80,0x4b,0xc2,0xac, +0x44,0x08,0x02,0x24,0x84,0x4b,0xc3,0xac,0x90,0x4b,0xc2,0xac,0x78,0x08,0x03,0x24, +0x0c,0x08,0x02,0x24,0x94,0x4b,0xc3,0xac,0x98,0x4b,0xc2,0xac,0x14,0x08,0x03,0x24, +0x28,0x08,0x02,0x24,0x9c,0x4b,0xc3,0xac,0xa0,0x4b,0xc2,0xac,0x2c,0x08,0x03,0x24, +0x58,0x08,0x02,0x24,0xa4,0x4b,0xc3,0xac,0xa8,0x4b,0xc2,0xac,0x58,0x0c,0x03,0x24, +0x5c,0x0c,0x02,0x24,0xac,0x4b,0xc3,0xac,0xb0,0x4b,0xc2,0xac,0x1c,0x0c,0x03,0x24, +0x18,0x0c,0x02,0x24,0x64,0x08,0x05,0x24,0xb4,0x4b,0xc3,0xac,0xb8,0x4b,0xc2,0xac, +0x88,0x0c,0x03,0x24,0x8c,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xc0,0x4b,0xc2,0xac, +0x7d,0x4b,0xc7,0xa0,0x8c,0x4b,0xc5,0xac,0xbc,0x4b,0xc3,0xac,0x88,0x4b,0xc5,0xac, +0xd6,0xff,0x80,0x10,0xa4,0x08,0x02,0x24,0xbc,0x08,0x02,0x24,0x08,0x00,0xe0,0x03, +0xc4,0x4b,0xc2,0xac,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,0xac,0x08,0x03,0x24, +0xc4,0x4b,0x43,0xac,0x74,0x08,0x03,0x24,0xe4,0x08,0x04,0x24,0x80,0x4b,0x43,0xac, +0x4c,0x08,0x03,0x24,0x84,0x4b,0x44,0xac,0x90,0x4b,0x43,0xac,0x7c,0x08,0x04,0x24, +0x0c,0x08,0x03,0x24,0x94,0x4b,0x44,0xac,0x98,0x4b,0x43,0xac,0x1c,0x08,0x04,0x24, +0x38,0x08,0x03,0x24,0x9c,0x4b,0x44,0xac,0xa0,0x4b,0x43,0xac,0x3c,0x08,0x04,0x24, +0x5c,0x08,0x03,0x24,0xa4,0x4b,0x44,0xac,0xa8,0x4b,0x43,0xac,0x68,0x0c,0x04,0x24, +0x6c,0x0c,0x03,0x24,0xac,0x4b,0x44,0xac,0xb0,0x4b,0x43,0xac,0x2c,0x0c,0x04,0x24, +0x28,0x0c,0x03,0x24,0x6c,0x08,0x05,0x24,0xb4,0x4b,0x44,0xac,0xb8,0x4b,0x43,0xac, +0x98,0x0c,0x04,0x24,0x9c,0x0c,0x03,0x24,0x7d,0x4b,0x47,0xa0,0x8c,0x4b,0x45,0xac, +0xbc,0x4b,0x44,0xac,0xc0,0x4b,0x43,0xac,0x08,0x00,0xe0,0x03,0x88,0x4b,0x45,0xac, +0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,0xa8,0x08,0x03,0x24,0xc4,0x4b,0x43,0xac, +0x74,0x08,0x03,0x24,0xe4,0x08,0x04,0x24,0x80,0x4b,0x43,0xac,0x48,0x08,0x03,0x24, +0x84,0x4b,0x44,0xac,0x90,0x4b,0x43,0xac,0x7c,0x08,0x04,0x24,0x0c,0x08,0x03,0x24, +0x94,0x4b,0x44,0xac,0x98,0x4b,0x43,0xac,0x18,0x08,0x04,0x24,0x30,0x08,0x03,0x24, +0x9c,0x4b,0x44,0xac,0xa0,0x4b,0x43,0xac,0x34,0x08,0x04,0x24,0x5c,0x08,0x03,0x24, +0xa4,0x4b,0x44,0xac,0xa8,0x4b,0x43,0xac,0x60,0x0c,0x04,0x24,0x64,0x0c,0x03,0x24, +0xac,0x4b,0x44,0xac,0xb0,0x4b,0x43,0xac,0x24,0x0c,0x04,0x24,0x20,0x0c,0x03,0x24, +0x68,0x08,0x05,0x24,0xb4,0x4b,0x44,0xac,0xb8,0x4b,0x43,0xac,0x90,0x0c,0x04,0x24, +0x94,0x0c,0x03,0x24,0x7d,0x4b,0x47,0xa0,0x8c,0x4b,0x45,0xac,0xbc,0x4b,0x44,0xac, +0xc0,0x4b,0x43,0xac,0x08,0x00,0xe0,0x03,0x88,0x4b,0x45,0xac,0xe6,0x42,0x00,0x08, +0x21,0x18,0x00,0x00,0x20,0x00,0x62,0x2c,0x06,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x06,0x10,0x64,0x00,0x01,0x00,0x42,0x30,0xfa,0xff,0x40,0x10,0x01,0x00,0x63,0x24, +0xff,0xff,0x63,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xd8,0xff,0xbd,0x27, +0x25,0xb0,0x02,0x3c,0x18,0x00,0xb2,0xaf,0x21,0x90,0x82,0x00,0xff,0xff,0x02,0x24, +0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf, +0x21,0x88,0xa0,0x00,0x21,0x20,0xa0,0x00,0x21,0x18,0x40,0x02,0x10,0x00,0xa2,0x10, +0x21,0x98,0xc0,0x00,0x00,0x00,0x50,0x8e,0xe1,0x42,0x00,0x0c,0x00,0x00,0x00,0x00, +0x04,0x10,0x53,0x00,0x27,0x18,0x11,0x00,0x25,0x18,0x62,0x00,0x24,0x18,0x70,0x00, +0x00,0x00,0x43,0xae,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27, +0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x28,0x00,0xbd,0x27,0x00,0x00,0x66,0xac,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x21,0x30,0x80,0x00,0xf8,0x60,0x44,0x8c, +0xed,0x42,0x00,0x08,0xff,0xff,0x05,0x24,0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c, +0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x20,0x82,0x00, +0x00,0x00,0x90,0x8c,0x21,0x88,0xa0,0x00,0xe1,0x42,0x00,0x0c,0x21,0x20,0xa0,0x00, +0x24,0x80,0x11,0x02,0x06,0x10,0x50,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27, +0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,0x28,0x00,0xbf,0xaf,0x20,0x00,0xb4,0xaf, +0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x24,0x00,0xb5,0xaf,0x10,0x00,0xb0,0xaf, +0x68,0x15,0x31,0x26,0xa4,0x4b,0x22,0x8e,0x25,0xb0,0x12,0x3c,0x24,0x08,0x53,0x36, +0x21,0x10,0x52,0x00,0x00,0x00,0x70,0x8e,0x00,0x00,0x55,0x8c,0x7f,0x80,0x03,0x3c, +0xff,0x7f,0x02,0x3c,0xff,0xff,0x63,0x34,0xff,0xff,0x42,0x34,0x24,0x10,0x02,0x02, +0x24,0x18,0xa3,0x02,0xc0,0x25,0x04,0x00,0x25,0x18,0x64,0x00,0x00,0x80,0x14,0x3c, +0x00,0x00,0x62,0xae,0x01,0x00,0x04,0x24,0xeb,0x0b,0x00,0x0c,0x25,0xa8,0x74,0x00, +0xa4,0x4b,0x22,0x8e,0x25,0x80,0x14,0x02,0x01,0x00,0x04,0x24,0x21,0x10,0x52,0x00, +0x00,0x00,0x55,0xac,0xeb,0x0b,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xae, +0xeb,0x0b,0x00,0x0c,0x01,0x00,0x04,0x24,0xc4,0x4b,0x24,0x8e,0x0f,0x00,0x05,0x3c, +0x28,0x00,0xbf,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0xff,0xa5,0x34, +0x18,0x43,0x00,0x08,0x30,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf, +0x02,0x80,0x11,0x3c,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x68,0x15,0x27,0x26, +0x7f,0x4b,0xe5,0x90,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x70,0x0d,0x63,0x24, +0x18,0x03,0x42,0x34,0x02,0x00,0x06,0x24,0x00,0x00,0x43,0xac,0x34,0x00,0xa6,0x10, +0x21,0x80,0x80,0x00,0x03,0x00,0x03,0x24,0x3a,0x00,0xa3,0x10,0x2e,0x00,0x02,0x2e, +0x10,0x00,0x02,0x2e,0x07,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xff,0x00,0x04,0x32, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x29,0x43,0x00,0x08, +0x20,0x00,0xbd,0x27,0xfa,0xff,0xa6,0x14,0xff,0x00,0x04,0x32,0x7d,0x4b,0xe4,0x90, +0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10,0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x38,0x00,0x85,0x10,0x68,0x15,0x22,0x26,0x2e,0x00,0x83,0x10, +0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24,0x18,0x43,0x00,0x0c,0xff,0xff,0x05,0x24, +0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34,0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24, +0xed,0x42,0x00,0x0c,0xff,0xff,0x05,0x24,0x68,0x15,0x22,0x26,0x7d,0x4b,0x44,0x90, +0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10,0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14, +0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10,0x03,0x00,0x02,0x24,0xdb,0xff,0x82,0x14, +0x00,0x00,0x00,0x00,0x68,0x15,0x22,0x26,0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x3c, +0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00,0x72,0x43,0x00,0x08,0xff,0x00,0x04,0x32, +0x25,0x00,0x82,0x2c,0xcc,0xff,0x40,0x14,0x03,0x00,0x03,0x24,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0xc7,0xff,0x40,0x14,0x10,0x00,0x02,0x2e,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x68,0x15,0x22,0x26,0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x3c, +0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,0x84,0x43,0x00,0x08,0x00,0x08,0x04,0x24, +0xcc,0xff,0x80,0x14,0x68,0x15,0x22,0x26,0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x24, +0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,0x84,0x43,0x00,0x08,0x00,0x08,0x04,0x24, +0xb2,0xff,0x80,0x14,0x00,0x00,0x00,0x00,0x68,0x15,0x22,0x26,0x80,0x4b,0x44,0x8c, +0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00,0x72,0x43,0x00,0x08, +0xff,0x00,0x04,0x32,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c, +0x68,0x15,0x28,0x26,0x7f,0x4b,0x06,0x91,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x1c,0x0f,0x63,0x24,0x18,0x03,0x42,0x34,0x02,0x00,0x07,0x24,0x18,0x00,0xb2,0xaf, +0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,0x00,0x00,0x43,0xac,0x21,0x90,0xa0,0x00, +0x39,0x00,0xc7,0x10,0xff,0x00,0x90,0x30,0x03,0x00,0x03,0x24,0x3f,0x00,0xc3,0x10, +0x2e,0x00,0x02,0x2e,0x10,0x00,0x02,0x2e,0x0c,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x0f,0x00,0x04,0x3c,0xff,0xff,0x84,0x34,0x24,0x20,0x44,0x02,0x00,0x15,0x10,0x00, +0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x25,0x20,0x44,0x00,0x13,0x43,0x00,0x08,0x20,0x00,0xbd,0x27,0xf5,0xff,0xc7,0x14, +0x0f,0x00,0x04,0x3c,0x7d,0x4b,0x04,0x91,0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10, +0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x38,0x00,0x86,0x10, +0x68,0x15,0x22,0x26,0x2e,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24, +0x18,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34, +0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24,0xed,0x42,0x00,0x0c,0xff,0xff,0x05,0x24, +0x68,0x15,0x22,0x26,0x7d,0x4b,0x44,0x90,0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10, +0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10, +0x03,0x00,0x02,0x24,0xd6,0xff,0x82,0x14,0x00,0x00,0x00,0x00,0x68,0x15,0x22,0x26, +0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00, +0xdf,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0x25,0x00,0x02,0x2e,0xc7,0xff,0x40,0x14, +0x03,0x00,0x03,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xc1,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x68,0x15,0x22,0x26, +0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24, +0xf6,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xcc,0xff,0x80,0x14,0x68,0x15,0x22,0x26, +0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24, +0xf6,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xad,0xff,0x80,0x14,0x00,0x00,0x00,0x00, +0x68,0x15,0x22,0x26,0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c, +0x21,0x30,0x00,0x00,0xdf,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0xe8,0xff,0xbd,0x27, +0x10,0x00,0xb0,0xaf,0x21,0x80,0x80,0x00,0x14,0x00,0xbf,0xaf,0x29,0x43,0x00,0x0c, +0x21,0x20,0x00,0x00,0x40,0x01,0x44,0x34,0x21,0x18,0x40,0x00,0x1f,0x00,0x02,0x2e, +0x00,0x23,0x04,0x00,0x10,0x00,0x40,0x10,0x10,0x00,0x05,0x2e,0x00,0x01,0x64,0x34, +0x06,0x00,0xa0,0x10,0x00,0x23,0x04,0x00,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x13,0x43,0x00,0x0c, +0xf1,0xff,0x10,0x26,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x13,0x43,0x00,0x0c,0xe2,0xff,0x10,0x26, +0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0x25,0xb0,0x02,0x3c,0x27,0x38,0x05,0x00,0x21,0x40,0x82,0x00, +0xff,0xff,0x02,0x24,0x07,0x00,0xa2,0x10,0x25,0x38,0xe6,0x00,0x00,0x00,0x02,0x8d, +0x00,0x00,0x00,0x00,0x24,0x10,0xe2,0x00,0x00,0x00,0x02,0xad,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xad,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xd8,0xff,0xbd,0x27,0xa8,0x11,0x42,0x24, +0x18,0x03,0x63,0x34,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf, +0x24,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac, +0x21,0x88,0xa0,0x00,0x21,0x98,0xc0,0x00,0x21,0xa0,0x80,0x00,0x00,0x60,0x12,0x40, +0x01,0x00,0x41,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x0f,0x00,0x02,0x3c, +0xff,0xff,0x42,0x34,0x0a,0x00,0x22,0x12,0x21,0x28,0xc0,0x00,0x5c,0x43,0x00,0x0c, +0x00,0x00,0x00,0x00,0x21,0x20,0x20,0x02,0xe1,0x42,0x00,0x0c,0x21,0x80,0x40,0x00, +0x04,0x10,0x53,0x00,0x27,0x28,0x11,0x00,0x25,0x28,0xa2,0x00,0x24,0x28,0xb0,0x00, +0xc7,0x43,0x00,0x0c,0xff,0x00,0x84,0x32,0x00,0x60,0x92,0x40,0x24,0x00,0xbf,0x8f, +0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x01,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0xe0,0xff,0xbd,0x27,0x54,0x12,0x63,0x24,0x18,0x03,0x42,0x34, +0x18,0x00,0xb2,0xaf,0x1c,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf, +0x00,0x00,0x43,0xac,0x21,0x90,0xa0,0x00,0x00,0x60,0x11,0x40,0x01,0x00,0x21,0x36, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x5c,0x43,0x00,0x0c,0x00,0x00,0x00,0x00, +0x21,0x80,0x40,0x00,0xe1,0x42,0x00,0x0c,0x21,0x20,0x40,0x02,0x24,0x80,0x12,0x02, +0x06,0x80,0x50,0x00,0x00,0x60,0x91,0x40,0x21,0x10,0x00,0x02,0x1c,0x00,0xbf,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xc8,0xff,0xbd,0x27,0x2c,0x00,0xb1,0xaf,0xff,0xff,0x05,0x24, +0x21,0x88,0x80,0x00,0x02,0x00,0x06,0x24,0x10,0x00,0xa4,0x27,0x34,0x00,0xbf,0xaf, +0x30,0x00,0xb2,0xaf,0x58,0x45,0x00,0x0c,0x28,0x00,0xb0,0xaf,0x08,0x00,0x30,0x96, +0x02,0x80,0x02,0x3c,0x21,0x28,0x00,0x00,0x25,0x80,0x02,0x02,0x21,0x20,0x00,0x02, +0x58,0x45,0x00,0x0c,0x10,0x00,0x06,0x24,0x20,0x00,0x02,0x96,0x24,0x00,0x04,0x26, +0x10,0x00,0xa5,0x27,0x03,0xff,0x42,0x30,0xc8,0x00,0x42,0x34,0x20,0x00,0x02,0xa6, +0x60,0x45,0x00,0x0c,0x06,0x00,0x06,0x24,0x25,0xb0,0x03,0x3c,0x50,0x00,0x62,0x34, +0x00,0x00,0x44,0x8c,0x54,0x00,0x65,0x34,0x58,0x00,0x66,0x34,0x18,0x00,0xa4,0xaf, +0x00,0x00,0xa2,0x8c,0x5c,0x00,0x63,0x34,0x2a,0x00,0x04,0x26,0x1c,0x00,0xa2,0xaf, +0x00,0x00,0xc7,0x8c,0x18,0x00,0xa5,0x27,0x06,0x00,0x06,0x24,0x20,0x00,0xa7,0xaf, +0x00,0x00,0x62,0x8c,0x1a,0x00,0x12,0x24,0x60,0x45,0x00,0x0c,0x24,0x00,0xa2,0xaf, +0x30,0x00,0x04,0x26,0x20,0x00,0xa5,0x27,0x60,0x45,0x00,0x0c,0x06,0x00,0x06,0x24, +0x13,0x00,0x03,0x24,0x14,0x00,0x23,0xae,0x0c,0x00,0x32,0xae,0x08,0x00,0x05,0x8e, +0x04,0x00,0x04,0x8e,0xff,0xdf,0x02,0x3c,0x14,0x00,0x06,0x8e,0xff,0xff,0x42,0x34, +0x10,0x00,0x07,0x8e,0xff,0xe0,0x03,0x24,0x24,0x28,0xa2,0x00,0x00,0x40,0x02,0x3c, +0x24,0x20,0x83,0x00,0x25,0x28,0xa2,0x00,0xff,0x81,0x03,0x24,0xfe,0xff,0x02,0x3c, +0x24,0x30,0xc3,0x00,0xff,0xff,0x42,0x34,0x00,0x12,0x84,0x34,0x00,0x80,0x03,0x3c, +0x24,0x20,0x82,0x00,0x25,0x38,0xe3,0x00,0x00,0x26,0xc6,0x34,0x80,0x00,0xa5,0x34, +0x20,0x00,0x02,0x24,0x00,0x00,0x12,0xa6,0x10,0x00,0x07,0xae,0x02,0x00,0x02,0xa2, +0x14,0x00,0x06,0xae,0x04,0x00,0x04,0xae,0x08,0x00,0x05,0xae,0x34,0x00,0xbf,0x8f, +0x30,0x00,0xb2,0x8f,0x2c,0x00,0xb1,0x8f,0x28,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x38,0x00,0xbd,0x27,0x54,0x45,0x00,0x08,0xff,0x00,0xa5,0x30,0x00,0x00,0x85,0xa0, +0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24,0xfc,0xff,0xc0,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x05,0x00,0xc0,0x10,0x00,0x00,0x00,0x00, +0x00,0x00,0x85,0xac,0xff,0xff,0xc6,0x24,0xfd,0xff,0xc0,0x14,0x04,0x00,0x84,0x24, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10, +0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24,0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24, +0x01,0x00,0xa5,0x24,0x00,0x00,0xe2,0xa0,0xfb,0xff,0x66,0x14,0x01,0x00,0xe7,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10, +0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24,0x00,0x00,0xa2,0x8c,0xff,0xff,0x63,0x24, +0x04,0x00,0xa5,0x24,0x00,0x00,0xe2,0xac,0xfb,0xff,0x66,0x14,0x04,0x00,0xe7,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x2b,0x10,0xa4,0x00,0x0d,0x00,0x40,0x14, +0xff,0xff,0x02,0x24,0xff,0xff,0xc6,0x24,0x08,0x00,0xc2,0x10,0x21,0x18,0x80,0x00, +0xff,0xff,0x07,0x24,0x00,0x00,0xa2,0x90,0xff,0xff,0xc6,0x24,0x01,0x00,0xa5,0x24, +0x00,0x00,0x62,0xa0,0xfb,0xff,0xc7,0x14,0x01,0x00,0x63,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x80,0x00,0x21,0x28,0xa6,0x00,0x21,0x18,0x86,0x00,0xff,0xff,0xc6,0x24, +0xfa,0xff,0xc2,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0x07,0x24,0xff,0xff,0xa5,0x24, +0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24,0xff,0xff,0xc6,0x24,0xfb,0xff,0xc7,0x14, +0x00,0x00,0x62,0xa0,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x0c,0x00,0xc0,0x10, +0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x90,0x00,0x00,0xa3,0x90,0x01,0x00,0x84,0x24, +0x23,0x10,0x43,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x04,0x00,0x40,0x14, +0x01,0x00,0xa5,0x24,0xff,0xff,0xc6,0x24,0xf6,0xff,0xc0,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x21,0x10,0xc0,0x00,0xab,0x45,0x00,0x08,0x21,0x18,0x86,0x00, +0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x45,0x10,0x00,0x00,0x00,0x00, +0x01,0x00,0x84,0x24,0xfa,0xff,0x83,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x80,0x00,0x09,0x00,0xc0,0x10,0xff,0xff,0xc3,0x24,0xff,0x00,0xa5,0x30, +0xff,0xff,0x06,0x24,0x00,0x00,0x82,0x90,0xff,0xff,0x63,0x24,0x05,0x00,0x45,0x10, +0x01,0x00,0x84,0x24,0xfb,0xff,0x66,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0xff,0xff,0x82,0x24,0x21,0x38,0x00,0x00, +0x1f,0x00,0xc0,0x10,0x21,0x18,0x00,0x00,0x02,0x80,0x02,0x3c,0x40,0xa3,0x4b,0x24, +0x00,0x00,0x87,0x90,0x00,0x00,0xa3,0x90,0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24, +0x21,0x10,0xeb,0x00,0x16,0x00,0xe0,0x10,0x01,0x00,0xa5,0x24,0x14,0x00,0x60,0x10, +0x21,0x48,0x6b,0x00,0x10,0x00,0xe3,0x10,0x20,0x00,0xe8,0x24,0x00,0x00,0x42,0x90, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x02,0x00,0x40,0x10,0x20,0x00,0x6a,0x24, +0xff,0x00,0x07,0x31,0x00,0x00,0x22,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30, +0x02,0x00,0x40,0x10,0xff,0x00,0xe7,0x30,0xff,0x00,0x43,0x31,0xff,0x00,0x63,0x30, +0x03,0x00,0xe3,0x14,0x00,0x00,0x00,0x00,0xe5,0xff,0xc0,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x23,0x10,0xe3,0x00,0x21,0x18,0x80,0x00,0x00,0x00,0xa2,0x90, +0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0xfc,0xff,0x40,0x14,0x01,0x00,0x84,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x21,0x38,0x80,0x00,0xff,0xff,0x03,0x24, +0xff,0xff,0xc6,0x24,0x06,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90, +0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0xf9,0xff,0x40,0x14,0x01,0x00,0x84,0x24, +0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00,0x00,0x00,0x82,0x80,0xfa,0x45,0x00,0x08, +0x21,0x18,0x80,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00, +0xfc,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24, +0x00,0x00,0x82,0xa0,0xfc,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0x12,0x00,0xc0,0x10,0x21,0x18,0x80,0x00,0x00,0x00,0x82,0x80, +0x0b,0x46,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x80, +0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90, +0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0x05,0x00,0x40,0x10,0x01,0x00,0x84,0x24, +0xff,0xff,0xc6,0x24,0xf9,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xa0, +0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x00,0x00,0x83,0x90,0x00,0x00,0xa2,0x90, +0x01,0x00,0x84,0x24,0x23,0x10,0x62,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00, +0x03,0x00,0x40,0x14,0x01,0x00,0xa5,0x24,0xf7,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x21,0x10,0x00,0x00,0x0b,0x00,0xc0,0x10, +0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x00,0x00,0x83,0x90,0xff,0xff,0xc6,0x24, +0x23,0x10,0x62,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x03,0x00,0x40,0x14, +0x01,0x00,0xa5,0x24,0xf5,0xff,0x60,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x80,0x00,0x2e,0x05,0x00,0x21,0x10,0x80,0x00, +0x3c,0x46,0x00,0x08,0x03,0x2e,0x05,0x00,0x07,0x00,0x60,0x10,0x01,0x00,0x42,0x24, +0x00,0x00,0x43,0x80,0x00,0x00,0x00,0x00,0xfb,0xff,0x65,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00, +0x00,0x00,0x82,0x80,0x48,0x46,0x00,0x08,0x21,0x18,0x80,0x00,0x01,0x00,0x63,0x24, +0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,0x23,0x10,0x64,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf, +0x21,0x80,0xa0,0x00,0x14,0x00,0xb1,0xaf,0x18,0x00,0xbf,0xaf,0x21,0x88,0x80,0x00, +0x42,0x46,0x00,0x0c,0x00,0x86,0x10,0x00,0x21,0x18,0x51,0x00,0x03,0x86,0x10,0x00, +0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00,0x0a,0x00,0x50,0x10,0x21,0x10,0x60,0x00, +0xff,0xff,0x63,0x24,0x2b,0x10,0x71,0x00,0xf9,0xff,0x40,0x10,0x21,0x10,0x00,0x00, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x21,0x30,0x80,0x00,0x0d,0x00,0xa0,0x10, +0xff,0xff,0xa3,0x24,0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00,0x09,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x24,0xff,0xff,0x63,0x24,0x05,0x00,0x65,0x10, +0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x80,0x00,0x00,0x00,0x00,0xfa,0xff,0x40,0x14, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x23,0x10,0xc4,0x00,0x00,0x00,0x82,0x90, +0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10,0x21,0x40,0x00,0x00,0x00,0x00,0xa9,0x80, +0x00,0x00,0x00,0x00,0x17,0x00,0x20,0x11,0x21,0x30,0xa0,0x00,0x00,0x3e,0x02,0x00, +0x03,0x3e,0x07,0x00,0x21,0x18,0x20,0x01,0x15,0x00,0xe3,0x10,0x00,0x00,0x00,0x00, +0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0x00,0x1e,0x02,0x00, +0x03,0x1e,0x03,0x00,0xf8,0xff,0x60,0x14,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00, +0x06,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x90, +0x00,0x00,0x00,0x00,0xeb,0xff,0x40,0x14,0x01,0x00,0x08,0x25,0x08,0x00,0xe0,0x03, +0x21,0x10,0x00,0x01,0x00,0x00,0xa2,0x90,0x8d,0x46,0x00,0x08,0x00,0x16,0x02,0x00, +0x00,0x00,0xc2,0x90,0x8d,0x46,0x00,0x08,0x00,0x16,0x02,0x00,0x00,0x00,0x87,0x90, +0x00,0x00,0x00,0x00,0x14,0x00,0xe0,0x10,0x21,0x10,0x80,0x00,0x00,0x00,0xa4,0x90, +0x00,0x00,0x00,0x00,0x00,0x1e,0x04,0x00,0x03,0x1e,0x03,0x00,0x09,0x00,0x60,0x10, +0x21,0x30,0xa0,0x00,0x00,0x3e,0x07,0x00,0x03,0x3e,0x07,0x00,0x0b,0x00,0xe3,0x10, +0x01,0x00,0xc6,0x24,0x00,0x00,0xc3,0x80,0x00,0x00,0x00,0x00,0xfb,0xff,0x60,0x14, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0x00,0x00,0x47,0x90,0x00,0x00,0x00,0x00, +0xf0,0xff,0xe0,0x14,0x00,0x00,0x00,0x00,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf, +0x18,0x00,0xbf,0xaf,0x21,0x80,0x80,0x00,0x1d,0x00,0x80,0x10,0x21,0x88,0xa0,0x00, +0x79,0x46,0x00,0x0c,0x21,0x20,0x00,0x02,0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82, +0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0x22,0x00,0x40,0x10,0x21,0x18,0x00,0x00, +0x9d,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x05,0x00,0x40,0x10,0x21,0x18,0x40,0x00, +0x00,0x00,0x42,0x80,0x00,0x00,0x00,0x00,0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0x02,0x80,0x02,0x3c,0x68,0xa4,0x43,0xac,0x21,0x18,0x00,0x02,0x18,0x00,0xbf,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x00,0x00,0x60,0xa0,0xce,0x46,0x00,0x08,0x01,0x00,0x63,0x24, +0x02,0x80,0x02,0x3c,0x68,0xa4,0x50,0x8c,0x00,0x00,0x00,0x00,0xf3,0xff,0x00,0x12, +0x21,0x18,0x00,0x00,0x79,0x46,0x00,0x0c,0x21,0x20,0x00,0x02,0x21,0x80,0x02,0x02, +0x00,0x00,0x02,0x82,0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0xe0,0xff,0x40,0x14, +0x21,0x18,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x02,0x80,0x02,0x3c,0x68,0xa4,0x40,0xac,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03, +0x21,0x10,0x60,0x00,0xe0,0xff,0xbd,0x27,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf, +0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x90,0x8c,0x21,0x90,0x80,0x00, +0x21,0x88,0xa0,0x00,0x21,0x18,0x00,0x00,0x0f,0x00,0x00,0x12,0x21,0x20,0x00,0x02, +0x79,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82, +0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0x07,0x00,0x40,0x10,0x21,0x18,0x00,0x00, +0x9d,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x18,0x40,0x00,0x09,0x00,0x40,0x14, +0x00,0x00,0x42,0xae,0x21,0x18,0x00,0x02,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x00,0x00,0x42,0x80,0x00,0x00,0x00,0x00,0xf5,0xff,0x40,0x10, +0x01,0x00,0x64,0x24,0x00,0x00,0x60,0xa0,0x07,0x47,0x00,0x08,0x00,0x00,0x44,0xae, +0xd8,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x21,0x88,0x80,0x00,0x21,0x20,0xa0,0x00, +0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf, +0x42,0x46,0x00,0x0c,0x21,0x98,0xa0,0x00,0x21,0x90,0x40,0x00,0x08,0x00,0x40,0x16, +0x21,0x10,0x20,0x02,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27, +0x42,0x46,0x00,0x0c,0x21,0x20,0x20,0x02,0x21,0x80,0x40,0x00,0x2a,0x10,0x52,0x00, +0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x02, +0x21,0x30,0x40,0x02,0x95,0x45,0x00,0x0c,0xff,0xff,0x10,0x26,0x0b,0x00,0x40,0x10, +0x2a,0x18,0x12,0x02,0xf8,0xff,0x60,0x10,0x01,0x00,0x31,0x26,0x20,0x00,0xbf,0x8f, +0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x23,0x47,0x00,0x08, +0x21,0x10,0x20,0x02,0x01,0x80,0x02,0x3c,0x0c,0x1d,0x43,0x24,0x25,0xb0,0x02,0x3c, +0xc0,0xff,0xbd,0x27,0x18,0x03,0x42,0x34,0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf, +0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x3c,0x00,0xbf,0xaf,0x28,0x00,0xb4,0xaf, +0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf, +0x00,0x00,0x43,0xac,0x21,0xf0,0x00,0x00,0x02,0x80,0x15,0x3c,0x02,0x80,0x17,0x3c, +0x02,0x80,0x16,0x3c,0x25,0xb0,0x05,0x3c,0x01,0x80,0x04,0x3c,0x0c,0x1d,0x82,0x24, +0x18,0x03,0xa3,0x34,0x00,0x00,0x62,0xac,0xa0,0x02,0xa8,0x34,0x68,0x15,0xae,0x26, +0x00,0x00,0x04,0x8d,0xe4,0x63,0xc3,0x95,0xff,0x0f,0x02,0x3c,0xff,0xff,0x47,0x34, +0x24,0x98,0x87,0x00,0x01,0x00,0x06,0x3c,0x01,0x00,0x63,0x24,0x2b,0x10,0xd3,0x00, +0x07,0x00,0x40,0x10,0xe4,0x63,0xc3,0xa5,0xa4,0x02,0xa2,0x34,0x00,0x00,0x54,0x8c, +0x00,0xb0,0x03,0x3c,0x25,0x98,0x63,0x02,0x00,0x00,0x74,0xae,0x00,0x00,0x00,0xad, +0xb0,0x02,0xa4,0x34,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x24,0x98,0x47,0x00, +0x2b,0x18,0xd3,0x00,0x08,0x00,0x60,0x10,0x25,0xb0,0x02,0x3c,0x00,0xb0,0x02,0x3c, +0x25,0x98,0x62,0x02,0x00,0x00,0x74,0x8e,0xb4,0x02,0xa2,0x34,0x00,0x00,0x54,0xac, +0x00,0x00,0x80,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x4a,0x34,0x00,0x00,0x53,0x8d, +0xff,0x00,0x05,0x3c,0xff,0xff,0xa2,0x34,0x2b,0x10,0x53,0x00,0x4f,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x25,0xb0,0x11,0x3c,0x00,0x00,0x23,0x8e,0x00,0xff,0x09,0x3c, +0xff,0x00,0x22,0x35,0x00,0xfd,0x08,0x3c,0x01,0x00,0x66,0x24,0x24,0x38,0x62,0x02, +0xac,0x02,0x24,0x36,0xbc,0x02,0x23,0x36,0x05,0x00,0x02,0x35,0x00,0x00,0x86,0xac, +0x2b,0x10,0x47,0x00,0x00,0x00,0x73,0xac,0x00,0x00,0x86,0x8c,0xb7,0x00,0x40,0x14, +0xa6,0x00,0x02,0x35,0x04,0x00,0x02,0x35,0x2b,0x10,0xe2,0x00,0x39,0x00,0x40,0x10, +0x25,0xb0,0x02,0x3c,0x00,0xf8,0x03,0x3c,0x15,0x00,0x62,0x34,0x1d,0x04,0xe2,0x10, +0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x1e,0x01,0x40,0x14,0x00,0xf9,0x04,0x3c, +0x00,0xf1,0x04,0x3c,0x20,0x04,0xe4,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x87,0x00, +0x82,0x01,0x40,0x14,0x10,0x00,0x62,0x34,0x00,0xf0,0x03,0x3c,0x01,0x00,0x62,0x34, +0x5b,0x04,0xe2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x59,0x02,0x40,0x14, +0x03,0x00,0x62,0x34,0x00,0xd0,0x02,0x3c,0x36,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00, +0x71,0x03,0x40,0x14,0x00,0xe0,0x02,0x3c,0x00,0xc0,0x02,0x3c,0x4b,0x05,0xe2,0x10, +0x00,0x00,0x00,0x00,0x00,0xf0,0x02,0x3c,0x24,0x38,0x62,0x02,0x18,0x00,0xe2,0x10, +0x0f,0x00,0x03,0x3c,0x00,0x70,0x09,0x3c,0x24,0x10,0x69,0x02,0x02,0x25,0x13,0x00, +0xff,0xff,0x63,0x34,0x00,0x50,0x08,0x3c,0x24,0x28,0x63,0x02,0x02,0x57,0x02,0x00, +0xff,0x00,0x84,0x30,0xa7,0x01,0xe8,0x10,0xff,0x00,0x66,0x32,0x2b,0x10,0x07,0x01, +0x9b,0x01,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0x20,0x02,0x3c,0xb5,0x03,0xe2,0x10, +0x2b,0x10,0x47,0x00,0xa3,0x02,0x40,0x14,0x00,0x30,0x02,0x3c,0xb2,0x03,0xe0,0x10, +0x80,0x10,0x04,0x00,0x00,0x10,0x02,0x3c,0xaf,0x03,0xe2,0x10,0x80,0x10,0x04,0x00, +0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x07,0x3c, +0x64,0x03,0xe2,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x28,0x7e,0xe3,0xa2, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x28,0x7e,0xe2,0x92, +0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x55,0x00,0x40,0x10,0x68,0x15,0xa5,0x26, +0x68,0x15,0xa6,0x26,0x00,0x40,0xc4,0x8c,0xe4,0x42,0xc5,0x8c,0xf0,0xff,0x02,0x24, +0x24,0x20,0x82,0x00,0x00,0x50,0x03,0x3c,0x01,0x00,0x84,0x34,0x24,0x28,0xa3,0x00, +0x00,0x10,0x02,0x3c,0x00,0x40,0xc4,0xac,0x95,0x03,0xa2,0x10,0xd6,0x42,0xc0,0xa0, +0x28,0x7e,0xe2,0x92,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30,0x40,0x00,0x40,0x10, +0x68,0x15,0xa2,0x26,0x00,0x40,0x43,0x8c,0x0f,0xff,0x04,0x24,0x24,0x18,0x64,0x00, +0x10,0x00,0x63,0x34,0x00,0x40,0x43,0xac,0x28,0x7e,0xe2,0x92,0x00,0x00,0x00,0x00, +0x04,0x00,0x42,0x30,0x32,0x00,0x40,0x10,0x68,0x15,0xa2,0x26,0x00,0x40,0x43,0x8c, +0xff,0xf0,0x04,0x24,0x24,0x18,0x64,0x00,0x00,0x01,0x63,0x34,0x25,0xb0,0x05,0x3c, +0x00,0x40,0x43,0xac,0x4c,0x00,0xa3,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00, +0x03,0x00,0x42,0x30,0x06,0x00,0x40,0x14,0x68,0x15,0xa4,0x26,0x00,0x40,0x83,0x8c, +0xff,0xff,0x02,0x3c,0xff,0x0f,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x40,0x83,0xac, +0x60,0x7b,0xc4,0x8e,0x01,0x80,0x06,0x3c,0x0c,0x1e,0xc2,0x24,0x18,0x03,0xa3,0x34, +0x60,0x7b,0xc6,0x26,0x00,0x00,0x62,0xac,0x11,0x00,0x86,0x10,0x02,0x80,0x02,0x3c, +0xbf,0x00,0xb2,0x34,0x68,0x15,0x51,0x24,0x21,0x80,0xc0,0x00,0x21,0xf0,0x00,0x00, +0x00,0x00,0x42,0x92,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x2c,0x09,0x00,0x40,0x10, +0x02,0x80,0x02,0x3c,0xf8,0x65,0x24,0x8e,0x30,0x08,0x00,0x0c,0x00,0x00,0x00,0x00, +0x60,0x7b,0xc2,0x8e,0x00,0x00,0x00,0x00,0xf5,0xff,0x50,0x14,0x00,0x00,0x00,0x00, +0x02,0x80,0x02,0x3c,0x08,0x08,0x44,0x24,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00, +0xfe,0x1f,0x00,0x0c,0x21,0x38,0x00,0x00,0x58,0x47,0x00,0x08,0x25,0xb0,0x05,0x3c, +0x00,0x40,0x43,0x8c,0xff,0xf0,0x04,0x24,0x01,0x48,0x00,0x08,0x24,0x18,0x64,0x00, +0x00,0x40,0x43,0x8c,0x0f,0xff,0x04,0x24,0xf7,0x47,0x00,0x08,0x24,0x18,0x64,0x00, +0x00,0x40,0xa4,0x8c,0xe4,0x42,0xa6,0x8c,0xf0,0xff,0x02,0x24,0x00,0x90,0x03,0x3c, +0x24,0x20,0x82,0x00,0x24,0x18,0xc3,0x00,0x00,0x10,0x02,0x3c,0xb0,0xff,0x62,0x14, +0x00,0x40,0xa4,0xac,0x50,0x0c,0xe3,0x34,0xff,0xbf,0x02,0x3c,0x00,0x00,0x64,0x90, +0xff,0xff,0x42,0x34,0x24,0x10,0xc2,0x00,0x00,0x80,0x03,0x3c,0x25,0x10,0x43,0x00, +0xe4,0x42,0xa2,0xac,0xee,0x47,0x00,0x08,0xd7,0x42,0xa4,0xa0,0x55,0x03,0xe2,0x10, +0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x18,0x00,0x40,0x14,0x00,0xfe,0x03,0x3c, +0x20,0x00,0x02,0x35,0x53,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,0x85,0x00,0x40,0x14, +0xa0,0x00,0x02,0x35,0x15,0x00,0x02,0x35,0x9d,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00, +0x17,0x01,0x40,0x14,0x17,0x00,0x02,0x35,0x08,0x00,0x02,0x35,0x16,0x04,0xe2,0x10, +0x64,0x03,0x23,0x36,0x2b,0x10,0x47,0x00,0x24,0x02,0x40,0x14,0x09,0x00,0x02,0x35, +0x07,0x00,0x02,0x35,0x53,0xff,0xe2,0x14,0x00,0x00,0x00,0x00,0xd9,0x58,0x00,0x0c, +0x21,0x20,0x60,0x02,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x18,0x00,0x62,0x34, +0x42,0x03,0xe2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x95,0x00,0x40,0x14, +0x07,0x00,0x22,0x35,0xad,0x00,0x02,0x35,0x8c,0x03,0xe2,0x10,0x00,0x00,0x00,0x00, +0x2b,0x10,0x47,0x00,0xd2,0x00,0x40,0x14,0x10,0x00,0x62,0x34,0xaa,0x00,0x02,0x35, +0x75,0x04,0xe2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x6e,0x01,0x40,0x14, +0xab,0x00,0x02,0x35,0xa7,0x00,0x02,0x35,0x3b,0xff,0xe2,0x14,0x00,0xf0,0x02,0x3c, +0x00,0xff,0x62,0x32,0x02,0xa2,0x02,0x00,0x02,0x1c,0x13,0x00,0x01,0x00,0x02,0x24, +0xbd,0x05,0x82,0x12,0xff,0x00,0x65,0x30,0x02,0x00,0x02,0x24,0xae,0x05,0x82,0x12, +0xc0,0x10,0x05,0x00,0x03,0x00,0x02,0x24,0x9e,0x05,0x82,0x12,0xc0,0x10,0x05,0x00, +0x04,0x00,0x02,0x24,0xc5,0x05,0x82,0x12,0xc0,0x10,0x05,0x00,0x08,0x00,0x02,0x24, +0x29,0x06,0x82,0x12,0xc0,0x10,0x05,0x00,0x09,0x00,0x02,0x24,0x19,0x06,0x82,0x12, +0xc0,0x10,0x05,0x00,0x0a,0x00,0x02,0x24,0x09,0x06,0x82,0x12,0xc0,0x10,0x05,0x00, +0x0b,0x00,0x02,0x24,0xf9,0x05,0x82,0x12,0xc0,0x10,0x05,0x00,0x0c,0x00,0x02,0x24, +0xe9,0x05,0x82,0x12,0xc0,0x10,0x05,0x00,0x0d,0x00,0x02,0x24,0xd9,0x05,0x82,0x12, +0xc0,0x10,0x05,0x00,0x0e,0x00,0x02,0x24,0xc9,0x05,0x82,0x12,0xc0,0x10,0x05,0x00, +0x0f,0x00,0x02,0x24,0xb9,0x05,0x82,0x12,0xc0,0x10,0x05,0x00,0x10,0x00,0x02,0x24, +0x2b,0xff,0x82,0x16,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x45,0x00,0x68,0x15,0xa3,0x26,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00, +0x58,0x51,0x44,0x94,0x54,0x51,0x45,0x94,0x25,0xb0,0x06,0x3c,0x00,0x24,0x04,0x00, +0xc4,0x02,0xc3,0x34,0x21,0x28,0xa4,0x00,0x00,0x00,0x65,0xac,0x64,0x51,0x47,0x8c, +0x60,0x51,0x43,0x8c,0x5c,0x51,0x44,0x94,0xc8,0x02,0xc6,0x34,0x21,0x18,0x67,0x00, +0x00,0x1c,0x03,0x00,0x21,0x20,0x83,0x00,0x00,0x00,0xc4,0xac,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x06,0x00,0x82,0x34,0xfe,0x02,0xe2,0x10,0x00,0x00,0x00,0x00, +0x2b,0x10,0x47,0x00,0x52,0x00,0x40,0x14,0x01,0x00,0x82,0x34,0x3b,0x03,0xe2,0x10, +0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x6a,0x01,0x40,0x14,0x03,0x00,0x82,0x34, +0x17,0x00,0x62,0x34,0xaa,0x04,0xe2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x00, +0x7d,0x04,0x40,0x14,0x00,0x00,0x00,0x00,0x18,0x00,0x62,0x34,0x40,0x05,0xe2,0x10, +0x00,0x00,0x00,0x00,0xe3,0xfe,0xe4,0x14,0x68,0x15,0xa2,0x26,0x64,0x64,0x44,0x90, +0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x0b,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,0xf8,0x00,0x40,0x14, +0xa3,0x00,0x02,0x35,0x22,0x00,0x02,0x35,0x8b,0x03,0xe2,0x10,0x2b,0x10,0xe2,0x00, +0xbb,0x01,0x40,0x14,0x68,0x15,0xa4,0x26,0x28,0x00,0x02,0x35,0xe7,0x04,0xe2,0x10, +0x0f,0x00,0x10,0x3c,0x29,0x00,0x02,0x35,0xcf,0xfe,0xe2,0x14,0x00,0xf0,0x02,0x3c, +0x02,0x1c,0x13,0x00,0x00,0x1f,0x62,0x32,0x68,0x15,0xb0,0x26,0x02,0xa2,0x02,0x00, +0x3f,0x00,0x66,0x30,0xc1,0x42,0x06,0xa2,0xbc,0x42,0x14,0xa2,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x3b,0x15,0x00,0x0c, +0x00,0x00,0x00,0x00,0x21,0xa0,0x40,0x00,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x00,0x00,0x54,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x03,0x40,0x02,0x92,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xce,0x47,0x00,0x08, +0x03,0x40,0x02,0xa2,0xf5,0x02,0xe2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00, +0x4d,0x00,0x40,0x14,0x0e,0x00,0x22,0x35,0x1a,0x00,0x62,0x34,0x43,0x03,0xe2,0x10, +0x2b,0x10,0xe2,0x00,0x38,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0xf0,0x04,0xe9,0x10, +0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x35,0xa6,0xfe,0xe2,0x14,0x00,0x00,0x00,0x00, +0x0e,0x4f,0x00,0x0c,0x01,0x00,0x04,0x24,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x00,0xfb,0x03,0x3c,0x02,0x00,0x62,0x34,0x14,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00, +0xd6,0x00,0x40,0x14,0x01,0x00,0x02,0x35,0x20,0x00,0x82,0x34,0xd2,0x03,0xe2,0x10, +0x2b,0x10,0x47,0x00,0x25,0x02,0x40,0x14,0x07,0x00,0x82,0x34,0x95,0xfe,0xe2,0x14, +0x68,0x15,0xa2,0x26,0x48,0x64,0x44,0x90,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34, +0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xea,0x02,0xe2,0x10, +0x2b,0x10,0x47,0x00,0xef,0x00,0x40,0x14,0x12,0x00,0x62,0x34,0x02,0x00,0x82,0x34, +0xa3,0xfe,0xe2,0x10,0x2b,0x10,0xe2,0x00,0xa4,0x01,0x40,0x14,0x00,0xff,0x62,0x32, +0x03,0x00,0x82,0x34,0xd6,0x04,0xe2,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x82,0x34, +0x81,0xfe,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x02,0x14,0x13,0x00,0xff,0x00,0x54,0x30, +0x00,0xff,0x63,0x32,0x07,0x00,0x82,0x2e,0x95,0xfe,0x40,0x10,0x02,0xf2,0x03,0x00, +0x02,0x80,0x04,0x3c,0x84,0x9f,0x83,0x24,0x80,0x10,0x14,0x00,0x21,0x10,0x43,0x00, +0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00, +0xec,0x02,0xe2,0x10,0x2b,0x10,0x47,0x00,0x12,0x01,0x40,0x14,0x11,0x00,0x62,0x34, +0xae,0x00,0x02,0x35,0x9e,0x04,0xe2,0x10,0x02,0x24,0x13,0x00,0xaf,0x00,0x02,0x35, +0x68,0xfe,0xe2,0x14,0x00,0x00,0x00,0x00,0x76,0x50,0x00,0x0c,0x00,0x00,0x00,0x00, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x0d,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00, +0xfa,0x00,0x40,0x14,0x0f,0x00,0x22,0x35,0x0c,0x00,0x22,0x35,0xf6,0x03,0xe2,0x10, +0x68,0x15,0xa2,0x26,0x0d,0x00,0x22,0x35,0x5b,0xfe,0xe2,0x14,0x00,0xf0,0x02,0x3c, +0x68,0x15,0xa3,0x26,0x01,0x00,0x02,0x24,0xce,0x47,0x00,0x08,0x46,0x64,0x62,0xa4, +0x02,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,0x15,0x01,0x40,0x14,0x00,0xa0,0x02,0x3c, +0x00,0x60,0x02,0x3c,0x04,0x00,0xe2,0x10,0x80,0x10,0x04,0x00,0x69,0xfe,0xe9,0x14, +0x25,0xb0,0x02,0x3c,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x68,0x15,0xa3,0x26, +0x21,0x10,0x43,0x00,0x21,0x10,0x4a,0x00,0xce,0x47,0x00,0x08,0xc1,0x43,0x46,0xa0, +0x07,0x03,0xe2,0x10,0x2b,0x10,0xe2,0x00,0x37,0x01,0x40,0x14,0x00,0xff,0x62,0x32, +0x18,0x00,0x02,0x35,0xe3,0x03,0xe2,0x10,0x19,0x00,0x02,0x35,0x3e,0xfe,0xe2,0x14, +0x00,0xf0,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xc0,0x02,0x62,0x34,0x00,0x00,0x40,0xac, +0x94,0x0e,0x64,0x34,0x9c,0x0e,0x62,0x34,0xa4,0x0e,0x65,0x34,0xac,0x0e,0x66,0x34, +0x00,0x00,0x89,0x8c,0x68,0x15,0xaf,0x26,0x00,0x00,0x4b,0x8c,0x00,0x00,0xac,0x8c, +0x00,0x00,0xc4,0x8c,0xb4,0x0e,0x62,0x34,0x0c,0x40,0xe5,0x8d,0x10,0x40,0xe6,0x8d, +0x00,0x00,0x4a,0x8c,0xff,0x03,0x07,0x3c,0x00,0xfc,0x08,0x24,0xbc,0x0e,0x62,0x34, +0x24,0x48,0x27,0x01,0x24,0x20,0x87,0x00,0x00,0x00,0x4d,0x8c,0x24,0x30,0xc8,0x00, +0x02,0x4c,0x09,0x00,0x24,0x28,0xa8,0x00,0x02,0x24,0x04,0x00,0xcc,0x0e,0x68,0x34, +0xf0,0xff,0x02,0x3c,0xc4,0x0e,0x63,0x34,0xff,0x03,0x42,0x34,0x25,0x28,0xa9,0x00, +0x25,0x30,0xc4,0x00,0x00,0x00,0x69,0x8c,0x08,0x40,0xe4,0x8d,0x00,0x00,0x0e,0x8d, +0x24,0x58,0x67,0x01,0x24,0x50,0x47,0x01,0x24,0x30,0xc2,0x00,0x24,0x28,0xa2,0x00, +0x82,0x59,0x0b,0x00,0x82,0x51,0x0a,0x00,0x0f,0xc0,0x03,0x3c,0xff,0x9f,0x02,0x3c, +0xff,0xff,0x63,0x34,0xff,0xff,0x42,0x34,0x25,0x28,0xab,0x00,0x25,0x30,0xca,0x00, +0x24,0x60,0x87,0x01,0x24,0x68,0xa7,0x01,0xff,0x00,0x08,0x3c,0x24,0x20,0x82,0x00, +0x24,0x30,0xc3,0x00,0x24,0x28,0xa3,0x00,0x24,0x70,0xc7,0x01,0x00,0x61,0x0c,0x00, +0x00,0x69,0x0d,0x00,0x24,0x48,0x27,0x01,0x00,0xff,0x03,0x35,0x00,0x20,0x02,0x3c, +0x25,0x20,0x82,0x00,0x25,0x28,0xac,0x00,0x25,0x30,0xcd,0x00,0x02,0x4c,0x09,0x00, +0x02,0x74,0x0e,0x00,0x24,0x18,0x63,0x02,0x08,0x40,0xe4,0xad,0x0c,0x40,0xe5,0xad, +0x10,0x40,0xe6,0xad,0x14,0x40,0xe9,0xa5,0x4d,0x04,0x60,0x10,0x16,0x40,0xee,0xa5, +0x24,0x10,0x68,0x02,0x02,0x14,0x02,0x00,0x02,0x1a,0x13,0x00,0xc7,0x42,0xe2,0xa1, +0xc3,0x42,0xe3,0xa1,0x68,0x15,0xa2,0x26,0xc3,0x42,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x61,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0xfd,0x55,0x00,0x0c,0x10,0x00,0xa4,0x27,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x92,0x02,0xe2,0x10,0x2b,0x10,0x47,0x00,0xda,0x00,0x40,0x14,0xa4,0x00,0x02,0x35, +0xa1,0x00,0x02,0x35,0x26,0x03,0xe2,0x10,0x02,0x24,0x13,0x00,0xa2,0x00,0x02,0x35, +0xd8,0xfd,0xe2,0x14,0xc4,0x02,0x22,0x36,0x00,0xff,0xa3,0x34,0x24,0x18,0x63,0x02, +0x00,0x00,0x45,0x8c,0x02,0xf2,0x03,0x00,0xb2,0x51,0x00,0x0c,0x21,0x20,0xc0,0x03, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x11,0x04,0xe2,0x10,0x00,0x00,0x00,0x00, +0xac,0x00,0x02,0x35,0xcb,0xfd,0xe2,0x14,0x00,0x00,0x00,0x00,0x8b,0x4f,0x00,0x0c, +0x21,0x20,0x60,0x02,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x46,0x03,0xe2,0x10, +0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x3e,0x01,0x40,0x14,0x02,0x00,0x02,0x35, +0x03,0x00,0x62,0x34,0xfb,0x03,0xe2,0x10,0x68,0x15,0xa3,0x26,0xbe,0xfd,0xe8,0x14, +0x00,0xf0,0x02,0x3c,0xcc,0x58,0x00,0x0c,0x21,0x20,0x60,0x02,0x00,0xff,0x63,0x32, +0x00,0xcc,0x02,0x34,0xd3,0xfd,0x62,0x14,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26, +0xe4,0x42,0x43,0x8c,0x00,0x10,0x04,0x3c,0x25,0x18,0x64,0x00,0xce,0x47,0x00,0x08, +0xe4,0x42,0x43,0xac,0x04,0x03,0xe2,0x10,0x2b,0x10,0xe2,0x00,0x04,0x01,0x40,0x14, +0x24,0x10,0x65,0x02,0x08,0x00,0x62,0x34,0x7b,0x03,0xe2,0x10,0x20,0x00,0x62,0x34, +0xa8,0xfd,0xe2,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x07,0x52,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x0c,0x03,0xe2,0x10,0x2b,0x10,0xe2,0x00,0x9e,0x00,0x40,0x14, +0x00,0xff,0x62,0x32,0x13,0x00,0x62,0x34,0x75,0x03,0xe2,0x10,0x14,0x00,0x62,0x34, +0x94,0xfd,0xe2,0x14,0x00,0x00,0x00,0x00,0x3a,0x0c,0x00,0x0c,0xfd,0x00,0x04,0x24, +0x25,0xb0,0x03,0x3c,0x10,0x10,0x02,0x3c,0xa0,0x00,0x64,0x34,0x10,0x10,0x42,0x34, +0x00,0x00,0x82,0xac,0x00,0xc0,0x02,0x3c,0xa8,0x00,0x65,0x34,0x00,0xa1,0x42,0x34, +0xa4,0x00,0x63,0x34,0x00,0x00,0x60,0xac,0x00,0x00,0xa2,0xac,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0xd2,0x02,0xe2,0x10,0xc4,0x02,0x23,0x36,0x2b,0x10,0xe2,0x00, +0x09,0x01,0x40,0x14,0x68,0x15,0xa2,0x26,0x04,0x00,0x82,0x34,0xaa,0x03,0xe2,0x10, +0x68,0x15,0xa2,0x26,0x05,0x00,0x82,0x34,0x7a,0xfd,0xe2,0x14,0x68,0x15,0xa2,0x26, +0x50,0x64,0x44,0x90,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x68,0x15,0xa2,0x26,0x76,0x4b,0x44,0x90, +0xc4,0x02,0x23,0x36,0x00,0x00,0x64,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xf2,0x02,0xe2,0x10, +0x10,0x00,0x22,0x35,0x64,0xfd,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x00,0xff,0x63,0x32, +0x00,0xff,0x02,0x34,0xbe,0x03,0x62,0x10,0x68,0x15,0xa2,0x26,0xce,0x47,0x00,0x08, +0xec,0x65,0x40,0xac,0x5c,0x03,0xe2,0x10,0x00,0x00,0x00,0x00,0x12,0x00,0x62,0x34, +0x58,0xfd,0xe2,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34, +0x24,0x10,0x62,0x02,0x02,0xf2,0x02,0x00,0x68,0x15,0xa3,0x26,0x77,0x4b,0x7e,0xa0, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x0f,0x01,0xe2,0x10,0x00,0x40,0x02,0x3c,0x61,0xfd,0xe2,0x14, +0x25,0xb0,0x02,0x3c,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x68,0x15,0xa3,0x26, +0x21,0x10,0x43,0x00,0x21,0x10,0x4a,0x00,0xce,0x47,0x00,0x08,0xc1,0x43,0x46,0xa0, +0xc4,0x02,0xe2,0x10,0x2b,0x10,0x47,0x00,0xd3,0x00,0x40,0x14,0x00,0xb0,0x02,0x3c, +0x00,0x90,0x02,0x3c,0x53,0xfd,0xe2,0x14,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26, +0x21,0x10,0x82,0x00,0xce,0x47,0x00,0x08,0x73,0x44,0x46,0xa0,0xe0,0x02,0xe2,0x10, +0x25,0xb0,0x02,0x3c,0x14,0x00,0x02,0x35,0x2f,0xfd,0xe2,0x14,0x00,0xf0,0x02,0x3c, +0xff,0x00,0x04,0x3c,0x00,0xff,0x82,0x34,0x24,0x10,0x62,0x02,0x45,0xfd,0x40,0x10, +0x25,0xb0,0x02,0x3c,0x68,0x15,0xa3,0x26,0x04,0x43,0x66,0x90,0x24,0x20,0x64,0x02, +0x00,0xff,0x65,0x32,0x02,0x24,0x04,0x00,0x02,0x2a,0x05,0x00,0x00,0x01,0xc6,0x34, +0xfb,0xff,0x87,0x24,0xfb,0xff,0xa2,0x24,0x1f,0x43,0x62,0xa0,0x04,0x43,0x66,0xac, +0x1d,0x43,0x67,0xa0,0x1c,0x43,0x64,0xa0,0xce,0x47,0x00,0x08,0x1e,0x43,0x65,0xa0, +0x08,0x40,0x83,0x8c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x02,0x34,0x13,0x00,0x00,0x1f,0x65,0x32,0x00,0x20,0x02,0x3c,0x25,0x18,0x62,0x00, +0x02,0xa2,0x05,0x00,0x3f,0x00,0xc6,0x30,0xc1,0x42,0x86,0xa0,0x08,0x40,0x83,0xac, +0xce,0x47,0x00,0x08,0xbc,0x42,0x94,0xa0,0x02,0x22,0x02,0x00,0x03,0x00,0x83,0x2c, +0x24,0xfd,0x60,0x10,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26,0xce,0x47,0x00,0x08, +0x02,0x40,0x44,0xa0,0xae,0x02,0xe2,0x10,0xa5,0x00,0x02,0x35,0x01,0xfd,0xe2,0x14, +0x00,0x00,0x00,0x00,0x02,0x24,0x13,0x00,0xec,0x51,0x00,0x0c,0xff,0x00,0x84,0x30, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x02,0x22,0x02,0x00,0x21,0xa0,0x00,0x00, +0xbf,0x4a,0x00,0x08,0x27,0xb0,0x07,0x3c,0x00,0x01,0x82,0x2e,0x0b,0x00,0x40,0x10, +0x08,0x00,0xe7,0x24,0x00,0x00,0xe2,0x94,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x30, +0xff,0x00,0xc3,0x33,0xf8,0xff,0x64,0x14,0x01,0x00,0x94,0x26,0xff,0xff,0x94,0x26, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x54,0xa4,0xff,0x00,0x82,0x2e, +0x03,0xfd,0x40,0x14,0x25,0xb0,0x02,0x3c,0x12,0x87,0x03,0x3c,0xc4,0x02,0x42,0x34, +0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x02,0xf2,0x02,0x00, +0x80,0x00,0xc0,0x13,0x00,0x00,0x00,0x00,0x94,0x00,0x22,0x36,0x00,0x00,0x43,0x94, +0xb0,0x03,0x25,0x36,0x68,0x15,0xa6,0x26,0xff,0xff,0x74,0x30,0x1b,0x00,0x9e,0x02, +0x02,0x00,0xc0,0x17,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x00,0x00,0xb4,0xac, +0xe6,0x4a,0xc7,0x94,0xff,0xff,0xc3,0x27,0x01,0x00,0x02,0x24,0xe3,0x4a,0xc2,0xa0, +0x80,0xff,0x02,0x24,0x6a,0x03,0x2a,0x36,0x4f,0x00,0x2b,0x36,0x9e,0x00,0x2c,0x36, +0x44,0x00,0x28,0x36,0xd8,0x00,0x2d,0x36,0x12,0xa0,0x00,0x00,0x80,0x22,0x14,0x00, +0x00,0xf8,0x84,0x24,0x18,0x00,0xd4,0x03,0xff,0xff,0x7e,0x30,0x00,0x19,0x1e,0x00, +0x25,0x18,0x62,0x00,0x26,0xb0,0x02,0x3c,0x7c,0x00,0x42,0x34,0x12,0x48,0x00,0x00, +0x23,0x38,0xe9,0x00,0x00,0x00,0x47,0xa5,0x00,0x00,0xbe,0xac,0x00,0x00,0x63,0xa1, +0x00,0x00,0xb4,0xac,0x00,0x00,0x94,0xa5,0x42,0xa1,0x04,0x00,0x00,0x00,0xb4,0xac, +0x00,0x00,0x54,0xa4,0x00,0x00,0x03,0x95,0xff,0xfd,0x02,0x24,0xe8,0x4a,0xc7,0xa4, +0x24,0x18,0x62,0x00,0x00,0x00,0x03,0xa5,0x00,0x00,0x02,0x95,0x00,0x00,0x00,0x00, +0x00,0x02,0x42,0x34,0x00,0x00,0x02,0xa5,0x00,0x00,0xa3,0x91,0x00,0x00,0x00,0x00, +0x40,0x00,0x63,0x34,0x00,0x00,0xa3,0xa1,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0xcc,0x02,0x23,0x36,0x00,0xff,0x64,0x32,0x02,0xf4,0x02,0x00,0x00,0x00,0x73,0xac, +0x04,0x00,0xc0,0x13,0x02,0x9a,0x04,0x00,0x01,0x00,0x02,0x24,0x02,0x00,0xc2,0x13, +0x01,0x00,0x04,0x24,0x21,0x20,0x00,0x00,0x2a,0x42,0x00,0x0c,0x0f,0x00,0x10,0x3c, +0xff,0xff,0x05,0x36,0x95,0x44,0x00,0x0c,0x21,0x20,0x60,0x02,0xff,0xff,0x10,0x36, +0x24,0xa0,0x50,0x00,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x54,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xd6,0xfe,0xe2,0x10,0x00,0x00,0x00,0x00, +0x90,0xfc,0xe3,0x14,0x00,0xff,0xa2,0x34,0x24,0x10,0x62,0x02,0x02,0x9a,0x02,0x00, +0xcc,0x02,0x23,0x36,0x00,0x00,0x73,0xac,0x21,0x20,0x71,0x02,0x00,0x00,0x94,0x8c, +0xc4,0x02,0x22,0x36,0x00,0x00,0x54,0xac,0x00,0x00,0x94,0x8c,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x7c,0x02,0xe2,0x10,0x25,0xb0,0x02,0x3c,0x03,0x00,0x02,0x35, +0x81,0xfc,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x68,0x15,0xa4,0x26,0xe4,0x42,0x83,0x8c, +0xff,0xef,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0xe4,0x42,0x83,0xac, +0xce,0x47,0x00,0x08,0xe6,0x42,0x80,0xa0,0x5c,0x64,0x44,0x90,0xc4,0x02,0x23,0x36, +0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x28,0x02,0xe3,0x10, +0x01,0x00,0x62,0x34,0x70,0xfc,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x68,0x15,0xa2,0x26, +0xf8,0x63,0x43,0x8c,0xfd,0xff,0x04,0x24,0x24,0x18,0x64,0x00,0x01,0x00,0x63,0x34, +0xce,0x47,0x00,0x08,0xf8,0x63,0x43,0xac,0x82,0xfc,0xe2,0x14,0x25,0xb0,0x02,0x3c, +0x80,0x10,0x04,0x00,0x68,0x15,0xa3,0x26,0x21,0x10,0x43,0x00,0xce,0x47,0x00,0x08, +0x60,0x45,0x45,0xac,0x25,0xb0,0x05,0x3c,0x4f,0x00,0xa2,0x34,0x9e,0x00,0xa3,0x34, +0x00,0x00,0x40,0xa0,0x00,0x00,0x60,0xa4,0x94,0x00,0xa2,0x34,0x00,0x00,0x43,0x94, +0x9a,0x00,0xa4,0x34,0x98,0x00,0xa6,0x34,0xff,0xff,0x74,0x30,0x80,0x12,0x14,0x00, +0x00,0xf8,0x42,0x24,0x42,0xa1,0x02,0x00,0x00,0x14,0x02,0x24,0x00,0x00,0x82,0xa4, +0x26,0xb0,0x02,0x3c,0xb0,0x03,0xa7,0x34,0xa0,0x80,0x03,0x24,0x7c,0x00,0x42,0x34, +0x00,0x00,0xc3,0xa4,0x44,0x00,0xa4,0x34,0x00,0x00,0xf4,0xac,0x00,0x00,0x54,0xa4, +0x00,0x00,0x83,0x94,0xff,0xfd,0x02,0x24,0xd8,0x00,0xa5,0x34,0x24,0x18,0x62,0x00, +0x00,0x00,0x83,0xa4,0x00,0x00,0x82,0x94,0x68,0x15,0xa6,0x26,0x00,0x02,0x42,0x34, +0x00,0x00,0x82,0xa4,0x00,0x00,0xa3,0x90,0xbf,0xff,0x02,0x24,0xe8,0x4a,0xc0,0xa4, +0x24,0x18,0x62,0x00,0xe3,0x4a,0xc0,0xa0,0x00,0x00,0xa3,0xa0,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x68,0x15,0xa3,0x26, +0x21,0x10,0x43,0x00,0x21,0x10,0x4a,0x00,0xce,0x47,0x00,0x08,0x34,0x43,0x46,0xa0, +0xd7,0x42,0xc3,0x90,0x50,0x0c,0xe2,0x34,0x21,0x20,0x00,0x00,0x00,0x00,0x43,0xa0, +0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x82,0x24,0x68,0x15,0xa2,0x26,0xd7,0x42,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x58,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24, +0x68,0x15,0xa5,0x26,0xe4,0x42,0xa3,0x8c,0x00,0x40,0x04,0x3c,0xff,0x7f,0x02,0x3c, +0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0xee,0x47,0x00,0x08, +0xe4,0x42,0xa3,0xac,0xee,0x51,0x00,0x0c,0x00,0x00,0x00,0x00,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x08,0x40,0xc3,0x8d,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x18,0x62,0x00,0xce,0x47,0x00,0x08,0x08,0x40,0xc3,0xad,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x77,0x4b,0xc4,0x91, +0xc4,0x02,0x23,0x36,0xcc,0x02,0x22,0x36,0x00,0x00,0x53,0xac,0x00,0x00,0x64,0xac, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x6e,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x4c,0x64,0xc3,0x91,0xc4,0x02,0x22,0x36,0x00,0x00,0x43,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0xa5,0x34,0x24,0x28,0x65,0x02, +0x02,0x2a,0x05,0x00,0x40,0x11,0x05,0x00,0x26,0xb0,0x04,0x3c,0x94,0x00,0x23,0x36, +0x00,0x00,0x65,0xa4,0xc0,0xff,0x54,0x24,0x7c,0x00,0x8b,0x34,0x04,0x00,0x07,0x24, +0x7a,0x00,0x84,0x34,0x00,0x04,0x02,0x24,0xa0,0x80,0x03,0x24,0x9a,0x00,0x26,0x36, +0x98,0x00,0x28,0x36,0x96,0x00,0x29,0x36,0xb0,0x03,0x2a,0x36,0x00,0x00,0xc2,0xa4, +0x00,0x00,0x03,0xa5,0x00,0x00,0x27,0xa5,0x00,0x00,0x87,0xa0,0x00,0x00,0x54,0xad, +0x44,0x00,0x24,0x36,0x00,0x00,0x74,0xa5,0x00,0x00,0x83,0x94,0xff,0xfd,0x02,0x24, +0xe6,0x4a,0xc5,0xa5,0x24,0x18,0x62,0x00,0x00,0x00,0x83,0xa4,0x00,0x00,0x82,0x94, +0x00,0x00,0x00,0x00,0x00,0x02,0x42,0x34,0x00,0x00,0x82,0xa4,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x00,0x0f,0x62,0x32,0x02,0x22,0x02,0x00,0x01,0x00,0x03,0x24, +0xda,0x02,0x83,0x10,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x24,0xdb,0x02,0x82,0x10, +0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x24,0xf7,0x00,0x82,0x10,0x00,0x00,0x00,0x00, +0xa6,0x50,0x00,0x0c,0x21,0x20,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x04,0x43,0xc2,0x91,0xce,0x47,0x00,0x08,0x04,0x43,0xc2,0xad,0x0e,0x4f,0x00,0x0c, +0x07,0x00,0x04,0x24,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x9a,0x4f,0x00,0x0c, +0x21,0x20,0x60,0x02,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x60,0x64,0xc3,0x91, +0xc4,0x02,0x22,0x36,0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x00,0xff,0xa2,0x34,0x24,0x10,0x62,0x02,0x02,0x9a,0x02,0x00,0xcc,0x02,0x23,0x36, +0x00,0x00,0x73,0xac,0xc4,0x02,0x24,0x36,0x00,0x00,0x94,0x8c,0x21,0x10,0x71,0x02, +0x00,0x00,0x54,0xac,0x00,0x00,0x54,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x94,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0xa0,0x00,0x00,0x16,0x4c,0x00,0x08, +0x27,0xb0,0x04,0x3c,0x00,0x01,0x82,0x2e,0x0c,0x00,0x40,0x10,0x08,0x00,0x84,0x24, +0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0xff,0x7e,0x30,0xff,0x00,0xc2,0x33, +0xf0,0x00,0x42,0x28,0xf7,0xff,0x40,0x14,0x01,0x00,0x94,0x26,0xff,0xff,0x94,0x26, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x5e,0xa4,0xff,0x00,0x82,0x2e, +0xab,0xfb,0x40,0x14,0x25,0xb0,0x02,0x3c,0x12,0x87,0x03,0x3c,0xc4,0x02,0x42,0x34, +0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xf8,0x63,0xc2,0x8d, +0xfe,0xff,0x03,0x24,0x02,0x00,0x42,0x34,0x24,0x10,0x43,0x00,0xce,0x47,0x00,0x08, +0xf8,0x63,0xc2,0xad,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x68,0x15,0xae,0x26,0x76,0x4b,0xc2,0x91,0x00,0x00,0x00,0x00, +0x97,0xfb,0x40,0x14,0x00,0xff,0xa2,0x34,0x24,0x10,0x62,0x02,0x02,0xf2,0x02,0x00, +0xcc,0x02,0x22,0x36,0x00,0x00,0x5e,0xac,0xc8,0x02,0x25,0x36,0xff,0x00,0xc3,0x33, +0x01,0x00,0x02,0x24,0x00,0x00,0xa3,0xac,0x21,0x20,0xc0,0x03,0x76,0x4b,0xc2,0xa1, +0xe3,0x18,0x00,0x0c,0x77,0x4b,0xde,0xa1,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0xa2,0x34, +0x24,0x10,0x62,0x02,0x25,0xb0,0x05,0x3c,0x02,0xf2,0x02,0x00,0xcc,0x02,0xa3,0x34, +0x01,0x00,0x02,0x24,0x00,0x00,0x7e,0xac,0x01,0x01,0xc2,0x13,0x68,0x15,0xa2,0x26, +0x02,0x00,0xc2,0x2b,0x28,0x01,0x40,0x14,0x03,0x00,0x02,0x24,0x20,0x01,0xc2,0x13, +0xc4,0x02,0xa3,0x34,0x68,0x15,0xa2,0x26,0x70,0x4b,0x44,0x94,0x25,0xb0,0x03,0x3c, +0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x68,0x15,0xa2,0x26,0xce,0x47,0x00,0x08,0x46,0x64,0x40,0xa4,0x68,0x15,0xa2,0x26, +0x21,0x10,0x82,0x00,0xce,0x47,0x00,0x08,0x56,0x44,0x46,0xa0,0x68,0x15,0xa2,0x26, +0xce,0x47,0x00,0x08,0xec,0x65,0x40,0xac,0x00,0x1f,0x63,0x32,0x02,0x14,0x13,0x00, +0x02,0xa2,0x03,0x00,0x3f,0x00,0x46,0x30,0x68,0x15,0xa3,0x26,0xc1,0x42,0x66,0xa0, +0xce,0x47,0x00,0x08,0xbc,0x42,0x74,0xa0,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00, +0xfd,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x68,0x15,0xae,0x26,0x08,0x40,0xc7,0x8d,0x00,0x00,0x40,0xad,0x42,0x17,0x07,0x00, +0x03,0x00,0x42,0x30,0x5c,0x00,0x40,0x14,0x68,0x15,0xa2,0x26,0x03,0x0d,0x22,0x36, +0x00,0x00,0x45,0x90,0x10,0x40,0xc6,0x8d,0xff,0x9f,0x03,0x3c,0xff,0xff,0x63,0x34, +0xff,0x3f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0xe3,0x00,0x00,0x20,0x04,0x3c, +0x24,0x60,0xc2,0x00,0x25,0x18,0x64,0x00,0x00,0x40,0x02,0x3c,0x70,0x00,0xa5,0x30, +0x25,0x60,0x82,0x01,0x93,0x01,0xa0,0x10,0x08,0x40,0xc3,0xad,0x94,0x0e,0x22,0x36, +0x9c,0x0e,0x23,0x36,0xa4,0x0e,0x24,0x36,0xac,0x0e,0x27,0x36,0x00,0x00,0x45,0x8c, +0x00,0x00,0x69,0x8c,0x00,0x00,0x8b,0x8c,0x00,0x00,0xe6,0x8c,0x0c,0x40,0xc3,0x8d, +0xb4,0x0e,0x22,0x36,0x00,0x00,0x4a,0x8c,0xff,0x03,0x07,0x3c,0x00,0xfc,0x08,0x24, +0xbc,0x0e,0x22,0x36,0x24,0x28,0xa7,0x00,0x24,0x30,0xc7,0x00,0x24,0x20,0x88,0x01, +0x02,0x2c,0x05,0x00,0x00,0x00,0x4c,0x8c,0x24,0x18,0x68,0x00,0x02,0x34,0x06,0x00, +0xcc,0x0e,0x2d,0x36,0xc4,0x0e,0x28,0x36,0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34, +0x25,0x18,0x65,0x00,0x25,0x20,0x86,0x00,0x00,0x00,0x05,0x8d,0x24,0x48,0x27,0x01, +0x00,0x00,0xa6,0x8d,0x24,0x50,0x47,0x01,0x24,0x20,0x82,0x00,0x24,0x18,0x62,0x00, +0x82,0x49,0x09,0x00,0x82,0x51,0x0a,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34, +0x25,0x18,0x69,0x00,0x25,0x20,0x8a,0x00,0x24,0x58,0x67,0x01,0x24,0x60,0x87,0x01, +0x24,0x20,0x82,0x00,0x24,0x30,0xc7,0x00,0x00,0x59,0x0b,0x00,0x24,0x18,0x62,0x00, +0x00,0x61,0x0c,0x00,0x24,0x28,0xa7,0x00,0x25,0x18,0x6b,0x00,0x25,0x20,0x8c,0x00, +0x02,0x2c,0x05,0x00,0x02,0x34,0x06,0x00,0x16,0x40,0xc6,0xa5,0x0c,0x40,0xc3,0xad, +0x10,0x40,0xc4,0xad,0x14,0x40,0xc5,0xa5,0x68,0x15,0xa3,0x26,0x0c,0x40,0x62,0x8c, +0x00,0x00,0x00,0x00,0x53,0x01,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0xff,0x62,0x32, +0x29,0x01,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0xc3,0x42,0x62,0xa0, +0xfd,0x55,0x00,0x0c,0x10,0x00,0xa4,0x27,0x38,0x55,0x00,0x0c,0x00,0x00,0x00,0x00, +0x68,0x15,0xa2,0x26,0x0c,0x40,0x43,0x8c,0x00,0x80,0x04,0x3c,0x25,0x18,0x64,0x00, +0x0c,0x40,0x43,0xac,0x68,0x15,0xa2,0x26,0xc3,0x42,0x44,0x90,0x25,0xb0,0x03,0x3c, +0x61,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24, +0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xa6,0x50,0x00,0x0c,0x03,0x00,0x04,0x24, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xd2,0x59,0x00,0x0c,0x00,0x00,0x00,0x00, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0xa2,0x34,0x24,0x10,0x62,0x02, +0x02,0xf2,0x02,0x00,0x07,0x00,0x03,0x24,0x25,0x01,0xc3,0x13,0x02,0x80,0x04,0x3c, +0x08,0x00,0xc2,0x2b,0x0a,0x01,0x40,0x10,0x20,0x00,0x02,0x24,0xd8,0xfa,0xc0,0x17, +0x02,0x80,0x02,0x3c,0xe8,0x7d,0x43,0x94,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x02,0x24,0x13,0x00, +0x0f,0x10,0x00,0x0c,0xff,0x00,0x84,0x30,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x68,0x15,0xa2,0x26,0x58,0x64,0x44,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x24,0x10,0x65,0x02,0xcc,0x02,0x23,0x36, +0x00,0xff,0x64,0x32,0x02,0xf4,0x02,0x00,0x00,0x00,0x73,0xac,0x04,0x00,0xc0,0x13, +0x02,0x9a,0x04,0x00,0x01,0x00,0x02,0x24,0x02,0x00,0xc2,0x13,0x01,0x00,0x04,0x24, +0x21,0x20,0x00,0x00,0x25,0xb0,0x10,0x3c,0x2a,0x42,0x00,0x0c,0xc4,0x02,0x12,0x36, +0x00,0x00,0x54,0x8e,0x0f,0x00,0x11,0x3c,0x21,0x20,0x60,0x02,0x21,0x30,0x80,0x02, +0x6a,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0x20,0x60,0x02,0x95,0x44,0x00,0x0c, +0xff,0xff,0x25,0x36,0xc8,0x02,0x10,0x36,0x00,0x00,0x42,0xae,0x00,0x00,0x02,0xae, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x28,0xb0,0x02,0x3c,0x00,0x00,0x43,0x90, +0xff,0x00,0x02,0x24,0xff,0x00,0x73,0x30,0xa5,0xfa,0x62,0x12,0xff,0x00,0x04,0x24, +0x28,0xb0,0x05,0x3c,0xc0,0x10,0x13,0x00,0x21,0x10,0x45,0x00,0x00,0x00,0x43,0x90, +0x00,0x00,0x00,0x00,0xff,0x00,0x73,0x30,0xfa,0xff,0x64,0x16,0x25,0xb0,0x02,0x3c, +0xd0,0x47,0x00,0x08,0xc0,0x02,0x42,0x34,0x64,0x03,0x23,0x36,0x00,0x00,0x62,0x90, +0x00,0x00,0x00,0x00,0xfa,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x80,0x10,0x04,0x00,0x68,0x15,0xa3,0x26,0x21,0x10,0x43,0x00, +0xce,0x47,0x00,0x08,0xec,0x44,0x45,0xac,0x25,0xb0,0x03,0x3c,0xff,0x00,0x02,0x24, +0x56,0x01,0x63,0x34,0x01,0x00,0x04,0x24,0x02,0x80,0x06,0x3c,0x00,0x00,0x62,0xa4, +0xce,0x47,0x00,0x08,0x18,0x7e,0xc4,0xa0,0xa8,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x44,0x64,0x44,0x94,0x25,0xb0,0x03,0x3c, +0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xa4,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x6e,0x4b,0x44,0x94,0xc4,0x02,0xa3,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x68,0x15,0xa4,0x26,0x08,0x40,0x83,0x8c,0xff,0x9f,0x02,0x3c, +0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0xce,0x47,0x00,0x08,0x08,0x40,0x83,0xac, +0x68,0x15,0xa3,0x26,0xff,0xff,0x02,0x34,0xce,0x47,0x00,0x08,0xec,0x65,0x62,0xac, +0x64,0x03,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x74,0x30, +0x02,0x00,0x84,0x36,0x00,0x00,0x44,0xa0,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x68,0x15,0xa5,0x26,0xf8,0x63,0xa2,0x8c,0xfd,0xff,0x03,0x24,0xfe,0xff,0x04,0x24, +0x24,0x10,0x43,0x00,0x24,0x10,0x44,0x00,0xce,0x47,0x00,0x08,0xf8,0x63,0xa2,0xac, +0x34,0x0d,0x00,0x0c,0x00,0x00,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x68,0x15,0xa2,0x26,0x72,0x4b,0x44,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xda,0xfe,0xc0,0x17,0xc4,0x02,0xa3,0x34, +0x68,0x15,0xa2,0x26,0x6c,0x4b,0x44,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0x63,0x32,0x25,0xb0,0x02,0x3c, +0x02,0x9a,0x03,0x00,0xcc,0x02,0x42,0x34,0x00,0x00,0x53,0xac,0xbf,0x00,0x60,0x12, +0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x24,0x59,0x01,0x62,0x12,0x00,0x00,0x00,0x00, +0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x28,0xb0,0x14,0x3c,0x00,0x00,0x82,0x96,0x02,0x1c,0x13,0x00,0xff,0x00,0x64,0x30, +0xff,0xff,0x5e,0x30,0xff,0x00,0xc3,0x33,0x0c,0x00,0x83,0x10,0xff,0x7f,0x03,0x3c, +0x08,0x00,0x94,0x26,0x00,0x00,0x82,0x96,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x30, +0xff,0x00,0xc3,0x33,0x05,0x00,0x83,0x10,0xff,0x7f,0x03,0x3c,0xff,0xff,0x82,0x32, +0x00,0x08,0x42,0x2c,0xf6,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0xff,0xff,0x63,0x34, +0x25,0xb0,0x02,0x3c,0x24,0x18,0x83,0x02,0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,0x00,0x00,0x43,0x90, +0x00,0x00,0x00,0x00,0xff,0x00,0x74,0x30,0x05,0x00,0x84,0x36,0x00,0x00,0x44,0xa0, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34, +0x24,0x10,0x62,0x02,0x02,0xf2,0x02,0x00,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa3,0x26, +0xcc,0x02,0x42,0x34,0x76,0x4b,0x60,0xa0,0x21,0x20,0xc0,0x03,0x00,0x00,0x5e,0xac, +0xe3,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xff,0xff,0x05,0x36, +0x60,0x00,0x06,0x24,0x6a,0x44,0x00,0x0c,0x24,0x00,0x04,0x24,0xeb,0x0b,0x00,0x0c, +0xe8,0x03,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x24,0x00,0x04,0x24,0x95,0x44,0x00,0x0c,0xff,0xff,0x05,0x36, +0x1f,0x00,0x54,0x30,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0xc4,0x02,0x22,0x36,0x00,0x00,0x54,0xa0, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x54,0x64,0x44,0x90,0x25,0xb0,0x03,0x3c, +0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x00,0xff,0x65,0x32,0xff,0x00,0x84,0x30,0x28,0x50,0x00,0x0c,0x02,0x2a,0x05,0x00, +0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x62,0xa0,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0xf8,0x63,0x62,0x8c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x34, +0xce,0x47,0x00,0x08,0xf8,0x63,0x62,0xac,0xcd,0x4c,0x00,0x08,0x12,0x00,0x02,0x24, +0xb8,0x59,0x00,0x0c,0x21,0x20,0x60,0x02,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x0e,0x4f,0x00,0x0c,0x21,0x20,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0xcf,0xf9,0xc2,0x17,0x02,0x80,0x06,0x3c,0x08,0x7e,0xc3,0x90,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x49,0x09,0x00,0x0c,0x21,0x20,0xc0,0x03,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x12,0x00,0x02,0x24,0xc7,0x42,0xe2,0xa1,0xc3,0x49,0x00,0x08,0xc3,0x42,0xe2,0xa1, +0x01,0x0d,0x00,0x0c,0x00,0x00,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x68,0x15,0xa3,0x26,0xff,0xff,0x02,0x34,0xce,0x47,0x00,0x08,0xec,0x65,0x62,0xac, +0xef,0x7d,0x83,0x90,0xc4,0x02,0x22,0x36,0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0xfd,0x55,0x00,0x0c,0x10,0x00,0xa4,0x27,0xd8,0x4c,0x00,0x08, +0x68,0x15,0xa2,0x26,0x07,0x52,0x00,0x0c,0x10,0x40,0xcc,0xad,0xc5,0x4c,0x00,0x08, +0x68,0x15,0xa3,0x26,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c, +0x21,0x10,0x45,0x00,0xec,0x66,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00, +0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x45,0x00,0x68,0x15,0xa3,0x26,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00, +0x80,0x51,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x68,0x15,0xa3,0x26,0x80,0x10,0x02,0x00, +0x21,0x10,0x43,0x00,0x7c,0x51,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34, +0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x2a,0x42,0x00,0x0c, +0x21,0x20,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00, +0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x68,0x15,0xa3,0x26,0x80,0x10,0x02,0x00, +0x21,0x10,0x43,0x00,0xe0,0x51,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34, +0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00, +0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,0x21,0x10,0x45,0x00,0x0c,0x67,0x83,0x24, +0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c, +0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x02,0x80,0x06,0x3c, +0x08,0x67,0xc3,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c, +0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c, +0x21,0x10,0x45,0x00,0x04,0x67,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00, +0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x45,0x00,0x02,0x80,0x06,0x3c,0x00,0x67,0xc3,0x24,0x80,0x10,0x02,0x00, +0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34, +0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00, +0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,0x21,0x10,0x45,0x00,0xfc,0x66,0x83,0x24, +0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c, +0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x02,0x80,0x06,0x3c, +0xf8,0x66,0xc3,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c, +0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c, +0x21,0x10,0x45,0x00,0xf4,0x66,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00, +0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x45,0x00,0x02,0x80,0x06,0x3c,0xf0,0x66,0xc3,0x24,0x80,0x10,0x02,0x00, +0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34, +0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xa6,0x50,0x00,0x0c, +0x01,0x00,0x04,0x24,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xa6,0x50,0x00,0x0c, +0x02,0x00,0x04,0x24,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26, +0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,0x2c,0x43,0x64,0x94,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x00,0x11,0x1e,0x00,0x68,0x15,0xa3,0x26,0x21,0x10,0x43,0x00,0x28,0x43,0x44,0x8c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x42,0x26,0x04,0x00,0x00,0x00,0x44,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x11,0x1e,0x00,0x68,0x15,0xa3,0x26, +0x21,0x10,0x43,0x00,0x2b,0x43,0x44,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x01,0x00,0x84,0x30,0x00,0x00,0x44,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x68,0x15,0xa2,0x26,0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,0x32,0x43,0x64,0x94, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0xcf,0x47,0x00,0x08, +0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26,0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00, +0x31,0x43,0x64,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac, +0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26,0x00,0x19,0x1e,0x00, +0x21,0x18,0x62,0x00,0x30,0x43,0x64,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34, +0x00,0x00,0x44,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26, +0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,0x2e,0x43,0x64,0x94,0x25,0xb0,0x02,0x3c, +0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c, +0x25,0xb0,0x05,0x3c,0x01,0x00,0x06,0x24,0x01,0x80,0x02,0x3c,0x04,0x30,0x86,0x00, +0xf1,0x02,0xa7,0x34,0xed,0x02,0xa4,0x34,0x38,0x3c,0x42,0x24,0x18,0x03,0xa5,0x34, +0x08,0x00,0x03,0x24,0x00,0x00,0xa2,0xac,0x00,0x00,0xe3,0xa0,0x00,0x00,0x80,0xa0, +0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0, +0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0, +0x00,0x00,0xe0,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c, +0x25,0xb0,0x03,0x3c,0x94,0x3c,0x42,0x24,0x18,0x03,0x63,0x34,0x00,0x00,0x62,0xac, +0x00,0x00,0x83,0x90,0x30,0x00,0x02,0x24,0x05,0x00,0x62,0x10,0x21,0x20,0x00,0x00, +0x31,0x00,0x02,0x24,0x02,0x00,0x62,0x10,0x01,0x00,0x04,0x24,0x07,0x00,0x04,0x24, +0x0e,0x4f,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c, +0xd0,0x3c,0x42,0x24,0x18,0x03,0x63,0x34,0x02,0x80,0x04,0x3c,0x00,0x00,0x62,0xac, +0x08,0x00,0xe0,0x03,0x24,0x7e,0x80,0xac,0x02,0x80,0x02,0x3c,0x68,0x7b,0x42,0x24, +0xc0,0x20,0x04,0x00,0x21,0x20,0x82,0x00,0x21,0x28,0x00,0x00,0x00,0x60,0x06,0x40, +0x01,0x00,0xc1,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x00,0x00,0x82,0x8c, +0x00,0x00,0x00,0x00,0x09,0x00,0x44,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x43,0x8c, +0x21,0x28,0x40,0x00,0x00,0x00,0x42,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xac, +0x04,0x00,0x43,0xac,0x00,0x00,0xa5,0xac,0x04,0x00,0xa5,0xac,0x00,0x60,0x86,0x40, +0x08,0x00,0xe0,0x03,0x21,0x10,0xa0,0x00,0x21,0x18,0x80,0x00,0xe8,0xff,0xbd,0x27, +0x01,0x01,0x62,0x2c,0x10,0x00,0xbf,0xaf,0x01,0x00,0x04,0x24,0x01,0x02,0x65,0x2c, +0x0a,0x00,0x40,0x14,0x21,0x30,0x00,0x00,0x02,0x00,0x04,0x24,0x07,0x00,0xa0,0x14, +0x01,0x08,0x62,0x2c,0x05,0x00,0x40,0x14,0x03,0x00,0x04,0x24,0x10,0x00,0xbf,0x8f, +0x21,0x10,0xc0,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x3c,0x4f,0x00,0x0c, +0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f,0x21,0x30,0x40,0x00,0x21,0x10,0xc0,0x00, +0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x02,0x80,0x03,0x3c,0x80,0x7b,0x62,0x8c, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x10,0x00,0x83,0x8c,0x02,0x80,0x02,0x3c, +0x68,0x7b,0x42,0x24,0xc0,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0x65,0x8c, +0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x04,0x00,0xa4,0xac,0x00,0x00,0x64,0xac, +0x04,0x00,0x83,0xac,0x00,0x60,0x86,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x02,0x24,0x04,0x00,0xff,0x00,0x84,0x30,0xc0,0x18,0x04,0x00, +0x21,0x18,0x64,0x00,0x80,0x18,0x03,0x00,0x21,0x18,0x64,0x00,0x02,0x80,0x02,0x3c, +0x68,0x15,0x42,0x24,0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x84,0x51,0x64,0x8c, +0xff,0xf1,0x02,0x24,0x24,0x20,0x82,0x00,0x08,0x00,0xe0,0x03,0x84,0x51,0x64,0xac, +0x02,0x24,0x04,0x00,0xff,0x00,0x84,0x30,0xc0,0x18,0x04,0x00,0x21,0x18,0x64,0x00, +0x80,0x18,0x03,0x00,0x21,0x18,0x64,0x00,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24, +0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x84,0x51,0x64,0x8c,0xff,0xf1,0x02,0x24, +0x24,0x20,0x82,0x00,0x00,0x02,0x84,0x34,0x08,0x00,0xe0,0x03,0x84,0x51,0x64,0xac, +0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0xc0,0x80,0x04,0x00,0x21,0x80,0x04,0x02, +0x80,0x80,0x10,0x00,0x21,0x80,0x04,0x02,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24, +0x80,0x80,0x10,0x00,0x21,0x80,0x02,0x02,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf, +0x14,0x00,0xb1,0xaf,0x84,0x51,0x05,0x8e,0xff,0x1f,0x02,0x3c,0x25,0xb0,0x12,0x3c, +0xff,0xff,0x42,0x34,0xf8,0xff,0x03,0x24,0x7c,0x51,0x02,0xae,0x84,0x01,0x46,0x36, +0x24,0x28,0xa3,0x00,0xff,0xfe,0x02,0x24,0x00,0x00,0xc7,0x8c,0x24,0x28,0xa2,0x00, +0xff,0xef,0x03,0x24,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,0x24,0x28,0xa3,0x00, +0x24,0x28,0xa2,0x00,0x80,0x51,0x07,0xae,0x84,0x51,0x05,0xae,0x6a,0x0f,0x00,0x0c, +0x21,0x88,0x80,0x00,0x86,0x51,0x02,0x92,0x21,0x88,0x32,0x02,0x1c,0x00,0xbf,0x8f, +0x60,0x01,0x22,0xa2,0x18,0x00,0xb2,0x8f,0x70,0x51,0x00,0xae,0x54,0x51,0x00,0xae, +0x58,0x51,0x00,0xae,0x5c,0x51,0x00,0xae,0x60,0x51,0x00,0xae,0x64,0x51,0x00,0xae, +0x68,0x51,0x00,0xae,0x6c,0x51,0x00,0xae,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xff,0x00,0xa5,0x30,0xc0,0x10,0x05,0x00, +0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x02,0x80,0x03,0x3c, +0x68,0x15,0x63,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x84,0x51,0x43,0x8c, +0x25,0xb0,0x05,0x3c,0xff,0x00,0xc6,0x30,0x21,0x30,0xc5,0x00,0xaf,0x01,0xc2,0x90, +0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x65,0x00,0xff,0x00,0x88,0x30, +0xff,0x00,0x49,0x30,0x84,0x01,0x66,0x8c,0x21,0x50,0x00,0x00,0x21,0x58,0x00,0x00, +0x2b,0x00,0x20,0x11,0x21,0x20,0x00,0x01,0x2b,0x00,0xc0,0x10,0x2b,0x10,0x09,0x01, +0x21,0x28,0x00,0x00,0xfd,0x4f,0x00,0x08,0x01,0x00,0x07,0x24,0xff,0x00,0x65,0x30, +0x1d,0x00,0xa2,0x2c,0x07,0x00,0x40,0x10,0xff,0xff,0x02,0x25,0x04,0x10,0xa7,0x00, +0x24,0x10,0x46,0x00,0xf9,0xff,0x40,0x10,0x01,0x00,0xa3,0x24,0x21,0x58,0xa0,0x00, +0xff,0xff,0x02,0x25,0xff,0x00,0x45,0x30,0x2b,0x18,0xab,0x00,0x0f,0x00,0x60,0x14, +0x2b,0x10,0x49,0x01,0x01,0x00,0x04,0x24,0x04,0x10,0xa4,0x00,0x24,0x10,0x46,0x00, +0xff,0xff,0xa7,0x24,0x04,0x00,0x40,0x10,0x01,0x00,0x43,0x25,0x17,0x00,0x49,0x11, +0xff,0x00,0x6a,0x30,0x21,0x40,0xa0,0x00,0xff,0x00,0xe5,0x30,0x2b,0x10,0xab,0x00, +0xf6,0xff,0x40,0x10,0x04,0x10,0xa4,0x00,0x2b,0x10,0x49,0x01,0x08,0x00,0x40,0x10, +0x21,0x20,0x00,0x01,0x23,0x10,0x2a,0x01,0x2a,0x10,0x62,0x01,0x04,0x00,0x40,0x14, +0x21,0x20,0x00,0x00,0x23,0x10,0x69,0x01,0x21,0x10,0x4a,0x00,0xff,0x00,0x44,0x30, +0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xfd,0xff,0x40,0x14,0x21,0x20,0x00,0x00, +0x23,0x10,0x09,0x01,0x1e,0x50,0x00,0x08,0xff,0x00,0x44,0x30,0x21,0x20,0x00,0x01, +0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xff,0x00,0x84,0x30,0xc0,0x10,0x04,0x00, +0x21,0x10,0x44,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x02,0x80,0x03,0x3c, +0x68,0x15,0x63,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x25,0xb0,0x06,0x3c, +0x84,0x51,0x43,0x8c,0xff,0x00,0xa5,0x30,0x21,0x20,0x86,0x00,0x21,0x28,0xa6,0x00, +0x60,0x01,0x82,0x90,0xaf,0x01,0xa4,0x90,0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00, +0x21,0x18,0x66,0x00,0xff,0x00,0x48,0x30,0xff,0x00,0x89,0x30,0x84,0x01,0x66,0x8c, +0x21,0x50,0x00,0x00,0x21,0x58,0x00,0x00,0x2b,0x00,0x20,0x11,0x21,0x20,0x00,0x01, +0x2b,0x00,0xc0,0x10,0x2b,0x10,0x09,0x01,0x21,0x28,0x00,0x00,0x4b,0x50,0x00,0x08, +0x01,0x00,0x07,0x24,0xff,0x00,0x65,0x30,0x1d,0x00,0xa2,0x2c,0x07,0x00,0x40,0x10, +0xff,0xff,0x02,0x25,0x04,0x10,0xa7,0x00,0x24,0x10,0x46,0x00,0xf9,0xff,0x40,0x10, +0x01,0x00,0xa3,0x24,0x21,0x58,0xa0,0x00,0xff,0xff,0x02,0x25,0xff,0x00,0x45,0x30, +0x2b,0x18,0xab,0x00,0x0f,0x00,0x60,0x14,0x2b,0x10,0x49,0x01,0x01,0x00,0x04,0x24, +0x04,0x10,0xa4,0x00,0x24,0x10,0x46,0x00,0xff,0xff,0xa7,0x24,0x04,0x00,0x40,0x10, +0x01,0x00,0x43,0x25,0x17,0x00,0x49,0x11,0xff,0x00,0x6a,0x30,0x21,0x40,0xa0,0x00, +0xff,0x00,0xe5,0x30,0x2b,0x10,0xab,0x00,0xf6,0xff,0x40,0x10,0x04,0x10,0xa4,0x00, +0x2b,0x10,0x49,0x01,0x08,0x00,0x40,0x10,0x21,0x20,0x00,0x01,0x23,0x10,0x2a,0x01, +0x2a,0x10,0x62,0x01,0x04,0x00,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x69,0x01, +0x21,0x10,0x4a,0x00,0xff,0x00,0x44,0x30,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00, +0xfd,0xff,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x09,0x01,0x6c,0x50,0x00,0x08, +0xff,0x00,0x44,0x30,0x21,0x20,0x00,0x01,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00, +0xd8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x18,0x00,0xb2,0xaf,0xff,0xff,0x03,0x3c, +0x68,0x15,0x52,0x24,0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf, +0x20,0x00,0xbf,0xaf,0xff,0x1f,0x73,0x34,0x21,0x88,0x00,0x00,0x21,0x80,0x40,0x02, +0xaa,0x4f,0x00,0x0c,0x21,0x20,0x20,0x02,0x84,0x51,0x02,0x8e,0x21,0x28,0x00,0x00, +0x24,0x10,0x53,0x00,0x00,0x20,0x42,0x34,0x84,0x51,0x02,0xae,0x86,0x51,0x03,0x92, +0x00,0x00,0x00,0x00,0x80,0x18,0x03,0x00,0x21,0x18,0x72,0x00,0xec,0x44,0x64,0x8c, +0x60,0x45,0x62,0x8c,0x00,0x00,0x00,0x00,0x21,0x10,0x44,0x00,0x42,0x10,0x02,0x00, +0x50,0x51,0x02,0xae,0x21,0x10,0x05,0x02,0x01,0x00,0xa5,0x24,0x1d,0x00,0xa3,0x28, +0xc2,0x51,0x40,0xa0,0x88,0x51,0x40,0xa0,0xfa,0xff,0x60,0x14,0xa5,0x51,0x40,0xa0, +0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0xe0,0x51,0x00,0xae,0xe4,0xff,0x40,0x14, +0x94,0x00,0x10,0x26,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f, +0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27, +0xc0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x2c,0x00,0xb5,0xaf,0x68,0x15,0x46,0x24, +0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf, +0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf, +0x18,0x00,0xb0,0xaf,0xec,0x65,0xc2,0x8c,0xff,0x00,0x03,0x24,0xff,0x00,0x8d,0x30, +0xff,0xff,0x42,0x38,0x0b,0x18,0x02,0x00,0xff,0xff,0x04,0x34,0x10,0x00,0xa3,0xaf, +0xec,0x65,0xc4,0xac,0xb9,0x00,0xa0,0x11,0x08,0x00,0x15,0x24,0x02,0x80,0x02,0x3c, +0x50,0x9e,0x45,0x24,0x90,0x44,0xc4,0x24,0xc7,0x50,0x00,0x08,0x21,0x88,0x00,0x00, +0x01,0x00,0x31,0x26,0x00,0x00,0x82,0xa0,0x1d,0x00,0x22,0x2a,0x0b,0x00,0x40,0x10, +0x01,0x00,0x84,0x24,0x21,0x10,0x25,0x02,0x00,0x00,0x42,0x90,0x00,0x00,0x00,0x00, +0xf7,0xff,0x40,0x10,0xfd,0xff,0x43,0x24,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a, +0x00,0x00,0x83,0xa0,0xf7,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x02,0x80,0x02,0x3c, +0x68,0x15,0x4a,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xe8,0x9b,0x6c,0x24, +0x70,0x9b,0x4b,0x24,0x21,0x88,0x00,0x00,0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00, +0x21,0x40,0x2a,0x01,0x21,0x38,0x2c,0x01,0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90, +0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01,0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28, +0xc5,0x43,0x64,0xa0,0xf8,0xff,0x40,0x14,0x34,0x43,0x65,0xa0,0x21,0x10,0x2b,0x02, +0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26, +0x1d,0x00,0x22,0x2a,0x73,0x44,0x64,0xa0,0x56,0x44,0x65,0xa0,0xeb,0xff,0x40,0x14, +0x05,0x00,0x29,0x25,0xaf,0x00,0xa0,0x11,0x02,0x80,0x02,0x3c,0x68,0x15,0x48,0x24, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xe4,0x9e,0x69,0x24,0x70,0x9e,0x47,0x24, +0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,0x21,0x10,0x69,0x00,0x21,0x20,0x67,0x00, +0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c,0x01,0x00,0x31,0x26,0x21,0x18,0x68,0x00, +0x04,0x00,0x22,0x2a,0xec,0x44,0x65,0xac,0xf6,0xff,0x40,0x14,0x60,0x45,0x66,0xac, +0x02,0x80,0x02,0x3c,0x68,0x15,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c, +0xe4,0x9e,0x68,0x24,0x70,0x9e,0x47,0x24,0x04,0x00,0x11,0x24,0x80,0x20,0x11,0x00, +0x21,0x10,0x88,0x00,0x21,0x30,0x87,0x00,0x00,0x00,0x45,0x8c,0x00,0x00,0xc3,0x8c, +0x01,0x00,0x31,0x26,0x21,0x20,0x89,0x00,0x82,0x28,0x05,0x00,0x82,0x18,0x03,0x00, +0x1d,0x00,0x22,0x2a,0xec,0x44,0x83,0xac,0xf4,0xff,0x40,0x14,0x60,0x45,0x85,0xac, +0x02,0x80,0x02,0x3c,0x68,0x15,0x56,0x24,0xff,0xff,0x02,0x3c,0x21,0xf0,0xc0,0x02, +0xff,0x1f,0x57,0x34,0x21,0x88,0x00,0x00,0x21,0xa0,0x00,0x00,0x24,0x51,0x00,0x08, +0x21,0x90,0xc0,0x02,0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0x94,0x00,0x52,0x26, +0x3d,0x00,0x40,0x10,0x94,0x00,0x94,0x26,0x84,0x51,0x44,0x8e,0x01,0x00,0x03,0x24, +0x02,0x13,0x04,0x00,0x01,0x00,0x53,0x30,0xf6,0xff,0x63,0x16,0x07,0x00,0x82,0x30, +0x25,0xb0,0x03,0x3c,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x84,0x01,0x45,0x8c, +0x7c,0x51,0x43,0x8e,0x21,0x20,0x20,0x02,0x24,0x28,0xa3,0x00,0x6a,0x0f,0x00,0x0c, +0x80,0x51,0x45,0xae,0x86,0x51,0x44,0x92,0xe9,0x0e,0x00,0x0c,0xff,0x00,0x25,0x32, +0x84,0x51,0x42,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x57,0x00,0x00,0x20,0x42,0x34, +0x84,0x51,0x42,0xae,0x86,0x51,0x50,0x92,0x00,0x00,0x00,0x00,0x21,0x20,0x00,0x02, +0xff,0x0e,0x00,0x0c,0x80,0x80,0x10,0x00,0x21,0x80,0x16,0x02,0x54,0x51,0x40,0xae, +0x58,0x51,0x40,0xae,0x5c,0x51,0x40,0xae,0x60,0x51,0x40,0xae,0x64,0x51,0x40,0xae, +0x68,0x51,0x40,0xae,0x6c,0x51,0x40,0xae,0x70,0x51,0x40,0xae,0xec,0x44,0x04,0x8e, +0x60,0x45,0x03,0x8e,0x26,0x10,0x53,0x00,0x21,0x30,0x00,0x00,0x21,0x18,0x64,0x00, +0x42,0x18,0x03,0x00,0x04,0x00,0x04,0x24,0x0a,0xa8,0x82,0x00,0x50,0x51,0x43,0xae, +0x21,0x20,0x9e,0x02,0x21,0x10,0x86,0x00,0x01,0x00,0xc6,0x24,0x1d,0x00,0xc3,0x28, +0xc2,0x51,0x40,0xa0,0x88,0x51,0x40,0xa0,0xfa,0xff,0x60,0x14,0xa5,0x51,0x40,0xa0, +0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0xe0,0x51,0x80,0xac,0x94,0x00,0x52,0x26, +0xc5,0xff,0x40,0x14,0x94,0x00,0x94,0x26,0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34, +0x00,0x00,0x55,0xa0,0x10,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x03,0x00,0x60,0x14, +0x02,0x80,0x03,0x3c,0x68,0x15,0x62,0x24,0xec,0x65,0x40,0xac,0x3c,0x00,0xbf,0x8f, +0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f, +0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f, +0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c, +0x50,0x9e,0x45,0x24,0x90,0x44,0xc4,0x24,0x21,0x88,0x00,0x00,0x21,0x10,0x25,0x02, +0x00,0x00,0x43,0x90,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x00,0x00,0x83,0xa0, +0xfa,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x02,0x80,0x02,0x3c,0x68,0x15,0x4a,0x24, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x0c,0x9d,0x6c,0x24,0xac,0x9b,0x4b,0x24, +0x21,0x88,0x00,0x00,0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01, +0x21,0x38,0x2c,0x01,0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90, +0x21,0x18,0x06,0x01,0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc5,0x43,0x64,0xa0, +0xf8,0xff,0x40,0x14,0x34,0x43,0x65,0xa0,0x21,0x10,0x2b,0x02,0x1d,0x00,0x44,0x90, +0x00,0x00,0x45,0x90,0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a, +0x73,0x44,0x64,0xa0,0x56,0x44,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25, +0x02,0x80,0x02,0x3c,0x68,0x15,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c, +0xe4,0x9e,0x68,0x24,0x70,0x9e,0x47,0x24,0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00, +0x21,0x10,0x68,0x00,0x21,0x20,0x67,0x00,0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c, +0x01,0x00,0x31,0x26,0x21,0x18,0x69,0x00,0x1d,0x00,0x22,0x2a,0xec,0x44,0x65,0xac, +0xf6,0xff,0x40,0x14,0x60,0x45,0x66,0xac,0x17,0x51,0x00,0x08,0x02,0x80,0x02,0x3c, +0xd8,0xff,0xbd,0x27,0xff,0xff,0x84,0x30,0x18,0x00,0xb2,0xaf,0xf0,0x01,0x92,0x30, +0x02,0x91,0x12,0x00,0x14,0x00,0xb1,0xaf,0xc0,0x88,0x12,0x00,0x21,0x88,0x32,0x02, +0x80,0x88,0x11,0x00,0x21,0x88,0x32,0x02,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24, +0x80,0x88,0x11,0x00,0x21,0x88,0x22,0x02,0x20,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf, +0x10,0x00,0xb0,0xaf,0x84,0x51,0x30,0x8e,0x00,0x02,0x83,0x30,0xff,0xfe,0x02,0x24, +0x2b,0x18,0x03,0x00,0x00,0x10,0x10,0x36,0x24,0x80,0x02,0x02,0x00,0x1a,0x03,0x00, +0x00,0x04,0x82,0x30,0x25,0x80,0x03,0x02,0x2b,0x10,0x02,0x00,0xf7,0xff,0x03,0x24, +0x24,0x80,0x03,0x02,0xc0,0x10,0x02,0x00,0x25,0x80,0x02,0x02,0x7c,0x51,0x25,0xae, +0x84,0x51,0x30,0xae,0x3c,0x10,0x00,0x0c,0x21,0x98,0xa0,0x00,0xf8,0xff,0x03,0x24, +0x24,0x80,0x03,0x02,0x07,0x00,0x42,0x30,0x25,0x80,0x02,0x02,0x07,0x00,0x03,0x32, +0x25,0xb0,0x02,0x3c,0x80,0x18,0x03,0x00,0x84,0x51,0x30,0xae,0x21,0x18,0x62,0x00, +0x84,0x01,0x62,0x8c,0x21,0x20,0x40,0x02,0x24,0x10,0x53,0x00,0x6a,0x0f,0x00,0x0c, +0x80,0x51,0x22,0xae,0x86,0x51,0x24,0x92,0x21,0x28,0x40,0x02,0x20,0x00,0xbf,0x8f, +0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0xe9,0x0e,0x00,0x08,0x28,0x00,0xbd,0x27,0xaa,0x4f,0x00,0x08,0xff,0x00,0x84,0x30, +0x02,0x80,0x02,0x3c,0x68,0x15,0x43,0x24,0x1f,0x00,0x04,0x24,0x84,0x51,0x62,0x8c, +0xff,0xff,0x84,0x24,0x00,0x10,0x42,0x34,0x84,0x51,0x62,0xac,0xfb,0xff,0x81,0x04, +0x94,0x00,0x63,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x23,0x10,0xa4,0x00,0x2b,0x18,0xa4,0x00,0x23,0x20,0x85,0x00,0x08,0x00,0xe0,0x03, +0x0b,0x10,0x83,0x00,0x20,0xff,0xbd,0x27,0xcc,0x00,0xb5,0xaf,0xdc,0x00,0xbf,0xaf, +0xd8,0x00,0xbe,0xaf,0xd4,0x00,0xb7,0xaf,0xd0,0x00,0xb6,0xaf,0xc8,0x00,0xb4,0xaf, +0xc4,0x00,0xb3,0xaf,0xc0,0x00,0xb2,0xaf,0xbc,0x00,0xb1,0xaf,0xb8,0x00,0xb0,0xaf, +0x21,0xa8,0x00,0x00,0x40,0x11,0x15,0x00,0x10,0x00,0xa3,0x27,0x21,0x10,0x43,0x00, +0x07,0x00,0x16,0x24,0xff,0xff,0xd6,0x26,0x00,0x00,0x40,0xac,0xfd,0xff,0xc1,0x06, +0x04,0x00,0x42,0x24,0x01,0x00,0xb5,0x26,0x03,0x00,0xa2,0x2e,0xf6,0xff,0x40,0x14, +0x40,0x11,0x15,0x00,0x25,0xb0,0x10,0x3c,0xc4,0x02,0x02,0x36,0x00,0x00,0x40,0xac, +0x04,0x00,0x03,0x36,0x00,0x00,0x62,0x8c,0x04,0x0c,0x03,0x36,0x00,0x00,0x63,0x8c, +0x08,0x0c,0x04,0x36,0x0f,0x00,0x11,0x3c,0xac,0x00,0xa3,0xaf,0x00,0x00,0x84,0x8c, +0x24,0x10,0x51,0x00,0x02,0xf4,0x02,0x00,0xb0,0x00,0xa4,0xaf,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00, +0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x70,0x00,0xa2,0xaf,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24, +0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c, +0xff,0xff,0x25,0x36,0x74,0x00,0xa2,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c, +0x21,0x20,0x00,0x00,0xe0,0x0e,0x02,0x36,0x21,0x20,0x40,0x00,0x00,0x00,0x42,0x8c, +0xdc,0x0e,0x12,0x36,0x70,0x0e,0x13,0x36,0x78,0x00,0xa2,0xaf,0x00,0x00,0x42,0x8e, +0x74,0x0e,0x14,0x36,0x78,0x0e,0x15,0x36,0x7c,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8e, +0x7c,0x0e,0x16,0x36,0x80,0x0e,0x17,0x36,0x80,0x00,0xa3,0xaf,0x00,0x00,0x82,0x8e, +0xd4,0x0e,0x10,0x36,0xed,0x3f,0x11,0x3c,0x84,0x00,0xa2,0xaf,0x00,0x00,0xa3,0x8e, +0xfb,0x92,0x25,0x36,0x88,0x00,0xa3,0xaf,0x00,0x00,0xc2,0x8e,0x00,0x00,0x00,0x00, +0x8c,0x00,0xa2,0xaf,0x00,0x00,0xe3,0x8e,0x25,0xb0,0x02,0x3c,0x84,0x0e,0x42,0x34, +0x90,0x00,0xa3,0xaf,0x00,0x00,0x42,0x8c,0x25,0xb0,0x03,0x3c,0x88,0x0e,0x63,0x34, +0x94,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8c,0x25,0xb0,0x02,0x3c,0x8c,0x0e,0x42,0x34, +0x98,0x00,0xa3,0xaf,0x00,0x00,0x42,0x8c,0x25,0xb0,0x03,0x3c,0xd0,0x0e,0x63,0x34, +0x9c,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8c,0x00,0x00,0x00,0x00,0xa0,0x00,0xa3,0xaf, +0x00,0x00,0x02,0x8e,0x25,0xb0,0x03,0x3c,0xd8,0x0e,0x63,0x34,0xa4,0x00,0xa2,0xaf, +0x00,0x00,0x63,0x8c,0xf9,0x51,0x00,0x0c,0xa8,0x00,0xa3,0xaf,0x21,0x20,0x40,0x02, +0xf9,0x51,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0x60,0x02,0xf9,0x51,0x00,0x0c, +0xfb,0x92,0x25,0x36,0x21,0x20,0x80,0x02,0xf9,0x51,0x00,0x0c,0xfb,0x92,0x25,0x36, +0x21,0x20,0xa0,0x02,0xf9,0x51,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0xc0,0x02, +0xf9,0x51,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0xe0,0x02,0xf9,0x51,0x00,0x0c, +0xfb,0x92,0x25,0x36,0x02,0x80,0x02,0x3c,0xd8,0x9f,0x42,0x24,0x00,0x00,0x44,0x8c, +0xfb,0x92,0x25,0x36,0xf9,0x51,0x00,0x0c,0x25,0xb0,0x13,0x3c,0x02,0x80,0x03,0x3c, +0xdc,0x9f,0x63,0x24,0x00,0x00,0x64,0x8c,0xfb,0x92,0x25,0x36,0xf9,0x51,0x00,0x0c, +0x21,0xb0,0x00,0x00,0x02,0x80,0x02,0x3c,0xe0,0x9f,0x42,0x24,0x00,0x00,0x44,0x8c, +0xfb,0x92,0x25,0x36,0xf9,0x51,0x00,0x0c,0xff,0x03,0x14,0x3c,0x02,0x80,0x03,0x3c, +0xe4,0x9f,0x63,0x24,0x00,0x00,0x64,0x8c,0xfb,0x92,0x25,0x36,0xf9,0x51,0x00,0x0c, +0x10,0x00,0xb7,0x27,0x21,0x20,0x00,0x02,0xf9,0x51,0x00,0x0c,0xfb,0x92,0x25,0x36, +0x02,0x80,0x02,0x3c,0xe8,0x9f,0x42,0x24,0x00,0x00,0x44,0x8c,0xf9,0x51,0x00,0x0c, +0xfb,0x92,0x25,0x36,0xe5,0x52,0x00,0x08,0x21,0xa8,0x00,0x00,0x6e,0x00,0xc2,0x13, +0x02,0x80,0x02,0x3c,0xac,0x0e,0x62,0x36,0x94,0x0e,0x63,0x36,0x00,0x00,0x48,0x8c, +0x00,0x00,0x64,0x8c,0xb4,0x0e,0x62,0x36,0x9c,0x0e,0x63,0x36,0x00,0x00,0x45,0x8c, +0x00,0x00,0x66,0x8c,0x25,0xb0,0x03,0x3c,0xbc,0x0e,0x63,0x34,0x00,0x00,0x67,0x8c, +0x24,0x20,0x94,0x00,0x00,0xd8,0x02,0x3c,0x24,0x10,0x02,0x01,0x24,0x28,0xb4,0x00, +0x24,0x30,0xd4,0x00,0x24,0x38,0xf4,0x00,0x02,0x24,0x04,0x00,0x20,0x01,0x03,0x24, +0x01,0x00,0x42,0x2c,0x02,0x2c,0x05,0x00,0x02,0x34,0x06,0x00,0xe8,0x00,0x83,0x10, +0x02,0x3c,0x07,0x00,0xe6,0x00,0xa3,0x10,0x20,0x00,0x03,0x24,0xe4,0x00,0xc3,0x10, +0x00,0x00,0x00,0x00,0xe2,0x00,0xe3,0x10,0x01,0x00,0x08,0x24,0x80,0x00,0x03,0x24, +0x08,0x00,0x83,0x10,0x21,0x20,0x00,0x00,0x06,0x00,0xa3,0x10,0x21,0x20,0x00,0x00, +0xe0,0x03,0x03,0x24,0x03,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,0xdb,0x00,0xe3,0x10, +0x01,0x00,0x04,0x24,0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x11, +0x00,0x00,0x00,0x00,0xd7,0x00,0x80,0x14,0x94,0x0e,0x63,0x36,0x01,0x00,0xb5,0x26, +0x0a,0x00,0xa2,0x2e,0x01,0x01,0x40,0x10,0x00,0x00,0x00,0x00,0xcb,0xff,0xc0,0x17, +0x01,0x00,0x02,0x24,0xa0,0x00,0x03,0x3c,0x30,0x54,0x65,0x34,0xf9,0x51,0x00,0x0c, +0x04,0x0c,0x64,0x36,0x08,0x00,0x05,0x3c,0xe4,0x00,0xa5,0x34,0xf9,0x51,0x00,0x0c, +0x08,0x0c,0x64,0x36,0x28,0x0e,0x64,0x36,0xf9,0x51,0x00,0x0c,0x80,0x80,0x05,0x3c, +0x14,0x02,0x02,0x3c,0x48,0x01,0x45,0x34,0xf9,0x51,0x00,0x0c,0x40,0x0e,0x64,0x36, +0x16,0x68,0x05,0x3c,0xa2,0x04,0xa5,0x34,0xf9,0x51,0x00,0x0c,0x44,0x0e,0x64,0x36, +0x4c,0x0e,0x64,0x36,0xf9,0x51,0x00,0x0c,0xd1,0x28,0x05,0x24,0x14,0x02,0x03,0x3c, +0x4d,0x01,0x65,0x34,0xf9,0x51,0x00,0x0c,0x60,0x0e,0x64,0x36,0x16,0x28,0x05,0x3c, +0xba,0x08,0xa5,0x34,0xf9,0x51,0x00,0x0c,0x64,0x0e,0x64,0x36,0x6c,0x0e,0x64,0x36, +0xf9,0x51,0x00,0x0c,0xd1,0x28,0x05,0x24,0x00,0xfb,0x05,0x3c,0x01,0x00,0xa5,0x34, +0xf9,0x51,0x00,0x0c,0x48,0x0e,0x64,0x36,0x00,0xf8,0x05,0x3c,0x01,0x00,0xa5,0x34, +0xf9,0x51,0x00,0x0c,0x48,0x0e,0x64,0x36,0xeb,0x0b,0x00,0x0c,0x03,0x00,0x04,0x24, +0xa0,0x00,0x02,0x3c,0x33,0x54,0x45,0x34,0xf9,0x51,0x00,0x0c,0x04,0x0c,0x64,0x36, +0x08,0x0c,0x64,0x36,0xf9,0x51,0x00,0x0c,0xe4,0x00,0x05,0x24,0x28,0x0e,0x64,0x36, +0xf9,0x51,0x00,0x0c,0x21,0x28,0x00,0x00,0x01,0x00,0x02,0x24,0x96,0xff,0xc2,0x17, +0xac,0x0e,0x62,0x36,0x02,0x80,0x02,0x3c,0xec,0x9f,0x42,0x24,0x25,0xb0,0x03,0x3c, +0x00,0x00,0x44,0x8c,0x20,0x08,0x63,0x34,0x00,0x00,0x71,0x8c,0x00,0x01,0x03,0x3c, +0x00,0x01,0x65,0x34,0xf9,0x51,0x00,0x0c,0x25,0xb0,0x12,0x3c,0x00,0x01,0x02,0x3c, +0x00,0x01,0x45,0x34,0xf9,0x51,0x00,0x0c,0x28,0x08,0x44,0x36,0xa0,0x00,0x03,0x3c, +0x30,0x54,0x65,0x34,0xf9,0x51,0x00,0x0c,0x04,0x0c,0x44,0x36,0x08,0x00,0x05,0x3c, +0xe4,0x00,0xa5,0x34,0xf9,0x51,0x00,0x0c,0x08,0x0c,0x44,0x36,0x28,0x0e,0x44,0x36, +0xf9,0x51,0x00,0x0c,0x80,0x80,0x05,0x3c,0x00,0x01,0x02,0x3c,0x00,0x7c,0x45,0x34, +0xf9,0x51,0x00,0x0c,0x30,0x0e,0x44,0x36,0x00,0x01,0x03,0x3c,0x00,0x48,0x65,0x34, +0xf9,0x51,0x00,0x0c,0x34,0x0e,0x44,0x36,0x00,0x10,0x02,0x3c,0x1f,0xdc,0x45,0x34, +0xf9,0x51,0x00,0x0c,0x38,0x0e,0x44,0x36,0x00,0x10,0x03,0x3c,0x1f,0x8c,0x65,0x34, +0xf9,0x51,0x00,0x0c,0x3c,0x0e,0x44,0x36,0x14,0x02,0x02,0x3c,0x02,0x01,0x45,0x34, +0xf9,0x51,0x00,0x0c,0x40,0x0e,0x44,0x36,0x16,0x68,0x05,0x3c,0xc7,0x04,0xa5,0x34, +0xf9,0x51,0x00,0x0c,0x44,0x0e,0x44,0x36,0x4c,0x0e,0x44,0x36,0xf9,0x51,0x00,0x0c, +0xd1,0x28,0x05,0x24,0x6c,0x0e,0x44,0x36,0xf9,0x51,0x00,0x0c,0xd1,0x28,0x05,0x24, +0x00,0x01,0x03,0x3c,0x00,0x7c,0x65,0x34,0xf9,0x51,0x00,0x0c,0x50,0x0e,0x44,0x36, +0x00,0x01,0x02,0x3c,0x00,0x48,0x45,0x34,0xf9,0x51,0x00,0x0c,0x54,0x0e,0x44,0x36, +0x00,0x10,0x03,0x3c,0x23,0xdc,0x65,0x34,0xf9,0x51,0x00,0x0c,0x58,0x0e,0x44,0x36, +0x00,0x10,0x02,0x3c,0x23,0x8c,0x45,0x34,0xf9,0x51,0x00,0x0c,0x5c,0x0e,0x44,0x36, +0x14,0x02,0x03,0x3c,0x02,0x01,0x65,0x34,0xf9,0x51,0x00,0x0c,0x60,0x0e,0x44,0x36, +0x16,0x28,0x05,0x3c,0x07,0x0d,0xa5,0x34,0xf9,0x51,0x00,0x0c,0x64,0x0e,0x44,0x36, +0x48,0x0e,0x44,0x36,0xf9,0x51,0x00,0x0c,0x00,0xfb,0x05,0x3c,0x00,0xf8,0x05,0x3c, +0xf9,0x51,0x00,0x0c,0x48,0x0e,0x44,0x36,0x00,0x02,0x10,0x3c,0xeb,0x0b,0x00,0x0c, +0x03,0x00,0x04,0x24,0x4c,0x0e,0x44,0x36,0xf9,0x51,0x00,0x0c,0xd1,0x28,0x05,0x36, +0xd1,0x28,0x05,0x36,0xf9,0x51,0x00,0x0c,0x6c,0x0e,0x44,0x36,0x48,0x0e,0x44,0x36, +0xf9,0x51,0x00,0x0c,0x00,0xfb,0x05,0x3c,0x00,0xf8,0x05,0x3c,0xf9,0x51,0x00,0x0c, +0x48,0x0e,0x44,0x36,0xeb,0x0b,0x00,0x0c,0x03,0x00,0x04,0x24,0xac,0x00,0xa5,0x8f, +0x04,0x0c,0x44,0x36,0xf9,0x51,0x00,0x0c,0x00,0x01,0x31,0x32,0xb0,0x00,0xa5,0x8f, +0x08,0x0c,0x44,0x36,0xf9,0x51,0x00,0x0c,0x2b,0x88,0x11,0x00,0x28,0x0e,0x44,0x36, +0xf9,0x51,0x00,0x0c,0x21,0x28,0x00,0x00,0x23,0xff,0x20,0x16,0xac,0x0e,0x62,0x36, +0x02,0x80,0x02,0x3c,0xec,0x9f,0x42,0x24,0x00,0x00,0x44,0x8c,0xf9,0x51,0x00,0x0c, +0x00,0x01,0x05,0x3c,0x28,0x08,0x44,0x36,0xf9,0x51,0x00,0x0c,0x00,0x01,0x05,0x3c, +0xac,0x0e,0x62,0x36,0x94,0x0e,0x63,0x36,0x00,0x00,0x48,0x8c,0x00,0x00,0x64,0x8c, +0xb4,0x0e,0x62,0x36,0x9c,0x0e,0x63,0x36,0x00,0x00,0x45,0x8c,0x00,0x00,0x66,0x8c, +0x25,0xb0,0x03,0x3c,0xbc,0x0e,0x63,0x34,0x00,0x00,0x67,0x8c,0x24,0x20,0x94,0x00, +0x00,0xd8,0x02,0x3c,0x24,0x10,0x02,0x01,0x24,0x28,0xb4,0x00,0x24,0x30,0xd4,0x00, +0x24,0x38,0xf4,0x00,0x02,0x24,0x04,0x00,0x20,0x01,0x03,0x24,0x01,0x00,0x42,0x2c, +0x02,0x2c,0x05,0x00,0x02,0x34,0x06,0x00,0x1a,0xff,0x83,0x14,0x02,0x3c,0x07,0x00, +0x80,0x00,0x03,0x24,0x20,0xff,0x83,0x14,0x21,0x40,0x00,0x00,0xdb,0x52,0x00,0x08, +0x21,0x20,0x00,0x00,0x00,0x00,0x62,0x8c,0x9c,0x0e,0x65,0x36,0xa4,0x0e,0x66,0x36, +0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00,0x00,0x00,0xe2,0xae,0x00,0x00,0xa4,0x8c, +0xac,0x0e,0x67,0x36,0xb4,0x0e,0x65,0x36,0x24,0x20,0x94,0x00,0x02,0x24,0x04,0x00, +0x04,0x00,0xe4,0xae,0x00,0x00,0xc3,0x8c,0xc4,0x0e,0x64,0x36,0x24,0x18,0x74,0x00, +0x02,0x1c,0x03,0x00,0x08,0x00,0xe3,0xae,0x00,0x00,0xe2,0x8c,0x00,0x00,0x00,0x00, +0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00,0x0c,0x00,0xe2,0xae,0x00,0x00,0xa3,0x8c, +0x00,0x00,0x00,0x00,0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,0x10,0x00,0xe3,0xae, +0x25,0xb0,0x03,0x3c,0xbc,0x0e,0x63,0x34,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00, +0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00,0x14,0x00,0xe2,0xae,0x00,0x00,0x83,0x8c, +0x00,0x00,0x00,0x00,0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,0x18,0x00,0xe3,0xae, +0x25,0xb0,0x03,0x3c,0xcc,0x0e,0x63,0x34,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00, +0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00,0x1c,0x00,0xe2,0xae,0x01,0x00,0xd6,0x26, +0x03,0x00,0xc2,0x2e,0xc7,0xfe,0x40,0x14,0x20,0x00,0xf7,0x26,0x10,0x00,0xb0,0x8f, +0x00,0x00,0x00,0x00,0x49,0x01,0x00,0x16,0x00,0x00,0x00,0x00,0x30,0x00,0xb1,0x8f, +0x00,0x00,0x00,0x00,0x06,0x00,0x20,0x16,0x21,0x20,0x00,0x02,0x50,0x00,0xa2,0x8f, +0x00,0x00,0x00,0x00,0x29,0x00,0x40,0x10,0xff,0x00,0x05,0x24,0x21,0x20,0x00,0x02, +0x02,0x52,0x00,0x0c,0x21,0x28,0x20,0x02,0x03,0x00,0x42,0x2c,0x08,0x00,0x40,0x10, +0x00,0x00,0x00,0x00,0x34,0x00,0xa5,0x8f,0x14,0x00,0xa4,0x8f,0x02,0x52,0x00,0x0c, +0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c,0x1c,0x00,0x40,0x14,0x21,0x28,0x00,0x00, +0x50,0x00,0xb2,0x8f,0x21,0x20,0x00,0x02,0x02,0x52,0x00,0x0c,0x21,0x28,0x40,0x02, +0x03,0x00,0x42,0x2c,0x09,0x00,0x40,0x10,0x21,0x20,0x20,0x02,0x54,0x00,0xa5,0x8f, +0x14,0x00,0xa4,0x8f,0x02,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c, +0x0e,0x00,0x40,0x14,0x21,0x28,0x00,0x00,0x21,0x20,0x20,0x02,0x02,0x52,0x00,0x0c, +0x21,0x28,0x40,0x02,0x03,0x00,0x42,0x2c,0xe0,0x00,0x40,0x10,0x00,0x00,0x00,0x00, +0x54,0x00,0xa5,0x8f,0x34,0x00,0xa4,0x8f,0x02,0x52,0x00,0x0c,0x00,0x00,0x00,0x00, +0x03,0x00,0x42,0x2c,0xd9,0x00,0x40,0x10,0x01,0x00,0x05,0x24,0xff,0x00,0x02,0x24, +0xdb,0x00,0xa2,0x10,0x25,0xb0,0x03,0x3c,0x10,0x00,0xa2,0x27,0x40,0x29,0x05,0x00, +0x02,0x80,0x0f,0x3c,0x21,0x28,0xa2,0x00,0x68,0x15,0xec,0x25,0x00,0x00,0xa6,0x8c, +0x0c,0x00,0xa7,0x8c,0x0c,0x40,0x83,0x8d,0x10,0x40,0x84,0x8d,0x04,0x00,0xa8,0x8c, +0x10,0x00,0xa9,0x8c,0x00,0xfc,0x02,0x24,0x08,0x00,0xaa,0x8c,0x14,0x00,0xab,0x8c, +0x24,0x20,0x82,0x00,0xff,0x03,0xc6,0x30,0x24,0x18,0x62,0x00,0xff,0x03,0xe7,0x30, +0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,0x25,0x18,0x66,0x00,0x25,0x20,0x87,0x00, +0xff,0x03,0x08,0x31,0xff,0x03,0x29,0x31,0x24,0x20,0x82,0x00,0x24,0x18,0x62,0x00, +0x80,0x42,0x08,0x00,0x80,0x4a,0x09,0x00,0x0f,0xc0,0x02,0x3c,0x1c,0x00,0xa6,0x8c, +0x18,0x00,0xa7,0x8c,0xff,0xff,0x42,0x34,0x25,0x18,0x68,0x00,0x25,0x20,0x89,0x00, +0xff,0x03,0x4a,0x31,0xff,0x03,0x6b,0x31,0x24,0x20,0x82,0x00,0x00,0x55,0x0a,0x00, +0x24,0x18,0x62,0x00,0x00,0x5d,0x0b,0x00,0x25,0x18,0x6a,0x00,0x25,0x20,0x8b,0x00, +0x16,0x40,0x86,0xa5,0x0c,0x40,0x83,0xad,0x10,0x40,0x84,0xad,0x14,0x40,0x87,0xa5, +0x68,0x15,0xf1,0x25,0x10,0x40,0x22,0x8e,0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00, +0x4d,0x00,0x43,0x10,0x25,0xb0,0x12,0x3c,0x0c,0x40,0x23,0x8e,0x80,0x0c,0x44,0x36, +0x00,0x00,0x88,0x8c,0x00,0x02,0x62,0x30,0xc0,0xff,0x13,0x3c,0x82,0x6d,0x08,0x00, +0x03,0x00,0x40,0x10,0xff,0x03,0x65,0x30,0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00, +0x18,0x00,0xad,0x00,0x82,0x62,0x03,0x00,0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31, +0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30, +0x00,0xfc,0x02,0x24,0x25,0x60,0x82,0x01,0x18,0x00,0x8d,0x01,0x00,0xfc,0x74,0x36, +0x24,0x28,0x14,0x01,0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32, +0x00,0x14,0x02,0x00,0x25,0x28,0xa2,0x00,0xf9,0x51,0x00,0x0c,0x25,0x28,0xa6,0x00, +0x94,0x0c,0x44,0x36,0x00,0x00,0x85,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x55,0x34, +0xc0,0x03,0x10,0x32,0x24,0x28,0xb5,0x00,0x80,0x85,0x10,0x00,0xf9,0x51,0x00,0x0c, +0x25,0x28,0xb0,0x00,0x10,0x40,0x2c,0x8e,0x88,0x0c,0x44,0x36,0x00,0x00,0x88,0x8c, +0x82,0x2a,0x0c,0x00,0xff,0x03,0xa5,0x30,0x24,0x10,0x13,0x01,0x00,0x02,0xa3,0x30, +0x03,0x00,0x60,0x10,0x82,0x6d,0x02,0x00,0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00, +0x18,0x00,0xad,0x00,0x02,0x65,0x0c,0x00,0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31, +0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30, +0x00,0xfc,0x02,0x24,0x25,0x60,0x82,0x01,0x18,0x00,0x8d,0x01,0x24,0x28,0x14,0x01, +0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00, +0x25,0x28,0xa2,0x00,0xf9,0x51,0x00,0x0c,0x25,0x28,0xa6,0x00,0x9c,0x0c,0x44,0x36, +0x00,0x00,0x85,0x8c,0xc0,0x03,0x10,0x32,0x80,0x85,0x10,0x00,0x24,0x28,0xb5,0x00, +0xf9,0x51,0x00,0x0c,0x25,0x28,0xb0,0x00,0x78,0x00,0xa5,0x8f,0x25,0xb0,0x10,0x3c, +0xf9,0x51,0x00,0x0c,0xe0,0x0e,0x04,0x36,0x7c,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c, +0xdc,0x0e,0x04,0x36,0x80,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0x70,0x0e,0x04,0x36, +0x84,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0x74,0x0e,0x04,0x36,0x88,0x00,0xa5,0x8f, +0xf9,0x51,0x00,0x0c,0x78,0x0e,0x04,0x36,0x8c,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c, +0x7c,0x0e,0x04,0x36,0x90,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0x80,0x0e,0x04,0x36, +0x94,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0x84,0x0e,0x04,0x36,0x98,0x00,0xa5,0x8f, +0xf9,0x51,0x00,0x0c,0x88,0x0e,0x04,0x36,0x9c,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c, +0x8c,0x0e,0x04,0x36,0xa0,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0xd0,0x0e,0x04,0x36, +0xa4,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0xd4,0x0e,0x04,0x36,0xa8,0x00,0xa5,0x8f, +0x88,0x0e,0x04,0x36,0xf9,0x51,0x00,0x0c,0x0f,0x00,0x10,0x3c,0x70,0x00,0xa6,0x8f, +0xff,0xff,0x05,0x36,0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0x1a,0x0c,0x00,0x0c, +0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0x74,0x00,0xa6,0x8f, +0xff,0xff,0x05,0x36,0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0x1a,0x0c,0x00,0x0c, +0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0xff,0xff,0x05,0x36, +0x95,0x44,0x00,0x0c,0x1e,0x00,0x04,0x24,0x21,0x88,0x40,0x00,0xfd,0xff,0x06,0x24, +0x01,0x00,0x42,0x34,0x24,0x30,0x46,0x00,0xff,0xff,0x05,0x36,0x6a,0x44,0x00,0x0c, +0x1e,0x00,0x04,0x24,0xeb,0x0b,0x00,0x0c,0x03,0x00,0x04,0x24,0xff,0xff,0x05,0x36, +0x03,0x00,0x26,0x36,0x6a,0x44,0x00,0x0c,0x1e,0x00,0x04,0x24,0xdc,0x00,0xbf,0x8f, +0xd8,0x00,0xbe,0x8f,0xd4,0x00,0xb7,0x8f,0xd0,0x00,0xb6,0x8f,0xcc,0x00,0xb5,0x8f, +0xc8,0x00,0xb4,0x8f,0xc4,0x00,0xb3,0x8f,0xc0,0x00,0xb2,0x8f,0xbc,0x00,0xb1,0x8f, +0xb8,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0xe0,0x00,0xbd,0x27,0xff,0x00,0x05,0x24, +0xff,0x00,0x02,0x24,0x29,0xff,0xa2,0x14,0x10,0x00,0xa2,0x27,0x25,0xb0,0x03,0x3c, +0x94,0x0e,0x62,0x34,0x9c,0x0e,0x64,0x34,0xa4,0x0e,0x65,0x34,0xac,0x0e,0x66,0x34, +0x02,0x80,0x0f,0x3c,0x00,0x00,0x49,0x8c,0x68,0x15,0xed,0x25,0x00,0x00,0x8c,0x8c, +0x00,0x00,0xae,0x8c,0x00,0x00,0xc7,0x8c,0xb4,0x0e,0x62,0x34,0x0c,0x40,0xa4,0x8d, +0x10,0x40,0xa5,0x8d,0x00,0x00,0x4a,0x8c,0xff,0x03,0x06,0x3c,0x00,0xfc,0x08,0x24, +0xbc,0x0e,0x62,0x34,0x24,0x48,0x26,0x01,0x24,0x38,0xe6,0x00,0x00,0x00,0x4b,0x8c, +0x24,0x28,0xa8,0x00,0x24,0x20,0x88,0x00,0x02,0x3c,0x07,0x00,0xcc,0x0e,0x68,0x34, +0x02,0x4c,0x09,0x00,0xc4,0x0e,0x63,0x34,0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34, +0x25,0x28,0xa7,0x00,0x25,0x20,0x89,0x00,0x00,0x00,0x67,0x8c,0x24,0x60,0x86,0x01, +0x00,0x00,0x03,0x8d,0x24,0x50,0x46,0x01,0x24,0x28,0xa2,0x00,0x24,0x20,0x82,0x00, +0x82,0x61,0x0c,0x00,0x82,0x51,0x0a,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34, +0x25,0x20,0x8c,0x00,0x25,0x28,0xaa,0x00,0x24,0x70,0xc6,0x01,0x24,0x58,0x66,0x01, +0x24,0x28,0xa2,0x00,0x24,0x18,0x66,0x00,0x00,0x71,0x0e,0x00,0x24,0x20,0x82,0x00, +0x00,0x59,0x0b,0x00,0x24,0x38,0xe6,0x00,0x25,0x20,0x8e,0x00,0x25,0x28,0xab,0x00, +0x02,0x3c,0x07,0x00,0x02,0x1c,0x03,0x00,0x16,0x40,0xa3,0xa5,0x0c,0x40,0xa4,0xad, +0x10,0x40,0xa5,0xad,0x4e,0x54,0x00,0x08,0x14,0x40,0xa7,0xa5,0x30,0x00,0xb1,0x8f, +0xf6,0x53,0x00,0x08,0x21,0x20,0x00,0x02,0xe0,0xff,0xbd,0x27,0x44,0x00,0x02,0x24, +0x10,0x00,0xa2,0xa3,0x49,0x00,0x03,0x24,0x47,0x00,0x02,0x24,0x02,0x80,0x07,0x3c, +0x68,0xa5,0xe7,0x24,0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0x10,0x27,0x03,0x24, +0x01,0x00,0x02,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00, +0xf4,0x57,0xc6,0x24,0x0c,0x00,0xe3,0xac,0x14,0x00,0xe2,0xa0,0x18,0x00,0xbf,0xaf, +0x88,0x0e,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,0x25,0xb0,0x03,0x3c, +0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf, +0x24,0x00,0xb5,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf, +0x03,0x0d,0x64,0x34,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x54,0x30, +0x70,0x00,0x93,0x32,0x63,0x00,0x60,0x12,0x42,0x00,0x63,0x34,0x8f,0x00,0x82,0x32, +0x00,0x00,0x82,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x5b,0x00,0x60,0x12, +0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c,0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c, +0xff,0xff,0x25,0x36,0x21,0xa8,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c, +0x01,0x00,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36, +0x21,0xb0,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x64,0x00,0x04,0x24,0x1a,0x0c,0x00,0x0c,0x08,0x00,0x10,0x3c,0xff,0xff,0x10,0x36, +0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0x01,0x00,0x12,0x3c,0x24,0x30,0xb0,0x02, +0x25,0x30,0xd2,0x00,0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00, +0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x24,0x80,0xd0,0x02,0x2a,0x42,0x00,0x0c, +0x01,0x00,0x04,0x24,0x25,0x30,0x12,0x02,0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c, +0x21,0x20,0x00,0x00,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c, +0x21,0x20,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38, +0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c,0x18,0x00,0x04,0x24,0x95,0x44,0x00,0x0c, +0xff,0xff,0x25,0x36,0x21,0x80,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34, +0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x18,0x00,0x04,0x24, +0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c,0x00,0x80,0x06,0x36,0xeb,0x0b,0x00,0x0c, +0x03,0x00,0x04,0x24,0x27,0x00,0x60,0x16,0x25,0xb0,0x02,0x3c,0x2c,0x00,0xbf,0x8f, +0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f, +0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x25,0xb0,0x02,0x3c, +0x42,0x00,0x42,0x34,0x30,0x00,0xbd,0x27,0x00,0x00,0x40,0xa0,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x24,0x00,0x00,0x62,0xa0,0x00,0x60,0x01,0x40, +0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c, +0x18,0x00,0x04,0x24,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0x80,0x40,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c, +0x64,0x00,0x04,0x24,0x18,0x00,0x04,0x24,0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c, +0x00,0x80,0x06,0x36,0xeb,0x0b,0x00,0x0c,0x03,0x00,0x04,0x24,0xdb,0xff,0x60,0x12, +0x25,0xb0,0x02,0x3c,0x03,0x0d,0x42,0x34,0x00,0x00,0x54,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x0f,0x00,0x10,0x3c,0x21,0x30,0xa0,0x02,0xff,0xff,0x05,0x36, +0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24, +0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x21,0x30,0xc0,0x02, +0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24, +0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f, +0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f, +0x21,0x20,0x00,0x00,0x2a,0x42,0x00,0x08,0x30,0x00,0xbd,0x27,0xc0,0xff,0xbd,0x27, +0x28,0x00,0xb4,0xaf,0x02,0x80,0x14,0x3c,0x30,0x00,0xb6,0xaf,0x38,0x00,0xbf,0xaf, +0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf, +0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x68,0x15,0x85,0x26,0x0c,0x40,0xa2,0x8c, +0x00,0x00,0x00,0x00,0x82,0x17,0x02,0x00,0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14, +0x06,0x00,0x16,0x24,0x08,0x40,0xa2,0x8c,0x01,0x00,0x03,0x24,0x42,0x17,0x02,0x00, +0x03,0x00,0x42,0x30,0x5d,0x01,0x43,0x10,0x25,0xb0,0x02,0x3c,0x68,0x15,0x85,0x26, +0x0c,0x40,0xa2,0x8c,0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,0x01,0x00,0x44,0x30, +0x0d,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f, +0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f, +0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x08,0x40,0xa2,0x8c,0x00,0x00,0x00,0x00, +0x42,0x17,0x02,0x00,0x03,0x00,0x42,0x30,0xef,0xff,0x44,0x14,0x25,0xb0,0x02,0x3c, +0x0e,0x0c,0x44,0x34,0x00,0x00,0x83,0x90,0x00,0x01,0x02,0x24,0xff,0x00,0x63,0x30, +0x01,0x00,0x63,0x24,0x59,0x02,0x62,0x10,0xff,0x00,0x62,0x30,0x00,0x00,0x82,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x84,0x26,0x10,0x40,0x82,0x8c, +0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,0x73,0x02,0x43,0x10,0x0f,0x00,0x10,0x3c, +0xc7,0x42,0x93,0x90,0x25,0xb0,0x02,0x3c,0x62,0x0c,0x42,0x34,0xff,0x00,0x63,0x32, +0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x90,0x26, +0xc6,0x42,0x02,0x92,0x00,0x00,0x00,0x00,0x79,0x01,0x40,0x10,0x01,0x00,0x02,0x24, +0x25,0xb0,0x11,0x3c,0x03,0x0d,0x23,0x36,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00, +0x70,0x00,0x42,0x30,0x9f,0x01,0x40,0x14,0xcc,0x00,0x02,0x24,0xc4,0x42,0x02,0x96, +0x00,0x00,0x00,0x00,0x23,0x20,0x53,0x00,0x2b,0x18,0x53,0x00,0x23,0x10,0x62,0x02, +0x0a,0x10,0x83,0x00,0x03,0x00,0x42,0x2c,0x6c,0x01,0x40,0x10,0x00,0x00,0x00,0x00, +0xc4,0x42,0x03,0x92,0x63,0x0c,0x22,0x36,0x21,0x20,0x00,0x00,0x00,0x00,0x43,0xa0, +0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x82,0x24,0x68,0x15,0x83,0x26,0xc3,0x42,0x62,0x90,0x08,0x40,0x66,0x8c, +0xc2,0x42,0x73,0xa0,0x23,0x20,0x53,0x00,0x2b,0x38,0x62,0x02,0x23,0x90,0x62,0x02, +0x02,0x2c,0x06,0x00,0x0b,0x90,0x87,0x00,0x3f,0x00,0xa5,0x30,0x3f,0x00,0xc4,0x30, +0x24,0x00,0x02,0x24,0x20,0x00,0x03,0x24,0x23,0x10,0x44,0x00,0x8a,0x01,0x40,0x16, +0x23,0x18,0x65,0x00,0x21,0x40,0x80,0x00,0x21,0xa8,0xa0,0x00,0x02,0x80,0x17,0x3c, +0x2b,0x28,0xc8,0x02,0x81,0x01,0xa0,0x10,0x68,0x15,0x82,0x26,0x80,0x10,0x08,0x00, +0x68,0x15,0x83,0x26,0x21,0x10,0x43,0x00,0x18,0x40,0x44,0x8c,0x00,0x00,0x00,0x00, +0x82,0x25,0x04,0x00,0x68,0x15,0x86,0x26,0x0c,0x40,0xc3,0x8c,0x00,0x00,0x00,0x00, +0xff,0x03,0x67,0x30,0xe9,0x01,0xe0,0x10,0x00,0x02,0x62,0x30,0x04,0x00,0x40,0x10, +0x18,0x00,0xe4,0x00,0x00,0xfc,0x02,0x24,0x25,0x38,0xe2,0x00,0x18,0x00,0xe4,0x00, +0x82,0x82,0x03,0x00,0xff,0x03,0x10,0x32,0x00,0x02,0x03,0x32,0x12,0x10,0x00,0x00, +0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x45,0x30,0x00,0xfc,0x02,0x24, +0x25,0x80,0x02,0x02,0x18,0x00,0x04,0x02,0x80,0x1d,0x04,0x00,0x25,0xb0,0x11,0x3c, +0x80,0x0c,0x24,0x36,0x94,0x0c,0x31,0x36,0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00, +0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x18,0x62,0x00,0x25,0x18,0x65,0x00, +0x21,0x28,0x60,0x00,0xf9,0x51,0x00,0x0c,0x10,0x00,0xa3,0xaf,0x00,0x00,0x23,0x8e, +0xff,0x0f,0x02,0x3c,0xc0,0x03,0x10,0x32,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x80,0x85,0x10,0x00,0x25,0x18,0x70,0x00,0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x00, +0x10,0x00,0xa3,0xaf,0xf9,0x51,0x00,0x0c,0x00,0x00,0x00,0x00,0x68,0x15,0x83,0x26, +0x08,0x40,0x62,0x8c,0x00,0x00,0x00,0x00,0x5b,0x01,0x40,0x04,0xc0,0x28,0x15,0x00, +0x21,0x10,0xa3,0x00,0xac,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x22,0x0a,0x63,0x34, +0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26, +0x21,0x10,0xa2,0x00,0xad,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x23,0x0a,0x63,0x34, +0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26, +0x21,0x10,0xa2,0x00,0xae,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x24,0x0a,0x63,0x34, +0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26, +0x21,0x10,0xa2,0x00,0xaf,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x25,0x0a,0x63,0x34, +0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26, +0x21,0x10,0xa2,0x00,0xb0,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x26,0x0a,0x63,0x34, +0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26, +0x21,0x10,0xa2,0x00,0xb1,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x27,0x0a,0x63,0x34, +0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26, +0x21,0x10,0xa2,0x00,0xb2,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x28,0x0a,0x63,0x34, +0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26, +0x21,0x10,0xa2,0x00,0xb3,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x29,0x0a,0x63,0x34, +0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0xee,0x7d,0xe3,0x92, +0x22,0x00,0x02,0x24,0x03,0x00,0x62,0x10,0x92,0x00,0x02,0x24,0xfe,0xfe,0x62,0x14, +0x00,0x00,0x00,0x00,0x68,0x15,0x82,0x26,0x08,0x40,0x43,0x8c,0x01,0x00,0x44,0x3a, +0x24,0x00,0x02,0x24,0x02,0x1a,0x03,0x00,0x3f,0x00,0x63,0x30,0x01,0x00,0x84,0x30, +0x87,0x01,0x80,0x10,0x23,0x28,0x43,0x00,0x42,0x18,0x12,0x00,0x40,0x10,0x03,0x00, +0x21,0x90,0x43,0x00,0x68,0x15,0x83,0x26,0xc3,0x42,0x62,0x90,0x00,0x00,0x00,0x00, +0x2b,0x10,0x62,0x02,0x50,0x01,0x40,0x10,0x2b,0x10,0x45,0x02,0x06,0x00,0x40,0x10, +0x24,0x00,0x06,0x24,0x08,0x40,0x62,0x8c,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00, +0x3f,0x00,0x42,0x30,0x21,0x30,0x52,0x00,0x2b,0x28,0xc6,0x02,0x50,0x01,0xa0,0x10, +0x68,0x15,0x82,0x26,0x80,0x10,0x06,0x00,0x68,0x15,0x83,0x26,0x21,0x10,0x43,0x00, +0x18,0x40,0x44,0x8c,0x00,0x00,0x00,0x00,0x82,0x25,0x04,0x00,0x68,0x15,0x83,0x26, +0x10,0x40,0x70,0x8c,0x00,0x00,0x00,0x00,0x82,0x3a,0x10,0x00,0xff,0x03,0xe7,0x30, +0x5a,0x01,0xe0,0x10,0x00,0x02,0xe2,0x30,0x04,0x00,0x40,0x10,0x18,0x00,0xe4,0x00, +0x00,0xfc,0x02,0x24,0x25,0x38,0xe2,0x00,0x18,0x00,0xe4,0x00,0x02,0x85,0x10,0x00, +0xff,0x03,0x10,0x32,0x00,0x02,0x03,0x32,0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00, +0x03,0x00,0x60,0x10,0xff,0x03,0x45,0x30,0x00,0xfc,0x02,0x24,0x25,0x80,0x02,0x02, +0x18,0x00,0x04,0x02,0x80,0x1d,0x04,0x00,0x25,0xb0,0x11,0x3c,0x88,0x0c,0x24,0x36, +0x9c,0x0c,0x31,0x36,0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32, +0x00,0x14,0x02,0x00,0x25,0x18,0x62,0x00,0x25,0x18,0x65,0x00,0x21,0x28,0x60,0x00, +0xf9,0x51,0x00,0x0c,0x10,0x00,0xa3,0xaf,0x00,0x00,0x23,0x8e,0xff,0x0f,0x02,0x3c, +0xff,0xff,0x42,0x34,0xc0,0x03,0x10,0x32,0x24,0x18,0x62,0x00,0x80,0x85,0x10,0x00, +0x25,0x18,0x70,0x00,0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x00,0xf9,0x51,0x00,0x0c, +0x10,0x00,0xa3,0xaf,0x1c,0x56,0x00,0x08,0x00,0x00,0x00,0x00,0x80,0x0c,0x42,0x34, +0x00,0x00,0x43,0x8c,0x21,0x30,0xa0,0x00,0xc0,0xff,0x02,0x3c,0x24,0x20,0x62,0x00, +0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c,0x7e,0x57,0x00,0x08,0x18,0x40,0xc3,0x24, +0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e,0x0d,0x00,0x40,0x10,0x02,0x80,0x17,0x3c, +0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x45,0x00,0xf8,0xff,0x44,0x14, +0x04,0x00,0x63,0x24,0x08,0x40,0xc2,0x8c,0xc0,0xff,0x03,0x24,0x3f,0x00,0x24,0x32, +0x24,0x10,0x43,0x00,0x25,0x10,0x44,0x00,0x08,0x40,0xc2,0xac,0x02,0x80,0x17,0x3c, +0xee,0x7d,0xe3,0x92,0x22,0x00,0x02,0x24,0x44,0x00,0x62,0x10,0x92,0x00,0x02,0x24, +0x43,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,0x25,0xb0,0x02,0x3c,0x24,0x0a,0x42,0x34, +0x00,0x00,0x44,0x8c,0x3f,0x3f,0x03,0x3c,0x3f,0x3f,0x63,0x34,0x24,0x20,0x83,0x00, +0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x16,0x56,0x53,0x24,0x1e,0x57,0x72,0x24, +0x21,0x88,0x00,0x00,0xa5,0x57,0x00,0x08,0x10,0x00,0xa4,0xaf,0x95,0x45,0x00,0x0c, +0x00,0x00,0x00,0x00,0x4d,0x00,0x40,0x10,0x68,0x15,0x85,0x26,0x01,0x00,0x31,0x26, +0x21,0x00,0x22,0x2e,0x17,0x00,0x40,0x10,0x68,0x15,0x84,0x26,0xc0,0x80,0x11,0x00, +0x10,0x00,0xa4,0x27,0x21,0x28,0x13,0x02,0x95,0x45,0x00,0x0c,0x04,0x00,0x06,0x24, +0x21,0x28,0x12,0x02,0x10,0x00,0xa4,0x27,0xf0,0xff,0x40,0x14,0x04,0x00,0x06,0x24, +0x68,0x15,0x85,0x26,0x08,0x40,0xa3,0x8c,0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34, +0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00,0x00,0x24,0x04,0x00,0xff,0x7f,0x02,0x3c, +0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x08,0x40,0xa3,0xac, +0x68,0x15,0x84,0x26,0x0c,0x40,0x83,0x8c,0x00,0x40,0x02,0x3c,0x25,0x18,0x62,0x00, +0x25,0xb0,0x02,0x3c,0x0e,0x0c,0x42,0x34,0x0c,0x40,0x83,0xac,0x00,0x00,0x40,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x16,0x56,0x00,0x08,0x68,0x15,0x85,0x26, +0xc6,0x42,0x02,0xa2,0x52,0x56,0x00,0x08,0xc4,0x42,0x13,0xa6,0x50,0x55,0x00,0x0c, +0x00,0x00,0x00,0x00,0x62,0x56,0x00,0x08,0xc4,0x42,0x13,0xa6,0x25,0xb0,0x02,0x3c, +0x88,0x0c,0x42,0x34,0x00,0x00,0x44,0x8c,0x02,0x80,0x03,0x3c,0x68,0x15,0x66,0x24, +0xc0,0xff,0x02,0x3c,0x24,0x20,0x82,0x00,0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c, +0xe0,0x57,0x00,0x08,0x18,0x40,0xc3,0x24,0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e, +0xb2,0xff,0x40,0x10,0x25,0xb0,0x02,0x3c,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00, +0x24,0x10,0x45,0x00,0xf8,0xff,0x44,0x14,0x04,0x00,0x63,0x24,0x08,0x40,0xc2,0x8c, +0x3f,0x00,0x23,0x32,0xff,0xc0,0x04,0x24,0x24,0x10,0x44,0x00,0x00,0x1a,0x03,0x00, +0x25,0x10,0x43,0x00,0x90,0x57,0x00,0x08,0x08,0x40,0xc2,0xac,0x08,0x40,0xa3,0x8c, +0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00, +0x00,0x24,0x04,0x00,0x25,0x18,0x64,0x00,0x00,0x80,0x02,0x3c,0xb9,0x57,0x00,0x08, +0x25,0x18,0x62,0x00,0x63,0x0c,0x23,0x36,0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x6c,0x56,0x00,0x08,0x68,0x15,0x83,0x26,0x30,0x40,0x43,0x8c, +0x87,0x56,0x00,0x08,0x82,0x25,0x03,0x00,0x91,0x00,0xe0,0x10,0x21,0x40,0x00,0x00, +0x2b,0x10,0x42,0x02,0x21,0x20,0x92,0x00,0x00,0x00,0x42,0x38,0x24,0x00,0x08,0x24, +0x2b,0x18,0x43,0x02,0x0b,0x40,0x82,0x00,0x70,0xfe,0x60,0x10,0x20,0x00,0x15,0x24, +0x68,0x15,0x83,0x26,0x0a,0x40,0x62,0x94,0x02,0x80,0x17,0x3c,0x3f,0x00,0x42,0x30, +0x7e,0x56,0x00,0x08,0x21,0xa8,0x52,0x00,0x21,0x10,0xa3,0x00,0xb4,0x41,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x22,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb5,0x41,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x23,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb6,0x41,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x24,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb7,0x41,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x25,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb8,0x41,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x26,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb9,0x41,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x27,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xba,0x41,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x28,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xbb,0x41,0x44,0x90, +0x25,0xb0,0x03,0x3c,0x29,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00, +0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x42,0x24,0x19,0x57,0x00,0x08,0x00,0x00,0x00,0x00,0x28,0x00,0xa0,0x10, +0x80,0x10,0x08,0x00,0x21,0x10,0x46,0x00,0x18,0x40,0x45,0x8c,0x25,0xb0,0x04,0x3c, +0xf9,0x51,0x00,0x0c,0x80,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,0x94,0x0c,0x84,0x34, +0xb3,0x56,0x00,0x08,0x21,0x28,0x00,0x00,0x08,0x40,0x62,0x8c,0x00,0x00,0x00,0x00, +0x02,0x12,0x02,0x00,0x3f,0x00,0x42,0x30,0x2b,0x18,0x42,0x02,0xb2,0xfe,0x60,0x14, +0x23,0x30,0x52,0x00,0x21,0x30,0x00,0x00,0x21,0x28,0x00,0x00,0x68,0x15,0x82,0x26, +0x30,0x40,0x43,0x8c,0x41,0x57,0x00,0x08,0x82,0x25,0x03,0x00,0x00,0x00,0x80,0xa0, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x3d,0x56,0x00,0x08,0x68,0x15,0x84,0x26, +0x23,0x10,0x92,0x00,0x2b,0x18,0x44,0x02,0x2b,0x20,0x45,0x02,0x0b,0x40,0x43,0x00, +0xe2,0xfd,0x80,0x14,0x23,0xa8,0xb2,0x00,0x7d,0x56,0x00,0x08,0x21,0xa8,0x00,0x00, +0x30,0x40,0xc5,0x8c,0x7a,0x58,0x00,0x08,0x25,0xb0,0x04,0x3c,0x27,0x00,0xa0,0x10, +0x80,0x10,0x06,0x00,0x21,0x10,0x43,0x00,0x18,0x40,0x45,0x8c,0x25,0xb0,0x04,0x3c, +0xf9,0x51,0x00,0x0c,0x88,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,0x9c,0x0c,0x84,0x34, +0xf9,0x51,0x00,0x0c,0x21,0x28,0x00,0x00,0x1c,0x56,0x00,0x08,0x00,0x00,0x00,0x00, +0xff,0xff,0x43,0x26,0x42,0x18,0x03,0x00,0x40,0x10,0x03,0x00,0x21,0x10,0x43,0x00, +0x2b,0x57,0x00,0x08,0x01,0x00,0x52,0x24,0xff,0xff,0x05,0x36,0x60,0x00,0x06,0x24, +0x6a,0x44,0x00,0x0c,0x24,0x00,0x04,0x24,0xeb,0x0b,0x00,0x0c,0xe8,0x03,0x04,0x24, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x24,0x00,0x04,0x24,0x95,0x44,0x00,0x0c,0xff,0xff,0x05,0x36,0x1f,0x00,0x53,0x30, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c, +0x64,0x00,0x04,0x24,0x44,0x56,0x00,0x08,0x25,0xb0,0x02,0x3c,0x30,0x40,0x65,0x8c, +0xa6,0x58,0x00,0x08,0x25,0xb0,0x04,0x3c,0x00,0xff,0x84,0x30,0x02,0x22,0x04,0x00, +0x08,0x00,0x80,0x10,0x02,0x80,0x02,0x3c,0xff,0x00,0x02,0x24,0x04,0x00,0x82,0x10, +0xcc,0xff,0x03,0x24,0x02,0x80,0x02,0x3c,0x08,0x00,0xe0,0x03,0x4e,0x58,0x43,0xa0, +0x02,0x80,0x02,0x3c,0x08,0x00,0xe0,0x03,0x4e,0x58,0x44,0xa0,0x02,0x24,0x04,0x00, +0xff,0x00,0x84,0x30,0xc0,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x80,0x10,0x02,0x00, +0x21,0x10,0x44,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x02,0x00,0x68,0x15,0x63,0x24, +0x20,0x00,0x84,0x2c,0x09,0x00,0x80,0x10,0x21,0x10,0x43,0x00,0x74,0x51,0x43,0x8c, +0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x02,0x19,0x03,0x00,0x7f,0x00,0x63,0x30, +0x00,0x00,0x43,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c, +0x50,0x79,0x43,0x8c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x02,0x19,0x03,0x00, +0x7f,0x00,0x63,0x30,0x00,0x00,0x43,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xff,0x00,0x85,0x30,0xd2,0xff,0xa3,0x24,0xfe,0xff,0xa2,0x24,0xda,0xff,0xa4,0x24, +0x04,0x00,0x63,0x2c,0x08,0x00,0x84,0x2c,0x06,0x00,0x60,0x14,0xff,0x00,0x42,0x30, +0xf0,0xff,0xa2,0x24,0xfc,0xff,0xa3,0x24,0x16,0x00,0x46,0x2c,0x03,0x00,0x80,0x10, +0xff,0x00,0x62,0x30,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xfa,0xff,0xa3,0x24, +0xfc,0xff,0xc0,0x10,0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,0xff,0x00,0x62,0x30, +0xe0,0xff,0xbd,0x27,0x44,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3,0x49,0x00,0x03,0x24, +0x47,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,0x02,0x80,0x08,0x3c,0x30,0xa5,0xe7,0x24, +0x68,0x15,0x08,0x25,0xff,0xff,0x09,0x34,0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3, +0xf4,0x01,0x03,0x24,0x01,0x00,0x02,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27, +0x21,0x20,0xe0,0x00,0x9c,0x64,0xc6,0x24,0xf4,0x63,0x09,0xad,0x0c,0x00,0xe3,0xac, +0x14,0x00,0xe2,0xa0,0xf0,0x63,0x09,0xad,0x18,0x00,0xbf,0xaf,0x88,0x0e,0x00,0x0c, +0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf, +0x10,0x00,0xb0,0xaf,0x02,0x80,0x02,0x3c,0xee,0x7d,0x44,0x90,0x22,0x00,0x03,0x24, +0x07,0x00,0x83,0x10,0x25,0xb0,0x04,0x3c,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0x4c,0x00,0x83,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30, +0xf5,0xff,0x40,0x10,0x02,0x80,0x11,0x3c,0x68,0x15,0x22,0x26,0xf0,0x63,0x43,0x8c, +0x98,0x0c,0x84,0x34,0x21,0x10,0x00,0x00,0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30, +0x00,0x00,0x83,0xa0,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x22,0x26,0xf4,0x63,0x43,0x8c, +0x25,0xb0,0x02,0x3c,0x99,0x0c,0x42,0x34,0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30, +0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30, +0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x30,0x26, +0xf0,0x63,0x04,0x8e,0xff,0xff,0x02,0x34,0xd7,0xff,0x82,0x10,0x00,0x00,0x00,0x00, +0xe8,0x63,0x02,0x8e,0x00,0x00,0x00,0x00,0x02,0x11,0x02,0x00,0x7f,0x00,0x42,0x30, +0x3f,0x00,0x43,0x2c,0x12,0x00,0x60,0x14,0x3b,0x00,0x42,0x2c,0xf4,0x63,0x02,0x8e, +0x02,0x19,0x04,0x00,0x02,0x11,0x02,0x00,0x23,0x18,0x62,0x00,0x1e,0x00,0x60,0x18, +0x25,0xb0,0x04,0x3c,0x12,0x01,0x05,0x3c,0x0c,0x09,0x84,0x34,0x13,0x13,0xa5,0x34, +0xf9,0x51,0x00,0x0c,0x00,0x00,0x00,0x00,0x68,0x15,0x22,0x26,0xe4,0x42,0x43,0x8c, +0x00,0x20,0x04,0x3c,0x25,0x18,0x64,0x00,0x30,0x59,0x00,0x08,0xe4,0x42,0x43,0xac, +0xbd,0xff,0x40,0x10,0x01,0x00,0x03,0x24,0xe4,0x42,0x02,0x8e,0x00,0x00,0x00,0x00, +0x42,0x17,0x02,0x00,0x01,0x00,0x42,0x30,0xb7,0xff,0x43,0x14,0x25,0xb0,0x04,0x3c, +0x32,0x03,0x05,0x3c,0x0c,0x09,0x84,0x34,0xf9,0x51,0x00,0x0c,0x33,0x13,0xa5,0x34, +0xe4,0x42,0x03,0x8e,0xff,0xdf,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00, +0x30,0x59,0x00,0x08,0xe4,0x42,0x03,0xae,0x22,0x02,0x05,0x3c,0x0c,0x09,0x84,0x34, +0x6a,0x59,0x00,0x08,0x23,0x13,0xa5,0x34,0x25,0xb0,0x03,0x3c,0x03,0x0d,0x63,0x34, +0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x08,0x00,0x42,0x34, +0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c, +0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x03,0x0d,0x63,0x34, +0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xf7,0x00,0x42,0x30,0x00,0x00,0x62,0xa0, +0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14, +0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,0x00,0x00,0x62,0x90, +0x21,0x20,0x00,0x00,0x3f,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24, +0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24, +0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00, +0xff,0x00,0x42,0x30,0x80,0x00,0x42,0x34,0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24, +0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xff,0x00,0x03,0x3c, +0x82,0x01,0x49,0x34,0x81,0x01,0x48,0x34,0x24,0x10,0x83,0x00,0x02,0x3c,0x02,0x00, +0x00,0xff,0x63,0x34,0x02,0x80,0x02,0x3c,0x68,0x15,0x45,0x24,0x02,0x32,0x04,0x00, +0x01,0x00,0x02,0x24,0x24,0x20,0x83,0x00,0xce,0x4c,0xa2,0xa0,0xbc,0x4c,0xa0,0xac, +0xc0,0x4c,0xa0,0xac,0xc4,0x4c,0xa0,0xac,0x06,0x00,0x80,0x14,0xc8,0x4c,0xa0,0xac, +0x00,0x00,0x02,0x91,0x00,0x00,0x23,0x91,0xcc,0x4c,0xa2,0xa0,0x08,0x00,0xe0,0x03, +0xcd,0x4c,0xa3,0xa0,0xcd,0x4c,0xa7,0xa0,0x08,0x00,0xe0,0x03,0xcc,0x4c,0xa6,0xa0, +0x02,0x80,0x03,0x3c,0x68,0x15,0x63,0x24,0xcd,0x4c,0x66,0x90,0xcc,0x4c,0x65,0x90, +0x25,0xb0,0x02,0x3c,0x82,0x01,0x44,0x34,0x81,0x01,0x42,0x34,0x00,0x00,0x45,0xa0, +0x00,0x00,0x86,0xa0,0x08,0x00,0xe0,0x03,0xce,0x4c,0x60,0xa0,0x02,0x80,0x08,0x3c, +0x68,0x15,0x04,0x25,0xce,0x4c,0x82,0x90,0x00,0x00,0x00,0x00,0x15,0x00,0x40,0x10, +0x21,0x18,0x00,0x00,0xc0,0x4c,0x82,0x8c,0xbc,0x4c,0x85,0x8c,0x25,0xb0,0x03,0x3c, +0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x82,0x01,0x67,0x34,0x0f,0x00,0x40,0x10, +0x81,0x01,0x66,0x34,0xcd,0x4c,0x83,0x90,0xcc,0x4c,0x82,0x90,0xf0,0x00,0x63,0x30, +0x1f,0x00,0x42,0x30,0x00,0x00,0xc2,0xa0,0x00,0x00,0xe3,0xa0,0x68,0x15,0x02,0x25, +0x01,0x00,0x03,0x24,0xc8,0x4c,0x40,0xac,0xbc,0x4c,0x40,0xac,0xc0,0x4c,0x40,0xac, +0xc4,0x4c,0x40,0xac,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xc4,0x4c,0x82,0x8c, +0x25,0xb0,0x03,0x3c,0x82,0x01,0x69,0x34,0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00, +0x0e,0x00,0x40,0x14,0x81,0x01,0x66,0x34,0xc8,0x4c,0x82,0x8c,0x00,0x00,0x00,0x00, +0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x08,0x00,0x40,0x14,0x00,0x00,0x00,0x00, +0xcd,0x4c,0x83,0x90,0xcc,0x4c,0x82,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0xc2,0xa0, +0x00,0x00,0x23,0xa1,0xf2,0x59,0x00,0x08,0x68,0x15,0x02,0x25,0xcd,0x4c,0x83,0x90, +0xcc,0x4c,0x82,0x90,0xf0,0x00,0x63,0x30,0x7f,0x00,0x42,0x30,0x00,0x00,0xc2,0xa0, +0x00,0x00,0x23,0xa1,0xf2,0x59,0x00,0x08,0x68,0x15,0x02,0x25,0x00,0x00,0x85,0xac, +0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c, +0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x25,0xb0,0x03,0x3c,0x33,0x02,0x65,0x34,0x00,0x11,0x04,0x00,0x00,0x00,0xa2,0xa0, +0x30,0x02,0x63,0x34,0x00,0x00,0x65,0x8c,0x0f,0x00,0x02,0x3c,0xff,0xff,0x42,0x34, +0x24,0x28,0xa2,0x00,0x01,0x00,0x03,0x24,0x04,0x18,0x83,0x00,0x02,0x00,0xa0,0x10, +0x21,0x10,0x00,0x00,0xff,0xff,0x62,0x30,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x25,0xb0,0x11,0x3c,0x18,0x00,0xb2,0xaf, +0x4c,0x00,0x22,0x36,0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x44,0x90, +0x02,0x80,0x03,0x3c,0x02,0x00,0x02,0x24,0xff,0x00,0x84,0x30,0x07,0x00,0x82,0x10, +0x68,0x15,0x72,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x46,0x64,0x43,0x96, +0x01,0x00,0x02,0x24,0xf7,0xff,0x62,0x14,0x21,0x20,0x00,0x00,0x1e,0x5a,0x00,0x0c, +0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x24,0x1e,0x5a,0x00,0x0c,0x21,0x80,0x40,0x00, +0x25,0x80,0x02,0x02,0x33,0x02,0x23,0x36,0x08,0x00,0x02,0x24,0xff,0xff,0x10,0x32, +0x40,0x00,0x25,0x36,0x00,0x00,0x62,0xa0,0xea,0xff,0x00,0x16,0x00,0x00,0x00,0x00, +0x00,0x00,0xa2,0x94,0x44,0x64,0x43,0x96,0xff,0xdf,0x42,0x30,0x00,0x20,0x44,0x34, +0x01,0x00,0x63,0x24,0x44,0x64,0x43,0xa6,0x00,0x00,0xa2,0xa4,0x00,0x00,0xa4,0xa4, +0x3b,0x5a,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xb8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c, +0x3c,0x00,0xb1,0xaf,0x38,0x00,0xb0,0xaf,0x40,0x00,0xbf,0xaf,0x68,0x15,0x50,0x24, +0xf8,0x63,0x03,0x8e,0x02,0x80,0x11,0x3c,0x01,0x00,0x02,0x24,0x01,0x00,0x63,0x30, +0x10,0x00,0xa4,0x27,0x64,0x79,0x25,0x26,0x07,0x00,0x62,0x10,0x0a,0x00,0x06,0x24, +0x40,0x00,0xbf,0x8f,0x3c,0x00,0xb1,0x8f,0x38,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00, +0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27,0x6c,0x45,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40, +0x21,0x28,0x00,0x00,0x64,0x79,0x24,0x26,0x58,0x45,0x00,0x0c,0x0a,0x00,0x06,0x24, +0x28,0x00,0x03,0x24,0x05,0x00,0x02,0x24,0xfd,0x63,0x03,0xa2,0xfc,0x63,0x02,0xa2, +0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x54,0x4f,0x00,0x0c, +0x48,0x00,0x04,0x24,0x21,0x80,0x40,0x00,0x10,0x00,0xa5,0x27,0xe4,0xff,0x40,0x10, +0x0a,0x00,0x06,0x24,0x08,0x00,0x44,0x94,0x14,0x00,0x02,0x24,0x14,0x00,0x02,0xae, +0x02,0x80,0x02,0x3c,0x28,0x00,0x03,0x24,0x25,0x20,0x82,0x00,0x0c,0x00,0x03,0xae, +0x6c,0x45,0x00,0x0c,0x20,0x00,0x84,0x24,0x30,0x08,0x00,0x0c,0x21,0x20,0x00,0x02, +0x6e,0x5a,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x18,0x03,0x42,0x34,0x60,0x6a,0x63,0x24,0x00,0x00,0x43,0xac,0x63,0x00,0x02,0x24, +0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0x02,0x80,0x02,0x3c, +0xe8,0x7d,0x45,0x94,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xeb,0x7d,0x66,0x90, +0xf8,0x7d,0x47,0x90,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x03,0x7e,0x69,0x90, +0x05,0x7e,0x4a,0x90,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x08,0x7e,0x6b,0x90, +0x0a,0x7e,0x4c,0x90,0x07,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,0x25,0xb0,0x04,0x3c, +0xf5,0x7d,0x43,0xa0,0xb0,0x03,0x84,0x34,0x02,0x80,0x02,0x3c,0x02,0x80,0x18,0x3c, +0xea,0x7d,0x08,0x93,0x00,0x00,0x85,0xac,0xf6,0x7d,0x40,0xa0,0x02,0x80,0x02,0x3c, +0x00,0x00,0x86,0xac,0x02,0x80,0x0f,0x3c,0xf7,0x7d,0x40,0xa0,0x02,0x80,0x02,0x3c, +0x00,0x00,0x87,0xac,0x68,0x15,0xee,0x25,0x18,0x7e,0x40,0xa0,0xfd,0xff,0x02,0x24, +0xd5,0x4a,0xc2,0xa1,0x01,0x00,0x03,0x24,0x00,0x78,0x02,0x24,0xd4,0x4a,0xc3,0xa1, +0xd8,0x4a,0xc2,0xa5,0xff,0x07,0x03,0x24,0x0f,0x00,0x0d,0x31,0x02,0x00,0x02,0x24, +0xda,0x4a,0xc3,0xa5,0x00,0x00,0x88,0xac,0x00,0x00,0x89,0xac,0x00,0x00,0x8a,0xac, +0x00,0x00,0x8b,0xac,0x00,0x00,0x8c,0xac,0x17,0x00,0xa2,0x11,0x02,0x80,0x02,0x3c, +0xea,0x7d,0x02,0x93,0x01,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x05,0x00,0x43,0x10, +0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x2a,0x7e,0x40,0xa4,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x00,0x80,0x02,0x3c,0x68,0x15,0xe4,0x25,0x02,0xbc,0x42,0x34, +0x68,0x4b,0x82,0xac,0x15,0x15,0x03,0x3c,0x02,0x02,0x02,0x3c,0x07,0x07,0x63,0x34, +0x64,0x4b,0x82,0xac,0x02,0x80,0x02,0x3c,0x60,0x4b,0x83,0xac,0x2a,0x7e,0x40,0xa4, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xef,0x7d,0x44,0x90,0x06,0x00,0x03,0x24, +0x15,0x00,0x83,0x10,0x0b,0x00,0x02,0x24,0x0a,0x00,0x82,0x10,0x00,0xe0,0x02,0x3c, +0x68,0x15,0xe4,0x25,0x00,0xb2,0x42,0x34,0x00,0x1c,0x03,0x3c,0x68,0x4b,0x82,0xac, +0x00,0x1c,0x63,0x34,0x00,0x04,0x02,0x24,0x60,0x4b,0x83,0xac,0xd2,0x5a,0x00,0x08, +0x64,0x4b,0x82,0xac,0x00,0x80,0x02,0x3c,0x00,0xbc,0x42,0x34,0x15,0x15,0x03,0x3c, +0x68,0x4b,0xc2,0xad,0x07,0x07,0x63,0x34,0x03,0x03,0x02,0x3c,0x60,0x4b,0xc3,0xad, +0xd2,0x5a,0x00,0x08,0x64,0x4b,0xc2,0xad,0x00,0xc0,0x02,0x3c,0x00,0xb2,0x42,0x34, +0x1c,0x1c,0x03,0x3c,0x68,0x4b,0xc2,0xad,0x07,0x07,0x63,0x34,0x00,0x04,0x02,0x24, +0x60,0x4b,0xc3,0xad,0xd2,0x5a,0x00,0x08,0x64,0x4b,0xc2,0xad,0x25,0xb0,0x02,0x3c, +0x4d,0x00,0x44,0x34,0xff,0x00,0x03,0x3c,0xec,0x02,0x42,0x34,0x00,0x00,0x43,0xac, +0x00,0x00,0x80,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x44,0x6c,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x7f,0x00,0x02,0x3c,0xfd,0xbf,0x45,0x34, +0x80,0x04,0x03,0x3c,0x25,0x28,0xa3,0x00,0x00,0x08,0x04,0x3c,0x02,0x80,0x02,0x3c, +0x68,0x15,0x42,0x24,0x25,0x28,0xa4,0x00,0x41,0xb0,0x03,0x3c,0x00,0x00,0x65,0xac, +0x04,0x4b,0x45,0xac,0xfc,0x4a,0x45,0xac,0x08,0x00,0x63,0x34,0x86,0x00,0x05,0x24, +0x00,0x00,0x65,0xa4,0x08,0x4b,0x45,0xa4,0x00,0x4b,0x40,0xac,0x0a,0x4b,0x40,0xa4, +0x0c,0x4b,0x45,0xa4,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x30,0x5b,0x00,0x08,0x00,0x00,0x00,0x00, +0x42,0xb0,0x02,0x3c,0xa0,0xff,0x03,0x24,0x01,0x00,0x42,0x34,0xe8,0xff,0xbd,0x27, +0x21,0x20,0x00,0x00,0x01,0x00,0x05,0x24,0x00,0x01,0x06,0x24,0x00,0x00,0x43,0xa0, +0x10,0x00,0xbf,0xaf,0x51,0x0e,0x00,0x0c,0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f, +0x03,0x00,0x04,0x24,0x01,0x00,0x05,0x24,0x40,0x1f,0x06,0x24,0x51,0x0e,0x00,0x08, +0x18,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x02,0x80,0x10,0x3c, +0x68,0x15,0x10,0x26,0x76,0x4b,0x00,0xa2,0x14,0x00,0xb1,0xaf,0x18,0x00,0xbf,0xaf, +0x5e,0x5e,0x00,0x0c,0x21,0x88,0x00,0x02,0x48,0x01,0x02,0x24,0xec,0x63,0x02,0xae, +0xe8,0x63,0x02,0xae,0x21,0x10,0x00,0x02,0x1f,0x00,0x03,0x24,0xff,0xff,0x63,0x24, +0xd0,0x4c,0x40,0xa4,0xd2,0x4c,0x40,0xa4,0xd4,0x4c,0x40,0xa4,0xd6,0x4c,0x40,0xa4, +0xd8,0x4c,0x40,0xa4,0xda,0x4c,0x40,0xa4,0xdc,0x4c,0x40,0xa4,0xde,0x4c,0x40,0xa4, +0xe0,0x4c,0x40,0xa4,0xf5,0xff,0x61,0x04,0x24,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c, +0x10,0x00,0x03,0x24,0xb0,0x03,0x42,0x34,0x02,0x80,0x04,0x3c,0x8c,0x58,0x84,0x24, +0x00,0x00,0x43,0xac,0x21,0x28,0x00,0x00,0x58,0x45,0x00,0x0c,0x04,0x00,0x06,0x24, +0x2c,0x5f,0x00,0x0c,0x00,0x00,0x00,0x00,0xb4,0x5f,0x00,0x0c,0xec,0x65,0x20,0xae, +0xea,0x60,0x00,0x0c,0x00,0x00,0x00,0x00,0x0a,0x59,0x00,0x0c,0x00,0x00,0x00,0x00, +0x02,0x80,0x03,0x3c,0xee,0x7d,0x64,0x90,0x92,0x00,0x02,0x24,0x03,0x00,0x82,0x10, +0x00,0x00,0x00,0x00,0x49,0x61,0x00,0x0c,0x00,0x00,0x00,0x00,0x2f,0x61,0x00,0x0c, +0x00,0x00,0x00,0x00,0xce,0x5f,0x00,0x0c,0x00,0x00,0x00,0x00,0xb7,0x61,0x00,0x0c, +0x00,0x00,0x00,0x00,0x44,0x64,0x20,0xa6,0x9d,0x61,0x00,0x0c,0x46,0x64,0x20,0xa6, +0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x02,0x80,0x04,0x3c, +0x02,0x80,0x05,0x3c,0x58,0x7b,0x82,0x24,0x60,0x7b,0xa3,0x24,0x20,0x00,0xbd,0x27, +0x04,0x00,0x42,0xac,0x58,0x7b,0x82,0xac,0x60,0x7b,0xa3,0xac,0x08,0x00,0xe0,0x03, +0x04,0x00,0x63,0xac,0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x01,0x80,0x02,0x3c, +0x25,0xb0,0x10,0x3c,0x18,0x03,0x03,0x36,0x2c,0x6e,0x42,0x24,0x00,0x00,0x62,0xac, +0x14,0x00,0xbf,0xaf,0x98,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,0x12,0x5c,0x00,0x0c, +0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,0x3a,0x5e,0x00,0x0c, +0xe7,0x60,0x43,0xa0,0x09,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,0x32,0x41,0x00,0x0c, +0x00,0x00,0x00,0x00,0x43,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,0x44,0x00,0x03,0x36, +0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x34,0x00,0x00,0x62,0xa4, +0x11,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,0x32,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00, +0x06,0x5e,0x00,0x0c,0x00,0x00,0x00,0x00,0xcb,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00, +0x00,0x80,0x04,0x3c,0x14,0x29,0x84,0x24,0x23,0x5e,0x00,0x0c,0x01,0x00,0x05,0x24, +0x01,0x80,0x04,0x3c,0x0c,0x1d,0x84,0x24,0x23,0x5e,0x00,0x0c,0x02,0x00,0x05,0x24, +0x34,0x4f,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x80,0x04,0x3c,0x88,0x3a,0x84,0x24, +0x23,0x5e,0x00,0x0c,0x03,0x00,0x05,0x24,0x02,0x80,0x02,0x3c,0xf8,0x7d,0x43,0x90, +0x43,0x00,0x04,0x36,0x29,0x00,0x60,0x10,0xd8,0x00,0x10,0x36,0x07,0x00,0x02,0x24, +0x2b,0x00,0x62,0x10,0x25,0xb0,0x04,0x3c,0x10,0x02,0x86,0x34,0x43,0x00,0x85,0x34, +0x03,0x00,0x02,0x24,0x10,0x00,0x03,0x24,0x00,0x00,0xa2,0xa0,0xd8,0x00,0x84,0x34, +0x00,0x00,0xc3,0xa0,0x00,0x00,0x82,0x90,0x80,0xff,0x03,0x24,0x42,0xb0,0x05,0x3c, +0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xa0,0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34, +0x00,0x00,0x82,0x94,0x00,0x00,0x00,0x00,0xc0,0x00,0x42,0x34,0x00,0x00,0x82,0xa4, +0x00,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x34,0x00,0x00,0xa3,0xa0, +0x18,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24, +0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,0xfe,0x1f,0x00,0x0c,0x21,0x38,0x00,0x00, +0x30,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f, +0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x00,0x00,0x80,0xa0, +0x00,0x00,0x03,0x92,0x80,0xff,0x02,0x24,0x25,0x18,0x62,0x00,0x00,0x00,0x03,0xa2, +0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x82,0x94,0x42,0xb0,0x05,0x3c, +0xc0,0x00,0x42,0x34,0x00,0x00,0x82,0xa4,0x00,0x00,0xa3,0x90,0x00,0x00,0x00,0x00, +0x01,0x00,0x63,0x34,0x00,0x00,0xa3,0xa0,0x18,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00, +0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00, +0xfe,0x1f,0x00,0x0c,0x21,0x38,0x00,0x00,0x30,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00, +0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03, +0x18,0x00,0xbd,0x27,0x21,0x20,0x00,0x00,0x20,0xb0,0x06,0x3c,0xff,0xff,0x05,0x34, +0x21,0x18,0x86,0x00,0x04,0x00,0x84,0x24,0x2a,0x10,0xa4,0x00,0x00,0x00,0x60,0xac, +0xfb,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0xb8,0xff,0xbd,0x27,0x25,0xb0,0x04,0x3c,0x44,0x00,0xbf,0xaf,0x40,0x00,0xbe,0xaf, +0x3c,0x00,0xb7,0xaf,0x38,0x00,0xb6,0xaf,0x34,0x00,0xb5,0xaf,0x30,0x00,0xb4,0xaf, +0x2c,0x00,0xb3,0xaf,0x28,0x00,0xb2,0xaf,0x24,0x00,0xb1,0xaf,0x20,0x00,0xb0,0xaf, +0x0a,0x00,0x83,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x30, +0x0c,0x00,0x40,0x10,0x4c,0x87,0x02,0x3c,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00, +0x10,0x00,0x42,0x30,0x66,0x01,0x40,0x10,0x4c,0x87,0x02,0x3c,0x54,0x00,0x83,0x34, +0x50,0x00,0x82,0x34,0x00,0x00,0x45,0xac,0x00,0x00,0x65,0xa4,0x36,0x5c,0x00,0x08, +0x02,0x80,0x03,0x3c,0x54,0x00,0x85,0x34,0x00,0xe0,0x42,0x34,0x50,0x00,0x84,0x34, +0x12,0x01,0x03,0x24,0x00,0x00,0x82,0xac,0x00,0x00,0xa3,0xac,0x02,0x80,0x03,0x3c, +0x68,0x15,0x62,0x24,0xd5,0x4a,0x43,0x90,0xda,0x4a,0x45,0x94,0x25,0xb0,0x1e,0x3c, +0x1c,0x00,0xa3,0xa3,0x60,0x4b,0x43,0x8c,0x58,0x00,0xc6,0x37,0xff,0xff,0x04,0x24, +0x10,0x00,0xa3,0xaf,0x64,0x4b,0x43,0x8c,0x5c,0x00,0xc7,0x37,0x60,0x00,0xc8,0x37, +0x14,0x00,0xa3,0xaf,0x68,0x4b,0x42,0x8c,0x64,0x00,0xc9,0x37,0x8a,0x00,0xca,0x37, +0x18,0x00,0xa2,0xaf,0x24,0x10,0x02,0x3c,0x21,0x28,0xa2,0x00,0x4c,0x81,0x02,0x3c, +0x00,0xe0,0x42,0x34,0x00,0x00,0xc2,0xac,0x96,0x01,0x03,0x24,0x28,0x28,0x02,0x24, +0x00,0x00,0xe3,0xac,0x89,0x00,0xcb,0x37,0x00,0x00,0x04,0xad,0x8c,0x00,0xcc,0x37, +0x00,0x00,0x24,0xad,0x09,0x00,0x03,0x24,0x00,0x00,0x42,0xa5,0x10,0x10,0x02,0x24, +0x00,0x00,0x63,0xa1,0x8e,0x00,0xcd,0x37,0x00,0x00,0x82,0xa5,0x0a,0x0a,0x03,0x24, +0x13,0x00,0x02,0x24,0x90,0x00,0xce,0x37,0x00,0x00,0xa3,0xa5,0x00,0x00,0xc2,0xa1, +0x25,0xb0,0x02,0x3c,0x40,0x00,0x03,0x24,0x91,0x00,0x42,0x34,0x00,0x00,0x43,0xa0, +0x25,0xb0,0x03,0x3c,0x3a,0x01,0x02,0x24,0x92,0x00,0x63,0x34,0x00,0x00,0x62,0xa4, +0xb5,0x00,0xd1,0x37,0x21,0x00,0x03,0x24,0x00,0x00,0x23,0xa2,0x10,0x00,0xa2,0x8f, +0xa0,0x00,0xd2,0x37,0xa4,0x00,0xd3,0x37,0x00,0x00,0x42,0xae,0x14,0x00,0xa3,0x8f, +0xa8,0x00,0xd4,0x37,0xac,0x00,0xd5,0x37,0x00,0x00,0x63,0xae,0x18,0x00,0xa2,0x8f, +0x25,0xb0,0x03,0x3c,0xb0,0x00,0x63,0x34,0x00,0x00,0x82,0xae,0x21,0x10,0x02,0x3c, +0xff,0x77,0x42,0x34,0x00,0x00,0xa2,0xae,0x25,0xb0,0x02,0x3c,0xd8,0x00,0x42,0x34, +0x00,0x00,0x65,0xac,0x00,0x00,0x40,0xa0,0x1c,0x00,0xa2,0x93,0x25,0xb0,0x03,0x3c, +0xb4,0x00,0x63,0x34,0x00,0x00,0x62,0xa0,0x25,0xb0,0x03,0x3c,0x04,0x00,0x02,0x24, +0xb6,0x00,0x63,0x34,0x00,0x00,0x62,0xa0,0x25,0xb0,0x03,0x3c,0x0f,0x00,0x02,0x24, +0xba,0x00,0x63,0x34,0xb9,0x00,0xdf,0x37,0x00,0x00,0xe4,0xa3,0x00,0x00,0x62,0xa4, +0x25,0xb0,0x02,0x3c,0x1a,0x01,0x42,0x34,0x16,0x01,0xd0,0x37,0x18,0x01,0xcf,0x37, +0x00,0x00,0x00,0xa6,0x25,0xb0,0x03,0x3c,0x00,0x00,0xe0,0xa5,0x00,0x00,0x40,0xa4, +0xff,0xff,0x02,0x3c,0xff,0x0f,0x42,0x34,0xdc,0x00,0x63,0x34,0x00,0x00,0x62,0xac, +0x2f,0x00,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x32,0x32,0x63,0x34,0xd0,0x01,0x42,0x34, +0x00,0x00,0x43,0xac,0x5e,0x00,0x02,0x3c,0x25,0xb0,0x03,0x3c,0x32,0x43,0x42,0x34, +0xd4,0x01,0x63,0x34,0x00,0x00,0x62,0xac,0x08,0x00,0x03,0x3c,0x25,0xb0,0x02,0x3c, +0x30,0xa5,0x63,0x34,0xd8,0x01,0x42,0x34,0x00,0x00,0x43,0xac,0xdc,0x01,0xc4,0x37, +0x02,0x80,0x03,0x3c,0x49,0xa5,0x02,0x34,0xee,0x7d,0x6d,0x90,0x00,0x00,0x82,0xac, +0xc2,0x00,0x02,0x3c,0x1a,0x06,0x03,0x24,0x51,0x10,0x42,0x34,0xe0,0x01,0xc5,0x37, +0xf4,0x01,0xc6,0x37,0xf8,0x01,0xc7,0x37,0x07,0x07,0x04,0x24,0x00,0x00,0xa3,0xa4, +0x00,0x02,0xc8,0x37,0x00,0x00,0xc4,0xa4,0x26,0x00,0x03,0x24,0x00,0x00,0xe2,0xac, +0x03,0x02,0xc9,0x37,0x04,0x00,0x02,0x24,0x00,0x00,0x03,0xa5,0x36,0x02,0xca,0x37, +0x00,0x00,0x22,0xa1,0xc0,0x01,0x03,0x24,0x0c,0x00,0x02,0x24,0x34,0x02,0xcb,0x37, +0x00,0x00,0x42,0xa1,0x37,0x02,0xcc,0x37,0x00,0x00,0x63,0xa5,0x03,0x00,0x02,0x24, +0x22,0x00,0x03,0x24,0x00,0x00,0x82,0xa1,0xd6,0x00,0xa3,0x11,0x1b,0x1b,0x02,0x3c, +0x13,0x13,0x02,0x3c,0x13,0x13,0x42,0x34,0x60,0x01,0xc3,0x37,0x64,0x01,0xc4,0x37, +0x68,0x01,0xc5,0x37,0x7c,0x01,0xca,0x37,0x6c,0x01,0xc6,0x37,0x70,0x01,0xc7,0x37, +0x74,0x01,0xc8,0x37,0x78,0x01,0xc9,0x37,0x00,0x00,0x62,0xac,0x00,0x00,0x82,0xac, +0x02,0x80,0x03,0x3c,0x00,0x00,0xa2,0xac,0x00,0x00,0xc2,0xac,0x00,0x00,0xe2,0xac, +0x00,0x00,0x02,0xad,0x00,0x00,0x22,0xad,0x00,0x00,0x42,0xad,0xee,0x7d,0x65,0x90, +0x25,0xb0,0x0c,0x3c,0x01,0x70,0x03,0x3c,0x80,0x01,0x82,0x35,0x08,0x5f,0x63,0x34, +0x22,0x00,0x04,0x24,0x00,0x00,0x43,0xac,0xb5,0x00,0xa4,0x10,0x0f,0x1f,0x02,0x3c, +0x92,0x00,0x02,0x24,0xb2,0x00,0xa2,0x10,0x0f,0x1f,0x02,0x3c,0x0f,0x10,0x02,0x3c, +0x00,0xf0,0x51,0x34,0xf7,0x01,0x92,0x35,0x15,0xf0,0x4d,0x34,0x77,0x00,0x0e,0x24, +0x84,0x01,0x87,0x35,0x88,0x01,0x88,0x35,0x10,0xf0,0x44,0x34,0x8c,0x01,0x85,0x35, +0x05,0xf0,0x42,0x34,0x00,0x00,0xed,0xac,0x90,0x01,0x83,0x35,0x00,0x00,0x04,0xad, +0x94,0x01,0x86,0x35,0x00,0x00,0xa2,0xac,0xf5,0x0f,0x02,0x24,0x00,0x00,0x71,0xac, +0x25,0xb0,0x05,0x3c,0x00,0x00,0xc2,0xac,0x98,0x01,0x89,0x35,0x9c,0x01,0x8a,0x35, +0xf0,0x0f,0x03,0x24,0x0d,0x00,0x02,0x24,0x00,0x00,0x23,0xad,0xa0,0x01,0x8b,0x35, +0x00,0x00,0x42,0xad,0xa7,0x01,0xb7,0x34,0xf6,0x01,0x8c,0x35,0xff,0xff,0x02,0x24, +0x00,0x00,0x6d,0xad,0x00,0x00,0x8e,0xa1,0x00,0x00,0x4e,0xa2,0x00,0x00,0xe2,0xa2, +0x25,0xb0,0x02,0x3c,0xa8,0x01,0xb6,0x34,0xff,0xff,0x09,0x24,0xac,0x01,0x42,0x34, +0x00,0x00,0xc9,0xae,0x03,0x04,0x04,0x3c,0x00,0x00,0x49,0xac,0x07,0x08,0x03,0x3c, +0x25,0xb0,0x02,0x3c,0x01,0x02,0x84,0x34,0x05,0x06,0x63,0x34,0xb4,0x01,0xb1,0x34, +0xb8,0x01,0xb2,0x34,0xbc,0x01,0xb3,0x34,0xb0,0x01,0x42,0x34,0x00,0x00,0x44,0xac, +0x00,0x00,0x23,0xae,0x25,0xb0,0x02,0x3c,0x00,0x00,0x44,0xae,0x00,0x00,0x63,0xae, +0x25,0xb0,0x03,0x3c,0x0c,0x00,0x06,0x24,0xc0,0x01,0xb4,0x34,0xc1,0x01,0xb5,0x34, +0x0d,0x00,0x08,0x24,0xc2,0x01,0x63,0x34,0xc3,0x01,0x42,0x34,0x00,0x00,0x86,0xa2, +0xc4,0x01,0xab,0x34,0x00,0x00,0xa6,0xa2,0xc5,0x01,0xac,0x34,0x00,0x00,0x66,0xa0, +0x0e,0x00,0x07,0x24,0x00,0x00,0x48,0xa0,0xc6,0x01,0xaa,0x34,0xc7,0x01,0xad,0x34, +0x0f,0x00,0x02,0x24,0x00,0x00,0x68,0xa1,0x00,0x00,0x87,0xa1,0x00,0x00,0x47,0xa1, +0x00,0x00,0xa2,0xa1,0x57,0x01,0x02,0x3c,0x48,0x00,0xbf,0x34,0x46,0x00,0xae,0x34, +0x0e,0xe2,0x42,0x34,0x00,0x00,0xc0,0xa5,0x4c,0x00,0xbe,0x34,0x00,0x00,0xe2,0xaf, +0x4d,0x00,0xb9,0x34,0x80,0xff,0x02,0x24,0x00,0x00,0xc0,0xa3,0x00,0x00,0x22,0xa3, +0x25,0xb0,0x02,0x3c,0xbc,0x00,0x03,0x24,0x40,0x00,0x42,0x34,0x00,0x00,0x43,0xa4, +0x25,0xb0,0x03,0x3c,0x64,0x03,0xb8,0x34,0xfc,0x37,0x02,0x24,0x40,0x00,0x63,0x34, +0x00,0x00,0x00,0xa3,0xd8,0x00,0xa7,0x34,0x00,0x00,0x62,0xa4,0x00,0x00,0xe3,0x90, +0x80,0xff,0x02,0x24,0x2a,0xb0,0x04,0x3c,0x25,0x18,0x62,0x00,0x00,0x00,0xe3,0xa0, +0x26,0xb0,0x06,0x3c,0x30,0x00,0x89,0x34,0x20,0x20,0x02,0x24,0x38,0x00,0x84,0x34, +0x40,0x00,0x03,0x24,0x00,0x00,0x82,0xa4,0x79,0x00,0xc8,0x34,0x00,0x00,0x23,0xa1, +0x94,0x00,0xaa,0x34,0x16,0x00,0x02,0x24,0x64,0x00,0x03,0x24,0x00,0x00,0x02,0xa1, +0x7c,0x00,0xd2,0x34,0x00,0x00,0x43,0xa5,0x98,0x00,0xab,0x34,0x7a,0x00,0xc6,0x34, +0x22,0x00,0x02,0x24,0x04,0x00,0x03,0x24,0x00,0x00,0x62,0xa5,0x9c,0x00,0xac,0x34, +0x00,0x00,0xc3,0xa0,0x20,0x0c,0x02,0x24,0x0a,0x00,0x03,0x24,0x00,0x00,0x42,0xa6, +0x9a,0x00,0xad,0x34,0x00,0x00,0x83,0xa1,0x96,0x00,0xae,0x34,0xff,0x03,0x02,0x24, +0x02,0x00,0x03,0x24,0x00,0x00,0xa2,0xa5,0x00,0x00,0xc3,0xa5,0x25,0xb0,0x03,0x3c, +0x20,0x00,0x02,0x24,0xb7,0x00,0x63,0x34,0x00,0x00,0x62,0xa0,0x89,0x00,0xb1,0x34, +0x09,0x00,0x03,0x24,0x00,0x00,0x23,0xa2,0x44,0x00,0xa5,0x34,0x00,0x00,0xa3,0x94, +0x02,0x80,0x02,0x3c,0x68,0x15,0x46,0x24,0xff,0xfd,0x02,0x24,0x24,0x18,0x62,0x00, +0x00,0x00,0xa3,0xa4,0x00,0x00,0xa2,0x94,0xd5,0x4a,0xc4,0x90,0x04,0x02,0x03,0x24, +0x00,0x02,0x42,0x34,0x00,0x00,0xa2,0xa4,0x29,0xb0,0x02,0x3c,0x40,0x00,0x42,0x34, +0x00,0x00,0x43,0xa4,0x3a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x44,0x00,0xbf,0x8f, +0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f,0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f, +0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f, +0x20,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27, +0x54,0x00,0x85,0x34,0x00,0xe0,0x42,0x34,0x50,0x00,0x84,0x34,0x12,0x01,0x03,0x24, +0x00,0x00,0x82,0xac,0x00,0x00,0xa3,0xa4,0x36,0x5c,0x00,0x08,0x02,0x80,0x03,0x3c, +0x00,0xf0,0x51,0x34,0xf7,0x01,0x92,0x35,0x15,0xf0,0x4d,0x34,0xea,0x5c,0x00,0x08, +0xff,0xff,0x0e,0x24,0xc8,0x5c,0x00,0x08,0x1b,0x1b,0x42,0x34,0x25,0xb0,0x03,0x3c, +0x25,0xb0,0x08,0x3c,0xfc,0x37,0x02,0x24,0x40,0x00,0x63,0x34,0x02,0x80,0x04,0x3c, +0x00,0x00,0x62,0xa4,0x94,0x8d,0x84,0x24,0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35, +0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00, +0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30,0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac,0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24, +0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c, +0x02,0x80,0x02,0x3c,0x8c,0x87,0x44,0x24,0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35, +0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00, +0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30,0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac,0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24, +0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,0x02,0x80,0x05,0x3c,0x04,0x78,0x42,0x24, +0x02,0x80,0x03,0x3c,0x2c,0x7e,0xa2,0xac,0x00,0x80,0x02,0x3c,0xcc,0x7e,0x60,0xac, +0x2c,0x7e,0xa4,0x24,0x02,0x80,0x03,0x3c,0xc8,0x06,0x42,0x24,0xd0,0x7e,0x60,0xa4, +0x08,0x00,0x82,0xac,0x02,0x80,0x03,0x3c,0x00,0x80,0x02,0x3c,0xd2,0x7e,0x60,0xa4, +0x02,0x80,0x06,0x3c,0xa4,0x0a,0x42,0x24,0x00,0x80,0x03,0x3c,0xd4,0x7e,0xc7,0x24, +0x14,0x00,0x82,0xac,0x54,0x08,0x63,0x24,0x02,0x80,0x02,0x3c,0xd4,0x7e,0xc0,0xac, +0x10,0x00,0x83,0xac,0x04,0x00,0xe0,0xac,0xdc,0x7e,0x40,0xa0,0x00,0x80,0x02,0x3c, +0x1c,0x1c,0x42,0x24,0x3c,0x00,0x82,0xac,0x00,0x80,0x03,0x3c,0x00,0x80,0x02,0x3c, +0x38,0x0d,0x63,0x24,0xc8,0x10,0x42,0x24,0x1c,0x00,0x83,0xac,0x20,0x00,0x82,0xac, +0x00,0x80,0x03,0x3c,0x00,0x80,0x02,0x3c,0x54,0x14,0x63,0x24,0x38,0x18,0x42,0x24, +0x24,0x00,0x83,0xac,0x28,0x00,0x82,0xac,0x00,0x80,0x03,0x3c,0x01,0x80,0x02,0x3c, +0x10,0x22,0x63,0x24,0xd0,0x04,0x42,0x24,0x2c,0x00,0x83,0xac,0x30,0x00,0x82,0xac, +0x00,0x80,0x03,0x3c,0x00,0x80,0x02,0x3c,0x78,0x1c,0x63,0x24,0x00,0x03,0x42,0x24, +0x38,0x00,0x83,0xac,0x08,0x00,0xe0,0x03,0x4c,0x00,0x82,0xac,0x25,0xb0,0x02,0x3c, +0x08,0x00,0x42,0x34,0x00,0x00,0x43,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x02,0x80,0x0e,0x3c,0x02,0x80,0x08,0x3c,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c, +0xf8,0x03,0x4d,0x24,0x00,0x14,0x6c,0x24,0x01,0x00,0x07,0x24,0x00,0x00,0xcb,0x25, +0xff,0xff,0x0a,0x24,0x00,0x04,0x09,0x25,0x80,0x1a,0x07,0x00,0x21,0x10,0x6b,0x00, +0x00,0x00,0x42,0xac,0x90,0x00,0x4a,0xac,0x00,0x04,0x04,0x8d,0x01,0x00,0xe7,0x24, +0x08,0x00,0x45,0x24,0x21,0x18,0x6d,0x00,0x05,0x00,0xe6,0x28,0x04,0x00,0x82,0xac, +0x00,0x00,0x44,0xac,0x04,0x00,0x49,0xac,0x00,0x04,0x02,0xad,0x8c,0x00,0x40,0xac, +0x6c,0x00,0xa3,0xac,0xf0,0xff,0xc0,0x14,0x68,0x00,0xac,0xac,0x08,0x00,0xe0,0x03, +0x00,0x00,0xc9,0xad,0x05,0x00,0xa2,0x2c,0x13,0x00,0x40,0x10,0xff,0xff,0x07,0x24, +0x02,0x80,0x02,0x3c,0x80,0x1a,0x05,0x00,0x00,0x00,0x42,0x24,0x0e,0x00,0xa0,0x10, +0x21,0x30,0x62,0x00,0x90,0x00,0xc3,0x8c,0xff,0xff,0x02,0x24,0x0a,0x00,0x62,0x14, +0x00,0x00,0x00,0x00,0x8c,0x00,0xc2,0x8c,0x00,0x00,0x00,0x00,0x06,0x00,0x40,0x14, +0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x24,0x88,0x00,0xc4,0xac,0x8c,0x00,0xc2,0xac, +0x90,0x00,0xc5,0xac,0x21,0x38,0xa0,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00, +0x25,0xb0,0x04,0x3c,0x01,0x80,0x02,0x3c,0x18,0x03,0x85,0x34,0xe8,0x78,0x42,0x24, +0xe0,0xff,0xbd,0x27,0x00,0x00,0xa2,0xac,0x1b,0x00,0x86,0x34,0xdb,0xff,0x03,0x24, +0x27,0x00,0x84,0x34,0x07,0x00,0x02,0x24,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf, +0x00,0x00,0x83,0xa0,0x18,0x00,0xbf,0xaf,0x00,0x00,0xc2,0xa0,0x01,0x00,0x11,0x24, +0x21,0x80,0x00,0x00,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x02,0x01,0x00,0x02,0x26, +0xff,0x00,0x50,0x30,0x2b,0x18,0x30,0x02,0xfa,0xff,0x60,0x10,0x00,0x00,0x00,0x00, +0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f, +0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00, +0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,0x40,0x10,0x03,0x3c,0xff,0xff,0x44,0x30, +0x25,0xc0,0x83,0x00,0xf4,0x64,0x58,0xac,0x40,0x00,0x18,0x27,0x00,0x65,0x58,0xac, +0x40,0x00,0x18,0x27,0x0c,0x65,0x58,0xac,0x40,0x00,0x18,0x27,0x18,0x65,0x58,0xac, +0x40,0x00,0x18,0x27,0xe0,0xff,0xbd,0x27,0x24,0x65,0x58,0xac,0x40,0x00,0x18,0x27, +0x1c,0x00,0xb7,0xaf,0x18,0x00,0xb6,0xaf,0x14,0x00,0xb5,0xaf,0x10,0x00,0xb4,0xaf, +0x0c,0x00,0xb3,0xaf,0x08,0x00,0xb2,0xaf,0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf, +0x30,0x65,0x58,0xac,0x00,0x65,0x45,0x8c,0x0c,0x65,0x46,0x8c,0x18,0x65,0x47,0x8c, +0x24,0x65,0x48,0x8c,0x30,0x65,0x49,0x8c,0x40,0x00,0x18,0x27,0x3c,0x65,0x58,0xac, +0x21,0x50,0x00,0x03,0x25,0x20,0x83,0x00,0x40,0x00,0x18,0x27,0x20,0x10,0x03,0x3c, +0xf0,0x64,0x44,0xac,0xfc,0x64,0x45,0xac,0x08,0x65,0x46,0xac,0x14,0x65,0x47,0xac, +0x20,0x65,0x48,0xac,0x2c,0x65,0x49,0xac,0x25,0xb0,0x06,0x3c,0x88,0x64,0x43,0xac, +0x84,0x64,0x43,0xac,0x94,0x64,0x43,0xac,0x90,0x64,0x43,0xac,0xa0,0x64,0x43,0xac, +0x9c,0x64,0x43,0xac,0xac,0x64,0x43,0xac,0xa8,0x64,0x43,0xac,0x48,0x65,0x58,0xac, +0x00,0x02,0x18,0x27,0x38,0x65,0x4a,0xac,0x60,0x65,0x58,0xac,0xb8,0x64,0x43,0xac, +0xb4,0x64,0x43,0xac,0xc4,0x64,0x43,0xac,0xc0,0x64,0x43,0xac,0xd0,0x64,0x43,0xac, +0xcc,0x64,0x43,0xac,0xac,0x00,0xc4,0x34,0xb0,0x00,0xc5,0x34,0x00,0x00,0x92,0x8c, +0x48,0x65,0x50,0x8c,0x00,0x00,0xb3,0x8c,0x21,0x10,0x04,0x3c,0x23,0x10,0x09,0x3c, +0x22,0x10,0x0c,0x3c,0x02,0x80,0x14,0x3c,0x02,0x80,0x15,0x3c,0x02,0x80,0x16,0x3c, +0x02,0x80,0x17,0x3c,0x24,0x10,0x05,0x3c,0x21,0x88,0x00,0x03,0x68,0x7b,0x87,0x26, +0x00,0x04,0x18,0x27,0x70,0x7b,0xa8,0x26,0x78,0x7b,0xca,0x26,0x80,0x7b,0xeb,0x26, +0x00,0x04,0x2d,0x35,0x00,0x40,0x8e,0x34,0x00,0x80,0x8f,0x35,0x00,0x01,0xc6,0x34, +0x44,0x65,0x50,0xac,0x5c,0x65,0x51,0xac,0xc4,0x65,0x4d,0xac,0x88,0x65,0x52,0xac, +0x94,0x65,0x4e,0xac,0xb8,0x65,0x4f,0xac,0xac,0x65,0x53,0xac,0x00,0x00,0xc5,0xac, +0xa8,0x65,0x45,0xac,0xc8,0x65,0x43,0xac,0xd4,0x65,0x58,0xac,0xdc,0x64,0x43,0xac, +0xd8,0x64,0x43,0xac,0x66,0x65,0x40,0xa4,0x65,0x65,0x40,0xa0,0x64,0x65,0x40,0xa0, +0xbc,0x65,0x49,0xac,0xc0,0x65,0x49,0xac,0x80,0x65,0x44,0xac,0x84,0x65,0x44,0xac, +0x8c,0x65,0x44,0xac,0x90,0x65,0x44,0xac,0xb0,0x65,0x4c,0xac,0xb4,0x65,0x4c,0xac, +0xa4,0x65,0x45,0xac,0xcc,0x65,0x43,0xac,0xd8,0x65,0x58,0xac,0x04,0x00,0x08,0xad, +0x68,0x7b,0x87,0xae,0x04,0x00,0x4a,0xad,0x70,0x7b,0xa8,0xae,0x04,0x00,0x6b,0xad, +0x78,0x7b,0xca,0xae,0x80,0x7b,0xeb,0xae,0x04,0x00,0xe7,0xac,0x02,0x80,0x02,0x3c, +0x00,0x14,0x43,0x24,0x21,0x20,0xe0,0x00,0x03,0x00,0x06,0x24,0x21,0x10,0x80,0x00, +0xff,0xff,0xc6,0x24,0x08,0x00,0x78,0xac,0x00,0x00,0x63,0xac,0x10,0x00,0x60,0xac, +0x00,0x00,0x67,0xac,0x21,0x20,0x60,0x00,0x04,0x00,0x62,0xac,0x00,0x00,0x43,0xac, +0x00,0x01,0x18,0x27,0xf5,0xff,0xc1,0x04,0x18,0x00,0x63,0x24,0x02,0x80,0x02,0x3c, +0x70,0x7b,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x04,0x00,0x28,0x8d, +0x60,0x14,0x4b,0x24,0x04,0x00,0xe4,0xac,0x00,0x14,0x6a,0x24,0x01,0x00,0x07,0x24, +0x21,0x28,0x00,0x00,0x07,0x00,0x06,0x24,0x21,0x20,0xab,0x00,0x21,0x10,0xaa,0x00, +0xff,0xff,0xc6,0x24,0x68,0x00,0x58,0xac,0x70,0x00,0x47,0xac,0x18,0x00,0xa5,0x24, +0x00,0x00,0x89,0xac,0x04,0x00,0x88,0xac,0x00,0x00,0x04,0xad,0x00,0x01,0x18,0x27, +0xf5,0xff,0xc1,0x04,0x21,0x40,0x80,0x00,0x02,0x80,0x02,0x3c,0x78,0x7b,0x4a,0x24, +0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x04,0x00,0x45,0x8d,0x20,0x15,0x4b,0x24, +0x04,0x00,0x24,0xad,0x02,0x00,0x07,0x24,0x00,0x14,0x69,0x24,0x21,0x20,0x00,0x00, +0x01,0x00,0x06,0x24,0x21,0x40,0x8b,0x00,0x21,0x10,0x89,0x00,0xff,0xff,0xc6,0x24, +0x28,0x01,0x58,0xac,0x30,0x01,0x47,0xac,0x18,0x00,0x84,0x24,0x00,0x00,0x0a,0xad, +0x04,0x00,0x05,0xad,0x00,0x00,0xa8,0xac,0x00,0x02,0x18,0x27,0xf5,0xff,0xc1,0x04, +0x21,0x28,0x00,0x01,0x02,0x80,0x05,0x3c,0x80,0x7b,0xa5,0x24,0x04,0x00,0xa6,0x8c, +0x1c,0x00,0xb7,0x8f,0x18,0x00,0xb6,0x8f,0x14,0x00,0xb5,0x8f,0x10,0x00,0xb4,0x8f, +0x0c,0x00,0xb3,0x8f,0x08,0x00,0xb2,0x8f,0x04,0x00,0xb1,0x8f,0x00,0x00,0xb0,0x8f, +0x02,0x80,0x07,0x3c,0x02,0x80,0x03,0x3c,0x50,0x15,0xe4,0x24,0x00,0x14,0x63,0x24, +0x03,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x58,0x01,0x78,0xac,0x04,0x00,0x48,0xad, +0x04,0x00,0xa4,0xac,0x60,0x01,0x62,0xac,0x50,0x15,0xe5,0xac,0x04,0x00,0x86,0xac, +0x08,0x00,0xe0,0x03,0x00,0x00,0xc4,0xac,0xc8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c, +0x02,0x80,0x03,0x3c,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x70,0x9e,0x74,0x24, +0xe4,0x9e,0x53,0x24,0x02,0x80,0x03,0x3c,0xff,0xff,0x02,0x3c,0x2c,0x00,0xb5,0xaf, +0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x30,0x00,0xbf,0xaf, +0xff,0x1f,0x55,0x34,0x68,0x15,0x70,0x24,0x21,0x88,0x00,0x00,0x02,0x80,0x12,0x3c, +0xaa,0x4f,0x00,0x0c,0x21,0x20,0x20,0x02,0x84,0x51,0x02,0x8e,0x6c,0x00,0x86,0x8e, +0x50,0x9e,0x43,0x26,0x6c,0x00,0x64,0x8e,0x1b,0x00,0x65,0x90,0x24,0x10,0x55,0x00, +0x00,0x20,0x42,0x34,0xff,0xf1,0x03,0x24,0x21,0x20,0x86,0x00,0x24,0x10,0x43,0x00, +0x00,0x29,0x05,0x00,0x42,0x20,0x04,0x00,0x00,0x02,0x42,0x34,0x50,0x51,0x04,0xae, +0x74,0x51,0x05,0xae,0x84,0x51,0x02,0xae,0x78,0x51,0x05,0xae,0x21,0x30,0x00,0x00, +0x21,0x10,0x06,0x02,0x01,0x00,0xc6,0x24,0x1d,0x00,0xc3,0x28,0xa5,0x51,0x40,0xa0, +0x88,0x51,0x40,0xa0,0xfa,0xff,0x60,0x14,0xc2,0x51,0x40,0xa0,0x01,0x00,0x31,0x26, +0x20,0x00,0x22,0x2a,0xe0,0x51,0x00,0xae,0xe1,0xff,0x40,0x14,0x94,0x00,0x10,0x26, +0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x68,0x15,0x4b,0x24,0x02,0x80,0x02,0x3c, +0xe4,0x9e,0x6f,0x24,0x70,0x9e,0x4d,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c, +0x50,0x9e,0x6e,0x24,0x30,0x9e,0x4c,0x24,0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00, +0x21,0x20,0x6d,0x00,0x21,0x10,0x6f,0x00,0x21,0x28,0x2e,0x02,0x21,0x30,0x2c,0x02, +0x00,0x00,0x88,0x8c,0x00,0x00,0xa9,0x90,0x00,0x00,0xc7,0x90,0x00,0x00,0x4a,0x8c, +0x21,0x10,0x2b,0x02,0x01,0x00,0x31,0x26,0x21,0x18,0x6b,0x00,0x1d,0x00,0x24,0x2a, +0xec,0x44,0x68,0xac,0xca,0x44,0x47,0xa0,0x60,0x45,0x6a,0xac,0xef,0xff,0x80,0x14, +0x90,0x44,0x49,0xa0,0x02,0x80,0x02,0x3c,0x68,0x15,0x4a,0x24,0x02,0x80,0x03,0x3c, +0x02,0x80,0x02,0x3c,0x0c,0x9d,0x6b,0x24,0xac,0x9b,0x4c,0x24,0x21,0x88,0x00,0x00, +0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01,0x21,0x38,0x2b,0x01, +0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01, +0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc5,0x43,0x64,0xa0,0xf8,0xff,0x40,0x14, +0x34,0x43,0x65,0xa0,0x21,0x10,0x2c,0x02,0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90, +0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x73,0x44,0x64,0xa0, +0x56,0x44,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25,0x52,0x00,0x02,0x24, +0x10,0x00,0xa2,0xa3,0x41,0x00,0x03,0x24,0x4d,0x00,0x02,0x24,0x02,0x80,0x07,0x3c, +0xdc,0xa4,0xe7,0x24,0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0xe8,0x03,0x03,0x24, +0x01,0x00,0x02,0x24,0x00,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00, +0x60,0x3e,0xc6,0x24,0x0c,0x00,0xe3,0xac,0x14,0x00,0xe2,0xa0,0x88,0x0e,0x00,0x0c, +0x13,0x00,0xa0,0xa3,0x30,0x00,0xbf,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f, +0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f, +0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c, +0x42,0x00,0x03,0x24,0x10,0x00,0xa3,0xa3,0x55,0x60,0x40,0xa0,0x4e,0x00,0x03,0x24, +0x43,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,0x14,0xa5,0xe7,0x24,0x11,0x00,0xa2,0xa3, +0x12,0x00,0xa3,0xa3,0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,0x00,0x80,0x06,0x3c, +0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0xec,0x4f,0xc6,0x24,0x0c,0x00,0xe2,0xac, +0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf,0x88,0x0e,0x00,0x0c,0x13,0x00,0xa0,0xa3, +0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27, +0x48,0xfd,0xbd,0x27,0xb4,0x02,0xb3,0xaf,0x02,0x80,0x02,0x3c,0x02,0x80,0x13,0x3c, +0xf0,0x9f,0x46,0x24,0x68,0x15,0x63,0x26,0xb0,0x02,0xb2,0xaf,0xac,0x02,0xb1,0xaf, +0xa8,0x02,0xb0,0xaf,0x03,0x40,0x60,0xa0,0x21,0x38,0xa0,0x03,0x90,0x00,0xc8,0x24, +0x00,0x00,0xc2,0x8c,0x04,0x00,0xc3,0x8c,0x08,0x00,0xc4,0x8c,0x0c,0x00,0xc5,0x8c, +0x10,0x00,0xc6,0x24,0x00,0x00,0xe2,0xac,0x04,0x00,0xe3,0xac,0x08,0x00,0xe4,0xac, +0x0c,0x00,0xe5,0xac,0xf6,0xff,0xc8,0x14,0x10,0x00,0xe7,0x24,0x00,0x00,0xc3,0x8c, +0x02,0x80,0x02,0x3c,0x84,0xa0,0x58,0x24,0x00,0x00,0xe3,0xac,0x98,0x00,0xb9,0x27, +0x00,0x01,0x12,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x09,0x00,0x04,0x93, +0x0d,0x00,0x05,0x93,0x00,0x00,0x11,0x93,0x02,0x00,0x0d,0x93,0x04,0x00,0x10,0x93, +0x06,0x00,0x0c,0x93,0x08,0x00,0x0f,0x93,0x0a,0x00,0x07,0x93,0x0c,0x00,0x0e,0x93, +0x0e,0x00,0x06,0x93,0x03,0x00,0x08,0x93,0x07,0x00,0x09,0x93,0x0b,0x00,0x0a,0x93, +0x0f,0x00,0x0b,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0x22,0x04,0x00, +0x00,0x2a,0x05,0x00,0x25,0x10,0x51,0x00,0x25,0x18,0x70,0x00,0x25,0x20,0x8f,0x00, +0x25,0x28,0xae,0x00,0x00,0x6c,0x0d,0x00,0x00,0x64,0x0c,0x00,0x00,0x3c,0x07,0x00, +0x00,0x34,0x06,0x00,0x25,0x68,0xa2,0x01,0x25,0x60,0x83,0x01,0x25,0x38,0xe4,0x00, +0x25,0x30,0xc5,0x00,0x00,0x46,0x08,0x00,0x00,0x4e,0x09,0x00,0x00,0x56,0x0a,0x00, +0x00,0x5e,0x0b,0x00,0x25,0x40,0x0d,0x01,0x25,0x48,0x2c,0x01,0x25,0x50,0x47,0x01, +0x25,0x58,0x66,0x01,0x10,0x00,0x18,0x27,0x00,0x00,0x28,0xaf,0x04,0x00,0x29,0xaf, +0x08,0x00,0x2a,0xaf,0x0c,0x00,0x2b,0xaf,0xd2,0xff,0x12,0x17,0x10,0x00,0x39,0x27, +0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x00,0x00,0x09,0x93,0x02,0x00,0x04,0x93, +0x04,0x00,0x08,0x93,0x06,0x00,0x05,0x93,0x07,0x00,0x06,0x93,0x03,0x00,0x07,0x93, +0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x25,0x10,0x49,0x00,0x25,0x18,0x68,0x00, +0x00,0x24,0x04,0x00,0x00,0x2c,0x05,0x00,0x25,0x20,0x82,0x00,0x25,0x28,0xa3,0x00, +0x00,0x3e,0x07,0x00,0x00,0x36,0x06,0x00,0x02,0x80,0x02,0x3c,0x25,0x38,0xe4,0x00, +0x25,0x30,0xc5,0x00,0x8c,0xa1,0x58,0x24,0x04,0x00,0x26,0xaf,0x00,0x00,0x27,0xaf, +0x00,0x01,0x12,0x27,0xa0,0x01,0xb9,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93, +0x09,0x00,0x04,0x93,0x0d,0x00,0x05,0x93,0x00,0x00,0x11,0x93,0x02,0x00,0x0d,0x93, +0x04,0x00,0x10,0x93,0x06,0x00,0x0c,0x93,0x08,0x00,0x0f,0x93,0x0a,0x00,0x07,0x93, +0x0c,0x00,0x0e,0x93,0x0e,0x00,0x06,0x93,0x03,0x00,0x08,0x93,0x07,0x00,0x09,0x93, +0x0b,0x00,0x0a,0x93,0x0f,0x00,0x0b,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00, +0x00,0x22,0x04,0x00,0x00,0x2a,0x05,0x00,0x25,0x10,0x51,0x00,0x25,0x18,0x70,0x00, +0x25,0x20,0x8f,0x00,0x25,0x28,0xae,0x00,0x00,0x6c,0x0d,0x00,0x00,0x64,0x0c,0x00, +0x00,0x3c,0x07,0x00,0x00,0x34,0x06,0x00,0x25,0x68,0xa2,0x01,0x25,0x60,0x83,0x01, +0x25,0x38,0xe4,0x00,0x25,0x30,0xc5,0x00,0x00,0x46,0x08,0x00,0x00,0x4e,0x09,0x00, +0x00,0x56,0x0a,0x00,0x00,0x5e,0x0b,0x00,0x25,0x40,0x0d,0x01,0x25,0x48,0x2c,0x01, +0x25,0x50,0x47,0x01,0x25,0x58,0x66,0x01,0x10,0x00,0x18,0x27,0x00,0x00,0x28,0xaf, +0x04,0x00,0x29,0xaf,0x08,0x00,0x2a,0xaf,0x0c,0x00,0x2b,0xaf,0xd2,0xff,0x12,0x17, +0x10,0x00,0x39,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x00,0x00,0x09,0x93, +0x02,0x00,0x04,0x93,0x04,0x00,0x08,0x93,0x06,0x00,0x05,0x93,0x07,0x00,0x06,0x93, +0x03,0x00,0x07,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x25,0x10,0x49,0x00, +0x25,0x18,0x68,0x00,0x00,0x24,0x04,0x00,0x00,0x2c,0x05,0x00,0x25,0x20,0x82,0x00, +0x25,0x28,0xa3,0x00,0x00,0x3e,0x07,0x00,0x00,0x36,0x06,0x00,0x25,0x30,0xc5,0x00, +0x25,0x38,0xe4,0x00,0x02,0x80,0x02,0x3c,0x04,0x00,0x26,0xaf,0x00,0x00,0x27,0xaf, +0x68,0x15,0x46,0x24,0x21,0x50,0x00,0x00,0x80,0x20,0x0a,0x00,0x21,0x10,0x9d,0x00, +0x00,0x00,0x45,0x8c,0x01,0x00,0x43,0x25,0xff,0x00,0x6a,0x30,0x21,0x20,0x86,0x00, +0x25,0x00,0x42,0x2d,0xf8,0xff,0x40,0x14,0x18,0x40,0x85,0xac,0x02,0x80,0x02,0x3c, +0x68,0x15,0x4b,0x24,0x21,0x50,0x00,0x00,0xc0,0x10,0x0a,0x00,0x21,0x48,0x5d,0x00, +0x21,0x38,0x00,0x00,0x21,0x40,0x4b,0x00,0x21,0x10,0x27,0x01,0xa0,0x01,0x46,0x90, +0x98,0x00,0x45,0x90,0x01,0x00,0xe4,0x24,0x21,0x18,0x07,0x01,0xff,0x00,0x87,0x30, +0x08,0x00,0xe2,0x2c,0xb4,0x41,0x66,0xa0,0xf7,0xff,0x40,0x14,0xac,0x40,0x65,0xa0, +0x01,0x00,0x42,0x25,0xff,0x00,0x4a,0x30,0x21,0x00,0x43,0x2d,0xef,0xff,0x60,0x14, +0xc0,0x10,0x0a,0x00,0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,0x00,0x00,0x43,0x90, +0x00,0x00,0x00,0x00,0x20,0x00,0x63,0x30,0x42,0x00,0x60,0x10,0x68,0x15,0x64,0x26, +0x33,0x00,0x02,0x24,0xc1,0x42,0x62,0xa1,0x1c,0x00,0x03,0x24,0x0f,0x00,0x02,0x24, +0xbc,0x42,0x63,0xa1,0xbd,0x42,0x62,0xa1,0x68,0x15,0x65,0x26,0x08,0x40,0xa4,0x8c, +0xff,0x7f,0x08,0x3c,0xff,0xff,0x08,0x35,0xc0,0xff,0x02,0x24,0x24,0x20,0x88,0x00, +0x24,0x20,0x82,0x00,0x0c,0x00,0x84,0x34,0xff,0xc0,0x02,0x24,0x24,0x20,0x82,0x00, +0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x00,0x18,0x84,0x34,0xbf,0xff,0x03,0x3c, +0x24,0x20,0x82,0x00,0xff,0xff,0x63,0x34,0x7f,0xff,0x02,0x3c,0x24,0x20,0x83,0x00, +0xff,0xff,0x42,0x34,0x24,0x20,0x82,0x00,0x0c,0x40,0xa6,0x8c,0x7f,0xff,0x03,0x24, +0x40,0x40,0x84,0x34,0xff,0xff,0x02,0x3c,0x24,0x20,0x83,0x00,0xff,0x7f,0x42,0x34, +0xff,0xbf,0x03,0x3c,0x10,0x40,0xa7,0x8c,0x24,0x20,0x82,0x00,0xff,0xff,0x63,0x34, +0xff,0x9f,0x02,0x3c,0x24,0x30,0xc3,0x00,0xff,0xff,0x42,0x34,0xff,0x3f,0x03,0x3c, +0x24,0x20,0x82,0x00,0xff,0xff,0x63,0x34,0x12,0x00,0x02,0x24,0xb4,0x02,0xb3,0x8f, +0xb0,0x02,0xb2,0x8f,0xac,0x02,0xb1,0x8f,0xa8,0x02,0xb0,0x8f,0x24,0x38,0xe3,0x00, +0xc7,0x42,0xa2,0xa0,0x1f,0x00,0x03,0x24,0x01,0x00,0x02,0x24,0x24,0x30,0xc8,0x00, +0xbe,0x42,0xa3,0xa0,0xc0,0x42,0xa2,0xa0,0xff,0x00,0x03,0x24,0xff,0xff,0x02,0x24, +0xb8,0x02,0xbd,0x27,0x08,0x40,0xa4,0xac,0x10,0x40,0xa7,0xac,0x0c,0x40,0xa6,0xac, +0xc2,0x42,0xa2,0xa0,0xc4,0x42,0xa3,0xa4,0xbf,0x42,0xa0,0xa0,0x08,0x00,0xe0,0x03, +0xc6,0x42,0xa0,0xa0,0x33,0x00,0x02,0x24,0xc1,0x42,0x82,0xa0,0x0d,0x00,0x03,0x24, +0x03,0x00,0x02,0x24,0xbc,0x42,0x83,0xa0,0xa8,0x60,0x00,0x08,0xbd,0x42,0x82,0xa0, +0x02,0x80,0x07,0x3c,0x68,0x15,0xe7,0x24,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf, +0xe6,0x42,0xe0,0xa0,0xe4,0x42,0xe8,0x8c,0xff,0xef,0x02,0x3c,0xff,0xff,0x42,0x34, +0xff,0xbf,0x03,0x3c,0x00,0x40,0xe9,0x8c,0x24,0x40,0x02,0x01,0xff,0xff,0x63,0x34, +0xff,0x7f,0x02,0x3c,0x24,0x40,0x03,0x01,0xff,0xff,0x42,0x34,0xf0,0xff,0x04,0x24, +0x24,0x40,0x02,0x01,0xff,0xdf,0x02,0x3c,0x24,0x48,0x24,0x01,0xff,0xf0,0x03,0x24, +0xff,0xff,0x42,0x34,0x24,0x48,0x23,0x01,0x24,0x40,0x02,0x01,0x20,0x00,0x03,0x24, +0x0a,0x00,0x02,0x24,0xd2,0x42,0xe2,0xa0,0xd7,0x42,0xe3,0xa0,0x20,0x00,0x02,0x24, +0x00,0x01,0x03,0x24,0xc8,0x42,0xe2,0xa4,0xca,0x42,0xe3,0xa4,0x00,0x02,0x02,0x24, +0x49,0x00,0x03,0x24,0x02,0x80,0x0a,0x3c,0x00,0x40,0xe9,0xac,0xe4,0x42,0xe8,0xac, +0xf8,0xa4,0x4a,0x25,0xff,0xff,0x0c,0x34,0x3e,0x00,0x0d,0x24,0x1c,0x00,0x0e,0x24, +0x01,0x00,0x0b,0x24,0x11,0x00,0xa3,0xa3,0xcc,0x42,0xe2,0xa4,0xd0,0x07,0x03,0x24, +0x44,0x00,0x02,0x24,0x00,0x80,0x06,0x3c,0x10,0x00,0xa2,0xa3,0x10,0x00,0xa5,0x27, +0x47,0x00,0x02,0x24,0x21,0x20,0x40,0x01,0xa4,0x50,0xc6,0x24,0x04,0x40,0xec,0xac, +0xd0,0x42,0xed,0xa0,0xd1,0x42,0xee,0xa0,0x02,0x40,0xeb,0xa0,0x0c,0x00,0x43,0xad, +0x14,0x00,0x4b,0xa1,0xe8,0x63,0xec,0xac,0xce,0x42,0xed,0xa0,0xcf,0x42,0xee,0xa0, +0xd6,0x42,0xe0,0xa0,0xd4,0x42,0xe0,0xa0,0x12,0x00,0xa2,0xa3,0x88,0x0e,0x00,0x0c, +0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x50,0x00,0x03,0x24, +0x10,0x00,0xa3,0xa3,0x36,0x62,0x40,0xa0,0x41,0x00,0x03,0x24,0x52,0x00,0x02,0x24, +0x02,0x80,0x07,0x3c,0xa0,0xa5,0xe7,0x24,0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3, +0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27, +0x21,0x20,0xe0,0x00,0x74,0x67,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0, +0x18,0x00,0xbf,0xaf,0x88,0x0e,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd8,0xff,0xbd,0x27, +0x18,0x00,0xb0,0xaf,0x02,0x80,0x10,0x3c,0x68,0x15,0x10,0x26,0x20,0x00,0xbf,0xaf, +0x1c,0x00,0xb1,0xaf,0x00,0x40,0x09,0x8e,0xff,0xff,0x02,0x24,0xff,0x00,0x4b,0x30, +0x0f,0xff,0x02,0x24,0x24,0x48,0x22,0x01,0xff,0xff,0x02,0x3c,0xff,0x0f,0x42,0x34, +0x24,0x48,0x22,0x01,0x01,0x00,0x07,0x3c,0x47,0x00,0x02,0x24,0x3b,0x00,0x03,0x24, +0x02,0x80,0x08,0x3c,0x10,0x00,0xa2,0xa3,0x11,0x00,0xa3,0xa3,0xbc,0xa5,0x08,0x25, +0x56,0x30,0xea,0x34,0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,0xf4,0x98,0xe7,0x34, +0x00,0x80,0x06,0x3c,0x04,0x43,0x0b,0xae,0x00,0x40,0x09,0xae,0x43,0x00,0x11,0x24, +0x10,0x00,0xa5,0x27,0x0c,0x43,0x07,0xae,0x10,0x43,0x0a,0xae,0x0c,0x00,0x02,0xad, +0x14,0x00,0x03,0xa1,0x08,0x43,0x00,0xae,0x14,0x43,0x00,0xae,0x18,0x43,0x00,0xae, +0x21,0x20,0x00,0x01,0x3c,0x5c,0xc6,0x24,0x12,0x00,0xb1,0xa3,0x88,0x0e,0x00,0x0c, +0x13,0x00,0xa0,0xa3,0x1e,0x00,0x02,0x24,0x21,0x43,0x02,0xa2,0x4a,0x00,0x03,0x24, +0x45,0x00,0x02,0x24,0x1c,0x43,0x03,0xa2,0x1d,0x43,0x02,0xa2,0x23,0x00,0x03,0x24, +0x3e,0x00,0x02,0x24,0x1e,0x43,0x11,0xa2,0x1f,0x43,0x02,0xa2,0x20,0x43,0x03,0xa2, +0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03, +0x28,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x3b,0x00,0x02,0x24,0x43,0x00,0x03,0x24, +0x10,0x00,0xa2,0xa3,0x11,0x00,0xa3,0xa3,0x36,0x00,0x02,0x24,0x02,0x80,0x03,0x3c, +0x02,0x80,0x07,0x3c,0xd8,0xa5,0xe7,0x24,0x12,0x00,0xa2,0xa3,0x3b,0x58,0x60,0xa0, +0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,0x00,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27, +0x21,0x20,0xe0,0x00,0x60,0x61,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0, +0x18,0x00,0xbf,0xaf,0x88,0x0e,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27, +0x02,0x80,0x02,0x3c,0x52,0x00,0x03,0x24,0x10,0x00,0xa3,0xa3,0xac,0x79,0x40,0xa4, +0x54,0x00,0x03,0x24,0x53,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,0x10,0xa6,0xe7,0x24, +0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3,0xf4,0x01,0x02,0x24,0x01,0x00,0x03,0x24, +0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0xb8,0x68,0xc6,0x24, +0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf,0x88,0x0e,0x00,0x0c, +0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03, +0x20,0x00,0xbd,0x27,0x02,0x80,0x04,0x3c,0xd8,0xff,0xbd,0x27,0x64,0x79,0x84,0x24, +0x21,0x28,0x00,0x00,0x20,0x00,0xbf,0xaf,0x58,0x45,0x00,0x0c,0x0a,0x00,0x06,0x24, +0x02,0x80,0x07,0x3c,0x68,0x15,0xe7,0x24,0xf8,0x63,0xe3,0x8c,0xfd,0xff,0x02,0x24, +0x02,0x80,0x08,0x3c,0x24,0x18,0x62,0x00,0xfe,0xff,0x02,0x24,0x24,0x18,0x62,0x00, +0x05,0x00,0x02,0x24,0xf8,0x63,0xe3,0xac,0xfc,0x63,0xe2,0xa0,0x28,0x00,0x03,0x24, +0x46,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3,0xfd,0x63,0xe3,0xa0,0x4b,0x00,0x02,0x24, +0x42,0x00,0x03,0x24,0x2c,0xa6,0x08,0x25,0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3, +0xd0,0x07,0x03,0x24,0x01,0x00,0x02,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27, +0x21,0x20,0x00,0x01,0x80,0x69,0xc6,0x24,0xfa,0x63,0xe0,0xa4,0x0c,0x00,0x03,0xad, +0x14,0x00,0x02,0xa1,0x88,0x0e,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x20,0x00,0xbf,0x8f, +0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x78,0x0c,0x00,0x00,0x01,0x00,0x00,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x01,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x02,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x03,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x04,0x5d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x05,0x5b,0x78,0x0c,0x00,0x00,0x01,0x00,0x06,0x59,0x78,0x0c,0x00,0x00, +0x01,0x00,0x07,0x57,0x78,0x0c,0x00,0x00,0x01,0x00,0x08,0x55,0x78,0x0c,0x00,0x00, +0x01,0x00,0x09,0x53,0x78,0x0c,0x00,0x00,0x01,0x00,0x0a,0x51,0x78,0x0c,0x00,0x00, +0x01,0x00,0x0b,0x4f,0x78,0x0c,0x00,0x00,0x01,0x00,0x0c,0x4d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x0d,0x4b,0x78,0x0c,0x00,0x00,0x01,0x00,0x0e,0x49,0x78,0x0c,0x00,0x00, +0x01,0x00,0x0f,0x47,0x78,0x0c,0x00,0x00,0x01,0x00,0x10,0x45,0x78,0x0c,0x00,0x00, +0x01,0x00,0x11,0x43,0x78,0x0c,0x00,0x00,0x01,0x00,0x12,0x41,0x78,0x0c,0x00,0x00, +0x01,0x00,0x13,0x3f,0x78,0x0c,0x00,0x00,0x01,0x00,0x14,0x3d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x15,0x3b,0x78,0x0c,0x00,0x00,0x01,0x00,0x16,0x39,0x78,0x0c,0x00,0x00, +0x01,0x00,0x17,0x37,0x78,0x0c,0x00,0x00,0x01,0x00,0x18,0x35,0x78,0x0c,0x00,0x00, +0x01,0x00,0x19,0x33,0x78,0x0c,0x00,0x00,0x01,0x00,0x1a,0x31,0x78,0x0c,0x00,0x00, +0x01,0x00,0x1b,0x2f,0x78,0x0c,0x00,0x00,0x01,0x00,0x1c,0x2d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x1d,0x2b,0x78,0x0c,0x00,0x00,0x01,0x00,0x1e,0x29,0x78,0x0c,0x00,0x00, +0x01,0x00,0x1f,0x27,0x78,0x0c,0x00,0x00,0x01,0x00,0x20,0x25,0x78,0x0c,0x00,0x00, +0x01,0x00,0x21,0x23,0x78,0x0c,0x00,0x00,0x01,0x00,0x22,0x21,0x78,0x0c,0x00,0x00, +0x01,0x00,0x23,0x1f,0x78,0x0c,0x00,0x00,0x01,0x00,0x24,0x1d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x25,0x1b,0x78,0x0c,0x00,0x00,0x01,0x00,0x26,0x19,0x78,0x0c,0x00,0x00, +0x01,0x00,0x27,0x17,0x78,0x0c,0x00,0x00,0x01,0x00,0x28,0x15,0x78,0x0c,0x00,0x00, +0x01,0x00,0x29,0x13,0x78,0x0c,0x00,0x00,0x01,0x00,0x2a,0x11,0x78,0x0c,0x00,0x00, +0x01,0x00,0x2b,0x0f,0x78,0x0c,0x00,0x00,0x01,0x00,0x2c,0x0d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x2d,0x0b,0x78,0x0c,0x00,0x00,0x01,0x00,0x2e,0x09,0x78,0x0c,0x00,0x00, +0x01,0x00,0x2f,0x07,0x78,0x0c,0x00,0x00,0x01,0x00,0x30,0x05,0x78,0x0c,0x00,0x00, +0x01,0x00,0x31,0x03,0x78,0x0c,0x00,0x00,0x01,0x00,0x32,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x33,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x34,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x35,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x36,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x37,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x38,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x39,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3a,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x3b,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3c,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x3d,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3e,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x3f,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x40,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x41,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x42,0x5e,0x78,0x0c,0x00,0x00, +0x01,0x00,0x43,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x44,0x5d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x45,0x5b,0x78,0x0c,0x00,0x00,0x01,0x00,0x46,0x59,0x78,0x0c,0x00,0x00, +0x01,0x00,0x47,0x57,0x78,0x0c,0x00,0x00,0x01,0x00,0x48,0x55,0x78,0x0c,0x00,0x00, +0x01,0x00,0x49,0x53,0x78,0x0c,0x00,0x00,0x01,0x00,0x4a,0x51,0x78,0x0c,0x00,0x00, +0x01,0x00,0x4b,0x4f,0x78,0x0c,0x00,0x00,0x01,0x00,0x4c,0x4d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x4d,0x4b,0x78,0x0c,0x00,0x00,0x01,0x00,0x4e,0x49,0x78,0x0c,0x00,0x00, +0x01,0x00,0x4f,0x47,0x78,0x0c,0x00,0x00,0x01,0x00,0x50,0x45,0x78,0x0c,0x00,0x00, +0x01,0x00,0x51,0x43,0x78,0x0c,0x00,0x00,0x01,0x00,0x52,0x41,0x78,0x0c,0x00,0x00, +0x01,0x00,0x53,0x3f,0x78,0x0c,0x00,0x00,0x01,0x00,0x54,0x3d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x55,0x3b,0x78,0x0c,0x00,0x00,0x01,0x00,0x56,0x39,0x78,0x0c,0x00,0x00, +0x01,0x00,0x57,0x37,0x78,0x0c,0x00,0x00,0x01,0x00,0x58,0x35,0x78,0x0c,0x00,0x00, +0x01,0x00,0x59,0x33,0x78,0x0c,0x00,0x00,0x01,0x00,0x5a,0x31,0x78,0x0c,0x00,0x00, +0x01,0x00,0x5b,0x2f,0x78,0x0c,0x00,0x00,0x01,0x00,0x5c,0x2d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x5d,0x2b,0x78,0x0c,0x00,0x00,0x01,0x00,0x5e,0x29,0x78,0x0c,0x00,0x00, +0x01,0x00,0x5f,0x27,0x78,0x0c,0x00,0x00,0x01,0x00,0x60,0x25,0x78,0x0c,0x00,0x00, +0x01,0x00,0x61,0x23,0x78,0x0c,0x00,0x00,0x01,0x00,0x62,0x21,0x78,0x0c,0x00,0x00, +0x01,0x00,0x63,0x1f,0x78,0x0c,0x00,0x00,0x01,0x00,0x64,0x1d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x65,0x1b,0x78,0x0c,0x00,0x00,0x01,0x00,0x66,0x19,0x78,0x0c,0x00,0x00, +0x01,0x00,0x67,0x17,0x78,0x0c,0x00,0x00,0x01,0x00,0x68,0x15,0x78,0x0c,0x00,0x00, +0x01,0x00,0x69,0x13,0x78,0x0c,0x00,0x00,0x01,0x00,0x6a,0x11,0x78,0x0c,0x00,0x00, +0x01,0x00,0x6b,0x0f,0x78,0x0c,0x00,0x00,0x01,0x00,0x6c,0x0d,0x78,0x0c,0x00,0x00, +0x01,0x00,0x6d,0x0b,0x78,0x0c,0x00,0x00,0x01,0x00,0x6e,0x09,0x78,0x0c,0x00,0x00, +0x01,0x00,0x6f,0x07,0x78,0x0c,0x00,0x00,0x01,0x00,0x70,0x05,0x78,0x0c,0x00,0x00, +0x01,0x00,0x71,0x03,0x78,0x0c,0x00,0x00,0x01,0x00,0x72,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x73,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x74,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x75,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x76,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x77,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x78,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x79,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7a,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x7b,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7c,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x7d,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7e,0x01,0x78,0x0c,0x00,0x00, +0x01,0x00,0x7f,0x01,0x78,0x0c,0x00,0x00,0x1e,0x00,0x00,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x01,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x02,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x03,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x04,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x05,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x06,0x30,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x07,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x08,0x3e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x09,0x40,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0a,0x42,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x0b,0x44,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0c,0x46,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x0d,0x48,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0e,0x48,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x0f,0x4a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x10,0x4a,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x11,0x4c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x12,0x4c,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x13,0x4e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x14,0x50,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x15,0x50,0x78,0x0c,0x00,0x00,0x1e,0x00,0x16,0x50,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x17,0x52,0x78,0x0c,0x00,0x00,0x1e,0x00,0x18,0x52,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x19,0x52,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1a,0x54,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x1b,0x54,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1c,0x54,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x1d,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1e,0x56,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x1f,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x20,0x56,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x21,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x22,0x58,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x23,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x24,0x58,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x25,0x5a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x26,0x5a,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x27,0x5a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x28,0x5c,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x29,0x5c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2a,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x2b,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2c,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x2d,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2e,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x2f,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x30,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x31,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x32,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x33,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x34,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x35,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x36,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x37,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x38,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x39,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3a,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x3b,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3c,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x3d,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3e,0x5e,0x78,0x0c,0x00,0x00, +0x1e,0x00,0x3f,0x5e,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x08,0x00,0x00, +0x00,0x00,0x04,0x03,0x04,0x08,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x08,0x00,0x00, +0x00,0xfc,0x00,0x00,0x0c,0x08,0x00,0x00,0x0a,0x00,0x00,0x04,0x10,0x08,0x00,0x00, +0xff,0x10,0x10,0x80,0x14,0x08,0x00,0x00,0x10,0x3d,0x0c,0x02,0x18,0x08,0x00,0x00, +0xc5,0x03,0x00,0x00,0x1c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x24,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x28,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x2c,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x30,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x34,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x38,0x08,0x00,0x00, +0x04,0x00,0x00,0x00,0x3c,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x40,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x4c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x54,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x08,0x00,0x00, +0x65,0xa9,0x65,0xa9,0x5c,0x08,0x00,0x00,0x65,0xa9,0x65,0xa9,0x60,0x08,0x00,0x00, +0x30,0x01,0x7f,0x0f,0x64,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x68,0x08,0x00,0x00, +0x30,0x01,0x7f,0x0f,0x6c,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x70,0x08,0x00,0x00, +0x00,0x03,0x00,0x03,0x74,0x08,0x00,0x00,0x00,0x03,0x00,0x03,0x78,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x7c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x94,0x08,0x00,0x00,0xfe,0xff,0xff,0xff,0x98,0x08,0x00,0x00, +0x10,0x20,0x30,0x40,0x9c,0x08,0x00,0x00,0x50,0x60,0x70,0x00,0xb0,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0xe0,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xe4,0x08,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x0e,0x00,0x00, +0x03,0x03,0x03,0x03,0x08,0x0e,0x00,0x00,0x03,0x03,0x00,0x00,0x0c,0x0e,0x00,0x00, +0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x14,0x0e,0x00,0x00, +0x03,0x03,0x03,0x03,0x18,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x1c,0x0e,0x00,0x00, +0x03,0x03,0x03,0x03,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x09,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x09,0x00,0x00, +0x33,0x13,0x32,0x03,0x08,0x0a,0x00,0x00,0x00,0x86,0x88,0x8f,0x2c,0x0a,0x00,0x00, +0x00,0x00,0x92,0x00,0x00,0x0c,0x00,0x00,0x80,0x00,0x00,0x00,0x04,0x0c,0x00,0x00, +0x33,0x54,0x00,0x00,0x08,0x0c,0x00,0x00,0xe4,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00, +0x6c,0x6c,0x6c,0x6c,0x10,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x14,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x1c,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x20,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x24,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x28,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x2c,0x0c,0x00,0x00, +0x00,0x01,0x00,0x40,0x30,0x0c,0x00,0x00,0x44,0x6a,0xe9,0x8d,0x34,0x0c,0x00,0x00, +0xcd,0x52,0x96,0x46,0x38,0x0c,0x00,0x00,0x90,0x5a,0x01,0x48,0x3c,0x0c,0x00,0x00, +0x64,0x97,0x97,0x1a,0x40,0x0c,0x00,0x00,0x3f,0x42,0x7c,0x1f,0x44,0x0c,0x00,0x00, +0xb7,0x00,0x01,0x00,0x48,0x0c,0x00,0x00,0x00,0x00,0x02,0xec,0x4c,0x0c,0x00,0x00, +0x03,0x03,0xfc,0x00,0x50,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x54,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x58,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x5c,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x60,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x64,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x68,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x6c,0x0c,0x00,0x00, +0x94,0x00,0x3c,0x43,0x70,0x0c,0x00,0x00,0x0d,0x00,0x5a,0x2c,0x74,0x0c,0x00,0x00, +0x1b,0x15,0x86,0x01,0x78,0x0c,0x00,0x00,0x1f,0x00,0x00,0x00,0x7c,0x0c,0x00,0x00, +0x12,0x16,0xb9,0x00,0x80,0x0c,0x00,0x00,0x80,0x00,0x00,0x20,0x84,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0x88,0x0c,0x00,0x00,0x80,0x00,0x00,0x20,0x8c,0x0c,0x00,0x00, +0x00,0x00,0x20,0x08,0x90,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x94,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0x98,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x9c,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xa0,0x0c,0x00,0x00,0x92,0x24,0x49,0x00,0xa4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xa8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xac,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xb0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xb8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xbc,0x0c,0x00,0x00, +0x92,0x24,0x49,0x00,0xc0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xc4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xc8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xd0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xd4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xd8,0x0c,0x00,0x00,0x27,0x24,0xb2,0x64,0xdc,0x0c,0x00,0x00, +0x32,0x69,0x76,0x00,0xe0,0x0c,0x00,0x00,0x22,0x22,0x22,0x00,0xe4,0x0c,0x00,0x00, +0x00,0x00,0x00,0x00,0xe8,0x0c,0x00,0x00,0x02,0x43,0x64,0x07,0x00,0x0d,0x00,0x00, +0x80,0x07,0x00,0x00,0x04,0x0d,0x00,0x00,0x03,0x04,0x00,0x00,0x08,0x0d,0x00,0x00, +0x7f,0x90,0x00,0x00,0x0c,0x0d,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x0d,0x00,0x00, +0x99,0x99,0x69,0xa0,0x14,0x0d,0x00,0x00,0x67,0x3c,0x99,0x99,0x18,0x0d,0x00,0x00, +0x6b,0x5b,0x8f,0x6a,0x1c,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x24,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x2c,0x0d,0x00,0x00,0x75,0x19,0x97,0xcc,0x30,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x34,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x3c,0x0d,0x00,0x00,0x93,0x72,0x02,0x00,0x40,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x0d,0x00,0x00, +0x00,0x00,0x00,0x00,0x50,0x0d,0x00,0x00,0x0a,0x14,0x37,0x64,0x54,0x0d,0x00,0x00, +0x02,0xbd,0x4d,0x02,0x58,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x5c,0x0d,0x00,0x00, +0x64,0x20,0x03,0x30,0x60,0x0d,0x00,0x00,0x68,0xde,0x53,0x46,0x64,0x0d,0x00,0x00, +0x3c,0x8a,0x51,0x00,0x68,0x0d,0x00,0x00,0x06,0x01,0x00,0x00,0xff,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x74,0x05,0x01,0x80,0x10,0x00,0x00,0x00, +0x14,0x35,0x00,0x80,0x10,0x00,0x00,0x00,0x20,0x35,0x00,0x80,0x10,0x00,0x00,0x00, +0xa0,0x08,0x01,0x80,0x10,0x00,0x00,0x00,0x2c,0x25,0x00,0x80,0x10,0x00,0x00,0x00, +0x24,0x25,0x00,0x80,0x10,0x00,0x00,0x00,0x34,0x25,0x00,0x80,0x08,0x00,0x00,0x00, +0x38,0x06,0x01,0x80,0x00,0xb7,0x00,0x00,0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00, +0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00, +0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00, +0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00, +0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00, +0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00, +0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00, +0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00, +0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00, +0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00, +0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00, +0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00, +0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00, +0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00, +0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00, +0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00, +0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00, +0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00, +0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00, +0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00, +0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00, +0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00, +0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00, +0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00, +0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00, +0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00, +0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00, +0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00, +0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00, +0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00, +0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00, +0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00, +0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00, +0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00, +0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00, +0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00, +0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00, +0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00, +0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00, +0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00, +0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00, +0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00, +0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00, +0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00, +0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00, +0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00, +0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00, +0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00, +0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00, +0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00, +0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00, +0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00, +0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00, +0xff,0xff,0xff,0x00,0x00,0xb7,0x00,0x00,0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00, +0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00, +0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00, +0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00, +0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00, +0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00, +0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00, +0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00, +0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00, +0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00, +0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00, +0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00, +0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00, +0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00, +0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00, +0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00, +0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00, +0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00, +0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00, +0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00, +0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00, +0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00, +0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00, +0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00, +0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00, +0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00, +0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00, +0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00, +0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00, +0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00, +0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00, +0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00, +0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00, +0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00, +0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00, +0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00, +0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00, +0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00, +0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00, +0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00, +0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00, +0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00, +0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00, +0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00, +0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00, +0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00, +0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00, +0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00, +0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00, +0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00, +0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00, +0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00, +0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00, +0xff,0xff,0xff,0x00,0x0a,0x00,0x00,0x00,0x4f,0x6e,0x41,0x73,0x73,0x6f,0x63,0x52, +0x65,0x71,0x00,0x00,0x4f,0x6e,0x41,0x73,0x73,0x6f,0x63,0x52,0x73,0x70,0x00,0x00, +0x4f,0x6e,0x52,0x65,0x41,0x73,0x73,0x6f,0x63,0x52,0x65,0x71,0x00,0x00,0x00,0x00, +0x4f,0x6e,0x52,0x65,0x41,0x73,0x73,0x6f,0x63,0x52,0x73,0x70,0x00,0x00,0x00,0x00, +0x4f,0x6e,0x50,0x72,0x6f,0x62,0x65,0x52,0x65,0x71,0x00,0x00,0x4f,0x6e,0x50,0x72, +0x6f,0x62,0x65,0x52,0x73,0x70,0x00,0x00,0x44,0x6f,0x52,0x65,0x73,0x65,0x72,0x76, +0x65,0x64,0x00,0x00,0x44,0x6f,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x00,0x00, +0x4f,0x6e,0x42,0x65,0x61,0x63,0x6f,0x6e,0x00,0x00,0x00,0x00,0x4f,0x6e,0x41,0x54, +0x49,0x4d,0x00,0x00,0x4f,0x6e,0x44,0x69,0x73,0x61,0x73,0x73,0x6f,0x63,0x00,0x00, +0x4f,0x6e,0x41,0x75,0x74,0x68,0x00,0x00,0x4f,0x6e,0x44,0x65,0x41,0x75,0x74,0x68, +0x00,0x00,0x00,0x00,0x4f,0x6e,0x41,0x63,0x74,0x69,0x6f,0x6e,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x99,0x01,0x80,0x2c,0x13,0x01,0x80,0x10,0x00,0x00,0x00, +0x2c,0x99,0x01,0x80,0x34,0x13,0x01,0x80,0x20,0x00,0x00,0x00,0x38,0x99,0x01,0x80, +0x2c,0x13,0x01,0x80,0x30,0x00,0x00,0x00,0x48,0x99,0x01,0x80,0x34,0x13,0x01,0x80, +0x40,0x00,0x00,0x00,0x58,0x99,0x01,0x80,0x3c,0x13,0x01,0x80,0x50,0x00,0x00,0x00, +0x64,0x99,0x01,0x80,0x44,0x13,0x01,0x80,0x00,0x00,0x00,0x00,0x70,0x99,0x01,0x80, +0xac,0x13,0x01,0x80,0x00,0x00,0x00,0x00,0x7c,0x99,0x01,0x80,0xac,0x13,0x01,0x80, +0x80,0x00,0x00,0x00,0x88,0x99,0x01,0x80,0x4c,0x13,0x01,0x80,0x90,0x00,0x00,0x00, +0x94,0x99,0x01,0x80,0x54,0x13,0x01,0x80,0xa0,0x00,0x00,0x00,0x9c,0x99,0x01,0x80, +0x5c,0x13,0x01,0x80,0xb0,0x00,0x00,0x00,0xa8,0x99,0x01,0x80,0x94,0x13,0x01,0x80, +0xc0,0x00,0x00,0x00,0xb0,0x99,0x01,0x80,0x9c,0x13,0x01,0x80,0xd0,0x00,0x00,0x00, +0xbc,0x99,0x01,0x80,0xa4,0x13,0x01,0x80,0x00,0x00,0x00,0x00,0x74,0x9a,0x01,0x80, +0x74,0x9a,0x01,0x80,0x31,0x10,0x10,0x00,0x00,0x30,0x00,0x00,0x31,0x20,0x10,0x00, +0x00,0x30,0x00,0x00,0x31,0x28,0x10,0x00,0x00,0x30,0x00,0x00,0x31,0x2c,0x10,0x10, +0x00,0x30,0x00,0x00,0x31,0x2f,0x10,0x10,0x00,0x30,0x00,0x00,0x31,0x30,0x18,0x00, +0x00,0x30,0x00,0x00,0x31,0x30,0x20,0x10,0x00,0x30,0x00,0x00,0x22,0x20,0x18,0x08, +0x00,0x20,0x00,0x00,0x22,0x21,0x14,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x1c,0x08, +0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x10, +0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x18,0x00,0x20,0x00,0x00,0x1a,0x19,0x18,0x10, +0x00,0x18,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x10,0x00,0x00,0x0a,0x09,0x08,0x00, +0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x02,0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x04, +0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x06,0x00,0x08,0x00,0x00,0x08,0x07,0x06,0x04, +0x00,0x06,0x00,0x00,0x06,0x05,0x04,0x02,0x00,0x04,0x00,0x00,0x06,0x05,0x04,0x03, +0x00,0x04,0x00,0x00,0x05,0x04,0x03,0x02,0x00,0x03,0x00,0x00,0x09,0x08,0x07,0x06, +0x07,0x06,0x06,0x05,0x05,0x04,0x04,0x03,0x06,0x05,0x05,0x04,0x04,0x03,0x03,0x03, +0x05,0x04,0x04,0x03,0x03,0x02,0x02,0x02,0x00,0x09,0x08,0x07,0x06,0x07,0x06,0x06, +0x05,0x05,0x04,0x04,0x03,0x05,0x04,0x04,0x03,0x03,0x02,0x02,0x02,0x04,0x03,0x03, +0x02,0x02,0x01,0x01,0x01,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x10,0x10,0x20,0x08,0x08,0x08,0x08,0x20,0x20,0x20,0x20,0x08,0x08,0x08,0x08, +0x08,0x20,0x20,0x20,0x30,0x08,0x08,0x08,0x08,0x18,0x18,0x18,0x18,0x18,0x20,0x30, +0x30,0x10,0x20,0x20,0x20,0x20,0x20,0x30,0x30,0x08,0x10,0x20,0x30,0x30,0x30,0x30, +0x30,0x30,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20, +0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20,0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20, +0x20,0x08,0x08,0x08,0x08,0x18,0x18,0x18,0x18,0x18,0x20,0x30,0x30,0x10,0x20,0x20, +0x20,0x20,0x20,0x30,0x30,0x08,0x10,0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00, +0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a, +0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09, +0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10, +0x08,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x0a,0x09,0x08,0x00, +0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00, +0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x1c,0x08,0x00,0x22, +0x20,0x18,0x08,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09, +0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20, +0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x1c,0x08,0x00,0x31,0x30,0x18,0x00, +0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00, +0x0a,0x09,0x08,0x04,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a, +0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x22,0x21, +0x20,0x08,0x00,0x31,0x2c,0x10,0x10,0x00,0x31,0x28,0x10,0x00,0x00,0x12,0x11,0x10, +0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x08, +0x00,0x22,0x21,0x14,0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x31,0x30,0x20,0x10,0x00, +0x31,0x2c,0x10,0x10,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22, +0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2f, +0x10,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,0x10,0x10,0x00,0x00,0x31,0x2c,0x10, +0x10,0x00,0x00,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09, +0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08, +0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00, +0x00,0x12,0x11,0x10,0x08,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00, +0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a, +0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21, +0x1c,0x08,0x00,0x22,0x21,0x14,0x08,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08, +0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00, +0x00,0x22,0x21,0x20,0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x14,0x08,0x00, +0x22,0x21,0x14,0x08,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a, +0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19, +0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18, +0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x31,0x2c,0x10,0x10,0x00,0x31,0x28,0x10,0x00, +0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00, +0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x14,0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x31, +0x30,0x20,0x10,0x00,0x31,0x2c,0x10,0x10,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11, +0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x31,0x30,0x20, +0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,0x10,0x10,0x00, +0x00,0x31,0x2c,0x10,0x10,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x02,0x04,0x08,0x0c, +0x10,0x18,0x20,0x30,0x02,0x04,0x08,0x0c,0x10,0x18,0x20,0x30,0x06,0x0c,0x10,0x18, +0x24,0x30,0x3c,0x48,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x25,0x27,0x2c,0x19,0x1b,0x1e,0x20,0x23,0x29,0x2a,0x2b,0x00,0x00,0x00,0x00, +0x25,0x29,0x2b,0x2e,0x2e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0xc0,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x90,0x01,0x00,0x00, +0xe0,0x01,0x00,0x00,0x30,0x02,0x00,0x00,0x2c,0x01,0x00,0x00,0x40,0x01,0x00,0x00, +0xe0,0x01,0x00,0x00,0xd0,0x02,0x00,0x00,0x80,0x0c,0x00,0x00,0x80,0x0c,0x00,0x00, +0x80,0x0c,0x00,0x00,0xa0,0x0f,0x00,0x00,0xa0,0x0f,0x00,0x00,0x02,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x48,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x28,0x00,0x00,0x00, +0x3c,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x64,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x40,0x06,0x00,0x00, +0x40,0x06,0x00,0x00,0x40,0x06,0x00,0x00,0xd0,0x07,0x00,0x00,0xd0,0x07,0x00,0x00, +0x2c,0x05,0x00,0x80,0x20,0x05,0x00,0x80,0x14,0x05,0x00,0x80,0x08,0x05,0x00,0x80, +0xfc,0x04,0x00,0x80,0xf0,0x04,0x00,0x80,0xe4,0x04,0x00,0x80,0xd8,0x04,0x00,0x80, +0xcc,0x04,0x00,0x80,0xc0,0x04,0x00,0x80,0x78,0x04,0x00,0x80,0x70,0x3b,0x01,0x80, +0x48,0x3b,0x01,0x80,0x24,0x3b,0x01,0x80,0x14,0x3c,0x01,0x80,0xf0,0x3b,0x01,0x80, +0xcc,0x3b,0x01,0x80,0xa8,0x3b,0x01,0x80,0x30,0x41,0x00,0x80,0x3c,0x41,0x00,0x80, +0x48,0x41,0x00,0x80,0x54,0x41,0x00,0x80,0x30,0x41,0x00,0x80,0x30,0x41,0x00,0x80, +0x30,0x41,0x00,0x80,0x30,0x41,0x00,0x80,0x60,0x41,0x00,0x80,0x6c,0x41,0x00,0x80, +0x78,0x41,0x00,0x80,0x84,0x41,0x00,0x80,0x68,0x15,0x02,0x80,0x68,0x15,0x02,0x80, +0x84,0x0e,0x25,0xb0,0x88,0x0e,0x25,0xb0,0x8c,0x0e,0x25,0xb0,0xd0,0x0e,0x25,0xb0, +0xd8,0x0e,0x25,0xb0,0x20,0x08,0x25,0xb0,0xfe,0x01,0x80,0x7f,0xe2,0x01,0x80,0x78, +0xc7,0x01,0xc0,0x71,0xae,0x01,0x80,0x6b,0x95,0x01,0x40,0x65,0x7f,0x01,0xc0,0x5f, +0x69,0x01,0x40,0x5a,0x55,0x01,0x40,0x55,0x42,0x01,0x80,0x50,0x30,0x01,0x00,0x4c, +0x1f,0x01,0xc0,0x47,0x0f,0x01,0xc0,0x43,0x00,0x01,0x00,0x40,0xf2,0x00,0x80,0x3c, +0xe4,0x00,0x00,0x39,0xd7,0x00,0xc0,0x35,0xcb,0x00,0xc0,0x32,0xc0,0x00,0x00,0x30, +0xb5,0x00,0x40,0x2d,0xab,0x00,0xc0,0x2a,0xa2,0x00,0x80,0x28,0x98,0x00,0x00,0x26, +0x90,0x00,0x00,0x24,0x88,0x00,0x00,0x22,0x80,0x00,0x00,0x20,0x79,0x00,0x40,0x1e, +0x72,0x00,0x80,0x1c,0x6c,0x00,0x00,0x1b,0x66,0x00,0x80,0x19,0x60,0x00,0x00,0x18, +0x5b,0x00,0xc0,0x16,0x56,0x00,0x80,0x15,0x51,0x00,0x40,0x14,0x4c,0x00,0x00,0x13, +0x48,0x00,0x00,0x12,0x44,0x00,0x00,0x11,0x40,0x00,0x00,0x10,0x36,0x35,0x2e,0x25, +0x1c,0x12,0x09,0x04,0x33,0x32,0x2b,0x23,0x1a,0x11,0x08,0x04,0x30,0x2f,0x29,0x21, +0x19,0x10,0x08,0x03,0x2d,0x2d,0x27,0x1f,0x18,0x0f,0x08,0x03,0x2b,0x2a,0x25,0x1e, +0x16,0x0e,0x07,0x03,0x28,0x28,0x22,0x1c,0x15,0x0d,0x07,0x03,0x26,0x25,0x21,0x1b, +0x14,0x0d,0x06,0x03,0x24,0x23,0x1f,0x19,0x13,0x0c,0x06,0x03,0x22,0x21,0x1d,0x18, +0x11,0x0b,0x06,0x02,0x20,0x20,0x1b,0x16,0x11,0x08,0x05,0x02,0x1f,0x1e,0x1a,0x15, +0x10,0x0a,0x05,0x02,0x1d,0x1c,0x18,0x14,0x0f,0x0a,0x05,0x02,0x1b,0x1a,0x17,0x13, +0x0e,0x09,0x04,0x02,0x1a,0x19,0x16,0x12,0x0d,0x09,0x04,0x02,0x18,0x17,0x15,0x11, +0x0c,0x08,0x04,0x02,0x17,0x16,0x13,0x10,0x0c,0x08,0x04,0x02,0x16,0x15,0x12,0x0f, +0x0b,0x07,0x04,0x01,0x14,0x14,0x11,0x0e,0x0b,0x07,0x03,0x02,0x13,0x13,0x10,0x0d, +0x0a,0x06,0x03,0x01,0x12,0x12,0x0f,0x0c,0x09,0x06,0x03,0x01,0x11,0x11,0x0f,0x0c, +0x09,0x06,0x03,0x01,0x10,0x10,0x0e,0x0b,0x08,0x05,0x03,0x01,0x0f,0x0f,0x0d,0x0b, +0x08,0x05,0x03,0x01,0x0e,0x0e,0x0c,0x0a,0x08,0x05,0x02,0x01,0x0d,0x0d,0x0c,0x0a, +0x07,0x05,0x02,0x01,0x0d,0x0c,0x0b,0x09,0x07,0x04,0x02,0x01,0x0c,0x0c,0x0a,0x09, +0x06,0x04,0x02,0x01,0x0b,0x0b,0x0a,0x08,0x06,0x04,0x02,0x01,0x0b,0x0a,0x09,0x08, +0x06,0x04,0x02,0x01,0x0a,0x0a,0x09,0x07,0x05,0x03,0x02,0x01,0x0a,0x09,0x08,0x07, +0x05,0x03,0x02,0x01,0x09,0x09,0x08,0x06,0x05,0x03,0x01,0x01,0x09,0x08,0x07,0x06, +0x04,0x03,0x01,0x01,0x36,0x35,0x2e,0x1b,0x00,0x00,0x00,0x00,0x33,0x32,0x2b,0x19, +0x00,0x00,0x00,0x00,0x30,0x2f,0x29,0x18,0x00,0x00,0x00,0x00,0x2d,0x2d,0x17,0x17, +0x00,0x00,0x00,0x00,0x2b,0x2a,0x25,0x15,0x00,0x00,0x00,0x00,0x28,0x28,0x24,0x14, +0x00,0x00,0x00,0x00,0x26,0x25,0x21,0x13,0x00,0x00,0x00,0x00,0x24,0x23,0x1f,0x12, +0x00,0x00,0x00,0x00,0x22,0x21,0x1d,0x11,0x00,0x00,0x00,0x00,0x20,0x20,0x1b,0x10, +0x00,0x00,0x00,0x00,0x1f,0x1e,0x1a,0x0f,0x00,0x00,0x00,0x00,0x1d,0x1c,0x18,0x0e, +0x00,0x00,0x00,0x00,0x1b,0x1a,0x17,0x0e,0x00,0x00,0x00,0x00,0x1a,0x19,0x16,0x0d, +0x00,0x00,0x00,0x00,0x18,0x17,0x15,0x0c,0x00,0x00,0x00,0x00,0x17,0x16,0x13,0x0b, +0x00,0x00,0x00,0x00,0x16,0x15,0x12,0x0b,0x00,0x00,0x00,0x00,0x14,0x14,0x11,0x0a, +0x00,0x00,0x00,0x00,0x13,0x13,0x10,0x0a,0x00,0x00,0x00,0x00,0x12,0x12,0x0f,0x09, +0x00,0x00,0x00,0x00,0x11,0x11,0x0f,0x09,0x00,0x00,0x00,0x00,0x10,0x10,0x0e,0x08, +0x00,0x00,0x00,0x00,0x0f,0x0f,0x0d,0x08,0x00,0x00,0x00,0x00,0x0e,0x0e,0x0c,0x07, +0x00,0x00,0x00,0x00,0x0d,0x0d,0x0c,0x07,0x00,0x00,0x00,0x00,0x0d,0x0c,0x0b,0x06, +0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x06,0x00,0x00,0x00,0x00,0x0b,0x0b,0x0a,0x06, +0x00,0x00,0x00,0x00,0x0b,0x0a,0x09,0x05,0x00,0x00,0x00,0x00,0x0a,0x0a,0x09,0x05, +0x00,0x00,0x00,0x00,0x0a,0x09,0x08,0x05,0x00,0x00,0x00,0x00,0x09,0x09,0x08,0x05, +0x00,0x00,0x00,0x00,0x09,0x08,0x07,0x04,0x00,0x00,0x00,0x00,0x06,0x00,0x2a,0xb0, +0x05,0x00,0x2a,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x28,0x28,0x28,0x28,0x28,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x41,0x41,0x41,0x41,0x41,0x41,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x42,0x42,0x42,0x42,0x42,0x42,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0xa5,0x76,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x26,0x72,0xb0,0x00,0x26,0x72,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x26,0x65,0x60,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x02, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x5a,0x00,0xb8,0xff,0xff,0xff,0xff, +}; + +u8 Rtl8192SEFwMainArray[MainArrayLength] = { +0x0, }; + +u8 Rtl8192SEFwDataArray[DataArrayLength] = { +0x0, }; + +u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength] = { +0x01c,0x07000000, +0x800,0x00040000, +0x804,0x00008003, +0x808,0x0000fc00, +0x80c,0x0000000a, +0x810,0x10005088, +0x814,0x020c3d10, +0x818,0x00200185, +0x81c,0x00000000, +0x820,0x01000000, +0x824,0x00390004, +0x828,0x01000000, +0x82c,0x00390004, +0x830,0x00000004, +0x834,0x00690200, +0x838,0x00000004, +0x83c,0x00690200, +0x840,0x00010000, +0x844,0x00010000, +0x848,0x00000000, +0x84c,0x00000000, +0x850,0x00000000, +0x854,0x00000000, +0x858,0x48484848, +0x85c,0x65a965a9, +0x860,0x0f7f0130, +0x864,0x0f7f0130, +0x868,0x0f7f0130, +0x86c,0x0f7f0130, +0x870,0x03000700, +0x874,0x03000300, +0x878,0x00020002, +0x87c,0x004f0201, +0x880,0xa8300ac1, +0x884,0x00000058, +0x888,0x00000008, +0x88c,0x00000004, +0x890,0x00000000, +0x894,0xfffffffe, +0x898,0x40302010, +0x89c,0x00706050, +0x8b0,0x00000000, +0x8e0,0x00000000, +0x8e4,0x00000000, +0xe00,0x30333333, +0xe04,0x2a2d2e2f, +0xe08,0x00003232, +0xe10,0x30333333, +0xe14,0x2a2d2e2f, +0xe18,0x30333333, +0xe1c,0x2a2d2e2f, +0xe30,0x01007c00, +0xe34,0x01004800, +0xe38,0x1000dc1f, +0xe3c,0x10008c1f, +0xe40,0x021400a0, +0xe44,0x281600a0, +0xe48,0xf8000001, +0xe4c,0x00002910, +0xe50,0x01007c00, +0xe54,0x01004800, +0xe58,0x1000dc1f, +0xe5c,0x10008c1f, +0xe60,0x021400a0, +0xe64,0x281600a0, +0xe6c,0x00002910, +0xe70,0x31ed92fb, +0xe74,0x361536fb, +0xe78,0x361536fb, +0xe7c,0x361536fb, +0xe80,0x361536fb, +0xe84,0x000d92fb, +0xe88,0x000d92fb, +0xe8c,0x31ed92fb, +0xed0,0x31ed92fb, +0xed4,0x31ed92fb, +0xed8,0x000d92fb, +0xedc,0x000d92fb, +0xee0,0x000d92fb, +0xee4,0x015e5448, +0xee8,0x21555448, +0x900,0x00000000, +0x904,0x00000023, +0x908,0x00000000, +0x90c,0x01121313, +0xa00,0x00d047c8, +0xa04,0x80ff0008, +0xa08,0x8ccd8300, +0xa0c,0x2e62120f, +0xa10,0x9500bb78, +0xa14,0x11144028, +0xa18,0x00881117, +0xa1c,0x89140f00, +0xa20,0x1a1b0000, +0xa24,0x090e1317, +0xa28,0x00000204, +0xa2c,0x10d30000, +0xc00,0x40071d40, +0xc04,0x00a05633, +0xc08,0x000000e4, +0xc0c,0x6c6c6c6c, +0xc10,0x08800000, +0xc14,0x40000100, +0xc18,0x08000000, +0xc1c,0x40000100, +0xc20,0x08000000, +0xc24,0x40000100, +0xc28,0x08000000, +0xc2c,0x40000100, +0xc30,0x6de9ac44, +0xc34,0x469652cf, +0xc38,0x49795994, +0xc3c,0x0a979764, +0xc40,0x1f7c403f, +0xc44,0x000100b7, +0xc48,0xec020000, +0xc4c,0x007f037f, +0xc50,0x69543420, +0xc54,0x433c0094, +0xc58,0x69543420, +0xc5c,0x433c0094, +0xc60,0x69543420, +0xc64,0x433c0094, +0xc68,0x69543420, +0xc6c,0x433c0094, +0xc70,0x2c7f000d, +0xc74,0x0186155b, +0xc78,0x0000001f, +0xc7c,0x00b91612, +0xc80,0x40000100, +0xc84,0x20f60000, +0xc88,0x20000080, +0xc8c,0x20200000, +0xc90,0x40000100, +0xc94,0x00000000, +0xc98,0x40000100, +0xc9c,0x00000000, +0xca0,0x00492492, +0xca4,0x00000000, +0xca8,0x00000000, +0xcac,0x00000000, +0xcb0,0x00000000, +0xcb4,0x00000000, +0xcb8,0x00000000, +0xcbc,0x28000000, +0xcc0,0x00000000, +0xcc4,0x00000000, +0xcc8,0x00000000, +0xccc,0x00000000, +0xcd0,0x00000000, +0xcd4,0x00000000, +0xcd8,0x64b22427, +0xcdc,0x00766932, +0xce0,0x00222222, +0xce4,0x00000000, +0xce8,0x37644302, +0xcec,0x2f97d40c, +0xd00,0x00000750, +0xd04,0x00000403, +0xd08,0x0000907f, +0xd0c,0x00000001, +0xd10,0xa0633333, +0xd14,0x33333c63, +0xd18,0x6a8f5b6b, +0xd1c,0x00000000, +0xd20,0x00000000, +0xd24,0x00000000, +0xd28,0x00000000, +0xd2c,0xcc979975, +0xd30,0x00000000, +0xd34,0x00000000, +0xd38,0x00000000, +0xd3c,0x00027293, +0xd40,0x00000000, +0xd44,0x00000000, +0xd48,0x00000000, +0xd50,0x6437140a, +0xd54,0x024dbd02, +0xd58,0x00000000, +0xd5c,0x30032064, +0xd60,0x4653de68, +0xd64,0x00518a3c, +0xd68,0x00002101, +0xf14,0x00000003, +0xf4c,0x00000000, +0xf00,0x00000300, +}; + +u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength] = { +0x0, }; + +u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength] = { +0x844,0xffffffff,0x00010000, +0x804,0x0000000f,0x00000001, +0x824,0x00f0000f,0x00300004, +0x82c,0x00f0000f,0x00100002, +0x870,0x04000000,0x00000001, +0x864,0x00000400,0x00000000, +0x878,0x000f000f,0x00000002, +0xe74,0x0f000000,0x00000002, +0xe78,0x0f000000,0x00000002, +0xe7c,0x0f000000,0x00000002, +0xe80,0x0f000000,0x00000002, +0x90c,0x000000ff,0x00000011, +0xc04,0x000000ff,0x00000011, +0xd04,0x0000000f,0x00000001, +0x1f4,0xffff0000,0x00007777, +0x234,0xf8000000,0x0000000a, +}; + +u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength] = { +0x804,0x0000000f,0x00000003, +0x824,0x00f0000f,0x00300004, +0x82c,0x00f0000f,0x00300002, +0x870,0x04000000,0x00000001, +0x864,0x00000400,0x00000000, +0x878,0x000f000f,0x00000002, +0xe74,0x0f000000,0x00000002, +0xe78,0x0f000000,0x00000002, +0xe7c,0x0f000000,0x00000002, +0xe80,0x0f000000,0x00000002, +0x90c,0x000000ff,0x00000011, +0xc04,0x000000ff,0x00000033, +0xd04,0x0000000f,0x00000003, +0x1f4,0xffff0000,0x00007777, +0x234,0xf8000000,0x0000000a, +}; + +u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength] = { +0x804,0x0000000f,0x00000003, +0x824,0x00f0000f,0x00300004, +0x82c,0x00f0000f,0x00300004, +0x870,0x04000000,0x00000001, +0x864,0x00000400,0x00000001, +0x878,0x000f000f,0x00020002, +0xe74,0x0f000000,0x00000006, +0xe78,0x0f000000,0x00000006, +0xe7c,0x0f000000,0x00000006, +0xe80,0x0f000000,0x00000006, +0x90c,0x000000ff,0x00000033, +0xc04,0x000000ff,0x00000033, +0xd04,0x0000000f,0x00000003, +0x1f4,0xffff0000,0x0000ffff, +0x234,0xf8000000,0x00000013, +}; + +u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength] = { +0xe00,0xffffffff,0x06090909, +0xe04,0xffffffff,0x00030406, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x0a0c0d0e, +0xe14,0xffffffff,0x04070809, +0xe18,0xffffffff,0x0a0c0d0e, +0xe1c,0xffffffff,0x04070809, +0xe00,0xffffffff,0x04040404, +0xe04,0xffffffff,0x00020204, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x02040404, +0xe14,0xffffffff,0x00000002, +0xe18,0xffffffff,0x02040404, +0xe1c,0xffffffff,0x00000002, +0xe00,0xffffffff,0x04040404, +0xe04,0xffffffff,0x00020204, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x02040404, +0xe14,0xffffffff,0x00000002, +0xe18,0xffffffff,0x02040404, +0xe1c,0xffffffff,0x00000002, +0xe00,0xffffffff,0x02020202, +0xe04,0xffffffff,0x00020202, +0xe08,0x0000ff00,0x00000000, +0xe10,0xffffffff,0x02020202, +0xe14,0xffffffff,0x00000002, +0xe18,0xffffffff,0x02020202, +0xe1c,0xffffffff,0x00000002, +}; + +u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength] = { +0x000,0x00030159, +0x001,0x00030250, +0x002,0x00010000, +0x010,0x0008000f, +0x011,0x000231fc, +0x010,0x000c000f, +0x011,0x0003f9f8, +0x010,0x0002000f, +0x011,0x00020101, +0x014,0x0001093e, +0x014,0x0009093e, +0x015,0x0000f8f4, +0x017,0x000f6500, +0x01a,0x00013056, +0x01b,0x00060000, +0x01c,0x00000300, +0x01e,0x00031059, +0x021,0x00054000, +0x022,0x0000083c, +0x023,0x00001558, +0x024,0x00000060, +0x025,0x00022583, +0x026,0x0000f200, +0x027,0x000eacf1, +0x028,0x0009bd54, +0x029,0x00004582, +0x02a,0x00000001, +0x02b,0x00021334, +0x02a,0x00000000, +0x02b,0x0000000a, +0x02a,0x00000001, +0x02b,0x00000808, +0x02b,0x00053333, +0x02c,0x0000000c, +0x02a,0x00000002, +0x02b,0x00000808, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000003, +0x02b,0x00000808, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000004, +0x02b,0x00000808, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000005, +0x02b,0x00000709, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x00000006, +0x02b,0x00000709, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000007, +0x02b,0x00000709, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000008, +0x02b,0x00000709, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000009, +0x02b,0x0000060a, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000a, +0x02b,0x0000060a, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x0000000b, +0x02b,0x0000060a, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x0000000c, +0x02b,0x0000060a, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x0000000d, +0x02b,0x0000050b, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000e, +0x02b,0x0000050b, +0x02b,0x00066623, +0x02c,0x0000001a, +0x02a,0x000e4000, +0x030,0x00020000, +0x031,0x000b9631, +0x032,0x0000130d, +0x033,0x00000187, +0x013,0x00019e6c, +0x013,0x00015e94, +0x000,0x00010159, +0x018,0x0000f401, +0x0fe,0x00000000, +0x01e,0x0003105b, +0x0fe,0x00000000, +0x000,0x00030159, +0x010,0x0004000f, +0x011,0x000203f9, +}; + +u32 Rtl8192SERadioB_Array[RadioB_ArrayLength] = { +0x000,0x00030159, +0x001,0x00001041, +0x002,0x00011000, +0x005,0x00080fc0, +0x007,0x000fc803, +0x013,0x00017cb0, +0x013,0x00011cc0, +0x013,0x0000dc60, +0x013,0x00008c60, +0x013,0x00004450, +0x013,0x00000020, +}; + +u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength] = { +0x000,0x00030159, +0x001,0x00030250, +0x002,0x00010000, +0x010,0x0008000f, +0x011,0x000231fc, +0x010,0x000c000f, +0x011,0x0003f9f8, +0x014,0x0001093e, +0x014,0x0009093e, +0x015,0x000198f4, +0x017,0x000f6500, +0x01a,0x00013056, +0x01b,0x00060000, +0x01c,0x00000300, +0x01e,0x00031059, +0x021,0x00054000, +0x022,0x0000083c, +0x023,0x00001558, +0x024,0x00000060, +0x025,0x00022583, +0x026,0x0000f200, +0x027,0x000eacf1, +0x028,0x000dbd54, +0x029,0x00004582, +0x02a,0x00000001, +0x02b,0x00021334, +0x02a,0x00000000, +0x02b,0x0000000a, +0x02a,0x00000001, +0x02b,0x00000808, +0x02b,0x00053333, +0x02c,0x0000000c, +0x02a,0x00000002, +0x02b,0x00000808, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000003, +0x02b,0x00000808, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000004, +0x02b,0x00000808, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000005, +0x02b,0x00000709, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x00000006, +0x02b,0x00000709, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000007, +0x02b,0x00000709, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000008, +0x02b,0x00000709, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000009, +0x02b,0x0000060a, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000a, +0x02b,0x0000060a, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x0000000b, +0x02b,0x0000060a, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x0000000c, +0x02b,0x0000060a, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x0000000d, +0x02b,0x0000050b, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000e, +0x02b,0x0000050b, +0x02b,0x00066623, +0x02c,0x0000001a, +0x02a,0x000e4000, +0x030,0x00020000, +0x031,0x000b9631, +0x033,0x00000187, +0x013,0x00019e6c, +0x013,0x00015e94, +0x000,0x00010159, +0x018,0x0000f401, +0x0fe,0x00000000, +0x01e,0x0003105b, +0x0fe,0x00000000, +0x000,0x00030159, +0x010,0x0004000f, +0x011,0x000203f9, +}; + +u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength] = { +0x000,0x00030159, +0x001,0x00030250, +0x002,0x00010000, +0x010,0x0008000f, +0x011,0x000231fc, +0x010,0x000c000f, +0x011,0x0003f9f8, +0x014,0x0001093e, +0x014,0x0009093e, +0x015,0x000198f4, +0x017,0x000f6500, +0x01a,0x00013056, +0x01b,0x00060000, +0x01c,0x00000300, +0x01e,0x00031059, +0x021,0x00054000, +0x022,0x0000083c, +0x023,0x00001558, +0x024,0x00000060, +0x025,0x00022583, +0x026,0x0000f200, +0x027,0x000eacf1, +0x028,0x000dbd54, +0x029,0x00004582, +0x02a,0x00000001, +0x02b,0x00021334, +0x02a,0x00000000, +0x02b,0x0000000a, +0x02a,0x00000001, +0x02b,0x00000808, +0x02b,0x00053333, +0x02c,0x0000000c, +0x02a,0x00000002, +0x02b,0x00000808, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000003, +0x02b,0x00000808, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000004, +0x02b,0x00000808, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000005, +0x02b,0x00000709, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x00000006, +0x02b,0x00000709, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x00000007, +0x02b,0x00000709, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x00000008, +0x02b,0x00000709, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x00000009, +0x02b,0x0000060a, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000a, +0x02b,0x0000060a, +0x02b,0x0005b333, +0x02c,0x0000000d, +0x02a,0x0000000b, +0x02b,0x0000060a, +0x02b,0x00063333, +0x02c,0x0000000d, +0x02a,0x0000000c, +0x02b,0x0000060a, +0x02b,0x0006b333, +0x02c,0x0000000d, +0x02a,0x0000000d, +0x02b,0x0000050b, +0x02b,0x00053333, +0x02c,0x0000000d, +0x02a,0x0000000e, +0x02b,0x0000050b, +0x02b,0x00066623, +0x02c,0x0000001a, +0x02a,0x000e4000, +0x030,0x00020000, +0x031,0x000b9631, +0x033,0x00000187, +0x013,0x00019e6c, +0x013,0x00015e94, +0x000,0x00010159, +0x018,0x0000f401, +0x0fe,0x00000000, +0x01e,0x0003105b, +0x0fe,0x00000000, +0x000,0x00030159, +0x010,0x0004000f, +0x011,0x000203f9, +}; + +u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength] = { +0x000,0x00030159, +0x001,0x00001041, +0x002,0x00011000, +0x005,0x00080fc0, +0x007,0x000fc803, +}; + +u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength] = { +0x020,0x00000035, +0x048,0x0000000e, +0x049,0x000000f0, +0x04a,0x00000077, +0x04b,0x00000083, +0x0b5,0x00000021, +0x0dc,0x000000ff, +0x0dd,0x000000ff, +0x0de,0x000000ff, +0x0df,0x000000ff, +0x116,0x00000000, +0x117,0x00000000, +0x118,0x00000000, +0x119,0x00000000, +0x11a,0x00000000, +0x11b,0x00000000, +0x11c,0x00000000, +0x11d,0x00000000, +0x160,0x0000000b, +0x161,0x0000000b, +0x162,0x0000000b, +0x163,0x0000000b, +0x164,0x0000000b, +0x165,0x0000000b, +0x166,0x0000000b, +0x167,0x0000000b, +0x168,0x0000000b, +0x169,0x0000000b, +0x16a,0x0000000b, +0x16b,0x0000000b, +0x16c,0x0000000b, +0x16d,0x0000000b, +0x16e,0x0000000b, +0x16f,0x0000000b, +0x170,0x0000000b, +0x171,0x0000000b, +0x172,0x0000000b, +0x173,0x0000000b, +0x174,0x0000000b, +0x175,0x0000000b, +0x176,0x0000000b, +0x177,0x0000000b, +0x178,0x0000000b, +0x179,0x0000000b, +0x17a,0x0000000b, +0x17b,0x0000000b, +0x17c,0x0000000b, +0x17d,0x0000000b, +0x17e,0x0000000b, +0x17f,0x0000000b, +0x236,0x0000000c, +0x503,0x00000022, +0x560,0x00000000, +}; + +u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength] = { +0x0, }; + +u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength] = { +0xc78,0x7f000001, +0xc78,0x7f010001, +0xc78,0x7e020001, +0xc78,0x7d030001, +0xc78,0x7c040001, +0xc78,0x7b050001, +0xc78,0x7a060001, +0xc78,0x79070001, +0xc78,0x78080001, +0xc78,0x77090001, +0xc78,0x760a0001, +0xc78,0x750b0001, +0xc78,0x740c0001, +0xc78,0x730d0001, +0xc78,0x720e0001, +0xc78,0x710f0001, +0xc78,0x70100001, +0xc78,0x6f110001, +0xc78,0x6f120001, +0xc78,0x6e130001, +0xc78,0x6d140001, +0xc78,0x6d150001, +0xc78,0x6c160001, +0xc78,0x6b170001, +0xc78,0x6a180001, +0xc78,0x6a190001, +0xc78,0x691a0001, +0xc78,0x681b0001, +0xc78,0x671c0001, +0xc78,0x661d0001, +0xc78,0x651e0001, +0xc78,0x641f0001, +0xc78,0x63200001, +0xc78,0x4c210001, +0xc78,0x4b220001, +0xc78,0x4a230001, +0xc78,0x49240001, +0xc78,0x48250001, +0xc78,0x47260001, +0xc78,0x46270001, +0xc78,0x45280001, +0xc78,0x44290001, +0xc78,0x2c2a0001, +0xc78,0x2b2b0001, +0xc78,0x2a2c0001, +0xc78,0x292d0001, +0xc78,0x282e0001, +0xc78,0x272f0001, +0xc78,0x26300001, +0xc78,0x25310001, +0xc78,0x24320001, +0xc78,0x23330001, +0xc78,0x22340001, +0xc78,0x09350001, +0xc78,0x08360001, +0xc78,0x07370001, +0xc78,0x06380001, +0xc78,0x05390001, +0xc78,0x043a0001, +0xc78,0x033b0001, +0xc78,0x023c0001, +0xc78,0x013d0001, +0xc78,0x003e0001, +0xc78,0x003f0001, +0xc78,0x7f400001, +0xc78,0x7f410001, +0xc78,0x7e420001, +0xc78,0x7d430001, +0xc78,0x7c440001, +0xc78,0x7b450001, +0xc78,0x7a460001, +0xc78,0x79470001, +0xc78,0x78480001, +0xc78,0x77490001, +0xc78,0x764a0001, +0xc78,0x754b0001, +0xc78,0x744c0001, +0xc78,0x734d0001, +0xc78,0x724e0001, +0xc78,0x714f0001, +0xc78,0x70500001, +0xc78,0x6f510001, +0xc78,0x6f520001, +0xc78,0x6e530001, +0xc78,0x6d540001, +0xc78,0x6d550001, +0xc78,0x6c560001, +0xc78,0x6b570001, +0xc78,0x6a580001, +0xc78,0x6a590001, +0xc78,0x695a0001, +0xc78,0x685b0001, +0xc78,0x675c0001, +0xc78,0x665d0001, +0xc78,0x655e0001, +0xc78,0x645f0001, +0xc78,0x63600001, +0xc78,0x4c610001, +0xc78,0x4b620001, +0xc78,0x4a630001, +0xc78,0x49640001, +0xc78,0x48650001, +0xc78,0x47660001, +0xc78,0x46670001, +0xc78,0x45680001, +0xc78,0x44690001, +0xc78,0x2c6a0001, +0xc78,0x2b6b0001, +0xc78,0x2a6c0001, +0xc78,0x296d0001, +0xc78,0x286e0001, +0xc78,0x276f0001, +0xc78,0x26700001, +0xc78,0x25710001, +0xc78,0x24720001, +0xc78,0x23730001, +0xc78,0x22740001, +0xc78,0x09750001, +0xc78,0x08760001, +0xc78,0x07770001, +0xc78,0x06780001, +0xc78,0x05790001, +0xc78,0x047a0001, +0xc78,0x037b0001, +0xc78,0x027c0001, +0xc78,0x017d0001, +0xc78,0x007e0001, +0xc78,0x007f0001, +0xc78,0x3000001e, +0xc78,0x3001001e, +0xc78,0x3002001e, +0xc78,0x3003001e, +0xc78,0x3004001e, +0xc78,0x3405001e, +0xc78,0x3806001e, +0xc78,0x3e07001e, +0xc78,0x3e08001e, +0xc78,0x4409001e, +0xc78,0x460a001e, +0xc78,0x480b001e, +0xc78,0x480c001e, +0xc78,0x4e0d001e, +0xc78,0x560e001e, +0xc78,0x5a0f001e, +0xc78,0x5e10001e, +0xc78,0x6211001e, +0xc78,0x6c12001e, +0xc78,0x7213001e, +0xc78,0x7214001e, +0xc78,0x7215001e, +0xc78,0x7216001e, +0xc78,0x7217001e, +0xc78,0x7218001e, +0xc78,0x7219001e, +0xc78,0x721a001e, +0xc78,0x721b001e, +0xc78,0x721c001e, +0xc78,0x721d001e, +0xc78,0x721e001e, +0xc78,0x721f001e, +}; + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_inc.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_inc.h @@ -0,0 +1,42 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + +#ifndef _R8192S_INC_H +#define _R8192S_INC_H + +#include "r8192S_dev.h" +#include "r8192S_led.h" +#include "r8192S_def.h" +#include "r8192S_phy.h" +#include "r8192S_phyreg.h" +#include "r8192S_firmware.h" +#include "r8192S_hwimg.h" +#include "r8192S_hw.h" +#include "r8192S_rtl6052.h" +#include "r8192S_Efuse.h" +#include "r8192S_mp.h" +#include "r8192S_scan.h" + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.h @@ -0,0 +1,60 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef __INC_HAL8192SE_FW_IMG_H +#define __INC_HAL8192SE_FW_IMG_H + +/*Created on 2009/11/17, 16:15*/ + +#include +#define ImgArrayLength 88592 +extern u8 Rtl8192SEFwImgArray[ImgArrayLength]; +#define MainArrayLength 1 +extern u8 Rtl8192SEFwMainArray[MainArrayLength]; +#define DataArrayLength 1 +extern u8 Rtl8192SEFwDataArray[DataArrayLength]; +#define PHY_REG_2T2RArrayLength 372 +extern u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength]; +#define PHY_REG_1T2RArrayLength 1 +extern u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength]; +#define PHY_ChangeTo_1T1RArrayLength 48 +extern u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength]; +#define PHY_ChangeTo_1T2RArrayLength 45 +extern u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength]; +#define PHY_ChangeTo_2T2RArrayLength 45 +extern u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength]; +#define PHY_REG_Array_PGLength 84 +extern u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength]; +#define RadioA_1T_ArrayLength 202 +extern u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength]; +#define RadioB_ArrayLength 22 +extern u32 Rtl8192SERadioB_Array[RadioB_ArrayLength]; +#define RadioA_to1T_ArrayLength 196 +extern u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength]; +#define RadioA_to2T_ArrayLength 196 +extern u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength]; +#define RadioB_GM_ArrayLength 10 +extern u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength]; +#define MAC_2T_ArrayLength 106 +extern u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength]; +#define MACPHY_Array_PGLength 1 +extern u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength]; +#define AGCTAB_ArrayLength 320 +extern u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength]; + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_mp.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_mp.h @@ -0,0 +1,185 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + +#ifndef __INC_HAL8192S_MP_H +#define __INC_HAL8192S_MP_H + +/*--------------------------Define Parameters-------------------------------*/ + +#define MPT_NOOP 0 +#define MPT_READ_MAC_1BYTE 1 +#define MPT_READ_MAC_2BYTE 2 +#define MPT_READ_MAC_4BYTE 3 +#define MPT_WRITE_MAC_1BYTE 4 +#define MPT_WRITE_MAC_2BYTE 5 +#define MPT_WRITE_MAC_4BYTE 6 +#define MPT_READ_BB_CCK 7 +#define MPT_WRITE_BB_CCK 8 +#define MPT_READ_BB_OFDM 9 +#define MPT_WRITE_BB_OFDM 10 +#define MPT_READ_RF 11 +#define MPT_WRITE_RF 12 +#define MPT_READ_EEPROM_1BYTE 13 +#define MPT_WRITE_EEPROM_1BYTE 14 +#define MPT_READ_EEPROM_2BYTE 15 +#define MPT_WRITE_EEPROM_2BYTE 16 +#define MPT_SET_CSTHRESHOLD 21 +#define MPT_SET_INITGAIN 22 +#define MPT_SWITCH_BAND 23 +#define MPT_SWITCH_CHANNEL 24 +#define MPT_SET_DATARATE 25 +#define MPT_SWITCH_ANTENNA 26 +#define MPT_SET_TX_POWER 27 +#define MPT_SET_CONT_TX 28 +#define MPT_SET_SINGLE_CARRIER 29 +#define MPT_SET_CARRIER_SUPPRESSION 30 + +#define MPT_SET_ANTENNA_GAIN_OFFSET 40 +#define MPT_SET_CRYSTAL_CAP 41 +#define MPT_TRIGGER_RF_THERMAL_METER 42 +#define MPT_SET_SINGLE_TONE 43 +#define MPT_READ_RF_THERMAL_METER 44 +#define MPT_SWITCH_BAND_WIDTH 45 +#define MPT_QUERY_TSSI_VALUE 46 +#define MPT_SET_TX_POWER_ADJUST 47 +#define MPT_DO_TX_POWER_TRACK 48 +#define MPT_QUERY_NIC_TYPE 49 +#define MPT_QUERY_WPS_PUSHED 50 +#define MPT_SET_LED_CONTROL 51 +#define MPT_TX_POWER_TRACK_CONTROL 52 + +#define MPT_WRITE_EFUSE_1BYTE 53 +#define MPT_READ_EFUSE_1BYTE 54 +#define MPT_READ_EFUSE_2BYTE 55 +#define MPT_READ_EFUSE_4BYTE 56 +#define MPT_UPDATE_EFUSE 57 +#define MPT_UPDATE_EFUSE_UTILIZE 58 +#define MPT_UPDATE_AUTOLOAD_STS 59 + +#define MAX_TX_PWR_INDEX_N_MODE 64 +/*--------------------------Define Parameters-------------------------------*/ + +/*------------------------------Define structure----------------------------*/ +/* MP set force data rate base on the definition. */ +typedef enum _MPT_RATE_INDEX{ + /* CCK rate. */ + MPT_RATE_1M = 1, + MPT_RATE_2M, + MPT_RATE_55M, + MPT_RATE_11M, + + /* OFDM rate. */ + MPT_RATE_6M, + MPT_RATE_9M, + MPT_RATE_12M, + MPT_RATE_18M, + MPT_RATE_24M, + MPT_RATE_36M, + MPT_RATE_48M, + MPT_RATE_54M, + + /* HT rate. */ + MPT_RATE_MCS0, + MPT_RATE_MCS1, + MPT_RATE_MCS2, + MPT_RATE_MCS3, + MPT_RATE_MCS4, + MPT_RATE_MCS5, + MPT_RATE_MCS6, + MPT_RATE_MCS7, + MPT_RATE_MCS8, + MPT_RATE_MCS9, + MPT_RATE_MCS10, + MPT_RATE_MCS11, + MPT_RATE_MCS12, + MPT_RATE_MCS13, + MPT_RATE_MCS14, + MPT_RATE_MCS15, + MPT_RATE_LAST + +}MPT_RATE_E, *PMPT_RATE_E; + +typedef enum _MPT_Bandwidth_Switch_Mode{ + BAND_20MHZ_MODE = 0, + BAND_40MHZ_DUPLICATE_MODE = 1, + BAND_40MHZ_LOWER_MODE = 2, + BAND_40MHZ_UPPER_MODE = 3, + BAND_40MHZ_DONTCARE_MODE = 4 +}MPT_BANDWIDTH_MODE_E, *PMPT_BANDWIDTH_MODE_E; + +typedef enum _TxAGC_Offset{ + TxAGC_Offset_0 = 0x00, + TxAGC_Offset_1, + TxAGC_Offset_2, + TxAGC_Offset_3, + TxAGC_Offset_4, + TxAGC_Offset_5, + TxAGC_Offset_6, + TxAGC_Offset_7, + TxAGC_Offset_neg8, + TxAGC_Offset_neg7, + TxAGC_Offset_neg6, + TxAGC_Offset_neg5, + TxAGC_Offset_neg4, + TxAGC_Offset_neg3, + TxAGC_Offset_neg2, + TxAGC_Offset_neg1 +} TxAGC_Offset; +/*------------------------------Define structure----------------------------*/ +void rtl8192_init_mp(struct net_device* dev); +int r8192_wx_mp_set_chan(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); +int r8192_wx_mp_set_txrate(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); +int r8192_wx_mp_set_txpower(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); +int r8192_wx_mp_set_bw(struct net_device *dev,struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); +int r8192_wx_mp_set_txstart(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); +int r8192_wx_mp_set_singlecarrier(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); +int r8192_wx_mp_write_rf(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); +int r8192_wx_mp_write_mac(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra); + +void mpt_StartCckContTx(struct net_device *dev,bool bScrambleOn); +void mpt_StartOfdmContTx(struct net_device *dev); +void mpt_StopCckCoNtTx(struct net_device *dev); +void mpt_StopOfdmContTx(struct net_device *dev); +void mpt_SwitchRfSetting92S(struct net_device *dev); +bool mpt_ProSetTxPower( struct net_device *dev, u32 ulTxPower); +bool mpt_ProSetTxAGCOffset(struct net_device *dev, u32 ulTxAGCOffset); +bool mpt_ProSetRxFilter(struct net_device *dev, u32 RCRMode); +bool mpt_ProSetRxFilter(struct net_device *dev, u32 RCRMode); +bool mpt_ProSetModulation(struct net_device *dev, u32 ulWirelessMode); +void mpt_Pro819xIoCallback(struct net_device *dev); +void MPT_ProSetSingleCarrier(struct net_device *dev, bool ulMode); +void MPT_ProSetBandWidth819x(struct net_device *dev); +void MPT_ProSwChannel(struct net_device *dev); +void MPT_ProSetDataRate819x(struct net_device *dev); +void MPT_ProSetTxAGCOffset(struct net_device *dev); +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_phyreg.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_phyreg.h @@ -0,0 +1,954 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef __INC_HAL8192SPHYREG_H +#define __INC_HAL8192SPHYREG_H + + +/*--------------------------Define Parameters-------------------------------*/ + + + + +#define rPMAC_Reset 0x100 +#define rPMAC_TxStart 0x104 +#define rPMAC_TxLegacySIG 0x108 +#define rPMAC_TxHTSIG1 0x10c +#define rPMAC_TxHTSIG2 0x110 +#define rPMAC_PHYDebug 0x114 +#define rPMAC_TxPacketNum 0x118 +#define rPMAC_TxIdle 0x11c +#define rPMAC_TxMACHeader0 0x120 +#define rPMAC_TxMACHeader1 0x124 +#define rPMAC_TxMACHeader2 0x128 +#define rPMAC_TxMACHeader3 0x12c +#define rPMAC_TxMACHeader4 0x130 +#define rPMAC_TxMACHeader5 0x134 +#define rPMAC_TxDataType 0x138 +#define rPMAC_TxRandomSeed 0x13c +#define rPMAC_CCKPLCPPreamble 0x140 +#define rPMAC_CCKPLCPHeader 0x144 +#define rPMAC_CCKCRC16 0x148 +#define rPMAC_OFDMRxCRC32OK 0x170 +#define rPMAC_OFDMRxCRC32Er 0x174 +#define rPMAC_OFDMRxParityEr 0x178 +#define rPMAC_OFDMRxCRC8Er 0x17c +#define rPMAC_CCKCRxRC16Er 0x180 +#define rPMAC_CCKCRxRC32Er 0x184 +#define rPMAC_CCKCRxRC32OK 0x188 +#define rPMAC_TxStatus 0x18c + +#define RF_BB_CMD_ADDR 0x02c0 +#define RF_BB_CMD_DATA 0x02c4 + +#define rFPGA0_RFMOD 0x800 + +#define rFPGA0_TxInfo 0x804 +#define rFPGA0_PSDFunction 0x808 + +#define rFPGA0_TxGainStage 0x80c + +#define rFPGA0_RFTiming1 0x810 +#define rFPGA0_RFTiming2 0x814 + +#define rFPGA0_XA_HSSIParameter1 0x820 +#define rFPGA0_XA_HSSIParameter2 0x824 +#define rFPGA0_XB_HSSIParameter1 0x828 +#define rFPGA0_XB_HSSIParameter2 0x82c +#define rFPGA0_XC_HSSIParameter1 0x830 +#define rFPGA0_XC_HSSIParameter2 0x834 +#define rFPGA0_XD_HSSIParameter1 0x838 +#define rFPGA0_XD_HSSIParameter2 0x83c +#define rFPGA0_XA_LSSIParameter 0x840 +#define rFPGA0_XB_LSSIParameter 0x844 +#define rFPGA0_XC_LSSIParameter 0x848 +#define rFPGA0_XD_LSSIParameter 0x84c + +#define rFPGA0_RFWakeUpParameter 0x850 +#define rFPGA0_RFSleepUpParameter 0x854 + +#define rFPGA0_XAB_SwitchControl 0x858 +#define rFPGA0_XCD_SwitchControl 0x85c + +#define rFPGA0_XA_RFInterfaceOE 0x860 +#define rFPGA0_XB_RFInterfaceOE 0x864 +#define rFPGA0_XC_RFInterfaceOE 0x868 +#define rFPGA0_XD_RFInterfaceOE 0x86c + +#define rFPGA0_XAB_RFInterfaceSW 0x870 +#define rFPGA0_XCD_RFInterfaceSW 0x874 + +#define rFPGA0_XAB_RFParameter 0x878 +#define rFPGA0_XCD_RFParameter 0x87c + +#define rFPGA0_AnalogParameter1 0x880 +#define rFPGA0_AnalogParameter2 0x884 +#define rFPGA0_AnalogParameter3 0x888 +#define rFPGA0_AnalogParameter4 0x88c + +#define rFPGA0_XA_LSSIReadBack 0x8a0 +#define rFPGA0_XB_LSSIReadBack 0x8a4 +#define rFPGA0_XC_LSSIReadBack 0x8a8 +#define rFPGA0_XD_LSSIReadBack 0x8ac + +#define rFPGA0_PSDReport 0x8b4 +#define TransceiverA_HSPI_Readback 0x8b8 +#define TransceiverB_HSPI_Readback 0x8bc +#define rFPGA0_XAB_RFInterfaceRB 0x8e0 +#define rFPGA0_XCD_RFInterfaceRB 0x8e4 + +#define rFPGA1_RFMOD 0x900 + +#define rFPGA1_TxBlock 0x904 +#define rFPGA1_DebugSelect 0x908 +#define rFPGA1_TxInfo 0x90c + +#define rCCK0_System 0xa00 + +#define rCCK0_AFESetting 0xa04 +#define rCCK0_CCA 0xa08 + +#define rCCK0_RxAGC1 0xa0c +#define rCCK0_RxAGC2 0xa10 + +#define rCCK0_RxHP 0xa14 + +#define rCCK0_DSPParameter1 0xa18 +#define rCCK0_DSPParameter2 0xa1c + +#define rCCK0_TxFilter1 0xa20 +#define rCCK0_TxFilter2 0xa24 +#define rCCK0_DebugPort 0xa28 +#define rCCK0_FalseAlarmReport 0xa2c +#define rCCK0_TRSSIReport 0xa50 +#define rCCK0_RxReport 0xa54 +#define rCCK0_FACounterLower 0xa5c +#define rCCK0_FACounterUpper 0xa58 + +#define rOFDM0_LSTF 0xc00 + +#define rOFDM0_TRxPathEnable 0xc04 +#define rOFDM0_TRMuxPar 0xc08 +#define rOFDM0_TRSWIsolation 0xc0c + +#define rOFDM0_XARxAFE 0xc10 +#define rOFDM0_XARxIQImbalance 0xc14 +#define rOFDM0_XBRxAFE 0xc18 +#define rOFDM0_XBRxIQImbalance 0xc1c +#define rOFDM0_XCRxAFE 0xc20 +#define rOFDM0_XCRxIQImbalance 0xc24 +#define rOFDM0_XDRxAFE 0xc28 +#define rOFDM0_XDRxIQImbalance 0xc2c + +#define rOFDM0_RxDetector1 0xc30 +#define rOFDM0_RxDetector2 0xc34 +#define rOFDM0_RxDetector3 0xc38 +#define rOFDM0_RxDetector4 0xc3c + +#define rOFDM0_RxDSP 0xc40 +#define rOFDM0_CFOandDAGC 0xc44 +#define rOFDM0_CCADropThreshold 0xc48 +#define rOFDM0_ECCAThreshold 0xc4c + +#define rOFDM0_XAAGCCore1 0xc50 +#define rOFDM0_XAAGCCore2 0xc54 +#define rOFDM0_XBAGCCore1 0xc58 +#define rOFDM0_XBAGCCore2 0xc5c +#define rOFDM0_XCAGCCore1 0xc60 +#define rOFDM0_XCAGCCore2 0xc64 +#define rOFDM0_XDAGCCore1 0xc68 +#define rOFDM0_XDAGCCore2 0xc6c + +#define rOFDM0_AGCParameter1 0xc70 +#define rOFDM0_AGCParameter2 0xc74 +#define rOFDM0_AGCRSSITable 0xc78 +#define rOFDM0_HTSTFAGC 0xc7c + +#define rOFDM0_XATxIQImbalance 0xc80 +#define rOFDM0_XATxAFE 0xc84 +#define rOFDM0_XBTxIQImbalance 0xc88 +#define rOFDM0_XBTxAFE 0xc8c +#define rOFDM0_XCTxIQImbalance 0xc90 +#define rOFDM0_XCTxAFE 0xc94 +#define rOFDM0_XDTxIQImbalance 0xc98 +#define rOFDM0_XDTxAFE 0xc9c + +#define rOFDM0_RxHPParameter 0xce0 +#define rOFDM0_TxPseudoNoiseWgt 0xce4 +#define rOFDM0_FrameSync 0xcf0 +#define rOFDM0_DFSReport 0xcf4 +#define rOFDM0_TxCoeff1 0xca4 +#define rOFDM0_TxCoeff2 0xca8 +#define rOFDM0_TxCoeff3 0xcac +#define rOFDM0_TxCoeff4 0xcb0 +#define rOFDM0_TxCoeff5 0xcb4 +#define rOFDM0_TxCoeff6 0xcb8 + + +#define rOFDM1_LSTF 0xd00 +#define rOFDM1_TRxPathEnable 0xd04 + +#define rOFDM1_CFO 0xd08 +#define rOFDM1_CSI1 0xd10 +#define rOFDM1_SBD 0xd14 +#define rOFDM1_CSI2 0xd18 +#define rOFDM1_CFOTracking 0xd2c +#define rOFDM1_TRxMesaure1 0xd34 +#define rOFDM1_IntfDet 0xd3c +#define rOFDM1_PseudoNoiseStateAB 0xd50 +#define rOFDM1_PseudoNoiseStateCD 0xd54 +#define rOFDM1_RxPseudoNoiseWgt 0xd58 + +#define rOFDM_PHYCounter1 0xda0 +#define rOFDM_PHYCounter2 0xda4 +#define rOFDM_PHYCounter3 0xda8 + +#define rOFDM_ShortCFOAB 0xdac +#define rOFDM_ShortCFOCD 0xdb0 +#define rOFDM_LongCFOAB 0xdb4 +#define rOFDM_LongCFOCD 0xdb8 +#define rOFDM_TailCFOAB 0xdbc +#define rOFDM_TailCFOCD 0xdc0 +#define rOFDM_PWMeasure1 0xdc4 +#define rOFDM_PWMeasure2 0xdc8 +#define rOFDM_BWReport 0xdcc +#define rOFDM_AGCReport 0xdd0 +#define rOFDM_RxSNR 0xdd4 +#define rOFDM_RxEVMCSI 0xdd8 +#define rOFDM_SIGReport 0xddc + + +#define rTxAGC_Rate18_06 0xe00 +#define rTxAGC_Rate54_24 0xe04 +#define rTxAGC_CCK_Mcs32 0xe08 +#define rTxAGC_Mcs03_Mcs00 0xe10 +#define rTxAGC_Mcs07_Mcs04 0xe14 +#define rTxAGC_Mcs11_Mcs08 0xe18 +#define rTxAGC_Mcs15_Mcs12 0xe1c + +#define rZebra1_HSSIEnable 0x0 +#define rZebra1_TRxEnable1 0x1 +#define rZebra1_TRxEnable2 0x2 +#define rZebra1_AGC 0x4 +#define rZebra1_ChargePump 0x5 +#define rZebra1_Channel 0x7 + +#define rZebra1_TxGain 0x8 +#define rZebra1_TxLPF 0x9 +#define rZebra1_RxLPF 0xb +#define rZebra1_RxHPFCorner 0xc + +#define rGlobalCtrl 0 +#define rRTL8256_TxLPF 19 +#define rRTL8256_RxLPF 11 + +#define rRTL8258_TxLPF 0x11 +#define rRTL8258_RxLPF 0x13 +#define rRTL8258_RSSILPF 0xa + +#define RF_AC 0x00 + +#define RF_IQADJ_G1 0x01 +#define RF_IQADJ_G2 0x02 +#define RF_POW_TRSW 0x05 + +#define RF_GAIN_RX 0x06 +#define RF_GAIN_TX 0x07 + +#define RF_TXM_IDAC 0x08 +#define RF_BS_IQGEN 0x0F + +#define RF_MODE1 0x10 +#define RF_MODE2 0x11 + +#define RF_RX_AGC_HP 0x12 +#define RF_TX_AGC 0x13 +#define RF_BIAS 0x14 +#define RF_IPA 0x15 +#define RF_POW_ABILITY 0x17 +#define RF_MODE_AG 0x18 +#define rRfChannel 0x18 +#define RF_CHNLBW 0x18 +#define RF_TOP 0x19 + +#define RF_RX_G1 0x1A +#define RF_RX_G2 0x1B + +#define RF_RX_BB2 0x1C +#define RF_RX_BB1 0x1D + +#define RF_RCK1 0x1E +#define RF_RCK2 0x1F + +#define RF_TX_G1 0x20 +#define RF_TX_G2 0x21 +#define RF_TX_G3 0x22 + +#define RF_TX_BB1 0x23 + +#define RF_T_METER 0x24 + +#define RF_SYN_G1 0x25 +#define RF_SYN_G2 0x26 +#define RF_SYN_G3 0x27 +#define RF_SYN_G4 0x28 +#define RF_SYN_G5 0x29 +#define RF_SYN_G6 0x2A +#define RF_SYN_G7 0x2B +#define RF_SYN_G8 0x2C + +#define RF_RCK_OS 0x30 + +#define RF_TXPA_G1 0x31 +#define RF_TXPA_G2 0x32 +#define RF_TXPA_G3 0x33 + +#define bBBResetB 0x100 +#define bGlobalResetB 0x200 +#define bOFDMTxStart 0x4 +#define bCCKTxStart 0x8 +#define bCRC32Debug 0x100 +#define bPMACLoopback 0x10 +#define bTxLSIG 0xffffff +#define bOFDMTxRate 0xf +#define bOFDMTxReserved 0x10 +#define bOFDMTxLength 0x1ffe0 +#define bOFDMTxParity 0x20000 +#define bTxHTSIG1 0xffffff +#define bTxHTMCSRate 0x7f +#define bTxHTBW 0x80 +#define bTxHTLength 0xffff00 +#define bTxHTSIG2 0xffffff +#define bTxHTSmoothing 0x1 +#define bTxHTSounding 0x2 +#define bTxHTReserved 0x4 +#define bTxHTAggreation 0x8 +#define bTxHTSTBC 0x30 +#define bTxHTAdvanceCoding 0x40 +#define bTxHTShortGI 0x80 +#define bTxHTNumberHT_LTF 0x300 +#define bTxHTCRC8 0x3fc00 +#define bCounterReset 0x10000 +#define bNumOfOFDMTx 0xffff +#define bNumOfCCKTx 0xffff0000 +#define bTxIdleInterval 0xffff +#define bOFDMService 0xffff0000 +#define bTxMACHeader 0xffffffff +#define bTxDataInit 0xff +#define bTxHTMode 0x100 +#define bTxDataType 0x30000 +#define bTxRandomSeed 0xffffffff +#define bCCKTxPreamble 0x1 +#define bCCKTxSFD 0xffff0000 +#define bCCKTxSIG 0xff +#define bCCKTxService 0xff00 +#define bCCKLengthExt 0x8000 +#define bCCKTxLength 0xffff0000 +#define bCCKTxCRC16 0xffff +#define bCCKTxStatus 0x1 +#define bOFDMTxStatus 0x2 + +#define IS_BB_REG_OFFSET_92S(_Offset) ((_Offset >= 0x800) && (_Offset <= 0xfff)) + +#define bRFMOD 0x1 +#define bJapanMode 0x2 +#define bCCKTxSC 0x30 +#define bCCKEn 0x1000000 +#define bOFDMEn 0x2000000 + +#define bOFDMRxADCPhase 0x10000 +#define bOFDMTxDACPhase 0x40000 +#define bXATxAGC 0x3f + +#define bXBTxAGC 0xf00 +#define bXCTxAGC 0xf000 +#define bXDTxAGC 0xf0000 + +#define bPAStart 0xf0000000 +#define bTRStart 0x00f00000 +#define bRFStart 0x0000f000 +#define bBBStart 0x000000f0 +#define bBBCCKStart 0x0000000f +#define bPAEnd 0xf +#define bTREnd 0x0f000000 +#define bRFEnd 0x000f0000 +#define bCCAMask 0x000000f0 +#define bR2RCCAMask 0x00000f00 +#define bHSSI_R2TDelay 0xf8000000 +#define bHSSI_T2RDelay 0xf80000 +#define bContTxHSSI 0x400 +#define bIGFromCCK 0x200 +#define bAGCAddress 0x3f +#define bRxHPTx 0x7000 +#define bRxHPT2R 0x38000 +#define bRxHPCCKIni 0xc0000 +#define bAGCTxCode 0xc00000 +#define bAGCRxCode 0x300000 + +#define b3WireDataLength 0x800 +#define b3WireAddressLength 0x400 + +#define b3WireRFPowerDown 0x1 +#define b5GPAPEPolarity 0x40000000 +#define b2GPAPEPolarity 0x80000000 +#define bRFSW_TxDefaultAnt 0x3 +#define bRFSW_TxOptionAnt 0x30 +#define bRFSW_RxDefaultAnt 0x300 +#define bRFSW_RxOptionAnt 0x3000 +#define bRFSI_3WireData 0x1 +#define bRFSI_3WireClock 0x2 +#define bRFSI_3WireLoad 0x4 +#define bRFSI_3WireRW 0x8 +#define bRFSI_3Wire 0xf + +#define bRFSI_RFENV 0x10 + +#define bRFSI_TRSW 0x20 +#define bRFSI_TRSWB 0x40 +#define bRFSI_ANTSW 0x100 +#define bRFSI_ANTSWB 0x200 +#define bRFSI_PAPE 0x400 +#define bRFSI_PAPE5G 0x800 +#define bBandSelect 0x1 +#define bHTSIG2_GI 0x80 +#define bHTSIG2_Smoothing 0x01 +#define bHTSIG2_Sounding 0x02 +#define bHTSIG2_Aggreaton 0x08 +#define bHTSIG2_STBC 0x30 +#define bHTSIG2_AdvCoding 0x40 +#define bHTSIG2_NumOfHTLTF 0x300 +#define bHTSIG2_CRC8 0x3fc +#define bHTSIG1_MCS 0x7f +#define bHTSIG1_BandWidth 0x80 +#define bHTSIG1_HTLength 0xffff +#define bLSIG_Rate 0xf +#define bLSIG_Reserved 0x10 +#define bLSIG_Length 0x1fffe +#define bLSIG_Parity 0x20 +#define bCCKRxPhase 0x4 +#if (RTL92SE_FPGA_VERIFY == 1) +#define bLSSIReadAddress 0x3f000000 +#else +#define bLSSIReadAddress 0x7f800000 +#endif +#define bLSSIReadEdge 0x80000000 +#if (RTL92SE_FPGA_VERIFY == 1) +#define bLSSIReadBackData 0xfff +#else +#define bLSSIReadBackData 0xfffff +#endif +#define bLSSIReadOKFlag 0x1000 +#define bCCKSampleRate 0x8 +#define bRegulator0Standby 0x1 +#define bRegulatorPLLStandby 0x2 +#define bRegulator1Standby 0x4 +#define bPLLPowerUp 0x8 +#define bDPLLPowerUp 0x10 +#define bDA10PowerUp 0x20 +#define bAD7PowerUp 0x200 +#define bDA6PowerUp 0x2000 +#define bXtalPowerUp 0x4000 +#define b40MDClkPowerUP 0x8000 +#define bDA6DebugMode 0x20000 +#define bDA6Swing 0x380000 + +#define bADClkPhase 0x4000000 + +#define b80MClkDelay 0x18000000 +#define bAFEWatchDogEnable 0x20000000 + +#define bXtalCap01 0xc0000000 +#define bXtalCap23 0x3 +#define bXtalCap92x 0x0f000000 +#define bXtalCap 0x0f000000 + +#define bIntDifClkEnable 0x400 +#define bExtSigClkEnable 0x800 +#define bBandgapMbiasPowerUp 0x10000 +#define bAD11SHGain 0xc0000 +#define bAD11InputRange 0x700000 +#define bAD11OPCurrent 0x3800000 +#define bIPathLoopback 0x4000000 +#define bQPathLoopback 0x8000000 +#define bAFELoopback 0x10000000 +#define bDA10Swing 0x7e0 +#define bDA10Reverse 0x800 +#define bDAClkSource 0x1000 +#define bAD7InputRange 0x6000 +#define bAD7Gain 0x38000 +#define bAD7OutputCMMode 0x40000 +#define bAD7InputCMMode 0x380000 +#define bAD7Current 0xc00000 +#define bRegulatorAdjust 0x7000000 +#define bAD11PowerUpAtTx 0x1 +#define bDA10PSAtTx 0x10 +#define bAD11PowerUpAtRx 0x100 +#define bDA10PSAtRx 0x1000 +#define bCCKRxAGCFormat 0x200 +#define bPSDFFTSamplepPoint 0xc000 +#define bPSDAverageNum 0x3000 +#define bIQPathControl 0xc00 +#define bPSDFreq 0x3ff +#define bPSDAntennaPath 0x30 +#define bPSDIQSwitch 0x40 +#define bPSDRxTrigger 0x400000 +#define bPSDTxTrigger 0x80000000 +#define bPSDSineToneScale 0x7f000000 +#define bPSDReport 0xffff + +#define bOFDMTxSC 0x30000000 +#define bCCKTxOn 0x1 +#define bOFDMTxOn 0x2 +#define bDebugPage 0xfff +#define bDebugItem 0xff +#define bAntL 0x10 +#define bAntNonHT 0x100 +#define bAntHT1 0x1000 +#define bAntHT2 0x10000 +#define bAntHT1S1 0x100000 +#define bAntNonHTS1 0x1000000 + +#define bCCKBBMode 0x3 +#define bCCKTxPowerSaving 0x80 +#define bCCKRxPowerSaving 0x40 + +#define bCCKSideBand 0x10 + +#define bCCKScramble 0x8 +#define bCCKAntDiversity 0x8000 +#define bCCKCarrierRecovery 0x4000 +#define bCCKTxRate 0x3000 +#define bCCKDCCancel 0x0800 +#define bCCKISICancel 0x0400 +#define bCCKMatchFilter 0x0200 +#define bCCKEqualizer 0x0100 +#define bCCKPreambleDetect 0x800000 +#define bCCKFastFalseCCA 0x400000 +#define bCCKChEstStart 0x300000 +#define bCCKCCACount 0x080000 +#define bCCKcs_lim 0x070000 +#define bCCKBistMode 0x80000000 +#define bCCKCCAMask 0x40000000 +#define bCCKTxDACPhase 0x4 +#define bCCKRxADCPhase 0x20000000 +#define bCCKr_cp_mode0 0x0100 +#define bCCKTxDCOffset 0xf0 +#define bCCKRxDCOffset 0xf +#define bCCKCCAMode 0xc000 +#define bCCKFalseCS_lim 0x3f00 +#define bCCKCS_ratio 0xc00000 +#define bCCKCorgBit_sel 0x300000 +#define bCCKPD_lim 0x0f0000 +#define bCCKNewCCA 0x80000000 +#define bCCKRxHPofIG 0x8000 +#define bCCKRxIG 0x7f00 +#define bCCKLNAPolarity 0x800000 +#define bCCKRx1stGain 0x7f0000 +#define bCCKRFExtend 0x20000000 +#define bCCKRxAGCSatLevel 0x1f000000 +#define bCCKRxAGCSatCount 0xe0 +#define bCCKRxRFSettle 0x1f +#define bCCKFixedRxAGC 0x8000 +#define bCCKAntennaPolarity 0x2000 +#define bCCKTxFilterType 0x0c00 +#define bCCKRxAGCReportType 0x0300 +#define bCCKRxDAGCEn 0x80000000 +#define bCCKRxDAGCPeriod 0x20000000 +#define bCCKRxDAGCSatLevel 0x1f000000 +#define bCCKTimingRecovery 0x800000 +#define bCCKTxC0 0x3f0000 +#define bCCKTxC1 0x3f000000 +#define bCCKTxC2 0x3f +#define bCCKTxC3 0x3f00 +#define bCCKTxC4 0x3f0000 +#define bCCKTxC5 0x3f000000 +#define bCCKTxC6 0x3f +#define bCCKTxC7 0x3f00 +#define bCCKDebugPort 0xff0000 +#define bCCKDACDebug 0x0f000000 +#define bCCKFalseAlarmEnable 0x8000 +#define bCCKFalseAlarmRead 0x4000 +#define bCCKTRSSI 0x7f +#define bCCKRxAGCReport 0xfe +#define bCCKRxReport_AntSel 0x80000000 +#define bCCKRxReport_MFOff 0x40000000 +#define bCCKRxRxReport_SQLoss 0x20000000 +#define bCCKRxReport_Pktloss 0x10000000 +#define bCCKRxReport_Lockedbit 0x08000000 +#define bCCKRxReport_RateError 0x04000000 +#define bCCKRxReport_RxRate 0x03000000 +#define bCCKRxFACounterLower 0xff +#define bCCKRxFACounterUpper 0xff000000 +#define bCCKRxHPAGCStart 0xe000 +#define bCCKRxHPAGCFinal 0x1c00 +#define bCCKRxFalseAlarmEnable 0x8000 +#define bCCKFACounterFreeze 0x4000 +#define bCCKTxPathSel 0x10000000 +#define bCCKDefaultRxPath 0xc000000 +#define bCCKOptionRxPath 0x3000000 + +#define bNumOfSTF 0x3 +#define bShift_L 0xc0 +#define bGI_TH 0xc +#define bRxPathA 0x1 +#define bRxPathB 0x2 +#define bRxPathC 0x4 +#define bRxPathD 0x8 +#define bTxPathA 0x1 +#define bTxPathB 0x2 +#define bTxPathC 0x4 +#define bTxPathD 0x8 +#define bTRSSIFreq 0x200 +#define bADCBackoff 0x3000 +#define bDFIRBackoff 0xc000 +#define bTRSSILatchPhase 0x10000 +#define bRxIDCOffset 0xff +#define bRxQDCOffset 0xff00 +#define bRxDFIRMode 0x1800000 +#define bRxDCNFType 0xe000000 +#define bRXIQImb_A 0x3ff +#define bRXIQImb_B 0xfc00 +#define bRXIQImb_C 0x3f0000 +#define bRXIQImb_D 0xffc00000 +#define bDC_dc_Notch 0x60000 +#define bRxNBINotch 0x1f000000 +#define bPD_TH 0xf +#define bPD_TH_Opt2 0xc000 +#define bPWED_TH 0x700 +#define bIfMF_Win_L 0x800 +#define bPD_Option 0x1000 +#define bMF_Win_L 0xe000 +#define bBW_Search_L 0x30000 +#define bwin_enh_L 0xc0000 +#define bBW_TH 0x700000 +#define bED_TH2 0x3800000 +#define bBW_option 0x4000000 +#define bRatio_TH 0x18000000 +#define bWindow_L 0xe0000000 +#define bSBD_Option 0x1 +#define bFrame_TH 0x1c +#define bFS_Option 0x60 +#define bDC_Slope_check 0x80 +#define bFGuard_Counter_DC_L 0xe00 +#define bFrame_Weight_Short 0x7000 +#define bSub_Tune 0xe00000 +#define bFrame_DC_Length 0xe000000 +#define bSBD_start_offset 0x30000000 +#define bFrame_TH_2 0x7 +#define bFrame_GI2_TH 0x38 +#define bGI2_Sync_en 0x40 +#define bSarch_Short_Early 0x300 +#define bSarch_Short_Late 0xc00 +#define bSarch_GI2_Late 0x70000 +#define bCFOAntSum 0x1 +#define bCFOAcc 0x2 +#define bCFOStartOffset 0xc +#define bCFOLookBack 0x70 +#define bCFOSumWeight 0x80 +#define bDAGCEnable 0x10000 +#define bTXIQImb_A 0x3ff +#define bTXIQImb_B 0xfc00 +#define bTXIQImb_C 0x3f0000 +#define bTXIQImb_D 0xffc00000 +#define bTxIDCOffset 0xff +#define bTxQDCOffset 0xff00 +#define bTxDFIRMode 0x10000 +#define bTxPesudoNoiseOn 0x4000000 +#define bTxPesudoNoise_A 0xff +#define bTxPesudoNoise_B 0xff00 +#define bTxPesudoNoise_C 0xff0000 +#define bTxPesudoNoise_D 0xff000000 +#define bCCADropOption 0x20000 +#define bCCADropThres 0xfff00000 +#define bEDCCA_H 0xf +#define bEDCCA_L 0xf0 +#define bLambda_ED 0x300 +#define bRxInitialGain 0x7f +#define bRxAntDivEn 0x80 +#define bRxAGCAddressForLNA 0x7f00 +#define bRxHighPowerFlow 0x8000 +#define bRxAGCFreezeThres 0xc0000 +#define bRxFreezeStep_AGC1 0x300000 +#define bRxFreezeStep_AGC2 0xc00000 +#define bRxFreezeStep_AGC3 0x3000000 +#define bRxFreezeStep_AGC0 0xc000000 +#define bRxRssi_Cmp_En 0x10000000 +#define bRxQuickAGCEn 0x20000000 +#define bRxAGCFreezeThresMode 0x40000000 +#define bRxOverFlowCheckType 0x80000000 +#define bRxAGCShift 0x7f +#define bTRSW_Tri_Only 0x80 +#define bPowerThres 0x300 +#define bRxAGCEn 0x1 +#define bRxAGCTogetherEn 0x2 +#define bRxAGCMin 0x4 +#define bRxHP_Ini 0x7 +#define bRxHP_TRLNA 0x70 +#define bRxHP_RSSI 0x700 +#define bRxHP_BBP1 0x7000 +#define bRxHP_BBP2 0x70000 +#define bRxHP_BBP3 0x700000 +#define bRSSI_H 0x7f0000 +#define bRSSI_Gen 0x7f000000 +#define bRxSettle_TRSW 0x7 +#define bRxSettle_LNA 0x38 +#define bRxSettle_RSSI 0x1c0 +#define bRxSettle_BBP 0xe00 +#define bRxSettle_RxHP 0x7000 +#define bRxSettle_AntSW_RSSI 0x38000 +#define bRxSettle_AntSW 0xc0000 +#define bRxProcessTime_DAGC 0x300000 +#define bRxSettle_HSSI 0x400000 +#define bRxProcessTime_BBPPW 0x800000 +#define bRxAntennaPowerShift 0x3000000 +#define bRSSITableSelect 0xc000000 +#define bRxHP_Final 0x7000000 +#define bRxHTSettle_BBP 0x7 +#define bRxHTSettle_HSSI 0x8 +#define bRxHTSettle_RxHP 0x70 +#define bRxHTSettle_BBPPW 0x80 +#define bRxHTSettle_Idle 0x300 +#define bRxHTSettle_Reserved 0x1c00 +#define bRxHTRxHPEn 0x8000 +#define bRxHTAGCFreezeThres 0x30000 +#define bRxHTAGCTogetherEn 0x40000 +#define bRxHTAGCMin 0x80000 +#define bRxHTAGCEn 0x100000 +#define bRxHTDAGCEn 0x200000 +#define bRxHTRxHP_BBP 0x1c00000 +#define bRxHTRxHP_Final 0xe0000000 +#define bRxPWRatioTH 0x3 +#define bRxPWRatioEn 0x4 +#define bRxMFHold 0x3800 +#define bRxPD_Delay_TH1 0x38 +#define bRxPD_Delay_TH2 0x1c0 +#define bRxPD_DC_COUNT_MAX 0x600 +#define bRxPD_Delay_TH 0x8000 +#define bRxProcess_Delay 0xf0000 +#define bRxSearchrange_GI2_Early 0x700000 +#define bRxFrame_Guard_Counter_L 0x3800000 +#define bRxSGI_Guard_L 0xc000000 +#define bRxSGI_Search_L 0x30000000 +#define bRxSGI_TH 0xc0000000 +#define bDFSCnt0 0xff +#define bDFSCnt1 0xff00 +#define bDFSFlag 0xf0000 +#define bMFWeightSum 0x300000 +#define bMinIdxTH 0x7f000000 +#define bDAFormat 0x40000 +#define bTxChEmuEnable 0x01000000 +#define bTRSWIsolation_A 0x7f +#define bTRSWIsolation_B 0x7f00 +#define bTRSWIsolation_C 0x7f0000 +#define bTRSWIsolation_D 0x7f000000 +#define bExtLNAGain 0x7c00 + +#define bSTBCEn 0x4 +#define bAntennaMapping 0x10 +#define bNss 0x20 +#define bCFOAntSumD 0x200 +#define bPHYCounterReset 0x8000000 +#define bCFOReportGet 0x4000000 +#define bOFDMContinueTx 0x10000000 +#define bOFDMSingleCarrier 0x20000000 +#define bOFDMSingleTone 0x40000000 +#define bHTDetect 0x100 +#define bCFOEn 0x10000 +#define bCFOValue 0xfff00000 +#define bSigTone_Re 0x3f +#define bSigTone_Im 0x7f00 +#define bCounter_CCA 0xffff +#define bCounter_ParityFail 0xffff0000 +#define bCounter_RateIllegal 0xffff +#define bCounter_CRC8Fail 0xffff0000 +#define bCounter_MCSNoSupport 0xffff +#define bCounter_FastSync 0xffff +#define bShortCFO 0xfff +#define bShortCFOTLength 12 +#define bShortCFOFLength 11 +#define bLongCFO 0x7ff +#define bLongCFOTLength 11 +#define bLongCFOFLength 11 +#define bTailCFO 0x1fff +#define bTailCFOTLength 13 +#define bTailCFOFLength 12 +#define bmax_en_pwdB 0xffff +#define bCC_power_dB 0xffff0000 +#define bnoise_pwdB 0xffff +#define bPowerMeasTLength 10 +#define bPowerMeasFLength 3 +#define bRx_HT_BW 0x1 +#define bRxSC 0x6 +#define bRx_HT 0x8 +#define bNB_intf_det_on 0x1 +#define bIntf_win_len_cfg 0x30 +#define bNB_Intf_TH_cfg 0x1c0 +#define bRFGain 0x3f +#define bTableSel 0x40 +#define bTRSW 0x80 +#define bRxSNR_A 0xff +#define bRxSNR_B 0xff00 +#define bRxSNR_C 0xff0000 +#define bRxSNR_D 0xff000000 +#define bSNREVMTLength 8 +#define bSNREVMFLength 1 +#define bCSI1st 0xff +#define bCSI2nd 0xff00 +#define bRxEVM1st 0xff0000 +#define bRxEVM2nd 0xff000000 +#define bSIGEVM 0xff +#define bPWDB 0xff00 +#define bSGIEN 0x10000 + +#define bSFactorQAM1 0xf +#define bSFactorQAM2 0xf0 +#define bSFactorQAM3 0xf00 +#define bSFactorQAM4 0xf000 +#define bSFactorQAM5 0xf0000 +#define bSFactorQAM6 0xf0000 +#define bSFactorQAM7 0xf00000 +#define bSFactorQAM8 0xf000000 +#define bSFactorQAM9 0xf0000000 +#define bCSIScheme 0x100000 + +#define bNoiseLvlTopSet 0x3 +#define bChSmooth 0x4 +#define bChSmoothCfg1 0x38 +#define bChSmoothCfg2 0x1c0 +#define bChSmoothCfg3 0xe00 +#define bChSmoothCfg4 0x7000 +#define bMRCMode 0x800000 +#define bTHEVMCfg 0x7000000 + +#define bLoopFitType 0x1 +#define bUpdCFO 0x40 +#define bUpdCFOOffData 0x80 +#define bAdvUpdCFO 0x100 +#define bAdvTimeCtrl 0x800 +#define bUpdClko 0x1000 +#define bFC 0x6000 +#define bTrackingMode 0x8000 +#define bPhCmpEnable 0x10000 +#define bUpdClkoLTF 0x20000 +#define bComChCFO 0x40000 +#define bCSIEstiMode 0x80000 +#define bAdvUpdEqz 0x100000 +#define bUChCfg 0x7000000 +#define bUpdEqz 0x8000000 + +#define bTxAGCRate18_06 0x7f7f7f7f +#define bTxAGCRate54_24 0x7f7f7f7f +#define bTxAGCRateMCS32 0x7f +#define bTxAGCRateCCK 0x7f00 +#define bTxAGCRateMCS3_MCS0 0x7f7f7f7f +#define bTxAGCRateMCS7_MCS4 0x7f7f7f7f +#define bTxAGCRateMCS11_MCS8 0x7f7f7f7f +#define bTxAGCRateMCS15_MCS12 0x7f7f7f7f + +#define bRxPesudoNoiseOn 0x20000000 +#define bRxPesudoNoise_A 0xff +#define bRxPesudoNoise_B 0xff00 +#define bRxPesudoNoise_C 0xff0000 +#define bRxPesudoNoise_D 0xff000000 +#define bPesudoNoiseState_A 0xffff +#define bPesudoNoiseState_B 0xffff0000 +#define bPesudoNoiseState_C 0xffff +#define bPesudoNoiseState_D 0xffff0000 + +#define bZebra1_HSSIEnable 0x8 +#define bZebra1_TRxControl 0xc00 +#define bZebra1_TRxGainSetting 0x07f +#define bZebra1_RxCorner 0xc00 +#define bZebra1_TxChargePump 0x38 +#define bZebra1_RxChargePump 0x7 +#define bZebra1_ChannelNum 0xf80 +#define bZebra1_TxLPFBW 0x400 +#define bZebra1_RxLPFBW 0x600 + +#define bRTL8256RegModeCtrl1 0x100 +#define bRTL8256RegModeCtrl0 0x40 +#define bRTL8256_TxLPFBW 0x18 +#define bRTL8256_RxLPFBW 0x600 + +#define bRTL8258_TxLPFBW 0xc +#define bRTL8258_RxLPFBW 0xc00 +#define bRTL8258_RSSILPFBW 0xc0 + + + +#define bByte0 0x1 +#define bByte1 0x2 +#define bByte2 0x4 +#define bByte3 0x8 +#define bWord0 0x3 +#define bWord1 0xc +#define bDWord 0xf + +#define bMaskByte0 0xff +#define bMaskByte1 0xff00 +#define bMaskByte2 0xff0000 +#define bMaskByte3 0xff000000 +#define bMaskHWord 0xffff0000 +#define bMaskLWord 0x0000ffff +#define bMaskDWord 0xffffffff + +#if (RTL92SE_FPGA_VERIFY == 1) +#define bMask12Bits 0xfff +#define bMask20Bits 0xfff +#define bRFRegOffsetMask 0xfff +#else +#define bMask12Bits 0xfffff +#define bMask20Bits 0xfffff +#define bRFRegOffsetMask 0xfffff +#endif +#define bEnable 0x1 +#define bDisable 0x0 + +#define LeftAntenna 0x0 +#define RightAntenna 0x1 + +#define tCheckTxStatus 500 +#define tUpdateRxCounter 100 + +#define rateCCK 0 +#define rateOFDM 1 +#define rateHT 2 + +#define bPMAC_End 0x1ff +#define bFPGAPHY0_End 0x8ff +#define bFPGAPHY1_End 0x9ff +#define bCCKPHY0_End 0xaff +#define bOFDMPHY0_End 0xcff +#define bOFDMPHY1_End 0xdff + + +#define bPMACControl 0x0 +#define bWMACControl 0x1 +#define bWNICControl 0x2 + +#define PathA 0x0 +#define PathB 0x1 +#define PathC 0x2 +#define PathD 0x3 + +/*--------------------------Define Parameters-------------------------------*/ + + +#endif + + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.h @@ -0,0 +1,98 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + +#ifndef __INC_EFUSE_H +#define __INC_EFUSE_H + +#define EFUSE_FOR_92SU 1 + +/*--------------------------Define Parameters-------------------------------*/ +#define EFUSE_REAL_CONTENT_LEN 512 +#define EFUSE_MAP_LEN 128 +#define EFUSE_MAX_SECTION 16 +#define EFUSE_MAX_WORD_UNIT 4 +#define EFUSE_IC_ID_OFFSET 506 + +#define EFUSE_INIT_MAP 0 +#define EFUSE_MODIFY_MAP 1 + +#define EFUSE_CLK_CTRL EFUSE_CTRL +#define EFUSE_BIT(x) (1 << (x)) + +#define PG_STATE_HEADER 0x01 +#define PG_STATE_WORD_0 0x02 +#define PG_STATE_WORD_1 0x04 +#define PG_STATE_WORD_2 0x08 +#define PG_STATE_WORD_3 0x10 +#define PG_STATE_DATA 0x20 + +#define PG_SWBYTE_H 0x01 +#define PG_SWBYTE_L 0x02 + +/*--------------------------Define Parameters-------------------------------*/ + + +/*------------------------------Define structure----------------------------*/ + +/*------------------------------Define structure----------------------------*/ + + +/*------------------------Export global variable----------------------------*/ +/*------------------------Export global variable----------------------------*/ + +/*------------------------Export Marco Definition---------------------------*/ + +/*------------------------Export Marco Definition---------------------------*/ + + +/*--------------------------Exported Function prototype---------------------*/ +extern void +EFUSE_Initialize(struct net_device* dev); +extern u8 +EFUSE_Read1Byte(struct net_device* dev,u16 Address); +extern void +EFUSE_Write1Byte(struct net_device* dev,u16 Address,u8 Value); + +#ifdef EFUSE_FOR_92SU +extern void +ReadEFuse(struct net_device* dev,u16 _offset,u16 _size_byte,u8* pbuf); +extern void +ReadEFuseByte(struct net_device* dev,u16 _offset,u8 *pbuf); +#endif + +extern void +EFUSE_ShadowRead(struct net_device* dev,unsigned char Type,unsigned short Offset,u32 *Value); +extern void +EFUSE_ShadowWrite(struct net_device* dev,unsigned char Type,unsigned short Offset,u32 Value); +extern bool +EFUSE_ShadowUpdate(struct net_device* dev); +extern bool +EFUSE_ShadowUpdateChk(struct net_device* dev); +extern void +EFUSE_ShadowMapUpdate(struct net_device* dev); +extern void +EFUSE_RePgSection1(struct net_device* dev); + +extern bool +EFUSE_ProgramMap(struct net_device* dev,char* pFileName, u8 TableType); +/*--------------------------Exported Function prototype---------------------*/ + +/* End of Efuse.h */ + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_scan.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_scan.h @@ -0,0 +1,38 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef _RTL8192SE_SCAN +#define _RTL8192SE_SCAN + +void rtl8192se_hw_scan_simu(void *data); +void rtl8192se_rx_surveydone_cmd(struct net_device *dev); +void rtl8192se_check_hw_scan(void *data); +void rtl8192se_start_hw_scan(void *data); +void rtl8192se_abort_hw_scan(struct net_device *dev); +void rtl8192se_hw_scan_initiate(struct net_device *dev); +void rtl8192se_send_scan_abort(struct net_device *dev); +void rtl8192se_cancel_hw_scan(struct net_device *dev); + +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hw.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_hw.h @@ -0,0 +1,1072 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef __INC_HAL8192SREG_H +#define __INC_HAL8192SREG_H + + +#if 0 +typedef enum _RT_RF_TYPE_DEF +{ + RF_1T2R = 0, + RF_2T4R, + RF_2T2R, + RF_1T1R, + RF_2T2R_GREEN, + RF_819X_MAX_TYPE +}RT_RF_TYPE_DEF; +#endif + +#define SYS_ISO_CTRL 0x0000 +#define SYS_FUNC_EN 0x0002 +#define PMC_FSM 0x0004 +#define SYS_CLKR 0x0008 +#define EPROM_CMD 0x000A +#define EE_VPD 0x000C +#define AFE_MISC 0x0010 +#define SPS0_CTRL 0x0011 +#define SPS1_CTRL 0x0018 +#define RF_CTRL 0x001F +#define LDOA15_CTRL 0x0020 +#define LDOV12D_CTRL 0x0021 +#define LDOHCI12_CTRL 0x0022 +#define LDO_USB_SDIO 0x0023 +#define LPLDO_CTRL 0x0024 +#define AFE_XTAL_CTRL 0x0026 +#define AFE_PLL_CTRL 0x0028 +#define EFUSE_CTRL 0x0030 +#define EFUSE_TEST 0x0034 +#define PWR_DATA 0x0038 +#define DBG_PORT 0x003A +#define DPS_TIMER 0x003C +#define RCLK_MON 0x003E + +#define CMDR 0x0040 +#define TXPAUSE 0x0042 +#define LBKMD_SEL 0x0043 +#define TCR 0x0044 +#define RCR 0x0048 +#define MSR 0x004C +#define SYSF_CFG 0x004D +#define RX_PKY_LIMIT 0x004E +#define MBIDCTRL 0x004F + +#define MACIDR 0x0050 +#define MACIDR0 0x0050 +#define MACIDR4 0x0054 +#define BSSIDR 0x0058 +#define HWVID 0x005E +#define MAR 0x0060 +#define MBIDCAMCONTENT 0x0068 +#define MBIDCAMCFG 0x0070 +#define BUILDTIME 0x0074 +#define BUILDUSER 0x0078 + +#define IDR0 MACIDR0 +#define IDR4 MACIDR4 + +#define TSFR 0x0080 +#define SLOT_TIME 0x0089 +#define USTIME 0x008A +#define SIFS_CCK 0x008C +#define SIFS_OFDM 0x008E +#define PIFS_TIME 0x0090 +#define ACK_TIMEOUT 0x0091 +#define EIFSTR 0x0092 +#define BCN_INTERVAL 0x0094 +#define ATIMWND 0x0096 +#define BCN_DRV_EARLY_INT 0x0098 +#define BCN_DMATIME 0x009A +#define BCN_ERR_THRESH 0x009C +#define MLT 0x009D +#define RSVD_MAC_TUNE_US 0x009E + +#define RQPN 0x00A0 +#define RQPN1 0x00A0 +#define RQPN2 0x00A1 +#define RQPN3 0x00A2 +#define RQPN4 0x00A3 +#define RQPN5 0x00A4 +#define RQPN6 0x00A5 +#define RQPN7 0x00A6 +#define RQPN8 0x00A7 +#define RQPN9 0x00A8 +#define RQPN10 0x00A9 +#define LD_RQPN 0x00AB +#define RXFF_BNDY 0x00AC +#define RXRPT_BNDY 0x00B0 +#define TXPKTBUF_PGBNDY 0x00B4 +#define PBP 0x00B5 +#define RXDRVINFO_SZ 0x00B6 +#define TXFF_STATUS 0x00B7 +#define RXFF_STATUS 0x00B8 +#define TXFF_EMPTY_TH 0x00B9 +#define SDIO_RX_BLKSZ 0x00BC +#define RXDMA 0x00BD +#define RXPKT_NUM 0x00BE +#define C2HCMD_UDT_SIZE 0x00C0 +#define C2HCMD_UDT_ADDR 0x00C2 +#define FIFOPAGE1 0x00C4 +#define FIFOPAGE2 0x00C8 +#define FIFOPAGE3 0x00CC +#define FIFOPAGE4 0x00D0 +#define FIFOPAGE5 0x00D4 +#define FW_RSVD_PG_CRTL 0x00D8 +#define RXDMA_AGG_PG_TH 0x00D9 +#define TXDESC_MSK 0x00DC +#define TXRPTFF_RDPTR 0x00E0 +#define TXRPTFF_WTPTR 0x00E4 +#define C2HFF_RDPTR 0x00E8 +#define C2HFF_WTPTR 0x00EC +#define RXFF0_RDPTR 0x00F0 +#define RXFF0_WTPTR 0x00F4 +#define RXFF1_RDPTR 0x00F8 +#define RXFF1_WTPTR 0x00FC +#define RXRPT0_RDPTR 0x0100 +#define RXRPT0_WTPTR 0x0104 +#define RXRPT1_RDPTR 0x0108 +#define RXRPT1_WTPTR 0x010C +#define RX0_UDT_SIZE 0x0110 +#define RX1PKTNUM 0x0114 +#define RXFILTERMAP 0x0116 +#define RXFILTERMAP_GP1 0x0118 +#define RXFILTERMAP_GP2 0x011A +#define RXFILTERMAP_GP3 0x011C +#define BCNQ_CTRL 0x0120 +#define MGTQ_CTRL 0x0124 +#define HIQ_CTRL 0x0128 +#define VOTID7_CTRL 0x012c +#define VOTID6_CTRL 0x0130 +#define VITID5_CTRL 0x0134 +#define VITID4_CTRL 0x0138 +#define BETID3_CTRL 0x013c +#define BETID0_CTRL 0x0140 +#define BKTID2_CTRL 0x0144 +#define BKTID1_CTRL 0x0148 +#define CMDQ_CTRL 0x014c +#define TXPKT_NUM_CTRL 0x0150 +#define TXQ_PGADD 0x0152 +#define TXFF_PG_NUM 0x0154 +#define TRXDMA_STATUS 0x0156 + +#define INIMCS_SEL 0x0160 +#define TX_RATE_REG INIMCS_SEL +#define INIRTSMCS_SEL 0x0180 +#define RRSR 0x0181 +#define ARFR0 0x0184 +#define ARFR1 0x0188 +#define ARFR2 0x018C +#define ARFR3 0x0190 +#define ARFR4 0x0194 +#define ARFR5 0x0198 +#define ARFR6 0x019C +#define ARFR7 0x01A0 +#define AGGLEN_LMT_H 0x01A7 +#define AGGLEN_LMT_L 0x01A8 +#define DARFRC 0x01B0 +#define RARFRC 0x01B8 +#define MCS_TXAGC 0x01C0 +#define CCK_TXAGC 0x01C8 + +#define EDCAPARA_VO 0x01D0 +#define EDCAPARA_VI 0x01D4 +#define EDCAPARA_BE 0x01D8 +#define EDCAPARA_BK 0x01DC +#define BCNTCFG 0x01E0 +#define CWRR 0x01E2 +#define ACMAVG 0x01E4 +#define AcmHwCtrl 0x01E7 +#define VO_ADMTM 0x01E8 +#define VI_ADMTM 0x01EC +#define BE_ADMTM 0x01F0 +#define RETRY_LIMIT 0x01F4 +#define SG_RATE 0x01F6 + +#define NAV_CTRL 0x0200 +#define BW_OPMODE 0x0203 +#define BACAMCMD 0x0204 +#define BACAMCONTENT 0x0208 + +#define LBDLY 0x0210 +#define FWDLY 0x0211 +#define HWPC_RX_CTRL 0x0218 +#define MQIR 0x0220 +#define MAIR 0x0222 +#define MSIR 0x0224 +#define CLM_RESULT 0x0227 +#define NHM_RPI_CNT 0x0228 +#define RXERR_RPT 0x0230 +#define NAV_PROT_LEN 0x0234 +#define CFEND_TH 0x0236 +#define AMPDU_MIN_SPACE 0x0237 +#define TXOP_STALL_CTRL 0x0238 + +#define RWCAM 0x0240 +#define WCAMI 0x0244 +#define RCAMO 0x0248 +#define CAMDBG 0x024C +#define SECR 0x0250 + +#define WOW_CTRL 0x0260 +#define PSSTATUS 0x0261 +#define PSSWITCH 0x0262 +#define MIMOPS_WAIT_PERIOD 0x0263 +#define LPNAV_CTRL 0x0264 +#define WFM0 0x0270 +#define WFM1 0x0280 +#define WFM2 0x0290 +#define WFM3 0x02A0 +#define WFM4 0x02B0 +#define WFM5 0x02C0 +#define WFCRC 0x02D0 +#define FW_RPT_REG 0x02c4 + +#define PSTIME 0x02E0 +#define TIMER0 0x02E4 +#define TIMER1 0x02E8 +#define GPIO_CTRL 0x02EC +#define GPIO_IN 0x02EC +#define GPIO_OUT 0x02ED +#define GPIO_IO_SEL 0x02EE +#define GPIO_MOD 0x02EF +#define GPIO_INTCTRL 0x02F0 +#define MAC_PINMUX_CFG 0x02F1 +#define LEDCFG 0x02F2 +#define PHY_REG 0x02F3 +#define PHY_REG_DATA 0x02F4 +#define EFUSE_CLK 0x02F8 + +#define INTA_MASK 0x0300 +#define ISR 0x0308 + +#define DBG_PORT_SWITCH 0x003A +#define BIST 0x0310 +#define DBS 0x0314 +#define CPUINST 0x0318 +#define CPUCAUSE 0x031C +#define LBUS_ERR_ADDR 0x0320 +#define LBUS_ERR_CMD 0x0324 +#define LBUS_ERR_DATA_L 0x0328 +#define LBUS_ERR_DATA_H 0x032C +#define LX_EXCEPTION_ADDR 0x0330 +#define WDG_CTRL 0x0334 +#define INTMTU 0x0338 +#define INTM 0x033A +#define FDLOCKTURN0 0x033C +#define FDLOCKTURN1 0x033D +#define TRXPKTBUF_DBG_DATA 0x0340 +#define TRXPKTBUF_DBG_CTRL 0x0348 +#define DPLL 0x034A +#define CBUS_ERR_ADDR 0x0350 +#define CBUS_ERR_CMD 0x0354 +#define CBUS_ERR_DATA_L 0x0358 +#define CBUS_ERR_DATA_H 0x035C +#define USB_SIE_INTF_ADDR 0x0360 +#define USB_SIE_INTF_WD 0x0361 +#define USB_SIE_INTF_RD 0x0362 +#define USB_SIE_INTF_CTRL 0x0363 +#define LBUS_MON_ADDR 0x0364 +#define LBUS_ADDR_MASK 0x0368 + + +#define TPPoll 0x0500 +#define PM_CTRL 0x0502 +#define PCIF 0x0503 + +#define THPDA 0x0514 +#define TMDA 0x0518 +#define TCDA 0x051C +#define HDA 0x0520 +#define TVODA 0x0524 +#define TVIDA 0x0528 +#define TBEDA 0x052C +#define TBKDA 0x0530 +#define TBDA 0x0534 +#define RCDA 0x0538 +#define RDQDA 0x053C +#define DBI_WDATA 0x0540 +#define DBI_RDATA 0x0544 +#define DBI_CTRL 0x0548 +#define MDIO_DATA 0x0550 +#define MDIO_CTRL 0x0554 +#define PCI_RPWM 0x0561 +#define PCI_CPWM 0x0563 + + +#define PHY_CCA 0x803 + + +#define USB_RX_AGG_TIMEOUT 0xFE5B + +#define FW_OFFLOAD_EN BIT7 + +#define MAX_MSS_DENSITY_2T 0x13 +#define MAX_MSS_DENSITY_1T 0x0A + +#define RXDMA_AGG_EN BIT7 + +#define RXDMA_AGG_TIMEOUT_DISABLE 0x00 +#define RXDMA_AGG_TIMEOUT_17MS 0x01 +#define RXDMA_AGG_TIMEOUT_17_2_MS 0x02 +#define RXDMA_AGG_TIMEOUT_17_4_MS 0x04 +#define RXDMA_AGG_TIMEOUT_17_10_MS 0x0A + +#define InvalidBBRFValue 0x12345678 + +#define USB_RPWM 0xFE58 + +#ifdef RTL8192SE +#define RPWM PCI_RPWM +#endif +#ifdef RTL8192SU +#define RPWM USB_RPWM +#endif + +#if 1 +#define AFR 0x010 +#define BCN_TCFG 0x062 +#define RATR0 0x320 +#endif +#define UnusedRegister 0x0320 +#define PSR UnusedRegister +#define DCAM UnusedRegister +#define BBAddr UnusedRegister +#define PhyDataR UnusedRegister +#define UFWP UnusedRegister + + + +#define ISO_MD2PP BIT0 +#define ISO_PA2PCIE BIT3 +#define ISO_PLL2MD BIT4 +#define ISO_PWC_DV2RP BIT11 +#define ISO_PWC_RV2RP BIT12 + +#define FEN_MREGEN BIT15 +#define FEN_DCORE BIT11 +#define FEN_CPUEN BIT10 + +#define PAD_HWPD_IDN BIT22 + +#define SYS_CLKSEL_80M BIT0 +#define SYS_PS_CLKSEL BIT1 +#define SYS_CPU_CLKSEL BIT2 +#define SYS_MAC_CLK_EN BIT11 +#define SYS_SWHW_SEL BIT14 +#define SYS_FWHW_SEL BIT15 + + +#define CmdEEPROM_En BIT5 +#define CmdEERPOMSEL BIT4 +#define Cmd9346CR_9356SEL BIT4 +#define AutoLoadEEPROM (CmdEEPROM_En|CmdEERPOMSEL) +#define AutoLoadEFUSE CmdEEPROM_En +#define EPROM_CMD_OPERATING_MODE_SHIFT 6 +#define EPROM_CMD_OPERATING_MODE_MASK ((1<<7)|(1<<6)) +#define EPROM_CMD_CONFIG 0x3 +#define EPROM_CMD_NORMAL 0 +#define EPROM_CMD_LOAD 1 +#define EPROM_CMD_PROGRAM 2 +#define EPROM_CS_SHIFT 3 +#define EPROM_CK_SHIFT 2 +#define EPROM_W_SHIFT 1 +#define EPROM_R_SHIFT 0 + +#define AFE_MBEN BIT1 +#define AFE_BGEN BIT0 + +#define SPS1_SWEN BIT1 +#define SPS1_LDEN BIT0 + +#define RF_EN BIT0 +#define RF_RSTB BIT1 +#define RF_SDMRSTB BIT2 + +#define LDA15_EN BIT0 + +#define LDV12_EN BIT0 +#define LDV12_SDBY BIT1 + +#define XTAL_GATE_AFE BIT10 + +#define APLL_EN BIT0 + +#define AFR_CardBEn BIT0 +#define AFR_CLKRUN_SEL BIT1 +#define AFR_FuncRegEn BIT2 + +#define APSDOFF_STATUS BIT15 +#define APSDOFF BIT14 +#define BBRSTn BIT13 +#define BB_GLB_RSTn BIT12 +#define SCHEDULE_EN BIT10 +#define MACRXEN BIT9 +#define MACTXEN BIT8 +#define DDMA_EN BIT7 +#define FW2HW_EN BIT6 +#define RXDMA_EN BIT5 +#define TXDMA_EN BIT4 +#define HCI_RXDMA_EN BIT3 +#define HCI_TXDMA_EN BIT2 + +#define StopHCCA BIT6 +#define StopHigh BIT5 +#define StopMgt BIT4 +#define StopVO BIT3 +#define StopVI BIT2 +#define StopBE BIT1 +#define StopBK BIT0 + +#define LBK_NORMAL 0x00 +#define LBK_MAC_LB (BIT0|BIT1|BIT3) +#define LBK_MAC_DLB (BIT0|BIT1) +#define LBK_DMA_LB (BIT0|BIT1|BIT2) + +#define TCP_OFDL_EN BIT25 +#define HWPC_TX_EN BIT24 +#define TXDMAPRE2FULL BIT23 +#define DISCW BIT20 +#define TCRICV BIT19 +#define CfendForm BIT17 +#define TCRCRC BIT16 +#define FAKE_IMEM_EN BIT15 +#define TSFRST BIT9 +#define TSFEN BIT8 +#define FWALLRDY (BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7) +#define FWRDY BIT7 +#define BASECHG BIT6 +#define IMEM BIT5 +#define DMEM_CODE_DONE BIT4 +#define EXT_IMEM_CHK_RPT BIT3 +#define EXT_IMEM_CODE_DONE BIT2 +#define IMEM_CHK_RPT BIT1 +#define IMEM_CODE_DONE BIT0 +#define IMEM_CODE_DONE BIT0 +#define IMEM_CHK_RPT BIT1 +#define EMEM_CODE_DONE BIT2 +#define EMEM_CHK_RPT BIT3 +#define DMEM_CODE_DONE BIT4 +#define IMEM_RDY BIT5 +#define BASECHG BIT6 +#define FWRDY BIT7 +#define LOAD_FW_READY (IMEM_CODE_DONE|IMEM_CHK_RPT|EMEM_CODE_DONE|\ + EMEM_CHK_RPT|DMEM_CODE_DONE|IMEM_RDY|BASECHG|\ + FWRDY) +#define TCR_TSFEN BIT8 +#define TCR_TSFRST BIT9 +#define TCR_FAKE_IMEM_EN BIT15 +#define TCR_CRC BIT16 +#define TCR_ICV BIT19 +#define TCR_DISCW BIT20 +#define TCR_HWPC_TX_EN BIT24 +#define TCR_TCP_OFDL_EN BIT25 +#define TXDMA_INIT_VALUE (IMEM_CHK_RPT|EXT_IMEM_CHK_RPT) + +#define RCR_APPFCS BIT31 +#define RCR_DIS_ENC_2BYTE BIT30 +#define RCR_DIS_AES_2BYTE BIT29 +#define RCR_HTC_LOC_CTRL BIT28 +#define RCR_ENMBID BIT27 +#define RCR_RX_TCPOFDL_EN BIT26 +#define RCR_APP_PHYST_RXFF BIT25 +#define RCR_APP_PHYST_STAFF BIT24 +#define RCR_CBSSID BIT23 +#define RCR_APWRMGT BIT22 +#define RCR_ADD3 BIT21 +#define RCR_AMF BIT20 +#define RCR_ACF BIT19 +#define RCR_ADF BIT18 +#define RCR_APP_MIC BIT17 +#define RCR_APP_ICV BIT16 +#define RCR_RXFTH BIT13 +#define RCR_AICV BIT12 +#define RCR_RXDESC_LK_EN BIT11 +#define RCR_APP_BA_SSN BIT6 +#define RCR_ACRC32 BIT5 +#define RCR_RXSHFT_EN BIT4 +#define RCR_AB BIT3 +#define RCR_AM BIT2 +#define RCR_APM BIT1 +#define RCR_AAP BIT0 +#define RCR_MXDMA_OFFSET 8 +#define RCR_FIFO_OFFSET 13 + +/* +Network Type +00: No link +01: Link in ad hoc network +10: Link in infrastructure network +11: AP mode +Default: 00b. +*/ +#define MSR_LINK_MASK ((1<<0)|(1<<1)) +#define MSR_LINK_MANAGED 2 +#define MSR_LINK_NONE 0 +#define MSR_LINK_SHIFT 0 +#define MSR_LINK_ADHOC 1 +#define MSR_LINK_MASTER 3 +#if 1 +#define MSR_NOLINK 0x00 +#define MSR_ADHOC 0x01 +#define MSR_INFRA 0x02 +#define MSR_AP 0x03 +#endif +#define ENUART BIT7 +#define ENJTAG BIT3 +#define BTMODE (BIT2|BIT1) +#define ENBT BIT0 + +#define ENMBID BIT7 +#define BCNUM (BIT6|BIT5|BIT4) + + +#define USTIME_EDCA 0xFF00 +#define USTIME_TSF 0x00FF + +#define SIFS_TRX 0xFF00 +#define SIFS_CTX 0x00FF + +#define ENSWBCN BIT15 +#define DRVERLY_TU 0x0FF0 +#define DRVERLY_US 0x000F +#define BCN_TCFG_CW_SHIFT 8 +#define BCN_TCFG_IFS 0 + + +#define RRSR_RSC_OFFSET 21 +#define RRSR_SHORT_OFFSET 23 +#define RRSR_RSC_BW_40M 0x600000 +#define RRSR_RSC_UPSUBCHNL 0x400000 +#define RRSR_RSC_LOWSUBCHNL 0x200000 +#define RRSR_SHORT 0x800000 +#define RRSR_1M BIT0 +#define RRSR_2M BIT1 +#define RRSR_5_5M BIT2 +#define RRSR_11M BIT3 +#define RRSR_6M BIT4 +#define RRSR_9M BIT5 +#define RRSR_12M BIT6 +#define RRSR_18M BIT7 +#define RRSR_24M BIT8 +#define RRSR_36M BIT9 +#define RRSR_48M BIT10 +#define RRSR_54M BIT11 +#define RRSR_MCS0 BIT12 +#define RRSR_MCS1 BIT13 +#define RRSR_MCS2 BIT14 +#define RRSR_MCS3 BIT15 +#define RRSR_MCS4 BIT16 +#define RRSR_MCS5 BIT17 +#define RRSR_MCS6 BIT18 +#define RRSR_MCS7 BIT19 +#define BRSR_AckShortPmb BIT23 + +#define RATR_1M 0x00000001 +#define RATR_2M 0x00000002 +#define RATR_55M 0x00000004 +#define RATR_11M 0x00000008 +#define RATR_6M 0x00000010 +#define RATR_9M 0x00000020 +#define RATR_12M 0x00000040 +#define RATR_18M 0x00000080 +#define RATR_24M 0x00000100 +#define RATR_36M 0x00000200 +#define RATR_48M 0x00000400 +#define RATR_54M 0x00000800 +#define RATR_MCS0 0x00001000 +#define RATR_MCS1 0x00002000 +#define RATR_MCS2 0x00004000 +#define RATR_MCS3 0x00008000 +#define RATR_MCS4 0x00010000 +#define RATR_MCS5 0x00020000 +#define RATR_MCS6 0x00040000 +#define RATR_MCS7 0x00080000 +#define RATR_MCS8 0x00100000 +#define RATR_MCS9 0x00200000 +#define RATR_MCS10 0x00400000 +#define RATR_MCS11 0x00800000 +#define RATR_MCS12 0x01000000 +#define RATR_MCS13 0x02000000 +#define RATR_MCS14 0x04000000 +#define RATR_MCS15 0x08000000 +#define RATE_ALL_CCK RATR_1M|RATR_2M|RATR_55M|RATR_11M +#define RATE_ALL_OFDM_AG RATR_6M|RATR_9M|RATR_12M|RATR_18M|RATR_24M|\ + RATR_36M|RATR_48M|RATR_54M +#define RATE_ALL_OFDM_1SS RATR_MCS0|RATR_MCS1|RATR_MCS2|RATR_MCS3 |\ + RATR_MCS4|RATR_MCS5|RATR_MCS6 |RATR_MCS7 +#define RATE_ALL_OFDM_2SS RATR_MCS8|RATR_MCS9 |RATR_MCS10|RATR_MCS11|\ + RATR_MCS12|RATR_MCS13|RATR_MCS14|RATR_MCS15 + +#define AC_PARAM_TXOP_LIMIT_OFFSET 16 +#define AC_PARAM_ECW_MAX_OFFSET 12 +#define AC_PARAM_ECW_MIN_OFFSET 8 +#define AC_PARAM_AIFS_OFFSET 0 + +#define AcmHw_HwEn BIT0 +#define AcmHw_BeqEn BIT1 +#define AcmHw_ViqEn BIT2 +#define AcmHw_VoqEn BIT3 +#define AcmHw_BeqStatus BIT4 +#define AcmHw_ViqStatus BIT5 +#define AcmHw_VoqStatus BIT6 + +#define RETRY_LIMIT_SHORT_SHIFT 8 +#define RETRY_LIMIT_LONG_SHIFT 0 + +#define NAV_UPPER_EN BIT16 +#define NAV_UPPER 0xFF00 +#define NAV_RTSRST 0xFF +#define BW_OPMODE_20MHZ BIT2 +#define BW_OPMODE_5G BIT1 +#define BW_OPMODE_11J BIT0 + +#define RXERR_RPT_RST BIT27 +#define RXERR_OFDM_PPDU 0 +#define RXERR_OFDM_FALSE_ALARM 1 +#define RXERR_OFDM_MPDU_OK 2 +#define RXERR_OFDM_MPDU_FAIL 3 +#define RXERR_CCK_PPDU 4 +#define RXERR_CCK_FALSE_ALARM 5 +#define RXERR_CCK_MPDU_OK 6 +#define RXERR_CCK_MPDU_FAIL 7 +#define RXERR_HT_PPDU 8 +#define RXERR_HT_FALSE_ALARM 9 +#define RXERR_HT_MPDU_TOTAL 10 +#define RXERR_HT_MPDU_OK 11 +#define RXERR_HT_MPDU_FAIL 12 +#define RXERR_RX_FULL_DROP 15 + + +#define CAM_CM_SecCAMPolling BIT31 +#define CAM_CM_SecCAMClr BIT30 +#define CAM_CM_SecCAMWE BIT16 +#define CAM_ADDR 0xFF + +#define Dbg_CAM_TXSecCAMInfo BIT31 +#define Dbg_CAM_SecKeyFound BIT30 + + +#define SCR_TxUseDK BIT0 +#define SCR_RxUseDK BIT1 +#define SCR_TxEncEnable BIT2 +#define SCR_RxDecEnable BIT3 +#define SCR_SKByA2 BIT4 +#define SCR_NoSKMC BIT5 +#define CAM_VALID BIT15 +#define CAM_NOTVALID 0x0000 +#define CAM_USEDK BIT5 + +#define CAM_NONE 0x0 +#define CAM_WEP40 0x01 +#define CAM_TKIP 0x02 +#define CAM_AES 0x04 +#define CAM_WEP104 0x05 + +#define TOTAL_CAM_ENTRY 32 +#define HALF_CAM_ENTRY 16 + +#define CAM_CONFIG_USEDK true +#define CAM_CONFIG_NO_USEDK false + +#define CAM_WRITE BIT16 +#define CAM_READ 0x00000000 +#define CAM_POLLINIG BIT31 + +#define SCR_UseDK 0x01 +#define SCR_TxSecEnable 0x02 +#define SCR_RxSecEnable 0x04 + +#define WOW_PMEN BIT0 +#define WOW_WOMEN BIT1 +#define WOW_MAGIC BIT2 +#define WOW_UWF BIT3 + +#define GPIOMUX_EN BIT3 +#define GPIOSEL_GPIO 0 +#define GPIOSEL_PHYDBG 1 +#define GPIOSEL_BT 2 +#define GPIOSEL_WLANDBG 3 +#define GPIOSEL_GPIO_MASK ~(BIT0|BIT1) + +#define HST_RDBUSY BIT0 +#define CPU_WTBUSY BIT1 + +#define IMR8190_DISABLED 0x0 +#define IMR_CPUERR BIT5 +#define IMR_ATIMEND BIT4 +#define IMR_TBDOK BIT3 +#define IMR_TBDER BIT2 +#define IMR_BCNDMAINT8 BIT1 +#define IMR_BCNDMAINT7 BIT0 +#define IMR_BCNDMAINT6 BIT31 +#define IMR_BCNDMAINT5 BIT30 +#define IMR_BCNDMAINT4 BIT29 +#define IMR_BCNDMAINT3 BIT28 +#define IMR_BCNDMAINT2 BIT27 +#define IMR_BCNDMAINT1 BIT26 +#define IMR_BCNDOK8 BIT25 +#define IMR_BCNDOK7 BIT24 +#define IMR_BCNDOK6 BIT23 +#define IMR_BCNDOK5 BIT22 +#define IMR_BCNDOK4 BIT21 +#define IMR_BCNDOK3 BIT20 +#define IMR_BCNDOK2 BIT19 +#define IMR_BCNDOK1 BIT18 +#define IMR_TIMEOUT2 BIT17 +#define IMR_TIMEOUT1 BIT16 +#define IMR_TXFOVW BIT15 +#define IMR_PSTIMEOUT BIT14 +#define IMR_BcnInt BIT13 +#define IMR_RXFOVW BIT12 +#define IMR_RDU BIT11 +#define IMR_RXCMDOK BIT10 +#define IMR_BDOK BIT9 +#define IMR_HIGHDOK BIT8 +#define IMR_COMDOK BIT7 +#define IMR_MGNTDOK BIT6 +#define IMR_HCCADOK BIT5 +#define IMR_BKDOK BIT4 +#define IMR_BEDOK BIT3 +#define IMR_VIDOK BIT2 +#define IMR_VODOK BIT1 +#define IMR_ROK BIT0 + + +#define TPPoll_BKQ BIT0 +#define TPPoll_BEQ BIT1 +#define TPPoll_VIQ BIT2 +#define TPPoll_VOQ BIT3 +#define TPPoll_BQ BIT4 +#define TPPoll_CQ BIT5 +#define TPPoll_MQ BIT6 +#define TPPoll_HQ BIT7 +#define TPPoll_HCCAQ BIT8 +#define TPPoll_StopBK BIT9 +#define TPPoll_StopBE BIT10 +#define TPPoll_StopVI BIT11 +#define TPPoll_StopVO BIT12 +#define TPPoll_StopMgt BIT13 +#define TPPoll_StopHigh BIT14 +#define TPPoll_StopHCCA BIT15 +#define TPPoll_SHIFT 8 + +#define MXDMA2_16bytes 0x000 +#define MXDMA2_32bytes 0x001 +#define MXDMA2_64bytes 0x010 +#define MXDMA2_128bytes 0x011 +#define MXDMA2_256bytes 0x100 +#define MXDMA2_512bytes 0x101 +#define MXDMA2_1024bytes 0x110 +#define MXDMA2_NoLimit 0x7 + +#define MULRW_SHIFT 3 +#define MXDMA2_RX_SHIFT 4 +#define MXDMA2_TX_SHIFT 0 + +#define CCX_CMD_CLM_ENABLE BIT0 +#define CCX_CMD_NHM_ENABLE BIT1 +#define CCX_CMD_FUNCTION_ENABLE BIT8 +#define CCX_CMD_IGNORE_CCA BIT9 +#define CCX_CMD_IGNORE_TXON BIT10 +#define CCX_CLM_RESULT_READY BIT16 +#define CCX_NHM_RESULT_READY BIT16 +#define CCX_CMD_RESET 0x0 + + +#define HWSET_MAX_SIZE_92S 128 + + + +#ifdef RTL8192SE +#define RTL8190_EEPROM_ID 0x8129 +#define EEPROM_HPON 0x02 +#define EEPROM_CLK 0x06 +#define EEPROM_TESTR 0x08 + +#define EEPROM_VID 0x0A +#define EEPROM_DID 0x0C +#define EEPROM_SVID 0x0E +#define EEPROM_SMID 0x10 + +#define EEPROM_MAC_ADDR 0x12 +#define EEPROM_NODE_ADDRESS_BYTE_0 0x12 + +#define EEPROM_PwDiff 0x54 + +#define EEPROM_TxPowerBase 0x50 +#define EEPROM_TX_PWR_INDEX_RANGE 28 + +#define EEPROM_TX_PWR_HT20_DIFF 0x62 +#define DEFAULT_HT20_TXPWR_DIFF 2 +#define EEPROM_TX_PWR_OFDM_DIFF 0x65 + +#define EEPROM_TxPWRGroup 0x67 +#define EEPROM_Regulatory 0x6D + +#define TX_PWR_SAFETY_CHK 0x6D +#define EEPROM_TxPwIndex_CCK_24G 0x5D +#define EEPROM_TxPwIndex_OFDM_24G 0x6B +#define EEPROM_HT2T_CH1_A 0x6c +#define EEPROM_HT2T_CH7_A 0x6d +#define EEPROM_HT2T_CH13_A 0x6e +#define EEPROM_HT2T_CH1_B 0x6f +#define EEPROM_HT2T_CH7_B 0x70 +#define EEPROM_HT2T_CH13_B 0x71 +#define EEPROM_TSSI_A 0x74 +#define EEPROM_TSSI_B 0x75 +#define EEPROM_RFInd_PowerDiff 0x76 +#define EEPROM_Default_LegacyHTTxPowerDiff 0x3 +#define EEPROM_ThermalMeter 0x77 +#define EEPROM_BLUETOOTH_COEXIST 0x78 +#define EEPROM_BLUETOOTH_TYPE 0x4f + +#define EEPROM_Optional 0x78 +#ifdef RTL8192S_WAPI_SUPPORT +#define EEPROM_WAPI_SUPPORT 0x78 +#endif +#define EEPROM_WoWLAN 0x78 + +#define EEPROM_CrystalCap 0x79 +#define EEPROM_ChannelPlan 0x7B +#define EEPROM_Version 0x7C +#define EEPROM_CustomID 0x7A +#define EEPROM_BoardType 0x7E + +#define EEPROM_Default_TSSI 0x0 +#define EEPROM_Default_TxPowerDiff 0x0 +#define EEPROM_Default_CrystalCap 0x5 +#define EEPROM_Default_BoardType 0x02 +#define EEPROM_Default_TxPower 0x1010 +#define EEPROM_Default_HT2T_TxPwr 0x10 + +#define EEPROM_Default_LegacyHTTxPowerDiff 0x3 +#define EEPROM_Default_ThermalMeter 0x12 +#define EEPROM_Default_BlueToothCoexist 0x0 +#define EEPROM_Default_BlueToothAntNum 0x0 +#define EEPROM_Default_BlueToothAntIso 0x0 +#define EEPROM_Default_BlueToothType 0x0 +#define EEPROM_Default_AntTxPowerDiff 0x0 +#define EEPROM_Default_TxPwDiff_CrystalCap 0x5 +#define EEPROM_Default_TxPowerLevel 0x22 + +#define EEPROM_CHANNEL_PLAN_FCC 0x0 +#define EEPROM_CHANNEL_PLAN_IC 0x1 +#define EEPROM_CHANNEL_PLAN_ETSI 0x2 +#define EEPROM_CHANNEL_PLAN_SPAIN 0x3 +#define EEPROM_CHANNEL_PLAN_FRANCE 0x4 +#define EEPROM_CHANNEL_PLAN_MKK 0x5 +#define EEPROM_CHANNEL_PLAN_MKK1 0x6 +#define EEPROM_CHANNEL_PLAN_ISRAEL 0x7 +#define EEPROM_CHANNEL_PLAN_TELEC 0x8 +#define EEPROM_CHANNEL_PLAN_GLOBAL_DOMAIN 0x9 +#define EEPROM_CHANNEL_PLAN_WORLD_WIDE_13 0xA +#define EEPROM_CHANNEL_PLAN_NCC 0xB +#define EEPROM_CHANNEL_PLAN_BY_HW_MASK 0x80 + + +#define EEPROM_CID_DEFAULT 0x0 +#define EEPROM_CID_TOSHIBA 0x4 +#define EEPROM_CID_CCX 0x10 +#define EEPROM_CID_QMI 0x0D +#define EEPROM_CID_WHQL 0xFE + +#else +#define RTL8190_EEPROM_ID 0x8129 +#define EEPROM_HPON 0x02 +#define EEPROM_VID 0x08 +#define EEPROM_PID 0x0A +#define EEPROM_USB_OPTIONAL 0x0C +#define EEPROM_USB_PHY_PARA1 0x0D +#define EEPROM_NODE_ADDRESS_BYTE_0 0x12 +#define EEPROM_Version 0x50 +#define EEPROM_ChannelPlan 0x51 +#define EEPROM_CustomID 0x52 +#define EEPROM_SubCustomID 0x53 + +#if (EEPROM_OLD_FORMAT_SUPPORT ==1) +#define EEPROM_PwDiff 0x54 +#define EEPROM_ThermalMeter 0x55 +#define EEPROM_Reserved 0x56 +#define EEPROM_CrystalCap 0x57 +#define EEPROM_TxPowerBase 0x58 +#define EEPROM_TxPwIndex_CCK_24G 0x59 +#define EEPROM_TxPwIndex_OFDM_24G 0x67 +#define EEPROM_TSSI_A 0x75 +#define EEPROM_TSSI_B 0x76 +#define EEPROM_TxPwTkMode 0x77 +#define EEPROM_HT2T_CH1_A 0x78 +#define EEPROM_HT2T_CH7_A 0x79 +#define EEPROM_HT2T_CH13_A 0x7a +#define EEPROM_HT2T_CH1_B 0x7b +#define EEPROM_HT2T_CH7_B 0x7c +#define EEPROM_HT2T_CH13_B 0x7d +#define EEPROM_BoardType 0x7e +#else +#define EEPROM_BoardType 0x54 +#define EEPROM_TxPwIndex 0x55 +#define EEPROM_PwDiff 0x67 +#define EEPROM_ThermalMeter 0x68 +#define EEPROM_CrystalCap 0x69 +#define EEPROM_TxPowerBase 0x6a +#define EEPROM_TSSI_A 0x6b +#define EEPROM_TSSI_B 0x6c +#define EEPROM_TxPwTkMode 0x6d + +#define EEPROM_TX_PWR_HT20_DIFF 0x6e +#define DEFAULT_HT20_TXPWR_DIFF 2 +#define EEPROM_TX_PWR_OFDM_DIFF 0x71 +#define TX_PWR_SAFETY_CHK 0x79 +#endif +#define EEPROM_USB_Default_OPTIONAL_FUNC 0x8 +#define EEPROM_USB_Default_PHY_PARAM 0x0 +#define EEPROM_Default_TSSI 0x0 +#define EEPROM_Default_TxPwrTkMode 0x0 +#define EEPROM_Default_TxPowerDiff 0x0 +#define EEPROM_Default_TxPowerBase 0x0 +#define EEPROM_Default_ThermalMeter 0x7 +#define EEPROM_Default_PwDiff 0x4 +#define EEPROM_Default_CrystalCap 0x5 +#define EEPROM_Default_TxPower 0x1010 +#define EEPROM_Default_BoardType 0x02 +#define EEPROM_Default_HT2T_TxPwr 0x10 +#define EEPROM_USB_SN BIT0 +#define EEPROM_USB_REMOTE_WAKEUP BIT1 +#define EEPROM_USB_DEVICE_PWR BIT2 +#define EEPROM_EP_NUMBER (BIT3|BIT4) + + +#define EEPROM_CHANNEL_PLAN_FCC 0x0 +#define EEPROM_CHANNEL_PLAN_IC 0x1 +#define EEPROM_CHANNEL_PLAN_ETSI 0x2 +#define EEPROM_CHANNEL_PLAN_SPAIN 0x3 +#define EEPROM_CHANNEL_PLAN_FRANCE 0x4 +#define EEPROM_CHANNEL_PLAN_MKK 0x5 +#define EEPROM_CHANNEL_PLAN_MKK1 0x6 +#define EEPROM_CHANNEL_PLAN_ISRAEL 0x7 +#define EEPROM_CHANNEL_PLAN_TELEC 0x8 +#define EEPROM_CHANNEL_PLAN_GLOBAL_DOMAIN 0x9 +#define EEPROM_CHANNEL_PLAN_WORLD_WIDE_13 0xA +#define EEPROM_CHANNEL_PLAN_BY_HW_MASK 0x80 + +#define EEPROM_CID_DEFAULT 0x0 +#define EEPROM_CID_ALPHA 0x1 +#define EEPROM_CID_TOSHIBA 0x4 +#define EEPROM_CID_WHQL 0xFE +#endif + + +#define FW_DIG_DISABLE 0xfd00cc00 +#define FW_DIG_ENABLE 0xfd000000 +#define FW_DIG_HALT 0xfd000001 +#define FW_DIG_RESUME 0xfd000002 +#define FW_HIGH_PWR_DISABLE 0xfd000008 +#define FW_HIGH_PWR_ENABLE 0xfd000009 +#define FW_ADD_A2_ENTRY 0xfd000016 +#define FW_TXPWR_TRACK_ENABLE 0xfd000017 +#define FW_TXPWR_TRACK_DISABLE 0xfd000018 +#define FW_TXPWR_TRACK_THERMAL 0xfd000019 +#define FW_TXANT_SWITCH_ENABLE 0xfd000023 +#define FW_TXANT_SWITCH_DISABLE 0xfd000024 +#define FW_RA_INIT 0xfd000026 +#define FW_CTRL_DM_BY_DRIVER 0Xfd00002a +#define FW_RA_IOT_BG_COMB 0xfd000030 +#define FW_RA_IOT_N_COMB 0xfd000031 +#define FW_RA_REFRESH 0xfd0000a0 +#define FW_RA_UPDATE_MASK 0xfd0000a2 +#define FW_RA_DISABLE 0xfd0000a4 +#define FW_RA_ACTIVE 0xfd0000a6 +#define FW_RA_DISABLE_RSSI_MASK 0xfd0000ac +#define FW_RA_ENABLE_RSSI_MASK 0xfd0000ad +#define FW_RA_RESET 0xfd0000af +#define FW_DM_DISABLE 0xfd00aa00 +#define FW_IQK_ENABLE 0xf0000020 +#define FW_IQK_SUCCESS 0x0000dddd +#define FW_IQK_FAIL 0x0000ffff +#define FW_OP_FAILURE 0xffffffff +#define FW_TX_FEEDBACK_NONE 0xfb000000 +#define FW_TX_FEEDBACK_DTM_ENABLE (FW_TX_FEEDBACK_NONE | 0x1) +#define FW_TX_FEEDBACK_CCX_ENABLE (FW_TX_FEEDBACK_NONE | 0x2) +#define FW_BB_RESET_ENABLE 0xff00000d +#define FW_BB_RESET_DISABLE 0xff00000e +#define FW_CCA_CHK_ENABLE 0xff000011 +#define FW_CCK_RESET_CNT 0xff000013 +#define FW_LPS_ENTER 0xfe000010 +#define FW_LPS_LEAVE 0xfe000011 +#define FW_INDIRECT_READ 0xf2000000 +#define FW_INDIRECT_WRITE 0xf2000001 +#define FW_CHAN_SET 0xf3000001 + + + + + + + +#define RFPC 0x5F +#define RCR_9356SEL BIT6 +#define TCR_LRL_OFFSET 0 +#define TCR_SRL_OFFSET 8 +#define TCR_MXDMA_OFFSET 21 +#define TCR_SAT BIT24 +#define RCR_MXDMA_OFFSET 8 +#define RCR_FIFO_OFFSET 13 +#define RCR_OnlyErlPkt BIT31 +#define CWR 0xDC +#define RetryCTR 0xDE + + +#define LED1Cfg UnusedRegister +#define LED0Cfg UnusedRegister +#define GPI UnusedRegister +#define BRSR UnusedRegister +#define CPU_GEN UnusedRegister +#define SIFS UnusedRegister + +#define CPU_GEN_SYSTEM_RESET 0x00000001 + + + + +#define CCX_COMMAND_REG 0x890 +#define CLM_PERIOD_REG 0x894 +#define NHM_PERIOD_REG 0x896 +#define NHM_THRESHOLD0 0x898 +#define NHM_THRESHOLD1 0x899 +#define NHM_THRESHOLD2 0x89A +#define NHM_THRESHOLD3 0x89B +#define NHM_THRESHOLD4 0x89C +#define NHM_THRESHOLD5 0x89D +#define NHM_THRESHOLD6 0x89E +#define CLM_RESULT_REG 0x8D0 +#define NHM_RESULT_REG 0x8D4 +#define NHM_RPI_COUNTER0 0x8D8 +#define NHM_RPI_COUNTER1 0x8D9 +#define NHM_RPI_COUNTER2 0x8DA +#define NHM_RPI_COUNTER3 0x8DB +#define NHM_RPI_COUNTER4 0x8DC +#define NHM_RPI_COUNTER5 0x8DD +#define NHM_RPI_COUNTER6 0x8DE +#define NHM_RPI_COUNTER7 0x8DF + + +#define HAL_8192S_HW_GPIO_OFF_BIT BIT3 +#define HAL_8192S_HW_GPIO_OFF_MASK 0xF7 +#define HAL_8192S_HW_GPIO_WPS_BIT BIT4 + +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_mp.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_mp.c @@ -0,0 +1,1253 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , et al. + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + +#ifdef CONFIG_MP +#include "../rtl_core.h" + +void rtl8192_init_mp(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + priv->chan_forced = false; + + priv->bSingleCarrier = false; + priv->RegBoard = 0; + priv->bCckContTx = false; + priv->bOfdmContTx = false; + priv->bStartContTx = false; + priv->RegPaModel = 0; + priv->btMpCckTxPower = 0; + priv->btMpOfdmTxPower = 0; +} + +static bool r8192_MgntIsRateValidForWirelessMode(u8 rate, u8 wirelessmode) +{ + bool bReturn = false; + + switch(wirelessmode) + { + case WIRELESS_MODE_A: + case WIRELESS_MODE_N_5G: + if((rate >= 12) && (rate <= 108) && (rate != 22) && (rate != 44)) + { + bReturn = true; + } + break; + + case WIRELESS_MODE_B: + if( ((rate <= 22) && (rate != 12) && (rate != 18)) || + (rate == 44) ) + { + bReturn = true; + } + break; + + case WIRELESS_MODE_G: + case WIRELESS_MODE_G | WIRELESS_MODE_B: + case WIRELESS_MODE_N_24G: + if((rate >= 2) && (rate <= 108)) + { + bReturn = true; + } + break; + + case WIRELESS_MODE_AUTO: + printk("MgntIsRateValidForWirelessMode(): wirelessmode should not be WIRELESS_MODE_AUTO\n"); + break; + + default: + printk("MgntIsRateValidForWirelessMode(): Unknown wirelessmode: %d\n", wirelessmode); + break; + } + + if(!bReturn) + { + if(wirelessmode&(WIRELESS_MODE_N_24G|WIRELESS_MODE_N_5G)) + { + if((rate>=0x80) && (rate<=MGN_MCS15_SG)) + bReturn = true; + } + } + return bReturn; +} + +inline u8 r8192_is_wireless_b_mode(u16 rate) +{ + if( ((rate <= 110) && (rate != 60) && (rate != 90)) || (rate == 220) ) + return 1; + else return 0; +} + +static void r8192_XmitOnePacket(struct net_device* dev) +{ + struct r8192_priv* priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + struct sk_buff* skb = rtllib_get_beacon(ieee); + + if (unlikely(!skb)){ + printk("========>error alloc skb\n"); + return; + } + + priv->rtllib->softmac_data_hard_start_xmit(skb, dev, ieee->rate); +} + +int r8192_wx_mp_set_chan(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + int ret = -1; + u8 channel; + + down(&priv->wx_sem); + + channel = *extra; + + rtllib_stop_scan(ieee); + + printk("####RTL819X MP####set channel[1-11] %d\n",channel); + + if((channel > 11) || (channel < 1)) { + up(&priv->wx_sem); + return ret; + } + + priv->rtllib->current_network.channel = channel; + priv->MptChannelToSw = channel; + + priv->chan_forced = false; + MPT_ProSwChannel(dev); + priv->chan_forced = true; + + ret = 0; + up(&priv->wx_sem); + + return ret; + +} + +int r8192_wx_mp_set_txrate(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device* ieee = priv->rtllib; + int ret = -1; + u32 data_rate_index = 0; + + down(&priv->wx_sem); + + data_rate_index = *extra; + + printk("####RTL819X MP####set tx rate index %d\n",data_rate_index); + + priv->MptRateIndex = data_rate_index; + + if((data_rate_index > 27) || (data_rate_index < 0)) { + up(&priv->wx_sem); + return ret; + } else if(data_rate_index <= 3) { + ieee->mode = WIRELESS_MODE_B; + } else if (data_rate_index <= 11) { + ieee->mode = WIRELESS_MODE_G; + } else { + ieee->mode = WIRELESS_MODE_N_24G; + } + + MPT_ProSetDataRate819x(dev); + + printk("####RTL819X MP####set tx rate %d\n",ieee->rate); + + ret = 0; + up(&priv->wx_sem); + + return ret; +} + +int r8192_wx_mp_set_txpower(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int ret = -1; + u8 power_index = 0; + + down(&priv->wx_sem); + + power_index = *extra; + + printk("####RTL819X MP####set tx power index %d\n",power_index); + + if((power_index > 0x3F) || (power_index < 0x00)) { + up(&priv->wx_sem); + return ret; + } + + mpt_ProSetTxPower(dev, power_index); + + ret = 0; + up(&priv->wx_sem); + + return ret; + +} + +int r8192_wx_mp_set_bw(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int ret = -1; + u8 bw_index = 0; + + down(&priv->wx_sem); + + bw_index = *extra; + + printk("####RTL819X MP####set bandwith index %d [0: 20MHz 1: 40MHz]\n",bw_index); + + priv->MptBandWidth = bw_index; + +#if 0 + if((bw_index > 1) || (bw_index < 0)) { + up(&priv->wx_sem); + return ret; + } else if(bw_index == 1) { + HTSetConnectBwMode(priv->rtllib, HT_CHANNEL_WIDTH_20_40, + (priv->rtllib->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + } else { + HTSetConnectBwMode(priv->rtllib, HT_CHANNEL_WIDTH_20, + (priv->rtllib->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER); + } +#else + MPT_ProSetBandWidth819x(dev); +#endif + + ret = 0; + up(&priv->wx_sem); + + return ret; + +} + + + +int r8192_wx_mp_set_txstart(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + int ret = -1; + u8 start_flag = 0; + + down(&priv->wx_sem); + + start_flag = *extra; + + if(start_flag == 1) { + if (priv->bCckContTx || priv->bOfdmContTx) { + printk("####RTL819X MP####continious Tx is undergoing, please close it first\n"); + ret = -EBUSY; + up(&priv->wx_sem); + return ret; + } + + if(r8192_is_wireless_b_mode(ieee->rate)) { + printk("####RTL819X MP####start cck continious TX, rate:%d\n", ieee->rate); + mpt_StartCckContTx(dev, true); + r8192_XmitOnePacket(dev); + } else { + printk("####RTL819X MP####start ofdm continious TX, rate:%d\n", ieee->rate); + mpt_StartOfdmContTx(dev); + r8192_XmitOnePacket(dev); + } + } else if(start_flag == 2) { + bool bCckContTx = priv->bCckContTx; + bool bOfdmContTx = priv->bOfdmContTx; + + if(bCckContTx && !bOfdmContTx) { + printk("####RTL819X MP####stop cck continious TX\n"); + mpt_StopCckCoNtTx(dev); + } else if (!bCckContTx && bOfdmContTx) { + printk("####RTL819X MP####stop ofdm continious TX\n"); + mpt_StopOfdmContTx(dev); + } else if(!bCckContTx && !bOfdmContTx) { + ; + } else { + printk("####RTL819X MP#### Unexpected case! bCckContTx: %d , bOfdmContTx: %d\n", + bCckContTx, bOfdmContTx); +} + } else { + ret = -1; + up(&priv->wx_sem); + return ret; + } + + + ret = 0; + up(&priv->wx_sem); + + return ret; + +} + +int r8192_wx_mp_set_singlecarrier(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + struct rtllib_device *ieee = priv->rtllib; + int ret = -1; + u8 start_flag = 0; + + if((ieee->rate > 108) || (ieee->rate < 12)) + printk("####RTL819X MP#### we did not do singlecarrier when rate not in [6M-54M] tmp, see StartTesting_SingleCarrierTx to get more\n"); + + down(&priv->wx_sem); + + start_flag = *extra; + + if(start_flag == 1){ + if (priv->bCckContTx || priv->bOfdmContTx || priv->bSingleCarrier){ + printk("####RTL819X MP#### single carrier continious Tx is undergoing, please close it first\n"); + ret = -EBUSY; + up(&priv->wx_sem); + return ret; + } + + printk("####RTL819X MP####start single carrier cck continious TX\n"); + mpt_StartOfdmContTx(dev); + r8192_XmitOnePacket(dev); + + } else if(start_flag == 2) { + if (priv->bCckContTx) { + printk("####RTL819X MP####stop single cck continious TX\n"); + mpt_StopCckCoNtTx(dev); + } + if (priv->bOfdmContTx) { + printk("####RTL819X MP####stop single ofdm continious TX\n"); + mpt_StopOfdmContTx(dev); + } + if (priv->bSingleCarrier) { + printk("####RTL819X MP####stop single carrier mode\n"); + MPT_ProSetSingleCarrier(dev, false); + } + } else { + ret = -1; + up(&priv->wx_sem); + + return ret; + } + + ret = 0; + up(&priv->wx_sem); + + return ret; + +} +int r8192_wx_mp_write_rf(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 ulIoType, INulRegOffset, INulRegValue; + u32 *info_buf = (u32*)(&wrqu->freq.m); + u32 ulRegOffset = info_buf[0]; + u32 ulRegValue = info_buf[1]; + u32 RF_PATH = info_buf[2]; + + down(&priv->wx_sem); + printk("####RTL819X MP####%s :ulRegOffset %x, ulRegValue %x, RF_PATH:%x\n", + __func__, ulRegOffset, ulRegValue, RF_PATH); + + ulIoType = MPT_WRITE_RF; + INulRegOffset = ulRegOffset & bRFRegOffsetMask; + INulRegValue = ulRegValue & bRFRegOffsetMask; + + + priv->MptIoOffset = INulRegOffset; + priv->MptIoValue = INulRegValue; + priv->MptRfPath = RF_PATH; + priv->MptActType = ulIoType; + + mpt_Pro819xIoCallback(dev); + + up(&priv->wx_sem); + return 0; + +} + +int r8192_wx_mp_write_mac(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 *info_buf = (u32*)(&wrqu->freq.m); + u32 ulRegOffset = info_buf[0]; + u32 ulRegValue = info_buf[1]; + u32 ulRegDataWidth = info_buf[2]; + u32 ulIoType = 0; + + down(&priv->wx_sem); + + printk("####RTL819X MP####%s :ulRegOffset %x, ulRegValue %x, ulRegDataWidth:%x\n", + __func__, ulRegOffset, ulRegValue, ulRegDataWidth); + + switch(ulRegDataWidth) + { + case 1: + ulIoType = MPT_WRITE_MAC_1BYTE; + break; + + case 2: + ulIoType = MPT_WRITE_MAC_2BYTE; + break; + case 4: + ulIoType = MPT_WRITE_MAC_4BYTE; + break; + default: + printk("####RTL819X MP####%s :error ulRegDataWidth:%x\n", __func__, ulRegDataWidth); + break; + } + + if(ulIoType != 0){ + priv->MptIoOffset = ulRegOffset; + priv->MptIoValue = ulRegValue; + priv->MptActType = ulIoType; + mpt_Pro819xIoCallback(dev); + } + + up(&priv->wx_sem); + + return 0; + +} + +/*----------------------------------------------------------------------------- + * Function: mpt_StartCckContTx() + * + * Overview: Start CCK Continuous Tx. + * + * Input: PADAPTER pAdapter + * BOOLEAN bScrambleOn + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 05/16/2007 MHC Create Version 0. + * + *---------------------------------------------------------------------------*/ +void mpt_StartCckContTx(struct net_device *dev,bool bScrambleOn) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u32 cckrate; + + if(!rtl8192_QueryBBReg(dev, rFPGA0_RFMOD, bCCKEn)) + rtl8192_setBBreg(dev, rFPGA0_RFMOD, bCCKEn, bEnable); + + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMContinueTx, bDisable); + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleCarrier, bDisable); + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleTone, bDisable); + switch(priv->rtllib->rate) + { + case 2: + cckrate = 0; + break; + case 4: + cckrate = 1; + break; + case 11: + cckrate = 2; + break; + case 22: + cckrate = 3; + break; + default: + cckrate = 0; + break; + } + rtl8192_setBBreg(dev, rCCK0_System, bCCKTxRate, cckrate); + + rtl8192_setBBreg(dev, rCCK0_System, bCCKBBMode, 0x2); + rtl8192_setBBreg(dev, rCCK0_System, bCCKScramble, 0x1); + + priv->bCckContTx = true; + priv->bOfdmContTx = false; + +} /* mpt_StartCckContTx */ + +/*----------------------------------------------------------------------------- + * Function: mpt_StartOfdmContTx() + * + * Overview: Start OFDM Continuous Tx. + * + * Input: PADAPTER pAdapter + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 05/16/2007 MHC Create Version 0. + * + *---------------------------------------------------------------------------*/ +void mpt_StartOfdmContTx(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + if(!rtl8192_QueryBBReg(dev, rFPGA0_RFMOD, bOFDMEn)) + rtl8192_setBBreg(dev, rFPGA0_RFMOD, bOFDMEn, bEnable); + + rtl8192_setBBreg(dev, rCCK0_System, bCCKBBMode, bDisable); + + rtl8192_setBBreg(dev, rCCK0_System, bCCKScramble, bEnable); + + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMContinueTx, bEnable); + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleCarrier, bDisable); + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleTone, bDisable); + + priv->bCckContTx = false; + priv->bOfdmContTx = true; + +} /* mpt_StartOfdmContTx */ + +/*----------------------------------------------------------------------------- + * Function: mpt_StopCckCoNtTx() + * + * Overview: Stop CCK Continuous Tx. + * + * Input: PADAPTER pAdapter + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 05/16/2007 MHC Create Version 0. + * + *---------------------------------------------------------------------------*/ +void mpt_StopCckCoNtTx(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + priv->bCckContTx = false; + priv->bOfdmContTx = false; + + rtl8192_setBBreg(dev, rCCK0_System, bCCKBBMode, 0x0); + rtl8192_setBBreg(dev, rCCK0_System, bCCKScramble, 0x1); + + rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x0); + rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x1); + +} /* mpt_StopCckCoNtTx */ + +/*----------------------------------------------------------------------------- + * Function: mpt_StopOfdmContTx() + * + * Overview: Stop 818xB OFDM Continuous Tx. + * + * Input: PADAPTER pAdapter + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 05/16/2007 MHC Create Version 0. + * + *---------------------------------------------------------------------------*/ +void mpt_StopOfdmContTx(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + priv->bCckContTx = false; + priv->bOfdmContTx = false; + + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMContinueTx, bDisable); + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleCarrier, bDisable); + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleTone, bDisable); + mdelay(10); + rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x0); + rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x1); + +} /* mpt_StopOfdmContTx */ + +/*----------------------------------------------------------------------------- + * Function: mpt_SwitchRfSetting92S + * + * Overview: Change RF Setting when we siwthc channel/rate/BW for 92S series MP. + * + * Input: IN PADAPTER pAdapter + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 01/08/2009 MHC Suggestion from SD3 Willis for 92S series. + * 01/09/2009 MHC Add CCK modification for 40MHZ. Suggestion from SD3. + * + *---------------------------------------------------------------------------*/ + void mpt_SwitchRfSetting92S(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u8 ChannelToSw = priv->MptChannelToSw; + u32 ulRateIdx = priv->MptRateIndex; + u32 ulbandwidth = priv->MptBandWidth; + + if (ulbandwidth == BAND_20MHZ_MODE) + { + if (ChannelToSw == 1) + { + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0A8F4); + } + else if (ChannelToSw == 11) + { + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0F8F5); + } + else + { + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0F8F4); + } + } + else + { + if (ChannelToSw == 3) + { + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0A8F4); + } + else if (ChannelToSw == 9 || ChannelToSw == 10 || ChannelToSw == 11) + { + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0F8F5); + } + else + { + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0F8F4); + } + } + + + if (ulRateIdx < MPT_RATE_6M) + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_SYN_G2, 0xFFFFF, 0x04440); + else + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_SYN_G2, 0xFFFFF, 0x0F200); +} + +/*----------------------------------------------------------------------------- + * Function: mpt_ProSetTxPower() + * + * Overview: Change Tx Power of current channel for + * OID_RT_PRO_SET_TX_POWER_CONTROL. + * + * Input: NONE + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 05/16/2007 MHC Create Version 0. + * + *---------------------------------------------------------------------------*/ +bool mpt_ProSetTxPower( struct net_device *dev, u32 ulTxPower) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u8 CurrChannel = priv->rtllib->current_network.channel; + bool bResult = true; + + CurrChannel = priv->MptChannelToSw; + + if(CurrChannel > 11 || CurrChannel < 1) + { + printk("mpt_ProSetTxPower(): CurrentChannel:%d is not valid\n", CurrChannel); + return false; + } + + if(ulTxPower > MAX_TX_PWR_INDEX_N_MODE) + { + printk("mpt_ProSetTxPower(): TxPWR:%d is invalid\n", ulTxPower); + return false; + } + + if( priv->MptRateIndex >= MPT_RATE_1M && + priv->MptRateIndex <= MPT_RATE_11M ) + { + priv->TxPowerLevelCCK[CurrChannel-1] = (u8)ulTxPower; + + priv->RfTxPwrLevelCck[0][CurrChannel-1] = (u8)ulTxPower; + } + else if(priv->MptRateIndex >= MPT_RATE_6M && + priv->MptRateIndex <= MPT_RATE_MCS15 ) + { + priv->TxPowerLevelOFDM24G[CurrChannel-1] = (u8)ulTxPower; + + priv->RfTxPwrLevelOfdm1T[0][CurrChannel-1] = (u8)ulTxPower; + priv->RfTxPwrLevelOfdm2T[0][CurrChannel-1] = (u8)ulTxPower; + } + + rtl8192_phy_setTxPower(dev,CurrChannel); + + return bResult; + +} /* mpt_ProSetTxPower */ + +/*----------------------------------------------------------------------------- + * Function: mpt_ProSetTxAGCOffset() + * + * Overview: Change Tx AGC Offset + * OID_RT_PRO_SET_TX_AGC_OFFSET. + * + * Input: NONE + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 08/09/2007 Cosa Create Version 0. + * + *---------------------------------------------------------------------------*/ +bool mpt_ProSetTxAGCOffset(struct net_device *dev, u32 ulTxAGCOffset) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + bool bResult = true; + u32 TxAGCOffset_B, TxAGCOffset_C, TxAGCOffset_D; + + TxAGCOffset_B = (ulTxAGCOffset&0x000000ff); + TxAGCOffset_C = ((ulTxAGCOffset&0x0000ff00)>>8); + TxAGCOffset_D = ((ulTxAGCOffset&0x00ff0000)>>16); + + if( TxAGCOffset_B > TxAGC_Offset_neg1 || + TxAGCOffset_C > TxAGC_Offset_neg1 || + TxAGCOffset_D > TxAGC_Offset_neg1 ) + { + printk("mpt_ProSetTxAGCOffset(): TxAGCOffset:%d is invalid\n", ulTxAGCOffset); + return false; + } + + priv->AntennaTxPwDiff[0] = TxAGCOffset_B; + priv->AntennaTxPwDiff[1] = TxAGCOffset_C; + priv->AntennaTxPwDiff[2] = TxAGCOffset_D; + + MPT_ProSetTxAGCOffset(dev); + + return bResult; + +} /* mpt_ProSetTxPower */ + +/*----------------------------------------------------------------------------- + * Function: mpt_ProSetTxAGCOffset() + * + * Overview: Change Tx AGC Offset + * OID_RT_PRO_SET_TX_AGC_OFFSET. + * + * Input: NONE + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 08/09/2007 Cosa Create Version 0. + * + *---------------------------------------------------------------------------*/ +bool mpt_ProSetRxFilter(struct net_device *dev, u32 RCRMode) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + if(RCRMode == 1) + { + priv->MptRCR &= ~(RCR_AAP|RCR_AM|RCR_AB); + priv->MptRCR |= RCR_APM; + write_nic_dword(dev, RCR, priv->MptRCR); + } + else + { + priv->MptRCR |= (RCR_AAP|RCR_APM|RCR_AM|RCR_AB); + write_nic_dword(dev, RCR, priv->MptRCR); + } + + return 1; +} /* mpt_ProSetTxPower */ + +/*----------------------------------------------------------------------------- + * Function: mpt_ProSetModulation() + * + * Overview: Switch wireless mode for OID_RT_PRO_SET_MODULATION. + * + * Input: PADAPTER pAdapter + * ULONG ulWirelessMode + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 05/16/2007 MHC Create Version 0. + * + *---------------------------------------------------------------------------*/ +bool mpt_ProSetModulation(struct net_device *dev, u32 ulWirelessMode) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + WIRELESS_MODE WirelessMode; + bool bResult = false; + + switch(ulWirelessMode) + { + case WIRELESS_MODE_A: + WirelessMode = WIRELESS_MODE_A; + break; + + case WIRELESS_MODE_B: + WirelessMode = WIRELESS_MODE_B; + break; + + case WIRELESS_MODE_G: + case WIRELESS_MODE_G |WIRELESS_MODE_B: + WirelessMode = WIRELESS_MODE_G; + break; + + case WIRELESS_MODE_N_24G: + WirelessMode = WIRELESS_MODE_N_24G; + break; + + case WIRELESS_MODE_N_5G: + WirelessMode = WIRELESS_MODE_N_5G; + break; + + case WIRELESS_MODE_AUTO: + default: + bResult = false; + return bResult; + break; + } + + priv->rtllib->mode = WirelessMode; + priv->RegWirelessMode = WirelessMode; + rtl8192_SetWirelessMode(dev, priv->rtllib->mode); + HTUseDefaultSetting(priv->rtllib); + + + if (IS_HARDWARE_TYPE_8192SE(dev)) + { + mpt_SwitchRfSetting92S(dev); + } + + bResult = true; + + return bResult; + +} + +/*----------------------------------------------------------------------------- + * Function: mpt_Pro819xIoCallback() + * + * Overview: Callback function of a workitem for IO. + * + * Input: NONE + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 05/16/2007 MHC Create Version 0. + * + *---------------------------------------------------------------------------*/ +void mpt_Pro819xIoCallback(struct net_device *dev) +{ + + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u32 MptActType = priv->MptActType; + + printk("####RTL819X MP####%s :ulRegOffset %x, ulRegValue %x, MptActType:%x, MptRfPath:%x\n", + __func__, priv->MptIoOffset, priv->MptIoValue, MptActType, priv->MptRfPath); + + switch(MptActType) + { + case MPT_WRITE_MAC_1BYTE: + write_nic_byte(dev, priv->MptIoOffset, (u8)(priv->MptIoValue)); + break; + + case MPT_WRITE_MAC_2BYTE: + write_nic_word(dev, priv->MptIoOffset, (u16)(priv->MptIoValue)); + break; + + case MPT_WRITE_MAC_4BYTE: + write_nic_dword(dev, priv->MptIoOffset, (u32)(priv->MptIoValue)); + break; + + case MPT_WRITE_RF: + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)priv->MptRfPath, + priv->MptIoOffset, bRFRegOffsetMask, priv->MptIoValue); + break; + + default: + break; + } +} + +void MPT_ProSetSingleCarrier(struct net_device *dev, bool ulMode) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + + if(ulMode == 1) { + priv->bSingleCarrier = true; + } else { + priv->bSingleCarrier = false; + } + + if(priv->bSingleCarrier) + { + if(!rtl8192_QueryBBReg(dev, rFPGA0_RFMOD, bOFDMEn)) + rtl8192_setBBreg(dev, rFPGA0_RFMOD, bOFDMEn, bEnable); + + rtl8192_setBBreg(dev, rCCK0_System, bCCKBBMode, bDisable); + + rtl8192_setBBreg(dev, rCCK0_System, bCCKScramble, bEnable); + + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMContinueTx, bDisable); + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleCarrier, bEnable); + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleTone, bDisable); + } + else + { + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMContinueTx, bDisable); + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleCarrier, bDisable); + rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleTone, bDisable); + mdelay(10); + rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x0); + rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x1); + } +} + +/*----------------------------------------------------------------------------- + * Function: MPT_ProSetBandWidth819x() + * + * Overview: None + * + * Input: PADAPTER pAdapter + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 01/03/2007 Cosa Create Version 0. + * + *---------------------------------------------------------------------------*/ +void MPT_ProSetBandWidth819x(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo; + u32 ulbandwidth = priv->MptBandWidth; + + printk("##################MPT_ProSetBandWidth819x() is start. \n"); + /* 2007/06/07 MH Call normal driver API and set 40MHZ mode. */ + if (ulbandwidth == BAND_20MHZ_MODE) { + /* 20 MHZ sub-carrier mode --> dont care. */ + pHTInfo->bCurBW40MHz = false; + pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_NO_EXT; + priv->rtllib->SetBWModeHandler(dev, HT_CHANNEL_WIDTH_20, pHTInfo->CurSTAExtChnlOffset); + } else if (ulbandwidth == BAND_40MHZ_DUPLICATE_MODE) { + /* Sub-Carrier mode is defined in MAC data sheet chapter 12.3. */ + /* 40MHX sub-carrier mode --> duplicate. */ + pHTInfo->bCurBW40MHz = true; + pHTInfo->bCurTxBW40MHz = true; + pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_NO_DEF; + + priv->rtllib->SetBWModeHandler(dev, HT_CHANNEL_WIDTH_20_40, pHTInfo->CurSTAExtChnlOffset); + } else if (ulbandwidth == BAND_40MHZ_LOWER_MODE) { + /* 40MHX sub-carrier mode --> lower mode */ + pHTInfo->bCurBW40MHz = true; + pHTInfo->bCurTxBW40MHz = true; + pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_LOWER; + + /* Extention channel is lower. Current channel must > 3. */ + /*if (pMgntInfo->dot11CurrentChannelNumber < 3) + DbgPrint("Illegal Current_Chl=%d\r\n", pMgntInfo->dot11CurrentChannelNumber); + else + pAdapter->HalFunc.SwChnlByTimerHandler(pAdapter, pMgntInfo->dot11CurrentChannelNumber-2);*/ + + priv->rtllib->SetBWModeHandler(dev, HT_CHANNEL_WIDTH_20_40, pHTInfo->CurSTAExtChnlOffset); + } else if (ulbandwidth == BAND_40MHZ_UPPER_MODE) { + /* 40MHX sub-carrier mode --> upper mode */ + pHTInfo->bCurBW40MHz = true; + pHTInfo->bCurTxBW40MHz = true; + pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_UPPER; + + /* Extention channel is upper. Current channel must < 12. */ + /*if (pMgntInfo->dot11CurrentChannelNumber > 12) + DbgPrint("Illegal Current_Chl=%d", pMgntInfo->dot11CurrentChannelNumber); + else + pAdapter->HalFunc.SwChnlByTimerHandler(pAdapter, pMgntInfo->dot11CurrentChannelNumber+2);*/ + + priv->rtllib->SetBWModeHandler(dev, HT_CHANNEL_WIDTH_20_40, pHTInfo->CurSTAExtChnlOffset); + } else if (ulbandwidth == BAND_40MHZ_DONTCARE_MODE) { + /* 40MHX sub-carrier mode --> dont care mode */ + pHTInfo->bCurBW40MHz = true; + pHTInfo->bCurTxBW40MHz = true; + pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_LOWER; + + priv->rtllib->SetBWModeHandler(dev, HT_CHANNEL_WIDTH_20_40, pHTInfo->CurSTAExtChnlOffset); + } else { + printk("##################MPT_ProSetBandWidth819x() error BW. \n"); + return; + } + +{ + mpt_SwitchRfSetting92S(dev); + return; + } + + printk("##################MPT_ProSetBandWidth819x() is finished. \n"); +} + +/*----------------------------------------------------------------------------- + * Function: MPT_ProSwChannel() + * + * Overview: Callback function of a work item to switch channel for + * OID_RT_PRO_SET_CHANNEL_DIRECT_CALL + * + * Input: PVOID Context + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 05/16/2007 MHC Create Version 0. + * 06/07/2007 MHC Normal driver change switch channel handler. + * 09/03/2008 MHC RF channel register for 92S. + * 01/08/2008 MHC For MP verification for 92S,weneed to change setting according + * to SD3 Willis's document. + * + *---------------------------------------------------------------------------*/ +void MPT_ProSwChannel(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u8 ChannelToSw = priv->MptChannelToSw; + u8 eRFPath; + + priv->rtllib->current_network.channel = ChannelToSw; + priv->MptChannelToSw = ChannelToSw; + + if (IS_HARDWARE_TYPE_8192SE(dev)) + { + for(eRFPath = 0; eRFPath NumTotalRFPath; eRFPath++) + { + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, rRfChannel, 0x3FF, ChannelToSw); + } + + if (IS_HARDWARE_TYPE_8192SE(dev)) + { + mpt_SwitchRfSetting92S(dev); + } + } + +#ifdef MP_DEVELOP_READY + for(eRFPath = 0; eRFPath NumTotalRFPath; eRFPath++) + { + if (IS_HARDWARE_TYPE_8192SE(dev)) + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, rRfChannel, 0x3FF, ChannelToSw); + + udelay(100); + } + + + for(eRFPath = 0; eRFPath NumTotalRFPath; eRFPath++) + { + if (IS_HARDWARE_TYPE_8192SE(dev)) + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, rRfChannel, 0x3FF, ChannelToSw); + + udelay(100); + } +#endif + + /* 2007/06/07 MH Normal driver change sw channel handler. It does not + support SwChnlByDelayHandler ans replace with SwChnlByTimerHandler. */ + priv->rtllib->set_chan(dev, ChannelToSw); + +#if 0 + if(pHalData->CurrentChannel == 14 && !pHalData->bCCKinCH14){ + pHalData->bCCKinCH14 = true; + MPT_CCKTxPowerAdjust(pAdapter,pHalData->bCCKinCH14); + } + else if(pHalData->CurrentChannel != 14 && pHalData->bCCKinCH14){ + pHalData->bCCKinCH14 = false; + MPT_CCKTxPowerAdjust(pAdapter,pHalData->bCCKinCH14); + } +#endif +} /* MPT_ProSwChannel */ + +/*----------------------------------------------------------------------------- + * Function: MPT_ProSetDataRate819x() + * + * Overview: None + * + * Input: PADAPTER pAdapter + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 01/03/2007 Cosa Create Version 0. + * + *---------------------------------------------------------------------------*/ +void MPT_ProSetDataRate819x(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u8 DataRate = 0xFF; + u32 ulRateIdx = priv->MptRateIndex; + + + printk("################MPT_ProSetDataRate819x():Rate=%d\n", ulRateIdx); + switch(ulRateIdx) + { + /* CCK rate. */ + case MPT_RATE_1M: DataRate = 2; break; + case MPT_RATE_2M: DataRate = 4; break; + case MPT_RATE_55M: DataRate = 11; break; + case MPT_RATE_11M: DataRate = 22; break; + + /* OFDM rate. */ + case MPT_RATE_6M: DataRate = 12; break; + case MPT_RATE_9M: DataRate = 18; break; + case MPT_RATE_12M: DataRate = 24; break; + case MPT_RATE_18M: DataRate = 36; break; + case MPT_RATE_24M: DataRate = 48; break; + case MPT_RATE_36M: DataRate = 72; break; + case MPT_RATE_48M: DataRate = 96; break; + case MPT_RATE_54M: DataRate = 108; break; + + /* HT rate. */ + case MPT_RATE_MCS0: DataRate = 0x80; break; + case MPT_RATE_MCS1: DataRate = 0x81; break; + case MPT_RATE_MCS2: DataRate = 0x82; break; + case MPT_RATE_MCS3: DataRate = 0x83; break; + case MPT_RATE_MCS4: DataRate = 0x84; break; + case MPT_RATE_MCS5: DataRate = 0x85; break; + case MPT_RATE_MCS6: DataRate = 0x86; break; + case MPT_RATE_MCS7: DataRate = 0x87; break; + case MPT_RATE_MCS8: DataRate = 0x88; break; + case MPT_RATE_MCS9: DataRate = 0x89; break; + case MPT_RATE_MCS10: DataRate = 0x8A; break; + case MPT_RATE_MCS11: DataRate = 0x8B; break; + case MPT_RATE_MCS12: DataRate = 0x8C; break; + case MPT_RATE_MCS13: DataRate = 0x8D; break; + case MPT_RATE_MCS14: DataRate = 0x8E; break; + case MPT_RATE_MCS15: DataRate = 0x8F; break; + case MPT_RATE_LAST: + break; + + default: + break; + } + + { + mpt_SwitchRfSetting92S(dev); + } + +#ifdef MP_DEVELOP_READY + if (IS_HARDWARE_TYPE_8192SE(dev)) + { + for(eRFPath = 0; eRFPath NumTotalRFPath; eRFPath++) + { + if (ulbandwidth == BAND_20MHZ_MODE) + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, rRfChannel, (BIT11|BIT10), 0x01); + else + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, rRfChannel, (BIT11|BIT10), 0x00); + + delay_us(100); + } + } +#endif + + + if(!r8192_MgntIsRateValidForWirelessMode(DataRate, priv->rtllib->mode) && DataRate != 0 ) + { + printk("[MPT]: unknow wmode=%d", priv->rtllib->mode); + } + if (DataRate != 0xFF) + { + printk("[MPT]: Force rate=0x%02x", DataRate); + priv->rtllib->rate = (int)DataRate; + } + +} + +/*----------------------------------------------------------------------------- + * Function: MPT_ProSetTxAGCOffset() + * + * Overview: Set Tx power level for + * OID_RT_PRO_SET_TX_AGC_OFFSET + * + * Input: PVOID Context + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 08/09/2007 Cosa Create Version 0. + * + *---------------------------------------------------------------------------*/ +void MPT_ProSetTxAGCOffset(struct net_device *dev) +{ + struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); + u32 u4RegValue, TxAGCOffset_B, TxAGCOffset_C, TxAGCOffset_D; + + TxAGCOffset_B = priv->AntennaTxPwDiff[0]; + TxAGCOffset_C = priv->AntennaTxPwDiff[1]; + TxAGCOffset_D = priv->AntennaTxPwDiff[2]; + + + u4RegValue = (TxAGCOffset_D<<8 | TxAGCOffset_C<<4 | TxAGCOffset_B); + rtl8192_setBBreg(dev, rFPGA0_TxGainStage, (bXBTxAGC|bXCTxAGC|bXDTxAGC), u4RegValue); + printk("##################MPT_ProSetTxAGCOffset() is finished \n"); +} + +#endif + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.c @@ -0,0 +1,971 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + +#ifdef RTL8192SE +#include "../rtl_core.h" +#include "../rtl_dm.h" + +/*---------------------------Define Local Constant---------------------------*/ +typedef struct RF_Shadow_Compare_Map { + u32 Value; + u8 Compare; + u8 ErrorOrNot; + u8 Recorver; + u8 Driver_Write; +}RF_SHADOW_T; +/*---------------------------Define Local Constant---------------------------*/ + + +/*------------------------Define global variable-----------------------------*/ +/*------------------------Define global variable-----------------------------*/ + + + + +/*---------------------Define local function prototype-----------------------*/ +void phy_RF6052_Config_HardCode(struct net_device* dev); + +bool phy_RF6052_Config_ParaFile(struct net_device* dev); +/*---------------------Define local function prototype-----------------------*/ + +/*------------------------Define function prototype--------------------------*/ +extern void RF_ChangeTxPath(struct net_device* dev, u16 DataRate); + +/*------------------------Define function prototype--------------------------*/ + +/*------------------------Define local variable------------------------------*/ +static RF_SHADOW_T RF_Shadow[RF6052_MAX_PATH][RF6052_MAX_REG]; +/*------------------------Define local variable------------------------------*/ + +/*------------------------Define function prototype--------------------------*/ +extern void RF_ChangeTxPath(struct net_device* dev, u16 DataRate) +{ +#if 0 + static u1Byte RF_Path_Type = 2; + static u4Byte tx_gain_tbl1[6] + = {0x17f50, 0x11f40, 0x0cf30, 0x08720, 0x04310, 0x00100}; + static u4Byte tx_gain_tbl2[6] + = {0x15ea0, 0x10e90, 0x0c680, 0x08250, 0x04040, 0x00030}; + u1Byte i; + + if (RF_Path_Type == 2 && (DataRate&0xF) <= 0x7) + { + PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, + RF_TXPA_G2, bMask20Bits, 0x0f000); + PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, + RF_TXPA_G3, bMask20Bits, 0xeacf1); + + for (i = 0; i < 6; i++) + PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, + RF_TX_AGC, bMask20Bits, tx_gain_tbl1[i]); + + PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, + RF_TXPA_G2, bMask20Bits, 0x01e39); + } + else if (RF_Path_Type == 1 && (DataRate&0xF) >= 0x8) + { + PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, + RF_TXPA_G2, bMask20Bits, 0x04440); + PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, + RF_TXPA_G3, bMask20Bits, 0xea4f1); + + for (i = 0; i < 6; i++) + PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, + RF_TX_AGC, bMask20Bits, tx_gain_tbl2[i]); + + PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, + RF_TXPA_G2, bMask20Bits, 0x01e19); + } +#endif + +} /* RF_ChangeTxPath */ + + +void PHY_RF6052SetBandwidth(struct net_device* dev, HT_CHANNEL_WIDTH Bandwidth) +{ + u8 eRFPath; + struct r8192_priv *priv = rtllib_priv(dev); + + + if (IS_HARDWARE_TYPE_8192SE(dev)) + { +#if (RTL92SE_FPGA_VERIFY == 0) + switch(Bandwidth) + { + case HT_CHANNEL_WIDTH_20: +#if 1 + priv->RfRegChnlVal[0] = ((priv->RfRegChnlVal[0] & 0xfffff3ff) | 0x0400); + rtl8192_phy_SetRFReg(dev, RF90_PATH_A, RF_CHNLBW, bRFRegOffsetMask, priv->RfRegChnlVal[0]); +#else + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, RF_CHNLBW, BIT10|BIT11, 0x01); +#endif + break; + case HT_CHANNEL_WIDTH_20_40: +#if 1 + priv->RfRegChnlVal[0] = ((priv->RfRegChnlVal[0] & 0xfffff3ff)); + rtl8192_phy_SetRFReg(dev, RF90_PATH_A, RF_CHNLBW, bRFRegOffsetMask, priv->RfRegChnlVal[0]); +#else + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, RF_CHNLBW, BIT10|BIT11, 0x00); +#endif + break; + default: + RT_TRACE(COMP_DBG, "PHY_SetRF6052Bandwidth(): unknown Bandwidth: %#X\n",Bandwidth); + break; + } +#endif + } + else + { + for(eRFPath = 0; eRFPath NumTotalRFPath; eRFPath++) + { + switch(Bandwidth) + { + case HT_CHANNEL_WIDTH_20: + break; + case HT_CHANNEL_WIDTH_20_40: + break; + default: + RT_TRACE(COMP_DBG, "PHY_SetRF8225Bandwidth(): unknown Bandwidth: %#X\n",Bandwidth ); + break; + + } + } + } +} + + +extern void PHY_RF6052SetCckTxPower(struct net_device* dev, u8 powerlevel) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 TxAGC=0; + bool dontIncCCKOrTurboScanOff=false; + + if (((priv->eeprom_version >= 2) && (priv->TxPwrSafetyFlag == 1)) || + ((priv->eeprom_version >= 2) && (priv->EEPROMRegulatory != 0))) { + dontIncCCKOrTurboScanOff = true; + } + + if(rtllib_act_scanning(priv->rtllib,true) == true){ + TxAGC = 0x3f; + + if(dontIncCCKOrTurboScanOff ) + TxAGC = powerlevel; + } else { + TxAGC = powerlevel; + + if(priv->DynamicTxHighPowerLvl == TxHighPwrLevel_Level1) + TxAGC = 0x10; + else if(priv->DynamicTxHighPowerLvl == TxHighPwrLevel_Level2) + TxAGC = 0x0; + } + + if(TxAGC > RF6052_MAX_TX_PWR) + TxAGC = RF6052_MAX_TX_PWR; + + rtl8192_setBBreg(dev, rTxAGC_CCK_Mcs32, bTxAGCRateCCK, TxAGC); + +} /* PHY_RF6052SetCckTxPower */ + + +#if 0 +extern void PHY_RF6052SetOFDMTxPower(struct net_device* dev, u8 powerlevel, u8 Channel) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 writeVal, powerBase0, powerBase1; + u8 index = 0; + u16 RegOffset[6] = {0xe00, 0xe04, 0xe10, 0xe14, 0xe18, 0xe1c}; + u8 rfa_pwr[4]; + u8 rfa_lower_bound = 0, rfa_upper_bound = 0; + u8 i; + u8 rf_pwr_diff = 0, chnlGroup = 0; + u8 Legacy_pwrdiff=0, HT20_pwrdiff=0; + + if (priv->eeprom_version < 2) + powerBase0 = powerlevel + (priv->LegacyHTTxPowerDiff & 0xf); + else if (priv->eeprom_version >= 2) + { + Legacy_pwrdiff = priv->TxPwrLegacyHtDiff[RF90_PATH_A][Channel-1]; + powerBase0 = powerlevel + Legacy_pwrdiff; + RT_TRACE(COMP_POWER, " [LagacyToHT40 pwr diff = %d]\n", Legacy_pwrdiff); + RT_TRACE(COMP_POWER, " [OFDM power base index = 0x%x]\n", powerBase0); + } + powerBase0 = (powerBase0<<24) | (powerBase0<<16) |(powerBase0<<8) |powerBase0; + + if(priv->eeprom_version >= 2) + { + + if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20) + { + HT20_pwrdiff = priv->TxPwrHt20Diff[RF90_PATH_A][Channel-1]; + + if (HT20_pwrdiff < 8) + powerlevel += HT20_pwrdiff; + else + powerlevel -= (16-HT20_pwrdiff); + + RT_TRACE(COMP_POWER, " [HT20 to HT40 pwrdiff = %d]\n", HT20_pwrdiff); + RT_TRACE(COMP_POWER, " [MCS power base index = 0x%x]\n", powerlevel); + } + } + powerBase1 = powerlevel; + powerBase1 = (powerBase1<<24) | (powerBase1<<16) |(powerBase1<<8) |powerBase1; + + RT_TRACE(COMP_POWER, " [Legacy/HT power index= %x/%x]\n", powerBase0, powerBase1); + + for(index=0; index<6; index++) + { + + if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) + { + writeVal = ((index<2)?powerBase0:powerBase1); + } + else + { + if(priv->pwrGroupCnt == 0) + chnlGroup = 0; + if(priv->pwrGroupCnt >= 3) + { + if(Channel <= 3) + chnlGroup = 0; + else if(Channel >= 4 && Channel <= 9) + chnlGroup = 1; + else if(Channel >= 10) + chnlGroup = 2; + if(priv->pwrGroupCnt == 4) + chnlGroup ++; + } + else + chnlGroup = 0; + writeVal = priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index] + + ((index<2)?powerBase0:powerBase1); + } + RT_TRACE(COMP_POWER, "Reg 0x%x, chnlGroup = %d, Original=%x writeVal=%x\n", + RegOffset[index], chnlGroup, priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index], + writeVal); + + if (priv->rf_type == RF_2T2R) + { + rf_pwr_diff = priv->AntennaTxPwDiff[0]; + RT_TRACE(COMP_POWER, "2T2R RF-B to RF-A PWR DIFF=%d\n", rf_pwr_diff); + + if (rf_pwr_diff >= 8) + { + rfa_lower_bound = 0x10-rf_pwr_diff; + RT_TRACE(COMP_POWER, "rfa_lower_bound= %d\n", rfa_lower_bound); + } + else if (rf_pwr_diff >= 0) + { + rfa_upper_bound = RF6052_MAX_TX_PWR-rf_pwr_diff; + RT_TRACE(COMP_POWER, "rfa_upper_bound= %d\n", rfa_upper_bound); + } + } + + for (i= 0; i <4; i++) + { + rfa_pwr[i] = (u8)((writeVal & (0x7f<<(i*8)))>>(i*8)); + if (rfa_pwr[i] > RF6052_MAX_TX_PWR) + rfa_pwr[i] = RF6052_MAX_TX_PWR; + + if (priv->rf_type == RF_2T2R) + { + if (rf_pwr_diff >= 8) + { + if (rfa_pwr[i] = 1) + { + if (rfa_pwr[i] > rfa_upper_bound) + { + RT_TRACE(COMP_POWER, "Overflow"); + rfa_pwr[i] = rfa_upper_bound; + } + } + RT_TRACE(COMP_POWER, "rfa_pwr[%d]=%x\n", i, rfa_pwr[i]); + } + + } + +#if 1 + writeVal = (rfa_pwr[3]<<24) | (rfa_pwr[2]<<16) |(rfa_pwr[1]<<8) |rfa_pwr[0]; + RT_TRACE(COMP_POWER, "WritePower=%08x\n", writeVal); +#else + if(priv->bDynamicTxHighPower == true) + { + if(index > 1) + { + writeVal = 0x03030303; + } + else + { + writeVal = (rfa_pwr[3]<<24) | (rfa_pwr[2]<<16) |(rfa_pwr[1]<<8) |rfa_pwr[0]; + } + RT_TRACE(COMP_POWER, "HighPower=%08x\n", writeVal); + } + else + { + writeVal = (rfa_pwr[3]<<24) | (rfa_pwr[2]<<16) |(rfa_pwr[1]<<8) |rfa_pwr[0]; + RT_TRACE(COMP_POWER, "NormalPower=%08x\n", writeVal); + } +#endif + rtl8192_setBBreg(dev, RegOffset[index], 0x7f7f7f7f, writeVal); + } + +} /* PHY_RF6052SetOFDMTxPower */ +#endif + +void getPowerBase( + struct net_device* dev, + u8* pPowerLevel, + u8 Channel, + u32* OfdmBase, + u32* MCSBase, + u8* pFinalPowerIndex + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 powerBase0, powerBase1; + u8 Legacy_pwrdiff=0, HT20_pwrdiff=0; + u8 i, powerlevel[4]; + + for(i=0; i<2; i++) + powerlevel[i] = pPowerLevel[i]; + if (priv->eeprom_version < 2) + powerBase0 = powerlevel[0] + (priv->LegacyHTTxPowerDiff & 0xf); + else if (priv->eeprom_version >= 2) + { + Legacy_pwrdiff = priv->TxPwrLegacyHtDiff[RF90_PATH_A][Channel-1]; + powerBase0 = powerlevel[0] + Legacy_pwrdiff; + } + powerBase0 = (powerBase0<<24) | (powerBase0<<16) |(powerBase0<<8) |powerBase0; + *OfdmBase = powerBase0; + RT_TRACE(COMP_POWER, " [OFDM power base index = 0x%x]\n", powerBase0); + + if(priv->eeprom_version >= 2) + { + if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20) + { + for(i=0; i<2; i++) + { + HT20_pwrdiff = priv->TxPwrHt20Diff[i][Channel-1]; + if (HT20_pwrdiff < 8) + powerlevel[i] += HT20_pwrdiff; + else + powerlevel[i] -= (16-HT20_pwrdiff); + } + } + } + powerBase1 = powerlevel[0]; + powerBase1 = (powerBase1<<24) | (powerBase1<<16) |(powerBase1<<8) |powerBase1; + *MCSBase = powerBase1; + + RT_TRACE(COMP_POWER, " [MCS power base index = 0x%x]\n", powerBase1); + + pFinalPowerIndex[0] = powerlevel[0]; + pFinalPowerIndex[1] = powerlevel[1]; + switch(priv->EEPROMRegulatory) + { + case 3: + if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) + { + pFinalPowerIndex[0] += priv->PwrGroupHT40[RF90_PATH_A][Channel-1]; + pFinalPowerIndex[1] += priv->PwrGroupHT40[RF90_PATH_B][Channel-1]; + } + else + { + pFinalPowerIndex[0] += priv->PwrGroupHT20[RF90_PATH_A][Channel-1]; + pFinalPowerIndex[1] += priv->PwrGroupHT20[RF90_PATH_B][Channel-1]; + } + break; + default: + break; + } + if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) + { + RT_TRACE(COMP_POWER, "40MHz finalPowerIndex (A / B) = 0x%x / 0x%x\n", + pFinalPowerIndex[0], pFinalPowerIndex[1]); + } + else + { + RT_TRACE(COMP_POWER, "20MHz finalPowerIndex (A / B) = 0x%x / 0x%x\n", + pFinalPowerIndex[0], pFinalPowerIndex[1]); + } +} + +void getTxPowerWriteValByRegulatory( + struct net_device* dev, + u8 Channel, + u8 index, + u32 powerBase0, + u32 powerBase1, + u32* pOutWriteVal + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 i, chnlGroup, pwr_diff_limit[4]; + u32 writeVal, customer_limit; + + switch(priv->EEPROMRegulatory) + { + case 0: + chnlGroup = 0; + RT_TRACE(COMP_POWER,"MCSTxPowerLevelOriginalOffset[%d][%d] = 0x%x\n", + chnlGroup, index, priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index]); + writeVal = priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index] + + ((index<2)?powerBase0:powerBase1); + RT_TRACE(COMP_POWER,"RTK better performance, writeVal = 0x%x\n", writeVal); + break; + case 1: + if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) + { + writeVal = ((index<2)?powerBase0:powerBase1); + RT_TRACE(COMP_POWER,"Realtek regulatory, 40MHz, writeVal = 0x%x\n", writeVal); + } + else + { + if(priv->pwrGroupCnt == 1) + chnlGroup = 0; + if(priv->pwrGroupCnt >= 3) + { + if(Channel <= 3) + chnlGroup = 0; + else if(Channel >= 4 && Channel <= 8) + chnlGroup = 1; + else if(Channel > 8) + chnlGroup = 2; + if(priv->pwrGroupCnt == 4) + chnlGroup++; + } + RT_TRACE(COMP_POWER,"MCSTxPowerLevelOriginalOffset[%d][%d] = 0x%x\n", + chnlGroup, index, priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index]); + writeVal = priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index] + + ((index<2)?powerBase0:powerBase1); + RT_TRACE(COMP_POWER,"Realtek regulatory, 20MHz, writeVal = 0x%x\n", writeVal); + } + break; + case 2: + writeVal = ((index<2)?powerBase0:powerBase1); + RT_TRACE(COMP_POWER,"Better regulatory, writeVal = 0x%x\n", writeVal); + break; + case 3: + chnlGroup = 0; + RT_TRACE(COMP_POWER,"MCSTxPowerLevelOriginalOffset[%d][%d] = 0x%x\n", + chnlGroup, index, priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index]); + + if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) + { + RT_TRACE(COMP_POWER,"customer's limit, 40MHz = 0x%x\n", + priv->PwrGroupHT40[RF90_PATH_A][Channel-1]); + } + else + { + RT_TRACE(COMP_POWER,"customer's limit, 20MHz = 0x%x\n", + priv->PwrGroupHT20[RF90_PATH_A][Channel-1]); + } + for (i=0; i<4; i++) + { + pwr_diff_limit[i] = (u8)((priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index]&(0x7f<<(i*8)))>>(i*8)); + if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) + { + if(pwr_diff_limit[i] > priv->PwrGroupHT40[RF90_PATH_A][Channel-1]) + { + pwr_diff_limit[i] = priv->PwrGroupHT40[RF90_PATH_A][Channel-1]; + } + } + else + { + if(pwr_diff_limit[i] > priv->PwrGroupHT20[RF90_PATH_A][Channel-1]) + { + pwr_diff_limit[i] = priv->PwrGroupHT20[RF90_PATH_A][Channel-1]; + } + } + } + customer_limit = (pwr_diff_limit[3]<<24) | (pwr_diff_limit[2]<<16) | + (pwr_diff_limit[1]<<8) | (pwr_diff_limit[0]); + RT_TRACE(COMP_POWER,"Customer's limit = 0x%x\n", customer_limit); + + writeVal = customer_limit + ((index<2)?powerBase0:powerBase1); + RT_TRACE(COMP_POWER,"Customer, writeVal = 0x%x\n", writeVal); + break; + default: + chnlGroup = 0; + writeVal = priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index] + + ((index<2)?powerBase0:powerBase1); + RT_TRACE(COMP_POWER,"RTK better performance, writeVal = 0x%x\n", writeVal); + break; + } + + if(priv->DynamicTxHighPowerLvl == TxHighPwrLevel_Level1) + writeVal = 0x10101010; + else if(priv->DynamicTxHighPowerLvl == TxHighPwrLevel_Level2) + writeVal = 0x0; + + *pOutWriteVal = writeVal; + +} + +void setAntennaDiff( + struct net_device* dev, + u8* pFinalPowerIndex + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + char ant_pwr_diff=0; + u32 u4RegValue=0; + + if (priv->rf_type == RF_2T2R) + { + ant_pwr_diff = pFinalPowerIndex[1] - pFinalPowerIndex[0]; + + if(ant_pwr_diff > 7) + ant_pwr_diff = 7; + if(ant_pwr_diff < -8) + ant_pwr_diff = -8; + RT_TRACE(COMP_POWER,"Antenna Diff from RF-B to RF-A = %d (0x%x)\n", + ant_pwr_diff, ant_pwr_diff&0xf); + ant_pwr_diff &= 0xf; + } + priv->AntennaTxPwDiff[2] = 0; + priv->AntennaTxPwDiff[1] = 0; + priv->AntennaTxPwDiff[0] = (u8)(ant_pwr_diff); + + u4RegValue = (priv->AntennaTxPwDiff[2]<<8 | + priv->AntennaTxPwDiff[1]<<4 | + priv->AntennaTxPwDiff[0] ); + + rtl8192_setBBreg(dev, rFPGA0_TxGainStage, + (bXBTxAGC|bXCTxAGC|bXDTxAGC), u4RegValue); + + RT_TRACE(COMP_POWER,"Write BCD-Diff(0x%x) = 0x%x\n", + rFPGA0_TxGainStage, u4RegValue); +} + +void writeOFDMPowerReg( + struct net_device* dev, + u8 index, + u32 Value + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u16 RegOffset[6] = {0xe00, 0xe04, 0xe10, 0xe14, 0xe18, 0xe1c}; + u8 i, rfa_pwr[4]; + u8 rfa_lower_bound = 0, rfa_upper_bound = 0, rf_pwr_diff = 0; + u32 writeVal=Value; + if (priv->rf_type == RF_2T2R) + { + rf_pwr_diff = priv->AntennaTxPwDiff[0]; + + if (rf_pwr_diff >= 8) + { + rfa_lower_bound = 0x10-rf_pwr_diff; + RT_TRACE(COMP_POWER,"rfa_lower_bound= %d\n", rfa_lower_bound); + } + else + { + rfa_upper_bound = RF6052_MAX_TX_PWR-rf_pwr_diff; + RT_TRACE(COMP_POWER,"rfa_upper_bound= %d\n", rfa_upper_bound); + } + } + + for (i=0; i<4; i++) + { + rfa_pwr[i] = (u8)((writeVal & (0x7f<<(i*8)))>>(i*8)); + if (rfa_pwr[i] > RF6052_MAX_TX_PWR) + rfa_pwr[i] = RF6052_MAX_TX_PWR; + + if (priv->rf_type == RF_2T2R) + { + if (rf_pwr_diff >= 8) + { + if (rfa_pwr[i] = 1) + { + if (rfa_pwr[i] > rfa_upper_bound) + { + RT_TRACE(COMP_POWER,"Overflow"); + rfa_pwr[i] = rfa_upper_bound; + } + } + RT_TRACE(COMP_POWER,"rfa_pwr[%d]=%x\n", i, rfa_pwr[i]); + } + + } + + writeVal = (rfa_pwr[3]<<24) | (rfa_pwr[2]<<16) |(rfa_pwr[1]<<8) |rfa_pwr[0]; + + rtl8192_setBBreg(dev, RegOffset[index], 0x7f7f7f7f, writeVal); + RT_TRACE(COMP_POWER,"Set 0x%x = %08x\n",RegOffset[index], writeVal); +} + +/*----------------------------------------------------------------------------- + * Function: PHY_RF6052SetOFDMTxPower + * + * Overview: For legacy and HY OFDM, we must read EEPROM TX power index for + * different channel and read original value in TX power register area from + * 0xe00. We increase offset and original value to be correct tx pwr. + * + * Input: NONE + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 11/05/2008 MHC Simulate 8192 series method. + * 01/06/2009 MHC 1. Prevent Path B tx power overflow or underflow dure to + * A/B pwr difference or legacy/HT pwr diff. + * 2. We concern with path B legacy/HT OFDM difference. + * 01/22/2009 MHC Support new EPRO format from SD3. + * + *---------------------------------------------------------------------------*/ +extern void +PHY_RF6052SetOFDMTxPower(struct net_device* dev, u8* pPowerLevel, u8 Channel) +{ + u32 writeVal, powerBase0, powerBase1; + u8 index = 0; + u8 finalPowerIndex[4]; + + getPowerBase(dev, pPowerLevel, Channel, &powerBase0, &powerBase1, &finalPowerIndex[0]); + setAntennaDiff(dev, &finalPowerIndex[0] ); + + for(index=0; index<6; index++) + { + getTxPowerWriteValByRegulatory(dev, Channel, index, + powerBase0, powerBase1, &writeVal); + + writeOFDMPowerReg(dev, index, writeVal); + } +} + +bool PHY_RF6052_Config(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + bool rtStatus = true; + u8 bRegHwParaFile = 1; + + if(priv->rf_type == RF_1T1R) + priv->NumTotalRFPath = 1; + else + priv->NumTotalRFPath = 2; + + switch(bRegHwParaFile) + { + case 0: + phy_RF6052_Config_HardCode(dev); + break; + + case 1: + rtStatus = phy_RF6052_Config_ParaFile(dev); + break; + + case 2: + phy_RF6052_Config_HardCode(dev); + phy_RF6052_Config_ParaFile(dev); + break; + + default: + phy_RF6052_Config_HardCode(dev); + break; + } + return rtStatus; + +} + +void phy_RF6052_Config_HardCode(struct net_device* dev) +{ + + + +} + +bool phy_RF6052_Config_ParaFile(struct net_device* dev) +{ + u32 u4RegValue = 0; + u8 eRFPath; + bool rtStatus = true; + struct r8192_priv *priv = rtllib_priv(dev); + BB_REGISTER_DEFINITION_T *pPhyReg; + + + for(eRFPath = 0; eRFPath NumTotalRFPath; eRFPath++) + { + + pPhyReg = &priv->PHYRegDef[eRFPath]; + + switch(eRFPath) + { + case RF90_PATH_A: + case RF90_PATH_C: + u4RegValue = rtl8192_QueryBBReg(dev, pPhyReg->rfintfs, bRFSI_RFENV); + break; + case RF90_PATH_B : + case RF90_PATH_D: + u4RegValue = rtl8192_QueryBBReg(dev, pPhyReg->rfintfs, bRFSI_RFENV<<16); + break; + } + + rtl8192_setBBreg(dev, pPhyReg->rfintfe, bRFSI_RFENV<<16, 0x1); + + rtl8192_setBBreg(dev, pPhyReg->rfintfo, bRFSI_RFENV, 0x1); + + rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, b3WireAddressLength, 0x0); + rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, b3WireDataLength, 0x0); + + + switch(eRFPath) + { + case RF90_PATH_A: +#if RTL8190_Download_Firmware_From_Header + rtStatus= rtl8192_phy_ConfigRFWithHeaderFile(dev,(RF90_RADIO_PATH_E)eRFPath); +#else + rtStatus = PHY_ConfigRFWithParaFile(dev, (char* )&szRadioAFile, (RF90_RADIO_PATH_E)eRFPath); +#endif + break; + case RF90_PATH_B: +#if RTL8190_Download_Firmware_From_Header + rtStatus= rtl8192_phy_ConfigRFWithHeaderFile(dev,(RF90_RADIO_PATH_E)eRFPath); +#else + if(priv->rf_type == RF_2T2R_GREEN) + rtStatus = PHY_ConfigRFWithParaFile(dev, (char *)&szRadioBGMFile, (RF90_RADIO_PATH_E)eRFPath); + else + rtStatus = PHY_ConfigRFWithParaFile(dev, (char* )&szRadioBFile, (RF90_RADIO_PATH_E)eRFPath); +#endif + break; + case RF90_PATH_C: + break; + case RF90_PATH_D: + break; + } + + switch(eRFPath) + { + case RF90_PATH_A: + case RF90_PATH_C: + rtl8192_setBBreg(dev, pPhyReg->rfintfs, bRFSI_RFENV, u4RegValue); + break; + case RF90_PATH_B : + case RF90_PATH_D: + rtl8192_setBBreg(dev, pPhyReg->rfintfs, bRFSI_RFENV<<16, u4RegValue); + break; + } + + if(rtStatus != true){ + printk("phy_RF6052_Config_ParaFile():Radio[%d] Fail!!", eRFPath); + goto phy_RF6052_Config_ParaFile_Fail; + } + + } + + RT_TRACE(COMP_INIT, "<---phy_RF6052_Config_ParaFile()\n"); + return rtStatus; + +phy_RF6052_Config_ParaFile_Fail: + return rtStatus; +} + + +extern u32 PHY_RFShadowRead( + struct net_device * dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset) +{ + return RF_Shadow[eRFPath][Offset].Value; + +} /* PHY_RFShadowRead */ + + +extern void PHY_RFShadowWrite( + struct net_device * dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset, + u32 Data) +{ + RF_Shadow[eRFPath][Offset].Value = (Data & bMask20Bits); + RF_Shadow[eRFPath][Offset].Driver_Write = true; + +} /* PHY_RFShadowWrite */ + + +extern bool PHY_RFShadowCompare( + struct net_device * dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset) +{ + u32 reg; + + if (RF_Shadow[eRFPath][Offset].Compare == true) + { + reg = rtl8192_phy_QueryRFReg(dev, eRFPath, Offset, bMask20Bits); + if (RF_Shadow[eRFPath][Offset].Value != reg) + { + RF_Shadow[eRFPath][Offset].ErrorOrNot = true; + RT_TRACE(COMP_INIT, "PHY_RFShadowCompare RF-%d Addr%02xErr = %05x", eRFPath, Offset, reg); + } + else + { + RT_TRACE(COMP_INIT, "PHY_RFShadowCompare RF-%d Addr%02x Err = %05x return false\n", eRFPath, Offset, reg); + RF_Shadow[eRFPath][Offset].ErrorOrNot = false; + } + return RF_Shadow[eRFPath][Offset].ErrorOrNot; + } + return false; +} /* PHY_RFShadowCompare */ + +extern void PHY_RFShadowRecorver( + struct net_device * dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset) +{ + if (RF_Shadow[eRFPath][Offset].ErrorOrNot == true) + { + if (RF_Shadow[eRFPath][Offset].Recorver == true) + { + rtl8192_phy_SetRFReg(dev, eRFPath, Offset, bMask20Bits, RF_Shadow[eRFPath][Offset].Value); + RT_TRACE(COMP_INIT, "PHY_RFShadowRecorver RF-%d Addr%02x=%05x", + eRFPath, Offset, RF_Shadow[eRFPath][Offset].Value); + } + } + +} /* PHY_RFShadowRecorver */ + + +extern void PHY_RFShadowCompareAll(struct net_device * dev) +{ + u32 eRFPath; + u32 Offset; + + for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++) + { + for (Offset = 0; Offset <= RF6052_MAX_REG; Offset++) + { + PHY_RFShadowCompare(dev, (RF90_RADIO_PATH_E)eRFPath, Offset); + } + } + +} /* PHY_RFShadowCompareAll */ + + +extern void PHY_RFShadowRecorverAll(struct net_device * dev) +{ + u32 eRFPath; + u32 Offset; + + for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++) + { + for (Offset = 0; Offset <= RF6052_MAX_REG; Offset++) + { + PHY_RFShadowRecorver(dev, (RF90_RADIO_PATH_E)eRFPath, Offset); + } + } + +} /* PHY_RFShadowRecorverAll */ + + +extern void PHY_RFShadowCompareFlagSet( + struct net_device * dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset, + u8 Type) +{ + RF_Shadow[eRFPath][Offset].Compare = Type; + +} /* PHY_RFShadowCompareFlagSet */ + + +extern void PHY_RFShadowRecorverFlagSet( + struct net_device * dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset, + u8 Type) +{ + RF_Shadow[eRFPath][Offset].Recorver= Type; + +} /* PHY_RFShadowRecorverFlagSet */ + + +extern void PHY_RFShadowCompareFlagSetAll(struct net_device * dev) +{ + u32 eRFPath; + u32 Offset; + + for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++) + { + for (Offset = 0; Offset <= RF6052_MAX_REG; Offset++) + { + if (Offset != 0x26 && Offset != 0x27) + PHY_RFShadowCompareFlagSet(dev, (RF90_RADIO_PATH_E)eRFPath, Offset, false); + else + PHY_RFShadowCompareFlagSet(dev, (RF90_RADIO_PATH_E)eRFPath, Offset, true); + } + } + +} /* PHY_RFShadowCompareFlagSetAll */ + + +extern void PHY_RFShadowRecorverFlagSetAll(struct net_device * dev) +{ + u32 eRFPath; + u32 Offset; + + for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++) + { + for (Offset = 0; Offset <= RF6052_MAX_REG; Offset++) + { + if (Offset != 0x26 && Offset != 0x27) + PHY_RFShadowRecorverFlagSet(dev, (RF90_RADIO_PATH_E)eRFPath, Offset, false); + else + PHY_RFShadowRecorverFlagSet(dev, (RF90_RADIO_PATH_E)eRFPath, Offset, true); + } + } + +} /* PHY_RFShadowCompareFlagSetAll */ + + + +extern void PHY_RFShadowRefresh(struct net_device * dev) +{ + u32 eRFPath; + u32 Offset; + + for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++) + { + for (Offset = 0; Offset <= RF6052_MAX_REG; Offset++) + { + RF_Shadow[eRFPath][Offset].Value = 0; + RF_Shadow[eRFPath][Offset].Compare = false; + RF_Shadow[eRFPath][Offset].Recorver = false; + RF_Shadow[eRFPath][Offset].ErrorOrNot = false; + RF_Shadow[eRFPath][Offset].Driver_Write = false; + } + } + +} /* PHY_RFShadowRead */ + +/* End of HalRf6052.c */ + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.h @@ -0,0 +1,60 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef __INC_HAL8192SE_FW_IMG_H +#define __INC_HAL8192SE_FW_IMG_H + +/*Created on 2009/ 7/23, 5: 4*/ + +#include +#define ImgArrayLength 75984 +extern u8 Rtl8192SEFwImgArray[ImgArrayLength]; +#define MainArrayLength 1 +extern u8 Rtl8192SEFwMainArray[MainArrayLength]; +#define DataArrayLength 1 +extern u8 Rtl8192SEFwDataArray[DataArrayLength]; +#define PHY_REG_2T2RArrayLength 372 +extern u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength]; +#define PHY_REG_1T2RArrayLength 1 +extern u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength]; +#define PHY_ChangeTo_1T1RArrayLength 48 +extern u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength]; +#define PHY_ChangeTo_1T2RArrayLength 45 +extern u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength]; +#define PHY_ChangeTo_2T2RArrayLength 45 +extern u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength]; +#define PHY_REG_Array_PGLength 84 +extern u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength]; +#define RadioA_1T_ArrayLength 202 +extern u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength]; +#define RadioB_ArrayLength 22 +extern u32 Rtl8192SERadioB_Array[RadioB_ArrayLength]; +#define RadioA_to1T_ArrayLength 196 +extern u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength]; +#define RadioA_to2T_ArrayLength 196 +extern u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength]; +#define RadioB_GM_ArrayLength 10 +extern u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength]; +#define MAC_2T_ArrayLength 106 +extern u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength]; +#define MACPHY_Array_PGLength 1 +extern u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength]; +#define AGCTAB_ArrayLength 320 +extern u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength]; + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_led.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_led.h @@ -0,0 +1,87 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifndef __INC_HAL8192SELED_H +#define __INC_HAL8192SELED_H + + + +typedef enum _LED_STATE_8190{ + LED_UNKNOWN = 0, + LED_ON = 1, + LED_OFF = 2, + LED_BLINK_NORMAL = 3, + LED_BLINK_SLOWLY = 4, + LED_POWER_ON_BLINK = 5, + LED_SCAN_BLINK = 6, + LED_NO_LINK_BLINK = 7, + LED_BLINK_StartToBlink = 8, + LED_BLINK_TXRX = 9, + LED_BLINK_RUNTOP = 10, + LED_BLINK_CAMEO = 11, +}LED_STATE_8190; + +typedef enum _LED_PIN_8190{ + LED_PIN_GPIO0, + LED_PIN_LED0, + LED_PIN_LED1 +}LED_PIN_8190; + +typedef struct _LED_8190{ + void * dev; + + LED_PIN_8190 LedPin; + + LED_STATE_8190 CurrLedState; + bool bLedOn; + + bool bLedBlinkInProgress; + + bool bLedSlowBlinkInProgress; + u32 BlinkTimes; + LED_STATE_8190 BlinkingLedState; + + struct timer_list BlinkTimer; +} LED_8190, *PLED_8190; + + + + +typedef enum _LED_STRATEGY_8190{ + SW_LED_MODE0, + SW_LED_MODE1, + SW_LED_MODE2, + SW_LED_MODE3, + SW_LED_MODE4, + SW_LED_MODE5, + SW_LED_MODE6, + SW_LED_MODE7, + SW_LED_MODE8, + SW_LED_MODE9, + SW_LED_MODE10, + HW_LED, +}LED_STRATEGY_8190, *PLED_STRATEGY_8190; + + +void SwLedOn(struct net_device *dev , PLED_8190 pLed); +void SwLedOff(struct net_device *dev, PLED_8190 pLed); +void InitSwLeds(struct net_device *dev); +void DeInitSwLeds(struct net_device *dev); +void LedControl8192SE(struct net_device *dev, LED_CTL_MODE LedAction); + +#endif /*__INC_HAL8190PCILED_H*/ --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_firmware.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_firmware.c @@ -0,0 +1,854 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#if defined(RTL8192SE) +#include "../rtl_core.h" +#include "../rtllib/rtllib_endianfree.h" + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) && defined(USE_FW_SOURCE_IMG_FILE) +#include +#endif +#define byte(x,n) ( (x >> (8 * n)) & 0xff ) + +static void fw_SetRQPN(struct net_device *dev) +{ + + write_nic_dword(dev, RQPN, 0xffffffff); + write_nic_dword(dev, RQPN+4, 0xffffffff); + write_nic_byte(dev, RQPN+8, 0xff); + write_nic_byte(dev, RQPN+0xB, 0x80); + + +} /* fw_SetRQPN */ + +bool FirmwareDownloadCode(struct net_device *dev, u8 * code_virtual_address,u32 buffer_len) +{ + struct r8192_priv *priv = rtllib_priv(dev); + bool rt_status = true; + u16 frag_threshold = MAX_FIRMWARE_CODE_SIZE; + u16 frag_length, frag_offset = 0; + struct sk_buff *skb; + unsigned char *seg_ptr; + cb_desc *tcb_desc; + u8 bLastIniPkt = 0; + u16 ExtraDescOffset = 0; + +#ifdef RTL8192SE + fw_SetRQPN(dev); +#endif + + RT_TRACE(COMP_FIRMWARE, "--->FirmwareDownloadCode()\n" ); + + if(buffer_len >= MAX_FIRMWARE_CODE_SIZE) + { + RT_TRACE(COMP_ERR, "Size over FIRMWARE_CODE_SIZE! \n"); + goto cmdsend_downloadcode_fail; + } + + ExtraDescOffset = 0; + + do { + if((buffer_len-frag_offset) > frag_threshold) + { + frag_length = frag_threshold + ExtraDescOffset; + } + else + { + frag_length = (u16)(buffer_len - frag_offset + ExtraDescOffset); + bLastIniPkt = 1; + } + + skb = dev_alloc_skb(frag_length); + memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev)); + + tcb_desc = (cb_desc*)(skb->cb + MAX_DEV_ADDR_SIZE); + tcb_desc->queue_index = TXCMD_QUEUE; + tcb_desc->bCmdOrInit = DESC_PACKET_TYPE_INIT; + tcb_desc->bLastIniPkt = bLastIniPkt; + + skb_reserve(skb, ExtraDescOffset); + seg_ptr = (u8 *)skb_put(skb, (u32)(frag_length-ExtraDescOffset)); + memcpy(seg_ptr, code_virtual_address+frag_offset, (u32)(frag_length-ExtraDescOffset)); + + tcb_desc->txbuf_size= frag_length; + + if(!priv->rtllib->check_nic_enough_desc(dev,tcb_desc->queue_index)|| + (!skb_queue_empty(&priv->rtllib->skb_waitQ[tcb_desc->queue_index]))||\ + (priv->rtllib->queue_stop) ) + { + RT_TRACE(COMP_FIRMWARE,"=====================================================> tx full!\n"); + skb_queue_tail(&priv->rtllib->skb_waitQ[tcb_desc->queue_index], skb); + } + else + { + priv->rtllib->softmac_hard_start_xmit(skb,dev); + } + + frag_offset += (frag_length - ExtraDescOffset); + + }while(frag_offset < buffer_len); + write_nic_byte(dev, TPPoll, TPPoll_CQ); + return rt_status ; + + +cmdsend_downloadcode_fail: + rt_status = false; + RT_TRACE(COMP_ERR, "CmdSendDownloadCode fail !!\n"); + return rt_status; + +} + + + +bool +FirmwareEnableCPU(struct net_device *dev) +{ + + bool rtStatus = true; + u8 tmpU1b, CPUStatus = 0; + u16 tmpU2b; + u32 iCheckTime = 200; + + RT_TRACE(COMP_FIRMWARE, "-->FirmwareEnableCPU()\n" ); + + fw_SetRQPN(dev); + + tmpU1b = read_nic_byte(dev, SYS_CLKR); + write_nic_byte(dev, SYS_CLKR, (tmpU1b|SYS_CPU_CLKSEL)); + + tmpU2b = read_nic_word(dev, SYS_FUNC_EN); + write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|FEN_CPUEN)); + + do + { + CPUStatus = read_nic_byte(dev, TCR); + if(CPUStatus& IMEM_RDY) + { + RT_TRACE(COMP_FIRMWARE, "IMEM Ready after CPU has refilled.\n"); + break; + } + + udelay(100); + }while(iCheckTime--); + + if(!(CPUStatus & IMEM_RDY)) + return false; + + RT_TRACE(COMP_FIRMWARE, "<--FirmwareEnableCPU(): rtStatus(%#x)\n", rtStatus); + return rtStatus; +} + +FIRMWARE_8192S_STATUS +FirmwareGetNextStatus(FIRMWARE_8192S_STATUS FWCurrentStatus) +{ + FIRMWARE_8192S_STATUS NextFWStatus = 0; + + switch(FWCurrentStatus) + { + case FW_STATUS_INIT: + NextFWStatus = FW_STATUS_LOAD_IMEM; + break; + + case FW_STATUS_LOAD_IMEM: + NextFWStatus = FW_STATUS_LOAD_EMEM; + break; + + case FW_STATUS_LOAD_EMEM: + NextFWStatus = FW_STATUS_LOAD_DMEM; + break; + + case FW_STATUS_LOAD_DMEM: + NextFWStatus = FW_STATUS_READY; + break; + + default: + RT_TRACE(COMP_ERR,"Invalid FW Status(%#x)!!\n", FWCurrentStatus); + break; + } + return NextFWStatus; +} + +bool FirmwareCheckReady(struct net_device *dev, u8 LoadFWStatus) +{ + struct r8192_priv *priv = rtllib_priv(dev); + bool rtStatus = true; + rt_firmware *pFirmware = priv->pFirmware; + short PollingCnt = 1000; + u8 CPUStatus = 0; + u32 tmpU4b; + + RT_TRACE(COMP_FIRMWARE, "--->%s(): LoadStaus(%d),", __FUNCTION__, LoadFWStatus); + + pFirmware->FWStatus = (FIRMWARE_8192S_STATUS)LoadFWStatus; + + switch (LoadFWStatus) { + case FW_STATUS_LOAD_IMEM: + do { + CPUStatus = read_nic_byte(dev, TCR); + if(CPUStatus& IMEM_CODE_DONE) + break; + udelay(5); + } while (PollingCnt--); + if (!(CPUStatus & IMEM_CHK_RPT) || (PollingCnt <= 0)) { + RT_TRACE(COMP_ERR, "FW_STATUS_LOAD_IMEM FAIL CPU, Status=%x\r\n", CPUStatus); + goto status_check_fail; + } + break; + + case FW_STATUS_LOAD_EMEM: + do { + CPUStatus = read_nic_byte(dev, TCR); + if(CPUStatus& EMEM_CODE_DONE) + break; + udelay(5); + } while(PollingCnt--); + if (!(CPUStatus & EMEM_CHK_RPT) || (PollingCnt <= 0)) { + RT_TRACE(COMP_ERR, "FW_STATUS_LOAD_EMEM FAIL CPU, Status=%x\r\n", CPUStatus); + goto status_check_fail; + } + + rtStatus = FirmwareEnableCPU(dev); + if (rtStatus != true) { + RT_TRACE(COMP_ERR, "Enable CPU fail ! \n" ); + goto status_check_fail; + } + break; + + case FW_STATUS_LOAD_DMEM: + do { + CPUStatus = read_nic_byte(dev, TCR); + if (CPUStatus& DMEM_CODE_DONE) + break; + udelay(5); + } while(PollingCnt--); + + if (!(CPUStatus & DMEM_CODE_DONE) || (PollingCnt <= 0)) { + RT_TRACE(COMP_ERR, "Polling DMEM code done fail ! CPUStatus(%#x)\n", CPUStatus); + goto status_check_fail; + } + + RT_TRACE(COMP_FIRMWARE, "DMEM code download success, CPUStatus(%#x)\n", CPUStatus); + PollingCnt = 2000; + do { + CPUStatus = read_nic_byte(dev, TCR); + if(CPUStatus & FWRDY) + break; + udelay(40); + } while(PollingCnt--); + + RT_TRACE(COMP_FIRMWARE, "Polling Load Firmware ready, CPUStatus(%x)\n", CPUStatus); + if (((CPUStatus & LOAD_FW_READY) != LOAD_FW_READY) || (PollingCnt <= 0)) { + RT_TRACE(COMP_ERR, "Polling Load Firmware ready fail ! CPUStatus(%x)\n", CPUStatus); + goto status_check_fail; + } + +#ifdef RTL8192SE +#endif + + tmpU4b = read_nic_dword(dev,TCR); + write_nic_dword(dev, TCR, (tmpU4b&(~TCR_ICV))); + + tmpU4b = read_nic_dword(dev, RCR); + write_nic_dword(dev, RCR, + (tmpU4b|RCR_APPFCS|RCR_APP_ICV|RCR_APP_MIC)); + + RT_TRACE(COMP_FIRMWARE, "FirmwareCheckReady(): Current RCR settings(%#x)\n", tmpU4b); + +#if 0 + priv->TransmitConfig = read_nic_dword_E(dev, TCR); + RT_TRACE(COMP_FIRMWARE, "FirmwareCheckReady(): Current TCR settings(%#x)\n", priv->TransmitConfig); +#endif + + write_nic_byte(dev, LBKMD_SEL, LBK_NORMAL); + break; + default : + RT_TRACE(COMP_FIRMWARE, "Unknown status check!\n"); + rtStatus = false; + break; + } + +status_check_fail: + RT_TRACE(COMP_FIRMWARE, "<---%s: LoadFWStatus(%d), rtStatus(%x)\n", __FUNCTION__, + LoadFWStatus, rtStatus); + return rtStatus; +} +u8 FirmwareHeaderMapRfType(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + switch(priv->rf_type) + { + case RF_1T1R: return 0x11; + case RF_1T2R: return 0x12; + case RF_2T2R: return 0x22; + case RF_2T2R_GREEN: return 0x92; + default: + RT_TRACE(COMP_INIT, "Unknown RF type(%x)\n",priv->rf_type); + break; + } + return 0x22; +} + + +void FirmwareHeaderPriveUpdate(struct net_device *dev, PRT_8192S_FIRMWARE_PRIV pFwPriv) +{ + pFwPriv->rf_config = FirmwareHeaderMapRfType(dev); +} + + + +bool FirmwareDownload92S(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + bool rtStatus = true; + u8 *pucMappedFile = NULL; + u32 ulFileLength = 0; + u8 FwHdrSize = RT_8192S_FIRMWARE_HDR_SIZE; + rt_firmware *pFirmware = priv->pFirmware; + u8 FwStatus = FW_STATUS_INIT; + PRT_8192S_FIRMWARE_HDR pFwHdr = NULL; + PRT_8192S_FIRMWARE_PRIV pFwPriv = NULL; + + pFirmware->FWStatus = FW_STATUS_INIT; + + RT_TRACE(COMP_FIRMWARE, " --->FirmwareDownload92S()\n"); + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) && defined(USE_FW_SOURCE_IMG_FILE) + priv->firmware_source = FW_SOURCE_IMG_FILE; +#else + priv->firmware_source = FW_SOURCE_HEADER_FILE; +#endif + + switch( priv->firmware_source ) + { + case FW_SOURCE_IMG_FILE: +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) && defined(USE_FW_SOURCE_IMG_FILE) + if(pFirmware->szFwTmpBufferLen == 0) + { +#ifdef _RTL8192_EXT_PATCH_ + const char *pFwImageFileName[1] = {"RTL8191SE_MESH/rtl8192sfw.bin"}; +#else + const char *pFwImageFileName[1] = {"RTL8192SE/rtl8192sfw.bin"}; +#endif + const struct firmware *fw_entry = NULL; + u32 ulInitStep = 0; + int rc = 0; + u32 file_length = 0; + rc = request_firmware(&fw_entry, pFwImageFileName[ulInitStep],&priv->pdev->dev); + if(rc < 0 ) { + RT_TRACE(COMP_ERR, "request firmware fail!\n"); + goto DownloadFirmware_Fail; + } + + if(fw_entry->size > sizeof(pFirmware->szFwTmpBuffer)) { + RT_TRACE(COMP_ERR, "img file size exceed the container buffer fail!\n"); + release_firmware(fw_entry); + goto DownloadFirmware_Fail; + } + + memcpy(pFirmware->szFwTmpBuffer,fw_entry->data,fw_entry->size); + pFirmware->szFwTmpBufferLen = fw_entry->size; + release_firmware(fw_entry); + + pucMappedFile = pFirmware->szFwTmpBuffer; + file_length = pFirmware->szFwTmpBufferLen; + + pFirmware->pFwHeader = (PRT_8192S_FIRMWARE_HDR) pucMappedFile; + pFwHdr = pFirmware->pFwHeader; + RT_TRACE(COMP_FIRMWARE,"signature:%x, version:%x, size:%x, imemsize:%x, sram size:%x\n", \ + pFwHdr->Signature, pFwHdr->Version, pFwHdr->DMEMSize, \ + pFwHdr->IMG_IMEM_SIZE, pFwHdr->IMG_SRAM_SIZE); + pFirmware->FirmwareVersion = byte(pFwHdr->Version ,0); + if ((pFwHdr->IMG_IMEM_SIZE==0) || (pFwHdr->IMG_IMEM_SIZE > sizeof(pFirmware->FwIMEM))) + { + RT_TRACE(COMP_ERR, "%s: memory for data image is less than IMEM required\n",\ + __FUNCTION__); + goto DownloadFirmware_Fail; + } else { + pucMappedFile+=FwHdrSize; + + memcpy(pFirmware->FwIMEM, pucMappedFile, pFwHdr->IMG_IMEM_SIZE); + pFirmware->FwIMEMLen = pFwHdr->IMG_IMEM_SIZE; + } + + if (pFwHdr->IMG_SRAM_SIZE > sizeof(pFirmware->FwEMEM)) + { + RT_TRACE(COMP_ERR, "%s: memory for data image is less than EMEM required\n",\ + __FUNCTION__); + goto DownloadFirmware_Fail; + } + else + { + pucMappedFile += pFirmware->FwIMEMLen; + + memcpy(pFirmware->FwEMEM, pucMappedFile, pFwHdr->IMG_SRAM_SIZE); + pFirmware->FwEMEMLen = pFwHdr->IMG_SRAM_SIZE; + } + } +#endif + break; + + case FW_SOURCE_HEADER_FILE: +#if 1 +#define Rtl819XFwImageArray Rtl8192SEFwImgArray + pucMappedFile = Rtl819XFwImageArray; + ulFileLength = ImgArrayLength; + + RT_TRACE(COMP_INIT,"Fw download from header.\n"); + pFirmware->pFwHeader = (PRT_8192S_FIRMWARE_HDR) pucMappedFile; + pFwHdr = pFirmware->pFwHeader; + RT_TRACE(COMP_FIRMWARE,"signature:%x, version:%x, size:%x, imemsize:%x, sram size:%x\n", \ + pFwHdr->Signature, pFwHdr->Version, pFwHdr->DMEMSize, \ + pFwHdr->IMG_IMEM_SIZE, pFwHdr->IMG_SRAM_SIZE); + pFirmware->FirmwareVersion = byte(pFwHdr->Version ,0); + + if ((pFwHdr->IMG_IMEM_SIZE==0) || (pFwHdr->IMG_IMEM_SIZE > sizeof(pFirmware->FwIMEM))) + { + printk("FirmwareDownload92S(): memory for data image is less than IMEM required\n"); + goto DownloadFirmware_Fail; + } + else + { + pucMappedFile+=FwHdrSize; + + memcpy(pFirmware->FwIMEM, pucMappedFile, pFwHdr->IMG_IMEM_SIZE); + pFirmware->FwIMEMLen = pFwHdr->IMG_IMEM_SIZE; + } + + if (pFwHdr->IMG_SRAM_SIZE > sizeof(pFirmware->FwEMEM)) + { + printk(" FirmwareDownload92S(): memory for data image is less than EMEM required\n"); + goto DownloadFirmware_Fail; + } else { + pucMappedFile+= pFirmware->FwIMEMLen; + + memcpy(pFirmware->FwEMEM, pucMappedFile, pFwHdr->IMG_SRAM_SIZE); + pFirmware->FwEMEMLen = pFwHdr->IMG_SRAM_SIZE; + } +#endif + break; + default: + break; + } + + FwStatus = FirmwareGetNextStatus(pFirmware->FWStatus); + while(FwStatus!= FW_STATUS_READY) + { + switch(FwStatus) + { + case FW_STATUS_LOAD_IMEM: + pucMappedFile = pFirmware->FwIMEM; + ulFileLength = pFirmware->FwIMEMLen; + break; + + case FW_STATUS_LOAD_EMEM: + pucMappedFile = pFirmware->FwEMEM; + ulFileLength = pFirmware->FwEMEMLen; + break; + + case FW_STATUS_LOAD_DMEM: + pFwHdr = pFirmware->pFwHeader; + pFwPriv = (PRT_8192S_FIRMWARE_PRIV)&pFwHdr->FWPriv; + FirmwareHeaderPriveUpdate(dev, pFwPriv); + pucMappedFile = (u8*)(pFirmware->pFwHeader)+RT_8192S_FIRMWARE_HDR_EXCLUDE_PRI_SIZE; + ulFileLength = FwHdrSize-RT_8192S_FIRMWARE_HDR_EXCLUDE_PRI_SIZE; + break; + + default: + RT_TRACE(COMP_ERR, "Unexpected Download step!!\n"); + goto DownloadFirmware_Fail; + break; + } + + rtStatus = FirmwareDownloadCode(dev, pucMappedFile, ulFileLength); + + if(rtStatus != true) + { + RT_TRACE(COMP_ERR, "FirmwareDownloadCode() fail ! \n" ); + goto DownloadFirmware_Fail; + } + + rtStatus = FirmwareCheckReady(dev, FwStatus); + + if(rtStatus != true) + { + RT_TRACE(COMP_ERR, "FirmwareDownloadCode() fail ! \n"); + goto DownloadFirmware_Fail; + } + + FwStatus = FirmwareGetNextStatus(pFirmware->FWStatus); + } + + RT_TRACE(COMP_FIRMWARE, "Firmware Download Success!!\n"); + return rtStatus; + + DownloadFirmware_Fail: + RT_TRACE(COMP_ERR, "Firmware Download Fail!!%x\n",read_nic_word(dev, TCR)); + rtStatus = false; + return rtStatus; +} +void rtl8192se_dump_skb_data(struct sk_buff *skb) +{ + u8 i = 0; + u8 *arry = skb->data; + + printk("\nSCAN_CMD/PROBE_REQ==============>\n"); + for(i = 0; i < skb->len; i ++){ + if((i % 4 == 0)&&(i != 0)) + printk("\n"); + printk("%2.2x ", arry[i]); + } + printk("\nSCAN_CMD/PROBE_REQ<==============\n"); +} + +void rtl8192se_dump_cmd_para(u8*SiteSurveyPara) +{ + u8 i = 0; + u8 desc_size = sizeof(tx_desc_fw); + u8 para_size = 8+desc_size; + u8 *arry = SiteSurveyPara; + + printk("\nSCAN_CMD_PARA==============>\n"); + for(i = 0; i < para_size; i ++){ + if((i % 4 == 0)&&(i != 0)) + printk("\n"); + printk("%2.2x ", arry[i]); + } + printk("\nSCAN_CMD_PARA<==============\n"); +} +#if 1 +RT_STATUS +CmdSendPacket( + struct net_device *dev, + cb_desc *pTcb, + struct sk_buff *skb, + u32 BufferLen, + u32 PacketType, + bool bLastInitPacket + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + RT_STATUS rtStatus = RT_STATUS_SUCCESS; + + pTcb->queue_index = TXCMD_QUEUE; + pTcb->bCmdOrInit = PacketType; + pTcb->bLastIniPkt = bLastInitPacket; + pTcb->txbuf_size = BufferLen; + + + if(!priv->rtllib->check_nic_enough_desc(dev,pTcb->queue_index)|| + (!skb_queue_empty(&priv->rtllib->skb_waitQ[pTcb->queue_index]))||\ + (priv->rtllib->queue_stop) ) { + RT_TRACE(COMP_CMD,"=========================> tx full!\n"); + skb_queue_tail(&priv->rtllib->skb_waitQ[pTcb->queue_index], skb); + } else { + priv->rtllib->softmac_hard_start_xmit(skb,dev); + } + + return rtStatus; +} + +u32 +FillH2CCmd( + struct sk_buff *skb, + u32 H2CBufferLen, + u32 CmdNum, + u32* pElementID, + u32* pCmdLen, + u8** pCmbBuffer, + u8* CmdStartSeq + ) +{ + u8 i = 0; + u32 TotalLen = 0, Len = 0, TxDescLen = 0; + u32 preContinueOffset = 0; + + u8* pH2CBuffer; + + do + { + Len = H2C_TX_CMD_HDR_LEN + N_BYTE_ALIGMENT(pCmdLen[i], 8); + + if(H2CBufferLen < TotalLen + Len + TxDescLen) + break; + + pH2CBuffer = (u8 *) skb_put(skb, (u32)Len); + memset((pH2CBuffer + TotalLen + TxDescLen),0,Len); + + SET_BITS_TO_LE_4BYTE((pH2CBuffer + TotalLen + TxDescLen), 0, 16, pCmdLen[i]); + + SET_BITS_TO_LE_4BYTE((pH2CBuffer + TotalLen + TxDescLen), 16, 8, pElementID[i]); + + *CmdStartSeq = *CmdStartSeq % 0x80; + SET_BITS_TO_LE_4BYTE((pH2CBuffer + TotalLen + TxDescLen), 24, 7, *CmdStartSeq); + ++ *CmdStartSeq; + + memcpy((pH2CBuffer + TotalLen + TxDescLen + H2C_TX_CMD_HDR_LEN), pCmbBuffer[i], pCmdLen[i]); + + if(i < CmdNum - 1) + SET_BITS_TO_LE_4BYTE((pH2CBuffer + preContinueOffset), 31, 1, 1); + + preContinueOffset = TotalLen; + + TotalLen += Len; + }while(++ i < CmdNum); + + return TotalLen; +} + +u32 +GetH2CCmdLen( + u32 H2CBufferLen, + u32 CmdNum, + u32* pCmdLen + ) +{ + u8 i = 0; + u32 TotalLen = 0, Len = 0, TxDescLen = 0; + + do + { + Len = H2C_TX_CMD_HDR_LEN + N_BYTE_ALIGMENT(pCmdLen[i], 8); + + if(H2CBufferLen < TotalLen + Len + TxDescLen) + break; + + TotalLen += Len; + }while(++ i < CmdNum); + + return TotalLen + TxDescLen; +} + +/*----------------------------------------------------------------------------- + * Function: FirmwareSetH2CCmd() + * + * Overview: Set FW H2C command (Decide ElementID, cmd content length, and get FW buffer) + * + * Input: H2CCmd: H2C command type. + * pCmdBuffer: Pointer of the H2C command content. + * + * Output: NONE + * + * Return: RT_STATUS + * + * Revised History: + * When Who Remark + * 2009/1/12 tynli Create the version 0. + * + *---------------------------------------------------------------------------*/ +RT_STATUS +FirmwareSetH2CCmd( + struct net_device *dev, + u8 H2CCmd, + u8* pCmdBuffer + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 ElementID; + u32 Cmd_Len; + cb_desc *pTcb; + struct sk_buff *skb; + u32 Len; + + RT_STATUS rtStatus; + + switch(H2CCmd){ + case FW_H2C_SETPWRMODE: + { + ElementID = H2C_SetPwrMode_CMD ; + Cmd_Len = sizeof(H2C_SETPWRMODE_PARM); + } + break; + case FW_H2C_JOINBSSRPT: + { + ElementID = H2C_JoinbssRpt_CMD; + Cmd_Len = sizeof(H2C_JOINBSSRPT_PARM); + } + break; + case FW_H2C_WoWLAN_UPDATE_GTK: + { + ElementID = H2C_WoWLAN_UPDATE_GTK_CMD; + Cmd_Len = sizeof(H2C_WPA_TWO_WAY_PARA); + } + break; + case FW_H2C_WoWLAN_UPDATE_IV: + { + ElementID = H2C_WoWLAN_UPDATE_IV_CMD; + Cmd_Len = sizeof(unsigned long long); + } + break; + + case FW_H2C_WoWLAN_OFFLOAD: + { + ElementID = H2C_WoWLAN_FW_OFFLOAD; + Cmd_Len = sizeof(u8); + } + break; + case FW_H2C_SITESURVEY: + { + ElementID = H2C_SiteSurvey_CMD; + Cmd_Len = sizeof(H2C_SITESURVEY_PARA) + ((PH2C_SITESURVEY_PARA)pCmdBuffer)->probe_req_len - sizeof(tx_desc_fw); + } + break; + default: + break; + } + + RT_TRACE(COMP_CMD, "FirmwareSetH2CCmd() HW_VAR_SET_TX_CMD: ElementID = %d, %d+%d=Cmd_Len = %d\n", ElementID, sizeof(H2C_SITESURVEY_PARA),((PH2C_SITESURVEY_PARA)pCmdBuffer)->probe_req_len, Cmd_Len); + + { + Len = GetH2CCmdLen(MAX_TRANSMIT_BUFFER_SIZE, 1, &Cmd_Len); + + RT_TRACE(COMP_CMD, "---------->%s(), cmdlen:%d,len:%d\n", __func__,Cmd_Len,Len); + skb = dev_alloc_skb(Len); + memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev)); + + pTcb = (cb_desc*)(skb->cb + MAX_DEV_ADDR_SIZE); + + FillH2CCmd(skb, MAX_TRANSMIT_BUFFER_SIZE, 1, &ElementID, &Cmd_Len, &pCmdBuffer, &priv->H2CTxCmdSeq); + + + rtStatus = CmdSendPacket(dev, pTcb, skb, Len, DESC_PACKET_TYPE_NORMAL, false); + + } + + write_nic_byte(dev, TPPoll, TPPoll_CQ); + + return RT_STATUS_SUCCESS; +} + + +void +rtl8192se_set_scan_cmd(struct net_device *dev, u32 start_flag) +{ + struct r8192_priv *priv = rtllib_priv(dev); + H2C_SITESURVEY_PARA *SiteSurveyPara; + + if (!priv->scan_cmd) { + priv->scan_cmd = kmalloc(sizeof(H2C_SITESURVEY_PARA) + + RTL_MAX_SCAN_SIZE, GFP_KERNEL); + if (!priv->scan_cmd) { + printk("----------->%s() Error!!!\n", __func__); + return; + } + } + + SiteSurveyPara = priv->scan_cmd; + memset(SiteSurveyPara, 0, sizeof(struct _H2C_SITESURVEY_PARA) + RTL_MAX_SCAN_SIZE); + + if(start_flag){ + struct sk_buff *skb = rtllib_probe_req(priv->rtllib); + cb_desc *tcb_desc = (cb_desc *)(skb->cb + 8); + + + tcb_desc->queue_index = MGNT_QUEUE; + tcb_desc->data_rate = MgntQuery_MgntFrameTxRate(priv->rtllib); + tcb_desc->RATRIndex = 7; + tcb_desc->bTxDisableRateFallBack = 1; + tcb_desc->bTxUseDriverAssingedRate = 1; + + + SiteSurveyPara->start_flag = start_flag; + SiteSurveyPara->probe_req_len = skb->len + sizeof(tx_desc_fw); + + SiteSurveyPara->desc.MacID = 0; + SiteSurveyPara->desc.TXHT = (tcb_desc->data_rate&0x80)?1:0; + SiteSurveyPara->desc.TxRate = MRateToHwRate8192SE(dev,tcb_desc->data_rate); + SiteSurveyPara->desc.TxShort = rtl8192se_QueryIsShort(((tcb_desc->data_rate&0x80)?1:0), MRateToHwRate8192SE(dev,tcb_desc->data_rate), tcb_desc); + + SiteSurveyPara->desc.AggEn = 0; + SiteSurveyPara->desc.Seq = 0; + SiteSurveyPara->desc.RTSEn = (tcb_desc->bRTSEnable && tcb_desc->bCTSEnable==false)?1:0; + SiteSurveyPara->desc.CTS2Self = (tcb_desc->bCTSEnable)?1:0; + SiteSurveyPara->desc.RTSSTBC = (tcb_desc->bRTSSTBC)?1:0; + SiteSurveyPara->desc.RTSHT = (tcb_desc->rts_rate&0x80)?1:0; + SiteSurveyPara->desc.RTSRate = MRateToHwRate8192SE(dev,tcb_desc->rts_rate); + SiteSurveyPara->desc.RTSRate = MRateToHwRate8192SE(dev,MGN_24M); + SiteSurveyPara->desc.RTSBW = 0; + SiteSurveyPara->desc.RTSSC = tcb_desc->RTSSC; + SiteSurveyPara->desc.RTSShort = (SiteSurveyPara->desc.RTSHT==0)?(tcb_desc->bRTSUseShortPreamble?1:0):(tcb_desc->bRTSUseShortGI?1:0); + + if(priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40){ + if(tcb_desc->bPacketBW) { + SiteSurveyPara->desc.TxBw = 1; + SiteSurveyPara->desc.TXSC = 0; + } else { + SiteSurveyPara->desc.TxBw = 0; + SiteSurveyPara->desc.TXSC = priv->nCur40MhzPrimeSC; + } + } else { + SiteSurveyPara->desc.TxBw = 0; + SiteSurveyPara->desc.TXSC = 0; + } + + SiteSurveyPara->desc.LINIP = 0; + SiteSurveyPara->desc.Offset = 32; + SiteSurveyPara->desc.PktSize = (u16)skb->len; + + SiteSurveyPara->desc.RaBRSRID = tcb_desc->RATRIndex; + + SiteSurveyPara->desc.PktID = 0x0; + SiteSurveyPara->desc.QueueSel = rtl8192se_MapHwQueueToFirmwareQueue(tcb_desc->queue_index, tcb_desc->priority); + + SiteSurveyPara->desc.DataRateFBLmt= 0x1F; + SiteSurveyPara->desc.DISFB = tcb_desc->bTxDisableRateFallBack; + SiteSurveyPara->desc.UserRate = tcb_desc->bTxUseDriverAssingedRate; + + + SiteSurveyPara->desc.FirstSeg = 1; + SiteSurveyPara->desc.LastSeg = 1; + + SiteSurveyPara->desc.TxBufferSize = (u16)skb->len; + + SiteSurveyPara->desc.OWN = 1; + + + memcpy(&SiteSurveyPara->probe_req[0], skb->data, (u16)skb->len); + + dev_kfree_skb_any(skb); + } else { + SiteSurveyPara->start_flag = start_flag; + SiteSurveyPara->probe_req_len = 0; + } + + FirmwareSetH2CCmd( dev ,FW_H2C_SITESURVEY, (u8*)SiteSurveyPara); +} + +int rtl8192se_send_scan_cmd(struct net_device *dev, bool start) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if(start){ + priv->rtllib->scan_watch_dog =0; +#if 0 + queue_delayed_work_rsl(priv->priv_wq,&priv->hw_scan_simu_wq,0); +#else + rtl8192se_set_scan_cmd(dev, start); +#endif + } else { +#if 0 + rtl8192se_rx_surveydone_cmd(dev); +#else + rtl8192se_set_scan_cmd(dev, start); +#endif + } + return true; +} +#endif + +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_phy.c +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_phy.c @@ -0,0 +1,3480 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#ifdef RTL8192SE + +#include "../rtl_core.h" +#include "../rtl_dm.h" + +#ifdef ENABLE_DOT11D +#include "../rtllib/dot11d.h" +#endif + +/*---------------------------Define Local Constant---------------------------*/ +#define MAX_PRECMD_CNT 16 +#define MAX_RFDEPENDCMD_CNT 16 +#define MAX_POSTCMD_CNT 16 + +#define MAX_DOZE_WAITING_TIMES_9x 64 + +#define PHY_STOP_SWITCH_CLKREQ 0 +/*---------------------------Define Local Constant---------------------------*/ + +/*------------------------Define global variable-----------------------------*/ + +#define Rtl819XMAC_Array Rtl8192SEMAC_2T_Array +#define Rtl819XAGCTAB_Array Rtl8192SEAGCTAB_Array +#define Rtl819XPHY_REG_Array Rtl8192SEPHY_REG_2T2RArray +#define Rtl819XPHY_REG_to1T1R_Array Rtl8192SEPHY_ChangeTo_1T1RArray +#define Rtl819XPHY_REG_to1T2R_Array Rtl8192SEPHY_ChangeTo_1T2RArray +#define Rtl819XPHY_REG_to2T2R_Array Rtl8192SEPHY_ChangeTo_2T2RArray +#define Rtl819XPHY_REG_Array_PG Rtl8192SEPHY_REG_Array_PG +#define Rtl819XRadioA_Array Rtl8192SERadioA_1T_Array +#define Rtl819XRadioB_Array Rtl8192SERadioB_Array +#define Rtl819XRadioB_GM_Array Rtl8192SERadioB_GM_Array +#define Rtl819XRadioA_to1T_Array Rtl8192SERadioA_to1T_Array +#define Rtl819XRadioA_to2T_Array Rtl8192SERadioA_to2T_Array + +/*------------------------Define local variable------------------------------*/ +#if 0 +static u32 RF_CHANNEL_TABLE_ZEBRA[]={ + 0, + 0x085c, + 0x08dc, + 0x095c, + 0x09dc, + 0x0a5c, + 0x0adc, + 0x0b5c, + 0x0bdc, + 0x0c5c, + 0x0cdc, + 0x0d5c, + 0x0ddc, + 0x0e5c, + 0x0f72, +}; +#endif + +/*------------------------Define local variable------------------------------*/ + + +/*--------------------Define export function prototype-----------------------*/ +/*--------------------Define export function prototype-----------------------*/ + + +/*---------------------Define local function prototype-----------------------*/ + +static u32 phy_FwRFSerialRead( struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 Offset); +static void phy_FwRFSerialWrite( struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 Offset, u32 Data); + +static u32 phy_RFSerialRead(struct net_device* dev,RF90_RADIO_PATH_E eRFPath,u32 Offset); +static void phy_RFSerialWrite( struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 Offset, u32 Data); +static u32 phy_CalculateBitShift(u32 BitMask); +static bool phy_BB8190_Config_HardCode(struct net_device* dev); +static bool phy_BB8192S_Config_ParaFile(struct net_device* dev); + +static bool phy_ConfigMACWithHeaderFile(struct net_device* dev); + +static bool phy_ConfigBBWithHeaderFile(struct net_device* dev,u8 ConfigType); + +static bool phy_ConfigBBWithPgHeaderFile(struct net_device* dev,u8 ConfigType); + +static bool phy_SetBBtoDiffRFWithHeaderFile(struct net_device* dev,u8 ConfigType); + +static void phy_InitBBRFRegisterDefinition(struct net_device* dev); +static bool phy_SetSwChnlCmdArray( SwChnlCmd* CmdTable, + u32 CmdTableIdx, + u32 CmdTableSz, + SwChnlCmdID CmdID, + u32 Para1, + u32 Para2, + u32 msDelay ); + +static bool phy_SwChnlStepByStep( + struct net_device* dev, + u8 channel, + u8 *stage, + u8 *step, + u32 *delay + ); + +static void phy_FinishSwChnlNow(struct net_device* dev,u8 channel); + +static u8 phy_DbmToTxPwrIdx( struct net_device* dev, WIRELESS_MODE WirelessMode, long PowerInDbm); +static bool phy_SetRFPowerState8192SE(struct net_device* dev,RT_RF_POWER_STATE eRFPowerState); +static void phy_CheckEphySwitchReady( struct net_device* dev); + +static long phy_TxPwrIdxToDbm( struct net_device* dev, WIRELESS_MODE WirelessMode, u8 TxPwrIdx); +void rtl8192_SetFwCmdIOCallback(struct net_device* dev); + + +/*---------------------Define local function prototype-----------------------*/ + + +/*----------------------------Function Body----------------------------------*/ +u32 rtl8192_QueryBBReg(struct net_device* dev, u32 RegAddr, u32 BitMask) +{ + + u32 ReturnValue = 0, OriginalValue, BitShift; + +#if (DISABLE_BB_RF == 1) + return 0; +#endif + + RT_TRACE(COMP_RF, "--->PHY_QueryBBReg(): RegAddr(%#x), BitMask(%#x)\n", RegAddr, BitMask); + + OriginalValue = read_nic_dword(dev, RegAddr); + + BitShift = phy_CalculateBitShift(BitMask); + ReturnValue = (OriginalValue & BitMask) >> BitShift; + + RT_TRACE(COMP_RF, "<---PHY_QueryBBReg(): RegAddr(%#x), BitMask(%#x), OriginalValue(%#x)\n", RegAddr, BitMask, OriginalValue); + return (ReturnValue); +} + +void rtl8192_setBBreg(struct net_device* dev, u32 RegAddr, u32 BitMask, u32 Data) +{ + u32 OriginalValue, BitShift, NewValue; + +#if (DISABLE_BB_RF == 1) + return; +#endif + + + { + if(BitMask!= bMaskDWord) + { + OriginalValue = read_nic_dword(dev, RegAddr); + BitShift = phy_CalculateBitShift(BitMask); + NewValue = (((OriginalValue) & (~BitMask)) | (Data << BitShift)); + write_nic_dword(dev, RegAddr, NewValue); + }else + write_nic_dword(dev, RegAddr, Data); + } + + return; +} + + +u32 rtl8192_phy_QueryRFReg(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask) +{ + u32 Original_Value, Readback_Value, BitShift; + struct r8192_priv *priv = rtllib_priv(dev); + unsigned long flags; + +#if (DISABLE_BB_RF == 1) + return 0; +#endif + + RT_TRACE(COMP_RF, "--->PHY_QueryRFReg(): RegAddr(%#x), eRFPath(%#x), BitMask(%#x)\n", RegAddr, eRFPath,BitMask); + + if (!((priv->rf_pathmap >> eRFPath) & 0x1)) + return 0; + + if (!rtl8192_phy_CheckIsLegalRFPath(dev, eRFPath)) + return 0; + + spin_lock_irqsave(&priv->rf_lock, flags); + if (priv->Rf_Mode == RF_OP_By_FW) + { + Original_Value = phy_FwRFSerialRead(dev, eRFPath, RegAddr); + } + else + { + Original_Value = phy_RFSerialRead(dev, eRFPath, RegAddr); + } + + BitShift = phy_CalculateBitShift(BitMask); + Readback_Value = (Original_Value & BitMask) >> BitShift; + spin_unlock_irqrestore(&priv->rf_lock, flags); + + + return (Readback_Value); +} + + +void rtl8192_phy_SetRFReg(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask, u32 Data) +{ + + struct r8192_priv *priv = rtllib_priv(dev); + u32 Original_Value, BitShift, New_Value; + unsigned long flags; +#if (DISABLE_BB_RF == 1) + return; +#endif + + RT_TRACE(COMP_RF, "--->PHY_SetRFReg(): RegAddr(%#x), BitMask(%#x), Data(%#x), eRFPath(%#x)\n", + RegAddr, BitMask, Data, eRFPath); + + if (!((priv->rf_pathmap >> eRFPath) & 0x1)) + return ; + if (!rtl8192_phy_CheckIsLegalRFPath(dev, eRFPath)) + { + return; + } + + spin_lock_irqsave(&priv->rf_lock, flags); + if (priv->Rf_Mode == RF_OP_By_FW) + { + if (BitMask != bRFRegOffsetMask) + { + Original_Value = phy_FwRFSerialRead(dev, eRFPath, RegAddr); + BitShift = phy_CalculateBitShift(BitMask); + New_Value = (((Original_Value) & (~BitMask)) | (Data<< BitShift)); + + phy_FwRFSerialWrite(dev, eRFPath, RegAddr, New_Value); + } + else + phy_FwRFSerialWrite(dev, eRFPath, RegAddr, Data); + } + else + { + if (BitMask != bRFRegOffsetMask) + { + Original_Value = phy_RFSerialRead(dev, eRFPath, RegAddr); + BitShift = phy_CalculateBitShift(BitMask); + New_Value = (((Original_Value) & (~BitMask)) | (Data<< BitShift)); + + phy_RFSerialWrite(dev, eRFPath, RegAddr, New_Value); + } + else + phy_RFSerialWrite(dev, eRFPath, RegAddr, Data); + + } + spin_unlock_irqrestore(&priv->rf_lock, flags); + RT_TRACE(COMP_RF, "<---PHY_SetRFReg(): RegAddr(%#x), BitMask(%#x), Data(%#x), eRFPath(%#x)\n", + RegAddr, BitMask, Data, eRFPath); + +} + +static u32 +phy_FwRFSerialRead( + struct net_device* dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset ) +{ + u32 retValue = 0; +#if 0 + u32 Data = 0; + u8 time = 0; + Data |= ((Offset&0xFF)<<12); + Data |= ((eRFPath&0x3)<<20); + Data |= 0x80000000; + while (PlatformIORead4Byte(dev, QPNR)&0x80000000) + { + if (time++ < 100) + { + delay_us(10); + } + else + break; + } + PlatformIOWrite4Byte(dev, QPNR, Data); + while (PlatformIORead4Byte(dev, QPNR)&0x80000000) + { + if (time++ < 100) + { + delay_us(10); + } + else + return (0); + } + retValue = PlatformIORead4Byte(dev, RF_DATA); +#endif + return (retValue); + +} /* phy_FwRFSerialRead */ + +static void +phy_FwRFSerialWrite( + struct net_device* dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset, + u32 Data ) +{ +#if 0 + u8 time = 0; + DbgPrint("N FW RF CTRL RF-%d OF%02x DATA=%03x\n\r", eRFPath, Offset, Data); + + Data |= ((Offset&0xFF)<<12); + Data |= ((eRFPath&0x3)<<20); + Data |= 0x400000; + Data |= 0x80000000; + + while (PlatformIORead4Byte(dev, QPNR)&0x80000000) + { + if (time++ < 100) + { + delay_us(10); + } + else + break; + } + PlatformIOWrite4Byte(dev, QPNR, Data); +#endif +} /* phy_FwRFSerialWrite */ + +#if (RTL92SE_FPGA_VERIFY == 1) +static u32 phy_RFSerialRead(struct net_device* dev,RF90_RADIO_PATH_E eRFPath,u32 Offset) +{ + + u32 retValue = 0; + struct r8192_priv *priv = rtllib_priv(dev); + BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath]; + u32 NewOffset; + + Offset &= 0x3f; + + if( priv->rf_chip == RF_8256 || + priv->rf_chip == RF_8225 || + priv->rf_chip == RF_6052) + { + rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0xf00, 0x0); + + if(Offset>=31) + { + priv->RFReadPageCnt[2]++; + priv->RfReg0Value[eRFPath] |= 0x140; + + rtl8192_setBBreg(dev, + pPhyReg->rf3wireOffset, + bMaskDWord, + (priv->RfReg0Value[eRFPath] << 16) ); + + NewOffset = Offset - 30; + + }else if(Offset>=16) + { + priv->RFReadPageCnt[1]++; + priv->RfReg0Value[eRFPath] |= 0x100; + priv->RfReg0Value[eRFPath] &= (~0x40); + + rtl8192_setBBreg(dev, + pPhyReg->rf3wireOffset, + bMaskDWord, + (priv->RfReg0Value[eRFPath] << 16) ); + + NewOffset = Offset - 15; + } + else + { + priv->RFReadPageCnt[0]++; + NewOffset = Offset; + } + } + else + NewOffset = Offset; + +#if (RTL92SE_FPGA_VERIFY == 1) + { + u32 temp1, temp2; + + temp1 = rtl8192_QueryBBReg(dev, rFPGA0_XA_HSSIParameter2, 0xffffffff); + temp2 = rtl8192_QueryBBReg(dev, pPhyReg->rfHSSIPara2, 0xffffffff); + temp2 = temp2 & (~bLSSIReadAddress) | (NewOffset<<24) | bLSSIReadEdge; + + rtl8192_setBBreg(dev, rFPGA0_XA_HSSIParameter2, 0xffffffff, temp1&(~bLSSIReadEdge)); + msleep(1); + rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, 0xffffffff, temp2); + msleep(1); + rtl8192_setBBreg(dev, rFPGA0_XA_HSSIParameter2, 0xffffffff, temp1|bLSSIReadEdge); + msleep(1); + + } +#else + rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, bLSSIReadAddress, NewOffset); + + rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, bLSSIReadEdge, 0x0); + rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, bLSSIReadEdge, 0x1); +#endif + + mdelay(1); + + retValue = rtl8192_QueryBBReg(dev, pPhyReg->rfLSSIReadBack, bLSSIReadBackData); + + if( priv->rf_chip == RF_8256 || + priv->rf_chip == RF_8225 || + priv->rf_chip == RF_6052) + { + if (Offset >= 0x10) + { + priv->RfReg0Value[eRFPath] &= 0xebf; + + rtl8192_setBBreg( + dev, + pPhyReg->rf3wireOffset, + bMaskDWord, + (priv->RfReg0Value[eRFPath] << 16) ); + } + + rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0xf00, 0xf); + } + + return retValue; +} + + +static void +phy_RFSerialWrite( + struct net_device* dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset, + u32 Data + ) +{ + u32 DataAndAddr = 0; + struct r8192_priv *priv = rtllib_priv(dev); + BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath]; + u32 NewOffset; + + Offset &= 0x3f; + + PHY_RFShadowWrite(dev, eRFPath, Offset, Data); + + if( priv->rf_chip == RF_8256 || + priv->rf_chip == RF_8225 || + priv->rf_chip == RF_6052) + { + rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0xf00, 0x0); + + if(Offset>=31) + { + priv->RFWritePageCnt[2]++; + priv->RfReg0Value[eRFPath] |= 0x140; + + rtl8192_setBBreg(dev, + pPhyReg->rf3wireOffset, + bMaskDWord, + (priv->RfReg0Value[eRFPath] << 16) ); + + NewOffset = Offset - 30; + + }else if(Offset>=16) + { + priv->RFWritePageCnt[1]++; + priv->RfReg0Value[eRFPath] |= 0x100; + priv->RfReg0Value[eRFPath] &= (~0x40); + + + rtl8192_setBBreg(dev, + pPhyReg->rf3wireOffset, + bMaskDWord, + (priv->RfReg0Value[eRFPath] << 16) ); + + NewOffset = Offset - 15; + } + else + { + priv->RFWritePageCnt[0]++; + NewOffset = Offset; + } + } + else + NewOffset = Offset; + + DataAndAddr = (Data<<16) | (NewOffset&0x3f); + + rtl8192_setBBreg(dev, pPhyReg->rf3wireOffset, bMaskDWord, DataAndAddr); + + + if(Offset==0x0) + priv->RfReg0Value[eRFPath] = Data; + + if( priv->rf_chip == RF_8256 || + priv->rf_chip == RF_8225 || + priv->rf_chip == RF_6052) + { + if (Offset >= 0x10) + { + if(Offset != 0) + { + priv->RfReg0Value[eRFPath] &= 0xebf; + rtl8192_setBBreg( + dev, + pPhyReg->rf3wireOffset, + bMaskDWord, + (priv->RfReg0Value[eRFPath] << 16) ); + } + } + rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0xf00, 0xf); + } + +} +#else +static u32 +phy_RFSerialRead( + struct net_device* dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset + ) +{ + + u32 retValue = 0; + struct r8192_priv *priv = rtllib_priv(dev); + BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath]; + u32 NewOffset; + u32 tmplong,tmplong2; + u8 RfPiEnable=0; +#if 0 + if(priv->rf_chip == RF_8225 && Offset > 0x24) + return retValue; + if(priv->rf_chip == RF_8256 && Offset > 0x2D) + return retValue; +#endif + Offset &= 0x3f; + + NewOffset = Offset; + + tmplong = rtl8192_QueryBBReg(dev, rFPGA0_XA_HSSIParameter2, bMaskDWord); + if(eRFPath == RF90_PATH_A) + tmplong2 = tmplong; + else + tmplong2 = rtl8192_QueryBBReg(dev, pPhyReg->rfHSSIPara2, bMaskDWord); + tmplong2 = (tmplong2 & (~bLSSIReadAddress)) | (NewOffset<<23) | bLSSIReadEdge; + + rtl8192_setBBreg(dev, rFPGA0_XA_HSSIParameter2, bMaskDWord, tmplong&(~bLSSIReadEdge)); + udelay(1000); + + rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, bMaskDWord, tmplong2); + udelay(1000); + + rtl8192_setBBreg(dev, rFPGA0_XA_HSSIParameter2, bMaskDWord, tmplong|bLSSIReadEdge); + + if(eRFPath == RF90_PATH_A) + RfPiEnable = (u8)rtl8192_QueryBBReg(dev, rFPGA0_XA_HSSIParameter1, BIT8); + else if(eRFPath == RF90_PATH_B) + RfPiEnable = (u8)rtl8192_QueryBBReg(dev, rFPGA0_XB_HSSIParameter1, BIT8); + + if(RfPiEnable) + { + retValue = rtl8192_QueryBBReg(dev, pPhyReg->rfLSSIReadBackPi, bLSSIReadBackData); + } + else + { + retValue = rtl8192_QueryBBReg(dev, pPhyReg->rfLSSIReadBack, bLSSIReadBackData); + } + + retValue = rtl8192_QueryBBReg(dev, pPhyReg->rfLSSIReadBack, bLSSIReadBackData); + + return retValue; + +} + +static void +phy_RFSerialWrite( + struct net_device* dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset, + u32 Data + ) +{ + u32 DataAndAddr = 0; + struct r8192_priv *priv = rtllib_priv(dev); + BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath]; + u32 NewOffset; + +#if 0 + if(priv->rf_chip == RF_8225 && Offset > 0x24) + return; + if(priv->rf_chip == RF_8256 && Offset > 0x2D) + return; +#endif + + Offset &= 0x3f; + + PHY_RFShadowWrite(dev, eRFPath, Offset, Data); + + NewOffset = Offset; + + DataAndAddr = ((NewOffset<<20) | (Data&0x000fffff)) & 0x0fffffff; + + rtl8192_setBBreg(dev, pPhyReg->rf3wireOffset, bMaskDWord, DataAndAddr); + +} + +#endif + +static u32 phy_CalculateBitShift(u32 BitMask) +{ + u32 i; + + for(i=0; i<=31; i++) + { + if ( ((BitMask>>i) & 0x1 ) == 1) + break; + } + + return (i); +} + + +extern bool PHY_MACConfig8192S(struct net_device* dev) +{ + bool rtStatus = true; + +#if RTL8190_Download_Firmware_From_Header + rtStatus = phy_ConfigMACWithHeaderFile(dev); +#else + + RT_TRACE(COMP_INIT, "Read MACREG.txt\n"); +#endif + return (rtStatus == true) ? 1:0; + +} + +extern bool +PHY_BBConfig8192S(struct net_device* dev) +{ + bool rtStatus = true; + u8 PathMap = 0, index = 0, rf_num = 0; + struct r8192_priv *priv = rtllib_priv(dev); + u8 bRegHwParaFile = 1; + + phy_InitBBRFRegisterDefinition(dev); + + switch(bRegHwParaFile) + { + case 0: + phy_BB8190_Config_HardCode(dev); + break; + + case 1: + rtStatus = phy_BB8192S_Config_ParaFile(dev); + break; + + case 2: + phy_BB8190_Config_HardCode(dev); + phy_BB8192S_Config_ParaFile(dev); + break; + + default: + phy_BB8190_Config_HardCode(dev); + break; + } + + PathMap = (u8)(rtl8192_QueryBBReg(dev, rFPGA0_TxInfo, 0xf) | + rtl8192_QueryBBReg(dev, rOFDM0_TRxPathEnable, 0xf)); + priv->rf_pathmap = PathMap; + for(index = 0; index<4; index++) + { + if((PathMap>>index)&0x1) + rf_num++; + } + + if((priv->rf_type==RF_1T1R && rf_num!=1) || + (priv->rf_type==RF_1T2R && rf_num!=2) || + (priv->rf_type==RF_2T2R && rf_num!=2) || + (priv->rf_type==RF_2T2R_GREEN && rf_num!=2) || + (priv->rf_type==RF_2T4R && rf_num!=4)) + { + RT_TRACE( COMP_INIT, "PHY_BBConfig8192S: RF_Type(%x) does not match RF_Num(%x)!!\n", priv->rf_type, rf_num); + } + return rtStatus; +} + +extern bool +PHY_RFConfig8192S(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + bool rtStatus = true; + + + if (IS_HARDWARE_TYPE_8192SE(dev)) + priv->rf_chip = RF_6052; + + switch(priv->rf_chip) + { + case RF_8225: + case RF_6052: + rtStatus = PHY_RF6052_Config(dev); + break; + + case RF_8256: + break; + + case RF_8258: + break; + + case RF_PSEUDO_11N: + break; + default: + break; + } + + return rtStatus; +} + + +static bool +phy_BB8190_Config_HardCode(struct net_device* dev) +{ + return true; +} + + +static bool +phy_BB8192S_Config_ParaFile(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + bool rtStatus = true; + + RT_TRACE(COMP_INIT, "==>phy_BB8192S_Config_ParaFile\n"); + +#if RTL8190_Download_Firmware_From_Header + if (priv->rf_type == RF_1T2R || priv->rf_type == RF_2T2R || + priv->rf_type == RF_1T1R ||priv->rf_type == RF_2T2R_GREEN) + { + rtStatus = phy_ConfigBBWithHeaderFile(dev,BaseBand_Config_PHY_REG); + if(priv->rf_type != RF_2T2R && priv->rf_type != RF_2T2R_GREEN) + { + rtStatus = phy_SetBBtoDiffRFWithHeaderFile(dev,BaseBand_Config_PHY_REG); + } + }else + rtStatus = false; +#else + RT_TRACE(COMP_INIT, "RF_Type == %d\n", priv->rf_type); + if (priv->rf_type == RF_1T2R || priv->rf_type == RF_2T2R || + priv->rf_type == RF_1T1R ||priv->rf_type == RF_2T2R_GREEN) + { + rtStatus = phy_ConfigBBWithParaFile(dev, (char* )&szBBRegFile); + if(priv->rf_type != RF_2T2R && priv->rf_type != RF_2T2R_GREEN) + { + if(priv->rf_type == RF_1T1R) + rtStatus = phy_SetBBtoDiffRFWithParaFile(dev, (char* )&szBBRegto1T1RFile); + else if(priv->rf_type == RF_1T2R) + rtStatus = phy_SetBBtoDiffRFWithParaFile(dev, (char* )&szBBRegto1T2RFile); + } + + }else + rtStatus = false; +#endif + + if(rtStatus != true){ + RT_TRACE(COMP_INIT, "phy_BB8192S_Config_ParaFile():Write BB Reg Fail!!"); + goto phy_BB8190_Config_ParaFile_Fail; + } + + if (priv->AutoloadFailFlag == false) + { + priv->pwrGroupCnt = 0; + +#if RTL8190_Download_Firmware_From_Header + rtStatus = phy_ConfigBBWithPgHeaderFile(dev,BaseBand_Config_PHY_REG); +#else + rtStatus = phy_ConfigBBWithPgParaFile(dev, (char* )&szBBRegPgFile); +#endif + } + if(rtStatus != true){ + RT_TRACE(COMP_INIT, "phy_BB8192S_Config_ParaFile():BB_PG Reg Fail!!"); + goto phy_BB8190_Config_ParaFile_Fail; + } + +#if RTL8190_Download_Firmware_From_Header + rtStatus = phy_ConfigBBWithHeaderFile(dev,BaseBand_Config_AGC_TAB); +#else + RT_TRACE(COMP_INIT, "phy_BB8192S_Config_ParaFile AGC_TAB.txt\n"); + rtStatus = phy_ConfigBBWithParaFile(dev, (char* )&szAGCTableFile); +#endif + + if(rtStatus != true){ + printk( "phy_BB8192S_Config_ParaFile():AGC Table Fail\n"); + goto phy_BB8190_Config_ParaFile_Fail; + } + + +#if 0 + if(pHalData->VersionID > VERSION_8190_BD) + { + u4RegValue = ( pHalData->AntennaTxPwDiff[2]<<8 | + pHalData->AntennaTxPwDiff[1]<<4 | + pHalData->AntennaTxPwDiff[0]); + + PHY_SetBBReg(dev, rFPGA0_TxGainStage, + (bXBTxAGC|bXCTxAGC|bXDTxAGC), u4RegValue); + + u4RegValue = pHalData->CrystalCap; + PHY_SetBBReg(dev, rFPGA0_AnalogParameter1, bXtalCap92x, u4RegValue); + + } +#endif + + priv->bCckHighPower = (bool)(rtl8192_QueryBBReg(dev, rFPGA0_XA_HSSIParameter2, 0x200)); + + +phy_BB8190_Config_ParaFile_Fail: + return rtStatus; +} + +static bool +phy_ConfigMACWithHeaderFile(struct net_device* dev) +{ + u32 i = 0; + u32 ArrayLength = 0; + u32* ptrArray; + + /*if(dev->bInHctTest) + { + RT_TRACE(COMP_INIT, DBG_LOUD, ("Rtl819XMACPHY_ArrayDTM\n")); + ArrayLength = MACPHY_ArrayLengthDTM; + ptrArray = Rtl819XMACPHY_ArrayDTM; + } + else if(pHalData->bTXPowerDataReadFromEEPORM) + { + + }else*/ + { + RT_TRACE(COMP_INIT, "Read Rtl819XMACPHY_Array\n"); + ArrayLength = MAC_2T_ArrayLength; + ptrArray = Rtl819XMAC_Array; + } + + /*for(i = 0 ;i < ArrayLength;i=i+3){ + RT_TRACE(COMP_SEND, DBG_LOUD, ("The Rtl819XMACPHY_Array[0] is %lx Rtl819XMACPHY_Array[1] is %lx Rtl819XMACPHY_Array[2] is %lx\n",ptrArray[i], ptrArray[i+1], ptrArray[i+2])); + if(ptrArray[i] == 0x318) + { + ptrArray[i+2] = 0x00000800; + } + PHY_SetBBReg(dev, ptrArray[i], ptrArray[i+1], ptrArray[i+2]); + }*/ + for(i = 0 ;i < ArrayLength;i=i+2){ + write_nic_byte(dev, ptrArray[i], (u8)ptrArray[i+1]); + } + return true; +} + + +static bool +phy_ConfigBBWithHeaderFile(struct net_device* dev,u8 ConfigType) +{ + int i; + u32* Rtl819XPHY_REGArray_Table; + u32* Rtl819XAGCTAB_Array_Table; + u16 PHY_REGArrayLen, AGCTAB_ArrayLen; + /*if(dev->bInHctTest) + { + + AGCTAB_ArrayLen = AGCTAB_ArrayLengthDTM; + Rtl819XAGCTAB_Array_Table = Rtl819XAGCTAB_ArrayDTM; + + if(pHalData->RF_Type == RF_2T4R) + { + PHY_REGArrayLen = PHY_REGArrayLengthDTM; + Rtl819XPHY_REGArray_Table = Rtl819XPHY_REGArrayDTM; + } + else if (pHalData->RF_Type == RF_1T2R) + { + PHY_REGArrayLen = PHY_REG_1T2RArrayLengthDTM; + Rtl819XPHY_REGArray_Table = Rtl819XPHY_REG_1T2RArrayDTM; + } + + } + else + */ + AGCTAB_ArrayLen = AGCTAB_ArrayLength; + Rtl819XAGCTAB_Array_Table = Rtl819XAGCTAB_Array; + PHY_REGArrayLen = PHY_REG_2T2RArrayLength; + Rtl819XPHY_REGArray_Table = Rtl819XPHY_REG_Array; + + if(ConfigType == BaseBand_Config_PHY_REG) + { + for(i=0;irf_type == RF_1T1R) + { + Rtl819XPHY_REGArraytoXTXR_Table = Rtl819XPHY_REG_to1T1R_Array; + PHY_REGArraytoXTXRLen = PHY_ChangeTo_1T1RArrayLength; + } + else if(priv->rf_type == RF_1T2R) + { + Rtl819XPHY_REGArraytoXTXR_Table = Rtl819XPHY_REG_to1T2R_Array; + PHY_REGArraytoXTXRLen = PHY_ChangeTo_1T2RArrayLength; + } + else + { + return false; + } + + if(ConfigType == BaseBand_Config_PHY_REG) + { + for(i=0;iMCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][0] = Data; + } + if(RegAddr == rTxAGC_Rate54_24) + { + priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][1] = Data; + } + if(RegAddr == rTxAGC_CCK_Mcs32) + { + priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][6] = Data; + } + if(RegAddr == rTxAGC_Mcs03_Mcs00) + { + priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][2] = Data; + } + if(RegAddr == rTxAGC_Mcs07_Mcs04) + { + priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][3] = Data; + } + if(RegAddr == rTxAGC_Mcs11_Mcs08) + { + priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][4] = Data; + } + if(RegAddr == rTxAGC_Mcs15_Mcs12) + { + priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][5] = Data; + priv->pwrGroupCnt++; + } +} + +static bool +phy_ConfigBBWithPgHeaderFile(struct net_device* dev,u8 ConfigType) +{ + int i; + u32* Rtl819XPHY_REGArray_Table_PG; + u16 PHY_REGArrayPGLen; + + PHY_REGArrayPGLen = PHY_REG_Array_PGLength; + Rtl819XPHY_REGArray_Table_PG = Rtl819XPHY_REG_Array_PG; + + if(ConfigType == BaseBand_Config_PHY_REG) + { + for(i=0;iIC_Class != IC_INFERIORITY_A) + { + tmpval = rtl8192_phy_QueryRFReg(dev, eRFPath, RF_IPA, 0xf); + rtl8192_phy_SetRFReg(dev, eRFPath, RF_IPA, 0xf, tmpval+1); + } + + return rtStatus; +} + +u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device* dev, RF90_RADIO_PATH_E eRFPath) +{ + struct r8192_priv *priv = rtllib_priv(dev); + int i; + bool rtStatus = true; + u32 *Rtl819XRadioA_Array_Table; + u32 *Rtl819XRadioB_Array_Table; + u16 RadioA_ArrayLen,RadioB_ArrayLen; + + RadioA_ArrayLen = RadioA_1T_ArrayLength; + Rtl819XRadioA_Array_Table=Rtl819XRadioA_Array; + + if(priv->rf_type == RF_2T2R_GREEN) + { + Rtl819XRadioB_Array_Table = Rtl819XRadioB_GM_Array; + RadioB_ArrayLen = RadioB_GM_ArrayLength; + } + else + { + Rtl819XRadioB_Array_Table=Rtl819XRadioB_Array; + RadioB_ArrayLen = RadioB_ArrayLength; + } + + + RT_TRACE(COMP_INIT, "PHY_ConfigRFWithHeaderFile: Radio No %x\n", eRFPath); + rtStatus = true; + + switch(eRFPath){ + case RF90_PATH_A: + for(i = 0;iSetRFPowerStateInProgress == true) + return; + + priv->SetRFPowerStateInProgress = true; + + + if(RFPowerState==RF_SHUT_DOWN) + { + RFPowerState=RF_OFF; + WaitShutDown=true; + } + + + priv->RFPowerState = RFPowerState; + switch( priv->rf_chip ) + { + case RF_8225: + case RF_6052: + switch( RFPowerState ) + { + case RF_ON: + break; + + case RF_SLEEP: + break; + + case RF_OFF: + break; + } + break; + + case RF_8256: + switch( RFPowerState ) + { + case RF_ON: + break; + + case RF_SLEEP: + break; + + case RF_OFF: + for(eRFPath=(RF90_RADIO_PATH_E)RF90_PATH_A; eRFPath < RF90_PATH_MAX; eRFPath++) + { + if (!rtl8192_phy_CheckIsLegalRFPath(dev, eRFPath)) + continue; + + pPhyReg = &priv->PHYRegDef[eRFPath]; + rtl8192_setBBreg(dev, pPhyReg->rfintfs, bRFSI_RFENV, bRFSI_RFENV); + rtl8192_setBBreg(dev, pPhyReg->rfintfo, bRFSI_RFENV, 0); + } + break; + } + break; + + case RF_8258: + break; + } + + priv->SetRFPowerStateInProgress = false; +} +#endif + +void PHY_GetHWRegOriginalValue(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); +#if 0 + priv->MCSTxPowerLevelOriginalOffset[0] = + rtl8192_QueryBBReg(dev, rTxAGC_Rate18_06, bMaskDWord); + priv->MCSTxPowerLevelOriginalOffset[1] = + rtl8192_QueryBBReg(dev, rTxAGC_Rate54_24, bMaskDWord); + priv->MCSTxPowerLevelOriginalOffset[2] = + rtl8192_QueryBBReg(dev, rTxAGC_Mcs03_Mcs00, bMaskDWord); + priv->MCSTxPowerLevelOriginalOffset[3] = + rtl8192_QueryBBReg(dev, rTxAGC_Mcs07_Mcs04, bMaskDWord); + priv->MCSTxPowerLevelOriginalOffset[4] = + rtl8192_QueryBBReg(dev, rTxAGC_Mcs11_Mcs08, bMaskDWord); + priv->MCSTxPowerLevelOriginalOffset[5] = + rtl8192_QueryBBReg(dev, rTxAGC_Mcs15_Mcs12, bMaskDWord); + + priv->CCKTxPowerLevelOriginalOffset= + rtl8192_QueryBBReg(dev, rTxAGC_CCK_Mcs32, bMaskDWord); + RT_TRACE(COMP_INIT, "Legacy OFDM =%08x/%08x HT_OFDM=%08x/%08x/%08x/%08x\n", + priv->MCSTxPowerLevelOriginalOffset[0], priv->MCSTxPowerLevelOriginalOffset[1] , + priv->MCSTxPowerLevelOriginalOffset[2], priv->MCSTxPowerLevelOriginalOffset[3] , + priv->MCSTxPowerLevelOriginalOffset[4], priv->MCSTxPowerLevelOriginalOffset[5] ); +#endif + + priv->DefaultInitialGain[0] = rtl8192_QueryBBReg(dev, rOFDM0_XAAGCCore1, bMaskByte0); + priv->DefaultInitialGain[1] = rtl8192_QueryBBReg(dev, rOFDM0_XBAGCCore1, bMaskByte0); + priv->DefaultInitialGain[2] = rtl8192_QueryBBReg(dev, rOFDM0_XCAGCCore1, bMaskByte0); + priv->DefaultInitialGain[3] = rtl8192_QueryBBReg(dev, rOFDM0_XDAGCCore1, bMaskByte0); + RT_TRACE(COMP_INIT, "Default initial gain (c50=0x%x, c58=0x%x, c60=0x%x, c68=0x%x) \n", + priv->DefaultInitialGain[0], priv->DefaultInitialGain[1], + priv->DefaultInitialGain[2], priv->DefaultInitialGain[3]); + + priv->framesync = rtl8192_QueryBBReg(dev, rOFDM0_RxDetector3, bMaskByte0); + priv->framesyncC34 = rtl8192_QueryBBReg(dev, rOFDM0_RxDetector2, bMaskDWord); + RT_TRACE(COMP_INIT, "Default framesync (0x%x) = 0x%x \n", + rOFDM0_RxDetector3, priv->framesync); + +} + + + +static void phy_InitBBRFRegisterDefinition( struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + priv->PHYRegDef[RF90_PATH_A].rfintfs = rFPGA0_XAB_RFInterfaceSW; + priv->PHYRegDef[RF90_PATH_B].rfintfs = rFPGA0_XAB_RFInterfaceSW; + priv->PHYRegDef[RF90_PATH_C].rfintfs = rFPGA0_XCD_RFInterfaceSW; + priv->PHYRegDef[RF90_PATH_D].rfintfs = rFPGA0_XCD_RFInterfaceSW; + + priv->PHYRegDef[RF90_PATH_A].rfintfi = rFPGA0_XAB_RFInterfaceRB; + priv->PHYRegDef[RF90_PATH_B].rfintfi = rFPGA0_XAB_RFInterfaceRB; + priv->PHYRegDef[RF90_PATH_C].rfintfi = rFPGA0_XCD_RFInterfaceRB; + priv->PHYRegDef[RF90_PATH_D].rfintfi = rFPGA0_XCD_RFInterfaceRB; + + priv->PHYRegDef[RF90_PATH_A].rfintfo = rFPGA0_XA_RFInterfaceOE; + priv->PHYRegDef[RF90_PATH_B].rfintfo = rFPGA0_XB_RFInterfaceOE; + priv->PHYRegDef[RF90_PATH_C].rfintfo = rFPGA0_XC_RFInterfaceOE; + priv->PHYRegDef[RF90_PATH_D].rfintfo = rFPGA0_XD_RFInterfaceOE; + + priv->PHYRegDef[RF90_PATH_A].rfintfe = rFPGA0_XA_RFInterfaceOE; + priv->PHYRegDef[RF90_PATH_B].rfintfe = rFPGA0_XB_RFInterfaceOE; + priv->PHYRegDef[RF90_PATH_C].rfintfe = rFPGA0_XC_RFInterfaceOE; + priv->PHYRegDef[RF90_PATH_D].rfintfe = rFPGA0_XD_RFInterfaceOE; + + priv->PHYRegDef[RF90_PATH_A].rf3wireOffset = rFPGA0_XA_LSSIParameter; + priv->PHYRegDef[RF90_PATH_B].rf3wireOffset = rFPGA0_XB_LSSIParameter; + priv->PHYRegDef[RF90_PATH_C].rf3wireOffset = rFPGA0_XC_LSSIParameter; + priv->PHYRegDef[RF90_PATH_D].rf3wireOffset = rFPGA0_XD_LSSIParameter; + + priv->PHYRegDef[RF90_PATH_A].rfLSSI_Select = rFPGA0_XAB_RFParameter; + priv->PHYRegDef[RF90_PATH_B].rfLSSI_Select = rFPGA0_XAB_RFParameter; + priv->PHYRegDef[RF90_PATH_C].rfLSSI_Select = rFPGA0_XCD_RFParameter; + priv->PHYRegDef[RF90_PATH_D].rfLSSI_Select = rFPGA0_XCD_RFParameter; + + priv->PHYRegDef[RF90_PATH_A].rfTxGainStage = rFPGA0_TxGainStage; + priv->PHYRegDef[RF90_PATH_B].rfTxGainStage = rFPGA0_TxGainStage; + priv->PHYRegDef[RF90_PATH_C].rfTxGainStage = rFPGA0_TxGainStage; + priv->PHYRegDef[RF90_PATH_D].rfTxGainStage = rFPGA0_TxGainStage; + + priv->PHYRegDef[RF90_PATH_A].rfHSSIPara1 = rFPGA0_XA_HSSIParameter1; + priv->PHYRegDef[RF90_PATH_B].rfHSSIPara1 = rFPGA0_XB_HSSIParameter1; + priv->PHYRegDef[RF90_PATH_C].rfHSSIPara1 = rFPGA0_XC_HSSIParameter1; + priv->PHYRegDef[RF90_PATH_D].rfHSSIPara1 = rFPGA0_XD_HSSIParameter1; + + priv->PHYRegDef[RF90_PATH_A].rfHSSIPara2 = rFPGA0_XA_HSSIParameter2; + priv->PHYRegDef[RF90_PATH_B].rfHSSIPara2 = rFPGA0_XB_HSSIParameter2; + priv->PHYRegDef[RF90_PATH_C].rfHSSIPara2 = rFPGA0_XC_HSSIParameter2; + priv->PHYRegDef[RF90_PATH_D].rfHSSIPara2 = rFPGA0_XD_HSSIParameter2; + + priv->PHYRegDef[RF90_PATH_A].rfSwitchControl = rFPGA0_XAB_SwitchControl; + priv->PHYRegDef[RF90_PATH_B].rfSwitchControl = rFPGA0_XAB_SwitchControl; + priv->PHYRegDef[RF90_PATH_C].rfSwitchControl = rFPGA0_XCD_SwitchControl; + priv->PHYRegDef[RF90_PATH_D].rfSwitchControl = rFPGA0_XCD_SwitchControl; + + priv->PHYRegDef[RF90_PATH_A].rfAGCControl1 = rOFDM0_XAAGCCore1; + priv->PHYRegDef[RF90_PATH_B].rfAGCControl1 = rOFDM0_XBAGCCore1; + priv->PHYRegDef[RF90_PATH_C].rfAGCControl1 = rOFDM0_XCAGCCore1; + priv->PHYRegDef[RF90_PATH_D].rfAGCControl1 = rOFDM0_XDAGCCore1; + + priv->PHYRegDef[RF90_PATH_A].rfAGCControl2 = rOFDM0_XAAGCCore2; + priv->PHYRegDef[RF90_PATH_B].rfAGCControl2 = rOFDM0_XBAGCCore2; + priv->PHYRegDef[RF90_PATH_C].rfAGCControl2 = rOFDM0_XCAGCCore2; + priv->PHYRegDef[RF90_PATH_D].rfAGCControl2 = rOFDM0_XDAGCCore2; + + priv->PHYRegDef[RF90_PATH_A].rfRxIQImbalance = rOFDM0_XARxIQImbalance; + priv->PHYRegDef[RF90_PATH_B].rfRxIQImbalance = rOFDM0_XBRxIQImbalance; + priv->PHYRegDef[RF90_PATH_C].rfRxIQImbalance = rOFDM0_XCRxIQImbalance; + priv->PHYRegDef[RF90_PATH_D].rfRxIQImbalance = rOFDM0_XDRxIQImbalance; + + priv->PHYRegDef[RF90_PATH_A].rfRxAFE = rOFDM0_XARxAFE; + priv->PHYRegDef[RF90_PATH_B].rfRxAFE = rOFDM0_XBRxAFE; + priv->PHYRegDef[RF90_PATH_C].rfRxAFE = rOFDM0_XCRxAFE; + priv->PHYRegDef[RF90_PATH_D].rfRxAFE = rOFDM0_XDRxAFE; + + priv->PHYRegDef[RF90_PATH_A].rfTxIQImbalance = rOFDM0_XATxIQImbalance; + priv->PHYRegDef[RF90_PATH_B].rfTxIQImbalance = rOFDM0_XBTxIQImbalance; + priv->PHYRegDef[RF90_PATH_C].rfTxIQImbalance = rOFDM0_XCTxIQImbalance; + priv->PHYRegDef[RF90_PATH_D].rfTxIQImbalance = rOFDM0_XDTxIQImbalance; + + priv->PHYRegDef[RF90_PATH_A].rfTxAFE = rOFDM0_XATxAFE; + priv->PHYRegDef[RF90_PATH_B].rfTxAFE = rOFDM0_XBTxAFE; + priv->PHYRegDef[RF90_PATH_C].rfTxAFE = rOFDM0_XCTxAFE; + priv->PHYRegDef[RF90_PATH_D].rfTxAFE = rOFDM0_XDTxAFE; + + priv->PHYRegDef[RF90_PATH_A].rfLSSIReadBack = rFPGA0_XA_LSSIReadBack; + priv->PHYRegDef[RF90_PATH_B].rfLSSIReadBack = rFPGA0_XB_LSSIReadBack; + priv->PHYRegDef[RF90_PATH_C].rfLSSIReadBack = rFPGA0_XC_LSSIReadBack; + priv->PHYRegDef[RF90_PATH_D].rfLSSIReadBack = rFPGA0_XD_LSSIReadBack; + + priv->PHYRegDef[RF90_PATH_A].rfLSSIReadBackPi = TransceiverA_HSPI_Readback; + priv->PHYRegDef[RF90_PATH_B].rfLSSIReadBackPi = TransceiverB_HSPI_Readback; + +} + + +bool PHY_SetRFPowerState(struct net_device* dev, RT_RF_POWER_STATE eRFPowerState) +{ + struct r8192_priv *priv = rtllib_priv(dev); + bool bResult = false; + + RT_TRACE((COMP_PS | COMP_RF), "---------> PHY_SetRFPowerState(): eRFPowerState(%d)\n", eRFPowerState); + + if(eRFPowerState == priv->rtllib->eRFPowerState) + { + ; + return bResult; + } + + bResult = phy_SetRFPowerState8192SE(dev, eRFPowerState); + + RT_TRACE((COMP_PS | COMP_RF), "<--------- PHY_SetRFPowerState(): bResult(%d)\n", bResult); + + return bResult; +} + +static bool phy_SetRFPowerState8192SE(struct net_device* dev,RT_RF_POWER_STATE eRFPowerState) +{ + struct r8192_priv *priv = rtllib_priv(dev); + PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl)); + bool bResult = true; + u8 i, QueueID; + struct rtl8192_tx_ring *ring = NULL; + priv->SetRFPowerStateInProgress = true; + + switch(priv->rf_chip ) + { + default: + switch( eRFPowerState ) + { + case eRfOn: + RT_TRACE(COMP_PS,"========>%s():eRfOn\n", __func__); + { + if((priv->rtllib->eRFPowerState == eRfOff) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC)) + { + bool rtstatus = true; + u32 InitializeCount = 0; + do + { + InitializeCount++; + rtstatus = NicIFEnableNIC(dev); + }while( (rtstatus != true) &&(InitializeCount < 10) ); + if(rtstatus != true) + { + RT_TRACE(COMP_ERR,"%s():Initialize Adapter fail,return\n",__FUNCTION__); + priv->SetRFPowerStateInProgress = false; + return false; + } + RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC); + } + else + { + write_nic_word(dev, CMDR, 0x37FC); + write_nic_byte(dev, TXPAUSE, 0x00); + write_nic_byte(dev, PHY_CCA, 0x3); + } + +#if 1 + if(priv->rtllib->state == RTLLIB_LINKED) + { + LedControl8192SE(dev, LED_CTL_LINK); + } + else + { + LedControl8192SE(dev, LED_CTL_NO_LINK); + } +#endif + } + break; + case eRfOff: + RT_TRACE(COMP_PS,"========>%s():eRfOff\n", __func__); + { + for(QueueID = 0, i = 0; QueueID < MAX_TX_QUEUE; ) + { + if(QueueID == 5) + { + QueueID++; + continue; + } + + ring = &priv->tx_ring[QueueID]; + if(skb_queue_len(&ring->queue) == 0) + { + QueueID++; + continue; + } + #ifdef TO_DO_LIST + #if( DEV_BUS_TYPE==PCI_INTERFACE) + else if(IsLowPowerState(Adapter)) + { + RT_TRACE(COMP_PS, DBG_LOUD, + ("eRf Off/Sleep: %d times TcbBusyQueue[%d] !=0 but lower power state!\n", (i+1), QueueID)); + break; + } + #endif + #endif + else + { + RT_TRACE(COMP_PS, "eRf Off/Sleep: %d times TcbBusyQueue[%d] !=0 before doze!\n", (i+1), QueueID); + udelay(10); + i++; + } + + if(i >= MAX_DOZE_WAITING_TIMES_9x) + { + RT_TRACE(COMP_PS, "\n\n\n %s(): eRfOff: %d times TcbBusyQueue[%d] != 0 !!!\n\n\n", __FUNCTION__,MAX_DOZE_WAITING_TIMES_9x, QueueID); + break; + } + } + + if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_HALT_NIC && !RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC)) + { + NicIFDisableNIC(dev); + RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC); + if(priv->pwrdown && priv->rtllib->RfOffReason>= RF_CHANGE_BY_HW) + write_nic_byte(dev,0x03,0x31); + } + else if(!(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_HALT_NIC)) + { + SET_RTL8192SE_RF_SLEEP(dev); + +#if 1 + if(priv->rtllib->RfOffReason == RF_CHANGE_BY_IPS ) + { + LedControl8192SE(dev,LED_CTL_NO_LINK); + } + else + { + LedControl8192SE(dev, LED_CTL_POWER_OFF); + } +#endif + } + } + break; + + case eRfSleep: + RT_TRACE(COMP_PS,"========>%s():eRfSleep\n", __func__); + { + if(priv->rtllib->eRFPowerState == eRfOff) + break; + + for(QueueID = 0, i = 0; QueueID < MAX_TX_QUEUE; ) + { + ring = &priv->tx_ring[QueueID]; + if(skb_queue_len(&ring->queue) == 0) + { + QueueID++; + continue; + } + #ifdef TO_DO_LIST + #if( DEV_BUS_TYPE==PCI_INTERFACE) + else if(IsLowPowerState(Adapter)) + { + RT_TRACE(COMP_PS, "eRf Off/Sleep: %d times TcbBusyQueue[%d] !=0 but lower power state!\n", (i+1), QueueID); + break; + } + #endif + #endif + else + { + RT_TRACE(COMP_PS, "eRf Off/Sleep: %d times TcbBusyQueue[%d] !=0 before doze!\n", (i+1), QueueID); + udelay(10); + i++; + } + + if(i >= MAX_DOZE_WAITING_TIMES_9x) + { + RT_TRACE(COMP_PS, "\n\n\n %s(): eRfOff: %d times TcbBusyQueue[%d] != 0 !!!\n\n\n", __FUNCTION__,MAX_DOZE_WAITING_TIMES_9x, QueueID); + break; + } + } + + SET_RTL8192SE_RF_SLEEP(dev); + } + break; + + default: + bResult = false; + RT_TRACE(COMP_ERR, "phy_SetRFPowerState8192S(): unknow state to set: 0x%X!!!\n", eRFPowerState); + break; + } + break; + } + + if(bResult) + { + priv->rtllib->eRFPowerState = eRFPowerState; + } + + priv->SetRFPowerStateInProgress = false; + + return bResult; +} + + +void +PHY_SwitchEphyParameter(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + write_nic_dword(dev, 0x540, 0x73c11); + write_nic_dword(dev, 0x548, 0x2407c); + + write_nic_word(dev, 0x550, 0x1000); + write_nic_byte(dev, 0x554, 0x20); + phy_CheckEphySwitchReady(dev); + + write_nic_word(dev, 0x550, 0xa0eb); + write_nic_byte(dev, 0x554, 0x3e); + phy_CheckEphySwitchReady(dev); + + write_nic_word(dev, 0x550, 0xff80); + write_nic_byte(dev, 0x554, 0x39); + phy_CheckEphySwitchReady(dev); + + if(priv->bSupportASPM && !priv->bSupportBackDoor) + write_nic_byte(dev, 0x560, 0x40); + else + { + write_nic_byte(dev, 0x560, 0x00); + + if (priv->CustomerID == RT_CID_819x_SAMSUNG || + priv->CustomerID == RT_CID_819x_Lenovo) + { + if (priv->NdisAdapter.PciBridgeVendor == PCI_BRIDGE_VENDOR_AMD || + priv->NdisAdapter.PciBridgeVendor == PCI_BRIDGE_VENDOR_ATI) + { + write_nic_byte(dev, 0x560, 0x40); + } + } + } + +} + + + void +PHY_GetTxPowerLevel8192S( + struct net_device* dev, + long* powerlevel + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 TxPwrLevel = 0; + long TxPwrDbm; + + TxPwrLevel = priv->CurrentCckTxPwrIdx; + TxPwrDbm = phy_TxPwrIdxToDbm(dev, WIRELESS_MODE_B, TxPwrLevel); + + TxPwrLevel = priv->CurrentOfdm24GTxPwrIdx + priv->LegacyHTTxPowerDiff; + + if(phy_TxPwrIdxToDbm(dev, WIRELESS_MODE_G, TxPwrLevel) > TxPwrDbm) + TxPwrDbm = phy_TxPwrIdxToDbm(dev, WIRELESS_MODE_G, TxPwrLevel); + TxPwrLevel = priv->CurrentOfdm24GTxPwrIdx; + + if(phy_TxPwrIdxToDbm(dev, WIRELESS_MODE_N_24G, TxPwrLevel) > TxPwrDbm) + TxPwrDbm = phy_TxPwrIdxToDbm(dev, WIRELESS_MODE_N_24G, TxPwrLevel); + *powerlevel = TxPwrDbm; +} + +#if 1 +void getTxPowerIndex( + struct net_device* dev, + u8 channel, + u8* cckPowerLevel, + u8* ofdmPowerLevel + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 index = (channel -1); + cckPowerLevel[0] = priv->RfTxPwrLevelCck[0][index]; + cckPowerLevel[1] = priv->RfTxPwrLevelCck[1][index]; + + if (priv->rf_type == RF_1T2R || priv->rf_type == RF_1T1R) + { + ofdmPowerLevel[0] = priv->RfTxPwrLevelOfdm1T[0][index]; + ofdmPowerLevel[1] = priv->RfTxPwrLevelOfdm1T[1][index]; + } + else if (priv->rf_type == RF_2T2R) + { + ofdmPowerLevel[0] = priv->RfTxPwrLevelOfdm2T[0][index]; + ofdmPowerLevel[1] = priv->RfTxPwrLevelOfdm2T[1][index]; + } + RT_TRACE(COMP_POWER,"Channel-%d, set tx power index !!\n", channel); +} + +void ccxPowerIndexCheck( + struct net_device* dev, + u8 channel, + u8* cckPowerLevel, + u8* ofdmPowerLevel + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + +#ifdef TODO + if( priv->rtllib->iw_mode != IW_MODE_INFRA && priv->bWithCcxCellPwr && + channel == priv->rtllib->current_network.channel) + { + u8 CckCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_B, priv->CcxCellPwr); + u8 LegacyOfdmCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_G, priv->CcxCellPwr); + u8 OfdmCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_N_24G, priv->CcxCellPwr); + + RT_TRACE(COMP_TXAGC, + "CCX Cell Limit: %d dbm => CCK Tx power index : %d, Legacy OFDM Tx power index : %d, OFDM Tx power index: %d\n", + priv->CcxCellPwr, CckCellPwrIdx, LegacyOfdmCellPwrIdx, OfdmCellPwrIdx); + RT_TRACE(COMP_TXAGC, + "EEPROM channel(%d) => CCK Tx power index: %d, Legacy OFDM Tx power index : %d, OFDM Tx power index: %d\n", + channel, cckPowerLevel[0], ofdmPowerLevel[0] + priv->LegacyHTTxPowerDiff, ofdmPowerLevel[0]); + + if(cckPowerLevel[0] > CckCellPwrIdx) + cckPowerLevel[0] = CckCellPwrIdx; + if(ofdmPowerLevel[0] + priv->LegacyHTTxPowerDiff > LegacyOfdmCellPwrIdx) + { + if((OfdmCellPwrIdx - priv->LegacyHTTxPowerDiff) > 0) + { + ofdmPowerLevel[0] = OfdmCellPwrIdx - priv->LegacyHTTxPowerDiff; + } + else + { + ofdmPowerLevel[0] = 0; + } + } + + RT_TRACE(COMP_TXAGC, + "Altered CCK Tx power index : %d, Legacy OFDM Tx power index: %d, OFDM Tx power index: %d\n", + cckPowerLevel[0], ofdmPowerLevel[0] + priv->LegacyHTTxPowerDiff, ofdmPowerLevel[0]); + } + +#endif + priv->CurrentCckTxPwrIdx = cckPowerLevel[0]; + priv->CurrentOfdm24GTxPwrIdx = ofdmPowerLevel[0]; + + RT_TRACE(COMP_TXAGC, + "PHY_SetTxPowerLevel8192S(): CCK Tx power index : %d, Legacy OFDM Tx power index: %d, OFDM Tx power index: %d\n", + cckPowerLevel[0], ofdmPowerLevel[0] + priv->LegacyHTTxPowerDiff, ofdmPowerLevel[0]); + +} +/*----------------------------------------------------------------------------- + * Function: SetTxPowerLevel8190() + * + * Overview: This function is export to "HalCommon" moudule + * We must consider RF path later!!!!!!! + * + * Input: PADAPTER Adapter + * u1Byte channel + * + * Output: NONE + * + * Return: NONE + * 2008/11/04 MHC We remove EEPROM_93C56. + * We need to move CCX relative code to independet file. + * 2009/01/21 MHC Support new EEPROM format from SD3 requirement. + * + *---------------------------------------------------------------------------*/ +void rtl8192_phy_setTxPower(struct net_device* dev, u8 channel) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 cckPowerLevel[2], ofdmPowerLevel[2]; + + if(priv->bTXPowerDataReadFromEEPORM == false) + return; + getTxPowerIndex(dev, channel, &cckPowerLevel[0], &ofdmPowerLevel[0]); + RT_TRACE(COMP_POWER, "Channel-%d, cckPowerLevel (A / B) = 0x%x / 0x%x, ofdmPowerLevel (A / B) = 0x%x / 0x%x\n", + channel, cckPowerLevel[0], cckPowerLevel[1], ofdmPowerLevel[0], ofdmPowerLevel[1]); + + ccxPowerIndexCheck(dev, channel, &cckPowerLevel[0], &ofdmPowerLevel[0]); + + switch(priv->rf_chip) + { + case RF_8225: + break; + + case RF_8256: + ; + break; + + case RF_6052: + PHY_RF6052SetCckTxPower(dev, cckPowerLevel[0]); + PHY_RF6052SetOFDMTxPower(dev, &ofdmPowerLevel[0], channel); + break; + + case RF_8258: + break; + default: + break; + } +} +#else +void rtl8192_phy_setTxPower(struct net_device* dev, u8 channel) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 powerlevel = (u8)EEPROM_Default_TxPower, powerlevelOFDM24G = 0x10; + s8 ant_pwr_diff = 0; + u32 u4RegValue; + u8 index = (channel -1); + u8 pwrdiff[2] = {0}; + u8 ht20pwr[2] = {0}, ht40pwr[2] = {0}; + u8 rfpath = 0, rfpathnum = 2; + + if(priv->bTXPowerDataReadFromEEPORM == false) + return; + + + powerlevel = priv->RfTxPwrLevelCck[0][index]; + + if (priv->rf_type == RF_1T2R || priv->rf_type == RF_1T1R) + { + powerlevelOFDM24G = priv->RfTxPwrLevelOfdm1T[0][index]; + + + rfpathnum = 1; + ht20pwr[0] = ht40pwr[0] = priv->RfTxPwrLevelOfdm1T[0][index]; + } + else if (priv->rf_type == RF_2T2R) + { + powerlevelOFDM24G = priv->RfTxPwrLevelOfdm2T[0][index]; + ant_pwr_diff = priv->RfTxPwrLevelOfdm2T[1][index] - + priv->RfTxPwrLevelOfdm2T[0][index]; + + RT_TRACE(COMP_POWER, "CH-%d HT40 A/B Pwr index = %x/%x(%d/%d)\n", + channel, priv->RfTxPwrLevelOfdm2T[0][index], + priv->RfTxPwrLevelOfdm2T[1][index], + priv->RfTxPwrLevelOfdm2T[0][index], + priv->RfTxPwrLevelOfdm2T[1][index]); + + ht20pwr[0] = ht40pwr[0] = priv->RfTxPwrLevelOfdm2T[0][index]; + ht20pwr[1] = ht40pwr[1] = priv->RfTxPwrLevelOfdm2T[1][index]; + } + RT_TRACE(COMP_POWER, "Channel-%d, set tx power index\n", channel); + + if (priv->eeprom_version >= 2) + { + if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20) + { + for (rfpath = 0; rfpath < rfpathnum; rfpath++) + { + pwrdiff[rfpath] = priv->TxPwrHt20Diff[rfpath][index]; + + if (pwrdiff[rfpath] < 8) + { + ht20pwr[rfpath] += pwrdiff[rfpath]; + } + else + { + ht20pwr[rfpath] -= (16-pwrdiff[rfpath]); + } + } + + if (priv->rf_type == RF_2T2R) + ant_pwr_diff = ht20pwr[1] - ht20pwr[0]; + + RT_TRACE(COMP_POWER, "HT20 to HT40 pwrdiff[A/B]=%d/%d, ant_pwr_diff=%d(B-A=%d-%d)\n", + pwrdiff[0], pwrdiff[1], ant_pwr_diff, ht20pwr[1], ht20pwr[0]); + } + } + + if(ant_pwr_diff > 7) + ant_pwr_diff = 7; + if(ant_pwr_diff < -8) + ant_pwr_diff = -8; + + RT_TRACE(COMP_POWER, "CCK/HT Power index = %x/%x(%d/%d), ant_pwr_diff=%d\n", + powerlevel, powerlevelOFDM24G, powerlevel, powerlevelOFDM24G, ant_pwr_diff); + + ant_pwr_diff &= 0xf; + + priv->AntennaTxPwDiff[2] = 0; + priv->AntennaTxPwDiff[1] = 0; + priv->AntennaTxPwDiff[0] = (u8)(ant_pwr_diff); + RT_TRACE(COMP_POWER, "pHalData->AntennaTxPwDiff[0]/[1]/[2] = 0x%x/0x%x/0x%x\n", + priv->AntennaTxPwDiff[0], priv->AntennaTxPwDiff[1], priv->AntennaTxPwDiff[2]); + u4RegValue = ( priv->AntennaTxPwDiff[2]<<8 | + priv->AntennaTxPwDiff[1]<<4 | + priv->AntennaTxPwDiff[0] ); + RT_TRACE(COMP_POWER, "BCD-Diff=0x%x\n", u4RegValue); + + rtl8192_setBBreg(dev, rFPGA0_TxGainStage, (bXBTxAGC|bXCTxAGC|bXDTxAGC), u4RegValue); + +#ifdef TODO + if( priv->rtllib->iw_mode != IW_MODE_INFRA && priv->bWithCcxCellPwr && + channel == priv->rtllib->current_network.channel) + { + u8 CckCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_B, priv->CcxCellPwr); + u8 LegacyOfdmCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_G, priv->CcxCellPwr); + u8 OfdmCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_N_24G, priv->CcxCellPwr); + + RT_TRACE(COMP_TXAGC, + ("CCX Cell Limit: %d dbm => CCK Tx power index : %d, Legacy OFDM Tx power index : %d, OFDM Tx power index: %d\n", + priv->CcxCellPwr, CckCellPwrIdx, LegacyOfdmCellPwrIdx, OfdmCellPwrIdx)); + RT_TRACE(COMP_TXAGC, + ("EEPROM channel(%d) => CCK Tx power index: %d, Legacy OFDM Tx power index : %d, OFDM Tx power index: %d\n", + channel, powerlevel, powerlevelOFDM24G + priv->LegacyHTTxPowerDiff, powerlevelOFDM24G)); + + if(powerlevel > CckCellPwrIdx) + powerlevel = CckCellPwrIdx; + if(powerlevelOFDM24G + priv->LegacyHTTxPowerDiff > LegacyOfdmCellPwrIdx) + { + if((OfdmCellPwrIdx - priv->LegacyHTTxPowerDiff) > 0) + { + powerlevelOFDM24G = OfdmCellPwrIdx - priv->LegacyHTTxPowerDiff; + } + else + { + powerlevelOFDM24G = 0; + } + } + + RT_TRACE(COMP_TXAGC, + ("Altered CCK Tx power index : %d, Legacy OFDM Tx power index: %d, OFDM Tx power index: %d\n", + powerlevel, powerlevelOFDM24G + priv->LegacyHTTxPowerDiff, powerlevelOFDM24G)); + } +#endif + priv->CurrentCckTxPwrIdx = powerlevel; + priv->CurrentOfdm24GTxPwrIdx = powerlevelOFDM24G; + + RT_TRACE(COMP_POWER, "PHY_SetTxPowerLevel8192S(): CCK Tx power index : %d, Legacy OFDM Tx power index: %d, OFDM Tx power index: %d\n", + powerlevel, powerlevelOFDM24G + priv->LegacyHTTxPowerDiff, powerlevelOFDM24G); + + switch(priv->rf_chip) + { + case RF_8225: + break; + + case RF_8256: + break; + + case RF_6052: + PHY_RF6052SetCckTxPower(dev, powerlevel); + PHY_RF6052SetOFDMTxPower(dev, powerlevelOFDM24G, channel); + break; + + case RF_8258: + break; + default: + break; + } + +} +#endif + +bool PHY_UpdateTxPowerDbm8192S(struct net_device* dev, long powerInDbm) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 idx; + u8 rf_path; + + u8 CckTxPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_B, powerInDbm); + u8 OfdmTxPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_N_24G, powerInDbm); + + if(OfdmTxPwrIdx - priv->LegacyHTTxPowerDiff > 0) + OfdmTxPwrIdx -= priv->LegacyHTTxPowerDiff; + else + OfdmTxPwrIdx = 0; + + RT_TRACE(COMP_POWER, "PHY_UpdateTxPowerDbm8192S(): %ld dBm , CckTxPwrIdx = %d, OfdmTxPwrIdx = %d\n", powerInDbm, CckTxPwrIdx, OfdmTxPwrIdx); + + for(idx = 0; idx < 14; idx++) + { + priv->TxPowerLevelCCK[idx] = CckTxPwrIdx; + priv->TxPowerLevelCCK_A[idx] = CckTxPwrIdx; + priv->TxPowerLevelCCK_C[idx] = CckTxPwrIdx; + priv->TxPowerLevelOFDM24G[idx] = OfdmTxPwrIdx; + priv->TxPowerLevelOFDM24G_A[idx] = OfdmTxPwrIdx; + priv->TxPowerLevelOFDM24G_C[idx] = OfdmTxPwrIdx; + for (rf_path = 0; rf_path < 2; rf_path++) + { + priv->RfTxPwrLevelCck[rf_path][idx] = CckTxPwrIdx; + priv->RfTxPwrLevelOfdm1T[rf_path][idx] = + priv->RfTxPwrLevelOfdm2T[rf_path][idx] = OfdmTxPwrIdx; + } + } + + rtl8192_phy_setTxPower(dev, priv->chan); + + return true; +} + +extern void PHY_SetBeaconHwReg( struct net_device* dev, u16 BeaconInterval) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 NewBeaconNum; + + if(priv->pFirmware->FirmwareVersion >= 0x33) + { + write_nic_dword(dev,WFM5,0xF1000000|(BeaconInterval<<8)); + } + else + { + NewBeaconNum = BeaconInterval *32 - 64; + write_nic_dword(dev, WFM3+4, NewBeaconNum); + write_nic_dword(dev, WFM3, 0xB026007C); +} +} + +static u8 phy_DbmToTxPwrIdx( + struct net_device* dev, + WIRELESS_MODE WirelessMode, + long PowerInDbm + ) +{ + u8 TxPwrIdx = 0; + long Offset = 0; + + + switch(WirelessMode) + { + case WIRELESS_MODE_B: + Offset = -7; + break; + + case WIRELESS_MODE_G: + Offset = -8; + break; + + case WIRELESS_MODE_N_24G: + default: + Offset = -8; + break; + } + + if((PowerInDbm - Offset) > 0) + { + TxPwrIdx = (u8)((PowerInDbm - Offset) * 2); + } + else + { + TxPwrIdx = 0; + } + + if(TxPwrIdx > MAX_TXPWR_IDX_NMODE_92S) + TxPwrIdx = MAX_TXPWR_IDX_NMODE_92S; + + return TxPwrIdx; +} + +static long phy_TxPwrIdxToDbm( + struct net_device* dev, + WIRELESS_MODE WirelessMode, + u8 TxPwrIdx + ) +{ + long Offset = 0; + long PwrOutDbm = 0; + + switch(WirelessMode) + { + case WIRELESS_MODE_B: + Offset = -7; + break; + + case WIRELESS_MODE_G: + case WIRELESS_MODE_N_24G: + Offset = -8; + break; + default: + Offset = -8; + break; + } + + PwrOutDbm = TxPwrIdx / 2 + Offset; + + return PwrOutDbm; +} + +extern void +PHY_ScanOperationBackup8192S( + struct net_device* dev, + u8 Operation + ) +{ +#if(RTL8192S_DISABLE_FW_DM == 0) + + struct r8192_priv *priv = rtllib_priv(dev); + + if(priv->up) + { + switch(Operation) + { + case SCAN_OPT_BACKUP: + priv->rtllib->SetFwCmdHandler(dev, FW_CMD_PAUSE_DM_BY_SCAN); + break; + + case SCAN_OPT_RESTORE: + priv->rtllib->SetFwCmdHandler(dev, FW_CMD_RESUME_DM_BY_SCAN); + break; + + default: + RT_TRACE(COMP_SCAN, "Unknown Scan Backup Operation. \n"); + break; + } + } +#endif +} + +void PHY_SetBWModeCallback8192S(struct net_device *dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u8 regBwOpMode, regRRSR_RSC; + + + + RT_TRACE(COMP_SWBW, "==>SetBWModeCallback8192s() Switch to %s bandwidth\n", \ + priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20?"20MHz":"40MHz"); + + if(priv->rf_chip == RF_PSEUDO_11N) + { + priv->SetBWModeInProgress= false; + return; + } + if(IS_NIC_DOWN(priv)){ + priv->SwChnlInProgress = priv->SetBWModeInProgress = false; + return; + } + + regBwOpMode = read_nic_byte(dev, BW_OPMODE); + regRRSR_RSC = read_nic_byte(dev, RRSR+2); + + switch(priv->CurrentChannelBW) + { + case HT_CHANNEL_WIDTH_20: + regBwOpMode |= BW_OPMODE_20MHZ; + write_nic_byte(dev, BW_OPMODE, regBwOpMode); + break; + + case HT_CHANNEL_WIDTH_20_40: + regBwOpMode &= ~BW_OPMODE_20MHZ; + write_nic_byte(dev, BW_OPMODE, regBwOpMode); + + break; + + default: + RT_TRACE(COMP_DBG, "SetBWModeCallback8192s():\ + unknown Bandwidth: %#X\n",priv->CurrentChannelBW); + break; + } + + switch(priv->CurrentChannelBW) + { + case HT_CHANNEL_WIDTH_20: + rtl8192_setBBreg(dev, rFPGA0_RFMOD, bRFMOD, 0x0); + rtl8192_setBBreg(dev, rFPGA1_RFMOD, bRFMOD, 0x0); + + if(priv->card_8192_version >= VERSION_8192S_BCUT) + write_nic_byte(dev, rFPGA0_AnalogParameter2, 0x58); + break; + + case HT_CHANNEL_WIDTH_20_40: + rtl8192_setBBreg(dev, rFPGA0_RFMOD, bRFMOD, 0x1); + rtl8192_setBBreg(dev, rFPGA1_RFMOD, bRFMOD, 0x1); + + + rtl8192_setBBreg(dev, rCCK0_System, bCCKSideBand, (priv->nCur40MhzPrimeSC>>1)); + rtl8192_setBBreg(dev, rOFDM1_LSTF, 0xC00, priv->nCur40MhzPrimeSC); + + if(priv->card_8192_version >= VERSION_8192S_BCUT) + write_nic_byte(dev, rFPGA0_AnalogParameter2, 0x18); + break; + + default: + RT_TRACE(COMP_DBG, "SetBWModeCallback8192s(): unknown Bandwidth: %#X\n"\ + ,priv->CurrentChannelBW); + break; + + } + + + switch( priv->rf_chip ) + { + case RF_8225: + break; + + case RF_8256: + break; + + case RF_8258: + break; + + case RF_PSEUDO_11N: + break; + + case RF_6052: + PHY_RF6052SetBandwidth(dev, priv->CurrentChannelBW); + break; + default: + printk("Unknown rf_chip: %d\n", priv->rf_chip); + break; + } + + priv->SetBWModeInProgress= false; + + RT_TRACE(COMP_SWBW, "<==SetBWModeCallback8192s() \n" ); +} + + +void rtl8192_SetBWMode(struct net_device *dev, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + + + + + if(priv->SetBWModeInProgress) + return; + + priv->SetBWModeInProgress= true; + + priv->CurrentChannelBW = Bandwidth; + + if(Offset==HT_EXTCHNL_OFFSET_LOWER) + priv->nCur40MhzPrimeSC = HAL_PRIME_CHNL_OFFSET_UPPER; + else if(Offset==HT_EXTCHNL_OFFSET_UPPER) + priv->nCur40MhzPrimeSC = HAL_PRIME_CHNL_OFFSET_LOWER; + else + priv->nCur40MhzPrimeSC = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + +#if 0 + if(!priv->bDriverStopped) + { +#ifdef USE_WORKITEM + PlatformScheduleWorkItem(&(priv->SetBWModeWorkItem)); +#else + PlatformSetTimer(dev, &(priv->SetBWModeTimer), 0); +#endif + } +#endif + if(!IS_NIC_DOWN(priv)){ + PHY_SetBWModeCallback8192S(dev); + } else { + priv->SetBWModeInProgress= false; + } +} + +void PHY_SwChnlCallback8192S(struct net_device *dev) +{ + + struct r8192_priv *priv = rtllib_priv(dev); + u32 delay; + + RT_TRACE(COMP_CH, "==>SwChnlCallback8190Pci(), switch to channel %d\n", priv->chan); + + if(IS_NIC_DOWN(priv)) + { + printk("%s: driver is not up\n", __FUNCTION__); + priv->SwChnlInProgress = priv->SetBWModeInProgress = false; + return; + } + if(priv->rf_chip == RF_PSEUDO_11N) + { + printk("%s: rt chip is RF_PSEUDO_11N\n", __FUNCTION__); + priv->SwChnlInProgress=false; + return; + } + + do{ + if(!priv->SwChnlInProgress) + break; + + if(!phy_SwChnlStepByStep(dev, priv->chan, &priv->SwChnlStage, &priv->SwChnlStep, &delay)) + { + if(delay>0) + { + mdelay(delay); + } + else + continue; + } + else + { + priv->SwChnlInProgress=false; + break; + } + }while(true); +} + +u8 rtl8192_phy_SwChnl(struct net_device* dev, u8 channel) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + if(IS_NIC_DOWN(priv)) + { + printk("%s: driver is not up.\n",__FUNCTION__); + priv->SwChnlInProgress = priv->SetBWModeInProgress = false; + return false; + } + if(priv->SwChnlInProgress){ + printk("%s: SwChnl is in progress\n",__FUNCTION__); + return false; + } + + if(priv->SetBWModeInProgress){ + printk("%s: Set BWMode is in progress\n",__FUNCTION__); + return false; + } + if (0) + { + u8 path; + for(path=0; path<2; path++){ + printk("============>to set channel:%x\n", rtl8192_phy_QueryRFReg(dev, path, 0x18, 0x3ff)); + udelay(10); + } + } + switch(priv->rtllib->mode) + { + case WIRELESS_MODE_A: + case WIRELESS_MODE_N_5G: + if (channel<=14){ + RT_TRACE(COMP_ERR, "WIRELESS_MODE_A but channel<=14"); + return false; + } + break; + + case WIRELESS_MODE_B: + if (channel>14){ + RT_TRACE(COMP_ERR, "WIRELESS_MODE_B but channel>14"); + return false; + } + break; + + case WIRELESS_MODE_G: + case WIRELESS_MODE_N_24G: + if (channel>14){ + RT_TRACE(COMP_ERR, "WIRELESS_MODE_G but channel>14"); + return false; + } + break; + + default: + break; + } + + priv->SwChnlInProgress = true; + if( channel == 0) + channel = 1; + + priv->chan=channel; + + priv->SwChnlStage=0; + priv->SwChnlStep=0; + +#if 0 + if(!dev->bDriverStopped) + { +#ifdef USE_WORKITEM + PlatformScheduleWorkItem(&(priv->SwChnlWorkItem)); +#else + PlatformSetTimer(dev, &(priv->SwChnlTimer), 0); +#endif + } +#endif + + if(!IS_NIC_DOWN(priv)){ + PHY_SwChnlCallback8192S(dev); + } else { + priv->SwChnlInProgress = false; + } + return true; +} + + +void PHY_SwChnlPhy8192S( + struct net_device* dev, + u8 channel + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + + RT_TRACE(COMP_SCAN, "==>PHY_SwChnlPhy8192S(), switch to channel %d.\n", priv->chan); + +#ifdef TO_DO_LIST + if(RT_CANNOT_IO(dev)) + return; +#endif + + if(priv->SwChnlInProgress) + return; + + if(priv->rf_chip == RF_PSEUDO_11N) + { + priv->SwChnlInProgress=false; + return; + } + + priv->SwChnlInProgress = true; + if( channel == 0) + channel = 1; + + priv->chan=channel; + + priv->SwChnlStage = 0; + priv->SwChnlStep = 0; + + phy_FinishSwChnlNow(dev,channel); + + priv->SwChnlInProgress = false; +} + +static bool +phy_SwChnlStepByStep( + struct net_device* dev, + u8 channel, + u8 *stage, + u8 *step, + u32 *delay + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + SwChnlCmd PreCommonCmd[MAX_PRECMD_CNT]; + u32 PreCommonCmdCnt; + SwChnlCmd PostCommonCmd[MAX_POSTCMD_CNT]; + u32 PostCommonCmdCnt; + SwChnlCmd RfDependCmd[MAX_RFDEPENDCMD_CNT]; + u32 RfDependCmdCnt; + SwChnlCmd *CurrentCmd = NULL; + u8 eRFPath; + u16 u2Channel = 0; + + RT_TRACE(COMP_CH, "===========>%s(), channel:%d, stage:%d, step:%d\n", __FUNCTION__, channel, *stage, *step); + if (!IsLegalChannel(priv->rtllib, channel)) + { + RT_TRACE(COMP_ERR, "=============>set to illegal channel:%d\n", channel); + return true; + } + + + PreCommonCmdCnt = 0; + phy_SetSwChnlCmdArray(PreCommonCmd, PreCommonCmdCnt++, MAX_PRECMD_CNT, + CmdID_SetTxPowerLevel, 0, 0, 0); + phy_SetSwChnlCmdArray(PreCommonCmd, PreCommonCmdCnt++, MAX_PRECMD_CNT, + CmdID_End, 0, 0, 0); + + PostCommonCmdCnt = 0; + + phy_SetSwChnlCmdArray(PostCommonCmd, PostCommonCmdCnt++, MAX_POSTCMD_CNT, + CmdID_End, 0, 0, 0); + + RfDependCmdCnt = 0; + switch( priv->rf_chip ) + { + case RF_8225: + if (channel < 1 || channel > 14) + RT_TRACE(COMP_ERR, "illegal channel for zebra:%d\n", channel); + phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT, + CmdID_RF_WriteReg, rRfChannel, channel, 10); + phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT, + CmdID_End, 0, 0, 0); + break; + + case RF_8256: + if (channel < 1 || channel > 14) + RT_TRACE(COMP_ERR, "illegal channel for zebra:%d\n", channel); + phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT, + CmdID_RF_WriteReg, rRfChannel, channel, 10); + phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT, + CmdID_End, 0, 0, 0); + break; + + case RF_6052: + if (channel < 1 || channel > 14) + RT_TRACE(COMP_ERR, "illegal channel for zebra:%d\n", channel); + + u2Channel = channel; + + switch(priv->CurrentChannelBW) + { + case HT_CHANNEL_WIDTH_20: + u2Channel |= BIT10; + break; + + case HT_CHANNEL_WIDTH_20_40: + u2Channel &= ~BIT10; + break; + default: + u2Channel |= BIT10; + break; + } + u2Channel |= BIT12|BIT13|BIT14; + + phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT, + CmdID_RF_WriteReg, RF_CHNLBW, u2Channel, 10); + phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT, + CmdID_End, 0, 0, 0); + break; + + case RF_8258: + break; + + default: + return false; + break; + } + + + do{ + switch(*stage) + { + case 0: + CurrentCmd=&PreCommonCmd[*step]; + break; + case 1: + CurrentCmd=&RfDependCmd[*step]; + break; + case 2: + CurrentCmd=&PostCommonCmd[*step]; + break; + } + + if(CurrentCmd->CmdID==CmdID_End) + { + if((*stage)==2) + { + return true; + } + else + { + (*stage)++; + (*step)=0; + continue; + } + } + + switch(CurrentCmd->CmdID) + { + case CmdID_SetTxPowerLevel: +#ifndef CONFIG_MP + rtl8192_phy_setTxPower(dev,channel); +#endif + break; + case CmdID_WritePortUlong: + write_nic_dword(dev, CurrentCmd->Para1, CurrentCmd->Para2); + break; + case CmdID_WritePortUshort: + write_nic_word(dev, CurrentCmd->Para1, (u16)CurrentCmd->Para2); + break; + case CmdID_WritePortUchar: + write_nic_byte(dev, CurrentCmd->Para1, (u8)CurrentCmd->Para2); + break; + case CmdID_RF_WriteReg: + for(eRFPath = 0; eRFPath NumTotalRFPath; eRFPath++) + { + if (IS_HARDWARE_TYPE_8192SE(dev)) { +#ifdef CONFIG_FW_SETCHAN + u32 rf_bw = ((priv->RfRegChnlVal[eRFPath] & 0xfffffc00) | (CurrentCmd->Para2 & 0xFF00)); +#endif + priv->RfRegChnlVal[eRFPath] = ((priv->RfRegChnlVal[eRFPath] & 0xfffffc00) | CurrentCmd->Para2); + +#ifdef CONFIG_FW_SETCHAN + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, CurrentCmd->Para1, bRFRegOffsetMask, rf_bw); +#else + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, CurrentCmd->Para1, bRFRegOffsetMask, priv->RfRegChnlVal[eRFPath]); +#endif + } else { + rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, CurrentCmd->Para1, bRFRegOffsetMask, (CurrentCmd->Para2)); + } + } + break; + default: + break; + } + + break; + }while(true); + + (*delay)=CurrentCmd->msDelay; + (*step)++; + RT_TRACE(COMP_CH, "<===========%s(), channel:%d, stage:%d, step:%d\n", __FUNCTION__, channel, *stage, *step); + return false; +} + +static bool +phy_SetSwChnlCmdArray( + SwChnlCmd* CmdTable, + u32 CmdTableIdx, + u32 CmdTableSz, + SwChnlCmdID CmdID, + u32 Para1, + u32 Para2, + u32 msDelay + ) +{ + SwChnlCmd* pCmd; + + if(CmdTable == NULL) + { + return false; + } + if(CmdTableIdx >= CmdTableSz) + { + return false; + } + + pCmd = CmdTable + CmdTableIdx; + pCmd->CmdID = CmdID; + pCmd->Para1 = Para1; + pCmd->Para2 = Para2; + pCmd->msDelay = msDelay; + + return true; +} + +static void +phy_FinishSwChnlNow( + struct net_device* dev, + u8 channel + ) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 delay; + + while(!phy_SwChnlStepByStep(dev,channel,&priv->SwChnlStage,&priv->SwChnlStep,&delay)) + { + if(delay>0) + mdelay(delay); + if(IS_NIC_DOWN(priv)) + break; + } +} + + +u8 rtl8192_phy_CheckIsLegalRFPath(struct net_device* dev, u32 eRFPath) +{ + bool rtValue = true; + +#if 0 + if (priv->rf_type == RF_1T2R && eRFPath != RF90_PATH_A) + { + rtValue = false; + } + if (priv->rf_type == RF_1T2R && eRFPath != RF90_PATH_A) + { + + } +#endif + return rtValue; + +} /* PHY_CheckIsLegalRfPath8192S */ + + + +void +PHY_IQCalibrate( struct net_device* dev) +{ + u32 i, reg; + u32 old_value; + long X, Y, TX0[4]; + u32 TXA[4]; + + + for (i = 0; i < 10; i++) + { + rtl8192_setBBreg(dev, 0xc04, bMaskDWord, 0x00a05430); + udelay(5); + rtl8192_setBBreg(dev, 0xc08, bMaskDWord, 0x000800e4); + udelay(5); + rtl8192_setBBreg(dev, 0xe28, bMaskDWord, 0x80800000); + udelay(5); + rtl8192_setBBreg(dev, 0xe40, bMaskDWord, 0x02140148); + udelay(5); + rtl8192_setBBreg(dev, 0xe44, bMaskDWord, 0x681604a2); + udelay(5); + rtl8192_setBBreg(dev, 0xe4c, bMaskDWord, 0x000028d1); + udelay(5); + rtl8192_setBBreg(dev, 0xe60, bMaskDWord, 0x0214014d); + udelay(5); + rtl8192_setBBreg(dev, 0xe64, bMaskDWord, 0x281608ba); + udelay(5); + rtl8192_setBBreg(dev, 0xe6c, bMaskDWord, 0x000028d1); + udelay(5); + rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xfb000001); + udelay(5); + rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xf8000001); + udelay(2000); + rtl8192_setBBreg(dev, 0xc04, bMaskDWord, 0x00a05433); + udelay(5); + rtl8192_setBBreg(dev, 0xc08, bMaskDWord, 0x000000e4); + udelay(5); + rtl8192_setBBreg(dev, 0xe28, bMaskDWord, 0x0); + + + reg = rtl8192_QueryBBReg(dev, 0xeac, bMaskDWord); + + if (!(reg&(BIT27|BIT28|BIT30|BIT31))) + { + old_value = (rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord) & 0x3FF); + + X = (rtl8192_QueryBBReg(dev, 0xe94, bMaskDWord) & 0x03FF0000)>>16; + TXA[RF90_PATH_A] = (X * old_value)/0x100; + reg = rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord); + reg = (reg & 0xFFFFFC00) | (u32)TXA[RF90_PATH_A]; + rtl8192_setBBreg(dev, 0xc80, bMaskDWord, reg); + udelay(5); + + Y = ( rtl8192_QueryBBReg(dev, 0xe9C, bMaskDWord) & 0x03FF0000)>>16; + TX0[RF90_PATH_C] = ((Y * old_value)/0x100); + reg = rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord); + reg = (reg & 0xffc0ffff) |((u32) (TX0[RF90_PATH_C]&0x3F)<<16); + rtl8192_setBBreg(dev, 0xc80, bMaskDWord, reg); + reg = rtl8192_QueryBBReg(dev, 0xc94, bMaskDWord); + reg = (reg & 0x0fffffff) |(((Y&0x3c0)>>6)<<28); + rtl8192_setBBreg(dev, 0xc94, bMaskDWord, reg); + udelay(5); + + reg = rtl8192_QueryBBReg(dev, 0xc14, bMaskDWord); + X = (rtl8192_QueryBBReg(dev, 0xea4, bMaskDWord) & 0x03FF0000)>>16; + reg = (reg & 0xFFFFFC00) |X; + rtl8192_setBBreg(dev, 0xc14, bMaskDWord, reg); + Y = (rtl8192_QueryBBReg(dev, 0xeac, bMaskDWord) & 0x003F0000)>>16; + reg = (reg & 0xFFFF03FF) |Y<<10; + rtl8192_setBBreg(dev, 0xc14, bMaskDWord, reg); + udelay(5); + old_value = (rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord) & 0x3FF); + + X = (rtl8192_QueryBBReg(dev, 0xeb4, bMaskDWord) & 0x03FF0000)>>16; + reg = rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord); + TXA[RF90_PATH_A] = (X * old_value) / 0x100; + reg = (reg & 0xFFFFFC00) | TXA[RF90_PATH_A]; + rtl8192_setBBreg(dev, 0xc88, bMaskDWord, reg); + udelay(5); + + Y = (rtl8192_QueryBBReg(dev, 0xebc, bMaskDWord)& 0x03FF0000)>>16; + TX0[RF90_PATH_C] = ((Y * old_value)/0x100); + reg = rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord); + reg = (reg & 0xffc0ffff) |( (TX0[RF90_PATH_C]&0x3F)<<16); + rtl8192_setBBreg(dev, 0xc88, bMaskDWord, reg); + reg = rtl8192_QueryBBReg(dev, 0xc9c, bMaskDWord); + reg = (reg & 0x0fffffff) |(((Y&0x3c0)>>6)<<28); + rtl8192_setBBreg(dev, 0xc9c, bMaskDWord, reg); + udelay(5); + + reg = rtl8192_QueryBBReg(dev, 0xc1c, bMaskDWord); + X = (rtl8192_QueryBBReg(dev, 0xec4, bMaskDWord) & 0x03FF0000)>>16; + reg = (reg & 0xFFFFFC00) |X; + rtl8192_setBBreg(dev, 0xc1c, bMaskDWord, reg); + + Y = (rtl8192_QueryBBReg(dev, 0xecc, bMaskDWord) & 0x003F0000)>>16; + reg = (reg & 0xFFFF03FF) |Y<<10; + rtl8192_setBBreg(dev, 0xc1c, bMaskDWord, reg); + udelay(5); + + RT_TRACE(COMP_INIT, "PHY_IQCalibrate OK\n"); + break; + } + + } + + + + +} + +extern void PHY_IQCalibrateBcut(struct net_device* dev) +{ + u32 i, reg; + u32 old_value; + long X, Y, TX0[4]; + u32 TXA[4]; + u32 calibrate_set[13] = {0}; + u32 load_value[13]; + u8 RfPiEnable=0; + + /* + 0xee0[31:0]=0x3fed92fb; + 0xedc[31:0] =0x3fed92fb; + 0xe70[31:0] =0x3fed92fb; + 0xe74[31:0] =0x3fed92fb; + 0xe78[31:0] =0x3fed92fb; + 0xe7c[31:0]= 0x3fed92fb; + 0xe80[31:0]= 0x3fed92fb; + 0xe84[31:0]= 0x3fed92fb; + 0xe88[31:0]= 0x3fed92fb; + 0xe8c[31:0]= 0x3fed92fb; + 0xed0[31:0]= 0x3fed92fb; + 0xed4[31:0]= 0x3fed92fb; + 0xed8[31:0]= 0x3fed92fb; + */ + calibrate_set [0] = 0xee0; + calibrate_set [1] = 0xedc; + calibrate_set [2] = 0xe70; + calibrate_set [3] = 0xe74; + calibrate_set [4] = 0xe78; + calibrate_set [5] = 0xe7c; + calibrate_set [6] = 0xe80; + calibrate_set [7] = 0xe84; + calibrate_set [8] = 0xe88; + calibrate_set [9] = 0xe8c; + calibrate_set [10] = 0xed0; + calibrate_set [11] = 0xed4; + calibrate_set [12] = 0xed8; + for (i = 0; i < 13; i++) + { + load_value[i] = rtl8192_QueryBBReg(dev, calibrate_set[i], bMaskDWord); + rtl8192_setBBreg(dev, calibrate_set[i], bMaskDWord, 0x3fed92fb); + + } + + RfPiEnable = (u8)rtl8192_QueryBBReg(dev, rFPGA0_XA_HSSIParameter1, BIT8); + for (i = 0; i < 10; i++) + { + RT_TRACE(COMP_INIT, "IQK -%d\n", i); + if (!RfPiEnable) + { + rtl8192_setBBreg(dev, 0x820, bMaskDWord, 0x01000100); + rtl8192_setBBreg(dev, 0x828, bMaskDWord, 0x01000100); + } + + rtl8192_setBBreg(dev, 0xc04, bMaskDWord, 0x00a05430); + udelay(5); + rtl8192_setBBreg(dev, 0xc08, bMaskDWord, 0x000800e4); + udelay(5); + rtl8192_setBBreg(dev, 0xe28, bMaskDWord, 0x80800000); + udelay(5); + rtl8192_setBBreg(dev, 0xe40, bMaskDWord, 0x02140102); + udelay(5); + rtl8192_setBBreg(dev, 0xe44, bMaskDWord, 0x681604c2); + udelay(5); + rtl8192_setBBreg(dev, 0xe4c, bMaskDWord, 0x000028d1); + udelay(5); + rtl8192_setBBreg(dev, 0xe60, bMaskDWord, 0x02140102); + udelay(5); + rtl8192_setBBreg(dev, 0xe64, bMaskDWord, 0x28160d05); + udelay(5); + rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xfb000000); + udelay(5); + rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xf8000000); + udelay(5); + + udelay(2000); + + rtl8192_setBBreg(dev, 0xe6c, bMaskDWord, 0x020028d1); + udelay(5); + rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xfb000000); + udelay(5); + rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xf8000000); + + udelay(2000); + + rtl8192_setBBreg(dev, 0xc04, bMaskDWord, 0x00a05433); + udelay(5); + rtl8192_setBBreg(dev, 0xc08, bMaskDWord, 0x000000e4); + udelay(5); + rtl8192_setBBreg(dev, 0xe28, bMaskDWord, 0x0); + + if (!RfPiEnable) + { + rtl8192_setBBreg(dev, 0x820, bMaskDWord, 0x01000000); + rtl8192_setBBreg(dev, 0x828, bMaskDWord, 0x01000000); + } + + + reg = rtl8192_QueryBBReg(dev, 0xeac, bMaskDWord); + + if (!(reg&(BIT27|BIT28|BIT30|BIT31))) + { + old_value = (rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord) & 0x3FF); + + X = (rtl8192_QueryBBReg(dev, 0xe94, bMaskDWord) & 0x03FF0000)>>16; + TXA[RF90_PATH_A] = (X * old_value)/0x100; + reg = rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord); + reg = (reg & 0xFFFFFC00) | (u32)TXA[RF90_PATH_A]; + rtl8192_setBBreg(dev, 0xc80, bMaskDWord, reg); + udelay(5); + + Y = ( rtl8192_QueryBBReg(dev, 0xe9C, bMaskDWord) & 0x03FF0000)>>16; + TX0[RF90_PATH_C] = ((Y * old_value)/0x100); + reg = rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord); + reg = (reg & 0xffc0ffff) |((u32) (TX0[RF90_PATH_C]&0x3F)<<16); + rtl8192_setBBreg(dev, 0xc80, bMaskDWord, reg); + reg = rtl8192_QueryBBReg(dev, 0xc94, bMaskDWord); + reg = (reg & 0x0fffffff) |(((Y&0x3c0)>>6)<<28); + rtl8192_setBBreg(dev, 0xc94, bMaskDWord, reg); + udelay(5); + + reg = rtl8192_QueryBBReg(dev, 0xc14, bMaskDWord); + X = (rtl8192_QueryBBReg(dev, 0xea4, bMaskDWord) & 0x03FF0000)>>16; + reg = (reg & 0xFFFFFC00) |X; + rtl8192_setBBreg(dev, 0xc14, bMaskDWord, reg); + Y = (rtl8192_QueryBBReg(dev, 0xeac, bMaskDWord) & 0x003F0000)>>16; + reg = (reg & 0xFFFF03FF) |Y<<10; + rtl8192_setBBreg(dev, 0xc14, bMaskDWord, reg); + udelay(5); + old_value = (rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord) & 0x3FF); + + X = (rtl8192_QueryBBReg(dev, 0xeb4, bMaskDWord) & 0x03FF0000)>>16; + reg = rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord); + TXA[RF90_PATH_A] = (X * old_value) / 0x100; + reg = (reg & 0xFFFFFC00) | TXA[RF90_PATH_A]; + rtl8192_setBBreg(dev, 0xc88, bMaskDWord, reg); + udelay(5); + + Y = (rtl8192_QueryBBReg(dev, 0xebc, bMaskDWord)& 0x03FF0000)>>16; + TX0[RF90_PATH_C] = ((Y * old_value)/0x100); + reg = rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord); + reg = (reg & 0xffc0ffff) |( (TX0[RF90_PATH_C]&0x3F)<<16); + rtl8192_setBBreg(dev, 0xc88, bMaskDWord, reg); + reg = rtl8192_QueryBBReg(dev, 0xc9c, bMaskDWord); + reg = (reg & 0x0fffffff) |(((Y&0x3c0)>>6)<<28); + rtl8192_setBBreg(dev, 0xc9c, bMaskDWord, reg); + udelay(5); + + reg = rtl8192_QueryBBReg(dev, 0xc1c, bMaskDWord); + X = (rtl8192_QueryBBReg(dev, 0xec4, bMaskDWord) & 0x03FF0000)>>16; + reg = (reg & 0xFFFFFC00) |X; + rtl8192_setBBreg(dev, 0xc1c, bMaskDWord, reg); + + Y = (rtl8192_QueryBBReg(dev, 0xecc, bMaskDWord) & 0x003F0000)>>16; + reg = (reg & 0xFFFF03FF) |Y<<10; + rtl8192_setBBreg(dev, 0xc1c, bMaskDWord, reg); + udelay(5); + + RT_TRACE(COMP_INIT, "PHY_IQCalibrate OK\n"); + break; + } + + } + + for (i = 0; i < 13; i++) + rtl8192_setBBreg(dev, calibrate_set[i], bMaskDWord, load_value[i]); + + + + + +} + +#define HalGetFirmwareVerison(priv) (priv->pFirmware->FirmwareVersion ) +bool rtl8192se_set_fw_cmd(struct net_device* dev, FW_CMD_IO_TYPE FwCmdIO) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 FwParam = FW_CMD_IO_PARA_QUERY(priv); + u16 FwCmdMap = FW_CMD_IO_QUERY(priv); + bool bPostProcessing = false; + + RT_TRACE(COMP_CMD, "-->HalSetFwCmd8192S(): Set FW Cmd(%#x), SetFwCmdInProgress(%d)\n", FwCmdIO, priv->SetFwCmdInProgress); + + + + + + RT_TRACE(COMP_CMD, "-->HalSetFwCmd8192S(): Set FW Cmd(%#x), SetFwCmdInProgress(%d)\n", + FwCmdIO, priv->SetFwCmdInProgress); + + do{ + + if(HalGetFirmwareVerison(priv) >= 0x35) + { + switch(FwCmdIO) + { + case FW_CMD_RA_REFRESH_N: + FwCmdIO = FW_CMD_RA_REFRESH_N_COMB; + break; + case FW_CMD_RA_REFRESH_BG: + FwCmdIO = FW_CMD_RA_REFRESH_BG_COMB; + break; + default: + break; + } + } + else + { + if((FwCmdIO == FW_CMD_IQK_ENABLE) || + (FwCmdIO == FW_CMD_RA_REFRESH_N) || + (FwCmdIO == FW_CMD_RA_REFRESH_BG)) + { + bPostProcessing = true; + break; + } + } + + if(HalGetFirmwareVerison(priv) >= 0x3E) + { + if(FwCmdIO == FW_CMD_CTRL_DM_BY_DRIVER) + FwCmdIO = FW_CMD_CTRL_DM_BY_DRIVER_NEW; + } + + + switch(FwCmdIO) + { + + case FW_CMD_RA_INIT: + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] RA init!!\n"); + FwCmdMap |= FW_RA_INIT_CTL; + FW_CMD_IO_SET(priv, FwCmdMap); + FW_CMD_IO_CLR(priv, FW_RA_INIT_CTL); + break; + + case FW_CMD_DIG_DISABLE: + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set DIG disable!!\n"); + FwCmdMap &= ~FW_DIG_ENABLE_CTL; + FW_CMD_IO_SET(priv, FwCmdMap); + break; + + case FW_CMD_DIG_ENABLE: + case FW_CMD_DIG_RESUME: + if(!(priv->DMFlag & HAL_DM_DIG_DISABLE)) + { + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set DIG enable or resume!!\n"); + FwCmdMap |= (FW_DIG_ENABLE_CTL|FW_SS_CTL); + FW_CMD_IO_SET(priv, FwCmdMap); + } + break; + + case FW_CMD_DIG_HALT: + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set DIG halt!!\n"); + FwCmdMap &= ~(FW_DIG_ENABLE_CTL|FW_SS_CTL); + FW_CMD_IO_SET(priv, FwCmdMap); + break; + + case FW_CMD_TXPWR_TRACK_THERMAL: + { + u8 ThermalVal = 0; + FwCmdMap |= FW_PWR_TRK_CTL; + FwParam &= FW_PWR_TRK_PARAM_CLR; + ThermalVal = priv->ThermalValue; + FwParam |= ((ThermalVal<<24) |(priv->ThermalMeter[0]<<16)); + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set TxPwr tracking!! FwCmdMap(%#x), FwParam(%#x)\n", FwCmdMap, FwParam); + FW_CMD_PARA_SET(priv, FwParam); + FW_CMD_IO_SET(priv, FwCmdMap); + FW_CMD_IO_CLR(priv, FW_PWR_TRK_CTL); + } + break; + + case FW_CMD_RA_REFRESH_N_COMB: + FwCmdMap |= FW_RA_N_CTL; + FwCmdMap &= ~(FW_RA_BG_CTL |FW_RA_INIT_CTL); + FwParam &= FW_RA_PARAM_CLR; + if(!(priv->rtllib->pHTInfo->IOTRaFunc & HT_IOT_RAFUNC_DISABLE_ALL)) + FwParam |= ((priv->rtllib->pHTInfo->IOTRaFunc)&0xf); + FwParam |= ((priv->rtllib->pHTInfo->IOTPeer & 0xf) <<4); + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set RA/IOT Comb in n mode!! FwCmdMap(%#x), FwParam(%#x)\n", FwCmdMap, FwParam); + FW_CMD_PARA_SET(priv, FwParam); + FW_CMD_IO_SET(priv, FwCmdMap); + FW_CMD_IO_CLR(priv, FW_RA_N_CTL); + break; + + case FW_CMD_RA_REFRESH_BG_COMB: + FwCmdMap |= FW_RA_BG_CTL; + FwCmdMap &= ~(FW_RA_N_CTL|FW_RA_INIT_CTL); + FwParam &= FW_RA_PARAM_CLR; + if(!(priv->rtllib->pHTInfo->IOTRaFunc & HT_IOT_RAFUNC_DISABLE_ALL)) + FwParam |= ((priv->rtllib->pHTInfo->IOTRaFunc)&0xf); + FwParam |= ((priv->rtllib->pHTInfo->IOTPeer & 0xf) <<4); + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set RA/IOT Comb in BG mode!! FwCmdMap(%#x), FwParam(%#x)\n", FwCmdMap, FwParam); + FW_CMD_PARA_SET(priv, FwParam); + FW_CMD_IO_SET(priv, FwCmdMap); + FW_CMD_IO_CLR(priv, FW_RA_BG_CTL); + break; + + case FW_CMD_IQK_ENABLE: + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] IQK enable.\n"); + FwCmdMap |= FW_IQK_CTL; + FW_CMD_IO_SET(priv, FwCmdMap); + FW_CMD_IO_CLR(priv, FW_IQK_CTL); + break; + + case FW_CMD_CTRL_DM_BY_DRIVER_NEW: + RT_TRACE(COMP_CMD, "[FW CMD][New Version] Inform FW driver control some DM!! FwCmdMap(%#x), FwParam(%#x)\n", FwCmdMap, FwParam); + FwCmdMap |= FW_DRIVER_CTRL_DM_CTL; + FW_CMD_IO_SET(priv, FwCmdMap); + break; + + case FW_CMD_RESUME_DM_BY_SCAN: + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Resume DM after scan.\n"); + FwCmdMap |= (FW_DIG_ENABLE_CTL|FW_HIGH_PWR_ENABLE_CTL|FW_SS_CTL); + + if(priv->DMFlag & HAL_DM_DIG_DISABLE || !dm_digtable.dig_enable_flag) + FwCmdMap &= ~FW_DIG_ENABLE_CTL; + + if((priv->DMFlag & HAL_DM_HIPWR_DISABLE) || + (priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_HIGH_POWER) || + (priv->rtllib->bdynamic_txpower_enable == true)) + FwCmdMap &= ~FW_HIGH_PWR_ENABLE_CTL; + + if( (dm_digtable.Dig_Ext_Port_Stage == DIG_EXT_PORT_STAGE_0) || + (dm_digtable.Dig_Ext_Port_Stage == DIG_EXT_PORT_STAGE_1)) + FwCmdMap &= ~FW_DIG_ENABLE_CTL; + + FW_CMD_IO_SET(priv, FwCmdMap); + bPostProcessing = true; + break; + + case FW_CMD_PAUSE_DM_BY_SCAN: + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Pause DM before scan.\n"); + FwCmdMap &= ~(FW_DIG_ENABLE_CTL|FW_HIGH_PWR_ENABLE_CTL|FW_SS_CTL); + FW_CMD_IO_SET(priv, FwCmdMap); + bPostProcessing = true; + break; + + case FW_CMD_HIGH_PWR_DISABLE: + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set HighPwr disable!!\n"); + FwCmdMap &= ~FW_HIGH_PWR_ENABLE_CTL; + FW_CMD_IO_SET(priv, FwCmdMap); + bPostProcessing = true; + break; + + case FW_CMD_HIGH_PWR_ENABLE: + if(((priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_HIGH_POWER)==0) && + !(priv->DMFlag & HAL_DM_HIPWR_DISABLE) && + (priv->rtllib->bdynamic_txpower_enable != true)) + { + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set HighPwr enable!!\n"); + FwCmdMap |= (FW_HIGH_PWR_ENABLE_CTL|FW_SS_CTL); + FW_CMD_IO_SET(priv, FwCmdMap); + bPostProcessing = true; + } + break; + + case FW_CMD_DIG_MODE_FA: + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set DIG Mode to FA.\n"); + FwCmdMap |= FW_FA_CTL; + FW_CMD_IO_SET(priv, FwCmdMap); + break; + + case FW_CMD_DIG_MODE_SS: + RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set DIG Mode to SS.\n"); + FwCmdMap &= ~FW_FA_CTL; + FW_CMD_IO_SET(priv, FwCmdMap); + break; + + case FW_CMD_PAPE_CONTROL: + RT_TRACE(COMP_CMD, "[FW CMD] Set PAPE Control \n"); +#ifdef MERGE_TO_DO + if(pHalData->bt_coexist.BT_PapeCtrl) + { + RTPRINT(FBT, BT_TRACE, ("BT set PAPE Control to SW/HW dynamically. \n")); + FwCmdMap |= FW_PAPE_CTL_BY_SW_HW; + } + else +#endif + { + printk("BT set PAPE Control to SW\n"); + FwCmdMap &= ~FW_PAPE_CTL_BY_SW_HW; + } + FW_CMD_IO_SET(priv, FwCmdMap); + break; + + default: + bPostProcessing = true; + break; + } + }while(false); + + RT_TRACE(COMP_CMD, "[FW CMD] Current FwCmdMap(%#x)\n", priv->FwCmdIOMap); + RT_TRACE(COMP_CMD, "[FW CMD] Current FwCmdIOParam(%#x)\n", priv->FwCmdIOParam); + + if(bPostProcessing && !priv->SetFwCmdInProgress) + { + priv->SetFwCmdInProgress = true; + priv->CurrentFwCmdIO = FwCmdIO; + } + else + { + return false; + } + +#if 0 +#ifdef USE_WORKITEM + PlatformScheduleWorkItem(&(pHalData->FwCmdIOWorkItem)); +#else + PlatformSetTimer(Adapter, &(pHalData->SetFwCmdIOTimer), 0); +#endif +#endif + rtl8192_SetFwCmdIOCallback(dev); + return true; +} +void ChkFwCmdIoDone(struct net_device* dev) +{ + u16 PollingCnt = 10000; + u32 tmpValue; + + do + { + + udelay(10); + + tmpValue = read_nic_dword(dev, WFM5); + if(tmpValue == 0) + { + RT_TRACE(COMP_CMD, "[FW CMD] Set FW Cmd success!!\n"); + break; + } + else + { + RT_TRACE(COMP_CMD, "[FW CMD] Polling FW Cmd PollingCnt(%d)!!\n", PollingCnt); + } + }while( --PollingCnt ); + + if(PollingCnt == 0) + { + RT_TRACE(COMP_ERR, "[FW CMD] Set FW Cmd fail!!\n"); + } +} +void rtl8192_SetFwCmdIOCallback(struct net_device* dev) +{ + struct r8192_priv *priv = rtllib_priv(dev); + u32 input,CurrentAID = 0; + + if(IS_NIC_DOWN(priv)){ + RT_TRACE(COMP_CMD, "SetFwCmdIOTimerCallback(): driver is going to unload\n"); + return; + } + + RT_TRACE(COMP_CMD, "--->SetFwCmdIOTimerCallback(): Cmd(%#x), SetFwCmdInProgress(%d)\n", priv->CurrentFwCmdIO, priv->SetFwCmdInProgress); + + if(HalGetFirmwareVerison(priv) >= 0x34) + { + switch(priv->CurrentFwCmdIO) + { + case FW_CMD_RA_REFRESH_N: + priv->CurrentFwCmdIO = FW_CMD_RA_REFRESH_N_COMB; + break; + case FW_CMD_RA_REFRESH_BG: + priv->CurrentFwCmdIO = FW_CMD_RA_REFRESH_BG_COMB; + break; + default: + break; + } + } + + switch(priv->CurrentFwCmdIO) + { + + case FW_CMD_RA_RESET: + RT_TRACE(COMP_CMD, "[FW CMD] Set RA Reset!!\n"); + write_nic_dword(dev, WFM5, FW_RA_RESET); + ChkFwCmdIoDone(dev); + break; + + case FW_CMD_RA_ACTIVE: + RT_TRACE(COMP_CMD, "[FW CMD] Set RA Active!!\n"); + write_nic_dword(dev, WFM5, FW_RA_ACTIVE); + ChkFwCmdIoDone(dev); + break; + + case FW_CMD_RA_REFRESH_N: + RT_TRACE(COMP_CMD, "[FW CMD] Set RA n refresh!!\n"); + if(priv->rtllib->pHTInfo->IOTRaFunc & HT_IOT_RAFUNC_DISABLE_ALL) + input = FW_RA_REFRESH; + else + input = FW_RA_REFRESH | (priv->rtllib->pHTInfo->IOTRaFunc << 8); + write_nic_dword(dev, WFM5, input); + ChkFwCmdIoDone(dev); + write_nic_dword(dev, WFM5, FW_RA_ENABLE_RSSI_MASK); + ChkFwCmdIoDone(dev); + break; + + case FW_CMD_RA_REFRESH_BG: + RT_TRACE(COMP_CMD, "[FW CMD] Set RA BG refresh!!\n"); + write_nic_dword(dev, WFM5, FW_RA_REFRESH); + ChkFwCmdIoDone(dev); + write_nic_dword(dev, WFM5, FW_RA_DISABLE_RSSI_MASK); + ChkFwCmdIoDone(dev); + break; + + case FW_CMD_RA_REFRESH_N_COMB: + RT_TRACE(COMP_CMD, "[FW CMD] Set RA n Combo refresh!!\n"); + if(priv->rtllib->pHTInfo->IOTRaFunc & HT_IOT_RAFUNC_DISABLE_ALL) + input = FW_RA_IOT_N_COMB; + else + input = FW_RA_IOT_N_COMB | (((priv->rtllib->pHTInfo->IOTRaFunc)&0x0f) << 8); + input = input |((priv->rtllib->pHTInfo->IOTPeer & 0xf) <<12); + RT_TRACE(COMP_CMD, "[FW CMD] Set RA/IOT Comb in n mode!! input(%#x)\n", input); + write_nic_dword(dev, WFM5, input); + ChkFwCmdIoDone(dev); + break; + + case FW_CMD_RA_REFRESH_BG_COMB: + RT_TRACE(COMP_CMD, "[FW CMD] Set RA B/G Combo refresh!!\n"); + if(priv->rtllib->pHTInfo->IOTRaFunc & HT_IOT_RAFUNC_DISABLE_ALL) + input = FW_RA_IOT_BG_COMB; + else + input = FW_RA_IOT_BG_COMB | (((priv->rtllib->pHTInfo->IOTRaFunc)&0x0f) << 8); + input = input |((priv->rtllib->pHTInfo->IOTPeer & 0xf) <<12); + RT_TRACE(COMP_CMD, "[FW CMD] Set RA/IOT Comb in B/G mode!! input(%#x)\n", input); + write_nic_dword(dev, WFM5, input); + ChkFwCmdIoDone(dev); + break; + + case FW_CMD_IQK_ENABLE: + RT_TRACE(COMP_CMD, "[FW CMD] IQK Enable!!\n"); + write_nic_dword(dev, WFM5, FW_IQK_ENABLE); + ChkFwCmdIoDone(dev); + break; + + case FW_CMD_PAUSE_DM_BY_SCAN: + RT_TRACE(COMP_CMD, "[FW CMD] Pause DM by Scan!!\n"); + rtl8192_setBBreg(dev, rOFDM0_XAAGCCore1, bMaskByte0, 0x17); + rtl8192_setBBreg(dev, rOFDM0_XBAGCCore1, bMaskByte0, 0x17); + rtl8192_setBBreg(dev, rCCK0_CCA, bMaskByte2, 0x40); + break; + + case FW_CMD_RESUME_DM_BY_SCAN: + RT_TRACE(COMP_CMD, "[FW CMD] Resume DM by Scan!!\n"); + rtl8192_setBBreg(dev, rCCK0_CCA, bMaskByte2, 0xcd); + rtl8192_phy_setTxPower(dev, priv->rtllib->current_network.channel); + break; + + case FW_CMD_HIGH_PWR_DISABLE: + RT_TRACE(COMP_CMD, "[FW CMD] High Pwr Disable!!\n"); + if(priv->DMFlag & HAL_DM_HIPWR_DISABLE) + break; + rtl8192_setBBreg(dev, rOFDM0_XAAGCCore1, bMaskByte0, 0x17); + rtl8192_setBBreg(dev, rOFDM0_XBAGCCore1, bMaskByte0, 0x17); + rtl8192_setBBreg(dev, rCCK0_CCA, bMaskByte2, 0x40); + break; + + case FW_CMD_HIGH_PWR_ENABLE: + RT_TRACE(COMP_CMD, "[FW CMD] High Pwr Enable!!\n"); + if((priv->DMFlag & HAL_DM_HIPWR_DISABLE) || + (priv->rtllib->bdynamic_txpower_enable == true)) + break; + rtl8192_setBBreg(dev, rCCK0_CCA, bMaskByte2, 0xcd); + break; + + case FW_CMD_LPS_ENTER: + RT_TRACE(COMP_CMD, "[FW CMD] Enter LPS mode!!\n"); + CurrentAID = priv->rtllib->assoc_id; + write_nic_dword(dev, WFM5, (FW_LPS_ENTER| ((CurrentAID|0xc000)<<8)) ); + ChkFwCmdIoDone(dev); + priv->rtllib->pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_EDCA_TURBO; + break; + + case FW_CMD_LPS_LEAVE: + RT_TRACE(COMP_CMD, "[FW CMD] Leave LPS mode!!\n"); + write_nic_dword(dev, WFM5, FW_LPS_LEAVE ); + ChkFwCmdIoDone(dev); + priv->rtllib->pHTInfo->IOTAction &= (~HT_IOT_ACT_DISABLE_EDCA_TURBO); + break; + + case FW_CMD_ADD_A2_ENTRY: + RT_TRACE(COMP_CMD, "[FW CMD] ADD A2 entry!!\n"); + write_nic_dword(dev, WFM5, FW_ADD_A2_ENTRY); + ChkFwCmdIoDone(dev); + break; + + case FW_CMD_CTRL_DM_BY_DRIVER: + RT_TRACE(COMP_CMD, "[FW CMD] Inform fw driver will do some dm at driver\n"); + write_nic_dword(dev, WFM5, FW_CTRL_DM_BY_DRIVER); + ChkFwCmdIoDone(dev); + break; +#ifdef CONFIG_FW_SETCHAN + case FW_CMD_CHAN_SET: + input = FW_CHAN_SET | (((priv->chan)&0xff) << 8); + RT_TRACE(COMP_CMD, "[FW CMD] Inform fw to set channel to %x!!, input(%#x):\n", priv->chan,input); + write_nic_dword(dev, WFM5, input); + ChkFwCmdIoDone(dev); + break; +#endif + + default: + break; + } + + + ChkFwCmdIoDone(dev); + + + priv->SetFwCmdInProgress = false; + RT_TRACE(COMP_CMD, "<---SetFwCmdIOWorkItemCallback()\n"); +} + +static void +phy_CheckEphySwitchReady(struct net_device* dev) +{ + u32 delay = 100; + u8 regu1; + + regu1 = read_nic_byte(dev, 0x554); + while ((regu1 & BIT5) && (delay > 0)) + { + regu1 = read_nic_byte(dev, 0x554); + delay--; + udelay(50); + } + RT_TRACE(COMP_INIT, "regu1=%02x delay = %d\n", regu1, delay); + +} + +#ifdef TO_DO_LIST +void +HW_RadioGpioChk92SE( + IN PADAPTER pAdapter + ) +{ + PMGNT_INFO pMgntInfo = &(pAdapter->MgntInfo); + u1Byte u1Tmp = 0; + HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter); + RT_RF_POWER_STATE eRfPowerStateToSet; + BOOLEAN bActuallySet = false; + +#if 0 + if (!RT_IN_PS_LEVEL(pAdapter, RT_RF_OFF_LEVL_PCI_D3) && + pMgntInfo->RfOffReason != RF_CHANGE_BY_HW) + { + return; + } + + PlatformSwitchClkReq(pAdapter, 0x00); + + if (RT_IN_PS_LEVEL(pAdapter, RT_RF_OFF_LEVL_PCI_D3)) + { + RT_LEAVE_D3(pAdapter, false); + RT_CLEAR_PS_LEVEL(pAdapter, RT_RF_OFF_LEVL_PCI_D3); + Power_DomainInit92SE(pAdapter); + } + + PlatformEFIOWrite1Byte(pAdapter, MAC_PINMUX_CFG, (GPIOMUX_EN | GPIOSEL_GPIO)); + + u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IO_SEL); + u1Tmp &= HAL_8192S_HW_GPIO_OFF_MASK; + PlatformEFIOWrite1Byte(pAdapter, GPIO_IO_SEL, u1Tmp); + + RT_TRACE(COMP_CMD, DBG_LOUD, + ("HW_RadioGpioChk92SE HW_RadioGpioChk92SE=%02x\n", HW_RadioGpioChk92SE)); + + u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IN); + + eRfPowerStateToSet = (u1Tmp & HAL_8192S_HW_GPIO_OFF_BIT) ? eRfOn : eRfOff; + + if( (pHalData->bHwRadioOff == true) && (eRfPowerStateToSet == eRfOn)) + { + RT_TRACE(COMP_RF, DBG_LOUD, ("HW_RadioGpioChk92SE - HW Radio ON\n")); + pHalData->bHwRadioOff = false; + bActuallySet = true; + } + else if ( (pHalData->bHwRadioOff == false) && (eRfPowerStateToSet == eRfOff)) + { + RT_TRACE(COMP_RF, DBG_LOUD, ("HW_RadioGpioChk92SE - HW Radio OFF\n")); + pHalData->bHwRadioOff = true; + bActuallySet = true; + } + + if(bActuallySet) + { + pHalData->bHwRfOffAction = 1; + MgntActSet_RF_State(pAdapter, eRfPowerStateToSet, RF_CHANGE_BY_HW); + DrvIFIndicateCurrentPhyStatus(pAdapter); + + + { + PMP_ADAPTER pDevice = &(pAdapter->NdisAdapter); + if(pDevice->RegHwSwRfOffD3 == 1 || pDevice->RegHwSwRfOffD3 == 2) + (eRfPowerStateToSet == eRfOff) ? RT_ENABLE_ASPM(pAdapter) : RT_DISABLE_ASPM(pAdapter); + } + } + RT_TRACE(COMP_RF, DBG_TRACE, ("HW_RadioGpioChk92SE() <--------- \n")); +#endif +}/* HW_RadioGpioChk92SE */ +#endif +#endif --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/Makefile +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/Makefile @@ -0,0 +1,10 @@ +.PHONY:clean +clean: + rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~ + rm -fr .tmp_versions + rm -fr Modules.symvers + rm -fr Module.symvers + rm -fr Module.markers + rm -fr modules.order + rm -fr tags + --- linux-2.6.35.orig/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.h +++ linux-2.6.35/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.h @@ -0,0 +1,116 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ + + +/*--------------------------Define Parameters-------------------------------*/ + +#define RF6052_MAX_TX_PWR 0x3F +#define RF6052_MAX_REG 0x3F +#define RF6052_MAX_PATH 4 +/*--------------------------Define Parameters-------------------------------*/ + + +/*------------------------------Define structure----------------------------*/ + +/*------------------------------Define structure----------------------------*/ + + +/*------------------------Export global variable----------------------------*/ +/*------------------------Export global variable----------------------------*/ + +/*------------------------Export Marco Definition---------------------------*/ + +/*------------------------Export Marco Definition---------------------------*/ + + +/*--------------------------Exported Function prototype---------------------*/ +#if 1 +extern void PHY_SetRF0222DBandwidth(struct net_device* dev , HT_CHANNEL_WIDTH Bandwidth); +extern void PHY_SetRF8225Bandwidth( struct net_device* dev , HT_CHANNEL_WIDTH Bandwidth); +extern bool PHY_RF8225_Config(struct net_device* dev ); +extern void phy_RF8225_Config_HardCode(struct net_device* dev); +extern bool phy_RF8225_Config_ParaFile(struct net_device* dev); +extern void PHY_SetRF8225CckTxPower(struct net_device* dev ,u8 powerlevel); +extern void PHY_SetRF8225OfdmTxPower(struct net_device* dev ,u8 powerlevel); +extern void PHY_SetRF0222DOfdmTxPower(struct net_device* dev ,u8 powerlevel); +extern void PHY_SetRF0222DCckTxPower(struct net_device* dev ,u8 powerlevel); + +extern void PHY_SetRF8256Bandwidth(struct net_device* dev , HT_CHANNEL_WIDTH Bandwidth); +extern void PHY_RF8256_Config(struct net_device* dev); +extern void phy_RF8256_Config_ParaFile(struct net_device* dev); +extern void PHY_SetRF8256CCKTxPower(struct net_device* dev, u8 powerlevel); +extern void PHY_SetRF8256OFDMTxPower(struct net_device* dev, u8 powerlevel); +#endif + +extern void RF_ChangeTxPath(struct net_device * dev, u16 DataRate); +extern void PHY_RF6052SetBandwidth(struct net_device * dev,HT_CHANNEL_WIDTH Bandwidth); +extern void PHY_RF6052SetCckTxPower(struct net_device * dev, u8 powerlevel); +extern void PHY_RF6052SetOFDMTxPower(struct net_device * dev, u8* pPowerLevel, u8 Channel); +extern bool PHY_RF6052_Config(struct net_device * dev); +extern void PHY_RFShadowRefresh( struct net_device * dev); +extern void PHY_RFShadowWrite( struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 Offset, u32 Data); + +extern bool +PHY_RFShadowCompare( + struct net_device * dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset); +extern void +PHY_RFShadowRecorver( + struct net_device * dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset); +extern void +PHY_RFShadowCompareFlagSet( + struct net_device * dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset, + u8 Type); +extern void +PHY_RFShadowRecorverFlagSet( + struct net_device * dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset, + u8 Type); +#if 0 +extern u32 +PHY_RFShadowRead( + struct net_device * dev, + RF90_RADIO_PATH_E eRFPath, + u32 Offset); +extern void +PHY_RFShadowCompareAll( + struct net_device * dev); +extern void +PHY_RFShadowRecorverAll( + struct net_device * dev); +extern void +PHY_RFShadowCompareFlagSetAll( + struct net_device * dev); +extern void +PHY_RFShadowRecorverFlagSetAll( + struct net_device * dev); +extern void +PHY_RFShadowRefresh( + struct net_device * dev); +#endif +/*--------------------------Exported Function prototype---------------------*/ + + +/* End of HalRf.h */ --- linux-2.6.35.orig/ubuntu/omnibook/kbc.c +++ linux-2.6.35/ubuntu/omnibook/kbc.c @@ -0,0 +1,152 @@ +/* + * kbc.c -- low level functions to access Keyboard Controller + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include +#include +#include +#include + +#include +#include "hardware.h" + +extern int omnibook_key_polling_enable(void); +extern int omnibook_key_polling_disable(void); + +/* + * Registers of the keyboard controller + */ + +#define OMNIBOOK_KBC_DATA 0x60 +#define OMNIBOOK_KBC_SC 0x64 + +/* + * Keyboard controller status register bits + */ + +#define OMNIBOOK_KBC_STAT_OBF 0x01 /* Output buffer full */ +#define OMNIBOOK_KBC_STAT_IBF 0x02 /* Input buffer full */ + + +/* + * Interrupt control + */ + +static DEFINE_SPINLOCK(omnibook_kbc_lock); + +/* + * Wait for keyboard buffer + */ + +static int omnibook_kbc_wait(u8 event) +{ + int timeout = OMNIBOOK_TIMEOUT; + + switch (event) { + case OMNIBOOK_KBC_STAT_OBF: + while (!(inb(OMNIBOOK_KBC_SC) & event) && timeout--) + mdelay(1); + break; + case OMNIBOOK_KBC_STAT_IBF: + while ((inb(OMNIBOOK_KBC_SC) & event) && timeout--) + mdelay(1); + break; + default: + return -EINVAL; + } + if (timeout > 0) + return 0; + return -ETIME; +} + +/* + * Write to the keyboard command register + */ + +static int omnibook_kbc_write_command(u8 cmd) +{ + int retval; + + spin_lock_irq(&omnibook_kbc_lock); + retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF); + if (retval) + goto end; + outb(cmd, OMNIBOOK_KBC_SC); + retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF); + end: + spin_unlock_irq(&omnibook_kbc_lock); + return retval; +} + +/* + * Write to the keyboard data register + */ + +static int omnibook_kbc_write_data(u8 data) +{ + int retval; + + spin_lock_irq(&omnibook_kbc_lock); + retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF); + if (retval) + goto end; + outb(data, OMNIBOOK_KBC_DATA); + retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF); + end: + spin_unlock_irq(&omnibook_kbc_lock); + return retval; +} + +/* + * Send a command to keyboard controller + */ + +static int omnibook_kbc_command(const struct omnibook_operation *io_op, u8 data) +{ + int retval; + + if ((retval = omnibook_kbc_write_command(OMNIBOOK_KBC_CONTROL_CMD))) + return retval; + + retval = omnibook_kbc_write_data(data); + return retval; +} + +/* + * Onetouch button hotkey handler + */ +static int omnibook_kbc_hotkeys(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval; + + retval = __omnibook_toggle(io_op, !!(state & HKEY_ONETOUCH)); + return retval; +} + +/* + * Backend interface declarations + */ +struct omnibook_backend kbc_backend = { + .name = "i8042", + .hotkeys_write_cap = HKEY_ONETOUCH, + .byte_write = omnibook_kbc_command, + .hotkeys_set = omnibook_kbc_hotkeys, +}; + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/blank.c +++ linux-2.6.35/ubuntu/omnibook/blank.c @@ -0,0 +1,138 @@ +/* + * blank.c -- blanking lcd console + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include "hardware.h" + +static struct omnibook_feature blank_driver; + +/* + * console_blank_hook pointer manipulation is lock protected + */ +extern int (*console_blank_hook) (int); +static DEFINE_SPINLOCK(blank_spinlock); + + +int omnibook_lcd_blank(int blank) +{ + struct omnibook_feature *blank_feature = omnibook_find_feature("blank"); + + if(!blank_feature) + return -ENODEV; + + return omnibook_apply_write_mask(blank_feature->io_op, blank); +} + +static int console_blank_register_hook(void) +{ + spin_lock(&blank_spinlock); + if (console_blank_hook != omnibook_lcd_blank) { + if (console_blank_hook == NULL) { + console_blank_hook = omnibook_lcd_blank; + printk(O_INFO "LCD backlight turn off at console blanking is enabled.\n"); + } else + printk(O_INFO "There is a console blanking solution already registered.\n"); + } + spin_unlock(&blank_spinlock); + return 0; +} + +static int console_blank_unregister_hook(void) +{ + int retval; + spin_lock(&blank_spinlock); + if (console_blank_hook == omnibook_lcd_blank) { + console_blank_hook = NULL; + printk(O_INFO "LCD backlight turn off at console blanking is disabled.\n"); + } else if (console_blank_hook) { + printk(O_WARN "You can not disable another console blanking solution.\n"); + retval = -EBUSY; + } else { + printk(O_INFO "Console blanking already disabled.\n"); + } + spin_unlock(&blank_spinlock); + return retval; +} + +static int omnibook_console_blank_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + spin_lock(&blank_spinlock); + + len += + sprintf(buffer + len, "LCD console blanking hook is %s\n", + (console_blank_hook == omnibook_lcd_blank) ? "enabled" : "disabled"); + + spin_unlock(&blank_spinlock); + + return len; +} + +static int omnibook_console_blank_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + + switch (*buffer) { + case '0': + retval = console_blank_unregister_hook(); + break; + case '1': + retval = console_blank_register_hook(); + break; + default: + retval = -EINVAL; + } + return retval; +} + +static int __init omnibook_console_blank_init(struct omnibook_operation *io_op) +{ + return console_blank_register_hook(); +} + +static void __exit omnibook_console_blank_cleanup(struct omnibook_operation *io_op) +{ + console_blank_unregister_hook(); +} + +static struct omnibook_tbl blank_table[] __initdata = { + {TSM70 | TSX205, {CDI, 0, TSM100_BLANK_INDEX, 0, TSM100_LCD_OFF, TSM100_LCD_ON}}, + {XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X, + COMMAND(KBC, OMNIBOOK_KBC_CMD_LCD_OFF, OMNIBOOK_KBC_CMD_LCD_ON)}, + {OB500 | OB6000 | XE2, {PIO, OB500_GPO1, OB500_GPO1, 0, -OB500_BKLT_MASK, OB500_BKLT_MASK}}, + {OB510 | OB6100, {PIO, OB510_GPO2, OB510_GPO2, 0, -OB510_BKLT_MASK, OB510_BKLT_MASK}}, + {0,} +}; + +static struct omnibook_feature __declared_feature blank_driver = { + .name = "blank", + .enabled = 1, + .read = omnibook_console_blank_read, + .write = omnibook_console_blank_write, + .init = omnibook_console_blank_init, + .exit = omnibook_console_blank_cleanup, + .ectypes = + XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE2 | AMILOD | TSP10 | TSM70 | TSM30X | TSX205, + .tbl = blank_table, +}; + +module_param_named(blank, blank_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(blank, "Use 0 to disable, 1 to enable lcd console blanking"); +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/nbsmi.c +++ linux-2.6.35/ubuntu/omnibook/nbsmi.c @@ -0,0 +1,968 @@ +/* + * nbsmi.c -- Toshiba SMI low-level acces code + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Mathieu Bérard , 2006 + * + * Sources of inspirations for this code were: + * -Toshiba via provided hardware specification + * -Thorsten Zachmann with the 's1bl' project + * -Frederico Munoz with the 'tecra_acpi' project + * Thanks to them + */ + +#include "omnibook.h" +#include "hardware.h" +#include +#include +#include +#include +#include +#include +#include + +/* copied from drivers/input/serio/i8042-io.h */ +#define I8042_KBD_PHYS_DESC "isa0060/serio0" + +/* + * ATI's IXP PCI-LPC bridge + */ +#define INTEL_PMBASE 0x40 +#define INTEL_GPE0_EN 0x2c + +#define BUFFER_SIZE 0x20 +#define INTEL_OFFSET 0x60 +#define INTEL_SMI_PORT 0xb2 /* APM_CNT port in INTEL ICH specs */ + +/* + * Toshiba Specs state 0xef here but: + * -this would overflow (ef + 19 > ff) + * -code from Toshiba use e0, which make much more sense + */ + +#define ATI_OFFSET 0xe0 +#define ATI_SMI_PORT 0xb0 + +#define EC_INDEX_PORT 0x300 +#define EC_DATA_PORT 0x301 + +/* Masks decode for GetAeral */ +#define WLEX_MASK 0x4 +#define WLAT_MASK 0x8 +#define BTEX_MASK 0x1 +#define BTAT_MASK 0x2 + +/* + * Private data of this backend + */ +struct nbsmi_backend_data { + struct pci_dev *lpc_bridge; /* Southbridge chip ISA bridge/LPC interface PCI device */ + u8 start_offset; /* Start offset in CMOS memory */ + struct input_dev *nbsmi_input_dev; + struct work_struct fnkey_work; +}; + +/* + * Possible list of supported southbridges + * Here mostly to implement a more or less clean PCI probing + * Works only because of previous DMI probing. + * It's in compal.c + */ +extern const struct pci_device_id lpc_bridge_table[]; + +/* + * Since we are going to trigger an SMI, all registers (I assume this does not + * include esp and maybe ebp) and eflags may be mangled in the + * process. + * We also disable preemtion and IRQs upon SMI call. + */ +static inline u32 ati_do_smi_call(u16 function) +{ + unsigned long flags; + u32 retval = 0; + + local_irq_save(flags); + preempt_disable(); + +/* + * eflags, eax, ebx, ecx, edx, esi and edi are clobbered upon writing to SMI_PORT + * thus the clobber list. + * + * Equivalent pseudocode: + * + * eax = function; [non null] + * outw(eax, ATI_SMI_PORT); <- This Trigger an SMI + * if( eax == 0 ) [success if eax has been cleared] + * goto out; + * if( inb(ATI_SMI_PORT + 1) == 0) [if not in eax, success maybe be stored here] + * goto out; + * retval = -EIO; [too bad] + * out: + */ + __asm__ __volatile__("outw %%ax, %2; \ + orw %%ax, %%ax; \ + jz 1f; \ + inw %3, %%ax; \ + orw %%ax, %%ax; \ + jz 1f; \ + movl %4, %0; \ + 1:;" + : "=m" (retval) + : "a"(function), "N"(ATI_SMI_PORT), "N"(ATI_SMI_PORT+1), "i"(-EIO) + : "memory", "ebx", "ecx", "edx", "esi", "edi", "cc"); + + local_irq_restore(flags); + preempt_enable_no_resched(); + return retval; +} + +static inline u32 intel_do_smi_call(u16 function, struct pci_dev *lpc_bridge) +{ + u32 state; + unsigned long flags; + u32 retval = 0; + u32 sci_en = 0; + + local_irq_save(flags); + preempt_disable(); + +/* + * We get the PMBASE offset ( bits 15:7 at 0x40 offset of PCI config space ) + * And we access offset 2c (GPE0_EN), save the state, disable all SCI + * and restore the state after the SMI call + */ + pci_read_config_dword(lpc_bridge, INTEL_PMBASE, &sci_en); + sci_en = sci_en & 0xff80; /* Keep bits 15:7 */ + sci_en += INTEL_GPE0_EN; /* GPEO_EN offset */ + state = inl(sci_en); + outl(0, sci_en); + +/* + * eflags, eax, ebx, ecx, edx, esi and edi are clobbered upon writing to SMI_PORT + * thus the clobber list. + * + * Equivalent pseudocode: + * + * eax = function; [non null] + * outw(eax, INTEL_SMI_PORT); <- This Trigger an SMI + * if( eax == 0 ) [success if eax has been cleared] + * goto out; + * retval = -EIO; [too bad] + * out: + */ + __asm__ __volatile__("outw %%ax, %2; \ + orw %%ax, %%ax; \ + jz 1f; \ + movl %3, %0; \ + 1:;" + : "=m" (retval) + : "a"(function), "N"(INTEL_SMI_PORT), "i"(-EIO) + : "memory", "ebx", "ecx", "edx", "esi", "edi", "cc"); + + outl(state, sci_en); + local_irq_restore(flags); + preempt_enable_no_resched(); + return retval; +} + +static int nbsmi_smi_command(u16 function, + const u8 * inputbuffer, + u8 * outputbuffer, + const struct nbsmi_backend_data *priv_data) +{ + int count; + u32 retval = 0; + + + for (count = 0; count < BUFFER_SIZE; count++) { + outb(count + priv_data->start_offset, RTC_PORT(2)); + outb(*(inputbuffer + count), RTC_PORT(3)); + } + +/* + * We have to write 0xe4XX to smi_port + * where XX is the SMI function code + */ + function = (function & 0xff) << 8; + function |= 0xe4; + + switch (priv_data->lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + retval = intel_do_smi_call(function, priv_data->lpc_bridge); + break; + case PCI_VENDOR_ID_ATI: + retval = ati_do_smi_call(function); + break; + default: + BUG(); + } + + if (retval) + printk(O_ERR "smi_command failed with error %u.\n", retval); + + for (count = 0; count < BUFFER_SIZE; count++) { + outb(count + priv_data->start_offset, RTC_PORT(2)); + *(outputbuffer + count) = inb(RTC_PORT(3)); + } + + return retval; +} + +static int nbsmi_smi_read_command(const struct omnibook_operation *io_op, u8 * data) +{ + int retval; + u8 *inputbuffer; + u8 *outputbuffer; + struct nbsmi_backend_data *priv_data = io_op->backend->data; + + if (!priv_data) + return -ENODEV; + + inputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL); + if (!inputbuffer) { + retval = -ENOMEM; + goto error1; + } + + outputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL); + if (!outputbuffer) { + retval = -ENOMEM; + goto error2; + } + + retval = nbsmi_smi_command((u16) io_op->read_addr, inputbuffer, outputbuffer, priv_data); + if (retval) + goto out; + + *data = outputbuffer[0]; + + if (io_op->read_mask) + *data &= io_op->read_mask; + + out: + kfree(outputbuffer); + error2: + kfree(inputbuffer); + error1: + return retval; +} + +static int nbsmi_smi_write_command(const struct omnibook_operation *io_op, u8 data) +{ + int retval; + u8 *inputbuffer; + u8 *outputbuffer; + struct nbsmi_backend_data *priv_data = io_op->backend->data; + + if (!priv_data) + return -ENODEV; + + inputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL); + if (!inputbuffer) { + retval = -ENOMEM; + goto error1; + } + + outputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL); + if (!outputbuffer) { + retval = -ENOMEM; + goto error2; + } + + inputbuffer[0] = data; + + retval = nbsmi_smi_command((u16) io_op->write_addr, inputbuffer, outputbuffer, priv_data); + + kfree(outputbuffer); + error2: + kfree(inputbuffer); + error1: + return retval; +} + +/* + * Read/Write to INDEX/DATA interface at port 0x300 (SMSC Mailbox registers) + */ +static inline void nbsmi_ec_read_command(u8 index, u8 * data) +{ + outb(index, EC_INDEX_PORT); + *data = inb(EC_DATA_PORT); +} + +#if 0 +static inline void nbsmi_ec_write_command(u8 index, u8 data) +{ + outb(index, EC_INDEX_PORT); + outb(data, EC_DATA_PORT); +} +#endif + + +/* + * Hotkeys workflow: + * 1. Fn+Foo pressed + * 2. Scancode 0x6d generated by kbd controller + * 3. Scancode 0x6d caught by omnibook input handler + * 4. SMI Call issued -> Got keycode of last actually pressed Fn key + * 5. nbsmi_scan_table used to associate a detected keycode with a generated one + * 6. Generated keycode issued using the omnibook input device + */ + +/* + * The input handler should only bind with the standard AT keyboard. + * XXX: Scancode 0x6d won't be detected if the keyboard has already been + * grabbed (the Xorg event input driver do that) + */ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) +static int hook_connect(struct input_handler *handler, + struct input_dev *dev, + const struct input_device_id *id) +#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) +static struct input_handle *hook_connect(struct input_handler *handler, + struct input_dev *dev, + const struct input_device_id *id) +#else +static struct input_handle *hook_connect(struct input_handler *handler, + struct input_dev *dev, + struct input_device_id *id) +#endif +{ + struct input_handle *handle; + int error; + + /* the 0x0001 vendor magic number is found in atkbd.c */ + if(!(dev->id.bustype == BUS_I8042 && dev->id.vendor == 0x0001)) + goto out_nobind; + + if(!strstr(dev->phys, I8042_KBD_PHYS_DESC)) + goto out_nobind; + + dprintk("hook_connect for device %s.\n", dev->name); + + if(dev->grab) + printk(O_WARN "Input device is grabbed by %s, Fn hotkeys won't work.\n", + dev->grab->name); + + handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL); + if (!handle) +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + return -ENOMEM; +#else + return NULL; +#endif + + handle->dev = dev; + handle->handler = handler; + handle->name = "omnibook_scancode_hook"; + handle->private = handler->private; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + error = input_register_handle(handle); + if (error) { + dprintk("register_handle failed\n"); + goto out_nobind_free; + } + error = input_open_device(handle); + if (error) { + dprintk("register_handle failed\n"); + input_unregister_handle(handle); + goto out_nobind_free; + } + +#else + error = input_open_device(handle); + if (error==0) dprintk("Input device opened\n"); + else { + dprintk("opening input device failed\n"); + goto out_nobind_free; + } +#endif + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + return 0; +out_nobind_free: + kfree(handle); +out_nobind: + return -ENODEV; +#else + return handle; +out_nobind_free: + kfree(handle); +out_nobind: + return NULL; +#endif +} + +static void hook_disconnect(struct input_handle *handle) +{ + dprintk("hook_disconnect.\n"); + input_close_device(handle); +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + input_unregister_handle(handle); +#endif + kfree(handle); +} + +/* + * Hook for scancode 0x6d. Actual handling is done in a workqueue as + * the nbsmi backend might sleep. + */ + +static void hook_event(struct input_handle *handle, unsigned int event_type, + unsigned int event_code, int value) +{ + if (event_type == EV_MSC && event_code == MSC_SCAN && value == SMI_FN_SCAN) + schedule_work(&((struct nbsmi_backend_data *)handle->private)->fnkey_work); +} + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) +static const struct input_device_id hook_ids[] = { +#else +static struct input_device_id hook_ids[] = { +#endif + { + .flags = INPUT_DEVICE_ID_MATCH_EVBIT, + .evbit = { BIT(EV_KEY) }, + }, + { }, /* Terminating entry */ +}; + +static struct input_handler hook_handler = { + .event = hook_event, + .connect = hook_connect, + .disconnect = hook_disconnect, + .name = OMNIBOOK_MODULE_NAME, + .id_table = hook_ids, +}; + +/* + * Define some KEY_ that may be missing in input.h for some kernel versions + */ +#ifndef KEY_WLAN +#define KEY_WLAN 238 +#endif + +/* + * Detected scancode to keycode table + */ +static const struct { + unsigned int scancode; + unsigned int keycode; +} nbsmi_scan_table[] = { + { KEY_ESC, KEY_MUTE}, + { KEY_F1, KEY_FN_F1}, + { KEY_F2, KEY_PROG1}, + { KEY_F3, KEY_SLEEP}, + { KEY_F4, KEY_SUSPEND}, + { KEY_F5, KEY_SWITCHVIDEOMODE}, + { KEY_F6, KEY_BRIGHTNESSDOWN}, + { KEY_F7, KEY_BRIGHTNESSUP}, + { KEY_F8, KEY_WLAN}, + { KEY_F9, KEY_FN_F9}, + { KEY_SPACE, KEY_ZOOM}, + { 0,0}, +}; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) +static void omnibook_handle_fnkey(struct work_struct *work); +#else +static void omnibook_handle_fnkey(void* data); +#endif + +/* + * Register the input handler and the input device in the input subsystem + */ +static int register_input_subsystem(struct nbsmi_backend_data *priv_data) +{ + int i, retval = 0; + struct input_dev *nbsmi_input_dev; + + nbsmi_input_dev = input_allocate_device(); + if (!nbsmi_input_dev) { + retval = -ENOMEM; + goto out; + } + + nbsmi_input_dev->name = "Omnibook NbSMI scancode generator"; + nbsmi_input_dev->phys = "omnibook/input0"; + nbsmi_input_dev->id.bustype = BUS_HOST; + + set_bit(EV_KEY, nbsmi_input_dev->evbit); + + for(i=0 ; i < ARRAY_SIZE(nbsmi_scan_table); i++) + set_bit(nbsmi_scan_table[i].keycode, nbsmi_input_dev->keybit); + + retval = input_register_device(nbsmi_input_dev); + if(retval) { + input_free_device(nbsmi_input_dev); + goto out; + } + + priv_data->nbsmi_input_dev = nbsmi_input_dev; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) + INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey); +#else + INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey, priv_data); +#endif + + + hook_handler.private = priv_data; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) + retval = input_register_handler(&hook_handler); +#else + input_register_handler(&hook_handler); +#endif + + out: + return retval; +} + +/* + * Try to init the backend + * This function can be called blindly as it use a kref + * to check if the init sequence was already done. + */ +static int omnibook_nbsmi_init(const struct omnibook_operation *io_op) +{ + int retval = 0; + int i; + u8 ec_data; + u32 smi_port = 0; + struct nbsmi_backend_data *priv_data; + + /* ectypes other than TSM40 have no business with this backend */ + if (!(omnibook_ectype & TSM40)) + return -ENODEV; + + if (io_op->backend->already_failed) { + dprintk("NbSmi backend init already failed, skipping.\n"); + return -ENODEV; + } + + if (!io_op->backend->data) { + /* Fist use of the backend */ + dprintk("Try to init NbSmi\n"); + mutex_init(&io_op->backend->mutex); + mutex_lock(&io_op->backend->mutex); + kref_init(&io_op->backend->kref); + + priv_data = kzalloc(sizeof(struct nbsmi_backend_data), GFP_KERNEL); + if (!priv_data) { + retval = -ENOMEM; + goto error0; + } + + /* PCI probing: find the LPC Super I/O bridge PCI device */ + for (i = 0; !priv_data->lpc_bridge && lpc_bridge_table[i].vendor; ++i) + priv_data->lpc_bridge = + pci_get_device(lpc_bridge_table[i].vendor, lpc_bridge_table[i].device, + NULL); + + if (!priv_data->lpc_bridge) { + printk(O_ERR "Fail to find a supported LPC I/O bridge, please report\n"); + retval = -ENODEV; + goto error1; + } + + if ((retval = pci_enable_device(priv_data->lpc_bridge))) { + printk(O_ERR "Unable to enable PCI device.\n"); + goto error2; + } + + switch (priv_data->lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + priv_data->start_offset = INTEL_OFFSET; + smi_port = INTEL_SMI_PORT; + break; + case PCI_VENDOR_ID_ATI: + priv_data->start_offset = ATI_OFFSET; + smi_port = ATI_SMI_PORT; + break; + default: + BUG(); + } + + if (!request_region(smi_port, 2, OMNIBOOK_MODULE_NAME)) { + printk(O_ERR "Request SMI I/O region error\n"); + retval = -ENODEV; + goto error2; + } + + if (!request_region(EC_INDEX_PORT, 2, OMNIBOOK_MODULE_NAME)) { + printk(O_ERR "Request EC I/O region error\n"); + retval = -ENODEV; + goto error3; + } + + /* + * Try some heuristic tests to avoid enabling this interface on unsuported laptops: + * See what a port 300h read index 8f gives. Guess there is nothing if read 0xff + */ + + nbsmi_ec_read_command(SMI_FN_PRESSED, &ec_data); + dprintk("NbSmi test probe read: %x\n", ec_data); + if (ec_data == 0xff) { + printk(O_ERR "Probing at SMSC Mailbox registers failed, disabling NbSmi\n"); + retval = -ENODEV; + goto error4; + } + + retval = register_input_subsystem(priv_data); + if(retval) + goto error4; + + io_op->backend->data = priv_data; + + dprintk("NbSmi init ok\n"); + mutex_unlock(&io_op->backend->mutex); + return 0; + } else { + dprintk("NbSmi has already been initialized\n"); + kref_get(&io_op->backend->kref); + return 0; + } + error4: + release_region(EC_INDEX_PORT, 2); + error3: + release_region(smi_port, 2); + error2: + pci_dev_put(priv_data->lpc_bridge); + error1: + kfree(priv_data); + io_op->backend->data = NULL; + error0: + io_op->backend->already_failed = 1; + mutex_unlock(&io_op->backend->mutex); + mutex_destroy(&io_op->backend->mutex); + return retval; +} + +/* + * Free all allocated stuff and unregister from the input subsystem + */ +static void nbsmi_free(struct kref *ref) +{ + u32 smi_port = 0; + struct omnibook_backend *backend; + struct nbsmi_backend_data *priv_data; + + dprintk("NbSmi not used anymore: disposing\n"); + + backend = container_of(ref, struct omnibook_backend, kref); + priv_data = backend->data; + + flush_scheduled_work(); + input_unregister_handler(&hook_handler); + input_unregister_device(priv_data->nbsmi_input_dev); + + mutex_lock(&backend->mutex); + + switch (priv_data->lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + smi_port = INTEL_SMI_PORT; + break; + case PCI_VENDOR_ID_ATI: + smi_port = ATI_SMI_PORT; + break; + default: + BUG(); + } + + pci_dev_put(priv_data->lpc_bridge); + release_region(smi_port, 2); + release_region(EC_INDEX_PORT, 2); + kfree(priv_data); + backend->data = NULL; + mutex_unlock(&backend->mutex); + mutex_destroy(&backend->mutex); +} + +static void omnibook_nbsmi_exit(const struct omnibook_operation *io_op) +{ + /* ectypes other than TSM40 have no business with this backend */ + BUG_ON(!(omnibook_ectype & TSM40)); + dprintk("Trying to dispose NbSmi\n"); + kref_put(&io_op->backend->kref, nbsmi_free); +} + +/* + * Adjust the lcd backlight level by delta. + * Used for Fn+F6/F7 keypress + */ +static int adjust_brighness(int delta) +{ + struct omnibook_feature *lcd_feature = omnibook_find_feature("lcd"); + struct omnibook_operation *io_op; + int retval = 0; + u8 brgt; + + if(!lcd_feature) + return -ENODEV; + + io_op = lcd_feature->io_op; + + mutex_lock(&io_op->backend->mutex); + + if(( retval = __backend_byte_read(io_op, &brgt))) + goto out; + + dprintk("FnF6/F7 pressed: adjusting britghtnes.\n"); + + if (((int) brgt + delta) < 0) + brgt = 0; + else if ((brgt + delta) > omnibook_max_brightness) + brgt = omnibook_max_brightness; + else + brgt += delta; + + retval = __backend_byte_write(io_op, brgt); + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static const struct omnibook_operation last_scan_op = SIMPLE_BYTE(SMI,SMI_GET_FN_LAST_SCAN,0); + +/* + * Workqueue handler for Fn hotkeys + */ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) +static void omnibook_handle_fnkey(struct work_struct *work) +#else +static void omnibook_handle_fnkey(void* data) +#endif +{ + int i; + u8 gen_scan; + struct input_dev *input_dev; + + if(backend_byte_read(&last_scan_op, &gen_scan)) + return; + + dprintk("detected scancode %x.\n", gen_scan); + switch(gen_scan) { + case KEY_F6: + adjust_brighness(-1); + break; + case KEY_F7: + adjust_brighness(+1); + break; + } + + for(i = 0 ; i < ARRAY_SIZE(nbsmi_scan_table); i++) { + if( gen_scan == nbsmi_scan_table[i].scancode) { + dprintk("generating keycode %i.\n", nbsmi_scan_table[i].keycode); +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) + input_dev = container_of(work, struct nbsmi_backend_data, fnkey_work)->nbsmi_input_dev; +#else + input_dev = ((struct nbsmi_backend_data *) data)->nbsmi_input_dev; +#endif + omnibook_report_key(input_dev, nbsmi_scan_table[i].keycode); + break; + } + } +} + +static int omnibook_nbsmi_get_wireless(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval = 0; + struct omnibook_operation aerial_op = SIMPLE_BYTE(SMI, SMI_GET_KILL_SWITCH, 0); + u8 data; + + if ((retval = nbsmi_smi_read_command(&aerial_op, &data))) + goto out; + + dprintk("get_wireless (kill switch) raw_state: %x\n", data); + + *state = data ? KILLSWITCH : 0; + + aerial_op.read_addr = SMI_GET_AERIAL; + + if ((retval = nbsmi_smi_read_command(&aerial_op, &data))) + goto out; + + dprintk("get_wireless (aerial) raw_state: %x\n", data); + + *state |= (data & WLEX_MASK) ? WIFI_EX : 0; + *state |= (data & WLAT_MASK) ? WIFI_STA : 0; + *state |= (data & BTEX_MASK) ? BT_EX : 0; + *state |= (data & BTAT_MASK) ? BT_STA : 0; + + out: + return retval; +} + +static int omnibook_nbsmi_set_wireless(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval = 0; + u8 data; + struct omnibook_operation aerial_op = SIMPLE_BYTE(SMI, SMI_SET_AERIAL, 0); + + data = !!(state & BT_STA); + data |= !!(state & WIFI_STA) << 0x1; + + dprintk("set_wireless raw_state: %x\n", data); + + retval = nbsmi_smi_write_command(&aerial_op, data); + + return retval; +} + +static int omnibook_nbmsi_hotkeys_get(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval; + u8 data = 0; + struct omnibook_operation hotkeys_op = SIMPLE_BYTE(SMI, SMI_GET_FN_INTERFACE, 0); + + retval = nbsmi_smi_read_command(&hotkeys_op, &data); + if (retval < 0) + return retval; + + dprintk("get_hotkeys raw_state: %x\n", data); + + *state = (data & SMI_FN_KEYS_MASK) ? HKEY_FN : 0; + *state |= (data & SMI_STICK_KEYS_MASK) ? HKEY_STICK : 0; + *state |= (data & SMI_FN_TWICE_LOCK_MASK) ? HKEY_TWICE_LOCK : 0; + *state |= (data & SMI_FN_DOCK_MASK) ? HKEY_DOCK : 0; + + return 0; +} + + +static int omnibook_nbmsi_hotkeys_set(const struct omnibook_operation *io_op, unsigned int state) +{ + int i, retval; + u8 data, rdata; + struct omnibook_operation hotkeys_op = SIMPLE_BYTE(SMI, SMI_SET_FN_F5_INTERFACE, 0); + u8* data_array; + + data = !!(state & HKEY_FNF5); + + dprintk("set_hotkeys (Fn F5) raw_state: %x\n", data); + + retval = nbsmi_smi_write_command(&hotkeys_op, data); + if (retval < 0) + return retval; + + hotkeys_op.write_addr = SMI_SET_FN_INTERFACE; + hotkeys_op.read_addr = SMI_GET_FN_INTERFACE; + + data = (state & HKEY_FN) ? SMI_FN_KEYS_MASK : 0; + data |= (state & HKEY_STICK) ? SMI_STICK_KEYS_MASK : 0; + data |= (state & HKEY_TWICE_LOCK) ? SMI_FN_TWICE_LOCK_MASK : 0; + data |= (state & HKEY_DOCK) ? SMI_FN_DOCK_MASK : 0; + + dprintk("set_hotkeys (Fn interface) raw_state: %x\n", data); + + /* + * Hardware seems to be quite stubborn and multiple retries may be + * required. The criteria here is simple: retry until probed state match + * the requested one (with timeout). + */ + + data_array = kcalloc(250, sizeof(u8), GFP_KERNEL); + if(!data_array) + return -ENODEV; + + for (i = 0; i < 250; i++) { + retval = nbsmi_smi_write_command(&hotkeys_op, data); + if (retval) + goto out; + mdelay(1); + retval = nbsmi_smi_read_command(&hotkeys_op, &rdata); + if(retval) + goto out; + data_array[i] = rdata; + if(rdata == data) { + dprintk("check loop ok after %i iters\n.",i); + retval = 0; + goto out; + } + } + dprintk("error or check loop timeout !!\n"); + dprintk("forensics datas: "); + for (i = 0; i < 250; i++) + dprintk_simple("%x ", data_array[i]); + dprintk_simple("\n"); +out: + kfree(data_array); + return retval; +} + +static const unsigned int nbsmi_display_mode_list[] = { + DISPLAY_LCD_ON, + DISPLAY_LCD_ON | DISPLAY_CRT_ON, + DISPLAY_CRT_ON, + DISPLAY_LCD_ON | DISPLAY_TVO_ON, + DISPLAY_TVO_ON, +}; + +static int omnibook_nbmsi_display_get(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval = 0; + u8 data; + + retval = nbsmi_smi_read_command(io_op, &data); + if (retval < 0) + return retval; + + if (data > (ARRAY_SIZE(nbsmi_display_mode_list) - 1)) + return -EIO; + + *state = nbsmi_display_mode_list[data]; + + return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON; +} + +static int omnibook_nbmsi_display_set(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval; + int i; + u8 matched = 255; + + for (i = 0; i < ARRAY_SIZE(nbsmi_display_mode_list); i++) { + if (nbsmi_display_mode_list[i] == state) { + matched = i; + break; + } + } + + if(matched == 255) { + printk(O_ERR "Display mode %x is unsupported.\n", state); + return -EINVAL; + } + + retval = nbsmi_smi_write_command(io_op, matched); + if (retval < 0) + return retval; + + return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON; +} + +struct omnibook_backend nbsmi_backend = { + .name = "nbsmi", + .hotkeys_read_cap = HKEY_FN | HKEY_STICK | HKEY_TWICE_LOCK | HKEY_DOCK, + .hotkeys_write_cap = HKEY_FN | HKEY_STICK | HKEY_TWICE_LOCK | HKEY_DOCK | HKEY_FNF5, + .init = omnibook_nbsmi_init, + .exit = omnibook_nbsmi_exit, + .byte_read = nbsmi_smi_read_command, + .byte_write = nbsmi_smi_write_command, + .aerial_get = omnibook_nbsmi_get_wireless, + .aerial_set = omnibook_nbsmi_set_wireless, + .hotkeys_get = omnibook_nbmsi_hotkeys_get, + .hotkeys_set = omnibook_nbmsi_hotkeys_set, + .display_get = omnibook_nbmsi_display_get, + .display_set = omnibook_nbmsi_display_set, +}; --- linux-2.6.35.orig/ubuntu/omnibook/battery.c +++ linux-2.6.35/ubuntu/omnibook/battery.c @@ -0,0 +1,557 @@ +/* + * battery.c -- battery related functions + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +struct omnibook_battery_info { + u8 type; /* 1 - Li-Ion, 2 NiMH */ + u16 sn; /* Serial number */ + u16 dv; /* Design Voltage */ + u16 dc; /* Design Capacity */ +}; + +struct omnibook_battery_state { + u16 pv; /* Present Voltage */ + u16 rc; /* Remaining Capacity */ + u16 lc; /* Last Full Capacity */ + u8 gauge; /* Gauge in % */ + u8 status; /* 0 - unknown, 1 - charged, 2 - discharging, 3 - charging, 4 - critical) */ +}; + +enum { + OMNIBOOK_BATTSTAT_UNKNOWN, + OMNIBOOK_BATTSTAT_CHARGED, + OMNIBOOK_BATTSTAT_DISCHARGING, + OMNIBOOK_BATTSTAT_CHARGING, + OMNIBOOK_BATTSTAT_CRITICAL +}; + +#define BAT_OFFSET 0x10 + +static int __backend_u16_read(struct omnibook_operation *io_op, u16 *data) +{ + int retval; + u8 byte; + + retval = __backend_byte_read(io_op, &byte); + if (retval) + return retval; + *data = byte; + io_op->read_addr += 1; + retval = __backend_byte_read(io_op, &byte); + *data += (byte << 8); + return retval; +} + +static int omnibook_battery_present(struct omnibook_operation *io_op, int num) +{ + int retval; + u8 bat; + int i; + + /* + * XE3GF + * TSP10 + * TSM30X + * TSM70 + */ + if (omnibook_ectype & (XE3GF | TSP10 | TSM70 | TSM30X)) { + io_op->read_addr = XE3GF_BAL; + io_op->read_mask = XE3GF_BAL0_MASK; + for (i = 0; i < num; i++) + io_op->read_mask = io_op->read_mask << 1; + retval = __backend_byte_read(io_op, &bat); + /* + * XE3GC + * AMILOD + */ + } else if (omnibook_ectype & (XE3GC | AMILOD)) { + io_op->read_addr = XE3GC_BAT; + io_op->read_mask = XE3GC_BAT0_MASK; + for (i = 0; i < num; i++) + io_op->read_mask = io_op->read_mask << 1; + retval = __backend_byte_read(io_op, &bat); + } else + retval = -ENODEV; + + /* restore default read_mask */ + io_op->read_mask = 0; + + return !!bat; +} + +/* + * Get static battery information + * All info have to be reread every time because battery sould be cahnged + * when laptop is on AC power + * return values: + * < 0 - ERROR + * 0 - OK + * 1 - Battery is not present + * 2 - Not supported + */ +static int omnibook_get_battery_info(struct omnibook_operation *io_op, + int num, + struct omnibook_battery_info *battinfo) +{ + int retval; + /* + * XE3GF + * TSP10 + * TSM70 + * TSM30X + */ + if (omnibook_ectype & (XE3GF | TSP10 | TSM70 | TSM30X)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = XE3GF_BTY0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &(*battinfo).type))) + return retval; + io_op->read_addr = XE3GF_BSN0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).sn))) + return retval; + io_op->read_addr = XE3GF_BDV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dv))) + return retval; + io_op->read_addr = XE3GF_BDC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dc))) + return retval; + + (*battinfo).type = ((*battinfo).type & XE3GF_BTY_MASK) ? 1 : 0; + } else + return 1; + /* + * XE3GC + */ + } else if (omnibook_ectype & (XE3GC)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = XE3GC_BDV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dv))) + return retval; + io_op->read_addr = XE3GC_BDC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dc))) + return retval; + io_op->read_addr = XE3GC_BTY0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &(*battinfo).type))) + return retval; + + (*battinfo).type = ((*battinfo).type & XE3GC_BTY_MASK) ? 1 : 0; + (*battinfo).sn = 0; /* Unknown */ + } else + return 1; + /* + * AMILOD + */ + } else if (omnibook_ectype & (AMILOD)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = AMILOD_BDV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dv))) + return retval; + io_op->read_addr = AMILOD_BDC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dc))) + return retval; + io_op->read_addr = AMILOD_BTY0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &(*battinfo).type))) + return retval; + + (*battinfo).type = ((*battinfo).type & AMILOD_BTY_MASK) ? 1 : 0; + (*battinfo).sn = 0; /* Unknown */ + } else + return 1; + /* + * FIXME + * OB500 + * OB510 + */ + } else if (omnibook_ectype & (OB500 | OB510)) { + switch (num) { + case 0: + case 1: + case 2: + break; + default: + return -EINVAL; + } + /* + * OB6000 + * OB6100 + * XE4500 + */ + } else if (omnibook_ectype & (OB6000 | OB6100 | XE4500)) { + switch (num) { + case 0: + case 1: + break; + default: + return -EINVAL; + } + } else + return 2; + + return 0; +} + +/* + * Get battery status + * return values: + * < 0 - ERROR + * 0 - OK + * 1 - Battery is not present + * 2 - Not supported + */ +static int omnibook_get_battery_status(struct omnibook_operation *io_op, + int num, + struct omnibook_battery_state *battstat) +{ + int retval; + u8 status; + u16 dc; + int gauge; + + /* + * XE3GF + * TSP10 + * TSM70 + */ + if (omnibook_ectype & (XE3GF | TSP10 | TSM70 | TSM30X)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = XE3GF_BST0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = XE3GF_BRC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = XE3GF_BPV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + io_op->read_addr = XE3GF_BFC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).lc))) + return retval; + io_op->read_addr = XE3GF_GAU0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &(*battstat).gauge))) + return retval; + + if (status & XE3GF_BST_MASK_CRT) + (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL; + else if (status & XE3GF_BST_MASK_CHR) + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING; + else if (status & XE3GF_BST_MASK_DSC) + (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING; + else if (status & (XE3GF_BST_MASK_CHR | XE3GF_BST_MASK_DSC)) + (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN; + else { + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED; + } + } else + return 1; + /* + * XE3GC + */ + } else if (omnibook_ectype & (XE3GC)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = XE3GC_BST0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = XE3GC_BRC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = XE3GC_BPV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + io_op->read_addr = XE3GC_BDC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &dc))) + return retval; + + if (status & XE3GC_BST_MASK_CRT) + (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL; + else if (status & XE3GC_BST_MASK_CHR) + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING; + else if (status & XE3GC_BST_MASK_DSC) + (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING; + else if (status & (XE3GC_BST_MASK_CHR | XE3GC_BST_MASK_DSC)) + (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN; + else { + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED; + } + gauge = ((*battstat).rc * 100) / dc; + (*battstat).gauge = gauge; + (*battstat).lc = 0; /* Unknown */ + } else + return 1; + /* + * AMILOD + */ + } else if (omnibook_ectype & (AMILOD)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = AMILOD_BST0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = AMILOD_BRC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = AMILOD_BPV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + io_op->read_addr = AMILOD_BDC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &dc))) + return retval; + + if (status & AMILOD_BST_MASK_CRT) + (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL; + else if (status & AMILOD_BST_MASK_CHR) + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING; + else if (status & AMILOD_BST_MASK_DSC) + (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING; + else if (status & (AMILOD_BST_MASK_CHR | AMILOD_BST_MASK_DSC)) + (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN; + else { + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED; + } + gauge = ((*battstat).rc * 100) / dc; + (*battstat).gauge = gauge; + (*battstat).lc = 0; /* Unknown */ + } else + return 1; + /* + * OB500 + * OB510 + */ + } else if (omnibook_ectype & (OB500 | OB510)) { + switch (num) { + case 0: + io_op->read_addr = OB500_BT1S; + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = OB500_BT1C; + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = OB500_BT1V; + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + break; + case 1: + io_op->read_addr = OB500_BT2S; + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = OB500_BT2C; + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = OB500_BT2V; + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + break; + case 2: + io_op->read_addr = OB500_BT3S; + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = OB500_BT3C; + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = OB500_BT3V; + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + break; + default: + return -EINVAL; + } + if (status & OB500_BST_MASK_CRT) + (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL; + else if (status & OB500_BST_MASK_CHR) + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING; + else if (status & OB500_BST_MASK_DSC) + (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING; + else if (status & (OB500_BST_MASK_CHR | OB500_BST_MASK_DSC)) + (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN; + else { + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED; + } + /* + * OB6000 + * OB6100 + * XE4500 + */ + } else if (omnibook_ectype & (OB6000 | OB6100 | XE4500)) { + switch (num) { + case 0: + io_op->read_addr = OB500_BT1S; + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = OB500_BT1C; + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = OB500_BT1V; + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + break; + case 1: + io_op->read_addr = OB500_BT3S; + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = OB500_BT3C; + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = OB500_BT3V; + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + break; + default: + return -EINVAL; + } + if (status & OB500_BST_MASK_CRT) + (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL; + else if (status & OB500_BST_MASK_CHR) + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING; + else if (status & OB500_BST_MASK_DSC) + (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING; + else if (status & (OB500_BST_MASK_CHR | OB500_BST_MASK_DSC)) + (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN; + else { + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED; + } + } else { + return 2; + } + return 0; +} + +static int omnibook_battery_read(char *buffer, struct omnibook_operation *io_op) +{ + char *statustr; + char *typestr; + int max = 0; + int num = 0; + int len = 0; + int retval; + int i; + struct omnibook_battery_info battinfo; + struct omnibook_battery_state battstat; + /* + * XE3GF + * XE3GC + * 0B6000 + * 0B6100 + * XE4500 + * AMILOD + * TSP10 + */ + if (omnibook_ectype & (XE3GF | XE3GC | OB6000 | OB6100 | XE4500 | AMILOD | TSP10)) + max = 2; + /* + * OB500 + * 0B510 + */ + else if (omnibook_ectype & (OB500 | OB510)) + max = 3; + /* + * TSM30X + * TSM70 + */ + else if (omnibook_ectype & (TSM70 | TSM30X)) + max = 1; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + for (i = 0; i < max; i++) { + retval = omnibook_get_battery_info(io_op, i, &battinfo); + if (retval == 0) { + num++; + omnibook_get_battery_status(io_op, i, &battstat); + typestr = (battinfo.type) ? "Li-Ion" : "NiMH"; + switch (battstat.status) { + case OMNIBOOK_BATTSTAT_CHARGED: + statustr = "charged"; + break; + case OMNIBOOK_BATTSTAT_DISCHARGING: + statustr = "discharging"; + break; + case OMNIBOOK_BATTSTAT_CHARGING: + statustr = "charging"; + break; + case OMNIBOOK_BATTSTAT_CRITICAL: + statustr = "critical"; + break; + default: + statustr = "unknown"; + } + + len += sprintf(buffer + len, "Battery: %11d\n", i); + len += sprintf(buffer + len, "Type: %11s\n", typestr); + if (battinfo.sn) + len += + sprintf(buffer + len, "Serial Number: %11d\n", + battinfo.sn); + len += sprintf(buffer + len, "Present Voltage: %11d mV\n", battstat.pv); + len += sprintf(buffer + len, "Design Voltage: %11d mV\n", battinfo.dv); + len += sprintf(buffer + len, "Remaining Capacity: %11d mAh\n", battstat.rc); + if (battstat.lc) + len += + sprintf(buffer + len, "Last Full Capacity: %11d mAh\n", + battstat.lc); + len += sprintf(buffer + len, "Design Capacity: %11d mAh\n", battinfo.dc); + len += + sprintf(buffer + len, "Gauge: %11d %%\n", battstat.gauge); + len += sprintf(buffer + len, "Status: %11s\n", statustr); + len += sprintf(buffer + len, "\n"); + } + } + if (num == 0) + len += sprintf(buffer + len, "No battery present\n"); + + mutex_unlock(&io_op->backend->mutex); + + return len; +} + +static struct omnibook_tbl battery_table[] __initdata = { + {XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X, {EC,}}, + {0,} +}; + +static struct omnibook_feature __declared_feature battery_driver = { + .name = "battery", +#ifdef CONFIG_OMNIBOOK_LEGACY + .enabled = 1, +#else + .enabled = 0, +#endif + .read = omnibook_battery_read, + .ectypes = XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X, /* FIXME: OB500|OB6000|OB6100|XE4500 */ + .tbl = battery_table, +}; + +module_param_named(battery, battery_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(battery, "Use 0 to disable, 1 to enable battery status monitoring"); +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/display.c +++ linux-2.6.35/ubuntu/omnibook/display.c @@ -0,0 +1,114 @@ +/* + * display.c -- External display (LCD,VGA,TV-OUT) feature + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static const char display_name[][16] = { + "Internal LCD", + "External VGA", + "External TV-OUT", + "External DVI", +}; + +static int omnibook_display_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int retval; + unsigned int sta, en_mask, det_mask; + + retval = backend_display_get(io_op, &sta); + if (retval < 0) + return retval; + + for (en_mask = DISPLAY_LCD_ON; en_mask <= DISPLAY_DVI_ON; en_mask = en_mask << 1) { + det_mask = en_mask << 4; /* see display masks in omnibook.h */ + if (!(retval & en_mask) && !(retval & det_mask)) + continue; /* not supported */ + len += sprintf(buffer + len, "%s:", display_name[ffs(en_mask) - 1]); + if (retval & det_mask) + len += + sprintf(buffer + len, " display %s", + (sta & det_mask) ? "present" : "absent"); + if (retval & en_mask) + len += + sprintf(buffer + len, " port %s", + (sta & en_mask) ? "enabled" : "disabled"); + len += sprintf(buffer + len, "\n"); + } + + return len; +} + +static int omnibook_display_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + unsigned int state; + char *endp; + + state = simple_strtoul(buffer, &endp, 16); + if (endp == buffer) + return -EINVAL; + else + retval = backend_display_set(io_op, state); + + return retval; +} + +static struct omnibook_feature display_driver; + +static int __init omnibook_display_init(struct omnibook_operation *io_op) +{ + int retval; + unsigned int state; + + /* Disable file writing if unsuported by backend */ + if (!io_op->backend->display_set) + display_driver.write = NULL; + + retval = backend_display_get(io_op, &state); + if (retval < 0) + return retval; + else + return 0; +} + +static struct omnibook_tbl display_table[] __initdata = { + {TSM70 | TSX205, {ACPI,}}, + {TSM40, {SMI, SMI_GET_DISPLAY_STATE, SMI_SET_DISPLAY_STATE, 0, 0, 0}}, + {XE3GF | TSP10 | TSM70 | TSM30X | TSM40, SIMPLE_BYTE(EC, XE3GF_STA1, XE3GF_SHDD_MASK)}, + {XE3GC, SIMPLE_BYTE(EC, XE3GC_STA1, XE3GC_CRTI_MASK)}, + {OB500 | OB510 | OB6000 | OB6100 | XE4500, SIMPLE_BYTE(EC, OB500_STA1, OB500_CRTS_MASK)}, + {OB4150, SIMPLE_BYTE(EC, OB4150_STA2, OB4150_CRST_MASK)}, + {0,} +}; + +static struct omnibook_feature __declared_feature display_driver = { + .name = "display", + .enabled = 1, + .init = omnibook_display_init, + .read = omnibook_display_read, + .write = omnibook_display_write, + .ectypes = + XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | OB4150 | TSP10 | TSM70 | TSM30X | + TSM40 | TSX205, + .tbl = display_table, +}; + +module_param_named(display, display_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(display, "Use 0 to disable, 1 to enable display status handling"); +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/throttling.c +++ linux-2.6.35/ubuntu/omnibook/throttling.c @@ -0,0 +1,83 @@ +/* + * throttling.c --CPU throttling control feature + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Mathieu Bérard , 2007 + */ + +#include "omnibook.h" +#include "hardware.h" + +/* + * Throttling level/rate mapping found in ICH6M datasheets + * the output is set to mimic the one of /proc/acpi/cpu/CPU0/throttling + * XXX: We always assume that there are 8 T-States and one processor. + */ +static const int trate[8] = { 0, 12, 25, 37, 50, 62, 75, 87 }; + +static int omnibook_throttle_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int tstate = 0; + int retval, i; + + retval = backend_throttle_get(io_op, &tstate); + if (retval < 0) + return retval; + + len += sprintf(buffer + len, "state count: 8\n"); + len += sprintf(buffer + len, "active state: T%d\n", tstate); + for (i = 0; i < 8; i += 1) + { + len += sprintf(buffer + len, " %cT%d: %02d%%\n", + (i == tstate ? '*' : ' '), + i, + trate[i]); + } + + return len; +} + +static int omnibook_throttle_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval = 0; + int data; + char *endp; + + data = simple_strtoul(buffer, &endp, 10); + if ((endp == buffer) || (data > 7)) /* There are 8 throttling levels */ + return -EINVAL; + else + retval = backend_throttle_set(io_op, data); + + return retval; +} + + +static struct omnibook_tbl throttle_table[] __initdata = { + {TSM70 | TSX205, {ACPI,}}, + {0,} +}; + +struct omnibook_feature __declared_feature throttle_driver = { + .name = "throttling", + .enabled = 1, + .read = omnibook_throttle_read, + .write = omnibook_throttle_write, + .ectypes = TSM70 | TSX205, + .tbl = throttle_table, +}; + +module_param_named(throttle, throttle_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(throttle, "Use 0 to disable, 1 to enable CPU throttling control"); + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/temperature.c +++ linux-2.6.35/ubuntu/omnibook/temperature.c @@ -0,0 +1,55 @@ +/* + * temperature.c -- CPU temprature monitoring + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_temperature_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int retval; + u8 temp; + + if ((retval = backend_byte_read(io_op, &temp))) + return retval; + + len += sprintf(buffer + len, "CPU temperature: %2d C\n", temp); + + return len; +} + +static struct omnibook_tbl temp_table[] __initdata = { + {XE3GF | TSP10 | TSM70 | TSM30X | TSX205, SIMPLE_BYTE(EC, XE3GF_CTMP, 0)}, + {XE3GC | AMILOD, SIMPLE_BYTE(EC, XE3GC_CTMP, 0)}, + {OB500 | OB510 | OB6000 | OB6100 | XE4500 | XE2, SIMPLE_BYTE(EC, OB500_CTMP, 0)}, + {OB4150, SIMPLE_BYTE(EC, OB4150_TMP, 0)}, + {0,} +}; + +static struct omnibook_feature __declared_feature temperature_driver = { + .name = "temperature", + .enabled = 1, + .read = omnibook_temperature_read, + .ectypes = + XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | OB4150 | XE2 | AMILOD | TSP10 + | TSM70 | TSM30X | TSX205, + .tbl = temp_table, +}; + +module_param_named(temperature, temperature_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(temperature, "Use 0 to disable, 1 to enable thermal status and policy support"); +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/muteled.c +++ linux-2.6.35/ubuntu/omnibook/muteled.c @@ -0,0 +1,109 @@ +/* + * mutled.c -- MUTE LED control + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Thomas Perl , 2006 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_muteled_set(struct omnibook_operation *io_op, int status) +{ + int retval = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if((retval = __omnibook_toggle(io_op, !!status))) { + printk(O_ERR "Failed muteled %s command.\n", status ? "on" : "off"); + goto out; + } + + io_op->backend->muteled_state = !!status; + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Hardware query is unsupported, reading is unreliable. + */ +static int omnibook_muteled_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + len += + sprintf(buffer + len, "Last mute LED action was an %s command.\n", + io_op->backend->touchpad_state ? "on" : "off"); + + mutex_unlock(&io_op->backend->mutex); + return len; +} + +static int omnibook_muteled_write(char *buffer, struct omnibook_operation *io_op) +{ + int cmd; + + if (*buffer == '0' || *buffer == '1') { + cmd = *buffer - '0'; + if (!omnibook_muteled_set(io_op, cmd)) { + dprintk("Switching mute LED to %s state.\n", cmd ? "on" : "off"); + } + } else { + return -EINVAL; + } + return 0; +} + +/* + * May re-enable muteled upon resume + */ +static int omnibook_muteled_resume(struct omnibook_operation *io_op) +{ + int retval; + mutex_lock(&io_op->backend->mutex); + retval = __omnibook_toggle(io_op, !!io_op->backend->touchpad_state); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Switch muteled off upon exit + */ +static void __exit omnibook_muteled_cleanup(struct omnibook_operation *io_op) +{ + omnibook_muteled_set(io_op, 0); +} + +static struct omnibook_tbl muteled_table[] __initdata = { + {XE4500, COMMAND(KBC, OMNIBOOK_KBC_CMD_MUTELED_ON, OMNIBOOK_KBC_CMD_MUTELED_OFF)}, + {0,} +}; + +static struct omnibook_feature __declared_feature muteled_driver = { + .name = "muteled", + .enabled = 1, + .read = omnibook_muteled_read, + .write = omnibook_muteled_write, + .exit = omnibook_muteled_cleanup, + .resume = omnibook_muteled_resume, + .ectypes = XE4500, + .tbl = muteled_table, +}; + +module_param_named(muteled, muteled_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(muteled, "Use 0 to disable, 1 to enable 'Audo Mute' LED control"); --- linux-2.6.35.orig/ubuntu/omnibook/laptop.h +++ linux-2.6.35/ubuntu/omnibook/laptop.h @@ -0,0 +1,1077 @@ +/* + * laptop.h -- Various structures about supported hardware + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Written by Mathieu Bérard , 2006 + */ + + +#define HP_SIGNATURE "Hewlett-Packard" + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) +static int __init dmi_matched(struct dmi_system_id *dmi); +#else +static int __init dmi_matched(const struct dmi_system_id *dmi); +#endif + +static struct dmi_system_id omnibook_ids[] __initdata = { + { + .callback = dmi_matched, + .ident = "HP OmniBook XE3 GF", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GF"), + }, + .driver_data = (void *) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook XT1000", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XT1000"), + }, + .driver_data = (void *) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook XE2 DC", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE2 DC"), + }, + .driver_data = (void *) XE2 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook XE3 GC", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GC"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook XE3 GD / Pavilion N5430", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GD"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook XE3 GE / Pavilion N5415", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GE"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 500 FA", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 500 FA"), + }, + .driver_data = (void*) OB500 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 510 FB", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 510 FB"), + }, + .driver_data = (void*) OB510 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 4150", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 4150"), + }, + .driver_data = (void*) OB4150 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 900 B", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 900 B"), + }, + .driver_data = (void*) OB4150 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 6000 EA", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 6000 EA"), + }, + .driver_data = (void*) OB6000 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 6100 EB", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 6100 EB"), + }, + .driver_data = (void*) OB6100 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook xe4000/xe4100", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook xe4000"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook xe4400", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook xe4400"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook xe4500", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook xe4500"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 6200 EG / vt6200 / xt 6200", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 6200 EG"), + }, + .driver_data = (void*) XE4500 + }, + /* There are no model specific strings of some HP OmniBook XT1500 */ + { + .callback = dmi_matched, + .ident = "HP OmniBook XT1500", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ze4000 / ze4125", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP NoteBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP NoteBook ze4000"), + }, + .driver_data = (void*) XE4500 + }, + /* There are no model specific strings of some HP Pavilion xt155 and some HP Pavilion ze4100 + * There are no model specific strings of some HP nx9000 */ + { + .callback = dmi_matched, + .ident = "HP Pavilion xt155 / ze4100 / nx9000", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP NoteBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP NoteBook PC"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ZU1000 FA / ZU1000 FA / ZU1175", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion ZU1000 FA"), + }, + .driver_data = (void*) OB500 + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion Notebook XE3 GC / N5290", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook XE3 GC"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion Notebook GD / N5441", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook Model GD"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion Notebook GE / XH545", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook Model GE"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion Notebook ZT1000 / ZT1141", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook ZT1000"), + }, + .driver_data = (void*) XE3GF + }, + /* There are no model specific strings of some HP Pavilion ZT1175 and ZT1195 notebooks */ + { + .callback = dmi_matched, + .ident = "HP Pavilion ZT1175 / ZT1195", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ze4200 series", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze4200"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ze4300 series", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze4300"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ze4500 series", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze4500"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ze8500 series", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze8500"), + }, + .driver_data = (void*) XE4500 + }, + /* Compaq nx9000 */ + { + .callback = dmi_matched, + .ident = "HP Compaq nx9000", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP nx9000"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Compaq nx9005", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP nx9005"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Compaq nx9010", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP nx9010"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1000", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1000"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1005", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1005"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1110", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1110"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1115", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1115"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1130", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1130"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1700-100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1700-100"), + }, + .driver_data = (void*) AMILOD + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1700-200", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1700-200"), + }, + .driver_data = (void*) AMILOD + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1700-300", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1700-300"), + }, + .driver_data = (void*) AMILOD + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1700-400", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1700-400"), + }, + .driver_data = (void*) AMILOD + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1700-500", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1700-500"), + }, + .driver_data = (void*) AMILOD + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1900", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1900"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1905", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1905"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1950", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1950"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1955", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1955"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 2430", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S2430"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 2435", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S2435"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 3000", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S3000"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 3005", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S3005"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1000", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1000"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1005", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1005"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1110", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1110"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1115", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1115"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1115", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Toshiba 1115"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1900", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1900"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1905", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1905"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1950", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1950"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1955", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1955"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 2430", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 2430"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 2435", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 2435"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 3000", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 3000"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 3005", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 3005"), + }, + .driver_data = (void*) XE3GF, + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite A70", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A70"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite A75", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A75"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite A80", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A80"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite A105", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A105"), + }, + .driver_data = (void*) TSA105 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite A100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A100"), + }, + .driver_data = (void*) TSA105 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite P100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P100"), + }, + .driver_data = (void*) TSA105 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite P10", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P10"), + }, + .driver_data = (void*) TSP10 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite P15", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P15"), + }, + .driver_data = (void*) TSP10 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite P20", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P20"), + }, + .driver_data = (void*) TSP10 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite P25", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P25"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M30X", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M30X"), + }, + .driver_data = (void*) TSM30X + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M35X", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M35X"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M50", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M50"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M60", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M60"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M70", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M70"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE M100"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M100"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M115", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M115"), + }, + .driver_data = (void*) TSA105 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M40X", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M40X"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M40", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M40"), + }, + .driver_data = (void*) TSM40 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M45", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M45"), + }, + .driver_data = (void*) TSM40 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite X205-S9800", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite X205"), + }, + .driver_data = (void*) TSX205 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Tecra S1", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "TECRA S1"), + }, + .driver_data = (void*) TSM40 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Tecra S1", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Tecra S1"), + }, + .driver_data = (void*) TSM40 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Tecra S2", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Tecra S2"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Tecra A4", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Tecra A4"), + }, + .driver_data = (void*) TSM40 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Tecra A6", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "TECRA A6"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Equium A110", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "EQUIUM A110"), + }, + .driver_data = (void*) TSM30X /* FIXME: provisional */ + }, + { + .callback = dmi_matched, + .ident = "Compal ACL00", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"), + DMI_MATCH(DMI_BOARD_NAME, "ACL00"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Compal ACL10", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"), + DMI_MATCH(DMI_BOARD_NAME, "ACL10"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Fujitsu-Siemens Amilo D series", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), + DMI_MATCH(DMI_PRODUCT_NAME, "Amilo D-Series"), + }, + .driver_data = (void*) AMILOD + }, +/* HP Technology code Matching: + * Technology code appears in the first two chracters of BIOS version string + * ended by a dot, but it prefixed a space character on some models and BIOS + * versions. + * New HP/Compaq models use more characters (eg. KF_KH.). + */ + { + .callback = dmi_matched, + .ident = "HP model with technology code CI", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "CI."), + }, + .driver_data = (void*) OB4150 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code CL", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "CL."), + }, + .driver_data = (void*) OB4150 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code DC", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "DC."), + }, + .driver_data = (void*) XE2 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code EA", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "EA."), + }, + .driver_data = (void*) OB6000 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code EB", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "EB."), + }, + .driver_data = (void*) OB6100 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code EG", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "EG."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code FA", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "FA."), + }, + .driver_data = (void*) OB500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code FB", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "FB."), + }, + .driver_data = (void*) OB510 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code GC", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "GC."), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code GD", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "GD."), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code GE", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "GE."), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code GF", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "GF."), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code IB", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "IB."), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code IC", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "IC."), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code ID", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "ID."), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KA", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KA."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KB", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KB."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KC", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KC."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KD", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KD."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KE", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KE."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KE_KG", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KE_KG."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KF_KH", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KF_KH."), + }, + .driver_data = (void*) XE4500 + }, + { NULL, } +}; --- linux-2.6.35.orig/ubuntu/omnibook/wireless.c +++ linux-2.6.35/ubuntu/omnibook/wireless.c @@ -0,0 +1,108 @@ +/* + * wireless.c Wifi feature + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Mathieu Bérard , 2006 + * + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_wifi_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int retval; + unsigned int state; + + if ((retval = backend_aerial_get(io_op, &state))) + return retval; + + len += + sprintf(buffer + len, "Wifi adapter is %s", (state & WIFI_EX) ? "present" : "absent"); + if (state & WIFI_EX) + len += + sprintf(buffer + len, " and %s", (state & WIFI_STA) ? "enabled" : "disabled"); + len += sprintf(buffer + len, ".\n"); + len += + sprintf(buffer + len, "Wifi Kill switch is %s.\n", (state & KILLSWITCH) ? "on" : "off"); + + return len; + +} + +static int omnibook_wifi_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval = 0; + unsigned int state; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if ((retval = __backend_aerial_get(io_op, &state))) + goto out; + + if (*buffer == '0') + state &= ~WIFI_STA; + else if (*buffer == '1') + state |= WIFI_STA; + else { + retval = -EINVAL; + goto out; + } + + if ((retval = __backend_aerial_set(io_op, state))) + return retval; + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static struct omnibook_feature wifi_driver; + +static int __init omnibook_wifi_init(struct omnibook_operation *io_op) +{ + int retval = 0; + unsigned int state; + +/* + * Refuse enabling/disabling a non-existent device + */ + + if ((retval = backend_aerial_get(io_op, &state))) + return retval; + + if (!(state & WIFI_EX)) + wifi_driver.write = NULL; + + return retval; +} + +static struct omnibook_tbl wireless_table[] __initdata = { + {TSM70 | TSX205, {ACPI,}}, /* stubs to select backend */ + {TSM40, {SMI,}}, /* stubs to select backend */ + {0,} +}; + +static struct omnibook_feature __declared_feature wifi_driver = { + .name = "wifi", + .enabled = 1, + .read = omnibook_wifi_read, + .write = omnibook_wifi_write, + .init = omnibook_wifi_init, + .ectypes = TSM70 | TSM40 | TSX205, + .tbl = wireless_table, +}; + +module_param_named(wifi, wifi_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(wifi, "Use 0 to disable, 1 to enable Wifi adapter control"); --- linux-2.6.35.orig/ubuntu/omnibook/BOM +++ linux-2.6.35/ubuntu/omnibook/BOM @@ -0,0 +1,2 @@ +Downloaded from: http://sourceforge.net/projects/omke/ +Current Version: 2.20070211 --- linux-2.6.35.orig/ubuntu/omnibook/compal.c +++ linux-2.6.35/ubuntu/omnibook/compal.c @@ -0,0 +1,526 @@ +/* + * compal.c -- EC PIO Command/Data/Index mode low-level access code + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Mathieu Bérard , 2006 + * + */ + +#include "omnibook.h" + +#include +#include +#include +#include + +#include +#include "hardware.h" + +/* + * ATI's IXP PCI-LPC bridge + */ +#define PCI_DEVICE_ID_ATI_SB400 0x4377 + +/* + * PCI Config space regiser + * Laptop with Intel ICH Chipset + * See ICH6M and ICH7M spec + */ +#define INTEL_LPC_GEN1_DEC 0x84 +#define INTEL_LPC_GEN4_DEC 0x90 +#define INTEL_IOPORT_BASE 0xff2c + +/* + * PCI Config space regiser + * Laptop with ATI Chipset + * FIXME Untested, name unknown + */ +#define ATI_LPC_REG 0x4a +#define ATI_IOPORT_BASE 0xfd60 + +/* + *This interface uses 2 ports for command and 1 port for data + *These are relative to the ioport_base address + */ + +#define PIO_PORT_COMMAND1 0x1 +#define PIO_PORT_COMMAND2 0x2 +#define PIO_PORT_DATA 0x3 + +/* + * Private data of this backend + */ +static struct pci_dev *lpc_bridge; /* Southbridge chip ISA bridge/LPC interface PCI device */ +static u32 ioport_base; /* PIO base adress */ +static union { + u16 word; + u32 dword; +} pci_reg_state; /* Saved state of register in PCI config spave */ + +/* + * Possible list of supported southbridges + * Here mostly to implement a more or less clean PCI probing + * Works only because of previous DMI probing. + * Shared with nbsmi backend + */ +const struct pci_device_id lpc_bridge_table[] = { + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AA_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AB_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_10, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_12, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801E_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_30, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_31, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_4, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SB400, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {0,}, /* End of list */ +}; + +/* + * Low-level Read function: + * Write a 2-bytes wide command to the COMMAND ports + * Read the result in the DATA port + */ +static unsigned char lowlevel_read(u16 command) +{ + unsigned char data; + outb((command & 0xff00) >> 8, ioport_base + PIO_PORT_COMMAND1); + outb(command & 0x00ff, ioport_base + PIO_PORT_COMMAND2); + data = inb(ioport_base + PIO_PORT_DATA); + return data; +} + +/* + * Low-level Write function: + * Write a 2-bytes wide command to the COMMAND ports + * Write the result in the DATA port + */ +static void lowlevel_write(u16 command, u8 data) +{ + outb((command & 0xff00) >> 8, ioport_base + PIO_PORT_COMMAND1); + outb(command & 0x00ff, ioport_base + PIO_PORT_COMMAND2); + outb(data, ioport_base + PIO_PORT_DATA); +} + +/* + * Probe for a state of the PIO Command/Data/Index interface + * Give some time for the controler to settle in the desired state + * mode significance: + * 0: Waiting for command + * 1,2,3: I am confused FIXME + */ +static int check_cdimode_flag(unsigned int mode) +{ + int i; + int retval; + + /*dprintk("Index mode:");*/ + for (i = 1; i <= 250; i++) { + retval = lowlevel_read(0xfbfc); + /*dprintk_simple(" [%i]", retval);*/ + if (retval == mode) { + /*dprintk_simple(".\n"); + dprintk("Index Mode Ok (%i) after %i iter\n", mode, i);*/ + return 0; + } + udelay(100); + } + printk(O_ERR "check_cdimode_flag timeout.\n"); + return -ETIME; +} + +/* + * Check for conventional default (0xf432) state in Commad ports + */ +static int check_default_state(void) +{ + int i; + + for (i = 1; i <= 250; i++) { + if ((inb(ioport_base + PIO_PORT_COMMAND1) == 0xf4) + && (inb(ioport_base + PIO_PORT_COMMAND2) == 0x32)) + return 0; + udelay(100); + } + printk(O_ERR "check_default_state timeout.\n"); + return -ETIME; +} + +/* + * Enable EC Command/Data/Index PIO Access and then check EC state. + * Enabling is done in PCI config space of the LPC bridge. + * + * Just after Enabling, the EC should be in a precisly defined state: + * - PIO should be in a conventional default state (0xf432 in the Command ports) + * - Command/Data/Index interface waiting for command + * The EC is expected to be in that state prior to any attempt to use the interface. + * + */ +static int enable_cdimode(void) +{ + union { + u16 word; + u32 dword; + } value; + + switch (lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + switch (lpc_bridge->device) { + case PCI_DEVICE_ID_INTEL_ICH7_0: /* ICH7 */ + case PCI_DEVICE_ID_INTEL_ICH7_1: + case PCI_DEVICE_ID_INTEL_ICH7_30: + case PCI_DEVICE_ID_INTEL_ICH7_31: + case PCI_DEVICE_ID_INTEL_ICH8_4: /* ICH8 */ + pci_read_config_dword(lpc_bridge, INTEL_LPC_GEN4_DEC, &(value.dword)); + pci_reg_state.dword = value.dword; + value.dword = 0x3CFF21; + pci_write_config_dword(lpc_bridge, INTEL_LPC_GEN4_DEC, value.dword); + break; + default: /* All other Intel chipset */ + pci_read_config_word(lpc_bridge, INTEL_LPC_GEN1_DEC, &(value.word)); + pci_reg_state.word = value.word; + value.word = (INTEL_IOPORT_BASE & 0xfff1) | 0x1; + pci_write_config_word(lpc_bridge, INTEL_LPC_GEN1_DEC, value.word); + } + break; + case PCI_VENDOR_ID_ATI: + pci_read_config_dword(lpc_bridge, ATI_LPC_REG, &(value.dword)); + pci_reg_state.dword = value.dword; + value.dword = ((pci_reg_state.dword & 0x7f) | 0x80) << 0x10; + pci_write_config_dword(lpc_bridge, ATI_LPC_REG, value.dword); + break; + default: + BUG(); + } + dprintk("Saved state of PCI register: [%x].\n", pci_reg_state.dword); + + if (check_default_state() || check_cdimode_flag(0)) { + printk(O_ERR "EC state check failure, please report.\n"); + return -EIO; + } + + return 0; + +} + +/* + * Send a write command and associated data code to be written + * Known commands an associated code significance: + * 0xfbfd: Select Index with 'code' ordinal + * 0xfbfe: Set to 'code' a previously selected Index + * 0xfbfc: Set CDI mode flag + */ +static int send_ec_cmd(unsigned int command, u8 code) +{ + lowlevel_write(0xfbfc, 0x2); + lowlevel_write(command, code); + lowlevel_write(0xfbfc, 0x1); + if (check_cdimode_flag(2)) + return -ETIME; + return 0; +} + +/* + * Send a read command + * Known commands an associated code significance: + * 0xfbfe: Read a previously selected Index + * 0xfbfc: Set CDI mode flag + */ +static int read_ec_cmd(unsigned int command, u8 * value) +{ + *value = lowlevel_read(command); + lowlevel_write(0xfbfc, 0x1); + if (check_cdimode_flag(2)) + return -ETIME; + return 0; +} + +/* + * Disable EC Command/Data/Index PIO Access + * Step 1: clear_cdimode + * Send Disable command + * Revert PIO interface to conventional default state (0xf432 in the Command ports) + * Step 2: clear_cdimode_pci + * Disable the interface in the PCI config space of the Southbridge + * These steps are separated due to constrains in error path treatement + */ +static void clear_cdimode(void) +{ + lowlevel_write(0xfbfc, 0x0); + outb(0xf4, ioport_base + PIO_PORT_COMMAND1); + outb(0x32, ioport_base + PIO_PORT_COMMAND2); +} + +static void clear_cdimode_pci(void) +{ + switch (lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + switch (lpc_bridge->device) { + case PCI_DEVICE_ID_INTEL_ICH7_0: /* ICH7 */ + case PCI_DEVICE_ID_INTEL_ICH7_1: + case PCI_DEVICE_ID_INTEL_ICH7_30: + case PCI_DEVICE_ID_INTEL_ICH7_31: + case PCI_DEVICE_ID_INTEL_ICH8_4: /* ICH8 */ + pci_write_config_dword(lpc_bridge, INTEL_LPC_GEN4_DEC, pci_reg_state.dword); + break; + default: /* All other Intel chipset */ + pci_write_config_word(lpc_bridge, INTEL_LPC_GEN1_DEC, pci_reg_state.word); + } + break; + case PCI_VENDOR_ID_ATI: + pci_write_config_dword(lpc_bridge, ATI_LPC_REG, pci_reg_state.dword); + break; + default: + BUG(); + } +} + +/* + * Try to init the backend + * This function can be called blindly as it use a kref + * to check if the init sequence was already done. + */ +static int omnibook_cdimode_init(const struct omnibook_operation *io_op) +{ + int retval = 0; + int i; + + /* ectypes other than TSM70 have no business with this backend */ + if (!(omnibook_ectype & (TSM70 | TSX205))) + return -ENODEV; + + if (io_op->backend->already_failed) { + dprintk("CDI backend init already failed, skipping.\n"); + return -ENODEV; + } + + if (!lpc_bridge) { + /* Fist use of the backend */ + dprintk("Try to init cdimode\n"); + mutex_init(&io_op->backend->mutex); + mutex_lock(&io_op->backend->mutex); + kref_init(&io_op->backend->kref); + + /* PCI probing: find the LPC Super I/O bridge PCI device */ + for (i = 0; !lpc_bridge && lpc_bridge_table[i].vendor; ++i) + lpc_bridge = + pci_get_device(lpc_bridge_table[i].vendor, lpc_bridge_table[i].device, + NULL); + + if (!lpc_bridge) { + printk(O_ERR "Fail to find a supported LPC I/O bridge, please report\n"); + retval = -ENODEV; + goto error1; + } + + if ((retval = pci_enable_device(lpc_bridge))) { + printk(O_ERR "Unable to enable PCI device.\n"); + goto error2; + } + + switch (lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + ioport_base = INTEL_IOPORT_BASE; + break; + case PCI_VENDOR_ID_ATI: + ioport_base = ATI_IOPORT_BASE; + break; + default: + BUG(); + } + + if (!request_region(ioport_base, 4, OMNIBOOK_MODULE_NAME)) { + printk(O_ERR "Request I/O region error\n"); + retval = -ENODEV; + goto error2; + } + + /* + * Make an enable-check disable cycle for testing purpose + */ + + retval = enable_cdimode(); + if (retval) + goto error3; + + clear_cdimode(); + clear_cdimode_pci(); + + dprintk("Cdimode init ok\n"); + mutex_unlock(&io_op->backend->mutex); + return 0; + } else { + dprintk("Cdimode has already been initialized\n"); + kref_get(&io_op->backend->kref); + return 0; + } + + error3: + clear_cdimode_pci(); + release_region(ioport_base, 4); + error2: + pci_dev_put(lpc_bridge); + lpc_bridge = NULL; + error1: + io_op->backend->already_failed = 1; + mutex_unlock(&io_op->backend->mutex); + mutex_destroy(&io_op->backend->mutex); + return retval; +} + +static void cdimode_free(struct kref *ref) +{ + struct omnibook_backend *backend; + + dprintk("Cdimode not used anymore: disposing\n"); + + backend = container_of(ref, struct omnibook_backend, kref); + + mutex_lock(&backend->mutex); + pci_dev_put(lpc_bridge); + release_region(ioport_base, 4); + lpc_bridge = NULL; + mutex_unlock(&backend->mutex); + mutex_destroy(&backend->mutex); +} + +static void omnibook_cdimode_exit(const struct omnibook_operation *io_op) +{ + /* ectypes other than TSM70 have no business with this backend */ + BUG_ON(!(omnibook_ectype & (TSM70 | TSX205))); + dprintk("Trying to dispose cdimode\n"); + kref_put(&io_op->backend->kref, cdimode_free); +} + +/* + * Read EC index and write result to value + * 'EC index' here is unrelated to an index in the EC registers + */ +static int omnibook_cdimode_read(const struct omnibook_operation *io_op, u8 * value) +{ + int retval = 0; + + if (!lpc_bridge) + return -ENODEV; + + retval = enable_cdimode(); + if (retval) + goto out; + retval = send_ec_cmd(0xfbfd, (unsigned int)io_op->read_addr); + if (retval) + goto error; + retval = read_ec_cmd(0xfbfe, value); + + if (io_op->read_mask) + *value &= io_op->read_mask; + + error: + clear_cdimode(); + out: + clear_cdimode_pci(); + return retval; +} + +/* + * Write value + * 'EC index' here is unrelated to an index in the EC registers + */ +static int omnibook_cdimode_write(const struct omnibook_operation *io_op, u8 value) +{ + int retval = 0; + + if (!lpc_bridge) + return -ENODEV; + + retval = enable_cdimode(); + if (retval) + goto out; + retval = send_ec_cmd(0xfbfd, (unsigned int)io_op->write_addr); + if (retval) + goto error; + retval = send_ec_cmd(0xfbfe, value); + error: + clear_cdimode(); + out: + clear_cdimode_pci(); + return retval; + +} + +/* + * Fn+foo and multimedia hotkeys handling + */ +static int omnibook_cdimode_hotkeys(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval; + + struct omnibook_operation hotkeys_op = + { CDI, 0, TSM70_FN_INDEX, 0, TSM70_FN_ENABLE, TSM70_FN_DISABLE}; + + /* Fn+foo handling */ + retval = __omnibook_toggle(&hotkeys_op, !!(state & HKEY_FN)); + if (retval < 0) + return retval; + + /* Multimedia keys handling */ + hotkeys_op.write_addr = TSM70_HOTKEYS_INDEX; + hotkeys_op.on_mask = TSM70_HOTKEYS_ENABLE; + hotkeys_op.off_mask = TSM70_HOTKEYS_DISABLE; + retval = __omnibook_toggle(&hotkeys_op, !!(state & HKEY_MULTIMEDIA)); + + return retval; +} + +/* Scan index space, this hard locks my machine */ +#if 0 +static int compal_scan(char *buffer) +{ + int len = 0; + int i, j; + u8 v; + + for (i = 0; i < 255; i += 16) { + for (j = 0; j < 16; j++) { + omnibook_compal_read(i + j, &v); + len += sprintf(buffer + len, "Read index %02x: %02x\n", i + j, v); + mdelay(500); + } + if (j != 16) + break; + } + + return len; +} +#endif + +struct omnibook_backend compal_backend = { + .name = "compal", + .hotkeys_write_cap = HKEY_MULTIMEDIA | HKEY_FN, + .init = omnibook_cdimode_init, + .exit = omnibook_cdimode_exit, + .byte_read = omnibook_cdimode_read, + .byte_write = omnibook_cdimode_write, + .hotkeys_set = omnibook_cdimode_hotkeys, +}; + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/lcd.c +++ linux-2.6.35/ubuntu/omnibook/lcd.c @@ -0,0 +1,207 @@ +/* + * lcd.c -- LCD brightness and on/off + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Maciek Górniak , 2002 + * Modified by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include + +#ifdef CONFIG_OMNIBOOK_BACKLIGHT +#include +#endif + +#include "hardware.h" + +unsigned int omnibook_max_brightness; + +#ifdef CONFIG_OMNIBOOK_BACKLIGHT +static struct backlight_device *omnibook_backlight_device; + +static int omnibook_get_backlight(struct backlight_device *bd); +static int omnibook_set_backlight(struct backlight_device *bd); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) +static struct backlight_ops omnibookbl_ops = { +#else /* 2.6.21 */ +static struct backlight_properties omnibookbl_data = { + .owner = THIS_MODULE, +#endif /* 2.6.21 */ + .get_brightness = omnibook_get_backlight, + .update_status = omnibook_set_backlight, +}; + +static int omnibook_get_backlight(struct backlight_device *bd) +{ + int retval = 0; + struct omnibook_operation *io_op; + u8 brgt; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) + io_op = bl_get_data(bd); +#else /* 2.6.23 */ + io_op = class_get_devdata(&bd->class_dev); +#endif /* 2.6.23 */ + retval = backend_byte_read(io_op, &brgt); + if (!retval) + retval = brgt; + + return retval; +} + +static int omnibook_set_backlight(struct backlight_device *bd) +{ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + u8 intensity = bd->props.brightness; +#else /* 2.6.21 */ + u8 intensity = bd->props->brightness; +#endif /* 2.6.21 */ + struct omnibook_operation *io_op; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) + io_op = bl_get_data(bd); +#else /* 2.6.23 */ + io_op = class_get_devdata(&bd->class_dev); +#endif /* 2.6.23 */ + return backend_byte_write(io_op, intensity); +} +#endif /* CONFIG_OMNIBOOK_BACKLIGHT */ + +static int omnibook_brightness_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + u8 brgt; + + backend_byte_read(io_op, &brgt); + + len += + sprintf(buffer + len, "LCD brightness: %2d (max value: %d)\n", brgt, + omnibook_max_brightness); + + return len; +} + +static int omnibook_brightness_write(char *buffer, struct omnibook_operation *io_op) +{ + unsigned int brgt = 0; + char *endp; + + if (strncmp(buffer, "off", 3) == 0) + omnibook_lcd_blank(1); + else if (strncmp(buffer, "on", 2) == 0) + omnibook_lcd_blank(0); + else { + brgt = simple_strtoul(buffer, &endp, 10); + if ((endp == buffer) || (brgt > omnibook_max_brightness)) + return -EINVAL; + else { + backend_byte_write(io_op, brgt); +#ifdef CONFIG_OMNIBOOK_BACKLIGHT +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + omnibook_backlight_device->props.brightness = brgt; +#else /* 2.6.21 */ + omnibookbl_data.brightness = brgt; +#endif +#endif + } + } + return 0; +} + +static int __init omnibook_brightness_init(struct omnibook_operation *io_op) +{ + /* + * FIXME: What is exactly the max value for each model ? + * I know that it's 7 for the TSM30X, TSM70, TSM40 and TSA105 + * and previous versions of this driver (wrongly) assumed it was 10 for + * all models. + * + * XE3GF + * TSM30X + * TSM70 + * TSM40 + * TSA105 + * TSX205 + */ + if (omnibook_ectype & (XE3GF | TSM70 | TSM30X | TSM40 | TSA105 | TSX205)) + omnibook_max_brightness = 7; + else { + omnibook_max_brightness = 10; + printk(O_WARN "Assuming that LCD brightness is between 0 and %i,\n", + omnibook_max_brightness); + printk(O_WARN + "please contact http://sourceforge.net/projects/omnibook to confirm.\n"); + } + +#ifdef CONFIG_OMNIBOOK_BACKLIGHT + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + omnibook_backlight_device = + backlight_device_register(OMNIBOOK_MODULE_NAME, NULL, (void *)io_op, &omnibookbl_ops); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) + omnibook_backlight_device = + backlight_device_register(OMNIBOOK_MODULE_NAME, NULL, (void *)io_op, &omnibookbl_data); +#else /* < 2.6.20 */ + omnibook_backlight_device = + backlight_device_register(OMNIBOOK_MODULE_NAME, (void *)io_op, &omnibookbl_data); +#endif + if (IS_ERR(omnibook_backlight_device)) { + printk(O_ERR "Unable to register as backlight device.\n"); + return -ENODEV; + } + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + omnibook_backlight_device->props.max_brightness = omnibook_max_brightness; + backend_byte_read(io_op, (u8*) &omnibook_backlight_device->props.brightness); +#else /* < 2.6.21 */ + omnibookbl_data.max_brightness = omnibook_max_brightness; + backend_byte_read(io_op, (u8*) &omnibookbl_data.brightness); +#endif + +#endif /* CONFIG_OMNIBOOK_BACKLIGHT */ + return 0; +} +static void __exit omnibook_brightness_cleanup(struct omnibook_operation *io_op) +{ +#ifdef CONFIG_OMNIBOOK_BACKLIGHT + backlight_device_unregister(omnibook_backlight_device); +#endif +} + +static struct omnibook_tbl lcd_table[] __initdata = { + {TSM70 | TSX205, {CDI, TSM70_LCD_READ, TSM70_LCD_WRITE, 0, 0, 0}}, + {TSM40, {SMI, SMI_GET_LCD_BRIGHTNESS, SMI_SET_LCD_BRIGHTNESS, 0, 0, 0}}, + {XE3GF | TSP10 | TSM70 | TSM30X, SIMPLE_BYTE(EC, XE3GF_BRTS, XE3GF_BRTS_MASK)}, + {XE3GC, SIMPLE_BYTE(EC, XE3GC_BTVL, XE3GC_BTVL_MASK)}, + {AMILOD, SIMPLE_BYTE(EC, AMILOD_CBRG, XE3GC_BTVL_MASK)}, + {TSA105, SIMPLE_BYTE(EC, A105_BNDT, A105_BNDT_MASK)}, + {0,} +}; + +static struct omnibook_feature __declared_feature lcd_driver = { + .name = "lcd", + .enabled = 1, + .read = omnibook_brightness_read, + .write = omnibook_brightness_write, + .init = omnibook_brightness_init, + .exit = omnibook_brightness_cleanup, + .ectypes = XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X | TSM40 | TSA105 | TSX205, + .tbl = lcd_table, +}; + +module_param_named(lcd, lcd_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(lcd, "Use 0 to disable, 1 to enable to LCD brightness support"); + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/touchpad.c +++ linux-2.6.35/ubuntu/omnibook/touchpad.c @@ -0,0 +1,126 @@ +/* + * touchpad.c -- enable/disable touchpad + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_touchpad_set(struct omnibook_operation *io_op, int status) +{ + int retval = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if ((retval = __omnibook_toggle(io_op, !!status))) { + printk(O_ERR "Failed touchpad %sable command.\n", status ? "en" : "dis"); + goto out; + } + + io_op->backend->touchpad_state = !!status; + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Power management handlers: redisable touchpad on resume (if necessary) + */ +static int omnibook_touchpad_resume(struct omnibook_operation *io_op) +{ + int retval; + mutex_lock(&io_op->backend->mutex); + retval = __omnibook_toggle(io_op, !!io_op->backend->touchpad_state); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Hardware query is unsupported, so reading is unreliable. + */ +static int omnibook_touchpad_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + len += + sprintf(buffer + len, "Last touchpad action was an %s command.\n", + io_op->backend->touchpad_state ? "enable" : "disable"); + + mutex_unlock(&io_op->backend->mutex); + return len; +} + +static int omnibook_touchpad_write(char *buffer, struct omnibook_operation *io_op) +{ + int cmd; + + if (*buffer == '0' || *buffer == '1') { + cmd = *buffer - '0'; + if (!omnibook_touchpad_set(io_op, cmd)) { + dprintk("%sabling touchpad.\n", cmd ? "En" : "Dis"); + } + } else { + return -EINVAL; + } + return 0; +} + + +static int __init omnibook_touchpad_init(struct omnibook_operation *io_op) +{ + mutex_lock(&io_op->backend->mutex); + /* Touchpad is assumed to be enabled by default */ + io_op->backend->touchpad_state = 1; + mutex_unlock(&io_op->backend->mutex); + return 0; +} + +/* + * Reenable touchpad upon exit + */ +static void __exit omnibook_touchpad_cleanup(struct omnibook_operation *io_op) +{ + omnibook_touchpad_set(io_op, 1); + printk(O_INFO "Enabling touchpad.\n"); +} + +static struct omnibook_tbl touchpad_table[] __initdata = { + {XE3GF | XE3GC | TSP10, + COMMAND(KBC, OMNIBOOK_KBC_CMD_TOUCHPAD_ENABLE, OMNIBOOK_KBC_CMD_TOUCHPAD_DISABLE)}, + {TSM70, {CDI, 0, TSM70_FN_INDEX, 0, TSM70_TOUCHPAD_ON, TSM70_TOUCHPAD_OFF}}, + {0,} +}; + +static struct omnibook_feature __declared_feature touchpad_driver = { + .name = "touchpad", + .enabled = 1, + .read = omnibook_touchpad_read, + .write = omnibook_touchpad_write, + .init = omnibook_touchpad_init, + .exit = omnibook_touchpad_cleanup, + .resume = omnibook_touchpad_resume, + .ectypes = XE3GF | XE3GC | TSP10 | TSM70, + .tbl = touchpad_table, +}; + +module_param_named(touchpad, touchpad_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(touchpad, "Use 0 to disable, 1 to enable touchpad handling"); + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/hardware.h +++ linux-2.6.35/ubuntu/omnibook/hardware.h @@ -0,0 +1,582 @@ +/* + * hardware.h -- low level definitions to access Embedded Controller and co. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006-2007 + */ + +#include +#include "compat.h" + +/* + * Quite ugly: + * on_mask and off_maks are also used to store the i8042 data for kbc backend. + * an union seemed overkilled + */ + +struct omnibook_backend; + +struct omnibook_operation { + struct omnibook_backend *backend; + unsigned long read_addr; /* address for data reading */ + unsigned long write_addr; /* address for data writing */ + u8 read_mask; /* read mask */ + int on_mask; /* mask to set (pos value) or unset (neg value) to put feature in on state */ + int off_mask; /* mask to set (pos value) or unset (neg value) to put feature in off state */ +}; + +#define COMMAND(backend,data_on,data_off) { backend, 0, 0, 0, data_on, data_off } +#define SIMPLE_BYTE(backend,addr,mask) { backend, addr, addr, mask, 0, 0 } + +struct omnibook_tbl { + enum omnibook_ectype_t ectypes; + struct omnibook_operation io_op; +}; + +/* + * Backend interface definition + */ + +struct omnibook_backend { + const char *name; /* backend name */ + struct mutex mutex; /* serializes all access to backend functions */ + const unsigned int hotkeys_read_cap; /* hotkey probing mask */ + const unsigned int hotkeys_write_cap; /* hotkey setting mask */ + + /* Public data fields, access with mutex held */ + unsigned int hotkeys_state; /* saved hotkeys state */ + unsigned int touchpad_state; /* saved touchpad state */ + unsigned int muteled_state; /* saved muteled state */ + unsigned int cooling_state; /* saved cooling method state */ + + /* Public function pointers */ + int (*init) (const struct omnibook_operation *); + void (*exit) (const struct omnibook_operation *); + int (*byte_read) (const struct omnibook_operation *, u8 *); + int (*byte_write) (const struct omnibook_operation *, u8); + int (*aerial_get) (const struct omnibook_operation *, unsigned int *); + int (*aerial_set) (const struct omnibook_operation *, unsigned int); + int (*hotkeys_get) (const struct omnibook_operation *, unsigned int *); + int (*hotkeys_set) (const struct omnibook_operation *, unsigned int); + int (*display_get) (const struct omnibook_operation *, unsigned int *); + int (*display_set) (const struct omnibook_operation *, unsigned int); + int (*throttle_get) (const struct omnibook_operation *, unsigned int *); + int (*throttle_set) (const struct omnibook_operation *, unsigned int); + + /* Private fields, never to be accessed outside backend code */ + struct kref kref; /* Reference counter of this backend */ + void *data; /* private data pointer */ + int already_failed; /* Backend init already failed at least once */ +}; + +extern struct omnibook_backend kbc_backend; +extern struct omnibook_backend pio_backend; +extern struct omnibook_backend ec_backend; +extern struct omnibook_backend acpi_backend; +extern struct omnibook_backend nbsmi_backend; +extern struct omnibook_backend compal_backend; + +#define KBC &kbc_backend +#define PIO &pio_backend +#define EC &ec_backend +#define ACPI &acpi_backend +#define SMI &nbsmi_backend +#define CDI &compal_backend + +int __omnibook_apply_write_mask(const struct omnibook_operation *io_op, int toggle); +int __omnibook_toggle(const struct omnibook_operation *io_op, int toggle); + +/* + * Lock helper functions. Defines locking and __prefixed non locking variants. + */ + +#define helper_func(func) \ +static inline int backend_##func##_get(const struct omnibook_operation *io_op, unsigned int *data) \ +{ \ + int retval; \ + if(mutex_lock_interruptible(&io_op->backend->mutex)) \ + return -ERESTARTSYS; \ + retval = io_op->backend->func##_get(io_op, data); \ + mutex_unlock(&io_op->backend->mutex); \ + return retval; \ +} \ +static inline int backend_##func##_set(const struct omnibook_operation *io_op, unsigned int data) \ +{ \ + int retval; \ + if(mutex_lock_interruptible(&io_op->backend->mutex)) \ + return -ERESTARTSYS; \ + retval = io_op->backend->func##_set(io_op, data); \ + mutex_unlock(&io_op->backend->mutex); \ + return retval; \ +}\ +static inline int __backend_##func##_get(const struct omnibook_operation *io_op, unsigned int *data) \ +{ \ + int retval; \ + WARN_ON(!mutex_is_locked(&io_op->backend->mutex)); \ + retval = io_op->backend->func##_get(io_op, data); \ + return retval; \ +} \ +static inline int __backend_##func##_set(const struct omnibook_operation *io_op, unsigned int data) \ +{ \ + int retval; \ + WARN_ON(!mutex_is_locked(&io_op->backend->mutex)); \ + retval = io_op->backend->func##_set(io_op, data); \ + return retval; \ +} + +helper_func(aerial) +helper_func(hotkeys) +helper_func(display) +helper_func(throttle) + +static inline int backend_byte_read(const struct omnibook_operation *io_op, u8 *data) +{ + int retval; + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + retval = io_op->backend->byte_read(io_op, data); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static inline int backend_byte_write(const struct omnibook_operation *io_op, u8 data) +{ + int retval; + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + retval = io_op->backend->byte_write(io_op, data); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static inline int __backend_byte_read(const struct omnibook_operation *io_op, u8 *data) +{ + int retval; + WARN_ON(!mutex_is_locked(&io_op->backend->mutex)); + retval = io_op->backend->byte_read(io_op, data); + return retval; +} + +static inline int __backend_byte_write(const struct omnibook_operation *io_op, u8 data) +{ + int retval; + WARN_ON(!mutex_is_locked(&io_op->backend->mutex)); + retval = io_op->backend->byte_write(io_op, data); + return retval; +} + +static inline int omnibook_apply_write_mask(const struct omnibook_operation *io_op, int toggle) +{ + int retval; + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + retval = __omnibook_apply_write_mask(io_op, toggle); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static inline int omnibook_toggle(const struct omnibook_operation *io_op, int toggle) +{ + int retval; + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + retval = __omnibook_toggle(io_op, toggle); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Timeout in ms for sending to controller + */ + +#define OMNIBOOK_TIMEOUT 250 + + +/* + * Embedded controller adresses + */ + +#define XE3GF_CHGM 0x90 /* , 16 bit */ +#define XE3GF_CHGS 0x92 /* , 16 bit */ +#define XE3GF_CHGC 0x94 /* Current charge of board, 16 bit */ +#define XE3GF_CHGV 0x96 /* Current voltage, 16 bit */ +#define XE3GF_CHGA 0x98 /* Current intensity, 16 bit */ +#define XE3GF_BAL 0x9A /* Battery present status */ +#define XE3GF_STA1 0x9C /* Various status bits */ +#define XE3GF_CSPR 0xA1 /* Port replicator status, 1 bit */ +#define XE3GF_ADP 0xA3 /* AC acapter status, 1 bit */ +#define XE3GF_FOT 0xA5 /* Fan off temperature, 8 bit */ +#define XE3GF_FSD1 0xA6 /* Fan on temperature, 8 bit */ +#define XE3GF_FSD2 0xA7 /* Fan level 2 temperature, 8 bit */ +#define XE3GF_FSD3 0xA8 /* Fan level 3 temperature, 8 bit */ +#define XE3GF_FSD4 0xA9 /* Fan level 4 temperature, 8 bit */ +#define XE3GF_FSD5 0xAA /* Fan level 5 temperature, 8 bit */ +#define XE3GF_FSD6 0xAB /* Fan level 6 temperature, 8 bit */ +#define XE3GF_FSD7 0xAC /* Fan level 7 temperature, 8 bit */ +#define XE3GF_FSRD 0xAD /* Fan status, 8 bit */ +#define XE3GF_CTMP 0xB0 /* CPU tempetature, 8 bit */ +#define XE3GF_BRTS 0xB9 /* LCD brightness, 4 bit */ +#define XE3GF_BTY0 0xC0 /* Battery 0 type, 1 bit */ +#define XE3GF_BST0 0xC1 /* Battery 0 status, 3 bit */ +#define XE3GF_BRC0 0xC2 /* Battery 0 remaining capacity, 16 bit */ +#define XE3GF_BSN0 0xC4 /* Battery 0 serial number 16 bit */ +#define XE3GF_BPV0 0xC6 /* Battery 0 present voltage, 16 bit */ +#define XE3GF_BDV0 0xC8 /* Battery 0 design voltage 16 bit */ +#define XE3GF_BDC0 0xCA /* Battery 0 design capacity 16 bit */ +#define XE3GF_BFC0 0xCC /* Battery 0 last full capacity 16 bit */ +#define XE3GF_GAU0 0xCE /* Battery 0 gauge, 8 bit */ +#define XE3GF_BTY1 0xD0 /* Battery 1 type, 1 bit */ +#define XE3GF_BST1 0xD1 /* Battery 1 status, 3 bit */ +#define XE3GF_BRC1 0xD2 /* Battery 1 remaining capacity, 16 bit */ +#define XE3GF_BSN1 0xD4 /* Battery 1 serial number, 16 bit */ +#define XE3GF_BPV1 0xD6 /* Battery 1 present voltage, 16 bit */ +#define XE3GF_BDV1 0xD8 /* Battery 1 design voltage 16 bit */ +#define XE3GF_BDC1 0xDA /* Battery 1 design capacity 16 bit */ +#define XE3GF_BFC1 0xDC /* Battery 1 last full capacity 16 bit */ +#define XE3GF_GAU1 0xDE /* Battery 1 gauge, 8 bit */ + +/* + * Bitmasks for sub byte values + */ + +#define XE3GF_SHDD_MASK 0x40 /* External display status */ +#define XE3GF_CSPR_MASK 0x01 /* Port replicator status */ +#define XE3GF_ADP_MASK 0x20 /* AC acapter status */ +#define XE3GF_BAL0_MASK 0x01 /* Battery 0 present */ +#define XE3GF_BAL1_MASK 0x02 /* Battery 1 present */ +#define XE3GF_BMF_MASK 0x70 /* Model code */ +#define XE3GF_BTY_MASK 0x80 /* Type: Ni-MH or Li-Ion */ +#define XE3GF_BST_MASK_DSC 0x01 /* Discarging */ +#define XE3GF_BST_MASK_CHR 0x02 /* Charging */ +#define XE3GF_BST_MASK_CRT 0x04 /* Critical */ +#define XE3GF_FSRD_MASK_S1 0x01 /* Fan level 1 */ +#define XE3GF_FSRD_MASK_S2 0x02 /* Fan level 2 */ +#define XE3GF_FSRD_MASK_S3 0x04 /* Fan level 3 */ +#define XE3GF_FSRD_MASK_S4 0x08 /* Fan level 4 */ +#define XE3GF_FSRD_MASK_S5 0x10 /* Fan level 5 */ +#define XE3GF_FSRD_MASK_S6 0x20 /* Fan level 6 */ +#define XE3GF_FSRD_MASK_S7 0x40 /* Fan level 7 */ +#define XE3GF_BRTS_MASK 0x0F /* LCD brightness */ +#define XE3GF_FAN_ON_MASK 0x02 /* Fan on */ + +/* + * OmniBook XE3 GC values + */ + +#define XE3GC_CTMP 0x28 /* CPU tempetature, 8 bit */ +#define XE3GC_STA1 0x30 /* Various status bits */ +#define XE3GC_Q0A 0x31 /* Various status bits */ +#define XE3GC_CCUR 0x38 /* Current charge of board, 16 bit ? */ +#define XE3GC_CVOL 0x3A /* Current voltage, 16 bit ? */ +#define XE3GC_CARM 0x3C /* Current intensity, 16 bit ? */ +#define XE3GC_BAT 0x3E /* Battery present status */ +#define XE3GC_BST0 0x40 /* Battery 0 status, 3 bit */ +#define XE3GC_BPR0 0x41 /* Battery 0 present rate, 16 bit ? */ +#define XE3GC_BRC0 0x43 /* Battery 0 remaining capacity, 16 bit */ +#define XE3GC_BPV0 0x45 /* Battery 0 present voltage, 16 bit */ +#define XE3GC_BDV0 0x47 /* Battery 0 design voltage 16 bit */ +#define XE3GC_BDC0 0x49 /* Battery 0 design capacity 16 bit */ +#define XE3GC_BTY0 0x4A /* Battery 0 type, 1 bit ? */ +#define XE3GC_BTP0 0x4B /* Battery 0 ?, 1 bit */ +#define XE3GC_BSN0 0x4C /* Battery 0 serial number, 8 bit ? */ +#define XE3GC_BMF0 0x4D /* Battery 0 ?,8 bit */ +#define XE3GC_BST1 0x50 /* Battery 1 status, 3 bit */ +#define XE3GC_BPR1 0x51 /* Battery 1 present rate, 16 bit ? */ +#define XE3GC_BRC1 0x53 /* Battery 1 remaining capacity, 16 bit */ +#define XE3GC_BPV1 0x55 /* Battery 1 present voltage, 16 bit */ +#define XE3GC_BDV1 0x57 /* Battery 1 design voltage 16 bit */ +#define XE3GC_BDC1 0x59 /* Battery 1 design capacity 16 bit */ +#define XE3GC_BTY1 0x5A /* Battery 1 type, 1 bit ? */ +#define XE3GC_BTP1 0x5B /* Battery 1 ?, 1 bit */ +#define XE3GC_BSN1 0x5C /* Battery 1 serial number, 8 bit ? */ +#define XE3GC_BMF1 0x5D /* Battery 1 ?,8 bit */ +#define XE3GC_STA2 0x61 /* Various status bits */ +#define XE3GC_BTVL 0x6A /* LCD brightness, 4 bit */ + +/* + * Bitmasks for sub byte values + */ + +#define XE3GC_ADP_MASK 0x40 /* AC acapter status */ +#define XE3GC_BAT0_MASK 0x01 /* Battery 0 present */ +#define XE3GC_BAT1_MASK 0x02 /* Battery 1 present */ +#define XE3GC_BTY_MASK 0x01 /* Type: Ni-MH or Li-Ion */ +#define XE3GC_BST_MASK_DSC 0x01 /* Discarging */ +#define XE3GC_BST_MASK_CHR 0x02 /* Charging */ +#define XE3GC_BST_MASK_CRT 0x04 /* Critical */ +#define XE3GC_CRTI_MASK 0x04 /* External display status */ +#define XE3GC_SLPB_MASK 0x01 /* Sleep button pressed */ +#define XE3GC_F5_MASK 0x02 /* Fn-F5 - LCD/CRT switch pressed */ +#define XE3GC_VOLD_MASK 0x04 /* Fn-down arrow or Volume down pressed */ +#define XE3GC_VOLU_MASK 0x08 /* Fn-up arrow or Volume up pressed */ +#define XE3GC_MUTE_MASK 0x10 /* Fn+F7 - Volume mute pressed */ +#define XE3GC_CNTR_MASK 0x20 /* Fn+F3/Fn+F4 - Contrast up or down pressed */ +#define XE3GC_BRGT_MASK 0x40 /* Fn+F1/Fn+F2 - Brightness up or down pressed */ +#define XE3GC_BTVL_MASK 0x0F /* LCD brightness */ + +/* + * Toshiba Satellite A105 values and mask + */ + +#define A105_BNDT 0xA3 /* LCD brightness */ +#define A105_BNDT_MASK 0x0F + +/* + * Fujitsu Amilo D values + */ + +#define AMILOD_TMP 0x28 /* CPU tempetature, 8 bit */ +#define AMILOD_STA1 0x30 /* Various status bits */ +#define AMILOD_BAT 0x3E /* Battery present status */ +#define AMILOD_BDC0 0x40 /* Battery 0 design capacity 16 bit */ +#define AMILOD_BDV0 0x42 /* Battery 0 design voltage 16 bit */ +#define AMILOD_BTY0 0x44 /* Battery 0 type, 1 bit ? */ +#define AMILOD_BST0 0x45 /* Battery 0 status, 3 bit */ +#define AMILOD_BPR0 0x46 /* Battery 0 present rate, 16 bit ? */ +#define AMILOD_BRC0 0x48 /* Battery 0 remaining capacity, 16 bit */ +#define AMILOD_BPV0 0x4A /* Battery 0 present voltage, 16 bit */ +#define AMILOD_BTP0 0x4C /* Battery 0 ?, 1 bit */ +#define AMILOD_BDC1 0x50 /* Battery 1 design capacity 16 bit */ +#define AMILOD_BDV1 0x52 /* Battery 1 design voltage 16 bit */ +#define AMILOD_BTY1 0x54 /* Battery 1 type, 1 bit ? */ +#define AMILOD_BST1 0x55 /* Battery 1 status, 3 bit */ +#define AMILOD_BPR1 0x56 /* Battery 1 present rate, 16 bit ? */ +#define AMILOD_BRC1 0x58 /* Battery 1 remaining capacity, 16 bit */ +#define AMILOD_BPV1 0x5A /* Battery 1 present voltage, 16 bit */ +#define AMILOD_BTP1 0x5C /* Battery 1 ?, 1 bit */ +#define AMILOD_CBRG 0x6F /* LCD brightness, 4 bit */ + +/* + * Bitmasks for sub byte values + */ + +#define AMILOD_ADP_MASK 0x40 /* AC acapter status */ +#define AMILOD_BAT0_MASK 0x01 /* Battery 0 present */ +#define AMILOD_BAT1_MASK 0x02 /* Battery 1 present */ +#define AMILOD_BTY_MASK 0x01 /* Type: Ni-MH or Li-Ion */ +#define AMILOD_BST_MASK_DSC 0x01 /* Discarging */ +#define AMILOD_BST_MASK_CHR 0x02 /* Charging */ +#define AMILOD_BST_MASK_CRT 0x04 /* Critical */ +#define AMILOD_CBRG_MASK 0x0F /* LCD brightness */ + +/* + * OmniBook 500, 510, 6000, 6100, XE2 values + */ + +#define OB500_STA1 0x44 /* Various status bits */ +#define OB500_STA2 0x50 /* Various status bits */ +#define OB500_CTMP 0x55 /* CPU tempetature, 8 bit */ +#define OB500_BT1I 0x58 /* Battery 1 ? 16 bit */ +#define OB500_BT1C 0x5A /* Battery 1 remaining capacity 16 bit ? */ +#define OB500_BT1V 0x5C /* Battery 1 present voltage 16 bit ? */ +#define OB500_BT1S 0x5E /* Battery 1 status 3 bit ? */ +#define OB500_BT2I 0x6A /* Battery 2 ? 16 bit */ +#define OB500_BT2C 0x6C /* Battery 2 remaining capacity 16 bit ? */ +#define OB500_BT2V 0x6E /* Battery 2 present voltage 16 bit ? */ +#define OB500_BT2S 0x70 /* Battery 2 status 3 bit ? */ +#define OB500_BT3I 0x5F /* Battery 3 ? 16 bit */ +#define OB500_BT3C 0x61 /* Battery 3 remaining capacity 16 bit ? */ +#define OB500_BT3V 0x63 /* Battery 3 present voltage 16 bit ? */ +#define OB500_BT3S 0x65 /* Battery 3 status 3 bit ? */ + +#define OB6000_STA1 0x77 /* Various status bits */ + +#define XE2_STA1 0x50 /* Various status bits */ + +/* + * Bitmasks for sub byte values + */ + +#define OB500_LIDS_MASK 0x01 /* LID status */ +#define OB500_CRTS_MASK 0x20 /* External display status */ +#define OB500_SLPS_MASK 0x40 /* Sleep button status */ +#define OB500_DCKS_MASK 0x80 /* Docking status */ +#define OB500_ADP_MASK 0x02 /* AC acapter status */ +#define OB500_BST_MASK_DSC 0x01 /* Discarging */ +#define OB500_BST_MASK_CHR 0x02 /* Charging */ +#define OB500_BST_MASK_CRT 0x04 /* Critical */ + +#define OB6000_FAN_MASK 0x10 /* Fan status */ + +#define XE2_ADP_MASK 0x02 /* AC acapter status */ + +/* + * OmniBook 4150 + */ + +#define OB4150_TMP 0x28 /* CPU tempetature, 8 bit */ +#define OB4150_STA1 0x2E /* Various status bits */ +#define OB4150_STA2 0x2F /* Various status bits */ +#define OB4150_ADP 0x30 /* AC acapter status, 1 bit */ +#define OB4150_DCID 0x2C /* Port replicator */ + +/* + * Bitmasks for sub byte values + */ + +#define OB4150_FAN_MASK 0x01 /* Fan status */ +#define OB4150_ADP_MASK 0x40 /* AC acapter status */ +#define OB4150_CRST_MASK 0x20 /* External display status */ + +/* + * Keyboard controller command for some laptop functions + */ + +#define OMNIBOOK_KBC_CONTROL_CMD 0x59 + +/* + * Keyboard controller command parameters for functions available via kbc + */ + +#define OMNIBOOK_KBC_CMD_ONETOUCH_ENABLE 0x90 /* Enables OneTouch buttons */ +#define OMNIBOOK_KBC_CMD_ONETOUCH_DISABLE 0x91 /* Disables OneTouch buttons */ +#define OMNIBOOK_KBC_CMD_TOUCHPAD_ENABLE 0xAA /* Enables touchpad */ +#define OMNIBOOK_KBC_CMD_TOUCHPAD_DISABLE 0xA9 /* Disables touchpad */ +#define OMNIBOOK_KBC_CMD_LCD_ON 0xE1 /* Turns LCD display on */ +#define OMNIBOOK_KBC_CMD_LCD_OFF 0xE2 /* Turns LCD display off */ +#define OMNIBOOK_KBC_CMD_MUTELED_ON 0x94 /* Turns (xe4500) Mute LED on */ +#define OMNIBOOK_KBC_CMD_MUTELED_OFF 0x95 /* Turns (xe4500) Mute LED off */ +#define OMNIBOOK_KBC_CMD_AC_POWER_ENABLE 0xC2 /* Enable AC power */ +#define OMNIBOOK_KBC_CMD_AC_POWER_DISABLE 0xC1 /* Disable AC power */ + +/* + * Other I/O ports + */ + +#define ACL00_AC_STAT 0x11B9 /* AC adapter status on ACL00 */ +#define ACL00_AC_MASK 0x04 /* Bitmask for AC adapter status on ACL00 */ +#define TOSH3K_AC_STAT 0x102D /* AC adapter status on Toshiba 3000 */ +#define TOSH3K_AC_MASK 0x08 /* Bitmask for AC adapter status on Toshiba 3000 */ +#define XE3GF_AC_STAT 0x11B9 /* AC adapter status on XE3 GF */ +#define XE3GF_AC_MASK 0x04 /* Bitmask for AC adapter status on XE3 GF */ +#define XE3GF_LID_STAT 0x11AD /* LID switch status on XE3 GF */ +#define XE3GF_LID_MASK 0x20 /* Bitmask for LID switch status on XE3 GF */ +#define XE3GC_SMIC 0xFE00 + +#define OB500_GPO1 0x8034 /* Fan control */ +#define OB510_GPO2 0x11B9 /* LCD backlight */ +#define OB510_GPIO 0x118F /* Fan control */ + +#define OB500_FAN_ON_MASK 0x0A /* Turn fan on with zero bits */ +#define OB500_FAN_OFF_MASK 0x08 /* Fan status/off */ +#define OB500_BKLT_MASK 0x40 /* LCD backlight */ +#define OB510_FAN_ON_MASK 0x18 /* Turn fan on with zero bits */ +#define OB510_FAN_OFF_MASK 0x10 /* Turn fan on */ +#define OB510_BKLT_MASK 0x01 /* LCD backlight */ + +#define XE2_FAN_MASK 0x02 /* Turn fan on with zero bit */ + +/* + * Memory adresses + */ + +#define XE3GC_BCMD 0xFFFFEBC + +/* + * Toshiba Satellite A105 values and mask + */ + +#define A105_BNDT 0xA3 /* LCD brightness */ +#define A105_BNDT_MASK 0x0F + +/* + * Index and values for Command/Data/Index interface + * Notice similitudes with commands code for kbc + */ + +#define TSM70_FN_INDEX 0x45 +#define TSM70_FN_ENABLE 0x75 +#define TSM70_FN_DISABLE 0x74 +#define TSM70_HOTKEYS_INDEX 0x59 +#define TSM70_HOTKEYS_ENABLE 0x90 +#define TSM70_HOTKEYS_DISABLE 0x91 +#define TSM70_LCD_READ 0x5C +#define TSM70_LCD_WRITE 0x5D +#define TSM70_TOUCHPAD_ON 0x80 +#define TSM70_TOUCHPAD_OFF 0x81 +#define TSM100_BLANK_INDEX 0x59 +#define TSM100_LCD_ON 0xe1 +#define TSM100_LCD_OFF 0xe2 +#define TSM70_COOLING_OFFSET 0xb0 +#define TSM70_COOLING_POWERSAVE 0x0 +#define TSM70_COOLING_PERF 0x2 + +/* Toshiba SMI funtions and constants*/ +#define SMI_FN_PRESSED 0x8f +#define SMI_SET_LCD_BRIGHTNESS 0xa2 +#define SMI_GET_LCD_BRIGHTNESS 0xa3 +#define SMI_GET_KILL_SWITCH 0xa4 +#define SMI_SET_AERIAL 0xa5 +#define SMI_GET_AERIAL 0xa6 +#define SMI_SET_DISPLAY_STATE 0xa7 +#define SMI_GET_DISPLAY_STATE 0xa8 +#define SMI_SET_FN_INTERFACE 0xa9 +#define SMI_GET_FN_INTERFACE 0xaa +#define SMI_GET_FN_LAST_SCAN 0xab +#define SMI_SET_DOCK 0xac /* Undocumented */ +#define SMI_GET_DOCK 0xad /* Undocumented */ +#define SMI_SET_FN_F5_INTERFACE 0xc2 + +#define SMI_FN_KEYS_MASK 0x01 +#define SMI_STICK_KEYS_MASK 0x02 +#define SMI_FN_TWICE_LOCK_MASK 0x04 +#define SMI_FN_DOCK_MASK 0x08 + +#define SMI_FN_SCAN 0x6d /* Fn key scancode */ +#define SMI_DOCK_SCAN 0x6e /* Dock scancode */ + +/* Toshiba HCI method and constants */ +#define HCI_METHOD "SPFC" +#define HCI_WORDS 6 + +#define HCI_GET 0xfe00 +#define HCI_SET 0xff00 + +#define HCI_HOTKEY_EVENT 0x001e +#define HCI_RF_CONTROL 0x0056 + +#define HCI_ENABLE 0x0001 +#define HCI_DISABLE 0x0000 + +#define HCI_WIRELESS_CHECK 0x0001 +#define HCI_WIRELESS_POWER 0x0200 + +#define HCI_SUCCESS 0x0000 +#define HCI_FAILURE 0x1000 +#define HCI_NOT_SUPPORTED 0x8000 + +/* Toshiba Satellite X205 methods */ +#define TSX205_EVENTS_METHOD "INFO" +#define TSX205_NOTIFY_METHOD "NTFY" +#define TSX205_KILLSW_METHOD "KLSW" +#define TSX205_SLIVDO_METHOD "CSLI" + +#define ACPI_FN_MASK 0x01 +#define ACPI_FN_SCAN 0x6e /* Fn key scancode */ + +/* HCI key definitions */ +#define HCI_FN_RELEASED 0x100 +#define HCI_MUTE 0x101 +#define HCI_1 0x102 +#define HCI_2 0x103 +#define HCI_SPACE 0x139 +#define HCI_BREAK 0x13b +#define HCI_BSM 0x13c +#define HCI_SUSPEND 0x13d +#define HCI_HIBERNATE 0x13e +#define HCI_VIDEOOUT 0x13f +#define HCI_BRIGHTNESSDOWN 0x140 +#define HCI_BRIGHTNESSUP 0x141 +#define HCI_WLAN 0x142 +#define HCI_TOUCHPAD 0x143 +#define HCI_FN_PRESSED 0x17f --- linux-2.6.35.orig/ubuntu/omnibook/compat.h +++ linux-2.6.35/ubuntu/omnibook/compat.h @@ -0,0 +1,71 @@ +/* + * compat.h -- Older kernel (=> 2.6.11) support + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Mathieu Bérard , 2006 + */ + +#include + +/* + * For compatibility with kernel older than 2.6.16 + * Mutex to Semaphore fallback + */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)) +#include +#define DEFINE_MUTEX(lock) DECLARE_MUTEX(lock) +#define mutex_init(lock) init_MUTEX(lock) +#define mutex_lock(lock) down(lock) +#define mutex_lock_interruptible(lock) down_interruptible(lock) +#define mutex_unlock(lock) up(lock) +#define mutex_destroy(lock) do { } while(0) +#else +#include +#endif + +/* + * For compatibility with kernel older than 2.6.14 + */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14)) +static void inline *kzalloc(size_t size, int flags) +{ + void *ret = kmalloc(size, flags); + if (ret) + memset(ret, 0, size); + return ret; +} +#endif + +/* + * For compatibility with kernel older than 2.6.11 + */ + +#ifndef DEFINE_SPINLOCK +#define DEFINE_SPINLOCK(s) spinlock_t s = SPIN_LOCK_UNLOCKED +#endif + +/* + * Those kernel don't have ICH7 southbridge pcids + */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)) +#define PCI_DEVICE_ID_INTEL_ICH7_0 0x27b8 +#define PCI_DEVICE_ID_INTEL_ICH7_1 0x27b9 +#define PCI_DEVICE_ID_INTEL_ICH7_30 0x27b0 +#define PCI_DEVICE_ID_INTEL_ICH7_31 0x27bd +#endif + + + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/lib.c +++ linux-2.6.35/ubuntu/omnibook/lib.c @@ -0,0 +1,81 @@ +/* + * lib.c -- Generic helpers functions + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include "hardware.h" +#include "compat.h" +#include + +/* + * Generic funtion for applying a mask on a value + * Hack: degenerate to omnibook_toggle if there is no read method + * of if the read address is 0, this is used in blank.c + */ +int __omnibook_apply_write_mask(const struct omnibook_operation *io_op, int toggle) +{ + int retval = 0; + int mask; + u8 data; + + if(!(io_op->backend->byte_read && io_op->read_addr)) + return __omnibook_toggle(io_op,toggle); + + if ((retval = __backend_byte_read(io_op, &data))) + return retval; + + if (toggle == 1) + mask = io_op->on_mask; + else if (toggle == 0) + mask = io_op->off_mask; + else + return -EINVAL; + + if (mask > 0) + data |= (u8) mask; + else if (mask < 0) + data &= ~((u8) (-mask)); + else + return -EINVAL; + + retval = __backend_byte_write(io_op, data); + + return retval; +} + +/* + * Helper for toggle like operations + */ +int __omnibook_toggle(const struct omnibook_operation *io_op, int toggle) +{ + int retval; + u8 data; + + data = toggle ? io_op->on_mask : io_op->off_mask; + retval = __backend_byte_write(io_op, data); + return retval; +} + +void omnibook_report_key( struct input_dev *dev, unsigned int keycode) +{ + input_report_key(dev, keycode, 1); + input_sync(dev); + input_report_key(dev, keycode, 0); + input_sync(dev); +} + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/dump.c +++ linux-2.6.35/ubuntu/omnibook/dump.c @@ -0,0 +1,107 @@ +/* + * dump.c - Raw dump of EC register, stolen from ibm_acpi.c + * + * + * Copyright (C) 2004-2005 Borislav Deianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "omnibook.h" +#include "hardware.h" + +static u8 ecdump_regs[256]; + +static int ecdump_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int i, j; + u8 v; + + len += + sprintf(buffer + len, + "EC " " +00 +01 +02 +03 +04 +05 +06 +07" + " +08 +09 +0a +0b +0c +0d +0e +0f\n"); + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + for (i = 0; i < 255; i += 16) { + len += sprintf(buffer + len, "EC 0x%02x:", i); + for (j = 0; j < 16; j++) { + io_op->read_addr = i +j; + if (__backend_byte_read(io_op, &v)) + break; + if (v != ecdump_regs[i + j]) + len += sprintf(buffer + len, " *%02x", v); + else + len += sprintf(buffer + len, " %02x", v); + ecdump_regs[i + j] = v; + } + len += sprintf(buffer + len, "\n"); + if (j != 16) + break; + } + + mutex_unlock(&io_op->backend->mutex); + + /* These are way too dangerous to advertise openly... */ +#if 0 + len += + sprintf(buffer + len, + "commands:\t0x 0x" " ( is 00-ff, is 00-ff)\n"); + len += + sprintf(buffer + len, + "commands:\t0x " " ( is 00-ff, is 0-255)\n"); +#endif + return len; +} + +static int ecdump_write(char *buffer, struct omnibook_operation *io_op) +{ + + int i, v; + + if (sscanf(buffer, "0x%x 0x%x", &i, &v) == 2) { + /* i and v set */ + } else if (sscanf(buffer, "0x%x %u", &i, &v) == 2) { + /* i and v set */ + } else + return -EINVAL; + if (i >= 0 && i < 256 && v >= 0 && v < 256) { + io_op->write_addr = i; + return backend_byte_write(io_op, v); + } else + return -EINVAL; + + return 0; +} + +static struct omnibook_tbl dump_table[] __initdata = { + {ALL_ECTYPES, {EC,}}, + {0,} +}; + +static struct omnibook_feature __declared_feature dump_driver = { + .name = "dump", + .enabled = 0, + .read = ecdump_read, + .write = ecdump_write, + .tbl = dump_table, +}; + +module_param_named(dump, dump_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(dump, "Use 0 to disable, 1 to enable embedded controller register dump support"); +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/dock.c +++ linux-2.6.35/ubuntu/omnibook/dock.c @@ -0,0 +1,84 @@ +/* + * dock.c -- docking station/port replicator support + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_dock_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + u8 dock; + int retval; + + if ((retval = backend_byte_read(io_op, &dock))) + return retval; + + len += sprintf(buffer + len, "Laptop is %s\n", (dock) ? "docked" : "undocked"); + + return len; +} + +static int omnibook_dock_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + + switch (*buffer) { + case '0': + retval = backend_byte_write(io_op, 0); + break; + case '1': + retval = backend_byte_write(io_op, 1); + break; + default: + retval = -EINVAL; + } + + return retval; +} + +static struct omnibook_feature dock_driver; + +static int __init omnibook_dock_init(struct omnibook_operation *io_op) +{ + /* writing is only supported on ectype 13 */ + if(!(omnibook_ectype & TSM40)) + dock_driver.write = NULL; + + return 0; +} + +static struct omnibook_tbl dock_table[] __initdata = { + {XE3GF, SIMPLE_BYTE(EC, XE3GF_CSPR, XE3GF_CSPR_MASK)}, + {OB500 | OB510 | OB6000 | OB6100, SIMPLE_BYTE(EC, OB500_STA1, OB500_DCKS_MASK)}, + {OB4150, SIMPLE_BYTE(EC, OB4150_DCID, 0)}, + {TSM40, {SMI, SMI_GET_DOCK, SMI_SET_DOCK, 0, 0, 0}}, + {0,} +}; + +static struct omnibook_feature __declared_feature dock_driver = { + .name = "dock", + .enabled = 0, + .init = omnibook_dock_init, + .read = omnibook_dock_read, + .write = omnibook_dock_write, + .ectypes = XE3GF | OB500 | OB510 | OB6000 | OB6100 | OB4150 | TSM40, + .tbl = dock_table, +}; + +module_param_named(dock, dock_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(dock, "Use 0 to disable, 1 to enable docking station support"); +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/fan_policy.c +++ linux-2.6.35/ubuntu/omnibook/fan_policy.c @@ -0,0 +1,188 @@ +/* + * fan_policy.c -- fan policy support + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include "hardware.h" + +/* + * Default temperature limits. + * Danger! You may overheat your CPU! + * Do not change these values unless you exactly know what you do. + */ + +#define OMNIBOOK_FAN_LEVELS 8 +#define OMNIBOOK_FAN_MIN 25 /* Minimal value of fan off temperature */ +#define OMNIBOOK_FOT_MAX 75 /* Maximal value of fan off temperature */ +#define OMNIBOOK_FAN_MAX 95 /* Maximal value of fan on temperature */ +#define OMNIBOOK_FOT_DEFAULT 60 /* Default value of fan off temperature */ +#define OMNIBOOK_FAN1_DEFAULT 75 /* Default value of fan on temperature */ +#define OMNIBOOK_FAN2_DEFAULT 85 /* Default value of fan level 2 temperature */ +#define OMNIBOOK_FAN3_DEFAULT 90 /* Default value of fan level 3 temperature */ +#define OMNIBOOK_FAN4_DEFAULT 95 /* Default value of fan level 4 temperature */ +#define OMNIBOOK_FAN5_DEFAULT 95 /* Default value of fan level 5 temperature */ +#define OMNIBOOK_FAN6_DEFAULT 95 /* Default value of fan level 6 temperature */ +#define OMNIBOOK_FAN7_DEFAULT 95 /* Default value of fan level 7 temperature */ + +static const u8 fan_defaults[] = { + OMNIBOOK_FOT_DEFAULT, + OMNIBOOK_FAN1_DEFAULT, + OMNIBOOK_FAN2_DEFAULT, + OMNIBOOK_FAN3_DEFAULT, + OMNIBOOK_FAN4_DEFAULT, + OMNIBOOK_FAN5_DEFAULT, + OMNIBOOK_FAN6_DEFAULT, + OMNIBOOK_FAN7_DEFAULT, +}; + +static int omnibook_get_fan_policy(struct omnibook_operation *io_op, u8 *fan_policy) +{ + int retval ; + int i; + + for (i = 0; i < OMNIBOOK_FAN_LEVELS; i++) { + io_op->read_addr = XE3GF_FOT + i; + if ((retval = __backend_byte_read(io_op, &fan_policy[i]))) + return retval; + } + + return 0; +} + +static int omnibook_set_fan_policy(struct omnibook_operation *io_op, const u8 *fan_policy) +{ + int retval; + int i; + + if (fan_policy[0] > OMNIBOOK_FOT_MAX) + return -EINVAL; + + for (i = 0; i < OMNIBOOK_FAN_LEVELS; i++) { + if ((fan_policy[i] > fan_policy[i + 1]) + || (fan_policy[i] < OMNIBOOK_FAN_MIN) + || (fan_policy[i] > OMNIBOOK_FAN_MAX)) + return -EINVAL; + } + for (i = 0; i < OMNIBOOK_FAN_LEVELS; i++) { + io_op->write_addr = XE3GF_FOT + i; + if ((retval = __backend_byte_write(io_op, fan_policy[i]))) + return retval; + } + + return 0; +} + +static int omnibook_fan_policy_read(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + int len = 0; + u8 i; + u8 fan_policy[OMNIBOOK_FAN_LEVELS]; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + retval = omnibook_get_fan_policy(io_op, &fan_policy[0]); + + mutex_unlock(&io_op->backend->mutex); + + if(retval) + return retval; + + len += sprintf(buffer + len, "Fan off temperature: %2d C\n", fan_policy[0]); + len += sprintf(buffer + len, "Fan on temperature: %2d C\n", fan_policy[1]); + for (i = 2; i < OMNIBOOK_FAN_LEVELS; i++) { + len += + sprintf(buffer + len, "Fan level %1d temperature: %2d C\n", i, + fan_policy[i]); + } + len += sprintf(buffer + len, "Minimal temperature to set: %2d C\n", OMNIBOOK_FAN_MIN); + len += sprintf(buffer + len, "Maximal temperature to set: %2d C\n", OMNIBOOK_FAN_MAX); + + return len; +} + +static int omnibook_fan_policy_write(char *buffer, struct omnibook_operation *io_op) +{ + int n = 0; + char *b; + char *endp; + int retval; + int temp; + u8 fan_policy[OMNIBOOK_FAN_LEVELS]; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if ((retval = omnibook_get_fan_policy(io_op, &fan_policy[0]))) + goto out; + + /* + * Could also be done much simpler using sscanf(,"%u %u ... + * but this would hardcode OMNIBOOK_FAN_LEVELS. + * The parsed format is "%u " repeated OMNIBOOK_FAN_LEVELS+1 times + */ + + b = buffer; + do { + dprintk("n=[%i] b=[%s]\n", n, b); + if (n > OMNIBOOK_FAN_LEVELS) { + retval = -EINVAL; + goto out; + } + if (!isspace(*b)) { + temp = simple_strtoul(b, &endp, 10); + if (endp != b) { /* there was a match */ + fan_policy[n++] = temp; + b = endp; + } else { + retval = -EINVAL; + goto out; + } + } else + b++; + } while ((*b != '\0') && (*b != '\n')); + + /* A zero value set the defaults */ + if ((fan_policy[0] == 0) && (n == 1)) + retval = omnibook_set_fan_policy(io_op, &fan_defaults[0]); + else + retval = omnibook_set_fan_policy(io_op, &fan_policy[0]); + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static struct omnibook_tbl fan_policy_table[] __initdata = { + {XE3GF, {EC,}}, + {0,} +}; + +static struct omnibook_feature __declared_feature fan_policy_driver = { + .name = "fan_policy", + .enabled = 1, + .read = omnibook_fan_policy_read, + .write = omnibook_fan_policy_write, + .ectypes = XE3GF, + .tbl = fan_policy_table, +}; + +module_param_named(fan_policy, fan_policy_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(fan_policy, "Use 0 to disable, 1 to enable fan control policy support"); +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/fan.c +++ linux-2.6.35/ubuntu/omnibook/fan.c @@ -0,0 +1,183 @@ +/* + * fan.c -- fan status/control + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include +#include "hardware.h" + +static const struct omnibook_operation ctmp_io_op = { EC, XE3GF_CTMP, 0, 0, 0, 0 }; +static const struct omnibook_operation fot_io_op = { EC, XE3GF_FOT, XE3GF_FOT, 0, 0, 0 }; + +static int omnibook_get_fan(struct omnibook_operation *io_op) +{ + u8 fan; + int retval; + + if ((retval = backend_byte_read(io_op, &fan))) + return retval; + + /* + * For most models the reading is a bool + * It as to be inverted on all but OB6000|OB6100|OB4150|AMILOD + * TSP10|XE3GF|TSX205 return an integer + */ + + if (omnibook_ectype & (TSP10 | XE3GF | TSX205)) + retval = fan; + else if (omnibook_ectype & (OB6000 | OB6100 | OB4150 | AMILOD)) + retval = !!fan; + else + retval = !fan; + + return retval; +} + +static int omnibook_fan_on(struct omnibook_operation *io_op) +{ + return omnibook_apply_write_mask(io_op, 1); +} + +static int omnibook_fan_off(struct omnibook_operation *io_op) +{ + int i, retval = 0; + + if (!(omnibook_ectype & (XE3GF | TSP10 | TSX205))) { + retval = omnibook_apply_write_mask(io_op, 0); + return retval; + } else { + /* + * Special handling for XE3GF & TSP10 + */ + u8 fot, temp, fan; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + retval = __backend_byte_read(io_op, &fan); + + /* error or fan is already off */ + if (retval || !fan) + goto out; + + /* now we set FOT to current temp, then reset to initial value */ + if ((retval = __backend_byte_read(&fot_io_op, &fot))) + goto out; + if ((retval = __backend_byte_read(&ctmp_io_op, &temp))) + goto out; + + /* Wait for no longer than 250ms (this is arbitrary). */ + for (i = 0; i < 250; i++) { + __backend_byte_write(&fot_io_op, temp); + mdelay(1); + __backend_byte_read(io_op, &fan); + if (!fan) /* Fan is off */ + break; + } + __backend_byte_write(&fot_io_op, fot); + + if(i == 250 ) { + printk(O_ERR "Attempt to switch off the fan failed.\n"); + retval = -EIO; + } + + out: + mutex_unlock(&io_op->backend->mutex); + } + + + return retval; +} + +static int omnibook_fan_read(char *buffer, struct omnibook_operation *io_op) +{ + int fan; + int len = 0; + char *str; + + fan = omnibook_get_fan(io_op); + if (fan < 0) + return fan; + str = (fan) ? "on" : "off"; + + if (fan > 1) + len += sprintf(buffer + len, "Fan is %s (level %d)\n", str, fan); + else + len += sprintf(buffer + len, "Fan is %s\n", str); + + return len; +} + +static int omnibook_fan_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + + switch (*buffer) { + case '0': + retval = omnibook_fan_off(io_op); + break; + case '1': + retval = omnibook_fan_on(io_op); + break; + default: + retval = -EINVAL; + } + return retval; +} + +static struct omnibook_feature fan_driver; + +static int __init omnibook_fan_init(struct omnibook_operation *io_op) +{ + /* + * OB4150 + * XE2 + * AMILOD + * They only support fan reading + */ + if (omnibook_ectype & (OB4150 | XE2 | AMILOD)) + fan_driver.write = NULL; + return 0; +} + +static struct omnibook_tbl fan_table[] __initdata = { + {XE3GF | TSP10 | TSM70 | TSX205, {EC, XE3GF_FSRD, XE3GF_FSRD, 0, XE3GF_FAN_ON_MASK, 0}}, + {OB500, + {PIO, OB500_GPO1, OB500_GPO1, OB500_FAN_OFF_MASK, -OB500_FAN_ON_MASK, OB500_FAN_OFF_MASK}}, + {OB510, + {PIO, OB510_GPIO, OB510_GPIO, OB510_FAN_OFF_MASK, -OB510_FAN_ON_MASK, OB510_FAN_OFF_MASK}}, + {OB6000 | OB6100, + {EC, OB6000_STA1, OB6000_STA1, OB6000_FAN_MASK, OB6000_FAN_MASK, -OB6000_FAN_MASK}}, + {OB4150 | AMILOD, {EC, OB4150_STA1, 0, OB4150_FAN_MASK, 0, 0}}, + {XE2, {PIO, OB500_GPO1, 0, XE2_FAN_MASK, 0, 0}}, + {0,} +}; + +static struct omnibook_feature __declared_feature fan_driver = { + .name = "fan", + .enabled = 1, + .read = omnibook_fan_read, + .write = omnibook_fan_write, + .init = omnibook_fan_init, + .ectypes = XE3GF | OB500 | OB510 | OB6000 | OB6100 | OB4150 | XE2 | AMILOD | TSP10 | TSX205, + .tbl = fan_table, +}; + +module_param_named(fan, fan_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(fan, "Use 0 to disable, 1 to enable fan status monitor and control"); +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/init.c +++ linux-2.6.35/ubuntu/omnibook/init.c @@ -0,0 +1,535 @@ +/* + * init.c -- module initialization code + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include +#include +#include + +#include "hardware.h" +#include "laptop.h" + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) +#include +#else +#include +#endif + +/* + * For compatibility with kernel older than 2.6.11 + */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)) +typedef u32 pm_message_t; +#endif + +static int __init omnibook_probe(struct platform_device *dev); +static int __exit omnibook_remove(struct platform_device *dev); +static int omnibook_suspend(struct platform_device *dev, pm_message_t state); +static int omnibook_resume(struct platform_device *dev); + +/* + * For compatibility with kernel older than 2.6.15 + */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15)) + +#define to_platform_device(x) container_of((x), struct platform_device, dev) + +static int __init compat_omnibook_probe(struct device *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + return omnibook_probe(pdev); +} + +static int __exit compat_omnibook_remove(struct device *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + return omnibook_remove(pdev); +} + +static int compat_omnibook_suspend(struct device *dev, pm_message_t state, u32 level) +{ + struct platform_device *pdev = to_platform_device(dev); + return omnibook_suspend(pdev, state); +} + +static int compat_omnibook_resume(struct device *dev, u32 level) +{ + struct platform_device *pdev = to_platform_device(dev); + return omnibook_resume(pdev); +} + +#endif + +static struct proc_dir_entry *omnibook_proc_root = NULL; + +enum omnibook_ectype_t omnibook_ectype = NONE; + +static const char *laptop_model __initdata; + +static int omnibook_userset = 0; + +/* + * The platform_driver interface was added in linux 2.6.15 + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) + +static struct platform_device *omnibook_device; + +static struct platform_driver omnibook_driver = { + .probe = omnibook_probe, + .remove = omnibook_remove, +#ifdef CONFIG_PM + .suspend = omnibook_suspend, + .resume = omnibook_resume, +#endif + .driver = { + .name = OMNIBOOK_MODULE_NAME, + .owner = THIS_MODULE, + }, +}; + +#else /* 2.6.15 */ + +static struct device_driver omnibook_driver = { + .name = OMNIBOOK_MODULE_NAME, + .bus = &platform_bus_type, + .probe = compat_omnibook_probe, + .remove = compat_omnibook_remove, +#ifdef CONFIG_PM + .suspend = compat_omnibook_suspend, + .resume = compat_omnibook_resume, +#endif +}; + +static struct platform_device omnibook_device = { + .name = OMNIBOOK_MODULE_NAME, +}; + +#endif /* 2.6.15 */ + +/* Linked list of all enabled features */ +static struct omnibook_feature *omnibook_available_feature; + +/* Delimiters of the .features section wich holds all the omnibook_feature structs */ +extern struct omnibook_feature _start_features_driver[]; +extern struct omnibook_feature _end_features_driver[]; + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) +static int __init dmi_matched(struct dmi_system_id *dmi) +#else +static int __init dmi_matched(const struct dmi_system_id *dmi) +#endif +{ + omnibook_ectype = (enum omnibook_ectype_t)dmi->driver_data; + if (dmi->ident) + laptop_model = (char *)dmi->ident; + else + laptop_model = dmi_get_system_info(DMI_PRODUCT_VERSION); + return 1; /* return non zero means we stop the parsing selecting this entry */ +} + +/* + * Callback function for procfs file reading: the name of the file read was stored in *data + */ +static int procfile_read_dispatch(char *page, char **start, off_t off, int count, int *eof, + void *data) +{ + struct omnibook_feature *feature = (struct omnibook_feature *)data; + int len = 0; + + if (!feature || !feature->read) + return -EINVAL; + + if(off) + goto out; + + len = feature->read(page, feature->io_op); + if (len < 0) + return len; + + out: + *eof = 1; + return len; +} + +/* + * Callback function for procfs file writing: the name of the file written was stored in *data + */ +static int procfile_write_dispatch(struct file *file, const char __user * userbuf, + unsigned long count, void *data) +{ + struct omnibook_feature *feature = (struct omnibook_feature *)data; + char *kernbuf; + int retval; + + if (!feature || !feature->write) + return -EINVAL; + + kernbuf = kmalloc(count + 1, GFP_KERNEL); + if (!kernbuf) + return -ENOMEM; + + if (copy_from_user(kernbuf, userbuf, count)) { + kfree(kernbuf); + return -EFAULT; + } + + /* Make sure the string is \0 terminated */ + kernbuf[count] = '\0'; + + retval = feature->write(kernbuf, feature->io_op); + if (retval == 0) + retval = count; + + kfree(kernbuf); + + return retval; +} + +/* + * Match an ectype and return pointer to corresponding omnibook_operation. + * Also make corresponding backend initialisation if necessary, and skip + * to the next entry if it fails. + */ +static struct omnibook_operation *omnibook_backend_match(struct omnibook_tbl *tbl) +{ + int i; + struct omnibook_operation *matched = NULL; + + for (i = 0; tbl[i].ectypes; i++) { + if (omnibook_ectype & tbl[i].ectypes) { + if (tbl[i].io_op.backend->init && tbl[i].io_op.backend->init(&tbl[i].io_op)) { + dprintk("Backend %s init failed, skipping entry.\n", + tbl[i].io_op.backend->name); + continue; + } + matched = &tbl[i].io_op; + dprintk("Returning table entry nr %i.\n", i); + break; + } + } + return matched; +} + +/* + * Initialise a feature and add it to the linked list of active features + */ +static int __init omnibook_init(struct omnibook_feature *feature) +{ + int retval = 0; + mode_t pmode; + struct proc_dir_entry *proc_entry; + struct omnibook_operation *op; + + if (!feature) + return -EINVAL; + +/* + * Select appropriate backend for feature operations + * We copy the io_op field so the tbl can be initdata + */ + if (feature->tbl) { + dprintk("Begin table match of %s feature.\n", feature->name); + op = omnibook_backend_match(feature->tbl); + if (!op) { + dprintk("Match failed: disabling %s.\n", feature->name); + return -ENODEV; + } + feature->io_op = kmalloc(sizeof(struct omnibook_operation), GFP_KERNEL); + if (!feature->io_op) + return -ENOMEM; + memcpy(feature->io_op, op, sizeof(struct omnibook_operation)); + } else + dprintk("%s feature has no backend table, io_op not initialized.\n", feature->name); + +/* + * Specific feature init code + */ + if (feature->init && (retval = feature->init(feature->io_op))) { + printk(O_ERR "Init function of %s failed with error %i.\n", feature->name, retval); + goto err; + } +/* + * procfs file setup + */ + if (feature->name && feature->read) { + pmode = S_IFREG | S_IRUGO; + if (feature->write) { + pmode |= S_IWUSR; + if (omnibook_userset) + pmode |= S_IWUGO; + } + + proc_entry = create_proc_entry(feature->name, pmode, omnibook_proc_root); + + if (!proc_entry) { + printk(O_ERR "Unable to create proc entry %s\n", feature->name); + if (feature->exit) + feature->exit(feature->io_op); + retval = -ENOENT; + goto err; + } + proc_entry->data = feature; + proc_entry->read_proc = &procfile_read_dispatch; + if (feature->write) + proc_entry->write_proc = &procfile_write_dispatch; + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) + proc_entry->owner = THIS_MODULE; + #endif + } + list_add_tail(&feature->list, &omnibook_available_feature->list); + return 0; + err: + if (feature->io_op && feature->io_op->backend->exit) + feature->io_op->backend->exit(feature->io_op); + kfree(feature->io_op); + return retval; +} + +/* + * Callback function for driver registering : + * Initialize the linked list of enabled features and call omnibook_init to populate it + */ +static int __init omnibook_probe(struct platform_device *dev) +{ + int i; + struct omnibook_feature *feature; + + /* temporary hack */ + mutex_init(&kbc_backend.mutex); + mutex_init(&pio_backend.mutex); + mutex_init(&ec_backend.mutex); + + omnibook_available_feature = kzalloc(sizeof(struct omnibook_feature), GFP_KERNEL); + if (!omnibook_available_feature) + return -ENOMEM; + INIT_LIST_HEAD(&omnibook_available_feature->list); + + for (i = 0; i < _end_features_driver - _start_features_driver; i++) { + + feature = &_start_features_driver[i]; + + if (!feature->enabled) + continue; + + if ((omnibook_ectype & feature->ectypes) || (!feature->ectypes)) + omnibook_init(feature); + } + + printk(O_INFO "Enabled features:"); + list_for_each_entry(feature, &omnibook_available_feature->list, list) { + if (feature->name) + printk(" %s", feature->name); + } + printk(".\n"); + + return 0; +} + +/* + * Callback function for driver removal + */ +static int __exit omnibook_remove(struct platform_device *dev) +{ + struct omnibook_feature *feature, *temp; + + list_for_each_entry_safe(feature, temp, &omnibook_available_feature->list, list) { + list_del(&feature->list); + /* Feature specific cleanup */ + if (feature->exit) + feature->exit(feature->io_op); + /* Generic backend cleanup */ + if (feature->io_op && feature->io_op->backend->exit) + feature->io_op->backend->exit(feature->io_op); + if (feature->name) + remove_proc_entry(feature->name, omnibook_proc_root); + kfree(feature->io_op); + } + kfree(omnibook_available_feature); + + return 0; +} + +/* + * Callback function for system suspend + */ +static int omnibook_suspend(struct platform_device *dev, pm_message_t state) +{ + int retval; + struct omnibook_feature *feature; + + list_for_each_entry(feature, &omnibook_available_feature->list, list) { + if (feature->suspend) { + retval = feature->suspend(feature->io_op); + if (retval) + printk(O_ERR "Unable to suspend the %s feature (error %i).\n", feature->name, retval); + } + } + return 0; +} + +/* + * Callback function for system resume + */ +static int omnibook_resume(struct platform_device *dev) +{ + int retval; + struct omnibook_feature *feature; + + list_for_each_entry(feature, &omnibook_available_feature->list, list) { + if (feature->resume) { + retval = feature->resume(feature->io_op); + if (retval) + printk(O_ERR "Unable to resume the %s feature (error %i).\n", feature->name, retval); + } + } + return 0; +} + +/* + * Find a given available feature by its name + */ +struct omnibook_feature *omnibook_find_feature(char *name) +{ + struct omnibook_feature *feature; + + list_for_each_entry(feature, &omnibook_available_feature->list, list) { + if (!strcmp(feature->name, name)) + return feature; + } + return NULL; +} + +/* + * Maintain compatibility with the old ectype numbers: + * ex: The user set/get ectype=12 for TSM70=2^(12-1) + */ +static int __init set_ectype_param(const char *val, struct kernel_param *kp) +{ + char *endp; + int value; + + if (!val) + return -EINVAL; + + value = simple_strtol(val, &endp, 10); + if (endp == val) /* No match */ + return -EINVAL; + omnibook_ectype = 1 << (value - 1); + return 0; +} + +static int get_ectype_param(char *buffer, struct kernel_param *kp) +{ + return sprintf(buffer, "%i", ffs(omnibook_ectype)); +} + +static int __init omnibook_module_init(void) +{ + int retval; + + printk(O_INFO "Driver version %s.\n", OMNIBOOK_MODULE_VERSION); + + if (omnibook_ectype != NONE) + printk(O_WARN "Forced load with EC type %i.\n", ffs(omnibook_ectype)); + else if (dmi_check_system(omnibook_ids)) + printk(O_INFO "%s detected.\n", laptop_model); + else + printk(O_INFO "Unknown model.\n"); + + omnibook_proc_root = proc_mkdir(OMNIBOOK_MODULE_NAME, NULL); + if (!omnibook_proc_root) { + printk(O_ERR "Unable to create /proc/%s.\n", OMNIBOOK_MODULE_NAME); + return -ENOENT; + } + +/* + * The platform_driver interface was added in linux 2.6.15 + */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) + + retval = platform_driver_register(&omnibook_driver); + if (retval < 0) + return retval; + + omnibook_device = platform_device_alloc(OMNIBOOK_MODULE_NAME, -1); + if (!omnibook_device) { + platform_driver_unregister(&omnibook_driver); + return -ENOMEM; + } + + retval = platform_device_add(omnibook_device); + if (retval) { + platform_device_put(omnibook_device); + platform_driver_unregister(&omnibook_driver); + return retval; + } +#else /* 2.6.15 */ + + retval = driver_register(&omnibook_driver); + if (retval < 0) + return retval; + + retval = platform_device_register(&omnibook_device); + + if (retval) { + driver_unregister(&omnibook_driver); + return retval; + } +#endif + return 0; +} + +static void __exit omnibook_module_cleanup(void) +{ + +/* + * The platform_driver interface was added in linux 2.6.15 + */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) + platform_device_unregister(omnibook_device); + platform_driver_unregister(&omnibook_driver); +#else + platform_device_unregister(&omnibook_device); + driver_unregister(&omnibook_driver); +#endif + + if (omnibook_proc_root) + remove_proc_entry("omnibook", NULL); + printk(O_INFO "Module is unloaded.\n"); +} + +module_init(omnibook_module_init); +module_exit(omnibook_module_cleanup); + +MODULE_AUTHOR("Soós Péter, Mathieu Bérard"); +MODULE_VERSION(OMNIBOOK_MODULE_VERSION); +MODULE_DESCRIPTION + ("Kernel interface for HP OmniBook, HP Pavilion, Toshiba Satellite and Compal ACL00 laptops"); +MODULE_LICENSE("GPL"); +module_param_call(ectype, set_ectype_param, get_ectype_param, NULL, S_IRUGO); +module_param_named(userset, omnibook_userset, int, S_IRUGO); +MODULE_PARM_DESC(ectype, "Type of embedded controller firmware"); +MODULE_PARM_DESC(userset, "Use 0 to disable, 1 to enable users to set parameters"); + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/polling.c +++ linux-2.6.35/ubuntu/omnibook/polling.c @@ -0,0 +1,259 @@ +/* + * polling.c -- scancode emulation for volume buttons + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" +#include +#include + +/* + * XE3GC type key_polling polling: + * + * Polling interval for keys (100 ms) + */ + +#define OMNIBOOK_POLL msecs_to_jiffies(100) + +/* + * workqueue manipulations are mutex protected and thus kept in sync with key_polling_enabled + */ +static struct workqueue_struct *omnibook_wq; +static int key_polling_enabled; +static DEFINE_MUTEX(poll_mutex); + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) +static void omnibook_key_poller(struct work_struct *work); +DECLARE_DELAYED_WORK(omnibook_poll_work, *omnibook_key_poller); +#else +static void omnibook_key_poller(void *data); +DECLARE_WORK(omnibook_poll_work, *omnibook_key_poller, NULL); +#endif + +static struct omnibook_feature key_polling_driver; +static struct input_dev *poll_input_dev; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) + static void omnibook_key_poller(struct work_struct *work) +#else + static void omnibook_key_poller(void *data) +#endif +{ + u8 q0a; + int retval; + + mutex_lock(&key_polling_driver.io_op->backend->mutex); + __backend_byte_read(key_polling_driver.io_op, &q0a); + __backend_byte_write(key_polling_driver.io_op, 0); + mutex_unlock(&key_polling_driver.io_op->backend->mutex); + +#ifdef CONFIG_OMNIBOOK_DEBUG + if (unlikely(q0a & XE3GC_SLPB_MASK)) + dprintk("Sleep button pressed.\n"); + if (unlikely(q0a & XE3GC_F5_MASK)) + dprintk("Fn-F5 - LCD/CRT switch pressed.\n"); + if (unlikely(q0a & XE3GC_CNTR_MASK)) + dprintk("Fn+F3/Fn+F4 - Contrast up or down pressed.\n"); + if (unlikely(q0a & XE3GC_BRGT_MASK)) + dprintk("Fn+F1/Fn+F2 - Brightness up or down pressed.\n"); +#endif + + /* + * Volume button scancode emulaton + * It emulates a key press and a release without repeat as other OneTouch buttons do. + */ + + if (unlikely(q0a & XE3GC_VOLD_MASK)) { + dprintk("Fn-down arrow or Volume down pressed.\n"); + omnibook_report_key(poll_input_dev, KEY_VOLUMEDOWN); + } + if (unlikely(q0a & XE3GC_VOLU_MASK)) { + dprintk("Fn-up arrow or Volume up pressed.\n"); + omnibook_report_key(poll_input_dev, KEY_VOLUMEUP); + } + if (unlikely(q0a & XE3GC_MUTE_MASK)) { + dprintk("Fn+F7 - Volume mute pressed.\n"); + omnibook_report_key(poll_input_dev, KEY_MUTE); + } + + retval = queue_delayed_work(omnibook_wq, &omnibook_poll_work, OMNIBOOK_POLL); + if(unlikely(!retval)) /* here non-zero on success */ + printk(O_ERR "Key_poller failed to rearm.\n"); +} + +static int omnibook_key_polling_enable(void) +{ + int retval = 0; + + if(mutex_lock_interruptible(&poll_mutex)) + return -ERESTARTSYS; + + if(key_polling_enabled) + goto out; + + retval = !queue_delayed_work(omnibook_wq, &omnibook_poll_work, OMNIBOOK_POLL); + if(retval) + printk(O_ERR "Key_poller enabling failed.\n"); + else { + dprintk("Scancode emulation for volume buttons enabled.\n"); + key_polling_enabled = 1; + } + + out: + mutex_unlock(&poll_mutex); + return retval; +} + +static int omnibook_key_polling_disable(void) +{ + if(mutex_lock_interruptible(&poll_mutex)) + return -ERESTARTSYS; + + if(!key_polling_enabled) + goto out; + + cancel_rearming_delayed_workqueue(omnibook_wq, &omnibook_poll_work); + dprintk("Scancode emulation for volume buttons disabled.\n"); + key_polling_enabled = 0; + + out: + mutex_unlock(&poll_mutex); + return 0; +} + + +static int omnibook_key_polling_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + if(mutex_lock_interruptible(&poll_mutex)) + return -ERESTARTSYS; + + len += sprintf(buffer + len, "Volume buttons polling is %s.\n", + (key_polling_enabled) ? "enabled" : "disabled"); +#ifdef CONFIG_OMNIBOOK_DEBUG + if(key_polling_enabled) + len += sprintf(buffer + len, "Will poll in %i msec.\n", + jiffies_to_msecs(omnibook_poll_work.timer.expires - jiffies)); +#endif + mutex_unlock(&poll_mutex); + return len; +} + +static int omnibook_key_polling_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + switch (*buffer) { + case '0': + retval = omnibook_key_polling_disable(); + break; + case '1': + retval = omnibook_key_polling_enable(); + break; + default: + retval = -EINVAL; + } + return retval; +} + + +/* + * Stop polling upon suspend an restore it upon resume + */ +static int omnibook_key_polling_resume(struct omnibook_operation *io_op) +{ + int retval = 0; + + mutex_lock(&poll_mutex); + if(key_polling_enabled) + retval = !queue_delayed_work(omnibook_wq, &omnibook_poll_work, OMNIBOOK_POLL); + mutex_unlock(&poll_mutex); + return retval; +} + +static int omnibook_key_polling_suspend(struct omnibook_operation *io_op) +{ + mutex_lock(&poll_mutex); + if(key_polling_enabled) + cancel_rearming_delayed_workqueue(omnibook_wq, &omnibook_poll_work); + mutex_unlock(&poll_mutex); + return 0; +} + +static int __init omnibook_key_polling_init(struct omnibook_operation *io_op) +{ + int retval = 0; + + poll_input_dev = input_allocate_device(); + if (!poll_input_dev) { + retval = -ENOMEM; + goto out; + } + + poll_input_dev->name = "Omnibook legacy laptop scancode generator"; + poll_input_dev->phys = "omnibook/input0"; + poll_input_dev->id.bustype = BUS_HOST; + + /* this device has three keys */ + set_bit(EV_KEY, poll_input_dev->evbit); + set_bit(KEY_VOLUMEDOWN, poll_input_dev->keybit); + set_bit(KEY_VOLUMEUP, poll_input_dev->keybit); + set_bit(KEY_MUTE, poll_input_dev->keybit); + + retval = input_register_device(poll_input_dev); + if (retval) { + input_free_device(poll_input_dev); + goto out; + } + + omnibook_wq = create_singlethread_workqueue("omnibook"); + if(!omnibook_wq) + retval = -ENOMEM; + else + retval = omnibook_key_polling_enable(); + +out: + return retval; +} + +static void __exit omnibook_key_polling_cleanup(struct omnibook_operation *io_op) +{ + omnibook_key_polling_disable(); + destroy_workqueue(omnibook_wq); + input_unregister_device(poll_input_dev); +} + +static struct omnibook_tbl key_polling_table[] __initdata = { + {XE3GC, SIMPLE_BYTE(EC, XE3GC_Q0A, 0)}, + {0,} +}; + +static struct omnibook_feature __declared_feature key_polling_driver = { + .name = "key_polling", + .enabled = 0, /* dangerous */ + .read = omnibook_key_polling_read, + .write = omnibook_key_polling_write, + .init = omnibook_key_polling_init, + .exit = omnibook_key_polling_cleanup, + .suspend = omnibook_key_polling_suspend, + .resume = omnibook_key_polling_resume, + .ectypes = XE3GC, + .tbl = key_polling_table, +}; + +module_param_named(key_polling, key_polling_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(key_polling, "Use 0 to disable, 1 to enable key polling"); +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/acpi.c +++ linux-2.6.35/ubuntu/omnibook/acpi.c @@ -0,0 +1,1158 @@ +/* + * acpi.c -- ACPI methods low-level access code for TSM70 class laptops + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Mathieu Bérard , 2006 + * + */ + +#include "omnibook.h" +#include "hardware.h" + +#ifdef CONFIG_ACPI + +#include +#include + +/* copied from drivers/input/serio/i8042-io.h */ +#define I8042_KBD_PHYS_DESC "isa0060/serio0" + +/* + * ACPI backend masks and strings + */ + +#define GET_WIRELESS_METHOD "ANTR" +#define SET_WIRELESS_METHOD "ANTW" +#define WLEX_MASK 0x4 +#define WLAT_MASK 0x1 +#define BTEX_MASK 0x8 +#define BTAT_MASK 0x2 +#define KLSW_MASK 0x10 + +#define GET_DISPLAY_METHOD "DOSS" +#define SET_DISPLAY_METHOD "DOSW" +/* Display reading masks CADL = detected, CSTE = enabled */ +#define LCD_CADL 0x10 +#define CRT_CADL 0x20 +#define TVO_CADL 0x40 +#define DVI_CADL 0x80 +#define LCD_CSTE 0x1 +#define CRT_CSTE 0x2 +#define TVO_CSTE 0x4 +#define DVI_CSTE 0x8 + +/* TSX205 Video-Out methods and return values */ +#define TSX205_SET_DISPLAY_METHOD "STBL" +#define TSX205_SLI_DISPLAY_METHOD "SL01.VGA1.STBL" +/* NOTE: Method DSSW seems to be some sort of auto-detect method */ +#define TSX205_AUTO_DISPLAY_METHOD "DSSW" +#define TSX205_DSPY_DE 0x1F /* DE - Detected and Enabled */ +#define TSX205_DSPY_DN 0x1D /* DN - Detected and Not enabled */ +#define TSX205_DSPY_NE 0x0F /* NE - Not detected and Enabled */ +#define TSX205_DSPY_NN 0x0D /* NN - Not detected and Not enabled */ + +#define GET_THROTTLE_METHOD "THRO" +#define SET_THROTTLE_METHOD "CLCK" + +static char ec_dev_list[][20] = { + "\\_SB.PCI0.LPCB.EC0", + "\\_SB.PCI0.LPC0.EC0", +}; + +/* TSX205 HCI and display handles */ +static char tsx205_dev_list[][20] = { + "\\_SB.VALZ", + "\\_SB.PCI0.PEGP.VGA" +}; + +/* TSX205 GET video-out methods */ +static char tsx205_video_list[][20] = { + "LCD._DCS", + "CRT._DCS", + "TV._DCS", + "DVI._DCS", + "SL01.VGA1.LCD._DCS", + "SL01.VGA1.CRT._DCS", + "SL01.VGA1.TV._DCS", + "SL01.VGA1.DVI._DCS", +}; + +#define TOSHIBA_ACPI_BT_CLASS "bluetooth" +#define TOSHIBA_ACPI_DEVICE_NAME "bluetooth adapter" + +#define TOSH_BT_ACTIVATE_USB "AUSB" +#define TOSH_BT_DISABLE_USB "DUSB" +#define TOSH_BT_POWER_ON "BTPO" +#define TOSH_BT_POWER_OFF "BTPF" +#define TOSH_BT_STATUS "BTST" +#define TOSH_BT_KSST_MASK 0x1 +#define TOSH_BT_USB_MASK 0x40 +#define TOSH_BT_POWER_MASK 0x80 + +/* + * ACPI driver for Toshiba Bluetooth device + */ +static int omnibook_acpi_bt_add(struct acpi_device *device); +static int omnibook_acpi_bt_remove(struct acpi_device *device, int type); + + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) +static const struct acpi_device_id omnibook_bt_ids[] = { + {"TOS6205", 0}, + {"", 0}, +}; + +static struct acpi_driver omnibook_bt_driver = { + .name = OMNIBOOK_MODULE_NAME, + .class = TOSHIBA_ACPI_BT_CLASS, + .ids = omnibook_bt_ids, + .ops = { + .add = omnibook_acpi_bt_add, + .remove = omnibook_acpi_bt_remove, + }, +}; +#else /* 2.6.23 */ +static struct acpi_driver omnibook_bt_driver = { + .name = OMNIBOOK_MODULE_NAME, + .class = TOSHIBA_ACPI_BT_CLASS, + .ids = "TOS6205", + .ops = { + .add = omnibook_acpi_bt_add, + .remove = omnibook_acpi_bt_remove, + }, +}; +#endif /* 2.6.23 */ + + +/* + * ACPI backend private data structure + */ +struct acpi_backend_data { + acpi_handle ec_handle; /* Handle on ACPI EC device */ + acpi_handle bt_handle; /* Handle on ACPI BT device */ + acpi_handle hci_handle; /* Handle on ACPI HCI device */ + acpi_handle dis_handle; /* Handle on ACPI Display device */ + unsigned has_antr_antw:1; /* Are there ANTR/ANTW methods in the EC device ? */ + unsigned has_doss_dosw:1; /* Are there DOSS/DOSW methods in the EC device ? */ + unsigned has_sli:1; /* Does the laptop has SLI enabled ? */ + struct input_dev *acpi_input_dev; + struct work_struct fnkey_work; +}; + +/* + * Hotkeys workflow: + * 1. Fn+Foo pressed + * 2. Scancode 0x6e generated by kbd controller + * 3. Scancode 0x6e caught by omnibook input handler + * 4. INFO method has keycode of last actually pressed Fn key + * 5. acpi_scan_table used to associate a detected keycode with a generated one + * 6. Generated keycode issued using the omnibook input device + */ + +/* + * The input handler should only bind with the standard AT keyboard. + * XXX: Scancode 0x6e won't be detected if the keyboard has already been + * grabbed (the Xorg event input driver do that) + */ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) +static int hook_connect(struct input_handler *handler, + struct input_dev *dev, + const struct input_device_id *id) +#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) +static struct input_handle *hook_connect(struct input_handler *handler, + struct input_dev *dev, + const struct input_device_id *id) +#else +static struct input_handle *hook_connect(struct input_handler *handler, + struct input_dev *dev, + struct input_device_id *id) +#endif +{ + struct input_handle *handle; + int error; + + /* the 0x0001 vendor magic number is found in atkbd.c */ + if(!(dev->id.bustype == BUS_I8042 && dev->id.vendor == 0x0001)) + goto out_nobind; + + if(!strstr(dev->phys, I8042_KBD_PHYS_DESC)) + goto out_nobind; + + dprintk("hook_connect for device %s.\n", dev->name); + + if(dev->grab) + printk(O_WARN "Input device is grabbed by %s, Fn hotkeys won't work.\n", + dev->grab->name); + + handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL); + if (!handle) +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + return -ENOMEM; +#else + return NULL; +#endif + + handle->dev = dev; + handle->handler = handler; + handle->name = "omnibook_scancode_hook"; + handle->private = handler->private; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + error = input_register_handle(handle); + if (error) { + dprintk("register_handle failed\n"); + goto out_nobind_free; + } + error = input_open_device(handle); + if (error) { + dprintk("register_handle failed\n"); + input_unregister_handle(handle); + goto out_nobind_free; + } + +#else + status=input_open_device(handle); + if (error==0) dprintk("Input device opened\n"); + else { + dprintk("opening input device failed\n"); + goto out_nobind_free; + } +#endif + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + return 0; +out_nobind_free: + kfree(handle); +out_nobind: + return -ENODEV; +#else + return handle; +out_nobind_free: + kfree(handle); +out_nobind: + return NULL; +#endif +} + +static void hook_disconnect(struct input_handle *handle) +{ + dprintk("hook_disconnect.\n"); + input_close_device(handle); +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + input_unregister_handle(handle); +#endif + kfree(handle); +} + +/* + * Hook for scancode 0x6e. Actual handling is done in a workqueue. + */ +static void hook_event(struct input_handle *handle, unsigned int event_type, + unsigned int event_code, int value) +{ + if (event_type == EV_MSC && event_code == MSC_SCAN && value == ACPI_FN_SCAN) + schedule_work(&((struct acpi_backend_data *)handle->private)->fnkey_work); +} + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) +static const struct input_device_id hook_ids[] = { +#else +static struct input_device_id hook_ids[] = { +#endif + { + .flags = INPUT_DEVICE_ID_MATCH_EVBIT, + .evbit = { BIT(EV_KEY) }, + }, + { }, /* Terminating entry */ +}; + +static struct input_handler hook_handler = { + .event = hook_event, + .connect = hook_connect, + .disconnect = hook_disconnect, + .name = OMNIBOOK_MODULE_NAME, + .id_table = hook_ids, +}; + +/* + * Detected scancode to keycode table + */ +static const struct { + unsigned int scancode; + unsigned int keycode; +} acpi_scan_table[] = { + { HCI_FN_RELEASED, KEY_FN}, + { HCI_MUTE, KEY_MUTE}, + { HCI_BREAK, KEY_COFFEE}, + { HCI_1, KEY_ZOOMOUT}, + { HCI_2, KEY_ZOOMIN}, + { HCI_SPACE, KEY_ZOOMRESET}, + { HCI_BSM, KEY_BATTERY}, + { HCI_SUSPEND, KEY_SLEEP}, + { HCI_HIBERNATE, KEY_SUSPEND}, + { HCI_VIDEOOUT, KEY_SWITCHVIDEOMODE}, + { HCI_BRIGHTNESSDOWN, KEY_BRIGHTNESSDOWN}, + { HCI_BRIGHTNESSUP, KEY_BRIGHTNESSUP}, + { HCI_WLAN, KEY_WLAN}, + { HCI_TOUCHPAD, KEY_PROG1}, + { HCI_FN_PRESSED, KEY_FN}, + { 0, 0}, +}; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) +static void omnibook_handle_fnkey(struct work_struct *work); +#else +static void omnibook_handle_fnkey(void* data); +#endif + +/* + * Register the input handler and the input device in the input subsystem + */ +static int register_input_subsystem(struct acpi_backend_data *priv_data) +{ + int i, retval = 0; + struct input_dev *acpi_input_dev; + + acpi_input_dev = input_allocate_device(); + if (!acpi_input_dev) { + retval = -ENOMEM; + goto out; + } + + acpi_input_dev->name = "Omnibook ACPI scancode generator"; + acpi_input_dev->phys = "omnibook/input0"; + acpi_input_dev->id.bustype = BUS_HOST; + + set_bit(EV_KEY, acpi_input_dev->evbit); + + for(i=0 ; i < ARRAY_SIZE(acpi_scan_table); i++) + set_bit(acpi_scan_table[i].keycode, acpi_input_dev->keybit); + + retval = input_register_device(acpi_input_dev); + if (retval) { + input_free_device(acpi_input_dev); + goto out; + } + + priv_data->acpi_input_dev = acpi_input_dev; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) + INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey); +#else + INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey, priv_data); +#endif + + + hook_handler.private = priv_data; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) + retval = input_register_handler(&hook_handler); +#else + input_register_handler(&hook_handler); +#endif + + out: + return retval; +} + +/* + * Execute an ACPI method which return either an integer or nothing + * and that require 0 or 1 numerical argument + * (acpi_evaluate_object wrapper) + */ +static int omnibook_acpi_execute(acpi_handle dev_handle, char *method, const int *param, int *result) +{ + + struct acpi_object_list args_list; + struct acpi_buffer buff; + union acpi_object arg, out_objs[1]; + + if (param) { + args_list.count = 1; + args_list.pointer = &arg; + arg.type = ACPI_TYPE_INTEGER; + arg.integer.value = *param; + } else + args_list.count = 0; + + buff.length = sizeof(out_objs); + buff.pointer = out_objs; + + if (acpi_evaluate_object(dev_handle, method, &args_list, &buff) != AE_OK) { + printk(O_ERR "ACPI method execution failed\n"); + return -EIO; + } + + if (!result) /* We don't care what the method returned here */ + return 0; + + if (out_objs[0].type != ACPI_TYPE_INTEGER) { + printk(O_ERR "ACPI method result is not a number\n"); + return -EINVAL; + } + + *result = out_objs[0].integer.value; + return 0; +} + +/* + * Probe for expected ACPI devices + */ +static int omnibook_acpi_init(const struct omnibook_operation *io_op) +{ + int retval = 0; + acpi_handle dev_handle, method_handle, hci_handle, dis_handle; + int i; + int has_sli = 0; + struct acpi_backend_data *priv_data; + + if (unlikely(acpi_disabled)) { + printk(O_ERR "ACPI is disabled: feature unavailable.\n"); + return -ENODEV; + } + + if (!io_op->backend->data) { + dprintk("Try to init ACPI backend\n"); + mutex_init(&io_op->backend->mutex); + mutex_lock(&io_op->backend->mutex); + kref_init(&io_op->backend->kref); + priv_data = kzalloc(sizeof(struct acpi_backend_data), GFP_KERNEL); + if (!priv_data) { + retval = -ENOMEM; + goto error0; + } + + /* Locate ACPI EC device, acpi_get_handle set dev_handle to NULL if not found */ + for (i = 0; i < ARRAY_SIZE(ec_dev_list); i++) { + if (acpi_get_handle(NULL, ec_dev_list[i], &dev_handle) == AE_OK) { + dprintk("ACPI EC device found\n"); + priv_data->ec_handle = dev_handle; + break; + } + } + + if (!dev_handle) { + printk(O_ERR "Can't get handle on ACPI EC device.\n"); + retval = -ENODEV; + goto error1; + } + + /* Probe for HCI and Display devices only on TSX205 models */ + if (omnibook_ectype & TSX205) { + if (acpi_get_handle(NULL, tsx205_dev_list[0], &hci_handle) == AE_OK) { + dprintk("Toshiba X205 HCI device found\n"); + priv_data->hci_handle = hci_handle; + } + + if (!hci_handle) { + printk(O_ERR "Couldn't get HCI handle.\n"); + retval = -ENODEV; + goto error1; + } + + if (acpi_get_handle(NULL, tsx205_dev_list[1], &dis_handle) == AE_OK) + priv_data->dis_handle = dis_handle; + + if (!dis_handle) { + printk(O_ERR "Couldn't get X205 Display handle.\n"); + retval = -ENODEV; + goto error1; + } + + /* Does the laptop has SLI enabled? */ + omnibook_acpi_execute(dis_handle, (char *)TSX205_SLIVDO_METHOD, NULL, &has_sli); + if (has_sli) + dprintk("Toshiba X205 Display device found (SLI).\n"); + else + dprintk("Toshiba X205 Display device found.\n"); + + priv_data->has_sli = has_sli; + } + + if ((acpi_get_handle( dev_handle, GET_WIRELESS_METHOD, &method_handle) == AE_OK) && + (acpi_get_handle( dev_handle, SET_WIRELESS_METHOD, &method_handle) == AE_OK)) + priv_data->has_antr_antw = 1; + + if (omnibook_ectype & TSX205) { + if ((acpi_get_handle(dis_handle, TSX205_AUTO_DISPLAY_METHOD, &method_handle) == AE_OK) && + (acpi_get_handle(dis_handle, TSX205_AUTO_DISPLAY_METHOD, &method_handle) == AE_OK)) + priv_data->has_doss_dosw = 1; + } else { + if ((acpi_get_handle( dev_handle, GET_DISPLAY_METHOD, &method_handle) == AE_OK) && + (acpi_get_handle( dev_handle, SET_DISPLAY_METHOD, &method_handle) == AE_OK)) + priv_data->has_doss_dosw = 1; + } + + retval = register_input_subsystem(priv_data); + if(retval) + goto error1; + + io_op->backend->data = (void *) priv_data; + + mutex_unlock(&io_op->backend->mutex); + + /* attempt to register Toshiba bluetooth ACPI driver */ + acpi_bus_register_driver(&omnibook_bt_driver); + + dprintk("ACPI backend init OK\n"); + + return 0; + + } else { + dprintk("ACPI backend has already been initialized\n"); + kref_get(&io_op->backend->kref); + return 0; + } + + error1: + kfree(priv_data); + io_op->backend->data = NULL; + error0: + mutex_unlock(&io_op->backend->mutex); + mutex_destroy(&io_op->backend->mutex); + return retval; +} + +static void omnibook_acpi_free(struct kref *ref) +{ + struct omnibook_backend *backend; + struct acpi_backend_data *priv_data; + + backend = container_of(ref, struct omnibook_backend, kref); + priv_data = backend->data; + + dprintk("ACPI backend not used anymore: disposing\n"); + + + dprintk("ptr addr: %p driver name: %s\n",&omnibook_bt_driver, omnibook_bt_driver.name); + acpi_bus_unregister_driver(&omnibook_bt_driver); + + flush_scheduled_work(); + input_unregister_handler(&hook_handler); + input_unregister_device(priv_data->acpi_input_dev); + + mutex_lock(&backend->mutex); + kfree(backend->data); + backend->data = NULL; + mutex_unlock(&backend->mutex); + mutex_destroy(&backend->mutex); +} + +static void omnibook_acpi_exit(const struct omnibook_operation *io_op) +{ + dprintk("Trying to dispose ACPI backend\n"); + kref_put(&io_op->backend->kref, omnibook_acpi_free); +} + +/* forward declaration */ +struct omnibook_backend acpi_backend; + +/* Function taken from toshiba_acpi */ +static acpi_status hci_raw(const u32 in[HCI_WORDS], u32 out[HCI_WORDS]) +{ + struct acpi_backend_data *priv_data = acpi_backend.data; + struct acpi_object_list params; + union acpi_object in_objs[HCI_WORDS]; + struct acpi_buffer results; + union acpi_object out_objs[HCI_WORDS + 1]; + acpi_status status; + int i; + + params.count = HCI_WORDS; + params.pointer = in_objs; + for (i = 0; i < HCI_WORDS; ++i) { + in_objs[i].type = ACPI_TYPE_INTEGER; + in_objs[i].integer.value = in[i]; + } + + results.length = sizeof(out_objs); + results.pointer = out_objs; + + status = acpi_evaluate_object(priv_data->hci_handle, (char *)HCI_METHOD, ¶ms, + &results); + if ((status == AE_OK) && (out_objs->package.count <= HCI_WORDS)) { + for (i = 0; i < out_objs->package.count; ++i) { + out[i] = out_objs->package.elements[i].integer.value; + } + } + + return status; +} + +/* + * Set Bluetooth device state using the Toshiba BT device + */ +static int set_bt_status(const struct acpi_backend_data *priv_data, unsigned int state) +{ + int retval = 0; + + if (state) { + retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_ACTIVATE_USB, NULL, NULL); + if (retval) + goto out; + retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_POWER_ON, NULL, NULL); + if (retval) + goto out; + } else { + retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_DISABLE_USB, NULL, NULL); + if (retval) + goto out; + retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_POWER_OFF, NULL, NULL); + if (retval) + goto out; + } + out: + return retval; +} + +static int omnibook_acpi_bt_add(struct acpi_device *device) +{ + int retval; + struct acpi_backend_data *priv_data = acpi_backend.data; + + dprintk("Enabling Toshiba Bluetooth ACPI device.\n"); + strcpy(acpi_device_name(device), TOSHIBA_ACPI_DEVICE_NAME); + strcpy(acpi_device_class(device), TOSHIBA_ACPI_BT_CLASS); + + /* Save handle in backend private data structure. ugly. */ + + mutex_lock(&acpi_backend.mutex); + priv_data->bt_handle = device->handle; + retval = set_bt_status(priv_data, 1); + mutex_unlock(&acpi_backend.mutex); + + return retval; +} + +static int omnibook_acpi_bt_remove(struct acpi_device *device, int type) +{ + int retval; + struct acpi_backend_data *priv_data = acpi_backend.data; + + mutex_lock(&acpi_backend.mutex); + dprintk("Disabling Toshiba Bluetooth ACPI device.\n"); + retval = set_bt_status(priv_data, 0); + priv_data->bt_handle = NULL; + mutex_unlock(&acpi_backend.mutex); + + return retval; +} + +/* + * Get Bluetooth status using the BTST method + */ +static int get_bt_status(const struct acpi_backend_data *priv_data, unsigned int *state) +{ + int retval = 0; + int raw_state; + + if ((retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_STATUS, NULL, &raw_state))) + return retval; + + dprintk("BTST raw_state: %x\n", raw_state); + + *state = BT_EX; + *state |= ((raw_state & TOSH_BT_USB_MASK) && (raw_state & TOSH_BT_POWER_MASK)) ? BT_STA : 0; + + return retval; +} + +/* + * Get the Bluetooth + Wireless status using the ANTR method + * FIXME: what if ANTR and BTST disagree ? we thrust ANTR for now + */ +static int get_wireless_status(const struct acpi_backend_data *priv_data, unsigned int *state) +{ + int retval = 0; + int raw_state; + + if ((retval = omnibook_acpi_execute(priv_data->ec_handle, GET_WIRELESS_METHOD, NULL, &raw_state))) + return retval; + + dprintk("get_wireless raw_state: %x\n", raw_state); + + *state = (raw_state & WLEX_MASK) ? WIFI_EX : 0; + *state |= (raw_state & WLAT_MASK) ? WIFI_STA : 0; + *state |= (raw_state & KLSW_MASK) ? KILLSWITCH : 0; + *state |= (raw_state & BTEX_MASK) ? BT_EX : 0; + *state |= (raw_state & BTAT_MASK) ? BT_STA : 0; + + return retval; +} + +static int get_tsx205_wireless_status(const struct acpi_backend_data *priv_data, unsigned int *state) +{ + int retval = 0; + int raw_state; + u32 in[HCI_WORDS] = { HCI_GET, HCI_RF_CONTROL, 0, HCI_WIRELESS_CHECK, 0, 0 }; + u32 out[HCI_WORDS]; + + hci_raw(in, out); + + /* Now let's check the killswitch */ + if ((retval = omnibook_acpi_execute(priv_data->ec_handle, TSX205_KILLSW_METHOD, NULL, &raw_state))) + return retval; + + dprintk("get_wireless raw_state: %x\n", out[2]); + + *state = ((out[2] & 0xff)) ? WIFI_EX : 0; + *state |= (raw_state) ? WIFI_STA : 0; + *state |= (!raw_state) ? KILLSWITCH : 0; + + /* And finally BT */ + if ((retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_STATUS, NULL, &raw_state))) + return retval; + + *state |= BT_EX; + *state |= ((raw_state & TOSH_BT_USB_MASK) && (raw_state & TOSH_BT_POWER_MASK)) ? BT_STA : 0; + + return retval; +} + +static int omnibook_acpi_get_wireless(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval; + struct acpi_backend_data *priv_data = io_op->backend->data; + + /* use BTST (BT device) if we don't have ANTR/ANTW (EC device) */ + if (omnibook_ectype & TSX205) + retval = get_tsx205_wireless_status(priv_data, state); + else if (priv_data->has_antr_antw) + retval = get_wireless_status(priv_data, state); + else if(priv_data->bt_handle) + retval = get_bt_status(priv_data, state); + else + retval = -ENODEV; + + return retval; +} + +/* + * Set the Bluetooth + Wireless status using the ANTW method + */ +static int set_wireless_status(const struct acpi_backend_data *priv_data, unsigned int state) +{ + int retval; + int raw_state; + + raw_state = !!(state & WIFI_STA); /* bit 0 */ + raw_state |= !!(state & BT_STA) << 0x1; /* bit 1 */ + + dprintk("set_wireless raw_state: %x\n", raw_state); + + retval = omnibook_acpi_execute(priv_data->ec_handle, SET_WIRELESS_METHOD, &raw_state, NULL); + + return retval; +} + +static int set_tsx205_wireless_status(const struct acpi_backend_data *priv_data, unsigned int state) +{ + int retval; + int raw_state = !!(state & WIFI_STA); + + dprintk("set_wireless raw_state: %x\n", raw_state); + + u32 in[HCI_WORDS] = { HCI_SET, HCI_RF_CONTROL, raw_state, HCI_WIRELESS_POWER, 0, 0 }; + u32 out[HCI_WORDS]; + hci_raw(in, out); + + raw_state |= !!(state & BT_STA) << 0x1; /* bit 1 */ + + /* BT status */ + retval = set_bt_status(priv_data->bt_handle, state); + + return retval; +} + +static int omnibook_acpi_set_wireless(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval = -ENODEV; + struct acpi_backend_data *priv_data = io_op->backend->data; + + /* First try the TSX205 methods */ + if(omnibook_ectype & TSX205) + retval = set_tsx205_wireless_status(priv_data, state); + + /* Then try the ANTR/ANTW methods */ + if(priv_data->has_antr_antw) + retval = set_wireless_status(priv_data, state); + + /* Then try the bluetooth ACPI device if present */ + if(priv_data->bt_handle) + retval = set_bt_status(priv_data, (state & BT_STA)); + + return retval; +} + +static int tsx205_get_display(const struct acpi_backend_data *priv_data, unsigned int *state, unsigned int device) +{ + int retval = 0; + int raw_state = 0; + + retval = omnibook_acpi_execute(priv_data->dis_handle, tsx205_video_list[device], NULL, &raw_state); + if (retval < 0) { + dprintk(O_ERR "Failed to get video device (%d) state.\n", device); + return retval; + } + + /* Ugly, but better than nothing... */ + switch (device) { + case 0: + case 4: /* LCD device */ + dprintk("get_display LCD (%d) raw_state: %x\n", device, raw_state); + if (raw_state == TSX205_DSPY_DE) { + *state |= DISPLAY_LCD_DET; + *state |= DISPLAY_LCD_ON; + } else + if (raw_state == TSX205_DSPY_DN) + *state |= DISPLAY_LCD_DET; + else if (raw_state == TSX205_DSPY_NE) + *state |= DISPLAY_LCD_ON; + break; + case 1: + case 5: /* CRT device */ + dprintk("get_display CRT (%d) raw_state: %x\n", device, raw_state); + if (raw_state == TSX205_DSPY_DE) { + *state |= DISPLAY_CRT_DET; + *state |= DISPLAY_CRT_ON; + } else + if (raw_state == TSX205_DSPY_DN) + *state |= DISPLAY_CRT_DET; + else if (raw_state == TSX205_DSPY_NE) + *state |= DISPLAY_CRT_ON; + break; + case 2: + case 6: /* TV-OUT device */ + dprintk("get_display TV-OUT (%d) raw_state: %x\n", device, raw_state); + if (raw_state == TSX205_DSPY_DE) { + *state |= DISPLAY_TVO_DET; + *state |= DISPLAY_TVO_ON; + } else + if (raw_state == TSX205_DSPY_DN) + *state |= DISPLAY_TVO_DET; + else if (raw_state == TSX205_DSPY_NE) + *state |= DISPLAY_TVO_ON; + break; + case 3: + case 7: /* DVI device */ + dprintk("get_display DVI (%d) raw_state: %x\n", device, raw_state); + if (raw_state == TSX205_DSPY_DE) { + *state |= DISPLAY_DVI_DET; + *state |= DISPLAY_DVI_ON; + } else + if (raw_state == TSX205_DSPY_DN) + *state |= DISPLAY_DVI_DET; + else if (raw_state == TSX205_DSPY_NE) + *state |= DISPLAY_DVI_ON; + break; + } + + return retval; +} + +static int omnibook_acpi_get_display(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval = 0; + int raw_state = 0; + struct acpi_backend_data *priv_data = io_op->backend->data; + + if(!priv_data->has_doss_dosw) + return -ENODEV; + + if (omnibook_ectype & TSX205) { + int i; + + /* Loop 'tru the different Video-Out devices */ + if (priv_data->has_sli) + for (i = 4; i < ARRAY_SIZE(tsx205_video_list); i++) + retval = tsx205_get_display(priv_data, state, i); + else + for (i = 0; i < 4; i++) + retval = tsx205_get_display(priv_data, state, i); + + if (retval < 0) + return -EIO; + + goto vidout; + } + + retval = omnibook_acpi_execute(priv_data->ec_handle, GET_DISPLAY_METHOD, NULL, &raw_state); + if (retval < 0) + return retval; + + dprintk("get_display raw_state: %x\n", raw_state); + + /* Backend specific to backend-neutral conversion */ + *state = (raw_state & LCD_CSTE) ? DISPLAY_LCD_ON : 0; + *state |= (raw_state & CRT_CSTE) ? DISPLAY_CRT_ON : 0; + *state |= (raw_state & TVO_CSTE) ? DISPLAY_TVO_ON : 0; + *state |= (raw_state & DVI_CSTE) ? DISPLAY_DVI_ON : 0; + + *state |= (raw_state & LCD_CADL) ? DISPLAY_LCD_DET : 0; + *state |= (raw_state & CRT_CADL) ? DISPLAY_CRT_DET : 0; + *state |= (raw_state & TVO_CADL) ? DISPLAY_TVO_DET : 0; + *state |= (raw_state & DVI_CADL) ? DISPLAY_DVI_DET : 0; + +vidout: + return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON | DISPLAY_DVI_ON + | DISPLAY_LCD_DET | DISPLAY_CRT_DET | DISPLAY_TVO_DET | DISPLAY_DVI_DET; +} + +static const unsigned int acpi_display_mode_list[] = { + DISPLAY_LCD_ON, + DISPLAY_CRT_ON, + DISPLAY_LCD_ON | DISPLAY_CRT_ON, + DISPLAY_TVO_ON, + DISPLAY_LCD_ON | DISPLAY_TVO_ON, + DISPLAY_CRT_ON | DISPLAY_TVO_ON, + DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON, + DISPLAY_DVI_ON, + DISPLAY_LCD_ON | DISPLAY_DVI_ON, +}; + +static int omnibook_acpi_set_display(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval = 0; + int i; + int matched = -1; + struct acpi_backend_data *priv_data = io_op->backend->data; + + if(!priv_data->has_doss_dosw) + return -ENODEV; + + for (i = 0; i < ARRAY_SIZE(acpi_display_mode_list); i++) { + if (acpi_display_mode_list[i] == state) { + matched = i + 1; /* raw state is array row number + 1 */ + break; + } + } + if (matched == -1) { + printk("Display mode %x is unsupported.\n", state); + return -EINVAL; + } + + dprintk("set_display raw_state: %x\n", matched); + + if (omnibook_ectype & TSX205) { + if (priv_data->has_sli) + retval = omnibook_acpi_execute(priv_data->dis_handle, TSX205_SLI_DISPLAY_METHOD, &matched, NULL); + else + retval = omnibook_acpi_execute(priv_data->dis_handle, TSX205_SET_DISPLAY_METHOD, &matched, NULL); + } else + retval = omnibook_acpi_execute(priv_data->ec_handle, SET_DISPLAY_METHOD, &matched, NULL); + if (retval < 0) + return retval; + + return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON | DISPLAY_DVI_ON; +} + +static int omnibook_acpi_get_throttle(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval; + int thtl_en = 0, thtl_dty = 0; + int param; + struct acpi_backend_data *priv_data = io_op->backend->data; + + param = 0; + /* Read THEN aka THTL_EN in ICH6M datasheets */ + retval = omnibook_acpi_execute(priv_data->ec_handle, GET_THROTTLE_METHOD, ¶m, &thtl_en); + if ( thtl_en == 0 ) { + *state = 0; + return retval; + } + param = 1; + /* Read DUTY aka THTL_DTY in ICH6M datasheets */ + retval = omnibook_acpi_execute(priv_data->ec_handle, GET_THROTTLE_METHOD, ¶m, &thtl_dty); + WARN_ON(thtl_dty > 7); /* We shouldn't encounter more than 7 throttling level */ + *state = 8 - thtl_dty; /* THTL_DTY and ACPI T-state are reverse mapped */ + return retval; +} + +static int omnibook_acpi_set_throttle(const struct omnibook_operation *io_op, unsigned int state) +{ + struct acpi_backend_data *priv_data = io_op->backend->data; + /* THTL_DTY and ACPI T-state are reverse mapped */ + /* throttling.c already clamped state between 0 and 7 */ + if (state) + state = 8 - state; + + return omnibook_acpi_execute(priv_data->ec_handle, SET_THROTTLE_METHOD, &state, NULL); +} + +/* + * Fn+foo hotkeys handling + */ +static int omnibook_hci_get_hotkeys(const struct omnibook_operation *io_op, unsigned int *state) +{ + u32 in[HCI_WORDS] = { HCI_GET, HCI_HOTKEY_EVENT, 0, 0, 0, 0 }; + u32 out[HCI_WORDS]; + acpi_status status = hci_raw(in, out); + + if (status != AE_OK) + return HCI_FAILURE; + + dprintk("get_hotkeys raw_state: %x\n", out[2]); + + *state = (out[2] & ACPI_FN_MASK) ? HKEY_FN : 0; + + return 0; +} + +static int omnibook_hci_set_hotkeys(const struct omnibook_operation *io_op, unsigned int state) +{ + u32 in[HCI_WORDS] = { 0, 0, 0, 0, 0, 0 }; + u32 out[HCI_WORDS]; + in[0] = HCI_SET; + in[1] = HCI_HOTKEY_EVENT; + in[2] = (state & HKEY_FN) ? 1 : 0; + acpi_status status = hci_raw(in, out); + + dprintk("set_hotkeys (Fn interface) raw_state: %x\n", in[2]); + + return (status == AE_OK) ? out[0] : HCI_FAILURE; +} + +static int omnibook_acpi_get_events(unsigned int *state) +{ + acpi_status status; + struct acpi_backend_data *priv_data = acpi_backend.data; + + /* We need to call the NTFY method first so it can activate the TECF variable */ + status = omnibook_acpi_execute(priv_data->ec_handle, TSX205_NOTIFY_METHOD, NULL, NULL); + if (status != AE_OK) { + dprintk(O_ERR "Failed to activate NTFY method.\n"); + return -EIO; + } + + /* Now we can poll the INFO method to get last pressed hotkey */ + status = omnibook_acpi_execute(priv_data->hci_handle, TSX205_EVENTS_METHOD, NULL, state); + if (status != AE_OK) { + dprintk(O_ERR "Failed to get Hotkey event.\n"); + return -EIO; + } + + /* We only care about a key press, so just report the Fn key Press/Release */ + if ( ((*state & ~0x80) == 0x100) || ((*state & ~0x80) == 0x17f) ) + *state &= ~0x80; + + return status; +} + +/* + * Adjust the lcd backlight level by delta. + * Used for Fn+F6/F7 keypress + */ +static int adjust_brighness(int delta) +{ + struct omnibook_feature *lcd_feature = omnibook_find_feature("lcd"); + struct omnibook_operation *io_op; + int retval = 0; + u8 brgt; + + if(!lcd_feature) + return -ENODEV; + + io_op = lcd_feature->io_op; + + mutex_lock(&io_op->backend->mutex); + + if(( retval = __backend_byte_read(io_op, &brgt))) + goto out; + + dprintk("Fn-F6/F7 pressed: adjusting brightness.\n"); + + if (((int) brgt + delta) < 0) + brgt = 0; + else if ((brgt + delta) > omnibook_max_brightness) + brgt = omnibook_max_brightness; + else + brgt += delta; + + retval = __backend_byte_write(io_op, brgt); + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Workqueue handler for Fn hotkeys + */ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) +static void omnibook_handle_fnkey(struct work_struct *work) +#else +static void omnibook_handle_fnkey(void* data) +#endif +{ + int i; + u32 gen_scan; + struct input_dev *input_dev; + acpi_status status; + + status = omnibook_acpi_get_events(&gen_scan); + if (status != AE_OK) + return; + + dprintk("detected scancode 0x%x.\n", gen_scan); + switch(gen_scan) { + case HCI_BRIGHTNESSDOWN: + adjust_brighness(-1); + break; + case HCI_BRIGHTNESSUP: + adjust_brighness(+1); + break; + } + + for (i = 0 ; i < ARRAY_SIZE(acpi_scan_table); i++) { + if (gen_scan == acpi_scan_table[i].scancode) { + dprintk("generating keycode %i.\n", acpi_scan_table[i].keycode); +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) + input_dev = container_of(work, struct acpi_backend_data, fnkey_work)->acpi_input_dev; +#else + input_dev = ((struct acpi_backend_data *) data)->acpi_input_dev; +#endif + omnibook_report_key(input_dev, acpi_scan_table[i].keycode); + break; + } + } +} + +struct omnibook_backend acpi_backend = { + .name = "acpi", + .hotkeys_read_cap = HKEY_FN, + .hotkeys_write_cap = HKEY_FN, + .init = omnibook_acpi_init, + .exit = omnibook_acpi_exit, + .aerial_get = omnibook_acpi_get_wireless, + .aerial_set = omnibook_acpi_set_wireless, + .display_get = omnibook_acpi_get_display, + .display_set = omnibook_acpi_set_display, + .throttle_get = omnibook_acpi_get_throttle, + .throttle_set = omnibook_acpi_set_throttle, + .hotkeys_get = omnibook_hci_get_hotkeys, + .hotkeys_set = omnibook_hci_set_hotkeys, +}; + +#else /* CONFIG_ACPI */ + +/* dummy backend for non-ACPI systems */ +static int _fail_probe(const struct omnibook_operation *io_op) +{ + return -ENODEV; +} + +struct omnibook_backend acpi_backend = { + .name = "acpi", + .init = _fail_probe, +}; + +#endif /* CONFIG_ACPI */ --- linux-2.6.35.orig/ubuntu/omnibook/info.c +++ linux-2.6.35/ubuntu/omnibook/info.c @@ -0,0 +1,68 @@ +/* + * info.c -- trivial informational features + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include + +static int omnibook_version_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + len += sprintf(buffer + len, "%s\n", OMNIBOOK_MODULE_VERSION); + + return len; +} + +static int omnibook_dmi_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + len += sprintf(buffer + len, "BIOS Vendor: %s\n", dmi_get_system_info(DMI_BIOS_VENDOR)); + len += sprintf(buffer + len, "BIOS Version: %s\n", dmi_get_system_info(DMI_BIOS_VERSION)); + len += sprintf(buffer + len, "BIOS Release: %s\n", dmi_get_system_info(DMI_BIOS_DATE)); + len += sprintf(buffer + len, "System Vendor: %s\n", dmi_get_system_info(DMI_SYS_VENDOR)); + len += sprintf(buffer + len, "Product Name: %s\n", dmi_get_system_info(DMI_PRODUCT_NAME)); + len += + sprintf(buffer + len, "Version: %s\n", dmi_get_system_info(DMI_PRODUCT_VERSION)); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) + len += + sprintf(buffer + len, "Serial Number: %s\n", dmi_get_system_info(DMI_PRODUCT_SERIAL)); +#endif + len += sprintf(buffer + len, "Board Vendor: %s\n", dmi_get_system_info(DMI_BOARD_VENDOR)); + len += sprintf(buffer + len, "Board Name: %s\n", dmi_get_system_info(DMI_BOARD_VERSION)); + + return len; +} + +static struct omnibook_feature __declared_feature version_driver = { + .name = "version", + .enabled = 1, + .read = omnibook_version_read, +}; + +static struct omnibook_feature __declared_feature dmi_driver = { + .name = "dmi", + .enabled = 1, + .read = omnibook_dmi_read, +}; + +module_param_named(dmi, dmi_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(dmi, "Use 0 to disable, 1 to enable DMI informations display support"); + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/pio.c +++ linux-2.6.35/ubuntu/omnibook/pio.c @@ -0,0 +1,173 @@ +/* + * pio.c -- low level functions I/O ports + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include +#include +#include +#include + +#include +#include "hardware.h" + +/* + * IO port backend. Only support single or dual ports operations + * private data structure: it's the linked list of requested ports + * + * Race condition issue: omnibook_pio_init/exit functions are only called from + * omnibook_backend_match and omnibook_remove from init.c, this should happen + * only at module init/exit time so there is no need for a lock. + */ + +struct pio_priv_data_t { + unsigned long addr; + struct kref refcount; + struct list_head list; +}; + +static struct pio_priv_data_t pio_priv_data = { + .addr = 0, + .list = LIST_HEAD_INIT(pio_priv_data.list), +}; + +/* + * Match an entry in the linked list helper function: see if we have and entry + * whose addr field match maddr + */ +static struct pio_priv_data_t *omnibook_match_port(struct pio_priv_data_t *data, + unsigned long maddr) +{ + struct pio_priv_data_t *cursor; + + list_for_each_entry(cursor, &data->list, list) { + if (cursor->addr == maddr) { + return cursor; + } + } + return NULL; +} + +/* + * See if we have to request raddr + */ +static int omnibook_claim_port(struct pio_priv_data_t *data, unsigned long raddr) +{ + struct pio_priv_data_t *match, *new; + + match = omnibook_match_port(data, raddr); + if (match) { + /* Already requested by us: increment kref and quit */ + kref_get(&match->refcount); + return 0; + } + + /* there was no match: request the region and add to list */ + if (!request_region(raddr, 1, OMNIBOOK_MODULE_NAME)) { + printk(O_ERR "Request I/O port error\n"); + return -ENODEV; + } + + new = kmalloc(sizeof(struct pio_priv_data_t), GFP_KERNEL); + if (!new) { + release_region(raddr, 1); + return -ENOMEM; + } + + kref_init(&new->refcount); + new->addr = raddr; + list_add(&new->list, &data->list); + + return 0; +} + +/* + * Register read_addr and write_addr + */ +static int omnibook_pio_init(const struct omnibook_operation *io_op) +{ + int retval = 0; + + if (io_op->read_addr + && (retval = omnibook_claim_port(io_op->backend->data, io_op->read_addr))) + goto out; + + if (io_op->write_addr && (io_op->write_addr != io_op->read_addr)) + retval = omnibook_claim_port(io_op->backend->data, io_op->write_addr); + + out: + return retval; +} + +/* + * REALLY release a port + */ +static void omnibook_free_port(struct kref *ref) +{ + struct pio_priv_data_t *data; + + data = container_of(ref, struct pio_priv_data_t, refcount); + release_region(data->addr, 1); + list_del(&data->list); + kfree(data); +} + +/* + * Unregister read_addr and write_addr + */ +static void omnibook_pio_exit(const struct omnibook_operation *io_op) +{ + struct pio_priv_data_t *match; + + match = omnibook_match_port(io_op->backend->data, io_op->read_addr); + if (match) + kref_put(&match->refcount, omnibook_free_port); + + match = omnibook_match_port(io_op->backend->data, io_op->write_addr); + if (match) + kref_put(&match->refcount, omnibook_free_port); + +} + +static int omnibook_io_read(const struct omnibook_operation *io_op, u8 * value) +{ + *value = inb(io_op->read_addr); + if (io_op->read_mask) + *value &= io_op->read_mask; + return 0; +} + +static int omnibook_io_write(const struct omnibook_operation *io_op, u8 value) +{ + outb(io_op->write_addr, value); + return 0; +} + +/* + * Backend interface declarations + */ +struct omnibook_backend pio_backend = { + .name = "pio", + .data = &pio_priv_data, + .init = omnibook_pio_init, + .exit = omnibook_pio_exit, + .byte_read = omnibook_io_read, + .byte_write = omnibook_io_write, +}; + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/cooling.c +++ linux-2.6.35/ubuntu/omnibook/cooling.c @@ -0,0 +1,97 @@ +/* + * colling.c -- cooling methods feature + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Mathieu Bérard , 2007 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_cooling_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + len += sprintf(buffer + len, "Cooling method : %s\n", + io_op->backend->cooling_state ? "Performance" : "Powersave" ); + + mutex_unlock(&io_op->backend->mutex); + return len; +} + +static int omnibook_cooling_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + + if (*buffer == '0') { + retval = __backend_byte_write(io_op, + TSM70_COOLING_OFFSET + TSM70_COOLING_POWERSAVE); + } else if (*buffer == '1') { + retval = __backend_byte_write(io_op, + TSM70_COOLING_OFFSET + TSM70_COOLING_PERF); + } else { + retval = -EINVAL; + goto out; + } + + /* *buffer is either '0' or '1' here */ + if (!retval) + io_op->backend->cooling_state = *buffer - '0' ; + + mutex_unlock(&io_op->backend->mutex); + + out: + return retval; +} + +static int __init omnibook_cooling_init(struct omnibook_operation *io_op) +{ + mutex_lock(&io_op->backend->mutex); + /* XXX: Assumed default cooling method: performance */ + io_op->backend->cooling_state = TSM70_COOLING_PERF; + mutex_unlock(&io_op->backend->mutex); + return 0; +} + +static void __exit omnibook_cooling_exit(struct omnibook_operation *io_op) +{ + /* Set back cooling method to performance */ + backend_byte_write(io_op, TSM70_COOLING_OFFSET + TSM70_COOLING_PERF); +} + +static struct omnibook_tbl cooling_table[] __initdata = { + {TSM70 | TSX205, {CDI, 0, TSM70_FN_INDEX, 0, 0, 0 }}, + {0,} +}; + +struct omnibook_feature __declared_feature cooling_driver = { + .name = "cooling", + .enabled = 1, + .read = omnibook_cooling_read, + .write = omnibook_cooling_write, + .init = omnibook_cooling_init, + .exit = omnibook_cooling_exit, + .ectypes = TSM70 | TSX205, + .tbl = cooling_table, +}; + +module_param_named(cooling, cooling_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(cooling, "Use 0 to disable, 1 to enable CPU cooling method control"); + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/omnibook.h +++ linux-2.6.35/ubuntu/omnibook/omnibook.h @@ -0,0 +1,145 @@ +/* + * omnibook.h -- High level data structures and functions of omnibook + * support code + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006-2007 + */ + +#include +#include +#include +#include + +/* + * EC types + */ + +extern enum omnibook_ectype_t { + NONE = 0, /* 0 Default/unknown EC type */ + XE3GF = (1<<0), /* 1 HP OmniBook XE3 GF, most old Toshiba Satellites */ + XE3GC = (1<<1), /* 2 HP OmniBook XE3 GC, GD, GE and compatible */ + OB500 = (1<<2), /* 3 HP OmniBook 500 and compatible */ + OB510 = (1<<3), /* 4 HP OmniBook 510 */ + OB6000 = (1<<4), /* 5 HP OmniBook 6000 */ + OB6100 = (1<<5), /* 6 HP OmniBook 6100 */ + XE4500 = (1<<6), /* 7 HP OmniBook xe4500 and compatible */ + OB4150 = (1<<7), /* 8 HP OmniBook 4150 */ + XE2 = (1<<8), /* 9 HP OmniBook XE2 */ + AMILOD = (1<<9), /* 10 Fujitsu Amilo D */ + TSP10 = (1<<10), /* 11 Toshiba Satellite P10, P15, P20 and compatible */ + TSM70 = (1<<11), /* 12 Toshiba Satellite M40X, M70 and compatible */ + TSM40 = (1<<12), /* 13 Toshiba Satellite M40, M45 and Tecra S1 */ + TSA105 = (1<<13), /* 14 Toshiba Satellite A105 and compatible (Real support is MISSING) */ + TSM30X = (1<<14), /* 15 Toshiba Stallite M30X and compatible */ + TSX205 = (1<<15) /* 16 Toshiba Stallite X205 and compatible */ +} omnibook_ectype; + +#define ALL_ECTYPES XE3GF|XE3GC|OB500|OB510|OB6000|OB6100|XE4500|OB4150|XE2|AMILOD|TSP10|TSM70|TSM40|TSA105|TSM30X|TSX205 + +/* + * This represent a feature provided by this module + */ + +struct omnibook_operation; + +struct omnibook_feature { + char *name; /* Name */ + int enabled; /* Set from module parameter */ + int (*read) (char *,struct omnibook_operation *); /* Procfile read function */ + int (*write) (char *,struct omnibook_operation *); /* Procfile write function */ + int (*init) (struct omnibook_operation *); /* Specific Initialization function */ + void (*exit) (struct omnibook_operation *); /* Specific Cleanup function */ + int (*suspend) (struct omnibook_operation *); /* PM Suspend function */ + int (*resume) (struct omnibook_operation *); /* PM Resume function */ + int ectypes; /* Type(s) of EC we support for this feature (bitmask) */ + struct omnibook_tbl *tbl; + struct omnibook_operation *io_op; + struct list_head list; +}; + +/* + * State of a Wifi/Bluetooth adapter + */ +enum { + WIFI_EX = (1<<0), /* 1 1=present 0=absent */ + WIFI_STA = (1<<1), /* 2 1=enabled 0=disabled */ + KILLSWITCH = (1<<2), /* 4 1=radio on 0=radio off */ + BT_EX = (1<<3), /* 8 1=present 0=absent */ + BT_STA = (1<<4), /* 16 1=enabled 0=disabled */ +}; + +/* + * Hotkeys state backend neutral masks + */ +enum { + HKEY_ONETOUCH = (1<<0), /* 1 Ontetouch button scancode generation */ + HKEY_MULTIMEDIA = (1<<1), /* 2 "Multimedia hotkeys" scancode generation */ + HKEY_FN = (1<<2), /* 4 Fn + foo hotkeys scancode generation */ + HKEY_STICK = (1<<3), /* 8 Stick key (Fn locked/unlocked on keypress) */ + HKEY_TWICE_LOCK = (1<<4), /* 16 Press Fn twice to lock */ + HKEY_DOCK = (1<<5), /* 32 (Un)Dock events scancode generation */ + HKEY_FNF5 = (1<<6), /* 64 Fn + F5 (toggle display) is enabled */ +}; + +#define HKEY_LAST_SHIFT 6 + +/* + * Display state backend neutral masks + * _ON masks = port is powered up and running + * _DET masks = a plugged display have been detected + */ + +enum { + DISPLAY_LCD_ON = (1<<0), /* 1 Internal LCD panel */ + DISPLAY_CRT_ON = (1<<1), /* 2 External VGA port */ + DISPLAY_TVO_ON = (1<<2), /* 4 External TV-OUT port */ + DISPLAY_DVI_ON = (1<<3), /* 8 External DVI port */ + DISPLAY_LCD_DET = (1<<4), /* 16 Internal LCD panel */ + DISPLAY_CRT_DET = (1<<5), /* 32 External VGA port */ + DISPLAY_TVO_DET = (1<<6), /* 64 External TV-OUT port */ + DISPLAY_DVI_DET = (1<<7), /* 128 External DVI port */ +}; + +extern unsigned int omnibook_max_brightness; +int set_omnibook_param(const char *val, struct kernel_param *kp); +int omnibook_lcd_blank(int blank); +struct omnibook_feature *omnibook_find_feature(char *name); +void omnibook_report_key(struct input_dev *dev, unsigned int keycode); + +/* + * __attribute_used__ is not defined anymore in 2.6.24 + * but __used appeared only in 2.6.22 + */ +#ifndef __used +#define __used __attribute_used__ +#endif + +#define __declared_feature __attribute__ (( __section__(".features"), __aligned__(__alignof__ (struct omnibook_feature)))) __used + +/* + * yet another printk wrapper + */ +#define O_INFO KERN_INFO OMNIBOOK_MODULE_NAME ": " +#define O_WARN KERN_WARNING OMNIBOOK_MODULE_NAME ": " +#define O_ERR KERN_ERR OMNIBOOK_MODULE_NAME ": " + +#ifdef CONFIG_OMNIBOOK_DEBUG +#define dprintk(fmt, args...) printk(KERN_INFO "%s: " fmt, OMNIBOOK_MODULE_NAME, ## args) +#define dprintk_simple(fmt, args...) printk(fmt, ## args) +#else +#define dprintk(fmt, args...) do { } while(0) +#define dprintk_simple(fmt, args...) do { } while(0) +#endif + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/bluetooth.c +++ linux-2.6.35/ubuntu/omnibook/bluetooth.c @@ -0,0 +1,104 @@ +/* + * wireless.c Bluetooth feature + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Mathieu Bérard , 2006 + * + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_bt_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int retval; + unsigned int state; + + if ((retval = backend_aerial_get(io_op, &state))) + return retval; + + len += + sprintf(buffer + len, "Bluetooth adapter is %s", + (state & BT_EX) ? "present" : "absent"); + if (state & BT_EX) + len += sprintf(buffer + len, " and %s", (state & BT_STA) ? "enabled" : "disabled"); + len += sprintf(buffer + len, ".\n"); + return len; + +} + +static int omnibook_bt_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval = 0; + unsigned int state; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if ((retval = __backend_aerial_get(io_op, &state))) + goto out; + + if (*buffer == '0') + state &= ~BT_STA; + else if (*buffer == '1') + state |= BT_STA; + else { + retval = -EINVAL; + goto out; + } + + retval = __backend_aerial_set(io_op, state); + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static struct omnibook_feature bt_driver; + +static int __init omnibook_bt_init(struct omnibook_operation *io_op) +{ + int retval = 0; + unsigned int state; + +/* + * Refuse enabling/disabling a non-existent device + */ + + if ((retval = backend_aerial_get(io_op, &state))) + return retval; + + if (!(state & BT_EX)) + bt_driver.write = NULL; + + return retval; +} + +static struct omnibook_tbl wireless_table[] __initdata = { + {TSM70 | TSA105 | TSX205, {ACPI,}}, /* stubs to select backend */ + {TSM40, {SMI,}}, /* stubs to select backend */ + {0,} +}; + +static struct omnibook_feature __declared_feature bt_driver = { + .name = "bluetooth", + .enabled = 1, + .read = omnibook_bt_read, + .write = omnibook_bt_write, + .init = omnibook_bt_init, + .ectypes = TSM70 | TSM40 | TSA105 | TSX205, + .tbl = wireless_table, +}; + +module_param_named(bluetooth, bt_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(bluetooth, "Use 0 to disable, 1 to enable bluetooth adapter control"); --- linux-2.6.35.orig/ubuntu/omnibook/hotkeys.c +++ linux-2.6.35/ubuntu/omnibook/hotkeys.c @@ -0,0 +1,193 @@ +/* + * hotkeys.c -- code to handling Hotkey/E-Key/EasyAccess buttons + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +/* Predefined convinient on/off states */ +#define HKEY_ON HKEY_ONETOUCH|HKEY_MULTIMEDIA|HKEY_FN|HKEY_DOCK|HKEY_FNF5 +#define HKEY_OFF 0 + +/* + * Set hotkeys status and update recorded saved state + */ +static int hotkeys_set_save(struct omnibook_operation *io_op, unsigned int state) +{ + int retval; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + retval = __backend_hotkeys_set(io_op, state); + if (retval < 0) + goto out; + + /* Update saved state */ + io_op->backend->hotkeys_state = state & io_op->backend->hotkeys_write_cap; + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Read hotkeys status, fallback to reading saved state if real probing is not + * supported. + */ +static int hotkeys_get_save(struct omnibook_operation *io_op, unsigned int *state) +{ + unsigned int read_state = 0; + int retval = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if (io_op->backend->hotkeys_get) + retval = __backend_hotkeys_get(io_op, &read_state); + if (retval < 0) + goto out; + + /* Return previously set state for the fields that are write only */ + *state = (read_state & io_op->backend->hotkeys_read_cap) + + (io_op->backend->hotkeys_state & ~io_op->backend->hotkeys_read_cap); + + out: + mutex_unlock(&io_op->backend->mutex); + return 0; +} + +/* + * Power management handlers + */ + +/* + * Restore previously saved state + */ +static int omnibook_hotkeys_resume(struct omnibook_operation *io_op) +{ + int retval; + mutex_lock(&io_op->backend->mutex); + retval = __backend_hotkeys_set(io_op, io_op->backend->hotkeys_state); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Disable hotkeys upon suspend (FIXME is the disabling required ?) + */ +static int omnibook_hotkeys_suspend(struct omnibook_operation *io_op) +{ + int retval = 0; + retval = backend_hotkeys_set(io_op, HKEY_OFF); + return retval; +} + +static const char pretty_name[][27] = { + "Onetouch buttons are", + "Multimedia hotkeys are", + "Fn hotkeys are", + "Stick key is", + "Press Fn twice to lock is", + "Dock events are", + "Fn + F5 hotkey is", +}; + +static int omnibook_hotkeys_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int retval; + unsigned int read_state = 0; /* buggy gcc 4.1 warning fix */ + unsigned int shift, mask; + + retval = hotkeys_get_save(io_op, &read_state); + + if (retval < 0) + return retval; + + for (shift = 0; shift <= HKEY_LAST_SHIFT ; shift++) { + mask = 1 << shift; + /* we assume write capability or read capability imply support */ + if ((io_op->backend->hotkeys_read_cap | io_op->backend->hotkeys_write_cap) & mask) + len += + sprintf(buffer + len, "%s %s.\n", pretty_name[shift], + (read_state & mask) ? "enabled" : "disabled"); + } + + return len; +} + +static int omnibook_hotkeys_write(char *buffer, struct omnibook_operation *io_op) +{ + unsigned int state; + char *endp; + + if (strncmp(buffer, "off", 3) == 0) + hotkeys_set_save(io_op, HKEY_OFF); + else if (strncmp(buffer, "on", 2) == 0) + hotkeys_set_save(io_op, HKEY_ON); + else { + state = simple_strtoul(buffer, &endp, 16); + if (endp == buffer) + return -EINVAL; + else + hotkeys_set_save(io_op, state); + } + return 0; +} + +static int __init omnibook_hotkeys_init(struct omnibook_operation *io_op) +{ + int retval; + + printk(O_INFO "Enabling all hotkeys.\n"); + retval = hotkeys_set_save(io_op, HKEY_ON); + return retval < 0 ? retval : 0; +} + +static void __exit omnibook_hotkeys_cleanup(struct omnibook_operation *io_op) +{ + printk(O_INFO "Disabling all hotkeys.\n"); + hotkeys_set_save(io_op, HKEY_OFF); +} + +static struct omnibook_tbl hotkeys_table[] __initdata = { + {XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | AMILOD | TSP10 | TSM30X, + COMMAND(KBC,OMNIBOOK_KBC_CMD_ONETOUCH_ENABLE,OMNIBOOK_KBC_CMD_ONETOUCH_DISABLE)}, + {TSM70, {CDI,}}, + {TSM40, {SMI,}}, + {TSX205, {ACPI,}}, + {0,} +}; + +static struct omnibook_feature __declared_feature hotkeys_driver = { + .name = "hotkeys", + .enabled = 1, + .read = omnibook_hotkeys_read, + .write = omnibook_hotkeys_write, + .init = omnibook_hotkeys_init, + .exit = omnibook_hotkeys_cleanup, + .suspend = omnibook_hotkeys_suspend, + .resume = omnibook_hotkeys_resume, + .ectypes = + XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | AMILOD | TSP10 | TSM70 | TSM30X | + TSM40 | TSX205, + .tbl = hotkeys_table, +}; + +module_param_named(hotkeys, hotkeys_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(hotkeys, "Use 0 to disable, 1 to enable hotkeys handling"); +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/ec.c +++ linux-2.6.35/ubuntu/omnibook/ec.c @@ -0,0 +1,188 @@ +/* + * ec.c -- low level functions to access Embedded Controller, + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include +#include +#include +#include + +#include +#include "hardware.h" + +/* + * Interrupt control + */ + +static DEFINE_SPINLOCK(omnibook_ec_lock); + +/* + * Registers of the embedded controller + */ + +#define OMNIBOOK_EC_DATA 0x62 +#define OMNIBOOK_EC_SC 0x66 + +/* + * Embedded controller status register bits + */ + +#define OMNIBOOK_EC_STAT_OBF 0x01 /* Output buffer full */ +#define OMNIBOOK_EC_STAT_IBF 0x02 /* Input buffer full */ + + +/* + * Embedded controller commands + */ + +#define OMNIBOOK_EC_CMD_READ 0x80 +#define OMNIBOOK_EC_CMD_WRITE 0x81 + +/* + * Wait for embedded controller buffer + */ + +static int omnibook_ec_wait(u8 event) +{ + int timeout = OMNIBOOK_TIMEOUT; + + switch (event) { + case OMNIBOOK_EC_STAT_OBF: + while (!(inb(OMNIBOOK_EC_SC) & event) && timeout--) + mdelay(1); + break; + case OMNIBOOK_EC_STAT_IBF: + while ((inb(OMNIBOOK_EC_SC) & event) && timeout--) + mdelay(1); + break; + default: + return -EINVAL; + } + if (timeout > 0) + return 0; + return -ETIME; +} + +/* + * Read from the embedded controller + * Decide at run-time if we can use the much cleaner ACPI EC driver instead of + * this implementation, this is the case if ACPI has been compiled and is not + * disabled. + */ + +static int omnibook_ec_read(const struct omnibook_operation *io_op, u8 * data) +{ + int retval; + +#ifdef CONFIG_ACPI_EC + if (likely(!acpi_disabled)) { + retval = ec_read((u8) io_op->read_addr, data); + if (io_op->read_mask) + *data &= io_op->read_mask; +// dprintk("ACPI EC read at %lx success %i.\n", io_op->read_addr, retval); + return retval; + } +#endif + spin_lock_irq(&omnibook_ec_lock); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF); + if (retval) + goto end; + outb(OMNIBOOK_EC_CMD_READ, OMNIBOOK_EC_SC); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF); + if (retval) + goto end; + outb((u8) io_op->read_addr, OMNIBOOK_EC_DATA); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_OBF); + if (retval) + goto end; + *data = inb(OMNIBOOK_EC_DATA); + if (io_op->read_mask) + *data &= io_op->read_mask; + end: + spin_unlock_irq(&omnibook_ec_lock); +// dprintk("Custom EC read at %lx success %i.\n", io_op->read_addr, retval); + return retval; +} + +/* + * Write to the embedded controller: + * If OMNIBOOK_LEGACY is set, decide at run-time if we can use the much cleaner + * ACPI EC driver instead of this legacy implementation. + * This is the case if ACPI has been compiled and is not + * disabled. + * If OMNIBOOK_LEGACY is unset, we drop our custoim implementation + */ + +static int omnibook_ec_write(const struct omnibook_operation *io_op, u8 data) +{ + int retval; + +#ifdef CONFIG_ACPI_EC + if (likely(!acpi_disabled)) { + retval = ec_write((u8) io_op->write_addr, data); +// dprintk("ACPI EC write at %lx success %i.\n", io_op->write_addr, retval); + return retval; + } +#endif + + spin_lock_irq(&omnibook_ec_lock); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF); + if (retval) + goto end; + outb(OMNIBOOK_EC_CMD_WRITE, OMNIBOOK_EC_SC); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF); + if (retval) + goto end; + outb((u8) io_op->write_addr, OMNIBOOK_EC_DATA); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF); + if (retval) + goto end; + outb(data, OMNIBOOK_EC_DATA); + end: + spin_unlock_irq(&omnibook_ec_lock); +// dprintk("Custom EC write at %lx success %i.\n", io_op->write_addr, retval); + return retval; +} + +static int omnibook_ec_display(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval; + u8 raw_state; + + retval = __backend_byte_read(io_op, &raw_state); + if (retval < 0) + return retval; + + *state = !!(raw_state) & DISPLAY_CRT_DET; + + return DISPLAY_CRT_DET; +} + +/* + * Backend interface declarations + */ + +struct omnibook_backend ec_backend = { + .name = "ec", + .byte_read = omnibook_ec_read, + .byte_write = omnibook_ec_write, + .display_get = omnibook_ec_display, +}; + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/ac.c +++ linux-2.6.35/ubuntu/omnibook/ac.c @@ -0,0 +1,60 @@ +/* + * ac.c -- AC adapter related functions + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_ac_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + u8 ac; + int retval; + + retval = backend_byte_read(io_op, &ac); + if (retval < 0) + return retval; + + len += sprintf(buffer + len, "AC %s\n", (!!ac) ? "on-line" : "off-line"); + + return len; +} + +static struct omnibook_tbl ac_table[] __initdata = { + {XE3GF | TSP10 | TSM30X | TSM70, SIMPLE_BYTE(EC, XE3GF_ADP, XE3GF_ADP_MASK)}, + {XE3GC | AMILOD, SIMPLE_BYTE(EC, XE3GC_STA1, XE3GC_ADP_MASK)}, + {OB500 | OB510 | OB6000 | OB6100 | XE4500, SIMPLE_BYTE(EC, OB500_STA2, OB500_ADP_MASK)}, + {OB4150, SIMPLE_BYTE(EC, OB4150_ADP, OB4150_ADP_MASK)}, + {XE2, SIMPLE_BYTE(EC, XE2_STA1, XE2_ADP_MASK)}, + {0,} +}; + +struct omnibook_feature __declared_feature ac_driver = { + .name = "ac", +#ifdef CONFIG_OMNIBOOK_LEGACY + .enabled = 1, +#else + .enabled = 0, +#endif + .read = omnibook_ac_read, + .ectypes = XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | OB4150 | XE2 | AMILOD | TSP10 | TSM70 | TSM30X, + .tbl = ac_table, +}; + +module_param_named(ac, ac_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(ac, "Use 0 to disable, 1 to enable AC adapter status monitoring"); + +/* End of file */ --- linux-2.6.35.orig/ubuntu/omnibook/Kconfig +++ linux-2.6.35/ubuntu/omnibook/Kconfig @@ -0,0 +1,5 @@ +config OMNIBOOK + tristate "Kernel module for HP and Toshiba laptops" + depends on X86 + default m + ---help--- --- linux-2.6.35.orig/ubuntu/omnibook/Makefile +++ linux-2.6.35/ubuntu/omnibook/Makefile @@ -0,0 +1,171 @@ +# +# Makefile -- makefile for the HP OmniBook support module +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2, or (at your option) any +# later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# Written by Soós Péter , 2002-2004 +# Modified by Mathieu Bérard , 2006-2007 +# + +#Module informations + +MODULE_NAME = omnibook +MODULE_VERSION = 2.20090707 +MODULE_BRANCH = trunk + +# Out-of-tree configuration +ifndef CONFIG_OMNIBOOK +OMNIBOOK_STANDALONE=y +CONFIG_OMNIBOOK=m + +#Uncomment and set to force debug behavior +#NOTE: Default (commented) behavior is to enable debug in trunk or branch svn +# snapshot and to disable it for release +#OMNIBOOK_WANT_DEBUG=n + +#comment to disable backlight device support +OMNIBOOK_WANT_BACKLIGHT=y + +#Uncomment to force legacy (pre-ACPI system) features support +#OMNIBOOK_WANT_LEGACY=y + +endif + +ifeq ($(KERNELRELEASE),) +# Support for direct Makefile invocation + +DESTDIR = +MODDIR = $(DESTDIR)/lib/modules +KVERS = $(shell uname -r) +KVER = $(KVERS) +VMODDIR = $(MODDIR)/$(KVER) +INSTDIR = extra +#KSRC = /usr/src/linux +KSRC = $(VMODDIR)/build +KMODDIR = $(KSRC)/drivers/misc/omnibook +KDOCDIR = $(KSRC)/Documentation/omnibook +PWD = $(shell pwd) +TODAY = $(shell date +%Y%m%d) +DEPMOD = /sbin/depmod -aq +RMMOD = /sbin/modprobe -r +INSMOD = /sbin/modprobe +INSTALL = install -m 644 +MKDIR = mkdir -p +RM = rm -f +FIND = find + +all: $(MODULE_NAME).ko + +clean: + make -C $(KSRC) M=$(PWD) clean + $(RM) -r *~ "#*#" .swp + $(RM) -r debian/omnibook-source *-stamp + $(RM) -r Module.symvers Modules.symvers + +install: all + # Removing module from locations used by previous versions + $(RM) $(VMODDIR)/kernel/drivers/char/$(MODULE_NAME).ko + $(RM) $(VMODDIR)/kernel/drivers/misc/$(MODULE_NAME).ko + make INSTALL_MOD_PATH=$(DESTDIR) INSTALL_MOD_DIR=$(INSTDIR) -C $(KSRC) M=$(PWD) modules_install + +unload: + $(RMMOD) $(MODULE_NAME) || : + +load: install unload + $(DEPMOD) + $(INSMOD) $(MODULE_NAME) + +uninstall: unload + $(FIND) $(VMODDIR) -name "$(MODULE_NAME).ko" -exec $(RM) {} \; + $(DEPMOD) + +$(MODULE_NAME).ko: + $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules + +kinstall: + $(RM) -r $(KMODDIR) + $(MKDIR) $(KMODDIR) + $(INSTALL) *.h *.c sections.lds $(KMODDIR) + $(MKDIR) $(KDOCDIR) + $(INSTALL) doc/README $(KDOCDIR) + +kpatch: kinstall + (cd $(KSRC); patch -p1 < $(PWD)/misc/omnibook-integration.patch) + +version: + sed -i "s|^\(MODULE_VERSION = \).*|\1 2.$(TODAY)|" Makefile + sed -i "s|^\(MODULE_BRANCH = \).*|\1 release|" Makefile + sed -i "s|^\(2\.\)X\{8\}|\1$(TODAY)|" doc/ChangeLog + + +release: clean version + mkdir -p ../$(MODULE_NAME)-2.$(TODAY) + cp -a *.h *.c *.lds Makefile doc misc ../$(MODULE_NAME)-2.$(TODAY) + rm -f ../$(MODULE_NAME)-2.$(TODAY).tar ../$(MODULE_NAME)-2.$(TODAY).tar.gz + (cd ..; tar cvf $(MODULE_NAME)-2.$(TODAY).tar $(MODULE_NAME)-2.$(TODAY); gzip -9 $(MODULE_NAME)-2.$(TODAY).tar) + +else +# Support for kernel build system invocation + +ifneq ($(MODULE_BRANCH), release) +EXTRA_CFLAGS += -DOMNIBOOK_MODULE_VERSION='"$(MODULE_VERSION)-$(MODULE_BRANCH)"' +else +EXTRA_CFLAGS += -DOMNIBOOK_MODULE_VERSION='"$(MODULE_VERSION)"' +endif + +ifeq ($(OMNIBOOK_STANDALONE),y) + +ifeq ($(OMNIBOOK_WANT_BACKLIGHT),y) +ifdef CONFIG_BACKLIGHT_CLASS_DEVICE +# we support backlight interface only after 2.6.16 +ifeq ($(shell if [ $(SUBLEVEL) -gt 16 ] ; then echo -n 'y'; fi),y) +EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_BACKLIGHT +else +$(warning "Backlight support in only supported for kernel version newer than 2.6.16") +$(warning "Disabling backlight sysfs interface") +endif +endif +endif + +ifeq ($(OMNIBOOK_WANT_LEGACY),y) +EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_LEGACY +endif + +ifndef CONFIG_ACPI_EC +EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_LEGACY +endif + +ifneq ($(MODULE_BRANCH), release) +ifneq ($(OMNIBOOK_WANT_DEBUG),n) +EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_DEBUG # -Wa -g0 +endif +else +ifeq ($(OMNIBOOK_WANT_DEBUG),y) +EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_DEBUG # -Wa -g0 +endif + +endif + +endif + +EXTRA_CFLAGS += -DOMNIBOOK_MODULE_NAME='"$(MODULE_NAME)"' +#EXTRA_LDFLAGS += $(src)/sections.lds +EXTRA_LDFLAGS += $(PWD)/ubuntu/omnibook/sections.lds + +obj-$(CONFIG_OMNIBOOK) += $(MODULE_NAME).o +omnibook-objs := init.o lib.o ec.o kbc.o pio.o compal.o acpi.o nbsmi.o \ + ac.o battery.o blank.o bluetooth.o cooling.o display.o dock.o \ + dump.o fan.o fan_policy.o hotkeys.o info.o lcd.o muteled.o \ + polling.o temperature.o touchpad.o wireless.o throttling.o + +endif # End of kernel build system part + +# End of file --- linux-2.6.35.orig/ubuntu/omnibook/sections.lds +++ linux-2.6.35/ubuntu/omnibook/sections.lds @@ -0,0 +1,11 @@ +SECTIONS +{ + .data : + { + . = ALIGN(32); + _start_features_driver = .; + *(.features) + _end_features_driver = .; + *(.data) + } +} --- linux-2.6.35.orig/ubuntu/omnibook/debian/changelog +++ linux-2.6.35/ubuntu/omnibook/debian/changelog @@ -0,0 +1,170 @@ +omnibook (2:2.20070211+svn20090714b-1) unstable; urgency=low + + * New SVN snapshot: + + fix build issue induced by previous patches + + fix build with kernel >= 2.6.30 + + -- Julien Valroff Tue, 14 Jul 2009 18:17:49 +0200 + +omnibook (2:2.20070211+svn20090714-1) unstable; urgency=low + + * New SVN snapshot: + + Applied patches from Azael Avalos + to add support to Satellite X205 and other laptops based on + ICH8 + * New Standards version 3.8.2 + * Bumped DH compat to 7 + * Updated copyright information + * Now use dh_prep instead of dh_clean -k + + -- Julien Valroff Tue, 14 Jul 2009 10:03:00 +0200 + +omnibook (2:2.20070211+svn20090227-1) unstable; urgency=low + + * New SVN snapshot + + Applied patch from Danny Kukawka to + fix compiler warning about use uninitialized variable + + Applied patch from Danny Kukawka to + fix build the driver on older kernel versions + + * New Standards version 3.8.0 - no further changes needed + * Updated copryight information + + -- Julien Valroff Fri, 27 Feb 2009 19:57:35 +0100 + +omnibook (2:2.20070211+svn20071217-1) unstable; urgency=low + + * New SVN snapshot (r271) + * Added amd64 as a compatible architecture for the module + * New Standards version 3.7.3 - no further changes needed + + -- Julien Valroff Mon, 17 Dec 2007 18:00:29 +0100 + +omnibook (2:2.20070211+svn20071006-1) unstable; urgency=low + + * New SVN snapshot (r264): + + Update for acpi and backlight API changes in linux 2.6.23 + * First upload to Debian (Closes: #445602): + + Improved debian/copyright + + Bumped debhelper compat to version 5 + + Added myself as maintainer + + Updated README.Debian + * debian/control: + + Moved Homepage to own field (from pseudo-field in long description) + + Added Vcs-* fields + + -- Julien Valroff Thu, 29 Nov 2007 18:30:27 +0100 + +omnibook (2:2.20070211+svn20070905-1) unstable; urgency=low + + * Added dependency on dpatch + * [debian/rules]: + - Fixed lintian warning in the clean target + + -- Julien Valroff Wed, 05 Sep 2007 20:25:13 +0200 + +omnibook (2:2.20070211+svn20070526-1) unstable; urgency=low + + * New SVN snapshot (r259): + + Fixed compilation issue with kernel 2.6.21 + + DMI signature added: + Toshiba Satellite P25 (ectype 11) + Toshiba Satellite M60 (ectype 12) + * Added patch to disable debug for SVN snasphot + + -- Julien Valroff Sat, 26 May 2007 15:19:57 +0200 + +omnibook (2:2.20070211-1) unstable; urgency=low + + * New upstream release: + + For ectype 12 (Satellite M40X, M70, M100, ...): + - improved bluetooth control + - cooling method control + - CPU throttling ( ACPI T-States) + + Full hotkeys support for Tecra S1 + + Bluetooth control for Ectype 14 (Satellite A100, A105, M115, ...) + * Updated homepage in long description + + -- Julien Valroff Mon, 12 Feb 2007 18:50:05 +0100 + +omnibook (2:2.20060921+svn20061202-1) unstable; urgency=low + + * New SVN snapshot (r228) + + -- Julien Valroff Sat, 2 Dec 2006 10:17:07 +0100 + +omnibook (2:2.20060921+svn20061112-1) unstable; urgency=low + + * SVN snapshot: + + Disabled Acer support + + Fixed and improved bluetooth handling for TSM30X class laptop + + DMI signature added: + HP Pavilion ze4500 (ectype 7) + Toshiba Satellite 1130 (ectype 1) + Toshiba Satellite A75 (ectype 12) + Toshiba Tecra A4 (ectype 13) + + Implemented Volume down,up and Mute buttons polling for ectype 2 + + Implemented ectype 13 Fn hotkeys handling. + * changed compression of the sources in /usr/src/ to bzip2 + + -- Julien Valroff Sat, 11 Nov 2006 14:08:47 +0100 + +omnibook (2:2.20060921-1) unstable; urgency=low + + * New upstream release: + + Expand display and hotkeys features + + Added support for more laptops + + Code cleanups + + Minor bug fixes + + -- Julien Valroff Mon, 25 Sep 2006 08:14:59 +0200 + +omnibook (2:2.20060817-1) unstable; urgency=low + + * New upstream release + * [01_makfefile.dpatch] Removed - fixed upstream + * Changed defaut STEM value to linux (follows kernel-package) + * Uses dh_installmodules for maintainance scripts + + -- Julien Valroff Mon, 11 Sep 2006 18:00:50 +0200 + +omnibook (2:2.20060809-2) unstable; urgency=low + + * Include copyright and Debian changelog in omnibook-module + * Fix Makefile issue in a more elegant way + + -- Julien Valroff Thu, 10 Aug 2006 10:16:47 +0200 + +omnibook (2:2.20060809-1) unstable; urgency=low + + * New upstream release: + + Addeed autodetection of the Toshiba Satellite M40X laptop + + -- Julien Valroff Thu, 10 Aug 2006 09:40:45 +0200 + +omnibook (2:2.20060806-1) unstable; urgency=low + + * New upstream branch - Mathieu Bérard launched new project + * Added myself as co-maintainer + * Bumped upstream version and use epoch to ensure upgrades + * [debian/rules]: + + Clean-ups + + Recommends linux-image or kernel-image + * [debian/control] Improved long description + * [debian/post*.modules.in] Fixed bashisms + * Added patch to fix install target in Makefile + + -- Julien Valroff Thu, 10 Aug 2006 01:35:38 +0200 + +omnibook (20060126-1) unstable; urgency=low + + * Minor build inconveniences corrected. + + -- Daniel Gimpelevich Sun, 18 Jun 2006 12:28:55 -0700 + +omnibook (20060126-0) unstable; urgency=low + + * Locally built. + + -- Péter Soós Wed, 25 Jan 2006 21:06:28 +0100 + --- linux-2.6.35.orig/ubuntu/omnibook/debian/rules +++ linux-2.6.35/ubuntu/omnibook/debian/rules @@ -0,0 +1,135 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +include /usr/share/dpatch/dpatch.make + +CFLAGS = -Wall -g + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +# Name of the source package +psource := omnibook-source + +# The short upstream name, used for the module source directory +sname := omnibook + +# prefix of the target package name +PACKAGE=omnibook-module + +### end KERNEL SETUP + +configure: configure-stamp +configure-stamp: + dh_testdir + touch configure-stamp + + +build-arch: configure-stamp build-arch-stamp +build-arch-stamp: + dh_testdir + touch build-arch-stamp + +build-indep: patch configure-stamp build-indep-stamp +build-indep-stamp: + dh_testdir + + touch build-indep-stamp + +build: patch build-arch build-indep + +clean: unpatch + dh_testdir + rm -f build-arch-stamp build-indep-stamp configure-stamp + + dh_clean + +install: DH_OPTIONS= +install: patch build + dh_testdir + dh_testroot + dh_prep + dh_installdirs + + # Create the directories to install the source into + dh_installdirs -p$(psource) usr/src/modules/$(sname)/debian + cp debian/compat debian/rules debian/changelog \ + debian/control debian/copyright debian/*.modules.in \ + debian/$(psource)/usr/src/modules/$(sname)/debian + cp Makefile *.c *.h *.lds debian/$(psource)/usr/src/modules/$(sname) + + cd debian/$(psource)/usr/src && tar c modules | bzip2 -9 > $(sname).tar.bz2 && rm -rf modules + dh_install + +# Build architecture-independent files here. +# Pass -i to all debhelper commands in this target to reduce clutter. +binary-indep: build install + dh_testdir -i + dh_testroot -i + dh_installchangelogs -i doc/ChangeLog + dh_installdocs -i + dh_installexamples -i + dh_installman -i + dh_link -i + dh_compress -i + dh_fixperms -i + dh_installdeb -i + dh_installdeb -i + dh_shlibdeps -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +# Build architecture-dependent files here. +binary-arch: build install + +# modifieable for experiments or debugging m-a +MA_DIR ?= /usr/share/modass +# load generic variable handling +-include $(MA_DIR)/include/generic.make +# load default rules, including kdist, kdist_image, ... +-include $(MA_DIR)/include/common-rules.make + +ifndef KPKG_STEM +STEM:=linux +else +STEM:=${KPKG_STEM} +endif + +kdist_clean: prep-deb-files + [ ! -f Makefile ] || $(MAKE) KSRC=$(KSRC) clean + dh_clean + +kdist_config: prep-deb-files + sed -i -e 's/_STEM_/$(STEM)/g' debian/control + +binary-modules: kdist_config prep-deb-files + dh_testroot + dh_prep + dh_installdirs lib/modules/$(KVERS)/extra + + # Build the module + $(MAKE) KSRC=$(KSRC) KVERS=$(KVERS) + + # Install the module + $(MAKE) install KSRC=$(KSRC) DESTDIR=$(CURDIR)/debian/$(PKGNAME) INSTDIR=extra DEPMOD="/bin/true" + + dh_installdocs + dh_compress + dh_installmodules + dh_installchangelogs + dh_fixperms + dh_installdeb + dh_gencontrol -- -v$(VERSION) + dh_md5sums + dh_builddeb --destdir=$(DEB_DESTDIR) + dh_prep + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure binary-modules kdist kdist_config kdist_image kdist_clean --- linux-2.6.35.orig/ubuntu/omnibook/debian/copyright +++ linux-2.6.35/ubuntu/omnibook/debian/copyright @@ -0,0 +1,32 @@ +This package was debianized by Peter Soos on +Wed, 25 Jan 2006 21:06:28 +0100. +Debian package was improved by Julien Valroff + +It was downloaded from http://sourceforge.net/projects/omnibook + +Copyright Holder: 2006-2007 Mathieu Bérard + +dump.c: + Copyright (C) 2004-2005 Borislav Deianov + +License: + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + +The Debian packaging is + Copyright (C) 2006 Peter Soos + Copyright (C) 2006-2009 Julien Valroff +It is licensed under the GPL, version 2. + +You should have received a copy of the GNU General Public License with +the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL-2; +if not, write to the Free Software Foundation, Inc., 51 Franklin St, +Fifth Floor, Boston, MA 02110-1301, USA. --- linux-2.6.35.orig/ubuntu/omnibook/debian/README.Debian +++ linux-2.6.35/ubuntu/omnibook/debian/README.Debian @@ -0,0 +1,30 @@ +omnibook for Debian +------------------- + +Please see docs/README for a description of the omnibook kernel module. + +The Debian omnibook source package provides omnibook-source, package +which provides the source for the kernel module. + +The omnibook-source package can be used in several ways, + + - Using the make-kpkg(1) command provided by the kernel-package Debian + package. This will produce a corresponding omnibook-modules package for + the Debian kernel-image package that you are using. + See the "modules_image" section of the make-kpkg(1) man page. + + - Using module-assistant. Simply issue the following command (as root): + $ module-assistant auto-install omnibook + Please see the module-assistant documentation for futher details. + + - Changing to the /usr/src/modules/omnibook/ directory and building as + the README file instructs using "make; make install". This will build + and install a module specific to the system you are building on and is + not under control of the packaging system. + +If your are not using module-assisatant, you have to unpack +/usr/src/omnibook-source.tar.bz2 to /usr/src. + + -- Peter Soos , Wed, 25 Jan 2006 21:06:28 +0100 + -- Julien Valroff Sun, 07 Oct 2007 10:38:07 +0200 + --- linux-2.6.35.orig/ubuntu/omnibook/debian/compat +++ linux-2.6.35/ubuntu/omnibook/debian/compat @@ -0,0 +1 @@ +7 --- linux-2.6.35.orig/ubuntu/omnibook/debian/control.modules.in +++ linux-2.6.35/ubuntu/omnibook/debian/control.modules.in @@ -0,0 +1,23 @@ +Source: omnibook +Section: misc +Priority: optional +Maintainer: Julien Valroff +Build-Depends: debhelper (>> 7.0.0) +Standards-Version: 3.8.2 + +Package: omnibook-module-_KVERS_ +Architecture: i386 amd64 +Recommends: _STEM_-image-_KVERS_ +Provides: omnibook-module +Description: omnibook module for Linux (kernel _KVERS_) + This package contains the loadable kernel modules for the HP OmniBooks, + Pavilions, Toshiba Satellites and some other laptops manufactured by + Compal Electronics, Inc as ODM. + . + This package contains the compiled kernel modules for _KVERS_ + . + If you have compiled your own kernel, you will most likely need to build + your own omnibook-module. The omnibook-source package has been + provided for use with the Debian kernel-package utility to produce a version + of omnibook-module for your kernel. + --- linux-2.6.35.orig/ubuntu/omnibook/debian/control +++ linux-2.6.35/ubuntu/omnibook/debian/control @@ -0,0 +1,21 @@ +Source: omnibook +Section: misc +Priority: optional +Maintainer: Julien Valroff +Build-Depends: debhelper (>> 7.0.0), dpatch, bzip2 +Standards-Version: 3.8.2 +Homepage: http://omnibook.sf.net +Vcs-Svn: https://omnibook.svn.sourceforge.net/svnroot/omnibook/omnibook/trunk +Vcs-Browser: http://omnibook.svn.sourceforge.net/viewvc/omnibook/ + +Package: omnibook-source +Architecture: all +Depends: debhelper (>= 4.0.0), make, module-assistant, kernel-package, bzip2, dpatch +Description: Source for the omnibook driver + This package contains the loadable kernel modules for the HP OmniBooks, + Pavilions, Toshiba Satellites and some other laptops manufactured by + Compal Electronics, Inc as ODM. + . + This module is only compatible with Linux kernels >= 2.6.9 + . + Kernel source is required to compile this module. --- linux-2.6.35.orig/ubuntu/omnibook/debian/docs +++ linux-2.6.35/ubuntu/omnibook/debian/docs @@ -0,0 +1,4 @@ +doc/BUGS +doc/CREDITS +doc/README +misc/hotkeys --- linux-2.6.35.orig/ubuntu/omnibook/doc/CREDITS +++ linux-2.6.35/ubuntu/omnibook/doc/CREDITS @@ -0,0 +1,39 @@ +The module was originally written by + +* Soós Péter + +Special thanks to the following persons and/or organisations (without +particular order): + +* Al Stone and Linux Systems Operation at HP for lending + an HP OmniBook 500 for the project purposes. +* Pavel Mihaylov for his omke project discovering a lot of + OmniBook features, providing some code for XE3 GC machines and testing. +* Ducrot Bruno sharing lots of information about + embedded controller and related code, added lots of Toshiba support, + writing tosh3k code, sending patches etc. + +Thanks to the following people (without particular order): + +* Al Stone for sharing some programming information. +* Guido Guenther for initial OneTouch enabling code. +* Jens Thoms Toerring for initial + OneTouch power management code. +* Maciek Gorniak for initial HP Pavilion N5415 detecting + code and initial lcd brighness code. +* Rick Richardson for some bugfixes and useful patches. +* Bob McElrath for initial Compal ACL00 + code. +* Luisimi Moya for Acer Aspire 1400 support. +* Bernhard Kaindl for bugfixes and patches +* Gabriele Vivinetto for documentation + enhancements and testing. +* Mark Chappell for building on kernel 2.6. +* Massimo Dal Zotto for his i8k code. +* Jonathan A. Buzzard for his toshiba code. +* Some others on OmniBook mailing list at + http://zurich.ai.mit.edu/mailman/listinfo/omnibook + for providing information and testing. + +Last but not least thanks to Linus Torvald and more for creating and +maintaining the Linux kernel. --- linux-2.6.35.orig/ubuntu/omnibook/doc/COPYING +++ linux-2.6.35/ubuntu/omnibook/doc/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (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 + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. --- linux-2.6.35.orig/ubuntu/omnibook/doc/ChangeLog +++ linux-2.6.35/ubuntu/omnibook/doc/ChangeLog @@ -0,0 +1,521 @@ +Changelog file for omnibook package: +------------------------------------ + +2.XXXXXXXX Mathieu Bérard +* DMI signature added: + Toshiba Satellite P25 (ectype 11) + Toshiba Satellite M60 (ectype 12) +* Applied patch from Danny Kukawka to + fix compiler warning about use uninitialized variable +* Applied patch from Danny Kukawka to + fix build the driver on older kernel versions +* Applied patches from Azael Avalos + to add support to Satellite X205 and other laptops based on + ICH8 +* Fix build with kernel >= 2.6.30 + +2.20070211 Mathieu Bérard +* Disable Acer support, acerhk module should provided better + support with a far more complete autodetection database + (see http://www2.informatik.hu-berlin.de/~tauber/acerhk/) +* Fix and improve bluetooth handling for TSM30X class laptops + bluetooth now also works for TSA105 +* Implement Volume down,up and Mute buttons polling for ectype 2 + It was the last missing part from the "omke" module which never + got ported to linux 2.6 +* Implement ectype 13 Fn hotkeys handling. +* DMI signature added: + HP Pavilion ze4500 (ectype 7) + Toshiba Satellite 1130 (ectype 1) + Toshiba Satellite A75 (ectype 12) + Toshiba Tecra A4 (ectype 13) + Toshiba Satellite A80 (ectype 12) + Toshiba Satellite P100 (ectype 14) +* Split TSM30X (ectype 12) : this ectype was reimplemented and if the + new implementation works with Toshiba M40X, M70, M100... it does not + (and will never, due to hardware) with Toshiba M30X, the only way + to fix this is to split TSM30X (ectype 12) in : + -TSM70 (ectype 12) => new implementation (compal.c & acpi.c backends) + -TSM30X (ectype 15) => old implementation (legacy backends) + This is done by renaming TSM30X to TSM40 and restore old TSM30X + The state of the Toshiba M35X is unknown and is assigned to TSM70, one + should send a bug report if that fail. + Fix bugs 1617818 and 1605278 +* New features for TSM70 class laptops: + -Cooling method control (can tune fan behaviour to 'Save power' or + to 'Maximize performance') provided in /proc/omnibook/cooling + -CPU Throttling status&control (also known as ACPI T-States) should + be supported out of the box via /proc/acpi/processor/CPU0/throttling + but at least Toshiba Satellite M70 as a deficient ACPI FADT table + which prevent than, thus a custom access to ACPI Throttling is + provided in /proc/omnibook/throttling + +2.20060921 Mathieu Bérard +* The minimal required kernel version is now 2.6.9 (kref API) +* Convert semaphore to mutex with fallback for pre 2.6.16 kernel +* Kill CONFIG_OMNIBOOK_APMEMU and introduce OMNIBOOK_LEGACY: + pre-ACPI features now depends on it. + Default enabling of ac and battery features also + depends on it. It is _disabled_ by default. +* Introduce ACPI methods execution backend: TSM70 needs it + for Display and Wifi/Bluetooth features +* Expand display and hotkeys features +* Introduce experimental NbSmi backend for TSM40. It is + based on technical documentation provided by Toshiba. + Thanks Toshiba ! +* Kill unused omnibook_mem_read/write function for mmio + access +* Cleanup in blank.c fan.c temperature.c +* Unbreak Pio backend: use request/release_region +* Introduce bluetooth and wifi frontend features : they allow + adapter state querry and control (existence probing, wifi + kill switch probing and adapter enabling/disabling). + Supported by TSM30X and TSM40 +* Introduce omnibook_backend struct as a uniform way of + communication between backend and frontend, this + kill omnibook_io_{read/write} and friends. +* Modify ombibook_feature struct to incorporate pointers + to an omnibook_table table and to a omnibook_operation + struct which is picked-up from the ectype matching + omnibook_table entry upon feature initialization +* Add muteled resume handler +* Add touchpad handling for TSM30X +* Add proper display handling for TSM30X +* Change all features struct name from foo_feature to + foo_driver to kept modpost section mismatch detection + silent. Put tbl, init and exit entries to their relevant + sections. +* Many bugfix and dock support for TSM40 by Holger Nelson. +* Add DMI Signature for Toshiba Satellite 1700-Series, with ectype 10. + LCD does not work. +* Add DMI Signature for Toshiba Equium A110, added with + ectype 1, until implementation of a better backend +* Add DMI Signature for Toshiba _Satellite_ M100, Satellite A70 + and Tecra S2. added with ectype 12 +* Add DMI Signature for Toshiba Tecra S1, added with + ectype 13 + +2.200608017 Mathieu Bérard +* Fix bug un omnibook_io_match +* Fix DMI handling behaviour: we stop on the FIRST matched + DMI entry. This is restoring pre-20060806 behaviour. + Invert M40 vs. M40X entry position. + +2.20060816 Mathieu Bérard +* Merge from the new-backend branch: Add new backend code + (in compal.c) used with TSM30X class laptops: + Used for lcd access + Used for hotkeys support: now most Fn+key generate a scancode, + as well as the wifi kill switch. + Warning: tested only on TSM40X an TSM70 laptops. +* Create omnibook_io_operation struct and omnibook_io_{read/write} + funtions to simplify implementation of some simple features. + Used with ac display dock and led features. +* Rename onetouch feature to "hotkeys" which is a vendor neutral name. +* The minimal required kernel version is now 2.6.9 (kref API) +* Convert semaphore to mutex with fallback for pre 2.6.16 kernel +* Kill CONFIG_OMNIBOOK_APMEMU and introduce OMNIBOOK_LEGACY: + pre-ACPI features now depends on it. + Default enabling of ac and battery features also + depends on it. It is _disabled_ by default. +* Introduce ACPI methods execution backend: TSM70 needs it + for Display and Wifi/Bluetooth features +* Expand display and hotkeys features +* Introduce experimental NbSmi backend for TSM40. It is + based on technical documentation provided by Toshiba. + Thanks Toshiba ! +* Kill unused omnibook_mem_read/write function for mmio + access +* Cleanup in blank.c fan.c temperature.c +* Unbreak Pio backend: use request/release_region +* Introduce bluetooth and wifi frontend features : they allow + adapter state querry and control (existence probing, wifi + kill switch probing and adapter enabling/disabling). + Supported by TSM30X and TSM40 +* Introduce omnibook_backend struct as a uniform way of + communication between backend and frontend, this + kill omnibook_io_{read/write} and friends. +* Modify ombibook_feature struct to incorporate pointers + to an omnibook_table table and to a omnibook_operation + struct which is picked-up from the ectype matching + omnibook_table entry upon feature initialization +* Add muteled resume handler +* Add touchpad handling for TSM30X +* Add proper display handling for TSM30X +* Change all features struct name from foo_feature to + foo_driver to kept modpost section mismatch detection + silent. Put tbl, init and exit entries to their relevant + sections. + +2.20060809 Mathieu Bérard +* Add dmi info for Toshiba Satellite M40X (Thanks Julien Valroff) +* Fix two brown paper bag bugs in Debian/Ubuntu support + +2.20060806 Mathieu Bérard +* Make the module linux 2.6 only + Kernel versions from 2.6.8 to a least 2.6.17 are supported + Code for compatibility with kernels older than 2.6.17 is + mostly implemented in compat.h +* Integrate with Driver Model: + register as a platform device and optional + registration as a backlight device (2.6.17+ required here) +* Get rid of deprecated pm_legacy functions +* Use kernel-provided DMI information: + Use kernel-provided dmi_check_system for system identification + omnibook_tc_t and omnibook_models_t are merged and converted into a + dmi_system_id struct and moved from init.c to laptop.h +* MODULE_PARAM -> 2.6-style module_parm_* +* Move some code from "feature".c files back to init.c + Interface is provided by the new omnibook_feature struct + Enabled features are now in placed in a linked list + This eliminate util.c + Rationale: Reduce code duplication and create a standard template for features +* Move dmi and version display into their own file: info.c +* Remove all (as unneeded) EXPORT_SYMBOL +* Misc fixes in Makefile + Also make more use of Kbuild +* Use sscanf and simple_stro{u}l for strings parsing instead of custom code +* Run lindent for better conformance with kernel coding style +* Add very limited support for some Toshiba M40 (more info needed) +* Use bitmasks for EC types matching, this change is transparent for the user + (e.g. one can still use ectype=num module parameter) + Rationale: Reduce the size of the omnibook_feature struct +* Polish Debian support: Use module-assistant and fix all Lintian warning + Fix building against non-running kernel (Thanks to Daniel Gimpelevich) +* Update documentation and omnibook-integration.patch +* Fix spinlock usage: they can be used unconditionally as they are automatically + optimized out at build-time on UP. This should improve PREEMPT safety +* Spinlock protect omnibook_mem_* and use ioread8 and iowrite8 +* Fix: Custom EC access function are also used if ACPI is compiled but disabled +* Cleanup: remove lots of unneeded #ifdef +* Add a new feature for testers: dump + Dump was stolen from the ibm_acpi driver + It is disabled by default +* Bump version to 2.YYYYMMDD + +2006-05-15 Thomas Perl +* Added support for xe4500's "audio mute" led + +2006-01-26 Soós Péter +* Added support for kernels >= 2.6.15 (pm_legacy.h) +* Added Toshiba Satellite M30X +* Added support for Toshiba Satellite M70 +* Added support for HP Pavilion ze4300 series +* Fixed module unloading on 2.6 series kernels (thanks to + math_b@users.sourceforge.net) +* Changed version number to +%Y%m%d format +* Added Debian support + +2005-02-17 Soós Péter +* Fixed Makefile +* Updated Toshiba 1115 information + +2004-12-15 Scott Barnes +* Added Toshiba Satellite M35X + +2004-09-16 Soós Péter +* Added INSTALL-2.6 file +* Little spelling fixes in documentation +* Little bugfixes +* Added Compal ACL10 + +2004-07-01 Soós Péter +* Added new technology codes +* Added some new HP nx9000 detection string +* Added Toshiba Satellite P20 + +2004-06-07 Chris Green +* Added Toshiba Satellite P15 + +2004-06-01 Soós Péter +* Added Toshiba Satellite 1955 +* Added Toshiba Satellite 2435 +* Added Toshiba Satellite P10 (new ectype) +* Acer Aspire 1350 + +2004-01-23 Soós Péter +* Added HP Pavilion ze8500 (HP nx9010) +* fixed PM handler for OneTouch keys and touchpad + +2004-01-20 Soós Péter +* Only fan status supported on HP OmniBook 4150, XE2 and + Fujitsu-Siemens Amilo D, fan control is unsupported +* #include fixes in ec.c + +2004-01-16 Soós Péter +* Added fan support for Fujitsu-Siemens Amilo D series laptops + +2004-01-14 Soós Péter +* Fixed Makefile for kernels 2.6 +* Added Fujitsu-Siemens Amilo D series laptops (new ectype) + +2003-12-08 Soós Péter + +* Fixed tecnology code detection +* Added HP/Compaq nx9005 +* Fixed Makefile for kernel 2.4 + +2003-11-12 Soós Péter + +* Fixed KERNEL_WARNING in init.c + +2003-11-10 Soós Péter + +* Fixed timeout bugs in ec.c +* Fixed touchpad dependency code for kernel 2.6 +* Added Compaq nx9000 + +2003-11-10 Mark Chappell + +* Added kernel 2.6 support to Makefile + +2003-10-23 Soós Péter + +* Totally removed key polling code for kernels >= 2.5.0 but 2.5/2.6 kernels + is unsuported yet +* proc_battery is static +* Added HP OmniBook 900 B support +* Added HP OmniBook XE2 support (added new ectype value for it) +* Added Compaq nx9010 +* Reversed ChangeLog +* Some documentation changes + +2003-08-28 Soós Péter + +* Added Toshiba Satellite 2430 +* Documentation enhancements + +2003-04-03 Soós Péter + +* Really fixed __init bug in user parameter code +* Fixed omnibook_dmi_ident (it was static) + +2003-03-31 Soós Péter + +* Fixed HP technology code detection +* Key polling is disabled by default on XE3GC style machines +* Fixed PM code in polling.c +* Added util.c +* Fixed __init bug in user parameter code +* Cleaned up ec.h +* Added Toshiba Satellite 1950 detection +* Documentation enhancements + +2003-03-13 Soós Péter + +* Added HP Pavilion ZU1155 and ZU1175 detection + +2003-03-11 Soós Péter + +* Fixed bogus version information + +2003-03-06 Ducrot Bruno + +* Fan off hack for XE3GF style machines + +2003-03-04 Ducrot Bruno + +* Fixed spinlock problem + +2003-02-28 Soós Péter + +* Added /proc/omnibook/version +* Added OMNIBOOK_ prefix to MODULE_NAME and MODULE_VERSION definitions +* Fixed bugs in lcd.c (thanks to Bernhard Kaindl ) +* Some code tuning and cosmetic changes +* Fixed OmniBook 4150 support + +2003-02-26 Soós Péter + +* Fixed kernel Oops in technology code identification +* Some minor changes in logging + +2003-02-25 Soós Péter + +* Try to identify HP laptops by technology code if machine is unsupported +* Fixed dmi identification code + +2003-02-14 Soós Péter + +* Added HP Pavilion ze4100 support +* Added HP Pavilion ze4200 support +* Fixed HP Pavilion xt155 detection +* Added Acer Aspire 1400 series laptop support +* Fixed APM status detection bug +* Cleaned up dmi identification code +* Removed "Asset Tag:" field from dmi string structure + +2003-01-27 Soós Péter + +* Added HP Pavilion N5430 support +* EC functions are work even if boot parameter acpi=off is given +* Improved error handling in externally callable functions +* Fixed kernel integration patch +* Removed unreliable undocking feature for OB500 +* Fixed HP Pavilion N5415 support +* Added new format hotkeys sample files + +2003-01-09 Ducrot Bruno + +* Added to use ACPI_EC if available + +2003-01-09 Soós Péter + +* Fixed reverse console blanking bug on OB5xx and OB6xxx +* Disabled unreliable undocking feature on OB500 + +2003-01-08 Ducrot Bruno + +* Added Toshiba Satellite 3000, 3005, 1000, 1005, 1110, 1115, 1900, 1905 + support + +2003-01-08 Soós Péter + +* The ectype values changed again! See the README! +* Fixed new ectypes detection bug +* Added OmniBook xe4400 support +* Added LCD display turn off at console blanking on OB5xx and OB6xxx +* Documentation fixes + +2003-01-07 Soós Péter + +* Fixed bit level negation bug in fan.c +* Added turn fan on for Toshiba 3000 +* Corrected OmniBook 4150 support code + +2003-01-06 Soós Péter + +* Changed ectype values! See the README! +* Fixed some bugs in obtest utility +* Fixed second battery status bug in battery.c +* Added textual descriptions to some functions in /proc/omnibook +* Fix APM emulation to work when APM support is present but APM power + status reporting flagged broken +* Added docking station support +* Added fan support +* Added module parameter: user +* Added OmniBook xe155, xe4100 and ze4125 support +* Fan policy moved to /proc/omnibook/fan_policy +* Reorganized scancode emulation code for XE3 GC +* Polling of volume buttons on XE3CG style models can be enabled/disabled + via /proc/omnibook/key_polling +* Finished abstraction layer +* Some minor changes in Rick's model detection code +* New kernel integration code + +2002-12-22 Rick Richardson + +* Added on and off as valid input to /proc/omnibook/lcd, to turn + the LCD backlight on and off. + +2002-12-15 Rick Richardson + +* Reimplemented model detection so you only have to modify one file + to add a new model. features.h is now deprecated. +* Added the Toshiba Satellite 1115/S103 to the supported models +* Fixed bug in apmemu.c which caused /proc/apm to report the battery + status as critical when the battery was charging. + +2002-10-16 Soós Péter + +* Added HP Pavilion N5415 support +* Corrected HP Pavilion N5441 support +* Fix values of OB500 type machines in ec.h +* LCD brightness support added for XE3GC and XE3GF style machines +* Added HP OmniBook 510 FB support +* AC adapter status monitoring is working on all machines +* External display status monitoring is working on all machines +* CPU temperature monitoring is working on all machines +* __init functions gone to init.h +* Added an abstraction layer between the low level, hardware dependent + functions and the applications (not yet finished). See omnibook.h for + details. + +2002-09-20 Soós Péter + +* Using save_flags()/cli() instead spinlocks in ec.c because of laptops do + not have more than one CPU (yet ;)). This improves performance and + eliminates packet loss in ppp stack +* The previous version of XE3 GC scancode emulation was buggy: it worked only + when ACPI enabled. Current version is working ACPI independent way + +2002-09-05 Soós Péter + +* Added secondary battery support (untested, please report!) +* Added ectype module parameter to specify the type of embedded + controller firmware +* Added some OmniBook XE3 GC support code +* Added some OmniBook 500 style embedded controller firmware support code + (OmniBook 5xx, 6xxx and some Pavilions) +* Reorganized features matrix (again): the features depends on the embedded + controller firmware, not the model +* Added external display status monitoring on some machine +* Added scancode emulation on OmniBook XE3 GC + +2002-08-14 Soós Péter + +* Added HP OmniBook 6000 EA support (OneTouch only) +* Added HP OmniBook 6100 EB support (OneTouch only) +* Fixed Toshiba Satellite 3000-100 detection +* Fixed timeout and locking bugs in ec.c +* Added HP Pavilion Notebook ZT1141 +* Reorganized the feature matrix and parameter detection code to make easy + to add new features differents machine by machine + +2002-08-11 Soós Péter + +* Fixed removing of procfs entries +* Fixed APM detection +* Added kernel source integration +* Fixed __initdata bugs +* Handling difference between untesed and unsupported features + +2002-08-09 Soós Péter + +* Added Compal ACL00 laptop support +* Updated documentation +* Added touchpad support +* Some bugfixes +* /proc/apm emulation added + +2002-08-06 Soós Péter + +* Corrected full charged battery info +* Added OneTouch handling via procfs +* Added console blank handling via procfs +* Added temperature policy handling via procfs +* Corrected the bug in DMI code to report the serial number +* Added module parameter support +* Added HP Pavilion Notebook N5490, ZT1195 (and probably other Pavilions) + +2002-07-17 Soós Péter + +* Improved error handling +* Some text corrections +* Added Toshiba Satellite 3000-100 support +* Some code tuning +* Added omnibook prefix for variables and functions to prevent conflicts + with another code +* Added /proc filesystem support +* Added battery status monitoring +* Added CPU temperature monitoring + +2002-06-03 Soós Péter + +* Some code tuning + +2002-05-07 Soós Péter + +* Added missing #include to main.c +* Some text corrections +* Added HP OmniBook 500 FA support (OneTouch only) + +2002-05-06 Soós Péter + +* LCD display turn off at console blanking added +* Code cleanup + +2002-05-02 Soós Péter + +* The first release of omnibook module +* OneTouch button support --- linux-2.6.35.orig/ubuntu/omnibook/doc/BUGS +++ linux-2.6.35/ubuntu/omnibook/doc/BUGS @@ -0,0 +1,17 @@ +Bugs and problems in omnibook module code +========================================= + +* Volume Control buttons on machine (not on docking station) do not generate + scancodes on OB500 style models. It is unhandled yet. +* Setting the LCD brightness on HP OmniBook XE3 GF via /proc/omnibook/lcd + is working if you press one of the brightness control keys once after + writing the value into /proc/omnibook/lcd. +* I'm not a native English speaker so text corrections are welcome. +* obtest can BADLY confuse the in-kernel ACPI code due to its racy + implementation. +* Reenabling wifi adapter after previous disabling is broken on + Toshiba Satellite M100 (ipw3945) +* Real support of ectype 14 is still missing +* See http://sourceforge.net/tracker/?atid=868542&group_id=174260&func=browse + for sf.net bug tracking system. + --- linux-2.6.35.orig/ubuntu/omnibook/doc/README +++ linux-2.6.35/ubuntu/omnibook/doc/README @@ -0,0 +1,42 @@ +=============================================================== +Kernel Support for HP OmniBooks, Pavilions and Compal laptops +=============================================================== + +This package is intended to provide Linux kernel support for many laptops such as: +- HP OmniBook and Pavilion +- Toshiba Satellite and Tecra which are not supported by the toshiba_acpi module +- Compal ACL00 +- Many laptops manufactured by Compal Electronics, Inc as ODM + +Supported features depends on the exact laptop model but may include: +- Enabling hotkey buttons +- Console (LCD display) blanking +- Battery status monitoring. +- Fan and fan policy support +- Touchpad control +- AC Adapter status monitoring +- External display monitors status monitoring and control +- LCD brightness (backlight) monitoring and control +- Docking station/port replicator status +- CPU temperature monitoring +- Mute LED monitoring and control +- Wifi and Bluetooth adapters monitoring and control +- Cooling method control +- CPU Throttling control + +Useful links: + +Full documentation (HOWTO, Installation instructions, Supported laptops list... ): +http://omnibook.sourceforge.net/doku.php?id=start + +Sourceforge project page: +http://sourceforge.net/projects/omnibook + +Other links not related to the project: + +For HP Omnibook specific issues ou can see the OmniBook mailing list: +http://zurich.ai.mit.edu/mailman/listinfo/omnibook + +or the Toshiba linux mailing list: +http://linux.toshiba-dme.co.jp/linux/ + --- linux-2.6.35.orig/ubuntu/omnibook/misc/dmi_strings.txt +++ linux-2.6.35/ubuntu/omnibook/misc/dmi_strings.txt @@ -0,0 +1,857 @@ +HP OmniBook XT1000 ------------------------- + +BIOS Vendor: Insyde Software +BIOS Version: IB.M1.05 +BIOS Release: 02/28/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XT1000 +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: HP OmniBook XT1000 + +--------------------------------------------- +HP OmniBook XT1500 -------------------------- + +BIOS Vendor: Insyde Software +BIOS Version: IC.M1.05 +BIOS Release: 08/13/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: HP OmniBook + +--------------------------------------------- +HP OmniBook XT1500 ------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: ID.M1.04 +BIOS Release: 08/14/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XE3 GF +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook Zinfandel 4.5 + +--------------------------------------------- +HP OmniBook XE3 GC -------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GC.M1.63 +BIOS Release: 01/01/1992 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XE3 GC +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-733 + +--------------------------------------------- +HP OmniBook XE3 GF -------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GF.M1.07 +BIOS Release: 03/05/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XE3 GF +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-101 + +--------------------------------------------- +HP OmniBook 500 FA -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd +BIOS Version: FA.M2.62 +BIOS Release: 11/30/1999 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 500 FA +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 500 FA + +--------------------------------------------- +HP OmniBook 510 FB -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: FB.M1.20 +BIOS Release: 04/12/02 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 510 FB +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 510FB + +--------------------------------------------- +Toshiba Satellite 3000-100 ------------------ + +BIOS Vendor: TOSHIBA +BIOS Version: V2.20 +BIOS Release: 10/12/01 +System Vendor: TOSHIBA +Product Name: S3000-100 +Version: PS300E-03EKL-FR +Board Vendor: Null +Board Name: 888M1 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite 1115-s103------------------ + +BIOS Vendor: TOSHIBA +BIOS Version: V1.20 +BIOS Release: 09/11/2002 +System Vendor: TOSHIBA +Product Name: Satellite 1115 +Version: PS111U-001FUV +Board Vendor: TOSHIBA +Board Name: BTK20 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite 1110 ---------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.20 +BIOS Release: 09/11/2002 +System Vendor: TOSHIBA +Product Name: S1110 +Version: PS111E-003DN-GR +Board Vendor: TOSHIBA +Board Name: BTK20 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite 1130 ---------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.70A +BIOS Release: 09/02/2003 +System Vendor: TOSHIBA +Product Name: Satellite 1130 +Version: PS113E-05ZYF-GR +Board Vendor: TOSHIBA +Board Name: BTW30 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite 1900-704 ------------------ + +BIOS Vendor: TOSHIBA +BIOS Version: V1.50 +BIOS Release: 11/25/2002 +System Vendor: TOSHIBA +Product Name: Satellite 1950 +Version: PS195E-008QY-DU +Board Vendor: TOSHIBA +Board Name: ATR60 + +--------------------------------------------- +Toshiba Satellite 1955-s805 ----------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.00 +BIOS Release: 01/17/2003 +System Vendor: TOSHIBA +Product Name: Satellite 1955 +Version: PS197U-000LEV +Board Vendor: TOSHIBA +Board Name: BTR80 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite A70 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.50 +BIOS Release: 11/16/2004 +System Vendor: TOSHIBA +Product Name: Satellite A70 +Version: PSA70C-KL100E +Serial Number: X4451615K +Board Vendor: TOSHIBA +Board Name: EDW10 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite A80 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V2.50 +BIOS Release: 01/11/2006 +System Vendor: TOSHIBA +Product Name: Satellite A80 +Version: PSA80E-03T00JSP +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Satellite A105 ---------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: 1.30 +BIOS Release: 02/09/2006 +System Vendor: TOSHIBA +Product Name: Satellite A105 +Version: PSAA8U-02000U +Board Vendor: Intel Corporation +Board Name: Not Applicable + +--------------------------------------------- +Toshiba Satellite P10 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.20 +BIOS Release: 09/12/2003 +System Vendor: TOSHIBA +Product Name: Satellite P10 +Version: PSP10E-34FJR +Board Vendor: TOSHIBA +Board Name: DAL00 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite P15 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.20 +BIOS Release: 09/12/2003 +System Vendor: TOSHIBA +Product Name: Satellite P15 +Version: PSP10U-0DUJPV +Board Vendor: TOSHIBA +Board Name: DAL00 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite P25 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V2.10 +BIOS Release: 12/27/2004 +System Vendor: TOSHIBA +Product Name: Satellite P25 +Version: PSP20U-19PS8R +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Satellite P100 ---------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V3.30 +BIOS Release: 12/22/2006 +System Vendor: TOSHIBA +Product Name: Satellite P100 +Version: PSPA3E-02E013G3 +Board Vendor: TOSHIBA +Board Name: Not Applicable + +--------------------------------------------- +Toshiba Satellite M40 ----------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: 1.10 +BIOS Release: 08/24/05 +System Vendor: TOSHIBA +Product Name: Satellite M40 +Version: PSM44E-00U00EFR +Board Vendor: ATI +Board Name: SB400 +Board Version: Rev0.4b + +--------------------------------------------- +Toshiba Satellite M45 (S355) ---------------- + +BIOS Vendor: TOSHIBA +BIOS Version: Version 2.00 +BIOS Release: 02/07/2006 +System Vendor: TOSHIBA +Product Name: Satellite M45 +Version: PSM40U-073001 +Board Vendor: TOSHIBA +Board Name: Version A0 + +--------------------------------------------- +Toshiba Satellite M40X (-131)---------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.60 +BIOS Release: 06/09/2005 +System Vendor: TOSHIBA +Product Name: Satellite M40X +Version: PSM4XE-01400GFR +Board Vendor: TOSHIBA +Board Name: EAL30 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite M50------------------------ + +BIOS Vendor: TOSHIBA +BIOS Version: V2.10 +BIOS Release: 05/08/2006 +System Vendor: TOSHIBA +Product Name: Satellite M50 +Version: PSM51E-01C011IT +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Satellite M60 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.60 +BIOS Release: 03/16/2006 +System Vendor: TOSHIBA +Product Name: Satellite M60 +Version: PSM60E-0CD01FIT +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Satellite M70 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.10 +BIOS Release: 09/15/2005 +System Vendor: TOSHIBA +Product Name: Satellite M70 +Version: PSM71E-01100KFR +Board Vendor: TOSHIBA +Board Name: HTW00 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite A75 ----------------------- + +IOS Vendor: TOSHIBA +BIOS Version: V1.50 +BIOS Release: 11/16/2004 +System Vendor: TOSHIBA +Product Name: Satellite A75 +Version: PSA70U-004004B +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Satellite M100 ---------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.90 +BIOS Release: 07/20/2006 +System Vendor: TOSHIBA +Product Name: SATELLITE M100 +Version: PSMA0E-030019TE +Board Vendor: TOSHIBA +Board Name: HAQAA +Board Version: Null + +--------------------------------------------- +Toshiba Satellite M100 ---------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.00 +BIOS Release: 03/30/2006 +System Vendor: TOSHIBA +Product Name: Satellite M100 +Version: PSMA2U-00T00G +Board Vendor: TOSHIBA +Board Name: HAWAA +Board Version: None + +--------------------------------------------- +Toshiba Satellite M115 ---------------------- + +Bios vender: Phoenix Tech. LTD +Bios version: 1.00 +Bios release: 08/31/2006 +System Vendor: Toshiba +Product Name: Satellite M115 +Version: PSMBOU-015007 +Board vendor Intel +Board name: N/a + +--------------------------------------------- +Toshiba Equium A110 ------------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.30 +BIOS Release: 07/20/2006 +System Vendor: TOSHIBA +Product Name: EQUIUM A110 +Version: PSAB2E-002006AV +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Tecra A4 ---------------------------- + + +BIOS Vendor: TOSHIBA +BIOS Version: Version 1.70 +BIOS Release: 10/14/2005 +System Vendor: TOSHIBA +Product Name: Tecra A4 +Version: PTA40E-0UN00FSP +Board Vendor: TOSHIBA +Board Name: Version A0 + +--------------------------------------------- +Toshiba Tecra A6 ---------------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V2.70 +BIOS Release: 04/26/2007 +System Vendor: TOSHIBA +Product Name: TECRA A6 +Version: PTA60U-0FK00D +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Tecra S2 ---------------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V2.50 +BIOS Release: 01/11/2006 +System Vendor: TOSHIBA +Product Name: Tecra S2 +Version: PTS20E-1FE04Q8M +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Compal ACL00 -------------------------------- + +BIOS Vendor: COMPAL +BIOS Version: V2.10C +BIOS Release: 03/25/02 +System Vendor: COMPAL +Product Name: * +Version: * +Board Vendor: Null +Board Name: ACL00 +Board Version: Null + +--------------------------------------------- +Compal ACL10 -------------------------------- + +BIOS Vendor: COMPAL +BIOS Version: V1.10 +BIOS Release: 04/12/2001 +System Vendor: * +Product Name: * +Version: * +Board Vendor: COMPAL +Board Name: ACL10 +Board Version: Null + +--------------------------------------------- +HP Pavilion ZT1195 -------------------------- + +BIOS Vendor: Insyde Software +BIOS Version: IC.M1.00 +BIOS Release: 03/20/2002 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion Notebook +Board Vendor: Hewlett-Packard +Board Name: HP Pavilion Notebook PC +Board Version: HP Pavilion Notebook + +--------------------------------------------- +HP Pavilion ZT1141 -------------------------- + +BIOS Vendor: Insyde Software +BIOS Version: IB.M1.05 +BIOS Release: 02/28/2002 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion Notebook ZT1000 +Board Vendor: Hewlett-Packard +Board Name: HP Pavilion Notebook PC +Board Version: HP Pavilion Notebook ZT1000 + +--------------------------------------------- +HP OmniBook 6100 EB ------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: EB.M2.20 +BIOS Release: 02/27/02 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 6100 EB +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 6100EB + +--------------------------------------------- +HP OmniBook 6000 EA ------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: EA.M1.81 +BIOS Release: 02/22/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 6000 EA +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 6000EA + +--------------------------------------------- +HP OmniBook xe4500 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KB.M1.30 +BIOS Release: 08/05/20022 +System Vendor: Hewlett-Packard. +Product Name: HP OmniBook PC +Version: HP OmniBook xe4500 +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: xe4500 + +--------------------------------------------- +HP Pavilion N5441 --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GD.M1.08 +BIOS Release: 09/27/2001 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion Notebook Model GD +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-736 + +--------------------------------------------- +HP Pavilion N5430 --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GD.M1.08 +BIOS Release: 09/27/2001 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XE3 GD +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-736 + +--------------------------------------------- +HP Pavilion N5415 --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GE.M1.04 +BIOS Release: 07/30/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XE3 GE +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-736 + +--------------------------------------------- +HP Pavilion N5290 --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GC.M1.63 +BIOS Release: 01/01/1992 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion Notebook XE3 GC +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-733 + +--------------------------------------------- +HP OmniBook vt6200 ------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: EG.M2.10 +BIOS Release: 09/19/02 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 6200 EG +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 6200EG + +--------------------------------------------- +HP OmniBook 4150 ---------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: CI.M2.250 +BIOS Release: 06/10/99 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 4150 +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook TS32T2 + +--------------------------------------------- +HP OmniBook xt6200 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd +BIOS Version: EG.M2.10 +BIOS Release: 09/19/02 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 6200 EG +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 6200EG + +--------------------------------------------- +HP Pavilion ze4125 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd +BIOS Version: KA.M1.20 +BIOS Release: 09/13/2002 +System Vendor: Hewlett-Packard +Product Name: HP NoteBook PC +Version: HP NoteBook ze4000 +Board Vendor: Hewlett-Packard +Board Name: HP NoteBook PC +Board Version: HP NoteBook ze4000 + +--------------------------------------------- +HP OmniBook xt155 --------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KE.M1.40 +BIOS Release: 10/11/20022 +System Vendor: Hewlett-Packard +Product Name: HP NoteBook PC +Version: HP Notebook PC +Board Vendor: Hewlett-Packard +Board Name: HP NoteBook PC +Board Version: HP Notebook PC + +--------------------------------------------- +HP OmniBook xe4100 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KC.M1.10 +BIOS Release: 07/11/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook xe4000 +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 4000KC + +--------------------------------------------- +HP Omnibook xe4400 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KD.M1.60 +BIOS Release: 09/19/20022 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP Omnibook xe4400 +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: xe4400 + +--------------------------------------------- +HP Pavilion ze4100 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KE.M1.40 +BIOS Release: 10/11/20022 +System Vendor: Hewlett-Packard +Product Name: HP NoteBook PC +Version: HP Notebook PC +Board Vendor: Hewlett-Packard +Board Name: HP NoteBook PC +Board Version: HP Notebook PC + +--------------------------------------------- +Acer Aspire 1350 ---------------------------- +BIOS Vendor: Acer +BIOS Version: 3A24 +BIOS Release: 12/01/2003 +System Vendor: Acer,Inc. +Product Name: Aspire 1350 +Version: 3A24 +Board Vendor: Acer,Inc. +Board Name: Aspire 1350 +Board Version: Rev.A + +--------------------------------------------- +Acer Aspire 1406 LC ------------------------- + +BIOS Vendor: Acer +BIOS Version: V2.30 +BIOS Release: 10/04/02 +System Vendor: Acer +Product Name: Aspire 1400 series +Version: * +Board Vendor: Null +Board Name: BR20 +Board Version: Null + +--------------------------------------------- +HP Pavilion ze4200 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KE.M1.53 +BIOS Release: 12/10/20022 +System Vendor: Hewlett-Packard +Product Name: Pavilion ze4200 +Version: KE.M1.53 +Board Vendor: Hewlett-Packard +Board Name: 002A +Board Version: NS570 Version PQ1A74 + +--------------------------------------------- +HP Pavilion ze4500 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KAM1.57 +BIOS Release: 02/19/2004 +System Vendor: Hewlett-Packard +Product Name: Pavilion ze4500 (DP793E) +Version: KAM1.57 +Board Vendor: Hewlett-Packard +Board Name: PQ1A83 + +--------------------------------------------- +HP Pavilion ZU1175 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: FA.M2.60 +BIOS Release: 11/30/1999 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion ZU1000 FA +Board Vendor: Hewlett-Packard +Board Name: HP Pavilion Notebook PC +Board Version: 1000FA + +--------------------------------------------- +HP Pavilion XH545 --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GE.M1.03 +BIOS Release: 11/08/2001 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion Notebook Model GE +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-736 + +--------------------------------------------- +Toshiba Satellite 2430-402 ------------------ + +BIOS Vendor: TOSHIBA +BIOS Version: V1.30 +BIOS Release: 01/16/2003 +System Vendor: TOSHIBA +Product Name: Satellite 2430 +Version: PS243E-06P4S-4V +Board Vendor: TOSHIBA +Board Name: BTS88 +Board Version: Null + +--------------------------------------------- +HP OmniBook 900 B --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: CL.M3.13 +BIOS Release: 11/11/99 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 900 B +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook TS32U2 + +--------------------------------------------- +HP Compaq nx9000 ---------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KE_KG.M1.06 +BIOS Release: 05/16/2003 +System Vendor: Hewlett-Packard +Product Name: HP nx9000 (DG223T) +Version: KG.M1.06 +Board Vendor: Hewlett-Packard +Board Name: 002A +Board Version: NS570 Version PQ1A78 + +--------------------------------------------- +HP Compaq nx9000 ---------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KE_KG.M1.15 +BIOS Release: 12/19/2003 +System Vendor: Hewlett-Packard +Product Name: HP Notebook PC +Version: HP Notebook PC +Board Vendor: +Board Name: +Board Version: + +--------------------------------------------- +HP Compaq nx9005 ---------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KAM1.46 +BIOS Release: 07/21/200392 +System Vendor: Hewlett-Packard +Product Name: HP nx9005 (DJ163A) +Version: KAM1.46 +Board Vendor: Hewlett-Packard +Board Name: 0024 +Board Version: PQ1A78 + +---------------------------------------------- +HP Compaq nx9010 ----------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KF_KH.F.08 +BIOS Release: 06/06/2003 +System Vendor: Hewlett-Packard +Product Name: HP nx9010 (DJ123A) +Version: KH.F.08 +Board Vendor: Hewlett-Packard +Board Name: 0850 +Board Version: NS570 Version PQ1B56 + +---------------------------------------------- +HP Pavilion ze8500 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KF_KH.F.18 +BIOS Release: 11/13/2003 +System Vendor: Hewlett-Packard +Product Name: Pavilion ze8500 (DJ317A) +Version: KH.F.18 +Board Vendor: Hewlett-Packard +Board Name: 0850 +Board Version: NS570 Version PQ1B60 + +--------------------------------------------- +Fujitsu-Siemens Amilo D --------------------- + +BIOS Vendor: Phoenix +BIOS Version: V1.20 +BIOS Release: 11/14/2001 +System Vendor: FUJITSU SIEMENS +Product Name: Amilo D-Series +Version: DESKTOP CPU ONLY +Board Vendor: CY23 +Board Name: 8606-686B +Board Version: None + +--------------------------------------------- --- linux-2.6.35.orig/ubuntu/omnibook/misc/README.mmkeys +++ linux-2.6.35/ubuntu/omnibook/misc/README.mmkeys @@ -0,0 +1,9 @@ +This patch maps some extra Fn+key combinations to keycodes for multimedia +keyboards and only works for the nbsmi-backend. It might be useful if you +want to control some mediaplayer while working with other applications. + +Following combinations are mapped: +Fn+Y => Previous song +Fn+X => Play/pause +Fn+V => Stop CD +Fn+B => Next song \ No newline at end of file --- linux-2.6.35.orig/ubuntu/omnibook/misc/hotkeys/xt155.def +++ linux-2.6.35/ubuntu/omnibook/misc/hotkeys/xt155.def @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.35.orig/ubuntu/omnibook/misc/hotkeys/ob5xx.def +++ linux-2.6.35/ubuntu/omnibook/misc/hotkeys/ob5xx.def @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.35.orig/ubuntu/omnibook/misc/hotkeys/xe3gc.def +++ linux-2.6.35/ubuntu/omnibook/misc/hotkeys/xe3gc.def @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.35.orig/ubuntu/omnibook/misc/hotkeys/xe3gf.def +++ linux-2.6.35/ubuntu/omnibook/misc/hotkeys/xe3gf.def @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.35.orig/ubuntu/omnibook/misc/hotkeys/xe4xxx.def +++ linux-2.6.35/ubuntu/omnibook/misc/hotkeys/xe4xxx.def @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.35.orig/ubuntu/omnibook/misc/hotkeys/nx9xxx.def +++ linux-2.6.35/ubuntu/omnibook/misc/hotkeys/nx9xxx.def @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.35.orig/ubuntu/omnibook/misc/hotkeys/README.hotkeys +++ linux-2.6.35/ubuntu/omnibook/misc/hotkeys/README.hotkeys @@ -0,0 +1,22 @@ +HotKeys is a program to use the special keys on internet/multimedia +keyboards. + +The HotKeys daemon listens for the "special" hotkeys that you won't +normally use on your Internet/Multimedia keyboards. The buttons +perform their intended behaviors, such as volume up and down, mute the +speaker, or launch applications. It has On-screen display (OSD) to +show the volume, program that's being started, etc. It features an +XML-based keycode configuration file format, which makes it possible +to define the hotkeys to launch any programs you want. + +You may reach it at http://ypwong.org/hotkeys/ + +Files in this directory provide examles for hotkeys definition files +for certain laptop models supported by omnibook module: + +ob5xx.def: HP OmniBook 5xx +xe3gc.def: HP OmniBook XE3 GC, GD, GE and HP Pavilion N5xxx +xe3gf.def: HP OmniBook XE3 GF +xe4xxx.def: HP OmniBook xe4xxx and ze4xxx +xt155.def: HP OmniBook xt155 +nx9xxx.def: HP/Compaq nx9xxx --- linux-2.6.35.orig/ubuntu/ndiswrapper/pe_linker.c +++ linux-2.6.35/ubuntu/ndiswrapper/pe_linker.c @@ -0,0 +1,599 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifdef TEST_LOADER + +#include "usr_linker.h" + +#else + +#include +#include + +//#define DEBUGLINKER 2 + +#include "ntoskernel.h" + +#endif + +struct pe_exports { + char *dll; + char *name; + generic_func addr; +}; + +static struct pe_exports pe_exports[40]; +static int num_pe_exports; + +#define RVA2VA(image, rva, type) (type)(ULONG_PTR)((void *)image + rva) +#define CHECK_SZ(a,b) { if (sizeof(a) != b) { \ + ERROR("%s is bad, got %zd, expected %d", \ + #a , sizeof(a), (b)); return -EINVAL; } } + +#if defined(DEBUGLINKER) && DEBUGLINKER > 0 +#define DBGLINKER(fmt, ...) printk(KERN_INFO "%s (%s:%d): " fmt "\n", \ + DRIVER_NAME, __func__, \ + __LINE__ , ## __VA_ARGS__); +static const char *image_directory_name[] = { + "EXPORT", + "IMPORT", + "RESOURCE", + "EXCEPTION", + "SECURITY", + "BASERELOC", + "DEBUG", + "COPYRIGHT", + "GLOBALPTR", + "TLS", + "LOAD_CONFIG", + "BOUND_IMPORT", + "IAT", + "DELAY_IMPORT", + "COM_DESCRIPTOR" }; +#else +#define DBGLINKER(fmt, ...) do { } while (0) +#endif + +#ifndef TEST_LOADER +extern struct wrap_export ntoskernel_exports[], ntoskernel_io_exports[], + ndis_exports[], crt_exports[], hal_exports[], rtl_exports[]; +#ifdef ENABLE_USB +extern struct wrap_export usb_exports[]; +#endif + +static int get_export(char *name, generic_func *func) +{ + int i, j; + + struct wrap_export *exports[] = { + ntoskernel_exports, + ntoskernel_io_exports, + ndis_exports, + crt_exports, + hal_exports, + rtl_exports, +#ifdef ENABLE_USB + usb_exports, +#endif + }; + + for (j = 0; j < ARRAY_SIZE(exports); j++) + for (i = 0; exports[j][i].name != NULL; i++) + if (strcmp(exports[j][i].name, name) == 0) { + *func = exports[j][i].func; + return 0; + } + + for (i = 0; i < num_pe_exports; i++) + if (strcmp(pe_exports[i].name, name) == 0) { + *func = pe_exports[i].addr; + return 0; + } + + return -1; +} +#endif // TEST_LOADER + +static void *get_dll_init(char *name) +{ + int i; + for (i = 0; i < num_pe_exports; i++) + if ((strcmp(pe_exports[i].dll, name) == 0) && + (strcmp(pe_exports[i].name, "DllInitialize") == 0)) + return (void *)pe_exports[i].addr; + return NULL; +} + +/* + * Find and validate the coff header + * + */ +static int check_nt_hdr(IMAGE_NT_HEADERS *nt_hdr) +{ + int i; + WORD attr; + PIMAGE_OPTIONAL_HEADER opt_hdr; + + /* Validate the "PE\0\0" signature */ + if (nt_hdr->Signature != IMAGE_NT_SIGNATURE) { + ERROR("is this driver file? bad signature %08x", + nt_hdr->Signature); + return -EINVAL; + } + + opt_hdr = &nt_hdr->OptionalHeader; + /* Make sure Image is PE32 or PE32+ */ +#ifdef CONFIG_X86_64 + if (opt_hdr->Magic != IMAGE_NT_OPTIONAL_HDR64_MAGIC) { + ERROR("kernel is 64-bit, but Windows driver is not 64-bit;" + "bad magic: %04X", opt_hdr->Magic); + return -EINVAL; + } +#else + if (opt_hdr->Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC) { + ERROR("kernel is 32-bit, but Windows driver is not 32-bit;" + "bad magic: %04X", opt_hdr->Magic); + return -EINVAL; + } +#endif + + /* Validate the image for the current architecture. */ +#ifdef CONFIG_X86_64 + if (nt_hdr->FileHeader.Machine != IMAGE_FILE_MACHINE_AMD64) { + ERROR("kernel is 64-bit, but Windows driver is not 64-bit;" + " (PE signature is %04X)", nt_hdr->FileHeader.Machine); + return -EINVAL; + } +#else + if (nt_hdr->FileHeader.Machine != IMAGE_FILE_MACHINE_I386) { + ERROR("kernel is 32-bit, but Windows driver is not 32-bit;" + " (PE signature is %04X)", nt_hdr->FileHeader.Machine); + return -EINVAL; + } +#endif + + /* Must have attributes */ +#ifdef CONFIG_X86_64 + attr = IMAGE_FILE_EXECUTABLE_IMAGE | IMAGE_FILE_LARGE_ADDRESS_AWARE; +#else + attr = IMAGE_FILE_EXECUTABLE_IMAGE | IMAGE_FILE_32BIT_MACHINE; +#endif + if ((nt_hdr->FileHeader.Characteristics & attr) != attr) + return -EINVAL; + + /* Must be relocatable */ + attr = IMAGE_FILE_RELOCS_STRIPPED; + if ((nt_hdr->FileHeader.Characteristics & attr)) + return -EINVAL; + + /* Make sure we have at least one section */ + if (nt_hdr->FileHeader.NumberOfSections == 0) + return -EINVAL; + + if (opt_hdr->SectionAlignment < opt_hdr->FileAlignment) { + ERROR("alignment mismatch: secion: 0x%x, file: 0x%x", + opt_hdr->SectionAlignment, opt_hdr->FileAlignment); + return -EINVAL; + } + + DBGLINKER("number of datadictionary entries %d", + opt_hdr->NumberOfRvaAndSizes); + for (i = 0; i < opt_hdr->NumberOfRvaAndSizes; i++) { + DBGLINKER("datadirectory %s RVA:%X Size:%d", + (i<=IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR)? + image_directory_name[i] : "unknown", + opt_hdr->DataDirectory[i].VirtualAddress, + opt_hdr->DataDirectory[i].Size); + } + + if ((nt_hdr->FileHeader.Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE)) + return IMAGE_FILE_EXECUTABLE_IMAGE; + if ((nt_hdr->FileHeader.Characteristics & IMAGE_FILE_DLL)) + return IMAGE_FILE_DLL; + return -EINVAL; +} + +static int import(void *image, IMAGE_IMPORT_DESCRIPTOR *dirent, char *dll) +{ + ULONG_PTR *lookup_tbl, *address_tbl; + char *symname = NULL; + int i; + int ret = 0; + generic_func adr; + + lookup_tbl = RVA2VA(image, dirent->u.OriginalFirstThunk, ULONG_PTR *); + address_tbl = RVA2VA(image, dirent->FirstThunk, ULONG_PTR *); + + for (i = 0; lookup_tbl[i]; i++) { + if (IMAGE_SNAP_BY_ORDINAL(lookup_tbl[i])) { + ERROR("ordinal import not supported: %Lu", + (uint64_t)lookup_tbl[i]); + return -1; + } + else { + symname = RVA2VA(image, + ((lookup_tbl[i] & + ~IMAGE_ORDINAL_FLAG) + 2), char *); + } + + ret = get_export(symname, &adr); + if (ret < 0) { + ERROR("unknown symbol: %s:'%s'", dll, symname); + } else { + DBGLINKER("found symbol: %s:%s: addr: %p, rva = %Lu", + dll, symname, adr, (uint64_t)address_tbl[i]); + address_tbl[i] = (ULONG_PTR)adr; + } + } + return ret; +} + +static int read_exports(struct pe_image *pe) +{ + IMAGE_EXPORT_DIRECTORY *export_dir_table; + uint32_t *export_addr_table; + int i; + uint32_t *name_table; + PIMAGE_OPTIONAL_HEADER opt_hdr; + IMAGE_DATA_DIRECTORY *export_data_dir; + + opt_hdr = &pe->nt_hdr->OptionalHeader; + export_data_dir = + &opt_hdr->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT]; + + if (export_data_dir->Size == 0) { + DBGLINKER("no exports"); + return 0; + } + + export_dir_table = + RVA2VA(pe->image, export_data_dir->VirtualAddress, + IMAGE_EXPORT_DIRECTORY *); + + name_table = (unsigned int *)(pe->image + + export_dir_table->AddressOfNames); + export_addr_table = (uint32_t *) + (pe->image + export_dir_table->AddressOfFunctions); + + for (i = 0; i < export_dir_table->NumberOfNames; i++) { + + if (export_data_dir->VirtualAddress <= *export_addr_table || + *export_addr_table >= (export_data_dir->VirtualAddress + + export_data_dir->Size)) + DBGLINKER("forwarder rva"); + + DBGLINKER("export symbol: %s, at %p", + (char *)(pe->image + *name_table), + pe->image + *export_addr_table); + + pe_exports[num_pe_exports].dll = pe->name; + pe_exports[num_pe_exports].name = pe->image + *name_table; + pe_exports[num_pe_exports].addr = + pe->image + *export_addr_table; + + num_pe_exports++; + name_table++; + export_addr_table++; + } + return 0; +} + +static int fixup_imports(void *image, IMAGE_NT_HEADERS *nt_hdr) +{ + int i; + char *name; + int ret = 0; + IMAGE_IMPORT_DESCRIPTOR *dirent; + IMAGE_DATA_DIRECTORY *import_data_dir; + PIMAGE_OPTIONAL_HEADER opt_hdr; + + opt_hdr = &nt_hdr->OptionalHeader; + import_data_dir = + &opt_hdr->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]; + dirent = RVA2VA(image, import_data_dir->VirtualAddress, + IMAGE_IMPORT_DESCRIPTOR *); + + for (i = 0; dirent[i].Name; i++) { + name = RVA2VA(image, dirent[i].Name, char*); + + DBGLINKER("imports from dll: %s", name); + ret += import(image, &dirent[i], name); + } + return ret; +} + +static int fixup_reloc(void *image, IMAGE_NT_HEADERS *nt_hdr) +{ + ULONG_PTR base; + ULONG_PTR size; + IMAGE_BASE_RELOCATION *fixup_block; + IMAGE_DATA_DIRECTORY *base_reloc_data_dir; + PIMAGE_OPTIONAL_HEADER opt_hdr; + + opt_hdr = &nt_hdr->OptionalHeader; + base = opt_hdr->ImageBase; + base_reloc_data_dir = + &opt_hdr->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC]; + if (base_reloc_data_dir->Size == 0) + return 0; + + fixup_block = RVA2VA(image, base_reloc_data_dir->VirtualAddress, + IMAGE_BASE_RELOCATION *); + DBGLINKER("fixup_block=%p, image=%p", fixup_block, image); + DBGLINKER("fixup_block info: %x %d", + fixup_block->VirtualAddress, fixup_block->SizeOfBlock); + + while (fixup_block->SizeOfBlock) { + int i; + WORD fixup, offset; + + size = (fixup_block->SizeOfBlock - + sizeof(IMAGE_BASE_RELOCATION)) / sizeof(WORD); + DBGLINKER("found %Lu relocations in this block", + (uint64_t)size); + + for (i = 0; i < size; i++) { + fixup = fixup_block->TypeOffset[i]; + offset = fixup & 0xfff; + switch ((fixup >> 12) & 0x0f) { + case IMAGE_REL_BASED_ABSOLUTE: + break; + + case IMAGE_REL_BASED_HIGHLOW: { + uint32_t addr; + uint32_t *loc = + RVA2VA(image, + fixup_block->VirtualAddress + + offset, uint32_t *); + addr = RVA2VA(image, (*loc - base), uint32_t); + DBGLINKER("relocation: *%p (Val:%X)= %X", + loc, *loc, addr); + *loc = addr; + } + break; + + case IMAGE_REL_BASED_DIR64: { + uint64_t addr; + uint64_t *loc = + RVA2VA(image, + fixup_block->VirtualAddress + + offset, uint64_t *); + addr = RVA2VA(image, (*loc - base), uint64_t); + DBGLINKER("relocation: *%p (Val:%llX)= %llx", + loc, *loc, addr); + *loc = addr; + } + break; + + default: + ERROR("unknown fixup: %08X", + (fixup >> 12) & 0x0f); + return -EOPNOTSUPP; + break; + } + } + DBGLINKER("finished relocating block"); + + fixup_block = (IMAGE_BASE_RELOCATION *) + ((void *)fixup_block + fixup_block->SizeOfBlock); + }; + DBGLINKER("done relocating all"); + + return 0; +} + +/* Expand the image in memroy if necessary. The image on disk does not + * necessarily maps the image of the driver in memory, so we have to + * re-write it in order to fullfill the sections alignements. The + * advantage to do that is that rva_to_va becomes a simple + * addition. */ +static int fix_pe_image(struct pe_image *pe) +{ + void *image; + IMAGE_SECTION_HEADER *sect_hdr; + int i, sections; + int image_size; + + if (pe->size == pe->opt_hdr->SizeOfImage) { + /* Nothing to do */ + return 0; + } + + image_size = pe->opt_hdr->SizeOfImage; +#ifdef CONFIG_X86_64 +#ifdef PAGE_KERNEL_EXECUTABLE + image = __vmalloc(image_size, GFP_KERNEL | __GFP_HIGHMEM, + PAGE_KERNEL_EXECUTABLE); +#elif defined PAGE_KERNEL_EXEC + image = __vmalloc(image_size, GFP_KERNEL | __GFP_HIGHMEM, + PAGE_KERNEL_EXEC); +#else +#error x86_64 should have either PAGE_KERNEL_EXECUTABLE or PAGE_KERNEL_EXEC +#endif +#else +#ifdef cpu_has_nx + /* hate to play with kernel macros, but PAGE_KERNEL_EXEC is + * not available to modules! */ + if (cpu_has_nx) + image = __vmalloc(image_size, GFP_KERNEL | __GFP_HIGHMEM, + __pgprot(__PAGE_KERNEL & ~_PAGE_NX)); + else + image = vmalloc(image_size); +#else + image = vmalloc(image_size); +#endif +#endif + if (image == NULL) { + ERROR("failed to allocate enough space for new image:" + " %d bytes", image_size); + return -ENOMEM; + } + + /* Copy all the headers, ie everything before the first section. */ + + sections = pe->nt_hdr->FileHeader.NumberOfSections; + sect_hdr = IMAGE_FIRST_SECTION(pe->nt_hdr); + + DBGLINKER("copying headers: %u bytes", sect_hdr->PointerToRawData); + + memcpy(image, pe->image, sect_hdr->PointerToRawData); + + /* Copy all the sections */ + for (i = 0; i < sections; i++) { + DBGLINKER("Copy section %s from %x to %x", + sect_hdr->Name, sect_hdr->PointerToRawData, + sect_hdr->VirtualAddress); + if (sect_hdr->VirtualAddress+sect_hdr->SizeOfRawData > + image_size) { + ERROR("Invalid section %s in driver", sect_hdr->Name); + vfree(image); + return -EINVAL; + } + + memcpy(image+sect_hdr->VirtualAddress, + pe->image + sect_hdr->PointerToRawData, + sect_hdr->SizeOfRawData); + sect_hdr++; + } + + vfree(pe->image); + pe->image = image; + pe->size = image_size; + + /* Update our internal pointers */ + pe->nt_hdr = (IMAGE_NT_HEADERS *) + (pe->image + ((IMAGE_DOS_HEADER *)pe->image)->e_lfanew); + pe->opt_hdr = &pe->nt_hdr->OptionalHeader; + + DBGLINKER("set nt headers: nt_hdr=%p, opt_hdr=%p, image=%p", + pe->nt_hdr, pe->opt_hdr, pe->image); + + return 0; +} + +#if defined(CONFIG_X86_64) +static void fix_user_shared_data_addr(char *driver, unsigned long length) +{ + unsigned long i, n, max_addr, *addr; + + n = length - sizeof(unsigned long); + max_addr = KI_USER_SHARED_DATA + sizeof(kuser_shared_data); + for (i = 0; i < n; i++) { + addr = (unsigned long *)(driver + i); + if (*addr >= KI_USER_SHARED_DATA && *addr < max_addr) { + *addr -= KI_USER_SHARED_DATA; + *addr += (unsigned long)&kuser_shared_data; + kuser_shared_data.reserved1 = 1; + } + } +} +#endif + +int link_pe_images(struct pe_image *pe_image, unsigned short n) +{ + int i; + struct pe_image *pe; + +#ifdef DEBUG + /* Sanity checkings */ + CHECK_SZ(IMAGE_SECTION_HEADER, IMAGE_SIZEOF_SECTION_HEADER); + CHECK_SZ(IMAGE_FILE_HEADER, IMAGE_SIZEOF_FILE_HEADER); + CHECK_SZ(IMAGE_OPTIONAL_HEADER, IMAGE_SIZEOF_NT_OPTIONAL_HEADER); + CHECK_SZ(IMAGE_NT_HEADERS, 4 + IMAGE_SIZEOF_FILE_HEADER + + IMAGE_SIZEOF_NT_OPTIONAL_HEADER); + CHECK_SZ(IMAGE_DOS_HEADER, 0x40); + CHECK_SZ(IMAGE_EXPORT_DIRECTORY, 40); + CHECK_SZ(IMAGE_BASE_RELOCATION, 8); + CHECK_SZ(IMAGE_IMPORT_DESCRIPTOR, 20); +#endif + + for (i = 0; i < n; i++) { + IMAGE_DOS_HEADER *dos_hdr; + pe = &pe_image[i]; + dos_hdr = pe->image; + + if (pe->size < sizeof(IMAGE_DOS_HEADER)) { + TRACE1("image too small: %d", pe->size); + return -EINVAL; + } + + pe->nt_hdr = + (IMAGE_NT_HEADERS *)(pe->image + dos_hdr->e_lfanew); + pe->opt_hdr = &pe->nt_hdr->OptionalHeader; + + pe->type = check_nt_hdr(pe->nt_hdr); + if (pe->type <= 0) { + TRACE1("type <= 0"); + return -EINVAL; + } + + if (fix_pe_image(pe)) { + TRACE1("bad PE image"); + return -EINVAL; + } + + if (read_exports(pe)) { + TRACE1("read exports failed"); + return -EINVAL; + } + } + + for (i = 0; i < n; i++) { + pe = &pe_image[i]; + + if (fixup_reloc(pe->image, pe->nt_hdr)) { + TRACE1("fixup reloc failed"); + return -EINVAL; + } + if (fixup_imports(pe->image, pe->nt_hdr)) { + TRACE1("fixup imports failed"); + return -EINVAL; + } +#if defined(CONFIG_X86_64) + INFO("fixing KI_USER_SHARED_DATA address in the driver"); + fix_user_shared_data_addr(pe_image[i].image, pe_image[i].size); +#endif + flush_icache_range(pe->image, pe->size); + + pe->entry = + RVA2VA(pe->image, + pe->opt_hdr->AddressOfEntryPoint, void *); + TRACE1("entry is at %p, rva at %08X", pe->entry, + pe->opt_hdr->AddressOfEntryPoint); + } + + for (i = 0; i < n; i++) { + pe = &pe_image[i]; + + if (pe->type == IMAGE_FILE_DLL) { + struct unicode_string ustring; + char *buf = "0/0t0m0p00"; + int (*dll_entry)(struct unicode_string *ustring) + wstdcall; + + memset(&ustring, 0, sizeof(ustring)); + ustring.buf = (wchar_t *)buf; + dll_entry = (void *)get_dll_init(pe->name); + + TRACE1("calling dll_init at %p", dll_entry); + if (!dll_entry || dll_entry(&ustring)) + ERROR("DLL initialize failed for %s", + pe->name); + } + else if (pe->type != IMAGE_FILE_EXECUTABLE_IMAGE) + ERROR("illegal image type: %d", pe->type); + } + return 0; +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/ntoskernel.c +++ linux-2.6.35/ubuntu/ndiswrapper/ntoskernel.c @@ -0,0 +1,2683 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "ntoskernel.h" +#include "ndis.h" +#include "usb.h" +#include "pnp.h" +#include "loader.h" +#include "ntoskernel_exports.h" + +/* MDLs describe a range of virtual address with an array of physical + * pages right after the header. For different ranges of virtual + * addresses, the number of entries of physical pages may be different + * (depending on number of entries required). If we want to allocate + * MDLs from a pool, the size has to be constant. So we assume that + * maximum range used by a driver is MDL_CACHE_PAGES; if a driver + * requests an MDL for a bigger region, we allocate it with kmalloc; + * otherwise, we allocate from the pool */ + +#define MDL_CACHE_PAGES 3 +#define MDL_CACHE_SIZE (sizeof(struct mdl) + \ + (sizeof(PFN_NUMBER) * MDL_CACHE_PAGES)) +struct wrap_mdl { + struct nt_list list; + struct mdl mdl[0]; +}; + +/* everything here is for all drivers/devices - not per driver/device */ +static spinlock_t dispatcher_lock; +spinlock_t ntoskernel_lock; +static void *mdl_cache; +static struct nt_list wrap_mdl_list; + +static work_struct_t kdpc_work; +static void kdpc_worker(worker_param_t dummy); + +static struct nt_list kdpc_list; +static spinlock_t kdpc_list_lock; + +static struct nt_list callback_objects; + +struct nt_list object_list; + +struct bus_driver { + struct nt_list list; + char name[MAX_DRIVER_NAME_LEN]; + struct driver_object drv_obj; +}; + +static struct nt_list bus_driver_list; + +static work_struct_t ntos_work; +static struct nt_list ntos_work_list; +static spinlock_t ntos_work_lock; +static void ntos_work_worker(worker_param_t dummy); +static struct nt_thread *ntos_worker_thread; +spinlock_t irp_cancel_lock; +static NT_SPIN_LOCK nt_list_lock; +static struct nt_slist wrap_timer_slist; + +/* compute ticks (100ns) since 1601 until when system booted into + * wrap_ticks_to_boot */ +u64 wrap_ticks_to_boot; + +#if defined(CONFIG_X86_64) +static struct timer_list shared_data_timer; +struct kuser_shared_data kuser_shared_data; +static void update_user_shared_data_proc(unsigned long data); +#endif + +WIN_SYMBOL_MAP("KeTickCount", &jiffies) + +WIN_SYMBOL_MAP("NlsMbCodePageTag", FALSE) + +workqueue_struct_t *ntos_wq; + +#ifdef WRAP_PREEMPT +DEFINE_PER_CPU(irql_info_t, irql_info); +#endif + +#if defined(CONFIG_X86_64) +static void update_user_shared_data_proc(unsigned long data) +{ + /* timer is supposed to be scheduled every 10ms, but bigger + * intervals seem to work (tried upto 50ms) */ + *((ULONG64 *)&kuser_shared_data.system_time) = ticks_1601(); + *((ULONG64 *)&kuser_shared_data.interrupt_time) = + jiffies * TICKSPERSEC / HZ; + *((ULONG64 *)&kuser_shared_data.tick) = jiffies; + + mod_timer(&shared_data_timer, jiffies + MSEC_TO_HZ(30)); +} +#endif + +void *allocate_object(ULONG size, enum common_object_type type, + struct unicode_string *name) +{ + struct common_object_header *hdr; + void *body; + + /* we pad header as prefix to body */ + hdr = ExAllocatePoolWithTag(NonPagedPool, OBJECT_SIZE(size), 0); + if (!hdr) { + WARNING("couldn't allocate memory"); + return NULL; + } + memset(hdr, 0, OBJECT_SIZE(size)); + if (name) { + hdr->name.buf = ExAllocatePoolWithTag(NonPagedPool, + name->max_length, 0); + if (!hdr->name.buf) { + ExFreePool(hdr); + return NULL; + } + memcpy(hdr->name.buf, name->buf, name->max_length); + hdr->name.length = name->length; + hdr->name.max_length = name->max_length; + } + hdr->type = type; + hdr->ref_count = 1; + spin_lock_bh(&ntoskernel_lock); + /* threads are looked up often (in KeWaitForXXX), so optimize + * for fast lookups of threads */ + if (type == OBJECT_TYPE_NT_THREAD) + InsertHeadList(&object_list, &hdr->list); + else + InsertTailList(&object_list, &hdr->list); + spin_unlock_bh(&ntoskernel_lock); + body = HEADER_TO_OBJECT(hdr); + TRACE3("allocated hdr: %p, body: %p", hdr, body); + return body; +} + +void free_object(void *object) +{ + struct common_object_header *hdr; + + hdr = OBJECT_TO_HEADER(object); + spin_lock_bh(&ntoskernel_lock); + RemoveEntryList(&hdr->list); + spin_unlock_bh(&ntoskernel_lock); + TRACE3("freed hdr: %p, body: %p", hdr, object); + if (hdr->name.buf) + ExFreePool(hdr->name.buf); + ExFreePool(hdr); +} + +static int add_bus_driver(const char *name) +{ + struct bus_driver *bus_driver; + + bus_driver = kzalloc(sizeof(*bus_driver), GFP_KERNEL); + if (!bus_driver) { + ERROR("couldn't allocate memory"); + return -ENOMEM; + } + strncpy(bus_driver->name, name, sizeof(bus_driver->name)); + bus_driver->name[sizeof(bus_driver->name)-1] = 0; + spin_lock_bh(&ntoskernel_lock); + InsertTailList(&bus_driver_list, &bus_driver->list); + spin_unlock_bh(&ntoskernel_lock); + TRACE1("bus driver %s is at %p", name, &bus_driver->drv_obj); + return STATUS_SUCCESS; +} + +struct driver_object *find_bus_driver(const char *name) +{ + struct bus_driver *bus_driver; + struct driver_object *drv_obj; + + spin_lock_bh(&ntoskernel_lock); + drv_obj = NULL; + nt_list_for_each_entry(bus_driver, &bus_driver_list, list) { + if (strcmp(bus_driver->name, name) == 0) { + drv_obj = &bus_driver->drv_obj; + break; + } + } + spin_unlock_bh(&ntoskernel_lock); + return drv_obj; +} + +wfastcall struct nt_list *WIN_FUNC(ExfInterlockedInsertHeadList,3) + (struct nt_list *head, struct nt_list *entry, NT_SPIN_LOCK *lock) +{ + struct nt_list *first; + unsigned long flags; + + ENTER5("head = %p, entry = %p", head, entry); + nt_spin_lock_irqsave(lock, flags); + first = InsertHeadList(head, entry); + nt_spin_unlock_irqrestore(lock, flags); + TRACE5("head = %p, old = %p", head, first); + return first; +} + +wfastcall struct nt_list *WIN_FUNC(ExInterlockedInsertHeadList,3) + (struct nt_list *head, struct nt_list *entry, NT_SPIN_LOCK *lock) +{ + ENTER5("%p", head); + return ExfInterlockedInsertHeadList(head, entry, lock); +} + +wfastcall struct nt_list *WIN_FUNC(ExfInterlockedInsertTailList,3) + (struct nt_list *head, struct nt_list *entry, NT_SPIN_LOCK *lock) +{ + struct nt_list *last; + unsigned long flags; + + ENTER5("head = %p, entry = %p", head, entry); + nt_spin_lock_irqsave(lock, flags); + last = InsertTailList(head, entry); + nt_spin_unlock_irqrestore(lock, flags); + TRACE5("head = %p, old = %p", head, last); + return last; +} + +wfastcall struct nt_list *WIN_FUNC(ExInterlockedInsertTailList,3) + (struct nt_list *head, struct nt_list *entry, NT_SPIN_LOCK *lock) +{ + ENTER5("%p", head); + return ExfInterlockedInsertTailList(head, entry, lock); +} + +wfastcall struct nt_list *WIN_FUNC(ExfInterlockedRemoveHeadList,2) + (struct nt_list *head, NT_SPIN_LOCK *lock) +{ + struct nt_list *ret; + unsigned long flags; + + ENTER5("head = %p", head); + nt_spin_lock_irqsave(lock, flags); + ret = RemoveHeadList(head); + nt_spin_unlock_irqrestore(lock, flags); + TRACE5("head = %p, ret = %p", head, ret); + return ret; +} + +wfastcall struct nt_list *WIN_FUNC(ExInterlockedRemoveHeadList,2) + (struct nt_list *head, NT_SPIN_LOCK *lock) +{ + ENTER5("%p", head); + return ExfInterlockedRemoveHeadList(head, lock); +} + +wfastcall struct nt_list *WIN_FUNC(ExfInterlockedRemoveTailList,2) + (struct nt_list *head, NT_SPIN_LOCK *lock) +{ + struct nt_list *ret; + unsigned long flags; + + ENTER5("head = %p", head); + nt_spin_lock_irqsave(lock, flags); + ret = RemoveTailList(head); + nt_spin_unlock_irqrestore(lock, flags); + TRACE5("head = %p, ret = %p", head, ret); + return ret; +} + +wfastcall struct nt_list *WIN_FUNC(ExInterlockedRemoveTailList,2) + (struct nt_list *head, NT_SPIN_LOCK *lock) +{ + ENTER5("%p", head); + return ExfInterlockedRemoveTailList(head, lock); +} + +wfastcall void WIN_FUNC(InitializeSListHead,1) + (nt_slist_header *head) +{ + memset(head, 0, sizeof(*head)); +} + +wfastcall struct nt_slist *WIN_FUNC(ExInterlockedPushEntrySList,3) + (nt_slist_header *head, struct nt_slist *entry, NT_SPIN_LOCK *lock) +{ + struct nt_slist *ret; + + ret = PushEntrySList(head, entry, lock); + return ret; +} + +wstdcall struct nt_slist *WIN_FUNC(ExpInterlockedPushEntrySList,2) + (nt_slist_header *head, struct nt_slist *entry) +{ + struct nt_slist *ret; + + ret = PushEntrySList(head, entry, &nt_list_lock); + return ret; +} + +wfastcall struct nt_slist *WIN_FUNC(InterlockedPushEntrySList,2) + (nt_slist_header *head, struct nt_slist *entry) +{ + struct nt_slist *ret; + + ret = PushEntrySList(head, entry, &nt_list_lock); + return ret; +} + +wfastcall struct nt_slist *WIN_FUNC(ExInterlockedPopEntrySList,2) + (nt_slist_header *head, NT_SPIN_LOCK *lock) +{ + struct nt_slist *ret; + + ret = PopEntrySList(head, lock); + return ret; +} + +wstdcall struct nt_slist *WIN_FUNC(ExpInterlockedPopEntrySList,1) + (nt_slist_header *head) +{ + struct nt_slist *ret; + + ret = PopEntrySList(head, &nt_list_lock); + return ret; +} + +wfastcall struct nt_slist *WIN_FUNC(InterlockedPopEntrySList,1) + (nt_slist_header *head) +{ + struct nt_slist *ret; + + ret = PopEntrySList(head, &nt_list_lock); + return ret; +} + +wstdcall USHORT WIN_FUNC(ExQueryDepthSList,1) + (nt_slist_header *head) +{ + USHORT depth; + ENTER5("%p", head); + depth = head->depth; + TRACE5("%d, %p", depth, head->next); + return depth; +} + +wfastcall LONG WIN_FUNC(InterlockedIncrement,1) + (LONG volatile *val) +{ + return post_atomic_add(*val, 1); +} + +wfastcall LONG WIN_FUNC(InterlockedDecrement,1) + (LONG volatile *val) +{ + return post_atomic_add(*val, -1); +} + +wfastcall LONG WIN_FUNC(InterlockedExchange,2) + (LONG volatile *target, LONG val) +{ + return xchg(target, val); +} + +wfastcall LONG WIN_FUNC(InterlockedCompareExchange,3) + (LONG volatile *dest, LONG new, LONG old) +{ + return cmpxchg(dest, old, new); +} + +wfastcall void WIN_FUNC(ExInterlockedAddLargeStatistic,2) + (LARGE_INTEGER volatile *plint, ULONG n) +{ + unsigned long flags; + + local_irq_save(flags); +#ifdef CONFIG_X86_64 + __asm__ __volatile__( + "\n" + LOCK_PREFIX "add %1, %0\n\t" + : "+m" (*plint) + : "r" (n)); +#else + __asm__ __volatile__( + "1:\t" + " movl %1, %%ebx\n\t" + " movl %%edx, %%ecx\n\t" + " addl %%eax, %%ebx\n\t" + " adcl $0, %%ecx\n\t" + LOCK_PREFIX "cmpxchg8b %0\n\t" + " jnz 1b\n\t" + : "+m" (*plint) + : "m" (n), "A" (*plint) + : "ebx", "ecx"); +#endif + local_irq_restore(flags); +} + +static void initialize_object(struct dispatcher_header *dh, enum dh_type type, + int state) +{ + memset(dh, 0, sizeof(*dh)); + set_object_type(dh, type); + dh->signal_state = state; + InitializeListHead(&dh->wait_blocks); +} + +static void timer_proc(unsigned long data) +{ + struct wrap_timer *wrap_timer = (struct wrap_timer *)data; + struct nt_timer *nt_timer; + struct kdpc *kdpc; + + nt_timer = wrap_timer->nt_timer; + TIMERENTER("%p(%p), %lu", wrap_timer, nt_timer, jiffies); +#ifdef TIMER_DEBUG + BUG_ON(wrap_timer->wrap_timer_magic != WRAP_TIMER_MAGIC); + BUG_ON(nt_timer->wrap_timer_magic != WRAP_TIMER_MAGIC); +#endif + KeSetEvent((struct nt_event *)nt_timer, 0, FALSE); + if (wrap_timer->repeat) + mod_timer(&wrap_timer->timer, jiffies + wrap_timer->repeat); + kdpc = nt_timer->kdpc; + if (kdpc) + queue_kdpc(kdpc); + TIMEREXIT(return); +} + +void wrap_init_timer(struct nt_timer *nt_timer, enum timer_type type, + struct ndis_mp_block *nmb) +{ + struct wrap_timer *wrap_timer; + + /* TODO: if a timer is initialized more than once, we allocate + * memory for wrap_timer more than once for the same nt_timer, + * wasting memory. We can check if nt_timer->wrap_timer_magic is + * set and not allocate, but it is not guaranteed always to be + * safe */ + TIMERENTER("%p", nt_timer); + /* we allocate memory for wrap_timer behind driver's back and + * there is no NDIS/DDK function where this memory can be + * freed, so we use slack_kmalloc so it gets freed when driver + * is unloaded */ + if (nmb) + wrap_timer = kmalloc(sizeof(*wrap_timer), irql_gfp()); + else + wrap_timer = slack_kmalloc(sizeof(*wrap_timer)); + if (!wrap_timer) { + ERROR("couldn't allocate memory for timer"); + return; + } + + memset(wrap_timer, 0, sizeof(*wrap_timer)); + init_timer(&wrap_timer->timer); + wrap_timer->timer.data = (unsigned long)wrap_timer; + wrap_timer->timer.function = timer_proc; + wrap_timer->nt_timer = nt_timer; +#ifdef TIMER_DEBUG + wrap_timer->wrap_timer_magic = WRAP_TIMER_MAGIC; +#endif + nt_timer->wrap_timer = wrap_timer; + nt_timer->kdpc = NULL; + initialize_object(&nt_timer->dh, type, 0); + nt_timer->wrap_timer_magic = WRAP_TIMER_MAGIC; + TIMERTRACE("timer %p (%p)", wrap_timer, nt_timer); + spin_lock_bh(&ntoskernel_lock); + if (nmb) { + wrap_timer->slist.next = nmb->wnd->wrap_timer_slist.next; + nmb->wnd->wrap_timer_slist.next = &wrap_timer->slist; + } else { + wrap_timer->slist.next = wrap_timer_slist.next; + wrap_timer_slist.next = &wrap_timer->slist; + } + spin_unlock_bh(&ntoskernel_lock); + TIMEREXIT(return); +} + +wstdcall void WIN_FUNC(KeInitializeTimerEx,2) + (struct nt_timer *nt_timer, enum timer_type type) +{ + TIMERENTER("%p", nt_timer); + wrap_init_timer(nt_timer, type, NULL); +} + +wstdcall void WIN_FUNC(KeInitializeTimer,1) + (struct nt_timer *nt_timer) +{ + TIMERENTER("%p", nt_timer); + wrap_init_timer(nt_timer, NotificationTimer, NULL); +} + +/* expires and repeat are in HZ */ +BOOLEAN wrap_set_timer(struct nt_timer *nt_timer, unsigned long expires_hz, + unsigned long repeat_hz, struct kdpc *kdpc) +{ + struct wrap_timer *wrap_timer; + + TIMERENTER("%p, %lu, %lu, %p, %lu", + nt_timer, expires_hz, repeat_hz, kdpc, jiffies); + + wrap_timer = nt_timer->wrap_timer; + TIMERTRACE("%p", wrap_timer); +#ifdef TIMER_DEBUG + if (wrap_timer->nt_timer != nt_timer) + WARNING("bad timers: %p, %p, %p", wrap_timer, nt_timer, + wrap_timer->nt_timer); + if (nt_timer->wrap_timer_magic != WRAP_TIMER_MAGIC) { + WARNING("buggy Windows timer didn't initialize timer %p", + nt_timer); + return FALSE; + } + if (wrap_timer->wrap_timer_magic != WRAP_TIMER_MAGIC) { + WARNING("timer %p is not initialized (%lx)?", + wrap_timer, wrap_timer->wrap_timer_magic); + wrap_timer->wrap_timer_magic = WRAP_TIMER_MAGIC; + } +#endif + KeClearEvent((struct nt_event *)nt_timer); + nt_timer->kdpc = kdpc; + wrap_timer->repeat = repeat_hz; + if (mod_timer(&wrap_timer->timer, jiffies + expires_hz)) + TIMEREXIT(return TRUE); + else + TIMEREXIT(return FALSE); +} + +wstdcall BOOLEAN WIN_FUNC(KeSetTimerEx,4) + (struct nt_timer *nt_timer, LARGE_INTEGER duetime_ticks, + LONG period_ms, struct kdpc *kdpc) +{ + unsigned long expires_hz, repeat_hz; + + TIMERENTER("%p, %Ld, %d", nt_timer, duetime_ticks, period_ms); + expires_hz = SYSTEM_TIME_TO_HZ(duetime_ticks); + repeat_hz = MSEC_TO_HZ(period_ms); + return wrap_set_timer(nt_timer, expires_hz, repeat_hz, kdpc); +} + +wstdcall BOOLEAN WIN_FUNC(KeSetTimer,3) + (struct nt_timer *nt_timer, LARGE_INTEGER duetime_ticks, + struct kdpc *kdpc) +{ + TIMERENTER("%p, %Ld, %p", nt_timer, duetime_ticks, kdpc); + return KeSetTimerEx(nt_timer, duetime_ticks, 0, kdpc); +} + +wstdcall BOOLEAN WIN_FUNC(KeCancelTimer,1) + (struct nt_timer *nt_timer) +{ + struct wrap_timer *wrap_timer; + int ret; + + TIMERENTER("%p", nt_timer); + wrap_timer = nt_timer->wrap_timer; + if (!wrap_timer) { + ERROR("invalid wrap_timer"); + return TRUE; + } +#ifdef TIMER_DEBUG + BUG_ON(wrap_timer->wrap_timer_magic != WRAP_TIMER_MAGIC); +#endif + /* disable timer before deleting so if it is periodic timer, it + * won't be re-armed after deleting */ + wrap_timer->repeat = 0; + ret = del_timer_sync(&wrap_timer->timer); + /* the documentation for KeCancelTimer suggests the DPC is + * deqeued, but actually DPC is left to run */ + if (ret) + TIMEREXIT(return TRUE); + else + TIMEREXIT(return FALSE); +} + +wstdcall BOOLEAN WIN_FUNC(KeReadStateTimer,1) + (struct nt_timer *nt_timer) +{ + if (nt_timer->dh.signal_state) + return TRUE; + else + return FALSE; +} + +wstdcall void WIN_FUNC(KeInitializeDpc,3) + (struct kdpc *kdpc, void *func, void *ctx) +{ + ENTER3("%p, %p, %p", kdpc, func, ctx); + memset(kdpc, 0, sizeof(*kdpc)); + kdpc->func = func; + kdpc->ctx = ctx; + InitializeListHead(&kdpc->list); +} + +static void kdpc_worker(worker_param_t dummy) +{ + struct nt_list *entry; + struct kdpc *kdpc; + unsigned long flags; + KIRQL irql; + + WORKENTER(""); + irql = raise_irql(DISPATCH_LEVEL); + while (1) { + spin_lock_irqsave(&kdpc_list_lock, flags); + entry = RemoveHeadList(&kdpc_list); + if (entry) { + kdpc = container_of(entry, struct kdpc, list); + assert(kdpc->queued); + kdpc->queued = 0; + } else + kdpc = NULL; + spin_unlock_irqrestore(&kdpc_list_lock, flags); + if (!kdpc) + break; + WORKTRACE("%p, %p, %p, %p, %p", kdpc, kdpc->func, kdpc->ctx, + kdpc->arg1, kdpc->arg2); + assert_irql(_irql_ == DISPATCH_LEVEL); + LIN2WIN4(kdpc->func, kdpc, kdpc->ctx, kdpc->arg1, kdpc->arg2); + assert_irql(_irql_ == DISPATCH_LEVEL); + } + lower_irql(irql); + WORKEXIT(return); +} + +wstdcall void WIN_FUNC(KeFlushQueuedDpcs,0) + (void) +{ + kdpc_worker(NULL); +} + +BOOLEAN queue_kdpc(struct kdpc *kdpc) +{ + BOOLEAN ret; + unsigned long flags; + + WORKENTER("%p", kdpc); + spin_lock_irqsave(&kdpc_list_lock, flags); + if (kdpc->queued) + ret = FALSE; + else { + if (unlikely(kdpc->importance == HighImportance)) + InsertHeadList(&kdpc_list, &kdpc->list); + else + InsertTailList(&kdpc_list, &kdpc->list); + kdpc->queued = 1; + ret = TRUE; + } + spin_unlock_irqrestore(&kdpc_list_lock, flags); + if (ret == TRUE) + schedule_ntos_work(&kdpc_work); + WORKTRACE("%d", ret); + return ret; +} + +BOOLEAN dequeue_kdpc(struct kdpc *kdpc) +{ + BOOLEAN ret; + unsigned long flags; + + WORKENTER("%p", kdpc); + spin_lock_irqsave(&kdpc_list_lock, flags); + if (kdpc->queued) { + RemoveEntryList(&kdpc->list); + kdpc->queued = 0; + ret = TRUE; + } else + ret = FALSE; + spin_unlock_irqrestore(&kdpc_list_lock, flags); + WORKTRACE("%d", ret); + return ret; +} + +wstdcall BOOLEAN WIN_FUNC(KeInsertQueueDpc,3) + (struct kdpc *kdpc, void *arg1, void *arg2) +{ + WORKENTER("%p, %p, %p", kdpc, arg1, arg2); + kdpc->arg1 = arg1; + kdpc->arg2 = arg2; + return queue_kdpc(kdpc); +} + +wstdcall BOOLEAN WIN_FUNC(KeRemoveQueueDpc,1) + (struct kdpc *kdpc) +{ + return dequeue_kdpc(kdpc); +} + +wstdcall void WIN_FUNC(KeSetImportanceDpc,2) + (struct kdpc *kdpc, enum kdpc_importance importance) +{ + kdpc->importance = importance; +} + +static void ntos_work_worker(worker_param_t dummy) +{ + struct ntos_work_item *ntos_work_item; + struct nt_list *cur; + + while (1) { + spin_lock_bh(&ntos_work_lock); + cur = RemoveHeadList(&ntos_work_list); + spin_unlock_bh(&ntos_work_lock); + if (!cur) + break; + ntos_work_item = container_of(cur, struct ntos_work_item, list); + WORKTRACE("%p: executing %p, %p, %p", current, + ntos_work_item->func, ntos_work_item->arg1, + ntos_work_item->arg2); + LIN2WIN2(ntos_work_item->func, ntos_work_item->arg1, + ntos_work_item->arg2); + kfree(ntos_work_item); + } + WORKEXIT(return); +} + +int schedule_ntos_work_item(NTOS_WORK_FUNC func, void *arg1, void *arg2) +{ + struct ntos_work_item *ntos_work_item; + + WORKENTER("adding work: %p, %p, %p", func, arg1, arg2); + ntos_work_item = kmalloc(sizeof(*ntos_work_item), irql_gfp()); + if (!ntos_work_item) { + ERROR("couldn't allocate memory"); + return -ENOMEM; + } + ntos_work_item->func = func; + ntos_work_item->arg1 = arg1; + ntos_work_item->arg2 = arg2; + spin_lock_bh(&ntos_work_lock); + InsertTailList(&ntos_work_list, &ntos_work_item->list); + spin_unlock_bh(&ntos_work_lock); + schedule_ntos_work(&ntos_work); + WORKEXIT(return 0); +} + +wstdcall void WIN_FUNC(KeInitializeSpinLock,1) + (NT_SPIN_LOCK *lock) +{ + ENTER6("%p", lock); + nt_spin_lock_init(lock); +} + +wstdcall void WIN_FUNC(KeAcquireSpinLock,2) + (NT_SPIN_LOCK *lock, KIRQL *irql) +{ + ENTER6("%p", lock); + *irql = nt_spin_lock_irql(lock, DISPATCH_LEVEL); +} + +wstdcall void WIN_FUNC(KeReleaseSpinLock,2) + (NT_SPIN_LOCK *lock, KIRQL oldirql) +{ + ENTER6("%p", lock); + nt_spin_unlock_irql(lock, oldirql); +} + +wstdcall void WIN_FUNC(KeAcquireSpinLockAtDpcLevel,1) + (NT_SPIN_LOCK *lock) +{ + ENTER6("%p", lock); + nt_spin_lock(lock); +} + +wstdcall void WIN_FUNC(KeReleaseSpinLockFromDpcLevel,1) + (NT_SPIN_LOCK *lock) +{ + ENTER6("%p", lock); + nt_spin_unlock(lock); +} + +wstdcall void WIN_FUNC(KeRaiseIrql,2) + (KIRQL newirql, KIRQL *oldirql) +{ + ENTER6("%d", newirql); + *oldirql = raise_irql(newirql); +} + +wstdcall KIRQL WIN_FUNC(KeRaiseIrqlToDpcLevel,0) + (void) +{ + return raise_irql(DISPATCH_LEVEL); +} + +wstdcall void WIN_FUNC(KeLowerIrql,1) + (KIRQL irql) +{ + ENTER6("%d", irql); + lower_irql(irql); +} + +wstdcall KIRQL WIN_FUNC(KeAcquireSpinLockRaiseToDpc,1) + (NT_SPIN_LOCK *lock) +{ + ENTER6("%p", lock); + return nt_spin_lock_irql(lock, DISPATCH_LEVEL); +} + +#undef ExAllocatePoolWithTag + +wstdcall void *WIN_FUNC(ExAllocatePoolWithTag,3) + (enum pool_type pool_type, SIZE_T size, ULONG tag) +{ + void *addr; + + ENTER4("pool_type: %d, size: %lu, tag: 0x%x", pool_type, size, tag); + assert_irql(_irql_ <= DISPATCH_LEVEL); + if (size < PAGE_SIZE) + addr = kmalloc(size, irql_gfp()); + else { + if (irql_gfp() & GFP_ATOMIC) { + addr = __vmalloc(size, GFP_ATOMIC | __GFP_HIGHMEM, + PAGE_KERNEL); + TRACE1("%p, %lu", addr, size); + } else { + addr = vmalloc(size); + TRACE1("%p, %lu", addr, size); + } + } + DBG_BLOCK(1) { + if (addr) + TRACE4("addr: %p, %lu", addr, size); + else + TRACE1("failed: %lu", size); + } + return addr; +} +WIN_FUNC_DECL(ExAllocatePoolWithTag,3) + +wstdcall void WIN_FUNC(ExFreePoolWithTag,2) + (void *addr, ULONG tag) +{ + TRACE4("%p", addr); + if ((unsigned long)addr < VMALLOC_START || + (unsigned long)addr >= VMALLOC_END) + kfree(addr); + else + vfree(addr); + + EXIT4(return); +} + +wstdcall void WIN_FUNC(ExFreePool,1) + (void *addr) +{ + ExFreePoolWithTag(addr, 0); +} +WIN_FUNC_DECL(ExFreePool,1) + +wstdcall void WIN_FUNC(ExInitializeNPagedLookasideList,7) + (struct npaged_lookaside_list *lookaside, + LOOKASIDE_ALLOC_FUNC *alloc_func, LOOKASIDE_FREE_FUNC *free_func, + ULONG flags, SIZE_T size, ULONG tag, USHORT depth) +{ + ENTER3("lookaside: %p, size: %lu, flags: %u, head: %p, " + "alloc: %p, free: %p", lookaside, size, flags, + lookaside, alloc_func, free_func); + + memset(lookaside, 0, sizeof(*lookaside)); + + lookaside->size = size; + lookaside->tag = tag; + lookaside->depth = 4; + lookaside->maxdepth = 256; + lookaside->pool_type = NonPagedPool; + + if (alloc_func) + lookaside->alloc_func = alloc_func; + else + lookaside->alloc_func = WIN_FUNC_PTR(ExAllocatePoolWithTag,3); + if (free_func) + lookaside->free_func = free_func; + else + lookaside->free_func = WIN_FUNC_PTR(ExFreePool,1); + +#ifndef CONFIG_X86_64 + nt_spin_lock_init(&lookaside->obsolete); +#endif + EXIT3(return); +} + +wstdcall void WIN_FUNC(ExDeleteNPagedLookasideList,1) + (struct npaged_lookaside_list *lookaside) +{ + struct nt_slist *entry; + + ENTER3("lookaside = %p", lookaside); + while ((entry = ExpInterlockedPopEntrySList(&lookaside->head))) + LIN2WIN1(lookaside->free_func, entry); + EXIT3(return); +} + +#if defined(ALLOC_DEBUG) && ALLOC_DEBUG > 1 +#define ExAllocatePoolWithTag(pool_type, size, tag) \ + wrap_ExAllocatePoolWithTag(pool_type, size, tag, __FILE__, __LINE__) +#endif + +wstdcall NTSTATUS WIN_FUNC(ExCreateCallback,4) + (struct callback_object **object, struct object_attributes *attributes, + BOOLEAN create, BOOLEAN allow_multiple_callbacks) +{ + struct callback_object *obj; + + ENTER2(""); + spin_lock_bh(&ntoskernel_lock); + nt_list_for_each_entry(obj, &callback_objects, callback_funcs) { + if (obj->attributes == attributes) { + spin_unlock_bh(&ntoskernel_lock); + *object = obj; + return STATUS_SUCCESS; + } + } + spin_unlock_bh(&ntoskernel_lock); + obj = allocate_object(sizeof(struct callback_object), + OBJECT_TYPE_CALLBACK, NULL); + if (!obj) + EXIT2(return STATUS_INSUFFICIENT_RESOURCES); + InitializeListHead(&obj->callback_funcs); + nt_spin_lock_init(&obj->lock); + obj->allow_multiple_callbacks = allow_multiple_callbacks; + obj->attributes = attributes; + *object = obj; + EXIT2(return STATUS_SUCCESS); +} + +wstdcall void *WIN_FUNC(ExRegisterCallback,3) + (struct callback_object *object, PCALLBACK_FUNCTION func, void *context) +{ + struct callback_func *callback; + KIRQL irql; + + ENTER2(""); + irql = nt_spin_lock_irql(&object->lock, DISPATCH_LEVEL); + if (object->allow_multiple_callbacks == FALSE && + !IsListEmpty(&object->callback_funcs)) { + nt_spin_unlock_irql(&object->lock, irql); + EXIT2(return NULL); + } + nt_spin_unlock_irql(&object->lock, irql); + callback = kmalloc(sizeof(*callback), GFP_KERNEL); + if (!callback) { + ERROR("couldn't allocate memory"); + return NULL; + } + callback->func = func; + callback->context = context; + callback->object = object; + irql = nt_spin_lock_irql(&object->lock, DISPATCH_LEVEL); + InsertTailList(&object->callback_funcs, &callback->list); + nt_spin_unlock_irql(&object->lock, irql); + EXIT2(return callback); +} + +wstdcall void WIN_FUNC(ExUnregisterCallback,1) + (struct callback_func *callback) +{ + struct callback_object *object; + KIRQL irql; + + ENTER3("%p", callback); + if (!callback) + return; + object = callback->object; + irql = nt_spin_lock_irql(&object->lock, DISPATCH_LEVEL); + RemoveEntryList(&callback->list); + nt_spin_unlock_irql(&object->lock, irql); + kfree(callback); + return; +} + +wstdcall void WIN_FUNC(ExNotifyCallback,3) + (struct callback_object *object, void *arg1, void *arg2) +{ + struct callback_func *callback; + KIRQL irql; + + ENTER3("%p", object); + irql = nt_spin_lock_irql(&object->lock, DISPATCH_LEVEL); + nt_list_for_each_entry(callback, &object->callback_funcs, list) { + LIN2WIN3(callback->func, callback->context, arg1, arg2); + } + nt_spin_unlock_irql(&object->lock, irql); + return; +} + +/* check and set signaled state; should be called with dispatcher_lock held */ +/* @grab indicates if the event should be grabbed or checked + * - note that a semaphore may stay in signaled state for multiple + * 'grabs' if the count is > 1 */ +static int grab_object(struct dispatcher_header *dh, + struct task_struct *thread, int grab) +{ + EVENTTRACE("%p, %p, %d, %d", dh, thread, grab, dh->signal_state); + if (unlikely(is_mutex_object(dh))) { + struct nt_mutex *nt_mutex; + nt_mutex = container_of(dh, struct nt_mutex, dh); + EVENTTRACE("%p, %p, %d, %p, %d", nt_mutex, + nt_mutex->owner_thread, dh->signal_state, + thread, grab); + /* either no thread owns the mutex or this thread owns + * it */ + assert(dh->signal_state == 1 && nt_mutex->owner_thread == NULL); + assert(dh->signal_state < 1 && nt_mutex->owner_thread != NULL); + if ((dh->signal_state == 1 && nt_mutex->owner_thread == NULL) || + nt_mutex->owner_thread == thread) { + if (grab) { + dh->signal_state--; + nt_mutex->owner_thread = thread; + } + EVENTEXIT(return 1); + } + } else if (dh->signal_state > 0) { + /* to grab, decrement signal_state for synchronization + * or semaphore objects */ + if (grab && (is_synch_object(dh) || is_semaphore_object(dh))) + dh->signal_state--; + EVENTEXIT(return 1); + } + EVENTEXIT(return 0); +} + +/* this function should be called holding dispatcher_lock */ +static void object_signalled(struct dispatcher_header *dh) +{ + struct nt_list *cur, *next; + struct wait_block *wb; + + EVENTENTER("%p", dh); + nt_list_for_each_safe(cur, next, &dh->wait_blocks) { + wb = container_of(cur, struct wait_block, list); + assert(wb->thread != NULL); + assert(wb->object == NULL); + if (!grab_object(dh, wb->thread, 1)) + continue; + EVENTTRACE("%p (%p): waking %p", dh, wb, wb->thread); + RemoveEntryList(cur); + wb->object = dh; + *(wb->wait_done) = 1; + wake_up_process(wb->thread); + } + EVENTEXIT(return); +} + +wstdcall NTSTATUS WIN_FUNC(KeWaitForMultipleObjects,8) + (ULONG count, void *object[], enum wait_type wait_type, + KWAIT_REASON wait_reason, KPROCESSOR_MODE wait_mode, + BOOLEAN alertable, LARGE_INTEGER *timeout, + struct wait_block *wait_block_array) +{ + int i, res = 0, wait_count, wait_done; + typeof(jiffies) wait_hz = 0; + struct wait_block *wb, wb_array[THREAD_WAIT_OBJECTS]; + struct dispatcher_header *dh; + + EVENTENTER("%p, %d, %u, %p", current, count, wait_type, timeout); + + if (count > MAX_WAIT_OBJECTS || + (count > THREAD_WAIT_OBJECTS && wait_block_array == NULL)) + EVENTEXIT(return STATUS_INVALID_PARAMETER); + + if (wait_block_array == NULL) + wb = wb_array; + else + wb = wait_block_array; + + /* If *timeout == 0: In the case of WaitAny, if an object can + * be grabbed (object is in signaled state), grab and + * return. In the case of WaitAll, we have to first make sure + * all objects can be grabbed. If any/some of them can't be + * grabbed, either we return STATUS_TIMEOUT or wait for them, + * depending on how to satisfy wait. If all of them can be + * grabbed, we will grab them in the next loop below */ + + spin_lock_bh(&dispatcher_lock); + for (i = wait_count = 0; i < count; i++) { + dh = object[i]; + EVENTTRACE("%p: event %p (%d)", current, dh, dh->signal_state); + /* wait_type == 1 for WaitAny, 0 for WaitAll */ + if (grab_object(dh, current, wait_type)) { + if (wait_type == WaitAny) { + spin_unlock_bh(&dispatcher_lock); + EVENTEXIT(return STATUS_WAIT_0 + i); + } + } else { + EVENTTRACE("%p: wait for %p", current, dh); + wait_count++; + } + } + + if (timeout && *timeout == 0 && wait_count) { + spin_unlock_bh(&dispatcher_lock); + EVENTEXIT(return STATUS_TIMEOUT); + } + + /* get the list of objects the thread needs to wait on and add + * the thread on the wait list for each such object */ + /* if *timeout == 0, this step will grab all the objects */ + wait_done = 0; + for (i = 0; i < count; i++) { + dh = object[i]; + EVENTTRACE("%p: event %p (%d)", current, dh, dh->signal_state); + wb[i].object = NULL; + if (grab_object(dh, current, 1)) { + EVENTTRACE("%p: no wait for %p (%d)", + current, dh, dh->signal_state); + /* mark that we are not waiting on this object */ + wb[i].thread = NULL; + } else { + wb[i].wait_done = &wait_done; + wb[i].thread = current; + EVENTTRACE("%p: wait for %p", current, dh); + InsertTailList(&dh->wait_blocks, &wb[i].list); + } + } + spin_unlock_bh(&dispatcher_lock); + if (wait_count == 0) + EVENTEXIT(return STATUS_SUCCESS); + + assert(timeout == NULL || *timeout != 0); + if (timeout == NULL) + wait_hz = 0; + else + wait_hz = SYSTEM_TIME_TO_HZ(*timeout); + + DBG_BLOCK(2) { + KIRQL irql = current_irql(); + if (irql >= DISPATCH_LEVEL) { + TRACE2("wait in atomic context: %lu, %d, %ld", + wait_hz, in_atomic(), in_interrupt()); + } + } + assert_irql(_irql_ < DISPATCH_LEVEL); + EVENTTRACE("%p: sleep for %ld on %p", current, wait_hz, &wait_done); + /* we don't honor 'alertable' - according to decription for + * this, even if waiting in non-alertable state, thread may be + * alerted in some circumstances */ + while (wait_count) { + res = wait_condition(wait_done, wait_hz, TASK_INTERRUPTIBLE); + spin_lock_bh(&dispatcher_lock); + EVENTTRACE("%p woke up: %d, %d", current, res, wait_done); + /* the event may have been set by the time + * wrap_wait_event returned and spinlock obtained, so + * don't rely on value of 'res' - check event status */ + if (!wait_done) { + assert(res <= 0); + /* timed out or interrupted; remove from wait list */ + for (i = 0; i < count; i++) { + if (!wb[i].thread) + continue; + EVENTTRACE("%p: timedout, dequeue %p (%p)", + current, object[i], wb[i].object); + assert(wb[i].object == NULL); + RemoveEntryList(&wb[i].list); + } + spin_unlock_bh(&dispatcher_lock); + if (res < 0) + EVENTEXIT(return STATUS_ALERTED); + else + EVENTEXIT(return STATUS_TIMEOUT); + } + assert(res > 0); + /* woken because object(s) signalled */ + for (i = 0; wait_count && i < count; i++) { + if (!wb[i].thread || !wb[i].object) + continue; + DBG_BLOCK(1) { + if (wb[i].object != object[i]) { + EVENTTRACE("oops %p != %p", + wb[i].object, object[i]); + continue; + } + } + wait_count--; + if (wait_type == WaitAny) { + int j; + /* done; remove from rest of wait list */ + for (j = i + 1; j < count; j++) { + if (wb[j].thread && !wb[j].object) + RemoveEntryList(&wb[j].list); + } + spin_unlock_bh(&dispatcher_lock); + EVENTEXIT(return STATUS_WAIT_0 + i); + } + } + wait_done = 0; + spin_unlock_bh(&dispatcher_lock); + if (wait_count == 0) + EVENTEXIT(return STATUS_SUCCESS); + + /* this thread is still waiting for more objects, so + * let it wait for remaining time and those objects */ + if (timeout) + wait_hz = res; + else + wait_hz = 0; + } + /* should never reach here, but compiler wants return value */ + ERROR("%p: wait_hz: %ld", current, wait_hz); + EVENTEXIT(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(KeWaitForSingleObject,5) + (void *object, KWAIT_REASON wait_reason, KPROCESSOR_MODE wait_mode, + BOOLEAN alertable, LARGE_INTEGER *timeout) +{ + return KeWaitForMultipleObjects(1, &object, WaitAny, wait_reason, + wait_mode, alertable, timeout, NULL); +} + +wstdcall void WIN_FUNC(KeInitializeEvent,3) + (struct nt_event *nt_event, enum event_type type, BOOLEAN state) +{ + EVENTENTER("event = %p, type = %d, state = %d", nt_event, type, state); + initialize_object(&nt_event->dh, type, state); + EVENTEXIT(return); +} + +wstdcall LONG WIN_FUNC(KeSetEvent,3) + (struct nt_event *nt_event, KPRIORITY incr, BOOLEAN wait) +{ + LONG old_state; + + EVENTENTER("%p, %d", nt_event, nt_event->dh.type); + if (wait == TRUE) + WARNING("wait = %d, not yet implemented", wait); + spin_lock_bh(&dispatcher_lock); + old_state = nt_event->dh.signal_state; + nt_event->dh.signal_state = 1; + if (old_state == 0) + object_signalled(&nt_event->dh); + spin_unlock_bh(&dispatcher_lock); + EVENTEXIT(return old_state); +} + +wstdcall void WIN_FUNC(KeClearEvent,1) + (struct nt_event *nt_event) +{ + EVENTENTER("%p", nt_event); + nt_event->dh.signal_state = 0; + EVENTEXIT(return); +} + +wstdcall LONG WIN_FUNC(KeResetEvent,1) + (struct nt_event *nt_event) +{ + LONG old_state; + + EVENTENTER("%p", nt_event); + old_state = xchg(&nt_event->dh.signal_state, 0); + EVENTEXIT(return old_state); +} + +wstdcall LONG WIN_FUNC(KeReadStateEvent,1) + (struct nt_event *nt_event) +{ + LONG state; + + state = nt_event->dh.signal_state; + EVENTTRACE("%d", state); + return state; +} + +wstdcall void WIN_FUNC(KeInitializeMutex,2) + (struct nt_mutex *mutex, ULONG level) +{ + EVENTENTER("%p", mutex); + initialize_object(&mutex->dh, MutexObject, 1); + mutex->dh.size = sizeof(*mutex); + InitializeListHead(&mutex->list); + mutex->abandoned = FALSE; + mutex->apc_disable = 1; + mutex->owner_thread = NULL; + EVENTEXIT(return); +} + +wstdcall LONG WIN_FUNC(KeReleaseMutex,2) + (struct nt_mutex *mutex, BOOLEAN wait) +{ + LONG ret; + struct task_struct *thread; + + EVENTENTER("%p, %d, %p", mutex, wait, current); + if (wait == TRUE) + WARNING("wait: %d", wait); + thread = current; + spin_lock_bh(&dispatcher_lock); + EVENTTRACE("%p, %p, %p, %d", mutex, thread, mutex->owner_thread, + mutex->dh.signal_state); + if ((mutex->owner_thread == thread) && (mutex->dh.signal_state <= 0)) { + ret = mutex->dh.signal_state++; + if (ret == 0) { + mutex->owner_thread = NULL; + object_signalled(&mutex->dh); + } + } else { + ret = STATUS_MUTANT_NOT_OWNED; + WARNING("invalid mutex: %p, %p, %p", mutex, mutex->owner_thread, + thread); + } + EVENTTRACE("%p, %p, %p, %d", mutex, thread, mutex->owner_thread, + mutex->dh.signal_state); + spin_unlock_bh(&dispatcher_lock); + EVENTEXIT(return ret); +} + +wstdcall void WIN_FUNC(KeInitializeSemaphore,3) + (struct nt_semaphore *semaphore, LONG count, LONG limit) +{ + EVENTENTER("%p: %d", semaphore, count); + /* if limit > 1, we need to satisfy as many waits (until count + * becomes 0); so we keep decrementing count everytime a wait + * is satisified */ + initialize_object(&semaphore->dh, SemaphoreObject, count); + semaphore->dh.size = sizeof(*semaphore); + semaphore->limit = limit; + EVENTEXIT(return); +} + +wstdcall LONG WIN_FUNC(KeReleaseSemaphore,4) + (struct nt_semaphore *semaphore, KPRIORITY incr, LONG adjustment, + BOOLEAN wait) +{ + LONG ret; + + EVENTENTER("%p", semaphore); + spin_lock_bh(&dispatcher_lock); + ret = semaphore->dh.signal_state; + assert(ret >= 0); + if (semaphore->dh.signal_state + adjustment <= semaphore->limit) + semaphore->dh.signal_state += adjustment; + else { + WARNING("releasing %d over limit %d", adjustment, + semaphore->limit); + semaphore->dh.signal_state = semaphore->limit; + } + if (semaphore->dh.signal_state > 0) + object_signalled(&semaphore->dh); + spin_unlock_bh(&dispatcher_lock); + EVENTEXIT(return ret); +} + +wstdcall NTSTATUS WIN_FUNC(KeDelayExecutionThread,3) + (KPROCESSOR_MODE wait_mode, BOOLEAN alertable, LARGE_INTEGER *interval) +{ + int res; + long timeout; + + if (wait_mode != 0) + ERROR("invalid wait_mode %d", wait_mode); + + timeout = SYSTEM_TIME_TO_HZ(*interval); + EVENTTRACE("%p, %Ld, %ld", current, *interval, timeout); + if (timeout <= 0) + EVENTEXIT(return STATUS_SUCCESS); + + if (alertable) + set_current_state(TASK_INTERRUPTIBLE); + else + set_current_state(TASK_UNINTERRUPTIBLE); + + res = schedule_timeout(timeout); + EVENTTRACE("%p, %d", current, res); + if (res == 0) + EVENTEXIT(return STATUS_SUCCESS); + else + EVENTEXIT(return STATUS_ALERTED); +} + +wstdcall ULONGLONG WIN_FUNC(KeQueryInterruptTime,0) + (void) +{ + EXIT5(return jiffies * TICKSPERJIFFY); +} + +wstdcall ULONG WIN_FUNC(KeQueryTimeIncrement,0) + (void) +{ + EXIT5(return TICKSPERSEC / HZ); +} + +wstdcall void WIN_FUNC(KeQuerySystemTime,1) + (LARGE_INTEGER *time) +{ + *time = ticks_1601(); + TRACE5("%Lu, %lu", *time, jiffies); +} + +wstdcall void WIN_FUNC(KeQueryTickCount,1) + (LARGE_INTEGER *count) +{ + *count = jiffies; +} + +wstdcall LARGE_INTEGER WIN_FUNC(KeQueryPerformanceCounter,1) + (LARGE_INTEGER *counter) +{ + if (counter) + *counter = HZ; + return jiffies; +} + +wstdcall KAFFINITY WIN_FUNC(KeQueryActiveProcessors,0) + (void) +{ + int i, n; + KAFFINITY bits = 0; +#ifdef num_online_cpus + n = num_online_cpus(); +#else + n = NR_CPUS; +#endif + for (i = 0; i < n; i++) + bits = (bits << 1) | 1; + return bits; +} + +struct nt_thread *get_current_nt_thread(void) +{ + struct task_struct *task = current; + struct nt_thread *thread; + struct common_object_header *header; + + TRACE6("task: %p", task); + thread = NULL; + spin_lock_bh(&ntoskernel_lock); + nt_list_for_each_entry(header, &object_list, list) { + TRACE6("%p, %d", header, header->type); + if (header->type != OBJECT_TYPE_NT_THREAD) + break; + thread = HEADER_TO_OBJECT(header); + TRACE6("%p, %p", thread, thread->task); + if (thread->task == task) + break; + else + thread = NULL; + } + spin_unlock_bh(&ntoskernel_lock); + if (thread == NULL) + TRACE4("couldn't find thread for task %p, %d", task, task->pid); + TRACE6("%p", thread); + return thread; +} + +static struct task_struct *get_nt_thread_task(struct nt_thread *thread) +{ + struct task_struct *task; + struct common_object_header *header; + + TRACE6("%p", thread); + task = NULL; + spin_lock_bh(&ntoskernel_lock); + nt_list_for_each_entry(header, &object_list, list) { + TRACE6("%p, %d", header, header->type); + if (header->type != OBJECT_TYPE_NT_THREAD) + break; + if (thread == HEADER_TO_OBJECT(header)) { + task = thread->task; + break; + } + } + spin_unlock_bh(&ntoskernel_lock); + if (task == NULL) + TRACE2("%p: couldn't find task for %p", current, thread); + return task; +} + +static struct nt_thread *create_nt_thread(struct task_struct *task) +{ + struct nt_thread *thread; + thread = allocate_object(sizeof(*thread), OBJECT_TYPE_NT_THREAD, NULL); + if (!thread) { + ERROR("couldn't allocate thread object"); + EXIT2(return NULL); + } + thread->task = task; + if (task) + thread->pid = task->pid; + else + thread->pid = 0; + nt_spin_lock_init(&thread->lock); + InitializeListHead(&thread->irps); + initialize_object(&thread->dh, ThreadObject, 0); + thread->dh.size = sizeof(*thread); + thread->prio = LOW_PRIORITY; + return thread; +} + +wstdcall struct nt_thread *WIN_FUNC(KeGetCurrentThread,0) + (void) +{ + struct nt_thread *thread = get_current_nt_thread(); + TRACE2("%p, %p", thread, current); + return thread; +} + +wstdcall KPRIORITY WIN_FUNC(KeQueryPriorityThread,1) + (struct nt_thread *thread) +{ + KPRIORITY prio; + struct task_struct *task; + + TRACE2("%p", thread); +#ifdef CONFIG_X86_64 + /* sis163u driver for amd64 passes 0x1f from thread created by + * PsCreateSystemThread - no idea what is 0x1f */ + if (thread == (void *)0x1f) + thread = get_current_nt_thread(); +#endif + if (!thread) { + TRACE2("invalid thread"); + EXIT2(return LOW_REALTIME_PRIORITY); + } + task = get_nt_thread_task(thread); + if (!task) { + TRACE2("couldn't find task for thread: %p", thread); + EXIT2(return LOW_REALTIME_PRIORITY); + } + + prio = thread->prio; + + TRACE2("%d", prio); + return prio; +} + +wstdcall KPRIORITY WIN_FUNC(KeSetPriorityThread,2) + (struct nt_thread *thread, KPRIORITY prio) +{ + KPRIORITY old_prio; + struct task_struct *task; + + TRACE2("thread: %p, priority = %u", thread, prio); +#ifdef CONFIG_X86_64 + if (thread == (void *)0x1f) + thread = get_current_nt_thread(); +#endif + if (!thread) { + TRACE2("invalid thread"); + EXIT2(return LOW_REALTIME_PRIORITY); + } + task = get_nt_thread_task(thread); + if (!task) { + TRACE2("couldn't find task for thread: %p", thread); + EXIT2(return LOW_REALTIME_PRIORITY); + } + + old_prio = thread->prio; + thread->prio = prio; + + TRACE2("%d, %d", old_prio, thread->prio); + return old_prio; +} + +struct thread_trampoline { + void (*func)(void *) wstdcall; + void *ctx; + struct nt_thread *thread; + struct completion started; +}; + +static int ntdriver_thread(void *data) +{ + struct thread_trampoline *thread_tramp = data; + /* yes, a tramp! */ + typeof(thread_tramp->func) func = thread_tramp->func; + typeof(thread_tramp->ctx) ctx = thread_tramp->ctx; + + thread_tramp->thread->task = current; + thread_tramp->thread->pid = current->pid; + TRACE2("thread: %p, task: %p (%d)", thread_tramp->thread, + current, current->pid); + complete(&thread_tramp->started); + +#ifdef PF_NOFREEZE + current->flags |= PF_NOFREEZE; +#endif + strncpy(current->comm, "ntdriver", sizeof(current->comm)); + current->comm[sizeof(current->comm)-1] = 0; + LIN2WIN1(func, ctx); + ERROR("task: %p", current); + return 0; +} + +wstdcall NTSTATUS WIN_FUNC(PsCreateSystemThread,7) + (void **handle, ULONG access, void *obj_attr, void *process, + void *client_id, void (*func)(void *) wstdcall, void *ctx) +{ + struct thread_trampoline thread_tramp; + + ENTER2("handle = %p, access = %u, obj_attr = %p, process = %p, " + "client_id = %p, func = %p, context = %p", handle, access, + obj_attr, process, client_id, func, ctx); + + thread_tramp.thread = create_nt_thread(NULL); + if (!thread_tramp.thread) { + ERROR("couldn't allocate thread object"); + EXIT2(return STATUS_RESOURCES); + } + TRACE2("thread: %p", thread_tramp.thread); + thread_tramp.func = func; + thread_tramp.ctx = ctx; + init_completion(&thread_tramp.started); + + thread_tramp.thread->task = kthread_run(ntdriver_thread, + &thread_tramp, "ntdriver"); + if (IS_ERR(thread_tramp.thread->task)) { + free_object(thread_tramp.thread); + EXIT2(return STATUS_FAILURE); + } + TRACE2("created task: %p", thread_tramp.thread->task); + + wait_for_completion(&thread_tramp.started); + *handle = OBJECT_TO_HEADER(thread_tramp.thread); + TRACE2("created thread: %p, %p", thread_tramp.thread, *handle); + EXIT2(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(PsTerminateSystemThread,1) + (NTSTATUS status) +{ + struct nt_thread *thread; + + TRACE2("%p, %08X", current, status); + thread = get_current_nt_thread(); + TRACE2("%p", thread); + if (thread) { + KeSetEvent((struct nt_event *)&thread->dh, 0, FALSE); + while (1) { + struct nt_list *ent; + struct irp *irp; + KIRQL irql; + irql = nt_spin_lock_irql(&thread->lock, DISPATCH_LEVEL); + ent = RemoveHeadList(&thread->irps); + nt_spin_unlock_irql(&thread->lock, irql); + if (!ent) + break; + irp = container_of(ent, struct irp, thread_list); + IOTRACE("%p", irp); + IoCancelIrp(irp); + } + /* the driver may later query this status with + * ZwQueryInformationThread */ + thread->status = status; + } else + ERROR("couldn't find thread for task: %p", current); + + complete_and_exit(NULL, status); + ERROR("oops: %p, %d", thread->task, thread->pid); + return STATUS_FAILURE; +} + +wstdcall BOOLEAN WIN_FUNC(KeRemoveEntryDeviceQueue,2) + (struct kdevice_queue *dev_queue, struct kdevice_queue_entry *entry) +{ + struct kdevice_queue_entry *e; + KIRQL irql; + + irql = nt_spin_lock_irql(&dev_queue->lock, DISPATCH_LEVEL); + nt_list_for_each_entry(e, &dev_queue->list, list) { + if (e == entry) { + RemoveEntryList(&e->list); + nt_spin_unlock_irql(&dev_queue->lock, irql); + return TRUE; + } + } + nt_spin_unlock_irql(&dev_queue->lock, irql); + return FALSE; +} + +wstdcall BOOLEAN WIN_FUNC(KeSynchronizeExecution,3) + (struct kinterrupt *interrupt, PKSYNCHRONIZE_ROUTINE synch_routine, + void *ctx) +{ + BOOLEAN ret; + unsigned long flags; + + nt_spin_lock_irqsave(interrupt->actual_lock, flags); + ret = LIN2WIN1(synch_routine, ctx); + nt_spin_unlock_irqrestore(interrupt->actual_lock, flags); + TRACE6("%d", ret); + return ret; +} + +wstdcall void *WIN_FUNC(MmAllocateContiguousMemorySpecifyCache,5) + (SIZE_T size, PHYSICAL_ADDRESS lowest, PHYSICAL_ADDRESS highest, + PHYSICAL_ADDRESS boundary, enum memory_caching_type cache_type) +{ + void *addr; + gfp_t flags; + + ENTER2("%lu, 0x%lx, 0x%lx, 0x%lx, %d", size, (long)lowest, + (long)highest, (long)boundary, cache_type); + flags = irql_gfp(); + addr = wrap_get_free_pages(flags, size); + TRACE2("%p, %lu, 0x%x", addr, size, flags); + if (addr && ((virt_to_phys(addr) + size) <= highest)) + EXIT2(return addr); +#ifdef CONFIG_X86_64 + /* GFP_DMA is really only 16MB even on x86-64, but there is no + * other zone available */ + if (highest <= DMA_BIT_MASK(31)) + flags |= __GFP_DMA; + else if (highest <= DMA_BIT_MASK(32)) + flags |= __GFP_DMA32; +#else + if (highest <= DMA_BIT_MASK(24)) + flags |= __GFP_DMA; + else if (highest > DMA_BIT_MASK(30)) + flags |= __GFP_HIGHMEM; +#endif + addr = wrap_get_free_pages(flags, size); + TRACE2("%p, %lu, 0x%x", addr, size, flags); + return addr; +} + +wstdcall void WIN_FUNC(MmFreeContiguousMemorySpecifyCache,3) + (void *base, SIZE_T size, enum memory_caching_type cache_type) +{ + TRACE2("%p, %lu", base, size); + free_pages((unsigned long)base, get_order(size)); +} + +wstdcall PHYSICAL_ADDRESS WIN_FUNC(MmGetPhysicalAddress,1) + (void *base) +{ + unsigned long phy = virt_to_phys(base); + TRACE2("%p, %p", base, (void *)phy); + return phy; +} + +/* Atheros card with pciid 168C:0014 calls this function with 0xf0000 + * and 0xf6ef0 address, and then check for things that seem to be + * related to ACPI: "_SM_" and "_DMI_". This may be the hack they do + * to check if this card is installed in IBM thinkpads; we can + * probably get this device to work if we create a buffer with the + * strings as required by the driver and return virtual address for + * that address instead */ +wstdcall void __iomem *WIN_FUNC(MmMapIoSpace,3) + (PHYSICAL_ADDRESS phys_addr, SIZE_T size, + enum memory_caching_type cache) +{ + void __iomem *virt; + ENTER1("cache type: %d", cache); + if (cache == MmCached) + virt = ioremap(phys_addr, size); + else + virt = ioremap_nocache(phys_addr, size); + TRACE1("%Lx, %lu, %p", phys_addr, size, virt); + return virt; +} + +wstdcall void WIN_FUNC(MmUnmapIoSpace,2) + (void __iomem *addr, SIZE_T size) +{ + ENTER1("%p, %lu", addr, size); + iounmap(addr); + return; +} + +wstdcall ULONG WIN_FUNC(MmSizeOfMdl,2) + (void *base, ULONG length) +{ + return sizeof(struct mdl) + + (sizeof(PFN_NUMBER) * SPAN_PAGES(base, length)); +} + +struct mdl *allocate_init_mdl(void *virt, ULONG length) +{ + struct wrap_mdl *wrap_mdl; + struct mdl *mdl; + int mdl_size = MmSizeOfMdl(virt, length); + + if (mdl_size <= MDL_CACHE_SIZE) { + wrap_mdl = kmem_cache_alloc(mdl_cache, irql_gfp()); + if (!wrap_mdl) + return NULL; + spin_lock_bh(&dispatcher_lock); + InsertHeadList(&wrap_mdl_list, &wrap_mdl->list); + spin_unlock_bh(&dispatcher_lock); + mdl = wrap_mdl->mdl; + TRACE3("allocated mdl from cache: %p(%p), %p(%d)", + wrap_mdl, mdl, virt, length); + memset(mdl, 0, MDL_CACHE_SIZE); + MmInitializeMdl(mdl, virt, length); + /* mark the MDL as allocated from cache pool so when + * it is freed, we free it back to the pool */ + mdl->flags = MDL_ALLOCATED_FIXED_SIZE | MDL_CACHE_ALLOCATED; + } else { + wrap_mdl = + kmalloc(sizeof(*wrap_mdl) + mdl_size, irql_gfp()); + if (!wrap_mdl) + return NULL; + mdl = wrap_mdl->mdl; + TRACE3("allocated mdl from memory: %p(%p), %p(%d)", + wrap_mdl, mdl, virt, length); + spin_lock_bh(&dispatcher_lock); + InsertHeadList(&wrap_mdl_list, &wrap_mdl->list); + spin_unlock_bh(&dispatcher_lock); + memset(mdl, 0, mdl_size); + MmInitializeMdl(mdl, virt, length); + mdl->flags = MDL_ALLOCATED_FIXED_SIZE; + } + return mdl; +} + +void free_mdl(struct mdl *mdl) +{ + /* A driver may allocate Mdl with NdisAllocateBuffer and free + * with IoFreeMdl (e.g., 64-bit Broadcom). Since we need to + * treat buffers allocated with Ndis calls differently, we + * must call NdisFreeBuffer if it is allocated with Ndis + * function. We set 'pool' field in Ndis functions. */ + if (!mdl) + return; + if (mdl->pool) + NdisFreeBuffer(mdl); + else { + struct wrap_mdl *wrap_mdl = (struct wrap_mdl *) + ((char *)mdl - offsetof(struct wrap_mdl, mdl)); + spin_lock_bh(&dispatcher_lock); + RemoveEntryList(&wrap_mdl->list); + spin_unlock_bh(&dispatcher_lock); + + if (mdl->flags & MDL_CACHE_ALLOCATED) { + TRACE3("freeing mdl cache: %p, %p, %p", + wrap_mdl, mdl, mdl->mappedsystemva); + kmem_cache_free(mdl_cache, wrap_mdl); + } else { + TRACE3("freeing mdl: %p, %p, %p", + wrap_mdl, mdl, mdl->mappedsystemva); + kfree(wrap_mdl); + } + } + return; +} + +wstdcall void WIN_FUNC(IoBuildPartialMdl,4) + (struct mdl *source, struct mdl *target, void *virt, ULONG length) +{ + MmInitializeMdl(target, virt, length); + target->flags |= MDL_PARTIAL; +} + +wstdcall void WIN_FUNC(MmBuildMdlForNonPagedPool,1) + (struct mdl *mdl) +{ + PFN_NUMBER *mdl_pages; + int i, n; + + ENTER4("%p", mdl); + /* already mapped */ +// mdl->mappedsystemva = MmGetMdlVirtualAddress(mdl); + mdl->flags |= MDL_SOURCE_IS_NONPAGED_POOL; + TRACE4("%p, %p, %p, %d, %d", mdl, mdl->mappedsystemva, mdl->startva, + mdl->byteoffset, mdl->bytecount); + n = SPAN_PAGES(MmGetSystemAddressForMdl(mdl), MmGetMdlByteCount(mdl)); + if (n > MDL_CACHE_PAGES) + WARNING("%p, %d, %d", MmGetSystemAddressForMdl(mdl), + MmGetMdlByteCount(mdl), n); + mdl_pages = MmGetMdlPfnArray(mdl); + for (i = 0; i < n; i++) + mdl_pages[i] = (ULONG_PTR)mdl->startva + (i * PAGE_SIZE); + EXIT4(return); +} + +wstdcall void *WIN_FUNC(MmMapLockedPages,2) + (struct mdl *mdl, KPROCESSOR_MODE access_mode) +{ + /* already mapped */ +// mdl->mappedsystemva = MmGetMdlVirtualAddress(mdl); + mdl->flags |= MDL_MAPPED_TO_SYSTEM_VA; + /* what is the need for MDL_PARTIAL_HAS_BEEN_MAPPED? */ + if (mdl->flags & MDL_PARTIAL) + mdl->flags |= MDL_PARTIAL_HAS_BEEN_MAPPED; + return mdl->mappedsystemva; +} + +wstdcall void *WIN_FUNC(MmMapLockedPagesSpecifyCache,6) + (struct mdl *mdl, KPROCESSOR_MODE access_mode, + enum memory_caching_type cache_type, void *base_address, + ULONG bug_check, enum mm_page_priority priority) +{ + return MmMapLockedPages(mdl, access_mode); +} + +wstdcall void WIN_FUNC(MmUnmapLockedPages,2) + (void *base, struct mdl *mdl) +{ + mdl->flags &= ~MDL_MAPPED_TO_SYSTEM_VA; + return; +} + +wstdcall void WIN_FUNC(MmProbeAndLockPages,3) + (struct mdl *mdl, KPROCESSOR_MODE access_mode, + enum lock_operation operation) +{ + /* already locked */ + mdl->flags |= MDL_PAGES_LOCKED; + return; +} + +wstdcall void WIN_FUNC(MmUnlockPages,1) + (struct mdl *mdl) +{ + mdl->flags &= ~MDL_PAGES_LOCKED; + return; +} + +wstdcall BOOLEAN WIN_FUNC(MmIsAddressValid,1) + (void *virt_addr) +{ + if (virt_addr_valid(virt_addr)) + return TRUE; + else + return FALSE; +} + +wstdcall void *WIN_FUNC(MmLockPagableDataSection,1) + (void *address) +{ + return address; +} + +wstdcall void WIN_FUNC(MmUnlockPagableImageSection,1) + (void *handle) +{ + return; +} + +wstdcall NTSTATUS WIN_FUNC(ObReferenceObjectByHandle,6) + (void *handle, ACCESS_MASK desired_access, void *obj_type, + KPROCESSOR_MODE access_mode, void **object, void *handle_info) +{ + struct common_object_header *hdr; + + TRACE2("%p", handle); + hdr = HANDLE_TO_HEADER(handle); + atomic_inc_var(hdr->ref_count); + *object = HEADER_TO_OBJECT(hdr); + TRACE2("%p, %p, %d, %p", hdr, object, hdr->ref_count, *object); + return STATUS_SUCCESS; +} + +/* DDK doesn't say if return value should be before incrementing or + * after incrementing reference count, but according to #reactos + * devels, it should be return value after incrementing */ +wfastcall LONG WIN_FUNC(ObfReferenceObject,1) + (void *object) +{ + struct common_object_header *hdr; + LONG ret; + + hdr = OBJECT_TO_HEADER(object); + ret = post_atomic_add(hdr->ref_count, 1); + TRACE2("%p, %d, %p", hdr, hdr->ref_count, object); + return ret; +} + +static int dereference_object(void *object) +{ + struct common_object_header *hdr; + int ref_count; + + ENTER2("object: %p", object); + hdr = OBJECT_TO_HEADER(object); + TRACE2("hdr: %p", hdr); + ref_count = post_atomic_add(hdr->ref_count, -1); + TRACE2("object: %p, %d", object, ref_count); + if (ref_count < 0) + ERROR("invalid object: %p (%d)", object, ref_count); + if (ref_count <= 0) { + free_object(object); + return 1; + } else + return 0; +} + +wfastcall void WIN_FUNC(ObfDereferenceObject,1) + (void *object) +{ + TRACE2("%p", object); + dereference_object(object); +} + +wstdcall NTSTATUS WIN_FUNC(ZwCreateFile,11) + (void **handle, ACCESS_MASK access_mask, + struct object_attributes *obj_attr, struct io_status_block *iosb, + LARGE_INTEGER *size, ULONG file_attr, ULONG share_access, + ULONG create_disposition, ULONG create_options, void *ea_buffer, + ULONG ea_length) +{ + struct common_object_header *coh; + struct file_object *fo; + struct ansi_string ansi; + struct wrap_bin_file *bin_file; + char *file_basename; + NTSTATUS status; + + spin_lock_bh(&ntoskernel_lock); + nt_list_for_each_entry(coh, &object_list, list) { + if (coh->type != OBJECT_TYPE_FILE) + continue; + /* TODO: check if file is opened in shared mode */ + if (!RtlCompareUnicodeString(&coh->name, obj_attr->name, TRUE)) { + fo = HEADER_TO_OBJECT(coh); + bin_file = fo->wrap_bin_file; + *handle = coh; + spin_unlock_bh(&ntoskernel_lock); + ObReferenceObject(fo); + iosb->status = FILE_OPENED; + iosb->info = bin_file->size; + EXIT2(return STATUS_SUCCESS); + } + } + spin_unlock_bh(&ntoskernel_lock); + + if (RtlUnicodeStringToAnsiString(&ansi, obj_attr->name, TRUE) != + STATUS_SUCCESS) + EXIT2(return STATUS_INSUFFICIENT_RESOURCES); + + file_basename = strrchr(ansi.buf, '\\'); + if (file_basename) + file_basename++; + else + file_basename = ansi.buf; + TRACE2("file: '%s', '%s'", ansi.buf, file_basename); + + fo = allocate_object(sizeof(struct file_object), OBJECT_TYPE_FILE, + obj_attr->name); + if (!fo) { + RtlFreeAnsiString(&ansi); + iosb->status = STATUS_INSUFFICIENT_RESOURCES; + iosb->info = 0; + EXIT2(return STATUS_FAILURE); + } + coh = OBJECT_TO_HEADER(fo); + bin_file = get_bin_file(file_basename); + if (bin_file) { + TRACE2("%s, %s", bin_file->name, file_basename); + fo->flags = FILE_OPENED; + } else if (access_mask & FILE_WRITE_DATA) { + bin_file = kzalloc(sizeof(*bin_file), GFP_KERNEL); + if (bin_file) { + strncpy(bin_file->name, file_basename, + sizeof(bin_file->name)); + bin_file->name[sizeof(bin_file->name)-1] = 0; + bin_file->data = vmalloc(*size); + if (bin_file->data) { + memset(bin_file->data, 0, *size); + bin_file->size = *size; + fo->flags = FILE_CREATED; + } else { + kfree(bin_file); + bin_file = NULL; + } + } + } else + bin_file = NULL; + + RtlFreeAnsiString(&ansi); + if (!bin_file) { + iosb->status = FILE_DOES_NOT_EXIST; + iosb->info = 0; + free_object(fo); + EXIT2(return STATUS_FAILURE); + } + + fo->wrap_bin_file = bin_file; + fo->current_byte_offset = 0; + if (access_mask & FILE_READ_DATA) + fo->read_access = TRUE; + if (access_mask & FILE_WRITE_DATA) + fo->write_access = TRUE; + iosb->status = FILE_OPENED; + iosb->info = bin_file->size; + *handle = coh; + TRACE2("handle: %p", *handle); + status = STATUS_SUCCESS; + EXIT2(return status); +} + +wstdcall NTSTATUS WIN_FUNC(ZwOpenFile,6) + (void **handle, ACCESS_MASK access_mask, + struct object_attributes *obj_attr, struct io_status_block *iosb, + ULONG share_access, ULONG open_options) +{ + LARGE_INTEGER size; + return ZwCreateFile(handle, access_mask, obj_attr, iosb, &size, 0, + share_access, 0, open_options, NULL, 0); +} + +wstdcall NTSTATUS WIN_FUNC(ZwReadFile,9) + (void *handle, struct nt_event *event, void *apc_routine, + void *apc_context, struct io_status_block *iosb, void *buffer, + ULONG length, LARGE_INTEGER *byte_offset, ULONG *key) +{ + struct file_object *fo; + struct common_object_header *coh; + ULONG count; + size_t offset; + struct wrap_bin_file *file; + + TRACE2("%p", handle); + coh = handle; + if (coh->type != OBJECT_TYPE_FILE) { + ERROR("handle %p is invalid: %d", handle, coh->type); + EXIT2(return STATUS_FAILURE); + } + fo = HANDLE_TO_OBJECT(coh); + file = fo->wrap_bin_file; + TRACE2("file: %s (%zu)", file->name, file->size); + spin_lock_bh(&ntoskernel_lock); + if (byte_offset) + offset = *byte_offset; + else + offset = fo->current_byte_offset; + count = min((size_t)length, file->size - offset); + TRACE2("count: %u, offset: %zu, length: %u", count, offset, length); + memcpy(buffer, ((void *)file->data) + offset, count); + fo->current_byte_offset = offset + count; + spin_unlock_bh(&ntoskernel_lock); + iosb->status = STATUS_SUCCESS; + iosb->info = count; + EXIT2(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(ZwWriteFile,9) + (void *handle, struct nt_event *event, void *apc_routine, + void *apc_context, struct io_status_block *iosb, void *buffer, + ULONG length, LARGE_INTEGER *byte_offset, ULONG *key) +{ + struct file_object *fo; + struct common_object_header *coh; + struct wrap_bin_file *file; + unsigned long offset; + + TRACE2("%p", handle); + coh = handle; + if (coh->type != OBJECT_TYPE_FILE) { + ERROR("handle %p is invalid: %d", handle, coh->type); + EXIT2(return STATUS_FAILURE); + } + fo = HANDLE_TO_OBJECT(coh); + file = fo->wrap_bin_file; + TRACE2("file: %zu, %u", file->size, length); + spin_lock_bh(&ntoskernel_lock); + if (byte_offset) + offset = *byte_offset; + else + offset = fo->current_byte_offset; + if (length + offset > file->size) { + WARNING("%lu, %u", length + offset, (unsigned int)file->size); + /* TODO: implement writing past end of current size */ + iosb->status = STATUS_FAILURE; + iosb->info = 0; + } else { + memcpy(file->data + offset, buffer, length); + iosb->status = STATUS_SUCCESS; + iosb->info = length; + fo->current_byte_offset = offset + length; + } + spin_unlock_bh(&ntoskernel_lock); + EXIT2(return iosb->status); +} + +wstdcall NTSTATUS WIN_FUNC(ZwClose,1) + (void *handle) +{ + struct common_object_header *coh; + + TRACE2("%p", handle); + if (handle == NULL) { + TRACE1(""); + EXIT2(return STATUS_SUCCESS); + } + coh = handle; + if (coh->type == OBJECT_TYPE_FILE) { + struct file_object *fo; + struct wrap_bin_file *bin_file; + typeof(fo->flags) flags; + + fo = HANDLE_TO_OBJECT(handle); + flags = fo->flags; + bin_file = fo->wrap_bin_file; + if (dereference_object(fo)) { + if (flags == FILE_CREATED) { + vfree(bin_file->data); + kfree(bin_file); + } else + free_bin_file(bin_file); + } + } else if (coh->type == OBJECT_TYPE_NT_THREAD) { + struct nt_thread *thread = HANDLE_TO_OBJECT(handle); + TRACE2("thread: %p (%p)", thread, handle); + ObDereferenceObject(thread); + } else { + /* TODO: can we just dereference object here? */ + WARNING("closing handle 0x%x not implemented", coh->type); + } + EXIT2(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(ZwQueryInformationFile,5) + (void *handle, struct io_status_block *iosb, void *info, + ULONG length, enum file_info_class class) +{ + struct file_object *fo; + struct file_name_info *fni; + struct file_std_info *fsi; + struct wrap_bin_file *file; + struct common_object_header *coh; + + ENTER2("%p", handle); + coh = handle; + if (coh->type != OBJECT_TYPE_FILE) { + ERROR("handle %p is invalid: %d", coh, coh->type); + EXIT2(return STATUS_FAILURE); + } + fo = HANDLE_TO_OBJECT(handle); + TRACE2("fo: %p, %d", fo, class); + switch (class) { + case FileNameInformation: + fni = info; + fni->length = min(length, (typeof(length))coh->name.length); + memcpy(fni->name, coh->name.buf, fni->length); + iosb->status = STATUS_SUCCESS; + iosb->info = fni->length; + break; + case FileStandardInformation: + fsi = info; + file = fo->wrap_bin_file; + fsi->alloc_size = file->size; + fsi->eof = file->size; + fsi->num_links = 1; + fsi->delete_pending = FALSE; + fsi->dir = FALSE; + iosb->status = STATUS_SUCCESS; + iosb->info = 0; + break; + default: + WARNING("type %d not implemented yet", class); + iosb->status = STATUS_FAILURE; + iosb->info = 0; + break; + } + EXIT2(return iosb->status); +} + +wstdcall NTSTATUS WIN_FUNC(ZwOpenSection,3) + (void **handle, ACCESS_MASK access, struct object_attributes *obj_attrs) +{ + INFO("%p, 0x%x, %d", obj_attrs, obj_attrs->attributes, access); + TODO(); + *handle = obj_attrs; + return STATUS_SUCCESS; +} + +wstdcall NTSTATUS WIN_FUNC(ZwMapViewOfSection,10) + (void *secn_handle, void *process_handle, void **base_address, + ULONG zero_bits, LARGE_INTEGER *secn_offset, SIZE_T *view_size, + enum section_inherit inherit, ULONG alloc_type, ULONG protect) +{ + INFO("%p, %p, %p", secn_handle, process_handle, base_address); + TODO(); + *base_address = (void *)0xdeadbeef; + return STATUS_SUCCESS; +} + +wstdcall NTSTATUS WIN_FUNC(ZwUnmapViewOfSection,2) + (void *process_handle, void *base_address) +{ + INFO("%p, %p", process_handle, base_address); + TODO(); + return STATUS_SUCCESS; +} + +wstdcall NTSTATUS WIN_FUNC(ZwCreateKey,7) + (void **handle, ACCESS_MASK desired_access, + struct object_attributes *attr, ULONG title_index, + struct unicode_string *class, ULONG create_options, + ULONG *disposition) +{ + struct ansi_string ansi; + if (RtlUnicodeStringToAnsiString(&ansi, attr->name, TRUE) == + STATUS_SUCCESS) { + TRACE1("key: %s", ansi.buf); + RtlFreeAnsiString(&ansi); + } + *handle = NULL; + return STATUS_SUCCESS; +} + +wstdcall NTSTATUS WIN_FUNC(ZwOpenKey,3) + (void **handle, ACCESS_MASK desired_access, + struct object_attributes *attr) +{ + struct ansi_string ansi; + if (RtlUnicodeStringToAnsiString(&ansi, attr->name, TRUE) == + STATUS_SUCCESS) { + TRACE1("key: %s", ansi.buf); + RtlFreeAnsiString(&ansi); + } + *handle = NULL; + return STATUS_SUCCESS; +} + +wstdcall NTSTATUS WIN_FUNC(ZwSetValueKey,6) + (void *handle, struct unicode_string *name, ULONG title_index, + ULONG type, void *data, ULONG data_size) +{ + struct ansi_string ansi; + if (RtlUnicodeStringToAnsiString(&ansi, name, TRUE) == + STATUS_SUCCESS) { + TRACE1("key: %s", ansi.buf); + RtlFreeAnsiString(&ansi); + } + return STATUS_SUCCESS; +} + +wstdcall NTSTATUS WIN_FUNC(ZwQueryValueKey,6) + (void *handle, struct unicode_string *name, + enum key_value_information_class class, void *info, + ULONG length, ULONG *res_length) +{ + struct ansi_string ansi; + if (RtlUnicodeStringToAnsiString(&ansi, name, TRUE) == STATUS_SUCCESS) { + TRACE1("key: %s", ansi.buf); + RtlFreeAnsiString(&ansi); + } + TODO(); + return STATUS_INVALID_PARAMETER; +} + +wstdcall NTSTATUS WIN_FUNC(ZwDeleteKey,1) + (void *handle) +{ + ENTER2("%p", handle); + return STATUS_SUCCESS; +} + +wstdcall NTSTATUS WIN_FUNC(ZwPowerInformation,4) + (INT info_level, void *in_buf, ULONG in_buf_len, void *out_buf, + ULONG out_buf_len) +{ + INFO("%d, %u, %u", info_level, in_buf_len, out_buf_len); + TODO(); + return STATUS_ACCESS_DENIED; +} + +wstdcall NTSTATUS WIN_FUNC(WmiSystemControl,4) + (struct wmilib_context *info, struct device_object *dev_obj, + struct irp *irp, void *irp_disposition) +{ + TODO(); + return STATUS_SUCCESS; +} + +wstdcall NTSTATUS WIN_FUNC(WmiCompleteRequest,5) + (struct device_object *dev_obj, struct irp *irp, NTSTATUS status, + ULONG buffer_used, CCHAR priority_boost) +{ + TODO(); + return STATUS_SUCCESS; +} + +noregparm NTSTATUS WIN_FUNC(WmiTraceMessage,12) + (void *tracehandle, ULONG message_flags, + void *message_guid, USHORT message_no, ...) +{ + TODO(); + EXIT2(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(WmiQueryTraceInformation,4) + (enum trace_information_class trace_info_class, void *trace_info, + ULONG *req_length, void *buf) +{ + TODO(); + EXIT2(return STATUS_SUCCESS); +} + +/* this function can't be wstdcall as it takes variable number of args */ +noregparm ULONG WIN_FUNC(DbgPrint,12) + (char *format, ...) +{ +#ifdef DEBUG + va_list args; + static char buf[100]; + + va_start(args, format); + vsnprintf(buf, sizeof(buf), format, args); + printk(KERN_DEBUG "%s (%s): %s", DRIVER_NAME, __func__, buf); + va_end(args); +#endif + return STATUS_SUCCESS; +} + +wstdcall void WIN_FUNC(KeBugCheck,1) + (ULONG code) +{ + TODO(); + return; +} + +wstdcall void WIN_FUNC(KeBugCheckEx,5) + (ULONG code, ULONG_PTR param1, ULONG_PTR param2, + ULONG_PTR param3, ULONG_PTR param4) +{ + TODO(); + return; +} + +wstdcall void WIN_FUNC(ExSystemTimeToLocalTime,2) + (LARGE_INTEGER *system_time, LARGE_INTEGER *local_time) +{ + *local_time = *system_time; +} + +wstdcall ULONG WIN_FUNC(ExSetTimerResolution,2) + (ULONG time, BOOLEAN set) +{ + /* why a driver should change system wide timer resolution is + * beyond me */ + return time; +} + +wstdcall void WIN_FUNC(DbgBreakPoint,0) + (void) +{ + TODO(); +} + +wstdcall void WIN_FUNC(_except_handler3,0) + (void) +{ + TODO(); +} + +wstdcall void WIN_FUNC(__C_specific_handler,0) + (void) +{ + TODO(); +} + +wstdcall void WIN_FUNC(_purecall,0) + (void) +{ + TODO(); +} + +wstdcall void WIN_FUNC(__chkstk,0) + (void) +{ + TODO(); +} + +struct worker_init_struct { + work_struct_t work; + struct completion completion; + struct nt_thread *nt_thread; +}; + +static void wrap_worker_init_func(worker_param_t param) +{ + struct worker_init_struct *worker_init_struct; + + worker_init_struct = + worker_param_data(param, struct worker_init_struct, work); + TRACE1("%p", worker_init_struct); + worker_init_struct->nt_thread = create_nt_thread(current); + if (!worker_init_struct->nt_thread) + WARNING("couldn't create worker thread"); + complete(&worker_init_struct->completion); +} + +struct nt_thread *wrap_worker_init(workqueue_struct_t *wq) +{ + struct worker_init_struct worker_init_struct; + + TRACE1("%p", &worker_init_struct); + init_completion(&worker_init_struct.completion); + initialize_work(&worker_init_struct.work, wrap_worker_init_func, + &worker_init_struct); + worker_init_struct.nt_thread = NULL; + if (wq) + queue_work(wq, &worker_init_struct.work); + else + schedule_work(&worker_init_struct.work); + wait_for_completion(&worker_init_struct.completion); + TRACE1("%p", worker_init_struct.nt_thread); + return worker_init_struct.nt_thread; +} + +int ntoskernel_init(void) +{ + struct timeval now; + + spin_lock_init(&dispatcher_lock); + spin_lock_init(&ntoskernel_lock); + spin_lock_init(&ntos_work_lock); + spin_lock_init(&kdpc_list_lock); + spin_lock_init(&irp_cancel_lock); + InitializeListHead(&wrap_mdl_list); + InitializeListHead(&kdpc_list); + InitializeListHead(&callback_objects); + InitializeListHead(&bus_driver_list); + InitializeListHead(&object_list); + InitializeListHead(&ntos_work_list); + + nt_spin_lock_init(&nt_list_lock); + + initialize_work(&kdpc_work, kdpc_worker, NULL); + initialize_work(&ntos_work, ntos_work_worker, NULL); + wrap_timer_slist.next = NULL; + + do_gettimeofday(&now); + wrap_ticks_to_boot = TICKS_1601_TO_1970; + wrap_ticks_to_boot += (u64)now.tv_sec * TICKSPERSEC; + wrap_ticks_to_boot += now.tv_usec * 10; + wrap_ticks_to_boot -= jiffies * TICKSPERJIFFY; + TRACE2("%Lu", wrap_ticks_to_boot); + +#ifdef WRAP_PREEMPT + do { + int cpu; + for_each_possible_cpu(cpu) { + irql_info_t *info; + info = &per_cpu(irql_info, cpu); + mutex_init(&(info->lock)); + info->task = NULL; + info->count = 0; + } + } while (0); +#endif + + ntos_wq = create_singlethread_workqueue("ntos_wq"); + if (!ntos_wq) { + WARNING("couldn't create ntos_wq thread"); + return -ENOMEM; + } + ntos_worker_thread = wrap_worker_init(ntos_wq); + TRACE1("%p", ntos_worker_thread); + + if (add_bus_driver("PCI") +#ifdef ENABLE_USB + || add_bus_driver("USB") +#endif + ) { + ntoskernel_exit(); + return -ENOMEM; + } + mdl_cache = + wrap_kmem_cache_create("wrap_mdl", + sizeof(struct wrap_mdl) + MDL_CACHE_SIZE, + 0, 0); + TRACE2("%p", mdl_cache); + if (!mdl_cache) { + ERROR("couldn't allocate MDL cache"); + ntoskernel_exit(); + return -ENOMEM; + } + +#if defined(CONFIG_X86_64) + memset(&kuser_shared_data, 0, sizeof(kuser_shared_data)); + *((ULONG64 *)&kuser_shared_data.system_time) = ticks_1601(); + init_timer(&shared_data_timer); + shared_data_timer.function = update_user_shared_data_proc; + shared_data_timer.data = (unsigned long)0; +#endif + return 0; +} + +int ntoskernel_init_device(struct wrap_device *wd) +{ +#if defined(CONFIG_X86_64) + if (kuser_shared_data.reserved1) + mod_timer(&shared_data_timer, jiffies + MSEC_TO_HZ(30)); +#endif + return 0; +} + +void ntoskernel_exit_device(struct wrap_device *wd) +{ + ENTER2(""); + + KeFlushQueuedDpcs(); + EXIT2(return); +} + +void ntoskernel_exit(void) +{ + struct nt_list *cur; + + ENTER2(""); + + /* free kernel (Ke) timers */ + TRACE2("freeing timers"); + while (1) { + struct wrap_timer *wrap_timer; + struct nt_slist *slist; + + spin_lock_bh(&ntoskernel_lock); + if ((slist = wrap_timer_slist.next)) + wrap_timer_slist.next = slist->next; + spin_unlock_bh(&ntoskernel_lock); + TIMERTRACE("%p", slist); + if (!slist) + break; + wrap_timer = container_of(slist, struct wrap_timer, slist); + if (del_timer_sync(&wrap_timer->timer)) + WARNING("Buggy Windows driver left timer %p running", + wrap_timer->nt_timer); + memset(wrap_timer, 0, sizeof(*wrap_timer)); + slack_kfree(wrap_timer); + } + + TRACE2("freeing MDLs"); + if (mdl_cache) { + spin_lock_bh(&ntoskernel_lock); + if (!IsListEmpty(&wrap_mdl_list)) + ERROR("Windows driver didn't free all MDLs; " + "freeing them now"); + while ((cur = RemoveHeadList(&wrap_mdl_list))) { + struct wrap_mdl *wrap_mdl; + wrap_mdl = container_of(cur, struct wrap_mdl, list); + if (wrap_mdl->mdl->flags & MDL_CACHE_ALLOCATED) + kmem_cache_free(mdl_cache, wrap_mdl); + else + kfree(wrap_mdl); + } + spin_unlock_bh(&ntoskernel_lock); + kmem_cache_destroy(mdl_cache); + mdl_cache = NULL; + } + + TRACE2("freeing callbacks"); + spin_lock_bh(&ntoskernel_lock); + while ((cur = RemoveHeadList(&callback_objects))) { + struct callback_object *object; + struct nt_list *ent; + object = container_of(cur, struct callback_object, list); + while ((ent = RemoveHeadList(&object->callback_funcs))) { + struct callback_func *f; + f = container_of(ent, struct callback_func, list); + kfree(f); + } + kfree(object); + } + spin_unlock_bh(&ntoskernel_lock); + + spin_lock_bh(&ntoskernel_lock); + while ((cur = RemoveHeadList(&bus_driver_list))) { + struct bus_driver *bus_driver; + bus_driver = container_of(cur, struct bus_driver, list); + /* TODO: make sure all all drivers are shutdown/removed */ + kfree(bus_driver); + } + spin_unlock_bh(&ntoskernel_lock); + +#if defined(CONFIG_X86_64) + del_timer_sync(&shared_data_timer); +#endif + if (ntos_wq) + destroy_workqueue(ntos_wq); + TRACE1("%p", ntos_worker_thread); + if (ntos_worker_thread) + ObDereferenceObject(ntos_worker_thread); + ENTER2("freeing objects"); + spin_lock_bh(&ntoskernel_lock); + while ((cur = RemoveHeadList(&object_list))) { + struct common_object_header *hdr; + hdr = container_of(cur, struct common_object_header, list); + if (hdr->type == OBJECT_TYPE_NT_THREAD) + TRACE1("object %p(%d) was not freed, freeing it now", + HEADER_TO_OBJECT(hdr), hdr->type); + else + WARNING("object %p(%d) was not freed, freeing it now", + HEADER_TO_OBJECT(hdr), hdr->type); + ExFreePool(hdr); + } + spin_unlock_bh(&ntoskernel_lock); + + EXIT2(return); +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/wrapmem.c +++ linux-2.6.35/ubuntu/ndiswrapper/wrapmem.c @@ -0,0 +1,360 @@ +/* + * Copyright (C) 2006 Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#define _WRAPMEM_C_ + +#include "ntoskernel.h" + +struct slack_alloc_info { + struct nt_list list; + size_t size; +}; + +static struct nt_list allocs; +static struct nt_list slack_allocs; +static spinlock_t alloc_lock; + +struct vmem_block { + struct nt_list list; + int size; +}; + +static struct nt_list vmem_list; + +#if defined(ALLOC_DEBUG) +struct alloc_info { + enum alloc_type type; + size_t size; +#if ALLOC_DEBUG > 1 + struct nt_list list; + const char *file; + int line; + ULONG tag; +#endif +}; + +static atomic_t alloc_sizes[ALLOC_TYPE_MAX]; +#endif + +void wrapmem_info(void) +{ +#ifdef ALLOC_DEBUG + enum alloc_type type; + for (type = 0; type < ALLOC_TYPE_MAX; type++) + INFO("total size of allocations in %d: %d", + type, atomic_read(&alloc_sizes[type])); +#endif +} + +/* allocate memory and add it to list of allocated pointers; if a + * driver doesn't free this memory for any reason (buggy driver or we + * allocate space behind driver's back since we need more space than + * corresponding Windows structure provides etc.), this gets freed + * automatically when module is unloaded + */ +void *slack_kmalloc(size_t size) +{ + struct slack_alloc_info *info; + gfp_t flags; + + ENTER4("size = %lu", (unsigned long)size); + + if (irql_gfp() & GFP_ATOMIC) + flags = GFP_ATOMIC; + else + flags = GFP_KERNEL; + info = kmalloc(size + sizeof(*info), flags); + if (!info) + return NULL; + info->size = size; + spin_lock_bh(&alloc_lock); + InsertTailList(&slack_allocs, &info->list); + spin_unlock_bh(&alloc_lock); +#ifdef ALLOC_DEBUG + atomic_add(size, &alloc_sizes[ALLOC_TYPE_SLACK]); +#endif + TRACE4("%p, %p", info, info + 1); + EXIT4(return info + 1); +} + +/* free pointer and remove from list of allocated pointers */ +void slack_kfree(void *ptr) +{ + struct slack_alloc_info *info; + + ENTER4("%p", ptr); + info = ptr - sizeof(*info); + spin_lock_bh(&alloc_lock); + RemoveEntryList(&info->list); + spin_unlock_bh(&alloc_lock); +#ifdef ALLOC_DEBUG + atomic_sub(info->size, &alloc_sizes[ALLOC_TYPE_SLACK]); +#endif + kfree(info); + EXIT4(return); +} + +#if defined(ALLOC_DEBUG) +void *wrap_kmalloc(size_t size, gfp_t flags, const char *file, int line) +{ + struct alloc_info *info; + + info = kmalloc(size + sizeof(*info), flags); + if (!info) + return NULL; + if (flags & GFP_ATOMIC) + info->type = ALLOC_TYPE_KMALLOC_ATOMIC; + else + info->type = ALLOC_TYPE_KMALLOC_NON_ATOMIC; + info->size = size; + atomic_add(size, &alloc_sizes[info->type]); +#if ALLOC_DEBUG > 1 + info->file = file; + info->line = line; + info->tag = 0; + spin_lock_bh(&alloc_lock); + InsertTailList(&allocs, &info->list); + spin_unlock_bh(&alloc_lock); +#endif + TRACE4("%p", info + 1); + return info + 1; +} + +void *wrap_kzalloc(size_t size, gfp_t flags, const char *file, int line) +{ + void *ptr = wrap_kmalloc(size, flags, file, line); + if (ptr) + memset(ptr, 0, size); + return ptr; +} + +void wrap_kfree(void *ptr) +{ + struct alloc_info *info; + + TRACE4("%p", ptr); + if (!ptr) + return; + info = ptr - sizeof(*info); + atomic_sub(info->size, &alloc_sizes[info->type]); +#if ALLOC_DEBUG > 1 + spin_lock_bh(&alloc_lock); + RemoveEntryList(&info->list); + spin_unlock_bh(&alloc_lock); + if (!(info->type == ALLOC_TYPE_KMALLOC_ATOMIC || + info->type == ALLOC_TYPE_KMALLOC_NON_ATOMIC)) + WARNING("invliad type: %d", info->type); +#endif + kfree(info); +} + +void *wrap_vmalloc(unsigned long size, const char *file, int line) +{ + struct alloc_info *info; + + info = vmalloc(size + sizeof(*info)); + if (!info) + return NULL; + info->type = ALLOC_TYPE_VMALLOC_NON_ATOMIC; + info->size = size; + atomic_add(size, &alloc_sizes[info->type]); +#if ALLOC_DEBUG > 1 + info->file = file; + info->line = line; + info->tag = 0; + spin_lock_bh(&alloc_lock); + InsertTailList(&allocs, &info->list); + spin_unlock_bh(&alloc_lock); +#endif + return info + 1; +} + +void *wrap__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot, + const char *file, int line) +{ + struct alloc_info *info; + + info = __vmalloc(size + sizeof(*info), gfp_mask, prot); + if (!info) + return NULL; + if (gfp_mask & GFP_ATOMIC) + info->type = ALLOC_TYPE_VMALLOC_ATOMIC; + else + info->type = ALLOC_TYPE_VMALLOC_NON_ATOMIC; + info->size = size; + atomic_add(size, &alloc_sizes[info->type]); +#if ALLOC_DEBUG > 1 + info->file = file; + info->line = line; + info->tag = 0; + spin_lock_bh(&alloc_lock); + InsertTailList(&allocs, &info->list); + spin_unlock_bh(&alloc_lock); +#endif + return info + 1; +} + +void wrap_vfree(void *ptr) +{ + struct alloc_info *info; + + info = ptr - sizeof(*info); + atomic_sub(info->size, &alloc_sizes[info->type]); +#if ALLOC_DEBUG > 1 + spin_lock_bh(&alloc_lock); + RemoveEntryList(&info->list); + spin_unlock_bh(&alloc_lock); + if (!(info->type == ALLOC_TYPE_VMALLOC_ATOMIC || + info->type == ALLOC_TYPE_VMALLOC_NON_ATOMIC)) + WARNING("invliad type: %d", info->type); +#endif + vfree(info); +} + +void *wrap_alloc_pages(gfp_t flags, unsigned int size, + const char *file, int line) +{ + struct alloc_info *info; + + size += sizeof(*info); + info = (struct alloc_info *)__get_free_pages(flags, get_order(size)); + if (!info) + return NULL; + info->type = ALLOC_TYPE_PAGES; + info->size = size; + atomic_add(size, &alloc_sizes[info->type]); +#if ALLOC_DEBUG > 1 + info->file = file; + info->line = line; + info->tag = 0; + spin_lock_bh(&alloc_lock); + InsertTailList(&allocs, &info->list); + spin_unlock_bh(&alloc_lock); +#endif + return info + 1; +} + +void wrap_free_pages(unsigned long ptr, int order) +{ + struct alloc_info *info; + + info = (void *)ptr - sizeof(*info); + atomic_sub(info->size, &alloc_sizes[info->type]); +#if ALLOC_DEBUG > 1 + spin_lock_bh(&alloc_lock); + RemoveEntryList(&info->list); + spin_unlock_bh(&alloc_lock); + if (info->type != ALLOC_TYPE_PAGES) + WARNING("invliad type: %d", info->type); +#endif + free_pages((unsigned long)info, get_order(info->size)); +} + +#if ALLOC_DEBUG > 1 +#undef ExAllocatePoolWithTag +void *wrap_ExAllocatePoolWithTag(enum pool_type pool_type, SIZE_T size, + ULONG tag, const char *file, int line) +{ + void *addr; + struct alloc_info *info; + + ENTER4("pool_type: %d, size: %lu, tag: %u", pool_type, size, tag); + addr = ExAllocatePoolWithTag(pool_type, size, tag); + if (!addr) + return NULL; + info = addr - sizeof(*info); + info->file = file; + info->line = line; + info->tag = tag; + EXIT4(return addr); +} +#endif + +int alloc_size(enum alloc_type type) +{ + if (type >= 0 && type < ALLOC_TYPE_MAX) + return atomic_read(&alloc_sizes[type]); + else + return -EINVAL; +} + +#endif // ALLOC_DEBUG + +int wrapmem_init(void) +{ + InitializeListHead(&allocs); + InitializeListHead(&slack_allocs); + InitializeListHead(&vmem_list); + spin_lock_init(&alloc_lock); + return 0; +} + +void wrapmem_exit(void) +{ + enum alloc_type type; + struct nt_list *ent; + + /* free all pointers on the slack list */ + while (1) { + struct slack_alloc_info *info; + spin_lock_bh(&alloc_lock); + ent = RemoveHeadList(&slack_allocs); + spin_unlock_bh(&alloc_lock); + if (!ent) + break; + info = container_of(ent, struct slack_alloc_info, list); +#ifdef ALLOC_DEBUG + atomic_sub(info->size, &alloc_sizes[ALLOC_TYPE_SLACK]); +#endif + kfree(info); + } + type = 0; +#ifdef ALLOC_DEBUG + for (type = 0; type < ALLOC_TYPE_MAX; type++) { + int n = atomic_read(&alloc_sizes[type]); + if (n) + WARNING("%d bytes of memory in %d leaking", n, type); + } + +#if ALLOC_DEBUG > 1 + while (1) { + struct alloc_info *info; + + spin_lock_bh(&alloc_lock); + ent = RemoveHeadList(&allocs); + spin_unlock_bh(&alloc_lock); + if (!ent) + break; + info = container_of(ent, struct alloc_info, list); + atomic_sub(info->size, &alloc_sizes[ALLOC_TYPE_SLACK]); + WARNING("%p in %d of size %zu allocated at %s(%d) " + "with tag 0x%08X leaking; freeing it now", + info + 1, info->type, info->size, info->file, + info->line, info->tag); + if (info->type == ALLOC_TYPE_KMALLOC_ATOMIC || + info->type == ALLOC_TYPE_KMALLOC_NON_ATOMIC) + kfree(info); + else if (info->type == ALLOC_TYPE_VMALLOC_ATOMIC || + info->type == ALLOC_TYPE_VMALLOC_NON_ATOMIC) + vfree(info); + else if (info->type == ALLOC_TYPE_PAGES) + free_pages((unsigned long)info, get_order(info->size)); + else + WARNING("invalid type: %d; not freed", info->type); + } +#endif +#endif + return; +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/ndis.c +++ linux-2.6.35/ubuntu/ndiswrapper/ndis.c @@ -0,0 +1,2974 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "ndis.h" +#include "iw_ndis.h" +#include "wrapndis.h" +#include "pnp.h" +#include "loader.h" +#include +#include +#include "ndis_exports.h" + +#define MAX_ALLOCATED_NDIS_PACKETS TX_RING_SIZE +#define MAX_ALLOCATED_NDIS_BUFFERS TX_RING_SIZE + +static void ndis_worker(worker_param_t dummy); +static work_struct_t ndis_work; +static struct nt_list ndis_work_list; +static spinlock_t ndis_work_list_lock; + +workqueue_struct_t *ndis_wq; +static struct nt_thread *ndis_worker_thread; + +static void *ndis_get_routine_address(char *name); + +wstdcall void WIN_FUNC(NdisInitializeWrapper,4) + (void **driver_handle, struct driver_object *driver, + struct unicode_string *reg_path, void *unused) +{ + ENTER1("handle: %p, driver: %p", driver_handle, driver); + *driver_handle = driver; + EXIT1(return); +} + +wstdcall void WIN_FUNC(NdisTerminateWrapper,2) + (struct device_object *dev_obj, void *system_specific) +{ + EXIT1(return); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisMRegisterMiniport,3) + (struct driver_object *drv_obj, struct miniport *mp, UINT length) +{ + int min_length; + struct wrap_driver *wrap_driver; + struct ndis_driver *ndis_driver; + + min_length = ((char *)&mp->co_create_vc) - ((char *)mp); + + ENTER1("%p %p %d", drv_obj, mp, length); + + if (mp->major_version < 4) { + ERROR("Driver is using ndis version %d which is too old.", + mp->major_version); + EXIT1(return NDIS_STATUS_BAD_VERSION); + } + + if (length < min_length) { + ERROR("Characteristics length %d is too small", length); + EXIT1(return NDIS_STATUS_BAD_CHARACTERISTICS); + } + + TRACE1("%d.%d, %d, %u", mp->major_version, mp->minor_version, length, + (u32)sizeof(struct miniport)); + wrap_driver = IoGetDriverObjectExtension(drv_obj, + (void *)WRAP_DRIVER_CLIENT_ID); + if (!wrap_driver) { + ERROR("couldn't get wrap_driver"); + EXIT1(return NDIS_STATUS_RESOURCES); + } + if (IoAllocateDriverObjectExtension( + drv_obj, (void *)NDIS_DRIVER_CLIENT_ID, + sizeof(*ndis_driver), (void **)&ndis_driver) != + STATUS_SUCCESS) + EXIT1(return NDIS_STATUS_RESOURCES); + wrap_driver->ndis_driver = ndis_driver; + TRACE1("driver: %p", ndis_driver); + memcpy(&ndis_driver->mp, mp, min_t(int, sizeof(*mp), length)); + + DBG_BLOCK(2) { + int i; + void **func; + char *mp_funcs[] = { + "queryinfo", "reconfig", "reset", "send", "setinfo", + "tx_data", "return_packet", "send_packets", + "alloc_complete", "co_create_vc", "co_delete_vc", + "co_activate_vc", "co_deactivate_vc", + "co_send_packets", "co_request", "cancel_send_packets", + "pnp_event_notify", "shutdown", + }; + func = (void **)&ndis_driver->mp.queryinfo; + for (i = 0; i < (sizeof(mp_funcs) / sizeof(mp_funcs[0])); i++) + TRACE2("function '%s' is at %p", mp_funcs[i], func[i]); + } + EXIT1(return NDIS_STATUS_SUCCESS); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisMRegisterDevice,6) + (struct driver_object *drv_obj, struct unicode_string *dev_name, + struct unicode_string *link, void **funcs, + struct device_object **dev_obj, void **dev_obj_handle) +{ + NTSTATUS status; + struct device_object *tmp; + int i; + + ENTER1("%p, %p, %p", drv_obj, dev_name, link); + status = IoCreateDevice(drv_obj, 0, dev_name, FILE_DEVICE_NETWORK, 0, + FALSE, &tmp); + + if (status != STATUS_SUCCESS) + EXIT1(return NDIS_STATUS_RESOURCES); + if (link) + status = IoCreateSymbolicLink(link, dev_name); + if (status != STATUS_SUCCESS) { + IoDeleteDevice(tmp); + EXIT1(return NDIS_STATUS_RESOURCES); + } + + *dev_obj = tmp; + *dev_obj_handle = *dev_obj; + for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++) + if (funcs[i] && i != IRP_MJ_PNP && i != IRP_MJ_POWER) { + drv_obj->major_func[i] = funcs[i]; + TRACE1("mj_fn for 0x%x is at %p", i, funcs[i]); + } + EXIT1(return NDIS_STATUS_SUCCESS); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisMDeregisterDevice,1) + (struct device_object *dev_obj) +{ + ENTER2("%p", dev_obj); + IoDeleteDevice(dev_obj); + return NDIS_STATUS_SUCCESS; +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisAllocateMemoryWithTag,3) + (void **dest, UINT length, ULONG tag) +{ + void *addr; + + assert_irql(_irql_ <= DISPATCH_LEVEL); + addr = ExAllocatePoolWithTag(NonPagedPool, length, tag); + TRACE4("%p", addr); + if (addr) { + *dest = addr; + EXIT4(return NDIS_STATUS_SUCCESS); + } else + EXIT4(return NDIS_STATUS_FAILURE); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisAllocateMemory,4) + (void **dest, UINT length, UINT flags, NDIS_PHY_ADDRESS highest_address) +{ + return NdisAllocateMemoryWithTag(dest, length, 0); +} + +/* length_tag is either length or tag, depending on if + * NdisAllocateMemory or NdisAllocateMemoryTag is used to allocate + * memory */ +wstdcall void WIN_FUNC(NdisFreeMemory,3) + (void *addr, UINT length_tag, UINT flags) +{ + TRACE4("%p", addr); + ExFreePool(addr); +} + +noregparm void WIN_FUNC(NdisWriteErrorLogEntry,12) + (struct driver_object *drv_obj, ULONG error, ULONG count, ...) +{ + va_list args; + int i; + ULONG code; + + va_start(args, count); + ERROR("log: %08X, count: %d, return_address: %p", + error, count, __builtin_return_address(0)); + for (i = 0; i < count; i++) { + code = va_arg(args, ULONG); + ERROR("code: 0x%x", code); + } + va_end(args); + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisOpenConfiguration,3) + (NDIS_STATUS *status, struct ndis_mp_block **conf_handle, + struct ndis_mp_block *handle) +{ + ENTER2("%p", conf_handle); + *conf_handle = handle; + *status = NDIS_STATUS_SUCCESS; + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisOpenProtocolConfiguration,3) + (NDIS_STATUS *status, void **confhandle, + struct unicode_string *section) +{ + ENTER2("%p", confhandle); + *status = NDIS_STATUS_SUCCESS; + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisOpenConfigurationKeyByName,4) + (NDIS_STATUS *status, void *handle, + struct unicode_string *key, void **subkeyhandle) +{ + struct ansi_string ansi; + ENTER2(""); + if (RtlUnicodeStringToAnsiString(&ansi, key, TRUE) == STATUS_SUCCESS) { + TRACE2("%s", ansi.buf); + RtlFreeAnsiString(&ansi); + } + *subkeyhandle = handle; + *status = NDIS_STATUS_SUCCESS; + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisOpenConfigurationKeyByIndex,5) + (NDIS_STATUS *status, void *handle, ULONG index, + struct unicode_string *key, void **subkeyhandle) +{ + ENTER2("%u", index); +// *subkeyhandle = handle; + *status = NDIS_STATUS_FAILURE; + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisCloseConfiguration,1) + (void *handle) +{ + /* instead of freeing all configuration parameters as we are + * supposed to do here, we free them when the device is + * removed */ + ENTER2("%p", handle); + return; +} + +wstdcall void WIN_FUNC(NdisOpenFile,5) + (NDIS_STATUS *status, struct wrap_bin_file **file, + UINT *filelength, struct unicode_string *filename, + NDIS_PHY_ADDRESS highest_address) +{ + struct ansi_string ansi; + struct wrap_bin_file *bin_file; + + ENTER2("%p, %d, %llx, %p", status, *filelength, highest_address, *file); + if (RtlUnicodeStringToAnsiString(&ansi, filename, TRUE) != + STATUS_SUCCESS) { + *status = NDIS_STATUS_RESOURCES; + EXIT2(return); + } + TRACE2("%s", ansi.buf); + bin_file = get_bin_file(ansi.buf); + if (bin_file) { + *file = bin_file; + *filelength = bin_file->size; + *status = NDIS_STATUS_SUCCESS; + } else + *status = NDIS_STATUS_FILE_NOT_FOUND; + + RtlFreeAnsiString(&ansi); + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisMapFile,3) + (NDIS_STATUS *status, void **mappedbuffer, struct wrap_bin_file *file) +{ + ENTER2("%p", file); + + if (!file) { + *status = NDIS_STATUS_ALREADY_MAPPED; + EXIT2(return); + } + + *status = NDIS_STATUS_SUCCESS; + *mappedbuffer = file->data; + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisUnmapFile,1) + (struct wrap_bin_file *file) +{ + ENTER2("%p", file); + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisCloseFile,1) + (struct wrap_bin_file *file) +{ + ENTER2("%p", file); + free_bin_file(file); + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisGetSystemUpTime,1) + (ULONG *ms) +{ + *ms = 1000 * jiffies / HZ; + EXIT5(return); +} + +wstdcall ULONG WIN_FUNC(NDIS_BUFFER_TO_SPAN_PAGES,1) + (ndis_buffer *buffer) +{ + ULONG n, length; + + if (buffer == NULL) + EXIT2(return 0); + if (MmGetMdlByteCount(buffer) == 0) + EXIT2(return 1); + + length = MmGetMdlByteCount(buffer); + n = SPAN_PAGES(MmGetMdlVirtualAddress(buffer), length); + TRACE4("%p, %p, %d, %d", buffer->startva, buffer->mappedsystemva, + length, n); + EXIT3(return n); +} + +wstdcall void WIN_FUNC(NdisGetBufferPhysicalArraySize,2) + (ndis_buffer *buffer, UINT *arraysize) +{ + ENTER3("%p", buffer); + *arraysize = NDIS_BUFFER_TO_SPAN_PAGES(buffer); + EXIT3(return); +} + +static struct ndis_configuration_parameter * +ndis_encode_setting(struct wrap_device_setting *setting, + enum ndis_parameter_type type) +{ + struct ansi_string ansi; + struct ndis_configuration_parameter *param; + + param = setting->encoded; + if (param) { + if (param->type == type) + EXIT2(return param); + if (param->type == NdisParameterString) + RtlFreeUnicodeString(¶m->data.string); + setting->encoded = NULL; + } else + param = ExAllocatePoolWithTag(NonPagedPool, sizeof(*param), 0); + if (!param) { + ERROR("couldn't allocate memory"); + return NULL; + } + switch(type) { + case NdisParameterInteger: + param->data.integer = simple_strtol(setting->value, NULL, 0); + TRACE2("0x%x", (ULONG)param->data.integer); + break; + case NdisParameterHexInteger: + param->data.integer = simple_strtol(setting->value, NULL, 16); + TRACE2("0x%x", (ULONG)param->data.integer); + break; + case NdisParameterString: + RtlInitAnsiString(&ansi, setting->value); + TRACE2("'%s'", ansi.buf); + if (RtlAnsiStringToUnicodeString(¶m->data.string, + &ansi, TRUE)) { + ExFreePool(param); + EXIT2(return NULL); + } + break; + case NdisParameterBinary: + param->data.integer = simple_strtol(setting->value, NULL, 2); + TRACE2("0x%x", (ULONG)param->data.integer); + break; + default: + ERROR("unknown type: %d", type); + ExFreePool(param); + return NULL; + } + param->type = type; + setting->encoded = param; + EXIT2(return param); +} + +static int ndis_decode_setting(struct wrap_device_setting *setting, + struct ndis_configuration_parameter *param) +{ + struct ansi_string ansi; + struct ndis_configuration_parameter *prev; + + ENTER2("%p, %p", setting, param); + prev = setting->encoded; + if (prev && prev->type == NdisParameterString) { + RtlFreeUnicodeString(&prev->data.string); + setting->encoded = NULL; + } + switch(param->type) { + case NdisParameterInteger: + snprintf(setting->value, sizeof(u32), "%u", + param->data.integer); + setting->value[sizeof(ULONG)] = 0; + break; + case NdisParameterHexInteger: + snprintf(setting->value, sizeof(u32), "%x", + param->data.integer); + setting->value[sizeof(ULONG)] = 0; + break; + case NdisParameterString: + ansi.buf = setting->value; + ansi.max_length = MAX_SETTING_VALUE_LEN; + if ((RtlUnicodeStringToAnsiString(&ansi, ¶m->data.string, + FALSE) != STATUS_SUCCESS) + || ansi.length >= MAX_SETTING_VALUE_LEN) { + EXIT1(return -1); + } + if (ansi.length == ansi.max_length) + ansi.length--; + setting->value[ansi.length] = 0; + break; + case NdisParameterBinary: + snprintf(setting->value, sizeof(u32), "%u", + param->data.integer); + setting->value[sizeof(ULONG)] = 0; + break; + default: + TRACE2("unknown setting type: %d", param->type); + return -1; + } + TRACE2("setting changed %s='%s', %d", setting->name, setting->value, + ansi.length); + return 0; +} + +static int read_setting(struct nt_list *setting_list, char *keyname, int length, + struct ndis_configuration_parameter **param, + enum ndis_parameter_type type) +{ + struct wrap_device_setting *setting; + if (down_interruptible(&loader_mutex)) + WARNING("couldn't obtain loader_mutex"); + nt_list_for_each_entry(setting, setting_list, list) { + if (strnicmp(keyname, setting->name, length) == 0) { + TRACE2("setting %s='%s'", keyname, setting->value); + up(&loader_mutex); + *param = ndis_encode_setting(setting, type); + if (*param) + EXIT2(return 0); + else + EXIT2(return -1); + } + } + up(&loader_mutex); + EXIT2(return -1); +} + +wstdcall void WIN_FUNC(NdisReadConfiguration,5) + (NDIS_STATUS *status, struct ndis_configuration_parameter **param, + struct ndis_mp_block *nmb, struct unicode_string *key, + enum ndis_parameter_type type) +{ + struct ansi_string ansi; + int ret; + + ENTER2("nmb: %p", nmb); + ret = RtlUnicodeStringToAnsiString(&ansi, key, TRUE); + if (ret != STATUS_SUCCESS || ansi.buf == NULL) { + *param = NULL; + *status = NDIS_STATUS_FAILURE; + RtlFreeAnsiString(&ansi); + EXIT2(return); + } + TRACE2("%d, %s", type, ansi.buf); + + if (read_setting(&nmb->wnd->wd->settings, ansi.buf, + ansi.length, param, type) == 0 || + read_setting(&nmb->wnd->wd->driver->settings, ansi.buf, + ansi.length, param, type) == 0) + *status = NDIS_STATUS_SUCCESS; + else { + TRACE2("setting %s not found (type:%d)", ansi.buf, type); + *status = NDIS_STATUS_FAILURE; + } + RtlFreeAnsiString(&ansi); + EXIT2(return); + +} + +wstdcall void WIN_FUNC(NdisWriteConfiguration,4) + (NDIS_STATUS *status, struct ndis_mp_block *nmb, + struct unicode_string *key, struct ndis_configuration_parameter *param) +{ + struct ansi_string ansi; + char *keyname; + struct wrap_device_setting *setting; + + ENTER2("nmb: %p", nmb); + if (RtlUnicodeStringToAnsiString(&ansi, key, TRUE)) { + *status = NDIS_STATUS_FAILURE; + EXIT2(return); + } + keyname = ansi.buf; + TRACE2("%s", keyname); + + if (down_interruptible(&loader_mutex)) + WARNING("couldn't obtain loader_mutex"); + nt_list_for_each_entry(setting, &nmb->wnd->wd->settings, list) { + if (strnicmp(keyname, setting->name, ansi.length) == 0) { + up(&loader_mutex); + if (ndis_decode_setting(setting, param)) + *status = NDIS_STATUS_FAILURE; + else + *status = NDIS_STATUS_SUCCESS; + RtlFreeAnsiString(&ansi); + EXIT2(return); + } + } + up(&loader_mutex); + setting = kzalloc(sizeof(*setting), GFP_KERNEL); + if (setting) { + if (ansi.length == ansi.max_length) + ansi.length--; + memcpy(setting->name, keyname, ansi.length); + setting->name[ansi.length] = 0; + if (ndis_decode_setting(setting, param)) + *status = NDIS_STATUS_FAILURE; + else { + *status = NDIS_STATUS_SUCCESS; + if (down_interruptible(&loader_mutex)) + WARNING("couldn't obtain loader_mutex"); + InsertTailList(&nmb->wnd->wd->settings, &setting->list); + up(&loader_mutex); + } + } else + *status = NDIS_STATUS_RESOURCES; + + RtlFreeAnsiString(&ansi); + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisReadNetworkAddress,4) + (NDIS_STATUS *status, void **addr, UINT *len, + struct ndis_mp_block *nmb) +{ + struct ndis_device *wnd = nmb->wnd; + struct ndis_configuration_parameter *param; + struct unicode_string key; + struct ansi_string ansi; + typeof(wnd->mac) mac; + int i, ret; + + ENTER2("%p", nmb); + RtlInitAnsiString(&ansi, "NetworkAddress"); + *status = NDIS_STATUS_FAILURE; + if (RtlAnsiStringToUnicodeString(&key, &ansi, TRUE) != STATUS_SUCCESS) + EXIT1(return); + + NdisReadConfiguration(&ret, ¶m, nmb, &key, NdisParameterString); + RtlFreeUnicodeString(&key); + if (ret != NDIS_STATUS_SUCCESS) + EXIT1(return); + ret = RtlUnicodeStringToAnsiString(&ansi, ¶m->data.string, TRUE); + if (ret != STATUS_SUCCESS) + EXIT1(return); + + i = 0; + if (ansi.length >= 2 * sizeof(mac)) { + for (i = 0; i < sizeof(mac); i++) { + char c[3]; + int x; + c[0] = ansi.buf[i*2]; + c[1] = ansi.buf[i*2+1]; + c[2] = 0; + ret = sscanf(c, "%x", &x); + if (ret != 1) + break; + mac[i] = x; + } + } + TRACE2("%s, %d, " MACSTR, ansi.buf, i, MAC2STR(mac)); + RtlFreeAnsiString(&ansi); + if (i == sizeof(mac)) { + memcpy(wnd->mac, mac, sizeof(wnd->mac)); + *len = sizeof(mac); + *addr = wnd->mac; + *status = NDIS_STATUS_SUCCESS; + } + EXIT1(return); +} + +wstdcall void WIN_FUNC(NdisInitializeString,2) + (struct unicode_string *dest, UCHAR *src) +{ + struct ansi_string ansi; + + ENTER2(""); + if (src == NULL) { + dest->length = dest->max_length = 0; + dest->buf = NULL; + } else { + RtlInitAnsiString(&ansi, src); + /* the string is freed with NdisFreeMemory */ + RtlAnsiStringToUnicodeString(dest, &ansi, TRUE); + } + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisInitAnsiString,2) + (struct ansi_string *dst, CHAR *src) +{ + RtlInitAnsiString(dst, src); + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisInitUnicodeString,2) + (struct unicode_string *dest, const wchar_t *src) +{ + RtlInitUnicodeString(dest, src); + return; +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisAnsiStringToUnicodeString,2) + (struct unicode_string *dst, struct ansi_string *src) +{ + ENTER2(""); + if (dst == NULL || src == NULL) + EXIT2(return NDIS_STATUS_FAILURE); + if (RtlAnsiStringToUnicodeString(dst, src, FALSE) == STATUS_SUCCESS) + return NDIS_STATUS_SUCCESS; + else + return NDIS_STATUS_FAILURE; +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisUnicodeStringToAnsiString,2) + (struct ansi_string *dst, struct unicode_string *src) +{ + ENTER2(""); + if (dst == NULL || src == NULL) + EXIT2(return NDIS_STATUS_FAILURE); + if (RtlUnicodeStringToAnsiString(dst, src, FALSE) == STATUS_SUCCESS) + return NDIS_STATUS_SUCCESS; + else + return NDIS_STATUS_FAILURE; +} + +wstdcall NTSTATUS WIN_FUNC(NdisUpcaseUnicodeString,2) + (struct unicode_string *dst, struct unicode_string *src) +{ + EXIT2(return RtlUpcaseUnicodeString(dst, src, FALSE)); +} + +wstdcall void WIN_FUNC(NdisMSetAttributesEx,5) + (struct ndis_mp_block *nmb, void *mp_ctx, + UINT hangcheck_interval, UINT attributes, ULONG adaptertype) +{ + struct ndis_device *wnd; + + ENTER1("%p, %p, %d, %08x, %d", nmb, mp_ctx, hangcheck_interval, + attributes, adaptertype); + wnd = nmb->wnd; + nmb->mp_ctx = mp_ctx; + wnd->attributes = attributes; + + if ((attributes & NDIS_ATTRIBUTE_BUS_MASTER) && + wrap_is_pci_bus(wnd->wd->dev_bus)) + pci_set_master(wnd->wd->pci.pdev); + + if (hangcheck_interval > 0) + wnd->hangcheck_interval = 2 * hangcheck_interval * HZ; + else + wnd->hangcheck_interval = 2 * HZ; + + EXIT1(return); +} + +wstdcall ULONG WIN_FUNC(NdisReadPciSlotInformation,5) + (struct ndis_mp_block *nmb, ULONG slot, + ULONG offset, char *buf, ULONG len) +{ + struct wrap_device *wd = nmb->wnd->wd; + ULONG i; + for (i = 0; i < len; i++) + if (pci_read_config_byte(wd->pci.pdev, offset + i, &buf[i]) != + PCIBIOS_SUCCESSFUL) + break; + DBG_BLOCK(2) { + if (i != len) + WARNING("%u, %u", i, len); + } + return i; +} + +wstdcall ULONG WIN_FUNC(NdisImmediateReadPciSlotInformation,5) + (struct ndis_mp_block *nmb, ULONG slot, + ULONG offset, char *buf, ULONG len) +{ + return NdisReadPciSlotInformation(nmb, slot, offset, buf, len); +} + +wstdcall ULONG WIN_FUNC(NdisWritePciSlotInformation,5) + (struct ndis_mp_block *nmb, ULONG slot, + ULONG offset, char *buf, ULONG len) +{ + struct wrap_device *wd = nmb->wnd->wd; + ULONG i; + for (i = 0; i < len; i++) + if (pci_write_config_byte(wd->pci.pdev, offset + i, buf[i]) != + PCIBIOS_SUCCESSFUL) + break; + DBG_BLOCK(2) { + if (i != len) + WARNING("%u, %u", i, len); + } + return i; +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisMRegisterIoPortRange,4) + (void **virt, struct ndis_mp_block *nmb, UINT start, UINT len) +{ + ENTER3("%08x %08x", start, len); + *virt = (void *)(ULONG_PTR)start; + return NDIS_STATUS_SUCCESS; +} + +wstdcall void WIN_FUNC(NdisMDeregisterIoPortRange,4) + (struct ndis_mp_block *nmb, UINT start, UINT len, void* virt) +{ + ENTER1("%08x %08x", start, len); +} + +wstdcall void WIN_FUNC(NdisReadPortUchar,3) + (struct ndis_mp_block *nmb, ULONG port, char *data) +{ + *data = inb(port); +} + +wstdcall void WIN_FUNC(NdisImmediateReadPortUchar,3) + (struct ndis_mp_block *nmb, ULONG port, char *data) +{ + *data = inb(port); +} + +wstdcall void WIN_FUNC(NdisWritePortUchar,3) + (struct ndis_mp_block *nmb, ULONG port, char data) +{ + outb(data, port); +} + +wstdcall void WIN_FUNC(NdisImmediateWritePortUchar,3) + (struct ndis_mp_block *nmb, ULONG port, char data) +{ + outb(data, port); +} + +wstdcall void WIN_FUNC(NdisMQueryAdapterResources,4) + (NDIS_STATUS *status, struct ndis_mp_block *nmb, + NDIS_RESOURCE_LIST *resource_list, UINT *size) +{ + struct ndis_device *wnd = nmb->wnd; + NDIS_RESOURCE_LIST *list; + UINT resource_length; + + list = &wnd->wd->resource_list->list->partial_resource_list; + resource_length = sizeof(struct cm_partial_resource_list) + + sizeof(struct cm_partial_resource_descriptor) * + (list->count - 1); + TRACE2("%p, %p,%d (%d), %p %d %d", wnd, resource_list, *size, + resource_length, &list->partial_descriptors[list->count-1], + list->partial_descriptors[list->count-1].u.interrupt.level, + list->partial_descriptors[list->count-1].u.interrupt.vector); + if (*size < sizeof(*list)) { + *size = resource_length; + *status = NDIS_STATUS_BUFFER_TOO_SHORT; + } else { + ULONG count; + if (*size >= resource_length) { + *size = resource_length; + count = list->count; + } else { + UINT n = sizeof(*list); + count = 1; + while (count++ < list->count && n < *size) + n += sizeof(list->partial_descriptors); + *size = n; + } + memcpy(resource_list, list, *size); + resource_list->count = count; + *status = NDIS_STATUS_SUCCESS; + } + EXIT2(return); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisMPciAssignResources,3) + (struct ndis_mp_block *nmb, ULONG slot_number, + NDIS_RESOURCE_LIST **resources) +{ + struct ndis_device *wnd = nmb->wnd; + + ENTER2("%p, %p", wnd, wnd->wd->resource_list); + *resources = &wnd->wd->resource_list->list->partial_resource_list; + EXIT2(return NDIS_STATUS_SUCCESS); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisMMapIoSpace,4) + (void __iomem **virt, struct ndis_mp_block *nmb, + NDIS_PHY_ADDRESS phy_addr, UINT len) +{ + struct ndis_device *wnd = nmb->wnd; + + ENTER2("%Lx, %d", phy_addr, len); + *virt = MmMapIoSpace(phy_addr, len, MmCached); + if (*virt == NULL) { + ERROR("ioremap failed"); + EXIT2(return NDIS_STATUS_FAILURE); + } + wnd->mem_start = phy_addr; + wnd->mem_end = phy_addr + len; + TRACE2("%p", *virt); + EXIT2(return NDIS_STATUS_SUCCESS); +} + +wstdcall void WIN_FUNC(NdisMUnmapIoSpace,3) + (struct ndis_mp_block *nmb, void __iomem *virt, UINT len) +{ + ENTER2("%p, %d", virt, len); + MmUnmapIoSpace(virt, len); + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisAllocateSpinLock,1) + (struct ndis_spinlock *lock) +{ + TRACE4("lock %p, %p", lock, &lock->klock); + KeInitializeSpinLock(&lock->klock); + lock->irql = PASSIVE_LEVEL; + return; +} + +wstdcall void WIN_FUNC(NdisFreeSpinLock,1) + (struct ndis_spinlock *lock) +{ + TRACE4("lock %p, %p", lock, &lock->klock); + return; +} + +wstdcall void WIN_FUNC(NdisAcquireSpinLock,1) + (struct ndis_spinlock *lock) +{ + ENTER6("lock %p, %p", lock, &lock->klock); +// assert_irql(_irql_ <= DISPATCH_LEVEL); + lock->irql = nt_spin_lock_irql(&lock->klock, DISPATCH_LEVEL); + return; +} + +wstdcall void WIN_FUNC(NdisReleaseSpinLock,1) + (struct ndis_spinlock *lock) +{ + ENTER6("lock %p, %p", lock, &lock->klock); +// assert_irql(_irql_ == DISPATCH_LEVEL); + nt_spin_unlock_irql(&lock->klock, lock->irql); + return; +} + +wstdcall void WIN_FUNC(NdisDprAcquireSpinLock,1) + (struct ndis_spinlock *lock) +{ + ENTER6("lock %p", &lock->klock); +// assert_irql(_irql_ == DISPATCH_LEVEL); + nt_spin_lock(&lock->klock); + return; +} + +wstdcall void WIN_FUNC(NdisDprReleaseSpinLock,1) + (struct ndis_spinlock *lock) +{ + ENTER6("lock %p", &lock->klock); +// assert_irql(_irql_ == DISPATCH_LEVEL); + nt_spin_unlock(&lock->klock); + return; +} + +wstdcall void WIN_FUNC(NdisInitializeReadWriteLock,1) + (struct ndis_rw_lock *rw_lock) +{ + ENTER3("%p", rw_lock); + memset(rw_lock, 0, sizeof(*rw_lock)); + KeInitializeSpinLock(&rw_lock->klock); + return; +} + +/* read/write locks are implemented in a rather simplisitic way - we + * should probably use Linux's rw_lock implementation */ + +wstdcall void WIN_FUNC(NdisAcquireReadWriteLock,3) + (struct ndis_rw_lock *rw_lock, BOOLEAN write, + struct lock_state *lock_state) +{ + if (write) { + while (1) { + if (cmpxchg(&rw_lock->count, 0, -1) == 0) + return; + while (rw_lock->count) + cpu_relax(); + } + return; + } + while (1) { + typeof(rw_lock->count) count; + while ((count = rw_lock->count) < 0) + cpu_relax(); + if (cmpxchg(&rw_lock->count, count, count + 1) == count) + return; + } +} + +wstdcall void WIN_FUNC(NdisReleaseReadWriteLock,2) + (struct ndis_rw_lock *rw_lock, struct lock_state *lock_state) +{ + if (rw_lock->count > 0) + pre_atomic_add(rw_lock->count, -1); + else if (rw_lock->count == -1) + rw_lock->count = 0; + else + WARNING("invalid state: %d", rw_lock->count); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisMAllocateMapRegisters,5) + (struct ndis_mp_block *nmb, UINT dmachan, + NDIS_DMA_SIZE dmasize, ULONG basemap, ULONG max_buf_size) +{ + struct ndis_device *wnd = nmb->wnd; + + ENTER2("%p, %d %d %d %d", wnd, dmachan, dmasize, basemap, max_buf_size); + if (wnd->dma_map_count > 0) { + WARNING("%s: map registers already allocated: %u", + wnd->net_dev->name, wnd->dma_map_count); + EXIT2(return NDIS_STATUS_RESOURCES); + } + if (dmasize == NDIS_DMA_24BITS) { + if (pci_set_dma_mask(wnd->wd->pci.pdev, DMA_BIT_MASK(24)) || + pci_set_consistent_dma_mask(wnd->wd->pci.pdev, + DMA_BIT_MASK(24))) + WARNING("setting dma mask failed"); + } else if (dmasize == NDIS_DMA_32BITS) { + /* consistent dma is in low 32-bits by default */ + if (pci_set_dma_mask(wnd->wd->pci.pdev, DMA_BIT_MASK(32))) + WARNING("setting dma mask failed"); +#ifdef CONFIG_X86_64 + } else if (dmasize == NDIS_DMA_64BITS) { + if (pci_set_dma_mask(wnd->wd->pci.pdev, DMA_BIT_MASK(64)) || + pci_set_consistent_dma_mask(wnd->wd->pci.pdev, + DMA_BIT_MASK(64))) + WARNING("setting dma mask failed"); + else + wnd->net_dev->features |= NETIF_F_HIGHDMA; +#endif + } + /* since memory for buffer is allocated with kmalloc, buffer + * is physically contiguous, so entire map will fit in one + * register */ + if (basemap > 64) { + WARNING("Windows driver %s requesting too many (%u) " + "map registers", wnd->wd->driver->name, basemap); + /* As per NDIS, NDIS_STATUS_RESOURCES should be + * returned, but with that Atheros PCI driver fails - + * for now tolerate it */ +// EXIT2(return NDIS_STATUS_RESOURCES); + } + + wnd->dma_map_addr = kmalloc(basemap * sizeof(*(wnd->dma_map_addr)), + GFP_KERNEL); + if (!wnd->dma_map_addr) + EXIT2(return NDIS_STATUS_RESOURCES); + memset(wnd->dma_map_addr, 0, basemap * sizeof(*(wnd->dma_map_addr))); + wnd->dma_map_count = basemap; + TRACE2("%u", wnd->dma_map_count); + EXIT2(return NDIS_STATUS_SUCCESS); +} + +wstdcall void WIN_FUNC(NdisMFreeMapRegisters,1) + (struct ndis_mp_block *nmb) +{ + struct ndis_device *wnd = nmb->wnd; + int i; + + ENTER2("wnd: %p", wnd); + if (wnd->dma_map_addr) { + for (i = 0; i < wnd->dma_map_count; i++) { + if (wnd->dma_map_addr[i]) + WARNING("%s: dma addr %p not freed by " + "Windows driver", wnd->net_dev->name, + (void *)wnd->dma_map_addr[i]); + } + kfree(wnd->dma_map_addr); + wnd->dma_map_addr = NULL; + } else + WARNING("map registers already freed?"); + wnd->dma_map_count = 0; + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisMStartBufferPhysicalMapping,6) + (struct ndis_mp_block *nmb, ndis_buffer *buf, + ULONG index, BOOLEAN write_to_dev, + struct ndis_phy_addr_unit *phy_addr_array, UINT *array_size) +{ + struct ndis_device *wnd = nmb->wnd; + + ENTER3("%p, %p, %u, %u", wnd, buf, index, wnd->dma_map_count); + if (unlikely(wnd->sg_dma_size || !write_to_dev || + index >= wnd->dma_map_count)) { + WARNING("invalid request: %d, %d, %d, %d", wnd->sg_dma_size, + write_to_dev, index, wnd->dma_map_count); + phy_addr_array[0].phy_addr = 0; + phy_addr_array[0].length = 0; + *array_size = 0; + return; + } + if (wnd->dma_map_addr[index]) { + TRACE2("buffer %p at %d is already mapped: %lx", buf, index, + (unsigned long)wnd->dma_map_addr[index]); +// *array_size = 1; + return; + } + TRACE3("%p, %p, %u", buf, MmGetSystemAddressForMdl(buf), + MmGetMdlByteCount(buf)); + DBG_BLOCK(4) { + dump_bytes(__func__, MmGetSystemAddressForMdl(buf), + MmGetMdlByteCount(buf)); + } + wnd->dma_map_addr[index] = + PCI_DMA_MAP_SINGLE(wnd->wd->pci.pdev, + MmGetSystemAddressForMdl(buf), + MmGetMdlByteCount(buf), PCI_DMA_TODEVICE); + phy_addr_array[0].phy_addr = wnd->dma_map_addr[index]; + phy_addr_array[0].length = MmGetMdlByteCount(buf); + TRACE4("%Lx, %d, %d", phy_addr_array[0].phy_addr, + phy_addr_array[0].length, index); + *array_size = 1; +} + +wstdcall void WIN_FUNC(NdisMCompleteBufferPhysicalMapping,3) + (struct ndis_mp_block *nmb, ndis_buffer *buf, ULONG index) +{ + struct ndis_device *wnd = nmb->wnd; + + ENTER3("%p, %p %u (%u)", wnd, buf, index, wnd->dma_map_count); + + if (unlikely(wnd->sg_dma_size)) + WARNING("buffer %p may have been unmapped already", buf); + if (index >= wnd->dma_map_count) { + ERROR("invalid map register (%u >= %u)", + index, wnd->dma_map_count); + return; + } + TRACE4("%lx", (unsigned long)wnd->dma_map_addr[index]); + if (wnd->dma_map_addr[index]) { + PCI_DMA_UNMAP_SINGLE(wnd->wd->pci.pdev, wnd->dma_map_addr[index], + MmGetMdlByteCount(buf), PCI_DMA_TODEVICE); + wnd->dma_map_addr[index] = 0; + } else + WARNING("map registers at %u not used", index); +} + +wstdcall void WIN_FUNC(NdisMAllocateSharedMemory,5) + (struct ndis_mp_block *nmb, ULONG size, + BOOLEAN cached, void **virt, NDIS_PHY_ADDRESS *phys) +{ + dma_addr_t dma_addr; + struct wrap_device *wd = nmb->wnd->wd; + + ENTER3("size: %u, cached: %d", size, cached); + *virt = PCI_DMA_ALLOC_COHERENT(wd->pci.pdev, size, &dma_addr); + if (*virt) + *phys = dma_addr; + else + WARNING("couldn't allocate %d bytes of %scached DMA memory", + size, cached ? "" : "un-"); + EXIT3(return); +} + +wstdcall void WIN_FUNC(NdisMFreeSharedMemory,5) + (struct ndis_mp_block *nmb, ULONG size, BOOLEAN cached, + void *virt, NDIS_PHY_ADDRESS addr) +{ + struct wrap_device *wd = nmb->wnd->wd; + ENTER3("%p, %Lx, %u", virt, addr, size); + PCI_DMA_FREE_COHERENT(wd->pci.pdev, size, virt, addr); + EXIT3(return); +} + +wstdcall void alloc_shared_memory_async(void *arg1, void *arg2) +{ + struct ndis_device *wnd; + struct alloc_shared_mem *alloc_shared_mem; + struct miniport *mp; + void *virt; + NDIS_PHY_ADDRESS phys; + KIRQL irql; + + wnd = arg1; + alloc_shared_mem = arg2; + mp = &wnd->wd->driver->ndis_driver->mp; + NdisMAllocateSharedMemory(wnd->nmb, alloc_shared_mem->size, + alloc_shared_mem->cached, &virt, &phys); + irql = serialize_lock_irql(wnd); + assert_irql(_irql_ == DISPATCH_LEVEL); + LIN2WIN5(mp->alloc_complete, wnd->nmb, virt, + &phys, alloc_shared_mem->size, alloc_shared_mem->ctx); + serialize_unlock_irql(wnd, irql); + kfree(alloc_shared_mem); +} +WIN_FUNC_DECL(alloc_shared_memory_async,2) + +wstdcall NDIS_STATUS WIN_FUNC(NdisMAllocateSharedMemoryAsync,4) + (struct ndis_mp_block *nmb, ULONG size, BOOLEAN cached, void *ctx) +{ + struct ndis_device *wnd = nmb->wnd; + struct alloc_shared_mem *alloc_shared_mem; + + ENTER3("wnd: %p", wnd); + alloc_shared_mem = kmalloc(sizeof(*alloc_shared_mem), irql_gfp()); + if (!alloc_shared_mem) { + WARNING("couldn't allocate memory"); + return NDIS_STATUS_FAILURE; + } + + alloc_shared_mem->size = size; + alloc_shared_mem->cached = cached; + alloc_shared_mem->ctx = ctx; + if (schedule_ntos_work_item(WIN_FUNC_PTR(alloc_shared_memory_async,2), + wnd, alloc_shared_mem)) + EXIT3(return NDIS_STATUS_FAILURE); + EXIT3(return NDIS_STATUS_PENDING); +} + +/* Some drivers allocate NDIS_BUFFER (aka MDL) very often; instead of + * allocating and freeing with kernel functions, we chain them into + * ndis_buffer_pool. When an MDL is freed, it is added to the list of + * free MDLs. When allocated, we first check if there is one in free + * list and if so just return it; otherwise, we allocate a new one and + * return that. This reduces memory fragmentation. Windows DDK says + * that the driver itself shouldn't check what is returned in + * pool_handle, presumably because buffer pools are not used in + * XP. However, as long as driver follows rest of the semantics - that + * it should indicate maximum number of MDLs used with num_descr and + * pass the same pool_handle in other buffer functions, this should + * work. Sadly, though, NdisFreeBuffer doesn't pass the pool_handle, + * so we use 'process' field of MDL to store pool_handle. */ + +wstdcall void WIN_FUNC(NdisAllocateBufferPool,3) + (NDIS_STATUS *status, struct ndis_buffer_pool **pool_handle, + UINT num_descr) +{ + struct ndis_buffer_pool *pool; + + ENTER1("buffers: %d", num_descr); + pool = kmalloc(sizeof(*pool), irql_gfp()); + if (!pool) { + *status = NDIS_STATUS_RESOURCES; + EXIT3(return); + } + spin_lock_init(&pool->lock); + pool->max_descr = num_descr; + pool->num_allocated_descr = 0; + pool->free_descr = NULL; + *pool_handle = pool; + *status = NDIS_STATUS_SUCCESS; + TRACE1("pool: %p, num_descr: %d", pool, num_descr); + EXIT1(return); +} + +wstdcall void WIN_FUNC(NdisAllocateBuffer,5) + (NDIS_STATUS *status, ndis_buffer **buffer, + struct ndis_buffer_pool *pool, void *virt, UINT length) +{ + ndis_buffer *descr; + + ENTER4("pool: %p (%d)", pool, pool->num_allocated_descr); + /* NDIS drivers should call this at DISPATCH_LEVEL, but + * alloc_tx_packet calls at SOFT_IRQL */ + assert_irql(_irql_ <= SOFT_LEVEL); + if (!pool) { + *status = NDIS_STATUS_FAILURE; + *buffer = NULL; + EXIT4(return); + } + spin_lock_bh(&pool->lock); + if ((descr = pool->free_descr)) + pool->free_descr = descr->next; + spin_unlock_bh(&pool->lock); + if (descr) { + typeof(descr->flags) flags; + flags = descr->flags; + memset(descr, 0, sizeof(*descr)); + MmInitializeMdl(descr, virt, length); + if (flags & MDL_CACHE_ALLOCATED) + descr->flags |= MDL_CACHE_ALLOCATED; + } else { + if (pool->num_allocated_descr > pool->max_descr) { + TRACE2("pool %p is full: %d(%d)", pool, + pool->num_allocated_descr, pool->max_descr); +#ifndef ALLOW_POOL_OVERFLOW + *status = NDIS_STATUS_FAILURE; + *buffer = NULL; + return; +#endif + } + descr = allocate_init_mdl(virt, length); + if (!descr) { + WARNING("couldn't allocate buffer"); + *status = NDIS_STATUS_FAILURE; + *buffer = NULL; + EXIT4(return); + } + TRACE4("buffer %p for %p, %d", descr, virt, length); + atomic_inc_var(pool->num_allocated_descr); + } + /* TODO: make sure this mdl can map given buffer */ + MmBuildMdlForNonPagedPool(descr); +// descr->flags |= MDL_ALLOCATED_FIXED_SIZE | +// MDL_MAPPED_TO_SYSTEM_VA | MDL_PAGES_LOCKED; + descr->pool = pool; + *buffer = descr; + *status = NDIS_STATUS_SUCCESS; + TRACE4("buffer: %p", descr); + EXIT4(return); +} + +wstdcall void WIN_FUNC(NdisFreeBuffer,1) + (ndis_buffer *buffer) +{ + struct ndis_buffer_pool *pool; + + ENTER4("%p", buffer); + if (!buffer || !buffer->pool) { + ERROR("invalid buffer"); + EXIT4(return); + } + pool = buffer->pool; + if (pool->num_allocated_descr > MAX_ALLOCATED_NDIS_BUFFERS) { + /* NB NB NB: set mdl's 'pool' field to NULL before + * calling free_mdl; otherwise free_mdl calls + * NdisFreeBuffer back */ + atomic_dec_var(pool->num_allocated_descr); + buffer->pool = NULL; + free_mdl(buffer); + } else { + spin_lock_bh(&pool->lock); + buffer->next = pool->free_descr; + pool->free_descr = buffer; + spin_unlock_bh(&pool->lock); + } + EXIT4(return); +} + +wstdcall void WIN_FUNC(NdisFreeBufferPool,1) + (struct ndis_buffer_pool *pool) +{ + ndis_buffer *cur, *next; + + TRACE3("pool: %p", pool); + if (!pool) { + WARNING("invalid pool"); + EXIT3(return); + } + spin_lock_bh(&pool->lock); + cur = pool->free_descr; + while (cur) { + next = cur->next; + cur->pool = NULL; + free_mdl(cur); + cur = next; + } + spin_unlock_bh(&pool->lock); + kfree(pool); + pool = NULL; + EXIT3(return); +} + +wstdcall void WIN_FUNC(NdisAdjustBufferLength,2) + (ndis_buffer *buffer, UINT length) +{ + ENTER4("%p, %d", buffer, length); + buffer->bytecount = length; +} + +wstdcall void WIN_FUNC(NdisQueryBuffer,3) + (ndis_buffer *buffer, void **virt, UINT *length) +{ + ENTER4("buffer: %p", buffer); + if (virt) + *virt = MmGetSystemAddressForMdl(buffer); + *length = MmGetMdlByteCount(buffer); + TRACE4("%p, %u", virt? *virt : NULL, *length); + return; +} + +wstdcall void WIN_FUNC(NdisQueryBufferSafe,4) + (ndis_buffer *buffer, void **virt, UINT *length, + enum mm_page_priority priority) +{ + ENTER4("%p, %p, %p, %d", buffer, virt, length, priority); + if (virt) + *virt = MmGetSystemAddressForMdlSafe(buffer, priority); + *length = MmGetMdlByteCount(buffer); + TRACE4("%p, %u", virt? *virt : NULL, *length); +} + +wstdcall void *WIN_FUNC(NdisBufferVirtualAddress,1) + (ndis_buffer *buffer) +{ + ENTER3("%p", buffer); + return MmGetSystemAddressForMdl(buffer); +} + +wstdcall ULONG WIN_FUNC(NdisBufferLength,1) + (ndis_buffer *buffer) +{ + ENTER3("%p", buffer); + return MmGetMdlByteCount(buffer); +} + +wstdcall void WIN_FUNC(NdisQueryBufferOffset,3) + (ndis_buffer *buffer, UINT *offset, UINT *length) +{ + ENTER3("%p", buffer); + *offset = MmGetMdlByteOffset(buffer); + *length = MmGetMdlByteCount(buffer); + TRACE3("%d, %d", *offset, *length); +} + +wstdcall void WIN_FUNC(NdisUnchainBufferAtBack,2) + (struct ndis_packet *packet, ndis_buffer **buffer) +{ + ndis_buffer *b, *btail; + + ENTER3("%p", packet); + b = packet->private.buffer_head; + if (!b) { + /* no buffer in packet */ + *buffer = NULL; + EXIT3(return); + } + btail = packet->private.buffer_tail; + *buffer = btail; + if (b == btail) { + /* one buffer in packet */ + packet->private.buffer_head = NULL; + packet->private.buffer_tail = NULL; + } else { + while (b->next != btail) + b = b->next; + packet->private.buffer_tail = b; + b->next = NULL; + } + packet->private.valid_counts = FALSE; + EXIT3(return); +} + +wstdcall void WIN_FUNC(NdisUnchainBufferAtFront,2) + (struct ndis_packet *packet, ndis_buffer **buffer) +{ + ENTER3("%p", packet); + if (packet->private.buffer_head == NULL) { + /* no buffer in packet */ + *buffer = NULL; + EXIT3(return); + } + + *buffer = packet->private.buffer_head; + if (packet->private.buffer_head == packet->private.buffer_tail) { + /* one buffer in packet */ + packet->private.buffer_head = NULL; + packet->private.buffer_tail = NULL; + } else + packet->private.buffer_head = (*buffer)->next; + + packet->private.valid_counts = FALSE; + EXIT3(return); +} + +wstdcall void WIN_FUNC(NdisGetFirstBufferFromPacketSafe,6) + (struct ndis_packet *packet, ndis_buffer **first_buffer, + void **first_buffer_va, UINT *first_buffer_length, + UINT *total_buffer_length, enum mm_page_priority priority) +{ + ndis_buffer *b = packet->private.buffer_head; + + ENTER3("%p(%p)", packet, b); + *first_buffer = b; + if (b) { + *first_buffer_va = MmGetSystemAddressForMdlSafe(b, priority); + *first_buffer_length = *total_buffer_length = + MmGetMdlByteCount(b); + for (b = b->next; b; b = b->next) + *total_buffer_length += MmGetMdlByteCount(b); + } else { + *first_buffer_va = NULL; + *first_buffer_length = 0; + *total_buffer_length = 0; + } + TRACE3("%p, %d, %d", *first_buffer_va, *first_buffer_length, + *total_buffer_length); + EXIT3(return); +} + +wstdcall void WIN_FUNC(NdisGetFirstBufferFromPacket,6) + (struct ndis_packet *packet, ndis_buffer **first_buffer, + void **first_buffer_va, UINT *first_buffer_length, + UINT *total_buffer_length, enum mm_page_priority priority) +{ + NdisGetFirstBufferFromPacketSafe(packet, first_buffer, + first_buffer_va, first_buffer_length, + total_buffer_length, + NormalPagePriority); +} + +wstdcall void WIN_FUNC(NdisAllocatePacketPoolEx,5) + (NDIS_STATUS *status, struct ndis_packet_pool **pool_handle, + UINT num_descr, UINT overflowsize, UINT proto_rsvd_length) +{ + struct ndis_packet_pool *pool; + + ENTER3("buffers: %d, length: %d", num_descr, proto_rsvd_length); + pool = kzalloc(sizeof(*pool), irql_gfp()); + if (!pool) { + *status = NDIS_STATUS_RESOURCES; + EXIT3(return); + } + spin_lock_init(&pool->lock); + pool->max_descr = num_descr; + pool->num_allocated_descr = 0; + pool->num_used_descr = 0; + pool->free_descr = NULL; + pool->proto_rsvd_length = proto_rsvd_length; + *pool_handle = pool; + *status = NDIS_STATUS_SUCCESS; + TRACE3("pool: %p", pool); + EXIT3(return); +} + +wstdcall void WIN_FUNC(NdisAllocatePacketPool,4) + (NDIS_STATUS *status, struct ndis_packet_pool **pool_handle, + UINT num_descr, UINT proto_rsvd_length) +{ + NdisAllocatePacketPoolEx(status, pool_handle, num_descr, 0, + proto_rsvd_length); + EXIT3(return); +} + +wstdcall void WIN_FUNC(NdisFreePacketPool,1) + (struct ndis_packet_pool *pool) +{ + struct ndis_packet *packet, *next; + + ENTER3("pool: %p", pool); + if (!pool) { + WARNING("invalid pool"); + EXIT3(return); + } + spin_lock_bh(&pool->lock); + packet = pool->free_descr; + while (packet) { + next = (struct ndis_packet *)packet->reserved[0]; + kfree(packet); + packet = next; + } + pool->num_allocated_descr = 0; + pool->num_used_descr = 0; + pool->free_descr = NULL; + spin_unlock_bh(&pool->lock); + kfree(pool); + EXIT3(return); +} + +wstdcall UINT WIN_FUNC(NdisPacketPoolUsage,1) + (struct ndis_packet_pool *pool) +{ + EXIT4(return pool->num_used_descr); +} + +wstdcall void WIN_FUNC(NdisAllocatePacket,3) + (NDIS_STATUS *status, struct ndis_packet **ndis_packet, + struct ndis_packet_pool *pool) +{ + struct ndis_packet *packet; + int packet_length; + + ENTER4("pool: %p", pool); + if (!pool) { + *status = NDIS_STATUS_RESOURCES; + *ndis_packet = NULL; + EXIT4(return); + } + assert_irql(_irql_ <= SOFT_LEVEL); + if (pool->num_used_descr > pool->max_descr) { + TRACE3("pool %p is full: %d(%d)", pool, + pool->num_used_descr, pool->max_descr); +#ifndef ALLOW_POOL_OVERFLOW + *status = NDIS_STATUS_RESOURCES; + *ndis_packet = NULL; + return; +#endif + } + /* packet has space for 1 byte in protocol_reserved field */ + packet_length = sizeof(*packet) - 1 + pool->proto_rsvd_length + + sizeof(struct ndis_packet_oob_data); + spin_lock_bh(&pool->lock); + if ((packet = pool->free_descr)) + pool->free_descr = (void *)packet->reserved[0]; + spin_unlock_bh(&pool->lock); + if (!packet) { + packet = kmalloc(packet_length, irql_gfp()); + if (!packet) { + WARNING("couldn't allocate packet"); + *status = NDIS_STATUS_RESOURCES; + *ndis_packet = NULL; + return; + } + atomic_inc_var(pool->num_allocated_descr); + } + TRACE4("%p, %p", pool, packet); + atomic_inc_var(pool->num_used_descr); + memset(packet, 0, packet_length); + packet->private.oob_offset = + packet_length - sizeof(struct ndis_packet_oob_data); + packet->private.packet_flags = fPACKET_ALLOCATED_BY_NDIS; + packet->private.pool = pool; + *ndis_packet = packet; + *status = NDIS_STATUS_SUCCESS; + EXIT4(return); +} + +wstdcall void WIN_FUNC(NdisDprAllocatePacket,3) + (NDIS_STATUS *status, struct ndis_packet **packet, + struct ndis_packet_pool *pool) +{ + NdisAllocatePacket(status, packet, pool); +} + +wstdcall void WIN_FUNC(NdisFreePacket,1) + (struct ndis_packet *packet) +{ + struct ndis_packet_pool *pool; + + ENTER4("%p, %p", packet, packet->private.pool); + pool = packet->private.pool; + if (!pool) { + ERROR("invalid pool %p", packet); + EXIT4(return); + } + assert((int)pool->num_used_descr > 0); + atomic_dec_var(pool->num_used_descr); + if (packet->reserved[1]) { + TRACE3("%p, %p", packet, (void *)packet->reserved[1]); + kfree((void *)packet->reserved[1]); + packet->reserved[1] = 0; + } + if (pool->num_allocated_descr > MAX_ALLOCATED_NDIS_PACKETS) { + TRACE3("%p", pool); + atomic_dec_var(pool->num_allocated_descr); + kfree(packet); + } else { + TRACE4("%p, %p, %p", pool, packet, pool->free_descr); + spin_lock_bh(&pool->lock); + packet->reserved[0] = + (typeof(packet->reserved[0]))pool->free_descr; + pool->free_descr = packet; + spin_unlock_bh(&pool->lock); + } + EXIT4(return); +} + +wstdcall struct ndis_packet_stack *WIN_FUNC(NdisIMGetCurrentPacketStack,2) + (struct ndis_packet *packet, BOOLEAN *stacks_remain) +{ + struct ndis_packet_stack *stack; + + if (!packet->reserved[1]) { + stack = kzalloc(2 * sizeof(*stack), irql_gfp()); + TRACE3("%p, %p", packet, stack); + packet->reserved[1] = (typeof(packet->reserved[1]))stack; + } else { + stack = (void *)packet->reserved[1];; + if (xchg(&stack->ndis_reserved[0], 1)) { + stack++; + if (xchg(&stack->ndis_reserved[0], 1)) + stack = NULL; + } + TRACE3("%p", stack); + } + if (stack) + *stacks_remain = TRUE; + else + *stacks_remain = FALSE; + + EXIT3(return stack); +} + +wstdcall void WIN_FUNC(NdisCopyFromPacketToPacketSafe,7) + (struct ndis_packet *dst, UINT dst_offset, UINT num_to_copy, + struct ndis_packet *src, UINT src_offset, UINT *num_copied, + enum mm_page_priority priority) +{ + UINT dst_n, src_n, n, left; + ndis_buffer *dst_buf; + ndis_buffer *src_buf; + + ENTER4(""); + if (!dst || !src) { + *num_copied = 0; + EXIT4(return); + } + + dst_buf = dst->private.buffer_head; + src_buf = src->private.buffer_head; + + if (!dst_buf || !src_buf) { + *num_copied = 0; + EXIT4(return); + } + dst_n = MmGetMdlByteCount(dst_buf) - dst_offset; + src_n = MmGetMdlByteCount(src_buf) - src_offset; + + n = min(src_n, dst_n); + n = min(n, num_to_copy); + memcpy(MmGetSystemAddressForMdl(dst_buf) + dst_offset, + MmGetSystemAddressForMdl(src_buf) + src_offset, n); + + left = num_to_copy - n; + while (left > 0) { + src_offset += n; + dst_offset += n; + dst_n -= n; + src_n -= n; + if (dst_n == 0) { + dst_buf = dst_buf->next; + if (!dst_buf) + break; + dst_n = MmGetMdlByteCount(dst_buf); + dst_offset = 0; + } + if (src_n == 0) { + src_buf = src_buf->next; + if (!src_buf) + break; + src_n = MmGetMdlByteCount(src_buf); + src_offset = 0; + } + + n = min(src_n, dst_n); + n = min(n, left); + memcpy(MmGetSystemAddressForMdl(dst_buf) + dst_offset, + MmGetSystemAddressForMdl(src_buf) + src_offset, n); + left -= n; + } + *num_copied = num_to_copy - left; + EXIT4(return); +} + +wstdcall void WIN_FUNC(NdisCopyFromPacketToPacket,6) + (struct ndis_packet *dst, UINT dst_offset, UINT num_to_copy, + struct ndis_packet *src, UINT src_offset, UINT *num_copied) +{ + NdisCopyFromPacketToPacketSafe(dst, dst_offset, num_to_copy, + src, src_offset, num_copied, + NormalPagePriority); + return; +} + +wstdcall void WIN_FUNC(NdisIMCopySendPerPacketInfo,2) + (struct ndis_packet *dst, struct ndis_packet *src) +{ + struct ndis_packet_oob_data *dst_oob, *src_oob; + dst_oob = NDIS_PACKET_OOB_DATA(dst); + src_oob = NDIS_PACKET_OOB_DATA(src); + memcpy(&dst_oob->ext, &src_oob->ext, sizeof(dst_oob->ext)); + return; +} + +wstdcall void WIN_FUNC(NdisSend,3) + (NDIS_STATUS *status, struct ndis_mp_block *nmb, + struct ndis_packet *packet) +{ + struct ndis_device *wnd = nmb->wnd; + struct miniport *mp; + KIRQL irql; + + mp = &wnd->wd->driver->ndis_driver->mp; + if (mp->send_packets) { + irql = serialize_lock_irql(wnd); + assert_irql(_irql_ == DISPATCH_LEVEL); + LIN2WIN3(mp->send_packets, wnd->nmb->mp_ctx, &packet, 1); + serialize_unlock_irql(wnd, irql); + if (deserialized_driver(wnd)) + *status = NDIS_STATUS_PENDING; + else { + struct ndis_packet_oob_data *oob_data; + oob_data = NDIS_PACKET_OOB_DATA(packet); + *status = oob_data->status; + switch (*status) { + case NDIS_STATUS_SUCCESS: + free_tx_packet(wnd, packet, *status); + break; + case NDIS_STATUS_PENDING: + break; + case NDIS_STATUS_RESOURCES: + wnd->tx_ok = 0; + break; + case NDIS_STATUS_FAILURE: + default: + free_tx_packet(wnd, packet, *status); + break; + } + } + } else { + irql = serialize_lock_irql(wnd); + assert_irql(_irql_ == DISPATCH_LEVEL); + *status = LIN2WIN3(mp->send, wnd->nmb->mp_ctx, packet, 0); + serialize_unlock_irql(wnd, irql); + switch (*status) { + case NDIS_STATUS_SUCCESS: + free_tx_packet(wnd, packet, *status); + break; + case NDIS_STATUS_PENDING: + break; + case NDIS_STATUS_RESOURCES: + wnd->tx_ok = 0; + break; + case NDIS_STATUS_FAILURE: + default: + free_tx_packet(wnd, packet, *status); + break; + } + } + EXIT3(return); +} + +/* called for serialized drivers only */ +wstdcall void mp_timer_dpc(struct kdpc *kdpc, void *ctx, void *arg1, void *arg2) +{ + struct ndis_mp_timer *timer; + struct ndis_mp_block *nmb; + + timer = ctx; + TIMERENTER("%p, %p, %p, %p", timer, timer->func, timer->ctx, timer->nmb); + assert_irql(_irql_ == DISPATCH_LEVEL); + nmb = timer->nmb; + serialize_lock(nmb->wnd); + LIN2WIN4(timer->func, NULL, timer->ctx, NULL, NULL); + serialize_unlock(nmb->wnd); + TIMEREXIT(return); +} +WIN_FUNC_DECL(mp_timer_dpc,4) + +wstdcall void WIN_FUNC(NdisMInitializeTimer,4) + (struct ndis_mp_timer *timer, struct ndis_mp_block *nmb, + DPC func, void *ctx) +{ + TIMERENTER("%p, %p, %p, %p", timer, func, ctx, nmb); + assert_irql(_irql_ == PASSIVE_LEVEL); + timer->func = func; + timer->ctx = ctx; + timer->nmb = nmb; + if (deserialized_driver(nmb->wnd)) + KeInitializeDpc(&timer->kdpc, func, ctx); + else + KeInitializeDpc(&timer->kdpc, WIN_FUNC_PTR(mp_timer_dpc,4), + timer); + wrap_init_timer(&timer->nt_timer, NotificationTimer, nmb); + TIMEREXIT(return); +} + +wstdcall void WIN_FUNC(NdisMSetPeriodicTimer,2) + (struct ndis_mp_timer *timer, UINT period_ms) +{ + unsigned long expires = MSEC_TO_HZ(period_ms); + + TIMERENTER("%p, %u, %ld", timer, period_ms, expires); + assert_irql(_irql_ <= DISPATCH_LEVEL); + wrap_set_timer(&timer->nt_timer, expires, expires, &timer->kdpc); + TIMEREXIT(return); +} + +wstdcall void WIN_FUNC(NdisMCancelTimer,2) + (struct ndis_mp_timer *timer, BOOLEAN *canceled) +{ + TIMERENTER("%p", timer); + assert_irql(_irql_ <= DISPATCH_LEVEL); + *canceled = KeCancelTimer(&timer->nt_timer); + TIMERTRACE("%d", *canceled); + return; +} + +wstdcall void WIN_FUNC(NdisInitializeTimer,3) + (struct ndis_timer *timer, void *func, void *ctx) +{ + TIMERENTER("%p, %p, %p", timer, func, ctx); + assert_irql(_irql_ == PASSIVE_LEVEL); + KeInitializeDpc(&timer->kdpc, func, ctx); + wrap_init_timer(&timer->nt_timer, NotificationTimer, NULL); + TIMEREXIT(return); +} + +/* NdisMSetTimer is a macro that calls NdisSetTimer with + * ndis_mp_timer typecast to ndis_timer */ + +wstdcall void WIN_FUNC(NdisSetTimer,2) + (struct ndis_timer *timer, UINT duetime_ms) +{ + unsigned long expires = MSEC_TO_HZ(duetime_ms); + + TIMERENTER("%p, %p, %u, %ld", timer, timer->nt_timer.wrap_timer, + duetime_ms, expires); + assert_irql(_irql_ <= DISPATCH_LEVEL); + wrap_set_timer(&timer->nt_timer, expires, 0, &timer->kdpc); + TIMEREXIT(return); +} + +wstdcall void WIN_FUNC(NdisCancelTimer,2) + (struct ndis_timer *timer, BOOLEAN *canceled) +{ + TIMERENTER("%p", timer); + assert_irql(_irql_ <= DISPATCH_LEVEL); + *canceled = KeCancelTimer(&timer->nt_timer); + TIMEREXIT(return); +} + +wstdcall void WIN_FUNC(NdisMRegisterAdapterShutdownHandler,3) + (struct ndis_mp_block *nmb, void *ctx, void *func) +{ + struct ndis_device *wnd = nmb->wnd; + ENTER1("%p", func); + wnd->wd->driver->ndis_driver->mp.shutdown = func; + wnd->shutdown_ctx = ctx; +} + +wstdcall void WIN_FUNC(NdisMDeregisterAdapterShutdownHandler,1) + (struct ndis_mp_block *nmb) +{ + struct ndis_device *wnd = nmb->wnd; + wnd->wd->driver->ndis_driver->mp.shutdown = NULL; + wnd->shutdown_ctx = NULL; +} + +/* TODO: rt61 (serialized) driver doesn't want MiniportEnableInterrupt + * to be called in irq handler, but mrv800c (deserialized) driver + * wants. NDIS is confusing about when to call MiniportEnableInterrupt + * For now, handle these cases with two separate irq handlers based on + * observation of these two drivers. However, it is likely not + * correct. */ +wstdcall void deserialized_irq_handler(struct kdpc *kdpc, void *ctx, + void *arg1, void *arg2) +{ + struct ndis_device *wnd = ctx; + ndis_interrupt_handler irq_handler = arg1; + struct miniport *mp = arg2; + + TRACE6("%p", irq_handler); + assert_irql(_irql_ == DISPATCH_LEVEL); + LIN2WIN1(irq_handler, wnd->nmb->mp_ctx); + if (mp->enable_interrupt) + LIN2WIN1(mp->enable_interrupt, wnd->nmb->mp_ctx); + EXIT6(return); +} +WIN_FUNC_DECL(deserialized_irq_handler,4) + +wstdcall void serialized_irq_handler(struct kdpc *kdpc, void *ctx, + void *arg1, void *arg2) +{ + struct ndis_device *wnd = ctx; + ndis_interrupt_handler irq_handler = arg1; + + TRACE6("%p, %p, %p", wnd, irq_handler, arg2); + assert_irql(_irql_ == DISPATCH_LEVEL); + serialize_lock(wnd); + LIN2WIN1(irq_handler, arg2); + serialize_unlock(wnd); + EXIT6(return); +} +WIN_FUNC_DECL(serialized_irq_handler,4) + +wstdcall BOOLEAN ndis_isr(struct kinterrupt *kinterrupt, void *ctx) +{ + struct ndis_mp_interrupt *mp_interrupt = ctx; + struct ndis_device *wnd = mp_interrupt->nmb->wnd; + BOOLEAN recognized = TRUE, queue_handler = TRUE; + + TRACE6("%p", wnd); + /* kernel may call ISR when registering interrupt, in + * the same context if DEBUG_SHIRQ is enabled */ + assert_irql(_irql_ == DIRQL || _irql_ == PASSIVE_LEVEL); + if (mp_interrupt->shared) + LIN2WIN3(mp_interrupt->isr, &recognized, &queue_handler, + wnd->nmb->mp_ctx); + else { + struct miniport *mp; + mp = &wnd->wd->driver->ndis_driver->mp; + LIN2WIN1(mp->disable_interrupt, wnd->nmb->mp_ctx); + /* it is not shared interrupt, so handler must be called */ + recognized = queue_handler = TRUE; + } + if (recognized) { + if (queue_handler) { + TRACE5("%p", &wnd->irq_kdpc); + queue_kdpc(&wnd->irq_kdpc); + } + EXIT6(return TRUE); + } + EXIT6(return FALSE); +} +WIN_FUNC_DECL(ndis_isr,2) + +wstdcall NDIS_STATUS WIN_FUNC(NdisMRegisterInterrupt,7) + (struct ndis_mp_interrupt *mp_interrupt, + struct ndis_mp_block *nmb, UINT vector, UINT level, + BOOLEAN req_isr, BOOLEAN shared, enum kinterrupt_mode mode) +{ + struct ndis_device *wnd = nmb->wnd; + struct miniport *mp; + + ENTER1("%p, vector:%d, level:%d, req_isr:%d, shared:%d, mode:%d", + mp_interrupt, vector, level, req_isr, shared, mode); + + mp = &wnd->wd->driver->ndis_driver->mp; + nt_spin_lock_init(&mp_interrupt->lock); + mp_interrupt->irq = vector; + mp_interrupt->isr = mp->isr; + mp_interrupt->mp_dpc = mp->handle_interrupt; + mp_interrupt->nmb = nmb; + mp_interrupt->req_isr = req_isr; + if (shared && !req_isr) + WARNING("shared but dynamic interrupt!"); + mp_interrupt->shared = shared; + wnd->mp_interrupt = mp_interrupt; + if (mp->enable_interrupt) + mp_interrupt->enable = TRUE; + else + mp_interrupt->enable = FALSE; + + if (deserialized_driver(wnd)) { + KeInitializeDpc(&wnd->irq_kdpc, + WIN_FUNC_PTR(deserialized_irq_handler,4), + nmb->wnd); + wnd->irq_kdpc.arg1 = mp->handle_interrupt; + wnd->irq_kdpc.arg2 = mp; + TRACE2("%p, %p, %p, %p", wnd->irq_kdpc.arg1, wnd->irq_kdpc.arg2, + nmb->wnd, nmb->mp_ctx); + } else { + KeInitializeDpc(&wnd->irq_kdpc, + WIN_FUNC_PTR(serialized_irq_handler,4), + nmb->wnd); + wnd->irq_kdpc.arg1 = mp->handle_interrupt; + wnd->irq_kdpc.arg2 = nmb->mp_ctx; + TRACE2("%p, %p, %p", wnd->irq_kdpc.arg1, wnd->irq_kdpc.arg2, + nmb->wnd); + } + + if (IoConnectInterrupt(&mp_interrupt->kinterrupt, + WIN_FUNC_PTR(ndis_isr,2), mp_interrupt, NULL, + vector, DIRQL, DIRQL, mode, shared, 0, FALSE) != + STATUS_SUCCESS) { + printk(KERN_WARNING "%s: request for IRQ %d failed\n", + DRIVER_NAME, vector); + return NDIS_STATUS_RESOURCES; + } + printk(KERN_INFO "%s: using IRQ %d\n", DRIVER_NAME, vector); + EXIT1(return NDIS_STATUS_SUCCESS); +} + +wstdcall void WIN_FUNC(NdisMDeregisterInterrupt,1) + (struct ndis_mp_interrupt *mp_interrupt) +{ + struct ndis_mp_block *nmb; + + ENTER1("%p", mp_interrupt); + nmb = xchg(&mp_interrupt->nmb, NULL); + TRACE1("%p", nmb); + if (!nmb) { + WARNING("interrupt already freed?"); + return; + } + nmb->wnd->mp_interrupt = NULL; + if (dequeue_kdpc(&nmb->wnd->irq_kdpc)) + TRACE2("interrupt kdpc was pending"); + flush_workqueue(wrapndis_wq); + IoDisconnectInterrupt(mp_interrupt->kinterrupt); + EXIT1(return); +} + +wstdcall BOOLEAN WIN_FUNC(NdisMSynchronizeWithInterrupt,3) + (struct ndis_mp_interrupt *mp_interrupt, + PKSYNCHRONIZE_ROUTINE sync_func, void *ctx) +{ + return KeSynchronizeExecution(mp_interrupt->kinterrupt, sync_func, ctx); +} + +/* called via function pointer; but 64-bit RNDIS driver calls directly */ +wstdcall void WIN_FUNC(NdisMIndicateStatus,4) + (struct ndis_mp_block *nmb, NDIS_STATUS status, void *buf, UINT len) +{ + struct ndis_device *wnd = nmb->wnd; + struct ndis_status_indication *si; + + ENTER2("status=0x%x len=%d", status, len); + switch (status) { + case NDIS_STATUS_MEDIA_CONNECT: + set_media_state(wnd, NdisMediaStateConnected); + break; + case NDIS_STATUS_MEDIA_DISCONNECT: + set_media_state(wnd, NdisMediaStateDisconnected); + break; + case NDIS_STATUS_MEDIA_SPECIFIC_INDICATION: + if (!buf) + break; + si = buf; + TRACE2("status_type=%d", si->status_type); + switch (si->status_type) { + case Ndis802_11StatusType_MediaStreamMode: + break; +#ifdef CONFIG_WIRELESS_EXT + case Ndis802_11StatusType_Authentication: + buf = (char *)buf + sizeof(*si); + len -= sizeof(*si); + while (len > 0) { + int pairwise_error = 0, group_error = 0; + struct ndis_auth_req *auth_req = + (struct ndis_auth_req *)buf; + TRACE1(MACSTRSEP, MAC2STR(auth_req->bssid)); + if (auth_req->flags & 0x01) + TRACE2("reauth request"); + if (auth_req->flags & 0x02) + TRACE2("key update request"); + if (auth_req->flags & 0x06) { + pairwise_error = 1; + TRACE2("pairwise_error"); + } + if (auth_req->flags & 0x0E) { + group_error = 1; + TRACE2("group_error"); + } + if (pairwise_error || group_error) { + union iwreq_data wrqu; + struct iw_michaelmicfailure micfailure; + + memset(&micfailure, 0, sizeof(micfailure)); + if (pairwise_error) + micfailure.flags |= + IW_MICFAILURE_PAIRWISE; + if (group_error) + micfailure.flags |= + IW_MICFAILURE_GROUP; + memcpy(micfailure.src_addr.sa_data, + auth_req->bssid, ETH_ALEN); + memset(&wrqu, 0, sizeof(wrqu)); + wrqu.data.length = sizeof(micfailure); + wireless_send_event(wnd->net_dev, + IWEVMICHAELMICFAILURE, + &wrqu, (u8 *)&micfailure); + } + len -= auth_req->length; + buf = (char *)buf + auth_req->length; + } + break; + case Ndis802_11StatusType_PMKID_CandidateList: + { + u8 *end; + unsigned long i; + struct ndis_pmkid_candidate_list *cand; + + cand = buf + sizeof(struct ndis_status_indication); + if (len < sizeof(struct ndis_status_indication) + + sizeof(struct ndis_pmkid_candidate_list) || + cand->version != 1) { + WARNING("unrecognized PMKID ignored"); + EXIT1(return); + } + + end = (u8 *)buf + len; + TRACE2("PMKID ver %d num_cand %d", + cand->version, cand->num_candidates); + for (i = 0; i < cand->num_candidates; i++) { + struct iw_pmkid_cand pcand; + union iwreq_data wrqu; + struct ndis_pmkid_candidate *c = + &cand->candidates[i]; + if ((u8 *)(c + 1) > end) { + TRACE2("truncated PMKID"); + break; + } + TRACE2("%ld: " MACSTRSEP " 0x%x", + i, MAC2STR(c->bssid), c->flags); + memset(&pcand, 0, sizeof(pcand)); + if (c->flags & 0x01) + pcand.flags |= IW_PMKID_CAND_PREAUTH; + pcand.index = i; + memcpy(pcand.bssid.sa_data, c->bssid, ETH_ALEN); + + memset(&wrqu, 0, sizeof(wrqu)); + wrqu.data.length = sizeof(pcand); + wireless_send_event(wnd->net_dev, IWEVPMKIDCAND, + &wrqu, (u8 *)&pcand); + } + break; + } + case Ndis802_11StatusType_RadioState: + { + struct ndis_radio_status_indication *radio_status = buf; + if (radio_status->radio_state == + Ndis802_11RadioStatusOn) + INFO("radio is turned on"); + else if (radio_status->radio_state == + Ndis802_11RadioStatusHardwareOff) + INFO("radio is turned off by hardware"); + else if (radio_status->radio_state == + Ndis802_11RadioStatusSoftwareOff) + INFO("radio is turned off by software"); + break; + } +#endif + default: + /* is this RSSI indication? */ + TRACE2("unknown indication: %x", si->status_type); + break; + } + break; + default: + TRACE2("unknown status: %08X", status); + break; + } + + EXIT2(return); +} + +/* called via function pointer; but 64-bit RNDIS driver calls directly */ +wstdcall void WIN_FUNC(NdisMIndicateStatusComplete,1) + (struct ndis_mp_block *nmb) +{ + struct ndis_device *wnd = nmb->wnd; + ENTER2("%p", wnd); + if (wnd->tx_ok) + schedule_wrapndis_work(&wnd->tx_work); +} + +/* called via function pointer */ +wstdcall void NdisMSendComplete(struct ndis_mp_block *nmb, + struct ndis_packet *packet, NDIS_STATUS status) +{ + struct ndis_device *wnd = nmb->wnd; + ENTER4("%p, %08X", packet, status); + assert_irql(_irql_ <= DISPATCH_LEVEL); + if (deserialized_driver(wnd)) + free_tx_packet(wnd, packet, status); + else { + struct ndis_packet_oob_data *oob_data; + NDIS_STATUS pkt_status; + TRACE3("%p, %08x", packet, status); + oob_data = NDIS_PACKET_OOB_DATA(packet); + switch ((pkt_status = xchg(&oob_data->status, status))) { + case NDIS_STATUS_NOT_RECOGNIZED: + free_tx_packet(wnd, packet, status); + break; + case NDIS_STATUS_PENDING: + case 0: + break; + default: + WARNING("%p: invalid status: %08X", packet, pkt_status); + break; + } + /* In case a serialized driver has earlier requested a + * pause by returning NDIS_STATUS_RESOURCES during + * MiniportSend(Packets), wakeup tx worker now. + */ + if (xchg(&wnd->tx_ok, 1) == 0) { + TRACE3("%d, %d", wnd->tx_ring_start, wnd->tx_ring_end); + schedule_wrapndis_work(&wnd->tx_work); + } + } + EXIT3(return); +} + +/* called via function pointer */ +wstdcall void NdisMSendResourcesAvailable(struct ndis_mp_block *nmb) +{ + struct ndis_device *wnd = nmb->wnd; + ENTER3("%d, %d", wnd->tx_ring_start, wnd->tx_ring_end); + wnd->tx_ok = 1; + schedule_wrapndis_work(&wnd->tx_work); + EXIT3(return); +} + +wstdcall void return_packet(void *arg1, void *arg2) +{ + struct ndis_device *wnd; + struct ndis_packet *packet; + struct miniport *mp; + KIRQL irql; + + wnd = arg1; + packet = arg2; + ENTER4("%p, %p", wnd, packet); + mp = &wnd->wd->driver->ndis_driver->mp; + irql = serialize_lock_irql(wnd); + assert_irql(_irql_ == DISPATCH_LEVEL); + LIN2WIN2(mp->return_packet, wnd->nmb->mp_ctx, packet); + serialize_unlock_irql(wnd, irql); + EXIT4(return); +} +WIN_FUNC_DECL(return_packet,2) + +/* called via function pointer */ +wstdcall void NdisMIndicateReceivePacket(struct ndis_mp_block *nmb, + struct ndis_packet **packets, + UINT nr_packets) +{ + struct ndis_device *wnd; + ndis_buffer *buffer; + struct ndis_packet *packet; + struct sk_buff *skb; + ULONG i, length, total_length; + struct ndis_packet_oob_data *oob_data; + void *virt; + struct ndis_tcp_ip_checksum_packet_info csum; + + ENTER3("%p, %d", nmb, nr_packets); + assert_irql(_irql_ <= DISPATCH_LEVEL); + wnd = nmb->wnd; + for (i = 0; i < nr_packets; i++) { + packet = packets[i]; + if (!packet) { + WARNING("empty packet ignored"); + continue; + } + wnd->net_dev->last_rx = jiffies; + /* get total number of bytes in packet */ + NdisGetFirstBufferFromPacketSafe(packet, &buffer, &virt, + &length, &total_length, + NormalPagePriority); + TRACE3("%d, %d", length, total_length); + oob_data = NDIS_PACKET_OOB_DATA(packet); + TRACE3("0x%x, 0x%x, %Lu", packet->private.flags, + packet->private.packet_flags, oob_data->time_rxed); + skb = dev_alloc_skb(total_length); + if (skb) { + while (buffer) { + memcpy_skb(skb, MmGetSystemAddressForMdl(buffer), + MmGetMdlByteCount(buffer)); + buffer = buffer->next; + } + skb->dev = wnd->net_dev; + skb->protocol = eth_type_trans(skb, wnd->net_dev); + pre_atomic_add(wnd->net_stats.rx_bytes, total_length); + atomic_inc_var(wnd->net_stats.rx_packets); + csum.value = (typeof(csum.value))(ULONG_PTR) + oob_data->ext.info[TcpIpChecksumPacketInfo]; + TRACE3("0x%05x", csum.value); + if (wnd->rx_csum.value && + (csum.rx.tcp_succeeded || csum.rx.udp_succeeded || + csum.rx.ip_succeeded)) + skb->ip_summed = CHECKSUM_UNNECESSARY; + else + skb->ip_summed = CHECKSUM_NONE; + + if (in_interrupt()) + netif_rx(skb); + else + netif_rx_ni(skb); + } else { + WARNING("couldn't allocate skb; packet dropped"); + atomic_inc_var(wnd->net_stats.rx_dropped); + } + + /* serialized drivers check the status upon return + * from this function */ + if (!deserialized_driver(wnd)) { + oob_data->status = NDIS_STATUS_SUCCESS; + continue; + } + + /* if a deserialized driver sets + * NDIS_STATUS_RESOURCES, then it reclaims the packet + * upon return from this function */ + if (oob_data->status == NDIS_STATUS_RESOURCES) + continue; + + assert(oob_data->status == NDIS_STATUS_SUCCESS); + /* deserialized driver doesn't check the status upon + * return from this function; we need to call + * MiniportReturnPacket later for this packet. Calling + * MiniportReturnPacket from here is not correct - the + * driver doesn't expect it (at least Centrino driver + * crashes) */ + schedule_ntos_work_item(WIN_FUNC_PTR(return_packet,2), + wnd, packet); + } + EXIT3(return); +} + +/* called via function pointer (by NdisMEthIndicateReceive macro); the + * first argument is nmb->eth_db */ +wstdcall void EthRxIndicateHandler(struct ndis_mp_block *nmb, void *rx_ctx, + char *header1, char *header, UINT header_size, + void *look_ahead, UINT look_ahead_size, + UINT packet_size) +{ + struct sk_buff *skb = NULL; + struct ndis_device *wnd; + unsigned int skb_size = 0; + KIRQL irql; + struct ndis_packet_oob_data *oob_data; + + ENTER3("nmb = %p, rx_ctx = %p, buf = %p, size = %d, buf = %p, " + "size = %d, packet = %d", nmb, rx_ctx, header, header_size, + look_ahead, look_ahead_size, packet_size); + + wnd = nmb->wnd; + TRACE3("wnd = %p", wnd); + if (!wnd) { + ERROR("nmb is NULL"); + EXIT3(return); + } + wnd->net_dev->last_rx = jiffies; + + if (look_ahead_size < packet_size) { + struct ndis_packet *packet; + struct miniport *mp; + unsigned int bytes_txed; + NDIS_STATUS res; + + NdisAllocatePacket(&res, &packet, wnd->tx_packet_pool); + if (res != NDIS_STATUS_SUCCESS) { + atomic_inc_var(wnd->net_stats.rx_dropped); + EXIT3(return); + } + oob_data = NDIS_PACKET_OOB_DATA(packet); + mp = &wnd->wd->driver->ndis_driver->mp; + irql = serialize_lock_irql(wnd); + assert_irql(_irql_ == DISPATCH_LEVEL); + res = LIN2WIN6(mp->tx_data, packet, &bytes_txed, nmb, + rx_ctx, look_ahead_size, packet_size); + serialize_unlock_irql(wnd, irql); + TRACE3("%d, %d, %d", header_size, look_ahead_size, bytes_txed); + if (res == NDIS_STATUS_SUCCESS) { + ndis_buffer *buffer; + struct ndis_tcp_ip_checksum_packet_info csum; + skb = dev_alloc_skb(header_size + look_ahead_size + + bytes_txed); + if (!skb) { + ERROR("couldn't allocate skb; packet dropped"); + atomic_inc_var(wnd->net_stats.rx_dropped); + NdisFreePacket(packet); + return; + } + memcpy_skb(skb, header, header_size); + memcpy_skb(skb, look_ahead, look_ahead_size); + buffer = packet->private.buffer_head; + while (buffer) { + memcpy_skb(skb, + MmGetSystemAddressForMdl(buffer), + MmGetMdlByteCount(buffer)); + buffer = buffer->next; + } + skb_size = header_size + look_ahead_size + bytes_txed; + csum.value = (typeof(csum.value))(ULONG_PTR) + oob_data->ext.info[TcpIpChecksumPacketInfo]; + TRACE3("0x%05x", csum.value); + if (wnd->rx_csum.value && + (csum.rx.tcp_succeeded || csum.rx.udp_succeeded)) + skb->ip_summed = CHECKSUM_UNNECESSARY; + else + skb->ip_summed = CHECKSUM_NONE; + NdisFreePacket(packet); + } else if (res == NDIS_STATUS_PENDING) { + /* driver will call td_complete */ + oob_data->look_ahead = kmalloc(look_ahead_size, + GFP_ATOMIC); + if (!oob_data->look_ahead) { + NdisFreePacket(packet); + ERROR("packet dropped"); + atomic_inc_var(wnd->net_stats.rx_dropped); + EXIT3(return); + } + assert(sizeof(oob_data->header) == header_size); + memcpy(oob_data->header, header, + sizeof(oob_data->header)); + memcpy(oob_data->look_ahead, look_ahead, + look_ahead_size); + oob_data->look_ahead_size = look_ahead_size; + EXIT3(return); + } else { + WARNING("packet dropped: %08X", res); + atomic_inc_var(wnd->net_stats.rx_dropped); + NdisFreePacket(packet); + EXIT3(return); + } + } else { + skb_size = header_size + packet_size; + skb = dev_alloc_skb(skb_size); + if (skb) { + memcpy_skb(skb, header, header_size); + memcpy_skb(skb, look_ahead, packet_size); + } + } + + if (skb) { + skb->dev = wnd->net_dev; + skb->protocol = eth_type_trans(skb, wnd->net_dev); + pre_atomic_add(wnd->net_stats.rx_bytes, skb_size); + atomic_inc_var(wnd->net_stats.rx_packets); + if (in_interrupt()) + netif_rx(skb); + else + netif_rx_ni(skb); + } + + EXIT3(return); +} + +/* called via function pointer */ +wstdcall void NdisMTransferDataComplete(struct ndis_mp_block *nmb, + struct ndis_packet *packet, + NDIS_STATUS status, UINT bytes_txed) +{ + struct ndis_device *wnd = nmb->wnd; + struct sk_buff *skb; + unsigned int skb_size; + struct ndis_packet_oob_data *oob_data; + ndis_buffer *buffer; + struct ndis_tcp_ip_checksum_packet_info csum; + + ENTER3("wnd = %p, packet = %p, bytes_txed = %d", + wnd, packet, bytes_txed); + if (!packet) { + WARNING("illegal packet"); + EXIT3(return); + } + wnd->net_dev->last_rx = jiffies; + oob_data = NDIS_PACKET_OOB_DATA(packet); + skb_size = sizeof(oob_data->header) + oob_data->look_ahead_size + + bytes_txed; + skb = dev_alloc_skb(skb_size); + if (!skb) { + kfree(oob_data->look_ahead); + NdisFreePacket(packet); + ERROR("couldn't allocate skb; packet dropped"); + atomic_inc_var(wnd->net_stats.rx_dropped); + EXIT3(return); + } + memcpy_skb(skb, oob_data->header, sizeof(oob_data->header)); + memcpy_skb(skb, oob_data->look_ahead, oob_data->look_ahead_size); + buffer = packet->private.buffer_head; + while (buffer) { + memcpy_skb(skb, MmGetSystemAddressForMdl(buffer), + MmGetMdlByteCount(buffer)); + buffer = buffer->next; + } + kfree(oob_data->look_ahead); + NdisFreePacket(packet); + skb->dev = wnd->net_dev; + skb->protocol = eth_type_trans(skb, wnd->net_dev); + pre_atomic_add(wnd->net_stats.rx_bytes, skb_size); + atomic_inc_var(wnd->net_stats.rx_packets); + + csum.value = (typeof(csum.value))(ULONG_PTR) + oob_data->ext.info[TcpIpChecksumPacketInfo]; + TRACE3("0x%05x", csum.value); + if (wnd->rx_csum.value && + (csum.rx.tcp_succeeded || csum.rx.udp_succeeded)) + skb->ip_summed = CHECKSUM_UNNECESSARY; + else + skb->ip_summed = CHECKSUM_NONE; + + if (in_interrupt()) + netif_rx(skb); + else + netif_rx_ni(skb); +} + +/* called via function pointer */ +wstdcall void EthRxComplete(struct ndis_mp_block *nmb) +{ + TRACE3(""); +} + +/* called via function pointer */ +wstdcall void NdisMQueryInformationComplete(struct ndis_mp_block *nmb, + NDIS_STATUS status) +{ + struct ndis_device *wnd = nmb->wnd; + typeof(wnd->ndis_req_task) task; + + ENTER2("nmb: %p, wnd: %p, %08X", nmb, wnd, status); + wnd->ndis_req_status = status; + wnd->ndis_req_done = 1; + if ((task = xchg(&wnd->ndis_req_task, NULL))) + wake_up_process(task); + else + WARNING("invalid task"); + EXIT2(return); +} + +/* called via function pointer */ +wstdcall void NdisMSetInformationComplete(struct ndis_mp_block *nmb, + NDIS_STATUS status) +{ + struct ndis_device *wnd = nmb->wnd; + typeof(wnd->ndis_req_task) task; + + ENTER2("status = %08X", status); + wnd->ndis_req_status = status; + wnd->ndis_req_done = 1; + if ((task = xchg(&wnd->ndis_req_task, NULL))) + wake_up_process(task); + else + WARNING("invalid task"); + EXIT2(return); +} + +/* called via function pointer */ +wstdcall void NdisMResetComplete(struct ndis_mp_block *nmb, + NDIS_STATUS status, BOOLEAN address_reset) +{ + struct ndis_device *wnd = nmb->wnd; + typeof(wnd->ndis_req_task) task; + + ENTER2("status: %08X, %u", status, address_reset); + wnd->ndis_req_status = status; + wnd->ndis_req_done = address_reset + 1; + if ((task = xchg(&wnd->ndis_req_task, NULL))) + wake_up_process(task); + else + WARNING("invalid task"); + EXIT2(return); +} + +wstdcall void WIN_FUNC(NdisMSleep,1) + (ULONG us) +{ + unsigned long delay; + + ENTER4("%p: us: %u", current, us); + delay = USEC_TO_HZ(us); + sleep_hz(delay); + TRACE4("%p: done", current); +} + +wstdcall void WIN_FUNC(NdisGetCurrentSystemTime,1) + (LARGE_INTEGER *time) +{ + *time = ticks_1601(); + TRACE5("%Lu, %lu", *time, jiffies); +} + +wstdcall LONG WIN_FUNC(NdisInterlockedDecrement,1) + (LONG *val) +{ + return InterlockedDecrement(val); +} + +wstdcall LONG WIN_FUNC(NdisInterlockedIncrement,1) + (LONG *val) +{ + return InterlockedIncrement(val); +} + +wstdcall struct nt_list *WIN_FUNC(NdisInterlockedInsertHeadList,3) + (struct nt_list *head, struct nt_list *entry, + struct ndis_spinlock *lock) +{ + return ExInterlockedInsertHeadList(head, entry, &lock->klock); +} + +wstdcall struct nt_list *WIN_FUNC(NdisInterlockedInsertTailList,3) + (struct nt_list *head, struct nt_list *entry, + struct ndis_spinlock *lock) +{ + return ExInterlockedInsertTailList(head, entry, &lock->klock); +} + +wstdcall struct nt_list *WIN_FUNC(NdisInterlockedRemoveHeadList,2) + (struct nt_list *head, struct ndis_spinlock *lock) +{ + return ExInterlockedRemoveHeadList(head, &lock->klock); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisMInitializeScatterGatherDma,3) + (struct ndis_mp_block *nmb, BOOLEAN dma_size, ULONG max_phy_map) +{ + struct ndis_device *wnd = nmb->wnd; + ENTER2("dma_size=%d, maxtransfer=%u", dma_size, max_phy_map); +#ifdef CONFIG_X86_64 + if (dma_size != NDIS_DMA_64BITS) { + TRACE1("DMA size is not 64-bits"); + if (pci_set_dma_mask(wnd->wd->pci.pdev, DMA_BIT_MASK(32)) || + pci_set_consistent_dma_mask(wnd->wd->pci.pdev, + DMA_BIT_MASK(32))) + WARNING("setting dma mask failed"); + } +#endif + if ((wnd->attributes & NDIS_ATTRIBUTE_BUS_MASTER) && + wrap_is_pci_bus(wnd->wd->dev_bus)) { + wnd->sg_dma_size = max_phy_map; + return NDIS_STATUS_SUCCESS; + } else + EXIT1(return NDIS_STATUS_NOT_SUPPORTED); +} + +wstdcall ULONG WIN_FUNC(NdisMGetDmaAlignment,1) + (struct ndis_mp_block *nmb) +{ + ENTER3(""); + return dma_get_cache_alignment(); +} + +wstdcall CHAR WIN_FUNC(NdisSystemProcessorCount,0) + (void) +{ + return (CHAR)NR_CPUS; +} + +wstdcall void WIN_FUNC(NdisGetCurrentProcessorCounts,3) + (ULONG *idle, ULONG *kernel_user, ULONG *index) +{ + int cpu = smp_processor_id(); + *idle = kstat_cpu(cpu).cpustat.idle; + *kernel_user = kstat_cpu(cpu).cpustat.system + + kstat_cpu(cpu).cpustat.user; + *index = cpu; +} + +wstdcall void WIN_FUNC(NdisInitializeEvent,1) + (struct ndis_event *ndis_event) +{ + EVENTENTER("%p", ndis_event); + KeInitializeEvent(&ndis_event->nt_event, NotificationEvent, 0); +} + +wstdcall BOOLEAN WIN_FUNC(NdisWaitEvent,2) + (struct ndis_event *ndis_event, UINT ms) +{ + LARGE_INTEGER ticks; + NTSTATUS res; + + EVENTENTER("%p %u", ndis_event, ms); + ticks = -((LARGE_INTEGER)ms * TICKSPERMSEC); + res = KeWaitForSingleObject(&ndis_event->nt_event, 0, 0, TRUE, + ms == 0 ? NULL : &ticks); + if (res == STATUS_SUCCESS) + EXIT3(return TRUE); + else + EXIT3(return FALSE); +} + +wstdcall void WIN_FUNC(NdisSetEvent,1) + (struct ndis_event *ndis_event) +{ + EVENTENTER("%p", ndis_event); + KeSetEvent(&ndis_event->nt_event, 0, 0); +} + +wstdcall void WIN_FUNC(NdisResetEvent,1) + (struct ndis_event *ndis_event) +{ + EVENTENTER("%p", ndis_event); + KeResetEvent(&ndis_event->nt_event); +} + +static void ndis_worker(worker_param_t dummy) +{ + struct nt_list *ent; + struct ndis_work_item *ndis_work_item; + + WORKENTER(""); + while (1) { + spin_lock_bh(&ndis_work_list_lock); + ent = RemoveHeadList(&ndis_work_list); + spin_unlock_bh(&ndis_work_list_lock); + if (!ent) + break; + ndis_work_item = container_of(ent, struct ndis_work_item, list); + WORKTRACE("%p: %p, %p", ndis_work_item, + ndis_work_item->func, ndis_work_item->ctx); + LIN2WIN2(ndis_work_item->func, ndis_work_item, + ndis_work_item->ctx); + WORKTRACE("%p done", ndis_work_item); + } + WORKEXIT(return); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisScheduleWorkItem,1) + (struct ndis_work_item *ndis_work_item) +{ + ENTER3("%p", ndis_work_item); + spin_lock_bh(&ndis_work_list_lock); + InsertTailList(&ndis_work_list, &ndis_work_item->list); + spin_unlock_bh(&ndis_work_list_lock); + WORKTRACE("scheduling %p", ndis_work_item); + schedule_ndis_work(&ndis_work); + EXIT3(return NDIS_STATUS_SUCCESS); +} + +wstdcall void WIN_FUNC(NdisMGetDeviceProperty,6) + (struct ndis_mp_block *nmb, void **phy_dev, void **func_dev, + void **next_dev, void **alloc_res, void**trans_res) +{ + ENTER2("nmb: %p, phy_dev = %p, func_dev = %p, next_dev = %p, " + "alloc_res = %p, trans_res = %p", nmb, phy_dev, func_dev, + next_dev, alloc_res, trans_res); + if (phy_dev) + *phy_dev = nmb->pdo; + if (func_dev) + *func_dev = nmb->fdo; + if (next_dev) + *next_dev = nmb->next_device; +} + +wstdcall void WIN_FUNC(NdisMRegisterUnloadHandler,2) + (struct driver_object *drv_obj, void *unload) +{ + if (drv_obj) + drv_obj->unload = unload; + return; +} + +wstdcall UINT WIN_FUNC(NdisGetVersion,0) + (void) +{ + return 0x00050001; +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisMQueryAdapterInstanceName,2) + (struct unicode_string *name, struct ndis_mp_block *nmb) +{ + struct ndis_device *wnd = nmb->wnd; + struct ansi_string ansi; + + if (wrap_is_pci_bus(wnd->wd->dev_bus)) + RtlInitAnsiString(&ansi, "PCI Ethernet Adapter"); + else + RtlInitAnsiString(&ansi, "USB Ethernet Adapter"); + + if (RtlAnsiStringToUnicodeString(name, &ansi, TRUE)) + EXIT2(return NDIS_STATUS_RESOURCES); + else + EXIT2(return NDIS_STATUS_SUCCESS); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisWriteEventLogEntry,7) + (void *handle, NDIS_STATUS code, ULONG value, USHORT n, + void *strings, ULONG datasize, void *data) +{ + TRACE1("0x%x, 0x%x, %u, %u", code, value, n, datasize); + return NDIS_STATUS_SUCCESS; +} + +wstdcall void *WIN_FUNC(NdisGetRoutineAddress,1) + (struct unicode_string *unicode_string) +{ + struct ansi_string ansi_string; + void *address; + + if (RtlUnicodeStringToAnsiString(&ansi_string, unicode_string, TRUE) != + STATUS_SUCCESS) + EXIT1(return NULL); + INFO("%s", ansi_string.buf); + address = ndis_get_routine_address(ansi_string.buf); + RtlFreeAnsiString(&ansi_string); + return address; +} + +wstdcall ULONG WIN_FUNC(NdisReadPcmciaAttributeMemory,4) + (struct ndis_mp_block *nmb, ULONG offset, void *buffer, + ULONG length) +{ + TODO(); + return 0; +} + +wstdcall ULONG WIN_FUNC(NdisWritePcmciaAttributeMemory,4) + (struct ndis_mp_block *nmb, ULONG offset, void *buffer, + ULONG length) +{ + TODO(); + return 0; +} + +wstdcall void WIN_FUNC(NdisMCoIndicateReceivePacket,3) + (struct ndis_mp_block *nmb, struct ndis_packet **packets, + UINT nr_packets) +{ + ENTER3("nmb = %p", nmb); + NdisMIndicateReceivePacket(nmb, packets, nr_packets); + EXIT3(return); +} + +wstdcall void WIN_FUNC(NdisMCoSendComplete,3) + (NDIS_STATUS status, struct ndis_mp_block *nmb, + struct ndis_packet *packet) +{ + ENTER3("%08x", status); + NdisMSendComplete(nmb, packet, status); + EXIT3(return); +} + +wstdcall void WIN_FUNC(NdisMCoRequestComplete,3) + (NDIS_STATUS status, struct ndis_mp_block *nmb, + struct ndis_request *ndis_request) +{ + struct ndis_device *wnd = nmb->wnd; + typeof(wnd->ndis_req_task) task; + + ENTER3("%08X", status); + wnd->ndis_req_status = status; + wnd->ndis_req_done = 1; + if ((task = xchg(&wnd->ndis_req_task, NULL))) + wake_up_process(task); + else + WARNING("invalid task"); + EXIT3(return); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisIMNotifiyPnPEvent,2) + (struct ndis_mp_block *nmb, struct net_pnp_event *event) +{ + ENTER2("%p, %d", nmb, event->code); + /* NdisWrapper never calls protocol's pnp event notifier, so + * nothing to do here */ + EXIT2(return NDIS_STATUS_SUCCESS); +} + +wstdcall void WIN_FUNC(NdisCompletePnPEvent,2) + (NDIS_STATUS status, void *handle, struct net_pnp_event *event) +{ + ENTER2("%d, %p, %d", status, handle, event->code); + /* NdisWrapper never calls protocol's pnp event notifier, so + * nothing to do here */ + EXIT2(return); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisMSetMiniportSecondary,2) + (struct ndis_mp_block *nmb2, struct ndis_mp_block *nmb1) +{ + ENTER3("%p, %p", nmb1, nmb2); + TODO(); + EXIT3(return NDIS_STATUS_SUCCESS); +} + +wstdcall NDIS_STATUS WIN_FUNC(NdisMPromoteMiniport,1) + (struct ndis_mp_block *nmb) +{ + ENTER3("%p", nmb); + TODO(); + EXIT3(return NDIS_STATUS_SUCCESS); +} + +wstdcall void WIN_FUNC(NdisMCoActivateVcComplete,3) + (NDIS_STATUS status, void *handle, void *params) +{ + TODO(); +} + +wstdcall void WIN_FUNC(NdisMCoDeactivateVcComplete,2) + (NDIS_STATUS status, void *handle) +{ + TODO(); +} + +wstdcall void WIN_FUNC(NdisMRemoveMiniport,1) + (void *handle) +{ + TODO(); +} + +static void *ndis_get_routine_address(char *name) +{ + int i; + ENTER2("%p", name); + for (i = 0; i < sizeof(ndis_exports) / sizeof(ndis_exports[0]); i++) { + if (strcmp(name, ndis_exports[i].name) == 0) { + TRACE2("%p", ndis_exports[i].func); + return ndis_exports[i].func; + } + } + EXIT2(return NULL); +} + +/* ndis_init_device is called for each device */ +int ndis_init_device(struct ndis_device *wnd) +{ + struct ndis_mp_block *nmb = wnd->nmb; + + KeInitializeSpinLock(&nmb->lock); + wnd->mp_interrupt = NULL; + wnd->wrap_timer_slist.next = NULL; + if (wnd->wd->driver->ndis_driver) + wnd->wd->driver->ndis_driver->mp.shutdown = NULL; + + nmb->filterdbs.eth_db = nmb; + nmb->filterdbs.tr_db = nmb; + nmb->filterdbs.fddi_db = nmb; + nmb->filterdbs.arc_db = nmb; + + nmb->rx_packet = WIN_FUNC_PTR(NdisMIndicateReceivePacket,3); + nmb->send_complete = WIN_FUNC_PTR(NdisMSendComplete,3); + nmb->send_resource_avail = WIN_FUNC_PTR(NdisMSendResourcesAvailable,1); + nmb->status = WIN_FUNC_PTR(NdisMIndicateStatus,4); + nmb->status_complete = WIN_FUNC_PTR(NdisMIndicateStatusComplete,1); + nmb->queryinfo_complete = WIN_FUNC_PTR(NdisMQueryInformationComplete,2); + nmb->setinfo_complete = WIN_FUNC_PTR(NdisMSetInformationComplete,2); + nmb->reset_complete = WIN_FUNC_PTR(NdisMResetComplete,3); + nmb->eth_rx_indicate = WIN_FUNC_PTR(EthRxIndicateHandler,8); + nmb->eth_rx_complete = WIN_FUNC_PTR(EthRxComplete,1); + nmb->td_complete = WIN_FUNC_PTR(NdisMTransferDataComplete,4); + return 0; +} + +/* ndis_exit_device is called for each device */ +void ndis_exit_device(struct ndis_device *wnd) +{ + struct wrap_device_setting *setting; + ENTER2("%p", wnd); + if (down_interruptible(&loader_mutex)) + WARNING("couldn't obtain loader_mutex"); + nt_list_for_each_entry(setting, &wnd->wd->settings, list) { + struct ndis_configuration_parameter *param; + param = setting->encoded; + if (param) { + if (param->type == NdisParameterString) + RtlFreeUnicodeString(¶m->data.string); + ExFreePool(param); + setting->encoded = NULL; + } + } + up(&loader_mutex); +} + +/* ndis_init is called once when module is loaded */ +int ndis_init(void) +{ + InitializeListHead(&ndis_work_list); + spin_lock_init(&ndis_work_list_lock); + initialize_work(&ndis_work, ndis_worker, NULL); + + ndis_wq = create_singlethread_workqueue("ndis_wq"); + if (!ndis_wq) { + WARNING("couldn't create worker thread"); + EXIT1(return -ENOMEM); + } + + ndis_worker_thread = wrap_worker_init(ndis_wq); + TRACE1("%p", ndis_worker_thread); + return 0; +} + +/* ndis_exit is called once when module is removed */ +void ndis_exit(void) +{ + ENTER1(""); + if (ndis_wq) + destroy_workqueue(ndis_wq); + TRACE1("%p", ndis_worker_thread); + if (ndis_worker_thread) + ObDereferenceObject(ndis_worker_thread); + EXIT1(return); +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/wrapmem.h +++ linux-2.6.35/ubuntu/ndiswrapper/wrapmem.h @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2006 Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _WRAPMEM_H_ + +/* set ALLOC_DEBUG to 1 to get information about memory used by both + * ndiswrapper and Windows driver by reading + * /proc/net/ndiswrapper/debug; this will also show memory leaks + * (memory allocated but not freed) when ndiswrapper module is + * unloaded. + + * ALLOC_DEBUG=2: details about individual allocations leaking is printed + * ALLOC_DEBUG=3: tags in ExAllocatePoolWithTag leaking printed +*/ + +//#ifndef ALLOC_DEBUG +//#define ALLOC_DEBUG 1 +//#endif + +enum alloc_type { ALLOC_TYPE_KMALLOC_ATOMIC, ALLOC_TYPE_KMALLOC_NON_ATOMIC, + ALLOC_TYPE_VMALLOC_ATOMIC, ALLOC_TYPE_VMALLOC_NON_ATOMIC, + ALLOC_TYPE_SLACK, ALLOC_TYPE_PAGES, ALLOC_TYPE_MAX }; + +int wrapmem_init(void); +void wrapmem_exit(void); +void *slack_kmalloc(size_t size); +void slack_kfree(void *ptr); +void wrapmem_info(void); + +#ifdef ALLOC_DEBUG +void *wrap_kmalloc(size_t size, gfp_t flags, const char *file, int line); +void *wrap_kzalloc(size_t size, gfp_t flags, const char *file, int line); +void wrap_kfree(void *ptr); +void *wrap_vmalloc(unsigned long size, const char *file, int line); +void *wrap__vmalloc(unsigned long size, gfp_t flags, pgprot_t prot, + const char *file, int line); +void wrap_vfree(void *ptr); +void *wrap_alloc_pages(gfp_t flags, unsigned int size, + const char *file, int line); +void wrap_free_pages(unsigned long ptr, int order); +int alloc_size(enum alloc_type type); + +#ifndef _WRAPMEM_C_ +#undef kmalloc +#undef kzalloc +#undef kfree +#undef vmalloc +#undef __vmalloc +#undef vfree +#define kmalloc(size, flags) \ + wrap_kmalloc(size, flags, __FILE__, __LINE__) +#define kzalloc(size, flags) \ + wrap_kzalloc(size, flags, __FILE__, __LINE__) +#define vmalloc(size) \ + wrap_vmalloc(size, __FILE__, __LINE__) +#define __vmalloc(size, flags, prot) \ + wrap__vmalloc(size, flags, prot, __FILE__, __LINE__) +#define kfree(ptr) wrap_kfree(ptr) +#define vfree(ptr) wrap_vfree(ptr) + +#define wrap_get_free_pages(flags, size) \ + wrap_alloc_pages(flags, size, __FILE__, __LINE__) +#undef free_pages +#define free_pages(ptr, order) wrap_free_pages(ptr, order) + +#if ALLOC_DEBUG > 1 +void *wrap_ExAllocatePoolWithTag(enum pool_type pool_type, SIZE_T size, + ULONG tag, const char *file, int line); +#define ExAllocatePoolWithTag(pool_type, size, tag) \ + wrap_ExAllocatePoolWithTag(pool_type, size, tag, __FILE__, __LINE__) +#endif + +#endif // _WRAPMEM_C_ + +#else + +#define wrap_get_free_pages(flags, size) \ + (void *)__get_free_pages(flags, get_order(size)) + +#endif // ALLOC_DEBUG + +#endif --- linux-2.6.35.orig/ubuntu/ndiswrapper/ndis.h +++ linux-2.6.35/ubuntu/ndiswrapper/ndis.h @@ -0,0 +1,1314 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _NDIS_H_ +#define _NDIS_H_ + +#include "ntoskernel.h" + +//#define ALLOW_POOL_OVERFLOW 1 + +#define NDIS_DMA_24BITS 0 +#define NDIS_DMA_32BITS 1 +#define NDIS_DMA_64BITS 2 + +#ifdef CONFIG_X86_64 +#define MAXIMUM_PROCESSORS 64 +#else +#define MAXIMUM_PROCESSORS 32 +#endif + +typedef UINT NDIS_STATUS; +typedef UCHAR NDIS_DMA_SIZE; +typedef LONG ndis_rssi; +typedef ULONG ndis_key_index; +typedef ULONG ndis_tx_power_level; +typedef ULONGULONG ndis_key_rsc; +typedef UCHAR ndis_rates[NDIS_MAX_RATES]; +typedef UCHAR ndis_rates_ex[NDIS_MAX_RATES_EX]; +typedef UCHAR mac_address[ETH_ALEN]; +typedef ULONG ndis_fragmentation_threshold; +typedef ULONG ndis_rts_threshold; +typedef ULONG ndis_antenna; +typedef ULONG ndis_oid; + +typedef UCHAR ndis_pmkid_vavlue[16]; + +typedef uint64_t NDIS_PHY_ADDRESS; + +struct ndis_sg_element { + PHYSICAL_ADDRESS address; + ULONG length; + ULONG_PTR reserved; +}; + +struct ndis_sg_list { + ULONG nent; + ULONG_PTR reserved; + struct ndis_sg_element elements[]; +}; + +/* when sending packets, ndiswrapper associates exactly one sg element + * in sg list */ +struct wrap_tx_sg_list { + ULONG nent; + ULONG_PTR reserved; + struct ndis_sg_element elements[1]; +}; + +struct ndis_phy_addr_unit { + NDIS_PHY_ADDRESS phy_addr; + UINT length; +}; + +typedef struct mdl ndis_buffer; + +struct ndis_buffer_pool { + ndis_buffer *free_descr; +// NT_SPIN_LOCK lock; + spinlock_t lock; + UINT max_descr; + UINT num_allocated_descr; +}; + +#define NDIS_PROTOCOL_ID_DEFAULT 0x00 +#define NDIS_PROTOCOL_ID_TCP_IP 0x02 +#define NDIS_PROTOCOL_ID_IPX 0x06 +#define NDIS_PROTOCOL_ID_NBF 0x07 +#define NDIS_PROTOCOL_ID_MAX 0x0F +#define NDIS_PROTOCOL_ID_MASK 0x0F + +#define fPACKET_WRAPPER_RESERVED 0x3F +#define fPACKET_CONTAINS_MEDIA_SPECIFIC_INFO 0x40 +#define fPACKET_ALLOCATED_BY_NDIS 0x80 + +#define PROTOCOL_RESERVED_SIZE_IN_PACKET (4 * sizeof(void *)) + +struct transport_header_offset { + USHORT protocol_type; + USHORT header_offset; +}; + +struct ndis_network_address { + USHORT length; + USHORT type; + UCHAR address[1]; +}; + +struct ndis_network_address_list { + LONG count; + USHORT type; + struct ndis_network_address address[1]; +}; + +struct ndis_tcp_ip_checksum_packet_info { + union { + struct { + ULONG v4:1; + ULONG v6:1; + ULONG tcp:1; + ULONG udp:1; + ULONG ip:1; + } tx; + struct { + ULONG tcp_failed:1; + ULONG udp_failed:1; + ULONG ip_failed:1; + ULONG tcp_succeeded:1; + ULONG udp_succeeded:1; + ULONG ip_succeeded:1; + ULONG loopback:1; + } rx; + ULONG value; + }; +}; + +enum ndis_task { + TcpIpChecksumNdisTask, IpSecNdisTask, TcpLargeSendNdisTask, MaxNdisTask +}; + +enum ndis_encapsulation { + UNSPECIFIED_Encapsulation, NULL_Encapsulation, + IEEE_802_3_Encapsulation, IEEE_802_5_Encapsulation, + LLC_SNAP_ROUTED_Encapsulation, LLC_SNAP_BRIDGED_Encapsulation +}; + +#define NDIS_TASK_OFFLOAD_VERSION 1 + +struct ndis_encapsulation_format { + enum ndis_encapsulation encap; + struct { + ULONG fixed_header_size:1; + ULONG reserved:31; + } flags; + ULONG header_size; +}; + +struct ndis_task_offload_header { + ULONG version; + ULONG size; + ULONG reserved; + ULONG offset_first_task; + struct ndis_encapsulation_format encap_format; +}; + +struct ndis_task_offload { + ULONG version; + ULONG size; + enum ndis_task task; + ULONG offset_next_task; + ULONG task_buf_length; + UCHAR task_buf[1]; +}; + +struct v4_checksum { + union { + struct { + ULONG ip_opts:1; + ULONG tcp_opts:1; + ULONG tcp_csum:1; + ULONG udp_csum:1; + ULONG ip_csum:1; + }; + ULONG value; + }; +}; + +struct v6_checksum { + ULONG ip_supported:1; + ULONG tcp_supported:1; + ULONG tcp_csum:1; + ULONG udp_csum:1; +}; + +struct ndis_task_tcp_ip_checksum { + struct v4_checksum v4_tx; + struct v4_checksum v4_rx; + struct v6_checksum v6_tx; + struct v6_checksum v6_rx; +}; + +struct ndis_task_tcp_large_send { + ULONG version; + ULONG max_size; + ULONG min_seg_count; + BOOLEAN tcp_opts; + BOOLEAN ip_opts; +}; + +struct ndis_packet; + +struct ndis_packet_pool { + struct ndis_packet *free_descr; +// NT_SPIN_LOCK lock; + spinlock_t lock; + UINT max_descr; + UINT num_allocated_descr; + UINT num_used_descr; + UINT proto_rsvd_length; +}; + +struct ndis_packet_stack { + ULONG_PTR IM_reserved[2]; + ULONG_PTR ndis_reserved[4]; +}; + +enum ndis_per_packet_info { + TcpIpChecksumPacketInfo, IpSecPacketInfo, TcpLargeSendPacketInfo, + ClassificationHandlePacketInfo, NdisReserved, + ScatterGatherListPacketInfo, Ieee8021QInfo, OriginalPacketInfo, + PacketCancelId, MaxPerPacketInfo +}; + +struct ndis_packet_extension { + void *info[MaxPerPacketInfo]; +}; + +struct ndis_packet_private { + UINT nr_pages; + UINT len; + ndis_buffer *buffer_head; + ndis_buffer *buffer_tail; + struct ndis_packet_pool *pool; + UINT count; + ULONG flags; + BOOLEAN valid_counts; + UCHAR packet_flags; + USHORT oob_offset; +}; + +struct ndis_packet { + struct ndis_packet_private private; + /* for use by miniport */ + union { + /* for connectionless mininports */ + struct { + UCHAR miniport_reserved[2 * sizeof(void *)]; + UCHAR wrapper_reserved[2 * sizeof(void *)]; + } cl_reserved; + /* for deserialized miniports */ + struct { + UCHAR miniport_reserved_ex[3 * sizeof(void *)]; + UCHAR wrapper_reserved_ex[sizeof(void *)]; + } deserailized_reserved; + struct { + UCHAR mac_reserved[4 * sizeof(void *)]; + } mac_reserved; + }; + ULONG_PTR reserved[2]; + UCHAR protocol_reserved[1]; +}; + +/* OOB data */ +struct ndis_packet_oob_data { + union { + ULONGLONG time_to_tx; + ULONGLONG time_txed; + }; + ULONGLONG time_rxed; + UINT header_size; + UINT media_size; + void *media; + NDIS_STATUS status; + + /* ndiswrapper specific info; extension should be right after + * ndis's oob_data */ + struct ndis_packet_extension ext; + union { + /* used for tx only */ + struct { + struct sk_buff *tx_skb; + union { + struct wrap_tx_sg_list wrap_tx_sg_list; + struct ndis_sg_list *tx_sg_list; + }; + }; + /* used for rx only */ + struct { + unsigned char header[ETH_HLEN]; + unsigned char *look_ahead; + UINT look_ahead_size; + }; + }; +}; + +#define NDIS_PACKET_OOB_DATA(packet) \ + (struct ndis_packet_oob_data *)(((void *)(packet)) + \ + (packet)->private.oob_offset) + +enum ndis_device_pnp_event { + NdisDevicePnPEventQueryRemoved, NdisDevicePnPEventRemoved, + NdisDevicePnPEventSurpriseRemoved, NdisDevicePnPEventQueryStopped, + NdisDevicePnPEventStopped, NdisDevicePnPEventPowerProfileChanged, + NdisDevicePnPEventMaximum +}; + +enum ndis_request_type { + NdisRequestQueryInformation, NdisRequestSetInformation, + NdisRequestQueryStatistics, NdisRequestOpen, NdisRequestClose, + NdisRequestSend, NdisRequestTransferData, NdisRequestReset, + NdisRequestGeneric1, NdisRequestGeneric2, NdisRequestGeneric3, + NdisRequestGeneric4 +}; + +struct ndis_request { + mac_address mac; + enum ndis_request_type request_type; + union data { + struct query_info { + UINT oid; + void *buf; + UINT buf_len; + UINT written; + UINT needed; + } query_info; + struct set_info { + UINT oid; + void *buf; + UINT buf_len; + UINT written; + UINT needed; + } set_info; + } data; +}; + +enum ndis_medium { + NdisMedium802_3, NdisMedium802_5, NdisMediumFddi, NdisMediumWan, + NdisMediumLocalTalk, NdisMediumDix, NdisMediumArcnetRaw, + NdisMediumArcnet878_2, NdisMediumAtm, NdisMediumWirelessWan, + NdisMediumIrda, NdisMediumBpc, NdisMediumCoWan, + NdisMedium1394, NdisMediumMax +}; + +enum ndis_physical_medium { + NdisPhysicalMediumUnspecified, NdisPhysicalMediumWirelessLan, + NdisPhysicalMediumCableModem, NdisPhysicalMediumPhoneLine, + NdisPhysicalMediumPowerLine, NdisPhysicalMediumDSL, + NdisPhysicalMediumFibreChannel, NdisPhysicalMedium1394, + NdisPhysicalMediumWirelessWan, NdisPhysicalMediumMax +}; + +enum ndis_power_state { + NdisDeviceStateUnspecified = 0, + NdisDeviceStateD0, NdisDeviceStateD1, NdisDeviceStateD2, + NdisDeviceStateD3, NdisDeviceStateMaximum +}; + +enum ndis_power_profile { + NdisPowerProfileBattery, NdisPowerProfileAcOnLine +}; + +struct ndis_pm_wakeup_capabilities { + enum ndis_power_state min_magic_packet_wakeup; + enum ndis_power_state min_pattern_wakeup; + enum ndis_power_state min_link_change_wakeup; +}; + +#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 +#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 +#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 + +enum net_pnp_event_code { + NetEventSetPower, NetEventQueryPower, NetEventQueryRemoveDevice, + NetEventCancelRemoveDevice, NetEventReconfigure, NetEventBindList, + NetEventBindsComplete, NetEventPnPCapabilities, NetEventMaximum +}; + +struct net_pnp_event { + enum net_pnp_event_code code; + void *buf; + ULONG buf_length; + ULONG_PTR ndis_reserved[4]; + ULONG_PTR transport_reserved[4]; + ULONG_PTR tdi_reserved[4]; + ULONG_PTR tdi_client_reserved[4]; +}; + +struct ndis_pnp_capabilities { + ULONG flags; + struct ndis_pm_wakeup_capabilities wakeup; +}; + +typedef void (*ndis_isr_handler)(BOOLEAN *recognized, BOOLEAN *queue_handler, + void *handle) wstdcall; +typedef void (*ndis_interrupt_handler)(void *ctx) wstdcall; + +struct miniport { + /* NDIS 3.0 */ + UCHAR major_version; + UCHAR minor_version; + USHORT filler; + UINT reserved; + BOOLEAN (*hangcheck)(void *ctx) wstdcall; + void (*disable_interrupt)(void *ctx) wstdcall; + void (*enable_interrupt)(void *ctx) wstdcall; + void (*mp_halt)(void *ctx) wstdcall; + ndis_interrupt_handler handle_interrupt; + NDIS_STATUS (*init)(NDIS_STATUS *error_status, UINT *medium_index, + enum ndis_medium medium[], UINT medium_array_size, + void *handle, void *conf_handle) wstdcall; + ndis_isr_handler isr; + NDIS_STATUS (*queryinfo)(void *ctx, ndis_oid oid, void *buffer, + ULONG buflen, ULONG *written, + ULONG *needed) wstdcall; + void *reconfig; + NDIS_STATUS (*reset)(BOOLEAN *reset_address, void *ctx) wstdcall; + NDIS_STATUS (*send)(void *ctx, struct ndis_packet *packet, + UINT flags) wstdcall; + NDIS_STATUS (*setinfo)(void *ctx, ndis_oid oid, void *buffer, + ULONG buflen, ULONG *written, + ULONG *needed) wstdcall; + NDIS_STATUS (*tx_data)(struct ndis_packet *ndis_packet, + UINT *bytes_txed, void *mp_ctx, void *rx_ctx, + UINT offset, UINT bytes_to_tx) wstdcall; + /* NDIS 4.0 extensions */ + void (*return_packet)(void *ctx, void *packet) wstdcall; + void (*send_packets)(void *ctx, struct ndis_packet **packets, + INT nr_of_packets) wstdcall; + void (*alloc_complete)(void *handle, void *virt, + NDIS_PHY_ADDRESS *phys, + ULONG size, void *ctx) wstdcall; + /* NDIS 5.0 extensions */ + NDIS_STATUS (*co_create_vc)(void *ctx, void *vc_handle, + void *vc_ctx) wstdcall; + NDIS_STATUS (*co_delete_vc)(void *vc_ctx) wstdcall; + NDIS_STATUS (*co_activate_vc)(void *vc_ctx, void *call_params) wstdcall; + NDIS_STATUS (*co_deactivate_vc)(void *vc_ctx) wstdcall; + NDIS_STATUS (*co_send_packets)(void *vc_ctx, void **packets, + UINT nr_of_packets) wstdcall; + NDIS_STATUS (*co_request)(void *ctx, void *vc_ctx, UINT *req) wstdcall; + /* NDIS 5.1 extensions */ + void (*cancel_send_packets)(void *ctx, void *id) wstdcall; + void (*pnp_event_notify)(void *ctx, enum ndis_device_pnp_event event, + void *inf_buf, ULONG inf_buf_len) wstdcall; + void (*shutdown)(void *ctx) wstdcall; + void *reserved1; + void *reserved2; + void *reserved3; + void *reserved4; +}; + +struct ndis_spinlock { + NT_SPIN_LOCK klock; + KIRQL irql; +}; + +union ndis_rw_lock_refcount { + UCHAR cache_line[16]; +}; + +struct ndis_rw_lock { + union { + struct { + NT_SPIN_LOCK klock; + void *context; + }; + UCHAR reserved[16]; + }; + union { + union ndis_rw_lock_refcount ref_count[MAXIMUM_PROCESSORS]; + /* ndiswrapper specific */ + volatile int count; + }; +}; + +struct lock_state { + USHORT state; + KIRQL irql; +}; + +struct ndis_work_item; +typedef void (*NDIS_PROC)(struct ndis_work_item *, void *) wstdcall; + +struct ndis_work_item { + void *ctx; + NDIS_PROC func; + union { + UCHAR reserved[8 * sizeof(void *)]; + /* ndiswrapper specific */ + struct nt_list list; + }; +}; + +struct alloc_shared_mem { + void *ctx; + ULONG size; + BOOLEAN cached; +}; + +struct ndis_mp_block; + +/* this is opaque to drivers, so we can use it as we please */ +struct ndis_mp_interrupt { + struct kinterrupt *kinterrupt; + NT_SPIN_LOCK lock; + union { + void *reserved; + unsigned int irq; + }; + ndis_isr_handler isr; + ndis_interrupt_handler mp_dpc; + struct kdpc intr_dpc; + struct ndis_mp_block *nmb; + UCHAR dpc_count; + BOOLEAN enable; + struct nt_event dpc_completed_event; + BOOLEAN shared; + BOOLEAN req_isr; +}; + +struct ndis_binary_data { + USHORT len; + void *buf; +}; + +enum ndis_parameter_type { + NdisParameterInteger, NdisParameterHexInteger, + NdisParameterString, NdisParameterMultiString, NdisParameterBinary, +}; + +typedef struct unicode_string NDIS_STRING; + +struct ndis_configuration_parameter { + enum ndis_parameter_type type; + union { + ULONG integer; + NDIS_STRING string; + } data; +}; + +struct ndis_driver { + struct miniport mp; +}; + +/* IDs used to store extensions in driver_object's custom extension */ +#define NDIS_DRIVER_CLIENT_ID 10 + +struct ndis_wireless_stats { + ULONG length; + LARGE_INTEGER tx_frag; + LARGE_INTEGER tx_multi_frag; + LARGE_INTEGER failed; + LARGE_INTEGER retry; + LARGE_INTEGER multi_retry; + LARGE_INTEGER rtss_succ; + LARGE_INTEGER rtss_fail; + LARGE_INTEGER ack_fail; + LARGE_INTEGER frame_dup; + LARGE_INTEGER rx_frag; + LARGE_INTEGER rx_multi_frag; + LARGE_INTEGER fcs_err; + LARGE_INTEGER tkip_local_mic_failures; + LARGE_INTEGER tkip_icv_errors; + LARGE_INTEGER tkip_counter_measures_invoked; + LARGE_INTEGER tkip_replays; + LARGE_INTEGER ccmp_format_errors; + LARGE_INTEGER ccmp_replays; + LARGE_INTEGER ccmp_decrypt_errors; + LARGE_INTEGER fourway_handshake_failures; + LARGE_INTEGER wep_undecryptable_count; + LARGE_INTEGER wep_icv_errorcount; + LARGE_INTEGER decrypt_success_count; + LARGE_INTEGER decrypt_failure_count; +}; + +enum ndis_status_type { + Ndis802_11StatusType_Authentication, + Ndis802_11StatusType_MediaStreamMode, + Ndis802_11StatusType_PMKID_CandidateList, + Ndis802_11StatusType_RadioState, +}; + +struct ndis_status_indication { + enum ndis_status_type status_type; +}; + +enum ndis_radio_status { + Ndis802_11RadioStatusOn, Ndis802_11RadioStatusHardwareOff, + Ndis802_11RadioStatusSoftwareOff, +}; + +struct ndis_radio_status_indication +{ + enum ndis_status_type status_type; + enum ndis_radio_status radio_state; +}; + +enum ndis_media_state { + NdisMediaStateConnected, + NdisMediaStateDisconnected, +}; + +enum ndis_media_stream_mode { + Ndis802_11MediaStreamOff, Ndis802_11MediaStreamOn +}; + +enum wrapper_work { + LINK_STATUS_OFF, LINK_STATUS_ON, SET_MULTICAST_LIST, COLLECT_IW_STATS, + HANGCHECK, NETIF_WAKEQ, +}; + +struct encr_info { + struct encr_key { + ULONG length; + UCHAR key[NDIS_ENCODING_TOKEN_MAX]; + } keys[MAX_ENCR_KEYS]; + unsigned short tx_key_index; +}; + +struct ndis_essid { + ULONG length; + UCHAR essid[NDIS_ESSID_MAX_SIZE]; +}; + +enum ndis_infrastructure_mode { + Ndis802_11IBSS, Ndis802_11Infrastructure, Ndis802_11AutoUnknown, + Ndis802_11InfrastructureMax +}; + +enum authentication_mode { + Ndis802_11AuthModeOpen, Ndis802_11AuthModeShared, + Ndis802_11AuthModeAutoSwitch, Ndis802_11AuthModeWPA, + Ndis802_11AuthModeWPAPSK, Ndis802_11AuthModeWPANone, + Ndis802_11AuthModeWPA2, Ndis802_11AuthModeWPA2PSK, + Ndis802_11AuthModeMax +}; + +enum encryption_status { + Ndis802_11WEPEnabled, + Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled, + Ndis802_11WEPDisabled, + Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled, + Ndis802_11WEPKeyAbsent, + Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent, + Ndis802_11WEPNotSupported, + Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported, + Ndis802_11Encryption2Enabled, Ndis802_11Encryption2KeyAbsent, + Ndis802_11Encryption3Enabled, Ndis802_11Encryption3KeyAbsent +}; + +struct ndis_auth_encr_pair { + enum authentication_mode auth_mode; + enum encryption_status encr_mode; +}; + +struct ndis_capability { + ULONG length; + ULONG version; + ULONG num_PMKIDs; + ULONG num_auth_encr_pair; + struct ndis_auth_encr_pair auth_encr_pair[1]; +}; + +struct ndis_guid { + struct guid guid; + union { + ndis_oid oid; + NDIS_STATUS status; + }; + ULONG size; + ULONG flags; +}; + +struct ndis_timer { + struct nt_timer nt_timer; + struct kdpc kdpc; +}; + +struct ndis_mp_timer { + struct nt_timer nt_timer; + struct kdpc kdpc; + DPC func; + void *ctx; + struct ndis_mp_block *nmb; + struct ndis_mp_timer *next; +}; + +typedef struct cm_partial_resource_list NDIS_RESOURCE_LIST; + +struct ndis_event { + struct nt_event nt_event; +}; + +struct ndis_bind_paths { + UINT number; + struct unicode_string paths[1]; +}; + +struct ndis_reference { + NT_SPIN_LOCK lock; + USHORT ref_count; + BOOLEAN closing; +}; + +struct ndis_filterdbs { + union { + void *eth_db; + void *null_db; + }; + void *tr_db; + void *fddi_db; + void *arc_db; +}; + +enum ndis_interface_type { + NdisInterfaceInternal, NdisInterfaceIsa, NdisInterfaceEisa, + NdisInterfaceMca, NdisInterfaceTurboChannel, NdisInterfacePci, + NdisInterfacePcMcia, +}; + +struct auth_encr_capa { + unsigned long auth; + unsigned long encr; +}; + +struct ndis_pmkid_candidate { + mac_address bssid; + DWORD flags; +}; + +struct ndis_pmkid_candidate_list { + ULONG version; + ULONG num_candidates; + struct ndis_pmkid_candidate candidates[1]; +}; + +/* + * This struct contains function pointers that the drivers references + * directly via macros, so it's important that they are at the correct + * position. + */ +struct ndis_mp_block { + void *signature; + struct ndis_mp_block *next; + struct driver_object *drv_obj; + void *mp_ctx; + struct unicode_string name; + struct ndis_bind_paths *bindpaths; + void *openqueue; + struct ndis_reference reference; + void *device_ctx; + UCHAR padding; + UCHAR lock_acquired; + UCHAR pmode_opens; + UCHAR assigned_cpu; + NT_SPIN_LOCK lock; + enum ndis_request_type *mediarequest; + struct ndis_mp_interrupt *interrupt; + ULONG flags; + ULONG pnp_flags; + struct nt_list packet_list; + struct ndis_packet *first_pending_tx_packet; + struct ndis_packet *return_packet_queue; + ULONG request_buffer; + void *set_mcast_buffer; + struct ndis_mp_block *primary_mp; + void *wrapper_ctx; + void *bus_data_ctx; + ULONG pnp_capa; + void *resources; + struct ndis_timer wakeup_dpc_timer; + struct unicode_string basename; + struct unicode_string symlink_name; + ULONG ndis_hangcheck_interval; + USHORT hanghcheck_ticks; + USHORT hangcheck_tick; + NDIS_STATUS ndis_reset_status; + void *resetopen; + struct ndis_filterdbs filterdbs; + void *rx_packet; + void *send_complete; + void *send_resource_avail; + void *reset_complete; + + enum ndis_medium media_type; + ULONG bus_number; + enum ndis_interface_type bus_type; + enum ndis_interface_type adapter_type; + struct device_object *fdo; + struct device_object *pdo; + struct device_object *next_device; + void *mapreg; + void *call_mgraflist; + void *mp_thread; + void *setinfobuf; + USHORT setinfo_buf_len; + USHORT max_send_pkts; + NDIS_STATUS fake_status; + void *lock_handler; + struct unicode_string *adapter_instance_name; + void *timer_queue; + UINT mac_options; + void *pending_req; + UINT max_long_addrs; + UINT max_short_addrs; + UINT cur_lookahead; + UINT max_lookahead; + + ndis_interrupt_handler irq_bh; + void *disable_intr; + void *enable_intr; + void *send_pkts; + void *deferred_send; + void *eth_rx_indicate; + void *tr_rx_indicate; + void *fddi_rx_indicate; + void *eth_rx_complete; + void *tr_rx_complete; + void *fddi_rx_complete; + + void *status; + void *status_complete; + void *td_complete; + + void *queryinfo_complete; + void *setinfo_complete; + void *wan_tx_complete; + void *wan_rx; + void *wan_rx_complete; + /* ndiswrapper specific */ + struct ndis_device *wnd; +}; + +struct ndis_device { + struct ndis_mp_block *nmb; + struct wrap_device *wd; + struct net_device *net_dev; + void *shutdown_ctx; + struct ndis_mp_interrupt *mp_interrupt; + struct kdpc irq_kdpc; + unsigned long mem_start; + unsigned long mem_end; + + struct net_device_stats net_stats; + struct iw_statistics iw_stats; + BOOLEAN iw_stats_enabled; + struct ndis_wireless_stats ndis_stats; + + work_struct_t tx_work; + struct ndis_packet *tx_ring[TX_RING_SIZE]; + u8 tx_ring_start; + u8 tx_ring_end; + u8 is_tx_ring_full; + u8 tx_ok; + spinlock_t tx_ring_lock; + struct semaphore tx_ring_mutex; + unsigned int max_tx_packets; + struct semaphore ndis_req_mutex; + struct task_struct *ndis_req_task; + int ndis_req_done; + NDIS_STATUS ndis_req_status; + ULONG packet_filter; + + ULONG sg_dma_size; + ULONG dma_map_count; + dma_addr_t *dma_map_addr; + + int hangcheck_interval; + struct timer_list hangcheck_timer; + int iw_stats_interval; + struct timer_list iw_stats_timer; + unsigned long scan_timestamp; + struct encr_info encr_info; + char nick[IW_ESSID_MAX_SIZE + 1]; + struct ndis_essid essid; + struct auth_encr_capa capa; + enum ndis_infrastructure_mode infrastructure_mode; + int max_pmkids; + int num_pmkids; + struct ndis_pmkid *pmkids; + mac_address mac; + struct proc_dir_entry *procfs_iface; + + work_struct_t ndis_work; + unsigned long ndis_pending_work; + UINT attributes; + int iw_auth_wpa_version; + int iw_auth_cipher_pairwise; + int iw_auth_cipher_group; + int iw_auth_key_mgmt; + int iw_auth_80211_alg; + struct ndis_packet_pool *tx_packet_pool; + struct ndis_buffer_pool *tx_buffer_pool; + int multicast_size; + struct v4_checksum rx_csum; + struct v4_checksum tx_csum; + enum ndis_physical_medium physical_medium; + ULONG ndis_wolopts; + struct nt_slist wrap_timer_slist; + int drv_ndis_version; + struct ndis_pnp_capabilities pnp_capa; + char netdev_name[IFNAMSIZ]; +}; + +BOOLEAN ndis_isr(struct kinterrupt *kinterrupt, void *ctx) wstdcall; + +int ndis_init(void); +void ndis_exit(void); +int ndis_init_device(struct ndis_device *wnd); +void ndis_exit_device(struct ndis_device *wnd); + +int wrap_procfs_add_ndis_device(struct ndis_device *wnd); +void wrap_procfs_remove_ndis_device(struct ndis_device *wnd); + +void NdisAllocatePacketPoolEx(NDIS_STATUS *status, + struct ndis_packet_pool **pool_handle, + UINT num_descr, UINT overflowsize, + UINT proto_rsvd_length) wstdcall; +void NdisFreePacketPool(struct ndis_packet_pool *pool) wstdcall; +void NdisAllocatePacket(NDIS_STATUS *status, struct ndis_packet **packet, + struct ndis_packet_pool *pool) wstdcall; +void NdisFreePacket(struct ndis_packet *descr) wstdcall; +void NdisAllocateBufferPool(NDIS_STATUS *status, + struct ndis_buffer_pool **pool_handle, + UINT num_descr) wstdcall; +void NdisFreeBufferPool(struct ndis_buffer_pool *pool) wstdcall; +void NdisAllocateBuffer(NDIS_STATUS *status, ndis_buffer **buffer, + struct ndis_buffer_pool *pool, void *virt, + UINT length) wstdcall; +void NdisFreeBuffer(ndis_buffer *descr) wstdcall; +void NdisMIndicateReceivePacket(struct ndis_mp_block *nmb, + struct ndis_packet **packets, + UINT nr_packets) wstdcall; +void NdisMSendComplete(struct ndis_mp_block *nmb, struct ndis_packet *packet, + NDIS_STATUS status) wstdcall; +void NdisMSendResourcesAvailable(struct ndis_mp_block *nmb) wstdcall; +void NdisMIndicateStatus(struct ndis_mp_block *nmb, + NDIS_STATUS status, void *buf, UINT len) wstdcall; +void NdisMIndicateStatusComplete(struct ndis_mp_block *nmb) wstdcall; +void NdisMQueryInformationComplete(struct ndis_mp_block *nmb, + NDIS_STATUS status) wstdcall; +void NdisMSetInformationComplete(struct ndis_mp_block *nmb, + NDIS_STATUS status) wstdcall; +void NdisMResetComplete(struct ndis_mp_block *nmb, NDIS_STATUS status, + BOOLEAN address_reset) wstdcall; +ULONG NDIS_BUFFER_TO_SPAN_PAGES(ndis_buffer *buffer) wstdcall; +BOOLEAN NdisWaitEvent(struct ndis_event *event, UINT timeout) wstdcall; +void NdisSetEvent(struct ndis_event *event) wstdcall; +void NdisMDeregisterInterrupt(struct ndis_mp_interrupt *mp_interrupt) wstdcall; +void EthRxIndicateHandler(struct ndis_mp_block *nmb, void *rx_ctx, + char *header1, char *header, UINT header_size, + void *look_ahead, UINT look_ahead_size, + UINT packet_size) wstdcall; +void EthRxComplete(struct ndis_mp_block *nmb) wstdcall; +void NdisMTransferDataComplete(struct ndis_mp_block *nmb, + struct ndis_packet *packet, NDIS_STATUS status, + UINT bytes_txed) wstdcall; +void NdisWriteConfiguration(NDIS_STATUS *status, struct ndis_mp_block *nmb, + struct unicode_string *key, + struct ndis_configuration_parameter *param) wstdcall; +void NdisReadConfiguration(NDIS_STATUS *status, + struct ndis_configuration_parameter **param, + struct ndis_mp_block *nmb, + struct unicode_string *key, + enum ndis_parameter_type type) wstdcall; + +/* Required OIDs */ +#define OID_GEN_SUPPORTED_LIST 0x00010101 +#define OID_GEN_HARDWARE_STATUS 0x00010102 +#define OID_GEN_MEDIA_SUPPORTED 0x00010103 +#define OID_GEN_MEDIA_IN_USE 0x00010104 +#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 +#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 +#define OID_GEN_LINK_SPEED 0x00010107 +#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 +#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 +#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A +#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B +#define OID_GEN_VENDOR_ID 0x0001010C +#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D +#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E +#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F +#define OID_GEN_DRIVER_VERSION 0x00010110 +#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 +#define OID_GEN_PROTOCOL_OPTIONS 0x00010112 +#define OID_GEN_MAC_OPTIONS 0x00010113 +#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 +#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 +#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 +#define OID_GEN_SUPPORTED_GUIDS 0x00010117 +#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 /* Set only */ +#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 /* Set only */ +#define OID_GEN_MACHINE_NAME 0x0001021A +#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B /* Set only */ +#define OID_GEN_VLAN_ID 0x0001021C + +/* Optional OIDs. */ +#define OID_GEN_MEDIA_CAPABILITIES 0x00010201 +#define OID_GEN_PHYSICAL_MEDIUM 0x00010202 + +/* Required statistics OIDs. */ +#define OID_GEN_XMIT_OK 0x00020101 +#define OID_GEN_RCV_OK 0x00020102 +#define OID_GEN_XMIT_ERROR 0x00020103 +#define OID_GEN_RCV_ERROR 0x00020104 +#define OID_GEN_RCV_NO_BUFFER 0x00020105 + +/* Optional OID statistics */ +#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 +#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 +#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 +#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 +#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 +#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 +#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 +#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 +#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 +#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A +#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B +#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C +#define OID_GEN_RCV_CRC_ERROR 0x0002020D +#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E +#define OID_GEN_GET_TIME_CAPS 0x0002020F +#define OID_GEN_GET_NETCARD_TIME 0x00020210 +#define OID_GEN_NETCARD_LOAD 0x00020211 +#define OID_GEN_DEVICE_PROFILE 0x00020212 + +/* 802.3 (ethernet) OIDs */ +#define OID_802_3_PERMANENT_ADDRESS 0x01010101 +#define OID_802_3_CURRENT_ADDRESS 0x01010102 +#define OID_802_3_MULTICAST_LIST 0x01010103 +#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 +#define OID_802_3_MAC_OPTIONS 0x01010105 +#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 +#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 +#define OID_802_3_XMIT_ONE_COLLISION 0x01020102 +#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 +#define OID_802_3_XMIT_DEFERRED 0x01020201 +#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 +#define OID_802_3_RCV_OVERRUN 0x01020203 +#define OID_802_3_XMIT_UNDERRUN 0x01020204 +#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 +#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 +#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 + +/* PnP and power management OIDs */ +#define OID_PNP_CAPABILITIES 0xFD010100 +#define OID_PNP_SET_POWER 0xFD010101 +#define OID_PNP_QUERY_POWER 0xFD010102 +#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103 +#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104 +#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105 +#define OID_PNP_ENABLE_WAKE_UP 0xFD010106 + +/* PnP/PM Statistics (Optional). */ +#define OID_PNP_WAKE_UP_OK 0xFD020200 +#define OID_PNP_WAKE_UP_ERROR 0xFD020201 + +/* The following bits are defined for OID_PNP_ENABLE_WAKE_UP */ +#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 +#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 +#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 + +/* 802.11 OIDs */ +#define OID_802_11_BSSID 0x0D010101 +#define OID_802_11_SSID 0x0D010102 +#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 +#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 +#define OID_802_11_TX_POWER_LEVEL 0x0D010205 +#define OID_802_11_RSSI 0x0D010206 +#define OID_802_11_RSSI_TRIGGER 0x0D010207 +#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 +#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 +#define OID_802_11_RTS_THRESHOLD 0x0D01020A +#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B +#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C +#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D +#define OID_802_11_SUPPORTED_RATES 0x0D01020E +#define OID_802_11_DESIRED_RATES 0x0D010210 +#define OID_802_11_CONFIGURATION 0x0D010211 +#define OID_802_11_STATISTICS 0x0D020212 +#define OID_802_11_ADD_WEP 0x0D010113 +#define OID_802_11_REMOVE_WEP 0x0D010114 +#define OID_802_11_DISASSOCIATE 0x0D010115 +#define OID_802_11_POWER_MODE 0x0D010216 +#define OID_802_11_BSSID_LIST 0x0D010217 +#define OID_802_11_AUTHENTICATION_MODE 0x0D010118 +#define OID_802_11_PRIVACY_FILTER 0x0D010119 +#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A +#define OID_802_11_WEP_STATUS 0x0D01011B +#define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS +#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C +#define OID_802_11_ADD_KEY 0x0D01011D +#define OID_802_11_REMOVE_KEY 0x0D01011E +#define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F +#define OID_802_11_TEST 0x0D010120 +#define OID_802_11_MEDIA_STREAM_MODE 0x0D010121 +#define OID_802_11_CAPABILITY 0x0D010122 +#define OID_802_11_PMKID 0x0D010123 + +#define NDIS_STATUS_SUCCESS 0 +#define NDIS_STATUS_PENDING 0x00000103 +#define NDIS_STATUS_NOT_RECOGNIZED 0x00010001 +#define NDIS_STATUS_NOT_COPIED 0x00010002 +#define NDIS_STATUS_NOT_ACCEPTED 0x00010003 +#define NDIS_STATUS_CALL_ACTIVE 0x00010007 +#define NDIS_STATUS_ONLINE 0x40010003 +#define NDIS_STATUS_RESET_START 0x40010004 +#define NDIS_STATUS_RESET_END 0x40010005 +#define NDIS_STATUS_RING_STATUS 0x40010006 +#define NDIS_STATUS_CLOSED 0x40010007 +#define NDIS_STATUS_WAN_LINE_UP 0x40010008 +#define NDIS_STATUS_WAN_LINE_DOWN 0x40010009 +#define NDIS_STATUS_WAN_FRAGMENT 0x4001000A +#define NDIS_STATUS_MEDIA_CONNECT 0x4001000B +#define NDIS_STATUS_MEDIA_DISCONNECT 0x4001000C +#define NDIS_STATUS_HARDWARE_LINE_UP 0x4001000D +#define NDIS_STATUS_HARDWARE_LINE_DOWN 0x4001000E +#define NDIS_STATUS_INTERFACE_UP 0x4001000F +#define NDIS_STATUS_INTERFACE_DOWN 0x40010010 +#define NDIS_STATUS_MEDIA_BUSY 0x40010011 +#define NDIS_STATUS_MEDIA_SPECIFIC_INDICATION 0x40010012 +#define NDIS_STATUS_WW_INDICATION NDIS_STATUS_MEDIA_SPECIFIC_INDICATION +#define NDIS_STATUS_LINK_SPEED_CHANGE 0x40010013 +#define NDIS_STATUS_WAN_GET_STATS 0x40010014 +#define NDIS_STATUS_WAN_CO_FRAGMENT 0x40010015 +#define NDIS_STATUS_WAN_CO_LINKPARAMS 0x40010016 +#define NDIS_STATUS_NOT_RESETTABLE 0x80010001 +#define NDIS_STATUS_SOFT_ERRORS 0x80010003 +#define NDIS_STATUS_HARD_ERRORS 0x80010004 +#define NDIS_STATUS_BUFFER_OVERFLOW 0x80000005 +#define NDIS_STATUS_FAILURE 0xC0000001 +#define NDIS_STATUS_INVALID_PARAMETER 0xC000000D +#define NDIS_STATUS_RESOURCES 0xC000009A +#define NDIS_STATUS_CLOSING 0xC0010002 +#define NDIS_STATUS_BAD_VERSION 0xC0010004 +#define NDIS_STATUS_BAD_CHARACTERISTICS 0xC0010005 +#define NDIS_STATUS_ADAPTER_NOT_FOUND 0xC0010006 +#define NDIS_STATUS_OPEN_FAILED 0xC0010007 +#define NDIS_STATUS_DEVICE_FAILED 0xC0010008 +#define NDIS_STATUS_MULTICAST_FULL 0xC0010009 +#define NDIS_STATUS_MULTICAST_EXISTS 0xC001000A +#define NDIS_STATUS_MULTICAST_NOT_FOUND 0xC001000B +#define NDIS_STATUS_REQUEST_ABORTED 0xC001000C +#define NDIS_STATUS_RESET_IN_PROGRESS 0xC001000D +#define NDIS_STATUS_CLOSING_INDICATING 0xC001000E +#define NDIS_STATUS_BAD_VERSION 0xC0010004 +#define NDIS_STATUS_NOT_SUPPORTED 0xC00000BB +#define NDIS_STATUS_INVALID_PACKET 0xC001000F +#define NDIS_STATUS_OPEN_LIST_FULL 0xC0010010 +#define NDIS_STATUS_ADAPTER_NOT_READY 0xC0010011 +#define NDIS_STATUS_ADAPTER_NOT_OPEN 0xC0010012 +#define NDIS_STATUS_NOT_INDICATING 0xC0010013 +#define NDIS_STATUS_INVALID_LENGTH 0xC0010014 +#define NDIS_STATUS_INVALID_DATA 0xC0010015 +#define NDIS_STATUS_BUFFER_TOO_SHORT 0xC0010016 +#define NDIS_STATUS_INVALID_OID 0xC0010017 +#define NDIS_STATUS_ADAPTER_REMOVED 0xC0010018 +#define NDIS_STATUS_UNSUPPORTED_MEDIA 0xC0010019 +#define NDIS_STATUS_GROUP_ADDRESS_IN_USE 0xC001001A +#define NDIS_STATUS_FILE_NOT_FOUND 0xC001001B +#define NDIS_STATUS_ERROR_READING_FILE 0xC001001C +#define NDIS_STATUS_ALREADY_MAPPED 0xC001001D +#define NDIS_STATUS_RESOURCE_CONFLICT 0xC001001E +#define NDIS_STATUS_NO_CABLE 0xC001001F +#define NDIS_STATUS_INVALID_SAP 0xC0010020 +#define NDIS_STATUS_SAP_IN_USE 0xC0010021 +#define NDIS_STATUS_INVALID_ADDRESS 0xC0010022 +#define NDIS_STATUS_VC_NOT_ACTIVATED 0xC0010023 +#define NDIS_STATUS_DEST_OUT_OF_ORDER 0xC0010024 +#define NDIS_STATUS_VC_NOT_AVAILABLE 0xC0010025 +#define NDIS_STATUS_CELLRATE_NOT_AVAILABLE 0xC0010026 +#define NDIS_STATUS_INCOMPATABLE_QOS 0xC0010027 +#define NDIS_STATUS_AAL_PARAMS_UNSUPPORTED 0xC0010028 +#define NDIS_STATUS_NO_ROUTE_TO_DESTINATION 0xC0010029 +#define NDIS_STATUS_TOKEN_RING_OPEN_ERROR 0xC0011000 +#define NDIS_STATUS_INVALID_DEVICE_REQUEST 0xC0000010 +#define NDIS_STATUS_NETWORK_UNREACHABLE 0xC000023C + +/* Event codes */ + +#define EVENT_NDIS_RESOURCE_CONFLICT 0xC0001388 +#define EVENT_NDIS_OUT_OF_RESOURCE 0xC0001389 +#define EVENT_NDIS_HARDWARE_FAILURE 0xC000138A +#define EVENT_NDIS_ADAPTER_NOT_FOUND 0xC000138B +#define EVENT_NDIS_INTERRUPT_CONNECT 0xC000138C +#define EVENT_NDIS_DRIVER_FAILURE 0xC000138D +#define EVENT_NDIS_BAD_VERSION 0xC000138E +#define EVENT_NDIS_TIMEOUT 0x8000138F +#define EVENT_NDIS_NETWORK_ADDRESS 0xC0001390 +#define EVENT_NDIS_UNSUPPORTED_CONFIGURATION 0xC0001391 +#define EVENT_NDIS_INVALID_VALUE_FROM_ADAPTER 0xC0001392 +#define EVENT_NDIS_MISSING_CONFIGURATION_PARAMETER 0xC0001393 +#define EVENT_NDIS_BAD_IO_BASE_ADDRESS 0xC0001394 +#define EVENT_NDIS_RECEIVE_SPACE_SMALL 0x40001395 +#define EVENT_NDIS_ADAPTER_DISABLED 0x80001396 +#define EVENT_NDIS_IO_PORT_CONFLICT 0x80001397 +#define EVENT_NDIS_PORT_OR_DMA_CONFLICT 0x80001398 +#define EVENT_NDIS_MEMORY_CONFLICT 0x80001399 +#define EVENT_NDIS_INTERRUPT_CONFLICT 0x8000139A +#define EVENT_NDIS_DMA_CONFLICT 0x8000139B +#define EVENT_NDIS_INVALID_DOWNLOAD_FILE_ERROR 0xC000139C +#define EVENT_NDIS_MAXRECEIVES_ERROR 0x8000139D +#define EVENT_NDIS_MAXTRANSMITS_ERROR 0x8000139E +#define EVENT_NDIS_MAXFRAMESIZE_ERROR 0x8000139F +#define EVENT_NDIS_MAXINTERNALBUFS_ERROR 0x800013A0 +#define EVENT_NDIS_MAXMULTICAST_ERROR 0x800013A1 +#define EVENT_NDIS_PRODUCTID_ERROR 0x800013A2 +#define EVENT_NDIS_LOBE_FAILUE_ERROR 0x800013A3 +#define EVENT_NDIS_SIGNAL_LOSS_ERROR 0x800013A4 +#define EVENT_NDIS_REMOVE_RECEIVED_ERROR 0x800013A5 +#define EVENT_NDIS_TOKEN_RING_CORRECTION 0x400013A6 +#define EVENT_NDIS_ADAPTER_CHECK_ERROR 0xC00013A7 +#define EVENT_NDIS_RESET_FAILURE_ERROR 0x800013A8 +#define EVENT_NDIS_CABLE_DISCONNECTED_ERROR 0x800013A9 +#define EVENT_NDIS_RESET_FAILURE_CORRECTION 0x800013AA + +/* packet filter bits used by NDIS_OID_PACKET_FILTER */ +#define NDIS_PACKET_TYPE_DIRECTED 0x00000001 +#define NDIS_PACKET_TYPE_MULTICAST 0x00000002 +#define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004 +#define NDIS_PACKET_TYPE_BROADCAST 0x00000008 +#define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010 +#define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020 +#define NDIS_PACKET_TYPE_SMT 0x00000040 +#define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080 +#define NDIS_PACKET_TYPE_GROUP 0x00001000 +#define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000 +#define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000 +#define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000 + +/* memory allocation flags */ +#define NDIS_MEMORY_CONTIGUOUS 0x00000001 +#define NDIS_MEMORY_NONCACHED 0x00000002 + +/* Atrribute flags to NdisMSetAtrributesEx */ +#define NDIS_ATTRIBUTE_IGNORE_PACKET_TIMEOUT 0x00000001 +#define NDIS_ATTRIBUTE_IGNORE_REQUEST_TIMEOUT 0x00000002 +#define NDIS_ATTRIBUTE_IGNORE_TOKEN_RING_ERRORS 0x00000004 +#define NDIS_ATTRIBUTE_BUS_MASTER 0x00000008 +#define NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER 0x00000010 +#define NDIS_ATTRIBUTE_DESERIALIZE 0x00000020 +#define NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND 0x00000040 +#define NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK 0x00000080 +#define NDIS_ATTRIBUTE_NOT_CO_NDIS 0x00000100 +#define NDIS_ATTRIBUTE_USES_SAFE_BUFFER_APIS 0x00000200 + +#define OID_TCP_TASK_OFFLOAD 0xFC010201 + +#define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001 +#define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002 +#define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004 +#define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008 +#define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010 +#define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020 +#define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040 +#define NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00000080 +#define NDIS_MAC_OPTION_RECEIVE_AT_DPC 0x00000100 +#define NDIS_MAC_OPTION_8021Q_VLAN 0x00000200 +#define NDIS_MAC_OPTION_RESERVED 0x80000000 + +#define deserialized_driver(wnd) (wnd->attributes & NDIS_ATTRIBUTE_DESERIALIZE) + +static inline void serialize_lock(struct ndis_device *wnd) +{ + nt_spin_lock(&wnd->nmb->lock); +} + +static inline void serialize_unlock(struct ndis_device *wnd) +{ + nt_spin_unlock(&wnd->nmb->lock); +} + +static inline KIRQL serialize_lock_irql(struct ndis_device *wnd) +{ + if (deserialized_driver(wnd)) + return raise_irql(DISPATCH_LEVEL); + else + return nt_spin_lock_irql(&wnd->nmb->lock, DISPATCH_LEVEL); +} + +static inline void serialize_unlock_irql(struct ndis_device *wnd, + KIRQL irql) +{ + if (deserialized_driver(wnd)) + lower_irql(irql); + else + nt_spin_unlock_irql(&wnd->nmb->lock, irql); +} + +static inline void if_serialize_lock(struct ndis_device *wnd) +{ + if (!deserialized_driver(wnd)) + nt_spin_lock(&wnd->nmb->lock); +} + +static inline void if_serialize_unlock(struct ndis_device *wnd) +{ + if (!deserialized_driver(wnd)) + nt_spin_unlock(&wnd->nmb->lock); +} + +#endif /* NDIS_H */ --- linux-2.6.35.orig/ubuntu/ndiswrapper/rtl.c +++ linux-2.6.35/ubuntu/ndiswrapper/rtl.c @@ -0,0 +1,716 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "ntoskernel.h" +#include "rtl_exports.h" + +wstdcall SIZE_T WIN_FUNC(RtlCompareMemory,3) + (const void *a, const void *b, SIZE_T len) +{ + size_t i; + char *x, *y; + + x = (char *)a; + y = (char *)b; + /* MSDN says this should return number of bytes that compare as + * equal. This can be interpretted as either all bytes that are + * equal in 'len' bytes or that only until the bytes compare as + * not equal. Initially we had it the former way, but Realtek driver + * doesn't like it that way - it takes many attempts to associate + * with WPA. ReactOS returns the number of bytes that are equal + * upto when they compare as not equal. + * According to lords at #reactos, that is the way it should be + * and that msdn is wrong about it! + */ + for (i = 0; i < len && x[i] == y[i]; i++) + ; + return i; +} + +wstdcall void WIN_FUNC(RtlCopyMemory,3) + (void *dst, const void *src, SIZE_T length) +{ + memcpy(dst, src, length); +} + +wstdcall void WIN_FUNC(RtlZeroMemory,2) + (void *dst, SIZE_T length) +{ + memset(dst, 0, length); +} + +wstdcall void WIN_FUNC(RtlSecureZeroMemory,2) + (void *dst, SIZE_T length) +{ + memset(dst, 0, length); +} + +wstdcall void WIN_FUNC(RtlFillMemory,3) + (void *dest, SIZE_T length, UCHAR fill) +{ + memset(dest, fill, length); +} + +wstdcall void WIN_FUNC(RtlMoveMemory,3) + (void *dest, const void *src, SIZE_T length) +{ + memmove(dest, src, length); +} + +wstdcall LONG WIN_FUNC(RtlCompareString,3) + (const struct ansi_string *s1, const struct ansi_string *s2, + BOOLEAN case_insensitive) +{ + unsigned int len; + LONG ret = 0; + const char *p1, *p2; + + ENTER2(""); + len = min(s1->length, s2->length); + p1 = s1->buf; + p2 = s2->buf; + if (case_insensitive) + while (!ret && len--) + ret = toupper(*p1++) - toupper(*p2++); + else + while (!ret && len--) + ret = *p1++ - *p2++; + if (!ret) + ret = s1->length - s2->length; + EXIT2(return ret); +} + +wstdcall LONG WIN_FUNC(RtlCompareUnicodeString,3) + (const struct unicode_string *s1, const struct unicode_string *s2, + BOOLEAN case_insensitive) +{ + unsigned int len; + LONG ret = 0; + const wchar_t *p1, *p2; + + ENTER2(""); + + len = min(s1->length, s2->length) / sizeof(wchar_t); + p1 = s1->buf; + p2 = s2->buf; + if (case_insensitive) + while (!ret && len--) + ret = toupper((u8)*p1++) - toupper((u8)*p2++); + else + while (!ret && len--) + ret = (u8)*p1++ - (u8)*p2++; + if (!ret) + ret = s1->length - s2->length; + TRACE2("len: %d, ret: %d", len, ret); + EXIT2(return ret); +} + +wstdcall BOOLEAN WIN_FUNC(RtlEqualString,3) + (const struct ansi_string *s1, const struct ansi_string *s2, + BOOLEAN case_insensitive) +{ + ENTER1(""); + if (s1->length != s2->length) + return FALSE; + return !RtlCompareString(s1, s2, case_insensitive); +} + +wstdcall BOOLEAN WIN_FUNC(RtlEqualUnicodeString,3) + (const struct unicode_string *s1, const struct unicode_string *s2, + BOOLEAN case_insensitive) +{ + if (s1->length != s2->length) + return FALSE; + return !RtlCompareUnicodeString(s1, s2, case_insensitive); +} + +wstdcall void WIN_FUNC(RtlCopyUnicodeString,2) + (struct unicode_string *dst, struct unicode_string *src) +{ + ENTER1("%p, %p", dst, src); + if (src && src->buf && dst->buf) { + dst->length = min(src->length, dst->max_length); + memcpy(dst->buf, src->buf, dst->length); + if (dst->length < dst->max_length) + dst->buf[dst->length / sizeof(dst->buf[0])] = 0; + } else + dst->length = 0; + EXIT1(return); +} + +wstdcall void WIN_FUNC(RtlCopyString,2) + (struct ansi_string *dst, struct ansi_string *src) +{ + ENTER1("%p, %p", dst, src); + if (src && src->buf && dst->buf) { + dst->length = min(src->length, dst->max_length); + memcpy(dst->buf, src->buf, dst->length); + if (dst->length < dst->max_length) + dst->buf[dst->length] = 0; + } else + dst->length = 0; + EXIT1(return); +} + +wstdcall NTSTATUS WIN_FUNC(RtlAppendUnicodeToString,2) + (struct unicode_string *dst, wchar_t *src) +{ + if (src) { + int len; + for (len = 0; src[len]; len++) + ; + if (dst->length + (len * sizeof(dst->buf[0])) > dst->max_length) + return STATUS_BUFFER_TOO_SMALL; + memcpy(&dst->buf[dst->length], src, len * sizeof(dst->buf[0])); + dst->length += len * sizeof(dst->buf[0]); + if (dst->max_length > dst->length) + dst->buf[dst->length / sizeof(dst->buf[0])] = 0; + } + return STATUS_SUCCESS; +} + +wstdcall NTSTATUS WIN_FUNC(RtlAppendUnicodeStringToString,2) + (struct unicode_string *dst, struct unicode_string *src) +{ + if (dst->max_length < src->length + dst->length) + return STATUS_BUFFER_TOO_SMALL; + if (src->length) { + memcpy(&dst->buf[dst->length], src->buf, src->length); + dst->length += src->length; + if (dst->max_length > dst->length) + dst->buf[dst->length / sizeof(dst->buf[0])] = 0; + } + EXIT2(return STATUS_SUCCESS); +} + +wstdcall ULONG WIN_FUNC(RtlxAnsiStringToUnicodeSize,1) + (const struct ansi_string *string) +{ + int i; + + for (i = 0; i < string->max_length && string->buf[i]; i++) + ; + return i * sizeof(wchar_t); +} + +wstdcall ULONG WIN_FUNC(RtlxUnicodeStringToAnsiSize,1) + (const struct unicode_string *string) +{ + int i; + + for (i = 0; i < string->max_length && string->buf[i]; i++) + ; + return i; +} + +wstdcall NTSTATUS WIN_FUNC(RtlAnsiStringToUnicodeString,3) + (struct unicode_string *dst, const struct ansi_string *src, + BOOLEAN alloc) +{ + int i, n; + + n = RtlxAnsiStringToUnicodeSize(src); + TRACE2("%d, %d, %d, %d, %p", n, dst->max_length, src->length, + src->max_length, src->buf); + if (alloc == TRUE) { +#if 0 + if (n == 0) { + dst->length = dst->max_length = 0; + dst->buf = NULL; + EXIT2(return STATUS_SUCCESS); + } +#endif + dst->max_length = n + sizeof(dst->buf[0]); + dst->buf = ExAllocatePoolWithTag(NonPagedPool, + dst->max_length, 0); + if (!dst->buf) { + dst->max_length = dst->length = 0; + EXIT2(return STATUS_NO_MEMORY); + } + } else if (dst->max_length < n) + EXIT2(return STATUS_BUFFER_TOO_SMALL); + + dst->length = n; + n /= sizeof(dst->buf[0]); + for (i = 0; i < n; i++) + dst->buf[i] = src->buf[i]; + if (i * sizeof(dst->buf[0]) < dst->max_length) + dst->buf[i] = 0; + TRACE2("dst: length: %d, max_length: %d, string: %p", + dst->length, dst->max_length, src->buf); + EXIT2(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(RtlUnicodeStringToAnsiString,3) + (struct ansi_string *dst, const struct unicode_string *src, + BOOLEAN alloc) +{ + int i, n; + + n = RtlxUnicodeStringToAnsiSize(src); + TRACE2("%d, %d, %d, %d, %p", n, dst->max_length, src->length, + src->max_length, src->buf); + if (alloc == TRUE) { +#if 0 + if (n == 0) { + dst->length = dst->max_length = 0; + dst->buf = NULL; + EXIT2(return STATUS_SUCCESS); + } +#endif + dst->max_length = n + sizeof(dst->buf[0]); + dst->buf = ExAllocatePoolWithTag(NonPagedPool, + dst->max_length, 0); + if (!dst->buf) { + dst->max_length = dst->length = 0; + EXIT1(return STATUS_NO_MEMORY); + } + } else if (dst->max_length < n) + EXIT2(return STATUS_BUFFER_TOO_SMALL); + + dst->length = n; + for (i = 0; i < n; i++) + dst->buf[i] = src->buf[i]; + if (i < dst->max_length) + dst->buf[i] = 0; + TRACE2("string: %p, len: %d(%d)", dst->buf, dst->length, + dst->max_length); + EXIT2(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(RtlUnicodeStringToInteger,3) + (struct unicode_string *ustring, ULONG base, ULONG *value) +{ + int i, sign = 1; + ULONG res; + typeof(ustring->buf) string; + + if (ustring->length == 0) { + *value = 0; + return STATUS_SUCCESS; + } + + string = ustring->buf; + i = 0; + while (i < (ustring->length / sizeof(*string)) && string[i] == ' ') + i++; + if (string[i] == '+') + i++; + else if (string[i] == '-') { + i++; + sign = -1; + } + if (base == 0) { + base = 10; + if (i <= ((ustring->length / sizeof(*string)) - 2) && + string[i] == '0') { + i++; + if (string[i] == 'b') { + base = 2; + i++; + } else if (string[i] == 'o') { + base = 8; + i++; + } else if (string[i] == 'x') { + base = 16; + i++; + } + } + } + if (!(base == 2 || base == 8 || base == 10 || base == 16)) + EXIT2(return STATUS_INVALID_PARAMETER); + + for (res = 0; i < (ustring->length / sizeof(*string)); i++) { + int v; + if (isdigit((char)string[i])) + v = string[i] - '0'; + else if (isxdigit((char)string[i])) + v = tolower((char)string[i]) - 'a' + 10; + else + v = base; + if (v >= base) + EXIT2(return STATUS_INVALID_PARAMETER); + res = res * base + v; + } + *value = sign * res; + EXIT3(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(RtlCharToInteger,3) + (const char *string, ULONG base, ULONG *value) +{ + int sign = 1; + ULONG res; + + if (!string || !value) + EXIT2(return STATUS_INVALID_PARAMETER); + while (*string == ' ') + string++; + if (*string == '+') + string++; + else if (*string == '-') { + string++; + sign = -1; + } + if (base == 0) { + base = 10; + if (*string == '0') { + string++; + if (*string == 'b') { + base = 2; + string++; + } else if (*string == 'o') { + base = 8; + string++; + } else if (*string == 'x') { + base = 16; + string++; + } + } + } + if (!(base == 2 || base == 8 || base == 10 || base == 16)) + EXIT2(return STATUS_INVALID_PARAMETER); + + for (res = 0; *string; string++) { + int v; + if (isdigit(*string)) + v = *string - '0'; + else if (isxdigit(*string)) + v = tolower(*string) - 'a' + 10; + else + v = base; + if (v >= base) + EXIT2(return STATUS_INVALID_PARAMETER); + res = res * base + v; + } + *value = sign * res; + EXIT3(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(RtlIntegerToUnicodeString,3) + (ULONG value, ULONG base, struct unicode_string *ustring) +{ + typeof(ustring->buf) buf = ustring->buf; + int i; + + if (base == 0) + base = 10; + if (!(base == 2 || base == 8 || base == 10 || base == 16)) + return STATUS_INVALID_PARAMETER; + for (i = 0; value && i < ustring->max_length / sizeof(*buf); i++) { + int r; + r = value % base; + value /= base; + if (r < 10) + buf[i] = r + '0'; + else + buf[i] = r + 'a' - 10; + } + if (value) + return STATUS_BUFFER_OVERFLOW; + ustring->length = i * sizeof(*buf); + return STATUS_SUCCESS; +} + +wstdcall LARGE_INTEGER WIN_FUNC(RtlConvertUlongToLargeInteger,1) + (ULONG ul) +{ + LARGE_INTEGER li = ul; + return li; +} + +wfastcall USHORT WIN_FUNC(RtlUshortByteSwap,1) + (USHORT src) +{ + return __swab16(src); +} + +wfastcall ULONG WIN_FUNC(RtlUlongByteSwap,1) + (ULONG src) +{ + /* ULONG is 32 bits for both 32-bit and 64-bit architectures */ + return __swab32(src); +} + +wstdcall NTSTATUS WIN_FUNC(RtlUpcaseUnicodeString,3) + (struct unicode_string *dst, struct unicode_string *src, BOOLEAN alloc) +{ + USHORT i, n; + + if (alloc) { + dst->buf = ExAllocatePoolWithTag(NonPagedPool, src->length, 0); + if (dst->buf) + dst->max_length = src->length; + else + EXIT2(return STATUS_NO_MEMORY); + } else { + if (dst->max_length < src->length) + EXIT2(return STATUS_BUFFER_OVERFLOW); + } + + n = src->length / sizeof(src->buf[0]); + for (i = 0; i < n; i++) + dst->buf[i] = toupper(src->buf[i]); + + dst->length = src->length; + EXIT3(return STATUS_SUCCESS); +} + +wstdcall void WIN_FUNC(RtlInitUnicodeString,2) + (struct unicode_string *dst, const wchar_t *src) +{ + ENTER2("%p", dst); + if (dst == NULL) + EXIT1(return); + if (src == NULL) { + dst->max_length = dst->length = 0; + dst->buf = NULL; + } else { + int i; + for (i = 0; (char)src[i]; i++) + ; + dst->buf = (typeof(dst->buf))src; + dst->length = i * sizeof(dst->buf[0]); + dst->max_length = (i + 1) * sizeof(dst->buf[0]); + } + EXIT1(return); +} + +wstdcall void WIN_FUNC(RtlInitAnsiString,2) + (struct ansi_string *dst, const char *src) +{ + ENTER2("%p", dst); + if (dst == NULL) + EXIT2(return); + if (src == NULL) { + dst->max_length = dst->length = 0; + dst->buf = NULL; + } else { + int i; + for (i = 0; src[i]; i++) + ; + dst->buf = (typeof(dst->buf))src; + dst->length = i; + dst->max_length = i + 1; + } + TRACE2("%p", dst->buf); + EXIT2(return); +} + +wstdcall void WIN_FUNC(RtlInitString,2) + (struct ansi_string *dst, const char *src) +{ + ENTER2("%p", dst); + RtlInitAnsiString(dst, src); + EXIT2(return); +} + +wstdcall void WIN_FUNC(RtlFreeUnicodeString,1) + (struct unicode_string *string) +{ + ENTER2("%p", string); + if (string == NULL) + return; + if (string->buf) + ExFreePool(string->buf); + string->length = string->max_length = 0; + string->buf = NULL; + return; +} + +wstdcall void WIN_FUNC(RtlFreeAnsiString,1) + (struct ansi_string *string) +{ + ENTER2("%p", string); + if (string == NULL) + return; + if (string->buf) + ExFreePool(string->buf); + string->length = string->max_length = 0; + string->buf = NULL; + return; +} + +/* guid string is of the form: {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} */ +wstdcall NTSTATUS WIN_FUNC(RtlGUIDFromString,2) + (struct unicode_string *guid_string, struct guid *guid) +{ + struct ansi_string ansi; + NTSTATUS ret; + int i, j, k, l, m; + + ret = RtlUnicodeStringToAnsiString(&ansi, guid_string, TRUE); + if (ret != STATUS_SUCCESS) + return ret; + if (ansi.length != 37 || ansi.buf[0] != '{' || + ansi.buf[36] != '}' || ansi.buf[9] != '-' || + ansi.buf[14] != '-' || ansi.buf[19] != '-' || + ansi.buf[24] != '-') { + RtlFreeAnsiString(&ansi); + EXIT2(return STATUS_INVALID_PARAMETER); + } + memcpy(&guid->data4, &ansi.buf[29], sizeof(guid->data3)); + /* set end of data3 for scanf */ + ansi.buf[29] = 0; + if (sscanf(&ansi.buf[1], "%x", &i) == 1 && + sscanf(&ansi.buf[10], "%x", &j) == 1 && + sscanf(&ansi.buf[15], "%x", &k) == 1 && + sscanf(&ansi.buf[20], "%x", &l) == 1 && + sscanf(&ansi.buf[25], "%x", &m) == 1) { + guid->data1 = (i << 16) | (j < 8) | k; + guid->data2 = l; + guid->data3 = m; + ret = STATUS_SUCCESS; + } else + ret = STATUS_INVALID_PARAMETER; + RtlFreeAnsiString(&ansi); + return ret; +} + +wstdcall NTSTATUS WIN_FUNC(RtlQueryRegistryValues,5) + (ULONG relative, wchar_t *path, struct rtl_query_registry_table *tbl, + void *context, void *env) +{ + struct ansi_string ansi; + struct unicode_string unicode; + NTSTATUS status, ret; + static int i = 0; + + ENTER3("%x, %p", relative, tbl); +// TODO(); + + RtlInitUnicodeString(&unicode, path); + if (RtlUnicodeStringToAnsiString(&ansi, &unicode, TRUE) == + STATUS_SUCCESS) { + TRACE2("%s", ansi.buf); + RtlFreeAnsiString(&ansi); + } + ret = STATUS_SUCCESS; + for (; tbl->name; tbl++) { + RtlInitUnicodeString(&unicode, tbl->name); + if (RtlUnicodeStringToAnsiString(&ansi, &unicode, TRUE) == + STATUS_SUCCESS) { + TRACE2("name: %s", ansi.buf); + RtlFreeAnsiString(&ansi); + } + TRACE2("flags: %08X", tbl->flags); + if (tbl->flags == RTL_QUERY_REGISTRY_DIRECT) { + TRACE2("type: %08X", tbl->def_type); + if (tbl->def_type == REG_DWORD) { + /* Atheros USB driver needs this, but + * don't know where and how to get its + * value */ + if (tbl->def_data) { + TRACE2("def_data: %x", + *(int *)tbl->def_data); + *(DWORD *)tbl->context = 0x5f292a + i++; +// *(DWORD *)tbl->def_data; + } else + *(DWORD *)tbl->context = 0x2345dbe; + } + } else { + void *data; + ULONG type, length; + + if (!tbl->query_func) { + ERROR("oops: no query_func"); + ret = STATUS_INVALID_PARAMETER; + break; + } + if (tbl->flags & RTL_QUERY_REGISTRY_NOVALUE) { + data = NULL; + type = REG_NONE; + length = 0; + } else { + data = tbl->def_data; + type = tbl->def_type; + length = tbl->def_length;; + } + TRACE2("calling query_func: %p", tbl->query_func); + status = LIN2WIN6(tbl->query_func, tbl->name, type, + data, length, context, env); + TRACE2("status: %08X", status); + if (status) { + if (status == STATUS_BUFFER_TOO_SMALL) + ret = STATUS_BUFFER_TOO_SMALL; + else + EXIT2(return STATUS_INVALID_PARAMETER); + } + } + } + EXIT3(return ret); +} + +wstdcall NTSTATUS WIN_FUNC(RtlWriteRegistryValue,6) + (ULONG relative, wchar_t *path, wchar_t *name, ULONG type, + void *data, ULONG length) +{ + struct ansi_string ansi; + struct unicode_string unicode; + + ENTER3("%d", relative); + TODO(); + + RtlInitUnicodeString(&unicode, path); + if (RtlUnicodeStringToAnsiString(&ansi, &unicode, TRUE) == + STATUS_SUCCESS) { + TRACE2("%s", ansi.buf); + RtlFreeAnsiString(&ansi); + } + RtlInitUnicodeString(&unicode, name); + if (RtlUnicodeStringToAnsiString(&ansi, &unicode, TRUE) == + STATUS_SUCCESS) { + TRACE2("%s", ansi.buf); + RtlFreeAnsiString(&ansi); + } + EXIT5(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(RtlDeleteRegistryValue,3) + (ULONG relative, wchar_t *path, wchar_t *name) +{ + return STATUS_SUCCESS; +} + +wstdcall void WIN_FUNC(RtlAssert,4) + (char *failed_assertion, char *file_name, ULONG line_num, char *message) +{ + ERROR("assertion '%s' failed at %s line %d%s", + failed_assertion, file_name, line_num, message ? message : ""); + return; +} + +wstdcall void WIN_FUNC(RtlUnwind,0) + (void) +{ + TODO(); +} + +wstdcall void WIN_FUNC(RtlRaiseException,1) + (void *exception_record) +{ + TODO(); +} + +int rtl_init(void) +{ + return 0; +} + +/* called when module is being removed */ +void rtl_exit(void) +{ + EXIT4(return); +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/longlong.h +++ linux-2.6.35/ubuntu/ndiswrapper/longlong.h @@ -0,0 +1,1333 @@ +/* longlong.h -- definitions for mixed size 32/64 bit arithmetic. + Copyright (C) 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000 + Free Software Foundation, Inc. + + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* You have to define the following before including this file: + + UWtype -- An unsigned type, default type for operations (typically a "word") + UHWtype -- An unsigned type, at least half the size of UWtype. + UDWtype -- An unsigned type, at least twice as large a UWtype + W_TYPE_SIZE -- size in bits of UWtype + + UQItype -- Unsigned 8 bit type. + SItype, USItype -- Signed and unsigned 32 bit types. + DItype, UDItype -- Signed and unsigned 64 bit types. + + On a 32 bit machine UWtype should typically be USItype; + on a 64 bit machine, UWtype should typically be UDItype. +*/ + +#define __BITS4 (W_TYPE_SIZE / 4) +#define __ll_B ((UWtype) 1 << (W_TYPE_SIZE / 2)) +#define __ll_lowpart(t) ((UWtype) (t) & (__ll_B - 1)) +#define __ll_highpart(t) ((UWtype) (t) >> (W_TYPE_SIZE / 2)) + +#ifndef W_TYPE_SIZE +#define W_TYPE_SIZE 32 +#define UWtype USItype +#define UHWtype USItype +#define UDWtype UDItype +#endif + +/* Define auxiliary asm macros. + + 1) umul_ppmm(high_prod, low_prod, multipler, multiplicand) multiplies two + UWtype integers MULTIPLER and MULTIPLICAND, and generates a two UWtype + word product in HIGH_PROD and LOW_PROD. + + 2) __umulsidi3(a,b) multiplies two UWtype integers A and B, and returns a + UDWtype product. This is just a variant of umul_ppmm. + + 3) udiv_qrnnd(quotient, remainder, high_numerator, low_numerator, + denominator) divides a UDWtype, composed by the UWtype integers + HIGH_NUMERATOR and LOW_NUMERATOR, by DENOMINATOR and places the quotient + in QUOTIENT and the remainder in REMAINDER. HIGH_NUMERATOR must be less + than DENOMINATOR for correct operation. If, in addition, the most + significant bit of DENOMINATOR must be 1, then the pre-processor symbol + UDIV_NEEDS_NORMALIZATION is defined to 1. + + 4) sdiv_qrnnd(quotient, remainder, high_numerator, low_numerator, + denominator). Like udiv_qrnnd but the numbers are signed. The quotient + is rounded towards 0. + + 5) count_leading_zeros(count, x) counts the number of zero-bits from the + msb to the first nonzero bit in the UWtype X. This is the number of + steps X needs to be shifted left to set the msb. Undefined for X == 0, + unless the symbol COUNT_LEADING_ZEROS_0 is defined to some value. + + 6) count_trailing_zeros(count, x) like count_leading_zeros, but counts + from the least significant end. + + 7) add_ssaaaa(high_sum, low_sum, high_addend_1, low_addend_1, + high_addend_2, low_addend_2) adds two UWtype integers, composed by + HIGH_ADDEND_1 and LOW_ADDEND_1, and HIGH_ADDEND_2 and LOW_ADDEND_2 + respectively. The result is placed in HIGH_SUM and LOW_SUM. Overflow + (i.e. carry out) is not stored anywhere, and is lost. + + 8) sub_ddmmss(high_difference, low_difference, high_minuend, low_minuend, + high_subtrahend, low_subtrahend) subtracts two two-word UWtype integers, + composed by HIGH_MINUEND_1 and LOW_MINUEND_1, and HIGH_SUBTRAHEND_2 and + LOW_SUBTRAHEND_2 respectively. The result is placed in HIGH_DIFFERENCE + and LOW_DIFFERENCE. Overflow (i.e. carry out) is not stored anywhere, + and is lost. + + If any of these macros are left undefined for a particular CPU, + C macros are used. */ + +/* The CPUs come in alphabetical order below. + + Please add support for more CPUs here, or improve the current support + for the CPUs below! + (E.g. WE32100, IBM360.) */ + +#if defined (__GNUC__) && !defined (NO_ASM) + +/* We sometimes need to clobber "cc" with gcc2, but that would not be + understood by gcc1. Use cpp to avoid major code duplication. */ +#if __GNUC__ < 2 +#define __CLOBBER_CC +#define __AND_CLOBBER_CC +#else /* __GNUC__ >= 2 */ +#define __CLOBBER_CC : "cc" +#define __AND_CLOBBER_CC , "cc" +#endif /* __GNUC__ < 2 */ + +#if defined (__alpha) && W_TYPE_SIZE == 64 +#define umul_ppmm(ph, pl, m0, m1) \ + do { \ + UDItype __m0 = (m0), __m1 = (m1); \ + __asm__ ("umulh %r1,%2,%0" \ + : "=r" ((UDItype) ph) \ + : "%rJ" (__m0), \ + "rI" (__m1)); \ + (pl) = __m0 * __m1; \ + } while (0) +#define UMUL_TIME 46 +#ifndef LONGLONG_STANDALONE +#define udiv_qrnnd(q, r, n1, n0, d) \ + do { UDItype __r; \ + (q) = __udiv_qrnnd (&__r, (n1), (n0), (d)); \ + (r) = __r; \ + } while (0) +extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype); +#define UDIV_TIME 220 +#endif /* LONGLONG_STANDALONE */ +#ifdef __alpha_cix__ +#define count_leading_zeros(COUNT,X) \ + __asm__("ctlz %1,%0" : "=r"(COUNT) : "r"(X)) +#define count_trailing_zeros(COUNT,X) \ + __asm__("cttz %1,%0" : "=r"(COUNT) : "r"(X)) +#define COUNT_LEADING_ZEROS_0 64 +#else +extern const UQItype __clz_tab[]; +#define count_leading_zeros(COUNT,X) \ + do { \ + UDItype __xr = (X), __t, __a; \ + __asm__("cmpbge $31,%1,%0" : "=r"(__t) : "r"(__xr)); \ + __a = __clz_tab[__t ^ 0xff] - 1; \ + __asm__("extbl %1,%2,%0" : "=r"(__t) : "r"(__xr), "r"(__a)); \ + (COUNT) = 64 - (__clz_tab[__t] + __a*8); \ + } while (0) +#define count_trailing_zeros(COUNT,X) \ + do { \ + UDItype __xr = (X), __t, __a; \ + __asm__("cmpbge $31,%1,%0" : "=r"(__t) : "r"(__xr)); \ + __t = ~__t & -~__t; \ + __a = ((__t & 0xCC) != 0) * 2; \ + __a += ((__t & 0xF0) != 0) * 4; \ + __a += ((__t & 0xAA) != 0); \ + __asm__("extbl %1,%2,%0" : "=r"(__t) : "r"(__xr), "r"(__a)); \ + __a <<= 3; \ + __t &= -__t; \ + __a += ((__t & 0xCC) != 0) * 2; \ + __a += ((__t & 0xF0) != 0) * 4; \ + __a += ((__t & 0xAA) != 0); \ + (COUNT) = __a; \ + } while (0) +#endif /* __alpha_cix__ */ +#endif /* __alpha */ + +#if defined (__arc__) && W_TYPE_SIZE == 32 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("add.f %1, %4, %5\n\tadc %0, %2, %3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%r" ((USItype) (ah)), \ + "rIJ" ((USItype) (bh)), \ + "%r" ((USItype) (al)), \ + "rIJ" ((USItype) (bl))) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("sub.f %1, %4, %5\n\tsbc %0, %2, %3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "r" ((USItype) (ah)), \ + "rIJ" ((USItype) (bh)), \ + "r" ((USItype) (al)), \ + "rIJ" ((USItype) (bl))) +/* Call libgcc routine. */ +#define umul_ppmm(w1, w0, u, v) \ +do { \ + DWunion __w; \ + __w.ll = __umulsidi3 (u, v); \ + w1 = __w.s.high; \ + w0 = __w.s.low; \ +} while (0) +#define __umulsidi3 __umulsidi3 +UDItype __umulsidi3 (USItype, USItype); +#endif + +#if defined (__arm__) && W_TYPE_SIZE == 32 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("adds %1, %4, %5\n\tadc %0, %2, %3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%r" ((USItype) (ah)), \ + "rI" ((USItype) (bh)), \ + "%r" ((USItype) (al)), \ + "rI" ((USItype) (bl))) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("subs %1, %4, %5\n\tsbc %0, %2, %3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "r" ((USItype) (ah)), \ + "rI" ((USItype) (bh)), \ + "r" ((USItype) (al)), \ + "rI" ((USItype) (bl))) +#define umul_ppmm(xh, xl, a, b) \ +{register USItype __t0, __t1, __t2; \ + __asm__ ("%@ Inlined umul_ppmm\n" \ + " mov %2, %5, lsr #16\n" \ + " mov %0, %6, lsr #16\n" \ + " bic %3, %5, %2, lsl #16\n" \ + " bic %4, %6, %0, lsl #16\n" \ + " mul %1, %3, %4\n" \ + " mul %4, %2, %4\n" \ + " mul %3, %0, %3\n" \ + " mul %0, %2, %0\n" \ + " adds %3, %4, %3\n" \ + " addcs %0, %0, #65536\n" \ + " adds %1, %1, %3, lsl #16\n" \ + " adc %0, %0, %3, lsr #16" \ + : "=&r" ((USItype) (xh)), \ + "=r" ((USItype) (xl)), \ + "=&r" (__t0), "=&r" (__t1), "=r" (__t2) \ + : "r" ((USItype) (a)), \ + "r" ((USItype) (b)));} +#define UMUL_TIME 20 +#define UDIV_TIME 100 +#endif /* __arm__ */ + +#if defined (__hppa) && W_TYPE_SIZE == 32 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("add %4,%5,%1\n\taddc %2,%3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%rM" ((USItype) (ah)), \ + "rM" ((USItype) (bh)), \ + "%rM" ((USItype) (al)), \ + "rM" ((USItype) (bl))) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("sub %4,%5,%1\n\tsubb %2,%3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "rM" ((USItype) (ah)), \ + "rM" ((USItype) (bh)), \ + "rM" ((USItype) (al)), \ + "rM" ((USItype) (bl))) +#if defined (_PA_RISC1_1) +#define umul_ppmm(w1, w0, u, v) \ + do { \ + union \ + { \ + UDItype __f; \ + struct {USItype __w1, __w0;} __w1w0; \ + } __t; \ + __asm__ ("xmpyu %1,%2,%0" \ + : "=x" (__t.__f) \ + : "x" ((USItype) (u)), \ + "x" ((USItype) (v))); \ + (w1) = __t.__w1w0.__w1; \ + (w0) = __t.__w1w0.__w0; \ + } while (0) +#define UMUL_TIME 8 +#else +#define UMUL_TIME 30 +#endif +#define UDIV_TIME 40 +#define count_leading_zeros(count, x) \ + do { \ + USItype __tmp; \ + __asm__ ( \ + "ldi 1,%0\n" \ +" extru,= %1,15,16,%%r0 ; Bits 31..16 zero?\n" \ +" extru,tr %1,15,16,%1 ; No. Shift down, skip add.\n"\ +" ldo 16(%0),%0 ; Yes. Perform add.\n" \ +" extru,= %1,23,8,%%r0 ; Bits 15..8 zero?\n" \ +" extru,tr %1,23,8,%1 ; No. Shift down, skip add.\n"\ +" ldo 8(%0),%0 ; Yes. Perform add.\n" \ +" extru,= %1,27,4,%%r0 ; Bits 7..4 zero?\n" \ +" extru,tr %1,27,4,%1 ; No. Shift down, skip add.\n"\ +" ldo 4(%0),%0 ; Yes. Perform add.\n" \ +" extru,= %1,29,2,%%r0 ; Bits 3..2 zero?\n" \ +" extru,tr %1,29,2,%1 ; No. Shift down, skip add.\n"\ +" ldo 2(%0),%0 ; Yes. Perform add.\n" \ +" extru %1,30,1,%1 ; Extract bit 1.\n" \ +" sub %0,%1,%0 ; Subtract it.\n" \ + : "=r" (count), "=r" (__tmp) : "1" (x)); \ + } while (0) +#endif + +#if (defined (__i370__) || defined (__mvs__)) && W_TYPE_SIZE == 32 +#define umul_ppmm(xh, xl, m0, m1) \ + do { \ + union {UDItype __ll; \ + struct {USItype __h, __l;} __i; \ + } __xx; \ + USItype __m0 = (m0), __m1 = (m1); \ + __asm__ ("mr %0,%3" \ + : "=r" (__xx.__i.__h), \ + "=r" (__xx.__i.__l) \ + : "%1" (__m0), \ + "r" (__m1)); \ + (xh) = __xx.__i.__h; (xl) = __xx.__i.__l; \ + (xh) += ((((SItype) __m0 >> 31) & __m1) \ + + (((SItype) __m1 >> 31) & __m0)); \ + } while (0) +#define smul_ppmm(xh, xl, m0, m1) \ + do { \ + union {DItype __ll; \ + struct {USItype __h, __l;} __i; \ + } __xx; \ + __asm__ ("mr %0,%3" \ + : "=r" (__xx.__i.__h), \ + "=r" (__xx.__i.__l) \ + : "%1" (m0), \ + "r" (m1)); \ + (xh) = __xx.__i.__h; (xl) = __xx.__i.__l; \ + } while (0) +#define sdiv_qrnnd(q, r, n1, n0, d) \ + do { \ + union {DItype __ll; \ + struct {USItype __h, __l;} __i; \ + } __xx; \ + __xx.__i.__h = n1; __xx.__i.__l = n0; \ + __asm__ ("dr %0,%2" \ + : "=r" (__xx.__ll) \ + : "0" (__xx.__ll), "r" (d)); \ + (q) = __xx.__i.__l; (r) = __xx.__i.__h; \ + } while (0) +#endif + +#if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("addl %5,%1\n\tadcl %3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ + "g" ((USItype) (bh)), \ + "%1" ((USItype) (al)), \ + "g" ((USItype) (bl))) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("subl %5,%1\n\tsbbl %3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ + "g" ((USItype) (bh)), \ + "1" ((USItype) (al)), \ + "g" ((USItype) (bl))) +#define umul_ppmm(w1, w0, u, v) \ + __asm__ ("mull %3" \ + : "=a" ((USItype) (w0)), \ + "=d" ((USItype) (w1)) \ + : "%0" ((USItype) (u)), \ + "rm" ((USItype) (v))) +#define udiv_qrnnd(q, r, n1, n0, dv) \ + __asm__ ("divl %4" \ + : "=a" ((USItype) (q)), \ + "=d" ((USItype) (r)) \ + : "0" ((USItype) (n0)), \ + "1" ((USItype) (n1)), \ + "rm" ((USItype) (dv))) +#define count_leading_zeros(count, x) \ + do { \ + USItype __cbtmp; \ + __asm__ ("bsrl %1,%0" \ + : "=r" (__cbtmp) : "rm" ((USItype) (x))); \ + (count) = __cbtmp ^ 31; \ + } while (0) +#define count_trailing_zeros(count, x) \ + __asm__ ("bsfl %1,%0" : "=r" (count) : "rm" ((USItype)(x))) +#define UMUL_TIME 40 +#define UDIV_TIME 40 +#endif /* 80x86 */ + +#if defined (__i960__) && W_TYPE_SIZE == 32 +#define umul_ppmm(w1, w0, u, v) \ + ({union {UDItype __ll; \ + struct {USItype __l, __h;} __i; \ + } __xx; \ + __asm__ ("emul %2,%1,%0" \ + : "=d" (__xx.__ll) \ + : "%dI" ((USItype) (u)), \ + "dI" ((USItype) (v))); \ + (w1) = __xx.__i.__h; (w0) = __xx.__i.__l;}) +#define __umulsidi3(u, v) \ + ({UDItype __w; \ + __asm__ ("emul %2,%1,%0" \ + : "=d" (__w) \ + : "%dI" ((USItype) (u)), \ + "dI" ((USItype) (v))); \ + __w; }) +#endif /* __i960__ */ + +#if defined (__M32R__) && W_TYPE_SIZE == 32 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + /* The cmp clears the condition bit. */ \ + __asm__ ("cmp %0,%0\n\taddx %%5,%1\n\taddx %%3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ + "r" ((USItype) (bh)), \ + "%1" ((USItype) (al)), \ + "r" ((USItype) (bl)) \ + : "cbit") +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + /* The cmp clears the condition bit. */ \ + __asm__ ("cmp %0,%0\n\tsubx %5,%1\n\tsubx %3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ + "r" ((USItype) (bh)), \ + "1" ((USItype) (al)), \ + "r" ((USItype) (bl)) \ + : "cbit") +#endif /* __M32R__ */ + +#if defined (__mc68000__) && W_TYPE_SIZE == 32 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("add%.l %5,%1\n\taddx%.l %3,%0" \ + : "=d" ((USItype) (sh)), \ + "=&d" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ + "d" ((USItype) (bh)), \ + "%1" ((USItype) (al)), \ + "g" ((USItype) (bl))) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("sub%.l %5,%1\n\tsubx%.l %3,%0" \ + : "=d" ((USItype) (sh)), \ + "=&d" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ + "d" ((USItype) (bh)), \ + "1" ((USItype) (al)), \ + "g" ((USItype) (bl))) + +/* The '020, '030, '040 and CPU32 have 32x32->64 and 64/32->32q-32r. */ +#if defined (__mc68020__) || defined(mc68020) \ + || defined(__mc68030__) || defined(mc68030) \ + || defined(__mc68040__) || defined(mc68040) \ + || defined(__mcpu32__) || defined(mcpu32) +#define umul_ppmm(w1, w0, u, v) \ + __asm__ ("mulu%.l %3,%1:%0" \ + : "=d" ((USItype) (w0)), \ + "=d" ((USItype) (w1)) \ + : "%0" ((USItype) (u)), \ + "dmi" ((USItype) (v))) +#define UMUL_TIME 45 +#define udiv_qrnnd(q, r, n1, n0, d) \ + __asm__ ("divu%.l %4,%1:%0" \ + : "=d" ((USItype) (q)), \ + "=d" ((USItype) (r)) \ + : "0" ((USItype) (n0)), \ + "1" ((USItype) (n1)), \ + "dmi" ((USItype) (d))) +#define UDIV_TIME 90 +#define sdiv_qrnnd(q, r, n1, n0, d) \ + __asm__ ("divs%.l %4,%1:%0" \ + : "=d" ((USItype) (q)), \ + "=d" ((USItype) (r)) \ + : "0" ((USItype) (n0)), \ + "1" ((USItype) (n1)), \ + "dmi" ((USItype) (d))) + +#else /* not mc68020 */ +#if !defined(__mcf5200__) +/* %/ inserts REGISTER_PREFIX, %# inserts IMMEDIATE_PREFIX. */ +#define umul_ppmm(xh, xl, a, b) \ + __asm__ ("| Inlined umul_ppmm\n" \ + " move%.l %2,%/d0\n" \ + " move%.l %3,%/d1\n" \ + " move%.l %/d0,%/d2\n" \ + " swap %/d0\n" \ + " move%.l %/d1,%/d3\n" \ + " swap %/d1\n" \ + " move%.w %/d2,%/d4\n" \ + " mulu %/d3,%/d4\n" \ + " mulu %/d1,%/d2\n" \ + " mulu %/d0,%/d3\n" \ + " mulu %/d0,%/d1\n" \ + " move%.l %/d4,%/d0\n" \ + " eor%.w %/d0,%/d0\n" \ + " swap %/d0\n" \ + " add%.l %/d0,%/d2\n" \ + " add%.l %/d3,%/d2\n" \ + " jcc 1f\n" \ + " add%.l %#65536,%/d1\n" \ + "1: swap %/d2\n" \ + " moveq %#0,%/d0\n" \ + " move%.w %/d2,%/d0\n" \ + " move%.w %/d4,%/d2\n" \ + " move%.l %/d2,%1\n" \ + " add%.l %/d1,%/d0\n" \ + " move%.l %/d0,%0" \ + : "=g" ((USItype) (xh)), \ + "=g" ((USItype) (xl)) \ + : "g" ((USItype) (a)), \ + "g" ((USItype) (b)) \ + : "d0", "d1", "d2", "d3", "d4") +#define UMUL_TIME 100 +#define UDIV_TIME 400 +#endif /* not mcf5200 */ +#endif /* not mc68020 */ + +/* The '020, '030, '040 and '060 have bitfield insns. */ +#if defined (__mc68020__) || defined(mc68020) \ + || defined(__mc68030__) || defined(mc68030) \ + || defined(__mc68040__) || defined(mc68040) \ + || defined(__mc68060__) || defined(mc68060) +#define count_leading_zeros(count, x) \ + __asm__ ("bfffo %1{%b2:%b2},%0" \ + : "=d" ((USItype) (count)) \ + : "od" ((USItype) (x)), "n" (0)) +#endif +#endif /* mc68000 */ + +#if defined (__m88000__) && W_TYPE_SIZE == 32 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("addu.co %1,%r4,%r5\n\taddu.ci %0,%r2,%r3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%rJ" ((USItype) (ah)), \ + "rJ" ((USItype) (bh)), \ + "%rJ" ((USItype) (al)), \ + "rJ" ((USItype) (bl))) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("subu.co %1,%r4,%r5\n\tsubu.ci %0,%r2,%r3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "rJ" ((USItype) (ah)), \ + "rJ" ((USItype) (bh)), \ + "rJ" ((USItype) (al)), \ + "rJ" ((USItype) (bl))) +#define count_leading_zeros(count, x) \ + do { \ + USItype __cbtmp; \ + __asm__ ("ff1 %0,%1" \ + : "=r" (__cbtmp) \ + : "r" ((USItype) (x))); \ + (count) = __cbtmp ^ 31; \ + } while (0) +#define COUNT_LEADING_ZEROS_0 63 /* sic */ +#if defined (__mc88110__) +#define umul_ppmm(wh, wl, u, v) \ + do { \ + union {UDItype __ll; \ + struct {USItype __h, __l;} __i; \ + } __xx; \ + __asm__ ("mulu.d %0,%1,%2" \ + : "=r" (__xx.__ll) \ + : "r" ((USItype) (u)), \ + "r" ((USItype) (v))); \ + (wh) = __xx.__i.__h; \ + (wl) = __xx.__i.__l; \ + } while (0) +#define udiv_qrnnd(q, r, n1, n0, d) \ + ({union {UDItype __ll; \ + struct {USItype __h, __l;} __i; \ + } __xx; \ + USItype __q; \ + __xx.__i.__h = (n1); __xx.__i.__l = (n0); \ + __asm__ ("divu.d %0,%1,%2" \ + : "=r" (__q) \ + : "r" (__xx.__ll), \ + "r" ((USItype) (d))); \ + (r) = (n0) - __q * (d); (q) = __q; }) +#define UMUL_TIME 5 +#define UDIV_TIME 25 +#else +#define UMUL_TIME 17 +#define UDIV_TIME 150 +#endif /* __mc88110__ */ +#endif /* __m88000__ */ + +#if defined (__mips__) && W_TYPE_SIZE == 32 +#define umul_ppmm(w1, w0, u, v) \ + __asm__ ("multu %2,%3" \ + : "=l" ((USItype) (w0)), \ + "=h" ((USItype) (w1)) \ + : "d" ((USItype) (u)), \ + "d" ((USItype) (v))) +#define UMUL_TIME 10 +#define UDIV_TIME 100 +#endif /* __mips__ */ + +#if defined (__ns32000__) && W_TYPE_SIZE == 32 +#define umul_ppmm(w1, w0, u, v) \ + ({union {UDItype __ll; \ + struct {USItype __l, __h;} __i; \ + } __xx; \ + __asm__ ("meid %2,%0" \ + : "=g" (__xx.__ll) \ + : "%0" ((USItype) (u)), \ + "g" ((USItype) (v))); \ + (w1) = __xx.__i.__h; (w0) = __xx.__i.__l;}) +#define __umulsidi3(u, v) \ + ({UDItype __w; \ + __asm__ ("meid %2,%0" \ + : "=g" (__w) \ + : "%0" ((USItype) (u)), \ + "g" ((USItype) (v))); \ + __w; }) +#define udiv_qrnnd(q, r, n1, n0, d) \ + ({union {UDItype __ll; \ + struct {USItype __l, __h;} __i; \ + } __xx; \ + __xx.__i.__h = (n1); __xx.__i.__l = (n0); \ + __asm__ ("deid %2,%0" \ + : "=g" (__xx.__ll) \ + : "0" (__xx.__ll), \ + "g" ((USItype) (d))); \ + (r) = __xx.__i.__l; (q) = __xx.__i.__h; }) +#define count_trailing_zeros(count,x) \ + do { \ + __asm__ ("ffsd %2,%0" \ + : "=r" ((USItype) (count)) \ + : "0" ((USItype) 0), \ + "r" ((USItype) (x))); \ + } while (0) +#endif /* __ns32000__ */ + +/* FIXME: We should test _IBMR2 here when we add assembly support for the + system vendor compilers. + FIXME: What's needed for gcc PowerPC VxWorks? __vxworks__ is not good + enough, since that hits ARM and m68k too. */ +#if (defined (_ARCH_PPC) /* AIX */ \ + || defined (_ARCH_PWR) /* AIX */ \ + || defined (_ARCH_COM) /* AIX */ \ + || defined (__powerpc__) /* gcc */ \ + || defined (__POWERPC__) /* BEOS */ \ + || defined (__ppc__) /* Darwin */ \ + || defined (PPC) /* GNU/Linux, SysV */ \ + ) && W_TYPE_SIZE == 32 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + do { \ + if (__builtin_constant_p (bh) && (bh) == 0) \ + __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{aze|addze} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\ + else if (__builtin_constant_p (bh) && (bh) == ~(USItype) 0) \ + __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{ame|addme} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\ + else \ + __asm__ ("{a%I5|add%I5c} %1,%4,%5\n\t{ae|adde} %0,%2,%3" \ + : "=r" (sh), "=&r" (sl) \ + : "%r" (ah), "r" (bh), "%r" (al), "rI" (bl)); \ + } while (0) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + do { \ + if (__builtin_constant_p (ah) && (ah) == 0) \ + __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfze|subfze} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\ + else if (__builtin_constant_p (ah) && (ah) == ~(USItype) 0) \ + __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfme|subfme} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\ + else if (__builtin_constant_p (bh) && (bh) == 0) \ + __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{ame|addme} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\ + else if (__builtin_constant_p (bh) && (bh) == ~(USItype) 0) \ + __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{aze|addze} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\ + else \ + __asm__ ("{sf%I4|subf%I4c} %1,%5,%4\n\t{sfe|subfe} %0,%3,%2" \ + : "=r" (sh), "=&r" (sl) \ + : "r" (ah), "r" (bh), "rI" (al), "r" (bl)); \ + } while (0) +#define count_leading_zeros(count, x) \ + __asm__ ("{cntlz|cntlzw} %0,%1" : "=r" (count) : "r" (x)) +#define COUNT_LEADING_ZEROS_0 32 +#if defined (_ARCH_PPC) || defined (__powerpc__) || defined (__POWERPC__) \ + || defined (__ppc__) || defined (PPC) || defined (__vxworks__) +#define umul_ppmm(ph, pl, m0, m1) \ + do { \ + USItype __m0 = (m0), __m1 = (m1); \ + __asm__ ("mulhwu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \ + (pl) = __m0 * __m1; \ + } while (0) +#define UMUL_TIME 15 +#define smul_ppmm(ph, pl, m0, m1) \ + do { \ + SItype __m0 = (m0), __m1 = (m1); \ + __asm__ ("mulhw %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \ + (pl) = __m0 * __m1; \ + } while (0) +#define SMUL_TIME 14 +#define UDIV_TIME 120 +#elif defined (_ARCH_PWR) +#define UMUL_TIME 8 +#define smul_ppmm(xh, xl, m0, m1) \ + __asm__ ("mul %0,%2,%3" : "=r" (xh), "=q" (xl) : "r" (m0), "r" (m1)) +#define SMUL_TIME 4 +#define sdiv_qrnnd(q, r, nh, nl, d) \ + __asm__ ("div %0,%2,%4" : "=r" (q), "=q" (r) : "r" (nh), "1" (nl), "r" (d)) +#define UDIV_TIME 100 +#endif +#endif /* 32-bit POWER architecture variants. */ + +/* We should test _IBMR2 here when we add assembly support for the system + vendor compilers. */ +#if (defined (_ARCH_PPC64) || defined (__powerpc64__)) && W_TYPE_SIZE == 64 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + do { \ + if (__builtin_constant_p (bh) && (bh) == 0) \ + __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{aze|addze} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\ + else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \ + __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{ame|addme} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\ + else \ + __asm__ ("{a%I5|add%I5c} %1,%4,%5\n\t{ae|adde} %0,%2,%3" \ + : "=r" (sh), "=&r" (sl) \ + : "%r" (ah), "r" (bh), "%r" (al), "rI" (bl)); \ + } while (0) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + do { \ + if (__builtin_constant_p (ah) && (ah) == 0) \ + __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfze|subfze} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\ + else if (__builtin_constant_p (ah) && (ah) == ~(UDItype) 0) \ + __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfme|subfme} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\ + else if (__builtin_constant_p (bh) && (bh) == 0) \ + __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{ame|addme} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\ + else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \ + __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{aze|addze} %0,%2" \ + : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\ + else \ + __asm__ ("{sf%I4|subf%I4c} %1,%5,%4\n\t{sfe|subfe} %0,%3,%2" \ + : "=r" (sh), "=&r" (sl) \ + : "r" (ah), "r" (bh), "rI" (al), "r" (bl)); \ + } while (0) +#define count_leading_zeros(count, x) \ + __asm__ ("cntlzd %0,%1" : "=r" (count) : "r" (x)) +#define COUNT_LEADING_ZEROS_0 64 +#define umul_ppmm(ph, pl, m0, m1) \ + do { \ + UDItype __m0 = (m0), __m1 = (m1); \ + __asm__ ("mulhdu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \ + (pl) = __m0 * __m1; \ + } while (0) +#define UMUL_TIME 15 +#define smul_ppmm(ph, pl, m0, m1) \ + do { \ + DItype __m0 = (m0), __m1 = (m1); \ + __asm__ ("mulhd %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \ + (pl) = __m0 * __m1; \ + } while (0) +#define SMUL_TIME 14 /* ??? */ +#define UDIV_TIME 120 /* ??? */ +#endif /* 64-bit PowerPC. */ + +#if defined (__ibm032__) /* RT/ROMP */ && W_TYPE_SIZE == 32 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("a %1,%5\n\tae %0,%3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ + "r" ((USItype) (bh)), \ + "%1" ((USItype) (al)), \ + "r" ((USItype) (bl))) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("s %1,%5\n\tse %0,%3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ + "r" ((USItype) (bh)), \ + "1" ((USItype) (al)), \ + "r" ((USItype) (bl))) +#define umul_ppmm(ph, pl, m0, m1) \ + do { \ + USItype __m0 = (m0), __m1 = (m1); \ + __asm__ ( \ + "s r2,r2\n" \ +" mts r10,%2\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" m r2,%3\n" \ +" cas %0,r2,r0\n" \ +" mfs r10,%1" \ + : "=r" ((USItype) (ph)), \ + "=r" ((USItype) (pl)) \ + : "%r" (__m0), \ + "r" (__m1) \ + : "r2"); \ + (ph) += ((((SItype) __m0 >> 31) & __m1) \ + + (((SItype) __m1 >> 31) & __m0)); \ + } while (0) +#define UMUL_TIME 20 +#define UDIV_TIME 200 +#define count_leading_zeros(count, x) \ + do { \ + if ((x) >= 0x10000) \ + __asm__ ("clz %0,%1" \ + : "=r" ((USItype) (count)) \ + : "r" ((USItype) (x) >> 16)); \ + else \ + { \ + __asm__ ("clz %0,%1" \ + : "=r" ((USItype) (count)) \ + : "r" ((USItype) (x))); \ + (count) += 16; \ + } \ + } while (0) +#endif + +#if defined (__sh2__) && W_TYPE_SIZE == 32 +#define umul_ppmm(w1, w0, u, v) \ + __asm__ ( \ + "dmulu.l %2,%3\n\tsts macl,%1\n\tsts mach,%0" \ + : "=r" ((USItype)(w1)), \ + "=r" ((USItype)(w0)) \ + : "r" ((USItype)(u)), \ + "r" ((USItype)(v)) \ + : "macl", "mach") +#define UMUL_TIME 5 +#endif + +#if defined (__SH5__) && __SHMEDIA__ && W_TYPE_SIZE == 32 +#define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v) +#define count_leading_zeros(count, x) \ + do \ + { \ + UDItype x_ = (USItype)(x); \ + SItype c_; \ + \ + __asm__ ("nsb %1, %0" : "=r" (c_) : "r" (x_)); \ + (count) = c_ - 31; \ + } \ + while (0) +#define COUNT_LEADING_ZEROS_0 32 +#endif + +#if defined (__sparc__) && !defined (__arch64__) && !defined (__sparcv9) \ + && W_TYPE_SIZE == 32 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("addcc %r4,%5,%1\n\taddx %r2,%3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%rJ" ((USItype) (ah)), \ + "rI" ((USItype) (bh)), \ + "%rJ" ((USItype) (al)), \ + "rI" ((USItype) (bl)) \ + __CLOBBER_CC) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("subcc %r4,%5,%1\n\tsubx %r2,%3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "rJ" ((USItype) (ah)), \ + "rI" ((USItype) (bh)), \ + "rJ" ((USItype) (al)), \ + "rI" ((USItype) (bl)) \ + __CLOBBER_CC) +#if defined (__sparc_v8__) +#define umul_ppmm(w1, w0, u, v) \ + __asm__ ("umul %2,%3,%1;rd %%y,%0" \ + : "=r" ((USItype) (w1)), \ + "=r" ((USItype) (w0)) \ + : "r" ((USItype) (u)), \ + "r" ((USItype) (v))) +#define udiv_qrnnd(__q, __r, __n1, __n0, __d) \ + __asm__ ("mov %2,%%y;nop;nop;nop;udiv %3,%4,%0;umul %0,%4,%1;sub %3,%1,%1"\ + : "=&r" ((USItype) (__q)), \ + "=&r" ((USItype) (__r)) \ + : "r" ((USItype) (__n1)), \ + "r" ((USItype) (__n0)), \ + "r" ((USItype) (__d))) +#else +#if defined (__sparclite__) +/* This has hardware multiply but not divide. It also has two additional + instructions scan (ffs from high bit) and divscc. */ +#define umul_ppmm(w1, w0, u, v) \ + __asm__ ("umul %2,%3,%1;rd %%y,%0" \ + : "=r" ((USItype) (w1)), \ + "=r" ((USItype) (w0)) \ + : "r" ((USItype) (u)), \ + "r" ((USItype) (v))) +#define udiv_qrnnd(q, r, n1, n0, d) \ + __asm__ ("! Inlined udiv_qrnnd\n" \ +" wr %%g0,%2,%%y ! Not a delayed write for sparclite\n" \ +" tst %%g0\n" \ +" divscc %3,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%%g1\n" \ +" divscc %%g1,%4,%0\n" \ +" rd %%y,%1\n" \ +" bl,a 1f\n" \ +" add %1,%4,%1\n" \ +"1: ! End of inline udiv_qrnnd" \ + : "=r" ((USItype) (q)), \ + "=r" ((USItype) (r)) \ + : "r" ((USItype) (n1)), \ + "r" ((USItype) (n0)), \ + "rI" ((USItype) (d)) \ + : "g1" __AND_CLOBBER_CC) +#define UDIV_TIME 37 +#define count_leading_zeros(count, x) \ + do { \ + __asm__ ("scan %1,1,%0" \ + : "=r" ((USItype) (count)) \ + : "r" ((USItype) (x))); \ + } while (0) +/* Early sparclites return 63 for an argument of 0, but they warn that future + implementations might change this. Therefore, leave COUNT_LEADING_ZEROS_0 + undefined. */ +#else +/* SPARC without integer multiplication and divide instructions. + (i.e. at least Sun4/20,40,60,65,75,110,260,280,330,360,380,470,490) */ +#define umul_ppmm(w1, w0, u, v) \ + __asm__ ("! Inlined umul_ppmm\n" \ +" wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr\n"\ +" sra %3,31,%%o5 ! Don't move this insn\n" \ +" and %2,%%o5,%%o5 ! Don't move this insn\n" \ +" andcc %%g0,0,%%g1 ! Don't move this insn\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,%3,%%g1\n" \ +" mulscc %%g1,0,%%g1\n" \ +" add %%g1,%%o5,%0\n" \ +" rd %%y,%1" \ + : "=r" ((USItype) (w1)), \ + "=r" ((USItype) (w0)) \ + : "%rI" ((USItype) (u)), \ + "r" ((USItype) (v)) \ + : "g1", "o5" __AND_CLOBBER_CC) +#define UMUL_TIME 39 /* 39 instructions */ +/* It's quite necessary to add this much assembler for the sparc. + The default udiv_qrnnd (in C) is more than 10 times slower! */ +#define udiv_qrnnd(__q, __r, __n1, __n0, __d) \ + __asm__ ("! Inlined udiv_qrnnd\n" \ +" mov 32,%%g1\n" \ +" subcc %1,%2,%%g0\n" \ +"1: bcs 5f\n" \ +" addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \ +" sub %1,%2,%1 ! this kills msb of n\n" \ +" addx %1,%1,%1 ! so this can't give carry\n" \ +" subcc %%g1,1,%%g1\n" \ +"2: bne 1b\n" \ +" subcc %1,%2,%%g0\n" \ +" bcs 3f\n" \ +" addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \ +" b 3f\n" \ +" sub %1,%2,%1 ! this kills msb of n\n" \ +"4: sub %1,%2,%1\n" \ +"5: addxcc %1,%1,%1\n" \ +" bcc 2b\n" \ +" subcc %%g1,1,%%g1\n" \ +"! Got carry from n. Subtract next step to cancel this carry.\n" \ +" bne 4b\n" \ +" addcc %0,%0,%0 ! shift n1n0 and a 0-bit in lsb\n" \ +" sub %1,%2,%1\n" \ +"3: xnor %0,0,%0\n" \ +" ! End of inline udiv_qrnnd" \ + : "=&r" ((USItype) (__q)), \ + "=&r" ((USItype) (__r)) \ + : "r" ((USItype) (__d)), \ + "1" ((USItype) (__n1)), \ + "0" ((USItype) (__n0)) : "g1" __AND_CLOBBER_CC) +#define UDIV_TIME (3+7*32) /* 7 instructions/iteration. 32 iterations. */ +#endif /* __sparclite__ */ +#endif /* __sparc_v8__ */ +#endif /* sparc32 */ + +#if ((defined (__sparc__) && defined (__arch64__)) || defined (__sparcv9)) \ + && W_TYPE_SIZE == 64 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("addcc %r4,%5,%1\n\t" \ + "add %r2,%3,%0\n\t" \ + "bcs,a,pn %%xcc, 1f\n\t" \ + "add %0, 1, %0\n" \ + "1:" \ + : "=r" ((UDItype)(sh)), \ + "=&r" ((UDItype)(sl)) \ + : "%rJ" ((UDItype)(ah)), \ + "rI" ((UDItype)(bh)), \ + "%rJ" ((UDItype)(al)), \ + "rI" ((UDItype)(bl)) \ + __CLOBBER_CC) + +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("subcc %r4,%5,%1\n\t" \ + "sub %r2,%3,%0\n\t" \ + "bcs,a,pn %%xcc, 1f\n\t" \ + "sub %0, 1, %0\n\t" \ + "1:" \ + : "=r" ((UDItype)(sh)), \ + "=&r" ((UDItype)(sl)) \ + : "rJ" ((UDItype)(ah)), \ + "rI" ((UDItype)(bh)), \ + "rJ" ((UDItype)(al)), \ + "rI" ((UDItype)(bl)) \ + __CLOBBER_CC) + +#define umul_ppmm(wh, wl, u, v) \ + do { \ + UDItype tmp1, tmp2, tmp3, tmp4; \ + __asm__ __volatile__ ( \ + "srl %7,0,%3\n\t" \ + "mulx %3,%6,%1\n\t" \ + "srlx %6,32,%2\n\t" \ + "mulx %2,%3,%4\n\t" \ + "sllx %4,32,%5\n\t" \ + "srl %6,0,%3\n\t" \ + "sub %1,%5,%5\n\t" \ + "srlx %5,32,%5\n\t" \ + "addcc %4,%5,%4\n\t" \ + "srlx %7,32,%5\n\t" \ + "mulx %3,%5,%3\n\t" \ + "mulx %2,%5,%5\n\t" \ + "sethi %%hi(0x80000000),%2\n\t" \ + "addcc %4,%3,%4\n\t" \ + "srlx %4,32,%4\n\t" \ + "add %2,%2,%2\n\t" \ + "movcc %%xcc,%%g0,%2\n\t" \ + "addcc %5,%4,%5\n\t" \ + "sllx %3,32,%3\n\t" \ + "add %1,%3,%1\n\t" \ + "add %5,%2,%0" \ + : "=r" ((UDItype)(wh)), \ + "=&r" ((UDItype)(wl)), \ + "=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3), "=&r" (tmp4) \ + : "r" ((UDItype)(u)), \ + "r" ((UDItype)(v)) \ + __CLOBBER_CC); \ + } while (0) +#define UMUL_TIME 96 +#define UDIV_TIME 230 +#endif /* sparc64 */ + +#if defined (__vax__) && W_TYPE_SIZE == 32 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("addl2 %5,%1\n\tadwc %3,%0" \ + : "=g" ((USItype) (sh)), \ + "=&g" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ + "g" ((USItype) (bh)), \ + "%1" ((USItype) (al)), \ + "g" ((USItype) (bl))) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("subl2 %5,%1\n\tsbwc %3,%0" \ + : "=g" ((USItype) (sh)), \ + "=&g" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ + "g" ((USItype) (bh)), \ + "1" ((USItype) (al)), \ + "g" ((USItype) (bl))) +#define umul_ppmm(xh, xl, m0, m1) \ + do { \ + union { \ + UDItype __ll; \ + struct {USItype __l, __h;} __i; \ + } __xx; \ + USItype __m0 = (m0), __m1 = (m1); \ + __asm__ ("emul %1,%2,$0,%0" \ + : "=r" (__xx.__ll) \ + : "g" (__m0), \ + "g" (__m1)); \ + (xh) = __xx.__i.__h; \ + (xl) = __xx.__i.__l; \ + (xh) += ((((SItype) __m0 >> 31) & __m1) \ + + (((SItype) __m1 >> 31) & __m0)); \ + } while (0) +#define sdiv_qrnnd(q, r, n1, n0, d) \ + do { \ + union {DItype __ll; \ + struct {SItype __l, __h;} __i; \ + } __xx; \ + __xx.__i.__h = n1; __xx.__i.__l = n0; \ + __asm__ ("ediv %3,%2,%0,%1" \ + : "=g" (q), "=g" (r) \ + : "g" (__xx.__ll), "g" (d)); \ + } while (0) +#endif /* __vax__ */ + +#if defined (__z8000__) && W_TYPE_SIZE == 16 +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("add %H1,%H5\n\tadc %H0,%H3" \ + : "=r" ((unsigned int)(sh)), \ + "=&r" ((unsigned int)(sl)) \ + : "%0" ((unsigned int)(ah)), \ + "r" ((unsigned int)(bh)), \ + "%1" ((unsigned int)(al)), \ + "rQR" ((unsigned int)(bl))) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("sub %H1,%H5\n\tsbc %H0,%H3" \ + : "=r" ((unsigned int)(sh)), \ + "=&r" ((unsigned int)(sl)) \ + : "0" ((unsigned int)(ah)), \ + "r" ((unsigned int)(bh)), \ + "1" ((unsigned int)(al)), \ + "rQR" ((unsigned int)(bl))) +#define umul_ppmm(xh, xl, m0, m1) \ + do { \ + union {long int __ll; \ + struct {unsigned int __h, __l;} __i; \ + } __xx; \ + unsigned int __m0 = (m0), __m1 = (m1); \ + __asm__ ("mult %S0,%H3" \ + : "=r" (__xx.__i.__h), \ + "=r" (__xx.__i.__l) \ + : "%1" (__m0), \ + "rQR" (__m1)); \ + (xh) = __xx.__i.__h; (xl) = __xx.__i.__l; \ + (xh) += ((((signed int) __m0 >> 15) & __m1) \ + + (((signed int) __m1 >> 15) & __m0)); \ + } while (0) +#endif /* __z8000__ */ + +#endif /* __GNUC__ */ + +/* If this machine has no inline assembler, use C macros. */ + +#if !defined (add_ssaaaa) +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + do { \ + UWtype __x; \ + __x = (al) + (bl); \ + (sh) = (ah) + (bh) + (__x < (al)); \ + (sl) = __x; \ + } while (0) +#endif + +#if !defined (sub_ddmmss) +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + do { \ + UWtype __x; \ + __x = (al) - (bl); \ + (sh) = (ah) - (bh) - (__x > (al)); \ + (sl) = __x; \ + } while (0) +#endif + +#if !defined (umul_ppmm) +#define umul_ppmm(w1, w0, u, v) \ + do { \ + UWtype __x0, __x1, __x2, __x3; \ + UHWtype __ul, __vl, __uh, __vh; \ + \ + __ul = __ll_lowpart (u); \ + __uh = __ll_highpart (u); \ + __vl = __ll_lowpart (v); \ + __vh = __ll_highpart (v); \ + \ + __x0 = (UWtype) __ul * __vl; \ + __x1 = (UWtype) __ul * __vh; \ + __x2 = (UWtype) __uh * __vl; \ + __x3 = (UWtype) __uh * __vh; \ + \ + __x1 += __ll_highpart (__x0);/* this can't give carry */ \ + __x1 += __x2; /* but this indeed can */ \ + if (__x1 < __x2) /* did we get it? */ \ + __x3 += __ll_B; /* yes, add it in the proper pos. */ \ + \ + (w1) = __x3 + __ll_highpart (__x1); \ + (w0) = __ll_lowpart (__x1) * __ll_B + __ll_lowpart (__x0); \ + } while (0) +#endif + +#if !defined (__umulsidi3) +#define __umulsidi3(u, v) \ + ({DWunion __w; \ + umul_ppmm (__w.s.high, __w.s.low, u, v); \ + __w.ll; }) +#endif + +/* Define this unconditionally, so it can be used for debugging. */ +#define __udiv_qrnnd_c(q, r, n1, n0, d) \ + do { \ + UWtype __d1, __d0, __q1, __q0; \ + UWtype __r1, __r0, __m; \ + __d1 = __ll_highpart (d); \ + __d0 = __ll_lowpart (d); \ + \ + __r1 = (n1) % __d1; \ + __q1 = (n1) / __d1; \ + __m = (UWtype) __q1 * __d0; \ + __r1 = __r1 * __ll_B | __ll_highpart (n0); \ + if (__r1 < __m) \ + { \ + __q1--, __r1 += (d); \ + if (__r1 >= (d)) /* i.e. we didn't get carry when adding to __r1 */\ + if (__r1 < __m) \ + __q1--, __r1 += (d); \ + } \ + __r1 -= __m; \ + \ + __r0 = __r1 % __d1; \ + __q0 = __r1 / __d1; \ + __m = (UWtype) __q0 * __d0; \ + __r0 = __r0 * __ll_B | __ll_lowpart (n0); \ + if (__r0 < __m) \ + { \ + __q0--, __r0 += (d); \ + if (__r0 >= (d)) \ + if (__r0 < __m) \ + __q0--, __r0 += (d); \ + } \ + __r0 -= __m; \ + \ + (q) = (UWtype) __q1 * __ll_B | __q0; \ + (r) = __r0; \ + } while (0) + +/* If the processor has no udiv_qrnnd but sdiv_qrnnd, go through + __udiv_w_sdiv (defined in libgcc or elsewhere). */ +#if !defined (udiv_qrnnd) && defined (sdiv_qrnnd) +#define udiv_qrnnd(q, r, nh, nl, d) \ + do { \ + USItype __r; \ + (q) = __udiv_w_sdiv (&__r, nh, nl, d); \ + (r) = __r; \ + } while (0) +#endif + +/* If udiv_qrnnd was not defined for this processor, use __udiv_qrnnd_c. */ +#if !defined (udiv_qrnnd) +#define UDIV_NEEDS_NORMALIZATION 1 +#define udiv_qrnnd __udiv_qrnnd_c +#endif + +#if !defined (count_leading_zeros) +extern const UQItype __clz_tab[]; +#define count_leading_zeros(count, x) \ + do { \ + UWtype __xr = (x); \ + UWtype __a; \ + \ + if (W_TYPE_SIZE <= 32) \ + { \ + __a = __xr < ((UWtype)1<<2*__BITS4) \ + ? (__xr < ((UWtype)1<<__BITS4) ? 0 : __BITS4) \ + : (__xr < ((UWtype)1<<3*__BITS4) ? 2*__BITS4 : 3*__BITS4); \ + } \ + else \ + { \ + for (__a = W_TYPE_SIZE - 8; __a > 0; __a -= 8) \ + if (((__xr >> __a) & 0xff) != 0) \ + break; \ + } \ + \ + (count) = W_TYPE_SIZE - (__clz_tab[__xr >> __a] + __a); \ + } while (0) +#define COUNT_LEADING_ZEROS_0 W_TYPE_SIZE +#endif + +#if !defined (count_trailing_zeros) +/* Define count_trailing_zeros using count_leading_zeros. The latter might be + defined in asm, but if it is not, the C version above is good enough. */ +#define count_trailing_zeros(count, x) \ + do { \ + UWtype __ctz_x = (x); \ + UWtype __ctz_c; \ + count_leading_zeros (__ctz_c, __ctz_x & -__ctz_x); \ + (count) = W_TYPE_SIZE - 1 - __ctz_c; \ + } while (0) +#endif + +#ifndef UDIV_NEEDS_NORMALIZATION +#define UDIV_NEEDS_NORMALIZATION 0 +#endif --- linux-2.6.35.orig/ubuntu/ndiswrapper/wrapper.c +++ linux-2.6.35/ubuntu/ndiswrapper/wrapper.c @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "ndis.h" +#include "iw_ndis.h" +#include "loader.h" +#include "pnp.h" +#include "wrapper.h" + +char *if_name = "wlan%d"; +int proc_uid, proc_gid; +int hangcheck_interval; +static char *utils_version = UTILS_VERSION; + +#if defined(DEBUG) && (DEBUG > 0) +int debug = DEBUG; +#else +int debug = 0; +#endif + +WRAP_MODULE_PARM_STRING(if_name, 0400); +MODULE_PARM_DESC(if_name, "Network interface name or template " + "(default: wlan%d)"); +WRAP_MODULE_PARM_INT(proc_uid, 0600); +MODULE_PARM_DESC(proc_uid, "The uid of the files created in /proc " + "(default: 0)."); +WRAP_MODULE_PARM_INT(proc_gid, 0600); +MODULE_PARM_DESC(proc_gid, "The gid of the files created in /proc " + "(default: 0)."); +WRAP_MODULE_PARM_INT(debug, 0600); +MODULE_PARM_DESC(debug, "debug level"); + +/* 0 - default value provided by NDIS driver, + * positive value - force hangcheck interval to that many seconds + * negative value - disable hangcheck + */ +WRAP_MODULE_PARM_INT(hangcheck_interval, 0600); +MODULE_PARM_DESC(hangcheck_interval, "The interval, in seconds, for checking" + " if driver is hung. (default: 0)"); + +WRAP_MODULE_PARM_STRING(utils_version, 0400); +MODULE_PARM_DESC(utils_version, "Compatible version of utils " + "(read only: " UTILS_VERSION ")"); + +MODULE_AUTHOR("ndiswrapper team "); +#ifdef MODULE_DESCRIPTION +MODULE_DESCRIPTION("NDIS wrapper driver"); +#endif +#ifdef MODULE_VERSION +MODULE_VERSION(DRIVER_VERSION); +#endif +MODULE_LICENSE("GPL"); + +static void module_cleanup(void) +{ + loader_exit(); +#ifdef ENABLE_USB + usb_exit(); +#endif + + wrap_procfs_remove(); + wrapndis_exit(); + ndis_exit(); + rtl_exit(); + crt_exit(); + ntoskernel_exit(); + wrapmem_exit(); +} + +static int __init wrapper_init(void) +{ + printk(KERN_INFO "%s version %s loaded (smp=%s, preempt=%s)\n", + DRIVER_NAME, DRIVER_VERSION, +#ifdef CONFIG_SMP + "yes" +#else + "no" +#endif + , +#ifdef CONFIG_PREEMPT_RT + "rt" +#elif defined(CONFIG_PREEMPT) + "yes" +#else + "no" +#endif + ); + + if (wrapmem_init() || ntoskernel_init() || crt_init() || + rtl_init() || ndis_init() || wrapndis_init() || +#ifdef ENABLE_USB + usb_init() || +#endif + wrap_procfs_init() || loader_init()) { + module_cleanup(); + ERROR("%s: initialization failed", DRIVER_NAME); + return -EINVAL; + } + EXIT1(return 0); +} + +static void __exit wrapper_exit(void) +{ + ENTER1(""); + module_cleanup(); +} + +module_init(wrapper_init); +module_exit(wrapper_exit); --- linux-2.6.35.orig/ubuntu/ndiswrapper/wrapndis.h +++ linux-2.6.35/ubuntu/ndiswrapper/wrapndis.h @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _WRAPNDIS_H_ +#define _WRAPNDIS_H_ + +#include "ndis.h" +#include "pnp.h" + +int wrapndis_init(void); +void wrapndis_exit(void); + +NDIS_STATUS mp_reset(struct ndis_device *wnd); + +NDIS_STATUS mp_request(enum ndis_request_type request, + struct ndis_device *wnd, ndis_oid oid, + void *buf, ULONG buflen, ULONG *written, ULONG *needed); + +static inline NDIS_STATUS mp_query_info(struct ndis_device *wnd, + ndis_oid oid, void *buf, ULONG buflen, + ULONG *written, ULONG *needed) +{ + return mp_request(NdisRequestQueryInformation, wnd, oid, + buf, buflen, written, needed); +} + +static inline NDIS_STATUS mp_set_info(struct ndis_device *wnd, + ndis_oid oid, void *buf, ULONG buflen, + ULONG *written, ULONG *needed) +{ + return mp_request(NdisRequestSetInformation, wnd, oid, + buf, buflen, written, needed); +} + +static inline NDIS_STATUS mp_query(struct ndis_device *wnd, ndis_oid oid, + void *buf, ULONG buflen) +{ + return mp_request(NdisRequestQueryInformation, wnd, oid, + buf, buflen, NULL, NULL); +} + +static inline NDIS_STATUS mp_query_int(struct ndis_device *wnd, + ndis_oid oid, ULONG *data) +{ + return mp_request(NdisRequestQueryInformation, wnd, oid, + data, sizeof(ULONG), NULL, NULL); +} + +static inline NDIS_STATUS mp_set(struct ndis_device *wnd, ndis_oid oid, + void *buf, ULONG buflen) +{ + return mp_request(NdisRequestSetInformation, wnd, oid, + buf, buflen, NULL, NULL); +} + +static inline NDIS_STATUS mp_set_int(struct ndis_device *wnd, + ndis_oid oid, ULONG data) +{ + return mp_request(NdisRequestSetInformation, wnd, oid, + &data, sizeof(ULONG), NULL, NULL); +} + +void free_tx_packet(struct ndis_device *wnd, struct ndis_packet *packet, + NDIS_STATUS status); +int init_ndis_driver(struct driver_object *drv_obj); +NDIS_STATUS ndis_reinit(struct ndis_device *wnd); +void set_media_state(struct ndis_device *wnd, enum ndis_media_state state); + +void hangcheck_add(struct ndis_device *wnd); +void hangcheck_del(struct ndis_device *wnd); + +driver_dispatch_t winNdisDispatchPnp; +driver_dispatch_t winNdisDispatchPower; +driver_dispatch_t winNdisDispatchDeviceControl; + +struct iw_statistics *get_iw_stats(struct net_device *dev); + +#endif --- linux-2.6.35.orig/ubuntu/ndiswrapper/BOM +++ linux-2.6.35/ubuntu/ndiswrapper/BOM @@ -0,0 +1,2 @@ +Downloaded from: http://sourceforge.net/project/showfiles.php?group_id=93482 +Current Version: 1.55 --- linux-2.6.35.orig/ubuntu/ndiswrapper/hal.c +++ linux-2.6.35/ubuntu/ndiswrapper/hal.c @@ -0,0 +1,157 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "ntoskernel.h" +#include "hal_exports.h" + +wstdcall void WIN_FUNC(WRITE_PORT_ULONG,2) + (ULONG_PTR port, ULONG value) +{ + outl(value, port); +} + +wstdcall ULONG WIN_FUNC(READ_PORT_ULONG,1) + (ULONG_PTR port) +{ + return inl(port); +} + +wstdcall void WIN_FUNC(WRITE_PORT_USHORT,2) + (ULONG_PTR port, USHORT value) +{ + outw(value, port); +} + +wstdcall USHORT WIN_FUNC(READ_PORT_USHORT,1) + (ULONG_PTR port) +{ + return inw(port); +} + +wstdcall void WIN_FUNC(WRITE_PORT_UCHAR,2) + (ULONG_PTR port, UCHAR value) +{ + outb(value, port); +} + +wstdcall UCHAR WIN_FUNC(READ_PORT_UCHAR,1) + (ULONG_PTR port) +{ + return inb(port); +} + +wstdcall void WIN_FUNC(WRITE_PORT_BUFFER_USHORT,3) + (ULONG_PTR port, USHORT *buf, ULONG count) +{ + outsw(port, buf, count); +} + +wstdcall void WIN_FUNC(READ_PORT_BUFFER_USHORT,3) + (ULONG_PTR port, USHORT *buf, ULONG count) +{ + insw(port, buf, count); +} + +wstdcall void WIN_FUNC(WRITE_PORT_BUFFER_ULONG,3) + (ULONG_PTR port, ULONG *buf, ULONG count) +{ + outsl(port, buf, count); +} + +wstdcall void WIN_FUNC(READ_PORT_BUFFER_ULONG,3) + (ULONG_PTR port, ULONG *buf, ULONG count) +{ + insl(port, buf, count); +} + +wstdcall USHORT WIN_FUNC(READ_REGISTER_USHORT,1) + (void __iomem *reg) +{ + return readw(reg); +} + +wstdcall void WIN_FUNC(WRITE_REGISTER_ULONG,2) + (void __iomem *reg, UINT val) +{ + writel(val, reg); +} + +wstdcall void WIN_FUNC(WRITE_REGISTER_USHORT,2) + (void __iomem *reg, USHORT val) +{ + writew(val, reg); +} + +wstdcall void WIN_FUNC(WRITE_REGISTER_UCHAR,2) + (void __iomem *reg, UCHAR val) +{ + writeb(val, reg); +} + +wstdcall void WIN_FUNC(KeStallExecutionProcessor,1) + (ULONG usecs) +{ + udelay(usecs); +} + +wstdcall KIRQL WIN_FUNC(KeGetCurrentIrql,0) + (void) +{ + return current_irql(); +} + +wfastcall KIRQL WIN_FUNC(KfRaiseIrql,1) + (KIRQL newirql) +{ + return raise_irql(newirql); +} + +wfastcall void WIN_FUNC(KfLowerIrql,1) + (KIRQL oldirql) +{ + lower_irql(oldirql); +} + +wfastcall KIRQL WIN_FUNC(KfAcquireSpinLock,1) + (NT_SPIN_LOCK *lock) +{ + return nt_spin_lock_irql(lock, DISPATCH_LEVEL); +} + +wfastcall void WIN_FUNC(KfReleaseSpinLock,2) + (NT_SPIN_LOCK *lock, KIRQL oldirql) +{ + nt_spin_unlock_irql(lock, oldirql); +} + +wfastcall void WIN_FUNC(KefAcquireSpinLockAtDpcLevel,1) + (NT_SPIN_LOCK *lock) +{ +#ifdef DEBUG_IRQL + if (current_irql() != DISPATCH_LEVEL) + ERROR("irql != DISPATCH_LEVEL"); +#endif + nt_spin_lock(lock); +} + +wfastcall void WIN_FUNC(KefReleaseSpinLockFromDpcLevel,1) + (NT_SPIN_LOCK *lock) +{ +#ifdef DEBUG_IRQL + if (current_irql() != DISPATCH_LEVEL) + ERROR("irql != DISPATCH_LEVEL"); +#endif + nt_spin_unlock(lock); +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/pe_linker.h +++ linux-2.6.35/ubuntu/ndiswrapper/pe_linker.h @@ -0,0 +1,993 @@ +/* + * This file is an excerpt of winnt.h from WINE, which bears the + * following copyright: + * + * Win32 definitions for Windows NT + * + * Copyright 1996 Alexandre Julliard + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* + * File formats definitions + */ +typedef struct _IMAGE_DOS_HEADER { + WORD e_magic; /* 00: MZ Header signature */ + WORD e_cblp; /* 02: Bytes on last page of file */ + WORD e_cp; /* 04: Pages in file */ + WORD e_crlc; /* 06: Relocations */ + WORD e_cparhdr; /* 08: Size of header in paragraphs */ + WORD e_minalloc; /* 0a: Minimum extra paragraphs needed */ + WORD e_maxalloc; /* 0c: Maximum extra paragraphs needed */ + WORD e_ss; /* 0e: Initial (relative) SS value */ + WORD e_sp; /* 10: Initial SP value */ + WORD e_csum; /* 12: Checksum */ + WORD e_ip; /* 14: Initial IP value */ + WORD e_cs; /* 16: Initial (relative) CS value */ + WORD e_lfarlc; /* 18: File address of relocation table */ + WORD e_ovno; /* 1a: Overlay number */ + WORD e_res[4]; /* 1c: Reserved words */ + WORD e_oemid; /* 24: OEM identifier (for e_oeminfo) */ + WORD e_oeminfo; /* 26: OEM information; e_oemid specific */ + WORD e_res2[10]; /* 28: Reserved words */ + DWORD e_lfanew; /* 3c: Offset to extended header */ +} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; + +#define IMAGE_DOS_SIGNATURE 0x5A4D /* MZ */ +#define IMAGE_OS2_SIGNATURE 0x454E /* NE */ +#define IMAGE_OS2_SIGNATURE_LE 0x454C /* LE */ +#define IMAGE_OS2_SIGNATURE_LX 0x584C /* LX */ +#define IMAGE_VXD_SIGNATURE 0x454C /* LE */ +#define IMAGE_NT_SIGNATURE 0x00004550 /* PE00 */ + +/* + * This is the Windows executable (NE) header. + * the name IMAGE_OS2_HEADER is misleading, but in the SDK this way. + */ +typedef struct +{ + WORD ne_magic; /* 00 NE signature 'NE' */ + BYTE ne_ver; /* 02 Linker version number */ + BYTE ne_rev; /* 03 Linker revision number */ + WORD ne_enttab; /* 04 Offset to entry table relative to NE */ + WORD ne_cbenttab; /* 06 Length of entry table in bytes */ + LONG ne_crc; /* 08 Checksum */ + WORD ne_flags; /* 0c Flags about segments in this file */ + WORD ne_autodata; /* 0e Automatic data segment number */ + WORD ne_heap; /* 10 Initial size of local heap */ + WORD ne_stack; /* 12 Initial size of stack */ + DWORD ne_csip; /* 14 Initial CS:IP */ + DWORD ne_sssp; /* 18 Initial SS:SP */ + WORD ne_cseg; /* 1c # of entries in segment table */ + WORD ne_cmod; /* 1e # of entries in module reference tab. */ + WORD ne_cbnrestab; /* 20 Length of nonresident-name table */ + WORD ne_segtab; /* 22 Offset to segment table */ + WORD ne_rsrctab; /* 24 Offset to resource table */ + WORD ne_restab; /* 26 Offset to resident-name table */ + WORD ne_modtab; /* 28 Offset to module reference table */ + WORD ne_imptab; /* 2a Offset to imported name table */ + DWORD ne_nrestab; /* 2c Offset to nonresident-name table */ + WORD ne_cmovent; /* 30 # of movable entry points */ + WORD ne_align; /* 32 Logical sector alignment shift count */ + WORD ne_cres; /* 34 # of resource segments */ + BYTE ne_exetyp; /* 36 Flags indicating target OS */ + BYTE ne_flagsothers; /* 37 Additional information flags */ + WORD ne_pretthunks; /* 38 Offset to return thunks */ + WORD ne_psegrefbytes; /* 3a Offset to segment ref. bytes */ + WORD ne_swaparea; /* 3c Reserved by Microsoft */ + WORD ne_expver; /* 3e Expected Windows version number */ +} IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER; + +typedef struct _IMAGE_VXD_HEADER { + WORD e32_magic; + BYTE e32_border; + BYTE e32_worder; + DWORD e32_level; + WORD e32_cpu; + WORD e32_os; + DWORD e32_ver; + DWORD e32_mflags; + DWORD e32_mpages; + DWORD e32_startobj; + DWORD e32_eip; + DWORD e32_stackobj; + DWORD e32_esp; + DWORD e32_pagesize; + DWORD e32_lastpagesize; + DWORD e32_fixupsize; + DWORD e32_fixupsum; + DWORD e32_ldrsize; + DWORD e32_ldrsum; + DWORD e32_objtab; + DWORD e32_objcnt; + DWORD e32_objmap; + DWORD e32_itermap; + DWORD e32_rsrctab; + DWORD e32_rsrccnt; + DWORD e32_restab; + DWORD e32_enttab; + DWORD e32_dirtab; + DWORD e32_dircnt; + DWORD e32_fpagetab; + DWORD e32_frectab; + DWORD e32_impmod; + DWORD e32_impmodcnt; + DWORD e32_impproc; + DWORD e32_pagesum; + DWORD e32_datapage; + DWORD e32_preload; + DWORD e32_nrestab; + DWORD e32_cbnrestab; + DWORD e32_nressum; + DWORD e32_autodata; + DWORD e32_debuginfo; + DWORD e32_debuglen; + DWORD e32_instpreload; + DWORD e32_instdemand; + DWORD e32_heapsize; + BYTE e32_res3[12]; + DWORD e32_winresoff; + DWORD e32_winreslen; + WORD e32_devid; + WORD e32_ddkver; +} IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER; + +/* These defines describe the meanings of the bits in the + Characteristics field */ + +#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 /* No relocation info */ +#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 +#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 +#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 +#define IMAGE_FILE_AGGRESIVE_WS_TRIM 0x0010 +#define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 +#define IMAGE_FILE_16BIT_MACHINE 0x0040 +#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 +#define IMAGE_FILE_32BIT_MACHINE 0x0100 +#define IMAGE_FILE_DEBUG_STRIPPED 0x0200 +#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 +#define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 +#define IMAGE_FILE_SYSTEM 0x1000 +#define IMAGE_FILE_DLL 0x2000 +#define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 +#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 + +/* These are the settings of the Machine field. */ +#define IMAGE_FILE_MACHINE_UNKNOWN 0 +#define IMAGE_FILE_MACHINE_I860 0x014d +#define IMAGE_FILE_MACHINE_I386 0x014c +#define IMAGE_FILE_MACHINE_R3000 0x0162 +#define IMAGE_FILE_MACHINE_R4000 0x0166 +#define IMAGE_FILE_MACHINE_R10000 0x0168 +#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169 +#define IMAGE_FILE_MACHINE_ALPHA 0x0184 +#define IMAGE_FILE_MACHINE_SH3 0x01a2 +#define IMAGE_FILE_MACHINE_SH3DSP 0x01a3 +#define IMAGE_FILE_MACHINE_SH3E 0x01a4 +#define IMAGE_FILE_MACHINE_SH4 0x01a6 +#define IMAGE_FILE_MACHINE_SH5 0x01a8 +#define IMAGE_FILE_MACHINE_ARM 0x01c0 +#define IMAGE_FILE_MACHINE_THUMB 0x01c2 +#define IMAGE_FILE_MACHINE_AM33 0x01d3 +#define IMAGE_FILE_MACHINE_POWERPC 0x01f0 +#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1 +#define IMAGE_FILE_MACHINE_IA64 0x0200 +#define IMAGE_FILE_MACHINE_MIPS16 0x0266 +#define IMAGE_FILE_MACHINE_ALPHA64 0x0284 +#define IMAGE_FILE_MACHINE_MIPSFPU 0x0366 +#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466 +#define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64 +#define IMAGE_FILE_MACHINE_TRICORE 0x0520 +#define IMAGE_FILE_MACHINE_CEF 0x0cef +#define IMAGE_FILE_MACHINE_EBC 0x0ebc +#define IMAGE_FILE_MACHINE_AMD64 0x8664 +#define IMAGE_FILE_MACHINE_M32R 0x9041 +#define IMAGE_FILE_MACHINE_CEE 0xc0ee + +#define IMAGE_SIZEOF_FILE_HEADER 20 +#define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56 +#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28 +#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER32 224 +#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER64 240 +#define IMAGE_SIZEOF_SHORT_NAME 8 +#define IMAGE_SIZEOF_SECTION_HEADER 40 +#define IMAGE_SIZEOF_SYMBOL 18 +#define IMAGE_SIZEOF_AUX_SYMBOL 18 +#define IMAGE_SIZEOF_RELOCATION 10 +#define IMAGE_SIZEOF_BASE_RELOCATION 8 +#define IMAGE_SIZEOF_LINENUMBER 6 +#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60 + +/* Possible Magic values */ +#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x010b +#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x020b +#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x0107 + +#ifdef CONFIG_X86_64 +#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER IMAGE_SIZEOF_NT_OPTIONAL_HEADER64 +#define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC +#else +#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER IMAGE_SIZEOF_NT_OPTIONAL_HEADER32 +#define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR32_MAGIC +#endif + +/* These are indexes into the DataDirectory array */ +#define IMAGE_FILE_EXPORT_DIRECTORY 0 +#define IMAGE_FILE_IMPORT_DIRECTORY 1 +#define IMAGE_FILE_RESOURCE_DIRECTORY 2 +#define IMAGE_FILE_EXCEPTION_DIRECTORY 3 +#define IMAGE_FILE_SECURITY_DIRECTORY 4 +#define IMAGE_FILE_BASE_RELOCATION_TABLE 5 +#define IMAGE_FILE_DEBUG_DIRECTORY 6 +#define IMAGE_FILE_DESCRIPTION_STRING 7 +#define IMAGE_FILE_MACHINE_VALUE 8 /* Mips */ +#define IMAGE_FILE_THREAD_LOCAL_STORAGE 9 +#define IMAGE_FILE_CALLBACK_DIRECTORY 10 + +/* Directory Entries, indices into the DataDirectory array */ + +#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 +#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 +#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 +#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 +#define IMAGE_DIRECTORY_ENTRY_SECURITY 4 +#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 +#define IMAGE_DIRECTORY_ENTRY_DEBUG 6 +#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 +#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 /* (MIPS GP) */ +#define IMAGE_DIRECTORY_ENTRY_TLS 9 +#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 +#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 +#define IMAGE_DIRECTORY_ENTRY_IAT 12 /* Import Address Table */ +#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 +#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 + +/* Subsystem Values */ + +#define IMAGE_SUBSYSTEM_UNKNOWN 0 +#define IMAGE_SUBSYSTEM_NATIVE 1 +#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 /* Windows GUI subsystem */ +#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 /* Windows character subsystem */ +#define IMAGE_SUBSYSTEM_OS2_CUI 5 +#define IMAGE_SUBSYSTEM_POSIX_CUI 7 +#define IMAGE_SUBSYSTEM_NATIVE_WINDOWS 8 /* native Win9x driver */ +#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9 /* Windows CE subsystem */ +#define IMAGE_SUBSYSTEM_EFI_APPLICATION 10 +#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 +#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 +#define IMAGE_SUBSYSTEM_EFI_ROM 13 +#define IMAGE_SUBSYSTEM_XBOX 14 + +typedef struct _IMAGE_FILE_HEADER { + WORD Machine; + WORD NumberOfSections; + DWORD TimeDateStamp; + DWORD PointerToSymbolTable; + DWORD NumberOfSymbols; + WORD SizeOfOptionalHeader; + WORD Characteristics; +} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; + +typedef struct _IMAGE_DATA_DIRECTORY { + DWORD VirtualAddress; + DWORD Size; +} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; + +#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 + +typedef struct _IMAGE_OPTIONAL_HEADER32 { + + /* Standard fields */ + + WORD Magic; + BYTE MajorLinkerVersion; + BYTE MinorLinkerVersion; + DWORD SizeOfCode; + DWORD SizeOfInitializedData; + DWORD SizeOfUninitializedData; + DWORD AddressOfEntryPoint; + DWORD BaseOfCode; + DWORD BaseOfData; + + /* NT additional fields */ + DWORD ImageBase; + DWORD SectionAlignment; + DWORD FileAlignment; + WORD MajorOperatingSystemVersion; + WORD MinorOperatingSystemVersion; + WORD MajorImageVersion; + WORD MinorImageVersion; + WORD MajorSubsystemVersion; + WORD MinorSubsystemVersion; + DWORD Win32VersionValue; + DWORD SizeOfImage; + DWORD SizeOfHeaders; + DWORD CheckSum; + WORD Subsystem; + WORD DllCharacteristics; + DWORD SizeOfStackReserve; + DWORD SizeOfStackCommit; + DWORD SizeOfHeapReserve; + DWORD SizeOfHeapCommit; + DWORD LoaderFlags; + DWORD NumberOfRvaAndSizes; + IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; +} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; + +typedef struct _IMAGE_OPTIONAL_HEADER64 { + + /* Standard fields */ + + WORD Magic; + BYTE MajorLinkerVersion; + BYTE MinorLinkerVersion; + DWORD SizeOfCode; + DWORD SizeOfInitializedData; + DWORD SizeOfUninitializedData; + DWORD AddressOfEntryPoint; + DWORD BaseOfCode; + + /* NT additional fields */ + ULONGLONG ImageBase; + DWORD SectionAlignment; + DWORD FileAlignment; + WORD MajorOperatingSystemVersion; + WORD MinorOperatingSystemVersion; + WORD MajorImageVersion; + WORD MinorImageVersion; + WORD MajorSubsystemVersion; + WORD MinorSubsystemVersion; + DWORD Win32VersionValue; + DWORD SizeOfImage; + DWORD SizeOfHeaders; + DWORD CheckSum; + WORD Subsystem; + WORD DllCharacteristics; + ULONGLONG SizeOfStackReserve; + ULONGLONG SizeOfStackCommit; + ULONGLONG SizeOfHeapReserve; + ULONGLONG SizeOfHeapCommit; + DWORD LoaderFlags; + DWORD NumberOfRvaAndSizes; + IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; +} IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64; + +#ifdef CONFIG_X86_64 +typedef IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER; +typedef PIMAGE_OPTIONAL_HEADER64 PIMAGE_OPTIONAL_HEADER; +#else +typedef IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; +typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; +#endif + +typedef struct _IMAGE_NT_HEADERS32 { + DWORD Signature; /* "PE"\0\0 */ /* 0x00 */ + IMAGE_FILE_HEADER FileHeader; /* 0x04 */ + IMAGE_OPTIONAL_HEADER32 OptionalHeader; /* 0x18 */ +} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; + +typedef struct _IMAGE_NT_HEADERS64 { + DWORD Signature; /* "PE"\0\0 */ /* 0x00 */ + IMAGE_FILE_HEADER FileHeader; /* 0x04 */ + IMAGE_OPTIONAL_HEADER64 OptionalHeader; /* 0x18 */ +} IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64; + +#ifdef CONFIG_X86_64 +typedef IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS; +typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS; +#else +typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; +typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; +#endif + +#define IMAGE_SIZEOF_SHORT_NAME 8 + +typedef struct _IMAGE_SECTION_HEADER { + BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; + union { + DWORD PhysicalAddress; + DWORD VirtualSize; + } Misc; + DWORD VirtualAddress; + DWORD SizeOfRawData; + DWORD PointerToRawData; + DWORD PointerToRelocations; + DWORD PointerToLinenumbers; + WORD NumberOfRelocations; + WORD NumberOfLinenumbers; + DWORD Characteristics; +} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; + +#define IMAGE_SIZEOF_SECTION_HEADER 40 + +#define IMAGE_FIRST_SECTION(ntheader) \ +((PIMAGE_SECTION_HEADER)((LPBYTE)&((PIMAGE_NT_HEADERS)(ntheader))->OptionalHeader + \ +((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader)) + +/* These defines are for the Characteristics bitfield. */ +/* #define IMAGE_SCN_TYPE_REG 0x00000000 - Reserved */ +/* #define IMAGE_SCN_TYPE_DSECT 0x00000001 - Reserved */ +/* #define IMAGE_SCN_TYPE_NOLOAD 0x00000002 - Reserved */ +/* #define IMAGE_SCN_TYPE_GROUP 0x00000004 - Reserved */ +#define IMAGE_SCN_TYPE_NO_PAD 0x00000008 /* Reserved */ +/* #define IMAGE_SCN_TYPE_COPY 0x00000010 - Reserved */ + +#define IMAGE_SCN_CNT_CODE 0x00000020 +#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 +#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 + +#define IMAGE_SCN_LNK_OTHER 0x00000100 +#define IMAGE_SCN_LNK_INFO 0x00000200 +/* #define IMAGE_SCN_TYPE_OVER 0x00000400 - Reserved */ +#define IMAGE_SCN_LNK_REMOVE 0x00000800 +#define IMAGE_SCN_LNK_COMDAT 0x00001000 + +/* 0x00002000 - Reserved */ +/* #define IMAGE_SCN_MEM_PROTECTED 0x00004000 - Obsolete */ +#define IMAGE_SCN_MEM_FARDATA 0x00008000 + +/* #define IMAGE_SCN_MEM_SYSHEAP 0x00010000 - Obsolete */ +#define IMAGE_SCN_MEM_PURGEABLE 0x00020000 +#define IMAGE_SCN_MEM_16BIT 0x00020000 +#define IMAGE_SCN_MEM_LOCKED 0x00040000 +#define IMAGE_SCN_MEM_PRELOAD 0x00080000 + +#define IMAGE_SCN_ALIGN_1BYTES 0x00100000 +#define IMAGE_SCN_ALIGN_2BYTES 0x00200000 +#define IMAGE_SCN_ALIGN_4BYTES 0x00300000 +#define IMAGE_SCN_ALIGN_8BYTES 0x00400000 +#define IMAGE_SCN_ALIGN_16BYTES 0x00500000 /* Default */ +#define IMAGE_SCN_ALIGN_32BYTES 0x00600000 +#define IMAGE_SCN_ALIGN_64BYTES 0x00700000 +#define IMAGE_SCN_ALIGN_128BYTES 0x00800000 +#define IMAGE_SCN_ALIGN_256BYTES 0x00900000 +#define IMAGE_SCN_ALIGN_512BYTES 0x00A00000 +#define IMAGE_SCN_ALIGN_1024BYTES 0x00B00000 +#define IMAGE_SCN_ALIGN_2048BYTES 0x00C00000 +#define IMAGE_SCN_ALIGN_4096BYTES 0x00D00000 +#define IMAGE_SCN_ALIGN_8192BYTES 0x00E00000 +/* 0x00F00000 - Unused */ +#define IMAGE_SCN_ALIGN_MASK 0x00F00000 + +#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 + + +#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 +#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 +#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 +#define IMAGE_SCN_MEM_SHARED 0x10000000 +#define IMAGE_SCN_MEM_EXECUTE 0x20000000 +#define IMAGE_SCN_MEM_READ 0x40000000 +#define IMAGE_SCN_MEM_WRITE 0x80000000 + +typedef struct _IMAGE_SYMBOL { + union { + BYTE ShortName[8]; + struct { + DWORD Short; + DWORD Long; + } Name; + DWORD LongName[2]; + } N; + DWORD Value; + SHORT SectionNumber; + WORD Type; + BYTE StorageClass; + BYTE NumberOfAuxSymbols; +} IMAGE_SYMBOL; +typedef IMAGE_SYMBOL *PIMAGE_SYMBOL; + +#define IMAGE_SIZEOF_SYMBOL 18 + +typedef struct _IMAGE_LINENUMBER { + union { + DWORD SymbolTableIndex; + DWORD VirtualAddress; + } Type; + WORD Linenumber; +} IMAGE_LINENUMBER; +typedef IMAGE_LINENUMBER *PIMAGE_LINENUMBER; + +#define IMAGE_SIZEOF_LINENUMBER 6 + +typedef union _IMAGE_AUX_SYMBOL { + struct { + DWORD TagIndex; + union { + struct { + WORD Linenumber; + WORD Size; + } LnSz; + DWORD TotalSize; + } Misc; + union { + struct { + DWORD PointerToLinenumber; + DWORD PointerToNextFunction; + } Function; + struct { + WORD Dimension[4]; + } Array; + } FcnAry; + WORD TvIndex; + } Sym; + struct { + BYTE Name[IMAGE_SIZEOF_SYMBOL]; + } File; + struct { + DWORD Length; + WORD NumberOfRelocations; + WORD NumberOfLinenumbers; + DWORD CheckSum; + SHORT Number; + BYTE Selection; + } Section; +} IMAGE_AUX_SYMBOL; +typedef IMAGE_AUX_SYMBOL *PIMAGE_AUX_SYMBOL; + +#define IMAGE_SIZEOF_AUX_SYMBOL 18 + +#define IMAGE_SYM_UNDEFINED (SHORT)0 +#define IMAGE_SYM_ABSOLUTE (SHORT)-1 +#define IMAGE_SYM_DEBUG (SHORT)-2 + +#define IMAGE_SYM_TYPE_NULL 0x0000 +#define IMAGE_SYM_TYPE_VOID 0x0001 +#define IMAGE_SYM_TYPE_CHAR 0x0002 +#define IMAGE_SYM_TYPE_SHORT 0x0003 +#define IMAGE_SYM_TYPE_INT 0x0004 +#define IMAGE_SYM_TYPE_LONG 0x0005 +#define IMAGE_SYM_TYPE_FLOAT 0x0006 +#define IMAGE_SYM_TYPE_DOUBLE 0x0007 +#define IMAGE_SYM_TYPE_STRUCT 0x0008 +#define IMAGE_SYM_TYPE_UNION 0x0009 +#define IMAGE_SYM_TYPE_ENUM 0x000A +#define IMAGE_SYM_TYPE_MOE 0x000B +#define IMAGE_SYM_TYPE_BYTE 0x000C +#define IMAGE_SYM_TYPE_WORD 0x000D +#define IMAGE_SYM_TYPE_UINT 0x000E +#define IMAGE_SYM_TYPE_DWORD 0x000F +#define IMAGE_SYM_TYPE_PCODE 0x8000 + +#define IMAGE_SYM_DTYPE_NULL 0 +#define IMAGE_SYM_DTYPE_POINTER 1 +#define IMAGE_SYM_DTYPE_FUNCTION 2 +#define IMAGE_SYM_DTYPE_ARRAY 3 + +#define IMAGE_SYM_CLASS_END_OF_FUNCTION (BYTE )-1 +#define IMAGE_SYM_CLASS_NULL 0x0000 +#define IMAGE_SYM_CLASS_AUTOMATIC 0x0001 +#define IMAGE_SYM_CLASS_EXTERNAL 0x0002 +#define IMAGE_SYM_CLASS_STATIC 0x0003 +#define IMAGE_SYM_CLASS_REGISTER 0x0004 +#define IMAGE_SYM_CLASS_EXTERNAL_DEF 0x0005 +#define IMAGE_SYM_CLASS_LABEL 0x0006 +#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 0x0007 +#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 0x0008 +#define IMAGE_SYM_CLASS_ARGUMENT 0x0009 +#define IMAGE_SYM_CLASS_STRUCT_TAG 0x000A +#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 0x000B +#define IMAGE_SYM_CLASS_UNION_TAG 0x000C +#define IMAGE_SYM_CLASS_TYPE_DEFINITION 0x000D +#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 0x000E +#define IMAGE_SYM_CLASS_ENUM_TAG 0x000F +#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 0x0010 +#define IMAGE_SYM_CLASS_REGISTER_PARAM 0x0011 +#define IMAGE_SYM_CLASS_BIT_FIELD 0x0012 + +#define IMAGE_SYM_CLASS_FAR_EXTERNAL 0x0044 +#define IMAGE_SYM_CLASS_BLOCK 0x0064 +#define IMAGE_SYM_CLASS_FUNCTION 0x0065 +#define IMAGE_SYM_CLASS_END_OF_STRUCT 0x0066 +#define IMAGE_SYM_CLASS_FILE 0x0067 +#define IMAGE_SYM_CLASS_SECTION 0x0068 +#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 0x0069 + +#define N_BTMASK 0x000F +#define N_TMASK 0x0030 +#define N_TMASK1 0x00C0 +#define N_TMASK2 0x00F0 +#define N_BTSHFT 4 +#define N_TSHIFT 2 + +#define BTYPE(x) ((x) & N_BTMASK) + +#ifndef ISPTR +#define ISPTR(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT)) +#endif + +#ifndef ISFCN +#define ISFCN(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT)) +#endif + +#ifndef ISARY +#define ISARY(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT)) +#endif + +#ifndef ISTAG +#define ISTAG(x) ((x)==IMAGE_SYM_CLASS_STRUCT_TAG || (x)==IMAGE_SYM_CLASS_UNION_TAG || (x)==IMAGE_SYM_CLASS_ENUM_TAG) +#endif + +#ifndef INCREF +#define INCREF(x) ((((x)&~N_BTMASK)<>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK)) +#endif + +#define IMAGE_COMDAT_SELECT_NODUPLICATES 1 +#define IMAGE_COMDAT_SELECT_ANY 2 +#define IMAGE_COMDAT_SELECT_SAME_SIZE 3 +#define IMAGE_COMDAT_SELECT_EXACT_MATCH 4 +#define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5 +#define IMAGE_COMDAT_SELECT_LARGEST 6 +#define IMAGE_COMDAT_SELECT_NEWEST 7 + +#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1 +#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 +#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 + +/* Export module directory */ + +typedef struct _IMAGE_EXPORT_DIRECTORY { + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + DWORD Name; + DWORD Base; + DWORD NumberOfFunctions; + DWORD NumberOfNames; + DWORD AddressOfFunctions; + DWORD AddressOfNames; + DWORD AddressOfNameOrdinals; +} IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY; + +/* Import name entry */ +typedef struct _IMAGE_IMPORT_BY_NAME { + WORD Hint; + BYTE Name[1]; +} IMAGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME; + +/* Import thunk */ +typedef struct _IMAGE_THUNK_DATA32 { + union { + DWORD ForwarderString; + DWORD Function; + DWORD Ordinal; + DWORD AddressOfData; + } u1; +} IMAGE_THUNK_DATA32,*PIMAGE_THUNK_DATA32; + +typedef struct _IMAGE_THUNK_DATA64 { + union { + ULONGLONG ForwarderString; + ULONGLONG Function; + ULONGLONG Ordinal; + ULONGLONG AddressOfData; + } u1; +} IMAGE_THUNK_DATA64,*PIMAGE_THUNK_DATA64; + +#ifdef CONFIG_X86_64 +typedef IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; +typedef PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA; +#else +typedef IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA; +typedef PIMAGE_THUNK_DATA64 PIMAGE_THUNK_DATA; +#endif + +/* Import module directory */ + +typedef struct packed _IMAGE_IMPORT_DESCRIPTOR { + union { + DWORD Characteristics; /* 0 for terminating null + * import descriptor */ + DWORD OriginalFirstThunk; /* RVA to original unbound + * IAT */ + } u; + DWORD TimeDateStamp; /* 0 if not bound, + * -1 if bound, and real date\time stamp + * in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT + * (new BIND) + * otherwise date/time stamp of DLL bound to + * (Old BIND) + */ + DWORD ForwarderChain; /* -1 if no forwarders */ + DWORD Name; + /* RVA to IAT (if bound this IAT has actual addresses) */ + DWORD FirstThunk; +} IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR; + +#define IMAGE_ORDINAL_FLAG32 0x80000000 +#define IMAGE_ORDINAL_FLAG64 0x8000000000000000UL +#define IMAGE_SNAP_BY_ORDINAL32(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG32) != 0) +#define IMAGE_SNAP_BY_ORDINAL64(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG64) != 0) +#define IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff) + +#ifdef CONFIG_X86_64 +#define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG64 +#define IMAGE_SNAP_BY_ORDINAL IMAGE_SNAP_BY_ORDINAL64 +#else +#define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG32 +#define IMAGE_SNAP_BY_ORDINAL IMAGE_SNAP_BY_ORDINAL32 +#endif + +typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR +{ + DWORD TimeDateStamp; + WORD OffsetModuleName; + WORD NumberOfModuleForwarderRefs; +/* Array of zero or more IMAGE_BOUND_FORWARDER_REF follows */ +} IMAGE_BOUND_IMPORT_DESCRIPTOR, *PIMAGE_BOUND_IMPORT_DESCRIPTOR; + +typedef struct _IMAGE_BOUND_FORWARDER_REF +{ + DWORD TimeDateStamp; + WORD OffsetModuleName; + WORD Reserved; +} IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF; + +typedef struct _IMAGE_BASE_RELOCATION +{ + DWORD VirtualAddress; + DWORD SizeOfBlock; + WORD TypeOffset[0]; +} IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION; + +typedef struct _IMAGE_RELOCATION +{ + union { + DWORD VirtualAddress; + DWORD RelocCount; + } DUMMYUNIONNAME; + DWORD SymbolTableIndex; + WORD Type; +} IMAGE_RELOCATION, *PIMAGE_RELOCATION; + +#define IMAGE_SIZEOF_RELOCATION 10 + +/* generic relocation types */ +#define IMAGE_REL_BASED_ABSOLUTE 0 +#define IMAGE_REL_BASED_HIGH 1 +#define IMAGE_REL_BASED_LOW 2 +#define IMAGE_REL_BASED_HIGHLOW 3 +#define IMAGE_REL_BASED_HIGHADJ 4 +#define IMAGE_REL_BASED_MIPS_JMPADDR 5 +#define IMAGE_REL_BASED_SECTION 6 +#define IMAGE_REL_BASED_REL 7 +#define IMAGE_REL_BASED_MIPS_JMPADDR16 9 +#define IMAGE_REL_BASED_IA64_IMM64 9 /* yes, 9 too */ +#define IMAGE_REL_BASED_DIR64 10 +#define IMAGE_REL_BASED_HIGH3ADJ 11 + +/* I386 relocation types */ +#define IMAGE_REL_I386_ABSOLUTE 0 +#define IMAGE_REL_I386_DIR16 1 +#define IMAGE_REL_I386_REL16 2 +#define IMAGE_REL_I386_DIR32 6 +#define IMAGE_REL_I386_DIR32NB 7 +#define IMAGE_REL_I386_SEG12 9 +#define IMAGE_REL_I386_SECTION 10 +#define IMAGE_REL_I386_SECREL 11 +#define IMAGE_REL_I386_REL32 20 + +/* MIPS relocation types */ +#define IMAGE_REL_MIPS_ABSOLUTE 0x0000 +#define IMAGE_REL_MIPS_REFHALF 0x0001 +#define IMAGE_REL_MIPS_REFWORD 0x0002 +#define IMAGE_REL_MIPS_JMPADDR 0x0003 +#define IMAGE_REL_MIPS_REFHI 0x0004 +#define IMAGE_REL_MIPS_REFLO 0x0005 +#define IMAGE_REL_MIPS_GPREL 0x0006 +#define IMAGE_REL_MIPS_LITERAL 0x0007 +#define IMAGE_REL_MIPS_SECTION 0x000A +#define IMAGE_REL_MIPS_SECREL 0x000B +#define IMAGE_REL_MIPS_SECRELLO 0x000C +#define IMAGE_REL_MIPS_SECRELHI 0x000D +#define IMAGE_REL_MIPS_JMPADDR16 0x0010 +#define IMAGE_REL_MIPS_REFWORDNB 0x0022 +#define IMAGE_REL_MIPS_PAIR 0x0025 + +/* ALPHA relocation types */ +#define IMAGE_REL_ALPHA_ABSOLUTE 0x0000 +#define IMAGE_REL_ALPHA_REFLONG 0x0001 +#define IMAGE_REL_ALPHA_REFQUAD 0x0002 +#define IMAGE_REL_ALPHA_GPREL 0x0003 +#define IMAGE_REL_ALPHA_LITERAL 0x0004 +#define IMAGE_REL_ALPHA_LITUSE 0x0005 +#define IMAGE_REL_ALPHA_GPDISP 0x0006 +#define IMAGE_REL_ALPHA_BRADDR 0x0007 +#define IMAGE_REL_ALPHA_HINT 0x0008 +#define IMAGE_REL_ALPHA_INLINE_REFLONG 0x0009 +#define IMAGE_REL_ALPHA_REFHI 0x000A +#define IMAGE_REL_ALPHA_REFLO 0x000B +#define IMAGE_REL_ALPHA_PAIR 0x000C +#define IMAGE_REL_ALPHA_MATCH 0x000D +#define IMAGE_REL_ALPHA_SECTION 0x000E +#define IMAGE_REL_ALPHA_SECREL 0x000F +#define IMAGE_REL_ALPHA_REFLONGNB 0x0010 +#define IMAGE_REL_ALPHA_SECRELLO 0x0011 +#define IMAGE_REL_ALPHA_SECRELHI 0x0012 +#define IMAGE_REL_ALPHA_REFQ3 0x0013 +#define IMAGE_REL_ALPHA_REFQ2 0x0014 +#define IMAGE_REL_ALPHA_REFQ1 0x0015 +#define IMAGE_REL_ALPHA_GPRELLO 0x0016 +#define IMAGE_REL_ALPHA_GPRELHI 0x0017 + +/* PowerPC relocation types */ +#define IMAGE_REL_PPC_ABSOLUTE 0x0000 +#define IMAGE_REL_PPC_ADDR64 0x0001 +#define IMAGE_REL_PPC_ADDR 0x0002 +#define IMAGE_REL_PPC_ADDR24 0x0003 +#define IMAGE_REL_PPC_ADDR16 0x0004 +#define IMAGE_REL_PPC_ADDR14 0x0005 +#define IMAGE_REL_PPC_REL24 0x0006 +#define IMAGE_REL_PPC_REL14 0x0007 +#define IMAGE_REL_PPC_TOCREL16 0x0008 +#define IMAGE_REL_PPC_TOCREL14 0x0009 +#define IMAGE_REL_PPC_ADDR32NB 0x000A +#define IMAGE_REL_PPC_SECREL 0x000B +#define IMAGE_REL_PPC_SECTION 0x000C +#define IMAGE_REL_PPC_IFGLUE 0x000D +#define IMAGE_REL_PPC_IMGLUE 0x000E +#define IMAGE_REL_PPC_SECREL16 0x000F +#define IMAGE_REL_PPC_REFHI 0x0010 +#define IMAGE_REL_PPC_REFLO 0x0011 +#define IMAGE_REL_PPC_PAIR 0x0012 +#define IMAGE_REL_PPC_SECRELLO 0x0013 +#define IMAGE_REL_PPC_SECRELHI 0x0014 +#define IMAGE_REL_PPC_GPREL 0x0015 +#define IMAGE_REL_PPC_TYPEMASK 0x00FF +/* modifier bits */ +#define IMAGE_REL_PPC_NEG 0x0100 +#define IMAGE_REL_PPC_BRTAKEN 0x0200 +#define IMAGE_REL_PPC_BRNTAKEN 0x0400 +#define IMAGE_REL_PPC_TOCDEFN 0x0800 + +/* SH3 ? relocation type */ +#define IMAGE_REL_SH3_ABSOLUTE 0x0000 +#define IMAGE_REL_SH3_DIRECT16 0x0001 +#define IMAGE_REL_SH3_DIRECT 0x0002 +#define IMAGE_REL_SH3_DIRECT8 0x0003 +#define IMAGE_REL_SH3_DIRECT8_WORD 0x0004 +#define IMAGE_REL_SH3_DIRECT8_LONG 0x0005 +#define IMAGE_REL_SH3_DIRECT4 0x0006 +#define IMAGE_REL_SH3_DIRECT4_WORD 0x0007 +#define IMAGE_REL_SH3_DIRECT4_LONG 0x0008 +#define IMAGE_REL_SH3_PCREL8_WORD 0x0009 +#define IMAGE_REL_SH3_PCREL8_LONG 0x000A +#define IMAGE_REL_SH3_PCREL12_WORD 0x000B +#define IMAGE_REL_SH3_STARTOF_SECTION 0x000C +#define IMAGE_REL_SH3_SIZEOF_SECTION 0x000D +#define IMAGE_REL_SH3_SECTION 0x000E +#define IMAGE_REL_SH3_SECREL 0x000F +#define IMAGE_REL_SH3_DIRECT32_NB 0x0010 + +/* ARM (Archimedes?) relocation types */ +#define IMAGE_REL_ARM_ABSOLUTE 0x0000 +#define IMAGE_REL_ARM_ADDR 0x0001 +#define IMAGE_REL_ARM_ADDR32NB 0x0002 +#define IMAGE_REL_ARM_BRANCH24 0x0003 +#define IMAGE_REL_ARM_BRANCH11 0x0004 +#define IMAGE_REL_ARM_SECTION 0x000E +#define IMAGE_REL_ARM_SECREL 0x000F + +/* IA64 relocation types */ +#define IMAGE_REL_IA64_ABSOLUTE 0x0000 +#define IMAGE_REL_IA64_IMM14 0x0001 +#define IMAGE_REL_IA64_IMM22 0x0002 +#define IMAGE_REL_IA64_IMM64 0x0003 +#define IMAGE_REL_IA64_DIR 0x0004 +#define IMAGE_REL_IA64_DIR64 0x0005 +#define IMAGE_REL_IA64_PCREL21B 0x0006 +#define IMAGE_REL_IA64_PCREL21M 0x0007 +#define IMAGE_REL_IA64_PCREL21F 0x0008 +#define IMAGE_REL_IA64_GPREL22 0x0009 +#define IMAGE_REL_IA64_LTOFF22 0x000A +#define IMAGE_REL_IA64_SECTION 0x000B +#define IMAGE_REL_IA64_SECREL22 0x000C +#define IMAGE_REL_IA64_SECREL64I 0x000D +#define IMAGE_REL_IA64_SECREL 0x000E +#define IMAGE_REL_IA64_LTOFF64 0x000F +#define IMAGE_REL_IA64_DIR32NB 0x0010 +#define IMAGE_REL_IA64_RESERVED_11 0x0011 +#define IMAGE_REL_IA64_RESERVED_12 0x0012 +#define IMAGE_REL_IA64_RESERVED_13 0x0013 +#define IMAGE_REL_IA64_RESERVED_14 0x0014 +#define IMAGE_REL_IA64_RESERVED_15 0x0015 +#define IMAGE_REL_IA64_RESERVED_16 0x0016 +#define IMAGE_REL_IA64_ADDEND 0x001F + +/* archive format */ + +#define IMAGE_ARCHIVE_START_SIZE 8 +#define IMAGE_ARCHIVE_START "!\n" +#define IMAGE_ARCHIVE_END "`\n" +#define IMAGE_ARCHIVE_PAD "\n" +#define IMAGE_ARCHIVE_LINKER_MEMBER "/ " +#define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// " + +typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER +{ + BYTE Name[16]; + BYTE Date[12]; + BYTE UserID[6]; + BYTE GroupID[6]; + BYTE Mode[8]; + BYTE Size[10]; + BYTE EndHeader[2]; +} IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER; + +#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60 + +/* + * Resource directory stuff + */ +typedef struct _IMAGE_RESOURCE_DIRECTORY { + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + WORD NumberOfNamedEntries; + WORD NumberOfIdEntries; + /* IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[]; */ +} IMAGE_RESOURCE_DIRECTORY,*PIMAGE_RESOURCE_DIRECTORY; + +#define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000 +#define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000 + +typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { + union { + struct { +#ifdef BITFIELDS_BIGENDIAN + unsigned NameIsString:1; + unsigned NameOffset:31; +#else + unsigned NameOffset:31; + unsigned NameIsString:1; +#endif + } DUMMYSTRUCTNAME1; + DWORD Name; + struct { +#ifdef WORDS_BIGENDIAN + WORD __pad; + WORD Id; +#else + WORD Id; + WORD __pad; +#endif + } DUMMYSTRUCTNAME2; + } DUMMYUNIONNAME1; + union { + DWORD OffsetToData; + struct { +#ifdef BITFIELDS_BIGENDIAN + unsigned DataIsDirectory:1; + unsigned OffsetToDirectory:31; +#else + unsigned OffsetToDirectory:31; + unsigned DataIsDirectory:1; +#endif + } DUMMYSTRUCTNAME3; + } DUMMYUNIONNAME2; +} IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY; + + +typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING { + WORD Length; + CHAR NameString[ 1 ]; +} IMAGE_RESOURCE_DIRECTORY_STRING,*PIMAGE_RESOURCE_DIRECTORY_STRING; + --- linux-2.6.35.orig/ubuntu/ndiswrapper/winnt_types.h +++ linux-2.6.35/ubuntu/ndiswrapper/winnt_types.h @@ -0,0 +1,1702 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _WINNT_TYPES_H_ +#define _WINNT_TYPES_H_ + +#define TRUE 1 +#define FALSE 0 + +#define PASSIVE_LEVEL 0 +#define APC_LEVEL 1 +#define DISPATCH_LEVEL 2 +#define DEVICE_LEVEL_BASE 4 + +/* soft interrupts / bottom-half's are disabled at SOFT_IRQL */ +#define SOFT_IRQL (DEVICE_LEVEL_BASE + 1) +#define DIRQL (DEVICE_LEVEL_BASE + 2) + +#define STATUS_WAIT_0 0 +#define STATUS_SUCCESS 0 +#define STATUS_ALERTED 0x00000101 +#define STATUS_TIMEOUT 0x00000102 +#define STATUS_PENDING 0x00000103 +#define STATUS_FAILURE 0xC0000001 +#define STATUS_NOT_IMPLEMENTED 0xC0000002 +#define STATUS_INVALID_PARAMETER 0xC000000D +#define STATUS_INVALID_DEVICE_REQUEST 0xC0000010 +#define STATUS_MORE_PROCESSING_REQUIRED 0xC0000016 +#define STATUS_ACCESS_DENIED 0xC0000022 +#define STATUS_BUFFER_TOO_SMALL 0xC0000023 +#define STATUS_OBJECT_NAME_INVALID 0xC0000023 +#define STATUS_MUTANT_NOT_OWNED 0xC0000046 +#define STATUS_RESOURCES 0xC000009A +#define STATUS_DELETE_PENDING 0xC0000056 +#define STATUS_INSUFFICIENT_RESOURCES 0xC000009A +#define STATUS_NOT_SUPPORTED 0xC00000BB +#define STATUS_INVALID_PARAMETER_2 0xC00000F0 +#define STATUS_NO_MEMORY 0xC0000017 +#define STATUS_CANCELLED 0xC0000120 +#define STATUS_DEVICE_REMOVED 0xC00002B6 +#define STATUS_DEVICE_NOT_CONNECTED 0xC000009D + +#define STATUS_BUFFER_OVERFLOW 0x80000005 + +#define SL_PENDING_RETURNED 0x01 +#define SL_INVOKE_ON_CANCEL 0x20 +#define SL_INVOKE_ON_SUCCESS 0x40 +#define SL_INVOKE_ON_ERROR 0x80 + +#define IRP_MJ_CREATE 0x00 +#define IRP_MJ_CREATE_NAMED_PIPE 0x01 +#define IRP_MJ_CLOSE 0x02 +#define IRP_MJ_READ 0x03 +#define IRP_MJ_WRITE 0x04 + +#define IRP_MJ_DEVICE_CONTROL 0x0E +#define IRP_MJ_INTERNAL_DEVICE_CONTROL 0x0F +#define IRP_MJ_POWER 0x16 +#define IRP_MJ_SYSTEM_CONTROL 0x0E +#define IRP_MJ_PNP 0x1b +#define IRP_MJ_MAXIMUM_FUNCTION 0x1b + +#define IRP_MN_WAIT_WAKE 0x00 +#define IRP_MN_POWER_SEQUENCE 0x01 +#define IRP_MN_SET_POWER 0x02 +#define IRP_MN_QUERY_POWER 0x03 + +#define IRP_MN_REGINFO 0x08 +#define IRP_MN_REGINFO_EX 0x0b + +#define IRP_MN_START_DEVICE 0x00 +#define IRP_MN_QUERY_REMOVE_DEVICE 0x01 +#define IRP_MN_REMOVE_DEVICE 0x02 +#define IRP_MN_CANCEL_REMOVE_DEVICE 0x03 +#define IRP_MN_STOP_DEVICE 0x04 +#define IRP_MN_QUERY_STOP_DEVICE 0x05 +#define IRP_MN_CANCEL_STOP_DEVICE 0x06 +#define IRP_MN_QUERY_DEVICE_RELATIONS 0x07 +#define IRP_MN_QUERY_INTERFACE 0x08 + +#define IRP_BUFFERED_IO 0x00000010 +#define IRP_DEALLOCATE_BUFFER 0x00000020 +#define IRP_INPUT_OPERATION 0x00000040 + +#define IRP_DEFFER_IO_COMPLETION 0x00000800 + +#define THREAD_WAIT_OBJECTS 3 +#define MAX_WAIT_OBJECTS 64 + +#define LOW_PRIORITY 0 +#define LOW_REALTIME_PRIORITY 16 +#define HIGH_PRIORITY 31 +#define MAXIMUM_PRIORITY 32 + +#define PROCESSOR_FEATURE_MAX 64 + +#define IO_NO_INCREMENT 0 + +#define WMIREG_ACTION_REGISTER 1 +#define WMIREG_ACTION_DEREGISTER 2 +#define WMIREG_ACTION_REREGISTER 3 +#define WMIREG_ACTION_UPDATE_GUIDS 4 + +#define WMIREGISTER 0 +#define WMIUPDATE 1 + +#ifdef CONFIG_X86_64 +#define wstdcall +#define wfastcall +#define noregparm + +#define KI_USER_SHARED_DATA 0xfffff78000000000UL + +#else + +#define noregparm __attribute__((regparm(0))) +#define wstdcall __attribute__((__stdcall__, regparm(0))) +#if defined(__GNUC__) && ((__GNUC__ == 3 && __GNUC_MINOR__ > 3) || __GNUC__ > 3) +#undef fastcall +#define wfastcall __attribute__((fastcall)) +#else +#error "gcc 3.4 or newer should be used for compiling this module" +#endif + +#define KI_USER_SHARED_DATA 0xffdf0000 + +#endif + +#define packed __attribute__((packed)) +#define no_warn_unused __attribute__((unused)) + +typedef u8 BOOLEAN; +typedef u8 BYTE; +typedef u8 *LPBYTE; +typedef s8 CHAR; +typedef u8 UCHAR; +typedef s16 SHORT; +typedef u16 USHORT; +typedef u16 WORD; +typedef s32 INT; +typedef u32 UINT; +typedef u32 DWORD; +typedef s32 LONG; +typedef u32 ULONG; +typedef s64 LONGLONG; +typedef u64 ULONGLONG; +typedef u64 ULONGULONG; +typedef u64 ULONG64; + +typedef CHAR CCHAR; +typedef USHORT wchar_t; +typedef SHORT CSHORT; +typedef LONGLONG LARGE_INTEGER; + +typedef LONG NTSTATUS; + +typedef LONG KPRIORITY; +typedef LARGE_INTEGER PHYSICAL_ADDRESS; +typedef UCHAR KIRQL; +typedef CHAR KPROCESSOR_MODE; + +/* ULONG_PTR is 32 bits on 32-bit platforms and 64 bits on 64-bit + * platform, which is same as 'unsigned long' in Linux */ +typedef unsigned long ULONG_PTR; + +typedef ULONG_PTR SIZE_T; +typedef ULONG_PTR KAFFINITY; +typedef ULONG ACCESS_MASK; + +typedef ULONG_PTR PFN_NUMBER; +typedef ULONG SECURITY_INFORMATION; + +/* non-negative numbers indicate success */ +#define NT_SUCCESS(status) ((NTSTATUS)(status) >= 0) + +struct ansi_string { + USHORT length; + USHORT max_length; + char *buf; +}; + +struct unicode_string { + USHORT length; + USHORT max_length; + wchar_t *buf; +}; + +struct nt_slist { + struct nt_slist *next; +}; + +#ifdef CONFIG_X86_64 +/* it is not clear how nt_slist_head is used to store pointer to + * slists and depth; here we assume 'align' field is used to store + * depth and 'region' field is used to store slist pointers */ +struct nt_slist_head { + union { + USHORT depth; + ULONGLONG align; + }; + union { + ULONGLONG region; + struct nt_slist *next; + }; +} __attribute__((aligned(16))); +typedef struct nt_slist_head nt_slist_header; +#else +union nt_slist_head { + ULONGLONG align; + struct { + struct nt_slist *next; + USHORT depth; + USHORT sequence; + }; +}; +typedef union nt_slist_head nt_slist_header; +#endif + +struct nt_list { + struct nt_list *next; + struct nt_list *prev; +}; + +typedef ULONG_PTR NT_SPIN_LOCK; + +enum kdpc_importance {LowImportance, MediumImportance, HighImportance}; + +struct kdpc; +typedef void (*DPC)(struct kdpc *kdpc, void *ctx, void *arg1, + void *arg2) wstdcall; +struct kdpc { + SHORT type; + UCHAR nr_cpu; + UCHAR importance; + struct nt_list list; + DPC func; + void *ctx; + void *arg1; + void *arg2; + union { + NT_SPIN_LOCK *lock; + /* 'lock' is not used; 'queued' represents whether + * kdpc is queued or not */ + int queued; + }; +}; + +enum pool_type { + NonPagedPool, PagedPool, NonPagedPoolMustSucceed, DontUseThisType, + NonPagedPoolCacheAligned, PagedPoolCacheAligned, + NonPagedPoolCacheAlignedMustS, MaxPoolType, + NonPagedPoolSession = 32, + PagedPoolSession = NonPagedPoolSession + 1, + NonPagedPoolMustSucceedSession = PagedPoolSession + 1, + DontUseThisTypeSession = NonPagedPoolMustSucceedSession + 1, + NonPagedPoolCacheAlignedSession = DontUseThisTypeSession + 1, + PagedPoolCacheAlignedSession = NonPagedPoolCacheAlignedSession + 1, + NonPagedPoolCacheAlignedMustSSession = PagedPoolCacheAlignedSession + 1 +}; + +enum memory_caching_type_orig { + MmFrameBufferCached = 2 +}; + +enum memory_caching_type { + MmNonCached = FALSE, MmCached = TRUE, + MmWriteCombined = MmFrameBufferCached, MmHardwareCoherentCached, + MmNonCachedUnordered, MmUSWCCached, MmMaximumCacheType +}; + +enum lock_operation { + IoReadAccess, IoWriteAccess, IoModifyAccess +}; + +enum mode { + KernelMode, UserMode, MaximumMode +}; + +struct mdl { + struct mdl *next; + CSHORT size; + CSHORT flags; + /* NdisFreeBuffer doesn't pass pool, so we store pool in + * unused field 'process' */ + union { + void *process; + void *pool; + }; + void *mappedsystemva; + void *startva; + ULONG bytecount; + ULONG byteoffset; +}; + +#define MDL_MAPPED_TO_SYSTEM_VA 0x0001 +#define MDL_PAGES_LOCKED 0x0002 +#define MDL_SOURCE_IS_NONPAGED_POOL 0x0004 +#define MDL_ALLOCATED_FIXED_SIZE 0x0008 +#define MDL_PARTIAL 0x0010 +#define MDL_PARTIAL_HAS_BEEN_MAPPED 0x0020 +#define MDL_IO_PAGE_READ 0x0040 +#define MDL_WRITE_OPERATION 0x0080 +#define MDL_PARENT_MAPPED_SYSTEM_VA 0x0100 +#define MDL_FREE_EXTRA_PTES 0x0200 +#define MDL_IO_SPACE 0x0800 +#define MDL_NETWORK_HEADER 0x1000 +#define MDL_MAPPING_CAN_FAIL 0x2000 +#define MDL_ALLOCATED_MUST_SUCCEED 0x4000 + +#define MDL_POOL_ALLOCATED 0x0400 +#define MDL_CACHE_ALLOCATED 0x8000 + +#define PAGE_START(ptr) ((void *)((ULONG_PTR)(ptr) & ~(PAGE_SIZE - 1))) +#define BYTE_OFFSET(ptr) ((ULONG)((ULONG_PTR)(ptr) & (PAGE_SIZE - 1))) + +#define MmGetMdlByteCount(mdl) ((mdl)->bytecount) +#define MmGetMdlVirtualAddress(mdl) ((mdl)->startva + (mdl)->byteoffset) +#define MmGetMdlByteOffset(mdl) ((mdl)->byteoffset) +#define MmGetSystemAddressForMdl(mdl) ((mdl)->mappedsystemva) +#define MmGetSystemAddressForMdlSafe(mdl, priority) ((mdl)->mappedsystemva) +#define MmGetMdlPfnArray(mdl) ((PFN_NUMBER *)(mdl + 1)) +#define MmInitializeMdl(mdl, baseva, length) \ +do { \ + (mdl)->next = NULL; \ + (mdl)->size = MmSizeOfMdl(baseva, length); \ + (mdl)->flags = 0; \ + (mdl)->startva = PAGE_START(baseva); \ + (mdl)->byteoffset = BYTE_OFFSET(baseva); \ + (mdl)->bytecount = length; \ + (mdl)->mappedsystemva = baseva; \ + TRACE4("%p %p %p %d %d", (mdl), baseva, (mdl)->startva, \ + (mdl)->byteoffset, length); \ +} while (0) + +struct kdevice_queue_entry { + struct nt_list list; + ULONG sort_key; + BOOLEAN inserted; +}; + +struct kdevice_queue { + USHORT type; + USHORT size; + struct nt_list list; + NT_SPIN_LOCK lock; + BOOLEAN busy; +}; + +struct wait_context_block { + struct kdevice_queue_entry wait_queue_entry; + void *device_routine; + void *device_context; + ULONG num_regs; + void *device_object; + void *current_irp; + void *buffer_chaining_dpc; +}; + +struct wait_block { + struct nt_list list; + struct task_struct *thread; + void *object; + int *wait_done; + USHORT wait_key; + USHORT wait_type; +}; + +struct dispatcher_header { + UCHAR type; + UCHAR absolute; + UCHAR size; + UCHAR inserted; + LONG signal_state; + struct nt_list wait_blocks; +}; + +enum event_type { + NotificationEvent, + SynchronizationEvent, +}; + +enum timer_type { + NotificationTimer = NotificationEvent, + SynchronizationTimer = SynchronizationEvent, +}; + +enum dh_type { + NotificationObject = NotificationEvent, + SynchronizationObject = SynchronizationEvent, + MutexObject, + SemaphoreObject, + ThreadObject, +}; + +enum wait_type { + WaitAll, WaitAny +}; + +/* objects that use dispatcher_header have it as the first field, so + * whenever we need to initialize dispatcher_header, we can convert + * that object into a nt_event and access dispatcher_header */ +struct nt_event { + struct dispatcher_header dh; +}; + +struct wrap_timer; + +#define WRAP_TIMER_MAGIC 47697249 + +struct nt_timer { + struct dispatcher_header dh; + /* We can't fit Linux timer in this structure. Instead of + * padding the nt_timer structure, we replace due_time field + * with *wrap_timer and allocate memory for it when nt_timer is + * initialized */ + union { + ULONGLONG due_time; + struct wrap_timer *wrap_timer; + }; + struct nt_list nt_timer_list; + struct kdpc *kdpc; + union { + LONG period; + LONG wrap_timer_magic; + }; +}; + +struct nt_mutex { + struct dispatcher_header dh; + struct nt_list list; + struct task_struct *owner_thread; + BOOLEAN abandoned; + BOOLEAN apc_disable; +}; + +struct nt_semaphore { + struct dispatcher_header dh; + LONG limit; +}; + +struct nt_thread { + struct dispatcher_header dh; + /* the rest in Windows is a long structure; since this + * structure is opaque to drivers, we just define what we + * need */ + int pid; + NTSTATUS status; + struct task_struct *task; + struct nt_list irps; + NT_SPIN_LOCK lock; + KPRIORITY prio; +}; + +#define set_object_type(dh, type) ((dh)->type = (type)) +#define is_notify_object(dh) ((dh)->type == NotificationObject) +#define is_synch_object(dh) ((dh)->type == SynchronizationObject) +#define is_mutex_object(dh) ((dh)->type == MutexObject) +#define is_semaphore_object(dh) ((dh)->type == SemaphoreObject) +#define is_nt_thread_object(dh) ((dh)->type == ThreadObject) + +#define IO_TYPE_ADAPTER 1 +#define IO_TYPE_CONTROLLER 2 +#define IO_TYPE_DEVICE 3 +#define IO_TYPE_DRIVER 4 +#define IO_TYPE_FILE 5 +#define IO_TYPE_IRP 6 +#define IO_TYPE_DEVICE_OBJECT_EXTENSION 13 + +struct irp; +struct dev_obj_ext; +struct driver_object; + +struct device_object { + CSHORT type; + USHORT size; + LONG ref_count; + struct driver_object *drv_obj; + struct device_object *next; + struct device_object *attached; + struct irp *current_irp; + void *io_timer; + ULONG flags; + ULONG characteristics; + void *vpb; + void *dev_ext; + CCHAR stack_count; + union { + struct nt_list queue_list; + struct wait_context_block wcb; + } queue; + ULONG align_req; + struct kdevice_queue dev_queue; + struct kdpc dpc; + ULONG active_threads; + void *security_desc; + struct nt_event lock; + USHORT sector_size; + USHORT spare1; + struct dev_obj_ext *dev_obj_ext; + void *reserved; +}; + +struct dev_obj_ext { + CSHORT type; + CSHORT size; + struct device_object *dev_obj; + struct device_object *attached_to; +}; + +struct io_status_block { + union { + NTSTATUS status; + void *pointer; + }; + ULONG_PTR info; +}; + +#ifdef CONFIG_X86_64 +struct io_status_block32 { + NTSTATUS status; + ULONG info; +}; +#endif + +#define DEVICE_TYPE ULONG + +struct driver_extension; + +typedef NTSTATUS driver_dispatch_t(struct device_object *dev_obj, + struct irp *irp) wstdcall; + +struct driver_object { + CSHORT type; + CSHORT size; + struct device_object *dev_obj; + ULONG flags; + void *start; + ULONG driver_size; + void *section; + struct driver_extension *drv_ext; + struct unicode_string name; + struct unicode_string *hardware_database; + void *fast_io_dispatch; + void *init; + void *start_io; + void (*unload)(struct driver_object *driver) wstdcall; + driver_dispatch_t *major_func[IRP_MJ_MAXIMUM_FUNCTION + 1]; +}; + +struct driver_extension { + struct driver_object *drv_obj; + NTSTATUS (*add_device)(struct driver_object *drv_obj, + struct device_object *dev_obj) wstdcall; + ULONG count; + struct unicode_string service_key_name; + struct nt_list custom_ext; +}; + +struct custom_ext { + struct nt_list list; + void *client_id; +}; + +struct wrap_bin_file; + +struct file_object { + CSHORT type; + CSHORT size; + struct device_object *dev_obj; + void *volume_parameter_block; + void *fs_context; + void *fs_context2; + void *section_object_pointer; + void *private_cache_map; + NTSTATUS final_status; + union { + struct file_object *related_file_object; + struct wrap_bin_file *wrap_bin_file; + }; + BOOLEAN lock_operation; + BOOLEAN delete_pending; + BOOLEAN read_access; + BOOLEAN write_access; + BOOLEAN delete_access; + BOOLEAN shared_read; + BOOLEAN shared_write; + BOOLEAN shared_delete; + ULONG flags; + struct unicode_string _name_; + LARGE_INTEGER current_byte_offset; + ULONG waiters; + ULONG busy; + void *last_lock; + struct nt_event lock; + struct nt_event event; + void *completion_context; +}; + +#ifdef CONFIG_X86_64 +#define POINTER_ALIGN __attribute__((aligned(8))) +#else +#define POINTER_ALIGN +#endif + +#define CACHE_ALIGN __attribute__((aligned(128))) + +enum system_power_state { + PowerSystemUnspecified = 0, + PowerSystemWorking, PowerSystemSleeping1, PowerSystemSleeping2, + PowerSystemSleeping3, PowerSystemHibernate, PowerSystemShutdown, + PowerSystemMaximum, +}; + +enum device_power_state { + PowerDeviceUnspecified = 0, + PowerDeviceD0, PowerDeviceD1, PowerDeviceD2, PowerDeviceD3, + PowerDeviceMaximum, +}; + +union power_state { + enum system_power_state system_state; + enum device_power_state device_state; +}; + +enum power_state_type { + SystemPowerState = 0, DevicePowerState, +}; + +enum power_action { + PowerActionNone = 0, + PowerActionReserved, PowerActionSleep, PowerActionHibernate, + PowerActionShutdown, PowerActionShutdownReset, PowerActionShutdownOff, + PowerActionWarmEject, +}; + +struct guid { + ULONG data1; + USHORT data2; + USHORT data3; + UCHAR data4[8]; +}; + +struct nt_interface { + USHORT size; + USHORT version; + void *context; + void (*reference)(void *context) wstdcall; + void (*dereference)(void *context) wstdcall; +}; + +enum interface_type { + InterfaceTypeUndefined = -1, Internal, Isa, Eisa, MicroChannel, + TurboChannel, PCIBus, VMEBus, NuBus, PCMCIABus, CBus, MPIBus, + MPSABus, ProcessorInternal, InternalPowerBus, PNPISABus, + PNPBus, MaximumInterfaceType, +}; + +#define CmResourceTypeNull 0 +#define CmResourceTypePort 1 +#define CmResourceTypeInterrupt 2 +#define CmResourceTypeMemory 3 +#define CmResourceTypeDma 4 +#define CmResourceTypeDeviceSpecific 5 +#define CmResourceTypeBusNumber 6 +#define CmResourceTypeMaximum 7 + +#define CmResourceTypeNonArbitrated 128 +#define CmResourceTypeConfigData 128 +#define CmResourceTypeDevicePrivate 129 +#define CmResourceTypePcCardConfig 130 +#define CmResourceTypeMfCardConfig 131 + +enum cm_share_disposition { + CmResourceShareUndetermined = 0, CmResourceShareDeviceExclusive, + CmResourceShareDriverExclusive, CmResourceShareShared +}; + +#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0 +#define CM_RESOURCE_INTERRUPT_LATCHED 1 +#define CM_RESOURCE_MEMORY_READ_WRITE 0x0000 +#define CM_RESOURCE_MEMORY_READ_ONLY 0x0001 +#define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002 +#define CM_RESOURCE_MEMORY_PREFETCHABLE 0x0004 + +#define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008 +#define CM_RESOURCE_MEMORY_24 0x0010 +#define CM_RESOURCE_MEMORY_CACHEABLE 0x0020 + +#define CM_RESOURCE_PORT_MEMORY 0x0000 +#define CM_RESOURCE_PORT_IO 0x0001 +#define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004 +#define CM_RESOURCE_PORT_12_BIT_DECODE 0x0008 +#define CM_RESOURCE_PORT_16_BIT_DECODE 0x0010 +#define CM_RESOURCE_PORT_POSITIVE_DECODE 0x0020 +#define CM_RESOURCE_PORT_PASSIVE_DECODE 0x0040 +#define CM_RESOURCE_PORT_WINDOW_DECODE 0x0080 + +#define CM_RESOURCE_DMA_8 0x0000 +#define CM_RESOURCE_DMA_16 0x0001 +#define CM_RESOURCE_DMA_32 0x0002 +#define CM_RESOURCE_DMA_8_AND_16 0x0004 +#define CM_RESOURCE_DMA_BUS_MASTER 0x0008 +#define CM_RESOURCE_DMA_TYPE_A 0x0010 +#define CM_RESOURCE_DMA_TYPE_B 0x0020 +#define CM_RESOURCE_DMA_TYPE_F 0x0040 + +#define MAX_RESOURCES 20 + +#pragma pack(push,4) +struct cm_partial_resource_descriptor { + UCHAR type; + UCHAR share; + USHORT flags; + union { + struct { + PHYSICAL_ADDRESS start; + ULONG length; + } generic; + struct { + PHYSICAL_ADDRESS start; + ULONG length; + } port; + struct { + ULONG level; + ULONG vector; + KAFFINITY affinity; + } interrupt; + struct { + PHYSICAL_ADDRESS start; + ULONG length; + } memory; + struct { + ULONG channel; + ULONG port; + ULONG reserved1; + } dma; + struct { + ULONG data[3]; + } device_private; + struct { + ULONG start; + ULONG length; + ULONG reserved; + } bus_number; + struct { + ULONG data_size; + ULONG reserved1; + ULONG reserved2; + } device_specific_data; + } u; +}; +#pragma pack(pop) + +struct cm_partial_resource_list { + USHORT version; + USHORT revision; + ULONG count; + struct cm_partial_resource_descriptor partial_descriptors[1]; +}; + +struct cm_full_resource_descriptor { + enum interface_type interface_type; + ULONG bus_number; + struct cm_partial_resource_list partial_resource_list; +}; + +struct cm_resource_list { + ULONG count; + struct cm_full_resource_descriptor list[1]; +}; + +enum file_info_class { + FileDirectoryInformation = 1, + FileBasicInformation = 4, + FileStandardInformation = 5, + FileNameInformation = 9, + FilePositionInformation = 14, + FileAlignmentInformation = 17, + FileNetworkOpenInformation = 34, + FileAttributeTagInformation = 35, + FileMaximumInformation = 41, +}; + +enum fs_info_class { + FileFsVolumeInformation = 1, + /* ... */ + FileFsMaximumInformation = 9, +}; + +enum device_relation_type { + BusRelations, EjectionRelations, PowerRelations, RemovalRelations, + TargetDeviceRelation, SingleBusRelations, +}; + +enum bus_query_id_type { + BusQueryDeviceID = 0, BusQueryHardwareIDs = 1, + BusQueryCompatibleIDs = 2, BusQueryInstanceID = 3, + BusQueryDeviceSerialNumber = 4, +}; + +enum device_text_type { + DeviceTextDescription = 0, DeviceTextLocationInformation = 1, +}; + +enum device_usage_notification_type { + DeviceUsageTypeUndefined, DeviceUsageTypePaging, + DeviceUsageTypeHibernation, DevbiceUsageTypeDumpFile, +}; + +#define METHOD_BUFFERED 0 +#define METHOD_IN_DIRECT 1 +#define METHOD_OUT_DIRECT 2 +#define METHOD_NEITHER 3 + +#define CTL_CODE(dev_type, func, method, access) \ + (((dev_type) << 16) | ((access) << 14) | ((func) << 2) | (method)) + +#define IO_METHOD_FROM_CTL_CODE(code) (code & 0x3) + +#ifndef CONFIG_X86_64 +#pragma pack(push,4) +#endif +struct io_stack_location { + UCHAR major_fn; + UCHAR minor_fn; + UCHAR flags; + UCHAR control; + union { + struct { + void *security_context; + ULONG options; + USHORT POINTER_ALIGN file_attributes; + USHORT share_access; + ULONG POINTER_ALIGN ea_length; + } create; + struct { + ULONG length; + ULONG POINTER_ALIGN key; + LARGE_INTEGER byte_offset; + } read; + struct { + ULONG length; + ULONG POINTER_ALIGN key; + LARGE_INTEGER byte_offset; + } write; + struct { + ULONG length; + enum file_info_class POINTER_ALIGN file_info_class; + } query_file; + struct { + ULONG length; + enum file_info_class POINTER_ALIGN file_info_class; + struct file_object *file_object; + union { + struct { + BOOLEAN replace_if_exists; + BOOLEAN advance_only; + }; + ULONG cluster_count; + void *delete_handle; + }; + } set_file; + struct { + ULONG length; + enum fs_info_class POINTER_ALIGN fs_info_class; + } query_volume; + struct { + ULONG output_buf_len; + ULONG POINTER_ALIGN input_buf_len; + ULONG POINTER_ALIGN code; + void *type3_input_buf; + } dev_ioctl; + struct { + SECURITY_INFORMATION security_info; + ULONG POINTER_ALIGN length; + } query_security; + struct { + SECURITY_INFORMATION security_info; + void *security_descriptor; + } set_security; + struct { + void *vpb; + struct device_object *device_object; + } mount_volume; + struct { + void *vpb; + struct device_object *device_object; + } verify_volume; + struct { + void *srb; + } scsi; + struct { + enum device_relation_type type; + } query_device_relations; + struct { + const struct guid *type; + USHORT size; + USHORT version; + struct nt_interface *intf; + void *intf_data; + } query_intf; + struct { + void *capabilities; + } device_capabilities; + struct { + void *io_resource_requirement_list; + } filter_resource_requirements; + struct { + ULONG which_space; + void *buffer; + ULONG offset; + ULONG POINTER_ALIGN length; + } read_write_config; + struct { + BOOLEAN lock; + } set_lock; + struct { + enum bus_query_id_type id_type; + } query_id; + struct { + enum device_text_type device_text_type; + ULONG POINTER_ALIGN locale_id; + } query_device_text; + struct { + BOOLEAN in_path; + BOOLEAN reserved[3]; + enum device_usage_notification_type POINTER_ALIGN type; + } usage_notification; + struct { + enum system_power_state power_state; + } wait_wake; + struct { + void *power_sequence; + } power_sequence; + struct { + ULONG sys_context; + enum power_state_type POINTER_ALIGN type; + union power_state POINTER_ALIGN state; + enum power_action POINTER_ALIGN shutdown_type; + } power; + struct { + struct cm_resource_list *allocated_resources; + struct cm_resource_list *allocated_resources_translated; + } start_device; + struct { + ULONG_PTR provider_id; + void *data_path; + ULONG buf_len; + void *buf; + } wmi; + struct { + void *arg1; + void *arg2; + void *arg3; + void *arg4; + } others; + } params; + struct device_object *dev_obj; + struct file_object *file_obj; + NTSTATUS (*completion_routine)(struct device_object *, + struct irp *, void *) wstdcall; + void *context; +}; +#ifndef CONFIG_X86_64 +#pragma pack(pop) +#endif + +struct kapc { + CSHORT type; + CSHORT size; + ULONG spare0; + struct nt_thread *thread; + struct nt_list list; + void *kernele_routine; + void *rundown_routine; + void *normal_routine; + void *normal_context; + void *sys_arg1; + void *sys_arg2; + CCHAR apc_state_index; + KPROCESSOR_MODE apc_mode; + BOOLEAN inserted; +}; + +#define IRP_NOCACHE 0x00000001 +#define IRP_SYNCHRONOUS_API 0x00000004 +#define IRP_ASSOCIATED_IRP 0x00000008 + +enum urb_state { + URB_INVALID = 1, URB_ALLOCATED, URB_SUBMITTED, + URB_COMPLETED, URB_FREE, URB_SUSPEND, URB_INT_UNLINKED }; + +struct wrap_urb { + struct nt_list list; + enum urb_state state; + struct nt_list complete_list; + unsigned int flags; + struct urb *urb; + struct irp *irp; +#ifdef USB_DEBUG + unsigned int id; +#endif +}; + +struct irp { + SHORT type; + USHORT size; + struct mdl *mdl; + ULONG flags; + union { + struct irp *master_irp; + LONG irp_count; + void *system_buffer; + } associated_irp; + struct nt_list thread_list; + struct io_status_block io_status; + KPROCESSOR_MODE requestor_mode; + BOOLEAN pending_returned; + CHAR stack_count; + CHAR current_location; + BOOLEAN cancel; + KIRQL cancel_irql; + CCHAR apc_env; + UCHAR alloc_flags; + struct io_status_block *user_status; + struct nt_event *user_event; + union { + struct { + void *user_apc_routine; + void *user_apc_context; + } async_params; + LARGE_INTEGER alloc_size; + } overlay; + void (*cancel_routine)(struct device_object *, struct irp *) wstdcall; + void *user_buf; + union { + struct { + union { + struct kdevice_queue_entry dev_q_entry; + struct { + void *driver_context[4]; + }; + }; + void *thread; + char *aux_buf; + struct { + struct nt_list list; + union { + struct io_stack_location *csl; + ULONG packet_type; + }; + }; + struct file_object *file_object; + } overlay; + union { + struct kapc apc; + /* space for apc is used for ndiswrapper + * specific fields */ + struct { + struct wrap_urb *wrap_urb; + struct wrap_device *wrap_device; + }; + }; + void *completion_key; + } tail; +}; + +#define IoSizeOfIrp(stack_count) \ + ((USHORT)(sizeof(struct irp) + \ + ((stack_count) * sizeof(struct io_stack_location)))) +#define IoGetCurrentIrpStackLocation(irp) \ + (irp)->tail.overlay.csl +#define IoGetNextIrpStackLocation(irp) \ + (IoGetCurrentIrpStackLocation(irp) - 1) +#define IoGetPreviousIrpStackLocation(irp) \ + (IoGetCurrentIrpStackLocation(irp) + 1) + +#define IoSetNextIrpStackLocation(irp) \ +do { \ + KIRQL _irql_; \ + IoAcquireCancelSpinLock(&_irql_); \ + (irp)->current_location--; \ + IoGetCurrentIrpStackLocation(irp)--; \ + IoReleaseCancelSpinLock(_irql_); \ +} while (0) + +#define IoSkipCurrentIrpStackLocation(irp) \ +do { \ + KIRQL _irql_; \ + IoAcquireCancelSpinLock(&_irql_); \ + (irp)->current_location++; \ + IoGetCurrentIrpStackLocation(irp)++; \ + IoReleaseCancelSpinLock(_irql_); \ +} while (0) + +static inline void +IoCopyCurrentIrpStackLocationToNext(struct irp *irp) +{ + struct io_stack_location *next; + next = IoGetNextIrpStackLocation(irp); + memcpy(next, IoGetCurrentIrpStackLocation(irp), + offsetof(struct io_stack_location, completion_routine)); + next->control = 0; +} + +static inline void +IoSetCompletionRoutine(struct irp *irp, void *routine, void *context, + BOOLEAN success, BOOLEAN error, BOOLEAN cancel) +{ + struct io_stack_location *irp_sl = IoGetNextIrpStackLocation(irp); + irp_sl->completion_routine = routine; + irp_sl->context = context; + irp_sl->control = 0; + if (success) + irp_sl->control |= SL_INVOKE_ON_SUCCESS; + if (error) + irp_sl->control |= SL_INVOKE_ON_ERROR; + if (cancel) + irp_sl->control |= SL_INVOKE_ON_CANCEL; +} + +#define IoMarkIrpPending(irp) \ + (IoGetCurrentIrpStackLocation((irp))->control |= SL_PENDING_RETURNED) +#define IoUnmarkIrpPending(irp) \ + (IoGetCurrentIrpStackLocation((irp))->control &= ~SL_PENDING_RETURNED) + +#define IRP_SL(irp, n) (((struct io_stack_location *)((irp) + 1)) + (n)) +#define IRP_DRIVER_CONTEXT(irp) (irp)->tail.overlay.driver_context +#define IoIrpThread(irp) ((irp)->tail.overlay.thread) + +#define IRP_URB(irp) \ + (union nt_urb *)(IoGetCurrentIrpStackLocation(irp)->params.others.arg1) + +#define IRP_WRAP_DEVICE(irp) (irp)->tail.wrap_device +#define IRP_WRAP_URB(irp) (irp)->tail.wrap_urb + +struct wmi_guid_reg_info { + struct guid *guid; + ULONG instance_count; + ULONG flags; +}; + +struct wmilib_context { + ULONG guid_count; + struct wmi_guid_reg_info *guid_list; + void *query_wmi_reg_info; + void *query_wmi_data_block; + void *set_wmi_data_block; + void *set_wmi_data_item; + void *execute_wmi_method; + void *wmi_function_control; +}; + +enum key_value_information_class { + KeyValueBasicInformation, KeyValueFullInformation, + KeyValuePartialInformation, KeyValueFullInformationAlign64, + KeyValuePartialInformationAlign64 +}; + +struct file_name_info { + ULONG length; + wchar_t *name; +}; + +struct file_std_info { + LARGE_INTEGER alloc_size; + LARGE_INTEGER eof; + ULONG num_links; + BOOLEAN delete_pending; + BOOLEAN dir; +}; + +enum nt_obj_type { + NT_OBJ_EVENT = 10, NT_OBJ_MUTEX, NT_OBJ_THREAD, NT_OBJ_TIMER, + NT_OBJ_SEMAPHORE, +}; + +enum common_object_type { + OBJECT_TYPE_NONE, OBJECT_TYPE_DEVICE, OBJECT_TYPE_DRIVER, + OBJECT_TYPE_NT_THREAD, OBJECT_TYPE_FILE, OBJECT_TYPE_CALLBACK, +}; + +struct common_object_header { + struct nt_list list; + enum common_object_type type; + UINT size; + UINT ref_count; + BOOLEAN close_in_process; + BOOLEAN permanent; + struct unicode_string name; +}; + +#define OBJECT_TO_HEADER(object) \ + (struct common_object_header *)((void *)(object) - \ + sizeof(struct common_object_header)) +#define OBJECT_SIZE(size) \ + ((size) + sizeof(struct common_object_header)) +#define HEADER_TO_OBJECT(hdr) \ + ((void *)(hdr) + sizeof(struct common_object_header)) +#define HANDLE_TO_OBJECT(handle) HEADER_TO_OBJECT(handle) +#define HANDLE_TO_HEADER(handle) (handle) + +enum work_queue_type { + CriticalWorkQueue, DelayedWorkQueue, HyperCriticalWorkQueue, + MaximumWorkQueue +}; + +typedef void (*NTOS_WORK_FUNC)(void *arg1, void *arg2) wstdcall; + +struct io_workitem { + enum work_queue_type type; + struct device_object *dev_obj; + NTOS_WORK_FUNC worker_routine; + void *context; +}; + +struct io_workitem_entry { + struct nt_list list; + struct io_workitem *io_workitem; +}; + +enum mm_page_priority { + LowPagePriority, NormalPagePriority = 16, HighPagePriority = 32 +}; + +enum kinterrupt_mode { + LevelSensitive, Latched +}; + +enum ntos_wait_reason { + Executive, FreePage, PageIn, PoolAllocation, DelayExecution, + Suspended, UserRequest, WrExecutive, WrFreePage, WrPageIn, + WrPoolAllocation, WrDelayExecution, WrSuspended, WrUserRequest, + WrEventPair, WrQueue, WrLpcReceive, WrLpcReply, WrVirtualMemory, + WrPageOut, WrRendezvous, Spare2, Spare3, Spare4, Spare5, Spare6, + WrKernel, MaximumWaitReason +}; + +typedef enum ntos_wait_reason KWAIT_REASON; + +typedef void *LOOKASIDE_ALLOC_FUNC(enum pool_type pool_type, + SIZE_T size, ULONG tag) wstdcall; +typedef void LOOKASIDE_FREE_FUNC(void *) wstdcall; + +struct npaged_lookaside_list { + nt_slist_header head; + USHORT depth; + USHORT maxdepth; + ULONG totalallocs; + union { + ULONG allocmisses; + ULONG allochits; + } u1; + ULONG totalfrees; + union { + ULONG freemisses; + ULONG freehits; + } u2; + enum pool_type pool_type; + ULONG tag; + ULONG size; + LOOKASIDE_ALLOC_FUNC *alloc_func; + LOOKASIDE_FREE_FUNC *free_func; + struct nt_list list; + ULONG lasttotallocs; + union { + ULONG lastallocmisses; + ULONG lastallochits; + } u3; + ULONG pad[2]; +#ifndef CONFIG_X86_64 + NT_SPIN_LOCK obsolete; +#endif +} +#ifdef CONFIG_X86_64 +CACHE_ALIGN +#endif +; + +enum device_registry_property { + DevicePropertyDeviceDescription, DevicePropertyHardwareID, + DevicePropertyCompatibleIDs, DevicePropertyBootConfiguration, + DevicePropertyBootConfigurationTranslated, + DevicePropertyClassName, DevicePropertyClassGuid, + DevicePropertyDriverKeyName, DevicePropertyManufacturer, + DevicePropertyFriendlyName, DevicePropertyLocationInformation, + DevicePropertyPhysicalDeviceObjectName, DevicePropertyBusTypeGuid, + DevicePropertyLegacyBusType, DevicePropertyBusNumber, + DevicePropertyEnumeratorName, DevicePropertyAddress, + DevicePropertyUINumber, DevicePropertyInstallState, + DevicePropertyRemovalPolicy +}; + +enum trace_information_class { + TraceIdClass, TraceHandleClass, TraceEnableFlagsClass, + TraceEnableLevelClass, GlobalLoggerHandleClass, EventLoggerHandleClass, + AllLoggerHandlesClass, TraceHandleByNameClass +}; + +struct kinterrupt; +typedef BOOLEAN (*PKSERVICE_ROUTINE)(struct kinterrupt *interrupt, + void *context) wstdcall; +typedef BOOLEAN (*PKSYNCHRONIZE_ROUTINE)(void *context) wstdcall; + +struct kinterrupt { + ULONG vector; + KAFFINITY cpu_mask; + NT_SPIN_LOCK lock; + NT_SPIN_LOCK *actual_lock; + BOOLEAN shared; + BOOLEAN save_fp; + union { + CHAR processor_number; +#ifdef CONFIG_DEBUG_SHIRQ + CHAR enabled; +#endif + } u; + PKSERVICE_ROUTINE isr; + void *isr_ctx; + struct nt_list list; + KIRQL irql; + KIRQL synch_irql; + enum kinterrupt_mode mode; +}; + +struct time_fields { + CSHORT year; + CSHORT month; + CSHORT day; + CSHORT hour; + CSHORT minute; + CSHORT second; + CSHORT milliseconds; + CSHORT weekday; +}; + +struct object_attributes { + ULONG length; + void *root_dir; + struct unicode_string *name; + ULONG attributes; + void *security_descr; + void *security_qos; +}; + +typedef void (*PCALLBACK_FUNCTION)(void *context, void *arg1, + void *arg2) wstdcall; + +struct callback_object; +struct callback_func { + PCALLBACK_FUNCTION func; + void *context; + struct nt_list list; + struct callback_object *object; +}; + +struct callback_object { + NT_SPIN_LOCK lock; + struct nt_list list; + struct nt_list callback_funcs; + BOOLEAN allow_multiple_callbacks; + struct object_attributes *attributes; +}; + +enum section_inherit { + ViewShare = 1, ViewUnmap = 2 +}; + +struct ksystem_time { + ULONG low_part; + LONG high1_time; + LONG high2_time; +}; + +enum nt_product_type { + nt_product_win_nt = 1, nt_product_lan_man_nt, nt_product_server +}; + +enum alt_arch_type { + arch_type_standard, arch_type_nex98x86, end_alternatives +}; + +struct kuser_shared_data { + ULONG tick_count; + ULONG tick_count_multiplier; + volatile struct ksystem_time interrupt_time; + volatile struct ksystem_time system_time; + volatile struct ksystem_time time_zone_bias; + USHORT image_number_low; + USHORT image_number_high; + wchar_t nt_system_root[260]; + ULONG max_stack_trace_depth; + ULONG crypto_exponent; + ULONG time_zone_id; + ULONG large_page_min; + ULONG reserved2[7]; + enum nt_product_type nt_product_type; + BOOLEAN product_type_is_valid; + ULONG nt_major_version; + ULONG nt_minor_version; + BOOLEAN processor_features[PROCESSOR_FEATURE_MAX]; + ULONG reserved1; + ULONG reserved3; + volatile LONG time_slip; + enum alt_arch_type alt_arch_type; + LARGE_INTEGER system_expiration_date; + ULONG suite_mask; + BOOLEAN kdbg_enabled; + volatile ULONG active_console; + volatile ULONG dismount_count; + ULONG com_plus_package; + ULONG last_system_rite_event_tick_count; + ULONG num_phys_pages; + BOOLEAN safe_boot_mode; + ULONG trace_log; + ULONGLONG fill0; + ULONGLONG sys_call[4]; + union { + volatile struct ksystem_time tick_count; + volatile ULONG64 tick_count_quad; + } tick; +}; + +#define REG_NONE (0) +#define REG_SZ (1) +#define REG_EXPAND_SZ (2) +#define REG_BINARY (3) +#define REG_DWORD (4) + +#define RTL_REGISTRY_ABSOLUTE 0 +#define RTL_REGISTRY_SERVICES 1 +#define RTL_REGISTRY_CONTROL 2 +#define RTL_REGISTRY_WINDOWS_NT 3 +#define RTL_REGISTRY_DEVICEMAP 4 +#define RTL_REGISTRY_USER 5 +#define RTL_REGISTRY_MAXIMUM 6 +#define RTL_REGISTRY_HANDLE 0x40000000 +#define RTL_REGISTRY_OPTIONAL 0x80000000 + +#define RTL_QUERY_REGISTRY_SUBKEY 0x00000001 +#define RTL_QUERY_REGISTRY_TOPKEY 0x00000002 +#define RTL_QUERY_REGISTRY_REQUIRED 0x00000004 +#define RTL_QUERY_REGISTRY_NOVALUE 0x00000008 +#define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010 +#define RTL_QUERY_REGISTRY_DIRECT 0x00000020 +#define RTL_QUERY_REGISTRY_DELETE 0x00000040 + +typedef NTSTATUS (*PRTL_QUERY_REGISTRY_ROUTINE)(wchar_t *name, ULONG type, + void *data, ULONG length, + void *context, + void *entry) wstdcall; + +struct rtl_query_registry_table { + PRTL_QUERY_REGISTRY_ROUTINE query_func; + ULONG flags; + wchar_t *name; + void *context; + ULONG def_type; + void *def_data; + ULONG def_length; +}; + +struct io_remove_lock { + BOOLEAN removed; + BOOLEAN reserved[3]; + LONG io_count; + struct nt_event remove_event; +}; + +struct io_error_log_packet { + UCHAR major_fn_code; + UCHAR retry_count; + USHORT dump_data_size; + USHORT nr_of_strings; + USHORT string_offset; + USHORT event_category; + NTSTATUS error_code; + ULONG unique_error_value; + NTSTATUS final_status; + ULONG sequence_number; + ULONG io_control_code; + LARGE_INTEGER device_offset; + ULONG dump_data[1]; +}; + +/* some of the functions below are slightly different from DDK's + * implementation; e.g., Insert functions return appropriate + * pointer */ + +/* instead of using Linux's lists, we implement list manipulation + * functions because nt_list is used by drivers and we don't want to + * worry about Linux's list being different from nt_list (right now + * they are same, but in future they could be different) */ + +static inline void InitializeListHead(struct nt_list *head) +{ + head->next = head->prev = head; +} + +static inline BOOLEAN IsListEmpty(struct nt_list *head) +{ + if (head == head->next) + return TRUE; + else + return FALSE; +} + +static inline void RemoveEntryList(struct nt_list *entry) +{ + entry->prev->next = entry->next; + entry->next->prev = entry->prev; +} + +static inline struct nt_list *RemoveHeadList(struct nt_list *head) +{ + struct nt_list *entry; + + entry = head->next; + if (entry == head) + return NULL; + else { + RemoveEntryList(entry); + return entry; + } +} + +static inline struct nt_list *RemoveTailList(struct nt_list *head) +{ + struct nt_list *entry; + + entry = head->prev; + if (entry == head) + return NULL; + else { + RemoveEntryList(entry); + return entry; + } +} + +static inline void InsertListEntry(struct nt_list *entry, struct nt_list *prev, + struct nt_list *next) +{ + next->prev = entry; + entry->next = next; + entry->prev = prev; + prev->next = entry; +} + +static inline struct nt_list *InsertHeadList(struct nt_list *head, + struct nt_list *entry) +{ + struct nt_list *ret; + + if (IsListEmpty(head)) + ret = NULL; + else + ret = head->next; + + InsertListEntry(entry, head, head->next); + return ret; +} + +static inline struct nt_list *InsertTailList(struct nt_list *head, + struct nt_list *entry) +{ + struct nt_list *ret; + + if (IsListEmpty(head)) + ret = NULL; + else + ret = head->prev; + + InsertListEntry(entry, head->prev, head); + return ret; +} + +#define nt_list_for_each(pos, head) \ + for (pos = (head)->next; pos != (head); pos = pos->next) + +#define nt_list_for_each_entry(pos, head, member) \ + for (pos = container_of((head)->next, typeof(*pos), member); \ + &pos->member != (head); \ + pos = container_of(pos->member.next, typeof(*pos), member)) + +#define nt_list_for_each_safe(pos, n, head) \ + for (pos = (head)->next, n = pos->next; pos != (head); \ + pos = n, n = pos->next) + +/* device object flags */ +#define DO_VERIFY_VOLUME 0x00000002 +#define DO_BUFFERED_IO 0x00000004 +#define DO_EXCLUSIVE 0x00000008 +#define DO_DIRECT_IO 0x00000010 +#define DO_MAP_IO_BUFFER 0x00000020 +#define DO_DEVICE_HAS_NAME 0x00000040 +#define DO_DEVICE_INITIALIZING 0x00000080 +#define DO_SYSTEM_BOOT_PARTITION 0x00000100 +#define DO_LONG_TERM_REQUESTS 0x00000200 +#define DO_NEVER_LAST_DEVICE 0x00000400 +#define DO_SHUTDOWN_REGISTERED 0x00000800 +#define DO_BUS_ENUMERATED_DEVICE 0x00001000 +#define DO_POWER_PAGABLE 0x00002000 +#define DO_POWER_INRUSH 0x00004000 +#define DO_LOW_PRIORITY_FILESYSTEM 0x00010000 + +/* Various supported device types (used with IoCreateDevice()) */ + +#define FILE_DEVICE_BEEP 0x00000001 +#define FILE_DEVICE_CD_ROM 0x00000002 +#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003 +#define FILE_DEVICE_CONTROLLER 0x00000004 +#define FILE_DEVICE_DATALINK 0x00000005 +#define FILE_DEVICE_DFS 0x00000006 +#define FILE_DEVICE_DISK 0x00000007 +#define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008 +#define FILE_DEVICE_FILE_SYSTEM 0x00000009 +#define FILE_DEVICE_INPORT_PORT 0x0000000A +#define FILE_DEVICE_KEYBOARD 0x0000000B +#define FILE_DEVICE_MAILSLOT 0x0000000C +#define FILE_DEVICE_MIDI_IN 0x0000000D +#define FILE_DEVICE_MIDI_OUT 0x0000000E +#define FILE_DEVICE_MOUSE 0x0000000F +#define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010 +#define FILE_DEVICE_NAMED_PIPE 0x00000011 +#define FILE_DEVICE_NETWORK 0x00000012 +#define FILE_DEVICE_NETWORK_BROWSER 0x00000013 +#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014 +#define FILE_DEVICE_NULL 0x00000015 +#define FILE_DEVICE_PARALLEL_PORT 0x00000016 +#define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017 +#define FILE_DEVICE_PRINTER 0x00000018 +#define FILE_DEVICE_SCANNER 0x00000019 +#define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001A +#define FILE_DEVICE_SERIAL_PORT 0x0000001B +#define FILE_DEVICE_SCREEN 0x0000001C +#define FILE_DEVICE_SOUND 0x0000001D +#define FILE_DEVICE_STREAMS 0x0000001E +#define FILE_DEVICE_TAPE 0x0000001F +#define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020 +#define FILE_DEVICE_TRANSPORT 0x00000021 +#define FILE_DEVICE_UNKNOWN 0x00000022 +#define FILE_DEVICE_VIDEO 0x00000023 +#define FILE_DEVICE_VIRTUAL_DISK 0x00000024 +#define FILE_DEVICE_WAVE_IN 0x00000025 +#define FILE_DEVICE_WAVE_OUT 0x00000026 +#define FILE_DEVICE_8042_PORT 0x00000027 +#define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028 +#define FILE_DEVICE_BATTERY 0x00000029 +#define FILE_DEVICE_BUS_EXTENDER 0x0000002A +#define FILE_DEVICE_MODEM 0x0000002B +#define FILE_DEVICE_VDM 0x0000002C +#define FILE_DEVICE_MASS_STORAGE 0x0000002D +#define FILE_DEVICE_SMB 0x0000002E +#define FILE_DEVICE_KS 0x0000002F +#define FILE_DEVICE_CHANGER 0x00000030 +#define FILE_DEVICE_SMARTCARD 0x00000031 +#define FILE_DEVICE_ACPI 0x00000032 +#define FILE_DEVICE_DVD 0x00000033 +#define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034 +#define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035 +#define FILE_DEVICE_DFS_VOLUME 0x00000036 +#define FILE_DEVICE_SERENUM 0x00000037 +#define FILE_DEVICE_TERMSRV 0x00000038 +#define FILE_DEVICE_KSEC 0x00000039 +#define FILE_DEVICE_FIPS 0x0000003A + +/* Device characteristics */ + +#define FILE_REMOVABLE_MEDIA 0x00000001 +#define FILE_READ_ONLY_DEVICE 0x00000002 +#define FILE_FLOPPY_DISKETTE 0x00000004 +#define FILE_WRITE_ONCE_MEDIA 0x00000008 +#define FILE_REMOTE_DEVICE 0x00000010 +#define FILE_DEVICE_IS_MOUNTED 0x00000020 +#define FILE_VIRTUAL_VOLUME 0x00000040 +#define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080 +#define FILE_DEVICE_SECURE_OPEN 0x00000100 + +#define FILE_READ_DATA 0x0001 +#define FILE_WRITE_DATA 0x0002 + +#define FILE_SUPERSEDED 0x00000000 +#define FILE_OPENED 0x00000001 +#define FILE_CREATED 0x00000002 +#define FILE_OVERWRITTEN 0x00000003 +#define FILE_EXISTS 0x00000004 +#define FILE_DOES_NOT_EXIST 0x00000005 + + +#endif /* WINNT_TYPES_H */ --- linux-2.6.35.orig/ubuntu/ndiswrapper/iw_ndis.c +++ linux-2.6.35/ubuntu/ndiswrapper/iw_ndis.c @@ -0,0 +1,1973 @@ + /* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "iw_ndis.h" +#include "wrapndis.h" + +static int freq_chan[] = { 2412, 2417, 2422, 2427, 2432, 2437, 2442, + 2447, 2452, 2457, 2462, 2467, 2472, 2484 }; + +static const char *network_names[] = {"IEEE 802.11FH", "IEEE 802.11b", + "IEEE 802.11a", "IEEE 802.11g", "Auto"}; + +int set_essid(struct ndis_device *wnd, const char *ssid, int ssid_len) +{ + NDIS_STATUS res; + struct ndis_essid req; + + if (ssid_len > NDIS_ESSID_MAX_SIZE) + return -EINVAL; + + memset(&req, 0, sizeof(req)); + req.length = ssid_len; + if (ssid_len) + memcpy(&req.essid, ssid, ssid_len); + + res = mp_set(wnd, OID_802_11_SSID, &req, sizeof(req)); + if (res) { + WARNING("setting essid failed (%08X)", res); + EXIT2(return -EINVAL); + } + memcpy(&wnd->essid, &req, sizeof(req)); + EXIT2(return 0); +} + +static int set_assoc_params(struct ndis_device *wnd) +{ + TRACE2("wpa_version=0x%x auth_alg=0x%x key_mgmt=0x%x " + "cipher_pairwise=0x%x cipher_group=0x%x", + wnd->iw_auth_wpa_version, wnd->iw_auth_80211_alg, + wnd->iw_auth_key_mgmt, wnd->iw_auth_cipher_pairwise, + wnd->iw_auth_cipher_group); + set_auth_mode(wnd); + set_priv_filter(wnd); + set_encr_mode(wnd); + return 0; +} + +static int iw_set_essid(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + char ssid[NDIS_ESSID_MAX_SIZE]; + int length; + + ENTER2(""); + memset(ssid, 0, sizeof(ssid)); + /* there is no way to turn off essid other than to set to + * random bytes; instead, we use off to mean any */ + if (wrqu->essid.flags) { + /* wireless-tools prior to version 20 add extra 1, and + * later than 20 don't! Deal with that mess */ + length = wrqu->essid.length - 1; + if (length > 0) + length--; + while (length < wrqu->essid.length && extra[length]) + length++; + TRACE2("%d", length); + if (length <= 0 || length > NDIS_ESSID_MAX_SIZE) + EXIT2(return -EINVAL); + } else + length = 0; + + set_assoc_params(wnd); + + memcpy(ssid, extra, length); + if (set_essid(wnd, ssid, length)) + EXIT2(return -EINVAL); + + EXIT2(return 0); +} + +static int iw_get_essid(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + NDIS_STATUS res; + struct ndis_essid req; + + ENTER2(""); + memset(&req, 0, sizeof(req)); + res = mp_query(wnd, OID_802_11_SSID, &req, sizeof(req)); + if (res) { + WARNING("getting essid failed (%08X)", res); + EXIT2(return -EOPNOTSUPP); + } + memcpy(extra, req.essid, req.length); + if (req.length > 0) + wrqu->essid.flags = 1; + else + wrqu->essid.flags = 0; + wrqu->essid.length = req.length; + EXIT2(return 0); +} + +int set_infra_mode(struct ndis_device *wnd, + enum ndis_infrastructure_mode mode) +{ + NDIS_STATUS res; + unsigned int i; + + ENTER2("%d", mode); + res = mp_query_int(wnd, OID_802_11_INFRASTRUCTURE_MODE, + &wnd->infrastructure_mode); + if (res != NDIS_STATUS_SUCCESS) { + WARNING("getting operating mode to failed (%08X)", res); + EXIT2(return -EINVAL); + } + if (wnd->infrastructure_mode == mode) + EXIT2(return 0); + res = mp_set_int(wnd, OID_802_11_INFRASTRUCTURE_MODE, mode); + if (res) { + WARNING("setting operating mode to %d failed (%08X)", + mode, res); + EXIT2(return -EINVAL); + } + /* NDIS drivers clear keys when infrastructure mode is + * changed. But Linux tools assume otherwise. So set the + * keys */ + if (wnd->iw_auth_key_mgmt == 0 || + wnd->iw_auth_key_mgmt == IW_AUTH_KEY_MGMT_802_1X) { + for (i = 0; i < MAX_ENCR_KEYS; i++) { + if (wnd->encr_info.keys[i].length > 0) + add_wep_key(wnd, wnd->encr_info.keys[i].key, + wnd->encr_info.keys[i].length, i); + } + } + wnd->infrastructure_mode = mode; + EXIT2(return 0); +} + +static int iw_set_infra_mode(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + enum ndis_infrastructure_mode ndis_mode; + + ENTER2("%d", wrqu->mode); + switch (wrqu->mode) { + case IW_MODE_ADHOC: + ndis_mode = Ndis802_11IBSS; + break; + case IW_MODE_INFRA: + ndis_mode = Ndis802_11Infrastructure; + break; + case IW_MODE_AUTO: + ndis_mode = Ndis802_11AutoUnknown; + break; + default: + EXIT2(return -EINVAL); + } + + if (set_infra_mode(wnd, ndis_mode)) + EXIT2(return -EINVAL); + + EXIT2(return 0); +} + +static int iw_get_infra_mode(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + int ndis_mode, iw_mode; + NDIS_STATUS res; + + ENTER2(""); + res = mp_query_int(wnd, OID_802_11_INFRASTRUCTURE_MODE, &ndis_mode); + if (res) { + WARNING("getting operating mode failed (%08X)", res); + EXIT2(return -EOPNOTSUPP); + } + + switch(ndis_mode) { + case Ndis802_11IBSS: + iw_mode = IW_MODE_ADHOC; + break; + case Ndis802_11Infrastructure: + iw_mode = IW_MODE_INFRA; + break; + case Ndis802_11AutoUnknown: + iw_mode = IW_MODE_AUTO; + break; + default: + ERROR("invalid operating mode (%u)", ndis_mode); + EXIT2(return -EINVAL); + } + wrqu->mode = iw_mode; + EXIT2(return 0); +} + +static const char *network_type_to_name(int net_type) +{ + if (net_type >= 0 && + net_type < (sizeof(network_names)/sizeof(network_names[0]))) + return network_names[net_type]; + else + return network_names[sizeof(network_names) / + sizeof(network_names[0]) - 1]; +} + +static int iw_get_network_type(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + unsigned int network_type; + NDIS_STATUS res; + + ENTER2(""); + res = mp_query_int(wnd, OID_802_11_NETWORK_TYPE_IN_USE, + &network_type); + if (res) { + WARNING("getting network type failed: %08X", res); + network_type = -1; + } + strncpy(wrqu->name, network_type_to_name(network_type), + sizeof(wrqu->name) - 1); + wrqu->name[sizeof(wrqu->name)-1] = 0; + return 0; +} + +static int iw_get_freq(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + NDIS_STATUS res; + struct ndis_configuration req; + + ENTER2(""); + memset(&req, 0, sizeof(req)); + res = mp_query(wnd, OID_802_11_CONFIGURATION, &req, sizeof(req)); + if (res) { + WARNING("getting configuration failed (%08X)", res); + EXIT2(return -EOPNOTSUPP); + } + + memset(&(wrqu->freq), 0, sizeof(struct iw_freq)); + + /* see comment in wireless.h above the "struct iw_freq" + definition for an explanation of this if + NOTE: 1000000 is due to the kHz + */ + if (req.ds_config > 1000000) { + wrqu->freq.m = req.ds_config / 10; + wrqu->freq.e = 1; + } + else + wrqu->freq.m = req.ds_config; + + /* convert from kHz to Hz */ + wrqu->freq.e += 3; + + return 0; +} + +static int iw_set_freq(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + NDIS_STATUS res; + struct ndis_configuration req; + + ENTER2(""); + /* this OID is valid only when not associated */ + if (netif_carrier_ok(wnd->net_dev)) + EXIT2(return 0); + memset(&req, 0, sizeof(req)); + res = mp_query(wnd, OID_802_11_CONFIGURATION, &req, sizeof(req)); + if (res) { + WARNING("getting configuration failed (%08X)", res); + EXIT2(return 0); + } + + if (wrqu->freq.m < 1000 && wrqu->freq.e == 0) { + if (wrqu->freq.m >= 1 && + wrqu->freq.m <= (sizeof(freq_chan) / sizeof(freq_chan[0]))) + req.ds_config = freq_chan[wrqu->freq.m - 1] * 1000; + else + return -EINVAL; + } else { + int i; + req.ds_config = wrqu->freq.m; + for (i = wrqu->freq.e; i > 0; i--) + req.ds_config *= 10; + req.ds_config /= 1000; + } + res = mp_set(wnd, OID_802_11_CONFIGURATION, &req, sizeof(req)); + if (res) + WARNING("setting configuration failed (%08X)", res); + return 0; +} + +static int iw_get_tx_power(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + ndis_tx_power_level ndis_power; + NDIS_STATUS res; + + ENTER2(""); + res = mp_query(wnd, OID_802_11_TX_POWER_LEVEL, + &ndis_power, sizeof(ndis_power)); + if (res) + return -EOPNOTSUPP; + wrqu->txpower.flags = IW_TXPOW_MWATT; + wrqu->txpower.disabled = 0; + wrqu->txpower.fixed = 0; + wrqu->txpower.value = ndis_power; + return 0; +} + +static int iw_set_tx_power(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + ndis_tx_power_level ndis_power; + NDIS_STATUS res; + + ENTER2(""); + if (wrqu->txpower.disabled) + ndis_power = 0; + else { + if (wrqu->txpower.flags == IW_TXPOW_MWATT) + ndis_power = wrqu->txpower.value; + else { // wrqu->txpower.flags == IW_TXPOW_DBM + if (wrqu->txpower.value > 20) + ndis_power = 128; + else if (wrqu->txpower.value < -43) + ndis_power = 127; + else { + signed char tmp; + tmp = wrqu->txpower.value; + tmp = -12 - tmp; + tmp <<= 2; + ndis_power = (unsigned char)tmp; + } + } + } + TRACE2("%d", ndis_power); + res = mp_set(wnd, OID_802_11_TX_POWER_LEVEL, + &ndis_power, sizeof(ndis_power)); + if (res) + EXIT2(return -EOPNOTSUPP); + if (ndis_power == 0) + res = disassociate(wnd, 0); + EXIT2(return 0); +} + +static int iw_get_bitrate(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + ULONG ndis_rate; + int res; + + ENTER2(""); + res = mp_query(wnd, OID_GEN_LINK_SPEED, &ndis_rate, sizeof(ndis_rate)); + if (res) { + WARNING("getting bitrate failed (%08X)", res); + ndis_rate = 0; + } + + wrqu->bitrate.value = ndis_rate * 100; + return 0; +} + +static int iw_set_bitrate(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + int i, n; + NDIS_STATUS res; + ndis_rates_ex rates; + + ENTER2(""); + if (wrqu->bitrate.fixed == 0) + EXIT2(return 0); + + res = mp_query_info(wnd, OID_802_11_SUPPORTED_RATES, &rates, + sizeof(rates), &n, NULL); + if (res) { + WARNING("getting bit rate failed (%08X)", res); + EXIT2(return 0); + } + for (i = 0; i < n; i++) { + if (rates[i] & 0x80) + continue; + if ((rates[i] & 0x7f) * 500000 > wrqu->bitrate.value) { + TRACE2("setting rate %d to 0", + (rates[i] & 0x7f) * 500000); + rates[i] = 0; + } + } + + res = mp_set(wnd, OID_802_11_DESIRED_RATES, &rates, n); + if (res) { + WARNING("setting bit rate failed (%08X)", res); + EXIT2(return 0); + } + + return 0; +} + +static int iw_set_dummy(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + /* Do nothing. Used for ioctls that are not implemented. */ + return 0; +} + +static int iw_get_rts_threshold(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + ndis_rts_threshold threshold; + NDIS_STATUS res; + + ENTER2(""); + res = mp_query(wnd, OID_802_11_RTS_THRESHOLD, + &threshold, sizeof(threshold)); + if (res) + return -EOPNOTSUPP; + + wrqu->rts.value = threshold; + return 0; +} + +static int iw_set_rts_threshold(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + ndis_rts_threshold threshold; + NDIS_STATUS res; + + ENTER2(""); + threshold = wrqu->rts.value; + res = mp_set(wnd, OID_802_11_RTS_THRESHOLD, + &threshold, sizeof(threshold)); + if (res == NDIS_STATUS_INVALID_DATA) + return -EINVAL; + if (res) + return -EOPNOTSUPP; + + return 0; +} + +static int iw_get_frag_threshold(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + ndis_fragmentation_threshold frag_threshold; + NDIS_STATUS res; + + ENTER2(""); + res = mp_query(wnd, OID_802_11_FRAGMENTATION_THRESHOLD, + &frag_threshold, sizeof(frag_threshold)); + if (res) + return -ENOTSUPP; + + wrqu->frag.value = frag_threshold; + return 0; +} + +static int iw_set_frag_threshold(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + ndis_rts_threshold threshold; + NDIS_STATUS res; + + ENTER2(""); + threshold = wrqu->frag.value; + res = mp_set(wnd, OID_802_11_FRAGMENTATION_THRESHOLD, + &threshold, sizeof(threshold)); + if (res == NDIS_STATUS_INVALID_DATA) + return -EINVAL; + if (res) + return -EOPNOTSUPP; + return 0; +} + +int get_ap_address(struct ndis_device *wnd, mac_address ap_addr) +{ + NDIS_STATUS res; + + res = mp_query(wnd, OID_802_11_BSSID, ap_addr, ETH_ALEN); + TRACE2(MACSTRSEP, MAC2STR(ap_addr)); + if (res) { + TRACE2("res: %08X", res); + memset(ap_addr, 0x0, ETH_ALEN); + EXIT2(return -EOPNOTSUPP); + } + EXIT2(return 0); +} + +static int iw_get_ap_address(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + mac_address ap_addr; + + ENTER2(""); + get_ap_address(wnd, ap_addr); + memcpy(wrqu->ap_addr.sa_data, ap_addr, ETH_ALEN); + wrqu->ap_addr.sa_family = ARPHRD_ETHER; + EXIT2(return 0); +} + +static int iw_set_ap_address(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + NDIS_STATUS res; + mac_address ap_addr; + + ENTER2(""); + memcpy(ap_addr, wrqu->ap_addr.sa_data, ETH_ALEN); + TRACE2(MACSTRSEP, MAC2STR(ap_addr)); + res = mp_set(wnd, OID_802_11_BSSID, ap_addr, ETH_ALEN); + /* user apps may set ap's mac address, which is not required; + * they may fail to work if this function fails, so return + * success */ + if (res) + WARNING("setting AP mac address failed (%08X)", res); + + EXIT2(return 0); +} + +int set_iw_auth_mode(struct ndis_device *wnd, int wpa_version, + int auth_80211_alg) +{ + NDIS_STATUS res; + ULONG auth_mode; + + ENTER2("%d, %d", wpa_version, auth_80211_alg); + if (wpa_version & IW_AUTH_WPA_VERSION_WPA2) { + if (wnd->iw_auth_key_mgmt & IW_AUTH_KEY_MGMT_802_1X) + auth_mode = Ndis802_11AuthModeWPA2; + else + auth_mode = Ndis802_11AuthModeWPA2PSK; + } else if (wpa_version & IW_AUTH_WPA_VERSION_WPA) { + if (wnd->iw_auth_key_mgmt & IW_AUTH_KEY_MGMT_802_1X) + auth_mode = Ndis802_11AuthModeWPA; + else if (wnd->iw_auth_key_mgmt & IW_AUTH_KEY_MGMT_PSK) + auth_mode = Ndis802_11AuthModeWPAPSK; + else + auth_mode = Ndis802_11AuthModeWPANone; + } else if (auth_80211_alg & IW_AUTH_ALG_SHARED_KEY) { + if (auth_80211_alg & IW_AUTH_ALG_OPEN_SYSTEM) + auth_mode = Ndis802_11AuthModeAutoSwitch; + else + auth_mode = Ndis802_11AuthModeShared; + } else + auth_mode = Ndis802_11AuthModeOpen; + + res = mp_set_int(wnd, OID_802_11_AUTHENTICATION_MODE, auth_mode); + if (res) { + WARNING("setting auth mode to %u failed (%08X)", + auth_mode, res); + if (res == NDIS_STATUS_INVALID_DATA) + EXIT2(return -EINVAL); + return -EOPNOTSUPP; + } + wnd->iw_auth_wpa_version = wpa_version; + wnd->iw_auth_80211_alg = auth_80211_alg; + EXIT2(return 0); +} + +int set_ndis_auth_mode(struct ndis_device *wnd, ULONG auth_mode) +{ + NDIS_STATUS res; + + ENTER2("%d", auth_mode); + res = mp_set_int(wnd, OID_802_11_AUTHENTICATION_MODE, auth_mode); + if (res) { + WARNING("setting auth mode to %u failed (%08X)", + auth_mode, res); + if (res == NDIS_STATUS_INVALID_DATA) + EXIT2(return -EINVAL); + return -EOPNOTSUPP; + } + switch (auth_mode) { + case Ndis802_11AuthModeWPA: + wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_WPA; + wnd->iw_auth_key_mgmt = IW_AUTH_KEY_MGMT_802_1X; + break; + case Ndis802_11AuthModeWPAPSK: + wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_WPA; + wnd->iw_auth_key_mgmt = IW_AUTH_KEY_MGMT_PSK; + case Ndis802_11AuthModeWPANone: + wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_DISABLED; + wnd->iw_auth_key_mgmt = IW_AUTH_KEY_MGMT_PSK; + break; + case Ndis802_11AuthModeWPA2: + wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_WPA2; + wnd->iw_auth_key_mgmt = IW_AUTH_KEY_MGMT_802_1X; + break; + case Ndis802_11AuthModeWPA2PSK: + wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_WPA2; + wnd->iw_auth_key_mgmt = IW_AUTH_KEY_MGMT_PSK; + break; + case Ndis802_11AuthModeOpen: + wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_DISABLED; + wnd->iw_auth_80211_alg = IW_AUTH_ALG_OPEN_SYSTEM; + break; + case Ndis802_11AuthModeShared: + wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_DISABLED; + wnd->iw_auth_80211_alg = IW_AUTH_ALG_SHARED_KEY; + break; + case Ndis802_11AuthModeAutoSwitch: + wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_DISABLED; + wnd->iw_auth_80211_alg = IW_AUTH_ALG_SHARED_KEY; + wnd->iw_auth_80211_alg |= IW_AUTH_ALG_OPEN_SYSTEM; + break; + default: + WARNING("invalid authentication algorithm: %d", auth_mode); + break; + } + EXIT2(return 0); +} + +int set_auth_mode(struct ndis_device *wnd) +{ + return set_iw_auth_mode(wnd, wnd->iw_auth_wpa_version, + wnd->iw_auth_80211_alg); +} + +int get_ndis_auth_mode(struct ndis_device *wnd) +{ + ULONG mode; + NDIS_STATUS res; + + res = mp_query_int(wnd, OID_802_11_AUTHENTICATION_MODE, &mode); + if (res) { + WARNING("getting authentication mode failed (%08X)", res); + EXIT2(return -EOPNOTSUPP); + } + TRACE2("%d", mode); + return mode; +} + +int set_iw_encr_mode(struct ndis_device *wnd, int cipher_pairwise, + int cipher_groupwise) +{ + NDIS_STATUS res; + ULONG ndis_mode; + + ENTER2("%d, %d", cipher_pairwise, cipher_groupwise); + if (cipher_pairwise & IW_AUTH_CIPHER_CCMP) + ndis_mode = Ndis802_11Encryption3Enabled; + else if (cipher_pairwise & IW_AUTH_CIPHER_TKIP) + ndis_mode = Ndis802_11Encryption2Enabled; + else if (cipher_pairwise & + (IW_AUTH_CIPHER_WEP40 | IW_AUTH_CIPHER_WEP104)) + ndis_mode = Ndis802_11Encryption1Enabled; + else if (cipher_groupwise & IW_AUTH_CIPHER_CCMP) + ndis_mode = Ndis802_11Encryption3Enabled; + else if (cipher_groupwise & IW_AUTH_CIPHER_TKIP) + ndis_mode = Ndis802_11Encryption2Enabled; + else + ndis_mode = Ndis802_11EncryptionDisabled; + + res = mp_set_int(wnd, OID_802_11_ENCRYPTION_STATUS, ndis_mode); + if (res) { + WARNING("setting encryption mode to %u failed (%08X)", + ndis_mode, res); + if (res == NDIS_STATUS_INVALID_DATA) + EXIT2(return -EINVAL); + return -EOPNOTSUPP; + } + wnd->iw_auth_cipher_pairwise = cipher_pairwise; + wnd->iw_auth_cipher_group = cipher_groupwise; + EXIT2(return 0); +} + +int set_encr_mode(struct ndis_device *wnd) +{ + return set_iw_encr_mode(wnd, wnd->iw_auth_cipher_pairwise, + wnd->iw_auth_cipher_group); +} + +int get_ndis_encr_mode(struct ndis_device *wnd) +{ + ULONG mode; + NDIS_STATUS res; + + ENTER2(""); + res = mp_query_int(wnd, OID_802_11_ENCRYPTION_STATUS, &mode); + if (res) { + WARNING("getting encryption status failed (%08X)", res); + EXIT2(return -EOPNOTSUPP); + } else + EXIT2(return mode); +} + +static int iw_get_encr(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + int index, mode; + struct encr_info *encr_info = &wnd->encr_info; + + ENTER2("wnd = %p", wnd); + wrqu->data.length = 0; + extra[0] = 0; + + index = (wrqu->encoding.flags & IW_ENCODE_INDEX); + TRACE2("index = %u", index); + if (index > 0) + index--; + else + index = encr_info->tx_key_index; + + if (index < 0 || index >= MAX_ENCR_KEYS) { + WARNING("encryption index out of range (%u)", index); + EXIT2(return -EINVAL); + } + + if (index != encr_info->tx_key_index) { + if (encr_info->keys[index].length > 0) { + wrqu->data.flags |= IW_ENCODE_ENABLED; + wrqu->data.length = encr_info->keys[index].length; + memcpy(extra, encr_info->keys[index].key, + encr_info->keys[index].length); + } + else + wrqu->data.flags |= IW_ENCODE_DISABLED; + + EXIT2(return 0); + } + + /* transmit key */ + mode = get_ndis_encr_mode(wnd); + if (mode < 0) + EXIT2(return -EOPNOTSUPP); + + if (mode == Ndis802_11EncryptionDisabled || + mode == Ndis802_11EncryptionNotSupported) + wrqu->data.flags |= IW_ENCODE_DISABLED; + else { + if (mode == Ndis802_11Encryption1KeyAbsent || + mode == Ndis802_11Encryption2KeyAbsent || + mode == Ndis802_11Encryption3KeyAbsent) + wrqu->data.flags |= IW_ENCODE_NOKEY; + else { + wrqu->data.flags |= IW_ENCODE_ENABLED; + wrqu->encoding.flags |= index+1; + wrqu->data.length = encr_info->keys[index].length; + memcpy(extra, encr_info->keys[index].key, + encr_info->keys[index].length); + } + } + mode = get_ndis_auth_mode(wnd); + if (mode < 0) + EXIT2(return -EOPNOTSUPP); + + if (mode == Ndis802_11AuthModeOpen) + wrqu->data.flags |= IW_ENCODE_OPEN; + else if (mode == Ndis802_11AuthModeAutoSwitch) + wrqu->data.flags |= IW_ENCODE_RESTRICTED; + else // Ndis802_11AuthModeAutoSwitch, Ndis802_11AuthModeWPA etc. + wrqu->data.flags |= IW_ENCODE_RESTRICTED; + + EXIT2(return 0); +} + +/* index must be 0 - N, as per NDIS */ +int add_wep_key(struct ndis_device *wnd, char *key, int key_len, + int index) +{ + struct ndis_encr_key ndis_key; + NDIS_STATUS res; + + ENTER2("key index: %d, length: %d", index, key_len); + if (key_len <= 0 || key_len > NDIS_ENCODING_TOKEN_MAX) { + WARNING("invalid key length (%d)", key_len); + EXIT2(return -EINVAL); + } + if (index < 0 || index >= MAX_ENCR_KEYS) { + WARNING("invalid key index (%d)", index); + EXIT2(return -EINVAL); + } + ndis_key.struct_size = sizeof(ndis_key); + ndis_key.length = key_len; + memcpy(&ndis_key.key, key, key_len); + ndis_key.index = index; + + if (index == wnd->encr_info.tx_key_index) { + ndis_key.index |= (1 << 31); + res = set_iw_encr_mode(wnd, IW_AUTH_CIPHER_WEP104, + IW_AUTH_CIPHER_NONE); + if (res) + WARNING("encryption couldn't be enabled (%08X)", res); + } + TRACE2("key %d: " MACSTRSEP, index, MAC2STR(key)); + res = mp_set(wnd, OID_802_11_ADD_WEP, &ndis_key, sizeof(ndis_key)); + if (res) { + WARNING("adding encryption key %d failed (%08X)", + index+1, res); + EXIT2(return -EINVAL); + } + + /* Atheros driver messes up ndis_key during ADD_WEP, so + * don't rely on that; instead use info in key and key_len */ + wnd->encr_info.keys[index].length = key_len; + memcpy(&wnd->encr_info.keys[index].key, key, key_len); + + EXIT2(return 0); +} + +/* remove_key is for both wep and wpa */ +static int remove_key(struct ndis_device *wnd, int index, + mac_address bssid) +{ + NDIS_STATUS res; + if (wnd->encr_info.keys[index].length == 0) + EXIT2(return 0); + wnd->encr_info.keys[index].length = 0; + memset(&wnd->encr_info.keys[index].key, 0, + sizeof(wnd->encr_info.keys[index].length)); + if (wnd->iw_auth_cipher_pairwise == IW_AUTH_CIPHER_TKIP || + wnd->iw_auth_cipher_pairwise == IW_AUTH_CIPHER_CCMP || + wnd->iw_auth_cipher_group == IW_AUTH_CIPHER_TKIP || + wnd->iw_auth_cipher_group == IW_AUTH_CIPHER_CCMP) { + struct ndis_remove_key remove_key; + remove_key.struct_size = sizeof(remove_key); + remove_key.index = index; + if (bssid) { + /* pairwise key */ + if (memcmp(bssid, "\xff\xff\xff\xff\xff\xff", + ETH_ALEN) != 0) + remove_key.index |= (1 << 30); + memcpy(remove_key.bssid, bssid, + sizeof(remove_key.bssid)); + } else + memset(remove_key.bssid, 0xff, + sizeof(remove_key.bssid)); + if (mp_set(wnd, OID_802_11_REMOVE_KEY, + &remove_key, sizeof(remove_key))) + EXIT2(return -EINVAL); + } else { + ndis_key_index keyindex = index; + res = mp_set_int(wnd, OID_802_11_REMOVE_WEP, keyindex); + if (res) { + WARNING("removing encryption key %d failed (%08X)", + keyindex, res); + EXIT2(return -EINVAL); + } + } + /* if it is transmit key, disable encryption */ + if (index == wnd->encr_info.tx_key_index) { + res = set_iw_encr_mode(wnd, IW_AUTH_CIPHER_NONE, + IW_AUTH_CIPHER_NONE); + if (res) + WARNING("changing encr status failed (%08X)", res); + } + TRACE2("key %d removed", index); + EXIT2(return 0); +} + +static int iw_set_wep(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + NDIS_STATUS res; + unsigned int index, key_len; + struct encr_info *encr_info = &wnd->encr_info; + unsigned char *key; + + ENTER2(""); + index = (wrqu->encoding.flags & IW_ENCODE_INDEX); + TRACE2("index = %u", index); + + /* iwconfig gives index as 1 - N */ + if (index > 0) + index--; + else + index = encr_info->tx_key_index; + + if (index < 0 || index >= MAX_ENCR_KEYS) { + WARNING("encryption index out of range (%u)", index); + EXIT2(return -EINVAL); + } + + /* remove key if disabled */ + if (wrqu->data.flags & IW_ENCODE_DISABLED) { + if (remove_key(wnd, index, NULL)) + EXIT2(return -EINVAL); + else + EXIT2(return 0); + } + + /* global encryption state (for all keys) */ + if (wrqu->data.flags & IW_ENCODE_OPEN) + res = set_ndis_auth_mode(wnd, Ndis802_11AuthModeOpen); + else // if (wrqu->data.flags & IW_ENCODE_RESTRICTED) + res = set_ndis_auth_mode(wnd, Ndis802_11AuthModeShared); + if (res) { + WARNING("setting authentication mode failed (%08X)", res); + EXIT2(return -EINVAL); + } + + TRACE2("key length: %d", wrqu->data.length); + + if (wrqu->data.length > 0) { + key_len = wrqu->data.length; + key = extra; + } else { // must be set as tx key + if (encr_info->keys[index].length == 0) { + WARNING("key %d is not set", index+1); + EXIT2(return -EINVAL); + } + key_len = encr_info->keys[index].length; + key = encr_info->keys[index].key; + encr_info->tx_key_index = index; + } + + if (add_wep_key(wnd, key, key_len, index)) + EXIT2(return -EINVAL); + + if (index == encr_info->tx_key_index) { + /* if transmit key is at index other than 0, some + * drivers, at least Atheros and TI, want another + * (global) non-transmit key to be set; don't know why */ + if (index != 0) { + int i; + for (i = 0; i < MAX_ENCR_KEYS; i++) + if (i != index && + encr_info->keys[i].length != 0) + break; + if (i == MAX_ENCR_KEYS) { + if (index == 0) + i = index + 1; + else + i = index - 1; + if (add_wep_key(wnd, key, key_len, i)) + WARNING("couldn't add broadcast key" + " at %d", i); + } + } + /* ndis drivers want essid to be set after setting encr */ + set_essid(wnd, wnd->essid.essid, wnd->essid.length); + } + EXIT2(return 0); +} + +static int iw_set_nick(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + + if (wrqu->data.length >= IW_ESSID_MAX_SIZE || wrqu->data.length <= 0) + return -EINVAL; + memcpy(wnd->nick, extra, wrqu->data.length); + wnd->nick[wrqu->data.length] = 0; + return 0; +} + +static int iw_get_nick(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + + wrqu->data.length = strlen(wnd->nick); + memcpy(extra, wnd->nick, wrqu->data.length); + return 0; +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27) && !defined(IW_REQUEST_FLAG_COMPAT) +#define iwe_stream_add_event(a, b, c, d, e) iwe_stream_add_event(b, c, d, e) +#define iwe_stream_add_point(a, b, c, d, e) iwe_stream_add_point(b, c, d, e) +#define iwe_stream_add_value(a, b, c, d, e, f) \ + iwe_stream_add_value(b, c, d, e, f) +#define iwe_stream_lcp_len(a) IW_EV_LCP_LEN +#endif + +static char *ndis_translate_scan(struct net_device *dev, + struct iw_request_info *info, char *event, + char *end_buf, void *item) +{ + struct iw_event iwe; + char *current_val; + int i, nrates; + unsigned char buf[MAX_WPA_IE_LEN * 2 + 30]; + struct ndis_wlan_bssid *bssid; + struct ndis_wlan_bssid_ex *bssid_ex; + + ENTER2("%p, %p", event, item); + bssid = item; + bssid_ex = item; + /* add mac address */ + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = SIOCGIWAP; + iwe.u.ap_addr.sa_family = ARPHRD_ETHER; + iwe.len = IW_EV_ADDR_LEN; + memcpy(iwe.u.ap_addr.sa_data, bssid->mac, ETH_ALEN); + event = iwe_stream_add_event(info, event, end_buf, &iwe, + IW_EV_ADDR_LEN); + + /* add essid */ + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = SIOCGIWESSID; + iwe.u.data.length = bssid->ssid.length; + if (iwe.u.data.length > IW_ESSID_MAX_SIZE) + iwe.u.data.length = IW_ESSID_MAX_SIZE; + iwe.u.data.flags = 1; + iwe.len = IW_EV_POINT_LEN + iwe.u.data.length; + event = iwe_stream_add_point(info, event, end_buf, &iwe, + bssid->ssid.essid); + + /* add protocol name */ + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = SIOCGIWNAME; + strncpy(iwe.u.name, network_type_to_name(bssid->net_type), IFNAMSIZ); + event = iwe_stream_add_event(info, event, end_buf, &iwe, + IW_EV_CHAR_LEN); + + /* add mode */ + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = SIOCGIWMODE; + if (bssid->mode == Ndis802_11IBSS) + iwe.u.mode = IW_MODE_ADHOC; + else if (bssid->mode == Ndis802_11Infrastructure) + iwe.u.mode = IW_MODE_INFRA; + else // if (bssid->mode == Ndis802_11AutoUnknown) + iwe.u.mode = IW_MODE_AUTO; + event = iwe_stream_add_event(info, event, end_buf, &iwe, + IW_EV_UINT_LEN); + + /* add freq */ + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = SIOCGIWFREQ; + iwe.u.freq.m = bssid->config.ds_config; + if (bssid->config.ds_config > 1000000) { + iwe.u.freq.m = bssid->config.ds_config / 10; + iwe.u.freq.e = 1; + } + else + iwe.u.freq.m = bssid->config.ds_config; + /* convert from kHz to Hz */ + iwe.u.freq.e += 3; + iwe.len = IW_EV_FREQ_LEN; + event = iwe_stream_add_event(info, event, end_buf, &iwe, + IW_EV_FREQ_LEN); + + /* add qual */ + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = IWEVQUAL; + i = 100 * (bssid->rssi - WL_NOISE) / (WL_SIGMAX - WL_NOISE); + if (i < 0) + i = 0; + else if (i > 100) + i = 100; + iwe.u.qual.level = bssid->rssi; + iwe.u.qual.noise = WL_NOISE; + iwe.u.qual.qual = i; + iwe.len = IW_EV_QUAL_LEN; + event = iwe_stream_add_event(info, event, end_buf, &iwe, + IW_EV_QUAL_LEN); + + /* add key info */ + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = SIOCGIWENCODE; + if (bssid->privacy == Ndis802_11PrivFilterAcceptAll) + iwe.u.data.flags = IW_ENCODE_DISABLED; + else + iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY; + iwe.u.data.length = 0; + iwe.len = IW_EV_POINT_LEN; + event = iwe_stream_add_point(info, event, end_buf, &iwe, + bssid->ssid.essid); + + /* add rate */ + memset(&iwe, 0, sizeof(iwe)); + current_val = event + iwe_stream_lcp_len(info); + iwe.cmd = SIOCGIWRATE; + if (bssid->length > sizeof(*bssid)) + nrates = NDIS_MAX_RATES_EX; + else + nrates = NDIS_MAX_RATES; + for (i = 0 ; i < nrates ; i++) { + if (bssid->rates[i] & 0x7f) { + iwe.u.bitrate.value = ((bssid->rates[i] & 0x7f) * + 500000); + current_val = iwe_stream_add_value(info, event, + current_val, + end_buf, &iwe, + IW_EV_PARAM_LEN); + } + } + + if ((current_val - event) > iwe_stream_lcp_len(info)) + event = current_val; + + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = IWEVCUSTOM; + sprintf(buf, "bcn_int=%d", bssid->config.beacon_period); + iwe.u.data.length = strlen(buf); + event = iwe_stream_add_point(info, event, end_buf, &iwe, buf); + + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = IWEVCUSTOM; + sprintf(buf, "atim=%u", bssid->config.atim_window); + iwe.u.data.length = strlen(buf); + event = iwe_stream_add_point(info, event, end_buf, &iwe, buf); + + TRACE2("%d, %u", bssid->length, (unsigned int)sizeof(*bssid)); + if (bssid->length > sizeof(*bssid)) { + unsigned char *iep = (unsigned char *)bssid_ex->ies + + sizeof(struct ndis_fixed_ies); + no_warn_unused unsigned char *end = iep + bssid_ex->ie_length; + + while (iep + 1 < end && iep + 2 + iep[1] <= end) { + unsigned char ielen = 2 + iep[1]; + + if (ielen > SSID_MAX_WPA_IE_LEN) { + iep += ielen; + continue; + } + if ((iep[0] == WLAN_EID_GENERIC && iep[1] >= 4 && + memcmp(iep + 2, "\x00\x50\xf2\x01", 4) == 0) || + iep[0] == RSN_INFO_ELEM) { + memset(&iwe, 0, sizeof(iwe)); + iwe.cmd = IWEVGENIE; + iwe.u.data.length = ielen; + event = iwe_stream_add_point(info, event, + end_buf, &iwe, + iep); + } + iep += ielen; + } + } + TRACE2("event = %p, current_val = %p", event, current_val); + EXIT2(return event); +} + +int set_scan(struct ndis_device *wnd) +{ + NDIS_STATUS res; + + ENTER2(""); + res = mp_set(wnd, OID_802_11_BSSID_LIST_SCAN, NULL, 0); + if (res) { + WARNING("scanning failed (%08X)", res); + EXIT2(return -EOPNOTSUPP); + } + wnd->scan_timestamp = jiffies; + EXIT2(return 0); +} + +static int iw_set_scan(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + return set_scan(wnd); +} + +static int iw_get_scan(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + unsigned int i, list_len, needed; + NDIS_STATUS res; + struct ndis_bssid_list *bssid_list = NULL; + char *event = extra; + struct ndis_wlan_bssid *cur_item ; + + ENTER2(""); + if (time_before(jiffies, wnd->scan_timestamp + 3 * HZ)) + return -EAGAIN; + /* try with space for a few scan items */ + list_len = sizeof(ULONG) + sizeof(struct ndis_wlan_bssid_ex) * 8; + bssid_list = kmalloc(list_len, GFP_KERNEL); + if (!bssid_list) { + ERROR("couldn't allocate memory"); + return -ENOMEM; + } + /* some drivers don't set bssid_list->num_items to 0 if + OID_802_11_BSSID_LIST returns no items (prism54 driver, e.g.,) */ + memset(bssid_list, 0, list_len); + + needed = 0; + res = mp_query_info(wnd, OID_802_11_BSSID_LIST, + bssid_list, list_len, NULL, &needed); + if (res == NDIS_STATUS_INVALID_LENGTH || + res == NDIS_STATUS_BUFFER_TOO_SHORT) { + /* now try with required space */ + kfree(bssid_list); + list_len = needed; + bssid_list = kmalloc(list_len, GFP_KERNEL); + if (!bssid_list) { + ERROR("couldn't allocate memory"); + return -ENOMEM; + } + memset(bssid_list, 0, list_len); + + res = mp_query(wnd, OID_802_11_BSSID_LIST, + bssid_list, list_len); + } + if (res) { + WARNING("getting BSSID list failed (%08X)", res); + kfree(bssid_list); + EXIT2(return -EOPNOTSUPP); + } + TRACE2("%d", bssid_list->num_items); + cur_item = &bssid_list->bssid[0]; + for (i = 0; i < bssid_list->num_items; i++) { + event = ndis_translate_scan(dev, info, event, + extra + IW_SCAN_MAX_DATA, cur_item); + cur_item = (struct ndis_wlan_bssid *)((char *)cur_item + + cur_item->length); + } + wrqu->data.length = event - extra; + wrqu->data.flags = 0; + kfree(bssid_list); + EXIT2(return 0); +} + +static int iw_set_power_mode(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + NDIS_STATUS res; + ULONG power_mode; + + if (wrqu->power.disabled == 1) + power_mode = NDIS_POWER_OFF; + else if (wrqu->power.flags & IW_POWER_MIN) + power_mode = NDIS_POWER_MIN; + else // if (wrqu->power.flags & IW_POWER_MAX) + power_mode = NDIS_POWER_MAX; + + TRACE2("%d", power_mode); + res = mp_set(wnd, OID_802_11_POWER_MODE, + &power_mode, sizeof(power_mode)); + if (res) + WARNING("setting power mode failed (%08X)", res); + return 0; +} + +static int iw_get_power_mode(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + NDIS_STATUS res; + ULONG power_mode; + + ENTER2(""); + res = mp_query(wnd, OID_802_11_POWER_MODE, + &power_mode, sizeof(power_mode)); + if (res) + return -ENOTSUPP; + + if (power_mode == NDIS_POWER_OFF) + wrqu->power.disabled = 1; + else { + if (wrqu->power.flags != 0) + return 0; + wrqu->power.flags |= IW_POWER_ALL_R; + wrqu->power.flags |= IW_POWER_TIMEOUT; + wrqu->power.value = 0; + wrqu->power.disabled = 0; + + if (power_mode == NDIS_POWER_MIN) + wrqu->power.flags |= IW_POWER_MIN; + else // if (power_mode == NDIS_POWER_MAX) + wrqu->power.flags |= IW_POWER_MAX; + } + return 0; +} + +static int iw_get_sensitivity(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + NDIS_STATUS res; + ndis_rssi rssi_trigger; + + ENTER2(""); + res = mp_query(wnd, OID_802_11_RSSI_TRIGGER, + &rssi_trigger, sizeof(rssi_trigger)); + if (res) + return -EOPNOTSUPP; + wrqu->param.value = rssi_trigger; + wrqu->param.disabled = (rssi_trigger == 0); + wrqu->param.fixed = 1; + return 0; +} + +static int iw_set_sensitivity(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + NDIS_STATUS res; + ndis_rssi rssi_trigger; + + ENTER2(""); + if (wrqu->param.disabled) + rssi_trigger = 0; + else + rssi_trigger = wrqu->param.value; + res = mp_set(wnd, OID_802_11_RSSI_TRIGGER, + &rssi_trigger, sizeof(rssi_trigger)); + if (res == NDIS_STATUS_INVALID_DATA) + return -EINVAL; + if (res) + return -EOPNOTSUPP; + return 0; +} + +static int iw_get_ndis_stats(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + struct iw_statistics *stats = &wnd->iw_stats; + memcpy(&wrqu->qual, &stats->qual, sizeof(stats->qual)); + return 0; +} + +static int iw_get_range(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct iw_range *range = (struct iw_range *)extra; + struct iw_point *data = &wrqu->data; + struct ndis_device *wnd = netdev_priv(dev); + unsigned int i, n; + NDIS_STATUS res; + ndis_rates_ex rates; + ndis_tx_power_level tx_power; + + ENTER2(""); + data->length = sizeof(struct iw_range); + memset(range, 0, sizeof(struct iw_range)); + + range->txpower_capa = IW_TXPOW_MWATT; + range->num_txpower = 0; + + res = mp_query(wnd, OID_802_11_TX_POWER_LEVEL, + &tx_power, sizeof(tx_power)); + if (!res) { + range->num_txpower = 1; + range->txpower[0] = tx_power; + } + + range->we_version_compiled = WIRELESS_EXT; + range->we_version_source = 18; + + range->retry_capa = IW_RETRY_LIMIT; + range->retry_flags = IW_RETRY_LIMIT; + range->min_retry = 0; + range->max_retry = 255; + + range->num_channels = 1; + + range->max_qual.qual = 100; + range->max_qual.level = 154; + range->max_qual.noise = 154; + range->sensitivity = 3; + + range->max_encoding_tokens = 4; + range->num_encoding_sizes = 2; + range->encoding_size[0] = 5; + range->encoding_size[1] = 13; + + range->num_bitrates = 0; + memset(&rates, 0, sizeof(rates)); + res = mp_query_info(wnd, OID_802_11_SUPPORTED_RATES, + &rates, sizeof(rates), &n, NULL); + if (res) + WARNING("getting bit rates failed: %08X", res); + else { + for (i = 0; i < n && range->num_bitrates < IW_MAX_BITRATES; i++) + if (rates[i] & 0x80) + continue; + else if (rates[i] & 0x7f) { + range->bitrate[range->num_bitrates] = + (rates[i] & 0x7f) * 500000; + range->num_bitrates++; + } + } + + range->num_channels = (sizeof(freq_chan)/sizeof(freq_chan[0])); + + for (i = 0; i < (sizeof(freq_chan)/sizeof(freq_chan[0])) && + i < IW_MAX_FREQUENCIES; i++) { + range->freq[i].i = i + 1; + range->freq[i].m = freq_chan[i] * 100000; + range->freq[i].e = 1; + } + range->num_frequency = i; + + range->min_rts = 0; + range->max_rts = 2347; + range->min_frag = 256; + range->max_frag = 2346; + + /* Event capability (kernel + driver) */ + range->event_capa[0] = (IW_EVENT_CAPA_K_0 | + IW_EVENT_CAPA_MASK(SIOCGIWTHRSPY) | + IW_EVENT_CAPA_MASK(SIOCGIWAP) | + IW_EVENT_CAPA_MASK(SIOCGIWSCAN)); + range->event_capa[1] = IW_EVENT_CAPA_K_1; + range->event_capa[4] = (IW_EVENT_CAPA_MASK(IWEVTXDROP) | + IW_EVENT_CAPA_MASK(IWEVCUSTOM) | + IW_EVENT_CAPA_MASK(IWEVREGISTERED) | + IW_EVENT_CAPA_MASK(IWEVEXPIRED)); + + range->enc_capa = 0; + + if (test_bit(Ndis802_11Encryption2Enabled, &wnd->capa.encr)) + range->enc_capa |= IW_ENC_CAPA_CIPHER_TKIP; + if (test_bit(Ndis802_11Encryption3Enabled, &wnd->capa.encr)) + range->enc_capa |= IW_ENC_CAPA_CIPHER_CCMP; + + if (test_bit(Ndis802_11AuthModeWPA, &wnd->capa.auth) || + test_bit(Ndis802_11AuthModeWPAPSK, &wnd->capa.auth)) + range->enc_capa |= IW_ENC_CAPA_WPA; + if (test_bit(Ndis802_11AuthModeWPA2, &wnd->capa.auth) || + test_bit(Ndis802_11AuthModeWPA2PSK, &wnd->capa.auth)) + range->enc_capa |= IW_ENC_CAPA_WPA2; + + return 0; +} + +void set_default_iw_params(struct ndis_device *wnd) +{ + wnd->iw_auth_key_mgmt = 0; + wnd->iw_auth_wpa_version = 0; + set_infra_mode(wnd, Ndis802_11Infrastructure); + set_ndis_auth_mode(wnd, Ndis802_11AuthModeOpen); + set_priv_filter(wnd); + set_iw_encr_mode(wnd, IW_AUTH_CIPHER_NONE, IW_AUTH_CIPHER_NONE); +} + +static int deauthenticate(struct ndis_device *wnd) +{ + int ret; + + ENTER2(""); + ret = disassociate(wnd, 1); + set_default_iw_params(wnd); + EXIT2(return ret); +} + +NDIS_STATUS disassociate(struct ndis_device *wnd, int reset_ssid) +{ + NDIS_STATUS res; + u8 buf[NDIS_ESSID_MAX_SIZE]; + int i; + + TRACE2(""); + res = mp_set(wnd, OID_802_11_DISASSOCIATE, NULL, 0); + /* disassociate causes radio to be turned off; if reset_ssid + * is given, set ssid to random to enable radio */ + if (reset_ssid) { + get_random_bytes(buf, sizeof(buf)); + for (i = 0; i < sizeof(buf); i++) + buf[i] = 'a' + (buf[i] % 26); + set_essid(wnd, buf, sizeof(buf)); + } + return res; +} + +static ULONG ndis_priv_mode(struct ndis_device *wnd) +{ + if (wnd->iw_auth_wpa_version & IW_AUTH_WPA_VERSION_WPA2 || + wnd->iw_auth_wpa_version & IW_AUTH_WPA_VERSION_WPA) + return Ndis802_11PrivFilter8021xWEP; + else + return Ndis802_11PrivFilterAcceptAll; +} + +int set_priv_filter(struct ndis_device *wnd) +{ + NDIS_STATUS res; + ULONG flags; + + flags = ndis_priv_mode(wnd); + ENTER2("filter: %d", flags); + res = mp_set_int(wnd, OID_802_11_PRIVACY_FILTER, flags); + if (res) + TRACE2("setting privacy filter to %d failed (%08X)", + flags, res); + EXIT2(return 0); +} + +static int iw_set_mlme(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + struct iw_mlme *mlme = (struct iw_mlme *)extra; + + ENTER2(""); + switch (mlme->cmd) { + case IW_MLME_DEAUTH: + return deauthenticate(wnd); + case IW_MLME_DISASSOC: + TRACE2("cmd=%d reason_code=%d", mlme->cmd, mlme->reason_code); + return disassociate(wnd, 1); + default: + return -EOPNOTSUPP; + } + + return 0; +} + +static int iw_set_genie(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + /* + * NDIS drivers do not allow IEs to be configured; this is + * done by the driver based on other configuration. Return 0 + * to avoid causing issues with user space programs that + * expect this function to succeed. + */ + return 0; +} + +static int iw_set_auth(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + TRACE2("index=%d value=%d", wrqu->param.flags & IW_AUTH_INDEX, + wrqu->param.value); + switch (wrqu->param.flags & IW_AUTH_INDEX) { + case IW_AUTH_WPA_VERSION: + wnd->iw_auth_wpa_version = wrqu->param.value; + break; + case IW_AUTH_CIPHER_PAIRWISE: + wnd->iw_auth_cipher_pairwise = wrqu->param.value; + break; + case IW_AUTH_CIPHER_GROUP: + wnd->iw_auth_cipher_group = wrqu->param.value; + break; + case IW_AUTH_KEY_MGMT: + wnd->iw_auth_key_mgmt = wrqu->param.value; + break; + case IW_AUTH_80211_AUTH_ALG: + wnd->iw_auth_80211_alg = wrqu->param.value; + break; + case IW_AUTH_WPA_ENABLED: + if (wrqu->param.value) + deauthenticate(wnd); + break; + case IW_AUTH_TKIP_COUNTERMEASURES: + case IW_AUTH_DROP_UNENCRYPTED: + case IW_AUTH_RX_UNENCRYPTED_EAPOL: + case IW_AUTH_PRIVACY_INVOKED: + TRACE2("%d not implemented: %d", + wrqu->param.flags & IW_AUTH_INDEX, wrqu->param.value); + break; + default: + WARNING("invalid cmd %d", wrqu->param.flags & IW_AUTH_INDEX); + return -EOPNOTSUPP; + } + return 0; +} + +static int iw_get_auth(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + + ENTER2("index=%d", wrqu->param.flags & IW_AUTH_INDEX); + switch (wrqu->param.flags & IW_AUTH_INDEX) { + case IW_AUTH_WPA_VERSION: + wrqu->param.value = wnd->iw_auth_wpa_version; + break; + case IW_AUTH_CIPHER_PAIRWISE: + wrqu->param.value = wnd->iw_auth_cipher_pairwise; + break; + case IW_AUTH_CIPHER_GROUP: + wrqu->param.value = wnd->iw_auth_cipher_group; + break; + case IW_AUTH_KEY_MGMT: + wrqu->param.value = wnd->iw_auth_key_mgmt; + break; + case IW_AUTH_80211_AUTH_ALG: + wrqu->param.value = wnd->iw_auth_80211_alg; + break; + default: + WARNING("invalid cmd %d", wrqu->param.flags & IW_AUTH_INDEX); + return -EOPNOTSUPP; + } + return 0; +} + +static int iw_set_encodeext(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct iw_encode_ext *ext = (struct iw_encode_ext *)extra; + struct ndis_device *wnd = netdev_priv(dev); + struct ndis_add_key ndis_key; + int i, keyidx; + NDIS_STATUS res; + u8 *addr; + + keyidx = wrqu->encoding.flags & IW_ENCODE_INDEX; + ENTER2("%d", keyidx); + if (keyidx) + keyidx--; + else + keyidx = wnd->encr_info.tx_key_index; + + if (keyidx < 0 || keyidx >= MAX_ENCR_KEYS) + return -EINVAL; + + if (ext->alg == WPA_ALG_WEP) { + if (!test_bit(Ndis802_11Encryption1Enabled, &wnd->capa.encr)) + EXIT2(return -1); + if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) + wnd->encr_info.tx_key_index = keyidx; + if (add_wep_key(wnd, ext->key, ext->key_len, keyidx)) + EXIT2(return -1); + else + EXIT2(return 0); + } + if ((wrqu->encoding.flags & IW_ENCODE_DISABLED) || + ext->alg == IW_ENCODE_ALG_NONE || ext->key_len == 0) + EXIT2(return remove_key(wnd, keyidx, ndis_key.bssid)); + + if (ext->key_len > sizeof(ndis_key.key)) { + TRACE2("incorrect key length (%u)", ext->key_len); + EXIT2(return -1); + } + + memset(&ndis_key, 0, sizeof(ndis_key)); + + ndis_key.struct_size = + sizeof(ndis_key) - sizeof(ndis_key.key) + ext->key_len; + ndis_key.length = ext->key_len; + ndis_key.index = keyidx; + + if (ext->ext_flags & IW_ENCODE_EXT_RX_SEQ_VALID) { + for (i = 0; i < 6 ; i++) + ndis_key.rsc |= (((u64)ext->rx_seq[i]) << (i * 8)); + TRACE2("0x%Lx", ndis_key.rsc); + ndis_key.index |= 1 << 29; + } + + addr = ext->addr.sa_data; + if (ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) { + /* group key */ + if (wnd->infrastructure_mode == Ndis802_11IBSS) + memset(ndis_key.bssid, 0xff, ETH_ALEN); + else + get_ap_address(wnd, ndis_key.bssid); + } else { + /* pairwise key */ + ndis_key.index |= (1 << 30); + memcpy(ndis_key.bssid, addr, ETH_ALEN); + } + TRACE2(MACSTRSEP, MAC2STR(ndis_key.bssid)); + + if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) + ndis_key.index |= (1 << 31); + + if (ext->alg == IW_ENCODE_ALG_TKIP && ext->key_len == 32) { + /* wpa_supplicant gives us the Michael MIC RX/TX keys in + * different order than NDIS spec, so swap the order here. */ + memcpy(ndis_key.key, ext->key, 16); + memcpy(ndis_key.key + 16, ext->key + 24, 8); + memcpy(ndis_key.key + 24, ext->key + 16, 8); + } else + memcpy(ndis_key.key, ext->key, ext->key_len); + + res = mp_set(wnd, OID_802_11_ADD_KEY, &ndis_key, ndis_key.struct_size); + if (res) { + TRACE2("adding key failed (%08X), %u", + res, ndis_key.struct_size); + EXIT2(return -1); + } + wnd->encr_info.keys[keyidx].length = ext->key_len; + memcpy(&wnd->encr_info.keys[keyidx].key, ndis_key.key, ext->key_len); + if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) + wnd->encr_info.tx_key_index = keyidx; + TRACE2("key %d added", keyidx); + + EXIT2(return 0); +} + +static int iw_get_encodeext(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + /* struct iw_encode_ext *ext = (struct iw_encode_ext *) extra; */ + /* TODO */ + ENTER2(""); + return 0; +} + +static int iw_set_pmksa(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct iw_pmksa *pmksa = (struct iw_pmksa *)extra; + struct ndis_pmkid pmkid; + NDIS_STATUS res; + struct ndis_device *wnd = netdev_priv(dev); + + /* TODO: must keep local list of PMKIDs since NDIS drivers + * expect that all PMKID entries are included whenever a new + * one is added. */ + + ENTER2("%d", pmksa->cmd); + if ((pmksa->cmd == IW_PMKSA_ADD || pmksa->cmd == IW_PMKSA_REMOVE) && + (!(wnd->iw_auth_wpa_version & IW_AUTH_WPA_VERSION_WPA2))) + EXIT2(return -EOPNOTSUPP); + + memset(&pmkid, 0, sizeof(pmkid)); + if (pmksa->cmd == IW_PMKSA_ADD) { + pmkid.bssid_info_count = 1; + memcpy(pmkid.bssid_info[0].bssid, pmksa->bssid.sa_data, + ETH_ALEN); + memcpy(pmkid.bssid_info[0].pmkid, pmksa->pmkid, IW_PMKID_LEN); + } + pmkid.length = sizeof(pmkid); + + res = mp_set(wnd, OID_802_11_PMKID, &pmkid, pmkid.length); + if (res == NDIS_STATUS_FAILURE) + EXIT2(return -EOPNOTSUPP); + TRACE2("OID_802_11_PMKID -> %d", res); + if (res) + return -EINVAL; + + return 0; +} + +#define WEXT(id) [id - SIOCIWFIRST] + +static const iw_handler ndis_handler[] = { + WEXT(SIOCGIWNAME) = iw_get_network_type, + WEXT(SIOCSIWESSID) = iw_set_essid, + WEXT(SIOCGIWESSID) = iw_get_essid, + WEXT(SIOCSIWMODE) = iw_set_infra_mode, + WEXT(SIOCGIWMODE) = iw_get_infra_mode, + WEXT(SIOCGIWFREQ) = iw_get_freq, + WEXT(SIOCSIWFREQ) = iw_set_freq, + WEXT(SIOCGIWTXPOW) = iw_get_tx_power, + WEXT(SIOCSIWTXPOW) = iw_set_tx_power, + WEXT(SIOCGIWRATE) = iw_get_bitrate, + WEXT(SIOCSIWRATE) = iw_set_bitrate, + WEXT(SIOCGIWRTS) = iw_get_rts_threshold, + WEXT(SIOCSIWRTS) = iw_set_rts_threshold, + WEXT(SIOCGIWFRAG) = iw_get_frag_threshold, + WEXT(SIOCSIWFRAG) = iw_set_frag_threshold, + WEXT(SIOCGIWAP) = iw_get_ap_address, + WEXT(SIOCSIWAP) = iw_set_ap_address, + WEXT(SIOCSIWENCODE) = iw_set_wep, + WEXT(SIOCGIWENCODE) = iw_get_encr, + WEXT(SIOCSIWSCAN) = iw_set_scan, + WEXT(SIOCGIWSCAN) = iw_get_scan, + WEXT(SIOCGIWPOWER) = iw_get_power_mode, + WEXT(SIOCSIWPOWER) = iw_set_power_mode, + WEXT(SIOCGIWRANGE) = iw_get_range, + WEXT(SIOCGIWSTATS) = iw_get_ndis_stats, + WEXT(SIOCGIWSENS) = iw_get_sensitivity, + WEXT(SIOCSIWSENS) = iw_set_sensitivity, + WEXT(SIOCGIWNICKN) = iw_get_nick, + WEXT(SIOCSIWNICKN) = iw_set_nick, + WEXT(SIOCSIWCOMMIT) = iw_set_dummy, + WEXT(SIOCSIWMLME) = iw_set_mlme, + WEXT(SIOCSIWGENIE) = iw_set_genie, + WEXT(SIOCSIWAUTH) = iw_set_auth, + WEXT(SIOCGIWAUTH) = iw_get_auth, + WEXT(SIOCSIWENCODEEXT) = iw_set_encodeext, + WEXT(SIOCGIWENCODEEXT) = iw_get_encodeext, + WEXT(SIOCSIWPMKSA) = iw_set_pmksa, +}; + +/* private ioctl's */ + +static int priv_reset(struct net_device *dev, struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + int res; + ENTER2(""); + res = mp_reset(netdev_priv(dev)); + if (res) { + WARNING("reset failed: %08X", res); + return -EOPNOTSUPP; + } + return 0; +} + +static int priv_deauthenticate(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + int res; + ENTER2(""); + res = deauthenticate(netdev_priv(dev)); + return res; +} + +static int priv_power_profile(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + struct miniport *mp; + ULONG profile_inf; + + ENTER2(""); + mp = &wnd->wd->driver->ndis_driver->mp; + if (!mp->pnp_event_notify) + EXIT2(return -EOPNOTSUPP); + + /* 1 for AC and 0 for Battery */ + if (wrqu->param.value) + profile_inf = NdisPowerProfileAcOnLine; + else + profile_inf = NdisPowerProfileBattery; + + LIN2WIN4(mp->pnp_event_notify, wnd->nmb->mp_ctx, + NdisDevicePnPEventPowerProfileChanged, + &profile_inf, sizeof(profile_inf)); + EXIT2(return 0); +} + +static int priv_network_type(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + enum network_type network_type; + NDIS_STATUS res; + char type; + + ENTER2(""); + type = wrqu->param.value; + if (type == 'f') + network_type = Ndis802_11FH; + else if (type == 'b') + network_type = Ndis802_11DS; + else if (type == 'a') + network_type = Ndis802_11OFDM5; + else if (type == 'g' || type == 'n') + network_type = Ndis802_11OFDM24; + else + network_type = Ndis802_11Automode; + + res = mp_set_int(wnd, OID_802_11_NETWORK_TYPE_IN_USE, network_type); + if (res) { + WARNING("setting network type to %d failed (%08X)", + network_type, res); + EXIT2(return -EINVAL); + } + + EXIT2(return 0); +} + +static int priv_media_stream_mode(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + NDIS_STATUS res; + int mode; + + ENTER2(""); + if (wrqu->param.value > 0) + mode = Ndis802_11MediaStreamOn; + else + mode = Ndis802_11MediaStreamOff; + res = mp_set_int(wnd, OID_802_11_MEDIA_STREAM_MODE, mode); + if (res) { + WARNING("oid failed (%08X)", res); + EXIT2(return -EINVAL); + } + EXIT2(return 0); +} + +static int priv_reload_defaults(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + struct ndis_device *wnd = netdev_priv(dev); + int res; + ENTER2(""); + res = mp_set_int(wnd, OID_802_11_RELOAD_DEFAULTS, + Ndis802_11ReloadWEPKeys); + if (res) { + WARNING("reloading defaults failed: %08X", res); + return -EOPNOTSUPP; + } + return 0; +} + +static const struct iw_priv_args priv_args[] = { + {PRIV_RESET, 0, 0, "ndis_reset"}, + {PRIV_POWER_PROFILE, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, + "power_profile"}, + {PRIV_DEAUTHENTICATE, 0, 0, "deauthenticate"}, + {PRIV_NETWORK_TYPE, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 1, 0, + "network_type"}, + {PRIV_MEDIA_STREAM_MODE, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, + "media_stream"}, + + {PRIV_RELOAD_DEFAULTS, 0, 0, "reload_defaults"}, +}; + +#define WEPRIV(id) [id - SIOCIWFIRSTPRIV] + +static const iw_handler priv_handler[] = { + WEPRIV(PRIV_RESET) = priv_reset, + WEPRIV(PRIV_POWER_PROFILE) = priv_power_profile, + WEPRIV(PRIV_DEAUTHENTICATE) = priv_deauthenticate, + WEPRIV(PRIV_NETWORK_TYPE) = priv_network_type, + WEPRIV(PRIV_MEDIA_STREAM_MODE) = priv_media_stream_mode, + WEPRIV(PRIV_RELOAD_DEFAULTS) = priv_reload_defaults, +}; + +const struct iw_handler_def ndis_handler_def = { + .num_standard = sizeof(ndis_handler) / sizeof(ndis_handler[0]), + .num_private = sizeof(priv_handler) / sizeof(priv_handler[0]), + .num_private_args = sizeof(priv_args) / sizeof(priv_args[0]), + + .standard = (iw_handler *)ndis_handler, + .private = (iw_handler *)priv_handler, + .private_args = (struct iw_priv_args *)priv_args, + .get_wireless_stats = get_iw_stats, +}; --- linux-2.6.35.orig/ubuntu/ndiswrapper/pnp.c +++ linux-2.6.35/ubuntu/ndiswrapper/pnp.c @@ -0,0 +1,742 @@ +/* + * Copyright (C) 2005 Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "usb.h" +#include "pnp.h" +#include "wrapndis.h" +#include "loader.h" + +/* Functions callable from the NDIS driver */ +wstdcall NTSTATUS pdoDispatchDeviceControl(struct device_object *pdo, + struct irp *irp); +wstdcall NTSTATUS pdoDispatchPnp(struct device_object *pdo, struct irp *irp); +wstdcall NTSTATUS pdoDispatchPower(struct device_object *pdo, struct irp *irp); + +static NTSTATUS start_pdo(struct device_object *pdo) +{ + int i, ret, count, resources_size; + struct wrap_device *wd; + struct pci_dev *pdev; + struct cm_partial_resource_descriptor *entry; + struct cm_partial_resource_list *partial_resource_list; + + ENTER1("%p, %p", pdo, pdo->reserved); + wd = pdo->reserved; + if (ntoskernel_init_device(wd)) + EXIT1(return STATUS_FAILURE); + if (wrap_is_usb_bus(wd->dev_bus)) { +#ifdef ENABLE_USB + if (usb_init_device(wd)) { + ntoskernel_exit_device(wd); + EXIT1(return STATUS_FAILURE); + } +#endif + EXIT1(return STATUS_SUCCESS); + } + if (!wrap_is_pci_bus(wd->dev_bus)) + EXIT1(return STATUS_SUCCESS); + pdev = wd->pci.pdev; + ret = pci_enable_device(pdev); + if (ret) { + ERROR("couldn't enable PCI device: %x", ret); + return STATUS_FAILURE; + } + ret = pci_request_regions(pdev, DRIVER_NAME); + if (ret) { + ERROR("couldn't request PCI regions: %x", ret); + goto err_enable; + } + pci_set_power_state(pdev, PCI_D0); +#ifdef CONFIG_X86_64 + /* 64-bit broadcom driver doesn't work if DMA is allocated + * from over 1GB */ + if (wd->vendor == 0x14e4) { + if (pci_set_dma_mask(pdev, DMA_BIT_MASK(30)) || + pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(30))) + WARNING("couldn't set DMA mask; this driver " + "may not work with more than 1GB RAM"); + } +#endif + /* IRQ resource entry is filled in from pdev, instead of + * pci_resource macros */ + for (i = count = 0; pci_resource_start(pdev, i); i++) + if ((pci_resource_flags(pdev, i) & IORESOURCE_MEM) || + (pci_resource_flags(pdev, i) & IORESOURCE_IO)) + count++; + /* space for entry for IRQ is already in + * cm_partial_resource_list */ + resources_size = sizeof(struct cm_resource_list) + + sizeof(struct cm_partial_resource_descriptor) * count; + TRACE2("resources: %d, %d", count, resources_size); + wd->resource_list = kzalloc(resources_size, GFP_KERNEL); + if (!wd->resource_list) { + WARNING("couldn't allocate memory"); + goto err_regions; + } + wd->resource_list->count = 1; + wd->resource_list->list[0].interface_type = PCIBus; + /* bus_number is not used by WDM drivers */ + wd->resource_list->list[0].bus_number = pdev->bus->number; + + partial_resource_list = + &wd->resource_list->list->partial_resource_list; + partial_resource_list->version = 1; + partial_resource_list->revision = 1; + partial_resource_list->count = count + 1; + + for (i = count = 0; pci_resource_start(pdev, i); i++) { + entry = &partial_resource_list->partial_descriptors[count]; + TRACE2("%d", count); + if (pci_resource_flags(pdev, i) & IORESOURCE_MEM) { + entry->type = CmResourceTypeMemory; + entry->flags = CM_RESOURCE_MEMORY_READ_WRITE; + entry->share = CmResourceShareDeviceExclusive; + } else if (pci_resource_flags(pdev, i) & IORESOURCE_IO) { + entry->type = CmResourceTypePort; + entry->flags = CM_RESOURCE_PORT_IO; + entry->share = CmResourceShareDeviceExclusive; +#if 0 + } else if (pci_resource_flags(pdev, i) & IORESOURCE_DMA) { + /* it looks like no driver uses this resource */ + typeof(pci_resource_flags(pdev, 0)) flags; + entry->type = CmResourceTypeDma; + flags = pci_resource_flags(pdev, i); + if (flags & IORESOURCE_DMA_TYPEA) + entry->flags |= CM_RESOURCE_DMA_TYPE_A; + else if (flags & IORESOURCE_DMA_TYPEB) + entry->flags |= CM_RESOURCE_DMA_TYPE_B; + else if (flags & IORESOURCE_DMA_TYPEF) + entry->flags |= CM_RESOURCE_DMA_TYPE_F; + if (flags & IORESOURCE_DMA_8BIT) + entry->flags |= CM_RESOURCE_DMA_8; + else if (flags & IORESOURCE_DMA_16BIT) + entry->flags |= CM_RESOURCE_DMA_16; + /* what about 32bit DMA? */ + else if (flags & IORESOURCE_DMA_8AND16BIT) + entry->flags |= CM_RESOURCE_DMA_8_AND_16; + if (flags & IORESOURCE_DMA_MASTER) + entry->flags |= CM_RESOURCE_DMA_BUS_MASTER; + entry->u.dma.channel = pci_resource_start(pdev, i); + /* what should this be? */ + entry->u.dma.port = 1; +#endif + } else + continue; + /* TODO: Add other resource types? */ + entry->u.generic.start = + (ULONG_PTR)pci_resource_start(pdev, i); + entry->u.generic.length = pci_resource_len(pdev, i); + count++; + } + + /* put IRQ resource at the end */ + entry = &partial_resource_list->partial_descriptors[count++]; + entry->type = CmResourceTypeInterrupt; + entry->flags = CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE; + /* we assume all devices use shared IRQ */ + entry->share = CmResourceShareShared; + /* as per documentation, interrupt level should be DIRQL, but + * examples from DDK as well some drivers, such as AR5211, + * RT8180L use interrupt level as interrupt vector also in + * NdisMRegisterInterrupt */ + entry->u.interrupt.level = pdev->irq; + entry->u.interrupt.vector = pdev->irq; + entry->u.interrupt.affinity = -1; + + TRACE2("resource list count %d, irq: %d", + partial_resource_list->count, pdev->irq); + pci_set_drvdata(pdev, wd); + EXIT1(return STATUS_SUCCESS); +err_regions: + pci_release_regions(pdev); +err_enable: + pci_disable_device(pdev); + wd->pci.pdev = NULL; + wd->pdo = NULL; + EXIT1(return STATUS_FAILURE); +} + +static void remove_pdo(struct device_object *pdo) +{ + struct wrap_device *wd = pdo->reserved; + + ntoskernel_exit_device(wd); + if (wrap_is_pci_bus(wd->dev_bus)) { + struct pci_dev *pdev = wd->pci.pdev; + pci_release_regions(pdev); + pci_disable_device(pdev); + wd->pci.pdev = NULL; + pci_set_drvdata(pdev, NULL); + } else if (wrap_is_usb_bus(wd->dev_bus)) { +#ifdef ENABLE_USB + usb_exit_device(wd); +#endif + } + if (wd->resource_list) + kfree(wd->resource_list); + wd->resource_list = NULL; + return; +} + +static NTSTATUS IoSendIrpTopDev(struct device_object *dev_obj, ULONG major_fn, + ULONG minor_fn, struct io_stack_location *sl) +{ + NTSTATUS status; + struct nt_event event; + struct irp *irp; + struct io_stack_location *irp_sl; + struct device_object *top_dev = IoGetAttachedDeviceReference(dev_obj); + + KeInitializeEvent(&event, NotificationEvent, FALSE); + irp = IoBuildSynchronousFsdRequest(IRP_MJ_PNP, top_dev, NULL, 0, NULL, + &event, NULL); + irp->io_status.status = STATUS_NOT_IMPLEMENTED; + irp->io_status.info = 0; + irp_sl = IoGetNextIrpStackLocation(irp); + if (sl) + memcpy(irp_sl, sl, sizeof(*irp_sl)); + irp_sl->major_fn = major_fn; + irp_sl->minor_fn = minor_fn; + status = IoCallDriver(top_dev, irp); + if (status == STATUS_PENDING) { + KeWaitForSingleObject(&event, Executive, KernelMode, + FALSE, NULL); + status = irp->io_status.status; + } + ObDereferenceObject(top_dev); + return status; +} + +wstdcall NTSTATUS pdoDispatchDeviceControl(struct device_object *pdo, + struct irp *irp) +{ + struct io_stack_location *irp_sl; + NTSTATUS status; + + DUMP_IRP(irp); + irp_sl = IoGetCurrentIrpStackLocation(irp); +#ifdef ENABLE_USB + status = wrap_submit_irp(pdo, irp); + IOTRACE("status: %08X", status); + if (status != STATUS_PENDING) + IoCompleteRequest(irp, IO_NO_INCREMENT); +#else + status = irp->io_status.status = STATUS_NOT_IMPLEMENTED; + IoCompleteRequest(irp, IO_NO_INCREMENT); +#endif + IOEXIT(return status); +} +WIN_FUNC_DECL(pdoDispatchDeviceControl,2) + +wstdcall NTSTATUS pdoDispatchPnp(struct device_object *pdo, struct irp *irp) +{ + struct io_stack_location *irp_sl; + struct wrap_device *wd; + NTSTATUS status; +#ifdef ENABLE_USB + struct usbd_bus_interface_usbdi *usb_intf; +#endif + + irp_sl = IoGetCurrentIrpStackLocation(irp); + TRACE2("%p %d:%d", pdo, irp_sl->major_fn, irp_sl->minor_fn); + wd = pdo->reserved; + switch (irp_sl->minor_fn) { + case IRP_MN_START_DEVICE: + status = start_pdo(pdo); + break; + case IRP_MN_QUERY_STOP_DEVICE: + case IRP_MN_STOP_DEVICE: + case IRP_MN_QUERY_REMOVE_DEVICE: + status = STATUS_SUCCESS; + break; + case IRP_MN_REMOVE_DEVICE: + remove_pdo(pdo); + status = STATUS_SUCCESS; + break; + case IRP_MN_QUERY_INTERFACE: +#ifdef ENABLE_USB + if (!wrap_is_usb_bus(wd->dev_bus)) { + status = STATUS_NOT_IMPLEMENTED; + break; + } + TRACE2("type: %x, size: %d, version: %d", + irp_sl->params.query_intf.type->data1, + irp_sl->params.query_intf.size, + irp_sl->params.query_intf.version); + usb_intf = (struct usbd_bus_interface_usbdi *) + irp_sl->params.query_intf.intf; + usb_intf->Context = wd; + usb_intf->InterfaceReference = USBD_InterfaceReference; + usb_intf->InterfaceDereference = USBD_InterfaceDereference; + usb_intf->GetUSBDIVersion = USBD_InterfaceGetUSBDIVersion; + usb_intf->QueryBusTime = USBD_InterfaceQueryBusTime; + usb_intf->SubmitIsoOutUrb = USBD_InterfaceSubmitIsoOutUrb; + usb_intf->QueryBusInformation = + USBD_InterfaceQueryBusInformation; + if (irp_sl->params.query_intf.version >= + USB_BUSIF_USBDI_VERSION_1) + usb_intf->IsDeviceHighSpeed = + USBD_InterfaceIsDeviceHighSpeed; + if (irp_sl->params.query_intf.version >= + USB_BUSIF_USBDI_VERSION_2) + usb_intf->LogEntry = USBD_InterfaceLogEntry; + status = STATUS_SUCCESS; +#else + status = STATUS_NOT_IMPLEMENTED; +#endif + break; + default: + TRACE2("fn %d not implemented", irp_sl->minor_fn); + status = STATUS_SUCCESS; + break; + } + irp->io_status.status = status; + TRACE2("status: %08X", status); + IoCompleteRequest(irp, IO_NO_INCREMENT); + IOEXIT(return status); +} +WIN_FUNC_DECL(pdoDispatchPnp,2) + +wstdcall NTSTATUS pdoDispatchPower(struct device_object *pdo, struct irp *irp) +{ + struct io_stack_location *irp_sl; + struct wrap_device *wd; + union power_state power_state; + struct pci_dev *pdev; + NTSTATUS status; + + irp_sl = IoGetCurrentIrpStackLocation(irp); + wd = pdo->reserved; + TRACE2("pdo: %p, fn: %d:%d, wd: %p", + pdo, irp_sl->major_fn, irp_sl->minor_fn, wd); + switch (irp_sl->minor_fn) { + case IRP_MN_WAIT_WAKE: + /* TODO: this is not complete/correct */ + TRACE2("state: %d, completion: %p", + irp_sl->params.power.state.system_state, + irp_sl->completion_routine); + IoMarkIrpPending(irp); + status = STATUS_PENDING; + break; + case IRP_MN_SET_POWER: + power_state = irp_sl->params.power.state; + if (power_state.device_state == PowerDeviceD0) { + TRACE2("resuming %p", wd); + if (wrap_is_pci_bus(wd->dev_bus)) { + pdev = wd->pci.pdev; + pci_restore_state(pdev); + if (wd->pci.wake_state == PowerDeviceD3) { + pci_enable_wake(wd->pci.pdev, + PCI_D3hot, 0); + pci_enable_wake(wd->pci.pdev, + PCI_D3cold, 0); + } + pci_set_power_state(pdev, PCI_D0); + } else { // usb device +#ifdef ENABLE_USB + wrap_resume_urbs(wd); +#endif + } + } else { + TRACE2("suspending device %p", wd); + if (wrap_is_pci_bus(wd->dev_bus)) { + pdev = wd->pci.pdev; + pci_save_state(pdev); + TRACE2("%d", wd->pci.wake_state); + if (wd->pci.wake_state == PowerDeviceD3) { + pci_enable_wake(wd->pci.pdev, + PCI_D3hot, 1); + pci_enable_wake(wd->pci.pdev, + PCI_D3cold, 1); + } + pci_set_power_state(pdev, PCI_D3hot); + } else { // usb device +#ifdef ENABLE_USB + wrap_suspend_urbs(wd); +#endif + } + } + status = STATUS_SUCCESS; + break; + case IRP_MN_QUERY_POWER: + status = STATUS_SUCCESS; + break; + default: + TRACE2("fn %d not implemented", irp_sl->minor_fn); + status = STATUS_SUCCESS; + break; + } + irp->io_status.status = status; + IoCompleteRequest(irp, IO_NO_INCREMENT); + return status; +} +WIN_FUNC_DECL(pdoDispatchPower,2) + +static NTSTATUS pnp_set_device_power_state(struct wrap_device *wd, + enum device_power_state state) +{ + NTSTATUS status; + struct device_object *pdo; + struct io_stack_location irp_sl; + + pdo = wd->pdo; + IOTRACE("%p, %p", pdo, IoGetAttachedDevice(pdo)); + memset(&irp_sl, 0, sizeof(irp_sl)); + irp_sl.params.power.state.device_state = state; + irp_sl.params.power.type = DevicePowerState; + if (state > PowerDeviceD0) { + status = IoSendIrpTopDev(pdo, IRP_MJ_POWER, IRP_MN_QUERY_POWER, + &irp_sl); + if (status != STATUS_SUCCESS) { + TRACE1("query of power to %d returns %08X", + state, status); + EXIT1(return status); + } + } + status = IoSendIrpTopDev(pdo, IRP_MJ_POWER, IRP_MN_SET_POWER, &irp_sl); + if (status != STATUS_SUCCESS) + WARNING("setting power to %d failed: %08X", state, status); + EXIT1(return status); +} + +NTSTATUS pnp_start_device(struct wrap_device *wd) +{ + struct device_object *fdo; + struct device_object *pdo; + struct io_stack_location irp_sl; + NTSTATUS status; + + pdo = wd->pdo; + /* TODO: for now we use same resources for both translated + * resources and raw resources */ + memset(&irp_sl, 0, sizeof(irp_sl)); + irp_sl.params.start_device.allocated_resources = + wd->resource_list; + irp_sl.params.start_device.allocated_resources_translated = + wd->resource_list; + status = IoSendIrpTopDev(pdo, IRP_MJ_PNP, IRP_MN_START_DEVICE, &irp_sl); + fdo = IoGetAttachedDevice(pdo); + if (status == STATUS_SUCCESS) + fdo->drv_obj->drv_ext->count++; + else + WARNING("Windows driver couldn't initialize the device (%08X)", + status); + EXIT1(return status); +} + +NTSTATUS pnp_stop_device(struct wrap_device *wd) +{ + struct device_object *pdo; + NTSTATUS status; + + pdo = wd->pdo; + status = IoSendIrpTopDev(pdo, IRP_MJ_PNP, IRP_MN_QUERY_STOP_DEVICE, + NULL); + if (status != STATUS_SUCCESS) + WARNING("status: %08X", status); + /* for now we ignore query status */ + status = IoSendIrpTopDev(pdo, IRP_MJ_PNP, IRP_MN_STOP_DEVICE, NULL); + if (status != STATUS_SUCCESS) + WARNING("status: %08X", status); + if (status != STATUS_SUCCESS) + WARNING("status: %08X", status); + EXIT2(return status); +} + +NTSTATUS pnp_remove_device(struct wrap_device *wd) +{ + struct device_object *pdo, *fdo; + struct driver_object *fdo_drv_obj; + NTSTATUS status; + + pdo = wd->pdo; + fdo = IoGetAttachedDevice(pdo); + fdo_drv_obj = fdo->drv_obj; + TRACE2("%p, %p, %p", pdo, fdo, fdo_drv_obj); + status = IoSendIrpTopDev(pdo, IRP_MJ_PNP, IRP_MN_QUERY_REMOVE_DEVICE, + NULL); + if (status != STATUS_SUCCESS) + WARNING("status: %08X", status); + + status = IoSendIrpTopDev(pdo, IRP_MJ_PNP, IRP_MN_REMOVE_DEVICE, NULL); + if (status != STATUS_SUCCESS) + WARNING("status: %08X", status); + /* TODO: should we use count in drv_ext or driver's Object + * header reference count to keep count of devices associated + * with a driver? */ + if (status == STATUS_SUCCESS) + fdo_drv_obj->drv_ext->count--; + TRACE1("count: %d", fdo_drv_obj->drv_ext->count); + if (fdo_drv_obj->drv_ext->count < 0) + WARNING("wrong count: %d", fdo_drv_obj->drv_ext->count); + if (fdo_drv_obj->drv_ext->count == 0) { + struct wrap_driver *wrap_driver; + TRACE1("unloading driver: %p", fdo_drv_obj); + wrap_driver = + IoGetDriverObjectExtension(fdo_drv_obj, + (void *)WRAP_DRIVER_CLIENT_ID); + if (fdo_drv_obj->unload) + LIN2WIN1(fdo_drv_obj->unload, fdo_drv_obj); + if (wrap_driver) { + if (down_interruptible(&loader_mutex)) + WARNING("couldn't obtain loader_mutex"); + unload_wrap_driver(wrap_driver); + up(&loader_mutex); + } else + ERROR("couldn't get wrap_driver"); + ObDereferenceObject(fdo_drv_obj); + } + IoDeleteDevice(pdo); + unload_wrap_device(wd); + EXIT1(return status); +} + +WIN_FUNC_DECL(IoInvalidDeviceRequest,2) + +static struct device_object *alloc_pdo(struct driver_object *drv_obj) +{ + struct device_object *pdo; + NTSTATUS status ; + int i; + struct ansi_string ansi_name; + struct unicode_string unicode_name; + + RtlInitAnsiString(&ansi_name, "NDISpdo"); + if (RtlAnsiStringToUnicodeString(&unicode_name, &ansi_name, TRUE) == + STATUS_SUCCESS) { + status = IoCreateDevice(drv_obj, 0, &unicode_name, + FILE_DEVICE_UNKNOWN, + FILE_AUTOGENERATED_DEVICE_NAME, + FALSE, &pdo); + RtlFreeUnicodeString(&unicode_name); + } else { + status = IoCreateDevice(drv_obj, 0, NULL, + FILE_DEVICE_UNKNOWN, + FILE_AUTOGENERATED_DEVICE_NAME, + FALSE, &pdo); + } + TRACE1("%p, %d, %p", drv_obj, status, pdo); + if (status != STATUS_SUCCESS) + return NULL; + /* dispatch routines are called as Windows functions */ + for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++) + drv_obj->major_func[i] = WIN_FUNC_PTR(IoInvalidDeviceRequest,2); + drv_obj->major_func[IRP_MJ_INTERNAL_DEVICE_CONTROL] = + WIN_FUNC_PTR(pdoDispatchDeviceControl,2); + drv_obj->major_func[IRP_MJ_DEVICE_CONTROL] = + WIN_FUNC_PTR(pdoDispatchDeviceControl,2); + drv_obj->major_func[IRP_MJ_POWER] = WIN_FUNC_PTR(pdoDispatchPower,2); + drv_obj->major_func[IRP_MJ_PNP] = WIN_FUNC_PTR(pdoDispatchPnp,2); + return pdo; +} + +static int wrap_pnp_start_device(struct wrap_device *wd) +{ + struct wrap_driver *driver; + struct device_object *pdo; + struct driver_object *pdo_drv_obj; + + ENTER1("wd: %p", wd); + + if (!((wrap_is_pci_bus(wd->dev_bus)) || + (wrap_is_usb_bus(wd->dev_bus)))) { + ERROR("bus type %d (%d) not supported", + WRAP_BUS(wd->dev_bus), wd->dev_bus); + EXIT1(return -EINVAL); + } + driver = load_wrap_driver(wd); + if (!driver) + return -ENODEV; + + wd->driver = driver; + wd->dev_bus = WRAP_DEVICE_BUS(driver->dev_type, WRAP_BUS(wd->dev_bus)); + TRACE1("dev type: %d, bus type: %d, %d", WRAP_DEVICE(wd->dev_bus), + WRAP_BUS(wd->dev_bus), wd->dev_bus); + TRACE1("%d, %d", driver->dev_type, wrap_is_usb_bus(wd->dev_bus)); + /* first create pdo */ + if (wrap_is_pci_bus(wd->dev_bus)) + pdo_drv_obj = find_bus_driver("PCI"); + else // if (wrap_is_usb_bus(wd->dev_bus)) + pdo_drv_obj = find_bus_driver("USB"); + if (!pdo_drv_obj) + return -EINVAL; + pdo = alloc_pdo(pdo_drv_obj); + if (!pdo) + return -ENOMEM; + wd->pdo = pdo; + pdo->reserved = wd; + if (WRAP_DEVICE(wd->dev_bus) == WRAP_NDIS_DEVICE) { + if (init_ndis_driver(driver->drv_obj)) { + IoDeleteDevice(pdo); + return -EINVAL; + } + } + TRACE1("%p", driver->drv_obj->drv_ext->add_device); + if (driver->drv_obj->drv_ext->add_device(driver->drv_obj, pdo) != + STATUS_SUCCESS) { + IoDeleteDevice(pdo); + return -ENOMEM; + } + if (pnp_start_device(wd) != STATUS_SUCCESS) { + /* TODO: we need proper cleanup, to deallocate memory, + * for example */ + pnp_remove_device(wd); + return -EINVAL; + } + return 0; +} + +/* + * This function should not be marked __devinit because PCI IDs are + * added dynamically. + */ +int wrap_pnp_start_pci_device(struct pci_dev *pdev, + const struct pci_device_id *ent) +{ + struct load_device load_device; + struct wrap_device *wd; + + ENTER1("called for %04x:%04x:%04x:%04x", pdev->vendor, pdev->device, + pdev->subsystem_vendor, pdev->subsystem_device); + + load_device.bus = WRAP_PCI_BUS; + load_device.vendor = pdev->vendor; + load_device.device = pdev->device; + load_device.subvendor = pdev->subsystem_vendor; + load_device.subdevice = pdev->subsystem_device; + wd = load_wrap_device(&load_device); + if (!wd) + EXIT1(return -ENODEV); + wd->pci.pdev = pdev; + return wrap_pnp_start_device(wd); +} + +void wrap_pnp_remove_pci_device(struct pci_dev *pdev) +{ + struct wrap_device *wd; + + wd = (struct wrap_device *)pci_get_drvdata(pdev); + ENTER1("%p, %p", pdev, wd); + if (!wd) + EXIT1(return); + pnp_remove_device(wd); +} + +int wrap_pnp_suspend_pci_device(struct pci_dev *pdev, pm_message_t state) +{ + struct wrap_device *wd; + + wd = (struct wrap_device *)pci_get_drvdata(pdev); + return pnp_set_device_power_state(wd, PowerDeviceD3); +} + +int wrap_pnp_resume_pci_device(struct pci_dev *pdev) +{ + struct wrap_device *wd; + + wd = (struct wrap_device *)pci_get_drvdata(pdev); + return pnp_set_device_power_state(wd, PowerDeviceD0); +} + +#ifdef ENABLE_USB +int wrap_pnp_start_usb_device(struct usb_interface *intf, + const struct usb_device_id *usb_id) +{ + struct wrap_device *wd; + int ret; + struct usb_device *udev = interface_to_usbdev(intf); + ENTER1("%04x, %04x, %04x", udev->descriptor.idVendor, + udev->descriptor.idProduct, udev->descriptor.bDeviceClass); + + /* USB device (e.g., RNDIS) may have multiple interfaces; + initialize one interface only (is there a way to know which + of these interfaces is for network?) */ + + if ((wd = get_wrap_device(udev, WRAP_USB_BUS))) { + TRACE1("device already initialized: %p", wd); + usb_set_intfdata(intf, NULL); + ret = 0; + } else { + struct load_device load_device; + + load_device.bus = WRAP_USB_BUS; + load_device.vendor = le16_to_cpu(udev->descriptor.idVendor); + load_device.device = le16_to_cpu(udev->descriptor.idProduct); + load_device.subvendor = 0; + load_device.subdevice = 0; + wd = load_wrap_device(&load_device); + TRACE2("%p", wd); + if (wd) { + /* some devices (e.g., TI 4150, RNDIS) need + * full reset */ + ret = usb_reset_device(udev); + if (ret) + WARNING("reset failed: %d", ret); + usb_set_intfdata(intf, wd); + wd->usb.intf = intf; + wd->usb.udev = udev; + ret = wrap_pnp_start_device(wd); + } else + ret = -ENODEV; + } + + TRACE2("ret: %d", ret); + if (ret) + EXIT1(return ret); + else + return 0; +} + +void __devexit wrap_pnp_remove_usb_device(struct usb_interface *intf) +{ + struct wrap_device *wd; + + wd = (struct wrap_device *)usb_get_intfdata(intf); + TRACE1("%p, %p", intf, wd); + if (wd == NULL) + EXIT1(return); + usb_set_intfdata(intf, NULL); + wd->usb.intf = NULL; + pnp_remove_device(wd); +} + +int wrap_pnp_suspend_usb_device(struct usb_interface *intf, pm_message_t state) +{ + struct wrap_device *wd; + struct device_object *pdo; + + wd = usb_get_intfdata(intf); + ENTER1("%p, %p", intf, wd); + if (!wd) + EXIT1(return 0); + pdo = wd->pdo; + if (pnp_set_device_power_state(wd, PowerDeviceD3)) + return -1; + return 0; +} + +int wrap_pnp_resume_usb_device(struct usb_interface *intf) +{ + struct wrap_device *wd; + wd = usb_get_intfdata(intf); + ENTER1("%p, %p", intf, wd); + if (!wd) + EXIT1(return 0); + if (pnp_set_device_power_state(wd, PowerDeviceD0)) + return -1; + return 0; +} + +#endif // USB --- linux-2.6.35.orig/ubuntu/ndiswrapper/ntoskernel_io.c +++ linux-2.6.35/ubuntu/ndiswrapper/ntoskernel_io.c @@ -0,0 +1,1106 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "ntoskernel.h" +#include "ndis.h" +#include "wrapndis.h" +#include "usb.h" +#include "loader.h" +#include "ntoskernel_io_exports.h" + +wstdcall void WIN_FUNC(IoAcquireCancelSpinLock,1) + (KIRQL *irql) __acquires(irql) +{ + spin_lock_bh(&irp_cancel_lock); + *irql = 0; +} + +wstdcall void WIN_FUNC(IoReleaseCancelSpinLock,1) + (KIRQL irql) __releases(irql) +{ + spin_unlock_bh(&irp_cancel_lock); +} + +wstdcall int WIN_FUNC(IoIsWdmVersionAvailable,2) + (UCHAR major, UCHAR minor) +{ + IOENTER("%d, %x", major, minor); + if (major == 1 && + (minor == 0x30 || // Windows 2003 + minor == 0x20 || // Windows XP + minor == 0x10)) // Windows 2000 + IOEXIT(return TRUE); + IOEXIT(return FALSE); +} + +wstdcall BOOLEAN WIN_FUNC(IoIs32bitProcess,1) + (struct irp *irp) +{ +#ifdef CONFIG_X86_64 + return FALSE; +#else + return TRUE; +#endif +} + +wstdcall void WIN_FUNC(IoInitializeIrp,3) + (struct irp *irp, USHORT size, CCHAR stack_count) +{ + IOENTER("irp: %p, %d, %d", irp, size, stack_count); + + memset(irp, 0, size); + irp->size = size; + irp->stack_count = stack_count; + irp->current_location = stack_count; + IoGetCurrentIrpStackLocation(irp) = IRP_SL(irp, stack_count); + IOEXIT(return); +} + +wstdcall void WIN_FUNC(IoReuseIrp,2) + (struct irp *irp, NTSTATUS status) +{ + IOENTER("%p, %d", irp, status); + if (irp) { + UCHAR alloc_flags; + + alloc_flags = irp->alloc_flags; + IoInitializeIrp(irp, irp->size, irp->stack_count); + irp->alloc_flags = alloc_flags; + irp->io_status.status = status; + } + IOEXIT(return); +} + +wstdcall struct irp *WIN_FUNC(IoAllocateIrp,2) + (char stack_count, BOOLEAN charge_quota) +{ + struct irp *irp; + int irp_size; + + IOENTER("count: %d", stack_count); + stack_count++; + irp_size = IoSizeOfIrp(stack_count); + irp = kmalloc(irp_size, irql_gfp()); + if (irp) + IoInitializeIrp(irp, irp_size, stack_count); + IOTRACE("irp %p", irp); + IOEXIT(return irp); +} + +wstdcall BOOLEAN WIN_FUNC(IoCancelIrp,1) + (struct irp *irp) +{ + typeof(irp->cancel_routine) cancel_routine; + + /* NB: this function may be called at DISPATCH_LEVEL */ + IOTRACE("irp: %p", irp); + if (!irp) + return FALSE; + DUMP_IRP(irp); + IoAcquireCancelSpinLock(&irp->cancel_irql); + cancel_routine = xchg(&irp->cancel_routine, NULL); + IOTRACE("%p", cancel_routine); + irp->cancel = TRUE; + if (cancel_routine) { + struct io_stack_location *irp_sl; + irp_sl = IoGetCurrentIrpStackLocation(irp); + IOTRACE("%p, %p", irp_sl, irp_sl->dev_obj); + /* cancel_routine will release the spin lock */ + __release(irp->cancel_irql); + LIN2WIN2(cancel_routine, irp_sl->dev_obj, irp); + /* in usb's cancel, irp->cancel is set to indicate + * status of cancel */ + IOEXIT(return xchg(&irp->cancel, TRUE)); + } else { + IOTRACE("irp %p already canceled", irp); + IoReleaseCancelSpinLock(irp->cancel_irql); + IOEXIT(return FALSE); + } +} + +wstdcall void IoQueueThreadIrp(struct irp *irp) +{ + struct nt_thread *thread; + KIRQL irql; + + thread = get_current_nt_thread(); + if (thread) { + IOTRACE("thread: %p, task: %p", thread, thread->task); + irp->flags |= IRP_SYNCHRONOUS_API; + irql = nt_spin_lock_irql(&thread->lock, DISPATCH_LEVEL); + InsertTailList(&thread->irps, &irp->thread_list); + IoIrpThread(irp) = thread; + nt_spin_unlock_irql(&thread->lock, irql); + } else + IoIrpThread(irp) = NULL; +} + +wstdcall void IoDequeueThreadIrp(struct irp *irp) +{ + struct nt_thread *thread; + KIRQL irql; + + thread = IoIrpThread(irp); + if (thread) { + irql = nt_spin_lock_irql(&thread->lock, DISPATCH_LEVEL); + RemoveEntryList(&irp->thread_list); + nt_spin_unlock_irql(&thread->lock, irql); + } +} + +wstdcall void WIN_FUNC(IoFreeIrp,1) + (struct irp *irp) +{ + IOENTER("irp = %p", irp); + if (irp->flags & IRP_SYNCHRONOUS_API) + IoDequeueThreadIrp(irp); + kfree(irp); + + IOEXIT(return); +} + +wstdcall struct irp *WIN_FUNC(IoBuildAsynchronousFsdRequest,6) + (ULONG major_fn, struct device_object *dev_obj, void *buffer, + ULONG length, LARGE_INTEGER *offset, + struct io_status_block *user_status) +{ + struct irp *irp; + struct io_stack_location *irp_sl; + + IOENTER("%p", dev_obj); + if (!dev_obj) + IOEXIT(return NULL); + irp = IoAllocateIrp(dev_obj->stack_count, FALSE); + if (irp == NULL) { + WARNING("couldn't allocate irp"); + IOEXIT(return NULL); + } + + irp_sl = IoGetNextIrpStackLocation(irp); + irp_sl->major_fn = major_fn; + IOTRACE("major_fn: %d", major_fn); + irp_sl->minor_fn = 0; + irp_sl->flags = 0; + irp_sl->control = 0; + irp_sl->dev_obj = dev_obj; + irp_sl->file_obj = NULL; + irp_sl->completion_routine = NULL; + + if (dev_obj->flags & DO_DIRECT_IO) { + irp->mdl = IoAllocateMdl(buffer, length, FALSE, FALSE, irp); + if (irp->mdl == NULL) { + IoFreeIrp(irp); + return NULL; + } + MmProbeAndLockPages(irp->mdl, KernelMode, + major_fn == IRP_MJ_WRITE ? + IoReadAccess : IoWriteAccess); + IOTRACE("mdl: %p", irp->mdl); + } else if (dev_obj->flags & DO_BUFFERED_IO) { + irp->associated_irp.system_buffer = buffer; + irp->flags = IRP_BUFFERED_IO; + irp->mdl = NULL; + IOTRACE("buffer: %p", buffer); + } + if (major_fn == IRP_MJ_READ) { + irp_sl->params.read.length = length; + irp_sl->params.read.byte_offset = *offset; + } else if (major_fn == IRP_MJ_WRITE) { + irp_sl->params.write.length = length; + irp_sl->params.write.byte_offset = *offset; + } + irp->user_status = user_status; + IOTRACE("irp: %p", irp); + return irp; +} + +wstdcall struct irp *WIN_FUNC(IoBuildSynchronousFsdRequest,7) + (ULONG major_fn, struct device_object *dev_obj, void *buf, + ULONG length, LARGE_INTEGER *offset, struct nt_event *event, + struct io_status_block *user_status) +{ + struct irp *irp; + + irp = IoBuildAsynchronousFsdRequest(major_fn, dev_obj, buf, length, + offset, user_status); + if (irp == NULL) + return NULL; + irp->user_event = event; + IoQueueThreadIrp(irp); + return irp; +} + +wstdcall struct irp *WIN_FUNC(IoBuildDeviceIoControlRequest,9) + (ULONG ioctl, struct device_object *dev_obj, + void *input_buf, ULONG input_buf_len, void *output_buf, + ULONG output_buf_len, BOOLEAN internal_ioctl, + struct nt_event *event, struct io_status_block *io_status) +{ + struct irp *irp; + struct io_stack_location *irp_sl; + ULONG buf_len; + + IOENTER("%p, 0x%08x, %d", dev_obj, ioctl, internal_ioctl); + if (!dev_obj) + IOEXIT(return NULL); + irp = IoAllocateIrp(dev_obj->stack_count, FALSE); + if (irp == NULL) { + WARNING("couldn't allocate irp"); + return NULL; + } + irp_sl = IoGetNextIrpStackLocation(irp); + irp_sl->params.dev_ioctl.code = ioctl; + irp_sl->params.dev_ioctl.input_buf_len = input_buf_len; + irp_sl->params.dev_ioctl.output_buf_len = output_buf_len; + irp_sl->major_fn = (internal_ioctl) ? + IRP_MJ_INTERNAL_DEVICE_CONTROL : IRP_MJ_DEVICE_CONTROL; + IOTRACE("%d", IO_METHOD_FROM_CTL_CODE(ioctl)); + + switch (IO_METHOD_FROM_CTL_CODE(ioctl)) { + case METHOD_BUFFERED: + buf_len = max(input_buf_len, output_buf_len); + if (buf_len) { + irp->associated_irp.system_buffer = + ExAllocatePoolWithTag(NonPagedPool, buf_len, 0); + if (!irp->associated_irp.system_buffer) { + IoFreeIrp(irp); + IOEXIT(return NULL); + } + irp->associated_irp.system_buffer = input_buf; + if (input_buf) + memcpy(irp->associated_irp.system_buffer, + input_buf, input_buf_len); + irp->flags = IRP_BUFFERED_IO | IRP_DEALLOCATE_BUFFER; + if (output_buf) + irp->flags = IRP_INPUT_OPERATION; + irp->user_buf = output_buf; + } else + irp->user_buf = NULL; + break; + case METHOD_IN_DIRECT: + case METHOD_OUT_DIRECT: + if (input_buf) { + irp->associated_irp.system_buffer = + ExAllocatePoolWithTag(NonPagedPool, + input_buf_len, 0); + if (!irp->associated_irp.system_buffer) { + IoFreeIrp(irp); + IOEXIT(return NULL); + } + memcpy(irp->associated_irp.system_buffer, + input_buf, input_buf_len); + irp->flags = IRP_BUFFERED_IO | IRP_DEALLOCATE_BUFFER; + } + /* TODO: we are supposed to setup MDL, but USB layer + * doesn't use MDLs. Moreover, USB layer mirrors + * non-DMAable buffers, so no need to allocate + * DMAable buffer here */ + if (output_buf) { + irp->associated_irp.system_buffer = + ExAllocatePoolWithTag(NonPagedPool, + output_buf_len, 0); + if (!irp->associated_irp.system_buffer) { + IoFreeIrp(irp); + IOEXIT(return NULL); + } + irp->flags = IRP_BUFFERED_IO | IRP_DEALLOCATE_BUFFER; + } + break; + case METHOD_NEITHER: + irp->user_buf = output_buf; + irp_sl->params.dev_ioctl.type3_input_buf = input_buf; + break; + } + + irp->user_status = io_status; + irp->user_event = event; + IoQueueThreadIrp(irp); + + IOTRACE("irp: %p", irp); + IOEXIT(return irp); +} + +wfastcall NTSTATUS WIN_FUNC(IofCallDriver,2) + (struct device_object *dev_obj, struct irp *irp) +{ + struct io_stack_location *irp_sl; + NTSTATUS status; + driver_dispatch_t *major_func; + struct driver_object *drv_obj; + + if (irp->current_location <= 0) { + ERROR("invalid irp: %p, %d", irp, irp->current_location); + return STATUS_INVALID_PARAMETER; + } + IOTRACE("%p, %p, %p, %d, %d, %p", dev_obj, irp, dev_obj->drv_obj, + irp->current_location, irp->stack_count, + IoGetCurrentIrpStackLocation(irp)); + IoSetNextIrpStackLocation(irp); + DUMP_IRP(irp); + irp_sl = IoGetCurrentIrpStackLocation(irp); + drv_obj = dev_obj->drv_obj; + irp_sl->dev_obj = dev_obj; + major_func = drv_obj->major_func[irp_sl->major_fn]; + IOTRACE("major_func: %p, dev_obj: %p", major_func, dev_obj); + if (major_func) + status = LIN2WIN2(major_func, dev_obj, irp); + else { + ERROR("major_function %d is not implemented", + irp_sl->major_fn); + status = STATUS_NOT_SUPPORTED; + } + IOEXIT(return status); +} + +wfastcall void WIN_FUNC(IofCompleteRequest,2) + (struct irp *irp, CHAR prio_boost) +{ + struct io_stack_location *irp_sl; + +#ifdef IO_DEBUG + DUMP_IRP(irp); + if (irp->io_status.status == STATUS_PENDING) { + ERROR("invalid irp: %p, STATUS_PENDING", irp); + return; + } + if (irp->current_location < 0 || + irp->current_location >= irp->stack_count) { + ERROR("invalid irp: %p, %d", irp, irp->current_location); + return; + } +#endif + for (irp_sl = IoGetCurrentIrpStackLocation(irp); + irp->current_location < irp->stack_count; irp_sl++) { + struct device_object *dev_obj; + NTSTATUS status; + + DUMP_IRP(irp); + if (irp_sl->control & SL_PENDING_RETURNED) + irp->pending_returned = TRUE; + + /* current_location and dev_obj must be same as when + * driver called IoSetCompletionRoutine, which sets + * completion routine at next (lower) location, which + * is what we are going to call below; so we set + * current_location and dev_obj for the previous + * (higher) location */ + IoSkipCurrentIrpStackLocation(irp); + if (irp->current_location < irp->stack_count) + dev_obj = IoGetCurrentIrpStackLocation(irp)->dev_obj; + else + dev_obj = NULL; + + IOTRACE("%d, %d, %p", irp->current_location, irp->stack_count, + dev_obj); + if (irp_sl->completion_routine && + ((irp->io_status.status == STATUS_SUCCESS && + irp_sl->control & SL_INVOKE_ON_SUCCESS) || + (irp->io_status.status != STATUS_SUCCESS && + irp_sl->control & SL_INVOKE_ON_ERROR) || + (irp->cancel == TRUE && + irp_sl->control & SL_INVOKE_ON_CANCEL))) { + IOTRACE("calling completion_routine at: %p, %p", + irp_sl->completion_routine, irp_sl->context); + status = LIN2WIN3(irp_sl->completion_routine, + dev_obj, irp, irp_sl->context); + IOTRACE("status: %08X", status); + if (status == STATUS_MORE_PROCESSING_REQUIRED) + IOEXIT(return); + } else { + /* propagate pending status to next irp_sl */ + if (irp->pending_returned && + irp->current_location < irp->stack_count) + IoMarkIrpPending(irp); + } + } + + if (irp->user_status) { + irp->user_status->status = irp->io_status.status; + irp->user_status->info = irp->io_status.info; + } + + if (irp->user_event) { + IOTRACE("setting event %p", irp->user_event); + KeSetEvent(irp->user_event, prio_boost, FALSE); + } + + if (irp->associated_irp.system_buffer && + (irp->flags & IRP_DEALLOCATE_BUFFER)) + ExFreePool(irp->associated_irp.system_buffer); + else { + struct mdl *mdl; + while ((mdl = irp->mdl)) { + irp->mdl = mdl->next; + MmUnlockPages(mdl); + IoFreeMdl(mdl); + } + } + IOTRACE("freeing irp %p", irp); + IoFreeIrp(irp); + IOEXIT(return); +} + +wstdcall NTSTATUS IoPassIrpDown(struct device_object *dev_obj, struct irp *irp) +{ + IoSkipCurrentIrpStackLocation(irp); + IOEXIT(return IoCallDriver(dev_obj, irp)); +} + +wstdcall NTSTATUS IoIrpSyncComplete(struct device_object *dev_obj, + struct irp *irp, void *context) +{ + if (irp->pending_returned == TRUE) + KeSetEvent(context, IO_NO_INCREMENT, FALSE); + IOEXIT(return STATUS_MORE_PROCESSING_REQUIRED); +} +WIN_FUNC_DECL(IoIrpSyncComplete,3) + +wstdcall NTSTATUS IoSyncForwardIrp(struct device_object *dev_obj, + struct irp *irp) +{ + struct nt_event event; + NTSTATUS status; + + IoCopyCurrentIrpStackLocationToNext(irp); + KeInitializeEvent(&event, SynchronizationEvent, FALSE); + /* completion function is called as Windows function */ + IoSetCompletionRoutine(irp, WIN_FUNC_PTR(IoIrpSyncComplete,3), &event, + TRUE, TRUE, TRUE); + status = IoCallDriver(dev_obj, irp); + IOTRACE("%08X", status); + if (status == STATUS_PENDING) { + KeWaitForSingleObject(&event, Executive, KernelMode, FALSE, + NULL); + status = irp->io_status.status; + } + IOTRACE("%08X", status); + IOEXIT(return status); +} +WIN_FUNC_DECL(IoSyncForwardIrp,2) + +wstdcall NTSTATUS IoAsyncForwardIrp(struct device_object *dev_obj, + struct irp *irp) +{ + NTSTATUS status; + + IoCopyCurrentIrpStackLocationToNext(irp); + status = IoCallDriver(dev_obj, irp); + IOEXIT(return status); +} +WIN_FUNC_DECL(IoAsyncForwardIrp,2) + +wstdcall NTSTATUS IoInvalidDeviceRequest(struct device_object *dev_obj, + struct irp *irp) +{ + struct io_stack_location *irp_sl; + NTSTATUS status; + + irp_sl = IoGetCurrentIrpStackLocation(irp); + WARNING("%d:%d not implemented", irp_sl->major_fn, irp_sl->minor_fn); + irp->io_status.status = STATUS_SUCCESS; + irp->io_status.info = 0; + status = irp->io_status.status; + IoCompleteRequest(irp, IO_NO_INCREMENT); + IOEXIT(return status); +} +WIN_FUNC_DECL(IoInvalidDeviceRequest,2) + +static irqreturn_t io_irq_isr(int irq, void *data ISR_PT_REGS_PARAM_DECL) +{ + struct kinterrupt *interrupt = data; + BOOLEAN ret; + +#ifdef CONFIG_DEBUG_SHIRQ + if (!interrupt->u.enabled) + EXIT1(return IRQ_NONE); +#endif + TRACE6("%p", interrupt); + nt_spin_lock(interrupt->actual_lock); + ret = LIN2WIN2(interrupt->isr, interrupt, interrupt->isr_ctx); + nt_spin_unlock(interrupt->actual_lock); + if (ret == TRUE) + EXIT6(return IRQ_HANDLED); + else + EXIT6(return IRQ_NONE); +} + +wstdcall NTSTATUS WIN_FUNC(IoConnectInterrupt,11) + (struct kinterrupt **kinterrupt, PKSERVICE_ROUTINE isr, void *isr_ctx, + NT_SPIN_LOCK *lock, ULONG vector, KIRQL irql, KIRQL synch_irql, + enum kinterrupt_mode mode, BOOLEAN shared, KAFFINITY cpu_mask, + BOOLEAN save_fp) +{ + struct kinterrupt *interrupt; + IOENTER(""); + interrupt = kzalloc(sizeof(*interrupt), GFP_KERNEL); + if (!interrupt) + IOEXIT(return STATUS_INSUFFICIENT_RESOURCES); + interrupt->vector = vector; + interrupt->cpu_mask = cpu_mask; + nt_spin_lock_init(&interrupt->lock); + if (lock) + interrupt->actual_lock = lock; + else + interrupt->actual_lock = &interrupt->lock; + interrupt->shared = shared; + interrupt->save_fp = save_fp; + interrupt->isr = isr; + interrupt->isr_ctx = isr_ctx; + InitializeListHead(&interrupt->list); + interrupt->irql = irql; + interrupt->synch_irql = synch_irql; + interrupt->mode = mode; + if (request_irq(vector, io_irq_isr, shared ? IRQF_SHARED : 0, + "ndiswrapper", interrupt)) { + WARNING("request for irq %d failed", vector); + kfree(interrupt); + IOEXIT(return STATUS_INSUFFICIENT_RESOURCES); + } + *kinterrupt = interrupt; +#ifdef CONFIG_DEBUG_SHIRQ + interrupt->u.enabled = 1; +#endif + IOEXIT(return STATUS_SUCCESS); +} + +wstdcall void WIN_FUNC(IoDisconnectInterrupt,1) + (struct kinterrupt *interrupt) +{ +#ifdef CONFIG_DEBUG_SHIRQ + interrupt->u.enabled = 0; +#endif + free_irq(interrupt->vector, interrupt); + kfree(interrupt); +} + +wstdcall struct mdl *WIN_FUNC(IoAllocateMdl,5) + (void *virt, ULONG length, BOOLEAN second_buf, BOOLEAN charge_quota, + struct irp *irp) +{ + struct mdl *mdl; + mdl = allocate_init_mdl(virt, length); + if (!mdl) + return NULL; + if (irp) { + if (second_buf == TRUE) { + struct mdl *last; + + last = irp->mdl; + while (last->next) + last = last->next; + last->next = mdl; + } else + irp->mdl = mdl; + } + IOTRACE("%p", mdl); + return mdl; +} + +wstdcall void WIN_FUNC(IoFreeMdl,1) + (struct mdl *mdl) +{ + IOTRACE("%p", mdl); + free_mdl(mdl); +} + +wstdcall struct io_workitem *WIN_FUNC(IoAllocateWorkItem,1) + (struct device_object *dev_obj) +{ + struct io_workitem *io_workitem; + + IOENTER("%p", dev_obj); + io_workitem = kmalloc(sizeof(*io_workitem), irql_gfp()); + if (!io_workitem) + IOEXIT(return NULL); + io_workitem->dev_obj = dev_obj; + IOEXIT(return io_workitem); +} + +wstdcall void WIN_FUNC(IoFreeWorkItem,1) + (struct io_workitem *io_workitem) +{ + kfree(io_workitem); + IOEXIT(return); +} + +wstdcall void WIN_FUNC(IoQueueWorkItem,4) + (struct io_workitem *io_workitem, void *func, + enum work_queue_type queue_type, void *context) +{ + IOENTER("%p, %p", io_workitem, io_workitem->dev_obj); + io_workitem->worker_routine = func; + io_workitem->context = context; + schedule_ntos_work_item(func, io_workitem->dev_obj, context); + IOEXIT(return); +} + +wstdcall void WIN_FUNC(ExQueueWorkItem,2) + (struct io_workitem *io_workitem, enum work_queue_type queue_type) +{ + IOENTER("%p", io_workitem); + schedule_ntos_work_item(io_workitem->worker_routine, + io_workitem->dev_obj, io_workitem->context); +} + +wstdcall NTSTATUS WIN_FUNC(IoAllocateDriverObjectExtension,4) + (struct driver_object *drv_obj, void *client_id, ULONG extlen, + void **ext) +{ + struct custom_ext *ce; + + IOENTER("%p, %p", drv_obj, client_id); + ce = kmalloc(sizeof(*ce) + extlen, irql_gfp()); + if (ce == NULL) + return STATUS_INSUFFICIENT_RESOURCES; + + IOTRACE("custom_ext: %p", ce); + ce->client_id = client_id; + spin_lock_bh(&ntoskernel_lock); + InsertTailList(&drv_obj->drv_ext->custom_ext, &ce->list); + spin_unlock_bh(&ntoskernel_lock); + + *ext = (void *)ce + sizeof(*ce); + IOTRACE("ext: %p", *ext); + IOEXIT(return STATUS_SUCCESS); +} + +wstdcall void *WIN_FUNC(IoGetDriverObjectExtension,2) + (struct driver_object *drv_obj, void *client_id) +{ + struct custom_ext *ce; + void *ret; + + IOENTER("drv_obj: %p, client_id: %p", drv_obj, client_id); + ret = NULL; + spin_lock_bh(&ntoskernel_lock); + nt_list_for_each_entry(ce, &drv_obj->drv_ext->custom_ext, list) { + if (ce->client_id == client_id) { + ret = (void *)ce + sizeof(*ce); + break; + } + } + spin_unlock_bh(&ntoskernel_lock); + IOTRACE("ret: %p", ret); + return ret; +} + +void free_custom_extensions(struct driver_extension *drv_ext) +{ + struct nt_list *ent; + + IOENTER("%p", drv_ext); + spin_lock_bh(&ntoskernel_lock); + while ((ent = RemoveHeadList(&drv_ext->custom_ext))) + kfree(ent); + spin_unlock_bh(&ntoskernel_lock); + IOEXIT(return); +} + +wstdcall NTSTATUS WIN_FUNC(IoCreateDevice,7) + (struct driver_object *drv_obj, ULONG dev_ext_length, + struct unicode_string *dev_name, DEVICE_TYPE dev_type, + ULONG dev_chars, BOOLEAN exclusive, struct device_object **newdev) +{ + struct device_object *dev; + struct dev_obj_ext *dev_obj_ext; + int size; + + IOENTER("%p, %u, %p", drv_obj, dev_ext_length, dev_name); + + size = sizeof(*dev) + dev_ext_length + sizeof(*dev_obj_ext); + dev = allocate_object(size, OBJECT_TYPE_DEVICE, dev_name); + if (!dev) + IOEXIT(return STATUS_INSUFFICIENT_RESOURCES); + if (dev_ext_length) + dev->dev_ext = dev + 1; + else + dev->dev_ext = NULL; + + dev_obj_ext = ((void *)(dev + 1)) + dev_ext_length; + dev_obj_ext->dev_obj = dev; + dev_obj_ext->size = 0; + dev_obj_ext->type = IO_TYPE_DEVICE; + dev->dev_obj_ext = dev_obj_ext; + + dev->type = dev_type; + dev->flags = 0; + dev->size = sizeof(*dev) + dev_ext_length; + dev->ref_count = 1; + dev->attached = NULL; + dev->stack_count = 1; + + dev->drv_obj = drv_obj; + dev->next = drv_obj->dev_obj; + drv_obj->dev_obj = dev; + + dev->align_req = 1; + dev->characteristics = dev_chars; + dev->io_timer = NULL; + KeInitializeEvent(&dev->lock, SynchronizationEvent, TRUE); + dev->vpb = NULL; + + IOTRACE("dev: %p, ext: %p", dev, dev->dev_ext); + *newdev = dev; + IOEXIT(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(IoCreateUnprotectedSymbolicLink,2) + (struct unicode_string *link, struct unicode_string *dev_name) +{ + struct ansi_string ansi; + + IOENTER("%p, %p", dev_name, link); + if (dev_name && (RtlUnicodeStringToAnsiString(&ansi, dev_name, TRUE) == + STATUS_SUCCESS)) { + IOTRACE("dev_name: %s", ansi.buf); + RtlFreeAnsiString(&ansi); + } + if (link && (RtlUnicodeStringToAnsiString(&ansi, link, TRUE) == + STATUS_SUCCESS)) { + IOTRACE("link: %s", ansi.buf); + RtlFreeAnsiString(&ansi); + } +// TODO(); + IOEXIT(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(IoCreateSymbolicLink,2) + (struct unicode_string *link, struct unicode_string *dev_name) +{ + IOEXIT(return IoCreateUnprotectedSymbolicLink(link, dev_name)); +} + +wstdcall NTSTATUS WIN_FUNC(IoDeleteSymbolicLink,1) + (struct unicode_string *link) +{ + struct ansi_string ansi; + + IOENTER("%p", link); + if (link && (RtlUnicodeStringToAnsiString(&ansi, link, TRUE) == + STATUS_SUCCESS)) { + IOTRACE("dev_name: %s", ansi.buf); + RtlFreeAnsiString(&ansi); + } + IOEXIT(return STATUS_SUCCESS); +} + +wstdcall void WIN_FUNC(IoDeleteDevice,1) + (struct device_object *dev) +{ + IOENTER("%p", dev); + if (dev == NULL) + IOEXIT(return); + IOTRACE("drv_obj: %p", dev->drv_obj); + if (dev->drv_obj) { + struct device_object *prev; + + prev = dev->drv_obj->dev_obj; + IOTRACE("dev_obj: %p", prev); + if (prev == dev) + dev->drv_obj->dev_obj = dev->next; + else if (prev) { + while (prev->next != dev) + prev = prev->next; + prev->next = dev->next; + } + } + ObDereferenceObject(dev); + IOEXIT(return); +} + +wstdcall void WIN_FUNC(IoDetachDevice,1) + (struct device_object *tgt) +{ + struct device_object *tail; + + IOENTER("%p", tgt); + if (!tgt) + IOEXIT(return); + tail = tgt->attached; + if (!tail) + IOEXIT(return); + IOTRACE("tail: %p", tail); + + spin_lock_bh(&ntoskernel_lock); + tgt->attached = tail->attached; + IOTRACE("attached:%p", tgt->attached); + for ( ; tail; tail = tail->attached) { + IOTRACE("tail:%p", tail); + tail->stack_count--; + } + spin_unlock_bh(&ntoskernel_lock); + IOEXIT(return); +} + +wstdcall struct device_object *WIN_FUNC(IoGetAttachedDevice,1) + (struct device_object *dev) +{ + IOENTER("%p", dev); + if (!dev) + IOEXIT(return NULL); + spin_lock_bh(&ntoskernel_lock); + while (dev->attached) + dev = dev->attached; + spin_unlock_bh(&ntoskernel_lock); + IOEXIT(return dev); +} + +wstdcall struct device_object *WIN_FUNC(IoGetAttachedDeviceReference,1) + (struct device_object *dev) +{ + IOENTER("%p", dev); + if (!dev) + IOEXIT(return NULL); + dev = IoGetAttachedDevice(dev); + ObReferenceObject(dev); + IOEXIT(return dev); +} + +wstdcall struct device_object *WIN_FUNC(IoAttachDeviceToDeviceStack,2) + (struct device_object *src, struct device_object *tgt) +{ + struct device_object *attached; + struct dev_obj_ext *src_dev_ext; + + IOENTER("%p, %p", src, tgt); + attached = IoGetAttachedDevice(tgt); + IOTRACE("%p", attached); + src_dev_ext = src->dev_obj_ext; + spin_lock_bh(&ntoskernel_lock); + if (attached) + attached->attached = src; + src->attached = NULL; + src->stack_count = attached->stack_count + 1; + src_dev_ext->attached_to = attached; + spin_unlock_bh(&ntoskernel_lock); + IOTRACE("stack_count: %d -> %d", attached->stack_count, + src->stack_count); + IOEXIT(return attached); +} + +wstdcall NTSTATUS WIN_FUNC(IoGetDeviceProperty,5) + (struct device_object *pdo, enum device_registry_property dev_property, + ULONG buffer_len, void *buffer, ULONG *result_len) +{ + struct ansi_string ansi; + struct unicode_string unicode; + struct wrap_device *wd; + ULONG need; + + IOENTER("dev_obj = %p, dev_property = %d, buffer_len = %u, " + "buffer = %p, result_len = %p", pdo, dev_property, + buffer_len, buffer, result_len); + + wd = pdo->reserved; + switch (dev_property) { + case DevicePropertyDeviceDescription: + case DevicePropertyFriendlyName: + case DevicePropertyDriverKeyName: + if (wrap_is_pci_bus(wd->dev_bus)) + RtlInitAnsiString(&ansi, "PCI"); + else // if (wrap_is_usb_bus(wd->dev_bus)) + RtlInitAnsiString(&ansi, "USB"); + need = sizeof(wchar_t) * (ansi.max_length + 1); + if (buffer_len < need) { + *result_len = need; + IOEXIT(return STATUS_BUFFER_TOO_SMALL); + } + unicode.max_length = buffer_len; + unicode.buf = buffer; + if (RtlAnsiStringToUnicodeString(&unicode, &ansi, + FALSE) != STATUS_SUCCESS) { + *result_len = unicode.length; + IOEXIT(return STATUS_BUFFER_TOO_SMALL); + } + IOEXIT(return STATUS_SUCCESS); + default: + WARNING("%d not implemented", dev_property); + IOEXIT(return STATUS_INVALID_PARAMETER_2); + } +} + +wstdcall NTSTATUS WIN_FUNC(IoGetDeviceObjectPointer,4) + (struct unicode_string *name, ACCESS_MASK desired_access, + void *file_obj, struct device_object *dev_obj) +{ + struct common_object_header *coh; + + dev_obj = NULL; + /* TODO: access is not checked and file_obj is set to NULL */ + file_obj = NULL; + spin_lock_bh(&ntoskernel_lock); + nt_list_for_each_entry(coh, &object_list, list) { + TRACE5("header: %p, type: %d", coh, coh->type); + if (coh->type != OBJECT_TYPE_DEVICE) + continue; + if (!RtlCompareUnicodeString(&coh->name, name, TRUE)) { + dev_obj = HEADER_TO_OBJECT(coh); + TRACE5("dev_obj: %p", dev_obj); + break; + } + } + spin_unlock_bh(&ntoskernel_lock); + if (dev_obj) + IOEXIT(return STATUS_SUCCESS); + else + IOEXIT(return STATUS_OBJECT_NAME_INVALID); +} + +/* NOTE: Make sure to compile with -freg-struct-return, so gcc will + * return union in register, like Windows */ +wstdcall union power_state WIN_FUNC(PoSetPowerState,3) + (struct device_object *dev_obj, enum power_state_type type, + union power_state state) +{ + IOEXIT(return state); +} + +wstdcall NTSTATUS WIN_FUNC(PoCallDriver,2) + (struct device_object *dev_obj, struct irp *irp) +{ + return IoCallDriver(dev_obj, irp); +} + +wstdcall NTSTATUS WIN_FUNC(PoRequestPowerIrp,6) + (struct device_object *dev_obj, UCHAR minor_fn, + union power_state power_state, void *completion_func, + void *context, struct irp **pirp) +{ + struct irp *irp; + struct io_stack_location *irp_sl; + + TRACE1("%p, %d, %p", dev_obj, dev_obj->stack_count, dev_obj->drv_obj); + irp = IoAllocateIrp(dev_obj->stack_count, FALSE); + if (!irp) + return STATUS_INSUFFICIENT_RESOURCES; + irp_sl = IoGetNextIrpStackLocation(irp); + irp_sl->major_fn = IRP_MJ_POWER; + irp_sl->minor_fn = minor_fn; + if (minor_fn == IRP_MN_WAIT_WAKE) + irp_sl->params.power.type = SystemPowerState; + else + irp_sl->params.power.type = DevicePowerState; + irp_sl->params.power.state = power_state; + irp_sl->completion_routine = completion_func; + irp->io_status.status = STATUS_NOT_SUPPORTED; + *pirp = irp; + return PoCallDriver(dev_obj, irp); +} + +wstdcall void WIN_FUNC(PoStartNextPowerIrp,1) + (struct irp *irp) +{ + IOENTER("irp = %p", irp); + IOEXIT(return); +} + +wstdcall void WIN_FUNC(IoInitializeRemoveLockEx,5) + (struct io_remove_lock *lock, ULONG alloc_tag, ULONG max_locked_min, + ULONG high_mark, ULONG lock_size) +{ + TODO(); +} + +wstdcall void *WIN_FUNC(IoAllocateErrorLogEntry,2) + (void *io_object, UCHAR entry_size) +{ + /* not implemented fully */ + void *ret = kmalloc(sizeof(struct io_error_log_packet) + entry_size, + irql_gfp()); + TRACE2("%p", ret); + if (ret) + return ret + sizeof(struct io_error_log_packet); + else + return NULL; +} + +wstdcall void WIN_FUNC(IoWriteErrorLogEntry,1) + (void *entry) +{ + /* TODO: log error with codes and message */ + ERROR(""); +} + +wstdcall void WIN_FUNC(IoFreeErrorLogEntry,1) + (void *entry) +{ + TRACE2("%p", entry); + kfree(entry - sizeof(struct io_error_log_packet)); +} + +wstdcall NTSTATUS WIN_FUNC(IoAcquireRemoveLockEx,5) + (struct io_remove_lock lock, void *tag, char *file, ULONG line, + ULONG lock_size) +{ + TODO(); + IOEXIT(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(IoReleaseRemoveLockEx,3) + (struct io_remove_lock lock, void *tag, ULONG lock_size) +{ + TODO(); + IOEXIT(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS WIN_FUNC(IoRegisterDeviceInterface,4) + (struct device_object *pdo, struct guid *guid_class, + struct unicode_string *reference, struct unicode_string *link) +{ + struct ansi_string ansi; + + /* TODO: check if pdo is valid */ + RtlInitAnsiString(&ansi, "ndis"); + ENTER1("pdo: %p, ref: %p, link: %p, %x, %x, %x", pdo, reference, link, + guid_class->data1, guid_class->data2, guid_class->data3); + return RtlAnsiStringToUnicodeString(link, &ansi, TRUE); +} + +wstdcall NTSTATUS WIN_FUNC(IoSetDeviceInterfaceState,2) + (struct unicode_string *link, BOOLEAN enable) +{ + ENTER1("link: %p, enable: %d", link, enable); + return STATUS_SUCCESS; +} + +wstdcall NTSTATUS WIN_FUNC(IoOpenDeviceRegistryKey,4) + (struct device_object *dev_obj, ULONG type, ACCESS_MASK mask, + void **handle) +{ + ENTER1("dev_obj: %p", dev_obj); + *handle = dev_obj; + return STATUS_SUCCESS; +} + +wstdcall NTSTATUS WIN_FUNC(IoWMIRegistrationControl,2) + (struct device_object *dev_obj, ULONG action) +{ + ENTER2("%p, %d", dev_obj, action); + EXIT2(return STATUS_SUCCESS); +} + +wstdcall void WIN_FUNC(IoInvalidateDeviceRelations,2) + (struct device_object *dev_obj, enum device_relation_type type) +{ + INFO("%p, %d", dev_obj, type); + TODO(); +} + +wstdcall void WIN_FUNC(IoInvalidateDeviceState,1) + (struct device_object *pdo) +{ + INFO("%p", pdo); + TODO(); +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/wrapndis.c +++ linux-2.6.35/ubuntu/ndiswrapper/wrapndis.c @@ -0,0 +1,2137 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "ndis.h" +#include "iw_ndis.h" +#include "pnp.h" +#include "loader.h" +#include "wrapndis.h" +#include +#include +#include +#include +#include +#include "wrapper.h" + +/* Functions callable from the NDIS driver */ +wstdcall NTSTATUS NdisDispatchDeviceControl(struct device_object *fdo, + struct irp *irp); +wstdcall NTSTATUS NdisDispatchPnp(struct device_object *fdo, struct irp *irp); +wstdcall NTSTATUS NdisDispatchPower(struct device_object *fdo, struct irp *irp); + +workqueue_struct_t *wrapndis_wq; +static struct nt_thread *wrapndis_worker_thread; + +static int set_packet_filter(struct ndis_device *wnd, + ULONG packet_filter); +static void add_iw_stats_timer(struct ndis_device *wnd); +static void del_iw_stats_timer(struct ndis_device *wnd); +static NDIS_STATUS ndis_start_device(struct ndis_device *wnd); +static int ndis_remove_device(struct ndis_device *wnd); +static void set_multicast_list(struct ndis_device *wnd); +static int ndis_net_dev_open(struct net_device *net_dev); +static int ndis_net_dev_close(struct net_device *net_dev); + +/* MiniportReset */ +NDIS_STATUS mp_reset(struct ndis_device *wnd) +{ + NDIS_STATUS res; + struct miniport *mp; + BOOLEAN reset_address; + KIRQL irql; + + ENTER2("wnd: %p", wnd); + if (down_interruptible(&wnd->tx_ring_mutex)) + EXIT3(return NDIS_STATUS_FAILURE); + if (down_interruptible(&wnd->ndis_req_mutex)) { + up(&wnd->tx_ring_mutex); + EXIT3(return NDIS_STATUS_FAILURE); + } + mp = &wnd->wd->driver->ndis_driver->mp; + prepare_wait_condition(wnd->ndis_req_task, wnd->ndis_req_done, 0); + WARNING("%s is being reset", wnd->net_dev->name); + irql = serialize_lock_irql(wnd); + assert_irql(_irql_ == DISPATCH_LEVEL); + res = LIN2WIN2(mp->reset, &reset_address, wnd->nmb->mp_ctx); + serialize_unlock_irql(wnd, irql); + + TRACE2("%08X, %08X", res, reset_address); + if (res == NDIS_STATUS_PENDING) { + /* wait for NdisMResetComplete */ + if (wait_condition((wnd->ndis_req_done > 0), 0, + TASK_INTERRUPTIBLE) < 0) + res = NDIS_STATUS_FAILURE; + else { + res = wnd->ndis_req_status; + reset_address = wnd->ndis_req_done - 1; + } + TRACE2("%08X, %08X", res, reset_address); + } + up(&wnd->ndis_req_mutex); + if (res == NDIS_STATUS_SUCCESS && reset_address) { + set_packet_filter(wnd, wnd->packet_filter); + set_multicast_list(wnd); + } + up(&wnd->tx_ring_mutex); + EXIT3(return res); +} + +/* MiniportRequest(Query/Set)Information */ +NDIS_STATUS mp_request(enum ndis_request_type request, + struct ndis_device *wnd, ndis_oid oid, + void *buf, ULONG buflen, ULONG *written, ULONG *needed) +{ + NDIS_STATUS res; + ULONG w, n; + struct miniport *mp; + KIRQL irql; + + if (down_interruptible(&wnd->ndis_req_mutex)) + EXIT3(return NDIS_STATUS_FAILURE); + if (!written) + written = &w; + if (!needed) + needed = &n; + mp = &wnd->wd->driver->ndis_driver->mp; + prepare_wait_condition(wnd->ndis_req_task, wnd->ndis_req_done, 0); + irql = serialize_lock_irql(wnd); + assert_irql(_irql_ == DISPATCH_LEVEL); + switch (request) { + case NdisRequestQueryInformation: + TRACE2("%p, %08X, %p", mp->queryinfo, oid, wnd->nmb->mp_ctx); + res = LIN2WIN6(mp->queryinfo, wnd->nmb->mp_ctx, oid, buf, + buflen, written, needed); + break; + case NdisRequestSetInformation: + TRACE2("%p, %08X, %p", mp->setinfo, oid, wnd->nmb->mp_ctx); + res = LIN2WIN6(mp->setinfo, wnd->nmb->mp_ctx, oid, buf, + buflen, written, needed); + break; + default: + WARNING("invalid request %d, %08X", request, oid); + res = NDIS_STATUS_NOT_SUPPORTED; + break; + } + serialize_unlock_irql(wnd, irql); + TRACE2("%08X, %08X", res, oid); + if (res == NDIS_STATUS_PENDING) { + /* wait for NdisMQueryInformationComplete */ + if (wait_condition((wnd->ndis_req_done > 0), 0, + TASK_INTERRUPTIBLE) < 0) + res = NDIS_STATUS_FAILURE; + else + res = wnd->ndis_req_status; + TRACE2("%08X, %08X", res, oid); + } + up(&wnd->ndis_req_mutex); + DBG_BLOCK(2) { + if (res || needed) + TRACE2("%08X, %d, %d, %d", res, buflen, *written, + *needed); + } + EXIT3(return res); +} + +/* MiniportPnPEventNotify */ +static NDIS_STATUS mp_pnp_event(struct ndis_device *wnd, + enum ndis_device_pnp_event event, + ULONG power_profile) +{ + struct miniport *mp; + + ENTER1("%p, %d", wnd, event); + mp = &wnd->wd->driver->ndis_driver->mp; + if (!mp->pnp_event_notify) { + TRACE1("Windows driver %s doesn't support " + "MiniportPnpEventNotify", wnd->wd->driver->name); + return NDIS_STATUS_FAILURE; + } + /* RNDIS driver doesn't like to be notified if device is + * already halted */ + if (!test_bit(HW_INITIALIZED, &wnd->wd->hw_status)) + EXIT1(return NDIS_STATUS_SUCCESS); + switch (event) { + case NdisDevicePnPEventSurpriseRemoved: + TRACE1("%u, %p", + (wnd->attributes & NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK), + mp->pnp_event_notify); + if ((wnd->attributes & NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK) && + !test_bit(HW_PRESENT, &wnd->wd->hw_status) && + mp->pnp_event_notify) { + TRACE1("calling surprise_removed"); + LIN2WIN4(mp->pnp_event_notify, wnd->nmb->mp_ctx, + NdisDevicePnPEventSurpriseRemoved, NULL, 0); + } else + TRACE1("Windows driver %s doesn't support " + "MiniportPnpEventNotify for safe unplugging", + wnd->wd->driver->name); + return NDIS_STATUS_SUCCESS; + case NdisDevicePnPEventPowerProfileChanged: + if (power_profile) + power_profile = NdisPowerProfileAcOnLine; + LIN2WIN4(mp->pnp_event_notify, wnd->nmb->mp_ctx, + NdisDevicePnPEventPowerProfileChanged, + &power_profile, (ULONG)sizeof(power_profile)); + return NDIS_STATUS_SUCCESS; + default: + WARNING("event %d not yet implemented", event); + return NDIS_STATUS_SUCCESS; + } +} + +/* MiniportInitialize */ +static NDIS_STATUS mp_init(struct ndis_device *wnd) +{ + NDIS_STATUS error_status, status; + UINT medium_index; + enum ndis_medium medium_array[] = {NdisMedium802_3}; + struct miniport *mp; + + ENTER1("irql: %d", current_irql()); + if (test_bit(HW_INITIALIZED, &wnd->wd->hw_status)) { + WARNING("device %p already initialized!", wnd); + return NDIS_STATUS_FAILURE; + } + + if (!wnd->wd->driver->ndis_driver || + !wnd->wd->driver->ndis_driver->mp.init) { + WARNING("assuming WDM (non-NDIS) driver"); + EXIT1(return NDIS_STATUS_NOT_RECOGNIZED); + } + mp = &wnd->wd->driver->ndis_driver->mp; + status = LIN2WIN6(mp->init, &error_status, &medium_index, medium_array, + sizeof(medium_array) / sizeof(medium_array[0]), + wnd->nmb, wnd->nmb); + TRACE1("init returns: %08X, irql: %d", status, current_irql()); + if (status != NDIS_STATUS_SUCCESS) { + WARNING("couldn't initialize device: %08X", status); + EXIT1(return NDIS_STATUS_FAILURE); + } + + /* Wait a little to let card power up otherwise ifup might + * fail after boot */ + sleep_hz(HZ / 5); + status = mp_pnp_event(wnd, NdisDevicePnPEventPowerProfileChanged, + NdisPowerProfileAcOnLine); + if (status != NDIS_STATUS_SUCCESS) + TRACE1("setting power failed: %08X", status); + set_bit(HW_INITIALIZED, &wnd->wd->hw_status); + /* the description about NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND is + * misleading/confusing */ + status = mp_query(wnd, OID_PNP_CAPABILITIES, + &wnd->pnp_capa, sizeof(wnd->pnp_capa)); + if (status == NDIS_STATUS_SUCCESS) { + TRACE1("%d, %d", wnd->pnp_capa.wakeup.min_magic_packet_wakeup, + wnd->pnp_capa.wakeup.min_pattern_wakeup); + wnd->attributes |= NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND; + status = mp_query_int(wnd, OID_PNP_ENABLE_WAKE_UP, + &wnd->ndis_wolopts); + TRACE1("%08X, %x", status, wnd->ndis_wolopts); + } else if (status == NDIS_STATUS_NOT_SUPPORTED) + wnd->attributes &= ~NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND; + TRACE1("%d", wnd->pnp_capa.wakeup.min_magic_packet_wakeup); + /* although some NDIS drivers support suspend, Linux kernel + * has issues with suspending USB devices */ + if (wrap_is_usb_bus(wnd->wd->dev_bus)) { + wnd->attributes &= ~NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND; + wnd->ndis_wolopts = 0; + } + mp_set_int(wnd, OID_802_11_POWER_MODE, NDIS_POWER_OFF); + EXIT1(return NDIS_STATUS_SUCCESS); +} + +/* MiniportHalt */ +static void mp_halt(struct ndis_device *wnd) +{ + struct miniport *mp; + + ENTER1("%p", wnd); + if (!test_and_clear_bit(HW_INITIALIZED, &wnd->wd->hw_status)) { + WARNING("device %p is not initialized - not halting", wnd); + return; + } + hangcheck_del(wnd); + del_iw_stats_timer(wnd); + if (wnd->physical_medium == NdisPhysicalMediumWirelessLan && + wrap_is_pci_bus(wnd->wd->dev_bus)) { + up(&wnd->ndis_req_mutex); + disassociate(wnd, 0); + if (down_interruptible(&wnd->ndis_req_mutex)) + WARNING("couldn't obtain ndis_req_mutex"); + } + mp = &wnd->wd->driver->ndis_driver->mp; + TRACE1("halt: %p", mp->mp_halt); + LIN2WIN1(mp->mp_halt, wnd->nmb->mp_ctx); + /* if a driver doesn't call NdisMDeregisterInterrupt during + * halt, deregister it now */ + if (wnd->mp_interrupt) + NdisMDeregisterInterrupt(wnd->mp_interrupt); + /* cancel any timers left by bugyy windows driver; also free + * the memory for timers */ + while (1) { + struct nt_slist *slist; + struct wrap_timer *wrap_timer; + + spin_lock_bh(&ntoskernel_lock); + if ((slist = wnd->wrap_timer_slist.next)) + wnd->wrap_timer_slist.next = slist->next; + spin_unlock_bh(&ntoskernel_lock); + TIMERTRACE("%p", slist); + if (!slist) + break; + wrap_timer = container_of(slist, struct wrap_timer, slist); + wrap_timer->repeat = 0; + /* ktimer that this wrap_timer is associated to can't + * be touched, as it may have been freed by the driver + * already */ + if (del_timer_sync(&wrap_timer->timer)) + WARNING("Buggy Windows driver left timer %p " + "running", wrap_timer->nt_timer); + memset(wrap_timer, 0, sizeof(*wrap_timer)); + kfree(wrap_timer); + } + EXIT1(return); +} + +static NDIS_STATUS mp_set_power_state(struct ndis_device *wnd, + enum ndis_power_state state) +{ + NDIS_STATUS status; + + TRACE1("%d", state); + if (state == NdisDeviceStateD0) { + status = NDIS_STATUS_SUCCESS; + up(&wnd->ndis_req_mutex); + if (test_and_clear_bit(HW_HALTED, &wnd->wd->hw_status)) { + status = mp_init(wnd); + if (status == NDIS_STATUS_SUCCESS) { + set_packet_filter(wnd, wnd->packet_filter); + set_multicast_list(wnd); + } + } else if (test_and_clear_bit(HW_SUSPENDED, + &wnd->wd->hw_status)) { + status = mp_set_int(wnd, OID_PNP_SET_POWER, state); + if (status != NDIS_STATUS_SUCCESS) + WARNING("%s: setting power to state %d failed? " + "%08X", wnd->net_dev->name, state, + status); + } else + return NDIS_STATUS_FAILURE; + + if (wrap_is_pci_bus(wnd->wd->dev_bus)) { + pci_enable_wake(wnd->wd->pci.pdev, PCI_D3hot, 0); + pci_enable_wake(wnd->wd->pci.pdev, PCI_D3cold, 0); + } + if (status == NDIS_STATUS_SUCCESS) { + up(&wnd->tx_ring_mutex); + netif_device_attach(wnd->net_dev); + hangcheck_add(wnd); + add_iw_stats_timer(wnd); + } else + WARNING("%s: couldn't set power to state %d; device not" + " resumed", wnd->net_dev->name, state); + EXIT1(return status); + } else { + if (down_interruptible(&wnd->tx_ring_mutex)) + EXIT1(return NDIS_STATUS_FAILURE); + netif_device_detach(wnd->net_dev); + hangcheck_del(wnd); + del_iw_stats_timer(wnd); + status = NDIS_STATUS_NOT_SUPPORTED; + if (wnd->attributes & NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND) { + status = mp_set_int(wnd, OID_PNP_ENABLE_WAKE_UP, + wnd->ndis_wolopts); + TRACE2("0x%x, 0x%x", status, wnd->ndis_wolopts); + if (status == NDIS_STATUS_SUCCESS) { + if (wnd->ndis_wolopts) + wnd->wd->pci.wake_state = + PowerDeviceD3; + else + wnd->wd->pci.wake_state = + PowerDeviceUnspecified; + } else + WARNING("couldn't set wake-on-lan options: " + "0x%x, %08X", wnd->ndis_wolopts, status); + status = mp_set_int(wnd, OID_PNP_SET_POWER, state); + if (status == NDIS_STATUS_SUCCESS) + set_bit(HW_SUSPENDED, &wnd->wd->hw_status); + else + WARNING("suspend failed: %08X", status); + } + if (status != NDIS_STATUS_SUCCESS) { + WARNING("%s does not support power management; " + "halting the device", wnd->net_dev->name); + mp_halt(wnd); + set_bit(HW_HALTED, &wnd->wd->hw_status); + status = STATUS_SUCCESS; + } + if (down_interruptible(&wnd->ndis_req_mutex)) + WARNING("couldn't lock ndis_req_mutex"); + EXIT1(return status); + } +} + +static int ndis_set_mac_address(struct net_device *dev, void *p) +{ + struct ndis_device *wnd = netdev_priv(dev); + struct sockaddr *addr = p; + struct ndis_configuration_parameter param; + struct unicode_string key; + struct ansi_string ansi; + NDIS_STATUS res; + unsigned char mac_string[2 * ETH_ALEN + 1]; + mac_address mac; + + memcpy(mac, addr->sa_data, sizeof(mac)); + memset(mac_string, 0, sizeof(mac_string)); + res = snprintf(mac_string, sizeof(mac_string), MACSTR, MAC2STR(mac)); + if (res != (sizeof(mac_string) - 1)) + EXIT1(return -EINVAL); + TRACE1("new mac: %s", mac_string); + + RtlInitAnsiString(&ansi, mac_string); + if (RtlAnsiStringToUnicodeString(¶m.data.string, &ansi, + TRUE) != STATUS_SUCCESS) + EXIT1(return -EINVAL); + + param.type = NdisParameterString; + RtlInitAnsiString(&ansi, "NetworkAddress"); + if (RtlAnsiStringToUnicodeString(&key, &ansi, TRUE) != STATUS_SUCCESS) { + RtlFreeUnicodeString(¶m.data.string); + EXIT1(return -EINVAL); + } + NdisWriteConfiguration(&res, wnd->nmb, &key, ¶m); + RtlFreeUnicodeString(&key); + RtlFreeUnicodeString(¶m.data.string); + + if (res != NDIS_STATUS_SUCCESS) + EXIT1(return -EFAULT); + if (ndis_reinit(wnd) == NDIS_STATUS_SUCCESS) { + res = mp_query(wnd, OID_802_3_CURRENT_ADDRESS, + mac, sizeof(mac)); + if (res == NDIS_STATUS_SUCCESS) { + TRACE1("mac:" MACSTRSEP, MAC2STR(mac)); + memcpy(dev->dev_addr, mac, sizeof(mac)); + } else + ERROR("couldn't get mac address: %08X", res); + } + EXIT1(return 0); +} + +static int setup_tx_sg_list(struct ndis_device *wnd, struct sk_buff *skb, + struct ndis_packet_oob_data *oob_data) +{ + struct ndis_sg_element *sg_element; + struct ndis_sg_list *sg_list; + int i; + + ENTER3("%p, %d", skb, skb_shinfo(skb)->nr_frags); + if (skb_shinfo(skb)->nr_frags <= 1) { + sg_element = &oob_data->wrap_tx_sg_list.elements[0]; + sg_element->address = + PCI_DMA_MAP_SINGLE(wnd->wd->pci.pdev, skb->data, + skb->len, PCI_DMA_TODEVICE); + sg_element->length = skb->len; + oob_data->wrap_tx_sg_list.nent = 1; + oob_data->ext.info[ScatterGatherListPacketInfo] = + &oob_data->wrap_tx_sg_list; + TRACE3("%Lx, %u", sg_element->address, sg_element->length); + return 0; + } + sg_list = kmalloc(sizeof(*sg_list) + + (skb_shinfo(skb)->nr_frags + 1) * sizeof(*sg_element), + GFP_ATOMIC); + if (!sg_list) + return -ENOMEM; + sg_list->nent = skb_shinfo(skb)->nr_frags + 1; + TRACE3("%p, %d", sg_list, sg_list->nent); + sg_element = sg_list->elements; + sg_element->length = skb_headlen(skb); + sg_element->address = + PCI_DMA_MAP_SINGLE(wnd->wd->pci.pdev, skb->data, + skb_headlen(skb), PCI_DMA_TODEVICE); + for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { + skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; + sg_element++; + sg_element->length = frag->size; + sg_element->address = + pci_map_page(wnd->wd->pci.pdev, frag->page, + frag->page_offset, frag->size, + PCI_DMA_TODEVICE); + TRACE3("%Lx, %u", sg_element->address, sg_element->length); + } + oob_data->ext.info[ScatterGatherListPacketInfo] = sg_list; + return 0; +} + +static void free_tx_sg_list(struct ndis_device *wnd, + struct ndis_packet_oob_data *oob_data) +{ + int i; + struct ndis_sg_element *sg_element; + struct ndis_sg_list *sg_list = + oob_data->ext.info[ScatterGatherListPacketInfo]; + sg_element = sg_list->elements; + TRACE3("%p, %d", sg_list, sg_list->nent); + PCI_DMA_UNMAP_SINGLE(wnd->wd->pci.pdev, sg_element->address, + sg_element->length, PCI_DMA_TODEVICE); + if (sg_list->nent == 1) + EXIT3(return); + for (i = 1; i < sg_list->nent; i++, sg_element++) { + TRACE3("%Lx, %u", sg_element->address, sg_element->length); + pci_unmap_page(wnd->wd->pci.pdev, sg_element->address, + sg_element->length, PCI_DMA_TODEVICE); + } + TRACE3("%p", sg_list); + kfree(sg_list); +} + +static struct ndis_packet *alloc_tx_packet(struct ndis_device *wnd, + struct sk_buff *skb) +{ + struct ndis_packet *packet; + ndis_buffer *buffer; + struct ndis_packet_oob_data *oob_data; + NDIS_STATUS status; + + NdisAllocatePacket(&status, &packet, wnd->tx_packet_pool); + if (status != NDIS_STATUS_SUCCESS) + return NULL; + NdisAllocateBuffer(&status, &buffer, wnd->tx_buffer_pool, + skb->data, skb->len); + if (status != NDIS_STATUS_SUCCESS) { + NdisFreePacket(packet); + return NULL; + } + packet->private.buffer_head = buffer; + packet->private.buffer_tail = buffer; + + oob_data = NDIS_PACKET_OOB_DATA(packet); + oob_data->tx_skb = skb; + if (wnd->sg_dma_size) { + if (setup_tx_sg_list(wnd, skb, oob_data)) { + NdisFreeBuffer(buffer); + NdisFreePacket(packet); + return NULL; + } + } + if (skb->ip_summed == CHECKSUM_PARTIAL) { + struct ndis_tcp_ip_checksum_packet_info csum; + int protocol; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21) + protocol = ntohs(skb->protocol); +#else + protocol = skb->nh.iph->protocol; +#endif + csum.value = 0; + csum.tx.v4 = 1; + if (protocol == IPPROTO_TCP) + csum.tx.tcp = 1; + else if (protocol == IPPROTO_UDP) + csum.tx.udp = 1; +// csum->tx.ip = 1; + packet->private.flags |= NDIS_PROTOCOL_ID_TCP_IP; + oob_data->ext.info[TcpIpChecksumPacketInfo] = + (void *)(ULONG_PTR)csum.value; + } + DBG_BLOCK(4) { + dump_bytes(__func__, skb->data, skb->len); + } + TRACE4("%p, %p, %p", packet, buffer, skb); + return packet; +} + +void free_tx_packet(struct ndis_device *wnd, struct ndis_packet *packet, + NDIS_STATUS status) +{ + ndis_buffer *buffer; + struct ndis_packet_oob_data *oob_data; + struct sk_buff *skb; + struct ndis_packet_pool *pool; + + assert_irql(_irql_ <= DISPATCH_LEVEL); + assert(packet->private.packet_flags); + oob_data = NDIS_PACKET_OOB_DATA(packet); + skb = oob_data->tx_skb; + buffer = packet->private.buffer_head; + TRACE4("%p, %p, %p, %08X", packet, buffer, skb, status); + if (status == NDIS_STATUS_SUCCESS) { + pre_atomic_add(wnd->net_stats.tx_bytes, packet->private.len); + atomic_inc_var(wnd->net_stats.tx_packets); + } else { + TRACE1("packet dropped: %08X", status); + atomic_inc_var(wnd->net_stats.tx_dropped); + } + if (wnd->sg_dma_size) + free_tx_sg_list(wnd, oob_data); + NdisFreeBuffer(buffer); + dev_kfree_skb_any(skb); + pool = packet->private.pool; + NdisFreePacket(packet); + if (netif_queue_stopped(wnd->net_dev) && + ((pool->max_descr - pool->num_used_descr) >= + (wnd->max_tx_packets / 4))) { + set_bit(NETIF_WAKEQ, &wnd->ndis_pending_work); + schedule_wrapndis_work(&wnd->ndis_work); + } + EXIT4(return); +} + +/* MiniportSend and MiniportSendPackets */ +/* this function is called holding tx_ring_mutex. start and n are such + * that start + n < TX_RING_SIZE; i.e., packets don't wrap around + * ring */ +static u8 mp_tx_packets(struct ndis_device *wnd, u8 start, u8 n) +{ + NDIS_STATUS res; + struct miniport *mp; + struct ndis_packet *packet; + u8 sent; + KIRQL irql; + + ENTER3("%d, %d", start, n); + mp = &wnd->wd->driver->ndis_driver->mp; + if (mp->send_packets) { + if (deserialized_driver(wnd)) { + LIN2WIN3(mp->send_packets, wnd->nmb->mp_ctx, + &wnd->tx_ring[start], n); + sent = n; + } else { + irql = serialize_lock_irql(wnd); + LIN2WIN3(mp->send_packets, wnd->nmb->mp_ctx, + &wnd->tx_ring[start], n); + serialize_unlock_irql(wnd, irql); + for (sent = 0; sent < n && wnd->tx_ok; sent++) { + struct ndis_packet_oob_data *oob_data; + packet = wnd->tx_ring[start + sent]; + oob_data = NDIS_PACKET_OOB_DATA(packet); + switch ((res = + xchg(&oob_data->status, + NDIS_STATUS_NOT_RECOGNIZED))) { + case NDIS_STATUS_SUCCESS: + free_tx_packet(wnd, packet, + NDIS_STATUS_SUCCESS); + break; + case NDIS_STATUS_PENDING: + break; + case NDIS_STATUS_RESOURCES: + wnd->tx_ok = 0; + /* resubmit this packet and + * the rest when resources + * become available */ + sent--; + break; + case NDIS_STATUS_FAILURE: + free_tx_packet(wnd, packet, + NDIS_STATUS_FAILURE); + break; + default: + ERROR("%p: invalid status: %08X", + packet, res); + free_tx_packet(wnd, packet, + oob_data->status); + break; + } + TRACE3("%p, %d", packet, res); + } + } + TRACE3("sent: %d(%d)", sent, n); + } else { + for (sent = 0; sent < n && wnd->tx_ok; sent++) { + struct ndis_packet_oob_data *oob_data; + packet = wnd->tx_ring[start + sent]; + oob_data = NDIS_PACKET_OOB_DATA(packet); + oob_data->status = NDIS_STATUS_NOT_RECOGNIZED; + irql = serialize_lock_irql(wnd); + res = LIN2WIN3(mp->send, wnd->nmb->mp_ctx, + packet, packet->private.flags); + serialize_unlock_irql(wnd, irql); + switch (res) { + case NDIS_STATUS_SUCCESS: + free_tx_packet(wnd, packet, res); + break; + case NDIS_STATUS_PENDING: + break; + case NDIS_STATUS_RESOURCES: + wnd->tx_ok = 0; + /* resend this packet when resources + * become available */ + sent--; + break; + case NDIS_STATUS_FAILURE: + free_tx_packet(wnd, packet, res); + break; + default: + ERROR("packet %p: invalid status: %08X", + packet, res); + break; + } + } + } + EXIT3(return sent); +} + +static void tx_worker(worker_param_t param) +{ + struct ndis_device *wnd; + s8 n; + + wnd = worker_param_data(param, struct ndis_device, tx_work); + ENTER3("tx_ok %d", wnd->tx_ok); + while (wnd->tx_ok) { + if (down_interruptible(&wnd->tx_ring_mutex)) + break; + spin_lock_bh(&wnd->tx_ring_lock); + n = wnd->tx_ring_end - wnd->tx_ring_start; + TRACE3("%d, %d, %d", wnd->tx_ring_start, wnd->tx_ring_end, n); + /* end == start if either ring is empty or full; in + * the latter case is_tx_ring_full is set */ + if (n == 0) { + if (wnd->is_tx_ring_full) + n = TX_RING_SIZE - wnd->tx_ring_start; + else { + spin_unlock_bh(&wnd->tx_ring_lock); + up(&wnd->tx_ring_mutex); + break; + } + } else if (n < 0) + n = TX_RING_SIZE - wnd->tx_ring_start; + spin_unlock_bh(&wnd->tx_ring_lock); + if (unlikely(n > wnd->max_tx_packets)) + n = wnd->max_tx_packets; + n = mp_tx_packets(wnd, wnd->tx_ring_start, n); + if (n) { + wnd->net_dev->trans_start = jiffies; + wnd->tx_ring_start = + (wnd->tx_ring_start + n) % TX_RING_SIZE; + wnd->is_tx_ring_full = 0; + } + up(&wnd->tx_ring_mutex); + TRACE3("%d, %d, %d", wnd->tx_ring_start, wnd->tx_ring_end, n); + } + EXIT3(return); +} + +static int tx_skbuff(struct sk_buff *skb, struct net_device *dev) +{ + struct ndis_device *wnd = netdev_priv(dev); + struct ndis_packet *packet; + + packet = alloc_tx_packet(wnd, skb); + if (!packet) { + TRACE2("couldn't allocate packet"); + netif_tx_lock(dev); + netif_stop_queue(dev); + netif_tx_unlock(dev); + return NETDEV_TX_BUSY; + } + spin_lock(&wnd->tx_ring_lock); + wnd->tx_ring[wnd->tx_ring_end++] = packet; + if (wnd->tx_ring_end == TX_RING_SIZE) + wnd->tx_ring_end = 0; + if (wnd->tx_ring_end == wnd->tx_ring_start) { + netif_tx_lock(dev); + wnd->is_tx_ring_full = 1; + netif_stop_queue(dev); + netif_tx_unlock(dev); + } + spin_unlock(&wnd->tx_ring_lock); + TRACE4("ring: %d, %d", wnd->tx_ring_start, wnd->tx_ring_end); + schedule_wrapndis_work(&wnd->tx_work); + return NETDEV_TX_OK; +} + +static int set_packet_filter(struct ndis_device *wnd, ULONG packet_filter) +{ + NDIS_STATUS res; + + while (1) { + res = mp_set_int(wnd, OID_GEN_CURRENT_PACKET_FILTER, + packet_filter); + if (res == NDIS_STATUS_SUCCESS) + break; + TRACE2("couldn't set filter 0x%08x", packet_filter); + /* NDIS_PACKET_TYPE_PROMISCUOUS may not work with 802.11 */ + if (packet_filter & NDIS_PACKET_TYPE_PROMISCUOUS) { + packet_filter &= ~NDIS_PACKET_TYPE_PROMISCUOUS; + continue; + } + if (packet_filter & NDIS_PACKET_TYPE_ALL_LOCAL) { + packet_filter &= ~NDIS_PACKET_TYPE_ALL_LOCAL; + continue; + } + if (packet_filter & NDIS_PACKET_TYPE_ALL_FUNCTIONAL) { + packet_filter &= ~NDIS_PACKET_TYPE_ALL_FUNCTIONAL; + continue; + } + if (packet_filter & NDIS_PACKET_TYPE_MULTICAST) { + packet_filter &= ~NDIS_PACKET_TYPE_MULTICAST; + packet_filter |= NDIS_PACKET_TYPE_ALL_MULTICAST; + continue; + } + if (packet_filter & NDIS_PACKET_TYPE_ALL_MULTICAST) { + packet_filter &= ~NDIS_PACKET_TYPE_ALL_MULTICAST; + continue; + } + break; + } + + wnd->packet_filter = packet_filter; + res = mp_query_int(wnd, OID_GEN_CURRENT_PACKET_FILTER, &packet_filter); + if (packet_filter != wnd->packet_filter) { + WARNING("filter not set: 0x%08x, 0x%08x", + packet_filter, wnd->packet_filter); + wnd->packet_filter = packet_filter; + } + if (wnd->packet_filter) + EXIT3(return 0); + else + EXIT3(return -1); +} + +void set_media_state(struct ndis_device *wnd, enum ndis_media_state state) +{ + ENTER2("state: 0x%x", state); + if (state == NdisMediaStateConnected) { + netif_carrier_on(wnd->net_dev); + wnd->tx_ok = 1; + if (netif_queue_stopped(wnd->net_dev)) + netif_wake_queue(wnd->net_dev); + if (wnd->physical_medium == NdisPhysicalMediumWirelessLan) { + set_bit(LINK_STATUS_ON, &wnd->ndis_pending_work); + schedule_wrapndis_work(&wnd->ndis_work); + } + } else if (state == NdisMediaStateDisconnected) { + netif_carrier_off(wnd->net_dev); + netif_stop_queue(wnd->net_dev); + wnd->tx_ok = 0; + if (wnd->physical_medium == NdisPhysicalMediumWirelessLan) { + memset(&wnd->essid, 0, sizeof(wnd->essid)); + set_bit(LINK_STATUS_OFF, &wnd->ndis_pending_work); + schedule_wrapndis_work(&wnd->ndis_work); + } + } else { + WARNING("invalid media state: 0x%x", state); + } +} + +static int ndis_net_dev_open(struct net_device *net_dev) +{ + ENTER1("%p", netdev_priv(net_dev)); + netif_start_queue(net_dev); + netif_poll_enable(net_dev); + EXIT1(return 0); +} + +static int ndis_net_dev_close(struct net_device *net_dev) +{ + ENTER1("%p", netdev_priv(net_dev)); + netif_poll_disable(net_dev); + netif_tx_disable(net_dev); + EXIT1(return 0); +} + +static int ndis_change_mtu(struct net_device *net_dev, int mtu) +{ + struct ndis_device *wnd = netdev_priv(net_dev); + int max; + + if (mtu < ETH_ZLEN) + return -EINVAL; + if (mp_query_int(wnd, OID_GEN_MAXIMUM_TOTAL_SIZE, &max) != + NDIS_STATUS_SUCCESS) + return -EOPNOTSUPP; + TRACE1("%d", max); + max -= ETH_HLEN; + if (max <= ETH_ZLEN) + return -EINVAL; + if (mtu + ETH_HLEN > max) + return -EINVAL; + net_dev->mtu = mtu; + return 0; +} + +#ifdef CONFIG_NET_POLL_CONTROLLER +static void ndis_poll_controller(struct net_device *dev) +{ + struct ndis_device *wnd = netdev_priv(dev); + + disable_irq(dev->irq); + ndis_isr(wnd->mp_interrupt->kinterrupt, wnd->mp_interrupt); + enable_irq(dev->irq); +} +#endif + +/* called from BH context */ +static struct net_device_stats *ndis_get_stats(struct net_device *dev) +{ + struct ndis_device *wnd = netdev_priv(dev); + return &wnd->net_stats; +} + +/* called from BH context */ +static void ndis_set_multicast_list(struct net_device *dev) +{ + struct ndis_device *wnd = netdev_priv(dev); + set_bit(SET_MULTICAST_LIST, &wnd->ndis_pending_work); + schedule_wrapndis_work(&wnd->ndis_work); +} + +/* called from BH context */ +struct iw_statistics *get_iw_stats(struct net_device *dev) +{ + struct ndis_device *wnd = netdev_priv(dev); + return &wnd->iw_stats; +} + +static void update_iw_stats(struct ndis_device *wnd) +{ + struct iw_statistics *iw_stats = &wnd->iw_stats; + struct ndis_wireless_stats ndis_stats; + NDIS_STATUS res; + ndis_rssi rssi; + int qual; + + ENTER2("%p", wnd); + if (wnd->iw_stats_enabled == FALSE || !netif_carrier_ok(wnd->net_dev)) { + memset(iw_stats, 0, sizeof(*iw_stats)); + EXIT2(return); + } + res = mp_query(wnd, OID_802_11_RSSI, &rssi, sizeof(rssi)); + if (res == NDIS_STATUS_SUCCESS) + iw_stats->qual.level = rssi; + + qual = 100 * (rssi - WL_NOISE) / (WL_SIGMAX - WL_NOISE); + if (qual < 0) + qual = 0; + else if (qual > 100) + qual = 100; + + iw_stats->qual.noise = WL_NOISE; + iw_stats->qual.qual = qual; + + res = mp_query(wnd, OID_802_11_STATISTICS, + &ndis_stats, sizeof(ndis_stats)); + if (res != NDIS_STATUS_SUCCESS) + EXIT2(return); + iw_stats->discard.retries = (unsigned long)ndis_stats.retry + + (unsigned long)ndis_stats.multi_retry; + iw_stats->discard.misc = (unsigned long)ndis_stats.fcs_err + + (unsigned long)ndis_stats.rtss_fail + + (unsigned long)ndis_stats.ack_fail + + (unsigned long)ndis_stats.frame_dup; + + EXIT2(return); +} + +static void set_multicast_list(struct ndis_device *wnd) +{ + struct net_device *net_dev; + int mc_count; + ULONG packet_filter; + NDIS_STATUS res; + + net_dev = wnd->net_dev; + packet_filter = wnd->packet_filter; + mc_count = netdev_mc_count(net_dev); + + TRACE2("0x%08x", packet_filter); + if (net_dev->flags & IFF_PROMISC) { + packet_filter |= NDIS_PACKET_TYPE_PROMISCUOUS | + NDIS_PACKET_TYPE_ALL_LOCAL; + } else if (net_dev->flags & IFF_ALLMULTI || + mc_count > wnd->multicast_size) { + packet_filter |= NDIS_PACKET_TYPE_ALL_MULTICAST; + TRACE2("0x%08x", packet_filter); + } else if (mc_count > 0) { + int i, size; + char *buf; + struct netdev_hw_addr *ha; + size = min(wnd->multicast_size, mc_count); + TRACE2("%d, %d", wnd->multicast_size, mc_count); + buf = kmalloc(size * ETH_ALEN, GFP_KERNEL); + if (!buf) { + WARNING("couldn't allocate memory"); + EXIT2(return); + } + i = 0; + netdev_for_each_mc_addr(ha, net_dev) { + if (i >= size) + break; + if (net_dev->addr_len != ETH_ALEN) + continue; + memcpy(buf + i * ETH_ALEN, ha->addr, ETH_ALEN); + TRACE2(MACSTRSEP, MAC2STR(ha->addr)); + i++; + } + res = mp_set(wnd, OID_802_3_MULTICAST_LIST, buf, i * ETH_ALEN); + if (res == NDIS_STATUS_SUCCESS && i > 0) + packet_filter |= NDIS_PACKET_TYPE_MULTICAST; + else + packet_filter |= NDIS_PACKET_TYPE_ALL_MULTICAST; + kfree(buf); + } + TRACE2("0x%08x", packet_filter); + res = set_packet_filter(wnd, packet_filter); + if (res) + TRACE1("couldn't set packet filter (%08X)", res); + EXIT2(return); +} + +static void link_status_off(struct ndis_device *wnd) +{ +#ifdef CONFIG_WIRELESS_EXT + union iwreq_data wrqu; + + memset(&wrqu, 0, sizeof(wrqu)); + wrqu.ap_addr.sa_family = ARPHRD_ETHER; + wireless_send_event(wnd->net_dev, SIOCGIWAP, &wrqu, NULL); +#endif + EXIT2(return); +} + +static void link_status_on(struct ndis_device *wnd) +{ +#ifdef CONFIG_WIRELESS_EXT + struct ndis_assoc_info *ndis_assoc_info; + union iwreq_data wrqu; + NDIS_STATUS res; + const int assoc_size = sizeof(*ndis_assoc_info) + IW_CUSTOM_MAX + 32; +#endif + + ENTER2(""); +#ifdef CONFIG_WIRELESS_EXT + memset(&wrqu, 0, sizeof(wrqu)); + ndis_assoc_info = kzalloc(assoc_size, GFP_KERNEL); + if (!ndis_assoc_info) { + ERROR("couldn't allocate memory"); + goto send_assoc_event; + } + res = mp_query(wnd, OID_802_11_ASSOCIATION_INFORMATION, + ndis_assoc_info, assoc_size); + if (res) { + TRACE2("query assoc_info failed (%08X)", res); + kfree(ndis_assoc_info); + goto send_assoc_event; + } + TRACE2("%u, 0x%x, %u, 0x%x, %u", ndis_assoc_info->length, + ndis_assoc_info->req_ies, ndis_assoc_info->req_ie_length, + ndis_assoc_info->resp_ies, ndis_assoc_info->resp_ie_length); + if (ndis_assoc_info->req_ie_length > 0) { + wrqu.data.length = ndis_assoc_info->req_ie_length; + wireless_send_event(wnd->net_dev, IWEVASSOCREQIE, &wrqu, + ((char *)ndis_assoc_info) + + ndis_assoc_info->offset_req_ies); + } + if (ndis_assoc_info->resp_ie_length > 0) { + wrqu.data.length = ndis_assoc_info->resp_ie_length; + wireless_send_event(wnd->net_dev, IWEVASSOCRESPIE, &wrqu, + ((char *)ndis_assoc_info) + + ndis_assoc_info->offset_resp_ies); + } + kfree(ndis_assoc_info); + +send_assoc_event: + get_ap_address(wnd, wrqu.ap_addr.sa_data); + wrqu.ap_addr.sa_family = ARPHRD_ETHER; + TRACE2(MACSTRSEP, MAC2STR(wrqu.ap_addr.sa_data)); + wireless_send_event(wnd->net_dev, SIOCGIWAP, &wrqu, NULL); +#endif + EXIT2(return); +} + +static void iw_stats_timer_proc(unsigned long data) +{ + struct ndis_device *wnd = (struct ndis_device *)data; + + ENTER2("%d", wnd->iw_stats_interval); + if (wnd->iw_stats_interval > 0) { + set_bit(COLLECT_IW_STATS, &wnd->ndis_pending_work); + schedule_wrapndis_work(&wnd->ndis_work); + } + mod_timer(&wnd->iw_stats_timer, jiffies + wnd->iw_stats_interval); +} + +static void add_iw_stats_timer(struct ndis_device *wnd) +{ + if (wnd->physical_medium != NdisPhysicalMediumWirelessLan) + return; + if (wnd->iw_stats_interval < 0) + wnd->iw_stats_interval *= -1; + wnd->iw_stats_timer.data = (unsigned long)wnd; + wnd->iw_stats_timer.function = iw_stats_timer_proc; + mod_timer(&wnd->iw_stats_timer, jiffies + wnd->iw_stats_interval); +} + +static void del_iw_stats_timer(struct ndis_device *wnd) +{ + ENTER2("%d", wnd->iw_stats_interval); + wnd->iw_stats_interval *= -1; + del_timer_sync(&wnd->iw_stats_timer); + EXIT2(return); +} + +static void hangcheck_proc(unsigned long data) +{ + struct ndis_device *wnd = (struct ndis_device *)data; + + ENTER3("%d", wnd->hangcheck_interval); + if (wnd->hangcheck_interval > 0) { + set_bit(HANGCHECK, &wnd->ndis_pending_work); + schedule_wrapndis_work(&wnd->ndis_work); + } + mod_timer(&wnd->hangcheck_timer, jiffies + wnd->hangcheck_interval); + EXIT3(return); +} + +void hangcheck_add(struct ndis_device *wnd) +{ + if (!wnd->wd->driver->ndis_driver->mp.hangcheck || + hangcheck_interval < 0) + EXIT2(return); + + if (hangcheck_interval > 0) + wnd->hangcheck_interval = hangcheck_interval * HZ; + if (wnd->hangcheck_interval < 0) + wnd->hangcheck_interval *= -1; + wnd->hangcheck_timer.data = (unsigned long)wnd; + wnd->hangcheck_timer.function = hangcheck_proc; + mod_timer(&wnd->hangcheck_timer, jiffies + wnd->hangcheck_interval); + EXIT2(return); +} + +void hangcheck_del(struct ndis_device *wnd) +{ + ENTER2("%d", wnd->hangcheck_interval); + if (wnd->hangcheck_interval > 0) + wnd->hangcheck_interval *= -1; + del_timer_sync(&wnd->hangcheck_timer); + EXIT2(return); +} + +/* worker procedure to take care of setting/checking various states */ +static void ndis_worker(worker_param_t param) +{ + struct ndis_device *wnd; + + wnd = worker_param_data(param, struct ndis_device, ndis_work); + WORKTRACE("0x%lx", wnd->ndis_pending_work); + + if (test_and_clear_bit(NETIF_WAKEQ, &wnd->ndis_pending_work)) { + netif_tx_lock_bh(wnd->net_dev); + netif_wake_queue(wnd->net_dev); + netif_tx_unlock_bh(wnd->net_dev); + } + + if (test_and_clear_bit(LINK_STATUS_OFF, &wnd->ndis_pending_work)) + link_status_off(wnd); + + if (test_and_clear_bit(LINK_STATUS_ON, &wnd->ndis_pending_work)) + link_status_on(wnd); + + if (test_and_clear_bit(COLLECT_IW_STATS, &wnd->ndis_pending_work)) + update_iw_stats(wnd); + + if (test_and_clear_bit(SET_MULTICAST_LIST, + &wnd->ndis_pending_work)) + set_multicast_list(wnd); + + if (test_and_clear_bit(HANGCHECK, &wnd->ndis_pending_work)) { + struct miniport *mp; + BOOLEAN reset; + KIRQL irql; + + mp = &wnd->wd->driver->ndis_driver->mp; + irql = serialize_lock_irql(wnd); + reset = LIN2WIN1(mp->hangcheck, wnd->nmb->mp_ctx); + serialize_unlock_irql(wnd, irql); + if (reset) { + TRACE2("%s needs reset", wnd->net_dev->name); + mp_reset(wnd); + } + } + WORKEXIT(return); +} + +NDIS_STATUS ndis_reinit(struct ndis_device *wnd) +{ + NDIS_STATUS status; + + wnd->attributes &= ~NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND; + status = mp_set_power_state(wnd, NdisDeviceStateD3); + if (status != NDIS_STATUS_SUCCESS) { + ERROR("halting device %s failed: %08X", wnd->net_dev->name, + status); + return status; + } + status = mp_set_power_state(wnd, NdisDeviceStateD0); + if (status != NDIS_STATUS_SUCCESS) + ERROR("starting device %s failed: %08X", wnd->net_dev->name, + status); + return status; +} + +static void get_encryption_capa(struct ndis_device *wnd, char *buf, + const int buf_len) +{ + int i, mode; + NDIS_STATUS res; + struct ndis_assoc_info ndis_assoc_info; + struct ndis_add_key ndis_key; + struct ndis_capability *c; + + ENTER1("%p", wnd); + /* set network type to g, b, or a, in that order */ + res = mp_query(wnd, OID_802_11_NETWORK_TYPES_SUPPORTED, buf, buf_len); + if (res == NDIS_STATUS_SUCCESS) { + struct network_type_list *net_types; + unsigned long types = 0; + net_types = (typeof(net_types))buf; + for (i = 0; i < net_types->num; i++) { + TRACE2("%d", net_types->types[i]); + set_bit(net_types->types[i], &types); + } + if (types & Ndis802_11OFDM24) + mode = Ndis802_11OFDM24; + else if (types & Ndis802_11DS) + mode = Ndis802_11DS; + else if (types & Ndis802_11OFDM5) + mode = Ndis802_11OFDM5; + else + mode = Ndis802_11DS; + mp_set_int(wnd, OID_802_11_NETWORK_TYPE_IN_USE, mode); + } + /* check if WEP is supported */ + if (set_iw_encr_mode(wnd, IW_AUTH_CIPHER_WEP104, + IW_AUTH_CIPHER_NONE) == 0 && + get_ndis_encr_mode(wnd) == Ndis802_11Encryption1KeyAbsent) + set_bit(Ndis802_11Encryption1Enabled, &wnd->capa.encr); + + /* check if WPA is supported */ + if (set_ndis_auth_mode(wnd, Ndis802_11AuthModeWPA) == 0 && + get_ndis_auth_mode(wnd) == Ndis802_11AuthModeWPA) + set_bit(Ndis802_11AuthModeWPA, &wnd->capa.encr); + else + EXIT1(return); + + if (set_ndis_auth_mode(wnd, Ndis802_11AuthModeWPAPSK) == 0 && + get_ndis_auth_mode(wnd) == Ndis802_11AuthModeWPAPSK) + set_bit(Ndis802_11AuthModeWPAPSK, &wnd->capa.encr); + + /* check for highest encryption */ + mode = 0; + if (set_iw_encr_mode(wnd, IW_AUTH_CIPHER_CCMP, + IW_AUTH_CIPHER_NONE) == 0 && + (i = get_ndis_encr_mode(wnd)) > 0 && + (i == Ndis802_11Encryption3KeyAbsent || + i == Ndis802_11Encryption3Enabled)) + mode = Ndis802_11Encryption3Enabled; + else if (set_iw_encr_mode(wnd, IW_AUTH_CIPHER_TKIP, + IW_AUTH_CIPHER_NONE) == 0 && + (i = get_ndis_encr_mode(wnd)) > 0 && + (i == Ndis802_11Encryption2KeyAbsent || + i == Ndis802_11Encryption2Enabled)) + mode = Ndis802_11Encryption2Enabled; + else if (set_iw_encr_mode(wnd, IW_AUTH_CIPHER_WEP104, + IW_AUTH_CIPHER_NONE) == 0 && + (i = get_ndis_encr_mode(wnd)) > 0 && + (i == Ndis802_11Encryption1KeyAbsent || + i == Ndis802_11Encryption1Enabled)) + mode = Ndis802_11Encryption1Enabled; + + TRACE1("mode: %d", mode); + if (mode == 0) + EXIT1(return); + set_bit(Ndis802_11Encryption1Enabled, &wnd->capa.encr); + if (mode == Ndis802_11Encryption1Enabled) + EXIT1(return); + + ndis_key.length = 32; + ndis_key.index = 0xC0000001; + ndis_key.struct_size = sizeof(ndis_key); + res = mp_set(wnd, OID_802_11_ADD_KEY, &ndis_key, ndis_key.struct_size); + TRACE2("%08X, %lu", res, (unsigned long)sizeof(ndis_key)); + if (res && res != NDIS_STATUS_INVALID_DATA) + EXIT1(return); + res = mp_query(wnd, OID_802_11_ASSOCIATION_INFORMATION, + &ndis_assoc_info, sizeof(ndis_assoc_info)); + TRACE1("%08X", res); + if (res == NDIS_STATUS_NOT_SUPPORTED) + EXIT1(return); + + set_bit(Ndis802_11Encryption2Enabled, &wnd->capa.encr); + if (mode == Ndis802_11Encryption3Enabled) + set_bit(Ndis802_11Encryption3Enabled, &wnd->capa.encr); + /* not all drivers support OID_802_11_CAPABILITY, so we don't + * know for sure if driver support WPA or WPAPSK; assume + * WPAPSK */ + set_bit(Ndis802_11AuthModeWPAPSK, &wnd->capa.auth); + wnd->max_pmkids = 1; + + memset(buf, 0, buf_len); + c = (struct ndis_capability *)buf; + res = mp_query(wnd, OID_802_11_CAPABILITY, buf, buf_len); + if (!(res == NDIS_STATUS_SUCCESS && c->version == 2)) + EXIT1(return); + wnd->max_pmkids = c->num_PMKIDs; + + for (i = 0; i < c->num_auth_encr_pair; i++) { + struct ndis_auth_encr_pair *ae; + + ae = &c->auth_encr_pair[i]; + if ((char *)(ae + 1) > buf + buf_len) + break; + switch (ae->auth_mode) { + case Ndis802_11AuthModeOpen: + case Ndis802_11AuthModeShared: + case Ndis802_11AuthModeWPA: + case Ndis802_11AuthModeWPAPSK: + case Ndis802_11AuthModeWPANone: + case Ndis802_11AuthModeWPA2: + case Ndis802_11AuthModeWPA2PSK: + set_bit(ae->auth_mode, &wnd->capa.auth); + break; + default: + WARNING("unknown auth_mode: %d", ae->auth_mode); + break; + } + switch (ae->encr_mode) { + case Ndis802_11EncryptionDisabled: + case Ndis802_11Encryption1Enabled: + case Ndis802_11Encryption2Enabled: + case Ndis802_11Encryption3Enabled: + set_bit(ae->encr_mode, &wnd->capa.encr); + break; + default: + WARNING("unknown encr_mode: %d", ae->encr_mode); + break; + } + } + EXIT1(return); +} + +wstdcall NTSTATUS NdisDispatchDeviceControl(struct device_object *fdo, + struct irp *irp) +{ + struct ndis_device *wnd; + + TRACE3("fdo: %p", fdo); + /* for now, we don't have anything intresting here, so pass it + * down to bus driver */ + wnd = fdo->reserved; + return IoPassIrpDown(wnd->nmb->pdo, irp); +} +WIN_FUNC_DECL(NdisDispatchDeviceControl,2) + +wstdcall NTSTATUS NdisDispatchPower(struct device_object *fdo, struct irp *irp) +{ + struct io_stack_location *irp_sl; + struct ndis_device *wnd; + enum ndis_power_state state; + NTSTATUS status; + NDIS_STATUS ndis_status; + + irp_sl = IoGetCurrentIrpStackLocation(irp); + wnd = fdo->reserved; + IOTRACE("fdo: %p, fn: %d:%d, wnd: %p", fdo, irp_sl->major_fn, + irp_sl->minor_fn, wnd); + if ((irp_sl->params.power.type == SystemPowerState && + irp_sl->params.power.state.system_state > PowerSystemWorking) || + (irp_sl->params.power.type == DevicePowerState && + irp_sl->params.power.state.device_state > PowerDeviceD0)) + state = NdisDeviceStateD3; + else + state = NdisDeviceStateD0; + switch (irp_sl->minor_fn) { + case IRP_MN_SET_POWER: + if (state == NdisDeviceStateD0) { + status = IoSyncForwardIrp(wnd->nmb->pdo, irp); + if (status != STATUS_SUCCESS) + break; + ndis_status = mp_set_power_state(wnd, state); + if (ndis_status != NDIS_STATUS_SUCCESS) + WARNING("couldn't set power to %d: %08X", + state, ndis_status); + TRACE2("%s: device resumed", wnd->net_dev->name); + irp->io_status.status = status = STATUS_SUCCESS; + IoCompleteRequest(irp, IO_NO_INCREMENT); + break; + } else { + ndis_status = mp_set_power_state(wnd, state); + /* TODO: handle error case */ + if (ndis_status != NDIS_STATUS_SUCCESS) + WARNING("setting power to %d failed: %08X", + state, ndis_status); + status = IoAsyncForwardIrp(wnd->nmb->pdo, irp); + } + break; + case IRP_MN_QUERY_POWER: + if (wnd->attributes & NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND) { + ndis_status = mp_query(wnd, OID_PNP_QUERY_POWER, + &state, sizeof(state)); + TRACE2("%d, %08X", state, ndis_status); + /* this OID must always succeed */ + if (ndis_status != NDIS_STATUS_SUCCESS) + TRACE1("query power returns %08X", ndis_status); + irp->io_status.status = STATUS_SUCCESS; + } else + irp->io_status.status = STATUS_SUCCESS; + status = IoPassIrpDown(wnd->nmb->pdo, irp); + break; + case IRP_MN_WAIT_WAKE: + case IRP_MN_POWER_SEQUENCE: + /* TODO: implement WAIT_WAKE */ + status = IoPassIrpDown(wnd->nmb->pdo, irp); + break; + default: + status = IoPassIrpDown(wnd->nmb->pdo, irp); + break; + } + IOEXIT(return status); +} +WIN_FUNC_DECL(NdisDispatchPower,2) + +wstdcall NTSTATUS NdisDispatchPnp(struct device_object *fdo, struct irp *irp) +{ + struct io_stack_location *irp_sl; + struct ndis_device *wnd; + struct device_object *pdo; + NTSTATUS status; + + IOTRACE("fdo: %p, irp: %p", fdo, irp); + irp_sl = IoGetCurrentIrpStackLocation(irp); + wnd = fdo->reserved; + pdo = wnd->nmb->pdo; + switch (irp_sl->minor_fn) { + case IRP_MN_START_DEVICE: + status = IoSyncForwardIrp(pdo, irp); + if (status != STATUS_SUCCESS) + break; + if (ndis_start_device(wnd) == NDIS_STATUS_SUCCESS) + status = STATUS_SUCCESS; + else + status = STATUS_FAILURE; + irp->io_status.status = status; + IoCompleteRequest(irp, IO_NO_INCREMENT); + break; + case IRP_MN_QUERY_STOP_DEVICE: + /* TODO: implement in NDIS */ + status = IoPassIrpDown(wnd->nmb->pdo, irp); + break; + case IRP_MN_STOP_DEVICE: + mp_halt(wnd); + irp->io_status.status = STATUS_SUCCESS; + status = IoAsyncForwardIrp(pdo, irp); + break; + case IRP_MN_REMOVE_DEVICE: + TRACE1("%s", wnd->net_dev->name); + mp_pnp_event(wnd, NdisDevicePnPEventSurpriseRemoved, 0); + if (ndis_remove_device(wnd)) { + status = STATUS_FAILURE; + break; + } + /* wnd is already freed */ + status = IoAsyncForwardIrp(pdo, irp); + IoDetachDevice(fdo); + IoDeleteDevice(fdo); + break; + default: + status = IoAsyncForwardIrp(pdo, irp); + break; + } + IOTRACE("status: %08X", status); + IOEXIT(return status); +} +WIN_FUNC_DECL(NdisDispatchPnp,2) + +static void set_task_offload(struct ndis_device *wnd, void *buf, + const int buf_size) +{ + struct ndis_task_offload_header *task_offload_header; + struct ndis_task_offload *task_offload; + struct ndis_task_tcp_ip_checksum *csum = NULL; + struct ndis_task_tcp_large_send *tso = NULL; + NDIS_STATUS status; + + memset(buf, 0, buf_size); + task_offload_header = buf; + task_offload_header->version = NDIS_TASK_OFFLOAD_VERSION; + task_offload_header->size = sizeof(*task_offload_header); + task_offload_header->encap_format.flags.fixed_header_size = 1; + task_offload_header->encap_format.header_size = sizeof(struct ethhdr); + task_offload_header->encap_format.encap = IEEE_802_3_Encapsulation; + status = mp_query(wnd, OID_TCP_TASK_OFFLOAD, buf, buf_size); + TRACE1("%08X", status); + if (status != NDIS_STATUS_SUCCESS) + EXIT1(return); + if (task_offload_header->offset_first_task == 0) + EXIT1(return); + task_offload = ((void *)task_offload_header + + task_offload_header->offset_first_task); + while (1) { + TRACE1("%d, %d", task_offload->version, task_offload->task); + switch(task_offload->task) { + case TcpIpChecksumNdisTask: + csum = (void *)task_offload->task_buf; + break; + case TcpLargeSendNdisTask: + tso = (void *)task_offload->task_buf; + break; + default: + TRACE1("%d", task_offload->task); + break; + } + if (task_offload->offset_next_task == 0) + break; + task_offload = (void *)task_offload + + task_offload->offset_next_task; + } + if (tso) + TRACE1("%u, %u, %d, %d", tso->max_size, tso->min_seg_count, + tso->tcp_opts, tso->ip_opts); + if (!csum) + EXIT1(return); + TRACE1("%08x, %08x", csum->v4_tx.value, csum->v4_rx.value); + task_offload_header->encap_format.flags.fixed_header_size = 1; + task_offload_header->encap_format.header_size = sizeof(struct ethhdr); + task_offload_header->offset_first_task = sizeof(*task_offload_header); + task_offload = ((void *)task_offload_header + + task_offload_header->offset_first_task); + task_offload->offset_next_task = 0; + task_offload->size = sizeof(*task_offload); + task_offload->task = TcpIpChecksumNdisTask; + memcpy(task_offload->task_buf, csum, sizeof(*csum)); + task_offload->task_buf_length = sizeof(*csum); + status = mp_set(wnd, OID_TCP_TASK_OFFLOAD, task_offload_header, + sizeof(*task_offload_header) + + sizeof(*task_offload) + sizeof(*csum)); + TRACE1("%08X", status); + if (status != NDIS_STATUS_SUCCESS) + EXIT2(return); + wnd->tx_csum = csum->v4_tx; + if (csum->v4_tx.tcp_csum && csum->v4_tx.udp_csum) { + if (csum->v4_tx.ip_csum) { + wnd->net_dev->features |= NETIF_F_HW_CSUM; + TRACE1("hw checksum enabled"); + } else { + wnd->net_dev->features |= NETIF_F_IP_CSUM; + TRACE1("IP checksum enabled"); + } + if (wnd->sg_dma_size) + wnd->net_dev->features |= NETIF_F_SG; + } + wnd->rx_csum = csum->v4_rx; + EXIT1(return); +} + +static void get_supported_oids(struct ndis_device *wnd) +{ + NDIS_STATUS res; + int i, n, needed; + ndis_oid *oids; + + res = mp_query_info(wnd, OID_GEN_SUPPORTED_LIST, NULL, 0, NULL, + &needed); + if (!(res == NDIS_STATUS_BUFFER_TOO_SHORT || + res == NDIS_STATUS_INVALID_LENGTH)) + EXIT1(return); + oids = kmalloc(needed, GFP_KERNEL); + if (!oids) { + TRACE1("couldn't allocate memory"); + EXIT1(return); + } + res = mp_query(wnd, OID_GEN_SUPPORTED_LIST, oids, needed); + if (res) { + TRACE1("failed: %08X", res); + kfree(oids); + EXIT1(return); + } + for (i = 0, n = needed / sizeof(*oids); i < n; i++) { + TRACE1("oid: %08X", oids[i]); + /* if a wireless device didn't say so for + * OID_GEN_PHYSICAL_MEDIUM (they should, but in case) */ + if (wnd->physical_medium != NdisPhysicalMediumWirelessLan && + oids[i] == OID_802_11_SSID) + wnd->physical_medium = NdisPhysicalMediumWirelessLan; + } + kfree(oids); + EXIT1(return); +} + +static void ndis_get_drvinfo(struct net_device *dev, + struct ethtool_drvinfo *info) +{ + struct ndis_device *wnd = netdev_priv(dev); + strncpy(info->driver, DRIVER_NAME, sizeof(info->driver) - 2); + strcat(info->driver, "+"); + strncat(info->driver, wnd->wd->driver->name, + sizeof(info->driver) - strlen(DRIVER_NAME) - 1); + strncpy(info->version, DRIVER_VERSION, sizeof(info->version) - 2); + strcat(info->version, "+"); + strncat(info->version, wnd->wd->driver->version, + sizeof(info->version) - strlen(DRIVER_VERSION) - 1); + if (wrap_is_pci_bus(wnd->wd->dev_bus)) + strncpy(info->bus_info, pci_name(wnd->wd->pci.pdev), + sizeof(info->bus_info) - 1); +#ifdef ENABLE_USB + else + usb_make_path(wnd->wd->usb.udev, info->bus_info, + sizeof(info->bus_info) - 1); +#endif + return; +} + +static u32 ndis_get_link(struct net_device *dev) +{ + struct ndis_device *wnd = netdev_priv(dev); + return netif_carrier_ok(wnd->net_dev); +} + +static void ndis_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) +{ + struct ndis_device *wnd = netdev_priv(dev); + + wol->supported = 0; + wol->wolopts = 0; + if (!(wnd->attributes & NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND)) + EXIT2(return); + if (!wrap_is_pci_bus(wnd->wd->dev_bus)) + EXIT2(return); + /* we always suspend to D3 */ + if (wnd->pnp_capa.wakeup.min_magic_packet_wakeup < NdisDeviceStateD3) + return; + wol->supported |= WAKE_MAGIC; + if (wnd->ndis_wolopts & NDIS_PNP_WAKE_UP_MAGIC_PACKET) + wol->wolopts |= WAKE_MAGIC; + return; +} + +static int ndis_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) +{ + struct ndis_device *wnd = netdev_priv(dev); + + if (!(wnd->attributes & NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND)) + return -EOPNOTSUPP; + if (wnd->pnp_capa.wakeup.min_magic_packet_wakeup < NdisDeviceStateD3) + EXIT2(return -EOPNOTSUPP); + TRACE2("0x%x", wol->wolopts); + if (wol->wolopts & WAKE_MAGIC) { + wnd->ndis_wolopts |= NDIS_PNP_WAKE_UP_MAGIC_PACKET; + if (wol->wolopts != WAKE_MAGIC) + WARNING("ignored wake-on-lan options: 0x%x", + wol->wolopts & ~WAKE_MAGIC); + } else if (!wol->wolopts) + wnd->ndis_wolopts = 0; + else + return -EOPNOTSUPP; + TRACE2("0x%x", wnd->ndis_wolopts); + return 0; +} + +static u32 ndis_get_tx_csum(struct net_device *dev) +{ + struct ndis_device *wnd = netdev_priv(dev); + if (wnd->tx_csum.tcp_csum && wnd->tx_csum.udp_csum) + return 1; + else + return 0; +} + +static u32 ndis_get_rx_csum(struct net_device *dev) +{ + struct ndis_device *wnd = netdev_priv(dev); + if (wnd->rx_csum.value) + return 1; + else + return 0; +} + +static int ndis_set_tx_csum(struct net_device *dev, u32 data) +{ + struct ndis_device *wnd = netdev_priv(dev); + + if (data && (wnd->tx_csum.value == 0)) + return -EOPNOTSUPP; + + if (wnd->tx_csum.ip_csum) + ethtool_op_set_tx_hw_csum(dev, data); + else + ethtool_op_set_tx_csum(dev, data); + return 0; +} + +static int ndis_set_rx_csum(struct net_device *dev, u32 data) +{ + struct ndis_device *wnd = netdev_priv(dev); + + if (data && (wnd->tx_csum.value == 0)) + return -EOPNOTSUPP; + + /* TODO: enable/disable rx csum through NDIS */ + return 0; +} + +static u32 ndis_get_sg(struct net_device *dev) +{ + struct ndis_device *wnd = netdev_priv(dev); + if (wnd->sg_dma_size) + return ethtool_op_get_sg(dev); + else + return 0; +} + +static int ndis_set_sg(struct net_device *dev, u32 data) +{ + struct ndis_device *wnd = netdev_priv(dev); + if (wnd->sg_dma_size) + return ethtool_op_set_sg(dev, data); + else + return -EOPNOTSUPP; +} + +static struct ethtool_ops ndis_ethtool_ops = { + .get_drvinfo = ndis_get_drvinfo, + .get_link = ndis_get_link, + .get_wol = ndis_get_wol, + .set_wol = ndis_set_wol, + .get_tx_csum = ndis_get_tx_csum, + .get_rx_csum = ndis_get_rx_csum, + .set_tx_csum = ndis_set_tx_csum, + .set_rx_csum = ndis_set_rx_csum, + .get_sg = ndis_get_sg, + .set_sg = ndis_set_sg, +}; + +static int notifier_event(struct notifier_block *notifier, unsigned long event, + void *ptr) +{ + struct net_device *net_dev = ptr; + + ENTER2("0x%lx", event); + if (net_dev->ethtool_ops == &ndis_ethtool_ops + && event == NETDEV_CHANGENAME) { + struct ndis_device *wnd = netdev_priv(net_dev); + /* called with rtnl lock held, so no need to lock */ + wrap_procfs_remove_ndis_device(wnd); + printk(KERN_INFO "%s: changing interface name from '%s' to " + "'%s'\n", DRIVER_NAME, wnd->netdev_name, net_dev->name); + memcpy(wnd->netdev_name, net_dev->name, + sizeof(wnd->netdev_name)); + wrap_procfs_add_ndis_device(wnd); + } + return NOTIFY_DONE; +} + +static struct notifier_block netdev_notifier = { + .notifier_call = notifier_event, +}; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) +static const struct net_device_ops ndis_netdev_ops = { + .ndo_open = ndis_net_dev_open, + .ndo_stop = ndis_net_dev_close, + .ndo_start_xmit = tx_skbuff, + .ndo_change_mtu = ndis_change_mtu, + .ndo_set_multicast_list = ndis_set_multicast_list, + .ndo_set_mac_address = ndis_set_mac_address, + .ndo_get_stats = ndis_get_stats, +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = ndis_poll_controller, +#endif +}; +#endif + +static NDIS_STATUS ndis_start_device(struct ndis_device *wnd) +{ + struct wrap_device *wd; + struct net_device *net_dev; + NDIS_STATUS status; + char *buf; + const int buf_len = 256; + mac_address mac; + struct transport_header_offset *tx_header_offset; + int n; + + ENTER2("%d", in_atomic()); + status = mp_init(wnd); + if (status == NDIS_STATUS_NOT_RECOGNIZED) + EXIT1(return NDIS_STATUS_SUCCESS); + if (status != NDIS_STATUS_SUCCESS) + EXIT1(return status); + wd = wnd->wd; + net_dev = wnd->net_dev; + + get_supported_oids(wnd); + memset(mac, 0, sizeof(mac)); + status = mp_query(wnd, OID_802_3_CURRENT_ADDRESS, mac, sizeof(mac)); + if (memcmp(mac, "\x00\x00\x00\x00\x00\x00", sizeof(mac)) == 0) { + status = mp_query(wnd, OID_802_3_PERMANENT_ADDRESS, mac, + sizeof(mac)); + if (status != NDIS_STATUS_SUCCESS) { + ERROR("couldn't get mac address: %08X", status); + goto err_start; + } + } + TRACE1("mac:" MACSTRSEP, MAC2STR(mac)); + memcpy(net_dev->dev_addr, mac, ETH_ALEN); + + strncpy(net_dev->name, if_name, IFNAMSIZ - 1); + net_dev->name[IFNAMSIZ - 1] = 0; + + wnd->packet_filter = NDIS_PACKET_TYPE_DIRECTED | + NDIS_PACKET_TYPE_BROADCAST | NDIS_PACKET_TYPE_MULTICAST; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) + net_dev->netdev_ops = &ndis_netdev_ops; +#else + net_dev->open = ndis_net_dev_open; + net_dev->hard_start_xmit = tx_skbuff; + net_dev->stop = ndis_net_dev_close; + net_dev->get_stats = ndis_get_stats; + net_dev->change_mtu = ndis_change_mtu; + net_dev->set_multicast_list = ndis_set_multicast_list; + net_dev->set_mac_address = ndis_set_mac_address; +#ifdef CONFIG_NET_POLL_CONTROLLER + net_dev->poll_controller = ndis_poll_controller; +#endif +#endif + if (wnd->physical_medium == NdisPhysicalMediumWirelessLan) { + net_dev->wireless_handlers = &ndis_handler_def; + } + net_dev->ethtool_ops = &ndis_ethtool_ops; + if (wnd->mp_interrupt) + net_dev->irq = wnd->mp_interrupt->irq; + net_dev->mem_start = wnd->mem_start; + net_dev->mem_end = wnd->mem_end; + status = mp_query_int(wnd, OID_802_3_MAXIMUM_LIST_SIZE, + &wnd->multicast_size); + if (status != NDIS_STATUS_SUCCESS || wnd->multicast_size < 0) + wnd->multicast_size = 0; + if (wnd->multicast_size > 0) + net_dev->flags |= IFF_MULTICAST; + else + net_dev->flags &= ~IFF_MULTICAST; + + buf = kmalloc(buf_len, GFP_KERNEL); + if (!buf) { + WARNING("couldn't allocate memory"); + goto err_start; + } + + set_task_offload(wnd, buf, buf_len); +#ifdef NETIF_F_LLTX + net_dev->features |= NETIF_F_LLTX; +#endif + + if (register_netdev(net_dev)) { + ERROR("cannot register net device %s", net_dev->name); + goto err_register; + } + memcpy(wnd->netdev_name, net_dev->name, sizeof(wnd->netdev_name)); + memset(buf, 0, buf_len); + status = mp_query(wnd, OID_GEN_VENDOR_DESCRIPTION, buf, buf_len); + if (status != NDIS_STATUS_SUCCESS) { + WARNING("couldn't get vendor information: 0x%x", status); + buf[0] = 0; + } + wnd->drv_ndis_version = n = 0; + mp_query_int(wnd, OID_GEN_DRIVER_VERSION, &wnd->drv_ndis_version); + mp_query_int(wnd, OID_GEN_VENDOR_DRIVER_VERSION, &n); + + printk(KERN_INFO "%s: ethernet device " MACSTRSEP " using %sNDIS " + "driver: %s, version: 0x%x, NDIS version: 0x%x, vendor: '%s', " + "%s\n", net_dev->name, MAC2STR(net_dev->dev_addr), + deserialized_driver(wnd) ? "" : "serialized ", + wnd->wd->driver->name, n, wnd->drv_ndis_version, buf, + wnd->wd->conf_file_name); + + if (deserialized_driver(wnd)) { + /* deserialized drivers don't have a limit, but we + * keep max at TX_RING_SIZE */ + wnd->max_tx_packets = TX_RING_SIZE; + } else { + status = mp_query_int(wnd, OID_GEN_MAXIMUM_SEND_PACKETS, + &wnd->max_tx_packets); + if (status != NDIS_STATUS_SUCCESS) + wnd->max_tx_packets = 1; + if (wnd->max_tx_packets > TX_RING_SIZE) + wnd->max_tx_packets = TX_RING_SIZE; + } + TRACE2("maximum send packets: %d", wnd->max_tx_packets); + NdisAllocatePacketPoolEx(&status, &wnd->tx_packet_pool, + wnd->max_tx_packets, 0, + PROTOCOL_RESERVED_SIZE_IN_PACKET); + if (status != NDIS_STATUS_SUCCESS) { + ERROR("couldn't allocate packet pool"); + goto packet_pool_err; + } + NdisAllocateBufferPool(&status, &wnd->tx_buffer_pool, + wnd->max_tx_packets + 4); + if (status != NDIS_STATUS_SUCCESS) { + ERROR("couldn't allocate buffer pool"); + goto buffer_pool_err; + } + TRACE1("pool: %p", wnd->tx_buffer_pool); + + if (mp_query_int(wnd, OID_GEN_MAXIMUM_TOTAL_SIZE, &n) == + NDIS_STATUS_SUCCESS && n > ETH_HLEN) + ndis_change_mtu(wnd->net_dev, n - ETH_HLEN); + + if (mp_query_int(wnd, OID_GEN_MAC_OPTIONS, &n) == NDIS_STATUS_SUCCESS) + TRACE2("mac options supported: 0x%x", n); + + tx_header_offset = (typeof(tx_header_offset))buf; + tx_header_offset->protocol_type = NDIS_PROTOCOL_ID_TCP_IP; + tx_header_offset->header_offset = sizeof(ETH_HLEN); + status = mp_set(wnd, OID_GEN_TRANSPORT_HEADER_OFFSET, + tx_header_offset, sizeof(*tx_header_offset)); + TRACE2("%08X", status); + + status = mp_query_int(wnd, OID_GEN_PHYSICAL_MEDIUM, + &wnd->physical_medium); + if (status != NDIS_STATUS_SUCCESS) + wnd->physical_medium = NdisPhysicalMediumUnspecified; + + if (wnd->physical_medium == NdisPhysicalMediumWirelessLan) { + mp_set_int(wnd, OID_802_11_POWER_MODE, NDIS_POWER_OFF); + get_encryption_capa(wnd, buf, buf_len); + TRACE1("capbilities = %ld", wnd->capa.encr); + printk(KERN_INFO "%s: encryption modes supported: " + "%s%s%s%s%s%s%s\n", net_dev->name, + test_bit(Ndis802_11Encryption1Enabled, &wnd->capa.encr) ? + "WEP" : "none", + + test_bit(Ndis802_11Encryption2Enabled, &wnd->capa.encr) ? + "; TKIP with WPA" : "", + test_bit(Ndis802_11AuthModeWPA2, &wnd->capa.auth) ? + ", WPA2" : "", + test_bit(Ndis802_11AuthModeWPA2PSK, &wnd->capa.auth) ? + ", WPA2PSK" : "", + + test_bit(Ndis802_11Encryption3Enabled, &wnd->capa.encr) ? + "; AES/CCMP with WPA" : "", + test_bit(Ndis802_11AuthModeWPA2, &wnd->capa.auth) ? + ", WPA2" : "", + test_bit(Ndis802_11AuthModeWPA2PSK, &wnd->capa.auth) ? + ", WPA2PSK" : ""); + + set_default_iw_params(wnd); + } + status = mp_query_int(wnd, OID_GEN_MEDIA_CONNECT_STATUS, (int *)buf); + if (status == NDIS_STATUS_SUCCESS) + set_media_state(wnd, *((int *)buf)); + kfree(buf); + wrap_procfs_add_ndis_device(wnd); + hangcheck_add(wnd); + add_iw_stats_timer(wnd); + EXIT1(return NDIS_STATUS_SUCCESS); + +buffer_pool_err: + wnd->tx_buffer_pool = NULL; + if (wnd->tx_packet_pool) { + NdisFreePacketPool(wnd->tx_packet_pool); + wnd->tx_packet_pool = NULL; + } +packet_pool_err: +err_register: + kfree(buf); +err_start: + ndis_remove_device(wnd); + EXIT1(return NDIS_STATUS_FAILURE); +} + +static int ndis_remove_device(struct ndis_device *wnd) +{ + s8 tx_pending; + + /* prevent setting essid during disassociation */ + memset(&wnd->essid, 0, sizeof(wnd->essid)); + wnd->tx_ok = 0; + if (wnd->max_tx_packets) + unregister_netdev(wnd->net_dev); + netif_carrier_off(wnd->net_dev); + /* if device is suspended, but resume failed, tx_ring_mutex + * may already be locked */ + if (down_trylock(&wnd->tx_ring_mutex)) + WARNING("couldn't obtain tx_ring_mutex"); + spin_lock_bh(&wnd->tx_ring_lock); + tx_pending = wnd->tx_ring_end - wnd->tx_ring_start; + if (tx_pending < 0) + tx_pending += TX_RING_SIZE; + else if (tx_pending == 0 && wnd->is_tx_ring_full) + tx_pending = TX_RING_SIZE - 1; + wnd->is_tx_ring_full = 0; + /* throw away pending packets */ + while (tx_pending-- > 0) { + struct ndis_packet *packet; + + packet = wnd->tx_ring[wnd->tx_ring_start]; + free_tx_packet(wnd, packet, NDIS_STATUS_CLOSING); + wnd->tx_ring_start = (wnd->tx_ring_start + 1) % TX_RING_SIZE; + } + spin_unlock_bh(&wnd->tx_ring_lock); + up(&wnd->tx_ring_mutex); + wrap_procfs_remove_ndis_device(wnd); + mp_halt(wnd); + ndis_exit_device(wnd); + + if (wnd->tx_packet_pool) { + NdisFreePacketPool(wnd->tx_packet_pool); + wnd->tx_packet_pool = NULL; + } + if (wnd->tx_buffer_pool) { + NdisFreeBufferPool(wnd->tx_buffer_pool); + wnd->tx_buffer_pool = NULL; + } + if (wnd->pmkids) + kfree(wnd->pmkids); + printk(KERN_INFO "%s: device %s removed\n", DRIVER_NAME, + wnd->net_dev->name); + kfree(wnd->nmb); + free_netdev(wnd->net_dev); + EXIT2(return 0); +} + +static wstdcall NTSTATUS NdisAddDevice(struct driver_object *drv_obj, + struct device_object *pdo) +{ + struct device_object *fdo; + struct ndis_mp_block *nmb; + NTSTATUS status; + struct ndis_device *wnd; + struct net_device *net_dev; + struct wrap_device *wd; + unsigned long i; + + ENTER2("%p, %p", drv_obj, pdo); + if (strlen(if_name) >= IFNAMSIZ) { + ERROR("interface name '%s' is too long", if_name); + return STATUS_INVALID_PARAMETER; + } + net_dev = alloc_etherdev(sizeof(*wnd)); + if (!net_dev) { + ERROR("couldn't allocate device"); + return STATUS_RESOURCES; + } + wd = pdo->reserved; + if (wrap_is_pci_bus(wd->dev_bus)) + SET_NETDEV_DEV(net_dev, &wd->pci.pdev->dev); + if (wrap_is_usb_bus(wd->dev_bus)) + SET_NETDEV_DEV(net_dev, &wd->usb.intf->dev); + status = IoCreateDevice(drv_obj, 0, NULL, FILE_DEVICE_UNKNOWN, 0, + FALSE, &fdo); + if (status != STATUS_SUCCESS) { + free_netdev(net_dev); + EXIT2(return status); + } + wnd = netdev_priv(net_dev); + TRACE1("wnd: %p", wnd); + + nmb = kmalloc(sizeof(*nmb), GFP_KERNEL); + if (!nmb) { + WARNING("couldn't allocate memory"); + IoDeleteDevice(fdo); + free_netdev(net_dev); + return STATUS_RESOURCES; + } +#if defined(DEBUG) && DEBUG >= 6 + /* poison nmb so if a driver accesses uninitialized pointers, we + * know what it is */ + for (i = 0; i < sizeof(*nmb) / sizeof(unsigned long); i++) + ((unsigned long *)nmb)[i] = i + 0x8a3fc1; +#endif + + wnd->nmb = nmb; + nmb->wnd = wnd; + nmb->pdo = pdo; + wd->wnd = wnd; + wnd->wd = wd; + wnd->net_dev = net_dev; + fdo->reserved = wnd; + nmb->fdo = fdo; + if (ndis_init_device(wnd)) { + IoDeleteDevice(fdo); + kfree(nmb); + free_netdev(net_dev); + EXIT1(return STATUS_RESOURCES); + } + nmb->next_device = IoAttachDeviceToDeviceStack(fdo, pdo); + spin_lock_init(&wnd->tx_ring_lock); + sema_init(&wnd->tx_ring_mutex, 1); + sema_init(&wnd->ndis_req_mutex, 1); + wnd->ndis_req_done = 0; + initialize_work(&wnd->tx_work, tx_worker, wnd); + wnd->tx_ring_start = 0; + wnd->tx_ring_end = 0; + wnd->is_tx_ring_full = 0; + wnd->capa.encr = 0; + wnd->capa.auth = 0; + wnd->attributes = 0; + wnd->dma_map_count = 0; + wnd->dma_map_addr = NULL; + wnd->nick[0] = 0; + init_timer(&wnd->hangcheck_timer); + wnd->scan_timestamp = 0; + init_timer(&wnd->iw_stats_timer); + wnd->iw_stats_interval = 10 * HZ; + wnd->ndis_pending_work = 0; + memset(&wnd->essid, 0, sizeof(wnd->essid)); + memset(&wnd->encr_info, 0, sizeof(wnd->encr_info)); + wnd->infrastructure_mode = Ndis802_11Infrastructure; + initialize_work(&wnd->ndis_work, ndis_worker, wnd); + wnd->iw_stats_enabled = TRUE; + + TRACE1("nmb: %p, pdo: %p, fdo: %p, attached: %p, next: %p", + nmb, pdo, fdo, fdo->attached, nmb->next_device); + + /* dispatch routines are called as Windows functions */ + for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++) + drv_obj->major_func[i] = WIN_FUNC_PTR(IoPassIrpDown,2); + + drv_obj->major_func[IRP_MJ_PNP] = WIN_FUNC_PTR(NdisDispatchPnp,2); + drv_obj->major_func[IRP_MJ_POWER] = WIN_FUNC_PTR(NdisDispatchPower,2); + drv_obj->major_func[IRP_MJ_INTERNAL_DEVICE_CONTROL] = + WIN_FUNC_PTR(NdisDispatchDeviceControl,2); +// drv_obj->major_func[IRP_MJ_DEVICE_CONTROL] = +// WIN_FUNC_PTR(NdisDispatchDeviceControl,2); + EXIT2(return STATUS_SUCCESS); +} + +int init_ndis_driver(struct driver_object *drv_obj) +{ + ENTER1("%p", drv_obj); + drv_obj->drv_ext->add_device = NdisAddDevice; + return 0; +} + +int wrapndis_init(void) +{ + wrapndis_wq = create_singlethread_workqueue("wrapndis_wq"); + if (!wrapndis_wq) + EXIT1(return -ENOMEM); + wrapndis_worker_thread = wrap_worker_init(wrapndis_wq); + TRACE1("%p", wrapndis_worker_thread); + register_netdevice_notifier(&netdev_notifier); + return 0; +} + +void wrapndis_exit(void) +{ + unregister_netdevice_notifier(&netdev_notifier); + if (wrapndis_wq) + destroy_workqueue(wrapndis_wq); + TRACE1("%p", wrapndis_worker_thread); + if (wrapndis_worker_thread) + ObDereferenceObject(wrapndis_worker_thread); +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/mkstubs.sh +++ linux-2.6.35/ubuntu/ndiswrapper/mkstubs.sh @@ -0,0 +1,12 @@ +#! /bin/sh + +for file in "$@"; do + echo + echo "# automatically generated from $file" + sed -n \ + -e 's/.*WIN_FUNC(\([^\,]\+\) *\, *\([0-9]\+\)).*/\ + win2lin(\1, \2)/p' \ + -e 's/.*WIN_FUNC_PTR(\([^\,]\+\) *\, *\([0-9]\+\)).*/\ + win2lin(\1, \2)/p' \ + $file | sed -e 's/[ \t ]\+//' | sort -u; \ +done --- linux-2.6.35.orig/ubuntu/ndiswrapper/usb.h +++ linux-2.6.35/ubuntu/ndiswrapper/usb.h @@ -0,0 +1,376 @@ +/* + * Copyright (C) 2004 Jan Kiszka + * Copyright (C) 2005 Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _USB_H_ +#define _USB_H_ + +#include "ntoskernel.h" + +#define IOCTL_INTERNAL_USB_SUBMIT_URB 0x00220003 +#define IOCTL_INTERNAL_USB_RESET_PORT 0x00220007 +#define IOCTL_INTERNAL_USB_GET_PORT_STATUS 0x00220013 +#define IOCTL_INTERNAL_USB_CYCLE_PORT 0x0022001F +#define IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION 0x00220027 + +#define URB_FUNCTION_SELECT_CONFIGURATION 0x0000 +#define URB_FUNCTION_SELECT_INTERFACE 0x0001 +#define URB_FUNCTION_ABORT_PIPE 0x0002 +#define URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL 0x0003 +#define URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL 0x0004 +#define URB_FUNCTION_GET_FRAME_LENGTH 0x0005 +#define URB_FUNCTION_SET_FRAME_LENGTH 0x0006 +#define URB_FUNCTION_GET_CURRENT_FRAME_NUMBER 0x0007 +#define URB_FUNCTION_CONTROL_TRANSFER 0x0008 +#define URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER 0x0009 +#define URB_FUNCTION_ISOCH_TRANSFER 0x000A +#define URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE 0x000B +#define URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE 0x000C +#define URB_FUNCTION_SET_FEATURE_TO_DEVICE 0x000D +#define URB_FUNCTION_SET_FEATURE_TO_INTERFACE 0x000E +#define URB_FUNCTION_SET_FEATURE_TO_ENDPOINT 0x000F +#define URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE 0x0010 +#define URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE 0x0011 +#define URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT 0x0012 +#define URB_FUNCTION_GET_STATUS_FROM_DEVICE 0x0013 +#define URB_FUNCTION_GET_STATUS_FROM_INTERFACE 0x0014 +#define URB_FUNCTION_GET_STATUS_FROM_ENDPOINT 0x0015 +#define URB_FUNCTION_RESERVED_0X0016 0x0016 +#define URB_FUNCTION_VENDOR_DEVICE 0x0017 +#define URB_FUNCTION_VENDOR_INTERFACE 0x0018 +#define URB_FUNCTION_VENDOR_ENDPOINT 0x0019 +#define URB_FUNCTION_CLASS_DEVICE 0x001A +#define URB_FUNCTION_CLASS_INTERFACE 0x001B +#define URB_FUNCTION_CLASS_ENDPOINT 0x001C +#define URB_FUNCTION_RESERVE_0X001D 0x001D +#define URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL 0x001E +#define URB_FUNCTION_CLASS_OTHER 0x001F +#define URB_FUNCTION_VENDOR_OTHER 0x0020 +#define URB_FUNCTION_GET_STATUS_FROM_OTHER 0x0021 +#define URB_FUNCTION_CLEAR_FEATURE_TO_OTHER 0x0022 +#define URB_FUNCTION_SET_FEATURE_TO_OTHER 0x0023 +#define URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT 0x0024 +#define URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT 0x0025 +#define URB_FUNCTION_GET_CONFIGURATION 0x0026 +#define URB_FUNCTION_GET_INTERFACE 0x0027 +#define URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE 0x0028 +#define URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE 0x0029 +#define URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR 0x002A +#define URB_FUNCTION_RESERVE_0X002B 0x002B +#define URB_FUNCTION_RESERVE_0X002C 0x002C +#define URB_FUNCTION_RESERVE_0X002D 0x002D +#define URB_FUNCTION_RESERVE_0X002E 0x002E +#define URB_FUNCTION_RESERVE_0X002F 0x002F +// USB 2.0 calls start at 0x0030 +#define URB_FUNCTION_SYNC_RESET_PIPE 0x0030 +#define URB_FUNCTION_SYNC_CLEAR_STALL 0x0031 +#define URB_FUNCTION_CONTROL_TRANSFER_EX 0x0032 + +#define USBD_PF_CHANGE_MAX_PACKET 0x00000001 + +#define USBD_TRANSFER_DIRECTION_OUT 0 +#define USBD_TRANSFER_DIRECTION_IN 1 + +#define USBD_SHORT_TRANSFER_OK 0x00000002 +#define USBD_START_ISO_TRANSFER_ASAP 0x00000004 +#define USBD_DEFAULT_PIPE_TRANSFER 0x00000008 + +#define USBD_TRANSFER_DIRECTION(flags) \ + ((flags) & USBD_TRANSFER_DIRECTION_IN) + +enum pipe_type {UsbdPipeTypeControl = USB_ENDPOINT_XFER_CONTROL, + UsbdPipeTypeIsochronous = USB_ENDPOINT_XFER_ISOC, + UsbdPipeTypeBulk = USB_ENDPOINT_XFER_BULK, + UsbdPipeTypeInterrupt = USB_ENDPOINT_XFER_INT}; + +#define USBD_IS_BULK_PIPE(pipe_handle) \ + (((pipe_handle)->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) \ + == USB_ENDPOINT_XFER_BULK) + +#define USBD_IS_INT_PIPE(pipe_handle) \ + (((pipe_handle)->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) \ + == USB_ENDPOINT_XFER_INT) + +#define USBD_PORT_ENABLED 0x00000001 +#define USBD_PORT_CONNECTED 0x00000002 + +typedef LONG USBD_STATUS; + +#define USBD_STATUS_SUCCESS 0x0 +#define USBD_STATUS_PENDING 0x40000000 +#define USBD_STATUS_CANCELED 0x00010000 + +#define USBD_STATUS_CRC 0xC0000001 +#define USBD_STATUS_BTSTUFF 0xC0000002 +#define USBD_STATUS_DATA_TOGGLE_MISMATCH 0xC0000003 +#define USBD_STATUS_STALL_PID 0xC0000004 +#define USBD_STATUS_DEV_NOT_RESPONDING 0xC0000005 +#define USBD_STATUS_PID_CHECK_FAILURE 0xC0000006 +#define USBD_STATUS_UNEXPECTED_PID 0xC0000007 +#define USBD_STATUS_DATA_OVERRUN 0xC0000008 +#define USBD_STATUS_DATA_UNDERRUN 0xC0000009 +#define USBD_STATUS_RESERVED1 0xC000000A +#define USBD_STATUS_RESERVED2 0xC000000B +#define USBD_STATUS_BUFFER_OVERRUN 0xC000000C +#define USBD_STATUS_BUFFER_UNDERRUN 0xC000000D +#define USBD_STATUS_NOT_ACCESSED 0xC000000F +#define USBD_STATUS_FIFO 0xC0000010 +#define USBD_STATUS_XACT_ERROR 0xC0000011 +#define USBD_STATUS_BABBLE_DETECTED 0xC0000012 +#define USBD_STATUS_DATA_BUFFER_ERROR 0xC0000013 + +#define USBD_STATUS_NOT_SUPPORTED 0xC0000E00 +#define USBD_STATUS_BUFFER_TOO_SMALL 0xC0003000 +#define USBD_STATUS_TIMEOUT 0xC0006000 +#define USBD_STATUS_DEVICE_GONE 0xC0007000 + +#define USBD_STATUS_NO_MEMORY 0x80000100 +#define USBD_STATUS_INVALID_URB_FUNCTION 0x80000200 +#define USBD_STATUS_INVALID_PARAMETER 0x80000300 +#define USBD_STATUS_REQUEST_FAILED 0x80000500 +#define USBD_STATUS_INVALID_PIPE_HANDLE 0x80000600 +#define USBD_STATUS_ERROR_SHORT_TRANSFER 0x80000900 + +#define USBD_DEFAULT_MAXIMUM_TRANSFER_SIZE PAGE_SIZE + +struct urb_hcd_area { + void *reserved8[8]; +}; + +typedef struct usb_endpoint_descriptor *usbd_pipe_handle; +typedef struct usb_descriptor_header usb_common_descriptor_t; + +struct usbd_pipe_information { + USHORT wMaxPacketSize; + UCHAR bEndpointAddress; + UCHAR bInterval; + enum pipe_type type; + usbd_pipe_handle handle; + ULONG max_tx_size; + ULONG flags; +}; + +struct usbd_interface_information { + USHORT bLength; + UCHAR bInterfaceNumber; + UCHAR bAlternateSetting; + UCHAR bInterfaceClass; + UCHAR bInterfaceSubClass; + UCHAR bInterfaceProtocol; + UCHAR reserved; + void *handle; + ULONG bNumEndpoints; + struct usbd_pipe_information pipes[1]; +}; + +struct usbd_interface_list_entry { + struct usb_interface_descriptor *intf_desc; + struct usbd_interface_information *intf; +}; + +struct nt_urb_header { + USHORT length; + USHORT function; + USBD_STATUS status; + void *usbd_dev_handle; + ULONG usbd_flags; +}; + +struct usbd_select_interface { + struct nt_urb_header header; + void *handle; + struct usbd_interface_information intf; +}; + +struct usbd_select_configuration { + struct nt_urb_header header; + struct usb_config_descriptor *config; + void *handle; + struct usbd_interface_information intf; +}; + +struct usbd_control_descriptor_request { + struct nt_urb_header header; + void *reserved; + ULONG reserved0; + ULONG transfer_buffer_length; + void *transfer_buffer; + struct mdl *mdl; + union nt_urb *urb_link; + struct urb_hcd_area hca; + USHORT reserved1; + UCHAR index; + UCHAR desc_type; + USHORT language_id; + USHORT reserved2; +}; + +struct usbd_bulk_or_intr_transfer { + struct nt_urb_header header; + usbd_pipe_handle pipe_handle; + ULONG transfer_flags; + ULONG transfer_buffer_length; + void *transfer_buffer; + struct mdl *mdl; + union nt_urb *urb_link; + struct urb_hcd_area hca; +}; + +struct usbd_pipe_request { + struct nt_urb_header header; + usbd_pipe_handle pipe_handle; +}; + +struct usbd_vendor_or_class_request { + struct nt_urb_header header; + void *reserved; + ULONG transfer_flags; + ULONG transfer_buffer_length; + void *transfer_buffer; + struct mdl *mdl; + union nt_urb *link; + struct urb_hcd_area hca; + UCHAR reserved_bits; + UCHAR request; + USHORT value; + USHORT index; + USHORT reserved1; +}; + +struct urb_control_feature_request { + struct nt_urb_header header; + void *reserved; + ULONG reserved2; + ULONG reserved3; + void *reserved4; + struct mdl *reserved5; + union nt_urb *link; + struct urb_hcd_area hca; + USHORT reserved0; + USHORT feature_selector; + USHORT index; + USHORT reserved1; +}; + +struct urb_control_get_status_request { + struct nt_urb_header header; + void *reserved; + ULONG reserved0; + ULONG transfer_buffer_length; + void *transfer_buffer; + struct mdl *mdl; + union nt_urb *link; + struct urb_hcd_area hca; + UCHAR reserved1[4]; + USHORT index; + USHORT reserved2; +}; + +struct usbd_iso_packet_desc { + ULONG offset; + ULONG length; + USBD_STATUS status; +}; + +struct usbd_isochronous_transfer { + struct nt_urb_header header; + usbd_pipe_handle pipe_handle; + ULONG transfer_flags; + ULONG transfer_buffer_length; + void *transfer_buffer; + struct mdl *mdl; + union nt_urb *urb_link; + struct urb_hcd_area hca; + ULONG start_frame; + ULONG number_of_packets; + ULONG error_count; + struct usbd_iso_packet_desc iso_packet[1]; +}; + +union nt_urb { + struct nt_urb_header header; + struct usbd_select_interface select_intf; + struct usbd_select_configuration select_conf; + struct usbd_bulk_or_intr_transfer bulk_int_transfer; + struct usbd_control_descriptor_request control_desc; + struct usbd_vendor_or_class_request vendor_class_request; + struct usbd_isochronous_transfer isochronous; + struct usbd_pipe_request pipe_req; + struct urb_control_feature_request feat_req; + struct urb_control_get_status_request status_req; +}; + +struct usbd_bus_interface_usbdi { + USHORT Size; + USHORT Version; + void *Context; + void *InterfaceReference; + void *InterfaceDereference; + void *GetUSBDIVersion; + void *QueryBusTime; + void *SubmitIsoOutUrb; + void *QueryBusInformation; + /* version 1 and above have following field */ + void *IsDeviceHighSpeed; + /* version 2 (and above) have following field */ + void *LogEntry; +}; + +struct usbd_bus_information_level { + ULONG TotalBandwidth; + ULONG ConsumedBandwidth; + /* level 1 and above have following fields */ + ULONG ControllerNameLength; + wchar_t ControllerName[1]; +}; + +#define USBDI_VERSION_XP 0x00000500 // Windows XP +#define USB_HCD_CAPS_SUPPORTS_RT_THREADS 0x00000001 +#define USB_BUSIF_USBDI_VERSION_0 0x0000 +#define USB_BUSIF_USBDI_VERSION_1 0x0001 +#define USB_BUSIF_USBDI_VERSION_2 0x0002 + +struct usbd_version_info { + ULONG usbdi_version; + ULONG supported_usb_version; +}; + +struct usbd_idle_callback { + void *callback; + void *context; +}; + +#define NT_URB_STATUS(nt_urb) ((nt_urb)->header.status) + +NTSTATUS wrap_submit_irp(struct device_object *pdo, struct irp *irp); +void wrap_suspend_urbs(struct wrap_device *wd); +void wrap_resume_urbs(struct wrap_device *wd); + +void USBD_InterfaceGetUSBDIVersion(void *context, + struct usbd_version_info *version_info, + ULONG *hcd_capa) wstdcall; +BOOLEAN USBD_InterfaceIsDeviceHighSpeed(void *context) wstdcall; +void USBD_InterfaceReference(void *context) wstdcall; +void USBD_InterfaceDereference(void *context) wstdcall; +NTSTATUS USBD_InterfaceQueryBusTime(void *context, ULONG *frame) wstdcall; +NTSTATUS USBD_InterfaceSubmitIsoOutUrb(void *context, + union nt_urb *nt_urb) wstdcall; +NTSTATUS USBD_InterfaceQueryBusInformation(void *context, ULONG level, void *buf, + ULONG *buf_length, + ULONG *buf_actual_length) wstdcall; +NTSTATUS USBD_InterfaceLogEntry(void *context, ULONG driver_tag, ULONG enum_tag, + ULONG p1, ULONG p2) wstdcall; + +#endif /* USB_H */ --- linux-2.6.35.orig/ubuntu/ndiswrapper/proc.c +++ linux-2.6.35/ubuntu/ndiswrapper/proc.c @@ -0,0 +1,565 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#include +#include +#include + +#include "ndis.h" +#include "iw_ndis.h" +#include "wrapndis.h" +#include "pnp.h" +#include "wrapper.h" + +#define MAX_PROC_STR_LEN 32 + +static struct proc_dir_entry *wrap_procfs_entry; + +static int procfs_read_ndis_stats(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + char *p = page; + struct ndis_device *wnd = (struct ndis_device *)data; + struct ndis_wireless_stats stats; + NDIS_STATUS res; + ndis_rssi rssi; + + if (off != 0) { + *eof = 1; + return 0; + } + + res = mp_query(wnd, OID_802_11_RSSI, &rssi, sizeof(rssi)); + if (!res) + p += sprintf(p, "signal_level=%d dBm\n", (s32)rssi); + + res = mp_query(wnd, OID_802_11_STATISTICS, &stats, sizeof(stats)); + if (!res) { + + p += sprintf(p, "tx_frames=%Lu\n", stats.tx_frag); + p += sprintf(p, "tx_multicast_frames=%Lu\n", + stats.tx_multi_frag); + p += sprintf(p, "tx_failed=%Lu\n", stats.failed); + p += sprintf(p, "tx_retry=%Lu\n", stats.retry); + p += sprintf(p, "tx_multi_rerty=%Lu\n", stats.multi_retry); + p += sprintf(p, "tx_rtss_success=%Lu\n", stats.rtss_succ); + p += sprintf(p, "tx_rtss_fail=%Lu\n", stats.rtss_fail); + p += sprintf(p, "ack_fail=%Lu\n", stats.ack_fail); + p += sprintf(p, "frame_duplicates=%Lu\n", stats.frame_dup); + p += sprintf(p, "rx_frames=%Lu\n", stats.rx_frag); + p += sprintf(p, "rx_multicast_frames=%Lu\n", + stats.rx_multi_frag); + p += sprintf(p, "fcs_errors=%Lu\n", stats.fcs_err); + } + + if (p - page > count) { + ERROR("wrote %lu bytes (limit is %u)\n", + (unsigned long)(p - page), count); + *eof = 1; + } + + return p - page; +} + +static int procfs_read_ndis_encr(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + char *p = page; + struct ndis_device *wnd = (struct ndis_device *)data; + int i, encr_status, auth_mode, infra_mode; + NDIS_STATUS res; + struct ndis_essid essid; + mac_address ap_address; + + if (off != 0) { + *eof = 1; + return 0; + } + + res = mp_query(wnd, OID_802_11_BSSID, + &ap_address, sizeof(ap_address)); + if (res) + memset(ap_address, 0, ETH_ALEN); + p += sprintf(p, "ap_address=%2.2X", ap_address[0]); + for (i = 1 ; i < ETH_ALEN ; i++) + p += sprintf(p, ":%2.2X", ap_address[i]); + p += sprintf(p, "\n"); + + res = mp_query(wnd, OID_802_11_SSID, &essid, sizeof(essid)); + if (!res) + p += sprintf(p, "essid=%.*s\n", essid.length, essid.essid); + + res = mp_query_int(wnd, OID_802_11_ENCRYPTION_STATUS, &encr_status); + if (!res) { + typeof(&wnd->encr_info.keys[0]) tx_key; + p += sprintf(p, "tx_key=%u\n", wnd->encr_info.tx_key_index); + p += sprintf(p, "key="); + tx_key = &wnd->encr_info.keys[wnd->encr_info.tx_key_index]; + if (tx_key->length > 0) + for (i = 0; i < tx_key->length; i++) + p += sprintf(p, "%2.2X", tx_key->key[i]); + else + p += sprintf(p, "off"); + p += sprintf(p, "\n"); + p += sprintf(p, "encr_mode=%d\n", encr_status); + } + res = mp_query_int(wnd, OID_802_11_AUTHENTICATION_MODE, &auth_mode); + if (!res) + p += sprintf(p, "auth_mode=%d\n", auth_mode); + res = mp_query_int(wnd, OID_802_11_INFRASTRUCTURE_MODE, &infra_mode); + p += sprintf(p, "mode=%s\n", (infra_mode == Ndis802_11IBSS) ? + "adhoc" : (infra_mode == Ndis802_11Infrastructure) ? + "managed" : "auto"); + if (p - page > count) { + WARNING("wrote %lu bytes (limit is %u)", + (unsigned long)(p - page), count); + *eof = 1; + } + + return p - page; +} + +static int procfs_read_ndis_hw(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + char *p = page; + struct ndis_device *wnd = (struct ndis_device *)data; + struct ndis_configuration config; + unsigned int power_mode; + NDIS_STATUS res; + ndis_tx_power_level tx_power; + ULONG bit_rate; + ndis_rts_threshold rts_threshold; + ndis_fragmentation_threshold frag_threshold; + ndis_antenna antenna; + ULONG packet_filter; + int n; + mac_address mac; + char *hw_status[] = {"ready", "initializing", "resetting", "closing", + "not ready"}; + + if (off != 0) { + *eof = 1; + return 0; + } + + res = mp_query_int(wnd, OID_GEN_HARDWARE_STATUS, &n); + if (res == NDIS_STATUS_SUCCESS && + n >= 0 && n < sizeof(hw_status) / sizeof(hw_status[0])) + p += sprintf(p, "status=%s\n", hw_status[n]); + + res = mp_query(wnd, OID_802_3_CURRENT_ADDRESS, mac, sizeof(mac)); + if (!res) + p += sprintf(p, "mac: " MACSTRSEP "\n", MAC2STR(mac)); + res = mp_query(wnd, OID_802_11_CONFIGURATION, &config, sizeof(config)); + if (!res) { + p += sprintf(p, "beacon_period=%u msec\n", + config.beacon_period); + p += sprintf(p, "atim_window=%u msec\n", config.atim_window); + p += sprintf(p, "frequency=%u kHZ\n", config.ds_config); + p += sprintf(p, "hop_pattern=%u\n", + config.fh_config.hop_pattern); + p += sprintf(p, "hop_set=%u\n", + config.fh_config.hop_set); + p += sprintf(p, "dwell_time=%u msec\n", + config.fh_config.dwell_time); + } + + res = mp_query(wnd, OID_802_11_TX_POWER_LEVEL, + &tx_power, sizeof(tx_power)); + if (!res) + p += sprintf(p, "tx_power=%u mW\n", tx_power); + + res = mp_query(wnd, OID_GEN_LINK_SPEED, &bit_rate, sizeof(bit_rate)); + if (!res) + p += sprintf(p, "bit_rate=%u kBps\n", (u32)bit_rate / 10); + + res = mp_query(wnd, OID_802_11_RTS_THRESHOLD, + &rts_threshold, sizeof(rts_threshold)); + if (!res) + p += sprintf(p, "rts_threshold=%u bytes\n", rts_threshold); + + res = mp_query(wnd, OID_802_11_FRAGMENTATION_THRESHOLD, + &frag_threshold, sizeof(frag_threshold)); + if (!res) + p += sprintf(p, "frag_threshold=%u bytes\n", frag_threshold); + + res = mp_query_int(wnd, OID_802_11_POWER_MODE, &power_mode); + if (!res) + p += sprintf(p, "power_mode=%s\n", + (power_mode == NDIS_POWER_OFF) ? "always_on" : + (power_mode == NDIS_POWER_MAX) ? + "max_savings" : "min_savings"); + + res = mp_query(wnd, OID_802_11_NUMBER_OF_ANTENNAS, + &antenna, sizeof(antenna)); + if (!res) + p += sprintf(p, "num_antennas=%u\n", antenna); + + res = mp_query(wnd, OID_802_11_TX_ANTENNA_SELECTED, + &antenna, sizeof(antenna)); + if (!res) + p += sprintf(p, "tx_antenna=%u\n", antenna); + + res = mp_query(wnd, OID_802_11_RX_ANTENNA_SELECTED, + &antenna, sizeof(antenna)); + if (!res) + p += sprintf(p, "rx_antenna=%u\n", antenna); + + p += sprintf(p, "encryption_modes=%s%s%s%s%s%s%s\n", + test_bit(Ndis802_11Encryption1Enabled, &wnd->capa.encr) ? + "WEP" : "none", + + test_bit(Ndis802_11Encryption2Enabled, &wnd->capa.encr) ? + "; TKIP with WPA" : "", + test_bit(Ndis802_11AuthModeWPA2, &wnd->capa.auth) ? + ", WPA2" : "", + test_bit(Ndis802_11AuthModeWPA2PSK, &wnd->capa.auth) ? + ", WPA2PSK" : "", + + test_bit(Ndis802_11Encryption3Enabled, &wnd->capa.encr) ? + "; AES/CCMP with WPA" : "", + test_bit(Ndis802_11AuthModeWPA2, &wnd->capa.auth) ? + ", WPA2" : "", + test_bit(Ndis802_11AuthModeWPA2PSK, &wnd->capa.auth) ? + ", WPA2PSK" : ""); + + res = mp_query_int(wnd, OID_GEN_CURRENT_PACKET_FILTER, &packet_filter); + if (!res) { + if (packet_filter != wnd->packet_filter) + WARNING("wrong packet_filter? 0x%08x, 0x%08x\n", + packet_filter, wnd->packet_filter); + p += sprintf(p, "packet_filter: 0x%08x\n", packet_filter); + } + if (p - page > count) { + WARNING("wrote %lu bytes (limit is %u)", + (unsigned long)(p - page), count); + *eof = 1; + } + + return p - page; +} + +static int procfs_read_ndis_settings(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + char *p = page; + struct ndis_device *wnd = (struct ndis_device *)data; + struct wrap_device_setting *setting; + + if (off != 0) { + *eof = 1; + return 0; + } + + p += sprintf(p, "hangcheck_interval=%d\n", + hangcheck_interval == 0 ? + (int)(wnd->hangcheck_interval / HZ) : -1); + + list_for_each_entry(setting, &wnd->wd->settings, list) { + p += sprintf(p, "%s=%s\n", setting->name, setting->value); + } + + list_for_each_entry(setting, &wnd->wd->driver->settings, list) { + p += sprintf(p, "%s=%s\n", setting->name, setting->value); + } + + return p - page; +} + +static int procfs_write_ndis_settings(struct file *file, const char __user *buf, + unsigned long count, void *data) +{ + struct ndis_device *wnd = (struct ndis_device *)data; + char setting[MAX_PROC_STR_LEN], *p; + unsigned int i; + NDIS_STATUS res; + + if (count > MAX_PROC_STR_LEN) + return -EINVAL; + + memset(setting, 0, sizeof(setting)); + if (copy_from_user(setting, buf, count)) + return -EFAULT; + + if ((p = strchr(setting, '\n'))) + *p = 0; + + if ((p = strchr(setting, '='))) + *p = 0; + + if (!strcmp(setting, "hangcheck_interval")) { + if (!p) + return -EINVAL; + p++; + i = simple_strtol(p, NULL, 10); + hangcheck_del(wnd); + if (i > 0) { + wnd->hangcheck_interval = i * HZ; + hangcheck_add(wnd); + } + } else if (!strcmp(setting, "suspend")) { + if (!p) + return -EINVAL; + p++; + i = simple_strtol(p, NULL, 10); + if (i <= 0 || i > 3) + return -EINVAL; + if (wrap_is_pci_bus(wnd->wd->dev_bus)) + i = wrap_pnp_suspend_pci_device(wnd->wd->pci.pdev, + PMSG_SUSPEND); + else +#ifdef ENABLE_USB + i = wrap_pnp_suspend_usb_device(wnd->wd->usb.intf, + PMSG_SUSPEND); +#else + i = -1; +#endif + if (i) + return -EINVAL; + } else if (!strcmp(setting, "resume")) { + if (wrap_is_pci_bus(wnd->wd->dev_bus)) + i = wrap_pnp_resume_pci_device(wnd->wd->pci.pdev); + else +#ifdef ENABLE_USB + i = wrap_pnp_resume_usb_device(wnd->wd->usb.intf); +#else + i = -1; +#endif + if (i) + return -EINVAL; + } else if (!strcmp(setting, "stats_enabled")) { + if (!p) + return -EINVAL; + p++; + i = simple_strtol(p, NULL, 10); + if (i > 0) + wnd->iw_stats_enabled = TRUE; + else + wnd->iw_stats_enabled = FALSE; + } else if (!strcmp(setting, "packet_filter")) { + if (!p) + return -EINVAL; + p++; + i = simple_strtol(p, NULL, 10); + res = mp_set_int(wnd, OID_GEN_CURRENT_PACKET_FILTER, i); + if (res) + WARNING("setting packet_filter failed: %08X", res); + } else if (!strcmp(setting, "reinit")) { + if (ndis_reinit(wnd) != NDIS_STATUS_SUCCESS) + return -EFAULT; + } else { + struct ndis_configuration_parameter param; + struct unicode_string key; + struct ansi_string ansi; + + if (!p) + return -EINVAL; + p++; + RtlInitAnsiString(&ansi, p); + if (RtlAnsiStringToUnicodeString(¶m.data.string, &ansi, + TRUE) != STATUS_SUCCESS) + EXIT1(return -EFAULT); + param.type = NdisParameterString; + RtlInitAnsiString(&ansi, setting); + if (RtlAnsiStringToUnicodeString(&key, &ansi, + TRUE) != STATUS_SUCCESS) { + RtlFreeUnicodeString(¶m.data.string); + EXIT1(return -EINVAL); + } + NdisWriteConfiguration(&res, wnd->nmb, &key, ¶m); + RtlFreeUnicodeString(&key); + RtlFreeUnicodeString(¶m.data.string); + if (res != NDIS_STATUS_SUCCESS) + return -EFAULT; + } + return count; +} + +int wrap_procfs_add_ndis_device(struct ndis_device *wnd) +{ + struct proc_dir_entry *procfs_entry; + + if (wrap_procfs_entry == NULL) + return -ENOMEM; + + if (wnd->procfs_iface) { + ERROR("%s already registered?", wnd->netdev_name); + return -EINVAL; + } + wnd->procfs_iface = proc_mkdir(wnd->netdev_name, wrap_procfs_entry); + if (wnd->procfs_iface == NULL) { + ERROR("couldn't create proc directory"); + return -ENOMEM; + } + wnd->procfs_iface->uid = proc_uid; + wnd->procfs_iface->gid = proc_gid; + + procfs_entry = create_proc_entry("hw", S_IFREG | S_IRUSR | S_IRGRP, + wnd->procfs_iface); + if (procfs_entry == NULL) { + ERROR("couldn't create proc entry for 'hw'"); + goto err_hw; + } else { + procfs_entry->uid = proc_uid; + procfs_entry->gid = proc_gid; + procfs_entry->data = wnd; + procfs_entry->read_proc = procfs_read_ndis_hw; + } + + procfs_entry = create_proc_entry("stats", S_IFREG | S_IRUSR | S_IRGRP, + wnd->procfs_iface); + if (procfs_entry == NULL) { + ERROR("couldn't create proc entry for 'stats'"); + goto err_stats; + } else { + procfs_entry->uid = proc_uid; + procfs_entry->gid = proc_gid; + procfs_entry->data = wnd; + procfs_entry->read_proc = procfs_read_ndis_stats; + } + + procfs_entry = create_proc_entry("encr", S_IFREG | S_IRUSR | S_IRGRP, + wnd->procfs_iface); + if (procfs_entry == NULL) { + ERROR("couldn't create proc entry for 'encr'"); + goto err_encr; + } else { + procfs_entry->uid = proc_uid; + procfs_entry->gid = proc_gid; + procfs_entry->data = wnd; + procfs_entry->read_proc = procfs_read_ndis_encr; + } + + procfs_entry = create_proc_entry("settings", S_IFREG | + S_IRUSR | S_IRGRP | + S_IWUSR | S_IWGRP, wnd->procfs_iface); + if (procfs_entry == NULL) { + ERROR("couldn't create proc entry for 'settings'"); + goto err_settings; + } else { + procfs_entry->uid = proc_uid; + procfs_entry->gid = proc_gid; + procfs_entry->data = wnd; + procfs_entry->read_proc = procfs_read_ndis_settings; + procfs_entry->write_proc = procfs_write_ndis_settings; + } + return 0; + +err_settings: + remove_proc_entry("encr", wnd->procfs_iface); +err_encr: + remove_proc_entry("stats", wnd->procfs_iface); +err_stats: + remove_proc_entry("hw", wnd->procfs_iface); +err_hw: + remove_proc_entry(wnd->netdev_name, wrap_procfs_entry); + wnd->procfs_iface = NULL; + return -ENOMEM; +} + +void wrap_procfs_remove_ndis_device(struct ndis_device *wnd) +{ + struct proc_dir_entry *procfs_iface = xchg(&wnd->procfs_iface, NULL); + + if (procfs_iface == NULL) + return; + remove_proc_entry("hw", procfs_iface); + remove_proc_entry("stats", procfs_iface); + remove_proc_entry("encr", procfs_iface); + remove_proc_entry("settings", procfs_iface); + if (wrap_procfs_entry) + remove_proc_entry(wnd->netdev_name, wrap_procfs_entry); +} + +static int procfs_read_debug(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + char *p = page; + enum alloc_type type; + + if (off != 0) { + *eof = 1; + return 0; + } + p += sprintf(p, "%d\n", debug); + type = 0; +#ifdef ALLOC_DEBUG + for (type = 0; type < ALLOC_TYPE_MAX; type++) + p += sprintf(p, "total size of allocations in %d: %d\n", + type, alloc_size(type)); +#endif + return p - page; +} + +static int procfs_write_debug(struct file *file, const char __user *buf, + unsigned long count, void *data) +{ + int i; + char setting[MAX_PROC_STR_LEN], *p; + + if (count > MAX_PROC_STR_LEN) + return -EINVAL; + + memset(setting, 0, sizeof(setting)); + if (copy_from_user(setting, buf, count)) + return -EFAULT; + + if ((p = strchr(setting, '\n'))) + *p = 0; + + if ((p = strchr(setting, '='))) + *p = 0; + + i = simple_strtol(setting, NULL, 10); + if (i >= 0 && i < 10) + debug = i; + else + return -EINVAL; + return count; +} + +int wrap_procfs_init(void) +{ + struct proc_dir_entry *procfs_entry; + + wrap_procfs_entry = proc_mkdir(DRIVER_NAME, proc_net_root); + if (wrap_procfs_entry == NULL) { + ERROR("couldn't create procfs directory"); + return -ENOMEM; + } + wrap_procfs_entry->uid = proc_uid; + wrap_procfs_entry->gid = proc_gid; + + procfs_entry = create_proc_entry("debug", S_IFREG | S_IRUSR | S_IRGRP, + wrap_procfs_entry); + if (procfs_entry == NULL) { + ERROR("couldn't create proc entry for 'debug'"); + return -ENOMEM; + } else { + procfs_entry->uid = proc_uid; + procfs_entry->gid = proc_gid; + procfs_entry->read_proc = procfs_read_debug; + procfs_entry->write_proc = procfs_write_debug; + } + return 0; +} + +void wrap_procfs_remove(void) +{ + if (wrap_procfs_entry == NULL) + return; + remove_proc_entry("debug", wrap_procfs_entry); + remove_proc_entry(DRIVER_NAME, proc_net_root); +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/loader.c +++ linux-2.6.35/ubuntu/ndiswrapper/loader.c @@ -0,0 +1,877 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "ndis.h" +#include "loader.h" +#include "wrapndis.h" +#include "pnp.h" + +#include +#include +#include +#include + +/* + Network adapter: ClassGuid = {4d36e972-e325-11ce-bfc1-08002be10318} + Network client: ClassGuid = {4d36e973-e325-11ce-bfc1-08002be10318} + PCMCIA adapter: ClassGuid = {4d36e977-e325-11ce-bfc1-08002be10318} + USB: ClassGuid = {36fc9e60-c465-11cf-8056-444553540000} +*/ + +/* the indices used here must match macros WRAP_NDIS_DEVICE etc. */ +static struct guid class_guids[] = { + /* Network */ + {0x4d36e972, 0xe325, 0x11ce, }, + /* USB WDM */ + {0x36fc9e60, 0xc465, 0x11cf, }, + /* Bluetooth */ + {0xe0cbf06c, 0xcd8b, 0x4647, }, + /* ivtcorporatino.com's bluetooth device claims this is + * bluetooth guid */ + {0xf12d3cf8, 0xb11d, 0x457e, }, +}; + +struct semaphore loader_mutex; +static struct completion loader_complete; + +static struct nt_list wrap_devices; +static struct nt_list wrap_drivers; + +static int wrap_device_type(int data1) +{ + int i; + for (i = 0; i < sizeof(class_guids) / sizeof(class_guids[0]); i++) + if (data1 == class_guids[i].data1) + return i; + ERROR("unknown device: 0x%x\n", data1); + return -1; +} + +/* load driver for given device, if not already loaded */ +struct wrap_driver *load_wrap_driver(struct wrap_device *wd) +{ + int ret; + struct nt_list *cur; + struct wrap_driver *wrap_driver; + + ENTER1("device: %04X:%04X:%04X:%04X", wd->vendor, wd->device, + wd->subvendor, wd->subdevice); + if (down_interruptible(&loader_mutex)) { + WARNING("couldn't obtain loader_mutex"); + EXIT1(return NULL); + } + wrap_driver = NULL; + nt_list_for_each(cur, &wrap_drivers) { + wrap_driver = container_of(cur, struct wrap_driver, list); + if (!stricmp(wrap_driver->name, wd->driver_name)) { + TRACE1("driver %s already loaded", wrap_driver->name); + break; + } else + wrap_driver = NULL; + } + up(&loader_mutex); + + if (!wrap_driver) { + char *argv[] = {"loadndisdriver", WRAP_CMD_LOAD_DRIVER, +#if defined(DEBUG) && DEBUG >= 1 + "1", +#else + "0", +#endif + UTILS_VERSION, wd->driver_name, + wd->conf_file_name, NULL}; + char *env[] = {NULL}; + + TRACE1("loading driver %s", wd->driver_name); + if (down_interruptible(&loader_mutex)) { + WARNING("couldn't obtain loader_mutex"); + EXIT1(return NULL); + } + INIT_COMPLETION(loader_complete); + ret = call_usermodehelper("/sbin/loadndisdriver", argv, env, 1); + if (ret) { + up(&loader_mutex); + ERROR("couldn't load driver %s; check system log " + "for messages from 'loadndisdriver'", + wd->driver_name); + EXIT1(return NULL); + } + wait_for_completion(&loader_complete); + TRACE1("%s", wd->driver_name); + wrap_driver = NULL; + nt_list_for_each(cur, &wrap_drivers) { + wrap_driver = container_of(cur, struct wrap_driver, + list); + if (!stricmp(wrap_driver->name, wd->driver_name)) { + wd->driver = wrap_driver; + break; + } else + wrap_driver = NULL; + } + up(&loader_mutex); + if (wrap_driver) + TRACE1("driver %s is loaded", wrap_driver->name); + else + ERROR("couldn't load driver '%s'", wd->driver_name); + } + EXIT1(return wrap_driver); +} + +/* load the driver files from userspace. */ +static int load_sys_files(struct wrap_driver *driver, + struct load_driver *load_driver) +{ + int i, err; + + TRACE1("num_pe_images = %d", load_driver->num_sys_files); + TRACE1("loading driver: %s", load_driver->name); + strncpy(driver->name, load_driver->name, sizeof(driver->name)); + driver->name[sizeof(driver->name)-1] = 0; + TRACE1("driver: %s", driver->name); + err = 0; + driver->num_pe_images = 0; + for (i = 0; i < load_driver->num_sys_files; i++) { + struct pe_image *pe_image; + pe_image = &driver->pe_images[driver->num_pe_images]; + + strncpy(pe_image->name, load_driver->sys_files[i].name, + sizeof(pe_image->name)); + pe_image->name[sizeof(pe_image->name)-1] = 0; + TRACE1("image size: %lu bytes", + (unsigned long)load_driver->sys_files[i].size); + +#ifdef CONFIG_X86_64 +#ifdef PAGE_KERNEL_EXECUTABLE + pe_image->image = + __vmalloc(load_driver->sys_files[i].size, + GFP_KERNEL | __GFP_HIGHMEM, + PAGE_KERNEL_EXECUTABLE); +#elif defined PAGE_KERNEL_EXEC + pe_image->image = + __vmalloc(load_driver->sys_files[i].size, + GFP_KERNEL | __GFP_HIGHMEM, + PAGE_KERNEL_EXEC); +#else +#error x86_64 should have either PAGE_KERNEL_EXECUTABLE or PAGE_KERNEL_EXEC +#endif +#else + /* hate to play with kernel macros, but PAGE_KERNEL_EXEC is + * not available to modules! */ +#ifdef cpu_has_nx + if (cpu_has_nx) + pe_image->image = + __vmalloc(load_driver->sys_files[i].size, + GFP_KERNEL | __GFP_HIGHMEM, + __pgprot(__PAGE_KERNEL & ~_PAGE_NX)); + else + pe_image->image = + vmalloc(load_driver->sys_files[i].size); +#else + pe_image->image = + vmalloc(load_driver->sys_files[i].size); +#endif +#endif + if (!pe_image->image) { + ERROR("couldn't allocate memory"); + err = -ENOMEM; + break; + } + TRACE1("image is at %p", pe_image->image); + + if (copy_from_user(pe_image->image, + load_driver->sys_files[i].data, + load_driver->sys_files[i].size)) { + ERROR("couldn't load file %s", + load_driver->sys_files[i].name); + err = -EFAULT; + break; + } + pe_image->size = load_driver->sys_files[i].size; + driver->num_pe_images++; + } + + if (!err && link_pe_images(driver->pe_images, driver->num_pe_images)) { + ERROR("couldn't prepare driver '%s'", load_driver->name); + err = -EINVAL; + } + + if (driver->num_pe_images < load_driver->num_sys_files || err) { + for (i = 0; i < driver->num_pe_images; i++) + if (driver->pe_images[i].image) + vfree(driver->pe_images[i].image); + driver->num_pe_images = 0; + EXIT1(return err); + } else + EXIT1(return 0); +} + +struct wrap_bin_file *get_bin_file(char *bin_file_name) +{ + int i = 0; + struct wrap_driver *driver, *cur; + + ENTER1("%s", bin_file_name); + if (down_interruptible(&loader_mutex)) { + WARNING("couldn't obtain loader_mutex"); + EXIT1(return NULL); + } + driver = NULL; + nt_list_for_each_entry(cur, &wrap_drivers, list) { + for (i = 0; i < cur->num_bin_files; i++) + if (!stricmp(cur->bin_files[i].name, bin_file_name)) { + driver = cur; + break; + } + if (driver) + break; + } + up(&loader_mutex); + if (!driver) { + TRACE1("coudln't find bin file '%s'", bin_file_name); + return NULL; + } + + if (!driver->bin_files[i].data) { + char *argv[] = {"loadndisdriver", WRAP_CMD_LOAD_BIN_FILE, +#if defined(DEBUG) && DEBUG >= 1 + "1", +#else + "0", +#endif + UTILS_VERSION, driver->name, + driver->bin_files[i].name, NULL}; + char *env[] = {NULL}; + int ret; + + TRACE1("loading bin file %s/%s", driver->name, + driver->bin_files[i].name); + if (down_interruptible(&loader_mutex)) { + WARNING("couldn't obtain loader_mutex"); + EXIT1(return NULL); + } + INIT_COMPLETION(loader_complete); + ret = call_usermodehelper("/sbin/loadndisdriver", argv, env, 1); + if (ret) { + up(&loader_mutex); + ERROR("couldn't load file %s/%s; check system log " + "for messages from 'loadndisdriver' (%d)", + driver->name, driver->bin_files[i].name, ret); + EXIT1(return NULL); + } + wait_for_completion(&loader_complete); + up(&loader_mutex); + if (!driver->bin_files[i].data) { + WARNING("couldn't load binary file %s", + driver->bin_files[i].name); + EXIT1(return NULL); + } + } + EXIT2(return &(driver->bin_files[i])); +} + +/* called with loader_mutex down */ +static int add_bin_file(struct load_driver_file *driver_file) +{ + struct wrap_driver *driver, *cur; + struct wrap_bin_file *bin_file; + int i = 0; + + driver = NULL; + nt_list_for_each_entry(cur, &wrap_drivers, list) { + for (i = 0; i < cur->num_bin_files; i++) + if (!stricmp(cur->bin_files[i].name, + driver_file->name)) { + driver = cur; + break; + } + if (driver) + break; + } + if (!driver) { + ERROR("couldn't find %s", driver_file->name); + return -EINVAL; + } + bin_file = &driver->bin_files[i]; + strncpy(bin_file->name, driver_file->name, sizeof(bin_file->name)); + bin_file->name[sizeof(bin_file->name)-1] = 0; + bin_file->data = vmalloc(driver_file->size); + if (!bin_file->data) { + ERROR("couldn't allocate memory"); + return -ENOMEM; + } + bin_file->size = driver_file->size; + if (copy_from_user(bin_file->data, driver_file->data, bin_file->size)) { + ERROR("couldn't copy data"); + free_bin_file(bin_file); + return -EFAULT; + } + return 0; +} + +void free_bin_file(struct wrap_bin_file *bin_file) +{ + TRACE2("unloading %s", bin_file->name); + if (bin_file->data) + vfree(bin_file->data); + bin_file->data = NULL; + bin_file->size = 0; + EXIT2(return); +} + +/* load firmware files from userspace */ +static int load_bin_files_info(struct wrap_driver *driver, + struct load_driver *load_driver) +{ + struct wrap_bin_file *bin_files; + int i; + + ENTER1("%s, %d", load_driver->name, load_driver->num_bin_files); + driver->num_bin_files = 0; + driver->bin_files = NULL; + if (load_driver->num_bin_files == 0) + EXIT1(return 0); + bin_files = kzalloc(load_driver->num_bin_files * sizeof(*bin_files), + GFP_KERNEL); + if (!bin_files) { + ERROR("couldn't allocate memory"); + EXIT1(return -ENOMEM); + } + + for (i = 0; i < load_driver->num_bin_files; i++) { + strncpy(bin_files[i].name, load_driver->bin_files[i].name, + sizeof(bin_files[i].name)); + bin_files[i].name[sizeof(bin_files[i].name)-1] = 0; + TRACE2("loaded bin file %s", bin_files[i].name); + } + driver->num_bin_files = load_driver->num_bin_files; + driver->bin_files = bin_files; + EXIT1(return 0); +} + +/* load settnigs for a device. called with loader_mutex down */ +static int load_settings(struct wrap_driver *wrap_driver, + struct load_driver *load_driver) +{ + int i, num_settings; + + ENTER1("%p, %p", wrap_driver, load_driver); + + num_settings = 0; + for (i = 0; i < load_driver->num_settings; i++) { + struct load_device_setting *load_setting = + &load_driver->settings[i]; + struct wrap_device_setting *setting; + ULONG data1; + + setting = kzalloc(sizeof(*setting), GFP_KERNEL); + if (!setting) { + ERROR("couldn't allocate memory"); + break; + } + strncpy(setting->name, load_setting->name, + sizeof(setting->name)); + setting->name[sizeof(setting->name)-1] = 0; + strncpy(setting->value, load_setting->value, + sizeof(setting->value)); + setting->value[sizeof(setting->value)-1] = 0; + TRACE2("%p: %s=%s", setting, setting->name, setting->value); + + if (strcmp(setting->name, "driver_version") == 0) { + strncpy(wrap_driver->version, setting->value, + sizeof(wrap_driver->version)); + wrap_driver->version[sizeof(wrap_driver->version)-1] = 0; + } else if (strcmp(setting->name, "class_guid") == 0 && + sscanf(setting->value, "%x", &data1) == 1) { + wrap_driver->dev_type = wrap_device_type(data1); + if (wrap_driver->dev_type < 0) { + WARNING("unknown guid: %x", data1); + wrap_driver->dev_type = 0; + } + } + InsertTailList(&wrap_driver->settings, &setting->list); + num_settings++; + } + /* it is not a fatal error if some settings couldn't be loaded */ + if (num_settings > 0) + EXIT1(return 0); + else + EXIT1(return -EINVAL); +} + +void unload_wrap_device(struct wrap_device *wd) +{ + struct nt_list *cur; + ENTER1("unloading device %p (%04X:%04X:%04X:%04X), driver %s", wd, + wd->vendor, wd->device, wd->subvendor, wd->subdevice, + wd->driver_name); + if (down_interruptible(&loader_mutex)) + WARNING("couldn't obtain loader_mutex"); + while ((cur = RemoveHeadList(&wd->settings))) { + struct wrap_device_setting *setting; + setting = container_of(cur, struct wrap_device_setting, list); + kfree(setting); + } + RemoveEntryList(&wd->list); + up(&loader_mutex); + kfree(wd); + EXIT1(return); +} + +/* should be called with loader_mutex down */ +void unload_wrap_driver(struct wrap_driver *driver) +{ + int i; + struct driver_object *drv_obj; + struct nt_list *cur, *next; + + ENTER1("unloading driver: %s (%p)", driver->name, driver); + TRACE1("freeing %d images", driver->num_pe_images); + drv_obj = driver->drv_obj; + for (i = 0; i < driver->num_pe_images; i++) + if (driver->pe_images[i].image) { + TRACE1("freeing image at %p", + driver->pe_images[i].image); + vfree(driver->pe_images[i].image); + } + + TRACE1("freeing %d bin files", driver->num_bin_files); + for (i = 0; i < driver->num_bin_files; i++) { + TRACE1("freeing image at %p", driver->bin_files[i].data); + if (driver->bin_files[i].data) + vfree(driver->bin_files[i].data); + } + if (driver->bin_files) + kfree(driver->bin_files); + RtlFreeUnicodeString(&drv_obj->name); + RemoveEntryList(&driver->list); + nt_list_for_each_safe(cur, next, &driver->settings) { + struct wrap_device_setting *setting; + struct ndis_configuration_parameter *param; + + setting = container_of(cur, struct wrap_device_setting, list); + TRACE2("%p", setting); + param = setting->encoded; + if (param) { + TRACE2("%p", param); + if (param->type == NdisParameterString) + RtlFreeUnicodeString(¶m->data.string); + ExFreePool(param); + } + kfree(setting); + } + /* this frees driver */ + free_custom_extensions(drv_obj->drv_ext); + kfree(drv_obj->drv_ext); + TRACE1("drv_obj: %p", drv_obj); + + EXIT1(return); +} + +/* call the entry point of the driver */ +static int start_wrap_driver(struct wrap_driver *driver) +{ + int i; + NTSTATUS ret, res; + struct driver_object *drv_obj; + typeof(driver->pe_images[0].entry) entry; + + ENTER1("%s", driver->name); + drv_obj = driver->drv_obj; + for (ret = res = 0, i = 0; i < driver->num_pe_images; i++) + /* dlls are already started by loader */ + if (driver->pe_images[i].type == IMAGE_FILE_EXECUTABLE_IMAGE) { + entry = driver->pe_images[i].entry; + drv_obj->start = driver->pe_images[i].entry; + drv_obj->driver_size = driver->pe_images[i].size; + TRACE1("entry: %p, %p, drv_obj: %p", + entry, *entry, drv_obj); + res = LIN2WIN2(entry, drv_obj, &drv_obj->name); + ret |= res; + TRACE1("entry returns %08X", res); + break; + } + if (ret) { + ERROR("driver initialization failed: %08X", ret); + RtlFreeUnicodeString(&drv_obj->name); + /* this frees ndis_driver */ + free_custom_extensions(drv_obj->drv_ext); + kfree(drv_obj->drv_ext); + TRACE1("drv_obj: %p", drv_obj); + ObDereferenceObject(drv_obj); + EXIT1(return -EINVAL); + } + EXIT1(return 0); +} + +/* + * add driver to list of loaded driver but make sure this driver is + * not loaded before. called with loader_mutex down + */ +static int add_wrap_driver(struct wrap_driver *driver) +{ + struct wrap_driver *tmp; + + ENTER1("name: %s", driver->name); + nt_list_for_each_entry(tmp, &wrap_drivers, list) { + if (stricmp(tmp->name, driver->name) == 0) { + ERROR("cannot add duplicate driver"); + EXIT1(return -EBUSY); + } + } + InsertHeadList(&wrap_drivers, &driver->list); + EXIT1(return 0); +} + +/* load a driver from userspace and initialize it. called with + * loader_mutex down */ +static int load_user_space_driver(struct load_driver *load_driver) +{ + struct driver_object *drv_obj; + struct ansi_string ansi_reg; + struct wrap_driver *wrap_driver = NULL; + + ENTER1("%p", load_driver); + drv_obj = allocate_object(sizeof(*drv_obj), OBJECT_TYPE_DRIVER, NULL); + if (!drv_obj) { + ERROR("couldn't allocate memory"); + EXIT1(return -ENOMEM); + } + TRACE1("drv_obj: %p", drv_obj); + drv_obj->drv_ext = kzalloc(sizeof(*(drv_obj->drv_ext)), GFP_KERNEL); + if (!drv_obj->drv_ext) { + ERROR("couldn't allocate memory"); + ObDereferenceObject(drv_obj); + EXIT1(return -ENOMEM); + } + InitializeListHead(&drv_obj->drv_ext->custom_ext); + if (IoAllocateDriverObjectExtension(drv_obj, + (void *)WRAP_DRIVER_CLIENT_ID, + sizeof(*wrap_driver), + (void **)&wrap_driver) != + STATUS_SUCCESS) + EXIT1(return -ENOMEM); + TRACE1("driver: %p", wrap_driver); + memset(wrap_driver, 0, sizeof(*wrap_driver)); + InitializeListHead(&wrap_driver->list); + InitializeListHead(&wrap_driver->settings); + InitializeListHead(&wrap_driver->wrap_devices); + wrap_driver->drv_obj = drv_obj; + RtlInitAnsiString(&ansi_reg, "/tmp"); + if (RtlAnsiStringToUnicodeString(&drv_obj->name, &ansi_reg, TRUE) != + STATUS_SUCCESS) { + ERROR("couldn't initialize registry path"); + free_custom_extensions(drv_obj->drv_ext); + kfree(drv_obj->drv_ext); + TRACE1("drv_obj: %p", drv_obj); + ObDereferenceObject(drv_obj); + EXIT1(return -EINVAL); + } + strncpy(wrap_driver->name, load_driver->name, sizeof(wrap_driver->name)); + wrap_driver->name[sizeof(wrap_driver->name)-1] = 0; + if (load_sys_files(wrap_driver, load_driver) || + load_bin_files_info(wrap_driver, load_driver) || + load_settings(wrap_driver, load_driver) || + start_wrap_driver(wrap_driver) || + add_wrap_driver(wrap_driver)) { + unload_wrap_driver(wrap_driver); + EXIT1(return -EINVAL); + } else { + printk(KERN_INFO "%s: driver %s (%s) loaded\n", + DRIVER_NAME, wrap_driver->name, wrap_driver->version); + add_taint(TAINT_PROPRIETARY_MODULE); + EXIT1(return 0); + } +} + +static struct pci_device_id wrap_pci_id_table[] = { + {PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID}, +}; + +static struct pci_driver wrap_pci_driver = { + .name = DRIVER_NAME, + .id_table = wrap_pci_id_table, + .probe = wrap_pnp_start_pci_device, + .remove = __devexit_p(wrap_pnp_remove_pci_device), + .suspend = wrap_pnp_suspend_pci_device, + .resume = wrap_pnp_resume_pci_device, +}; + +#ifdef ENABLE_USB +static struct usb_device_id wrap_usb_id_table[] = { + { + .driver_info = 1 + }, +}; + +static struct usb_driver wrap_usb_driver = { + .name = DRIVER_NAME, + .id_table = wrap_usb_id_table, + .probe = wrap_pnp_start_usb_device, + .disconnect = __devexit_p(wrap_pnp_remove_usb_device), + .suspend = wrap_pnp_suspend_usb_device, + .resume = wrap_pnp_resume_usb_device, +}; +#endif + +/* register drivers for pci and usb */ +static void register_devices(void) +{ + int res; + + res = pci_register_driver(&wrap_pci_driver); + if (res < 0) { + ERROR("couldn't register pci driver: %d", res); + wrap_pci_driver.name = NULL; + } + +#ifdef ENABLE_USB + res = usb_register(&wrap_usb_driver); + if (res < 0) { + ERROR("couldn't register usb driver: %d", res); + wrap_usb_driver.name = NULL; + } +#endif + EXIT1(return); +} + +static void unregister_devices(void) +{ + struct nt_list *cur, *next; + + if (down_interruptible(&loader_mutex)) + WARNING("couldn't obtain loader_mutex"); + nt_list_for_each_safe(cur, next, &wrap_devices) { + struct wrap_device *wd; + wd = container_of(cur, struct wrap_device, list); + set_bit(HW_PRESENT, &wd->hw_status); + } + up(&loader_mutex); + + if (wrap_pci_driver.name) + pci_unregister_driver(&wrap_pci_driver); +#ifdef ENABLE_USB + if (wrap_usb_driver.name) + usb_deregister(&wrap_usb_driver); +#endif +} + +struct wrap_device *load_wrap_device(struct load_device *load_device) +{ + int ret; + struct nt_list *cur; + struct wrap_device *wd = NULL; + char vendor[5], device[5], subvendor[5], subdevice[5], bus[5]; + + ENTER1("%04x, %04x, %04x, %04x", load_device->vendor, + load_device->device, load_device->subvendor, + load_device->subdevice); + if (sprintf(vendor, "%04x", load_device->vendor) == 4 && + sprintf(device, "%04x", load_device->device) == 4 && + sprintf(subvendor, "%04x", load_device->subvendor) == 4 && + sprintf(subdevice, "%04x", load_device->subdevice) == 4 && + sprintf(bus, "%04x", load_device->bus) == 4) { + char *argv[] = {"loadndisdriver", WRAP_CMD_LOAD_DEVICE, +#if defined(DEBUG) && DEBUG >= 1 + "1", +#else + "0", +#endif + UTILS_VERSION, vendor, device, + subvendor, subdevice, bus, NULL}; + char *env[] = {NULL}; + TRACE2("%s, %s, %s, %s, %s", vendor, device, + subvendor, subdevice, bus); + if (down_interruptible(&loader_mutex)) { + WARNING("couldn't obtain loader_mutex"); + EXIT1(return NULL); + } + INIT_COMPLETION(loader_complete); + ret = call_usermodehelper("/sbin/loadndisdriver", argv, env, 1); + if (ret) { + up(&loader_mutex); + TRACE1("couldn't load device %04x:%04x; check system " + "log for messages from 'loadndisdriver'", + load_device->vendor, load_device->device); + EXIT1(return NULL); + } + wait_for_completion(&loader_complete); + wd = NULL; + nt_list_for_each(cur, &wrap_devices) { + wd = container_of(cur, struct wrap_device, list); + TRACE2("%p, %04x, %04x, %04x, %04x", wd, wd->vendor, + wd->device, wd->subvendor, wd->subdevice); + if (wd->vendor == load_device->vendor && + wd->device == load_device->device) + break; + else + wd = NULL; + } + up(&loader_mutex); + } else + wd = NULL; + EXIT1(return wd); +} + +struct wrap_device *get_wrap_device(void *dev, int bus) +{ + struct nt_list *cur; + struct wrap_device *wd; + + if (down_interruptible(&loader_mutex)) { + WARNING("couldn't obtain loader_mutex"); + return NULL; + } + wd = NULL; + nt_list_for_each(cur, &wrap_devices) { + wd = container_of(cur, struct wrap_device, list); + if (bus == WRAP_PCI_BUS && + wrap_is_pci_bus(wd->dev_bus) && wd->pci.pdev == dev) + break; + else if (bus == WRAP_USB_BUS && + wrap_is_usb_bus(wd->dev_bus) && wd->usb.udev == dev) + break; + else + wd = NULL; + } + up(&loader_mutex); + return wd; +} + +/* called with loader_mutex is down */ +static int wrapper_ioctl(struct inode *inode, struct file *file, + unsigned int cmd, unsigned long arg) +{ + struct load_driver *load_driver; + struct load_device load_device; + struct load_driver_file load_bin_file; + int ret; + void __user *addr = (void __user *)arg; + + ENTER1("cmd: %u", cmd); + + ret = 0; + switch (cmd) { + case WRAP_IOCTL_LOAD_DEVICE: + if (copy_from_user(&load_device, addr, sizeof(load_device))) { + ret = -EFAULT; + break; + } + TRACE2("%04x, %04x, %04x, %04x", load_device.vendor, + load_device.device, load_device.subvendor, + load_device.subdevice); + if (load_device.vendor) { + struct wrap_device *wd; + wd = kzalloc(sizeof(*wd), GFP_KERNEL); + if (!wd) { + ret = -ENOMEM; + break; + } + InitializeListHead(&wd->settings); + wd->dev_bus = WRAP_BUS(load_device.bus); + wd->vendor = load_device.vendor; + wd->device = load_device.device; + wd->subvendor = load_device.subvendor; + wd->subdevice = load_device.subdevice; + strncpy(wd->conf_file_name, load_device.conf_file_name, + sizeof(wd->conf_file_name)); + wd->conf_file_name[sizeof(wd->conf_file_name)-1] = 0; + strncpy(wd->driver_name, load_device.driver_name, + sizeof(wd->driver_name)); + wd->driver_name[sizeof(wd->driver_name)-1] = 0; + InsertHeadList(&wrap_devices, &wd->list); + ret = 0; + } else + ret = -EINVAL; + break; + case WRAP_IOCTL_LOAD_DRIVER: + TRACE1("loading driver at %p", addr); + load_driver = vmalloc(sizeof(*load_driver)); + if (!load_driver) { + ret = -ENOMEM; + break; + } + if (copy_from_user(load_driver, addr, sizeof(*load_driver))) + ret = -EFAULT; + else + ret = load_user_space_driver(load_driver); + vfree(load_driver); + break; + case WRAP_IOCTL_LOAD_BIN_FILE: + if (copy_from_user(&load_bin_file, addr, sizeof(load_bin_file))) + ret = -EFAULT; + else + ret = add_bin_file(&load_bin_file); + break; + default: + ERROR("unknown ioctl %u", cmd); + ret = -EINVAL; + break; + } + complete(&loader_complete); + EXIT1(return ret); +} + +static int wrapper_ioctl_release(struct inode *inode, struct file *file) +{ + ENTER1(""); + return 0; +} + +static struct file_operations wrapper_fops = { + .owner = THIS_MODULE, + .ioctl = wrapper_ioctl, + .release = wrapper_ioctl_release, +}; + +static struct miscdevice wrapper_misc = { + .name = DRIVER_NAME, + .minor = MISC_DYNAMIC_MINOR, + .fops = &wrapper_fops +}; + +int loader_init(void) +{ + int err; + + InitializeListHead(&wrap_drivers); + InitializeListHead(&wrap_devices); + sema_init(&loader_mutex, 1); + init_completion(&loader_complete); + if ((err = misc_register(&wrapper_misc)) < 0 ) { + ERROR("couldn't register module (%d)", err); + unregister_devices(); + EXIT1(return err); + } + register_devices(); + EXIT1(return 0); +} + +void loader_exit(void) +{ + struct nt_list *cur, *next; + + ENTER1(""); + misc_deregister(&wrapper_misc); + unregister_devices(); + if (down_interruptible(&loader_mutex)) + WARNING("couldn't obtain loader_mutex"); + nt_list_for_each_safe(cur, next, &wrap_drivers) { + struct wrap_driver *driver; + driver = container_of(cur, struct wrap_driver, list); + unload_wrap_driver(driver); + } + up(&loader_mutex); + EXIT1(return); +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/iw_ndis.h +++ linux-2.6.35/ubuntu/ndiswrapper/iw_ndis.h @@ -0,0 +1,208 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _IW_NDIS_H_ +#define _IW_NDIS_H_ + +#include "ndis.h" + +#define WL_NOISE -96 /* typical noise level in dBm */ +#define WL_SIGMAX -32 /* typical maximum signal level in dBm */ + +struct ndis_encr_key { + ULONG struct_size; + ULONG index; + ULONG length; + UCHAR key[NDIS_ENCODING_TOKEN_MAX]; +}; + +struct ndis_add_key { + ULONG struct_size; + ndis_key_index index; + ULONG length; + mac_address bssid; + UCHAR pad[6]; + ndis_key_rsc rsc; + UCHAR key[NDIS_ENCODING_TOKEN_MAX]; +}; + +struct ndis_remove_key { + ULONG struct_size; + ndis_key_index index; + mac_address bssid; +}; + +struct ndis_fixed_ies { + UCHAR time_stamp[8]; + USHORT beacon_interval; + USHORT capa; +}; + +struct ndis_variable_ies { + ULONG elem_id; + UCHAR length; + UCHAR data[1]; +}; + +enum ndis_reload_defaults { Ndis802_11ReloadWEPKeys }; + +struct ndis_assoc_info { + ULONG length; + USHORT req_ies; + struct req_ie { + USHORT capa; + USHORT listen_interval; + mac_address cur_ap_address; + } req_ie; + ULONG req_ie_length; + ULONG offset_req_ies; + USHORT resp_ies; + struct resp_ie { + USHORT capa; + USHORT status_code; + USHORT assoc_id; + } resp_ie; + ULONG resp_ie_length; + ULONG offset_resp_ies; +}; + +struct ndis_configuration_fh { + ULONG length; + ULONG hop_pattern; + ULONG hop_set; + ULONG dwell_time; +}; + +struct ndis_configuration { + ULONG length; + ULONG beacon_period; + ULONG atim_window; + ULONG ds_config; + struct ndis_configuration_fh fh_config; +}; + +struct ndis_wlan_bssid { + ULONG length; + mac_address mac; + UCHAR reserved[2]; + struct ndis_essid ssid; + ULONG privacy; + ndis_rssi rssi; + UINT net_type; + struct ndis_configuration config; + UINT mode; + ndis_rates rates; +}; + +struct ndis_wlan_bssid_ex { + ULONG length; + mac_address mac; + UCHAR reserved[2]; + struct ndis_essid ssid; + ULONG privacy; + ndis_rssi rssi; + UINT net_type; + struct ndis_configuration config; + UINT mode; + ndis_rates_ex rates_ex; + ULONG ie_length; + UCHAR ies[1]; +}; + +/* we use bssid_list as bssid_list_ex also */ +struct ndis_bssid_list { + ULONG num_items; + struct ndis_wlan_bssid bssid[1]; +}; + +enum ndis_priv_filter { + Ndis802_11PrivFilterAcceptAll, Ndis802_11PrivFilter8021xWEP +}; + +enum network_type { + Ndis802_11FH, Ndis802_11DS, Ndis802_11OFDM5, Ndis802_11OFDM24, + /* MSDN site uses Ndis802_11Automode, which is not mentioned + * in DDK, so add one and assign it to + * Ndis802_11NetworkTypeMax */ + Ndis802_11Automode, Ndis802_11NetworkTypeMax = Ndis802_11Automode +}; + +struct network_type_list { + ULONG num; + enum network_type types[1]; +}; + +enum ndis_power { + NDIS_POWER_OFF = 0, NDIS_POWER_MAX, NDIS_POWER_MIN, +}; + +struct ndis_auth_req { + ULONG length; + mac_address bssid; + ULONG flags; +}; + +struct ndis_bssid_info { + mac_address bssid; + ndis_pmkid_vavlue pmkid; +}; + +struct ndis_pmkid { + ULONG length; + ULONG bssid_info_count; + struct ndis_bssid_info bssid_info[1]; +}; + +int add_wep_key(struct ndis_device *wnd, char *key, int key_len, + int index); +int set_essid(struct ndis_device *wnd, const char *ssid, int ssid_len); +int set_infra_mode(struct ndis_device *wnd, + enum ndis_infrastructure_mode mode); +int get_ap_address(struct ndis_device *wnd, mac_address mac); +int set_ndis_auth_mode(struct ndis_device *wnd, ULONG auth_mode); +int set_iw_auth_mode(struct ndis_device *wnd, int wpa_version, + int auth_80211_alg); +int set_auth_mode(struct ndis_device *wnd); +int set_ndis_encr_mode(struct ndis_device *wnd, int cipher_pairwise, + int cipher_groupwise); +int get_ndis_encr_mode(struct ndis_device *wnd); +int set_encr_mode(struct ndis_device *wnd); +int set_iw_encr_mode(struct ndis_device *wnd, int cipher_pairwise, + int cipher_groupwise); +int get_ndis_auth_mode(struct ndis_device *wnd); +int set_priv_filter(struct ndis_device *wnd); +int set_scan(struct ndis_device *wnd); +NDIS_STATUS disassociate(struct ndis_device *wnd, int reset_ssid); +void set_default_iw_params(struct ndis_device *wnd); +extern const struct iw_handler_def ndis_handler_def; + +#define PRIV_RESET SIOCIWFIRSTPRIV+16 +#define PRIV_POWER_PROFILE SIOCIWFIRSTPRIV+17 +#define PRIV_NETWORK_TYPE SIOCIWFIRSTPRIV+18 +#define PRIV_DEAUTHENTICATE SIOCIWFIRSTPRIV+19 +#define PRIV_MEDIA_STREAM_MODE SIOCIWFIRSTPRIV+20 +#define PRIV_RELOAD_DEFAULTS SIOCIWFIRSTPRIV+23 + +#define RSN_INFO_ELEM 0x30 + +/* these have to match what is in wpa_supplicant */ + +typedef enum { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP } wpa_alg; +typedef enum { CIPHER_NONE, CIPHER_WEP40, CIPHER_TKIP, CIPHER_CCMP, + CIPHER_WEP104 } wpa_cipher; +typedef enum { KEY_MGMT_802_1X, KEY_MGMT_PSK, KEY_MGMT_NONE, + KEY_MGMT_802_1X_NO_WPA, KEY_MGMT_WPA_NONE } wpa_key_mgmt; + +#endif // IW_NDIS_H --- linux-2.6.35.orig/ubuntu/ndiswrapper/divdi3.c +++ linux-2.6.35/ubuntu/ndiswrapper/divdi3.c @@ -0,0 +1,329 @@ +/* 64-bit multiplication and division + Copyright (C) 1989, 1992-1999, 2000, 2001, 2002, 2003 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +#if BITS_PER_LONG != 32 +#error This is for 32-bit targets only +#endif + +typedef unsigned int UQItype __attribute__ ((mode (QI))); +typedef int SItype __attribute__ ((mode (SI))); +typedef unsigned int USItype __attribute__ ((mode (SI))); +typedef int DItype __attribute__ ((mode (DI))); +typedef unsigned int UDItype __attribute__ ((mode (DI))); +#define Wtype SItype +#define HWtype SItype +#define DWtype DItype +#define UWtype USItype +#define UHWtype USItype +#define UDWtype UDItype +#define W_TYPE_SIZE 32 + +#include "longlong.h" + +#if defined(__BIG_ENDIAN) +struct DWstruct { Wtype high, low;}; +#elif defined(__LITTLE_ENDIAN) +struct DWstruct { Wtype low, high;}; +#else +#error Unhandled endianity +#endif +typedef union { struct DWstruct s; DWtype ll; } DWunion; + +/* Prototypes of exported functions. */ +extern DWtype __divdi3 (DWtype u, DWtype v); +extern DWtype __moddi3 (DWtype u, DWtype v); +extern UDWtype __udivdi3 (UDWtype u, UDWtype v); +extern UDWtype __umoddi3 (UDWtype u, UDWtype v); + +static UDWtype +__udivmoddi4 (UDWtype n, UDWtype d, UDWtype *rp) +{ + DWunion ww; + DWunion nn, dd; + DWunion rr; + UWtype d0, d1, n0, n1, n2; + UWtype q0, q1; + UWtype b, bm; + + nn.ll = n; + dd.ll = d; + + d0 = dd.s.low; + d1 = dd.s.high; + n0 = nn.s.low; + n1 = nn.s.high; + +#if !UDIV_NEEDS_NORMALIZATION + if (d1 == 0) + { + if (d0 > n1) + { + /* 0q = nn / 0D */ + + udiv_qrnnd (q0, n0, n1, n0, d0); + q1 = 0; + + /* Remainder in n0. */ + } + else + { + /* qq = NN / 0d */ + + if (d0 == 0) + d0 = 1 / d0; /* Divide intentionally by zero. */ + + udiv_qrnnd (q1, n1, 0, n1, d0); + udiv_qrnnd (q0, n0, n1, n0, d0); + + /* Remainder in n0. */ + } + + if (rp != 0) + { + rr.s.low = n0; + rr.s.high = 0; + *rp = rr.ll; + } + } + +#else /* UDIV_NEEDS_NORMALIZATION */ + + if (d1 == 0) + { + if (d0 > n1) + { + /* 0q = nn / 0D */ + + count_leading_zeros (bm, d0); + + if (bm != 0) + { + /* Normalize, i.e. make the most significant bit of the + denominator set. */ + + d0 = d0 << bm; + n1 = (n1 << bm) | (n0 >> (W_TYPE_SIZE - bm)); + n0 = n0 << bm; + } + + udiv_qrnnd (q0, n0, n1, n0, d0); + q1 = 0; + + /* Remainder in n0 >> bm. */ + } + else + { + /* qq = NN / 0d */ + + if (d0 == 0) + d0 = 1 / d0; /* Divide intentionally by zero. */ + + count_leading_zeros (bm, d0); + + if (bm == 0) + { + /* From (n1 >= d0) /\ (the most significant bit of d0 is set), + conclude (the most significant bit of n1 is set) /\ (the + leading quotient digit q1 = 1). + + This special case is necessary, not an optimization. + (Shifts counts of W_TYPE_SIZE are undefined.) */ + + n1 -= d0; + q1 = 1; + } + else + { + /* Normalize. */ + + b = W_TYPE_SIZE - bm; + + d0 = d0 << bm; + n2 = n1 >> b; + n1 = (n1 << bm) | (n0 >> b); + n0 = n0 << bm; + + udiv_qrnnd (q1, n1, n2, n1, d0); + } + + /* n1 != d0... */ + + udiv_qrnnd (q0, n0, n1, n0, d0); + + /* Remainder in n0 >> bm. */ + } + + if (rp != 0) + { + rr.s.low = n0 >> bm; + rr.s.high = 0; + *rp = rr.ll; + } + } +#endif /* UDIV_NEEDS_NORMALIZATION */ + + else + { + if (d1 > n1) + { + /* 00 = nn / DD */ + + q0 = 0; + q1 = 0; + + /* Remainder in n1n0. */ + if (rp != 0) + { + rr.s.low = n0; + rr.s.high = n1; + *rp = rr.ll; + } + } + else + { + /* 0q = NN / dd */ + + count_leading_zeros (bm, d1); + if (bm == 0) + { + /* From (n1 >= d1) /\ (the most significant bit of d1 is set), + conclude (the most significant bit of n1 is set) /\ (the + quotient digit q0 = 0 or 1). + + This special case is necessary, not an optimization. */ + + /* The condition on the next line takes advantage of that + n1 >= d1 (true due to program flow). */ + if (n1 > d1 || n0 >= d0) + { + q0 = 1; + sub_ddmmss (n1, n0, n1, n0, d1, d0); + } + else + q0 = 0; + + q1 = 0; + + if (rp != 0) + { + rr.s.low = n0; + rr.s.high = n1; + *rp = rr.ll; + } + } + else + { + UWtype m1, m0; + /* Normalize. */ + + b = W_TYPE_SIZE - bm; + + d1 = (d1 << bm) | (d0 >> b); + d0 = d0 << bm; + n2 = n1 >> b; + n1 = (n1 << bm) | (n0 >> b); + n0 = n0 << bm; + + udiv_qrnnd (q0, n1, n2, n1, d1); + umul_ppmm (m1, m0, q0, d0); + + if (m1 > n1 || (m1 == n1 && m0 > n0)) + { + q0--; + sub_ddmmss (m1, m0, m1, m0, d1, d0); + } + + q1 = 0; + + /* Remainder in (n1n0 - m1m0) >> bm. */ + if (rp != 0) + { + sub_ddmmss (n1, n0, n1, n0, m1, m0); + rr.s.low = (n1 << b) | (n0 >> bm); + rr.s.high = n1 >> bm; + *rp = rr.ll; + } + } + } + } + + ww.s.low = q0; + ww.s.high = q1; + return ww.ll; +} + +DWtype +__divdi3 (DWtype u, DWtype v) +{ + Wtype c = 0; + DWtype w; + + if (u < 0) + { + c = ~c; + u = -u; + } + if (v < 0) + { + c = ~c; + v = -v; + } + w = __udivmoddi4 (u, v, NULL); + if (c) + w = -w; + return w; +} + +DWtype +__moddi3 (DWtype u, DWtype v) +{ + Wtype c = 0; + DWtype w; + + if (u < 0) + { + c = ~c; + u = -u; + } + if (v < 0) + v = -v; + __udivmoddi4 (u, v, &w); + if (c) + w = -w; + return w; +} + +UDWtype +__udivdi3 (UDWtype u, UDWtype v) +{ + return __udivmoddi4 (u, v, NULL); +} + +UDWtype +__umoddi3 (UDWtype u, UDWtype v) +{ + UDWtype w; + + __udivmoddi4 (u, v, &w); + return w; +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/usb.c +++ linux-2.6.35/ubuntu/ndiswrapper/usb.c @@ -0,0 +1,1457 @@ +/* + * Copyright (C) 2004 Jan Kiszka + * Copyright (C) 2005 Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "ndis.h" +#include "usb.h" +#include "usb_exports.h" + +#ifdef USB_DEBUG +static unsigned int urb_id = 0; + +#define DUMP_WRAP_URB(wrap_urb, dir) \ + USBTRACE("urb %p (%d) %s: buf: %p, len: %d, pipe: 0x%x, %d", \ + (wrap_urb)->urb, (wrap_urb)->id, \ + (dir == USB_DIR_OUT) ? "going down" : "coming back", \ + (wrap_urb)->urb->transfer_buffer, \ + (wrap_urb)->urb->transfer_buffer_length, \ + (wrap_urb)->urb->pipe, (wrap_urb)->urb->status) + +#define DUMP_URB_BUFFER(urb, dir) \ + while (debug >= 2) { \ + int i; \ + char msg[20], *t; \ + if (!urb->transfer_buffer) \ + break; \ + if (!((usb_pipein(urb->pipe) && dir == USB_DIR_IN) || \ + (usb_pipeout(urb->pipe) && dir == USB_DIR_OUT))) \ + break; \ + t = msg; \ + t += sprintf(t, "%d: ", (urb)->actual_length); \ + for (i = 0; i < urb->actual_length && \ + t < &msg[sizeof(msg) - 4]; i++) \ + t += sprintf(t, "%02X ", \ + ((char *)urb->transfer_buffer)[i]); \ + *t = 0; \ + USBTRACE("%s", msg); \ + break; \ + } + +#else + +#define DUMP_WRAP_URB(wrap_urb, dir) (void)0 +#define DUMP_URB_BUFFER(urb, dir) (void)0 + +#endif + +#define CUR_ALT_SETTING(intf) (intf)->cur_altsetting + +#ifndef USB_CTRL_SET_TIMEOUT +#define USB_CTRL_SET_TIMEOUT 5000 +#endif + +#ifndef USB_CTRL_GET_TIMEOUT +#define USB_CTRL_GET_TIMEOUT 5000 +#endif + +#ifndef URB_NO_TRANSFER_DMA_MAP +#define URB_NO_TRANSFER_DMA_MAP 0 +#endif + +/* wrap_urb->flags */ +/* transfer_buffer for urb is allocated; free it in wrap_free_urb */ +#define WRAP_URB_COPY_BUFFER 0x01 + +static int inline wrap_cancel_urb(struct wrap_urb *wrap_urb) +{ + int ret; + USBTRACE("%p, %p, %d", wrap_urb, wrap_urb->urb, wrap_urb->state); + if (wrap_urb->state != URB_SUBMITTED) + USBEXIT(return -1); + ret = usb_unlink_urb(wrap_urb->urb); + USBTRACE("ret: %d", ret); + if (ret == -EINPROGRESS) + return 0; + else { + WARNING("unlink failed: %d", ret); + return ret; + } +} + +#define URB_STATUS(wrap_urb) (wrap_urb->urb->status) + +static struct nt_list wrap_urb_complete_list; +static spinlock_t wrap_urb_complete_list_lock; + +static work_struct_t wrap_urb_complete_work; +static void wrap_urb_complete_worker(worker_param_t dummy); + +static void kill_all_urbs(struct wrap_device *wd, int complete) +{ + struct nt_list *ent; + struct wrap_urb *wrap_urb; + KIRQL irql; + + USBTRACE("%d", wd->usb.num_alloc_urbs); + while (1) { + IoAcquireCancelSpinLock(&irql); + ent = RemoveHeadList(&wd->usb.wrap_urb_list); + IoReleaseCancelSpinLock(irql); + if (!ent) + break; + wrap_urb = container_of(ent, struct wrap_urb, list); + if (wrap_urb->state == URB_SUBMITTED) { + WARNING("Windows driver %s didn't free urb: %p", + wd->driver->name, wrap_urb->urb); + if (!complete) + wrap_urb->urb->complete = NULL; + usb_kill_urb(wrap_urb->urb); + } + USBTRACE("%p, %p", wrap_urb, wrap_urb->urb); + usb_free_urb(wrap_urb->urb); + kfree(wrap_urb); + } + wd->usb.num_alloc_urbs = 0; +} + +/* for a given Linux urb status code, return corresponding NT urb status */ +static USBD_STATUS wrap_urb_status(int urb_status) +{ + switch (urb_status) { + case 0: + return USBD_STATUS_SUCCESS; + case -EPROTO: + return USBD_STATUS_TIMEOUT; + case -EILSEQ: + return USBD_STATUS_CRC; + case -EPIPE: + return USBD_STATUS_INVALID_PIPE_HANDLE; + case -ECOMM: + return USBD_STATUS_DATA_OVERRUN; + case -ENOSR: + return USBD_STATUS_DATA_UNDERRUN; + case -EOVERFLOW: + return USBD_STATUS_BABBLE_DETECTED; + case -EREMOTEIO: + return USBD_STATUS_ERROR_SHORT_TRANSFER;; + case -ENODEV: + case -ESHUTDOWN: + case -ENOENT: + return USBD_STATUS_DEVICE_GONE; + case -ENOMEM: + return USBD_STATUS_NO_MEMORY; + case -EINVAL: + return USBD_STATUS_REQUEST_FAILED; + default: + return USBD_STATUS_NOT_SUPPORTED; + } +} + +/* for a given USBD_STATUS, return its corresponding NTSTATUS (for irp) */ +static NTSTATUS nt_urb_irp_status(USBD_STATUS nt_urb_status) +{ + switch (nt_urb_status) { + case USBD_STATUS_SUCCESS: + return STATUS_SUCCESS; + case USBD_STATUS_DEVICE_GONE: + return STATUS_DEVICE_REMOVED; + case USBD_STATUS_PENDING: + return STATUS_PENDING; + case USBD_STATUS_NOT_SUPPORTED: + return STATUS_NOT_IMPLEMENTED; + case USBD_STATUS_NO_MEMORY: + return STATUS_NO_MEMORY; + case USBD_STATUS_REQUEST_FAILED: + return STATUS_NOT_SUPPORTED; + default: + return STATUS_FAILURE; + } +} + +static void wrap_free_urb(struct urb *urb) +{ + struct irp *irp; + struct wrap_urb *wrap_urb; + + USBTRACE("freeing urb: %p", urb); + wrap_urb = urb->context; + irp = wrap_urb->irp; + if (wrap_urb->flags & WRAP_URB_COPY_BUFFER) { + USBTRACE("freeing DMA buffer for URB: %p %p", + urb, urb->transfer_buffer); + usb_free_coherent(IRP_WRAP_DEVICE(irp)->usb.udev, + urb->transfer_buffer_length, + urb->transfer_buffer, urb->transfer_dma); + } + if (urb->setup_packet) + kfree(urb->setup_packet); + if (IRP_WRAP_DEVICE(irp)->usb.num_alloc_urbs > MAX_ALLOCATED_URBS) { + IoAcquireCancelSpinLock(&irp->cancel_irql); + RemoveEntryList(&wrap_urb->list); + IRP_WRAP_DEVICE(irp)->usb.num_alloc_urbs--; + IoReleaseCancelSpinLock(irp->cancel_irql); + usb_free_urb(urb); + kfree(wrap_urb); + } else { + wrap_urb->state = URB_FREE; + wrap_urb->flags = 0; + wrap_urb->irp = NULL; + } + return; +} + +void wrap_suspend_urbs(struct wrap_device *wd) +{ + /* TODO: do we need to cancel urbs? */ + USBTRACE("%p, %d", wd, wd->usb.num_alloc_urbs); +} + +void wrap_resume_urbs(struct wrap_device *wd) +{ + /* TODO: do we need to resubmit urbs? */ + USBTRACE("%p, %d", wd, wd->usb.num_alloc_urbs); +} + +wstdcall void wrap_cancel_irp(struct device_object *dev_obj, struct irp *irp) +{ + struct urb *urb; + + /* NB: this function is called holding Cancel spinlock */ + USBENTER("irp: %p", irp); + urb = IRP_WRAP_URB(irp)->urb; + USBTRACE("canceling urb %p", urb); + if (wrap_cancel_urb(IRP_WRAP_URB(irp))) { + irp->cancel = FALSE; + ERROR("urb %p can't be canceled: %d", urb, + IRP_WRAP_URB(irp)->state); + } else + USBTRACE("urb %p canceled", urb); + IoReleaseCancelSpinLock(irp->cancel_irql); + return; +} +WIN_FUNC_DECL(wrap_cancel_irp,2) + +static struct urb *wrap_alloc_urb(struct irp *irp, unsigned int pipe, + void *buf, unsigned int buf_len) +{ + struct urb *urb; + gfp_t alloc_flags; + struct wrap_urb *wrap_urb; + struct wrap_device *wd; + + USBENTER("irp: %p", irp); + wd = IRP_WRAP_DEVICE(irp); + alloc_flags = irql_gfp(); + IoAcquireCancelSpinLock(&irp->cancel_irql); + urb = NULL; + nt_list_for_each_entry(wrap_urb, &wd->usb.wrap_urb_list, list) { + if (cmpxchg(&wrap_urb->state, URB_FREE, + URB_ALLOCATED) == URB_FREE) { + urb = wrap_urb->urb; + usb_init_urb(urb); + break; + } + } + if (!urb) { + IoReleaseCancelSpinLock(irp->cancel_irql); + wrap_urb = kzalloc(sizeof(*wrap_urb), alloc_flags); + if (!wrap_urb) { + WARNING("couldn't allocate memory"); + return NULL; + } + urb = usb_alloc_urb(0, alloc_flags); + if (!urb) { + WARNING("couldn't allocate urb"); + kfree(wrap_urb); + return NULL; + } + IoAcquireCancelSpinLock(&irp->cancel_irql); + wrap_urb->urb = urb; + wrap_urb->state = URB_ALLOCATED; + InsertTailList(&wd->usb.wrap_urb_list, &wrap_urb->list); + wd->usb.num_alloc_urbs++; + } + +#ifdef URB_ASYNC_UNLINK + urb->transfer_flags |= URB_ASYNC_UNLINK; +#elif defined(USB_ASYNC_UNLINK) + urb->transfer_flags |= USB_ASYNC_UNLINK; +#endif + urb->context = wrap_urb; + wrap_urb->irp = irp; + IRP_WRAP_URB(irp) = wrap_urb; + /* called as Windows function */ + irp->cancel_routine = WIN_FUNC_PTR(wrap_cancel_irp,2); + IoReleaseCancelSpinLock(irp->cancel_irql); + USBTRACE("urb: %p", urb); + + urb->transfer_buffer_length = buf_len; + if (buf_len && buf && (!virt_addr_valid(buf) +#if defined(CONFIG_HIGHMEM) || defined(CONFIG_HIGHMEM4G) + || PageHighMem(virt_to_page(buf)) +#endif + )) { + urb->transfer_buffer = + usb_alloc_coherent(wd->usb.udev, buf_len, alloc_flags, + &urb->transfer_dma); + if (!urb->transfer_buffer) { + WARNING("couldn't allocate dma buf"); + IoAcquireCancelSpinLock(&irp->cancel_irql); + wrap_urb->state = URB_FREE; + wrap_urb->irp = NULL; + IRP_WRAP_URB(irp) = NULL; + IoReleaseCancelSpinLock(irp->cancel_irql); + return NULL; + } + if (urb->transfer_dma) + urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; + wrap_urb->flags |= WRAP_URB_COPY_BUFFER; + if (usb_pipeout(pipe)) + memcpy(urb->transfer_buffer, buf, buf_len); + USBTRACE("DMA buf for urb %p: %p", urb, urb->transfer_buffer); + } else + urb->transfer_buffer = buf; + return urb; +} + +static USBD_STATUS wrap_submit_urb(struct irp *irp) +{ + int ret; + struct urb *urb; + union nt_urb *nt_urb; + + urb = IRP_WRAP_URB(irp)->urb; + nt_urb = IRP_URB(irp); +#ifdef USB_DEBUG + if (IRP_WRAP_URB(irp)->state != URB_ALLOCATED) { + ERROR("urb %p is in wrong state: %d", + urb, IRP_WRAP_URB(irp)->state); + NT_URB_STATUS(nt_urb) = USBD_STATUS_REQUEST_FAILED; + return NT_URB_STATUS(nt_urb); + } + IRP_WRAP_URB(irp)->id = pre_atomic_add(urb_id, 1); +#endif + DUMP_WRAP_URB(IRP_WRAP_URB(irp), USB_DIR_OUT); + irp->io_status.status = STATUS_PENDING; + irp->io_status.info = 0; + NT_URB_STATUS(nt_urb) = USBD_STATUS_PENDING; + IoMarkIrpPending(irp); + DUMP_URB_BUFFER(urb, USB_DIR_OUT); + USBTRACE("%p", urb); + IRP_WRAP_URB(irp)->state = URB_SUBMITTED; + ret = usb_submit_urb(urb, irql_gfp()); + if (ret) { + USBTRACE("ret: %d", ret); + wrap_free_urb(urb); + /* we assume that IRP was not in pending state before */ + IoUnmarkIrpPending(irp); + NT_URB_STATUS(nt_urb) = wrap_urb_status(ret); + USBEXIT(return NT_URB_STATUS(nt_urb)); + } else + USBEXIT(return USBD_STATUS_PENDING); +} + +static void wrap_urb_complete(struct urb *urb ISR_PT_REGS_PARAM_DECL) +{ + struct irp *irp; + struct wrap_urb *wrap_urb; + + wrap_urb = urb->context; + USBTRACE("%p (%p) completed", wrap_urb, urb); + irp = wrap_urb->irp; + DUMP_WRAP_URB(wrap_urb, USB_DIR_IN); + irp->cancel_routine = NULL; +#ifdef USB_DEBUG + if (wrap_urb->state != URB_SUBMITTED) { + WARNING("urb %p in wrong state: %d (%d)", urb, wrap_urb->state, + urb->status); + return; + } +#endif + wrap_urb->state = URB_COMPLETED; + spin_lock(&wrap_urb_complete_list_lock); + InsertTailList(&wrap_urb_complete_list, &wrap_urb->complete_list); + spin_unlock(&wrap_urb_complete_list_lock); + schedule_ntos_work(&wrap_urb_complete_work); +} + +/* one worker for all devices */ +static void wrap_urb_complete_worker(worker_param_t dummy) +{ + struct irp *irp; + struct urb *urb; + struct usbd_bulk_or_intr_transfer *bulk_int_tx; + struct usbd_vendor_or_class_request *vc_req; + union nt_urb *nt_urb; + struct wrap_urb *wrap_urb; + struct nt_list *ent; + unsigned long flags; + + USBENTER(""); + while (1) { + spin_lock_irqsave(&wrap_urb_complete_list_lock, flags); + ent = RemoveHeadList(&wrap_urb_complete_list); + spin_unlock_irqrestore(&wrap_urb_complete_list_lock, flags); + if (!ent) + break; + wrap_urb = container_of(ent, struct wrap_urb, complete_list); + urb = wrap_urb->urb; +#ifdef USB_DEBUG + if (wrap_urb->state != URB_COMPLETED && + wrap_urb->state != URB_INT_UNLINKED) + WARNING("urb %p in wrong state: %d", + urb, wrap_urb->state); +#endif + irp = wrap_urb->irp; + DUMP_IRP(irp); + nt_urb = IRP_URB(irp); + USBTRACE("urb: %p, nt_urb: %p, status: %d", + urb, nt_urb, urb->status); + switch (urb->status) { + case 0: + /* succesfully transferred */ + irp->io_status.info = urb->actual_length; + if (nt_urb->header.function == + URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER) { + bulk_int_tx = &nt_urb->bulk_int_transfer; + bulk_int_tx->transfer_buffer_length = + urb->actual_length; + DUMP_URB_BUFFER(urb, USB_DIR_IN); + if ((wrap_urb->flags & WRAP_URB_COPY_BUFFER) && + usb_pipein(urb->pipe)) + memcpy(bulk_int_tx->transfer_buffer, + urb->transfer_buffer, + urb->actual_length); + } else { // vendor or class request + vc_req = &nt_urb->vendor_class_request; + vc_req->transfer_buffer_length = + urb->actual_length; + DUMP_URB_BUFFER(urb, USB_DIR_IN); + if ((wrap_urb->flags & WRAP_URB_COPY_BUFFER) && + usb_pipein(urb->pipe)) + memcpy(vc_req->transfer_buffer, + urb->transfer_buffer, + urb->actual_length); + } + NT_URB_STATUS(nt_urb) = USBD_STATUS_SUCCESS; + irp->io_status.status = STATUS_SUCCESS; + break; + case -ENOENT: + case -ECONNRESET: + /* urb canceled */ + irp->io_status.info = 0; + TRACE2("urb %p canceled", urb); + NT_URB_STATUS(nt_urb) = USBD_STATUS_SUCCESS; + irp->io_status.status = STATUS_CANCELLED; + break; + default: + TRACE2("irp: %p, urb: %p, status: %d/%d", + irp, urb, urb->status, wrap_urb->state); + irp->io_status.info = 0; + NT_URB_STATUS(nt_urb) = wrap_urb_status(urb->status); + irp->io_status.status = + nt_urb_irp_status(NT_URB_STATUS(nt_urb)); + break; + } + wrap_free_urb(urb); + IoCompleteRequest(irp, IO_NO_INCREMENT); + } + USBEXIT(return); +} + +static USBD_STATUS wrap_bulk_or_intr_trans(struct irp *irp) +{ + usbd_pipe_handle pipe_handle; + struct urb *urb; + unsigned int pipe; + struct usbd_bulk_or_intr_transfer *bulk_int_tx; + USBD_STATUS status; + struct usb_device *udev; + union nt_urb *nt_urb; + + nt_urb = IRP_URB(irp); + udev = IRP_WRAP_DEVICE(irp)->usb.udev; + bulk_int_tx = &nt_urb->bulk_int_transfer; + pipe_handle = bulk_int_tx->pipe_handle; + USBTRACE("flags: 0x%x, length: %u, buffer: %p, handle: %p", + bulk_int_tx->transfer_flags, + bulk_int_tx->transfer_buffer_length, + bulk_int_tx->transfer_buffer, pipe_handle); + + if (USBD_IS_BULK_PIPE(pipe_handle)) { + if (bulk_int_tx->transfer_flags & USBD_TRANSFER_DIRECTION_IN) + pipe = usb_rcvbulkpipe(udev, + pipe_handle->bEndpointAddress); + else + pipe = usb_sndbulkpipe(udev, + pipe_handle->bEndpointAddress); + } else { + if (bulk_int_tx->transfer_flags & USBD_TRANSFER_DIRECTION_IN) + pipe = usb_rcvintpipe(udev, + pipe_handle->bEndpointAddress); + else + pipe = usb_sndintpipe(udev, + pipe_handle->bEndpointAddress); + } + + DUMP_IRP(irp); + urb = wrap_alloc_urb(irp, pipe, bulk_int_tx->transfer_buffer, + bulk_int_tx->transfer_buffer_length); + if (!urb) { + ERROR("couldn't allocate urb"); + return USBD_STATUS_NO_MEMORY; + } + if (usb_pipein(pipe) && + (!(bulk_int_tx->transfer_flags & USBD_SHORT_TRANSFER_OK))) { + USBTRACE("short not ok"); + urb->transfer_flags |= URB_SHORT_NOT_OK; + } + if (usb_pipebulk(pipe)) { + usb_fill_bulk_urb(urb, udev, pipe, urb->transfer_buffer, + bulk_int_tx->transfer_buffer_length, + wrap_urb_complete, urb->context); + USBTRACE("submitting bulk urb %p on pipe 0x%x (ep 0x%x)", + urb, urb->pipe, pipe_handle->bEndpointAddress); + } else { + usb_fill_int_urb(urb, udev, pipe, urb->transfer_buffer, + bulk_int_tx->transfer_buffer_length, + wrap_urb_complete, urb->context, + pipe_handle->bInterval); + USBTRACE("submitting interrupt urb %p on pipe 0x%x (ep 0x%x), " + "intvl: %d", urb, urb->pipe, + pipe_handle->bEndpointAddress, pipe_handle->bInterval); + } + status = wrap_submit_urb(irp); + USBTRACE("status: %08X", status); + USBEXIT(return status); +} + +static USBD_STATUS wrap_vendor_or_class_req(struct irp *irp) +{ + u8 req_type; + unsigned int pipe; + struct usbd_vendor_or_class_request *vc_req; + struct usb_device *udev; + union nt_urb *nt_urb; + USBD_STATUS status; + struct urb *urb; + struct usb_ctrlrequest *dr; + + nt_urb = IRP_URB(irp); + udev = IRP_WRAP_DEVICE(irp)->usb.udev; + vc_req = &nt_urb->vendor_class_request; + USBTRACE("bits: %x, req: %x, val: %08x, index: %08x, flags: %x," + "buf: %p, len: %d", vc_req->reserved_bits, vc_req->request, + vc_req->value, vc_req->index, vc_req->transfer_flags, + vc_req->transfer_buffer, vc_req->transfer_buffer_length); + + USBTRACE("%x", nt_urb->header.function); + switch (nt_urb->header.function) { + case URB_FUNCTION_VENDOR_DEVICE: + req_type = USB_TYPE_VENDOR | USB_RECIP_DEVICE; + break; + case URB_FUNCTION_VENDOR_INTERFACE: + req_type = USB_TYPE_VENDOR | USB_RECIP_INTERFACE; + break; + case URB_FUNCTION_VENDOR_ENDPOINT: + req_type = USB_TYPE_VENDOR | USB_RECIP_ENDPOINT; + break; + case URB_FUNCTION_VENDOR_OTHER: + req_type = USB_TYPE_VENDOR | USB_RECIP_OTHER; + break; + case URB_FUNCTION_CLASS_DEVICE: + req_type = USB_TYPE_CLASS | USB_RECIP_DEVICE; + break; + case URB_FUNCTION_CLASS_INTERFACE: + req_type = USB_TYPE_CLASS | USB_RECIP_INTERFACE; + break; + case URB_FUNCTION_CLASS_ENDPOINT: + req_type = USB_TYPE_CLASS | USB_RECIP_ENDPOINT; + break; + case URB_FUNCTION_CLASS_OTHER: + req_type = USB_TYPE_CLASS | USB_RECIP_OTHER; + break; + default: + ERROR("unknown request type: %x", nt_urb->header.function); + req_type = 0; + break; + } + + req_type |= vc_req->reserved_bits; + USBTRACE("req type: %08x", req_type); + + if (vc_req->transfer_flags & USBD_TRANSFER_DIRECTION_IN) { + pipe = usb_rcvctrlpipe(udev, 0); + req_type |= USB_DIR_IN; + USBTRACE("pipe: %x, dir in", pipe); + } else { + pipe = usb_sndctrlpipe(udev, 0); + req_type |= USB_DIR_OUT; + USBTRACE("pipe: %x, dir out", pipe); + } + urb = wrap_alloc_urb(irp, pipe, vc_req->transfer_buffer, + vc_req->transfer_buffer_length); + if (!urb) { + ERROR("couldn't allocate urb"); + return USBD_STATUS_NO_MEMORY; + } + + if (usb_pipein(pipe) && + (!(vc_req->transfer_flags & USBD_SHORT_TRANSFER_OK))) { + USBTRACE("short not ok"); + urb->transfer_flags |= URB_SHORT_NOT_OK; + } + + dr = kzalloc(sizeof(*dr), GFP_ATOMIC); + if (!dr) { + ERROR("couldn't allocate memory"); + wrap_free_urb(urb); + return USBD_STATUS_NO_MEMORY; + } + dr->bRequestType = req_type; + dr->bRequest = vc_req->request; + dr->wValue = cpu_to_le16(vc_req->value); + dr->wIndex = cpu_to_le16((u16)vc_req->index); + dr->wLength = cpu_to_le16((u16)urb->transfer_buffer_length); + + usb_fill_control_urb(urb, udev, pipe, (unsigned char *)dr, + urb->transfer_buffer, urb->transfer_buffer_length, + wrap_urb_complete, urb->context); + status = wrap_submit_urb(irp); + USBTRACE("status: %08X", status); + USBEXIT(return status); +} + +static USBD_STATUS wrap_reset_pipe(struct usb_device *udev, struct irp *irp) +{ + int ret; + union nt_urb *nt_urb; + usbd_pipe_handle pipe_handle; + unsigned int pipe1, pipe2; + + nt_urb = IRP_URB(irp); + pipe_handle = nt_urb->pipe_req.pipe_handle; + /* TODO: not clear if both directions should be cleared? */ + if (USBD_IS_BULK_PIPE(pipe_handle)) { + pipe1 = usb_rcvbulkpipe(udev, pipe_handle->bEndpointAddress); + pipe2 = usb_sndbulkpipe(udev, pipe_handle->bEndpointAddress); + } else if (USBD_IS_INT_PIPE(pipe_handle)) { + pipe1 = usb_rcvintpipe(udev, pipe_handle->bEndpointAddress); + pipe2 = pipe1; + } else { + WARNING("invalid pipe %d", pipe_handle->bEndpointAddress); + return USBD_STATUS_INVALID_PIPE_HANDLE; + } + USBTRACE("ep: %d, pipe: 0x%x", pipe_handle->bEndpointAddress, pipe1); + ret = usb_clear_halt(udev, pipe1); + if (ret) + USBTRACE("resetting pipe %d failed: %d", pipe1, ret); + if (pipe2 != pipe1) { + ret = usb_clear_halt(udev, pipe2); + if (ret) + USBTRACE("resetting pipe %d failed: %d", pipe2, ret); + } +// return wrap_urb_status(ret); + return USBD_STATUS_SUCCESS; +} + +static USBD_STATUS wrap_abort_pipe(struct usb_device *udev, struct irp *irp) +{ + union nt_urb *nt_urb; + usbd_pipe_handle pipe_handle; + struct wrap_urb *wrap_urb; + struct wrap_device *wd; + KIRQL irql; + + wd = IRP_WRAP_DEVICE(irp); + nt_urb = IRP_URB(irp); + pipe_handle = nt_urb->pipe_req.pipe_handle; + USBENTER("%p, %x", irp, pipe_handle->bEndpointAddress); + IoAcquireCancelSpinLock(&irql); + nt_list_for_each_entry(wrap_urb, &wd->usb.wrap_urb_list, list) { + USBTRACE("%p, %p, %d, %x, %x", wrap_urb, wrap_urb->urb, + wrap_urb->state, wrap_urb->urb->pipe, + usb_pipeendpoint(wrap_urb->urb->pipe)); + /* for WG111T driver, urbs for endpoint 0 should also + * be canceled */ + if ((usb_pipeendpoint(wrap_urb->urb->pipe) == + pipe_handle->bEndpointAddress) || + (usb_pipeendpoint(wrap_urb->urb->pipe) == 0)) { + if (wrap_cancel_urb(wrap_urb) == 0) + USBTRACE("canceled wrap_urb: %p", wrap_urb); + } + } + IoReleaseCancelSpinLock(irql); + NT_URB_STATUS(nt_urb) = USBD_STATUS_CANCELED; + USBEXIT(return USBD_STATUS_SUCCESS); +} + +static USBD_STATUS wrap_set_clear_feature(struct usb_device *udev, + struct irp *irp) +{ + union nt_urb *nt_urb; + struct urb_control_feature_request *feat_req; + int ret = 0; + __u8 request, type; + __u16 feature; + + nt_urb = IRP_URB(irp); + feat_req = &nt_urb->feat_req; + feature = feat_req->feature_selector; + switch (nt_urb->header.function) { + case URB_FUNCTION_SET_FEATURE_TO_DEVICE: + request = USB_REQ_SET_FEATURE; + type = USB_DT_DEVICE; + break; + case URB_FUNCTION_SET_FEATURE_TO_INTERFACE: + request = USB_REQ_SET_FEATURE; + type = USB_DT_INTERFACE; + break; + case URB_FUNCTION_SET_FEATURE_TO_ENDPOINT: + request = USB_REQ_SET_FEATURE; + type = USB_DT_ENDPOINT; + break; + case URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE: + request = USB_REQ_CLEAR_FEATURE; + type = USB_DT_DEVICE; + break; + case URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE: + request = USB_REQ_CLEAR_FEATURE; + type = USB_DT_INTERFACE; + break; + case URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT: + request = USB_REQ_CLEAR_FEATURE; + type = USB_DT_ENDPOINT; + break; + default: + WARNING("invalid function: %x", nt_urb->header.function); + NT_URB_STATUS(nt_urb) = USBD_STATUS_NOT_SUPPORTED; + return NT_URB_STATUS(nt_urb); + } + ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), request, type, + feature, feat_req->index, NULL, 0, 1000); + NT_URB_STATUS(nt_urb) = wrap_urb_status(ret); + USBEXIT(return NT_URB_STATUS(nt_urb)); +} + +static USBD_STATUS wrap_get_status_request(struct usb_device *udev, + struct irp *irp) +{ + union nt_urb *nt_urb; + struct urb_control_get_status_request *status_req; + int ret = 0; + __u8 type; + + nt_urb = IRP_URB(irp); + status_req = &nt_urb->status_req; + switch (nt_urb->header.function) { + case URB_FUNCTION_GET_STATUS_FROM_DEVICE: + type = USB_RECIP_DEVICE; + break; + case URB_FUNCTION_GET_STATUS_FROM_INTERFACE: + type = USB_RECIP_INTERFACE; + break; + case URB_FUNCTION_GET_STATUS_FROM_ENDPOINT: + type = USB_RECIP_ENDPOINT; + break; + default: + WARNING("invalid function: %x", nt_urb->header.function); + NT_URB_STATUS(nt_urb) = USBD_STATUS_NOT_SUPPORTED; + return NT_URB_STATUS(nt_urb); + } + assert(status_req->transfer_buffer_length == sizeof(u16)); + ret = usb_get_status(udev, type, status_req->index, + status_req->transfer_buffer); + if (ret >= 0) { + assert(ret <= status_req->transfer_buffer_length); + status_req->transfer_buffer_length = ret; + NT_URB_STATUS(nt_urb) = USBD_STATUS_SUCCESS; + } else + NT_URB_STATUS(nt_urb) = wrap_urb_status(ret); + USBEXIT(return NT_URB_STATUS(nt_urb)); +} + +static void set_intf_pipe_info(struct wrap_device *wd, + struct usb_interface *usb_intf, + struct usbd_interface_information *intf) +{ + int i; + struct usb_endpoint_descriptor *ep; + struct usbd_pipe_information *pipe; + + for (i = 0; i < CUR_ALT_SETTING(usb_intf)->desc.bNumEndpoints; i++) { + ep = &(CUR_ALT_SETTING(usb_intf)->endpoint[i]).desc; + if (i >= intf->bNumEndpoints) { + ERROR("intf %p has only %d endpoints, " + "ignoring endpoints above %d", + intf, intf->bNumEndpoints, i); + break; + } + pipe = &intf->pipes[i]; + + if (pipe->flags & USBD_PF_CHANGE_MAX_PACKET) + USBTRACE("pkt_sz: %d: %d", pipe->wMaxPacketSize, + pipe->max_tx_size); + USBTRACE("driver wants max_tx_size to %d", + pipe->max_tx_size); + + pipe->wMaxPacketSize = le16_to_cpu(ep->wMaxPacketSize); + pipe->bEndpointAddress = ep->bEndpointAddress; + pipe->type = ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK; + if (pipe->type == UsbdPipeTypeInterrupt) { + /* Windows and Linux differ in how the + * bInterval is interpretted */ + /* for low speed: + interval (Windows) -> frames per ms (Linux) + 0 to 15 -> 8 + 16 to 35 -> 16 + 36 to 255 -> 32 + + for full speed: interval -> frames per ms + 1 -> 1 + 2 to 3 -> 2 + 4 to 7 -> 4 + 8 to 15 -> 8 + 16 to 31 -> 16 + 32 to 255 -> 32 + + for high speed: interval -> microframes + 1 -> 1 + 2 -> 2 + 3 -> 4 + 4 -> 8 + 5 -> 16 + 6 -> 32 + 7 to 255 -> 32 + */ + if (wd->usb.udev->speed == USB_SPEED_LOW) + pipe->bInterval = ep->bInterval + 5; + else if (wd->usb.udev->speed == USB_SPEED_FULL) + pipe->bInterval = ep->bInterval; + else { + int j, k; + for (j = k = 1; j < ep->bInterval; k++) + j *= 2; + pipe->bInterval = k; + } + } + pipe->handle = ep; + USBTRACE("%d: ep 0x%x, type %d, pkt_sz %d, intv %d (%d)," + "type: %d, handle %p", i, ep->bEndpointAddress, + ep->bmAttributes, pipe->wMaxPacketSize, ep->bInterval, + pipe->bInterval, pipe->type, pipe->handle); + } +} + +static USBD_STATUS wrap_select_configuration(struct wrap_device *wd, + union nt_urb *nt_urb, + struct irp *irp) +{ + int i, ret; + struct usbd_select_configuration *sel_conf; + struct usb_device *udev; + struct usbd_interface_information *intf; + struct usb_config_descriptor *config; + struct usb_interface *usb_intf; + + udev = wd->usb.udev; + sel_conf = &nt_urb->select_conf; + config = sel_conf->config; + USBTRACE("%p", config); + if (config == NULL) { + kill_all_urbs(wd, 1); + ret = usb_reset_configuration(udev); + return wrap_urb_status(ret); + } + + USBTRACE("conf: %d, type: %d, length: %d, numif: %d, attr: %08x", + config->bConfigurationValue, config->bDescriptorType, + config->wTotalLength, config->bNumInterfaces, + config->bmAttributes); + ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), + USB_REQ_SET_CONFIGURATION, 0, + config->bConfigurationValue, 0, + NULL, 0, USB_CTRL_SET_TIMEOUT); + if (ret < 0) { + ERROR("ret: %d", ret); + return wrap_urb_status(ret); + } + sel_conf->handle = udev->actconfig; + intf = &sel_conf->intf; + for (i = 0; i < config->bNumInterfaces && intf->bLength > 0; + i++, intf = (((void *)intf) + intf->bLength)) { + + USBTRACE("intf: %d, alt setting: %d", + intf->bInterfaceNumber, intf->bAlternateSetting); + ret = usb_set_interface(udev, intf->bInterfaceNumber, + intf->bAlternateSetting); + if (ret < 0) { + ERROR("failed with %d", ret); + return wrap_urb_status(ret); + } + usb_intf = usb_ifnum_to_if(udev, intf->bInterfaceNumber); + if (!usb_intf) { + ERROR("couldn't obtain ifnum"); + return USBD_STATUS_REQUEST_FAILED; + } + USBTRACE("intf: %p, num ep: %d", intf, intf->bNumEndpoints); + set_intf_pipe_info(wd, usb_intf, intf); + } + return USBD_STATUS_SUCCESS; +} + +static USBD_STATUS wrap_select_interface(struct wrap_device *wd, + union nt_urb *nt_urb, + struct irp *irp) +{ + int ret; + struct usbd_select_interface *sel_intf; + struct usb_device *udev; + struct usbd_interface_information *intf; + struct usb_interface *usb_intf; + + udev = wd->usb.udev; + sel_intf = &nt_urb->select_intf; + intf = &sel_intf->intf; + + ret = usb_set_interface(udev, intf->bInterfaceNumber, + intf->bAlternateSetting); + if (ret < 0) { + ERROR("failed with %d", ret); + return wrap_urb_status(ret); + } + usb_intf = usb_ifnum_to_if(udev, intf->bInterfaceNumber); + if (!usb_intf) { + ERROR("couldn't get interface information"); + return USBD_STATUS_REQUEST_FAILED; + } + USBTRACE("intf: %p, num ep: %d", usb_intf, intf->bNumEndpoints); + set_intf_pipe_info(wd, usb_intf, intf); + return USBD_STATUS_SUCCESS; +} + +static int wrap_usb_get_string(struct usb_device *udev, unsigned short langid, + unsigned char index, void *buf, int size) +{ + int i, ret; + /* if langid is 0, return array of langauges supported in + * buf */ + for (i = 0; i < 3; i++) { + ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), + USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, + (USB_DT_STRING << 8) + index, langid, + buf, size, USB_CTRL_GET_TIMEOUT); + if (ret > 0 || ret == -EPIPE) + break; + } + return ret; +} + +static USBD_STATUS wrap_get_descriptor(struct wrap_device *wd, + union nt_urb *nt_urb, struct irp *irp) +{ + struct usbd_control_descriptor_request *control_desc; + int ret = 0; + struct usb_device *udev; + + udev = wd->usb.udev; + control_desc = &nt_urb->control_desc; + USBTRACE("desctype = %d, descindex = %d, transfer_buffer = %p," + "transfer_buffer_length = %d", control_desc->desc_type, + control_desc->index, control_desc->transfer_buffer, + control_desc->transfer_buffer_length); + + if (control_desc->desc_type == USB_DT_STRING) { + USBTRACE("langid: %x", control_desc->language_id); + ret = wrap_usb_get_string(udev, control_desc->language_id, + control_desc->index, + control_desc->transfer_buffer, + control_desc->transfer_buffer_length); + } else { + ret = usb_get_descriptor(udev, control_desc->desc_type, + control_desc->index, + control_desc->transfer_buffer, + control_desc->transfer_buffer_length); + } + if (ret < 0) { + USBTRACE("request %d failed: %d", control_desc->desc_type, ret); + control_desc->transfer_buffer_length = 0; + return wrap_urb_status(ret); + } else { + USBTRACE("ret: %08x", ret); + control_desc->transfer_buffer_length = ret; + irp->io_status.info = ret; + return USBD_STATUS_SUCCESS; + } +} + +static USBD_STATUS wrap_process_nt_urb(struct irp *irp) +{ + union nt_urb *nt_urb; + struct usb_device *udev; + USBD_STATUS status; + struct wrap_device *wd; + + wd = IRP_WRAP_DEVICE(irp); + udev = wd->usb.udev; + nt_urb = IRP_URB(irp); + USBENTER("nt_urb = %p, irp = %p, length = %d, function = %x", + nt_urb, irp, nt_urb->header.length, nt_urb->header.function); + + DUMP_IRP(irp); + switch (nt_urb->header.function) { + /* bulk/int and vendor/class urbs are submitted to + * Linux USB core; if the call is sucessful, urb's + * completion worker will return IRP later */ + case URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER: + USBTRACE("submitting bulk/int irp: %p", irp); + status = wrap_bulk_or_intr_trans(irp); + break; + + case URB_FUNCTION_VENDOR_DEVICE: + case URB_FUNCTION_VENDOR_INTERFACE: + case URB_FUNCTION_VENDOR_ENDPOINT: + case URB_FUNCTION_VENDOR_OTHER: + case URB_FUNCTION_CLASS_DEVICE: + case URB_FUNCTION_CLASS_INTERFACE: + case URB_FUNCTION_CLASS_ENDPOINT: + case URB_FUNCTION_CLASS_OTHER: + USBTRACE("submitting vendor/class irp: %p", irp); + status = wrap_vendor_or_class_req(irp); + break; + + /* rest are synchronous */ + case URB_FUNCTION_SELECT_CONFIGURATION: + status = wrap_select_configuration(wd, nt_urb, irp); + NT_URB_STATUS(nt_urb) = status; + break; + + case URB_FUNCTION_SELECT_INTERFACE: + status = wrap_select_interface(wd, nt_urb, irp); + NT_URB_STATUS(nt_urb) = status; + break; + + case URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE: + status = wrap_get_descriptor(wd, nt_urb, irp); + NT_URB_STATUS(nt_urb) = status; + break; + + case URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL: + status = wrap_reset_pipe(udev, irp); + NT_URB_STATUS(nt_urb) = status; + break; + + case URB_FUNCTION_ABORT_PIPE: + status = wrap_abort_pipe(udev, irp); + break; + + case URB_FUNCTION_SET_FEATURE_TO_DEVICE: + case URB_FUNCTION_SET_FEATURE_TO_INTERFACE: + case URB_FUNCTION_SET_FEATURE_TO_ENDPOINT: + case URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE: + case URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE: + case URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT: + status = wrap_set_clear_feature(udev, irp); + break; + + case URB_FUNCTION_GET_STATUS_FROM_DEVICE: + case URB_FUNCTION_GET_STATUS_FROM_INTERFACE: + case URB_FUNCTION_GET_STATUS_FROM_ENDPOINT: + status = wrap_get_status_request(udev, irp); + break; + + default: + ERROR("function %x not implemented", nt_urb->header.function); + status = NT_URB_STATUS(nt_urb) = USBD_STATUS_NOT_SUPPORTED; + break; + } + USBTRACE("status: %08X", status); + return status; +} + +static USBD_STATUS wrap_reset_port(struct irp *irp) +{ + no_warn_unused int ret, lock = 0; + struct wrap_device *wd; + + wd = IRP_WRAP_DEVICE(irp); + USBENTER("%p, %p", wd, wd->usb.udev); + lock = usb_lock_device_for_reset(wd->usb.udev, wd->usb.intf); + if (lock < 0) { + WARNING("locking failed: %d", lock); +// return wrap_urb_status(lock); + return USBD_STATUS_SUCCESS; + } + ret = usb_reset_device(wd->usb.udev); + if (ret < 0) + USBTRACE("reset failed: %d", ret); + /* TODO: should reconfigure? */ + if (lock) + usb_unlock_device(wd->usb.udev); +// return wrap_urb_status(ret); + return USBD_STATUS_SUCCESS; +} + +static USBD_STATUS wrap_get_port_status(struct irp *irp) +{ + struct wrap_device *wd; + ULONG *status; + enum usb_device_state state; + + wd = IRP_WRAP_DEVICE(irp); + USBENTER("%p, %p", wd, wd->usb.udev); + status = IoGetCurrentIrpStackLocation(irp)->params.others.arg1; + state = wd->usb.udev->state; + if (state != USB_STATE_NOTATTACHED && + state != USB_STATE_SUSPENDED) { + *status |= USBD_PORT_CONNECTED; + if (state == USB_STATE_CONFIGURED) + *status |= USBD_PORT_ENABLED; + } + USBTRACE("state: %d, *status: %08X", state, *status); + return USBD_STATUS_SUCCESS; +} + +NTSTATUS wrap_submit_irp(struct device_object *pdo, struct irp *irp) +{ + struct io_stack_location *irp_sl; + struct wrap_device *wd; + USBD_STATUS status; + struct usbd_idle_callback *idle_callback; + + USBENTER("%p, %p", pdo, irp); + wd = pdo->reserved; + if (wd->usb.intf == NULL) { + USBTRACE("%p", irp); + irp->io_status.status = STATUS_DEVICE_REMOVED; + irp->io_status.info = 0; + USBEXIT(return STATUS_DEVICE_REMOVED); + } + IRP_WRAP_DEVICE(irp) = wd; + irp_sl = IoGetCurrentIrpStackLocation(irp); + switch (irp_sl->params.dev_ioctl.code) { + case IOCTL_INTERNAL_USB_SUBMIT_URB: + status = wrap_process_nt_urb(irp); + break; + case IOCTL_INTERNAL_USB_RESET_PORT: + status = wrap_reset_port(irp); + break; + case IOCTL_INTERNAL_USB_GET_PORT_STATUS: + status = wrap_get_port_status(irp); + break; + case IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION: + idle_callback = irp_sl->params.dev_ioctl.type3_input_buf; + USBTRACE("suspend function: %p", idle_callback->callback); + status = USBD_STATUS_NOT_SUPPORTED; + break; + default: + ERROR("ioctl %08X NOT IMPLEMENTED", + irp_sl->params.dev_ioctl.code); + status = USBD_STATUS_NOT_SUPPORTED; + break; + } + + USBTRACE("status: %08X", status); + if (status == USBD_STATUS_PENDING) { + /* don't touch this IRP - it may have been already + * completed/returned */ + return STATUS_PENDING; + } else { + irp->io_status.status = nt_urb_irp_status(status); + if (status != USBD_STATUS_SUCCESS) + irp->io_status.info = 0; + USBEXIT(return irp->io_status.status); + } +} + +/* TODO: The example on msdn in reference section suggests that second + * argument should be an array of usbd_interface_information, but + * description and examples elsewhere suggest that it should be + * usbd_interface_list_entry structre. Which is correct? */ + +wstdcall union nt_urb *WIN_FUNC(USBD_CreateConfigurationRequestEx,2) + (struct usb_config_descriptor *config, + struct usbd_interface_list_entry *intf_list) +{ + int size, i, n; + struct usbd_interface_information *intf; + struct usbd_pipe_information *pipe; + struct usb_interface_descriptor *intf_desc; + struct usbd_select_configuration *select_conf; + + USBENTER("config = %p, intf_list = %p", config, intf_list); + + /* calculate size required; select_conf already has space for + * one intf structure */ + size = sizeof(*select_conf) - sizeof(*intf); + for (n = 0; n < config->bNumInterfaces; n++) { + i = intf_list[n].intf_desc->bNumEndpoints; + /* intf already has space for one pipe */ + size += sizeof(*intf) + (i - 1) * sizeof(*pipe); + } + /* don't use kmalloc - driver frees it with ExFreePool */ + select_conf = ExAllocatePoolWithTag(NonPagedPool, size, + POOL_TAG('L', 'U', 'S', 'B')); + if (!select_conf) { + WARNING("couldn't allocate memory"); + return NULL; + } + memset(select_conf, 0, size); + intf = &select_conf->intf; + select_conf->handle = config; + for (n = 0; n < config->bNumInterfaces && intf_list[n].intf_desc; n++) { + /* initialize 'intf' fields in intf_list so they point + * to appropriate entry; these may be read/written by + * driver after this function returns */ + intf_list[n].intf = intf; + intf_desc = intf_list[n].intf_desc; + + i = intf_desc->bNumEndpoints; + intf->bLength = sizeof(*intf) + (i - 1) * sizeof(*pipe); + + intf->bInterfaceNumber = intf_desc->bInterfaceNumber; + intf->bAlternateSetting = intf_desc->bAlternateSetting; + intf->bInterfaceClass = intf_desc->bInterfaceClass; + intf->bInterfaceSubClass = intf_desc->bInterfaceSubClass; + intf->bInterfaceProtocol = intf_desc->bInterfaceProtocol; + intf->bNumEndpoints = intf_desc->bNumEndpoints; + + pipe = &intf->pipes[0]; + for (i = 0; i < intf->bNumEndpoints; i++) { + memset(&pipe[i], 0, sizeof(*pipe)); + pipe[i].max_tx_size = + USBD_DEFAULT_MAXIMUM_TRANSFER_SIZE; + } + intf->handle = intf_desc; + intf = (((void *)intf) + intf->bLength); + } + select_conf->header.function = URB_FUNCTION_SELECT_CONFIGURATION; + select_conf->header.length = size; + select_conf->config = config; + USBEXIT(return (union nt_urb *)select_conf); +} + +WIN_SYMBOL_MAP("_USBD_CreateConfigurationRequestEx@8", USBD_CreateConfigurationRequestEx) + +wstdcall struct usb_interface_descriptor * +WIN_FUNC(USBD_ParseConfigurationDescriptorEx,7) + (struct usb_config_descriptor *config, void *start, + LONG bInterfaceNumber, LONG bAlternateSetting, LONG bInterfaceClass, + LONG bInterfaceSubClass, LONG bInterfaceProtocol) +{ + void *pos; + struct usb_interface_descriptor *intf; + + USBENTER("config = %p, start = %p, ifnum = %d, alt_setting = %d," + " class = %d, subclass = %d, proto = %d", config, start, + bInterfaceNumber, bAlternateSetting, bInterfaceClass, + bInterfaceSubClass, bInterfaceProtocol); + + for (pos = start; + pos < ((void *)config + le16_to_cpu(config->wTotalLength)); + pos += intf->bLength) { + + intf = pos; + + if ((intf->bDescriptorType == USB_DT_INTERFACE) && + ((bInterfaceNumber == -1) || + (intf->bInterfaceNumber == bInterfaceNumber)) && + ((bAlternateSetting == -1) || + (intf->bAlternateSetting == bAlternateSetting)) && + ((bInterfaceClass == -1) || + (intf->bInterfaceClass == bInterfaceClass)) && + ((bInterfaceSubClass == -1) || + (intf->bInterfaceSubClass == bInterfaceSubClass)) && + ((bInterfaceProtocol == -1) || + (intf->bInterfaceProtocol == bInterfaceProtocol))) { + USBTRACE("selected interface = %p", intf); + USBEXIT(return intf); + } + } + USBEXIT(return NULL); +} + +WIN_SYMBOL_MAP("_USBD_ParseConfigurationDescriptorEx@28", USBD_ParseConfigurationDescriptorEx) + +wstdcall union nt_urb *WIN_FUNC(USBD_CreateConfigurationRequest,2) + (struct usb_config_descriptor *config, USHORT *size) +{ + union nt_urb *nt_urb; + struct usbd_interface_list_entry intf_list[2]; + struct usb_interface_descriptor *intf_desc; + + USBENTER("config = %p, urb_size = %p", config, size); + + intf_desc = USBD_ParseConfigurationDescriptorEx(config, config, -1, -1, + -1, -1, -1); + intf_list[0].intf_desc = intf_desc; + intf_list[0].intf = NULL; + intf_list[1].intf_desc = NULL; + intf_list[1].intf = NULL; + nt_urb = USBD_CreateConfigurationRequestEx(config, intf_list); + if (!nt_urb) + return NULL; + + *size = nt_urb->select_conf.header.length; + USBEXIT(return nt_urb); +} + +wstdcall struct usb_interface_descriptor * +WIN_FUNC(USBD_ParseConfigurationDescriptor,3) + (struct usb_config_descriptor *config, UCHAR bInterfaceNumber, + UCHAR bAlternateSetting) +{ + return USBD_ParseConfigurationDescriptorEx(config, config, + bInterfaceNumber, + bAlternateSetting, + -1, -1, -1); +} + +wstdcall usb_common_descriptor_t *WIN_FUNC(USBD_ParseDescriptors,4) + (void *buf, ULONG length, void *start, LONG type) +{ + usb_common_descriptor_t *descr = start; + + while ((void *)descr < buf + length) { + if (descr->bDescriptorType == type) + return descr; + if (descr->bLength == 0) + break; + descr = (void *)descr + descr->bLength; + } + USBEXIT(return NULL); +} + +WIN_SYMBOL_MAP("_USBD_ParseDescriptors@16", USBD_ParseDescriptors) + +wstdcall void WIN_FUNC(USBD_GetUSBDIVersion,1) + (struct usbd_version_info *version_info) +{ + /* this function is obsolete in Windows XP */ + if (version_info) { + version_info->usbdi_version = USBDI_VERSION_XP; + /* TODO: how do we get this correctly? */ + version_info->supported_usb_version = 0x110; + } + USBEXIT(return); +} + +wstdcall void +USBD_InterfaceGetUSBDIVersion(void *context, + struct usbd_version_info *version_info, + ULONG *hcd_capa) +{ + struct wrap_device *wd = context; + + if (version_info) { + version_info->usbdi_version = USBDI_VERSION_XP; + if (wd->usb.udev->speed == USB_SPEED_HIGH) + version_info->supported_usb_version = 0x200; + else + version_info->supported_usb_version = 0x110; + } + *hcd_capa = USB_HCD_CAPS_SUPPORTS_RT_THREADS; + USBEXIT(return); +} + +wstdcall BOOLEAN USBD_InterfaceIsDeviceHighSpeed(void *context) +{ + struct wrap_device *wd = context; + + USBTRACE("wd: %p", wd); + if (wd->usb.udev->speed == USB_SPEED_HIGH) + USBEXIT(return TRUE); + else + USBEXIT(return FALSE); +} + +wstdcall void USBD_InterfaceReference(void *context) +{ + USBTRACE("%p", context); + TODO(); +} + +wstdcall void USBD_InterfaceDereference(void *context) +{ + USBTRACE("%p", context); + TODO(); +} + +wstdcall NTSTATUS USBD_InterfaceQueryBusTime(void *context, ULONG *frame) +{ + struct wrap_device *wd = context; + + *frame = usb_get_current_frame_number(wd->usb.udev); + USBEXIT(return STATUS_SUCCESS); +} + +wstdcall NTSTATUS USBD_InterfaceSubmitIsoOutUrb(void *context, + union nt_urb *nt_urb) +{ + /* TODO: implement this */ + TODO(); + USBEXIT(return STATUS_NOT_IMPLEMENTED); +} + +wstdcall NTSTATUS +USBD_InterfaceQueryBusInformation(void *context, ULONG level, void *buf, + ULONG *buf_length, ULONG *buf_actual_length) +{ + struct wrap_device *wd = context; + struct usb_bus_information_level *bus_info; + struct usb_bus *bus; + + bus = wd->usb.udev->bus; + bus_info = buf; + TODO(); + USBEXIT(return STATUS_NOT_IMPLEMENTED); +} + +wstdcall NTSTATUS +USBD_InterfaceLogEntry(void *context, ULONG driver_tag, ULONG enum_tag, + ULONG p1, ULONG p2) +{ + ERROR("%p, %x, %x, %x, %x", context, driver_tag, enum_tag, p1, p2); + USBEXIT(return STATUS_SUCCESS); +} + +int usb_init(void) +{ + InitializeListHead(&wrap_urb_complete_list); + spin_lock_init(&wrap_urb_complete_list_lock); + initialize_work(&wrap_urb_complete_work, wrap_urb_complete_worker, NULL); +#ifdef USB_DEBUG + urb_id = 0; +#endif + return 0; +} + +void usb_exit(void) +{ + USBEXIT(return); +} + +int usb_init_device(struct wrap_device *wd) +{ + InitializeListHead(&wd->usb.wrap_urb_list); + wd->usb.num_alloc_urbs = 0; + USBEXIT(return 0); +} + +void usb_exit_device(struct wrap_device *wd) +{ + kill_all_urbs(wd, 0); + USBEXIT(return); +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/ndiswrapper.h +++ linux-2.6.35/ubuntu/ndiswrapper/ndiswrapper.h @@ -0,0 +1,219 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _NDISWRAPPER_H_ +#define _NDISWRAPPER_H_ + +#define DRIVER_VERSION "1.56" +#define UTILS_VERSION "1.9" + +#define DRIVER_NAME "ndiswrapper" +#define DRIVER_CONFIG_DIR "/etc/ndiswrapper" + +#define SSID_MAX_WPA_IE_LEN 40 +#define NDIS_ESSID_MAX_SIZE 32 +#define NDIS_ENCODING_TOKEN_MAX 32 +#define MAX_ENCR_KEYS 4 +#define TX_RING_SIZE 16 +#define NDIS_MAX_RATES 8 +#define NDIS_MAX_RATES_EX 16 +#define WLAN_EID_GENERIC 221 +#define MAX_WPA_IE_LEN 64 +#define MAX_STR_LEN 512 + +#define WRAP_PCI_BUS 5 +#define WRAP_PCMCIA_BUS 8 +/* some USB devices, e.g., DWL-G120 have BusType as 0 */ +#define WRAP_INTERNAL_BUS 0 +/* documentation at msdn says 15 is PNP bus, but inf files from all + * vendors say 15 is USB; which is correct? */ +#define WRAP_USB_BUS 15 + +/* NDIS device must be 0, for compatability with old versions of + * ndiswrapper where device type for NDIS drivers is 0 */ +#define WRAP_NDIS_DEVICE 0 +#define WRAP_USB_DEVICE 1 +#define WRAP_BLUETOOTH_DEVICE1 2 +#define WRAP_BLUETOOTH_DEVICE2 3 + +#define WRAP_DEVICE_BUS(dev, bus) ((dev) << 8 | (bus)) +#define WRAP_BUS(dev_bus) ((dev_bus) & 0x000FF) +#define WRAP_DEVICE(dev_bus) ((dev_bus) >> 8) + +#define MAX_DRIVER_NAME_LEN 32 +#define MAX_VERSION_STRING_LEN 64 +#define MAX_SETTING_NAME_LEN 128 +#define MAX_SETTING_VALUE_LEN 256 + +#define MAX_DRIVER_PE_IMAGES 4 +#define MAX_DRIVER_BIN_FILES 5 +#define MAX_DEVICE_SETTINGS 512 + +#define MAX_ALLOCATED_URBS 15 + +#define DEV_ANY_ID -1 + +#define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5] +#define MACSTRSEP "%02x:%02x:%02x:%02x:%02x:%02x" +#define MACSTR "%02x%02x%02x%02x%02x%02x" +#define MACINTADR(a) (int*)&((a)[0]), (int*)&((a)[1]), (int*)&((a)[2]), \ + (int*)&((a)[3]), (int*)&((a)[4]), (int*)&((a)[5]) + +#ifdef __KERNEL__ +/* DEBUG macros */ + +#define MSG(level, fmt, ...) \ + printk(level "ndiswrapper (%s:%d): " fmt "\n", \ + __func__, __LINE__ , ## __VA_ARGS__) + +#define WARNING(fmt, ...) MSG(KERN_WARNING, fmt, ## __VA_ARGS__) +#define ERROR(fmt, ...) MSG(KERN_ERR, fmt , ## __VA_ARGS__) +#define INFO(fmt, ...) MSG(KERN_INFO, fmt , ## __VA_ARGS__) +#define TODO() WARNING("not fully implemented (yet)") + +#define TRACE(fmt, ...) do { } while (0) +#define TRACE1(fmt, ...) do { } while (0) +#define TRACE2(fmt, ...) do { } while (0) +#define TRACE3(fmt, ...) do { } while (0) +#define TRACE4(fmt, ...) do { } while (0) +#define TRACE5(fmt, ...) do { } while (0) +#define TRACE6(fmt, ...) do { } while (0) + +/* for a block of code */ +#define DBG_BLOCK(level) while (0) + +extern int debug; + +#if defined DEBUG +#undef TRACE +#define TRACE(level, fmt, ...) \ +do { \ + if (debug >= level) \ + printk(KERN_INFO "%s (%s:%d): " fmt "\n", DRIVER_NAME, \ + __func__, __LINE__ , ## __VA_ARGS__); \ +} while (0) +#undef DBG_BLOCK +#define DBG_BLOCK(level) if (debug >= level) +#endif + +#if defined(DEBUG) && DEBUG >= 1 +#undef TRACE1 +#define TRACE1(fmt, ...) TRACE(1, fmt , ## __VA_ARGS__) +#endif + +#if defined(DEBUG) && DEBUG >= 2 +#undef TRACE2 +#define TRACE2(fmt, ...) TRACE(2, fmt , ## __VA_ARGS__) +#endif + +#if defined(DEBUG) && DEBUG >= 3 +#undef TRACE3 +#define TRACE3(fmt, ...) TRACE(3, fmt , ## __VA_ARGS__) +#endif + +#if defined(DEBUG) && DEBUG >= 4 +#undef TRACE4 +#define TRACE4(fmt, ...) TRACE(4, fmt , ## __VA_ARGS__) +#endif + +#if defined(DEBUG) && DEBUG >= 5 +#undef TRACE5 +#define TRACE5(fmt, ...) TRACE(5, fmt , ## __VA_ARGS__) +#endif + +#if defined(DEBUG) && DEBUG >= 6 +#undef TRACE6 +#define TRACE6(fmt, ...) TRACE(6, fmt , ## __VA_ARGS__) +#endif + +#define ENTER1(fmt, ...) TRACE1("Enter " fmt , ## __VA_ARGS__) +#define ENTER2(fmt, ...) TRACE2("Enter " fmt , ## __VA_ARGS__) +#define ENTER3(fmt, ...) TRACE3("Enter " fmt , ## __VA_ARGS__) +#define ENTER4(fmt, ...) TRACE4("Enter " fmt , ## __VA_ARGS__) +#define ENTER5(fmt, ...) TRACE5("Enter " fmt , ## __VA_ARGS__) +#define ENTER6(fmt, ...) TRACE6("Enter " fmt , ## __VA_ARGS__) + +#define EXIT1(stmt) do { TRACE1("Exit"); stmt; } while(0) +#define EXIT2(stmt) do { TRACE2("Exit"); stmt; } while(0) +#define EXIT3(stmt) do { TRACE3("Exit"); stmt; } while(0) +#define EXIT4(stmt) do { TRACE4("Exit"); stmt; } while(0) +#define EXIT5(stmt) do { TRACE5("Exit"); stmt; } while(0) +#define EXIT6(stmt) do { TRACE6("Exit"); stmt; } while(0) + +#if defined(USB_DEBUG) +#define USBTRACE TRACE1 +#define USBENTER ENTER1 +#define USBEXIT EXIT1 +#else +#define USBTRACE(fmt, ...) +#define USBENTER(fmt, ...) +#define USBEXIT(stmt) stmt +#endif + +#if defined(EVENT_DEBUG) +#define EVENTTRACE TRACE1 +#define EVENTENTER ENTER1 +#define EVENTEXIT EXIT1 +#else +#define EVENTTRACE(fmt, ...) +#define EVENTENTER(fmt, ...) +#define EVENTEXIT(stmt) stmt +#endif + +#if defined(TIMER_DEBUG) +#define TIMERTRACE TRACE1 +#define TIMERENTER ENTER1 +#define TIMEREXIT EXIT1 +#else +#define TIMERTRACE(fmt, ...) +#define TIMERENTER(fmt, ...) +#define TIMEREXIT(stmt) stmt +#endif + +#if defined(IO_DEBUG) +#define IOTRACE TRACE1 +#define IOENTER ENTER1 +#define IOEXIT EXIT1 +#else +#define IOTRACE(fmt, ...) +#define IOENTER(fmt, ...) +#define IOEXIT(stmt) stmt +#endif + +#if defined(WORK_DEBUG) +#define WORKTRACE TRACE1 +#define WORKENTER ENTER1 +#define WORKEXIT EXIT1 +#else +#define WORKTRACE(fmt, ...) +#define WORKENTER(fmt, ...) +#define WORKEXIT(stmt) stmt +#endif + +#ifdef DEBUG +#define assert(expr) \ +do { \ + if (!(expr)) { \ + ERROR("assertion '%s' failed", #expr); \ + dump_stack(); \ + } \ +} while (0) +#else +#define assert(expr) do { } while (0) +#endif + +#endif // __KERNEL__ + +#endif // NDISWRAPPER_H --- linux-2.6.35.orig/ubuntu/ndiswrapper/loader.h +++ linux-2.6.35/ubuntu/ndiswrapper/loader.h @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _LOADER_H_ +#define _LOADER_H_ + +#include "ndiswrapper.h" + +#ifndef __KERNEL__ +#define __user +#endif + +struct load_driver_file { + char driver_name[MAX_DRIVER_NAME_LEN]; + char name[MAX_DRIVER_NAME_LEN]; + size_t size; + void __user *data; +}; + +struct load_device_setting { + char name[MAX_SETTING_NAME_LEN]; + char value[MAX_SETTING_VALUE_LEN]; +}; + +struct load_device { + int bus; + int vendor; + int device; + int subvendor; + int subdevice; + char conf_file_name[MAX_DRIVER_NAME_LEN]; + char driver_name[MAX_DRIVER_NAME_LEN]; +}; + +struct load_devices { + int count; + struct load_device *devices; +}; + +struct load_driver { + char name[MAX_DRIVER_NAME_LEN]; + char conf_file_name[MAX_DRIVER_NAME_LEN]; + unsigned int num_sys_files; + struct load_driver_file sys_files[MAX_DRIVER_PE_IMAGES]; + unsigned int num_settings; + struct load_device_setting settings[MAX_DEVICE_SETTINGS]; + unsigned int num_bin_files; + struct load_driver_file bin_files[MAX_DRIVER_BIN_FILES]; +}; + +#define WRAP_IOCTL_LOAD_DEVICE _IOW(('N' + 'd' + 'i' + 'S'), 0, \ + struct load_device *) +#define WRAP_IOCTL_LOAD_DRIVER _IOW(('N' + 'd' + 'i' + 'S'), 1, \ + struct load_driver *) +#define WRAP_IOCTL_LOAD_BIN_FILE _IOW(('N' + 'd' + 'i' + 'S'), 2, \ + struct load_driver_file *) + +#define WRAP_CMD_LOAD_DEVICE "load_device" +#define WRAP_CMD_LOAD_DRIVER "load_driver" +#define WRAP_CMD_LOAD_BIN_FILE "load_bin_file" + +int loader_init(void); +void loader_exit(void); + +#ifdef __KERNEL__ +struct wrap_device *load_wrap_device(struct load_device *load_device); +struct wrap_driver *load_wrap_driver(struct wrap_device *device); +struct wrap_bin_file *get_bin_file(char *bin_file_name); +void free_bin_file(struct wrap_bin_file *bin_file); +void unload_wrap_driver(struct wrap_driver *driver); +void unload_wrap_device(struct wrap_device *wd); +struct wrap_device *get_wrap_device(void *dev, int bus_type); + +extern struct semaphore loader_mutex; +#endif + +#endif /* LOADER_H */ + --- linux-2.6.35.orig/ubuntu/ndiswrapper/crt.c +++ linux-2.6.35/ubuntu/ndiswrapper/crt.c @@ -0,0 +1,578 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "ntoskernel.h" +#include "crt_exports.h" + +#ifdef CONFIG_X86_64 +/* Windows long is 32-bit, so strip single 'l' in integer formats */ +static void strip_l_modifier(char *str) +{ + char *ptr = str; + int in_format = 0; + char *lptr = NULL; + char last = 0; + char *end_ptr; + char *wptr; + + /* Replace single 'l' inside integer formats with '\0' */ + for (ptr = str; *ptr; ptr++) { + if (!in_format) { + if (*ptr == '%') + in_format = 1; + last = *ptr; + continue; + } + switch (*ptr) { + case 'd': + case 'i': + case 'o': + case 'u': + case 'x': + case 'X': + case 'p': + case 'n': + case 'm': + if (lptr) { + *lptr = '\0'; + lptr = NULL; + } + in_format = 0; + break; + case 'c': + case 'C': + case 's': + case 'S': + case 'f': + case 'e': + case 'E': + case 'g': + case 'G': + case 'a': + case 'A': + lptr = NULL; + in_format = 0; + break; + case '%': + lptr = NULL; + if (last == '%') + in_format = 0; + else + in_format = 1; /* ignore previous junk */ + break; + case 'l': + if (last == 'l') + lptr = NULL; + else + lptr = ptr; + break; + default: + break; + } + last = *ptr; + } + + /* Purge zeroes from the resulting string */ + end_ptr = ptr; + wptr = str; + for (ptr = str; ptr < end_ptr; ptr++) + if (*ptr != 0) + *(wptr++) = *ptr; + *wptr = 0; +} + +/* + * va_list on x86_64 Linux is designed to allow passing arguments in registers + * even to variadic functions. va_list is a structure holding pointers to the + * register save area, which holds the arguments passed in registers, and to + * the stack, which may have the arguments that did not fit the registers. + * va_list also holds offsets in the register save area for the next general + * purpose and floating point registers that the next va_arg() would fetch. + * + * Unlike Linux, the Windows va_list is just a pointer to the stack. No + * arguments are passed in the registers. That's why we construct the Linux + * va_list so that the register save area is never used. For that goal, we set + * the offsets to the maximal allowed values, meaning that the arguments passed + * in the registers have been exhausted. The values are 48 for general purpose + * registers (6 registers, 8 bytes each) and 304 for floating point registers + * (16 registers, 16 bytes each, on top of general purpose register). + */ + +struct x86_64_va_list { + int gp_offset; + int fp_offset; + void *overflow_arg_area; + void *reg_save_area; +}; + +#define VA_LIST_DECL(_args) \ + va_list _args##new; \ + struct x86_64_va_list *_args##x; +#define VA_LIST_PREP(_args) \ +do { \ + _args##x = (struct x86_64_va_list *)&_args##new; \ + _args##x->gp_offset = 6 * 8; /* GP registers exhausted */ \ + _args##x->fp_offset = 6 * 8 + 16 * 16; /* FP registers exhausted */ \ + _args##x->overflow_arg_area = (void *)_args; \ + _args##x->reg_save_area = NULL; \ +} while (0) +#define VA_LIST_CONV(_args) (_args##new) +#define VA_LIST_FREE(_args) +#define FMT_DECL(_fmt) \ + char *_fmt##copy; \ + int _fmt##len; +#define FMT_PREP(_fmt) \ +do { \ + _fmt##len = strlen(format) + 1; \ + _fmt##copy = kmalloc(_fmt##len, GFP_KERNEL); \ + if (_fmt##copy) { \ + memcpy(_fmt##copy, format, _fmt##len); \ + strip_l_modifier(_fmt##copy); \ + } \ +} while (0) +#define FMT_CONV(_fmt) (_fmt##copy ? _fmt##copy : format) +#define FMT_FREE(_fmt) kfree(_fmt##copy) + +#else /* !CONFIG_X86_64 */ + +#define VA_LIST_DECL(_args) +#define VA_LIST_PREP(_args) +#define VA_LIST_CONV(_args) (_args) +#define VA_LIST_FREE(_args) +#define FMT_DECL(_fmt) +#define FMT_PREP(_fmt) +#define FMT_CONV(_fmt) (format) +#define FMT_FREE(_fmt) + +#endif /* !CONFIG_X86_64 */ + +noregparm INT WIN_FUNC(_win_sprintf,12) + (char *buf, const char *format, ...) +{ + va_list args; + int res; + FMT_DECL(format) + + FMT_PREP(format); + va_start(args, format); + res = vsprintf(buf, FMT_CONV(format), args); + va_end(args); + FMT_FREE(format); + + TRACE2("buf: %p: %s", buf, buf); + return res; +} + +noregparm INT WIN_FUNC(swprintf,12) + (wchar_t *buf, const wchar_t *format, ...) +{ + TODO(); + EXIT2(return 0); +} + +noregparm INT WIN_FUNC(_win_vsprintf,3) + (char *str, const char *format, va_list ap) +{ + INT i; + VA_LIST_DECL(ap) + FMT_DECL(format) + + VA_LIST_PREP(ap); + FMT_PREP(format); + + i = vsprintf(str, FMT_CONV(format), VA_LIST_CONV(ap)); + TRACE2("str: %p: %s", str, str); + + FMT_FREE(format); + VA_LIST_FREE(ap); + EXIT2(return i); +} + +noregparm INT WIN_FUNC(_win_snprintf,12) + (char *buf, SIZE_T count, const char *format, ...) +{ + va_list args; + int res; + FMT_DECL(format) + + FMT_PREP(format); + va_start(args, format); + res = vsnprintf(buf, count, FMT_CONV(format), args); + va_end(args); + TRACE2("buf: %p: %s", buf, buf); + + FMT_FREE(format); + return res; +} + +noregparm INT WIN_FUNC(_win__snprintf,12) + (char *buf, SIZE_T count, const char *format, ...) +{ + va_list args; + int res; + FMT_DECL(format) + + FMT_PREP(format); + va_start(args, format); + res = vsnprintf(buf, count, FMT_CONV(format), args); + va_end(args); + TRACE2("buf: %p: %s", buf, buf); + + FMT_FREE(format); + return res; +} + +noregparm INT WIN_FUNC(_win_vsnprintf,4) + (char *str, SIZE_T size, const char *format, va_list ap) +{ + INT i; + VA_LIST_DECL(ap) + FMT_DECL(format) + + VA_LIST_PREP(ap); + FMT_PREP(format); + + i = vsnprintf(str, size, FMT_CONV(format), VA_LIST_CONV(ap)); + TRACE2("str: %p: %s", str, str); + + FMT_FREE(format); + VA_LIST_FREE(ap); + EXIT2(return i); +} + +noregparm INT WIN_FUNC(_win__vsnprintf,4) + (char *str, SIZE_T size, const char *format, va_list ap) +{ + INT i; + VA_LIST_DECL(ap) + FMT_DECL(format) + + VA_LIST_PREP(ap); + FMT_PREP(format); + + i = vsnprintf(str, size, FMT_CONV(format), VA_LIST_CONV(ap)); + TRACE2("str: %p: %s", str, str); + + FMT_FREE(format); + VA_LIST_FREE(ap); + EXIT2(return i); +} + +noregparm char *WIN_FUNC(_win_strncpy,3) + (char *dst, char *src, SIZE_T n) +{ + return strncpy(dst, src, n); +} + +noregparm SIZE_T WIN_FUNC(_win_strlen,1) + (const char *s) +{ + return strlen(s); +} + +noregparm INT WIN_FUNC(_win_strncmp,3) + (const char *s1, const char *s2, SIZE_T n) +{ + return strncmp(s1, s2, n); +} + +noregparm INT WIN_FUNC(_win_strcmp,2) + (const char *s1, const char *s2) +{ + return strcmp(s1, s2); +} + +noregparm INT WIN_FUNC(_win_stricmp,2) + (const char *s1, const char *s2) +{ + return stricmp(s1, s2); +} + +noregparm char *WIN_FUNC(_win_strncat,3) + (char *dest, const char *src, SIZE_T n) +{ + return strncat(dest, src, n); +} + +noregparm INT WIN_FUNC(_win_wcscmp,2) + (const wchar_t *s1, const wchar_t *s2) +{ + while (*s1 && *s1 == *s2) { + s1++; + s2++; + } + return *s1 - *s2; +} + +noregparm INT WIN_FUNC(_win_wcsicmp,2) + (const wchar_t *s1, const wchar_t *s2) +{ + while (*s1 && tolower((char)*s1) == tolower((char)*s2)) { + s1++; + s2++; + } + return tolower((char)*s1) - tolower((char)*s2); +} + +noregparm SIZE_T WIN_FUNC(_win_wcslen,1) + (const wchar_t *s) +{ + const wchar_t *t = s; + while (*t) + t++; + return t - s; +} + +noregparm wchar_t *WIN_FUNC(_win_wcsncpy,3) + (wchar_t *dest, const wchar_t *src, SIZE_T n) +{ + const wchar_t *s; + wchar_t *d; + s = src + n; + d = dest; + while (src < s && (*d++ = *src++)) + ; + if (s > src) + memset(d, 0, (s - src) * sizeof(wchar_t)); + return dest; +} + +noregparm wchar_t *WIN_FUNC(_win_wcscpy,2) + (wchar_t *dest, const wchar_t *src) +{ + wchar_t *d = dest; + while ((*d++ = *src++)) + ; + return dest; +} + +noregparm wchar_t *WIN_FUNC(_win_wcscat,2) + (wchar_t *dest, const wchar_t *src) +{ + wchar_t *d; + d = dest; + while (*d) + d++; + while ((*d++ = *src++)) + ; + return dest; +} + +noregparm INT WIN_FUNC(_win_towupper,1) + (wchar_t c) +{ + return toupper(c); +} + +noregparm INT WIN_FUNC(_win_towlower,1) + (wchar_t c) +{ + return tolower(c); +} + +noregparm INT WIN_FUNC(_win_tolower,1) + (INT c) +{ + return tolower(c); +} + +noregparm INT WIN_FUNC(_win_toupper,1) + (INT c) +{ + return toupper(c); +} + +noregparm void *WIN_FUNC(_win_strcpy,2) + (void *to, const void *from) +{ + return strcpy(to, from); +} + +noregparm char *WIN_FUNC(_win_strstr,2) + (const char *s1, const char *s2) +{ + return strstr(s1, s2); +} + +noregparm char *WIN_FUNC(_win_strchr,2) + (const char *s, int c) +{ + return strchr(s, c); +} + +noregparm char *WIN_FUNC(_win_strrchr,2) + (const char *s, int c) +{ + return strrchr(s, c); +} + +noregparm void *WIN_FUNC(_win_memmove,3) + (void *to, void *from, SIZE_T count) +{ + return memmove(to, from, count); +} + +noregparm void *WIN_FUNC(_win_memchr,3) + (const void *s, INT c, SIZE_T n) +{ + return memchr(s, c, n); +} + +noregparm void *WIN_FUNC(_win_memcpy,3) + (void *to, const void *from, SIZE_T n) +{ + return memcpy(to, from, n); +} + +noregparm void *WIN_FUNC(_win_memset,3) + (void *s, char c, SIZE_T count) +{ + return memset(s, c, count); +} + +noregparm int WIN_FUNC(_win_memcmp,3) + (void *s1, void *s2, SIZE_T n) +{ + return memcmp(s1, s2, n); +} + +noregparm void WIN_FUNC(_win_srand,1) + (UINT seed) +{ + net_srandom(seed); +} + +noregparm int WIN_FUNC(rand,0) + (void) +{ + char buf[6]; + int i, n; + + get_random_bytes(buf, sizeof(buf)); + for (n = i = 0; i < sizeof(buf) ; i++) + n += buf[i]; + return n; +} + +noregparm int WIN_FUNC(_win_atoi,1) + (const char *ptr) +{ + int i = simple_strtol(ptr, NULL, 10); + return i; +} + +noregparm int WIN_FUNC(_win_isprint,1) + (int c) +{ + return isprint(c); +} + +wstdcall s64 WIN_FUNC(_alldiv,2) + (s64 a, s64 b) +{ + return a / b; +} + +wstdcall u64 WIN_FUNC(_aulldiv,2) + (u64 a, u64 b) +{ + return a / b; +} + +wstdcall s64 WIN_FUNC(_allmul,2) + (s64 a, s64 b) +{ + return a * b; +} + +wstdcall u64 WIN_FUNC(_aullmul,2) + (u64 a, u64 b) +{ + return a * b; +} + +wstdcall s64 WIN_FUNC(_allrem,2) + (s64 a, s64 b) +{ + return a % b; +} + +wstdcall u64 WIN_FUNC(_aullrem,2) + (u64 a, u64 b) +{ + return a % b; +} + +__attribute__((regparm(3))) s64 WIN_FUNC(_allshl,2) + (s64 a, u8 b) +{ + return a << b; +} + +__attribute__((regparm(3))) u64 WIN_FUNC(_aullshl,2) + (u64 a, u8 b) +{ + return a << b; +} + +__attribute__((regparm(3))) s64 WIN_FUNC(_allshr,2) + (s64 a, u8 b) +{ + return a >> b; +} + +__attribute__((regparm(3))) u64 WIN_FUNC(_aullshr,2) + (u64 a, u8 b) +{ + return a >> b; +} + +int stricmp(const char *s1, const char *s2) +{ + while (*s1 && tolower(*s1) == tolower(*s2)) { + s1++; + s2++; + } + return *s1 - *s2; +} + +void dump_bytes(const char *ctx, const u8 *from, int len) +{ + int i, j; + u8 *buf; + + buf = kmalloc(len * 3 + 1, irql_gfp()); + if (!buf) { + ERROR("couldn't allocate memory"); + return; + } + for (i = j = 0; i < len; i++, j += 3) { + sprintf(&buf[j], "%02x ", from[i]); + } + buf[j] = 0; + printk(KERN_DEBUG "%s: %p: %s\n", ctx, from, buf); + kfree(buf); +} + +int crt_init(void) +{ + return 0; +} + +/* called when module is being removed */ +void crt_exit(void) +{ + EXIT4(return); +} --- linux-2.6.35.orig/ubuntu/ndiswrapper/pnp.h +++ linux-2.6.35/ubuntu/ndiswrapper/pnp.h @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2005 Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _PNP_H_ +#define _PNP_H_ + +#include "ntoskernel.h" +#include "ndis.h" +#include "wrapndis.h" + +NTSTATUS pnp_start_device(struct wrap_device *wd); +NTSTATUS pnp_stop_device(struct wrap_device *wd); +NTSTATUS pnp_remove_device(struct wrap_device *wd); + +int wrap_pnp_start_pci_device(struct pci_dev *pdev, + const struct pci_device_id *ent); +void __devexit wrap_pnp_remove_pci_device(struct pci_dev *pdev); +int wrap_pnp_suspend_pci_device(struct pci_dev *pdev, pm_message_t state); +int wrap_pnp_resume_pci_device(struct pci_dev *pdev); + +#ifdef ENABLE_USB +int wrap_pnp_start_usb_device(struct usb_interface *intf, + const struct usb_device_id *usb_id); +void wrap_pnp_remove_usb_device(struct usb_interface *intf); +int wrap_pnp_suspend_usb_device(struct usb_interface *intf, + pm_message_t state); +int wrap_pnp_resume_usb_device(struct usb_interface *intf); +#endif + +#endif --- linux-2.6.35.orig/ubuntu/ndiswrapper/lin2win.h +++ linux-2.6.35/ubuntu/ndiswrapper/lin2win.h @@ -0,0 +1,202 @@ +/* + * Copyright (C) 2006 Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifdef CONFIG_X86_64 + +/* Windows functions must have 32 bytes of shadow space for arguments + * above return address, irrespective of number of args. So argc >= 4 + */ + +#define alloc_win_stack_frame(argc) \ + "sub $(" #argc "+1)*8, %%rsp\n\t" +#define free_win_stack_frame(argc) \ + "add $(" #argc "+1)*8, %%rsp\n\t" + +/* m is index of Windows arg required; Windows arg 1 should be at + * 0(%rsp), arg 2 at 8(%rsp) and so on after the frame is allocated. +*/ + +#define lin2win_win_arg(m) "(" #m "-1)*8(%%rsp)" + +/* args for Windows function must be in clobber / output list */ + +#define outputs() \ + "=a" (_ret), "=c" (_dummy), "=d" (_dummy), \ + "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11) + +#define clobbers() "cc" + +#define LIN2WIN0(func) \ +({ \ + u64 _ret, _dummy; \ + register u64 r8 __asm__("r8"); \ + register u64 r9 __asm__("r9"); \ + register u64 r10 __asm__("r10"); \ + register u64 r11 __asm__("r11"); \ + __asm__ __volatile__( \ + alloc_win_stack_frame(4) \ + "callq *%[fptr]\n\t" \ + free_win_stack_frame(4) \ + : outputs() \ + : [fptr] "r" (func) \ + : clobbers()); \ + _ret; \ +}) + +#define LIN2WIN1(func, arg1) \ +({ \ + u64 _ret, _dummy; \ + register u64 r8 __asm__("r8"); \ + register u64 r9 __asm__("r9"); \ + register u64 r10 __asm__("r10"); \ + register u64 r11 __asm__("r11"); \ + __asm__ __volatile__( \ + alloc_win_stack_frame(4) \ + "callq *%[fptr]\n\t" \ + free_win_stack_frame(4) \ + : outputs() \ + : "c" (arg1), [fptr] "r" (func) \ + : clobbers()); \ + _ret; \ +}) + +#define LIN2WIN2(func, arg1, arg2) \ +({ \ + u64 _ret, _dummy; \ + register u64 r8 __asm__("r8"); \ + register u64 r9 __asm__("r9"); \ + register u64 r10 __asm__("r10"); \ + register u64 r11 __asm__("r11"); \ + __asm__ __volatile__( \ + alloc_win_stack_frame(4) \ + "callq *%[fptr]\n\t" \ + free_win_stack_frame(4) \ + : outputs() \ + : "c" (arg1), "d" (arg2), [fptr] "r" (func) \ + : clobbers()); \ + _ret; \ +}) + +#define LIN2WIN3(func, arg1, arg2, arg3) \ +({ \ + u64 _ret, _dummy; \ + register u64 r8 __asm__("r8") = (u64)arg3; \ + register u64 r9 __asm__("r9"); \ + register u64 r10 __asm__("r10"); \ + register u64 r11 __asm__("r11"); \ + __asm__ __volatile__( \ + alloc_win_stack_frame(4) \ + "callq *%[fptr]\n\t" \ + free_win_stack_frame(4) \ + : outputs() \ + : "c" (arg1), "d" (arg2), "r" (r8), \ + [fptr] "r" (func) \ + : clobbers()); \ + _ret; \ +}) + +#define LIN2WIN4(func, arg1, arg2, arg3, arg4) \ +({ \ + u64 _ret, _dummy; \ + register u64 r8 __asm__("r8") = (u64)arg3; \ + register u64 r9 __asm__("r9") = (u64)arg4; \ + register u64 r10 __asm__("r10"); \ + register u64 r11 __asm__("r11"); \ + __asm__ __volatile__( \ + alloc_win_stack_frame(4) \ + "callq *%[fptr]\n\t" \ + free_win_stack_frame(4) \ + : outputs() \ + : "c" (arg1), "d" (arg2), "r" (r8), "r" (r9), \ + [fptr] "r" (func) \ + : clobbers()); \ + _ret; \ +}) + +#define LIN2WIN5(func, arg1, arg2, arg3, arg4, arg5) \ +({ \ + u64 _ret, _dummy; \ + register u64 r8 __asm__("r8") = (u64)arg3; \ + register u64 r9 __asm__("r9") = (u64)arg4; \ + register u64 r10 __asm__("r10"); \ + register u64 r11 __asm__("r11"); \ + __asm__ __volatile__( \ + alloc_win_stack_frame(5) \ + "movq %[rarg5], " lin2win_win_arg(5) "\n\t" \ + "callq *%[fptr]\n\t" \ + free_win_stack_frame(5) \ + : outputs() \ + : "c" (arg1), "d" (arg2), "r" (r8), "r" (r9), \ + [rarg5] "ri" ((u64)arg5), \ + [fptr] "r" (func) \ + : clobbers()); \ + _ret; \ +}) + +#define LIN2WIN6(func, arg1, arg2, arg3, arg4, arg5, arg6) \ +({ \ + u64 _ret, _dummy; \ + register u64 r8 __asm__("r8") = (u64)arg3; \ + register u64 r9 __asm__("r9") = (u64)arg4; \ + register u64 r10 __asm__("r10"); \ + register u64 r11 __asm__("r11"); \ + __asm__ __volatile__( \ + alloc_win_stack_frame(6) \ + "movq %[rarg5], " lin2win_win_arg(5) "\n\t" \ + "movq %[rarg6], " lin2win_win_arg(6) "\n\t" \ + "callq *%[fptr]\n\t" \ + free_win_stack_frame(6) \ + : outputs() \ + : "c" (arg1), "d" (arg2), "r" (r8), "r" (r9), \ + [rarg5] "ri" ((u64)arg5), [rarg6] "ri" ((u64)arg6), \ + [fptr] "r" (func) \ + : clobbers()); \ + _ret; \ +}) + +#else // CONFIG_X86_64 + +#define LIN2WIN1(func, arg1) \ +({ \ + TRACE6("calling %p", func); \ + func(arg1); \ +}) +#define LIN2WIN2(func, arg1, arg2) \ +({ \ + TRACE6("calling %p", func); \ + func(arg1, arg2); \ +}) +#define LIN2WIN3(func, arg1, arg2, arg3) \ +({ \ + TRACE6("calling %p", func); \ + func(arg1, arg2, arg3); \ +}) +#define LIN2WIN4(func, arg1, arg2, arg3, arg4) \ +({ \ + TRACE6("calling %p", func); \ + func(arg1, arg2, arg3, arg4); \ +}) +#define LIN2WIN5(func, arg1, arg2, arg3, arg4, arg5) \ +({ \ + TRACE6("calling %p", func); \ + func(arg1, arg2, arg3, arg4, arg5); \ +}) +#define LIN2WIN6(func, arg1, arg2, arg3, arg4, arg5, arg6) \ +({ \ + TRACE6("calling %p", func); \ + func(arg1, arg2, arg3, arg4, arg5, arg6); \ +}) + +#endif // CONFIG_X86_64 --- linux-2.6.35.orig/ubuntu/ndiswrapper/ntoskernel.h +++ linux-2.6.35/ubuntu/ndiswrapper/ntoskernel.h @@ -0,0 +1,1157 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _NTOSKERNEL_H_ +#define _NTOSKERNEL_H_ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if !defined(CONFIG_X86) && !defined(CONFIG_X86_64) +#error "this module is for x86 or x86_64 architectures only" +#endif + +/* Interrupt backwards compatibility stuff */ +#include +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) +#ifndef IRQ_HANDLED +#define IRQ_HANDLED +#define IRQ_NONE +#define irqreturn_t void +#endif +#endif /* Linux < 2.6.29 */ + +/* pci functions in 2.6 kernels have problems allocating dma buffers, + * but seem to work fine with dma functions + */ +#include + +#define PCI_DMA_ALLOC_COHERENT(pci_dev,size,dma_handle) \ + dma_alloc_coherent(&pci_dev->dev,size,dma_handle, \ + GFP_KERNEL | __GFP_REPEAT) +#define PCI_DMA_FREE_COHERENT(pci_dev,size,cpu_addr,dma_handle) \ + dma_free_coherent(&pci_dev->dev,size,cpu_addr,dma_handle) +#define PCI_DMA_MAP_SINGLE(pci_dev,addr,size,direction) \ + dma_map_single(&pci_dev->dev,addr,size,direction) +#define PCI_DMA_UNMAP_SINGLE(pci_dev,dma_handle,size,direction) \ + dma_unmap_single(&pci_dev->dev,dma_handle,size,direction) +#define MAP_SG(pci_dev, sglist, nents, direction) \ + dma_map_sg(&pci_dev->dev, sglist, nents, direction) +#define UNMAP_SG(pci_dev, sglist, nents, direction) \ + dma_unmap_sg(&pci_dev->dev, sglist, nents, direction) +#define PCI_DMA_MAP_ERROR(dma_addr) dma_mapping_error(dma_addr) + + +#if defined(CONFIG_NET_RADIO) && !defined(CONFIG_WIRELESS_EXT) +#define CONFIG_WIRELESS_EXT +#endif + +#define prepare_wait_condition(task, var, value) \ +do { \ + var = value; \ + task = current; \ + barrier(); \ +} while (0) + +/* Wait in wait_state (e.g., TASK_INTERRUPTIBLE) for condition to + * become true; timeout is either jiffies (> 0) to wait or 0 to wait + * forever. + * When timeout == 0, return value is + * > 0 if condition becomes true, or + * < 0 if signal is pending on the thread. + * When timeout > 0, return value is + * > 0 if condition becomes true before timeout, + * < 0 if signal is pending on the thread before timeout, or + * 0 if timedout (condition may have become true at the same time) + */ + +#define wait_condition(condition, timeout, wait_state) \ +({ \ + long ret = timeout ? timeout : 1; \ + while (1) { \ + if (signal_pending(current)) { \ + ret = -ERESTARTSYS; \ + break; \ + } \ + set_current_state(wait_state); \ + if (condition) { \ + __set_current_state(TASK_RUNNING); \ + break; \ + } \ + if (timeout) { \ + ret = schedule_timeout(ret); \ + if (!ret) \ + break; \ + } else \ + schedule(); \ + } \ + ret; \ +}) + +#ifdef WRAP_WQ + +struct workqueue_struct; + +struct workqueue_thread { + spinlock_t lock; + struct task_struct *task; + struct completion *completion; + char name[16]; + int pid; + /* whether any work_structs pending? <0 implies quit */ + s8 pending; + /* list of work_structs pending */ + struct list_head work_list; +}; + +typedef struct workqueue_struct { + u8 singlethread; + u8 qon; + int num_cpus; + struct workqueue_thread threads[0]; +} workqueue_struct_t; + +typedef struct { + struct list_head list; + void (*func)(void *data); + void *data; + /* whether/on which thread scheduled */ + struct workqueue_thread *thread; +} work_struct_t; + +#define initialize_work(work, pfunc, pdata) \ + do { \ + (work)->func = (pfunc); \ + (work)->data = (pdata); \ + (work)->thread = NULL; \ + } while (0) + +#undef create_singlethread_workqueue +#define create_singlethread_workqueue(name) wrap_create_wq(name, 1, 0) +#undef create_workqueue +#define create_workqueue(name) wrap_create_wq(name, 0, 0) +#undef destroy_workqueue +#define destroy_workqueue wrap_destroy_wq +#undef queue_work +#define queue_work wrap_queue_work +#undef flush_workqueue +#define flush_workqueue wrap_flush_wq + +workqueue_struct_t *wrap_create_wq(const char *name, u8 singlethread, u8 freeze); +void wrap_destroy_wq_on(workqueue_struct_t *workq, int cpu); +void wrap_destroy_wq(workqueue_struct_t *workq); +int wrap_queue_work_on(workqueue_struct_t *workq, work_struct_t *work, + int cpu); +int wrap_queue_work(workqueue_struct_t *workq, work_struct_t *work); +void wrap_cancel_work(work_struct_t *work); +void wrap_flush_wq_on(workqueue_struct_t *workq, int cpu); +void wrap_flush_wq(workqueue_struct_t *workq); +typedef void *worker_param_t; +#define worker_param_data(param, type, member) param + +#else // WRAP_WQ + +typedef struct workqueue_struct workqueue_struct_t; +typedef struct work_struct work_struct_t; + +#if defined(INIT_WORK_NAR) || defined(INIT_DELAYED_WORK_DEFERRABLE) +#define initialize_work(work, func, data) INIT_WORK(work, func) +typedef struct work_struct *worker_param_t; +#define worker_param_data(param, type, member) \ + container_of(param, type, member) +#else +#define initialize_work(work, func, data) INIT_WORK(work, func, data) +typedef void *worker_param_t; +#define worker_param_data(param, type, member) param +#endif // INIT_WORK_NAR + +#endif // WRAP_WQ + +struct nt_thread *wrap_worker_init(workqueue_struct_t *wq); + +#ifdef module_param +#define WRAP_MODULE_PARM_INT(name, perm) module_param(name, int, perm) +#define WRAP_MODULE_PARM_STRING(name, perm) module_param(name, charp, perm) +#else +#define WRAP_MODULE_PARM_INT(name, perm) MODULE_PARM(name, "i") +#define WRAP_MODULE_PARM_STRING(name, perm) MODULE_PARM(name, "s") +#endif + +#ifndef LOCK_PREFIX +#ifdef LOCK +#define LOCK_PREFIX LOCK +#else +#ifdef CONFIG_SMP +#define LOCK_PREFIX "lock ; " +#else +#define LOCK_PREFIX "" +#endif +#endif +#endif + +#ifndef NETDEV_TX_OK +#define NETDEV_TX_OK 0 +#endif + +#ifndef NETDEV_TX_BUSY +#define NETDEV_TX_BUSY 1 +#endif + +#ifndef CHECKSUM_HW +#define CHECKSUM_HW CHECKSUM_PARTIAL +#endif + +#ifndef offset_in_page +#define offset_in_page(p) ((unsigned long)(p) & ~PAGE_MASK) +#endif + +#ifndef PMSG_SUSPEND +#ifdef PM_SUSPEND +/* this is not correct - the value of PM_SUSPEND is different from + * PMSG_SUSPEND, but ndiswrapper doesn't care about the value when + * suspending */ +#define PMSG_SUSPEND PM_SUSPEND +#define PSMG_ON PM_ON +#else +typedef u32 pm_message_t; +#define PMSG_SUSPEND 2 +#define PMSG_ON 0 +#endif +#endif + +#ifndef PCI_D0 +#define PCI_D0 0 +#endif + +#ifndef PCI_D3hot +#define PCI_D3hot 3 +#endif + +#ifndef PCI_D3cold +#define PCI_D3cold 3 +#endif + +#ifndef PM_EVENT_SUSPEND +#define PM_EVENT_SUSPEND 2 +#endif + +#if !defined(HAVE_NETDEV_PRIV) +#define netdev_priv(dev) ((dev)->priv) +#endif + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18) +#define ISR_PT_REGS_PARAM_DECL +#define ISR_PT_REGS_ARG +#else +#define ISR_PT_REGS_PARAM_DECL , struct pt_regs *regs +#define ISR_PT_REGS_ARG , NULL +#endif + +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) +#define for_each_possible_cpu(_cpu) for_each_cpu(_cpu) +#endif + +#ifndef flush_icache_range +#define flush_icache_range(start, end) do { } while (0) +#endif + +#ifndef CHECKSUM_PARTIAL +#define CHECKSUM_PARTIAL CHECKSUM_HW +#endif + +#ifndef IRQF_SHARED +#define IRQF_SHARED SA_SHIRQ +#endif + +#define memcpy_skb(skb, from, length) \ + memcpy(skb_put(skb, length), from, length) + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) +#ifndef DMA_BIT_MASK +#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) +#endif +#endif + +#ifndef __GFP_DMA32 +#define __GFP_DMA32 GFP_DMA +#endif + +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,22) +#define wrap_kmem_cache_create(name, size, align, flags) \ + kmem_cache_create(name, size, align, flags, NULL, NULL) +#else +#define wrap_kmem_cache_create(name, size, align, flags) \ + kmem_cache_create(name, size, align, flags, NULL) +#endif + +#include "winnt_types.h" +#include "ndiswrapper.h" +#include "pe_linker.h" +#include "wrapmem.h" +#include "lin2win.h" +#include "loader.h" + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) +static inline void netif_tx_lock(struct net_device *dev) +{ + spin_lock(&dev->xmit_lock); +} +static inline void netif_tx_unlock(struct net_device *dev) +{ + spin_unlock(&dev->xmit_lock); +} +static inline void netif_tx_lock_bh(struct net_device *dev) +{ + spin_lock_bh(&dev->xmit_lock); +} +static inline void netif_tx_unlock_bh(struct net_device *dev) +{ + spin_unlock_bh(&dev->xmit_lock); +} +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) +static inline void netif_poll_enable(struct net_device *dev) +{ +} +static inline void netif_poll_disable(struct net_device *dev) +{ +} +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) +#define proc_net_root init_net.proc_net +#else +#define proc_net_root proc_net +#endif + +/* TICK is 100ns */ +#define TICKSPERSEC 10000000 +#define TICKSPERMSEC 10000 +#define SECSPERDAY 86400 +#define TICKSPERJIFFY ((TICKSPERSEC + HZ - 1) / HZ) + +#define int_div_round(x, y) (((x) + (y - 1)) / (y)) + +/* 1601 to 1970 is 369 years plus 89 leap days */ +#define SECS_1601_TO_1970 ((369 * 365 + 89) * (u64)SECSPERDAY) +#define TICKS_1601_TO_1970 (SECS_1601_TO_1970 * TICKSPERSEC) + +/* 100ns units to HZ; if sys_time is negative, relative to current + * clock, otherwise from year 1601 */ +#define SYSTEM_TIME_TO_HZ(sys_time) \ + (((sys_time) <= 0) ? \ + int_div_round(((u64)HZ * (-(sys_time))), TICKSPERSEC) : \ + int_div_round(((s64)HZ * ((sys_time) - ticks_1601())), TICKSPERSEC)) + +#define MSEC_TO_HZ(ms) int_div_round((ms * HZ), 1000) +#define USEC_TO_HZ(us) int_div_round((us * HZ), 1000000) + +extern u64 wrap_ticks_to_boot; + +static inline u64 ticks_1601(void) +{ + return wrap_ticks_to_boot + (u64)jiffies * TICKSPERJIFFY; +} + +typedef void (*generic_func)(void); + +struct wrap_export { + const char *name; + generic_func func; +}; + +#ifdef CONFIG_X86_64 + +#define WIN_SYMBOL(name, argc) \ + {#name, (generic_func) win2lin_ ## name ## _ ## argc} +#define WIN_WIN_SYMBOL(name, argc) \ + {#name, (generic_func) win2lin__win_ ## name ## _ ## argc} +#define WIN_FUNC_DECL(name, argc) \ + extern typeof(name) win2lin_ ## name ## _ ## argc; +#define WIN_FUNC_PTR(name, argc) win2lin_ ## name ## _ ## argc + +#else + +#define WIN_SYMBOL(name, argc) {#name, (generic_func)name} +#define WIN_WIN_SYMBOL(name, argc) {#name, (generic_func)_win_ ## name} +#define WIN_FUNC_DECL(name, argc) +#define WIN_FUNC_PTR(name, argc) name + +#endif + +#define WIN_FUNC(name, argc) name +/* map name s to f - if f is different from s */ +#define WIN_SYMBOL_MAP(s, f) + +#define POOL_TAG(A, B, C, D) \ + ((ULONG)((A) + ((B) << 8) + ((C) << 16) + ((D) << 24))) + +struct pe_image { + char name[MAX_DRIVER_NAME_LEN]; + UINT (*entry)(struct driver_object *, struct unicode_string *) wstdcall; + void *image; + int size; + int type; + + IMAGE_NT_HEADERS *nt_hdr; + IMAGE_OPTIONAL_HEADER *opt_hdr; +}; + +struct ndis_mp_block; + +struct wrap_timer { + struct nt_slist slist; + struct timer_list timer; + struct nt_timer *nt_timer; + long repeat; +#ifdef TIMER_DEBUG + unsigned long wrap_timer_magic; +#endif +}; + +struct ntos_work_item { + struct nt_list list; + void *arg1; + void *arg2; + NTOS_WORK_FUNC func; +}; + +struct wrap_device_setting { + struct nt_list list; + char name[MAX_SETTING_NAME_LEN]; + char value[MAX_SETTING_VALUE_LEN]; + void *encoded; +}; + +struct wrap_bin_file { + char name[MAX_DRIVER_NAME_LEN]; + size_t size; + void *data; +}; + +#define WRAP_DRIVER_CLIENT_ID 1 + +struct wrap_driver { + struct nt_list list; + struct driver_object *drv_obj; + char name[MAX_DRIVER_NAME_LEN]; + char version[MAX_SETTING_VALUE_LEN]; + unsigned short num_pe_images; + struct pe_image pe_images[MAX_DRIVER_PE_IMAGES]; + unsigned short num_bin_files; + struct wrap_bin_file *bin_files; + struct nt_list wrap_devices; + struct nt_list settings; + int dev_type; + struct ndis_driver *ndis_driver; +}; + +enum hw_status { + HW_INITIALIZED = 1, HW_SUSPENDED, HW_HALTED, HW_PRESENT, +}; + +struct wrap_device { + /* first part is (de)initialized once by loader */ + struct nt_list list; + int dev_bus; + int vendor; + int device; + int subvendor; + int subdevice; + char conf_file_name[MAX_DRIVER_NAME_LEN]; + char driver_name[MAX_DRIVER_NAME_LEN]; + struct wrap_driver *driver; + struct nt_list settings; + + /* rest should be (de)initialized when a device is + * (un)plugged */ + struct cm_resource_list *resource_list; + unsigned long hw_status; + struct device_object *pdo; + union { + struct { + struct pci_dev *pdev; + enum device_power_state wake_state; + } pci; + struct { + struct usb_device *udev; + struct usb_interface *intf; + int num_alloc_urbs; + struct nt_list wrap_urb_list; + } usb; + }; + union { + struct ndis_device *wnd; + }; +}; + +#define wrap_is_pci_bus(dev_bus) \ + (WRAP_BUS(dev_bus) == WRAP_PCI_BUS || \ + WRAP_BUS(dev_bus) == WRAP_PCMCIA_BUS) +#ifdef ENABLE_USB +/* earlier versions of ndiswrapper used 0 as USB_BUS */ +#define wrap_is_usb_bus(dev_bus) \ + (WRAP_BUS(dev_bus) == WRAP_USB_BUS || \ + WRAP_BUS(dev_bus) == WRAP_INTERNAL_BUS) +#else +#define wrap_is_usb_bus(dev_bus) 0 +#endif +#define wrap_is_bluetooth_device(dev_bus) \ + (WRAP_DEVICE(dev_bus) == WRAP_BLUETOOTH_DEVICE1 || \ + WRAP_DEVICE(dev_bus) == WRAP_BLUETOOTH_DEVICE2) + +extern workqueue_struct_t *ntos_wq; +#define schedule_ntos_work(work_struct) queue_work(ntos_wq, work_struct) +#define schedule_work(work_struct) queue_work(ntos_wq, work_struct) + +extern workqueue_struct_t *ndis_wq; +#define schedule_ndis_work(work_struct) queue_work(ndis_wq, work_struct) + +extern workqueue_struct_t *wrapndis_wq; +#define schedule_wrapndis_work(work_struct) queue_work(wrapndis_wq, work_struct) + +#define atomic_unary_op(var, size, oper) \ +do { \ + if (size == 1) \ + __asm__ __volatile__( \ + LOCK_PREFIX oper "b %b0\n\t" : "+m" (var)); \ + else if (size == 2) \ + __asm__ __volatile__( \ + LOCK_PREFIX oper "w %w0\n\t" : "+m" (var)); \ + else if (size == 4) \ + __asm__ __volatile__( \ + LOCK_PREFIX oper "l %0\n\t" : "+m" (var)); \ + else if (size == 8) \ + __asm__ __volatile__( \ + LOCK_PREFIX oper "q %q0\n\t" : "+m" (var)); \ + else { \ + extern void _invalid_op_size_(void); \ + _invalid_op_size_(); \ + } \ +} while (0) + +#define atomic_inc_var_size(var, size) atomic_unary_op(var, size, "inc") + +#define atomic_inc_var(var) atomic_inc_var_size(var, sizeof(var)) + +#define atomic_dec_var_size(var, size) atomic_unary_op(var, size, "dec") + +#define atomic_dec_var(var) atomic_dec_var_size(var, sizeof(var)) + +#define pre_atomic_add(var, i) \ +({ \ + typeof(var) pre; \ + __asm__ __volatile__( \ + LOCK_PREFIX "xadd %0, %1\n\t" \ + : "=r"(pre), "+m"(var) \ + : "0"(i)); \ + pre; \ +}) + +#define post_atomic_add(var, i) (pre_atomic_add(var, i) + i) + +#ifndef in_atomic +#define in_atomic() in_interrupt() +#endif + +#ifndef preempt_enable_no_resched +#define preempt_enable_no_resched() preempt_enable() +#endif + +//#define DEBUG_IRQL 1 + +#ifdef DEBUG_IRQL +#define assert_irql(cond) \ +do { \ + KIRQL _irql_ = current_irql(); \ + if (!(cond)) { \ + WARNING("assertion '%s' failed: %d", #cond, _irql_); \ + DBG_BLOCK(4) { \ + dump_stack(); \ + } \ + } \ +} while (0) +#else +#define assert_irql(cond) do { } while (0) +#endif + +/* When preempt is enabled, we should preempt_disable to raise IRQL to + * DISPATCH_LEVEL, to be consistent with the semantics. However, using + * a mutex instead, so that only ndiswrapper threads run one at a time + * on a processor when at DISPATCH_LEVEL seems to be enough. So that + * is what we will use until we learn otherwise. If + * preempt_(en|dis)able is required for some reason, comment out + * following #define. */ + +#define WRAP_PREEMPT 1 + +#if !defined(CONFIG_PREEMPT) || defined(CONFIG_PREEMPT_RT) +#ifndef WRAP_PREEMPT +#define WRAP_PREEMPT 1 +#endif +#endif + +//#undef WRAP_PREEMPT + +#ifdef WRAP_PREEMPT + +typedef struct { + int count; + struct mutex lock; +#ifdef CONFIG_SMP + typeof(current->cpus_allowed) cpus_allowed; +#endif + struct task_struct *task; +} irql_info_t; + +DECLARE_PER_CPU(irql_info_t, irql_info); + +static inline KIRQL raise_irql(KIRQL newirql) +{ + irql_info_t *info; + + assert(newirql == DISPATCH_LEVEL); + info = &get_cpu_var(irql_info); + if (info->task == current) { + assert(info->count > 0); + assert(mutex_is_locked(&info->lock)); +#if defined(CONFIG_SMP) && defined(DEBUG) + do { + cpumask_t cpumask; + cpumask = cpumask_of_cpu(smp_processor_id()); + cpus_xor(cpumask, cpumask, current->cpus_allowed); + assert(cpus_empty(cpumask)); + } while (0); +#endif + info->count++; + put_cpu_var(irql_info); + return DISPATCH_LEVEL; + } + /* TODO: is this enough to pin down to current cpu? */ +#ifdef CONFIG_SMP + assert(task_cpu(current) == smp_processor_id()); + info->cpus_allowed = current->cpus_allowed; + current->cpus_allowed = cpumask_of_cpu(smp_processor_id()); +#endif + put_cpu_var(irql_info); + mutex_lock(&info->lock); + assert(info->count == 0); + assert(info->task == NULL); + info->count = 1; + info->task = current; + return PASSIVE_LEVEL; +} + +static inline void lower_irql(KIRQL oldirql) +{ + irql_info_t *info; + + assert(oldirql <= DISPATCH_LEVEL); + info = &get_cpu_var(irql_info); + assert(info->task == current); + assert(mutex_is_locked(&info->lock)); + assert(info->count > 0); + if (--info->count == 0) { + info->task = NULL; +#ifdef CONFIG_SMP + current->cpus_allowed = info->cpus_allowed; +#endif + mutex_unlock(&info->lock); + } + put_cpu_var(irql_info); +} + +static inline KIRQL current_irql(void) +{ + int count; + if (in_irq() || irqs_disabled()) + EXIT4(return DIRQL); + if (in_atomic() || in_interrupt()) + EXIT4(return SOFT_IRQL); + count = get_cpu_var(irql_info).count; + put_cpu_var(irql_info); + if (count) + EXIT6(return DISPATCH_LEVEL); + else + EXIT6(return PASSIVE_LEVEL); +} + +#else + +static inline KIRQL current_irql(void) +{ + if (in_irq() || irqs_disabled()) + EXIT4(return DIRQL); + if (in_interrupt()) + EXIT4(return SOFT_IRQL); + if (in_atomic()) + EXIT6(return DISPATCH_LEVEL); + else + EXIT6(return PASSIVE_LEVEL); +} + +static inline KIRQL raise_irql(KIRQL newirql) +{ + KIRQL ret = in_atomic() ? DISPATCH_LEVEL : PASSIVE_LEVEL; + assert(newirql == DISPATCH_LEVEL); + assert(current_irql() <= DISPATCH_LEVEL); + preempt_disable(); + return ret; +} + +static inline void lower_irql(KIRQL oldirql) +{ + assert(current_irql() == DISPATCH_LEVEL); + preempt_enable(); +} + +#endif + +#define irql_gfp() (in_atomic() ? GFP_ATOMIC : GFP_KERNEL) + +/* Windows spinlocks are of type ULONG_PTR which is not big enough to + * store Linux spinlocks; so we implement Windows spinlocks using + * ULONG_PTR space with our own functions/macros */ + +/* Windows seems to use 0 for unlocked state of spinlock - if Linux + * convention of 1 for unlocked state is used, at least prism54 driver + * crashes */ + +#define NT_SPIN_LOCK_UNLOCKED 0 +#define NT_SPIN_LOCK_LOCKED 1 + +static inline void nt_spin_lock_init(NT_SPIN_LOCK *lock) +{ + *lock = NT_SPIN_LOCK_UNLOCKED; +} + +#ifdef CONFIG_SMP + +static inline void nt_spin_lock(NT_SPIN_LOCK *lock) +{ + __asm__ __volatile__( + "1:\t" + " xchgl %1, %0\n\t" + " testl %1, %1\n\t" + " jz 3f\n" + "2:\t" + " rep; nop\n\t" + " cmpl %2, %0\n\t" + " je 1b\n\t" + " jmp 2b\n" + "3:\n\t" + : "+m" (*lock) + : "r" (NT_SPIN_LOCK_LOCKED), "i" (NT_SPIN_LOCK_UNLOCKED)); +} + +static inline void nt_spin_unlock(NT_SPIN_LOCK *lock) +{ + *lock = NT_SPIN_LOCK_UNLOCKED; +} + +#else // CONFIG_SMP + +#define nt_spin_lock(lock) do { } while (0) + +#define nt_spin_unlock(lock) do { } while (0) + +#endif // CONFIG_SMP + +/* When kernel would've disabled preempt (e.g., in interrupt + * handlers), we need to fake preempt so driver thinks it is running + * at right IRQL */ + +/* raise IRQL to given (higher) IRQL if necessary before locking */ +static inline KIRQL nt_spin_lock_irql(NT_SPIN_LOCK *lock, KIRQL newirql) +{ + KIRQL oldirql = raise_irql(newirql); + nt_spin_lock(lock); + return oldirql; +} + +/* lower IRQL to given (lower) IRQL if necessary after unlocking */ +static inline void nt_spin_unlock_irql(NT_SPIN_LOCK *lock, KIRQL oldirql) +{ + nt_spin_unlock(lock); + lower_irql(oldirql); +} + +#define nt_spin_lock_irqsave(lock, flags) \ +do { \ + local_irq_save(flags); \ + preempt_disable(); \ + nt_spin_lock(lock); \ +} while (0) + +#define nt_spin_unlock_irqrestore(lock, flags) \ +do { \ + nt_spin_unlock(lock); \ + preempt_enable_no_resched(); \ + local_irq_restore(flags); \ + preempt_check_resched(); \ +} while (0) + +static inline ULONG SPAN_PAGES(void *ptr, SIZE_T length) +{ + return PAGE_ALIGN(((unsigned long)ptr & (PAGE_SIZE - 1)) + length) + >> PAGE_SHIFT; +} + +#ifdef CONFIG_X86_64 + +/* TODO: can these be implemented without using spinlock? */ + +static inline struct nt_slist *PushEntrySList(nt_slist_header *head, + struct nt_slist *entry, + NT_SPIN_LOCK *lock) +{ + KIRQL irql = nt_spin_lock_irql(lock, DISPATCH_LEVEL); + entry->next = head->next; + head->next = entry; + head->depth++; + nt_spin_unlock_irql(lock, irql); + TRACE4("%p, %p, %p", head, entry, entry->next); + return entry->next; +} + +static inline struct nt_slist *PopEntrySList(nt_slist_header *head, + NT_SPIN_LOCK *lock) +{ + struct nt_slist *entry; + KIRQL irql = nt_spin_lock_irql(lock, DISPATCH_LEVEL); + entry = head->next; + if (entry) { + head->next = entry->next; + head->depth--; + } + nt_spin_unlock_irql(lock, irql); + TRACE4("%p, %p", head, entry); + return entry; +} + +#else + +#define u64_low_32(x) ((u32)x) +#define u64_high_32(x) ((u32)(x >> 32)) + +static inline u64 nt_cmpxchg8b(volatile u64 *ptr, u64 old, u64 new) +{ + u64 prev; + + __asm__ __volatile__( + "\n" + LOCK_PREFIX "cmpxchg8b %0\n" + : "+m" (*ptr), "=A" (prev) + : "A" (old), "b" (u64_low_32(new)), "c" (u64_high_32(new))); + return prev; +} + +/* slist routines below update slist atomically - no need for + * spinlocks */ + +static inline struct nt_slist *PushEntrySList(nt_slist_header *head, + struct nt_slist *entry, + NT_SPIN_LOCK *lock) +{ + nt_slist_header old, new; + do { + old.align = head->align; + entry->next = old.next; + new.next = entry; + new.depth = old.depth + 1; + } while (nt_cmpxchg8b(&head->align, old.align, new.align) != old.align); + TRACE4("%p, %p, %p", head, entry, old.next); + return old.next; +} + +static inline struct nt_slist *PopEntrySList(nt_slist_header *head, + NT_SPIN_LOCK *lock) +{ + struct nt_slist *entry; + nt_slist_header old, new; + do { + old.align = head->align; + entry = old.next; + if (!entry) + break; + new.next = entry->next; + new.depth = old.depth - 1; + } while (nt_cmpxchg8b(&head->align, old.align, new.align) != old.align); + TRACE4("%p, %p", head, entry); + return entry; +} + +#endif + +#define sleep_hz(n) \ +do { \ + set_current_state(TASK_INTERRUPTIBLE); \ + schedule_timeout(n); \ +} while (0) + +int ntoskernel_init(void); +void ntoskernel_exit(void); +int ntoskernel_init_device(struct wrap_device *wd); +void ntoskernel_exit_device(struct wrap_device *wd); +void *allocate_object(ULONG size, enum common_object_type type, + struct unicode_string *name); +void free_object(void *object); + +int usb_init(void); +void usb_exit(void); +int usb_init_device(struct wrap_device *wd); +void usb_exit_device(struct wrap_device *wd); +void usb_cancel_pending_urbs(void); + +int crt_init(void); +void crt_exit(void); +int rtl_init(void); +void rtl_exit(void); +int wrap_procfs_init(void); +void wrap_procfs_remove(void); + +int link_pe_images(struct pe_image *pe_image, unsigned short n); + +int stricmp(const char *s1, const char *s2); +void dump_bytes(const char *name, const u8 *from, int len); +struct mdl *allocate_init_mdl(void *virt, ULONG length); +void free_mdl(struct mdl *mdl); +struct driver_object *find_bus_driver(const char *name); +void free_custom_extensions(struct driver_extension *drv_obj_ext); +struct nt_thread *get_current_nt_thread(void); +u64 ticks_1601(void); +int schedule_ntos_work_item(NTOS_WORK_FUNC func, void *arg1, void *arg2); +void wrap_init_timer(struct nt_timer *nt_timer, enum timer_type type, + struct ndis_mp_block *nmb); +BOOLEAN wrap_set_timer(struct nt_timer *nt_timer, unsigned long expires_hz, + unsigned long repeat_hz, struct kdpc *kdpc); + +LONG InterlockedDecrement(LONG volatile *val) wfastcall; +LONG InterlockedIncrement(LONG volatile *val) wfastcall; +struct nt_list *ExInterlockedInsertHeadList + (struct nt_list *head, struct nt_list *entry, + NT_SPIN_LOCK *lock) wfastcall; +struct nt_list *ExInterlockedInsertTailList + (struct nt_list *head, struct nt_list *entry, + NT_SPIN_LOCK *lock) wfastcall; +struct nt_list *ExInterlockedRemoveHeadList + (struct nt_list *head, NT_SPIN_LOCK *lock) wfastcall; +NTSTATUS IofCallDriver(struct device_object *dev_obj, struct irp *irp) wfastcall; +KIRQL KfRaiseIrql(KIRQL newirql) wfastcall; +void KfLowerIrql(KIRQL oldirql) wfastcall; +KIRQL KfAcquireSpinLock(NT_SPIN_LOCK *lock) wfastcall; +void KfReleaseSpinLock(NT_SPIN_LOCK *lock, KIRQL oldirql) wfastcall; +void IofCompleteRequest(struct irp *irp, CHAR prio_boost) wfastcall; +void KefReleaseSpinLockFromDpcLevel(NT_SPIN_LOCK *lock) wfastcall; + +LONG ObfReferenceObject(void *object) wfastcall; +void ObfDereferenceObject(void *object) wfastcall; + +#define ObReferenceObject(object) ObfReferenceObject(object) +#define ObDereferenceObject(object) ObfDereferenceObject(object) + +void WRITE_PORT_UCHAR(ULONG_PTR port, UCHAR value) wstdcall; +UCHAR READ_PORT_UCHAR(ULONG_PTR port) wstdcall; + +#undef ExAllocatePoolWithTag +void *ExAllocatePoolWithTag(enum pool_type pool_type, SIZE_T size, + ULONG tag) wstdcall; +#if defined(ALLOC_DEBUG) && ALLOC_DEBUG > 1 +#define ExAllocatePoolWithTag(pool_type, size, tag) \ + wrap_ExAllocatePoolWithTag(pool_type, size, tag, __FILE__, __LINE__) +#endif + +void ExFreePool(void *p) wstdcall; +ULONG MmSizeOfMdl(void *base, ULONG length) wstdcall; +void __iomem *MmMapIoSpace(PHYSICAL_ADDRESS phys_addr, SIZE_T size, + enum memory_caching_type cache) wstdcall; +void MmUnmapIoSpace(void __iomem *addr, SIZE_T size) wstdcall; +void MmProbeAndLockPages(struct mdl *mdl, KPROCESSOR_MODE access_mode, + enum lock_operation operation) wstdcall; +void MmUnlockPages(struct mdl *mdl) wstdcall; +void KeInitializeEvent(struct nt_event *nt_event, + enum event_type type, BOOLEAN state) wstdcall; +LONG KeSetEvent(struct nt_event *nt_event, KPRIORITY incr, + BOOLEAN wait) wstdcall; +LONG KeResetEvent(struct nt_event *nt_event) wstdcall; +void KeClearEvent(struct nt_event *nt_event) wstdcall; +void KeInitializeDpc(struct kdpc *kdpc, void *func, void *ctx) wstdcall; +BOOLEAN queue_kdpc(struct kdpc *kdpc); +BOOLEAN dequeue_kdpc(struct kdpc *kdpc); + +void KeFlushQueuedDpcs(void) wstdcall; +NTSTATUS IoConnectInterrupt(struct kinterrupt **kinterrupt, + PKSERVICE_ROUTINE service_routine, + void *service_context, NT_SPIN_LOCK *lock, + ULONG vector, KIRQL irql, KIRQL synch_irql, + enum kinterrupt_mode interrupt_mode, + BOOLEAN shareable, KAFFINITY processor_enable_mask, + BOOLEAN floating_save) wstdcall; +void IoDisconnectInterrupt(struct kinterrupt *interrupt) wstdcall; +BOOLEAN KeSynchronizeExecution(struct kinterrupt *interrupt, + PKSYNCHRONIZE_ROUTINE synch_routine, + void *ctx) wstdcall; + +NTSTATUS KeWaitForSingleObject(void *object, KWAIT_REASON reason, + KPROCESSOR_MODE waitmode, BOOLEAN alertable, + LARGE_INTEGER *timeout) wstdcall; +struct mdl *IoAllocateMdl(void *virt, ULONG length, BOOLEAN second_buf, + BOOLEAN charge_quota, struct irp *irp) wstdcall; +void MmBuildMdlForNonPagedPool(struct mdl *mdl) wstdcall; +void IoFreeMdl(struct mdl *mdl) wstdcall; +NTSTATUS IoCreateDevice(struct driver_object *driver, ULONG dev_ext_length, + struct unicode_string *dev_name, DEVICE_TYPE dev_type, + ULONG dev_chars, BOOLEAN exclusive, + struct device_object **dev_obj) wstdcall; +NTSTATUS IoCreateSymbolicLink(struct unicode_string *link, + struct unicode_string *dev_name) wstdcall; +void IoDeleteDevice(struct device_object *dev) wstdcall; +void IoDetachDevice(struct device_object *topdev) wstdcall; +struct device_object *IoGetAttachedDevice(struct device_object *dev) wstdcall; +struct device_object *IoGetAttachedDeviceReference + (struct device_object *dev) wstdcall; +NTSTATUS IoAllocateDriverObjectExtension + (struct driver_object *drv_obj, void *client_id, ULONG extlen, + void **ext) wstdcall; +void *IoGetDriverObjectExtension(struct driver_object *drv, + void *client_id) wstdcall; +struct device_object *IoAttachDeviceToDeviceStack + (struct device_object *src, struct device_object *dst) wstdcall; +void KeInitializeEvent(struct nt_event *nt_event, enum event_type type, + BOOLEAN state) wstdcall; +struct irp *IoAllocateIrp(char stack_count, BOOLEAN charge_quota) wstdcall; +void IoFreeIrp(struct irp *irp) wstdcall; +BOOLEAN IoCancelIrp(struct irp *irp) wstdcall; +struct irp *IoBuildSynchronousFsdRequest + (ULONG major_func, struct device_object *dev_obj, void *buf, + ULONG length, LARGE_INTEGER *offset, struct nt_event *event, + struct io_status_block *status) wstdcall; +struct irp *IoBuildAsynchronousFsdRequest + (ULONG major_func, struct device_object *dev_obj, void *buf, + ULONG length, LARGE_INTEGER *offset, + struct io_status_block *status) wstdcall; +NTSTATUS PoCallDriver(struct device_object *dev_obj, struct irp *irp) wstdcall; + +NTSTATUS IoPassIrpDown(struct device_object *dev_obj, struct irp *irp) wstdcall; +WIN_FUNC_DECL(IoPassIrpDown,2); +NTSTATUS IoSyncForwardIrp(struct device_object *dev_obj, + struct irp *irp) wstdcall; +NTSTATUS IoAsyncForwardIrp(struct device_object *dev_obj, + struct irp *irp) wstdcall; +NTSTATUS IoInvalidDeviceRequest(struct device_object *dev_obj, + struct irp *irp) wstdcall; + +KIRQL KeGetCurrentIrql(void) wstdcall; +void KeInitializeSpinLock(NT_SPIN_LOCK *lock) wstdcall; +void KeAcquireSpinLock(NT_SPIN_LOCK *lock, KIRQL *irql) wstdcall; +void KeReleaseSpinLock(NT_SPIN_LOCK *lock, KIRQL oldirql) wstdcall; +KIRQL KeAcquireSpinLockRaiseToDpc(NT_SPIN_LOCK *lock) wstdcall; + +void IoAcquireCancelSpinLock(KIRQL *irql) wstdcall; +void IoReleaseCancelSpinLock(KIRQL irql) wstdcall; + +void RtlCopyMemory(void *dst, const void *src, SIZE_T length) wstdcall; +NTSTATUS RtlUnicodeStringToAnsiString + (struct ansi_string *dst, const struct unicode_string *src, + BOOLEAN dup) wstdcall; +NTSTATUS RtlAnsiStringToUnicodeString + (struct unicode_string *dst, const struct ansi_string *src, + BOOLEAN dup) wstdcall; +void RtlInitAnsiString(struct ansi_string *dst, const char *src) wstdcall; +void RtlInitString(struct ansi_string *dst, const char *src) wstdcall; +void RtlInitUnicodeString(struct unicode_string *dest, + const wchar_t *src) wstdcall; +void RtlFreeUnicodeString(struct unicode_string *string) wstdcall; +void RtlFreeAnsiString(struct ansi_string *string) wstdcall; +LONG RtlCompareUnicodeString(const struct unicode_string *s1, + const struct unicode_string *s2, + BOOLEAN case_insensitive) wstdcall; +void RtlCopyUnicodeString(struct unicode_string *dst, + struct unicode_string *src) wstdcall; +NTSTATUS RtlUpcaseUnicodeString(struct unicode_string *dst, + struct unicode_string *src, + BOOLEAN alloc) wstdcall; +void KeInitializeTimer(struct nt_timer *nt_timer) wstdcall; +void KeInitializeTimerEx(struct nt_timer *nt_timer, + enum timer_type type) wstdcall; +BOOLEAN KeSetTimerEx(struct nt_timer *nt_timer, LARGE_INTEGER duetime_ticks, + LONG period_ms, struct kdpc *kdpc) wstdcall; +BOOLEAN KeSetTimer(struct nt_timer *nt_timer, LARGE_INTEGER duetime_ticks, + struct kdpc *kdpc) wstdcall; +BOOLEAN KeCancelTimer(struct nt_timer *nt_timer) wstdcall; +void KeInitializeDpc(struct kdpc *kdpc, void *func, void *ctx) wstdcall; +struct nt_thread *KeGetCurrentThread(void) wstdcall; +NTSTATUS ObReferenceObjectByHandle(void *handle, ACCESS_MASK desired_access, + void *obj_type, KPROCESSOR_MODE access_mode, + void **object, void *handle_info) wstdcall; + +void adjust_user_shared_data_addr(char *driver, unsigned long length); + +extern spinlock_t ntoskernel_lock; +extern spinlock_t irp_cancel_lock; +extern struct nt_list object_list; +#ifdef CONFIG_X86_64 +extern struct kuser_shared_data kuser_shared_data; +#endif + +#define IoCompleteRequest(irp, prio) IofCompleteRequest(irp, prio) +#define IoCallDriver(dev, irp) IofCallDriver(dev, irp) + +#if defined(IO_DEBUG) +#define DUMP_IRP(_irp) \ +do { \ + struct io_stack_location *_irp_sl; \ + _irp_sl = IoGetCurrentIrpStackLocation(_irp); \ + IOTRACE("irp: %p, stack size: %d, cl: %d, sl: %p, dev_obj: %p, " \ + "mj_fn: %d, minor_fn: %d, nt_urb: %p, event: %p", \ + _irp, _irp->stack_count, (_irp)->current_location, \ + _irp_sl, _irp_sl->dev_obj, _irp_sl->major_fn, \ + _irp_sl->minor_fn, IRP_URB(_irp), \ + (_irp)->user_event); \ +} while (0) +#else +#define DUMP_IRP(_irp) do { } while (0) +#endif + +#endif // _NTOSKERNEL_H_ --- linux-2.6.35.orig/ubuntu/ndiswrapper/wrapper.h +++ linux-2.6.35/ubuntu/ndiswrapper/wrapper.h @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef WRAPPER_H +#define WRAPPER_H + +extern char *if_name; +extern int proc_uid; +extern int proc_gid; +extern int hangcheck_interval; + +#endif /* WRAPPER_H */ --- linux-2.6.35.orig/ubuntu/ndiswrapper/win2lin_stubs.S +++ linux-2.6.35/ubuntu/ndiswrapper/win2lin_stubs.S @@ -0,0 +1,288 @@ +/* + * Copyright (C) 2005 Karl Vogel, Giridhar Pemmasani + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include + +#ifdef CONFIG_X86_64 + +/* +# Windows <---> Linux register usage conversion when calling functions +# V = Volatile +# NV = Non Volatile (needs to be saved) +# +# Win Lin +# --------------------------------------- +# Rax Return V Return V +# Rbx NV NV +# Rcx Arg1 V Arg4 V +# Rdx Arg2 V Arg3 V +# Rsi NV Arg2 V +# Rdi NV Arg1 V +# Rsp NV NV +# Rbp NV NV +# R8 Arg3 V Arg5 V +# R9 Arg4 V Arg6 V +# R10 V V +# R11 V V +# R12 NV NV +# R13 NV NV +# R14 NV NV +# R15 NV NV +# +# In addition, Linux uses %rax to indicate number of SSE registers used +# when variadic functions are called. Since there is no way to obtain this +# from Windows, for now, we just assume this is 0 (hence %rax is cleared). +# +# Windows pushes arguments 5 and higher onto stack in case of integer +# variables and 4 and higher in case of floating point variabes (passed +# in SSE registers). + +In a windows function, the stackframe/registers look like this: + +# 0x0048 .... +# 0x0040 arg8 +# 0x0038 arg7 +# 0x0030 arg6 +# 0x0028 arg5 +# 0x0020 shadow/spill space for arg4 +# 0x0018 shadow/spill space for arg3 +# 0x0010 shadow/spill space for arg2 +# 0x0008 shadow/spill space for arg1 +# 0x0000 ret + +# register spill space is same irrespective of number of arguments - even +# if Windows function takes less than 4 arguments, 32 bytes above return +# address is reserved for the function + +In Linux it should look like: + +# 0x0018 .... +# 0x0010 arg8 +# 0x0008 arg7 +# 0x0000 ret + +*/ + +# +# setup for Windows to Linux function call +# + + .text + +.macro win2lin_prolog + push %rsi + push %rdi +.endm + +.macro win2lin_epilog + pop %rdi + pop %rsi +.endm + +# when Windows function calls Linux function, the function address is in %r10 + +.macro call_lin_func + xor %rax, %rax # rax indicates number of SSE regs + call *%r10 +.endm + +# before prolog, 0(%rsp) is return address, 8(%rsp) would be arg1 +# (but it is in register) and so on, so n'th arg would be at n*8(%rsp) +# for n > 4. But in prolog, we push 2 registers that are non-volaile in +# Windows, but volatile in Linux. So after prolog, args are at (n+2)*8(%rsp) + +#define win2lin_win_arg(n) (n+2)*8(%rsp) + +#define win2lin_arg1 mov %rcx, %rdi +#define win2lin_arg2 mov %rdx, %rsi +#define win2lin_arg3 mov %r8, %rdx +#define win2lin_arg4 mov %r9, %rcx +#define win2lin_arg5 mov win2lin_win_arg(5), %r8 +#define win2lin_arg6 mov win2lin_win_arg(6), %r9 + + .type win2lin0, @function +win2lin0: + win2lin_prolog + call_lin_func + win2lin_epilog + ret + .size win2lin0, .-win2lin0 + + .type win2lin1, @function +win2lin1: + win2lin_prolog + win2lin_arg1 + call_lin_func + win2lin_epilog + ret + .size win2lin1, .-win2lin1 + + .type win2lin2, @function +win2lin2: + win2lin_prolog + win2lin_arg1 + win2lin_arg2 + call_lin_func + win2lin_epilog + ret + .size win2lin2, .-win2lin2 + + .type win2lin3, @function +win2lin3: + win2lin_prolog + win2lin_arg1 + win2lin_arg2 + win2lin_arg3 + call_lin_func + win2lin_epilog + ret + .size win2lin3, .-win2lin3 + + .type win2lin4, @function +win2lin4: + win2lin_prolog + win2lin_arg1 + win2lin_arg2 + win2lin_arg3 + win2lin_arg4 + call_lin_func + win2lin_epilog + ret + .size win2lin4, .-win2lin4 + + .type win2lin5, @function +win2lin5: + win2lin_prolog + win2lin_arg1 + win2lin_arg2 + win2lin_arg3 + win2lin_arg4 + win2lin_arg5 + call_lin_func + win2lin_epilog + ret + .size win2lin5, .-win2lin5 + + .type win2lin6, @function +win2lin6: + win2lin_prolog + win2lin_arg1 + win2lin_arg2 + win2lin_arg3 + win2lin_arg4 + win2lin_arg5 + win2lin_arg6 + call_lin_func + win2lin_epilog + ret + .size win2lin6, .-win2lin6 + +# Allocate stack frame for Linux arguments before calling function. +# First 6 args are passed through registers, so we need space for 7 and above. +# The arguments should have been copied onto stack already. + +.macro call_lin_func_args n + sub $(\n-6)*8, %rsp + call_lin_func + add $(\n-6)*8, %rsp + .endm + +# m is index of Linux arg required, n is total number of args to function +# After stack frame is allocated, Linux arg 7 should be at 0(%rsp), +# arg 8 should be at 1*8(%rsp) and so on. So Linux arg m should be at (m-7)*8 +# Stack frame starts at -(n-6)*8(%rsp), so before stack frame is allocated +# Linux arg m should be at (6-n+m-7)*8(%rsp) + +#define win2lin_lin_arg(m,n) (m-1-n)*8(%rsp) + + .type win2lin7, @function +win2lin7: + win2lin_prolog + + win2lin_arg1 + win2lin_arg2 + win2lin_arg3 + win2lin_arg4 + win2lin_arg5 + win2lin_arg6 + + # copy windows argument 7 onto stack for Linux function + mov win2lin_win_arg(7), %r11 + mov %r11, win2lin_lin_arg(7,7) + + call_lin_func_args(7) + win2lin_epilog + ret + .size win2lin7, .-win2lin7 + + .type win2lin8, @function +win2lin8: + win2lin_prolog + + win2lin_arg1 + win2lin_arg2 + win2lin_arg3 + win2lin_arg4 + win2lin_arg5 + win2lin_arg6 + + # copy windows arguments 7 and 8 onto stack for Linux function + mov win2lin_win_arg(7), %r11 + mov %r11, win2lin_lin_arg(7,8) + mov win2lin_win_arg(8), %r11 + mov %r11, win2lin_lin_arg(8,8) + + call_lin_func_args(8) + win2lin_epilog + ret + .size win2lin8, .-win2lin8 + + .type win2lin9, @function +win2lin9: +win2lin10: +win2lin11: +win2lin12: + win2lin_prolog + + # since we destroy rsi and rdi here, first copy windows + # arguments 7 through 12 onto stack for Linux function + mov %rcx, %r11 # save rcx + lea win2lin_win_arg(7), %rsi # source (windows arg 7 and up) + lea win2lin_lin_arg(7,12), %rdi # = destination + mov $6, %rcx # 6 arguments + rep + movsq + mov %r11, %rcx # restore rcx + + win2lin_arg1 + win2lin_arg2 + win2lin_arg3 + win2lin_arg4 + win2lin_arg5 + win2lin_arg6 + + call_lin_func_args(12) + win2lin_epilog + ret + .size win2lin9, .-win2lin9 + +#define win2lin(name, argc) \ +ENTRY(win2lin_ ## name ## _ ## argc) \ + lea name(%rip), %r10 ; \ + jmp win2lin ## argc + +#include "win2lin_stubs.h" + +#endif // CONFIG_X86_64 --- linux-2.6.35.orig/ubuntu/ndiswrapper/mkexport.sh +++ linux-2.6.35/ubuntu/ndiswrapper/mkexport.sh @@ -0,0 +1,42 @@ +#! /bin/sh + +# Generate exports symbol table from C files + +input="$1" +output="$2" +exports=$(basename "$output" .h) +exec >"$output" + +echo "/* automatically generated from src */"; + +sed -n -e '/^\(wstdcall\|wfastcall\|noregparm\|__attribute__\)/{ +:more +N +s/\([^{]\)$/\1/ +t more +s/\n{$/;/ +p +}' $input + +echo "#ifdef CONFIG_X86_64"; + +sed -n \ + -e 's/.*WIN_FUNC(\([^\,]\+\) *\, *\([0-9]\+\)).*/'\ +'WIN_FUNC_DECL(\1, \2)/p' \ + -e 's/.*WIN_FUNC_PTR(\([^\,]\+\) *\, *\([0-9]\+\)).*/'\ +'WIN_FUNC_DECL(\1, \2)/p' $input | sort -u + +echo "#endif" +echo "extern struct wrap_export $exports[];" +echo "struct wrap_export $exports[] = {" + +sed -n \ + -e 's/.*WIN_FUNC(_win_\([^\,]\+\) *\, *\([0-9]\+\)).*/'\ +' WIN_WIN_SYMBOL(\1, \2),/p' \ + -e 's/.*WIN_FUNC(\([^\,]\+\) *\, *\([0-9]\+\)).*/'\ +' WIN_SYMBOL(\1, \2),/p' \ + -e 's/.*WIN_SYMBOL_MAP(\("[^"]\+"\)[ ,\n]\+\([^)]\+\)).*/'\ +' {\1, (generic_func)\2},/p' $input | sort -u + +echo " {NULL, NULL}" +echo "};" --- linux-2.6.35.orig/ubuntu/ndiswrapper/Kconfig +++ linux-2.6.35/ubuntu/ndiswrapper/Kconfig @@ -0,0 +1,4 @@ +config NDISWRAPPER + tristate "Wrapper for Windows NDIS network drivers" + depends on NET && X86 + default m --- linux-2.6.35.orig/ubuntu/ndiswrapper/Makefile +++ linux-2.6.35/ubuntu/ndiswrapper/Makefile @@ -0,0 +1,38 @@ +ndiswrapper-objs := crt.o hal.o iw_ndis.o loader.o ndis.o ntoskernel.o ntoskernel_io.o \ + pe_linker.o pnp.o proc.o rtl.o wrapmem.o wrapndis.o wrapper.o usb.o + +EXPORTS = crt_exports.h hal_exports.h ndis_exports.h ntoskernel_exports.h \ + ntoskernel_io_exports.h rtl_exports.h usb_exports.h + +STUB_SRCS = crt.c hal.c ndis.c ntoskernel.c ntoskernel_io.c \ + pnp.c rtl.c wrapndis.c usb.c + + +EXTRA_CFLAGS += -DENABLE_USB -I$(obj) +EXTRA_AFLAGS += -I$(obj) + +# generate exports symbol table from C files +quiet_cmd_mkexport = MKEXPORT $@ +cmd_mkexport = $(SHELL) $(srctree)/$(src)/mkexport.sh $< $@ + +%_exports.h: %.c $(srctree)/$(src)/mkexport.sh FORCE + $(call if_changed,mkexport) + +$(addprefix $(obj)/,$(EXPORTS:_exports.h=.o)): %.o: %_exports.h +extra-y += $(EXPORTS) + +ifeq ($(CONFIG_X86_64),y) +quiet_cmd_mkstubs = MKSTUBS $@ +cmd_mkstubs = $(SHELL) $(srctree)/$(src)/mkstubs.sh $(addprefix $(srctree)/$(src)/,$(STUB_SRCS)) >$@ + +$(obj)/win2lin_stubs.h: $(addprefix $(srctree)/$(src)/,$(STUB_SRCS)) FORCE + $(call if_changed,mkstubs) + +$(obj)/win2lin_stubs.o: $(obj)/win2lin_stubs.h +extra-y += win2lin_stubs.h +ndiswrapper-objs += win2lin_stubs.o +else +ndiswrapper-objs += divdi3.o +endif + +obj-$(CONFIG_NDISWRAPPER) := ndiswrapper.o --- linux-2.6.35.orig/ubuntu/aufs/super.c +++ linux-2.6.35/ubuntu/aufs/super.c @@ -0,0 +1,848 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * mount and super_block operations + */ + +#include +#include +#include +#include +#include "aufs.h" + +/* + * super_operations + */ +static struct inode *aufs_alloc_inode(struct super_block *sb __maybe_unused) +{ + struct au_icntnr *c; + + c = au_cache_alloc_icntnr(); + if (c) { + c->vfs_inode.i_version = 1; /* sigen(sb); */ + c->iinfo.ii_hinode = NULL; + return &c->vfs_inode; + } + return NULL; +} + +static void aufs_destroy_inode(struct inode *inode) +{ + au_iinfo_fin(inode); + au_cache_free_icntnr(container_of(inode, struct au_icntnr, vfs_inode)); +} + +struct inode *au_iget_locked(struct super_block *sb, ino_t ino) +{ + struct inode *inode; + int err; + + inode = iget_locked(sb, ino); + if (unlikely(!inode)) { + inode = ERR_PTR(-ENOMEM); + goto out; + } + if (!(inode->i_state & I_NEW)) + goto out; + + err = au_xigen_new(inode); + if (!err) + err = au_iinfo_init(inode); + if (!err) + inode->i_version++; + else { + iget_failed(inode); + inode = ERR_PTR(err); + } + + out: + /* never return NULL */ + AuDebugOn(!inode); + AuTraceErrPtr(inode); + return inode; +} + +/* lock free root dinfo */ +static int au_show_brs(struct seq_file *seq, struct super_block *sb) +{ + int err; + aufs_bindex_t bindex, bend; + struct path path; + struct au_hdentry *hdp; + struct au_branch *br; + + err = 0; + bend = au_sbend(sb); + hdp = au_di(sb->s_root)->di_hdentry; + for (bindex = 0; !err && bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + path.mnt = br->br_mnt; + path.dentry = hdp[bindex].hd_dentry; + err = au_seq_path(seq, &path); + if (err > 0) + err = seq_printf(seq, "=%s", + au_optstr_br_perm(br->br_perm)); + if (!err && bindex != bend) + err = seq_putc(seq, ':'); + } + + return err; +} + +static void au_show_wbr_create(struct seq_file *m, int v, + struct au_sbinfo *sbinfo) +{ + const char *pat; + + AuRwMustAnyLock(&sbinfo->si_rwsem); + + seq_printf(m, ",create="); + pat = au_optstr_wbr_create(v); + switch (v) { + case AuWbrCreate_TDP: + case AuWbrCreate_RR: + case AuWbrCreate_MFS: + case AuWbrCreate_PMFS: + seq_printf(m, pat); + break; + case AuWbrCreate_MFSV: + seq_printf(m, /*pat*/"mfs:%lu", + sbinfo->si_wbr_mfs.mfs_expire / HZ); + break; + case AuWbrCreate_PMFSV: + seq_printf(m, /*pat*/"pmfs:%lu", + sbinfo->si_wbr_mfs.mfs_expire / HZ); + break; + case AuWbrCreate_MFSRR: + seq_printf(m, /*pat*/"mfsrr:%llu", + sbinfo->si_wbr_mfs.mfsrr_watermark); + break; + case AuWbrCreate_MFSRRV: + seq_printf(m, /*pat*/"mfsrr:%llu:%lu", + sbinfo->si_wbr_mfs.mfsrr_watermark, + sbinfo->si_wbr_mfs.mfs_expire / HZ); + break; + } +} + +static int au_show_xino(struct seq_file *seq, struct vfsmount *mnt) +{ +#ifdef CONFIG_SYSFS + return 0; +#else + int err; + const int len = sizeof(AUFS_XINO_FNAME) - 1; + aufs_bindex_t bindex, brid; + struct super_block *sb; + struct qstr *name; + struct file *f; + struct dentry *d, *h_root; + struct au_hdentry *hdp; + + AuRwMustAnyLock(&sbinfo->si_rwsem); + + err = 0; + sb = mnt->mnt_sb; + f = au_sbi(sb)->si_xib; + if (!f) + goto out; + + /* stop printing the default xino path on the first writable branch */ + h_root = NULL; + brid = au_xino_brid(sb); + if (brid >= 0) { + bindex = au_br_index(sb, brid); + hdp = au_di(sb->s_root)->di_hdentry; + h_root = hdp[0 + bindex].hd_dentry; + } + d = f->f_dentry; + name = &d->d_name; + /* safe ->d_parent because the file is unlinked */ + if (d->d_parent == h_root + && name->len == len + && !memcmp(name->name, AUFS_XINO_FNAME, len)) + goto out; + + seq_puts(seq, ",xino="); + err = au_xino_path(seq, f); + + out: + return err; +#endif +} + +/* seq_file will re-call me in case of too long string */ +static int aufs_show_options(struct seq_file *m, struct vfsmount *mnt) +{ + int err, n; + unsigned int mnt_flags, v; + struct super_block *sb; + struct au_sbinfo *sbinfo; + +#define AuBool(name, str) do { \ + v = au_opt_test(mnt_flags, name); \ + if (v != au_opt_test(AuOpt_Def, name)) \ + seq_printf(m, ",%s" #str, v ? "" : "no"); \ +} while (0) + +#define AuStr(name, str) do { \ + v = mnt_flags & AuOptMask_##name; \ + if (v != (AuOpt_Def & AuOptMask_##name)) \ + seq_printf(m, "," #str "=%s", au_optstr_##str(v)); \ +} while (0) + +#define AuUInt(name, str, val) do { \ + if (val != AUFS_##name##_DEF) \ + seq_printf(m, "," #str "=%u", val); \ +} while (0) + + /* lock free root dinfo */ + sb = mnt->mnt_sb; + si_noflush_read_lock(sb); + sbinfo = au_sbi(sb); + seq_printf(m, ",si=%lx", sysaufs_si_id(sbinfo)); + + mnt_flags = au_mntflags(sb); + if (au_opt_test(mnt_flags, XINO)) { + err = au_show_xino(m, mnt); + if (unlikely(err)) + goto out; + } else + seq_puts(m, ",noxino"); + + AuBool(TRUNC_XINO, trunc_xino); + AuStr(UDBA, udba); + AuBool(SHWH, shwh); + AuBool(PLINK, plink); + AuBool(DIO, dio); + /* AuBool(DIRPERM1, dirperm1); */ + /* AuBool(REFROF, refrof); */ + + v = sbinfo->si_wbr_create; + if (v != AuWbrCreate_Def) + au_show_wbr_create(m, v, sbinfo); + + v = sbinfo->si_wbr_copyup; + if (v != AuWbrCopyup_Def) + seq_printf(m, ",cpup=%s", au_optstr_wbr_copyup(v)); + + v = au_opt_test(mnt_flags, ALWAYS_DIROPQ); + if (v != au_opt_test(AuOpt_Def, ALWAYS_DIROPQ)) + seq_printf(m, ",diropq=%c", v ? 'a' : 'w'); + + AuUInt(DIRWH, dirwh, sbinfo->si_dirwh); + + n = sbinfo->si_rdcache / HZ; + AuUInt(RDCACHE, rdcache, n); + + AuUInt(RDBLK, rdblk, sbinfo->si_rdblk); + AuUInt(RDHASH, rdhash, sbinfo->si_rdhash); + + AuBool(SUM, sum); + /* AuBool(SUM_W, wsum); */ + AuBool(WARN_PERM, warn_perm); + AuBool(VERBOSE, verbose); + + out: + /* be sure to print "br:" last */ + if (!sysaufs_brs) { + seq_puts(m, ",br:"); + au_show_brs(m, sb); + } + si_read_unlock(sb); + return 0; + +#undef AuBool +#undef AuStr +#undef AuUInt +} + +/* ---------------------------------------------------------------------- */ + +/* sum mode which returns the summation for statfs(2) */ + +static u64 au_add_till_max(u64 a, u64 b) +{ + u64 old; + + old = a; + a += b; + if (old < a) + return a; + return ULLONG_MAX; +} + +static int au_statfs_sum(struct super_block *sb, struct kstatfs *buf) +{ + int err; + u64 blocks, bfree, bavail, files, ffree; + aufs_bindex_t bend, bindex, i; + unsigned char shared; + struct vfsmount *h_mnt; + struct super_block *h_sb; + + blocks = 0; + bfree = 0; + bavail = 0; + files = 0; + ffree = 0; + + err = 0; + bend = au_sbend(sb); + for (bindex = bend; bindex >= 0; bindex--) { + h_mnt = au_sbr_mnt(sb, bindex); + h_sb = h_mnt->mnt_sb; + shared = 0; + for (i = bindex + 1; !shared && i <= bend; i++) + shared = (au_sbr_sb(sb, i) == h_sb); + if (shared) + continue; + + /* sb->s_root for NFS is unreliable */ + err = vfs_statfs(h_mnt->mnt_root, buf); + if (unlikely(err)) + goto out; + + blocks = au_add_till_max(blocks, buf->f_blocks); + bfree = au_add_till_max(bfree, buf->f_bfree); + bavail = au_add_till_max(bavail, buf->f_bavail); + files = au_add_till_max(files, buf->f_files); + ffree = au_add_till_max(ffree, buf->f_ffree); + } + + buf->f_blocks = blocks; + buf->f_bfree = bfree; + buf->f_bavail = bavail; + buf->f_files = files; + buf->f_ffree = ffree; + + out: + return err; +} + +static int aufs_statfs(struct dentry *dentry, struct kstatfs *buf) +{ + int err; + struct super_block *sb; + + /* lock free root dinfo */ + sb = dentry->d_sb; + si_noflush_read_lock(sb); + if (!au_opt_test(au_mntflags(sb), SUM)) + /* sb->s_root for NFS is unreliable */ + err = vfs_statfs(au_sbr_mnt(sb, 0)->mnt_root, buf); + else + err = au_statfs_sum(sb, buf); + si_read_unlock(sb); + + if (!err) { + buf->f_type = AUFS_SUPER_MAGIC; + buf->f_namelen = AUFS_MAX_NAMELEN; + memset(&buf->f_fsid, 0, sizeof(buf->f_fsid)); + } + /* buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1; */ + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * this IS NOT for super_operations. + * I guess it will be reverted someday. + */ +static void aufs_umount_begin(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + + sbinfo = au_sbi(sb); + if (!sbinfo) + return; + + si_write_lock(sb); + if (au_opt_test(au_mntflags(sb), PLINK)) + au_plink_put(sb); + if (sbinfo->si_wbr_create_ops->fin) + sbinfo->si_wbr_create_ops->fin(sb); + si_write_unlock(sb); +} + +/* final actions when unmounting a file system */ +static void aufs_put_super(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + + sbinfo = au_sbi(sb); + if (!sbinfo) + return; + + aufs_umount_begin(sb); + dbgaufs_si_fin(sbinfo); + kobject_put(&sbinfo->si_kobj); +} + +/* ---------------------------------------------------------------------- */ + +/* + * refresh dentry and inode at remount time. + */ +static int do_refresh(struct dentry *dentry, mode_t type, + unsigned int dir_flags) +{ + int err; + struct dentry *parent; + + di_write_lock_child(dentry); + parent = dget_parent(dentry); + di_read_lock_parent(parent, AuLock_IR); + + /* returns the number of positive dentries */ + err = au_refresh_hdentry(dentry, type); + if (err >= 0) { + struct inode *inode = dentry->d_inode; + err = au_refresh_hinode(inode, dentry); + if (!err && type == S_IFDIR) + au_hn_reset(inode, dir_flags); + } + if (unlikely(err)) + pr_err("unrecoverable error %d, %.*s\n", + err, AuDLNPair(dentry)); + + di_read_unlock(parent, AuLock_IR); + dput(parent); + di_write_unlock(dentry); + + return err; +} + +static int test_dir(struct dentry *dentry, void *arg __maybe_unused) +{ + return S_ISDIR(dentry->d_inode->i_mode); +} + +/* gave up consolidating with refresh_nondir() */ +static int refresh_dir(struct dentry *root, unsigned int sigen) +{ + int err, i, j, ndentry, e; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry **dentries; + struct inode *inode; + const unsigned int flags = au_hi_flags(root->d_inode, /*isdir*/1); + + err = 0; + list_for_each_entry(inode, &root->d_sb->s_inodes, i_sb_list) + if (S_ISDIR(inode->i_mode) && au_iigen(inode) != sigen) { + ii_write_lock_child(inode); + e = au_refresh_hinode_self(inode, /*do_attr*/1); + ii_write_unlock(inode); + if (unlikely(e)) { + AuDbg("e %d, i%lu\n", e, inode->i_ino); + if (!err) + err = e; + /* go on even if err */ + } + } + + e = au_dpages_init(&dpages, GFP_NOFS); + if (unlikely(e)) { + if (!err) + err = e; + goto out; + } + e = au_dcsub_pages(&dpages, root, test_dir, NULL); + if (unlikely(e)) { + if (!err) + err = e; + goto out_dpages; + } + + for (i = 0; !e && i < dpages.ndpage; i++) { + dpage = dpages.dpages + i; + dentries = dpage->dentries; + ndentry = dpage->ndentry; + for (j = 0; !e && j < ndentry; j++) { + struct dentry *d; + + d = dentries[j]; + au_dbg_verify_dir_parent(d, sigen); + if (au_digen(d) != sigen) { + e = do_refresh(d, S_IFDIR, flags); + if (unlikely(e && !err)) + err = e; + /* break on err */ + } + } + } + + out_dpages: + au_dpages_free(&dpages); + out: + return err; +} + +static int test_nondir(struct dentry *dentry, void *arg __maybe_unused) +{ + return !S_ISDIR(dentry->d_inode->i_mode); +} + +static int refresh_nondir(struct dentry *root, unsigned int sigen, + int do_dentry) +{ + int err, i, j, ndentry, e; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry **dentries; + struct inode *inode; + + err = 0; + list_for_each_entry(inode, &root->d_sb->s_inodes, i_sb_list) + if (!S_ISDIR(inode->i_mode) && au_iigen(inode) != sigen) { + ii_write_lock_child(inode); + e = au_refresh_hinode_self(inode, /*do_attr*/1); + ii_write_unlock(inode); + if (unlikely(e)) { + AuDbg("e %d, i%lu\n", e, inode->i_ino); + if (!err) + err = e; + /* go on even if err */ + } + } + + if (!do_dentry) + goto out; + + e = au_dpages_init(&dpages, GFP_NOFS); + if (unlikely(e)) { + if (!err) + err = e; + goto out; + } + e = au_dcsub_pages(&dpages, root, test_nondir, NULL); + if (unlikely(e)) { + if (!err) + err = e; + goto out_dpages; + } + + for (i = 0; i < dpages.ndpage; i++) { + dpage = dpages.dpages + i; + dentries = dpage->dentries; + ndentry = dpage->ndentry; + for (j = 0; j < ndentry; j++) { + struct dentry *d; + + d = dentries[j]; + au_dbg_verify_nondir_parent(d, sigen); + inode = d->d_inode; + if (inode && au_digen(d) != sigen) { + e = do_refresh(d, inode->i_mode & S_IFMT, + /*dir_flags*/0); + if (unlikely(e && !err)) + err = e; + /* go on even err */ + } + } + } + + out_dpages: + au_dpages_free(&dpages); + out: + return err; +} + +static void au_remount_refresh(struct super_block *sb, unsigned int flags) +{ + int err; + unsigned int sigen; + struct au_sbinfo *sbinfo; + struct dentry *root; + struct inode *inode; + + au_sigen_inc(sb); + sigen = au_sigen(sb); + sbinfo = au_sbi(sb); + au_fclr_si(sbinfo, FAILED_REFRESH_DIRS); + + root = sb->s_root; + DiMustNoWaiters(root); + inode = root->d_inode; + IiMustNoWaiters(inode); + au_hn_reset(inode, au_hi_flags(inode, /*isdir*/1)); + di_write_unlock(root); + + err = refresh_dir(root, sigen); + if (unlikely(err)) { + au_fset_si(sbinfo, FAILED_REFRESH_DIRS); + pr_warning("Refreshing directories failed, ignored (%d)\n", + err); + } + + if (au_ftest_opts(flags, REFRESH_NONDIR)) { + err = refresh_nondir(root, sigen, !err); + if (unlikely(err)) + pr_warning("Refreshing non-directories failed, ignored" + "(%d)\n", err); + } + + /* aufs_write_lock() calls ..._child() */ + di_write_lock_child(root); + au_cpup_attr_all(root->d_inode, /*force*/1); +} + +/* stop extra interpretation of errno in mount(8), and strange error messages */ +static int cvt_err(int err) +{ + AuTraceErr(err); + + switch (err) { + case -ENOENT: + case -ENOTDIR: + case -EEXIST: + case -EIO: + err = -EINVAL; + } + return err; +} + +static int aufs_remount_fs(struct super_block *sb, int *flags, char *data) +{ + int err, do_dx; + unsigned int mntflags; + struct au_opts opts; + struct dentry *root; + struct inode *inode; + struct au_sbinfo *sbinfo; + + err = 0; + root = sb->s_root; + if (!data || !*data) { + aufs_write_lock(root); + err = au_opts_verify(sb, *flags, /*pending*/0); + aufs_write_unlock(root); + goto out; + } + + err = -ENOMEM; + memset(&opts, 0, sizeof(opts)); + opts.opt = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!opts.opt)) + goto out; + opts.max_opt = PAGE_SIZE / sizeof(*opts.opt); + opts.flags = AuOpts_REMOUNT; + opts.sb_flags = *flags; + + /* parse it before aufs lock */ + err = au_opts_parse(sb, data, &opts); + if (unlikely(err)) + goto out_opts; + + sbinfo = au_sbi(sb); + inode = root->d_inode; + mutex_lock(&inode->i_mutex); + aufs_write_lock(root); + + /* au_opts_remount() may return an error */ + err = au_opts_remount(sb, &opts); + au_opts_free(&opts); + + if (au_ftest_opts(opts.flags, REFRESH_DIR) + || au_ftest_opts(opts.flags, REFRESH_NONDIR)) + au_remount_refresh(sb, opts.flags); + + if (au_ftest_opts(opts.flags, REFRESH_DYAOP)) { + mntflags = au_mntflags(sb); + do_dx = !!au_opt_test(mntflags, DIO); + au_dy_arefresh(do_dx); + } + + aufs_write_unlock(root); + mutex_unlock(&inode->i_mutex); + + out_opts: + free_page((unsigned long)opts.opt); + out: + err = cvt_err(err); + AuTraceErr(err); + return err; +} + +static const struct super_operations aufs_sop = { + .alloc_inode = aufs_alloc_inode, + .destroy_inode = aufs_destroy_inode, + /* always deleting, no clearing */ + .drop_inode = generic_delete_inode, + .show_options = aufs_show_options, + .statfs = aufs_statfs, + .put_super = aufs_put_super, + .remount_fs = aufs_remount_fs +}; + +/* ---------------------------------------------------------------------- */ + +static int alloc_root(struct super_block *sb) +{ + int err; + struct inode *inode; + struct dentry *root; + + err = -ENOMEM; + inode = au_iget_locked(sb, AUFS_ROOT_INO); + err = PTR_ERR(inode); + if (IS_ERR(inode)) + goto out; + + inode->i_op = &aufs_dir_iop; + inode->i_fop = &aufs_dir_fop; + inode->i_mode = S_IFDIR; + inode->i_nlink = 2; + unlock_new_inode(inode); + + root = d_alloc_root(inode); + if (unlikely(!root)) + goto out_iput; + err = PTR_ERR(root); + if (IS_ERR(root)) + goto out_iput; + + err = au_di_init(root); + if (!err) { + sb->s_root = root; + return 0; /* success */ + } + dput(root); + goto out; /* do not iput */ + + out_iput: + iget_failed(inode); + iput(inode); + out: + return err; + +} + +static int aufs_fill_super(struct super_block *sb, void *raw_data, + int silent __maybe_unused) +{ + int err; + struct au_opts opts; + struct dentry *root; + struct inode *inode; + char *arg = raw_data; + + if (unlikely(!arg || !*arg)) { + err = -EINVAL; + pr_err("no arg\n"); + goto out; + } + + err = -ENOMEM; + memset(&opts, 0, sizeof(opts)); + opts.opt = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!opts.opt)) + goto out; + opts.max_opt = PAGE_SIZE / sizeof(*opts.opt); + opts.sb_flags = sb->s_flags; + + err = au_si_alloc(sb); + if (unlikely(err)) + goto out_opts; + + /* all timestamps always follow the ones on the branch */ + sb->s_flags |= MS_NOATIME | MS_NODIRATIME; + sb->s_op = &aufs_sop; + sb->s_magic = AUFS_SUPER_MAGIC; + sb->s_maxbytes = 0; + au_export_init(sb); + + err = alloc_root(sb); + if (unlikely(err)) { + si_write_unlock(sb); + goto out_info; + } + root = sb->s_root; + inode = root->d_inode; + + /* + * actually we can parse options regardless aufs lock here. + * but at remount time, parsing must be done before aufs lock. + * so we follow the same rule. + */ + ii_write_lock_parent(inode); + aufs_write_unlock(root); + err = au_opts_parse(sb, arg, &opts); + if (unlikely(err)) + goto out_root; + + /* lock vfs_inode first, then aufs. */ + mutex_lock(&inode->i_mutex); + aufs_write_lock(root); + err = au_opts_mount(sb, &opts); + au_opts_free(&opts); + aufs_write_unlock(root); + mutex_unlock(&inode->i_mutex); + if (!err) + goto out_opts; /* success */ + + out_root: + dput(root); + sb->s_root = NULL; + out_info: + kobject_put(&au_sbi(sb)->si_kobj); + sb->s_fs_info = NULL; + out_opts: + free_page((unsigned long)opts.opt); + out: + AuTraceErr(err); + err = cvt_err(err); + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_get_sb(struct file_system_type *fs_type, int flags, + const char *dev_name __maybe_unused, void *raw_data, + struct vfsmount *mnt) +{ + int err; + struct super_block *sb; + + /* all timestamps always follow the ones on the branch */ + /* mnt->mnt_flags |= MNT_NOATIME | MNT_NODIRATIME; */ + err = get_sb_nodev(fs_type, flags, raw_data, aufs_fill_super, mnt); + if (!err) { + sb = mnt->mnt_sb; + si_write_lock(sb); + sysaufs_brs_add(sb, 0); + si_write_unlock(sb); + } + return err; +} + +struct file_system_type aufs_fs_type = { + .name = AUFS_FSTYPE, + .fs_flags = + FS_RENAME_DOES_D_MOVE /* a race between rename and others */ + | FS_REVAL_DOT, /* for NFS branch and udba */ + .get_sb = aufs_get_sb, + .kill_sb = generic_shutdown_super, + /* no need to __module_get() and module_put(). */ + .owner = THIS_MODULE, +}; --- linux-2.6.35.orig/ubuntu/aufs/sysfs.c +++ linux-2.6.35/ubuntu/aufs/sysfs.c @@ -0,0 +1,251 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sysfs interface + */ + +#include +#include +#include +#include +#include "aufs.h" + +#ifdef CONFIG_AUFS_FS_MODULE +/* this entry violates the "one line per file" policy of sysfs */ +static ssize_t config_show(struct kobject *kobj, struct kobj_attribute *attr, + char *buf) +{ + ssize_t err; + static char *conf = +/* this file is generated at compiling */ +#include "conf.str" + ; + + err = snprintf(buf, PAGE_SIZE, conf); + if (unlikely(err >= PAGE_SIZE)) + err = -EFBIG; + return err; +} + +static struct kobj_attribute au_config_attr = __ATTR_RO(config); +#endif + +static struct attribute *au_attr[] = { +#ifdef CONFIG_AUFS_FS_MODULE + &au_config_attr.attr, +#endif + NULL, /* need to NULL terminate the list of attributes */ +}; + +static struct attribute_group sysaufs_attr_group_body = { + .attrs = au_attr +}; + +struct attribute_group *sysaufs_attr_group = &sysaufs_attr_group_body; + +/* ---------------------------------------------------------------------- */ + +int sysaufs_si_xi_path(struct seq_file *seq, struct super_block *sb) +{ + int err; + + SiMustAnyLock(sb); + + err = 0; + if (au_opt_test(au_mntflags(sb), XINO)) { + err = au_xino_path(seq, au_sbi(sb)->si_xib); + seq_putc(seq, '\n'); + } + return err; +} + +/* + * the lifetime of branch is independent from the entry under sysfs. + * sysfs handles the lifetime of the entry, and never call ->show() after it is + * unlinked. + */ +static int sysaufs_si_br(struct seq_file *seq, struct super_block *sb, + aufs_bindex_t bindex) +{ + struct path path; + struct dentry *root; + struct au_branch *br; + + AuDbg("b%d\n", bindex); + + root = sb->s_root; + di_read_lock_parent(root, !AuLock_IR); + br = au_sbr(sb, bindex); + path.mnt = br->br_mnt; + path.dentry = au_h_dptr(root, bindex); + au_seq_path(seq, &path); + di_read_unlock(root, !AuLock_IR); + seq_printf(seq, "=%s\n", au_optstr_br_perm(br->br_perm)); + return 0; +} + +/* ---------------------------------------------------------------------- */ + +static struct seq_file *au_seq(char *p, ssize_t len) +{ + struct seq_file *seq; + + seq = kzalloc(sizeof(*seq), GFP_NOFS); + if (seq) { + /* mutex_init(&seq.lock); */ + seq->buf = p; + seq->size = len; + return seq; /* success */ + } + + seq = ERR_PTR(-ENOMEM); + return seq; +} + +#define SysaufsBr_PREFIX "br" + +/* todo: file size may exceed PAGE_SIZE */ +ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr, + char *buf) +{ + ssize_t err; + long l; + aufs_bindex_t bend; + struct au_sbinfo *sbinfo; + struct super_block *sb; + struct seq_file *seq; + char *name; + struct attribute **cattr; + + sbinfo = container_of(kobj, struct au_sbinfo, si_kobj); + sb = sbinfo->si_sb; + + /* + * prevent a race condition between sysfs and aufs. + * for instance, sysfs_file_read() calls sysfs_get_active_two() which + * prohibits maintaining the sysfs entries. + * hew we acquire read lock after sysfs_get_active_two(). + * on the other hand, the remount process may maintain the sysfs/aufs + * entries after acquiring write lock. + * it can cause a deadlock. + * simply we gave up processing read here. + */ + err = -EBUSY; + if (unlikely(!si_noflush_read_trylock(sb))) + goto out; + + seq = au_seq(buf, PAGE_SIZE); + err = PTR_ERR(seq); + if (IS_ERR(seq)) + goto out_unlock; + + name = (void *)attr->name; + cattr = sysaufs_si_attrs; + while (*cattr) { + if (!strcmp(name, (*cattr)->name)) { + err = container_of(*cattr, struct sysaufs_si_attr, attr) + ->show(seq, sb); + goto out_seq; + } + cattr++; + } + + bend = au_sbend(sb); + if (!strncmp(name, SysaufsBr_PREFIX, sizeof(SysaufsBr_PREFIX) - 1)) { + name += sizeof(SysaufsBr_PREFIX) - 1; + err = strict_strtol(name, 10, &l); + if (!err) { + if (l <= bend) + err = sysaufs_si_br(seq, sb, (aufs_bindex_t)l); + else + err = -ENOENT; + } + goto out_seq; + } + BUG(); + + out_seq: + if (!err) { + err = seq->count; + /* sysfs limit */ + if (unlikely(err == PAGE_SIZE)) + err = -EFBIG; + } + kfree(seq); + out_unlock: + si_read_unlock(sb); + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +void sysaufs_br_init(struct au_branch *br) +{ + struct attribute *attr = &br->br_attr; + + sysfs_attr_init(attr); + attr->name = br->br_name; + attr->mode = S_IRUGO; + attr->owner = THIS_MODULE; +} + +void sysaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex) +{ + struct au_branch *br; + struct kobject *kobj; + aufs_bindex_t bend; + + dbgaufs_brs_del(sb, bindex); + + if (!sysaufs_brs) + return; + + kobj = &au_sbi(sb)->si_kobj; + bend = au_sbend(sb); + for (; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + sysfs_remove_file(kobj, &br->br_attr); + } +} + +void sysaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex) +{ + int err; + aufs_bindex_t bend; + struct kobject *kobj; + struct au_branch *br; + + dbgaufs_brs_add(sb, bindex); + + if (!sysaufs_brs) + return; + + kobj = &au_sbi(sb)->si_kobj; + bend = au_sbend(sb); + for (; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + snprintf(br->br_name, sizeof(br->br_name), SysaufsBr_PREFIX + "%d", bindex); + err = sysfs_create_file(kobj, &br->br_attr); + if (unlikely(err)) + pr_warning("failed %s under sysfs(%d)\n", + br->br_name, err); + } +} --- linux-2.6.35.orig/ubuntu/aufs/dentry.c +++ linux-2.6.35/ubuntu/aufs/dentry.c @@ -0,0 +1,850 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * lookup and dentry operations + */ + +#include +#include "aufs.h" + +static void au_h_nd(struct nameidata *h_nd, struct nameidata *nd) +{ + if (nd) { + *h_nd = *nd; + + /* + * gave up supporting LOOKUP_CREATE/OPEN for lower fs, + * due to whiteout and branch permission. + */ + h_nd->flags &= ~(/*LOOKUP_PARENT |*/ LOOKUP_OPEN | LOOKUP_CREATE + | LOOKUP_FOLLOW | LOOKUP_EXCL); + /* unnecessary? */ + h_nd->intent.open.file = NULL; + } else + memset(h_nd, 0, sizeof(*h_nd)); +} + +struct au_lkup_one_args { + struct dentry **errp; + struct qstr *name; + struct dentry *h_parent; + struct au_branch *br; + struct nameidata *nd; +}; + +struct dentry *au_lkup_one(struct qstr *name, struct dentry *h_parent, + struct au_branch *br, struct nameidata *nd) +{ + struct dentry *h_dentry; + int err; + struct nameidata h_nd; + + if (au_test_fs_null_nd(h_parent->d_sb)) + return vfsub_lookup_one_len(name->name, h_parent, name->len); + + au_h_nd(&h_nd, nd); + h_nd.path.dentry = h_parent; + h_nd.path.mnt = br->br_mnt; + + err = __lookup_one_len(name->name, &h_nd.last, NULL, name->len); + h_dentry = ERR_PTR(err); + if (!err) { + path_get(&h_nd.path); + h_dentry = vfsub_lookup_hash(&h_nd); + path_put(&h_nd.path); + } + + AuTraceErrPtr(h_dentry); + return h_dentry; +} + +static void au_call_lkup_one(void *args) +{ + struct au_lkup_one_args *a = args; + *a->errp = au_lkup_one(a->name, a->h_parent, a->br, a->nd); +} + +#define AuLkup_ALLOW_NEG 1 +#define au_ftest_lkup(flags, name) ((flags) & AuLkup_##name) +#define au_fset_lkup(flags, name) { (flags) |= AuLkup_##name; } +#define au_fclr_lkup(flags, name) { (flags) &= ~AuLkup_##name; } + +struct au_do_lookup_args { + unsigned int flags; + mode_t type; + struct nameidata *nd; +}; + +/* + * returns positive/negative dentry, NULL or an error. + * NULL means whiteout-ed or not-found. + */ +static struct dentry* +au_do_lookup(struct dentry *h_parent, struct dentry *dentry, + aufs_bindex_t bindex, struct qstr *wh_name, + struct au_do_lookup_args *args) +{ + struct dentry *h_dentry; + struct inode *h_inode, *inode; + struct au_branch *br; + int wh_found, opq; + unsigned char wh_able; + const unsigned char allow_neg = !!au_ftest_lkup(args->flags, ALLOW_NEG); + + wh_found = 0; + br = au_sbr(dentry->d_sb, bindex); + wh_able = !!au_br_whable(br->br_perm); + if (wh_able) + wh_found = au_wh_test(h_parent, wh_name, br, /*try_sio*/0); + h_dentry = ERR_PTR(wh_found); + if (!wh_found) + goto real_lookup; + if (unlikely(wh_found < 0)) + goto out; + + /* We found a whiteout */ + /* au_set_dbend(dentry, bindex); */ + au_set_dbwh(dentry, bindex); + if (!allow_neg) + return NULL; /* success */ + + real_lookup: + h_dentry = au_lkup_one(&dentry->d_name, h_parent, br, args->nd); + if (IS_ERR(h_dentry)) + goto out; + + h_inode = h_dentry->d_inode; + if (!h_inode) { + if (!allow_neg) + goto out_neg; + } else if (wh_found + || (args->type && args->type != (h_inode->i_mode & S_IFMT))) + goto out_neg; + + if (au_dbend(dentry) <= bindex) + au_set_dbend(dentry, bindex); + if (au_dbstart(dentry) < 0 || bindex < au_dbstart(dentry)) + au_set_dbstart(dentry, bindex); + au_set_h_dptr(dentry, bindex, h_dentry); + + inode = dentry->d_inode; + if (!h_inode || !S_ISDIR(h_inode->i_mode) || !wh_able + || (inode && !S_ISDIR(inode->i_mode))) + goto out; /* success */ + + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + opq = au_diropq_test(h_dentry, br); + mutex_unlock(&h_inode->i_mutex); + if (opq > 0) + au_set_dbdiropq(dentry, bindex); + else if (unlikely(opq < 0)) { + au_set_h_dptr(dentry, bindex, NULL); + h_dentry = ERR_PTR(opq); + } + goto out; + + out_neg: + dput(h_dentry); + h_dentry = NULL; + out: + return h_dentry; +} + +static int au_test_shwh(struct super_block *sb, const struct qstr *name) +{ + if (unlikely(!au_opt_test(au_mntflags(sb), SHWH) + && !strncmp(name->name, AUFS_WH_PFX, AUFS_WH_PFX_LEN))) + return -EPERM; + return 0; +} + +/* + * returns the number of lower positive dentries, + * otherwise an error. + * can be called at unlinking with @type is zero. + */ +int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type, + struct nameidata *nd) +{ + int npositive, err; + aufs_bindex_t bindex, btail, bdiropq; + unsigned char isdir; + struct qstr whname; + struct au_do_lookup_args args = { + .flags = 0, + .type = type, + .nd = nd + }; + const struct qstr *name = &dentry->d_name; + struct dentry *parent; + struct inode *inode; + + err = au_test_shwh(dentry->d_sb, name); + if (unlikely(err)) + goto out; + + err = au_wh_name_alloc(&whname, name); + if (unlikely(err)) + goto out; + + inode = dentry->d_inode; + isdir = !!(inode && S_ISDIR(inode->i_mode)); + if (!type) + au_fset_lkup(args.flags, ALLOW_NEG); + + npositive = 0; + parent = dget_parent(dentry); + btail = au_dbtaildir(parent); + for (bindex = bstart; bindex <= btail; bindex++) { + struct dentry *h_parent, *h_dentry; + struct inode *h_inode, *h_dir; + + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry) { + if (h_dentry->d_inode) + npositive++; + if (type != S_IFDIR) + break; + continue; + } + h_parent = au_h_dptr(parent, bindex); + if (!h_parent) + continue; + h_dir = h_parent->d_inode; + if (!h_dir || !S_ISDIR(h_dir->i_mode)) + continue; + + mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_PARENT); + h_dentry = au_do_lookup(h_parent, dentry, bindex, &whname, + &args); + mutex_unlock(&h_dir->i_mutex); + err = PTR_ERR(h_dentry); + if (IS_ERR(h_dentry)) + goto out_parent; + au_fclr_lkup(args.flags, ALLOW_NEG); + + if (au_dbwh(dentry) >= 0) + break; + if (!h_dentry) + continue; + h_inode = h_dentry->d_inode; + if (!h_inode) + continue; + npositive++; + if (!args.type) + args.type = h_inode->i_mode & S_IFMT; + if (args.type != S_IFDIR) + break; + else if (isdir) { + /* the type of lower may be different */ + bdiropq = au_dbdiropq(dentry); + if (bdiropq >= 0 && bdiropq <= bindex) + break; + } + } + + if (npositive) { + AuLabel(positive); + au_update_dbstart(dentry); + } + err = npositive; + if (unlikely(!au_opt_test(au_mntflags(dentry->d_sb), UDBA_NONE) + && au_dbstart(dentry) < 0)) + /* both of real entry and whiteout found */ + err = -EIO; + + out_parent: + dput(parent); + kfree(whname.name); + out: + return err; +} + +struct dentry *au_sio_lkup_one(struct qstr *name, struct dentry *parent, + struct au_branch *br) +{ + struct dentry *dentry; + int wkq_err; + + if (!au_test_h_perm_sio(parent->d_inode, MAY_EXEC)) + dentry = au_lkup_one(name, parent, br, /*nd*/NULL); + else { + struct au_lkup_one_args args = { + .errp = &dentry, + .name = name, + .h_parent = parent, + .br = br, + .nd = NULL + }; + + wkq_err = au_wkq_wait(au_call_lkup_one, &args); + if (unlikely(wkq_err)) + dentry = ERR_PTR(wkq_err); + } + + return dentry; +} + +/* + * lookup @dentry on @bindex which should be negative. + */ +int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex) +{ + int err; + struct dentry *parent, *h_parent, *h_dentry; + + parent = dget_parent(dentry); + h_parent = au_h_dptr(parent, bindex); + h_dentry = au_sio_lkup_one(&dentry->d_name, h_parent, + au_sbr(dentry->d_sb, bindex)); + err = PTR_ERR(h_dentry); + if (IS_ERR(h_dentry)) + goto out; + if (unlikely(h_dentry->d_inode)) { + err = -EIO; + AuIOErr("b%d %.*s should be negative.\n", + bindex, AuDLNPair(h_dentry)); + dput(h_dentry); + goto out; + } + + err = 0; + if (bindex < au_dbstart(dentry)) + au_set_dbstart(dentry, bindex); + if (au_dbend(dentry) < bindex) + au_set_dbend(dentry, bindex); + au_set_h_dptr(dentry, bindex, h_dentry); + + out: + dput(parent); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* subset of struct inode */ +struct au_iattr { + unsigned long i_ino; + /* unsigned int i_nlink; */ + uid_t i_uid; + gid_t i_gid; + u64 i_version; +/* + loff_t i_size; + blkcnt_t i_blocks; +*/ + umode_t i_mode; +}; + +static void au_iattr_save(struct au_iattr *ia, struct inode *h_inode) +{ + ia->i_ino = h_inode->i_ino; + /* ia->i_nlink = h_inode->i_nlink; */ + ia->i_uid = h_inode->i_uid; + ia->i_gid = h_inode->i_gid; + ia->i_version = h_inode->i_version; +/* + ia->i_size = h_inode->i_size; + ia->i_blocks = h_inode->i_blocks; +*/ + ia->i_mode = (h_inode->i_mode & S_IFMT); +} + +static int au_iattr_test(struct au_iattr *ia, struct inode *h_inode) +{ + return ia->i_ino != h_inode->i_ino + /* || ia->i_nlink != h_inode->i_nlink */ + || ia->i_uid != h_inode->i_uid + || ia->i_gid != h_inode->i_gid + || ia->i_version != h_inode->i_version +/* + || ia->i_size != h_inode->i_size + || ia->i_blocks != h_inode->i_blocks +*/ + || ia->i_mode != (h_inode->i_mode & S_IFMT); +} + +static int au_h_verify_dentry(struct dentry *h_dentry, struct dentry *h_parent, + struct au_branch *br) +{ + int err; + struct au_iattr ia; + struct inode *h_inode; + struct dentry *h_d; + struct super_block *h_sb; + + err = 0; + memset(&ia, -1, sizeof(ia)); + h_sb = h_dentry->d_sb; + h_inode = h_dentry->d_inode; + if (h_inode) + au_iattr_save(&ia, h_inode); + else if (au_test_nfs(h_sb) || au_test_fuse(h_sb)) + /* nfs d_revalidate may return 0 for negative dentry */ + /* fuse d_revalidate always return 0 for negative dentry */ + goto out; + + /* main purpose is namei.c:cached_lookup() and d_revalidate */ + h_d = au_lkup_one(&h_dentry->d_name, h_parent, br, /*nd*/NULL); + err = PTR_ERR(h_d); + if (IS_ERR(h_d)) + goto out; + + err = 0; + if (unlikely(h_d != h_dentry + || h_d->d_inode != h_inode + || (h_inode && au_iattr_test(&ia, h_inode)))) + err = au_busy_or_stale(); + dput(h_d); + + out: + AuTraceErr(err); + return err; +} + +int au_h_verify(struct dentry *h_dentry, unsigned int udba, struct inode *h_dir, + struct dentry *h_parent, struct au_branch *br) +{ + int err; + + err = 0; + if (udba == AuOpt_UDBA_REVAL) { + IMustLock(h_dir); + err = (h_dentry->d_parent->d_inode != h_dir); + } else if (udba == AuOpt_UDBA_HNOTIFY) + err = au_h_verify_dentry(h_dentry, h_parent, br); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static void au_do_refresh_hdentry(struct au_hdentry *p, struct au_dinfo *dinfo, + struct dentry *parent) +{ + struct dentry *h_d, *h_dp; + struct au_hdentry tmp, *q; + struct super_block *sb; + aufs_bindex_t new_bindex, bindex, bend, bwh, bdiropq; + + AuRwMustWriteLock(&dinfo->di_rwsem); + + bend = dinfo->di_bend; + bwh = dinfo->di_bwh; + bdiropq = dinfo->di_bdiropq; + for (bindex = dinfo->di_bstart; bindex <= bend; bindex++, p++) { + h_d = p->hd_dentry; + if (!h_d) + continue; + + h_dp = dget_parent(h_d); + if (h_dp == au_h_dptr(parent, bindex)) { + dput(h_dp); + continue; + } + + new_bindex = au_find_dbindex(parent, h_dp); + dput(h_dp); + if (dinfo->di_bwh == bindex) + bwh = new_bindex; + if (dinfo->di_bdiropq == bindex) + bdiropq = new_bindex; + if (new_bindex < 0) { + au_hdput(p); + p->hd_dentry = NULL; + continue; + } + + /* swap two lower dentries, and loop again */ + q = dinfo->di_hdentry + new_bindex; + tmp = *q; + *q = *p; + *p = tmp; + if (tmp.hd_dentry) { + bindex--; + p--; + } + } + + sb = parent->d_sb; + dinfo->di_bwh = -1; + if (bwh >= 0 && bwh <= au_sbend(sb) && au_sbr_whable(sb, bwh)) + dinfo->di_bwh = bwh; + + dinfo->di_bdiropq = -1; + if (bdiropq >= 0 + && bdiropq <= au_sbend(sb) + && au_sbr_whable(sb, bdiropq)) + dinfo->di_bdiropq = bdiropq; + + bend = au_dbend(parent); + p = dinfo->di_hdentry; + for (bindex = 0; bindex <= bend; bindex++, p++) + if (p->hd_dentry) { + dinfo->di_bstart = bindex; + break; + } + + p = dinfo->di_hdentry + bend; + for (bindex = bend; bindex >= 0; bindex--, p--) + if (p->hd_dentry) { + dinfo->di_bend = bindex; + break; + } +} + +/* + * returns the number of found lower positive dentries, + * otherwise an error. + */ +int au_refresh_hdentry(struct dentry *dentry, mode_t type) +{ + int npositive, err; + unsigned int sigen; + aufs_bindex_t bstart; + struct au_dinfo *dinfo; + struct super_block *sb; + struct dentry *parent; + + DiMustWriteLock(dentry); + + sb = dentry->d_sb; + AuDebugOn(IS_ROOT(dentry)); + sigen = au_sigen(sb); + parent = dget_parent(dentry); + AuDebugOn(au_digen(parent) != sigen + || au_iigen(parent->d_inode) != sigen); + + dinfo = au_di(dentry); + err = au_di_realloc(dinfo, au_sbend(sb) + 1); + npositive = err; + if (unlikely(err)) + goto out; + au_do_refresh_hdentry(dinfo->di_hdentry + dinfo->di_bstart, dinfo, + parent); + + npositive = 0; + bstart = au_dbstart(parent); + if (type != S_IFDIR && dinfo->di_bstart == bstart) + goto out_dgen; /* success */ + + npositive = au_lkup_dentry(dentry, bstart, type, /*nd*/NULL); + if (npositive < 0) + goto out; + if (dinfo->di_bwh >= 0 && dinfo->di_bwh <= dinfo->di_bstart) + d_drop(dentry); + + out_dgen: + au_update_digen(dentry); + out: + dput(parent); + AuTraceErr(npositive); + return npositive; +} + +static noinline_for_stack +int au_do_h_d_reval(struct dentry *h_dentry, struct nameidata *nd, + struct dentry *dentry, aufs_bindex_t bindex) +{ + int err, valid; + int (*reval)(struct dentry *, struct nameidata *); + + err = 0; + reval = NULL; + if (h_dentry->d_op) + reval = h_dentry->d_op->d_revalidate; + if (!reval) + goto out; + + AuDbg("b%d\n", bindex); + if (au_test_fs_null_nd(h_dentry->d_sb)) + /* it may return tri-state */ + valid = reval(h_dentry, NULL); + else { + struct nameidata h_nd; + int locked; + struct dentry *parent; + + au_h_nd(&h_nd, nd); + parent = nd->path.dentry; + locked = (nd && nd->path.dentry != dentry); + if (locked) + di_read_lock_parent(parent, AuLock_IR); + BUG_ON(bindex > au_dbend(parent)); + h_nd.path.dentry = au_h_dptr(parent, bindex); + BUG_ON(!h_nd.path.dentry); + h_nd.path.mnt = au_sbr(parent->d_sb, bindex)->br_mnt; + path_get(&h_nd.path); + valid = reval(h_dentry, &h_nd); + path_put(&h_nd.path); + if (locked) + di_read_unlock(parent, AuLock_IR); + } + + if (unlikely(valid < 0)) + err = valid; + else if (!valid) + err = -EINVAL; + + out: + AuTraceErr(err); + return err; +} + +/* todo: remove this */ +static int h_d_revalidate(struct dentry *dentry, struct inode *inode, + struct nameidata *nd, int do_udba) +{ + int err; + umode_t mode, h_mode; + aufs_bindex_t bindex, btail, bstart, ibs, ibe; + unsigned char plus, unhashed, is_root, h_plus; + struct inode *h_inode, *h_cached_inode; + struct dentry *h_dentry; + struct qstr *name, *h_name; + + err = 0; + plus = 0; + mode = 0; + ibs = -1; + ibe = -1; + unhashed = !!d_unhashed(dentry); + is_root = !!IS_ROOT(dentry); + name = &dentry->d_name; + + /* + * Theoretically, REVAL test should be unnecessary in case of INOTIFY. + * But inotify doesn't fire some necessary events, + * IN_ATTRIB for atime/nlink/pageio + * IN_DELETE for NFS dentry + * Let's do REVAL test too. + */ + if (do_udba && inode) { + mode = (inode->i_mode & S_IFMT); + plus = (inode->i_nlink > 0); + ibs = au_ibstart(inode); + ibe = au_ibend(inode); + } + + bstart = au_dbstart(dentry); + btail = bstart; + if (inode && S_ISDIR(inode->i_mode)) + btail = au_dbtaildir(dentry); + for (bindex = bstart; bindex <= btail; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + + AuDbg("b%d, %.*s\n", bindex, AuDLNPair(h_dentry)); + h_name = &h_dentry->d_name; + if (unlikely(do_udba + && !is_root + && (unhashed != !!d_unhashed(h_dentry) + || name->len != h_name->len + || memcmp(name->name, h_name->name, name->len)) + )) { + AuDbg("unhash 0x%x 0x%x, %.*s %.*s\n", + unhashed, d_unhashed(h_dentry), + AuDLNPair(dentry), AuDLNPair(h_dentry)); + goto err; + } + + err = au_do_h_d_reval(h_dentry, nd, dentry, bindex); + if (unlikely(err)) + /* do not goto err, to keep the errno */ + break; + + /* todo: plink too? */ + if (!do_udba) + continue; + + /* UDBA tests */ + h_inode = h_dentry->d_inode; + if (unlikely(!!inode != !!h_inode)) + goto err; + + h_plus = plus; + h_mode = mode; + h_cached_inode = h_inode; + if (h_inode) { + h_mode = (h_inode->i_mode & S_IFMT); + h_plus = (h_inode->i_nlink > 0); + } + if (inode && ibs <= bindex && bindex <= ibe) + h_cached_inode = au_h_iptr(inode, bindex); + + if (unlikely(plus != h_plus + || mode != h_mode + || h_cached_inode != h_inode)) + goto err; + continue; + + err: + err = -EINVAL; + break; + } + + return err; +} + +static int simple_reval_dpath(struct dentry *dentry, unsigned int sigen) +{ + int err; + struct dentry *parent; + struct inode *inode; + + inode = dentry->d_inode; + if (au_digen(dentry) == sigen && au_iigen(inode) == sigen) + return 0; + + parent = dget_parent(dentry); + di_read_lock_parent(parent, AuLock_IR); + AuDebugOn(au_digen(parent) != sigen + || au_iigen(parent->d_inode) != sigen); + au_dbg_verify_gen(parent, sigen); + + /* returns a number of positive dentries */ + err = au_refresh_hdentry(dentry, inode->i_mode & S_IFMT); + if (err >= 0) + err = au_refresh_hinode(inode, dentry); + + di_read_unlock(parent, AuLock_IR); + dput(parent); + return err; +} + +int au_reval_dpath(struct dentry *dentry, unsigned int sigen) +{ + int err; + struct dentry *d, *parent; + struct inode *inode; + + if (!au_ftest_si(au_sbi(dentry->d_sb), FAILED_REFRESH_DIRS)) + return simple_reval_dpath(dentry, sigen); + + /* slow loop, keep it simple and stupid */ + /* cf: au_cpup_dirs() */ + err = 0; + parent = NULL; + while (au_digen(dentry) != sigen + || au_iigen(dentry->d_inode) != sigen) { + d = dentry; + while (1) { + dput(parent); + parent = dget_parent(d); + if (au_digen(parent) == sigen + && au_iigen(parent->d_inode) == sigen) + break; + d = parent; + } + + inode = d->d_inode; + if (d != dentry) + di_write_lock_child(d); + + /* someone might update our dentry while we were sleeping */ + if (au_digen(d) != sigen || au_iigen(d->d_inode) != sigen) { + di_read_lock_parent(parent, AuLock_IR); + /* returns a number of positive dentries */ + err = au_refresh_hdentry(d, inode->i_mode & S_IFMT); + if (err >= 0) + err = au_refresh_hinode(inode, d); + di_read_unlock(parent, AuLock_IR); + } + + if (d != dentry) + di_write_unlock(d); + dput(parent); + if (unlikely(err)) + break; + } + + return err; +} + +/* + * if valid returns 1, otherwise 0. + */ +static int aufs_d_revalidate(struct dentry *dentry, struct nameidata *nd) +{ + int valid, err; + unsigned int sigen; + unsigned char do_udba; + struct super_block *sb; + struct inode *inode; + + err = -EINVAL; + sb = dentry->d_sb; + inode = dentry->d_inode; + aufs_read_lock(dentry, AuLock_FLUSH | AuLock_DW); + sigen = au_sigen(sb); + if (au_digen(dentry) != sigen) { + AuDebugOn(IS_ROOT(dentry)); + if (inode) + err = au_reval_dpath(dentry, sigen); + if (unlikely(err)) + goto out_dgrade; + } + if (inode && au_iigen(inode) != sigen) { + AuDebugOn(IS_ROOT(dentry)); + err = au_refresh_hinode(inode, dentry); + if (unlikely(err)) + goto out_dgrade; + } + di_downgrade_lock(dentry, AuLock_IR); + + err = -EINVAL; + do_udba = !au_opt_test(au_mntflags(sb), UDBA_NONE); + if (do_udba && inode) { + aufs_bindex_t bstart = au_ibstart(inode); + + if (bstart >= 0 + && au_test_higen(inode, au_h_iptr(inode, bstart))) + goto out; + } + + err = h_d_revalidate(dentry, inode, nd, do_udba); + if (unlikely(!err && do_udba && au_dbstart(dentry) < 0)) + /* both of real entry and whiteout found */ + err = -EIO; + goto out; + + out_dgrade: + di_downgrade_lock(dentry, AuLock_IR); + out: + aufs_read_unlock(dentry, AuLock_IR); + AuTraceErr(err); + valid = !err; + if (!valid) + AuDbg("%.*s invalid\n", AuDLNPair(dentry)); + return valid; +} + +static void aufs_d_release(struct dentry *dentry) +{ + if (dentry->d_fsdata) { + au_di_fin(dentry); + au_hn_di_reinit(dentry); + } +} + +const struct dentry_operations aufs_dop = { + .d_revalidate = aufs_d_revalidate, + .d_release = aufs_d_release +}; --- linux-2.6.35.orig/ubuntu/aufs/dbgaufs.c +++ linux-2.6.35/ubuntu/aufs/dbgaufs.c @@ -0,0 +1,334 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * debugfs interface + */ + +#include +#include "aufs.h" + +#ifndef CONFIG_SYSFS +#error DEBUG_FS depends upon SYSFS +#endif + +static struct dentry *dbgaufs; +static const mode_t dbgaufs_mode = S_IRUSR | S_IRGRP | S_IROTH; + +/* 20 is max digits length of ulong 64 */ +struct dbgaufs_arg { + int n; + char a[20 * 4]; +}; + +/* + * common function for all XINO files + */ +static int dbgaufs_xi_release(struct inode *inode __maybe_unused, + struct file *file) +{ + kfree(file->private_data); + return 0; +} + +static int dbgaufs_xi_open(struct file *xf, struct file *file, int do_fcnt) +{ + int err; + struct kstat st; + struct dbgaufs_arg *p; + + err = -ENOMEM; + p = kmalloc(sizeof(*p), GFP_NOFS); + if (unlikely(!p)) + goto out; + + err = 0; + p->n = 0; + file->private_data = p; + if (!xf) + goto out; + + err = vfs_getattr(xf->f_vfsmnt, xf->f_dentry, &st); + if (!err) { + if (do_fcnt) + p->n = snprintf + (p->a, sizeof(p->a), "%ld, %llux%lu %lld\n", + (long)file_count(xf), st.blocks, st.blksize, + (long long)st.size); + else + p->n = snprintf(p->a, sizeof(p->a), "%llux%lu %lld\n", + st.blocks, st.blksize, + (long long)st.size); + AuDebugOn(p->n >= sizeof(p->a)); + } else { + p->n = snprintf(p->a, sizeof(p->a), "err %d\n", err); + err = 0; + } + + out: + return err; + +} + +static ssize_t dbgaufs_xi_read(struct file *file, char __user *buf, + size_t count, loff_t *ppos) +{ + struct dbgaufs_arg *p; + + p = file->private_data; + return simple_read_from_buffer(buf, count, ppos, p->a, p->n); +} + +/* ---------------------------------------------------------------------- */ + +static int dbgaufs_xib_open(struct inode *inode, struct file *file) +{ + int err; + struct au_sbinfo *sbinfo; + struct super_block *sb; + + sbinfo = inode->i_private; + sb = sbinfo->si_sb; + si_noflush_read_lock(sb); + err = dbgaufs_xi_open(sbinfo->si_xib, file, /*do_fcnt*/0); + si_read_unlock(sb); + return err; +} + +static const struct file_operations dbgaufs_xib_fop = { + .owner = THIS_MODULE, + .open = dbgaufs_xib_open, + .release = dbgaufs_xi_release, + .read = dbgaufs_xi_read +}; + +/* ---------------------------------------------------------------------- */ + +#define DbgaufsXi_PREFIX "xi" + +static int dbgaufs_xino_open(struct inode *inode, struct file *file) +{ + int err; + long l; + struct au_sbinfo *sbinfo; + struct super_block *sb; + struct file *xf; + struct qstr *name; + + err = -ENOENT; + xf = NULL; + name = &file->f_dentry->d_name; + if (unlikely(name->len < sizeof(DbgaufsXi_PREFIX) + || memcmp(name->name, DbgaufsXi_PREFIX, + sizeof(DbgaufsXi_PREFIX) - 1))) + goto out; + err = strict_strtol(name->name + sizeof(DbgaufsXi_PREFIX) - 1, 10, &l); + if (unlikely(err)) + goto out; + + sbinfo = inode->i_private; + sb = sbinfo->si_sb; + si_noflush_read_lock(sb); + if (l <= au_sbend(sb)) { + xf = au_sbr(sb, (aufs_bindex_t)l)->br_xino.xi_file; + err = dbgaufs_xi_open(xf, file, /*do_fcnt*/1); + } else + err = -ENOENT; + si_read_unlock(sb); + + out: + return err; +} + +static const struct file_operations dbgaufs_xino_fop = { + .owner = THIS_MODULE, + .open = dbgaufs_xino_open, + .release = dbgaufs_xi_release, + .read = dbgaufs_xi_read +}; + +void dbgaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex) +{ + aufs_bindex_t bend; + struct au_branch *br; + struct au_xino_file *xi; + + if (!au_sbi(sb)->si_dbgaufs) + return; + + bend = au_sbend(sb); + for (; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + xi = &br->br_xino; + if (xi->xi_dbgaufs) { + debugfs_remove(xi->xi_dbgaufs); + xi->xi_dbgaufs = NULL; + } + } +} + +void dbgaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex) +{ + struct au_sbinfo *sbinfo; + struct dentry *parent; + struct au_branch *br; + struct au_xino_file *xi; + aufs_bindex_t bend; + char name[sizeof(DbgaufsXi_PREFIX) + 5]; /* "xi" bindex NULL */ + + sbinfo = au_sbi(sb); + parent = sbinfo->si_dbgaufs; + if (!parent) + return; + + bend = au_sbend(sb); + for (; bindex <= bend; bindex++) { + snprintf(name, sizeof(name), DbgaufsXi_PREFIX "%d", bindex); + br = au_sbr(sb, bindex); + xi = &br->br_xino; + AuDebugOn(xi->xi_dbgaufs); + xi->xi_dbgaufs = debugfs_create_file(name, dbgaufs_mode, parent, + sbinfo, &dbgaufs_xino_fop); + /* ignore an error */ + if (unlikely(!xi->xi_dbgaufs)) + AuWarn1("failed %s under debugfs\n", name); + } +} + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_EXPORT +static int dbgaufs_xigen_open(struct inode *inode, struct file *file) +{ + int err; + struct au_sbinfo *sbinfo; + struct super_block *sb; + + sbinfo = inode->i_private; + sb = sbinfo->si_sb; + si_noflush_read_lock(sb); + err = dbgaufs_xi_open(sbinfo->si_xigen, file, /*do_fcnt*/0); + si_read_unlock(sb); + return err; +} + +static const struct file_operations dbgaufs_xigen_fop = { + .owner = THIS_MODULE, + .open = dbgaufs_xigen_open, + .release = dbgaufs_xi_release, + .read = dbgaufs_xi_read +}; + +static int dbgaufs_xigen_init(struct au_sbinfo *sbinfo) +{ + int err; + + /* + * This function is a dynamic '__init' fucntion actually, + * so the tiny check for si_rwsem is unnecessary. + */ + /* AuRwMustWriteLock(&sbinfo->si_rwsem); */ + + err = -EIO; + sbinfo->si_dbgaufs_xigen = debugfs_create_file + ("xigen", dbgaufs_mode, sbinfo->si_dbgaufs, sbinfo, + &dbgaufs_xigen_fop); + if (sbinfo->si_dbgaufs_xigen) + err = 0; + + return err; +} +#else +static int dbgaufs_xigen_init(struct au_sbinfo *sbinfo) +{ + return 0; +} +#endif /* CONFIG_AUFS_EXPORT */ + +/* ---------------------------------------------------------------------- */ + +void dbgaufs_si_fin(struct au_sbinfo *sbinfo) +{ + /* + * This function is a dynamic '__init' fucntion actually, + * so the tiny check for si_rwsem is unnecessary. + */ + /* AuRwMustWriteLock(&sbinfo->si_rwsem); */ + + debugfs_remove_recursive(sbinfo->si_dbgaufs); + sbinfo->si_dbgaufs = NULL; + kobject_put(&sbinfo->si_kobj); +} + +int dbgaufs_si_init(struct au_sbinfo *sbinfo) +{ + int err; + char name[SysaufsSiNameLen]; + + /* + * This function is a dynamic '__init' fucntion actually, + * so the tiny check for si_rwsem is unnecessary. + */ + /* AuRwMustWriteLock(&sbinfo->si_rwsem); */ + + err = -ENOENT; + if (!dbgaufs) { + AuErr1("/debug/aufs is uninitialized\n"); + goto out; + } + + err = -EIO; + sysaufs_name(sbinfo, name); + sbinfo->si_dbgaufs = debugfs_create_dir(name, dbgaufs); + if (unlikely(!sbinfo->si_dbgaufs)) + goto out; + kobject_get(&sbinfo->si_kobj); + + sbinfo->si_dbgaufs_xib = debugfs_create_file + ("xib", dbgaufs_mode, sbinfo->si_dbgaufs, sbinfo, + &dbgaufs_xib_fop); + if (unlikely(!sbinfo->si_dbgaufs_xib)) + goto out_dir; + + err = dbgaufs_xigen_init(sbinfo); + if (!err) + goto out; /* success */ + + out_dir: + dbgaufs_si_fin(sbinfo); + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +void dbgaufs_fin(void) +{ + debugfs_remove(dbgaufs); +} + +int __init dbgaufs_init(void) +{ + int err; + + err = -EIO; + dbgaufs = debugfs_create_dir(AUFS_NAME, NULL); + if (dbgaufs) + err = 0; + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/finfo.c +++ linux-2.6.35/ubuntu/aufs/finfo.c @@ -0,0 +1,167 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * file private data + */ + +#include +#include "aufs.h" + +void au_hfput(struct au_hfile *hf, struct file *file) +{ + /* todo: direct access f_flags */ + if (vfsub_file_flags(file) & vfsub_fmode_to_uint(FMODE_EXEC)) + allow_write_access(hf->hf_file); + fput(hf->hf_file); + hf->hf_file = NULL; + atomic_dec_return(&hf->hf_br->br_count); + hf->hf_br = NULL; +} + +void au_set_h_fptr(struct file *file, aufs_bindex_t bindex, struct file *val) +{ + struct au_finfo *finfo = au_fi(file); + struct au_hfile *hf; + struct au_fidir *fidir; + + fidir = finfo->fi_hdir; + if (!fidir) { + AuDebugOn(finfo->fi_btop != bindex); + hf = &finfo->fi_htop; + } else + hf = fidir->fd_hfile + bindex; + + if (hf && hf->hf_file) + au_hfput(hf, file); + if (val) { + FiMustWriteLock(file); + hf->hf_file = val; + hf->hf_br = au_sbr(file->f_dentry->d_sb, bindex); + } +} + +void au_update_figen(struct file *file) +{ + atomic_set(&au_fi(file)->fi_generation, au_digen(file->f_dentry)); + /* smp_mb(); */ /* atomic_set */ +} + +/* ---------------------------------------------------------------------- */ + +void au_fi_mmap_lock(struct file *file) +{ + FiMustWriteLock(file); + lockdep_off(); + mutex_lock(&au_fi(file)->fi_mmap); + lockdep_on(); +} + +void au_fi_mmap_unlock(struct file *file) +{ + lockdep_off(); + mutex_unlock(&au_fi(file)->fi_mmap); + lockdep_on(); +} + +/* ---------------------------------------------------------------------- */ + +struct au_fidir *au_fidir_alloc(struct super_block *sb) +{ + struct au_fidir *fidir; + int nbr; + + nbr = au_sbend(sb) + 1; + if (nbr < 2) + nbr = 2; /* initial allocate for 2 branches */ + fidir = kzalloc(au_fidir_sz(nbr), GFP_NOFS); + if (fidir) { + fidir->fd_bbot = -1; + fidir->fd_nent = nbr; + fidir->fd_vdir_cache = NULL; + } + + return fidir; +} + +int au_fidir_realloc(struct au_finfo *finfo, int nbr) +{ + int err; + struct au_fidir *fidir, *p; + + AuRwMustWriteLock(&finfo->fi_rwsem); + fidir = finfo->fi_hdir; + AuDebugOn(!fidir); + + err = -ENOMEM; + p = au_kzrealloc(fidir, au_fidir_sz(fidir->fd_nent), au_fidir_sz(nbr), + GFP_NOFS); + if (p) { + p->fd_nent = nbr; + finfo->fi_hdir = p; + err = 0; + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +void au_finfo_fin(struct file *file) +{ + struct au_finfo *finfo; + + finfo = au_fi(file); + AuDebugOn(finfo->fi_hdir); + AuRwDestroy(&finfo->fi_rwsem); + au_cache_free_finfo(finfo); +} + +void au_fi_init_once(void *_fi) +{ + struct au_finfo *fi = _fi; + + au_rw_init(&fi->fi_rwsem); + mutex_init(&fi->fi_vm_mtx); + mutex_init(&fi->fi_mmap); +} + +int au_finfo_init(struct file *file, struct au_fidir *fidir) +{ + int err; + struct au_finfo *finfo; + struct dentry *dentry; + + err = -ENOMEM; + dentry = file->f_dentry; + finfo = au_cache_alloc_finfo(); + if (unlikely(!finfo)) + goto out; + + err = 0; + au_rw_write_lock(&finfo->fi_rwsem); + finfo->fi_btop = -1; + finfo->fi_hdir = fidir; + atomic_set(&finfo->fi_generation, au_digen(dentry)); + /* smp_mb(); */ /* atomic_set */ + + file->private_data = finfo; + +out: + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/i_op.c +++ linux-2.6.35/ubuntu/aufs/i_op.c @@ -0,0 +1,912 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode operations (except add/del/rename) + */ + +#include +#include +#include +#include +#include +#include +#include "aufs.h" + +static int h_permission(struct inode *h_inode, int mask, + struct vfsmount *h_mnt, int brperm) +{ + int err; + const unsigned char write_mask = !!(mask & (MAY_WRITE | MAY_APPEND)); + + err = -EACCES; + if ((write_mask && IS_IMMUTABLE(h_inode)) + || ((mask & MAY_EXEC) + && S_ISREG(h_inode->i_mode) + && ((h_mnt->mnt_flags & MNT_NOEXEC) + || !(h_inode->i_mode & S_IXUGO)))) + goto out; + + /* + * - skip the lower fs test in the case of write to ro branch. + * - nfs dir permission write check is optimized, but a policy for + * link/rename requires a real check. + */ + if ((write_mask && !au_br_writable(brperm)) + || (au_test_nfs(h_inode->i_sb) && S_ISDIR(h_inode->i_mode) + && write_mask && !(mask & MAY_READ)) + || !h_inode->i_op->permission) { + /* AuLabel(generic_permission); */ + err = generic_permission(h_inode, mask, + h_inode->i_op->check_acl); + } else { + /* AuLabel(h_inode->permission); */ + err = h_inode->i_op->permission(h_inode, mask); + AuTraceErr(err); + } + + if (!err) + err = devcgroup_inode_permission(h_inode, mask); + if (!err) { + mask &= (MAY_READ | MAY_WRITE | MAY_EXEC | MAY_APPEND); + err = security_inode_permission(h_inode, mask); + } + +#if 0 + if (!err) { + /* todo: do we need to call ima_path_check()? */ + struct path h_path = { + .dentry = + .mnt = h_mnt + }; + err = ima_path_check(&h_path, + mask & (MAY_READ | MAY_WRITE | MAY_EXEC), + IMA_COUNT_LEAVE); + } +#endif + + out: + return err; +} + +static int aufs_permission(struct inode *inode, int mask) +{ + int err; + aufs_bindex_t bindex, bend; + const unsigned char isdir = !!S_ISDIR(inode->i_mode), + write_mask = !!(mask & (MAY_WRITE | MAY_APPEND)); + struct inode *h_inode; + struct super_block *sb; + struct au_branch *br; + + sb = inode->i_sb; + si_read_lock(sb, AuLock_FLUSH); + ii_read_lock_child(inode); + + if (!isdir || write_mask) { + err = au_busy_or_stale(); + h_inode = au_h_iptr(inode, au_ibstart(inode)); + if (unlikely(!h_inode + || (h_inode->i_mode & S_IFMT) + != (inode->i_mode & S_IFMT))) + goto out; + + err = 0; + bindex = au_ibstart(inode); + br = au_sbr(sb, bindex); + err = h_permission(h_inode, mask, br->br_mnt, br->br_perm); + if (write_mask + && !err + && !special_file(h_inode->i_mode)) { + /* test whether the upper writable branch exists */ + err = -EROFS; + for (; bindex >= 0; bindex--) + if (!au_br_rdonly(au_sbr(sb, bindex))) { + err = 0; + break; + } + } + goto out; + } + + /* non-write to dir */ + err = 0; + bend = au_ibend(inode); + for (bindex = au_ibstart(inode); !err && bindex <= bend; bindex++) { + h_inode = au_h_iptr(inode, bindex); + if (h_inode) { + err = au_busy_or_stale(); + if (unlikely(!S_ISDIR(h_inode->i_mode))) + break; + + br = au_sbr(sb, bindex); + err = h_permission(h_inode, mask, br->br_mnt, + br->br_perm); + } + } + + out: + ii_read_unlock(inode); + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static struct dentry *aufs_lookup(struct inode *dir, struct dentry *dentry, + struct nameidata *nd) +{ + struct dentry *ret, *parent; + struct inode *inode; + struct super_block *sb; + int err, npositive; + + IMustLock(dir); + + sb = dir->i_sb; + si_read_lock(sb, AuLock_FLUSH); + ret = ERR_PTR(-ENAMETOOLONG); + if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN)) + goto out; + err = au_di_init(dentry); + ret = ERR_PTR(err); + if (unlikely(err)) + goto out; + + parent = dentry->d_parent; /* dir inode is locked */ + di_read_lock_parent(parent, AuLock_IR); + npositive = au_lkup_dentry(dentry, au_dbstart(parent), /*type*/0, nd); + di_read_unlock(parent, AuLock_IR); + err = npositive; + ret = ERR_PTR(err); + if (unlikely(err < 0)) + goto out_unlock; + + inode = NULL; + if (npositive) { + inode = au_new_inode(dentry, /*must_new*/0); + ret = (void *)inode; + } + if (IS_ERR(inode)) + goto out_unlock; + + ret = d_splice_alias(inode, dentry); + if (unlikely(IS_ERR(ret) && inode)) + ii_write_unlock(inode); + + out_unlock: + di_write_unlock(dentry); + out: + si_read_unlock(sb); + return ret; +} + +/* ---------------------------------------------------------------------- */ + +static int au_wr_dir_cpup(struct dentry *dentry, struct dentry *parent, + const unsigned char add_entry, aufs_bindex_t bcpup, + aufs_bindex_t bstart) +{ + int err; + struct dentry *h_parent; + struct inode *h_dir; + + if (add_entry) { + au_update_dbstart(dentry); + IMustLock(parent->d_inode); + } else + di_write_lock_parent(parent); + + err = 0; + if (!au_h_dptr(parent, bcpup)) { + if (bstart < bcpup) + err = au_cpdown_dirs(dentry, bcpup); + else + err = au_cpup_dirs(dentry, bcpup); + } + if (!err && add_entry) { + h_parent = au_h_dptr(parent, bcpup); + h_dir = h_parent->d_inode; + mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_PARENT); + err = au_lkup_neg(dentry, bcpup); + /* todo: no unlock here */ + mutex_unlock(&h_dir->i_mutex); + if (bstart < bcpup && au_dbstart(dentry) < 0) { + au_set_dbstart(dentry, 0); + au_update_dbrange(dentry, /*do_put_zero*/0); + } + } + + if (!add_entry) + di_write_unlock(parent); + if (!err) + err = bcpup; /* success */ + + return err; +} + +/* + * decide the branch and the parent dir where we will create a new entry. + * returns new bindex or an error. + * copyup the parent dir if needed. + */ +int au_wr_dir(struct dentry *dentry, struct dentry *src_dentry, + struct au_wr_dir_args *args) +{ + int err; + aufs_bindex_t bcpup, bstart, src_bstart; + const unsigned char add_entry = !!au_ftest_wrdir(args->flags, + ADD_ENTRY); + struct super_block *sb; + struct dentry *parent; + struct au_sbinfo *sbinfo; + + sb = dentry->d_sb; + sbinfo = au_sbi(sb); + parent = dget_parent(dentry); + bstart = au_dbstart(dentry); + bcpup = bstart; + if (args->force_btgt < 0) { + if (src_dentry) { + src_bstart = au_dbstart(src_dentry); + if (src_bstart < bstart) + bcpup = src_bstart; + } else if (add_entry) { + err = AuWbrCreate(sbinfo, dentry, + au_ftest_wrdir(args->flags, ISDIR)); + bcpup = err; + } + + if (bcpup < 0 || au_test_ro(sb, bcpup, dentry->d_inode)) { + if (add_entry) + err = AuWbrCopyup(sbinfo, dentry); + else { + if (!IS_ROOT(dentry)) { + di_read_lock_parent(parent, !AuLock_IR); + err = AuWbrCopyup(sbinfo, dentry); + di_read_unlock(parent, !AuLock_IR); + } else + err = AuWbrCopyup(sbinfo, dentry); + } + bcpup = err; + if (unlikely(err < 0)) + goto out; + } + } else { + bcpup = args->force_btgt; + AuDebugOn(au_test_ro(sb, bcpup, dentry->d_inode)); + } + AuDbg("bstart %d, bcpup %d\n", bstart, bcpup); + err = bcpup; + if (bcpup == bstart) + goto out; /* success */ + else if (bstart < bcpup) + au_update_dbrange(dentry, /*do_put_zero*/1); + + /* copyup the new parent into the branch we process */ + err = au_wr_dir_cpup(dentry, parent, add_entry, bcpup, bstart); + + out: + dput(parent); + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct dentry *au_pinned_h_parent(struct au_pin *pin) +{ + if (pin && pin->parent) + return au_h_dptr(pin->parent, pin->bindex); + return NULL; +} + +void au_unpin(struct au_pin *p) +{ + if (au_ftest_pin(p->flags, MNT_WRITE)) + mnt_drop_write(p->h_mnt); + if (!p->hdir) + return; + + au_hn_imtx_unlock(p->hdir); + if (!au_ftest_pin(p->flags, DI_LOCKED)) + di_read_unlock(p->parent, AuLock_IR); + iput(p->hdir->hi_inode); + dput(p->parent); + p->parent = NULL; + p->hdir = NULL; + p->h_mnt = NULL; +} + +int au_do_pin(struct au_pin *p) +{ + int err; + struct super_block *sb; + struct dentry *h_dentry, *h_parent; + struct au_branch *br; + struct inode *h_dir; + + err = 0; + sb = p->dentry->d_sb; + br = au_sbr(sb, p->bindex); + if (IS_ROOT(p->dentry)) { + if (au_ftest_pin(p->flags, MNT_WRITE)) { + p->h_mnt = br->br_mnt; + err = mnt_want_write(p->h_mnt); + if (unlikely(err)) { + au_fclr_pin(p->flags, MNT_WRITE); + goto out_err; + } + } + goto out; + } + + h_dentry = NULL; + if (p->bindex <= au_dbend(p->dentry)) + h_dentry = au_h_dptr(p->dentry, p->bindex); + + p->parent = dget_parent(p->dentry); + if (!au_ftest_pin(p->flags, DI_LOCKED)) + di_read_lock(p->parent, AuLock_IR, p->lsc_di); + + h_dir = NULL; + h_parent = au_h_dptr(p->parent, p->bindex); + p->hdir = au_hi(p->parent->d_inode, p->bindex); + if (p->hdir) + h_dir = p->hdir->hi_inode; + + /* udba case */ + if (unlikely(!p->hdir || !h_dir)) { + if (!au_ftest_pin(p->flags, DI_LOCKED)) + di_read_unlock(p->parent, AuLock_IR); + dput(p->parent); + p->parent = NULL; + goto out_err; + } + + au_igrab(h_dir); + au_hn_imtx_lock_nested(p->hdir, p->lsc_hi); + + if (unlikely(p->hdir->hi_inode != h_parent->d_inode)) { + err = -EBUSY; + goto out_unpin; + } + if (h_dentry) { + err = au_h_verify(h_dentry, p->udba, h_dir, h_parent, br); + if (unlikely(err)) { + au_fclr_pin(p->flags, MNT_WRITE); + goto out_unpin; + } + } + + if (au_ftest_pin(p->flags, MNT_WRITE)) { + p->h_mnt = br->br_mnt; + err = mnt_want_write(p->h_mnt); + if (unlikely(err)) { + au_fclr_pin(p->flags, MNT_WRITE); + goto out_unpin; + } + } + goto out; /* success */ + + out_unpin: + au_unpin(p); + out_err: + pr_err("err %d\n", err); + err = au_busy_or_stale(); + out: + return err; +} + +void au_pin_init(struct au_pin *p, struct dentry *dentry, + aufs_bindex_t bindex, int lsc_di, int lsc_hi, + unsigned int udba, unsigned char flags) +{ + p->dentry = dentry; + p->udba = udba; + p->lsc_di = lsc_di; + p->lsc_hi = lsc_hi; + p->flags = flags; + p->bindex = bindex; + + p->parent = NULL; + p->hdir = NULL; + p->h_mnt = NULL; +} + +int au_pin(struct au_pin *pin, struct dentry *dentry, aufs_bindex_t bindex, + unsigned int udba, unsigned char flags) +{ + au_pin_init(pin, dentry, bindex, AuLsc_DI_PARENT, AuLsc_I_PARENT2, + udba, flags); + return au_do_pin(pin); +} + +/* ---------------------------------------------------------------------- */ + +/* + * ->setattr() and ->getattr() are called in various cases. + * chmod, stat: dentry is revalidated. + * fchmod, fstat: file and dentry are not revalidated, additionally they may be + * unhashed. + * for ->setattr(), ia->ia_file is passed from ftruncate only. + */ +static int au_reval_for_attr(struct dentry *dentry, unsigned int sigen) +{ + int err; + struct inode *inode; + struct dentry *parent; + + err = 0; + inode = dentry->d_inode; + if (au_digen(dentry) != sigen || au_iigen(inode) != sigen) { + parent = dget_parent(dentry); + di_read_lock_parent(parent, AuLock_IR); + /* returns a number of positive dentries */ + err = au_refresh_hdentry(dentry, inode->i_mode & S_IFMT); + if (err >= 0) + err = au_refresh_hinode(inode, dentry); + di_read_unlock(parent, AuLock_IR); + dput(parent); + } + + AuTraceErr(err); + return err; +} + +#define AuIcpup_DID_CPUP 1 +#define au_ftest_icpup(flags, name) ((flags) & AuIcpup_##name) +#define au_fset_icpup(flags, name) { (flags) |= AuIcpup_##name; } +#define au_fclr_icpup(flags, name) { (flags) &= ~AuIcpup_##name; } + +struct au_icpup_args { + unsigned char flags; + unsigned char pin_flags; + aufs_bindex_t btgt; + unsigned int udba; + struct au_pin pin; + struct path h_path; + struct inode *h_inode; +}; + +static int au_pin_and_icpup(struct dentry *dentry, struct iattr *ia, + struct au_icpup_args *a) +{ + int err; + loff_t sz; + aufs_bindex_t bstart; + struct dentry *hi_wh, *parent; + struct inode *inode; + struct file *h_file; + struct au_wr_dir_args wr_dir_args = { + .force_btgt = -1, + .flags = 0 + }; + + bstart = au_dbstart(dentry); + inode = dentry->d_inode; + if (S_ISDIR(inode->i_mode)) + au_fset_wrdir(wr_dir_args.flags, ISDIR); + /* plink or hi_wh() case */ + if (bstart != au_ibstart(inode)) + wr_dir_args.force_btgt = au_ibstart(inode); + err = au_wr_dir(dentry, /*src_dentry*/NULL, &wr_dir_args); + if (unlikely(err < 0)) + goto out; + a->btgt = err; + if (err != bstart) + au_fset_icpup(a->flags, DID_CPUP); + + err = 0; + a->pin_flags = AuPin_MNT_WRITE; + parent = NULL; + if (!IS_ROOT(dentry)) { + au_fset_pin(a->pin_flags, DI_LOCKED); + parent = dget_parent(dentry); + di_write_lock_parent(parent); + } + + err = au_pin(&a->pin, dentry, a->btgt, a->udba, a->pin_flags); + if (unlikely(err)) + goto out_parent; + + a->h_path.dentry = au_h_dptr(dentry, bstart); + a->h_inode = a->h_path.dentry->d_inode; + mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD); + sz = -1; + if ((ia->ia_valid & ATTR_SIZE) && ia->ia_size < i_size_read(a->h_inode)) + sz = ia->ia_size; + + h_file = NULL; + hi_wh = NULL; + if (au_ftest_icpup(a->flags, DID_CPUP) && d_unhashed(dentry)) { + hi_wh = au_hi_wh(inode, a->btgt); + if (!hi_wh) { + err = au_sio_cpup_wh(dentry, a->btgt, sz, /*file*/NULL); + if (unlikely(err)) + goto out_unlock; + hi_wh = au_hi_wh(inode, a->btgt); + /* todo: revalidate hi_wh? */ + } + } + + if (parent) { + au_pin_set_parent_lflag(&a->pin, /*lflag*/0); + di_downgrade_lock(parent, AuLock_IR); + dput(parent); + parent = NULL; + } + if (!au_ftest_icpup(a->flags, DID_CPUP)) + goto out; /* success */ + + if (!d_unhashed(dentry)) { + h_file = au_h_open_pre(dentry, bstart); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else + err = au_sio_cpup_simple(dentry, a->btgt, sz, + AuCpup_DTIME); + if (!err) + a->h_path.dentry = au_h_dptr(dentry, a->btgt); + } else if (!hi_wh) + a->h_path.dentry = au_h_dptr(dentry, a->btgt); + else + a->h_path.dentry = hi_wh; /* do not dget here */ + + out_unlock: + mutex_unlock(&a->h_inode->i_mutex); + au_h_open_post(dentry, bstart, h_file); + a->h_inode = a->h_path.dentry->d_inode; + if (!err) { + mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD); + goto out; /* success */ + } + + au_unpin(&a->pin); + out_parent: + if (parent) { + di_write_unlock(parent); + dput(parent); + } + out: + return err; +} + +static int aufs_setattr(struct dentry *dentry, struct iattr *ia) +{ + int err; + struct inode *inode; + struct super_block *sb; + struct file *file; + struct au_icpup_args *a; + + inode = dentry->d_inode; + IMustLock(inode); + + err = -ENOMEM; + a = kzalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + if (ia->ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID)) + ia->ia_valid &= ~ATTR_MODE; + + file = NULL; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + if (ia->ia_valid & ATTR_FILE) { + /* currently ftruncate(2) only */ + AuDebugOn(!S_ISREG(inode->i_mode)); + file = ia->ia_file; + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out_si; + ia->ia_file = au_hf_top(file); + a->udba = AuOpt_UDBA_NONE; + } else { + /* fchmod() doesn't pass ia_file */ + a->udba = au_opt_udba(sb); + if (d_unhashed(dentry)) + a->udba = AuOpt_UDBA_NONE; + di_write_lock_child(dentry); + if (a->udba != AuOpt_UDBA_NONE) { + AuDebugOn(IS_ROOT(dentry)); + err = au_reval_for_attr(dentry, au_sigen(sb)); + if (unlikely(err)) + goto out_dentry; + } + } + + err = au_pin_and_icpup(dentry, ia, a); + if (unlikely(err < 0)) + goto out_dentry; + if (au_ftest_icpup(a->flags, DID_CPUP)) { + ia->ia_file = NULL; + ia->ia_valid &= ~ATTR_FILE; + } + + a->h_path.mnt = au_sbr_mnt(sb, a->btgt); + if ((ia->ia_valid & (ATTR_MODE | ATTR_CTIME)) + == (ATTR_MODE | ATTR_CTIME)) { + err = security_path_chmod(a->h_path.dentry, a->h_path.mnt, + ia->ia_mode); + if (unlikely(err)) + goto out_unlock; + } else if ((ia->ia_valid & (ATTR_UID | ATTR_GID)) + && (ia->ia_valid & ATTR_CTIME)) { + err = security_path_chown(&a->h_path, ia->ia_uid, ia->ia_gid); + if (unlikely(err)) + goto out_unlock; + } + + if (ia->ia_valid & ATTR_SIZE) { + struct file *f; + + if (ia->ia_size < i_size_read(inode)) { + /* unmap only */ + err = simple_setsize(inode, ia->ia_size); + if (unlikely(err)) + goto out_unlock; + } + + f = NULL; + if (ia->ia_valid & ATTR_FILE) + f = ia->ia_file; + mutex_unlock(&a->h_inode->i_mutex); + err = vfsub_trunc(&a->h_path, ia->ia_size, ia->ia_valid, f); + mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD); + } else + err = vfsub_notify_change(&a->h_path, ia); + if (!err) + au_cpup_attr_changeable(inode); + + out_unlock: + mutex_unlock(&a->h_inode->i_mutex); + au_unpin(&a->pin); + out_dentry: + di_write_unlock(dentry); + if (file) { + fi_write_unlock(file); + ia->ia_file = file; + ia->ia_valid |= ATTR_FILE; + } + out_si: + si_read_unlock(sb); + kfree(a); + out: + AuTraceErr(err); + return err; +} + +static void au_refresh_iattr(struct inode *inode, struct kstat *st, + unsigned int nlink) +{ + inode->i_mode = st->mode; + inode->i_uid = st->uid; + inode->i_gid = st->gid; + inode->i_atime = st->atime; + inode->i_mtime = st->mtime; + inode->i_ctime = st->ctime; + + au_cpup_attr_nlink(inode, /*force*/0); + if (S_ISDIR(inode->i_mode)) { + inode->i_nlink -= nlink; + inode->i_nlink += st->nlink; + } + + spin_lock(&inode->i_lock); + inode->i_blocks = st->blocks; + i_size_write(inode, st->size); + spin_unlock(&inode->i_lock); +} + +static int aufs_getattr(struct vfsmount *mnt __maybe_unused, + struct dentry *dentry, struct kstat *st) +{ + int err; + unsigned int mnt_flags; + aufs_bindex_t bindex; + unsigned char udba_none, positive; + struct super_block *sb, *h_sb; + struct inode *inode; + struct vfsmount *h_mnt; + struct dentry *h_dentry; + + err = 0; + sb = dentry->d_sb; + inode = dentry->d_inode; + si_read_lock(sb, AuLock_FLUSH); + mnt_flags = au_mntflags(sb); + udba_none = !!au_opt_test(mnt_flags, UDBA_NONE); + + /* support fstat(2) */ + if (!d_unhashed(dentry) && !udba_none) { + unsigned int sigen = au_sigen(sb); + if (au_digen(dentry) == sigen && au_iigen(inode) == sigen) + di_read_lock_child(dentry, AuLock_IR); + else { + AuDebugOn(IS_ROOT(dentry)); + di_write_lock_child(dentry); + err = au_reval_for_attr(dentry, sigen); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out; + } + } else + di_read_lock_child(dentry, AuLock_IR); + + bindex = au_ibstart(inode); + h_mnt = au_sbr_mnt(sb, bindex); + h_sb = h_mnt->mnt_sb; + if (!au_test_fs_bad_iattr(h_sb) && udba_none) + goto out_fill; /* success */ + + h_dentry = NULL; + if (au_dbstart(dentry) == bindex) + h_dentry = dget(au_h_dptr(dentry, bindex)); + else if (au_opt_test(mnt_flags, PLINK) && au_plink_test(inode)) { + h_dentry = au_plink_lkup(inode, bindex); + if (IS_ERR(h_dentry)) + goto out_fill; /* pretending success */ + } + /* illegally overlapped or something */ + if (unlikely(!h_dentry)) + goto out_fill; /* pretending success */ + + positive = !!h_dentry->d_inode; + if (positive) + err = vfs_getattr(h_mnt, h_dentry, st); + dput(h_dentry); + if (!err) { + if (positive) + au_refresh_iattr(inode, st, h_dentry->d_inode->i_nlink); + goto out_fill; /* success */ + } + goto out; + + out_fill: + generic_fillattr(inode, st); + out: + di_read_unlock(dentry, AuLock_IR); + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int h_readlink(struct dentry *dentry, int bindex, char __user *buf, + int bufsiz) +{ + int err; + struct super_block *sb; + struct dentry *h_dentry; + + err = -EINVAL; + h_dentry = au_h_dptr(dentry, bindex); + if (unlikely(!h_dentry->d_inode->i_op->readlink)) + goto out; + + err = security_inode_readlink(h_dentry); + if (unlikely(err)) + goto out; + + sb = dentry->d_sb; + if (!au_test_ro(sb, bindex, dentry->d_inode)) { + vfsub_touch_atime(au_sbr_mnt(sb, bindex), h_dentry); + fsstack_copy_attr_atime(dentry->d_inode, h_dentry->d_inode); + } + err = h_dentry->d_inode->i_op->readlink(h_dentry, buf, bufsiz); + + out: + return err; +} + +static int aufs_readlink(struct dentry *dentry, char __user *buf, int bufsiz) +{ + int err; + + aufs_read_lock(dentry, AuLock_IR); + err = h_readlink(dentry, au_dbstart(dentry), buf, bufsiz); + aufs_read_unlock(dentry, AuLock_IR); + + return err; +} + +static void *aufs_follow_link(struct dentry *dentry, struct nameidata *nd) +{ + int err; + mm_segment_t old_fs; + union { + char *k; + char __user *u; + } buf; + + err = -ENOMEM; + buf.k = __getname_gfp(GFP_NOFS); + if (unlikely(!buf.k)) + goto out; + + aufs_read_lock(dentry, AuLock_IR); + old_fs = get_fs(); + set_fs(KERNEL_DS); + err = h_readlink(dentry, au_dbstart(dentry), buf.u, PATH_MAX); + set_fs(old_fs); + aufs_read_unlock(dentry, AuLock_IR); + + if (err >= 0) { + buf.k[err] = 0; + /* will be freed by put_link */ + nd_set_link(nd, buf.k); + return NULL; /* success */ + } + __putname(buf.k); + + out: + path_put(&nd->path); + AuTraceErr(err); + return ERR_PTR(err); +} + +static void aufs_put_link(struct dentry *dentry __maybe_unused, + struct nameidata *nd, void *cookie __maybe_unused) +{ + __putname(nd_get_link(nd)); +} + +/* ---------------------------------------------------------------------- */ + +static void aufs_truncate_range(struct inode *inode __maybe_unused, + loff_t start __maybe_unused, + loff_t end __maybe_unused) +{ + AuUnsupport(); +} + +/* ---------------------------------------------------------------------- */ + +struct inode_operations aufs_symlink_iop = { + .permission = aufs_permission, + .setattr = aufs_setattr, + .getattr = aufs_getattr, + .readlink = aufs_readlink, + .follow_link = aufs_follow_link, + .put_link = aufs_put_link +}; + +struct inode_operations aufs_dir_iop = { + .create = aufs_create, + .lookup = aufs_lookup, + .link = aufs_link, + .unlink = aufs_unlink, + .symlink = aufs_symlink, + .mkdir = aufs_mkdir, + .rmdir = aufs_rmdir, + .mknod = aufs_mknod, + .rename = aufs_rename, + + .permission = aufs_permission, + .setattr = aufs_setattr, + .getattr = aufs_getattr +}; + +struct inode_operations aufs_iop = { + .permission = aufs_permission, + .setattr = aufs_setattr, + .getattr = aufs_getattr, + .truncate_range = aufs_truncate_range +}; --- linux-2.6.35.orig/ubuntu/aufs/f_op_sp.c +++ linux-2.6.35/ubuntu/aufs/f_op_sp.c @@ -0,0 +1,299 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * file operations for special files. + * while they exist in aufs virtually, + * their file I/O is handled out of aufs. + */ + +#include +#include "aufs.h" + +static ssize_t aufs_aio_read_sp(struct kiocb *kio, const struct iovec *iov, + unsigned long nv, loff_t pos) +{ + ssize_t err; + aufs_bindex_t bstart; + unsigned char wbr; + struct file *file, *h_file; + struct super_block *sb; + + file = kio->ki_filp; + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + fi_read_lock(file); + bstart = au_fbstart(file); + h_file = au_hf_top(file); + fi_read_unlock(file); + wbr = !!au_br_writable(au_sbr(sb, bstart)->br_perm); + si_read_unlock(sb); + + /* do not change the file in kio */ + AuDebugOn(!h_file->f_op || !h_file->f_op->aio_read); + err = h_file->f_op->aio_read(kio, iov, nv, pos); + if (err > 0 && wbr) + file_accessed(h_file); + + return err; +} + +static ssize_t aufs_aio_write_sp(struct kiocb *kio, const struct iovec *iov, + unsigned long nv, loff_t pos) +{ + ssize_t err; + aufs_bindex_t bstart; + unsigned char wbr; + struct super_block *sb; + struct file *file, *h_file; + + file = kio->ki_filp; + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + fi_read_lock(file); + bstart = au_fbstart(file); + h_file = au_hf_top(file); + fi_read_unlock(file); + wbr = !!au_br_writable(au_sbr(sb, bstart)->br_perm); + si_read_unlock(sb); + + /* do not change the file in kio */ + AuDebugOn(!h_file->f_op || !h_file->f_op->aio_write); + err = h_file->f_op->aio_write(kio, iov, nv, pos); + if (err > 0 && wbr) + file_update_time(h_file); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_release_sp(struct inode *inode, struct file *file) +{ + int err; + struct file *h_file; + + fi_read_lock(file); + h_file = au_hf_top(file); + fi_read_unlock(file); + /* close this fifo in aufs */ + err = h_file->f_op->release(inode, file); /* ignore */ + aufs_release_nondir(inode, file); /* ignore */ + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* currently, support only FIFO */ +enum {AuSp_FIFO, AuSp_FIFO_R, AuSp_FIFO_W, AuSp_FIFO_RW, + /* AuSp_SOCK, AuSp_CHR, AuSp_BLK, */ + AuSp_Last}; +static int aufs_open_sp(struct inode *inode, struct file *file); +static struct au_sp_fop { + int done; + struct file_operations fop; /* not 'const' */ + spinlock_t spin; +} au_sp_fop[AuSp_Last] = { + [AuSp_FIFO] = { + .fop = { + .owner = THIS_MODULE, + .open = aufs_open_sp + } + } +}; + +static void au_init_fop_sp(struct file *file) +{ + struct au_sp_fop *p; + int i; + struct file *h_file; + + p = au_sp_fop; + if (unlikely(!p->done)) { + /* initialize first time only */ + static DEFINE_SPINLOCK(spin); + + spin_lock(&spin); + if (!p->done) { + BUILD_BUG_ON(sizeof(au_sp_fop)/sizeof(*au_sp_fop) + != AuSp_Last); + for (i = 0; i < AuSp_Last; i++) + spin_lock_init(&p[i].spin); + p->done = 1; + } + spin_unlock(&spin); + } + + switch (file->f_mode & (FMODE_READ | FMODE_WRITE)) { + case FMODE_READ: + i = AuSp_FIFO_R; + break; + case FMODE_WRITE: + i = AuSp_FIFO_W; + break; + case FMODE_READ | FMODE_WRITE: + i = AuSp_FIFO_RW; + break; + default: + BUG(); + } + + p += i; + if (unlikely(!p->done)) { + /* initialize first time only */ + h_file = au_hf_top(file); + spin_lock(&p->spin); + if (!p->done) { + p->fop = *h_file->f_op; + p->fop.owner = THIS_MODULE; + if (p->fop.aio_read) + p->fop.aio_read = aufs_aio_read_sp; + if (p->fop.aio_write) + p->fop.aio_write = aufs_aio_write_sp; + p->fop.release = aufs_release_sp; + p->done = 1; + } + spin_unlock(&p->spin); + } + file->f_op = &p->fop; +} + +static int au_cpup_sp(struct dentry *dentry) +{ + int err; + aufs_bindex_t bcpup; + struct au_pin pin; + struct au_wr_dir_args wr_dir_args = { + .force_btgt = -1, + .flags = 0 + }; + + AuDbg("%.*s\n", AuDLNPair(dentry)); + + di_read_unlock(dentry, AuLock_IR); + di_write_lock_child(dentry); + err = au_wr_dir(dentry, /*src_dentry*/NULL, &wr_dir_args); + if (unlikely(err < 0)) + goto out; + bcpup = err; + err = 0; + if (bcpup == au_dbstart(dentry)) + goto out; /* success */ + + err = au_pin(&pin, dentry, bcpup, au_opt_udba(dentry->d_sb), + AuPin_MNT_WRITE); + if (!err) { + err = au_sio_cpup_simple(dentry, bcpup, -1, AuCpup_DTIME); + au_unpin(&pin); + } + + out: + di_downgrade_lock(dentry, AuLock_IR); + return err; +} + +static int au_do_open_sp(struct file *file, int flags) +{ + int err; + struct dentry *dentry; + struct super_block *sb; + struct file *h_file; + struct inode *h_inode; + + dentry = file->f_dentry; + AuDbg("%.*s\n", AuDLNPair(dentry)); + + /* + * try copying-up. + * operate on the ro branch is not an error. + */ + au_cpup_sp(dentry); /* ignore */ + + /* prepare h_file */ + err = au_do_open_nondir(file, vfsub_file_flags(file)); + if (unlikely(err)) + goto out; + + sb = dentry->d_sb; + h_file = au_hf_top(file); + h_inode = h_file->f_dentry->d_inode; + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + si_read_unlock(sb); + /* open this fifo in aufs */ + err = h_inode->i_fop->open(file->f_dentry->d_inode, file); + si_noflush_read_lock(sb); + fi_write_lock(file); + di_read_lock_child(dentry, AuLock_IR); + if (!err) + au_init_fop_sp(file); + else + au_finfo_fin(file); + + out: + return err; +} + +static int aufs_open_sp(struct inode *inode, struct file *file) +{ + int err; + struct super_block *sb; + + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + err = au_do_open(file, au_do_open_sp, /*fidir*/NULL); + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +void au_init_special_fop(struct inode *inode, umode_t mode, dev_t rdev) +{ + init_special_inode(inode, mode, rdev); + + switch (mode & S_IFMT) { + case S_IFIFO: + inode->i_fop = &au_sp_fop[AuSp_FIFO].fop; + /*FALLTHROUGH*/ + case S_IFCHR: + case S_IFBLK: + case S_IFSOCK: + break; + default: + AuDebugOn(1); + } +} + +int au_special_file(umode_t mode) +{ + int ret; + + ret = 0; + switch (mode & S_IFMT) { + case S_IFIFO: +#if 0 + case S_IFCHR: + case S_IFBLK: + case S_IFSOCK: +#endif + ret = 1; + } + + return ret; +} --- linux-2.6.35.orig/ubuntu/aufs/opts.h +++ linux-2.6.35/ubuntu/aufs/opts.h @@ -0,0 +1,198 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * mount options/flags + */ + +#ifndef __AUFS_OPTS_H__ +#define __AUFS_OPTS_H__ + +#ifdef __KERNEL__ + +#include +#include + +struct file; +struct super_block; + +/* ---------------------------------------------------------------------- */ + +/* mount flags */ +#define AuOpt_XINO 1 /* external inode number bitmap + and translation table */ +#define AuOpt_TRUNC_XINO (1 << 1) /* truncate xino files */ +#define AuOpt_UDBA_NONE (1 << 2) /* users direct branch access */ +#define AuOpt_UDBA_REVAL (1 << 3) +#define AuOpt_UDBA_HNOTIFY (1 << 4) +#define AuOpt_SHWH (1 << 5) /* show whiteout */ +#define AuOpt_PLINK (1 << 6) /* pseudo-link */ +#define AuOpt_DIRPERM1 (1 << 7) /* unimplemented */ +#define AuOpt_REFROF (1 << 8) /* unimplemented */ +#define AuOpt_ALWAYS_DIROPQ (1 << 9) /* policy to creating diropq */ +#define AuOpt_SUM (1 << 10) /* summation for statfs(2) */ +#define AuOpt_SUM_W (1 << 11) /* unimplemented */ +#define AuOpt_WARN_PERM (1 << 12) /* warn when add-branch */ +#define AuOpt_VERBOSE (1 << 13) /* busy inode when del-branch */ +#define AuOpt_DIO (1 << 14) /* direct io */ + +#ifndef CONFIG_AUFS_HNOTIFY +#undef AuOpt_UDBA_HNOTIFY +#define AuOpt_UDBA_HNOTIFY 0 +#endif +#ifndef CONFIG_AUFS_SHWH +#undef AuOpt_SHWH +#define AuOpt_SHWH 0 +#endif + +#define AuOpt_Def (AuOpt_XINO \ + | AuOpt_UDBA_REVAL \ + | AuOpt_PLINK \ + /* | AuOpt_DIRPERM1 */ \ + | AuOpt_WARN_PERM) +#define AuOptMask_UDBA (AuOpt_UDBA_NONE \ + | AuOpt_UDBA_REVAL \ + | AuOpt_UDBA_HNOTIFY) + +#define au_opt_test(flags, name) (flags & AuOpt_##name) +#define au_opt_set(flags, name) do { \ + BUILD_BUG_ON(AuOpt_##name & AuOptMask_UDBA); \ + ((flags) |= AuOpt_##name); \ +} while (0) +#define au_opt_set_udba(flags, name) do { \ + (flags) &= ~AuOptMask_UDBA; \ + ((flags) |= AuOpt_##name); \ +} while (0) +#define au_opt_clr(flags, name) { ((flags) &= ~AuOpt_##name); } + +/* ---------------------------------------------------------------------- */ + +/* policies to select one among multiple writable branches */ +enum { + AuWbrCreate_TDP, /* top down parent */ + AuWbrCreate_RR, /* round robin */ + AuWbrCreate_MFS, /* most free space */ + AuWbrCreate_MFSV, /* mfs with seconds */ + AuWbrCreate_MFSRR, /* mfs then rr */ + AuWbrCreate_MFSRRV, /* mfs then rr with seconds */ + AuWbrCreate_PMFS, /* parent and mfs */ + AuWbrCreate_PMFSV, /* parent and mfs with seconds */ + + AuWbrCreate_Def = AuWbrCreate_TDP +}; + +enum { + AuWbrCopyup_TDP, /* top down parent */ + AuWbrCopyup_BUP, /* bottom up parent */ + AuWbrCopyup_BU, /* bottom up */ + + AuWbrCopyup_Def = AuWbrCopyup_TDP +}; + +/* ---------------------------------------------------------------------- */ + +struct au_opt_add { + aufs_bindex_t bindex; + char *pathname; + int perm; + struct path path; +}; + +struct au_opt_del { + char *pathname; + struct path h_path; +}; + +struct au_opt_mod { + char *path; + int perm; + struct dentry *h_root; +}; + +struct au_opt_xino { + char *path; + struct file *file; +}; + +struct au_opt_xino_itrunc { + aufs_bindex_t bindex; +}; + +struct au_opt_wbr_create { + int wbr_create; + int mfs_second; + unsigned long long mfsrr_watermark; +}; + +struct au_opt { + int type; + union { + struct au_opt_xino xino; + struct au_opt_xino_itrunc xino_itrunc; + struct au_opt_add add; + struct au_opt_del del; + struct au_opt_mod mod; + int dirwh; + int rdcache; + unsigned int rdblk; + unsigned int rdhash; + int udba; + struct au_opt_wbr_create wbr_create; + int wbr_copyup; + }; +}; + +/* opts flags */ +#define AuOpts_REMOUNT 1 +#define AuOpts_REFRESH_DIR (1 << 1) +#define AuOpts_REFRESH_NONDIR (1 << 2) +#define AuOpts_TRUNC_XIB (1 << 3) +#define AuOpts_REFRESH_DYAOP (1 << 4) +#define au_ftest_opts(flags, name) ((flags) & AuOpts_##name) +#define au_fset_opts(flags, name) { (flags) |= AuOpts_##name; } +#define au_fclr_opts(flags, name) { (flags) &= ~AuOpts_##name; } + +struct au_opts { + struct au_opt *opt; + int max_opt; + + unsigned int given_udba; + unsigned int flags; + unsigned long sb_flags; +}; + +/* ---------------------------------------------------------------------- */ + +const char *au_optstr_br_perm(int brperm); +const char *au_optstr_udba(int udba); +const char *au_optstr_wbr_copyup(int wbr_copyup); +const char *au_optstr_wbr_create(int wbr_create); + +void au_opts_free(struct au_opts *opts); +int au_opts_parse(struct super_block *sb, char *str, struct au_opts *opts); +int au_opts_verify(struct super_block *sb, unsigned long sb_flags, + unsigned int pending); +int au_opts_mount(struct super_block *sb, struct au_opts *opts); +int au_opts_remount(struct super_block *sb, struct au_opts *opts); + +unsigned int au_opt_udba(struct super_block *sb); + +/* ---------------------------------------------------------------------- */ + +#endif /* __KERNEL__ */ +#endif /* __AUFS_OPTS_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/sysrq.c +++ linux-2.6.35/ubuntu/aufs/sysrq.c @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * magic sysrq hanlder + */ + +#include +#include +#include +/* #include */ +#include "aufs.h" + +/* ---------------------------------------------------------------------- */ + +static void sysrq_sb(struct super_block *sb) +{ + char *plevel; + struct au_sbinfo *sbinfo; + struct file *file; + + plevel = au_plevel; + au_plevel = KERN_WARNING; + au_debug(1); + + sbinfo = au_sbi(sb); + /* since we define pr_fmt, call printk directly */ + printk(KERN_WARNING "si=%lx\n", sysaufs_si_id(sbinfo)); + printk(KERN_WARNING AUFS_NAME ": superblock\n"); + au_dpri_sb(sb); + printk(KERN_WARNING AUFS_NAME ": root dentry\n"); + au_dpri_dentry(sb->s_root); + printk(KERN_WARNING AUFS_NAME ": root inode\n"); + au_dpri_inode(sb->s_root->d_inode); +#if 0 + struct inode *i; + printk(KERN_WARNING AUFS_NAME ": isolated inode\n"); + list_for_each_entry(i, &sb->s_inodes, i_sb_list) + if (list_empty(&i->i_dentry)) + au_dpri_inode(i); +#endif + printk(KERN_WARNING AUFS_NAME ": files\n"); + list_for_each_entry(file, &sb->s_files, f_u.fu_list) { + umode_t mode; + mode = file->f_dentry->d_inode->i_mode; + if (!special_file(mode) || au_special_file(mode)) + au_dpri_file(file); + } + + au_plevel = plevel; + au_debug(0); +} + +/* ---------------------------------------------------------------------- */ + +/* module parameter */ +static char *aufs_sysrq_key = "a"; +module_param_named(sysrq, aufs_sysrq_key, charp, S_IRUGO); +MODULE_PARM_DESC(sysrq, "MagicSysRq key for " AUFS_NAME); + +static void au_sysrq(int key __maybe_unused, + struct tty_struct *tty __maybe_unused) +{ + struct kobject *kobj; + struct au_sbinfo *sbinfo; + + /* spin_lock(&sysaufs_ket->list_lock); */ + list_for_each_entry(kobj, &sysaufs_ket->list, entry) { + sbinfo = container_of(kobj, struct au_sbinfo, si_kobj); + sysrq_sb(sbinfo->si_sb); + } + /* spin_unlock(&sysaufs_ket->list_lock); */ +} + +static struct sysrq_key_op au_sysrq_op = { + .handler = au_sysrq, + .help_msg = "Aufs", + .action_msg = "Aufs", + .enable_mask = SYSRQ_ENABLE_DUMP +}; + +/* ---------------------------------------------------------------------- */ + +int __init au_sysrq_init(void) +{ + int err; + char key; + + err = -1; + key = *aufs_sysrq_key; + if ('a' <= key && key <= 'z') + err = register_sysrq_key(key, &au_sysrq_op); + if (unlikely(err)) + pr_err("err %d, sysrq=%c\n", err, key); + return err; +} + +void au_sysrq_fin(void) +{ + int err; + err = unregister_sysrq_key(*aufs_sysrq_key, &au_sysrq_op); + if (unlikely(err)) + pr_err("err %d (ignored)\n", err); +} --- linux-2.6.35.orig/ubuntu/aufs/hfsplus.c +++ linux-2.6.35/ubuntu/aufs/hfsplus.c @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * special support for filesystems which aqucires an inode mutex + * at final closing a file, eg, hfsplus. + * + * This trick is very simple and stupid, just to open the file before really + * neceeary open to tell hfsplus that this is not the final closing. + * The caller should call au_h_open_pre() after acquiring the inode mutex, + * and au_h_open_post() after releasing it. + */ + +#include +#include "aufs.h" + +struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex) +{ + struct file *h_file; + struct dentry *h_dentry; + + h_dentry = au_h_dptr(dentry, bindex); + AuDebugOn(!h_dentry); + AuDebugOn(!h_dentry->d_inode); + IMustLock(h_dentry->d_inode); + + h_file = NULL; + if (au_test_hfsplus(h_dentry->d_sb) + && S_ISREG(h_dentry->d_inode->i_mode)) + h_file = au_h_open(dentry, bindex, + O_RDONLY | O_NOATIME | O_LARGEFILE, + /*file*/NULL); + return h_file; +} + +void au_h_open_post(struct dentry *dentry, aufs_bindex_t bindex, + struct file *h_file) +{ + if (h_file) { + fput(h_file); + au_sbr_put(dentry->d_sb, bindex); + } +} --- linux-2.6.35.orig/ubuntu/aufs/vfsub.h +++ linux-2.6.35/ubuntu/aufs/vfsub.h @@ -0,0 +1,174 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sub-routines for VFS + */ + +#ifndef __AUFS_VFSUB_H__ +#define __AUFS_VFSUB_H__ + +#ifdef __KERNEL__ + +#include + +/* ---------------------------------------------------------------------- */ + +/* lock subclass for lower inode */ +/* default MAX_LOCKDEP_SUBCLASSES(8) is not enough */ +/* reduce? gave up. */ +enum { + AuLsc_I_Begin = I_MUTEX_QUOTA, /* 4 */ + AuLsc_I_PARENT, /* lower inode, parent first */ + AuLsc_I_PARENT2, /* copyup dirs */ + AuLsc_I_PARENT3, /* copyup wh */ + AuLsc_I_CHILD, + AuLsc_I_CHILD2, + AuLsc_I_End +}; + +/* to debug easier, do not make them inlined functions */ +#define MtxMustLock(mtx) AuDebugOn(!mutex_is_locked(mtx)) +#define IMustLock(i) MtxMustLock(&(i)->i_mutex) + +/* ---------------------------------------------------------------------- */ + +int vfsub_update_h_iattr(struct path *h_path, int *did); +struct file *vfsub_dentry_open(struct path *path, int flags); +struct file *vfsub_filp_open(const char *path, int oflags, int mode); +int vfsub_kern_path(const char *name, unsigned int flags, struct path *path); +struct dentry *vfsub_lookup_one_len(const char *name, struct dentry *parent, + int len); +struct dentry *vfsub_lookup_hash(struct nameidata *nd); + +/* ---------------------------------------------------------------------- */ + +struct au_hinode; +struct dentry *vfsub_lock_rename(struct dentry *d1, struct au_hinode *hdir1, + struct dentry *d2, struct au_hinode *hdir2); +void vfsub_unlock_rename(struct dentry *d1, struct au_hinode *hdir1, + struct dentry *d2, struct au_hinode *hdir2); + +int vfsub_create(struct inode *dir, struct path *path, int mode); +int vfsub_symlink(struct inode *dir, struct path *path, + const char *symname); +int vfsub_mknod(struct inode *dir, struct path *path, int mode, dev_t dev); +int vfsub_link(struct dentry *src_dentry, struct inode *dir, + struct path *path); +int vfsub_rename(struct inode *src_hdir, struct dentry *src_dentry, + struct inode *hdir, struct path *path); +int vfsub_mkdir(struct inode *dir, struct path *path, int mode); +int vfsub_rmdir(struct inode *dir, struct path *path); + +/* ---------------------------------------------------------------------- */ + +ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count, + loff_t *ppos); +ssize_t vfsub_read_k(struct file *file, void *kbuf, size_t count, + loff_t *ppos); +ssize_t vfsub_write_u(struct file *file, const char __user *ubuf, size_t count, + loff_t *ppos); +ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count, + loff_t *ppos); +int vfsub_flush(struct file *file, fl_owner_t id); +int vfsub_readdir(struct file *file, filldir_t filldir, void *arg); + +static inline unsigned int vfsub_file_flags(struct file *file) +{ + unsigned int flags; + + spin_lock(&file->f_lock); + flags = file->f_flags; + spin_unlock(&file->f_lock); + + return flags; +} + +static inline void vfsub_file_accessed(struct file *h_file) +{ + file_accessed(h_file); + vfsub_update_h_iattr(&h_file->f_path, /*did*/NULL); /*ignore*/ +} + +static inline void vfsub_touch_atime(struct vfsmount *h_mnt, + struct dentry *h_dentry) +{ + struct path h_path = { + .dentry = h_dentry, + .mnt = h_mnt + }; + touch_atime(h_mnt, h_dentry); + vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/ +} + +long vfsub_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags); +long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags); +int vfsub_trunc(struct path *h_path, loff_t length, unsigned int attr, + struct file *h_file); + +/* ---------------------------------------------------------------------- */ + +static inline loff_t vfsub_llseek(struct file *file, loff_t offset, int origin) +{ + loff_t err; + + err = vfs_llseek(file, offset, origin); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* dirty workaround for strict type of fmode_t */ +union vfsub_fmu { + fmode_t fm; + unsigned int ui; +}; + +static inline unsigned int vfsub_fmode_to_uint(fmode_t fm) +{ + union vfsub_fmu u = { + .fm = fm + }; + + BUILD_BUG_ON(sizeof(u.fm) != sizeof(u.ui)); + + return u.ui; +} + +static inline fmode_t vfsub_uint_to_fmode(unsigned int ui) +{ + union vfsub_fmu u = { + .ui = ui + }; + + return u.fm; +} + +/* ---------------------------------------------------------------------- */ + +int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode); +int vfsub_sio_rmdir(struct inode *dir, struct path *path); +int vfsub_sio_notify_change(struct path *path, struct iattr *ia); +int vfsub_notify_change(struct path *path, struct iattr *ia); +int vfsub_unlink(struct inode *dir, struct path *path, int force); + +#endif /* __KERNEL__ */ +#endif /* __AUFS_VFSUB_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/ioctl.c +++ linux-2.6.35/ubuntu/aufs/ioctl.c @@ -0,0 +1,155 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * ioctl + * plink-management and readdir in userspace. + * assist the pathconf(3) wrapper library. + */ + +#include +#include "aufs.h" + +static int au_wbr_fd(struct path *path) +{ + int err, fd; + aufs_bindex_t wbi, bindex, bend; + struct file *h_file; + struct super_block *sb; + struct dentry *root; + struct au_branch *wbr; + + err = get_unused_fd(); + if (unlikely(err < 0)) + goto out; + fd = err; + + wbi = 0; + sb = path->dentry->d_sb; + root = sb->s_root; + aufs_read_lock(root, AuLock_IR); + wbr = au_sbr(sb, wbi); + if (!(path->mnt->mnt_flags & MNT_READONLY) + && !au_br_writable(wbr->br_perm)) { + bend = au_sbend(sb); + for (bindex = 1; bindex <= bend; bindex++) { + wbr = au_sbr(sb, bindex); + if (au_br_writable(wbr->br_perm)) { + wbi = bindex; + break; + } + } + wbr = au_sbr(sb, wbi); + } + AuDbg("wbi %d\n", wbi); + h_file = au_h_open(root, wbi, O_RDONLY | O_DIRECTORY | O_LARGEFILE, + NULL); + aufs_read_unlock(root, AuLock_IR); + err = PTR_ERR(h_file); + if (IS_ERR(h_file)) + goto out_fd; + + atomic_dec(&wbr->br_count); /* cf. au_h_open() */ + fd_install(fd, h_file); + err = fd; + goto out; /* success */ + + out_fd: + put_unused_fd(fd); + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +long aufs_ioctl_dir(struct file *file, unsigned int cmd, unsigned long arg) +{ + long err; + + switch (cmd) { + case AUFS_CTL_PLINK_MAINT: + case AUFS_CTL_PLINK_CLEAN: + err = au_plink_ioctl(file, cmd); + break; + + case AUFS_CTL_RDU: + case AUFS_CTL_RDU_INO: + err = au_rdu_ioctl(file, cmd, arg); + break; + + case AUFS_CTL_WBR_FD: + err = au_wbr_fd(&file->f_path); + break; + + default: + /* do not call the lower */ + AuDbg("0x%x\n", cmd); + err = -ENOTTY; + } + + AuTraceErr(err); + return err; +} + +long aufs_ioctl_nondir(struct file *file, unsigned int cmd, unsigned long arg) +{ + long err; + + switch (cmd) { + case AUFS_CTL_WBR_FD: + err = au_wbr_fd(&file->f_path); + break; + + default: + /* do not call the lower */ + AuDbg("0x%x\n", cmd); + err = -ENOTTY; + } + + AuTraceErr(err); + return err; +} + +#ifdef CONFIG_COMPAT +long aufs_compat_ioctl_dir(struct file *file, unsigned int cmd, + unsigned long arg) +{ + long err; + + switch (cmd) { + case AUFS_CTL_RDU: + case AUFS_CTL_RDU_INO: + err = au_rdu_compat_ioctl(file, cmd, arg); + break; + + default: + err = aufs_ioctl_dir(file, cmd, arg); + } + + AuTraceErr(err); + return err; +} + +#if 0 /* unused yet */ +long aufs_compat_ioctl_nondir(struct file *file, unsigned int cmd, + unsigned long arg) +{ + return aufs_ioctl_nondir(file, cmd, (unsigned long)compat_ptr(arg)); +} +#endif +#endif --- linux-2.6.35.orig/ubuntu/aufs/dcsub.c +++ linux-2.6.35/ubuntu/aufs/dcsub.c @@ -0,0 +1,200 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sub-routines for dentry cache + */ + +#include "aufs.h" + +static void au_dpage_free(struct au_dpage *dpage) +{ + int i; + struct dentry **p; + + p = dpage->dentries; + for (i = 0; i < dpage->ndentry; i++) + dput(*p++); + free_page((unsigned long)dpage->dentries); +} + +int au_dpages_init(struct au_dcsub_pages *dpages, gfp_t gfp) +{ + int err; + void *p; + + err = -ENOMEM; + dpages->dpages = kmalloc(sizeof(*dpages->dpages), gfp); + if (unlikely(!dpages->dpages)) + goto out; + + p = (void *)__get_free_page(gfp); + if (unlikely(!p)) + goto out_dpages; + + dpages->dpages[0].ndentry = 0; + dpages->dpages[0].dentries = p; + dpages->ndpage = 1; + return 0; /* success */ + + out_dpages: + kfree(dpages->dpages); + out: + return err; +} + +void au_dpages_free(struct au_dcsub_pages *dpages) +{ + int i; + struct au_dpage *p; + + p = dpages->dpages; + for (i = 0; i < dpages->ndpage; i++) + au_dpage_free(p++); + kfree(dpages->dpages); +} + +static int au_dpages_append(struct au_dcsub_pages *dpages, + struct dentry *dentry, gfp_t gfp) +{ + int err, sz; + struct au_dpage *dpage; + void *p; + + dpage = dpages->dpages + dpages->ndpage - 1; + sz = PAGE_SIZE / sizeof(dentry); + if (unlikely(dpage->ndentry >= sz)) { + AuLabel(new dpage); + err = -ENOMEM; + sz = dpages->ndpage * sizeof(*dpages->dpages); + p = au_kzrealloc(dpages->dpages, sz, + sz + sizeof(*dpages->dpages), gfp); + if (unlikely(!p)) + goto out; + + dpages->dpages = p; + dpage = dpages->dpages + dpages->ndpage; + p = (void *)__get_free_page(gfp); + if (unlikely(!p)) + goto out; + + dpage->ndentry = 0; + dpage->dentries = p; + dpages->ndpage++; + } + + dpage->dentries[dpage->ndentry++] = dget(dentry); + return 0; /* success */ + + out: + return err; +} + +int au_dcsub_pages(struct au_dcsub_pages *dpages, struct dentry *root, + au_dpages_test test, void *arg) +{ + int err; + struct dentry *this_parent = root; + struct list_head *next; + struct super_block *sb = root->d_sb; + + err = 0; + spin_lock(&dcache_lock); + repeat: + next = this_parent->d_subdirs.next; + resume: + if (this_parent->d_sb == sb + && !IS_ROOT(this_parent) + && atomic_read(&this_parent->d_count) + && this_parent->d_inode + && (!test || test(this_parent, arg))) { + err = au_dpages_append(dpages, this_parent, GFP_ATOMIC); + if (unlikely(err)) + goto out; + } + + while (next != &this_parent->d_subdirs) { + struct list_head *tmp = next; + struct dentry *dentry = list_entry(tmp, struct dentry, + d_u.d_child); + next = tmp->next; + if (/*d_unhashed(dentry) || */!dentry->d_inode) + continue; + if (!list_empty(&dentry->d_subdirs)) { + this_parent = dentry; + goto repeat; + } + if (dentry->d_sb == sb + && atomic_read(&dentry->d_count) + && (!test || test(dentry, arg))) { + err = au_dpages_append(dpages, dentry, GFP_ATOMIC); + if (unlikely(err)) + goto out; + } + } + + if (this_parent != root) { + next = this_parent->d_u.d_child.next; + this_parent = this_parent->d_parent; /* dcache_lock is locked */ + goto resume; + } + out: + spin_unlock(&dcache_lock); + return err; +} + +int au_dcsub_pages_rev(struct au_dcsub_pages *dpages, struct dentry *dentry, + int do_include, au_dpages_test test, void *arg) +{ + int err; + + err = 0; + spin_lock(&dcache_lock); + if (do_include && (!test || test(dentry, arg))) { + err = au_dpages_append(dpages, dentry, GFP_ATOMIC); + if (unlikely(err)) + goto out; + } + while (!IS_ROOT(dentry)) { + dentry = dentry->d_parent; /* dcache_lock is locked */ + if (!test || test(dentry, arg)) { + err = au_dpages_append(dpages, dentry, GFP_ATOMIC); + if (unlikely(err)) + break; + } + } + + out: + spin_unlock(&dcache_lock); + + return err; +} + +int au_test_subdir(struct dentry *d1, struct dentry *d2) +{ + struct path path[2] = { + { + .dentry = d1 + }, + { + .dentry = d2 + } + }; + + return path_is_under(path + 0, path + 1); +} --- linux-2.6.35.orig/ubuntu/aufs/module.h +++ linux-2.6.35/ubuntu/aufs/module.h @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * module initialization and module-global + */ + +#ifndef __AUFS_MODULE_H__ +#define __AUFS_MODULE_H__ + +#ifdef __KERNEL__ + +#include + +struct path; +struct seq_file; + +/* module parameters */ +extern int sysaufs_brs; + +/* ---------------------------------------------------------------------- */ + +extern int au_dir_roflags; + +void *au_kzrealloc(void *p, unsigned int nused, unsigned int new_sz, gfp_t gfp); +int au_seq_path(struct seq_file *seq, struct path *path); + +/* ---------------------------------------------------------------------- */ + +/* kmem cache */ +enum { + AuCache_DINFO, + AuCache_ICNTNR, + AuCache_FINFO, + AuCache_VDIR, + AuCache_DEHSTR, +#ifdef CONFIG_AUFS_HNOTIFY + AuCache_HNOTIFY, +#endif + AuCache_Last +}; + +#define AuCacheFlags (SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD) +#define AuCache(type) KMEM_CACHE(type, AuCacheFlags) +#define AuCacheCtor(type, ctor) \ + kmem_cache_create(#type, sizeof(struct type), \ + __alignof__(struct type), AuCacheFlags, ctor) + +extern struct kmem_cache *au_cachep[]; + +#define AuCacheFuncs(name, index) \ +static inline struct au_##name *au_cache_alloc_##name(void) \ +{ return kmem_cache_alloc(au_cachep[AuCache_##index], GFP_NOFS); } \ +static inline void au_cache_free_##name(struct au_##name *p) \ +{ kmem_cache_free(au_cachep[AuCache_##index], p); } + +AuCacheFuncs(dinfo, DINFO); +AuCacheFuncs(icntnr, ICNTNR); +AuCacheFuncs(finfo, FINFO); +AuCacheFuncs(vdir, VDIR); +AuCacheFuncs(vdir_dehstr, DEHSTR); +#ifdef CONFIG_AUFS_HNOTIFY +AuCacheFuncs(hnotify, HNOTIFY); +#endif + +#endif /* __KERNEL__ */ +#endif /* __AUFS_MODULE_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/loop.h +++ linux-2.6.35/ubuntu/aufs/loop.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * support for loopback mount as a branch + */ + +#ifndef __AUFS_LOOP_H__ +#define __AUFS_LOOP_H__ + +#ifdef __KERNEL__ + +struct dentry; +struct super_block; + +#ifdef CONFIG_AUFS_BDEV_LOOP +/* loop.c */ +int au_test_loopback_overlap(struct super_block *sb, struct dentry *h_d1, + struct dentry *h_d2); +int au_test_loopback_kthread(void); +#else +AuStubInt0(au_test_loopback_overlap, struct super_block *sb, + struct dentry *h_d1, struct dentry *h_d2) +AuStubInt0(au_test_loopback_kthread, void) +#endif /* BLK_DEV_LOOP */ + +#endif /* __KERNEL__ */ +#endif /* __AUFS_LOOP_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/file.h +++ linux-2.6.35/ubuntu/aufs/file.h @@ -0,0 +1,238 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * file operations + */ + +#ifndef __AUFS_FILE_H__ +#define __AUFS_FILE_H__ + +#ifdef __KERNEL__ + +#include +#include +#include +#include "rwsem.h" + +struct au_branch; +struct au_hfile { + struct file *hf_file; + struct au_branch *hf_br; +}; + +struct au_vdir; +struct au_fidir { + aufs_bindex_t fd_bbot; + aufs_bindex_t fd_nent; + struct au_vdir *fd_vdir_cache; + struct au_hfile fd_hfile[]; +}; + +static inline int au_fidir_sz(int nent) +{ + AuDebugOn(nent < 0); + return sizeof(struct au_fidir) + sizeof(struct au_hfile) * nent; +} + +struct au_finfo { + atomic_t fi_generation; + + struct au_rwsem fi_rwsem; + aufs_bindex_t fi_btop; + + /* do not union them */ + struct { /* for non-dir */ + struct au_hfile fi_htop; + struct vm_operations_struct *fi_hvmop; + struct mutex fi_vm_mtx; + struct mutex fi_mmap; + }; + struct au_fidir *fi_hdir; /* for dir only */ +} ____cacheline_aligned_in_smp; + +/* ---------------------------------------------------------------------- */ + +/* file.c */ +extern const struct address_space_operations aufs_aop; +unsigned int au_file_roflags(unsigned int flags); +struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags, + struct file *file); +int au_do_open(struct file *file, int (*open)(struct file *file, int flags), + struct au_fidir *fidir); +int au_reopen_nondir(struct file *file); +struct au_pin; +int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin); +int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file), + int wlock); +int au_do_flush(struct file *file, fl_owner_t id, + int (*flush)(struct file *file, fl_owner_t id)); + +/* poll.c */ +#ifdef CONFIG_AUFS_POLL +unsigned int aufs_poll(struct file *file, poll_table *wait); +#endif + +#ifdef CONFIG_AUFS_BR_HFSPLUS +/* hfsplus.c */ +struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex); +void au_h_open_post(struct dentry *dentry, aufs_bindex_t bindex, + struct file *h_file); +#else +static inline +struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex) +{ + return NULL; +} + +AuStubVoid(au_h_open_post, struct dentry *dentry, aufs_bindex_t bindex, + struct file *h_file); +#endif + +/* f_op.c */ +extern const struct file_operations aufs_file_fop; +extern const struct vm_operations_struct aufs_vm_ops; +int au_do_open_nondir(struct file *file, int flags); +int aufs_release_nondir(struct inode *inode __maybe_unused, struct file *file); + +#ifdef CONFIG_AUFS_SP_IATTR +/* f_op_sp.c */ +int au_special_file(umode_t mode); +void au_init_special_fop(struct inode *inode, umode_t mode, dev_t rdev); +#else +AuStubInt0(au_special_file, umode_t mode) +static inline void au_init_special_fop(struct inode *inode, umode_t mode, + dev_t rdev) +{ + init_special_inode(inode, mode, rdev); +} +#endif + +/* finfo.c */ +void au_hfput(struct au_hfile *hf, struct file *file); +void au_set_h_fptr(struct file *file, aufs_bindex_t bindex, + struct file *h_file); + +void au_update_figen(struct file *file); +void au_fi_mmap_lock(struct file *file); +void au_fi_mmap_unlock(struct file *file); +struct au_fidir *au_fidir_alloc(struct super_block *sb); +int au_fidir_realloc(struct au_finfo *finfo, int nbr); + +void au_fi_init_once(void *_fi); +void au_finfo_fin(struct file *file); +int au_finfo_init(struct file *file, struct au_fidir *fidir); + +/* ioctl.c */ +long aufs_ioctl_nondir(struct file *file, unsigned int cmd, unsigned long arg); +#ifdef CONFIG_COMPAT +long aufs_compat_ioctl_dir(struct file *file, unsigned int cmd, + unsigned long arg); +#endif + +/* ---------------------------------------------------------------------- */ + +static inline struct au_finfo *au_fi(struct file *file) +{ + return file->private_data; +} + +/* ---------------------------------------------------------------------- */ + +/* + * fi_read_lock, fi_write_lock, + * fi_read_unlock, fi_write_unlock, fi_downgrade_lock + */ +AuSimpleRwsemFuncs(fi, struct file *f, &au_fi(f)->fi_rwsem); + +#define FiMustNoWaiters(f) AuRwMustNoWaiters(&au_fi(f)->fi_rwsem) +#define FiMustAnyLock(f) AuRwMustAnyLock(&au_fi(f)->fi_rwsem) +#define FiMustWriteLock(f) AuRwMustWriteLock(&au_fi(f)->fi_rwsem) + +/* ---------------------------------------------------------------------- */ + +/* todo: hard/soft set? */ +static inline aufs_bindex_t au_fbstart(struct file *file) +{ + FiMustAnyLock(file); + return au_fi(file)->fi_btop; +} + +static inline aufs_bindex_t au_fbend_dir(struct file *file) +{ + FiMustAnyLock(file); + AuDebugOn(!au_fi(file)->fi_hdir); + return au_fi(file)->fi_hdir->fd_bbot; +} + +static inline struct au_vdir *au_fvdir_cache(struct file *file) +{ + FiMustAnyLock(file); + AuDebugOn(!au_fi(file)->fi_hdir); + return au_fi(file)->fi_hdir->fd_vdir_cache; +} + +static inline void au_set_fbstart(struct file *file, aufs_bindex_t bindex) +{ + FiMustWriteLock(file); + au_fi(file)->fi_btop = bindex; +} + +static inline void au_set_fbend_dir(struct file *file, aufs_bindex_t bindex) +{ + FiMustWriteLock(file); + AuDebugOn(!au_fi(file)->fi_hdir); + au_fi(file)->fi_hdir->fd_bbot = bindex; +} + +static inline void au_set_fvdir_cache(struct file *file, + struct au_vdir *vdir_cache) +{ + FiMustWriteLock(file); + AuDebugOn(!au_fi(file)->fi_hdir); + au_fi(file)->fi_hdir->fd_vdir_cache = vdir_cache; +} + +static inline struct file *au_hf_top(struct file *file) +{ + FiMustAnyLock(file); + AuDebugOn(au_fi(file)->fi_hdir); + return au_fi(file)->fi_htop.hf_file; +} + +static inline struct file *au_hf_dir(struct file *file, aufs_bindex_t bindex) +{ + FiMustAnyLock(file); + AuDebugOn(!au_fi(file)->fi_hdir); + return au_fi(file)->fi_hdir->fd_hfile[0 + bindex].hf_file; +} + +/* todo: memory barrier? */ +static inline unsigned int au_figen(struct file *f) +{ + return atomic_read(&au_fi(f)->fi_generation); +} + +static inline int au_test_mmapped(struct file *f) +{ + FiMustAnyLock(f); + return !!(au_fi(f)->fi_hvmop); +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_FILE_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/i_op_ren.c +++ linux-2.6.35/ubuntu/aufs/i_op_ren.c @@ -0,0 +1,977 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode operation (rename entry) + * todo: this is crazy monster + */ + +#include "aufs.h" + +enum { AuSRC, AuDST, AuSrcDst }; +enum { AuPARENT, AuCHILD, AuParentChild }; + +#define AuRen_ISDIR 1 +#define AuRen_ISSAMEDIR (1 << 1) +#define AuRen_WHSRC (1 << 2) +#define AuRen_WHDST (1 << 3) +#define AuRen_MNT_WRITE (1 << 4) +#define AuRen_DT_DSTDIR (1 << 5) +#define AuRen_DIROPQ (1 << 6) +#define AuRen_CPUP (1 << 7) +#define au_ftest_ren(flags, name) ((flags) & AuRen_##name) +#define au_fset_ren(flags, name) { (flags) |= AuRen_##name; } +#define au_fclr_ren(flags, name) { (flags) &= ~AuRen_##name; } + +struct au_ren_args { + struct { + struct dentry *dentry, *h_dentry, *parent, *h_parent, + *wh_dentry; + struct inode *dir, *inode; + struct au_hinode *hdir; + struct au_dtime dt[AuParentChild]; + aufs_bindex_t bstart; + } sd[AuSrcDst]; + +#define src_dentry sd[AuSRC].dentry +#define src_dir sd[AuSRC].dir +#define src_inode sd[AuSRC].inode +#define src_h_dentry sd[AuSRC].h_dentry +#define src_parent sd[AuSRC].parent +#define src_h_parent sd[AuSRC].h_parent +#define src_wh_dentry sd[AuSRC].wh_dentry +#define src_hdir sd[AuSRC].hdir +#define src_h_dir sd[AuSRC].hdir->hi_inode +#define src_dt sd[AuSRC].dt +#define src_bstart sd[AuSRC].bstart + +#define dst_dentry sd[AuDST].dentry +#define dst_dir sd[AuDST].dir +#define dst_inode sd[AuDST].inode +#define dst_h_dentry sd[AuDST].h_dentry +#define dst_parent sd[AuDST].parent +#define dst_h_parent sd[AuDST].h_parent +#define dst_wh_dentry sd[AuDST].wh_dentry +#define dst_hdir sd[AuDST].hdir +#define dst_h_dir sd[AuDST].hdir->hi_inode +#define dst_dt sd[AuDST].dt +#define dst_bstart sd[AuDST].bstart + + struct dentry *h_trap; + struct au_branch *br; + struct au_hinode *src_hinode; + struct path h_path; + struct au_nhash whlist; + aufs_bindex_t btgt; + + unsigned int flags; + + struct au_whtmp_rmdir *thargs; + struct dentry *h_dst; +}; + +/* ---------------------------------------------------------------------- */ + +/* + * functions for reverting. + * when an error happened in a single rename systemcall, we should revert + * everything as if nothing happend. + * we don't need to revert the copied-up/down the parent dir since they are + * harmless. + */ + +#define RevertFailure(fmt, ...) do { \ + AuIOErr("revert failure: " fmt " (%d, %d)\n", \ + ##__VA_ARGS__, err, rerr); \ + err = -EIO; \ +} while (0) + +static void au_ren_rev_diropq(int err, struct au_ren_args *a) +{ + int rerr; + + au_hn_imtx_lock_nested(a->src_hinode, AuLsc_I_CHILD); + rerr = au_diropq_remove(a->src_dentry, a->btgt); + au_hn_imtx_unlock(a->src_hinode); + if (rerr) + RevertFailure("remove diropq %.*s", AuDLNPair(a->src_dentry)); +} + +static void au_ren_rev_rename(int err, struct au_ren_args *a) +{ + int rerr; + + a->h_path.dentry = au_lkup_one(&a->src_dentry->d_name, a->src_h_parent, + a->br, /*nd*/NULL); + rerr = PTR_ERR(a->h_path.dentry); + if (IS_ERR(a->h_path.dentry)) { + RevertFailure("au_lkup_one %.*s", AuDLNPair(a->src_dentry)); + return; + } + + rerr = vfsub_rename(a->dst_h_dir, + au_h_dptr(a->src_dentry, a->btgt), + a->src_h_dir, &a->h_path); + d_drop(a->h_path.dentry); + dput(a->h_path.dentry); + /* au_set_h_dptr(a->src_dentry, a->btgt, NULL); */ + if (rerr) + RevertFailure("rename %.*s", AuDLNPair(a->src_dentry)); +} + +static void au_ren_rev_cpup(int err, struct au_ren_args *a) +{ + int rerr; + + a->h_path.dentry = a->dst_h_dentry; + rerr = vfsub_unlink(a->dst_h_dir, &a->h_path, /*force*/0); + au_set_h_dptr(a->src_dentry, a->btgt, NULL); + au_set_dbstart(a->src_dentry, a->src_bstart); + if (rerr) + RevertFailure("unlink %.*s", AuDLNPair(a->dst_h_dentry)); +} + +static void au_ren_rev_whtmp(int err, struct au_ren_args *a) +{ + int rerr; + + a->h_path.dentry = au_lkup_one(&a->dst_dentry->d_name, a->dst_h_parent, + a->br, /*nd*/NULL); + rerr = PTR_ERR(a->h_path.dentry); + if (IS_ERR(a->h_path.dentry)) { + RevertFailure("lookup %.*s", AuDLNPair(a->dst_dentry)); + return; + } + if (a->h_path.dentry->d_inode) { + d_drop(a->h_path.dentry); + dput(a->h_path.dentry); + return; + } + + rerr = vfsub_rename(a->dst_h_dir, a->h_dst, a->dst_h_dir, &a->h_path); + d_drop(a->h_path.dentry); + dput(a->h_path.dentry); + if (!rerr) + au_set_h_dptr(a->dst_dentry, a->btgt, dget(a->h_dst)); + else + RevertFailure("rename %.*s", AuDLNPair(a->h_dst)); +} + +static void au_ren_rev_whsrc(int err, struct au_ren_args *a) +{ + int rerr; + + a->h_path.dentry = a->src_wh_dentry; + rerr = au_wh_unlink_dentry(a->src_h_dir, &a->h_path, a->src_dentry); + if (rerr) + RevertFailure("unlink %.*s", AuDLNPair(a->src_wh_dentry)); +} + +static void au_ren_rev_drop(struct au_ren_args *a) +{ + struct dentry *d, *h_d; + int i; + aufs_bindex_t bend, bindex; + + for (i = 0; i < AuSrcDst; i++) { + d = a->sd[i].dentry; + d_drop(d); + bend = au_dbend(d); + for (bindex = au_dbstart(d); bindex <= bend; bindex++) { + h_d = au_h_dptr(d, bindex); + if (h_d) + d_drop(h_d); + } + } + + au_update_dbstart(a->dst_dentry); + if (a->thargs) + d_drop(a->h_dst); +} +#undef RevertFailure + +/* ---------------------------------------------------------------------- */ + +/* + * when we have to copyup the renaming entry, do it with the rename-target name + * in order to minimize the cost (the later actual rename is unnecessary). + * otherwise rename it on the target branch. + */ +static int au_ren_or_cpup(struct au_ren_args *a) +{ + int err; + struct dentry *d; + + d = a->src_dentry; + if (au_dbstart(d) == a->btgt) { + a->h_path.dentry = a->dst_h_dentry; + if (au_ftest_ren(a->flags, DIROPQ) + && au_dbdiropq(d) == a->btgt) + au_fclr_ren(a->flags, DIROPQ); + AuDebugOn(au_dbstart(d) != a->btgt); + err = vfsub_rename(a->src_h_dir, au_h_dptr(d, a->btgt), + a->dst_h_dir, &a->h_path); + } else { + struct mutex *h_mtx = &a->src_h_dentry->d_inode->i_mutex; + struct file *h_file; + + au_fset_ren(a->flags, CPUP); + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + au_set_dbstart(d, a->btgt); + au_set_h_dptr(d, a->btgt, dget(a->dst_h_dentry)); + h_file = au_h_open_pre(d, a->src_bstart); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else + err = au_sio_cpup_single(d, a->btgt, a->src_bstart, -1, + !AuCpup_DTIME, a->dst_parent); + mutex_unlock(h_mtx); + au_h_open_post(d, a->src_bstart, h_file); + if (!err) { + d = a->dst_dentry; + au_set_h_dptr(d, a->btgt, NULL); + au_update_dbstart(d); + } else { + au_set_h_dptr(d, a->btgt, NULL); + au_set_dbstart(d, a->src_bstart); + } + } + + return err; +} + +/* cf. aufs_rmdir() */ +static int au_ren_del_whtmp(struct au_ren_args *a) +{ + int err; + struct inode *dir; + + dir = a->dst_dir; + SiMustAnyLock(dir->i_sb); + if (!au_nhash_test_longer_wh(&a->whlist, a->btgt, + au_sbi(dir->i_sb)->si_dirwh) + || au_test_fs_remote(a->h_dst->d_sb)) { + err = au_whtmp_rmdir(dir, a->btgt, a->h_dst, &a->whlist); + if (unlikely(err)) + pr_warning("failed removing whtmp dir %.*s (%d), " + "ignored.\n", AuDLNPair(a->h_dst), err); + } else { + au_nhash_wh_free(&a->thargs->whlist); + a->thargs->whlist = a->whlist; + a->whlist.nh_num = 0; + au_whtmp_kick_rmdir(dir, a->btgt, a->h_dst, a->thargs); + dput(a->h_dst); + a->thargs = NULL; + } + + return 0; +} + +/* make it 'opaque' dir. */ +static int au_ren_diropq(struct au_ren_args *a) +{ + int err; + struct dentry *diropq; + + err = 0; + a->src_hinode = au_hi(a->src_inode, a->btgt); + au_hn_imtx_lock_nested(a->src_hinode, AuLsc_I_CHILD); + diropq = au_diropq_create(a->src_dentry, a->btgt); + au_hn_imtx_unlock(a->src_hinode); + if (IS_ERR(diropq)) + err = PTR_ERR(diropq); + dput(diropq); + + return err; +} + +static int do_rename(struct au_ren_args *a) +{ + int err; + struct dentry *d, *h_d; + + /* prepare workqueue args for asynchronous rmdir */ + h_d = a->dst_h_dentry; + if (au_ftest_ren(a->flags, ISDIR) && h_d->d_inode) { + err = -ENOMEM; + a->thargs = au_whtmp_rmdir_alloc(a->src_dentry->d_sb, GFP_NOFS); + if (unlikely(!a->thargs)) + goto out; + a->h_dst = dget(h_d); + } + + /* create whiteout for src_dentry */ + if (au_ftest_ren(a->flags, WHSRC)) { + a->src_wh_dentry + = au_wh_create(a->src_dentry, a->btgt, a->src_h_parent); + err = PTR_ERR(a->src_wh_dentry); + if (IS_ERR(a->src_wh_dentry)) + goto out_thargs; + } + + /* lookup whiteout for dentry */ + if (au_ftest_ren(a->flags, WHDST)) { + h_d = au_wh_lkup(a->dst_h_parent, &a->dst_dentry->d_name, + a->br); + err = PTR_ERR(h_d); + if (IS_ERR(h_d)) + goto out_whsrc; + if (!h_d->d_inode) + dput(h_d); + else + a->dst_wh_dentry = h_d; + } + + /* rename dentry to tmpwh */ + if (a->thargs) { + err = au_whtmp_ren(a->dst_h_dentry, a->br); + if (unlikely(err)) + goto out_whdst; + + d = a->dst_dentry; + au_set_h_dptr(d, a->btgt, NULL); + err = au_lkup_neg(d, a->btgt); + if (unlikely(err)) + goto out_whtmp; + a->dst_h_dentry = au_h_dptr(d, a->btgt); + } + + /* cpup src */ + if (a->dst_h_dentry->d_inode && a->src_bstart != a->btgt) { + struct mutex *h_mtx = &a->src_h_dentry->d_inode->i_mutex; + struct file *h_file; + + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + AuDebugOn(au_dbstart(a->src_dentry) != a->src_bstart); + h_file = au_h_open_pre(a->src_dentry, a->src_bstart); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else + err = au_sio_cpup_simple(a->src_dentry, a->btgt, -1, + !AuCpup_DTIME); + mutex_unlock(h_mtx); + au_h_open_post(a->src_dentry, a->src_bstart, h_file); + if (unlikely(err)) + goto out_whtmp; + } + + /* rename by vfs_rename or cpup */ + d = a->dst_dentry; + if (au_ftest_ren(a->flags, ISDIR) + && (a->dst_wh_dentry + || au_dbdiropq(d) == a->btgt + /* hide the lower to keep xino */ + || a->btgt < au_dbend(d) + || au_opt_test(au_mntflags(d->d_sb), ALWAYS_DIROPQ))) + au_fset_ren(a->flags, DIROPQ); + err = au_ren_or_cpup(a); + if (unlikely(err)) + /* leave the copied-up one */ + goto out_whtmp; + + /* make dir opaque */ + if (au_ftest_ren(a->flags, DIROPQ)) { + err = au_ren_diropq(a); + if (unlikely(err)) + goto out_rename; + } + + /* update target timestamps */ + AuDebugOn(au_dbstart(a->src_dentry) != a->btgt); + a->h_path.dentry = au_h_dptr(a->src_dentry, a->btgt); + vfsub_update_h_iattr(&a->h_path, /*did*/NULL); /*ignore*/ + a->src_inode->i_ctime = a->h_path.dentry->d_inode->i_ctime; + + /* remove whiteout for dentry */ + if (a->dst_wh_dentry) { + a->h_path.dentry = a->dst_wh_dentry; + err = au_wh_unlink_dentry(a->dst_h_dir, &a->h_path, + a->dst_dentry); + if (unlikely(err)) + goto out_diropq; + } + + /* remove whtmp */ + if (a->thargs) + au_ren_del_whtmp(a); /* ignore this error */ + + err = 0; + goto out_success; + + out_diropq: + if (au_ftest_ren(a->flags, DIROPQ)) + au_ren_rev_diropq(err, a); + out_rename: + if (!au_ftest_ren(a->flags, CPUP)) + au_ren_rev_rename(err, a); + else + au_ren_rev_cpup(err, a); + out_whtmp: + if (a->thargs) + au_ren_rev_whtmp(err, a); + out_whdst: + dput(a->dst_wh_dentry); + a->dst_wh_dentry = NULL; + out_whsrc: + if (a->src_wh_dentry) + au_ren_rev_whsrc(err, a); + au_ren_rev_drop(a); + out_success: + dput(a->src_wh_dentry); + dput(a->dst_wh_dentry); + out_thargs: + if (a->thargs) { + dput(a->h_dst); + au_whtmp_rmdir_free(a->thargs); + a->thargs = NULL; + } + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * test if @dentry dir can be rename destination or not. + * success means, it is a logically empty dir. + */ +static int may_rename_dstdir(struct dentry *dentry, struct au_nhash *whlist) +{ + return au_test_empty(dentry, whlist); +} + +/* + * test if @dentry dir can be rename source or not. + * if it can, return 0 and @children is filled. + * success means, + * - it is a logically empty dir. + * - or, it exists on writable branch and has no children including whiteouts + * on the lower branch. + */ +static int may_rename_srcdir(struct dentry *dentry, aufs_bindex_t btgt) +{ + int err; + unsigned int rdhash; + aufs_bindex_t bstart; + + bstart = au_dbstart(dentry); + if (bstart != btgt) { + struct au_nhash whlist; + + SiMustAnyLock(dentry->d_sb); + rdhash = au_sbi(dentry->d_sb)->si_rdhash; + if (!rdhash) + rdhash = au_rdhash_est(au_dir_size(/*file*/NULL, + dentry)); + err = au_nhash_alloc(&whlist, rdhash, GFP_NOFS); + if (unlikely(err)) + goto out; + err = au_test_empty(dentry, &whlist); + au_nhash_wh_free(&whlist); + goto out; + } + + if (bstart == au_dbtaildir(dentry)) + return 0; /* success */ + + err = au_test_empty_lower(dentry); + + out: + if (err == -ENOTEMPTY) { + AuWarn1("renaming dir who has child(ren) on multiple branches," + " is not supported\n"); + err = -EXDEV; + } + return err; +} + +/* side effect: sets whlist and h_dentry */ +static int au_ren_may_dir(struct au_ren_args *a) +{ + int err; + unsigned int rdhash; + struct dentry *d; + + d = a->dst_dentry; + SiMustAnyLock(d->d_sb); + + err = 0; + if (au_ftest_ren(a->flags, ISDIR) && a->dst_inode) { + rdhash = au_sbi(d->d_sb)->si_rdhash; + if (!rdhash) + rdhash = au_rdhash_est(au_dir_size(/*file*/NULL, d)); + err = au_nhash_alloc(&a->whlist, rdhash, GFP_NOFS); + if (unlikely(err)) + goto out; + + au_set_dbstart(d, a->dst_bstart); + err = may_rename_dstdir(d, &a->whlist); + au_set_dbstart(d, a->btgt); + } + a->dst_h_dentry = au_h_dptr(d, au_dbstart(d)); + if (unlikely(err)) + goto out; + + d = a->src_dentry; + a->src_h_dentry = au_h_dptr(d, au_dbstart(d)); + if (au_ftest_ren(a->flags, ISDIR)) { + err = may_rename_srcdir(d, a->btgt); + if (unlikely(err)) { + au_nhash_wh_free(&a->whlist); + a->whlist.nh_num = 0; + } + } + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * simple tests for rename. + * following the checks in vfs, plus the parent-child relationship. + */ +static int au_may_ren(struct au_ren_args *a) +{ + int err, isdir; + struct inode *h_inode; + + if (a->src_bstart == a->btgt) { + err = au_may_del(a->src_dentry, a->btgt, a->src_h_parent, + au_ftest_ren(a->flags, ISDIR)); + if (unlikely(err)) + goto out; + err = -EINVAL; + if (unlikely(a->src_h_dentry == a->h_trap)) + goto out; + } + + err = 0; + if (a->dst_bstart != a->btgt) + goto out; + + err = -EIO; + h_inode = a->dst_h_dentry->d_inode; + isdir = !!au_ftest_ren(a->flags, ISDIR); + if (!a->dst_dentry->d_inode) { + if (unlikely(h_inode)) + goto out; + err = au_may_add(a->dst_dentry, a->btgt, a->dst_h_parent, + isdir); + } else { + if (unlikely(!h_inode || !h_inode->i_nlink)) + goto out; + err = au_may_del(a->dst_dentry, a->btgt, a->dst_h_parent, + isdir); + if (unlikely(err)) + goto out; + err = -ENOTEMPTY; + if (unlikely(a->dst_h_dentry == a->h_trap)) + goto out; + err = 0; + } + + out: + if (unlikely(err == -ENOENT || err == -EEXIST)) + err = -EIO; + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * locking order + * (VFS) + * - src_dir and dir by lock_rename() + * - inode if exitsts + * (aufs) + * - lock all + * + src_dentry and dentry by aufs_read_and_write_lock2() which calls, + * + si_read_lock + * + di_write_lock2_child() + * + di_write_lock_child() + * + ii_write_lock_child() + * + di_write_lock_child2() + * + ii_write_lock_child2() + * + src_parent and parent + * + di_write_lock_parent() + * + ii_write_lock_parent() + * + di_write_lock_parent2() + * + ii_write_lock_parent2() + * + lower src_dir and dir by vfsub_lock_rename() + * + verify the every relationships between child and parent. if any + * of them failed, unlock all and return -EBUSY. + */ +static void au_ren_unlock(struct au_ren_args *a) +{ + struct super_block *sb; + + sb = a->dst_dentry->d_sb; + if (au_ftest_ren(a->flags, MNT_WRITE)) + mnt_drop_write(a->br->br_mnt); + vfsub_unlock_rename(a->src_h_parent, a->src_hdir, + a->dst_h_parent, a->dst_hdir); +} + +static int au_ren_lock(struct au_ren_args *a) +{ + int err; + unsigned int udba; + + err = 0; + a->src_h_parent = au_h_dptr(a->src_parent, a->btgt); + a->src_hdir = au_hi(a->src_dir, a->btgt); + a->dst_h_parent = au_h_dptr(a->dst_parent, a->btgt); + a->dst_hdir = au_hi(a->dst_dir, a->btgt); + a->h_trap = vfsub_lock_rename(a->src_h_parent, a->src_hdir, + a->dst_h_parent, a->dst_hdir); + udba = au_opt_udba(a->src_dentry->d_sb); + if (unlikely(a->src_hdir->hi_inode != a->src_h_parent->d_inode + || a->dst_hdir->hi_inode != a->dst_h_parent->d_inode)) + err = au_busy_or_stale(); + if (!err && au_dbstart(a->src_dentry) == a->btgt) + err = au_h_verify(a->src_h_dentry, udba, + a->src_h_parent->d_inode, a->src_h_parent, + a->br); + if (!err && au_dbstart(a->dst_dentry) == a->btgt) + err = au_h_verify(a->dst_h_dentry, udba, + a->dst_h_parent->d_inode, a->dst_h_parent, + a->br); + if (!err) { + err = mnt_want_write(a->br->br_mnt); + if (unlikely(err)) + goto out_unlock; + au_fset_ren(a->flags, MNT_WRITE); + goto out; /* success */ + } + + err = au_busy_or_stale(); + + out_unlock: + au_ren_unlock(a); + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +static void au_ren_refresh_dir(struct au_ren_args *a) +{ + struct inode *dir; + + dir = a->dst_dir; + dir->i_version++; + if (au_ftest_ren(a->flags, ISDIR)) { + /* is this updating defined in POSIX? */ + au_cpup_attr_timesizes(a->src_inode); + au_cpup_attr_nlink(dir, /*force*/1); + if (a->dst_inode) { + clear_nlink(a->dst_inode); + au_cpup_attr_timesizes(a->dst_inode); + } + } + if (au_ibstart(dir) == a->btgt) + au_cpup_attr_timesizes(dir); + + if (au_ftest_ren(a->flags, ISSAMEDIR)) + return; + + dir = a->src_dir; + dir->i_version++; + if (au_ftest_ren(a->flags, ISDIR)) + au_cpup_attr_nlink(dir, /*force*/1); + if (au_ibstart(dir) == a->btgt) + au_cpup_attr_timesizes(dir); +} + +static void au_ren_refresh(struct au_ren_args *a) +{ + aufs_bindex_t bend, bindex; + struct dentry *d, *h_d; + struct inode *i, *h_i; + struct super_block *sb; + + d = a->src_dentry; + au_set_dbwh(d, -1); + bend = au_dbend(d); + for (bindex = a->btgt + 1; bindex <= bend; bindex++) { + h_d = au_h_dptr(d, bindex); + if (h_d) + au_set_h_dptr(d, bindex, NULL); + } + au_set_dbend(d, a->btgt); + + sb = d->d_sb; + i = a->src_inode; + if (au_opt_test(au_mntflags(sb), PLINK) && au_plink_test(i)) + return; /* success */ + + bend = au_ibend(i); + for (bindex = a->btgt + 1; bindex <= bend; bindex++) { + h_i = au_h_iptr(i, bindex); + if (h_i) { + au_xino_write(sb, bindex, h_i->i_ino, /*ino*/0); + /* ignore this error */ + au_set_h_iptr(i, bindex, NULL, 0); + } + } + au_set_ibend(i, a->btgt); +} + +/* ---------------------------------------------------------------------- */ + +/* mainly for link(2) and rename(2) */ +int au_wbr(struct dentry *dentry, aufs_bindex_t btgt) +{ + aufs_bindex_t bdiropq, bwh; + struct dentry *parent; + struct au_branch *br; + + parent = dentry->d_parent; + IMustLock(parent->d_inode); /* dir is locked */ + + bdiropq = au_dbdiropq(parent); + bwh = au_dbwh(dentry); + br = au_sbr(dentry->d_sb, btgt); + if (au_br_rdonly(br) + || (0 <= bdiropq && bdiropq < btgt) + || (0 <= bwh && bwh < btgt)) + btgt = -1; + + AuDbg("btgt %d\n", btgt); + return btgt; +} + +/* sets src_bstart, dst_bstart and btgt */ +static int au_ren_wbr(struct au_ren_args *a) +{ + int err; + struct au_wr_dir_args wr_dir_args = { + /* .force_btgt = -1, */ + .flags = AuWrDir_ADD_ENTRY + }; + + a->src_bstart = au_dbstart(a->src_dentry); + a->dst_bstart = au_dbstart(a->dst_dentry); + if (au_ftest_ren(a->flags, ISDIR)) + au_fset_wrdir(wr_dir_args.flags, ISDIR); + wr_dir_args.force_btgt = a->src_bstart; + if (a->dst_inode && a->dst_bstart < a->src_bstart) + wr_dir_args.force_btgt = a->dst_bstart; + wr_dir_args.force_btgt = au_wbr(a->dst_dentry, wr_dir_args.force_btgt); + err = au_wr_dir(a->dst_dentry, a->src_dentry, &wr_dir_args); + a->btgt = err; + + return err; +} + +static void au_ren_dt(struct au_ren_args *a) +{ + a->h_path.dentry = a->src_h_parent; + au_dtime_store(a->src_dt + AuPARENT, a->src_parent, &a->h_path); + if (!au_ftest_ren(a->flags, ISSAMEDIR)) { + a->h_path.dentry = a->dst_h_parent; + au_dtime_store(a->dst_dt + AuPARENT, a->dst_parent, &a->h_path); + } + + au_fclr_ren(a->flags, DT_DSTDIR); + if (!au_ftest_ren(a->flags, ISDIR)) + return; + + a->h_path.dentry = a->src_h_dentry; + au_dtime_store(a->src_dt + AuCHILD, a->src_dentry, &a->h_path); + if (a->dst_h_dentry->d_inode) { + au_fset_ren(a->flags, DT_DSTDIR); + a->h_path.dentry = a->dst_h_dentry; + au_dtime_store(a->dst_dt + AuCHILD, a->dst_dentry, &a->h_path); + } +} + +static void au_ren_rev_dt(int err, struct au_ren_args *a) +{ + struct dentry *h_d; + struct mutex *h_mtx; + + au_dtime_revert(a->src_dt + AuPARENT); + if (!au_ftest_ren(a->flags, ISSAMEDIR)) + au_dtime_revert(a->dst_dt + AuPARENT); + + if (au_ftest_ren(a->flags, ISDIR) && err != -EIO) { + h_d = a->src_dt[AuCHILD].dt_h_path.dentry; + h_mtx = &h_d->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + au_dtime_revert(a->src_dt + AuCHILD); + mutex_unlock(h_mtx); + + if (au_ftest_ren(a->flags, DT_DSTDIR)) { + h_d = a->dst_dt[AuCHILD].dt_h_path.dentry; + h_mtx = &h_d->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + au_dtime_revert(a->dst_dt + AuCHILD); + mutex_unlock(h_mtx); + } + } +} + +/* ---------------------------------------------------------------------- */ + +int aufs_rename(struct inode *_src_dir, struct dentry *_src_dentry, + struct inode *_dst_dir, struct dentry *_dst_dentry) +{ + int err; + /* reduce stack space */ + struct au_ren_args *a; + + AuDbg("%.*s, %.*s\n", AuDLNPair(_src_dentry), AuDLNPair(_dst_dentry)); + IMustLock(_src_dir); + IMustLock(_dst_dir); + + err = -ENOMEM; + BUILD_BUG_ON(sizeof(*a) > PAGE_SIZE); + a = kzalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + a->src_dir = _src_dir; + a->src_dentry = _src_dentry; + a->src_inode = a->src_dentry->d_inode; + a->src_parent = a->src_dentry->d_parent; /* dir inode is locked */ + a->dst_dir = _dst_dir; + a->dst_dentry = _dst_dentry; + a->dst_inode = a->dst_dentry->d_inode; + a->dst_parent = a->dst_dentry->d_parent; /* dir inode is locked */ + if (a->dst_inode) { + IMustLock(a->dst_inode); + au_igrab(a->dst_inode); + } + + err = -ENOTDIR; + if (S_ISDIR(a->src_inode->i_mode)) { + au_fset_ren(a->flags, ISDIR); + if (unlikely(a->dst_inode && !S_ISDIR(a->dst_inode->i_mode))) + goto out_free; + aufs_read_and_write_lock2(a->dst_dentry, a->src_dentry, + AuLock_DIR | AuLock_FLUSH); + } else + aufs_read_and_write_lock2(a->dst_dentry, a->src_dentry, + AuLock_FLUSH); + + au_fset_ren(a->flags, ISSAMEDIR); /* temporary */ + di_write_lock_parent(a->dst_parent); + + /* which branch we process */ + err = au_ren_wbr(a); + if (unlikely(err < 0)) + goto out_unlock; + a->br = au_sbr(a->dst_dentry->d_sb, a->btgt); + a->h_path.mnt = a->br->br_mnt; + + /* are they available to be renamed */ + err = au_ren_may_dir(a); + if (unlikely(err)) + goto out_children; + + /* prepare the writable parent dir on the same branch */ + if (a->dst_bstart == a->btgt) { + au_fset_ren(a->flags, WHDST); + } else { + err = au_cpup_dirs(a->dst_dentry, a->btgt); + if (unlikely(err)) + goto out_children; + } + + if (a->src_dir != a->dst_dir) { + /* + * this temporary unlock is safe, + * because both dir->i_mutex are locked. + */ + di_write_unlock(a->dst_parent); + di_write_lock_parent(a->src_parent); + err = au_wr_dir_need_wh(a->src_dentry, + au_ftest_ren(a->flags, ISDIR), + &a->btgt); + di_write_unlock(a->src_parent); + di_write_lock2_parent(a->src_parent, a->dst_parent, /*isdir*/1); + au_fclr_ren(a->flags, ISSAMEDIR); + } else + err = au_wr_dir_need_wh(a->src_dentry, + au_ftest_ren(a->flags, ISDIR), + &a->btgt); + if (unlikely(err < 0)) + goto out_children; + if (err) + au_fset_ren(a->flags, WHSRC); + + /* lock them all */ + err = au_ren_lock(a); + if (unlikely(err)) + goto out_children; + + if (!au_opt_test(au_mntflags(a->dst_dir->i_sb), UDBA_NONE)) + err = au_may_ren(a); + else if (unlikely(a->dst_dentry->d_name.len > AUFS_MAX_NAMELEN)) + err = -ENAMETOOLONG; + if (unlikely(err)) + goto out_hdir; + + /* store timestamps to be revertible */ + au_ren_dt(a); + + /* here we go */ + err = do_rename(a); + if (unlikely(err)) + goto out_dt; + + /* update dir attributes */ + au_ren_refresh_dir(a); + + /* dput/iput all lower dentries */ + au_ren_refresh(a); + + goto out_hdir; /* success */ + + out_dt: + au_ren_rev_dt(err, a); + out_hdir: + au_ren_unlock(a); + out_children: + au_nhash_wh_free(&a->whlist); + out_unlock: + if (unlikely(err && au_ftest_ren(a->flags, ISDIR))) { + au_update_dbstart(a->dst_dentry); + d_drop(a->dst_dentry); + } + if (!err) + d_move(a->src_dentry, a->dst_dentry); + if (au_ftest_ren(a->flags, ISSAMEDIR)) + di_write_unlock(a->dst_parent); + else + di_write_unlock2(a->src_parent, a->dst_parent); + aufs_read_and_write_unlock2(a->dst_dentry, a->src_dentry); + out_free: + iput(a->dst_inode); + if (a->thargs) + au_whtmp_rmdir_free(a->thargs); + kfree(a); + out: + AuTraceErr(err); + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/BOM +++ linux-2.6.35/ubuntu/aufs/BOM @@ -0,0 +1,2 @@ +URL: http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git +COMMIT: b37c575759dc4535ccc03241c584ad5fe69e3b25 --- linux-2.6.35.orig/ubuntu/aufs/wbr_policy.c +++ linux-2.6.35/ubuntu/aufs/wbr_policy.c @@ -0,0 +1,696 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * policies for selecting one among multiple writable branches + */ + +#include +#include "aufs.h" + +/* subset of cpup_attr() */ +static noinline_for_stack +int au_cpdown_attr(struct path *h_path, struct dentry *h_src) +{ + int err, sbits; + struct iattr ia; + struct inode *h_isrc; + + h_isrc = h_src->d_inode; + ia.ia_valid = ATTR_FORCE | ATTR_MODE | ATTR_UID | ATTR_GID; + ia.ia_mode = h_isrc->i_mode; + ia.ia_uid = h_isrc->i_uid; + ia.ia_gid = h_isrc->i_gid; + sbits = !!(ia.ia_mode & (S_ISUID | S_ISGID)); + au_cpup_attr_flags(h_path->dentry->d_inode, h_isrc); + err = vfsub_sio_notify_change(h_path, &ia); + + /* is this nfs only? */ + if (!err && sbits && au_test_nfs(h_path->dentry->d_sb)) { + ia.ia_valid = ATTR_FORCE | ATTR_MODE; + ia.ia_mode = h_isrc->i_mode; + err = vfsub_sio_notify_change(h_path, &ia); + } + + return err; +} + +#define AuCpdown_PARENT_OPQ 1 +#define AuCpdown_WHED (1 << 1) +#define AuCpdown_MADE_DIR (1 << 2) +#define AuCpdown_DIROPQ (1 << 3) +#define au_ftest_cpdown(flags, name) ((flags) & AuCpdown_##name) +#define au_fset_cpdown(flags, name) { (flags) |= AuCpdown_##name; } +#define au_fclr_cpdown(flags, name) { (flags) &= ~AuCpdown_##name; } + +struct au_cpdown_dir_args { + struct dentry *parent; + unsigned int flags; +}; + +static int au_cpdown_dir_opq(struct dentry *dentry, aufs_bindex_t bdst, + struct au_cpdown_dir_args *a) +{ + int err; + struct dentry *opq_dentry; + + opq_dentry = au_diropq_create(dentry, bdst); + err = PTR_ERR(opq_dentry); + if (IS_ERR(opq_dentry)) + goto out; + dput(opq_dentry); + au_fset_cpdown(a->flags, DIROPQ); + + out: + return err; +} + +static int au_cpdown_dir_wh(struct dentry *dentry, struct dentry *h_parent, + struct inode *dir, aufs_bindex_t bdst) +{ + int err; + struct path h_path; + struct au_branch *br; + + br = au_sbr(dentry->d_sb, bdst); + h_path.dentry = au_wh_lkup(h_parent, &dentry->d_name, br); + err = PTR_ERR(h_path.dentry); + if (IS_ERR(h_path.dentry)) + goto out; + + err = 0; + if (h_path.dentry->d_inode) { + h_path.mnt = br->br_mnt; + err = au_wh_unlink_dentry(au_h_iptr(dir, bdst), &h_path, + dentry); + } + dput(h_path.dentry); + + out: + return err; +} + +static int au_cpdown_dir(struct dentry *dentry, aufs_bindex_t bdst, + struct dentry *h_parent, void *arg) +{ + int err, rerr; + aufs_bindex_t bopq, bstart; + struct path h_path; + struct dentry *parent; + struct inode *h_dir, *h_inode, *inode, *dir; + struct au_cpdown_dir_args *args = arg; + + bstart = au_dbstart(dentry); + /* dentry is di-locked */ + parent = dget_parent(dentry); + dir = parent->d_inode; + h_dir = h_parent->d_inode; + AuDebugOn(h_dir != au_h_iptr(dir, bdst)); + IMustLock(h_dir); + + err = au_lkup_neg(dentry, bdst); + if (unlikely(err < 0)) + goto out; + h_path.dentry = au_h_dptr(dentry, bdst); + h_path.mnt = au_sbr_mnt(dentry->d_sb, bdst); + err = vfsub_sio_mkdir(au_h_iptr(dir, bdst), &h_path, + S_IRWXU | S_IRUGO | S_IXUGO); + if (unlikely(err)) + goto out_put; + au_fset_cpdown(args->flags, MADE_DIR); + + bopq = au_dbdiropq(dentry); + au_fclr_cpdown(args->flags, WHED); + au_fclr_cpdown(args->flags, DIROPQ); + if (au_dbwh(dentry) == bdst) + au_fset_cpdown(args->flags, WHED); + if (!au_ftest_cpdown(args->flags, PARENT_OPQ) && bopq <= bdst) + au_fset_cpdown(args->flags, PARENT_OPQ); + h_inode = h_path.dentry->d_inode; + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + if (au_ftest_cpdown(args->flags, WHED)) { + err = au_cpdown_dir_opq(dentry, bdst, args); + if (unlikely(err)) { + mutex_unlock(&h_inode->i_mutex); + goto out_dir; + } + } + + err = au_cpdown_attr(&h_path, au_h_dptr(dentry, bstart)); + mutex_unlock(&h_inode->i_mutex); + if (unlikely(err)) + goto out_opq; + + if (au_ftest_cpdown(args->flags, WHED)) { + err = au_cpdown_dir_wh(dentry, h_parent, dir, bdst); + if (unlikely(err)) + goto out_opq; + } + + inode = dentry->d_inode; + if (au_ibend(inode) < bdst) + au_set_ibend(inode, bdst); + au_set_h_iptr(inode, bdst, au_igrab(h_inode), + au_hi_flags(inode, /*isdir*/1)); + goto out; /* success */ + + /* revert */ + out_opq: + if (au_ftest_cpdown(args->flags, DIROPQ)) { + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + rerr = au_diropq_remove(dentry, bdst); + mutex_unlock(&h_inode->i_mutex); + if (unlikely(rerr)) { + AuIOErr("failed removing diropq for %.*s b%d (%d)\n", + AuDLNPair(dentry), bdst, rerr); + err = -EIO; + goto out; + } + } + out_dir: + if (au_ftest_cpdown(args->flags, MADE_DIR)) { + rerr = vfsub_sio_rmdir(au_h_iptr(dir, bdst), &h_path); + if (unlikely(rerr)) { + AuIOErr("failed removing %.*s b%d (%d)\n", + AuDLNPair(dentry), bdst, rerr); + err = -EIO; + } + } + out_put: + au_set_h_dptr(dentry, bdst, NULL); + if (au_dbend(dentry) == bdst) + au_update_dbend(dentry); + out: + dput(parent); + return err; +} + +int au_cpdown_dirs(struct dentry *dentry, aufs_bindex_t bdst) +{ + int err; + struct au_cpdown_dir_args args = { + .parent = dget_parent(dentry), + .flags = 0 + }; + + err = au_cp_dirs(dentry, bdst, au_cpdown_dir, &args); + dput(args.parent); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* policies for create */ + +static int au_wbr_nonopq(struct dentry *dentry, aufs_bindex_t bindex) +{ + int err, i, j, ndentry; + aufs_bindex_t bopq; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry **dentries, *parent, *d; + + err = au_dpages_init(&dpages, GFP_NOFS); + if (unlikely(err)) + goto out; + parent = dget_parent(dentry); + err = au_dcsub_pages_rev(&dpages, parent, /*do_include*/0, /*test*/NULL, + /*arg*/NULL); + if (unlikely(err)) + goto out_free; + + err = bindex; + for (i = 0; i < dpages.ndpage; i++) { + dpage = dpages.dpages + i; + dentries = dpage->dentries; + ndentry = dpage->ndentry; + for (j = 0; j < ndentry; j++) { + d = dentries[j]; + di_read_lock_parent2(d, !AuLock_IR); + bopq = au_dbdiropq(d); + di_read_unlock(d, !AuLock_IR); + if (bopq >= 0 && bopq < err) + err = bopq; + } + } + +out_free: + dput(parent); + au_dpages_free(&dpages); +out: + return err; +} + +static int au_wbr_bu(struct super_block *sb, aufs_bindex_t bindex) +{ + for (; bindex >= 0; bindex--) + if (!au_br_rdonly(au_sbr(sb, bindex))) + return bindex; + return -EROFS; +} + +/* top down parent */ +static int au_wbr_create_tdp(struct dentry *dentry, int isdir __maybe_unused) +{ + int err; + aufs_bindex_t bstart, bindex; + struct super_block *sb; + struct dentry *parent, *h_parent; + + sb = dentry->d_sb; + bstart = au_dbstart(dentry); + err = bstart; + if (!au_br_rdonly(au_sbr(sb, bstart))) + goto out; + + err = -EROFS; + parent = dget_parent(dentry); + for (bindex = au_dbstart(parent); bindex < bstart; bindex++) { + h_parent = au_h_dptr(parent, bindex); + if (!h_parent || !h_parent->d_inode) + continue; + + if (!au_br_rdonly(au_sbr(sb, bindex))) { + err = bindex; + break; + } + } + dput(parent); + + /* bottom up here */ + if (unlikely(err < 0)) { + err = au_wbr_bu(sb, bstart - 1); + if (err >= 0) + err = au_wbr_nonopq(dentry, err); + } + + out: + AuDbg("b%d\n", err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* an exception for the policy other than tdp */ +static int au_wbr_create_exp(struct dentry *dentry) +{ + int err; + aufs_bindex_t bwh, bdiropq; + struct dentry *parent; + + err = -1; + bwh = au_dbwh(dentry); + parent = dget_parent(dentry); + bdiropq = au_dbdiropq(parent); + if (bwh >= 0) { + if (bdiropq >= 0) + err = min(bdiropq, bwh); + else + err = bwh; + AuDbg("%d\n", err); + } else if (bdiropq >= 0) { + err = bdiropq; + AuDbg("%d\n", err); + } + dput(parent); + + if (err >= 0) + err = au_wbr_nonopq(dentry, err); + + if (err >= 0 && au_br_rdonly(au_sbr(dentry->d_sb, err))) + err = -1; + + AuDbg("%d\n", err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* round robin */ +static int au_wbr_create_init_rr(struct super_block *sb) +{ + int err; + + err = au_wbr_bu(sb, au_sbend(sb)); + atomic_set(&au_sbi(sb)->si_wbr_rr_next, -err); /* less important */ + /* smp_mb(); */ + + AuDbg("b%d\n", err); + return err; +} + +static int au_wbr_create_rr(struct dentry *dentry, int isdir) +{ + int err, nbr; + unsigned int u; + aufs_bindex_t bindex, bend; + struct super_block *sb; + atomic_t *next; + + err = au_wbr_create_exp(dentry); + if (err >= 0) + goto out; + + sb = dentry->d_sb; + next = &au_sbi(sb)->si_wbr_rr_next; + bend = au_sbend(sb); + nbr = bend + 1; + for (bindex = 0; bindex <= bend; bindex++) { + if (!isdir) { + err = atomic_dec_return(next) + 1; + /* modulo for 0 is meaningless */ + if (unlikely(!err)) + err = atomic_dec_return(next) + 1; + } else + err = atomic_read(next); + AuDbg("%d\n", err); + u = err; + err = u % nbr; + AuDbg("%d\n", err); + if (!au_br_rdonly(au_sbr(sb, err))) + break; + err = -EROFS; + } + + if (err >= 0) + err = au_wbr_nonopq(dentry, err); + + out: + AuDbg("%d\n", err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* most free space */ +static void au_mfs(struct dentry *dentry) +{ + struct super_block *sb; + struct au_branch *br; + struct au_wbr_mfs *mfs; + aufs_bindex_t bindex, bend; + int err; + unsigned long long b, bavail; + /* reduce the stack usage */ + struct kstatfs *st; + + st = kmalloc(sizeof(*st), GFP_NOFS); + if (unlikely(!st)) { + AuWarn1("failed updating mfs(%d), ignored\n", -ENOMEM); + return; + } + + bavail = 0; + sb = dentry->d_sb; + mfs = &au_sbi(sb)->si_wbr_mfs; + MtxMustLock(&mfs->mfs_lock); + mfs->mfs_bindex = -EROFS; + mfs->mfsrr_bytes = 0; + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + if (au_br_rdonly(br)) + continue; + + /* sb->s_root for NFS is unreliable */ + err = vfs_statfs(br->br_mnt->mnt_root, st); + if (unlikely(err)) { + AuWarn1("failed statfs, b%d, %d\n", bindex, err); + continue; + } + + /* when the available size is equal, select the lower one */ + BUILD_BUG_ON(sizeof(b) < sizeof(st->f_bavail) + || sizeof(b) < sizeof(st->f_bsize)); + b = st->f_bavail * st->f_bsize; + br->br_wbr->wbr_bytes = b; + if (b >= bavail) { + bavail = b; + mfs->mfs_bindex = bindex; + mfs->mfs_jiffy = jiffies; + } + } + + mfs->mfsrr_bytes = bavail; + AuDbg("b%d\n", mfs->mfs_bindex); + kfree(st); +} + +static int au_wbr_create_mfs(struct dentry *dentry, int isdir __maybe_unused) +{ + int err; + struct super_block *sb; + struct au_wbr_mfs *mfs; + + err = au_wbr_create_exp(dentry); + if (err >= 0) + goto out; + + sb = dentry->d_sb; + mfs = &au_sbi(sb)->si_wbr_mfs; + mutex_lock(&mfs->mfs_lock); + if (time_after(jiffies, mfs->mfs_jiffy + mfs->mfs_expire) + || mfs->mfs_bindex < 0 + || au_br_rdonly(au_sbr(sb, mfs->mfs_bindex))) + au_mfs(dentry); + mutex_unlock(&mfs->mfs_lock); + err = mfs->mfs_bindex; + + if (err >= 0) + err = au_wbr_nonopq(dentry, err); + + out: + AuDbg("b%d\n", err); + return err; +} + +static int au_wbr_create_init_mfs(struct super_block *sb) +{ + struct au_wbr_mfs *mfs; + + mfs = &au_sbi(sb)->si_wbr_mfs; + mutex_init(&mfs->mfs_lock); + mfs->mfs_jiffy = 0; + mfs->mfs_bindex = -EROFS; + + return 0; +} + +static int au_wbr_create_fin_mfs(struct super_block *sb __maybe_unused) +{ + mutex_destroy(&au_sbi(sb)->si_wbr_mfs.mfs_lock); + return 0; +} + +/* ---------------------------------------------------------------------- */ + +/* most free space and then round robin */ +static int au_wbr_create_mfsrr(struct dentry *dentry, int isdir) +{ + int err; + struct au_wbr_mfs *mfs; + + err = au_wbr_create_mfs(dentry, isdir); + if (err >= 0) { + mfs = &au_sbi(dentry->d_sb)->si_wbr_mfs; + mutex_lock(&mfs->mfs_lock); + if (mfs->mfsrr_bytes < mfs->mfsrr_watermark) + err = au_wbr_create_rr(dentry, isdir); + mutex_unlock(&mfs->mfs_lock); + } + + AuDbg("b%d\n", err); + return err; +} + +static int au_wbr_create_init_mfsrr(struct super_block *sb) +{ + int err; + + au_wbr_create_init_mfs(sb); /* ignore */ + err = au_wbr_create_init_rr(sb); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* top down parent and most free space */ +static int au_wbr_create_pmfs(struct dentry *dentry, int isdir) +{ + int err, e2; + unsigned long long b; + aufs_bindex_t bindex, bstart, bend; + struct super_block *sb; + struct dentry *parent, *h_parent; + struct au_branch *br; + + err = au_wbr_create_tdp(dentry, isdir); + if (unlikely(err < 0)) + goto out; + parent = dget_parent(dentry); + bstart = au_dbstart(parent); + bend = au_dbtaildir(parent); + if (bstart == bend) + goto out_parent; /* success */ + + e2 = au_wbr_create_mfs(dentry, isdir); + if (e2 < 0) + goto out_parent; /* success */ + + /* when the available size is equal, select upper one */ + sb = dentry->d_sb; + br = au_sbr(sb, err); + b = br->br_wbr->wbr_bytes; + AuDbg("b%d, %llu\n", err, b); + + for (bindex = bstart; bindex <= bend; bindex++) { + h_parent = au_h_dptr(parent, bindex); + if (!h_parent || !h_parent->d_inode) + continue; + + br = au_sbr(sb, bindex); + if (!au_br_rdonly(br) && br->br_wbr->wbr_bytes > b) { + b = br->br_wbr->wbr_bytes; + err = bindex; + AuDbg("b%d, %llu\n", err, b); + } + } + + if (err >= 0) + err = au_wbr_nonopq(dentry, err); + + out_parent: + dput(parent); + out: + AuDbg("b%d\n", err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* policies for copyup */ + +/* top down parent */ +static int au_wbr_copyup_tdp(struct dentry *dentry) +{ + return au_wbr_create_tdp(dentry, /*isdir, anything is ok*/0); +} + +/* bottom up parent */ +static int au_wbr_copyup_bup(struct dentry *dentry) +{ + int err; + aufs_bindex_t bindex, bstart; + struct dentry *parent, *h_parent; + struct super_block *sb; + + err = -EROFS; + sb = dentry->d_sb; + parent = dget_parent(dentry); + bstart = au_dbstart(parent); + for (bindex = au_dbstart(dentry); bindex >= bstart; bindex--) { + h_parent = au_h_dptr(parent, bindex); + if (!h_parent || !h_parent->d_inode) + continue; + + if (!au_br_rdonly(au_sbr(sb, bindex))) { + err = bindex; + break; + } + } + dput(parent); + + /* bottom up here */ + if (unlikely(err < 0)) + err = au_wbr_bu(sb, bstart - 1); + + AuDbg("b%d\n", err); + return err; +} + +/* bottom up */ +static int au_wbr_copyup_bu(struct dentry *dentry) +{ + int err; + aufs_bindex_t bstart; + + bstart = au_dbstart(dentry); + err = au_wbr_bu(dentry->d_sb, bstart); + AuDbg("b%d\n", err); + if (err > bstart) + err = au_wbr_nonopq(dentry, err); + + AuDbg("b%d\n", err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct au_wbr_copyup_operations au_wbr_copyup_ops[] = { + [AuWbrCopyup_TDP] = { + .copyup = au_wbr_copyup_tdp + }, + [AuWbrCopyup_BUP] = { + .copyup = au_wbr_copyup_bup + }, + [AuWbrCopyup_BU] = { + .copyup = au_wbr_copyup_bu + } +}; + +struct au_wbr_create_operations au_wbr_create_ops[] = { + [AuWbrCreate_TDP] = { + .create = au_wbr_create_tdp + }, + [AuWbrCreate_RR] = { + .create = au_wbr_create_rr, + .init = au_wbr_create_init_rr + }, + [AuWbrCreate_MFS] = { + .create = au_wbr_create_mfs, + .init = au_wbr_create_init_mfs, + .fin = au_wbr_create_fin_mfs + }, + [AuWbrCreate_MFSV] = { + .create = au_wbr_create_mfs, + .init = au_wbr_create_init_mfs, + .fin = au_wbr_create_fin_mfs + }, + [AuWbrCreate_MFSRR] = { + .create = au_wbr_create_mfsrr, + .init = au_wbr_create_init_mfsrr, + .fin = au_wbr_create_fin_mfs + }, + [AuWbrCreate_MFSRRV] = { + .create = au_wbr_create_mfsrr, + .init = au_wbr_create_init_mfsrr, + .fin = au_wbr_create_fin_mfs + }, + [AuWbrCreate_PMFS] = { + .create = au_wbr_create_pmfs, + .init = au_wbr_create_init_mfs, + .fin = au_wbr_create_fin_mfs + }, + [AuWbrCreate_PMFSV] = { + .create = au_wbr_create_pmfs, + .init = au_wbr_create_init_mfs, + .fin = au_wbr_create_fin_mfs + } +}; --- linux-2.6.35.orig/ubuntu/aufs/mtx.h +++ linux-2.6.35/ubuntu/aufs/mtx.h @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * very ugly approach for aufs_mmap() + * never include this file from other than f_op.c. + * see f_op.c in detail. + */ + +#ifndef __AUFS_MTX_H__ +#define __AUFS_MTX_H__ + +#ifdef __KERNEL__ + +/* copied from ../kernel/mutex{,-debug}.h */ +struct mutex; +struct thread_info; +#ifdef CONFIG_DEBUG_MUTEXES +static inline void mutex_set_owner(struct mutex *lock) +{ + lock->owner = current_thread_info(); +} +#else +static inline void mutex_set_owner(struct mutex *lock) +{ +#ifdef CONFIG_SMP + lock->owner = current_thread_info(); +#endif +} +#endif + +#endif /* __KERNEL__ */ +#endif /* __AUFS_MTX_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/rdu.c +++ linux-2.6.35/ubuntu/aufs/rdu.c @@ -0,0 +1,377 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * readdir in userspace. + */ + +#include +#include +#include +#include +#include +#include "aufs.h" + +/* bits for struct aufs_rdu.flags */ +#define AuRdu_CALLED 1 +#define AuRdu_CONT (1 << 1) +#define AuRdu_FULL (1 << 2) +#define au_ftest_rdu(flags, name) ((flags) & AuRdu_##name) +#define au_fset_rdu(flags, name) { (flags) |= AuRdu_##name; } +#define au_fclr_rdu(flags, name) { (flags) &= ~AuRdu_##name; } + +struct au_rdu_arg { + struct aufs_rdu *rdu; + union au_rdu_ent_ul ent; + unsigned long end; + + struct super_block *sb; + int err; +}; + +static int au_rdu_fill(void *__arg, const char *name, int nlen, + loff_t offset, u64 h_ino, unsigned int d_type) +{ + int err, len; + struct au_rdu_arg *arg = __arg; + struct aufs_rdu *rdu = arg->rdu; + struct au_rdu_ent ent; + + err = 0; + arg->err = 0; + au_fset_rdu(rdu->cookie.flags, CALLED); + len = au_rdu_len(nlen); + if (arg->ent.ul + len < arg->end) { + ent.ino = h_ino; + ent.bindex = rdu->cookie.bindex; + ent.type = d_type; + ent.nlen = nlen; + if (unlikely(nlen > AUFS_MAX_NAMELEN)) + ent.type = DT_UNKNOWN; + + err = -EFAULT; + if (copy_to_user(arg->ent.e, &ent, sizeof(ent))) + goto out; + if (copy_to_user(arg->ent.e->name, name, nlen)) + goto out; + /* the terminating NULL */ + if (__put_user(0, arg->ent.e->name + nlen)) + goto out; + err = 0; + /* AuDbg("%p, %.*s\n", arg->ent.p, nlen, name); */ + arg->ent.ul += len; + rdu->rent++; + } else { + err = -EFAULT; + au_fset_rdu(rdu->cookie.flags, FULL); + rdu->full = 1; + rdu->tail = arg->ent; + } + + out: + /* AuTraceErr(err); */ + return err; +} + +static int au_rdu_do(struct file *h_file, struct au_rdu_arg *arg) +{ + int err; + loff_t offset; + struct au_rdu_cookie *cookie = &arg->rdu->cookie; + + offset = vfsub_llseek(h_file, cookie->h_pos, SEEK_SET); + err = offset; + if (unlikely(offset != cookie->h_pos)) + goto out; + + err = 0; + do { + arg->err = 0; + au_fclr_rdu(cookie->flags, CALLED); + /* smp_mb(); */ + err = vfsub_readdir(h_file, au_rdu_fill, arg); + if (err >= 0) + err = arg->err; + } while (!err + && au_ftest_rdu(cookie->flags, CALLED) + && !au_ftest_rdu(cookie->flags, FULL)); + cookie->h_pos = h_file->f_pos; + + out: + AuTraceErr(err); + return err; +} + +static int au_rdu(struct file *file, struct aufs_rdu *rdu) +{ + int err; + aufs_bindex_t bend; + struct au_rdu_arg arg; + struct dentry *dentry; + struct inode *inode; + struct file *h_file; + struct au_rdu_cookie *cookie = &rdu->cookie; + + err = !access_ok(VERIFY_WRITE, rdu->ent.e, rdu->sz); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + goto out; + } + rdu->rent = 0; + rdu->tail = rdu->ent; + rdu->full = 0; + arg.rdu = rdu; + arg.ent = rdu->ent; + arg.end = arg.ent.ul; + arg.end += rdu->sz; + + err = -ENOTDIR; + if (unlikely(!file->f_op || !file->f_op->readdir)) + goto out; + + err = security_file_permission(file, MAY_READ); + AuTraceErr(err); + if (unlikely(err)) + goto out; + + dentry = file->f_dentry; + inode = dentry->d_inode; +#if 1 + mutex_lock(&inode->i_mutex); +#else + err = mutex_lock_killable(&inode->i_mutex); + AuTraceErr(err); + if (unlikely(err)) + goto out; +#endif + err = -ENOENT; + if (unlikely(IS_DEADDIR(inode))) + goto out_mtx; + + arg.sb = inode->i_sb; + si_read_lock(arg.sb, AuLock_FLUSH); + fi_read_lock(file); + + err = -EAGAIN; + if (unlikely(au_ftest_rdu(cookie->flags, CONT) + && cookie->generation != au_figen(file))) + goto out_unlock; + + err = 0; + if (!rdu->blk) { + rdu->blk = au_sbi(arg.sb)->si_rdblk; + if (!rdu->blk) + rdu->blk = au_dir_size(file, /*dentry*/NULL); + } + bend = au_fbstart(file); + if (cookie->bindex < bend) + cookie->bindex = bend; + bend = au_fbend_dir(file); + /* AuDbg("b%d, b%d\n", cookie->bindex, bend); */ + for (; !err && cookie->bindex <= bend; + cookie->bindex++, cookie->h_pos = 0) { + h_file = au_hf_dir(file, cookie->bindex); + if (!h_file) + continue; + + au_fclr_rdu(cookie->flags, FULL); + err = au_rdu_do(h_file, &arg); + AuTraceErr(err); + if (unlikely(au_ftest_rdu(cookie->flags, FULL) || err)) + break; + } + AuDbg("rent %llu\n", rdu->rent); + + if (!err && !au_ftest_rdu(cookie->flags, CONT)) { + rdu->shwh = !!au_opt_test(au_sbi(arg.sb)->si_mntflags, SHWH); + au_fset_rdu(cookie->flags, CONT); + cookie->generation = au_figen(file); + } + + ii_read_lock_child(inode); + fsstack_copy_attr_atime(inode, au_h_iptr(inode, au_ibstart(inode))); + ii_read_unlock(inode); + + out_unlock: + fi_read_unlock(file); + si_read_unlock(arg.sb); + out_mtx: + mutex_unlock(&inode->i_mutex); + out: + AuTraceErr(err); + return err; +} + +static int au_rdu_ino(struct file *file, struct aufs_rdu *rdu) +{ + int err; + ino_t ino; + unsigned long long nent; + union au_rdu_ent_ul *u; + struct au_rdu_ent ent; + struct super_block *sb; + + err = 0; + nent = rdu->nent; + u = &rdu->ent; + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + while (nent-- > 0) { + err = copy_from_user(&ent, u->e, sizeof(ent)); + if (!err) + err = !access_ok(VERIFY_WRITE, &u->e->ino, sizeof(ino)); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + break; + } + + /* AuDbg("b%d, i%llu\n", ent.bindex, ent.ino); */ + if (!ent.wh) + err = au_ino(sb, ent.bindex, ent.ino, ent.type, &ino); + else + err = au_wh_ino(sb, ent.bindex, ent.ino, ent.type, + &ino); + if (unlikely(err)) { + AuTraceErr(err); + break; + } + + err = __put_user(ino, &u->e->ino); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + break; + } + u->ul += au_rdu_len(ent.nlen); + } + si_read_unlock(sb); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_rdu_verify(struct aufs_rdu *rdu) +{ + AuDbg("rdu{%llu, %p, %u | %u | %llu, %u, %u | " + "%llu, b%d, 0x%x, g%u}\n", + rdu->sz, rdu->ent.e, rdu->verify[AufsCtlRduV_SZ], + rdu->blk, + rdu->rent, rdu->shwh, rdu->full, + rdu->cookie.h_pos, rdu->cookie.bindex, rdu->cookie.flags, + rdu->cookie.generation); + + if (rdu->verify[AufsCtlRduV_SZ] == sizeof(*rdu)) + return 0; + + AuDbg("%u:%u\n", + rdu->verify[AufsCtlRduV_SZ], (unsigned int)sizeof(*rdu)); + return -EINVAL; +} + +long au_rdu_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + long err, e; + struct aufs_rdu rdu; + void __user *p = (void __user *)arg; + + err = copy_from_user(&rdu, p, sizeof(rdu)); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + goto out; + } + err = au_rdu_verify(&rdu); + if (unlikely(err)) + goto out; + + switch (cmd) { + case AUFS_CTL_RDU: + err = au_rdu(file, &rdu); + if (unlikely(err)) + break; + + e = copy_to_user(p, &rdu, sizeof(rdu)); + if (unlikely(e)) { + err = -EFAULT; + AuTraceErr(err); + } + break; + case AUFS_CTL_RDU_INO: + err = au_rdu_ino(file, &rdu); + break; + + default: + /* err = -ENOTTY; */ + err = -EINVAL; + } + + out: + AuTraceErr(err); + return err; +} + +#ifdef CONFIG_COMPAT +long au_rdu_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + long err, e; + struct aufs_rdu rdu; + void __user *p = compat_ptr(arg); + + /* todo: get_user()? */ + err = copy_from_user(&rdu, p, sizeof(rdu)); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + goto out; + } + rdu.ent.e = compat_ptr(rdu.ent.ul); + err = au_rdu_verify(&rdu); + if (unlikely(err)) + goto out; + + switch (cmd) { + case AUFS_CTL_RDU: + err = au_rdu(file, &rdu); + if (unlikely(err)) + break; + + rdu.ent.ul = ptr_to_compat(rdu.ent.e); + rdu.tail.ul = ptr_to_compat(rdu.tail.e); + e = copy_to_user(p, &rdu, sizeof(rdu)); + if (unlikely(e)) { + err = -EFAULT; + AuTraceErr(err); + } + break; + case AUFS_CTL_RDU_INO: + err = au_rdu_ino(file, &rdu); + break; + + default: + /* err = -ENOTTY; */ + err = -EINVAL; + } + + out: + AuTraceErr(err); + return err; +} +#endif --- linux-2.6.35.orig/ubuntu/aufs/inode.c +++ linux-2.6.35/ubuntu/aufs/inode.c @@ -0,0 +1,443 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode functions + */ + +#include "aufs.h" + +struct inode *au_igrab(struct inode *inode) +{ + if (inode) { + AuDebugOn(!atomic_read(&inode->i_count)); + atomic_inc_return(&inode->i_count); + } + return inode; +} + +static void au_refresh_hinode_attr(struct inode *inode, int do_version) +{ + au_cpup_attr_all(inode, /*force*/0); + au_update_iigen(inode); + if (do_version) + inode->i_version++; +} + +int au_refresh_hinode_self(struct inode *inode, int do_attr) +{ + int err, e; + aufs_bindex_t bindex, new_bindex; + unsigned char update; + struct au_hinode *p, *q, tmp; + struct super_block *sb; + struct au_iinfo *iinfo; + + IiMustWriteLock(inode); + + update = 0; + sb = inode->i_sb; + iinfo = au_ii(inode); + err = au_ii_realloc(iinfo, au_sbend(sb) + 1); + if (unlikely(err)) + goto out; + + p = iinfo->ii_hinode + iinfo->ii_bstart; + err = 0; + for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend; + bindex++, p++) { + if (!p->hi_inode) + continue; + + new_bindex = au_br_index(sb, p->hi_id); + if (new_bindex == bindex) + continue; + + if (new_bindex < 0) { + update = 1; + au_hiput(p); + p->hi_inode = NULL; + continue; + } + + if (new_bindex < iinfo->ii_bstart) + iinfo->ii_bstart = new_bindex; + if (iinfo->ii_bend < new_bindex) + iinfo->ii_bend = new_bindex; + /* swap two lower inode, and loop again */ + q = iinfo->ii_hinode + new_bindex; + tmp = *q; + *q = *p; + *p = tmp; + if (tmp.hi_inode) { + bindex--; + p--; + } + } + au_update_ibrange(inode, /*do_put_zero*/0); + e = au_dy_irefresh(inode); + if (unlikely(e && !err)) + err = e; + if (do_attr) + au_refresh_hinode_attr(inode, update && S_ISDIR(inode->i_mode)); + + out: + return err; +} + +int au_refresh_hinode(struct inode *inode, struct dentry *dentry) +{ + int err, e; + unsigned int flags; + aufs_bindex_t bindex, bend; + unsigned char isdir, update; + struct au_hinode *p; + struct au_iinfo *iinfo; + + err = au_refresh_hinode_self(inode, /*do_attr*/0); + if (unlikely(err)) + goto out; + + update = 0; + iinfo = au_ii(inode); + p = iinfo->ii_hinode + iinfo->ii_bstart; + isdir = S_ISDIR(inode->i_mode); + flags = au_hi_flags(inode, isdir); + bend = au_dbend(dentry); + for (bindex = au_dbstart(dentry); bindex <= bend; bindex++) { + struct inode *h_i; + struct dentry *h_d; + + h_d = au_h_dptr(dentry, bindex); + if (!h_d || !h_d->d_inode) + continue; + + if (iinfo->ii_bstart <= bindex && bindex <= iinfo->ii_bend) { + h_i = au_h_iptr(inode, bindex); + if (h_i) { + if (h_i == h_d->d_inode) + continue; + err = -EIO; + break; + } + } + if (bindex < iinfo->ii_bstart) + iinfo->ii_bstart = bindex; + if (iinfo->ii_bend < bindex) + iinfo->ii_bend = bindex; + au_set_h_iptr(inode, bindex, au_igrab(h_d->d_inode), flags); + update = 1; + } + au_update_ibrange(inode, /*do_put_zero*/0); + e = au_dy_irefresh(inode); + if (unlikely(e && !err)) + err = e; + au_refresh_hinode_attr(inode, update && isdir); + + out: + AuTraceErr(err); + return err; +} + +static int set_inode(struct inode *inode, struct dentry *dentry) +{ + int err; + unsigned int flags; + umode_t mode; + aufs_bindex_t bindex, bstart, btail; + unsigned char isdir; + struct dentry *h_dentry; + struct inode *h_inode; + struct au_iinfo *iinfo; + + IiMustWriteLock(inode); + + err = 0; + isdir = 0; + bstart = au_dbstart(dentry); + h_inode = au_h_dptr(dentry, bstart)->d_inode; + mode = h_inode->i_mode; + switch (mode & S_IFMT) { + case S_IFREG: + btail = au_dbtail(dentry); + inode->i_op = &aufs_iop; + inode->i_fop = &aufs_file_fop; + err = au_dy_iaop(inode, bstart, h_inode); + if (unlikely(err)) + goto out; + break; + case S_IFDIR: + isdir = 1; + btail = au_dbtaildir(dentry); + inode->i_op = &aufs_dir_iop; + inode->i_fop = &aufs_dir_fop; + break; + case S_IFLNK: + btail = au_dbtail(dentry); + inode->i_op = &aufs_symlink_iop; + break; + case S_IFBLK: + case S_IFCHR: + case S_IFIFO: + case S_IFSOCK: + btail = au_dbtail(dentry); + inode->i_op = &aufs_iop; + au_init_special_fop(inode, mode, h_inode->i_rdev); + break; + default: + AuIOErr("Unknown file type 0%o\n", mode); + err = -EIO; + goto out; + } + + /* do not set hnotify for whiteouted dirs (SHWH mode) */ + flags = au_hi_flags(inode, isdir); + if (au_opt_test(au_mntflags(dentry->d_sb), SHWH) + && au_ftest_hi(flags, HNOTIFY) + && dentry->d_name.len > AUFS_WH_PFX_LEN + && !memcmp(dentry->d_name.name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) + au_fclr_hi(flags, HNOTIFY); + iinfo = au_ii(inode); + iinfo->ii_bstart = bstart; + iinfo->ii_bend = btail; + for (bindex = bstart; bindex <= btail; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry) + au_set_h_iptr(inode, bindex, + au_igrab(h_dentry->d_inode), flags); + } + au_cpup_attr_all(inode, /*force*/1); + + out: + return err; +} + +/* successful returns with iinfo write_locked */ +static int reval_inode(struct inode *inode, struct dentry *dentry, int *matched) +{ + int err; + aufs_bindex_t bindex, bend; + struct inode *h_inode, *h_dinode; + + *matched = 0; + + /* + * before this function, if aufs got any iinfo lock, it must be only + * one, the parent dir. + * it can happen by UDBA and the obsoleted inode number. + */ + err = -EIO; + if (unlikely(inode->i_ino == parent_ino(dentry))) + goto out; + + err = 0; + ii_write_lock_new_child(inode); + h_dinode = au_h_dptr(dentry, au_dbstart(dentry))->d_inode; + bend = au_ibend(inode); + for (bindex = au_ibstart(inode); bindex <= bend; bindex++) { + h_inode = au_h_iptr(inode, bindex); + if (h_inode && h_inode == h_dinode) { + *matched = 1; + err = 0; + if (au_iigen(inode) != au_digen(dentry)) + err = au_refresh_hinode(inode, dentry); + break; + } + } + + if (unlikely(err)) + ii_write_unlock(inode); + out: + return err; +} + +int au_ino(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + unsigned int d_type, ino_t *ino) +{ + int err; + struct mutex *mtx; + + /* prevent hardlinked inode number from race condition */ + mtx = NULL; + if (d_type != DT_DIR) { + mtx = &au_sbr(sb, bindex)->br_xino.xi_nondir_mtx; + mutex_lock(mtx); + } + err = au_xino_read(sb, bindex, h_ino, ino); + if (unlikely(err)) + goto out; + + if (!*ino) { + err = -EIO; + *ino = au_xino_new_ino(sb); + if (unlikely(!*ino)) + goto out; + err = au_xino_write(sb, bindex, h_ino, *ino); + if (unlikely(err)) + goto out; + } + + out: + if (mtx) + mutex_unlock(mtx); + return err; +} + +/* successful returns with iinfo write_locked */ +/* todo: return with unlocked? */ +struct inode *au_new_inode(struct dentry *dentry, int must_new) +{ + struct inode *inode, *h_inode; + struct dentry *h_dentry; + struct super_block *sb; + struct mutex *mtx; + ino_t h_ino, ino; + int err, match; + aufs_bindex_t bstart; + + sb = dentry->d_sb; + bstart = au_dbstart(dentry); + h_dentry = au_h_dptr(dentry, bstart); + h_inode = h_dentry->d_inode; + h_ino = h_inode->i_ino; + + /* + * stop 'race'-ing between hardlinks under different + * parents. + */ + mtx = NULL; + if (!S_ISDIR(h_inode->i_mode)) + mtx = &au_sbr(sb, bstart)->br_xino.xi_nondir_mtx; + + new_ino: + if (mtx) + mutex_lock(mtx); + err = au_xino_read(sb, bstart, h_ino, &ino); + inode = ERR_PTR(err); + if (unlikely(err)) + goto out; + + if (!ino) { + ino = au_xino_new_ino(sb); + if (unlikely(!ino)) { + inode = ERR_PTR(-EIO); + goto out; + } + } + + AuDbg("i%lu\n", (unsigned long)ino); + inode = au_iget_locked(sb, ino); + err = PTR_ERR(inode); + if (IS_ERR(inode)) + goto out; + + AuDbg("%lx, new %d\n", inode->i_state, !!(inode->i_state & I_NEW)); + if (inode->i_state & I_NEW) { + ii_write_lock_new_child(inode); + err = set_inode(inode, dentry); + if (!err) { + unlock_new_inode(inode); + goto out; /* success */ + } + + ii_write_unlock(inode); + iget_failed(inode); + goto out_err; + } else if (!must_new) { + /* + * horrible race condition between lookup, readdir and copyup + * (or something). + */ + if (mtx) + mutex_unlock(mtx); + err = reval_inode(inode, dentry, &match); + if (!err) { + mtx = NULL; + goto out; /* success */ + } else if (match) { + mtx = NULL; + goto out_iput; + } else if (mtx) + mutex_lock(mtx); + } + + if (unlikely(au_test_fs_unique_ino(h_dentry->d_inode))) + AuWarn1("Warning: Un-notified UDBA or repeatedly renamed dir," + " b%d, %s, %.*s, hi%lu, i%lu.\n", + bstart, au_sbtype(h_dentry->d_sb), AuDLNPair(dentry), + (unsigned long)h_ino, (unsigned long)ino); + ino = 0; + err = au_xino_write(sb, bstart, h_ino, /*ino*/0); + if (!err) { + iput(inode); + if (mtx) + mutex_unlock(mtx); + goto new_ino; + } + + out_iput: + iput(inode); + out_err: + inode = ERR_PTR(err); + out: + if (mtx) + mutex_unlock(mtx); + return inode; +} + +/* ---------------------------------------------------------------------- */ + +int au_test_ro(struct super_block *sb, aufs_bindex_t bindex, + struct inode *inode) +{ + int err; + + err = au_br_rdonly(au_sbr(sb, bindex)); + + /* pseudo-link after flushed may happen out of bounds */ + if (!err + && inode + && au_ibstart(inode) <= bindex + && bindex <= au_ibend(inode)) { + /* + * permission check is unnecessary since vfsub routine + * will be called later + */ + struct inode *hi = au_h_iptr(inode, bindex); + if (hi) + err = IS_IMMUTABLE(hi) ? -EROFS : 0; + } + + return err; +} + +int au_test_h_perm(struct inode *h_inode, int mask) +{ + if (!current_fsuid()) + return 0; + return inode_permission(h_inode, mask); +} + +int au_test_h_perm_sio(struct inode *h_inode, int mask) +{ + if (au_test_nfs(h_inode->i_sb) + && (mask & MAY_WRITE) + && S_ISDIR(h_inode->i_mode)) + mask |= MAY_READ; /* force permission check */ + return au_test_h_perm(h_inode, mask); +} --- linux-2.6.35.orig/ubuntu/aufs/spl.h +++ linux-2.6.35/ubuntu/aufs/spl.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * simple list protected by a spinlock + */ + +#ifndef __AUFS_SPL_H__ +#define __AUFS_SPL_H__ + +#ifdef __KERNEL__ + +#include +#include +#include + +struct au_splhead { + spinlock_t spin; + struct list_head head; +}; + +static inline void au_spl_init(struct au_splhead *spl) +{ + spin_lock_init(&spl->spin); + INIT_LIST_HEAD(&spl->head); +} + +static inline void au_spl_add(struct list_head *list, struct au_splhead *spl) +{ + spin_lock(&spl->spin); + list_add(list, &spl->head); + spin_unlock(&spl->spin); +} + +static inline void au_spl_del(struct list_head *list, struct au_splhead *spl) +{ + spin_lock(&spl->spin); + list_del(list); + spin_unlock(&spl->spin); +} + +static inline void au_spl_del_rcu(struct list_head *list, + struct au_splhead *spl) +{ + spin_lock(&spl->spin); + list_del_rcu(list); + spin_unlock(&spl->spin); +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_SPL_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/export.c +++ linux-2.6.35/ubuntu/aufs/export.c @@ -0,0 +1,788 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * export via nfs + */ + +#include +#include +#include +#include +#include +#include +#include +#include "aufs.h" + +union conv { +#ifdef CONFIG_AUFS_INO_T_64 + __u32 a[2]; +#else + __u32 a[1]; +#endif + ino_t ino; +}; + +static ino_t decode_ino(__u32 *a) +{ + union conv u; + + BUILD_BUG_ON(sizeof(u.ino) != sizeof(u.a)); + u.a[0] = a[0]; +#ifdef CONFIG_AUFS_INO_T_64 + u.a[1] = a[1]; +#endif + return u.ino; +} + +static void encode_ino(__u32 *a, ino_t ino) +{ + union conv u; + + u.ino = ino; + a[0] = u.a[0]; +#ifdef CONFIG_AUFS_INO_T_64 + a[1] = u.a[1]; +#endif +} + +/* NFS file handle */ +enum { + Fh_br_id, + Fh_sigen, +#ifdef CONFIG_AUFS_INO_T_64 + /* support 64bit inode number */ + Fh_ino1, + Fh_ino2, + Fh_dir_ino1, + Fh_dir_ino2, +#else + Fh_ino1, + Fh_dir_ino1, +#endif + Fh_igen, + Fh_h_type, + Fh_tail, + + Fh_ino = Fh_ino1, + Fh_dir_ino = Fh_dir_ino1 +}; + +static int au_test_anon(struct dentry *dentry) +{ + return !!(dentry->d_flags & DCACHE_DISCONNECTED); +} + +/* ---------------------------------------------------------------------- */ +/* inode generation external table */ + +void au_xigen_inc(struct inode *inode) +{ + loff_t pos; + ssize_t sz; + __u32 igen; + struct super_block *sb; + struct au_sbinfo *sbinfo; + + sb = inode->i_sb; + AuDebugOn(!au_opt_test(au_mntflags(sb), XINO)); + + sbinfo = au_sbi(sb); + pos = inode->i_ino; + pos *= sizeof(igen); + igen = inode->i_generation + 1; + sz = xino_fwrite(sbinfo->si_xwrite, sbinfo->si_xigen, &igen, + sizeof(igen), &pos); + if (sz == sizeof(igen)) + return; /* success */ + + if (unlikely(sz >= 0)) + AuIOErr("xigen error (%zd)\n", sz); +} + +int au_xigen_new(struct inode *inode) +{ + int err; + loff_t pos; + ssize_t sz; + struct super_block *sb; + struct au_sbinfo *sbinfo; + struct file *file; + + err = 0; + /* todo: dirty, at mount time */ + if (inode->i_ino == AUFS_ROOT_INO) + goto out; + sb = inode->i_sb; + SiMustAnyLock(sb); + if (unlikely(!au_opt_test(au_mntflags(sb), XINO))) + goto out; + + err = -EFBIG; + pos = inode->i_ino; + if (unlikely(au_loff_max / sizeof(inode->i_generation) - 1 < pos)) { + AuIOErr1("too large i%lld\n", pos); + goto out; + } + pos *= sizeof(inode->i_generation); + + err = 0; + sbinfo = au_sbi(sb); + file = sbinfo->si_xigen; + BUG_ON(!file); + + if (i_size_read(file->f_dentry->d_inode) + < pos + sizeof(inode->i_generation)) { + inode->i_generation = atomic_inc_return(&sbinfo->si_xigen_next); + sz = xino_fwrite(sbinfo->si_xwrite, file, &inode->i_generation, + sizeof(inode->i_generation), &pos); + } else + sz = xino_fread(sbinfo->si_xread, file, &inode->i_generation, + sizeof(inode->i_generation), &pos); + if (sz == sizeof(inode->i_generation)) + goto out; /* success */ + + err = sz; + if (unlikely(sz >= 0)) { + err = -EIO; + AuIOErr("xigen error (%zd)\n", sz); + } + + out: + return err; +} + +int au_xigen_set(struct super_block *sb, struct file *base) +{ + int err; + struct au_sbinfo *sbinfo; + struct file *file; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + file = au_xino_create2(base, sbinfo->si_xigen); + err = PTR_ERR(file); + if (IS_ERR(file)) + goto out; + err = 0; + if (sbinfo->si_xigen) + fput(sbinfo->si_xigen); + sbinfo->si_xigen = file; + + out: + return err; +} + +void au_xigen_clr(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + if (sbinfo->si_xigen) { + fput(sbinfo->si_xigen); + sbinfo->si_xigen = NULL; + } +} + +/* ---------------------------------------------------------------------- */ + +static struct dentry *decode_by_ino(struct super_block *sb, ino_t ino, + ino_t dir_ino) +{ + struct dentry *dentry, *d; + struct inode *inode; + unsigned int sigen; + + dentry = NULL; + inode = ilookup(sb, ino); + if (!inode) + goto out; + + dentry = ERR_PTR(-ESTALE); + sigen = au_sigen(sb); + if (unlikely(is_bad_inode(inode) + || IS_DEADDIR(inode) + || sigen != au_iigen(inode))) + goto out_iput; + + dentry = NULL; + if (!dir_ino || S_ISDIR(inode->i_mode)) + dentry = d_find_alias(inode); + else { + spin_lock(&dcache_lock); + list_for_each_entry(d, &inode->i_dentry, d_alias) + if (!au_test_anon(d) + && d->d_parent->d_inode->i_ino == dir_ino) { + dentry = dget_locked(d); + break; + } + spin_unlock(&dcache_lock); + } + if (unlikely(dentry && sigen != au_digen(dentry))) { + dput(dentry); + dentry = ERR_PTR(-ESTALE); + } + + out_iput: + iput(inode); + out: + return dentry; +} + +/* ---------------------------------------------------------------------- */ + +/* todo: dirty? */ +/* if exportfs_decode_fh() passed vfsmount*, we could be happy */ + +struct au_compare_mnt_args { + /* input */ + struct super_block *sb; + + /* output */ + struct vfsmount *mnt; +}; + +static int au_compare_mnt(struct vfsmount *mnt, void *arg) +{ + struct au_compare_mnt_args *a = arg; + + if (mnt->mnt_sb != a->sb) + return 0; + a->mnt = mntget(mnt); + return 1; +} + +static struct vfsmount *au_mnt_get(struct super_block *sb) +{ + int err; + struct au_compare_mnt_args args = { + .sb = sb + }; + struct mnt_namespace *ns; + + /* no get/put ?? */ + AuDebugOn(!current->nsproxy); + ns = current->nsproxy->mnt_ns; + AuDebugOn(!ns); + err = iterate_mounts(au_compare_mnt, &args, ns->root); + AuDebugOn(!err); + AuDebugOn(!args.mnt); + return args.mnt; +} + +struct au_nfsd_si_lock { + unsigned int sigen; + aufs_bindex_t br_id; + unsigned char force_lock; +}; + +static aufs_bindex_t si_nfsd_read_lock(struct super_block *sb, + struct au_nfsd_si_lock *nsi_lock) +{ + aufs_bindex_t bindex; + + si_read_lock(sb, AuLock_FLUSH); + + /* branch id may be wrapped around */ + bindex = au_br_index(sb, nsi_lock->br_id); + if (bindex >= 0 && nsi_lock->sigen + AUFS_BRANCH_MAX > au_sigen(sb)) + goto out; /* success */ + + if (!nsi_lock->force_lock) + si_read_unlock(sb); + bindex = -1; + + out: + return bindex; +} + +struct find_name_by_ino { + int called, found; + ino_t ino; + char *name; + int namelen; +}; + +static int +find_name_by_ino(void *arg, const char *name, int namelen, loff_t offset, + u64 ino, unsigned int d_type) +{ + struct find_name_by_ino *a = arg; + + a->called++; + if (a->ino != ino) + return 0; + + memcpy(a->name, name, namelen); + a->namelen = namelen; + a->found = 1; + return 1; +} + +static struct dentry *au_lkup_by_ino(struct path *path, ino_t ino, + struct au_nfsd_si_lock *nsi_lock) +{ + struct dentry *dentry, *parent; + struct file *file; + struct inode *dir; + struct find_name_by_ino arg; + int err; + + parent = path->dentry; + if (nsi_lock) + si_read_unlock(parent->d_sb); + file = vfsub_dentry_open(path, au_dir_roflags); + dentry = (void *)file; + if (IS_ERR(file)) + goto out; + + dentry = ERR_PTR(-ENOMEM); + arg.name = __getname_gfp(GFP_NOFS); + if (unlikely(!arg.name)) + goto out_file; + arg.ino = ino; + arg.found = 0; + do { + arg.called = 0; + /* smp_mb(); */ + err = vfsub_readdir(file, find_name_by_ino, &arg); + } while (!err && !arg.found && arg.called); + dentry = ERR_PTR(err); + if (unlikely(err)) + goto out_name; + dentry = ERR_PTR(-ENOENT); + if (!arg.found) + goto out_name; + + /* do not call au_lkup_one() */ + dir = parent->d_inode; + mutex_lock(&dir->i_mutex); + dentry = vfsub_lookup_one_len(arg.name, parent, arg.namelen); + mutex_unlock(&dir->i_mutex); + AuTraceErrPtr(dentry); + if (IS_ERR(dentry)) + goto out_name; + AuDebugOn(au_test_anon(dentry)); + if (unlikely(!dentry->d_inode)) { + dput(dentry); + dentry = ERR_PTR(-ENOENT); + } + + out_name: + __putname(arg.name); + out_file: + fput(file); + out: + if (unlikely(nsi_lock + && si_nfsd_read_lock(parent->d_sb, nsi_lock) < 0)) + if (!IS_ERR(dentry)) { + dput(dentry); + dentry = ERR_PTR(-ESTALE); + } + AuTraceErrPtr(dentry); + return dentry; +} + +static struct dentry *decode_by_dir_ino(struct super_block *sb, ino_t ino, + ino_t dir_ino, + struct au_nfsd_si_lock *nsi_lock) +{ + struct dentry *dentry; + struct path path; + + if (dir_ino != AUFS_ROOT_INO) { + path.dentry = decode_by_ino(sb, dir_ino, 0); + dentry = path.dentry; + if (!path.dentry || IS_ERR(path.dentry)) + goto out; + AuDebugOn(au_test_anon(path.dentry)); + } else + path.dentry = dget(sb->s_root); + + path.mnt = au_mnt_get(sb); + dentry = au_lkup_by_ino(&path, ino, nsi_lock); + path_put(&path); + + out: + AuTraceErrPtr(dentry); + return dentry; +} + +/* ---------------------------------------------------------------------- */ + +static int h_acceptable(void *expv, struct dentry *dentry) +{ + return 1; +} + +static char *au_build_path(struct dentry *h_parent, struct path *h_rootpath, + char *buf, int len, struct super_block *sb) +{ + char *p; + int n; + struct path path; + + p = d_path(h_rootpath, buf, len); + if (IS_ERR(p)) + goto out; + n = strlen(p); + + path.mnt = h_rootpath->mnt; + path.dentry = h_parent; + p = d_path(&path, buf, len); + if (IS_ERR(p)) + goto out; + if (n != 1) + p += n; + + path.mnt = au_mnt_get(sb); + path.dentry = sb->s_root; + p = d_path(&path, buf, len - strlen(p)); + mntput(path.mnt); + if (IS_ERR(p)) + goto out; + if (n != 1) + p[strlen(p)] = '/'; + + out: + AuTraceErrPtr(p); + return p; +} + +static +struct dentry *decode_by_path(struct super_block *sb, aufs_bindex_t bindex, + ino_t ino, __u32 *fh, int fh_len, + struct au_nfsd_si_lock *nsi_lock) +{ + struct dentry *dentry, *h_parent, *root; + struct super_block *h_sb; + char *pathname, *p; + struct vfsmount *h_mnt; + struct au_branch *br; + int err; + struct path path; + + br = au_sbr(sb, bindex); + /* au_br_get(br); */ + h_mnt = br->br_mnt; + h_sb = h_mnt->mnt_sb; + /* todo: call lower fh_to_dentry()? fh_to_parent()? */ + h_parent = exportfs_decode_fh(h_mnt, (void *)(fh + Fh_tail), + fh_len - Fh_tail, fh[Fh_h_type], + h_acceptable, /*context*/NULL); + dentry = h_parent; + if (unlikely(!h_parent || IS_ERR(h_parent))) { + AuWarn1("%s decode_fh failed, %ld\n", + au_sbtype(h_sb), PTR_ERR(h_parent)); + goto out; + } + dentry = NULL; + if (unlikely(au_test_anon(h_parent))) { + AuWarn1("%s decode_fh returned a disconnected dentry\n", + au_sbtype(h_sb)); + goto out_h_parent; + } + + dentry = ERR_PTR(-ENOMEM); + pathname = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!pathname)) + goto out_h_parent; + + root = sb->s_root; + path.mnt = h_mnt; + di_read_lock_parent(root, !AuLock_IR); + path.dentry = au_h_dptr(root, bindex); + di_read_unlock(root, !AuLock_IR); + p = au_build_path(h_parent, &path, pathname, PAGE_SIZE, sb); + dentry = (void *)p; + if (IS_ERR(p)) + goto out_pathname; + + si_read_unlock(sb); + err = vfsub_kern_path(p, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &path); + dentry = ERR_PTR(err); + if (unlikely(err)) + goto out_relock; + + dentry = ERR_PTR(-ENOENT); + AuDebugOn(au_test_anon(path.dentry)); + if (unlikely(!path.dentry->d_inode)) + goto out_path; + + if (ino != path.dentry->d_inode->i_ino) + dentry = au_lkup_by_ino(&path, ino, /*nsi_lock*/NULL); + else + dentry = dget(path.dentry); + + out_path: + path_put(&path); + out_relock: + if (unlikely(si_nfsd_read_lock(sb, nsi_lock) < 0)) + if (!IS_ERR(dentry)) { + dput(dentry); + dentry = ERR_PTR(-ESTALE); + } + out_pathname: + free_page((unsigned long)pathname); + out_h_parent: + dput(h_parent); + out: + /* au_br_put(br); */ + AuTraceErrPtr(dentry); + return dentry; +} + +/* ---------------------------------------------------------------------- */ + +static struct dentry * +aufs_fh_to_dentry(struct super_block *sb, struct fid *fid, int fh_len, + int fh_type) +{ + struct dentry *dentry; + __u32 *fh = fid->raw; + ino_t ino, dir_ino; + aufs_bindex_t bindex; + struct au_nfsd_si_lock nsi_lock = { + .force_lock = 0 + }; + + dentry = ERR_PTR(-ESTALE); + /* it should never happen, but the file handle is unreliable */ + if (unlikely(fh_len < Fh_tail)) + goto out; + nsi_lock.sigen = fh[Fh_sigen]; + nsi_lock.br_id = fh[Fh_br_id]; + + /* branch id may be wrapped around */ + bindex = si_nfsd_read_lock(sb, &nsi_lock); + if (unlikely(bindex < 0)) + goto out; + nsi_lock.force_lock = 1; + + /* is this inode still cached? */ + ino = decode_ino(fh + Fh_ino); + /* it should never happen */ + if (unlikely(ino == AUFS_ROOT_INO)) + goto out; + + dir_ino = decode_ino(fh + Fh_dir_ino); + dentry = decode_by_ino(sb, ino, dir_ino); + if (IS_ERR(dentry)) + goto out_unlock; + if (dentry) + goto accept; + + /* is the parent dir cached? */ + dentry = decode_by_dir_ino(sb, ino, dir_ino, &nsi_lock); + if (IS_ERR(dentry)) + goto out_unlock; + if (dentry) + goto accept; + + /* lookup path */ + dentry = decode_by_path(sb, bindex, ino, fh, fh_len, &nsi_lock); + if (IS_ERR(dentry)) + goto out_unlock; + if (unlikely(!dentry)) + /* todo?: make it ESTALE */ + goto out_unlock; + + accept: + if (dentry->d_inode->i_generation == fh[Fh_igen]) + goto out_unlock; /* success */ + + dput(dentry); + dentry = ERR_PTR(-ESTALE); + out_unlock: + si_read_unlock(sb); + out: + AuTraceErrPtr(dentry); + return dentry; +} + +#if 0 /* reserved for future use */ +/* support subtreecheck option */ +static struct dentry *aufs_fh_to_parent(struct super_block *sb, struct fid *fid, + int fh_len, int fh_type) +{ + struct dentry *parent; + __u32 *fh = fid->raw; + ino_t dir_ino; + + dir_ino = decode_ino(fh + Fh_dir_ino); + parent = decode_by_ino(sb, dir_ino, 0); + if (IS_ERR(parent)) + goto out; + if (!parent) + parent = decode_by_path(sb, au_br_index(sb, fh[Fh_br_id]), + dir_ino, fh, fh_len); + + out: + AuTraceErrPtr(parent); + return parent; +} +#endif + +/* ---------------------------------------------------------------------- */ + +static int aufs_encode_fh(struct dentry *dentry, __u32 *fh, int *max_len, + int connectable) +{ + int err; + aufs_bindex_t bindex, bend; + struct super_block *sb, *h_sb; + struct inode *inode; + struct dentry *parent, *h_parent; + struct au_branch *br; + + AuDebugOn(au_test_anon(dentry)); + + parent = NULL; + err = -ENOSPC; + if (unlikely(*max_len <= Fh_tail)) { + AuWarn1("NFSv2 client (max_len %d)?\n", *max_len); + goto out; + } + + err = FILEID_ROOT; + if (IS_ROOT(dentry)) { + AuDebugOn(dentry->d_inode->i_ino != AUFS_ROOT_INO); + goto out; + } + + err = -EIO; + h_parent = NULL; + sb = dentry->d_sb; + aufs_read_lock(dentry, AuLock_FLUSH | AuLock_IR); + parent = dget_parent(dentry); + di_read_lock_parent(parent, !AuLock_IR); + inode = dentry->d_inode; + AuDebugOn(!inode); +#ifdef CONFIG_AUFS_DEBUG + if (unlikely(!au_opt_test(au_mntflags(sb), XINO))) + AuWarn1("NFS-exporting requires xino\n"); +#endif + + bend = au_dbtaildir(parent); + for (bindex = au_dbstart(parent); bindex <= bend; bindex++) { + h_parent = au_h_dptr(parent, bindex); + if (h_parent) { + dget(h_parent); + break; + } + } + if (unlikely(!h_parent)) + goto out_unlock; + + err = -EPERM; + br = au_sbr(sb, bindex); + h_sb = br->br_mnt->mnt_sb; + if (unlikely(!h_sb->s_export_op)) { + AuErr1("%s branch is not exportable\n", au_sbtype(h_sb)); + goto out_dput; + } + + fh[Fh_br_id] = br->br_id; + fh[Fh_sigen] = au_sigen(sb); + encode_ino(fh + Fh_ino, inode->i_ino); + encode_ino(fh + Fh_dir_ino, parent->d_inode->i_ino); + fh[Fh_igen] = inode->i_generation; + + *max_len -= Fh_tail; + fh[Fh_h_type] = exportfs_encode_fh(h_parent, (void *)(fh + Fh_tail), + max_len, + /*connectable or subtreecheck*/0); + err = fh[Fh_h_type]; + *max_len += Fh_tail; + /* todo: macros? */ + if (err != 255) + err = 99; + else + AuWarn1("%s encode_fh failed\n", au_sbtype(h_sb)); + + out_dput: + dput(h_parent); + out_unlock: + di_read_unlock(parent, !AuLock_IR); + dput(parent); + aufs_read_unlock(dentry, AuLock_IR); + out: + if (unlikely(err < 0)) + err = 255; + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_commit_metadata(struct inode *inode) +{ + int err; + aufs_bindex_t bindex; + struct super_block *sb; + struct inode *h_inode; + int (*f)(struct inode *inode); + + sb = inode->i_sb; + si_read_lock(sb, AuLock_FLUSH); + ii_write_lock_child(inode); + bindex = au_ibstart(inode); + AuDebugOn(bindex < 0); + h_inode = au_h_iptr(inode, bindex); + + f = h_inode->i_sb->s_export_op->commit_metadata; + if (f) + err = f(h_inode); + else { + struct writeback_control wbc = { + .sync_mode = WB_SYNC_ALL, + .nr_to_write = 0 /* metadata only */ + }; + + err = sync_inode(h_inode, &wbc); + } + + au_cpup_attr_timesizes(inode); + ii_write_unlock(inode); + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static struct export_operations aufs_export_op = { + .fh_to_dentry = aufs_fh_to_dentry, + /* .fh_to_parent = aufs_fh_to_parent, */ + .encode_fh = aufs_encode_fh, + .commit_metadata = aufs_commit_metadata +}; + +void au_export_init(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + __u32 u; + + sb->s_export_op = &aufs_export_op; + sbinfo = au_sbi(sb); + sbinfo->si_xigen = NULL; + get_random_bytes(&u, sizeof(u)); + BUILD_BUG_ON(sizeof(u) != sizeof(int)); + atomic_set(&sbinfo->si_xigen_next, u); +} --- linux-2.6.35.orig/ubuntu/aufs/magic.mk +++ linux-2.6.35/ubuntu/aufs/magic.mk @@ -0,0 +1,54 @@ + +# defined in ${srctree}/fs/fuse/inode.c +# tristate +ifdef CONFIG_FUSE_FS +ccflags-y += -DFUSE_SUPER_MAGIC=0x65735546 +endif + +# defined in ${srctree}/fs/ocfs2/ocfs2_fs.h +# tristate +ifdef CONFIG_OCFS2_FS +ccflags-y += -DOCFS2_SUPER_MAGIC=0x7461636f +endif + +# defined in ${srctree}/fs/ocfs2/dlm/userdlm.h +# tristate +ifdef CONFIG_OCFS2_FS_O2CB +ccflags-y += -DDLMFS_MAGIC=0x76a9f425 +endif + +# defined in ${srctree}/fs/cifs/cifsfs.c +# tristate +ifdef CONFIG_CIFS_FS +ccflags-y += -DCIFS_MAGIC_NUMBER=0xFF534D42 +endif + +# defined in ${srctree}/fs/xfs/xfs_sb.h +# tristate +ifdef CONFIG_XFS_FS +ccflags-y += -DXFS_SB_MAGIC=0x58465342 +endif + +# defined in ${srctree}/fs/configfs/mount.c +# tristate +ifdef CONFIG_CONFIGFS_FS +ccflags-y += -DCONFIGFS_MAGIC=0x62656570 +endif + +# defined in ${srctree}/fs/9p/v9fs.h +# tristate +ifdef CONFIG_9P_FS +ccflags-y += -DV9FS_MAGIC=0x01021997 +endif + +# defined in ${srctree}/fs/ubifs/ubifs.h +# tristate +ifdef CONFIG_UBIFS_FS +ccflags-y += -DUBIFS_SUPER_MAGIC=0x24051905 +endif + +# defined in ${srctree}/fs/hfsplus/hfsplus_raw.h +# tristate +ifdef CONFIG_HFSPLUS_FS +ccflags-y += -DHFSPLUS_SUPER_MAGIC=0x482b +endif --- linux-2.6.35.orig/ubuntu/aufs/whout.c +++ linux-2.6.35/ubuntu/aufs/whout.c @@ -0,0 +1,1052 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * whiteout for logical deletion and opaque directory + */ + +#include +#include "aufs.h" + +#define WH_MASK S_IRUGO + +/* + * If a directory contains this file, then it is opaque. We start with the + * .wh. flag so that it is blocked by lookup. + */ +static struct qstr diropq_name = { + .name = AUFS_WH_DIROPQ, + .len = sizeof(AUFS_WH_DIROPQ) - 1 +}; + +/* + * generate whiteout name, which is NOT terminated by NULL. + * @name: original d_name.name + * @len: original d_name.len + * @wh: whiteout qstr + * returns zero when succeeds, otherwise error. + * succeeded value as wh->name should be freed by kfree(). + */ +int au_wh_name_alloc(struct qstr *wh, const struct qstr *name) +{ + char *p; + + if (unlikely(name->len > PATH_MAX - AUFS_WH_PFX_LEN)) + return -ENAMETOOLONG; + + wh->len = name->len + AUFS_WH_PFX_LEN; + p = kmalloc(wh->len, GFP_NOFS); + wh->name = p; + if (p) { + memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN); + memcpy(p + AUFS_WH_PFX_LEN, name->name, name->len); + /* smp_mb(); */ + return 0; + } + return -ENOMEM; +} + +/* ---------------------------------------------------------------------- */ + +/* + * test if the @wh_name exists under @h_parent. + * @try_sio specifies the necessary of super-io. + */ +int au_wh_test(struct dentry *h_parent, struct qstr *wh_name, + struct au_branch *br, int try_sio) +{ + int err; + struct dentry *wh_dentry; + + if (!try_sio) + wh_dentry = au_lkup_one(wh_name, h_parent, br, /*nd*/NULL); + else + wh_dentry = au_sio_lkup_one(wh_name, h_parent, br); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out; + + err = 0; + if (!wh_dentry->d_inode) + goto out_wh; /* success */ + + err = 1; + if (S_ISREG(wh_dentry->d_inode->i_mode)) + goto out_wh; /* success */ + + err = -EIO; + AuIOErr("%.*s Invalid whiteout entry type 0%o.\n", + AuDLNPair(wh_dentry), wh_dentry->d_inode->i_mode); + + out_wh: + dput(wh_dentry); + out: + return err; +} + +/* + * test if the @h_dentry sets opaque or not. + */ +int au_diropq_test(struct dentry *h_dentry, struct au_branch *br) +{ + int err; + struct inode *h_dir; + + h_dir = h_dentry->d_inode; + err = au_wh_test(h_dentry, &diropq_name, br, + au_test_h_perm_sio(h_dir, MAY_EXEC)); + return err; +} + +/* + * returns a negative dentry whose name is unique and temporary. + */ +struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct au_branch *br, + struct qstr *prefix) +{ + struct dentry *dentry; + int i; + char defname[NAME_MAX - AUFS_MAX_NAMELEN + DNAME_INLINE_LEN_MIN + 1], + *name, *p; + static unsigned short cnt; + struct qstr qs; + + BUILD_BUG_ON(sizeof(cnt) * 2 > AUFS_WH_TMP_LEN); + + name = defname; + qs.len = sizeof(defname) - DNAME_INLINE_LEN_MIN + prefix->len - 1; + if (unlikely(prefix->len > DNAME_INLINE_LEN_MIN)) { + dentry = ERR_PTR(-ENAMETOOLONG); + if (unlikely(qs.len > NAME_MAX)) + goto out; + dentry = ERR_PTR(-ENOMEM); + name = kmalloc(qs.len + 1, GFP_NOFS); + if (unlikely(!name)) + goto out; + } + + /* doubly whiteout-ed */ + memcpy(name, AUFS_WH_PFX AUFS_WH_PFX, AUFS_WH_PFX_LEN * 2); + p = name + AUFS_WH_PFX_LEN * 2; + memcpy(p, prefix->name, prefix->len); + p += prefix->len; + *p++ = '.'; + AuDebugOn(name + qs.len + 1 - p <= AUFS_WH_TMP_LEN); + + qs.name = name; + for (i = 0; i < 3; i++) { + sprintf(p, "%.*d", AUFS_WH_TMP_LEN, cnt++); + dentry = au_sio_lkup_one(&qs, h_parent, br); + if (IS_ERR(dentry) || !dentry->d_inode) + goto out_name; + dput(dentry); + } + /* pr_warning("could not get random name\n"); */ + dentry = ERR_PTR(-EEXIST); + AuDbg("%.*s\n", AuLNPair(&qs)); + BUG(); + + out_name: + if (name != defname) + kfree(name); + out: + AuTraceErrPtr(dentry); + return dentry; +} + +/* + * rename the @h_dentry on @br to the whiteouted temporary name. + */ +int au_whtmp_ren(struct dentry *h_dentry, struct au_branch *br) +{ + int err; + struct path h_path = { + .mnt = br->br_mnt + }; + struct inode *h_dir; + struct dentry *h_parent; + + h_parent = h_dentry->d_parent; /* dir inode is locked */ + h_dir = h_parent->d_inode; + IMustLock(h_dir); + + h_path.dentry = au_whtmp_lkup(h_parent, br, &h_dentry->d_name); + err = PTR_ERR(h_path.dentry); + if (IS_ERR(h_path.dentry)) + goto out; + + /* under the same dir, no need to lock_rename() */ + err = vfsub_rename(h_dir, h_dentry, h_dir, &h_path); + AuTraceErr(err); + dput(h_path.dentry); + + out: + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ +/* + * functions for removing a whiteout + */ + +static int do_unlink_wh(struct inode *h_dir, struct path *h_path) +{ + int force; + + /* + * forces superio when the dir has a sticky bit. + * this may be a violation of unix fs semantics. + */ + force = (h_dir->i_mode & S_ISVTX) + && h_path->dentry->d_inode->i_uid != current_fsuid(); + return vfsub_unlink(h_dir, h_path, force); +} + +int au_wh_unlink_dentry(struct inode *h_dir, struct path *h_path, + struct dentry *dentry) +{ + int err; + + err = do_unlink_wh(h_dir, h_path); + if (!err && dentry) + au_set_dbwh(dentry, -1); + + return err; +} + +static int unlink_wh_name(struct dentry *h_parent, struct qstr *wh, + struct au_branch *br) +{ + int err; + struct path h_path = { + .mnt = br->br_mnt + }; + + err = 0; + h_path.dentry = au_lkup_one(wh, h_parent, br, /*nd*/NULL); + if (IS_ERR(h_path.dentry)) + err = PTR_ERR(h_path.dentry); + else { + if (h_path.dentry->d_inode + && S_ISREG(h_path.dentry->d_inode->i_mode)) + err = do_unlink_wh(h_parent->d_inode, &h_path); + dput(h_path.dentry); + } + + return err; +} + +/* ---------------------------------------------------------------------- */ +/* + * initialize/clean whiteout for a branch + */ + +static void au_wh_clean(struct inode *h_dir, struct path *whpath, + const int isdir) +{ + int err; + + if (!whpath->dentry->d_inode) + return; + + err = mnt_want_write(whpath->mnt); + if (!err) { + if (isdir) + err = vfsub_rmdir(h_dir, whpath); + else + err = vfsub_unlink(h_dir, whpath, /*force*/0); + mnt_drop_write(whpath->mnt); + } + if (unlikely(err)) + pr_warning("failed removing %.*s (%d), ignored.\n", + AuDLNPair(whpath->dentry), err); +} + +static int test_linkable(struct dentry *h_root) +{ + struct inode *h_dir = h_root->d_inode; + + if (h_dir->i_op->link) + return 0; + + pr_err("%.*s (%s) doesn't support link(2), use noplink and rw+nolwh\n", + AuDLNPair(h_root), au_sbtype(h_root->d_sb)); + return -ENOSYS; +} + +/* todo: should this mkdir be done in /sbin/mount.aufs helper? */ +static int au_whdir(struct inode *h_dir, struct path *path) +{ + int err; + + err = -EEXIST; + if (!path->dentry->d_inode) { + int mode = S_IRWXU; + + if (au_test_nfs(path->dentry->d_sb)) + mode |= S_IXUGO; + err = mnt_want_write(path->mnt); + if (!err) { + err = vfsub_mkdir(h_dir, path, mode); + mnt_drop_write(path->mnt); + } + } else if (S_ISDIR(path->dentry->d_inode->i_mode)) + err = 0; + else + pr_err("unknown %.*s exists\n", AuDLNPair(path->dentry)); + + return err; +} + +struct au_wh_base { + const struct qstr *name; + struct dentry *dentry; +}; + +static void au_wh_init_ro(struct inode *h_dir, struct au_wh_base base[], + struct path *h_path) +{ + h_path->dentry = base[AuBrWh_BASE].dentry; + au_wh_clean(h_dir, h_path, /*isdir*/0); + h_path->dentry = base[AuBrWh_PLINK].dentry; + au_wh_clean(h_dir, h_path, /*isdir*/1); + h_path->dentry = base[AuBrWh_ORPH].dentry; + au_wh_clean(h_dir, h_path, /*isdir*/1); +} + +/* + * returns tri-state, + * minus: error, caller should print the mesage + * zero: succuess + * plus: error, caller should NOT print the mesage + */ +static int au_wh_init_rw_nolink(struct dentry *h_root, struct au_wbr *wbr, + int do_plink, struct au_wh_base base[], + struct path *h_path) +{ + int err; + struct inode *h_dir; + + h_dir = h_root->d_inode; + h_path->dentry = base[AuBrWh_BASE].dentry; + au_wh_clean(h_dir, h_path, /*isdir*/0); + h_path->dentry = base[AuBrWh_PLINK].dentry; + if (do_plink) { + err = test_linkable(h_root); + if (unlikely(err)) { + err = 1; + goto out; + } + + err = au_whdir(h_dir, h_path); + if (unlikely(err)) + goto out; + wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry); + } else + au_wh_clean(h_dir, h_path, /*isdir*/1); + h_path->dentry = base[AuBrWh_ORPH].dentry; + err = au_whdir(h_dir, h_path); + if (unlikely(err)) + goto out; + wbr->wbr_orph = dget(base[AuBrWh_ORPH].dentry); + + out: + return err; +} + +/* + * for the moment, aufs supports the branch filesystem which does not support + * link(2). testing on FAT which does not support i_op->setattr() fully either, + * copyup failed. finally, such filesystem will not be used as the writable + * branch. + * + * returns tri-state, see above. + */ +static int au_wh_init_rw(struct dentry *h_root, struct au_wbr *wbr, + int do_plink, struct au_wh_base base[], + struct path *h_path) +{ + int err; + struct inode *h_dir; + + WbrWhMustWriteLock(wbr); + + err = test_linkable(h_root); + if (unlikely(err)) { + err = 1; + goto out; + } + + /* + * todo: should this create be done in /sbin/mount.aufs helper? + */ + err = -EEXIST; + h_dir = h_root->d_inode; + if (!base[AuBrWh_BASE].dentry->d_inode) { + err = mnt_want_write(h_path->mnt); + if (!err) { + h_path->dentry = base[AuBrWh_BASE].dentry; + err = vfsub_create(h_dir, h_path, WH_MASK); + mnt_drop_write(h_path->mnt); + } + } else if (S_ISREG(base[AuBrWh_BASE].dentry->d_inode->i_mode)) + err = 0; + else + pr_err("unknown %.*s/%.*s exists\n", + AuDLNPair(h_root), AuDLNPair(base[AuBrWh_BASE].dentry)); + if (unlikely(err)) + goto out; + + h_path->dentry = base[AuBrWh_PLINK].dentry; + if (do_plink) { + err = au_whdir(h_dir, h_path); + if (unlikely(err)) + goto out; + wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry); + } else + au_wh_clean(h_dir, h_path, /*isdir*/1); + wbr->wbr_whbase = dget(base[AuBrWh_BASE].dentry); + + h_path->dentry = base[AuBrWh_ORPH].dentry; + err = au_whdir(h_dir, h_path); + if (unlikely(err)) + goto out; + wbr->wbr_orph = dget(base[AuBrWh_ORPH].dentry); + + out: + return err; +} + +/* + * initialize the whiteout base file/dir for @br. + */ +int au_wh_init(struct dentry *h_root, struct au_branch *br, + struct super_block *sb) +{ + int err, i; + const unsigned char do_plink + = !!au_opt_test(au_mntflags(sb), PLINK); + struct path path = { + .mnt = br->br_mnt + }; + struct inode *h_dir; + struct au_wbr *wbr = br->br_wbr; + static const struct qstr base_name[] = { + [AuBrWh_BASE] = { + .name = AUFS_BASE_NAME, + .len = sizeof(AUFS_BASE_NAME) - 1 + }, + [AuBrWh_PLINK] = { + .name = AUFS_PLINKDIR_NAME, + .len = sizeof(AUFS_PLINKDIR_NAME) - 1 + }, + [AuBrWh_ORPH] = { + .name = AUFS_ORPHDIR_NAME, + .len = sizeof(AUFS_ORPHDIR_NAME) - 1 + } + }; + struct au_wh_base base[] = { + [AuBrWh_BASE] = { + .name = base_name + AuBrWh_BASE, + .dentry = NULL + }, + [AuBrWh_PLINK] = { + .name = base_name + AuBrWh_PLINK, + .dentry = NULL + }, + [AuBrWh_ORPH] = { + .name = base_name + AuBrWh_ORPH, + .dentry = NULL + } + }; + + if (wbr) + WbrWhMustWriteLock(wbr); + + for (i = 0; i < AuBrWh_Last; i++) { + /* doubly whiteouted */ + struct dentry *d; + + d = au_wh_lkup(h_root, (void *)base[i].name, br); + err = PTR_ERR(d); + if (IS_ERR(d)) + goto out; + + base[i].dentry = d; + AuDebugOn(wbr + && wbr->wbr_wh[i] + && wbr->wbr_wh[i] != base[i].dentry); + } + + if (wbr) + for (i = 0; i < AuBrWh_Last; i++) { + dput(wbr->wbr_wh[i]); + wbr->wbr_wh[i] = NULL; + } + + err = 0; + switch (br->br_perm) { + case AuBrPerm_RO: + case AuBrPerm_ROWH: + case AuBrPerm_RR: + case AuBrPerm_RRWH: + h_dir = h_root->d_inode; + au_wh_init_ro(h_dir, base, &path); + break; + + case AuBrPerm_RWNoLinkWH: + err = au_wh_init_rw_nolink(h_root, wbr, do_plink, base, &path); + if (err > 0) + goto out; + else if (err) + goto out_err; + break; + + case AuBrPerm_RW: + err = au_wh_init_rw(h_root, wbr, do_plink, base, &path); + if (err > 0) + goto out; + else if (err) + goto out_err; + break; + + default: + BUG(); + } + goto out; /* success */ + + out_err: + pr_err("an error(%d) on the writable branch %.*s(%s)\n", + err, AuDLNPair(h_root), au_sbtype(h_root->d_sb)); + out: + for (i = 0; i < AuBrWh_Last; i++) + dput(base[i].dentry); + return err; +} + +/* ---------------------------------------------------------------------- */ +/* + * whiteouts are all hard-linked usually. + * when its link count reaches a ceiling, we create a new whiteout base + * asynchronously. + */ + +struct reinit_br_wh { + struct super_block *sb; + struct au_branch *br; +}; + +static void reinit_br_wh(void *arg) +{ + int err; + aufs_bindex_t bindex; + struct path h_path; + struct reinit_br_wh *a = arg; + struct au_wbr *wbr; + struct inode *dir; + struct dentry *h_root; + struct au_hinode *hdir; + + err = 0; + wbr = a->br->br_wbr; + /* big aufs lock */ + si_noflush_write_lock(a->sb); + if (!au_br_writable(a->br->br_perm)) + goto out; + bindex = au_br_index(a->sb, a->br->br_id); + if (unlikely(bindex < 0)) + goto out; + + di_read_lock_parent(a->sb->s_root, AuLock_IR); + dir = a->sb->s_root->d_inode; + hdir = au_hi(dir, bindex); + h_root = au_h_dptr(a->sb->s_root, bindex); + + au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT); + wbr_wh_write_lock(wbr); + err = au_h_verify(wbr->wbr_whbase, au_opt_udba(a->sb), hdir->hi_inode, + h_root, a->br); + if (!err) { + err = mnt_want_write(a->br->br_mnt); + if (!err) { + h_path.dentry = wbr->wbr_whbase; + h_path.mnt = a->br->br_mnt; + err = vfsub_unlink(hdir->hi_inode, &h_path, /*force*/0); + mnt_drop_write(a->br->br_mnt); + } + } else { + pr_warning("%.*s is moved, ignored\n", + AuDLNPair(wbr->wbr_whbase)); + err = 0; + } + dput(wbr->wbr_whbase); + wbr->wbr_whbase = NULL; + if (!err) + err = au_wh_init(h_root, a->br, a->sb); + wbr_wh_write_unlock(wbr); + au_hn_imtx_unlock(hdir); + di_read_unlock(a->sb->s_root, AuLock_IR); + + out: + if (wbr) + atomic_dec(&wbr->wbr_wh_running); + atomic_dec(&a->br->br_count); + au_nwt_done(&au_sbi(a->sb)->si_nowait); + si_write_unlock(a->sb); + kfree(arg); + if (unlikely(err)) + AuIOErr("err %d\n", err); +} + +static void kick_reinit_br_wh(struct super_block *sb, struct au_branch *br) +{ + int do_dec, wkq_err; + struct reinit_br_wh *arg; + + do_dec = 1; + if (atomic_inc_return(&br->br_wbr->wbr_wh_running) != 1) + goto out; + + /* ignore ENOMEM */ + arg = kmalloc(sizeof(*arg), GFP_NOFS); + if (arg) { + /* + * dec(wh_running), kfree(arg) and dec(br_count) + * in reinit function + */ + arg->sb = sb; + arg->br = br; + atomic_inc(&br->br_count); + wkq_err = au_wkq_nowait(reinit_br_wh, arg, sb); + if (unlikely(wkq_err)) { + atomic_dec(&br->br_wbr->wbr_wh_running); + atomic_dec(&br->br_count); + kfree(arg); + } + do_dec = 0; + } + + out: + if (do_dec) + atomic_dec(&br->br_wbr->wbr_wh_running); +} + +/* ---------------------------------------------------------------------- */ + +/* + * create the whiteout @wh. + */ +static int link_or_create_wh(struct super_block *sb, aufs_bindex_t bindex, + struct dentry *wh) +{ + int err; + struct path h_path = { + .dentry = wh + }; + struct au_branch *br; + struct au_wbr *wbr; + struct dentry *h_parent; + struct inode *h_dir; + + h_parent = wh->d_parent; /* dir inode is locked */ + h_dir = h_parent->d_inode; + IMustLock(h_dir); + + br = au_sbr(sb, bindex); + h_path.mnt = br->br_mnt; + wbr = br->br_wbr; + wbr_wh_read_lock(wbr); + if (wbr->wbr_whbase) { + err = vfsub_link(wbr->wbr_whbase, h_dir, &h_path); + if (!err || err != -EMLINK) + goto out; + + /* link count full. re-initialize br_whbase. */ + kick_reinit_br_wh(sb, br); + } + + /* return this error in this context */ + err = vfsub_create(h_dir, &h_path, WH_MASK); + + out: + wbr_wh_read_unlock(wbr); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * create or remove the diropq. + */ +static struct dentry *do_diropq(struct dentry *dentry, aufs_bindex_t bindex, + unsigned int flags) +{ + struct dentry *opq_dentry, *h_dentry; + struct super_block *sb; + struct au_branch *br; + int err; + + sb = dentry->d_sb; + br = au_sbr(sb, bindex); + h_dentry = au_h_dptr(dentry, bindex); + opq_dentry = au_lkup_one(&diropq_name, h_dentry, br, /*nd*/NULL); + if (IS_ERR(opq_dentry)) + goto out; + + if (au_ftest_diropq(flags, CREATE)) { + err = link_or_create_wh(sb, bindex, opq_dentry); + if (!err) { + au_set_dbdiropq(dentry, bindex); + goto out; /* success */ + } + } else { + struct path tmp = { + .dentry = opq_dentry, + .mnt = br->br_mnt + }; + err = do_unlink_wh(au_h_iptr(dentry->d_inode, bindex), &tmp); + if (!err) + au_set_dbdiropq(dentry, -1); + } + dput(opq_dentry); + opq_dentry = ERR_PTR(err); + + out: + return opq_dentry; +} + +struct do_diropq_args { + struct dentry **errp; + struct dentry *dentry; + aufs_bindex_t bindex; + unsigned int flags; +}; + +static void call_do_diropq(void *args) +{ + struct do_diropq_args *a = args; + *a->errp = do_diropq(a->dentry, a->bindex, a->flags); +} + +struct dentry *au_diropq_sio(struct dentry *dentry, aufs_bindex_t bindex, + unsigned int flags) +{ + struct dentry *diropq, *h_dentry; + + h_dentry = au_h_dptr(dentry, bindex); + if (!au_test_h_perm_sio(h_dentry->d_inode, MAY_EXEC | MAY_WRITE)) + diropq = do_diropq(dentry, bindex, flags); + else { + int wkq_err; + struct do_diropq_args args = { + .errp = &diropq, + .dentry = dentry, + .bindex = bindex, + .flags = flags + }; + + wkq_err = au_wkq_wait(call_do_diropq, &args); + if (unlikely(wkq_err)) + diropq = ERR_PTR(wkq_err); + } + + return diropq; +} + +/* ---------------------------------------------------------------------- */ + +/* + * lookup whiteout dentry. + * @h_parent: lower parent dentry which must exist and be locked + * @base_name: name of dentry which will be whiteouted + * returns dentry for whiteout. + */ +struct dentry *au_wh_lkup(struct dentry *h_parent, struct qstr *base_name, + struct au_branch *br) +{ + int err; + struct qstr wh_name; + struct dentry *wh_dentry; + + err = au_wh_name_alloc(&wh_name, base_name); + wh_dentry = ERR_PTR(err); + if (!err) { + wh_dentry = au_lkup_one(&wh_name, h_parent, br, /*nd*/NULL); + kfree(wh_name.name); + } + return wh_dentry; +} + +/* + * link/create a whiteout for @dentry on @bindex. + */ +struct dentry *au_wh_create(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent) +{ + struct dentry *wh_dentry; + struct super_block *sb; + int err; + + sb = dentry->d_sb; + wh_dentry = au_wh_lkup(h_parent, &dentry->d_name, au_sbr(sb, bindex)); + if (!IS_ERR(wh_dentry) && !wh_dentry->d_inode) { + err = link_or_create_wh(sb, bindex, wh_dentry); + if (!err) + au_set_dbwh(dentry, bindex); + else { + dput(wh_dentry); + wh_dentry = ERR_PTR(err); + } + } + + return wh_dentry; +} + +/* ---------------------------------------------------------------------- */ + +/* Delete all whiteouts in this directory on branch bindex. */ +static int del_wh_children(struct dentry *h_dentry, struct au_nhash *whlist, + aufs_bindex_t bindex, struct au_branch *br) +{ + int err; + unsigned long ul, n; + struct qstr wh_name; + char *p; + struct hlist_head *head; + struct au_vdir_wh *tpos; + struct hlist_node *pos; + struct au_vdir_destr *str; + + err = -ENOMEM; + p = __getname_gfp(GFP_NOFS); + wh_name.name = p; + if (unlikely(!wh_name.name)) + goto out; + + err = 0; + memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN); + p += AUFS_WH_PFX_LEN; + n = whlist->nh_num; + head = whlist->nh_head; + for (ul = 0; !err && ul < n; ul++, head++) { + hlist_for_each_entry(tpos, pos, head, wh_hash) { + if (tpos->wh_bindex != bindex) + continue; + + str = &tpos->wh_str; + if (str->len + AUFS_WH_PFX_LEN <= PATH_MAX) { + memcpy(p, str->name, str->len); + wh_name.len = AUFS_WH_PFX_LEN + str->len; + err = unlink_wh_name(h_dentry, &wh_name, br); + if (!err) + continue; + break; + } + AuIOErr("whiteout name too long %.*s\n", + str->len, str->name); + err = -EIO; + break; + } + } + __putname(wh_name.name); + + out: + return err; +} + +struct del_wh_children_args { + int *errp; + struct dentry *h_dentry; + struct au_nhash *whlist; + aufs_bindex_t bindex; + struct au_branch *br; +}; + +static void call_del_wh_children(void *args) +{ + struct del_wh_children_args *a = args; + *a->errp = del_wh_children(a->h_dentry, a->whlist, a->bindex, a->br); +} + +/* ---------------------------------------------------------------------- */ + +struct au_whtmp_rmdir *au_whtmp_rmdir_alloc(struct super_block *sb, gfp_t gfp) +{ + struct au_whtmp_rmdir *whtmp; + int err; + unsigned int rdhash; + + SiMustAnyLock(sb); + + whtmp = kmalloc(sizeof(*whtmp), gfp); + if (unlikely(!whtmp)) { + whtmp = ERR_PTR(-ENOMEM); + goto out; + } + + whtmp->dir = NULL; + whtmp->wh_dentry = NULL; + /* no estimation for dir size */ + rdhash = au_sbi(sb)->si_rdhash; + if (!rdhash) + rdhash = AUFS_RDHASH_DEF; + err = au_nhash_alloc(&whtmp->whlist, rdhash, gfp); + if (unlikely(err)) { + kfree(whtmp); + whtmp = ERR_PTR(err); + } + + out: + return whtmp; +} + +void au_whtmp_rmdir_free(struct au_whtmp_rmdir *whtmp) +{ + dput(whtmp->wh_dentry); + iput(whtmp->dir); + au_nhash_wh_free(&whtmp->whlist); + kfree(whtmp); +} + +/* + * rmdir the whiteouted temporary named dir @h_dentry. + * @whlist: whiteouted children. + */ +int au_whtmp_rmdir(struct inode *dir, aufs_bindex_t bindex, + struct dentry *wh_dentry, struct au_nhash *whlist) +{ + int err; + struct path h_tmp; + struct inode *wh_inode, *h_dir; + struct au_branch *br; + + h_dir = wh_dentry->d_parent->d_inode; /* dir inode is locked */ + IMustLock(h_dir); + + br = au_sbr(dir->i_sb, bindex); + wh_inode = wh_dentry->d_inode; + mutex_lock_nested(&wh_inode->i_mutex, AuLsc_I_CHILD); + + /* + * someone else might change some whiteouts while we were sleeping. + * it means this whlist may have an obsoleted entry. + */ + if (!au_test_h_perm_sio(wh_inode, MAY_EXEC | MAY_WRITE)) + err = del_wh_children(wh_dentry, whlist, bindex, br); + else { + int wkq_err; + struct del_wh_children_args args = { + .errp = &err, + .h_dentry = wh_dentry, + .whlist = whlist, + .bindex = bindex, + .br = br + }; + + wkq_err = au_wkq_wait(call_del_wh_children, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + mutex_unlock(&wh_inode->i_mutex); + + if (!err) { + h_tmp.dentry = wh_dentry; + h_tmp.mnt = br->br_mnt; + err = vfsub_rmdir(h_dir, &h_tmp); + /* d_drop(h_dentry); */ + } + + if (!err) { + if (au_ibstart(dir) == bindex) { + au_cpup_attr_timesizes(dir); + drop_nlink(dir); + } + return 0; /* success */ + } + + pr_warning("failed removing %.*s(%d), ignored\n", + AuDLNPair(wh_dentry), err); + return err; +} + +static void call_rmdir_whtmp(void *args) +{ + int err; + struct au_whtmp_rmdir *a = args; + struct super_block *sb; + struct dentry *h_parent; + struct inode *h_dir; + struct au_branch *br; + struct au_hinode *hdir; + + /* rmdir by nfsd may cause deadlock with this i_mutex */ + /* mutex_lock(&a->dir->i_mutex); */ + sb = a->dir->i_sb; + si_noflush_read_lock(sb); + err = au_test_ro(sb, a->bindex, NULL); + if (unlikely(err)) + goto out; + + err = -EIO; + br = au_sbr(sb, a->bindex); + ii_write_lock_parent(a->dir); + h_parent = dget_parent(a->wh_dentry); + h_dir = h_parent->d_inode; + hdir = au_hi(a->dir, a->bindex); + au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT); + err = au_h_verify(a->wh_dentry, au_opt_udba(sb), h_dir, h_parent, br); + if (!err) { + err = mnt_want_write(br->br_mnt); + if (!err) { + err = au_whtmp_rmdir(a->dir, a->bindex, a->wh_dentry, + &a->whlist); + mnt_drop_write(br->br_mnt); + } + } + au_hn_imtx_unlock(hdir); + dput(h_parent); + ii_write_unlock(a->dir); + + out: + /* mutex_unlock(&a->dir->i_mutex); */ + au_nwt_done(&au_sbi(sb)->si_nowait); + si_read_unlock(sb); + au_whtmp_rmdir_free(a); + if (unlikely(err)) + AuIOErr("err %d\n", err); +} + +void au_whtmp_kick_rmdir(struct inode *dir, aufs_bindex_t bindex, + struct dentry *wh_dentry, struct au_whtmp_rmdir *args) +{ + int wkq_err; + + IMustLock(dir); + + /* all post-process will be done in do_rmdir_whtmp(). */ + args->dir = au_igrab(dir); + args->bindex = bindex; + args->wh_dentry = dget(wh_dentry); + wkq_err = au_wkq_nowait(call_rmdir_whtmp, args, dir->i_sb); + if (unlikely(wkq_err)) { + pr_warning("rmdir error %.*s (%d), ignored\n", + AuDLNPair(wh_dentry), wkq_err); + au_whtmp_rmdir_free(args); + } +} --- linux-2.6.35.orig/ubuntu/aufs/aufs.h +++ linux-2.6.35/ubuntu/aufs/aufs.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * all header files + */ + +#ifndef __AUFS_H__ +#define __AUFS_H__ + +#ifdef __KERNEL__ + +#define AuStub(type, name, body, ...) \ + static inline type name(__VA_ARGS__) { body; } + +#define AuStubVoid(name, ...) \ + AuStub(void, name, , __VA_ARGS__) +#define AuStubInt0(name, ...) \ + AuStub(int, name, return 0, __VA_ARGS__) + +#include "debug.h" + +#include "branch.h" +#include "cpup.h" +#include "dcsub.h" +#include "dbgaufs.h" +#include "dentry.h" +#include "dir.h" +#include "dynop.h" +#include "file.h" +#include "fstype.h" +#include "inode.h" +#include "loop.h" +#include "module.h" +/* never include ./mtx.h */ +#include "opts.h" +#include "rwsem.h" +#include "spl.h" +#include "super.h" +#include "sysaufs.h" +#include "vfsub.h" +#include "whout.h" +#include "wkq.h" + +#endif /* __KERNEL__ */ +#endif /* __AUFS_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/dir.c +++ linux-2.6.35/ubuntu/aufs/dir.c @@ -0,0 +1,638 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * directory operations + */ + +#include +#include +#include "aufs.h" + +void au_add_nlink(struct inode *dir, struct inode *h_dir) +{ + AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode)); + + dir->i_nlink += h_dir->i_nlink - 2; + if (h_dir->i_nlink < 2) + dir->i_nlink += 2; +} + +void au_sub_nlink(struct inode *dir, struct inode *h_dir) +{ + AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode)); + + dir->i_nlink -= h_dir->i_nlink - 2; + if (h_dir->i_nlink < 2) + dir->i_nlink -= 2; +} + +loff_t au_dir_size(struct file *file, struct dentry *dentry) +{ + loff_t sz; + aufs_bindex_t bindex, bend; + struct file *h_file; + struct dentry *h_dentry; + + sz = 0; + if (file) { + AuDebugOn(!file->f_dentry); + AuDebugOn(!file->f_dentry->d_inode); + AuDebugOn(!S_ISDIR(file->f_dentry->d_inode->i_mode)); + + bend = au_fbend_dir(file); + for (bindex = au_fbstart(file); + bindex <= bend && sz < KMALLOC_MAX_SIZE; + bindex++) { + h_file = au_hf_dir(file, bindex); + if (h_file + && h_file->f_dentry + && h_file->f_dentry->d_inode) + sz += i_size_read(h_file->f_dentry->d_inode); + } + } else { + AuDebugOn(!dentry); + AuDebugOn(!dentry->d_inode); + AuDebugOn(!S_ISDIR(dentry->d_inode->i_mode)); + + bend = au_dbtaildir(dentry); + for (bindex = au_dbstart(dentry); + bindex <= bend && sz < KMALLOC_MAX_SIZE; + bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry && h_dentry->d_inode) + sz += i_size_read(h_dentry->d_inode); + } + } + if (sz < KMALLOC_MAX_SIZE) + sz = roundup_pow_of_two(sz); + if (sz > KMALLOC_MAX_SIZE) + sz = KMALLOC_MAX_SIZE; + else if (sz < NAME_MAX) { + BUILD_BUG_ON(AUFS_RDBLK_DEF < NAME_MAX); + sz = AUFS_RDBLK_DEF; + } + return sz; +} + +/* ---------------------------------------------------------------------- */ + +static int reopen_dir(struct file *file) +{ + int err; + unsigned int flags; + aufs_bindex_t bindex, btail, bstart; + struct dentry *dentry, *h_dentry; + struct file *h_file; + + /* open all lower dirs */ + dentry = file->f_dentry; + bstart = au_dbstart(dentry); + for (bindex = au_fbstart(file); bindex < bstart; bindex++) + au_set_h_fptr(file, bindex, NULL); + au_set_fbstart(file, bstart); + + btail = au_dbtaildir(dentry); + for (bindex = au_fbend_dir(file); btail < bindex; bindex--) + au_set_h_fptr(file, bindex, NULL); + au_set_fbend_dir(file, btail); + + flags = vfsub_file_flags(file); + for (bindex = bstart; bindex <= btail; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + h_file = au_hf_dir(file, bindex); + if (h_file) + continue; + + h_file = au_h_open(dentry, bindex, flags, file); + err = PTR_ERR(h_file); + if (IS_ERR(h_file)) + goto out; /* close all? */ + au_set_h_fptr(file, bindex, h_file); + } + au_update_figen(file); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + err = 0; + + out: + return err; +} + +static int do_open_dir(struct file *file, int flags) +{ + int err; + aufs_bindex_t bindex, btail; + struct dentry *dentry, *h_dentry; + struct file *h_file; + + FiMustWriteLock(file); + + err = 0; + dentry = file->f_dentry; + file->f_version = dentry->d_inode->i_version; + bindex = au_dbstart(dentry); + au_set_fbstart(file, bindex); + btail = au_dbtaildir(dentry); + au_set_fbend_dir(file, btail); + for (; !err && bindex <= btail; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + + h_file = au_h_open(dentry, bindex, flags, file); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + break; + } + au_set_h_fptr(file, bindex, h_file); + } + au_update_figen(file); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + if (!err) + return 0; /* success */ + + /* close all */ + for (bindex = au_fbstart(file); bindex <= btail; bindex++) + au_set_h_fptr(file, bindex, NULL); + au_set_fbstart(file, -1); + au_set_fbend_dir(file, -1); + + return err; +} + +static int aufs_open_dir(struct inode *inode __maybe_unused, + struct file *file) +{ + int err; + struct super_block *sb; + struct au_fidir *fidir; + + err = -ENOMEM; + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + fidir = au_fidir_alloc(inode->i_sb); + if (fidir) { + err = au_do_open(file, do_open_dir, fidir); + if (unlikely(err)) + kfree(fidir); + } + si_read_unlock(sb); + return err; +} + +static int aufs_release_dir(struct inode *inode __maybe_unused, + struct file *file) +{ + struct au_vdir *vdir_cache; + struct super_block *sb; + struct au_finfo *finfo; + struct au_fidir *fidir; + aufs_bindex_t bindex, bend; + + au_plink_maint_leave(file); + sb = file->f_dentry->d_sb; + finfo = au_fi(file); + fidir = finfo->fi_hdir; + if (fidir) { + vdir_cache = fidir->fd_vdir_cache; /* lock-free */ + if (vdir_cache) + au_vdir_free(vdir_cache); + + bindex = finfo->fi_btop; + if (bindex >= 0) { + /* + * calls fput() instead of filp_close(), + * since no dnotify or lock for the lower file. + */ + bend = fidir->fd_bbot; + for (; bindex <= bend; bindex++) + au_set_h_fptr(file, bindex, NULL); + } + kfree(fidir); + finfo->fi_hdir = NULL; + } + au_finfo_fin(file); + return 0; +} + +/* ---------------------------------------------------------------------- */ + +static int au_do_flush_dir(struct file *file, fl_owner_t id) +{ + int err; + aufs_bindex_t bindex, bend; + struct file *h_file; + + err = 0; + bend = au_fbend_dir(file); + for (bindex = au_fbstart(file); !err && bindex <= bend; bindex++) { + h_file = au_hf_dir(file, bindex); + if (h_file) + err = vfsub_flush(h_file, id); + } + return err; +} + +static int aufs_flush_dir(struct file *file, fl_owner_t id) +{ + return au_do_flush(file, id, au_do_flush_dir); +} + +/* ---------------------------------------------------------------------- */ + +static int au_do_fsync_dir_no_file(struct dentry *dentry, int datasync) +{ + int err; + aufs_bindex_t bend, bindex; + struct inode *inode; + struct super_block *sb; + + err = 0; + sb = dentry->d_sb; + inode = dentry->d_inode; + IMustLock(inode); + bend = au_dbend(dentry); + for (bindex = au_dbstart(dentry); !err && bindex <= bend; bindex++) { + struct path h_path; + struct inode *h_inode; + + if (au_test_ro(sb, bindex, inode)) + continue; + h_path.dentry = au_h_dptr(dentry, bindex); + if (!h_path.dentry) + continue; + h_inode = h_path.dentry->d_inode; + if (!h_inode) + continue; + + /* no mnt_want_write() */ + /* cf. fs/nsfd/vfs.c and fs/nfsd/nfs4recover.c */ + /* todo: inotiry fired? */ + h_path.mnt = au_sbr_mnt(sb, bindex); + mutex_lock(&h_inode->i_mutex); + err = filemap_fdatawrite(h_inode->i_mapping); + AuDebugOn(!h_inode->i_fop); + if (!err && h_inode->i_fop->fsync) + err = h_inode->i_fop->fsync(NULL, datasync); + if (!err) + err = filemap_fdatawrite(h_inode->i_mapping); + if (!err) + vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/ + mutex_unlock(&h_inode->i_mutex); + } + + return err; +} + +static int au_do_fsync_dir(struct file *file, int datasync) +{ + int err; + aufs_bindex_t bend, bindex; + struct file *h_file; + struct super_block *sb; + struct inode *inode; + struct mutex *h_mtx; + + err = au_reval_and_lock_fdi(file, reopen_dir, /*wlock*/1); + if (unlikely(err)) + goto out; + + sb = file->f_dentry->d_sb; + inode = file->f_dentry->d_inode; + bend = au_fbend_dir(file); + for (bindex = au_fbstart(file); !err && bindex <= bend; bindex++) { + h_file = au_hf_dir(file, bindex); + if (!h_file || au_test_ro(sb, bindex, inode)) + continue; + + err = vfs_fsync(h_file, datasync); + if (!err) { + h_mtx = &h_file->f_dentry->d_inode->i_mutex; + mutex_lock(h_mtx); + vfsub_update_h_iattr(&h_file->f_path, /*did*/NULL); + /*ignore*/ + mutex_unlock(h_mtx); + } + } + + out: + return err; +} + +/* + * @file may be NULL + */ +static int aufs_fsync_dir(struct file *file, int datasync) +{ + int err; + struct dentry *dentry; + struct super_block *sb; + + dentry = file->f_dentry; + IMustLock(dentry->d_inode); + + err = 0; + sb = dentry->d_sb; + si_noflush_read_lock(sb); + if (file) + err = au_do_fsync_dir(file, datasync); + else { + di_write_lock_child(dentry); + err = au_do_fsync_dir_no_file(dentry, datasync); + } + au_cpup_attr_timesizes(dentry->d_inode); + di_write_unlock(dentry); + if (file) + fi_write_unlock(file); + + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_readdir(struct file *file, void *dirent, filldir_t filldir) +{ + int err; + struct dentry *dentry; + struct inode *inode; + struct super_block *sb; + + dentry = file->f_dentry; + inode = dentry->d_inode; + IMustLock(inode); + + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + err = au_reval_and_lock_fdi(file, reopen_dir, /*wlock*/1); + if (unlikely(err)) + goto out; + err = au_vdir_init(file); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + + if (!au_test_nfsd(current)) { + err = au_vdir_fill_de(file, dirent, filldir); + fsstack_copy_attr_atime(inode, + au_h_iptr(inode, au_ibstart(inode))); + } else { + /* + * nfsd filldir may call lookup_one_len(), vfs_getattr(), + * encode_fh() and others. + */ + struct inode *h_inode = au_h_iptr(inode, au_ibstart(inode)); + + di_read_unlock(dentry, AuLock_IR); + si_read_unlock(sb); + err = au_vdir_fill_de(file, dirent, filldir); + fsstack_copy_attr_atime(inode, h_inode); + fi_write_unlock(file); + + AuTraceErr(err); + return err; + } + + out_unlock: + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + out: + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +#define AuTestEmpty_WHONLY 1 +#define AuTestEmpty_CALLED (1 << 1) +#define AuTestEmpty_SHWH (1 << 2) +#define au_ftest_testempty(flags, name) ((flags) & AuTestEmpty_##name) +#define au_fset_testempty(flags, name) { (flags) |= AuTestEmpty_##name; } +#define au_fclr_testempty(flags, name) { (flags) &= ~AuTestEmpty_##name; } + +#ifndef CONFIG_AUFS_SHWH +#undef AuTestEmpty_SHWH +#define AuTestEmpty_SHWH 0 +#endif + +struct test_empty_arg { + struct au_nhash *whlist; + unsigned int flags; + int err; + aufs_bindex_t bindex; +}; + +static int test_empty_cb(void *__arg, const char *__name, int namelen, + loff_t offset __maybe_unused, u64 ino, + unsigned int d_type) +{ + struct test_empty_arg *arg = __arg; + char *name = (void *)__name; + + arg->err = 0; + au_fset_testempty(arg->flags, CALLED); + /* smp_mb(); */ + if (name[0] == '.' + && (namelen == 1 || (name[1] == '.' && namelen == 2))) + goto out; /* success */ + + if (namelen <= AUFS_WH_PFX_LEN + || memcmp(name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) { + if (au_ftest_testempty(arg->flags, WHONLY) + && !au_nhash_test_known_wh(arg->whlist, name, namelen)) + arg->err = -ENOTEMPTY; + goto out; + } + + name += AUFS_WH_PFX_LEN; + namelen -= AUFS_WH_PFX_LEN; + if (!au_nhash_test_known_wh(arg->whlist, name, namelen)) + arg->err = au_nhash_append_wh + (arg->whlist, name, namelen, ino, d_type, arg->bindex, + au_ftest_testempty(arg->flags, SHWH)); + + out: + /* smp_mb(); */ + AuTraceErr(arg->err); + return arg->err; +} + +static int do_test_empty(struct dentry *dentry, struct test_empty_arg *arg) +{ + int err; + struct file *h_file; + + h_file = au_h_open(dentry, arg->bindex, + O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_LARGEFILE, + /*file*/NULL); + err = PTR_ERR(h_file); + if (IS_ERR(h_file)) + goto out; + + err = 0; + if (!au_opt_test(au_mntflags(dentry->d_sb), UDBA_NONE) + && !h_file->f_dentry->d_inode->i_nlink) + goto out_put; + + do { + arg->err = 0; + au_fclr_testempty(arg->flags, CALLED); + /* smp_mb(); */ + err = vfsub_readdir(h_file, test_empty_cb, arg); + if (err >= 0) + err = arg->err; + } while (!err && au_ftest_testempty(arg->flags, CALLED)); + + out_put: + fput(h_file); + au_sbr_put(dentry->d_sb, arg->bindex); + out: + return err; +} + +struct do_test_empty_args { + int *errp; + struct dentry *dentry; + struct test_empty_arg *arg; +}; + +static void call_do_test_empty(void *args) +{ + struct do_test_empty_args *a = args; + *a->errp = do_test_empty(a->dentry, a->arg); +} + +static int sio_test_empty(struct dentry *dentry, struct test_empty_arg *arg) +{ + int err, wkq_err; + struct dentry *h_dentry; + struct inode *h_inode; + + h_dentry = au_h_dptr(dentry, arg->bindex); + h_inode = h_dentry->d_inode; + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + err = au_test_h_perm_sio(h_inode, MAY_EXEC | MAY_READ); + mutex_unlock(&h_inode->i_mutex); + if (!err) + err = do_test_empty(dentry, arg); + else { + struct do_test_empty_args args = { + .errp = &err, + .dentry = dentry, + .arg = arg + }; + unsigned int flags = arg->flags; + + wkq_err = au_wkq_wait(call_do_test_empty, &args); + if (unlikely(wkq_err)) + err = wkq_err; + arg->flags = flags; + } + + return err; +} + +int au_test_empty_lower(struct dentry *dentry) +{ + int err; + unsigned int rdhash; + aufs_bindex_t bindex, bstart, btail; + struct au_nhash whlist; + struct test_empty_arg arg; + + SiMustAnyLock(dentry->d_sb); + + rdhash = au_sbi(dentry->d_sb)->si_rdhash; + if (!rdhash) + rdhash = au_rdhash_est(au_dir_size(/*file*/NULL, dentry)); + err = au_nhash_alloc(&whlist, rdhash, GFP_NOFS); + if (unlikely(err)) + goto out; + + arg.flags = 0; + arg.whlist = &whlist; + bstart = au_dbstart(dentry); + if (au_opt_test(au_mntflags(dentry->d_sb), SHWH)) + au_fset_testempty(arg.flags, SHWH); + arg.bindex = bstart; + err = do_test_empty(dentry, &arg); + if (unlikely(err)) + goto out_whlist; + + au_fset_testempty(arg.flags, WHONLY); + btail = au_dbtaildir(dentry); + for (bindex = bstart + 1; !err && bindex <= btail; bindex++) { + struct dentry *h_dentry; + + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry && h_dentry->d_inode) { + arg.bindex = bindex; + err = do_test_empty(dentry, &arg); + } + } + + out_whlist: + au_nhash_wh_free(&whlist); + out: + return err; +} + +int au_test_empty(struct dentry *dentry, struct au_nhash *whlist) +{ + int err; + struct test_empty_arg arg; + aufs_bindex_t bindex, btail; + + err = 0; + arg.whlist = whlist; + arg.flags = AuTestEmpty_WHONLY; + if (au_opt_test(au_mntflags(dentry->d_sb), SHWH)) + au_fset_testempty(arg.flags, SHWH); + btail = au_dbtaildir(dentry); + for (bindex = au_dbstart(dentry); !err && bindex <= btail; bindex++) { + struct dentry *h_dentry; + + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry && h_dentry->d_inode) { + arg.bindex = bindex; + err = sio_test_empty(dentry, &arg); + } + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +const struct file_operations aufs_dir_fop = { + .owner = THIS_MODULE, + .read = generic_read_dir, + .readdir = aufs_readdir, + .unlocked_ioctl = aufs_ioctl_dir, +#ifdef CONFIG_COMPAT + .compat_ioctl = aufs_compat_ioctl_dir, +#endif + .open = aufs_open_dir, + .release = aufs_release_dir, + .flush = aufs_flush_dir, + .fsync = aufs_fsync_dir +}; --- linux-2.6.35.orig/ubuntu/aufs/iinfo.c +++ linux-2.6.35/ubuntu/aufs/iinfo.c @@ -0,0 +1,257 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode private data + */ + +#include "aufs.h" + +struct inode *au_h_iptr(struct inode *inode, aufs_bindex_t bindex) +{ + struct inode *h_inode; + + IiMustAnyLock(inode); + + h_inode = au_ii(inode)->ii_hinode[0 + bindex].hi_inode; + AuDebugOn(h_inode && atomic_read(&h_inode->i_count) <= 0); + return h_inode; +} + +/* todo: hard/soft set? */ +void au_hiput(struct au_hinode *hinode) +{ + au_hn_free(hinode); + dput(hinode->hi_whdentry); + iput(hinode->hi_inode); +} + +unsigned int au_hi_flags(struct inode *inode, int isdir) +{ + unsigned int flags; + const unsigned int mnt_flags = au_mntflags(inode->i_sb); + + flags = 0; + if (au_opt_test(mnt_flags, XINO)) + au_fset_hi(flags, XINO); + if (isdir && au_opt_test(mnt_flags, UDBA_HNOTIFY)) + au_fset_hi(flags, HNOTIFY); + return flags; +} + +void au_set_h_iptr(struct inode *inode, aufs_bindex_t bindex, + struct inode *h_inode, unsigned int flags) +{ + struct au_hinode *hinode; + struct inode *hi; + struct au_iinfo *iinfo = au_ii(inode); + + IiMustWriteLock(inode); + + hinode = iinfo->ii_hinode + bindex; + hi = hinode->hi_inode; + AuDebugOn(h_inode && atomic_read(&h_inode->i_count) <= 0); + + if (hi) + au_hiput(hinode); + hinode->hi_inode = h_inode; + if (h_inode) { + int err; + struct super_block *sb = inode->i_sb; + struct au_branch *br; + + if (bindex == iinfo->ii_bstart) + au_cpup_igen(inode, h_inode); + br = au_sbr(sb, bindex); + hinode->hi_id = br->br_id; + if (au_ftest_hi(flags, XINO)) { + err = au_xino_write(sb, bindex, h_inode->i_ino, + inode->i_ino); + if (unlikely(err)) + AuIOErr1("failed au_xino_write() %d\n", err); + } + + if (au_ftest_hi(flags, HNOTIFY) + && au_br_hnotifyable(br->br_perm)) { + err = au_hn_alloc(hinode, inode, h_inode); + if (unlikely(err)) + AuIOErr1("au_hn_alloc() %d\n", err); + } + } +} + +void au_set_hi_wh(struct inode *inode, aufs_bindex_t bindex, + struct dentry *h_wh) +{ + struct au_hinode *hinode; + + IiMustWriteLock(inode); + + hinode = au_ii(inode)->ii_hinode + bindex; + AuDebugOn(hinode->hi_whdentry); + hinode->hi_whdentry = h_wh; +} + +void au_update_iigen(struct inode *inode) +{ + atomic_set(&au_ii(inode)->ii_generation, au_sigen(inode->i_sb)); + /* smp_mb(); */ /* atomic_set */ +} + +/* it may be called at remount time, too */ +void au_update_ibrange(struct inode *inode, int do_put_zero) +{ + struct au_iinfo *iinfo; + + iinfo = au_ii(inode); + if (!iinfo || iinfo->ii_bstart < 0) + return; + + IiMustWriteLock(inode); + + if (do_put_zero) { + aufs_bindex_t bindex; + + for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend; + bindex++) { + struct inode *h_i; + + h_i = iinfo->ii_hinode[0 + bindex].hi_inode; + if (h_i && !h_i->i_nlink) + au_set_h_iptr(inode, bindex, NULL, 0); + } + } + + iinfo->ii_bstart = -1; + while (++iinfo->ii_bstart <= iinfo->ii_bend) + if (iinfo->ii_hinode[0 + iinfo->ii_bstart].hi_inode) + break; + if (iinfo->ii_bstart > iinfo->ii_bend) { + iinfo->ii_bstart = -1; + iinfo->ii_bend = -1; + return; + } + + iinfo->ii_bend++; + while (0 <= --iinfo->ii_bend) + if (iinfo->ii_hinode[0 + iinfo->ii_bend].hi_inode) + break; + AuDebugOn(iinfo->ii_bstart > iinfo->ii_bend || iinfo->ii_bend < 0); +} + +/* ---------------------------------------------------------------------- */ + +void au_icntnr_init_once(void *_c) +{ + struct au_icntnr *c = _c; + struct au_iinfo *iinfo = &c->iinfo; + + au_rw_init(&iinfo->ii_rwsem); + inode_init_once(&c->vfs_inode); +} + +int au_iinfo_init(struct inode *inode) +{ + struct au_iinfo *iinfo; + struct super_block *sb; + int nbr, i; + + sb = inode->i_sb; + iinfo = &(container_of(inode, struct au_icntnr, vfs_inode)->iinfo); + nbr = au_sbend(sb) + 1; + if (unlikely(nbr <= 0)) + nbr = 1; + iinfo->ii_hinode = kcalloc(nbr, sizeof(*iinfo->ii_hinode), GFP_NOFS); + if (iinfo->ii_hinode) { + for (i = 0; i < nbr; i++) + iinfo->ii_hinode[i].hi_id = -1; + + atomic_set(&iinfo->ii_generation, au_sigen(sb)); + /* smp_mb(); */ /* atomic_set */ + iinfo->ii_bstart = -1; + iinfo->ii_bend = -1; + iinfo->ii_vdir = NULL; + return 0; + } + return -ENOMEM; +} + +int au_ii_realloc(struct au_iinfo *iinfo, int nbr) +{ + int err, sz; + struct au_hinode *hip; + + AuRwMustWriteLock(&iinfo->ii_rwsem); + + err = -ENOMEM; + sz = sizeof(*hip) * (iinfo->ii_bend + 1); + if (!sz) + sz = sizeof(*hip); + hip = au_kzrealloc(iinfo->ii_hinode, sz, sizeof(*hip) * nbr, GFP_NOFS); + if (hip) { + iinfo->ii_hinode = hip; + err = 0; + } + + return err; +} + +void au_iinfo_fin(struct inode *inode) +{ + struct au_iinfo *iinfo; + struct au_hinode *hi; + struct super_block *sb; + aufs_bindex_t bindex, bend; + const unsigned char unlinked = !inode->i_nlink; + + iinfo = au_ii(inode); + /* bad_inode case */ + if (!iinfo) + return; + + sb = inode->i_sb; + if (si_pid_test(sb)) + au_xino_delete_inode(inode, unlinked); + else { + /* + * it is safe to hide the dependency between sbinfo and + * sb->s_umount. + */ + lockdep_off(); + si_noflush_read_lock(sb); + au_xino_delete_inode(inode, unlinked); + si_read_unlock(sb); + lockdep_on(); + } + + if (iinfo->ii_vdir) + au_vdir_free(iinfo->ii_vdir); + + bindex = iinfo->ii_bstart; + if (bindex >= 0) { + hi = iinfo->ii_hinode + bindex; + bend = iinfo->ii_bend; + while (bindex++ <= bend) { + if (hi->hi_inode) + au_hiput(hi); + hi++; + } + } + kfree(iinfo->ii_hinode); + AuRwDestroy(&iinfo->ii_rwsem); +} --- linux-2.6.35.orig/ubuntu/aufs/whout.h +++ linux-2.6.35/ubuntu/aufs/whout.h @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * whiteout for logical deletion and opaque directory + */ + +#ifndef __AUFS_WHOUT_H__ +#define __AUFS_WHOUT_H__ + +#ifdef __KERNEL__ + +#include +#include "dir.h" + +/* whout.c */ +int au_wh_name_alloc(struct qstr *wh, const struct qstr *name); +struct au_branch; +int au_wh_test(struct dentry *h_parent, struct qstr *wh_name, + struct au_branch *br, int try_sio); +int au_diropq_test(struct dentry *h_dentry, struct au_branch *br); +struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct au_branch *br, + struct qstr *prefix); +int au_whtmp_ren(struct dentry *h_dentry, struct au_branch *br); +int au_wh_unlink_dentry(struct inode *h_dir, struct path *h_path, + struct dentry *dentry); +int au_wh_init(struct dentry *h_parent, struct au_branch *br, + struct super_block *sb); + +/* diropq flags */ +#define AuDiropq_CREATE 1 +#define au_ftest_diropq(flags, name) ((flags) & AuDiropq_##name) +#define au_fset_diropq(flags, name) { (flags) |= AuDiropq_##name; } +#define au_fclr_diropq(flags, name) { (flags) &= ~AuDiropq_##name; } + +struct dentry *au_diropq_sio(struct dentry *dentry, aufs_bindex_t bindex, + unsigned int flags); +struct dentry *au_wh_lkup(struct dentry *h_parent, struct qstr *base_name, + struct au_branch *br); +struct dentry *au_wh_create(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent); + +/* real rmdir for the whiteout-ed dir */ +struct au_whtmp_rmdir { + struct inode *dir; + aufs_bindex_t bindex; + struct dentry *wh_dentry; + struct au_nhash whlist; +}; + +struct au_whtmp_rmdir *au_whtmp_rmdir_alloc(struct super_block *sb, gfp_t gfp); +void au_whtmp_rmdir_free(struct au_whtmp_rmdir *whtmp); +int au_whtmp_rmdir(struct inode *dir, aufs_bindex_t bindex, + struct dentry *wh_dentry, struct au_nhash *whlist); +void au_whtmp_kick_rmdir(struct inode *dir, aufs_bindex_t bindex, + struct dentry *wh_dentry, struct au_whtmp_rmdir *args); + +/* ---------------------------------------------------------------------- */ + +static inline struct dentry *au_diropq_create(struct dentry *dentry, + aufs_bindex_t bindex) +{ + return au_diropq_sio(dentry, bindex, AuDiropq_CREATE); +} + +static inline int au_diropq_remove(struct dentry *dentry, aufs_bindex_t bindex) +{ + return PTR_ERR(au_diropq_sio(dentry, bindex, !AuDiropq_CREATE)); +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_WHOUT_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/cpup.h +++ linux-2.6.35/ubuntu/aufs/cpup.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * copy-up/down functions + */ + +#ifndef __AUFS_CPUP_H__ +#define __AUFS_CPUP_H__ + +#ifdef __KERNEL__ + +#include +#include +#include + +struct inode; +struct file; + +void au_cpup_attr_flags(struct inode *dst, struct inode *src); +void au_cpup_attr_timesizes(struct inode *inode); +void au_cpup_attr_nlink(struct inode *inode, int force); +void au_cpup_attr_changeable(struct inode *inode); +void au_cpup_igen(struct inode *inode, struct inode *h_inode); +void au_cpup_attr_all(struct inode *inode, int force); + +/* ---------------------------------------------------------------------- */ + +/* cpup flags */ +#define AuCpup_DTIME 1 /* do dtime_store/revert */ +#define AuCpup_KEEPLINO (1 << 1) /* do not clear the lower xino, + for link(2) */ +#define au_ftest_cpup(flags, name) ((flags) & AuCpup_##name) +#define au_fset_cpup(flags, name) { (flags) |= AuCpup_##name; } +#define au_fclr_cpup(flags, name) { (flags) &= ~AuCpup_##name; } + +int au_copy_file(struct file *dst, struct file *src, loff_t len); +int au_sio_cpup_single(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len, unsigned int flags, + struct dentry *dst_parent); +int au_sio_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + unsigned int flags); +int au_sio_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + struct file *file); + +int au_cp_dirs(struct dentry *dentry, aufs_bindex_t bdst, + int (*cp)(struct dentry *dentry, aufs_bindex_t bdst, + struct dentry *h_parent, void *arg), + void *arg); +int au_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst); +int au_test_and_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst); + +/* ---------------------------------------------------------------------- */ + +/* keep timestamps when copyup */ +struct au_dtime { + struct dentry *dt_dentry; + struct path dt_h_path; + struct timespec dt_atime, dt_mtime; +}; +void au_dtime_store(struct au_dtime *dt, struct dentry *dentry, + struct path *h_path); +void au_dtime_revert(struct au_dtime *dt); + +#endif /* __KERNEL__ */ +#endif /* __AUFS_CPUP_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/hnotify.c +++ linux-2.6.35/ubuntu/aufs/hnotify.c @@ -0,0 +1,663 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * abstraction to notify the direct changes on lower directories + */ + +#include "aufs.h" + +int au_hn_alloc(struct au_hinode *hinode, struct inode *inode, + struct inode *h_inode) +{ + int err; + struct au_hnotify *hn; + + err = -ENOMEM; + hn = au_cache_alloc_hnotify(); + if (hn) { + hn->hn_aufs_inode = inode; + err = au_hnotify_op.alloc(hn, h_inode); + if (!err) + hinode->hi_notify = hn; + else { + au_cache_free_hnotify(hn); + /* + * The upper dir was removed by udba, but the same named + * dir left. In this case, aufs assignes a new inode + * number and set the monitor again. + * For the lower dir, the old monitnor is still left. + */ + if (err == -EEXIST) + err = 0; + } + } + + return err; +} + +void au_hn_free(struct au_hinode *hinode) +{ + struct au_hnotify *hn; + + hn = hinode->hi_notify; + if (hn) { + au_hnotify_op.free(hn); + au_cache_free_hnotify(hn); + hinode->hi_notify = NULL; + } +} + +/* ---------------------------------------------------------------------- */ + +void au_hn_ctl(struct au_hinode *hinode, int do_set) +{ + if (hinode->hi_notify) + au_hnotify_op.ctl(hinode, do_set); +} + +void au_hn_reset(struct inode *inode, unsigned int flags) +{ + aufs_bindex_t bindex, bend; + struct inode *hi; + struct dentry *iwhdentry; + + bend = au_ibend(inode); + for (bindex = au_ibstart(inode); bindex <= bend; bindex++) { + hi = au_h_iptr(inode, bindex); + if (!hi) + continue; + + /* mutex_lock_nested(&hi->i_mutex, AuLsc_I_CHILD); */ + iwhdentry = au_hi_wh(inode, bindex); + if (iwhdentry) + dget(iwhdentry); + au_igrab(hi); + au_set_h_iptr(inode, bindex, NULL, 0); + au_set_h_iptr(inode, bindex, au_igrab(hi), + flags & ~AuHi_XINO); + iput(hi); + dput(iwhdentry); + /* mutex_unlock(&hi->i_mutex); */ + } +} + +/* ---------------------------------------------------------------------- */ + +static int hn_xino(struct inode *inode, struct inode *h_inode) +{ + int err; + aufs_bindex_t bindex, bend, bfound, bstart; + struct inode *h_i; + + err = 0; + if (unlikely(inode->i_ino == AUFS_ROOT_INO)) { + pr_warning("branch root dir was changed\n"); + goto out; + } + + bfound = -1; + bend = au_ibend(inode); + bstart = au_ibstart(inode); +#if 0 /* reserved for future use */ + if (bindex == bend) { + /* keep this ino in rename case */ + goto out; + } +#endif + for (bindex = bstart; bindex <= bend; bindex++) + if (au_h_iptr(inode, bindex) == h_inode) { + bfound = bindex; + break; + } + if (bfound < 0) + goto out; + + for (bindex = bstart; bindex <= bend; bindex++) { + h_i = au_h_iptr(inode, bindex); + if (!h_i) + continue; + + err = au_xino_write(inode->i_sb, bindex, h_i->i_ino, /*ino*/0); + /* ignore this error */ + /* bad action? */ + } + + /* children inode number will be broken */ + + out: + AuTraceErr(err); + return err; +} + +static int hn_gen_tree(struct dentry *dentry) +{ + int err, i, j, ndentry; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry **dentries; + + err = au_dpages_init(&dpages, GFP_NOFS); + if (unlikely(err)) + goto out; + err = au_dcsub_pages(&dpages, dentry, NULL, NULL); + if (unlikely(err)) + goto out_dpages; + + for (i = 0; i < dpages.ndpage; i++) { + dpage = dpages.dpages + i; + dentries = dpage->dentries; + ndentry = dpage->ndentry; + for (j = 0; j < ndentry; j++) { + struct dentry *d; + + d = dentries[j]; + if (IS_ROOT(d)) + continue; + + d_drop(d); + au_digen_dec(d); + if (d->d_inode) + /* todo: reset children xino? + cached children only? */ + au_iigen_dec(d->d_inode); + } + } + + out_dpages: + au_dpages_free(&dpages); + + /* discard children */ + dentry_unhash(dentry); + dput(dentry); + out: + return err; +} + +/* + * return 0 if processed. + */ +static int hn_gen_by_inode(char *name, unsigned int nlen, struct inode *inode, + const unsigned int isdir) +{ + int err; + struct dentry *d; + struct qstr *dname; + + err = 1; + if (unlikely(inode->i_ino == AUFS_ROOT_INO)) { + pr_warning("branch root dir was changed\n"); + err = 0; + goto out; + } + + if (!isdir) { + AuDebugOn(!name); + au_iigen_dec(inode); + spin_lock(&dcache_lock); + list_for_each_entry(d, &inode->i_dentry, d_alias) { + dname = &d->d_name; + if (dname->len != nlen + && memcmp(dname->name, name, nlen)) + continue; + err = 0; + spin_lock(&d->d_lock); + __d_drop(d); + au_digen_dec(d); + spin_unlock(&d->d_lock); + break; + } + spin_unlock(&dcache_lock); + } else { + au_fset_si(au_sbi(inode->i_sb), FAILED_REFRESH_DIRS); + d = d_find_alias(inode); + if (!d) { + au_iigen_dec(inode); + goto out; + } + + dname = &d->d_name; + if (dname->len == nlen && !memcmp(dname->name, name, nlen)) + err = hn_gen_tree(d); + dput(d); + } + + out: + AuTraceErr(err); + return err; +} + +static int hn_gen_by_name(struct dentry *dentry, const unsigned int isdir) +{ + int err; + struct inode *inode; + + inode = dentry->d_inode; + if (IS_ROOT(dentry) + /* || (inode && inode->i_ino == AUFS_ROOT_INO) */ + ) { + pr_warning("branch root dir was changed\n"); + return 0; + } + + err = 0; + if (!isdir) { + d_drop(dentry); + au_digen_dec(dentry); + if (inode) + au_iigen_dec(inode); + } else { + au_fset_si(au_sbi(dentry->d_sb), FAILED_REFRESH_DIRS); + if (inode) + err = hn_gen_tree(dentry); + } + + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* hnotify job flags */ +#define AuHnJob_XINO0 1 +#define AuHnJob_GEN (1 << 1) +#define AuHnJob_DIRENT (1 << 2) +#define AuHnJob_ISDIR (1 << 3) +#define AuHnJob_TRYXINO0 (1 << 4) +#define AuHnJob_MNTPNT (1 << 5) +#define au_ftest_hnjob(flags, name) ((flags) & AuHnJob_##name) +#define au_fset_hnjob(flags, name) { (flags) |= AuHnJob_##name; } +#define au_fclr_hnjob(flags, name) { (flags) &= ~AuHnJob_##name; } + +enum { + AuHn_CHILD, + AuHn_PARENT, + AuHnLast +}; + +struct au_hnotify_args { + struct inode *h_dir, *dir, *h_child_inode; + u32 mask; + unsigned int flags[AuHnLast]; + unsigned int h_child_nlen; + char h_child_name[]; +}; + +struct hn_job_args { + unsigned int flags; + struct inode *inode, *h_inode, *dir, *h_dir; + struct dentry *dentry; + char *h_name; + int h_nlen; +}; + +static int hn_job(struct hn_job_args *a) +{ + const unsigned int isdir = au_ftest_hnjob(a->flags, ISDIR); + + /* reset xino */ + if (au_ftest_hnjob(a->flags, XINO0) && a->inode) + hn_xino(a->inode, a->h_inode); /* ignore this error */ + + if (au_ftest_hnjob(a->flags, TRYXINO0) + && a->inode + && a->h_inode) { + mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD); + if (!a->h_inode->i_nlink) + hn_xino(a->inode, a->h_inode); /* ignore this error */ + mutex_unlock(&a->h_inode->i_mutex); + } + + /* make the generation obsolete */ + if (au_ftest_hnjob(a->flags, GEN)) { + int err = -1; + if (a->inode) + err = hn_gen_by_inode(a->h_name, a->h_nlen, a->inode, + isdir); + if (err && a->dentry) + hn_gen_by_name(a->dentry, isdir); + /* ignore this error */ + } + + /* make dir entries obsolete */ + if (au_ftest_hnjob(a->flags, DIRENT) && a->inode) { + struct au_vdir *vdir; + + vdir = au_ivdir(a->inode); + if (vdir) + vdir->vd_jiffy = 0; + /* IMustLock(a->inode); */ + /* a->inode->i_version++; */ + } + + /* can do nothing but warn */ + if (au_ftest_hnjob(a->flags, MNTPNT) + && a->dentry + && d_mountpoint(a->dentry)) + pr_warning("mount-point %.*s is removed or renamed\n", + AuDLNPair(a->dentry)); + + return 0; +} + +/* ---------------------------------------------------------------------- */ + +static struct dentry *lookup_wlock_by_name(char *name, unsigned int nlen, + struct inode *dir) +{ + struct dentry *dentry, *d, *parent; + struct qstr *dname; + + parent = d_find_alias(dir); + if (!parent) + return NULL; + + dentry = NULL; + spin_lock(&dcache_lock); + list_for_each_entry(d, &parent->d_subdirs, d_u.d_child) { + /* AuDbg("%.*s\n", AuDLNPair(d)); */ + dname = &d->d_name; + if (dname->len != nlen || memcmp(dname->name, name, nlen)) + continue; + if (!atomic_read(&d->d_count) || !d->d_fsdata) { + spin_lock(&d->d_lock); + __d_drop(d); + spin_unlock(&d->d_lock); + continue; + } + + dentry = dget(d); + break; + } + spin_unlock(&dcache_lock); + dput(parent); + + if (dentry) + di_write_lock_child(dentry); + + return dentry; +} + +static struct inode *lookup_wlock_by_ino(struct super_block *sb, + aufs_bindex_t bindex, ino_t h_ino) +{ + struct inode *inode; + ino_t ino; + int err; + + inode = NULL; + err = au_xino_read(sb, bindex, h_ino, &ino); + if (!err && ino) + inode = ilookup(sb, ino); + if (!inode) + goto out; + + if (unlikely(inode->i_ino == AUFS_ROOT_INO)) { + pr_warning("wrong root branch\n"); + iput(inode); + inode = NULL; + goto out; + } + + ii_write_lock_child(inode); + + out: + return inode; +} + +static void au_hn_bh(void *_args) +{ + struct au_hnotify_args *a = _args; + struct super_block *sb; + aufs_bindex_t bindex, bend, bfound; + unsigned char xino, try_iput; + int err; + struct inode *inode; + ino_t h_ino; + struct hn_job_args args; + struct dentry *dentry; + struct au_sbinfo *sbinfo; + + AuDebugOn(!_args); + AuDebugOn(!a->h_dir); + AuDebugOn(!a->dir); + AuDebugOn(!a->mask); + AuDbg("mask 0x%x, i%lu, hi%lu, hci%lu\n", + a->mask, a->dir->i_ino, a->h_dir->i_ino, + a->h_child_inode ? a->h_child_inode->i_ino : 0); + + inode = NULL; + dentry = NULL; + /* + * do not lock a->dir->i_mutex here + * because of d_revalidate() may cause a deadlock. + */ + sb = a->dir->i_sb; + AuDebugOn(!sb); + sbinfo = au_sbi(sb); + AuDebugOn(!sbinfo); + /* big aufs lock */ + si_noflush_write_lock(sb); + + ii_read_lock_parent(a->dir); + bfound = -1; + bend = au_ibend(a->dir); + for (bindex = au_ibstart(a->dir); bindex <= bend; bindex++) + if (au_h_iptr(a->dir, bindex) == a->h_dir) { + bfound = bindex; + break; + } + ii_read_unlock(a->dir); + if (unlikely(bfound < 0)) + goto out; + + xino = !!au_opt_test(au_mntflags(sb), XINO); + h_ino = 0; + if (a->h_child_inode) + h_ino = a->h_child_inode->i_ino; + + if (a->h_child_nlen + && (au_ftest_hnjob(a->flags[AuHn_CHILD], GEN) + || au_ftest_hnjob(a->flags[AuHn_CHILD], MNTPNT))) + dentry = lookup_wlock_by_name(a->h_child_name, a->h_child_nlen, + a->dir); + try_iput = 0; + if (dentry) + inode = dentry->d_inode; + if (xino && !inode && h_ino + && (au_ftest_hnjob(a->flags[AuHn_CHILD], XINO0) + || au_ftest_hnjob(a->flags[AuHn_CHILD], TRYXINO0) + || au_ftest_hnjob(a->flags[AuHn_CHILD], GEN))) { + inode = lookup_wlock_by_ino(sb, bfound, h_ino); + try_iput = 1; + } + + args.flags = a->flags[AuHn_CHILD]; + args.dentry = dentry; + args.inode = inode; + args.h_inode = a->h_child_inode; + args.dir = a->dir; + args.h_dir = a->h_dir; + args.h_name = a->h_child_name; + args.h_nlen = a->h_child_nlen; + err = hn_job(&args); + if (dentry) { + if (dentry->d_fsdata) + di_write_unlock(dentry); + dput(dentry); + } + if (inode && try_iput) { + ii_write_unlock(inode); + iput(inode); + } + + ii_write_lock_parent(a->dir); + args.flags = a->flags[AuHn_PARENT]; + args.dentry = NULL; + args.inode = a->dir; + args.h_inode = a->h_dir; + args.dir = NULL; + args.h_dir = NULL; + args.h_name = NULL; + args.h_nlen = 0; + err = hn_job(&args); + ii_write_unlock(a->dir); + + out: + au_nwt_done(&sbinfo->si_nowait); + si_write_unlock(sb); + + iput(a->h_child_inode); + iput(a->h_dir); + iput(a->dir); + kfree(a); +} + +/* ---------------------------------------------------------------------- */ + +int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask, + struct qstr *h_child_qstr, struct inode *h_child_inode) +{ + int err, len; + unsigned int flags[AuHnLast]; + unsigned char isdir, isroot, wh; + struct inode *dir; + struct au_hnotify_args *args; + char *p, *h_child_name; + + err = 0; + AuDebugOn(!hnotify || !hnotify->hn_aufs_inode); + dir = igrab(hnotify->hn_aufs_inode); + if (!dir) + goto out; + + isroot = (dir->i_ino == AUFS_ROOT_INO); + wh = 0; + h_child_name = (void *)h_child_qstr->name; + len = h_child_qstr->len; + if (h_child_name) { + if (len > AUFS_WH_PFX_LEN + && !memcmp(h_child_name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) { + h_child_name += AUFS_WH_PFX_LEN; + len -= AUFS_WH_PFX_LEN; + wh = 1; + } + } + + isdir = 0; + if (h_child_inode) + isdir = !!S_ISDIR(h_child_inode->i_mode); + flags[AuHn_PARENT] = AuHnJob_ISDIR; + flags[AuHn_CHILD] = 0; + if (isdir) + flags[AuHn_CHILD] = AuHnJob_ISDIR; + au_fset_hnjob(flags[AuHn_PARENT], DIRENT); + au_fset_hnjob(flags[AuHn_CHILD], GEN); + switch (mask & FS_EVENTS_POSS_ON_CHILD) { + case FS_MOVED_FROM: + case FS_MOVED_TO: + au_fset_hnjob(flags[AuHn_CHILD], XINO0); + au_fset_hnjob(flags[AuHn_CHILD], MNTPNT); + /*FALLTHROUGH*/ + case FS_CREATE: + AuDebugOn(!h_child_name || !h_child_inode); + break; + + case FS_DELETE: + /* + * aufs never be able to get this child inode. + * revalidation should be in d_revalidate() + * by checking i_nlink, i_generation or d_unhashed(). + */ + AuDebugOn(!h_child_name); + au_fset_hnjob(flags[AuHn_CHILD], TRYXINO0); + au_fset_hnjob(flags[AuHn_CHILD], MNTPNT); + break; + + default: + AuDebugOn(1); + } + + if (wh) + h_child_inode = NULL; + + err = -ENOMEM; + /* iput() and kfree() will be called in au_hnotify() */ + args = kmalloc(sizeof(*args) + len + 1, GFP_NOFS); + if (unlikely(!args)) { + AuErr1("no memory\n"); + iput(dir); + goto out; + } + args->flags[AuHn_PARENT] = flags[AuHn_PARENT]; + args->flags[AuHn_CHILD] = flags[AuHn_CHILD]; + args->mask = mask; + args->dir = dir; + args->h_dir = igrab(h_dir); + if (h_child_inode) + h_child_inode = igrab(h_child_inode); /* can be NULL */ + args->h_child_inode = h_child_inode; + args->h_child_nlen = len; + if (len) { + p = (void *)args; + p += sizeof(*args); + memcpy(p, h_child_name, len); + p[len] = 0; + } + + err = au_wkq_nowait(au_hn_bh, args, dir->i_sb); + if (unlikely(err)) { + pr_err("wkq %d\n", err); + iput(args->h_child_inode); + iput(args->h_dir); + iput(args->dir); + kfree(args); + } + +out: + return err; +} + +static void au_hn_destroy_cache(void) +{ + kmem_cache_destroy(au_cachep[AuCache_HNOTIFY]); + au_cachep[AuCache_HNOTIFY] = NULL; +} + +int __init au_hnotify_init(void) +{ + int err; + + err = -ENOMEM; + au_cachep[AuCache_HNOTIFY] = AuCache(au_hnotify); + if (au_cachep[AuCache_HNOTIFY]) { + err = au_hnotify_op.init(); + if (unlikely(err)) + au_hn_destroy_cache(); + } + AuTraceErr(err); + return err; +} + +void au_hnotify_fin(void) +{ + au_hnotify_op.fin(); + /* cf. au_cache_fin() */ + if (au_cachep[AuCache_HNOTIFY]) + au_hn_destroy_cache(); +} --- linux-2.6.35.orig/ubuntu/aufs/dynop.c +++ linux-2.6.35/ubuntu/aufs/dynop.c @@ -0,0 +1,404 @@ +/* + * Copyright (C) 2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * dynamically customizable operations for regular files + */ + +#include "aufs.h" + +#define DyPrSym(key) AuDbgSym(key->dk_op.dy_hop) + +/* + * How large will these lists be? + * Usually just a few elements, 20-30 at most for each, I guess. + */ +static struct au_splhead dynop[AuDyLast]; + +static struct au_dykey *dy_gfind_get(struct au_splhead *spl, const void *h_op) +{ + struct au_dykey *key, *tmp; + struct list_head *head; + + key = NULL; + head = &spl->head; + rcu_read_lock(); + list_for_each_entry_rcu(tmp, head, dk_list) + if (tmp->dk_op.dy_hop == h_op) { + key = tmp; + kref_get(&key->dk_kref); + break; + } + rcu_read_unlock(); + + return key; +} + +static struct au_dykey *dy_bradd(struct au_branch *br, struct au_dykey *key) +{ + struct au_dykey **k, *found; + const void *h_op = key->dk_op.dy_hop; + int i; + + found = NULL; + k = br->br_dykey; + for (i = 0; i < AuBrDynOp; i++) + if (k[i]) { + if (k[i]->dk_op.dy_hop == h_op) { + found = k[i]; + break; + } + } else + break; + if (!found) { + spin_lock(&br->br_dykey_lock); + for (; i < AuBrDynOp; i++) + if (k[i]) { + if (k[i]->dk_op.dy_hop == h_op) { + found = k[i]; + break; + } + } else { + k[i] = key; + break; + } + spin_unlock(&br->br_dykey_lock); + BUG_ON(i == AuBrDynOp); /* expand the array */ + } + + return found; +} + +/* kref_get() if @key is already added */ +static struct au_dykey *dy_gadd(struct au_splhead *spl, struct au_dykey *key) +{ + struct au_dykey *tmp, *found; + struct list_head *head; + const void *h_op = key->dk_op.dy_hop; + + found = NULL; + head = &spl->head; + spin_lock(&spl->spin); + list_for_each_entry(tmp, head, dk_list) + if (tmp->dk_op.dy_hop == h_op) { + kref_get(&tmp->dk_kref); + found = tmp; + break; + } + if (!found) + list_add_rcu(&key->dk_list, head); + spin_unlock(&spl->spin); + + if (!found) + DyPrSym(key); + return found; +} + +static void dy_free_rcu(struct rcu_head *rcu) +{ + struct au_dykey *key; + + key = container_of(rcu, struct au_dykey, dk_rcu); + DyPrSym(key); + kfree(key); +} + +static void dy_free(struct kref *kref) +{ + struct au_dykey *key; + struct au_splhead *spl; + + key = container_of(kref, struct au_dykey, dk_kref); + spl = dynop + key->dk_op.dy_type; + au_spl_del_rcu(&key->dk_list, spl); + call_rcu(&key->dk_rcu, dy_free_rcu); +} + +void au_dy_put(struct au_dykey *key) +{ + kref_put(&key->dk_kref, dy_free); +} + +/* ---------------------------------------------------------------------- */ + +#define DyDbgSize(cnt, op) AuDebugOn(cnt != sizeof(op)/sizeof(void *)) + +#ifdef CONFIG_AUFS_DEBUG +#define DyDbgDeclare(cnt) unsigned int cnt = 0 +#define DyDbgInc(cnt) cnt++ +#else +#define DyDbgDeclare(cnt) do {} while (0) +#define DyDbgInc(cnt) do {} while (0) +#endif + +#define DySet(func, dst, src, h_op, h_sb) do { \ + DyDbgInc(cnt); \ + if (h_op->func) { \ + if (src.func) \ + dst.func = src.func; \ + else \ + AuDbg("%s %s\n", au_sbtype(h_sb), #func); \ + } \ +} while (0) + +#define DySetForce(func, dst, src) do { \ + AuDebugOn(!src.func); \ + DyDbgInc(cnt); \ + dst.func = src.func; \ +} while (0) + +#define DySetAop(func) \ + DySet(func, dyaop->da_op, aufs_aop, h_aop, h_sb) +#define DySetAopForce(func) \ + DySetForce(func, dyaop->da_op, aufs_aop) + +static void dy_aop(struct au_dykey *key, const void *h_op, + struct super_block *h_sb __maybe_unused) +{ + struct au_dyaop *dyaop = (void *)key; + const struct address_space_operations *h_aop = h_op; + DyDbgDeclare(cnt); + + AuDbg("%s\n", au_sbtype(h_sb)); + + DySetAop(writepage); + DySetAopForce(readpage); /* force */ + DySetAop(sync_page); + DySetAop(writepages); + DySetAop(set_page_dirty); + DySetAop(readpages); + DySetAop(write_begin); + DySetAop(write_end); + DySetAop(bmap); + DySetAop(invalidatepage); + DySetAop(releasepage); + /* these two will be changed according to an aufs mount option */ + DySetAop(direct_IO); + DySetAop(get_xip_mem); + DySetAop(migratepage); + DySetAop(launder_page); + DySetAop(is_partially_uptodate); + DySetAop(error_remove_page); + + DyDbgSize(cnt, *h_aop); + dyaop->da_get_xip_mem = h_aop->get_xip_mem; +} + +#define DySetVmop(func) \ + DySet(func, dyvmop->dv_op, aufs_vm_ops, h_vmop, h_sb) +#define DySetVmopForce(func) \ + DySetForce(func, dyvmop->dv_op, aufs_vm_ops) + +static void dy_vmop(struct au_dykey *key, const void *h_op, + struct super_block *h_sb __maybe_unused) +{ + struct au_dyvmop *dyvmop = (void *)key; + const struct vm_operations_struct *h_vmop = h_op; + DyDbgDeclare(cnt); + + AuDbg("%s\n", au_sbtype(h_sb)); + + DySetVmop(open); + DySetVmop(close); + DySetVmop(fault); + DySetVmop(page_mkwrite); + DySetVmop(access); +#ifdef CONFIG_NUMA + DySetVmop(set_policy); + DySetVmop(get_policy); + DySetVmop(migrate); +#endif + + DyDbgSize(cnt, *h_vmop); +} + +/* ---------------------------------------------------------------------- */ + +static void dy_bug(struct kref *kref) +{ + BUG(); +} + +static struct au_dykey *dy_get(struct au_dynop *op, struct au_branch *br) +{ + struct au_dykey *key, *old; + struct au_splhead *spl; + static const struct { + unsigned int sz; + void (*set_op)(struct au_dykey *key, const void *h_op, + struct super_block *h_sb __maybe_unused); + } a[] = { + [AuDy_AOP] = { + .sz = sizeof(struct au_dyaop), + .set_op = dy_aop + }, + [AuDy_VMOP] = { + .sz = sizeof(struct au_dyvmop), + .set_op = dy_vmop + } + }, *p; + + spl = dynop + op->dy_type; + key = dy_gfind_get(spl, op->dy_hop); + if (key) + goto out_add; /* success */ + + p = a + op->dy_type; + key = kzalloc(p->sz, GFP_NOFS); + if (unlikely(!key)) { + key = ERR_PTR(-ENOMEM); + goto out; + } + + key->dk_op.dy_hop = op->dy_hop; + kref_init(&key->dk_kref); + p->set_op(key, op->dy_hop, br->br_mnt->mnt_sb); + old = dy_gadd(spl, key); + if (old) { + kfree(key); + key = old; + } + +out_add: + old = dy_bradd(br, key); + if (old) + /* its ref-count should never be zero here */ + kref_put(&key->dk_kref, dy_bug); +out: + return key; +} + +/* ---------------------------------------------------------------------- */ +/* + * Aufs prohibits O_DIRECT by defaut even if the branch supports it. + * This behaviour is neccessary to return an error from open(O_DIRECT) instead + * of the succeeding I/O. The dio mount option enables O_DIRECT and makes + * open(O_DIRECT) always succeed, but the succeeding I/O may return an error. + * See the aufs manual in detail. + * + * To keep this behaviour, aufs has to set NULL to ->get_xip_mem too, and the + * performance of fadvise() and madvise() may be affected. + */ +static void dy_adx(struct au_dyaop *dyaop, int do_dx) +{ + if (!do_dx) { + dyaop->da_op.direct_IO = NULL; + dyaop->da_op.get_xip_mem = NULL; + } else { + dyaop->da_op.direct_IO = aufs_aop.direct_IO; + dyaop->da_op.get_xip_mem = aufs_aop.get_xip_mem; + if (!dyaop->da_get_xip_mem) + dyaop->da_op.get_xip_mem = NULL; + } +} + +static struct au_dyaop *dy_aget(struct au_branch *br, + const struct address_space_operations *h_aop, + int do_dx) +{ + struct au_dyaop *dyaop; + struct au_dynop op; + + op.dy_type = AuDy_AOP; + op.dy_haop = h_aop; + dyaop = (void *)dy_get(&op, br); + if (IS_ERR(dyaop)) + goto out; + dy_adx(dyaop, do_dx); + +out: + return dyaop; +} + +int au_dy_iaop(struct inode *inode, aufs_bindex_t bindex, + struct inode *h_inode) +{ + int err, do_dx; + struct super_block *sb; + struct au_branch *br; + struct au_dyaop *dyaop; + + AuDebugOn(!S_ISREG(h_inode->i_mode)); + IiMustWriteLock(inode); + + sb = inode->i_sb; + br = au_sbr(sb, bindex); + do_dx = !!au_opt_test(au_mntflags(sb), DIO); + dyaop = dy_aget(br, h_inode->i_mapping->a_ops, do_dx); + err = PTR_ERR(dyaop); + if (IS_ERR(dyaop)) + /* unnecessary to call dy_fput() */ + goto out; + + err = 0; + inode->i_mapping->a_ops = &dyaop->da_op; + +out: + return err; +} + +void au_dy_arefresh(int do_dx) +{ + struct au_splhead *spl; + struct list_head *head; + struct au_dykey *key; + + spl = dynop + AuDy_AOP; + head = &spl->head; + spin_lock(&spl->spin); + list_for_each_entry(key, head, dk_list) + dy_adx((void *)key, do_dx); + spin_unlock(&spl->spin); +} + +const struct vm_operations_struct * +au_dy_vmop(struct file *file, struct au_branch *br, + const struct vm_operations_struct *h_vmop) +{ + struct au_dyvmop *dyvmop; + struct au_dynop op; + + op.dy_type = AuDy_VMOP; + op.dy_hvmop = h_vmop; + dyvmop = (void *)dy_get(&op, br); + if (IS_ERR(dyvmop)) + return (void *)dyvmop; + return &dyvmop->dv_op; +} + +/* ---------------------------------------------------------------------- */ + +void __init au_dy_init(void) +{ + int i; + + /* make sure that 'struct au_dykey *' can be any type */ + BUILD_BUG_ON(offsetof(struct au_dyaop, da_key)); + BUILD_BUG_ON(offsetof(struct au_dyvmop, dv_key)); + + for (i = 0; i < AuDyLast; i++) + au_spl_init(dynop + i); +} + +void au_dy_fin(void) +{ + int i; + + for (i = 0; i < AuDyLast; i++) + WARN_ON(!list_empty(&dynop[i].head)); +} --- linux-2.6.35.orig/ubuntu/aufs/hfsnotify.c +++ linux-2.6.35/ubuntu/aufs/hfsnotify.c @@ -0,0 +1,230 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * fsnotify for the lower directories + */ + +#include "aufs.h" + +/* FS_IN_IGNORED is unnecessary */ +static const __u32 AuHfsnMask = (FS_MOVED_TO | FS_MOVED_FROM | FS_DELETE + | FS_CREATE | FS_EVENT_ON_CHILD); +static struct fsnotify_group *au_hfsn_group; + +static void au_hfsn_free_mark(struct fsnotify_mark_entry *entry) +{ +#if 0 + struct au_hnotify *hn = container_of(entry, struct au_hnotify, + hn_entry); + au_cache_free_hnotify(hn); +#endif + AuDbg("here\n"); +} + +static int au_hfsn_alloc(struct au_hnotify *hn, struct inode *h_inode) +{ + struct fsnotify_mark_entry *entry; + + entry = &hn->hn_entry; + fsnotify_init_mark(entry, au_hfsn_free_mark); + entry->mask = AuHfsnMask; + return fsnotify_add_mark(entry, au_hfsn_group, h_inode); +} + +static void au_hfsn_free(struct au_hnotify *hn) +{ + struct fsnotify_mark_entry *entry; + + entry = &hn->hn_entry; + fsnotify_destroy_mark_by_entry(entry); + fsnotify_put_mark(entry); +} + +/* ---------------------------------------------------------------------- */ + +static void au_hfsn_ctl(struct au_hinode *hinode, int do_set) +{ + struct fsnotify_mark_entry *entry; + + entry = &hinode->hi_notify->hn_entry; + spin_lock(&entry->lock); + if (do_set) { + AuDebugOn(entry->mask & AuHfsnMask); + entry->mask |= AuHfsnMask; + } else { + AuDebugOn(!(entry->mask & AuHfsnMask)); + entry->mask &= ~AuHfsnMask; + } + spin_unlock(&entry->lock); + /* fsnotify_recalc_inode_mask(hinode->hi_inode); */ +} + +/* ---------------------------------------------------------------------- */ + +/* #define AuDbgHnotify */ +#ifdef AuDbgHnotify +static char *au_hfsn_name(u32 mask) +{ +#ifdef CONFIG_AUFS_DEBUG +#define test_ret(flag) if (mask & flag) \ + return #flag; + test_ret(FS_ACCESS); + test_ret(FS_MODIFY); + test_ret(FS_ATTRIB); + test_ret(FS_CLOSE_WRITE); + test_ret(FS_CLOSE_NOWRITE); + test_ret(FS_OPEN); + test_ret(FS_MOVED_FROM); + test_ret(FS_MOVED_TO); + test_ret(FS_CREATE); + test_ret(FS_DELETE); + test_ret(FS_DELETE_SELF); + test_ret(FS_MOVE_SELF); + test_ret(FS_UNMOUNT); + test_ret(FS_Q_OVERFLOW); + test_ret(FS_IN_IGNORED); + test_ret(FS_IN_ISDIR); + test_ret(FS_IN_ONESHOT); + test_ret(FS_EVENT_ON_CHILD); + return ""; +#undef test_ret +#else + return "??"; +#endif +} +#endif + +/* ---------------------------------------------------------------------- */ + +static int au_hfsn_handle_event(struct fsnotify_group *group, + struct fsnotify_event *event) +{ + int err; + struct au_hnotify *hnotify; + struct inode *h_dir, *h_inode; + __u32 mask; + struct fsnotify_mark_entry *entry; + struct qstr h_child_qstr = { + .name = event->file_name, + .len = event->name_len + }; + + AuDebugOn(event->data_type != FSNOTIFY_EVENT_INODE); + + err = 0; + /* if IN_UNMOUNT happens, there must be another bug */ + mask = event->mask; + AuDebugOn(mask & FS_UNMOUNT); + if (mask & (IN_IGNORED | IN_UNMOUNT)) + goto out; + + h_dir = event->to_tell; + h_inode = event->inode; +#ifdef AuDbgHnotify + au_debug(1); + if (1 || h_child_qstr.len != sizeof(AUFS_XINO_FNAME) - 1 + || strncmp(h_child_qstr.name, AUFS_XINO_FNAME, h_child_qstr.len)) { + AuDbg("i%lu, mask 0x%x %s, hcname %.*s, hi%lu\n", + h_dir->i_ino, mask, au_hfsn_name(mask), + AuLNPair(&h_child_qstr), h_inode ? h_inode->i_ino : 0); + /* WARN_ON(1); */ + } + au_debug(0); +#endif + + spin_lock(&h_dir->i_lock); + entry = fsnotify_find_mark_entry(group, h_dir); + spin_unlock(&h_dir->i_lock); + if (entry) { + hnotify = container_of(entry, struct au_hnotify, hn_entry); + err = au_hnotify(h_dir, hnotify, mask, &h_child_qstr, h_inode); + fsnotify_put_mark(entry); + } + +out: + return err; +} + +/* copied from linux/fs/notify/inotify/inotify_fsnotiry.c */ +/* it should be exported to modules */ +static bool au_hfsn_should_send_event(struct fsnotify_group *group, + struct inode *h_inode, __u32 mask) +{ + struct fsnotify_mark_entry *entry; + bool send; + + spin_lock(&h_inode->i_lock); + entry = fsnotify_find_mark_entry(group, h_inode); + spin_unlock(&h_inode->i_lock); + if (!entry) + return false; + + mask = (mask & ~FS_EVENT_ON_CHILD); + send = (entry->mask & mask); + + /* find took a reference */ + fsnotify_put_mark(entry); + + return send; +} + +static struct fsnotify_ops au_hfsn_ops = { + .should_send_event = au_hfsn_should_send_event, + .handle_event = au_hfsn_handle_event +}; + +/* ---------------------------------------------------------------------- */ + +static int __init au_hfsn_init(void) +{ + int err; + unsigned int gn; + const unsigned int gn_max = 10; + + gn = 0; + for (gn = 0; gn < gn_max; gn++) { + au_hfsn_group = fsnotify_obtain_group(gn, AuHfsnMask, + &au_hfsn_ops); + if (au_hfsn_group != ERR_PTR(-EEXIST)) + break; + } + + err = 0; + if (IS_ERR(au_hfsn_group)) { + pr_err("fsnotify_obtain_group() failed %u times\n", gn_max); + err = PTR_ERR(au_hfsn_group); + } + + AuTraceErr(err); + return err; +} + +static void au_hfsn_fin(void) +{ + fsnotify_put_group(au_hfsn_group); +} + +const struct au_hnotify_op au_hnotify_op = { + .ctl = au_hfsn_ctl, + .alloc = au_hfsn_alloc, + .free = au_hfsn_free, + + .fin = au_hfsn_fin, + .init = au_hfsn_init +}; --- linux-2.6.35.orig/ubuntu/aufs/i_op_del.c +++ linux-2.6.35/ubuntu/aufs/i_op_del.c @@ -0,0 +1,472 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode operations (del entry) + */ + +#include "aufs.h" + +/* + * decide if a new whiteout for @dentry is necessary or not. + * when it is necessary, prepare the parent dir for the upper branch whose + * branch index is @bcpup for creation. the actual creation of the whiteout will + * be done by caller. + * return value: + * 0: wh is unnecessary + * plus: wh is necessary + * minus: error + */ +int au_wr_dir_need_wh(struct dentry *dentry, int isdir, aufs_bindex_t *bcpup) +{ + int need_wh, err; + aufs_bindex_t bstart; + struct super_block *sb; + + sb = dentry->d_sb; + bstart = au_dbstart(dentry); + if (*bcpup < 0) { + *bcpup = bstart; + if (au_test_ro(sb, bstart, dentry->d_inode)) { + err = AuWbrCopyup(au_sbi(sb), dentry); + *bcpup = err; + if (unlikely(err < 0)) + goto out; + } + } else + AuDebugOn(bstart < *bcpup + || au_test_ro(sb, *bcpup, dentry->d_inode)); + AuDbg("bcpup %d, bstart %d\n", *bcpup, bstart); + + if (*bcpup != bstart) { + err = au_cpup_dirs(dentry, *bcpup); + if (unlikely(err)) + goto out; + need_wh = 1; + } else { + aufs_bindex_t old_bend, new_bend, bdiropq = -1; + + old_bend = au_dbend(dentry); + if (isdir) { + bdiropq = au_dbdiropq(dentry); + au_set_dbdiropq(dentry, -1); + } + need_wh = au_lkup_dentry(dentry, bstart + 1, /*type*/0, + /*nd*/NULL); + err = need_wh; + if (isdir) + au_set_dbdiropq(dentry, bdiropq); + if (unlikely(err < 0)) + goto out; + new_bend = au_dbend(dentry); + if (!need_wh && old_bend != new_bend) { + au_set_h_dptr(dentry, new_bend, NULL); + au_set_dbend(dentry, old_bend); + } + } + AuDbg("need_wh %d\n", need_wh); + err = need_wh; + + out: + return err; +} + +/* + * simple tests for the del-entry operations. + * following the checks in vfs, plus the parent-child relationship. + */ +int au_may_del(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent, int isdir) +{ + int err; + umode_t h_mode; + struct dentry *h_dentry, *h_latest; + struct inode *h_inode; + + h_dentry = au_h_dptr(dentry, bindex); + h_inode = h_dentry->d_inode; + if (dentry->d_inode) { + err = -ENOENT; + if (unlikely(!h_inode || !h_inode->i_nlink)) + goto out; + + h_mode = h_inode->i_mode; + if (!isdir) { + err = -EISDIR; + if (unlikely(S_ISDIR(h_mode))) + goto out; + } else if (unlikely(!S_ISDIR(h_mode))) { + err = -ENOTDIR; + goto out; + } + } else { + /* rename(2) case */ + err = -EIO; + if (unlikely(h_inode)) + goto out; + } + + err = -ENOENT; + /* expected parent dir is locked */ + if (unlikely(h_parent != h_dentry->d_parent)) + goto out; + err = 0; + + /* + * rmdir a dir may break the consistency on some filesystem. + * let's try heavy test. + */ + err = -EACCES; + if (unlikely(au_test_h_perm(h_parent->d_inode, MAY_EXEC | MAY_WRITE))) + goto out; + + h_latest = au_sio_lkup_one(&dentry->d_name, h_parent, + au_sbr(dentry->d_sb, bindex)); + err = -EIO; + if (IS_ERR(h_latest)) + goto out; + if (h_latest == h_dentry) + err = 0; + dput(h_latest); + + out: + return err; +} + +/* + * decide the branch where we operate for @dentry. the branch index will be set + * @rbcpup. after diciding it, 'pin' it and store the timestamps of the parent + * dir for reverting. + * when a new whiteout is necessary, create it. + */ +static struct dentry* +lock_hdir_create_wh(struct dentry *dentry, int isdir, aufs_bindex_t *rbcpup, + struct au_dtime *dt, struct au_pin *pin) +{ + struct dentry *wh_dentry; + struct super_block *sb; + struct path h_path; + int err, need_wh; + unsigned int udba; + aufs_bindex_t bcpup; + + need_wh = au_wr_dir_need_wh(dentry, isdir, rbcpup); + wh_dentry = ERR_PTR(need_wh); + if (unlikely(need_wh < 0)) + goto out; + + sb = dentry->d_sb; + udba = au_opt_udba(sb); + bcpup = *rbcpup; + err = au_pin(pin, dentry, bcpup, udba, + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + wh_dentry = ERR_PTR(err); + if (unlikely(err)) + goto out; + + h_path.dentry = au_pinned_h_parent(pin); + if (udba != AuOpt_UDBA_NONE + && au_dbstart(dentry) == bcpup) { + err = au_may_del(dentry, bcpup, h_path.dentry, isdir); + wh_dentry = ERR_PTR(err); + if (unlikely(err)) + goto out_unpin; + } + + h_path.mnt = au_sbr_mnt(sb, bcpup); + au_dtime_store(dt, au_pinned_parent(pin), &h_path); + wh_dentry = NULL; + if (!need_wh) + goto out; /* success, no need to create whiteout */ + + wh_dentry = au_wh_create(dentry, bcpup, h_path.dentry); + if (IS_ERR(wh_dentry)) + goto out_unpin; + + /* returns with the parent is locked and wh_dentry is dget-ed */ + goto out; /* success */ + + out_unpin: + au_unpin(pin); + out: + return wh_dentry; +} + +/* + * when removing a dir, rename it to a unique temporary whiteout-ed name first + * in order to be revertible and save time for removing many child whiteouts + * under the dir. + * returns 1 when there are too many child whiteout and caller should remove + * them asynchronously. returns 0 when the number of children is enough small to + * remove now or the branch fs is a remote fs. + * otherwise return an error. + */ +static int renwh_and_rmdir(struct dentry *dentry, aufs_bindex_t bindex, + struct au_nhash *whlist, struct inode *dir) +{ + int rmdir_later, err, dirwh; + struct dentry *h_dentry; + struct super_block *sb; + + sb = dentry->d_sb; + SiMustAnyLock(sb); + h_dentry = au_h_dptr(dentry, bindex); + err = au_whtmp_ren(h_dentry, au_sbr(sb, bindex)); + if (unlikely(err)) + goto out; + + /* stop monitoring */ + au_hn_free(au_hi(dentry->d_inode, bindex)); + + if (!au_test_fs_remote(h_dentry->d_sb)) { + dirwh = au_sbi(sb)->si_dirwh; + rmdir_later = (dirwh <= 1); + if (!rmdir_later) + rmdir_later = au_nhash_test_longer_wh(whlist, bindex, + dirwh); + if (rmdir_later) + return rmdir_later; + } + + err = au_whtmp_rmdir(dir, bindex, h_dentry, whlist); + if (unlikely(err)) { + AuIOErr("rmdir %.*s, b%d failed, %d. ignored\n", + AuDLNPair(h_dentry), bindex, err); + err = 0; + } + + out: + AuTraceErr(err); + return err; +} + +/* + * final procedure for deleting a entry. + * maintain dentry and iattr. + */ +static void epilog(struct inode *dir, struct dentry *dentry, + aufs_bindex_t bindex) +{ + struct inode *inode; + + inode = dentry->d_inode; + d_drop(dentry); + inode->i_ctime = dir->i_ctime; + + if (atomic_read(&dentry->d_count) == 1) { + au_set_h_dptr(dentry, au_dbstart(dentry), NULL); + au_update_dbstart(dentry); + } + if (au_ibstart(dir) == bindex) + au_cpup_attr_timesizes(dir); + dir->i_version++; +} + +/* + * when an error happened, remove the created whiteout and revert everything. + */ +static int do_revert(int err, struct inode *dir, aufs_bindex_t bwh, + struct dentry *wh_dentry, struct dentry *dentry, + struct au_dtime *dt) +{ + int rerr; + struct path h_path = { + .dentry = wh_dentry, + .mnt = au_sbr_mnt(dir->i_sb, bwh) + }; + + rerr = au_wh_unlink_dentry(au_h_iptr(dir, bwh), &h_path, dentry); + if (!rerr) { + au_set_dbwh(dentry, bwh); + au_dtime_revert(dt); + return 0; + } + + AuIOErr("%.*s reverting whiteout failed(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + return -EIO; +} + +/* ---------------------------------------------------------------------- */ + +int aufs_unlink(struct inode *dir, struct dentry *dentry) +{ + int err; + aufs_bindex_t bwh, bindex, bstart; + struct au_dtime dt; + struct au_pin pin; + struct path h_path; + struct inode *inode, *h_dir; + struct dentry *parent, *wh_dentry; + + IMustLock(dir); + inode = dentry->d_inode; + if (unlikely(!inode)) + return -ENOENT; /* possible? */ + IMustLock(inode); + + aufs_read_lock(dentry, AuLock_DW); + parent = dentry->d_parent; /* dir inode is locked */ + di_write_lock_parent(parent); + + bstart = au_dbstart(dentry); + bwh = au_dbwh(dentry); + bindex = -1; + wh_dentry = lock_hdir_create_wh(dentry, /*isdir*/0, &bindex, &dt, &pin); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out; + + h_path.mnt = au_sbr_mnt(dentry->d_sb, bstart); + h_path.dentry = au_h_dptr(dentry, bstart); + dget(h_path.dentry); + if (bindex == bstart) { + h_dir = au_pinned_h_dir(&pin); + err = vfsub_unlink(h_dir, &h_path, /*force*/0); + } else { + /* dir inode is locked */ + h_dir = wh_dentry->d_parent->d_inode; + IMustLock(h_dir); + err = 0; + } + + if (!err) { + drop_nlink(inode); + epilog(dir, dentry, bindex); + + /* update target timestamps */ + if (bindex == bstart) { + vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/ + inode->i_ctime = h_path.dentry->d_inode->i_ctime; + } else + /* todo: this timestamp may be reverted later */ + inode->i_ctime = h_dir->i_ctime; + goto out_unlock; /* success */ + } + + /* revert */ + if (wh_dentry) { + int rerr; + + rerr = do_revert(err, dir, bwh, wh_dentry, dentry, &dt); + if (rerr) + err = rerr; + } + + out_unlock: + au_unpin(&pin); + dput(wh_dentry); + dput(h_path.dentry); + out: + di_write_unlock(parent); + aufs_read_unlock(dentry, AuLock_DW); + return err; +} + +int aufs_rmdir(struct inode *dir, struct dentry *dentry) +{ + int err, rmdir_later; + aufs_bindex_t bwh, bindex, bstart; + struct au_dtime dt; + struct au_pin pin; + struct inode *inode; + struct dentry *parent, *wh_dentry, *h_dentry; + struct au_whtmp_rmdir *args; + + IMustLock(dir); + inode = dentry->d_inode; + err = -ENOENT; /* possible? */ + if (unlikely(!inode)) + goto out; + IMustLock(inode); + + aufs_read_lock(dentry, AuLock_DW | AuLock_FLUSH); + err = -ENOMEM; + args = au_whtmp_rmdir_alloc(dir->i_sb, GFP_NOFS); + if (unlikely(!args)) + goto out_unlock; + + parent = dentry->d_parent; /* dir inode is locked */ + di_write_lock_parent(parent); + err = au_test_empty(dentry, &args->whlist); + if (unlikely(err)) + goto out_args; + + bstart = au_dbstart(dentry); + bwh = au_dbwh(dentry); + bindex = -1; + wh_dentry = lock_hdir_create_wh(dentry, /*isdir*/1, &bindex, &dt, &pin); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out_args; + + h_dentry = au_h_dptr(dentry, bstart); + dget(h_dentry); + rmdir_later = 0; + if (bindex == bstart) { + err = renwh_and_rmdir(dentry, bstart, &args->whlist, dir); + if (err > 0) { + rmdir_later = err; + err = 0; + } + } else { + /* stop monitoring */ + au_hn_free(au_hi(inode, bstart)); + + /* dir inode is locked */ + IMustLock(wh_dentry->d_parent->d_inode); + err = 0; + } + + if (!err) { + clear_nlink(inode); + au_set_dbdiropq(dentry, -1); + epilog(dir, dentry, bindex); + + if (rmdir_later) { + au_whtmp_kick_rmdir(dir, bstart, h_dentry, args); + args = NULL; + } + + goto out_unpin; /* success */ + } + + /* revert */ + AuLabel(revert); + if (wh_dentry) { + int rerr; + + rerr = do_revert(err, dir, bwh, wh_dentry, dentry, &dt); + if (rerr) + err = rerr; + } + + out_unpin: + au_unpin(&pin); + dput(wh_dentry); + dput(h_dentry); + out_args: + di_write_unlock(parent); + if (args) + au_whtmp_rmdir_free(args); + out_unlock: + aufs_read_unlock(dentry, AuLock_DW); + out: + AuTraceErr(err); + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/wkq.h +++ linux-2.6.35/ubuntu/aufs/wkq.h @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * workqueue for asynchronous/super-io operations + * todo: try new credentials management scheme + */ + +#ifndef __AUFS_WKQ_H__ +#define __AUFS_WKQ_H__ + +#ifdef __KERNEL__ + +#include +#include +#include + +struct super_block; + +/* ---------------------------------------------------------------------- */ + +/* + * in the next operation, wait for the 'nowait' tasks in system-wide workqueue + */ +struct au_nowait_tasks { + atomic_t nw_len; + wait_queue_head_t nw_wq; +}; + +/* ---------------------------------------------------------------------- */ + +typedef void (*au_wkq_func_t)(void *args); + +/* wkq flags */ +#define AuWkq_WAIT 1 +#define AuWkq_PRE (1 << 1) +#define au_ftest_wkq(flags, name) ((flags) & AuWkq_##name) +#define au_fset_wkq(flags, name) { (flags) |= AuWkq_##name; } +#define au_fclr_wkq(flags, name) { (flags) &= ~AuWkq_##name; } + +/* wkq.c */ +int au_wkq_do_wait(unsigned int flags, au_wkq_func_t func, void *args); +int au_wkq_nowait(au_wkq_func_t func, void *args, struct super_block *sb); +void au_nwt_init(struct au_nowait_tasks *nwt); +int __init au_wkq_init(void); +void au_wkq_fin(void); + +/* ---------------------------------------------------------------------- */ + +static inline int au_wkq_wait_pre(au_wkq_func_t func, void *args) +{ + return au_wkq_do_wait(AuWkq_WAIT | AuWkq_PRE, func, args); +} + +static inline int au_wkq_wait(au_wkq_func_t func, void *args) +{ + return au_wkq_do_wait(AuWkq_WAIT, func, args); +} + +static inline int au_test_wkq(struct task_struct *tsk) +{ + return (current->flags & PF_KTHREAD) + && !strncmp(tsk->comm, AUFS_WKQ_NAME "/", + sizeof(AUFS_WKQ_NAME)); +} + +static inline void au_nwt_done(struct au_nowait_tasks *nwt) +{ + if (!atomic_dec_return(&nwt->nw_len)) + wake_up_all(&nwt->nw_wq); +} + +static inline int au_nwt_flush(struct au_nowait_tasks *nwt) +{ + wait_event(nwt->nw_wq, !atomic_read(&nwt->nw_len)); + return 0; +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_WKQ_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/conf.mk +++ linux-2.6.35/ubuntu/aufs/conf.mk @@ -0,0 +1,33 @@ + +AuConfStr = CONFIG_AUFS_FS=${CONFIG_AUFS_FS} + +define AuConf +ifdef ${1} +AuConfStr += ${1}=${${1}} +endif +endef + +$(foreach i, BRANCH_MAX_127 BRANCH_MAX_511 BRANCH_MAX_1023 BRANCH_MAX_32767 \ + HNOTIFY HFSNOTIFY HINOTIFY \ + EXPORT INO_T_64 \ + RDU \ + SP_IATTR \ + SHWH \ + BR_RAMFS \ + BR_FUSE POLL \ + BR_HFSPLUS \ + BDEV_LOOP \ + DEBUG MAGIC_SYSRQ, \ + $(eval $(call AuConf,CONFIG_AUFS_${i}))) + +AuConfName = ${obj}/conf.str +${AuConfName}.tmp: FORCE + @echo ${AuConfStr} | tr ' ' '\n' | sed -e 's/^/"/' -e 's/$$/\\n"/' > $@ +${AuConfName}: ${AuConfName}.tmp + @diff -q $< $@ > /dev/null 2>&1 || { \ + echo ' GEN ' $@; \ + cp -p $< $@; \ + } +FORCE: +clean-files += ${AuConfName} ${AuConfName}.tmp +${obj}/sysfs.o: ${AuConfName} --- linux-2.6.35.orig/ubuntu/aufs/dcsub.h +++ linux-2.6.35/ubuntu/aufs/dcsub.h @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sub-routines for dentry cache + */ + +#ifndef __AUFS_DCSUB_H__ +#define __AUFS_DCSUB_H__ + +#ifdef __KERNEL__ + +#include + +struct dentry; + +struct au_dpage { + int ndentry; + struct dentry **dentries; +}; + +struct au_dcsub_pages { + int ndpage; + struct au_dpage *dpages; +}; + +/* ---------------------------------------------------------------------- */ + +int au_dpages_init(struct au_dcsub_pages *dpages, gfp_t gfp); +void au_dpages_free(struct au_dcsub_pages *dpages); +typedef int (*au_dpages_test)(struct dentry *dentry, void *arg); +int au_dcsub_pages(struct au_dcsub_pages *dpages, struct dentry *root, + au_dpages_test test, void *arg); +int au_dcsub_pages_rev(struct au_dcsub_pages *dpages, struct dentry *dentry, + int do_include, au_dpages_test test, void *arg); +int au_test_subdir(struct dentry *d1, struct dentry *d2); + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DCSUB_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/sysaufs.h +++ linux-2.6.35/ubuntu/aufs/sysaufs.h @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sysfs interface and mount lifetime management + */ + +#ifndef __SYSAUFS_H__ +#define __SYSAUFS_H__ + +#ifdef __KERNEL__ + +#include +#include +#include "module.h" + +struct super_block; +struct au_sbinfo; + +struct sysaufs_si_attr { + struct attribute attr; + int (*show)(struct seq_file *seq, struct super_block *sb); +}; + +/* ---------------------------------------------------------------------- */ + +/* sysaufs.c */ +extern unsigned long sysaufs_si_mask; +extern struct kset *sysaufs_ket; +extern struct attribute *sysaufs_si_attrs[]; +int sysaufs_si_init(struct au_sbinfo *sbinfo); +int __init sysaufs_init(void); +void sysaufs_fin(void); + +/* ---------------------------------------------------------------------- */ + +/* some people doesn't like to show a pointer in kernel */ +static inline unsigned long sysaufs_si_id(struct au_sbinfo *sbinfo) +{ + return sysaufs_si_mask ^ (unsigned long)sbinfo; +} + +#define SysaufsSiNamePrefix "si_" +#define SysaufsSiNameLen (sizeof(SysaufsSiNamePrefix) + 16) +static inline void sysaufs_name(struct au_sbinfo *sbinfo, char *name) +{ + snprintf(name, SysaufsSiNameLen, SysaufsSiNamePrefix "%lx", + sysaufs_si_id(sbinfo)); +} + +struct au_branch; +#ifdef CONFIG_SYSFS +/* sysfs.c */ +extern struct attribute_group *sysaufs_attr_group; + +int sysaufs_si_xi_path(struct seq_file *seq, struct super_block *sb); +ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr, + char *buf); + +void sysaufs_br_init(struct au_branch *br); +void sysaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex); +void sysaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex); + +#define sysaufs_brs_init() do {} while (0) + +#else +#define sysaufs_attr_group NULL + +AuStubInt0(sysaufs_si_xi_path, struct seq_file *seq, struct super_block *sb) + +static inline +ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr, + char *buf) +{ + return 0; +} + +AuStubVoid(sysaufs_br_init, struct au_branch *br) +AuStubVoid(sysaufs_brs_add, struct super_block *sb, aufs_bindex_t bindex) +AuStubVoid(sysaufs_brs_del, struct super_block *sb, aufs_bindex_t bindex) + +static inline void sysaufs_brs_init(void) +{ + sysaufs_brs = 0; +} + +#endif /* CONFIG_SYSFS */ + +#endif /* __KERNEL__ */ +#endif /* __SYSAUFS_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/dinfo.c +++ linux-2.6.35/ubuntu/aufs/dinfo.c @@ -0,0 +1,395 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * dentry private data + */ + +#include "aufs.h" + +void au_di_init_once(void *_di) +{ + struct au_dinfo *di = _di; + + au_rw_init(&di->di_rwsem); +} + +int au_di_init(struct dentry *dentry) +{ + struct au_dinfo *dinfo; + struct super_block *sb; + int nbr; + + dinfo = au_cache_alloc_dinfo(); + if (unlikely(!dinfo)) + goto out; + + sb = dentry->d_sb; + nbr = au_sbend(sb) + 1; + if (nbr <= 0) + nbr = 1; + dinfo->di_hdentry = kcalloc(nbr, sizeof(*dinfo->di_hdentry), GFP_NOFS); + if (unlikely(!dinfo->di_hdentry)) + goto out_dinfo; + + atomic_set(&dinfo->di_generation, au_sigen(sb)); + /* smp_mb(); */ /* atomic_set */ + au_rw_write_lock_nested(&dinfo->di_rwsem, AuLsc_DI_CHILD); + dinfo->di_bstart = -1; + dinfo->di_bend = -1; + dinfo->di_bwh = -1; + dinfo->di_bdiropq = -1; + + dentry->d_fsdata = dinfo; + dentry->d_op = &aufs_dop; + return 0; /* success */ + + out_dinfo: + au_cache_free_dinfo(dinfo); + out: + return -ENOMEM; +} + +void au_di_fin(struct dentry *dentry) +{ + struct au_dinfo *di; + struct au_hdentry *p; + aufs_bindex_t bend, bindex; + + /* dentry may not be revalidated */ + di = dentry->d_fsdata; + bindex = di->di_bstart; + if (bindex >= 0) { + bend = di->di_bend; + p = di->di_hdentry + bindex; + while (bindex++ <= bend) + au_hdput(p++); + } + kfree(di->di_hdentry); + AuRwDestroy(&di->di_rwsem); + au_cache_free_dinfo(di); +} + +int au_di_realloc(struct au_dinfo *dinfo, int nbr) +{ + int err, sz; + struct au_hdentry *hdp; + + AuRwMustWriteLock(&dinfo->di_rwsem); + + err = -ENOMEM; + sz = sizeof(*hdp) * (dinfo->di_bend + 1); + if (!sz) + sz = sizeof(*hdp); + hdp = au_kzrealloc(dinfo->di_hdentry, sz, sizeof(*hdp) * nbr, GFP_NOFS); + if (hdp) { + dinfo->di_hdentry = hdp; + err = 0; + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static void do_ii_write_lock(struct inode *inode, unsigned int lsc) +{ + switch (lsc) { + case AuLsc_DI_CHILD: + ii_write_lock_child(inode); + break; + case AuLsc_DI_CHILD2: + ii_write_lock_child2(inode); + break; + case AuLsc_DI_CHILD3: + ii_write_lock_child3(inode); + break; + case AuLsc_DI_PARENT: + ii_write_lock_parent(inode); + break; + case AuLsc_DI_PARENT2: + ii_write_lock_parent2(inode); + break; + case AuLsc_DI_PARENT3: + ii_write_lock_parent3(inode); + break; + default: + BUG(); + } +} + +static void do_ii_read_lock(struct inode *inode, unsigned int lsc) +{ + switch (lsc) { + case AuLsc_DI_CHILD: + ii_read_lock_child(inode); + break; + case AuLsc_DI_CHILD2: + ii_read_lock_child2(inode); + break; + case AuLsc_DI_CHILD3: + ii_read_lock_child3(inode); + break; + case AuLsc_DI_PARENT: + ii_read_lock_parent(inode); + break; + case AuLsc_DI_PARENT2: + ii_read_lock_parent2(inode); + break; + case AuLsc_DI_PARENT3: + ii_read_lock_parent3(inode); + break; + default: + BUG(); + } +} + +void di_read_lock(struct dentry *d, int flags, unsigned int lsc) +{ + au_rw_read_lock_nested(&au_di(d)->di_rwsem, lsc); + if (d->d_inode) { + if (au_ftest_lock(flags, IW)) + do_ii_write_lock(d->d_inode, lsc); + else if (au_ftest_lock(flags, IR)) + do_ii_read_lock(d->d_inode, lsc); + } +} + +void di_read_unlock(struct dentry *d, int flags) +{ + if (d->d_inode) { + if (au_ftest_lock(flags, IW)) + ii_write_unlock(d->d_inode); + else if (au_ftest_lock(flags, IR)) + ii_read_unlock(d->d_inode); + } + au_rw_read_unlock(&au_di(d)->di_rwsem); +} + +void di_downgrade_lock(struct dentry *d, int flags) +{ + if (d->d_inode && au_ftest_lock(flags, IR)) + ii_downgrade_lock(d->d_inode); + au_rw_dgrade_lock(&au_di(d)->di_rwsem); +} + +void di_write_lock(struct dentry *d, unsigned int lsc) +{ + au_rw_write_lock_nested(&au_di(d)->di_rwsem, lsc); + if (d->d_inode) + do_ii_write_lock(d->d_inode, lsc); +} + +void di_write_unlock(struct dentry *d) +{ + if (d->d_inode) + ii_write_unlock(d->d_inode); + au_rw_write_unlock(&au_di(d)->di_rwsem); +} + +void di_write_lock2_child(struct dentry *d1, struct dentry *d2, int isdir) +{ + AuDebugOn(d1 == d2 + || d1->d_inode == d2->d_inode + || d1->d_sb != d2->d_sb); + + if (isdir && au_test_subdir(d1, d2)) { + di_write_lock_child(d1); + di_write_lock_child2(d2); + } else { + /* there should be no races */ + di_write_lock_child(d2); + di_write_lock_child2(d1); + } +} + +void di_write_lock2_parent(struct dentry *d1, struct dentry *d2, int isdir) +{ + AuDebugOn(d1 == d2 + || d1->d_inode == d2->d_inode + || d1->d_sb != d2->d_sb); + + if (isdir && au_test_subdir(d1, d2)) { + di_write_lock_parent(d1); + di_write_lock_parent2(d2); + } else { + /* there should be no races */ + di_write_lock_parent(d2); + di_write_lock_parent2(d1); + } +} + +void di_write_unlock2(struct dentry *d1, struct dentry *d2) +{ + di_write_unlock(d1); + if (d1->d_inode == d2->d_inode) + au_rw_write_unlock(&au_di(d2)->di_rwsem); + else + di_write_unlock(d2); +} + +/* ---------------------------------------------------------------------- */ + +struct dentry *au_h_dptr(struct dentry *dentry, aufs_bindex_t bindex) +{ + struct dentry *d; + + DiMustAnyLock(dentry); + + if (au_dbstart(dentry) < 0 || bindex < au_dbstart(dentry)) + return NULL; + AuDebugOn(bindex < 0); + d = au_di(dentry)->di_hdentry[0 + bindex].hd_dentry; + AuDebugOn(d && (atomic_read(&d->d_count) <= 0)); + return d; +} + +aufs_bindex_t au_dbtail(struct dentry *dentry) +{ + aufs_bindex_t bend, bwh; + + bend = au_dbend(dentry); + if (0 <= bend) { + bwh = au_dbwh(dentry); + if (!bwh) + return bwh; + if (0 < bwh && bwh < bend) + return bwh - 1; + } + return bend; +} + +aufs_bindex_t au_dbtaildir(struct dentry *dentry) +{ + aufs_bindex_t bend, bopq; + + bend = au_dbtail(dentry); + if (0 <= bend) { + bopq = au_dbdiropq(dentry); + if (0 <= bopq && bopq < bend) + bend = bopq; + } + return bend; +} + +/* ---------------------------------------------------------------------- */ + +void au_set_h_dptr(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_dentry) +{ + struct au_hdentry *hd = au_di(dentry)->di_hdentry + bindex; + + DiMustWriteLock(dentry); + + au_hdput(hd); + hd->hd_dentry = h_dentry; +} + +void au_update_digen(struct dentry *dentry) +{ + atomic_set(&au_di(dentry)->di_generation, au_sigen(dentry->d_sb)); + /* smp_mb(); */ /* atomic_set */ +} + +void au_update_dbrange(struct dentry *dentry, int do_put_zero) +{ + struct au_dinfo *dinfo; + struct dentry *h_d; + struct au_hdentry *hdp; + + DiMustWriteLock(dentry); + + dinfo = au_di(dentry); + if (!dinfo || dinfo->di_bstart < 0) + return; + + hdp = dinfo->di_hdentry; + if (do_put_zero) { + aufs_bindex_t bindex, bend; + + bend = dinfo->di_bend; + for (bindex = dinfo->di_bstart; bindex <= bend; bindex++) { + h_d = hdp[0 + bindex].hd_dentry; + if (h_d && !h_d->d_inode) + au_set_h_dptr(dentry, bindex, NULL); + } + } + + dinfo->di_bstart = -1; + while (++dinfo->di_bstart <= dinfo->di_bend) + if (hdp[0 + dinfo->di_bstart].hd_dentry) + break; + if (dinfo->di_bstart > dinfo->di_bend) { + dinfo->di_bstart = -1; + dinfo->di_bend = -1; + return; + } + + dinfo->di_bend++; + while (0 <= --dinfo->di_bend) + if (hdp[0 + dinfo->di_bend].hd_dentry) + break; + AuDebugOn(dinfo->di_bstart > dinfo->di_bend || dinfo->di_bend < 0); +} + +void au_update_dbstart(struct dentry *dentry) +{ + aufs_bindex_t bindex, bend; + struct dentry *h_dentry; + + bend = au_dbend(dentry); + for (bindex = au_dbstart(dentry); bindex <= bend; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + if (h_dentry->d_inode) { + au_set_dbstart(dentry, bindex); + return; + } + au_set_h_dptr(dentry, bindex, NULL); + } +} + +void au_update_dbend(struct dentry *dentry) +{ + aufs_bindex_t bindex, bstart; + struct dentry *h_dentry; + + bstart = au_dbstart(dentry); + for (bindex = au_dbend(dentry); bindex <= bstart; bindex--) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + if (h_dentry->d_inode) { + au_set_dbend(dentry, bindex); + return; + } + au_set_h_dptr(dentry, bindex, NULL); + } +} + +int au_find_dbindex(struct dentry *dentry, struct dentry *h_dentry) +{ + aufs_bindex_t bindex, bend; + + bend = au_dbend(dentry); + for (bindex = au_dbstart(dentry); bindex <= bend; bindex++) + if (au_h_dptr(dentry, bindex) == h_dentry) + return bindex; + return -1; +} --- linux-2.6.35.orig/ubuntu/aufs/branch.h +++ linux-2.6.35/ubuntu/aufs/branch.h @@ -0,0 +1,224 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * branch filesystems and xino for them + */ + +#ifndef __AUFS_BRANCH_H__ +#define __AUFS_BRANCH_H__ + +#ifdef __KERNEL__ + +#include +#include +#include +#include "dynop.h" +#include "rwsem.h" +#include "super.h" + +/* ---------------------------------------------------------------------- */ + +/* a xino file */ +struct au_xino_file { + struct file *xi_file; + struct mutex xi_nondir_mtx; + + /* todo: make xino files an array to support huge inode number */ + +#ifdef CONFIG_DEBUG_FS + struct dentry *xi_dbgaufs; +#endif +}; + +/* members for writable branch only */ +enum {AuBrWh_BASE, AuBrWh_PLINK, AuBrWh_ORPH, AuBrWh_Last}; +struct au_wbr { + struct au_rwsem wbr_wh_rwsem; + struct dentry *wbr_wh[AuBrWh_Last]; + atomic_t wbr_wh_running; +#define wbr_whbase wbr_wh[AuBrWh_BASE] /* whiteout base */ +#define wbr_plink wbr_wh[AuBrWh_PLINK] /* pseudo-link dir */ +#define wbr_orph wbr_wh[AuBrWh_ORPH] /* dir for orphans */ + + /* mfs mode */ + unsigned long long wbr_bytes; +}; + +/* ext2 has 3 types of operations at least, ext3 has 4 */ +#define AuBrDynOp (AuDyLast * 4) + +/* protected by superblock rwsem */ +struct au_branch { + struct au_xino_file br_xino; + + aufs_bindex_t br_id; + + int br_perm; + struct vfsmount *br_mnt; + spinlock_t br_dykey_lock; + struct au_dykey *br_dykey[AuBrDynOp]; + atomic_t br_count; + + struct au_wbr *br_wbr; + + /* xino truncation */ + blkcnt_t br_xino_upper; /* watermark in blocks */ + atomic_t br_xino_running; + +#ifdef CONFIG_SYSFS + /* an entry under sysfs per mount-point */ + char br_name[8]; + struct attribute br_attr; +#endif +}; + +/* ---------------------------------------------------------------------- */ + +/* branch permission and attribute */ +enum { + AuBrPerm_RW, /* writable, linkable wh */ + AuBrPerm_RO, /* readonly, no wh */ + AuBrPerm_RR, /* natively readonly, no wh */ + + AuBrPerm_RWNoLinkWH, /* un-linkable whiteouts */ + + AuBrPerm_ROWH, /* whiteout-able */ + AuBrPerm_RRWH, /* whiteout-able */ + + AuBrPerm_Last +}; + +static inline int au_br_writable(int brperm) +{ + return brperm == AuBrPerm_RW || brperm == AuBrPerm_RWNoLinkWH; +} + +static inline int au_br_whable(int brperm) +{ + return brperm == AuBrPerm_RW + || brperm == AuBrPerm_ROWH + || brperm == AuBrPerm_RRWH; +} + +static inline int au_br_rdonly(struct au_branch *br) +{ + return ((br->br_mnt->mnt_sb->s_flags & MS_RDONLY) + || !au_br_writable(br->br_perm)) + ? -EROFS : 0; +} + +static inline int au_br_hnotifyable(int brperm __maybe_unused) +{ +#ifdef CONFIG_AUFS_HNOTIFY + return brperm != AuBrPerm_RR && brperm != AuBrPerm_RRWH; +#else + return 0; +#endif +} + +/* ---------------------------------------------------------------------- */ + +/* branch.c */ +struct au_sbinfo; +void au_br_free(struct au_sbinfo *sinfo); +int au_br_index(struct super_block *sb, aufs_bindex_t br_id); +struct au_opt_add; +int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount); +struct au_opt_del; +int au_br_del(struct super_block *sb, struct au_opt_del *del, int remount); +struct au_opt_mod; +int au_br_mod(struct super_block *sb, struct au_opt_mod *mod, int remount, + int *do_update); + +/* xino.c */ +static const loff_t au_loff_max = LLONG_MAX; + +int au_xib_trunc(struct super_block *sb); +ssize_t xino_fread(au_readf_t func, struct file *file, void *buf, size_t size, + loff_t *pos); +ssize_t xino_fwrite(au_writef_t func, struct file *file, void *buf, size_t size, + loff_t *pos); +struct file *au_xino_create2(struct file *base_file, struct file *copy_src); +struct file *au_xino_create(struct super_block *sb, char *fname, int silent); +ino_t au_xino_new_ino(struct super_block *sb); +void au_xino_delete_inode(struct inode *inode, const int unlinked); +int au_xino_write(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + ino_t ino); +int au_xino_read(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + ino_t *ino); +int au_xino_br(struct super_block *sb, struct au_branch *br, ino_t hino, + struct file *base_file, int do_test); +int au_xino_trunc(struct super_block *sb, aufs_bindex_t bindex); + +struct au_opt_xino; +int au_xino_set(struct super_block *sb, struct au_opt_xino *xino, int remount); +void au_xino_clr(struct super_block *sb); +struct file *au_xino_def(struct super_block *sb); +int au_xino_path(struct seq_file *seq, struct file *file); + +/* ---------------------------------------------------------------------- */ + +/* Superblock to branch */ +static inline +aufs_bindex_t au_sbr_id(struct super_block *sb, aufs_bindex_t bindex) +{ + return au_sbr(sb, bindex)->br_id; +} + +static inline +struct vfsmount *au_sbr_mnt(struct super_block *sb, aufs_bindex_t bindex) +{ + return au_sbr(sb, bindex)->br_mnt; +} + +static inline +struct super_block *au_sbr_sb(struct super_block *sb, aufs_bindex_t bindex) +{ + return au_sbr_mnt(sb, bindex)->mnt_sb; +} + +static inline void au_sbr_put(struct super_block *sb, aufs_bindex_t bindex) +{ + atomic_dec_return(&au_sbr(sb, bindex)->br_count); +} + +static inline int au_sbr_perm(struct super_block *sb, aufs_bindex_t bindex) +{ + return au_sbr(sb, bindex)->br_perm; +} + +static inline int au_sbr_whable(struct super_block *sb, aufs_bindex_t bindex) +{ + return au_br_whable(au_sbr_perm(sb, bindex)); +} + +/* ---------------------------------------------------------------------- */ + +/* + * wbr_wh_read_lock, wbr_wh_write_lock + * wbr_wh_read_unlock, wbr_wh_write_unlock, wbr_wh_downgrade_lock + */ +AuSimpleRwsemFuncs(wbr_wh, struct au_wbr *wbr, &wbr->wbr_wh_rwsem); + +#define WbrWhMustNoWaiters(wbr) AuRwMustNoWaiters(&wbr->wbr_wh_rwsem) +#define WbrWhMustAnyLock(wbr) AuRwMustAnyLock(&wbr->wbr_wh_rwsem) +#define WbrWhMustWriteLock(wbr) AuRwMustWriteLock(&wbr->wbr_wh_rwsem) + +#endif /* __KERNEL__ */ +#endif /* __AUFS_BRANCH_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/i_op_add.c +++ linux-2.6.35/ubuntu/aufs/i_op_add.c @@ -0,0 +1,672 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode operations (add entry) + */ + +#include "aufs.h" + +/* + * final procedure of adding a new entry, except link(2). + * remove whiteout, instantiate, copyup the parent dir's times and size + * and update version. + * if it failed, re-create the removed whiteout. + */ +static int epilog(struct inode *dir, aufs_bindex_t bindex, + struct dentry *wh_dentry, struct dentry *dentry) +{ + int err, rerr; + aufs_bindex_t bwh; + struct path h_path; + struct inode *inode, *h_dir; + struct dentry *wh; + + bwh = -1; + if (wh_dentry) { + h_dir = wh_dentry->d_parent->d_inode; /* dir inode is locked */ + IMustLock(h_dir); + AuDebugOn(au_h_iptr(dir, bindex) != h_dir); + bwh = au_dbwh(dentry); + h_path.dentry = wh_dentry; + h_path.mnt = au_sbr_mnt(dir->i_sb, bindex); + err = au_wh_unlink_dentry(au_h_iptr(dir, bindex), &h_path, + dentry); + if (unlikely(err)) + goto out; + } + + inode = au_new_inode(dentry, /*must_new*/1); + if (!IS_ERR(inode)) { + d_instantiate(dentry, inode); + dir = dentry->d_parent->d_inode; /* dir inode is locked */ + IMustLock(dir); + if (au_ibstart(dir) == au_dbstart(dentry)) + au_cpup_attr_timesizes(dir); + dir->i_version++; + return 0; /* success */ + } + + err = PTR_ERR(inode); + if (!wh_dentry) + goto out; + + /* revert */ + /* dir inode is locked */ + wh = au_wh_create(dentry, bwh, wh_dentry->d_parent); + rerr = PTR_ERR(wh); + if (IS_ERR(wh)) { + AuIOErr("%.*s reverting whiteout failed(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + } else + dput(wh); + + out: + return err; +} + +/* + * simple tests for the adding inode operations. + * following the checks in vfs, plus the parent-child relationship. + */ +int au_may_add(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent, int isdir) +{ + int err; + umode_t h_mode; + struct dentry *h_dentry; + struct inode *h_inode; + + err = -ENAMETOOLONG; + if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN)) + goto out; + + h_dentry = au_h_dptr(dentry, bindex); + h_inode = h_dentry->d_inode; + if (!dentry->d_inode) { + err = -EEXIST; + if (unlikely(h_inode)) + goto out; + } else { + /* rename(2) case */ + err = -EIO; + if (unlikely(!h_inode || !h_inode->i_nlink)) + goto out; + + h_mode = h_inode->i_mode; + if (!isdir) { + err = -EISDIR; + if (unlikely(S_ISDIR(h_mode))) + goto out; + } else if (unlikely(!S_ISDIR(h_mode))) { + err = -ENOTDIR; + goto out; + } + } + + err = 0; + /* expected parent dir is locked */ + if (unlikely(h_parent != h_dentry->d_parent)) + err = -EIO; + + out: + AuTraceErr(err); + return err; +} + +/* + * initial procedure of adding a new entry. + * prepare writable branch and the parent dir, lock it, + * and lookup whiteout for the new entry. + */ +static struct dentry* +lock_hdir_lkup_wh(struct dentry *dentry, struct au_dtime *dt, + struct dentry *src_dentry, struct au_pin *pin, + struct au_wr_dir_args *wr_dir_args) +{ + struct dentry *wh_dentry, *h_parent; + struct super_block *sb; + struct au_branch *br; + int err; + unsigned int udba; + aufs_bindex_t bcpup; + + AuDbg("%.*s\n", AuDLNPair(dentry)); + + err = au_wr_dir(dentry, src_dentry, wr_dir_args); + bcpup = err; + wh_dentry = ERR_PTR(err); + if (unlikely(err < 0)) + goto out; + + sb = dentry->d_sb; + udba = au_opt_udba(sb); + err = au_pin(pin, dentry, bcpup, udba, + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + wh_dentry = ERR_PTR(err); + if (unlikely(err)) + goto out; + + h_parent = au_pinned_h_parent(pin); + if (udba != AuOpt_UDBA_NONE + && au_dbstart(dentry) == bcpup) + err = au_may_add(dentry, bcpup, h_parent, + au_ftest_wrdir(wr_dir_args->flags, ISDIR)); + else if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN)) + err = -ENAMETOOLONG; + wh_dentry = ERR_PTR(err); + if (unlikely(err)) + goto out_unpin; + + br = au_sbr(sb, bcpup); + if (dt) { + struct path tmp = { + .dentry = h_parent, + .mnt = br->br_mnt + }; + au_dtime_store(dt, au_pinned_parent(pin), &tmp); + } + + wh_dentry = NULL; + if (bcpup != au_dbwh(dentry)) + goto out; /* success */ + + wh_dentry = au_wh_lkup(h_parent, &dentry->d_name, br); + + out_unpin: + if (IS_ERR(wh_dentry)) + au_unpin(pin); + out: + return wh_dentry; +} + +/* ---------------------------------------------------------------------- */ + +enum { Mknod, Symlink, Creat }; +struct simple_arg { + int type; + union { + struct { + int mode; + struct nameidata *nd; + } c; + struct { + const char *symname; + } s; + struct { + int mode; + dev_t dev; + } m; + } u; +}; + +static int add_simple(struct inode *dir, struct dentry *dentry, + struct simple_arg *arg) +{ + int err; + aufs_bindex_t bstart; + unsigned char created; + struct au_dtime dt; + struct au_pin pin; + struct path h_path; + struct dentry *wh_dentry, *parent; + struct inode *h_dir; + struct au_wr_dir_args wr_dir_args = { + .force_btgt = -1, + .flags = AuWrDir_ADD_ENTRY + }; + + AuDbg("%.*s\n", AuDLNPair(dentry)); + IMustLock(dir); + + parent = dentry->d_parent; /* dir inode is locked */ + aufs_read_lock(dentry, AuLock_DW); + di_write_lock_parent(parent); + wh_dentry = lock_hdir_lkup_wh(dentry, &dt, /*src_dentry*/NULL, &pin, + &wr_dir_args); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out; + + bstart = au_dbstart(dentry); + h_path.dentry = au_h_dptr(dentry, bstart); + h_path.mnt = au_sbr_mnt(dentry->d_sb, bstart); + h_dir = au_pinned_h_dir(&pin); + switch (arg->type) { + case Creat: + err = vfsub_create(h_dir, &h_path, arg->u.c.mode); + break; + case Symlink: + err = vfsub_symlink(h_dir, &h_path, arg->u.s.symname); + break; + case Mknod: + err = vfsub_mknod(h_dir, &h_path, arg->u.m.mode, arg->u.m.dev); + break; + default: + BUG(); + } + created = !err; + if (!err) + err = epilog(dir, bstart, wh_dentry, dentry); + + /* revert */ + if (unlikely(created && err && h_path.dentry->d_inode)) { + int rerr; + rerr = vfsub_unlink(h_dir, &h_path, /*force*/0); + if (rerr) { + AuIOErr("%.*s revert failure(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + } + au_dtime_revert(&dt); + d_drop(dentry); + } + + au_unpin(&pin); + dput(wh_dentry); + + out: + if (unlikely(err)) { + au_update_dbstart(dentry); + d_drop(dentry); + } + di_write_unlock(parent); + aufs_read_unlock(dentry, AuLock_DW); + return err; +} + +int aufs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev) +{ + struct simple_arg arg = { + .type = Mknod, + .u.m = { + .mode = mode, + .dev = dev + } + }; + return add_simple(dir, dentry, &arg); +} + +int aufs_symlink(struct inode *dir, struct dentry *dentry, const char *symname) +{ + struct simple_arg arg = { + .type = Symlink, + .u.s.symname = symname + }; + return add_simple(dir, dentry, &arg); +} + +int aufs_create(struct inode *dir, struct dentry *dentry, int mode, + struct nameidata *nd) +{ + struct simple_arg arg = { + .type = Creat, + .u.c = { + .mode = mode, + .nd = nd + } + }; + return add_simple(dir, dentry, &arg); +} + +/* ---------------------------------------------------------------------- */ + +struct au_link_args { + aufs_bindex_t bdst, bsrc; + struct au_pin pin; + struct path h_path; + struct dentry *src_parent, *parent; +}; + +static int au_cpup_before_link(struct dentry *src_dentry, + struct au_link_args *a) +{ + int err; + struct dentry *h_src_dentry; + struct mutex *h_mtx; + struct file *h_file; + + di_read_lock_parent(a->src_parent, AuLock_IR); + err = au_test_and_cpup_dirs(src_dentry, a->bdst); + if (unlikely(err)) + goto out; + + h_src_dentry = au_h_dptr(src_dentry, a->bsrc); + h_mtx = &h_src_dentry->d_inode->i_mutex; + err = au_pin(&a->pin, src_dentry, a->bdst, + au_opt_udba(src_dentry->d_sb), + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + if (unlikely(err)) + goto out; + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + h_file = au_h_open_pre(src_dentry, a->bsrc); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else + err = au_sio_cpup_simple(src_dentry, a->bdst, a->bsrc, + AuCpup_DTIME /* | AuCpup_KEEPLINO */); + mutex_unlock(h_mtx); + au_h_open_post(src_dentry, a->bsrc, h_file); + au_unpin(&a->pin); + + out: + di_read_unlock(a->src_parent, AuLock_IR); + return err; +} + +static int au_cpup_or_link(struct dentry *src_dentry, struct au_link_args *a) +{ + int err; + unsigned char plink; + struct inode *h_inode, *inode; + struct dentry *h_src_dentry; + struct super_block *sb; + struct file *h_file; + + plink = 0; + h_inode = NULL; + sb = src_dentry->d_sb; + inode = src_dentry->d_inode; + if (au_ibstart(inode) <= a->bdst) + h_inode = au_h_iptr(inode, a->bdst); + if (!h_inode || !h_inode->i_nlink) { + /* copyup src_dentry as the name of dentry. */ + au_set_dbstart(src_dentry, a->bdst); + au_set_h_dptr(src_dentry, a->bdst, dget(a->h_path.dentry)); + h_inode = au_h_dptr(src_dentry, a->bsrc)->d_inode; + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + h_file = au_h_open_pre(src_dentry, a->bsrc); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else + err = au_sio_cpup_single(src_dentry, a->bdst, a->bsrc, + -1, AuCpup_KEEPLINO, + a->parent); + mutex_unlock(&h_inode->i_mutex); + au_h_open_post(src_dentry, a->bsrc, h_file); + au_set_h_dptr(src_dentry, a->bdst, NULL); + au_set_dbstart(src_dentry, a->bsrc); + } else { + /* the inode of src_dentry already exists on a.bdst branch */ + h_src_dentry = d_find_alias(h_inode); + if (!h_src_dentry && au_plink_test(inode)) { + plink = 1; + h_src_dentry = au_plink_lkup(inode, a->bdst); + err = PTR_ERR(h_src_dentry); + if (IS_ERR(h_src_dentry)) + goto out; + + if (unlikely(!h_src_dentry->d_inode)) { + dput(h_src_dentry); + h_src_dentry = NULL; + } + + } + if (h_src_dentry) { + err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin), + &a->h_path); + dput(h_src_dentry); + } else { + AuIOErr("no dentry found for hi%lu on b%d\n", + h_inode->i_ino, a->bdst); + err = -EIO; + } + } + + if (!err && !plink) + au_plink_append(inode, a->bdst, a->h_path.dentry); + +out: + return err; +} + +int aufs_link(struct dentry *src_dentry, struct inode *dir, + struct dentry *dentry) +{ + int err, rerr; + struct au_dtime dt; + struct au_link_args *a; + struct dentry *wh_dentry, *h_src_dentry; + struct inode *inode; + struct super_block *sb; + struct au_wr_dir_args wr_dir_args = { + /* .force_btgt = -1, */ + .flags = AuWrDir_ADD_ENTRY + }; + + IMustLock(dir); + inode = src_dentry->d_inode; + IMustLock(inode); + + err = -ENOENT; + if (unlikely(!inode->i_nlink)) + goto out; + + err = -ENOMEM; + a = kzalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + a->parent = dentry->d_parent; /* dir inode is locked */ + aufs_read_and_write_lock2(dentry, src_dentry, /*AuLock_FLUSH*/0); + a->src_parent = dget_parent(src_dentry); + wr_dir_args.force_btgt = au_dbstart(src_dentry); + + di_write_lock_parent(a->parent); + wr_dir_args.force_btgt = au_wbr(dentry, wr_dir_args.force_btgt); + wh_dentry = lock_hdir_lkup_wh(dentry, &dt, src_dentry, &a->pin, + &wr_dir_args); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out_unlock; + + err = 0; + sb = dentry->d_sb; + a->bdst = au_dbstart(dentry); + a->h_path.dentry = au_h_dptr(dentry, a->bdst); + a->h_path.mnt = au_sbr_mnt(sb, a->bdst); + a->bsrc = au_dbstart(src_dentry); + if (au_opt_test(au_mntflags(sb), PLINK)) { + if (a->bdst < a->bsrc + /* && h_src_dentry->d_sb != a->h_path.dentry->d_sb */) + err = au_cpup_or_link(src_dentry, a); + else { + h_src_dentry = au_h_dptr(src_dentry, a->bdst); + err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin), + &a->h_path); + } + } else { + /* + * copyup src_dentry to the branch we process, + * and then link(2) to it. + */ + if (a->bdst < a->bsrc + /* && h_src_dentry->d_sb != a->h_path.dentry->d_sb */) { + au_unpin(&a->pin); + di_write_unlock(a->parent); + err = au_cpup_before_link(src_dentry, a); + di_write_lock_parent(a->parent); + if (!err) + err = au_pin(&a->pin, dentry, a->bdst, + au_opt_udba(sb), + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + if (unlikely(err)) + goto out_wh; + } + if (!err) { + h_src_dentry = au_h_dptr(src_dentry, a->bdst); + err = -ENOENT; + if (h_src_dentry && h_src_dentry->d_inode) + err = vfsub_link(h_src_dentry, + au_pinned_h_dir(&a->pin), + &a->h_path); + } + } + if (unlikely(err)) + goto out_unpin; + + if (wh_dentry) { + a->h_path.dentry = wh_dentry; + err = au_wh_unlink_dentry(au_pinned_h_dir(&a->pin), &a->h_path, + dentry); + if (unlikely(err)) + goto out_revert; + } + + dir->i_version++; + if (au_ibstart(dir) == au_dbstart(dentry)) + au_cpup_attr_timesizes(dir); + inc_nlink(inode); + inode->i_ctime = dir->i_ctime; + if (!d_unhashed(a->h_path.dentry)) + d_instantiate(dentry, au_igrab(inode)); + else + /* some filesystem calls d_drop() */ + d_drop(dentry); + goto out_unpin; /* success */ + + out_revert: + rerr = vfsub_unlink(au_pinned_h_dir(&a->pin), &a->h_path, /*force*/0); + if (!rerr) + goto out_dt; + AuIOErr("%.*s reverting failed(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + out_dt: + d_drop(dentry); + au_dtime_revert(&dt); + out_unpin: + au_unpin(&a->pin); + out_wh: + dput(wh_dentry); + out_unlock: + if (unlikely(err)) { + au_update_dbstart(dentry); + d_drop(dentry); + } + di_write_unlock(a->parent); + dput(a->src_parent); + aufs_read_and_write_unlock2(dentry, src_dentry); + kfree(a); + out: + return err; +} + +int aufs_mkdir(struct inode *dir, struct dentry *dentry, int mode) +{ + int err, rerr; + aufs_bindex_t bindex; + unsigned char diropq; + struct path h_path; + struct dentry *wh_dentry, *parent, *opq_dentry; + struct mutex *h_mtx; + struct super_block *sb; + struct { + struct au_pin pin; + struct au_dtime dt; + } *a; /* reduce the stack usage */ + struct au_wr_dir_args wr_dir_args = { + .force_btgt = -1, + .flags = AuWrDir_ADD_ENTRY | AuWrDir_ISDIR + }; + + IMustLock(dir); + + err = -ENOMEM; + a = kmalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + aufs_read_lock(dentry, AuLock_DW); + parent = dentry->d_parent; /* dir inode is locked */ + di_write_lock_parent(parent); + wh_dentry = lock_hdir_lkup_wh(dentry, &a->dt, /*src_dentry*/NULL, + &a->pin, &wr_dir_args); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out_free; + + sb = dentry->d_sb; + bindex = au_dbstart(dentry); + h_path.dentry = au_h_dptr(dentry, bindex); + h_path.mnt = au_sbr_mnt(sb, bindex); + err = vfsub_mkdir(au_pinned_h_dir(&a->pin), &h_path, mode); + if (unlikely(err)) + goto out_unlock; + + /* make the dir opaque */ + diropq = 0; + h_mtx = &h_path.dentry->d_inode->i_mutex; + if (wh_dentry + || au_opt_test(au_mntflags(sb), ALWAYS_DIROPQ)) { + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + opq_dentry = au_diropq_create(dentry, bindex); + mutex_unlock(h_mtx); + err = PTR_ERR(opq_dentry); + if (IS_ERR(opq_dentry)) + goto out_dir; + dput(opq_dentry); + diropq = 1; + } + + err = epilog(dir, bindex, wh_dentry, dentry); + if (!err) { + inc_nlink(dir); + goto out_unlock; /* success */ + } + + /* revert */ + if (diropq) { + AuLabel(revert opq); + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + rerr = au_diropq_remove(dentry, bindex); + mutex_unlock(h_mtx); + if (rerr) { + AuIOErr("%.*s reverting diropq failed(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + } + } + + out_dir: + AuLabel(revert dir); + rerr = vfsub_rmdir(au_pinned_h_dir(&a->pin), &h_path); + if (rerr) { + AuIOErr("%.*s reverting dir failed(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + } + d_drop(dentry); + au_dtime_revert(&a->dt); + out_unlock: + au_unpin(&a->pin); + dput(wh_dentry); + out_free: + if (unlikely(err)) { + au_update_dbstart(dentry); + d_drop(dentry); + } + di_write_unlock(parent); + aufs_read_unlock(dentry, AuLock_DW); + kfree(a); + out: + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/hinotify.c +++ linux-2.6.35/ubuntu/aufs/hinotify.c @@ -0,0 +1,227 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inotify for the lower directories (deprecated) + */ + +#include "aufs.h" + +static const __u32 AuHinMask = (IN_MOVE | IN_DELETE | IN_CREATE); +static struct inotify_handle *au_hin_handle; + +/* ---------------------------------------------------------------------- */ + +static int au_hin_alloc(struct au_hnotify *hn, struct inode *h_inode) +{ + int err; + s32 wd; + struct inotify_watch *watch; + + err = -EEXIST; + wd = inotify_find_watch(au_hin_handle, h_inode, &watch); + if (wd >= 0) { + put_inotify_watch(watch); + goto out; + } + + err = 0; + inotify_init_watch(&hn->hn_watch); + wd = inotify_add_watch(au_hin_handle, &hn->hn_watch, h_inode, + AuHinMask); + if (unlikely(wd < 0)) { + err = wd; + put_inotify_watch(&hn->hn_watch); + } + +out: + return err; +} + +static void au_hin_free(struct au_hnotify *hn) +{ + int err; + + err = 0; + if (atomic_read(&hn->hn_watch.count)) + err = inotify_rm_watch(au_hin_handle, &hn->hn_watch); + if (unlikely(err)) + /* it means the watch is already removed */ + pr_warning("failed inotify_rm_watch() %d\n", err); +} + +/* ---------------------------------------------------------------------- */ + +static void au_hin_ctl(struct au_hinode *hinode, int do_set) +{ + struct inode *h_inode; + struct inotify_watch *watch; + + h_inode = hinode->hi_inode; + IMustLock(h_inode); + + /* todo: try inotify_find_update_watch()? */ + watch = &hinode->hi_notify->hn_watch; + mutex_lock(&h_inode->inotify_mutex); + /* mutex_lock(&watch->ih->mutex); */ + if (do_set) { + AuDebugOn(watch->mask & AuHinMask); + watch->mask |= AuHinMask; + } else { + AuDebugOn(!(watch->mask & AuHinMask)); + watch->mask &= ~AuHinMask; + } + /* mutex_unlock(&watch->ih->mutex); */ + mutex_unlock(&h_inode->inotify_mutex); +} + +/* ---------------------------------------------------------------------- */ + +#ifdef AuDbgHnotify +static char *in_name(u32 mask) +{ +#ifdef CONFIG_AUFS_DEBUG +#define test_ret(flag) if (mask & flag) \ + return #flag; + test_ret(IN_ACCESS); + test_ret(IN_MODIFY); + test_ret(IN_ATTRIB); + test_ret(IN_CLOSE_WRITE); + test_ret(IN_CLOSE_NOWRITE); + test_ret(IN_OPEN); + test_ret(IN_MOVED_FROM); + test_ret(IN_MOVED_TO); + test_ret(IN_CREATE); + test_ret(IN_DELETE); + test_ret(IN_DELETE_SELF); + test_ret(IN_MOVE_SELF); + test_ret(IN_UNMOUNT); + test_ret(IN_Q_OVERFLOW); + test_ret(IN_IGNORED); + return ""; +#undef test_ret +#else + return "??"; +#endif +} +#endif + +static u32 au_hin_conv_mask(u32 mask) +{ + u32 conv; + + conv = 0; +#define do_conv(flag) conv |= (mask & IN_ ## flag) ? FS_ ## flag : 0 + do_conv(ACCESS); + do_conv(MODIFY); + do_conv(ATTRIB); + do_conv(CLOSE_WRITE); + do_conv(CLOSE_NOWRITE); + do_conv(OPEN); + do_conv(MOVED_FROM); + do_conv(MOVED_TO); + do_conv(CREATE); + do_conv(DELETE); + do_conv(DELETE_SELF); + do_conv(MOVE_SELF); + do_conv(UNMOUNT); + do_conv(Q_OVERFLOW); +#undef do_conv +#define do_conv(flag) conv |= (mask & IN_ ## flag) ? FS_IN_ ## flag : 0 + do_conv(IGNORED); + /* do_conv(ISDIR); */ + /* do_conv(ONESHOT); */ +#undef do_conv + + return conv; +} + +static void aufs_inotify(struct inotify_watch *watch, u32 wd __maybe_unused, + u32 mask, u32 cookie __maybe_unused, + const char *h_child_name, struct inode *h_child_inode) +{ + struct au_hnotify *hnotify; + struct qstr h_child_qstr = { + .name = h_child_name + }; + + /* if IN_UNMOUNT happens, there must be another bug */ + AuDebugOn(mask & IN_UNMOUNT); + if (mask & (IN_IGNORED | IN_UNMOUNT)) { + put_inotify_watch(watch); + return; + } + +#ifdef AuDbgHnotify + au_debug(1); + if (1 || !h_child_name || strcmp(h_child_name, AUFS_XINO_FNAME)) { + AuDbg("i%lu, wd %d, mask 0x%x %s, cookie 0x%x, hcname %s," + " hi%lu\n", + watch->inode->i_ino, wd, mask, in_name(mask), cookie, + h_child_name ? h_child_name : "", + h_child_inode ? h_child_inode->i_ino : 0); + WARN_ON(1); + } + au_debug(0); +#endif + + if (h_child_name) + h_child_qstr.len = strlen(h_child_name); + hnotify = container_of(watch, struct au_hnotify, hn_watch); + mask = au_hin_conv_mask(mask); + au_hnotify(watch->inode, hnotify, mask, &h_child_qstr, h_child_inode); +} + +static void aufs_inotify_destroy(struct inotify_watch *watch __maybe_unused) +{ + return; +} + +static struct inotify_operations aufs_inotify_ops = { + .handle_event = aufs_inotify, + .destroy_watch = aufs_inotify_destroy +}; + +/* ---------------------------------------------------------------------- */ + +static int __init au_hin_init(void) +{ + int err; + + err = 0; + au_hin_handle = inotify_init(&aufs_inotify_ops); + if (IS_ERR(au_hin_handle)) + err = PTR_ERR(au_hin_handle); + + AuTraceErr(err); + return err; +} + +static void au_hin_fin(void) +{ + inotify_destroy(au_hin_handle); +} + +const struct au_hnotify_op au_hnotify_op = { + .ctl = au_hin_ctl, + .alloc = au_hin_alloc, + .free = au_hin_free, + + .fin = au_hin_fin, + .init = au_hin_init +}; --- linux-2.6.35.orig/ubuntu/aufs/dynop.h +++ linux-2.6.35/ubuntu/aufs/dynop.h @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * dynamically customizable operations (for regular files only) + */ + +#ifndef __AUFS_DYNOP_H__ +#define __AUFS_DYNOP_H__ + +#ifdef __KERNEL__ + +#include +#include +#include +#include +#include "inode.h" + +enum {AuDy_AOP, AuDy_VMOP, AuDyLast}; + +struct au_dynop { + int dy_type; + union { + const void *dy_hop; + const struct address_space_operations *dy_haop; + const struct vm_operations_struct *dy_hvmop; + }; +}; + +struct au_dykey { + union { + struct list_head dk_list; + struct rcu_head dk_rcu; + }; + struct au_dynop dk_op; + + /* + * during I am in the branch local array, kref is gotten. when the + * branch is removed, kref is put. + */ + struct kref dk_kref; +}; + +/* stop unioning since their sizes are very different from each other */ +struct au_dyaop { + struct au_dykey da_key; + struct address_space_operations da_op; /* not const */ + int (*da_get_xip_mem)(struct address_space *, pgoff_t, int, + void **, unsigned long *); +}; + +struct au_dyvmop { + struct au_dykey dv_key; + struct vm_operations_struct dv_op; /* not const */ +}; + +/* ---------------------------------------------------------------------- */ + +/* dynop.c */ +struct au_branch; +void au_dy_put(struct au_dykey *key); +int au_dy_iaop(struct inode *inode, aufs_bindex_t bindex, + struct inode *h_inode); +void au_dy_arefresh(int do_dio); +const struct vm_operations_struct * +au_dy_vmop(struct file *file, struct au_branch *br, + const struct vm_operations_struct *h_vmop); + +void __init au_dy_init(void); +void au_dy_fin(void); + +/* ---------------------------------------------------------------------- */ + +/* + * Is it safe to replace a_ops during the inode/file is in operation? + * Yes, I hope so. + */ +static inline int au_dy_irefresh(struct inode *inode) +{ + int err; + aufs_bindex_t bstart; + struct inode *h_inode; + + err = 0; + if (S_ISREG(inode->i_mode)) { + bstart = au_ibstart(inode); + h_inode = au_h_iptr(inode, bstart); + err = au_dy_iaop(inode, bstart, h_inode); + } + return err; +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DYNOP_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/vdir.c +++ linux-2.6.35/ubuntu/aufs/vdir.c @@ -0,0 +1,884 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * virtual or vertical directory + */ + +#include +#include "aufs.h" + +static unsigned int calc_size(int nlen) +{ + return ALIGN(sizeof(struct au_vdir_de) + nlen, sizeof(ino_t)); +} + +static int set_deblk_end(union au_vdir_deblk_p *p, + union au_vdir_deblk_p *deblk_end) +{ + if (calc_size(0) <= deblk_end->deblk - p->deblk) { + p->de->de_str.len = 0; + /* smp_mb(); */ + return 0; + } + return -1; /* error */ +} + +/* returns true or false */ +static int is_deblk_end(union au_vdir_deblk_p *p, + union au_vdir_deblk_p *deblk_end) +{ + if (calc_size(0) <= deblk_end->deblk - p->deblk) + return !p->de->de_str.len; + return 1; +} + +static unsigned char *last_deblk(struct au_vdir *vdir) +{ + return vdir->vd_deblk[vdir->vd_nblk - 1]; +} + +/* ---------------------------------------------------------------------- */ + +/* estimate the apropriate size for name hash table */ +unsigned int au_rdhash_est(loff_t sz) +{ + unsigned int n; + + n = UINT_MAX; + sz >>= 10; + if (sz < n) + n = sz; + if (sz < AUFS_RDHASH_DEF) + n = AUFS_RDHASH_DEF; + /* pr_info("n %u\n", n); */ + return n; +} + +/* + * the allocated memory has to be freed by + * au_nhash_wh_free() or au_nhash_de_free(). + */ +int au_nhash_alloc(struct au_nhash *nhash, unsigned int num_hash, gfp_t gfp) +{ + struct hlist_head *head; + unsigned int u; + + head = kmalloc(sizeof(*nhash->nh_head) * num_hash, gfp); + if (head) { + nhash->nh_num = num_hash; + nhash->nh_head = head; + for (u = 0; u < num_hash; u++) + INIT_HLIST_HEAD(head++); + return 0; /* success */ + } + + return -ENOMEM; +} + +static void nhash_count(struct hlist_head *head) +{ +#if 0 + unsigned long n; + struct hlist_node *pos; + + n = 0; + hlist_for_each(pos, head) + n++; + pr_info("%lu\n", n); +#endif +} + +static void au_nhash_wh_do_free(struct hlist_head *head) +{ + struct au_vdir_wh *tpos; + struct hlist_node *pos, *node; + + hlist_for_each_entry_safe(tpos, pos, node, head, wh_hash) { + /* hlist_del(pos); */ + kfree(tpos); + } +} + +static void au_nhash_de_do_free(struct hlist_head *head) +{ + struct au_vdir_dehstr *tpos; + struct hlist_node *pos, *node; + + hlist_for_each_entry_safe(tpos, pos, node, head, hash) { + /* hlist_del(pos); */ + au_cache_free_vdir_dehstr(tpos); + } +} + +static void au_nhash_do_free(struct au_nhash *nhash, + void (*free)(struct hlist_head *head)) +{ + unsigned int n; + struct hlist_head *head; + + n = nhash->nh_num; + if (!n) + return; + + head = nhash->nh_head; + while (n-- > 0) { + nhash_count(head); + free(head++); + } + kfree(nhash->nh_head); +} + +void au_nhash_wh_free(struct au_nhash *whlist) +{ + au_nhash_do_free(whlist, au_nhash_wh_do_free); +} + +static void au_nhash_de_free(struct au_nhash *delist) +{ + au_nhash_do_free(delist, au_nhash_de_do_free); +} + +/* ---------------------------------------------------------------------- */ + +int au_nhash_test_longer_wh(struct au_nhash *whlist, aufs_bindex_t btgt, + int limit) +{ + int num; + unsigned int u, n; + struct hlist_head *head; + struct au_vdir_wh *tpos; + struct hlist_node *pos; + + num = 0; + n = whlist->nh_num; + head = whlist->nh_head; + for (u = 0; u < n; u++, head++) + hlist_for_each_entry(tpos, pos, head, wh_hash) + if (tpos->wh_bindex == btgt && ++num > limit) + return 1; + return 0; +} + +static struct hlist_head *au_name_hash(struct au_nhash *nhash, + unsigned char *name, + unsigned int len) +{ + unsigned int v; + /* const unsigned int magic_bit = 12; */ + + AuDebugOn(!nhash->nh_num || !nhash->nh_head); + + v = 0; + while (len--) + v += *name++; + /* v = hash_long(v, magic_bit); */ + v %= nhash->nh_num; + return nhash->nh_head + v; +} + +static int au_nhash_test_name(struct au_vdir_destr *str, const char *name, + int nlen) +{ + return str->len == nlen && !memcmp(str->name, name, nlen); +} + +/* returns found or not */ +int au_nhash_test_known_wh(struct au_nhash *whlist, char *name, int nlen) +{ + struct hlist_head *head; + struct au_vdir_wh *tpos; + struct hlist_node *pos; + struct au_vdir_destr *str; + + head = au_name_hash(whlist, name, nlen); + hlist_for_each_entry(tpos, pos, head, wh_hash) { + str = &tpos->wh_str; + AuDbg("%.*s\n", str->len, str->name); + if (au_nhash_test_name(str, name, nlen)) + return 1; + } + return 0; +} + +/* returns found(true) or not */ +static int test_known(struct au_nhash *delist, char *name, int nlen) +{ + struct hlist_head *head; + struct au_vdir_dehstr *tpos; + struct hlist_node *pos; + struct au_vdir_destr *str; + + head = au_name_hash(delist, name, nlen); + hlist_for_each_entry(tpos, pos, head, hash) { + str = tpos->str; + AuDbg("%.*s\n", str->len, str->name); + if (au_nhash_test_name(str, name, nlen)) + return 1; + } + return 0; +} + +static void au_shwh_init_wh(struct au_vdir_wh *wh, ino_t ino, + unsigned char d_type) +{ +#ifdef CONFIG_AUFS_SHWH + wh->wh_ino = ino; + wh->wh_type = d_type; +#endif +} + +/* ---------------------------------------------------------------------- */ + +int au_nhash_append_wh(struct au_nhash *whlist, char *name, int nlen, ino_t ino, + unsigned int d_type, aufs_bindex_t bindex, + unsigned char shwh) +{ + int err; + struct au_vdir_destr *str; + struct au_vdir_wh *wh; + + AuDbg("%.*s\n", nlen, name); + AuDebugOn(!whlist->nh_num || !whlist->nh_head); + + err = -ENOMEM; + wh = kmalloc(sizeof(*wh) + nlen, GFP_NOFS); + if (unlikely(!wh)) + goto out; + + err = 0; + wh->wh_bindex = bindex; + if (shwh) + au_shwh_init_wh(wh, ino, d_type); + str = &wh->wh_str; + str->len = nlen; + memcpy(str->name, name, nlen); + hlist_add_head(&wh->wh_hash, au_name_hash(whlist, name, nlen)); + /* smp_mb(); */ + + out: + return err; +} + +static int append_deblk(struct au_vdir *vdir) +{ + int err; + unsigned long ul; + const unsigned int deblk_sz = vdir->vd_deblk_sz; + union au_vdir_deblk_p p, deblk_end; + unsigned char **o; + + err = -ENOMEM; + o = krealloc(vdir->vd_deblk, sizeof(*o) * (vdir->vd_nblk + 1), + GFP_NOFS); + if (unlikely(!o)) + goto out; + + vdir->vd_deblk = o; + p.deblk = kmalloc(deblk_sz, GFP_NOFS); + if (p.deblk) { + ul = vdir->vd_nblk++; + vdir->vd_deblk[ul] = p.deblk; + vdir->vd_last.ul = ul; + vdir->vd_last.p.deblk = p.deblk; + deblk_end.deblk = p.deblk + deblk_sz; + err = set_deblk_end(&p, &deblk_end); + } + + out: + return err; +} + +static int append_de(struct au_vdir *vdir, char *name, int nlen, ino_t ino, + unsigned int d_type, struct au_nhash *delist) +{ + int err; + unsigned int sz; + const unsigned int deblk_sz = vdir->vd_deblk_sz; + union au_vdir_deblk_p p, *room, deblk_end; + struct au_vdir_dehstr *dehstr; + + p.deblk = last_deblk(vdir); + deblk_end.deblk = p.deblk + deblk_sz; + room = &vdir->vd_last.p; + AuDebugOn(room->deblk < p.deblk || deblk_end.deblk <= room->deblk + || !is_deblk_end(room, &deblk_end)); + + sz = calc_size(nlen); + if (unlikely(sz > deblk_end.deblk - room->deblk)) { + err = append_deblk(vdir); + if (unlikely(err)) + goto out; + + p.deblk = last_deblk(vdir); + deblk_end.deblk = p.deblk + deblk_sz; + /* smp_mb(); */ + AuDebugOn(room->deblk != p.deblk); + } + + err = -ENOMEM; + dehstr = au_cache_alloc_vdir_dehstr(); + if (unlikely(!dehstr)) + goto out; + + dehstr->str = &room->de->de_str; + hlist_add_head(&dehstr->hash, au_name_hash(delist, name, nlen)); + room->de->de_ino = ino; + room->de->de_type = d_type; + room->de->de_str.len = nlen; + memcpy(room->de->de_str.name, name, nlen); + + err = 0; + room->deblk += sz; + if (unlikely(set_deblk_end(room, &deblk_end))) + err = append_deblk(vdir); + /* smp_mb(); */ + + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +void au_vdir_free(struct au_vdir *vdir) +{ + unsigned char **deblk; + + deblk = vdir->vd_deblk; + while (vdir->vd_nblk--) + kfree(*deblk++); + kfree(vdir->vd_deblk); + au_cache_free_vdir(vdir); +} + +static struct au_vdir *alloc_vdir(struct file *file) +{ + struct au_vdir *vdir; + struct super_block *sb; + int err; + + sb = file->f_dentry->d_sb; + SiMustAnyLock(sb); + + err = -ENOMEM; + vdir = au_cache_alloc_vdir(); + if (unlikely(!vdir)) + goto out; + + vdir->vd_deblk = kzalloc(sizeof(*vdir->vd_deblk), GFP_NOFS); + if (unlikely(!vdir->vd_deblk)) + goto out_free; + + vdir->vd_deblk_sz = au_sbi(sb)->si_rdblk; + if (!vdir->vd_deblk_sz) { + /* estimate the apropriate size for deblk */ + vdir->vd_deblk_sz = au_dir_size(file, /*dentry*/NULL); + /* pr_info("vd_deblk_sz %u\n", vdir->vd_deblk_sz); */ + } + vdir->vd_nblk = 0; + vdir->vd_version = 0; + vdir->vd_jiffy = 0; + err = append_deblk(vdir); + if (!err) + return vdir; /* success */ + + kfree(vdir->vd_deblk); + + out_free: + au_cache_free_vdir(vdir); + out: + vdir = ERR_PTR(err); + return vdir; +} + +static int reinit_vdir(struct au_vdir *vdir) +{ + int err; + union au_vdir_deblk_p p, deblk_end; + + while (vdir->vd_nblk > 1) { + kfree(vdir->vd_deblk[vdir->vd_nblk - 1]); + /* vdir->vd_deblk[vdir->vd_nblk - 1] = NULL; */ + vdir->vd_nblk--; + } + p.deblk = vdir->vd_deblk[0]; + deblk_end.deblk = p.deblk + vdir->vd_deblk_sz; + err = set_deblk_end(&p, &deblk_end); + /* keep vd_dblk_sz */ + vdir->vd_last.ul = 0; + vdir->vd_last.p.deblk = vdir->vd_deblk[0]; + vdir->vd_version = 0; + vdir->vd_jiffy = 0; + /* smp_mb(); */ + return err; +} + +/* ---------------------------------------------------------------------- */ + +#define AuFillVdir_CALLED 1 +#define AuFillVdir_WHABLE (1 << 1) +#define AuFillVdir_SHWH (1 << 2) +#define au_ftest_fillvdir(flags, name) ((flags) & AuFillVdir_##name) +#define au_fset_fillvdir(flags, name) { (flags) |= AuFillVdir_##name; } +#define au_fclr_fillvdir(flags, name) { (flags) &= ~AuFillVdir_##name; } + +#ifndef CONFIG_AUFS_SHWH +#undef AuFillVdir_SHWH +#define AuFillVdir_SHWH 0 +#endif + +struct fillvdir_arg { + struct file *file; + struct au_vdir *vdir; + struct au_nhash delist; + struct au_nhash whlist; + aufs_bindex_t bindex; + unsigned int flags; + int err; +}; + +static int fillvdir(void *__arg, const char *__name, int nlen, + loff_t offset __maybe_unused, u64 h_ino, + unsigned int d_type) +{ + struct fillvdir_arg *arg = __arg; + char *name = (void *)__name; + struct super_block *sb; + ino_t ino; + const unsigned char shwh = !!au_ftest_fillvdir(arg->flags, SHWH); + + arg->err = 0; + sb = arg->file->f_dentry->d_sb; + au_fset_fillvdir(arg->flags, CALLED); + /* smp_mb(); */ + if (nlen <= AUFS_WH_PFX_LEN + || memcmp(name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) { + if (test_known(&arg->delist, name, nlen) + || au_nhash_test_known_wh(&arg->whlist, name, nlen)) + goto out; /* already exists or whiteouted */ + + sb = arg->file->f_dentry->d_sb; + arg->err = au_ino(sb, arg->bindex, h_ino, d_type, &ino); + if (!arg->err) { + if (unlikely(nlen > AUFS_MAX_NAMELEN)) + d_type = DT_UNKNOWN; + arg->err = append_de(arg->vdir, name, nlen, ino, + d_type, &arg->delist); + } + } else if (au_ftest_fillvdir(arg->flags, WHABLE)) { + name += AUFS_WH_PFX_LEN; + nlen -= AUFS_WH_PFX_LEN; + if (au_nhash_test_known_wh(&arg->whlist, name, nlen)) + goto out; /* already whiteouted */ + + if (shwh) + arg->err = au_wh_ino(sb, arg->bindex, h_ino, d_type, + &ino); + if (!arg->err) { + if (nlen <= AUFS_MAX_NAMELEN + AUFS_WH_PFX_LEN) + d_type = DT_UNKNOWN; + arg->err = au_nhash_append_wh + (&arg->whlist, name, nlen, ino, d_type, + arg->bindex, shwh); + } + } + + out: + if (!arg->err) + arg->vdir->vd_jiffy = jiffies; + /* smp_mb(); */ + AuTraceErr(arg->err); + return arg->err; +} + +static int au_handle_shwh(struct super_block *sb, struct au_vdir *vdir, + struct au_nhash *whlist, struct au_nhash *delist) +{ +#ifdef CONFIG_AUFS_SHWH + int err; + unsigned int nh, u; + struct hlist_head *head; + struct au_vdir_wh *tpos; + struct hlist_node *pos, *n; + char *p, *o; + struct au_vdir_destr *destr; + + AuDebugOn(!au_opt_test(au_mntflags(sb), SHWH)); + + err = -ENOMEM; + o = p = __getname_gfp(GFP_NOFS); + if (unlikely(!p)) + goto out; + + err = 0; + nh = whlist->nh_num; + memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN); + p += AUFS_WH_PFX_LEN; + for (u = 0; u < nh; u++) { + head = whlist->nh_head + u; + hlist_for_each_entry_safe(tpos, pos, n, head, wh_hash) { + destr = &tpos->wh_str; + memcpy(p, destr->name, destr->len); + err = append_de(vdir, o, destr->len + AUFS_WH_PFX_LEN, + tpos->wh_ino, tpos->wh_type, delist); + if (unlikely(err)) + break; + } + } + + __putname(o); + + out: + AuTraceErr(err); + return err; +#else + return 0; +#endif +} + +static int au_do_read_vdir(struct fillvdir_arg *arg) +{ + int err; + unsigned int rdhash; + loff_t offset; + aufs_bindex_t bend, bindex, bstart; + unsigned char shwh; + struct file *hf, *file; + struct super_block *sb; + + file = arg->file; + sb = file->f_dentry->d_sb; + SiMustAnyLock(sb); + + rdhash = au_sbi(sb)->si_rdhash; + if (!rdhash) + rdhash = au_rdhash_est(au_dir_size(file, /*dentry*/NULL)); + err = au_nhash_alloc(&arg->delist, rdhash, GFP_NOFS); + if (unlikely(err)) + goto out; + err = au_nhash_alloc(&arg->whlist, rdhash, GFP_NOFS); + if (unlikely(err)) + goto out_delist; + + err = 0; + arg->flags = 0; + shwh = 0; + if (au_opt_test(au_mntflags(sb), SHWH)) { + shwh = 1; + au_fset_fillvdir(arg->flags, SHWH); + } + bstart = au_fbstart(file); + bend = au_fbend_dir(file); + for (bindex = bstart; !err && bindex <= bend; bindex++) { + hf = au_hf_dir(file, bindex); + if (!hf) + continue; + + offset = vfsub_llseek(hf, 0, SEEK_SET); + err = offset; + if (unlikely(offset)) + break; + + arg->bindex = bindex; + au_fclr_fillvdir(arg->flags, WHABLE); + if (shwh + || (bindex != bend + && au_br_whable(au_sbr_perm(sb, bindex)))) + au_fset_fillvdir(arg->flags, WHABLE); + do { + arg->err = 0; + au_fclr_fillvdir(arg->flags, CALLED); + /* smp_mb(); */ + err = vfsub_readdir(hf, fillvdir, arg); + if (err >= 0) + err = arg->err; + } while (!err && au_ftest_fillvdir(arg->flags, CALLED)); + } + + if (!err && shwh) + err = au_handle_shwh(sb, arg->vdir, &arg->whlist, &arg->delist); + + au_nhash_wh_free(&arg->whlist); + + out_delist: + au_nhash_de_free(&arg->delist); + out: + return err; +} + +static int read_vdir(struct file *file, int may_read) +{ + int err; + unsigned long expire; + unsigned char do_read; + struct fillvdir_arg arg; + struct inode *inode; + struct au_vdir *vdir, *allocated; + + err = 0; + inode = file->f_dentry->d_inode; + IMustLock(inode); + SiMustAnyLock(inode->i_sb); + + allocated = NULL; + do_read = 0; + expire = au_sbi(inode->i_sb)->si_rdcache; + vdir = au_ivdir(inode); + if (!vdir) { + do_read = 1; + vdir = alloc_vdir(file); + err = PTR_ERR(vdir); + if (IS_ERR(vdir)) + goto out; + err = 0; + allocated = vdir; + } else if (may_read + && (inode->i_version != vdir->vd_version + || time_after(jiffies, vdir->vd_jiffy + expire))) { + do_read = 1; + err = reinit_vdir(vdir); + if (unlikely(err)) + goto out; + } + + if (!do_read) + return 0; /* success */ + + arg.file = file; + arg.vdir = vdir; + err = au_do_read_vdir(&arg); + if (!err) { + /* file->f_pos = 0; */ + vdir->vd_version = inode->i_version; + vdir->vd_last.ul = 0; + vdir->vd_last.p.deblk = vdir->vd_deblk[0]; + if (allocated) + au_set_ivdir(inode, allocated); + } else if (allocated) + au_vdir_free(allocated); + + out: + return err; +} + +static int copy_vdir(struct au_vdir *tgt, struct au_vdir *src) +{ + int err, rerr; + unsigned long ul, n; + const unsigned int deblk_sz = src->vd_deblk_sz; + + AuDebugOn(tgt->vd_nblk != 1); + + err = -ENOMEM; + if (tgt->vd_nblk < src->vd_nblk) { + unsigned char **p; + + p = krealloc(tgt->vd_deblk, sizeof(*p) * src->vd_nblk, + GFP_NOFS); + if (unlikely(!p)) + goto out; + tgt->vd_deblk = p; + } + + if (tgt->vd_deblk_sz != deblk_sz) { + unsigned char *p; + + tgt->vd_deblk_sz = deblk_sz; + p = krealloc(tgt->vd_deblk[0], deblk_sz, GFP_NOFS); + if (unlikely(!p)) + goto out; + tgt->vd_deblk[0] = p; + } + memcpy(tgt->vd_deblk[0], src->vd_deblk[0], deblk_sz); + tgt->vd_version = src->vd_version; + tgt->vd_jiffy = src->vd_jiffy; + + n = src->vd_nblk; + for (ul = 1; ul < n; ul++) { + tgt->vd_deblk[ul] = kmemdup(src->vd_deblk[ul], deblk_sz, + GFP_NOFS); + if (unlikely(!tgt->vd_deblk[ul])) + goto out; + tgt->vd_nblk++; + } + tgt->vd_nblk = n; + tgt->vd_last.ul = tgt->vd_last.ul; + tgt->vd_last.p.deblk = tgt->vd_deblk[tgt->vd_last.ul]; + tgt->vd_last.p.deblk += src->vd_last.p.deblk + - src->vd_deblk[src->vd_last.ul]; + /* smp_mb(); */ + return 0; /* success */ + + out: + rerr = reinit_vdir(tgt); + BUG_ON(rerr); + return err; +} + +int au_vdir_init(struct file *file) +{ + int err; + struct inode *inode; + struct au_vdir *vdir_cache, *allocated; + + err = read_vdir(file, !file->f_pos); + if (unlikely(err)) + goto out; + + allocated = NULL; + vdir_cache = au_fvdir_cache(file); + if (!vdir_cache) { + vdir_cache = alloc_vdir(file); + err = PTR_ERR(vdir_cache); + if (IS_ERR(vdir_cache)) + goto out; + allocated = vdir_cache; + } else if (!file->f_pos && vdir_cache->vd_version != file->f_version) { + err = reinit_vdir(vdir_cache); + if (unlikely(err)) + goto out; + } else + return 0; /* success */ + + inode = file->f_dentry->d_inode; + err = copy_vdir(vdir_cache, au_ivdir(inode)); + if (!err) { + file->f_version = inode->i_version; + if (allocated) + au_set_fvdir_cache(file, allocated); + } else if (allocated) + au_vdir_free(allocated); + + out: + return err; +} + +static loff_t calc_offset(struct au_vdir *vdir) +{ + loff_t offset; + union au_vdir_deblk_p p; + + p.deblk = vdir->vd_deblk[vdir->vd_last.ul]; + offset = vdir->vd_last.p.deblk - p.deblk; + offset += vdir->vd_deblk_sz * vdir->vd_last.ul; + return offset; +} + +/* returns true or false */ +static int seek_vdir(struct file *file) +{ + int valid; + unsigned int deblk_sz; + unsigned long ul, n; + loff_t offset; + union au_vdir_deblk_p p, deblk_end; + struct au_vdir *vdir_cache; + + valid = 1; + vdir_cache = au_fvdir_cache(file); + offset = calc_offset(vdir_cache); + AuDbg("offset %lld\n", offset); + if (file->f_pos == offset) + goto out; + + vdir_cache->vd_last.ul = 0; + vdir_cache->vd_last.p.deblk = vdir_cache->vd_deblk[0]; + if (!file->f_pos) + goto out; + + valid = 0; + deblk_sz = vdir_cache->vd_deblk_sz; + ul = div64_u64(file->f_pos, deblk_sz); + AuDbg("ul %lu\n", ul); + if (ul >= vdir_cache->vd_nblk) + goto out; + + n = vdir_cache->vd_nblk; + for (; ul < n; ul++) { + p.deblk = vdir_cache->vd_deblk[ul]; + deblk_end.deblk = p.deblk + deblk_sz; + offset = ul; + offset *= deblk_sz; + while (!is_deblk_end(&p, &deblk_end) && offset < file->f_pos) { + unsigned int l; + + l = calc_size(p.de->de_str.len); + offset += l; + p.deblk += l; + } + if (!is_deblk_end(&p, &deblk_end)) { + valid = 1; + vdir_cache->vd_last.ul = ul; + vdir_cache->vd_last.p = p; + break; + } + } + + out: + /* smp_mb(); */ + AuTraceErr(!valid); + return valid; +} + +int au_vdir_fill_de(struct file *file, void *dirent, filldir_t filldir) +{ + int err; + unsigned int l, deblk_sz; + union au_vdir_deblk_p deblk_end; + struct au_vdir *vdir_cache; + struct au_vdir_de *de; + + vdir_cache = au_fvdir_cache(file); + if (!seek_vdir(file)) + return 0; + + deblk_sz = vdir_cache->vd_deblk_sz; + while (1) { + deblk_end.deblk = vdir_cache->vd_deblk[vdir_cache->vd_last.ul]; + deblk_end.deblk += deblk_sz; + while (!is_deblk_end(&vdir_cache->vd_last.p, &deblk_end)) { + de = vdir_cache->vd_last.p.de; + AuDbg("%.*s, off%lld, i%lu, dt%d\n", + de->de_str.len, de->de_str.name, file->f_pos, + (unsigned long)de->de_ino, de->de_type); + err = filldir(dirent, de->de_str.name, de->de_str.len, + file->f_pos, de->de_ino, de->de_type); + if (unlikely(err)) { + AuTraceErr(err); + /* todo: ignore the error caused by udba? */ + /* return err; */ + return 0; + } + + l = calc_size(de->de_str.len); + vdir_cache->vd_last.p.deblk += l; + file->f_pos += l; + } + if (vdir_cache->vd_last.ul < vdir_cache->vd_nblk - 1) { + vdir_cache->vd_last.ul++; + vdir_cache->vd_last.p.deblk + = vdir_cache->vd_deblk[vdir_cache->vd_last.ul]; + file->f_pos = deblk_sz * vdir_cache->vd_last.ul; + continue; + } + break; + } + + /* smp_mb(); */ + return 0; +} --- linux-2.6.35.orig/ubuntu/aufs/opts.c +++ linux-2.6.35/ubuntu/aufs/opts.c @@ -0,0 +1,1585 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * mount options/flags + */ + +#include +#include +#include /* a distribution requires */ +#include +#include "aufs.h" + +/* ---------------------------------------------------------------------- */ + +enum { + Opt_br, + Opt_add, Opt_del, Opt_mod, Opt_reorder, Opt_append, Opt_prepend, + Opt_idel, Opt_imod, Opt_ireorder, + Opt_dirwh, Opt_rdcache, Opt_rdblk, Opt_rdhash, Opt_rendir, + Opt_rdblk_def, Opt_rdhash_def, + Opt_xino, Opt_zxino, Opt_noxino, + Opt_trunc_xino, Opt_trunc_xino_v, Opt_notrunc_xino, + Opt_trunc_xino_path, Opt_itrunc_xino, + Opt_trunc_xib, Opt_notrunc_xib, + Opt_shwh, Opt_noshwh, + Opt_plink, Opt_noplink, Opt_list_plink, + Opt_udba, + Opt_dio, Opt_nodio, + /* Opt_lock, Opt_unlock, */ + Opt_cmd, Opt_cmd_args, + Opt_diropq_a, Opt_diropq_w, + Opt_warn_perm, Opt_nowarn_perm, + Opt_wbr_copyup, Opt_wbr_create, + Opt_refrof, Opt_norefrof, + Opt_verbose, Opt_noverbose, + Opt_sum, Opt_nosum, Opt_wsum, + Opt_tail, Opt_ignore, Opt_ignore_silent, Opt_err +}; + +static match_table_t options = { + {Opt_br, "br=%s"}, + {Opt_br, "br:%s"}, + + {Opt_add, "add=%d:%s"}, + {Opt_add, "add:%d:%s"}, + {Opt_add, "ins=%d:%s"}, + {Opt_add, "ins:%d:%s"}, + {Opt_append, "append=%s"}, + {Opt_append, "append:%s"}, + {Opt_prepend, "prepend=%s"}, + {Opt_prepend, "prepend:%s"}, + + {Opt_del, "del=%s"}, + {Opt_del, "del:%s"}, + /* {Opt_idel, "idel:%d"}, */ + {Opt_mod, "mod=%s"}, + {Opt_mod, "mod:%s"}, + /* {Opt_imod, "imod:%d:%s"}, */ + + {Opt_dirwh, "dirwh=%d"}, + + {Opt_xino, "xino=%s"}, + {Opt_noxino, "noxino"}, + {Opt_trunc_xino, "trunc_xino"}, + {Opt_trunc_xino_v, "trunc_xino_v=%d:%d"}, + {Opt_notrunc_xino, "notrunc_xino"}, + {Opt_trunc_xino_path, "trunc_xino=%s"}, + {Opt_itrunc_xino, "itrunc_xino=%d"}, + /* {Opt_zxino, "zxino=%s"}, */ + {Opt_trunc_xib, "trunc_xib"}, + {Opt_notrunc_xib, "notrunc_xib"}, + + {Opt_plink, "plink"}, + {Opt_noplink, "noplink"}, +#ifdef CONFIG_AUFS_DEBUG + {Opt_list_plink, "list_plink"}, +#endif + + {Opt_udba, "udba=%s"}, + + {Opt_dio, "dio"}, + {Opt_nodio, "nodio"}, + + {Opt_diropq_a, "diropq=always"}, + {Opt_diropq_a, "diropq=a"}, + {Opt_diropq_w, "diropq=whiteouted"}, + {Opt_diropq_w, "diropq=w"}, + + {Opt_warn_perm, "warn_perm"}, + {Opt_nowarn_perm, "nowarn_perm"}, + + /* keep them temporary */ + {Opt_ignore_silent, "coo=%s"}, + {Opt_ignore_silent, "nodlgt"}, + {Opt_ignore_silent, "nodirperm1"}, + {Opt_ignore_silent, "clean_plink"}, + +#ifdef CONFIG_AUFS_SHWH + {Opt_shwh, "shwh"}, +#endif + {Opt_noshwh, "noshwh"}, + + {Opt_rendir, "rendir=%d"}, + + {Opt_refrof, "refrof"}, + {Opt_norefrof, "norefrof"}, + + {Opt_verbose, "verbose"}, + {Opt_verbose, "v"}, + {Opt_noverbose, "noverbose"}, + {Opt_noverbose, "quiet"}, + {Opt_noverbose, "q"}, + {Opt_noverbose, "silent"}, + + {Opt_sum, "sum"}, + {Opt_nosum, "nosum"}, + {Opt_wsum, "wsum"}, + + {Opt_rdcache, "rdcache=%d"}, + {Opt_rdblk, "rdblk=%d"}, + {Opt_rdblk_def, "rdblk=def"}, + {Opt_rdhash, "rdhash=%d"}, + {Opt_rdhash_def, "rdhash=def"}, + + {Opt_wbr_create, "create=%s"}, + {Opt_wbr_create, "create_policy=%s"}, + {Opt_wbr_copyup, "cpup=%s"}, + {Opt_wbr_copyup, "copyup=%s"}, + {Opt_wbr_copyup, "copyup_policy=%s"}, + + /* internal use for the scripts */ + {Opt_ignore_silent, "si=%s"}, + + {Opt_br, "dirs=%s"}, + {Opt_ignore, "debug=%d"}, + {Opt_ignore, "delete=whiteout"}, + {Opt_ignore, "delete=all"}, + {Opt_ignore, "imap=%s"}, + + /* temporary workaround, due to old mount(8)? */ + {Opt_ignore_silent, "relatime"}, + + {Opt_err, NULL} +}; + +/* ---------------------------------------------------------------------- */ + +static const char *au_parser_pattern(int val, struct match_token *token) +{ + while (token->pattern) { + if (token->token == val) + return token->pattern; + token++; + } + BUG(); + return "??"; +} + +/* ---------------------------------------------------------------------- */ + +static match_table_t brperms = { + {AuBrPerm_RO, AUFS_BRPERM_RO}, + {AuBrPerm_RR, AUFS_BRPERM_RR}, + {AuBrPerm_RW, AUFS_BRPERM_RW}, + + {AuBrPerm_ROWH, AUFS_BRPERM_ROWH}, + {AuBrPerm_RRWH, AUFS_BRPERM_RRWH}, + {AuBrPerm_RWNoLinkWH, AUFS_BRPERM_RWNLWH}, + + {AuBrPerm_ROWH, "nfsro"}, + {AuBrPerm_RO, NULL} +}; + +static int noinline_for_stack br_perm_val(char *perm) +{ + int val; + substring_t args[MAX_OPT_ARGS]; + + val = match_token(perm, brperms, args); + return val; +} + +const char *au_optstr_br_perm(int brperm) +{ + return au_parser_pattern(brperm, (void *)brperms); +} + +/* ---------------------------------------------------------------------- */ + +static match_table_t udbalevel = { + {AuOpt_UDBA_REVAL, "reval"}, + {AuOpt_UDBA_NONE, "none"}, +#ifdef CONFIG_AUFS_HNOTIFY + {AuOpt_UDBA_HNOTIFY, "notify"}, /* abstraction */ +#ifdef CONFIG_AUFS_HFSNOTIFY + {AuOpt_UDBA_HNOTIFY, "fsnotify"}, +#else + {AuOpt_UDBA_HNOTIFY, "inotify"}, +#endif +#endif + {-1, NULL} +}; + +static void au_warn_inotify(int val, char *str) +{ +#ifdef CONFIG_AUFS_HINOTIFY + if (val == AuOpt_UDBA_HNOTIFY + && !strcmp(str, "inotify")) + AuWarn1("udba=inotify is deprecated, use udba=notify\n"); +#endif +} + +static int noinline_for_stack udba_val(char *str) +{ + int val; + substring_t args[MAX_OPT_ARGS]; + + val = match_token(str, udbalevel, args); + au_warn_inotify(val, str); + return val; +} + +const char *au_optstr_udba(int udba) +{ + return au_parser_pattern(udba, (void *)udbalevel); +} + +/* ---------------------------------------------------------------------- */ + +static match_table_t au_wbr_create_policy = { + {AuWbrCreate_TDP, "tdp"}, + {AuWbrCreate_TDP, "top-down-parent"}, + {AuWbrCreate_RR, "rr"}, + {AuWbrCreate_RR, "round-robin"}, + {AuWbrCreate_MFS, "mfs"}, + {AuWbrCreate_MFS, "most-free-space"}, + {AuWbrCreate_MFSV, "mfs:%d"}, + {AuWbrCreate_MFSV, "most-free-space:%d"}, + + {AuWbrCreate_MFSRR, "mfsrr:%d"}, + {AuWbrCreate_MFSRRV, "mfsrr:%d:%d"}, + {AuWbrCreate_PMFS, "pmfs"}, + {AuWbrCreate_PMFSV, "pmfs:%d"}, + + {-1, NULL} +}; + +/* + * cf. linux/lib/parser.c and cmdline.c + * gave up calling memparse() since it uses simple_strtoull() instead of + * strict_...(). + */ +static int noinline_for_stack +au_match_ull(substring_t *s, unsigned long long *result) +{ + int err; + unsigned int len; + char a[32]; + + err = -ERANGE; + len = s->to - s->from; + if (len + 1 <= sizeof(a)) { + memcpy(a, s->from, len); + a[len] = '\0'; + err = strict_strtoull(a, 0, result); + } + return err; +} + +static int au_wbr_mfs_wmark(substring_t *arg, char *str, + struct au_opt_wbr_create *create) +{ + int err; + unsigned long long ull; + + err = 0; + if (!au_match_ull(arg, &ull)) + create->mfsrr_watermark = ull; + else { + pr_err("bad integer in %s\n", str); + err = -EINVAL; + } + + return err; +} + +static int au_wbr_mfs_sec(substring_t *arg, char *str, + struct au_opt_wbr_create *create) +{ + int n, err; + + err = 0; + if (!match_int(arg, &n) && 0 <= n) + create->mfs_second = n; + else { + pr_err("bad integer in %s\n", str); + err = -EINVAL; + } + + return err; +} + +static int noinline_for_stack +au_wbr_create_val(char *str, struct au_opt_wbr_create *create) +{ + int err, e; + substring_t args[MAX_OPT_ARGS]; + + err = match_token(str, au_wbr_create_policy, args); + create->wbr_create = err; + switch (err) { + case AuWbrCreate_MFSRRV: + e = au_wbr_mfs_wmark(&args[0], str, create); + if (!e) + e = au_wbr_mfs_sec(&args[1], str, create); + if (unlikely(e)) + err = e; + break; + case AuWbrCreate_MFSRR: + e = au_wbr_mfs_wmark(&args[0], str, create); + if (unlikely(e)) { + err = e; + break; + } + /*FALLTHROUGH*/ + case AuWbrCreate_MFS: + case AuWbrCreate_PMFS: + create->mfs_second = AUFS_MFS_SECOND_DEF; + break; + case AuWbrCreate_MFSV: + case AuWbrCreate_PMFSV: + e = au_wbr_mfs_sec(&args[0], str, create); + if (unlikely(e)) + err = e; + break; + } + + return err; +} + +const char *au_optstr_wbr_create(int wbr_create) +{ + return au_parser_pattern(wbr_create, (void *)au_wbr_create_policy); +} + +static match_table_t au_wbr_copyup_policy = { + {AuWbrCopyup_TDP, "tdp"}, + {AuWbrCopyup_TDP, "top-down-parent"}, + {AuWbrCopyup_BUP, "bup"}, + {AuWbrCopyup_BUP, "bottom-up-parent"}, + {AuWbrCopyup_BU, "bu"}, + {AuWbrCopyup_BU, "bottom-up"}, + {-1, NULL} +}; + +static int noinline_for_stack au_wbr_copyup_val(char *str) +{ + substring_t args[MAX_OPT_ARGS]; + + return match_token(str, au_wbr_copyup_policy, args); +} + +const char *au_optstr_wbr_copyup(int wbr_copyup) +{ + return au_parser_pattern(wbr_copyup, (void *)au_wbr_copyup_policy); +} + +/* ---------------------------------------------------------------------- */ + +static const int lkup_dirflags = LOOKUP_FOLLOW | LOOKUP_DIRECTORY; + +static void dump_opts(struct au_opts *opts) +{ +#ifdef CONFIG_AUFS_DEBUG + /* reduce stack space */ + union { + struct au_opt_add *add; + struct au_opt_del *del; + struct au_opt_mod *mod; + struct au_opt_xino *xino; + struct au_opt_xino_itrunc *xino_itrunc; + struct au_opt_wbr_create *create; + } u; + struct au_opt *opt; + + opt = opts->opt; + while (opt->type != Opt_tail) { + switch (opt->type) { + case Opt_add: + u.add = &opt->add; + AuDbg("add {b%d, %s, 0x%x, %p}\n", + u.add->bindex, u.add->pathname, u.add->perm, + u.add->path.dentry); + break; + case Opt_del: + case Opt_idel: + u.del = &opt->del; + AuDbg("del {%s, %p}\n", + u.del->pathname, u.del->h_path.dentry); + break; + case Opt_mod: + case Opt_imod: + u.mod = &opt->mod; + AuDbg("mod {%s, 0x%x, %p}\n", + u.mod->path, u.mod->perm, u.mod->h_root); + break; + case Opt_append: + u.add = &opt->add; + AuDbg("append {b%d, %s, 0x%x, %p}\n", + u.add->bindex, u.add->pathname, u.add->perm, + u.add->path.dentry); + break; + case Opt_prepend: + u.add = &opt->add; + AuDbg("prepend {b%d, %s, 0x%x, %p}\n", + u.add->bindex, u.add->pathname, u.add->perm, + u.add->path.dentry); + break; + case Opt_dirwh: + AuDbg("dirwh %d\n", opt->dirwh); + break; + case Opt_rdcache: + AuDbg("rdcache %d\n", opt->rdcache); + break; + case Opt_rdblk: + AuDbg("rdblk %u\n", opt->rdblk); + break; + case Opt_rdblk_def: + AuDbg("rdblk_def\n"); + break; + case Opt_rdhash: + AuDbg("rdhash %u\n", opt->rdhash); + break; + case Opt_rdhash_def: + AuDbg("rdhash_def\n"); + break; + case Opt_xino: + u.xino = &opt->xino; + AuDbg("xino {%s %.*s}\n", + u.xino->path, + AuDLNPair(u.xino->file->f_dentry)); + break; + case Opt_trunc_xino: + AuLabel(trunc_xino); + break; + case Opt_notrunc_xino: + AuLabel(notrunc_xino); + break; + case Opt_trunc_xino_path: + case Opt_itrunc_xino: + u.xino_itrunc = &opt->xino_itrunc; + AuDbg("trunc_xino %d\n", u.xino_itrunc->bindex); + break; + + case Opt_noxino: + AuLabel(noxino); + break; + case Opt_trunc_xib: + AuLabel(trunc_xib); + break; + case Opt_notrunc_xib: + AuLabel(notrunc_xib); + break; + case Opt_shwh: + AuLabel(shwh); + break; + case Opt_noshwh: + AuLabel(noshwh); + break; + case Opt_plink: + AuLabel(plink); + break; + case Opt_noplink: + AuLabel(noplink); + break; + case Opt_list_plink: + AuLabel(list_plink); + break; + case Opt_udba: + AuDbg("udba %d, %s\n", + opt->udba, au_optstr_udba(opt->udba)); + break; + case Opt_dio: + AuLabel(dio); + break; + case Opt_nodio: + AuLabel(nodio); + break; + case Opt_diropq_a: + AuLabel(diropq_a); + break; + case Opt_diropq_w: + AuLabel(diropq_w); + break; + case Opt_warn_perm: + AuLabel(warn_perm); + break; + case Opt_nowarn_perm: + AuLabel(nowarn_perm); + break; + case Opt_refrof: + AuLabel(refrof); + break; + case Opt_norefrof: + AuLabel(norefrof); + break; + case Opt_verbose: + AuLabel(verbose); + break; + case Opt_noverbose: + AuLabel(noverbose); + break; + case Opt_sum: + AuLabel(sum); + break; + case Opt_nosum: + AuLabel(nosum); + break; + case Opt_wsum: + AuLabel(wsum); + break; + case Opt_wbr_create: + u.create = &opt->wbr_create; + AuDbg("create %d, %s\n", u.create->wbr_create, + au_optstr_wbr_create(u.create->wbr_create)); + switch (u.create->wbr_create) { + case AuWbrCreate_MFSV: + case AuWbrCreate_PMFSV: + AuDbg("%d sec\n", u.create->mfs_second); + break; + case AuWbrCreate_MFSRR: + AuDbg("%llu watermark\n", + u.create->mfsrr_watermark); + break; + case AuWbrCreate_MFSRRV: + AuDbg("%llu watermark, %d sec\n", + u.create->mfsrr_watermark, + u.create->mfs_second); + break; + } + break; + case Opt_wbr_copyup: + AuDbg("copyup %d, %s\n", opt->wbr_copyup, + au_optstr_wbr_copyup(opt->wbr_copyup)); + break; + default: + BUG(); + } + opt++; + } +#endif +} + +void au_opts_free(struct au_opts *opts) +{ + struct au_opt *opt; + + opt = opts->opt; + while (opt->type != Opt_tail) { + switch (opt->type) { + case Opt_add: + case Opt_append: + case Opt_prepend: + path_put(&opt->add.path); + break; + case Opt_del: + case Opt_idel: + path_put(&opt->del.h_path); + break; + case Opt_mod: + case Opt_imod: + dput(opt->mod.h_root); + break; + case Opt_xino: + fput(opt->xino.file); + break; + } + opt++; + } +} + +static int opt_add(struct au_opt *opt, char *opt_str, unsigned long sb_flags, + aufs_bindex_t bindex) +{ + int err; + struct au_opt_add *add = &opt->add; + char *p; + + add->bindex = bindex; + add->perm = AuBrPerm_Last; + add->pathname = opt_str; + p = strchr(opt_str, '='); + if (p) { + *p++ = 0; + if (*p) + add->perm = br_perm_val(p); + } + + err = vfsub_kern_path(add->pathname, lkup_dirflags, &add->path); + if (!err) { + if (!p) { + add->perm = AuBrPerm_RO; + if (au_test_fs_rr(add->path.dentry->d_sb)) + add->perm = AuBrPerm_RR; + else if (!bindex && !(sb_flags & MS_RDONLY)) + add->perm = AuBrPerm_RW; + } + opt->type = Opt_add; + goto out; + } + pr_err("lookup failed %s (%d)\n", add->pathname, err); + err = -EINVAL; + + out: + return err; +} + +static int au_opts_parse_del(struct au_opt_del *del, substring_t args[]) +{ + int err; + + del->pathname = args[0].from; + AuDbg("del path %s\n", del->pathname); + + err = vfsub_kern_path(del->pathname, lkup_dirflags, &del->h_path); + if (unlikely(err)) + pr_err("lookup failed %s (%d)\n", del->pathname, err); + + return err; +} + +#if 0 /* reserved for future use */ +static int au_opts_parse_idel(struct super_block *sb, aufs_bindex_t bindex, + struct au_opt_del *del, substring_t args[]) +{ + int err; + struct dentry *root; + + err = -EINVAL; + root = sb->s_root; + aufs_read_lock(root, AuLock_FLUSH); + if (bindex < 0 || au_sbend(sb) < bindex) { + pr_err("out of bounds, %d\n", bindex); + goto out; + } + + err = 0; + del->h_path.dentry = dget(au_h_dptr(root, bindex)); + del->h_path.mnt = mntget(au_sbr_mnt(sb, bindex)); + + out: + aufs_read_unlock(root, !AuLock_IR); + return err; +} +#endif + +static int noinline_for_stack +au_opts_parse_mod(struct au_opt_mod *mod, substring_t args[]) +{ + int err; + struct path path; + char *p; + + err = -EINVAL; + mod->path = args[0].from; + p = strchr(mod->path, '='); + if (unlikely(!p)) { + pr_err("no permssion %s\n", args[0].from); + goto out; + } + + *p++ = 0; + err = vfsub_kern_path(mod->path, lkup_dirflags, &path); + if (unlikely(err)) { + pr_err("lookup failed %s (%d)\n", mod->path, err); + goto out; + } + + mod->perm = br_perm_val(p); + AuDbg("mod path %s, perm 0x%x, %s\n", mod->path, mod->perm, p); + mod->h_root = dget(path.dentry); + path_put(&path); + + out: + return err; +} + +#if 0 /* reserved for future use */ +static int au_opts_parse_imod(struct super_block *sb, aufs_bindex_t bindex, + struct au_opt_mod *mod, substring_t args[]) +{ + int err; + struct dentry *root; + + err = -EINVAL; + root = sb->s_root; + aufs_read_lock(root, AuLock_FLUSH); + if (bindex < 0 || au_sbend(sb) < bindex) { + pr_err("out of bounds, %d\n", bindex); + goto out; + } + + err = 0; + mod->perm = br_perm_val(args[1].from); + AuDbg("mod path %s, perm 0x%x, %s\n", + mod->path, mod->perm, args[1].from); + mod->h_root = dget(au_h_dptr(root, bindex)); + + out: + aufs_read_unlock(root, !AuLock_IR); + return err; +} +#endif + +static int au_opts_parse_xino(struct super_block *sb, struct au_opt_xino *xino, + substring_t args[]) +{ + int err; + struct file *file; + + file = au_xino_create(sb, args[0].from, /*silent*/0); + err = PTR_ERR(file); + if (IS_ERR(file)) + goto out; + + err = -EINVAL; + if (unlikely(file->f_dentry->d_sb == sb)) { + fput(file); + pr_err("%s must be outside\n", args[0].from); + goto out; + } + + err = 0; + xino->file = file; + xino->path = args[0].from; + + out: + return err; +} + +static int noinline_for_stack +au_opts_parse_xino_itrunc_path(struct super_block *sb, + struct au_opt_xino_itrunc *xino_itrunc, + substring_t args[]) +{ + int err; + aufs_bindex_t bend, bindex; + struct path path; + struct dentry *root; + + err = vfsub_kern_path(args[0].from, lkup_dirflags, &path); + if (unlikely(err)) { + pr_err("lookup failed %s (%d)\n", args[0].from, err); + goto out; + } + + xino_itrunc->bindex = -1; + root = sb->s_root; + aufs_read_lock(root, AuLock_FLUSH); + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + if (au_h_dptr(root, bindex) == path.dentry) { + xino_itrunc->bindex = bindex; + break; + } + } + aufs_read_unlock(root, !AuLock_IR); + path_put(&path); + + if (unlikely(xino_itrunc->bindex < 0)) { + pr_err("no such branch %s\n", args[0].from); + err = -EINVAL; + } + + out: + return err; +} + +/* called without aufs lock */ +int au_opts_parse(struct super_block *sb, char *str, struct au_opts *opts) +{ + int err, n, token; + aufs_bindex_t bindex; + unsigned char skipped; + struct dentry *root; + struct au_opt *opt, *opt_tail; + char *opt_str; + /* reduce the stack space */ + union { + struct au_opt_xino_itrunc *xino_itrunc; + struct au_opt_wbr_create *create; + } u; + struct { + substring_t args[MAX_OPT_ARGS]; + } *a; + + err = -ENOMEM; + a = kmalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + root = sb->s_root; + err = 0; + bindex = 0; + opt = opts->opt; + opt_tail = opt + opts->max_opt - 1; + opt->type = Opt_tail; + while (!err && (opt_str = strsep(&str, ",")) && *opt_str) { + err = -EINVAL; + skipped = 0; + token = match_token(opt_str, options, a->args); + switch (token) { + case Opt_br: + err = 0; + while (!err && (opt_str = strsep(&a->args[0].from, ":")) + && *opt_str) { + err = opt_add(opt, opt_str, opts->sb_flags, + bindex++); + if (unlikely(!err && ++opt > opt_tail)) { + err = -E2BIG; + break; + } + opt->type = Opt_tail; + skipped = 1; + } + break; + case Opt_add: + if (unlikely(match_int(&a->args[0], &n))) { + pr_err("bad integer in %s\n", opt_str); + break; + } + bindex = n; + err = opt_add(opt, a->args[1].from, opts->sb_flags, + bindex); + if (!err) + opt->type = token; + break; + case Opt_append: + err = opt_add(opt, a->args[0].from, opts->sb_flags, + /*dummy bindex*/1); + if (!err) + opt->type = token; + break; + case Opt_prepend: + err = opt_add(opt, a->args[0].from, opts->sb_flags, + /*bindex*/0); + if (!err) + opt->type = token; + break; + case Opt_del: + err = au_opts_parse_del(&opt->del, a->args); + if (!err) + opt->type = token; + break; +#if 0 /* reserved for future use */ + case Opt_idel: + del->pathname = "(indexed)"; + if (unlikely(match_int(&args[0], &n))) { + pr_err("bad integer in %s\n", opt_str); + break; + } + err = au_opts_parse_idel(sb, n, &opt->del, a->args); + if (!err) + opt->type = token; + break; +#endif + case Opt_mod: + err = au_opts_parse_mod(&opt->mod, a->args); + if (!err) + opt->type = token; + break; +#ifdef IMOD /* reserved for future use */ + case Opt_imod: + u.mod->path = "(indexed)"; + if (unlikely(match_int(&a->args[0], &n))) { + pr_err("bad integer in %s\n", opt_str); + break; + } + err = au_opts_parse_imod(sb, n, &opt->mod, a->args); + if (!err) + opt->type = token; + break; +#endif + case Opt_xino: + err = au_opts_parse_xino(sb, &opt->xino, a->args); + if (!err) + opt->type = token; + break; + + case Opt_trunc_xino_path: + err = au_opts_parse_xino_itrunc_path + (sb, &opt->xino_itrunc, a->args); + if (!err) + opt->type = token; + break; + + case Opt_itrunc_xino: + u.xino_itrunc = &opt->xino_itrunc; + if (unlikely(match_int(&a->args[0], &n))) { + pr_err("bad integer in %s\n", opt_str); + break; + } + u.xino_itrunc->bindex = n; + aufs_read_lock(root, AuLock_FLUSH); + if (n < 0 || au_sbend(sb) < n) { + pr_err("out of bounds, %d\n", n); + aufs_read_unlock(root, !AuLock_IR); + break; + } + aufs_read_unlock(root, !AuLock_IR); + err = 0; + opt->type = token; + break; + + case Opt_dirwh: + if (unlikely(match_int(&a->args[0], &opt->dirwh))) + break; + err = 0; + opt->type = token; + break; + + case Opt_rdcache: + if (unlikely(match_int(&a->args[0], &opt->rdcache))) + break; + err = 0; + opt->type = token; + break; + case Opt_rdblk: + if (unlikely(match_int(&a->args[0], &n) + || n < 0 + || n > KMALLOC_MAX_SIZE)) { + pr_err("bad integer in %s\n", opt_str); + break; + } + if (unlikely(n && n < NAME_MAX)) { + pr_err("rdblk must be larger than %d\n", + NAME_MAX); + break; + } + opt->rdblk = n; + err = 0; + opt->type = token; + break; + case Opt_rdhash: + if (unlikely(match_int(&a->args[0], &n) + || n < 0 + || n * sizeof(struct hlist_head) + > KMALLOC_MAX_SIZE)) { + pr_err("bad integer in %s\n", opt_str); + break; + } + opt->rdhash = n; + err = 0; + opt->type = token; + break; + + case Opt_trunc_xino: + case Opt_notrunc_xino: + case Opt_noxino: + case Opt_trunc_xib: + case Opt_notrunc_xib: + case Opt_shwh: + case Opt_noshwh: + case Opt_plink: + case Opt_noplink: + case Opt_list_plink: + case Opt_dio: + case Opt_nodio: + case Opt_diropq_a: + case Opt_diropq_w: + case Opt_warn_perm: + case Opt_nowarn_perm: + case Opt_refrof: + case Opt_norefrof: + case Opt_verbose: + case Opt_noverbose: + case Opt_sum: + case Opt_nosum: + case Opt_wsum: + case Opt_rdblk_def: + case Opt_rdhash_def: + err = 0; + opt->type = token; + break; + + case Opt_udba: + opt->udba = udba_val(a->args[0].from); + if (opt->udba >= 0) { + err = 0; + opt->type = token; + } else + pr_err("wrong value, %s\n", opt_str); + break; + + case Opt_wbr_create: + u.create = &opt->wbr_create; + u.create->wbr_create + = au_wbr_create_val(a->args[0].from, u.create); + if (u.create->wbr_create >= 0) { + err = 0; + opt->type = token; + } else + pr_err("wrong value, %s\n", opt_str); + break; + case Opt_wbr_copyup: + opt->wbr_copyup = au_wbr_copyup_val(a->args[0].from); + if (opt->wbr_copyup >= 0) { + err = 0; + opt->type = token; + } else + pr_err("wrong value, %s\n", opt_str); + break; + + case Opt_ignore: + pr_warning("ignored %s\n", opt_str); + /*FALLTHROUGH*/ + case Opt_ignore_silent: + skipped = 1; + err = 0; + break; + case Opt_err: + pr_err("unknown option %s\n", opt_str); + break; + } + + if (!err && !skipped) { + if (unlikely(++opt > opt_tail)) { + err = -E2BIG; + opt--; + opt->type = Opt_tail; + break; + } + opt->type = Opt_tail; + } + } + + kfree(a); + dump_opts(opts); + if (unlikely(err)) + au_opts_free(opts); + + out: + return err; +} + +static int au_opt_wbr_create(struct super_block *sb, + struct au_opt_wbr_create *create) +{ + int err; + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + err = 1; /* handled */ + sbinfo = au_sbi(sb); + if (sbinfo->si_wbr_create_ops->fin) { + err = sbinfo->si_wbr_create_ops->fin(sb); + if (!err) + err = 1; + } + + sbinfo->si_wbr_create = create->wbr_create; + sbinfo->si_wbr_create_ops = au_wbr_create_ops + create->wbr_create; + switch (create->wbr_create) { + case AuWbrCreate_MFSRRV: + case AuWbrCreate_MFSRR: + sbinfo->si_wbr_mfs.mfsrr_watermark = create->mfsrr_watermark; + /*FALLTHROUGH*/ + case AuWbrCreate_MFS: + case AuWbrCreate_MFSV: + case AuWbrCreate_PMFS: + case AuWbrCreate_PMFSV: + sbinfo->si_wbr_mfs.mfs_expire = create->mfs_second * HZ; + break; + } + + if (sbinfo->si_wbr_create_ops->init) + sbinfo->si_wbr_create_ops->init(sb); /* ignore */ + + return err; +} + +/* + * returns, + * plus: processed without an error + * zero: unprocessed + */ +static int au_opt_simple(struct super_block *sb, struct au_opt *opt, + struct au_opts *opts) +{ + int err; + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + err = 1; /* handled */ + sbinfo = au_sbi(sb); + switch (opt->type) { + case Opt_udba: + sbinfo->si_mntflags &= ~AuOptMask_UDBA; + sbinfo->si_mntflags |= opt->udba; + opts->given_udba |= opt->udba; + break; + + case Opt_plink: + au_opt_set(sbinfo->si_mntflags, PLINK); + break; + case Opt_noplink: + if (au_opt_test(sbinfo->si_mntflags, PLINK)) + au_plink_put(sb); + au_opt_clr(sbinfo->si_mntflags, PLINK); + break; + case Opt_list_plink: + if (au_opt_test(sbinfo->si_mntflags, PLINK)) + au_plink_list(sb); + break; + + case Opt_dio: + au_opt_set(sbinfo->si_mntflags, DIO); + au_fset_opts(opts->flags, REFRESH_DYAOP); + break; + case Opt_nodio: + au_opt_clr(sbinfo->si_mntflags, DIO); + au_fset_opts(opts->flags, REFRESH_DYAOP); + break; + + case Opt_diropq_a: + au_opt_set(sbinfo->si_mntflags, ALWAYS_DIROPQ); + break; + case Opt_diropq_w: + au_opt_clr(sbinfo->si_mntflags, ALWAYS_DIROPQ); + break; + + case Opt_warn_perm: + au_opt_set(sbinfo->si_mntflags, WARN_PERM); + break; + case Opt_nowarn_perm: + au_opt_clr(sbinfo->si_mntflags, WARN_PERM); + break; + + case Opt_refrof: + au_opt_set(sbinfo->si_mntflags, REFROF); + break; + case Opt_norefrof: + au_opt_clr(sbinfo->si_mntflags, REFROF); + break; + + case Opt_verbose: + au_opt_set(sbinfo->si_mntflags, VERBOSE); + break; + case Opt_noverbose: + au_opt_clr(sbinfo->si_mntflags, VERBOSE); + break; + + case Opt_sum: + au_opt_set(sbinfo->si_mntflags, SUM); + break; + case Opt_wsum: + au_opt_clr(sbinfo->si_mntflags, SUM); + au_opt_set(sbinfo->si_mntflags, SUM_W); + case Opt_nosum: + au_opt_clr(sbinfo->si_mntflags, SUM); + au_opt_clr(sbinfo->si_mntflags, SUM_W); + break; + + case Opt_wbr_create: + err = au_opt_wbr_create(sb, &opt->wbr_create); + break; + case Opt_wbr_copyup: + sbinfo->si_wbr_copyup = opt->wbr_copyup; + sbinfo->si_wbr_copyup_ops = au_wbr_copyup_ops + opt->wbr_copyup; + break; + + case Opt_dirwh: + sbinfo->si_dirwh = opt->dirwh; + break; + + case Opt_rdcache: + sbinfo->si_rdcache = opt->rdcache * HZ; + break; + case Opt_rdblk: + sbinfo->si_rdblk = opt->rdblk; + break; + case Opt_rdblk_def: + sbinfo->si_rdblk = AUFS_RDBLK_DEF; + break; + case Opt_rdhash: + sbinfo->si_rdhash = opt->rdhash; + break; + case Opt_rdhash_def: + sbinfo->si_rdhash = AUFS_RDHASH_DEF; + break; + + case Opt_shwh: + au_opt_set(sbinfo->si_mntflags, SHWH); + break; + case Opt_noshwh: + au_opt_clr(sbinfo->si_mntflags, SHWH); + break; + + case Opt_trunc_xino: + au_opt_set(sbinfo->si_mntflags, TRUNC_XINO); + break; + case Opt_notrunc_xino: + au_opt_clr(sbinfo->si_mntflags, TRUNC_XINO); + break; + + case Opt_trunc_xino_path: + case Opt_itrunc_xino: + err = au_xino_trunc(sb, opt->xino_itrunc.bindex); + if (!err) + err = 1; + break; + + case Opt_trunc_xib: + au_fset_opts(opts->flags, TRUNC_XIB); + break; + case Opt_notrunc_xib: + au_fclr_opts(opts->flags, TRUNC_XIB); + break; + + default: + err = 0; + break; + } + + return err; +} + +/* + * returns tri-state. + * plus: processed without an error + * zero: unprocessed + * minus: error + */ +static int au_opt_br(struct super_block *sb, struct au_opt *opt, + struct au_opts *opts) +{ + int err, do_refresh; + + err = 0; + switch (opt->type) { + case Opt_append: + opt->add.bindex = au_sbend(sb) + 1; + if (opt->add.bindex < 0) + opt->add.bindex = 0; + goto add; + case Opt_prepend: + opt->add.bindex = 0; + add: + case Opt_add: + err = au_br_add(sb, &opt->add, + au_ftest_opts(opts->flags, REMOUNT)); + if (!err) { + err = 1; + au_fset_opts(opts->flags, REFRESH_DIR); + au_fset_opts(opts->flags, REFRESH_NONDIR); + } + break; + + case Opt_del: + case Opt_idel: + err = au_br_del(sb, &opt->del, + au_ftest_opts(opts->flags, REMOUNT)); + if (!err) { + err = 1; + au_fset_opts(opts->flags, TRUNC_XIB); + au_fset_opts(opts->flags, REFRESH_DIR); + au_fset_opts(opts->flags, REFRESH_NONDIR); + } + break; + + case Opt_mod: + case Opt_imod: + err = au_br_mod(sb, &opt->mod, + au_ftest_opts(opts->flags, REMOUNT), + &do_refresh); + if (!err) { + err = 1; + if (do_refresh) { + au_fset_opts(opts->flags, REFRESH_DIR); + au_fset_opts(opts->flags, REFRESH_NONDIR); + } + } + break; + } + + return err; +} + +static int au_opt_xino(struct super_block *sb, struct au_opt *opt, + struct au_opt_xino **opt_xino, + struct au_opts *opts) +{ + int err; + aufs_bindex_t bend, bindex; + struct dentry *root, *parent, *h_root; + + err = 0; + switch (opt->type) { + case Opt_xino: + err = au_xino_set(sb, &opt->xino, + !!au_ftest_opts(opts->flags, REMOUNT)); + if (unlikely(err)) + break; + + *opt_xino = &opt->xino; + au_xino_brid_set(sb, -1); + + /* safe d_parent access */ + parent = opt->xino.file->f_dentry->d_parent; + root = sb->s_root; + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + h_root = au_h_dptr(root, bindex); + if (h_root == parent) { + au_xino_brid_set(sb, au_sbr_id(sb, bindex)); + break; + } + } + break; + + case Opt_noxino: + au_xino_clr(sb); + au_xino_brid_set(sb, -1); + *opt_xino = (void *)-1; + break; + } + + return err; +} + +int au_opts_verify(struct super_block *sb, unsigned long sb_flags, + unsigned int pending) +{ + int err; + aufs_bindex_t bindex, bend; + unsigned char do_plink, skip, do_free; + struct au_branch *br; + struct au_wbr *wbr; + struct dentry *root; + struct inode *dir, *h_dir; + struct au_sbinfo *sbinfo; + struct au_hinode *hdir; + + SiMustAnyLock(sb); + + sbinfo = au_sbi(sb); + AuDebugOn(!(sbinfo->si_mntflags & AuOptMask_UDBA)); + + if (!(sb_flags & MS_RDONLY)) { + if (unlikely(!au_br_writable(au_sbr_perm(sb, 0)))) + pr_warning("first branch should be rw\n"); + if (unlikely(au_opt_test(sbinfo->si_mntflags, SHWH))) + pr_warning("shwh should be used with ro\n"); + } + + if (au_opt_test((sbinfo->si_mntflags | pending), UDBA_HNOTIFY) + && !au_opt_test(sbinfo->si_mntflags, XINO)) + pr_warning("udba=*notify requires xino\n"); + + err = 0; + root = sb->s_root; + dir = root->d_inode; + do_plink = !!au_opt_test(sbinfo->si_mntflags, PLINK); + bend = au_sbend(sb); + for (bindex = 0; !err && bindex <= bend; bindex++) { + skip = 0; + h_dir = au_h_iptr(dir, bindex); + br = au_sbr(sb, bindex); + do_free = 0; + + wbr = br->br_wbr; + if (wbr) + wbr_wh_read_lock(wbr); + + switch (br->br_perm) { + case AuBrPerm_RO: + case AuBrPerm_ROWH: + case AuBrPerm_RR: + case AuBrPerm_RRWH: + do_free = !!wbr; + skip = (!wbr + || (!wbr->wbr_whbase + && !wbr->wbr_plink + && !wbr->wbr_orph)); + break; + + case AuBrPerm_RWNoLinkWH: + /* skip = (!br->br_whbase && !br->br_orph); */ + skip = (!wbr || !wbr->wbr_whbase); + if (skip && wbr) { + if (do_plink) + skip = !!wbr->wbr_plink; + else + skip = !wbr->wbr_plink; + } + break; + + case AuBrPerm_RW: + /* skip = (br->br_whbase && br->br_ohph); */ + skip = (wbr && wbr->wbr_whbase); + if (skip) { + if (do_plink) + skip = !!wbr->wbr_plink; + else + skip = !wbr->wbr_plink; + } + break; + + default: + BUG(); + } + if (wbr) + wbr_wh_read_unlock(wbr); + + if (skip) + continue; + + hdir = au_hi(dir, bindex); + au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT); + if (wbr) + wbr_wh_write_lock(wbr); + err = au_wh_init(au_h_dptr(root, bindex), br, sb); + if (wbr) + wbr_wh_write_unlock(wbr); + au_hn_imtx_unlock(hdir); + + if (!err && do_free) { + kfree(wbr); + br->br_wbr = NULL; + } + } + + return err; +} + +int au_opts_mount(struct super_block *sb, struct au_opts *opts) +{ + int err; + unsigned int tmp; + aufs_bindex_t bend; + struct au_opt *opt; + struct au_opt_xino *opt_xino, xino; + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + err = 0; + opt_xino = NULL; + opt = opts->opt; + while (err >= 0 && opt->type != Opt_tail) + err = au_opt_simple(sb, opt++, opts); + if (err > 0) + err = 0; + else if (unlikely(err < 0)) + goto out; + + /* disable xino and udba temporary */ + sbinfo = au_sbi(sb); + tmp = sbinfo->si_mntflags; + au_opt_clr(sbinfo->si_mntflags, XINO); + au_opt_set_udba(sbinfo->si_mntflags, UDBA_REVAL); + + opt = opts->opt; + while (err >= 0 && opt->type != Opt_tail) + err = au_opt_br(sb, opt++, opts); + if (err > 0) + err = 0; + else if (unlikely(err < 0)) + goto out; + + bend = au_sbend(sb); + if (unlikely(bend < 0)) { + err = -EINVAL; + pr_err("no branches\n"); + goto out; + } + + if (au_opt_test(tmp, XINO)) + au_opt_set(sbinfo->si_mntflags, XINO); + opt = opts->opt; + while (!err && opt->type != Opt_tail) + err = au_opt_xino(sb, opt++, &opt_xino, opts); + if (unlikely(err)) + goto out; + + err = au_opts_verify(sb, sb->s_flags, tmp); + if (unlikely(err)) + goto out; + + /* restore xino */ + if (au_opt_test(tmp, XINO) && !opt_xino) { + xino.file = au_xino_def(sb); + err = PTR_ERR(xino.file); + if (IS_ERR(xino.file)) + goto out; + + err = au_xino_set(sb, &xino, /*remount*/0); + fput(xino.file); + if (unlikely(err)) + goto out; + } + + /* restore udba */ + sbinfo->si_mntflags &= ~AuOptMask_UDBA; + sbinfo->si_mntflags |= (tmp & AuOptMask_UDBA); + if (au_opt_test(tmp, UDBA_HNOTIFY)) { + struct inode *dir = sb->s_root->d_inode; + au_hn_reset(dir, au_hi_flags(dir, /*isdir*/1) & ~AuHi_XINO); + } + + out: + return err; +} + +int au_opts_remount(struct super_block *sb, struct au_opts *opts) +{ + int err, rerr; + struct inode *dir; + struct au_opt_xino *opt_xino; + struct au_opt *opt; + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + dir = sb->s_root->d_inode; + sbinfo = au_sbi(sb); + err = 0; + opt_xino = NULL; + opt = opts->opt; + while (err >= 0 && opt->type != Opt_tail) { + err = au_opt_simple(sb, opt, opts); + if (!err) + err = au_opt_br(sb, opt, opts); + if (!err) + err = au_opt_xino(sb, opt, &opt_xino, opts); + opt++; + } + if (err > 0) + err = 0; + AuTraceErr(err); + /* go on even err */ + + rerr = au_opts_verify(sb, opts->sb_flags, /*pending*/0); + if (unlikely(rerr && !err)) + err = rerr; + + if (au_ftest_opts(opts->flags, TRUNC_XIB)) { + rerr = au_xib_trunc(sb); + if (unlikely(rerr && !err)) + err = rerr; + } + + /* will be handled by the caller */ + if (!au_ftest_opts(opts->flags, REFRESH_DIR) + && (opts->given_udba || au_opt_test(sbinfo->si_mntflags, XINO))) + au_fset_opts(opts->flags, REFRESH_DIR); + + AuDbg("status 0x%x\n", opts->flags); + return err; +} + +/* ---------------------------------------------------------------------- */ + +unsigned int au_opt_udba(struct super_block *sb) +{ + return au_mntflags(sb) & AuOptMask_UDBA; +} --- linux-2.6.35.orig/ubuntu/aufs/dir.h +++ linux-2.6.35/ubuntu/aufs/dir.h @@ -0,0 +1,138 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * directory operations + */ + +#ifndef __AUFS_DIR_H__ +#define __AUFS_DIR_H__ + +#ifdef __KERNEL__ + +#include +#include + +/* ---------------------------------------------------------------------- */ + +/* need to be faster and smaller */ + +struct au_nhash { + unsigned int nh_num; + struct hlist_head *nh_head; +}; + +struct au_vdir_destr { + unsigned char len; + unsigned char name[0]; +} __packed; + +struct au_vdir_dehstr { + struct hlist_node hash; + struct au_vdir_destr *str; +} ____cacheline_aligned_in_smp; + +struct au_vdir_de { + ino_t de_ino; + unsigned char de_type; + /* caution: packed */ + struct au_vdir_destr de_str; +} __packed; + +struct au_vdir_wh { + struct hlist_node wh_hash; +#ifdef CONFIG_AUFS_SHWH + ino_t wh_ino; + aufs_bindex_t wh_bindex; + unsigned char wh_type; +#else + aufs_bindex_t wh_bindex; +#endif + /* caution: packed */ + struct au_vdir_destr wh_str; +} __packed; + +union au_vdir_deblk_p { + unsigned char *deblk; + struct au_vdir_de *de; +}; + +struct au_vdir { + unsigned char **vd_deblk; + unsigned long vd_nblk; + struct { + unsigned long ul; + union au_vdir_deblk_p p; + } vd_last; + + unsigned long vd_version; + unsigned int vd_deblk_sz; + unsigned long vd_jiffy; +} ____cacheline_aligned_in_smp; + +/* ---------------------------------------------------------------------- */ + +/* dir.c */ +extern const struct file_operations aufs_dir_fop; +void au_add_nlink(struct inode *dir, struct inode *h_dir); +void au_sub_nlink(struct inode *dir, struct inode *h_dir); +loff_t au_dir_size(struct file *file, struct dentry *dentry); +int au_test_empty_lower(struct dentry *dentry); +int au_test_empty(struct dentry *dentry, struct au_nhash *whlist); + +/* vdir.c */ +unsigned int au_rdhash_est(loff_t sz); +int au_nhash_alloc(struct au_nhash *nhash, unsigned int num_hash, gfp_t gfp); +void au_nhash_wh_free(struct au_nhash *whlist); +int au_nhash_test_longer_wh(struct au_nhash *whlist, aufs_bindex_t btgt, + int limit); +int au_nhash_test_known_wh(struct au_nhash *whlist, char *name, int nlen); +int au_nhash_append_wh(struct au_nhash *whlist, char *name, int nlen, ino_t ino, + unsigned int d_type, aufs_bindex_t bindex, + unsigned char shwh); +void au_vdir_free(struct au_vdir *vdir); +int au_vdir_init(struct file *file); +int au_vdir_fill_de(struct file *file, void *dirent, filldir_t filldir); + +/* ioctl.c */ +long aufs_ioctl_dir(struct file *file, unsigned int cmd, unsigned long arg); + +#ifdef CONFIG_AUFS_RDU +/* rdu.c */ +long au_rdu_ioctl(struct file *file, unsigned int cmd, unsigned long arg); +#ifdef CONFIG_COMPAT +long au_rdu_compat_ioctl(struct file *file, unsigned int cmd, + unsigned long arg); +#endif +#else +static inline long au_rdu_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + return -EINVAL; +} +#ifdef CONFIG_COMPAT +static inline long au_rdu_compat_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + return -EINVAL; +} +#endif +#endif + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DIR_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/super.h +++ linux-2.6.35/ubuntu/aufs/super.h @@ -0,0 +1,463 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * super_block operations + */ + +#ifndef __AUFS_SUPER_H__ +#define __AUFS_SUPER_H__ + +#ifdef __KERNEL__ + +#include +#include +#include "rwsem.h" +#include "spl.h" +#include "wkq.h" + +typedef ssize_t (*au_readf_t)(struct file *, char __user *, size_t, loff_t *); +typedef ssize_t (*au_writef_t)(struct file *, const char __user *, size_t, + loff_t *); + +/* policies to select one among multiple writable branches */ +struct au_wbr_copyup_operations { + int (*copyup)(struct dentry *dentry); +}; + +struct au_wbr_create_operations { + int (*create)(struct dentry *dentry, int isdir); + int (*init)(struct super_block *sb); + int (*fin)(struct super_block *sb); +}; + +struct au_wbr_mfs { + struct mutex mfs_lock; /* protect this structure */ + unsigned long mfs_jiffy; + unsigned long mfs_expire; + aufs_bindex_t mfs_bindex; + + unsigned long long mfsrr_bytes; + unsigned long long mfsrr_watermark; +}; + +struct au_branch; +struct au_sbinfo { + /* nowait tasks in the system-wide workqueue */ + struct au_nowait_tasks si_nowait; + + /* + * tried sb->s_umount, but failed due to the dependecy between i_mutex. + * rwsem for au_sbinfo is necessary. + */ + struct au_rwsem si_rwsem; + + /* prevent recursive locking in deleting inode */ + struct { + unsigned long *bitmap; + spinlock_t tree_lock; + struct radix_tree_root tree; + } au_si_pid; + + /* branch management */ + unsigned int si_generation; + + /* see above flags */ + unsigned char au_si_status; + + aufs_bindex_t si_bend; + aufs_bindex_t si_last_br_id; + struct au_branch **si_branch; + + /* policy to select a writable branch */ + unsigned char si_wbr_copyup; + unsigned char si_wbr_create; + struct au_wbr_copyup_operations *si_wbr_copyup_ops; + struct au_wbr_create_operations *si_wbr_create_ops; + + /* round robin */ + atomic_t si_wbr_rr_next; + + /* most free space */ + struct au_wbr_mfs si_wbr_mfs; + + /* mount flags */ + /* include/asm-ia64/siginfo.h defines a macro named si_flags */ + unsigned int si_mntflags; + + /* external inode number (bitmap and translation table) */ + au_readf_t si_xread; + au_writef_t si_xwrite; + struct file *si_xib; + struct mutex si_xib_mtx; /* protect xib members */ + unsigned long *si_xib_buf; + unsigned long si_xib_last_pindex; + int si_xib_next_bit; + aufs_bindex_t si_xino_brid; + /* reserved for future use */ + /* unsigned long long si_xib_limit; */ /* Max xib file size */ + +#ifdef CONFIG_AUFS_EXPORT + /* i_generation */ + struct file *si_xigen; + atomic_t si_xigen_next; +#endif + + /* vdir parameters */ + unsigned long si_rdcache; /* max cache time in HZ */ + unsigned int si_rdblk; /* deblk size */ + unsigned int si_rdhash; /* hash size */ + + /* + * If the number of whiteouts are larger than si_dirwh, leave all of + * them after au_whtmp_ren to reduce the cost of rmdir(2). + * future fsck.aufs or kernel thread will remove them later. + * Otherwise, remove all whiteouts and the dir in rmdir(2). + */ + unsigned int si_dirwh; + + /* + * rename(2) a directory with all children. + */ + /* reserved for future use */ + /* int si_rendir; */ + + /* pseudo_link list */ + struct au_splhead si_plink; + wait_queue_head_t si_plink_wq; + spinlock_t si_plink_maint_lock; + struct file *si_plink_maint; + + /* + * sysfs and lifetime management. + * this is not a small structure and it may be a waste of memory in case + * of sysfs is disabled, particulary when many aufs-es are mounted. + * but using sysfs is majority. + */ + struct kobject si_kobj; +#ifdef CONFIG_DEBUG_FS + struct dentry *si_dbgaufs, *si_dbgaufs_xib; +#ifdef CONFIG_AUFS_EXPORT + struct dentry *si_dbgaufs_xigen; +#endif +#endif + + /* dirty, necessary for unmounting, sysfs and sysrq */ + struct super_block *si_sb; +}; + +/* sbinfo status flags */ +/* + * set true when refresh_dirs() failed at remount time. + * then try refreshing dirs at access time again. + * if it is false, refreshing dirs at access time is unnecesary + */ +#define AuSi_FAILED_REFRESH_DIRS 1 +static inline unsigned char au_do_ftest_si(struct au_sbinfo *sbi, + unsigned int flag) +{ + AuRwMustAnyLock(&sbi->si_rwsem); + return sbi->au_si_status & flag; +} +#define au_ftest_si(sbinfo, name) au_do_ftest_si(sbinfo, AuSi_##name) +#define au_fset_si(sbinfo, name) do { \ + AuRwMustWriteLock(&(sbinfo)->si_rwsem); \ + (sbinfo)->au_si_status |= AuSi_##name; \ +} while (0) +#define au_fclr_si(sbinfo, name) do { \ + AuRwMustWriteLock(&(sbinfo)->si_rwsem); \ + (sbinfo)->au_si_status &= ~AuSi_##name; \ +} while (0) + +/* ---------------------------------------------------------------------- */ + +/* policy to select one among writable branches */ +#define AuWbrCopyup(sbinfo, ...) \ + ((sbinfo)->si_wbr_copyup_ops->copyup(__VA_ARGS__)) +#define AuWbrCreate(sbinfo, ...) \ + ((sbinfo)->si_wbr_create_ops->create(__VA_ARGS__)) + +/* flags for si_read_lock()/aufs_read_lock()/di_read_lock() */ +#define AuLock_DW 1 /* write-lock dentry */ +#define AuLock_IR (1 << 1) /* read-lock inode */ +#define AuLock_IW (1 << 2) /* write-lock inode */ +#define AuLock_FLUSH (1 << 3) /* wait for 'nowait' tasks */ +#define AuLock_DIR (1 << 4) /* target is a dir */ +#define au_ftest_lock(flags, name) ((flags) & AuLock_##name) +#define au_fset_lock(flags, name) { (flags) |= AuLock_##name; } +#define au_fclr_lock(flags, name) { (flags) &= ~AuLock_##name; } + +/* ---------------------------------------------------------------------- */ + +/* super.c */ +extern struct file_system_type aufs_fs_type; +struct inode *au_iget_locked(struct super_block *sb, ino_t ino); + +/* sbinfo.c */ +void au_si_free(struct kobject *kobj); +int au_si_alloc(struct super_block *sb); +int au_sbr_realloc(struct au_sbinfo *sbinfo, int nbr); + +unsigned int au_sigen_inc(struct super_block *sb); +aufs_bindex_t au_new_br_id(struct super_block *sb); + +void aufs_read_lock(struct dentry *dentry, int flags); +void aufs_read_unlock(struct dentry *dentry, int flags); +void aufs_write_lock(struct dentry *dentry); +void aufs_write_unlock(struct dentry *dentry); +void aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int isdir); +void aufs_read_and_write_unlock2(struct dentry *d1, struct dentry *d2); + +int si_pid_test_slow(struct super_block *sb); +void si_pid_set_slow(struct super_block *sb); +void si_pid_clr_slow(struct super_block *sb); + +/* wbr_policy.c */ +extern struct au_wbr_copyup_operations au_wbr_copyup_ops[]; +extern struct au_wbr_create_operations au_wbr_create_ops[]; +int au_cpdown_dirs(struct dentry *dentry, aufs_bindex_t bdst); + +/* ---------------------------------------------------------------------- */ + +static inline struct au_sbinfo *au_sbi(struct super_block *sb) +{ + return sb->s_fs_info; +} + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_EXPORT +void au_export_init(struct super_block *sb); + +static inline int au_test_nfsd(struct task_struct *tsk) +{ + return (current->flags & PF_KTHREAD) + && !strcmp(tsk->comm, "nfsd"); +} + +void au_xigen_inc(struct inode *inode); +int au_xigen_new(struct inode *inode); +int au_xigen_set(struct super_block *sb, struct file *base); +void au_xigen_clr(struct super_block *sb); + +static inline int au_busy_or_stale(void) +{ + if (!au_test_nfsd(current)) + return -EBUSY; + return -ESTALE; +} +#else +AuStubVoid(au_export_init, struct super_block *sb) +AuStubInt0(au_test_nfsd, struct task_struct *tsk) +AuStubVoid(au_xigen_inc, struct inode *inode) +AuStubInt0(au_xigen_new, struct inode *inode) +AuStubInt0(au_xigen_set, struct super_block *sb, struct file *base) +AuStubVoid(au_xigen_clr, struct super_block *sb) +static inline int au_busy_or_stale(void) +{ + return -EBUSY; +} +#endif /* CONFIG_AUFS_EXPORT */ + +/* ---------------------------------------------------------------------- */ + +static inline void dbgaufs_si_null(struct au_sbinfo *sbinfo) +{ + /* + * This function is a dynamic '__init' fucntion actually, + * so the tiny check for si_rwsem is unnecessary. + */ + /* AuRwMustWriteLock(&sbinfo->si_rwsem); */ +#ifdef CONFIG_DEBUG_FS + sbinfo->si_dbgaufs = NULL; + sbinfo->si_dbgaufs_xib = NULL; +#ifdef CONFIG_AUFS_EXPORT + sbinfo->si_dbgaufs_xigen = NULL; +#endif +#endif +} + +/* ---------------------------------------------------------------------- */ + +static inline pid_t si_pid_bit(void) +{ + /* the origin of pid is 1, but the bitmap's is 0 */ + return current->pid - 1; +} + +static inline int si_pid_test(struct super_block *sb) +{ + pid_t bit = si_pid_bit(); + if (bit < PID_MAX_DEFAULT) + return test_bit(bit, au_sbi(sb)->au_si_pid.bitmap); + else + return si_pid_test_slow(sb); +} + +static inline void si_pid_set(struct super_block *sb) +{ + pid_t bit = si_pid_bit(); + if (bit < PID_MAX_DEFAULT) { + AuDebugOn(test_bit(bit, au_sbi(sb)->au_si_pid.bitmap)); + set_bit(bit, au_sbi(sb)->au_si_pid.bitmap); + /* smp_mb(); */ + } else + si_pid_set_slow(sb); +} + +static inline void si_pid_clr(struct super_block *sb) +{ + pid_t bit = si_pid_bit(); + if (bit < PID_MAX_DEFAULT) { + AuDebugOn(!test_bit(bit, au_sbi(sb)->au_si_pid.bitmap)); + clear_bit(bit, au_sbi(sb)->au_si_pid.bitmap); + /* smp_mb(); */ + } else + si_pid_clr_slow(sb); +} + +/* ---------------------------------------------------------------------- */ + +/* lock superblock. mainly for entry point functions */ +/* + * __si_read_lock, __si_write_lock, + * __si_read_unlock, __si_write_unlock, __si_downgrade_lock + */ +AuSimpleRwsemFuncs(__si, struct super_block *sb, &au_sbi(sb)->si_rwsem); + +#define SiMustNoWaiters(sb) AuRwMustNoWaiters(&au_sbi(sb)->si_rwsem) +#define SiMustAnyLock(sb) AuRwMustAnyLock(&au_sbi(sb)->si_rwsem) +#define SiMustWriteLock(sb) AuRwMustWriteLock(&au_sbi(sb)->si_rwsem) + +static inline void si_noflush_read_lock(struct super_block *sb) +{ + __si_read_lock(sb); + si_pid_set(sb); +} + +static inline int si_noflush_read_trylock(struct super_block *sb) +{ + int locked = __si_read_trylock(sb); + if (locked) + si_pid_set(sb); + return locked; +} + +static inline void si_noflush_write_lock(struct super_block *sb) +{ + __si_write_lock(sb); + si_pid_set(sb); +} + +static inline int si_noflush_write_trylock(struct super_block *sb) +{ + int locked = __si_write_trylock(sb); + if (locked) + si_pid_set(sb); + return locked; +} + +static inline void si_read_lock(struct super_block *sb, int flags) +{ + if (au_ftest_lock(flags, FLUSH)) + au_nwt_flush(&au_sbi(sb)->si_nowait); + si_noflush_read_lock(sb); +} + +static inline int si_read_trylock(struct super_block *sb, int flags) +{ + if (au_ftest_lock(flags, FLUSH)) + au_nwt_flush(&au_sbi(sb)->si_nowait); + return si_noflush_read_trylock(sb); +} + +static inline void si_read_unlock(struct super_block *sb) +{ + si_pid_clr(sb); + __si_read_unlock(sb); +} + +static inline void si_write_lock(struct super_block *sb) +{ + au_nwt_flush(&au_sbi(sb)->si_nowait); + si_noflush_write_lock(sb); +} + +#if 0 /* unused */ +static inline int si_write_trylock(struct super_block *sb, int flags) +{ + if (au_ftest_lock(flags, FLUSH)) + au_nwt_flush(&au_sbi(sb)->si_nowait); + return si_noflush_write_trylock(sb); +} +#endif + +static inline void si_write_unlock(struct super_block *sb) +{ + si_pid_clr(sb); + __si_write_unlock(sb); +} + +#if 0 /* unused */ +static inline void si_downgrade_lock(struct super_block *sb) +{ + __si_downgrade_lock(sb); +} +#endif + +/* ---------------------------------------------------------------------- */ + +static inline aufs_bindex_t au_sbend(struct super_block *sb) +{ + SiMustAnyLock(sb); + return au_sbi(sb)->si_bend; +} + +static inline unsigned int au_mntflags(struct super_block *sb) +{ + SiMustAnyLock(sb); + return au_sbi(sb)->si_mntflags; +} + +static inline unsigned int au_sigen(struct super_block *sb) +{ + SiMustAnyLock(sb); + return au_sbi(sb)->si_generation; +} + +static inline struct au_branch *au_sbr(struct super_block *sb, + aufs_bindex_t bindex) +{ + SiMustAnyLock(sb); + return au_sbi(sb)->si_branch[0 + bindex]; +} + +static inline void au_xino_brid_set(struct super_block *sb, aufs_bindex_t brid) +{ + SiMustWriteLock(sb); + au_sbi(sb)->si_xino_brid = brid; +} + +static inline aufs_bindex_t au_xino_brid(struct super_block *sb) +{ + SiMustAnyLock(sb); + return au_sbi(sb)->si_xino_brid; +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_SUPER_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/branch.c +++ linux-2.6.35/ubuntu/aufs/branch.c @@ -0,0 +1,1000 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * branch management + */ + +#include +#include +#include "aufs.h" + +/* + * free a single branch + */ +static void au_br_do_free(struct au_branch *br) +{ + int i; + struct au_wbr *wbr; + struct au_dykey **key; + + if (br->br_xino.xi_file) + fput(br->br_xino.xi_file); + mutex_destroy(&br->br_xino.xi_nondir_mtx); + + AuDebugOn(atomic_read(&br->br_count)); + + wbr = br->br_wbr; + if (wbr) { + for (i = 0; i < AuBrWh_Last; i++) + dput(wbr->wbr_wh[i]); + AuDebugOn(atomic_read(&wbr->wbr_wh_running)); + AuRwDestroy(&wbr->wbr_wh_rwsem); + } + + key = br->br_dykey; + for (i = 0; i < AuBrDynOp; i++, key++) + if (*key) + au_dy_put(*key); + else + break; + + mntput(br->br_mnt); + kfree(wbr); + kfree(br); +} + +/* + * frees all branches + */ +void au_br_free(struct au_sbinfo *sbinfo) +{ + aufs_bindex_t bmax; + struct au_branch **br; + + AuRwMustWriteLock(&sbinfo->si_rwsem); + + bmax = sbinfo->si_bend + 1; + br = sbinfo->si_branch; + while (bmax--) + au_br_do_free(*br++); +} + +/* + * find the index of a branch which is specified by @br_id. + */ +int au_br_index(struct super_block *sb, aufs_bindex_t br_id) +{ + aufs_bindex_t bindex, bend; + + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) + if (au_sbr_id(sb, bindex) == br_id) + return bindex; + return -1; +} + +/* ---------------------------------------------------------------------- */ + +/* + * add a branch + */ + +static int test_overlap(struct super_block *sb, struct dentry *h_d1, + struct dentry *h_d2) +{ + if (unlikely(h_d1 == h_d2)) + return 1; + return au_test_subdir(h_d1, h_d2) + || au_test_subdir(h_d2, h_d1) + || au_test_loopback_overlap(sb, h_d1, h_d2) + || au_test_loopback_overlap(sb, h_d2, h_d1); +} + +/* + * returns a newly allocated branch. @new_nbranch is a number of branches + * after adding a branch. + */ +static struct au_branch *au_br_alloc(struct super_block *sb, int new_nbranch, + int perm) +{ + struct au_branch *add_branch; + struct dentry *root; + int err; + + err = -ENOMEM; + root = sb->s_root; + add_branch = kmalloc(sizeof(*add_branch), GFP_NOFS); + if (unlikely(!add_branch)) + goto out; + + add_branch->br_wbr = NULL; + if (au_br_writable(perm)) { + /* may be freed separately at changing the branch permission */ + add_branch->br_wbr = kmalloc(sizeof(*add_branch->br_wbr), + GFP_NOFS); + if (unlikely(!add_branch->br_wbr)) + goto out_br; + } + + err = au_sbr_realloc(au_sbi(sb), new_nbranch); + if (!err) + err = au_di_realloc(au_di(root), new_nbranch); + if (!err) + err = au_ii_realloc(au_ii(root->d_inode), new_nbranch); + if (!err) + return add_branch; /* success */ + + kfree(add_branch->br_wbr); + + out_br: + kfree(add_branch); + out: + return ERR_PTR(err); +} + +/* + * test if the branch permission is legal or not. + */ +static int test_br(struct inode *inode, int brperm, char *path) +{ + int err; + + err = (au_br_writable(brperm) && IS_RDONLY(inode)); + if (!err) + goto out; + + err = -EINVAL; + pr_err("write permission for readonly mount or inode, %s\n", path); + + out: + return err; +} + +/* + * returns: + * 0: success, the caller will add it + * plus: success, it is already unified, the caller should ignore it + * minus: error + */ +static int test_add(struct super_block *sb, struct au_opt_add *add, int remount) +{ + int err; + aufs_bindex_t bend, bindex; + struct dentry *root; + struct inode *inode, *h_inode; + + root = sb->s_root; + bend = au_sbend(sb); + if (unlikely(bend >= 0 + && au_find_dbindex(root, add->path.dentry) >= 0)) { + err = 1; + if (!remount) { + err = -EINVAL; + pr_err("%s duplicated\n", add->pathname); + } + goto out; + } + + err = -ENOSPC; /* -E2BIG; */ + if (unlikely(AUFS_BRANCH_MAX <= add->bindex + || AUFS_BRANCH_MAX - 1 <= bend)) { + pr_err("number of branches exceeded %s\n", add->pathname); + goto out; + } + + err = -EDOM; + if (unlikely(add->bindex < 0 || bend + 1 < add->bindex)) { + pr_err("bad index %d\n", add->bindex); + goto out; + } + + inode = add->path.dentry->d_inode; + err = -ENOENT; + if (unlikely(!inode->i_nlink)) { + pr_err("no existence %s\n", add->pathname); + goto out; + } + + err = -EINVAL; + if (unlikely(inode->i_sb == sb)) { + pr_err("%s must be outside\n", add->pathname); + goto out; + } + + if (unlikely(au_test_fs_unsuppoted(inode->i_sb))) { + pr_err("unsupported filesystem, %s (%s)\n", + add->pathname, au_sbtype(inode->i_sb)); + goto out; + } + + err = test_br(add->path.dentry->d_inode, add->perm, add->pathname); + if (unlikely(err)) + goto out; + + if (bend < 0) + return 0; /* success */ + + err = -EINVAL; + for (bindex = 0; bindex <= bend; bindex++) + if (unlikely(test_overlap(sb, add->path.dentry, + au_h_dptr(root, bindex)))) { + pr_err("%s is overlapped\n", add->pathname); + goto out; + } + + err = 0; + if (au_opt_test(au_mntflags(sb), WARN_PERM)) { + h_inode = au_h_dptr(root, 0)->d_inode; + if ((h_inode->i_mode & S_IALLUGO) != (inode->i_mode & S_IALLUGO) + || h_inode->i_uid != inode->i_uid + || h_inode->i_gid != inode->i_gid) + pr_warning("uid/gid/perm %s %u/%u/0%o, %u/%u/0%o\n", + add->pathname, + inode->i_uid, inode->i_gid, + (inode->i_mode & S_IALLUGO), + h_inode->i_uid, h_inode->i_gid, + (h_inode->i_mode & S_IALLUGO)); + } + + out: + return err; +} + +/* + * initialize or clean the whiteouts for an adding branch + */ +static int au_br_init_wh(struct super_block *sb, struct au_branch *br, + int new_perm, struct dentry *h_root) +{ + int err, old_perm; + aufs_bindex_t bindex; + struct mutex *h_mtx; + struct au_wbr *wbr; + struct au_hinode *hdir; + + wbr = br->br_wbr; + old_perm = br->br_perm; + br->br_perm = new_perm; + hdir = NULL; + h_mtx = NULL; + bindex = au_br_index(sb, br->br_id); + if (0 <= bindex) { + hdir = au_hi(sb->s_root->d_inode, bindex); + au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT); + } else { + h_mtx = &h_root->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_PARENT); + } + if (!wbr) + err = au_wh_init(h_root, br, sb); + else { + wbr_wh_write_lock(wbr); + err = au_wh_init(h_root, br, sb); + wbr_wh_write_unlock(wbr); + } + if (hdir) + au_hn_imtx_unlock(hdir); + else + mutex_unlock(h_mtx); + br->br_perm = old_perm; + + if (!err && wbr && !au_br_writable(new_perm)) { + kfree(wbr); + br->br_wbr = NULL; + } + + return err; +} + +static int au_wbr_init(struct au_branch *br, struct super_block *sb, + int perm, struct path *path) +{ + int err; + struct kstatfs kst; + struct au_wbr *wbr; + struct dentry *h_dentry; + + wbr = br->br_wbr; + au_rw_init(&wbr->wbr_wh_rwsem); + memset(wbr->wbr_wh, 0, sizeof(wbr->wbr_wh)); + atomic_set(&wbr->wbr_wh_running, 0); + wbr->wbr_bytes = 0; + + /* + * a limit for rmdir/rename a dir + * cf. AUFS_MAX_NAMELEN in include/linux/aufs_type.h + */ + h_dentry = path->dentry; + err = vfs_statfs(h_dentry, &kst); + if (unlikely(err)) + goto out; + err = -EINVAL; + if (kst.f_namelen >= NAME_MAX) + err = au_br_init_wh(sb, br, perm, h_dentry); + else + pr_err("%.*s(%s), unsupported namelen %ld\n", + AuDLNPair(h_dentry), au_sbtype(h_dentry->d_sb), + kst.f_namelen); + + out: + return err; +} + +/* intialize a new branch */ +static int au_br_init(struct au_branch *br, struct super_block *sb, + struct au_opt_add *add) +{ + int err; + + err = 0; + memset(&br->br_xino, 0, sizeof(br->br_xino)); + mutex_init(&br->br_xino.xi_nondir_mtx); + br->br_perm = add->perm; + br->br_mnt = add->path.mnt; /* set first, mntget() later */ + spin_lock_init(&br->br_dykey_lock); + memset(br->br_dykey, 0, sizeof(br->br_dykey)); + atomic_set(&br->br_count, 0); + br->br_xino_upper = AUFS_XINO_TRUNC_INIT; + atomic_set(&br->br_xino_running, 0); + br->br_id = au_new_br_id(sb); + + if (au_br_writable(add->perm)) { + err = au_wbr_init(br, sb, add->perm, &add->path); + if (unlikely(err)) + goto out; + } + + if (au_opt_test(au_mntflags(sb), XINO)) { + err = au_xino_br(sb, br, add->path.dentry->d_inode->i_ino, + au_sbr(sb, 0)->br_xino.xi_file, /*do_test*/1); + if (unlikely(err)) { + AuDebugOn(br->br_xino.xi_file); + goto out; + } + } + + sysaufs_br_init(br); + mntget(add->path.mnt); + + out: + return err; +} + +static void au_br_do_add_brp(struct au_sbinfo *sbinfo, aufs_bindex_t bindex, + struct au_branch *br, aufs_bindex_t bend, + aufs_bindex_t amount) +{ + struct au_branch **brp; + + AuRwMustWriteLock(&sbinfo->si_rwsem); + + brp = sbinfo->si_branch + bindex; + memmove(brp + 1, brp, sizeof(*brp) * amount); + *brp = br; + sbinfo->si_bend++; + if (unlikely(bend < 0)) + sbinfo->si_bend = 0; +} + +static void au_br_do_add_hdp(struct au_dinfo *dinfo, aufs_bindex_t bindex, + aufs_bindex_t bend, aufs_bindex_t amount) +{ + struct au_hdentry *hdp; + + AuRwMustWriteLock(&dinfo->di_rwsem); + + hdp = dinfo->di_hdentry + bindex; + memmove(hdp + 1, hdp, sizeof(*hdp) * amount); + au_h_dentry_init(hdp); + dinfo->di_bend++; + if (unlikely(bend < 0)) + dinfo->di_bstart = 0; +} + +static void au_br_do_add_hip(struct au_iinfo *iinfo, aufs_bindex_t bindex, + aufs_bindex_t bend, aufs_bindex_t amount) +{ + struct au_hinode *hip; + + AuRwMustWriteLock(&iinfo->ii_rwsem); + + hip = iinfo->ii_hinode + bindex; + memmove(hip + 1, hip, sizeof(*hip) * amount); + hip->hi_inode = NULL; + au_hn_init(hip); + iinfo->ii_bend++; + if (unlikely(bend < 0)) + iinfo->ii_bstart = 0; +} + +static void au_br_do_add(struct super_block *sb, struct dentry *h_dentry, + struct au_branch *br, aufs_bindex_t bindex) +{ + struct dentry *root; + struct inode *root_inode; + aufs_bindex_t bend, amount; + + root = sb->s_root; + root_inode = root->d_inode; + au_plink_maint_block(sb); + bend = au_sbend(sb); + amount = bend + 1 - bindex; + au_br_do_add_brp(au_sbi(sb), bindex, br, bend, amount); + au_br_do_add_hdp(au_di(root), bindex, bend, amount); + au_br_do_add_hip(au_ii(root_inode), bindex, bend, amount); + au_set_h_dptr(root, bindex, dget(h_dentry)); + au_set_h_iptr(root_inode, bindex, au_igrab(h_dentry->d_inode), + /*flags*/0); +} + +int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount) +{ + int err; + aufs_bindex_t bend, add_bindex; + struct dentry *root, *h_dentry; + struct inode *root_inode; + struct au_branch *add_branch; + + root = sb->s_root; + root_inode = root->d_inode; + IMustLock(root_inode); + err = test_add(sb, add, remount); + if (unlikely(err < 0)) + goto out; + if (err) { + err = 0; + goto out; /* success */ + } + + bend = au_sbend(sb); + add_branch = au_br_alloc(sb, bend + 2, add->perm); + err = PTR_ERR(add_branch); + if (IS_ERR(add_branch)) + goto out; + + err = au_br_init(add_branch, sb, add); + if (unlikely(err)) { + au_br_do_free(add_branch); + goto out; + } + + add_bindex = add->bindex; + h_dentry = add->path.dentry; + if (!remount) + au_br_do_add(sb, h_dentry, add_branch, add_bindex); + else { + sysaufs_brs_del(sb, add_bindex); + au_br_do_add(sb, h_dentry, add_branch, add_bindex); + sysaufs_brs_add(sb, add_bindex); + } + + if (!add_bindex) { + au_cpup_attr_all(root_inode, /*force*/1); + sb->s_maxbytes = h_dentry->d_sb->s_maxbytes; + } else + au_add_nlink(root_inode, h_dentry->d_inode); + + /* + * this test/set prevents aufs from handling unnecesary notify events + * of xino files, in a case of re-adding a writable branch which was + * once detached from aufs. + */ + if (au_xino_brid(sb) < 0 + && au_br_writable(add_branch->br_perm) + && !au_test_fs_bad_xino(h_dentry->d_sb) + && add_branch->br_xino.xi_file + && add_branch->br_xino.xi_file->f_dentry->d_parent == h_dentry) + au_xino_brid_set(sb, add_branch->br_id); + + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * delete a branch + */ + +/* to show the line number, do not make it inlined function */ +#define AuVerbose(do_info, fmt, ...) do { \ + if (do_info) \ + pr_info(fmt, ##__VA_ARGS__); \ +} while (0) + +/* + * test if the branch is deletable or not. + */ +static int test_dentry_busy(struct dentry *root, aufs_bindex_t bindex, + unsigned int sigen, const unsigned int verbose) +{ + int err, i, j, ndentry; + aufs_bindex_t bstart, bend; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry *d; + struct inode *inode; + + err = au_dpages_init(&dpages, GFP_NOFS); + if (unlikely(err)) + goto out; + err = au_dcsub_pages(&dpages, root, NULL, NULL); + if (unlikely(err)) + goto out_dpages; + + for (i = 0; !err && i < dpages.ndpage; i++) { + dpage = dpages.dpages + i; + ndentry = dpage->ndentry; + for (j = 0; !err && j < ndentry; j++) { + d = dpage->dentries[j]; + AuDebugOn(!atomic_read(&d->d_count)); + inode = d->d_inode; + if (au_digen(d) == sigen && au_iigen(inode) == sigen) + di_read_lock_child(d, AuLock_IR); + else { + di_write_lock_child(d); + err = au_reval_dpath(d, sigen); + if (!err) + di_downgrade_lock(d, AuLock_IR); + else { + di_write_unlock(d); + break; + } + } + + bstart = au_dbstart(d); + bend = au_dbend(d); + if (bstart <= bindex + && bindex <= bend + && au_h_dptr(d, bindex) + && (!S_ISDIR(inode->i_mode) || bstart == bend)) { + err = -EBUSY; + AuVerbose(verbose, "busy %.*s\n", AuDLNPair(d)); + } + di_read_unlock(d, AuLock_IR); + } + } + + out_dpages: + au_dpages_free(&dpages); + out: + return err; +} + +static int test_inode_busy(struct super_block *sb, aufs_bindex_t bindex, + unsigned int sigen, const unsigned int verbose) +{ + int err; + struct inode *i; + aufs_bindex_t bstart, bend; + + err = 0; + list_for_each_entry(i, &sb->s_inodes, i_sb_list) { + AuDebugOn(!atomic_read(&i->i_count)); + if (!list_empty(&i->i_dentry)) + continue; + + if (au_iigen(i) == sigen) + ii_read_lock_child(i); + else { + ii_write_lock_child(i); + err = au_refresh_hinode_self(i, /*do_attr*/1); + if (!err) + ii_downgrade_lock(i); + else { + ii_write_unlock(i); + break; + } + } + + bstart = au_ibstart(i); + bend = au_ibend(i); + if (bstart <= bindex + && bindex <= bend + && au_h_iptr(i, bindex) + && (!S_ISDIR(i->i_mode) || bstart == bend)) { + err = -EBUSY; + AuVerbose(verbose, "busy i%lu\n", i->i_ino); + ii_read_unlock(i); + break; + } + ii_read_unlock(i); + } + + return err; +} + +static int test_children_busy(struct dentry *root, aufs_bindex_t bindex, + const unsigned int verbose) +{ + int err; + unsigned int sigen; + + sigen = au_sigen(root->d_sb); + DiMustNoWaiters(root); + IiMustNoWaiters(root->d_inode); + di_write_unlock(root); + err = test_dentry_busy(root, bindex, sigen, verbose); + if (!err) + err = test_inode_busy(root->d_sb, bindex, sigen, verbose); + di_write_lock_child(root); /* aufs_write_lock() calls ..._child() */ + + return err; +} + +static void au_br_do_del_brp(struct au_sbinfo *sbinfo, + const aufs_bindex_t bindex, + const aufs_bindex_t bend) +{ + struct au_branch **brp, **p; + + AuRwMustWriteLock(&sbinfo->si_rwsem); + + brp = sbinfo->si_branch + bindex; + if (bindex < bend) + memmove(brp, brp + 1, sizeof(*brp) * (bend - bindex)); + sbinfo->si_branch[0 + bend] = NULL; + sbinfo->si_bend--; + + p = krealloc(sbinfo->si_branch, sizeof(*p) * bend, GFP_NOFS); + if (p) + sbinfo->si_branch = p; + /* harmless error */ +} + +static void au_br_do_del_hdp(struct au_dinfo *dinfo, const aufs_bindex_t bindex, + const aufs_bindex_t bend) +{ + struct au_hdentry *hdp, *p; + + AuRwMustWriteLock(&dinfo->di_rwsem); + + hdp = dinfo->di_hdentry; + if (bindex < bend) + memmove(hdp + bindex, hdp + bindex + 1, + sizeof(*hdp) * (bend - bindex)); + hdp[0 + bend].hd_dentry = NULL; + dinfo->di_bend--; + + p = krealloc(hdp, sizeof(*p) * bend, GFP_NOFS); + if (p) + dinfo->di_hdentry = p; + /* harmless error */ +} + +static void au_br_do_del_hip(struct au_iinfo *iinfo, const aufs_bindex_t bindex, + const aufs_bindex_t bend) +{ + struct au_hinode *hip, *p; + + AuRwMustWriteLock(&iinfo->ii_rwsem); + + hip = iinfo->ii_hinode + bindex; + if (bindex < bend) + memmove(hip, hip + 1, sizeof(*hip) * (bend - bindex)); + iinfo->ii_hinode[0 + bend].hi_inode = NULL; + au_hn_init(iinfo->ii_hinode + bend); + iinfo->ii_bend--; + + p = krealloc(iinfo->ii_hinode, sizeof(*p) * bend, GFP_NOFS); + if (p) + iinfo->ii_hinode = p; + /* harmless error */ +} + +static void au_br_do_del(struct super_block *sb, aufs_bindex_t bindex, + struct au_branch *br) +{ + aufs_bindex_t bend; + struct au_sbinfo *sbinfo; + struct dentry *root; + struct inode *inode; + + SiMustWriteLock(sb); + + root = sb->s_root; + inode = root->d_inode; + au_plink_maint_block(sb); + sbinfo = au_sbi(sb); + bend = sbinfo->si_bend; + + dput(au_h_dptr(root, bindex)); + au_hiput(au_hi(inode, bindex)); + au_br_do_free(br); + + au_br_do_del_brp(sbinfo, bindex, bend); + au_br_do_del_hdp(au_di(root), bindex, bend); + au_br_do_del_hip(au_ii(inode), bindex, bend); +} + +int au_br_del(struct super_block *sb, struct au_opt_del *del, int remount) +{ + int err, rerr, i; + unsigned int mnt_flags; + aufs_bindex_t bindex, bend, br_id; + unsigned char do_wh, verbose; + struct au_branch *br; + struct au_wbr *wbr; + + err = 0; + bindex = au_find_dbindex(sb->s_root, del->h_path.dentry); + if (bindex < 0) { + if (remount) + goto out; /* success */ + err = -ENOENT; + pr_err("%s no such branch\n", del->pathname); + goto out; + } + AuDbg("bindex b%d\n", bindex); + + err = -EBUSY; + mnt_flags = au_mntflags(sb); + verbose = !!au_opt_test(mnt_flags, VERBOSE); + bend = au_sbend(sb); + if (unlikely(!bend)) { + AuVerbose(verbose, "no more branches left\n"); + goto out; + } + br = au_sbr(sb, bindex); + i = atomic_read(&br->br_count); + if (unlikely(i)) { + AuVerbose(verbose, "%d file(s) opened\n", i); + goto out; + } + + wbr = br->br_wbr; + do_wh = wbr && (wbr->wbr_whbase || wbr->wbr_plink || wbr->wbr_orph); + if (do_wh) { + /* instead of WbrWhMustWriteLock(wbr) */ + SiMustWriteLock(sb); + for (i = 0; i < AuBrWh_Last; i++) { + dput(wbr->wbr_wh[i]); + wbr->wbr_wh[i] = NULL; + } + } + + err = test_children_busy(sb->s_root, bindex, verbose); + if (unlikely(err)) { + if (do_wh) + goto out_wh; + goto out; + } + + err = 0; + br_id = br->br_id; + if (!remount) + au_br_do_del(sb, bindex, br); + else { + sysaufs_brs_del(sb, bindex); + au_br_do_del(sb, bindex, br); + sysaufs_brs_add(sb, bindex); + } + + if (!bindex) { + au_cpup_attr_all(sb->s_root->d_inode, /*force*/1); + sb->s_maxbytes = au_sbr_sb(sb, 0)->s_maxbytes; + } else + au_sub_nlink(sb->s_root->d_inode, del->h_path.dentry->d_inode); + if (au_opt_test(mnt_flags, PLINK)) + au_plink_half_refresh(sb, br_id); + + if (au_xino_brid(sb) == br->br_id) + au_xino_brid_set(sb, -1); + goto out; /* success */ + + out_wh: + /* revert */ + rerr = au_br_init_wh(sb, br, br->br_perm, del->h_path.dentry); + if (rerr) + pr_warning("failed re-creating base whiteout, %s. (%d)\n", + del->pathname, rerr); + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * change a branch permission + */ + +static void au_warn_ima(void) +{ +#ifdef CONFIG_IMA + /* since it doesn't support mark_files_ro() */ + pr_warning("RW -> RO makes IMA to produce wrong message"); +#endif +} + +static int do_need_sigen_inc(int a, int b) +{ + return au_br_whable(a) && !au_br_whable(b); +} + +static int need_sigen_inc(int old, int new) +{ + return do_need_sigen_inc(old, new) + || do_need_sigen_inc(new, old); +} + +static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex) +{ + int err; + unsigned long n, ul, bytes, files; + aufs_bindex_t bstart; + struct file *file, *hf, **a; + const int step_bytes = 1024, /* memory allocation unit */ + step_files = step_bytes / sizeof(*a); + + err = -ENOMEM; + n = 0; + bytes = step_bytes; + files = step_files; + a = kmalloc(bytes, GFP_NOFS); + if (unlikely(!a)) + goto out; + + /* no need file_list_lock() since sbinfo is locked? defered? */ + list_for_each_entry(file, &sb->s_files, f_u.fu_list) { + if (special_file(file->f_dentry->d_inode->i_mode)) + continue; + + AuDbg("%.*s\n", AuDLNPair(file->f_dentry)); + fi_read_lock(file); + if (unlikely(au_test_mmapped(file))) { + err = -EBUSY; + FiMustNoWaiters(file); + fi_read_unlock(file); + goto out_free; + } + + bstart = au_fbstart(file); + if (!S_ISREG(file->f_dentry->d_inode->i_mode) + || !(file->f_mode & FMODE_WRITE) + || bstart != bindex) { + FiMustNoWaiters(file); + fi_read_unlock(file); + continue; + } + + hf = au_hf_top(file); + FiMustNoWaiters(file); + fi_read_unlock(file); + + if (n < files) + a[n++] = hf; + else { + void *p; + + err = -ENOMEM; + bytes += step_bytes; + files += step_files; + p = krealloc(a, bytes, GFP_NOFS); + if (p) { + a = p; + a[n++] = hf; + } else + goto out_free; + } + } + + err = 0; + if (n) + au_warn_ima(); + for (ul = 0; ul < n; ul++) { + /* todo: already flushed? */ + /* cf. fs/super.c:mark_files_ro() */ + hf = a[ul]; + hf->f_mode &= ~FMODE_WRITE; + if (!file_check_writeable(hf)) { + file_release_write(hf); + mnt_drop_write(hf->f_vfsmnt); + } + } + + out_free: + kfree(a); + out: + return err; +} + +int au_br_mod(struct super_block *sb, struct au_opt_mod *mod, int remount, + int *do_update) +{ + int err, rerr; + aufs_bindex_t bindex; + struct path path; + struct dentry *root; + struct au_branch *br; + + root = sb->s_root; + au_plink_maint_block(sb); + bindex = au_find_dbindex(root, mod->h_root); + if (bindex < 0) { + if (remount) + return 0; /* success */ + err = -ENOENT; + pr_err("%s no such branch\n", mod->path); + goto out; + } + AuDbg("bindex b%d\n", bindex); + + err = test_br(mod->h_root->d_inode, mod->perm, mod->path); + if (unlikely(err)) + goto out; + + br = au_sbr(sb, bindex); + if (br->br_perm == mod->perm) + return 0; /* success */ + + if (au_br_writable(br->br_perm)) { + /* remove whiteout base */ + err = au_br_init_wh(sb, br, mod->perm, mod->h_root); + if (unlikely(err)) + goto out; + + if (!au_br_writable(mod->perm)) { + /* rw --> ro, file might be mmapped */ + DiMustNoWaiters(root); + IiMustNoWaiters(root->d_inode); + di_write_unlock(root); + err = au_br_mod_files_ro(sb, bindex); + /* aufs_write_lock() calls ..._child() */ + di_write_lock_child(root); + + if (unlikely(err)) { + rerr = -ENOMEM; + br->br_wbr = kmalloc(sizeof(*br->br_wbr), + GFP_NOFS); + if (br->br_wbr) { + path.mnt = br->br_mnt; + path.dentry = mod->h_root; + rerr = au_wbr_init(br, sb, br->br_perm, + &path); + } + if (unlikely(rerr)) { + AuIOErr("nested error %d (%d)\n", + rerr, err); + br->br_perm = mod->perm; + } + } + } + } else if (au_br_writable(mod->perm)) { + /* ro --> rw */ + err = -ENOMEM; + br->br_wbr = kmalloc(sizeof(*br->br_wbr), GFP_NOFS); + if (br->br_wbr) { + path.mnt = br->br_mnt; + path.dentry = mod->h_root; + err = au_wbr_init(br, sb, mod->perm, &path); + if (unlikely(err)) { + kfree(br->br_wbr); + br->br_wbr = NULL; + } + } + } + + if (!err) { + *do_update |= need_sigen_inc(br->br_perm, mod->perm); + br->br_perm = mod->perm; + } + + out: + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/sysaufs.c +++ linux-2.6.35/ubuntu/aufs/sysaufs.c @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sysfs interface and lifetime management + * they are necessary regardless sysfs is disabled. + */ + +#include +#include +#include +#include "aufs.h" + +unsigned long sysaufs_si_mask; +struct kset *sysaufs_ket; + +#define AuSiAttr(_name) { \ + .attr = { .name = __stringify(_name), .mode = 0444 }, \ + .show = sysaufs_si_##_name, \ +} + +static struct sysaufs_si_attr sysaufs_si_attr_xi_path = AuSiAttr(xi_path); +struct attribute *sysaufs_si_attrs[] = { + &sysaufs_si_attr_xi_path.attr, + NULL, +}; + +static const struct sysfs_ops au_sbi_ops = { + .show = sysaufs_si_show +}; + +static struct kobj_type au_sbi_ktype = { + .release = au_si_free, + .sysfs_ops = &au_sbi_ops, + .default_attrs = sysaufs_si_attrs +}; + +/* ---------------------------------------------------------------------- */ + +int sysaufs_si_init(struct au_sbinfo *sbinfo) +{ + int err; + + sbinfo->si_kobj.kset = sysaufs_ket; + /* cf. sysaufs_name() */ + err = kobject_init_and_add + (&sbinfo->si_kobj, &au_sbi_ktype, /*&sysaufs_ket->kobj*/NULL, + SysaufsSiNamePrefix "%lx", sysaufs_si_id(sbinfo)); + + dbgaufs_si_null(sbinfo); + if (!err) { + err = dbgaufs_si_init(sbinfo); + if (unlikely(err)) + kobject_put(&sbinfo->si_kobj); + } + return err; +} + +void sysaufs_fin(void) +{ + dbgaufs_fin(); + sysfs_remove_group(&sysaufs_ket->kobj, sysaufs_attr_group); + kset_unregister(sysaufs_ket); +} + +int __init sysaufs_init(void) +{ + int err; + + do { + get_random_bytes(&sysaufs_si_mask, sizeof(sysaufs_si_mask)); + } while (!sysaufs_si_mask); + + err = -EINVAL; + sysaufs_ket = kset_create_and_add(AUFS_NAME, NULL, fs_kobj); + if (unlikely(!sysaufs_ket)) + goto out; + err = PTR_ERR(sysaufs_ket); + if (IS_ERR(sysaufs_ket)) + goto out; + err = sysfs_create_group(&sysaufs_ket->kobj, sysaufs_attr_group); + if (unlikely(err)) { + kset_unregister(sysaufs_ket); + goto out; + } + + err = dbgaufs_init(); + if (unlikely(err)) + sysaufs_fin(); + out: + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/sbinfo.c +++ linux-2.6.35/ubuntu/aufs/sbinfo.c @@ -0,0 +1,269 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * superblock private data + */ + +#include "aufs.h" + +/* + * they are necessary regardless sysfs is disabled. + */ +void au_si_free(struct kobject *kobj) +{ + struct au_sbinfo *sbinfo; + struct super_block *sb; + char *locked __maybe_unused; /* debug only */ + + sbinfo = container_of(kobj, struct au_sbinfo, si_kobj); + AuDebugOn(!list_empty(&sbinfo->si_plink.head)); + AuDebugOn(sbinfo->si_plink_maint); + + sb = sbinfo->si_sb; + si_write_lock(sb); + au_xino_clr(sb); + au_br_free(sbinfo); + si_write_unlock(sb); + + AuDebugOn(radix_tree_gang_lookup + (&sbinfo->au_si_pid.tree, (void **)&locked, + /*first_index*/PID_MAX_DEFAULT - 1, + /*max_items*/sizeof(locked)/sizeof(*locked))); + + kfree(sbinfo->si_branch); + kfree(sbinfo->au_si_pid.bitmap); + mutex_destroy(&sbinfo->si_xib_mtx); + AuRwDestroy(&sbinfo->si_rwsem); + + kfree(sbinfo); +} + +int au_si_alloc(struct super_block *sb) +{ + int err; + struct au_sbinfo *sbinfo; + + err = -ENOMEM; + sbinfo = kzalloc(sizeof(*sbinfo), GFP_NOFS); + if (unlikely(!sbinfo)) + goto out; + + BUILD_BUG_ON(sizeof(unsigned long) != + sizeof(*sbinfo->au_si_pid.bitmap)); + sbinfo->au_si_pid.bitmap = kcalloc(BITS_TO_LONGS(PID_MAX_DEFAULT), + sizeof(*sbinfo->au_si_pid.bitmap), + GFP_NOFS); + if (unlikely(!sbinfo->au_si_pid.bitmap)) + goto out_sbinfo; + + /* will be reallocated separately */ + sbinfo->si_branch = kzalloc(sizeof(*sbinfo->si_branch), GFP_NOFS); + if (unlikely(!sbinfo->si_branch)) + goto out_pidmap; + + err = sysaufs_si_init(sbinfo); + if (unlikely(err)) + goto out_br; + + au_nwt_init(&sbinfo->si_nowait); + au_rw_init_wlock(&sbinfo->si_rwsem); + spin_lock_init(&sbinfo->au_si_pid.tree_lock); + INIT_RADIX_TREE(&sbinfo->au_si_pid.tree, GFP_ATOMIC | __GFP_NOFAIL); + + sbinfo->si_bend = -1; + + sbinfo->si_wbr_copyup = AuWbrCopyup_Def; + sbinfo->si_wbr_create = AuWbrCreate_Def; + sbinfo->si_wbr_copyup_ops = au_wbr_copyup_ops + sbinfo->si_wbr_copyup; + sbinfo->si_wbr_create_ops = au_wbr_create_ops + sbinfo->si_wbr_create; + + sbinfo->si_mntflags = AuOpt_Def; + + mutex_init(&sbinfo->si_xib_mtx); + sbinfo->si_xino_brid = -1; + /* leave si_xib_last_pindex and si_xib_next_bit */ + + sbinfo->si_rdcache = AUFS_RDCACHE_DEF * HZ; + sbinfo->si_rdblk = AUFS_RDBLK_DEF; + sbinfo->si_rdhash = AUFS_RDHASH_DEF; + sbinfo->si_dirwh = AUFS_DIRWH_DEF; + + au_spl_init(&sbinfo->si_plink); + init_waitqueue_head(&sbinfo->si_plink_wq); + spin_lock_init(&sbinfo->si_plink_maint_lock); + + /* leave other members for sysaufs and si_mnt. */ + sbinfo->si_sb = sb; + sb->s_fs_info = sbinfo; + si_pid_set(sb); + au_debug_sbinfo_init(sbinfo); + return 0; /* success */ + + out_br: + kfree(sbinfo->si_branch); + out_pidmap: + kfree(sbinfo->au_si_pid.bitmap); + out_sbinfo: + kfree(sbinfo); + out: + return err; +} + +int au_sbr_realloc(struct au_sbinfo *sbinfo, int nbr) +{ + int err, sz; + struct au_branch **brp; + + AuRwMustWriteLock(&sbinfo->si_rwsem); + + err = -ENOMEM; + sz = sizeof(*brp) * (sbinfo->si_bend + 1); + if (unlikely(!sz)) + sz = sizeof(*brp); + brp = au_kzrealloc(sbinfo->si_branch, sz, sizeof(*brp) * nbr, GFP_NOFS); + if (brp) { + sbinfo->si_branch = brp; + err = 0; + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +unsigned int au_sigen_inc(struct super_block *sb) +{ + unsigned int gen; + + SiMustWriteLock(sb); + + gen = ++au_sbi(sb)->si_generation; + au_update_digen(sb->s_root); + au_update_iigen(sb->s_root->d_inode); + sb->s_root->d_inode->i_version++; + return gen; +} + +aufs_bindex_t au_new_br_id(struct super_block *sb) +{ + aufs_bindex_t br_id; + int i; + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + for (i = 0; i <= AUFS_BRANCH_MAX; i++) { + br_id = ++sbinfo->si_last_br_id; + if (br_id && au_br_index(sb, br_id) < 0) + return br_id; + } + + return -1; +} + +/* ---------------------------------------------------------------------- */ + +/* dentry and super_block lock. call at entry point */ +void aufs_read_lock(struct dentry *dentry, int flags) +{ + si_read_lock(dentry->d_sb, flags); + if (au_ftest_lock(flags, DW)) + di_write_lock_child(dentry); + else + di_read_lock_child(dentry, flags); +} + +void aufs_read_unlock(struct dentry *dentry, int flags) +{ + if (au_ftest_lock(flags, DW)) + di_write_unlock(dentry); + else + di_read_unlock(dentry, flags); + si_read_unlock(dentry->d_sb); +} + +void aufs_write_lock(struct dentry *dentry) +{ + si_write_lock(dentry->d_sb); + di_write_lock_child(dentry); +} + +void aufs_write_unlock(struct dentry *dentry) +{ + di_write_unlock(dentry); + si_write_unlock(dentry->d_sb); +} + +void aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int flags) +{ + si_read_lock(d1->d_sb, flags); + di_write_lock2_child(d1, d2, au_ftest_lock(flags, DIR)); +} + +void aufs_read_and_write_unlock2(struct dentry *d1, struct dentry *d2) +{ + di_write_unlock2(d1, d2); + si_read_unlock(d1->d_sb); +} + +/* ---------------------------------------------------------------------- */ + +int si_pid_test_slow(struct super_block *sb) +{ + void *p; + + rcu_read_lock(); + p = radix_tree_lookup(&au_sbi(sb)->au_si_pid.tree, current->pid); + rcu_read_unlock(); + + return (long)p; +} + +void si_pid_set_slow(struct super_block *sb) +{ + int err; + struct au_sbinfo *sbinfo; + + AuDebugOn(si_pid_test_slow(sb)); + + sbinfo = au_sbi(sb); + err = radix_tree_preload(GFP_NOFS | __GFP_NOFAIL); + AuDebugOn(err); + spin_lock(&sbinfo->au_si_pid.tree_lock); + err = radix_tree_insert(&sbinfo->au_si_pid.tree, current->pid, + (void *)1); + spin_unlock(&sbinfo->au_si_pid.tree_lock); + AuDebugOn(err); + radix_tree_preload_end(); +} + +void si_pid_clr_slow(struct super_block *sb) +{ + void *p; + struct au_sbinfo *sbinfo; + + AuDebugOn(!si_pid_test_slow(sb)); + + sbinfo = au_sbi(sb); + spin_lock(&sbinfo->au_si_pid.tree_lock); + p = radix_tree_delete(&sbinfo->au_si_pid.tree, current->pid); + spin_unlock(&sbinfo->au_si_pid.tree_lock); + AuDebugOn(1 != (long)p); +} --- linux-2.6.35.orig/ubuntu/aufs/fstype.h +++ linux-2.6.35/ubuntu/aufs/fstype.h @@ -0,0 +1,497 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * judging filesystem type + */ + +#ifndef __AUFS_FSTYPE_H__ +#define __AUFS_FSTYPE_H__ + +#ifdef __KERNEL__ + +#include +#include +#include +#include + +static inline int au_test_aufs(struct super_block *sb) +{ + return sb->s_magic == AUFS_SUPER_MAGIC; +} + +static inline const char *au_sbtype(struct super_block *sb) +{ + return sb->s_type->name; +} + +static inline int au_test_iso9660(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_ROMFS_FS) || defined(CONFIG_ROMFS_FS_MODULE) + return sb->s_magic == ROMFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_romfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_ISO9660_FS) || defined(CONFIG_ISO9660_FS_MODULE) + return sb->s_magic == ISOFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_cramfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_CRAMFS) || defined(CONFIG_CRAMFS_MODULE) + return sb->s_magic == CRAMFS_MAGIC; +#endif + return 0; +} + +static inline int au_test_nfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_NFS_FS) || defined(CONFIG_NFS_FS_MODULE) + return sb->s_magic == NFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_fuse(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_FUSE_FS) || defined(CONFIG_FUSE_FS_MODULE) + return sb->s_magic == FUSE_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_xfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_XFS_FS) || defined(CONFIG_XFS_FS_MODULE) + return sb->s_magic == XFS_SB_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_tmpfs(struct super_block *sb __maybe_unused) +{ +#ifdef CONFIG_TMPFS + return sb->s_magic == TMPFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_ecryptfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_ECRYPT_FS) || defined(CONFIG_ECRYPT_FS_MODULE) + return !strcmp(au_sbtype(sb), "ecryptfs"); +#else + return 0; +#endif +} + +static inline int au_test_smbfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_SMB_FS) || defined(CONFIG_SMB_FS_MODULE) + return sb->s_magic == SMB_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_ocfs2(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_OCFS2_FS) || defined(CONFIG_OCFS2_FS_MODULE) + return sb->s_magic == OCFS2_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_ocfs2_dlmfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_OCFS2_FS_O2CB) || defined(CONFIG_OCFS2_FS_O2CB_MODULE) + return sb->s_magic == DLMFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_coda(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_CODA_FS) || defined(CONFIG_CODA_FS_MODULE) + return sb->s_magic == CODA_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_v9fs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_9P_FS) || defined(CONFIG_9P_FS_MODULE) + return sb->s_magic == V9FS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_ext4(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_EXT4DEV_FS) || defined(CONFIG_EXT4DEV_FS_MODULE) + return sb->s_magic == EXT4_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_sysv(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_SYSV_FS) || defined(CONFIG_SYSV_FS_MODULE) + return !strcmp(au_sbtype(sb), "sysv"); +#else + return 0; +#endif +} + +static inline int au_test_ramfs(struct super_block *sb) +{ + return sb->s_magic == RAMFS_MAGIC; +} + +static inline int au_test_ubifs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_UBIFS_FS) || defined(CONFIG_UBIFS_FS_MODULE) + return sb->s_magic == UBIFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_procfs(struct super_block *sb __maybe_unused) +{ +#ifdef CONFIG_PROC_FS + return sb->s_magic == PROC_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_sysfs(struct super_block *sb __maybe_unused) +{ +#ifdef CONFIG_SYSFS + return sb->s_magic == SYSFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_configfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_CONFIGFS_FS) || defined(CONFIG_CONFIGFS_FS_MODULE) + return sb->s_magic == CONFIGFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_minix(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_MINIX_FS) || defined(CONFIG_MINIX_FS_MODULE) + return sb->s_magic == MINIX3_SUPER_MAGIC + || sb->s_magic == MINIX2_SUPER_MAGIC + || sb->s_magic == MINIX2_SUPER_MAGIC2 + || sb->s_magic == MINIX_SUPER_MAGIC + || sb->s_magic == MINIX_SUPER_MAGIC2; +#else + return 0; +#endif +} + +static inline int au_test_cifs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_CIFS_FS) || defined(CONFIGCIFS_FS_MODULE) + return sb->s_magic == CIFS_MAGIC_NUMBER; +#else + return 0; +#endif +} + +static inline int au_test_fat(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_FAT_FS) || defined(CONFIG_FAT_FS_MODULE) + return sb->s_magic == MSDOS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_msdos(struct super_block *sb) +{ + return au_test_fat(sb); +} + +static inline int au_test_vfat(struct super_block *sb) +{ + return au_test_fat(sb); +} + +static inline int au_test_securityfs(struct super_block *sb __maybe_unused) +{ +#ifdef CONFIG_SECURITYFS + return sb->s_magic == SECURITYFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_squashfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_SQUASHFS) || defined(CONFIG_SQUASHFS_MODULE) + return sb->s_magic == SQUASHFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_btrfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE) + return sb->s_magic == BTRFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_xenfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_XENFS) || defined(CONFIG_XENFS_MODULE) + return sb->s_magic == XENFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_debugfs(struct super_block *sb __maybe_unused) +{ +#ifdef CONFIG_DEBUG_FS + return sb->s_magic == DEBUGFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_nilfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_NILFS) || defined(CONFIG_NILFS_MODULE) + return sb->s_magic == NILFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_hfsplus(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_HFSPLUS_FS) || defined(CONFIG_HFSPLUS_FS_MODULE) + return sb->s_magic == HFSPLUS_SUPER_MAGIC; +#else + return 0; +#endif +} + +/* ---------------------------------------------------------------------- */ +/* + * they can't be an aufs branch. + */ +static inline int au_test_fs_unsuppoted(struct super_block *sb) +{ + return +#ifndef CONFIG_AUFS_BR_RAMFS + au_test_ramfs(sb) || +#endif + au_test_procfs(sb) + || au_test_sysfs(sb) + || au_test_configfs(sb) + || au_test_debugfs(sb) + || au_test_securityfs(sb) + || au_test_xenfs(sb) + || au_test_ecryptfs(sb) + /* || !strcmp(au_sbtype(sb), "unionfs") */ + || au_test_aufs(sb); /* will be supported in next version */ +} + +/* + * If the filesystem supports NFS-export, then it has to support NULL as + * a nameidata parameter for ->create(), ->lookup() and ->d_revalidate(). + * We can apply this principle when we handle a lower filesystem. + */ +static inline int au_test_fs_null_nd(struct super_block *sb) +{ + return !!sb->s_export_op; +} + +static inline int au_test_fs_remote(struct super_block *sb) +{ + return !au_test_tmpfs(sb) +#ifdef CONFIG_AUFS_BR_RAMFS + && !au_test_ramfs(sb) +#endif + && !(sb->s_type->fs_flags & FS_REQUIRES_DEV); +} + +/* ---------------------------------------------------------------------- */ + +/* + * Note: these functions (below) are created after reading ->getattr() in all + * filesystems under linux/fs. it means we have to do so in every update... + */ + +/* + * some filesystems require getattr to refresh the inode attributes before + * referencing. + * in most cases, we can rely on the inode attribute in NFS (or every remote fs) + * and leave the work for d_revalidate() + */ +static inline int au_test_fs_refresh_iattr(struct super_block *sb) +{ + return au_test_nfs(sb) + || au_test_fuse(sb) + /* || au_test_smbfs(sb) */ /* untested */ + /* || au_test_ocfs2(sb) */ /* untested */ + /* || au_test_btrfs(sb) */ /* untested */ + /* || au_test_coda(sb) */ /* untested */ + /* || au_test_v9fs(sb) */ /* untested */ + ; +} + +/* + * filesystems which don't maintain i_size or i_blocks. + */ +static inline int au_test_fs_bad_iattr_size(struct super_block *sb) +{ + return au_test_xfs(sb) + || au_test_btrfs(sb) + || au_test_ubifs(sb) + || au_test_hfsplus(sb) /* maintained, but incorrect */ + /* || au_test_ext4(sb) */ /* untested */ + /* || au_test_ocfs2(sb) */ /* untested */ + /* || au_test_ocfs2_dlmfs(sb) */ /* untested */ + /* || au_test_sysv(sb) */ /* untested */ + /* || au_test_minix(sb) */ /* untested */ + ; +} + +/* + * filesystems which don't store the correct value in some of their inode + * attributes. + */ +static inline int au_test_fs_bad_iattr(struct super_block *sb) +{ + return au_test_fs_bad_iattr_size(sb) + /* || au_test_cifs(sb) */ /* untested */ + || au_test_fat(sb) + || au_test_msdos(sb) + || au_test_vfat(sb); +} + +/* they don't check i_nlink in link(2) */ +static inline int au_test_fs_no_limit_nlink(struct super_block *sb) +{ + return au_test_tmpfs(sb) +#ifdef CONFIG_AUFS_BR_RAMFS + || au_test_ramfs(sb) +#endif + || au_test_ubifs(sb) + || au_test_btrfs(sb) + || au_test_hfsplus(sb); +} + +/* + * filesystems which sets S_NOATIME and S_NOCMTIME. + */ +static inline int au_test_fs_notime(struct super_block *sb) +{ + return au_test_nfs(sb) + || au_test_fuse(sb) + || au_test_ubifs(sb) + /* || au_test_cifs(sb) */ /* untested */ + ; +} + +/* + * filesystems which requires replacing i_mapping. + */ +static inline int au_test_fs_bad_mapping(struct super_block *sb) +{ + return au_test_fuse(sb) + || au_test_ubifs(sb); +} + +/* temporary support for i#1 in cramfs */ +static inline int au_test_fs_unique_ino(struct inode *inode) +{ + if (au_test_cramfs(inode->i_sb)) + return inode->i_ino != 1; + return 1; +} + +/* ---------------------------------------------------------------------- */ + +/* + * the filesystem where the xino files placed must support i/o after unlink and + * maintain i_size and i_blocks. + */ +static inline int au_test_fs_bad_xino(struct super_block *sb) +{ + return au_test_fs_remote(sb) + || au_test_fs_bad_iattr_size(sb) +#ifdef CONFIG_AUFS_BR_RAMFS + || !(au_test_ramfs(sb) || au_test_fs_null_nd(sb)) +#else + || !au_test_fs_null_nd(sb) /* to keep xino code simple */ +#endif + /* don't want unnecessary work for xino */ + || au_test_aufs(sb) + || au_test_ecryptfs(sb) + || au_test_nilfs(sb); +} + +static inline int au_test_fs_trunc_xino(struct super_block *sb) +{ + return au_test_tmpfs(sb) + || au_test_ramfs(sb); +} + +/* + * test if the @sb is real-readonly. + */ +static inline int au_test_fs_rr(struct super_block *sb) +{ + return au_test_squashfs(sb) + || au_test_iso9660(sb) + || au_test_cramfs(sb) + || au_test_romfs(sb); +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_FSTYPE_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/rwsem.h +++ linux-2.6.35/ubuntu/aufs/rwsem.h @@ -0,0 +1,187 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * simple read-write semaphore wrappers + */ + +#ifndef __AUFS_RWSEM_H__ +#define __AUFS_RWSEM_H__ + +#ifdef __KERNEL__ + +#include +#include "debug.h" + +struct au_rwsem { + struct rw_semaphore rwsem; +#ifdef CONFIG_AUFS_DEBUG + /* just for debugging, not almighty counter */ + atomic_t rcnt, wcnt; +#endif +}; + +#ifdef CONFIG_AUFS_DEBUG +#define AuDbgCntInit(rw) do { \ + atomic_set(&(rw)->rcnt, 0); \ + atomic_set(&(rw)->wcnt, 0); \ + smp_mb(); /* atomic set */ \ +} while (0) + +#define AuDbgRcntInc(rw) atomic_inc_return(&(rw)->rcnt) +#define AuDbgRcntDec(rw) WARN_ON(atomic_dec_return(&(rw)->rcnt) < 0) +#define AuDbgWcntInc(rw) WARN_ON(atomic_inc_return(&(rw)->wcnt) > 1) +#define AuDbgWcntDec(rw) WARN_ON(atomic_dec_return(&(rw)->wcnt) < 0) +#else +#define AuDbgCntInit(rw) do {} while (0) +#define AuDbgRcntInc(rw) do {} while (0) +#define AuDbgRcntDec(rw) do {} while (0) +#define AuDbgWcntInc(rw) do {} while (0) +#define AuDbgWcntDec(rw) do {} while (0) +#endif /* CONFIG_AUFS_DEBUG */ + +/* to debug easier, do not make them inlined functions */ +#define AuRwMustNoWaiters(rw) AuDebugOn(!list_empty(&(rw)->rwsem.wait_list)) +/* rwsem_is_locked() is unusable */ +#define AuRwMustReadLock(rw) AuDebugOn(atomic_read(&(rw)->rcnt) <= 0) +#define AuRwMustWriteLock(rw) AuDebugOn(atomic_read(&(rw)->wcnt) <= 0) +#define AuRwMustAnyLock(rw) AuDebugOn(atomic_read(&(rw)->rcnt) <= 0 \ + && atomic_read(&(rw)->wcnt) <= 0) +#define AuRwDestroy(rw) AuDebugOn(atomic_read(&(rw)->rcnt) \ + || atomic_read(&(rw)->wcnt)) + +static inline void au_rw_init(struct au_rwsem *rw) +{ + AuDbgCntInit(rw); + init_rwsem(&rw->rwsem); +} + +static inline void au_rw_init_wlock(struct au_rwsem *rw) +{ + au_rw_init(rw); + down_write(&rw->rwsem); + AuDbgWcntInc(rw); +} + +static inline void au_rw_init_wlock_nested(struct au_rwsem *rw, + unsigned int lsc) +{ + au_rw_init(rw); + down_write_nested(&rw->rwsem, lsc); + AuDbgWcntInc(rw); +} + +static inline void au_rw_read_lock(struct au_rwsem *rw) +{ + down_read(&rw->rwsem); + AuDbgRcntInc(rw); +} + +static inline void au_rw_read_lock_nested(struct au_rwsem *rw, unsigned int lsc) +{ + down_read_nested(&rw->rwsem, lsc); + AuDbgRcntInc(rw); +} + +static inline void au_rw_read_unlock(struct au_rwsem *rw) +{ + AuRwMustReadLock(rw); + AuDbgRcntDec(rw); + up_read(&rw->rwsem); +} + +static inline void au_rw_dgrade_lock(struct au_rwsem *rw) +{ + AuRwMustWriteLock(rw); + AuDbgRcntInc(rw); + AuDbgWcntDec(rw); + downgrade_write(&rw->rwsem); +} + +static inline void au_rw_write_lock(struct au_rwsem *rw) +{ + down_write(&rw->rwsem); + AuDbgWcntInc(rw); +} + +static inline void au_rw_write_lock_nested(struct au_rwsem *rw, + unsigned int lsc) +{ + down_write_nested(&rw->rwsem, lsc); + AuDbgWcntInc(rw); +} + +static inline void au_rw_write_unlock(struct au_rwsem *rw) +{ + AuRwMustWriteLock(rw); + AuDbgWcntDec(rw); + up_write(&rw->rwsem); +} + +/* why is not _nested version defined */ +static inline int au_rw_read_trylock(struct au_rwsem *rw) +{ + int ret = down_read_trylock(&rw->rwsem); + if (ret) + AuDbgRcntInc(rw); + return ret; +} + +static inline int au_rw_write_trylock(struct au_rwsem *rw) +{ + int ret = down_write_trylock(&rw->rwsem); + if (ret) + AuDbgWcntInc(rw); + return ret; +} + +#undef AuDbgCntInit +#undef AuDbgRcntInc +#undef AuDbgRcntDec +#undef AuDbgWcntInc +#undef AuDbgWcntDec + +#define AuSimpleLockRwsemFuncs(prefix, param, rwsem) \ +static inline void prefix##_read_lock(param) \ +{ au_rw_read_lock(rwsem); } \ +static inline void prefix##_write_lock(param) \ +{ au_rw_write_lock(rwsem); } \ +static inline int prefix##_read_trylock(param) \ +{ return au_rw_read_trylock(rwsem); } \ +static inline int prefix##_write_trylock(param) \ +{ return au_rw_write_trylock(rwsem); } +/* why is not _nested version defined */ +/* static inline void prefix##_read_trylock_nested(param, lsc) +{ au_rw_read_trylock_nested(rwsem, lsc)); } +static inline void prefix##_write_trylock_nestd(param, lsc) +{ au_rw_write_trylock_nested(rwsem, lsc); } */ + +#define AuSimpleUnlockRwsemFuncs(prefix, param, rwsem) \ +static inline void prefix##_read_unlock(param) \ +{ au_rw_read_unlock(rwsem); } \ +static inline void prefix##_write_unlock(param) \ +{ au_rw_write_unlock(rwsem); } \ +static inline void prefix##_downgrade_lock(param) \ +{ au_rw_dgrade_lock(rwsem); } + +#define AuSimpleRwsemFuncs(prefix, param, rwsem) \ + AuSimpleLockRwsemFuncs(prefix, param, rwsem) \ + AuSimpleUnlockRwsemFuncs(prefix, param, rwsem) + +#endif /* __KERNEL__ */ +#endif /* __AUFS_RWSEM_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/wkq.c +++ linux-2.6.35/ubuntu/aufs/wkq.c @@ -0,0 +1,221 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * workqueue for asynchronous/super-io operations + * todo: try new dredential scheme + */ + +#include +#include "aufs.h" + +/* internal workqueue named AUFS_WKQ_NAME and AUFS_WKQ_PRE_NAME */ +enum { + AuWkq_INORMAL, + AuWkq_IPRE +}; + +static struct { + char *name; + struct workqueue_struct *wkq; +} au_wkq[] = { + [AuWkq_INORMAL] = { + .name = AUFS_WKQ_NAME + }, + [AuWkq_IPRE] = { + .name = AUFS_WKQ_PRE_NAME + } +}; + +struct au_wkinfo { + struct work_struct wk; + struct super_block *sb; + + unsigned int flags; /* see wkq.h */ + + au_wkq_func_t func; + void *args; + + struct completion *comp; +}; + +/* ---------------------------------------------------------------------- */ + +static void wkq_func(struct work_struct *wk) +{ + struct au_wkinfo *wkinfo = container_of(wk, struct au_wkinfo, wk); + + wkinfo->func(wkinfo->args); + if (au_ftest_wkq(wkinfo->flags, WAIT)) + complete(wkinfo->comp); + else { + kobject_put(&au_sbi(wkinfo->sb)->si_kobj); + module_put(THIS_MODULE); + kfree(wkinfo); + } +} + +/* + * Since struct completion is large, try allocating it dynamically. + */ +#if defined(CONFIG_4KSTACKS) || defined(AuTest4KSTACKS) +#define AuWkqCompDeclare(name) struct completion *comp = NULL + +static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp) +{ + *comp = kmalloc(sizeof(**comp), GFP_NOFS); + if (*comp) { + init_completion(*comp); + wkinfo->comp = *comp; + return 0; + } + return -ENOMEM; +} + +static void au_wkq_comp_free(struct completion *comp) +{ + kfree(comp); +} + +#else + +/* no braces */ +#define AuWkqCompDeclare(name) \ + DECLARE_COMPLETION_ONSTACK(_ ## name); \ + struct completion *comp = &_ ## name + +static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp) +{ + wkinfo->comp = *comp; + return 0; +} + +static void au_wkq_comp_free(struct completion *comp __maybe_unused) +{ + /* empty */ +} +#endif /* 4KSTACKS */ + +static void au_wkq_run(struct au_wkinfo *wkinfo, unsigned int flags) +{ + struct workqueue_struct *wkq; + + au_dbg_verify_kthread(); + if (flags & AuWkq_WAIT) { + INIT_WORK_ON_STACK(&wkinfo->wk, wkq_func); + wkq = au_wkq[AuWkq_INORMAL].wkq; + if (flags & AuWkq_PRE) + wkq = au_wkq[AuWkq_IPRE].wkq; + queue_work(wkq, &wkinfo->wk); + } else { + INIT_WORK(&wkinfo->wk, wkq_func); + schedule_work(&wkinfo->wk); + } +} + +int au_wkq_do_wait(unsigned int flags, au_wkq_func_t func, void *args) +{ + int err; + AuWkqCompDeclare(comp); + struct au_wkinfo wkinfo = { + .flags = flags, + .func = func, + .args = args + }; + + err = au_wkq_comp_alloc(&wkinfo, &comp); + if (!err) { + au_wkq_run(&wkinfo, flags); + /* no timeout, no interrupt */ + wait_for_completion(wkinfo.comp); + au_wkq_comp_free(comp); + destroy_work_on_stack(&wkinfo.wk); + } + + return err; + +} + +int au_wkq_nowait(au_wkq_func_t func, void *args, struct super_block *sb) +{ + int err; + struct au_wkinfo *wkinfo; + + atomic_inc(&au_sbi(sb)->si_nowait.nw_len); + + /* + * wkq_func() must free this wkinfo. + * it highly depends upon the implementation of workqueue. + */ + err = 0; + wkinfo = kmalloc(sizeof(*wkinfo), GFP_NOFS); + if (wkinfo) { + wkinfo->sb = sb; + wkinfo->flags = !AuWkq_WAIT; + wkinfo->func = func; + wkinfo->args = args; + wkinfo->comp = NULL; + kobject_get(&au_sbi(sb)->si_kobj); + __module_get(THIS_MODULE); + + au_wkq_run(wkinfo, !AuWkq_WAIT); + } else { + err = -ENOMEM; + atomic_dec(&au_sbi(sb)->si_nowait.nw_len); + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +void au_nwt_init(struct au_nowait_tasks *nwt) +{ + atomic_set(&nwt->nw_len, 0); + /* smp_mb(); */ /* atomic_set */ + init_waitqueue_head(&nwt->nw_wq); +} + +void au_wkq_fin(void) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(au_wkq); i++) + if (au_wkq[i].wkq) + destroy_workqueue(au_wkq[i].wkq); +} + +int __init au_wkq_init(void) +{ + int err, i; + + err = 0; + for (i = 0; !err && i < ARRAY_SIZE(au_wkq); i++) { + au_wkq[i].wkq = create_workqueue(au_wkq[i].name); + if (IS_ERR(au_wkq[i].wkq)) + err = PTR_ERR(au_wkq[i].wkq); + else if (!au_wkq[i].wkq) + err = -ENOMEM; + if (unlikely(err)) + au_wkq[i].wkq = NULL; + } + if (unlikely(err)) + au_wkq_fin(); + + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/vfsub.c +++ linux-2.6.35/ubuntu/aufs/vfsub.c @@ -0,0 +1,786 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sub-routines for VFS + */ + +#include +#include +#include +#include +#include +#include +#include "aufs.h" + +int vfsub_update_h_iattr(struct path *h_path, int *did) +{ + int err; + struct kstat st; + struct super_block *h_sb; + + /* for remote fs, leave work for its getattr or d_revalidate */ + /* for bad i_attr fs, handle them in aufs_getattr() */ + /* still some fs may acquire i_mutex. we need to skip them */ + err = 0; + if (!did) + did = &err; + h_sb = h_path->dentry->d_sb; + *did = (!au_test_fs_remote(h_sb) && au_test_fs_refresh_iattr(h_sb)); + if (*did) + err = vfs_getattr(h_path->mnt, h_path->dentry, &st); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_conv_oflags(int flags) +{ + int mask = 0; + +#ifdef CONFIG_IMA + fmode_t fmode; + + /* mask = MAY_OPEN; */ + fmode = OPEN_FMODE(flags); + if (fmode & FMODE_READ) + mask |= MAY_READ; + if ((fmode & FMODE_WRITE) + || (flags & O_TRUNC)) + mask |= MAY_WRITE; + /* + * if (flags & O_APPEND) + * mask |= MAY_APPEND; + */ + if (flags & vfsub_fmode_to_uint(FMODE_EXEC)) + mask |= MAY_EXEC; + + AuDbg("flags 0x%x, mask 0x%x\n", flags, mask); +#endif + + return mask; +} + +struct file *vfsub_dentry_open(struct path *path, int flags) +{ + struct file *file; + int err; + + path_get(path); + file = dentry_open(path->dentry, path->mnt, flags, current_cred()); + if (IS_ERR(file)) + goto out; + + err = ima_file_check(file, au_conv_oflags(flags)); + if (unlikely(err)) { + fput(file); + file = ERR_PTR(err); + } +out: + return file; +} + +struct file *vfsub_filp_open(const char *path, int oflags, int mode) +{ + struct file *file; + + file = filp_open(path, oflags, mode); + if (IS_ERR(file)) + goto out; + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/ + + out: + return file; +} + +int vfsub_kern_path(const char *name, unsigned int flags, struct path *path) +{ + int err; + + err = kern_path(name, flags, path); + if (!err && path->dentry->d_inode) + vfsub_update_h_iattr(path, /*did*/NULL); /*ignore*/ + return err; +} + +struct dentry *vfsub_lookup_one_len(const char *name, struct dentry *parent, + int len) +{ + struct path path = { + .mnt = NULL + }; + + /* VFS checks it too, but by WARN_ON_ONCE() */ + IMustLock(parent->d_inode); + + path.dentry = lookup_one_len(name, parent, len); + if (IS_ERR(path.dentry)) + goto out; + if (path.dentry->d_inode) + vfsub_update_h_iattr(&path, /*did*/NULL); /*ignore*/ + + out: + AuTraceErrPtr(path.dentry); + return path.dentry; +} + +struct dentry *vfsub_lookup_hash(struct nameidata *nd) +{ + struct path path = { + .mnt = nd->path.mnt + }; + + IMustLock(nd->path.dentry->d_inode); + + path.dentry = lookup_hash(nd); + if (IS_ERR(path.dentry)) + goto out; + if (path.dentry->d_inode) + vfsub_update_h_iattr(&path, /*did*/NULL); /*ignore*/ + + out: + AuTraceErrPtr(path.dentry); + return path.dentry; +} + +/* ---------------------------------------------------------------------- */ + +struct dentry *vfsub_lock_rename(struct dentry *d1, struct au_hinode *hdir1, + struct dentry *d2, struct au_hinode *hdir2) +{ + struct dentry *d; + + d = lock_rename(d1, d2); + au_hn_suspend(hdir1); + if (hdir1 != hdir2) + au_hn_suspend(hdir2); + + return d; +} + +void vfsub_unlock_rename(struct dentry *d1, struct au_hinode *hdir1, + struct dentry *d2, struct au_hinode *hdir2) +{ + au_hn_resume(hdir1); + if (hdir1 != hdir2) + au_hn_resume(hdir2); + unlock_rename(d1, d2); +} + +/* ---------------------------------------------------------------------- */ + +int vfsub_create(struct inode *dir, struct path *path, int mode) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_mknod(path, d, mode, 0); + path->dentry = d; + if (unlikely(err)) + goto out; + + if (au_test_fs_null_nd(dir->i_sb)) + err = vfs_create(dir, path->dentry, mode, NULL); + else { + struct nameidata h_nd; + + memset(&h_nd, 0, sizeof(h_nd)); + h_nd.flags = LOOKUP_CREATE; + h_nd.intent.open.flags = O_CREAT + | vfsub_fmode_to_uint(FMODE_READ); + h_nd.intent.open.create_mode = mode; + h_nd.path.dentry = path->dentry->d_parent; + h_nd.path.mnt = path->mnt; + path_get(&h_nd.path); + err = vfs_create(dir, path->dentry, mode, &h_nd); + path_put(&h_nd.path); + } + + if (!err) { + struct path tmp = *path; + int did; + + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = path->dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + + out: + return err; +} + +int vfsub_symlink(struct inode *dir, struct path *path, const char *symname) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_symlink(path, d, symname); + path->dentry = d; + if (unlikely(err)) + goto out; + + err = vfs_symlink(dir, path->dentry, symname); + if (!err) { + struct path tmp = *path; + int did; + + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = path->dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + + out: + return err; +} + +int vfsub_mknod(struct inode *dir, struct path *path, int mode, dev_t dev) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_mknod(path, d, mode, dev); + path->dentry = d; + if (unlikely(err)) + goto out; + + err = vfs_mknod(dir, path->dentry, mode, dev); + if (!err) { + struct path tmp = *path; + int did; + + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = path->dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + + out: + return err; +} + +static int au_test_nlink(struct inode *inode) +{ + const unsigned int link_max = UINT_MAX >> 1; /* rough margin */ + + if (!au_test_fs_no_limit_nlink(inode->i_sb) + || inode->i_nlink < link_max) + return 0; + return -EMLINK; +} + +int vfsub_link(struct dentry *src_dentry, struct inode *dir, struct path *path) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + err = au_test_nlink(src_dentry->d_inode); + if (unlikely(err)) + return err; + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_link(src_dentry, path, d); + path->dentry = d; + if (unlikely(err)) + goto out; + + err = vfs_link(src_dentry, dir, path->dentry); + if (!err) { + struct path tmp = *path; + int did; + + /* fuse has different memory inode for the same inumber */ + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = path->dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + tmp.dentry = src_dentry; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + + out: + return err; +} + +int vfsub_rename(struct inode *src_dir, struct dentry *src_dentry, + struct inode *dir, struct path *path) +{ + int err; + struct path tmp = { + .mnt = path->mnt + }; + struct dentry *d; + + IMustLock(dir); + IMustLock(src_dir); + + d = path->dentry; + path->dentry = d->d_parent; + tmp.dentry = src_dentry->d_parent; + err = security_path_rename(&tmp, src_dentry, path, d); + path->dentry = d; + if (unlikely(err)) + goto out; + + err = vfs_rename(src_dir, src_dentry, dir, path->dentry); + if (!err) { + int did; + + tmp.dentry = d->d_parent; + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = src_dentry; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + tmp.dentry = src_dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + + out: + return err; +} + +int vfsub_mkdir(struct inode *dir, struct path *path, int mode) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_mkdir(path, d, mode); + path->dentry = d; + if (unlikely(err)) + goto out; + + err = vfs_mkdir(dir, path->dentry, mode); + if (!err) { + struct path tmp = *path; + int did; + + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = path->dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + + out: + return err; +} + +int vfsub_rmdir(struct inode *dir, struct path *path) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_rmdir(path, d); + path->dentry = d; + if (unlikely(err)) + goto out; + + err = vfs_rmdir(dir, path->dentry); + if (!err) { + struct path tmp = { + .dentry = path->dentry->d_parent, + .mnt = path->mnt + }; + + vfsub_update_h_iattr(&tmp, /*did*/NULL); /*ignore*/ + } + + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count, + loff_t *ppos) +{ + ssize_t err; + + err = vfs_read(file, ubuf, count, ppos); + if (err >= 0) + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +/* todo: kernel_read()? */ +ssize_t vfsub_read_k(struct file *file, void *kbuf, size_t count, + loff_t *ppos) +{ + ssize_t err; + mm_segment_t oldfs; + union { + void *k; + char __user *u; + } buf; + + buf.k = kbuf; + oldfs = get_fs(); + set_fs(KERNEL_DS); + err = vfsub_read_u(file, buf.u, count, ppos); + set_fs(oldfs); + return err; +} + +ssize_t vfsub_write_u(struct file *file, const char __user *ubuf, size_t count, + loff_t *ppos) +{ + ssize_t err; + + err = vfs_write(file, ubuf, count, ppos); + if (err >= 0) + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count, loff_t *ppos) +{ + ssize_t err; + mm_segment_t oldfs; + union { + void *k; + const char __user *u; + } buf; + + buf.k = kbuf; + oldfs = get_fs(); + set_fs(KERNEL_DS); + err = vfsub_write_u(file, buf.u, count, ppos); + set_fs(oldfs); + return err; +} + +int vfsub_flush(struct file *file, fl_owner_t id) +{ + int err; + + err = 0; + if (file->f_op && file->f_op->flush) { + err = file->f_op->flush(file, id); + if (!err) + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); + /*ignore*/ + } + return err; +} + +int vfsub_readdir(struct file *file, filldir_t filldir, void *arg) +{ + int err; + + err = vfs_readdir(file, filldir, arg); + if (err >= 0) + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +long vfsub_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) +{ + long err; + + err = do_splice_to(in, ppos, pipe, len, flags); + file_accessed(in); + if (err >= 0) + vfsub_update_h_iattr(&in->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags) +{ + long err; + + err = do_splice_from(pipe, out, ppos, len, flags); + if (err >= 0) + vfsub_update_h_iattr(&out->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +/* cf. open.c:do_sys_truncate() and do_sys_ftruncate() */ +int vfsub_trunc(struct path *h_path, loff_t length, unsigned int attr, + struct file *h_file) +{ + int err; + struct inode *h_inode; + + h_inode = h_path->dentry->d_inode; + if (!h_file) { + err = mnt_want_write(h_path->mnt); + if (err) + goto out; + err = inode_permission(h_inode, MAY_WRITE); + if (err) + goto out_mnt; + err = get_write_access(h_inode); + if (err) + goto out_mnt; + err = break_lease(h_inode, O_WRONLY); + if (err) + goto out_inode; + } + + err = locks_verify_truncate(h_inode, h_file, length); + if (!err) + err = security_path_truncate(h_path, length, attr); + if (!err) + err = do_truncate(h_path->dentry, length, attr, h_file); + + out_inode: + if (!h_file) + put_write_access(h_inode); + out_mnt: + if (!h_file) + mnt_drop_write(h_path->mnt); + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct au_vfsub_mkdir_args { + int *errp; + struct inode *dir; + struct path *path; + int mode; +}; + +static void au_call_vfsub_mkdir(void *args) +{ + struct au_vfsub_mkdir_args *a = args; + *a->errp = vfsub_mkdir(a->dir, a->path, a->mode); +} + +int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode) +{ + int err, do_sio, wkq_err; + + do_sio = au_test_h_perm_sio(dir, MAY_EXEC | MAY_WRITE); + if (!do_sio) + err = vfsub_mkdir(dir, path, mode); + else { + struct au_vfsub_mkdir_args args = { + .errp = &err, + .dir = dir, + .path = path, + .mode = mode + }; + wkq_err = au_wkq_wait(au_call_vfsub_mkdir, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + return err; +} + +struct au_vfsub_rmdir_args { + int *errp; + struct inode *dir; + struct path *path; +}; + +static void au_call_vfsub_rmdir(void *args) +{ + struct au_vfsub_rmdir_args *a = args; + *a->errp = vfsub_rmdir(a->dir, a->path); +} + +int vfsub_sio_rmdir(struct inode *dir, struct path *path) +{ + int err, do_sio, wkq_err; + + do_sio = au_test_h_perm_sio(dir, MAY_EXEC | MAY_WRITE); + if (!do_sio) + err = vfsub_rmdir(dir, path); + else { + struct au_vfsub_rmdir_args args = { + .errp = &err, + .dir = dir, + .path = path + }; + wkq_err = au_wkq_wait(au_call_vfsub_rmdir, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct notify_change_args { + int *errp; + struct path *path; + struct iattr *ia; +}; + +static void call_notify_change(void *args) +{ + struct notify_change_args *a = args; + struct inode *h_inode; + + h_inode = a->path->dentry->d_inode; + IMustLock(h_inode); + + *a->errp = -EPERM; + if (!IS_IMMUTABLE(h_inode) && !IS_APPEND(h_inode)) { + *a->errp = notify_change(a->path->dentry, a->ia); + if (!*a->errp) + vfsub_update_h_iattr(a->path, /*did*/NULL); /*ignore*/ + } + AuTraceErr(*a->errp); +} + +int vfsub_notify_change(struct path *path, struct iattr *ia) +{ + int err; + struct notify_change_args args = { + .errp = &err, + .path = path, + .ia = ia + }; + + call_notify_change(&args); + + return err; +} + +int vfsub_sio_notify_change(struct path *path, struct iattr *ia) +{ + int err, wkq_err; + struct notify_change_args args = { + .errp = &err, + .path = path, + .ia = ia + }; + + wkq_err = au_wkq_wait(call_notify_change, &args); + if (unlikely(wkq_err)) + err = wkq_err; + + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct unlink_args { + int *errp; + struct inode *dir; + struct path *path; +}; + +static void call_unlink(void *args) +{ + struct unlink_args *a = args; + struct dentry *d = a->path->dentry; + struct inode *h_inode; + const int stop_sillyrename = (au_test_nfs(d->d_sb) + && atomic_read(&d->d_count) == 1); + + IMustLock(a->dir); + + a->path->dentry = d->d_parent; + *a->errp = security_path_unlink(a->path, d); + a->path->dentry = d; + if (unlikely(*a->errp)) + return; + + if (!stop_sillyrename) + dget(d); + h_inode = d->d_inode; + if (h_inode) + atomic_inc(&h_inode->i_count); + + *a->errp = vfs_unlink(a->dir, d); + if (!*a->errp) { + struct path tmp = { + .dentry = d->d_parent, + .mnt = a->path->mnt + }; + vfsub_update_h_iattr(&tmp, /*did*/NULL); /*ignore*/ + } + + if (!stop_sillyrename) + dput(d); + if (h_inode) + iput(h_inode); + + AuTraceErr(*a->errp); +} + +/* + * @dir: must be locked. + * @dentry: target dentry. + */ +int vfsub_unlink(struct inode *dir, struct path *path, int force) +{ + int err; + struct unlink_args args = { + .errp = &err, + .dir = dir, + .path = path + }; + + if (!force) + call_unlink(&args); + else { + int wkq_err; + + wkq_err = au_wkq_wait(call_unlink, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/file.c +++ linux-2.6.35/ubuntu/aufs/file.c @@ -0,0 +1,652 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * handling file/dir, and address_space operation + */ + +#include +#include +#include +#include +#include "aufs.h" + +/* drop flags for writing */ +unsigned int au_file_roflags(unsigned int flags) +{ + flags &= ~(O_WRONLY | O_RDWR | O_APPEND | O_CREAT | O_TRUNC); + flags |= O_RDONLY | O_NOATIME; + return flags; +} + +/* common functions to regular file and dir */ +struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags, + struct file *file) +{ + struct file *h_file; + struct dentry *h_dentry; + struct inode *h_inode; + struct super_block *sb; + struct au_branch *br; + struct path h_path; + int err, exec_flag; + + /* a race condition can happen between open and unlink/rmdir */ + h_file = ERR_PTR(-ENOENT); + h_dentry = au_h_dptr(dentry, bindex); + if (au_test_nfsd(current) && !h_dentry) + goto out; + h_inode = h_dentry->d_inode; + if (au_test_nfsd(current) && !h_inode) + goto out; + if (unlikely((!d_unhashed(dentry) && d_unhashed(h_dentry)) + || !h_inode)) + goto out; + + sb = dentry->d_sb; + br = au_sbr(sb, bindex); + h_file = ERR_PTR(-EACCES); + exec_flag = flags & vfsub_fmode_to_uint(FMODE_EXEC); + if (exec_flag && (br->br_mnt->mnt_flags & MNT_NOEXEC)) + goto out; + + /* drop flags for writing */ + if (au_test_ro(sb, bindex, dentry->d_inode)) + flags = au_file_roflags(flags); + flags &= ~O_CREAT; + atomic_inc(&br->br_count); + h_path.dentry = h_dentry; + h_path.mnt = br->br_mnt; + if (!au_special_file(h_inode->i_mode)) + h_file = vfsub_dentry_open(&h_path, flags); + else { + /* this block depends upon the configuration */ + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + si_read_unlock(sb); + h_file = vfsub_dentry_open(&h_path, flags); + si_noflush_read_lock(sb); + fi_write_lock(file); + di_read_lock_child(dentry, AuLock_IR); + } + if (IS_ERR(h_file)) + goto out_br; + + if (exec_flag) { + err = deny_write_access(h_file); + if (unlikely(err)) { + fput(h_file); + h_file = ERR_PTR(err); + goto out_br; + } + } + fsnotify_open(h_dentry); + goto out; /* success */ + + out_br: + atomic_dec(&br->br_count); + out: + return h_file; +} + +int au_do_open(struct file *file, int (*open)(struct file *file, int flags), + struct au_fidir *fidir) +{ + int err; + struct dentry *dentry; + + err = au_finfo_init(file, fidir); + if (unlikely(err)) + goto out; + + dentry = file->f_dentry; + di_read_lock_child(dentry, AuLock_IR); + err = open(file, vfsub_file_flags(file)); + di_read_unlock(dentry, AuLock_IR); + + fi_write_unlock(file); + if (unlikely(err)) { + au_fi(file)->fi_hdir = NULL; + au_finfo_fin(file); + } + + out: + return err; +} + +int au_reopen_nondir(struct file *file) +{ + int err; + aufs_bindex_t bstart; + struct dentry *dentry; + struct file *h_file, *h_file_tmp; + + dentry = file->f_dentry; + AuDebugOn(au_special_file(dentry->d_inode->i_mode)); + bstart = au_dbstart(dentry); + h_file_tmp = NULL; + if (au_fbstart(file) == bstart) { + h_file = au_hf_top(file); + if (file->f_mode == h_file->f_mode) + return 0; /* success */ + h_file_tmp = h_file; + get_file(h_file_tmp); + au_set_h_fptr(file, bstart, NULL); + } + AuDebugOn(au_fi(file)->fi_hdir); + AuDebugOn(au_fbstart(file) < bstart); + + h_file = au_h_open(dentry, bstart, vfsub_file_flags(file) & ~O_TRUNC, + file); + err = PTR_ERR(h_file); + if (IS_ERR(h_file)) + goto out; /* todo: close all? */ + + err = 0; + au_set_fbstart(file, bstart); + au_set_h_fptr(file, bstart, h_file); + au_update_figen(file); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + + out: + if (h_file_tmp) + fput(h_file_tmp); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_reopen_wh(struct file *file, aufs_bindex_t btgt, + struct dentry *hi_wh) +{ + int err; + aufs_bindex_t bstart; + struct au_dinfo *dinfo; + struct dentry *h_dentry; + struct au_hdentry *hdp; + + dinfo = au_di(file->f_dentry); + AuRwMustWriteLock(&dinfo->di_rwsem); + + bstart = dinfo->di_bstart; + dinfo->di_bstart = btgt; + hdp = dinfo->di_hdentry; + h_dentry = hdp[0 + btgt].hd_dentry; + hdp[0 + btgt].hd_dentry = hi_wh; + err = au_reopen_nondir(file); + hdp[0 + btgt].hd_dentry = h_dentry; + dinfo->di_bstart = bstart; + + return err; +} + +static int au_ready_to_write_wh(struct file *file, loff_t len, + aufs_bindex_t bcpup) +{ + int err; + struct inode *inode; + struct dentry *dentry, *hi_wh; + + dentry = file->f_dentry; + au_update_dbstart(dentry); + inode = dentry->d_inode; + hi_wh = au_hi_wh(inode, bcpup); + if (!hi_wh) + err = au_sio_cpup_wh(dentry, bcpup, len, file); + else + /* already copied-up after unlink */ + err = au_reopen_wh(file, bcpup, hi_wh); + + if (!err + && inode->i_nlink > 1 + && au_opt_test(au_mntflags(dentry->d_sb), PLINK)) + au_plink_append(inode, bcpup, au_h_dptr(dentry, bcpup)); + + return err; +} + +/* + * prepare the @file for writing. + */ +int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin) +{ + int err; + aufs_bindex_t bstart, bcpup; + struct dentry *dentry, *parent, *h_dentry; + struct inode *h_inode, *inode; + struct super_block *sb; + struct file *h_file; + + dentry = file->f_dentry; + sb = dentry->d_sb; + inode = dentry->d_inode; + AuDebugOn(au_special_file(inode->i_mode)); + bstart = au_fbstart(file); + err = au_test_ro(sb, bstart, inode); + if (!err && (au_hf_top(file)->f_mode & FMODE_WRITE)) { + err = au_pin(pin, dentry, bstart, AuOpt_UDBA_NONE, /*flags*/0); + goto out; + } + + /* need to cpup */ + parent = dget_parent(dentry); + di_write_lock_parent(parent); + err = AuWbrCopyup(au_sbi(sb), dentry); + bcpup = err; + if (unlikely(err < 0)) + goto out_dgrade; + err = 0; + + if (!au_h_dptr(parent, bcpup)) { + err = au_cpup_dirs(dentry, bcpup); + if (unlikely(err)) + goto out_dgrade; + } + + err = au_pin(pin, dentry, bcpup, AuOpt_UDBA_NONE, + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + if (unlikely(err)) + goto out_dgrade; + + h_dentry = au_hf_top(file)->f_dentry; + h_inode = h_dentry->d_inode; + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + h_file = au_h_open_pre(dentry, bstart); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else if (d_unhashed(dentry) /* || d_unhashed(h_dentry) */ + /* || !h_inode->i_nlink */) { + err = au_ready_to_write_wh(file, len, bcpup); + di_downgrade_lock(parent, AuLock_IR); + } else { + di_downgrade_lock(parent, AuLock_IR); + if (!au_h_dptr(dentry, bcpup)) + err = au_sio_cpup_simple(dentry, bcpup, len, + AuCpup_DTIME); + if (!err) + err = au_reopen_nondir(file); + } + mutex_unlock(&h_inode->i_mutex); + au_h_open_post(dentry, bstart, h_file); + + if (!err) { + au_pin_set_parent_lflag(pin, /*lflag*/0); + goto out_dput; /* success */ + } + au_unpin(pin); + goto out_unlock; + + out_dgrade: + di_downgrade_lock(parent, AuLock_IR); + out_unlock: + di_read_unlock(parent, AuLock_IR); + out_dput: + dput(parent); + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +int au_do_flush(struct file *file, fl_owner_t id, + int (*flush)(struct file *file, fl_owner_t id)) +{ + int err; + struct dentry *dentry; + struct super_block *sb; + struct inode *inode; + + dentry = file->f_dentry; + sb = dentry->d_sb; + inode = dentry->d_inode; + si_noflush_read_lock(sb); + fi_read_lock(file); + ii_read_lock_child(inode); + + err = flush(file, id); + au_cpup_attr_timesizes(inode); + + ii_read_unlock(inode); + fi_read_unlock(file); + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_file_refresh_by_inode(struct file *file, int *need_reopen) +{ + int err; + aufs_bindex_t bstart; + struct au_pin pin; + struct au_finfo *finfo; + struct dentry *dentry, *parent, *hi_wh; + struct inode *inode; + struct super_block *sb; + + FiMustWriteLock(file); + + err = 0; + finfo = au_fi(file); + dentry = file->f_dentry; + sb = dentry->d_sb; + inode = dentry->d_inode; + bstart = au_ibstart(inode); + if (bstart == finfo->fi_btop) + goto out; + + parent = dget_parent(dentry); + if (au_test_ro(sb, bstart, inode)) { + di_read_lock_parent(parent, !AuLock_IR); + err = AuWbrCopyup(au_sbi(sb), dentry); + bstart = err; + di_read_unlock(parent, !AuLock_IR); + if (unlikely(err < 0)) + goto out_parent; + err = 0; + } + + di_read_lock_parent(parent, AuLock_IR); + hi_wh = au_hi_wh(inode, bstart); + if (au_opt_test(au_mntflags(sb), PLINK) + && au_plink_test(inode) + && !d_unhashed(dentry)) { + err = au_test_and_cpup_dirs(dentry, bstart); + if (unlikely(err)) + goto out_unlock; + + /* always superio. */ + err = au_pin(&pin, dentry, bstart, AuOpt_UDBA_NONE, + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + if (!err) + err = au_sio_cpup_simple(dentry, bstart, -1, + AuCpup_DTIME); + au_unpin(&pin); + } else if (hi_wh) { + /* already copied-up after unlink */ + err = au_reopen_wh(file, bstart, hi_wh); + *need_reopen = 0; + } + + out_unlock: + di_read_unlock(parent, AuLock_IR); + out_parent: + dput(parent); + out: + return err; +} + +static void au_do_refresh_dir(struct file *file) +{ + aufs_bindex_t bindex, bend, new_bindex, brid; + struct au_hfile *p, tmp, *q; + struct au_finfo *finfo; + struct super_block *sb; + struct au_fidir *fidir; + + FiMustWriteLock(file); + + sb = file->f_dentry->d_sb; + finfo = au_fi(file); + fidir = finfo->fi_hdir; + AuDebugOn(!fidir); + p = fidir->fd_hfile + finfo->fi_btop; + brid = p->hf_br->br_id; + bend = fidir->fd_bbot; + for (bindex = finfo->fi_btop; bindex <= bend; bindex++, p++) { + if (!p->hf_file) + continue; + + new_bindex = au_br_index(sb, p->hf_br->br_id); + if (new_bindex == bindex) + continue; + if (new_bindex < 0) { + au_set_h_fptr(file, bindex, NULL); + continue; + } + + /* swap two lower inode, and loop again */ + q = fidir->fd_hfile + new_bindex; + tmp = *q; + *q = *p; + *p = tmp; + if (tmp.hf_file) { + bindex--; + p--; + } + } + + p = fidir->fd_hfile; + if (!au_test_mmapped(file) && !d_unhashed(file->f_dentry)) { + bend = au_sbend(sb); + for (finfo->fi_btop = 0; finfo->fi_btop <= bend; + finfo->fi_btop++, p++) + if (p->hf_file) { + if (p->hf_file->f_dentry + && p->hf_file->f_dentry->d_inode) + break; + else + au_hfput(p, file); + } + } else { + bend = au_br_index(sb, brid); + for (finfo->fi_btop = 0; finfo->fi_btop < bend; + finfo->fi_btop++, p++) + if (p->hf_file) + au_hfput(p, file); + bend = au_sbend(sb); + } + + p = fidir->fd_hfile + bend; + for (fidir->fd_bbot = bend; fidir->fd_bbot >= finfo->fi_btop; + fidir->fd_bbot--, p--) + if (p->hf_file) { + if (p->hf_file->f_dentry + && p->hf_file->f_dentry->d_inode) + break; + else + au_hfput(p, file); + } + AuDebugOn(fidir->fd_bbot < finfo->fi_btop); +} + +/* + * after branch manipulating, refresh the file. + */ +static int refresh_file(struct file *file, int (*reopen)(struct file *file)) +{ + int err, need_reopen; + aufs_bindex_t bend, bindex; + struct dentry *dentry; + struct au_finfo *finfo; + struct au_hfile *hfile; + + dentry = file->f_dentry; + finfo = au_fi(file); + if (!finfo->fi_hdir) { + hfile = &finfo->fi_htop; + AuDebugOn(!hfile->hf_file); + bindex = au_br_index(dentry->d_sb, hfile->hf_br->br_id); + AuDebugOn(bindex < 0); + if (bindex != finfo->fi_btop) + au_set_fbstart(file, bindex); + } else { + err = au_fidir_realloc(finfo, au_sbend(dentry->d_sb) + 1); + if (unlikely(err)) + goto out; + au_do_refresh_dir(file); + } + + err = 0; + need_reopen = 1; + if (!au_test_mmapped(file)) + err = au_file_refresh_by_inode(file, &need_reopen); + if (!err && need_reopen && !d_unhashed(dentry)) + err = reopen(file); + if (!err) { + au_update_figen(file); + goto out; /* success */ + } + + /* error, close all lower files */ + if (finfo->fi_hdir) { + bend = au_fbend_dir(file); + for (bindex = au_fbstart(file); bindex <= bend; bindex++) + au_set_h_fptr(file, bindex, NULL); + } + + out: + return err; +} + +/* common function to regular file and dir */ +int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file), + int wlock) +{ + int err; + unsigned int sigen, figen; + aufs_bindex_t bstart; + unsigned char pseudo_link; + struct dentry *dentry; + struct inode *inode; + + err = 0; + dentry = file->f_dentry; + inode = dentry->d_inode; + AuDebugOn(au_special_file(inode->i_mode)); + sigen = au_sigen(dentry->d_sb); + fi_write_lock(file); + figen = au_figen(file); + di_write_lock_child(dentry); + bstart = au_dbstart(dentry); + pseudo_link = (bstart != au_ibstart(inode)); + if (sigen == figen && !pseudo_link && au_fbstart(file) == bstart) { + if (!wlock) { + di_downgrade_lock(dentry, AuLock_IR); + fi_downgrade_lock(file); + } + goto out; /* success */ + } + + AuDbg("sigen %d, figen %d\n", sigen, figen); + if (sigen != au_digen(dentry) + || sigen != au_iigen(inode)) { + err = au_reval_dpath(dentry, sigen); + if (unlikely(err < 0)) + goto out; + AuDebugOn(au_digen(dentry) != sigen + || au_iigen(inode) != sigen); + } + + err = refresh_file(file, reopen); + if (!err) { + if (!wlock) { + di_downgrade_lock(dentry, AuLock_IR); + fi_downgrade_lock(file); + } + } else { + di_write_unlock(dentry); + fi_write_unlock(file); + } + + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* cf. aufs_nopage() */ +/* for madvise(2) */ +static int aufs_readpage(struct file *file __maybe_unused, struct page *page) +{ + unlock_page(page); + return 0; +} + +/* it will never be called, but necessary to support O_DIRECT */ +static ssize_t aufs_direct_IO(int rw, struct kiocb *iocb, + const struct iovec *iov, loff_t offset, + unsigned long nr_segs) +{ BUG(); return 0; } + +/* + * it will never be called, but madvise and fadvise behaves differently + * when get_xip_mem is defined + */ +static int aufs_get_xip_mem(struct address_space *mapping, pgoff_t pgoff, + int create, void **kmem, unsigned long *pfn) +{ BUG(); return 0; } + +/* they will never be called. */ +#ifdef CONFIG_AUFS_DEBUG +static int aufs_write_begin(struct file *file, struct address_space *mapping, + loff_t pos, unsigned len, unsigned flags, + struct page **pagep, void **fsdata) +{ AuUnsupport(); return 0; } +static int aufs_write_end(struct file *file, struct address_space *mapping, + loff_t pos, unsigned len, unsigned copied, + struct page *page, void *fsdata) +{ AuUnsupport(); return 0; } +static int aufs_writepage(struct page *page, struct writeback_control *wbc) +{ AuUnsupport(); return 0; } +static void aufs_sync_page(struct page *page) +{ AuUnsupport(); } + +static int aufs_set_page_dirty(struct page *page) +{ AuUnsupport(); return 0; } +static void aufs_invalidatepage(struct page *page, unsigned long offset) +{ AuUnsupport(); } +static int aufs_releasepage(struct page *page, gfp_t gfp) +{ AuUnsupport(); return 0; } +static int aufs_migratepage(struct address_space *mapping, struct page *newpage, + struct page *page) +{ AuUnsupport(); return 0; } +static int aufs_launder_page(struct page *page) +{ AuUnsupport(); return 0; } +static int aufs_is_partially_uptodate(struct page *page, + read_descriptor_t *desc, + unsigned long from) +{ AuUnsupport(); return 0; } +static int aufs_error_remove_page(struct address_space *mapping, + struct page *page) +{ AuUnsupport(); return 0; } +#endif /* CONFIG_AUFS_DEBUG */ + +const struct address_space_operations aufs_aop = { + .readpage = aufs_readpage, + .direct_IO = aufs_direct_IO, + .get_xip_mem = aufs_get_xip_mem, +#ifdef CONFIG_AUFS_DEBUG + .writepage = aufs_writepage, + .sync_page = aufs_sync_page, + /* no writepages, because of writepage */ + .set_page_dirty = aufs_set_page_dirty, + /* no readpages, because of readpage */ + .write_begin = aufs_write_begin, + .write_end = aufs_write_end, + /* no bmap, no block device */ + .invalidatepage = aufs_invalidatepage, + .releasepage = aufs_releasepage, + .migratepage = aufs_migratepage, + .launder_page = aufs_launder_page, + .is_partially_uptodate = aufs_is_partially_uptodate, + .error_remove_page = aufs_error_remove_page +#endif /* CONFIG_AUFS_DEBUG */ +}; --- linux-2.6.35.orig/ubuntu/aufs/plink.c +++ linux-2.6.35/ubuntu/aufs/plink.c @@ -0,0 +1,451 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * pseudo-link + */ + +#include "aufs.h" + +/* + * during a user process maintains the pseudo-links, + * prohibit adding a new plink and branch manipulation. + */ +void au_plink_maint_block(struct super_block *sb) +{ + struct au_sbinfo *sbi = au_sbi(sb); + + SiMustAnyLock(sb); + + /* gave up wake_up_bit() */ + wait_event(sbi->si_plink_wq, !sbi->si_plink_maint); +} + +void au_plink_maint_leave(struct file *file) +{ + struct au_sbinfo *sbinfo; + int iam; + + AuDebugOn(atomic_long_read(&file->f_count)); + + sbinfo = au_sbi(file->f_dentry->d_sb); + spin_lock(&sbinfo->si_plink_maint_lock); + iam = (sbinfo->si_plink_maint == file); + if (iam) + sbinfo->si_plink_maint = NULL; + spin_unlock(&sbinfo->si_plink_maint_lock); + if (iam) + wake_up_all(&sbinfo->si_plink_wq); +} + +static int au_plink_maint_enter(struct file *file) +{ + int err; + struct super_block *sb; + struct au_sbinfo *sbinfo; + + err = 0; + sb = file->f_dentry->d_sb; + sbinfo = au_sbi(sb); + /* make sure i am the only one in this fs */ + si_write_lock(sb); + /* spin_lock(&sbinfo->si_plink_maint_lock); */ + if (!sbinfo->si_plink_maint) + sbinfo->si_plink_maint = file; + else + err = -EBUSY; + /* spin_unlock(&sbinfo->si_plink_maint_lock); */ + si_write_unlock(sb); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct pseudo_link { + union { + struct list_head list; + struct rcu_head rcu; + }; + struct inode *inode; +}; + +#ifdef CONFIG_AUFS_DEBUG +void au_plink_list(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + struct list_head *plink_list; + struct pseudo_link *plink; + + SiMustAnyLock(sb); + + sbinfo = au_sbi(sb); + AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK)); + + plink_list = &sbinfo->si_plink.head; + rcu_read_lock(); + list_for_each_entry_rcu(plink, plink_list, list) + AuDbg("%lu\n", plink->inode->i_ino); + rcu_read_unlock(); +} +#endif + +/* is the inode pseudo-linked? */ +int au_plink_test(struct inode *inode) +{ + int found; + struct au_sbinfo *sbinfo; + struct list_head *plink_list; + struct pseudo_link *plink; + + sbinfo = au_sbi(inode->i_sb); + AuRwMustAnyLock(&sbinfo->si_rwsem); + AuDebugOn(!au_opt_test(au_mntflags(inode->i_sb), PLINK)); + + found = 0; + plink_list = &sbinfo->si_plink.head; + rcu_read_lock(); + list_for_each_entry_rcu(plink, plink_list, list) + if (plink->inode == inode) { + found = 1; + break; + } + rcu_read_unlock(); + return found; +} + +/* ---------------------------------------------------------------------- */ + +/* + * generate a name for plink. + * the file will be stored under AUFS_WH_PLINKDIR. + */ +/* 20 is max digits length of ulong 64 */ +#define PLINK_NAME_LEN ((20 + 1) * 2) + +static int plink_name(char *name, int len, struct inode *inode, + aufs_bindex_t bindex) +{ + int rlen; + struct inode *h_inode; + + h_inode = au_h_iptr(inode, bindex); + rlen = snprintf(name, len, "%lu.%lu", inode->i_ino, h_inode->i_ino); + return rlen; +} + +/* lookup the plink-ed @inode under the branch at @bindex */ +struct dentry *au_plink_lkup(struct inode *inode, aufs_bindex_t bindex) +{ + struct dentry *h_dentry, *h_parent; + struct au_branch *br; + struct inode *h_dir; + char a[PLINK_NAME_LEN]; + struct qstr tgtname = { + .name = a + }; + + br = au_sbr(inode->i_sb, bindex); + h_parent = br->br_wbr->wbr_plink; + h_dir = h_parent->d_inode; + tgtname.len = plink_name(a, sizeof(a), inode, bindex); + + /* always superio. */ + mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_CHILD2); + h_dentry = au_sio_lkup_one(&tgtname, h_parent, br); + mutex_unlock(&h_dir->i_mutex); + return h_dentry; +} + +/* create a pseudo-link */ +static int do_whplink(struct qstr *tgt, struct dentry *h_parent, + struct dentry *h_dentry, struct au_branch *br) +{ + int err; + struct path h_path = { + .mnt = br->br_mnt + }; + struct inode *h_dir; + + h_dir = h_parent->d_inode; + again: + h_path.dentry = au_lkup_one(tgt, h_parent, br, /*nd*/NULL); + err = PTR_ERR(h_path.dentry); + if (IS_ERR(h_path.dentry)) + goto out; + + err = 0; + /* wh.plink dir is not monitored */ + if (h_path.dentry->d_inode + && h_path.dentry->d_inode != h_dentry->d_inode) { + err = vfsub_unlink(h_dir, &h_path, /*force*/0); + dput(h_path.dentry); + h_path.dentry = NULL; + if (!err) + goto again; + } + if (!err && !h_path.dentry->d_inode) + err = vfsub_link(h_dentry, h_dir, &h_path); + dput(h_path.dentry); + + out: + return err; +} + +struct do_whplink_args { + int *errp; + struct qstr *tgt; + struct dentry *h_parent; + struct dentry *h_dentry; + struct au_branch *br; +}; + +static void call_do_whplink(void *args) +{ + struct do_whplink_args *a = args; + *a->errp = do_whplink(a->tgt, a->h_parent, a->h_dentry, a->br); +} + +static int whplink(struct dentry *h_dentry, struct inode *inode, + aufs_bindex_t bindex, struct au_branch *br) +{ + int err, wkq_err; + struct au_wbr *wbr; + struct dentry *h_parent; + struct inode *h_dir; + char a[PLINK_NAME_LEN]; + struct qstr tgtname = { + .name = a + }; + + wbr = au_sbr(inode->i_sb, bindex)->br_wbr; + h_parent = wbr->wbr_plink; + h_dir = h_parent->d_inode; + tgtname.len = plink_name(a, sizeof(a), inode, bindex); + + /* always superio. */ + mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_CHILD2); + if (!au_test_wkq(current)) { + struct do_whplink_args args = { + .errp = &err, + .tgt = &tgtname, + .h_parent = h_parent, + .h_dentry = h_dentry, + .br = br + }; + wkq_err = au_wkq_wait(call_do_whplink, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } else + err = do_whplink(&tgtname, h_parent, h_dentry, br); + mutex_unlock(&h_dir->i_mutex); + + return err; +} + +/* free a single plink */ +static void do_put_plink(struct pseudo_link *plink, int do_del) +{ + if (do_del) + list_del(&plink->list); + iput(plink->inode); + kfree(plink); +} + +static void do_put_plink_rcu(struct rcu_head *rcu) +{ + struct pseudo_link *plink; + + plink = container_of(rcu, struct pseudo_link, rcu); + iput(plink->inode); + kfree(plink); +} + +/* + * create a new pseudo-link for @h_dentry on @bindex. + * the linked inode is held in aufs @inode. + */ +void au_plink_append(struct inode *inode, aufs_bindex_t bindex, + struct dentry *h_dentry) +{ + struct super_block *sb; + struct au_sbinfo *sbinfo; + struct list_head *plink_list; + struct pseudo_link *plink, *tmp; + int found, err, cnt; + + sb = inode->i_sb; + sbinfo = au_sbi(sb); + AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK)); + + cnt = 0; + found = 0; + plink_list = &sbinfo->si_plink.head; + rcu_read_lock(); + list_for_each_entry_rcu(plink, plink_list, list) { + cnt++; + if (plink->inode == inode) { + found = 1; + break; + } + } + rcu_read_unlock(); + if (found) + return; + + tmp = kmalloc(sizeof(*plink), GFP_NOFS); + if (tmp) + tmp->inode = au_igrab(inode); + else { + err = -ENOMEM; + goto out; + } + + spin_lock(&sbinfo->si_plink.spin); + list_for_each_entry(plink, plink_list, list) { + if (plink->inode == inode) { + found = 1; + break; + } + } + if (!found) + list_add_rcu(&tmp->list, plink_list); + spin_unlock(&sbinfo->si_plink.spin); + if (!found) { + cnt++; + WARN_ONCE(cnt > AUFS_PLINK_WARN, + "unexpectedly many pseudo links, %d\n", cnt); + au_plink_maint_block(sb); + err = whplink(h_dentry, inode, bindex, au_sbr(sb, bindex)); + } else { + do_put_plink(tmp, 0); + return; + } + +out: + if (unlikely(err)) { + pr_warning("err %d, damaged pseudo link.\n", err); + if (tmp) { + au_spl_del_rcu(&tmp->list, &sbinfo->si_plink); + call_rcu(&tmp->rcu, do_put_plink_rcu); + } + } +} + +/* free all plinks */ +void au_plink_put(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + struct list_head *plink_list; + struct pseudo_link *plink, *tmp; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK)); + + plink_list = &sbinfo->si_plink.head; + /* no spin_lock since sbinfo is write-locked */ + list_for_each_entry_safe(plink, tmp, plink_list, list) + do_put_plink(plink, 0); + INIT_LIST_HEAD(plink_list); +} + +/* free the plinks on a branch specified by @br_id */ +void au_plink_half_refresh(struct super_block *sb, aufs_bindex_t br_id) +{ + struct au_sbinfo *sbinfo; + struct list_head *plink_list; + struct pseudo_link *plink, *tmp; + struct inode *inode; + aufs_bindex_t bstart, bend, bindex; + unsigned char do_put; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK)); + + plink_list = &sbinfo->si_plink.head; + /* no spin_lock since sbinfo is write-locked */ + list_for_each_entry_safe(plink, tmp, plink_list, list) { + do_put = 0; + inode = au_igrab(plink->inode); + ii_write_lock_child(inode); + bstart = au_ibstart(inode); + bend = au_ibend(inode); + if (bstart >= 0) { + for (bindex = bstart; bindex <= bend; bindex++) { + if (!au_h_iptr(inode, bindex) + || au_ii_br_id(inode, bindex) != br_id) + continue; + au_set_h_iptr(inode, bindex, NULL, 0); + do_put = 1; + break; + } + } else + do_put_plink(plink, 1); + + if (do_put) { + for (bindex = bstart; bindex <= bend; bindex++) + if (au_h_iptr(inode, bindex)) { + do_put = 0; + break; + } + if (do_put) + do_put_plink(plink, 1); + } + ii_write_unlock(inode); + iput(inode); + } +} + +/* ---------------------------------------------------------------------- */ + +long au_plink_ioctl(struct file *file, unsigned int cmd) +{ + long err; + struct super_block *sb; + + err = -EACCES; + if (!capable(CAP_SYS_ADMIN)) + goto out; + + err = 0; + sb = file->f_dentry->d_sb; + switch (cmd) { + case AUFS_CTL_PLINK_MAINT: + /* + * pseudo-link maintenance mode, + * cleared by aufs_release_dir() + */ + err = au_plink_maint_enter(file); + break; + case AUFS_CTL_PLINK_CLEAN: + aufs_write_lock(sb->s_root); + if (au_opt_test(au_mntflags(sb), PLINK)) + au_plink_put(sb); + aufs_write_unlock(sb->s_root); + break; + default: + /* err = -ENOTTY; */ + err = -EINVAL; + } + out: + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/debug.h +++ linux-2.6.35/ubuntu/aufs/debug.h @@ -0,0 +1,243 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * debug print functions + */ + +#ifndef __AUFS_DEBUG_H__ +#define __AUFS_DEBUG_H__ + +#ifdef __KERNEL__ + +#include +#include +/* #include */ +#include +#include +#include +/* #include */ +#include +/* #include */ +/* #include */ +#include +#include + +#include + +#ifdef CONFIG_AUFS_DEBUG +#define AuDebugOn(a) BUG_ON(a) + +/* module parameter */ +extern int aufs_debug; +static inline void au_debug(int n) +{ + aufs_debug = n; + smp_mb(); +} + +static inline int au_debug_test(void) +{ + return aufs_debug; +} +#else +#define AuDebugOn(a) do {} while (0) +AuStubVoid(au_debug, int n) +AuStubInt0(au_debug_test, void) +#endif /* CONFIG_AUFS_DEBUG */ + +/* ---------------------------------------------------------------------- */ + +/* debug print */ + +#define AuDbg(fmt, ...) do { \ + if (au_debug_test()) \ + pr_debug("DEBUG: " fmt, ##__VA_ARGS__); \ +} while (0) +#define AuLabel(l) AuDbg(#l "\n") +#define AuIOErr(fmt, ...) pr_err("I/O Error, " fmt, ##__VA_ARGS__) +#define AuWarn1(fmt, ...) do { \ + static unsigned char _c; \ + if (!_c++) \ + pr_warning(fmt, ##__VA_ARGS__); \ +} while (0) + +#define AuErr1(fmt, ...) do { \ + static unsigned char _c; \ + if (!_c++) \ + pr_err(fmt, ##__VA_ARGS__); \ +} while (0) + +#define AuIOErr1(fmt, ...) do { \ + static unsigned char _c; \ + if (!_c++) \ + AuIOErr(fmt, ##__VA_ARGS__); \ +} while (0) + +#define AuUnsupportMsg "This operation is not supported." \ + " Please report this application to aufs-users ML." +#define AuUnsupport(fmt, ...) do { \ + pr_err(AuUnsupportMsg "\n" fmt, ##__VA_ARGS__); \ + dump_stack(); \ +} while (0) + +#define AuTraceErr(e) do { \ + if (unlikely((e) < 0)) \ + AuDbg("err %d\n", (int)(e)); \ +} while (0) + +#define AuTraceErrPtr(p) do { \ + if (IS_ERR(p)) \ + AuDbg("err %ld\n", PTR_ERR(p)); \ +} while (0) + +/* dirty macros for debug print, use with "%.*s" and caution */ +#define AuLNPair(qstr) (qstr)->len, (qstr)->name +#define AuDLNPair(d) AuLNPair(&(d)->d_name) + +/* ---------------------------------------------------------------------- */ + +struct au_sbinfo; +struct au_finfo; +struct dentry; +#ifdef CONFIG_AUFS_DEBUG +extern char *au_plevel; +struct au_nhash; +void au_dpri_whlist(struct au_nhash *whlist); +struct au_vdir; +void au_dpri_vdir(struct au_vdir *vdir); +struct inode; +void au_dpri_inode(struct inode *inode); +void au_dpri_dentry(struct dentry *dentry); +struct file; +void au_dpri_file(struct file *filp); +struct super_block; +void au_dpri_sb(struct super_block *sb); + +void au_dbg_sleep_jiffy(int jiffy); +struct iattr; +void au_dbg_iattr(struct iattr *ia); + +void au_dbg_verify_dir_parent(struct dentry *dentry, unsigned int sigen); +void au_dbg_verify_nondir_parent(struct dentry *dentry, unsigned int sigen); +void au_dbg_verify_gen(struct dentry *parent, unsigned int sigen); +void au_dbg_verify_kthread(void); + +int __init au_debug_init(void); +void au_debug_sbinfo_init(struct au_sbinfo *sbinfo); +#define AuDbgWhlist(w) do { \ + AuDbg(#w "\n"); \ + au_dpri_whlist(w); \ +} while (0) + +#define AuDbgVdir(v) do { \ + AuDbg(#v "\n"); \ + au_dpri_vdir(v); \ +} while (0) + +#define AuDbgInode(i) do { \ + AuDbg(#i "\n"); \ + au_dpri_inode(i); \ +} while (0) + +#define AuDbgDentry(d) do { \ + AuDbg(#d "\n"); \ + au_dpri_dentry(d); \ +} while (0) + +#define AuDbgFile(f) do { \ + AuDbg(#f "\n"); \ + au_dpri_file(f); \ +} while (0) + +#define AuDbgSb(sb) do { \ + AuDbg(#sb "\n"); \ + au_dpri_sb(sb); \ +} while (0) + +#define AuDbgSleep(sec) do { \ + AuDbg("sleep %d sec\n", sec); \ + ssleep(sec); \ +} while (0) + +#define AuDbgSleepJiffy(jiffy) do { \ + AuDbg("sleep %d jiffies\n", jiffy); \ + au_dbg_sleep_jiffy(jiffy); \ +} while (0) + +#define AuDbgIAttr(ia) do { \ + AuDbg("ia_valid 0x%x\n", (ia)->ia_valid); \ + au_dbg_iattr(ia); \ +} while (0) + +#define AuDbgSym(addr) do { \ + char sym[KSYM_SYMBOL_LEN]; \ + sprint_symbol(sym, (unsigned long)addr); \ + AuDbg("%s\n", sym); \ +} while (0) + +#define AuInfoSym(addr) do { \ + char sym[KSYM_SYMBOL_LEN]; \ + sprint_symbol(sym, (unsigned long)addr); \ + AuInfo("%s\n", sym); \ +} while (0) +#else +AuStubVoid(au_dbg_verify_dir_parent, struct dentry *dentry, unsigned int sigen) +AuStubVoid(au_dbg_verify_nondir_parent, struct dentry *dentry, + unsigned int sigen) +AuStubVoid(au_dbg_verify_gen, struct dentry *parent, unsigned int sigen) +AuStubVoid(au_dbg_verify_kthread, void) +AuStubInt0(__init au_debug_init, void) +AuStubVoid(au_debug_sbinfo_init, struct au_sbinfo *sbinfo) + +#define AuDbgWhlist(w) do {} while (0) +#define AuDbgVdir(v) do {} while (0) +#define AuDbgInode(i) do {} while (0) +#define AuDbgDentry(d) do {} while (0) +#define AuDbgFile(f) do {} while (0) +#define AuDbgSb(sb) do {} while (0) +#define AuDbgSleep(sec) do {} while (0) +#define AuDbgSleepJiffy(jiffy) do {} while (0) +#define AuDbgIAttr(ia) do {} while (0) +#define AuDbgSym(addr) do {} while (0) +#define AuInfoSym(addr) do {} while (0) +#endif /* CONFIG_AUFS_DEBUG */ + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_MAGIC_SYSRQ +int __init au_sysrq_init(void); +void au_sysrq_fin(void); + +#ifdef CONFIG_HW_CONSOLE +#define au_dbg_blocked() do { \ + WARN_ON(1); \ + handle_sysrq('w', vc_cons[fg_console].d->vc_tty); \ +} while (0) +#else +AuStubVoid(au_dbg_blocked, void) +#endif + +#else +AuStubInt0(__init au_sysrq_init, void) +AuStubVoid(au_sysrq_fin, void) +AuStubVoid(au_dbg_blocked, void) +#endif /* CONFIG_AUFS_MAGIC_SYSRQ */ + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DEBUG_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/dentry.h +++ linux-2.6.35/ubuntu/aufs/dentry.h @@ -0,0 +1,231 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * lookup and dentry operations + */ + +#ifndef __AUFS_DENTRY_H__ +#define __AUFS_DENTRY_H__ + +#ifdef __KERNEL__ + +#include +#include +#include "rwsem.h" + +/* make a single member structure for future use */ +/* todo: remove this structure */ +struct au_hdentry { + struct dentry *hd_dentry; +}; + +struct au_dinfo { + atomic_t di_generation; + + struct au_rwsem di_rwsem; + aufs_bindex_t di_bstart, di_bend, di_bwh, di_bdiropq; + struct au_hdentry *di_hdentry; +} ____cacheline_aligned_in_smp; + +/* ---------------------------------------------------------------------- */ + +/* dentry.c */ +extern const struct dentry_operations aufs_dop; +struct au_branch; +struct dentry *au_lkup_one(struct qstr *name, struct dentry *h_parent, + struct au_branch *br, struct nameidata *nd); +struct dentry *au_sio_lkup_one(struct qstr *name, struct dentry *parent, + struct au_branch *br); +int au_h_verify(struct dentry *h_dentry, unsigned int udba, struct inode *h_dir, + struct dentry *h_parent, struct au_branch *br); + +int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type, + struct nameidata *nd); +int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex); +int au_refresh_hdentry(struct dentry *dentry, mode_t type); +int au_reval_dpath(struct dentry *dentry, unsigned int sigen); + +/* dinfo.c */ +void au_di_init_once(void *_di); +int au_di_init(struct dentry *dentry); +void au_di_fin(struct dentry *dentry); +int au_di_realloc(struct au_dinfo *dinfo, int nbr); + +void di_read_lock(struct dentry *d, int flags, unsigned int lsc); +void di_read_unlock(struct dentry *d, int flags); +void di_downgrade_lock(struct dentry *d, int flags); +void di_write_lock(struct dentry *d, unsigned int lsc); +void di_write_unlock(struct dentry *d); +void di_write_lock2_child(struct dentry *d1, struct dentry *d2, int isdir); +void di_write_lock2_parent(struct dentry *d1, struct dentry *d2, int isdir); +void di_write_unlock2(struct dentry *d1, struct dentry *d2); + +struct dentry *au_h_dptr(struct dentry *dentry, aufs_bindex_t bindex); +aufs_bindex_t au_dbtail(struct dentry *dentry); +aufs_bindex_t au_dbtaildir(struct dentry *dentry); + +void au_set_h_dptr(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_dentry); +void au_update_digen(struct dentry *dentry); +void au_update_dbrange(struct dentry *dentry, int do_put_zero); +void au_update_dbstart(struct dentry *dentry); +void au_update_dbend(struct dentry *dentry); +int au_find_dbindex(struct dentry *dentry, struct dentry *h_dentry); + +/* ---------------------------------------------------------------------- */ + +static inline struct au_dinfo *au_di(struct dentry *dentry) +{ + return dentry->d_fsdata; +} + +/* ---------------------------------------------------------------------- */ + +/* lock subclass for dinfo */ +enum { + AuLsc_DI_CHILD, /* child first */ + AuLsc_DI_CHILD2, /* rename(2), link(2), and cpup at hnotify */ + AuLsc_DI_CHILD3, /* copyup dirs */ + AuLsc_DI_PARENT, + AuLsc_DI_PARENT2, + AuLsc_DI_PARENT3 +}; + +/* + * di_read_lock_child, di_write_lock_child, + * di_read_lock_child2, di_write_lock_child2, + * di_read_lock_child3, di_write_lock_child3, + * di_read_lock_parent, di_write_lock_parent, + * di_read_lock_parent2, di_write_lock_parent2, + * di_read_lock_parent3, di_write_lock_parent3, + */ +#define AuReadLockFunc(name, lsc) \ +static inline void di_read_lock_##name(struct dentry *d, int flags) \ +{ di_read_lock(d, flags, AuLsc_DI_##lsc); } + +#define AuWriteLockFunc(name, lsc) \ +static inline void di_write_lock_##name(struct dentry *d) \ +{ di_write_lock(d, AuLsc_DI_##lsc); } + +#define AuRWLockFuncs(name, lsc) \ + AuReadLockFunc(name, lsc) \ + AuWriteLockFunc(name, lsc) + +AuRWLockFuncs(child, CHILD); +AuRWLockFuncs(child2, CHILD2); +AuRWLockFuncs(child3, CHILD3); +AuRWLockFuncs(parent, PARENT); +AuRWLockFuncs(parent2, PARENT2); +AuRWLockFuncs(parent3, PARENT3); + +#undef AuReadLockFunc +#undef AuWriteLockFunc +#undef AuRWLockFuncs + +#define DiMustNoWaiters(d) AuRwMustNoWaiters(&au_di(d)->di_rwsem) +#define DiMustAnyLock(d) AuRwMustAnyLock(&au_di(d)->di_rwsem) +#define DiMustWriteLock(d) AuRwMustWriteLock(&au_di(d)->di_rwsem) + +/* ---------------------------------------------------------------------- */ + +/* todo: memory barrier? */ +static inline unsigned int au_digen(struct dentry *d) +{ + return atomic_read(&au_di(d)->di_generation); +} + +static inline void au_h_dentry_init(struct au_hdentry *hdentry) +{ + hdentry->hd_dentry = NULL; +} + +static inline void au_hdput(struct au_hdentry *hd) +{ + if (hd) + dput(hd->hd_dentry); +} + +static inline aufs_bindex_t au_dbstart(struct dentry *dentry) +{ + DiMustAnyLock(dentry); + return au_di(dentry)->di_bstart; +} + +static inline aufs_bindex_t au_dbend(struct dentry *dentry) +{ + DiMustAnyLock(dentry); + return au_di(dentry)->di_bend; +} + +static inline aufs_bindex_t au_dbwh(struct dentry *dentry) +{ + DiMustAnyLock(dentry); + return au_di(dentry)->di_bwh; +} + +static inline aufs_bindex_t au_dbdiropq(struct dentry *dentry) +{ + DiMustAnyLock(dentry); + return au_di(dentry)->di_bdiropq; +} + +/* todo: hard/soft set? */ +static inline void au_set_dbstart(struct dentry *dentry, aufs_bindex_t bindex) +{ + DiMustWriteLock(dentry); + au_di(dentry)->di_bstart = bindex; +} + +static inline void au_set_dbend(struct dentry *dentry, aufs_bindex_t bindex) +{ + DiMustWriteLock(dentry); + au_di(dentry)->di_bend = bindex; +} + +static inline void au_set_dbwh(struct dentry *dentry, aufs_bindex_t bindex) +{ + DiMustWriteLock(dentry); + /* dbwh can be outside of bstart - bend range */ + au_di(dentry)->di_bwh = bindex; +} + +static inline void au_set_dbdiropq(struct dentry *dentry, aufs_bindex_t bindex) +{ + DiMustWriteLock(dentry); + au_di(dentry)->di_bdiropq = bindex; +} + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_HNOTIFY +static inline void au_digen_dec(struct dentry *d) +{ + atomic_dec_return(&au_di(d)->di_generation); +} + +static inline void au_hn_di_reinit(struct dentry *dentry) +{ + dentry->d_fsdata = NULL; +} +#else +AuStubVoid(au_hn_di_reinit, struct dentry *dentry __maybe_unused) +#endif /* CONFIG_AUFS_HNOTIFY */ + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DENTRY_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/inode.h +++ linux-2.6.35/ubuntu/aufs/inode.h @@ -0,0 +1,498 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode operations + */ + +#ifndef __AUFS_INODE_H__ +#define __AUFS_INODE_H__ + +#ifdef __KERNEL__ + +#include +#include +#include +#include "rwsem.h" + +struct vfsmount; + +struct au_hnotify { +#ifdef CONFIG_AUFS_HNOTIFY +#ifdef CONFIG_AUFS_HFSNOTIFY + struct fsnotify_mark_entry hn_entry; +#else + struct inotify_watch hn_watch; +#endif + struct inode *hn_aufs_inode; /* no get/put */ +#endif +} ____cacheline_aligned_in_smp; + +struct au_hinode { + struct inode *hi_inode; + aufs_bindex_t hi_id; +#ifdef CONFIG_AUFS_HNOTIFY + struct au_hnotify *hi_notify; +#endif + + /* reference to the copied-up whiteout with get/put */ + struct dentry *hi_whdentry; +}; + +struct au_vdir; +struct au_iinfo { + atomic_t ii_generation; + struct super_block *ii_hsb1; /* no get/put */ + + struct au_rwsem ii_rwsem; + aufs_bindex_t ii_bstart, ii_bend; + __u32 ii_higen; + struct au_hinode *ii_hinode; + struct au_vdir *ii_vdir; +}; + +struct au_icntnr { + struct au_iinfo iinfo; + struct inode vfs_inode; +} ____cacheline_aligned_in_smp; + +/* au_pin flags */ +#define AuPin_DI_LOCKED 1 +#define AuPin_MNT_WRITE (1 << 1) +#define au_ftest_pin(flags, name) ((flags) & AuPin_##name) +#define au_fset_pin(flags, name) { (flags) |= AuPin_##name; } +#define au_fclr_pin(flags, name) { (flags) &= ~AuPin_##name; } + +struct au_pin { + /* input */ + struct dentry *dentry; + unsigned int udba; + unsigned char lsc_di, lsc_hi, flags; + aufs_bindex_t bindex; + + /* output */ + struct dentry *parent; + struct au_hinode *hdir; + struct vfsmount *h_mnt; +}; + +/* ---------------------------------------------------------------------- */ + +static inline struct au_iinfo *au_ii(struct inode *inode) +{ + struct au_iinfo *iinfo; + + iinfo = &(container_of(inode, struct au_icntnr, vfs_inode)->iinfo); + if (iinfo->ii_hinode) + return iinfo; + return NULL; /* debugging bad_inode case */ +} + +/* ---------------------------------------------------------------------- */ + +/* inode.c */ +struct inode *au_igrab(struct inode *inode); +int au_refresh_hinode_self(struct inode *inode, int do_attr); +int au_refresh_hinode(struct inode *inode, struct dentry *dentry); +int au_ino(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + unsigned int d_type, ino_t *ino); +struct inode *au_new_inode(struct dentry *dentry, int must_new); +int au_test_ro(struct super_block *sb, aufs_bindex_t bindex, + struct inode *inode); +int au_test_h_perm(struct inode *h_inode, int mask); +int au_test_h_perm_sio(struct inode *h_inode, int mask); + +static inline int au_wh_ino(struct super_block *sb, aufs_bindex_t bindex, + ino_t h_ino, unsigned int d_type, ino_t *ino) +{ +#ifdef CONFIG_AUFS_SHWH + return au_ino(sb, bindex, h_ino, d_type, ino); +#else + return 0; +#endif +} + +/* i_op.c */ +extern struct inode_operations aufs_iop, aufs_symlink_iop, aufs_dir_iop; + +/* au_wr_dir flags */ +#define AuWrDir_ADD_ENTRY 1 +#define AuWrDir_ISDIR (1 << 1) +#define au_ftest_wrdir(flags, name) ((flags) & AuWrDir_##name) +#define au_fset_wrdir(flags, name) { (flags) |= AuWrDir_##name; } +#define au_fclr_wrdir(flags, name) { (flags) &= ~AuWrDir_##name; } + +struct au_wr_dir_args { + aufs_bindex_t force_btgt; + unsigned char flags; +}; +int au_wr_dir(struct dentry *dentry, struct dentry *src_dentry, + struct au_wr_dir_args *args); + +struct dentry *au_pinned_h_parent(struct au_pin *pin); +void au_pin_init(struct au_pin *pin, struct dentry *dentry, + aufs_bindex_t bindex, int lsc_di, int lsc_hi, + unsigned int udba, unsigned char flags); +int au_pin(struct au_pin *pin, struct dentry *dentry, aufs_bindex_t bindex, + unsigned int udba, unsigned char flags) __must_check; +int au_do_pin(struct au_pin *pin) __must_check; +void au_unpin(struct au_pin *pin); + +/* i_op_add.c */ +int au_may_add(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent, int isdir); +int aufs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev); +int aufs_symlink(struct inode *dir, struct dentry *dentry, const char *symname); +int aufs_create(struct inode *dir, struct dentry *dentry, int mode, + struct nameidata *nd); +int aufs_link(struct dentry *src_dentry, struct inode *dir, + struct dentry *dentry); +int aufs_mkdir(struct inode *dir, struct dentry *dentry, int mode); + +/* i_op_del.c */ +int au_wr_dir_need_wh(struct dentry *dentry, int isdir, aufs_bindex_t *bcpup); +int au_may_del(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent, int isdir); +int aufs_unlink(struct inode *dir, struct dentry *dentry); +int aufs_rmdir(struct inode *dir, struct dentry *dentry); + +/* i_op_ren.c */ +int au_wbr(struct dentry *dentry, aufs_bindex_t btgt); +int aufs_rename(struct inode *src_dir, struct dentry *src_dentry, + struct inode *dir, struct dentry *dentry); + +/* iinfo.c */ +struct inode *au_h_iptr(struct inode *inode, aufs_bindex_t bindex); +void au_hiput(struct au_hinode *hinode); +void au_set_hi_wh(struct inode *inode, aufs_bindex_t bindex, + struct dentry *h_wh); +unsigned int au_hi_flags(struct inode *inode, int isdir); + +/* hinode flags */ +#define AuHi_XINO 1 +#define AuHi_HNOTIFY (1 << 1) +#define au_ftest_hi(flags, name) ((flags) & AuHi_##name) +#define au_fset_hi(flags, name) { (flags) |= AuHi_##name; } +#define au_fclr_hi(flags, name) { (flags) &= ~AuHi_##name; } + +#ifndef CONFIG_AUFS_HNOTIFY +#undef AuHi_HNOTIFY +#define AuHi_HNOTIFY 0 +#endif + +void au_set_h_iptr(struct inode *inode, aufs_bindex_t bindex, + struct inode *h_inode, unsigned int flags); + +void au_update_iigen(struct inode *inode); +void au_update_ibrange(struct inode *inode, int do_put_zero); + +void au_icntnr_init_once(void *_c); +int au_iinfo_init(struct inode *inode); +void au_iinfo_fin(struct inode *inode); +int au_ii_realloc(struct au_iinfo *iinfo, int nbr); + +/* plink.c */ +void au_plink_maint_block(struct super_block *sb); +void au_plink_maint_leave(struct file *file); +#ifdef CONFIG_AUFS_DEBUG +void au_plink_list(struct super_block *sb); +#else +AuStubVoid(au_plink_list, struct super_block *sb) +#endif +int au_plink_test(struct inode *inode); +struct dentry *au_plink_lkup(struct inode *inode, aufs_bindex_t bindex); +void au_plink_append(struct inode *inode, aufs_bindex_t bindex, + struct dentry *h_dentry); +void au_plink_put(struct super_block *sb); +void au_plink_half_refresh(struct super_block *sb, aufs_bindex_t br_id); +long au_plink_ioctl(struct file *file, unsigned int cmd); + +/* ---------------------------------------------------------------------- */ + +/* lock subclass for iinfo */ +enum { + AuLsc_II_CHILD, /* child first */ + AuLsc_II_CHILD2, /* rename(2), link(2), and cpup at hnotify */ + AuLsc_II_CHILD3, /* copyup dirs */ + AuLsc_II_PARENT, /* see AuLsc_I_PARENT in vfsub.h */ + AuLsc_II_PARENT2, + AuLsc_II_PARENT3, /* copyup dirs */ + AuLsc_II_NEW_CHILD +}; + +/* + * ii_read_lock_child, ii_write_lock_child, + * ii_read_lock_child2, ii_write_lock_child2, + * ii_read_lock_child3, ii_write_lock_child3, + * ii_read_lock_parent, ii_write_lock_parent, + * ii_read_lock_parent2, ii_write_lock_parent2, + * ii_read_lock_parent3, ii_write_lock_parent3, + * ii_read_lock_new_child, ii_write_lock_new_child, + */ +#define AuReadLockFunc(name, lsc) \ +static inline void ii_read_lock_##name(struct inode *i) \ +{ \ + au_rw_read_lock_nested(&au_ii(i)->ii_rwsem, AuLsc_II_##lsc); \ +} + +#define AuWriteLockFunc(name, lsc) \ +static inline void ii_write_lock_##name(struct inode *i) \ +{ \ + au_rw_write_lock_nested(&au_ii(i)->ii_rwsem, AuLsc_II_##lsc); \ +} + +#define AuRWLockFuncs(name, lsc) \ + AuReadLockFunc(name, lsc) \ + AuWriteLockFunc(name, lsc) + +AuRWLockFuncs(child, CHILD); +AuRWLockFuncs(child2, CHILD2); +AuRWLockFuncs(child3, CHILD3); +AuRWLockFuncs(parent, PARENT); +AuRWLockFuncs(parent2, PARENT2); +AuRWLockFuncs(parent3, PARENT3); +AuRWLockFuncs(new_child, NEW_CHILD); + +#undef AuReadLockFunc +#undef AuWriteLockFunc +#undef AuRWLockFuncs + +/* + * ii_read_unlock, ii_write_unlock, ii_downgrade_lock + */ +AuSimpleUnlockRwsemFuncs(ii, struct inode *i, &au_ii(i)->ii_rwsem); + +#define IiMustNoWaiters(i) AuRwMustNoWaiters(&au_ii(i)->ii_rwsem) +#define IiMustAnyLock(i) AuRwMustAnyLock(&au_ii(i)->ii_rwsem) +#define IiMustWriteLock(i) AuRwMustWriteLock(&au_ii(i)->ii_rwsem) + +/* ---------------------------------------------------------------------- */ + +static inline unsigned int au_iigen(struct inode *inode) +{ + return atomic_read(&au_ii(inode)->ii_generation); +} + +/* tiny test for inode number */ +/* tmpfs generation is too rough */ +static inline int au_test_higen(struct inode *inode, struct inode *h_inode) +{ + struct au_iinfo *iinfo; + + iinfo = au_ii(inode); + AuRwMustAnyLock(&iinfo->ii_rwsem); + return !(iinfo->ii_hsb1 == h_inode->i_sb + && iinfo->ii_higen == h_inode->i_generation); +} + +static inline void au_iigen_dec(struct inode *inode) +{ +#ifdef CONFIG_AUFS_HNOTIFY + atomic_dec_return(&au_ii(inode)->ii_generation); +#endif +} + +/* ---------------------------------------------------------------------- */ + +static inline aufs_bindex_t au_ii_br_id(struct inode *inode, + aufs_bindex_t bindex) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_hinode[0 + bindex].hi_id; +} + +static inline aufs_bindex_t au_ibstart(struct inode *inode) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_bstart; +} + +static inline aufs_bindex_t au_ibend(struct inode *inode) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_bend; +} + +static inline struct au_vdir *au_ivdir(struct inode *inode) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_vdir; +} + +static inline struct dentry *au_hi_wh(struct inode *inode, aufs_bindex_t bindex) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_hinode[0 + bindex].hi_whdentry; +} + +static inline void au_set_ibstart(struct inode *inode, aufs_bindex_t bindex) +{ + IiMustWriteLock(inode); + au_ii(inode)->ii_bstart = bindex; +} + +static inline void au_set_ibend(struct inode *inode, aufs_bindex_t bindex) +{ + IiMustWriteLock(inode); + au_ii(inode)->ii_bend = bindex; +} + +static inline void au_set_ivdir(struct inode *inode, struct au_vdir *vdir) +{ + IiMustWriteLock(inode); + au_ii(inode)->ii_vdir = vdir; +} + +static inline struct au_hinode *au_hi(struct inode *inode, aufs_bindex_t bindex) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_hinode + bindex; +} + +/* ---------------------------------------------------------------------- */ + +static inline struct dentry *au_pinned_parent(struct au_pin *pin) +{ + if (pin) + return pin->parent; + return NULL; +} + +static inline struct inode *au_pinned_h_dir(struct au_pin *pin) +{ + if (pin && pin->hdir) + return pin->hdir->hi_inode; + return NULL; +} + +static inline struct au_hinode *au_pinned_hdir(struct au_pin *pin) +{ + if (pin) + return pin->hdir; + return NULL; +} + +static inline void au_pin_set_dentry(struct au_pin *pin, struct dentry *dentry) +{ + if (pin) + pin->dentry = dentry; +} + +static inline void au_pin_set_parent_lflag(struct au_pin *pin, + unsigned char lflag) +{ + if (pin) { + /* dirty macros require brackets */ + if (lflag) { + au_fset_pin(pin->flags, DI_LOCKED); + } else { + au_fclr_pin(pin->flags, DI_LOCKED); + } + } +} + +static inline void au_pin_set_parent(struct au_pin *pin, struct dentry *parent) +{ + if (pin) { + dput(pin->parent); + pin->parent = dget(parent); + } +} + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_HNOTIFY +struct au_hnotify_op { + void (*ctl)(struct au_hinode *hinode, int do_set); + int (*alloc)(struct au_hnotify *hn, struct inode *h_inode); + void (*free)(struct au_hnotify *hn); + + void (*fin)(void); + int (*init)(void); +}; + +/* hnotify.c */ +int au_hn_alloc(struct au_hinode *hinode, struct inode *inode, + struct inode *h_inode); +void au_hn_free(struct au_hinode *hinode); +void au_hn_ctl(struct au_hinode *hinode, int do_set); +void au_hn_reset(struct inode *inode, unsigned int flags); +int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask, + struct qstr *h_child_qstr, struct inode *h_child_inode); +int __init au_hnotify_init(void); +void au_hnotify_fin(void); + +/* hinotify.c */ +extern const struct au_hnotify_op au_hnotify_op; + +static inline +void au_hn_init(struct au_hinode *hinode) +{ + hinode->hi_notify = NULL; +} + +#else +static inline +int au_hn_alloc(struct au_hinode *hinode __maybe_unused, + struct inode *inode __maybe_unused, + struct inode *h_inode __maybe_unused) +{ + return -EOPNOTSUPP; +} + +AuStubVoid(au_hn_free, struct au_hinode *hinode __maybe_unused) +AuStubVoid(au_hn_ctl, struct au_hinode *hinode __maybe_unused, + int do_set __maybe_unused) +AuStubVoid(au_hn_reset, struct inode *inode __maybe_unused, + unsigned int flags __maybe_unused) +AuStubInt0(__init au_hnotify_init, void) +AuStubVoid(au_hnotify_fin, void) +AuStubVoid(au_hn_init, struct au_hinode *hinode __maybe_unused) +#endif /* CONFIG_AUFS_HNOTIFY */ + +static inline void au_hn_suspend(struct au_hinode *hdir) +{ + au_hn_ctl(hdir, /*do_set*/0); +} + +static inline void au_hn_resume(struct au_hinode *hdir) +{ + au_hn_ctl(hdir, /*do_set*/1); +} + +static inline void au_hn_imtx_lock(struct au_hinode *hdir) +{ + mutex_lock(&hdir->hi_inode->i_mutex); + au_hn_suspend(hdir); +} + +static inline void au_hn_imtx_lock_nested(struct au_hinode *hdir, + unsigned int sc __maybe_unused) +{ + mutex_lock_nested(&hdir->hi_inode->i_mutex, sc); + au_hn_suspend(hdir); +} + +static inline void au_hn_imtx_unlock(struct au_hinode *hdir) +{ + au_hn_resume(hdir); + mutex_unlock(&hdir->hi_inode->i_mutex); +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_INODE_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/xino.c +++ linux-2.6.35/ubuntu/aufs/xino.c @@ -0,0 +1,1260 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * external inode number translation table and bitmap + */ + +#include +#include +#include +#include "aufs.h" + +ssize_t xino_fread(au_readf_t func, struct file *file, void *kbuf, size_t size, + loff_t *pos) +{ + ssize_t err; + mm_segment_t oldfs; + union { + void *k; + char __user *u; + } buf; + + buf.k = kbuf; + oldfs = get_fs(); + set_fs(KERNEL_DS); + do { + /* todo: signal_pending? */ + err = func(file, buf.u, size, pos); + } while (err == -EAGAIN || err == -EINTR); + set_fs(oldfs); + +#if 0 /* reserved for future use */ + if (err > 0) + fsnotify_access(file->f_dentry); +#endif + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static ssize_t do_xino_fwrite(au_writef_t func, struct file *file, void *kbuf, + size_t size, loff_t *pos) +{ + ssize_t err; + mm_segment_t oldfs; + union { + void *k; + const char __user *u; + } buf; + + buf.k = kbuf; + oldfs = get_fs(); + set_fs(KERNEL_DS); + do { + /* todo: signal_pending? */ + err = func(file, buf.u, size, pos); + } while (err == -EAGAIN || err == -EINTR); + set_fs(oldfs); + +#if 0 /* reserved for future use */ + if (err > 0) + fsnotify_modify(file->f_dentry); +#endif + + return err; +} + +struct do_xino_fwrite_args { + ssize_t *errp; + au_writef_t func; + struct file *file; + void *buf; + size_t size; + loff_t *pos; +}; + +static void call_do_xino_fwrite(void *args) +{ + struct do_xino_fwrite_args *a = args; + *a->errp = do_xino_fwrite(a->func, a->file, a->buf, a->size, a->pos); +} + +ssize_t xino_fwrite(au_writef_t func, struct file *file, void *buf, size_t size, + loff_t *pos) +{ + ssize_t err; + + /* todo: signal block and no wkq? */ + /* todo: new credential scheme */ + /* + * it breaks RLIMIT_FSIZE and normal user's limit, + * users should care about quota and real 'filesystem full.' + */ + if (!au_test_wkq(current)) { + int wkq_err; + struct do_xino_fwrite_args args = { + .errp = &err, + .func = func, + .file = file, + .buf = buf, + .size = size, + .pos = pos + }; + + wkq_err = au_wkq_wait(call_do_xino_fwrite, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } else + err = do_xino_fwrite(func, file, buf, size, pos); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * create a new xinofile at the same place/path as @base_file. + */ +struct file *au_xino_create2(struct file *base_file, struct file *copy_src) +{ + struct file *file; + struct dentry *base, *parent; + struct inode *dir; + struct qstr *name; + struct path path; + int err; + + base = base_file->f_dentry; + parent = base->d_parent; /* dir inode is locked */ + dir = parent->d_inode; + IMustLock(dir); + + file = ERR_PTR(-EINVAL); + name = &base->d_name; + path.dentry = vfsub_lookup_one_len(name->name, parent, name->len); + if (IS_ERR(path.dentry)) { + file = (void *)path.dentry; + pr_err("%.*s lookup err %ld\n", + AuLNPair(name), PTR_ERR(path.dentry)); + goto out; + } + + /* no need to mnt_want_write() since we call dentry_open() later */ + err = vfs_create(dir, path.dentry, S_IRUGO | S_IWUGO, NULL); + if (unlikely(err)) { + file = ERR_PTR(err); + pr_err("%.*s create err %d\n", AuLNPair(name), err); + goto out_dput; + } + + path.mnt = base_file->f_vfsmnt; + file = vfsub_dentry_open(&path, + O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE); + if (IS_ERR(file)) { + pr_err("%.*s open err %ld\n", AuLNPair(name), PTR_ERR(file)); + goto out_dput; + } + + err = vfsub_unlink(dir, &file->f_path, /*force*/0); + if (unlikely(err)) { + pr_err("%.*s unlink err %d\n", AuLNPair(name), err); + goto out_fput; + } + + if (copy_src) { + /* no one can touch copy_src xino */ + err = au_copy_file(file, copy_src, + i_size_read(copy_src->f_dentry->d_inode)); + if (unlikely(err)) { + pr_err("%.*s copy err %d\n", AuLNPair(name), err); + goto out_fput; + } + } + goto out_dput; /* success */ + + out_fput: + fput(file); + file = ERR_PTR(err); + out_dput: + dput(path.dentry); + out: + return file; +} + +struct au_xino_lock_dir { + struct au_hinode *hdir; + struct dentry *parent; + struct mutex *mtx; +}; + +static void au_xino_lock_dir(struct super_block *sb, struct file *xino, + struct au_xino_lock_dir *ldir) +{ + aufs_bindex_t brid, bindex; + + ldir->hdir = NULL; + bindex = -1; + brid = au_xino_brid(sb); + if (brid >= 0) + bindex = au_br_index(sb, brid); + if (bindex >= 0) { + ldir->hdir = au_hi(sb->s_root->d_inode, bindex); + au_hn_imtx_lock_nested(ldir->hdir, AuLsc_I_PARENT); + } else { + ldir->parent = dget_parent(xino->f_dentry); + ldir->mtx = &ldir->parent->d_inode->i_mutex; + mutex_lock_nested(ldir->mtx, AuLsc_I_PARENT); + } +} + +static void au_xino_unlock_dir(struct au_xino_lock_dir *ldir) +{ + if (ldir->hdir) + au_hn_imtx_unlock(ldir->hdir); + else { + mutex_unlock(ldir->mtx); + dput(ldir->parent); + } +} + +/* ---------------------------------------------------------------------- */ + +/* trucate xino files asynchronously */ + +int au_xino_trunc(struct super_block *sb, aufs_bindex_t bindex) +{ + int err; + aufs_bindex_t bi, bend; + struct au_branch *br; + struct file *new_xino, *file; + struct super_block *h_sb; + struct au_xino_lock_dir ldir; + + err = -EINVAL; + bend = au_sbend(sb); + if (unlikely(bindex < 0 || bend < bindex)) + goto out; + br = au_sbr(sb, bindex); + file = br->br_xino.xi_file; + if (!file) + goto out; + + au_xino_lock_dir(sb, file, &ldir); + /* mnt_want_write() is unnecessary here */ + new_xino = au_xino_create2(file, file); + au_xino_unlock_dir(&ldir); + err = PTR_ERR(new_xino); + if (IS_ERR(new_xino)) + goto out; + err = 0; + fput(file); + br->br_xino.xi_file = new_xino; + + h_sb = br->br_mnt->mnt_sb; + for (bi = 0; bi <= bend; bi++) { + if (unlikely(bi == bindex)) + continue; + br = au_sbr(sb, bi); + if (br->br_mnt->mnt_sb != h_sb) + continue; + + fput(br->br_xino.xi_file); + br->br_xino.xi_file = new_xino; + get_file(new_xino); + } + + out: + return err; +} + +struct xino_do_trunc_args { + struct super_block *sb; + struct au_branch *br; +}; + +static void xino_do_trunc(void *_args) +{ + struct xino_do_trunc_args *args = _args; + struct super_block *sb; + struct au_branch *br; + struct inode *dir; + int err; + aufs_bindex_t bindex; + + err = 0; + sb = args->sb; + dir = sb->s_root->d_inode; + br = args->br; + + si_noflush_write_lock(sb); + ii_read_lock_parent(dir); + bindex = au_br_index(sb, br->br_id); + err = au_xino_trunc(sb, bindex); + if (!err + && br->br_xino.xi_file->f_dentry->d_inode->i_blocks + >= br->br_xino_upper) + br->br_xino_upper += AUFS_XINO_TRUNC_STEP; + + ii_read_unlock(dir); + if (unlikely(err)) + pr_warning("err b%d, (%d)\n", bindex, err); + atomic_dec(&br->br_xino_running); + atomic_dec(&br->br_count); + au_nwt_done(&au_sbi(sb)->si_nowait); + si_write_unlock(sb); + kfree(args); +} + +static void xino_try_trunc(struct super_block *sb, struct au_branch *br) +{ + struct xino_do_trunc_args *args; + int wkq_err; + + if (br->br_xino.xi_file->f_dentry->d_inode->i_blocks + < br->br_xino_upper) + return; + + if (atomic_inc_return(&br->br_xino_running) > 1) + goto out; + + /* lock and kfree() will be called in trunc_xino() */ + args = kmalloc(sizeof(*args), GFP_NOFS); + if (unlikely(!args)) { + AuErr1("no memory\n"); + goto out_args; + } + + atomic_inc_return(&br->br_count); + args->sb = sb; + args->br = br; + wkq_err = au_wkq_nowait(xino_do_trunc, args, sb); + if (!wkq_err) + return; /* success */ + + pr_err("wkq %d\n", wkq_err); + atomic_dec_return(&br->br_count); + + out_args: + kfree(args); + out: + atomic_dec_return(&br->br_xino_running); +} + +/* ---------------------------------------------------------------------- */ + +static int au_xino_do_write(au_writef_t write, struct file *file, + ino_t h_ino, ino_t ino) +{ + loff_t pos; + ssize_t sz; + + pos = h_ino; + if (unlikely(au_loff_max / sizeof(ino) - 1 < pos)) { + AuIOErr1("too large hi%lu\n", (unsigned long)h_ino); + return -EFBIG; + } + pos *= sizeof(ino); + sz = xino_fwrite(write, file, &ino, sizeof(ino), &pos); + if (sz == sizeof(ino)) + return 0; /* success */ + + AuIOErr("write failed (%zd)\n", sz); + return -EIO; +} + +/* + * write @ino to the xinofile for the specified branch{@sb, @bindex} + * at the position of @h_ino. + * even if @ino is zero, it is written to the xinofile and means no entry. + * if the size of the xino file on a specific filesystem exceeds the watermark, + * try truncating it. + */ +int au_xino_write(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + ino_t ino) +{ + int err; + unsigned int mnt_flags; + struct au_branch *br; + + BUILD_BUG_ON(sizeof(long long) != sizeof(au_loff_max) + || ((loff_t)-1) > 0); + SiMustAnyLock(sb); + + mnt_flags = au_mntflags(sb); + if (!au_opt_test(mnt_flags, XINO)) + return 0; + + br = au_sbr(sb, bindex); + err = au_xino_do_write(au_sbi(sb)->si_xwrite, br->br_xino.xi_file, + h_ino, ino); + if (!err) { + if (au_opt_test(mnt_flags, TRUNC_XINO) + && au_test_fs_trunc_xino(br->br_mnt->mnt_sb)) + xino_try_trunc(sb, br); + return 0; /* success */ + } + + AuIOErr("write failed (%d)\n", err); + return -EIO; +} + +/* ---------------------------------------------------------------------- */ + +/* aufs inode number bitmap */ + +static const int page_bits = (int)PAGE_SIZE * BITS_PER_BYTE; +static ino_t xib_calc_ino(unsigned long pindex, int bit) +{ + ino_t ino; + + AuDebugOn(bit < 0 || page_bits <= bit); + ino = AUFS_FIRST_INO + pindex * page_bits + bit; + return ino; +} + +static void xib_calc_bit(ino_t ino, unsigned long *pindex, int *bit) +{ + AuDebugOn(ino < AUFS_FIRST_INO); + ino -= AUFS_FIRST_INO; + *pindex = ino / page_bits; + *bit = ino % page_bits; +} + +static int xib_pindex(struct super_block *sb, unsigned long pindex) +{ + int err; + loff_t pos; + ssize_t sz; + struct au_sbinfo *sbinfo; + struct file *xib; + unsigned long *p; + + sbinfo = au_sbi(sb); + MtxMustLock(&sbinfo->si_xib_mtx); + AuDebugOn(pindex > ULONG_MAX / PAGE_SIZE + || !au_opt_test(sbinfo->si_mntflags, XINO)); + + if (pindex == sbinfo->si_xib_last_pindex) + return 0; + + xib = sbinfo->si_xib; + p = sbinfo->si_xib_buf; + pos = sbinfo->si_xib_last_pindex; + pos *= PAGE_SIZE; + sz = xino_fwrite(sbinfo->si_xwrite, xib, p, PAGE_SIZE, &pos); + if (unlikely(sz != PAGE_SIZE)) + goto out; + + pos = pindex; + pos *= PAGE_SIZE; + if (i_size_read(xib->f_dentry->d_inode) >= pos + PAGE_SIZE) + sz = xino_fread(sbinfo->si_xread, xib, p, PAGE_SIZE, &pos); + else { + memset(p, 0, PAGE_SIZE); + sz = xino_fwrite(sbinfo->si_xwrite, xib, p, PAGE_SIZE, &pos); + } + if (sz == PAGE_SIZE) { + sbinfo->si_xib_last_pindex = pindex; + return 0; /* success */ + } + + out: + AuIOErr1("write failed (%zd)\n", sz); + err = sz; + if (sz >= 0) + err = -EIO; + return err; +} + +/* ---------------------------------------------------------------------- */ + +static void au_xib_clear_bit(struct inode *inode) +{ + int err, bit; + unsigned long pindex; + struct super_block *sb; + struct au_sbinfo *sbinfo; + + AuDebugOn(inode->i_nlink); + + sb = inode->i_sb; + xib_calc_bit(inode->i_ino, &pindex, &bit); + AuDebugOn(page_bits <= bit); + sbinfo = au_sbi(sb); + mutex_lock(&sbinfo->si_xib_mtx); + err = xib_pindex(sb, pindex); + if (!err) { + clear_bit(bit, sbinfo->si_xib_buf); + sbinfo->si_xib_next_bit = bit; + } + mutex_unlock(&sbinfo->si_xib_mtx); +} + +/* for s_op->delete_inode() */ +void au_xino_delete_inode(struct inode *inode, const int unlinked) +{ + int err; + unsigned int mnt_flags; + aufs_bindex_t bindex, bend, bi; + unsigned char try_trunc; + struct au_iinfo *iinfo; + struct super_block *sb; + struct au_hinode *hi; + struct inode *h_inode; + struct au_branch *br; + au_writef_t xwrite; + + sb = inode->i_sb; + mnt_flags = au_mntflags(sb); + if (!au_opt_test(mnt_flags, XINO) + || inode->i_ino == AUFS_ROOT_INO) + return; + + if (unlinked) { + au_xigen_inc(inode); + au_xib_clear_bit(inode); + } + + iinfo = au_ii(inode); + if (!iinfo) + return; + + bindex = iinfo->ii_bstart; + if (bindex < 0) + return; + + xwrite = au_sbi(sb)->si_xwrite; + try_trunc = !!au_opt_test(mnt_flags, TRUNC_XINO); + hi = iinfo->ii_hinode + bindex; + bend = iinfo->ii_bend; + for (; bindex <= bend; bindex++, hi++) { + h_inode = hi->hi_inode; + if (!h_inode + || (!unlinked && h_inode->i_nlink)) + continue; + + /* inode may not be revalidated */ + bi = au_br_index(sb, hi->hi_id); + if (bi < 0) + continue; + + br = au_sbr(sb, bi); + err = au_xino_do_write(xwrite, br->br_xino.xi_file, + h_inode->i_ino, /*ino*/0); + if (!err && try_trunc + && au_test_fs_trunc_xino(br->br_mnt->mnt_sb)) + xino_try_trunc(sb, br); + } +} + +/* get an unused inode number from bitmap */ +ino_t au_xino_new_ino(struct super_block *sb) +{ + ino_t ino; + unsigned long *p, pindex, ul, pend; + struct au_sbinfo *sbinfo; + struct file *file; + int free_bit, err; + + if (!au_opt_test(au_mntflags(sb), XINO)) + return iunique(sb, AUFS_FIRST_INO); + + sbinfo = au_sbi(sb); + mutex_lock(&sbinfo->si_xib_mtx); + p = sbinfo->si_xib_buf; + free_bit = sbinfo->si_xib_next_bit; + if (free_bit < page_bits && !test_bit(free_bit, p)) + goto out; /* success */ + free_bit = find_first_zero_bit(p, page_bits); + if (free_bit < page_bits) + goto out; /* success */ + + pindex = sbinfo->si_xib_last_pindex; + for (ul = pindex - 1; ul < ULONG_MAX; ul--) { + err = xib_pindex(sb, ul); + if (unlikely(err)) + goto out_err; + free_bit = find_first_zero_bit(p, page_bits); + if (free_bit < page_bits) + goto out; /* success */ + } + + file = sbinfo->si_xib; + pend = i_size_read(file->f_dentry->d_inode) / PAGE_SIZE; + for (ul = pindex + 1; ul <= pend; ul++) { + err = xib_pindex(sb, ul); + if (unlikely(err)) + goto out_err; + free_bit = find_first_zero_bit(p, page_bits); + if (free_bit < page_bits) + goto out; /* success */ + } + BUG(); + + out: + set_bit(free_bit, p); + sbinfo->si_xib_next_bit++; + pindex = sbinfo->si_xib_last_pindex; + mutex_unlock(&sbinfo->si_xib_mtx); + ino = xib_calc_ino(pindex, free_bit); + AuDbg("i%lu\n", (unsigned long)ino); + return ino; + out_err: + mutex_unlock(&sbinfo->si_xib_mtx); + AuDbg("i0\n"); + return 0; +} + +/* + * read @ino from xinofile for the specified branch{@sb, @bindex} + * at the position of @h_ino. + * if @ino does not exist and @do_new is true, get new one. + */ +int au_xino_read(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + ino_t *ino) +{ + int err; + ssize_t sz; + loff_t pos; + struct file *file; + struct au_sbinfo *sbinfo; + + *ino = 0; + if (!au_opt_test(au_mntflags(sb), XINO)) + return 0; /* no xino */ + + err = 0; + sbinfo = au_sbi(sb); + pos = h_ino; + if (unlikely(au_loff_max / sizeof(*ino) - 1 < pos)) { + AuIOErr1("too large hi%lu\n", (unsigned long)h_ino); + return -EFBIG; + } + pos *= sizeof(*ino); + + file = au_sbr(sb, bindex)->br_xino.xi_file; + if (i_size_read(file->f_dentry->d_inode) < pos + sizeof(*ino)) + return 0; /* no ino */ + + sz = xino_fread(sbinfo->si_xread, file, ino, sizeof(*ino), &pos); + if (sz == sizeof(*ino)) + return 0; /* success */ + + err = sz; + if (unlikely(sz >= 0)) { + err = -EIO; + AuIOErr("xino read error (%zd)\n", sz); + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* create and set a new xino file */ + +struct file *au_xino_create(struct super_block *sb, char *fname, int silent) +{ + struct file *file; + struct dentry *h_parent, *d; + struct inode *h_dir; + int err; + + /* + * at mount-time, and the xino file is the default path, + * hnotify is disabled so we have no notify events to ignore. + * when a user specified the xino, we cannot get au_hdir to be ignored. + */ + file = vfsub_filp_open(fname, O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE, + S_IRUGO | S_IWUGO); + if (IS_ERR(file)) { + if (!silent) + pr_err("open %s(%ld)\n", fname, PTR_ERR(file)); + return file; + } + + /* keep file count */ + h_parent = dget_parent(file->f_dentry); + h_dir = h_parent->d_inode; + mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_PARENT); + /* mnt_want_write() is unnecessary here */ + err = vfsub_unlink(h_dir, &file->f_path, /*force*/0); + mutex_unlock(&h_dir->i_mutex); + dput(h_parent); + if (unlikely(err)) { + if (!silent) + pr_err("unlink %s(%d)\n", fname, err); + goto out; + } + + err = -EINVAL; + d = file->f_dentry; + if (unlikely(sb == d->d_sb)) { + if (!silent) + pr_err("%s must be outside\n", fname); + goto out; + } + if (unlikely(au_test_fs_bad_xino(d->d_sb))) { + if (!silent) + pr_err("xino doesn't support %s(%s)\n", + fname, au_sbtype(d->d_sb)); + goto out; + } + return file; /* success */ + + out: + fput(file); + file = ERR_PTR(err); + return file; +} + +/* + * find another branch who is on the same filesystem of the specified + * branch{@btgt}. search until @bend. + */ +static int is_sb_shared(struct super_block *sb, aufs_bindex_t btgt, + aufs_bindex_t bend) +{ + aufs_bindex_t bindex; + struct super_block *tgt_sb = au_sbr_sb(sb, btgt); + + for (bindex = 0; bindex < btgt; bindex++) + if (unlikely(tgt_sb == au_sbr_sb(sb, bindex))) + return bindex; + for (bindex++; bindex <= bend; bindex++) + if (unlikely(tgt_sb == au_sbr_sb(sb, bindex))) + return bindex; + return -1; +} + +/* ---------------------------------------------------------------------- */ + +/* + * initialize the xinofile for the specified branch @br + * at the place/path where @base_file indicates. + * test whether another branch is on the same filesystem or not, + * if @do_test is true. + */ +int au_xino_br(struct super_block *sb, struct au_branch *br, ino_t h_ino, + struct file *base_file, int do_test) +{ + int err; + ino_t ino; + aufs_bindex_t bend, bindex; + struct au_branch *shared_br, *b; + struct file *file; + struct super_block *tgt_sb; + + shared_br = NULL; + bend = au_sbend(sb); + if (do_test) { + tgt_sb = br->br_mnt->mnt_sb; + for (bindex = 0; bindex <= bend; bindex++) { + b = au_sbr(sb, bindex); + if (tgt_sb == b->br_mnt->mnt_sb) { + shared_br = b; + break; + } + } + } + + if (!shared_br || !shared_br->br_xino.xi_file) { + struct au_xino_lock_dir ldir; + + au_xino_lock_dir(sb, base_file, &ldir); + /* mnt_want_write() is unnecessary here */ + file = au_xino_create2(base_file, NULL); + au_xino_unlock_dir(&ldir); + err = PTR_ERR(file); + if (IS_ERR(file)) + goto out; + br->br_xino.xi_file = file; + } else { + br->br_xino.xi_file = shared_br->br_xino.xi_file; + get_file(br->br_xino.xi_file); + } + + ino = AUFS_ROOT_INO; + err = au_xino_do_write(au_sbi(sb)->si_xwrite, br->br_xino.xi_file, + h_ino, ino); + if (!err) + return 0; /* success */ + + + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* trucate a xino bitmap file */ + +/* todo: slow */ +static int do_xib_restore(struct super_block *sb, struct file *file, void *page) +{ + int err, bit; + ssize_t sz; + unsigned long pindex; + loff_t pos, pend; + struct au_sbinfo *sbinfo; + au_readf_t func; + ino_t *ino; + unsigned long *p; + + err = 0; + sbinfo = au_sbi(sb); + MtxMustLock(&sbinfo->si_xib_mtx); + p = sbinfo->si_xib_buf; + func = sbinfo->si_xread; + pend = i_size_read(file->f_dentry->d_inode); + pos = 0; + while (pos < pend) { + sz = xino_fread(func, file, page, PAGE_SIZE, &pos); + err = sz; + if (unlikely(sz <= 0)) + goto out; + + err = 0; + for (ino = page; sz > 0; ino++, sz -= sizeof(ino)) { + if (unlikely(*ino < AUFS_FIRST_INO)) + continue; + + xib_calc_bit(*ino, &pindex, &bit); + AuDebugOn(page_bits <= bit); + err = xib_pindex(sb, pindex); + if (!err) + set_bit(bit, p); + else + goto out; + } + } + + out: + return err; +} + +static int xib_restore(struct super_block *sb) +{ + int err; + aufs_bindex_t bindex, bend; + void *page; + + err = -ENOMEM; + page = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!page)) + goto out; + + err = 0; + bend = au_sbend(sb); + for (bindex = 0; !err && bindex <= bend; bindex++) + if (!bindex || is_sb_shared(sb, bindex, bindex - 1) < 0) + err = do_xib_restore + (sb, au_sbr(sb, bindex)->br_xino.xi_file, page); + else + AuDbg("b%d\n", bindex); + free_page((unsigned long)page); + + out: + return err; +} + +int au_xib_trunc(struct super_block *sb) +{ + int err; + ssize_t sz; + loff_t pos; + struct au_xino_lock_dir ldir; + struct au_sbinfo *sbinfo; + unsigned long *p; + struct file *file; + + SiMustWriteLock(sb); + + err = 0; + sbinfo = au_sbi(sb); + if (!au_opt_test(sbinfo->si_mntflags, XINO)) + goto out; + + file = sbinfo->si_xib; + if (i_size_read(file->f_dentry->d_inode) <= PAGE_SIZE) + goto out; + + au_xino_lock_dir(sb, file, &ldir); + /* mnt_want_write() is unnecessary here */ + file = au_xino_create2(sbinfo->si_xib, NULL); + au_xino_unlock_dir(&ldir); + err = PTR_ERR(file); + if (IS_ERR(file)) + goto out; + fput(sbinfo->si_xib); + sbinfo->si_xib = file; + + p = sbinfo->si_xib_buf; + memset(p, 0, PAGE_SIZE); + pos = 0; + sz = xino_fwrite(sbinfo->si_xwrite, sbinfo->si_xib, p, PAGE_SIZE, &pos); + if (unlikely(sz != PAGE_SIZE)) { + err = sz; + AuIOErr("err %d\n", err); + if (sz >= 0) + err = -EIO; + goto out; + } + + mutex_lock(&sbinfo->si_xib_mtx); + /* mnt_want_write() is unnecessary here */ + err = xib_restore(sb); + mutex_unlock(&sbinfo->si_xib_mtx); + +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * xino mount option handlers + */ +static au_readf_t find_readf(struct file *h_file) +{ + const struct file_operations *fop = h_file->f_op; + + if (fop) { + if (fop->read) + return fop->read; + if (fop->aio_read) + return do_sync_read; + } + return ERR_PTR(-ENOSYS); +} + +static au_writef_t find_writef(struct file *h_file) +{ + const struct file_operations *fop = h_file->f_op; + + if (fop) { + if (fop->write) + return fop->write; + if (fop->aio_write) + return do_sync_write; + } + return ERR_PTR(-ENOSYS); +} + +/* xino bitmap */ +static void xino_clear_xib(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + sbinfo->si_xread = NULL; + sbinfo->si_xwrite = NULL; + if (sbinfo->si_xib) + fput(sbinfo->si_xib); + sbinfo->si_xib = NULL; + free_page((unsigned long)sbinfo->si_xib_buf); + sbinfo->si_xib_buf = NULL; +} + +static int au_xino_set_xib(struct super_block *sb, struct file *base) +{ + int err; + loff_t pos; + struct au_sbinfo *sbinfo; + struct file *file; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + file = au_xino_create2(base, sbinfo->si_xib); + err = PTR_ERR(file); + if (IS_ERR(file)) + goto out; + if (sbinfo->si_xib) + fput(sbinfo->si_xib); + sbinfo->si_xib = file; + sbinfo->si_xread = find_readf(file); + sbinfo->si_xwrite = find_writef(file); + + err = -ENOMEM; + if (!sbinfo->si_xib_buf) + sbinfo->si_xib_buf = (void *)get_zeroed_page(GFP_NOFS); + if (unlikely(!sbinfo->si_xib_buf)) + goto out_unset; + + sbinfo->si_xib_last_pindex = 0; + sbinfo->si_xib_next_bit = 0; + if (i_size_read(file->f_dentry->d_inode) < PAGE_SIZE) { + pos = 0; + err = xino_fwrite(sbinfo->si_xwrite, file, sbinfo->si_xib_buf, + PAGE_SIZE, &pos); + if (unlikely(err != PAGE_SIZE)) + goto out_free; + } + err = 0; + goto out; /* success */ + + out_free: + free_page((unsigned long)sbinfo->si_xib_buf); + sbinfo->si_xib_buf = NULL; + if (err >= 0) + err = -EIO; + out_unset: + fput(sbinfo->si_xib); + sbinfo->si_xib = NULL; + sbinfo->si_xread = NULL; + sbinfo->si_xwrite = NULL; + out: + return err; +} + +/* xino for each branch */ +static void xino_clear_br(struct super_block *sb) +{ + aufs_bindex_t bindex, bend; + struct au_branch *br; + + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + if (!br || !br->br_xino.xi_file) + continue; + + fput(br->br_xino.xi_file); + br->br_xino.xi_file = NULL; + } +} + +static int au_xino_set_br(struct super_block *sb, struct file *base) +{ + int err; + ino_t ino; + aufs_bindex_t bindex, bend, bshared; + struct { + struct file *old, *new; + } *fpair, *p; + struct au_branch *br; + struct inode *inode; + au_writef_t writef; + + SiMustWriteLock(sb); + + err = -ENOMEM; + bend = au_sbend(sb); + fpair = kcalloc(bend + 1, sizeof(*fpair), GFP_NOFS); + if (unlikely(!fpair)) + goto out; + + inode = sb->s_root->d_inode; + ino = AUFS_ROOT_INO; + writef = au_sbi(sb)->si_xwrite; + for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++) { + br = au_sbr(sb, bindex); + bshared = is_sb_shared(sb, bindex, bindex - 1); + if (bshared >= 0) { + /* shared xino */ + *p = fpair[bshared]; + get_file(p->new); + } + + if (!p->new) { + /* new xino */ + p->old = br->br_xino.xi_file; + p->new = au_xino_create2(base, br->br_xino.xi_file); + err = PTR_ERR(p->new); + if (IS_ERR(p->new)) { + p->new = NULL; + goto out_pair; + } + } + + err = au_xino_do_write(writef, p->new, + au_h_iptr(inode, bindex)->i_ino, ino); + if (unlikely(err)) + goto out_pair; + } + + for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++) { + br = au_sbr(sb, bindex); + if (br->br_xino.xi_file) + fput(br->br_xino.xi_file); + get_file(p->new); + br->br_xino.xi_file = p->new; + } + + out_pair: + for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++) + if (p->new) + fput(p->new); + else + break; + kfree(fpair); + out: + return err; +} + +void au_xino_clr(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + + au_xigen_clr(sb); + xino_clear_xib(sb); + xino_clear_br(sb); + sbinfo = au_sbi(sb); + /* lvalue, do not call au_mntflags() */ + au_opt_clr(sbinfo->si_mntflags, XINO); +} + +int au_xino_set(struct super_block *sb, struct au_opt_xino *xino, int remount) +{ + int err, skip; + struct dentry *parent, *cur_parent; + struct qstr *dname, *cur_name; + struct file *cur_xino; + struct inode *dir; + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + err = 0; + sbinfo = au_sbi(sb); + parent = dget_parent(xino->file->f_dentry); + if (remount) { + skip = 0; + dname = &xino->file->f_dentry->d_name; + cur_xino = sbinfo->si_xib; + if (cur_xino) { + cur_parent = dget_parent(cur_xino->f_dentry); + cur_name = &cur_xino->f_dentry->d_name; + skip = (cur_parent == parent + && dname->len == cur_name->len + && !memcmp(dname->name, cur_name->name, + dname->len)); + dput(cur_parent); + } + if (skip) + goto out; + } + + au_opt_set(sbinfo->si_mntflags, XINO); + dir = parent->d_inode; + mutex_lock_nested(&dir->i_mutex, AuLsc_I_PARENT); + /* mnt_want_write() is unnecessary here */ + err = au_xino_set_xib(sb, xino->file); + if (!err) + err = au_xigen_set(sb, xino->file); + if (!err) + err = au_xino_set_br(sb, xino->file); + mutex_unlock(&dir->i_mutex); + if (!err) + goto out; /* success */ + + /* reset all */ + AuIOErr("failed creating xino(%d).\n", err); + + out: + dput(parent); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * create a xinofile at the default place/path. + */ +struct file *au_xino_def(struct super_block *sb) +{ + struct file *file; + char *page, *p; + struct au_branch *br; + struct super_block *h_sb; + struct path path; + aufs_bindex_t bend, bindex, bwr; + + br = NULL; + bend = au_sbend(sb); + bwr = -1; + for (bindex = 0; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + if (au_br_writable(br->br_perm) + && !au_test_fs_bad_xino(br->br_mnt->mnt_sb)) { + bwr = bindex; + break; + } + } + + if (bwr >= 0) { + file = ERR_PTR(-ENOMEM); + page = __getname_gfp(GFP_NOFS); + if (unlikely(!page)) + goto out; + path.mnt = br->br_mnt; + path.dentry = au_h_dptr(sb->s_root, bwr); + p = d_path(&path, page, PATH_MAX - sizeof(AUFS_XINO_FNAME)); + file = (void *)p; + if (!IS_ERR(p)) { + strcat(p, "/" AUFS_XINO_FNAME); + AuDbg("%s\n", p); + file = au_xino_create(sb, p, /*silent*/0); + if (!IS_ERR(file)) + au_xino_brid_set(sb, br->br_id); + } + __putname(page); + } else { + file = au_xino_create(sb, AUFS_XINO_DEFPATH, /*silent*/0); + if (IS_ERR(file)) + goto out; + h_sb = file->f_dentry->d_sb; + if (unlikely(au_test_fs_bad_xino(h_sb))) { + pr_err("xino doesn't support %s(%s)\n", + AUFS_XINO_DEFPATH, au_sbtype(h_sb)); + fput(file); + file = ERR_PTR(-EINVAL); + } + if (!IS_ERR(file)) + au_xino_brid_set(sb, -1); + } + + out: + return file; +} + +/* ---------------------------------------------------------------------- */ + +int au_xino_path(struct seq_file *seq, struct file *file) +{ + int err; + + err = au_seq_path(seq, &file->f_path); + if (unlikely(err < 0)) + goto out; + + err = 0; +#define Deleted "\\040(deleted)" + seq->count -= sizeof(Deleted) - 1; + AuDebugOn(memcmp(seq->buf + seq->count, Deleted, + sizeof(Deleted) - 1)); +#undef Deleted + + out: + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/Kconfig +++ linux-2.6.35/ubuntu/aufs/Kconfig @@ -0,0 +1,175 @@ +config AUFS_FS + tristate "Aufs (Advanced multi layered unification filesystem) support" + depends on EXPERIMENTAL + help + Aufs is a stackable unification filesystem such as Unionfs, + which unifies several directories and provides a merged single + directory. + In the early days, aufs was entirely re-designed and + re-implemented Unionfs Version 1.x series. Introducing many + original ideas, approaches and improvements, it becomes totally + different from Unionfs while keeping the basic features. + +if AUFS_FS +choice + prompt "Maximum number of branches" + default AUFS_BRANCH_MAX_127 + help + Specifies the maximum number of branches (or member directories) + in a single aufs. The larger value consumes more system + resources and has a minor impact to performance. +config AUFS_BRANCH_MAX_127 + bool "127" + help + Specifies the maximum number of branches (or member directories) + in a single aufs. The larger value consumes more system + resources and has a minor impact to performance. +config AUFS_BRANCH_MAX_511 + bool "511" + help + Specifies the maximum number of branches (or member directories) + in a single aufs. The larger value consumes more system + resources and has a minor impact to performance. +config AUFS_BRANCH_MAX_1023 + bool "1023" + help + Specifies the maximum number of branches (or member directories) + in a single aufs. The larger value consumes more system + resources and has a minor impact to performance. +config AUFS_BRANCH_MAX_32767 + bool "32767" + help + Specifies the maximum number of branches (or member directories) + in a single aufs. The larger value consumes more system + resources and has a minor impact to performance. +endchoice + +config AUFS_HNOTIFY + bool "Detect direct branch access (bypassing aufs)" + help + If you want to modify files on branches directly, eg. bypassing aufs, + and want aufs to detect the changes of them fully, then enable this + option and use 'udba=notify' mount option. + It will have a negative impact to the performance. + See detail in aufs.5. + + +choice + prompt "method" if AUFS_HNOTIFY + default AUFS_HFSNOTIFY +config AUFS_HFSNOTIFY + bool "fsnotify" + select FSNOTIFY +config AUFS_HINOTIFY + bool "inotify (DEPRECATED)" + depends on INOTIFY +endchoice + +config AUFS_EXPORT + bool "NFS-exportable aufs" + depends on (AUFS_FS = y && EXPORTFS = y) || (AUFS_FS = m && EXPORTFS) + help + If you want to export your mounted aufs via NFS, then enable this + option. There are several requirements for this configuration. + See detail in aufs.5. + +config AUFS_INO_T_64 + bool + depends on AUFS_EXPORT + depends on 64BIT && !(ALPHA || S390) + default y + help + Automatic configuration for internal use. + /* typedef unsigned long/int __kernel_ino_t */ + /* alpha and s390x are int */ + +config AUFS_RDU + bool "Readdir in userspace" + help + Aufs has two methods to provide a merged view for a directory, + by a user-space library and by kernel-space natively. The latter + is always enabled but sometimes large and slow. + If you enable this option, install the library in aufs2-util + package, and set some environment variables for your readdir(3), + then the work will be handled in user-space which generally + shows better performance in most cases. + See detail in aufs.5. + +config AUFS_SP_IATTR + bool "Respect the attributes (mtime/ctime mainly) of special files" + help + When you write something to a special file, some attributes of it + (mtime/ctime mainly) may be updated. Generally such updates are + less important (actually some device drivers and NFS ignore + it). But some applications (such like test program) requires + such updates. If you need these updates, then enable this + configuration which introduces some overhead. + Currently this configuration handles FIFO only. + +config AUFS_SHWH + bool "Show whiteouts" + help + If you want to make the whiteouts in aufs visible, then enable + this option and specify 'shwh' mount option. Although it may + sounds like philosophy or something, but in technically it + simply shows the name of whiteout with keeping its behaviour. + +config AUFS_BR_RAMFS + bool "Ramfs (initramfs/rootfs) as an aufs branch" + help + If you want to use ramfs as an aufs branch fs, then enable this + option. Generally tmpfs is recommended. + Aufs prohibited them to be a branch fs by default, because + initramfs becomes unusable after switch_root or something + generally. If you sets initramfs as an aufs branch and boot your + system by switch_root, you will meet a problem easily since the + files in initramfs may be inaccessible. + Unless you are going to use ramfs as an aufs branch fs without + switch_root or something, leave it N. + +config AUFS_BR_FUSE + bool "Fuse fs as an aufs branch" + depends on FUSE_FS + select AUFS_POLL + help + If you want to use fuse-based userspace filesystem as an aufs + branch fs, then enable this option. + It implements the internal poll(2) operation which is + implemented by fuse only (curretnly). + +config AUFS_POLL + bool + help + Automatic configuration for internal use. + +config AUFS_BR_HFSPLUS + bool "Hfsplus as an aufs branch" + depends on HFSPLUS_FS + default y + help + If you want to use hfsplus fs as an aufs branch fs, then enable + this option. This option introduces a small overhead at + copying-up a file on hfsplus. + +config AUFS_BDEV_LOOP + bool + depends on BLK_DEV_LOOP + default y + help + Automatic configuration for internal use. + Convert =[ym] into =y. + +config AUFS_DEBUG + bool "Debug aufs" + help + Enable this to compile aufs internal debug code. + It will have a negative impact to the performance. + +config AUFS_MAGIC_SYSRQ + bool + depends on AUFS_DEBUG && MAGIC_SYSRQ + default y + help + Automatic configuration for internal use. + When aufs supports Magic SysRq, enabled automatically. +endif --- linux-2.6.35.orig/ubuntu/aufs/cpup.c +++ linux-2.6.35/ubuntu/aufs/cpup.c @@ -0,0 +1,1059 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * copy-up functions, see wbr_policy.c for copy-down + */ + +#include +#include +#include +#include +#include "aufs.h" + +void au_cpup_attr_flags(struct inode *dst, struct inode *src) +{ + const unsigned int mask = S_DEAD | S_SWAPFILE | S_PRIVATE + | S_NOATIME | S_NOCMTIME; + + dst->i_flags |= src->i_flags & ~mask; + if (au_test_fs_notime(dst->i_sb)) + dst->i_flags |= S_NOATIME | S_NOCMTIME; +} + +void au_cpup_attr_timesizes(struct inode *inode) +{ + struct inode *h_inode; + + h_inode = au_h_iptr(inode, au_ibstart(inode)); + fsstack_copy_attr_times(inode, h_inode); + fsstack_copy_inode_size(inode, h_inode); +} + +void au_cpup_attr_nlink(struct inode *inode, int force) +{ + struct inode *h_inode; + struct super_block *sb; + aufs_bindex_t bindex, bend; + + sb = inode->i_sb; + bindex = au_ibstart(inode); + h_inode = au_h_iptr(inode, bindex); + if (!force + && !S_ISDIR(h_inode->i_mode) + && au_opt_test(au_mntflags(sb), PLINK) + && au_plink_test(inode)) + return; + + inode->i_nlink = h_inode->i_nlink; + + /* + * fewer nlink makes find(1) noisy, but larger nlink doesn't. + * it may includes whplink directory. + */ + if (S_ISDIR(h_inode->i_mode)) { + bend = au_ibend(inode); + for (bindex++; bindex <= bend; bindex++) { + h_inode = au_h_iptr(inode, bindex); + if (h_inode) + au_add_nlink(inode, h_inode); + } + } +} + +void au_cpup_attr_changeable(struct inode *inode) +{ + struct inode *h_inode; + + h_inode = au_h_iptr(inode, au_ibstart(inode)); + inode->i_mode = h_inode->i_mode; + inode->i_uid = h_inode->i_uid; + inode->i_gid = h_inode->i_gid; + au_cpup_attr_timesizes(inode); + au_cpup_attr_flags(inode, h_inode); +} + +void au_cpup_igen(struct inode *inode, struct inode *h_inode) +{ + struct au_iinfo *iinfo = au_ii(inode); + + IiMustWriteLock(inode); + + iinfo->ii_higen = h_inode->i_generation; + iinfo->ii_hsb1 = h_inode->i_sb; +} + +void au_cpup_attr_all(struct inode *inode, int force) +{ + struct inode *h_inode; + + h_inode = au_h_iptr(inode, au_ibstart(inode)); + au_cpup_attr_changeable(inode); + if (inode->i_nlink > 0) + au_cpup_attr_nlink(inode, force); + inode->i_rdev = h_inode->i_rdev; + inode->i_blkbits = h_inode->i_blkbits; + au_cpup_igen(inode, h_inode); +} + +/* ---------------------------------------------------------------------- */ + +/* Note: dt_dentry and dt_h_dentry are not dget/dput-ed */ + +/* keep the timestamps of the parent dir when cpup */ +void au_dtime_store(struct au_dtime *dt, struct dentry *dentry, + struct path *h_path) +{ + struct inode *h_inode; + + dt->dt_dentry = dentry; + dt->dt_h_path = *h_path; + h_inode = h_path->dentry->d_inode; + dt->dt_atime = h_inode->i_atime; + dt->dt_mtime = h_inode->i_mtime; + /* smp_mb(); */ +} + +void au_dtime_revert(struct au_dtime *dt) +{ + struct iattr attr; + int err; + + attr.ia_atime = dt->dt_atime; + attr.ia_mtime = dt->dt_mtime; + attr.ia_valid = ATTR_FORCE | ATTR_MTIME | ATTR_MTIME_SET + | ATTR_ATIME | ATTR_ATIME_SET; + + err = vfsub_notify_change(&dt->dt_h_path, &attr); + if (unlikely(err)) + pr_warning("restoring timestamps failed(%d). ignored\n", err); +} + +/* ---------------------------------------------------------------------- */ + +static noinline_for_stack +int cpup_iattr(struct dentry *dst, aufs_bindex_t bindex, struct dentry *h_src) +{ + int err, sbits; + struct iattr ia; + struct path h_path; + struct inode *h_isrc, *h_idst; + + h_path.dentry = au_h_dptr(dst, bindex); + h_idst = h_path.dentry->d_inode; + h_path.mnt = au_sbr_mnt(dst->d_sb, bindex); + h_isrc = h_src->d_inode; + ia.ia_valid = ATTR_FORCE | ATTR_UID | ATTR_GID + | ATTR_ATIME | ATTR_MTIME + | ATTR_ATIME_SET | ATTR_MTIME_SET; + ia.ia_uid = h_isrc->i_uid; + ia.ia_gid = h_isrc->i_gid; + ia.ia_atime = h_isrc->i_atime; + ia.ia_mtime = h_isrc->i_mtime; + if (h_idst->i_mode != h_isrc->i_mode + && !S_ISLNK(h_idst->i_mode)) { + ia.ia_valid |= ATTR_MODE; + ia.ia_mode = h_isrc->i_mode; + } + sbits = !!(h_isrc->i_mode & (S_ISUID | S_ISGID)); + au_cpup_attr_flags(h_idst, h_isrc); + err = vfsub_notify_change(&h_path, &ia); + + /* is this nfs only? */ + if (!err && sbits && au_test_nfs(h_path.dentry->d_sb)) { + ia.ia_valid = ATTR_FORCE | ATTR_MODE; + ia.ia_mode = h_isrc->i_mode; + err = vfsub_notify_change(&h_path, &ia); + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_do_copy_file(struct file *dst, struct file *src, loff_t len, + char *buf, unsigned long blksize) +{ + int err; + size_t sz, rbytes, wbytes; + unsigned char all_zero; + char *p, *zp; + struct mutex *h_mtx; + /* reduce stack usage */ + struct iattr *ia; + + zp = page_address(ZERO_PAGE(0)); + if (unlikely(!zp)) + return -ENOMEM; /* possible? */ + + err = 0; + all_zero = 0; + while (len) { + AuDbg("len %lld\n", len); + sz = blksize; + if (len < blksize) + sz = len; + + rbytes = 0; + /* todo: signal_pending? */ + while (!rbytes || err == -EAGAIN || err == -EINTR) { + rbytes = vfsub_read_k(src, buf, sz, &src->f_pos); + err = rbytes; + } + if (unlikely(err < 0)) + break; + + all_zero = 0; + if (len >= rbytes && rbytes == blksize) + all_zero = !memcmp(buf, zp, rbytes); + if (!all_zero) { + wbytes = rbytes; + p = buf; + while (wbytes) { + size_t b; + + b = vfsub_write_k(dst, p, wbytes, &dst->f_pos); + err = b; + /* todo: signal_pending? */ + if (unlikely(err == -EAGAIN || err == -EINTR)) + continue; + if (unlikely(err < 0)) + break; + wbytes -= b; + p += b; + } + } else { + loff_t res; + + AuLabel(hole); + res = vfsub_llseek(dst, rbytes, SEEK_CUR); + err = res; + if (unlikely(res < 0)) + break; + } + len -= rbytes; + err = 0; + } + + /* the last block may be a hole */ + if (!err && all_zero) { + AuLabel(last hole); + + err = 1; + if (au_test_nfs(dst->f_dentry->d_sb)) { + /* nfs requires this step to make last hole */ + /* is this only nfs? */ + do { + /* todo: signal_pending? */ + err = vfsub_write_k(dst, "\0", 1, &dst->f_pos); + } while (err == -EAGAIN || err == -EINTR); + if (err == 1) + dst->f_pos--; + } + + if (err == 1) { + ia = (void *)buf; + ia->ia_size = dst->f_pos; + ia->ia_valid = ATTR_SIZE | ATTR_FILE; + ia->ia_file = dst; + h_mtx = &dst->f_dentry->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_CHILD2); + err = vfsub_notify_change(&dst->f_path, ia); + mutex_unlock(h_mtx); + } + } + + return err; +} + +int au_copy_file(struct file *dst, struct file *src, loff_t len) +{ + int err; + unsigned long blksize; + unsigned char do_kfree; + char *buf; + + err = -ENOMEM; + blksize = dst->f_dentry->d_sb->s_blocksize; + if (!blksize || PAGE_SIZE < blksize) + blksize = PAGE_SIZE; + AuDbg("blksize %lu\n", blksize); + do_kfree = (blksize != PAGE_SIZE && blksize >= sizeof(struct iattr *)); + if (do_kfree) + buf = kmalloc(blksize, GFP_NOFS); + else + buf = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!buf)) + goto out; + + if (len > (1 << 22)) + AuDbg("copying a large file %lld\n", (long long)len); + + src->f_pos = 0; + dst->f_pos = 0; + err = au_do_copy_file(dst, src, len, buf, blksize); + if (do_kfree) + kfree(buf); + else + free_page((unsigned long)buf); + + out: + return err; +} + +/* + * to support a sparse file which is opened with O_APPEND, + * we need to close the file. + */ +static int au_cp_regular(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len) +{ + int err, i; + enum { SRC, DST }; + struct { + aufs_bindex_t bindex; + unsigned int flags; + struct dentry *dentry; + struct file *file; + void *label, *label_file; + } *f, file[] = { + { + .bindex = bsrc, + .flags = O_RDONLY | O_NOATIME | O_LARGEFILE, + .file = NULL, + .label = &&out, + .label_file = &&out_src + }, + { + .bindex = bdst, + .flags = O_WRONLY | O_NOATIME | O_LARGEFILE, + .file = NULL, + .label = &&out_src, + .label_file = &&out_dst + } + }; + struct super_block *sb; + + /* bsrc branch can be ro/rw. */ + sb = dentry->d_sb; + f = file; + for (i = 0; i < 2; i++, f++) { + f->dentry = au_h_dptr(dentry, f->bindex); + f->file = au_h_open(dentry, f->bindex, f->flags, /*file*/NULL); + err = PTR_ERR(f->file); + if (IS_ERR(f->file)) + goto *f->label; + err = -EINVAL; + if (unlikely(!f->file->f_op)) + goto *f->label_file; + } + + /* try stopping to update while we copyup */ + IMustLock(file[SRC].dentry->d_inode); + err = au_copy_file(file[DST].file, file[SRC].file, len); + + out_dst: + fput(file[DST].file); + au_sbr_put(sb, file[DST].bindex); + out_src: + fput(file[SRC].file); + au_sbr_put(sb, file[SRC].bindex); + out: + return err; +} + +static int au_do_cpup_regular(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len, + struct inode *h_dir, struct path *h_path) +{ + int err, rerr; + loff_t l; + + err = 0; + l = i_size_read(au_h_iptr(dentry->d_inode, bsrc)); + if (len == -1 || l < len) + len = l; + if (len) + err = au_cp_regular(dentry, bdst, bsrc, len); + if (!err) + goto out; /* success */ + + rerr = vfsub_unlink(h_dir, h_path, /*force*/0); + if (rerr) { + AuIOErr("failed unlinking cpup-ed %.*s(%d, %d)\n", + AuDLNPair(h_path->dentry), err, rerr); + err = -EIO; + } + + out: + return err; +} + +static int au_do_cpup_symlink(struct path *h_path, struct dentry *h_src, + struct inode *h_dir) +{ + int err, symlen; + mm_segment_t old_fs; + union { + char *k; + char __user *u; + } sym; + + err = -ENOSYS; + if (unlikely(!h_src->d_inode->i_op->readlink)) + goto out; + + err = -ENOMEM; + sym.k = __getname_gfp(GFP_NOFS); + if (unlikely(!sym.k)) + goto out; + + old_fs = get_fs(); + set_fs(KERNEL_DS); + symlen = h_src->d_inode->i_op->readlink(h_src, sym.u, PATH_MAX); + err = symlen; + set_fs(old_fs); + + if (symlen > 0) { + sym.k[symlen] = 0; + err = vfsub_symlink(h_dir, h_path, sym.k); + } + __putname(sym.k); + + out: + return err; +} + +/* return with the lower dst inode is locked */ +static noinline_for_stack +int cpup_entry(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len, unsigned int flags, + struct dentry *dst_parent) +{ + int err; + umode_t mode; + unsigned int mnt_flags; + unsigned char isdir; + const unsigned char do_dt = !!au_ftest_cpup(flags, DTIME); + struct au_dtime dt; + struct path h_path; + struct dentry *h_src, *h_dst, *h_parent; + struct inode *h_inode, *h_dir; + struct super_block *sb; + + /* bsrc branch can be ro/rw. */ + h_src = au_h_dptr(dentry, bsrc); + h_inode = h_src->d_inode; + AuDebugOn(h_inode != au_h_iptr(dentry->d_inode, bsrc)); + + /* try stopping to be referenced while we are creating */ + h_dst = au_h_dptr(dentry, bdst); + h_parent = h_dst->d_parent; /* dir inode is locked */ + h_dir = h_parent->d_inode; + IMustLock(h_dir); + AuDebugOn(h_parent != h_dst->d_parent); + + sb = dentry->d_sb; + h_path.mnt = au_sbr_mnt(sb, bdst); + if (do_dt) { + h_path.dentry = h_parent; + au_dtime_store(&dt, dst_parent, &h_path); + } + h_path.dentry = h_dst; + + isdir = 0; + mode = h_inode->i_mode; + switch (mode & S_IFMT) { + case S_IFREG: + /* try stopping to update while we are referencing */ + IMustLock(h_inode); + err = vfsub_create(h_dir, &h_path, mode | S_IWUSR); + if (!err) + err = au_do_cpup_regular + (dentry, bdst, bsrc, len, + au_h_iptr(dst_parent->d_inode, bdst), &h_path); + break; + case S_IFDIR: + isdir = 1; + err = vfsub_mkdir(h_dir, &h_path, mode); + if (!err) { + /* + * strange behaviour from the users view, + * particularry setattr case + */ + if (au_ibstart(dst_parent->d_inode) == bdst) + au_cpup_attr_nlink(dst_parent->d_inode, + /*force*/1); + au_cpup_attr_nlink(dentry->d_inode, /*force*/1); + } + break; + case S_IFLNK: + err = au_do_cpup_symlink(&h_path, h_src, h_dir); + break; + case S_IFCHR: + case S_IFBLK: + AuDebugOn(!capable(CAP_MKNOD)); + /*FALLTHROUGH*/ + case S_IFIFO: + case S_IFSOCK: + err = vfsub_mknod(h_dir, &h_path, mode, h_inode->i_rdev); + break; + default: + AuIOErr("Unknown inode type 0%o\n", mode); + err = -EIO; + } + + mnt_flags = au_mntflags(sb); + if (!au_opt_test(mnt_flags, UDBA_NONE) + && !isdir + && au_opt_test(mnt_flags, XINO) + && h_inode->i_nlink == 1 + /* todo: unnecessary? */ + /* && dentry->d_inode->i_nlink == 1 */ + && bdst < bsrc + && !au_ftest_cpup(flags, KEEPLINO)) + au_xino_write(sb, bsrc, h_inode->i_ino, /*ino*/0); + /* ignore this error */ + + if (do_dt) + au_dtime_revert(&dt); + return err; +} + +/* + * copyup the @dentry from @bsrc to @bdst. + * the caller must set the both of lower dentries. + * @len is for truncating when it is -1 copyup the entire file. + * in link/rename cases, @dst_parent may be different from the real one. + */ +static int au_cpup_single(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len, unsigned int flags, + struct dentry *dst_parent) +{ + int err, rerr; + aufs_bindex_t old_ibstart; + unsigned char isdir, plink; + struct au_dtime dt; + struct path h_path; + struct dentry *h_src, *h_dst, *h_parent; + struct inode *dst_inode, *h_dir, *inode; + struct super_block *sb; + + AuDebugOn(bsrc <= bdst); + + sb = dentry->d_sb; + h_path.mnt = au_sbr_mnt(sb, bdst); + h_dst = au_h_dptr(dentry, bdst); + h_parent = h_dst->d_parent; /* dir inode is locked */ + h_dir = h_parent->d_inode; + IMustLock(h_dir); + + h_src = au_h_dptr(dentry, bsrc); + inode = dentry->d_inode; + + if (!dst_parent) + dst_parent = dget_parent(dentry); + else + dget(dst_parent); + + plink = !!au_opt_test(au_mntflags(sb), PLINK); + dst_inode = au_h_iptr(inode, bdst); + if (dst_inode) { + if (unlikely(!plink)) { + err = -EIO; + AuIOErr("i%lu exists on a upper branch " + "but plink is disabled\n", inode->i_ino); + goto out; + } + + if (dst_inode->i_nlink) { + const int do_dt = au_ftest_cpup(flags, DTIME); + + h_src = au_plink_lkup(inode, bdst); + err = PTR_ERR(h_src); + if (IS_ERR(h_src)) + goto out; + if (unlikely(!h_src->d_inode)) { + err = -EIO; + AuIOErr("i%lu exists on a upper branch " + "but plink is broken\n", inode->i_ino); + dput(h_src); + goto out; + } + + if (do_dt) { + h_path.dentry = h_parent; + au_dtime_store(&dt, dst_parent, &h_path); + } + h_path.dentry = h_dst; + err = vfsub_link(h_src, h_dir, &h_path); + if (do_dt) + au_dtime_revert(&dt); + dput(h_src); + goto out; + } else + /* todo: cpup_wh_file? */ + /* udba work */ + au_update_ibrange(inode, /*do_put_zero*/1); + } + + old_ibstart = au_ibstart(inode); + err = cpup_entry(dentry, bdst, bsrc, len, flags, dst_parent); + if (unlikely(err)) + goto out; + dst_inode = h_dst->d_inode; + mutex_lock_nested(&dst_inode->i_mutex, AuLsc_I_CHILD2); + + err = cpup_iattr(dentry, bdst, h_src); + isdir = S_ISDIR(dst_inode->i_mode); + if (!err) { + if (bdst < old_ibstart) { + if (S_ISREG(inode->i_mode)) { + err = au_dy_iaop(inode, bdst, dst_inode); + if (unlikely(err)) + goto out_rev; + } + au_set_ibstart(inode, bdst); + } + au_set_h_iptr(inode, bdst, au_igrab(dst_inode), + au_hi_flags(inode, isdir)); + mutex_unlock(&dst_inode->i_mutex); + if (!isdir + && h_src->d_inode->i_nlink > 1 + && plink) + au_plink_append(inode, bdst, h_dst); + goto out; /* success */ + } + + /* revert */ +out_rev: + h_path.dentry = h_parent; + mutex_unlock(&dst_inode->i_mutex); + au_dtime_store(&dt, dst_parent, &h_path); + h_path.dentry = h_dst; + if (!isdir) + rerr = vfsub_unlink(h_dir, &h_path, /*force*/0); + else + rerr = vfsub_rmdir(h_dir, &h_path); + au_dtime_revert(&dt); + if (rerr) { + AuIOErr("failed removing broken entry(%d, %d)\n", err, rerr); + err = -EIO; + } + + out: + dput(dst_parent); + return err; +} + +struct au_cpup_single_args { + int *errp; + struct dentry *dentry; + aufs_bindex_t bdst, bsrc; + loff_t len; + unsigned int flags; + struct dentry *dst_parent; +}; + +static void au_call_cpup_single(void *args) +{ + struct au_cpup_single_args *a = args; + *a->errp = au_cpup_single(a->dentry, a->bdst, a->bsrc, a->len, + a->flags, a->dst_parent); +} + +int au_sio_cpup_single(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len, unsigned int flags, + struct dentry *dst_parent) +{ + int err, wkq_err; + umode_t mode; + struct dentry *h_dentry; + + h_dentry = au_h_dptr(dentry, bsrc); + mode = h_dentry->d_inode->i_mode & S_IFMT; + if ((mode != S_IFCHR && mode != S_IFBLK) + || capable(CAP_MKNOD)) + err = au_cpup_single(dentry, bdst, bsrc, len, flags, + dst_parent); + else { + struct au_cpup_single_args args = { + .errp = &err, + .dentry = dentry, + .bdst = bdst, + .bsrc = bsrc, + .len = len, + .flags = flags, + .dst_parent = dst_parent + }; + wkq_err = au_wkq_wait(au_call_cpup_single, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + return err; +} + +/* + * copyup the @dentry from the first active lower branch to @bdst, + * using au_cpup_single(). + */ +static int au_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + unsigned int flags) +{ + int err; + aufs_bindex_t bsrc, bend; + + bend = au_dbend(dentry); + for (bsrc = bdst + 1; bsrc <= bend; bsrc++) + if (au_h_dptr(dentry, bsrc)) + break; + + err = au_lkup_neg(dentry, bdst); + if (!err) { + err = au_cpup_single(dentry, bdst, bsrc, len, flags, NULL); + if (!err) + return 0; /* success */ + + /* revert */ + au_set_h_dptr(dentry, bdst, NULL); + au_set_dbstart(dentry, bsrc); + } + + return err; +} + +struct au_cpup_simple_args { + int *errp; + struct dentry *dentry; + aufs_bindex_t bdst; + loff_t len; + unsigned int flags; +}; + +static void au_call_cpup_simple(void *args) +{ + struct au_cpup_simple_args *a = args; + *a->errp = au_cpup_simple(a->dentry, a->bdst, a->len, a->flags); +} + +int au_sio_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + unsigned int flags) +{ + int err, wkq_err; + unsigned char do_sio; + struct dentry *parent; + struct inode *h_dir; + + parent = dget_parent(dentry); + h_dir = au_h_iptr(parent->d_inode, bdst); + do_sio = !!au_test_h_perm_sio(h_dir, MAY_EXEC | MAY_WRITE); + if (!do_sio) { + /* + * testing CAP_MKNOD is for generic fs, + * but CAP_FSETID is for xfs only, currently. + */ + umode_t mode = dentry->d_inode->i_mode; + do_sio = (((mode & (S_IFCHR | S_IFBLK)) + && !capable(CAP_MKNOD)) + || ((mode & (S_ISUID | S_ISGID)) + && !capable(CAP_FSETID))); + } + if (!do_sio) + err = au_cpup_simple(dentry, bdst, len, flags); + else { + struct au_cpup_simple_args args = { + .errp = &err, + .dentry = dentry, + .bdst = bdst, + .len = len, + .flags = flags + }; + wkq_err = au_wkq_wait(au_call_cpup_simple, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + dput(parent); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * copyup the deleted file for writing. + */ +static int au_do_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, + struct dentry *wh_dentry, struct file *file, + loff_t len) +{ + int err; + aufs_bindex_t bstart; + struct au_dinfo *dinfo; + struct dentry *h_d_dst, *h_d_start; + struct au_hdentry *hdp; + + dinfo = au_di(dentry); + AuRwMustWriteLock(&dinfo->di_rwsem); + + bstart = dinfo->di_bstart; + hdp = dinfo->di_hdentry; + h_d_dst = hdp[0 + bdst].hd_dentry; + dinfo->di_bstart = bdst; + hdp[0 + bdst].hd_dentry = wh_dentry; + h_d_start = hdp[0 + bstart].hd_dentry; + if (file) + hdp[0 + bstart].hd_dentry = au_hf_top(file)->f_dentry; + err = au_cpup_single(dentry, bdst, bstart, len, !AuCpup_DTIME, + /*h_parent*/NULL); + if (!err && file) { + err = au_reopen_nondir(file); + hdp[0 + bstart].hd_dentry = h_d_start; + } + hdp[0 + bdst].hd_dentry = h_d_dst; + dinfo->di_bstart = bstart; + + return err; +} + +static int au_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + struct file *file) +{ + int err; + struct au_dtime dt; + struct dentry *parent, *h_parent, *wh_dentry; + struct au_branch *br; + struct path h_path; + + br = au_sbr(dentry->d_sb, bdst); + parent = dget_parent(dentry); + h_parent = au_h_dptr(parent, bdst); + wh_dentry = au_whtmp_lkup(h_parent, br, &dentry->d_name); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out; + + h_path.dentry = h_parent; + h_path.mnt = br->br_mnt; + au_dtime_store(&dt, parent, &h_path); + err = au_do_cpup_wh(dentry, bdst, wh_dentry, file, len); + if (unlikely(err)) + goto out_wh; + + dget(wh_dentry); + h_path.dentry = wh_dentry; + if (!S_ISDIR(wh_dentry->d_inode->i_mode)) + err = vfsub_unlink(h_parent->d_inode, &h_path, /*force*/0); + else + err = vfsub_rmdir(h_parent->d_inode, &h_path); + if (unlikely(err)) { + AuIOErr("failed remove copied-up tmp file %.*s(%d)\n", + AuDLNPair(wh_dentry), err); + err = -EIO; + } + au_dtime_revert(&dt); + au_set_hi_wh(dentry->d_inode, bdst, wh_dentry); + + out_wh: + dput(wh_dentry); + out: + dput(parent); + return err; +} + +struct au_cpup_wh_args { + int *errp; + struct dentry *dentry; + aufs_bindex_t bdst; + loff_t len; + struct file *file; +}; + +static void au_call_cpup_wh(void *args) +{ + struct au_cpup_wh_args *a = args; + *a->errp = au_cpup_wh(a->dentry, a->bdst, a->len, a->file); +} + +int au_sio_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + struct file *file) +{ + int err, wkq_err; + struct dentry *parent, *h_orph, *h_parent, *h_dentry; + struct inode *dir, *h_dir, *h_tmpdir, *h_inode; + struct au_wbr *wbr; + + parent = dget_parent(dentry); + dir = parent->d_inode; + h_orph = NULL; + h_parent = NULL; + h_dir = au_igrab(au_h_iptr(dir, bdst)); + h_tmpdir = h_dir; + if (!h_dir->i_nlink) { + wbr = au_sbr(dentry->d_sb, bdst)->br_wbr; + h_orph = wbr->wbr_orph; + + h_parent = dget(au_h_dptr(parent, bdst)); + au_set_h_dptr(parent, bdst, dget(h_orph)); + h_tmpdir = h_orph->d_inode; + au_set_h_iptr(dir, bdst, au_igrab(h_tmpdir), /*flags*/0); + + /* this temporary unlock is safe */ + if (file) + h_dentry = au_hf_top(file)->f_dentry; + else + h_dentry = au_h_dptr(dentry, au_dbstart(dentry)); + h_inode = h_dentry->d_inode; + IMustLock(h_inode); + mutex_unlock(&h_inode->i_mutex); + mutex_lock_nested(&h_tmpdir->i_mutex, AuLsc_I_PARENT3); + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + /* todo: au_h_open_pre()? */ + } + + if (!au_test_h_perm_sio(h_tmpdir, MAY_EXEC | MAY_WRITE)) + err = au_cpup_wh(dentry, bdst, len, file); + else { + struct au_cpup_wh_args args = { + .errp = &err, + .dentry = dentry, + .bdst = bdst, + .len = len, + .file = file + }; + wkq_err = au_wkq_wait(au_call_cpup_wh, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + if (h_orph) { + mutex_unlock(&h_tmpdir->i_mutex); + /* todo: au_h_open_post()? */ + au_set_h_iptr(dir, bdst, au_igrab(h_dir), /*flags*/0); + au_set_h_dptr(parent, bdst, h_parent); + } + iput(h_dir); + dput(parent); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * generic routine for both of copy-up and copy-down. + */ +/* cf. revalidate function in file.c */ +int au_cp_dirs(struct dentry *dentry, aufs_bindex_t bdst, + int (*cp)(struct dentry *dentry, aufs_bindex_t bdst, + struct dentry *h_parent, void *arg), + void *arg) +{ + int err; + struct au_pin pin; + struct dentry *d, *parent, *h_parent, *real_parent; + + err = 0; + parent = dget_parent(dentry); + if (IS_ROOT(parent)) + goto out; + + au_pin_init(&pin, dentry, bdst, AuLsc_DI_PARENT2, AuLsc_I_PARENT2, + au_opt_udba(dentry->d_sb), AuPin_MNT_WRITE); + + /* do not use au_dpage */ + real_parent = parent; + while (1) { + dput(parent); + parent = dget_parent(dentry); + h_parent = au_h_dptr(parent, bdst); + if (h_parent) + goto out; /* success */ + + /* find top dir which is necessary to cpup */ + do { + d = parent; + dput(parent); + parent = dget_parent(d); + di_read_lock_parent3(parent, !AuLock_IR); + h_parent = au_h_dptr(parent, bdst); + di_read_unlock(parent, !AuLock_IR); + } while (!h_parent); + + if (d != real_parent) + di_write_lock_child3(d); + + /* somebody else might create while we were sleeping */ + if (!au_h_dptr(d, bdst) || !au_h_dptr(d, bdst)->d_inode) { + if (au_h_dptr(d, bdst)) + au_update_dbstart(d); + + au_pin_set_dentry(&pin, d); + err = au_do_pin(&pin); + if (!err) { + err = cp(d, bdst, h_parent, arg); + au_unpin(&pin); + } + } + + if (d != real_parent) + di_write_unlock(d); + if (unlikely(err)) + break; + } + + out: + dput(parent); + return err; +} + +static int au_cpup_dir(struct dentry *dentry, aufs_bindex_t bdst, + struct dentry *h_parent __maybe_unused , + void *arg __maybe_unused) +{ + return au_sio_cpup_simple(dentry, bdst, -1, AuCpup_DTIME); +} + +int au_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst) +{ + return au_cp_dirs(dentry, bdst, au_cpup_dir, NULL); +} + +int au_test_and_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst) +{ + int err; + struct dentry *parent; + struct inode *dir; + + parent = dget_parent(dentry); + dir = parent->d_inode; + err = 0; + if (au_h_iptr(dir, bdst)) + goto out; + + di_read_unlock(parent, AuLock_IR); + di_write_lock_parent(parent); + /* someone else might change our inode while we were sleeping */ + if (!au_h_iptr(dir, bdst)) + err = au_cpup_dirs(dentry, bdst); + di_downgrade_lock(parent, AuLock_IR); + + out: + dput(parent); + return err; +} --- linux-2.6.35.orig/ubuntu/aufs/dbgaufs.h +++ linux-2.6.35/ubuntu/aufs/dbgaufs.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * debugfs interface + */ + +#ifndef __DBGAUFS_H__ +#define __DBGAUFS_H__ + +#ifdef __KERNEL__ + +#include +#include + +struct super_block; +struct au_sbinfo; + +#ifdef CONFIG_DEBUG_FS +/* dbgaufs.c */ +void dbgaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex); +void dbgaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex); +void dbgaufs_si_fin(struct au_sbinfo *sbinfo); +int dbgaufs_si_init(struct au_sbinfo *sbinfo); +void dbgaufs_fin(void); +int __init dbgaufs_init(void); +#else +AuStubVoid(dbgaufs_brs_del, struct super_block *sb, aufs_bindex_t bindex) +AuStubVoid(dbgaufs_brs_add, struct super_block *sb, aufs_bindex_t bindex) +AuStubVoid(dbgaufs_si_fin, struct au_sbinfo *sbinfo) +AuStubInt0(dbgaufs_si_init, struct au_sbinfo *sbinfo) +AuStubVoid(dbgaufs_fin, void) +AuStubInt0(__init dbgaufs_init, void) +#endif /* CONFIG_DEBUG_FS */ + +#endif /* __KERNEL__ */ +#endif /* __DBGAUFS_H__ */ --- linux-2.6.35.orig/ubuntu/aufs/module.c +++ linux-2.6.35/ubuntu/aufs/module.c @@ -0,0 +1,171 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * module global variables and operations + */ + +#include +#include +#include "aufs.h" + +void *au_kzrealloc(void *p, unsigned int nused, unsigned int new_sz, gfp_t gfp) +{ + if (new_sz <= nused) + return p; + + p = krealloc(p, new_sz, gfp); + if (p) + memset(p + nused, 0, new_sz - nused); + return p; +} + +/* ---------------------------------------------------------------------- */ + +/* + * aufs caches + */ +struct kmem_cache *au_cachep[AuCache_Last]; +static int __init au_cache_init(void) +{ + au_cachep[AuCache_DINFO] = AuCacheCtor(au_dinfo, au_di_init_once); + if (au_cachep[AuCache_DINFO]) + au_cachep[AuCache_ICNTNR] = AuCacheCtor(au_icntnr, + au_icntnr_init_once); + if (au_cachep[AuCache_ICNTNR]) + au_cachep[AuCache_FINFO] = AuCacheCtor(au_finfo, + au_fi_init_once); + if (au_cachep[AuCache_FINFO]) + au_cachep[AuCache_VDIR] = AuCache(au_vdir); + if (au_cachep[AuCache_VDIR]) + au_cachep[AuCache_DEHSTR] = AuCache(au_vdir_dehstr); + if (au_cachep[AuCache_DEHSTR]) + return 0; + + return -ENOMEM; +} + +static void au_cache_fin(void) +{ + int i; + + /* including AuCache_HNOTIFY */ + for (i = 0; i < AuCache_Last; i++) + if (au_cachep[i]) { + kmem_cache_destroy(au_cachep[i]); + au_cachep[i] = NULL; + } +} + +/* ---------------------------------------------------------------------- */ + +int au_dir_roflags; + +/* + * functions for module interface. + */ +MODULE_LICENSE("GPL"); +/* MODULE_LICENSE("GPL v2"); */ +MODULE_AUTHOR("Junjiro R. Okajima "); +MODULE_DESCRIPTION(AUFS_NAME + " -- Advanced multi layered unification filesystem"); +MODULE_VERSION(AUFS_VERSION); + +/* this module parameter has no meaning when SYSFS is disabled */ +int sysaufs_brs = 1; +MODULE_PARM_DESC(brs, "use /fs/aufs/si_*/brN"); +module_param_named(brs, sysaufs_brs, int, S_IRUGO); + +/* ---------------------------------------------------------------------- */ + +static char au_esc_chars[0x20 + 3]; /* 0x01-0x20, backslash, del, and NULL */ + +int au_seq_path(struct seq_file *seq, struct path *path) +{ + return seq_path(seq, path, au_esc_chars); +} + +/* ---------------------------------------------------------------------- */ + +static int __init aufs_init(void) +{ + int err, i; + char *p; + + p = au_esc_chars; + for (i = 1; i <= ' '; i++) + *p++ = i; + *p++ = '\\'; + *p++ = '\x7f'; + *p = 0; + + au_dir_roflags = au_file_roflags(O_DIRECTORY | O_LARGEFILE); + + sysaufs_brs_init(); + au_debug_init(); + au_dy_init(); + err = sysaufs_init(); + if (unlikely(err)) + goto out; + err = au_wkq_init(); + if (unlikely(err)) + goto out_sysaufs; + err = au_hnotify_init(); + if (unlikely(err)) + goto out_wkq; + err = au_sysrq_init(); + if (unlikely(err)) + goto out_hin; + err = au_cache_init(); + if (unlikely(err)) + goto out_sysrq; + err = register_filesystem(&aufs_fs_type); + if (unlikely(err)) + goto out_cache; + /* since we define pr_fmt, call printk directly */ + printk(KERN_INFO AUFS_NAME " " AUFS_VERSION "\n"); + goto out; /* success */ + + out_cache: + au_cache_fin(); + out_sysrq: + au_sysrq_fin(); + out_hin: + au_hnotify_fin(); + out_wkq: + au_wkq_fin(); + out_sysaufs: + sysaufs_fin(); + au_dy_fin(); + out: + return err; +} + +static void __exit aufs_exit(void) +{ + unregister_filesystem(&aufs_fs_type); + au_cache_fin(); + au_sysrq_fin(); + au_hnotify_fin(); + au_wkq_fin(); + sysaufs_fin(); + au_dy_fin(); +} + +module_init(aufs_init); +module_exit(aufs_exit); --- linux-2.6.35.orig/ubuntu/aufs/Makefile +++ linux-2.6.35/ubuntu/aufs/Makefile @@ -0,0 +1,39 @@ +EXTRA_CFLAGS += -I$(src)/include + +include ${src}/magic.mk +ifeq (${CONFIG_AUFS_FS},m) +include ${src}/conf.mk +endif +-include ${src}/priv_def.mk + +# cf. include/linux/kernel.h +# enable pr_debug +ccflags-y += -DDEBUG +ccflags-y += -D'pr_fmt(fmt)="aufs %s:%d:%s[%d]: " fmt, \ + __func__, __LINE__, current->comm, current->pid' + +obj-$(CONFIG_AUFS_FS) += aufs.o +aufs-y := module.o sbinfo.o super.o branch.o xino.o sysaufs.o opts.o \ + wkq.o vfsub.o dcsub.o \ + cpup.o whout.o plink.o wbr_policy.o \ + dinfo.o dentry.o \ + dynop.o \ + finfo.o file.o f_op.o \ + dir.o vdir.o \ + iinfo.o inode.o i_op.o i_op_add.o i_op_del.o i_op_ren.o \ + ioctl.o + +# all are boolean +aufs-$(CONFIG_SYSFS) += sysfs.o +aufs-$(CONFIG_DEBUG_FS) += dbgaufs.o +aufs-$(CONFIG_AUFS_BDEV_LOOP) += loop.o +aufs-$(CONFIG_AUFS_HNOTIFY) += hnotify.o +aufs-$(CONFIG_AUFS_HFSNOTIFY) += hfsnotify.o +aufs-$(CONFIG_AUFS_HINOTIFY) += hinotify.o +aufs-$(CONFIG_AUFS_EXPORT) += export.o +aufs-$(CONFIG_AUFS_POLL) += poll.o +aufs-$(CONFIG_AUFS_RDU) += rdu.o +aufs-$(CONFIG_AUFS_SP_IATTR) += f_op_sp.o +aufs-$(CONFIG_AUFS_BR_HFSPLUS) += hfsplus.o +aufs-$(CONFIG_AUFS_DEBUG) += debug.o +aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o --- linux-2.6.35.orig/ubuntu/aufs/poll.c +++ linux-2.6.35/ubuntu/aufs/poll.c @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * poll operation + * There is only one filesystem which implements ->poll operation, currently. + */ + +#include "aufs.h" + +unsigned int aufs_poll(struct file *file, poll_table *wait) +{ + unsigned int mask; + int err; + struct file *h_file; + struct dentry *dentry; + struct super_block *sb; + + /* We should pretend an error happened. */ + mask = POLLERR /* | POLLIN | POLLOUT */; + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0); + if (unlikely(err)) + goto out; + + /* it is not an error if h_file has no operation */ + mask = DEFAULT_POLLMASK; + h_file = au_hf_top(file); + if (h_file->f_op && h_file->f_op->poll) + mask = h_file->f_op->poll(h_file, wait); + + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + + out: + si_read_unlock(sb); + AuTraceErr((int)mask); + return mask; +} --- linux-2.6.35.orig/ubuntu/aufs/debug.c +++ linux-2.6.35/ubuntu/aufs/debug.c @@ -0,0 +1,426 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * debug print functions + */ + +#include +#include +#include "aufs.h" + +int aufs_debug; +MODULE_PARM_DESC(debug, "debug print"); +module_param_named(debug, aufs_debug, int, S_IRUGO | S_IWUSR | S_IWGRP); + +char *au_plevel = KERN_DEBUG; +#define dpri(fmt, ...) do { \ + if (au_debug_test()) \ + printk("%s" fmt, au_plevel, ##__VA_ARGS__); \ +} while (0) + +/* ---------------------------------------------------------------------- */ + +void au_dpri_whlist(struct au_nhash *whlist) +{ + unsigned long ul, n; + struct hlist_head *head; + struct au_vdir_wh *tpos; + struct hlist_node *pos; + + n = whlist->nh_num; + head = whlist->nh_head; + for (ul = 0; ul < n; ul++) { + hlist_for_each_entry(tpos, pos, head, wh_hash) + dpri("b%d, %.*s, %d\n", + tpos->wh_bindex, + tpos->wh_str.len, tpos->wh_str.name, + tpos->wh_str.len); + head++; + } +} + +void au_dpri_vdir(struct au_vdir *vdir) +{ + unsigned long ul; + union au_vdir_deblk_p p; + unsigned char *o; + + if (!vdir || IS_ERR(vdir)) { + dpri("err %ld\n", PTR_ERR(vdir)); + return; + } + + dpri("deblk %u, nblk %lu, deblk %p, last{%lu, %p}, ver %lu\n", + vdir->vd_deblk_sz, vdir->vd_nblk, vdir->vd_deblk, + vdir->vd_last.ul, vdir->vd_last.p.deblk, vdir->vd_version); + for (ul = 0; ul < vdir->vd_nblk; ul++) { + p.deblk = vdir->vd_deblk[ul]; + o = p.deblk; + dpri("[%lu]: %p\n", ul, o); + } +} + +static int do_pri_inode(aufs_bindex_t bindex, struct inode *inode, + struct dentry *wh) +{ + char *n = NULL; + int l = 0; + + if (!inode || IS_ERR(inode)) { + dpri("i%d: err %ld\n", bindex, PTR_ERR(inode)); + return -1; + } + + /* the type of i_blocks depends upon CONFIG_LSF */ + BUILD_BUG_ON(sizeof(inode->i_blocks) != sizeof(unsigned long) + && sizeof(inode->i_blocks) != sizeof(u64)); + if (wh) { + n = (void *)wh->d_name.name; + l = wh->d_name.len; + } + + dpri("i%d: i%lu, %s, cnt %d, nl %u, 0%o, sz %llu, blk %llu," + " ct %lld, np %lu, st 0x%lx, f 0x%x, v %llu, g %x%s%.*s\n", + bindex, + inode->i_ino, inode->i_sb ? au_sbtype(inode->i_sb) : "??", + atomic_read(&inode->i_count), inode->i_nlink, inode->i_mode, + i_size_read(inode), (unsigned long long)inode->i_blocks, + (long long)timespec_to_ns(&inode->i_ctime) & 0x0ffff, + inode->i_mapping ? inode->i_mapping->nrpages : 0, + inode->i_state, inode->i_flags, inode->i_version, + inode->i_generation, + l ? ", wh " : "", l, n); + return 0; +} + +void au_dpri_inode(struct inode *inode) +{ + struct au_iinfo *iinfo; + aufs_bindex_t bindex; + int err; + + err = do_pri_inode(-1, inode, NULL); + if (err || !au_test_aufs(inode->i_sb)) + return; + + iinfo = au_ii(inode); + if (!iinfo) + return; + dpri("i-1: bstart %d, bend %d, gen %d\n", + iinfo->ii_bstart, iinfo->ii_bend, au_iigen(inode)); + if (iinfo->ii_bstart < 0) + return; + for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend; bindex++) + do_pri_inode(bindex, iinfo->ii_hinode[0 + bindex].hi_inode, + iinfo->ii_hinode[0 + bindex].hi_whdentry); +} + +static int do_pri_dentry(aufs_bindex_t bindex, struct dentry *dentry) +{ + struct dentry *wh = NULL; + + if (!dentry || IS_ERR(dentry)) { + dpri("d%d: err %ld\n", bindex, PTR_ERR(dentry)); + return -1; + } + /* do not call dget_parent() here */ + dpri("d%d: %.*s?/%.*s, %s, cnt %d, flags 0x%x\n", + bindex, + AuDLNPair(dentry->d_parent), AuDLNPair(dentry), + dentry->d_sb ? au_sbtype(dentry->d_sb) : "??", + atomic_read(&dentry->d_count), dentry->d_flags); + if (bindex >= 0 && dentry->d_inode && au_test_aufs(dentry->d_sb)) { + struct au_iinfo *iinfo = au_ii(dentry->d_inode); + if (iinfo) + wh = iinfo->ii_hinode[0 + bindex].hi_whdentry; + } + do_pri_inode(bindex, dentry->d_inode, wh); + return 0; +} + +void au_dpri_dentry(struct dentry *dentry) +{ + struct au_dinfo *dinfo; + aufs_bindex_t bindex; + int err; + struct au_hdentry *hdp; + + err = do_pri_dentry(-1, dentry); + if (err || !au_test_aufs(dentry->d_sb)) + return; + + dinfo = au_di(dentry); + if (!dinfo) + return; + dpri("d-1: bstart %d, bend %d, bwh %d, bdiropq %d, gen %d\n", + dinfo->di_bstart, dinfo->di_bend, + dinfo->di_bwh, dinfo->di_bdiropq, au_digen(dentry)); + if (dinfo->di_bstart < 0) + return; + hdp = dinfo->di_hdentry; + for (bindex = dinfo->di_bstart; bindex <= dinfo->di_bend; bindex++) + do_pri_dentry(bindex, hdp[0 + bindex].hd_dentry); +} + +static int do_pri_file(aufs_bindex_t bindex, struct file *file) +{ + char a[32]; + + if (!file || IS_ERR(file)) { + dpri("f%d: err %ld\n", bindex, PTR_ERR(file)); + return -1; + } + a[0] = 0; + if (bindex < 0 + && file->f_dentry + && au_test_aufs(file->f_dentry->d_sb) + && au_fi(file)) + snprintf(a, sizeof(a), ", mmapped %d", + !!au_fi(file)->fi_hvmop); + dpri("f%d: mode 0x%x, flags 0%o, cnt %ld, v %llu, pos %llu%s\n", + bindex, file->f_mode, file->f_flags, (long)file_count(file), + file->f_version, file->f_pos, a); + if (file->f_dentry) + do_pri_dentry(bindex, file->f_dentry); + return 0; +} + +void au_dpri_file(struct file *file) +{ + struct au_finfo *finfo; + struct au_fidir *fidir; + struct au_hfile *hfile; + aufs_bindex_t bindex; + int err; + + err = do_pri_file(-1, file); + if (err || !file->f_dentry || !au_test_aufs(file->f_dentry->d_sb)) + return; + + finfo = au_fi(file); + if (!finfo) + return; + if (finfo->fi_btop < 0) + return; + fidir = finfo->fi_hdir; + if (!fidir) + do_pri_file(finfo->fi_btop, finfo->fi_htop.hf_file); + else + for (bindex = finfo->fi_btop; bindex <= fidir->fd_bbot; + bindex++) { + hfile = fidir->fd_hfile + bindex; + do_pri_file(bindex, hfile ? hfile->hf_file : NULL); + } +} + +static int do_pri_br(aufs_bindex_t bindex, struct au_branch *br) +{ + struct vfsmount *mnt; + struct super_block *sb; + + if (!br || IS_ERR(br)) + goto out; + mnt = br->br_mnt; + if (!mnt || IS_ERR(mnt)) + goto out; + sb = mnt->mnt_sb; + if (!sb || IS_ERR(sb)) + goto out; + + dpri("s%d: {perm 0x%x, cnt %d, wbr %p}, " + "%s, dev 0x%02x%02x, flags 0x%lx, cnt %d, active %d, " + "xino %d\n", + bindex, br->br_perm, atomic_read(&br->br_count), br->br_wbr, + au_sbtype(sb), MAJOR(sb->s_dev), MINOR(sb->s_dev), + sb->s_flags, sb->s_count, + atomic_read(&sb->s_active), !!br->br_xino.xi_file); + return 0; + + out: + dpri("s%d: err %ld\n", bindex, PTR_ERR(br)); + return -1; +} + +void au_dpri_sb(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + aufs_bindex_t bindex; + int err; + /* to reuduce stack size */ + struct { + struct vfsmount mnt; + struct au_branch fake; + } *a; + + /* this function can be called from magic sysrq */ + a = kzalloc(sizeof(*a), GFP_ATOMIC); + if (unlikely(!a)) { + dpri("no memory\n"); + return; + } + + a->mnt.mnt_sb = sb; + a->fake.br_perm = 0; + a->fake.br_mnt = &a->mnt; + a->fake.br_xino.xi_file = NULL; + atomic_set(&a->fake.br_count, 0); + smp_mb(); /* atomic_set */ + err = do_pri_br(-1, &a->fake); + kfree(a); + dpri("dev 0x%x\n", sb->s_dev); + if (err || !au_test_aufs(sb)) + return; + + sbinfo = au_sbi(sb); + if (!sbinfo) + return; + dpri("nw %d, gen %u, kobj %d\n", + atomic_read(&sbinfo->si_nowait.nw_len), sbinfo->si_generation, + atomic_read(&sbinfo->si_kobj.kref.refcount)); + for (bindex = 0; bindex <= sbinfo->si_bend; bindex++) + do_pri_br(bindex, sbinfo->si_branch[0 + bindex]); +} + +/* ---------------------------------------------------------------------- */ + +void au_dbg_sleep_jiffy(int jiffy) +{ + while (jiffy) + jiffy = schedule_timeout_uninterruptible(jiffy); +} + +void au_dbg_iattr(struct iattr *ia) +{ +#define AuBit(name) if (ia->ia_valid & ATTR_ ## name) \ + dpri(#name "\n") + AuBit(MODE); + AuBit(UID); + AuBit(GID); + AuBit(SIZE); + AuBit(ATIME); + AuBit(MTIME); + AuBit(CTIME); + AuBit(ATIME_SET); + AuBit(MTIME_SET); + AuBit(FORCE); + AuBit(ATTR_FLAG); + AuBit(KILL_SUID); + AuBit(KILL_SGID); + AuBit(FILE); + AuBit(KILL_PRIV); + AuBit(OPEN); + AuBit(TIMES_SET); +#undef AuBit + dpri("ia_file %p\n", ia->ia_file); +} + +/* ---------------------------------------------------------------------- */ + +void au_dbg_verify_dir_parent(struct dentry *dentry, unsigned int sigen) +{ + struct dentry *parent; + + parent = dget_parent(dentry); + AuDebugOn(!S_ISDIR(dentry->d_inode->i_mode) + || IS_ROOT(dentry) + || au_digen(parent) != sigen); + dput(parent); +} + +void au_dbg_verify_nondir_parent(struct dentry *dentry, unsigned int sigen) +{ + struct dentry *parent; + + parent = dget_parent(dentry); + AuDebugOn(S_ISDIR(dentry->d_inode->i_mode) + || au_digen(parent) != sigen); + dput(parent); +} + +void au_dbg_verify_gen(struct dentry *parent, unsigned int sigen) +{ + int err, i, j; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry **dentries; + + err = au_dpages_init(&dpages, GFP_NOFS); + AuDebugOn(err); + err = au_dcsub_pages_rev(&dpages, parent, /*do_include*/1, NULL, NULL); + AuDebugOn(err); + for (i = dpages.ndpage - 1; !err && i >= 0; i--) { + dpage = dpages.dpages + i; + dentries = dpage->dentries; + for (j = dpage->ndentry - 1; !err && j >= 0; j--) + AuDebugOn(au_digen(dentries[j]) != sigen); + } + au_dpages_free(&dpages); +} + +void au_dbg_verify_kthread(void) +{ + if (au_test_wkq(current)) { + au_dbg_blocked(); + BUG(); + } +} + +/* ---------------------------------------------------------------------- */ + +void au_debug_sbinfo_init(struct au_sbinfo *sbinfo __maybe_unused) +{ +#ifdef AuForceNoPlink + au_opt_clr(sbinfo->si_mntflags, PLINK); +#endif +#ifdef AuForceNoXino + au_opt_clr(sbinfo->si_mntflags, XINO); +#endif +#ifdef AuForceNoRefrof + au_opt_clr(sbinfo->si_mntflags, REFROF); +#endif +#ifdef AuForceHnotify + au_opt_set_udba(sbinfo->si_mntflags, UDBA_HNOTIFY); +#endif +#ifdef AuForceRd0 + sbinfo->si_rdblk = 0; + sbinfo->si_rdhash = 0; +#endif +} + +int __init au_debug_init(void) +{ + aufs_bindex_t bindex; + struct au_vdir_destr destr; + + bindex = -1; + AuDebugOn(bindex >= 0); + + destr.len = -1; + AuDebugOn(destr.len < NAME_MAX); + +#ifdef CONFIG_4KSTACKS + pr_warning("CONFIG_4KSTACKS is defined.\n"); +#endif + +#ifdef AuForceNoBrs + sysaufs_brs = 0; +#endif + + return 0; +} --- linux-2.6.35.orig/ubuntu/aufs/f_op.c +++ linux-2.6.35/ubuntu/aufs/f_op.c @@ -0,0 +1,886 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * file and vm operations + */ + +#include +#include +#include +#include +#include +#include "aufs.h" + +int au_do_open_nondir(struct file *file, int flags) +{ + int err; + aufs_bindex_t bindex; + struct file *h_file; + struct dentry *dentry; + struct au_finfo *finfo; + + FiMustWriteLock(file); + + err = 0; + dentry = file->f_dentry; + finfo = au_fi(file); + memset(&finfo->fi_htop, 0, sizeof(finfo->fi_htop)); + finfo->fi_hvmop = NULL; + bindex = au_dbstart(dentry); + h_file = au_h_open(dentry, bindex, flags, file); + if (IS_ERR(h_file)) + err = PTR_ERR(h_file); + else { + au_set_fbstart(file, bindex); + au_set_h_fptr(file, bindex, h_file); + au_update_figen(file); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + } + return err; +} + +static int aufs_open_nondir(struct inode *inode __maybe_unused, + struct file *file) +{ + int err; + struct super_block *sb; + + AuDbg("%.*s, f_ flags 0x%x, f_mode 0x%x\n", + AuDLNPair(file->f_dentry), vfsub_file_flags(file), + file->f_mode); + + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + err = au_do_open(file, au_do_open_nondir, /*fidir*/NULL); + si_read_unlock(sb); + return err; +} + +int aufs_release_nondir(struct inode *inode __maybe_unused, struct file *file) +{ + struct au_finfo *finfo; + aufs_bindex_t bindex; + + finfo = au_fi(file); + bindex = finfo->fi_btop; + if (bindex >= 0) + au_set_h_fptr(file, bindex, NULL); + + au_finfo_fin(file); + return 0; +} + +/* ---------------------------------------------------------------------- */ + +static int au_do_flush_nondir(struct file *file, fl_owner_t id) +{ + int err; + struct file *h_file; + + err = 0; + h_file = au_hf_top(file); + if (h_file) + err = vfsub_flush(h_file, id); + return err; +} + +static int aufs_flush_nondir(struct file *file, fl_owner_t id) +{ + return au_do_flush(file, id, au_do_flush_nondir); +} + +/* ---------------------------------------------------------------------- */ + +static ssize_t aufs_read(struct file *file, char __user *buf, size_t count, + loff_t *ppos) +{ + ssize_t err; + struct dentry *dentry; + struct file *h_file; + struct super_block *sb; + + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0); + if (unlikely(err)) + goto out; + + h_file = au_hf_top(file); + err = vfsub_read_u(h_file, buf, count, ppos); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + fsstack_copy_attr_atime(dentry->d_inode, h_file->f_dentry->d_inode); + + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + out: + si_read_unlock(sb); + return err; +} + +static ssize_t aufs_write(struct file *file, const char __user *ubuf, + size_t count, loff_t *ppos) +{ + ssize_t err; + struct au_pin pin; + struct dentry *dentry; + struct inode *inode; + struct super_block *sb; + struct file *h_file; + char __user *buf = (char __user *)ubuf; + + dentry = file->f_dentry; + sb = dentry->d_sb; + inode = dentry->d_inode; + mutex_lock(&inode->i_mutex); + si_read_lock(sb, AuLock_FLUSH); + + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + err = au_ready_to_write(file, -1, &pin); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + + h_file = au_hf_top(file); + au_unpin(&pin); + err = vfsub_write_u(h_file, buf, count, ppos); + au_cpup_attr_timesizes(inode); + inode->i_mode = h_file->f_dentry->d_inode->i_mode; + + out_unlock: + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + out: + si_read_unlock(sb); + mutex_unlock(&inode->i_mutex); + return err; +} + +static ssize_t au_do_aio(struct file *h_file, int rw, struct kiocb *kio, + const struct iovec *iov, unsigned long nv, loff_t pos) +{ + ssize_t err; + struct file *file; + ssize_t (*func)(struct kiocb *, const struct iovec *, unsigned long, + loff_t); + + err = security_file_permission(h_file, rw); + if (unlikely(err)) + goto out; + + err = -ENOSYS; + func = NULL; + if (rw == MAY_READ) + func = h_file->f_op->aio_read; + else if (rw == MAY_WRITE) + func = h_file->f_op->aio_write; + if (func) { + file = kio->ki_filp; + kio->ki_filp = h_file; + err = func(kio, iov, nv, pos); + kio->ki_filp = file; + } else + /* currently there is no such fs */ + WARN_ON_ONCE(1); + + out: + return err; +} + +static ssize_t aufs_aio_read(struct kiocb *kio, const struct iovec *iov, + unsigned long nv, loff_t pos) +{ + ssize_t err; + struct file *file, *h_file; + struct dentry *dentry; + struct super_block *sb; + + file = kio->ki_filp; + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0); + if (unlikely(err)) + goto out; + + h_file = au_hf_top(file); + err = au_do_aio(h_file, MAY_READ, kio, iov, nv, pos); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + fsstack_copy_attr_atime(dentry->d_inode, h_file->f_dentry->d_inode); + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + + out: + si_read_unlock(sb); + return err; +} + +static ssize_t aufs_aio_write(struct kiocb *kio, const struct iovec *iov, + unsigned long nv, loff_t pos) +{ + ssize_t err; + struct au_pin pin; + struct dentry *dentry; + struct inode *inode; + struct super_block *sb; + struct file *file, *h_file; + + file = kio->ki_filp; + dentry = file->f_dentry; + sb = dentry->d_sb; + inode = dentry->d_inode; + mutex_lock(&inode->i_mutex); + si_read_lock(sb, AuLock_FLUSH); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + err = au_ready_to_write(file, -1, &pin); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + + au_unpin(&pin); + h_file = au_hf_top(file); + err = au_do_aio(h_file, MAY_WRITE, kio, iov, nv, pos); + au_cpup_attr_timesizes(inode); + inode->i_mode = h_file->f_dentry->d_inode->i_mode; + + out_unlock: + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + out: + si_read_unlock(sb); + mutex_unlock(&inode->i_mutex); + return err; +} + +static ssize_t aufs_splice_read(struct file *file, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) +{ + ssize_t err; + struct file *h_file; + struct dentry *dentry; + struct super_block *sb; + + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0); + if (unlikely(err)) + goto out; + + err = -EINVAL; + h_file = au_hf_top(file); + if (au_test_loopback_kthread()) { + file->f_mapping = h_file->f_mapping; + smp_mb(); /* unnecessary? */ + } + err = vfsub_splice_to(h_file, ppos, pipe, len, flags); + /* todo: necessasry? */ + /* file->f_ra = h_file->f_ra; */ + fsstack_copy_attr_atime(dentry->d_inode, h_file->f_dentry->d_inode); + + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + + out: + si_read_unlock(sb); + return err; +} + +static ssize_t +aufs_splice_write(struct pipe_inode_info *pipe, struct file *file, loff_t *ppos, + size_t len, unsigned int flags) +{ + ssize_t err; + struct au_pin pin; + struct dentry *dentry; + struct inode *inode; + struct super_block *sb; + struct file *h_file; + + dentry = file->f_dentry; + inode = dentry->d_inode; + mutex_lock(&inode->i_mutex); + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + err = au_ready_to_write(file, -1, &pin); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + + h_file = au_hf_top(file); + au_unpin(&pin); + err = vfsub_splice_from(pipe, h_file, ppos, len, flags); + au_cpup_attr_timesizes(inode); + inode->i_mode = h_file->f_dentry->d_inode->i_mode; + + out_unlock: + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + out: + si_read_unlock(sb); + mutex_unlock(&inode->i_mutex); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static struct file *au_safe_file(struct vm_area_struct *vma) +{ + struct file *file; + + file = vma->vm_file; + if (file->private_data && au_test_aufs(file->f_dentry->d_sb)) + return file; + return NULL; +} + +static void au_reset_file(struct vm_area_struct *vma, struct file *file) +{ + vma->vm_file = file; + /* smp_mb(); */ /* flush vm_file */ +} + +static int aufs_fault(struct vm_area_struct *vma, struct vm_fault *vmf) +{ + int err; + static DECLARE_WAIT_QUEUE_HEAD(wq); + struct file *file, *h_file; + struct au_finfo *finfo; + + /* todo: non-robr mode, user vm_file as it is? */ + wait_event(wq, (file = au_safe_file(vma))); + + /* do not revalidate, no si lock */ + finfo = au_fi(file); + AuDebugOn(finfo->fi_hdir); + h_file = finfo->fi_htop.hf_file; + AuDebugOn(!h_file || !finfo->fi_hvmop); + + mutex_lock(&finfo->fi_vm_mtx); + vma->vm_file = h_file; + err = finfo->fi_hvmop->fault(vma, vmf); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + au_reset_file(vma, file); + mutex_unlock(&finfo->fi_vm_mtx); +#if 0 /* def CONFIG_SMP */ + /* wake_up_nr(&wq, online_cpu - 1); */ + wake_up_all(&wq); +#else + wake_up(&wq); +#endif + + return err; +} + +static int aufs_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) +{ + int err; + static DECLARE_WAIT_QUEUE_HEAD(wq); + struct file *file, *h_file; + struct au_finfo *finfo; + + wait_event(wq, (file = au_safe_file(vma))); + + finfo = au_fi(file); + AuDebugOn(finfo->fi_hdir); + h_file = finfo->fi_htop.hf_file; + AuDebugOn(!h_file || !finfo->fi_hvmop); + + mutex_lock(&finfo->fi_vm_mtx); + vma->vm_file = h_file; + err = finfo->fi_hvmop->page_mkwrite(vma, vmf); + au_reset_file(vma, file); + mutex_unlock(&finfo->fi_vm_mtx); + wake_up(&wq); + + return err; +} + +static void aufs_vm_close(struct vm_area_struct *vma) +{ + static DECLARE_WAIT_QUEUE_HEAD(wq); + struct file *file, *h_file; + struct au_finfo *finfo; + + wait_event(wq, (file = au_safe_file(vma))); + + finfo = au_fi(file); + AuDebugOn(finfo->fi_hdir); + h_file = finfo->fi_htop.hf_file; + AuDebugOn(!h_file || !finfo->fi_hvmop); + + mutex_lock(&finfo->fi_vm_mtx); + vma->vm_file = h_file; + finfo->fi_hvmop->close(vma); + au_reset_file(vma, file); + mutex_unlock(&finfo->fi_vm_mtx); + wake_up(&wq); +} + +const struct vm_operations_struct aufs_vm_ops = { + .close = aufs_vm_close, + .fault = aufs_fault, + .page_mkwrite = aufs_page_mkwrite +}; + +/* ---------------------------------------------------------------------- */ + +/* cf. linux/include/linux/mman.h: calc_vm_prot_bits() */ +#define AuConv_VM_PROT(f, b) _calc_vm_trans(f, VM_##b, PROT_##b) + +static unsigned long au_arch_prot_conv(unsigned long flags) +{ + /* currently ppc64 only */ +#ifdef CONFIG_PPC64 + /* cf. linux/arch/powerpc/include/asm/mman.h */ + AuDebugOn(arch_calc_vm_prot_bits(-1) != VM_SAO); + return AuConv_VM_PROT(flags, SAO); +#else + AuDebugOn(arch_calc_vm_prot_bits(-1)); + return 0; +#endif +} + +static unsigned long au_prot_conv(unsigned long flags) +{ + return AuConv_VM_PROT(flags, READ) + | AuConv_VM_PROT(flags, WRITE) + | AuConv_VM_PROT(flags, EXEC) + | au_arch_prot_conv(flags); +} + +/* cf. linux/include/linux/mman.h: calc_vm_flag_bits() */ +#define AuConv_VM_MAP(f, b) _calc_vm_trans(f, VM_##b, MAP_##b) + +static unsigned long au_flag_conv(unsigned long flags) +{ + return AuConv_VM_MAP(flags, GROWSDOWN) + | AuConv_VM_MAP(flags, DENYWRITE) + | AuConv_VM_MAP(flags, EXECUTABLE) + | AuConv_VM_MAP(flags, LOCKED); +} + +static struct vm_operations_struct * +au_hvmop(struct file *h_file, struct vm_area_struct *vma, unsigned long *flags) +{ + struct vm_operations_struct *h_vmop; + unsigned long prot; + int err; + + h_vmop = ERR_PTR(-ENODEV); + if (!h_file->f_op || !h_file->f_op->mmap) + goto out; + + prot = au_prot_conv(vma->vm_flags); + err = security_file_mmap(h_file, /*reqprot*/prot, prot, + au_flag_conv(vma->vm_flags), vma->vm_start, 0); + h_vmop = ERR_PTR(err); + if (unlikely(err)) + goto out; + + err = h_file->f_op->mmap(h_file, vma); + h_vmop = ERR_PTR(err); + if (unlikely(err)) + goto out; + + /* oops, it became 'const' */ + h_vmop = (struct vm_operations_struct *)vma->vm_ops; + *flags = vma->vm_flags; + err = do_munmap(current->mm, vma->vm_start, + vma->vm_end - vma->vm_start); + if (unlikely(err)) { + AuIOErr("failed internal unmapping %.*s, %d\n", + AuDLNPair(h_file->f_dentry), err); + h_vmop = ERR_PTR(-EIO); + } + + out: + return h_vmop; +} + +/* + * This is another ugly approach to keep the lock order, particularly + * mm->mmap_sem and aufs rwsem. The previous approach was reverted and you can + * find it in git-log, if you want. + * + * native readdir: i_mutex, copy_to_user, mmap_sem + * aufs readdir: i_mutex, rwsem, nested-i_mutex, copy_to_user, mmap_sem + * + * Before aufs_mmap() mmap_sem is acquired already, but aufs_mmap() has to + * acquire aufs rwsem. It introduces a circular locking dependency. + * To address this problem, aufs_mmap() delegates the part which requires aufs + * rwsem to its internal workqueue. + */ + +/* very ugly approach */ +#include "mtx.h" + +struct au_mmap_pre_args { + /* input */ + struct file *file; + struct vm_area_struct *vma; + + /* output */ + int *errp; + struct file *h_file; + struct au_branch *br; + int mmapped; +}; + +static int au_mmap_pre(struct file *file, struct vm_area_struct *vma, + struct file **h_file, struct au_branch **br, + int *mmapped) +{ + int err; + aufs_bindex_t bstart; + const unsigned char wlock + = !!(file->f_mode & FMODE_WRITE) && (vma->vm_flags & VM_SHARED); + struct dentry *dentry; + struct super_block *sb; + + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, !AuLock_FLUSH); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + *mmapped = !!au_test_mmapped(file); + if (wlock) { + struct au_pin pin; + + err = au_ready_to_write(file, -1, &pin); + di_write_unlock(dentry); + if (unlikely(err)) + goto out_unlock; + au_unpin(&pin); + } else + di_write_unlock(dentry); + bstart = au_fbstart(file); + *br = au_sbr(sb, bstart); + *h_file = au_hf_top(file); + get_file(*h_file); + au_fi_mmap_lock(file); + +out_unlock: + fi_write_unlock(file); +out: + si_read_unlock(sb); + return err; +} + +static void au_call_mmap_pre(void *args) +{ + struct au_mmap_pre_args *a = args; + *a->errp = au_mmap_pre(a->file, a->vma, &a->h_file, &a->br, + &a->mmapped); +} + +static int aufs_mmap(struct file *file, struct vm_area_struct *vma) +{ + int err, wkq_err; + unsigned long h_vmflags; + struct au_finfo *finfo; + struct dentry *h_dentry; + struct vm_operations_struct *h_vmop, *vmop; + struct au_mmap_pre_args args = { + .file = file, + .vma = vma, + .errp = &err + }; + + wkq_err = au_wkq_wait_pre(au_call_mmap_pre, &args); + if (unlikely(wkq_err)) + err = wkq_err; + if (unlikely(err)) + goto out; + finfo = au_fi(file); + mutex_set_owner(&finfo->fi_mmap); + + h_dentry = args.h_file->f_dentry; + if (!args.mmapped && au_test_fs_bad_mapping(h_dentry->d_sb)) { + /* + * by this assignment, f_mapping will differs from aufs inode + * i_mapping. + * if someone else mixes the use of f_dentry->d_inode and + * f_mapping->host, then a problem may arise. + */ + file->f_mapping = args.h_file->f_mapping; + } + + /* always try this internal mmap to get vma flags */ + h_vmflags = 0; /* gcc warning */ + h_vmop = au_hvmop(args.h_file, vma, &h_vmflags); + err = PTR_ERR(h_vmop); + if (IS_ERR(h_vmop)) + goto out_unlock; + AuDebugOn(args.mmapped && h_vmop != finfo->fi_hvmop); + + vmop = (void *)au_dy_vmop(file, args.br, h_vmop); + err = PTR_ERR(vmop); + if (IS_ERR(vmop)) + goto out_unlock; + + /* + * unnecessary to handle MAP_DENYWRITE and deny_write_access()? + * currently MAP_DENYWRITE from userspace is ignored, but elf loader + * sets it. when FMODE_EXEC is set (by open_exec() or sys_uselib()), + * both of the aufs file and the lower file is deny_write_access()-ed. + * finally I hope we can skip handlling MAP_DENYWRITE here. + */ + err = generic_file_mmap(file, vma); + if (unlikely(err)) + goto out_unlock; + + vma->vm_ops = vmop; + vma->vm_flags = h_vmflags; + if (!args.mmapped) + finfo->fi_hvmop = h_vmop; + + vfsub_file_accessed(args.h_file); + /* update without lock, I don't think it a problem */ + fsstack_copy_attr_atime(file->f_dentry->d_inode, h_dentry->d_inode); + + out_unlock: + au_fi_mmap_unlock(file); + fput(args.h_file); + out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_fsync_nondir(struct file *file, int datasync) +{ + int err; + struct au_pin pin; + struct dentry *dentry; + struct inode *inode; + struct file *h_file; + struct super_block *sb; + + dentry = file->f_dentry; + inode = dentry->d_inode; + IMustLock(file->f_mapping->host); + if (inode != file->f_mapping->host) { + mutex_unlock(&file->f_mapping->host->i_mutex); + mutex_lock(&inode->i_mutex); + } + IMustLock(inode); + + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + + err = 0; /* -EBADF; */ /* posix? */ + if (unlikely(!(file->f_mode & FMODE_WRITE))) + goto out; + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + err = au_ready_to_write(file, -1, &pin); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + au_unpin(&pin); + + err = -EINVAL; + h_file = au_hf_top(file); + if (h_file->f_op && h_file->f_op->fsync) { + struct mutex *h_mtx; + + /* + * no filemap_fdatawrite() since aufs file has no its own + * mapping, but dir. + */ + h_mtx = &h_file->f_dentry->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + err = h_file->f_op->fsync(h_file, datasync); + if (!err) + vfsub_update_h_iattr(&h_file->f_path, /*did*/NULL); + /*ignore*/ + au_cpup_attr_timesizes(inode); + mutex_unlock(h_mtx); + } + + out_unlock: + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + out: + si_read_unlock(sb); + if (inode != file->f_mapping->host) { + mutex_unlock(&inode->i_mutex); + mutex_lock(&file->f_mapping->host->i_mutex); + } + return err; +} + +/* no one supports this operation, currently */ +#if 0 +static int aufs_aio_fsync_nondir(struct kiocb *kio, int datasync) +{ + int err; + struct au_pin pin; + struct dentry *dentry; + struct inode *inode; + struct file *file, *h_file; + struct super_block *sb; + + file = kio->ki_filp; + dentry = file->f_dentry; + inode = dentry->d_inode; + mutex_lock(&inode->i_mutex); + + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + + err = 0; /* -EBADF; */ /* posix? */ + if (unlikely(!(file->f_mode & FMODE_WRITE))) + goto out; + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + err = au_ready_to_write(file, -1, &pin); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + au_unpin(&pin); + + err = -ENOSYS; + h_file = au_hf_top(file); + if (h_file->f_op && h_file->f_op->aio_fsync) { + struct dentry *h_d; + struct mutex *h_mtx; + + h_d = h_file->f_dentry; + h_mtx = &h_d->d_inode->i_mutex; + if (!is_sync_kiocb(kio)) { + get_file(h_file); + fput(file); + } + kio->ki_filp = h_file; + err = h_file->f_op->aio_fsync(kio, datasync); + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + if (!err) + vfsub_update_h_iattr(&h_file->f_path, /*did*/NULL); + /*ignore*/ + au_cpup_attr_timesizes(inode); + mutex_unlock(h_mtx); + } + + out_unlock: + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + out: + si_read_unlock(sb); + mutex_unlock(&inode->i_mutex); + return err; +} +#endif + +static int aufs_fasync(int fd, struct file *file, int flag) +{ + int err; + struct file *h_file; + struct dentry *dentry; + struct super_block *sb; + + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0); + if (unlikely(err)) + goto out; + + h_file = au_hf_top(file); + if (h_file->f_op && h_file->f_op->fasync) + err = h_file->f_op->fasync(fd, h_file, flag); + + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + + out: + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* no one supports this operation, currently */ +#if 0 +static ssize_t aufs_sendpage(struct file *file, struct page *page, int offset, + size_t len, loff_t *pos , int more) +{ +} +#endif + +/* ---------------------------------------------------------------------- */ + +const struct file_operations aufs_file_fop = { + .owner = THIS_MODULE, + /* + * while generic_file_llseek/_unlocked() don't use BKL, + * don't use it since it operates file->f_mapping->host. + * in aufs, it may be a real file and may confuse users by UDBA. + */ + /* .llseek = generic_file_llseek, */ + + .read = aufs_read, + .write = aufs_write, + .aio_read = aufs_aio_read, + .aio_write = aufs_aio_write, +#ifdef CONFIG_AUFS_POLL + .poll = aufs_poll, +#endif + .unlocked_ioctl = aufs_ioctl_nondir, +#ifdef CONFIG_COMPAT + .compat_ioctl = aufs_ioctl_nondir, /* same */ +#endif + .mmap = aufs_mmap, + .open = aufs_open_nondir, + .flush = aufs_flush_nondir, + .release = aufs_release_nondir, + .fsync = aufs_fsync_nondir, + /* .aio_fsync = aufs_aio_fsync_nondir, */ + .fasync = aufs_fasync, + /* .sendpage = aufs_sendpage, */ + .splice_write = aufs_splice_write, + .splice_read = aufs_splice_read, +#if 0 + .aio_splice_write = aufs_aio_splice_write, + .aio_splice_read = aufs_aio_splice_read +#endif +}; --- linux-2.6.35.orig/ubuntu/aufs/loop.c +++ linux-2.6.35/ubuntu/aufs/loop.c @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * support for loopback block device as a branch + */ + +#include +#include "aufs.h" + +/* + * test if two lower dentries have overlapping branches. + */ +int au_test_loopback_overlap(struct super_block *sb, struct dentry *h_d1, + struct dentry *h_d2) +{ + struct inode *h_inode; + struct loop_device *l; + + h_inode = h_d1->d_inode; + if (MAJOR(h_inode->i_sb->s_dev) != LOOP_MAJOR) + return 0; + + l = h_inode->i_sb->s_bdev->bd_disk->private_data; + h_d1 = l->lo_backing_file->f_dentry; + /* h_d1 can be local NFS. in this case aufs cannot detect the loop */ + if (unlikely(h_d1->d_sb == sb)) + return 1; + return au_test_subdir(h_d1, h_d2); +} + +/* true if a kernel thread named 'loop[0-9].*' accesses a file */ +int au_test_loopback_kthread(void) +{ + int ret; + + ret = 0; + if (current->flags & PF_KTHREAD) { + const char c = current->comm[4]; + ret = ('0' <= c && c <= '9' + && !strncmp(current->comm, "loop", 4)); + } + + return ret; +} --- linux-2.6.35.orig/ubuntu/aufs/include/linux/aufs_type.h +++ linux-2.6.35/ubuntu/aufs/include/linux/aufs_type.h @@ -0,0 +1,198 @@ +/* + * Copyright (C) 2005-2010 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __AUFS_TYPE_H__ +#define __AUFS_TYPE_H__ + +#include +/* for those who didn't "make headers_install" */ +#ifdef __KERNEL__ +#include +#endif +#include +#include + +#define AUFS_VERSION "2-standalone.tree-35-rcN-20100705" + +/* todo? move this to linux-2.6.19/include/magic.h */ +#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's') + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_BRANCH_MAX_127 +typedef __s8 aufs_bindex_t; +#define AUFS_BRANCH_MAX 127 +#else +typedef __s16 aufs_bindex_t; +#ifdef CONFIG_AUFS_BRANCH_MAX_511 +#define AUFS_BRANCH_MAX 511 +#elif defined(CONFIG_AUFS_BRANCH_MAX_1023) +#define AUFS_BRANCH_MAX 1023 +#elif defined(CONFIG_AUFS_BRANCH_MAX_32767) +#define AUFS_BRANCH_MAX 32767 +#endif +#endif + +#ifdef __KERNEL__ +#ifndef AUFS_BRANCH_MAX +#error unknown CONFIG_AUFS_BRANCH_MAX value +#endif +#endif /* __KERNEL__ */ + +/* ---------------------------------------------------------------------- */ + +#define AUFS_NAME "aufs" +#define AUFS_FSTYPE AUFS_NAME + +#define AUFS_ROOT_INO 2 +#define AUFS_FIRST_INO 11 + +#define AUFS_WH_PFX ".wh." +#define AUFS_WH_PFX_LEN ((int)sizeof(AUFS_WH_PFX) - 1) +#define AUFS_WH_TMP_LEN 4 +/* a limit for rmdir/rename a dir */ +#define AUFS_MAX_NAMELEN (NAME_MAX \ + - AUFS_WH_PFX_LEN * 2 /* doubly whiteouted */\ + - 1 /* dot */\ + - AUFS_WH_TMP_LEN) /* hex */ +#define AUFS_XINO_FNAME "." AUFS_NAME ".xino" +#define AUFS_XINO_DEFPATH "/tmp/" AUFS_XINO_FNAME +#define AUFS_XINO_TRUNC_INIT 64 /* blocks */ +#define AUFS_XINO_TRUNC_STEP 4 /* blocks */ +#define AUFS_DIRWH_DEF 3 +#define AUFS_RDCACHE_DEF 10 /* seconds */ +#define AUFS_RDBLK_DEF 512 /* bytes */ +#define AUFS_RDHASH_DEF 32 +#define AUFS_WKQ_NAME AUFS_NAME "d" +#define AUFS_WKQ_PRE_NAME AUFS_WKQ_NAME "_pre" +#define AUFS_MFS_SECOND_DEF 30 /* seconds */ +#define AUFS_PLINK_WARN 100 /* number of plinks */ + +#define AUFS_DIROPQ_NAME AUFS_WH_PFX ".opq" /* whiteouted doubly */ +#define AUFS_WH_DIROPQ AUFS_WH_PFX AUFS_DIROPQ_NAME + +#define AUFS_BASE_NAME AUFS_WH_PFX AUFS_NAME +#define AUFS_PLINKDIR_NAME AUFS_WH_PFX "plnk" +#define AUFS_ORPHDIR_NAME AUFS_WH_PFX "orph" + +/* doubly whiteouted */ +#define AUFS_WH_BASE AUFS_WH_PFX AUFS_BASE_NAME +#define AUFS_WH_PLINKDIR AUFS_WH_PFX AUFS_PLINKDIR_NAME +#define AUFS_WH_ORPHDIR AUFS_WH_PFX AUFS_ORPHDIR_NAME + +/* branch permission */ +#define AUFS_BRPERM_RW "rw" +#define AUFS_BRPERM_RO "ro" +#define AUFS_BRPERM_RR "rr" +#define AUFS_BRPERM_WH "wh" +#define AUFS_BRPERM_NLWH "nolwh" +#define AUFS_BRPERM_ROWH AUFS_BRPERM_RO "+" AUFS_BRPERM_WH +#define AUFS_BRPERM_RRWH AUFS_BRPERM_RR "+" AUFS_BRPERM_WH +#define AUFS_BRPERM_RWNLWH AUFS_BRPERM_RW "+" AUFS_BRPERM_NLWH + +/* ---------------------------------------------------------------------- */ + +/* ioctl */ +enum { + AuCtl_PLINK_MAINT, + AuCtl_PLINK_CLEAN, + + /* readdir in userspace */ + AuCtl_RDU, + AuCtl_RDU_INO, + + /* pathconf wrapper */ + AuCtl_WBR_FD +}; + +/* borrowed from linux/include/linux/kernel.h */ +#ifndef ALIGN +#define ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a)-1) +#define __ALIGN_MASK(x, mask) (((x)+(mask))&~(mask)) +#endif + +/* borrowed from linux/include/linux/compiler-gcc3.h */ +#ifndef __aligned +#define __aligned(x) __attribute__((aligned(x))) +#define __packed __attribute__((packed)) +#endif + +struct au_rdu_cookie { + __u64 h_pos; + __s16 bindex; + __u8 flags; + __u8 pad; + __u32 generation; +} __aligned(8); + +struct au_rdu_ent { + __u64 ino; + __s16 bindex; + __u8 type; + __u8 nlen; + __u8 wh; + char name[0]; +} __aligned(8); + +static inline int au_rdu_len(int nlen) +{ + /* include the terminating NULL */ + return ALIGN(sizeof(struct au_rdu_ent) + nlen + 1, + sizeof(__u64)); +} + +union au_rdu_ent_ul { + struct au_rdu_ent __user *e; + __u64 ul; +}; + +enum { + AufsCtlRduV_SZ, + AufsCtlRduV_End +}; + +struct aufs_rdu { + /* input */ + union { + __u64 sz; /* AuCtl_RDU */ + __u64 nent; /* AuCtl_RDU_INO */ + }; + union au_rdu_ent_ul ent; + __u16 verify[AufsCtlRduV_End]; + + /* input/output */ + __u32 blk; + + /* output */ + union au_rdu_ent_ul tail; + /* number of entries which were added in a single call */ + __u64 rent; + __u8 full; + __u8 shwh; + + struct au_rdu_cookie cookie; +} __aligned(8); + +#define AuCtlType 'A' +#define AUFS_CTL_PLINK_MAINT _IO(AuCtlType, AuCtl_PLINK_MAINT) +#define AUFS_CTL_PLINK_CLEAN _IO(AuCtlType, AuCtl_PLINK_CLEAN) +#define AUFS_CTL_RDU _IOWR(AuCtlType, AuCtl_RDU, struct aufs_rdu) +#define AUFS_CTL_RDU_INO _IOWR(AuCtlType, AuCtl_RDU_INO, struct aufs_rdu) +#define AUFS_CTL_WBR_FD _IO(AuCtlType, AuCtl_WBR_FD) + +#endif /* __AUFS_TYPE_H__ */ --- linux-2.6.35.orig/ubuntu/include/README +++ linux-2.6.35/ubuntu/include/README @@ -0,0 +1,4 @@ +Only use this directory for things which need to share their headers with +other parts of the kernel or other modules in ubuntu/ + +Otherwise, keep them local to the module directory. --- linux-2.6.35.orig/ubuntu/rfkill/BOM +++ linux-2.6.35/ubuntu/rfkill/BOM @@ -0,0 +1,6 @@ +Downloaded from: http://sourceforge.net/project/showfiles.php?group_id=108766 +Current Version: 1.3 +Comments: + +Had to change &proc_root to NULL due to changes in create/remove proc +entry usage. --- linux-2.6.35.orig/ubuntu/rfkill/pbe5.c +++ linux-2.6.35/ubuntu/rfkill/pbe5.c @@ -0,0 +1,205 @@ +/******************************************************************************* + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program; if not, write to the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + The full GNU General Public License is included in this distribution in the + file called LICENSE. + + Author: + Pedro Ramalhais + + Based on: + av5100.c from http://ipw2100.sourceforge.net/ + +*******************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRV_NAME "pbe5" +#define DRV_VERSION "1.3" +#define DRV_DESCRIPTION "SW RF kill switch for Packard Bell EasyNote E5" +#define DRV_AUTHOR "Pedro Ramalhais" +#define DRV_LICENSE "GPL" + +static int radio = 1; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + +MODULE_PARM(radio, "i"); + +#else /* LINUX_VERSION_CODE < 2.6.0 */ + +#include +module_param(radio, int, 1); + +#endif /* LINUX_VERSION_CODE < 2.6.0 */ + +MODULE_PARM_DESC(radio, "controls state of radio (1=on, 0=off)"); + +MODULE_DESCRIPTION(DRV_DESCRIPTION); +MODULE_AUTHOR(DRV_AUTHOR); +MODULE_LICENSE(DRV_LICENSE); + +/* + * NOTE: These values were obtained from disassembling the Icon.exe program + * installed in the Packard Bell EasyNote E5 laptop. The names were guessed, + * so don't rely on them. + */ +#define PBE5_PORT_TOGGLE 0x0b3 +#define PBE5_VALUE_TOGGLE_ON 0x01 +#define PBE5_VALUE_TOGGLE_OFF 0x00 +#define PBE5_PORT_APPLY 0x0b2 +#define PBE5_VALUE_APPLY 0xef + +// Some "booleans" =;-) +#define PBE5_RADIO_OFF 0 +#define PBE5_RADIO_ON 1 + +static int pbe5_radio_status = PBE5_RADIO_ON; + +unsigned char pbe5_get_radio(void) +{ + unsigned char val = 0x00; + + val = inb(PBE5_PORT_TOGGLE); + + return val; +} + +static void pbe5_set_radio(int state_set) +{ + pbe5_radio_status = pbe5_get_radio(); + + if (pbe5_radio_status != state_set) { + // Set the radio toggle register + outb(PBE5_VALUE_TOGGLE_ON, PBE5_PORT_TOGGLE); + // Commit the radio toggle register value + outb(PBE5_VALUE_APPLY, PBE5_PORT_APPLY); + // Update the radio status + pbe5_radio_status = pbe5_get_radio(); + + printk(KERN_INFO DRV_NAME ": Radio turned %s\n", + (state_set == PBE5_RADIO_ON) ? "ON" : "OFF"); + } else { + printk(KERN_INFO DRV_NAME ": Radio already %s\n", + (state_set == PBE5_RADIO_ON) ? "ON" : "OFF"); + } +} + + +/* + * proc stuff + */ +static struct proc_dir_entry *dir_base = NULL; + +static int proc_set_radio(struct file *file, const char *buffer, + unsigned long count, void *data) +{ + pbe5_set_radio(buffer[0] == '0' ? PBE5_RADIO_OFF : PBE5_RADIO_ON); + + return count; +} + +static int proc_get_radio(char *page, char **start, off_t offset, + int count, int *eof, void *data) +{ + int len = 0; + + len += snprintf(page, count, DRV_NAME ": %d\n", + pbe5_radio_status == PBE5_RADIO_OFF ? 0 : 1); + + *eof = 1; + return len; +} + + +static void pbe5_proc_cleanup(void) +{ + if (dir_base) { + remove_proc_entry("radio", dir_base); + remove_proc_entry(DRV_NAME, NULL); + dir_base = NULL; + } +} + + +static int pbe5_proc_init(void) +{ + struct proc_dir_entry *ent; + int err = 0; + + dir_base = create_proc_entry(DRV_NAME, S_IFDIR, NULL); + if (dir_base == NULL) { + printk(KERN_ERR DRV_NAME ": Unable to initialise /proc/" + DRV_NAME "\n"); + err = -ENOMEM; + goto fail; + } + + + ent = create_proc_entry("radio", S_IFREG | S_IRUGO | S_IWUSR, + dir_base); + if (ent) { + ent->read_proc = proc_get_radio; + ent->write_proc = proc_set_radio; + } else { + printk(KERN_ERR + "Unable to initialize /proc/" DRV_NAME "/radio\n"); + err = -ENOMEM; + goto fail; + } + + return 0; + + fail: + pbe5_proc_cleanup(); + return err; +} + +/* + * module stuff + */ +static int __init pbe5_init(void) +{ + pbe5_proc_init(); + + pbe5_set_radio((radio == 1) ? PBE5_RADIO_ON : PBE5_RADIO_OFF); + + return 0; +} + +static void __exit pbe5_exit(void) +{ + pbe5_set_radio(PBE5_RADIO_OFF); + + pbe5_proc_cleanup(); +} + +module_init(pbe5_init); +module_exit(pbe5_exit); + +/* + 1 2 3 4 5 6 7 +12345678901234567890123456789012345678901234567890123456789012345678901234567890 +*/ --- linux-2.6.35.orig/ubuntu/rfkill/av5100.c +++ linux-2.6.35/ubuntu/rfkill/av5100.c @@ -0,0 +1,174 @@ +/******************************************************************************* + + Copyright(c) 2003 - 2004 Intel Corporation. All rights reserved. + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program; if not, write to the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + The full GNU General Public License is included in this distribution in the + file called LICENSE. + + Contact Information: + James P. Ketrenos + Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + +*******************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define DRV_NAME "av5100" +#define DRV_VERSION "1.3" +#define DRV_DESCRIPTION "SW RF kill switch for Averatec 5100P" +#define DRV_COPYRIGHT "Copyright(c) 2003-2004 Intel Corporation" + +static int radio = 1; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + +MODULE_PARM(radio, "i"); + +#else /* LINUX_VERSION_CODE < 2.6.0 */ + +#include +module_param(radio, int, 1); + +#endif /* LINUX_VERSION_CODE < 2.6.0 */ + +MODULE_PARM_DESC(radio, "controls state of radio (1=on, 0=off)"); + +MODULE_DESCRIPTION(DRV_DESCRIPTION); +MODULE_AUTHOR(DRV_COPYRIGHT); +MODULE_LICENSE("GPL"); + +#define AV5100_RADIO_ON (0xe0) +#define AV5100_RADIO_OFF (0xe1) + +static int av5100_radio = AV5100_RADIO_OFF; + +static void av5100_set_radio(int state) +{ + printk(KERN_INFO DRV_NAME ": Radio being turned %s\n", + (state == AV5100_RADIO_ON) ? "ON" : "OFF"); + outl(0x80020800, 0xcf8); + outb(0x6f, 0x0072); + outl(0x1800ffff, 0x1184); + outb(state, 0x00b2); + av5100_radio = state; +} + + +/* + * proc stuff + */ +static struct proc_dir_entry *dir_base = NULL; + +static int proc_set_radio(struct file *file, const char *buffer, + unsigned long count, void *data) +{ + av5100_set_radio(buffer[0] == '0' ? AV5100_RADIO_OFF : AV5100_RADIO_ON); + + return count; +} + +static int proc_get_radio(char *page, char **start, off_t offset, + int count, int *eof, void *data) +{ + int len = 0; + + len += snprintf(page, count, DRV_NAME ": %d\n", + av5100_radio == AV5100_RADIO_OFF ? 0 : 1); + + *eof = 1; + return len; +} + + +static void av5100_proc_cleanup(void) +{ + if (dir_base) { + remove_proc_entry("radio", dir_base); + remove_proc_entry(DRV_NAME, NULL); + dir_base = NULL; + } +} + + +static int av5100_proc_init(void) +{ + struct proc_dir_entry *ent; + int err = 0; + + dir_base = create_proc_entry(DRV_NAME, S_IFDIR, NULL); + if (dir_base == NULL) { + printk(KERN_ERR DRV_NAME ": Unable to initialise /proc/" + DRV_NAME "\n"); + err = -ENOMEM; + goto fail; + } + + + ent = create_proc_entry("radio", S_IFREG | S_IRUGO | S_IWUSR, + dir_base); + if (ent) { + ent->read_proc = proc_get_radio; + ent->write_proc = proc_set_radio; + } else { + printk(KERN_ERR + "Unable to initialize /proc/" DRV_NAME "/radio\n"); + err = -ENOMEM; + goto fail; + } + + return 0; + + fail: + av5100_proc_cleanup(); + return err; +} + +/* + * module stuff + */ +static int __init av5100_init(void) +{ + av5100_proc_init(); + + av5100_set_radio((radio == 1) ? AV5100_RADIO_ON : AV5100_RADIO_OFF); + + return 0; +} + +static void __exit av5100_exit(void) +{ + av5100_set_radio(AV5100_RADIO_OFF); + + av5100_proc_cleanup(); +} + +module_init(av5100_init); +module_exit(av5100_exit); + +/* + 1 2 3 4 5 6 7 +12345678901234567890123456789012345678901234567890123456789012345678901234567890 +*/ --- linux-2.6.35.orig/ubuntu/rfkill/Kconfig +++ linux-2.6.35/ubuntu/rfkill/Kconfig @@ -0,0 +1,9 @@ +config AVERATEC_5100P + tristate "Software kill switch for Averatec 5100P" + depends on X86 + default m + +config PACKARDBELL_E5 + tristate "Software kill switch for Packard Bell EasyNote E5" + depends on X86 + default m --- linux-2.6.35.orig/ubuntu/rfkill/Makefile +++ linux-2.6.35/ubuntu/rfkill/Makefile @@ -0,0 +1,6 @@ +# +# Makefile for Ubuntu additional drivers +# + +obj-$(CONFIG_AVERATEC_5100P) += av5100.o +obj-$(CONFIG_PACKARDBELL_E5) += pbe5.o --- linux-2.6.35.orig/security/commoncap.c +++ linux-2.6.35/security/commoncap.c @@ -951,3 +951,4 @@ } return ret; } +EXPORT_SYMBOL(cap_file_mmap); --- linux-2.6.35.orig/security/capability.c +++ linux-2.6.35/security/capability.c @@ -354,6 +354,9 @@ return 0; } +static void cap_task_free(struct task_struct *task) +{ } + static int cap_cred_alloc_blank(struct cred *cred, gfp_t gfp) { return 0; @@ -937,6 +940,7 @@ set_to_cap_if_null(ops, file_receive); set_to_cap_if_null(ops, dentry_open); set_to_cap_if_null(ops, task_create); + set_to_cap_if_null(ops, task_free); set_to_cap_if_null(ops, cred_alloc_blank); set_to_cap_if_null(ops, cred_free); set_to_cap_if_null(ops, cred_prepare); --- linux-2.6.35.orig/security/security.c +++ linux-2.6.35/security/security.c @@ -22,6 +22,18 @@ static __initdata char chosen_lsm[SECURITY_NAME_MAX + 1] = CONFIG_DEFAULT_SECURITY; +#if CONFIG_SECURITY_YAMA +extern int yama_ptrace_access_check(struct task_struct *child, + unsigned int mode); +extern int yama_path_link(struct dentry *old_dentry, struct path *new_dir, + struct dentry *new_dentry); +extern int yama_inode_follow_link(struct dentry *dentry, + struct nameidata *nameidata); +extern void yama_task_free(struct task_struct *task); +extern int yama_task_prctl(int option, unsigned long arg2, unsigned long arg3, + unsigned long arg4, unsigned long arg5); +#endif + /* things that live in capability.c */ extern void __init security_fixup_ops(struct security_operations *ops); @@ -137,6 +149,12 @@ int security_ptrace_access_check(struct task_struct *child, unsigned int mode) { +#if CONFIG_SECURITY_YAMA + int rc; + rc = yama_ptrace_access_check(child, mode); + if (rc || security_ops->ptrace_access_check == yama_ptrace_access_check) + return rc; +#endif return security_ops->ptrace_access_check(child, mode); } @@ -376,6 +394,7 @@ return 0; return security_ops->path_mkdir(dir, dentry, mode); } +EXPORT_SYMBOL(security_path_mkdir); int security_path_rmdir(struct path *dir, struct dentry *dentry) { @@ -383,6 +402,7 @@ return 0; return security_ops->path_rmdir(dir, dentry); } +EXPORT_SYMBOL(security_path_rmdir); int security_path_unlink(struct path *dir, struct dentry *dentry) { @@ -390,6 +410,7 @@ return 0; return security_ops->path_unlink(dir, dentry); } +EXPORT_SYMBOL(security_path_unlink); int security_path_symlink(struct path *dir, struct dentry *dentry, const char *old_name) @@ -398,14 +419,21 @@ return 0; return security_ops->path_symlink(dir, dentry, old_name); } +EXPORT_SYMBOL(security_path_symlink); int security_path_link(struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) { if (unlikely(IS_PRIVATE(old_dentry->d_inode))) return 0; +#if CONFIG_SECURITY_YAMA + int rc = yama_path_link(old_dentry, new_dir, new_dentry); + if (rc || security_ops->path_link == yama_path_link) + return rc; +#endif return security_ops->path_link(old_dentry, new_dir, new_dentry); } +EXPORT_SYMBOL(security_path_link); int security_path_rename(struct path *old_dir, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) @@ -416,6 +444,7 @@ return security_ops->path_rename(old_dir, old_dentry, new_dir, new_dentry); } +EXPORT_SYMBOL(security_path_rename); int security_path_truncate(struct path *path, loff_t length, unsigned int time_attrs) @@ -424,6 +453,7 @@ return 0; return security_ops->path_truncate(path, length, time_attrs); } +EXPORT_SYMBOL(security_path_truncate); int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt, mode_t mode) @@ -432,6 +462,7 @@ return 0; return security_ops->path_chmod(dentry, mnt, mode); } +EXPORT_SYMBOL(security_path_chmod); int security_path_chown(struct path *path, uid_t uid, gid_t gid) { @@ -439,6 +470,7 @@ return 0; return security_ops->path_chown(path, uid, gid); } +EXPORT_SYMBOL(security_path_chown); int security_path_chroot(struct path *path) { @@ -515,11 +547,17 @@ return 0; return security_ops->inode_readlink(dentry); } +EXPORT_SYMBOL(security_inode_readlink); int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd) { if (unlikely(IS_PRIVATE(dentry->d_inode))) return 0; +#if CONFIG_SECURITY_YAMA + int rc = yama_inode_follow_link(dentry, nd); + if (rc || security_ops->inode_follow_link == yama_inode_follow_link) + return rc; +#endif return security_ops->inode_follow_link(dentry, nd); } @@ -529,6 +567,7 @@ return 0; return security_ops->inode_permission(inode, mask); } +EXPORT_SYMBOL(security_inode_permission); int security_inode_setattr(struct dentry *dentry, struct iattr *attr) { @@ -622,6 +661,7 @@ { return security_ops->file_permission(file, mask); } +EXPORT_SYMBOL(security_file_permission); int security_file_alloc(struct file *file) { @@ -649,6 +689,7 @@ return ret; return ima_file_mmap(file, prot); } +EXPORT_SYMBOL(security_file_mmap); int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot, unsigned long prot) @@ -692,6 +733,16 @@ return security_ops->task_create(clone_flags); } +void security_task_free(struct task_struct *task) +{ +#if CONFIG_SECURITY_YAMA + yama_task_free(task); + if (security_ops->task_free == yama_task_free) + return; +#endif + security_ops->task_free(task); +} + int security_cred_alloc_blank(struct cred *cred, gfp_t gfp) { return security_ops->cred_alloc_blank(cred, gfp); @@ -804,6 +855,12 @@ int security_task_prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5) { +#if CONFIG_SECURITY_YAMA + int rc; + rc = yama_task_prctl(option, arg2, arg3, arg4, arg5); + if (rc != -ENOSYS || security_ops->task_prctl == yama_task_prctl) + return rc; +#endif return security_ops->task_prctl(option, arg2, arg3, arg4, arg5); } --- linux-2.6.35.orig/security/device_cgroup.c +++ linux-2.6.35/security/device_cgroup.c @@ -515,6 +515,7 @@ return -EPERM; } +EXPORT_SYMBOL(devcgroup_inode_permission); int devcgroup_inode_mknod(int mode, dev_t dev) { --- linux-2.6.35.orig/security/Kconfig +++ linux-2.6.35/security/Kconfig @@ -140,6 +140,8 @@ source security/selinux/Kconfig source security/smack/Kconfig source security/tomoyo/Kconfig +source security/apparmor/Kconfig +source security/yama/Kconfig source security/integrity/ima/Kconfig @@ -148,6 +150,8 @@ default DEFAULT_SECURITY_SELINUX if SECURITY_SELINUX default DEFAULT_SECURITY_SMACK if SECURITY_SMACK default DEFAULT_SECURITY_TOMOYO if SECURITY_TOMOYO + default DEFAULT_SECURITY_APPARMOR if SECURITY_APPARMOR + default DEFAULT_SECURITY_YAMA if SECURITY_YAMA default DEFAULT_SECURITY_DAC help @@ -163,6 +167,12 @@ config DEFAULT_SECURITY_TOMOYO bool "TOMOYO" if SECURITY_TOMOYO=y + config DEFAULT_SECURITY_APPARMOR + bool "AppArmor" if SECURITY_APPARMOR=y + + config DEFAULT_SECURITY_YAMA + bool "Yama" if SECURITY_YAMA=y + config DEFAULT_SECURITY_DAC bool "Unix Discretionary Access Controls" @@ -173,6 +183,8 @@ default "selinux" if DEFAULT_SECURITY_SELINUX default "smack" if DEFAULT_SECURITY_SMACK default "tomoyo" if DEFAULT_SECURITY_TOMOYO + default "apparmor" if DEFAULT_SECURITY_APPARMOR + default "yama" if DEFAULT_SECURITY_YAMA default "" if DEFAULT_SECURITY_DAC endmenu --- linux-2.6.35.orig/security/Makefile +++ linux-2.6.35/security/Makefile @@ -6,6 +6,8 @@ subdir-$(CONFIG_SECURITY_SELINUX) += selinux subdir-$(CONFIG_SECURITY_SMACK) += smack subdir-$(CONFIG_SECURITY_TOMOYO) += tomoyo +subdir-$(CONFIG_SECURITY_APPARMOR) += apparmor +subdir-$(CONFIG_SECURITY_YAMA) += yama # always enable default capabilities obj-y += commoncap.o @@ -19,6 +21,8 @@ obj-$(CONFIG_SECURITY_SMACK) += smack/built-in.o obj-$(CONFIG_AUDIT) += lsm_audit.o obj-$(CONFIG_SECURITY_TOMOYO) += tomoyo/built-in.o +obj-$(CONFIG_SECURITY_APPARMOR) += apparmor/built-in.o +obj-$(CONFIG_SECURITY_YAMA) += yama/built-in.o obj-$(CONFIG_CGROUP_DEVICE) += device_cgroup.o # Object integrity file lists --- linux-2.6.35.orig/security/yama/yama_lsm.c +++ linux-2.6.35/security/yama/yama_lsm.c @@ -0,0 +1,433 @@ +/* + * Yama Linux Security Module + * + * Author: Kees Cook + * + * Copyright (C) 2010 Canonical, Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, as + * published by the Free Software Foundation. + * + */ + +#include +#include +#include +#include +#include + +static int ptrace_scope = 1; +static int protected_sticky_symlinks = 1; +static int protected_nonaccess_hardlinks = 1; + +/* describe a PTRACE relationship for potential exception */ +struct ptrace_relation { + struct task_struct *tracer; + struct task_struct *tracee; + struct list_head node; +}; + +static LIST_HEAD(ptracer_relations); +static DEFINE_SPINLOCK(ptracer_relations_lock); + +/** + * yama_ptracer_add - add/replace an exception for this tracer/tracee pair + * @tracer: the task_struct of the process doing the PTRACE + * @tracee: the task_struct of the process to be PTRACEd + * + * Returns 0 if relationship was added, -ve on error. + */ +static int yama_ptracer_add(struct task_struct *tracer, + struct task_struct *tracee) +{ + int rc = 0; + struct ptrace_relation *added; + struct ptrace_relation *entry, *relation = NULL; + + added = kmalloc(sizeof(*added), GFP_KERNEL); + spin_lock(&ptracer_relations_lock); + list_for_each_entry(entry, &ptracer_relations, node) + if (entry->tracee == tracee) { + relation = entry; + break; + } + if (!relation) { + relation = added; + if (!relation) { + rc = -ENOMEM; + goto unlock_out; + } + relation->tracee = tracee; + list_add(&relation->node, &ptracer_relations); + } + relation->tracer = tracer; + +unlock_out: + spin_unlock(&ptracer_relations_lock); + if (added && added != relation) + kfree(added); + + return rc; +} + +/** + * yama_ptracer_del - remove exceptions related to the given tasks + * @tracer: remove any relation where tracer task matches + * @tracee: remove any relation where tracee task matches + */ +static void yama_ptracer_del(struct task_struct *tracer, + struct task_struct *tracee) +{ + struct ptrace_relation *relation; + struct list_head *list, *safe; + + spin_lock(&ptracer_relations_lock); + list_for_each_safe(list, safe, &ptracer_relations) { + relation = list_entry(list, struct ptrace_relation, node); + if (relation->tracee == tracee || + relation->tracer == tracer) { + list_del(&relation->node); + kfree(relation); + } + } + spin_unlock(&ptracer_relations_lock); +} + +/** + * yama_task_free - check for task_pid to remove from exception list + * @task: task being removed + */ +void yama_task_free(struct task_struct *task) +{ + yama_ptracer_del(task, task); +} + +/** + * yama_task_prctl - check for Yama-specific prctl operations + * @option: operation + * @arg2: argument + * @arg3: argument + * @arg4: argument + * @arg5: argument + * + * Return 0 on success, -ve on error. -ENOSYS is returned when Yama + * does not handle the given option. + */ +int yama_task_prctl(int option, unsigned long arg2, unsigned long arg3, + unsigned long arg4, unsigned long arg5) +{ + int rc; + + rc = cap_task_prctl(option, arg2, arg3, arg4, arg5); + if (rc != -ENOSYS) + return rc; + + switch (option) { + case PR_SET_PTRACER: + if (arg2 == 0) { + yama_ptracer_del(NULL, current); + rc = 0; + } + else { + struct task_struct *tracer; + + rcu_read_lock(); + tracer = find_task_by_vpid(arg2); + if (tracer) + get_task_struct(tracer); + else + rc = -EINVAL; + rcu_read_unlock(); + + if (tracer) { + rc = yama_ptracer_add(tracer, current); + put_task_struct(tracer); + } + } + break; + } + + return rc; +} + +/** + * task_is_descendant - walk up a process family tree looking for a match + * @parent: the process to compare against while walking up from child + * @child: the process to start from while looking upwards for parent + * + * Returns 1 if child is a descendant of parent, 0 if not. + */ +static int task_is_descendant(struct task_struct *parent, + struct task_struct *child) +{ + int rc = 0; + struct task_struct *walker = child; + + if (!parent || !child) + return 0; + + rcu_read_lock(); + read_lock(&tasklist_lock); + while (walker->pid > 0) { + if (!thread_group_leader(walker)) + walker = walker->group_leader; + if (walker == parent) { + rc = 1; + break; + } + walker = walker->real_parent; + } + read_unlock(&tasklist_lock); + rcu_read_unlock(); + + return rc; +} + +/** + * ptracer_exception_found - tracer registered as exception for this tracee + * @tracer: the task_struct of the process attempting PTRACE + * @tracee: the task_struct of the process to be PTRACEd + * + * Returns 1 if tracer has is ptracer exception ancestor for tracee. + */ +static int ptracer_exception_found(struct task_struct *tracer, + struct task_struct *tracee) +{ + int rc = 0; + struct ptrace_relation *relation; + struct task_struct *parent = NULL; + + spin_lock(&ptracer_relations_lock); + + rcu_read_lock(); + read_lock(&tasklist_lock); + if (!thread_group_leader(tracee)) + tracee = tracee->group_leader; + list_for_each_entry(relation, &ptracer_relations, node) + if (relation->tracee == tracee) { + parent = relation->tracer; + break; + } + read_unlock(&tasklist_lock); + rcu_read_unlock(); + + if (task_is_descendant(parent, tracer)) + rc = 1; + spin_unlock(&ptracer_relations_lock); + + return rc; +} + +/** + * yama_ptrace_access_check - validate PTRACE_ATTACH calls + * @child: task that current task is attempting to PTRACE + * @mode: ptrace attach mode + * + * Returns 0 if following the ptrace is allowed, -ve on error. + */ +int yama_ptrace_access_check(struct task_struct *child, + unsigned int mode) +{ + int rc; + + /* If standard caps disallows it, so does Yama. We should + * only tighten restrictions further. + */ + rc = cap_ptrace_access_check(child, mode); + if (rc) + return rc; + + /* require ptrace target be a child of ptracer on attach */ + if (mode == PTRACE_MODE_ATTACH && + ptrace_scope && + !capable(CAP_SYS_PTRACE) && + !task_is_descendant(current, child) && + !ptracer_exception_found(current, child)) + rc = -EPERM; + + if (rc) { + char name[sizeof(current->comm)]; + printk_ratelimited(KERN_INFO "ptrace of non-child" + " pid %d was attempted by: %s (pid %d)\n", + child->pid, + get_task_comm(name, current), + current->pid); + } + + return rc; +} + +/** + * yama_inode_follow_link - check for symlinks in sticky world-writeable dirs + * @dentry: The inode/dentry of the symlink + * @nameidata: The path data of the symlink + * + * In the case of the protected_sticky_symlinks sysctl being enabled, + * CAP_DAC_OVERRIDE needs to be specifically ignored if the symlink is + * in a sticky world-writable directory. This is to protect privileged + * processes from failing races against path names that may change out + * from under them by way of other users creating malicious symlinks. + * It will permit symlinks to only be followed when outside a sticky + * world-writable directory, or when the uid of the symlink and follower + * match, or when the directory owner matches the symlink's owner. + * + * Returns 0 if following the symlink is allowed, -ve on error. + */ +int yama_inode_follow_link(struct dentry *dentry, + struct nameidata *nameidata) +{ + int rc = 0; + const struct inode *parent; + const struct inode *inode; + const struct cred *cred; + + if (!protected_sticky_symlinks) + return 0; + + /* if inode isn't a symlink, don't try to evaluate blocking it */ + inode = dentry->d_inode; + if (!S_ISLNK(inode->i_mode)) + return 0; + + /* owner and follower match? */ + cred = current_cred(); + if (cred->fsuid == inode->i_uid) + return 0; + + /* check parent directory mode and owner */ + spin_lock(&dentry->d_lock); + parent = dentry->d_parent->d_inode; + if ((parent->i_mode & (S_ISVTX|S_IWOTH)) == (S_ISVTX|S_IWOTH) && + parent->i_uid != inode->i_uid) { + rc = -EACCES; + } + spin_unlock(&dentry->d_lock); + + if (rc) { + char name[sizeof(current->comm)]; + printk_ratelimited(KERN_NOTICE "non-matching-uid symlink " + "following attempted in sticky world-writable " + "directory by %s (fsuid %d != %d)\n", + get_task_comm(name, current), + cred->fsuid, inode->i_uid); + } + + return rc; +} + +/** + * yama_path_link - verify that hardlinking is allowed + * @old_dentry: the source inode/dentry to hardlink from + * @new_dir: target directory + * @new_dentry: the target inode/dentry to hardlink to + * + * Block hardlink when all of: + * - fsuid does not match inode + * - not CAP_FOWNER + * - and at least one of: + * - inode is not a regular file + * - inode is setuid + * - inode is setgid and group-exec + * - access failure for read and write + * + * Returns 0 if successful, -ve on error. + */ +int yama_path_link(struct dentry *old_dentry, struct path *new_dir, + struct dentry *new_dentry) +{ + int rc = 0; + struct inode *inode = old_dentry->d_inode; + const int mode = inode->i_mode; + const struct cred *cred = current_cred(); + + if (!protected_nonaccess_hardlinks) + return 0; + + if (cred->fsuid != inode->i_uid && + (!S_ISREG(mode) || (mode & S_ISUID) || + ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) || + (generic_permission(inode, MAY_READ | MAY_WRITE, NULL))) && + !capable(CAP_FOWNER)) { + char name[sizeof(current->comm)]; + printk_ratelimited(KERN_INFO "non-accessible hardlink" + " creation was attempted by: %s (fsuid %d)\n", + get_task_comm(name, current), + cred->fsuid); + rc = -EPERM; + } + + return rc; +} + +static struct security_operations yama_ops = { + .name = "yama", + + .ptrace_access_check = yama_ptrace_access_check, + .inode_follow_link = yama_inode_follow_link, + .path_link = yama_path_link, + .task_prctl = yama_task_prctl, + .task_free = yama_task_free, +}; + +#ifdef CONFIG_SYSCTL +static int zero; +static int one = 1; + +struct ctl_path yama_sysctl_path[] = { + { .procname = "kernel", }, + { .procname = "yama", }, + { } +}; + +static struct ctl_table yama_sysctl_table[] = { + { + .procname = "protected_sticky_symlinks", + .data = &protected_sticky_symlinks, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &zero, + .extra2 = &one, + }, + { + .procname = "protected_nonaccess_hardlinks", + .data = &protected_nonaccess_hardlinks, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &zero, + .extra2 = &one, + }, + { + .procname = "ptrace_scope", + .data = &ptrace_scope, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &zero, + .extra2 = &one, + }, + { } +}; +#endif /* CONFIG_SYSCTL */ + +static __init int yama_init(void) +{ + printk(KERN_INFO "Yama: becoming mindful.\n"); + +#ifdef CONFIG_SYSCTL + if (!register_sysctl_paths(yama_sysctl_path, yama_sysctl_table)) + panic("Yama: sysctl registration failed.\n"); +#endif + + if (!security_module_enable(&yama_ops)) + return 0; + + if (register_security(&yama_ops)) + panic("Yama: kernel registration failed.\n"); + + return 0; +} + +security_initcall(yama_init); --- linux-2.6.35.orig/security/yama/Kconfig +++ linux-2.6.35/security/yama/Kconfig @@ -0,0 +1,13 @@ +config SECURITY_YAMA + bool "Yama NAC Support" + depends on SECURITY + select SECURITYFS + select SECURITY_PATH + default n + help + This selects Yama, the NAKed Access Control system which + provides additional global security settings above regular + Linux discretionary access controls. Currently available + are symlink, hardlink, and PTRACE scope restrictions. + + If you are unsure how to answer this question, answer N. --- linux-2.6.35.orig/security/yama/Makefile +++ linux-2.6.35/security/yama/Makefile @@ -0,0 +1,3 @@ +obj-$(CONFIG_SECURITY_YAMA) := yama.o + +yama-y := yama_lsm.o --- linux-2.6.35.orig/security/apparmor/policy_unpack.c +++ linux-2.6.35/security/apparmor/policy_unpack.c @@ -0,0 +1,748 @@ +/* + * AppArmor security module + * + * This file contains AppArmor functions for unpacking policy loaded from + * userspace. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * AppArmor uses a serialized binary format for loading policy. + * To find policy format documentation look in Documentation/apparmor.txt + * All policy is validated before it is used. + */ + +#include +#include +#include + +#include "include/apparmor.h" +#include "include/audit.h" +#include "include/context.h" +#include "include/match.h" +#include "include/policy.h" +#include "include/policy_unpack.h" +#include "include/sid.h" + +/* + * The AppArmor interface treats data as a type byte followed by the + * actual data. The interface has the notion of a a named entry + * which has a name (AA_NAME typecode followed by name string) followed by + * the entries typecode and data. Named types allow for optional + * elements and extensions to be added and tested for without breaking + * backwards compatibility. + */ + +enum aa_code { + AA_U8, + AA_U16, + AA_U32, + AA_U64, + AA_NAME, /* same as string except it is items name */ + AA_STRING, + AA_BLOB, + AA_STRUCT, + AA_STRUCTEND, + AA_LIST, + AA_LISTEND, + AA_ARRAY, + AA_ARRAYEND, +}; + +/* + * aa_ext is the read of the buffer containing the serialized profile. The + * data is copied into a kernel buffer in apparmorfs and then handed off to + * the unpack routines. + */ +struct aa_ext { + void *start; + void *end; + void *pos; /* pointer to current position in the buffer */ + u32 version; +}; + +/* audit callback for unpack fields */ +static void audit_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + if (sa->aad.iface.target) { + struct aa_profile *name = sa->aad.iface.target; + audit_log_format(ab, " name="); + audit_log_untrustedstring(ab, name->base.hname); + } + if (sa->aad.iface.pos) + audit_log_format(ab, " offset=%ld", sa->aad.iface.pos); +} + +/** + * audit_iface - do audit message for policy unpacking/load/replace/remove + * @new: profile if it has been allocated (MAYBE NULL) + * @name: name of the profile being manipulated (MAYBE NULL) + * @info: any extra info about the failure (MAYBE NULL) + * @e: buffer position info (NOT NULL) + * @error: error code + * + * Returns: %0 or error + */ +static int audit_iface(struct aa_profile *new, const char *name, + const char *info, struct aa_ext *e, int error) +{ + struct aa_profile *profile = __aa_current_profile(); + struct common_audit_data sa; + COMMON_AUDIT_DATA_INIT(&sa, NONE); + sa.aad.iface.pos = e->pos - e->start; + sa.aad.iface.target = new; + sa.aad.name = name; + sa.aad.info = info; + sa.aad.error = error; + + return aa_audit(AUDIT_APPARMOR_STATUS, profile, GFP_KERNEL, &sa, + audit_cb); +} + +/* test if read will be in packed data bounds */ +static bool inbounds(struct aa_ext *e, size_t size) +{ + return (size <= e->end - e->pos); +} + +/** + * aa_u16_chunck - test and do bounds checking for a u16 size based chunk + * @e: serialized data read head (NOT NULL) + * @chunk: start address for chunk of data (NOT NULL) + * + * Returns: the size of chunk found with the read head at the end of the chunk. + */ +static size_t unpack_u16_chunk(struct aa_ext *e, char **chunk) +{ + size_t size = 0; + + if (!inbounds(e, sizeof(u16))) + return 0; + size = le16_to_cpu(get_unaligned((u16 *) e->pos)); + e->pos += sizeof(u16); + if (!inbounds(e, size)) + return 0; + *chunk = e->pos; + e->pos += size; + return size; +} + +/* unpack control byte */ +static bool unpack_X(struct aa_ext *e, enum aa_code code) +{ + if (!inbounds(e, 1)) + return 0; + if (*(u8 *) e->pos != code) + return 0; + e->pos++; + return 1; +} + +/** + * unpack_nameX - check is the next element is of type X with a name of @name + * @e: serialized data extent information (NOT NULL) + * @code: type code + * @name: name to match to the serialized element. (MAYBE NULL) + * + * check that the next serialized data element is of type X and has a tag + * name @name. If @name is specified then there must be a matching + * name element in the stream. If @name is NULL any name element will be + * skipped and only the typecode will be tested. + * + * Returns 1 on success (both type code and name tests match) and the read + * head is advanced past the headers + * + * Returns: 0 if either match fails, the read head does not move + */ +static bool unpack_nameX(struct aa_ext *e, enum aa_code code, const char *name) +{ + /* + * May need to reset pos if name or type doesn't match + */ + void *pos = e->pos; + /* + * Check for presence of a tagname, and if present name size + * AA_NAME tag value is a u16. + */ + if (unpack_X(e, AA_NAME)) { + char *tag = NULL; + size_t size = unpack_u16_chunk(e, &tag); + /* if a name is specified it must match. otherwise skip tag */ + if (name && (!size || strcmp(name, tag))) + goto fail; + } else if (name) { + /* if a name is specified and there is no name tag fail */ + goto fail; + } + + /* now check if type code matches */ + if (unpack_X(e, code)) + return 1; + +fail: + e->pos = pos; + return 0; +} + +static bool unpack_u16(struct aa_ext *e, u16 *data, const char *name) +{ + if (unpack_nameX(e, AA_U16, name)) { + if (!inbounds(e, sizeof(u16))) + return 0; + if (data) + *data = le16_to_cpu(get_unaligned((u16 *) e->pos)); + e->pos += sizeof(u16); + return 1; + } + return 0; +} + +static bool unpack_u32(struct aa_ext *e, u32 *data, const char *name) +{ + if (unpack_nameX(e, AA_U32, name)) { + if (!inbounds(e, sizeof(u32))) + return 0; + if (data) + *data = le32_to_cpu(get_unaligned((u32 *) e->pos)); + e->pos += sizeof(u32); + return 1; + } + return 0; +} + +static bool unpack_u64(struct aa_ext *e, u64 *data, const char *name) +{ + if (unpack_nameX(e, AA_U64, name)) { + if (!inbounds(e, sizeof(u64))) + return 0; + if (data) + *data = le64_to_cpu(get_unaligned((u64 *) e->pos)); + e->pos += sizeof(u64); + return 1; + } + return 0; +} + +static size_t unpack_array(struct aa_ext *e, const char *name) +{ + if (unpack_nameX(e, AA_ARRAY, name)) { + int size; + if (!inbounds(e, sizeof(u16))) + return 0; + size = (int)le16_to_cpu(get_unaligned((u16 *) e->pos)); + e->pos += sizeof(u16); + return size; + } + return 0; +} + +static size_t unpack_blob(struct aa_ext *e, char **blob, const char *name) +{ + if (unpack_nameX(e, AA_BLOB, name)) { + u32 size; + if (!inbounds(e, sizeof(u32))) + return 0; + size = le32_to_cpu(get_unaligned((u32 *) e->pos)); + e->pos += sizeof(u32); + if (inbounds(e, (size_t) size)) { + *blob = e->pos; + e->pos += size; + return size; + } + } + return 0; +} + +static int unpack_str(struct aa_ext *e, const char **string, const char *name) +{ + char *src_str; + size_t size = 0; + void *pos = e->pos; + *string = NULL; + if (unpack_nameX(e, AA_STRING, name)) { + size = unpack_u16_chunk(e, &src_str); + if (size) { + /* strings are null terminated, length is size - 1 */ + if (src_str[size - 1] != 0) + goto fail; + *string = src_str; + } + } + return size; + +fail: + e->pos = pos; + return 0; +} + +static int unpack_strdup(struct aa_ext *e, char **string, const char *name) +{ + const char *tmp; + void *pos = e->pos; + int res = unpack_str(e, &tmp, name); + *string = NULL; + + if (!res) + return 0; + + *string = kmemdup(tmp, res, GFP_KERNEL); + if (!*string) { + e->pos = pos; + return 0; + } + + return res; +} + +/** + * verify_accept - verify the accept tables of a dfa + * @dfa: dfa to verify accept tables of (NOT NULL) + * @flags: flags governing dfa + * + * Returns: 1 if valid accept tables else 0 if error + */ +static bool verify_accept(struct aa_dfa *dfa, int flags) +{ + int i; + + /* verify accept permissions */ + for (i = 0; i < dfa->tables[YYTD_ID_ACCEPT]->td_lolen; i++) { + int mode = ACCEPT_TABLE(dfa)[i]; + + if (mode & ~DFA_VALID_PERM_MASK) + return 0; + + if (ACCEPT_TABLE2(dfa)[i] & ~DFA_VALID_PERM2_MASK) + return 0; + } + return 1; +} + +/** + * unpack_dfa - unpack a file rule dfa + * @e: serialized data extent information (NOT NULL) + * + * returns dfa or ERR_PTR or NULL if no dfa + */ +static struct aa_dfa *unpack_dfa(struct aa_ext *e) +{ + char *blob = NULL; + size_t size; + struct aa_dfa *dfa = NULL; + + size = unpack_blob(e, &blob, "aadfa"); + if (size) { + /* + * The dfa is aligned with in the blob to 8 bytes + * from the beginning of the stream. + */ + size_t sz = blob - (char *)e->start; + size_t pad = ALIGN(sz, 8) - sz; + int flags = TO_ACCEPT1_FLAG(YYTD_DATA32) | + TO_ACCEPT2_FLAG(YYTD_DATA32); + + + if (aa_g_paranoid_load) + flags |= DFA_FLAG_VERIFY_STATES; + + dfa = aa_dfa_unpack(blob + pad, size - pad, flags); + + if (IS_ERR(dfa)) + return dfa; + + if (!verify_accept(dfa, flags)) + goto fail; + } + + return dfa; + +fail: + aa_put_dfa(dfa); + return ERR_PTR(-EPROTO); +} + +/** + * unpack_trans_table - unpack a profile transition table + * @e: serialized data extent information (NOT NULL) + * @profile: profile to add the accept table to (NOT NULL) + * + * Returns: 1 if table succesfully unpacked + */ +static bool unpack_trans_table(struct aa_ext *e, struct aa_profile *profile) +{ + void *pos = e->pos; + + /* exec table is optional */ + if (unpack_nameX(e, AA_STRUCT, "xtable")) { + int i, size; + + size = unpack_array(e, NULL); + /* currently 4 exec bits and entries 0-3 are reserved iupcx */ + if (size > 16 - 4) + goto fail; + profile->file.trans.table = kzalloc(sizeof(char *) * size, + GFP_KERNEL); + if (!profile->file.trans.table) + goto fail; + + profile->file.trans.size = size; + for (i = 0; i < size; i++) { + char *str; + int c, j, size = unpack_strdup(e, &str, NULL); + /* unpack_strdup verifies that the last character is + * null termination byte. + */ + if (!size) + goto fail; + profile->file.trans.table[i] = str; + /* verify that name doesn't start with space */ + if (isspace(*str)) + goto fail; + + /* count internal # of internal \0 */ + for (c = j = 0; j < size - 2; j++) { + if (!str[j]) + c++; + } + if (*str == ':') { + /* beginning with : requires an embedded \0, + * verify that exactly 1 internal \0 exists + * trailing \0 already verified by unpack_strdup + */ + if (c != 1) + goto fail; + /* first character after : must be valid */ + if (!str[1]) + goto fail; + } else if (c) + /* fail - all other cases with embedded \0 */ + goto fail; + } + if (!unpack_nameX(e, AA_ARRAYEND, NULL)) + goto fail; + if (!unpack_nameX(e, AA_STRUCTEND, NULL)) + goto fail; + } + return 1; + +fail: + aa_free_domain_entries(&profile->file.trans); + e->pos = pos; + return 0; +} + +static bool unpack_rlimits(struct aa_ext *e, struct aa_profile *profile) +{ + void *pos = e->pos; + + /* rlimits are optional */ + if (unpack_nameX(e, AA_STRUCT, "rlimits")) { + int i, size; + u32 tmp = 0; + if (!unpack_u32(e, &tmp, NULL)) + goto fail; + profile->rlimits.mask = tmp; + + size = unpack_array(e, NULL); + if (size > RLIM_NLIMITS) + goto fail; + for (i = 0; i < size; i++) { + u64 tmp = 0; + int a = aa_map_resource(i); + if (!unpack_u64(e, &tmp, NULL)) + goto fail; + profile->rlimits.limits[a].rlim_max = tmp; + } + if (!unpack_nameX(e, AA_ARRAYEND, NULL)) + goto fail; + if (!unpack_nameX(e, AA_STRUCTEND, NULL)) + goto fail; + } + return 1; + +fail: + e->pos = pos; + return 0; +} + +/** + * unpack_profile - unpack a serialized profile + * @e: serialized data extent information (NOT NULL) + * + * NOTE: unpack profile sets audit struct if there is a failure + */ +static struct aa_profile *unpack_profile(struct aa_ext *e) +{ + struct aa_profile *profile = NULL; + const char *name = NULL; + size_t size = 0; + int i, error = -EPROTO; + kernel_cap_t tmpcap; + u32 tmp; + + /* check that we have the right struct being passed */ + if (!unpack_nameX(e, AA_STRUCT, "profile")) + goto fail; + if (!unpack_str(e, &name, NULL)) + goto fail; + + profile = aa_alloc_profile(name); + if (!profile) + return ERR_PTR(-ENOMEM); + + /* profile renaming is optional */ + (void) unpack_str(e, &profile->rename, "rename"); + + /* xmatch is optional and may be NULL */ + profile->xmatch = unpack_dfa(e); + if (IS_ERR(profile->xmatch)) { + error = PTR_ERR(profile->xmatch); + profile->xmatch = NULL; + goto fail; + } + /* xmatch_len is not optional if xmatch is set */ + if (profile->xmatch) { + if (!unpack_u32(e, &tmp, NULL)) + goto fail; + profile->xmatch_len = tmp; + } + + /* per profile debug flags (complain, audit) */ + if (!unpack_nameX(e, AA_STRUCT, "flags")) + goto fail; + if (!unpack_u32(e, &tmp, NULL)) + goto fail; + if (tmp) + profile->flags |= PFLAG_HAT; + if (!unpack_u32(e, &tmp, NULL)) + goto fail; + if (tmp) + profile->mode = APPARMOR_COMPLAIN; + if (!unpack_u32(e, &tmp, NULL)) + goto fail; + if (tmp) + profile->audit = AUDIT_ALL; + + if (!unpack_nameX(e, AA_STRUCTEND, NULL)) + goto fail; + + /* path_flags is optional */ + if (unpack_u32(e, &profile->path_flags, "path_flags")) + profile->path_flags |= profile->flags & PFLAG_MEDIATE_DELETED; + else + /* set a default value if path_flags field is not present */ + profile->path_flags = PFLAG_MEDIATE_DELETED; + + if (!unpack_u32(e, &(profile->caps.allow.cap[0]), NULL)) + goto fail; + if (!unpack_u32(e, &(profile->caps.audit.cap[0]), NULL)) + goto fail; + if (!unpack_u32(e, &(profile->caps.quiet.cap[0]), NULL)) + goto fail; + if (!unpack_u32(e, &tmpcap.cap[0], NULL)) + goto fail; + + if (unpack_nameX(e, AA_STRUCT, "caps64")) { + /* optional upper half of 64 bit caps */ + if (!unpack_u32(e, &(profile->caps.allow.cap[1]), NULL)) + goto fail; + if (!unpack_u32(e, &(profile->caps.audit.cap[1]), NULL)) + goto fail; + if (!unpack_u32(e, &(profile->caps.quiet.cap[1]), NULL)) + goto fail; + if (!unpack_u32(e, &(tmpcap.cap[1]), NULL)) + goto fail; + if (!unpack_nameX(e, AA_STRUCTEND, NULL)) + goto fail; + } + + if (unpack_nameX(e, AA_STRUCT, "capsx")) { + /* optional extended caps mediation mask */ + if (!unpack_u32(e, &(profile->caps.extended.cap[0]), NULL)) + goto fail; + if (!unpack_u32(e, &(profile->caps.extended.cap[1]), NULL)) + goto fail; + } + + if (!unpack_rlimits(e, profile)) + goto fail; + + size = unpack_array(e, "net_allowed_af"); + if (size) { + for (i = 0; i < size; i++) { + /* discard extraneous rules that this kernel will + * never request + */ + if (size > AF_MAX) { + u16 tmp; + if (!unpack_u16(e, &tmp, NULL) || + !unpack_u16(e, &tmp, NULL) || + !unpack_u16(e, &tmp, NULL)) + goto fail; + continue; + } + if (!unpack_u16(e, &profile->net.allow[i], NULL)) + goto fail; + if (!unpack_u16(e, &profile->net.audit[i], NULL)) + goto fail; + if (!unpack_u16(e, &profile->net.quiet[i], NULL)) + goto fail; + } + if (!unpack_nameX(e, AA_ARRAYEND, NULL)) + goto fail; + /* + * allow unix domain and netlink sockets they are handled + * by IPC + */ + } + profile->net.allow[AF_UNIX] = 0xffff; + profile->net.allow[AF_NETLINK] = 0xffff; + + /* get file rules */ + profile->file.dfa = unpack_dfa(e); + if (IS_ERR(profile->file.dfa)) { + error = PTR_ERR(profile->file.dfa); + profile->file.dfa = NULL; + goto fail; + } + + if (!unpack_u32(e, &profile->file.start, "dfa_start")) + /* default start state */ + profile->file.start = DFA_START; + + if (!unpack_trans_table(e, profile)) + goto fail; + + if (!unpack_nameX(e, AA_STRUCTEND, NULL)) + goto fail; + + return profile; + +fail: + if (profile) + name = NULL; + else if (!name) + name = "unknown"; + audit_iface(profile, name, "failed to unpack profile", e, error); + aa_put_profile(profile); + + return ERR_PTR(error); +} + +/** + * verify_head - unpack serialized stream header + * @e: serialized data read head (NOT NULL) + * @ns: Returns - namespace if one is specified else NULL (NOT NULL) + * + * Returns: error or 0 if header is good + */ +static int verify_header(struct aa_ext *e, const char **ns) +{ + int error = -EPROTONOSUPPORT; + /* get the interface version */ + if (!unpack_u32(e, &e->version, "version")) { + audit_iface(NULL, NULL, "invalid profile format", e, error); + return error; + } + + /* check that the interface version is currently supported */ + if (e->version != 5) { + audit_iface(NULL, NULL, "unsupported interface version", e, + error); + return error; + } + + /* read the namespace if present */ + if (!unpack_str(e, ns, "namespace")) + *ns = NULL; + + return 0; +} + +static bool verify_xindex(int xindex, int table_size) +{ + int index, xtype; + xtype = xindex & AA_X_TYPE_MASK; + index = xindex & AA_X_INDEX_MASK; + if (xtype == AA_X_TABLE && index > table_size) + return 0; + return 1; +} + +/* verify dfa xindexes are in range of transition tables */ +static bool verify_dfa_xindex(struct aa_dfa *dfa, int table_size) +{ + int i; + for (i = 0; i < dfa->tables[YYTD_ID_ACCEPT]->td_lolen; i++) { + if (!verify_xindex(dfa_user_xindex(dfa, i), table_size)) + return 0; + if (!verify_xindex(dfa_other_xindex(dfa, i), table_size)) + return 0; + } + return 1; +} + +/** + * verify_profile - Do post unpack analysis to verify profile consistency + * @profile: profile to verify (NOT NULL) + * + * Returns: 0 if passes verification else error + */ +static int verify_profile(struct aa_profile *profile) +{ + if (aa_g_paranoid_load) { + if (profile->file.dfa && + !verify_dfa_xindex(profile->file.dfa, + profile->file.trans.size)) { + audit_iface(profile, NULL, "Invalid named transition", + NULL, -EPROTO); + return -EPROTO; + } + } + + return 0; +} + +/** + * aa_unpack - unpack packed binary profile data loaded from user space + * @udata: user data copied to kmem (NOT NULL) + * @size: the size of the user data + * @ns: Returns namespace profile is in if specified else NULL (NOT NULL) + * + * Unpack user data and return refcounted allocated profile or ERR_PTR + * + * Returns: profile else error pointer if fails to unpack + */ +struct aa_profile *aa_unpack(void *udata, size_t size, const char **ns) +{ + struct aa_profile *profile = NULL; + int error; + struct aa_ext e = { + .start = udata, + .end = udata + size, + .pos = udata, + }; + + error = verify_header(&e, ns); + if (error) + return ERR_PTR(error); + + profile = unpack_profile(&e); + if (IS_ERR(profile)) + return profile; + + error = verify_profile(profile); + if (error) { + aa_put_profile(profile); + profile = ERR_PTR(error); + } + + /* return refcount */ + return profile; +} --- linux-2.6.35.orig/security/apparmor/path.c +++ linux-2.6.35/security/apparmor/path.c @@ -0,0 +1,235 @@ +/* + * AppArmor security module + * + * This file contains AppArmor function for pathnames + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "include/apparmor.h" +#include "include/path.h" +#include "include/policy.h" + + +/* modified from dcache.c */ +static int prepend(char **buffer, int buflen, const char *str, int namelen) +{ + buflen -= namelen; + if (buflen < 0) + return -ENAMETOOLONG; + *buffer -= namelen; + memcpy(*buffer, str, namelen); + return 0; +} + +#define CHROOT_NSCONNECT (PATH_CHROOT_REL | PATH_CHROOT_NSCONNECT) + +/** + * d_namespace_path - lookup a name associated with a given path + * @path: path to lookup (NOT NULL) + * @buf: buffer to store path to (NOT NULL) + * @buflen: length of @buf + * @name: Returns - pointer for start of path name with in @buf (NOT NULL) + * @flags: flags controlling path lookup + * + * Handle path name lookup. + * + * Returns: %0 else error code if path lookup fails + * When no error the path name is returned in @name which points to + * to a position in @buf + */ +static int d_namespace_path(struct path *path, char *buf, int buflen, + char **name, int flags) +{ + struct path root, tmp; + char *res; + int deleted, connected; + int error = 0; + + /* Get the root we want to resolve too */ + if (flags & PATH_CHROOT_REL) { + /* resolve paths relative to chroot */ + read_lock(¤t->fs->lock); + root = current->fs->root; + /* released below */ + path_get(&root); + read_unlock(¤t->fs->lock); + } else { + /* resolve paths relative to namespace */ + root.mnt = current->nsproxy->mnt_ns->root; + root.dentry = root.mnt->mnt_root; + /* released below */ + path_get(&root); + } + + spin_lock(&dcache_lock); + /* There is a race window between path lookup here and the + * need to strip the " (deleted) string that __d_path applies + * Detect the race and relookup the path + * + * The stripping of (deleted) is a hack that could be removed + * with an updated __d_path + */ + do { + tmp = root; + deleted = d_unlinked(path->dentry); + res = __d_path(path, &tmp, buf, buflen); + + } while (deleted != d_unlinked(path->dentry)); + spin_unlock(&dcache_lock); + + *name = res; + /* handle error conditions - and still allow a partial path to + * be returned. + */ + if (IS_ERR(res)) { + error = PTR_ERR(res); + *name = buf; + goto out; + } + if (deleted) { + /* On some filesystems, newly allocated dentries appear to the + * security_path hooks as a deleted dentry except without an + * inode allocated. + * + * Remove the appended deleted text and return as string for + * normal mediation, or auditing. The (deleted) string is + * guaranteed to be added in this case, so just strip it. + */ + buf[buflen - 11] = 0; /* - (len(" (deleted)") +\0) */ + + if (path->dentry->d_inode && !(flags & PATH_MEDIATE_DELETED)) { + error = -ENOENT; + goto out; + } + } + + /* Determine if the path is connected to the expected root */ + connected = tmp.dentry == root.dentry && tmp.mnt == root.mnt; + + /* If the path is not connected, + * check if it is a sysctl and handle specially else remove any + * leading / that __d_path may have returned. + * Unless + * specifically directed to connect the path, + * OR + * if in a chroot and doing chroot relative paths and the path + * resolves to the namespace root (would be connected outside + * of chroot) and specifically directed to connect paths to + * namespace root. + */ + if (!connected) { + /* is the disconnect path a sysctl? */ + if (tmp.dentry->d_sb->s_magic == PROC_SUPER_MAGIC && + strncmp(*name, "/sys/", 5) == 0) { + /* TODO: convert over to using a per namespace + * control instead of hard coded /proc + */ + error = prepend(name, *name - buf, "/proc", 5); + } else if (!(flags & PATH_CONNECT_PATH) && + !(((flags & CHROOT_NSCONNECT) == CHROOT_NSCONNECT) && + (tmp.mnt == current->nsproxy->mnt_ns->root && + tmp.dentry == tmp.mnt->mnt_root))) { + /* disconnected path, don't return pathname starting + * with '/' + */ + error = -ESTALE; + if (*res == '/') + *name = res + 1; + } + } + +out: + path_put(&root); + + return error; +} + +/** + * get_name_to_buffer - get the pathname to a buffer ensure dir / is appended + * @path: path to get name for (NOT NULL) + * @flags: flags controlling path lookup + * @buffer: buffer to put name in (NOT NULL) + * @size: size of buffer + * @name: Returns - contains position of path name in @buffer (NOT NULL) + * + * Returns: %0 else error on failure + */ +static int get_name_to_buffer(struct path *path, int flags, char *buffer, + int size, char **name) +{ + int adjust = (flags & PATH_IS_DIR) ? 1 : 0; + int error = d_namespace_path(path, buffer, size - adjust, name, flags); + + if (!error && (flags & PATH_IS_DIR) && (*name)[1] != '\0') + /* + * Append "/" to the pathname. The root directory is a special + * case; it already ends in slash. + */ + strcpy(&buffer[size - 2], "/"); + + return error; +} + +/** + * aa_get_name - compute the pathname of a file + * @path: path the file (NOT NULL) + * @flags: flags controlling path name generation + * @buffer: buffer that aa_get_name() allocated (NOT NULL) + * @name: Returns - the generated path name if !error (NOT NULL) + * + * @name is a pointer to the beginning of the pathname (which usually differs + * from the beginning of the buffer), or NULL. If there is an error @name + * may contain a partial or invalid name that can be used for audit purposes, + * but it can not be used for mediation. + * + * We need PATH_IS_DIR to indicate whether the file is a directory or not + * because the file may not yet exist, and so we cannot check the inode's + * file type. + * + * Returns: %0 else error code if could retrieve name + */ +int aa_get_name(struct path *path, int flags, char **buffer, const char **name) +{ + char *buf, *str = NULL; + int size = 256; + int error; + + *name = NULL; + *buffer = NULL; + for (;;) { + /* freed by caller */ + buf = kmalloc(size, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + error = get_name_to_buffer(path, flags, buf, size, &str); + if (error != -ENAMETOOLONG) + break; + + kfree(buf); + size <<= 1; + if (size > aa_g_path_max) + return -ENAMETOOLONG; + } + *buffer = buf; + *name = str; + + return error; +} --- linux-2.6.35.orig/security/apparmor/sid.c +++ linux-2.6.35/security/apparmor/sid.c @@ -0,0 +1,55 @@ +/* + * AppArmor security module + * + * This file contains AppArmor security identifier (sid) manipulation fns + * + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * + * AppArmor allocates a unique sid for every profile loaded. If a profile + * is replaced it receives the sid of the profile it is replacing. + * + * The sid value of 0 is invalid. + */ + +#include +#include +#include + +#include "include/sid.h" + +/* global counter from which sids are allocated */ +static u32 global_sid; +static DEFINE_SPINLOCK(sid_lock); + +/* TODO FIXME: add sid to profile mapping, and sid recycling */ + +/** + * aa_alloc_sid - allocate a new sid for a profile + */ +u32 aa_alloc_sid(void) +{ + u32 sid; + + /* + * TODO FIXME: sid recycling - part of profile mapping table + */ + spin_lock(&sid_lock); + sid = (++global_sid); + spin_unlock(&sid_lock); + return sid; +} + +/** + * aa_free_sid - free a sid + * @sid: sid to free + */ +void aa_free_sid(u32 sid) +{ + ; /* NOP ATM */ +} --- linux-2.6.35.orig/security/apparmor/procattr.c +++ linux-2.6.35/security/apparmor/procattr.c @@ -0,0 +1,170 @@ +/* + * AppArmor security module + * + * This file contains AppArmor /proc//attr/ interface functions + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include "include/apparmor.h" +#include "include/context.h" +#include "include/policy.h" +#include "include/domain.h" + + +/** + * aa_getprocattr - Return the profile information for @profile + * @profile: the profile to print profile info about (NOT NULL) + * @string: Returns - string containing the profile info (NOT NULL) + * + * Returns: length of @string on success else error on failure + * + * Requires: profile != NULL + * + * Creates a string containing the namespace_name://profile_name for + * @profile. + * + * Returns: size of string placed in @string else error code on failure + */ +int aa_getprocattr(struct aa_profile *profile, char **string) +{ + char *str; + int len = 0, mode_len = 0, ns_len = 0, name_len; + const char *mode_str = profile_mode_names[profile->mode]; + const char *ns_name = NULL; + struct aa_namespace *ns = profile->ns; + struct aa_namespace *current_ns = __aa_current_profile()->ns; + char *s; + + if (!aa_ns_visible(current_ns, ns)) + return -EACCES; + + ns_name = aa_ns_name(current_ns, ns); + ns_len = strlen(ns_name); + + /* if the visible ns_name is > 0 increase size for : :// seperator */ + if (ns_len) + ns_len += 4; + + /* unconfined profiles don't have a mode string appended */ + if (!unconfined(profile)) + mode_len = strlen(mode_str) + 3; /* + 3 for _() */ + + name_len = strlen(profile->base.hname); + len = mode_len + ns_len + name_len + 1; /* + 1 for \n */ + s = str = kmalloc(len + 1, GFP_KERNEL); /* + 1 \0 */ + if (!str) + return -ENOMEM; + + if (ns_len) { + /* skip over prefix current_ns->base.hname and separating // */ + sprintf(s, ":%s://", ns_name); + s += ns_len; + } + if (unconfined(profile)) + /* mode string not being appended */ + sprintf(s, "%s\n", profile->base.hname); + else + sprintf(s, "%s (%s)\n", profile->base.hname, mode_str); + *string = str; + + /* NOTE: len does not include \0 of string, not saved as part of file */ + return len; +} + +/** + * split_token_from_name - separate a string of form ^ + * @op: operation being checked + * @args: string to parse (NOT NULL) + * @token: stores returned parsed token value (NOT NULL) + * + * Returns: start position of name after token else NULL on failure + */ +static char *split_token_from_name(int op, char *args, u64 * token) +{ + char *name; + + *token = simple_strtoull(args, &name, 16); + if ((name == args) || *name != '^') { + AA_ERROR("%s: Invalid input '%s'", op_table[op], args); + return ERR_PTR(-EINVAL); + } + + name++; /* skip ^ */ + if (!*name) + name = NULL; + return name; +} + +/** + * aa_setprocattr_chagnehat - handle procattr interface to change_hat + * @args: args received from writing to /proc//attr/current (NOT NULL) + * @size: size of the args + * @test: true if this is a test of change_hat permissions + * + * Returns: %0 or error code if change_hat fails + */ +int aa_setprocattr_changehat(char *args, size_t size, int test) +{ + char *hat; + u64 token; + const char *hats[16]; /* current hard limit on # of names */ + int count = 0; + + hat = split_token_from_name(OP_CHANGE_HAT, args, &token); + if (IS_ERR(hat)) + return PTR_ERR(hat); + + if (!hat && !token) { + AA_ERROR("change_hat: Invalid input, NULL hat and NULL magic"); + return -EINVAL; + } + + if (hat) { + /* set up hat name vector, args guaranteed null terminated + * at args[size] by setprocattr. + * + * If there are multiple hat names in the buffer each is + * separated by a \0. Ie. userspace writes them pre tokenized + */ + char *end = args + size; + for (count = 0; (hat < end) && count < 16; ++count) { + char *next = hat + strlen(hat) + 1; + hats[count] = hat; + hat = next; + } + } + + AA_DEBUG("%s: Magic 0x%llx Hat '%s'\n", + __func__, token, hat ? hat : NULL); + + return aa_change_hat(hats, count, token, test); +} + +/** + * aa_setprocattr_changeprofile - handle procattr interface to changeprofile + * @fqname: args received from writting to /proc//attr/current (NOT NULL) + * @onexec: true if change_profile should be delayed until exec + * @test: true if this is a test of change_profile permissions + * + * Returns: %0 or error code if change_profile fails + */ +int aa_setprocattr_changeprofile(char *fqname, bool onexec, int test) +{ + char *name, *ns_name; + + name = aa_split_fqname(fqname, &ns_name); + return aa_change_profile(ns_name, name, onexec, test); +} + +int aa_setprocattr_permipc(char *fqname) +{ + /* TODO: add ipc permission querying */ + return -ENOTSUPP; +} --- linux-2.6.35.orig/security/apparmor/lib.c +++ linux-2.6.35/security/apparmor/lib.c @@ -0,0 +1,133 @@ +/* + * AppArmor security module + * + * This file contains basic common functions used in AppArmor + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include +#include + +#include "include/audit.h" + + +/** + * aa_split_fqname - split a fqname into a profile and namespace name + * @fqname: a full qualified name in namespace profile format (NOT NULL) + * @ns_name: pointer to portion of the string containing the ns name (NOT NULL) + * + * Returns: profile name or NULL if one is not specified + * + * Split a namespace name from a profile name (see policy.c for naming + * description). If a portion of the name is missing it returns NULL for + * that portion. + * + * NOTE: may modify the @fqname string. The pointers returned point + * into the @fqname string. + */ +char *aa_split_fqname(char *fqname, char **ns_name) +{ + char *name = strim(fqname); + + *ns_name = NULL; + if (name[0] == ':') { + char *split = strchr(&name[1], ':'); + *ns_name = skip_spaces(&name[1]); + if (split) { + /* overwrite ':' with \0 */ + *split = 0; + name = skip_spaces(split + 1); + } else + /* a ns name without a following profile is allowed */ + name = NULL; + } + if (name && *name == 0) + name = NULL; + + return name; +} + +/** + * aa_info_message - log a none profile related status message + * @str: message to log + */ +void aa_info_message(const char *str) +{ + if (audit_enabled) { + struct common_audit_data sa; + COMMON_AUDIT_DATA_INIT(&sa, NONE); + sa.aad.info = str; + aa_audit_msg(AUDIT_APPARMOR_STATUS, &sa, NULL); + } + printk(KERN_INFO "AppArmor: %s\n", str); +} + +/** + * kvmalloc - do allocation preferring kmalloc but falling back to vmalloc + * @size: size of allocation + * + * Return: allocated buffer or NULL if failed + * + * It is possible that policy being loaded from the user is larger than + * what can be allocated by kmalloc, in those cases fall back to vmalloc. + */ +void *kvmalloc(size_t size) +{ + void *buffer = NULL; + + if (size == 0) + return NULL; + + /* do not attempt kmalloc if we need more than 16 pages at once */ + if (size <= (16*PAGE_SIZE)) + buffer = kmalloc(size, GFP_NOIO | __GFP_NOWARN); + if (!buffer) { + /* see kvfree for why size must be at least work_struct size + * when allocated via vmalloc + */ + if (size < sizeof(struct work_struct)) + size = sizeof(struct work_struct); + buffer = vmalloc(size); + } + return buffer; +} + +/** + * do_vfree - workqueue routine for freeing vmalloced memory + * @work: data to be freed + * + * The work_struct is overlaid to the data being freed, as at the point + * the work is scheduled the data is no longer valid, be its freeing + * needs to be delayed until safe. + */ +static void do_vfree(struct work_struct *work) +{ + vfree(work); +} + +/** + * kvfree - free an allocation do by kvmalloc + * @buffer: buffer to free (MAYBE_NULL) + * + * Free a buffer allocated by kvmalloc + */ +void kvfree(void *buffer) +{ + if (is_vmalloc_addr(buffer)) { + /* Data is no longer valid so just use the allocated space + * as the work_struct + */ + struct work_struct *work = (struct work_struct *) buffer; + INIT_WORK(work, do_vfree); + schedule_work(work); + } else + kfree(buffer); +} --- linux-2.6.35.orig/security/apparmor/match.c +++ linux-2.6.35/security/apparmor/match.c @@ -0,0 +1,370 @@ +/* + * AppArmor security module + * + * This file contains AppArmor dfa based regular expression matching engine + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "include/apparmor.h" +#include "include/match.h" + +/** + * unpack_table - unpack a dfa table (one of accept, default, base, next check) + * @blob: data to unpack (NOT NULL) + * @bsize: size of blob + * + * Returns: pointer to table else NULL on failure + * + * NOTE: must be freed by kvfree (not kmalloc) + */ +static struct table_header *unpack_table(char *blob, size_t bsize) +{ + struct table_header *table = NULL; + struct table_header th; + size_t tsize; + + if (bsize < sizeof(struct table_header)) + goto out; + + /* loaded td_id's start at 1, subtract 1 now to avoid doing + * it every time we use td_id as an index + */ + th.td_id = be16_to_cpu(*(u16 *) (blob)) - 1; + th.td_flags = be16_to_cpu(*(u16 *) (blob + 2)); + th.td_lolen = be32_to_cpu(*(u32 *) (blob + 8)); + blob += sizeof(struct table_header); + + if (!(th.td_flags == YYTD_DATA16 || th.td_flags == YYTD_DATA32 || + th.td_flags == YYTD_DATA8)) + goto out; + + tsize = table_size(th.td_lolen, th.td_flags); + if (bsize < tsize) + goto out; + + /* Pad table allocation for next/check by 256 entries to remain + * backwards compatible with old (buggy) tools and remain safe without + * run time checks + */ + if (th.td_id == YYTD_ID_NXT || th.td_id == YYTD_ID_CHK) + tsize += 256 * th.td_flags; + + table = kvmalloc(tsize); + if (table) { + /* ensure the pad is clear, else there will be errors */ + memset(table, 0, tsize); + *table = th; + if (th.td_flags == YYTD_DATA8) + UNPACK_ARRAY(table->td_data, blob, th.td_lolen, + u8, byte_to_byte); + else if (th.td_flags == YYTD_DATA16) + UNPACK_ARRAY(table->td_data, blob, th.td_lolen, + u16, be16_to_cpu); + else if (th.td_flags == YYTD_DATA32) + UNPACK_ARRAY(table->td_data, blob, th.td_lolen, + u32, be32_to_cpu); + else + goto fail; + } + +out: + /* if table was vmalloced make sure the page tables are synced + * before it is used, as it goes live to all cpus. + */ + if (is_vmalloc_addr(table)) + vm_unmap_aliases(); + return table; +fail: + kvfree(table); + return NULL; +} + +/** + * verify_dfa - verify that transitions and states in the tables are in bounds. + * @dfa: dfa to test (NOT NULL) + * @flags: flags controlling what type of accept table are acceptable + * + * Assumes dfa has gone through the first pass verification done by unpacking + * NOTE: this does not valid accept table values + * + * Returns: %0 else error code on failure to verify + */ +static int verify_dfa(struct aa_dfa *dfa, int flags) +{ + size_t i, state_count, trans_count; + int error = -EPROTO; + + /* check that required tables exist */ + if (!(dfa->tables[YYTD_ID_DEF] && + dfa->tables[YYTD_ID_BASE] && + dfa->tables[YYTD_ID_NXT] && dfa->tables[YYTD_ID_CHK])) + goto out; + + /* accept.size == default.size == base.size */ + state_count = dfa->tables[YYTD_ID_BASE]->td_lolen; + if (ACCEPT1_FLAGS(flags)) { + if (!dfa->tables[YYTD_ID_ACCEPT]) + goto out; + if (state_count != dfa->tables[YYTD_ID_ACCEPT]->td_lolen) + goto out; + } + if (ACCEPT2_FLAGS(flags)) { + if (!dfa->tables[YYTD_ID_ACCEPT2]) + goto out; + if (state_count != dfa->tables[YYTD_ID_ACCEPT2]->td_lolen) + goto out; + } + if (state_count != dfa->tables[YYTD_ID_DEF]->td_lolen) + goto out; + + /* next.size == chk.size */ + trans_count = dfa->tables[YYTD_ID_NXT]->td_lolen; + if (trans_count != dfa->tables[YYTD_ID_CHK]->td_lolen) + goto out; + + /* if equivalence classes then its table size must be 256 */ + if (dfa->tables[YYTD_ID_EC] && + dfa->tables[YYTD_ID_EC]->td_lolen != 256) + goto out; + + if (flags & DFA_FLAG_VERIFY_STATES) { + int warning = 0; + for (i = 0; i < state_count; i++) { + if (DEFAULT_TABLE(dfa)[i] >= state_count) + goto out; + /* TODO: do check that DEF state recursion terminates */ + if (BASE_TABLE(dfa)[i] + 255 >= trans_count) { + if (warning) + continue; + printk(KERN_WARNING "AppArmor DFA next/check " + "upper bounds error fixed, upgrade " + "user space tools \n"); + warning = 1; + } else if (BASE_TABLE(dfa)[i] >= trans_count) { + printk(KERN_ERR "AppArmor DFA next/check upper " + "bounds error\n"); + goto out; + } + } + + for (i = 0; i < trans_count; i++) { + if (NEXT_TABLE(dfa)[i] >= state_count) + goto out; + if (CHECK_TABLE(dfa)[i] >= state_count) + goto out; + } + } + + error = 0; +out: + return error; +} + +/** + * dfa_free - free a dfa allocated by aa_dfa_unpack + * @dfa: the dfa to free (MAYBE NULL) + * + * Requires: reference count to dfa == 0 + */ +static void dfa_free(struct aa_dfa *dfa) +{ + if (dfa) { + int i; + + for (i = 0; i < ARRAY_SIZE(dfa->tables); i++) { + kvfree(dfa->tables[i]); + dfa->tables[i] = NULL; + } + kfree(dfa); + } +} + +/** + * aa_dfa_free_kref - free aa_dfa by kref (called by aa_put_dfa) + * @kr: kref callback for freeing of a dfa (NOT NULL) + */ +void aa_dfa_free_kref(struct kref *kref) +{ + struct aa_dfa *dfa = container_of(kref, struct aa_dfa, count); + dfa_free(dfa); +} + +/** + * aa_dfa_unpack - unpack the binary tables of a serialized dfa + * @blob: aligned serialized stream of data to unpack (NOT NULL) + * @size: size of data to unpack + * @flags: flags controlling what type of accept tables are acceptable + * + * Unpack a dfa that has been serialized. To find information on the dfa + * format look in Documentation/apparmor.txt + * Assumes the dfa @blob stream has been aligned on a 8 byte boundry + * + * Returns: an unpacked dfa ready for matching or ERR_PTR on failure + */ +struct aa_dfa *aa_dfa_unpack(void *blob, size_t size, int flags) +{ + int hsize; + int error = -ENOMEM; + char *data = blob; + struct table_header *table = NULL; + struct aa_dfa *dfa = kzalloc(sizeof(struct aa_dfa), GFP_KERNEL); + if (!dfa) + goto fail; + + kref_init(&dfa->count); + + error = -EPROTO; + + /* get dfa table set header */ + if (size < sizeof(struct table_set_header)) + goto fail; + + if (ntohl(*(u32 *) data) != YYTH_MAGIC) + goto fail; + + hsize = ntohl(*(u32 *) (data + 4)); + if (size < hsize) + goto fail; + + dfa->flags = ntohs(*(u16 *) (data + 12)); + data += hsize; + size -= hsize; + + while (size > 0) { + table = unpack_table(data, size); + if (!table) + goto fail; + + switch (table->td_id) { + case YYTD_ID_ACCEPT: + if (!(table->td_flags & ACCEPT1_FLAGS(flags))) + goto fail; + break; + case YYTD_ID_ACCEPT2: + if (!(table->td_flags & ACCEPT2_FLAGS(flags))) + goto fail; + break; + case YYTD_ID_BASE: + if (table->td_flags != YYTD_DATA32) + goto fail; + break; + case YYTD_ID_DEF: + case YYTD_ID_NXT: + case YYTD_ID_CHK: + if (table->td_flags != YYTD_DATA16) + goto fail; + break; + case YYTD_ID_EC: + if (table->td_flags != YYTD_DATA8) + goto fail; + break; + default: + goto fail; + } + /* check for duplicate table entry */ + if (dfa->tables[table->td_id]) + goto fail; + dfa->tables[table->td_id] = table; + data += table_size(table->td_lolen, table->td_flags); + size -= table_size(table->td_lolen, table->td_flags); + table = NULL; + } + + error = verify_dfa(dfa, flags); + if (error) + goto fail; + + return dfa; + +fail: + kvfree(table); + dfa_free(dfa); + return ERR_PTR(error); +} + +/** + * aa_dfa_match_len - traverse @dfa to find state @str stops at + * @dfa: the dfa to match @str against (NOT NULL) + * @start: the state of the dfa to start matching in + * @str: the string of bytes to match against the dfa (NOT NULL) + * @len: length of the string of bytes to match + * + * aa_dfa_match_len will match @str against the dfa and return the state it + * finished matching in. The final state can be used to look up the accepting + * label, or as the start state of a continuing match. + * + * This function will happily match again the 0 byte and only finishes + * when @len input is consumed. + * + * Returns: final state reached after input is consumed + */ +unsigned int aa_dfa_match_len(struct aa_dfa *dfa, unsigned int start, + const char *str, int len) +{ + u16 *def = DEFAULT_TABLE(dfa); + u32 *base = BASE_TABLE(dfa); + u16 *next = NEXT_TABLE(dfa); + u16 *check = CHECK_TABLE(dfa); + unsigned int state = start, pos; + + if (state == 0) + return 0; + + /* current state is , matching character *str */ + if (dfa->tables[YYTD_ID_EC]) { + /* Equivalence class table defined */ + u8 *equiv = EQUIV_TABLE(dfa); + /* default is direct to next state */ + for (; len; len--) { + pos = base[state] + equiv[(u8) *str++]; + if (check[pos] == state) + state = next[pos]; + else + state = def[state]; + } + } else { + /* default is direct to next state */ + for (; len; len--) { + pos = base[state] + (u8) *str++; + if (check[pos] == state) + state = next[pos]; + else + state = def[state]; + } + } + + return state; +} + +/** + * aa_dfa_next_state - traverse @dfa to find state @str stops at + * @dfa: the dfa to match @str against (NOT NULL) + * @start: the state of the dfa to start matching in + * @str: the null terminated string of bytes to match against the dfa (NOT NULL) + * + * aa_dfa_next_state will match @str against the dfa and return the state it + * finished matching in. The final state can be used to look up the accepting + * label, or as the start state of a continuing match. + * + * Returns: final state reached after input is consumed + */ +unsigned int aa_dfa_match(struct aa_dfa *dfa, unsigned int start, + const char *str) +{ + return aa_dfa_match_len(dfa, start, str, strlen(str)); +} --- linux-2.6.35.orig/security/apparmor/resource.c +++ linux-2.6.35/security/apparmor/resource.c @@ -0,0 +1,134 @@ +/* + * AppArmor security module + * + * This file contains AppArmor resource mediation and attachment + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include + +#include "include/audit.h" +#include "include/resource.h" +#include "include/policy.h" + +/* + * Table of rlimit names: we generate it from resource.h. + */ +#include "rlim_names.h" + +/* audit callback for resource specific fields */ +static void audit_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + + audit_log_format(ab, " rlimit=%s value=%lu", + rlim_names[sa->aad.rlim.rlim], sa->aad.rlim.max); +} + +/** + * audit_resource - audit setting resource limit + * @profile: profile being enforced (NOT NULL) + * @resoure: rlimit being auditing + * @value: value being set + * @error: error value + * + * Returns: 0 or sa->error else other error code on failure + */ +static int audit_resource(struct aa_profile *profile, unsigned int resource, + unsigned long value, int error) +{ + struct common_audit_data sa; + + COMMON_AUDIT_DATA_INIT(&sa, NONE); + sa.aad.op = OP_SETRLIMIT, + sa.aad.rlim.rlim = resource; + sa.aad.rlim.max = value; + sa.aad.error = error; + return aa_audit(AUDIT_APPARMOR_AUTO, profile, GFP_KERNEL, &sa, + audit_cb); +} + +/** + * aa_map_resouce - map compiled policy resource to internal # + * @resource: flattened policy resource number + * + * Returns: resource # for the current architecture. + * + * rlimit resource can vary based on architecture, map the compiled policy + * resource # to the internal representation for the architecture. + */ +int aa_map_resource(int resource) +{ + return rlim_map[resource]; +} + +/** + * aa_task_setrlimit - test permission to set an rlimit + * @profile - profile confining the task (NOT NULL) + * @resource - the resource being set + * @new_rlim - the new resource limit (NOT NULL) + * + * Control raising the processes hard limit. + * + * Returns: 0 or error code if setting resource failed + */ +int aa_task_setrlimit(struct aa_profile *profile, unsigned int resource, + struct rlimit *new_rlim) +{ + int error = 0; + + if (profile->rlimits.mask & (1 << resource) && + new_rlim->rlim_max > profile->rlimits.limits[resource].rlim_max) + + error = audit_resource(profile, resource, new_rlim->rlim_max, + -EACCES); + + return error; +} + +/** + * __aa_transition_rlimits - apply new profile rlimits + * @old: old profile on task (NOT NULL) + * @new: new profile with rlimits to apply (NOT NULL) + */ +void __aa_transition_rlimits(struct aa_profile *old, struct aa_profile *new) +{ + unsigned int mask = 0; + struct rlimit *rlim, *initrlim; + int i; + + /* for any rlimits the profile controlled reset the soft limit + * to the less of the tasks hard limit and the init tasks soft limit + */ + if (old->rlimits.mask) { + for (i = 0, mask = 1; i < RLIM_NLIMITS; i++, mask <<= 1) { + if (old->rlimits.mask & mask) { + rlim = current->signal->rlim + i; + initrlim = init_task.signal->rlim + i; + rlim->rlim_cur = min(rlim->rlim_max, + initrlim->rlim_cur); + } + } + } + + /* set any new hard limits as dictated by the new profile */ + if (!new->rlimits.mask) + return; + for (i = 0, mask = 1; i < RLIM_NLIMITS; i++, mask <<= 1) { + if (!(new->rlimits.mask & mask)) + continue; + + rlim = current->signal->rlim + i; + rlim->rlim_max = min(rlim->rlim_max, + new->rlimits.limits[i].rlim_max); + /* soft limit should not exceed hard limit */ + rlim->rlim_cur = min(rlim->rlim_cur, rlim->rlim_max); + } +} --- linux-2.6.35.orig/security/apparmor/capability.c +++ linux-2.6.35/security/apparmor/capability.c @@ -0,0 +1,141 @@ +/* + * AppArmor security module + * + * This file contains AppArmor capability mediation functions + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include +#include + +#include "include/apparmor.h" +#include "include/capability.h" +#include "include/context.h" +#include "include/policy.h" +#include "include/audit.h" + +/* + * Table of capability names: we generate it from capabilities.h. + */ +#include "capability_names.h" + +struct audit_cache { + struct aa_profile *profile; + kernel_cap_t caps; +}; + +static DEFINE_PER_CPU(struct audit_cache, audit_cache); + +/** + * audit_cb - call back for capability components of audit struct + * @ab - audit buffer (NOT NULL) + * @va - audit struct to audit data from (NOT NULL) + */ +static void audit_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + audit_log_format(ab, " capname="); + audit_log_untrustedstring(ab, capability_names[sa->u.cap]); +} + +/** + * audit_caps - audit a capability + * @profile: profile confining task (NOT NULL) + * @task: task capability test was performed against (NOT NULL) + * @cap: capability tested + * @error: error code returned by test + * + * Do auditing of capability and handle, audit/complain/kill modes switching + * and duplicate message elimination. + * + * Returns: 0 or sa->error on success, error code on failure + */ +static int audit_caps(struct aa_profile *profile, struct task_struct *task, + int cap, int error) +{ + struct audit_cache *ent; + int type = AUDIT_APPARMOR_AUTO; + struct common_audit_data sa; + COMMON_AUDIT_DATA_INIT(&sa, CAP); + sa.tsk = task; + sa.u.cap = cap; + sa.aad.op = OP_CAPABLE; + sa.aad.error = error; + + if (likely(!error)) { + /* test if auditing is being forced */ + if (likely((AUDIT_MODE(profile) != AUDIT_ALL) && + !cap_raised(profile->caps.audit, cap))) + return 0; + type = AUDIT_APPARMOR_AUDIT; + } else if (KILL_MODE(profile) || + cap_raised(profile->caps.kill, cap)) { + type = AUDIT_APPARMOR_KILL; + } else if (cap_raised(profile->caps.quiet, cap) && + AUDIT_MODE(profile) != AUDIT_NOQUIET && + AUDIT_MODE(profile) != AUDIT_ALL) { + /* quiet auditing */ + return error; + } + + /* Do simple duplicate message elimination */ + ent = &get_cpu_var(audit_cache); + if (profile == ent->profile && cap_raised(ent->caps, cap)) { + put_cpu_var(audit_cache); + if (COMPLAIN_MODE(profile)) + return complain_error(error); + return error; + } else { + aa_put_profile(ent->profile); + ent->profile = aa_get_profile(profile); + cap_raise(ent->caps, cap); + } + put_cpu_var(audit_cache); + + return aa_audit(type, profile, GFP_ATOMIC, &sa, audit_cb); +} + +/** + * profile_capable - test if profile allows use of capability @cap + * @profile: profile being enforced (NOT NULL, NOT unconfined) + * @cap: capability to test if allowed + * + * Returns: 0 if allowed else -EPERM + */ +static int profile_capable(struct aa_profile *profile, int cap) +{ + return cap_raised(profile->caps.allow, cap) ? 0 : -EPERM; +} + +/** + * aa_capable - test permission to use capability + * @task: task doing capability test against (NOT NULL) + * @profile: profile confining @task (NOT NULL) + * @cap: capability to be tested + * @audit: whether an audit record should be generated + * + * Look up capability in profile capability set. + * + * Returns: 0 on success, or else an error code. + */ +int aa_capable(struct task_struct *task, struct aa_profile *profile, int cap, + int audit) +{ + int error = profile_capable(profile, cap); + + if (!audit) { + if (COMPLAIN_MODE(profile)) + return complain_error(error); + return error; + } + + return audit_caps(profile, task, cap, error); +} --- linux-2.6.35.orig/security/apparmor/audit.c +++ linux-2.6.35/security/apparmor/audit.c @@ -0,0 +1,215 @@ +/* + * AppArmor security module + * + * This file contains AppArmor auditing functions + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include + +#include "include/apparmor.h" +#include "include/audit.h" +#include "include/policy.h" + +const char *op_table[] = { + "null", + + "sysctl", + "capable", + + "unlink", + "mkdir", + "rmdir", + "mknod", + "truncate", + "link", + "symlink", + "rename_src", + "rename_dest", + "chmod", + "chown", + "getattr", + "open", + + "file_perm", + "file_lock", + "file_mmap", + "file_mprotect", + + "create", + "post_create", + "bind", + "connect", + "listen", + "accept", + "sendmsg", + "recvmsg", + "getsockname", + "getpeername", + "getsockopt", + "setsockopt", + "socket_shutdown", + + "ptrace", + + "exec", + "change_hat", + "change_profile", + "change_onexec", + + "setprocattr", + "setrlimit", + + "profile_replace", + "profile_load", + "profile_remove" +}; + +const char *audit_mode_names[] = { + "normal", + "quiet_denied", + "quiet", + "noquiet", + "all" +}; + +static char *aa_audit_type[] = { + "AUDIT", + "ALLOWED", + "DENIED", + "HINT", + "STATUS", + "ERROR", + "KILLED" +}; + +/* + * Currently AppArmor auditing is fed straight into the audit framework. + * + * TODO: + * netlink interface for complain mode + * user auditing, - send user auditing to netlink interface + * system control of whether user audit messages go to system log + */ + +/** + * audit_base - core AppArmor function. + * @ab: audit buffer to fill (NOT NULL) + * @ca: audit structure containing data to audit (NOT NULL) + * + * Record common AppArmor audit data from @sa + */ +static void audit_pre(struct audit_buffer *ab, void *ca) +{ + struct common_audit_data *sa = ca; + struct task_struct *tsk = sa->tsk ? sa->tsk : current; + + if (aa_g_audit_header) { + audit_log_format(ab, "apparmor="); + audit_log_string(ab, aa_audit_type[sa->aad.type]); + } + + if (sa->aad.op) { + audit_log_format(ab, " operation="); + audit_log_string(ab, op_table[sa->aad.op]); + } + + if (sa->aad.info) { + audit_log_format(ab, " info="); + audit_log_string(ab, sa->aad.info); + if (sa->aad.error) + audit_log_format(ab, " error=%d", sa->aad.error); + } + + if (sa->aad.profile) { + struct aa_profile *profile = sa->aad.profile; + pid_t pid; + rcu_read_lock(); + pid = tsk->real_parent->pid; + rcu_read_unlock(); + audit_log_format(ab, " parent=%d", pid); + if (profile->ns != root_ns) { + audit_log_format(ab, " namespace="); + audit_log_untrustedstring(ab, profile->ns->base.hname); + } + audit_log_format(ab, " profile="); + audit_log_untrustedstring(ab, profile->base.hname); + } + + if (sa->aad.name) { + audit_log_format(ab, " name="); + audit_log_untrustedstring(ab, sa->aad.name); + } +} + +/** + * aa_audit_msg - Log a message to the audit subsystem + * @sa: audit event structure (NOT NULL) + * @cb: optional callback fn for type specific fields (MAYBE NULL) + */ +void aa_audit_msg(int type, struct common_audit_data *sa, + void (*cb) (struct audit_buffer *, void *)) +{ + sa->aad.type = type; + sa->lsm_pre_audit = audit_pre; + sa->lsm_post_audit = cb; + common_lsm_audit(sa); +} + +/** + * aa_audit - Log a profile based audit event to the audit subsystem + * @type: audit type for the message + * @profile: profile to check against (NOT NULL) + * @gfp: allocation flags to use + * @sa: audit event (NOT NULL) + * @cb: optional callback fn for type specific fields (MAYBE NULL) + * + * Handle default message switching based off of audit mode flags + * + * Returns: error on failure + */ +int aa_audit(int type, struct aa_profile *profile, gfp_t gfp, + struct common_audit_data *sa, + void (*cb) (struct audit_buffer *, void *)) +{ + BUG_ON(!profile); + + if (type == AUDIT_APPARMOR_AUTO) { + if (likely(!sa->aad.error)) { + if (AUDIT_MODE(profile) != AUDIT_ALL) + return 0; + type = AUDIT_APPARMOR_AUDIT; + } else if (COMPLAIN_MODE(profile)) + type = AUDIT_APPARMOR_ALLOWED; + else + type = AUDIT_APPARMOR_DENIED; + } + if (AUDIT_MODE(profile) == AUDIT_QUIET || + (type == AUDIT_APPARMOR_DENIED && + AUDIT_MODE(profile) == AUDIT_QUIET)) + return sa->aad.error; + + if (KILL_MODE(profile) && type == AUDIT_APPARMOR_DENIED) + type = AUDIT_APPARMOR_KILL; + + if (!unconfined(profile)) + sa->aad.profile = profile; + + aa_audit_msg(type, sa, cb); + + if (sa->aad.type == AUDIT_APPARMOR_KILL) + (void)send_sig_info(SIGKILL, NULL, sa->tsk ? sa->tsk : current); + + if (sa->aad.type == AUDIT_APPARMOR_ALLOWED) + return complain_error(sa->aad.error); + + return sa->aad.error; +} --- linux-2.6.35.orig/security/apparmor/policy.c +++ linux-2.6.35/security/apparmor/policy.c @@ -0,0 +1,1187 @@ +/* + * AppArmor security module + * + * This file contains AppArmor policy manipulation functions + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * + * AppArmor policy is based around profiles, which contain the rules a + * task is confined by. Every task in the system has a profile attached + * to it determined either by matching "unconfined" tasks against the + * visible set of profiles or by following a profiles attachment rules. + * + * Each profile exists in a profile namespace which is a container of + * visible profiles. Each namespace contains a special "unconfined" profile, + * which doesn't enforce any confinement on a task beyond DAC. + * + * Namespace and profile names can be written together in either + * of two syntaxes. + * :namespace:profile - used by kernel interfaces for easy detection + * namespace://profile - used by policy + * + * Profile names can not start with : or @ or ^ and may not contain \0 + * + * Reserved profile names + * unconfined - special automatically generated unconfined profile + * inherit - special name to indicate profile inheritance + * null-XXXX-YYYY - special automatically generated learning profiles + * + * Namespace names may not start with / or @ and may not contain \0 or : + * Reserved namespace names + * user-XXXX - user defined profiles + * + * a // in a profile or namespace name indicates a hierarchical name with the + * name before the // being the parent and the name after the child. + * + * Profile and namespace hierarchies serve two different but similar purposes. + * The namespace contains the set of visible profiles that are considered + * for attachment. The hierarchy of namespaces allows for virtualizing + * the namespace so that for example a chroot can have its own set of profiles + * which may define some local user namespaces. + * The profile hierarchy severs two distinct purposes, + * - it allows for sub profiles or hats, which allows an application to run + * subprograms under its own profile with different restriction than it + * self, and not have it use the system profile. + * eg. if a mail program starts an editor, the policy might make the + * restrictions tighter on the editor tighter than the mail program, + * and definitely different than general editor restrictions + * - it allows for binary hierarchy of profiles, so that execution history + * is preserved. This feature isn't exploited by AppArmor reference policy + * but is allowed. NOTE: this is currently suboptimal because profile + * aliasing is not currently implemented so that a profile for each + * level must be defined. + * eg. /bin/bash///bin/ls as a name would indicate /bin/ls was started + * from /bin/bash + * + * A profile or namespace name that can contain one or more // separators + * is referred to as an hname (hierarchical). + * eg. /bin/bash//bin/ls + * + * An fqname is a name that may contain both namespace and profile hnames. + * eg. :ns:/bin/bash//bin/ls + * + * NOTES: + * - locking of profile lists is currently fairly coarse. All profile + * lists within a namespace use the namespace lock. + * FIXME: move profile lists to using rcu_lists + */ + +#include +#include +#include + +#include "include/apparmor.h" +#include "include/capability.h" +#include "include/context.h" +#include "include/file.h" +#include "include/ipc.h" +#include "include/match.h" +#include "include/path.h" +#include "include/policy.h" +#include "include/policy_unpack.h" +#include "include/resource.h" +#include "include/sid.h" + + +/* root profile namespace */ +struct aa_namespace *root_ns; + +const char *profile_mode_names[] = { + "enforce", + "complain", + "kill", +}; + +/** + * hname_tail - find the last component of an hname + * @name: hname to find the base profile name component of (NOT NULL) + * + * Returns: the tail (base profile name) name component of an hname + */ +static const char *hname_tail(const char *hname) +{ + char *split; + hname = strim((char *)hname); + for (split = strstr(hname, "//"); split; split = strstr(hname, "//")) + hname = split + 2; + + return hname; +} + +/** + * policy_init - initialize a policy structure + * @policy: policy to initialize (NOT NULL) + * @prefix: prefix name if any is required. (MAYBE NULL) + * @name: name of the policy, init will make a copy of it (NOT NULL) + * + * Note: this fn creates a copy of strings passed in + * + * Returns: true if policy init successful + */ +static bool policy_init(struct aa_policy *policy, const char *prefix, + const char *name) +{ + /* freed by policy_free */ + if (prefix) { + policy->hname = kmalloc(strlen(prefix) + strlen(name) + 3, + GFP_KERNEL); + if (policy->hname) + sprintf(policy->hname, "%s//%s", prefix, name); + } else + policy->hname = kstrdup(name, GFP_KERNEL); + if (!policy->hname) + return 0; + /* base.name is a substring of fqname */ + policy->name = (char *)hname_tail(policy->hname); + INIT_LIST_HEAD(&policy->list); + INIT_LIST_HEAD(&policy->profiles); + kref_init(&policy->count); + + return 1; +} + +/** + * policy_destroy - free the elements referenced by @policy + * @policy: policy that is to have its elements freed (NOT NULL) + */ +static void policy_destroy(struct aa_policy *policy) +{ + /* still contains profiles -- invalid */ + if (!list_empty(&policy->profiles)) { + AA_ERROR("%s: internal error, " + "policy '%s' still contains profiles\n", + __func__, policy->name); + BUG(); + } + if (!list_empty(&policy->list)) { + AA_ERROR("%s: internal error, policy '%s' still on list\n", + __func__, policy->name); + BUG(); + } + + /* don't free name as its a subset of hname */ + kzfree(policy->hname); +} + +/** + * __policy_find - find a policy by @name on a policy list + * @head: list to search (NOT NULL) + * @name: name to search for (NOT NULL) + * + * Requires: correct locks for the @head list be held + * + * Returns: unrefcounted policy that match @name or NULL if not found + */ +static struct aa_policy *__policy_find(struct list_head *head, const char *name) +{ + struct aa_policy *policy; + + list_for_each_entry(policy, head, list) { + if (!strcmp(policy->name, name)) + return policy; + } + return NULL; +} + +/** + * __policy_strn_find - find a policy that's name matches @len chars of @str + * @head: list to search (NOT NULL) + * @str: string to search for (NOT NULL) + * @len: length of match required + * + * Requires: correct locks for the @head list be held + * + * Returns: unrefcounted policy that match @str or NULL if not found + * + * if @len == strlen(@strlen) then this is equiv to __policy_find + * other wise it allows searching for policy by a partial match of name + */ +static struct aa_policy *__policy_strn_find(struct list_head *head, + const char *str, int len) +{ + struct aa_policy *policy; + + list_for_each_entry(policy, head, list) { + if (aa_strneq(policy->name, str, len)) + return policy; + } + + return NULL; +} + +/* + * Routines for AppArmor namespaces + */ + +static const char *hidden_ns_name = "---"; +/** + * aa_ns_visible - test if @view is visible from @curr + * @curr: namespace to treat as the parent (NOT NULL) + * @view: namespace to test if visible from @curr (NOT NULL) + * + * Returns: true if @view is visible from @curr else false + */ +bool aa_ns_visible(struct aa_namespace *curr, struct aa_namespace *view) +{ + if (curr == view) + return true; + + for ( ; view; view = view->parent) { + if (view->parent == curr) + return true; + } + return false; +} + +/** + * aa_na_name - Find the ns name to display for @view from @curr + * @curr - current namespace (NOT NULL) + * @view - namespace attempting to view (NOT NULL) + * + * Returns: name of @view visible from @curr + */ +const char *aa_ns_name(struct aa_namespace *curr, struct aa_namespace *view) +{ + /* if view == curr then the namespace name isn't displayed */ + if (curr == view) + return ""; + + if (aa_ns_visible(curr, view)) { + /* at this point if a ns is visible it is in a view ns + * thus the curr ns.hname is a prefix of its name. + * Only output the virtualized portion of the name + * Add + 2 to skip over // separating curr hname prefix + * from the visible tail of the views hname + */ + return view->base.hname + strlen(curr->base.hname) + 2; + } else + return hidden_ns_name; +} + +/** + * alloc_namespace - allocate, initialize and return a new namespace + * @prefix: parent namespace name (MAYBE NULL) + * @name: a preallocated name (NOT NULL) + * + * Returns: refcounted namespace or NULL on failure. + */ +static struct aa_namespace *alloc_namespace(const char *prefix, + const char *name) +{ + struct aa_namespace *ns; + + ns = kzalloc(sizeof(*ns), GFP_KERNEL); + AA_DEBUG("%s(%p)\n", __func__, ns); + if (!ns) + return NULL; + if (!policy_init(&ns->base, prefix, name)) + goto fail_ns; + + INIT_LIST_HEAD(&ns->sub_ns); + rwlock_init(&ns->lock); + + /* released by free_namespace */ + ns->unconfined = aa_alloc_profile("unconfined"); + if (!ns->unconfined) + goto fail_unconfined; + + ns->unconfined->sid = aa_alloc_sid(); + ns->unconfined->flags = PFLAG_UNCONFINED | PFLAG_IX_ON_NAME_ERROR | + PFLAG_IMMUTABLE; + + /* + * released by free_namespace, however __remove_namespace breaks + * the cyclic references (ns->unconfined, and unconfined->ns) and + * replaces with refs to parent namespace unconfined + */ + ns->unconfined->ns = aa_get_namespace(ns); + + return ns; + +fail_unconfined: + kzfree(ns->base.name); +fail_ns: + kzfree(ns); + return NULL; +} + +/** + * free_namespace - free a profile namespace + * @ns: the namespace to free (MAYBE NULL) + * + * Requires: All references to the namespace must have been put, if the + * namespace was referenced by a profile confining a task, + */ +static void free_namespace(struct aa_namespace *ns) +{ + if (!ns) + return; + + policy_destroy(&ns->base); + aa_put_namespace(ns->parent); + + if (ns->unconfined && ns->unconfined->ns == ns) + ns->unconfined->ns = NULL; + + aa_put_profile(ns->unconfined); + kzfree(ns); +} + +/** + * aa_free_namespace_kref - free aa_namespace by kref (see aa_put_namespace) + * @kr: kref callback for freeing of a namespace (NOT NULL) + */ +void aa_free_namespace_kref(struct kref *kref) +{ + free_namespace(container_of(kref, struct aa_namespace, base.count)); +} + +/** + * __aa_find_namespace - find a namespace on a list by @name + * @head: list to search for namespace on (NOT NULL) + * @name: name of namespace to look for (NOT NULL) + * + * Returns: unrefcounted namespace + * + * Requires: ns lock be held + */ +static struct aa_namespace *__aa_find_namespace(struct list_head *head, + const char *name) +{ + return (struct aa_namespace *)__policy_find(head, name); +} + +/** + * aa_find_namespace - look up a profile namespace on the namespace list + * @root: namespace to search in (NOT NULL) + * @name: name of namespace to find (NOT NULL) + * + * Returns: a refcounted namespace on the list, or NULL if no namespace + * called @name exists. + * + * refcount released by caller + */ +struct aa_namespace *aa_find_namespace(struct aa_namespace *root, + const char *name) +{ + struct aa_namespace *ns = NULL; + + read_lock(&root->lock); + ns = aa_get_namespace(__aa_find_namespace(&root->sub_ns, name)); + read_unlock(&root->lock); + + return ns; +} + +/** + * aa_prepare_namespace - find an existing or create a new namespace of @name + * @name: the namespace to find or add (MAYBE NULL) + * + * Returns: refcounted namespace or NULL if failed to create one + */ +static struct aa_namespace *aa_prepare_namespace(const char *name) +{ + struct aa_namespace *ns, *root; + + root = aa_current_profile()->ns; + + write_lock(&root->lock); + + /* if name isn't specified the profile is loaded to the current ns */ + if (!name) { + /* released by caller */ + ns = aa_get_namespace(root); + goto out; + } + + /* try and find the specified ns and if it doesn't exist create it */ + /* released by caller */ + ns = aa_get_namespace(__aa_find_namespace(&root->sub_ns, name)); + if (!ns) { + /* namespace not found */ + struct aa_namespace *new_ns; + write_unlock(&root->lock); + new_ns = alloc_namespace(root->base.hname, name); + if (!new_ns) + return NULL; + write_lock(&root->lock); + /* test for race when new_ns was allocated */ + ns = __aa_find_namespace(&root->sub_ns, name); + if (!ns) { + /* add parent ref */ + new_ns->parent = aa_get_namespace(root); + + list_add(&new_ns->base.list, &root->sub_ns); + /* add list ref */ + ns = aa_get_namespace(new_ns); + } else { + /* raced so free the new one */ + free_namespace(new_ns); + /* get reference on namespace */ + aa_get_namespace(ns); + } + } +out: + write_unlock(&root->lock); + + /* return ref */ + return ns; +} + +/** + * __list_add_profile - add a profile to a list + * @list: list to add it to (NOT NULL) + * @profile: the profile to add (NOT NULL) + * + * refcount @profile, should be put by __list_remove_profile + * + * Requires: namespace lock be held, or list not be shared + */ +static void __list_add_profile(struct list_head *list, + struct aa_profile *profile) +{ + list_add(&profile->base.list, list); + /* get list reference */ + aa_get_profile(profile); +} + +/** + * __list_remove_profile - remove a profile from the list it is on + * @profile: the profile to remove (NOT NULL) + * + * remove a profile from the list, warning generally removal should + * be done with __replace_profile as most profile removals are + * replacements to the unconfined profile. + * + * put @profile list refcount + * + * Requires: namespace lock be held, or list not have been live + */ +static void __list_remove_profile(struct aa_profile *profile) +{ + list_del_init(&profile->base.list); + if (!(profile->flags & PFLAG_NO_LIST_REF)) + /* release list reference */ + aa_put_profile(profile); +} + +/** + * __replace_profile - replace @old with @new on a list + * @old: profile to be replaced (NOT NULL) + * @new: profile to replace @old with (NOT NULL) + * + * Will duplicate and refcount elements that @new inherits from @old + * and will inherit @old children. + * + * refcount @new for list, put @old list refcount + * + * Requires: namespace list lock be held, or list not be shared + */ +static void __replace_profile(struct aa_profile *old, struct aa_profile *new) +{ + struct aa_policy *policy; + struct aa_profile *child, *tmp; + + if (old->parent) + policy = &old->parent->base; + else + policy = &old->ns->base; + + /* released when @new is freed */ + new->parent = aa_get_profile(old->parent); + new->ns = aa_get_namespace(old->ns); + new->sid = old->sid; + __list_add_profile(&policy->profiles, new); + /* inherit children */ + list_for_each_entry_safe(child, tmp, &old->base.profiles, base.list) { + aa_put_profile(child->parent); + child->parent = aa_get_profile(new); + /* list refcount transferred to @new*/ + list_move(&child->base.list, &new->base.profiles); + } + + /* released by free_profile */ + old->replacedby = aa_get_profile(new); + __list_remove_profile(old); +} + +static void __profile_list_release(struct list_head *head); + +/** + * __remove_profile - remove old profile, and children + * @profile: profile to be replaced (NOT NULL) + * + * Requires: namespace list lock be held, or list not be shared + */ +static void __remove_profile(struct aa_profile *profile) +{ + /* release any children lists first */ + __profile_list_release(&profile->base.profiles); + /* released by free_profile */ + profile->replacedby = aa_get_profile(profile->ns->unconfined); + __list_remove_profile(profile); +} + +/** + * __profile_list_release - remove all profiles on the list and put refs + * @head: list of profiles (NOT NULL) + * + * Requires: namespace lock be held + */ +static void __profile_list_release(struct list_head *head) +{ + struct aa_profile *profile, *tmp; + list_for_each_entry_safe(profile, tmp, head, base.list) + __remove_profile(profile); +} + +static void __ns_list_release(struct list_head *head); + +/** + * destroy_namespace - remove everything contained by @ns + * @ns: namespace to have it contents removed (NOT NULL) + */ +static void destroy_namespace(struct aa_namespace *ns) +{ + if (!ns) + return; + + write_lock(&ns->lock); + /* release all profiles in this namespace */ + __profile_list_release(&ns->base.profiles); + + /* release all sub namespaces */ + __ns_list_release(&ns->sub_ns); + + write_unlock(&ns->lock); +} + +/** + * __remove_namespace - remove a namespace and all its children + * @ns: namespace to be removed (NOT NULL) + * + * Requires: ns->parent->lock be held and ns removed from parent. + */ +static void __remove_namespace(struct aa_namespace *ns) +{ + struct aa_profile *unconfined = ns->unconfined; + + /* remove ns from namespace list */ + list_del_init(&ns->base.list); + + /* + * break the ns, unconfined profile cyclic reference and forward + * all new unconfined profiles requests to the parent namespace + * This will result in all confined tasks that have a profile + * being removed, inheriting the parent->unconfined profile. + */ + if (ns->parent) + ns->unconfined = aa_get_profile(ns->parent->unconfined); + + destroy_namespace(ns); + + /* release original ns->unconfined ref */ + aa_put_profile(unconfined); + /* release ns->base.list ref, from removal above */ + aa_put_namespace(ns); +} + +/** + * __ns_list_release - remove all profile namespaces on the list put refs + * @head: list of profile namespaces (NOT NULL) + * + * Requires: namespace lock be held + */ +static void __ns_list_release(struct list_head *head) +{ + struct aa_namespace *ns, *tmp; + list_for_each_entry_safe(ns, tmp, head, base.list) + __remove_namespace(ns); + +} + +/** + * aa_alloc_root_ns - allocate the root profile namespace + * + * Returns: %0 on success else error + * + */ +int __init aa_alloc_root_ns(void) +{ + /* released by aa_free_root_ns - used as list ref*/ + root_ns = alloc_namespace(NULL, "root"); + if (!root_ns) + return -ENOMEM; + + return 0; +} + + /** + * aa_free_root_ns - free the root profile namespace + */ +void __init aa_free_root_ns(void) + { + struct aa_namespace *ns = root_ns; + root_ns = NULL; + + destroy_namespace(ns); + aa_put_namespace(ns); +} + +/** + * aa_alloc_profile - allocate, initialize and return a new profile + * @hname: name of the profile (NOT NULL) + * + * Returns: refcount profile or NULL on failure + */ +struct aa_profile *aa_alloc_profile(const char *hname) +{ + struct aa_profile *profile; + + /* freed by free_profile - usually through aa_put_profile */ + profile = kzalloc(sizeof(*profile), GFP_KERNEL); + if (!profile) + return NULL; + + if (!policy_init(&profile->base, NULL, hname)) { + kzfree(profile); + return NULL; + } + + /* refcount released by caller */ + return profile; +} + +/** + * aa_new_null_profile - create a new null-X learning profile + * @parent: profile that caused this profile to be created (NOT NULL) + * @hat: true if the null- learning profile is a hat + * + * Create a null- complain mode profile used in learning mode. The name of + * the profile is unique and follows the format of parent//null-sid. + * + * null profiles are added to the profile list but the list does not + * hold a count on them so that they are automatically released when + * not in use. + * + * Returns: new refcounted profile else NULL on failure + */ +struct aa_profile *aa_new_null_profile(struct aa_profile *parent, int hat) +{ + struct aa_profile *profile = NULL; + char *name; + u32 sid = aa_alloc_sid(); + + /* freed below */ + name = kmalloc(strlen(parent->base.hname) + 2 + 7 + 8, GFP_KERNEL); + if (!name) + goto fail; + sprintf(name, "%s//null-%x", parent->base.hname, sid); + + profile = aa_alloc_profile(name); + kfree(name); + if (!profile) + goto fail; + + profile->sid = sid; + profile->mode = APPARMOR_COMPLAIN; + profile->flags = PFLAG_NULL; + if (hat) + profile->flags |= PFLAG_HAT; + + /* released on free_profile */ + profile->parent = aa_get_profile(parent); + profile->ns = aa_get_namespace(parent->ns); + + write_lock(&profile->ns->lock); + __list_add_profile(&parent->base.profiles, profile); + write_unlock(&profile->ns->lock); + + /* refcount released by caller */ + return profile; + +fail: + aa_free_sid(sid); + return NULL; +} + +/** + * free_profile - free a profile + * @profile: the profile to free (MAYBE NULL) + * + * Free a profile, its hats and null_profile. All references to the profile, + * its hats and null_profile must have been put. + * + * If the profile was referenced from a task context, free_profile() will + * be called from an rcu callback routine, so we must not sleep here. + */ +static void free_profile(struct aa_profile *profile) +{ + AA_DEBUG("%s(%p)\n", __func__, profile); + + if (!profile) + return; + + if (!list_empty(&profile->base.list)) { + AA_ERROR("%s: internal error, " + "profile '%s' still on ns list\n", + __func__, profile->base.name); + BUG(); + } + + /* free children profiles */ + policy_destroy(&profile->base); + aa_put_profile(profile->parent); + + aa_put_namespace(profile->ns); + kzfree(profile->rename); + + aa_free_file_rules(&profile->file); + aa_free_cap_rules(&profile->caps); + aa_free_net_rules(&profile->net); + aa_free_rlimit_rules(&profile->rlimits); + + aa_free_sid(profile->sid); + aa_put_dfa(profile->xmatch); + + aa_put_profile(profile->replacedby); + + kzfree(profile); +} + +/** + * aa_free_profile_kref - free aa_profile by kref (called by aa_put_profile) + * @kr: kref callback for freeing of a profile (NOT NULL) + */ +void aa_free_profile_kref(struct kref *kref) +{ + struct aa_profile *p = container_of(kref, struct aa_profile, + base.count); + + free_profile(p); +} + +/* TODO: profile accounting - setup in remove */ + +/** + * __find_child - find a profile on @head list with a name matching @name + * @head: list to search (NOT NULL) + * @name: name of profile (NOT NULL) + * + * Requires: ns lock protecting list be held + * + * Returns: unrefcounted profile ptr, or NULL if not found + */ +static struct aa_profile *__find_child(struct list_head *head, const char *name) +{ + return (struct aa_profile *)__policy_find(head, name); +} + +/** + * __strn_find_child - find a profile on @head list using substring of @name + * @head: list to search (NOT NULL) + * @name: name of profile (NOT NULL) + * @len: length of @name substring to match + * + * Requires: ns lock protecting list be held + * + * Returns: unrefcounted profile ptr, or NULL if not found + */ +static struct aa_profile *__strn_find_child(struct list_head *head, + const char *name, int len) +{ + return (struct aa_profile *)__policy_strn_find(head, name, len); +} + +/** + * aa_find_child - find a profile by @name in @parent + * @parent: profile to search (NOT NULL) + * @name: profile name to search for (NOT NULL) + * + * Returns: a refcounted profile or NULL if not found + */ +struct aa_profile *aa_find_child(struct aa_profile *parent, const char *name) +{ + struct aa_profile *profile; + + read_lock(&parent->ns->lock); + profile = aa_get_profile(__find_child(&parent->base.profiles, name)); + read_unlock(&parent->ns->lock); + + /* refcount released by caller */ + return profile; +} + +/** + * __lookup_parent - lookup the parent of a profile of name @hname + * @ns: namespace to lookup profile in (NOT NULL) + * @hname: hierarchical profile name to find parent of (NOT NULL) + * + * Lookups up the parent of a fully qualified profile name, the profile + * that matches hname does not need to exist, in general this + * is used to load a new profile. + * + * Requires: ns->lock be held + * + * Returns: unrefcounted policy or NULL if not found + */ +static struct aa_policy *__lookup_parent(struct aa_namespace *ns, + const char *hname) +{ + struct aa_policy *policy; + struct aa_profile *profile = NULL; + char *split; + + policy = &ns->base; + + for (split = strstr(hname, "//"); split;) { + profile = __strn_find_child(&policy->profiles, hname, + split - hname); + if (!profile) + return NULL; + policy = &profile->base; + hname = split + 2; + split = strstr(hname, "//"); + } + if (!profile) + return &ns->base; + return &profile->base; +} + +/** + * __lookup_profile - lookup the profile matching @hname + * @base: base list to start looking up profile name from (NOT NULL) + * @hname: hierarchical profile name (NOT NULL) + * + * Requires: ns->lock be held + * + * Returns: unrefcounted profile pointer or NULL if not found + * + * Do a relative name lookup, recursing through profile tree. + */ +static struct aa_profile *__lookup_profile(struct aa_policy *base, + const char *hname) +{ + struct aa_profile *profile = NULL; + char *split; + + for (split = strstr(hname, "//"); split;) { + profile = __strn_find_child(&base->profiles, hname, + split - hname); + if (!profile) + return NULL; + + base = &profile->base; + hname = split + 2; + split = strstr(hname, "//"); + } + + profile = __find_child(&base->profiles, hname); + + return profile; +} + +/** + * aa_lookup_profile - find a profile by its full or partial name + * @ns: the namespace to start from (NOT NULL) + * @hname: name to do lookup on. Does not contain namespace prefix (NOT NULL) + * + * Returns: refcounted profile or NULL if not found + */ +struct aa_profile *aa_lookup_profile(struct aa_namespace *ns, const char *hname) +{ + struct aa_profile *profile; + + read_lock(&ns->lock); + profile = aa_get_profile(__lookup_profile(&ns->base, hname)); + read_unlock(&ns->lock); + + /* refcount released by caller */ + return profile; +} + +/** + * replacement_allowed - test to see if replacement is allowed + * @profile: profile to test if it can be replaced (MAYBE NULL) + * @noreplace: true if replacement shouldn't be allowed but addition is okay + * @info: Returns - info about why replacement failed (NOT NULL) + * + * Returns: %0 if replacement allowed else error code + */ +static int replacement_allowed(struct aa_profile *profile, int noreplace, + const char **info) +{ + if (profile) { + if (profile->flags & PFLAG_IMMUTABLE) { + *info = "cannot replace immutible profile"; + return -EPERM; + } else if (noreplace) { + *info = "profile already exists"; + return -EEXIST; + } + } + return 0; +} + +/** + * __add_new_profile - simple wrapper around __list_add_profile + * @ns: namespace that profile is being added to (NOT NULL) + * @policy: the policy container to add the profile to (NOT NULL) + * @profile: profile to add (NOT NULL) + * + * add a profile to a list and do other required basic allocations + */ +static void __add_new_profile(struct aa_namespace *ns, struct aa_policy *policy, + struct aa_profile *profile) +{ + if (policy != &ns->base) + /* released on profile replacement or free_profile */ + profile->parent = aa_get_profile((struct aa_profile *) policy); + __list_add_profile(&policy->profiles, profile); + /* released on free_profile */ + profile->sid = aa_alloc_sid(); + profile->ns = aa_get_namespace(ns); +} + +/** + * aa_audit_policy - Do auditing of policy changes + * @op: policy operation being performed + * @gfp: memory allocation flags + * @name: name of profile being manipulated (NOT NULL) + * @info: any extra information to be audited (MAYBE NULL) + * @error: error code + * + * Returns: the error to be returned after audit is done + */ +static int audit_policy(int op, gfp_t gfp, const char *name, const char *info, + int error) +{ + struct common_audit_data sa; + COMMON_AUDIT_DATA_INIT(&sa, NONE); + sa.aad.op = op; + sa.aad.name = name; + sa.aad.info = info; + sa.aad.error = error; + + return aa_audit(AUDIT_APPARMOR_STATUS, __aa_current_profile(), gfp, + &sa, NULL); +} + +/** + * aa_may_manage_policy - can the current task manage policy + * @op: the policy manipulation operation being done + * + * Returns: true if the task is allowed to manipulate policy + */ +bool aa_may_manage_policy(int op) +{ + /* check if loading policy is locked out */ + if (aa_g_lock_policy) { + audit_policy(op, GFP_KERNEL, NULL, "policy_locked", -EACCES); + return 0; + } + + if (!capable(CAP_MAC_ADMIN)) { + audit_policy(op, GFP_KERNEL, NULL, "not policy admin", -EACCES); + return 0; + } + + return 1; +} + +/** + * aa_replace_profiles - replace profile(s) on the profile list + * @udata: serialized data stream (NOT NULL) + * @size: size of the serialized data stream + * @noreplace: true if only doing addition, no replacement allowed + * + * unpack and replace a profile on the profile list and uses of that profile + * by any aa_task_cxt. If the profile does not exist on the profile list + * it is added. + * + * Returns: size of data consumed else error code on failure. + */ +ssize_t aa_replace_profiles(void *udata, size_t size, bool noreplace) +{ + struct aa_policy *policy; + struct aa_profile *old_profile = NULL, *new_profile = NULL; + struct aa_profile *rename_profile = NULL; + struct aa_namespace *ns = NULL; + const char *ns_name, *name = NULL, *info = NULL; + int op = OP_PROF_REPL; + ssize_t error; + + /* released below */ + new_profile = aa_unpack(udata, size, &ns_name); + if (IS_ERR(new_profile)) { + error = PTR_ERR(new_profile); + new_profile = NULL; + goto fail; + } + + /* released below */ + ns = aa_prepare_namespace(ns_name); + if (!ns) { + info = "failed to prepare namespace"; + error = -ENOMEM; + name = ns_name; + goto fail; + } + + name = new_profile->base.hname; + + write_lock(&ns->lock); + /* no ref on policy only use inside lock */ + policy = __lookup_parent(ns, new_profile->base.hname); + + if (!policy) { + info = "parent does not exist"; + error = -ENOENT; + goto audit; + } + + old_profile = __find_child(&policy->profiles, new_profile->base.name); + /* released below */ + aa_get_profile(old_profile); + + if (new_profile->rename) { + rename_profile = __lookup_profile(&ns->base, + new_profile->rename); + /* released below */ + aa_get_profile(rename_profile); + + if (!rename_profile) { + info = "profile to rename does not exist"; + name = new_profile->rename; + error = -ENOENT; + goto audit; + } + } + + error = replacement_allowed(old_profile, noreplace, &info); + if (error) + goto audit; + + error = replacement_allowed(rename_profile, noreplace, &info); + if (error) + goto audit; + +audit: + if (!old_profile && !rename_profile) + op = OP_PROF_LOAD; + + error = audit_policy(op, GFP_ATOMIC, name, info, error); + + if (!error) { + if (rename_profile) + __replace_profile(rename_profile, new_profile); + if (old_profile) { + /* when there are both rename and old profiles + * inherit old profiles sid + */ + if (rename_profile) + aa_free_sid(new_profile->sid); + __replace_profile(old_profile, new_profile); + } + if (!(old_profile || rename_profile)) + __add_new_profile(ns, policy, new_profile); + } + write_unlock(&ns->lock); + +out: + aa_put_namespace(ns); + aa_put_profile(rename_profile); + aa_put_profile(old_profile); + aa_put_profile(new_profile); + if (error) + return error; + return size; + +fail: + error = audit_policy(op, GFP_KERNEL, name, info, error); + goto out; +} + +/** + * aa_remove_profiles - remove profile(s) from the system + * @fqname: name of the profile or namespace to remove (NOT NULL) + * @size: size of the name + * + * Remove a profile or sub namespace from the current namespace, so that + * they can not be found anymore and mark them as replaced by unconfined + * + * NOTE: removing confinement does not restore rlimits to preconfinemnet values + * + * Returns: size of data consume else error code if fails + */ +ssize_t aa_remove_profiles(char *fqname, size_t size) +{ + struct aa_namespace *root, *ns = NULL; + struct aa_profile *profile = NULL; + const char *name = fqname, *info = NULL; + ssize_t error = 0; + + if (*fqname == 0) { + info = "no profile specified"; + error = -ENOENT; + goto fail; + } + + root = aa_current_profile()->ns; + + if (fqname[0] == ':') { + char *ns_name; + name = aa_split_fqname(fqname, &ns_name); + if (ns_name) { + /* released below */ + ns = aa_find_namespace(root, ns_name); + if (!ns) { + info = "namespace does not exist"; + error = -ENOENT; + goto fail; + } + } + } else + /* released below */ + ns = aa_get_namespace(root); + + if (!name) { + /* remove namespace - can only happen if fqname[0] == ':' */ + write_lock(&ns->parent->lock); + __remove_namespace(ns); + write_unlock(&ns->parent->lock); + } else { + /* remove profile */ + write_lock(&ns->lock); + profile = aa_get_profile(__lookup_profile(&ns->base, name)); + if (!profile) { + error = -ENOENT; + info = "profile does not exist"; + goto fail_ns_lock; + } + name = profile->base.hname; + __remove_profile(profile); + write_unlock(&ns->lock); + } + + /* don't fail removal if audit fails */ + (void) audit_policy(OP_PROF_RM, GFP_KERNEL, name, info, error); + aa_put_namespace(ns); + aa_put_profile(profile); + return size; + +fail_ns_lock: + write_unlock(&ns->lock); + aa_put_namespace(ns); + +fail: + (void) audit_policy(OP_PROF_RM, GFP_KERNEL, name, info, error); + return error; +} --- linux-2.6.35.orig/security/apparmor/net.c +++ linux-2.6.35/security/apparmor/net.c @@ -0,0 +1,170 @@ +/* + * AppArmor security module + * + * This file contains AppArmor network mediation + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include "include/apparmor.h" +#include "include/audit.h" +#include "include/context.h" +#include "include/net.h" +#include "include/policy.h" + +#include "af_names.h" + +static const char *sock_type_names[] = { + "unknown(0)", + "stream", + "dgram", + "raw", + "rdm", + "seqpacket", + "dccp", + "unknown(7)", + "unknown(8)", + "unknown(9)", + "packet", +}; + +/* audit callback for net specific fields */ +static void audit_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + + audit_log_format(ab, " family="); + if (address_family_names[sa->u.net.family]) { + audit_log_string(ab, address_family_names[sa->u.net.family]); + } else { + audit_log_format(ab, " \"unknown(%d)\"", sa->u.net.family); + } + + audit_log_format(ab, " sock_type="); + if (sock_type_names[sa->aad.net.type]) { + audit_log_string(ab, sock_type_names[sa->aad.net.type]); + } else { + audit_log_format(ab, "\"unknown(%d)\"", sa->aad.net.type); + } + + audit_log_format(ab, " protocol=%d", sa->aad.net.protocol); +} + +/** + * audit_net - audit network access + * @profile: profile being enforced (NOT NULL) + * @op: operation being checked + * @family: network family + * @type: network type + * @protocol: network protocol + * @sk: socket auditing is being applied to + * @error: error code for failure else 0 + * + * Returns: %0 or sa->error else other errorcode on failure + */ +static int audit_net(struct aa_profile *profile, int op, u16 family, int type, + int protocol, struct sock *sk, int error) +{ + int audit_type = AUDIT_APPARMOR_AUTO; + struct common_audit_data sa; + if (sk) { + COMMON_AUDIT_DATA_INIT(&sa, NET); + } else { + COMMON_AUDIT_DATA_INIT(&sa, NONE); + } + /* todo fill in socket addr info */ + + sa.aad.op = op, + sa.u.net.family = family; + sa.u.net.sk = sk; + sa.aad.net.type = type; + sa.aad.net.protocol = protocol; + sa.aad.error = error; + + if (likely(!sa.aad.error)) { + u16 audit_mask = profile->net.audit[sa.u.net.family]; + if (likely((AUDIT_MODE(profile) != AUDIT_ALL) && + !(1 << sa.aad.net.type & audit_mask))) + return 0; + audit_type = AUDIT_APPARMOR_AUDIT; + } else { + u16 quiet_mask = profile->net.quiet[sa.u.net.family]; + u16 kill_mask = 0; + u16 denied = (1 << sa.aad.net.type) & ~quiet_mask; + + if (denied & kill_mask) + audit_type = AUDIT_APPARMOR_KILL; + + if ((denied & quiet_mask) && + AUDIT_MODE(profile) != AUDIT_NOQUIET && + AUDIT_MODE(profile) != AUDIT_ALL) + return COMPLAIN_MODE(profile) ? 0 : sa.aad.error; + } + + return aa_audit(audit_type, profile, GFP_KERNEL, &sa, audit_cb); +} + +/** + * aa_net_perm - very course network access check + * @op: operation being checked + * @profile: profile being enforced (NOT NULL) + * @family: network family + * @type: network type + * @protocol: network protocol + * + * Returns: %0 else error if permission denied + */ +int aa_net_perm(int op, struct aa_profile *profile, u16 family, int type, + int protocol, struct sock *sk) +{ + u16 family_mask; + int error; + + if ((family < 0) || (family >= AF_MAX)) + return -EINVAL; + + if ((type < 0) || (type >= SOCK_MAX)) + return -EINVAL; + + /* unix domain and netlink sockets are handled by ipc */ + if (family == AF_UNIX || family == AF_NETLINK) + return 0; + + family_mask = profile->net.allow[family]; + + error = (family_mask & (1 << type)) ? 0 : -EACCES; + + return audit_net(profile, op, family, type, protocol, sk, error); +} + +/** + * aa_revalidate_sk - Revalidate access to a sock + * @op: operation being checked + * @sk: sock being revalidated (NOT NULL) + * + * Returns: %0 else error if permission denied + */ +int aa_revalidate_sk(int op, struct sock *sk) +{ + struct aa_profile *profile; + int error = 0; + + /* aa_revalidate_sk should not be called from interrupt context + * don't mediate these calls as they are not task related + */ + if (in_interrupt()) + return 0; + + profile = __aa_current_profile(); + if (!unconfined(profile)) + error = aa_net_perm(op, profile, sk->sk_family, sk->sk_type, + sk->sk_protocol, sk); + + return error; +} --- linux-2.6.35.orig/security/apparmor/apparmorfs.c +++ linux-2.6.35/security/apparmor/apparmorfs.c @@ -0,0 +1,253 @@ +/* + * AppArmor security module + * + * This file contains AppArmor /sys/kernel/security/apparmor interface functions + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include +#include +#include +#include +#include + +#include "include/apparmor.h" +#include "include/apparmorfs.h" +#include "include/audit.h" +#include "include/context.h" +#include "include/policy.h" + +/** + * aa_simple_write_to_buffer - common routine for getting policy from user + * @op: operation doing the user buffer copy + * @userbuf: user buffer to copy data from (NOT NULL) + * @alloc_size: size of user buffer + * @copy_size: size of data to copy from user buffer + * @pos: position write is at in the file (NOT NULL) + * + * Returns: kernel buffer containing copy of user buffer data or an + * ERR_PTR on failure. + */ +static char *aa_simple_write_to_buffer(int op, const char __user *userbuf, + size_t alloc_size, size_t copy_size, + loff_t *pos) +{ + char *data; + + if (*pos != 0) + /* only writes from pos 0, that is complete writes */ + return ERR_PTR(-ESPIPE); + + /* + * Don't allow profile load/replace/remove from profiles that don't + * have CAP_MAC_ADMIN + */ + if (!aa_may_manage_policy(op)) + return ERR_PTR(-EACCES); + + /* freed by caller to simple_write_to_buffer */ + data = kvmalloc(alloc_size); + if (data == NULL) + return ERR_PTR(-ENOMEM); + + if (copy_from_user(data, userbuf, copy_size)) { + kvfree(data); + return ERR_PTR(-EFAULT); + } + + return data; +} + + +/* .load file hook fn to load policy */ +static ssize_t profile_load(struct file *f, const char __user *buf, size_t size, + loff_t *pos) +{ + char *data; + ssize_t error; + + data = aa_simple_write_to_buffer(OP_PROF_LOAD, buf, size, size, pos); + + error = PTR_ERR(data); + if (!IS_ERR(data)) { + error = aa_replace_profiles(data, size, PROF_ADD); + kvfree(data); + } + + return error; +} + +static const struct file_operations aa_fs_profile_load = { + .write = profile_load +}; + +/* .replace file hook fn to load and/or replace policy */ +static ssize_t profile_replace(struct file *f, const char __user *buf, + size_t size, loff_t *pos) +{ + char *data; + ssize_t error; + + data = aa_simple_write_to_buffer(OP_PROF_REPL, buf, size, size, pos); + error = PTR_ERR(data); + if (!IS_ERR(data)) { + error = aa_replace_profiles(data, size, PROF_REPLACE); + kvfree(data); + } + + return error; +} + +static const struct file_operations aa_fs_profile_replace = { + .write = profile_replace +}; + +/* .remove file hook fn to remove loaded policy */ +static ssize_t profile_remove(struct file *f, const char __user *buf, + size_t size, loff_t *pos) +{ + char *data; + ssize_t error; + + /* + * aa_remove_profile needs a null terminated string so 1 extra + * byte is allocated and the copied data is null terminated. + */ + data = aa_simple_write_to_buffer(OP_PROF_RM, buf, size + 1, size, pos); + + error = PTR_ERR(data); + if (!IS_ERR(data)) { + data[size] = 0; + error = aa_remove_profiles(data, size); + kvfree(data); + } + + return error; +} + +static const struct file_operations aa_fs_profile_remove = { + .write = profile_remove +}; + +/** Base file system setup **/ + +static struct dentry *aa_fs_dentry __initdata; + +static void __init aafs_remove(const char *name) +{ + struct dentry *dentry; + + dentry = lookup_one_len(name, aa_fs_dentry, strlen(name)); + if (!IS_ERR(dentry)) { + securityfs_remove(dentry); + dput(dentry); + } +} + +/** + * aafs_create - create an entry in the apparmor filesystem + * @name: name of the entry (NOT NULL) + * @mask: file permission mask of the file + * @fops: file operations for the file (NOT NULL) + * + * Used aafs_remove to remove entries created with this fn. + */ +static int __init aafs_create(const char *name, int mask, + const struct file_operations *fops) +{ + struct dentry *dentry; + + dentry = securityfs_create_file(name, S_IFREG | mask, aa_fs_dentry, + NULL, fops); + + return IS_ERR(dentry) ? PTR_ERR(dentry) : 0; +} + +/** + * aa_destroy_aafs - cleanup and free aafs + * + * releases dentries allocated by aa_create_aafs + */ +void __init aa_destroy_aafs(void) +{ + if (aa_fs_dentry) { + aafs_remove(".remove"); + aafs_remove(".replace"); + aafs_remove(".load"); +#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24 + aafs_remove("profiles"); + aafs_remove("matching"); + aafs_remove("features"); +#endif + securityfs_remove(aa_fs_dentry); + aa_fs_dentry = NULL; + } +} + +/** + * aa_create_aafs - create the apparmor security filesystem + * + * dentries created here are released by aa_destroy_aafs + * + * Returns: error on failure + */ +int __init aa_create_aafs(void) +{ + int error; + + if (!apparmor_initialized) + return 0; + + if (aa_fs_dentry) { + AA_ERROR("%s: AppArmor securityfs already exists\n", __func__); + return -EEXIST; + } + + aa_fs_dentry = securityfs_create_dir("apparmor", NULL); + if (IS_ERR(aa_fs_dentry)) { + error = PTR_ERR(aa_fs_dentry); + aa_fs_dentry = NULL; + goto error; + } +#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24 + error = aafs_create("matching", 0444, &aa_fs_matching_fops); + if (error) + goto error; + error = aafs_create("features", 0444, &aa_fs_features_fops); + if (error) + goto error; +#endif + error = aafs_create("profiles", 0440, &aa_fs_profiles_fops); + if (error) + goto error; + error = aafs_create(".load", 0640, &aa_fs_profile_load); + if (error) + goto error; + error = aafs_create(".replace", 0640, &aa_fs_profile_replace); + if (error) + goto error; + error = aafs_create(".remove", 0640, &aa_fs_profile_remove); + if (error) + goto error; + + /* TODO: add support for apparmorfs_null and apparmorfs_mnt */ + + /* Report that AppArmor fs is enabled */ + aa_info_message("AppArmor Filesystem Enabled"); + return 0; + +error: + aa_destroy_aafs(); + AA_ERROR("Error creating AppArmor securityfs\n"); + return error; +} + +fs_initcall(aa_create_aafs); --- linux-2.6.35.orig/security/apparmor/lsm.c +++ linux-2.6.35/security/apparmor/lsm.c @@ -0,0 +1,1051 @@ +/* + * AppArmor security module + * + * This file contains AppArmor LSM hooks. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "include/apparmor.h" +#include "include/apparmorfs.h" +#include "include/audit.h" +#include "include/capability.h" +#include "include/context.h" +#include "include/file.h" +#include "include/ipc.h" +#include "include/net.h" +#include "include/path.h" +#include "include/policy.h" +#include "include/procattr.h" + +/* Flag indicating whether initialization completed */ +int apparmor_initialized __initdata; + +/* + * LSM hook functions + */ + +/* + * free the associated aa_task_cxt and put its profiles + */ +static void apparmor_cred_free(struct cred *cred) +{ + aa_free_task_context(cred->security); + cred->security = NULL; +} + +/* + * allocate the apparmor part of blank credentials + */ +static int apparmor_cred_alloc_blank(struct cred *cred, gfp_t gfp) +{ + /* freed by apparmor_cred_free */ + struct aa_task_cxt *cxt = aa_alloc_task_context(gfp); + if (!cxt) + return -ENOMEM; + + cred->security = cxt; + return 0; +} + +/* + * prepare new aa_task_cxt for modification by prepare_cred block + */ +static int apparmor_cred_prepare(struct cred *new, const struct cred *old, + gfp_t gfp) +{ + /* freed by apparmor_cred_free */ + struct aa_task_cxt *cxt = aa_alloc_task_context(gfp); + if (!cxt) + return -ENOMEM; + + aa_dup_task_context(cxt, old->security); + new->security = cxt; + return 0; +} + +/* + * transfer the apparmor data to a blank set of creds + */ +static void apparmor_cred_transfer(struct cred *new, const struct cred *old) +{ + const struct aa_task_cxt *old_cxt = old->security; + struct aa_task_cxt *new_cxt = new->security; + + aa_dup_task_context(new_cxt, old_cxt); +} + +static int apparmor_ptrace_access_check(struct task_struct *child, + unsigned int mode) +{ + int error = cap_ptrace_access_check(child, mode); + if (error) + return error; + + return aa_ptrace(current, child, mode); +} + +static int apparmor_ptrace_traceme(struct task_struct *parent) +{ + int error = cap_ptrace_traceme(parent); + if (error) + return error; + + return aa_ptrace(parent, current, PTRACE_MODE_ATTACH); +} + +/* Derived from security/commoncap.c:cap_capget */ +static int apparmor_capget(struct task_struct *target, kernel_cap_t *effective, + kernel_cap_t *inheritable, kernel_cap_t *permitted) +{ + struct aa_profile *profile; + const struct cred *cred; + + rcu_read_lock(); + cred = __task_cred(target); + profile = aa_cred_profile(cred); + + *effective = cred->cap_effective; + *inheritable = cred->cap_inheritable; + *permitted = cred->cap_permitted; + + if (!unconfined(profile)) { + *effective = cap_intersect(*effective, profile->caps.allow); + *permitted = cap_intersect(*permitted, profile->caps.allow); + } + rcu_read_unlock(); + + return 0; +} + +static int apparmor_capable(struct task_struct *task, const struct cred *cred, + int cap, int audit) +{ + struct aa_profile *profile; + /* cap_capable returns 0 on success, else -EPERM */ + int error = cap_capable(task, cred, cap, audit); + if (!error) { + profile = aa_cred_profile(cred); + if (!unconfined(profile)) + error = aa_capable(task, profile, cap, audit); + } + return error; +} + +/** + * common_perm - basic common permission check wrapper fn for paths + * @op: operation being checked + * @path: path to check permission of (NOT NULL) + * @mask: requested permissions mask + * @cond: conditional info for the permission request (NOT NULL) + * + * Returns: %0 else error code if error or permission denied + */ +static int common_perm(int op, struct path *path, u32 mask, + struct path_cond *cond) +{ + struct aa_profile *profile; + int error = 0; + + profile = __aa_current_profile(); + if (!unconfined(profile)) + error = aa_path_perm(op, profile, path, 0, mask, cond); + + return error; +} + +/** + * common_perm_dir_dentry - common permission wrapper when path is dir, dentry + * @op: operation being checked + * @dir: directory of the dentry (NOT NULL) + * @dentry: dentry to check (NOT NULL) + * @mask: requested permissions mask + * @cond: conditional info for the permission request (NOT NULL) + * + * Returns: %0 else error code if error or permission denied + */ +static int common_perm_dir_dentry(int op, struct path *dir, + struct dentry *dentry, u32 mask, + struct path_cond *cond) +{ + struct path path = { dir->mnt, dentry }; + + return common_perm(op, &path, mask, cond); +} + +/** + * common_perm_mnt_dentry - common permission wrapper when mnt, dentry + * @op: operation being checked + * @mnt: mount point of dentry (NOT NULL) + * @dentry: dentry to check (NOT NULL) + * @mask: requested permissions mask + * + * Returns: %0 else error code if error or permission denied + */ +static int common_perm_mnt_dentry(int op, struct vfsmount *mnt, + struct dentry *dentry, u32 mask) +{ + struct path path = { mnt, dentry }; + struct path_cond cond = { dentry->d_inode->i_uid, + dentry->d_inode->i_mode + }; + + return common_perm(op, &path, mask, &cond); +} + +/** + * common_perm_rm - common permission wrapper for operations doing rm + * @op: operation being checked + * @dir: directory that the dentry is in (NOT NULL) + * @dentry: dentry being rm'd (NOT NULL) + * @mask: requested permission mask + * + * Returns: %0 else error code if error or permission denied + */ +static int common_perm_rm(int op, struct path *dir, + struct dentry *dentry, u32 mask) +{ + struct inode *inode = dentry->d_inode; + struct path_cond cond = { }; + + if (!inode || !dir->mnt || !mediated_filesystem(inode)) + return 0; + + cond.uid = inode->i_uid; + cond.mode = inode->i_mode; + + return common_perm_dir_dentry(op, dir, dentry, mask, &cond); +} + +/** + * common_perm_create - common permission wrapper for operations doing create + * @op: operation being checked + * @dir: directory that dentry will be created in (NOT NULL) + * @dentry: dentry to create (NOT NULL) + * @mask: request permission mask + * @mode: created file mode + * + * Returns: %0 else error code if error or permission denied + */ +static int common_perm_create(int op, struct path *dir, struct dentry *dentry, + u32 mask, umode_t mode) +{ + struct path_cond cond = { current_fsuid(), mode }; + + if (!dir->mnt || !mediated_filesystem(dir->dentry->d_inode)) + return 0; + + return common_perm_dir_dentry(op, dir, dentry, mask, &cond); +} + +static int apparmor_path_unlink(struct path *dir, struct dentry *dentry) +{ + return common_perm_rm(OP_UNLINK, dir, dentry, AA_MAY_DELETE); +} + +static int apparmor_path_mkdir(struct path *dir, struct dentry *dentry, + int mode) +{ + return common_perm_create(OP_MKDIR, dir, dentry, AA_MAY_CREATE, + S_IFDIR); +} + +static int apparmor_path_rmdir(struct path *dir, struct dentry *dentry) +{ + return common_perm_rm(OP_RMDIR, dir, dentry, AA_MAY_DELETE); +} + +static int apparmor_path_mknod(struct path *dir, struct dentry *dentry, + int mode, unsigned int dev) +{ + return common_perm_create(OP_MKNOD, dir, dentry, AA_MAY_CREATE, mode); +} + +static int apparmor_path_truncate(struct path *path, loff_t length, + unsigned int time_attrs) +{ + struct path_cond cond = { path->dentry->d_inode->i_uid, + path->dentry->d_inode->i_mode + }; + + if (!path->mnt || !mediated_filesystem(path->dentry->d_inode)) + return 0; + + return common_perm(OP_TRUNC, path, MAY_WRITE | AA_MAY_META_WRITE, + &cond); +} + +static int apparmor_path_symlink(struct path *dir, struct dentry *dentry, + const char *old_name) +{ + return common_perm_create(OP_SYMLINK, dir, dentry, AA_MAY_CREATE, + S_IFLNK); +} + +static int apparmor_path_link(struct dentry *old_dentry, struct path *new_dir, + struct dentry *new_dentry) +{ + struct aa_profile *profile; + int error = 0; + + if (!mediated_filesystem(old_dentry->d_inode)) + return 0; + + profile = aa_current_profile(); + if (!unconfined(profile)) + error = aa_path_link(profile, old_dentry, new_dir, new_dentry); + return error; +} + +static int apparmor_path_rename(struct path *old_dir, struct dentry *old_dentry, + struct path *new_dir, struct dentry *new_dentry) +{ + struct aa_profile *profile; + int error = 0; + + if (!mediated_filesystem(old_dentry->d_inode)) + return 0; + + profile = aa_current_profile(); + if (!unconfined(profile)) { + struct path old_path = { old_dir->mnt, old_dentry }; + struct path new_path = { new_dir->mnt, new_dentry }; + struct path_cond cond = { old_dentry->d_inode->i_uid, + old_dentry->d_inode->i_mode + }; + + error = aa_path_perm(OP_RENAME_SRC, profile, &old_path, 0, + MAY_READ | AA_MAY_META_READ | MAY_WRITE | + AA_MAY_META_WRITE | AA_MAY_DELETE, + &cond); + if (!error) + error = aa_path_perm(OP_RENAME_DEST, profile, &new_path, + 0, MAY_WRITE | AA_MAY_META_WRITE | + AA_MAY_CREATE, &cond); + + } + return error; +} + +static int apparmor_path_chmod(struct dentry *dentry, struct vfsmount *mnt, + mode_t mode) +{ + if (!mediated_filesystem(dentry->d_inode)) + return 0; + + return common_perm_mnt_dentry(OP_CHMOD, mnt, dentry, AA_MAY_CHMOD); +} + +static int apparmor_path_chown(struct path *path, uid_t uid, gid_t gid) +{ + struct path_cond cond = { path->dentry->d_inode->i_uid, + path->dentry->d_inode->i_mode + }; + + if (!mediated_filesystem(path->dentry->d_inode)) + return 0; + + return common_perm(OP_CHOWN, path, AA_MAY_CHOWN, &cond); +} + +static int apparmor_inode_getattr(struct vfsmount *mnt, struct dentry *dentry) +{ + if (!mediated_filesystem(dentry->d_inode)) + return 0; + + return common_perm_mnt_dentry(OP_GETATTR, mnt, dentry, + AA_MAY_META_READ); +} + +static int apparmor_dentry_open(struct file *file, const struct cred *cred) +{ + struct aa_file_cxt *fcxt = file->f_security; + struct aa_profile *profile; + int error = 0; + + if (!mediated_filesystem(file->f_path.dentry->d_inode)) + return 0; + + /* If in exec, permission is handled by bprm hooks. + * Cache permissions granted by the previous exec check, with + * implicit read and executable mmap which are required to + * actually execute the image. + */ + if (current->in_execve) { + fcxt->allow = MAY_EXEC | MAY_READ | AA_EXEC_MMAP; + return 0; + } + + profile = aa_cred_profile(cred); + if (!unconfined(profile)) { + struct inode *inode = file->f_path.dentry->d_inode; + struct path_cond cond = { inode->i_uid, inode->i_mode }; + + error = aa_path_perm(OP_OPEN, profile, &file->f_path, 0, + aa_map_file_to_perms(file), &cond); + /* todo cache full allowed permissions set and state */ + fcxt->allow = aa_map_file_to_perms(file); + } + + return error; +} + +static int apparmor_file_alloc_security(struct file *file) +{ + /* freed by apparmor_file_free_security */ + file->f_security = aa_alloc_file_context(GFP_KERNEL); + if (!file->f_security) + return -ENOMEM; + return 0; + +} + +static void apparmor_file_free_security(struct file *file) +{ + struct aa_file_cxt *cxt = file->f_security; + + aa_free_file_context(cxt); +} + +static int common_file_perm(int op, struct file *file, u32 mask) +{ + struct aa_file_cxt *fcxt = file->f_security; + struct aa_profile *profile, *fprofile = aa_cred_profile(file->f_cred); + int error = 0; + + BUG_ON(!fprofile); + + if (!file->f_path.mnt || + !mediated_filesystem(file->f_path.dentry->d_inode)) + return 0; + + profile = __aa_current_profile(); + + /* revalidate access, if task is unconfined, or the cached cred + * doesn't match or if the request is for more permissions than + * was granted. + * + * Note: the test for !unconfined(fprofile) is to handle file + * delegation from unconfined tasks + */ + if (!unconfined(profile) && !unconfined(fprofile) && + ((fprofile != profile) || (mask & ~fcxt->allow))) + error = aa_file_perm(op, profile, file, mask); + + return error; +} + +static int apparmor_file_permission(struct file *file, int mask) +{ + return common_file_perm(OP_FPERM, file, mask); +} + +static int apparmor_file_lock(struct file *file, unsigned int cmd) +{ + u32 mask = AA_MAY_LOCK; + + if (cmd == F_WRLCK) + mask |= MAY_WRITE; + + return common_file_perm(OP_FLOCK, file, mask); +} + +static int common_mmap(int op, struct file *file, unsigned long prot, + unsigned long flags) +{ + struct dentry *dentry; + int mask = 0; + + if (!file || !file->f_security) + return 0; + + if (prot & PROT_READ) + mask |= MAY_READ; + /* + * Private mappings don't require write perms since they don't + * write back to the files + */ + if ((prot & PROT_WRITE) && !(flags & MAP_PRIVATE)) + mask |= MAY_WRITE; + if (prot & PROT_EXEC) + mask |= AA_EXEC_MMAP; + + dentry = file->f_path.dentry; + return common_file_perm(op, file, mask); +} + +static int apparmor_file_mmap(struct file *file, unsigned long reqprot, + unsigned long prot, unsigned long flags, + unsigned long addr, unsigned long addr_only) +{ + int rc = 0; + + /* do DAC check */ + rc = cap_file_mmap(file, reqprot, prot, flags, addr, addr_only); + if (rc || addr_only) + return rc; + + return common_mmap(OP_FMMAP, file, prot, flags); +} + +static int apparmor_file_mprotect(struct vm_area_struct *vma, + unsigned long reqprot, unsigned long prot) +{ + return common_mmap(OP_FMPROT, vma->vm_file, prot, + !(vma->vm_flags & VM_SHARED) ? MAP_PRIVATE : 0); +} + +static int apparmor_getprocattr(struct task_struct *task, char *name, + char **value) +{ + int error = -ENOENT; + struct aa_profile *profile; + /* released below */ + const struct cred *cred = get_task_cred(task); + struct aa_task_cxt *cxt = cred->security; + profile = aa_cred_profile(cred); + + if (strcmp(name, "current") == 0) + error = aa_getprocattr(aa_newest_version(cxt->profile), + value); + else if (strcmp(name, "prev") == 0 && cxt->previous) + error = aa_getprocattr(aa_newest_version(cxt->previous), + value); + else if (strcmp(name, "exec") == 0 && cxt->onexec) + error = aa_getprocattr(aa_newest_version(cxt->onexec), + value); + else + error = -EINVAL; + + put_cred(cred); + + return error; +} + +static int apparmor_setprocattr(struct task_struct *task, char *name, + void *value, size_t size) +{ + char *command, *args = value; + size_t arg_size; + int error; + + if (size == 0) + return -EINVAL; + /* args points to a PAGE_SIZE buffer, AppArmor requires that + * the buffer must be null terminated or have size <= PAGE_SIZE -1 + * so that AppArmor can null terminate them + */ + if (args[size - 1] != '\0') { + if (size == PAGE_SIZE) + return -EINVAL; + args[size] = '\0'; + } + + /* task can only write its own attributes */ + if (current != task) + return -EACCES; + + args = value; + args = strim(args); + command = strsep(&args, " "); + if (!args) + return -EINVAL; + args = skip_spaces(args); + if (!*args) + return -EINVAL; + + arg_size = size - (args - (char *) value); + if (strcmp(name, "current") == 0) { + if (strcmp(command, "changehat") == 0) { + error = aa_setprocattr_changehat(args, arg_size, + !AA_DO_TEST); + } else if (strcmp(command, "permhat") == 0) { + error = aa_setprocattr_changehat(args, arg_size, + AA_DO_TEST); + } else if (strcmp(command, "changeprofile") == 0) { + error = aa_setprocattr_changeprofile(args, !AA_ONEXEC, + !AA_DO_TEST); + } else if (strcmp(command, "permprofile") == 0) { + error = aa_setprocattr_changeprofile(args, !AA_ONEXEC, + AA_DO_TEST); + } else if (strcmp(command, "permipc") == 0) { + error = aa_setprocattr_permipc(args); + } else { + struct common_audit_data sa; + COMMON_AUDIT_DATA_INIT(&sa, NONE); + sa.aad.op = OP_SETPROCATTR; + sa.aad.info = name; + sa.aad.error = -EINVAL; + return aa_audit(AUDIT_APPARMOR_DENIED, NULL, GFP_KERNEL, + &sa, NULL); + } + } else if (strcmp(name, "exec") == 0) { + error = aa_setprocattr_changeprofile(args, AA_ONEXEC, + !AA_DO_TEST); + } else { + /* only support the "current" and "exec" process attributes */ + return -EINVAL; + } + if (!error) + error = size; + return error; +} + +static int apparmor_task_setrlimit(unsigned int resource, + struct rlimit *new_rlim) +{ + struct aa_profile *profile = aa_current_profile(); + int error = 0; + + if (!unconfined(profile)) + error = aa_task_setrlimit(profile, resource, new_rlim); + + return error; +} + +static int apparmor_socket_create(int family, int type, int protocol, int kern) +{ + struct aa_profile *profile; + int error = 0; + + if (kern) + return 0; + + profile = __aa_current_profile(); + if (!unconfined(profile)) + error = aa_net_perm(OP_CREATE, profile, family, type, protocol, + NULL); + return error; +} + +static int apparmor_socket_bind(struct socket *sock, + struct sockaddr *address, int addrlen) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_BIND, sk); +} + +static int apparmor_socket_connect(struct socket *sock, + struct sockaddr *address, int addrlen) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_CONNECT, sk); +} + +static int apparmor_socket_listen(struct socket *sock, int backlog) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_LISTEN, sk); +} + +static int apparmor_socket_accept(struct socket *sock, struct socket *newsock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_ACCEPT, sk); +} + +static int apparmor_socket_sendmsg(struct socket *sock, + struct msghdr *msg, int size) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_SENDMSG, sk); +} + +static int apparmor_socket_recvmsg(struct socket *sock, + struct msghdr *msg, int size, int flags) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_RECVMSG, sk); +} + +static int apparmor_socket_getsockname(struct socket *sock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_GETSOCKNAME, sk); +} + +static int apparmor_socket_getpeername(struct socket *sock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_GETPEERNAME, sk); +} + +static int apparmor_socket_getsockopt(struct socket *sock, int level, + int optname) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_GETSOCKOPT, sk); +} + +static int apparmor_socket_setsockopt(struct socket *sock, int level, + int optname) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_SETSOCKOPT, sk); +} + +static int apparmor_socket_shutdown(struct socket *sock, int how) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_SOCK_SHUTDOWN, sk); +} + +static struct security_operations apparmor_ops = { + .name = "apparmor", + + .ptrace_access_check = apparmor_ptrace_access_check, + .ptrace_traceme = apparmor_ptrace_traceme, + .capget = apparmor_capget, + .capable = apparmor_capable, + + .path_link = apparmor_path_link, + .path_unlink = apparmor_path_unlink, + .path_symlink = apparmor_path_symlink, + .path_mkdir = apparmor_path_mkdir, + .path_rmdir = apparmor_path_rmdir, + .path_mknod = apparmor_path_mknod, + .path_rename = apparmor_path_rename, + .path_chmod = apparmor_path_chmod, + .path_chown = apparmor_path_chown, + .path_truncate = apparmor_path_truncate, + .dentry_open = apparmor_dentry_open, + .inode_getattr = apparmor_inode_getattr, + + .file_permission = apparmor_file_permission, + .file_alloc_security = apparmor_file_alloc_security, + .file_free_security = apparmor_file_free_security, + .file_mmap = apparmor_file_mmap, + .file_mprotect = apparmor_file_mprotect, + .file_lock = apparmor_file_lock, + + .getprocattr = apparmor_getprocattr, + .setprocattr = apparmor_setprocattr, + + .socket_create = apparmor_socket_create, + .socket_bind = apparmor_socket_bind, + .socket_connect = apparmor_socket_connect, + .socket_listen = apparmor_socket_listen, + .socket_accept = apparmor_socket_accept, + .socket_sendmsg = apparmor_socket_sendmsg, + .socket_recvmsg = apparmor_socket_recvmsg, + .socket_getsockname = apparmor_socket_getsockname, + .socket_getpeername = apparmor_socket_getpeername, + .socket_getsockopt = apparmor_socket_getsockopt, + .socket_setsockopt = apparmor_socket_setsockopt, + .socket_shutdown = apparmor_socket_shutdown, + + .cred_alloc_blank = apparmor_cred_alloc_blank, + .cred_free = apparmor_cred_free, + .cred_prepare = apparmor_cred_prepare, + .cred_transfer = apparmor_cred_transfer, + + .bprm_set_creds = apparmor_bprm_set_creds, + .bprm_committing_creds = apparmor_bprm_committing_creds, + .bprm_committed_creds = apparmor_bprm_committed_creds, + .bprm_secureexec = apparmor_bprm_secureexec, + + .task_setrlimit = apparmor_task_setrlimit, +}; + +/* + * AppArmor sysfs module parameters + */ + +static int param_set_aabool(const char *val, struct kernel_param *kp); +static int param_get_aabool(char *buffer, struct kernel_param *kp); +#define param_check_aabool(name, p) __param_check(name, p, int) + +static int param_set_aauint(const char *val, struct kernel_param *kp); +static int param_get_aauint(char *buffer, struct kernel_param *kp); +#define param_check_aauint(name, p) __param_check(name, p, int) + +static int param_set_aalockpolicy(const char *val, struct kernel_param *kp); +static int param_get_aalockpolicy(char *buffer, struct kernel_param *kp); +#define param_check_aalockpolicy(name, p) __param_check(name, p, int) + +static int param_set_audit(const char *val, struct kernel_param *kp); +static int param_get_audit(char *buffer, struct kernel_param *kp); +#define param_check_audit(name, p) __param_check(name, p, int) + +static int param_set_mode(const char *val, struct kernel_param *kp); +static int param_get_mode(char *buffer, struct kernel_param *kp); +#define param_check_mode(name, p) __param_check(name, p, int) + +/* Flag values, also controllable via /sys/module/apparmor/parameters + * We define special types as we want to do additional mediation. + */ + +/* AppArmor global enforcement switch - complain, enforce, kill */ +enum profile_mode aa_g_profile_mode = APPARMOR_ENFORCE; +module_param_call(mode, param_set_mode, param_get_mode, + &aa_g_profile_mode, S_IRUSR | S_IWUSR); + +/* Debug mode */ +int aa_g_debug; +module_param_named(debug, aa_g_debug, aabool, S_IRUSR | S_IWUSR); + +/* Audit mode */ +enum audit_mode aa_g_audit; +module_param_call(audit, param_set_audit, param_get_audit, + &aa_g_audit, S_IRUSR | S_IWUSR); + +/* Determines if audit header is included in audited messages. This + * provides more context if the audit daemon is not running + */ +int aa_g_audit_header = 1; +module_param_named(audit_header, aa_g_audit_header, aabool, + S_IRUSR | S_IWUSR); + +/* lock out loading/removal of policy + * TODO: add in at boot loading of policy, which is the only way to + * load policy, if lock_policy is set + */ +int aa_g_lock_policy; +module_param_named(lock_policy, aa_g_lock_policy, aalockpolicy, + S_IRUSR | S_IWUSR); + +/* Syscall logging mode */ +int aa_g_logsyscall; +module_param_named(logsyscall, aa_g_logsyscall, aabool, S_IRUSR | S_IWUSR); + +/* Maximum pathname length before accesses will start getting rejected */ +unsigned int aa_g_path_max = 2 * PATH_MAX; +module_param_named(path_max, aa_g_path_max, aauint, S_IRUSR | S_IWUSR); + +/* Determines how paranoid loading of policy is and how much verification + * on the loaded policy is done. + */ +int aa_g_paranoid_load = 1; +module_param_named(paranoid_load, aa_g_paranoid_load, aabool, + S_IRUSR | S_IWUSR); + +/* Boot time disable flag */ +static unsigned int apparmor_enabled = CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE; +module_param_named(enabled, apparmor_enabled, aabool, S_IRUSR); + +static int __init apparmor_enabled_setup(char *str) +{ + unsigned long enabled; + int error = strict_strtoul(str, 0, &enabled); + if (!error) + apparmor_enabled = enabled ? 1 : 0; + return 1; +} + +__setup("apparmor=", apparmor_enabled_setup); + +/* set global flag turning off the ability to load policy */ +static int param_set_aalockpolicy(const char *val, struct kernel_param *kp) +{ + if (!capable(CAP_MAC_ADMIN)) + return -EPERM; + if (aa_g_lock_policy) + return -EACCES; + return param_set_bool(val, kp); +} + +static int param_get_aalockpolicy(char *buffer, struct kernel_param *kp) +{ + if (!capable(CAP_MAC_ADMIN)) + return -EPERM; + return param_get_bool(buffer, kp); +} + +static int param_set_aabool(const char *val, struct kernel_param *kp) +{ + if (!capable(CAP_MAC_ADMIN)) + return -EPERM; + return param_set_bool(val, kp); +} + +static int param_get_aabool(char *buffer, struct kernel_param *kp) +{ + if (!capable(CAP_MAC_ADMIN)) + return -EPERM; + return param_get_bool(buffer, kp); +} + +static int param_set_aauint(const char *val, struct kernel_param *kp) +{ + if (!capable(CAP_MAC_ADMIN)) + return -EPERM; + return param_set_uint(val, kp); +} + +static int param_get_aauint(char *buffer, struct kernel_param *kp) +{ + if (!capable(CAP_MAC_ADMIN)) + return -EPERM; + return param_get_uint(buffer, kp); +} + +static int param_get_audit(char *buffer, struct kernel_param *kp) +{ + if (!capable(CAP_MAC_ADMIN)) + return -EPERM; + + if (!apparmor_enabled) + return -EINVAL; + + return sprintf(buffer, "%s", audit_mode_names[aa_g_audit]); +} + +static int param_set_audit(const char *val, struct kernel_param *kp) +{ + int i; + if (!capable(CAP_MAC_ADMIN)) + return -EPERM; + + if (!apparmor_enabled) + return -EINVAL; + + if (!val) + return -EINVAL; + + for (i = 0; i < AUDIT_MAX_INDEX; i++) { + if (strcmp(val, audit_mode_names[i]) == 0) { + aa_g_audit = i; + return 0; + } + } + + return -EINVAL; +} + +static int param_get_mode(char *buffer, struct kernel_param *kp) +{ + if (!capable(CAP_MAC_ADMIN)) + return -EPERM; + + if (!apparmor_enabled) + return -EINVAL; + + return sprintf(buffer, "%s", profile_mode_names[aa_g_profile_mode]); +} + +static int param_set_mode(const char *val, struct kernel_param *kp) +{ + int i; + if (!capable(CAP_MAC_ADMIN)) + return -EPERM; + + if (!apparmor_enabled) + return -EINVAL; + + if (!val) + return -EINVAL; + + for (i = 0; i < APPARMOR_NAMES_MAX_INDEX; i++) { + if (strcmp(val, profile_mode_names[i]) == 0) { + aa_g_profile_mode = i; + return 0; + } + } + + return -EINVAL; +} + +/* + * AppArmor init functions + */ + +/** + * set_init_cxt - set a task context and profile on the first task. + * + * TODO: allow setting an alternate profile than unconfined + */ +static int __init set_init_cxt(void) +{ + struct cred *cred = (struct cred *)current->real_cred; + struct aa_task_cxt *cxt; + + cxt = aa_alloc_task_context(GFP_KERNEL); + if (!cxt) + return -ENOMEM; + + cxt->profile = aa_get_profile(root_ns->unconfined); + cred->security = cxt; + + return 0; +} + +static int __init apparmor_init(void) +{ + int error; + + if (!apparmor_enabled || !security_module_enable(&apparmor_ops)) { + aa_info_message("AppArmor disabled by boot time parameter"); + apparmor_enabled = 0; + return 0; + } + + error = aa_alloc_root_ns(); + if (error) { + AA_ERROR("Unable to allocate default profile namespace\n"); + goto alloc_out; + } + + error = set_init_cxt(); + if (error) { + AA_ERROR("Failed to set context on init task\n"); + goto register_security_out; + } + + error = register_security(&apparmor_ops); + if (error) { + AA_ERROR("Unable to register AppArmor\n"); + goto register_security_out; + } + + /* Report that AppArmor successfully initialized */ + apparmor_initialized = 1; + if (aa_g_profile_mode == APPARMOR_COMPLAIN) + aa_info_message("AppArmor initialized: complain mode enabled"); + else if (aa_g_profile_mode == APPARMOR_KILL) + aa_info_message("AppArmor initialized: kill mode enabled"); + else + aa_info_message("AppArmor initialized"); + + return error; + +register_security_out: + aa_free_root_ns(); + +alloc_out: + aa_destroy_aafs(); + + apparmor_enabled = 0; + return error; + +} + +security_initcall(apparmor_init); --- linux-2.6.35.orig/security/apparmor/apparmorfs-24.c +++ linux-2.6.35/security/apparmor/apparmorfs-24.c @@ -0,0 +1,287 @@ +/* + * AppArmor security module + * + * This file contains AppArmor /sys/kernel/secrutiy/apparmor interface functions + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * + * This file contain functions providing an interface for <= AppArmor 2.4 + * compatibility. It is dependent on CONFIG_SECURITY_APPARMOR_COMPAT_24 + * being set (see Makefile). + */ + +#include +#include +#include +#include +#include +#include + +#include "include/apparmor.h" +#include "include/audit.h" +#include "include/context.h" +#include "include/policy.h" + + +/* apparmor/matching */ +static ssize_t aa_matching_read(struct file *file, char __user *buf, + size_t size, loff_t *ppos) +{ + const char matching[] = "pattern=aadfa audit perms=crwxamlk/ " + "user::other"; + + return simple_read_from_buffer(buf, size, ppos, matching, + sizeof(matching) - 1); +} + +const struct file_operations aa_fs_matching_fops = { + .read = aa_matching_read, +}; + +/* apparmor/features */ +static ssize_t aa_features_read(struct file *file, char __user *buf, + size_t size, loff_t *ppos) +{ + const char features[] = "file=3.1 capability=2.0 network=1.0 " + "change_hat=1.5 change_profile=1.1 " "aanamespaces=1.1 rlimit=1.1"; + + return simple_read_from_buffer(buf, size, ppos, features, + sizeof(features) - 1); +} + +const struct file_operations aa_fs_features_fops = { + .read = aa_features_read, +}; + +/** + * __next_namespace - find the next namespace to list + * @root: root namespace to stop search at (NOT NULL) + * @ns: current ns position (NOT NULL) + * + * Find the next namespace from @ns under @root and handle all locking needed + * while switching current namespace. + * + * Returns: next namespace or NULL if at last namespace under @root + * NOTE: will not unlock root->lock + */ +static struct aa_namespace *__next_namespace(struct aa_namespace *root, + struct aa_namespace *ns) +{ + struct aa_namespace *parent; + + /* is next namespace a child */ + if (!list_empty(&ns->sub_ns)) { + struct aa_namespace *next; + next = list_first_entry(&ns->sub_ns, typeof(*ns), base.list); + read_lock(&next->lock); + return next; + } + + /* check if the next ns is a sibling, parent, gp, .. */ + parent = ns->parent; + while (parent) { + read_unlock(&ns->lock); + list_for_each_entry_continue(ns, &parent->sub_ns, base.list) { + read_lock(&ns->lock); + return ns; + } + if (parent == root) + return NULL; + ns = parent; + parent = parent->parent; + } + + return NULL; +} + +/** + * __first_profile - find the first profile in a namespace + * @root: namespace that is root of profiles being displayed (NOT NULL) + * @ns: namespace to start in (NOT NULL) + * + * Returns: unrefcounted profile or NULL if no profile + */ +static struct aa_profile *__first_profile(struct aa_namespace *root, + struct aa_namespace *ns) +{ + for ( ; ns; ns = __next_namespace(root, ns)) { + if (!list_empty(&ns->base.profiles)) + return list_first_entry(&ns->base.profiles, + struct aa_profile, base.list); + } + return NULL; +} + +/** + * __next_profile - step to the next profile in a profile tree + * @profile: current profile in tree (NOT NULL) + * + * Perform a depth first taversal on the profile tree in a namespace + * + * Returns: next profile or NULL if done + * Requires: profile->ns.lock to be held + */ +static struct aa_profile *__next_profile(struct aa_profile *p) +{ + struct aa_profile *parent; + struct aa_namespace *ns = p->ns; + + /* is next profile a child */ + if (!list_empty(&p->base.profiles)) + return list_first_entry(&p->base.profiles, typeof(*p), + base.list); + + /* is next profile a sibling, parent sibling, gp, subling, .. */ + parent = p->parent; + while (parent) { + list_for_each_entry_continue(p, &parent->base.profiles, + base.list) + return p; + p = parent; + parent = parent->parent; + } + + /* is next another profile in the namespace */ + list_for_each_entry_continue(p, &ns->base.profiles, base.list) + return p; + + return NULL; +} + +/** + * next_profile - step to the next profile in where ever it may be + * @root: root namespace (NOT NULL) + * @profile: current profile (NOT NULL) + * + * Returns: next profile or NULL if there isn't one + */ +static struct aa_profile *next_profile(struct aa_namespace *root, + struct aa_profile *profile) +{ + struct aa_profile *next = __next_profile(profile); + if (next) + return next; + + /* finished all profiles in namespace move to next namespace */ + return __first_profile(root, __next_namespace(root, profile->ns)); +} + +/** + * p_start - start a depth first traversal of profile tree + * @f: seq_file to fill + * @pos: current position + * + * Returns: first profile under current namespace or NULL if none found + * + * acquires first ns->lock + */ +static void *p_start(struct seq_file *f, loff_t *pos) + __acquires(root->lock) +{ + struct aa_profile *profile = NULL; + struct aa_namespace *root = aa_current_profile()->ns; + loff_t l = *pos; + f->private = aa_get_namespace(root); + + + /* find the first profile */ + read_lock(&root->lock); + profile = __first_profile(root, root); + + /* skip to position */ + for (; profile && l > 0; l--) + profile = next_profile(root, profile); + + return profile; +} + +/** + * p_next - read the next profile entry + * @f: seq_file to fill + * @p: profile previously returned + * @pos: current position + * + * Returns: next profile after @p or NULL if none + * + * may acquire/release locks in namespace tree as necessary + */ +static void *p_next(struct seq_file *f, void *p, loff_t *pos) +{ + struct aa_profile *profile = p; + struct aa_namespace *root = f->private; + (*pos)++; + + return next_profile(root, profile); +} + +/** + * p_stop - stop depth first traversal + * @f: seq_file we are filling + * @p: the last profile writen + * + * Release all locking done by p_start/p_next on namespace tree + */ +static void p_stop(struct seq_file *f, void *p) + __releases(root->lock) +{ + struct aa_profile *profile = p; + struct aa_namespace *root = f->private, *ns; + + if (profile) { + for (ns = profile->ns; ns && ns != root; ns = ns->parent) + read_unlock(&ns->lock); + } + read_unlock(&root->lock); + aa_put_namespace(root); +} + +/** + * seq_show_profile - show a profile entry + * @f: seq_file to file + * @p: current position (profile) (NOT NULL) + * + * Returns: error on failure + */ +static int seq_show_profile(struct seq_file *f, void *p) +{ + struct aa_profile *profile = (struct aa_profile *)p; + struct aa_namespace *root = f->private; + + if (profile->ns != root) + seq_printf(f, ":%s://", aa_ns_name(root, profile->ns)); + seq_printf(f, "%s (%s)\n", profile->base.hname, + COMPLAIN_MODE(profile) ? "complain" : "enforce"); + + return 0; +} + +static const struct seq_operations aa_fs_profiles_op = { + .start = p_start, + .next = p_next, + .stop = p_stop, + .show = seq_show_profile, +}; + +static int profiles_open(struct inode *inode, struct file *file) +{ + return seq_open(file, &aa_fs_profiles_op); +} + +static int profiles_release(struct inode *inode, struct file *file) +{ + return seq_release(inode, file); +} + +const struct file_operations aa_fs_profiles_fops = { + .open = profiles_open, + .read = seq_read, + .llseek = seq_lseek, + .release = profiles_release, +}; --- linux-2.6.35.orig/security/apparmor/domain.c +++ linux-2.6.35/security/apparmor/domain.c @@ -0,0 +1,823 @@ +/* + * AppArmor security module + * + * This file contains AppArmor policy attachment and domain transitions + * + * Copyright (C) 2002-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "include/audit.h" +#include "include/apparmorfs.h" +#include "include/context.h" +#include "include/domain.h" +#include "include/file.h" +#include "include/ipc.h" +#include "include/match.h" +#include "include/path.h" +#include "include/policy.h" + +/** + * aa_free_domain_entries - free entries in a domain table + * @domain: the domain table to free (MAYBE NULL) + */ +void aa_free_domain_entries(struct aa_domain *domain) +{ + int i; + if (domain) { + if (!domain->table) + return; + + for (i = 0; i < domain->size; i++) + kzfree(domain->table[i]); + kzfree(domain->table); + domain->table = NULL; + } +} + +/** + * may_change_ptraced_domain - check if can change profile on ptraced task + * @task: task we want to change profile of (NOT NULL) + * @to_profile: profile to change to (NOT NULL) + * + * Check if the task is ptraced and if so if the tracing task is allowed + * to trace the new domain + * + * Returns: %0 or error if change not allowed + */ +static int may_change_ptraced_domain(struct task_struct *task, + struct aa_profile *to_profile) +{ + struct task_struct *tracer; + struct cred *cred = NULL; + struct aa_profile *tracerp = NULL; + int error = 0; + + rcu_read_lock(); + tracer = tracehook_tracer_task(task); + if (tracer) { + /* released below */ + cred = get_task_cred(tracer); + tracerp = aa_cred_profile(cred); + } + rcu_read_unlock(); + + /* not ptraced */ + if (!tracer || unconfined(tracerp)) + goto out; + + error = aa_may_ptrace(tracer, tracerp, to_profile, PTRACE_MODE_ATTACH); + +out: + if (cred) + put_cred(cred); + + return error; +} + +/** + * change_profile_perms - find permissions for change_profile + * @profile: the current profile (NOT NULL) + * @ns: the namespace being switched to (NOT NULL) + * @name: the name of the profile to change to (NOT NULL) + * @request: requested perms + * @start: state to start matching in + * + * Returns: permission set + */ +static struct file_perms change_profile_perms(struct aa_profile *profile, + struct aa_namespace *ns, + const char *name, u32 request, + unsigned int start) +{ + struct file_perms perms; + struct path_cond cond = { }; + unsigned int state; + + if (unconfined(profile)) { + perms.allow = AA_MAY_CHANGE_PROFILE | AA_MAY_ONEXEC; + perms.audit = perms.quiet = perms.kill = 0; + return perms; + } else if (!profile->file.dfa) { + return nullperms; + } else if ((ns == profile->ns)) { + /* try matching against rules with out namespace prepended */ + aa_str_perms(profile->file.dfa, start, name, &cond, &perms); + if (COMBINED_PERM_MASK(perms) & request) + return perms; + } + + /* try matching with namespace name and then profile */ + state = aa_dfa_match(profile->file.dfa, start, ns->base.name); + state = aa_dfa_match_len(profile->file.dfa, state, ":", 1); + aa_str_perms(profile->file.dfa, state, name, &cond, &perms); + + return perms; +} + +/** + * __attach_match_ - find an attachment match + * @name - to match against (NOT NULL) + * @head - profile list to walk (NOT NULL) + * + * Do a linear search on the profiles in the list. There is a matching + * preference where an exact match is preferred over a name which uses + * expressions to match, and matching expressions with the greatest + * xmatch_len are preferred. + * + * Requires: @head not be shared or have appropriate locks held + * + * Returns: profile or NULL if no match found + */ +static struct aa_profile *__attach_match(const char *name, + struct list_head *head) +{ + int len = 0; + struct aa_profile *profile, *candidate = NULL; + + list_for_each_entry(profile, head, base.list) { + if (profile->flags & PFLAG_NULL) + continue; + if (profile->xmatch && profile->xmatch_len > len) { + unsigned int state = aa_dfa_match(profile->xmatch, + DFA_START, name); + u32 perm = dfa_user_allow(profile->xmatch, state); + /* any accepting state means a valid match. */ + if (perm & MAY_EXEC) { + candidate = profile; + len = profile->xmatch_len; + } + } else if (!strcmp(profile->base.name, name)) + /* exact non-re match, no more searching required */ + return profile; + } + + return candidate; +} + +/** + * find_attach - do attachment search for unconfined processes + * @ns: the current namespace (NOT NULL) + * @list: list to search (NOT NULL) + * @name: the executable name to match against (NOT NULL) + * + * Returns: profile or NULL if no match found + */ +static struct aa_profile *find_attach(struct aa_namespace *ns, + struct list_head *list, const char *name) +{ + struct aa_profile *profile; + + read_lock(&ns->lock); + profile = aa_get_profile(__attach_match(name, list)); + read_unlock(&ns->lock); + + return profile; +} + +/** + * separate_fqname - separate the namespace and profile names + * @fqname: the fqname name to split (NOT NULL) + * @ns_name: the namespace name if it exists (NOT NULL) + * + * This is the xtable equivalent routine of aa_split_fqname. It finds the + * split in an xtable fqname which contains an embedded \0 instead of a : + * if a namespace is specified. This is done so the xtable is constant and + * isn't re-split on every lookup. + * + * Either the profile or namespace name may be optional but if the namespace + * is specified the profile name termination must be present. This results + * in the following possible encodings: + * profile_name\0 + * :ns_name\0profile_name\0 + * :ns_name\0\0 + * + * NOTE: the xtable fqname is pre-validated at load time in unpack_trans_table + * + * Returns: profile name if it is specified else NULL + */ +static const char *separate_fqname(const char *fqname, const char **ns_name) +{ + const char *name; + + if (fqname[0] == ':') { + /* In this case there is guaranteed to be two \0 terminators + * in the string. They are verified at load time by + * by unpack_trans_table + */ + *ns_name = fqname + 1; /* skip : */ + name = *ns_name + strlen(*ns_name) + 1; + if (!*name) + name = NULL; + } else { + *ns_name = NULL; + name = fqname; + } + + return name; +} + +static const char *next_name(int xtype, const char *name) +{ + return NULL; +} + +/** + * x_table_lookup - lookup an x transition name via transition table + * @profile: current profile (NOT NULL) + * @xindex: index into x transition table + * + * Returns: refcounted profile, or NULL on failure (MAYBE NULL) + */ +static struct aa_profile *x_table_lookup(struct aa_profile *profile, u32 xindex) +{ + struct aa_profile *new_profile = NULL; + struct aa_namespace *ns = profile->ns; + u32 xtype = xindex & AA_X_TYPE_MASK; + int index = xindex & AA_X_INDEX_MASK; + const char *name; + + /* index is guaranteed to be in range, validated at load time */ + for (name = profile->file.trans.table[index]; !new_profile && name; + name = next_name(xtype, name)) { + struct aa_namespace *new_ns; + const char *xname = NULL; + + new_ns = NULL; + if (xindex & AA_X_CHILD) { + /* release by caller */ + new_profile = aa_find_child(profile, name); + continue; + } else if (*name == ':') { + /* switching namespace */ + const char *ns_name; + xname = name = separate_fqname(name, &ns_name); + if (!xname) + /* no name so use profile name */ + xname = profile->base.hname; + if (*ns_name == '@') { + /* TODO: variable support */ + ; + } + /* released below */ + new_ns = aa_find_namespace(ns, ns_name); + if (!new_ns) + continue; + } else if (*name == '@') { + /* TODO: variable support */ + continue; + } else { + /* basic namespace lookup */ + xname = name; + } + + /* released by caller */ + new_profile = aa_lookup_profile(new_ns ? new_ns : ns, xname); + aa_put_namespace(new_ns); + } + + /* released by caller */ + return new_profile; +} + +/** + * x_to_profile - get target profile for a given xindex + * @profile: current profile (NOT NULL) + * @name: name to lookup (NOT NULL) + * @xindex: index into x transition table + * + * find profile for a transition index + * + * Returns: refcounted profile or NULL if not found available + */ +static struct aa_profile *x_to_profile(struct aa_profile *profile, + const char *name, u32 xindex) +{ + struct aa_profile *new_profile = NULL; + struct aa_namespace *ns = profile->ns; + u32 xtype = xindex & AA_X_TYPE_MASK; + + switch (xtype) { + case AA_X_NONE: + /* fail exec unless ix || ux fallback - handled by caller */ + return NULL; + case AA_X_NAME: + if (xindex & AA_X_CHILD) + /* released by caller */ + new_profile = find_attach(ns, &profile->base.profiles, + name); + else + /* released by caller */ + new_profile = find_attach(ns, &ns->base.profiles, + name); + break; + case AA_X_TABLE: + /* released by caller */ + new_profile = x_table_lookup(profile, xindex); + break; + } + + /* released by caller */ + return new_profile; +} + +/** + * apparmor_bprm_set_creds - set the new creds on the bprm struct + * @bprm: binprm for the exec (NOT NULL) + * + * Returns: %0 or error on failure + */ +int apparmor_bprm_set_creds(struct linux_binprm *bprm) +{ + struct aa_task_cxt *cxt; + struct aa_profile *profile, *new_profile = NULL; + struct aa_namespace *ns; + char *buffer = NULL; + unsigned int state; + struct file_perms perms = {}; + struct path_cond cond = { + bprm->file->f_path.dentry->d_inode->i_uid, + bprm->file->f_path.dentry->d_inode->i_mode + }; + const char *name = NULL, *target = NULL, *info = NULL; + int error = cap_bprm_set_creds(bprm); + if (error) + return error; + + if (bprm->cred_prepared) + return 0; + + cxt = bprm->cred->security; + BUG_ON(!cxt); + + profile = aa_get_profile(aa_newest_version(cxt->profile)); + /* + * get the namespace from the replacement profile as replacement + * can change the namespace + */ + ns = profile->ns; + state = profile->file.start; + + /* buffer freed below, name is pointer into buffer */ + error = aa_get_name(&bprm->file->f_path, profile->path_flags, &buffer, + &name); + if (error) { + if (profile->flags & + (PFLAG_IX_ON_NAME_ERROR | PFLAG_UNCONFINED)) + error = 0; + info = "Exec failed name resolution"; + name = bprm->filename; + goto audit; + } + + /* Test for onexec first as onexec directives override other + * x transitions. + */ + if (unconfined(profile)) { + /* unconfined task */ + if (cxt->onexec) + /* change_profile on exec already been granted */ + new_profile = aa_get_profile(cxt->onexec); + else + new_profile = find_attach(ns, &ns->base.profiles, name); + if (!new_profile) + goto cleanup; + goto apply; + } + + /* find exec permissions for name */ + state = aa_str_perms(profile->file.dfa, state, name, &cond, &perms); + if (cxt->onexec) { + struct file_perms cp; + info = "change_profile onexec"; + if (!(perms.allow & AA_MAY_ONEXEC)) + goto audit; + + /* test if this exec can be paired with change_profile onexec. + * onexec permission is linked to exec with a standard pairing + * exec\0change_profile + */ + state = aa_dfa_null_transition(profile->file.dfa, state); + cp = change_profile_perms(profile, cxt->onexec->ns, name, + AA_MAY_ONEXEC, state); + + if (!(cp.allow & AA_MAY_ONEXEC)) + goto audit; + new_profile = aa_get_profile(aa_newest_version(cxt->onexec)); + goto apply; + } + + if (perms.allow & MAY_EXEC) { + /* exec permission determine how to transition */ + new_profile = x_to_profile(profile, name, perms.xindex); + if (!new_profile) { + if (perms.xindex & AA_X_INHERIT) { + /* (p|c|n)ix - don't change profile but do + * use the newest version, which was picked + * up above when getting profile + */ + info = "ix fallback"; + new_profile = aa_get_profile(profile); + goto x_clear; + } else if (perms.xindex & AA_X_UNCONFINED) { + new_profile = aa_get_profile(ns->unconfined); + info = "ux fallback"; + } else { + error = -ENOENT; + info = "profile not found"; + } + } + } else if (COMPLAIN_MODE(profile)) { + /* no exec permission - are we in learning mode */ + new_profile = aa_new_null_profile(profile, 0); + if (!new_profile) { + error = -ENOMEM; + info = "could not create null profile"; + } else { + error = -EACCES; + target = new_profile->base.hname; + } + perms.xindex |= AA_X_UNSAFE; + } else + /* fail exec */ + error = -EACCES; + + if (!new_profile) + goto audit; + + if (bprm->unsafe & LSM_UNSAFE_SHARE) { + /* FIXME: currently don't mediate shared state */ + ; + } + + if (bprm->unsafe & (LSM_UNSAFE_PTRACE | LSM_UNSAFE_PTRACE_CAP)) { + error = may_change_ptraced_domain(current, new_profile); + if (error) { + aa_put_profile(new_profile); + goto audit; + } + } + + /* Determine if secure exec is needed. + * Can be at this point for the following reasons: + * 1. unconfined switching to confined + * 2. confined switching to different confinement + * 3. confined switching to unconfined + * + * Cases 2 and 3 are marked as requiring secure exec + * (unless policy specified "unsafe exec") + * + * bprm->unsafe is used to cache the AA_X_UNSAFE permission + * to avoid having to recompute in secureexec + */ + if (!(perms.xindex & AA_X_UNSAFE)) { + AA_DEBUG("scrubbing environment variables for %s profile=%s\n", + name, new_profile->base.hname); + bprm->unsafe |= AA_SECURE_X_NEEDED; + } +apply: + target = new_profile->base.hname; + /* when transitioning profiles clear unsafe personality bits */ + bprm->per_clear |= PER_CLEAR_ON_SETID; + +x_clear: + aa_put_profile(cxt->profile); + /* transfer new profile reference will be released when cxt is freed */ + cxt->profile = new_profile; + + /* clear out all temporary/transitional state from the context */ + aa_put_profile(cxt->previous); + aa_put_profile(cxt->onexec); + cxt->previous = NULL; + cxt->onexec = NULL; + cxt->token = 0; + +audit: + error = aa_audit_file(profile, &perms, GFP_KERNEL, OP_EXEC, MAY_EXEC, + name, target, cond.uid, info, error); + +cleanup: + aa_put_profile(profile); + kfree(buffer); + + return error; +} + +/** + * apparmor_bprm_secureexec - determine if secureexec is needed + * @bprm: binprm for exec (NOT NULL) + * + * Returns: %1 if secureexec is needed else %0 + */ +int apparmor_bprm_secureexec(struct linux_binprm *bprm) +{ + int ret = cap_bprm_secureexec(bprm); + + /* the decision to use secure exec is computed in set_creds + * and stored in bprm->unsafe. + */ + if (!ret && (bprm->unsafe & AA_SECURE_X_NEEDED)) + ret = 1; + + return ret; +} + +/** + * apparmor_bprm_committing_creds - do task cleanup on committing new creds + * @bprm: binprm for the exec (NOT NULL) + */ +void apparmor_bprm_committing_creds(struct linux_binprm *bprm) +{ + struct aa_profile *profile = __aa_current_profile(); + struct aa_task_cxt *new_cxt = bprm->cred->security; + + /* bail out if unconfined or not changing profile */ + if ((new_cxt->profile == profile) || + (unconfined(new_cxt->profile))) + return; + + current->pdeath_signal = 0; + + /* reset soft limits and set hard limits for the new profile */ + __aa_transition_rlimits(profile, new_cxt->profile); +} + +/** + * apparmor_bprm_commited_cred - do cleanup after new creds committed + * @bprm: binprm for the exec (NOT NULL) + */ +void apparmor_bprm_committed_creds(struct linux_binprm *bprm) +{ + /* TODO: cleanup signals - ipc mediation */ + return; +} + +/* + * Functions for self directed profile change + */ + +/** + * new_compound_name - create an hname with @n2 appended to @n1 + * @n1: base of hname (NOT NULL) + * @n2: name to append (NOT NULL) + * + * Returns: new name or NULL on error + */ +static char *new_compound_name(const char *n1, const char *n2) +{ + char *name = kmalloc(strlen(n1) + strlen(n2) + 3, GFP_KERNEL); + if (name) + sprintf(name, "%s//%s", n1, n2); + return name; +} + +/** + * aa_change_hat - change hat to/from subprofile + * @hats: vector of hat names to try changing into (MAYBE NULL if @count == 0) + * @count: number of hat names in @hats + * @token: magic value to validate the hat change + * @permtest: true if this is just a permission test + * + * Change to the first profile specified in @hats that exists, and store + * the @hat_magic in the current task context. If the count == 0 and the + * @token matches that stored in the current task context, return to the + * top level profile. + * + * Returns %0 on success, error otherwise. + */ +int aa_change_hat(const char *hats[], int count, u64 token, bool permtest) +{ + const struct cred *cred; + struct aa_task_cxt *cxt; + struct aa_profile *profile, *previous_profile, *hat = NULL; + char *name = NULL; + int i; + struct file_perms perms = {}; + const char *target = NULL, *info = NULL; + int error = 0; + + /* released below */ + cred = get_current_cred(); + cxt = cred->security; + profile = aa_cred_profile(cred); + previous_profile = cxt->previous; + + if (unconfined(profile)) { + info = "unconfined"; + error = -EPERM; + goto audit; + } + + if (count) { + /* attempting to change into a new hat or switch to a sibling */ + struct aa_profile *root; + root = PROFILE_IS_HAT(profile) ? profile->parent : profile; + + /* find first matching hat */ + for (i = 0; i < count && !hat; i++) + /* released below */ + hat = aa_find_child(root, hats[i]); + if (!hat) { + if (!COMPLAIN_MODE(root) || permtest) { + if (list_empty(&root->base.profiles)) + error = -ECHILD; + else + error = -ENOENT; + goto out; + } + + /* + * In complain mode and failed to match any hats. + * Audit the failure is based off of the first hat + * supplied. This is done due how userspace + * interacts with change_hat. + * + * TODO: Add logging of all failed hats + */ + + /* freed below */ + name = new_compound_name(root->base.hname, hats[0]); + target = name; + /* released below */ + hat = aa_new_null_profile(profile, 1); + if (!hat) { + info = "failed null profile create"; + error = -ENOMEM; + goto audit; + } + } else { + target = hat->base.hname; + if (!PROFILE_IS_HAT(hat)) { + info = "target not hat"; + error = -EPERM; + goto audit; + } + } + + error = may_change_ptraced_domain(current, hat); + if (error) { + info = "ptraced"; + error = -EPERM; + goto audit; + } + + if (!permtest) { + error = aa_set_current_hat(hat, token); + if (error == -EACCES) + /* kill task in case of brute force attacks */ + perms.kill = AA_MAY_CHANGEHAT; + else if (name && !error) + /* reset error for learning of new hats */ + error = -ENOENT; + } + } else if (previous_profile) { + /* Return to saved profile. Kill task if restore fails + * to avoid brute force attacks + */ + target = previous_profile->base.hname; + error = aa_restore_previous_profile(token); + perms.kill = AA_MAY_CHANGEHAT; + } else + /* ignore restores when there is no saved profile */ + goto out; + +audit: + if (!permtest) + error = aa_audit_file(profile, &perms, GFP_KERNEL, + OP_CHANGE_HAT, AA_MAY_CHANGEHAT, NULL, + target, 0, info, error); + +out: + aa_put_profile(hat); + kfree(name); + put_cred(cred); + + return error; +} + +/** + * aa_change_profile - perform a one-way profile transition + * @ns_name: name of the profile namespace to change to (MAYBE NULL) + * @hname: name of profile to change to (MAYBE NULL) + * @onexec: whether this transition is to take place immediately or at exec + * @permtest: true if this is just a permission test + * + * Change to new profile @name. Unlike with hats, there is no way + * to change back. If @name isn't specified the current profile name is + * used. + * If @onexec then the transition is delayed until + * the next exec. + * + * Returns %0 on success, error otherwise. + */ +int aa_change_profile(const char *ns_name, const char *hname, bool onexec, + bool permtest) +{ + const struct cred *cred; + struct aa_task_cxt *cxt; + struct aa_profile *profile, *target = NULL; + struct aa_namespace *ns = NULL; + struct file_perms perms = {}; + const char *name = NULL, *info = NULL; + int op, error = 0; + u32 request; + + if (!hname && !ns_name) + return -EINVAL; + + if (onexec) { + request = AA_MAY_ONEXEC; + op = OP_CHANGE_ONEXEC; + } else { + request = AA_MAY_CHANGE_PROFILE; + op = OP_CHANGE_PROFILE; + } + + cred = get_current_cred(); + cxt = cred->security; + profile = aa_cred_profile(cred); + + if (ns_name) { + /* released below */ + ns = aa_find_namespace(profile->ns, ns_name); + if (!ns) { + /* we don't create new namespace in complain mode */ + name = ns_name; + info = "namespace not found"; + error = -ENOENT; + goto audit; + } + } else + /* released below */ + ns = aa_get_namespace(profile->ns); + + /* if the name was not specified, use the name of the current profile */ + if (!hname) { + if (unconfined(profile)) + hname = ns->unconfined->base.hname; + else + hname = profile->base.hname; + } + + perms = change_profile_perms(profile, ns, hname, request, + profile->file.start); + if (!(perms.allow & request)) { + error = -EACCES; + goto audit; + } + + /* released below */ + target = aa_lookup_profile(ns, hname); + if (!target) { + info = "profile not found"; + error = -ENOENT; + if (permtest || !COMPLAIN_MODE(profile)) + goto audit; + /* released below */ + target = aa_new_null_profile(profile, 0); + if (!target) { + info = "failed null profile create"; + error = -ENOMEM; + goto audit; + } + } + + /* check if tracing task is allowed to trace target domain */ + error = may_change_ptraced_domain(current, target); + if (error) { + info = "ptrace prevents transition"; + goto audit; + } + + if (permtest) + goto audit; + + if (onexec) + error = aa_set_current_onexec(target); + else + error = aa_replace_current_profile(target); + +audit: + if (!permtest) + error = aa_audit_file(profile, &perms, GFP_KERNEL, op, request, + name, hname, 0, info, error); + + aa_put_namespace(ns); + aa_put_profile(target); + put_cred(cred); + + return error; +} --- linux-2.6.35.orig/security/apparmor/file.c +++ linux-2.6.35/security/apparmor/file.c @@ -0,0 +1,457 @@ +/* + * AppArmor security module + * + * This file contains AppArmor mediation of files + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include "include/apparmor.h" +#include "include/audit.h" +#include "include/file.h" +#include "include/match.h" +#include "include/path.h" +#include "include/policy.h" + +struct file_perms nullperms; + + +/** + * audit_file_mask - convert mask to permission string + * @buffer: buffer to write string to (NOT NULL) + * @mask: permission mask to convert + */ +static void audit_file_mask(struct audit_buffer *ab, u32 mask) +{ + char str[10]; + + char *m = str; + + if (mask & AA_EXEC_MMAP) + *m++ = 'm'; + if (mask & (MAY_READ | AA_MAY_META_READ)) + *m++ = 'r'; + if (mask & (MAY_WRITE | AA_MAY_META_WRITE | AA_MAY_CHMOD | + AA_MAY_CHOWN)) + *m++ = 'w'; + else if (mask & MAY_APPEND) + *m++ = 'a'; + if (mask & AA_MAY_CREATE) + *m++ = 'c'; + if (mask & AA_MAY_DELETE) + *m++ = 'd'; + if (mask & AA_MAY_LINK) + *m++ = 'l'; + if (mask & AA_MAY_LOCK) + *m++ = 'k'; + if (mask & MAY_EXEC) + *m++ = 'x'; + *m = '\0'; + + audit_log_string(ab, str); +} + +/** + * file_audit_cb - call back for file specific audit fields + * @ab: audit_buffer (NOT NULL) + * @va: audit struct to audit values of (NOT NULL) + */ +static void file_audit_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + uid_t fsuid = current_fsuid(); + + if (sa->aad.fs.request & AA_AUDIT_FILE_MASK) { + audit_log_format(ab, " requested_mask="); + audit_file_mask(ab, sa->aad.fs.request); + } + if (sa->aad.fs.denied & AA_AUDIT_FILE_MASK) { + audit_log_format(ab, " denied_mask="); + audit_file_mask(ab, sa->aad.fs.denied); + } + if (sa->aad.fs.request & AA_AUDIT_FILE_MASK) { + audit_log_format(ab, " fsuid=%d", fsuid); + audit_log_format(ab, " ouid=%d", sa->aad.fs.ouid); + } + + if (sa->aad.fs.target) { + audit_log_format(ab, " target="); + audit_log_untrustedstring(ab, sa->aad.fs.target); + } +} + +/** + * aa_audit_file - handle the auditing of file operations + * @profile: the profile being enforced (NOT NULL) + * @perms: the permissions computed for the request (NOT NULL) + * @gfp: allocation flags + * @op: operation being mediated + * @request: permissions requested + * @name: name of object being mediated (MAYBE NULL) + * @target: name of target (MAYBE NULL) + * @ouid: object uid + * @info: extra information message (MAYBE NULL) + * @error: 0 if operation allowed else failure error code + * + * Returns: %0 or error on failure + */ +int aa_audit_file(struct aa_profile *profile, struct file_perms *perms, + gfp_t gfp, int op, u32 request, const char *name, + const char *target, uid_t ouid, const char *info, int error) +{ + int type = AUDIT_APPARMOR_AUTO; + struct common_audit_data sa; + COMMON_AUDIT_DATA_INIT(&sa, NONE); + sa.aad.op = op, + sa.aad.fs.request = request; + sa.aad.name = name; + sa.aad.fs.target = target; + sa.aad.fs.ouid = ouid; + sa.aad.info = info; + sa.aad.error = error; + + if (likely(!sa.aad.error)) { + u32 mask = perms->audit; + + if (unlikely(AUDIT_MODE(profile) == AUDIT_ALL)) + mask = 0xffff; + + /* mask off perms that are not being force audited */ + sa.aad.fs.request &= mask; + + if (likely(!sa.aad.fs.request)) + return 0; + type = AUDIT_APPARMOR_AUDIT; + } else { + /* only report permissions that were denied */ + sa.aad.fs.request = sa.aad.fs.request & ~perms->allow; + + if (sa.aad.fs.request & perms->kill) + type = AUDIT_APPARMOR_KILL; + + /* quiet known rejects, assumes quiet and kill do not overlap */ + if ((sa.aad.fs.request & perms->quiet) && + AUDIT_MODE(profile) != AUDIT_NOQUIET && + AUDIT_MODE(profile) != AUDIT_ALL) + sa.aad.fs.request &= ~perms->quiet; + + if (!sa.aad.fs.request) + return COMPLAIN_MODE(profile) ? 0 : sa.aad.error; + } + + sa.aad.fs.denied = sa.aad.fs.request & ~perms->allow; + return aa_audit(type, profile, gfp, &sa, file_audit_cb); +} + +/** + * map_old_perms - map old file perms layout to the new layout + * @old: permission set in old mapping + * + * Returns: new permission mapping + */ +static u32 map_old_perms(u32 old) +{ + u32 new = old & 0xf; + if (old & MAY_READ) + new |= AA_MAY_META_READ; + if (old & MAY_WRITE) + new |= AA_MAY_META_WRITE | AA_MAY_CREATE | AA_MAY_DELETE | + AA_MAY_CHMOD | AA_MAY_CHOWN; + if (old & 0x10) + new |= AA_MAY_LINK; + /* the old mapping lock and link_subset flags where overlaid + * and use was determined by part of a pair that they were in + */ + if (old & 0x20) + new |= AA_MAY_LOCK | AA_LINK_SUBSET; + if (old & 0x40) /* AA_EXEC_MMAP */ + new |= AA_EXEC_MMAP; + + new |= AA_MAY_META_READ; + + return new; +} + +/** + * compute_perms - convert dfa compressed perms to internal perms + * @dfa: dfa to compute perms for (NOT NULL) + * @state: state in dfa + * @cond: conditions to consider (NOT NULL) + * + * TODO: convert from dfa + state to permission entry, do computation conversion + * at load time. + * + * Returns: computed permission set + */ +static struct file_perms compute_perms(struct aa_dfa *dfa, unsigned int state, + struct path_cond *cond) +{ + struct file_perms perms; + + /* FIXME: change over to new dfa format + * currently file perms are encoded in the dfa, new format + * splits the permissions from the dfa. This mapping can be + * done at profile load + */ + perms.kill = 0; + + if (current_fsuid() == cond->uid) { + perms.allow = map_old_perms(dfa_user_allow(dfa, state)); + perms.audit = map_old_perms(dfa_user_audit(dfa, state)); + perms.quiet = map_old_perms(dfa_user_quiet(dfa, state)); + perms.xindex = dfa_user_xindex(dfa, state); + } else { + perms.allow = map_old_perms(dfa_other_allow(dfa, state)); + perms.audit = map_old_perms(dfa_other_audit(dfa, state)); + perms.quiet = map_old_perms(dfa_other_quiet(dfa, state)); + perms.xindex = dfa_other_xindex(dfa, state); + } + + /* change_profile wasn't determined by ownership in old mapping */ + if (ACCEPT_TABLE(dfa)[state] & 0x80000000) + perms.allow |= AA_MAY_CHANGE_PROFILE; + + return perms; +} + +/** + * aa_str_perms - find permission that match @name + * @dfa: to match against (MAYBE NULL) + * @state: state to start matching in + * @name: string to match against dfa (NOT NULL) + * @cond: conditions to consider for permission set computation (NOT NULL) + * @perms: Returns - the permissions found when matching @name + * + * Returns: the final state in @dfa when beginning @start and walking @name + */ +unsigned int aa_str_perms(struct aa_dfa *dfa, unsigned int start, + const char *name, struct path_cond *cond, + struct file_perms *perms) +{ + unsigned int state; + if (!dfa) { + *perms = nullperms; + return DFA_NOMATCH; + } + + state = aa_dfa_match(dfa, start, name); + *perms = compute_perms(dfa, state, cond); + + return state; +} + +/** + * is_deleted - test if a file has been completely unlinked + * @dentry: dentry of file to test for deletion (NOT NULL) + * + * Returns: %1 if deleted else %0 + */ +static inline bool is_deleted(struct dentry *dentry) +{ + if (d_unlinked(dentry) && dentry->d_inode->i_nlink == 0) + return 1; + return 0; +} + +/** + * aa_path_perm - do permissions check & audit for @path + * @op: operation being checked + * @profile: profile being enforced (NOT NULL) + * @path: path to check permissions of (NOT NULL) + * @flags: any additional path flags beyond what the profile specifies + * @request: requested permissions + * @cond: conditional info for this request (NOT NULL) + * + * Returns: %0 else error if access denied or other error + */ +int aa_path_perm(int op, struct aa_profile *profile, struct path *path, + int flags, u32 request, struct path_cond *cond) +{ + char *buffer = NULL; + struct file_perms perms = {}; + const char *name, *info = NULL; + int error; + + flags |= profile->path_flags | (S_ISDIR(cond->mode) ? PATH_IS_DIR : 0); + error = aa_get_name(path, flags, &buffer, &name); + if (error) { + if (error == -ENOENT && is_deleted(path->dentry)) { + /* Access to open files that are deleted are + * give a pass (implicit delegation) + */ + error = 0; + perms.allow = request; + } else if (error == -ENOENT) + info = "Failed name lookup - deleted entry"; + else if (error == -ESTALE) + info = "Failed name lookup - disconnected path"; + else if (error == -ENAMETOOLONG) + info = "Failed name lookup - name too long"; + else + info = "Failed name lookup"; + } else { + aa_str_perms(profile->file.dfa, profile->file.start, name, cond, + &perms); + if (request & ~perms.allow) + error = -EACCES; + } + error = aa_audit_file(profile, &perms, GFP_KERNEL, op, request, name, + NULL, cond->uid, info, error); + kfree(buffer); + + return error; +} + +/** + * xindex_is_subset - helper for aa_path_link + * @link: link permission set + * @target: target permission set + * + * test target x permissions are equal OR a subset of link x permissions + * this is done as part of the subset test, where a hardlink must have + * a subset of permissions that the target has. + * + * Returns: %1 if subset else %0 + */ +static inline bool xindex_is_subset(u32 link, u32 target) +{ + if (((link & ~AA_X_UNSAFE) != (target & ~AA_X_UNSAFE)) || + ((link & AA_X_UNSAFE) && !(target & AA_X_UNSAFE))) + return 0; + + return 1; +} + +/** + * aa_path_link - Handle hard link permission check + * @profile: the profile being enforced (NOT NULL) + * @old_dentry: the target dentry (NOT NULL) + * @new_dir: directory the new link will be created in (NOT NULL) + * @new_dentry: the link being created (NOT NULL) + * + * Handle the permission test for a link & target pair. Permission + * is encoded as a pair where the link permission is determined + * first, and if allowed, the target is tested. The target test + * is done from the point of the link match (not start of DFA) + * making the target permission dependent on the link permission match. + * + * The subset test if required forces that permissions granted + * on link are a subset of the permission granted to target. + * + * Returns: %0 if allowed else error + */ +int aa_path_link(struct aa_profile *profile, struct dentry *old_dentry, + struct path *new_dir, struct dentry *new_dentry) +{ + struct path link = { new_dir->mnt, new_dentry }; + struct path target = { new_dir->mnt, old_dentry }; + struct path_cond cond = { + old_dentry->d_inode->i_uid, + old_dentry->d_inode->i_mode + }; + char *buffer = NULL, *buffer2 = NULL; + const char *lname, *tname = NULL, *info = NULL; + struct file_perms lperms, perms; + u32 request = AA_MAY_LINK; + unsigned int state; + int error; + + lperms = nullperms; + + /* buffer freed below, lname is pointer in buffer */ + error = aa_get_name(&link, profile->path_flags, &buffer, &lname); + if (error) + goto audit; + + /* buffer2 freed below, tname is pointer in buffer2 */ + error = aa_get_name(&target, profile->path_flags, &buffer2, &tname); + if (error) + goto audit; + + error = -EACCES; + /* aa_str_perms - handles the case of the dfa being NULL */ + state = aa_str_perms(profile->file.dfa, profile->file.start, lname, + &cond, &lperms); + + if (!(lperms.allow & AA_MAY_LINK)) + goto audit; + + /* test to see if target can be paired with link */ + state = aa_dfa_null_transition(profile->file.dfa, state); + aa_str_perms(profile->file.dfa, state, tname, &cond, &perms); + + /* force audit/quiet masks for link are stored in the second entry + * in the link pair. + */ + lperms.audit = perms.audit; + lperms.quiet = perms.quiet; + lperms.kill = perms.kill; + + if (!(perms.allow & AA_MAY_LINK)) { + info = "target restricted"; + goto audit; + } + + /* done if link subset test is not required */ + if (!(perms.allow & AA_LINK_SUBSET)) + goto done_tests; + + /* Do link perm subset test requiring allowed permission on link are a + * subset of the allowed permissions on target. + */ + aa_str_perms(profile->file.dfa, profile->file.start, tname, &cond, + &perms); + + /* AA_MAY_LINK is not considered in the subset test */ + request = lperms.allow & ~AA_MAY_LINK; + lperms.allow &= perms.allow | AA_MAY_LINK; + + request |= AA_AUDIT_FILE_MASK & (lperms.allow & ~perms.allow); + if (request & ~lperms.allow) { + goto audit; + } else if ((lperms.allow & MAY_EXEC) && + !xindex_is_subset(lperms.xindex, perms.xindex)) { + lperms.allow &= ~MAY_EXEC; + request |= MAY_EXEC; + info = "link not subset of target"; + goto audit; + } + +done_tests: + error = 0; + +audit: + error = aa_audit_file(profile, &lperms, GFP_KERNEL, OP_LINK, request, + lname, tname, cond.uid, info, error); + kfree(buffer); + kfree(buffer2); + + return error; +} + +/** + * aa_file_perm - do permission revalidation check & audit for @file + * @op: operation being checked + * @profile: profile being enforced (NOT NULL) + * @file: file to revalidate access permissions on (NOT NULL) + * @request: requested permissions + * + * Returns: %0 if access allowed else error + */ +int aa_file_perm(int op, struct aa_profile *profile, struct file *file, + u32 request) +{ + struct path_cond cond = { + .uid = file->f_path.dentry->d_inode->i_uid, + .mode = file->f_path.dentry->d_inode->i_mode + }; + + return aa_path_perm(op, profile, &file->f_path, PATH_DELEGATE_DELETED, + request, &cond); +} --- linux-2.6.35.orig/security/apparmor/ipc.c +++ linux-2.6.35/security/apparmor/ipc.c @@ -0,0 +1,114 @@ +/* + * AppArmor security module + * + * This file contains AppArmor ipc mediation + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include + +#include "include/audit.h" +#include "include/capability.h" +#include "include/context.h" +#include "include/policy.h" + +/* call back to audit ptrace fields */ +static void audit_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + audit_log_format(ab, " target="); + audit_log_untrustedstring(ab, sa->aad.target); +} + +/** + * aa_audit_ptrace - do auditing for ptrace + * @profile: profile being enforced (NOT NULL) + * @target: profile being traced (NOT NULL) + * @error: error condition + * + * Returns: %0 or error code + */ +static int aa_audit_ptrace(struct aa_profile *profile, + struct aa_profile *target, int error) +{ + struct common_audit_data sa; + COMMON_AUDIT_DATA_INIT(&sa, NONE); + sa.aad.op = OP_PTRACE; + sa.aad.target = target; + sa.aad.error = error; + + return aa_audit(AUDIT_APPARMOR_AUTO, profile, GFP_ATOMIC, &sa, + audit_cb); +} + +/** + * aa_may_ptrace - test if tracer task can trace the tracee + * @tracer_task: task who will do the tracing (NOT NULL) + * @tracer: profile of the task doing the tracing (NOT NULL) + * @tracee: task to be traced + * @mode: whether PTRACE_MODE_READ || PTRACE_MODE_ATTACH + * + * Returns: %0 else error code if permission denied or error + */ +int aa_may_ptrace(struct task_struct *tracer_task, struct aa_profile *tracer, + struct aa_profile *tracee, unsigned int mode) +{ + /* TODO: currently only based on capability, not extended ptrace + * rules, + * Test mode for PTRACE_MODE_READ || PTRACE_MODE_ATTACH + */ + + if (unconfined(tracer) || tracer == tracee) + return 0; + /* log this capability request */ + return aa_capable(tracer_task, tracer, CAP_SYS_PTRACE, 1); +} + +/** + * aa_ptrace - do ptrace permission check and auditing + * @tracer: task doing the tracing (NOT NULL) + * @tracee: task being traced (NOT NULL) + * @mode: ptrace mode either PTRACE_MODE_READ || PTRACE_MODE_ATTACH + * + * Returns: %0 else error code if permission denied or error + */ +int aa_ptrace(struct task_struct *tracer, struct task_struct *tracee, + unsigned int mode) +{ + /* + * tracer can ptrace tracee when + * - tracer is unconfined || + * - tracer is in complain mode + * - tracer has rules allowing it to trace tracee currently this is: + * - confined by the same profile || + * - tracer profile has CAP_SYS_PTRACE + */ + + struct aa_profile *tracer_p; + /* cred released below */ + const struct cred *cred = get_task_cred(tracer); + int error = 0; + tracer_p = aa_cred_profile(cred); + + if (!unconfined(tracer_p)) { + /* lcred released below */ + struct cred *lcred = get_task_cred(tracee); + struct aa_profile *tracee_p = aa_cred_profile(lcred); + + error = aa_may_ptrace(tracer, tracer_p, tracee_p, mode); + error = aa_audit_ptrace(tracer_p, tracee_p, error); + + put_cred(lcred); + } + put_cred(cred); + + return error; +} --- linux-2.6.35.orig/security/apparmor/Kconfig +++ linux-2.6.35/security/apparmor/Kconfig @@ -0,0 +1,40 @@ +config SECURITY_APPARMOR + bool "AppArmor support" + depends on SECURITY + select AUDIT + select SECURITY_PATH + select SECURITYFS + select SECURITY_NETWORK + default n + help + This enables the AppArmor security module. + Required userspace tools (if they are not included in your + distribution) and further information may be found at + http://apparmor.wiki.kernel.org + + If you are unsure how to answer this question, answer N. + +config SECURITY_APPARMOR_BOOTPARAM_VALUE + int "AppArmor boot parameter default value" + depends on SECURITY_APPARMOR + range 0 1 + default 1 + help + This option sets the default value for the kernel parameter + 'apparmor', which allows AppArmor to be enabled or disabled + at boot. If this option is set to 0 (zero), the AppArmor + kernel parameter will default to 0, disabling AppArmor at + boot. If this option is set to 1 (one), the AppArmor + kernel parameter will default to 1, enabling AppArmor at + boot. + + If you are unsure how to answer this question, answer 1. + +config SECURITY_APPARMOR_COMPAT_24 + bool "Enable AppArmor 2.4 compatability" + depends on SECURITY_APPARMOR + default y + help + This option enables compatability with AppArmor 2.4. It is + recommended if compatability with older versions of AppArmor + is desired. --- linux-2.6.35.orig/security/apparmor/Makefile +++ linux-2.6.35/security/apparmor/Makefile @@ -0,0 +1,30 @@ +# Makefile for AppArmor Linux Security Module +# +obj-$(CONFIG_SECURITY_APPARMOR) += apparmor.o + +apparmor-y := apparmorfs.o audit.o capability.o context.o ipc.o lib.o match.o \ + path.o domain.o policy.o policy_unpack.o procattr.o lsm.o \ + resource.o sid.o file.o net.o + +apparmor-$(CONFIG_SECURITY_APPARMOR_COMPAT_24) += apparmorfs-24.o + +clean-files: capability_names.h af_names.h + +quiet_cmd_make-caps = GEN $@ +cmd_make-caps = echo "static const char *capability_names[] = {" > $@ ; sed -n -e "/CAP_FS_MASK/d" -e "s/^\#define[ \\t]\\+CAP_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\$$/[\\2] = \"\\1\",/p" $< | tr A-Z a-z >> $@ ; echo "};" >> $@ + +quiet_cmd_make-af = GEN $@ +cmd_make-af = echo "static const char *address_family_names[] = {" > $@ ; sed -n -e "/AF_MAX/d" -e "/AF_LOCAL/d" -e "s/^\#define[ \\t]\\+AF_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\\(.*\\)\$$/[\\2] = \"\\1\",/p" $< | tr A-Z a-z >> $@ ; echo "};" >> $@ + +quiet_cmd_make-rlim = GEN $@ +cmd_make-rlim = echo "static const char *rlim_names[] = {" > $@ ; sed -n --e "/AF_MAX/d" -e "s/^\# \\?define[ \\t]\\+RLIMIT_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\\(.*\\)\$$/[\\2] = \"\\1\",/p" $< | tr A-Z a-z >> $@ ; echo "};" >> $@ ; echo "static const int rlim_map[] = {" >> $@ ; sed -n -e "/AF_MAX/d" -e "s/^\# \\?define[ \\t]\\+\\(RLIMIT_[A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\\(.*\\)\$$/\\1,/p" $< >> $@ ; echo "};" >> $@ + +$(obj)/capability.o : $(obj)/capability_names.h +$(obj)/net.o : $(obj)/af_names.h +$(obj)/resource.o : $(obj)/rlim_names.h +$(obj)/capability_names.h : $(srctree)/include/linux/capability.h + $(call cmd,make-caps) +$(obj)/af_names.h : $(srctree)/include/linux/socket.h + $(call cmd,make-af) +$(obj)/rlim_names.h : $(srctree)/include/asm-generic/resource.h + $(call cmd,make-rlim) --- linux-2.6.35.orig/security/apparmor/context.c +++ linux-2.6.35/security/apparmor/context.c @@ -0,0 +1,216 @@ +/* + * AppArmor security module + * + * This file contains AppArmor functions used to manipulate object security + * contexts. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * + * AppArmor sets confinement on every task, via the the aa_task_cxt and + * the aa_task_cxt.profile, both of which are required and are not allowed + * to be NULL. The aa_task_cxt is not reference counted and is unique + * to each cred (which is reference count). The profile pointed to by + * the task_cxt is reference counted. + * + * TODO + * If a task uses change_hat it currently does not return to the old + * cred or task context but instead creates a new one. Ideally the task + * should return to the previous cred if it has not been modified. + * + */ + +#include "include/context.h" +#include "include/policy.h" + +/** + * aa_alloc_task_context - allocate a new task_cxt + * @flags: gfp flags for allocation + * + * Returns: allocated buffer or NULL on failure + */ +struct aa_task_cxt *aa_alloc_task_context(gfp_t flags) +{ + return kzalloc(sizeof(struct aa_task_cxt), flags); +} + +/** + * aa_free_task_context - free a task_cxt + * @cxt: task_cxt to free (MAYBE NULL) + */ +void aa_free_task_context(struct aa_task_cxt *cxt) +{ + if (cxt) { + aa_put_profile(cxt->profile); + aa_put_profile(cxt->previous); + aa_put_profile(cxt->onexec); + + kzfree(cxt); + } +} + +/** + * aa_dup_task_context - duplicate a task context, incrementing reference counts + * @new: a blank task context (NOT NULL) + * @old: the task context to copy (NOT NULL) + */ +void aa_dup_task_context(struct aa_task_cxt *new, const struct aa_task_cxt *old) +{ + *new = *old; + aa_get_profile(new->profile); + aa_get_profile(new->previous); + aa_get_profile(new->onexec); +} + +/** + * aa_replace_current_profile - replace the current tasks profiles + * @profile: new profile (NOT NULL) + * + * Returns: 0 or error on failure + */ +int aa_replace_current_profile(struct aa_profile *profile) +{ + struct aa_task_cxt *cxt = current_cred()->security; + struct cred *new; + BUG_ON(!profile); + + if (cxt->profile == profile) + return 0; + + new = prepare_creds(); + if (!new) + return -ENOMEM; + + cxt = new->security; + if (unconfined(profile) || (cxt->profile->ns != profile->ns)) { + /* if switching to unconfined or a different profile namespace + * clear out context state + */ + aa_put_profile(cxt->previous); + aa_put_profile(cxt->onexec); + cxt->previous = NULL; + cxt->onexec = NULL; + cxt->token = 0; + } + /* be careful switching cxt->profile, when racing replacement it + * is possible that cxt->profile->replacedby is the reference keeping + * @profile valid, so make sure to get its reference before dropping + * the reference on cxt->profile */ + aa_get_profile(profile); + aa_put_profile(cxt->profile); + cxt->profile = profile; + + commit_creds(new); + return 0; +} + +/** + * aa_set_current_onexec - set the tasks change_profile to happen onexec + * @profile: system profile to set at exec (MAYBE NULL to clear value) + * + * Returns: 0 or error on failure + */ +int aa_set_current_onexec(struct aa_profile *profile) +{ + struct aa_task_cxt *cxt; + struct cred *new = prepare_creds(); + if (!new) + return -ENOMEM; + + cxt = new->security; + aa_get_profile(profile); + aa_put_profile(cxt->onexec); + cxt->onexec = profile; + + commit_creds(new); + return 0; +} + +/** + * aa_set_current_hat - set the current tasks hat + * @profile: profile to set as the current hat (NOT NULL) + * @token: token value that must be specified to change from the hat + * + * Do switch of tasks hat. If the task is currently in a hat + * validate the token to match. + * + * Returns: 0 or error on failure + */ +int aa_set_current_hat(struct aa_profile *profile, u64 token) +{ + struct aa_task_cxt *cxt; + struct cred *new = prepare_creds(); + if (!new) + return -ENOMEM; + BUG_ON(!profile); + + cxt = new->security; + if (!cxt->previous) { + /* transfer refcount */ + cxt->previous = cxt->profile; + cxt->token = token; + } else if (cxt->token == token) { + aa_put_profile(cxt->profile); + } else { + /* previous_profile && cxt->token != token */ + abort_creds(new); + return -EACCES; + } + cxt->profile = aa_get_profile(aa_newest_version(profile)); + /* clear exec on switching context */ + aa_put_profile(cxt->onexec); + cxt->onexec = NULL; + + commit_creds(new); + return 0; +} + +/** + * aa_restore_previous_profile - exit from hat context restoring the profile + * @token: the token that must be matched to exit hat context + * + * Attempt to return out of a hat to the previous profile. The token + * must match the stored token value. + * + * Returns: 0 or error of failure + */ +int aa_restore_previous_profile(u64 token) +{ + struct aa_task_cxt *cxt; + struct cred *new = prepare_creds(); + if (!new) + return -ENOMEM; + + cxt = new->security; + if (cxt->token != token) { + abort_creds(new); + return -EACCES; + } + /* ignore restores when there is no saved profile */ + if (!cxt->previous) { + abort_creds(new); + return 0; + } + + aa_put_profile(cxt->profile); + cxt->profile = aa_newest_version(cxt->previous); + BUG_ON(!cxt->profile); + if (unlikely(cxt->profile != cxt->previous)) { + aa_get_profile(cxt->profile); + aa_put_profile(cxt->previous); + } + /* clear exec && prev information when restoring to previous context */ + cxt->previous = NULL; + cxt->token = 0; + aa_put_profile(cxt->onexec); + cxt->onexec = NULL; + + commit_creds(new); + return 0; +} --- linux-2.6.35.orig/security/apparmor/include/sid.h +++ linux-2.6.35/security/apparmor/include/sid.h @@ -0,0 +1,24 @@ +/* + * AppArmor security module + * + * This file contains AppArmor security identifier (sid) definitions + * + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_SID_H +#define __AA_SID_H + +#include + +struct aa_profile; + +u32 aa_alloc_sid(void); +void aa_free_sid(u32 sid); + +#endif /* __AA_SID_H */ --- linux-2.6.35.orig/security/apparmor/include/policy.h +++ linux-2.6.35/security/apparmor/include/policy.h @@ -0,0 +1,308 @@ +/* + * AppArmor security module + * + * This file contains AppArmor policy definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_POLICY_H +#define __AA_POLICY_H + +#include +#include +#include +#include +#include +#include + +#include "apparmor.h" +#include "audit.h" +#include "capability.h" +#include "domain.h" +#include "file.h" +#include "net.h" +#include "resource.h" + +extern const char *profile_mode_names[]; +#define APPARMOR_NAMES_MAX_INDEX 3 + +#define COMPLAIN_MODE(_profile) \ + ((aa_g_profile_mode == APPARMOR_COMPLAIN) || \ + ((_profile)->mode == APPARMOR_COMPLAIN)) + +#define KILL_MODE(_profile) \ + ((aa_g_profile_mode == APPARMOR_KILL) || \ + ((_profile)->mode == APPARMOR_KILL)) + +#define PROFILE_IS_HAT(_profile) ((_profile)->flags & PFLAG_HAT) + +/* + * FIXME: currently need a clean way to replace and remove profiles as a + * set. It should be done at the namespace level. + * Either, with a set of profiles loaded at the namespace level or via + * a mark and remove marked interface. + */ +enum profile_mode { + APPARMOR_ENFORCE, /* enforce access rules */ + APPARMOR_COMPLAIN, /* allow and log access violations */ + APPARMOR_KILL, /* kill task on access violation */ +}; + +enum profile_flags { + PFLAG_HAT = 1, /* profile is a hat */ + PFLAG_UNCONFINED = 2, /* profile is an unconfined profile */ + PFLAG_NULL = 4, /* profile is null learning profile */ + PFLAG_IX_ON_NAME_ERROR = 8, /* fallback to ix on name lookup fail */ + PFLAG_IMMUTABLE = 0x10, /* don't allow changes/replacement */ + PFLAG_USER_DEFINED = 0x20, /* user based profile - lower privs */ + PFLAG_NO_LIST_REF = 0x40, /* list doesn't keep profile ref */ + PFLAG_OLD_NULL_TRANS = 0x100, /* use // as the null transition */ + + /* These flags must correspond with PATH_flags */ + PFLAG_MEDIATE_DELETED = 0x10000, /* mediate instead delegate deleted */ +}; + +struct aa_profile; + +/* struct aa_policy - common part of both namespaces and profiles + * @name: name of the object + * @hname - The hierarchical name + * @count: reference count of the obj + * @list: list policy object is on + * @profiles: head of the profiles list contained in the object + */ +struct aa_policy { + char *name; + char *hname; + struct kref count; + struct list_head list; + struct list_head profiles; +}; + +/* struct aa_ns_acct - accounting of profiles in namespace + * @max_size: maximum space allowed for all profiles in namespace + * @max_count: maximum number of profiles that can be in this namespace + * @size: current size of profiles + * @count: current count of profiles (includes null profiles) + */ +struct aa_ns_acct { + int max_size; + int max_count; + int size; + int count; +}; + +/* struct aa_namespace - namespace for a set of profiles + * @base: common policy + * @parent: parent of namespace + * @lock: lock for modifying the object + * @acct: accounting for the namespace + * @unconfined: special unconfined profile for the namespace + * @sub_ns: list of namespaces under the current namespace. + * + * An aa_namespace defines the set profiles that are searched to determine + * which profile to attach to a task. Profiles can not be shared between + * aa_namespaces and profile names within a namespace are guaranteed to be + * unique. When profiles in separate namespaces have the same name they + * are NOT considered to be equivalent. + * + * Namespaces are hierarchical and only namespaces and profiles below the + * current namespace are visible. + * + * Namespace names must be unique and can not contain the characters :/\0 + * + * FIXME TODO: add vserver support of namespaces (can it all be done in + * userspace?) + */ +struct aa_namespace { + struct aa_policy base; + struct aa_namespace *parent; + rwlock_t lock; + struct aa_ns_acct acct; + struct aa_profile *unconfined; + struct list_head sub_ns; +}; + +/* struct aa_profile - basic confinement data + * @base - base components of the profile (name, refcount, lists, lock ...) + * @parent: parent of profile + * @ns: namespace the profile is in + * @replacedby: is set to the profile that replaced this profile + * @rename: optional profile name that this profile renamed + * @xmatch: optional extended matching for unconfined executables names + * @xmatch_len: xmatch prefix len, used to determine xmatch priority + * @sid: the unique security id number of this profile + * @audit: the auditing mode of the profile + * @mode: the enforcement mode of the profile + * @flags: flags controlling profile behavior + * @path_flags: flags controlling path generation behavior + * @size: the memory consumed by this profiles rules + * @file: The set of rules governing basic file access and domain transitions + * @caps: capabilities for the profile + * @net: network controls for the profile + * @rlimits: rlimits for the profile + * + * The AppArmor profile contains the basic confinement data. Each profile + * has a name, and exists in a namespace. The @name and @exec_match are + * used to determine profile attachment against unconfined tasks. All other + * attachments are determined by profile X transition rules. + * + * The @replacedby field is write protected by the profile lock. Reads + * are assumed to be atomic, and are done without locking. + * + * Profiles have a hierarchy where hats and children profiles keep + * a reference to their parent. + * + * Profile names can not begin with a : and can not contain the \0 + * character. If a profile name begins with / it will be considered when + * determining profile attachment on "unconfined" tasks. + */ +struct aa_profile { + struct aa_policy base; + struct aa_profile *parent; + + struct aa_namespace *ns; + struct aa_profile *replacedby; + const char *rename; + + struct aa_dfa *xmatch; + int xmatch_len; + u32 sid; + enum audit_mode audit; + enum profile_mode mode; + u32 flags; + u32 path_flags; + int size; + + struct aa_file_rules file; + struct aa_caps caps; + struct aa_net net; + struct aa_rlimit rlimits; +}; + +extern struct aa_namespace *root_ns; +extern enum profile_mode aa_g_profile_mode; + +void aa_add_profile(struct aa_policy *common, struct aa_profile *profile); + +bool aa_ns_visible(struct aa_namespace *curr, struct aa_namespace *view); +const char *aa_ns_name(struct aa_namespace *parent, struct aa_namespace *child); +int aa_alloc_root_ns(void); +void aa_free_root_ns(void); +void aa_free_namespace_kref(struct kref *kref); + +struct aa_namespace *aa_find_namespace(struct aa_namespace *root, + const char *name); + +static inline struct aa_policy *aa_get_common(struct aa_policy *c) +{ + if (c) + kref_get(&c->count); + + return c; +} + +/** + * aa_get_namespace - increment references count on @ns + * @ns: namespace to increment reference count of (MAYBE NULL) + * + * Returns: pointer to @ns, if @ns is NULL returns NULL + * Requires: @ns must be held with valid refcount when called + */ +static inline struct aa_namespace *aa_get_namespace(struct aa_namespace *ns) +{ + if (ns) + kref_get(&(ns->base.count)); + + return ns; +} + +/** + * aa_put_namespace - decrement refcount on @ns + * @ns: namespace to put reference of + * + * Decrement reference count of @ns and if no longer in use free it + */ +static inline void aa_put_namespace(struct aa_namespace *ns) +{ + if (ns) + kref_put(&ns->base.count, aa_free_namespace_kref); +} + +struct aa_profile *aa_alloc_profile(const char *name); +struct aa_profile *aa_new_null_profile(struct aa_profile *parent, int hat); +void aa_free_profile_kref(struct kref *kref); +struct aa_profile *aa_find_child(struct aa_profile *parent, const char *name); +struct aa_profile *aa_lookup_profile(struct aa_namespace *ns, const char *name); +struct aa_profile *aa_match_profile(struct aa_namespace *ns, const char *name); + +ssize_t aa_replace_profiles(void *udata, size_t size, bool noreplace); +ssize_t aa_remove_profiles(char *name, size_t size); + +#define PROF_ADD 1 +#define PROF_REPLACE 0 + +#define unconfined(X) ((X)->flags & PFLAG_UNCONFINED) + +/** + * aa_newest_version - find the newest version of @profile + * @profile: the profile to check for newer versions of (NOT NULL) + * + * Returns: newest version of @profile, if @profile is the newest version + * return @profile. + * + * NOTE: the profile returned is not refcounted, The refcount on @profile + * must be held until the caller decides what to do with the returned newest + * version. + */ +static inline struct aa_profile *aa_newest_version(struct aa_profile *profile) +{ + while (profile->replacedby) + profile = profile->replacedby; + + return profile; +} + +/** + * aa_get_profile - increment refcount on profile @p + * @p: profile (MAYBE NULL) + * + * Returns: pointer to @p if @p is NULL will return NULL + * Requires: @p must be held with valid refcount when called + */ +static inline struct aa_profile *aa_get_profile(struct aa_profile *p) +{ + if (p) + kref_get(&(p->base.count)); + + return p; +} + +/** + * aa_put_profile - decrement refcount on profile @p + * @p: profile (MAYBE NULL) + */ +static inline void aa_put_profile(struct aa_profile *p) +{ + if (p) + kref_put(&p->base.count, aa_free_profile_kref); +} + +static inline int AUDIT_MODE(struct aa_profile *profile) +{ + if (aa_g_audit != AUDIT_NORMAL) + return aa_g_audit; + + return profile->audit; +} + +bool aa_may_manage_policy(int op); + +#endif /* __AA_POLICY_H */ --- linux-2.6.35.orig/security/apparmor/include/file.h +++ linux-2.6.35/security/apparmor/include/file.h @@ -0,0 +1,217 @@ +/* + * AppArmor security module + * + * This file contains AppArmor file mediation function definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_FILE_H +#define __AA_FILE_H + +#include + +#include "domain.h" +#include "match.h" + +struct aa_profile; + +/* + * We use MAY_EXEC, MAY_WRITE, MAY_READ, MAY_APPEND and the following flags + * for profile permissions + */ +#define AA_MAY_CREATE 0x0010 +#define AA_MAY_DELETE 0x0020 +#define AA_MAY_META_WRITE 0x0040 +#define AA_MAY_META_READ 0x0080 + +#define AA_MAY_CHMOD 0x0100 +#define AA_MAY_CHOWN 0x0200 +#define AA_MAY_LOCK 0x0400 +#define AA_EXEC_MMAP 0x0800 + +#define AA_MAY_LINK 0x1000 +#define AA_LINK_SUBSET AA_MAY_LOCK /* overlaid */ +#define AA_MAY_ONEXEC 0x40000000 /* exec allows onexec */ +#define AA_MAY_CHANGE_PROFILE 0x80000000 +#define AA_MAY_CHANGEHAT 0x80000000 /* ctrl auditing only */ + +#define AA_AUDIT_FILE_MASK (MAY_READ | MAY_WRITE | MAY_EXEC | MAY_APPEND |\ + AA_MAY_CREATE | AA_MAY_DELETE | \ + AA_MAY_META_READ | AA_MAY_META_WRITE | \ + AA_MAY_CHMOD | AA_MAY_CHOWN | AA_MAY_LOCK | \ + AA_EXEC_MMAP | AA_MAY_LINK) + +/* + * The xindex is broken into 3 parts + * - index - an index into either the exec name table or the variable table + * - exec type - which determines how the executable name and index are used + * - flags - which modify how the destination name is applied + */ +#define AA_X_INDEX_MASK 0x03ff + +#define AA_X_TYPE_MASK 0x0c00 +#define AA_X_TYPE_SHIFT 10 +#define AA_X_NONE 0x0000 +#define AA_X_NAME 0x0400 /* use executable name px */ +#define AA_X_TABLE 0x0800 /* use a specified name ->n# */ + +#define AA_X_UNSAFE 0x1000 +#define AA_X_CHILD 0x2000 /* make >AA_X_NONE apply to children */ +#define AA_X_INHERIT 0x4000 +#define AA_X_UNCONFINED 0x8000 + +/* AA_SECURE_X_NEEDED - is passed in the bprm->unsafe field */ +#define AA_SECURE_X_NEEDED 0x8000 + +/* need to make conditional which ones are being set */ +struct path_cond { + uid_t uid; + umode_t mode; +}; + +/* struct file_perms - file permission + * @allow: mask of permissions that are allowed + * @audit: mask of permissions to force an audit message for + * @quiet: mask of permissions to quiet audit messages for + * @kill: mask of permissions that when matched will kill the task + * @xindex: exec transition index if @allow contains MAY_EXEC + * + * The @audit and @queit mask should be mutually exclusive. + */ +struct file_perms { + u32 allow; + u32 audit; + u32 quiet; + u32 kill; + u16 xindex; +}; + +extern struct file_perms nullperms; + +#define COMBINED_PERM_MASK(X) ((X).allow | (X).audit | (X).quiet | (X).kill) + +/* FIXME: split perms from dfa and match this to description + * also add delegation info. + */ +static inline u16 dfa_map_xindex(u16 mask) +{ + u16 old_index = (mask >> 10) & 0xf; + u16 index = 0; + + if (mask & 0x100) + index |= AA_X_UNSAFE; + if (mask & 0x200) + index |= AA_X_INHERIT; + if (mask & 0x80) + index |= AA_X_UNCONFINED; + + if (old_index == 1) { + index |= AA_X_UNCONFINED; + } else if (old_index == 2) { + index |= AA_X_NAME; + } else if (old_index == 3) { + index |= AA_X_NAME | AA_X_CHILD; + } else { + index |= AA_X_TABLE; + index |= old_index - 4; + } + + return index; +} + +/* + * map old dfa inline permissions to new format + */ +#define dfa_user_allow(dfa, state) (((ACCEPT_TABLE(dfa)[state]) & 0x7f) | \ + ((ACCEPT_TABLE(dfa)[state]) & 0x80000000)) +#define dfa_user_audit(dfa, state) ((ACCEPT_TABLE2(dfa)[state]) & 0x7f) +#define dfa_user_quiet(dfa, state) (((ACCEPT_TABLE2(dfa)[state]) >> 7) & 0x7f) +#define dfa_user_xindex(dfa, state) \ + (dfa_map_xindex(ACCEPT_TABLE(dfa)[state] & 0x3fff)) + +#define dfa_other_allow(dfa, state) ((((ACCEPT_TABLE(dfa)[state]) >> 14) & \ + 0x7f) | \ + ((ACCEPT_TABLE(dfa)[state]) & 0x80000000)) +#define dfa_other_audit(dfa, state) (((ACCEPT_TABLE2(dfa)[state]) >> 14) & 0x7f) +#define dfa_other_quiet(dfa, state) \ + ((((ACCEPT_TABLE2(dfa)[state]) >> 7) >> 14) & 0x7f) +#define dfa_other_xindex(dfa, state) \ + dfa_map_xindex((ACCEPT_TABLE(dfa)[state] >> 14) & 0x3fff) + +int aa_audit_file(struct aa_profile *profile, struct file_perms *perms, + gfp_t gfp, int op, u32 request, const char *name, + const char *target, uid_t ouid, const char *info, int error); + +/** + * struct aa_file_rules - components used for file rule permissions + * @dfa: dfa to match path names and conditionals against + * @perms: permission table indexed by the matched state accept entry of @dfa + * @trans: transition table for indexed by named x transitions + * + * File permission are determined by matching a path against @dfa and then + * then using the value of the accept entry for the matching state as + * an index into @perms. If a named exec transition is required it is + * looked up in the transition table. + */ +struct aa_file_rules { + unsigned int start; + struct aa_dfa *dfa; + /* struct perms perms; */ + struct aa_domain trans; + /* TODO: add delegate table */ +}; + +unsigned int aa_str_perms(struct aa_dfa *dfa, unsigned int start, + const char *name, struct path_cond *cond, + struct file_perms *perms); + +int aa_path_perm(int op, struct aa_profile *profile, struct path *path, + int flags, u32 request, struct path_cond *cond); + +int aa_path_link(struct aa_profile *profile, struct dentry *old_dentry, + struct path *new_dir, struct dentry *new_dentry); + +int aa_file_perm(int op, struct aa_profile *profile, struct file *file, + u32 request); + +static inline void aa_free_file_rules(struct aa_file_rules *rules) +{ + aa_put_dfa(rules->dfa); + aa_free_domain_entries(&rules->trans); +} + +#define ACC_FMODE(x) (("\000\004\002\006"[(x)&O_ACCMODE]) | (((x) << 1) & 0x40)) + +/* from namei.c */ +#define MAP_OPEN_FLAGS(x) ((((x) + 1) & O_ACCMODE) ? (x) + 1 : (x)) + +/** + * aa_map_file_perms - map file flags to AppArmor permissions + * @file: open file to map flags to AppArmor permissions + * + * Returns: apparmor permission set for the file + */ +static inline u32 aa_map_file_to_perms(struct file *file) +{ + int flags = MAP_OPEN_FLAGS(file->f_flags); + u32 perms = ACC_FMODE(file->f_mode); + + if ((flags & O_APPEND) && (perms & MAY_WRITE)) + perms = (perms & ~MAY_WRITE) | MAY_APPEND; + /* trunc implies write permission */ + if (flags & O_TRUNC) + perms |= MAY_WRITE; + if (flags & O_CREAT) + perms |= AA_MAY_CREATE; + + return perms; +} + +#endif /* __AA_FILE_H */ --- linux-2.6.35.orig/security/apparmor/include/domain.h +++ linux-2.6.35/security/apparmor/include/domain.h @@ -0,0 +1,36 @@ +/* + * AppArmor security module + * + * This file contains AppArmor security domain transition function definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include + +#ifndef __AA_DOMAIN_H +#define __AA_DOMAIN_H + +struct aa_domain { + int size; + char **table; +}; + +int apparmor_bprm_set_creds(struct linux_binprm *bprm); +int apparmor_bprm_secureexec(struct linux_binprm *bprm); +void apparmor_bprm_committing_creds(struct linux_binprm *bprm); +void apparmor_bprm_committed_creds(struct linux_binprm *bprm); + +void aa_free_domain_entries(struct aa_domain *domain); +int aa_change_hat(const char *hats[], int count, u64 token, bool permtest); +int aa_change_profile(const char *ns_name, const char *name, bool onexec, + bool permtest); + +#endif /* __AA_DOMAIN_H */ --- linux-2.6.35.orig/security/apparmor/include/context.h +++ linux-2.6.35/security/apparmor/include/context.h @@ -0,0 +1,154 @@ +/* + * AppArmor security module + * + * This file contains AppArmor contexts used to associate "labels" to objects. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_CONTEXT_H +#define __AA_CONTEXT_H + +#include +#include +#include + +#include "policy.h" + +/* struct aa_file_cxt - the AppArmor context the file was opened in + * @perms: the permission the file was opened with + * + * The file_cxt could currently be directly stored in file->f_security + * as the profile reference is now stored in the f_cred. However the + * cxt struct will expand in the future so we keep the struct. + */ +struct aa_file_cxt { + u16 allow; +}; + +/** + * aa_alloc_file_context - allocate file_cxt + * @gfp: gfp flags for allocation + * + * Returns: file_cxt or NULL on failure + */ +static inline struct aa_file_cxt *aa_alloc_file_context(gfp_t gfp) +{ + return kzalloc(sizeof(struct aa_file_cxt), gfp); +} + +/** + * aa_free_file_context - free a file_cxt + * @cxt: file_cxt to free (MAYBE_NULL) + */ +static inline void aa_free_file_context(struct aa_file_cxt *cxt) +{ + if (cxt) + kzfree(cxt); +} + +/** + * struct aa_task_cxt - primary label for confined tasks + * @profile: the current profile (NOT NULL) + * @exec: profile to transition to on next exec (MAYBE NULL) + * @previous: profile the task may return to (MAYBE NULL) + * @token: magic value the task must know for returning to @previous_profile + * + * Contains the task's current profile (which could change due to + * change_hat). Plus the hat_magic needed during change_hat. + * + * TODO: make so a task can be confined by a stack of contexts + */ +struct aa_task_cxt { + struct aa_profile *profile; + struct aa_profile *onexec; + struct aa_profile *previous; + u64 token; +}; + +struct aa_task_cxt *aa_alloc_task_context(gfp_t flags); +void aa_free_task_context(struct aa_task_cxt *cxt); +void aa_dup_task_context(struct aa_task_cxt *new, + const struct aa_task_cxt *old); +int aa_replace_current_profile(struct aa_profile *profile); +int aa_set_current_onexec(struct aa_profile *profile); +int aa_set_current_hat(struct aa_profile *profile, u64 token); +int aa_restore_previous_profile(u64 cookie); + +/** + * __aa_task_is_confined - determine if @task has any confinement + * @task: task to check confinement of (NOT NULL) + * + * If @task != current needs to be called in RCU safe critical section + */ +static inline bool __aa_task_is_confined(struct task_struct *task) +{ + struct aa_task_cxt *cxt = __task_cred(task)->security; + + BUG_ON(!cxt || !cxt->profile); + if (unconfined(aa_newest_version(cxt->profile))) + return 0; + + return 1; +} + +/** + * aa_cred_profile - obtain cred's profiles + * @cred: cred to obtain profiles from (NOT NULL) + * + * Returns: confining profile + * + * does NOT increment reference count + */ +static inline struct aa_profile *aa_cred_profile(const struct cred *cred) +{ + struct aa_task_cxt *cxt = cred->security; + BUG_ON(!cxt || !cxt->profile); + return aa_newest_version(cxt->profile); +} + +/** + * __aa_current_profile - find the current tasks confining profile + * + * Returns: up to date confining profile or the ns unconfined profile (NOT NULL) + * + * This fn will not update the tasks cred to the most up to date version + * of the profile so it is safe to call when inside of locks. + */ +static inline struct aa_profile *__aa_current_profile(void) +{ + return aa_cred_profile(current_cred()); +} + +/** + * aa_current_profile - find the current tasks confining profile and do updates + * + * Returns: up to date confining profile or the ns unconfined profile (NOT NULL) + * + * This fn will update the tasks cred structure if the profile has been + * replaced. Not safe to call inside locks + */ +static inline struct aa_profile *aa_current_profile(void) +{ + const struct aa_task_cxt *cxt = current_cred()->security; + struct aa_profile *profile; + BUG_ON(!cxt || !cxt->profile); + + profile = aa_newest_version(cxt->profile); + /* + * Whether or not replacement succeeds, use newest profile so + * there is no need to update it after replacement. + */ + if (unlikely((cxt->profile != profile))) + aa_replace_current_profile(profile); + + return profile; +} + +#endif /* __AA_CONTEXT_H */ --- linux-2.6.35.orig/security/apparmor/include/audit.h +++ linux-2.6.35/security/apparmor/include/audit.h @@ -0,0 +1,123 @@ +/* + * AppArmor security module + * + * This file contains AppArmor auditing function definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_AUDIT_H +#define __AA_AUDIT_H + +#include +#include +#include +#include +#include + +#include "file.h" + +struct aa_profile; + +extern const char *audit_mode_names[]; +#define AUDIT_MAX_INDEX 5 + +#define AUDIT_APPARMOR_AUTO 0 /* auto choose audit message type */ + +enum audit_mode { + AUDIT_NORMAL, /* follow normal auditing of accesses */ + AUDIT_QUIET_DENIED, /* quiet all denied access messages */ + AUDIT_QUIET, /* quiet all messages */ + AUDIT_NOQUIET, /* do not quiet audit messages */ + AUDIT_ALL /* audit all accesses */ +}; + +enum audit_type { + AUDIT_APPARMOR_AUDIT, + AUDIT_APPARMOR_ALLOWED, + AUDIT_APPARMOR_DENIED, + AUDIT_APPARMOR_HINT, + AUDIT_APPARMOR_STATUS, + AUDIT_APPARMOR_ERROR, + AUDIT_APPARMOR_KILL +}; + +extern const char *op_table[]; +enum aa_ops { + OP_NULL, + + OP_SYSCTL, + OP_CAPABLE, + + OP_UNLINK, + OP_MKDIR, + OP_RMDIR, + OP_MKNOD, + OP_TRUNC, + OP_LINK, + OP_SYMLINK, + OP_RENAME_SRC, + OP_RENAME_DEST, + OP_CHMOD, + OP_CHOWN, + OP_GETATTR, + OP_OPEN, + + OP_FPERM, + OP_FLOCK, + OP_FMMAP, + OP_FMPROT, + + OP_CREATE, + OP_POST_CREATE, + OP_BIND, + OP_CONNECT, + OP_LISTEN, + OP_ACCEPT, + OP_SENDMSG, + OP_RECVMSG, + OP_GETSOCKNAME, + OP_GETPEERNAME, + OP_GETSOCKOPT, + OP_SETSOCKOPT, + OP_SOCK_SHUTDOWN, + + OP_PTRACE, + + OP_EXEC, + OP_CHANGE_HAT, + OP_CHANGE_PROFILE, + OP_CHANGE_ONEXEC, + + OP_SETPROCATTR, + OP_SETRLIMIT, + + OP_PROF_REPL, + OP_PROF_LOAD, + OP_PROF_RM, +}; + + +/* define a short hand for apparmor_audit_data portion of common_audit_data */ +#define aad apparmor_audit_data + +void aa_audit_msg(int type, struct common_audit_data *sa, + void (*cb) (struct audit_buffer *, void *)); +int aa_audit(int type, struct aa_profile *profile, gfp_t gfp, + struct common_audit_data *sa, + void (*cb) (struct audit_buffer *, void *)); + +static inline int complain_error(int error) +{ + if (error == -EPERM || error == -EACCES) + return 0; + return error; +} + +#endif /* __AA_AUDIT_H */ --- linux-2.6.35.orig/security/apparmor/include/procattr.h +++ linux-2.6.35/security/apparmor/include/procattr.h @@ -0,0 +1,26 @@ +/* + * AppArmor security module + * + * This file contains AppArmor /proc//attr/ interface function definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_PROCATTR_H +#define __AA_PROCATTR_H + +#define AA_DO_TEST 1 +#define AA_ONEXEC 1 + +int aa_getprocattr(struct aa_profile *profile, char **string); +int aa_setprocattr_changehat(char *args, size_t size, int test); +int aa_setprocattr_changeprofile(char *fqname, bool onexec, int test); +int aa_setprocattr_permipc(char *fqname); + +#endif /* __AA_PROCATTR_H */ --- linux-2.6.35.orig/security/apparmor/include/apparmor.h +++ linux-2.6.35/security/apparmor/include/apparmor.h @@ -0,0 +1,92 @@ +/* + * AppArmor security module + * + * This file contains AppArmor basic global and lib definitions + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __APPARMOR_H +#define __APPARMOR_H + +#include + +#include "match.h" + +/* Control parameters settable through module/boot flags */ +extern enum audit_mode aa_g_audit; +extern int aa_g_audit_header; +extern int aa_g_debug; +extern int aa_g_lock_policy; +extern int aa_g_logsyscall; +extern int aa_g_paranoid_load; +extern unsigned int aa_g_path_max; + +/* + * DEBUG remains global (no per profile flag) since it is mostly used in sysctl + * which is not related to profile accesses. + */ + +#define AA_DEBUG(fmt, args...) \ + do { \ + if (aa_g_debug && printk_ratelimit()) \ + printk(KERN_DEBUG "AppArmor: " fmt, ##args); \ + } while (0) + +#define AA_ERROR(fmt, args...) \ + do { \ + if (printk_ratelimit()) \ + printk(KERN_ERR "AppArmor: " fmt, ##args); \ + } while (0) + +/* Flag indicating whether initialization completed */ +extern int apparmor_initialized __initdata; + +/* fn's in lib */ +char *aa_split_fqname(char *args, char **ns_name); +void aa_info_message(const char *str); +void *kvmalloc(size_t size); +void kvfree(void *buffer); + + +/** + * aa_strneq - compare null terminated @str to a non null terminated substring + * @str: a null terminated string + * @sub: a substring, not necessarily null terminated + * @len: length of @sub to compare + * + * The @str string must be full consumed for this to be considered a match + */ +static inline bool aa_strneq(const char *str, const char *sub, int len) +{ + return !strncmp(str, sub, len) && !str[len]; +} + +/** + * aa_dfa_null_transition - step to next state after null character + * @dfa: the dfa to match against + * @start: the state of the dfa to start matching in + * + * aa_dfa_null_transition transitions to the next state after a null + * character which is not used in standard matching and is only + * used to separate pairs. + */ +static inline unsigned int aa_dfa_null_transition(struct aa_dfa *dfa, + unsigned int start) +{ + /* the null transition only needs the string's null terminator byte */ + return aa_dfa_match_len(dfa, start, "", 1); +} + +static inline bool mediated_filesystem(struct inode *inode) +{ + return !(inode->i_sb->s_flags & MS_NOUSER); +} + +#endif /* __APPARMOR_H */ --- linux-2.6.35.orig/security/apparmor/include/ipc.h +++ linux-2.6.35/security/apparmor/include/ipc.h @@ -0,0 +1,28 @@ +/* + * AppArmor security module + * + * This file contains AppArmor ipc mediation function definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_IPC_H +#define __AA_IPC_H + +#include + +struct aa_profile; + +int aa_may_ptrace(struct task_struct *tracer_task, struct aa_profile *tracer, + struct aa_profile *tracee, unsigned int mode); + +int aa_ptrace(struct task_struct *tracer, struct task_struct *tracee, + unsigned int mode); + +#endif /* __AA_IPC_H */ --- linux-2.6.35.orig/security/apparmor/include/capability.h +++ linux-2.6.35/security/apparmor/include/capability.h @@ -0,0 +1,45 @@ +/* + * AppArmor security module + * + * This file contains AppArmor capability mediation definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_CAPABILITY_H +#define __AA_CAPABILITY_H + +#include + +struct aa_profile; + +/* aa_caps - confinement data for capabilities + * @allowed: capabilities mask + * @audit: caps that are to be audited + * @quiet: caps that should not be audited + * @kill: caps that when requested will result in the task being killed + * @extended: caps that are subject finer grained mediation + */ +struct aa_caps { + kernel_cap_t allow; + kernel_cap_t audit; + kernel_cap_t quiet; + kernel_cap_t kill; + kernel_cap_t extended; +}; + +int aa_capable(struct task_struct *task, struct aa_profile *profile, int cap, + int audit); + +static inline void aa_free_cap_rules(struct aa_caps *caps) +{ + /* NOP */ +} + +#endif /* __AA_CAPBILITY_H */ --- linux-2.6.35.orig/security/apparmor/include/resource.h +++ linux-2.6.35/security/apparmor/include/resource.h @@ -0,0 +1,46 @@ +/* + * AppArmor security module + * + * This file contains AppArmor resource limits function definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_RESOURCE_H +#define __AA_RESOURCE_H + +#include +#include + +struct aa_profile; + +/* struct aa_rlimit - rlimit settings for the profile + * @mask: which hard limits to set + * @limits: rlimit values that override task limits + * + * AppArmor rlimits are used to set confined task rlimits. Only the + * limits specified in @mask will be controlled by apparmor. + */ +struct aa_rlimit { + unsigned int mask; + struct rlimit limits[RLIM_NLIMITS]; +}; + +int aa_map_resource(int resource); +int aa_task_setrlimit(struct aa_profile *profile, unsigned int resource, + struct rlimit *new_rlim); + +void __aa_transition_rlimits(struct aa_profile *old, struct aa_profile *new); + +static inline void aa_free_rlimit_rules(struct aa_rlimit *rlims) +{ + /* NOP */ +} + +#endif /* __AA_RESOURCE_H */ --- linux-2.6.35.orig/security/apparmor/include/apparmorfs.h +++ linux-2.6.35/security/apparmor/include/apparmorfs.h @@ -0,0 +1,26 @@ +/* + * AppArmor security module + * + * This file contains AppArmor filesystem definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_APPARMORFS_H +#define __AA_APPARMORFS_H + +extern void __init aa_destroy_aafs(void); + +#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24 +extern const struct file_operations aa_fs_matching_fops; +extern const struct file_operations aa_fs_features_fops; +extern const struct file_operations aa_fs_profiles_fops; +#endif + +#endif /* __AA_APPARMORFS_H */ --- linux-2.6.35.orig/security/apparmor/include/match.h +++ linux-2.6.35/security/apparmor/include/match.h @@ -0,0 +1,132 @@ +/* + * AppArmor security module + * + * This file contains AppArmor policy dfa matching engine definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_MATCH_H +#define __AA_MATCH_H + +#include + +#define DFA_NOMATCH 0 +#define DFA_START 1 + +#define DFA_VALID_PERM_MASK 0xffffffff +#define DFA_VALID_PERM2_MASK 0xffffffff + +/** + * The format used for transition tables is based on the GNU flex table + * file format (--tables-file option; see Table File Format in the flex + * info pages and the flex sources for documentation). The magic number + * used in the header is 0x1B5E783D insted of 0xF13C57B1 though, because + * the YY_ID_CHK (check) and YY_ID_DEF (default) tables are used + * slightly differently (see the apparmor-parser package). + */ + +#define YYTH_MAGIC 0x1B5E783D +#define YYTH_DEF_RECURSE 0x1 /* DEF Table is recursive */ + +struct table_set_header { + u32 th_magic; /* YYTH_MAGIC */ + u32 th_hsize; + u32 th_ssize; + u16 th_flags; + char th_version[]; +}; + +/* The YYTD_ID are one less than flex table mappings. The flex id + * has 1 subtracted at table load time, this allows us to directly use the + * ID's as indexes. + */ +#define YYTD_ID_ACCEPT 0 +#define YYTD_ID_BASE 1 +#define YYTD_ID_CHK 2 +#define YYTD_ID_DEF 3 +#define YYTD_ID_EC 4 +#define YYTD_ID_META 5 +#define YYTD_ID_ACCEPT2 6 +#define YYTD_ID_NXT 7 +#define YYTD_ID_TSIZE 8 + +#define YYTD_DATA8 1 +#define YYTD_DATA16 2 +#define YYTD_DATA32 4 +#define YYTD_DATA64 8 + +/* Each ACCEPT2 table gets 6 dedicated flags, YYTD_DATAX define the + * first flags + */ +#define ACCEPT1_FLAGS(X) ((X) & 0x3f) +#define ACCEPT2_FLAGS(X) ACCEPT1_FLAGS((X) >> YYTD_ID_ACCEPT2) +#define TO_ACCEPT1_FLAG(X) ACCEPT1_FLAGS(X) +#define TO_ACCEPT2_FLAG(X) (ACCEPT1_FLAGS(X) << YYTD_ID_ACCEPT2) +#define DFA_FLAG_VERIFY_STATES 0x1000 + +struct table_header { + u16 td_id; + u16 td_flags; + u32 td_hilen; + u32 td_lolen; + char td_data[]; +}; + +#define DEFAULT_TABLE(DFA) ((u16 *)((DFA)->tables[YYTD_ID_DEF]->td_data)) +#define BASE_TABLE(DFA) ((u32 *)((DFA)->tables[YYTD_ID_BASE]->td_data)) +#define NEXT_TABLE(DFA) ((u16 *)((DFA)->tables[YYTD_ID_NXT]->td_data)) +#define CHECK_TABLE(DFA) ((u16 *)((DFA)->tables[YYTD_ID_CHK]->td_data)) +#define EQUIV_TABLE(DFA) ((u8 *)((DFA)->tables[YYTD_ID_EC]->td_data)) +#define ACCEPT_TABLE(DFA) ((u32 *)((DFA)->tables[YYTD_ID_ACCEPT]->td_data)) +#define ACCEPT_TABLE2(DFA) ((u32 *)((DFA)->tables[YYTD_ID_ACCEPT2]->td_data)) + +struct aa_dfa { + struct kref count; + u16 flags; + struct table_header *tables[YYTD_ID_TSIZE]; +}; + +#define byte_to_byte(X) (X) + +#define UNPACK_ARRAY(TABLE, BLOB, LEN, TYPE, NTOHX) \ + do { \ + typeof(LEN) __i; \ + TYPE *__t = (TYPE *) TABLE; \ + TYPE *__b = (TYPE *) BLOB; \ + for (__i = 0; __i < LEN; __i++) { \ + __t[__i] = NTOHX(__b[__i]); \ + } \ + } while (0) + +static inline size_t table_size(size_t len, size_t el_size) +{ + return ALIGN(sizeof(struct table_header) + len * el_size, 8); +} + +struct aa_dfa *aa_dfa_unpack(void *blob, size_t size, int flags); +unsigned int aa_dfa_match_len(struct aa_dfa *dfa, unsigned int start, + const char *str, int len); +unsigned int aa_dfa_match(struct aa_dfa *dfa, unsigned int start, + const char *str); +void aa_dfa_free_kref(struct kref *kref); + +/** + * aa_put_dfa - put a dfa refcount + * @dfa: dfa to put refcount (MAYBE NULL) + * + * Requires: if @dfa != NULL that a valid refcount be held + */ +static inline void aa_put_dfa(struct aa_dfa *dfa) +{ + if (dfa) + kref_put(&dfa->count, aa_dfa_free_kref); +} + +#endif /* __AA_MATCH_H */ --- linux-2.6.35.orig/security/apparmor/include/policy_unpack.h +++ linux-2.6.35/security/apparmor/include/policy_unpack.h @@ -0,0 +1,20 @@ +/* + * AppArmor security module + * + * This file contains AppArmor policy loading interface function definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __POLICY_INTERFACE_H +#define __POLICY_INTERFACE_H + +struct aa_profile *aa_unpack(void *udata, size_t size, const char **ns); + +#endif /* __POLICY_INTERFACE_H */ --- linux-2.6.35.orig/security/apparmor/include/path.h +++ linux-2.6.35/security/apparmor/include/path.h @@ -0,0 +1,31 @@ +/* + * AppArmor security module + * + * This file contains AppArmor basic path manipulation function definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_PATH_H +#define __AA_PATH_H + + +enum path_flags { + PATH_IS_DIR = 0x1, /* path is a directory */ + PATH_CONNECT_PATH = 0x4, /* connect disconnected paths to / */ + PATH_CHROOT_REL = 0x8, /* do path lookup relative to chroot */ + PATH_CHROOT_NSCONNECT = 0x10, /* connect paths that are at ns root */ + + PATH_DELEGATE_DELETED = 0x08000, /* delegate deleted files */ + PATH_MEDIATE_DELETED = 0x10000, /* mediate deleted paths */ +}; + +int aa_get_name(struct path *path, int flags, char **buffer, const char **name); + +#endif /* __AA_PATH_H */ --- linux-2.6.35.orig/security/apparmor/include/net.h +++ linux-2.6.35/security/apparmor/include/net.h @@ -0,0 +1,40 @@ +/* + * AppArmor security module + * + * This file contains AppArmor network mediation definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2010 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __AA_NET_H +#define __AA_NET_H + +#include + +/* struct aa_net - network confinement data + * @allowed: basic network families permissions + * @audit_network: which network permissions to force audit + * @quiet_network: which network permissions to quiet rejects + */ +struct aa_net { + u16 allow[AF_MAX]; + u16 audit[AF_MAX]; + u16 quiet[AF_MAX]; +}; + +extern int aa_net_perm(int op, struct aa_profile *profile, u16 family, + int type, int protocol, struct sock *sk); +extern int aa_revalidate_sk(int op, struct sock *sk); + +static inline void aa_free_net_rules(struct aa_net *new) +{ + /* NOP */ +} + +#endif /* __AA_NET_H */ --- linux-2.6.35.orig/security/integrity/ima/ima_iint.c +++ linux-2.6.35/security/integrity/ima/ima_iint.c @@ -22,9 +22,10 @@ RADIX_TREE(ima_iint_store, GFP_ATOMIC); DEFINE_SPINLOCK(ima_iint_lock); - static struct kmem_cache *iint_cache __read_mostly; +int iint_initialized = 0; + /* ima_iint_find_get - return the iint associated with an inode * * ima_iint_find_get gets a reference to the iint. Caller must @@ -141,6 +142,7 @@ iint_cache = kmem_cache_create("iint_cache", sizeof(struct ima_iint_cache), 0, SLAB_PANIC, init_once); + iint_initialized = 1; return 0; } security_initcall(ima_iintcache_init); --- linux-2.6.35.orig/security/integrity/ima/ima_main.c +++ linux-2.6.35/security/integrity/ima/ima_main.c @@ -148,12 +148,14 @@ struct ima_iint_cache *iint; int rc; - if (!ima_initialized || !S_ISREG(inode->i_mode)) + if (!iint_initialized || !S_ISREG(inode->i_mode)) return; iint = ima_iint_find_get(inode); if (!iint) return; mutex_lock(&iint->mutex); + if (!ima_initialized) + goto out; rc = ima_must_measure(iint, inode, MAY_READ, FILE_CHECK); if (rc < 0) goto out; @@ -213,7 +215,7 @@ struct inode *inode = file->f_dentry->d_inode; struct ima_iint_cache *iint; - if (!ima_initialized || !S_ISREG(inode->i_mode)) + if (!iint_initialized || !S_ISREG(inode->i_mode)) return; iint = ima_iint_find_get(inode); if (!iint) @@ -230,7 +232,7 @@ { struct inode *inode = file->f_dentry->d_inode; struct ima_iint_cache *iint; - int rc; + int rc = 0; if (!ima_initialized || !S_ISREG(inode->i_mode)) return 0; --- linux-2.6.35.orig/security/integrity/ima/ima.h +++ linux-2.6.35/security/integrity/ima/ima.h @@ -35,6 +35,7 @@ #define IMA_MEASURE_HTABLE_SIZE (1 << IMA_HASH_BITS) /* set during initialization */ +extern int iint_initialized; extern int ima_initialized; extern int ima_used_chip; extern char *ima_hash; --- linux-2.6.35.orig/security/keys/keyctl.c +++ linux-2.6.35/security/keys/keyctl.c @@ -1259,6 +1259,7 @@ keyring_r = NULL; me = current; + rcu_read_lock(); write_lock_irq(&tasklist_lock); parent = me->real_parent; @@ -1291,7 +1292,8 @@ goto not_permitted; /* the keyrings must have the same UID */ - if (pcred->tgcred->session_keyring->uid != mycred->euid || + if ((pcred->tgcred->session_keyring && + pcred->tgcred->session_keyring->uid != mycred->euid) || mycred->tgcred->session_keyring->uid != mycred->euid) goto not_permitted; @@ -1306,6 +1308,7 @@ set_ti_thread_flag(task_thread_info(parent), TIF_NOTIFY_RESUME); write_unlock_irq(&tasklist_lock); + rcu_read_unlock(); if (oldcred) put_cred(oldcred); return 0; @@ -1314,6 +1317,7 @@ ret = 0; not_permitted: write_unlock_irq(&tasklist_lock); + rcu_read_unlock(); put_cred(cred); return ret; --- linux-2.6.35.orig/scripts/mkmakefile +++ linux-2.6.35/scripts/mkmakefile @@ -44,7 +44,9 @@ Makefile:; -\$(all) %/: all +\$(all): all @: +%/: all + @: EOF --- linux-2.6.35.orig/virt/kvm/kvm_main.c +++ linux-2.6.35/virt/kvm/kvm_main.c @@ -566,6 +566,7 @@ new = old = *memslot; + new.id = mem->slot; new.base_gfn = base_gfn; new.npages = npages; new.flags = mem->flags; --- linux-2.6.35.orig/net/Kconfig +++ linux-2.6.35/net/Kconfig @@ -206,7 +206,7 @@ config RPS boolean - depends on SMP && SYSFS + depends on SMP && SYSFS && USE_GENERIC_SMP_HELPERS default y menu "Network testing" --- linux-2.6.35.orig/net/sunrpc/rpc_pipe.c +++ linux-2.6.35/net/sunrpc/rpc_pipe.c @@ -48,7 +48,7 @@ return; do { msg = list_entry(head->next, struct rpc_pipe_msg, list); - list_del(&msg->list); + list_del_init(&msg->list); msg->errno = err; destroy_msg(msg); } while (!list_empty(head)); @@ -208,7 +208,7 @@ if (msg != NULL) { spin_lock(&inode->i_lock); msg->errno = -EAGAIN; - list_del(&msg->list); + list_del_init(&msg->list); spin_unlock(&inode->i_lock); rpci->ops->destroy_msg(msg); } @@ -268,7 +268,7 @@ if (res < 0 || msg->len == msg->copied) { filp->private_data = NULL; spin_lock(&inode->i_lock); - list_del(&msg->list); + list_del_init(&msg->list); spin_unlock(&inode->i_lock); rpci->ops->destroy_msg(msg); } --- linux-2.6.35.orig/net/sunrpc/auth_gss/auth_gss.c +++ linux-2.6.35/net/sunrpc/auth_gss/auth_gss.c @@ -745,17 +745,18 @@ struct rpc_inode *rpci = RPC_I(inode); struct gss_upcall_msg *gss_msg; +restart: spin_lock(&inode->i_lock); - while (!list_empty(&rpci->in_downcall)) { + list_for_each_entry(gss_msg, &rpci->in_downcall, list) { - gss_msg = list_entry(rpci->in_downcall.next, - struct gss_upcall_msg, list); + if (!list_empty(&gss_msg->msg.list)) + continue; gss_msg->msg.errno = -EPIPE; atomic_inc(&gss_msg->count); __gss_unhash_msg(gss_msg); spin_unlock(&inode->i_lock); gss_release_msg(gss_msg); - spin_lock(&inode->i_lock); + goto restart; } spin_unlock(&inode->i_lock); --- linux-2.6.35.orig/net/mac80211/main.c +++ linux-2.6.35/net/mac80211/main.c @@ -659,6 +659,12 @@ rtnl_unlock(); + /* + * Now all work items will be gone, but the + * timer might still be armed, so delete it + */ + del_timer_sync(&local->work_timer); + cancel_work_sync(&local->reconfig_filter); ieee80211_clear_tx_pending(local); --- linux-2.6.35.orig/net/mac80211/mesh_plink.c +++ linux-2.6.35/net/mac80211/mesh_plink.c @@ -65,7 +65,6 @@ { atomic_inc(&sdata->u.mesh.mshstats.estab_plinks); mesh_accept_plinks_update(sdata); - ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON); } static inline @@ -73,7 +72,6 @@ { atomic_dec(&sdata->u.mesh.mshstats.estab_plinks); mesh_accept_plinks_update(sdata); - ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON); } /** @@ -115,7 +113,7 @@ } /** - * mesh_plink_deactivate - deactivate mesh peer link + * __mesh_plink_deactivate - deactivate mesh peer link * * @sta: mesh peer link to deactivate * @@ -123,18 +121,23 @@ * * Locking: the caller must hold sta->lock */ -static void __mesh_plink_deactivate(struct sta_info *sta) +static bool __mesh_plink_deactivate(struct sta_info *sta) { struct ieee80211_sub_if_data *sdata = sta->sdata; + bool deactivated = false; - if (sta->plink_state == PLINK_ESTAB) + if (sta->plink_state == PLINK_ESTAB) { mesh_plink_dec_estab_count(sdata); + deactivated = true; + } sta->plink_state = PLINK_BLOCKED; mesh_path_flush_by_nexthop(sta); + + return deactivated; } /** - * __mesh_plink_deactivate - deactivate mesh peer link + * mesh_plink_deactivate - deactivate mesh peer link * * @sta: mesh peer link to deactivate * @@ -142,9 +145,15 @@ */ void mesh_plink_deactivate(struct sta_info *sta) { + struct ieee80211_sub_if_data *sdata = sta->sdata; + bool deactivated; + spin_lock_bh(&sta->lock); - __mesh_plink_deactivate(sta); + deactivated = __mesh_plink_deactivate(sta); spin_unlock_bh(&sta->lock); + + if (deactivated) + ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON); } static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata, @@ -381,10 +390,16 @@ void mesh_plink_block(struct sta_info *sta) { + struct ieee80211_sub_if_data *sdata = sta->sdata; + bool deactivated; + spin_lock_bh(&sta->lock); - __mesh_plink_deactivate(sta); + deactivated = __mesh_plink_deactivate(sta); sta->plink_state = PLINK_BLOCKED; spin_unlock_bh(&sta->lock); + + if (deactivated) + ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON); } @@ -397,6 +412,7 @@ enum plink_event event; enum plink_frame_type ftype; size_t baselen; + bool deactivated; u8 ie_len; u8 *baseaddr; __le16 plid, llid, reason; @@ -651,8 +667,9 @@ case CNF_ACPT: del_timer(&sta->plink_timer); sta->plink_state = PLINK_ESTAB; - mesh_plink_inc_estab_count(sdata); spin_unlock_bh(&sta->lock); + mesh_plink_inc_estab_count(sdata); + ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON); mpl_dbg("Mesh plink with %pM ESTABLISHED\n", sta->sta.addr); break; @@ -684,8 +701,9 @@ case OPN_ACPT: del_timer(&sta->plink_timer); sta->plink_state = PLINK_ESTAB; - mesh_plink_inc_estab_count(sdata); spin_unlock_bh(&sta->lock); + mesh_plink_inc_estab_count(sdata); + ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON); mpl_dbg("Mesh plink with %pM ESTABLISHED\n", sta->sta.addr); mesh_plink_frame_tx(sdata, PLINK_CONFIRM, sta->sta.addr, llid, @@ -702,11 +720,13 @@ case CLS_ACPT: reason = cpu_to_le16(MESH_CLOSE_RCVD); sta->reason = reason; - __mesh_plink_deactivate(sta); + deactivated = __mesh_plink_deactivate(sta); sta->plink_state = PLINK_HOLDING; llid = sta->llid; mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata)); spin_unlock_bh(&sta->lock); + if (deactivated) + ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON); mesh_plink_frame_tx(sdata, PLINK_CLOSE, sta->sta.addr, llid, plid, reason); break; --- linux-2.6.35.orig/net/ipv6/udp.c +++ linux-2.6.35/net/ipv6/udp.c @@ -111,6 +111,15 @@ return udp_lib_get_port(sk, snum, ipv6_rcv_saddr_equal, hash2_nulladdr); } +static void udp_v6_rehash(struct sock *sk) +{ + u16 new_hash = udp6_portaddr_hash(sock_net(sk), + &inet6_sk(sk)->rcv_saddr, + inet_sk(sk)->inet_num); + + udp_lib_rehash(sk, new_hash); +} + static inline int compute_score(struct sock *sk, struct net *net, unsigned short hnum, struct in6_addr *saddr, __be16 sport, @@ -1452,6 +1461,7 @@ .backlog_rcv = udpv6_queue_rcv_skb, .hash = udp_lib_hash, .unhash = udp_lib_unhash, + .rehash = udp_v6_rehash, .get_port = udp_v6_get_port, .memory_allocated = &udp_memory_allocated, .sysctl_mem = sysctl_udp_mem, --- linux-2.6.35.orig/net/ipv6/datagram.c +++ linux-2.6.35/net/ipv6/datagram.c @@ -104,9 +104,12 @@ if (ipv6_addr_any(&np->saddr)) ipv6_addr_set_v4mapped(inet->inet_saddr, &np->saddr); - if (ipv6_addr_any(&np->rcv_saddr)) + if (ipv6_addr_any(&np->rcv_saddr)) { ipv6_addr_set_v4mapped(inet->inet_rcv_saddr, &np->rcv_saddr); + if (sk->sk_prot->rehash) + sk->sk_prot->rehash(sk); + } goto out; } @@ -191,6 +194,8 @@ if (ipv6_addr_any(&np->rcv_saddr)) { ipv6_addr_copy(&np->rcv_saddr, &fl.fl6_src); inet->inet_rcv_saddr = LOOPBACK4_IPV6; + if (sk->sk_prot->rehash) + sk->sk_prot->rehash(sk); } ip6_dst_store(sk, dst, --- linux-2.6.35.orig/net/ipv6/netfilter/ip6_tables.c +++ linux-2.6.35/net/ipv6/netfilter/ip6_tables.c @@ -1765,6 +1765,9 @@ if (ret != 0) break; ++i; + if (strcmp(ip6t_get_target(iter1)->u.user.name, + XT_ERROR_TARGET) == 0) + ++newinfo->stacksize; } if (ret) { /* --- linux-2.6.35.orig/net/can/bcm.c +++ linux-2.6.35/net/can/bcm.c @@ -60,6 +60,13 @@ #include #include +/* + * To send multiple CAN frame content within TX_SETUP or to filter + * CAN messages with multiplex index within RX_SETUP, the number of + * different filters is limited to 256 due to the one byte index value. + */ +#define MAX_NFRAMES 256 + /* use of last_frames[index].can_dlc */ #define RX_RECV 0x40 /* received data for this element */ #define RX_THR 0x80 /* element not been sent due to throttle feature */ @@ -89,16 +96,16 @@ struct list_head list; int ifindex; canid_t can_id; - int flags; + u32 flags; unsigned long frames_abs, frames_filtered; struct timeval ival1, ival2; struct hrtimer timer, thrtimer; struct tasklet_struct tsklet, thrtsklet; ktime_t rx_stamp, kt_ival1, kt_ival2, kt_lastmsg; int rx_ifindex; - int count; - int nframes; - int currframe; + u32 count; + u32 nframes; + u32 currframe; struct can_frame *frames; struct can_frame *last_frames; struct can_frame sframe; @@ -175,7 +182,7 @@ seq_printf(m, "rx_op: %03X %-5s ", op->can_id, bcm_proc_getifname(ifname, op->ifindex)); - seq_printf(m, "[%d]%c ", op->nframes, + seq_printf(m, "[%u]%c ", op->nframes, (op->flags & RX_CHECK_DLC)?'d':' '); if (op->kt_ival1.tv64) seq_printf(m, "timeo=%lld ", @@ -198,7 +205,7 @@ list_for_each_entry(op, &bo->tx_ops, list) { - seq_printf(m, "tx_op: %03X %s [%d] ", + seq_printf(m, "tx_op: %03X %s [%u] ", op->can_id, bcm_proc_getifname(ifname, op->ifindex), op->nframes); @@ -283,7 +290,7 @@ struct can_frame *firstframe; struct sockaddr_can *addr; struct sock *sk = op->sk; - int datalen = head->nframes * CFSIZ; + unsigned int datalen = head->nframes * CFSIZ; int err; skb = alloc_skb(sizeof(*head) + datalen, gfp_any()); @@ -468,7 +475,7 @@ * bcm_rx_cmp_to_index - (bit)compares the currently received data to formerly * received data stored in op->last_frames[] */ -static void bcm_rx_cmp_to_index(struct bcm_op *op, int index, +static void bcm_rx_cmp_to_index(struct bcm_op *op, unsigned int index, const struct can_frame *rxdata) { /* @@ -554,7 +561,8 @@ /* * bcm_rx_do_flush - helper for bcm_rx_thr_flush */ -static inline int bcm_rx_do_flush(struct bcm_op *op, int update, int index) +static inline int bcm_rx_do_flush(struct bcm_op *op, int update, + unsigned int index) { if ((op->last_frames) && (op->last_frames[index].can_dlc & RX_THR)) { if (update) @@ -575,7 +583,7 @@ int updated = 0; if (op->nframes > 1) { - int i; + unsigned int i; /* for MUX filter we start at index 1 */ for (i = 1; i < op->nframes; i++) @@ -624,7 +632,7 @@ { struct bcm_op *op = (struct bcm_op *)data; const struct can_frame *rxframe = (struct can_frame *)skb->data; - int i; + unsigned int i; /* disable timeout */ hrtimer_cancel(&op->timer); @@ -822,14 +830,15 @@ { struct bcm_sock *bo = bcm_sk(sk); struct bcm_op *op; - int i, err; + unsigned int i; + int err; /* we need a real device to send frames */ if (!ifindex) return -ENODEV; - /* we need at least one can_frame */ - if (msg_head->nframes < 1) + /* check nframes boundaries - we need at least one can_frame */ + if (msg_head->nframes < 1 || msg_head->nframes > MAX_NFRAMES) return -EINVAL; /* check the given can_id */ @@ -993,6 +1002,10 @@ msg_head->nframes = 0; } + /* the first element contains the mux-mask => MAX_NFRAMES + 1 */ + if (msg_head->nframes > MAX_NFRAMES + 1) + return -EINVAL; + if ((msg_head->flags & RX_RTR_FRAME) && ((msg_head->nframes != 1) || (!(msg_head->can_id & CAN_RTR_FLAG)))) --- linux-2.6.35.orig/net/can/raw.c +++ linux-2.6.35/net/can/raw.c @@ -655,6 +655,10 @@ err = sock_tx_timestamp(msg, sk, skb_tx(skb)); if (err < 0) goto free_skb; + + /* to be able to check the received tx sock reference in raw_rcv() */ + skb_tx(skb)->prevent_sk_orphan = 1; + skb->dev = dev; skb->sk = sk; --- linux-2.6.35.orig/net/irda/af_irda.c +++ linux-2.6.35/net/irda/af_irda.c @@ -824,8 +824,8 @@ err = irda_open_tsap(self, addr->sir_lsap_sel, addr->sir_name); if (err < 0) { - kfree(self->ias_obj->name); - kfree(self->ias_obj); + irias_delete_object(self->ias_obj); + self->ias_obj = NULL; goto out; } --- linux-2.6.35.orig/net/irda/irlan/irlan_common.c +++ linux-2.6.35/net/irda/irlan/irlan_common.c @@ -1102,7 +1102,7 @@ memcpy(&val_len, buf+n, 2); /* To avoid alignment problems */ le16_to_cpus(&val_len); n+=2; - if (val_len > 1016) { + if (val_len >= 1016) { IRDA_DEBUG(2, "%s(), parameter length to long\n", __func__ ); return -RSP_INVALID_COMMAND_FORMAT; } --- linux-2.6.35.orig/net/ipv4/devinet.c +++ linux-2.6.35/net/ipv4/devinet.c @@ -1081,6 +1081,7 @@ } ip_mc_up(in_dev); /* fall through */ + case NETDEV_NOTIFY_PEERS: case NETDEV_CHANGEADDR: /* Send gratuitous ARP to notify of link change */ if (IN_DEV_ARP_NOTIFY(in_dev)) { --- linux-2.6.35.orig/net/ipv4/udp.c +++ linux-2.6.35/net/ipv4/udp.c @@ -1260,6 +1260,49 @@ } EXPORT_SYMBOL(udp_lib_unhash); +/* + * inet_rcv_saddr was changed, we must rehash secondary hash + */ +void udp_lib_rehash(struct sock *sk, u16 newhash) +{ + if (sk_hashed(sk)) { + struct udp_table *udptable = sk->sk_prot->h.udp_table; + struct udp_hslot *hslot, *hslot2, *nhslot2; + + hslot2 = udp_hashslot2(udptable, udp_sk(sk)->udp_portaddr_hash); + nhslot2 = udp_hashslot2(udptable, newhash); + udp_sk(sk)->udp_portaddr_hash = newhash; + if (hslot2 != nhslot2) { + hslot = udp_hashslot(udptable, sock_net(sk), + udp_sk(sk)->udp_port_hash); + /* we must lock primary chain too */ + spin_lock_bh(&hslot->lock); + + spin_lock(&hslot2->lock); + hlist_nulls_del_init_rcu(&udp_sk(sk)->udp_portaddr_node); + hslot2->count--; + spin_unlock(&hslot2->lock); + + spin_lock(&nhslot2->lock); + hlist_nulls_add_head_rcu(&udp_sk(sk)->udp_portaddr_node, + &nhslot2->head); + nhslot2->count++; + spin_unlock(&nhslot2->lock); + + spin_unlock_bh(&hslot->lock); + } + } +} +EXPORT_SYMBOL(udp_lib_rehash); + +static void udp_v4_rehash(struct sock *sk) +{ + u16 new_hash = udp4_portaddr_hash(sock_net(sk), + inet_sk(sk)->inet_rcv_saddr, + inet_sk(sk)->inet_num); + udp_lib_rehash(sk, new_hash); +} + static int __udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb) { int rc; @@ -1843,6 +1886,7 @@ .backlog_rcv = __udp_queue_rcv_skb, .hash = udp_lib_hash, .unhash = udp_lib_unhash, + .rehash = udp_v4_rehash, .get_port = udp_v4_get_port, .memory_allocated = &udp_memory_allocated, .sysctl_mem = sysctl_udp_mem, --- linux-2.6.35.orig/net/ipv4/datagram.c +++ linux-2.6.35/net/ipv4/datagram.c @@ -62,8 +62,11 @@ } if (!inet->inet_saddr) inet->inet_saddr = rt->rt_src; /* Update source address */ - if (!inet->inet_rcv_saddr) + if (!inet->inet_rcv_saddr) { inet->inet_rcv_saddr = rt->rt_src; + if (sk->sk_prot->rehash) + sk->sk_prot->rehash(sk); + } inet->inet_daddr = rt->rt_dst; inet->inet_dport = usin->sin_port; sk->sk_state = TCP_ESTABLISHED; --- linux-2.6.35.orig/net/ipv4/route.c +++ linux-2.6.35/net/ipv4/route.c @@ -2741,6 +2741,11 @@ EXPORT_SYMBOL_GPL(__ip_route_output_key); +static struct dst_entry *ipv4_blackhole_dst_check(struct dst_entry *dst, u32 cookie) +{ + return NULL; +} + static void ipv4_rt_blackhole_update_pmtu(struct dst_entry *dst, u32 mtu) { } @@ -2749,7 +2754,7 @@ .family = AF_INET, .protocol = cpu_to_be16(ETH_P_IP), .destroy = ipv4_dst_destroy, - .check = ipv4_dst_check, + .check = ipv4_blackhole_dst_check, .update_pmtu = ipv4_rt_blackhole_update_pmtu, .entries = ATOMIC_INIT(0), }; --- linux-2.6.35.orig/net/ipv4/tcp.c +++ linux-2.6.35/net/ipv4/tcp.c @@ -453,7 +453,8 @@ if (sk_stream_wspace(sk) >= sk_stream_min_wspace(sk)) mask |= POLLOUT | POLLWRNORM; } - } + } else + mask |= POLLOUT | POLLWRNORM; if (tp->urg_data & TCP_URG_VALID) mask |= POLLPRI; @@ -2002,11 +2003,8 @@ } } if (sk->sk_state != TCP_CLOSE) { - int orphan_count = percpu_counter_read_positive( - sk->sk_prot->orphan_count); - sk_mem_reclaim(sk); - if (tcp_too_many_orphans(sk, orphan_count)) { + if (tcp_too_many_orphans(sk, 0)) { if (net_ratelimit()) printk(KERN_INFO "TCP: too many of orphaned " "sockets\n"); @@ -2176,6 +2174,8 @@ GFP_KERNEL); if (cvp == NULL) return -ENOMEM; + + kref_init(&cvp->kref); } lock_sock(sk); tp->rx_opt.cookie_in_always = @@ -2190,12 +2190,11 @@ */ kref_put(&tp->cookie_values->kref, tcp_cookie_values_release); - kref_init(&cvp->kref); - tp->cookie_values = cvp; } else { cvp = tp->cookie_values; } } + if (cvp != NULL) { cvp->cookie_desired = ctd.tcpct_cookie_desired; @@ -2209,6 +2208,8 @@ cvp->s_data_desired = ctd.tcpct_s_data_desired; cvp->s_data_constant = 0; /* false */ } + + tp->cookie_values = cvp; } release_sock(sk); return err; @@ -3193,7 +3194,7 @@ { struct sk_buff *skb = NULL; unsigned long nr_pages, limit; - int order, i, max_share; + int i, max_share, cnt; unsigned long jiffy = jiffies; BUILD_BUG_ON(sizeof(struct tcp_skb_cb) > sizeof(skb->cb)); @@ -3242,22 +3243,12 @@ INIT_HLIST_HEAD(&tcp_hashinfo.bhash[i].chain); } - /* Try to be a bit smarter and adjust defaults depending - * on available memory. - */ - for (order = 0; ((1 << order) << PAGE_SHIFT) < - (tcp_hashinfo.bhash_size * sizeof(struct inet_bind_hashbucket)); - order++) - ; - if (order >= 4) { - tcp_death_row.sysctl_max_tw_buckets = 180000; - sysctl_tcp_max_orphans = 4096 << (order - 4); - sysctl_max_syn_backlog = 1024; - } else if (order < 3) { - tcp_death_row.sysctl_max_tw_buckets >>= (3 - order); - sysctl_tcp_max_orphans >>= (3 - order); - sysctl_max_syn_backlog = 128; - } + + cnt = tcp_hashinfo.ehash_mask + 1; + + tcp_death_row.sysctl_max_tw_buckets = cnt / 2; + sysctl_tcp_max_orphans = cnt / 2; + sysctl_max_syn_backlog = max(128, cnt / 256); /* Set the pressure threshold to be a fraction of global memory that * is up to 1/2 at 256 MB, decreasing toward zero with the amount of --- linux-2.6.35.orig/net/ipv4/tcp_timer.c +++ linux-2.6.35/net/ipv4/tcp_timer.c @@ -67,18 +67,18 @@ static int tcp_out_of_resources(struct sock *sk, int do_reset) { struct tcp_sock *tp = tcp_sk(sk); - int orphans = percpu_counter_read_positive(&tcp_orphan_count); + int shift = 0; /* If peer does not open window for long time, or did not transmit * anything for long time, penalize it. */ if ((s32)(tcp_time_stamp - tp->lsndtime) > 2*TCP_RTO_MAX || !do_reset) - orphans <<= 1; + shift++; /* If some dubious ICMP arrived, penalize even more. */ if (sk->sk_err_soft) - orphans <<= 1; + shift++; - if (tcp_too_many_orphans(sk, orphans)) { + if (tcp_too_many_orphans(sk, shift)) { if (net_ratelimit()) printk(KERN_INFO "Out of socket memory\n"); --- linux-2.6.35.orig/net/ipv4/netfilter/arp_tables.c +++ linux-2.6.35/net/ipv4/netfilter/arp_tables.c @@ -1420,6 +1420,9 @@ if (ret != 0) break; ++i; + if (strcmp(arpt_get_target(iter1)->u.user.name, + XT_ERROR_TARGET) == 0) + ++newinfo->stacksize; } if (ret) { /* --- linux-2.6.35.orig/net/ipv4/netfilter/ip_tables.c +++ linux-2.6.35/net/ipv4/netfilter/ip_tables.c @@ -1747,6 +1747,9 @@ if (ret != 0) break; ++i; + if (strcmp(ipt_get_target(iter1)->u.user.name, + XT_ERROR_TARGET) == 0) + ++newinfo->stacksize; } if (ret) { /* --- linux-2.6.35.orig/net/llc/af_llc.c +++ linux-2.6.35/net/llc/af_llc.c @@ -1024,7 +1024,8 @@ { struct sock *sk = sock->sk; struct llc_sock *llc = llc_sk(sk); - int rc = -EINVAL, opt; + unsigned int opt; + int rc = -EINVAL; lock_sock(sk); if (unlikely(level != SOL_LLC || optlen != sizeof(int))) --- linux-2.6.35.orig/net/9p/trans_fd.c +++ linux-2.6.35/net/9p/trans_fd.c @@ -948,7 +948,7 @@ csocket = NULL; - if (strlen(addr) > UNIX_PATH_MAX) { + if (strlen(addr) >= UNIX_PATH_MAX) { P9_EPRINTK(KERN_ERR, "p9_trans_unix: address too long: %s\n", addr); return -ENAMETOOLONG; --- linux-2.6.35.orig/net/bridge/br_device.c +++ linux-2.6.35/net/bridge/br_device.c @@ -22,7 +22,7 @@ #include #include "br_private.h" -/* net device transmit always called with no BH (preempt_disabled) */ +/* net device transmit always called with BH disabled */ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) { struct net_bridge *br = netdev_priv(dev); @@ -46,9 +46,12 @@ skb_reset_mac_header(skb); skb_pull(skb, ETH_HLEN); + rcu_read_lock(); if (is_multicast_ether_addr(dest)) { - if (br_multicast_rcv(br, NULL, skb)) + if (br_multicast_rcv(br, NULL, skb)) { + kfree_skb(skb); goto out; + } mdst = br_mdb_get(br, skb); if (mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) @@ -61,6 +64,7 @@ br_flood_deliver(br, skb); out: + rcu_read_unlock(); return NETDEV_TX_OK; } --- linux-2.6.35.orig/net/bridge/br_netfilter.c +++ linux-2.6.35/net/bridge/br_netfilter.c @@ -749,9 +749,11 @@ { if (skb->nfct != NULL && skb->protocol == htons(ETH_P_IP) && skb->len + nf_bridge_mtu_reduction(skb) > skb->dev->mtu && - !skb_is_gso(skb)) + !skb_is_gso(skb)) { + /* BUG: Should really parse the IP options here. */ + memset(IPCB(skb), 0, sizeof(struct inet_skb_parm)); return ip_fragment(skb, br_dev_queue_push_xmit); - else + } else return br_dev_queue_push_xmit(skb); } #else --- linux-2.6.35.orig/net/bridge/br_input.c +++ linux-2.6.35/net/bridge/br_input.c @@ -37,7 +37,7 @@ netif_receive_skb); } -/* note: already called with rcu_read_lock (preempt_disabled) */ +/* note: already called with rcu_read_lock */ int br_handle_frame_finish(struct sk_buff *skb) { const unsigned char *dest = eth_hdr(skb)->h_dest; @@ -108,7 +108,7 @@ goto out; } -/* note: already called with rcu_read_lock (preempt_disabled) */ +/* note: already called with rcu_read_lock */ static int br_handle_local_finish(struct sk_buff *skb) { struct net_bridge_port *p = rcu_dereference(skb->dev->br_port); @@ -133,7 +133,7 @@ /* * Called via br_handle_frame_hook. * Return NULL if skb is handled - * note: already called with rcu_read_lock (preempt_disabled) + * note: already called with rcu_read_lock */ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb) { --- linux-2.6.35.orig/net/bridge/br_fdb.c +++ linux-2.6.35/net/bridge/br_fdb.c @@ -214,7 +214,7 @@ spin_unlock_bh(&br->hash_lock); } -/* No locking or refcounting, assumes caller has no preempt (rcu_read_lock) */ +/* No locking or refcounting, assumes caller has rcu_read_lock */ struct net_bridge_fdb_entry *__br_fdb_get(struct net_bridge *br, const unsigned char *addr) { --- linux-2.6.35.orig/net/bridge/br_stp_bpdu.c +++ linux-2.6.35/net/bridge/br_stp_bpdu.c @@ -131,7 +131,7 @@ /* * Called from llc. * - * NO locks, but rcu_read_lock (preempt_disabled) + * NO locks, but rcu_read_lock */ void br_stp_rcv(const struct stp_proto *proto, struct sk_buff *skb, struct net_device *dev) --- linux-2.6.35.orig/net/netlink/af_netlink.c +++ linux-2.6.35/net/netlink/af_netlink.c @@ -1400,7 +1400,7 @@ struct netlink_sock *nlk = nlk_sk(sk); int noblock = flags&MSG_DONTWAIT; size_t copied; - struct sk_buff *skb, *frag __maybe_unused = NULL; + struct sk_buff *skb, *data_skb; int err; if (flags&MSG_OOB) @@ -1412,45 +1412,35 @@ if (skb == NULL) goto out; + data_skb = skb; + #ifdef CONFIG_COMPAT_NETLINK_MESSAGES if (unlikely(skb_shinfo(skb)->frag_list)) { - bool need_compat = !!(flags & MSG_CMSG_COMPAT); - /* - * If this skb has a frag_list, then here that means that - * we will have to use the frag_list skb for compat tasks - * and the regular skb for non-compat tasks. + * If this skb has a frag_list, then here that means that we + * will have to use the frag_list skb's data for compat tasks + * and the regular skb's data for normal (non-compat) tasks. * - * The skb might (and likely will) be cloned, so we can't - * just reset frag_list and go on with things -- we need to - * keep that. For the compat case that's easy -- simply get - * a reference to the compat skb and free the regular one - * including the frag. For the non-compat case, we need to - * avoid sending the frag to the user -- so assign NULL but - * restore it below before freeing the skb. + * If we need to send the compat skb, assign it to the + * 'data_skb' variable so that it will be used below for data + * copying. We keep 'skb' for everything else, including + * freeing both later. */ - if (need_compat) { - struct sk_buff *compskb = skb_shinfo(skb)->frag_list; - skb_get(compskb); - kfree_skb(skb); - skb = compskb; - } else { - frag = skb_shinfo(skb)->frag_list; - skb_shinfo(skb)->frag_list = NULL; - } + if (flags & MSG_CMSG_COMPAT) + data_skb = skb_shinfo(skb)->frag_list; } #endif msg->msg_namelen = 0; - copied = skb->len; + copied = data_skb->len; if (len < copied) { msg->msg_flags |= MSG_TRUNC; copied = len; } - skb_reset_transport_header(skb); - err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); + skb_reset_transport_header(data_skb); + err = skb_copy_datagram_iovec(data_skb, 0, msg->msg_iov, copied); if (msg->msg_name) { struct sockaddr_nl *addr = (struct sockaddr_nl *)msg->msg_name; @@ -1470,11 +1460,7 @@ } siocb->scm->creds = *NETLINK_CREDS(skb); if (flags & MSG_TRUNC) - copied = skb->len; - -#ifdef CONFIG_COMPAT_NETLINK_MESSAGES - skb_shinfo(skb)->frag_list = frag; -#endif + copied = data_skb->len; skb_free_datagram(sk, skb); --- linux-2.6.35.orig/net/wireless/mlme.c +++ linux-2.6.35/net/wireless/mlme.c @@ -44,10 +44,10 @@ } } - WARN_ON(!done); - - nl80211_send_rx_auth(rdev, dev, buf, len, GFP_KERNEL); - cfg80211_sme_rx_auth(dev, buf, len); + if (done) { + nl80211_send_rx_auth(rdev, dev, buf, len, GFP_KERNEL); + cfg80211_sme_rx_auth(dev, buf, len); + } wdev_unlock(wdev); } @@ -842,12 +842,18 @@ return -EINVAL; if (mgmt->u.action.category != WLAN_CATEGORY_PUBLIC) { /* Verify that we are associated with the destination AP */ + wdev_lock(wdev); + if (!wdev->current_bss || memcmp(wdev->current_bss->pub.bssid, mgmt->bssid, ETH_ALEN) != 0 || memcmp(wdev->current_bss->pub.bssid, mgmt->da, - ETH_ALEN) != 0) + ETH_ALEN) != 0) { + wdev_unlock(wdev); return -ENOTCONN; + } + wdev_unlock(wdev); + } if (memcmp(mgmt->sa, dev->dev_addr, ETH_ALEN) != 0) --- linux-2.6.35.orig/net/wireless/scan.c +++ linux-2.6.35/net/wireless/scan.c @@ -275,6 +275,7 @@ { struct cfg80211_registered_device *dev = wiphy_to_dev(wiphy); struct cfg80211_internal_bss *bss, *res = NULL; + unsigned long now = jiffies; spin_lock_bh(&dev->bss_lock); @@ -283,6 +284,10 @@ continue; if (channel && bss->pub.channel != channel) continue; + /* Don't get expired BSS structs */ + if (time_after(now, bss->ts + IEEE80211_SCAN_RESULT_EXPIRE) && + !atomic_read(&bss->hold)) + continue; if (is_bss(&bss->pub, bssid, ssid, ssid_len)) { res = bss; kref_get(&res->ref); --- linux-2.6.35.orig/net/wireless/wext-core.c +++ linux-2.6.35/net/wireless/wext-core.c @@ -782,6 +782,22 @@ } } + if (IW_IS_GET(cmd) && !(descr->flags & IW_DESCR_FLAG_NOMAX)) { + /* + * If this is a GET, but not NOMAX, it means that the extra + * data is not bounded by userspace, but by max_tokens. Thus + * set the length to max_tokens. This matches the extra data + * allocation. + * The driver should fill it with the number of tokens it + * provided, and it may check iwp->length rather than having + * knowledge of max_tokens. If the driver doesn't change the + * iwp->length, this ioctl just copies back max_token tokens + * filled with zeroes. Hopefully the driver isn't claiming + * them to be valid data. + */ + iwp->length = descr->max_tokens; + } + err = handler(dev, info, (union iwreq_data *) iwp, extra); iwp->length += essid_compat; --- linux-2.6.35.orig/net/wireless/wext-compat.c +++ linux-2.6.35/net/wireless/wext-compat.c @@ -1420,6 +1420,9 @@ { struct wireless_dev *wdev = dev->ieee80211_ptr; + data->flags = 0; + data->length = 0; + switch (wdev->iftype) { case NL80211_IFTYPE_ADHOC: return cfg80211_ibss_wext_giwessid(dev, info, data, ssid); --- linux-2.6.35.orig/net/sctp/auth.c +++ linux-2.6.35/net/sctp/auth.c @@ -543,16 +543,20 @@ id = ntohs(hmacs->hmac_ids[i]); /* Check the id is in the supported range */ - if (id > SCTP_AUTH_HMAC_ID_MAX) + if (id > SCTP_AUTH_HMAC_ID_MAX) { + id = 0; continue; + } /* See is we support the id. Supported IDs have name and * length fields set, so that we can allocated and use * them. We can safely just check for name, for without the * name, we can't allocate the TFM. */ - if (!sctp_hmac_list[id].hmac_name) + if (!sctp_hmac_list[id].hmac_name) { + id = 0; continue; + } break; } --- linux-2.6.35.orig/net/sctp/output.c +++ linux-2.6.35/net/sctp/output.c @@ -92,7 +92,6 @@ SCTP_DEBUG_PRINTK("%s: packet:%p vtag:0x%x\n", __func__, packet, vtag); - sctp_packet_reset(packet); packet->vtag = vtag; if (ecn_capable && sctp_packet_empty(packet)) { --- linux-2.6.35.orig/net/sched/sch_generic.c +++ linux-2.6.35/net/sched/sch_generic.c @@ -327,6 +327,24 @@ } EXPORT_SYMBOL(netif_carrier_off); +/** + * netif_notify_peers - notify network peers about existence of @dev + * @dev: network device + * + * Generate traffic such that interested network peers are aware of + * @dev, such as by generating a gratuitous ARP. This may be used when + * a device wants to inform the rest of the network about some sort of + * reconfiguration such as a failover event or virtual machine + * migration. + */ +void netif_notify_peers(struct net_device *dev) +{ + rtnl_lock(); + call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, dev); + rtnl_unlock(); +} +EXPORT_SYMBOL(netif_notify_peers); + /* "NOOP" scheduler: the best scheduler, recommended for all interfaces under all circumstances. It is difficult to invent anything faster or cheaper. --- linux-2.6.35.orig/net/sched/sch_sfq.c +++ linux-2.6.35/net/sched/sch_sfq.c @@ -497,11 +497,22 @@ return -1; } +static struct Qdisc *sfq_leaf(struct Qdisc *sch, unsigned long arg) +{ + return NULL; +} + static unsigned long sfq_get(struct Qdisc *sch, u32 classid) { return 0; } +static unsigned long sfq_bind(struct Qdisc *sch, unsigned long parent, + u32 classid) +{ + return 0; +} + static struct tcf_proto **sfq_find_tcf(struct Qdisc *sch, unsigned long cl) { struct sfq_sched_data *q = qdisc_priv(sch); @@ -554,8 +565,10 @@ } static const struct Qdisc_class_ops sfq_class_ops = { + .leaf = sfq_leaf, .get = sfq_get, .tcf_chain = sfq_find_tcf, + .bind_tcf = sfq_bind, .dump = sfq_dump_class, .dump_stats = sfq_dump_class_stats, .walk = sfq_walk, --- linux-2.6.35.orig/net/sched/act_nat.c +++ linux-2.6.35/net/sched/act_nat.c @@ -218,6 +218,7 @@ if (!pskb_may_pull(skb, ihl + sizeof(*icmph) + sizeof(*iph))) goto drop; + icmph = (void *)(skb_network_header(skb) + ihl); iph = (void *)(icmph + 1); if (egress) addr = iph->daddr; @@ -246,7 +247,7 @@ iph->saddr = new_addr; inet_proto_csum_replace4(&icmph->checksum, skb, addr, new_addr, - 1); + 0); break; } default: --- linux-2.6.35.orig/net/rds/page.c +++ linux-2.6.35/net/rds/page.c @@ -61,6 +61,14 @@ rds_stats_add(s_copy_to_user, bytes); else rds_stats_add(s_copy_from_user, bytes); + + if (to_user) + ret = access_ok(VERIFY_WRITE, ptr, bytes); + else + ret = access_ok(VERIFY_READ, ptr, bytes); + + if (!ret) + return -EFAULT; addr = kmap_atomic(page, KM_USER0); if (to_user) --- linux-2.6.35.orig/net/rds/recv.c +++ linux-2.6.35/net/rds/recv.c @@ -297,7 +297,7 @@ int rds_notify_queue_get(struct rds_sock *rs, struct msghdr *msghdr) { struct rds_notifier *notifier; - struct rds_rdma_notify cmsg; + struct rds_rdma_notify cmsg = { 0 }; /* fill holes with zero */ unsigned int count = 0, max_messages = ~0U; unsigned long flags; LIST_HEAD(copy); --- linux-2.6.35.orig/net/unix/af_unix.c +++ linux-2.6.35/net/unix/af_unix.c @@ -673,6 +673,7 @@ static u32 ordernum = 1; struct unix_address *addr; int err; + unsigned int retries = 0; mutex_lock(&u->readlock); @@ -698,9 +699,17 @@ if (__unix_find_socket_byname(net, addr->name, addr->len, sock->type, addr->hash)) { spin_unlock(&unix_table_lock); - /* Sanity yield. It is unusual case, but yet... */ - if (!(ordernum&0xFF)) - yield(); + /* + * __unix_find_socket_byname() may take long time if many names + * are already in use. + */ + cond_resched(); + /* Give up if all names seems to be in use. */ + if (retries++ == 0xFFFFF) { + err = -ENOSPC; + kfree(addr); + goto out; + } goto retry; } addr->hash ^= sk->sk_type; --- linux-2.6.35.orig/net/core/skbuff.c +++ linux-2.6.35/net/core/skbuff.c @@ -2574,6 +2574,10 @@ __copy_skb_header(nskb, skb); nskb->mac_len = skb->mac_len; + /* nskb and skb might have different headroom */ + if (nskb->ip_summed == CHECKSUM_PARTIAL) + nskb->csum_start += skb_headroom(nskb) - headroom; + skb_reset_mac_header(nskb); skb_set_network_header(nskb, skb->mac_len); nskb->transport_header = (nskb->network_header + @@ -2704,7 +2708,7 @@ return -E2BIG; headroom = skb_headroom(p); - nskb = netdev_alloc_skb(p->dev, headroom + skb_gro_offset(p)); + nskb = alloc_skb(headroom + skb_gro_offset(p), GFP_ATOMIC); if (unlikely(!nskb)) return -ENOMEM; --- linux-2.6.35.orig/net/core/dev.c +++ linux-2.6.35/net/core/dev.c @@ -2504,6 +2504,7 @@ struct rps_dev_flow voidflow, *rflow = &voidflow; int cpu; + preempt_disable(); rcu_read_lock(); cpu = get_rps_cpu(skb->dev, skb, &rflow); @@ -2513,6 +2514,7 @@ ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail); rcu_read_unlock(); + preempt_enable(); } #else { @@ -3064,7 +3066,7 @@ int mac_len; enum gro_result ret; - if (!(skb->dev->features & NETIF_F_GRO)) + if (!(skb->dev->features & NETIF_F_GRO) || netpoll_rx_on(skb)) goto normal; if (skb_is_gso(skb) || skb_has_frags(skb)) @@ -3133,7 +3135,7 @@ put_page(skb_shinfo(skb)->frags[0].page); memmove(skb_shinfo(skb)->frags, skb_shinfo(skb)->frags + 1, - --skb_shinfo(skb)->nr_frags); + --skb_shinfo(skb)->nr_frags * sizeof(skb_frag_t)); } } @@ -3151,9 +3153,6 @@ { struct sk_buff *p; - if (netpoll_rx_on(skb)) - return GRO_NORMAL; - for (p = napi->gro_list; p; p = p->next) { NAPI_GRO_CB(p)->same_flow = (p->dev == skb->dev) && --- linux-2.6.35.orig/net/l2tp/l2tp_eth.c +++ linux-2.6.35/net/l2tp/l2tp_eth.c @@ -132,7 +132,7 @@ printk("\n"); } - if (data_len < ETH_HLEN) + if (!pskb_may_pull(skb, sizeof(ETH_HLEN))) goto error; secpath_reset(skb); --- linux-2.6.35.orig/kernel/fork.c +++ linux-2.6.35/kernel/fork.c @@ -183,6 +183,7 @@ WARN_ON(atomic_read(&tsk->usage)); WARN_ON(tsk == current); + security_task_free(tsk); exit_creds(tsk); delayacct_tsk_free(tsk); put_signal_struct(tsk->signal); @@ -300,7 +301,7 @@ #ifdef CONFIG_MMU static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) { - struct vm_area_struct *mpnt, *tmp, **pprev; + struct vm_area_struct *mpnt, *tmp, *prev, **pprev; struct rb_node **rb_link, *rb_parent; int retval; unsigned long charge; @@ -328,6 +329,7 @@ if (retval) goto out; + prev = NULL; for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) { struct file *file; @@ -359,7 +361,7 @@ goto fail_nomem_anon_vma_fork; tmp->vm_flags &= ~VM_LOCKED; tmp->vm_mm = mm; - tmp->vm_next = NULL; + tmp->vm_next = tmp->vm_prev = NULL; file = tmp->vm_file; if (file) { struct inode *inode = file->f_path.dentry->d_inode; @@ -392,6 +394,8 @@ */ *pprev = tmp; pprev = &tmp->vm_next; + tmp->vm_prev = prev; + prev = tmp; __vma_link_rb(mm, tmp, rb_link, rb_parent); rb_link = &tmp->vm_rb.rb_right; --- linux-2.6.35.orig/kernel/groups.c +++ linux-2.6.35/kernel/groups.c @@ -143,10 +143,9 @@ right = group_info->ngroups; while (left < right) { unsigned int mid = (left+right)/2; - int cmp = grp - GROUP_AT(group_info, mid); - if (cmp > 0) + if (grp > GROUP_AT(group_info, mid)) left = mid + 1; - else if (cmp < 0) + else if (grp < GROUP_AT(group_info, mid)) right = mid; else return 1; --- linux-2.6.35.orig/kernel/params.c +++ linux-2.6.35/kernel/params.c @@ -51,22 +51,30 @@ char *val, struct kernel_param *params, unsigned num_params, - int (*handle_unknown)(char *param, char *val)) + int (*handle_arg)(char *param, char *val, int known)) { unsigned int i; /* Find parameter */ for (i = 0; i < num_params; i++) { if (parameq(param, params[i].name)) { + if (handle_arg) { + int ret; + DEBUGP("Valid argument: calling %p\n", + handle_arg); + ret = handle_arg(param, val, 1); + if (ret) + return ret; + } DEBUGP("They are equal! Calling %p\n", params[i].set); return params[i].set(val, ¶ms[i]); } } - if (handle_unknown) { - DEBUGP("Unknown argument: calling %p\n", handle_unknown); - return handle_unknown(param, val); + if (handle_arg) { + DEBUGP("Unknown argument: calling %p\n", handle_arg); + return handle_arg(param, val, 0); } DEBUGP("Unknown argument `%s'\n", param); @@ -130,7 +138,7 @@ char *args, struct kernel_param *params, unsigned num, - int (*unknown)(char *param, char *val)) + int (*handle_arg)(char *param, char *val, int arg)) { char *param, *val; @@ -145,7 +153,7 @@ args = next_arg(args, ¶m, &val); irq_was_disabled = irqs_disabled(); - ret = parse_one(param, val, params, num, unknown); + ret = parse_one(param, val, params, num, handle_arg); if (irq_was_disabled && !irqs_disabled()) { printk(KERN_WARNING "parse_args(): option '%s' enabled " "irq's!\n", param); --- linux-2.6.35.orig/kernel/compat.c +++ linux-2.6.35/kernel/compat.c @@ -1137,3 +1137,24 @@ return 0; } + +/* + * Allocate user-space memory for the duration of a single system call, + * in order to marshall parameters inside a compat thunk. + */ +void __user *compat_alloc_user_space(unsigned long len) +{ + void __user *ptr; + + /* If len would occupy more than half of the entire compat space... */ + if (unlikely(len > (((compat_uptr_t)~0) >> 1))) + return NULL; + + ptr = arch_compat_alloc_user_space(len); + + if (unlikely(!access_ok(VERIFY_WRITE, ptr, len))) + return NULL; + + return ptr; +} +EXPORT_SYMBOL_GPL(compat_alloc_user_space); --- linux-2.6.35.orig/kernel/sched.c +++ linux-2.6.35/kernel/sched.c @@ -1232,16 +1232,6 @@ smp_send_reschedule(cpu); } -int nohz_ratelimit(int cpu) -{ - struct rq *rq = cpu_rq(cpu); - u64 diff = rq->clock - rq->nohz_stamp; - - rq->nohz_stamp = rq->clock; - - return diff < (NSEC_PER_SEC / HZ) >> 1; -} - #endif /* CONFIG_NO_HZ */ static u64 sched_avg_period(void) @@ -3359,9 +3349,9 @@ rtime = nsecs_to_cputime(p->se.sum_exec_runtime); if (total) { - u64 temp; + u64 temp = rtime; - temp = (u64)(rtime * utime); + temp *= utime; do_div(temp, total); utime = (cputime_t)temp; } else @@ -3392,9 +3382,9 @@ rtime = nsecs_to_cputime(cputime.sum_exec_runtime); if (total) { - u64 temp; + u64 temp = rtime; - temp = (u64)(rtime * cputime.utime); + temp *= cputime.utime; do_div(temp, total); utime = (cputime_t)temp; } else @@ -3704,8 +3694,16 @@ /* * Owner changed, break to re-assess state. */ - if (lock->owner != owner) + if (lock->owner != owner) { + /* + * If the lock has switched to a different owner, + * we likely have heavy contention. Return 0 to quit + * optimistic spinning and not contend further: + */ + if (lock->owner) + return 0; break; + } /* * Is that owner really running on that cpu? --- linux-2.6.35.orig/kernel/hw_breakpoint.c +++ linux-2.6.35/kernel/hw_breakpoint.c @@ -417,7 +417,8 @@ perf_overflow_handler_t triggered, struct task_struct *tsk) { - return perf_event_create_kernel_counter(attr, -1, tsk->pid, triggered); + return perf_event_create_kernel_counter(attr, -1, task_pid_vnr(tsk), + triggered); } EXPORT_SYMBOL_GPL(register_user_hw_breakpoint); --- linux-2.6.35.orig/kernel/timer.c +++ linux-2.6.35/kernel/timer.c @@ -577,6 +577,19 @@ lockdep_init_map(&timer->lockdep_map, name, key, 0); } +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->function = function; + timer->data = data; + init_timer_on_stack_key(timer, name, key); + timer_set_deferrable(timer); +} +EXPORT_SYMBOL_GPL(setup_deferrable_timer_on_stack_key); + /** * init_timer_key - initialize a timer * @timer: the timer to be initialized --- linux-2.6.35.orig/kernel/exit.c +++ linux-2.6.35/kernel/exit.c @@ -1383,8 +1383,7 @@ if (!unlikely(wo->wo_flags & WNOWAIT)) *p_code = 0; - /* don't need the RCU readlock here as we're holding a spinlock */ - uid = __task_cred(p)->uid; + uid = task_uid(p); unlock_sig: spin_unlock_irq(&p->sighand->siglock); if (!exit_code) @@ -1457,7 +1456,7 @@ } if (!unlikely(wo->wo_flags & WNOWAIT)) p->signal->flags &= ~SIGNAL_STOP_CONTINUED; - uid = __task_cred(p)->uid; + uid = task_uid(p); spin_unlock_irq(&p->sighand->siglock); pid = task_pid_vnr(p); --- linux-2.6.35.orig/kernel/signal.c +++ linux-2.6.35/kernel/signal.c @@ -637,7 +637,7 @@ /* * Bad permissions for sending the signal - * - the caller must hold at least the RCU read lock + * - the caller must hold the RCU read lock */ static int check_kill_permission(int sig, struct siginfo *info, struct task_struct *t) @@ -1127,11 +1127,14 @@ /* * send signal info to all the members of a group - * - the caller must hold the RCU read lock at least */ int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p) { - int ret = check_kill_permission(sig, info, p); + int ret; + + rcu_read_lock(); + ret = check_kill_permission(sig, info, p); + rcu_read_unlock(); if (!ret && sig) ret = do_send_sig_info(sig, info, p, true); --- linux-2.6.35.orig/kernel/sys.c +++ linux-2.6.35/kernel/sys.c @@ -931,6 +931,7 @@ pgid = pid; if (pgid < 0) return -EINVAL; + rcu_read_lock(); /* From this point forward we keep holding onto the tasklist lock * so that our parent does not change from under us. -DaveM @@ -984,6 +985,7 @@ out: /* All paths lead to here, thus we are safe. -DaveM */ write_unlock_irq(&tasklist_lock); + rcu_read_unlock(); return err; } --- linux-2.6.35.orig/kernel/sysctl.c +++ linux-2.6.35/kernel/sysctl.c @@ -101,6 +101,24 @@ #ifndef CONFIG_MMU extern int sysctl_nr_trim_pages; #endif + +#ifdef CONFIG_X86_32 +int exec_shield = (1<<0); +/* exec_shield is a bitmask: + * 0: off; vdso at STACK_TOP, 1 page below TASK_SIZE + * (1<<0) 1: on [also on if !=0] + * (1<<1) 2: force noexecstack regardless of PT_GNU_STACK + */ + +static int __init setup_exec_shield(char *str) +{ + get_option(&str, &exec_shield); + + return 1; +} +__setup("exec-shield=", setup_exec_shield); +#endif + #ifdef CONFIG_BLOCK extern int blk_iopoll_enabled; #endif @@ -428,6 +446,16 @@ .mode = 0644, .proc_handler = proc_dointvec, }, +#ifdef CONFIG_X86_32 + { + .procname = "exec-shield", + .data = &exec_shield, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, + }, +#endif + #ifdef CONFIG_PROC_SYSCTL { .procname = "tainted", --- linux-2.6.35.orig/kernel/power/snapshot.c +++ linux-2.6.35/kernel/power/snapshot.c @@ -1121,9 +1121,19 @@ return nr_alloc; } -static unsigned long preallocate_image_memory(unsigned long nr_pages) +static unsigned long preallocate_image_memory(unsigned long nr_pages, + unsigned long avail_normal) { - return preallocate_image_pages(nr_pages, GFP_IMAGE); + unsigned long alloc; + + if (avail_normal <= alloc_normal) + return 0; + + alloc = avail_normal - alloc_normal; + if (nr_pages < alloc) + alloc = nr_pages; + + return preallocate_image_pages(alloc, GFP_IMAGE); } #ifdef CONFIG_HIGHMEM @@ -1169,15 +1179,22 @@ */ static void free_unnecessary_pages(void) { - unsigned long save_highmem, to_free_normal, to_free_highmem; + unsigned long save, to_free_normal, to_free_highmem; - to_free_normal = alloc_normal - count_data_pages(); - save_highmem = count_highmem_pages(); - if (alloc_highmem > save_highmem) { - to_free_highmem = alloc_highmem - save_highmem; + save = count_data_pages(); + if (alloc_normal >= save) { + to_free_normal = alloc_normal - save; + save = 0; + } else { + to_free_normal = 0; + save -= alloc_normal; + } + save += count_highmem_pages(); + if (alloc_highmem >= save) { + to_free_highmem = alloc_highmem - save; } else { to_free_highmem = 0; - to_free_normal -= save_highmem - alloc_highmem; + to_free_normal -= save - alloc_highmem; } memory_bm_position_reset(©_bm); @@ -1258,7 +1275,7 @@ { struct zone *zone; unsigned long saveable, size, max_size, count, highmem, pages = 0; - unsigned long alloc, save_highmem, pages_highmem; + unsigned long alloc, save_highmem, pages_highmem, avail_normal; struct timeval start, stop; int error; @@ -1295,6 +1312,7 @@ else count += zone_page_state(zone, NR_FREE_PAGES); } + avail_normal = count; count += highmem; count -= totalreserve_pages; @@ -1309,12 +1327,21 @@ */ if (size >= saveable) { pages = preallocate_image_highmem(save_highmem); - pages += preallocate_image_memory(saveable - pages); + pages += preallocate_image_memory(saveable - pages, avail_normal); goto out; } /* Estimate the minimum size of the image. */ pages = minimum_image_size(saveable); + /* + * To avoid excessive pressure on the normal zone, leave room in it to + * accommodate an image of the minimum size (unless it's already too + * small, in which case don't preallocate pages from it at all). + */ + if (avail_normal > pages) + avail_normal -= pages; + else + avail_normal = 0; if (size < pages) size = min_t(unsigned long, pages, max_size); @@ -1335,16 +1362,34 @@ */ pages_highmem = preallocate_image_highmem(highmem / 2); alloc = (count - max_size) - pages_highmem; - pages = preallocate_image_memory(alloc); - if (pages < alloc) - goto err_out; - size = max_size - size; - alloc = size; - size = preallocate_highmem_fraction(size, highmem, count); - pages_highmem += size; - alloc -= size; - pages += preallocate_image_memory(alloc); - pages += pages_highmem; + pages = preallocate_image_memory(alloc, avail_normal); + if (pages < alloc) { + /* We have exhausted non-highmem pages, try highmem. */ + alloc -= pages; + pages += pages_highmem; + pages_highmem = preallocate_image_highmem(alloc); + if (pages_highmem < alloc) + goto err_out; + pages += pages_highmem; + /* + * size is the desired number of saveable pages to leave in + * memory, so try to preallocate (all memory - size) pages. + */ + alloc = (count - pages) - size; + pages += preallocate_image_highmem(alloc); + } else { + /* + * There are approximately max_size saveable pages at this point + * and we want to reduce this number down to size. + */ + alloc = max_size - size; + size = preallocate_highmem_fraction(alloc, highmem, count); + pages_highmem += size; + alloc -= size; + size = preallocate_image_memory(alloc, avail_normal); + pages_highmem += preallocate_image_highmem(alloc - size); + pages += pages_highmem + size; + } /* * We only need as many page frames for the image as there are saveable --- linux-2.6.35.orig/kernel/trace/ring_buffer.c +++ linux-2.6.35/kernel/trace/ring_buffer.c @@ -3868,6 +3868,9 @@ rpos = reader->read; pos += size; + if (rpos >= commit) + break; + event = rb_reader_event(cpu_buffer); size = rb_event_length(event); } while (len > size); --- linux-2.6.35.orig/kernel/trace/ftrace.c +++ linux-2.6.35/kernel/trace/ftrace.c @@ -381,12 +381,19 @@ { struct ftrace_profile *rec = v; char str[KSYM_SYMBOL_LEN]; + int ret = 0; #ifdef CONFIG_FUNCTION_GRAPH_TRACER - static DEFINE_MUTEX(mutex); static struct trace_seq s; unsigned long long avg; unsigned long long stddev; #endif + mutex_lock(&ftrace_profile_lock); + + /* we raced with function_profile_reset() */ + if (unlikely(rec->counter == 0)) { + ret = -EBUSY; + goto out; + } kallsyms_lookup(rec->ip, NULL, NULL, NULL, str); seq_printf(m, " %-30.30s %10lu", str, rec->counter); @@ -408,7 +415,6 @@ do_div(stddev, (rec->counter - 1) * 1000); } - mutex_lock(&mutex); trace_seq_init(&s); trace_print_graph_duration(rec->time, &s); trace_seq_puts(&s, " "); @@ -416,11 +422,12 @@ trace_seq_puts(&s, " "); trace_print_graph_duration(stddev, &s); trace_print_seq(m, &s); - mutex_unlock(&mutex); #endif seq_putc(m, '\n'); +out: + mutex_unlock(&ftrace_profile_lock); - return 0; + return ret; } static void ftrace_profile_reset(struct ftrace_profile_stat *stat) @@ -1503,6 +1510,8 @@ if (*pos > 0) return t_hash_start(m, pos); iter->flags |= FTRACE_ITER_PRINTALL; + /* reset in case of seek/pread */ + iter->flags &= ~FTRACE_ITER_HASH; return iter; } @@ -2410,7 +2419,7 @@ .open = ftrace_filter_open, .read = seq_read, .write = ftrace_filter_write, - .llseek = ftrace_regex_lseek, + .llseek = no_llseek, .release = ftrace_filter_release, }; --- linux-2.6.35.orig/kernel/trace/trace_functions_graph.c +++ linux-2.6.35/kernel/trace/trace_functions_graph.c @@ -507,7 +507,15 @@ * if the output fails. */ data->ent = *curr; - data->ret = *next; + /* + * If the next event is not a return type, then + * we only care about what type it is. Otherwise we can + * safely copy the entire event. + */ + if (next->ent.type == TRACE_GRAPH_RET) + data->ret = *next; + else + data->ret.ent.type = next->ent.type; } } --- linux-2.6.35.orig/kernel/gcov/fs.c +++ linux-2.6.35/kernel/gcov/fs.c @@ -33,10 +33,11 @@ * @children: child nodes * @all: list head for list of all nodes * @parent: parent node - * @info: associated profiling data structure if not a directory - * @ghost: when an object file containing profiling data is unloaded we keep a - * copy of the profiling data here to allow collecting coverage data - * for cleanup code. Such a node is called a "ghost". + * @loaded_info: array of pointers to profiling data sets for loaded object + * files. + * @num_loaded: number of profiling data sets for loaded object files. + * @unloaded_info: accumulated copy of profiling data sets for unloaded + * object files. Used only when gcov_persist=1. * @dentry: main debugfs entry, either a directory or data file * @links: associated symbolic links * @name: data file basename @@ -51,10 +52,11 @@ struct list_head children; struct list_head all; struct gcov_node *parent; - struct gcov_info *info; - struct gcov_info *ghost; + struct gcov_info **loaded_info; + struct gcov_info *unloaded_info; struct dentry *dentry; struct dentry **links; + int num_loaded; char name[0]; }; @@ -136,16 +138,37 @@ }; /* - * Return the profiling data set for a given node. This can either be the - * original profiling data structure or a duplicate (also called "ghost") - * in case the associated object file has been unloaded. + * Return a profiling data set associated with the given node. This is + * either a data set for a loaded object file or a data set copy in case + * all associated object files have been unloaded. */ static struct gcov_info *get_node_info(struct gcov_node *node) { - if (node->info) - return node->info; + if (node->num_loaded > 0) + return node->loaded_info[0]; - return node->ghost; + return node->unloaded_info; +} + +/* + * Return a newly allocated profiling data set which contains the sum of + * all profiling data associated with the given node. + */ +static struct gcov_info *get_accumulated_info(struct gcov_node *node) +{ + struct gcov_info *info; + int i = 0; + + if (node->unloaded_info) + info = gcov_info_dup(node->unloaded_info); + else + info = gcov_info_dup(node->loaded_info[i++]); + if (!info) + return NULL; + for (; i < node->num_loaded; i++) + gcov_info_add(info, node->loaded_info[i]); + + return info; } /* @@ -163,9 +186,10 @@ mutex_lock(&node_lock); /* * Read from a profiling data copy to minimize reference tracking - * complexity and concurrent access. + * complexity and concurrent access and to keep accumulating multiple + * profiling data sets associated with one node simple. */ - info = gcov_info_dup(get_node_info(node)); + info = get_accumulated_info(node); if (!info) goto out_unlock; iter = gcov_iter_new(info); @@ -225,12 +249,25 @@ return NULL; } +/* + * Reset all profiling data associated with the specified node. + */ +static void reset_node(struct gcov_node *node) +{ + int i; + + if (node->unloaded_info) + gcov_info_reset(node->unloaded_info); + for (i = 0; i < node->num_loaded; i++) + gcov_info_reset(node->loaded_info[i]); +} + static void remove_node(struct gcov_node *node); /* * write() implementation for gcov data files. Reset profiling data for the - * associated file. If the object file has been unloaded (i.e. this is - * a "ghost" node), remove the debug fs node as well. + * corresponding file. If all associated object files have been unloaded, + * remove the debug fs node as well. */ static ssize_t gcov_seq_write(struct file *file, const char __user *addr, size_t len, loff_t *pos) @@ -245,10 +282,10 @@ node = get_node_by_name(info->filename); if (node) { /* Reset counts or remove node for unloaded modules. */ - if (node->ghost) + if (node->num_loaded == 0) remove_node(node); else - gcov_info_reset(node->info); + reset_node(node); } /* Reset counts for open file. */ gcov_info_reset(info); @@ -378,7 +415,10 @@ INIT_LIST_HEAD(&node->list); INIT_LIST_HEAD(&node->children); INIT_LIST_HEAD(&node->all); - node->info = info; + if (node->loaded_info) { + node->loaded_info[0] = info; + node->num_loaded = 1; + } node->parent = parent; if (name) strcpy(node->name, name); @@ -394,9 +434,13 @@ struct gcov_node *node; node = kzalloc(sizeof(struct gcov_node) + strlen(name) + 1, GFP_KERNEL); - if (!node) { - pr_warning("out of memory\n"); - return NULL; + if (!node) + goto err_nomem; + if (info) { + node->loaded_info = kcalloc(1, sizeof(struct gcov_info *), + GFP_KERNEL); + if (!node->loaded_info) + goto err_nomem; } init_node(node, info, name, parent); /* Differentiate between gcov data file nodes and directory nodes. */ @@ -416,6 +460,11 @@ list_add(&node->all, &all_head); return node; + +err_nomem: + kfree(node); + pr_warning("out of memory\n"); + return NULL; } /* Remove symbolic links associated with node. */ @@ -441,8 +490,9 @@ list_del(&node->all); debugfs_remove(node->dentry); remove_links(node); - if (node->ghost) - gcov_info_free(node->ghost); + kfree(node->loaded_info); + if (node->unloaded_info) + gcov_info_free(node->unloaded_info); kfree(node); } @@ -477,7 +527,7 @@ /* * write() implementation for reset file. Reset all profiling data to zero - * and remove ghost nodes. + * and remove nodes for which all associated object files are unloaded. */ static ssize_t reset_write(struct file *file, const char __user *addr, size_t len, loff_t *pos) @@ -487,8 +537,8 @@ mutex_lock(&node_lock); restart: list_for_each_entry(node, &all_head, all) { - if (node->info) - gcov_info_reset(node->info); + if (node->num_loaded > 0) + reset_node(node); else if (list_empty(&node->children)) { remove_node(node); /* Several nodes may have gone - restart loop. */ @@ -564,37 +614,115 @@ } /* - * The profiling data set associated with this node is being unloaded. Store a - * copy of the profiling data and turn this node into a "ghost". + * Associate a profiling data set with an existing node. Needs to be called + * with node_lock held. */ -static int ghost_node(struct gcov_node *node) +static void add_info(struct gcov_node *node, struct gcov_info *info) { - node->ghost = gcov_info_dup(node->info); - if (!node->ghost) { - pr_warning("could not save data for '%s' (out of memory)\n", - node->info->filename); - return -ENOMEM; + struct gcov_info **loaded_info; + int num = node->num_loaded; + + /* + * Prepare new array. This is done first to simplify cleanup in + * case the new data set is incompatible, the node only contains + * unloaded data sets and there's not enough memory for the array. + */ + loaded_info = kcalloc(num + 1, sizeof(struct gcov_info *), GFP_KERNEL); + if (!loaded_info) { + pr_warning("could not add '%s' (out of memory)\n", + info->filename); + return; + } + memcpy(loaded_info, node->loaded_info, + num * sizeof(struct gcov_info *)); + loaded_info[num] = info; + /* Check if the new data set is compatible. */ + if (num == 0) { + /* + * A module was unloaded, modified and reloaded. The new + * data set replaces the copy of the last one. + */ + if (!gcov_info_is_compatible(node->unloaded_info, info)) { + pr_warning("discarding saved data for %s " + "(incompatible version)\n", info->filename); + gcov_info_free(node->unloaded_info); + node->unloaded_info = NULL; + } + } else { + /* + * Two different versions of the same object file are loaded. + * The initial one takes precedence. + */ + if (!gcov_info_is_compatible(node->loaded_info[0], info)) { + pr_warning("could not add '%s' (incompatible " + "version)\n", info->filename); + kfree(loaded_info); + return; + } } - node->info = NULL; + /* Overwrite previous array. */ + kfree(node->loaded_info); + node->loaded_info = loaded_info; + node->num_loaded = num + 1; +} - return 0; +/* + * Return the index of a profiling data set associated with a node. + */ +static int get_info_index(struct gcov_node *node, struct gcov_info *info) +{ + int i; + + for (i = 0; i < node->num_loaded; i++) { + if (node->loaded_info[i] == info) + return i; + } + return -ENOENT; } /* - * Profiling data for this node has been loaded again. Add profiling data - * from previous instantiation and turn this node into a regular node. + * Save the data of a profiling data set which is being unloaded. */ -static void revive_node(struct gcov_node *node, struct gcov_info *info) +static void save_info(struct gcov_node *node, struct gcov_info *info) { - if (gcov_info_is_compatible(node->ghost, info)) - gcov_info_add(info, node->ghost); + if (node->unloaded_info) + gcov_info_add(node->unloaded_info, info); else { - pr_warning("discarding saved data for '%s' (version changed)\n", + node->unloaded_info = gcov_info_dup(info); + if (!node->unloaded_info) { + pr_warning("could not save data for '%s' " + "(out of memory)\n", info->filename); + } + } +} + +/* + * Disassociate a profiling data set from a node. Needs to be called with + * node_lock held. + */ +static void remove_info(struct gcov_node *node, struct gcov_info *info) +{ + int i; + + i = get_info_index(node, info); + if (i < 0) { + pr_warning("could not remove '%s' (not found)\n", info->filename); + return; } - gcov_info_free(node->ghost); - node->ghost = NULL; - node->info = info; + if (gcov_persist) + save_info(node, info); + /* Shrink array. */ + node->loaded_info[i] = node->loaded_info[node->num_loaded - 1]; + node->num_loaded--; + if (node->num_loaded > 0) + return; + /* Last loaded data set was removed. */ + kfree(node->loaded_info); + node->loaded_info = NULL; + node->num_loaded = 0; + if (!node->unloaded_info) + remove_node(node); } /* @@ -609,30 +737,18 @@ node = get_node_by_name(info->filename); switch (action) { case GCOV_ADD: - /* Add new node or revive ghost. */ - if (!node) { + if (node) + add_info(node, info); + else add_node(info); - break; - } - if (gcov_persist) - revive_node(node, info); - else { - pr_warning("could not add '%s' (already exists)\n", - info->filename); - } break; case GCOV_REMOVE: - /* Remove node or turn into ghost. */ - if (!node) { + if (node) + remove_info(node, info); + else { pr_warning("could not remove '%s' (not found)\n", info->filename); - break; } - if (gcov_persist) { - if (!ghost_node(node)) - break; - } - remove_node(node); break; } mutex_unlock(&node_lock); --- linux-2.6.35.orig/kernel/time/timekeeping.c +++ linux-2.6.35/kernel/time/timekeeping.c @@ -736,6 +736,7 @@ static cycle_t logarithmic_accumulation(cycle_t offset, int shift) { u64 nsecps = (u64)NSEC_PER_SEC << timekeeper.shift; + u64 raw_nsecs; /* If the offset is smaller then a shifted interval, do nothing */ if (offset < timekeeper.cycle_interval<= NSEC_PER_SEC) { - raw_time.tv_nsec -= NSEC_PER_SEC; - raw_time.tv_sec++; + /* Accumulate raw time */ + raw_nsecs = timekeeper.raw_interval << shift; + raw_nsecs += raw_time.tv_nsec; + if (raw_nsecs >= NSEC_PER_SEC) { + u64 raw_secs = raw_nsecs; + raw_nsecs = do_div(raw_secs, NSEC_PER_SEC); + raw_time.tv_sec += raw_secs; } + raw_time.tv_nsec = raw_nsecs; /* Accumulate error between NTP and clock interval */ timekeeper.ntp_error += tick_length << shift; --- linux-2.6.35.orig/kernel/time/tick-sched.c +++ linux-2.6.35/kernel/time/tick-sched.c @@ -325,7 +325,7 @@ } while (read_seqretry(&xtime_lock, seq)); if (rcu_needs_cpu(cpu) || printk_needs_cpu(cpu) || - arch_needs_cpu(cpu) || nohz_ratelimit(cpu)) { + arch_needs_cpu(cpu)) { next_jiffies = last_jiffies + 1; delta_jiffies = 1; } else { --- linux-2.6.35.orig/kernel/irq/manage.c +++ linux-2.6.35/kernel/irq/manage.c @@ -216,7 +216,7 @@ void __disable_irq(struct irq_desc *desc, unsigned int irq, bool suspend) { if (suspend) { - if (!desc->action || (desc->action->flags & IRQF_TIMER)) + if (!desc->action || (desc->action->flags & IRQF_NO_SUSPEND)) return; desc->status |= IRQ_SUSPENDED; } --- linux-2.6.35.orig/firmware/Makefile +++ linux-2.6.35/firmware/Makefile @@ -142,7 +142,7 @@ fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) # Directories which we _might_ need to create, so we have a rule for them. -firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(fw-external-y) $(fw-shipped-all)))) +firmware-dirs := $(sort $(addprefix $(objtree)/$(obj)/,$(dir $(fw-external-y) $(fw-shipped-all)))) quiet_cmd_mkdir = MKDIR $(patsubst $(objtree)/%,%,$@) cmd_mkdir = mkdir -p $@ --- linux-2.6.35.orig/Documentation/kernel-parameters.txt +++ linux-2.6.35/Documentation/kernel-parameters.txt @@ -93,6 +93,7 @@ Documentation/scsi/. SECURITY Different security models are enabled. SELINUX SELinux support is enabled. + APPARMOR AppArmor support is enabled. SERIAL Serial support is enabled. SH SuperH architecture is enabled. SMP The kernel is an SMP kernel. @@ -2312,6 +2313,13 @@ If enabled at boot time, /selinux/disable can be used later to disable prior to initial policy load. + apparmor= [APPARMOR] Disable or enable AppArmor at boot time + Format: { "0" | "1" } + See security/apparmor/Kconfig help text + 0 -- disable. + 1 -- enable. + Default value is set via kernel config option. + serialnumber [BUGS=X86-32] shapers= [NET] --- linux-2.6.35.orig/Documentation/Yama.txt +++ linux-2.6.35/Documentation/Yama.txt @@ -0,0 +1,91 @@ +Yama is a Linux Security Module that collects a number of security +protections that are not handled by the core kernel itself. To select +it at boot time, specify "security=yama" (though this will disable any +other LSM). + +Yama is controlled through sysctl in /proc/sys/kernel/yama: + +- protected_sticky_symlinks +- protected_nonaccess_hardlinks +- ptrace_scope + +============================================================== + +protected_sticky_symlinks: + +A long-standing class of security issues is the symlink-based +time-of-check-time-of-use race, most commonly seen in world-writable +directories like /tmp. The common method of exploitation of this flaw +is to cross privilege boundaries when following a given symlink (i.e. a +root process follows a symlink belonging to another user). For a likely +incomplete list of hundreds of examples across the years, please see: +http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=/tmp + +When set to "0", symlink following behavior is unrestricted. + +When set to "1" symlinks are permitted to be followed only when outside +a sticky world-writable directory, or when the uid of the symlink and +follower match, or when the directory owner matches the symlink's owner. + +This protection is based on the restrictions in Openwall and grsecurity. + +============================================================== + +protected_nonaccess_hardlinks: + +Hardlinks can be abused in a similar fashion to symlinks in sticky +world-writable directories, but their weakness is not limited to +just that scenario. For example, if /etc and /home are on the same +partition, a regular user can create a hardlink to /etc/shadow in their +home directory. While it retains the original owner and permissions, +it is possible for privileged programs that are otherwise symlink-safe +to mistakenly access the file through its hardlink. Additionally, a very +minor untraceable quota-bypassing local denial of service is possible by +an attacker exhausting disk space by filling a world-writable directory +with hardlinks. + +When set to "0", hardlink creation behavior is unrestricted. + +When set to "1", hardlinks cannot be created to files that a given user +would be unable to read and write originally, or are otherwise sensitive. + +This protection is based on the restrictions in Openwall and grsecurity. + +============================================================== + +ptrace_scope: + +As Linux grows in popularity, it will become a larger target for +malware. One particularly troubling weakness of the Linux process +interfaces is that a single user is able to examine the memory and +running state of any of their processes. For example, if one application +(e.g. Pidgin) was compromised, it would be possible for an attacker to +attach to other running processes (e.g. Firefox, SSH sessions, GPG agent, +etc) to extract additional credentials and continue to expand the scope +of their attack without resorting to user-assisted phishing. + +This is not a theoretical problem. SSH session hijacking +(http://www.storm.net.nz/projects/7) and arbitrary code injection +(http://c-skills.blogspot.com/2007/05/injectso.html) attacks already +exist and remain possible if PTRACE is allowed to operate as before. +PTRACE is not commonly used by non-developers and non-admins, so system +builders should be allowed the option to disable this debugging system. + +For a solution, some applications use prctl(PR_SET_DUMPABLE, ...) to +specifically disallow such PTRACE attachment (e.g. ssh-agent), but many +do not. A more general solution is to only allow PTRACE directly from a +parent to a child process (i.e. direct "gdb EXE" and "strace EXE" still +work), or with CAP_SYS_PTRACE (i.e. "gdb --pid=PID", and "strace -p PID" +still work as root). + +0 - classic PTRACE permissions: a process can PTRACE any other process + running under the same uid, as long as it is dumpable (i.e. did not + transition uids, start privileged, or have prctl(PR_SET_DUMPABLE...) + called). + +1 - child-only PTRACE: a process can PTRACE only its descendants when + the above classic criteria is also met. + +This protection is based on the restrictions in grsecurity. + +============================================================== --- linux-2.6.35.orig/Documentation/apparmor.txt +++ linux-2.6.35/Documentation/apparmor.txt @@ -0,0 +1,40 @@ +--- What is AppArmor? --- + +AppArmor is MAC style security extension for the Linux kernel. It implements +a task centered policy, with task "profiles" being created and loaded +from user space. Tasks on the system that do not have a profile defined for +them run in an unconfined state which is equivalent to standard Linux DAC +permissions. + +--- How to enable/disable --- + +set CONFIG_SECURITY_APPARMOR=y + +If AppArmor should be selected as the default security module then + set CONFIG_DEFAULT_SECURITY="apparmor" + and CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 + +Build the kernel + +If AppArmor is not the default security module it can be enabled by passing +security=apparmor on the kernel's command line. + +If AppArmor is the default security module it can be disabled by passing +apparmor=0, security=XXXX (where XXX is valid security module), on the +kernel's command line + +For AppArmor to enforce any restrictions beyond standard Linux DAC permissions +policy must be loaded into the kernel from user space (see the Documentation +and tools links). + +--- Documentation --- + +Documentation can be found on the wiki. + +--- Links --- + +Mailing List - apparmor@lists.ubuntu.com +Wiki - http://apparmor.wiki.kernel.org/ +User space tools - https://launchpad.net/apparmor +Kernel module - git://git.kernel.org/pub/scm/linux/kernel/git/jj/apparmor-dev.git + --- linux-2.6.35.orig/Documentation/hwmon/pkgtemp +++ linux-2.6.35/Documentation/hwmon/pkgtemp @@ -0,0 +1,36 @@ +Kernel driver pkgtemp +====================== + +Supported chips: + * Intel family + Prefix: 'pkgtemp' + CPUID: + Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual + Volume 3A: System Programming Guide + +Author: Fenghua Yu + +Description +----------- + +This driver permits reading package level temperature sensor embedded inside +Intel CPU package. The sensors can be in core, uncore, memory controller, or +other components in a package. The feature is first implemented in Intel Sandy +Bridge platform. + +Temperature is measured in degrees Celsius and measurement resolution is +1 degree C. Valid temperatures are from 0 to TjMax degrees C, because the actual +value of temperature register is in fact a delta from TjMax. + +Temperature known as TjMax is the maximum junction temperature of package. +We get this from MSR_IA32_TEMPERATURE_TARGET. If the MSR is not accessible, +we define TjMax as 100 degrees Celsius. At this temperature, protection +mechanism will perform actions to forcibly cool down the package. Alarm +may be raised, if the temperature grows enough (more than TjMax) to trigger +the Out-Of-Spec bit. Following table summarizes the exported sysfs files: + +temp1_input - Package temperature (in millidegrees Celsius). +temp1_max - All cooling devices should be turned on. +temp1_crit - Maximum junction temperature (in millidegrees Celsius). +temp1_crit_alarm - Set when Out-of-spec bit is set, never clears. + Correct CPU operation is no longer guaranteed. --- linux-2.6.35.orig/Documentation/networking/README.ipw2200 +++ linux-2.6.35/Documentation/networking/README.ipw2200 @@ -171,7 +171,7 @@ led Can be used to turn on experimental LED code. - 0 = Off, 1 = On. Default is 0. + 0 = Off, 1 = On. Default is 1. mode Can be used to set the default mode of the adapter. --- linux-2.6.35.orig/Documentation/video4linux/CARDLIST.cx23885 +++ linux-2.6.35/Documentation/video4linux/CARDLIST.cx23885 @@ -17,9 +17,9 @@ 16 -> DVBWorld DVB-S2 2005 [0001:2005] 17 -> NetUP Dual DVB-S2 CI [1b55:2a2c] 18 -> Hauppauge WinTV-HVR1270 [0070:2211] - 19 -> Hauppauge WinTV-HVR1275 [0070:2215] - 20 -> Hauppauge WinTV-HVR1255 [0070:2251] - 21 -> Hauppauge WinTV-HVR1210 [0070:2291,0070:2295] + 19 -> Hauppauge WinTV-HVR1275 [0070:2215,0070:221d,0070:22f2] + 20 -> Hauppauge WinTV-HVR1255 [0070:2251,0070:2259,0070:22f1] + 21 -> Hauppauge WinTV-HVR1210 [0070:2291,0070:2295,0070:2299,0070:229d,0070:22f0,0070:22f3,0070:22f4,0070:22f5] 22 -> Mygica X8506 DMB-TH [14f1:8651] 23 -> Magic-Pro ProHDTV Extreme 2 [14f1:8657] 24 -> Hauppauge WinTV-HVR1850 [0070:8541] --- linux-2.6.35.orig/Documentation/dvb/get_dvb_firmware +++ linux-2.6.35/Documentation/dvb/get_dvb_firmware @@ -26,7 +26,7 @@ "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004", "or51211", "or51132_qam", "or51132_vsb", "bluebird", "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718", - "af9015", "ngene"); + "af9015", "ngene", "az6027"); # Check args syntax() if (scalar(@ARGV) != 1); @@ -567,6 +567,23 @@ "$file1, $file2"; } +sub az6027{ + my $file = "AZ6027_Linux_Driver.tar.gz"; + my $url = "http://linux.terratec.de/files/$file"; + my $firmware = "dvb-usb-az6027-03.fw"; + + wgetfile($file, $url); + + #untar + if( system("tar xzvf $file $firmware")){ + die "failed to untar firmware"; + } + if( system("rm $file")){ + die ("unable to remove unnecessary files"); + } + + $firmware; +} # --------------------------------------------------------------- # Utilities --- linux-2.6.35.orig/Documentation/sound/alsa/HD-Audio-Models.txt +++ linux-2.6.35/Documentation/sound/alsa/HD-Audio-Models.txt @@ -282,12 +282,14 @@ hp HP Spartan laptop hp-dv6736 HP dv6736 hp-f700 HP Compaq Presario F700 + ideapad Lenovo IdeaPad laptop lenovo-x200 Lenovo X200 laptop toshiba Toshiba Satellite M300 Conexant 5066 ============= laptop Basic Laptop config (default) + hp-laptop HP laptops, e g G60 dell-laptop Dell laptops olpc-xo-1_5 OLPC XO 1.5 ideapad Lenovo IdeaPad U150 --- linux-2.6.35.orig/Documentation/DocBook/media.tmpl +++ linux-2.6.35/Documentation/DocBook/media.tmpl @@ -28,7 +28,7 @@ LINUX MEDIA INFRASTRUCTURE API - 2009 + 2009-2010 LinuxTV Developers @@ -61,7 +61,7 @@ in fact it covers several different video standards including DVB-T, DVB-S, DVB-C and ATSC. The API is currently being updated to documment support also for DVB-S2, ISDB-T and ISDB-S. - The third part covers other API's used by all media infrastructure devices + The third part covers Remote Controller API For additional information and for the latest development code, see: http://linuxtv.org. For discussing improvements, reporting troubles, sending new drivers, etc, please mail to: Linux Media Mailing List (LMML).. @@ -86,7 +86,7 @@ - 2009 + 2009-2010 Mauro Carvalho Chehab @@ -101,7 +101,7 @@ -Other API's used by media infrastructure drivers +Remote Controller API &sub-remote_controllers; --- linux-2.6.35.orig/Documentation/DocBook/media-entities.tmpl +++ linux-2.6.35/Documentation/DocBook/media-entities.tmpl @@ -218,6 +218,7 @@ + --- linux-2.6.35.orig/Documentation/DocBook/Makefile +++ linux-2.6.35/Documentation/DocBook/Makefile @@ -35,7 +35,7 @@ PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs xmldoclinks BOOKS := $(addprefix $(obj)/,$(DOCBOOKS)) -xmldocs: $(BOOKS) xmldoclinks +xmldocs: $(BOOKS) sgmldocs: xmldocs PS := $(patsubst %.xml, %.ps, $(BOOKS)) @@ -95,7 +95,7 @@ ) > $(dir $@).$(notdir $@).cmd endef -%.xml: %.tmpl FORCE +%.xml: %.tmpl xmldoclinks FORCE $(call if_changed_rule,docproc) ### --- linux-2.6.35.orig/Documentation/DocBook/v4l/remote_controllers.xml +++ linux-2.6.35/Documentation/DocBook/v4l/remote_controllers.xml @@ -173,3 +173,5 @@ This program demonstrates how to replace the keymap tables. &sub-keytable-c; + +&sub-lirc_device_interface; --- linux-2.6.35.orig/Documentation/DocBook/v4l/lirc_device_interface.xml +++ linux-2.6.35/Documentation/DocBook/v4l/lirc_device_interface.xml @@ -0,0 +1,235 @@ +
+LIRC Device Interface + + +
+Introduction + +The LIRC device interface is a bi-directional interface for +transporting raw IR data between userspace and kernelspace. Fundamentally, +it is just a chardev (/dev/lircX, for X = 0, 1, 2, ...), with a number +of standard struct file_operations defined on it. With respect to +transporting raw IR data to and fro, the essential fops are read, write +and ioctl. + +Example dmesg output upon a driver registering w/LIRC: +
+ $ dmesg |grep lirc_dev + lirc_dev: IR Remote Control driver registered, major 248 + rc rc0: lirc_dev: driver ir-lirc-codec (mceusb) registered at minor = 0 +
+ +What you should see for a chardev: +
+ $ ls -l /dev/lirc* + crw-rw---- 1 root root 248, 0 Jul 2 22:20 /dev/lirc0 +
+
+ +
+LIRC read fop + +The lircd userspace daemon reads raw IR data from the LIRC chardev. The +exact format of the data depends on what modes a driver supports, and what +mode has been selected. lircd obtains supported modes and sets the active mode +via the ioctl interface, detailed at . The generally +preferred mode is LIRC_MODE_MODE2, in which packets containing an int value +describing an IR signal are read from the chardev. + +See also http://www.lirc.org/html/technical.html for more info. +
+ +
+LIRC write fop + +The data written to the chardev is a pulse/space sequence of integer +values. Pulses and spaces are only marked implicitly by their position. The +data must start and end with a pulse, therefore, the data must always include +an unevent number of samples. The write function must block until the data has +been transmitted by the hardware. +
+ +
+LIRC ioctl fop + +The LIRC device's ioctl definition is bound by the ioctl function +definition of struct file_operations, leaving us with an unsigned int +for the ioctl command and an unsigned long for the arg. For the purposes +of ioctl portability across 32-bit and 64-bit, these values are capped +to their 32-bit sizes. + +The following ioctls can be used to change specific hardware settings. +In general each driver should have a default set of settings. The driver +implementation is expected to re-apply the default settings when the device +is closed by user-space, so that every application opening the device can rely +on working with the default settings initially. + + + + LIRC_GET_FEATURES + + Obviously, get the underlying hardware device's features. If a driver + does not announce support of certain features, calling of the corresponding + ioctls is undefined. + + + + LIRC_GET_SEND_MODE + + Get supported transmit mode. Only LIRC_MODE_PULSE is supported by lircd. + + + + LIRC_GET_REC_MODE + + Get supported receive modes. Only LIRC_MODE_MODE2 and LIRC_MODE_LIRCCODE + are supported by lircd. + + + + LIRC_GET_SEND_CARRIER + + Get carrier frequency (in Hz) currently used for transmit. + + + + LIRC_GET_REC_CARRIER + + Get carrier frequency (in Hz) currently used for IR reception. + + + + LIRC_{G,S}ET_{SEND,REC}_DUTY_CYCLE + + Get/set the duty cycle (from 0 to 100) of the carrier signal. Currently, + no special meaning is defined for 0 or 100, but this could be used to switch + off carrier generation in the future, so these values should be reserved. + + + + LIRC_GET_REC_RESOLUTION + + Some receiver have maximum resolution which is defined by internal + sample rate or data format limitations. E.g. it's common that signals can + only be reported in 50 microsecond steps. This integer value is used by + lircd to automatically adjust the aeps tolerance value in the lircd + config file. + + + + LIRC_GET_M{IN,AX}_TIMEOUT + + Some devices have internal timers that can be used to detect when + there's no IR activity for a long time. This can help lircd in detecting + that a IR signal is finished and can speed up the decoding process. + Returns an integer value with the minimum/maximum timeout that can be + set. Some devices have a fixed timeout, in that case both ioctls will + return the same value even though the timeout cannot be changed. + + + + LIRC_GET_M{IN,AX}_FILTER_{PULSE,SPACE} + + Some devices are able to filter out spikes in the incoming signal + using given filter rules. These ioctls return the hardware capabilities + that describe the bounds of the possible filters. Filter settings depend + on the IR protocols that are expected. lircd derives the settings from + all protocols definitions found in its config file. + + + + LIRC_GET_LENGTH + + Retrieves the code length in bits (only for LIRC_MODE_LIRCCODE). + Reads on the device must be done in blocks matching the bit count. + The bit could should be rounded up so that it matches full bytes. + + + + LIRC_SET_{SEND,REC}_MODE + + Set send/receive mode. Largely obsolete for send, as only + LIRC_MODE_PULSE is supported. + + + + LIRC_SET_{SEND,REC}_CARRIER + + Set send/receive carrier (in Hz). + + + + LIRC_SET_TRANSMITTER_MASK + + This enables the given set of transmitters. The first transmitter + is encoded by the least significant bit, etc. When an invalid bit mask + is given, i.e. a bit is set, even though the device does not have so many + transitters, then this ioctl returns the number of available transitters + and does nothing otherwise. + + + + LIRC_SET_REC_TIMEOUT + + Sets the integer value for IR inactivity timeout (cf. + LIRC_GET_MIN_TIMEOUT and LIRC_GET_MAX_TIMEOUT). A value of 0 (if + supported by the hardware) disables all hardware timeouts and data should + be reported as soon as possible. If the exact value cannot be set, then + the next possible value _greater_ than the given value should be set. + + + + LIRC_SET_REC_TIMEOUT_REPORTS + + Enable (1) or disable (0) timeout reports in LIRC_MODE_MODE2. By + default, timeout reports should be turned off. + + + + LIRC_SET_REC_FILTER_{,PULSE,SPACE} + + Pulses/spaces shorter than this are filtered out by hardware. If + filters cannot be set independently for pulse/space, the corresponding + ioctls must return an error and LIRC_SET_REC_FILTER shall be used instead. + + + + LIRC_SET_MEASURE_CARRIER_MODE + + Enable (1)/disable (0) measure mode. If enabled, from the next key + press on, the driver will send LIRC_MODE2_FREQUENCY packets. By default + this should be turned off. + + + + LIRC_SET_REC_{DUTY_CYCLE,CARRIER}_RANGE + + 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. + + + + LIRC_NOTIFY_DECODE + + This ioctl is called by lircd whenever a successful decoding of an + incoming IR signal could be done. This can be used by supporting hardware + to give visual feedback to the user e.g. by flashing a LED. + + + + LIRC_SETUP_{START,END} + + Setting of several driver parameters can be optimized by encapsulating + the according ioctl calls with LIRC_SETUP_START/LIRC_SETUP_END. When a + driver receives a LIRC_SETUP_START ioctl it can choose to not commit + further setting changes to the hardware until a LIRC_SETUP_END is received. + But this is open to the driver implementation and every driver must also + handle parameter changes which are not encapsulated by LIRC_SETUP_START + and LIRC_SETUP_END. Drivers can also choose to ignore these ioctls. + + + + +
+
--- linux-2.6.35.orig/Documentation/input/multi-touch-protocol.txt +++ linux-2.6.35/Documentation/input/multi-touch-protocol.txt @@ -6,31 +6,149 @@ Introduction ------------ -In order to utilize the full power of the new multi-touch devices, a way to -report detailed finger data to user space is needed. This document -describes the multi-touch (MT) protocol which allows kernel drivers to -report details for an arbitrary number of fingers. +In order to utilize the full power of the new multi-touch and multi-user +devices, a way to report detailed data from multiple contacts, i.e., +objects in direct contact with the device surface, is needed. This +document describes the multi-touch (MT) protocol which allows kernel +drivers to report details for an arbitrary number of contacts. + +The protocol is divided into two types, depending on the capabilities of the +hardware. For devices handling anonymous contacts (type A), the protocol +describes how to send the raw data for all contacts to the receiver. For +devices capable of tracking identifiable contacts (type B), the protocol +describes how to send updates for individual contacts via event slots. + + +Protocol Usage +-------------- + +Contact details are sent sequentially as separate packets of ABS_MT +events. Only the ABS_MT events are recognized as part of a contact +packet. Since these events are ignored by current single-touch (ST) +applications, the MT protocol can be implemented on top of the ST protocol +in an existing driver. + +Drivers for type A devices separate contact packets by calling +input_mt_sync() at the end of each packet. This generates a SYN_MT_REPORT +event, which instructs the receiver to accept the data for the current +contact and prepare to receive another. + +Drivers for type B devices separate contact packets by calling +input_mt_slot(), with a slot as argument, at the beginning of each packet. +This generates an ABS_MT_SLOT event, which instructs the receiver to +prepare for updates of the given slot. +All drivers mark the end of a multi-touch transfer by calling the usual +input_sync() function. This instructs the receiver to act upon events +accumulated since last EV_SYN/SYN_REPORT and prepare to receive a new set +of events/packets. -Usage ------ +The main difference between the stateless type A protocol and the stateful +type B slot protocol lies in the usage of identifiable contacts to reduce +the amount of data sent to userspace. The slot protocol requires the use of +the ABS_MT_TRACKING_ID, either provided by the hardware or computed from +the raw data [5]. + +For type A devices, the kernel driver should generate an arbitrary +enumeration of the full set of anonymous contacts currently on the +surface. The order in which the packets appear in the event stream is not +important. Event filtering and finger tracking is left to user space [3]. + +For type B devices, the kernel driver should associate a slot with each +identified contact, and use that slot to propagate changes for the contact. +Creation, replacement and destruction of contacts is achieved by modifying +the ABS_MT_TRACKING_ID of the associated slot. A non-negative tracking id +is interpreted as a contact, and the value -1 denotes an unused slot. A +tracking id not previously present is considered new, and a tracking id no +longer present is considered removed. Since only changes are propagated, +the full state of each initiated contact has to reside in the receiving +end. Upon receiving an MT event, one simply updates the appropriate +attribute of the current slot. -Anonymous finger details are sent sequentially as separate packets of ABS -events. Only the ABS_MT events are recognized as part of a finger -packet. The end of a packet is marked by calling the input_mt_sync() -function, which generates a SYN_MT_REPORT event. This instructs the -receiver to accept the data for the current finger and prepare to receive -another. The end of a multi-touch transfer is marked by calling the usual -input_sync() function. This instructs the receiver to act upon events -accumulated since last EV_SYN/SYN_REPORT and prepare to receive a new -set of events/packets. + +Protocol Example A +------------------ + +Here is what a minimal event sequence for a two-contact touch would look +like for a type A device: + + ABS_MT_POSITION_X x[0] + ABS_MT_POSITION_Y y[0] + SYN_MT_REPORT + ABS_MT_POSITION_X x[1] + ABS_MT_POSITION_Y y[1] + SYN_MT_REPORT + SYN_REPORT + +The sequence after moving one of the contacts looks exactly the same; the +raw data for all present contacts are sent between every synchronization +with SYN_REPORT. + +Here is the sequence after lifting the first contact: + + ABS_MT_POSITION_X x[1] + ABS_MT_POSITION_Y y[1] + SYN_MT_REPORT + SYN_REPORT + +And here is the sequence after lifting the second contact: + + SYN_MT_REPORT + SYN_REPORT + +If the driver reports one of BTN_TOUCH or ABS_PRESSURE in addition to the +ABS_MT events, the last SYN_MT_REPORT event may be omitted. Otherwise, the +last SYN_REPORT will be dropped by the input core, resulting in no +zero-contact event reaching userland. + + +Protocol Example B +------------------ + +Here is what a minimal event sequence for a two-contact touch would look +like for a type B device: + + ABS_MT_SLOT 0 + ABS_MT_TRACKING_ID 45 + ABS_MT_POSITION_X x[0] + ABS_MT_POSITION_Y y[0] + ABS_MT_SLOT 1 + ABS_MT_TRACKING_ID 46 + ABS_MT_POSITION_X x[1] + ABS_MT_POSITION_Y y[1] + SYN_REPORT + +Here is the sequence after moving contact 45 in the x direction: + + ABS_MT_SLOT 0 + ABS_MT_POSITION_X x[0] + SYN_REPORT + +Here is the sequence after lifting the contact in slot 0: + + ABS_MT_TRACKING_ID -1 + SYN_REPORT + +The slot being modified is already 0, so the ABS_MT_SLOT is omitted. The +message removes the association of slot 0 with contact 45, thereby +destroying contact 45 and freeing slot 0 to be reused for another contact. + +Finally, here is the sequence after lifting the second contact: + + ABS_MT_SLOT 1 + ABS_MT_TRACKING_ID -1 + SYN_REPORT + + +Event Usage +----------- A set of ABS_MT events with the desired properties is defined. The events are divided into categories, to allow for partial implementation. The minimum set consists of ABS_MT_POSITION_X and ABS_MT_POSITION_Y, which -allows for multiple fingers to be tracked. If the device supports it, the +allows for multiple contacts to be tracked. If the device supports it, the ABS_MT_TOUCH_MAJOR and ABS_MT_WIDTH_MAJOR may be used to provide the size -of the contact area and approaching finger, respectively. +of the contact area and approaching contact, respectively. The TOUCH and WIDTH parameters have a geometrical interpretation; imagine looking through a window at someone gently holding a finger against the @@ -41,56 +159,26 @@ ABS_MT_WIDTH_MAJOR. Now imagine the person pressing the finger harder against the glass. The inner region will increase, and in general, the ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR, which is always smaller than -unity, is related to the finger pressure. For pressure-based devices, +unity, is related to the contact pressure. For pressure-based devices, ABS_MT_PRESSURE may be used to provide the pressure on the contact area instead. -In addition to the MAJOR parameters, the oval shape of the finger can be +In addition to the MAJOR parameters, the oval shape of the contact can be described by adding the MINOR parameters, such that MAJOR and MINOR are the major and minor axis of an ellipse. Finally, the orientation of the oval shape can be describe with the ORIENTATION parameter. The ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a -finger or a pen or something else. Devices with more granular information +contact or a pen or something else. Devices with more granular information may specify general shapes as blobs, i.e., as a sequence of rectangular shapes grouped together by an ABS_MT_BLOB_ID. Finally, for the few devices that currently support it, the ABS_MT_TRACKING_ID event may be used to -report finger tracking from hardware [5]. - -Here is what a minimal event sequence for a two-finger touch would look -like: - - ABS_MT_POSITION_X - ABS_MT_POSITION_Y - SYN_MT_REPORT - ABS_MT_POSITION_X - ABS_MT_POSITION_Y - SYN_MT_REPORT - SYN_REPORT +report contact tracking from hardware [5]. -Here is the sequence after lifting one of the fingers: - - ABS_MT_POSITION_X - ABS_MT_POSITION_Y - SYN_MT_REPORT - SYN_REPORT - -And here is the sequence after lifting the remaining finger: - - SYN_MT_REPORT - SYN_REPORT - -If the driver reports one of BTN_TOUCH or ABS_PRESSURE in addition to the -ABS_MT events, the last SYN_MT_REPORT event may be omitted. Otherwise, the -last SYN_REPORT will be dropped by the input core, resulting in no -zero-finger event reaching userland. Event Semantics --------------- -The word "contact" is used to describe a tool which is in direct contact -with the surface. A finger, a pen or a rubber all classify as contacts. - ABS_MT_TOUCH_MAJOR The length of the major axis of the contact. The length should be given in @@ -157,15 +245,16 @@ ABS_MT_BLOB_ID The BLOB_ID groups several packets together into one arbitrarily shaped -contact. This is a low-level anonymous grouping, and should not be confused -with the high-level trackingID [5]. Most kernel drivers will not have blob -capability, and can safely omit the event. +contact. This is a low-level anonymous grouping for type A devices, and +should not be confused with the high-level trackingID [5]. Most type A +devices do not have blob capability, so drivers can safely omit this event. ABS_MT_TRACKING_ID The TRACKING_ID identifies an initiated contact throughout its life cycle -[5]. There are currently only a few devices that support it, so this event -should normally be omitted. +[5]. This event is mandatory for type B devices. The value range of the +TRACKING_ID should be large enough to ensure unique identification of a +contact maintained over an extended period of time. Event Computation @@ -192,20 +281,11 @@ Finger Tracking --------------- -The kernel driver should generate an arbitrary enumeration of the set of -anonymous contacts currently on the surface. The order in which the packets -appear in the event stream is not important. - The process of finger tracking, i.e., to assign a unique trackingID to each -initiated contact on the surface, is left to user space; preferably the -multi-touch X driver [3]. In that driver, the trackingID stays the same and -unique until the contact vanishes (when the finger leaves the surface). The -problem of assigning a set of anonymous fingers to a set of identified -fingers is a euclidian bipartite matching problem at each event update, and -relies on a sufficiently rapid update rate. - -There are a few devices that support trackingID in hardware. User space can -make use of these native identifiers to reduce bandwidth and cpu usage. +initiated contact on the surface, is a Euclidian Bipartite Matching +problem. At each event synchronization, the set of actual contacts is +matched to the set of contacts from the previous synchronization. A full +implementation can be found in [3]. Gestures --- linux-2.6.35.orig/mm/vmscan.c +++ linux-2.6.35/mm/vmscan.c @@ -1726,13 +1726,12 @@ * If a zone is deemed to be full of pinned pages then just give it a light * scan then give up on it. */ -static bool shrink_zones(int priority, struct zonelist *zonelist, +static void shrink_zones(int priority, struct zonelist *zonelist, struct scan_control *sc) { enum zone_type high_zoneidx = gfp_zone(sc->gfp_mask); struct zoneref *z; struct zone *zone; - bool all_unreclaimable = true; for_each_zone_zonelist_nodemask(zone, z, zonelist, high_zoneidx, sc->nodemask) { @@ -1759,8 +1758,38 @@ } shrink_zone(priority, zone, sc); - all_unreclaimable = false; } +} + +static bool zone_reclaimable(struct zone *zone) +{ + return zone->pages_scanned < zone_reclaimable_pages(zone) * 6; +} + +/* + * As hibernation is going on, kswapd is freezed so that it can't mark + * the zone into all_unreclaimable. It can't handle OOM during hibernation. + * So let's check zone's unreclaimable in direct reclaim as well as kswapd. + */ +static bool all_unreclaimable(struct zonelist *zonelist, + struct scan_control *sc) +{ + struct zoneref *z; + struct zone *zone; + bool all_unreclaimable = true; + + for_each_zone_zonelist_nodemask(zone, z, zonelist, + gfp_zone(sc->gfp_mask), sc->nodemask) { + if (!populated_zone(zone)) + continue; + if (!cpuset_zone_allowed_hardwall(zone, GFP_KERNEL)) + continue; + if (zone_reclaimable(zone)) { + all_unreclaimable = false; + break; + } + } + return all_unreclaimable; } @@ -1784,7 +1813,6 @@ struct scan_control *sc) { int priority; - bool all_unreclaimable; unsigned long total_scanned = 0; struct reclaim_state *reclaim_state = current->reclaim_state; unsigned long lru_pages = 0; @@ -1815,7 +1843,7 @@ sc->nr_scanned = 0; if (!priority) disable_swap_token(); - all_unreclaimable = shrink_zones(priority, zonelist, sc); + shrink_zones(priority, zonelist, sc); /* * Don't shrink slabs when reclaiming memory from * over limit cgroups @@ -1879,7 +1907,7 @@ return sc->nr_reclaimed; /* top priority shrink_zones still had more to do? don't OOM, then */ - if (scanning_global_lru(sc) && !all_unreclaimable) + if (scanning_global_lru(sc) && !all_unreclaimable(zonelist, sc)) return 1; return 0; @@ -2137,8 +2165,7 @@ total_scanned += sc.nr_scanned; if (zone->all_unreclaimable) continue; - if (nr_slab == 0 && - zone->pages_scanned >= (zone_reclaimable_pages(zone) * 6)) + if (nr_slab == 0 && !zone_reclaimable(zone)) zone->all_unreclaimable = 1; /* * If we've done a decent amount of scanning and --- linux-2.6.35.orig/mm/backing-dev.c +++ linux-2.6.35/mm/backing-dev.c @@ -29,6 +29,7 @@ struct backing_dev_info noop_backing_dev_info = { .name = "noop", + .capabilities = BDI_CAP_NO_ACCT_AND_WRITEBACK, }; EXPORT_SYMBOL_GPL(noop_backing_dev_info); @@ -254,6 +255,7 @@ err = bdi_init(&default_backing_dev_info); if (!err) bdi_register(&default_backing_dev_info, NULL, "default"); + err = bdi_init(&noop_backing_dev_info); return err; } --- linux-2.6.35.orig/mm/memory_hotplug.c +++ linux-2.6.35/mm/memory_hotplug.c @@ -584,19 +584,19 @@ /* Return the start of the next active pageblock after a given page */ static struct page *next_active_pageblock(struct page *page) { - int pageblocks_stride; - /* Ensure the starting page is pageblock-aligned */ BUG_ON(page_to_pfn(page) & (pageblock_nr_pages - 1)); - /* Move forward by at least 1 * pageblock_nr_pages */ - pageblocks_stride = 1; - /* If the entire pageblock is free, move to the end of free page */ - if (pageblock_free(page)) - pageblocks_stride += page_order(page) - pageblock_order; + if (pageblock_free(page)) { + int order; + /* be careful. we don't have locks, page_order can be changed.*/ + order = page_order(page); + if ((order < MAX_ORDER) && (order >= pageblock_order)) + return page + (1 << order); + } - return page + (pageblocks_stride * pageblock_nr_pages); + return page + pageblock_nr_pages; } /* Checks if this range of memory is likely to be hot-removable. */ --- linux-2.6.35.orig/mm/page_alloc.c +++ linux-2.6.35/mm/page_alloc.c @@ -588,13 +588,13 @@ { int migratetype = 0; int batch_free = 0; + int to_free = count; spin_lock(&zone->lock); zone->all_unreclaimable = 0; zone->pages_scanned = 0; - __mod_zone_page_state(zone, NR_FREE_PAGES, count); - while (count) { + while (to_free) { struct page *page; struct list_head *list; @@ -619,8 +619,9 @@ /* MIGRATE_MOVABLE list may include MIGRATE_RESERVEs */ __free_one_page(page, zone, 0, page_private(page)); trace_mm_page_pcpu_drain(page, 0, page_private(page)); - } while (--count && --batch_free && !list_empty(list)); + } while (--to_free && --batch_free && !list_empty(list)); } + __mod_zone_page_state(zone, NR_FREE_PAGES, count); spin_unlock(&zone->lock); } @@ -631,8 +632,8 @@ zone->all_unreclaimable = 0; zone->pages_scanned = 0; - __mod_zone_page_state(zone, NR_FREE_PAGES, 1 << order); __free_one_page(page, zone, order, migratetype); + __mod_zone_page_state(zone, NR_FREE_PAGES, 1 << order); spin_unlock(&zone->lock); } @@ -1461,7 +1462,7 @@ { /* free_pages my go negative - that's OK */ long min = mark; - long free_pages = zone_page_state(z, NR_FREE_PAGES) - (1 << order) + 1; + long free_pages = zone_nr_free_pages(z) - (1 << order) + 1; int o; if (alloc_flags & ALLOC_HIGH) @@ -1843,6 +1844,7 @@ struct page *page = NULL; struct reclaim_state reclaim_state; struct task_struct *p = current; + bool drained = false; cond_resched(); @@ -1861,14 +1863,25 @@ cond_resched(); - if (order != 0) - drain_all_pages(); + if (unlikely(!(*did_some_progress))) + return NULL; - if (likely(*did_some_progress)) - page = get_page_from_freelist(gfp_mask, nodemask, order, +retry: + page = get_page_from_freelist(gfp_mask, nodemask, order, zonelist, high_zoneidx, alloc_flags, preferred_zone, migratetype); + + /* + * If an allocation failed after direct reclaim, it could be because + * pages are pinned on the per-cpu lists. Drain them and try again + */ + if (!page && !drained) { + drain_all_pages(); + drained = true; + goto retry; + } + return page; } @@ -2412,7 +2425,7 @@ " all_unreclaimable? %s" "\n", zone->name, - K(zone_page_state(zone, NR_FREE_PAGES)), + K(zone_nr_free_pages(zone)), K(min_wmark_pages(zone)), K(low_wmark_pages(zone)), K(high_wmark_pages(zone)), --- linux-2.6.35.orig/mm/readahead.c +++ linux-2.6.35/mm/readahead.c @@ -181,6 +181,7 @@ list_add(&page->lru, &page_pool); if (page_idx == nr_to_read - lookahead_size) SetPageReadahead(page); + SetPageReadaheadUnused(page); ret++; } --- linux-2.6.35.orig/mm/mlock.c +++ linux-2.6.35/mm/mlock.c @@ -135,6 +135,13 @@ } } +static inline int stack_guard_page(struct vm_area_struct *vma, unsigned long addr) +{ + return (vma->vm_flags & VM_GROWSDOWN) && + (vma->vm_start == addr) && + !vma_stack_continue(vma->vm_prev, addr); +} + /** * __mlock_vma_pages_range() - mlock a range of pages in the vma. * @vma: target vma @@ -167,6 +174,12 @@ if (vma->vm_flags & VM_WRITE) gup_flags |= FOLL_WRITE; + /* We don't try to access the guard page of a stack vma */ + if (stack_guard_page(vma, start)) { + addr += PAGE_SIZE; + nr_pages--; + } + while (nr_pages > 0) { int i; --- linux-2.6.35.orig/mm/filemap.c +++ linux-2.6.35/mm/filemap.c @@ -1192,6 +1192,9 @@ if (size > count) size = count; + if (PageReadaheadUnused(page)) + ClearPageReadaheadUnused(page); + /* * Faults on the destination of a read are common, so do it before * taking the kmap. --- linux-2.6.35.orig/mm/mremap.c +++ linux-2.6.35/mm/mremap.c @@ -487,10 +487,10 @@ if (vma->vm_flags & VM_MAYSHARE) map_flags |= MAP_SHARED; - new_addr = get_unmapped_area(vma->vm_file, 0, new_len, + new_addr = get_unmapped_area_prot(vma->vm_file, 0, new_len, vma->vm_pgoff + ((addr - vma->vm_start) >> PAGE_SHIFT), - map_flags); + map_flags, vma->vm_flags & VM_EXEC); if (new_addr & ~PAGE_MASK) { ret = new_addr; goto out; --- linux-2.6.35.orig/mm/vmstat.c +++ linux-2.6.35/mm/vmstat.c @@ -138,11 +138,24 @@ int threshold; for_each_populated_zone(zone) { + unsigned long max_drift, tolerate_drift; + threshold = calculate_threshold(zone); for_each_online_cpu(cpu) per_cpu_ptr(zone->pageset, cpu)->stat_threshold = threshold; + + /* + * Only set percpu_drift_mark if there is a danger that + * NR_FREE_PAGES reports the low watermark is ok when in fact + * the min watermark could be breached by an allocation + */ + tolerate_drift = low_wmark_pages(zone) - min_wmark_pages(zone); + max_drift = num_online_cpus() * threshold; + if (max_drift > tolerate_drift) + zone->percpu_drift_mark = high_wmark_pages(zone) + + max_drift; } } @@ -813,7 +826,7 @@ "\n scanned %lu" "\n spanned %lu" "\n present %lu", - zone_page_state(zone, NR_FREE_PAGES), + zone_nr_free_pages(zone), min_wmark_pages(zone), low_wmark_pages(zone), high_wmark_pages(zone), --- linux-2.6.35.orig/mm/percpu.c +++ linux-2.6.35/mm/percpu.c @@ -1413,9 +1413,9 @@ if (pcpu_first_unit_cpu == NR_CPUS) pcpu_first_unit_cpu = cpu; + pcpu_last_unit_cpu = cpu; } } - pcpu_last_unit_cpu = cpu; pcpu_nr_units = unit; for_each_possible_cpu(cpu) --- linux-2.6.35.orig/mm/slab.c +++ linux-2.6.35/mm/slab.c @@ -2331,8 +2331,8 @@ } #if FORCED_DEBUG && defined(CONFIG_DEBUG_PAGEALLOC) if (size >= malloc_sizes[INDEX_L3 + 1].cs_size - && cachep->obj_size > cache_line_size() && size < PAGE_SIZE) { - cachep->obj_offset += PAGE_SIZE - size; + && cachep->obj_size > cache_line_size() && ALIGN(size, align) < PAGE_SIZE) { + cachep->obj_offset += PAGE_SIZE - ALIGN(size, align); size = PAGE_SIZE; } #endif --- linux-2.6.35.orig/mm/compaction.c +++ linux-2.6.35/mm/compaction.c @@ -214,15 +214,16 @@ /* Similar to reclaim, but different enough that they don't share logic */ static bool too_many_isolated(struct zone *zone) { - - unsigned long inactive, isolated; + unsigned long active, inactive, isolated; inactive = zone_page_state(zone, NR_INACTIVE_FILE) + zone_page_state(zone, NR_INACTIVE_ANON); + active = zone_page_state(zone, NR_ACTIVE_FILE) + + zone_page_state(zone, NR_ACTIVE_ANON); isolated = zone_page_state(zone, NR_ISOLATED_FILE) + zone_page_state(zone, NR_ISOLATED_ANON); - return isolated > inactive; + return isolated > (inactive + active) / 2; } /* --- linux-2.6.35.orig/mm/ksm.c +++ linux-2.6.35/mm/ksm.c @@ -1523,8 +1523,6 @@ { struct page *new_page; - unlock_page(page); /* any racers will COW it, not modify it */ - new_page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, address); if (new_page) { copy_user_highpage(new_page, page, address, vma); @@ -1540,7 +1538,6 @@ add_page_to_unevictable_list(new_page); } - page_cache_release(page); return new_page; } --- linux-2.6.35.orig/mm/mmap.c +++ linux-2.6.35/mm/mmap.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -44,6 +45,18 @@ #define arch_rebalance_pgtables(addr, len) (addr) #endif +/* No sane architecture will #define these to anything else */ +#ifndef arch_add_exec_range +#define arch_add_exec_range(mm, limit) do { ; } while (0) +#endif +#ifndef arch_flush_exec_range +#define arch_flush_exec_range(mm) do { ; } while (0) +#endif +#ifndef arch_remove_exec_range +#define arch_remove_exec_range(mm, limit) do { ; } while (0) +#endif + + static void unmap_region(struct mm_struct *mm, struct vm_area_struct *vma, struct vm_area_struct *prev, unsigned long start, unsigned long end); @@ -388,17 +401,26 @@ __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma, struct vm_area_struct *prev, struct rb_node *rb_parent) { + struct vm_area_struct *next; + + vma->vm_prev = prev; + + if (vma->vm_flags & VM_EXEC) + arch_add_exec_range(mm, vma->vm_end); if (prev) { - vma->vm_next = prev->vm_next; + next = prev->vm_next; prev->vm_next = vma; } else { mm->mmap = vma; if (rb_parent) - vma->vm_next = rb_entry(rb_parent, + next = rb_entry(rb_parent, struct vm_area_struct, vm_rb); else - vma->vm_next = NULL; + next = NULL; } + vma->vm_next = next; + if (next) + next->vm_prev = vma; } void __vma_link_rb(struct mm_struct *mm, struct vm_area_struct *vma, @@ -485,10 +507,16 @@ __vma_unlink(struct mm_struct *mm, struct vm_area_struct *vma, struct vm_area_struct *prev) { - prev->vm_next = vma->vm_next; + struct vm_area_struct *next = vma->vm_next; + + prev->vm_next = next; + if (next) + next->vm_prev = prev; rb_erase(&vma->vm_rb, &mm->mm_rb); if (mm->mmap_cache == vma) mm->mmap_cache = prev; + if (vma->vm_flags & VM_EXEC) + arch_remove_exec_range(mm, vma->vm_end); } /* @@ -790,6 +818,8 @@ } else /* cases 2, 5, 7 */ err = vma_adjust(prev, prev->vm_start, end, prev->vm_pgoff, NULL); + if (prev->vm_flags & VM_EXEC) + arch_add_exec_range(mm, prev->vm_end); if (err) return NULL; return prev; @@ -982,7 +1012,8 @@ /* Obtain the address to map to. we verify (or select) it and ensure * that it represents a valid section of the address space. */ - addr = get_unmapped_area(file, addr, len, pgoff, flags); + addr = get_unmapped_area_prot(file, addr, len, pgoff, flags, + prot & PROT_EXEC); if (addr & ~PAGE_MASK) return addr; @@ -1534,8 +1565,8 @@ } unsigned long -get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, - unsigned long pgoff, unsigned long flags) +get_unmapped_area_prot(struct file *file, unsigned long addr, unsigned long len, + unsigned long pgoff, unsigned long flags, int exec) { unsigned long (*get_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); @@ -1548,7 +1579,11 @@ if (len > TASK_SIZE) return -ENOMEM; - get_area = current->mm->get_unmapped_area; + if (exec && current->mm->get_unmapped_exec_area) + get_area = current->mm->get_unmapped_exec_area; + else + get_area = current->mm->get_unmapped_area; + if (file && file->f_op && file->f_op->get_unmapped_area) get_area = file->f_op->get_unmapped_area; addr = get_area(file, addr, len, pgoff, flags); @@ -1562,8 +1597,81 @@ return arch_rebalance_pgtables(addr, len); } +EXPORT_SYMBOL(get_unmapped_area_prot); + +#define SHLIB_BASE 0x00110000 + +unsigned long +arch_get_unmapped_exec_area(struct file *filp, unsigned long addr0, + unsigned long len0, unsigned long pgoff, unsigned long flags) +{ + unsigned long addr = addr0, len = len0; + struct mm_struct *mm = current->mm; + struct vm_area_struct *vma; + unsigned long tmp; + + if (len > TASK_SIZE) + return -ENOMEM; + + if (flags & MAP_FIXED) + return addr; + + if (!addr) { + addr = SHLIB_BASE; + if ((current->flags & PF_RANDOMIZE) && randomize_va_space) + addr = randomize_range(addr, 0x01000000, len); + } + + if (addr) { + addr = PAGE_ALIGN(addr); + vma = find_vma(mm, addr); + if (TASK_SIZE - len >= addr && + (!vma || addr + len <= vma->vm_start)) + return addr; + } + + addr = SHLIB_BASE; + for (vma = find_vma(mm, addr); ; vma = vma->vm_next) { + /* At this point: (!vma || addr < vma->vm_end). */ + if (TASK_SIZE - len < addr) + return -ENOMEM; + + if (!vma || addr + len <= vma->vm_start) { + /* + * Must not let a PROT_EXEC mapping get into the + * brk area: + */ + if (addr + len > mm->brk) + goto failed; + + /* + * Up until the brk area we randomize addresses + * as much as possible: + */ + if ((current->flags & PF_RANDOMIZE) && + randomize_va_space && + addr >= 0x01000000) { + tmp = randomize_range(0x01000000, + PAGE_ALIGN(max(mm->start_brk, + (unsigned long)0x08000000)), len); + vma = find_vma(mm, tmp); + if (TASK_SIZE - len >= tmp && + (!vma || tmp + len <= vma->vm_start)) + return tmp; + } + /* + * Ok, randomization didnt work out - return + * the result of the linear search: + */ + return addr; + } + addr = vma->vm_end; + } + +failed: + return current->mm->get_unmapped_area(filp, addr0, len0, pgoff, flags); +} -EXPORT_SYMBOL(get_unmapped_area); /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) @@ -1638,6 +1746,16 @@ return prev ? prev->vm_next : vma; } +static int over_stack_limit(unsigned long sz) +{ + struct rlimit *rlim = current->signal->rlim; + + if (sz < EXEC_STACK_BIAS) + return 0; + return (sz - EXEC_STACK_BIAS) > + ACCESS_ONCE(rlim[RLIMIT_STACK].rlim_cur); +} + /* * Verify that the stack growth is acceptable and * update accounting. This is shared with both the @@ -1654,7 +1772,7 @@ return -ENOMEM; /* Stack limit test */ - if (size > ACCESS_ONCE(rlim[RLIMIT_STACK].rlim_cur)) + if (over_stack_limit(size)) return -ENOMEM; /* mlock limit tests */ @@ -1694,9 +1812,6 @@ * PA-RISC uses this for its stack; IA64 for its Register Backing Store. * vma is the last one with address > vma->vm_end. Have to extend vma. */ -#ifndef CONFIG_IA64 -static -#endif int expand_upwards(struct vm_area_struct *vma, unsigned long address) { int error; @@ -1900,6 +2015,7 @@ unsigned long addr; insertion_point = (prev ? &prev->vm_next : &mm->mmap); + vma->vm_prev = NULL; do { rb_erase(&vma->vm_rb, &mm->mm_rb); mm->map_count--; @@ -1907,6 +2023,8 @@ vma = vma->vm_next; } while (vma && vma->vm_start < end); *insertion_point = vma; + if (vma) + vma->vm_prev = prev; tail_vma->vm_next = NULL; if (mm->unmap_area == arch_unmap_area) addr = prev ? prev->vm_end : mm->mmap_base; @@ -1966,10 +2084,14 @@ if (new->vm_ops && new->vm_ops->open) new->vm_ops->open(new); - if (new_below) + if (new_below) { + unsigned long old_end = vma->vm_end; + err = vma_adjust(vma, addr, vma->vm_end, vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), new); - else + if (vma->vm_flags & VM_EXEC) + arch_remove_exec_range(mm, old_end); + } else err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new); /* Success. */ @@ -1984,6 +2106,7 @@ removed_exe_file_vma(mm); fput(new->vm_file); } + unlink_anon_vmas(new); out_free_mpol: mpol_put(pol); out_free_vma: @@ -2254,6 +2377,7 @@ free_pgtables(tlb, vma, FIRST_USER_ADDRESS, 0); tlb_finish_mmu(tlb, 0, end); + arch_flush_exec_range(mm); /* * Walk the list again, actually closing and freeing it, --- linux-2.6.35.orig/mm/bounce.c +++ linux-2.6.35/mm/bounce.c @@ -116,8 +116,8 @@ */ vfrom = page_address(fromvec->bv_page) + tovec->bv_offset; - flush_dcache_page(tovec->bv_page); bounce_copy_vec(tovec, vfrom); + flush_dcache_page(tovec->bv_page); } } --- linux-2.6.35.orig/mm/mmzone.c +++ linux-2.6.35/mm/mmzone.c @@ -87,3 +87,24 @@ return 1; } #endif /* CONFIG_ARCH_HAS_HOLES_MEMORYMODEL */ + +#ifdef CONFIG_SMP +/* Called when a more accurate view of NR_FREE_PAGES is needed */ +unsigned long zone_nr_free_pages(struct zone *zone) +{ + unsigned long nr_free_pages = zone_page_state(zone, NR_FREE_PAGES); + + /* + * While kswapd is awake, it is considered the zone is under some + * memory pressure. Under pressure, there is a risk that + * per-cpu-counter-drift will allow the min watermark to be breached + * potentially causing a live-lock. While kswapd is awake and + * free pages are low, get a better estimate for free pages + */ + if (nr_free_pages < zone->percpu_drift_mark && + !waitqueue_active(&zone->zone_pgdat->kswapd_wait)) + return zone_page_state_snapshot(zone, NR_FREE_PAGES); + + return nr_free_pages; +} +#endif /* CONFIG_SMP */ --- linux-2.6.35.orig/mm/swapfile.c +++ linux-2.6.35/mm/swapfile.c @@ -139,8 +139,7 @@ nr_blocks = ((sector_t)se->nr_pages - 1) << (PAGE_SHIFT - 9); if (nr_blocks) { err = blkdev_issue_discard(si->bdev, start_block, - nr_blocks, GFP_KERNEL, - BLKDEV_IFL_WAIT | BLKDEV_IFL_BARRIER); + nr_blocks, GFP_KERNEL, BLKDEV_IFL_WAIT); if (err) return err; cond_resched(); @@ -151,8 +150,7 @@ nr_blocks = (sector_t)se->nr_pages << (PAGE_SHIFT - 9); err = blkdev_issue_discard(si->bdev, start_block, - nr_blocks, GFP_KERNEL, - BLKDEV_IFL_WAIT | BLKDEV_IFL_BARRIER); + nr_blocks, GFP_KERNEL, BLKDEV_IFL_WAIT); if (err) break; @@ -191,8 +189,7 @@ start_block <<= PAGE_SHIFT - 9; nr_blocks <<= PAGE_SHIFT - 9; if (blkdev_issue_discard(si->bdev, start_block, - nr_blocks, GFP_NOIO, BLKDEV_IFL_WAIT | - BLKDEV_IFL_BARRIER)) + nr_blocks, GFP_NOIO, BLKDEV_IFL_WAIT)) break; } @@ -592,6 +589,12 @@ disk->fops->swap_slot_free_notify(p->bdev, offset); } + if (!swap_count(count)) { + mem_cgroup_uncharge_swap(entry); + if (p->notify_swap_entry_free_fn) + p->notify_swap_entry_free_fn(offset); + } + return usage; } @@ -686,6 +689,24 @@ if (page_swapcount(page)) return 0; + /* + * Once hibernation has begun to create its image of memory, + * there's a danger that one of the calls to try_to_free_swap() + * - most probably a call from __try_to_reclaim_swap() while + * hibernation is allocating its own swap pages for the image, + * but conceivably even a call from memory reclaim - will free + * the swap from a page which has already been recorded in the + * image as a clean swapcache page, and then reuse its swap for + * another page of the image. On waking from hibernation, the + * original page might be freed under memory pressure, then + * later read back in from swap, now with the wrong data. + * + * Hibernation clears bits from gfp_allowed_mask to prevent + * memory reclaim from writing to disk, so check that here. + */ + if (!(gfp_allowed_mask & __GFP_IO)) + return 0; + delete_from_swap_cache(page); SetPageDirty(page); return 1; @@ -2032,7 +2053,7 @@ p->flags |= SWP_SOLIDSTATE; p->cluster_next = 1 + (random32() % p->highest_bit); } - if (discard_swap(p) == 0) + if (discard_swap(p) == 0 && (swap_flags & SWAP_FLAG_DISCARD)) p->flags |= SWP_DISCARDABLE; } @@ -2229,6 +2250,23 @@ } /* + * Sets callback for event when swap_map[offset] == 0 + * i.e. page at this swap offset is not longer used. + * + * type: identifies swap file + * fn: callback function + */ +void set_notify_swap_entry_free(unsigned type, void (*fn) (unsigned long)) +{ + struct swap_info_struct *sis; + sis = swap_info[type]; + BUG_ON(!sis); + sis->notify_swap_entry_free_fn = fn; + return; +} +EXPORT_SYMBOL(set_notify_swap_entry_free); + +/* * swap_lock prevents swap_map being freed. Don't grab an extra * reference on the swaphandle, it doesn't matter if it becomes unused. */ --- linux-2.6.35.orig/mm/nommu.c +++ linux-2.6.35/mm/nommu.c @@ -609,7 +609,7 @@ */ static void add_vma_to_mm(struct mm_struct *mm, struct vm_area_struct *vma) { - struct vm_area_struct *pvma, **pp; + struct vm_area_struct *pvma, **pp, *next; struct address_space *mapping; struct rb_node **p, *parent; @@ -669,8 +669,11 @@ break; } - vma->vm_next = *pp; + next = *pp; *pp = vma; + vma->vm_next = next; + if (next) + next->vm_prev = vma; } /* --- linux-2.6.35.orig/mm/mincore.c +++ linux-2.6.35/mm/mincore.c @@ -77,6 +77,8 @@ page = find_get_page(mapping, pgoff); if (page) { present = PageUptodate(page); + if (present) + present |= (PageReadaheadUnused(page) << 7); page_cache_release(page); } --- linux-2.6.35.orig/mm/mprotect.c +++ linux-2.6.35/mm/mprotect.c @@ -25,9 +25,14 @@ #include #include #include +#include #include #include +#ifndef arch_remove_exec_range +#define arch_remove_exec_range(mm, limit) do { ; } while (0) +#endif + #ifndef pgprot_modify static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot) { @@ -138,7 +143,7 @@ struct mm_struct *mm = vma->vm_mm; unsigned long oldflags = vma->vm_flags; long nrpages = (end - start) >> PAGE_SHIFT; - unsigned long charged = 0; + unsigned long charged = 0, old_end = vma->vm_end; pgoff_t pgoff; int error; int dirty_accountable = 0; @@ -203,6 +208,9 @@ dirty_accountable = 1; } + if (oldflags & VM_EXEC) + arch_remove_exec_range(current->mm, old_end); + mmu_notifier_invalidate_range_start(mm, start, end); if (is_vm_hugetlb_page(vma)) hugetlb_change_protection(vma, start, end, vma->vm_page_prot); --- linux-2.6.35.orig/mm/page-writeback.c +++ linux-2.6.35/mm/page-writeback.c @@ -949,22 +949,16 @@ } } - if (wbc->nr_to_write > 0) { - if (--wbc->nr_to_write == 0 && - wbc->sync_mode == WB_SYNC_NONE) { - /* - * We stop writing back only if we are - * not doing integrity sync. In case of - * integrity sync we have to keep going - * because someone may be concurrently - * dirtying pages, and we might have - * synced a lot of newly appeared dirty - * pages, but have not synced all of the - * old dirty pages. - */ - done = 1; - break; - } + /* + * We stop writing back only if we are not doing + * integrity sync. In case of integrity sync we have to + * keep going until we have written all the pages + * we tagged for writeback prior to entering this loop. + */ + if (--wbc->nr_to_write <= 0 && + wbc->sync_mode == WB_SYNC_NONE) { + done = 1; + break; } } pagevec_release(&pvec); --- linux-2.6.35.orig/mm/memory.c +++ linux-2.6.35/mm/memory.c @@ -2626,7 +2626,7 @@ unsigned int flags, pte_t orig_pte) { spinlock_t *ptl; - struct page *page; + struct page *page, *swapcache = NULL; swp_entry_t entry; pte_t pte; struct mem_cgroup *ptr = NULL; @@ -2681,10 +2681,25 @@ lock_page(page); delayacct_clear_flag(DELAYACCT_PF_SWAPIN); - page = ksm_might_need_to_copy(page, vma, address); - if (!page) { - ret = VM_FAULT_OOM; - goto out; + /* + * Make sure try_to_free_swap or reuse_swap_page or swapoff did not + * release the swapcache from under us. The page pin, and pte_same + * test below, are not enough to exclude that. Even if it is still + * swapcache, we need to check that the page's swap has not changed. + */ + if (unlikely(!PageSwapCache(page) || page_private(page) != entry.val)) + goto out_page; + + if (ksm_might_need_to_copy(page, vma, address)) { + swapcache = page; + page = ksm_does_need_to_copy(page, vma, address); + + if (unlikely(!page)) { + ret = VM_FAULT_OOM; + page = swapcache; + swapcache = NULL; + goto out_page; + } } if (mem_cgroup_try_charge_swapin(mm, page, GFP_KERNEL, &ptr)) { @@ -2735,6 +2750,18 @@ if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page)) try_to_free_swap(page); unlock_page(page); + if (swapcache) { + /* + * Hold the lock to avoid the swap entry to be reused + * until we take the PT lock for the pte_same() check + * (to avoid false positives from pte_same). For + * further safety release the lock after the swap_free + * so that the swap count won't change under a + * parallel locked swapcache. + */ + unlock_page(swapcache); + page_cache_release(swapcache); + } if (flags & FAULT_FLAG_WRITE) { ret |= do_wp_page(mm, vma, address, page_table, pmd, ptl, pte); @@ -2756,10 +2783,48 @@ unlock_page(page); out_release: page_cache_release(page); + if (swapcache) { + unlock_page(swapcache); + page_cache_release(swapcache); + } return ret; } /* + * This is like a special single-page "expand_{down|up}wards()", + * except we must first make sure that 'address{-|+}PAGE_SIZE' + * doesn't hit another vma. + */ +static inline int check_stack_guard_page(struct vm_area_struct *vma, unsigned long address) +{ + address &= PAGE_MASK; + if ((vma->vm_flags & VM_GROWSDOWN) && address == vma->vm_start) { + struct vm_area_struct *prev = vma->vm_prev; + + /* + * Is there a mapping abutting this one below? + * + * That's only ok if it's the same stack mapping + * that has gotten split.. + */ + if (prev && prev->vm_end == address) + return prev->vm_flags & VM_GROWSDOWN ? 0 : -ENOMEM; + + expand_stack(vma, address - PAGE_SIZE); + } + if ((vma->vm_flags & VM_GROWSUP) && address + PAGE_SIZE == vma->vm_end) { + struct vm_area_struct *next = vma->vm_next; + + /* As VM_GROWSDOWN but s/below/above/ */ + if (next && next->vm_start == address + PAGE_SIZE) + return next->vm_flags & VM_GROWSUP ? 0 : -ENOMEM; + + expand_upwards(vma, address + PAGE_SIZE); + } + return 0; +} + +/* * We enter with non-exclusive mmap_sem (to exclude vma changes, * but allow concurrent faults), and pte mapped but not yet locked. * We return with mmap_sem still held, but pte unmapped and unlocked. @@ -2772,19 +2837,23 @@ spinlock_t *ptl; pte_t entry; + pte_unmap(page_table); + + /* Check if we need to add a guard page to the stack */ + if (check_stack_guard_page(vma, address) < 0) + return VM_FAULT_SIGBUS; + + /* Use the zero-page for reads */ if (!(flags & FAULT_FLAG_WRITE)) { entry = pte_mkspecial(pfn_pte(my_zero_pfn(address), vma->vm_page_prot)); - ptl = pte_lockptr(mm, pmd); - spin_lock(ptl); + page_table = pte_offset_map_lock(mm, pmd, address, &ptl); if (!pte_none(*page_table)) goto unlock; goto setpte; } /* Allocate our own private page. */ - pte_unmap(page_table); - if (unlikely(anon_vma_prepare(vma))) goto oom; page = alloc_zeroed_user_highpage_movable(vma, address); @@ -2875,10 +2944,15 @@ else VM_BUG_ON(!PageLocked(vmf.page)); + page = vmf.page; + + /* Mark the page as used on fault. */ + if (PageReadaheadUnused(page)) + ClearPageReadaheadUnused(page); + /* * Should we do an early C-O-W break? */ - page = vmf.page; if (flags & FAULT_FLAG_WRITE) { if (!(vma->vm_flags & VM_SHARED)) { anon = 1; --- linux-2.6.35.orig/drivers/base/Kconfig +++ linux-2.6.35/drivers/base/Kconfig @@ -169,4 +169,12 @@ bool default n +config SR_REPORT_TIME_LIMIT + int "Default low threshold" + depends on PM + default 100 + help + Print suspend/resume information for driver/device for time greater + then default msec, ie 100 msec. + endmenu --- linux-2.6.35.orig/drivers/base/power/sysfs.c +++ linux-2.6.35/drivers/base/power/sysfs.c @@ -6,6 +6,7 @@ #include #include #include +#include #include "power.h" /* @@ -108,6 +109,65 @@ } static DEVICE_ATTR(control, 0644, control_show, control_store); + +static ssize_t rtpm_active_time_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + spin_lock_irq(&dev->power.lock); + update_pm_runtime_accounting(dev); + ret = sprintf(buf, "%i\n", jiffies_to_msecs(dev->power.active_jiffies)); + spin_unlock_irq(&dev->power.lock); + return ret; +} + +static DEVICE_ATTR(runtime_active_time, 0444, rtpm_active_time_show, NULL); + +static ssize_t rtpm_suspended_time_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + spin_lock_irq(&dev->power.lock); + update_pm_runtime_accounting(dev); + ret = sprintf(buf, "%i\n", + jiffies_to_msecs(dev->power.suspended_jiffies)); + spin_unlock_irq(&dev->power.lock); + return ret; +} + +static DEVICE_ATTR(runtime_suspended_time, 0444, rtpm_suspended_time_show, NULL); + +static ssize_t rtpm_status_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + const char *p; + + if (dev->power.runtime_error) { + p = "error\n"; + } else if (dev->power.disable_depth) { + p = "unsupported\n"; + } else { + switch (dev->power.runtime_status) { + case RPM_SUSPENDED: + p = "suspended\n"; + break; + case RPM_SUSPENDING: + p = "suspending\n"; + break; + case RPM_RESUMING: + p = "resuming\n"; + break; + case RPM_ACTIVE: + p = "active\n"; + break; + default: + return -EIO; + } + } + return sprintf(buf, p); +} + +static DEVICE_ATTR(runtime_status, 0444, rtpm_status_show, NULL); #endif static ssize_t @@ -172,27 +232,8 @@ return sprintf(buf, "enabled\n"); } -static ssize_t rtpm_status_show(struct device *dev, - struct device_attribute *attr, char *buf) -{ - if (dev->power.runtime_error) - return sprintf(buf, "error\n"); - switch (dev->power.runtime_status) { - case RPM_SUSPENDED: - return sprintf(buf, "suspended\n"); - case RPM_SUSPENDING: - return sprintf(buf, "suspending\n"); - case RPM_RESUMING: - return sprintf(buf, "resuming\n"); - case RPM_ACTIVE: - return sprintf(buf, "active\n"); - } - return -EIO; -} - static DEVICE_ATTR(runtime_usage, 0444, rtpm_usagecount_show, NULL); static DEVICE_ATTR(runtime_active_kids, 0444, rtpm_children_show, NULL); -static DEVICE_ATTR(runtime_status, 0444, rtpm_status_show, NULL); static DEVICE_ATTR(runtime_enabled, 0444, rtpm_enabled_show, NULL); #endif @@ -228,6 +269,9 @@ static struct attribute * power_attrs[] = { #ifdef CONFIG_PM_RUNTIME &dev_attr_control.attr, + &dev_attr_runtime_status.attr, + &dev_attr_runtime_suspended_time.attr, + &dev_attr_runtime_active_time.attr, #endif &dev_attr_wakeup.attr, #ifdef CONFIG_PM_ADVANCED_DEBUG @@ -235,7 +279,6 @@ #ifdef CONFIG_PM_RUNTIME &dev_attr_runtime_usage.attr, &dev_attr_runtime_active_kids.attr, - &dev_attr_runtime_status.attr, &dev_attr_runtime_enabled.attr, #endif #endif --- linux-2.6.35.orig/drivers/base/power/main.c +++ linux-2.6.35/drivers/base/power/main.c @@ -59,6 +59,7 @@ { dev->power.status = DPM_ON; init_completion(&dev->power.completion); + complete_all(&dev->power.completion); pm_runtime_init(dev); } @@ -402,6 +403,24 @@ kobject_name(&dev->kobj), pm_verb(state.event), info, error); } +static void device_show_time(struct device *dev, ktime_t starttime, pm_message_t state, char *info) +{ + ktime_t calltime; + s64 usecs64; + int usecs; + + calltime = ktime_get(); + usecs64 = ktime_to_ns(ktime_sub(calltime, starttime)); + do_div(usecs64, NSEC_PER_USEC); + usecs = usecs64; + if (usecs == 0) + usecs = 1; + if ((usecs / USEC_PER_MSEC) > CONFIG_SR_REPORT_TIME_LIMIT) + pr_info("PM: %s%s%s of drv:%s dev:%s complete after %ld.%03ld msecs\n", info ?: "", info ? " " : "", pm_verb(state.event), + dev_driver_string(dev), dev_name(dev), usecs / USEC_PER_MSEC, + usecs % USEC_PER_MSEC); +} + static void dpm_show_time(ktime_t starttime, pm_message_t state, char *info) { ktime_t calltime; @@ -432,6 +451,7 @@ static int device_resume_noirq(struct device *dev, pm_message_t state) { int error = 0; + ktime_t starttime = ktime_get(); TRACE_DEVICE(dev); TRACE_RESUME(0); @@ -441,6 +461,7 @@ error = pm_noirq_op(dev, dev->bus->pm, state); if (error) goto End; + device_show_time(dev, starttime, state, "early"); } if (dev->type && dev->type->pm) { @@ -518,6 +539,7 @@ static int device_resume(struct device *dev, pm_message_t state, bool async) { int error = 0; + ktime_t starttime = ktime_get(); TRACE_DEVICE(dev); TRACE_RESUME(0); @@ -557,6 +579,7 @@ error = legacy_resume(dev, dev->class->resume); } } + device_show_time(dev, starttime, state, NULL); End: device_unlock(dev); complete_all(&dev->power.completion); @@ -749,6 +772,7 @@ static int device_suspend_noirq(struct device *dev, pm_message_t state) { int error = 0; + ktime_t starttime = ktime_get(); if (dev->class && dev->class->pm) { pm_dev_dbg(dev, state, "LATE class "); @@ -767,6 +791,7 @@ if (dev->bus && dev->bus->pm) { pm_dev_dbg(dev, state, "LATE "); error = pm_noirq_op(dev, dev->bus->pm, state); + device_show_time(dev, starttime, state, "late"); } End: @@ -838,6 +863,7 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async) { int error = 0; + ktime_t starttime = ktime_get(); dpm_wait_for_children(dev, async); device_lock(dev); @@ -879,6 +905,7 @@ if (!error) dev->power.status = DPM_OFF; + device_show_time(dev, starttime, state, NULL); End: device_unlock(dev); complete_all(&dev->power.completion); --- linux-2.6.35.orig/drivers/base/power/runtime.c +++ linux-2.6.35/drivers/base/power/runtime.c @@ -123,6 +123,45 @@ } EXPORT_SYMBOL_GPL(pm_runtime_idle); + +/** + * update_pm_runtime_accounting - Update the time accounting of power states + * @dev: Device to update the accounting for + * + * In order to be able to have time accounting of the various power states + * (as used by programs such as PowerTOP to show the effectiveness of runtime + * PM), we need to track the time spent in each state. + * update_pm_runtime_accounting must be called each time before the + * runtime_status field is updated, to account the time in the old state + * correctly. + */ +void update_pm_runtime_accounting(struct device *dev) +{ + unsigned long now = jiffies; + int delta; + + delta = now - dev->power.accounting_timestamp; + + if (delta < 0) + delta = 0; + + dev->power.accounting_timestamp = now; + + if (dev->power.disable_depth > 0) + return; + + if (dev->power.runtime_status == RPM_SUSPENDED) + dev->power.suspended_jiffies += delta; + else + dev->power.active_jiffies += delta; +} + +static void __update_runtime_status(struct device *dev, enum rpm_status status) +{ + update_pm_runtime_accounting(dev); + dev->power.runtime_status = status; +} + /** * __pm_runtime_suspend - Carry out run-time suspend of given device. * @dev: Device to suspend. @@ -197,7 +236,7 @@ goto repeat; } - dev->power.runtime_status = RPM_SUSPENDING; + __update_runtime_status(dev, RPM_SUSPENDING); dev->power.deferred_resume = false; if (dev->bus && dev->bus->pm && dev->bus->pm->runtime_suspend) { @@ -228,7 +267,7 @@ } if (retval) { - dev->power.runtime_status = RPM_ACTIVE; + __update_runtime_status(dev, RPM_ACTIVE); if (retval == -EAGAIN || retval == -EBUSY) { if (dev->power.timer_expires == 0) notify = true; @@ -237,7 +276,7 @@ pm_runtime_cancel_pending(dev); } } else { - dev->power.runtime_status = RPM_SUSPENDED; + __update_runtime_status(dev, RPM_SUSPENDED); pm_runtime_deactivate_timer(dev); if (dev->parent) { @@ -381,7 +420,7 @@ goto repeat; } - dev->power.runtime_status = RPM_RESUMING; + __update_runtime_status(dev, RPM_RESUMING); if (dev->bus && dev->bus->pm && dev->bus->pm->runtime_resume) { spin_unlock_irq(&dev->power.lock); @@ -411,10 +450,10 @@ } if (retval) { - dev->power.runtime_status = RPM_SUSPENDED; + __update_runtime_status(dev, RPM_SUSPENDED); pm_runtime_cancel_pending(dev); } else { - dev->power.runtime_status = RPM_ACTIVE; + __update_runtime_status(dev, RPM_ACTIVE); if (parent) atomic_inc(&parent->power.child_count); } @@ -848,7 +887,7 @@ } out_set: - dev->power.runtime_status = status; + __update_runtime_status(dev, status); dev->power.runtime_error = 0; out: spin_unlock_irqrestore(&dev->power.lock, flags); @@ -1077,6 +1116,7 @@ dev->power.request_pending = false; dev->power.request = RPM_REQ_NONE; dev->power.deferred_resume = false; + dev->power.accounting_timestamp = jiffies; INIT_WORK(&dev->power.work, pm_runtime_work); dev->power.timer_expires = 0; --- linux-2.6.35.orig/drivers/platform/x86/intel_ips.c +++ linux-2.6.35/drivers/platform/x86/intel_ips.c @@ -0,0 +1,1662 @@ +/* + * Copyright (c) 2009-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. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Authors: + * Jesse Barnes + */ + +/* + * Some Intel Ibex Peak based platforms support so-called "intelligent + * power sharing", which allows the CPU and GPU to cooperate to maximize + * performance within a given TDP (thermal design point). This driver + * performs the coordination between the CPU and GPU, monitors thermal and + * power statistics in the platform, and initializes power monitoring + * hardware. It also provides a few tunables to control behavior. Its + * primary purpose is to safely allow CPU and GPU turbo modes to be enabled + * by tracking power and thermal budget; secondarily it can boost turbo + * performance by allocating more power or thermal budget to the CPU or GPU + * based on available headroom and activity. + * + * The basic algorithm is driven by a 5s moving average of tempurature. If + * thermal headroom is available, the CPU and/or GPU power clamps may be + * adjusted upwards. If we hit the thermal ceiling or a thermal trigger, + * we scale back the clamp. Aside from trigger events (when we're critically + * close or over our TDP) we don't adjust the clamps more than once every + * five seconds. + * + * The thermal device (device 31, function 6) has a set of registers that + * are updated by the ME firmware. The ME should also take the clamp values + * written to those registers and write them to the CPU, but we currently + * bypass that functionality and write the CPU MSR directly. + * + * UNSUPPORTED: + * - dual MCP configs + * + * TODO: + * - handle CPU hotplug + * - provide turbo enable/disable api + * - make sure we can write turbo enable/disable reg based on MISC_EN + * + * Related documents: + * - CDI 403777, 403778 - Auburndale EDS vol 1 & 2 + * - CDI 401376 - Ibex Peak EDS + * - ref 26037, 26641 - IPS BIOS spec + * - ref 26489 - Nehalem BIOS writer's guide + * - ref 26921 - Ibex Peak BIOS Specification + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PCI_DEVICE_ID_INTEL_THERMAL_SENSOR 0x3b32 + +/* + * Package level MSRs for monitor/control + */ +#define PLATFORM_INFO 0xce +#define PLATFORM_TDP (1<<29) +#define PLATFORM_RATIO (1<<28) + +#define IA32_MISC_ENABLE 0x1a0 +#define IA32_MISC_TURBO_EN (1ULL<<38) + +#define TURBO_POWER_CURRENT_LIMIT 0x1ac +#define TURBO_TDC_OVR_EN (1UL<<31) +#define TURBO_TDC_MASK (0x000000007fff0000UL) +#define TURBO_TDC_SHIFT (16) +#define TURBO_TDP_OVR_EN (1UL<<15) +#define TURBO_TDP_MASK (0x0000000000003fffUL) + +/* + * Core/thread MSRs for monitoring + */ +#define IA32_PERF_CTL 0x199 +#define IA32_PERF_TURBO_DIS (1ULL<<32) + +/* + * Thermal PCI device regs + */ +#define THM_CFG_TBAR 0x10 +#define THM_CFG_TBAR_HI 0x14 + +#define THM_TSIU 0x00 +#define THM_TSE 0x01 +#define TSE_EN 0xb8 +#define THM_TSS 0x02 +#define THM_TSTR 0x03 +#define THM_TSTTP 0x04 +#define THM_TSCO 0x08 +#define THM_TSES 0x0c +#define THM_TSGPEN 0x0d +#define TSGPEN_HOT_LOHI (1<<1) +#define TSGPEN_CRIT_LOHI (1<<2) +#define THM_TSPC 0x0e +#define THM_PPEC 0x10 +#define THM_CTA 0x12 +#define THM_PTA 0x14 +#define PTA_SLOPE_MASK (0xff00) +#define PTA_SLOPE_SHIFT 8 +#define PTA_OFFSET_MASK (0x00ff) +#define THM_MGTA 0x16 +#define MGTA_SLOPE_MASK (0xff00) +#define MGTA_SLOPE_SHIFT 8 +#define MGTA_OFFSET_MASK (0x00ff) +#define THM_TRC 0x1a +#define TRC_CORE2_EN (1<<15) +#define TRC_THM_EN (1<<12) +#define TRC_C6_WAR (1<<8) +#define TRC_CORE1_EN (1<<7) +#define TRC_CORE_PWR (1<<6) +#define TRC_PCH_EN (1<<5) +#define TRC_MCH_EN (1<<4) +#define TRC_DIMM4 (1<<3) +#define TRC_DIMM3 (1<<2) +#define TRC_DIMM2 (1<<1) +#define TRC_DIMM1 (1<<0) +#define THM_TES 0x20 +#define THM_TEN 0x21 +#define TEN_UPDATE_EN 1 +#define THM_PSC 0x24 +#define PSC_NTG (1<<0) /* No GFX turbo support */ +#define PSC_NTPC (1<<1) /* No CPU turbo support */ +#define PSC_PP_DEF (0<<2) /* Perf policy up to driver */ +#define PSP_PP_PC (1<<2) /* BIOS prefers CPU perf */ +#define PSP_PP_BAL (2<<2) /* BIOS wants balanced perf */ +#define PSP_PP_GFX (3<<2) /* BIOS prefers GFX perf */ +#define PSP_PBRT (1<<4) /* BIOS run time support */ +#define THM_CTV1 0x30 +#define CTV_TEMP_ERROR (1<<15) +#define CTV_TEMP_MASK 0x3f +#define CTV_ +#define THM_CTV2 0x32 +#define THM_CEC 0x34 /* undocumented power accumulator in joules */ +#define THM_AE 0x3f +#define THM_HTS 0x50 /* 32 bits */ +#define HTS_PCPL_MASK (0x7fe00000) +#define HTS_PCPL_SHIFT 21 +#define HTS_GPL_MASK (0x001ff000) +#define HTS_GPL_SHIFT 12 +#define HTS_PP_MASK (0x00000c00) +#define HTS_PP_SHIFT 10 +#define HTS_PP_DEF 0 +#define HTS_PP_PROC 1 +#define HTS_PP_BAL 2 +#define HTS_PP_GFX 3 +#define HTS_PCTD_DIS (1<<9) +#define HTS_GTD_DIS (1<<8) +#define HTS_PTL_MASK (0x000000fe) +#define HTS_PTL_SHIFT 1 +#define HTS_NVV (1<<0) +#define THM_HTSHI 0x54 /* 16 bits */ +#define HTS2_PPL_MASK (0x03ff) +#define HTS2_PRST_MASK (0x3c00) +#define HTS2_PRST_SHIFT 10 +#define HTS2_PRST_UNLOADED 0 +#define HTS2_PRST_RUNNING 1 +#define HTS2_PRST_TDISOP 2 /* turbo disabled due to power */ +#define HTS2_PRST_TDISHT 3 /* turbo disabled due to high temp */ +#define HTS2_PRST_TDISUSR 4 /* user disabled turbo */ +#define HTS2_PRST_TDISPLAT 5 /* platform disabled turbo */ +#define HTS2_PRST_TDISPM 6 /* power management disabled turbo */ +#define HTS2_PRST_TDISERR 7 /* some kind of error disabled turbo */ +#define THM_PTL 0x56 +#define THM_MGTV 0x58 +#define TV_MASK 0x000000000000ff00 +#define TV_SHIFT 8 +#define THM_PTV 0x60 +#define PTV_MASK 0x00ff +#define THM_MMGPC 0x64 +#define THM_MPPC 0x66 +#define THM_MPCPC 0x68 +#define THM_TSPIEN 0x82 +#define TSPIEN_AUX_LOHI (1<<0) +#define TSPIEN_HOT_LOHI (1<<1) +#define TSPIEN_CRIT_LOHI (1<<2) +#define TSPIEN_AUX2_LOHI (1<<3) +#define THM_TSLOCK 0x83 +#define THM_ATR 0x84 +#define THM_TOF 0x87 +#define THM_STS 0x98 +#define STS_PCPL_MASK (0x7fe00000) +#define STS_PCPL_SHIFT 21 +#define STS_GPL_MASK (0x001ff000) +#define STS_GPL_SHIFT 12 +#define STS_PP_MASK (0x00000c00) +#define STS_PP_SHIFT 10 +#define STS_PP_DEF 0 +#define STS_PP_PROC 1 +#define STS_PP_BAL 2 +#define STS_PP_GFX 3 +#define STS_PCTD_DIS (1<<9) +#define STS_GTD_DIS (1<<8) +#define STS_PTL_MASK (0x000000fe) +#define STS_PTL_SHIFT 1 +#define STS_NVV (1<<0) +#define THM_SEC 0x9c +#define SEC_ACK (1<<0) +#define THM_TC3 0xa4 +#define THM_TC1 0xa8 +#define STS_PPL_MASK (0x0003ff00) +#define STS_PPL_SHIFT 16 +#define THM_TC2 0xac +#define THM_DTV 0xb0 +#define THM_ITV 0xd8 +#define ITV_ME_SEQNO_MASK 0x000f0000 /* ME should update every ~200ms */ +#define ITV_ME_SEQNO_SHIFT (16) +#define ITV_MCH_TEMP_MASK 0x0000ff00 +#define ITV_MCH_TEMP_SHIFT (8) +#define ITV_PCH_TEMP_MASK 0x000000ff + +#define thm_readb(off) readb(ips->regmap + (off)) +#define thm_readw(off) readw(ips->regmap + (off)) +#define thm_readl(off) readl(ips->regmap + (off)) +#define thm_readq(off) readq(ips->regmap + (off)) + +#define thm_writeb(off, val) writeb((val), ips->regmap + (off)) +#define thm_writew(off, val) writew((val), ips->regmap + (off)) +#define thm_writel(off, val) writel((val), ips->regmap + (off)) + +static const int IPS_ADJUST_PERIOD = 5000; /* ms */ + +/* For initial average collection */ +static const int IPS_SAMPLE_PERIOD = 200; /* ms */ +static const int IPS_SAMPLE_WINDOW = 5000; /* 5s moving window of samples */ +#define IPS_SAMPLE_COUNT (IPS_SAMPLE_WINDOW / IPS_SAMPLE_PERIOD) + +/* Per-SKU limits */ +struct ips_mcp_limits { + int cpu_family; + int cpu_model; /* includes extended model... */ + int mcp_power_limit; /* mW units */ + int core_power_limit; + int mch_power_limit; + int core_temp_limit; /* degrees C */ + int mch_temp_limit; +}; + +/* Max temps are -10 degrees C to avoid PROCHOT# */ + +struct ips_mcp_limits ips_sv_limits = { + .mcp_power_limit = 35000, + .core_power_limit = 29000, + .mch_power_limit = 20000, + .core_temp_limit = 95, + .mch_temp_limit = 90 +}; + +struct ips_mcp_limits ips_lv_limits = { + .mcp_power_limit = 25000, + .core_power_limit = 21000, + .mch_power_limit = 13000, + .core_temp_limit = 95, + .mch_temp_limit = 90 +}; + +struct ips_mcp_limits ips_ulv_limits = { + .mcp_power_limit = 18000, + .core_power_limit = 14000, + .mch_power_limit = 11000, + .core_temp_limit = 95, + .mch_temp_limit = 90 +}; + +struct ips_driver { + struct pci_dev *dev; + void *regmap; + struct task_struct *monitor; + struct task_struct *adjust; + struct dentry *debug_root; + + /* Average CPU core temps (all averages in .01 degrees C for precision) */ + u16 ctv1_avg_temp; + u16 ctv2_avg_temp; + /* GMCH average */ + u16 mch_avg_temp; + /* Average for the CPU (both cores?) */ + u16 mcp_avg_temp; + /* Average power consumption (in mW) */ + u32 cpu_avg_power; + u32 mch_avg_power; + + /* Offset values */ + u16 cta_val; + u16 pta_val; + u16 mgta_val; + + /* Maximums & prefs, protected by turbo status lock */ + spinlock_t turbo_status_lock; + u16 mcp_temp_limit; + u16 mcp_power_limit; + u16 core_power_limit; + u16 mch_power_limit; + bool cpu_turbo_enabled; + bool __cpu_turbo_on; + bool gpu_turbo_enabled; + bool __gpu_turbo_on; + bool gpu_preferred; + bool poll_turbo_status; + bool second_cpu; + struct ips_mcp_limits *limits; + + /* Optional MCH interfaces for if i915 is in use */ + unsigned long (*read_mch_val)(void); + bool (*gpu_raise)(void); + bool (*gpu_lower)(void); + bool (*gpu_busy)(void); + bool (*gpu_turbo_disable)(void); + + /* For restoration at unload */ + u64 orig_turbo_limit; + u64 orig_turbo_ratios; +}; + +/** + * ips_cpu_busy - is CPU busy? + * @ips: IPS driver struct + * + * Check CPU for load to see whether we should increase its thermal budget. + * + * RETURNS: + * True if the CPU could use more power, false otherwise. + */ +static bool ips_cpu_busy(struct ips_driver *ips) +{ + if ((avenrun[0] >> FSHIFT) > 1) + return true; + + return false; +} + +/** + * ips_cpu_raise - raise CPU power clamp + * @ips: IPS driver struct + * + * Raise the CPU power clamp by %IPS_CPU_STEP, in accordance with TDP for + * this platform. + * + * We do this by adjusting the TURBO_POWER_CURRENT_LIMIT MSR upwards (as + * long as we haven't hit the TDP limit for the SKU). + */ +static void ips_cpu_raise(struct ips_driver *ips) +{ + u64 turbo_override; + u16 cur_tdp_limit, new_tdp_limit; + + if (!ips->cpu_turbo_enabled) + return; + + rdmsrl(TURBO_POWER_CURRENT_LIMIT, turbo_override); + + cur_tdp_limit = turbo_override & TURBO_TDP_MASK; + new_tdp_limit = cur_tdp_limit + 8; /* 1W increase */ + + /* Clamp to SKU TDP limit */ + if (((new_tdp_limit * 10) / 8) > ips->core_power_limit) + new_tdp_limit = cur_tdp_limit; + + thm_writew(THM_MPCPC, (new_tdp_limit * 10) / 8); + + turbo_override |= TURBO_TDC_OVR_EN | TURBO_TDC_OVR_EN; + wrmsrl(TURBO_POWER_CURRENT_LIMIT, turbo_override); + + turbo_override &= ~TURBO_TDP_MASK; + turbo_override |= new_tdp_limit; + + wrmsrl(TURBO_POWER_CURRENT_LIMIT, turbo_override); +} + +/** + * ips_cpu_lower - lower CPU power clamp + * @ips: IPS driver struct + * + * Lower CPU power clamp b %IPS_CPU_STEP if possible. + * + * We do this by adjusting the TURBO_POWER_CURRENT_LIMIT MSR down, going + * as low as the platform limits will allow (though we could go lower there + * wouldn't be much point). + */ +static void ips_cpu_lower(struct ips_driver *ips) +{ + u64 turbo_override; + u16 cur_limit, new_limit; + + rdmsrl(TURBO_POWER_CURRENT_LIMIT, turbo_override); + + cur_limit = turbo_override & TURBO_TDP_MASK; + new_limit = cur_limit - 8; /* 1W decrease */ + + /* Clamp to SKU TDP limit */ + if (((new_limit * 10) / 8) < (ips->orig_turbo_limit & TURBO_TDP_MASK)) + new_limit = ips->orig_turbo_limit & TURBO_TDP_MASK; + + thm_writew(THM_MPCPC, (new_limit * 10) / 8); + + turbo_override |= TURBO_TDC_OVR_EN | TURBO_TDC_OVR_EN; + wrmsrl(TURBO_POWER_CURRENT_LIMIT, turbo_override); + + turbo_override &= ~TURBO_TDP_MASK; + turbo_override |= new_limit; + + wrmsrl(TURBO_POWER_CURRENT_LIMIT, turbo_override); +} + +/** + * do_enable_cpu_turbo - internal turbo enable function + * @data: unused + * + * Internal function for actually updating MSRs. When we enable/disable + * turbo, we need to do it on each CPU; this function is the one called + * by on_each_cpu() when needed. + */ +static void do_enable_cpu_turbo(void *data) +{ + u64 perf_ctl; + + rdmsrl(IA32_PERF_CTL, perf_ctl); + if (perf_ctl & IA32_PERF_TURBO_DIS) { + perf_ctl &= ~IA32_PERF_TURBO_DIS; + wrmsrl(IA32_PERF_CTL, perf_ctl); + } +} + +/** + * ips_enable_cpu_turbo - enable turbo mode on all CPUs + * @ips: IPS driver struct + * + * Enable turbo mode by clearing the disable bit in IA32_PERF_CTL on + * all logical threads. + */ +static void ips_enable_cpu_turbo(struct ips_driver *ips) +{ + /* Already on, no need to mess with MSRs */ + if (ips->__cpu_turbo_on) + return; + + on_each_cpu(do_enable_cpu_turbo, ips, 1); + + ips->__cpu_turbo_on = true; +} + +/** + * do_disable_cpu_turbo - internal turbo disable function + * @data: unused + * + * Internal function for actually updating MSRs. When we enable/disable + * turbo, we need to do it on each CPU; this function is the one called + * by on_each_cpu() when needed. + */ +static void do_disable_cpu_turbo(void *data) +{ + u64 perf_ctl; + + rdmsrl(IA32_PERF_CTL, perf_ctl); + if (!(perf_ctl & IA32_PERF_TURBO_DIS)) { + perf_ctl |= IA32_PERF_TURBO_DIS; + wrmsrl(IA32_PERF_CTL, perf_ctl); + } +} + +/** + * ips_disable_cpu_turbo - disable turbo mode on all CPUs + * @ips: IPS driver struct + * + * Disable turbo mode by setting the disable bit in IA32_PERF_CTL on + * all logical threads. + */ +static void ips_disable_cpu_turbo(struct ips_driver *ips) +{ + /* Already off, leave it */ + if (!ips->__cpu_turbo_on) + return; + + on_each_cpu(do_disable_cpu_turbo, ips, 1); + + ips->__cpu_turbo_on = false; +} + +/** + * ips_gpu_busy - is GPU busy? + * @ips: IPS driver struct + * + * Check GPU for load to see whether we should increase its thermal budget. + * We need to call into the i915 driver in this case. + * + * RETURNS: + * True if the GPU could use more power, false otherwise. + */ +static bool ips_gpu_busy(struct ips_driver *ips) +{ + if (!ips->gpu_turbo_enabled) + return false; + + return ips->gpu_busy(); +} + +/** + * ips_gpu_raise - raise GPU power clamp + * @ips: IPS driver struct + * + * Raise the GPU frequency/power if possible. We need to call into the + * i915 driver in this case. + */ +static void ips_gpu_raise(struct ips_driver *ips) +{ + if (!ips->gpu_turbo_enabled) + return; + + if (!ips->gpu_raise()) + ips->gpu_turbo_enabled = false; + + return; +} + +/** + * ips_gpu_lower - lower GPU power clamp + * @ips: IPS driver struct + * + * Lower GPU frequency/power if possible. Need to call i915. + */ +static void ips_gpu_lower(struct ips_driver *ips) +{ + if (!ips->gpu_turbo_enabled) + return; + + if (!ips->gpu_lower()) + ips->gpu_turbo_enabled = false; + + return; +} + +/** + * ips_enable_gpu_turbo - notify the gfx driver turbo is available + * @ips: IPS driver struct + * + * Call into the graphics driver indicating that it can safely use + * turbo mode. + */ +static void ips_enable_gpu_turbo(struct ips_driver *ips) +{ + if (ips->__gpu_turbo_on) + return; + ips->__gpu_turbo_on = true; +} + +/** + * ips_disable_gpu_turbo - notify the gfx driver to disable turbo mode + * @ips: IPS driver struct + * + * Request that the graphics driver disable turbo mode. + */ +static void ips_disable_gpu_turbo(struct ips_driver *ips) +{ + /* Avoid calling i915 if turbo is already disabled */ + if (!ips->__gpu_turbo_on) + return; + + if (!ips->gpu_turbo_disable()) + dev_err(&ips->dev->dev, "failed to disable graphis turbo\n"); + else + ips->__gpu_turbo_on = false; +} + +/** + * mcp_exceeded - check whether we're outside our thermal & power limits + * @ips: IPS driver struct + * + * Check whether the MCP is over its thermal or power budget. + */ +static bool mcp_exceeded(struct ips_driver *ips) +{ + unsigned long flags; + bool ret = false; + + spin_lock_irqsave(&ips->turbo_status_lock, flags); + if (ips->mcp_avg_temp > (ips->mcp_temp_limit * 100)) + ret = true; + if (ips->cpu_avg_power + ips->mch_avg_power > ips->mcp_power_limit) + ret = true; + spin_unlock_irqrestore(&ips->turbo_status_lock, flags); + + if (ret) + dev_info(&ips->dev->dev, + "MCP power or thermal limit exceeded\n"); + + return ret; +} + +/** + * cpu_exceeded - check whether a CPU core is outside its limits + * @ips: IPS driver struct + * @cpu: CPU number to check + * + * Check a given CPU's average temp or power is over its limit. + */ +static bool cpu_exceeded(struct ips_driver *ips, int cpu) +{ + unsigned long flags; + int avg; + bool ret = false; + + spin_lock_irqsave(&ips->turbo_status_lock, flags); + avg = cpu ? ips->ctv2_avg_temp : ips->ctv1_avg_temp; + if (avg > (ips->limits->core_temp_limit * 100)) + ret = true; + if (ips->cpu_avg_power > ips->core_power_limit * 100) + ret = true; + spin_unlock_irqrestore(&ips->turbo_status_lock, flags); + + if (ret) + dev_info(&ips->dev->dev, + "CPU power or thermal limit exceeded\n"); + + return ret; +} + +/** + * mch_exceeded - check whether the GPU is over budget + * @ips: IPS driver struct + * + * Check the MCH temp & power against their maximums. + */ +static bool mch_exceeded(struct ips_driver *ips) +{ + unsigned long flags; + bool ret = false; + + spin_lock_irqsave(&ips->turbo_status_lock, flags); + if (ips->mch_avg_temp > (ips->limits->mch_temp_limit * 100)) + ret = true; + if (ips->mch_avg_power > ips->mch_power_limit) + ret = true; + spin_unlock_irqrestore(&ips->turbo_status_lock, flags); + + return ret; +} + +/** + * update_turbo_limits - get various limits & settings from regs + * @ips: IPS driver struct + * + * Update the IPS power & temp limits, along with turbo enable flags, + * based on latest register contents. + * + * Used at init time and for runtime BIOS support, which requires polling + * the regs for updates (as a result of AC->DC transition for example). + * + * LOCKING: + * Caller must hold turbo_status_lock (outside of init) + */ +static void update_turbo_limits(struct ips_driver *ips) +{ + u32 hts = thm_readl(THM_HTS); + + ips->cpu_turbo_enabled = !(hts & HTS_PCTD_DIS); + ips->gpu_turbo_enabled = !(hts & HTS_GTD_DIS); + ips->core_power_limit = thm_readw(THM_MPCPC); + ips->mch_power_limit = thm_readw(THM_MMGPC); + ips->mcp_temp_limit = thm_readw(THM_PTL); + ips->mcp_power_limit = thm_readw(THM_MPPC); + + /* Ignore BIOS CPU vs GPU pref */ +} + +/** + * ips_adjust - adjust power clamp based on thermal state + * @data: ips driver structure + * + * Wake up every 5s or so and check whether we should adjust the power clamp. + * Check CPU and GPU load to determine which needs adjustment. There are + * several things to consider here: + * - do we need to adjust up or down? + * - is CPU busy? + * - is GPU busy? + * - is CPU in turbo? + * - is GPU in turbo? + * - is CPU or GPU preferred? (CPU is default) + * + * So, given the above, we do the following: + * - up (TDP available) + * - CPU not busy, GPU not busy - nothing + * - CPU busy, GPU not busy - adjust CPU up + * - CPU not busy, GPU busy - adjust GPU up + * - CPU busy, GPU busy - adjust preferred unit up, taking headroom from + * non-preferred unit if necessary + * - down (at TDP limit) + * - adjust both CPU and GPU down if possible + * + cpu+ gpu+ cpu+gpu- cpu-gpu+ cpu-gpu- +cpu < gpu < cpu+gpu+ cpu+ gpu+ nothing +cpu < gpu >= cpu+gpu-(mcp<) cpu+gpu-(mcp<) gpu- gpu- +cpu >= gpu < cpu-gpu+(mcp<) cpu- cpu-gpu+(mcp<) cpu- +cpu >= gpu >= cpu-gpu- cpu-gpu- cpu-gpu- cpu-gpu- + * + */ +static int ips_adjust(void *data) +{ + struct ips_driver *ips = data; + unsigned long flags; + + dev_dbg(&ips->dev->dev, "starting ips-adjust thread\n"); + + /* + * Adjust CPU and GPU clamps every 5s if needed. Doing it more + * often isn't recommended due to ME interaction. + */ + do { + bool cpu_busy = ips_cpu_busy(ips); + bool gpu_busy = ips_gpu_busy(ips); + + spin_lock_irqsave(&ips->turbo_status_lock, flags); + if (ips->poll_turbo_status) + update_turbo_limits(ips); + spin_unlock_irqrestore(&ips->turbo_status_lock, flags); + + /* Update turbo status if necessary */ + if (ips->cpu_turbo_enabled) + ips_enable_cpu_turbo(ips); + else + ips_disable_cpu_turbo(ips); + + if (ips->gpu_turbo_enabled) + ips_enable_gpu_turbo(ips); + else + ips_disable_gpu_turbo(ips); + + /* We're outside our comfort zone, crank them down */ + if (mcp_exceeded(ips)) { + ips_cpu_lower(ips); + ips_gpu_lower(ips); + goto sleep; + } + + if (!cpu_exceeded(ips, 0) && cpu_busy) + ips_cpu_raise(ips); + else + ips_cpu_lower(ips); + + if (!mch_exceeded(ips) && gpu_busy) + ips_gpu_raise(ips); + else + ips_gpu_lower(ips); + +sleep: + schedule_timeout_interruptible(msecs_to_jiffies(IPS_ADJUST_PERIOD)); + } while (!kthread_should_stop()); + + dev_dbg(&ips->dev->dev, "ips-adjust thread stopped\n"); + + return 0; +} + +/* + * Helpers for reading out temp/power values and calculating their + * averages for the decision making and monitoring functions. + */ + +static u16 calc_avg_temp(struct ips_driver *ips, u16 *array) +{ + u64 total = 0; + int i; + u16 avg; + + for (i = 0; i < IPS_SAMPLE_COUNT; i++) + total += (u64)(array[i] * 100); + + do_div(total, IPS_SAMPLE_COUNT); + + avg = (u16)total; + + return avg; +} + +static u16 read_mgtv(struct ips_driver *ips) +{ + u16 ret; + u64 slope, offset; + u64 val; + + val = thm_readq(THM_MGTV); + val = (val & TV_MASK) >> TV_SHIFT; + + slope = offset = thm_readw(THM_MGTA); + slope = (slope & MGTA_SLOPE_MASK) >> MGTA_SLOPE_SHIFT; + offset = offset & MGTA_OFFSET_MASK; + + ret = ((val * slope + 0x40) >> 7) + offset; + + return 0; /* MCH temp reporting buggy */ +} + +static u16 read_ptv(struct ips_driver *ips) +{ + u16 val, slope, offset; + + slope = (ips->pta_val & PTA_SLOPE_MASK) >> PTA_SLOPE_SHIFT; + offset = ips->pta_val & PTA_OFFSET_MASK; + + val = thm_readw(THM_PTV) & PTV_MASK; + + return val; +} + +static u16 read_ctv(struct ips_driver *ips, int cpu) +{ + int reg = cpu ? THM_CTV2 : THM_CTV1; + u16 val; + + val = thm_readw(reg); + if (!(val & CTV_TEMP_ERROR)) + val = (val) >> 6; /* discard fractional component */ + else + val = 0; + + return val; +} + +static u32 get_cpu_power(struct ips_driver *ips, u32 *last, int period) +{ + u32 val; + u32 ret; + + /* + * CEC is in joules/65535. Take difference over time to + * get watts. + */ + val = thm_readl(THM_CEC); + + /* period is in ms and we want mW */ + ret = (((val - *last) * 1000) / period); + ret = (ret * 1000) / 65535; + *last = val; + + return ret; +} + +static const u16 temp_decay_factor = 2; +static u16 update_average_temp(u16 avg, u16 val) +{ + u16 ret; + + /* Multiply by 100 for extra precision */ + ret = (val * 100 / temp_decay_factor) + + (((temp_decay_factor - 1) * avg) / temp_decay_factor); + return ret; +} + +static const u16 power_decay_factor = 2; +static u16 update_average_power(u32 avg, u32 val) +{ + u32 ret; + + ret = (val / power_decay_factor) + + (((power_decay_factor - 1) * avg) / power_decay_factor); + + return ret; +} + +static u32 calc_avg_power(struct ips_driver *ips, u32 *array) +{ + u64 total = 0; + u32 avg; + int i; + + for (i = 0; i < IPS_SAMPLE_COUNT; i++) + total += array[i]; + + do_div(total, IPS_SAMPLE_COUNT); + avg = (u32)total; + + return avg; +} + +static void monitor_timeout(unsigned long arg) +{ + wake_up_process((struct task_struct *)arg); +} + +/** + * ips_monitor - temp/power monitoring thread + * @data: ips driver structure + * + * This is the main function for the IPS driver. It monitors power and + * tempurature in the MCP and adjusts CPU and GPU power clams accordingly. + * + * We keep a 5s moving average of power consumption and tempurature. Using + * that data, along with CPU vs GPU preference, we adjust the power clamps + * up or down. + */ +static int ips_monitor(void *data) +{ + struct ips_driver *ips = data; + struct timer_list timer; + unsigned long seqno_timestamp, expire, last_msecs, last_sample_period; + int i; + u32 *cpu_samples, *mchp_samples, old_cpu_power; + u16 *mcp_samples, *ctv1_samples, *ctv2_samples, *mch_samples; + u8 cur_seqno, last_seqno; + + mcp_samples = kzalloc(sizeof(u16) * IPS_SAMPLE_COUNT, GFP_KERNEL); + ctv1_samples = kzalloc(sizeof(u16) * IPS_SAMPLE_COUNT, GFP_KERNEL); + ctv2_samples = kzalloc(sizeof(u16) * IPS_SAMPLE_COUNT, GFP_KERNEL); + mch_samples = kzalloc(sizeof(u16) * IPS_SAMPLE_COUNT, GFP_KERNEL); + cpu_samples = kzalloc(sizeof(u32) * IPS_SAMPLE_COUNT, GFP_KERNEL); + mchp_samples = kzalloc(sizeof(u32) * IPS_SAMPLE_COUNT, GFP_KERNEL); + if (!mcp_samples || !ctv1_samples || !ctv2_samples || !mch_samples || + !cpu_samples || !mchp_samples) { + dev_err(&ips->dev->dev, + "failed to allocate sample array, ips disabled\n"); + kfree(mcp_samples); + kfree(ctv1_samples); + kfree(ctv2_samples); + kfree(mch_samples); + kfree(cpu_samples); + kfree(mchp_samples); + kthread_stop(ips->adjust); + return -ENOMEM; + } + + last_seqno = (thm_readl(THM_ITV) & ITV_ME_SEQNO_MASK) >> + ITV_ME_SEQNO_SHIFT; + seqno_timestamp = get_jiffies_64(); + + old_cpu_power = thm_readl(THM_CEC) / 65535; + schedule_timeout_interruptible(msecs_to_jiffies(IPS_SAMPLE_PERIOD)); + + /* Collect an initial average */ + for (i = 0; i < IPS_SAMPLE_COUNT; i++) { + u32 mchp, cpu_power; + u16 val; + + mcp_samples[i] = read_ptv(ips); + + val = read_ctv(ips, 0); + ctv1_samples[i] = val; + + val = read_ctv(ips, 1); + ctv2_samples[i] = val; + + val = read_mgtv(ips); + mch_samples[i] = val; + + cpu_power = get_cpu_power(ips, &old_cpu_power, + IPS_SAMPLE_PERIOD); + cpu_samples[i] = cpu_power; + + if (ips->read_mch_val) { + mchp = ips->read_mch_val(); + mchp_samples[i] = mchp; + } + + schedule_timeout_interruptible(msecs_to_jiffies(IPS_SAMPLE_PERIOD)); + if (kthread_should_stop()) + break; + } + + ips->mcp_avg_temp = calc_avg_temp(ips, mcp_samples); + ips->ctv1_avg_temp = calc_avg_temp(ips, ctv1_samples); + ips->ctv2_avg_temp = calc_avg_temp(ips, ctv2_samples); + ips->mch_avg_temp = calc_avg_temp(ips, mch_samples); + ips->cpu_avg_power = calc_avg_power(ips, cpu_samples); + ips->mch_avg_power = calc_avg_power(ips, mchp_samples); + kfree(mcp_samples); + kfree(ctv1_samples); + kfree(ctv2_samples); + kfree(mch_samples); + kfree(cpu_samples); + kfree(mchp_samples); + + /* Start the adjustment thread now that we have data */ + wake_up_process(ips->adjust); + + /* + * Ok, now we have an initial avg. From here on out, we track the + * running avg using a decaying average calculation. This allows + * us to reduce the sample frequency if the CPU and GPU are idle. + */ + old_cpu_power = thm_readl(THM_CEC); + schedule_timeout_interruptible(msecs_to_jiffies(IPS_SAMPLE_PERIOD)); + last_sample_period = IPS_SAMPLE_PERIOD; + + setup_deferrable_timer_on_stack(&timer, monitor_timeout, + (unsigned long)current); + do { + u32 cpu_val, mch_val; + u16 val; + + /* MCP itself */ + val = read_ptv(ips); + ips->mcp_avg_temp = update_average_temp(ips->mcp_avg_temp, val); + + /* Processor 0 */ + val = read_ctv(ips, 0); + ips->ctv1_avg_temp = + update_average_temp(ips->ctv1_avg_temp, val); + /* Power */ + cpu_val = get_cpu_power(ips, &old_cpu_power, + last_sample_period); + ips->cpu_avg_power = + update_average_power(ips->cpu_avg_power, cpu_val); + + if (ips->second_cpu) { + /* Processor 1 */ + val = read_ctv(ips, 1); + ips->ctv2_avg_temp = + update_average_temp(ips->ctv2_avg_temp, val); + } + + /* MCH */ + val = read_mgtv(ips); + ips->mch_avg_temp = update_average_temp(ips->mch_avg_temp, val); + /* Power */ + if (ips->read_mch_val) { + mch_val = ips->read_mch_val(); + ips->mch_avg_power = + update_average_power(ips->mch_avg_power, + mch_val); + } + + /* + * Make sure ME is updating thermal regs. + * Note: + * If it's been more than a second since the last update, + * the ME is probably hung. + */ + cur_seqno = (thm_readl(THM_ITV) & ITV_ME_SEQNO_MASK) >> + ITV_ME_SEQNO_SHIFT; + if (cur_seqno == last_seqno && + time_after(jiffies, seqno_timestamp + HZ)) { + dev_warn(&ips->dev->dev, "ME failed to update for more than 1s, likely hung\n"); + } else { + seqno_timestamp = get_jiffies_64(); + last_seqno = cur_seqno; + } + + last_msecs = jiffies_to_msecs(jiffies); + expire = jiffies + msecs_to_jiffies(IPS_SAMPLE_PERIOD); + + __set_current_state(TASK_UNINTERRUPTIBLE); + mod_timer(&timer, expire); + schedule(); + + /* Calculate actual sample period for power averaging */ + last_sample_period = jiffies_to_msecs(jiffies) - last_msecs; + if (!last_sample_period) + last_sample_period = 1; + } while (!kthread_should_stop()); + + del_timer_sync(&timer); + destroy_timer_on_stack(&timer); + + dev_dbg(&ips->dev->dev, "ips-monitor thread stopped\n"); + + return 0; +} + +#if 0 +#define THM_DUMPW(reg) \ + { \ + u16 val = thm_readw(reg); \ + dev_dbg(&ips->dev->dev, #reg ": 0x%04x\n", val); \ + } +#define THM_DUMPL(reg) \ + { \ + u32 val = thm_readl(reg); \ + dev_dbg(&ips->dev->dev, #reg ": 0x%08x\n", val); \ + } +#define THM_DUMPQ(reg) \ + { \ + u64 val = thm_readq(reg); \ + dev_dbg(&ips->dev->dev, #reg ": 0x%016x\n", val); \ + } + +static void dump_thermal_info(struct ips_driver *ips) +{ + u16 ptl; + + ptl = thm_readw(THM_PTL); + dev_dbg(&ips->dev->dev, "Processor temp limit: %d\n", ptl); + + THM_DUMPW(THM_CTA); + THM_DUMPW(THM_TRC); + THM_DUMPW(THM_CTV1); + THM_DUMPL(THM_STS); + THM_DUMPW(THM_PTV); + THM_DUMPQ(THM_MGTV); +} +#endif + +/** + * ips_irq_handler - handle temperature triggers and other IPS events + * @irq: irq number + * @arg: unused + * + * Handle temperature limit trigger events, generally by lowering the clamps. + * If we're at a critical limit, we clamp back to the lowest possible value + * to prevent emergency shutdown. + */ +static irqreturn_t ips_irq_handler(int irq, void *arg) +{ + struct ips_driver *ips = arg; + u8 tses = thm_readb(THM_TSES); + u8 tes = thm_readb(THM_TES); + + if (!tses && !tes) + return IRQ_NONE; + + dev_info(&ips->dev->dev, "TSES: 0x%02x\n", tses); + dev_info(&ips->dev->dev, "TES: 0x%02x\n", tes); + + /* STS update from EC? */ + if (tes & 1) { + u32 sts, tc1; + + sts = thm_readl(THM_STS); + tc1 = thm_readl(THM_TC1); + + if (sts & STS_NVV) { + spin_lock(&ips->turbo_status_lock); + ips->core_power_limit = (sts & STS_PCPL_MASK) >> + STS_PCPL_SHIFT; + ips->mch_power_limit = (sts & STS_GPL_MASK) >> + STS_GPL_SHIFT; + /* ignore EC CPU vs GPU pref */ + ips->cpu_turbo_enabled = !(sts & STS_PCTD_DIS); + ips->gpu_turbo_enabled = !(sts & STS_GTD_DIS); + ips->mcp_temp_limit = (sts & STS_PTL_MASK) >> + STS_PTL_SHIFT; + ips->mcp_power_limit = (tc1 & STS_PPL_MASK) >> + STS_PPL_SHIFT; + spin_unlock(&ips->turbo_status_lock); + + thm_writeb(THM_SEC, SEC_ACK); + } + thm_writeb(THM_TES, tes); + } + + /* Thermal trip */ + if (tses) { + dev_warn(&ips->dev->dev, + "thermal trip occurred, tses: 0x%04x\n", tses); + thm_writeb(THM_TSES, tses); + } + + return IRQ_HANDLED; +} + +#ifndef CONFIG_DEBUG_FS +static void ips_debugfs_init(struct ips_driver *ips) { return; } +static void ips_debugfs_cleanup(struct ips_driver *ips) { return; } +#else + +/* Expose current state and limits in debugfs if possible */ + +struct ips_debugfs_node { + struct ips_driver *ips; + char *name; + int (*show)(struct seq_file *m, void *data); +}; + +static int show_cpu_temp(struct seq_file *m, void *data) +{ + struct ips_driver *ips = m->private; + + seq_printf(m, "%d.%02d\n", ips->ctv1_avg_temp / 100, + ips->ctv1_avg_temp % 100); + + return 0; +} + +static int show_cpu_power(struct seq_file *m, void *data) +{ + struct ips_driver *ips = m->private; + + seq_printf(m, "%dmW\n", ips->cpu_avg_power); + + return 0; +} + +static int show_cpu_clamp(struct seq_file *m, void *data) +{ + u64 turbo_override; + int tdp, tdc; + + rdmsrl(TURBO_POWER_CURRENT_LIMIT, turbo_override); + + tdp = (int)(turbo_override & TURBO_TDP_MASK); + tdc = (int)((turbo_override & TURBO_TDC_MASK) >> TURBO_TDC_SHIFT); + + /* Convert to .1W/A units */ + tdp = tdp * 10 / 8; + tdc = tdc * 10 / 8; + + /* Watts Amperes */ + seq_printf(m, "%d.%dW %d.%dA\n", tdp / 10, tdp % 10, + tdc / 10, tdc % 10); + + return 0; +} + +static int show_mch_temp(struct seq_file *m, void *data) +{ + struct ips_driver *ips = m->private; + + seq_printf(m, "%d.%02d\n", ips->mch_avg_temp / 100, + ips->mch_avg_temp % 100); + + return 0; +} + +static int show_mch_power(struct seq_file *m, void *data) +{ + struct ips_driver *ips = m->private; + + seq_printf(m, "%dmW\n", ips->mch_avg_power); + + return 0; +} + +static struct ips_debugfs_node ips_debug_files[] = { + { NULL, "cpu_temp", show_cpu_temp }, + { NULL, "cpu_power", show_cpu_power }, + { NULL, "cpu_clamp", show_cpu_clamp }, + { NULL, "mch_temp", show_mch_temp }, + { NULL, "mch_power", show_mch_power }, +}; + +static int ips_debugfs_open(struct inode *inode, struct file *file) +{ + struct ips_debugfs_node *node = inode->i_private; + + return single_open(file, node->show, node->ips); +} + +static const struct file_operations ips_debugfs_ops = { + .owner = THIS_MODULE, + .open = ips_debugfs_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +static void ips_debugfs_cleanup(struct ips_driver *ips) +{ + if (ips->debug_root) + debugfs_remove_recursive(ips->debug_root); + return; +} + +static void ips_debugfs_init(struct ips_driver *ips) +{ + int i; + + ips->debug_root = debugfs_create_dir("ips", NULL); + if (!ips->debug_root) { + dev_err(&ips->dev->dev, + "failed to create debugfs entries: %ld\n", + PTR_ERR(ips->debug_root)); + return; + } + + for (i = 0; i < ARRAY_SIZE(ips_debug_files); i++) { + struct dentry *ent; + struct ips_debugfs_node *node = &ips_debug_files[i]; + + node->ips = ips; + ent = debugfs_create_file(node->name, S_IFREG | S_IRUGO, + ips->debug_root, node, + &ips_debugfs_ops); + if (!ent) { + dev_err(&ips->dev->dev, + "failed to create debug file: %ld\n", + PTR_ERR(ent)); + goto err_cleanup; + } + } + + return; + +err_cleanup: + ips_debugfs_cleanup(ips); + return; +} +#endif /* CONFIG_DEBUG_FS */ + +/** + * ips_detect_cpu - detect whether CPU supports IPS + * + * Walk our list and see if we're on a supported CPU. If we find one, + * return the limits for it. + */ +static struct ips_mcp_limits *ips_detect_cpu(struct ips_driver *ips) +{ + u64 turbo_power, misc_en; + struct ips_mcp_limits *limits = NULL; + u16 tdp; + + if (!(boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 37)) { + dev_info(&ips->dev->dev, "Non-IPS CPU detected.\n"); + goto out; + } + + rdmsrl(IA32_MISC_ENABLE, misc_en); + /* + * If the turbo enable bit isn't set, we shouldn't try to enable/disable + * turbo manually or we'll get an illegal MSR access, even though + * turbo will still be available. + */ + if (!(misc_en & IA32_MISC_TURBO_EN)) + ; /* add turbo MSR write allowed flag if necessary */ + + if (strstr(boot_cpu_data.x86_model_id, "CPU M")) + limits = &ips_sv_limits; + else if (strstr(boot_cpu_data.x86_model_id, "CPU L")) + limits = &ips_lv_limits; + else if (strstr(boot_cpu_data.x86_model_id, "CPU U")) + limits = &ips_ulv_limits; + else { + dev_info(&ips->dev->dev, "No CPUID match found.\n"); + goto out; + } + + rdmsrl(TURBO_POWER_CURRENT_LIMIT, turbo_power); + tdp = turbo_power & TURBO_TDP_MASK; + + /* Sanity check TDP against CPU */ + if (limits->mcp_power_limit != (tdp / 8) * 1000) { + dev_warn(&ips->dev->dev, "Warning: CPU TDP doesn't match expected value (found %d, expected %d)\n", + tdp / 8, limits->mcp_power_limit / 1000); + } + +out: + return limits; +} + +/** + * ips_get_i915_syms - try to get GPU control methods from i915 driver + * @ips: IPS driver + * + * The i915 driver exports several interfaces to allow the IPS driver to + * monitor and control graphics turbo mode. If we can find them, we can + * enable graphics turbo, otherwise we must disable it to avoid exceeding + * thermal and power limits in the MCP. + */ +static bool ips_get_i915_syms(struct ips_driver *ips) +{ + ips->read_mch_val = symbol_get(i915_read_mch_val); + if (!ips->read_mch_val) + goto out_err; + ips->gpu_raise = symbol_get(i915_gpu_raise); + if (!ips->gpu_raise) + goto out_put_mch; + ips->gpu_lower = symbol_get(i915_gpu_lower); + if (!ips->gpu_lower) + goto out_put_raise; + ips->gpu_busy = symbol_get(i915_gpu_busy); + if (!ips->gpu_busy) + goto out_put_lower; + ips->gpu_turbo_disable = symbol_get(i915_gpu_turbo_disable); + if (!ips->gpu_turbo_disable) + goto out_put_busy; + + return true; + +out_put_busy: + symbol_put(i915_gpu_turbo_disable); +out_put_lower: + symbol_put(i915_gpu_lower); +out_put_raise: + symbol_put(i915_gpu_raise); +out_put_mch: + symbol_put(i915_read_mch_val); +out_err: + return false; +} + +static DEFINE_PCI_DEVICE_TABLE(ips_id_table) = { + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, + PCI_DEVICE_ID_INTEL_THERMAL_SENSOR), }, + { 0, } +}; + +MODULE_DEVICE_TABLE(pci, ips_id_table); + +static int ips_probe(struct pci_dev *dev, const struct pci_device_id *id) +{ + u64 platform_info; + struct ips_driver *ips; + u32 hts; + int ret = 0; + u16 htshi, trc, trc_required_mask; + u8 tse; + + ips = kzalloc(sizeof(struct ips_driver), GFP_KERNEL); + if (!ips) + return -ENOMEM; + + pci_set_drvdata(dev, ips); + ips->dev = dev; + + ips->limits = ips_detect_cpu(ips); + if (!ips->limits) { + dev_info(&dev->dev, "IPS not supported on this CPU\n"); + ret = -ENXIO; + goto error_free; + } + + spin_lock_init(&ips->turbo_status_lock); + + if (!pci_resource_start(dev, 0)) { + dev_err(&dev->dev, "TBAR not assigned, aborting\n"); + ret = -ENXIO; + goto error_free; + } + + ret = pci_request_regions(dev, "ips thermal sensor"); + if (ret) { + dev_err(&dev->dev, "thermal resource busy, aborting\n"); + goto error_free; + } + + ret = pci_enable_device(dev); + if (ret) { + dev_err(&dev->dev, "can't enable PCI device, aborting\n"); + goto error_free; + } + + ips->regmap = ioremap(pci_resource_start(dev, 0), + pci_resource_len(dev, 0)); + if (!ips->regmap) { + dev_err(&dev->dev, "failed to map thermal regs, aborting\n"); + ret = -EBUSY; + goto error_release; + } + + tse = thm_readb(THM_TSE); + if (tse != TSE_EN) { + dev_err(&dev->dev, "thermal device not enabled (0x%02x), aborting\n", tse); + ret = -ENXIO; + goto error_unmap; + } + + trc = thm_readw(THM_TRC); + trc_required_mask = TRC_CORE1_EN | TRC_CORE_PWR | TRC_MCH_EN; + if ((trc & trc_required_mask) != trc_required_mask) { + dev_err(&dev->dev, "thermal reporting for required devices not enabled, aborting\n"); + ret = -ENXIO; + goto error_unmap; + } + + if (trc & TRC_CORE2_EN) + ips->second_cpu = true; + + update_turbo_limits(ips); + dev_dbg(&dev->dev, "max cpu power clamp: %dW\n", + ips->mcp_power_limit / 10); + dev_dbg(&dev->dev, "max core power clamp: %dW\n", + ips->core_power_limit / 10); + /* BIOS may update limits at runtime */ + if (thm_readl(THM_PSC) & PSP_PBRT) + ips->poll_turbo_status = true; + + if (!ips_get_i915_syms(ips)) { + dev_err(&dev->dev, "failed to get i915 symbols, graphics turbo disabled\n"); + ips->gpu_turbo_enabled = false; + } else { + dev_dbg(&dev->dev, "graphics turbo enabled\n"); + ips->gpu_turbo_enabled = true; + } + + /* + * Check PLATFORM_INFO MSR to make sure this chip is + * turbo capable. + */ + rdmsrl(PLATFORM_INFO, platform_info); + if (!(platform_info & PLATFORM_TDP)) { + dev_err(&dev->dev, "platform indicates TDP override unavailable, aborting\n"); + ret = -ENODEV; + goto error_unmap; + } + + /* + * IRQ handler for ME interaction + * Note: don't use MSI here as the PCH has bugs. + */ + pci_disable_msi(dev); + ret = request_irq(dev->irq, ips_irq_handler, IRQF_SHARED, "ips", + ips); + if (ret) { + dev_err(&dev->dev, "request irq failed, aborting\n"); + goto error_unmap; + } + + /* Enable aux, hot & critical interrupts */ + thm_writeb(THM_TSPIEN, TSPIEN_AUX2_LOHI | TSPIEN_CRIT_LOHI | + TSPIEN_HOT_LOHI | TSPIEN_AUX_LOHI); + thm_writeb(THM_TEN, TEN_UPDATE_EN); + + /* Collect adjustment values */ + ips->cta_val = thm_readw(THM_CTA); + ips->pta_val = thm_readw(THM_PTA); + ips->mgta_val = thm_readw(THM_MGTA); + + /* Save turbo limits & ratios */ + rdmsrl(TURBO_POWER_CURRENT_LIMIT, ips->orig_turbo_limit); + + ips_enable_cpu_turbo(ips); + ips->cpu_turbo_enabled = true; + + /* Set up the work queue and monitor/adjust threads */ + ips->monitor = kthread_run(ips_monitor, ips, "ips-monitor"); + if (IS_ERR(ips->monitor)) { + dev_err(&dev->dev, + "failed to create thermal monitor thread, aborting\n"); + ret = -ENOMEM; + goto error_free_irq; + } + + ips->adjust = kthread_create(ips_adjust, ips, "ips-adjust"); + if (IS_ERR(ips->adjust)) { + dev_err(&dev->dev, + "failed to create thermal adjust thread, aborting\n"); + ret = -ENOMEM; + goto error_thread_cleanup; + } + + hts = (ips->core_power_limit << HTS_PCPL_SHIFT) | + (ips->mcp_temp_limit << HTS_PTL_SHIFT) | HTS_NVV; + htshi = HTS2_PRST_RUNNING << HTS2_PRST_SHIFT; + + thm_writew(THM_HTSHI, htshi); + thm_writel(THM_HTS, hts); + + ips_debugfs_init(ips); + + dev_info(&dev->dev, "IPS driver initialized, MCP temp limit %d\n", + ips->mcp_temp_limit); + return ret; + +error_thread_cleanup: + kthread_stop(ips->monitor); +error_free_irq: + free_irq(ips->dev->irq, ips); +error_unmap: + iounmap(ips->regmap); +error_release: + pci_release_regions(dev); +error_free: + kfree(ips); + return ret; +} + +static void ips_remove(struct pci_dev *dev) +{ + struct ips_driver *ips = pci_get_drvdata(dev); + u64 turbo_override; + + if (!ips) + return; + + ips_debugfs_cleanup(ips); + + /* Release i915 driver */ + if (ips->read_mch_val) + symbol_put(i915_read_mch_val); + if (ips->gpu_raise) + symbol_put(i915_gpu_raise); + if (ips->gpu_lower) + symbol_put(i915_gpu_lower); + if (ips->gpu_busy) + symbol_put(i915_gpu_busy); + if (ips->gpu_turbo_disable) + symbol_put(i915_gpu_turbo_disable); + + rdmsrl(TURBO_POWER_CURRENT_LIMIT, turbo_override); + turbo_override &= ~(TURBO_TDC_OVR_EN | TURBO_TDP_OVR_EN); + wrmsrl(TURBO_POWER_CURRENT_LIMIT, turbo_override); + wrmsrl(TURBO_POWER_CURRENT_LIMIT, ips->orig_turbo_limit); + + free_irq(ips->dev->irq, ips); + if (ips->adjust) + kthread_stop(ips->adjust); + if (ips->monitor) + kthread_stop(ips->monitor); + iounmap(ips->regmap); + pci_release_regions(dev); + kfree(ips); + dev_dbg(&dev->dev, "IPS driver removed\n"); +} + +#ifdef CONFIG_PM +static int ips_suspend(struct pci_dev *dev, pm_message_t state) +{ + return 0; +} + +static int ips_resume(struct pci_dev *dev) +{ + return 0; +} +#else +#define ips_suspend NULL +#define ips_resume NULL +#endif /* CONFIG_PM */ + +static void ips_shutdown(struct pci_dev *dev) +{ +} + +static struct pci_driver ips_pci_driver = { + .name = "intel ips", + .id_table = ips_id_table, + .probe = ips_probe, + .remove = ips_remove, + .suspend = ips_suspend, + .resume = ips_resume, + .shutdown = ips_shutdown, +}; + +static int __init ips_init(void) +{ + return pci_register_driver(&ips_pci_driver); +} +module_init(ips_init); + +static void ips_exit(void) +{ + pci_unregister_driver(&ips_pci_driver); + return; +} +module_exit(ips_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Jesse Barnes "); +MODULE_DESCRIPTION("Intelligent Power Sharing Driver"); --- linux-2.6.35.orig/drivers/platform/x86/dell-laptop.c +++ linux-2.6.35/drivers/platform/x86/dell-laptop.c @@ -116,6 +116,13 @@ }, }, { + .ident = "Dell Mini 1012", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1012"), + }, + }, + { .ident = "Dell Inspiron 11z", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), --- linux-2.6.35.orig/drivers/platform/x86/dell-wmi.c +++ linux-2.6.35/drivers/platform/x86/dell-wmi.c @@ -221,7 +221,7 @@ return; } - if (dell_new_hk_type) + if (dell_new_hk_type || buffer_entry[1] == 0x0) reported_key = (int)buffer_entry[2]; else reported_key = (int)buffer_entry[1] & 0xffff; --- linux-2.6.35.orig/drivers/platform/x86/sony-laptop.c +++ linux-2.6.35/drivers/platform/x86/sony-laptop.c @@ -1447,6 +1447,10 @@ struct sonypi_event *events; }; +struct sony_pic_quirk_entry { + u8 set_wwan_power; +}; + struct sony_pic_dev { struct acpi_device *acpi_dev; struct sony_pic_irq *cur_irq; @@ -1457,6 +1461,7 @@ struct sonypi_eventtypes *event_types; int (*handle_irq)(const u8, const u8); int model; + struct sony_pic_quirk_entry *quirks; u16 evport_offset; u8 camera_power; u8 bluetooth_power; @@ -2887,6 +2892,12 @@ if (result) goto err_remove_pf; + if (spic_dev.quirks && spic_dev.quirks->set_wwan_power) { + /* + * Power isn't enabled by default. + */ + __sony_pic_set_wwanpower(1); + } return 0; err_remove_pf: @@ -2957,6 +2968,16 @@ }, }; +static struct sony_pic_quirk_entry sony_pic_vaio_vgn = { + .set_wwan_power = 1, +}; + +static int dmi_matched(const struct dmi_system_id *dmi) +{ + spic_dev.quirks = dmi->driver_data; + return 0; +} + static struct dmi_system_id __initdata sonypi_dmi_table[] = { { .ident = "Sony Vaio", @@ -2971,6 +2992,8 @@ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), DMI_MATCH(DMI_PRODUCT_NAME, "VGN-"), }, + .callback = dmi_matched, + .driver_data = &sony_pic_vaio_vgn, }, { } }; --- linux-2.6.35.orig/drivers/platform/x86/compal-laptop.c +++ linux-2.6.35/drivers/platform/x86/compal-laptop.c @@ -259,6 +259,14 @@ .callback = dmi_check_cb }, { + .ident = "Dell Mini 1012", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1012"), + }, + .callback = dmi_check_cb + }, + { .ident = "Dell Inspiron 11z", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), @@ -375,5 +383,6 @@ MODULE_ALIAS("dmi:*:svnDellInc.:pnInspiron910:*"); MODULE_ALIAS("dmi:*:svnDellInc.:pnInspiron1010:*"); MODULE_ALIAS("dmi:*:svnDellInc.:pnInspiron1011:*"); +MODULE_ALIAS("dmi:*:svnDellInc.:pnInspiron1012:*"); MODULE_ALIAS("dmi:*:svnDellInc.:pnInspiron1110:*"); MODULE_ALIAS("dmi:*:svnDellInc.:pnInspiron1210:*"); --- linux-2.6.35.orig/drivers/platform/x86/hp-wmi.c +++ linux-2.6.35/drivers/platform/x86/hp-wmi.c @@ -58,6 +58,12 @@ HPWMI_WWAN = 2, }; +enum hp_wmi_event_ids { + HPWMI_DOCK_EVENT = 1, + HPWMI_BEZEL_BUTTON = 4, + HPWMI_WIRELESS = 5, +}; + static int __devinit hp_wmi_bios_setup(struct platform_device *device); static int __exit hp_wmi_bios_remove(struct platform_device *device); static int hp_wmi_resume_handler(struct device *device); @@ -338,7 +344,7 @@ struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL }; static struct key_entry *key; union acpi_object *obj; - int eventcode; + int eventcode, key_code; acpi_status status; status = wmi_get_event_data(value, &response); @@ -357,28 +363,32 @@ eventcode = *((u8 *) obj->buffer.pointer); kfree(obj); - if (eventcode == 0x4) - eventcode = hp_wmi_perform_query(HPWMI_HOTKEY_QUERY, 0, - 0); - key = hp_wmi_get_entry_by_scancode(eventcode); - if (key) { - switch (key->type) { - case KE_KEY: - input_report_key(hp_wmi_input_dev, - key->keycode, 1); - input_sync(hp_wmi_input_dev); - input_report_key(hp_wmi_input_dev, - key->keycode, 0); - input_sync(hp_wmi_input_dev); - break; - } - } else if (eventcode == 0x1) { + switch (eventcode) { + case HPWMI_DOCK_EVENT: input_report_switch(hp_wmi_input_dev, SW_DOCK, hp_wmi_dock_state()); input_report_switch(hp_wmi_input_dev, SW_TABLET_MODE, hp_wmi_tablet_state()); input_sync(hp_wmi_input_dev); - } else if (eventcode == 0x5) { + break; + case HPWMI_BEZEL_BUTTON: + key_code = hp_wmi_perform_query(HPWMI_HOTKEY_QUERY, 0, + 0); + key = hp_wmi_get_entry_by_scancode(key_code); + if (key) { + switch (key->type) { + case KE_KEY: + input_report_key(hp_wmi_input_dev, + key->keycode, 1); + input_sync(hp_wmi_input_dev); + input_report_key(hp_wmi_input_dev, + key->keycode, 0); + input_sync(hp_wmi_input_dev); + break; + } + } + break; + case HPWMI_WIRELESS: if (wifi_rfkill) rfkill_set_states(wifi_rfkill, hp_wmi_get_sw_state(HPWMI_WIFI), @@ -391,9 +401,12 @@ rfkill_set_states(wwan_rfkill, hp_wmi_get_sw_state(HPWMI_WWAN), hp_wmi_get_hw_state(HPWMI_WWAN)); - } else + break; + default: printk(KERN_INFO "HP WMI: Unknown key pressed - %x\n", eventcode); + break; + } } static int __init hp_wmi_input_setup(void) --- linux-2.6.35.orig/drivers/platform/x86/Kconfig +++ linux-2.6.35/drivers/platform/x86/Kconfig @@ -537,4 +537,14 @@ some embedded Intel x86 platforms. This is not needed for PC-type machines. +config INTEL_IPS + tristate "Intel Intelligent Power Sharing" + depends on ACPI + ---help--- + Intel Calpella platforms support dynamic power sharing between the + CPU and GPU, maximizing performance in a given TDP. This driver, + along with the CPU frequency and i915 drivers, provides that + functionality. If in doubt, say Y here; it will only load on + supported platforms. + endif # X86_PLATFORM_DEVICES --- linux-2.6.35.orig/drivers/platform/x86/Makefile +++ linux-2.6.35/drivers/platform/x86/Makefile @@ -26,3 +26,4 @@ obj-$(CONFIG_ACPI_TOSHIBA) += toshiba_acpi.o obj-$(CONFIG_TOSHIBA_BT_RFKILL) += toshiba_bluetooth.o obj-$(CONFIG_INTEL_SCU_IPC) += intel_scu_ipc.o +obj-$(CONFIG_INTEL_IPS) += intel_ips.o --- linux-2.6.35.orig/drivers/hwmon/k8temp.c +++ linux-2.6.35/drivers/hwmon/k8temp.c @@ -143,6 +143,37 @@ MODULE_DEVICE_TABLE(pci, k8temp_ids); +static int __devinit is_rev_g_desktop(u8 model) +{ + u32 brandidx; + + if (model < 0x69) + return 0; + + if (model == 0xc1 || model == 0x6c || model == 0x7c) + return 0; + + /* + * Differentiate between AM2 and ASB1. + * See "Constructing the processor Name String" in "Revision + * Guide for AMD NPT Family 0Fh Processors" (33610). + */ + brandidx = cpuid_ebx(0x80000001); + brandidx = (brandidx >> 9) & 0x1f; + + /* Single core */ + if ((model == 0x6f || model == 0x7f) && + (brandidx == 0x7 || brandidx == 0x9 || brandidx == 0xc)) + return 0; + + /* Dual core */ + if (model == 0x6b && + (brandidx == 0xb || brandidx == 0xc)) + return 0; + + return 1; +} + static int __devinit k8temp_probe(struct pci_dev *pdev, const struct pci_device_id *id) { @@ -179,9 +210,7 @@ "wrong - check erratum #141\n"); } - if ((model >= 0x69) && - !(model == 0xc1 || model == 0x6c || model == 0x7c || - model == 0x6b || model == 0x6f || model == 0x7f)) { + if (is_rev_g_desktop(model)) { /* * RevG desktop CPUs (i.e. no socket S1G1 or * ASB1 parts) need additional offset, --- linux-2.6.35.orig/drivers/hwmon/emc1403.c +++ linux-2.6.35/drivers/hwmon/emc1403.c @@ -275,7 +275,6 @@ res = sysfs_create_group(&client->dev.kobj, &m_thermal_gr); if (res) { dev_warn(&client->dev, "create group failed\n"); - hwmon_device_unregister(data->hwmon_dev); goto thermal_error1; } data->hwmon_dev = hwmon_device_register(&client->dev); --- linux-2.6.35.orig/drivers/hwmon/f75375s.c +++ linux-2.6.35/drivers/hwmon/f75375s.c @@ -79,7 +79,7 @@ #define F75375_REG_PWM2_DROP_DUTY 0x6C #define FAN_CTRL_LINEAR(nr) (4 + nr) -#define FAN_CTRL_MODE(nr) (5 + ((nr) * 2)) +#define FAN_CTRL_MODE(nr) (4 + ((nr) * 2)) /* * Data structures and manipulation thereof @@ -298,7 +298,7 @@ return -EINVAL; fanmode = f75375_read8(client, F75375_REG_FAN_TIMER); - fanmode = ~(3 << FAN_CTRL_MODE(nr)); + fanmode &= ~(3 << FAN_CTRL_MODE(nr)); switch (val) { case 0: /* Full speed */ @@ -350,7 +350,7 @@ mutex_lock(&data->update_lock); conf = f75375_read8(client, F75375_REG_CONFIG1); - conf = ~(1 << FAN_CTRL_LINEAR(nr)); + conf &= ~(1 << FAN_CTRL_LINEAR(nr)); if (val == 0) conf |= (1 << FAN_CTRL_LINEAR(nr)) ; --- linux-2.6.35.orig/drivers/hwmon/coretemp.c +++ linux-2.6.35/drivers/hwmon/coretemp.c @@ -36,6 +36,7 @@ #include #include #include +#include #define DRVNAME "coretemp" @@ -423,9 +424,18 @@ int err; struct platform_device *pdev; struct pdev_entry *pdev_entry; -#ifdef CONFIG_SMP struct cpuinfo_x86 *c = &cpu_data(cpu); -#endif + + /* + * CPUID.06H.EAX[0] indicates whether the CPU has thermal + * sensors. We check this bit only, all the early CPUs + * without thermal sensors will be filtered out. + */ + if (!cpu_has(c, X86_FEATURE_DTS)) { + printk(KERN_INFO DRVNAME ": CPU (model=0x%x)" + " has no thermal sensor.\n", c->x86_model); + return 0; + } mutex_lock(&pdev_list_mutex); @@ -480,17 +490,24 @@ return err; } -#ifdef CONFIG_HOTPLUG_CPU static void coretemp_device_remove(unsigned int cpu) { - struct pdev_entry *p, *n; + struct pdev_entry *p; + unsigned int i; + mutex_lock(&pdev_list_mutex); - list_for_each_entry_safe(p, n, &pdev_list, list) { - if (p->cpu == cpu) { - platform_device_unregister(p->pdev); - list_del(&p->list); - kfree(p); - } + list_for_each_entry(p, &pdev_list, list) { + if (p->cpu != cpu) + continue; + + platform_device_unregister(p->pdev); + list_del(&p->list); + mutex_unlock(&pdev_list_mutex); + kfree(p); + for_each_cpu(i, cpu_sibling_mask(cpu)) + if (i != cpu && !coretemp_device_add(i)) + break; + return; } mutex_unlock(&pdev_list_mutex); } @@ -515,12 +532,10 @@ static struct notifier_block coretemp_cpu_notifier __refdata = { .notifier_call = coretemp_cpu_callback, }; -#endif /* !CONFIG_HOTPLUG_CPU */ static int __init coretemp_init(void) { int i, err = -ENODEV; - struct pdev_entry *p, *n; /* quick check if we run Intel */ if (cpu_data(0).x86_vendor != X86_VENDOR_INTEL) @@ -530,43 +545,23 @@ if (err) goto exit; - for_each_online_cpu(i) { - struct cpuinfo_x86 *c = &cpu_data(i); - /* - * CPUID.06H.EAX[0] indicates whether the CPU has thermal - * sensors. We check this bit only, all the early CPUs - * without thermal sensors will be filtered out. - */ - if (c->cpuid_level >= 6 && (cpuid_eax(0x06) & 0x01)) { - err = coretemp_device_add(i); - if (err) - goto exit_devices_unreg; + for_each_online_cpu(i) + coretemp_device_add(i); - } else { - printk(KERN_INFO DRVNAME ": CPU (model=0x%x)" - " has no thermal sensor.\n", c->x86_model); - } - } +#ifndef CONFIG_HOTPLUG_CPU if (list_empty(&pdev_list)) { err = -ENODEV; goto exit_driver_unreg; } +#endif -#ifdef CONFIG_HOTPLUG_CPU register_hotcpu_notifier(&coretemp_cpu_notifier); -#endif return 0; -exit_devices_unreg: - mutex_lock(&pdev_list_mutex); - list_for_each_entry_safe(p, n, &pdev_list, list) { - platform_device_unregister(p->pdev); - list_del(&p->list); - kfree(p); - } - mutex_unlock(&pdev_list_mutex); +#ifndef CONFIG_HOTPLUG_CPU exit_driver_unreg: platform_driver_unregister(&coretemp_driver); +#endif exit: return err; } --- linux-2.6.35.orig/drivers/hwmon/ads7871.c +++ linux-2.6.35/drivers/hwmon/ads7871.c @@ -160,30 +160,12 @@ static int __devinit ads7871_probe(struct spi_device *spi) { - int status, ret, err = 0; + int ret, err; uint8_t val; struct ads7871_data *pdata; dev_dbg(&spi->dev, "probe\n"); - pdata = kzalloc(sizeof(struct ads7871_data), GFP_KERNEL); - if (!pdata) { - err = -ENOMEM; - goto exit; - } - - status = sysfs_create_group(&spi->dev.kobj, &ads7871_group); - if (status < 0) - goto error_free; - - pdata->hwmon_dev = hwmon_device_register(&spi->dev); - if (IS_ERR(pdata->hwmon_dev)) { - err = PTR_ERR(pdata->hwmon_dev); - goto error_remove; - } - - spi_set_drvdata(spi, pdata); - /* Configure the SPI bus */ spi->mode = (SPI_MODE_0); spi->bits_per_word = 8; @@ -201,6 +183,24 @@ we need to make sure we really have a chip*/ if (val != ret) { err = -ENODEV; + goto exit; + } + + pdata = kzalloc(sizeof(struct ads7871_data), GFP_KERNEL); + if (!pdata) { + err = -ENOMEM; + goto exit; + } + + err = sysfs_create_group(&spi->dev.kobj, &ads7871_group); + if (err < 0) + goto error_free; + + spi_set_drvdata(spi, pdata); + + pdata->hwmon_dev = hwmon_device_register(&spi->dev); + if (IS_ERR(pdata->hwmon_dev)) { + err = PTR_ERR(pdata->hwmon_dev); goto error_remove; } --- linux-2.6.35.orig/drivers/hwmon/pkgtemp.c +++ linux-2.6.35/drivers/hwmon/pkgtemp.c @@ -0,0 +1,455 @@ +/* + * pkgtemp.c - Linux kernel module for processor package hardware monitoring + * + * Copyright (C) 2010 Fenghua Yu + * + * Inspired from many hwmon drivers especially coretemp. + * + * This program is free software; 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 Street, Fifth Floor, Boston, MA + * 02110-1301 USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRVNAME "pkgtemp" + +enum { SHOW_TEMP, SHOW_TJMAX, SHOW_TTARGET, SHOW_LABEL, SHOW_NAME }; + +/* + * Functions declaration + */ + +static struct pkgtemp_data *pkgtemp_update_device(struct device *dev); + +struct pkgtemp_data { + struct device *hwmon_dev; + struct mutex update_lock; + const char *name; + u32 id; + u16 phys_proc_id; + char valid; /* zero until following fields are valid */ + unsigned long last_updated; /* in jiffies */ + int temp; + int tjmax; + int ttarget; + u8 alarm; +}; + +/* + * Sysfs stuff + */ + +static ssize_t show_name(struct device *dev, struct device_attribute + *devattr, char *buf) +{ + int ret; + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pkgtemp_data *data = dev_get_drvdata(dev); + + if (attr->index == SHOW_NAME) + ret = sprintf(buf, "%s\n", data->name); + else /* show label */ + ret = sprintf(buf, "physical id %d\n", + data->phys_proc_id); + return ret; +} + +static ssize_t show_alarm(struct device *dev, struct device_attribute + *devattr, char *buf) +{ + struct pkgtemp_data *data = pkgtemp_update_device(dev); + /* read the Out-of-spec log, never clear */ + return sprintf(buf, "%d\n", data->alarm); +} + +static ssize_t show_temp(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pkgtemp_data *data = pkgtemp_update_device(dev); + int err = 0; + + if (attr->index == SHOW_TEMP) + err = data->valid ? sprintf(buf, "%d\n", data->temp) : -EAGAIN; + else if (attr->index == SHOW_TJMAX) + err = sprintf(buf, "%d\n", data->tjmax); + else + err = sprintf(buf, "%d\n", data->ttarget); + return err; +} + +static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, show_temp, NULL, SHOW_TEMP); +static SENSOR_DEVICE_ATTR(temp1_crit, S_IRUGO, show_temp, NULL, SHOW_TJMAX); +static SENSOR_DEVICE_ATTR(temp1_max, S_IRUGO, show_temp, NULL, SHOW_TTARGET); +static DEVICE_ATTR(temp1_crit_alarm, S_IRUGO, show_alarm, NULL); +static SENSOR_DEVICE_ATTR(temp1_label, S_IRUGO, show_name, NULL, SHOW_LABEL); +static SENSOR_DEVICE_ATTR(name, S_IRUGO, show_name, NULL, SHOW_NAME); + +static struct attribute *pkgtemp_attributes[] = { + &sensor_dev_attr_name.dev_attr.attr, + &sensor_dev_attr_temp1_label.dev_attr.attr, + &dev_attr_temp1_crit_alarm.attr, + &sensor_dev_attr_temp1_input.dev_attr.attr, + &sensor_dev_attr_temp1_crit.dev_attr.attr, + NULL +}; + +static const struct attribute_group pkgtemp_group = { + .attrs = pkgtemp_attributes, +}; + +static struct pkgtemp_data *pkgtemp_update_device(struct device *dev) +{ + struct pkgtemp_data *data = dev_get_drvdata(dev); + unsigned int cpu; + int err; + + mutex_lock(&data->update_lock); + + if (!data->valid || time_after(jiffies, data->last_updated + HZ)) { + u32 eax, edx; + + data->valid = 0; + cpu = data->id; + err = rdmsr_on_cpu(cpu, MSR_IA32_PACKAGE_THERM_STATUS, + &eax, &edx); + if (!err) { + data->alarm = (eax >> 5) & 1; + data->temp = data->tjmax - (((eax >> 16) + & 0x7f) * 1000); + data->valid = 1; + } else + dev_dbg(dev, "Temperature data invalid (0x%x)\n", eax); + + data->last_updated = jiffies; + } + + mutex_unlock(&data->update_lock); + return data; +} + +static int get_tjmax(int cpu, struct device *dev) +{ + int default_tjmax = 100000; + int err; + u32 eax, edx; + u32 val; + + /* IA32_TEMPERATURE_TARGET contains the TjMax value */ + err = rdmsr_safe_on_cpu(cpu, MSR_IA32_TEMPERATURE_TARGET, &eax, &edx); + if (!err) { + val = (eax >> 16) & 0xff; + if ((val > 80) && (val < 120)) { + dev_info(dev, "TjMax is %d C.\n", val); + return val * 1000; + } + } + dev_warn(dev, "Unable to read TjMax from CPU.\n"); + return default_tjmax; +} + +static int __devinit pkgtemp_probe(struct platform_device *pdev) +{ + struct pkgtemp_data *data; + int err; + u32 eax, edx; +#ifdef CONFIG_SMP + struct cpuinfo_x86 *c = &cpu_data(pdev->id); +#endif + + data = kzalloc(sizeof(struct pkgtemp_data), GFP_KERNEL); + if (!data) { + err = -ENOMEM; + dev_err(&pdev->dev, "Out of memory\n"); + goto exit; + } + + data->id = pdev->id; +#ifdef CONFIG_SMP + data->phys_proc_id = c->phys_proc_id; +#endif + data->name = "pkgtemp"; + mutex_init(&data->update_lock); + + /* test if we can access the THERM_STATUS MSR */ + err = rdmsr_safe_on_cpu(data->id, MSR_IA32_PACKAGE_THERM_STATUS, + &eax, &edx); + if (err) { + dev_err(&pdev->dev, + "Unable to access THERM_STATUS MSR, giving up\n"); + goto exit_free; + } + + data->tjmax = get_tjmax(data->id, &pdev->dev); + platform_set_drvdata(pdev, data); + + err = rdmsr_safe_on_cpu(data->id, MSR_IA32_TEMPERATURE_TARGET, + &eax, &edx); + if (err) { + dev_warn(&pdev->dev, "Unable to read" + " IA32_TEMPERATURE_TARGET MSR\n"); + } else { + data->ttarget = data->tjmax - (((eax >> 8) & 0xff) * 1000); + err = device_create_file(&pdev->dev, + &sensor_dev_attr_temp1_max.dev_attr); + if (err) + goto exit_free; + } + + err = sysfs_create_group(&pdev->dev.kobj, &pkgtemp_group); + if (err) + goto exit_dev; + + data->hwmon_dev = hwmon_device_register(&pdev->dev); + if (IS_ERR(data->hwmon_dev)) { + err = PTR_ERR(data->hwmon_dev); + dev_err(&pdev->dev, "Class registration failed (%d)\n", + err); + goto exit_class; + } + + return 0; + +exit_class: + sysfs_remove_group(&pdev->dev.kobj, &pkgtemp_group); +exit_dev: + device_remove_file(&pdev->dev, &sensor_dev_attr_temp1_max.dev_attr); +exit_free: + kfree(data); +exit: + return err; +} + +static int __devexit pkgtemp_remove(struct platform_device *pdev) +{ + struct pkgtemp_data *data = platform_get_drvdata(pdev); + + hwmon_device_unregister(data->hwmon_dev); + sysfs_remove_group(&pdev->dev.kobj, &pkgtemp_group); + device_remove_file(&pdev->dev, &sensor_dev_attr_temp1_max.dev_attr); + platform_set_drvdata(pdev, NULL); + kfree(data); + return 0; +} + +static struct platform_driver pkgtemp_driver = { + .driver = { + .owner = THIS_MODULE, + .name = DRVNAME, + }, + .probe = pkgtemp_probe, + .remove = __devexit_p(pkgtemp_remove), +}; + +struct pdev_entry { + struct list_head list; + struct platform_device *pdev; + unsigned int cpu; +#ifdef CONFIG_SMP + u16 phys_proc_id; +#endif +}; + +static LIST_HEAD(pdev_list); +static DEFINE_MUTEX(pdev_list_mutex); + +static int __cpuinit pkgtemp_device_add(unsigned int cpu) +{ + int err; + struct platform_device *pdev; + struct pdev_entry *pdev_entry; + struct cpuinfo_x86 *c = &cpu_data(cpu); + + if (!cpu_has(c, X86_FEATURE_PTS)) + return 0; + + mutex_lock(&pdev_list_mutex); + +#ifdef CONFIG_SMP + /* Only keep the first entry in each package */ + list_for_each_entry(pdev_entry, &pdev_list, list) { + if (c->phys_proc_id == pdev_entry->phys_proc_id) { + err = 0; /* Not an error */ + goto exit; + } + } +#endif + + pdev = platform_device_alloc(DRVNAME, cpu); + if (!pdev) { + err = -ENOMEM; + printk(KERN_ERR DRVNAME ": Device allocation failed\n"); + goto exit; + } + + pdev_entry = kzalloc(sizeof(struct pdev_entry), GFP_KERNEL); + if (!pdev_entry) { + err = -ENOMEM; + goto exit_device_put; + } + + err = platform_device_add(pdev); + if (err) { + printk(KERN_ERR DRVNAME ": Device addition failed (%d)\n", + err); + goto exit_device_free; + } + +#ifdef CONFIG_SMP + pdev_entry->phys_proc_id = c->phys_proc_id; +#endif + pdev_entry->pdev = pdev; + pdev_entry->cpu = cpu; + list_add_tail(&pdev_entry->list, &pdev_list); + mutex_unlock(&pdev_list_mutex); + + return 0; + +exit_device_free: + kfree(pdev_entry); +exit_device_put: + platform_device_put(pdev); +exit: + mutex_unlock(&pdev_list_mutex); + return err; +} + +#ifdef CONFIG_HOTPLUG_CPU +static void pkgtemp_device_remove(unsigned int cpu) +{ + struct pdev_entry *p; + unsigned int i; + int err; + + mutex_lock(&pdev_list_mutex); + list_for_each_entry(p, &pdev_list, list) { + if (p->cpu != cpu) + continue; + + platform_device_unregister(p->pdev); + list_del(&p->list); + mutex_unlock(&pdev_list_mutex); + kfree(p); + for_each_cpu(i, cpu_core_mask(cpu)) { + if (i != cpu) { + err = pkgtemp_device_add(i); + if (!err) + break; + } + } + return; + } + mutex_unlock(&pdev_list_mutex); +} + +static int __cpuinit pkgtemp_cpu_callback(struct notifier_block *nfb, + unsigned long action, void *hcpu) +{ + unsigned int cpu = (unsigned long) hcpu; + + switch (action) { + case CPU_ONLINE: + case CPU_DOWN_FAILED: + pkgtemp_device_add(cpu); + break; + case CPU_DOWN_PREPARE: + pkgtemp_device_remove(cpu); + break; + } + return NOTIFY_OK; +} + +static struct notifier_block pkgtemp_cpu_notifier __refdata = { + .notifier_call = pkgtemp_cpu_callback, +}; +#endif /* !CONFIG_HOTPLUG_CPU */ + +static int __init pkgtemp_init(void) +{ + int i, err = -ENODEV; + struct pdev_entry *p, *n; + + /* quick check if we run Intel */ + if (cpu_data(0).x86_vendor != X86_VENDOR_INTEL) + goto exit; + + err = platform_driver_register(&pkgtemp_driver); + if (err) + goto exit; + + for_each_online_cpu(i) { + err = pkgtemp_device_add(i); + if (err) + goto exit_devices_unreg; + } + if (list_empty(&pdev_list)) { + err = -ENODEV; + goto exit_driver_unreg; + } + +#ifdef CONFIG_HOTPLUG_CPU + register_hotcpu_notifier(&pkgtemp_cpu_notifier); +#endif + return 0; + +exit_devices_unreg: + mutex_lock(&pdev_list_mutex); + list_for_each_entry_safe(p, n, &pdev_list, list) { + platform_device_unregister(p->pdev); + list_del(&p->list); + kfree(p); + } + mutex_unlock(&pdev_list_mutex); +exit_driver_unreg: + platform_driver_unregister(&pkgtemp_driver); +exit: + return err; +} + +static void __exit pkgtemp_exit(void) +{ + struct pdev_entry *p, *n; +#ifdef CONFIG_HOTPLUG_CPU + unregister_hotcpu_notifier(&pkgtemp_cpu_notifier); +#endif + mutex_lock(&pdev_list_mutex); + list_for_each_entry_safe(p, n, &pdev_list, list) { + platform_device_unregister(p->pdev); + list_del(&p->list); + kfree(p); + } + mutex_unlock(&pdev_list_mutex); + platform_driver_unregister(&pkgtemp_driver); +} + +MODULE_AUTHOR("Fenghua Yu "); +MODULE_DESCRIPTION("Intel processor package temperature monitor"); +MODULE_LICENSE("GPL"); + +module_init(pkgtemp_init) +module_exit(pkgtemp_exit) --- linux-2.6.35.orig/drivers/hwmon/hp_accel.c +++ linux-2.6.35/drivers/hwmon/hp_accel.c @@ -221,6 +221,8 @@ AXIS_DMI_MATCH("HPB442x", "HP ProBook 442", xy_rotated_left), AXIS_DMI_MATCH("HPB452x", "HP ProBook 452", y_inverted), AXIS_DMI_MATCH("HPB522x", "HP ProBook 522", xy_swap), + AXIS_DMI_MATCH("HPB532x", "HP ProBook 532", y_inverted), + AXIS_DMI_MATCH("Mini5102", "HP Mini 5102", xy_rotated_left_usd), { NULL, } /* Laptop models without axis info (yet): * "NC6910" "HP Compaq 6910" --- linux-2.6.35.orig/drivers/hwmon/pc87360.c +++ linux-2.6.35/drivers/hwmon/pc87360.c @@ -1610,11 +1610,8 @@ static int __init pc87360_device_add(unsigned short address) { - struct resource res = { - .name = "pc87360", - .flags = IORESOURCE_IO, - }; - int err, i; + struct resource res[3]; + int err, i, res_count; pdev = platform_device_alloc("pc87360", address); if (!pdev) { @@ -1623,22 +1620,28 @@ goto exit; } + memset(res, 0, 3 * sizeof(struct resource)); + res_count = 0; for (i = 0; i < 3; i++) { if (!extra_isa[i]) continue; - res.start = extra_isa[i]; - res.end = extra_isa[i] + PC87360_EXTENT - 1; + res[res_count].start = extra_isa[i]; + res[res_count].end = extra_isa[i] + PC87360_EXTENT - 1; + res[res_count].name = "pc87360", + res[res_count].flags = IORESOURCE_IO, - err = acpi_check_resource_conflict(&res); + err = acpi_check_resource_conflict(&res[res_count]); if (err) goto exit_device_put; - err = platform_device_add_resources(pdev, &res, 1); - if (err) { - printk(KERN_ERR "pc87360: Device resource[%d] " - "addition failed (%d)\n", i, err); - goto exit_device_put; - } + res_count++; + } + + err = platform_device_add_resources(pdev, res, res_count); + if (err) { + printk(KERN_ERR "pc87360: Device resources addition failed " + "(%d)\n", err); + goto exit_device_put; } err = platform_device_add(pdev); --- linux-2.6.35.orig/drivers/hwmon/Kconfig +++ linux-2.6.35/drivers/hwmon/Kconfig @@ -407,6 +407,13 @@ sensor inside your CPU. Most of the family 6 CPUs are supported. Check documentation/driver for details. +config SENSORS_PKGTEMP + tristate "Intel processor package temperature sensor" + depends on X86 && EXPERIMENTAL + help + If you say yes here you get support for the package level temperature + sensor inside your CPU. Check documentation/driver for details. + config SENSORS_IBMAEM tristate "IBM Active Energy Manager temperature/power sensors and control" select IPMI_SI --- linux-2.6.35.orig/drivers/hwmon/Makefile +++ linux-2.6.35/drivers/hwmon/Makefile @@ -39,6 +39,7 @@ obj-$(CONFIG_SENSORS_ASC7621) += asc7621.o obj-$(CONFIG_SENSORS_ATXP1) += atxp1.o obj-$(CONFIG_SENSORS_CORETEMP) += coretemp.o +obj-$(CONFIG_SENSORS_PKGTEMP) += pkgtemp.o obj-$(CONFIG_SENSORS_DME1737) += dme1737.o obj-$(CONFIG_SENSORS_DS1621) += ds1621.o obj-$(CONFIG_SENSORS_EMC1403) += emc1403.o --- linux-2.6.35.orig/drivers/message/fusion/mptscsih.c +++ linux-2.6.35/drivers/message/fusion/mptscsih.c @@ -2459,6 +2459,8 @@ ioc->name,sdev->tagged_supported, sdev->simple_tags, sdev->ordered_tags)); + blk_queue_dma_alignment (sdev->request_queue, 512 - 1); + return 0; } --- linux-2.6.35.orig/drivers/rtc/rtc-s3c.c +++ linux-2.6.35/drivers/rtc/rtc-s3c.c @@ -298,11 +298,6 @@ s3c_rtc_setaie(alrm->enabled); - if (alrm->enabled) - enable_irq_wake(s3c_rtc_alarmno); - else - disable_irq_wake(s3c_rtc_alarmno); - return 0; } @@ -547,6 +542,10 @@ ticnt_en_save &= S3C64XX_RTCCON_TICEN; } s3c_rtc_enable(pdev, 0); + + if (device_may_wakeup(&pdev->dev)) + enable_irq_wake(s3c_rtc_alarmno); + return 0; } @@ -560,6 +559,10 @@ tmp = readb(s3c_rtc_base + S3C2410_RTCCON); writeb(tmp | ticnt_en_save, s3c_rtc_base + S3C2410_RTCCON); } + + if (device_may_wakeup(&pdev->dev)) + disable_irq_wake(s3c_rtc_alarmno); + return 0; } #else --- linux-2.6.35.orig/drivers/xen/events.c +++ linux-2.6.35/drivers/xen/events.c @@ -107,6 +107,7 @@ #define VALID_EVTCHN(chn) ((chn) != 0) static struct irq_chip xen_dynamic_chip; +static struct irq_chip xen_percpu_chip; /* Constructor for packed IRQ information. */ static struct irq_info mk_unbound_info(void) @@ -363,7 +364,7 @@ irq = find_unbound_irq(); set_irq_chip_and_handler_name(irq, &xen_dynamic_chip, - handle_level_irq, "event"); + handle_edge_irq, "event"); evtchn_to_irq[evtchn] = irq; irq_info[irq] = mk_evtchn_info(evtchn); @@ -389,8 +390,8 @@ if (irq < 0) goto out; - set_irq_chip_and_handler_name(irq, &xen_dynamic_chip, - handle_level_irq, "ipi"); + set_irq_chip_and_handler_name(irq, &xen_percpu_chip, + handle_percpu_irq, "ipi"); bind_ipi.vcpu = cpu; if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_ipi, @@ -430,8 +431,8 @@ irq = find_unbound_irq(); - set_irq_chip_and_handler_name(irq, &xen_dynamic_chip, - handle_level_irq, "virq"); + set_irq_chip_and_handler_name(irq, &xen_percpu_chip, + handle_percpu_irq, "virq"); evtchn_to_irq[evtchn] = irq; irq_info[irq] = mk_virq_info(evtchn, virq); @@ -536,6 +537,7 @@ if (irq < 0) return irq; + irqflags |= IRQF_NO_SUSPEND; retval = request_irq(irq, handler, irqflags, devname, dev_id); if (retval != 0) { unbind_from_irq(irq); @@ -933,6 +935,16 @@ .retrigger = retrigger_dynirq, }; +static struct irq_chip xen_percpu_chip __read_mostly = { + .name = "xen-percpu", + + .disable = disable_dynirq, + .mask = disable_dynirq, + .unmask = enable_dynirq, + + .ack = ack_dynirq, +}; + void __init xen_init_IRQ(void) { int i; --- linux-2.6.35.orig/drivers/dma/ioat/dma.h +++ linux-2.6.35/drivers/dma/ioat/dma.h @@ -97,6 +97,7 @@ #define IOAT_RESET_PENDING 2 #define IOAT_KOBJ_INIT_FAIL 3 #define IOAT_RESHAPE_PENDING 4 + #define IOAT_RUN 5 struct timer_list timer; #define COMPLETION_TIMEOUT msecs_to_jiffies(100) #define IDLE_TIMEOUT msecs_to_jiffies(2000) --- linux-2.6.35.orig/drivers/dma/ioat/dma_v3.c +++ linux-2.6.35/drivers/dma/ioat/dma_v3.c @@ -361,7 +361,10 @@ chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET); dev_err(to_dev(chan), "%s: Channel halted (%x)\n", __func__, chanerr); - BUG_ON(is_ioat_bug(chanerr)); + if (test_bit(IOAT_RUN, &chan->state)) + BUG_ON(is_ioat_bug(chanerr)); + else /* we never got off the ground */ + return; } /* if we haven't made progress and we have already --- linux-2.6.35.orig/drivers/dma/ioat/dma_v2.c +++ linux-2.6.35/drivers/dma/ioat/dma_v2.c @@ -287,7 +287,10 @@ chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET); dev_err(to_dev(chan), "%s: Channel halted (%x)\n", __func__, chanerr); - BUG_ON(is_ioat_bug(chanerr)); + if (test_bit(IOAT_RUN, &chan->state)) + BUG_ON(is_ioat_bug(chanerr)); + else /* we never got off the ground */ + return; } /* if we haven't made progress and we have already @@ -492,6 +495,8 @@ return ring; } +void ioat2_free_chan_resources(struct dma_chan *c); + /* ioat2_alloc_chan_resources - allocate/initialize ioat2 descriptor ring * @chan: channel to be initialized */ @@ -500,6 +505,7 @@ struct ioat2_dma_chan *ioat = to_ioat2_chan(c); struct ioat_chan_common *chan = &ioat->base; struct ioat_ring_ent **ring; + u64 status; int order; /* have we already been set up? */ @@ -540,7 +546,20 @@ tasklet_enable(&chan->cleanup_task); ioat2_start_null_desc(ioat); - return 1 << ioat->alloc_order; + /* check that we got off the ground */ + udelay(5); + status = ioat_chansts(chan); + if (is_ioat_active(status) || is_ioat_idle(status)) { + set_bit(IOAT_RUN, &chan->state); + return 1 << ioat->alloc_order; + } else { + u32 chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET); + + dev_WARN(to_dev(chan), + "failed to start channel chanerr: %#x\n", chanerr); + ioat2_free_chan_resources(c); + return -EFAULT; + } } bool reshape_ring(struct ioat2_dma_chan *ioat, int order) @@ -778,6 +797,7 @@ del_timer_sync(&chan->timer); device->cleanup_fn((unsigned long) c); device->reset_hw(chan); + clear_bit(IOAT_RUN, &chan->state); spin_lock_bh(&chan->cleanup_lock); spin_lock_bh(&ioat->prep_lock); --- linux-2.6.35.orig/drivers/bluetooth/btusb.c +++ linux-2.6.35/drivers/bluetooth/btusb.c @@ -59,6 +59,9 @@ /* Generic Bluetooth USB device */ { USB_DEVICE_INFO(0xe0, 0x01, 0x01) }, + /* Apple iMac11,1 */ + { USB_DEVICE(0x05ac, 0x8215) }, + /* AVM BlueFRITZ! USB v2.0 */ { USB_DEVICE(0x057c, 0x3800) }, --- linux-2.6.35.orig/drivers/char/nozomi.c +++ linux-2.6.35/drivers/char/nozomi.c @@ -1611,6 +1611,8 @@ ret = tty_init_termios(tty); if (ret == 0) { tty_driver_kref_get(driver); + tty->count++; + tty->driver_data = port; driver->ttys[tty->index] = tty; } return ret; @@ -1639,7 +1641,7 @@ static int ntty_open(struct tty_struct *tty, struct file *filp) { - struct port *port = get_port_by_tty(tty); + struct port *port = tty->driver_data; return tty_port_open(&port->port, tty, filp); } --- linux-2.6.35.orig/drivers/char/vt_ioctl.c +++ linux-2.6.35/drivers/char/vt_ioctl.c @@ -38,6 +38,8 @@ #include #include +#define max_font_size 65536 + char vt_dont_switch; extern struct tty_driver *console_driver; @@ -1343,9 +1345,9 @@ goto out; } -void reset_vc(struct vc_data *vc) +void reset_vc(struct vc_data *vc, int mode) { - vc->vc_mode = KD_TEXT; + vc->vc_mode = mode; kbd_table[vc->vc_num].kbdmode = default_utf8 ? VC_UNICODE : VC_XLATE; vc->vt_mode.mode = VT_AUTO; vc->vt_mode.waitv = 0; @@ -1376,7 +1378,7 @@ */ if (tty) __do_SAK(tty); - reset_vc(vc); + reset_vc(vc, KD_TEXT); } release_console_sem(); } @@ -1591,6 +1593,7 @@ { unsigned char old_vc_mode; int old = fg_console; + struct vc_data *oldvc = vc_cons[fg_console].d; last_console = fg_console; @@ -1599,9 +1602,31 @@ * KD_TEXT mode or vice versa, which means we need to blank or * unblank the screen later. */ - old_vc_mode = vc_cons[fg_console].d->vc_mode; + old_vc_mode = oldvc->vc_mode; + +#if defined(CONFIG_VGA_CONSOLE) + if (old_vc_mode == KD_TEXT && oldvc->vc_sw == &vga_con && + oldvc->vc_sw->con_font_get) { + if (!oldvc->vc_font.data) + oldvc->vc_font.data = kmalloc(max_font_size, + GFP_KERNEL); + lock_kernel(); + oldvc->vc_sw->con_font_get(oldvc, &oldvc->vc_font); + unlock_kernel(); + } +#endif switch_screen(vc); +#if defined(CONFIG_VGA_CONSOLE) + if (vc->vc_mode == KD_TEXT && vc->vc_sw == &vga_con && + vc->vc_sw->con_font_set) { + if (vc->vc_font.data) { + lock_kernel(); + vc->vc_sw->con_font_set(vc, &vc->vc_font, 0); + unlock_kernel(); + } + } +#endif /* * This can't appear below a successful kill_pid(). If it did, * then the *blank_screen operation could occur while X, having @@ -1640,7 +1665,7 @@ * this outside of VT_PROCESS but there is no single process * to account for and tracking tty count may be undesirable. */ - reset_vc(vc); + reset_vc(vc, KD_TEXT); if (old_vc_mode != vc->vc_mode) { if (vc->vc_mode == KD_TEXT) @@ -1712,7 +1737,7 @@ * this outside of VT_PROCESS but there is no single process * to account for and tracking tty count may be undesirable. */ - reset_vc(vc); + reset_vc(vc, KD_TEXT); /* * Fall through to normal (VT_AUTO) handling of the switch... --- linux-2.6.35.orig/drivers/char/mem.c +++ linux-2.6.35/drivers/char/mem.c @@ -788,10 +788,11 @@ /* * capabilities for /dev/zero * - permits private mappings, "copies" are taken of the source of zeros + * - no writeback happens */ static struct backing_dev_info zero_bdi = { .name = "char/mem", - .capabilities = BDI_CAP_MAP_COPY, + .capabilities = BDI_CAP_MAP_COPY | BDI_CAP_NO_ACCT_AND_WRITEBACK, }; static const struct file_operations full_fops = { @@ -916,7 +917,7 @@ NULL, devlist[minor].name); } - return 0; + return tty_init(); } fs_initcall(chr_dev_init); --- linux-2.6.35.orig/drivers/char/vt.c +++ linux-2.6.35/drivers/char/vt.c @@ -104,6 +104,7 @@ #include #include #include +#include #define MAX_NR_CON_DRIVER 16 @@ -146,7 +147,7 @@ static int con_open(struct tty_struct *, struct file *); static void vc_init(struct vc_data *vc, unsigned int rows, - unsigned int cols, int do_clear); + unsigned int cols, int do_clear, int mode); static void gotoxy(struct vc_data *vc, int new_x, int new_y); static void save_cur(struct vc_data *vc); static void reset_terminal(struct vc_data *vc, int do_clear); @@ -167,6 +168,9 @@ static int cur_default = CUR_DEFAULT; module_param(cur_default, int, S_IRUGO | S_IWUSR); +int vt_handoff = -1; +module_param_named(handoff, vt_handoff, int, S_IRUGO | S_IWUSR); + /* * ignore_poke: don't unblank the screen when things are typed. This is * mainly for the privacy of braille terminal users. @@ -676,6 +680,13 @@ save_screen(old_vc); set_origin(old_vc); } + /* + * If we are switching away from a transparent VT the contents + * will be lost, convert it into a blank text console then + * it will be repainted blank if we ever switch back. + */ + if (old_vc->vc_mode == KD_TRANSPARENT) + old_vc->vc_mode = KD_TEXT; } else { hide_cursor(vc); redraw = 1; @@ -784,7 +795,7 @@ if (global_cursor_default == -1) global_cursor_default = 1; - vc_init(vc, vc->vc_rows, vc->vc_cols, 1); + vc_init(vc, vc->vc_rows, vc->vc_cols, 1, KD_TEXT); vcs_make_sysfs(currcons); atomic_notifier_call_chain(&vt_notifier_list, VT_ALLOCATE, ¶m); } @@ -2837,7 +2848,7 @@ module_param_named(underline, default_underline_color, int, S_IRUGO | S_IWUSR); static void vc_init(struct vc_data *vc, unsigned int rows, - unsigned int cols, int do_clear) + unsigned int cols, int do_clear, int mode) { int j, k ; @@ -2848,7 +2859,7 @@ set_origin(vc); vc->vc_pos = vc->vc_origin; - reset_vc(vc); + reset_vc(vc, mode); for (j=k=0; j<16; j++) { vc->vc_palette[k++] = default_red[j] ; vc->vc_palette[k++] = default_grn[j] ; @@ -2874,6 +2885,12 @@ struct vc_data *vc; unsigned int currcons = 0, i; + if (screen_info.flags & VIDEO_FLAGS_HANDOFF) { + printk(KERN_INFO "vt handoff: grub requested handoff (vt#8)\n"); + if (vt_handoff == -1) + vt_handoff = 8; + } + acquire_console_sem(); if (conswitchp) @@ -2905,15 +2922,30 @@ mod_timer(&console_timer, jiffies + (blankinterval * HZ)); } + if (vt_handoff >= 0) { + currcons = vt_handoff; + vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT); + INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK); + visual_init(vc, currcons, 1); + vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT); + vc_init(vc, vc->vc_rows, vc->vc_cols, 0, KD_TRANSPARENT); + } for (currcons = 0; currcons < MIN_NR_CONSOLES; currcons++) { + if (currcons == vt_handoff) + continue; vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT); INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK); visual_init(vc, currcons, 1); vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT); vc_init(vc, vc->vc_rows, vc->vc_cols, - currcons || !vc->vc_sw->con_save_screen); + currcons || !vc->vc_sw->con_save_screen, KD_TEXT); } currcons = fg_console = 0; + if (vt_handoff >= 0) { + printk(KERN_INFO "vt handoff: transparent VT on %d\n", + vt_handoff); + currcons = fg_console = vt_handoff; + } master_display_fg = vc = vc_cons[currcons].d; set_origin(vc); save_screen(vc); --- linux-2.6.35.orig/drivers/char/virtio_console.c +++ linux-2.6.35/drivers/char/virtio_console.c @@ -596,6 +596,10 @@ ssize_t ret; bool nonblock; + /* Userspace could be out to fool us */ + if (!count) + return 0; + port = filp->private_data; nonblock = filp->f_flags & O_NONBLOCK; @@ -642,7 +646,7 @@ poll_wait(filp, &port->waitqueue, wait); ret = 0; - if (port->inbuf) + if (!will_read_block(port)) ret |= POLLIN | POLLRDNORM; if (!will_write_block(port)) ret |= POLLOUT; --- linux-2.6.35.orig/drivers/char/tty_io.c +++ linux-2.6.35/drivers/char/tty_io.c @@ -3128,7 +3128,7 @@ * Ok, now we can initialize the rest of the tty devices and can count * on memory allocations, interrupts etc.. */ -static int __init tty_init(void) +int __init tty_init(void) { cdev_init(&tty_cdev, &tty_fops); if (cdev_add(&tty_cdev, MKDEV(TTYAUX_MAJOR, 0), 1) || @@ -3149,4 +3149,4 @@ #endif return 0; } -module_init(tty_init); + --- linux-2.6.35.orig/drivers/char/agp/intel-agp.c +++ linux-2.6.35/drivers/char/agp/intel-agp.c @@ -805,6 +805,8 @@ "G45/G43", NULL, &intel_i965_driver }, { PCI_DEVICE_ID_INTEL_B43_HB, PCI_DEVICE_ID_INTEL_B43_IG, "B43", NULL, &intel_i965_driver }, + { PCI_DEVICE_ID_INTEL_B43_1_HB, PCI_DEVICE_ID_INTEL_B43_1_IG, + "B43", NULL, &intel_i965_driver }, { PCI_DEVICE_ID_INTEL_G41_HB, PCI_DEVICE_ID_INTEL_G41_IG, "G41", NULL, &intel_i965_driver }, { PCI_DEVICE_ID_INTEL_IRONLAKE_D_HB, PCI_DEVICE_ID_INTEL_IRONLAKE_D_IG, @@ -815,17 +817,27 @@ "HD Graphics", NULL, &intel_i965_driver }, { PCI_DEVICE_ID_INTEL_IRONLAKE_MC2_HB, PCI_DEVICE_ID_INTEL_IRONLAKE_M_IG, "HD Graphics", NULL, &intel_i965_driver }, - { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_IG, - "Sandybridge", NULL, &intel_i965_driver }, - { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_IG, - "Sandybridge", NULL, &intel_i965_driver }, + { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT1_IG, + "Sandybridge", NULL, &intel_gen6_driver }, + { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT2_IG, + "Sandybridge", NULL, &intel_gen6_driver }, + { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT2_PLUS_IG, + "Sandybridge", NULL, &intel_gen6_driver }, + { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT1_IG, + "Sandybridge", NULL, &intel_gen6_driver }, + { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT2_IG, + "Sandybridge", NULL, &intel_gen6_driver }, + { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT2_PLUS_IG, + "Sandybridge", NULL, &intel_gen6_driver }, + { PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB, PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_IG, + "Sandybridge", NULL, &intel_gen6_driver }, { 0, 0, NULL, NULL, NULL } }; static int __devinit intel_gmch_probe(struct pci_dev *pdev, struct agp_bridge_data *bridge) { - int i; + int i, mask; bridge->driver = NULL; for (i = 0; intel_agp_chipsets[i].name != NULL; i++) { @@ -845,14 +857,19 @@ dev_info(&pdev->dev, "Intel %s Chipset\n", intel_agp_chipsets[i].name); - if (bridge->driver->mask_memory == intel_i965_mask_memory) { - if (pci_set_dma_mask(intel_private.pcidev, DMA_BIT_MASK(36))) - dev_err(&intel_private.pcidev->dev, - "set gfx device dma mask 36bit failed!\n"); - else - pci_set_consistent_dma_mask(intel_private.pcidev, - DMA_BIT_MASK(36)); - } + if (bridge->driver->mask_memory == intel_gen6_mask_memory) + mask = 40; + else if (bridge->driver->mask_memory == intel_i965_mask_memory) + mask = 36; + else + mask = 32; + + if (pci_set_dma_mask(intel_private.pcidev, DMA_BIT_MASK(mask))) + dev_err(&intel_private.pcidev->dev, + "set gfx device dma mask %d-bit failed!\n", mask); + else + pci_set_consistent_dma_mask(intel_private.pcidev, + DMA_BIT_MASK(mask)); return 1; } @@ -1036,6 +1053,7 @@ ID(PCI_DEVICE_ID_INTEL_IRONLAKE_MC2_HB), ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB), ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB), + ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB), { } }; --- linux-2.6.35.orig/drivers/char/agp/intel-agp.h +++ linux-2.6.35/drivers/char/agp/intel-agp.h @@ -178,6 +178,8 @@ #define PCI_DEVICE_ID_INTEL_Q33_IG 0x29D2 #define PCI_DEVICE_ID_INTEL_B43_HB 0x2E40 #define PCI_DEVICE_ID_INTEL_B43_IG 0x2E42 +#define PCI_DEVICE_ID_INTEL_B43_1_HB 0x2E90 +#define PCI_DEVICE_ID_INTEL_B43_1_IG 0x2E92 #define PCI_DEVICE_ID_INTEL_GM45_HB 0x2A40 #define PCI_DEVICE_ID_INTEL_GM45_IG 0x2A42 #define PCI_DEVICE_ID_INTEL_EAGLELAKE_HB 0x2E00 @@ -194,10 +196,16 @@ #define PCI_DEVICE_ID_INTEL_IRONLAKE_MA_HB 0x0062 #define PCI_DEVICE_ID_INTEL_IRONLAKE_MC2_HB 0x006a #define PCI_DEVICE_ID_INTEL_IRONLAKE_M_IG 0x0046 -#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB 0x0100 -#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_IG 0x0102 -#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB 0x0104 -#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_IG 0x0106 +#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB 0x0100 /* Desktop */ +#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT1_IG 0x0102 +#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT2_IG 0x0112 +#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_GT2_PLUS_IG 0x0122 +#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB 0x0104 /* Mobile */ +#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT1_IG 0x0106 +#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT2_IG 0x0116 +#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_GT2_PLUS_IG 0x0126 +#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB 0x0108 /* Server */ +#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_IG 0x010A /* cover 915 and 945 variants */ #define IS_I915 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_E7221_HB || \ @@ -224,7 +232,8 @@ agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_PINEVIEW_HB) #define IS_SNB (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB || \ - agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB) + agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB || \ + agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB) #define IS_G4X (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_EAGLELAKE_HB || \ agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q45_HB || \ --- linux-2.6.35.orig/drivers/char/agp/intel-gtt.c +++ linux-2.6.35/drivers/char/agp/intel-gtt.c @@ -25,6 +25,10 @@ #define USE_PCI_DMA_API 1 #endif +/* Max amount of stolen space, anything above will be returned to Linux */ +int intel_max_stolen = 32 * 1024 * 1024; +EXPORT_SYMBOL(intel_max_stolen); + static const struct aper_size_info_fixed intel_i810_sizes[] = { {64, 16384, 4}, @@ -581,8 +585,7 @@ gtt_entries = 0; break; } - } else if (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB || - agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB) { + } else if (IS_SNB) { /* * SandyBridge has new memory control reg at 0x50.w */ @@ -710,7 +713,12 @@ break; } } - if (gtt_entries > 0) { + if (!local && gtt_entries > intel_max_stolen) { + dev_info(&agp_bridge->dev->dev, + "detected %dK stolen memory, trimming to %dK\n", + gtt_entries / KB(1), intel_max_stolen / KB(1)); + gtt_entries = intel_max_stolen / KB(4); + } else if (gtt_entries > 0) { dev_info(&agp_bridge->dev->dev, "detected %dK %s memory\n", gtt_entries / KB(1), local ? "local" : "stolen"); gtt_entries /= KB(4); @@ -1052,11 +1060,11 @@ intel_i915_setup_chipset_flush(); } - if (intel_private.ifp_resource.start) { + if (intel_private.ifp_resource.start) intel_private.i9xx_flush_page = ioremap_nocache(intel_private.ifp_resource.start, PAGE_SIZE); - if (!intel_private.i9xx_flush_page) - dev_info(&intel_private.pcidev->dev, "can't ioremap flush page - no chipset flushing"); - } + if (!intel_private.i9xx_flush_page) + dev_err(&intel_private.pcidev->dev, + "can't ioremap flush page - no chipset flushing\n"); } static int intel_i9xx_configure(void) @@ -1309,6 +1317,16 @@ return addr | bridge->driver->masks[type].mask; } +static unsigned long intel_gen6_mask_memory(struct agp_bridge_data *bridge, + dma_addr_t addr, int type) +{ + /* gen6 has bit11-4 for physical addr bit39-32 */ + addr |= (addr >> 28) & 0xff0; + + /* Type checking must be done elsewhere */ + return addr | bridge->driver->masks[type].mask; +} + static void intel_i965_get_gtt_range(int *gtt_offset, int *gtt_size) { u16 snb_gmch_ctl; @@ -1328,6 +1346,7 @@ break; case PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB: case PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB: + case PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB: *gtt_offset = MB(2); pci_read_config_word(intel_private.pcidev, SNB_GMCH_CTRL, &snb_gmch_ctl); @@ -1517,6 +1536,39 @@ #endif }; +static const struct agp_bridge_driver intel_gen6_driver = { + .owner = THIS_MODULE, + .aperture_sizes = intel_i830_sizes, + .size_type = FIXED_APER_SIZE, + .num_aperture_sizes = 4, + .needs_scratch_page = true, + .configure = intel_i9xx_configure, + .fetch_size = intel_i9xx_fetch_size, + .cleanup = intel_i915_cleanup, + .mask_memory = intel_gen6_mask_memory, + .masks = intel_i810_masks, + .agp_enable = intel_i810_agp_enable, + .cache_flush = global_cache_flush, + .create_gatt_table = intel_i965_create_gatt_table, + .free_gatt_table = intel_i830_free_gatt_table, + .insert_memory = intel_i915_insert_entries, + .remove_memory = intel_i915_remove_entries, + .alloc_by_type = intel_i830_alloc_by_type, + .free_by_type = intel_i810_free_by_type, + .agp_alloc_page = agp_generic_alloc_page, + .agp_alloc_pages = agp_generic_alloc_pages, + .agp_destroy_page = agp_generic_destroy_page, + .agp_destroy_pages = agp_generic_destroy_pages, + .agp_type_to_mask_type = intel_i830_type_to_mask_type, + .chipset_flush = intel_i915_chipset_flush, +#ifdef USE_PCI_DMA_API + .agp_map_page = intel_agp_map_page, + .agp_unmap_page = intel_agp_unmap_page, + .agp_map_memory = intel_agp_map_memory, + .agp_unmap_memory = intel_agp_unmap_memory, +#endif +}; + static const struct agp_bridge_driver intel_g33_driver = { .owner = THIS_MODULE, .aperture_sizes = intel_i830_sizes, --- linux-2.6.35.orig/drivers/char/ipmi/ipmi_si_intf.c +++ linux-2.6.35/drivers/char/ipmi/ipmi_si_intf.c @@ -2176,6 +2176,14 @@ info->io.addr_data = res->start; info->io.regspacing = DEFAULT_REGSPACING; + res = pnp_get_resource(dev, + (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? + IORESOURCE_IO : IORESOURCE_MEM, + 1); + if (res) { + if (res->start > info->io.addr_data) + info->io.regspacing = res->start - info->io.addr_data; + } info->io.regsize = DEFAULT_REGSPACING; info->io.regshift = 0; --- linux-2.6.35.orig/drivers/power/apm_power.c +++ linux-2.6.35/drivers/power/apm_power.c @@ -233,6 +233,7 @@ empty_design_prop = POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN; now_prop = POWER_SUPPLY_PROP_ENERGY_NOW; avg_prop = POWER_SUPPLY_PROP_ENERGY_AVG; + break; case SOURCE_VOLTAGE: full_prop = POWER_SUPPLY_PROP_VOLTAGE_MAX; empty_prop = POWER_SUPPLY_PROP_VOLTAGE_MIN; --- linux-2.6.35.orig/drivers/ssb/driver_chipcommon.c +++ linux-2.6.35/drivers/ssb/driver_chipcommon.c @@ -235,6 +235,7 @@ return; /* We don't have a ChipCommon */ if (cc->dev->id.revision >= 11) cc->status = chipco_read32(cc, SSB_CHIPCO_CHIPSTAT); + ssb_dprintk(KERN_INFO PFX "chipcommon status is 0x%x\n", cc->status); ssb_pmu_init(cc); chipco_powercontrol_init(cc); ssb_chipco_set_clockmode(cc, SSB_CLKMODE_FAST); --- linux-2.6.35.orig/drivers/ssb/pci.c +++ linux-2.6.35/drivers/ssb/pci.c @@ -626,11 +626,22 @@ return -ENODEV; } if (bus->chipco.dev) { /* can be unavailible! */ - bus->sprom_offset = (bus->chipco.dev->id.revision < 31) ? - SSB_SPROM_BASE1 : SSB_SPROM_BASE31; + /* + * get SPROM offset: SSB_SPROM_BASE1 except for + * chipcommon rev >= 31 or chip ID is 0x4312 and + * chipcommon status & 3 == 2 + */ + if (bus->chipco.dev->id.revision >= 31) + bus->sprom_offset = SSB_SPROM_BASE31; + else if (bus->chip_id == 0x4312 && + (bus->chipco.status & 0x03) == 2) + bus->sprom_offset = SSB_SPROM_BASE31; + else + bus->sprom_offset = SSB_SPROM_BASE1; } else { bus->sprom_offset = SSB_SPROM_BASE1; } + ssb_dprintk(KERN_INFO PFX "SPROM offset is 0x%x\n", bus->sprom_offset); buf = kcalloc(SSB_SPROMSIZE_WORDS_R123, sizeof(u16), GFP_KERNEL); if (!buf) --- linux-2.6.35.orig/drivers/cdrom/cdrom.c +++ linux-2.6.35/drivers/cdrom/cdrom.c @@ -290,7 +290,7 @@ /* default compatibility mode */ static int autoclose=1; static int autoeject; -static int lockdoor = 1; +static int lockdoor = 0; /* will we ever get to use this... sigh. */ static int check_media_type; /* automatically restart mrw format */ --- linux-2.6.35.orig/drivers/staging/Kconfig +++ linux-2.6.35/drivers/staging/Kconfig @@ -147,5 +147,7 @@ source "drivers/staging/msm/Kconfig" +source "drivers/staging/lirc/Kconfig" + endif # !STAGING_EXCLUDE_BUILD endif # STAGING --- linux-2.6.35.orig/drivers/staging/Makefile +++ linux-2.6.35/drivers/staging/Makefile @@ -8,6 +8,7 @@ obj-$(CONFIG_VIDEO_GO7007) += go7007/ obj-$(CONFIG_VIDEO_CX25821) += cx25821/ obj-$(CONFIG_VIDEO_TM6000) += tm6000/ +obj-$(CONFIG_LIRC_STAGING) += lirc/ obj-$(CONFIG_USB_IP_COMMON) += usbip/ obj-$(CONFIG_W35UND) += winbond/ obj-$(CONFIG_PRISM2_USB) += wlan-ng/ --- linux-2.6.35.orig/drivers/staging/rt2860/usb_main_dev.c +++ linux-2.6.35/drivers/staging/rt2860/usb_main_dev.c @@ -44,6 +44,7 @@ {USB_DEVICE(0x07B8, 0x2870)}, /* AboCom */ {USB_DEVICE(0x07B8, 0x2770)}, /* AboCom */ {USB_DEVICE(0x0DF6, 0x0039)}, /* Sitecom 2770 */ + {USB_DEVICE(0x0DF6, 0x003F)}, /* Sitecom 2770 */ {USB_DEVICE(0x083A, 0x7512)}, /* Arcadyan 2770 */ {USB_DEVICE(0x0789, 0x0162)}, /* Logitec 2870 */ {USB_DEVICE(0x0789, 0x0163)}, /* Logitec 2870 */ @@ -64,6 +65,7 @@ {USB_DEVICE(0x14B2, 0x3C07)}, /* AL */ {USB_DEVICE(0x050D, 0x8053)}, /* Belkin */ {USB_DEVICE(0x050D, 0x825B)}, /* Belkin */ + {USB_DEVICE(0x050D, 0x935B)}, /* Belkin F6D4050 v2 */ {USB_DEVICE(0x14B2, 0x3C23)}, /* Airlink */ {USB_DEVICE(0x14B2, 0x3C27)}, /* Airlink */ {USB_DEVICE(0x07AA, 0x002F)}, /* Corega */ @@ -94,7 +96,8 @@ {USB_DEVICE(0x050d, 0x815c)}, {USB_DEVICE(0x1482, 0x3C09)}, /* Abocom */ {USB_DEVICE(0x14B2, 0x3C09)}, /* Alpha */ - {USB_DEVICE(0x04E8, 0x2018)}, /* samsung */ + {USB_DEVICE(0x04E8, 0x2018)}, /* samsung linkstick2 */ + {USB_DEVICE(0x1690, 0x0740)}, /* Askey */ {USB_DEVICE(0x5A57, 0x0280)}, /* Zinwell */ {USB_DEVICE(0x5A57, 0x0282)}, /* Zinwell */ {USB_DEVICE(0x7392, 0x7718)}, @@ -104,21 +107,34 @@ {USB_DEVICE(0x1737, 0x0071)}, /* Linksys WUSB600N */ {USB_DEVICE(0x0411, 0x00e8)}, /* Buffalo WLI-UC-G300N */ {USB_DEVICE(0x050d, 0x815c)}, /* Belkin F5D8053 */ + {USB_DEVICE(0x100D, 0x9031)}, /* Motorola 2770 */ #endif /* RT2870 // */ #ifdef RT3070 {USB_DEVICE(0x148F, 0x3070)}, /* Ralink 3070 */ {USB_DEVICE(0x148F, 0x3071)}, /* Ralink 3071 */ {USB_DEVICE(0x148F, 0x3072)}, /* Ralink 3072 */ {USB_DEVICE(0x0DB0, 0x3820)}, /* Ralink 3070 */ + {USB_DEVICE(0x0DB0, 0x871C)}, /* Ralink 3070 */ + {USB_DEVICE(0x0DB0, 0x822C)}, /* Ralink 3070 */ + {USB_DEVICE(0x0DB0, 0x871B)}, /* Ralink 3070 */ + {USB_DEVICE(0x0DB0, 0x822B)}, /* Ralink 3070 */ {USB_DEVICE(0x0DF6, 0x003E)}, /* Sitecom 3070 */ {USB_DEVICE(0x0DF6, 0x0042)}, /* Sitecom 3072 */ + {USB_DEVICE(0x0DF6, 0x0048)}, /* Sitecom 3070 */ + {USB_DEVICE(0x0DF6, 0x0047)}, /* Sitecom 3071 */ {USB_DEVICE(0x14B2, 0x3C12)}, /* AL 3070 */ {USB_DEVICE(0x18C5, 0x0012)}, /* Corega 3070 */ {USB_DEVICE(0x083A, 0x7511)}, /* Arcadyan 3070 */ + {USB_DEVICE(0x083A, 0xA701)}, /* SMC 3070 */ + {USB_DEVICE(0x083A, 0xA702)}, /* SMC 3072 */ {USB_DEVICE(0x1740, 0x9703)}, /* EnGenius 3070 */ {USB_DEVICE(0x1740, 0x9705)}, /* EnGenius 3071 */ {USB_DEVICE(0x1740, 0x9706)}, /* EnGenius 3072 */ + {USB_DEVICE(0x1740, 0x9707)}, /* EnGenius 3070 */ + {USB_DEVICE(0x1740, 0x9708)}, /* EnGenius 3071 */ + {USB_DEVICE(0x1740, 0x9709)}, /* EnGenius 3072 */ {USB_DEVICE(0x13D3, 0x3273)}, /* AzureWave 3070 */ + {USB_DEVICE(0x13D3, 0x3305)}, /* AzureWave 3070*/ {USB_DEVICE(0x1044, 0x800D)}, /* Gigabyte GN-WB32L 3070 */ {USB_DEVICE(0x2019, 0xAB25)}, /* Planex Communications, Inc. RT3070 */ {USB_DEVICE(0x07B8, 0x3070)}, /* AboCom 3070 */ @@ -131,18 +147,41 @@ {USB_DEVICE(0x07D1, 0x3C0D)}, /* D-Link 3070 */ {USB_DEVICE(0x07D1, 0x3C0E)}, /* D-Link 3070 */ {USB_DEVICE(0x07D1, 0x3C0F)}, /* D-Link 3070 */ + {USB_DEVICE(0x07D1, 0x3C16)}, /* D-Link 3070 */ + {USB_DEVICE(0x07D1, 0x3C17)}, /* D-Link 8070 */ {USB_DEVICE(0x1D4D, 0x000C)}, /* Pegatron Corporation 3070 */ {USB_DEVICE(0x1D4D, 0x000E)}, /* Pegatron Corporation 3070 */ {USB_DEVICE(0x5A57, 0x5257)}, /* Zinwell 3070 */ {USB_DEVICE(0x5A57, 0x0283)}, /* Zinwell 3072 */ {USB_DEVICE(0x04BB, 0x0945)}, /* I-O DATA 3072 */ + {USB_DEVICE(0x04BB, 0x0947)}, /* I-O DATA 3070 */ + {USB_DEVICE(0x04BB, 0x0948)}, /* I-O DATA 3072 */ {USB_DEVICE(0x203D, 0x1480)}, /* Encore 3070 */ + {USB_DEVICE(0x20B8, 0x8888)}, /* PARA INDUSTRIAL 3070 */ + {USB_DEVICE(0x0B05, 0x1784)}, /* Asus 3072 */ + {USB_DEVICE(0x203D, 0x14A9)}, /* Encore 3070*/ + {USB_DEVICE(0x0DB0, 0x899A)}, /* MSI 3070*/ + {USB_DEVICE(0x0DB0, 0x3870)}, /* MSI 3070*/ + {USB_DEVICE(0x0DB0, 0x870A)}, /* MSI 3070*/ + {USB_DEVICE(0x0DB0, 0x6899)}, /* MSI 3070 */ + {USB_DEVICE(0x0DB0, 0x3822)}, /* MSI 3070 */ + {USB_DEVICE(0x0DB0, 0x3871)}, /* MSI 3070 */ + {USB_DEVICE(0x0DB0, 0x871A)}, /* MSI 3070 */ + {USB_DEVICE(0x0DB0, 0x822A)}, /* MSI 3070 */ + {USB_DEVICE(0x0DB0, 0x3821)}, /* Ralink 3070 */ + {USB_DEVICE(0x0DB0, 0x821A)}, /* Ralink 3070 */ + {USB_DEVICE(0x083A, 0xA703)}, /* IO-MAGIC */ + {USB_DEVICE(0x13D3, 0x3307)}, /* Azurewave */ + {USB_DEVICE(0x13D3, 0x3321)}, /* Azurewave */ + {USB_DEVICE(0x07FA, 0x7712)}, /* Edimax */ + {USB_DEVICE(0x0789, 0x0166)}, /* Edimax */ + {USB_DEVICE(0x148F, 0x2070)}, /* Edimax */ #endif /* RT3070 // */ - {USB_DEVICE(0x0DF6, 0x003F)}, /* Sitecom WL-608 */ {USB_DEVICE(0x1737, 0x0077)}, /* Linksys WUSB54GC-EU v3 */ {USB_DEVICE(0x2001, 0x3C09)}, /* D-Link */ {USB_DEVICE(0x2001, 0x3C0A)}, /* D-Link 3072 */ {USB_DEVICE(0x2019, 0xED14)}, /* Planex Communications, Inc. */ + {USB_DEVICE(0x0411, 0x015D)}, /* Buffalo Airstation WLI-UC-GN */ {} /* Terminating entry */ }; --- linux-2.6.35.orig/drivers/staging/vt6655/wpactl.c +++ linux-2.6.35/drivers/staging/vt6655/wpactl.c @@ -766,9 +766,14 @@ DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "wpa_ie_len = %d\n", param->u.wpa_associate.wpa_ie_len); - if (param->u.wpa_associate.wpa_ie && - copy_from_user(&abyWPAIE[0], param->u.wpa_associate.wpa_ie, param->u.wpa_associate.wpa_ie_len)) - return -EINVAL; + if (param->u.wpa_associate.wpa_ie_len) { + if (!param->u.wpa_associate.wpa_ie) + return -EINVAL; + if (param->u.wpa_associate.wpa_ie_len > sizeof(abyWPAIE)) + return -EINVAL; + if (copy_from_user(&abyWPAIE[0], param->u.wpa_associate.wpa_ie, param->u.wpa_associate.wpa_ie_len)) + return -EFAULT; + } if (param->u.wpa_associate.mode == 1) pMgmt->eConfigMode = WMAC_CONFIG_IBSS_STA; --- linux-2.6.35.orig/drivers/staging/panel/panel.c +++ linux-2.6.35/drivers/staging/panel/panel.c @@ -2179,6 +2179,7 @@ if (pprt) { parport_release(pprt); parport_unregister_device(pprt); + pprt = NULL; } parport_unregister_driver(&panel_driver); printk(KERN_ERR "Panel driver version " PANEL_VERSION @@ -2228,6 +2229,7 @@ /* TODO: free all input signals */ parport_release(pprt); parport_unregister_device(pprt); + pprt = NULL; } parport_unregister_driver(&panel_driver); } --- linux-2.6.35.orig/drivers/staging/hv/ring_buffer.c +++ linux-2.6.35/drivers/staging/hv/ring_buffer.c @@ -192,8 +192,7 @@ static inline u64 GetRingBufferIndices(RING_BUFFER_INFO *RingInfo) { - return ((u64)RingInfo->RingBuffer->WriteIndex << 32) - || RingInfo->RingBuffer->ReadIndex; + return (u64)RingInfo->RingBuffer->WriteIndex << 32; } --- linux-2.6.35.orig/drivers/staging/hv/netvsc_drv.c +++ linux-2.6.35/drivers/staging/hv/netvsc_drv.c @@ -348,6 +348,9 @@ .ndo_stop = netvsc_close, .ndo_start_xmit = netvsc_start_xmit, .ndo_set_multicast_list = netvsc_set_multicast_list, + .ndo_change_mtu = eth_change_mtu, + .ndo_validate_addr = eth_validate_addr, + .ndo_set_mac_address = eth_mac_addr, }; static int netvsc_probe(struct device *device) --- linux-2.6.35.orig/drivers/staging/hv/storvsc_drv.c +++ linux-2.6.35/drivers/staging/hv/storvsc_drv.c @@ -526,7 +526,7 @@ /* ASSERT(orig_sgl[i].offset + orig_sgl[i].length <= PAGE_SIZE); */ - if (j == 0) + if (bounce_addr == 0) bounce_addr = (unsigned long)kmap_atomic(sg_page((&bounce_sgl[j])), KM_IRQ0); while (srclen) { @@ -587,7 +587,7 @@ destlen = orig_sgl[i].length; /* ASSERT(orig_sgl[i].offset + orig_sgl[i].length <= PAGE_SIZE); */ - if (j == 0) + if (bounce_addr == 0) bounce_addr = (unsigned long)kmap_atomic(sg_page((&bounce_sgl[j])), KM_IRQ0); while (destlen) { @@ -646,6 +646,7 @@ unsigned int request_size = 0; int i; struct scatterlist *sgl; + unsigned int sg_count = 0; DPRINT_ENTER(STORVSC_DRV); @@ -730,6 +731,7 @@ request->DataBuffer.Length = scsi_bufflen(scmnd); if (scsi_sg_count(scmnd)) { sgl = (struct scatterlist *)scsi_sglist(scmnd); + sg_count = scsi_sg_count(scmnd); /* check if we need to bounce the sgl */ if (do_bounce_buffer(sgl, scsi_sg_count(scmnd)) != -1) { @@ -764,15 +766,16 @@ scsi_sg_count(scmnd)); sgl = cmd_request->bounce_sgl; + sg_count = cmd_request->bounce_sgl_count; } request->DataBuffer.Offset = sgl[0].offset; - for (i = 0; i < scsi_sg_count(scmnd); i++) { + for (i = 0; i < sg_count; i++) { DPRINT_DBG(STORVSC_DRV, "sgl[%d] len %d offset %d\n", i, sgl[i].length, sgl[i].offset); request->DataBuffer.PfnArray[i] = - page_to_pfn(sg_page((&sgl[i]))); + page_to_pfn(sg_page((&sgl[i]))); } } else if (scsi_sglist(scmnd)) { /* ASSERT(scsi_bufflen(scmnd) <= PAGE_SIZE); */ --- linux-2.6.35.orig/drivers/staging/hv/Kconfig +++ linux-2.6.35/drivers/staging/hv/Kconfig @@ -17,7 +17,7 @@ config HYPERV_BLOCK tristate "Microsoft Hyper-V virtual block driver" - depends on BLOCK && SCSI && LBDAF + depends on BLOCK && SCSI && (LBDAF || 64BIT) default HYPERV help Select this option to enable the Hyper-V virtual block driver. --- linux-2.6.35.orig/drivers/staging/hv/storvsc_api.h +++ linux-2.6.35/drivers/staging/hv/storvsc_api.h @@ -28,10 +28,10 @@ #include "vmbus_api.h" /* Defines */ -#define STORVSC_RING_BUFFER_SIZE (10*PAGE_SIZE) +#define STORVSC_RING_BUFFER_SIZE (20*PAGE_SIZE) #define BLKVSC_RING_BUFFER_SIZE (20*PAGE_SIZE) -#define STORVSC_MAX_IO_REQUESTS 64 +#define STORVSC_MAX_IO_REQUESTS 128 /* * In Hyper-V, each port/path/target maps to 1 scsi host adapter. In --- linux-2.6.35.orig/drivers/staging/lirc/lirc_bt829.c +++ linux-2.6.35/drivers/staging/lirc/lirc_bt829.c @@ -0,0 +1,383 @@ +/* + * Remote control driver for the TV-card based on bt829 + * + * by Leonid Froenchenko + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You 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 +#include +#include +#include +#include +#include +#include + +#include + +static int poll_main(void); +static int atir_init_start(void); + +static void write_index(unsigned char index, unsigned int value); +static unsigned int read_index(unsigned char index); + +static void do_i2c_start(void); +static void do_i2c_stop(void); + +static void seems_wr_byte(unsigned char al); +static unsigned char seems_rd_byte(void); + +static unsigned int read_index(unsigned char al); +static void write_index(unsigned char ah, unsigned int edx); + +static void cycle_delay(int cycle); + +static void do_set_bits(unsigned char bl); +static unsigned char do_get_bits(void); + +#define DATA_PCI_OFF 0x7FFC00 +#define WAIT_CYCLE 20 + +#define DRIVER_NAME "lirc_bt829" + +static int debug; +#define dprintk(fmt, args...) \ + do { \ + if (debug) \ + printk(KERN_DEBUG DRIVER_NAME ": "fmt, ## args); \ + } while (0) + +static int atir_minor; +static unsigned long pci_addr_phys; +static unsigned char *pci_addr_lin; + +static struct lirc_driver atir_driver; + +static struct pci_dev *do_pci_probe(void) +{ + struct pci_dev *my_dev; + my_dev = pci_get_device(PCI_VENDOR_ID_ATI, + PCI_DEVICE_ID_ATI_264VT, NULL); + if (my_dev) { + printk(KERN_ERR DRIVER_NAME ": Using device: %s\n", + pci_name(my_dev)); + pci_addr_phys = 0; + if (my_dev->resource[0].flags & IORESOURCE_MEM) { + pci_addr_phys = my_dev->resource[0].start; + printk(KERN_INFO DRIVER_NAME ": memory at 0x%08X\n", + (unsigned int)pci_addr_phys); + } + if (pci_addr_phys == 0) { + printk(KERN_ERR DRIVER_NAME ": no memory resource ?\n"); + return NULL; + } + } else { + printk(KERN_ERR DRIVER_NAME ": pci_probe failed\n"); + return NULL; + } + return my_dev; +} + +static int atir_add_to_buf(void *data, struct lirc_buffer *buf) +{ + unsigned char key; + int status; + status = poll_main(); + key = (status >> 8) & 0xFF; + if (status & 0xFF) { + dprintk("reading key %02X\n", key); + lirc_buffer_write(buf, &key); + return 0; + } + return -ENODATA; +} + +static int atir_set_use_inc(void *data) +{ + dprintk("driver is opened\n"); + return 0; +} + +static void atir_set_use_dec(void *data) +{ + dprintk("driver is closed\n"); +} + +int init_module(void) +{ + struct pci_dev *pdev; + + pdev = do_pci_probe(); + if (pdev == NULL) + return 1; + + if (!atir_init_start()) + return 1; + + strcpy(atir_driver.name, "ATIR"); + atir_driver.minor = -1; + atir_driver.code_length = 8; + atir_driver.sample_rate = 10; + atir_driver.data = 0; + atir_driver.add_to_buf = atir_add_to_buf; + atir_driver.set_use_inc = atir_set_use_inc; + atir_driver.set_use_dec = atir_set_use_dec; + atir_driver.dev = &pdev->dev; + atir_driver.owner = THIS_MODULE; + + atir_minor = lirc_register_driver(&atir_driver); + if (atir_minor < 0) { + printk(KERN_ERR DRIVER_NAME ": failed to register driver!\n"); + return atir_minor; + } + dprintk("driver is registered on minor %d\n", atir_minor); + + return 0; +} + + +void cleanup_module(void) +{ + lirc_unregister_driver(atir_minor); +} + + +static int atir_init_start(void) +{ + pci_addr_lin = ioremap(pci_addr_phys + DATA_PCI_OFF, 0x400); + if (pci_addr_lin == 0) { + printk(KERN_INFO DRIVER_NAME ": pci mem must be mapped\n"); + return 0; + } + return 1; +} + +static void cycle_delay(int cycle) +{ + udelay(WAIT_CYCLE*cycle); +} + + +static int poll_main() +{ + unsigned char status_high, status_low; + + do_i2c_start(); + + seems_wr_byte(0xAA); + seems_wr_byte(0x01); + + do_i2c_start(); + + seems_wr_byte(0xAB); + + status_low = seems_rd_byte(); + status_high = seems_rd_byte(); + + do_i2c_stop(); + + return (status_high << 8) | status_low; +} + +static void do_i2c_start(void) +{ + do_set_bits(3); + cycle_delay(4); + + do_set_bits(1); + cycle_delay(7); + + do_set_bits(0); + cycle_delay(2); +} + +static void do_i2c_stop(void) +{ + unsigned char bits; + bits = do_get_bits() & 0xFD; + do_set_bits(bits); + cycle_delay(1); + + bits |= 1; + do_set_bits(bits); + cycle_delay(2); + + bits |= 2; + do_set_bits(bits); + bits = 3; + do_set_bits(bits); + cycle_delay(2); +} + +static void seems_wr_byte(unsigned char value) +{ + int i; + unsigned char reg; + + reg = do_get_bits(); + for (i = 0; i < 8; i++) { + if (value & 0x80) + reg |= 0x02; + else + reg &= 0xFD; + + do_set_bits(reg); + cycle_delay(1); + + reg |= 1; + do_set_bits(reg); + cycle_delay(1); + + reg &= 0xFE; + do_set_bits(reg); + cycle_delay(1); + value <<= 1; + } + cycle_delay(2); + + reg |= 2; + do_set_bits(reg); + + reg |= 1; + do_set_bits(reg); + + cycle_delay(1); + do_get_bits(); + + reg &= 0xFE; + do_set_bits(reg); + cycle_delay(3); +} + +static unsigned char seems_rd_byte(void) +{ + int i; + int rd_byte; + unsigned char bits_2, bits_1; + + bits_1 = do_get_bits() | 2; + do_set_bits(bits_1); + + rd_byte = 0; + for (i = 0; i < 8; i++) { + bits_1 &= 0xFE; + do_set_bits(bits_1); + cycle_delay(2); + + bits_1 |= 1; + do_set_bits(bits_1); + cycle_delay(1); + + bits_2 = do_get_bits(); + if (bits_2 & 2) + rd_byte |= 1; + + rd_byte <<= 1; + } + + bits_1 = 0; + if (bits_2 == 0) + bits_1 |= 2; + + do_set_bits(bits_1); + cycle_delay(2); + + bits_1 |= 1; + do_set_bits(bits_1); + cycle_delay(3); + + bits_1 &= 0xFE; + do_set_bits(bits_1); + cycle_delay(2); + + rd_byte >>= 1; + rd_byte &= 0xFF; + return rd_byte; +} + +static void do_set_bits(unsigned char new_bits) +{ + int reg_val; + reg_val = read_index(0x34); + if (new_bits & 2) { + reg_val &= 0xFFFFFFDF; + reg_val |= 1; + } else { + reg_val &= 0xFFFFFFFE; + reg_val |= 0x20; + } + reg_val |= 0x10; + write_index(0x34, reg_val); + + reg_val = read_index(0x31); + if (new_bits & 1) + reg_val |= 0x1000000; + else + reg_val &= 0xFEFFFFFF; + + reg_val |= 0x8000000; + write_index(0x31, reg_val); +} + +static unsigned char do_get_bits(void) +{ + unsigned char bits; + int reg_val; + + reg_val = read_index(0x34); + reg_val |= 0x10; + reg_val &= 0xFFFFFFDF; + write_index(0x34, reg_val); + + reg_val = read_index(0x34); + bits = 0; + if (reg_val & 8) + bits |= 2; + else + bits &= 0xFD; + + reg_val = read_index(0x31); + if (reg_val & 0x1000000) + bits |= 1; + else + bits &= 0xFE; + + return bits; +} + +static unsigned int read_index(unsigned char index) +{ + unsigned char *addr; + unsigned int value; + /* addr = pci_addr_lin + DATA_PCI_OFF + ((index & 0xFF) << 2); */ + addr = pci_addr_lin + ((index & 0xFF) << 2); + value = readl(addr); + return value; +} + +static void write_index(unsigned char index, unsigned int reg_val) +{ + unsigned char *addr; + addr = pci_addr_lin + ((index & 0xFF) << 2); + writel(reg_val, addr); +} + +MODULE_AUTHOR("Froenchenko Leonid"); +MODULE_DESCRIPTION("IR remote driver for bt829 based TV cards"); +MODULE_LICENSE("GPL"); + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Debug enabled or not"); --- linux-2.6.35.orig/drivers/staging/lirc/lirc_ite8709.c +++ linux-2.6.35/drivers/staging/lirc/lirc_ite8709.c @@ -0,0 +1,542 @@ +/* + * LIRC driver for ITE8709 CIR port + * + * Copyright (C) 2008 Grégory Lardière + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You 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 +#include +#include +#include +#include +#include + +#include +#include + +#define LIRC_DRIVER_NAME "lirc_ite8709" + +#define BUF_CHUNK_SIZE sizeof(int) +#define BUF_SIZE (128*BUF_CHUNK_SIZE) + +/* + * The ITE8709 device seems to be the combination of IT8512 superIO chip and + * a specific firmware running on the IT8512's embedded micro-controller. + * In addition of the embedded micro-controller, the IT8512 chip contains a + * CIR module and several other modules. A few modules are directly accessible + * by the host CPU, but most of them are only accessible by the + * micro-controller. The CIR module is only accessible by the micro-controller. + * The battery-backed SRAM module is accessible by the host CPU and the + * micro-controller. So one of the MC's firmware role is to act as a bridge + * between the host CPU and the CIR module. The firmware implements a kind of + * communication protocol using the SRAM module as a shared memory. The IT8512 + * specification is publicly available on ITE's web site, but the communication + * protocol is not, so it was reverse-engineered. + */ + +/* ITE8709 Registers addresses and values (reverse-engineered) */ +#define ITE8709_MODE 0x1a +#define ITE8709_REG_ADR 0x1b +#define ITE8709_REG_VAL 0x1c +#define ITE8709_IIR 0x1e /* Interrupt identification register */ +#define ITE8709_RFSR 0x1f /* Receiver FIFO status register */ +#define ITE8709_FIFO_START 0x20 + +#define ITE8709_MODE_READY 0X00 +#define ITE8709_MODE_WRITE 0X01 +#define ITE8709_MODE_READ 0X02 +#define ITE8709_IIR_RDAI 0x02 /* Receiver data available interrupt */ +#define ITE8709_IIR_RFOI 0x04 /* Receiver FIFO overrun interrupt */ +#define ITE8709_RFSR_MASK 0x3f /* FIFO byte count mask */ + +/* + * IT8512 CIR-module registers addresses and values + * (from IT8512 E/F specification v0.4.1) + */ +#define IT8512_REG_MSTCR 0x01 /* Master control register */ +#define IT8512_REG_IER 0x02 /* Interrupt enable register */ +#define IT8512_REG_CFR 0x04 /* Carrier frequency register */ +#define IT8512_REG_RCR 0x05 /* Receive control register */ +#define IT8512_REG_BDLR 0x08 /* Baud rate divisor low byte register */ +#define IT8512_REG_BDHR 0x09 /* Baud rate divisor high byte register */ + +#define IT8512_MSTCR_RESET 0x01 /* Reset registers to default value */ +#define IT8512_MSTCR_FIFOCLR 0x02 /* Clear FIFO */ +#define IT8512_MSTCR_FIFOTL_7 0x04 /* FIFO threshold level : 7 */ +#define IT8512_MSTCR_FIFOTL_25 0x0c /* FIFO threshold level : 25 */ +#define IT8512_IER_RDAIE 0x02 /* Enable data interrupt request */ +#define IT8512_IER_RFOIE 0x04 /* Enable FIFO overrun interrupt req */ +#define IT8512_IER_IEC 0x80 /* Enable interrupt request */ +#define IT8512_CFR_CF_36KHZ 0x09 /* Carrier freq : low speed, 36kHz */ +#define IT8512_RCR_RXDCR_1 0x01 /* Demodulation carrier range : 1 */ +#define IT8512_RCR_RXACT 0x08 /* Receiver active */ +#define IT8512_RCR_RXEN 0x80 /* Receiver enable */ +#define IT8512_BDR_6 6 /* Baud rate divisor : 6 */ + +/* Actual values used by this driver */ +#define CFG_FIFOTL IT8512_MSTCR_FIFOTL_25 +#define CFG_CR_FREQ IT8512_CFR_CF_36KHZ +#define CFG_DCR IT8512_RCR_RXDCR_1 +#define CFG_BDR IT8512_BDR_6 +#define CFG_TIMEOUT 100000 /* Rearm interrupt when a space is > 100 ms */ + +static int debug; + +struct ite8709_device { + int use_count; + int io; + int irq; + spinlock_t hardware_lock; + unsigned long long acc_pulse; + unsigned long long acc_space; + char lastbit; + struct timeval last_tv; + struct lirc_driver driver; + struct tasklet_struct tasklet; + char force_rearm; + char rearmed; + char device_busy; +}; + +#define dprintk(fmt, args...) \ + do { \ + if (debug) \ + printk(KERN_DEBUG LIRC_DRIVER_NAME ": " \ + fmt, ## args); \ + } while (0) + + +static unsigned char ite8709_read(struct ite8709_device *dev, + unsigned char port) +{ + outb(port, dev->io); + return inb(dev->io+1); +} + +static void ite8709_write(struct ite8709_device *dev, unsigned char port, + unsigned char data) +{ + outb(port, dev->io); + outb(data, dev->io+1); +} + +static void ite8709_wait_device(struct ite8709_device *dev) +{ + int i = 0; + /* + * loop until device tells it's ready to continue + * iterations count is usually ~750 but can sometimes achieve 13000 + */ + for (i = 0; i < 15000; i++) { + udelay(2); + if (ite8709_read(dev, ITE8709_MODE) == ITE8709_MODE_READY) + break; + } +} + +static void ite8709_write_register(struct ite8709_device *dev, + unsigned char reg_adr, unsigned char reg_value) +{ + ite8709_wait_device(dev); + + ite8709_write(dev, ITE8709_REG_VAL, reg_value); + ite8709_write(dev, ITE8709_REG_ADR, reg_adr); + ite8709_write(dev, ITE8709_MODE, ITE8709_MODE_WRITE); +} + +static void ite8709_init_hardware(struct ite8709_device *dev) +{ + spin_lock_irq(&dev->hardware_lock); + dev->device_busy = 1; + spin_unlock_irq(&dev->hardware_lock); + + ite8709_write_register(dev, IT8512_REG_BDHR, (CFG_BDR >> 8) & 0xff); + ite8709_write_register(dev, IT8512_REG_BDLR, CFG_BDR & 0xff); + ite8709_write_register(dev, IT8512_REG_CFR, CFG_CR_FREQ); + ite8709_write_register(dev, IT8512_REG_IER, + IT8512_IER_IEC | IT8512_IER_RFOIE | IT8512_IER_RDAIE); + ite8709_write_register(dev, IT8512_REG_RCR, CFG_DCR); + ite8709_write_register(dev, IT8512_REG_MSTCR, + CFG_FIFOTL | IT8512_MSTCR_FIFOCLR); + ite8709_write_register(dev, IT8512_REG_RCR, + IT8512_RCR_RXEN | IT8512_RCR_RXACT | CFG_DCR); + + spin_lock_irq(&dev->hardware_lock); + dev->device_busy = 0; + spin_unlock_irq(&dev->hardware_lock); + + tasklet_enable(&dev->tasklet); +} + +static void ite8709_drop_hardware(struct ite8709_device *dev) +{ + tasklet_disable(&dev->tasklet); + + spin_lock_irq(&dev->hardware_lock); + dev->device_busy = 1; + spin_unlock_irq(&dev->hardware_lock); + + ite8709_write_register(dev, IT8512_REG_RCR, 0); + ite8709_write_register(dev, IT8512_REG_MSTCR, + IT8512_MSTCR_RESET | IT8512_MSTCR_FIFOCLR); + + spin_lock_irq(&dev->hardware_lock); + dev->device_busy = 0; + spin_unlock_irq(&dev->hardware_lock); +} + +static int ite8709_set_use_inc(void *data) +{ + struct ite8709_device *dev; + dev = data; + if (dev->use_count == 0) + ite8709_init_hardware(dev); + dev->use_count++; + return 0; +} + +static void ite8709_set_use_dec(void *data) +{ + struct ite8709_device *dev; + dev = data; + dev->use_count--; + if (dev->use_count == 0) + ite8709_drop_hardware(dev); +} + +static void ite8709_add_read_queue(struct ite8709_device *dev, int flag, + unsigned long long val) +{ + int value; + + dprintk("add a %llu usec %s\n", val, flag ? "pulse" : "space"); + + value = (val > PULSE_MASK) ? PULSE_MASK : val; + if (flag) + value |= PULSE_BIT; + + if (!lirc_buffer_full(dev->driver.rbuf)) { + lirc_buffer_write(dev->driver.rbuf, (void *) &value); + wake_up(&dev->driver.rbuf->wait_poll); + } +} + +static irqreturn_t ite8709_interrupt(int irq, void *dev_id) +{ + unsigned char data; + int iir, rfsr, i; + int fifo = 0; + char bit; + struct timeval curr_tv; + + /* Bit duration in microseconds */ + const unsigned long bit_duration = 1000000ul / (115200 / CFG_BDR); + + struct ite8709_device *dev; + dev = dev_id; + + /* + * If device is busy, we simply discard data because we are in one of + * these two cases : shutting down or rearming the device, so this + * doesn't really matter and this avoids waiting too long in IRQ ctx + */ + spin_lock(&dev->hardware_lock); + if (dev->device_busy) { + spin_unlock(&dev->hardware_lock); + return IRQ_RETVAL(IRQ_HANDLED); + } + + iir = ite8709_read(dev, ITE8709_IIR); + + switch (iir) { + case ITE8709_IIR_RFOI: + dprintk("fifo overrun, scheduling forced rearm just in case\n"); + dev->force_rearm = 1; + tasklet_schedule(&dev->tasklet); + spin_unlock(&dev->hardware_lock); + return IRQ_RETVAL(IRQ_HANDLED); + + case ITE8709_IIR_RDAI: + rfsr = ite8709_read(dev, ITE8709_RFSR); + fifo = rfsr & ITE8709_RFSR_MASK; + if (fifo > 32) + fifo = 32; + dprintk("iir: 0x%x rfsr: 0x%x fifo: %d\n", iir, rfsr, fifo); + + if (dev->rearmed) { + do_gettimeofday(&curr_tv); + dev->acc_space += 1000000ull + * (curr_tv.tv_sec - dev->last_tv.tv_sec) + + (curr_tv.tv_usec - dev->last_tv.tv_usec); + dev->rearmed = 0; + } + for (i = 0; i < fifo; i++) { + data = ite8709_read(dev, i+ITE8709_FIFO_START); + data = ~data; + /* Loop through */ + for (bit = 0; bit < 8; ++bit) { + if ((data >> bit) & 1) { + dev->acc_pulse += bit_duration; + if (dev->lastbit == 0) { + ite8709_add_read_queue(dev, 0, + dev->acc_space); + dev->acc_space = 0; + } + } else { + dev->acc_space += bit_duration; + if (dev->lastbit == 1) { + ite8709_add_read_queue(dev, 1, + dev->acc_pulse); + dev->acc_pulse = 0; + } + } + dev->lastbit = (data >> bit) & 1; + } + } + ite8709_write(dev, ITE8709_RFSR, 0); + + if (dev->acc_space > CFG_TIMEOUT) { + dprintk("scheduling rearm IRQ\n"); + do_gettimeofday(&dev->last_tv); + dev->force_rearm = 0; + tasklet_schedule(&dev->tasklet); + } + + spin_unlock(&dev->hardware_lock); + return IRQ_RETVAL(IRQ_HANDLED); + + default: + /* not our irq */ + dprintk("unknown IRQ (shouldn't happen) !!\n"); + spin_unlock(&dev->hardware_lock); + return IRQ_RETVAL(IRQ_NONE); + } +} + +static void ite8709_rearm_irq(unsigned long data) +{ + struct ite8709_device *dev; + unsigned long flags; + dev = (struct ite8709_device *) data; + + spin_lock_irqsave(&dev->hardware_lock, flags); + dev->device_busy = 1; + spin_unlock_irqrestore(&dev->hardware_lock, flags); + + if (dev->force_rearm || dev->acc_space > CFG_TIMEOUT) { + dprintk("rearming IRQ\n"); + ite8709_write_register(dev, IT8512_REG_RCR, + IT8512_RCR_RXACT | CFG_DCR); + ite8709_write_register(dev, IT8512_REG_MSTCR, + CFG_FIFOTL | IT8512_MSTCR_FIFOCLR); + ite8709_write_register(dev, IT8512_REG_RCR, + IT8512_RCR_RXEN | IT8512_RCR_RXACT | CFG_DCR); + if (!dev->force_rearm) + dev->rearmed = 1; + dev->force_rearm = 0; + } + + spin_lock_irqsave(&dev->hardware_lock, flags); + dev->device_busy = 0; + spin_unlock_irqrestore(&dev->hardware_lock, flags); +} + +static int ite8709_cleanup(struct ite8709_device *dev, int stage, int errno, + char *msg) +{ + if (msg != NULL) + printk(KERN_ERR LIRC_DRIVER_NAME ": %s\n", msg); + + switch (stage) { + case 6: + if (dev->use_count > 0) + ite8709_drop_hardware(dev); + case 5: + free_irq(dev->irq, dev); + case 4: + release_region(dev->io, 2); + case 3: + lirc_unregister_driver(dev->driver.minor); + case 2: + lirc_buffer_free(dev->driver.rbuf); + kfree(dev->driver.rbuf); + case 1: + kfree(dev); + case 0: + ; + } + + return errno; +} + +static int __devinit ite8709_pnp_probe(struct pnp_dev *dev, + const struct pnp_device_id *dev_id) +{ + struct lirc_driver *driver; + struct ite8709_device *ite8709_dev; + int ret; + + /* Check resources validity */ + if (!pnp_irq_valid(dev, 0)) + return ite8709_cleanup(NULL, 0, -ENODEV, "invalid IRQ"); + if (!pnp_port_valid(dev, 2)) + return ite8709_cleanup(NULL, 0, -ENODEV, "invalid IO port"); + + /* Allocate memory for device struct */ + ite8709_dev = kzalloc(sizeof(struct ite8709_device), GFP_KERNEL); + if (ite8709_dev == NULL) + return ite8709_cleanup(NULL, 0, -ENOMEM, "kzalloc failed"); + pnp_set_drvdata(dev, ite8709_dev); + + /* Initialize device struct */ + ite8709_dev->use_count = 0; + ite8709_dev->irq = pnp_irq(dev, 0); + ite8709_dev->io = pnp_port_start(dev, 2); + ite8709_dev->hardware_lock = + __SPIN_LOCK_UNLOCKED(ite8709_dev->hardware_lock); + ite8709_dev->acc_pulse = 0; + ite8709_dev->acc_space = 0; + ite8709_dev->lastbit = 0; + do_gettimeofday(&ite8709_dev->last_tv); + tasklet_init(&ite8709_dev->tasklet, ite8709_rearm_irq, + (long) ite8709_dev); + ite8709_dev->force_rearm = 0; + ite8709_dev->rearmed = 0; + ite8709_dev->device_busy = 0; + + /* Initialize driver struct */ + driver = &ite8709_dev->driver; + strcpy(driver->name, LIRC_DRIVER_NAME); + driver->minor = -1; + driver->code_length = sizeof(int) * 8; + driver->sample_rate = 0; + driver->features = LIRC_CAN_REC_MODE2; + driver->data = ite8709_dev; + driver->add_to_buf = NULL; + driver->set_use_inc = ite8709_set_use_inc; + driver->set_use_dec = ite8709_set_use_dec; + driver->dev = &dev->dev; + driver->owner = THIS_MODULE; + + /* Initialize LIRC buffer */ + driver->rbuf = kmalloc(sizeof(struct lirc_buffer), GFP_KERNEL); + if (!driver->rbuf) + return ite8709_cleanup(ite8709_dev, 1, -ENOMEM, + "can't allocate lirc_buffer"); + if (lirc_buffer_init(driver->rbuf, BUF_CHUNK_SIZE, BUF_SIZE)) + return ite8709_cleanup(ite8709_dev, 1, -ENOMEM, + "lirc_buffer_init() failed"); + + /* Register LIRC driver */ + ret = lirc_register_driver(driver); + if (ret < 0) + return ite8709_cleanup(ite8709_dev, 2, ret, + "lirc_register_driver() failed"); + + /* Reserve I/O port access */ + if (!request_region(ite8709_dev->io, 2, LIRC_DRIVER_NAME)) + return ite8709_cleanup(ite8709_dev, 3, -EBUSY, + "i/o port already in use"); + + /* Reserve IRQ line */ + ret = request_irq(ite8709_dev->irq, ite8709_interrupt, 0, + LIRC_DRIVER_NAME, ite8709_dev); + if (ret < 0) + return ite8709_cleanup(ite8709_dev, 4, ret, + "IRQ already in use"); + + /* Initialize hardware */ + ite8709_drop_hardware(ite8709_dev); /* Shutdown hw until first use */ + + printk(KERN_INFO LIRC_DRIVER_NAME ": device found : irq=%d io=0x%x\n", + ite8709_dev->irq, ite8709_dev->io); + + return 0; +} + +static void __devexit ite8709_pnp_remove(struct pnp_dev *dev) +{ + struct ite8709_device *ite8709_dev; + ite8709_dev = pnp_get_drvdata(dev); + + ite8709_cleanup(ite8709_dev, 6, 0, NULL); + + printk(KERN_INFO LIRC_DRIVER_NAME ": device removed\n"); +} + +#ifdef CONFIG_PM +static int ite8709_pnp_suspend(struct pnp_dev *dev, pm_message_t state) +{ + struct ite8709_device *ite8709_dev; + ite8709_dev = pnp_get_drvdata(dev); + + if (ite8709_dev->use_count > 0) + ite8709_drop_hardware(ite8709_dev); + + return 0; +} + +static int ite8709_pnp_resume(struct pnp_dev *dev) +{ + struct ite8709_device *ite8709_dev; + ite8709_dev = pnp_get_drvdata(dev); + + if (ite8709_dev->use_count > 0) + ite8709_init_hardware(ite8709_dev); + + return 0; +} +#else +#define ite8709_pnp_suspend NULL +#define ite8709_pnp_resume NULL +#endif + +static const struct pnp_device_id pnp_dev_table[] = { + {"ITE8709", 0}, + {} +}; + +MODULE_DEVICE_TABLE(pnp, pnp_dev_table); + +static struct pnp_driver ite8709_pnp_driver = { + .name = LIRC_DRIVER_NAME, + .probe = ite8709_pnp_probe, + .remove = __devexit_p(ite8709_pnp_remove), + .suspend = ite8709_pnp_suspend, + .resume = ite8709_pnp_resume, + .id_table = pnp_dev_table, +}; + +static int __init ite8709_init_module(void) +{ + return pnp_register_driver(&ite8709_pnp_driver); +} +module_init(ite8709_init_module); + +static void __exit ite8709_cleanup_module(void) +{ + pnp_unregister_driver(&ite8709_pnp_driver); +} +module_exit(ite8709_cleanup_module); + +MODULE_DESCRIPTION("LIRC driver for ITE8709 CIR port"); +MODULE_AUTHOR("Grégory Lardière"); +MODULE_LICENSE("GPL"); + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); --- linux-2.6.35.orig/drivers/staging/lirc/lirc_igorplugusb.c +++ linux-2.6.35/drivers/staging/lirc/lirc_igorplugusb.c @@ -0,0 +1,555 @@ +/* + * lirc_igorplugusb - USB remote support for LIRC + * + * Supports the standard homebrew IgorPlugUSB receiver with Igor's firmware. + * See http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm + * + * The device can only record bursts of up to 36 pulses/spaces. + * Works fine with RC5. Longer commands lead to device buffer overrun. + * (Maybe a better firmware or a microcontroller with more ram can help?) + * + * Version 0.1 [beta status] + * + * Copyright (C) 2004 Jan M. Hochstein + * + * + * This driver was derived from: + * Paul Miller + * "lirc_atiusb" module + * Vladimir Dergachev 's 2002 + * "USB ATI Remote support" (input device) + * Adrian Dewhurst 's 2002 + * "USB StreamZap remote driver" (LIRC) + * Artur Lipowski 's 2002 + * "lirc_dev" and "lirc_gpio" LIRC modules + */ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +/* module identification */ +#define DRIVER_VERSION "0.1" +#define DRIVER_AUTHOR \ + "Jan M. Hochstein " +#define DRIVER_DESC "USB remote driver for LIRC" +#define DRIVER_NAME "lirc_igorplugusb" + +/* debugging support */ +#ifdef CONFIG_USB_DEBUG +static int debug = 1; +#else +static int debug; +#endif + +#define dprintk(fmt, args...) \ + do { \ + if (debug) \ + printk(KERN_DEBUG fmt, ## args); \ + } while (0) + +/* One mode2 pulse/space has 4 bytes. */ +#define CODE_LENGTH sizeof(int) + +/* Igor's firmware cannot record bursts longer than 36. */ +#define DEVICE_BUFLEN 36 + +/* + * Header at the beginning of the device's buffer: + * unsigned char data_length + * unsigned char data_start (!=0 means ring-buffer overrun) + * unsigned char counter (incremented by each burst) + */ +#define DEVICE_HEADERLEN 3 + +/* This is for the gap */ +#define ADDITIONAL_LIRC_BYTES 2 + +/* times to poll per second */ +#define SAMPLE_RATE 100 +static int sample_rate = SAMPLE_RATE; + + +/**** Igor's USB Request Codes */ + +#define SET_INFRABUFFER_EMPTY 1 +/** + * Params: none + * Answer: empty + */ + +#define GET_INFRACODE 2 +/** + * Params: + * wValue: offset to begin reading infra buffer + * + * Answer: infra data + */ + +#define SET_DATAPORT_DIRECTION 3 +/** + * Params: + * wValue: (byte) 1 bit for each data port pin (0=in, 1=out) + * + * Answer: empty + */ + +#define GET_DATAPORT_DIRECTION 4 +/** + * Params: none + * + * Answer: (byte) 1 bit for each data port pin (0=in, 1=out) + */ + +#define SET_OUT_DATAPORT 5 +/** + * Params: + * wValue: byte to write to output data port + * + * Answer: empty + */ + +#define GET_OUT_DATAPORT 6 +/** + * Params: none + * + * Answer: least significant 3 bits read from output data port + */ + +#define GET_IN_DATAPORT 7 +/** + * Params: none + * + * Answer: least significant 3 bits read from input data port + */ + +#define READ_EEPROM 8 +/** + * Params: + * wValue: offset to begin reading EEPROM + * + * Answer: EEPROM bytes + */ + +#define WRITE_EEPROM 9 +/** + * Params: + * wValue: offset to EEPROM byte + * wIndex: byte to write + * + * Answer: empty + */ + +#define SEND_RS232 10 +/** + * Params: + * wValue: byte to send + * + * Answer: empty + */ + +#define RECV_RS232 11 +/** + * Params: none + * + * Answer: byte received + */ + +#define SET_RS232_BAUD 12 +/** + * Params: + * wValue: byte to write to UART bit rate register (UBRR) + * + * Answer: empty + */ + +#define GET_RS232_BAUD 13 +/** + * Params: none + * + * Answer: byte read from UART bit rate register (UBRR) + */ + + +/* data structure for each usb remote */ +struct igorplug { + + /* usb */ + struct usb_device *usbdev; + struct urb *urb_in; + int devnum; + + unsigned char *buf_in; + unsigned int len_in; + int in_space; + struct timeval last_time; + + dma_addr_t dma_in; + + /* lirc */ + struct lirc_driver *d; + + /* handle sending (init strings) */ + int send_flags; + wait_queue_head_t wait_out; +}; + +static int unregister_from_lirc(struct igorplug *ir) +{ + struct lirc_driver *d = ir->d; + int devnum; + + if (!ir->d) + return -EINVAL; + + devnum = ir->devnum; + dprintk(DRIVER_NAME "[%d]: unregister from lirc called\n", devnum); + + lirc_unregister_driver(d->minor); + + printk(DRIVER_NAME "[%d]: usb remote disconnected\n", devnum); + + kfree(d); + ir->d = NULL; + kfree(ir); + return 0; +} + +static int set_use_inc(void *data) +{ + struct igorplug *ir = data; + + if (!ir) { + printk(DRIVER_NAME "[?]: set_use_inc called with no context\n"); + return -EIO; + } + dprintk(DRIVER_NAME "[%d]: set use inc\n", ir->devnum); + + if (!ir->usbdev) + return -ENODEV; + + return 0; +} + +static void set_use_dec(void *data) +{ + struct igorplug *ir = data; + + if (!ir) { + printk(DRIVER_NAME "[?]: set_use_dec called with no context\n"); + return; + } + dprintk(DRIVER_NAME "[%d]: set use dec\n", ir->devnum); +} + + +/** + * Called in user context. + * return 0 if data was added to the buffer and + * -ENODATA if none was available. This should add some number of bits + * evenly divisible by code_length to the buffer + */ +static int usb_remote_poll(void *data, struct lirc_buffer *buf) +{ + int ret; + struct igorplug *ir = (struct igorplug *)data; + + if (!ir->usbdev) /* Has the device been removed? */ + return -ENODEV; + + memset(ir->buf_in, 0, ir->len_in); + + ret = usb_control_msg( + ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0), + GET_INFRACODE, USB_TYPE_VENDOR|USB_DIR_IN, + 0/* offset */, /*unused*/0, + ir->buf_in, ir->len_in, + /*timeout*/HZ * USB_CTRL_GET_TIMEOUT); + if (ret > 0) { + int i = DEVICE_HEADERLEN; + int code, timediff; + struct timeval now; + + if (ret <= 1) /* ACK packet has 1 byte --> ignore */ + return -ENODATA; + + dprintk(DRIVER_NAME ": Got %d bytes. Header: %02x %02x %02x\n", + ret, ir->buf_in[0], ir->buf_in[1], ir->buf_in[2]); + + if (ir->buf_in[2] != 0) { + printk(DRIVER_NAME "[%d]: Device buffer overrun.\n", + ir->devnum); + /* start at earliest byte */ + i = DEVICE_HEADERLEN + ir->buf_in[2]; + /* where are we now? space, gap or pulse? */ + } + + do_gettimeofday(&now); + timediff = now.tv_sec - ir->last_time.tv_sec; + if (timediff + 1 > PULSE_MASK / 1000000) + timediff = PULSE_MASK; + else { + timediff *= 1000000; + timediff += now.tv_usec - ir->last_time.tv_usec; + } + ir->last_time.tv_sec = now.tv_sec; + ir->last_time.tv_usec = now.tv_usec; + + /* create leading gap */ + code = timediff; + lirc_buffer_write(buf, (unsigned char *)&code); + ir->in_space = 1; /* next comes a pulse */ + + /* MODE2: pulse/space (PULSE_BIT) in 1us units */ + + while (i < ret) { + /* 1 Igor-tick = 85.333333 us */ + code = (unsigned int)ir->buf_in[i] * 85 + + (unsigned int)ir->buf_in[i] / 3; + if (ir->in_space) + code |= PULSE_BIT; + lirc_buffer_write(buf, (unsigned char *)&code); + /* 1 chunk = CODE_LENGTH bytes */ + ir->in_space ^= 1; + ++i; + } + + ret = usb_control_msg( + ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0), + SET_INFRABUFFER_EMPTY, USB_TYPE_VENDOR|USB_DIR_IN, + /*unused*/0, /*unused*/0, + /*dummy*/ir->buf_in, /*dummy*/ir->len_in, + /*timeout*/HZ * USB_CTRL_GET_TIMEOUT); + if (ret < 0) + printk(DRIVER_NAME "[%d]: SET_INFRABUFFER_EMPTY: " + "error %d\n", ir->devnum, ret); + return 0; + } else if (ret < 0) + printk(DRIVER_NAME "[%d]: GET_INFRACODE: error %d\n", + ir->devnum, ret); + + return -ENODATA; +} + + + +static int usb_remote_probe(struct usb_interface *intf, + const struct usb_device_id *id) +{ + struct usb_device *dev = NULL; + struct usb_host_interface *idesc = NULL; + struct usb_host_endpoint *ep_ctl2; + struct igorplug *ir = NULL; + struct lirc_driver *driver = NULL; + int devnum, pipe, maxp; + int minor = 0; + char buf[63], name[128] = ""; + int mem_failure = 0; + int ret; + + dprintk(DRIVER_NAME ": usb probe called.\n"); + + dev = interface_to_usbdev(intf); + + idesc = intf->cur_altsetting; + + if (idesc->desc.bNumEndpoints != 1) + return -ENODEV; + ep_ctl2 = idesc->endpoint; + if (((ep_ctl2->desc.bEndpointAddress & USB_ENDPOINT_DIR_MASK) + != USB_DIR_IN) + || (ep_ctl2->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) + != USB_ENDPOINT_XFER_CONTROL) + return -ENODEV; + pipe = usb_rcvctrlpipe(dev, ep_ctl2->desc.bEndpointAddress); + devnum = dev->devnum; + maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe)); + + dprintk(DRIVER_NAME "[%d]: bytes_in_key=%lu maxp=%d\n", + devnum, CODE_LENGTH, maxp); + + + mem_failure = 0; + ir = kzalloc(sizeof(struct igorplug), GFP_KERNEL); + if (!ir) { + mem_failure = 1; + goto mem_failure_switch; + } + driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL); + if (!driver) { + mem_failure = 2; + goto mem_failure_switch; + } + + ir->buf_in = usb_alloc_coherent(dev, + DEVICE_BUFLEN+DEVICE_HEADERLEN, + GFP_ATOMIC, &ir->dma_in); + if (!ir->buf_in) { + mem_failure = 3; + goto mem_failure_switch; + } + + strcpy(driver->name, DRIVER_NAME " "); + driver->minor = -1; + driver->code_length = CODE_LENGTH * 8; /* in bits */ + driver->features = LIRC_CAN_REC_MODE2; + driver->data = ir; + driver->chunk_size = CODE_LENGTH; + driver->buffer_size = DEVICE_BUFLEN + ADDITIONAL_LIRC_BYTES; + driver->set_use_inc = &set_use_inc; + driver->set_use_dec = &set_use_dec; + driver->sample_rate = sample_rate; /* per second */ + driver->add_to_buf = &usb_remote_poll; + driver->dev = &intf->dev; + driver->owner = THIS_MODULE; + + init_waitqueue_head(&ir->wait_out); + + minor = lirc_register_driver(driver); + if (minor < 0) + mem_failure = 9; + +mem_failure_switch: + + switch (mem_failure) { + case 9: + usb_free_coherent(dev, DEVICE_BUFLEN+DEVICE_HEADERLEN, + ir->buf_in, ir->dma_in); + case 3: + kfree(driver); + case 2: + kfree(ir); + case 1: + printk(DRIVER_NAME "[%d]: out of memory (code=%d)\n", + devnum, mem_failure); + return -ENOMEM; + } + + driver->minor = minor; + ir->d = driver; + ir->devnum = devnum; + ir->usbdev = dev; + ir->len_in = DEVICE_BUFLEN+DEVICE_HEADERLEN; + ir->in_space = 1; /* First mode2 event is a space. */ + do_gettimeofday(&ir->last_time); + + if (dev->descriptor.iManufacturer + && usb_string(dev, dev->descriptor.iManufacturer, + buf, sizeof(buf)) > 0) + strlcpy(name, buf, sizeof(name)); + if (dev->descriptor.iProduct + && usb_string(dev, dev->descriptor.iProduct, buf, sizeof(buf)) > 0) + snprintf(name + strlen(name), sizeof(name) - strlen(name), + " %s", buf); + printk(DRIVER_NAME "[%d]: %s on usb%d:%d\n", devnum, name, + dev->bus->busnum, devnum); + + /* clear device buffer */ + ret = usb_control_msg(ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0), + SET_INFRABUFFER_EMPTY, USB_TYPE_VENDOR|USB_DIR_IN, + /*unused*/0, /*unused*/0, + /*dummy*/ir->buf_in, /*dummy*/ir->len_in, + /*timeout*/HZ * USB_CTRL_GET_TIMEOUT); + if (ret < 0) + printk(DRIVER_NAME "[%d]: SET_INFRABUFFER_EMPTY: error %d\n", + devnum, ret); + + usb_set_intfdata(intf, ir); + return 0; +} + + +static void usb_remote_disconnect(struct usb_interface *intf) +{ + struct usb_device *dev = interface_to_usbdev(intf); + struct igorplug *ir = usb_get_intfdata(intf); + usb_set_intfdata(intf, NULL); + + if (!ir || !ir->d) + return; + + ir->usbdev = NULL; + wake_up_all(&ir->wait_out); + + usb_free_coherent(dev, ir->len_in, ir->buf_in, ir->dma_in); + + unregister_from_lirc(ir); +} + +static struct usb_device_id usb_remote_id_table[] = { + /* Igor Plug USB (Atmel's Manufact. ID) */ + { USB_DEVICE(0x03eb, 0x0002) }, + + /* Terminating entry */ + { } +}; + +static struct usb_driver usb_remote_driver = { + .name = DRIVER_NAME, + .probe = usb_remote_probe, + .disconnect = usb_remote_disconnect, + .id_table = usb_remote_id_table +}; + +static int __init usb_remote_init(void) +{ + int i; + + printk(KERN_INFO "\n" + DRIVER_NAME ": " DRIVER_DESC " v" DRIVER_VERSION "\n"); + printk(DRIVER_NAME ": " DRIVER_AUTHOR "\n"); + dprintk(DRIVER_NAME ": debug mode enabled\n"); + + i = usb_register(&usb_remote_driver); + if (i < 0) { + printk(DRIVER_NAME ": usb register failed, result = %d\n", i); + return -ENODEV; + } + + return 0; +} + +static void __exit usb_remote_exit(void) +{ + usb_deregister(&usb_remote_driver); +} + +module_init(usb_remote_init); +module_exit(usb_remote_exit); + +#include +MODULE_INFO(vermagic, VERMAGIC_STRING); + +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_AUTHOR(DRIVER_AUTHOR); +MODULE_LICENSE("GPL"); +MODULE_DEVICE_TABLE(usb, usb_remote_id_table); + +module_param(sample_rate, int, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(sample_rate, "Sampling rate in Hz (default: 100)"); + --- linux-2.6.35.orig/drivers/staging/lirc/lirc_ene0100.h +++ linux-2.6.35/drivers/staging/lirc/lirc_ene0100.h @@ -0,0 +1,169 @@ +/* + * driver for ENE KB3926 B/C/D CIR (also known as ENE0100) + * + * Copyright (C) 2009 Maxim Levitsky + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You 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 +#include + +/* hardware address */ +#define ENE_STATUS 0 /* hardware status - unused */ +#define ENE_ADDR_HI 1 /* hi byte of register address */ +#define ENE_ADDR_LO 2 /* low byte of register address */ +#define ENE_IO 3 /* read/write window */ +#define ENE_MAX_IO 4 + +/* 8 bytes of samples, divided in 2 halfs*/ +#define ENE_SAMPLE_BUFFER 0xF8F0 /* regular sample buffer */ +#define ENE_SAMPLE_SPC_MASK (1 << 7) /* sample is space */ +#define ENE_SAMPLE_VALUE_MASK 0x7F +#define ENE_SAMPLE_OVERFLOW 0x7F +#define ENE_SAMPLES_SIZE 4 + +/* fan input sample buffer */ +#define ENE_SAMPLE_BUFFER_FAN 0xF8FB /* this buffer holds high byte of */ + /* each sample of normal buffer */ + +#define ENE_FAN_SMPL_PULS_MSK 0x8000 /* this bit of combined sample */ + /* if set, says that sample is pulse */ +#define ENE_FAN_VALUE_MASK 0x0FFF /* mask for valid bits of the value */ + +/* first firmware register */ +#define ENE_FW1 0xF8F8 +#define ENE_FW1_ENABLE (1 << 0) /* enable fw processing */ +#define ENE_FW1_TXIRQ (1 << 1) /* TX interrupt pending */ +#define ENE_FW1_WAKE (1 << 6) /* enable wake from S3 */ +#define ENE_FW1_IRQ (1 << 7) /* enable interrupt */ + +/* second firmware register */ +#define ENE_FW2 0xF8F9 +#define ENE_FW2_BUF_HIGH (1 << 0) /* which half of the buffer to read */ +#define ENE_FW2_IRQ_CLR (1 << 2) /* clear this on IRQ */ +#define ENE_FW2_GP40_AS_LEARN (1 << 4) /* normal input is used as */ + /* learning input */ +#define ENE_FW2_FAN_AS_NRML_IN (1 << 6) /* fan is used as normal input */ +#define ENE_FW2_LEARNING (1 << 7) /* hardware supports learning and TX */ + +/* fan as input settings - only if learning capable */ +#define ENE_FAN_AS_IN1 0xFE30 /* fan init reg 1 */ +#define ENE_FAN_AS_IN1_EN 0xCD +#define ENE_FAN_AS_IN2 0xFE31 /* fan init reg 2 */ +#define ENE_FAN_AS_IN2_EN 0x03 +#define ENE_SAMPLE_PERIOD_FAN 61 /* fan input has fixed sample period */ + +/* IRQ registers block (for revision B) */ +#define ENEB_IRQ 0xFD09 /* IRQ number */ +#define ENEB_IRQ_UNK1 0xFD17 /* unknown setting = 1 */ +#define ENEB_IRQ_STATUS 0xFD80 /* irq status */ +#define ENEB_IRQ_STATUS_IR (1 << 5) /* IR irq */ + +/* IRQ registers block (for revision C,D) */ +#define ENEC_IRQ 0xFE9B /* new irq settings register */ +#define ENEC_IRQ_MASK 0x0F /* irq number mask */ +#define ENEC_IRQ_UNK_EN (1 << 4) /* always enabled */ +#define ENEC_IRQ_STATUS (1 << 5) /* irq status and ACK */ + +/* CIR block settings */ +#define ENE_CIR_CONF1 0xFEC0 +#define ENE_CIR_CONF1_ADC_ON 0x7 /* reciever on gpio40 enabled */ +#define ENE_CIR_CONF1_LEARN1 (1 << 3) /* enabled on learning mode */ +#define ENE_CIR_CONF1_TX_ON 0x30 /* enabled on transmit */ +#define ENE_CIR_CONF1_TX_CARR (1 << 7) /* send TX carrier or not */ + +#define ENE_CIR_CONF2 0xFEC1 /* unknown setting = 0 */ +#define ENE_CIR_CONF2_LEARN2 (1 << 4) /* set on enable learning */ +#define ENE_CIR_CONF2_GPIO40DIS (1 << 5) /* disable normal input via gpio40 */ + +#define ENE_CIR_SAMPLE_PERIOD 0xFEC8 /* sample period in us */ +#define ENE_CIR_SAMPLE_OVERFLOW (1 << 7) /* interrupt on overflows if set */ + + +/* transmitter - not implemented yet */ +/* KB3926C and higher */ +/* transmission is very similiar to recieving, a byte is written to */ +/* ENE_TX_INPUT, in same manner as it is read from sample buffer */ +/* sample period is fixed*/ + + +/* transmitter ports */ +#define ENE_TX_PORT1 0xFC01 /* this enables one or both */ +#define ENE_TX_PORT1_EN (1 << 5) /* TX ports */ +#define ENE_TX_PORT2 0xFC08 +#define ENE_TX_PORT2_EN (1 << 1) + +#define ENE_TX_INPUT 0xFEC9 /* next byte to transmit */ +#define ENE_TX_SPC_MASK (1 << 7) /* Transmitted sample is space */ +#define ENE_TX_UNK1 0xFECB /* set to 0x63 */ +#define ENE_TX_SMPL_PERIOD 50 /* transmit sample period */ + + +#define ENE_TX_CARRIER 0xFECE /* TX carrier * 2 (khz) */ +#define ENE_TX_CARRIER_UNKBIT 0x80 /* This bit set on transmit */ +#define ENE_TX_CARRIER_LOW 0xFECF /* TX carrier / 2 */ + +/* Hardware versions */ +#define ENE_HW_VERSION 0xFF00 /* hardware revision */ +#define ENE_HW_UNK 0xFF1D +#define ENE_HW_UNK_CLR (1 << 2) +#define ENE_HW_VER_MAJOR 0xFF1E /* chip version */ +#define ENE_HW_VER_MINOR 0xFF1F +#define ENE_HW_VER_OLD 0xFD00 + +#define same_sign(a, b) ((((a) > 0) && (b) > 0) || ((a) < 0 && (b) < 0)) + +#define ENE_DRIVER_NAME "enecir" +#define ENE_MAXGAP 250000 /* this is amount of time we wait + before turning the sampler, chosen + arbitry */ + +#define space(len) (-(len)) /* add a space */ + +/* software defines */ +#define ENE_IRQ_RX 1 +#define ENE_IRQ_TX 2 + +#define ENE_HW_B 1 /* 3926B */ +#define ENE_HW_C 2 /* 3926C */ +#define ENE_HW_D 3 /* 3926D */ + +#define ene_printk(level, text, ...) \ + printk(level ENE_DRIVER_NAME ": " text, ## __VA_ARGS__) + +struct ene_device { + struct pnp_dev *pnp_dev; + struct lirc_driver *lirc_driver; + + /* hw settings */ + unsigned long hw_io; + int irq; + + int hw_revision; /* hardware revision */ + int hw_learning_and_tx_capable; /* learning capable */ + int hw_gpio40_learning; /* gpio40 is learning */ + int hw_fan_as_normal_input; /* fan input is used as regular input */ + + /* device data */ + int idle; + int fan_input_inuse; + + int sample; + int in_use; + + struct timeval gap_start; +}; --- linux-2.6.35.orig/drivers/staging/lirc/lirc_parallel.h +++ linux-2.6.35/drivers/staging/lirc/lirc_parallel.h @@ -0,0 +1,26 @@ +/* lirc_parallel.h */ + +#ifndef _LIRC_PARALLEL_H +#define _LIRC_PARALLEL_H + +#include + +#define LIRC_PORT_LEN 3 + +#define LIRC_LP_BASE 0 +#define LIRC_LP_STATUS 1 +#define LIRC_LP_CONTROL 2 + +#define LIRC_PORT_DATA LIRC_LP_BASE /* base */ +#define LIRC_PORT_TIMER LIRC_LP_STATUS /* status port */ +#define LIRC_PORT_TIMER_BIT LP_PBUSY /* busy signal */ +#define LIRC_PORT_SIGNAL LIRC_LP_STATUS /* status port */ +#define LIRC_PORT_SIGNAL_BIT LP_PACK /* ack signal */ +#define LIRC_PORT_IRQ LIRC_LP_CONTROL /* control port */ + +#define LIRC_SFH506_DELAY 0 /* delay t_phl in usecs */ + +#define LIRC_PARALLEL_MAX_TRANSMITTERS 8 +#define LIRC_PARALLEL_TRANSMITTER_MASK ((1< + * modified for PixelView (BT878P+W/FM) by + * Michal Kochanowicz + * Christoph Bartelmus + * modified for KNC ONE TV Station/Anubis Typhoon TView Tuner by + * Ulrich Mueller + * modified for Asus TV-Box and Creative/VisionTek BreakOut-Box by + * Stefan Jahn + * modified for inclusion into kernel sources by + * Jerome Brock + * modified for Leadtek Winfast PVR2000 by + * Thomas Reitmayr (treitmayr@yahoo.com) + * modified for Hauppauge HVR-1300 by + * Jan Frey (jfrey@gmx.de) + * + * parts are cut&pasted from the old lirc_haup.c driver + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +struct IR { + struct lirc_driver l; + struct i2c_client c; + int nextkey; + unsigned char b[3]; + unsigned char bits; + unsigned char flag; +}; + +#define DEVICE_NAME "lirc_i2c" + +/* module parameters */ +static int debug; /* debug output */ +static int minor = -1; /* minor number */ + +#define dprintk(fmt, args...) \ + do { \ + if (debug) \ + printk(KERN_DEBUG DEVICE_NAME ": " fmt, \ + ## args); \ + } while (0) + +static int reverse(int data, int bits) +{ + int i; + int c; + + for (c = 0, i = 0; i < bits; i++) + c |= ((data & (1<c, keybuf, 1); + /* poll IR chip */ + if (i2c_master_recv(&ir->c, keybuf, sizeof(keybuf)) != sizeof(keybuf)) { + dprintk("read error\n"); + return -EIO; + } + + dprintk("key (0x%02x%02x%02x%02x)\n", + keybuf[0], keybuf[1], keybuf[2], keybuf[3]); + + /* key pressed ? */ + if (keybuf[2] == 0xff) + return -ENODATA; + + /* remove repeat bit */ + keybuf[2] &= 0x7f; + keybuf[3] |= 0x80; + + lirc_buffer_write(buf, keybuf); + return 0; +} + +static int add_to_buf_pcf8574(void *data, struct lirc_buffer *buf) +{ + struct IR *ir = data; + int rc; + unsigned char all, mask; + unsigned char key; + + /* compute all valid bits (key code + pressed/release flag) */ + all = ir->bits | ir->flag; + + /* save IR writable mask bits */ + mask = i2c_smbus_read_byte(&ir->c) & ~all; + + /* send bit mask */ + rc = i2c_smbus_write_byte(&ir->c, (0xff & all) | mask); + + /* receive scan code */ + rc = i2c_smbus_read_byte(&ir->c); + + if (rc == -1) { + dprintk("%s read error\n", ir->c.name); + return -EIO; + } + + /* drop duplicate polls */ + if (ir->b[0] == (rc & all)) + return -ENODATA; + + ir->b[0] = rc & all; + + dprintk("%s key 0x%02X %s\n", ir->c.name, rc & ir->bits, + (rc & ir->flag) ? "released" : "pressed"); + + /* ignore released buttons */ + if (rc & ir->flag) + return -ENODATA; + + /* set valid key code */ + key = rc & ir->bits; + lirc_buffer_write(buf, &key); + return 0; +} + +/* common for Hauppauge IR receivers */ +static int add_to_buf_haup_common(void *data, struct lirc_buffer *buf, + unsigned char *keybuf, int size, int offset) +{ + struct IR *ir = data; + __u16 code; + unsigned char codes[2]; + int ret; + + /* poll IR chip */ + ret = i2c_master_recv(&ir->c, keybuf, size); + if (ret == size) { + ir->b[0] = keybuf[offset]; + ir->b[1] = keybuf[offset+1]; + ir->b[2] = keybuf[offset+2]; + if (ir->b[0] != 0x00 && ir->b[1] != 0x00) + dprintk("key (0x%02x/0x%02x)\n", ir->b[0], ir->b[1]); + } else { + dprintk("read error (ret=%d)\n", ret); + /* keep last successful read buffer */ + } + + /* key pressed ? */ + if ((ir->b[0] & 0x80) == 0) + return -ENODATA; + + /* look what we have */ + code = (((__u16)ir->b[0]&0x7f)<<6) | (ir->b[1]>>2); + + codes[0] = (code >> 8) & 0xff; + codes[1] = code & 0xff; + + /* return it */ + dprintk("sending code 0x%02x%02x to lirc\n", codes[0], codes[1]); + lirc_buffer_write(buf, codes); + return 0; +} + +/* specific for the Hauppauge PVR150 IR receiver */ +static int add_to_buf_haup_pvr150(void *data, struct lirc_buffer *buf) +{ + unsigned char keybuf[6]; + /* fetch 6 bytes, first relevant is at offset 3 */ + return add_to_buf_haup_common(data, buf, keybuf, 6, 3); +} + +/* used for all Hauppauge IR receivers but the PVR150 */ +static int add_to_buf_haup(void *data, struct lirc_buffer *buf) +{ + unsigned char keybuf[3]; + /* fetch 3 bytes, first relevant is at offset 0 */ + return add_to_buf_haup_common(data, buf, keybuf, 3, 0); +} + + +static int add_to_buf_pvr2000(void *data, struct lirc_buffer *buf) +{ + struct IR *ir = data; + unsigned char key; + s32 flags; + s32 code; + + /* poll IR chip */ + flags = i2c_smbus_read_byte_data(&ir->c, 0x10); + if (-1 == flags) { + dprintk("read error\n"); + return -ENODATA; + } + /* key pressed ? */ + if (0 == (flags & 0x80)) + return -ENODATA; + + /* read actual key code */ + code = i2c_smbus_read_byte_data(&ir->c, 0x00); + if (-1 == code) { + dprintk("read error\n"); + return -ENODATA; + } + + key = code & 0xFF; + + dprintk("IR Key/Flags: (0x%02x/0x%02x)\n", key, flags & 0xFF); + + /* return it */ + lirc_buffer_write(buf, &key); + return 0; +} + +static int add_to_buf_pixelview(void *data, struct lirc_buffer *buf) +{ + struct IR *ir = data; + unsigned char key; + + /* poll IR chip */ + if (1 != i2c_master_recv(&ir->c, &key, 1)) { + dprintk("read error\n"); + return -1; + } + dprintk("key %02x\n", key); + + /* return it */ + lirc_buffer_write(buf, &key); + return 0; +} + +static int add_to_buf_pv951(void *data, struct lirc_buffer *buf) +{ + struct IR *ir = data; + unsigned char key; + unsigned char codes[4]; + + /* poll IR chip */ + if (1 != i2c_master_recv(&ir->c, &key, 1)) { + dprintk("read error\n"); + return -ENODATA; + } + /* ignore 0xaa */ + if (key == 0xaa) + return -ENODATA; + dprintk("key %02x\n", key); + + codes[0] = 0x61; + codes[1] = 0xD6; + codes[2] = reverse(key, 8); + codes[3] = (~codes[2])&0xff; + + lirc_buffer_write(buf, codes); + return 0; +} + +static int add_to_buf_knc1(void *data, struct lirc_buffer *buf) +{ + static unsigned char last_key = 0xFF; + struct IR *ir = data; + unsigned char key; + + /* poll IR chip */ + if (1 != i2c_master_recv(&ir->c, &key, 1)) { + dprintk("read error\n"); + return -ENODATA; + } + + /* + * it seems that 0xFE indicates that a button is still held + * down, while 0xFF indicates that no button is held + * down. 0xFE sequences are sometimes interrupted by 0xFF + */ + + dprintk("key %02x\n", key); + + if (key == 0xFF) + return -ENODATA; + + if (key == 0xFE) + key = last_key; + + last_key = key; + lirc_buffer_write(buf, &key); + + return 0; +} + +static int set_use_inc(void *data) +{ + struct IR *ir = data; + + dprintk("%s called\n", __func__); + + /* lock bttv in memory while /dev/lirc is in use */ + i2c_use_client(&ir->c); + + return 0; +} + +static void set_use_dec(void *data) +{ + struct IR *ir = data; + + dprintk("%s called\n", __func__); + + i2c_release_client(&ir->c); +} + +static struct lirc_driver lirc_template = { + .name = "lirc_i2c", + .set_use_inc = set_use_inc, + .set_use_dec = set_use_dec, + .dev = NULL, + .owner = THIS_MODULE, +}; + +static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id); +static int ir_remove(struct i2c_client *client); +static int ir_command(struct i2c_client *client, unsigned int cmd, void *arg); + +static const struct i2c_device_id ir_receiver_id[] = { + /* Generic entry for any IR receiver */ + { "ir_video", 0 }, + /* IR device specific entries could be added here */ + { } +}; + +static struct i2c_driver driver = { + .driver = { + .owner = THIS_MODULE, + .name = "i2c ir driver", + }, + .probe = ir_probe, + .remove = ir_remove, + .id_table = ir_receiver_id, + .command = ir_command, +}; + +static void pcf_probe(struct i2c_client *client, struct IR *ir) +{ + int ret1, ret2, ret3, ret4; + + ret1 = i2c_smbus_write_byte(client, 0xff); + ret2 = i2c_smbus_read_byte(client); + ret3 = i2c_smbus_write_byte(client, 0x00); + ret4 = i2c_smbus_read_byte(client); + + /* in the Asus TV-Box: bit 1-0 */ + if (((ret2 & 0x03) == 0x03) && ((ret4 & 0x03) == 0x00)) { + ir->bits = (unsigned char) ~0x07; + ir->flag = 0x04; + /* in the Creative/VisionTek BreakOut-Box: bit 7-6 */ + } else if (((ret2 & 0xc0) == 0xc0) && ((ret4 & 0xc0) == 0x00)) { + ir->bits = (unsigned char) ~0xe0; + ir->flag = 0x20; + } + + return; +} + +static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct IR *ir; + struct i2c_adapter *adap = client->adapter; + unsigned short addr = client->addr; + int retval; + + ir = kzalloc(sizeof(struct IR), GFP_KERNEL); + if (!ir) + return -ENOMEM; + memcpy(&ir->l, &lirc_template, sizeof(struct lirc_driver)); + memcpy(&ir->c, client, sizeof(struct i2c_client)); + + i2c_set_clientdata(client, ir); + ir->l.data = ir; + ir->l.minor = minor; + ir->l.sample_rate = 10; + ir->l.dev = &ir->c.dev; + ir->nextkey = -1; + + switch (addr) { + case 0x64: + strlcpy(ir->c.name, "Pixelview IR", I2C_NAME_SIZE); + ir->l.code_length = 8; + ir->l.add_to_buf = add_to_buf_pixelview; + break; + case 0x4b: + strlcpy(ir->c.name, "PV951 IR", I2C_NAME_SIZE); + ir->l.code_length = 32; + ir->l.add_to_buf = add_to_buf_pv951; + break; + case 0x71: + if (adap->id == I2C_HW_B_CX2388x) + strlcpy(ir->c.name, "Hauppauge HVR1300", I2C_NAME_SIZE); + else /* bt8xx or cx2341x */ + /* + * The PVR150 IR receiver uses the same protocol as + * other Hauppauge cards, but the data flow is + * different, so we need to deal with it by its own. + */ + strlcpy(ir->c.name, "Hauppauge PVR150", I2C_NAME_SIZE); + ir->l.code_length = 13; + ir->l.add_to_buf = add_to_buf_haup_pvr150; + break; + case 0x6b: + strlcpy(ir->c.name, "Adaptec IR", I2C_NAME_SIZE); + ir->l.code_length = 32; + ir->l.add_to_buf = add_to_buf_adap; + break; + case 0x18: + case 0x1a: + if (adap->id == I2C_HW_B_CX2388x) { + strlcpy(ir->c.name, "Leadtek IR", I2C_NAME_SIZE); + ir->l.code_length = 8; + ir->l.add_to_buf = add_to_buf_pvr2000; + } else { /* bt8xx or cx2341x */ + strlcpy(ir->c.name, "Hauppauge IR", I2C_NAME_SIZE); + ir->l.code_length = 13; + ir->l.add_to_buf = add_to_buf_haup; + } + break; + case 0x30: + strlcpy(ir->c.name, "KNC ONE IR", I2C_NAME_SIZE); + ir->l.code_length = 8; + ir->l.add_to_buf = add_to_buf_knc1; + break; + case 0x21: + case 0x23: + pcf_probe(client, ir); + strlcpy(ir->c.name, "TV-Box IR", I2C_NAME_SIZE); + ir->l.code_length = 8; + ir->l.add_to_buf = add_to_buf_pcf8574; + break; + default: + /* shouldn't happen */ + printk("lirc_i2c: Huh? unknown i2c address (0x%02x)?\n", addr); + kfree(ir); + return -EINVAL; + } + printk(KERN_INFO "lirc_i2c: chip 0x%x found @ 0x%02x (%s)\n", + adap->id, addr, ir->c.name); + + retval = lirc_register_driver(&ir->l); + + if (retval < 0) { + printk(KERN_ERR "lirc_i2c: failed to register driver!\n"); + kfree(ir); + return retval; + } + + ir->l.minor = retval; + + return 0; +} + +static int ir_remove(struct i2c_client *client) +{ + struct IR *ir = i2c_get_clientdata(client); + + /* unregister device */ + lirc_unregister_driver(ir->l.minor); + + /* free memory */ + kfree(ir); + return 0; +} + +static int ir_command(struct i2c_client *client, unsigned int cmd, void *arg) +{ + /* nothing */ + return 0; +} + +static int __init lirc_i2c_init(void) +{ + i2c_add_driver(&driver); + return 0; +} + +static void __exit lirc_i2c_exit(void) +{ + i2c_del_driver(&driver); +} + +MODULE_DESCRIPTION("Infrared receiver driver for Hauppauge and " + "Pixelview cards (i2c stack)"); +MODULE_AUTHOR("Gerd Knorr, Michal Kochanowicz, Christoph Bartelmus, " + "Ulrich Mueller, Stefan Jahn, Jerome Brock"); +MODULE_LICENSE("GPL"); + +module_param(minor, int, S_IRUGO); +MODULE_PARM_DESC(minor, "Preferred minor device number"); + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); + +module_init(lirc_i2c_init); +module_exit(lirc_i2c_exit); --- linux-2.6.35.orig/drivers/staging/lirc/lirc_sasem.c +++ linux-2.6.35/drivers/staging/lirc/lirc_sasem.c @@ -0,0 +1,933 @@ +/* + * lirc_sasem.c - USB remote support for LIRC + * Version 0.5 + * + * Copyright (C) 2004-2005 Oliver Stabel + * Tim Davies + * + * This driver was derived from: + * Venky Raju + * "lirc_imon - "LIRC/VFD driver for Ahanix/Soundgraph IMON IR/VFD" + * Paul Miller 's 2003-2004 + * "lirc_atiusb - USB remote support for LIRC" + * Culver Consulting Services 's 2003 + * "Sasem OnAir VFD/IR USB driver" + * + * + * NOTE - The LCDproc iMon driver should work with this module. More info at + * http://www.frogstorm.info/sasem + */ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +#define MOD_AUTHOR "Oliver Stabel , " \ + "Tim Davies " +#define MOD_DESC "USB Driver for Sasem Remote Controller V1.1" +#define MOD_NAME "lirc_sasem" +#define MOD_VERSION "0.5" + +#define VFD_MINOR_BASE 144 /* Same as LCD */ +#define DEVICE_NAME "lcd%d" + +#define BUF_CHUNK_SIZE 8 +#define BUF_SIZE 128 + +#define IOCTL_LCD_CONTRAST 1 + +/*** P R O T O T Y P E S ***/ + +/* USB Callback prototypes */ +static int sasem_probe(struct usb_interface *interface, + const struct usb_device_id *id); +static void sasem_disconnect(struct usb_interface *interface); +static void usb_rx_callback(struct urb *urb); +static void usb_tx_callback(struct urb *urb); + +/* VFD file_operations function prototypes */ +static int vfd_open(struct inode *inode, struct file *file); +static long vfd_ioctl(struct file *file, unsigned cmd, unsigned long arg); +static int vfd_close(struct inode *inode, struct file *file); +static ssize_t vfd_write(struct file *file, const char *buf, + size_t n_bytes, loff_t *pos); + +/* LIRC driver function prototypes */ +static int ir_open(void *data); +static void ir_close(void *data); + +/* Driver init/exit prototypes */ +static int __init sasem_init(void); +static void __exit sasem_exit(void); + +/*** G L O B A L S ***/ +#define SASEM_DATA_BUF_SZ 32 + +struct sasem_context { + + struct usb_device *dev; + int vfd_isopen; /* VFD port has been opened */ + unsigned int vfd_contrast; /* VFD contrast */ + int ir_isopen; /* IR port has been opened */ + int dev_present; /* USB device presence */ + struct mutex ctx_lock; /* to lock this object */ + wait_queue_head_t remove_ok; /* For unexpected USB disconnects */ + + struct lirc_driver *driver; + struct usb_endpoint_descriptor *rx_endpoint; + struct usb_endpoint_descriptor *tx_endpoint; + struct urb *rx_urb; + struct urb *tx_urb; + unsigned char usb_rx_buf[8]; + unsigned char usb_tx_buf[8]; + + struct tx_t { + unsigned char data_buf[SASEM_DATA_BUF_SZ]; /* user data buffer */ + struct completion finished; /* wait for write to finish */ + atomic_t busy; /* write in progress */ + int status; /* status of tx completion */ + } tx; + + /* for dealing with repeat codes (wish there was a toggle bit!) */ + struct timeval presstime; + char lastcode[8]; + int codesaved; +}; + +/* VFD file operations */ +static const struct file_operations vfd_fops = { + .owner = THIS_MODULE, + .open = &vfd_open, + .write = &vfd_write, + .unlocked_ioctl = &vfd_ioctl, + .release = &vfd_close, +}; + +/* USB Device ID for Sasem USB Control Board */ +static struct usb_device_id sasem_usb_id_table[] = { + /* Sasem USB Control Board */ + { USB_DEVICE(0x11ba, 0x0101) }, + /* Terminating entry */ + {} +}; + +/* USB Device data */ +static struct usb_driver sasem_driver = { + .name = MOD_NAME, + .probe = sasem_probe, + .disconnect = sasem_disconnect, + .id_table = sasem_usb_id_table, +}; + +static struct usb_class_driver sasem_class = { + .name = DEVICE_NAME, + .fops = &vfd_fops, + .minor_base = VFD_MINOR_BASE, +}; + +/* to prevent races between open() and disconnect() */ +static DEFINE_MUTEX(disconnect_lock); + +static int debug; + + +/*** M O D U L E C O D E ***/ + +MODULE_AUTHOR(MOD_AUTHOR); +MODULE_DESCRIPTION(MOD_DESC); +MODULE_LICENSE("GPL"); +module_param(debug, int, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes (default: no)"); + +static void delete_context(struct sasem_context *context) +{ + usb_free_urb(context->tx_urb); /* VFD */ + usb_free_urb(context->rx_urb); /* IR */ + lirc_buffer_free(context->driver->rbuf); + kfree(context->driver->rbuf); + kfree(context->driver); + kfree(context); + + if (debug) + printk(KERN_INFO "%s: context deleted\n", __func__); +} + +static void deregister_from_lirc(struct sasem_context *context) +{ + int retval; + int minor = context->driver->minor; + + retval = lirc_unregister_driver(minor); + if (retval) + err("%s: unable to deregister from lirc (%d)", + __func__, retval); + else + printk(KERN_INFO "Deregistered Sasem driver (minor:%d)\n", + minor); + +} + +/** + * Called when the VFD device (e.g. /dev/usb/lcd) + * is opened by the application. + */ +static int vfd_open(struct inode *inode, struct file *file) +{ + struct usb_interface *interface; + struct sasem_context *context = NULL; + int subminor; + int retval = 0; + + /* prevent races with disconnect */ + mutex_lock(&disconnect_lock); + + subminor = iminor(inode); + interface = usb_find_interface(&sasem_driver, subminor); + if (!interface) { + err("%s: could not find interface for minor %d", + __func__, subminor); + retval = -ENODEV; + goto exit; + } + context = usb_get_intfdata(interface); + + if (!context) { + err("%s: no context found for minor %d", + __func__, subminor); + retval = -ENODEV; + goto exit; + } + + mutex_lock(&context->ctx_lock); + + if (context->vfd_isopen) { + err("%s: VFD port is already open", __func__); + retval = -EBUSY; + } else { + context->vfd_isopen = 1; + file->private_data = context; + printk(KERN_INFO "VFD port opened\n"); + } + + mutex_unlock(&context->ctx_lock); + +exit: + mutex_unlock(&disconnect_lock); + return retval; +} + +/** + * Called when the VFD device (e.g. /dev/usb/lcd) + * is closed by the application. + */ +static long vfd_ioctl(struct file *file, unsigned cmd, unsigned long arg) +{ + struct sasem_context *context = NULL; + + context = (struct sasem_context *) file->private_data; + + if (!context) { + err("%s: no context for device", __func__); + return -ENODEV; + } + + mutex_lock(&context->ctx_lock); + + switch (cmd) { + case IOCTL_LCD_CONTRAST: + if (arg > 1000) + arg = 1000; + context->vfd_contrast = (unsigned int)arg; + break; + default: + printk(KERN_INFO "Unknown IOCTL command\n"); + mutex_unlock(&context->ctx_lock); + return -ENOIOCTLCMD; /* not supported */ + } + + mutex_unlock(&context->ctx_lock); + return 0; +} + +/** + * Called when the VFD device (e.g. /dev/usb/lcd) + * is closed by the application. + */ +static int vfd_close(struct inode *inode, struct file *file) +{ + struct sasem_context *context = NULL; + int retval = 0; + + context = (struct sasem_context *) file->private_data; + + if (!context) { + err("%s: no context for device", __func__); + return -ENODEV; + } + + mutex_lock(&context->ctx_lock); + + if (!context->vfd_isopen) { + err("%s: VFD is not open", __func__); + retval = -EIO; + } else { + context->vfd_isopen = 0; + printk(KERN_INFO "VFD port closed\n"); + if (!context->dev_present && !context->ir_isopen) { + + /* Device disconnected before close and IR port is + * not open. If IR port is open, context will be + * deleted by ir_close. */ + mutex_unlock(&context->ctx_lock); + delete_context(context); + return retval; + } + } + + mutex_unlock(&context->ctx_lock); + return retval; +} + +/** + * Sends a packet to the VFD. + */ +static int send_packet(struct sasem_context *context) +{ + unsigned int pipe; + int interval = 0; + int retval = 0; + + pipe = usb_sndintpipe(context->dev, + context->tx_endpoint->bEndpointAddress); + interval = context->tx_endpoint->bInterval; + + usb_fill_int_urb(context->tx_urb, context->dev, pipe, + context->usb_tx_buf, sizeof(context->usb_tx_buf), + usb_tx_callback, context, interval); + + context->tx_urb->actual_length = 0; + + init_completion(&context->tx.finished); + atomic_set(&(context->tx.busy), 1); + + retval = usb_submit_urb(context->tx_urb, GFP_KERNEL); + if (retval) { + atomic_set(&(context->tx.busy), 0); + err("%s: error submitting urb (%d)", __func__, retval); + } else { + /* Wait for transmission to complete (or abort) */ + mutex_unlock(&context->ctx_lock); + wait_for_completion(&context->tx.finished); + mutex_lock(&context->ctx_lock); + + retval = context->tx.status; + if (retval) + err("%s: packet tx failed (%d)", __func__, retval); + } + + return retval; +} + +/** + * Writes data to the VFD. The Sasem VFD is 2x16 characters + * and requires data in 9 consecutive USB interrupt packets, + * each packet carrying 8 bytes. + */ +static ssize_t vfd_write(struct file *file, const char *buf, + size_t n_bytes, loff_t *pos) +{ + int i; + int retval = 0; + struct sasem_context *context; + int *data_buf; + + context = (struct sasem_context *) file->private_data; + if (!context) { + err("%s: no context for device", __func__); + return -ENODEV; + } + + mutex_lock(&context->ctx_lock); + + if (!context->dev_present) { + err("%s: no Sasem device present", __func__); + retval = -ENODEV; + goto exit; + } + + if (n_bytes <= 0 || n_bytes > SASEM_DATA_BUF_SZ) { + err("%s: invalid payload size", __func__); + retval = -EINVAL; + goto exit; + } + + data_buf = memdup_user(buf, n_bytes); + if (PTR_ERR(data_buf)) + return PTR_ERR(data_buf); + + memcpy(context->tx.data_buf, data_buf, n_bytes); + + /* Pad with spaces */ + for (i = n_bytes; i < SASEM_DATA_BUF_SZ; ++i) + context->tx.data_buf[i] = ' '; + + /* Nine 8 byte packets to be sent */ + /* NOTE: "\x07\x01\0\0\0\0\0\0" or "\x0c\0\0\0\0\0\0\0" + * will clear the VFD */ + for (i = 0; i < 9; i++) { + switch (i) { + case 0: + memcpy(context->usb_tx_buf, "\x07\0\0\0\0\0\0\0", 8); + context->usb_tx_buf[1] = (context->vfd_contrast) ? + (0x2B - (context->vfd_contrast - 1) / 250) + : 0x2B; + break; + case 1: + memcpy(context->usb_tx_buf, "\x09\x01\0\0\0\0\0\0", 8); + break; + case 2: + memcpy(context->usb_tx_buf, "\x0b\x01\0\0\0\0\0\0", 8); + break; + case 3: + memcpy(context->usb_tx_buf, context->tx.data_buf, 8); + break; + case 4: + memcpy(context->usb_tx_buf, + context->tx.data_buf + 8, 8); + break; + case 5: + memcpy(context->usb_tx_buf, "\x09\x01\0\0\0\0\0\0", 8); + break; + case 6: + memcpy(context->usb_tx_buf, "\x0b\x02\0\0\0\0\0\0", 8); + break; + case 7: + memcpy(context->usb_tx_buf, + context->tx.data_buf + 16, 8); + break; + case 8: + memcpy(context->usb_tx_buf, + context->tx.data_buf + 24, 8); + break; + } + retval = send_packet(context); + if (retval) { + + err("%s: send packet failed for packet #%d", + __func__, i); + goto exit; + } + } +exit: + + mutex_unlock(&context->ctx_lock); + + return (!retval) ? n_bytes : retval; +} + +/** + * Callback function for USB core API: transmit data + */ +static void usb_tx_callback(struct urb *urb) +{ + struct sasem_context *context; + + if (!urb) + return; + context = (struct sasem_context *) urb->context; + if (!context) + return; + + context->tx.status = urb->status; + + /* notify waiters that write has finished */ + atomic_set(&context->tx.busy, 0); + complete(&context->tx.finished); + + return; +} + +/** + * Called by lirc_dev when the application opens /dev/lirc + */ +static int ir_open(void *data) +{ + int retval = 0; + struct sasem_context *context; + + /* prevent races with disconnect */ + mutex_lock(&disconnect_lock); + + context = (struct sasem_context *) data; + + mutex_lock(&context->ctx_lock); + + if (context->ir_isopen) { + err("%s: IR port is already open", __func__); + retval = -EBUSY; + goto exit; + } + + usb_fill_int_urb(context->rx_urb, context->dev, + usb_rcvintpipe(context->dev, + context->rx_endpoint->bEndpointAddress), + context->usb_rx_buf, sizeof(context->usb_rx_buf), + usb_rx_callback, context, context->rx_endpoint->bInterval); + + retval = usb_submit_urb(context->rx_urb, GFP_KERNEL); + + if (retval) + err("%s: usb_submit_urb failed for ir_open (%d)", + __func__, retval); + else { + context->ir_isopen = 1; + printk(KERN_INFO "IR port opened\n"); + } + +exit: + mutex_unlock(&context->ctx_lock); + + mutex_unlock(&disconnect_lock); + return 0; +} + +/** + * Called by lirc_dev when the application closes /dev/lirc + */ +static void ir_close(void *data) +{ + struct sasem_context *context; + + context = (struct sasem_context *)data; + if (!context) { + err("%s: no context for device", __func__); + return; + } + + mutex_lock(&context->ctx_lock); + + usb_kill_urb(context->rx_urb); + context->ir_isopen = 0; + printk(KERN_INFO "IR port closed\n"); + + if (!context->dev_present) { + + /* + * Device disconnected while IR port was + * still open. Driver was not deregistered + * at disconnect time, so do it now. + */ + deregister_from_lirc(context); + + if (!context->vfd_isopen) { + + mutex_unlock(&context->ctx_lock); + delete_context(context); + return; + } + /* If VFD port is open, context will be deleted by vfd_close */ + } + + mutex_unlock(&context->ctx_lock); + return; +} + +/** + * Process the incoming packet + */ +static void incoming_packet(struct sasem_context *context, + struct urb *urb) +{ + int len = urb->actual_length; + unsigned char *buf = urb->transfer_buffer; + long ms; + struct timeval tv; + + if (len != 8) { + printk(KERN_WARNING "%s: invalid incoming packet size (%d)\n", + __func__, len); + return; + } + +#ifdef DEBUG + int i; + for (i = 0; i < 8; ++i) + printk(KERN_INFO "%02x ", buf[i]); + printk(KERN_INFO "\n"); +#endif + + /* + * Lirc could deal with the repeat code, but we really need to block it + * if it arrives too late. Otherwise we could repeat the wrong code. + */ + + /* get the time since the last button press */ + do_gettimeofday(&tv); + ms = (tv.tv_sec - context->presstime.tv_sec) * 1000 + + (tv.tv_usec - context->presstime.tv_usec) / 1000; + + if (memcmp(buf, "\x08\0\0\0\0\0\0\0", 8) == 0) { + /* + * the repeat code is being sent, so we copy + * the old code to LIRC + */ + + /* + * NOTE: Only if the last code was less than 250ms ago + * - no one should be able to push another (undetected) button + * in that time and then get a false repeat of the previous + * press but it is long enough for a genuine repeat + */ + if ((ms < 250) && (context->codesaved != 0)) { + memcpy(buf, &context->lastcode, 8); + context->presstime.tv_sec = tv.tv_sec; + context->presstime.tv_usec = tv.tv_usec; + } + } else { + /* save the current valid code for repeats */ + memcpy(&context->lastcode, buf, 8); + /* + * set flag to signal a valid code was save; + * just for safety reasons + */ + context->codesaved = 1; + context->presstime.tv_sec = tv.tv_sec; + context->presstime.tv_usec = tv.tv_usec; + } + + lirc_buffer_write(context->driver->rbuf, buf); + wake_up(&context->driver->rbuf->wait_poll); +} + +/** + * Callback function for USB core API: receive data + */ +static void usb_rx_callback(struct urb *urb) +{ + struct sasem_context *context; + + if (!urb) + return; + context = (struct sasem_context *) urb->context; + if (!context) + return; + + switch (urb->status) { + + case -ENOENT: /* usbcore unlink successful! */ + return; + + case 0: + if (context->ir_isopen) + incoming_packet(context, urb); + break; + + default: + printk(KERN_WARNING "%s: status (%d): ignored", + __func__, urb->status); + break; + } + + usb_submit_urb(context->rx_urb, GFP_ATOMIC); + return; +} + + + +/** + * Callback function for USB core API: Probe + */ +static int sasem_probe(struct usb_interface *interface, + const struct usb_device_id *id) +{ + struct usb_device *dev = NULL; + struct usb_host_interface *iface_desc = NULL; + struct usb_endpoint_descriptor *rx_endpoint = NULL; + struct usb_endpoint_descriptor *tx_endpoint = NULL; + struct urb *rx_urb = NULL; + struct urb *tx_urb = NULL; + struct lirc_driver *driver = NULL; + struct lirc_buffer *rbuf = NULL; + int lirc_minor = 0; + int num_endpoints; + int retval = 0; + int vfd_ep_found; + int ir_ep_found; + int alloc_status; + struct sasem_context *context = NULL; + int i; + + printk(KERN_INFO "%s: found Sasem device\n", __func__); + + + dev = usb_get_dev(interface_to_usbdev(interface)); + iface_desc = interface->cur_altsetting; + num_endpoints = iface_desc->desc.bNumEndpoints; + + /* + * Scan the endpoint list and set: + * first input endpoint = IR endpoint + * first output endpoint = VFD endpoint + */ + + ir_ep_found = 0; + vfd_ep_found = 0; + + for (i = 0; i < num_endpoints && !(ir_ep_found && vfd_ep_found); ++i) { + + struct usb_endpoint_descriptor *ep; + int ep_dir; + int ep_type; + ep = &iface_desc->endpoint [i].desc; + ep_dir = ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK; + ep_type = ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK; + + if (!ir_ep_found && + ep_dir == USB_DIR_IN && + ep_type == USB_ENDPOINT_XFER_INT) { + + rx_endpoint = ep; + ir_ep_found = 1; + if (debug) + printk(KERN_INFO "%s: found IR endpoint\n", + __func__); + + } else if (!vfd_ep_found && + ep_dir == USB_DIR_OUT && + ep_type == USB_ENDPOINT_XFER_INT) { + + tx_endpoint = ep; + vfd_ep_found = 1; + if (debug) + printk(KERN_INFO "%s: found VFD endpoint\n", + __func__); + } + } + + /* Input endpoint is mandatory */ + if (!ir_ep_found) { + + err("%s: no valid input (IR) endpoint found.", __func__); + retval = -ENODEV; + goto exit; + } + + if (!vfd_ep_found) + printk(KERN_INFO "%s: no valid output (VFD) endpoint found.\n", + __func__); + + + /* Allocate memory */ + alloc_status = 0; + + context = kzalloc(sizeof(struct sasem_context), GFP_KERNEL); + if (!context) { + err("%s: kzalloc failed for context", __func__); + alloc_status = 1; + goto alloc_status_switch; + } + driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL); + if (!driver) { + err("%s: kzalloc failed for lirc_driver", __func__); + alloc_status = 2; + goto alloc_status_switch; + } + rbuf = kmalloc(sizeof(struct lirc_buffer), GFP_KERNEL); + if (!rbuf) { + err("%s: kmalloc failed for lirc_buffer", __func__); + alloc_status = 3; + goto alloc_status_switch; + } + if (lirc_buffer_init(rbuf, BUF_CHUNK_SIZE, BUF_SIZE)) { + err("%s: lirc_buffer_init failed", __func__); + alloc_status = 4; + goto alloc_status_switch; + } + rx_urb = usb_alloc_urb(0, GFP_KERNEL); + if (!rx_urb) { + err("%s: usb_alloc_urb failed for IR urb", __func__); + alloc_status = 5; + goto alloc_status_switch; + } + if (vfd_ep_found) { + tx_urb = usb_alloc_urb(0, GFP_KERNEL); + if (!tx_urb) { + err("%s: usb_alloc_urb failed for VFD urb", + __func__); + alloc_status = 6; + goto alloc_status_switch; + } + } + + mutex_init(&context->ctx_lock); + + strcpy(driver->name, MOD_NAME); + driver->minor = -1; + driver->code_length = 64; + driver->sample_rate = 0; + driver->features = LIRC_CAN_REC_LIRCCODE; + driver->data = context; + driver->rbuf = rbuf; + driver->set_use_inc = ir_open; + driver->set_use_dec = ir_close; + driver->dev = &interface->dev; + driver->owner = THIS_MODULE; + + mutex_lock(&context->ctx_lock); + + lirc_minor = lirc_register_driver(driver); + if (lirc_minor < 0) { + err("%s: lirc_register_driver failed", __func__); + alloc_status = 7; + mutex_unlock(&context->ctx_lock); + } else + printk(KERN_INFO "%s: Registered Sasem driver (minor:%d)\n", + __func__, lirc_minor); + +alloc_status_switch: + + switch (alloc_status) { + + case 7: + if (vfd_ep_found) + usb_free_urb(tx_urb); + case 6: + usb_free_urb(rx_urb); + case 5: + lirc_buffer_free(rbuf); + case 4: + kfree(rbuf); + case 3: + kfree(driver); + case 2: + kfree(context); + context = NULL; + case 1: + retval = -ENOMEM; + goto exit; + } + + /* Needed while unregistering! */ + driver->minor = lirc_minor; + + context->dev = dev; + context->dev_present = 1; + context->rx_endpoint = rx_endpoint; + context->rx_urb = rx_urb; + if (vfd_ep_found) { + context->tx_endpoint = tx_endpoint; + context->tx_urb = tx_urb; + context->vfd_contrast = 1000; /* range 0 - 1000 */ + } + context->driver = driver; + + usb_set_intfdata(interface, context); + + if (vfd_ep_found) { + + if (debug) + printk(KERN_INFO "Registering VFD with sysfs\n"); + if (usb_register_dev(interface, &sasem_class)) + /* Not a fatal error, so ignore */ + printk(KERN_INFO "%s: could not get a minor number " + "for VFD\n", __func__); + } + + printk(KERN_INFO "%s: Sasem device on usb<%d:%d> initialized\n", + __func__, dev->bus->busnum, dev->devnum); + + mutex_unlock(&context->ctx_lock); +exit: + return retval; +} + +/** + * Callback function for USB core API: disonnect + */ +static void sasem_disconnect(struct usb_interface *interface) +{ + struct sasem_context *context; + + /* prevent races with ir_open()/vfd_open() */ + mutex_lock(&disconnect_lock); + + context = usb_get_intfdata(interface); + mutex_lock(&context->ctx_lock); + + printk(KERN_INFO "%s: Sasem device disconnected\n", __func__); + + usb_set_intfdata(interface, NULL); + context->dev_present = 0; + + /* Stop reception */ + usb_kill_urb(context->rx_urb); + + /* Abort ongoing write */ + if (atomic_read(&context->tx.busy)) { + + usb_kill_urb(context->tx_urb); + wait_for_completion(&context->tx.finished); + } + + /* De-register from lirc_dev if IR port is not open */ + if (!context->ir_isopen) + deregister_from_lirc(context); + + usb_deregister_dev(interface, &sasem_class); + + mutex_unlock(&context->ctx_lock); + + if (!context->ir_isopen && !context->vfd_isopen) + delete_context(context); + + mutex_unlock(&disconnect_lock); +} + +static int __init sasem_init(void) +{ + int rc; + + printk(KERN_INFO MOD_DESC ", v" MOD_VERSION "\n"); + printk(KERN_INFO MOD_AUTHOR "\n"); + + rc = usb_register(&sasem_driver); + if (rc < 0) { + err("%s: usb register failed (%d)", __func__, rc); + return -ENODEV; + } + return 0; +} + +static void __exit sasem_exit(void) +{ + usb_deregister(&sasem_driver); + printk(KERN_INFO "module removed. Goodbye!\n"); +} + + +module_init(sasem_init); +module_exit(sasem_exit); --- linux-2.6.35.orig/drivers/staging/lirc/lirc_serial.c +++ linux-2.6.35/drivers/staging/lirc/lirc_serial.c @@ -0,0 +1,1313 @@ +/* + * lirc_serial.c + * + * lirc_serial - Device driver that records pulse- and pause-lengths + * (space-lengths) between DDCD event on a serial port. + * + * Copyright (C) 1996,97 Ralph Metzler + * Copyright (C) 1998 Trent Piepho + * Copyright (C) 1998 Ben Pfaff + * Copyright (C) 1999 Christoph Bartelmus + * Copyright (C) 2007 Andrei Tanas (suspend/resume support) + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +/* + * Steve's changes to improve transmission fidelity: + * - for systems with the rdtsc instruction and the clock counter, a + * send_pule that times the pulses directly using the counter. + * This means that the LIRC_SERIAL_TRANSMITTER_LATENCY fudge is + * not needed. Measurement shows very stable waveform, even where + * PCI activity slows the access to the UART, which trips up other + * versions. + * - For other system, non-integer-microsecond pulse/space lengths, + * done using fixed point binary. So, much more accurate carrier + * frequency. + * - fine tuned transmitter latency, taking advantage of fractional + * microseconds in previous change + * - Fixed bug in the way transmitter latency was accounted for by + * tuning the pulse lengths down - the send_pulse routine ignored + * this overhead as it timed the overall pulse length - so the + * pulse frequency was right but overall pulse length was too + * long. Fixed by accounting for latency on each pulse/space + * iteration. + * + * Steve Davies July 2001 + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#ifdef CONFIG_LIRC_SERIAL_NSLU2 +#include +#endif +/* From Intel IXP42X Developer's Manual (#252480-005): */ +/* ftp://download.intel.com/design/network/manuals/25248005.pdf */ +#define UART_IE_IXP42X_UUE 0x40 /* IXP42X UART Unit enable */ +#define UART_IE_IXP42X_RTOIE 0x10 /* IXP42X Receiver Data Timeout int.enable */ + +#include +#include + +#define LIRC_DRIVER_NAME "lirc_serial" + +struct lirc_serial { + int signal_pin; + int signal_pin_change; + u8 on; + u8 off; + long (*send_pulse)(unsigned long length); + void (*send_space)(long length); + int features; + spinlock_t lock; +}; + +#define LIRC_HOMEBREW 0 +#define LIRC_IRDEO 1 +#define LIRC_IRDEO_REMOTE 2 +#define LIRC_ANIMAX 3 +#define LIRC_IGOR 4 +#define LIRC_NSLU2 5 + +/*** module parameters ***/ +static int type; +static int io; +static int irq; +static int iommap; +static int ioshift; +static int softcarrier = 1; +static int share_irq; +static int debug; +static int sense = -1; /* -1 = auto, 0 = active high, 1 = active low */ +static int txsense; /* 0 = active high, 1 = active low */ + +#define dprintk(fmt, args...) \ + do { \ + if (debug) \ + printk(KERN_DEBUG LIRC_DRIVER_NAME ": " \ + fmt, ## args); \ + } while (0) + +/* forward declarations */ +static long send_pulse_irdeo(unsigned long length); +static long send_pulse_homebrew(unsigned long length); +static void send_space_irdeo(long length); +static void send_space_homebrew(long length); + +static struct lirc_serial hardware[] = { + [LIRC_HOMEBREW] = { + .signal_pin = UART_MSR_DCD, + .signal_pin_change = UART_MSR_DDCD, + .on = (UART_MCR_RTS | UART_MCR_OUT2 | UART_MCR_DTR), + .off = (UART_MCR_RTS | UART_MCR_OUT2), + .send_pulse = send_pulse_homebrew, + .send_space = send_space_homebrew, +#ifdef CONFIG_LIRC_SERIAL_TRANSMITTER + .features = (LIRC_CAN_SET_SEND_DUTY_CYCLE | + LIRC_CAN_SET_SEND_CARRIER | + LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2) +#else + .features = LIRC_CAN_REC_MODE2 +#endif + }, + + [LIRC_IRDEO] = { + .signal_pin = UART_MSR_DSR, + .signal_pin_change = UART_MSR_DDSR, + .on = UART_MCR_OUT2, + .off = (UART_MCR_RTS | UART_MCR_DTR | UART_MCR_OUT2), + .send_pulse = send_pulse_irdeo, + .send_space = send_space_irdeo, + .features = (LIRC_CAN_SET_SEND_DUTY_CYCLE | + LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2) + }, + + [LIRC_IRDEO_REMOTE] = { + .signal_pin = UART_MSR_DSR, + .signal_pin_change = UART_MSR_DDSR, + .on = (UART_MCR_RTS | UART_MCR_DTR | UART_MCR_OUT2), + .off = (UART_MCR_RTS | UART_MCR_DTR | UART_MCR_OUT2), + .send_pulse = send_pulse_irdeo, + .send_space = send_space_irdeo, + .features = (LIRC_CAN_SET_SEND_DUTY_CYCLE | + LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2) + }, + + [LIRC_ANIMAX] = { + .signal_pin = UART_MSR_DCD, + .signal_pin_change = UART_MSR_DDCD, + .on = 0, + .off = (UART_MCR_RTS | UART_MCR_DTR | UART_MCR_OUT2), + .send_pulse = NULL, + .send_space = NULL, + .features = LIRC_CAN_REC_MODE2 + }, + + [LIRC_IGOR] = { + .signal_pin = UART_MSR_DSR, + .signal_pin_change = UART_MSR_DDSR, + .on = (UART_MCR_RTS | UART_MCR_OUT2 | UART_MCR_DTR), + .off = (UART_MCR_RTS | UART_MCR_OUT2), + .send_pulse = send_pulse_homebrew, + .send_space = send_space_homebrew, +#ifdef CONFIG_LIRC_SERIAL_TRANSMITTER + .features = (LIRC_CAN_SET_SEND_DUTY_CYCLE | + LIRC_CAN_SET_SEND_CARRIER | + LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2) +#else + .features = LIRC_CAN_REC_MODE2 +#endif + }, + +#ifdef CONFIG_LIRC_SERIAL_NSLU2 + /* + * Modified Linksys Network Storage Link USB 2.0 (NSLU2): + * We receive on CTS of the 2nd serial port (R142,LHS), we + * transmit with a IR diode between GPIO[1] (green status LED), + * and ground (Matthias Goebl ). + * See also http://www.nslu2-linux.org for this device + */ + [LIRC_NSLU2] = { + .signal_pin = UART_MSR_CTS, + .signal_pin_change = UART_MSR_DCTS, + .on = (UART_MCR_RTS | UART_MCR_OUT2 | UART_MCR_DTR), + .off = (UART_MCR_RTS | UART_MCR_OUT2), + .send_pulse = send_pulse_homebrew, + .send_space = send_space_homebrew, +#ifdef CONFIG_LIRC_SERIAL_TRANSMITTER + .features = (LIRC_CAN_SET_SEND_DUTY_CYCLE | + LIRC_CAN_SET_SEND_CARRIER | + LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2) +#else + .features = LIRC_CAN_REC_MODE2 +#endif + }, +#endif + +}; + +#define RS_ISR_PASS_LIMIT 256 + +/* + * A long pulse code from a remote might take up to 300 bytes. The + * daemon should read the bytes as soon as they are generated, so take + * the number of keys you think you can push before the daemon runs + * and multiply by 300. The driver will warn you if you overrun this + * buffer. If you have a slow computer or non-busmastering IDE disks, + * maybe you will need to increase this. + */ + +/* This MUST be a power of two! It has to be larger than 1 as well. */ + +#define RBUF_LEN 256 + +static struct timeval lasttv = {0, 0}; + +static struct lirc_buffer rbuf; + +static unsigned int freq = 38000; +static unsigned int duty_cycle = 50; + +/* Initialized in init_timing_params() */ +static unsigned long period; +static unsigned long pulse_width; +static unsigned long space_width; + +#if defined(__i386__) +/* + * From: + * Linux I/O port programming mini-HOWTO + * Author: Riku Saikkonen + * v, 28 December 1997 + * + * [...] + * Actually, a port I/O instruction on most ports in the 0-0x3ff range + * takes almost exactly 1 microsecond, so if you're, for example, using + * the parallel port directly, just do additional inb()s from that port + * to delay. + * [...] + */ +/* transmitter latency 1.5625us 0x1.90 - this figure arrived at from + * comment above plus trimming to match actual measured frequency. + * This will be sensitive to cpu speed, though hopefully most of the 1.5us + * is spent in the uart access. Still - for reference test machine was a + * 1.13GHz Athlon system - Steve + */ + +/* + * changed from 400 to 450 as this works better on slower machines; + * faster machines will use the rdtsc code anyway + */ +#define LIRC_SERIAL_TRANSMITTER_LATENCY 450 + +#else + +/* does anybody have information on other platforms ? */ +/* 256 = 1<<8 */ +#define LIRC_SERIAL_TRANSMITTER_LATENCY 256 + +#endif /* __i386__ */ +/* + * FIXME: should we be using hrtimers instead of this + * LIRC_SERIAL_TRANSMITTER_LATENCY nonsense? + */ + +/* fetch serial input packet (1 byte) from register offset */ +static u8 sinp(int offset) +{ + if (iommap != 0) + /* the register is memory-mapped */ + offset <<= ioshift; + + return inb(io + offset); +} + +/* write serial output packet (1 byte) of value to register offset */ +static void soutp(int offset, u8 value) +{ + if (iommap != 0) + /* the register is memory-mapped */ + offset <<= ioshift; + + outb(value, io + offset); +} + +static void on(void) +{ +#ifdef CONFIG_LIRC_SERIAL_NSLU2 + /* + * On NSLU2, we put the transmit diode between the output of the green + * status LED and ground + */ + if (type == LIRC_NSLU2) { + gpio_line_set(NSLU2_LED_GRN, IXP4XX_GPIO_LOW); + return; + } +#endif + if (txsense) + soutp(UART_MCR, hardware[type].off); + else + soutp(UART_MCR, hardware[type].on); +} + +static void off(void) +{ +#ifdef CONFIG_LIRC_SERIAL_NSLU2 + if (type == LIRC_NSLU2) { + gpio_line_set(NSLU2_LED_GRN, IXP4XX_GPIO_HIGH); + return; + } +#endif + if (txsense) + soutp(UART_MCR, hardware[type].on); + else + soutp(UART_MCR, hardware[type].off); +} + +#ifndef MAX_UDELAY_MS +#define MAX_UDELAY_US 5000 +#else +#define MAX_UDELAY_US (MAX_UDELAY_MS*1000) +#endif + +static void safe_udelay(unsigned long usecs) +{ + while (usecs > MAX_UDELAY_US) { + udelay(MAX_UDELAY_US); + usecs -= MAX_UDELAY_US; + } + udelay(usecs); +} + +#ifdef USE_RDTSC +/* + * This is an overflow/precision juggle, complicated in that we can't + * do long long divide in the kernel + */ + +/* + * When we use the rdtsc instruction to measure clocks, we keep the + * pulse and space widths as clock cycles. As this is CPU speed + * dependent, the widths must be calculated in init_port and ioctl + * time + */ + +/* So send_pulse can quickly convert microseconds to clocks */ +static unsigned long conv_us_to_clocks; + +static int init_timing_params(unsigned int new_duty_cycle, + unsigned int new_freq) +{ + unsigned long long loops_per_sec, work; + + duty_cycle = new_duty_cycle; + freq = new_freq; + + loops_per_sec = current_cpu_data.loops_per_jiffy; + loops_per_sec *= HZ; + + /* How many clocks in a microsecond?, avoiding long long divide */ + work = loops_per_sec; + work *= 4295; /* 4295 = 2^32 / 1e6 */ + conv_us_to_clocks = (work >> 32); + + /* + * Carrier period in clocks, approach good up to 32GHz clock, + * gets carrier frequency within 8Hz + */ + period = loops_per_sec >> 3; + period /= (freq >> 3); + + /* Derive pulse and space from the period */ + pulse_width = period * duty_cycle / 100; + space_width = period - pulse_width; + dprintk("in init_timing_params, freq=%d, duty_cycle=%d, " + "clk/jiffy=%ld, pulse=%ld, space=%ld, " + "conv_us_to_clocks=%ld\n", + freq, duty_cycle, current_cpu_data.loops_per_jiffy, + pulse_width, space_width, conv_us_to_clocks); + return 0; +} +#else /* ! USE_RDTSC */ +static int init_timing_params(unsigned int new_duty_cycle, + unsigned int new_freq) +{ +/* + * period, pulse/space width are kept with 8 binary places - + * IE multiplied by 256. + */ + if (256 * 1000000L / new_freq * new_duty_cycle / 100 <= + LIRC_SERIAL_TRANSMITTER_LATENCY) + return -EINVAL; + if (256 * 1000000L / new_freq * (100 - new_duty_cycle) / 100 <= + LIRC_SERIAL_TRANSMITTER_LATENCY) + return -EINVAL; + duty_cycle = new_duty_cycle; + freq = new_freq; + period = 256 * 1000000L / freq; + pulse_width = period * duty_cycle / 100; + space_width = period - pulse_width; + dprintk("in init_timing_params, freq=%d pulse=%ld, " + "space=%ld\n", freq, pulse_width, space_width); + return 0; +} +#endif /* USE_RDTSC */ + + +/* return value: space length delta */ + +static long send_pulse_irdeo(unsigned long length) +{ + long rawbits, ret; + int i; + unsigned char output; + unsigned char chunk, shifted; + + /* how many bits have to be sent ? */ + rawbits = length * 1152 / 10000; + if (duty_cycle > 50) + chunk = 3; + else + chunk = 1; + for (i = 0, output = 0x7f; rawbits > 0; rawbits -= 3) { + shifted = chunk << (i * 3); + shifted >>= 1; + output &= (~shifted); + i++; + if (i == 3) { + soutp(UART_TX, output); + while (!(sinp(UART_LSR) & UART_LSR_THRE)) + ; + output = 0x7f; + i = 0; + } + } + if (i != 0) { + soutp(UART_TX, output); + while (!(sinp(UART_LSR) & UART_LSR_TEMT)) + ; + } + + if (i == 0) + ret = (-rawbits) * 10000 / 1152; + else + ret = (3 - i) * 3 * 10000 / 1152 + (-rawbits) * 10000 / 1152; + + return ret; +} + +#ifdef USE_RDTSC +/* Version that uses Pentium rdtsc instruction to measure clocks */ + +/* + * This version does sub-microsecond timing using rdtsc instruction, + * and does away with the fudged LIRC_SERIAL_TRANSMITTER_LATENCY + * Implicitly i586 architecture... - Steve + */ + +static long send_pulse_homebrew_softcarrier(unsigned long length) +{ + int flag; + unsigned long target, start, now; + + /* Get going quick as we can */ + rdtscl(start); + on(); + /* Convert length from microseconds to clocks */ + length *= conv_us_to_clocks; + /* And loop till time is up - flipping at right intervals */ + now = start; + target = pulse_width; + flag = 1; + /* + * FIXME: This looks like a hard busy wait, without even an occasional, + * polite, cpu_relax() call. There's got to be a better way? + * + * The i2c code has the result of a lot of bit-banging work, I wonder if + * there's something there which could be helpful here. + */ + while ((now - start) < length) { + /* Delay till flip time */ + do { + rdtscl(now); + } while ((now - start) < target); + + /* flip */ + if (flag) { + rdtscl(now); + off(); + target += space_width; + } else { + rdtscl(now); on(); + target += pulse_width; + } + flag = !flag; + } + rdtscl(now); + return ((now - start) - length) / conv_us_to_clocks; +} +#else /* ! USE_RDTSC */ +/* Version using udelay() */ + +/* + * here we use fixed point arithmetic, with 8 + * fractional bits. that gets us within 0.1% or so of the right average + * frequency, albeit with some jitter in pulse length - Steve + */ + +/* To match 8 fractional bits used for pulse/space length */ + +static long send_pulse_homebrew_softcarrier(unsigned long length) +{ + int flag; + unsigned long actual, target, d; + length <<= 8; + + actual = 0; target = 0; flag = 0; + while (actual < length) { + if (flag) { + off(); + target += space_width; + } else { + on(); + target += pulse_width; + } + d = (target - actual - + LIRC_SERIAL_TRANSMITTER_LATENCY + 128) >> 8; + /* + * Note - we've checked in ioctl that the pulse/space + * widths are big enough so that d is > 0 + */ + udelay(d); + actual += (d << 8) + LIRC_SERIAL_TRANSMITTER_LATENCY; + flag = !flag; + } + return (actual-length) >> 8; +} +#endif /* USE_RDTSC */ + +static long send_pulse_homebrew(unsigned long length) +{ + if (length <= 0) + return 0; + + if (softcarrier) + return send_pulse_homebrew_softcarrier(length); + else { + on(); + safe_udelay(length); + return 0; + } +} + +static void send_space_irdeo(long length) +{ + if (length <= 0) + return; + + safe_udelay(length); +} + +static void send_space_homebrew(long length) +{ + off(); + if (length <= 0) + return; + safe_udelay(length); +} + +static void rbwrite(int l) +{ + if (lirc_buffer_full(&rbuf)) { + /* no new signals will be accepted */ + dprintk("Buffer overrun\n"); + return; + } + lirc_buffer_write(&rbuf, (void *)&l); +} + +static void frbwrite(int l) +{ + /* simple noise filter */ + static int pulse, space; + static unsigned int ptr; + + if (ptr > 0 && (l & PULSE_BIT)) { + pulse += l & PULSE_MASK; + if (pulse > 250) { + rbwrite(space); + rbwrite(pulse | PULSE_BIT); + ptr = 0; + pulse = 0; + } + return; + } + if (!(l & PULSE_BIT)) { + if (ptr == 0) { + if (l > 20000) { + space = l; + ptr++; + return; + } + } else { + if (l > 20000) { + space += pulse; + if (space > PULSE_MASK) + space = PULSE_MASK; + space += l; + if (space > PULSE_MASK) + space = PULSE_MASK; + pulse = 0; + return; + } + rbwrite(space); + rbwrite(pulse | PULSE_BIT); + ptr = 0; + pulse = 0; + } + } + rbwrite(l); +} + +static irqreturn_t irq_handler(int i, void *blah) +{ + struct timeval tv; + int counter, dcd; + u8 status; + long deltv; + int data; + static int last_dcd = -1; + + if ((sinp(UART_IIR) & UART_IIR_NO_INT)) { + /* not our interrupt */ + return IRQ_NONE; + } + + counter = 0; + do { + counter++; + status = sinp(UART_MSR); + if (counter > RS_ISR_PASS_LIMIT) { + printk(KERN_WARNING LIRC_DRIVER_NAME ": AIEEEE: " + "We're caught!\n"); + break; + } + if ((status & hardware[type].signal_pin_change) + && sense != -1) { + /* get current time */ + do_gettimeofday(&tv); + + /* New mode, written by Trent Piepho + . */ + + /* + * The old format was not very portable. + * We now use an int to pass pulses + * and spaces to user space. + * + * If PULSE_BIT is set a pulse has been + * received, otherwise a space has been + * received. The driver needs to know if your + * receiver is active high or active low, or + * the space/pulse sense could be + * inverted. The bits denoted by PULSE_MASK are + * the length in microseconds. Lengths greater + * than or equal to 16 seconds are clamped to + * PULSE_MASK. All other bits are unused. + * This is a much simpler interface for user + * programs, as well as eliminating "out of + * phase" errors with space/pulse + * autodetection. + */ + + /* calc time since last interrupt in microseconds */ + dcd = (status & hardware[type].signal_pin) ? 1 : 0; + + if (dcd == last_dcd) { + printk(KERN_WARNING LIRC_DRIVER_NAME + ": ignoring spike: %d %d %lx %lx %lx %lx\n", + dcd, sense, + tv.tv_sec, lasttv.tv_sec, + tv.tv_usec, lasttv.tv_usec); + continue; + } + + deltv = tv.tv_sec-lasttv.tv_sec; + if (tv.tv_sec < lasttv.tv_sec || + (tv.tv_sec == lasttv.tv_sec && + tv.tv_usec < lasttv.tv_usec)) { + printk(KERN_WARNING LIRC_DRIVER_NAME + ": AIEEEE: your clock just jumped " + "backwards\n"); + printk(KERN_WARNING LIRC_DRIVER_NAME + ": %d %d %lx %lx %lx %lx\n", + dcd, sense, + tv.tv_sec, lasttv.tv_sec, + tv.tv_usec, lasttv.tv_usec); + data = PULSE_MASK; + } else if (deltv > 15) { + data = PULSE_MASK; /* really long time */ + if (!(dcd^sense)) { + /* sanity check */ + printk(KERN_WARNING LIRC_DRIVER_NAME + ": AIEEEE: " + "%d %d %lx %lx %lx %lx\n", + dcd, sense, + tv.tv_sec, lasttv.tv_sec, + tv.tv_usec, lasttv.tv_usec); + /* + * detecting pulse while this + * MUST be a space! + */ + sense = sense ? 0 : 1; + } + } else + data = (int) (deltv*1000000 + + tv.tv_usec - + lasttv.tv_usec); + frbwrite(dcd^sense ? data : (data|PULSE_BIT)); + lasttv = tv; + last_dcd = dcd; + wake_up_interruptible(&rbuf.wait_poll); + } + } while (!(sinp(UART_IIR) & UART_IIR_NO_INT)); /* still pending ? */ + return IRQ_HANDLED; +} + + +static int hardware_init_port(void) +{ + u8 scratch, scratch2, scratch3; + + /* + * This is a simple port existence test, borrowed from the autoconfig + * function in drivers/serial/8250.c + */ + scratch = sinp(UART_IER); + soutp(UART_IER, 0); +#ifdef __i386__ + outb(0xff, 0x080); +#endif + scratch2 = sinp(UART_IER) & 0x0f; + soutp(UART_IER, 0x0f); +#ifdef __i386__ + outb(0x00, 0x080); +#endif + scratch3 = sinp(UART_IER) & 0x0f; + soutp(UART_IER, scratch); + if (scratch2 != 0 || scratch3 != 0x0f) { + /* we fail, there's nothing here */ + printk(KERN_ERR LIRC_DRIVER_NAME ": port existence test " + "failed, cannot continue\n"); + return -EINVAL; + } + + + + /* Set DLAB 0. */ + soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB)); + + /* First of all, disable all interrupts */ + soutp(UART_IER, sinp(UART_IER) & + (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI))); + + /* Clear registers. */ + sinp(UART_LSR); + sinp(UART_RX); + sinp(UART_IIR); + sinp(UART_MSR); + +#ifdef CONFIG_LIRC_SERIAL_NSLU2 + if (type == LIRC_NSLU2) { + /* Setup NSLU2 UART */ + + /* Enable UART */ + soutp(UART_IER, sinp(UART_IER) | UART_IE_IXP42X_UUE); + /* Disable Receiver data Time out interrupt */ + soutp(UART_IER, sinp(UART_IER) & ~UART_IE_IXP42X_RTOIE); + /* set out2 = interrupt unmask; off() doesn't set MCR + on NSLU2 */ + soutp(UART_MCR, UART_MCR_RTS|UART_MCR_OUT2); + } +#endif + + /* Set line for power source */ + off(); + + /* Clear registers again to be sure. */ + sinp(UART_LSR); + sinp(UART_RX); + sinp(UART_IIR); + sinp(UART_MSR); + + switch (type) { + case LIRC_IRDEO: + case LIRC_IRDEO_REMOTE: + /* setup port to 7N1 @ 115200 Baud */ + /* 7N1+start = 9 bits at 115200 ~ 3 bits at 38kHz */ + + /* Set DLAB 1. */ + soutp(UART_LCR, sinp(UART_LCR) | UART_LCR_DLAB); + /* Set divisor to 1 => 115200 Baud */ + soutp(UART_DLM, 0); + soutp(UART_DLL, 1); + /* Set DLAB 0 + 7N1 */ + soutp(UART_LCR, UART_LCR_WLEN7); + /* THR interrupt already disabled at this point */ + break; + default: + break; + } + + return 0; +} + +static int init_port(void) +{ + int i, nlow, nhigh; + + /* Reserve io region. */ + /* + * Future MMAP-Developers: Attention! + * For memory mapped I/O you *might* need to use ioremap() first, + * for the NSLU2 it's done in boot code. + */ + if (((iommap != 0) + && (request_mem_region(iommap, 8 << ioshift, + LIRC_DRIVER_NAME) == NULL)) + || ((iommap == 0) + && (request_region(io, 8, LIRC_DRIVER_NAME) == NULL))) { + printk(KERN_ERR LIRC_DRIVER_NAME + ": port %04x already in use\n", io); + printk(KERN_WARNING LIRC_DRIVER_NAME + ": use 'setserial /dev/ttySX uart none'\n"); + printk(KERN_WARNING LIRC_DRIVER_NAME + ": or compile the serial port driver as module and\n"); + printk(KERN_WARNING LIRC_DRIVER_NAME + ": make sure this module is loaded first\n"); + return -EBUSY; + } + + if (hardware_init_port() < 0) + return -EINVAL; + + /* Initialize pulse/space widths */ + init_timing_params(duty_cycle, freq); + + /* If pin is high, then this must be an active low receiver. */ + if (sense == -1) { + /* wait 1/2 sec for the power supply */ + msleep(500); + + /* + * probe 9 times every 0.04s, collect "votes" for + * active high/low + */ + nlow = 0; + nhigh = 0; + for (i = 0; i < 9; i++) { + if (sinp(UART_MSR) & hardware[type].signal_pin) + nlow++; + else + nhigh++; + msleep(40); + } + sense = (nlow >= nhigh ? 1 : 0); + printk(KERN_INFO LIRC_DRIVER_NAME ": auto-detected active " + "%s receiver\n", sense ? "low" : "high"); + } else + printk(KERN_INFO LIRC_DRIVER_NAME ": Manually using active " + "%s receiver\n", sense ? "low" : "high"); + + return 0; +} + +static int set_use_inc(void *data) +{ + int result; + unsigned long flags; + + /* initialize timestamp */ + do_gettimeofday(&lasttv); + + result = request_irq(irq, irq_handler, + IRQF_DISABLED | (share_irq ? IRQF_SHARED : 0), + LIRC_DRIVER_NAME, (void *)&hardware); + + switch (result) { + case -EBUSY: + printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n", irq); + return -EBUSY; + case -EINVAL: + printk(KERN_ERR LIRC_DRIVER_NAME + ": Bad irq number or handler\n"); + return -EINVAL; + default: + dprintk("Interrupt %d, port %04x obtained\n", irq, io); + break; + }; + + spin_lock_irqsave(&hardware[type].lock, flags); + + /* Set DLAB 0. */ + soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB)); + + soutp(UART_IER, sinp(UART_IER)|UART_IER_MSI); + + spin_unlock_irqrestore(&hardware[type].lock, flags); + + return 0; +} + +static void set_use_dec(void *data) +{ unsigned long flags; + + spin_lock_irqsave(&hardware[type].lock, flags); + + /* Set DLAB 0. */ + soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB)); + + /* First of all, disable all interrupts */ + soutp(UART_IER, sinp(UART_IER) & + (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI))); + spin_unlock_irqrestore(&hardware[type].lock, flags); + + free_irq(irq, (void *)&hardware); + + dprintk("freed IRQ %d\n", irq); +} + +static ssize_t lirc_write(struct file *file, const char *buf, + size_t n, loff_t *ppos) +{ + int i, count; + unsigned long flags; + long delta = 0; + int *wbuf; + + if (!(hardware[type].features & LIRC_CAN_SEND_PULSE)) + return -EBADF; + + count = n / sizeof(int); + if (n % sizeof(int) || count % 2 == 0) + return -EINVAL; + wbuf = memdup_user(buf, n); + if (PTR_ERR(wbuf)) + return PTR_ERR(wbuf); + spin_lock_irqsave(&hardware[type].lock, flags); + if (type == LIRC_IRDEO) { + /* DTR, RTS down */ + on(); + } + for (i = 0; i < count; i++) { + if (i%2) + hardware[type].send_space(wbuf[i] - delta); + else + delta = hardware[type].send_pulse(wbuf[i]); + } + off(); + spin_unlock_irqrestore(&hardware[type].lock, flags); + return n; +} + +static long lirc_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) +{ + int result; + unsigned long value; + unsigned int ivalue; + + switch (cmd) { + case LIRC_GET_SEND_MODE: + if (!(hardware[type].features&LIRC_CAN_SEND_MASK)) + return -ENOIOCTLCMD; + + result = put_user(LIRC_SEND2MODE + (hardware[type].features&LIRC_CAN_SEND_MASK), + (unsigned long *) arg); + if (result) + return result; + break; + + case LIRC_SET_SEND_MODE: + if (!(hardware[type].features&LIRC_CAN_SEND_MASK)) + return -ENOIOCTLCMD; + + result = get_user(value, (unsigned long *) arg); + if (result) + return result; + /* only LIRC_MODE_PULSE supported */ + if (value != LIRC_MODE_PULSE) + return -ENOSYS; + break; + + case LIRC_GET_LENGTH: + return -ENOSYS; + break; + + case LIRC_SET_SEND_DUTY_CYCLE: + dprintk("SET_SEND_DUTY_CYCLE\n"); + if (!(hardware[type].features&LIRC_CAN_SET_SEND_DUTY_CYCLE)) + return -ENOIOCTLCMD; + + result = get_user(ivalue, (unsigned int *) arg); + if (result) + return result; + if (ivalue <= 0 || ivalue > 100) + return -EINVAL; + return init_timing_params(ivalue, freq); + break; + + case LIRC_SET_SEND_CARRIER: + dprintk("SET_SEND_CARRIER\n"); + if (!(hardware[type].features&LIRC_CAN_SET_SEND_CARRIER)) + return -ENOIOCTLCMD; + + result = get_user(ivalue, (unsigned int *) arg); + if (result) + return result; + if (ivalue > 500000 || ivalue < 20000) + return -EINVAL; + return init_timing_params(duty_cycle, ivalue); + break; + + default: + return lirc_dev_fop_ioctl(filep, cmd, arg); + } + return 0; +} + +static const struct file_operations lirc_fops = { + .owner = THIS_MODULE, + .write = lirc_write, + .unlocked_ioctl = lirc_ioctl, + .read = lirc_dev_fop_read, + .poll = lirc_dev_fop_poll, + .open = lirc_dev_fop_open, + .release = lirc_dev_fop_close, +}; + +static struct lirc_driver driver = { + .name = LIRC_DRIVER_NAME, + .minor = -1, + .code_length = 1, + .sample_rate = 0, + .data = NULL, + .add_to_buf = NULL, + .rbuf = &rbuf, + .set_use_inc = set_use_inc, + .set_use_dec = set_use_dec, + .fops = &lirc_fops, + .dev = NULL, + .owner = THIS_MODULE, +}; + +static struct platform_device *lirc_serial_dev; + +static int __devinit lirc_serial_probe(struct platform_device *dev) +{ + return 0; +} + +static int __devexit lirc_serial_remove(struct platform_device *dev) +{ + return 0; +} + +static int lirc_serial_suspend(struct platform_device *dev, + pm_message_t state) +{ + /* Set DLAB 0. */ + soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB)); + + /* Disable all interrupts */ + soutp(UART_IER, sinp(UART_IER) & + (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI))); + + /* Clear registers. */ + sinp(UART_LSR); + sinp(UART_RX); + sinp(UART_IIR); + sinp(UART_MSR); + + return 0; +} + +/* twisty maze... need a forward-declaration here... */ +static void lirc_serial_exit(void); + +static int lirc_serial_resume(struct platform_device *dev) +{ + unsigned long flags; + + if (hardware_init_port() < 0) { + lirc_serial_exit(); + return -EINVAL; + } + + spin_lock_irqsave(&hardware[type].lock, flags); + /* Enable Interrupt */ + do_gettimeofday(&lasttv); + soutp(UART_IER, sinp(UART_IER)|UART_IER_MSI); + off(); + + lirc_buffer_clear(&rbuf); + + spin_unlock_irqrestore(&hardware[type].lock, flags); + + return 0; +} + +static struct platform_driver lirc_serial_driver = { + .probe = lirc_serial_probe, + .remove = __devexit_p(lirc_serial_remove), + .suspend = lirc_serial_suspend, + .resume = lirc_serial_resume, + .driver = { + .name = "lirc_serial", + .owner = THIS_MODULE, + }, +}; + +static int __init lirc_serial_init(void) +{ + int result; + + /* Init read buffer. */ + result = lirc_buffer_init(&rbuf, sizeof(int), RBUF_LEN); + if (result < 0) + return -ENOMEM; + + result = platform_driver_register(&lirc_serial_driver); + if (result) { + printk("lirc register returned %d\n", result); + goto exit_buffer_free; + } + + lirc_serial_dev = platform_device_alloc("lirc_serial", 0); + if (!lirc_serial_dev) { + result = -ENOMEM; + goto exit_driver_unregister; + } + + result = platform_device_add(lirc_serial_dev); + if (result) + goto exit_device_put; + + return 0; + +exit_device_put: + platform_device_put(lirc_serial_dev); +exit_driver_unregister: + platform_driver_unregister(&lirc_serial_driver); +exit_buffer_free: + lirc_buffer_free(&rbuf); + return result; +} + +static void lirc_serial_exit(void) +{ + platform_device_unregister(lirc_serial_dev); + platform_driver_unregister(&lirc_serial_driver); + lirc_buffer_free(&rbuf); +} + +static int __init lirc_serial_init_module(void) +{ + int result; + + result = lirc_serial_init(); + if (result) + return result; + + switch (type) { + case LIRC_HOMEBREW: + case LIRC_IRDEO: + case LIRC_IRDEO_REMOTE: + case LIRC_ANIMAX: + case LIRC_IGOR: + /* if nothing specified, use ttyS0/com1 and irq 4 */ + io = io ? io : 0x3f8; + irq = irq ? irq : 4; + break; +#ifdef CONFIG_LIRC_SERIAL_NSLU2 + case LIRC_NSLU2: + io = io ? io : IRQ_IXP4XX_UART2; + irq = irq ? irq : (IXP4XX_UART2_BASE_VIRT + REG_OFFSET); + iommap = iommap ? iommap : IXP4XX_UART2_BASE_PHYS; + ioshift = ioshift ? ioshift : 2; + break; +#endif + default: + result = -EINVAL; + goto exit_serial_exit; + } + if (!softcarrier) { + switch (type) { + case LIRC_HOMEBREW: + case LIRC_IGOR: +#ifdef CONFIG_LIRC_SERIAL_NSLU2 + case LIRC_NSLU2: +#endif + hardware[type].features &= + ~(LIRC_CAN_SET_SEND_DUTY_CYCLE| + LIRC_CAN_SET_SEND_CARRIER); + break; + } + } + + result = init_port(); + if (result < 0) + goto exit_serial_exit; + driver.features = hardware[type].features; + driver.dev = &lirc_serial_dev->dev; + driver.minor = lirc_register_driver(&driver); + if (driver.minor < 0) { + printk(KERN_ERR LIRC_DRIVER_NAME + ": register_chrdev failed!\n"); + result = -EIO; + goto exit_release; + } + return 0; +exit_release: + release_region(io, 8); +exit_serial_exit: + lirc_serial_exit(); + return result; +} + +static void __exit lirc_serial_exit_module(void) +{ + lirc_serial_exit(); + if (iommap != 0) + release_mem_region(iommap, 8 << ioshift); + else + release_region(io, 8); + lirc_unregister_driver(driver.minor); + dprintk("cleaned up module\n"); +} + + +module_init(lirc_serial_init_module); +module_exit(lirc_serial_exit_module); + +MODULE_DESCRIPTION("Infra-red receiver driver for serial ports."); +MODULE_AUTHOR("Ralph Metzler, Trent Piepho, Ben Pfaff, " + "Christoph Bartelmus, Andrei Tanas"); +MODULE_LICENSE("GPL"); + +module_param(type, int, S_IRUGO); +MODULE_PARM_DESC(type, "Hardware type (0 = home-brew, 1 = IRdeo," + " 2 = IRdeo Remote, 3 = AnimaX, 4 = IgorPlug," + " 5 = NSLU2 RX:CTS2/TX:GreenLED)"); + +module_param(io, int, S_IRUGO); +MODULE_PARM_DESC(io, "I/O address base (0x3f8 or 0x2f8)"); + +/* some architectures (e.g. intel xscale) have memory mapped registers */ +module_param(iommap, bool, S_IRUGO); +MODULE_PARM_DESC(iommap, "physical base for memory mapped I/O" + " (0 = no memory mapped io)"); + +/* + * some architectures (e.g. intel xscale) align the 8bit serial registers + * on 32bit word boundaries. + * See linux-kernel/serial/8250.c serial_in()/out() + */ +module_param(ioshift, int, S_IRUGO); +MODULE_PARM_DESC(ioshift, "shift I/O register offset (0 = no shift)"); + +module_param(irq, int, S_IRUGO); +MODULE_PARM_DESC(irq, "Interrupt (4 or 3)"); + +module_param(share_irq, bool, S_IRUGO); +MODULE_PARM_DESC(share_irq, "Share interrupts (0 = off, 1 = on)"); + +module_param(sense, bool, S_IRUGO); +MODULE_PARM_DESC(sense, "Override autodetection of IR receiver circuit" + " (0 = active high, 1 = active low )"); + +#ifdef CONFIG_LIRC_SERIAL_TRANSMITTER +module_param(txsense, bool, S_IRUGO); +MODULE_PARM_DESC(txsense, "Sense of transmitter circuit" + " (0 = active high, 1 = active low )"); +#endif + +module_param(softcarrier, bool, S_IRUGO); +MODULE_PARM_DESC(softcarrier, "Software carrier (0 = off, 1 = on, default on)"); + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); --- linux-2.6.35.orig/drivers/staging/lirc/lirc_sir.c +++ linux-2.6.35/drivers/staging/lirc/lirc_sir.c @@ -0,0 +1,1282 @@ +/* + * LIRC SIR driver, (C) 2000 Milan Pikula + * + * lirc_sir - Device driver for use with SIR (serial infra red) + * mode of IrDA on many notebooks. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * + * 2000/09/16 Frank Przybylski : + * added timeout and relaxed pulse detection, removed gap bug + * + * 2000/12/15 Christoph Bartelmus : + * added support for Tekram Irmate 210 (sending does not work yet, + * kind of disappointing that nobody was able to implement that + * before), + * major clean-up + * + * 2001/02/27 Christoph Bartelmus : + * added support for StrongARM SA1100 embedded microprocessor + * parts cut'n'pasted from sa1100_ir.c (C) 2000 Russell King + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef LIRC_ON_SA1100 +#include +#ifdef CONFIG_SA1100_COLLIE +#include +#include +#endif +#endif + +#include + +#include +#include + +/* SECTION: Definitions */ + +/*** Tekram dongle ***/ +#ifdef LIRC_SIR_TEKRAM +/* stolen from kernel source */ +/* definitions for Tekram dongle */ +#define TEKRAM_115200 0x00 +#define TEKRAM_57600 0x01 +#define TEKRAM_38400 0x02 +#define TEKRAM_19200 0x03 +#define TEKRAM_9600 0x04 +#define TEKRAM_2400 0x08 + +#define TEKRAM_PW 0x10 /* Pulse select bit */ + +/* 10bit * 1s/115200bit in milliseconds = 87ms*/ +#define TIME_CONST (10000000ul/115200ul) + +#endif + +#ifdef LIRC_SIR_ACTISYS_ACT200L +static void init_act200(void); +#elif defined(LIRC_SIR_ACTISYS_ACT220L) +static void init_act220(void); +#endif + +/*** SA1100 ***/ +#ifdef LIRC_ON_SA1100 +struct sa1100_ser2_registers { + /* HSSP control register */ + unsigned char hscr0; + /* UART registers */ + unsigned char utcr0; + unsigned char utcr1; + unsigned char utcr2; + unsigned char utcr3; + unsigned char utcr4; + unsigned char utdr; + unsigned char utsr0; + unsigned char utsr1; +} sr; + +static int irq = IRQ_Ser2ICP; + +#define LIRC_ON_SA1100_TRANSMITTER_LATENCY 0 + +/* pulse/space ratio of 50/50 */ +static unsigned long pulse_width = (13-LIRC_ON_SA1100_TRANSMITTER_LATENCY); +/* 1000000/freq-pulse_width */ +static unsigned long space_width = (13-LIRC_ON_SA1100_TRANSMITTER_LATENCY); +static unsigned int freq = 38000; /* modulation frequency */ +static unsigned int duty_cycle = 50; /* duty cycle of 50% */ + +#endif + +#define RBUF_LEN 1024 +#define WBUF_LEN 1024 + +#define LIRC_DRIVER_NAME "lirc_sir" + +#define PULSE '[' + +#ifndef LIRC_SIR_TEKRAM +/* 9bit * 1s/115200bit in milli seconds = 78.125ms*/ +#define TIME_CONST (9000000ul/115200ul) +#endif + + +/* timeout for sequences in jiffies (=5/100s), must be longer than TIME_CONST */ +#define SIR_TIMEOUT (HZ*5/100) + +#ifndef LIRC_ON_SA1100 +#ifndef LIRC_IRQ +#define LIRC_IRQ 4 +#endif +#ifndef LIRC_PORT +/* for external dongles, default to com1 */ +#if defined(LIRC_SIR_ACTISYS_ACT200L) || \ + defined(LIRC_SIR_ACTISYS_ACT220L) || \ + defined(LIRC_SIR_TEKRAM) +#define LIRC_PORT 0x3f8 +#else +/* onboard sir ports are typically com3 */ +#define LIRC_PORT 0x3e8 +#endif +#endif + +static int io = LIRC_PORT; +static int irq = LIRC_IRQ; +static int threshold = 3; +#endif + +static DEFINE_SPINLOCK(timer_lock); +static struct timer_list timerlist; +/* time of last signal change detected */ +static struct timeval last_tv = {0, 0}; +/* time of last UART data ready interrupt */ +static struct timeval last_intr_tv = {0, 0}; +static int last_value; + +static DECLARE_WAIT_QUEUE_HEAD(lirc_read_queue); + +static DEFINE_SPINLOCK(hardware_lock); + +static int rx_buf[RBUF_LEN]; +static unsigned int rx_tail, rx_head; + +static int debug; +#define dprintk(fmt, args...) \ + do { \ + if (debug) \ + printk(KERN_DEBUG LIRC_DRIVER_NAME ": " \ + fmt, ## args); \ + } while (0) + +/* SECTION: Prototypes */ + +/* Communication with user-space */ +static unsigned int lirc_poll(struct file *file, poll_table *wait); +static ssize_t lirc_read(struct file *file, char *buf, size_t count, + loff_t *ppos); +static ssize_t lirc_write(struct file *file, const char *buf, size_t n, + loff_t *pos); +static long lirc_ioctl(struct file *filep, unsigned int cmd, unsigned long arg); +static void add_read_queue(int flag, unsigned long val); +static int init_chrdev(void); +static void drop_chrdev(void); +/* Hardware */ +static irqreturn_t sir_interrupt(int irq, void *dev_id); +static void send_space(unsigned long len); +static void send_pulse(unsigned long len); +static int init_hardware(void); +static void drop_hardware(void); +/* Initialisation */ +static int init_port(void); +static void drop_port(void); + +#ifdef LIRC_ON_SA1100 +static void on(void) +{ + PPSR |= PPC_TXD2; +} + +static void off(void) +{ + PPSR &= ~PPC_TXD2; +} +#else +static inline unsigned int sinp(int offset) +{ + return inb(io + offset); +} + +static inline void soutp(int offset, int value) +{ + outb(value, io + offset); +} +#endif + +#ifndef MAX_UDELAY_MS +#define MAX_UDELAY_US 5000 +#else +#define MAX_UDELAY_US (MAX_UDELAY_MS*1000) +#endif + +static void safe_udelay(unsigned long usecs) +{ + while (usecs > MAX_UDELAY_US) { + udelay(MAX_UDELAY_US); + usecs -= MAX_UDELAY_US; + } + udelay(usecs); +} + +/* SECTION: Communication with user-space */ + +static unsigned int lirc_poll(struct file *file, poll_table *wait) +{ + poll_wait(file, &lirc_read_queue, wait); + if (rx_head != rx_tail) + return POLLIN | POLLRDNORM; + return 0; +} + +static ssize_t lirc_read(struct file *file, char *buf, size_t count, + loff_t *ppos) +{ + int n = 0; + int retval = 0; + DECLARE_WAITQUEUE(wait, current); + + if (count % sizeof(int)) + return -EINVAL; + + add_wait_queue(&lirc_read_queue, &wait); + set_current_state(TASK_INTERRUPTIBLE); + while (n < count) { + if (rx_head != rx_tail) { + if (copy_to_user((void *) buf + n, + (void *) (rx_buf + rx_head), + sizeof(int))) { + retval = -EFAULT; + break; + } + rx_head = (rx_head + 1) & (RBUF_LEN - 1); + n += sizeof(int); + } else { + if (file->f_flags & O_NONBLOCK) { + retval = -EAGAIN; + break; + } + if (signal_pending(current)) { + retval = -ERESTARTSYS; + break; + } + schedule(); + set_current_state(TASK_INTERRUPTIBLE); + } + } + remove_wait_queue(&lirc_read_queue, &wait); + set_current_state(TASK_RUNNING); + return n ? n : retval; +} +static ssize_t lirc_write(struct file *file, const char *buf, size_t n, + loff_t *pos) +{ + unsigned long flags; + int i, count; + int *tx_buf; + + count = n / sizeof(int); + if (n % sizeof(int) || count % 2 == 0) + return -EINVAL; + tx_buf = memdup_user(buf, n); + if (IS_ERR(tx_buf)) + return PTR_ERR(tx_buf); + i = 0; +#ifdef LIRC_ON_SA1100 + /* disable receiver */ + Ser2UTCR3 = 0; +#endif + local_irq_save(flags); + while (1) { + if (i >= count) + break; + if (tx_buf[i]) + send_pulse(tx_buf[i]); + i++; + if (i >= count) + break; + if (tx_buf[i]) + send_space(tx_buf[i]); + i++; + } + local_irq_restore(flags); +#ifdef LIRC_ON_SA1100 + off(); + udelay(1000); /* wait 1ms for IR diode to recover */ + Ser2UTCR3 = 0; + /* clear status register to prevent unwanted interrupts */ + Ser2UTSR0 &= (UTSR0_RID | UTSR0_RBB | UTSR0_REB); + /* enable receiver */ + Ser2UTCR3 = UTCR3_RXE|UTCR3_RIE; +#endif + return count; +} + +static long lirc_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) +{ + int retval = 0; + unsigned long value = 0; +#ifdef LIRC_ON_SA1100 + unsigned int ivalue; + + if (cmd == LIRC_GET_FEATURES) + value = LIRC_CAN_SEND_PULSE | + LIRC_CAN_SET_SEND_DUTY_CYCLE | + LIRC_CAN_SET_SEND_CARRIER | + LIRC_CAN_REC_MODE2; + else if (cmd == LIRC_GET_SEND_MODE) + value = LIRC_MODE_PULSE; + else if (cmd == LIRC_GET_REC_MODE) + value = LIRC_MODE_MODE2; +#else + if (cmd == LIRC_GET_FEATURES) + value = LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2; + else if (cmd == LIRC_GET_SEND_MODE) + value = LIRC_MODE_PULSE; + else if (cmd == LIRC_GET_REC_MODE) + value = LIRC_MODE_MODE2; +#endif + + switch (cmd) { + case LIRC_GET_FEATURES: + case LIRC_GET_SEND_MODE: + case LIRC_GET_REC_MODE: + retval = put_user(value, (unsigned long *) arg); + break; + + case LIRC_SET_SEND_MODE: + case LIRC_SET_REC_MODE: + retval = get_user(value, (unsigned long *) arg); + break; +#ifdef LIRC_ON_SA1100 + case LIRC_SET_SEND_DUTY_CYCLE: + retval = get_user(ivalue, (unsigned int *) arg); + if (retval) + return retval; + if (ivalue <= 0 || ivalue > 100) + return -EINVAL; + /* (ivalue/100)*(1000000/freq) */ + duty_cycle = ivalue; + pulse_width = (unsigned long) duty_cycle*10000/freq; + space_width = (unsigned long) 1000000L/freq-pulse_width; + if (pulse_width >= LIRC_ON_SA1100_TRANSMITTER_LATENCY) + pulse_width -= LIRC_ON_SA1100_TRANSMITTER_LATENCY; + if (space_width >= LIRC_ON_SA1100_TRANSMITTER_LATENCY) + space_width -= LIRC_ON_SA1100_TRANSMITTER_LATENCY; + break; + case LIRC_SET_SEND_CARRIER: + retval = get_user(ivalue, (unsigned int *) arg); + if (retval) + return retval; + if (ivalue > 500000 || ivalue < 20000) + return -EINVAL; + freq = ivalue; + pulse_width = (unsigned long) duty_cycle*10000/freq; + space_width = (unsigned long) 1000000L/freq-pulse_width; + if (pulse_width >= LIRC_ON_SA1100_TRANSMITTER_LATENCY) + pulse_width -= LIRC_ON_SA1100_TRANSMITTER_LATENCY; + if (space_width >= LIRC_ON_SA1100_TRANSMITTER_LATENCY) + space_width -= LIRC_ON_SA1100_TRANSMITTER_LATENCY; + break; +#endif + default: + retval = -ENOIOCTLCMD; + + } + + if (retval) + return retval; + if (cmd == LIRC_SET_REC_MODE) { + if (value != LIRC_MODE_MODE2) + retval = -ENOSYS; + } else if (cmd == LIRC_SET_SEND_MODE) { + if (value != LIRC_MODE_PULSE) + retval = -ENOSYS; + } + + return retval; +} + +static void add_read_queue(int flag, unsigned long val) +{ + unsigned int new_rx_tail; + int newval; + + dprintk("add flag %d with val %lu\n", flag, val); + + newval = val & PULSE_MASK; + + /* + * statistically, pulses are ~TIME_CONST/2 too long. we could + * maybe make this more exact, but this is good enough + */ + if (flag) { + /* pulse */ + if (newval > TIME_CONST/2) + newval -= TIME_CONST/2; + else /* should not ever happen */ + newval = 1; + newval |= PULSE_BIT; + } else { + newval += TIME_CONST/2; + } + new_rx_tail = (rx_tail + 1) & (RBUF_LEN - 1); + if (new_rx_tail == rx_head) { + dprintk("Buffer overrun.\n"); + return; + } + rx_buf[rx_tail] = newval; + rx_tail = new_rx_tail; + wake_up_interruptible(&lirc_read_queue); +} + +static const struct file_operations lirc_fops = { + .owner = THIS_MODULE, + .read = lirc_read, + .write = lirc_write, + .poll = lirc_poll, + .unlocked_ioctl = lirc_ioctl, + .open = lirc_dev_fop_open, + .release = lirc_dev_fop_close, +}; + +static int set_use_inc(void *data) +{ + return 0; +} + +static void set_use_dec(void *data) +{ +} + +static struct lirc_driver driver = { + .name = LIRC_DRIVER_NAME, + .minor = -1, + .code_length = 1, + .sample_rate = 0, + .data = NULL, + .add_to_buf = NULL, + .set_use_inc = set_use_inc, + .set_use_dec = set_use_dec, + .fops = &lirc_fops, + .dev = NULL, + .owner = THIS_MODULE, +}; + + +static int init_chrdev(void) +{ + driver.minor = lirc_register_driver(&driver); + if (driver.minor < 0) { + printk(KERN_ERR LIRC_DRIVER_NAME ": init_chrdev() failed.\n"); + return -EIO; + } + return 0; +} + +static void drop_chrdev(void) +{ + lirc_unregister_driver(driver.minor); +} + +/* SECTION: Hardware */ +static long delta(struct timeval *tv1, struct timeval *tv2) +{ + unsigned long deltv; + + deltv = tv2->tv_sec - tv1->tv_sec; + if (deltv > 15) + deltv = 0xFFFFFF; + else + deltv = deltv*1000000 + + tv2->tv_usec - + tv1->tv_usec; + return deltv; +} + +static void sir_timeout(unsigned long data) +{ + /* + * if last received signal was a pulse, but receiving stopped + * within the 9 bit frame, we need to finish this pulse and + * simulate a signal change to from pulse to space. Otherwise + * upper layers will receive two sequences next time. + */ + + unsigned long flags; + unsigned long pulse_end; + + /* avoid interference with interrupt */ + spin_lock_irqsave(&timer_lock, flags); + if (last_value) { +#ifndef LIRC_ON_SA1100 + /* clear unread bits in UART and restart */ + outb(UART_FCR_CLEAR_RCVR, io + UART_FCR); +#endif + /* determine 'virtual' pulse end: */ + pulse_end = delta(&last_tv, &last_intr_tv); + dprintk("timeout add %d for %lu usec\n", last_value, pulse_end); + add_read_queue(last_value, pulse_end); + last_value = 0; + last_tv = last_intr_tv; + } + spin_unlock_irqrestore(&timer_lock, flags); +} + +static irqreturn_t sir_interrupt(int irq, void *dev_id) +{ + unsigned char data; + struct timeval curr_tv; + static unsigned long deltv; +#ifdef LIRC_ON_SA1100 + int status; + static int n; + + status = Ser2UTSR0; + /* + * Deal with any receive errors first. The bytes in error may be + * the only bytes in the receive FIFO, so we do this first. + */ + while (status & UTSR0_EIF) { + int bstat; + + if (debug) { + dprintk("EIF\n"); + bstat = Ser2UTSR1; + + if (bstat & UTSR1_FRE) + dprintk("frame error\n"); + if (bstat & UTSR1_ROR) + dprintk("receive fifo overrun\n"); + if (bstat & UTSR1_PRE) + dprintk("parity error\n"); + } + + bstat = Ser2UTDR; + n++; + status = Ser2UTSR0; + } + + if (status & (UTSR0_RFS | UTSR0_RID)) { + do_gettimeofday(&curr_tv); + deltv = delta(&last_tv, &curr_tv); + do { + data = Ser2UTDR; + dprintk("%d data: %u\n", n, (unsigned int) data); + n++; + } while (status & UTSR0_RID && /* do not empty fifo in order to + * get UTSR0_RID in any case */ + Ser2UTSR1 & UTSR1_RNE); /* data ready */ + + if (status&UTSR0_RID) { + add_read_queue(0 , deltv - n * TIME_CONST); /*space*/ + add_read_queue(1, n * TIME_CONST); /*pulse*/ + n = 0; + last_tv = curr_tv; + } + } + + if (status & UTSR0_TFS) + printk(KERN_ERR "transmit fifo not full, shouldn't happen\n"); + + /* We must clear certain bits. */ + status &= (UTSR0_RID | UTSR0_RBB | UTSR0_REB); + if (status) + Ser2UTSR0 = status; +#else + unsigned long deltintrtv; + unsigned long flags; + int iir, lsr; + + while ((iir = inb(io + UART_IIR) & UART_IIR_ID)) { + switch (iir&UART_IIR_ID) { /* FIXME toto treba preriedit */ + case UART_IIR_MSI: + (void) inb(io + UART_MSR); + break; + case UART_IIR_RLSI: + (void) inb(io + UART_LSR); + break; + case UART_IIR_THRI: +#if 0 + if (lsr & UART_LSR_THRE) /* FIFO is empty */ + outb(data, io + UART_TX) +#endif + break; + case UART_IIR_RDI: + /* avoid interference with timer */ + spin_lock_irqsave(&timer_lock, flags); + do { + del_timer(&timerlist); + data = inb(io + UART_RX); + do_gettimeofday(&curr_tv); + deltv = delta(&last_tv, &curr_tv); + deltintrtv = delta(&last_intr_tv, &curr_tv); + dprintk("t %lu, d %d\n", deltintrtv, (int)data); + /* + * if nothing came in last X cycles, + * it was gap + */ + if (deltintrtv > TIME_CONST * threshold) { + if (last_value) { + dprintk("GAP\n"); + /* simulate signal change */ + add_read_queue(last_value, + deltv - + deltintrtv); + last_value = 0; + last_tv.tv_sec = + last_intr_tv.tv_sec; + last_tv.tv_usec = + last_intr_tv.tv_usec; + deltv = deltintrtv; + } + } + data = 1; + if (data ^ last_value) { + /* + * deltintrtv > 2*TIME_CONST, remember? + * the other case is timeout + */ + add_read_queue(last_value, + deltv-TIME_CONST); + last_value = data; + last_tv = curr_tv; + if (last_tv.tv_usec >= TIME_CONST) { + last_tv.tv_usec -= TIME_CONST; + } else { + last_tv.tv_sec--; + last_tv.tv_usec += 1000000 - + TIME_CONST; + } + } + last_intr_tv = curr_tv; + if (data) { + /* + * start timer for end of + * sequence detection + */ + timerlist.expires = jiffies + + SIR_TIMEOUT; + add_timer(&timerlist); + } + + lsr = inb(io + UART_LSR); + } while (lsr & UART_LSR_DR); /* data ready */ + spin_unlock_irqrestore(&timer_lock, flags); + break; + default: + break; + } + } +#endif + return IRQ_RETVAL(IRQ_HANDLED); +} + +#ifdef LIRC_ON_SA1100 +static void send_pulse(unsigned long length) +{ + unsigned long k, delay; + int flag; + + if (length == 0) + return; + /* + * this won't give us the carrier frequency we really want + * due to integer arithmetic, but we can accept this inaccuracy + */ + + for (k = flag = 0; k < length; k += delay, flag = !flag) { + if (flag) { + off(); + delay = space_width; + } else { + on(); + delay = pulse_width; + } + safe_udelay(delay); + } + off(); +} + +static void send_space(unsigned long length) +{ + if (length == 0) + return; + off(); + safe_udelay(length); +} +#else +static void send_space(unsigned long len) +{ + safe_udelay(len); +} + +static void send_pulse(unsigned long len) +{ + long bytes_out = len / TIME_CONST; + long time_left; + + time_left = (long)len - (long)bytes_out * (long)TIME_CONST; + if (bytes_out == 0) { + bytes_out++; + time_left = 0; + } + while (bytes_out--) { + outb(PULSE, io + UART_TX); + /* FIXME treba seriozne cakanie z char/serial.c */ + while (!(inb(io + UART_LSR) & UART_LSR_THRE)) + ; + } +#if 0 + if (time_left > 0) + safe_udelay(time_left); +#endif +} +#endif + +#ifdef CONFIG_SA1100_COLLIE +static int sa1100_irda_set_power_collie(int state) +{ + if (state) { + /* + * 0 - off + * 1 - short range, lowest power + * 2 - medium range, medium power + * 3 - maximum range, high power + */ + ucb1200_set_io_direction(TC35143_GPIO_IR_ON, + TC35143_IODIR_OUTPUT); + ucb1200_set_io(TC35143_GPIO_IR_ON, TC35143_IODAT_LOW); + udelay(100); + } else { + /* OFF */ + ucb1200_set_io_direction(TC35143_GPIO_IR_ON, + TC35143_IODIR_OUTPUT); + ucb1200_set_io(TC35143_GPIO_IR_ON, TC35143_IODAT_HIGH); + } + return 0; +} +#endif + +static int init_hardware(void) +{ + unsigned long flags; + + spin_lock_irqsave(&hardware_lock, flags); + /* reset UART */ +#ifdef LIRC_ON_SA1100 +#ifdef CONFIG_SA1100_BITSY + if (machine_is_bitsy()) { + printk(KERN_INFO "Power on IR module\n"); + set_bitsy_egpio(EGPIO_BITSY_IR_ON); + } +#endif +#ifdef CONFIG_SA1100_COLLIE + sa1100_irda_set_power_collie(3); /* power on */ +#endif + sr.hscr0 = Ser2HSCR0; + + sr.utcr0 = Ser2UTCR0; + sr.utcr1 = Ser2UTCR1; + sr.utcr2 = Ser2UTCR2; + sr.utcr3 = Ser2UTCR3; + sr.utcr4 = Ser2UTCR4; + + sr.utdr = Ser2UTDR; + sr.utsr0 = Ser2UTSR0; + sr.utsr1 = Ser2UTSR1; + + /* configure GPIO */ + /* output */ + PPDR |= PPC_TXD2; + PSDR |= PPC_TXD2; + /* set output to 0 */ + off(); + + /* Enable HP-SIR modulation, and ensure that the port is disabled. */ + Ser2UTCR3 = 0; + Ser2HSCR0 = sr.hscr0 & (~HSCR0_HSSP); + + /* clear status register to prevent unwanted interrupts */ + Ser2UTSR0 &= (UTSR0_RID | UTSR0_RBB | UTSR0_REB); + + /* 7N1 */ + Ser2UTCR0 = UTCR0_1StpBit|UTCR0_7BitData; + /* 115200 */ + Ser2UTCR1 = 0; + Ser2UTCR2 = 1; + /* use HPSIR, 1.6 usec pulses */ + Ser2UTCR4 = UTCR4_HPSIR|UTCR4_Z1_6us; + + /* enable receiver, receive fifo interrupt */ + Ser2UTCR3 = UTCR3_RXE|UTCR3_RIE; + + /* clear status register to prevent unwanted interrupts */ + Ser2UTSR0 &= (UTSR0_RID | UTSR0_RBB | UTSR0_REB); + +#elif defined(LIRC_SIR_TEKRAM) + /* disable FIFO */ + soutp(UART_FCR, + UART_FCR_CLEAR_RCVR| + UART_FCR_CLEAR_XMIT| + UART_FCR_TRIGGER_1); + + /* Set DLAB 0. */ + soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB)); + + /* First of all, disable all interrupts */ + soutp(UART_IER, sinp(UART_IER) & + (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI))); + + /* Set DLAB 1. */ + soutp(UART_LCR, sinp(UART_LCR) | UART_LCR_DLAB); + + /* Set divisor to 12 => 9600 Baud */ + soutp(UART_DLM, 0); + soutp(UART_DLL, 12); + + /* Set DLAB 0. */ + soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB)); + + /* power supply */ + soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2); + safe_udelay(50*1000); + + /* -DTR low -> reset PIC */ + soutp(UART_MCR, UART_MCR_RTS|UART_MCR_OUT2); + udelay(1*1000); + + soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2); + udelay(100); + + + /* -RTS low -> send control byte */ + soutp(UART_MCR, UART_MCR_DTR|UART_MCR_OUT2); + udelay(7); + soutp(UART_TX, TEKRAM_115200|TEKRAM_PW); + + /* one byte takes ~1042 usec to transmit at 9600,8N1 */ + udelay(1500); + + /* back to normal operation */ + soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2); + udelay(50); + + udelay(1500); + + /* read previous control byte */ + printk(KERN_INFO LIRC_DRIVER_NAME + ": 0x%02x\n", sinp(UART_RX)); + + /* Set DLAB 1. */ + soutp(UART_LCR, sinp(UART_LCR) | UART_LCR_DLAB); + + /* Set divisor to 1 => 115200 Baud */ + soutp(UART_DLM, 0); + soutp(UART_DLL, 1); + + /* Set DLAB 0, 8 Bit */ + soutp(UART_LCR, UART_LCR_WLEN8); + /* enable interrupts */ + soutp(UART_IER, sinp(UART_IER)|UART_IER_RDI); +#else + outb(0, io + UART_MCR); + outb(0, io + UART_IER); + /* init UART */ + /* set DLAB, speed = 115200 */ + outb(UART_LCR_DLAB | UART_LCR_WLEN7, io + UART_LCR); + outb(1, io + UART_DLL); outb(0, io + UART_DLM); + /* 7N1+start = 9 bits at 115200 ~ 3 bits at 44000 */ + outb(UART_LCR_WLEN7, io + UART_LCR); + /* FIFO operation */ + outb(UART_FCR_ENABLE_FIFO, io + UART_FCR); + /* interrupts */ + /* outb(UART_IER_RLSI|UART_IER_RDI|UART_IER_THRI, io + UART_IER); */ + outb(UART_IER_RDI, io + UART_IER); + /* turn on UART */ + outb(UART_MCR_DTR|UART_MCR_RTS|UART_MCR_OUT2, io + UART_MCR); +#ifdef LIRC_SIR_ACTISYS_ACT200L + init_act200(); +#elif defined(LIRC_SIR_ACTISYS_ACT220L) + init_act220(); +#endif +#endif + spin_unlock_irqrestore(&hardware_lock, flags); + return 0; +} + +static void drop_hardware(void) +{ + unsigned long flags; + + spin_lock_irqsave(&hardware_lock, flags); + +#ifdef LIRC_ON_SA1100 + Ser2UTCR3 = 0; + + Ser2UTCR0 = sr.utcr0; + Ser2UTCR1 = sr.utcr1; + Ser2UTCR2 = sr.utcr2; + Ser2UTCR4 = sr.utcr4; + Ser2UTCR3 = sr.utcr3; + + Ser2HSCR0 = sr.hscr0; +#ifdef CONFIG_SA1100_BITSY + if (machine_is_bitsy()) + clr_bitsy_egpio(EGPIO_BITSY_IR_ON); +#endif +#ifdef CONFIG_SA1100_COLLIE + sa1100_irda_set_power_collie(0); /* power off */ +#endif +#else + /* turn off interrupts */ + outb(0, io + UART_IER); +#endif + spin_unlock_irqrestore(&hardware_lock, flags); +} + +/* SECTION: Initialisation */ + +static int init_port(void) +{ + int retval; + + /* get I/O port access and IRQ line */ +#ifndef LIRC_ON_SA1100 + if (request_region(io, 8, LIRC_DRIVER_NAME) == NULL) { + printk(KERN_ERR LIRC_DRIVER_NAME + ": i/o port 0x%.4x already in use.\n", io); + return -EBUSY; + } +#endif + retval = request_irq(irq, sir_interrupt, IRQF_DISABLED, + LIRC_DRIVER_NAME, NULL); + if (retval < 0) { +# ifndef LIRC_ON_SA1100 + release_region(io, 8); +# endif + printk(KERN_ERR LIRC_DRIVER_NAME + ": IRQ %d already in use.\n", + irq); + return retval; + } +#ifndef LIRC_ON_SA1100 + printk(KERN_INFO LIRC_DRIVER_NAME + ": I/O port 0x%.4x, IRQ %d.\n", + io, irq); +#endif + + init_timer(&timerlist); + timerlist.function = sir_timeout; + timerlist.data = 0xabadcafe; + + return 0; +} + +static void drop_port(void) +{ + free_irq(irq, NULL); + del_timer_sync(&timerlist); +#ifndef LIRC_ON_SA1100 + release_region(io, 8); +#endif +} + +#ifdef LIRC_SIR_ACTISYS_ACT200L +/* Crystal/Cirrus CS8130 IR transceiver, used in Actisys Act200L dongle */ +/* some code borrowed from Linux IRDA driver */ + +/* Register 0: Control register #1 */ +#define ACT200L_REG0 0x00 +#define ACT200L_TXEN 0x01 /* Enable transmitter */ +#define ACT200L_RXEN 0x02 /* Enable receiver */ +#define ACT200L_ECHO 0x08 /* Echo control chars */ + +/* Register 1: Control register #2 */ +#define ACT200L_REG1 0x10 +#define ACT200L_LODB 0x01 /* Load new baud rate count value */ +#define ACT200L_WIDE 0x04 /* Expand the maximum allowable pulse */ + +/* Register 3: Transmit mode register #2 */ +#define ACT200L_REG3 0x30 +#define ACT200L_B0 0x01 /* DataBits, 0=6, 1=7, 2=8, 3=9(8P) */ +#define ACT200L_B1 0x02 /* DataBits, 0=6, 1=7, 2=8, 3=9(8P) */ +#define ACT200L_CHSY 0x04 /* StartBit Synced 0=bittime, 1=startbit */ + +/* Register 4: Output Power register */ +#define ACT200L_REG4 0x40 +#define ACT200L_OP0 0x01 /* Enable LED1C output */ +#define ACT200L_OP1 0x02 /* Enable LED2C output */ +#define ACT200L_BLKR 0x04 + +/* Register 5: Receive Mode register */ +#define ACT200L_REG5 0x50 +#define ACT200L_RWIDL 0x01 /* fixed 1.6us pulse mode */ + /*.. other various IRDA bit modes, and TV remote modes..*/ + +/* Register 6: Receive Sensitivity register #1 */ +#define ACT200L_REG6 0x60 +#define ACT200L_RS0 0x01 /* receive threshold bit 0 */ +#define ACT200L_RS1 0x02 /* receive threshold bit 1 */ + +/* Register 7: Receive Sensitivity register #2 */ +#define ACT200L_REG7 0x70 +#define ACT200L_ENPOS 0x04 /* Ignore the falling edge */ + +/* Register 8,9: Baud Rate Divider register #1,#2 */ +#define ACT200L_REG8 0x80 +#define ACT200L_REG9 0x90 + +#define ACT200L_2400 0x5f +#define ACT200L_9600 0x17 +#define ACT200L_19200 0x0b +#define ACT200L_38400 0x05 +#define ACT200L_57600 0x03 +#define ACT200L_115200 0x01 + +/* Register 13: Control register #3 */ +#define ACT200L_REG13 0xd0 +#define ACT200L_SHDW 0x01 /* Enable access to shadow registers */ + +/* Register 15: Status register */ +#define ACT200L_REG15 0xf0 + +/* Register 21: Control register #4 */ +#define ACT200L_REG21 0x50 +#define ACT200L_EXCK 0x02 /* Disable clock output driver */ +#define ACT200L_OSCL 0x04 /* oscillator in low power, medium accuracy mode */ + +static void init_act200(void) +{ + int i; + __u8 control[] = { + ACT200L_REG15, + ACT200L_REG13 | ACT200L_SHDW, + ACT200L_REG21 | ACT200L_EXCK | ACT200L_OSCL, + ACT200L_REG13, + ACT200L_REG7 | ACT200L_ENPOS, + ACT200L_REG6 | ACT200L_RS0 | ACT200L_RS1, + ACT200L_REG5 | ACT200L_RWIDL, + ACT200L_REG4 | ACT200L_OP0 | ACT200L_OP1 | ACT200L_BLKR, + ACT200L_REG3 | ACT200L_B0, + ACT200L_REG0 | ACT200L_TXEN | ACT200L_RXEN, + ACT200L_REG8 | (ACT200L_115200 & 0x0f), + ACT200L_REG9 | ((ACT200L_115200 >> 4) & 0x0f), + ACT200L_REG1 | ACT200L_LODB | ACT200L_WIDE + }; + + /* Set DLAB 1. */ + soutp(UART_LCR, UART_LCR_DLAB | UART_LCR_WLEN8); + + /* Set divisor to 12 => 9600 Baud */ + soutp(UART_DLM, 0); + soutp(UART_DLL, 12); + + /* Set DLAB 0. */ + soutp(UART_LCR, UART_LCR_WLEN8); + /* Set divisor to 12 => 9600 Baud */ + + /* power supply */ + soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2); + for (i = 0; i < 50; i++) + safe_udelay(1000); + + /* Reset the dongle : set RTS low for 25 ms */ + soutp(UART_MCR, UART_MCR_DTR|UART_MCR_OUT2); + for (i = 0; i < 25; i++) + udelay(1000); + + soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2); + udelay(100); + + /* Clear DTR and set RTS to enter command mode */ + soutp(UART_MCR, UART_MCR_RTS|UART_MCR_OUT2); + udelay(7); + + /* send out the control register settings for 115K 7N1 SIR operation */ + for (i = 0; i < sizeof(control); i++) { + soutp(UART_TX, control[i]); + /* one byte takes ~1042 usec to transmit at 9600,8N1 */ + udelay(1500); + } + + /* back to normal operation */ + soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2); + udelay(50); + + udelay(1500); + soutp(UART_LCR, sinp(UART_LCR) | UART_LCR_DLAB); + + /* Set DLAB 1. */ + soutp(UART_LCR, UART_LCR_DLAB | UART_LCR_WLEN7); + + /* Set divisor to 1 => 115200 Baud */ + soutp(UART_DLM, 0); + soutp(UART_DLL, 1); + + /* Set DLAB 0. */ + soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB)); + + /* Set DLAB 0, 7 Bit */ + soutp(UART_LCR, UART_LCR_WLEN7); + + /* enable interrupts */ + soutp(UART_IER, sinp(UART_IER)|UART_IER_RDI); +} +#endif + +#ifdef LIRC_SIR_ACTISYS_ACT220L +/* + * Derived from linux IrDA driver (net/irda/actisys.c) + * Drop me a mail for any kind of comment: maxx@spaceboyz.net + */ + +void init_act220(void) +{ + int i; + + /* DLAB 1 */ + soutp(UART_LCR, UART_LCR_DLAB|UART_LCR_WLEN7); + + /* 9600 baud */ + soutp(UART_DLM, 0); + soutp(UART_DLL, 12); + + /* DLAB 0 */ + soutp(UART_LCR, UART_LCR_WLEN7); + + /* reset the dongle, set DTR low for 10us */ + soutp(UART_MCR, UART_MCR_RTS|UART_MCR_OUT2); + udelay(10); + + /* back to normal (still 9600) */ + soutp(UART_MCR, UART_MCR_DTR|UART_MCR_RTS|UART_MCR_OUT2); + + /* + * send RTS pulses until we reach 115200 + * i hope this is really the same for act220l/act220l+ + */ + for (i = 0; i < 3; i++) { + udelay(10); + /* set RTS low for 10 us */ + soutp(UART_MCR, UART_MCR_DTR|UART_MCR_OUT2); + udelay(10); + /* set RTS high for 10 us */ + soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2); + } + + /* back to normal operation */ + udelay(1500); /* better safe than sorry ;) */ + + /* Set DLAB 1. */ + soutp(UART_LCR, UART_LCR_DLAB | UART_LCR_WLEN7); + + /* Set divisor to 1 => 115200 Baud */ + soutp(UART_DLM, 0); + soutp(UART_DLL, 1); + + /* Set DLAB 0, 7 Bit */ + /* The dongle doesn't seem to have any problems with operation at 7N1 */ + soutp(UART_LCR, UART_LCR_WLEN7); + + /* enable interrupts */ + soutp(UART_IER, UART_IER_RDI); +} +#endif + +static int init_lirc_sir(void) +{ + int retval; + + init_waitqueue_head(&lirc_read_queue); + retval = init_port(); + if (retval < 0) + return retval; + init_hardware(); + printk(KERN_INFO LIRC_DRIVER_NAME + ": Installed.\n"); + return 0; +} + + +static int __init lirc_sir_init(void) +{ + int retval; + + retval = init_chrdev(); + if (retval < 0) + return retval; + retval = init_lirc_sir(); + if (retval) { + drop_chrdev(); + return retval; + } + return 0; +} + +static void __exit lirc_sir_exit(void) +{ + drop_hardware(); + drop_chrdev(); + drop_port(); + printk(KERN_INFO LIRC_DRIVER_NAME ": Uninstalled.\n"); +} + +module_init(lirc_sir_init); +module_exit(lirc_sir_exit); + +#ifdef LIRC_SIR_TEKRAM +MODULE_DESCRIPTION("Infrared receiver driver for Tekram Irmate 210"); +MODULE_AUTHOR("Christoph Bartelmus"); +#elif defined(LIRC_ON_SA1100) +MODULE_DESCRIPTION("LIRC driver for StrongARM SA1100 embedded microprocessor"); +MODULE_AUTHOR("Christoph Bartelmus"); +#elif defined(LIRC_SIR_ACTISYS_ACT200L) +MODULE_DESCRIPTION("LIRC driver for Actisys Act200L"); +MODULE_AUTHOR("Karl Bongers"); +#elif defined(LIRC_SIR_ACTISYS_ACT220L) +MODULE_DESCRIPTION("LIRC driver for Actisys Act220L(+)"); +MODULE_AUTHOR("Jan Roemisch"); +#else +MODULE_DESCRIPTION("Infrared receiver driver for SIR type serial ports"); +MODULE_AUTHOR("Milan Pikula"); +#endif +MODULE_LICENSE("GPL"); + +#ifdef LIRC_ON_SA1100 +module_param(irq, int, S_IRUGO); +MODULE_PARM_DESC(irq, "Interrupt (16)"); +#else +module_param(io, int, S_IRUGO); +MODULE_PARM_DESC(io, "I/O address base (0x3f8 or 0x2f8)"); + +module_param(irq, int, S_IRUGO); +MODULE_PARM_DESC(irq, "Interrupt (4 or 3)"); + +module_param(threshold, int, S_IRUGO); +MODULE_PARM_DESC(threshold, "space detection threshold (3)"); +#endif + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); --- linux-2.6.35.orig/drivers/staging/lirc/lirc_parallel.c +++ linux-2.6.35/drivers/staging/lirc/lirc_parallel.c @@ -0,0 +1,705 @@ +/* + * lirc_parallel.c + * + * lirc_parallel - device driver for infra-red signal receiving and + * transmitting unit built by the author + * + * Copyright (C) 1998 Christoph Bartelmus + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +/*** Includes ***/ + +#ifdef CONFIG_SMP +#error "--- Sorry, this driver is not SMP safe. ---" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include "lirc_parallel.h" + +#define LIRC_DRIVER_NAME "lirc_parallel" + +#ifndef LIRC_IRQ +#define LIRC_IRQ 7 +#endif +#ifndef LIRC_PORT +#define LIRC_PORT 0x378 +#endif +#ifndef LIRC_TIMER +#define LIRC_TIMER 65536 +#endif + +/*** Global Variables ***/ + +static int debug; +static int check_pselecd; + +unsigned int irq = LIRC_IRQ; +unsigned int io = LIRC_PORT; +#ifdef LIRC_TIMER +unsigned int timer; +unsigned int default_timer = LIRC_TIMER; +#endif + +#define RBUF_SIZE (256) /* this must be a power of 2 larger than 1 */ + +static int rbuf[RBUF_SIZE]; + +DECLARE_WAIT_QUEUE_HEAD(lirc_wait); + +unsigned int rptr; +unsigned int wptr; +unsigned int lost_irqs; +int is_open; + +struct parport *pport; +struct pardevice *ppdevice; +int is_claimed; + +unsigned int tx_mask = 1; + +/*** Internal Functions ***/ + +static unsigned int in(int offset) +{ + switch (offset) { + case LIRC_LP_BASE: + return parport_read_data(pport); + case LIRC_LP_STATUS: + return parport_read_status(pport); + case LIRC_LP_CONTROL: + return parport_read_control(pport); + } + return 0; /* make compiler happy */ +} + +static void out(int offset, int value) +{ + switch (offset) { + case LIRC_LP_BASE: + parport_write_data(pport, value); + break; + case LIRC_LP_CONTROL: + parport_write_control(pport, value); + break; + case LIRC_LP_STATUS: + printk(KERN_INFO "%s: attempt to write to status register\n", + LIRC_DRIVER_NAME); + break; + } +} + +static unsigned int lirc_get_timer(void) +{ + return in(LIRC_PORT_TIMER) & LIRC_PORT_TIMER_BIT; +} + +static unsigned int lirc_get_signal(void) +{ + return in(LIRC_PORT_SIGNAL) & LIRC_PORT_SIGNAL_BIT; +} + +static void lirc_on(void) +{ + out(LIRC_PORT_DATA, tx_mask); +} + +static void lirc_off(void) +{ + out(LIRC_PORT_DATA, 0); +} + +static unsigned int init_lirc_timer(void) +{ + struct timeval tv, now; + unsigned int level, newlevel, timeelapsed, newtimer; + int count = 0; + + do_gettimeofday(&tv); + tv.tv_sec++; /* wait max. 1 sec. */ + level = lirc_get_timer(); + do { + newlevel = lirc_get_timer(); + if (level == 0 && newlevel != 0) + count++; + level = newlevel; + do_gettimeofday(&now); + } while (count < 1000 && (now.tv_sec < tv.tv_sec + || (now.tv_sec == tv.tv_sec + && now.tv_usec < tv.tv_usec))); + + timeelapsed = ((now.tv_sec + 1 - tv.tv_sec)*1000000 + + (now.tv_usec - tv.tv_usec)); + if (count >= 1000 && timeelapsed > 0) { + if (default_timer == 0) { + /* autodetect timer */ + newtimer = (1000000*count)/timeelapsed; + printk(KERN_INFO "%s: %u Hz timer detected\n", + LIRC_DRIVER_NAME, newtimer); + return newtimer; + } else { + newtimer = (1000000*count)/timeelapsed; + if (abs(newtimer - default_timer) > default_timer/10) { + /* bad timer */ + printk(KERN_NOTICE "%s: bad timer: %u Hz\n", + LIRC_DRIVER_NAME, newtimer); + printk(KERN_NOTICE "%s: using default timer: " + "%u Hz\n", + LIRC_DRIVER_NAME, default_timer); + return default_timer; + } else { + printk(KERN_INFO "%s: %u Hz timer detected\n", + LIRC_DRIVER_NAME, newtimer); + return newtimer; /* use detected value */ + } + } + } else { + printk(KERN_NOTICE "%s: no timer detected\n", LIRC_DRIVER_NAME); + return 0; + } +} + +static int lirc_claim(void) +{ + if (parport_claim(ppdevice) != 0) { + printk(KERN_WARNING "%s: could not claim port\n", + LIRC_DRIVER_NAME); + printk(KERN_WARNING "%s: waiting for port becoming available" + "\n", LIRC_DRIVER_NAME); + if (parport_claim_or_block(ppdevice) < 0) { + printk(KERN_NOTICE "%s: could not claim port, giving" + " up\n", LIRC_DRIVER_NAME); + return 0; + } + } + out(LIRC_LP_CONTROL, LP_PSELECP|LP_PINITP); + is_claimed = 1; + return 1; +} + +/*** interrupt handler ***/ + +static void rbuf_write(int signal) +{ + unsigned int nwptr; + + nwptr = (wptr + 1) & (RBUF_SIZE - 1); + if (nwptr == rptr) { + /* no new signals will be accepted */ + lost_irqs++; + printk(KERN_NOTICE "%s: buffer overrun\n", LIRC_DRIVER_NAME); + return; + } + rbuf[wptr] = signal; + wptr = nwptr; +} + +static void irq_handler(void *blah) +{ + struct timeval tv; + static struct timeval lasttv; + static int init; + long signal; + int data; + unsigned int level, newlevel; + unsigned int timeout; + + if (!is_open) + return; + + if (!is_claimed) + return; + +#if 0 + /* disable interrupt */ + disable_irq(irq); + out(LIRC_PORT_IRQ, in(LIRC_PORT_IRQ) & (~LP_PINTEN)); +#endif + if (check_pselecd && (in(1) & LP_PSELECD)) + return; + +#ifdef LIRC_TIMER + if (init) { + do_gettimeofday(&tv); + + signal = tv.tv_sec - lasttv.tv_sec; + if (signal > 15) + /* really long time */ + data = PULSE_MASK; + else + data = (int) (signal*1000000 + + tv.tv_usec - lasttv.tv_usec + + LIRC_SFH506_DELAY); + + rbuf_write(data); /* space */ + } else { + if (timer == 0) { + /* + * wake up; we'll lose this signal, but it will be + * garbage if the device is turned on anyway + */ + timer = init_lirc_timer(); + /* enable_irq(irq); */ + return; + } + init = 1; + } + + timeout = timer/10; /* timeout after 1/10 sec. */ + signal = 1; + level = lirc_get_timer(); + do { + newlevel = lirc_get_timer(); + if (level == 0 && newlevel != 0) + signal++; + level = newlevel; + + /* giving up */ + if (signal > timeout + || (check_pselecd && (in(1) & LP_PSELECD))) { + signal = 0; + printk(KERN_NOTICE "%s: timeout\n", LIRC_DRIVER_NAME); + break; + } + } while (lirc_get_signal()); + + if (signal != 0) { + /* ajust value to usecs */ + unsigned long long helper; + + helper = ((unsigned long long) signal)*1000000; + do_div(helper, timer); + signal = (long) helper; + + if (signal > LIRC_SFH506_DELAY) + data = signal - LIRC_SFH506_DELAY; + else + data = 1; + rbuf_write(PULSE_BIT|data); /* pulse */ + } + do_gettimeofday(&lasttv); +#else + /* add your code here */ +#endif + + wake_up_interruptible(&lirc_wait); + + /* enable interrupt */ + /* + enable_irq(irq); + out(LIRC_PORT_IRQ, in(LIRC_PORT_IRQ)|LP_PINTEN); + */ +} + +/*** file operations ***/ + +static loff_t lirc_lseek(struct file *filep, loff_t offset, int orig) +{ + return -ESPIPE; +} + +static ssize_t lirc_read(struct file *filep, char *buf, size_t n, loff_t *ppos) +{ + int result = 0; + int count = 0; + DECLARE_WAITQUEUE(wait, current); + + if (n % sizeof(int)) + return -EINVAL; + + add_wait_queue(&lirc_wait, &wait); + set_current_state(TASK_INTERRUPTIBLE); + while (count < n) { + if (rptr != wptr) { + if (copy_to_user(buf+count, (char *) &rbuf[rptr], + sizeof(int))) { + result = -EFAULT; + break; + } + rptr = (rptr + 1) & (RBUF_SIZE - 1); + count += sizeof(int); + } else { + if (filep->f_flags & O_NONBLOCK) { + result = -EAGAIN; + break; + } + if (signal_pending(current)) { + result = -ERESTARTSYS; + break; + } + schedule(); + set_current_state(TASK_INTERRUPTIBLE); + } + } + remove_wait_queue(&lirc_wait, &wait); + set_current_state(TASK_RUNNING); + return count ? count : result; +} + +static ssize_t lirc_write(struct file *filep, const char *buf, size_t n, + loff_t *ppos) +{ + int count; + unsigned int i; + unsigned int level, newlevel; + unsigned long flags; + int counttimer; + int *wbuf; + + if (!is_claimed) + return -EBUSY; + + count = n / sizeof(int); + + if (n % sizeof(int) || count % 2 == 0) + return -EINVAL; + + wbuf = memdup_user(buf, n); + if (IS_ERR(wbuf)) + return PTR_ERR(wbuf); + +#ifdef LIRC_TIMER + if (timer == 0) { + /* try again if device is ready */ + timer = init_lirc_timer(); + if (timer == 0) + return -EIO; + } + + /* adjust values from usecs */ + for (i = 0; i < count; i++) { + unsigned long long helper; + + helper = ((unsigned long long) wbuf[i])*timer; + do_div(helper, 1000000); + wbuf[i] = (int) helper; + } + + local_irq_save(flags); + i = 0; + while (i < count) { + level = lirc_get_timer(); + counttimer = 0; + lirc_on(); + do { + newlevel = lirc_get_timer(); + if (level == 0 && newlevel != 0) + counttimer++; + level = newlevel; + if (check_pselecd && (in(1) & LP_PSELECD)) { + lirc_off(); + local_irq_restore(flags); + return -EIO; + } + } while (counttimer < wbuf[i]); + i++; + + lirc_off(); + if (i == count) + break; + counttimer = 0; + do { + newlevel = lirc_get_timer(); + if (level == 0 && newlevel != 0) + counttimer++; + level = newlevel; + if (check_pselecd && (in(1) & LP_PSELECD)) { + local_irq_restore(flags); + return -EIO; + } + } while (counttimer < wbuf[i]); + i++; + } + local_irq_restore(flags); +#else + /* place code that handles write without external timer here */ +#endif + return n; +} + +static unsigned int lirc_poll(struct file *file, poll_table *wait) +{ + poll_wait(file, &lirc_wait, wait); + if (rptr != wptr) + return POLLIN | POLLRDNORM; + return 0; +} + +static long lirc_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) +{ + int result; + unsigned long features = LIRC_CAN_SET_TRANSMITTER_MASK | + LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2; + unsigned long mode; + unsigned int ivalue; + + switch (cmd) { + case LIRC_GET_FEATURES: + result = put_user(features, (unsigned long *) arg); + if (result) + return result; + break; + case LIRC_GET_SEND_MODE: + result = put_user(LIRC_MODE_PULSE, (unsigned long *) arg); + if (result) + return result; + break; + case LIRC_GET_REC_MODE: + result = put_user(LIRC_MODE_MODE2, (unsigned long *) arg); + if (result) + return result; + break; + case LIRC_SET_SEND_MODE: + result = get_user(mode, (unsigned long *) arg); + if (result) + return result; + if (mode != LIRC_MODE_PULSE) + return -EINVAL; + break; + case LIRC_SET_REC_MODE: + result = get_user(mode, (unsigned long *) arg); + if (result) + return result; + if (mode != LIRC_MODE_MODE2) + return -ENOSYS; + break; + case LIRC_SET_TRANSMITTER_MASK: + result = get_user(ivalue, (unsigned int *) arg); + if (result) + return result; + if ((ivalue & LIRC_PARALLEL_TRANSMITTER_MASK) != ivalue) + return LIRC_PARALLEL_MAX_TRANSMITTERS; + tx_mask = ivalue; + break; + default: + return -ENOIOCTLCMD; + } + return 0; +} + +static int lirc_open(struct inode *node, struct file *filep) +{ + if (is_open || !lirc_claim()) + return -EBUSY; + + parport_enable_irq(pport); + + /* init read ptr */ + rptr = 0; + wptr = 0; + lost_irqs = 0; + + is_open = 1; + return 0; +} + +static int lirc_close(struct inode *node, struct file *filep) +{ + if (is_claimed) { + is_claimed = 0; + parport_release(ppdevice); + } + is_open = 0; + return 0; +} + +static const struct file_operations lirc_fops = { + .owner = THIS_MODULE, + .llseek = lirc_lseek, + .read = lirc_read, + .write = lirc_write, + .poll = lirc_poll, + .unlocked_ioctl = lirc_ioctl, + .open = lirc_open, + .release = lirc_close +}; + +static int set_use_inc(void *data) +{ + return 0; +} + +static void set_use_dec(void *data) +{ +} + +static struct lirc_driver driver = { + .name = LIRC_DRIVER_NAME, + .minor = -1, + .code_length = 1, + .sample_rate = 0, + .data = NULL, + .add_to_buf = NULL, + .set_use_inc = set_use_inc, + .set_use_dec = set_use_dec, + .fops = &lirc_fops, + .dev = NULL, + .owner = THIS_MODULE, +}; + +static int pf(void *handle); +static void kf(void *handle); + +static struct timer_list poll_timer; +static void poll_state(unsigned long ignored); + +static void poll_state(unsigned long ignored) +{ + printk(KERN_NOTICE "%s: time\n", + LIRC_DRIVER_NAME); + del_timer(&poll_timer); + if (is_claimed) + return; + kf(NULL); + if (!is_claimed) { + printk(KERN_NOTICE "%s: could not claim port, giving up\n", + LIRC_DRIVER_NAME); + init_timer(&poll_timer); + poll_timer.expires = jiffies + HZ; + poll_timer.data = (unsigned long)current; + poll_timer.function = poll_state; + add_timer(&poll_timer); + } +} + +static int pf(void *handle) +{ + parport_disable_irq(pport); + is_claimed = 0; + return 0; +} + +static void kf(void *handle) +{ + if (!is_open) + return; + if (!lirc_claim()) + return; + parport_enable_irq(pport); + lirc_off(); + /* this is a bit annoying when you actually print...*/ + /* + printk(KERN_INFO "%s: reclaimed port\n", LIRC_DRIVER_NAME); + */ +} + +/*** module initialization and cleanup ***/ + +static int __init lirc_parallel_init(void) +{ + pport = parport_find_base(io); + if (pport == NULL) { + printk(KERN_NOTICE "%s: no port at %x found\n", + LIRC_DRIVER_NAME, io); + return -ENXIO; + } + ppdevice = parport_register_device(pport, LIRC_DRIVER_NAME, + pf, kf, irq_handler, 0, NULL); + parport_put_port(pport); + if (ppdevice == NULL) { + printk(KERN_NOTICE "%s: parport_register_device() failed\n", + LIRC_DRIVER_NAME); + return -ENXIO; + } + if (parport_claim(ppdevice) != 0) + goto skip_init; + is_claimed = 1; + out(LIRC_LP_CONTROL, LP_PSELECP|LP_PINITP); + +#ifdef LIRC_TIMER + if (debug) + out(LIRC_PORT_DATA, tx_mask); + + timer = init_lirc_timer(); + +#if 0 /* continue even if device is offline */ + if (timer == 0) { + is_claimed = 0; + parport_release(pport); + parport_unregister_device(ppdevice); + return -EIO; + } + +#endif + if (debug) + out(LIRC_PORT_DATA, 0); +#endif + + is_claimed = 0; + parport_release(ppdevice); + skip_init: + driver.minor = lirc_register_driver(&driver); + if (driver.minor < 0) { + printk(KERN_NOTICE "%s: register_chrdev() failed\n", + LIRC_DRIVER_NAME); + parport_unregister_device(ppdevice); + return -EIO; + } + printk(KERN_INFO "%s: installed using port 0x%04x irq %d\n", + LIRC_DRIVER_NAME, io, irq); + return 0; +} + +static void __exit lirc_parallel_exit(void) +{ + parport_unregister_device(ppdevice); + lirc_unregister_driver(driver.minor); +} + +module_init(lirc_parallel_init); +module_exit(lirc_parallel_exit); + +MODULE_DESCRIPTION("Infrared receiver driver for parallel ports."); +MODULE_AUTHOR("Christoph Bartelmus"); +MODULE_LICENSE("GPL"); + +module_param(io, int, S_IRUGO); +MODULE_PARM_DESC(io, "I/O address base (0x3bc, 0x378 or 0x278)"); + +module_param(irq, int, S_IRUGO); +MODULE_PARM_DESC(irq, "Interrupt (7 or 5)"); + +module_param(tx_mask, int, S_IRUGO); +MODULE_PARM_DESC(tx_maxk, "Transmitter mask (default: 0x01)"); + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); + +module_param(check_pselecd, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Check for printer (default: 0)"); --- linux-2.6.35.orig/drivers/staging/lirc/TODO.lirc_i2c +++ linux-2.6.35/drivers/staging/lirc/TODO.lirc_i2c @@ -0,0 +1,3 @@ +lirc_i2c provides support for some drivers that have already a RC +driver under drivers/media/video. It should be integrated into those +drivers, in special with drivers/media/video/ir-kbd-i2c.c. --- linux-2.6.35.orig/drivers/staging/lirc/lirc_imon.c +++ linux-2.6.35/drivers/staging/lirc/lirc_imon.c @@ -0,0 +1,1058 @@ +/* + * lirc_imon.c: LIRC/VFD/LCD driver for SoundGraph iMON IR/VFD/LCD + * including the iMON PAD model + * + * Copyright(C) 2004 Venky Raju(dev@venky.ws) + * Copyright(C) 2009 Jarod Wilson + * + * lirc_imon is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +#define MOD_AUTHOR "Venky Raju " +#define MOD_DESC "Driver for SoundGraph iMON MultiMedia IR/Display" +#define MOD_NAME "lirc_imon" +#define MOD_VERSION "0.8" + +#define DISPLAY_MINOR_BASE 144 +#define DEVICE_NAME "lcd%d" + +#define BUF_CHUNK_SIZE 4 +#define BUF_SIZE 128 + +#define BIT_DURATION 250 /* each bit received is 250us */ + +/*** P R O T O T Y P E S ***/ + +/* USB Callback prototypes */ +static int imon_probe(struct usb_interface *interface, + const struct usb_device_id *id); +static void imon_disconnect(struct usb_interface *interface); +static void usb_rx_callback(struct urb *urb); +static void usb_tx_callback(struct urb *urb); + +/* suspend/resume support */ +static int imon_resume(struct usb_interface *intf); +static int imon_suspend(struct usb_interface *intf, pm_message_t message); + +/* Display file_operations function prototypes */ +static int display_open(struct inode *inode, struct file *file); +static int display_close(struct inode *inode, struct file *file); + +/* VFD write operation */ +static ssize_t vfd_write(struct file *file, const char *buf, + size_t n_bytes, loff_t *pos); + +/* LIRC driver function prototypes */ +static int ir_open(void *data); +static void ir_close(void *data); + +/* Driver init/exit prototypes */ +static int __init imon_init(void); +static void __exit imon_exit(void); + +/*** G L O B A L S ***/ +#define IMON_DATA_BUF_SZ 35 + +struct imon_context { + struct usb_device *usbdev; + /* Newer devices have two interfaces */ + int display; /* not all controllers do */ + int display_isopen; /* display port has been opened */ + int ir_isopen; /* IR port open */ + int dev_present; /* USB device presence */ + struct mutex ctx_lock; /* to lock this object */ + wait_queue_head_t remove_ok; /* For unexpected USB disconnects */ + + int vfd_proto_6p; /* some VFD require a 6th packet */ + + struct lirc_driver *driver; + struct usb_endpoint_descriptor *rx_endpoint; + struct usb_endpoint_descriptor *tx_endpoint; + struct urb *rx_urb; + struct urb *tx_urb; + unsigned char usb_rx_buf[8]; + unsigned char usb_tx_buf[8]; + + struct rx_data { + int count; /* length of 0 or 1 sequence */ + int prev_bit; /* logic level of sequence */ + int initial_space; /* initial space flag */ + } rx; + + struct tx_t { + unsigned char data_buf[IMON_DATA_BUF_SZ]; /* user data buffer */ + struct completion finished; /* wait for write to finish */ + atomic_t busy; /* write in progress */ + int status; /* status of tx completion */ + } tx; +}; + +static const struct file_operations display_fops = { + .owner = THIS_MODULE, + .open = &display_open, + .write = &vfd_write, + .release = &display_close +}; + +/* + * USB Device ID for iMON USB Control Boards + * + * The Windows drivers contain 6 different inf files, more or less one for + * each new device until the 0x0034-0x0046 devices, which all use the same + * driver. Some of the devices in the 34-46 range haven't been definitively + * identified yet. Early devices have either a TriGem Computer, Inc. or a + * Samsung vendor ID (0x0aa8 and 0x04e8 respectively), while all later + * devices use the SoundGraph vendor ID (0x15c2). + */ +static struct usb_device_id imon_usb_id_table[] = { + /* TriGem iMON (IR only) -- TG_iMON.inf */ + { USB_DEVICE(0x0aa8, 0x8001) }, + + /* SoundGraph iMON (IR only) -- sg_imon.inf */ + { USB_DEVICE(0x04e8, 0xff30) }, + + /* SoundGraph iMON VFD (IR & VFD) -- iMON_VFD.inf */ + { USB_DEVICE(0x0aa8, 0xffda) }, + + /* SoundGraph iMON SS (IR & VFD) -- iMON_SS.inf */ + { USB_DEVICE(0x15c2, 0xffda) }, + + {} +}; + +/* Some iMON VFD models requires a 6th packet for VFD writes */ +static struct usb_device_id vfd_proto_6p_list[] = { + { USB_DEVICE(0x15c2, 0xffda) }, + {} +}; + +/* Some iMON devices have no lcd/vfd, don't set one up */ +static struct usb_device_id ir_only_list[] = { + { USB_DEVICE(0x0aa8, 0x8001) }, + { USB_DEVICE(0x04e8, 0xff30) }, + {} +}; + +/* USB Device data */ +static struct usb_driver imon_driver = { + .name = MOD_NAME, + .probe = imon_probe, + .disconnect = imon_disconnect, + .suspend = imon_suspend, + .resume = imon_resume, + .id_table = imon_usb_id_table, +}; + +static struct usb_class_driver imon_class = { + .name = DEVICE_NAME, + .fops = &display_fops, + .minor_base = DISPLAY_MINOR_BASE, +}; + +/* to prevent races between open() and disconnect(), probing, etc */ +static DEFINE_MUTEX(driver_lock); + +static int debug; + +/*** M O D U L E C O D E ***/ + +MODULE_AUTHOR(MOD_AUTHOR); +MODULE_DESCRIPTION(MOD_DESC); +MODULE_VERSION(MOD_VERSION); +MODULE_LICENSE("GPL"); +MODULE_DEVICE_TABLE(usb, imon_usb_id_table); +module_param(debug, int, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes(default: no)"); + +static void free_imon_context(struct imon_context *context) +{ + struct device *dev = context->driver->dev; + usb_free_urb(context->tx_urb); + usb_free_urb(context->rx_urb); + lirc_buffer_free(context->driver->rbuf); + kfree(context->driver->rbuf); + kfree(context->driver); + kfree(context); + + dev_dbg(dev, "%s: iMON context freed\n", __func__); +} + +static void deregister_from_lirc(struct imon_context *context) +{ + int retval; + int minor = context->driver->minor; + + retval = lirc_unregister_driver(minor); + if (retval) + err("%s: unable to deregister from lirc(%d)", + __func__, retval); + else + printk(KERN_INFO MOD_NAME ": Deregistered iMON driver " + "(minor:%d)\n", minor); + +} + +/** + * Called when the Display device (e.g. /dev/lcd0) + * is opened by the application. + */ +static int display_open(struct inode *inode, struct file *file) +{ + struct usb_interface *interface; + struct imon_context *context = NULL; + int subminor; + int retval = 0; + + /* prevent races with disconnect */ + mutex_lock(&driver_lock); + + subminor = iminor(inode); + interface = usb_find_interface(&imon_driver, subminor); + if (!interface) { + err("%s: could not find interface for minor %d", + __func__, subminor); + retval = -ENODEV; + goto exit; + } + context = usb_get_intfdata(interface); + + if (!context) { + err("%s: no context found for minor %d", + __func__, subminor); + retval = -ENODEV; + goto exit; + } + + mutex_lock(&context->ctx_lock); + + if (!context->display) { + err("%s: display not supported by device", __func__); + retval = -ENODEV; + } else if (context->display_isopen) { + err("%s: display port is already open", __func__); + retval = -EBUSY; + } else { + context->display_isopen = 1; + file->private_data = context; + dev_info(context->driver->dev, "display port opened\n"); + } + + mutex_unlock(&context->ctx_lock); + +exit: + mutex_unlock(&driver_lock); + return retval; +} + +/** + * Called when the display device (e.g. /dev/lcd0) + * is closed by the application. + */ +static int display_close(struct inode *inode, struct file *file) +{ + struct imon_context *context = NULL; + int retval = 0; + + context = (struct imon_context *)file->private_data; + + if (!context) { + err("%s: no context for device", __func__); + return -ENODEV; + } + + mutex_lock(&context->ctx_lock); + + if (!context->display) { + err("%s: display not supported by device", __func__); + retval = -ENODEV; + } else if (!context->display_isopen) { + err("%s: display is not open", __func__); + retval = -EIO; + } else { + context->display_isopen = 0; + dev_info(context->driver->dev, "display port closed\n"); + if (!context->dev_present && !context->ir_isopen) { + /* + * Device disconnected before close and IR port is not + * open. If IR port is open, context will be deleted by + * ir_close. + */ + mutex_unlock(&context->ctx_lock); + free_imon_context(context); + return retval; + } + } + + mutex_unlock(&context->ctx_lock); + return retval; +} + +/** + * Sends a packet to the device -- this function must be called + * with context->ctx_lock held. + */ +static int send_packet(struct imon_context *context) +{ + unsigned int pipe; + int interval = 0; + int retval = 0; + struct usb_ctrlrequest *control_req = NULL; + + /* Check if we need to use control or interrupt urb */ + pipe = usb_sndintpipe(context->usbdev, + context->tx_endpoint->bEndpointAddress); + interval = context->tx_endpoint->bInterval; + + usb_fill_int_urb(context->tx_urb, context->usbdev, pipe, + context->usb_tx_buf, + sizeof(context->usb_tx_buf), + usb_tx_callback, context, interval); + + context->tx_urb->actual_length = 0; + + init_completion(&context->tx.finished); + atomic_set(&(context->tx.busy), 1); + + retval = usb_submit_urb(context->tx_urb, GFP_KERNEL); + if (retval) { + atomic_set(&(context->tx.busy), 0); + err("%s: error submitting urb(%d)", __func__, retval); + } else { + /* Wait for transmission to complete (or abort) */ + mutex_unlock(&context->ctx_lock); + retval = wait_for_completion_interruptible( + &context->tx.finished); + if (retval) + err("%s: task interrupted", __func__); + mutex_lock(&context->ctx_lock); + + retval = context->tx.status; + if (retval) + err("%s: packet tx failed (%d)", __func__, retval); + } + + kfree(control_req); + + return retval; +} + +/** + * Writes data to the VFD. The iMON VFD is 2x16 characters + * and requires data in 5 consecutive USB interrupt packets, + * each packet but the last carrying 7 bytes. + * + * I don't know if the VFD board supports features such as + * scrolling, clearing rows, blanking, etc. so at + * the caller must provide a full screen of data. If fewer + * than 32 bytes are provided spaces will be appended to + * generate a full screen. + */ +static ssize_t vfd_write(struct file *file, const char *buf, + size_t n_bytes, loff_t *pos) +{ + int i; + int offset; + int seq; + int retval = 0; + struct imon_context *context; + const unsigned char vfd_packet6[] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF }; + int *data_buf; + + context = (struct imon_context *)file->private_data; + if (!context) { + err("%s: no context for device", __func__); + return -ENODEV; + } + + mutex_lock(&context->ctx_lock); + + if (!context->dev_present) { + err("%s: no iMON device present", __func__); + retval = -ENODEV; + goto exit; + } + + if (n_bytes <= 0 || n_bytes > IMON_DATA_BUF_SZ - 3) { + err("%s: invalid payload size", __func__); + retval = -EINVAL; + goto exit; + } + + data_buf = memdup_user(buf, n_bytes); + if (IS_ERR(data_buf)) { + retval = PTR_ERR(data_buf); + goto exit; + } + + memcpy(context->tx.data_buf, data_buf, n_bytes); + + /* Pad with spaces */ + for (i = n_bytes; i < IMON_DATA_BUF_SZ - 3; ++i) + context->tx.data_buf[i] = ' '; + + for (i = IMON_DATA_BUF_SZ - 3; i < IMON_DATA_BUF_SZ; ++i) + context->tx.data_buf[i] = 0xFF; + + offset = 0; + seq = 0; + + do { + memcpy(context->usb_tx_buf, context->tx.data_buf + offset, 7); + context->usb_tx_buf[7] = (unsigned char) seq; + + retval = send_packet(context); + if (retval) { + err("%s: send packet failed for packet #%d", + __func__, seq/2); + goto exit; + } else { + seq += 2; + offset += 7; + } + + } while (offset < IMON_DATA_BUF_SZ); + + if (context->vfd_proto_6p) { + /* Send packet #6 */ + memcpy(context->usb_tx_buf, &vfd_packet6, sizeof(vfd_packet6)); + context->usb_tx_buf[7] = (unsigned char) seq; + retval = send_packet(context); + if (retval) + err("%s: send packet failed for packet #%d", + __func__, seq/2); + } + +exit: + mutex_unlock(&context->ctx_lock); + + return (!retval) ? n_bytes : retval; +} + +/** + * Callback function for USB core API: transmit data + */ +static void usb_tx_callback(struct urb *urb) +{ + struct imon_context *context; + + if (!urb) + return; + context = (struct imon_context *)urb->context; + if (!context) + return; + + context->tx.status = urb->status; + + /* notify waiters that write has finished */ + atomic_set(&context->tx.busy, 0); + complete(&context->tx.finished); + + return; +} + +/** + * Called by lirc_dev when the application opens /dev/lirc + */ +static int ir_open(void *data) +{ + int retval = 0; + struct imon_context *context; + + /* prevent races with disconnect */ + mutex_lock(&driver_lock); + + context = (struct imon_context *)data; + + /* initial IR protocol decode variables */ + context->rx.count = 0; + context->rx.initial_space = 1; + context->rx.prev_bit = 0; + + context->ir_isopen = 1; + dev_info(context->driver->dev, "IR port opened\n"); + + mutex_unlock(&driver_lock); + return retval; +} + +/** + * Called by lirc_dev when the application closes /dev/lirc + */ +static void ir_close(void *data) +{ + struct imon_context *context; + + context = (struct imon_context *)data; + if (!context) { + err("%s: no context for device", __func__); + return; + } + + mutex_lock(&context->ctx_lock); + + context->ir_isopen = 0; + dev_info(context->driver->dev, "IR port closed\n"); + + if (!context->dev_present) { + /* + * Device disconnected while IR port was still open. Driver + * was not deregistered at disconnect time, so do it now. + */ + deregister_from_lirc(context); + + if (!context->display_isopen) { + mutex_unlock(&context->ctx_lock); + free_imon_context(context); + return; + } + /* + * If display port is open, context will be deleted by + * display_close + */ + } + + mutex_unlock(&context->ctx_lock); + return; +} + +/** + * Convert bit count to time duration (in us) and submit + * the value to lirc_dev. + */ +static void submit_data(struct imon_context *context) +{ + unsigned char buf[4]; + int value = context->rx.count; + int i; + + dev_dbg(context->driver->dev, "submitting data to LIRC\n"); + + value *= BIT_DURATION; + value &= PULSE_MASK; + if (context->rx.prev_bit) + value |= PULSE_BIT; + + for (i = 0; i < 4; ++i) + buf[i] = value>>(i*8); + + lirc_buffer_write(context->driver->rbuf, buf); + wake_up(&context->driver->rbuf->wait_poll); + return; +} + +static inline int tv2int(const struct timeval *a, const struct timeval *b) +{ + int usecs = 0; + int sec = 0; + + if (b->tv_usec > a->tv_usec) { + usecs = 1000000; + sec--; + } + + usecs += a->tv_usec - b->tv_usec; + + sec += a->tv_sec - b->tv_sec; + sec *= 1000; + usecs /= 1000; + sec += usecs; + + if (sec < 0) + sec = 1000; + + return sec; +} + +/** + * Process the incoming packet + */ +static void imon_incoming_packet(struct imon_context *context, + struct urb *urb, int intf) +{ + int len = urb->actual_length; + unsigned char *buf = urb->transfer_buffer; + struct device *dev = context->driver->dev; + int octet, bit; + unsigned char mask; + int i, chunk_num; + + /* + * just bail out if no listening IR client + */ + if (!context->ir_isopen) + return; + + if (len != 8) { + dev_warn(dev, "imon %s: invalid incoming packet " + "size (len = %d, intf%d)\n", __func__, len, intf); + return; + } + + if (debug) { + printk(KERN_INFO "raw packet: "); + for (i = 0; i < len; ++i) + printk("%02x ", buf[i]); + printk("\n"); + } + + /* + * Translate received data to pulse and space lengths. + * Received data is active low, i.e. pulses are 0 and + * spaces are 1. + * + * My original algorithm was essentially similar to + * Changwoo Ryu's with the exception that he switched + * the incoming bits to active high and also fed an + * initial space to LIRC at the start of a new sequence + * if the previous bit was a pulse. + * + * I've decided to adopt his algorithm. + */ + + if (buf[7] == 1 && context->rx.initial_space) { + /* LIRC requires a leading space */ + context->rx.prev_bit = 0; + context->rx.count = 4; + submit_data(context); + context->rx.count = 0; + } + + for (octet = 0; octet < 5; ++octet) { + mask = 0x80; + for (bit = 0; bit < 8; ++bit) { + int curr_bit = !(buf[octet] & mask); + if (curr_bit != context->rx.prev_bit) { + if (context->rx.count) { + submit_data(context); + context->rx.count = 0; + } + context->rx.prev_bit = curr_bit; + } + ++context->rx.count; + mask >>= 1; + } + } + + if (chunk_num == 10) { + if (context->rx.count) { + submit_data(context); + context->rx.count = 0; + } + context->rx.initial_space = context->rx.prev_bit; + } +} + +/** + * Callback function for USB core API: receive data + */ +static void usb_rx_callback(struct urb *urb) +{ + struct imon_context *context; + unsigned char *buf; + int len; + int intfnum = 0; + + if (!urb) + return; + + context = (struct imon_context *)urb->context; + if (!context) + return; + + buf = urb->transfer_buffer; + len = urb->actual_length; + + switch (urb->status) { + case -ENOENT: /* usbcore unlink successful! */ + return; + + case 0: + imon_incoming_packet(context, urb, intfnum); + break; + + default: + dev_warn(context->driver->dev, "imon %s: status(%d): ignored\n", + __func__, urb->status); + break; + } + + usb_submit_urb(context->rx_urb, GFP_ATOMIC); + + return; +} + +/** + * Callback function for USB core API: Probe + */ +static int imon_probe(struct usb_interface *interface, + const struct usb_device_id *id) +{ + struct usb_device *usbdev = NULL; + struct usb_host_interface *iface_desc = NULL; + struct usb_endpoint_descriptor *rx_endpoint = NULL; + struct usb_endpoint_descriptor *tx_endpoint = NULL; + struct urb *rx_urb = NULL; + struct urb *tx_urb = NULL; + struct lirc_driver *driver = NULL; + struct lirc_buffer *rbuf = NULL; + struct device *dev = &interface->dev; + int ifnum; + int lirc_minor = 0; + int num_endpts; + int retval = 0; + int display_ep_found = 0; + int ir_ep_found = 0; + int alloc_status = 0; + int vfd_proto_6p = 0; + int code_length; + struct imon_context *context = NULL; + int i; + u16 vendor, product; + + context = kzalloc(sizeof(struct imon_context), GFP_KERNEL); + if (!context) { + err("%s: kzalloc failed for context", __func__); + alloc_status = 1; + goto alloc_status_switch; + } + + /* + * Try to auto-detect the type of display if the user hasn't set + * it by hand via the display_type modparam. Default is VFD. + */ + if (usb_match_id(interface, ir_only_list)) + context->display = 0; + else + context->display = 1; + + code_length = BUF_CHUNK_SIZE * 8; + + usbdev = usb_get_dev(interface_to_usbdev(interface)); + iface_desc = interface->cur_altsetting; + num_endpts = iface_desc->desc.bNumEndpoints; + ifnum = iface_desc->desc.bInterfaceNumber; + vendor = le16_to_cpu(usbdev->descriptor.idVendor); + product = le16_to_cpu(usbdev->descriptor.idProduct); + + dev_dbg(dev, "%s: found iMON device (%04x:%04x, intf%d)\n", + __func__, vendor, product, ifnum); + + /* prevent races probing devices w/multiple interfaces */ + mutex_lock(&driver_lock); + + /* + * Scan the endpoint list and set: + * first input endpoint = IR endpoint + * first output endpoint = display endpoint + */ + for (i = 0; i < num_endpts && !(ir_ep_found && display_ep_found); ++i) { + struct usb_endpoint_descriptor *ep; + int ep_dir; + int ep_type; + ep = &iface_desc->endpoint[i].desc; + ep_dir = ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK; + ep_type = ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK; + + if (!ir_ep_found && + ep_dir == USB_DIR_IN && + ep_type == USB_ENDPOINT_XFER_INT) { + + rx_endpoint = ep; + ir_ep_found = 1; + dev_dbg(dev, "%s: found IR endpoint\n", __func__); + + } else if (!display_ep_found && ep_dir == USB_DIR_OUT && + ep_type == USB_ENDPOINT_XFER_INT) { + tx_endpoint = ep; + display_ep_found = 1; + dev_dbg(dev, "%s: found display endpoint\n", __func__); + } + } + + /* + * Some iMON receivers have no display. Unfortunately, it seems + * that SoundGraph recycles device IDs between devices both with + * and without... :\ + */ + if (context->display == 0) { + display_ep_found = 0; + dev_dbg(dev, "%s: device has no display\n", __func__); + } + + /* Input endpoint is mandatory */ + if (!ir_ep_found) { + err("%s: no valid input (IR) endpoint found.", __func__); + retval = -ENODEV; + alloc_status = 2; + goto alloc_status_switch; + } + + /* Determine if display requires 6 packets */ + if (display_ep_found) { + if (usb_match_id(interface, vfd_proto_6p_list)) + vfd_proto_6p = 1; + + dev_dbg(dev, "%s: vfd_proto_6p: %d\n", + __func__, vfd_proto_6p); + } + + driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL); + if (!driver) { + err("%s: kzalloc failed for lirc_driver", __func__); + alloc_status = 2; + goto alloc_status_switch; + } + rbuf = kmalloc(sizeof(struct lirc_buffer), GFP_KERNEL); + if (!rbuf) { + err("%s: kmalloc failed for lirc_buffer", __func__); + alloc_status = 3; + goto alloc_status_switch; + } + if (lirc_buffer_init(rbuf, BUF_CHUNK_SIZE, BUF_SIZE)) { + err("%s: lirc_buffer_init failed", __func__); + alloc_status = 4; + goto alloc_status_switch; + } + rx_urb = usb_alloc_urb(0, GFP_KERNEL); + if (!rx_urb) { + err("%s: usb_alloc_urb failed for IR urb", __func__); + alloc_status = 5; + goto alloc_status_switch; + } + tx_urb = usb_alloc_urb(0, GFP_KERNEL); + if (!tx_urb) { + err("%s: usb_alloc_urb failed for display urb", + __func__); + alloc_status = 6; + goto alloc_status_switch; + } + + mutex_init(&context->ctx_lock); + context->vfd_proto_6p = vfd_proto_6p; + + strcpy(driver->name, MOD_NAME); + driver->minor = -1; + driver->code_length = sizeof(int) * 8; + driver->sample_rate = 0; + driver->features = LIRC_CAN_REC_MODE2; + driver->data = context; + driver->rbuf = rbuf; + driver->set_use_inc = ir_open; + driver->set_use_dec = ir_close; + driver->dev = &interface->dev; + driver->owner = THIS_MODULE; + + mutex_lock(&context->ctx_lock); + + context->driver = driver; + /* start out in keyboard mode */ + + lirc_minor = lirc_register_driver(driver); + if (lirc_minor < 0) { + err("%s: lirc_register_driver failed", __func__); + alloc_status = 7; + goto alloc_status_switch; + } else + dev_info(dev, "Registered iMON driver " + "(lirc minor: %d)\n", lirc_minor); + + /* Needed while unregistering! */ + driver->minor = lirc_minor; + + context->usbdev = usbdev; + context->dev_present = 1; + context->rx_endpoint = rx_endpoint; + context->rx_urb = rx_urb; + + /* + * tx is used to send characters to lcd/vfd, associate RF + * remotes, set IR protocol, and maybe more... + */ + context->tx_endpoint = tx_endpoint; + context->tx_urb = tx_urb; + + if (display_ep_found) + context->display = 1; + + usb_fill_int_urb(context->rx_urb, context->usbdev, + usb_rcvintpipe(context->usbdev, + context->rx_endpoint->bEndpointAddress), + context->usb_rx_buf, sizeof(context->usb_rx_buf), + usb_rx_callback, context, + context->rx_endpoint->bInterval); + + retval = usb_submit_urb(context->rx_urb, GFP_KERNEL); + + if (retval) { + err("%s: usb_submit_urb failed for intf0 (%d)", + __func__, retval); + mutex_unlock(&context->ctx_lock); + goto exit; + } + + usb_set_intfdata(interface, context); + + if (context->display && ifnum == 0) { + dev_dbg(dev, "%s: Registering iMON display with sysfs\n", + __func__); + + if (usb_register_dev(interface, &imon_class)) { + /* Not a fatal error, so ignore */ + dev_info(dev, "%s: could not get a minor number for " + "display\n", __func__); + } + } + + dev_info(dev, "iMON device (%04x:%04x, intf%d) on " + "usb<%d:%d> initialized\n", vendor, product, ifnum, + usbdev->bus->busnum, usbdev->devnum); + +alloc_status_switch: + mutex_unlock(&context->ctx_lock); + + switch (alloc_status) { + case 7: + usb_free_urb(tx_urb); + case 6: + usb_free_urb(rx_urb); + case 5: + if (rbuf) + lirc_buffer_free(rbuf); + case 4: + kfree(rbuf); + case 3: + kfree(driver); + case 2: + kfree(context); + context = NULL; + case 1: + if (retval != -ENODEV) + retval = -ENOMEM; + break; + case 0: + retval = 0; + } + +exit: + mutex_unlock(&driver_lock); + + return retval; +} + +/** + * Callback function for USB core API: disconnect + */ +static void imon_disconnect(struct usb_interface *interface) +{ + struct imon_context *context; + int ifnum; + + /* prevent races with ir_open()/display_open() */ + mutex_lock(&driver_lock); + + context = usb_get_intfdata(interface); + ifnum = interface->cur_altsetting->desc.bInterfaceNumber; + + mutex_lock(&context->ctx_lock); + + usb_set_intfdata(interface, NULL); + + /* Abort ongoing write */ + if (atomic_read(&context->tx.busy)) { + usb_kill_urb(context->tx_urb); + complete_all(&context->tx.finished); + } + + context->dev_present = 0; + usb_kill_urb(context->rx_urb); + if (context->display) + usb_deregister_dev(interface, &imon_class); + + if (!context->ir_isopen && !context->dev_present) { + deregister_from_lirc(context); + mutex_unlock(&context->ctx_lock); + if (!context->display_isopen) + free_imon_context(context); + } else + mutex_unlock(&context->ctx_lock); + + mutex_unlock(&driver_lock); + + printk(KERN_INFO "%s: iMON device (intf%d) disconnected\n", + __func__, ifnum); +} + +static int imon_suspend(struct usb_interface *intf, pm_message_t message) +{ + struct imon_context *context = usb_get_intfdata(intf); + + usb_kill_urb(context->rx_urb); + + return 0; +} + +static int imon_resume(struct usb_interface *intf) +{ + int rc = 0; + struct imon_context *context = usb_get_intfdata(intf); + + usb_fill_int_urb(context->rx_urb, context->usbdev, + usb_rcvintpipe(context->usbdev, + context->rx_endpoint->bEndpointAddress), + context->usb_rx_buf, sizeof(context->usb_rx_buf), + usb_rx_callback, context, + context->rx_endpoint->bInterval); + + rc = usb_submit_urb(context->rx_urb, GFP_ATOMIC); + + return rc; +} + +static int __init imon_init(void) +{ + int rc; + + printk(KERN_INFO MOD_NAME ": " MOD_DESC ", v" MOD_VERSION "\n"); + + rc = usb_register(&imon_driver); + if (rc) { + err("%s: usb register failed(%d)", __func__, rc); + return -ENODEV; + } + + return 0; +} + +static void __exit imon_exit(void) +{ + usb_deregister(&imon_driver); + printk(KERN_INFO MOD_NAME ": module removed. Goodbye!\n"); +} + +module_init(imon_init); +module_exit(imon_exit); --- linux-2.6.35.orig/drivers/staging/lirc/lirc_ttusbir.c +++ linux-2.6.35/drivers/staging/lirc/lirc_ttusbir.c @@ -0,0 +1,396 @@ +/* + * lirc_ttusbir.c + * + * lirc_ttusbir - LIRC device driver for the TechnoTrend USB IR Receiver + * + * Copyright (C) 2007 Stefan Macher + * + * This LIRC driver provides access to the TechnoTrend USB IR Receiver. + * The receiver delivers the IR signal as raw sampled true/false data in + * isochronous USB packets each of size 128 byte. + * Currently the driver reduces the sampling rate by factor of 8 as this + * is still more than enough to decode RC-5 - others should be analyzed. + * But the driver does not rely on RC-5 it should be able to decode every + * IR signal that is not too fast. + */ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +MODULE_DESCRIPTION("TechnoTrend USB IR device driver for LIRC"); +MODULE_AUTHOR("Stefan Macher (st_maker-lirc@yahoo.de)"); +MODULE_LICENSE("GPL"); + +/* #define DEBUG */ +#ifdef DEBUG +#define DPRINTK printk +#else +#define DPRINTK(_x_, a...) +#endif + +/* function declarations */ +static int probe(struct usb_interface *intf, const struct usb_device_id *id); +static void disconnect(struct usb_interface *intf); +static void urb_complete(struct urb *urb); +static int set_use_inc(void *data); +static void set_use_dec(void *data); + +static int num_urbs = 2; +module_param(num_urbs, int, S_IRUGO); +MODULE_PARM_DESC(num_urbs, + "Number of URBs in queue. Try to increase to 4 in case " + "of problems (default: 2; minimum: 2)"); + +/* table of devices that work with this driver */ +static struct usb_device_id device_id_table[] = { + /* TechnoTrend USB IR Receiver */ + { USB_DEVICE(0x0B48, 0x2003) }, + /* Terminating entry */ + { } +}; +MODULE_DEVICE_TABLE(usb, device_id_table); + +/* USB driver definition */ +static struct usb_driver usb_driver = { + .name = "TTUSBIR", + .id_table = &(device_id_table[0]), + .probe = probe, + .disconnect = disconnect, +}; + +/* USB device definition */ +struct ttusbir_device { + struct usb_driver *usb_driver; + struct usb_device *udev; + struct usb_interface *interf; + struct usb_class_driver class_driver; + unsigned int ifnum; /* Interface number to use */ + unsigned int alt_setting; /* alternate setting to use */ + unsigned int endpoint; /* Endpoint to use */ + struct urb **urb; /* num_urb URB pointers*/ + char **buffer; /* 128 byte buffer for each URB */ + struct lirc_buffer rbuf; /* Buffer towards LIRC */ + struct lirc_driver driver; + int minor; + int last_pulse; /* remembers if last received byte was pulse or space */ + int last_num; /* remembers how many last bytes appeared */ + int opened; +}; + +/*** LIRC specific functions ***/ +static int set_use_inc(void *data) +{ + int i, retval; + struct ttusbir_device *ttusbir = data; + + DPRINTK("Sending first URBs\n"); + /* @TODO Do I need to check if I am already opened */ + ttusbir->opened = 1; + + for (i = 0; i < num_urbs; i++) { + retval = usb_submit_urb(ttusbir->urb[i], GFP_KERNEL); + if (retval) { + err("%s: usb_submit_urb failed on urb %d", + __func__, i); + return retval; + } + } + return 0; +} + +static void set_use_dec(void *data) +{ + struct ttusbir_device *ttusbir = data; + + DPRINTK("Device closed\n"); + + ttusbir->opened = 0; +} + +/*** USB specific functions ***/ + +/* + * This mapping table is used to do a very simple filtering of the + * input signal. + * For a value with at least 4 bits set it returns 0xFF otherwise + * 0x00. For faster IR signals this can not be used. But for RC-5 we + * still have about 14 samples per pulse/space, i.e. we sample with 14 + * times higher frequency than the signal frequency + */ +const unsigned char map_table[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF +}; + +static void urb_complete(struct urb *urb) +{ + struct ttusbir_device *ttusbir; + unsigned char *buf; + int i; + int l; + + ttusbir = urb->context; + + if (!ttusbir->opened) + return; + + buf = (unsigned char *)urb->transfer_buffer; + + for (i = 0; i < 128; i++) { + /* Here we do the filtering and some kind of down sampling */ + buf[i] = ~map_table[buf[i]]; + if (ttusbir->last_pulse == buf[i]) { + if (ttusbir->last_num < PULSE_MASK/63) + ttusbir->last_num++; + /* + * else we are in a idle period and do not need to + * increment any longer + */ + } else { + l = ttusbir->last_num * 62; /* about 62 = us/byte */ + if (ttusbir->last_pulse) /* pulse or space? */ + l |= PULSE_BIT; + if (!lirc_buffer_full(&ttusbir->rbuf)) { + lirc_buffer_write(&ttusbir->rbuf, (void *)&l); + wake_up_interruptible(&ttusbir->rbuf.wait_poll); + } + ttusbir->last_num = 0; + ttusbir->last_pulse = buf[i]; + } + } + usb_submit_urb(urb, GFP_ATOMIC); /* keep data rolling :-) */ +} + +/* + * Called whenever the USB subsystem thinks we could be the right driver + * to handle this device + */ +static int probe(struct usb_interface *intf, const struct usb_device_id *id) +{ + int alt_set, endp; + int found = 0; + int i, j; + int struct_size; + struct usb_host_interface *host_interf; + struct usb_interface_descriptor *interf_desc; + struct usb_host_endpoint *host_endpoint; + struct ttusbir_device *ttusbir; + + DPRINTK("Module ttusbir probe\n"); + + /* To reduce memory fragmentation we use only one allocation */ + struct_size = sizeof(struct ttusbir_device) + + (sizeof(struct urb *) * num_urbs) + + (sizeof(char *) * num_urbs) + + (num_urbs * 128); + ttusbir = kzalloc(struct_size, GFP_KERNEL); + if (!ttusbir) + return -ENOMEM; + + ttusbir->urb = (struct urb **)((char *)ttusbir + + sizeof(struct ttusbir_device)); + ttusbir->buffer = (char **)((char *)ttusbir->urb + + (sizeof(struct urb *) * num_urbs)); + for (i = 0; i < num_urbs; i++) + ttusbir->buffer[i] = (char *)ttusbir->buffer + + (sizeof(char *)*num_urbs) + (i * 128); + + ttusbir->usb_driver = &usb_driver; + ttusbir->alt_setting = -1; + /* @TODO check if error can be returned */ + ttusbir->udev = usb_get_dev(interface_to_usbdev(intf)); + ttusbir->interf = intf; + ttusbir->last_pulse = 0x00; + ttusbir->last_num = 0; + + /* + * Now look for interface setting we can handle + * We are searching for the alt setting where end point + * 0x82 has max packet size 16 + */ + for (alt_set = 0; alt_set < intf->num_altsetting && !found; alt_set++) { + host_interf = &intf->altsetting[alt_set]; + interf_desc = &host_interf->desc; + for (endp = 0; endp < interf_desc->bNumEndpoints; endp++) { + host_endpoint = &host_interf->endpoint[endp]; + if ((host_endpoint->desc.bEndpointAddress == 0x82) && + (host_endpoint->desc.wMaxPacketSize == 0x10)) { + ttusbir->alt_setting = alt_set; + ttusbir->endpoint = endp; + found = 1; + break; + } + } + } + if (ttusbir->alt_setting != -1) + DPRINTK("alt setting: %d\n", ttusbir->alt_setting); + else { + err("Could not find alternate setting\n"); + kfree(ttusbir); + return -EINVAL; + } + + /* OK lets setup this interface setting */ + usb_set_interface(ttusbir->udev, 0, ttusbir->alt_setting); + + /* Store device info in interface structure */ + usb_set_intfdata(intf, ttusbir); + + /* Register as a LIRC driver */ + if (lirc_buffer_init(&ttusbir->rbuf, sizeof(int), 256) < 0) { + err("Could not get memory for LIRC data buffer\n"); + usb_set_intfdata(intf, NULL); + kfree(ttusbir); + return -ENOMEM; + } + strcpy(ttusbir->driver.name, "TTUSBIR"); + ttusbir->driver.minor = -1; + ttusbir->driver.code_length = 1; + ttusbir->driver.sample_rate = 0; + ttusbir->driver.data = ttusbir; + ttusbir->driver.add_to_buf = NULL; + ttusbir->driver.rbuf = &ttusbir->rbuf; + ttusbir->driver.set_use_inc = set_use_inc; + ttusbir->driver.set_use_dec = set_use_dec; + ttusbir->driver.dev = &intf->dev; + ttusbir->driver.owner = THIS_MODULE; + ttusbir->driver.features = LIRC_CAN_REC_MODE2; + ttusbir->minor = lirc_register_driver(&ttusbir->driver); + if (ttusbir->minor < 0) { + err("Error registering as LIRC driver\n"); + usb_set_intfdata(intf, NULL); + lirc_buffer_free(&ttusbir->rbuf); + kfree(ttusbir); + return -EIO; + } + + /* Allocate and setup the URB that we will use to talk to the device */ + for (i = 0; i < num_urbs; i++) { + ttusbir->urb[i] = usb_alloc_urb(8, GFP_KERNEL); + if (!ttusbir->urb[i]) { + err("Could not allocate memory for the URB\n"); + for (j = i - 1; j >= 0; j--) + kfree(ttusbir->urb[j]); + lirc_buffer_free(&ttusbir->rbuf); + lirc_unregister_driver(ttusbir->minor); + kfree(ttusbir); + usb_set_intfdata(intf, NULL); + return -ENOMEM; + } + ttusbir->urb[i]->dev = ttusbir->udev; + ttusbir->urb[i]->context = ttusbir; + ttusbir->urb[i]->pipe = usb_rcvisocpipe(ttusbir->udev, + ttusbir->endpoint); + ttusbir->urb[i]->interval = 1; + ttusbir->urb[i]->transfer_flags = URB_ISO_ASAP; + ttusbir->urb[i]->transfer_buffer = &ttusbir->buffer[i][0]; + ttusbir->urb[i]->complete = urb_complete; + ttusbir->urb[i]->number_of_packets = 8; + ttusbir->urb[i]->transfer_buffer_length = 128; + for (j = 0; j < 8; j++) { + ttusbir->urb[i]->iso_frame_desc[j].offset = j*16; + ttusbir->urb[i]->iso_frame_desc[j].length = 16; + } + } + return 0; +} + +/** + * Called when the driver is unloaded or the device is unplugged + */ +static void disconnect(struct usb_interface *intf) +{ + int i; + struct ttusbir_device *ttusbir; + + DPRINTK("Module ttusbir disconnect\n"); + + ttusbir = (struct ttusbir_device *) usb_get_intfdata(intf); + usb_set_intfdata(intf, NULL); + lirc_unregister_driver(ttusbir->minor); + DPRINTK("unregistered\n"); + + for (i = 0; i < num_urbs; i++) { + usb_kill_urb(ttusbir->urb[i]); + usb_free_urb(ttusbir->urb[i]); + } + DPRINTK("URBs killed\n"); + lirc_buffer_free(&ttusbir->rbuf); + kfree(ttusbir); +} + +static int ttusbir_init_module(void) +{ + int result; + + DPRINTK(KERN_DEBUG "Module ttusbir init\n"); + + /* register this driver with the USB subsystem */ + result = usb_register(&usb_driver); + if (result) + err("usb_register failed. Error number %d", result); + return result; +} + +static void ttusbir_exit_module(void) +{ + printk(KERN_DEBUG "Module ttusbir exit\n"); + usb_deregister(&usb_driver); +} + +module_init(ttusbir_init_module); +module_exit(ttusbir_exit_module); --- linux-2.6.35.orig/drivers/staging/lirc/lirc_zilog.c +++ linux-2.6.35/drivers/staging/lirc/lirc_zilog.c @@ -0,0 +1,1387 @@ +/* + * i2c IR lirc driver for devices with zilog IR processors + * + * Copyright (c) 2000 Gerd Knorr + * modified for PixelView (BT878P+W/FM) by + * Michal Kochanowicz + * Christoph Bartelmus + * modified for KNC ONE TV Station/Anubis Typhoon TView Tuner by + * Ulrich Mueller + * modified for Asus TV-Box and Creative/VisionTek BreakOut-Box by + * Stefan Jahn + * modified for inclusion into kernel sources by + * Jerome Brock + * modified for Leadtek Winfast PVR2000 by + * Thomas Reitmayr (treitmayr@yahoo.com) + * modified for Hauppauge PVR-150 IR TX device by + * Mark Weaver + * changed name from lirc_pvr150 to lirc_zilog, works on more than pvr-150 + * Jarod Wilson + * + * parts are cut&pasted from the lirc_i2c.c driver + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +struct IR { + struct lirc_driver l; + + /* Device info */ + struct mutex ir_lock; + int open; + + /* RX device */ + struct i2c_client c_rx; + int have_rx; + + /* RX device buffer & lock */ + struct lirc_buffer buf; + struct mutex buf_lock; + + /* RX polling thread data */ + struct completion *t_notify; + struct completion *t_notify2; + int shutdown; + struct task_struct *task; + + /* RX read data */ + unsigned char b[3]; + + /* TX device */ + struct i2c_client c_tx; + int need_boot; + int have_tx; +}; + +/* Minor -> data mapping */ +static struct IR *ir_devices[MAX_IRCTL_DEVICES]; + +/* Block size for IR transmitter */ +#define TX_BLOCK_SIZE 99 + +/* Hauppauge IR transmitter data */ +struct tx_data_struct { + /* Boot block */ + unsigned char *boot_data; + + /* Start of binary data block */ + unsigned char *datap; + + /* End of binary data block */ + unsigned char *endp; + + /* Number of installed codesets */ + unsigned int num_code_sets; + + /* Pointers to codesets */ + unsigned char **code_sets; + + /* Global fixed data template */ + int fixed[TX_BLOCK_SIZE]; +}; + +static struct tx_data_struct *tx_data; +static struct mutex tx_data_lock; + +#define zilog_notify(s, args...) printk(KERN_NOTICE KBUILD_MODNAME ": " s, \ + ## args) +#define zilog_error(s, args...) printk(KERN_ERR KBUILD_MODNAME ": " s, ## args) + +#define ZILOG_HAUPPAUGE_IR_RX_NAME "Zilog/Hauppauge IR RX" +#define ZILOG_HAUPPAUGE_IR_TX_NAME "Zilog/Hauppauge IR TX" + +/* module parameters */ +static int debug; /* debug output */ +static int disable_rx; /* disable RX device */ +static int disable_tx; /* disable TX device */ +static int minor = -1; /* minor number */ + +#define dprintk(fmt, args...) \ + do { \ + if (debug) \ + printk(KERN_DEBUG KBUILD_MODNAME ": " fmt, \ + ## args); \ + } while (0) + +static int add_to_buf(struct IR *ir) +{ + __u16 code; + unsigned char codes[2]; + unsigned char keybuf[6]; + int got_data = 0; + int ret; + int failures = 0; + unsigned char sendbuf[1] = { 0 }; + + if (lirc_buffer_full(&ir->buf)) { + dprintk("buffer overflow\n"); + return -EOVERFLOW; + } + + /* + * service the device as long as it is returning + * data and we have space + */ + do { + /* + * Lock i2c bus for the duration. RX/TX chips interfere so + * this is worth it + */ + mutex_lock(&ir->ir_lock); + + /* + * Send random "poll command" (?) Windows driver does this + * and it is a good point to detect chip failure. + */ + ret = i2c_master_send(&ir->c_rx, sendbuf, 1); + if (ret != 1) { + zilog_error("i2c_master_send failed with %d\n", ret); + if (failures >= 3) { + mutex_unlock(&ir->ir_lock); + zilog_error("unable to read from the IR chip " + "after 3 resets, giving up\n"); + return ret; + } + + /* Looks like the chip crashed, reset it */ + zilog_error("polling the IR receiver chip failed, " + "trying reset\n"); + + set_current_state(TASK_UNINTERRUPTIBLE); + schedule_timeout((100 * HZ + 999) / 1000); + ir->need_boot = 1; + + ++failures; + mutex_unlock(&ir->ir_lock); + continue; + } + + ret = i2c_master_recv(&ir->c_rx, keybuf, sizeof(keybuf)); + mutex_unlock(&ir->ir_lock); + if (ret != sizeof(keybuf)) { + zilog_error("i2c_master_recv failed with %d -- " + "keeping last read buffer\n", ret); + } else { + ir->b[0] = keybuf[3]; + ir->b[1] = keybuf[4]; + ir->b[2] = keybuf[5]; + dprintk("key (0x%02x/0x%02x)\n", ir->b[0], ir->b[1]); + } + + /* key pressed ? */ +#ifdef I2C_HW_B_HDPVR + if (ir->c_rx.adapter->id == I2C_HW_B_HDPVR) { + if (got_data && (keybuf[0] == 0x80)) + return 0; + else if (got_data && (keybuf[0] == 0x00)) + return -ENODATA; + } else if ((ir->b[0] & 0x80) == 0) +#else + if ((ir->b[0] & 0x80) == 0) +#endif + return got_data ? 0 : -ENODATA; + + /* look what we have */ + code = (((__u16)ir->b[0] & 0x7f) << 6) | (ir->b[1] >> 2); + + codes[0] = (code >> 8) & 0xff; + codes[1] = code & 0xff; + + /* return it */ + lirc_buffer_write(&ir->buf, codes); + ++got_data; + } while (!lirc_buffer_full(&ir->buf)); + + return 0; +} + +/* + * Main function of the polling thread -- from lirc_dev. + * We don't fit the LIRC model at all anymore. This is horrible, but + * basically we have a single RX/TX device with a nasty failure mode + * that needs to be accounted for across the pair. lirc lets us provide + * fops, but prevents us from using the internal polling, etc. if we do + * so. Hence the replication. Might be neater to extend the LIRC model + * to account for this but I'd think it's a very special case of seriously + * messed up hardware. + */ +static int lirc_thread(void *arg) +{ + struct IR *ir = arg; + + if (ir->t_notify != NULL) + complete(ir->t_notify); + + dprintk("poll thread started\n"); + + do { + if (ir->open) { + set_current_state(TASK_INTERRUPTIBLE); + + /* + * This is ~113*2 + 24 + jitter (2*repeat gap + + * code length). We use this interval as the chip + * resets every time you poll it (bad!). This is + * therefore just sufficient to catch all of the + * button presses. It makes the remote much more + * responsive. You can see the difference by + * running irw and holding down a button. With + * 100ms, the old polling interval, you'll notice + * breaks in the repeat sequence corresponding to + * lost keypresses. + */ + schedule_timeout((260 * HZ) / 1000); + if (ir->shutdown) + break; + if (!add_to_buf(ir)) + wake_up_interruptible(&ir->buf.wait_poll); + } else { + /* if device not opened so we can sleep half a second */ + set_current_state(TASK_INTERRUPTIBLE); + schedule_timeout(HZ/2); + } + } while (!ir->shutdown); + + if (ir->t_notify2 != NULL) + wait_for_completion(ir->t_notify2); + + ir->task = NULL; + if (ir->t_notify != NULL) + complete(ir->t_notify); + + dprintk("poll thread ended\n"); + return 0; +} + +static int set_use_inc(void *data) +{ + struct IR *ir = data; + + if (ir->l.owner == NULL || try_module_get(ir->l.owner) == 0) + return -ENODEV; + + /* lock bttv in memory while /dev/lirc is in use */ + /* + * this is completely broken code. lirc_unregister_driver() + * must be possible even when the device is open + */ + if (ir->c_rx.addr) + i2c_use_client(&ir->c_rx); + if (ir->c_tx.addr) + i2c_use_client(&ir->c_tx); + + return 0; +} + +static void set_use_dec(void *data) +{ + struct IR *ir = data; + + if (ir->c_rx.addr) + i2c_release_client(&ir->c_rx); + if (ir->c_tx.addr) + i2c_release_client(&ir->c_tx); + if (ir->l.owner != NULL) + module_put(ir->l.owner); +} + +/* safe read of a uint32 (always network byte order) */ +static int read_uint32(unsigned char **data, + unsigned char *endp, unsigned int *val) +{ + if (*data + 4 > endp) + return 0; + *val = ((*data)[0] << 24) | ((*data)[1] << 16) | + ((*data)[2] << 8) | (*data)[3]; + *data += 4; + return 1; +} + +/* safe read of a uint8 */ +static int read_uint8(unsigned char **data, + unsigned char *endp, unsigned char *val) +{ + if (*data + 1 > endp) + return 0; + *val = *((*data)++); + return 1; +} + +/* safe skipping of N bytes */ +static int skip(unsigned char **data, + unsigned char *endp, unsigned int distance) +{ + if (*data + distance > endp) + return 0; + *data += distance; + return 1; +} + +/* decompress key data into the given buffer */ +static int get_key_data(unsigned char *buf, + unsigned int codeset, unsigned int key) +{ + unsigned char *data, *endp, *diffs, *key_block; + unsigned char keys, ndiffs, id; + unsigned int base, lim, pos, i; + + /* Binary search for the codeset */ + for (base = 0, lim = tx_data->num_code_sets; lim; lim >>= 1) { + pos = base + (lim >> 1); + data = tx_data->code_sets[pos]; + + if (!read_uint32(&data, tx_data->endp, &i)) + goto corrupt; + + if (i == codeset) + break; + else if (codeset > i) { + base = pos + 1; + --lim; + } + } + /* Not found? */ + if (!lim) + return -EPROTO; + + /* Set end of data block */ + endp = pos < tx_data->num_code_sets - 1 ? + tx_data->code_sets[pos + 1] : tx_data->endp; + + /* Read the block header */ + if (!read_uint8(&data, endp, &keys) || + !read_uint8(&data, endp, &ndiffs) || + ndiffs > TX_BLOCK_SIZE || keys == 0) + goto corrupt; + + /* Save diffs & skip */ + diffs = data; + if (!skip(&data, endp, ndiffs)) + goto corrupt; + + /* Read the id of the first key */ + if (!read_uint8(&data, endp, &id)) + goto corrupt; + + /* Unpack the first key's data */ + for (i = 0; i < TX_BLOCK_SIZE; ++i) { + if (tx_data->fixed[i] == -1) { + if (!read_uint8(&data, endp, &buf[i])) + goto corrupt; + } else { + buf[i] = (unsigned char)tx_data->fixed[i]; + } + } + + /* Early out key found/not found */ + if (key == id) + return 0; + if (keys == 1) + return -EPROTO; + + /* Sanity check */ + key_block = data; + if (!skip(&data, endp, (keys - 1) * (ndiffs + 1))) + goto corrupt; + + /* Binary search for the key */ + for (base = 0, lim = keys - 1; lim; lim >>= 1) { + /* Seek to block */ + unsigned char *key_data; + pos = base + (lim >> 1); + key_data = key_block + (ndiffs + 1) * pos; + + if (*key_data == key) { + /* skip key id */ + ++key_data; + + /* found, so unpack the diffs */ + for (i = 0; i < ndiffs; ++i) { + unsigned char val; + if (!read_uint8(&key_data, endp, &val) || + diffs[i] >= TX_BLOCK_SIZE) + goto corrupt; + buf[diffs[i]] = val; + } + + return 0; + } else if (key > *key_data) { + base = pos + 1; + --lim; + } + } + /* Key not found */ + return -EPROTO; + +corrupt: + zilog_error("firmware is corrupt\n"); + return -EFAULT; +} + +/* send a block of data to the IR TX device */ +static int send_data_block(struct IR *ir, unsigned char *data_block) +{ + int i, j, ret; + unsigned char buf[5]; + + for (i = 0; i < TX_BLOCK_SIZE;) { + int tosend = TX_BLOCK_SIZE - i; + if (tosend > 4) + tosend = 4; + buf[0] = (unsigned char)(i + 1); + for (j = 0; j < tosend; ++j) + buf[1 + j] = data_block[i + j]; + dprintk("%02x %02x %02x %02x %02x", + buf[0], buf[1], buf[2], buf[3], buf[4]); + ret = i2c_master_send(&ir->c_tx, buf, tosend + 1); + if (ret != tosend + 1) { + zilog_error("i2c_master_send failed with %d\n", ret); + return ret < 0 ? ret : -EFAULT; + } + i += tosend; + } + return 0; +} + +/* send boot data to the IR TX device */ +static int send_boot_data(struct IR *ir) +{ + int ret; + unsigned char buf[4]; + + /* send the boot block */ + ret = send_data_block(ir, tx_data->boot_data); + if (ret != 0) + return ret; + + /* kick it off? */ + buf[0] = 0x00; + buf[1] = 0x20; + ret = i2c_master_send(&ir->c_tx, buf, 2); + if (ret != 2) { + zilog_error("i2c_master_send failed with %d\n", ret); + return ret < 0 ? ret : -EFAULT; + } + ret = i2c_master_send(&ir->c_tx, buf, 1); + if (ret != 1) { + zilog_error("i2c_master_send failed with %d\n", ret); + return ret < 0 ? ret : -EFAULT; + } + + /* Here comes the firmware version... (hopefully) */ + ret = i2c_master_recv(&ir->c_tx, buf, 4); + if (ret != 4) { + zilog_error("i2c_master_recv failed with %d\n", ret); + return 0; + } + if (buf[0] != 0x80) { + zilog_error("unexpected IR TX response: %02x\n", buf[0]); + return 0; + } + zilog_notify("Zilog/Hauppauge IR blaster firmware version " + "%d.%d.%d loaded\n", buf[1], buf[2], buf[3]); + + return 0; +} + +/* unload "firmware", lock held */ +static void fw_unload_locked(void) +{ + if (tx_data) { + if (tx_data->code_sets) + vfree(tx_data->code_sets); + + if (tx_data->datap) + vfree(tx_data->datap); + + vfree(tx_data); + tx_data = NULL; + dprintk("successfully unloaded IR blaster firmware\n"); + } +} + +/* unload "firmware" for the IR TX device */ +static void fw_unload(void) +{ + mutex_lock(&tx_data_lock); + fw_unload_locked(); + mutex_unlock(&tx_data_lock); +} + +/* load "firmware" for the IR TX device */ +static int fw_load(struct IR *ir) +{ + int ret; + unsigned int i; + unsigned char *data, version, num_global_fixed; + const struct firmware *fw_entry; + + /* Already loaded? */ + mutex_lock(&tx_data_lock); + if (tx_data) { + ret = 0; + goto out; + } + + /* Request codeset data file */ + ret = request_firmware(&fw_entry, "haup-ir-blaster.bin", &ir->c_tx.dev); + if (ret != 0) { + zilog_error("firmware haup-ir-blaster.bin not available " + "(%d)\n", ret); + ret = ret < 0 ? ret : -EFAULT; + goto out; + } + dprintk("firmware of size %zu loaded\n", fw_entry->size); + + /* Parse the file */ + tx_data = vmalloc(sizeof(*tx_data)); + if (tx_data == NULL) { + zilog_error("out of memory\n"); + release_firmware(fw_entry); + ret = -ENOMEM; + goto out; + } + tx_data->code_sets = NULL; + + /* Copy the data so hotplug doesn't get confused and timeout */ + tx_data->datap = vmalloc(fw_entry->size); + if (tx_data->datap == NULL) { + zilog_error("out of memory\n"); + release_firmware(fw_entry); + vfree(tx_data); + ret = -ENOMEM; + goto out; + } + memcpy(tx_data->datap, fw_entry->data, fw_entry->size); + tx_data->endp = tx_data->datap + fw_entry->size; + release_firmware(fw_entry); fw_entry = NULL; + + /* Check version */ + data = tx_data->datap; + if (!read_uint8(&data, tx_data->endp, &version)) + goto corrupt; + if (version != 1) { + zilog_error("unsupported code set file version (%u, expected" + "1) -- please upgrade to a newer driver", + version); + fw_unload_locked(); + ret = -EFAULT; + goto out; + } + + /* Save boot block for later */ + tx_data->boot_data = data; + if (!skip(&data, tx_data->endp, TX_BLOCK_SIZE)) + goto corrupt; + + if (!read_uint32(&data, tx_data->endp, + &tx_data->num_code_sets)) + goto corrupt; + + dprintk("%u IR blaster codesets loaded\n", tx_data->num_code_sets); + + tx_data->code_sets = vmalloc( + tx_data->num_code_sets * sizeof(char *)); + if (tx_data->code_sets == NULL) { + fw_unload_locked(); + ret = -ENOMEM; + goto out; + } + + for (i = 0; i < TX_BLOCK_SIZE; ++i) + tx_data->fixed[i] = -1; + + /* Read global fixed data template */ + if (!read_uint8(&data, tx_data->endp, &num_global_fixed) || + num_global_fixed > TX_BLOCK_SIZE) + goto corrupt; + for (i = 0; i < num_global_fixed; ++i) { + unsigned char pos, val; + if (!read_uint8(&data, tx_data->endp, &pos) || + !read_uint8(&data, tx_data->endp, &val) || + pos >= TX_BLOCK_SIZE) + goto corrupt; + tx_data->fixed[pos] = (int)val; + } + + /* Filch out the position of each code set */ + for (i = 0; i < tx_data->num_code_sets; ++i) { + unsigned int id; + unsigned char keys; + unsigned char ndiffs; + + /* Save the codeset position */ + tx_data->code_sets[i] = data; + + /* Read header */ + if (!read_uint32(&data, tx_data->endp, &id) || + !read_uint8(&data, tx_data->endp, &keys) || + !read_uint8(&data, tx_data->endp, &ndiffs) || + ndiffs > TX_BLOCK_SIZE || keys == 0) + goto corrupt; + + /* skip diff positions */ + if (!skip(&data, tx_data->endp, ndiffs)) + goto corrupt; + + /* + * After the diffs we have the first key id + data - + * global fixed + */ + if (!skip(&data, tx_data->endp, + 1 + TX_BLOCK_SIZE - num_global_fixed)) + goto corrupt; + + /* Then we have keys-1 blocks of key id+diffs */ + if (!skip(&data, tx_data->endp, + (ndiffs + 1) * (keys - 1))) + goto corrupt; + } + ret = 0; + goto out; + +corrupt: + zilog_error("firmware is corrupt\n"); + fw_unload_locked(); + ret = -EFAULT; + +out: + mutex_unlock(&tx_data_lock); + return ret; +} + +/* initialise the IR TX device */ +static int tx_init(struct IR *ir) +{ + int ret; + + /* Load 'firmware' */ + ret = fw_load(ir); + if (ret != 0) + return ret; + + /* Send boot block */ + ret = send_boot_data(ir); + if (ret != 0) + return ret; + ir->need_boot = 0; + + /* Looks good */ + return 0; +} + +/* do nothing stub to make LIRC happy */ +static loff_t lseek(struct file *filep, loff_t offset, int orig) +{ + return -ESPIPE; +} + +/* copied from lirc_dev */ +static ssize_t read(struct file *filep, char *outbuf, size_t n, loff_t *ppos) +{ + struct IR *ir = (struct IR *)filep->private_data; + unsigned char buf[ir->buf.chunk_size]; + int ret = 0, written = 0; + DECLARE_WAITQUEUE(wait, current); + + dprintk("read called\n"); + if (ir->c_rx.addr == 0) + return -ENODEV; + + if (mutex_lock_interruptible(&ir->buf_lock)) + return -ERESTARTSYS; + + if (n % ir->buf.chunk_size) { + dprintk("read result = -EINVAL\n"); + mutex_unlock(&ir->buf_lock); + return -EINVAL; + } + + /* + * we add ourselves to the task queue before buffer check + * to avoid losing scan code (in case when queue is awaken somewhere + * between while condition checking and scheduling) + */ + add_wait_queue(&ir->buf.wait_poll, &wait); + set_current_state(TASK_INTERRUPTIBLE); + + /* + * while we didn't provide 'length' bytes, device is opened in blocking + * mode and 'copy_to_user' is happy, wait for data. + */ + while (written < n && ret == 0) { + if (lirc_buffer_empty(&ir->buf)) { + /* + * According to the read(2) man page, 'written' can be + * returned as less than 'n', instead of blocking + * again, returning -EWOULDBLOCK, or returning + * -ERESTARTSYS + */ + if (written) + break; + if (filep->f_flags & O_NONBLOCK) { + ret = -EWOULDBLOCK; + break; + } + if (signal_pending(current)) { + ret = -ERESTARTSYS; + break; + } + schedule(); + set_current_state(TASK_INTERRUPTIBLE); + } else { + lirc_buffer_read(&ir->buf, buf); + ret = copy_to_user((void *)outbuf+written, buf, + ir->buf.chunk_size); + written += ir->buf.chunk_size; + } + } + + remove_wait_queue(&ir->buf.wait_poll, &wait); + set_current_state(TASK_RUNNING); + mutex_unlock(&ir->buf_lock); + + dprintk("read result = %s (%d)\n", + ret ? "-EFAULT" : "OK", ret); + + return ret ? ret : written; +} + +/* send a keypress to the IR TX device */ +static int send_code(struct IR *ir, unsigned int code, unsigned int key) +{ + unsigned char data_block[TX_BLOCK_SIZE]; + unsigned char buf[2]; + int i, ret; + + /* Get data for the codeset/key */ + ret = get_key_data(data_block, code, key); + + if (ret == -EPROTO) { + zilog_error("failed to get data for code %u, key %u -- check " + "lircd.conf entries\n", code, key); + return ret; + } else if (ret != 0) + return ret; + + /* Send the data block */ + ret = send_data_block(ir, data_block); + if (ret != 0) + return ret; + + /* Send data block length? */ + buf[0] = 0x00; + buf[1] = 0x40; + ret = i2c_master_send(&ir->c_tx, buf, 2); + if (ret != 2) { + zilog_error("i2c_master_send failed with %d\n", ret); + return ret < 0 ? ret : -EFAULT; + } + ret = i2c_master_send(&ir->c_tx, buf, 1); + if (ret != 1) { + zilog_error("i2c_master_send failed with %d\n", ret); + return ret < 0 ? ret : -EFAULT; + } + + /* Send finished download? */ + ret = i2c_master_recv(&ir->c_tx, buf, 1); + if (ret != 1) { + zilog_error("i2c_master_recv failed with %d\n", ret); + return ret < 0 ? ret : -EFAULT; + } + if (buf[0] != 0xA0) { + zilog_error("unexpected IR TX response #1: %02x\n", + buf[0]); + return -EFAULT; + } + + /* Send prepare command? */ + buf[0] = 0x00; + buf[1] = 0x80; + ret = i2c_master_send(&ir->c_tx, buf, 2); + if (ret != 2) { + zilog_error("i2c_master_send failed with %d\n", ret); + return ret < 0 ? ret : -EFAULT; + } + +#ifdef I2C_HW_B_HDPVR + /* + * The sleep bits aren't necessary on the HD PVR, and in fact, the + * last i2c_master_recv always fails with a -5, so for now, we're + * going to skip this whole mess and say we're done on the HD PVR + */ + if (ir->c_rx.adapter->id == I2C_HW_B_HDPVR) + goto done; +#endif + + /* + * This bit NAKs until the device is ready, so we retry it + * sleeping a bit each time. This seems to be what the windows + * driver does, approximately. + * Try for up to 1s. + */ + for (i = 0; i < 20; ++i) { + set_current_state(TASK_UNINTERRUPTIBLE); + schedule_timeout((50 * HZ + 999) / 1000); + ret = i2c_master_send(&ir->c_tx, buf, 1); + if (ret == 1) + break; + dprintk("NAK expected: i2c_master_send " + "failed with %d (try %d)\n", ret, i+1); + } + if (ret != 1) { + zilog_error("IR TX chip never got ready: last i2c_master_send " + "failed with %d\n", ret); + return ret < 0 ? ret : -EFAULT; + } + + /* Seems to be an 'ok' response */ + i = i2c_master_recv(&ir->c_tx, buf, 1); + if (i != 1) { + zilog_error("i2c_master_recv failed with %d\n", ret); + return -EFAULT; + } + if (buf[0] != 0x80) { + zilog_error("unexpected IR TX response #2: %02x\n", buf[0]); + return -EFAULT; + } + +done: + /* Oh good, it worked */ + dprintk("sent code %u, key %u\n", code, key); + return 0; +} + +/* + * Write a code to the device. We take in a 32-bit number (an int) and then + * decode this to a codeset/key index. The key data is then decompressed and + * sent to the device. We have a spin lock as per i2c documentation to prevent + * multiple concurrent sends which would probably cause the device to explode. + */ +static ssize_t write(struct file *filep, const char *buf, size_t n, + loff_t *ppos) +{ + struct IR *ir = (struct IR *)filep->private_data; + size_t i; + int failures = 0; + + if (ir->c_tx.addr == 0) + return -ENODEV; + + /* Validate user parameters */ + if (n % sizeof(int)) + return -EINVAL; + + /* Lock i2c bus for the duration */ + mutex_lock(&ir->ir_lock); + + /* Send each keypress */ + for (i = 0; i < n;) { + int ret = 0; + int command; + + if (copy_from_user(&command, buf + i, sizeof(command))) { + mutex_unlock(&ir->ir_lock); + return -EFAULT; + } + + /* Send boot data first if required */ + if (ir->need_boot == 1) { + ret = send_boot_data(ir); + if (ret == 0) + ir->need_boot = 0; + } + + /* Send the code */ + if (ret == 0) { + ret = send_code(ir, (unsigned)command >> 16, + (unsigned)command & 0xFFFF); + if (ret == -EPROTO) { + mutex_unlock(&ir->ir_lock); + return ret; + } + } + + /* + * Hmm, a failure. If we've had a few then give up, otherwise + * try a reset + */ + if (ret != 0) { + /* Looks like the chip crashed, reset it */ + zilog_error("sending to the IR transmitter chip " + "failed, trying reset\n"); + + if (failures >= 3) { + zilog_error("unable to send to the IR chip " + "after 3 resets, giving up\n"); + mutex_unlock(&ir->ir_lock); + return ret; + } + set_current_state(TASK_UNINTERRUPTIBLE); + schedule_timeout((100 * HZ + 999) / 1000); + ir->need_boot = 1; + ++failures; + } else + i += sizeof(int); + } + + /* Release i2c bus */ + mutex_unlock(&ir->ir_lock); + + /* All looks good */ + return n; +} + +/* copied from lirc_dev */ +static unsigned int poll(struct file *filep, poll_table *wait) +{ + struct IR *ir = (struct IR *)filep->private_data; + unsigned int ret; + + dprintk("poll called\n"); + if (ir->c_rx.addr == 0) + return -ENODEV; + + mutex_lock(&ir->buf_lock); + + poll_wait(filep, &ir->buf.wait_poll, wait); + + dprintk("poll result = %s\n", + lirc_buffer_empty(&ir->buf) ? "0" : "POLLIN|POLLRDNORM"); + + ret = lirc_buffer_empty(&ir->buf) ? 0 : (POLLIN|POLLRDNORM); + + mutex_unlock(&ir->buf_lock); + return ret; +} + +static long ioctl(struct file *filep, unsigned int cmd, unsigned long arg) +{ + struct IR *ir = (struct IR *)filep->private_data; + int result; + unsigned long mode, features = 0; + + if (ir->c_rx.addr != 0) + features |= LIRC_CAN_REC_LIRCCODE; + if (ir->c_tx.addr != 0) + features |= LIRC_CAN_SEND_PULSE; + + switch (cmd) { + case LIRC_GET_LENGTH: + result = put_user((unsigned long)13, + (unsigned long *)arg); + break; + case LIRC_GET_FEATURES: + result = put_user(features, (unsigned long *) arg); + break; + case LIRC_GET_REC_MODE: + if (!(features&LIRC_CAN_REC_MASK)) + return -ENOSYS; + + result = put_user(LIRC_REC2MODE + (features&LIRC_CAN_REC_MASK), + (unsigned long *)arg); + break; + case LIRC_SET_REC_MODE: + if (!(features&LIRC_CAN_REC_MASK)) + return -ENOSYS; + + result = get_user(mode, (unsigned long *)arg); + if (!result && !(LIRC_MODE2REC(mode) & features)) + result = -EINVAL; + break; + case LIRC_GET_SEND_MODE: + if (!(features&LIRC_CAN_SEND_MASK)) + return -ENOSYS; + + result = put_user(LIRC_MODE_PULSE, (unsigned long *) arg); + break; + case LIRC_SET_SEND_MODE: + if (!(features&LIRC_CAN_SEND_MASK)) + return -ENOSYS; + + result = get_user(mode, (unsigned long *) arg); + if (!result && mode != LIRC_MODE_PULSE) + return -EINVAL; + break; + default: + return -EINVAL; + } + return result; +} + +/* + * Open the IR device. Get hold of our IR structure and + * stash it in private_data for the file + */ +static int open(struct inode *node, struct file *filep) +{ + struct IR *ir; + int ret; + + /* find our IR struct */ + unsigned minor = MINOR(node->i_rdev); + if (minor >= MAX_IRCTL_DEVICES) { + dprintk("minor %d: open result = -ENODEV\n", + minor); + return -ENODEV; + } + ir = ir_devices[minor]; + + /* increment in use count */ + mutex_lock(&ir->ir_lock); + ++ir->open; + ret = set_use_inc(ir); + if (ret != 0) { + --ir->open; + mutex_unlock(&ir->ir_lock); + return ret; + } + mutex_unlock(&ir->ir_lock); + + /* stash our IR struct */ + filep->private_data = ir; + + return 0; +} + +/* Close the IR device */ +static int close(struct inode *node, struct file *filep) +{ + /* find our IR struct */ + struct IR *ir = (struct IR *)filep->private_data; + if (ir == NULL) { + zilog_error("close: no private_data attached to the file!\n"); + return -ENODEV; + } + + /* decrement in use count */ + mutex_lock(&ir->ir_lock); + --ir->open; + set_use_dec(ir); + mutex_unlock(&ir->ir_lock); + + return 0; +} + +static struct lirc_driver lirc_template = { + .name = "lirc_zilog", + .set_use_inc = set_use_inc, + .set_use_dec = set_use_dec, + .owner = THIS_MODULE +}; + +static int ir_remove(struct i2c_client *client); +static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id); +static int ir_command(struct i2c_client *client, unsigned int cmd, void *arg); + +static const struct i2c_device_id ir_transceiver_id[] = { + /* Generic entry for any IR transceiver */ + { "ir_video", 0 }, + /* IR device specific entries should be added here */ + { "ir_tx_z8f0811_haup", 0 }, + { "ir_rx_z8f0811_haup", 0 }, + { } +}; + +static struct i2c_driver driver = { + .driver = { + .owner = THIS_MODULE, + .name = "Zilog/Hauppauge i2c IR", + }, + .probe = ir_probe, + .remove = ir_remove, + .command = ir_command, + .id_table = ir_transceiver_id, +}; + +static const struct file_operations lirc_fops = { + .owner = THIS_MODULE, + .llseek = lseek, + .read = read, + .write = write, + .poll = poll, + .unlocked_ioctl = ioctl, + .open = open, + .release = close +}; + +static int ir_remove(struct i2c_client *client) +{ + struct IR *ir = i2c_get_clientdata(client); + + mutex_lock(&ir->ir_lock); + + if (ir->have_rx || ir->have_tx) { + DECLARE_COMPLETION(tn); + DECLARE_COMPLETION(tn2); + + /* end up polling thread */ + if (ir->task && !IS_ERR(ir->task)) { + ir->t_notify = &tn; + ir->t_notify2 = &tn2; + ir->shutdown = 1; + wake_up_process(ir->task); + complete(&tn2); + wait_for_completion(&tn); + ir->t_notify = NULL; + ir->t_notify2 = NULL; + } + + } else { + mutex_unlock(&ir->ir_lock); + zilog_error("%s: detached from something we didn't " + "attach to\n", __func__); + return -ENODEV; + } + + /* unregister lirc driver */ + if (ir->l.minor >= 0 && ir->l.minor < MAX_IRCTL_DEVICES) { + lirc_unregister_driver(ir->l.minor); + ir_devices[ir->l.minor] = NULL; + } + + /* free memory */ + lirc_buffer_free(&ir->buf); + mutex_unlock(&ir->ir_lock); + kfree(ir); + + return 0; +} + +static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct IR *ir = NULL; + struct i2c_adapter *adap = client->adapter; + char buf; + int ret; + int have_rx = 0, have_tx = 0; + + dprintk("%s: adapter id=0x%x, client addr=0x%02x\n", + __func__, adap->id, client->addr); + + /* + * The external IR receiver is at i2c address 0x71. + * The IR transmitter is at 0x70. + */ + client->addr = 0x70; + + if (!disable_tx) { + if (i2c_master_recv(client, &buf, 1) == 1) + have_tx = 1; + dprintk("probe 0x70 @ %s: %s\n", + adap->name, have_tx ? "success" : "failed"); + } + + if (!disable_rx) { + client->addr = 0x71; + if (i2c_master_recv(client, &buf, 1) == 1) + have_rx = 1; + dprintk("probe 0x71 @ %s: %s\n", + adap->name, have_rx ? "success" : "failed"); + } + + if (!(have_rx || have_tx)) { + zilog_error("%s: no devices found\n", adap->name); + goto out_nodev; + } + + printk(KERN_INFO "lirc_zilog: chip found with %s\n", + have_rx && have_tx ? "RX and TX" : + have_rx ? "RX only" : "TX only"); + + ir = kzalloc(sizeof(struct IR), GFP_KERNEL); + + if (!ir) + goto out_nomem; + + ret = lirc_buffer_init(&ir->buf, 2, BUFLEN / 2); + if (ret) + goto out_nomem; + + mutex_init(&ir->ir_lock); + mutex_init(&ir->buf_lock); + ir->need_boot = 1; + + memcpy(&ir->l, &lirc_template, sizeof(struct lirc_driver)); + ir->l.minor = -1; + + /* I2C attach to device */ + i2c_set_clientdata(client, ir); + + /* initialise RX device */ + if (have_rx) { + DECLARE_COMPLETION(tn); + memcpy(&ir->c_rx, client, sizeof(struct i2c_client)); + + ir->c_rx.addr = 0x71; + strlcpy(ir->c_rx.name, ZILOG_HAUPPAUGE_IR_RX_NAME, + I2C_NAME_SIZE); + + /* try to fire up polling thread */ + ir->t_notify = &tn; + ir->task = kthread_run(lirc_thread, ir, "lirc_zilog"); + if (IS_ERR(ir->task)) { + ret = PTR_ERR(ir->task); + zilog_error("lirc_register_driver: cannot run " + "poll thread %d\n", ret); + goto err; + } + wait_for_completion(&tn); + ir->t_notify = NULL; + ir->have_rx = 1; + } + + /* initialise TX device */ + if (have_tx) { + memcpy(&ir->c_tx, client, sizeof(struct i2c_client)); + ir->c_tx.addr = 0x70; + strlcpy(ir->c_tx.name, ZILOG_HAUPPAUGE_IR_TX_NAME, + I2C_NAME_SIZE); + ir->have_tx = 1; + } + + /* set lirc_dev stuff */ + ir->l.code_length = 13; + ir->l.rbuf = &ir->buf; + ir->l.fops = &lirc_fops; + ir->l.data = ir; + ir->l.minor = minor; + ir->l.dev = &adap->dev; + ir->l.sample_rate = 0; + + /* register with lirc */ + ir->l.minor = lirc_register_driver(&ir->l); + if (ir->l.minor < 0 || ir->l.minor >= MAX_IRCTL_DEVICES) { + zilog_error("ir_attach: \"minor\" must be between 0 and %d " + "(%d)!\n", MAX_IRCTL_DEVICES-1, ir->l.minor); + ret = -EBADRQC; + goto err; + } + + /* store this for getting back in open() later on */ + ir_devices[ir->l.minor] = ir; + + /* + * if we have the tx device, load the 'firmware'. We do this + * after registering with lirc as otherwise hotplug seems to take + * 10s to create the lirc device. + */ + if (have_tx) { + /* Special TX init */ + ret = tx_init(ir); + if (ret != 0) + goto err; + } + + return 0; + +err: + /* undo everything, hopefully... */ + if (ir->c_rx.addr) + ir_remove(&ir->c_rx); + if (ir->c_tx.addr) + ir_remove(&ir->c_tx); + return ret; + +out_nodev: + zilog_error("no device found\n"); + return -ENODEV; + +out_nomem: + zilog_error("memory allocation failure\n"); + kfree(ir); + return -ENOMEM; +} + +static int ir_command(struct i2c_client *client, unsigned int cmd, void *arg) +{ + /* nothing */ + return 0; +} + +static int __init zilog_init(void) +{ + int ret; + + zilog_notify("Zilog/Hauppauge IR driver initializing\n"); + + mutex_init(&tx_data_lock); + + request_module("firmware_class"); + + ret = i2c_add_driver(&driver); + if (ret) + zilog_error("initialization failed\n"); + else + zilog_notify("initialization complete\n"); + + return ret; +} + +static void __exit zilog_exit(void) +{ + i2c_del_driver(&driver); + /* if loaded */ + fw_unload(); + zilog_notify("Zilog/Hauppauge IR driver unloaded\n"); +} + +module_init(zilog_init); +module_exit(zilog_exit); + +MODULE_DESCRIPTION("Zilog/Hauppauge infrared transmitter driver (i2c stack)"); +MODULE_AUTHOR("Gerd Knorr, Michal Kochanowicz, Christoph Bartelmus, " + "Ulrich Mueller, Stefan Jahn, Jerome Brock, Mark Weaver"); +MODULE_LICENSE("GPL"); +/* for compat with old name, which isn't all that accurate anymore */ +MODULE_ALIAS("lirc_pvr150"); + +module_param(minor, int, 0444); +MODULE_PARM_DESC(minor, "Preferred minor device number"); + +module_param(debug, bool, 0644); +MODULE_PARM_DESC(debug, "Enable debugging messages"); + +module_param(disable_rx, bool, 0644); +MODULE_PARM_DESC(disable_rx, "Disable the IR receiver device"); + +module_param(disable_tx, bool, 0644); +MODULE_PARM_DESC(disable_tx, "Disable the IR transmitter device"); --- linux-2.6.35.orig/drivers/staging/lirc/TODO +++ linux-2.6.35/drivers/staging/lirc/TODO @@ -0,0 +1,8 @@ +- All drivers should either be ported to ir-core, or dropped entirely + (see drivers/media/IR/mceusb.c vs. lirc_mceusb.c in lirc cvs for an + example of a previously completed port). + +Please send patches to: +Jarod Wilson +Greg Kroah-Hartman + --- linux-2.6.35.orig/drivers/staging/lirc/lirc_it87.c +++ linux-2.6.35/drivers/staging/lirc/lirc_it87.c @@ -0,0 +1,1022 @@ +/* + * LIRC driver for ITE IT8712/IT8705 CIR port + * + * Copyright (C) 2001 Hans-Gunter Lutke Uphues + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * ITE IT8705 and IT8712(not tested) and IT8720 CIR-port support for lirc based + * via cut and paste from lirc_sir.c (C) 2000 Milan Pikula + * + * Attention: Sendmode only tested with debugging logs + * + * 2001/02/27 Christoph Bartelmus : + * reimplemented read function + * 2005/06/05 Andrew Calkin implemented support for Asus Digimatrix, + * based on work of the following member of the Outertrack Digimatrix + * Forum: Art103 + * 2009/12/24 James Edwards implemeted support + * for ITE8704/ITE8718, on my machine, the DSDT reports 8704, but the + * chip identifies as 18. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include "lirc_it87.h" + +#ifdef LIRC_IT87_DIGIMATRIX +static int digimatrix = 1; +static int it87_freq = 36; /* kHz */ +static int irq = 9; +#else +static int digimatrix; +static int it87_freq = 38; /* kHz */ +static int irq = IT87_CIR_DEFAULT_IRQ; +#endif + +static unsigned long it87_bits_in_byte_out; +static unsigned long it87_send_counter; +static unsigned char it87_RXEN_mask = IT87_CIR_RCR_RXEN; + +#define RBUF_LEN 1024 + +#define LIRC_DRIVER_NAME "lirc_it87" + +/* timeout for sequences in jiffies (=5/100s) */ +/* must be longer than TIME_CONST */ +#define IT87_TIMEOUT (HZ*5/100) + +/* module parameters */ +static int debug; +#define dprintk(fmt, args...) \ + do { \ + if (debug) \ + printk(KERN_DEBUG LIRC_DRIVER_NAME ": " \ + fmt, ## args); \ + } while (0) + +static int io = IT87_CIR_DEFAULT_IOBASE; +/* receiver demodulator default: off */ +static int it87_enable_demodulator; + +static int timer_enabled; +static DEFINE_SPINLOCK(timer_lock); +static struct timer_list timerlist; +/* time of last signal change detected */ +static struct timeval last_tv = {0, 0}; +/* time of last UART data ready interrupt */ +static struct timeval last_intr_tv = {0, 0}; +static int last_value; + +static DECLARE_WAIT_QUEUE_HEAD(lirc_read_queue); + +static DEFINE_SPINLOCK(hardware_lock); +static DEFINE_SPINLOCK(dev_lock); +static bool device_open; + +static int rx_buf[RBUF_LEN]; +unsigned int rx_tail, rx_head; + +static struct pnp_driver it87_pnp_driver; + +/* SECTION: Prototypes */ + +/* Communication with user-space */ +static int lirc_open(struct inode *inode, struct file *file); +static int lirc_close(struct inode *inode, struct file *file); +static unsigned int lirc_poll(struct file *file, poll_table *wait); +static ssize_t lirc_read(struct file *file, char *buf, + size_t count, loff_t *ppos); +static ssize_t lirc_write(struct file *file, const char *buf, + size_t n, loff_t *pos); +static long lirc_ioctl(struct file *filep, unsigned int cmd, unsigned long arg); +static void add_read_queue(int flag, unsigned long val); +static int init_chrdev(void); +static void drop_chrdev(void); +/* Hardware */ +static irqreturn_t it87_interrupt(int irq, void *dev_id); +static void send_space(unsigned long len); +static void send_pulse(unsigned long len); +static void init_send(void); +static void terminate_send(unsigned long len); +static int init_hardware(void); +static void drop_hardware(void); +/* Initialisation */ +static int init_port(void); +static void drop_port(void); + + +/* SECTION: Communication with user-space */ + +static int lirc_open(struct inode *inode, struct file *file) +{ + spin_lock(&dev_lock); + if (device_open) { + spin_unlock(&dev_lock); + return -EBUSY; + } + device_open = true; + spin_unlock(&dev_lock); + return 0; +} + + +static int lirc_close(struct inode *inode, struct file *file) +{ + spin_lock(&dev_lock); + device_open = false; + spin_unlock(&dev_lock); + return 0; +} + + +static unsigned int lirc_poll(struct file *file, poll_table *wait) +{ + poll_wait(file, &lirc_read_queue, wait); + if (rx_head != rx_tail) + return POLLIN | POLLRDNORM; + return 0; +} + + +static ssize_t lirc_read(struct file *file, char *buf, + size_t count, loff_t *ppos) +{ + int n = 0; + int retval = 0; + + while (n < count) { + if (file->f_flags & O_NONBLOCK && rx_head == rx_tail) { + retval = -EAGAIN; + break; + } + retval = wait_event_interruptible(lirc_read_queue, + rx_head != rx_tail); + if (retval) + break; + + if (copy_to_user((void *) buf + n, (void *) (rx_buf + rx_head), + sizeof(int))) { + retval = -EFAULT; + break; + } + rx_head = (rx_head + 1) & (RBUF_LEN - 1); + n += sizeof(int); + } + if (n) + return n; + return retval; +} + + +static ssize_t lirc_write(struct file *file, const char *buf, + size_t n, loff_t *pos) +{ + int i = 0; + int *tx_buf; + + if (n % sizeof(int)) + return -EINVAL; + tx_buf = memdup_user(buf, n); + if (IS_ERR(tx_buf)) + return PTR_ERR(tx_buf); + n /= sizeof(int); + init_send(); + while (1) { + if (i >= n) + break; + if (tx_buf[i]) + send_pulse(tx_buf[i]); + i++; + if (i >= n) + break; + if (tx_buf[i]) + send_space(tx_buf[i]); + i++; + } + terminate_send(tx_buf[i - 1]); + return n; +} + + +static long lirc_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) +{ + int retval = 0; + unsigned long value = 0; + unsigned int ivalue; + unsigned long hw_flags; + + if (cmd == LIRC_GET_FEATURES) + value = LIRC_CAN_SEND_PULSE | + LIRC_CAN_SET_SEND_CARRIER | + LIRC_CAN_REC_MODE2; + else if (cmd == LIRC_GET_SEND_MODE) + value = LIRC_MODE_PULSE; + else if (cmd == LIRC_GET_REC_MODE) + value = LIRC_MODE_MODE2; + + switch (cmd) { + case LIRC_GET_FEATURES: + case LIRC_GET_SEND_MODE: + case LIRC_GET_REC_MODE: + retval = put_user(value, (unsigned long *) arg); + break; + + case LIRC_SET_SEND_MODE: + case LIRC_SET_REC_MODE: + retval = get_user(value, (unsigned long *) arg); + break; + + case LIRC_SET_SEND_CARRIER: + retval = get_user(ivalue, (unsigned int *) arg); + if (retval) + return retval; + ivalue /= 1000; + if (ivalue > IT87_CIR_FREQ_MAX || + ivalue < IT87_CIR_FREQ_MIN) + return -EINVAL; + + it87_freq = ivalue; + + spin_lock_irqsave(&hardware_lock, hw_flags); + outb(((inb(io + IT87_CIR_TCR2) & IT87_CIR_TCR2_TXMPW) | + (it87_freq - IT87_CIR_FREQ_MIN) << 3), + io + IT87_CIR_TCR2); + spin_unlock_irqrestore(&hardware_lock, hw_flags); + dprintk("demodulation frequency: %d kHz\n", it87_freq); + + break; + + default: + retval = -EINVAL; + } + + if (retval) + return retval; + + if (cmd == LIRC_SET_REC_MODE) { + if (value != LIRC_MODE_MODE2) + retval = -ENOSYS; + } else if (cmd == LIRC_SET_SEND_MODE) { + if (value != LIRC_MODE_PULSE) + retval = -ENOSYS; + } + return retval; +} + +static void add_read_queue(int flag, unsigned long val) +{ + unsigned int new_rx_tail; + int newval; + + dprintk("add flag %d with val %lu\n", flag, val); + + newval = val & PULSE_MASK; + + /* + * statistically, pulses are ~TIME_CONST/2 too long. we could + * maybe make this more exact, but this is good enough + */ + if (flag) { + /* pulse */ + if (newval > TIME_CONST / 2) + newval -= TIME_CONST / 2; + else /* should not ever happen */ + newval = 1; + newval |= PULSE_BIT; + } else + newval += TIME_CONST / 2; + new_rx_tail = (rx_tail + 1) & (RBUF_LEN - 1); + if (new_rx_tail == rx_head) { + dprintk("Buffer overrun.\n"); + return; + } + rx_buf[rx_tail] = newval; + rx_tail = new_rx_tail; + wake_up_interruptible(&lirc_read_queue); +} + + +static const struct file_operations lirc_fops = { + .owner = THIS_MODULE, + .read = lirc_read, + .write = lirc_write, + .poll = lirc_poll, + .unlocked_ioctl = lirc_ioctl, + .open = lirc_open, + .release = lirc_close, +}; + +static int set_use_inc(void *data) +{ + return 0; +} + +static void set_use_dec(void *data) +{ +} + +static struct lirc_driver driver = { + .name = LIRC_DRIVER_NAME, + .minor = -1, + .code_length = 1, + .sample_rate = 0, + .data = NULL, + .add_to_buf = NULL, + .set_use_inc = set_use_inc, + .set_use_dec = set_use_dec, + .fops = &lirc_fops, + .dev = NULL, + .owner = THIS_MODULE, +}; + + +static int init_chrdev(void) +{ + driver.minor = lirc_register_driver(&driver); + + if (driver.minor < 0) { + printk(KERN_ERR LIRC_DRIVER_NAME ": init_chrdev() failed.\n"); + return -EIO; + } + return 0; +} + + +static void drop_chrdev(void) +{ + lirc_unregister_driver(driver.minor); +} + + +/* SECTION: Hardware */ +static long delta(struct timeval *tv1, struct timeval *tv2) +{ + unsigned long deltv; + + deltv = tv2->tv_sec - tv1->tv_sec; + if (deltv > 15) + deltv = 0xFFFFFF; + else + deltv = deltv*1000000 + tv2->tv_usec - tv1->tv_usec; + return deltv; +} + +static void it87_timeout(unsigned long data) +{ + unsigned long flags; + + /* avoid interference with interrupt */ + spin_lock_irqsave(&timer_lock, flags); + + if (digimatrix) { + /* We have timed out. Disable the RX mechanism. */ + + outb((inb(io + IT87_CIR_RCR) & ~IT87_CIR_RCR_RXEN) | + IT87_CIR_RCR_RXACT, io + IT87_CIR_RCR); + if (it87_RXEN_mask) + outb(inb(io + IT87_CIR_RCR) | IT87_CIR_RCR_RXEN, + io + IT87_CIR_RCR); + dprintk(" TIMEOUT\n"); + timer_enabled = 0; + + /* fifo clear */ + outb(inb(io + IT87_CIR_TCR1) | IT87_CIR_TCR1_FIFOCLR, + io+IT87_CIR_TCR1); + + } else { + /* + * if last received signal was a pulse, but receiving stopped + * within the 9 bit frame, we need to finish this pulse and + * simulate a signal change to from pulse to space. Otherwise + * upper layers will receive two sequences next time. + */ + + if (last_value) { + unsigned long pulse_end; + + /* determine 'virtual' pulse end: */ + pulse_end = delta(&last_tv, &last_intr_tv); + dprintk("timeout add %d for %lu usec\n", + last_value, pulse_end); + add_read_queue(last_value, pulse_end); + last_value = 0; + last_tv = last_intr_tv; + } + } + spin_unlock_irqrestore(&timer_lock, flags); +} + +static irqreturn_t it87_interrupt(int irq, void *dev_id) +{ + unsigned char data; + struct timeval curr_tv; + static unsigned long deltv; + unsigned long deltintrtv; + unsigned long flags, hw_flags; + int iir, lsr; + int fifo = 0; + static char lastbit; + char bit; + + /* Bit duration in microseconds */ + const unsigned long bit_duration = 1000000ul / + (115200 / IT87_CIR_BAUDRATE_DIVISOR); + + + iir = inb(io + IT87_CIR_IIR); + + switch (iir & IT87_CIR_IIR_IID) { + case 0x4: + case 0x6: + lsr = inb(io + IT87_CIR_RSR) & (IT87_CIR_RSR_RXFTO | + IT87_CIR_RSR_RXFBC); + fifo = lsr & IT87_CIR_RSR_RXFBC; + dprintk("iir: 0x%x fifo: 0x%x\n", iir, lsr); + + /* avoid interference with timer */ + spin_lock_irqsave(&timer_lock, flags); + spin_lock_irqsave(&hardware_lock, hw_flags); + if (digimatrix) { + static unsigned long acc_pulse; + static unsigned long acc_space; + + do { + data = inb(io + IT87_CIR_DR); + data = ~data; + fifo--; + if (data != 0x00) { + if (timer_enabled) + del_timer(&timerlist); + /* + * start timer for end of + * sequence detection + */ + timerlist.expires = jiffies + + IT87_TIMEOUT; + add_timer(&timerlist); + timer_enabled = 1; + } + /* Loop through */ + for (bit = 0; bit < 8; ++bit) { + if ((data >> bit) & 1) { + ++acc_pulse; + if (lastbit == 0) { + add_read_queue(0, + acc_space * + bit_duration); + acc_space = 0; + } + } else { + ++acc_space; + if (lastbit == 1) { + add_read_queue(1, + acc_pulse * + bit_duration); + acc_pulse = 0; + } + } + lastbit = (data >> bit) & 1; + } + + } while (fifo != 0); + } else { /* Normal Operation */ + do { + del_timer(&timerlist); + data = inb(io + IT87_CIR_DR); + + dprintk("data=%02x\n", data); + do_gettimeofday(&curr_tv); + deltv = delta(&last_tv, &curr_tv); + deltintrtv = delta(&last_intr_tv, &curr_tv); + + dprintk("t %lu , d %d\n", + deltintrtv, (int)data); + + /* + * if nothing came in last 2 cycles, + * it was gap + */ + if (deltintrtv > TIME_CONST * 2) { + if (last_value) { + dprintk("GAP\n"); + + /* simulate signal change */ + add_read_queue(last_value, + deltv - + deltintrtv); + last_value = 0; + last_tv.tv_sec = + last_intr_tv.tv_sec; + last_tv.tv_usec = + last_intr_tv.tv_usec; + deltv = deltintrtv; + } + } + data = 1; + if (data ^ last_value) { + /* + * deltintrtv > 2*TIME_CONST, + * remember ? the other case is + * timeout + */ + add_read_queue(last_value, + deltv-TIME_CONST); + last_value = data; + last_tv = curr_tv; + if (last_tv.tv_usec >= TIME_CONST) + last_tv.tv_usec -= TIME_CONST; + else { + last_tv.tv_sec--; + last_tv.tv_usec += 1000000 - + TIME_CONST; + } + } + last_intr_tv = curr_tv; + if (data) { + /* + * start timer for end of + * sequence detection + */ + timerlist.expires = + jiffies + IT87_TIMEOUT; + add_timer(&timerlist); + } + outb((inb(io + IT87_CIR_RCR) & + ~IT87_CIR_RCR_RXEN) | + IT87_CIR_RCR_RXACT, + io + IT87_CIR_RCR); + if (it87_RXEN_mask) + outb(inb(io + IT87_CIR_RCR) | + IT87_CIR_RCR_RXEN, + io + IT87_CIR_RCR); + fifo--; + } while (fifo != 0); + } + spin_unlock_irqrestore(&hardware_lock, hw_flags); + spin_unlock_irqrestore(&timer_lock, flags); + + return IRQ_RETVAL(IRQ_HANDLED); + + default: + /* not our irq */ + dprintk("unknown IRQ (shouldn't happen) !!\n"); + return IRQ_RETVAL(IRQ_NONE); + } +} + + +static void send_it87(unsigned long len, unsigned long stime, + unsigned char send_byte, unsigned int count_bits) +{ + long count = len / stime; + long time_left = 0; + static unsigned char byte_out; + unsigned long hw_flags; + + dprintk("%s: len=%ld, sb=%d\n", __func__, len, send_byte); + + time_left = (long)len - (long)count * (long)stime; + count += ((2 * time_left) / stime); + while (count) { + long i = 0; + for (i = 0; i < count_bits; i++) { + byte_out = (byte_out << 1) | (send_byte & 1); + it87_bits_in_byte_out++; + } + if (it87_bits_in_byte_out == 8) { + dprintk("out=0x%x, tsr_txfbc: 0x%x\n", + byte_out, + inb(io + IT87_CIR_TSR) & + IT87_CIR_TSR_TXFBC); + + while ((inb(io + IT87_CIR_TSR) & + IT87_CIR_TSR_TXFBC) >= IT87_CIR_FIFO_SIZE) + ; + + spin_lock_irqsave(&hardware_lock, hw_flags); + outb(byte_out, io + IT87_CIR_DR); + spin_unlock_irqrestore(&hardware_lock, hw_flags); + + it87_bits_in_byte_out = 0; + it87_send_counter++; + byte_out = 0; + } + count--; + } +} + + +/*TODO: maybe exchange space and pulse because it8705 only modulates 0-bits */ + +static void send_space(unsigned long len) +{ + send_it87(len, TIME_CONST, IT87_CIR_SPACE, IT87_CIR_BAUDRATE_DIVISOR); +} + +static void send_pulse(unsigned long len) +{ + send_it87(len, TIME_CONST, IT87_CIR_PULSE, IT87_CIR_BAUDRATE_DIVISOR); +} + + +static void init_send() +{ + unsigned long flags; + + spin_lock_irqsave(&hardware_lock, flags); + /* RXEN=0: receiver disable */ + it87_RXEN_mask = 0; + outb(inb(io + IT87_CIR_RCR) & ~IT87_CIR_RCR_RXEN, + io + IT87_CIR_RCR); + spin_unlock_irqrestore(&hardware_lock, flags); + it87_bits_in_byte_out = 0; + it87_send_counter = 0; +} + + +static void terminate_send(unsigned long len) +{ + unsigned long flags; + unsigned long last = 0; + + last = it87_send_counter; + /* make sure all necessary data has been sent */ + while (last == it87_send_counter) + send_space(len); + /* wait until all data sent */ + while ((inb(io + IT87_CIR_TSR) & IT87_CIR_TSR_TXFBC) != 0) + ; + /* then re-enable receiver */ + spin_lock_irqsave(&hardware_lock, flags); + it87_RXEN_mask = IT87_CIR_RCR_RXEN; + outb(inb(io + IT87_CIR_RCR) | IT87_CIR_RCR_RXEN, + io + IT87_CIR_RCR); + spin_unlock_irqrestore(&hardware_lock, flags); +} + + +static int init_hardware(void) +{ + unsigned long flags; + unsigned char it87_rcr = 0; + + spin_lock_irqsave(&hardware_lock, flags); + /* init cir-port */ + /* enable r/w-access to Baudrate-Register */ + outb(IT87_CIR_IER_BR, io + IT87_CIR_IER); + outb(IT87_CIR_BAUDRATE_DIVISOR % 0x100, io+IT87_CIR_BDLR); + outb(IT87_CIR_BAUDRATE_DIVISOR / 0x100, io+IT87_CIR_BDHR); + /* Baudrate Register off, define IRQs: Input only */ + if (digimatrix) { + outb(IT87_CIR_IER_IEC | IT87_CIR_IER_RFOIE, io + IT87_CIR_IER); + /* RX: HCFS=0, RXDCR = 001b (33,75..38,25 kHz), RXEN=1 */ + } else { + outb(IT87_CIR_IER_IEC | IT87_CIR_IER_RDAIE, io + IT87_CIR_IER); + /* RX: HCFS=0, RXDCR = 001b (35,6..40,3 kHz), RXEN=1 */ + } + it87_rcr = (IT87_CIR_RCR_RXEN & it87_RXEN_mask) | 0x1; + if (it87_enable_demodulator) + it87_rcr |= IT87_CIR_RCR_RXEND; + outb(it87_rcr, io + IT87_CIR_RCR); + if (digimatrix) { + /* Set FIFO depth to 1 byte, and disable TX */ + outb(inb(io + IT87_CIR_TCR1) | 0x00, + io + IT87_CIR_TCR1); + + /* + * TX: it87_freq (36kHz), 'reserved' sensitivity + * setting (0x00) + */ + outb(((it87_freq - IT87_CIR_FREQ_MIN) << 3) | 0x00, + io + IT87_CIR_TCR2); + } else { + /* TX: 38kHz, 13,3us (pulse-width) */ + outb(((it87_freq - IT87_CIR_FREQ_MIN) << 3) | 0x06, + io + IT87_CIR_TCR2); + } + spin_unlock_irqrestore(&hardware_lock, flags); + return 0; +} + + +static void drop_hardware(void) +{ + unsigned long flags; + + spin_lock_irqsave(&hardware_lock, flags); + disable_irq(irq); + /* receiver disable */ + it87_RXEN_mask = 0; + outb(0x1, io + IT87_CIR_RCR); + /* turn off irqs */ + outb(0, io + IT87_CIR_IER); + /* fifo clear */ + outb(IT87_CIR_TCR1_FIFOCLR, io+IT87_CIR_TCR1); + /* reset */ + outb(IT87_CIR_IER_RESET, io+IT87_CIR_IER); + enable_irq(irq); + spin_unlock_irqrestore(&hardware_lock, flags); +} + + +static unsigned char it87_read(unsigned char port) +{ + outb(port, IT87_ADRPORT); + return inb(IT87_DATAPORT); +} + + +static void it87_write(unsigned char port, unsigned char data) +{ + outb(port, IT87_ADRPORT); + outb(data, IT87_DATAPORT); +} + + +/* SECTION: Initialisation */ + +static int init_port(void) +{ + unsigned long hw_flags; + int retval = 0; + + unsigned char init_bytes[4] = IT87_INIT; + unsigned char it87_chipid = 0; + unsigned char ldn = 0; + unsigned int it87_io = 0; + unsigned int it87_irq = 0; + + /* Enter MB PnP Mode */ + outb(init_bytes[0], IT87_ADRPORT); + outb(init_bytes[1], IT87_ADRPORT); + outb(init_bytes[2], IT87_ADRPORT); + outb(init_bytes[3], IT87_ADRPORT); + + /* 8712 or 8705 ? */ + it87_chipid = it87_read(IT87_CHIP_ID1); + if (it87_chipid != 0x87) { + retval = -ENXIO; + return retval; + } + it87_chipid = it87_read(IT87_CHIP_ID2); + if ((it87_chipid != 0x05) && + (it87_chipid != 0x12) && + (it87_chipid != 0x18) && + (it87_chipid != 0x20)) { + printk(KERN_INFO LIRC_DRIVER_NAME + ": no IT8704/05/12/18/20 found (claimed IT87%02x), " + "exiting..\n", it87_chipid); + retval = -ENXIO; + return retval; + } + printk(KERN_INFO LIRC_DRIVER_NAME + ": found IT87%02x.\n", + it87_chipid); + + /* get I/O-Port and IRQ */ + if (it87_chipid == 0x12 || it87_chipid == 0x18) + ldn = IT8712_CIR_LDN; + else + ldn = IT8705_CIR_LDN; + it87_write(IT87_LDN, ldn); + + it87_io = it87_read(IT87_CIR_BASE_MSB) * 256 + + it87_read(IT87_CIR_BASE_LSB); + if (it87_io == 0) { + if (io == 0) + io = IT87_CIR_DEFAULT_IOBASE; + printk(KERN_INFO LIRC_DRIVER_NAME + ": set default io 0x%x\n", + io); + it87_write(IT87_CIR_BASE_MSB, io / 0x100); + it87_write(IT87_CIR_BASE_LSB, io % 0x100); + } else + io = it87_io; + + it87_irq = it87_read(IT87_CIR_IRQ); + if (digimatrix || it87_irq == 0) { + if (irq == 0) + irq = IT87_CIR_DEFAULT_IRQ; + printk(KERN_INFO LIRC_DRIVER_NAME + ": set default irq 0x%x\n", + irq); + it87_write(IT87_CIR_IRQ, irq); + } else + irq = it87_irq; + + spin_lock_irqsave(&hardware_lock, hw_flags); + /* reset */ + outb(IT87_CIR_IER_RESET, io+IT87_CIR_IER); + /* fifo clear */ + outb(IT87_CIR_TCR1_FIFOCLR | + /* IT87_CIR_TCR1_ILE | */ + IT87_CIR_TCR1_TXRLE | + IT87_CIR_TCR1_TXENDF, io+IT87_CIR_TCR1); + spin_unlock_irqrestore(&hardware_lock, hw_flags); + + /* get I/O port access and IRQ line */ + if (request_region(io, 8, LIRC_DRIVER_NAME) == NULL) { + printk(KERN_ERR LIRC_DRIVER_NAME + ": i/o port 0x%.4x already in use.\n", io); + /* Leaving MB PnP Mode */ + it87_write(IT87_CFGCTRL, 0x2); + return -EBUSY; + } + + /* activate CIR-Device */ + it87_write(IT87_CIR_ACT, 0x1); + + /* Leaving MB PnP Mode */ + it87_write(IT87_CFGCTRL, 0x2); + + retval = request_irq(irq, it87_interrupt, 0 /*IRQF_DISABLED*/, + LIRC_DRIVER_NAME, NULL); + if (retval < 0) { + printk(KERN_ERR LIRC_DRIVER_NAME + ": IRQ %d already in use.\n", + irq); + release_region(io, 8); + return retval; + } + + printk(KERN_INFO LIRC_DRIVER_NAME + ": I/O port 0x%.4x, IRQ %d.\n", io, irq); + + init_timer(&timerlist); + timerlist.function = it87_timeout; + timerlist.data = 0xabadcafe; + + return 0; +} + + +static void drop_port(void) +{ +#if 0 + unsigned char init_bytes[4] = IT87_INIT; + + /* Enter MB PnP Mode */ + outb(init_bytes[0], IT87_ADRPORT); + outb(init_bytes[1], IT87_ADRPORT); + outb(init_bytes[2], IT87_ADRPORT); + outb(init_bytes[3], IT87_ADRPORT); + + /* deactivate CIR-Device */ + it87_write(IT87_CIR_ACT, 0x0); + + /* Leaving MB PnP Mode */ + it87_write(IT87_CFGCTRL, 0x2); +#endif + + del_timer_sync(&timerlist); + free_irq(irq, NULL); + release_region(io, 8); +} + + +static int init_lirc_it87(void) +{ + int retval; + + init_waitqueue_head(&lirc_read_queue); + retval = init_port(); + if (retval < 0) + return retval; + init_hardware(); + printk(KERN_INFO LIRC_DRIVER_NAME ": Installed.\n"); + return 0; +} + +static int it87_probe(struct pnp_dev *pnp_dev, + const struct pnp_device_id *dev_id) +{ + int retval; + + driver.dev = &pnp_dev->dev; + + retval = init_chrdev(); + if (retval < 0) + return retval; + + retval = init_lirc_it87(); + if (retval) + goto init_lirc_it87_failed; + + return 0; + +init_lirc_it87_failed: + drop_chrdev(); + + return retval; +} + +static int __init lirc_it87_init(void) +{ + return pnp_register_driver(&it87_pnp_driver); +} + + +static void __exit lirc_it87_exit(void) +{ + drop_hardware(); + drop_chrdev(); + drop_port(); + pnp_unregister_driver(&it87_pnp_driver); + printk(KERN_INFO LIRC_DRIVER_NAME ": Uninstalled.\n"); +} + +/* SECTION: PNP for ITE8704/18 */ + +static const struct pnp_device_id pnp_dev_table[] = { + {"ITE8704", 0}, + {} +}; + +MODULE_DEVICE_TABLE(pnp, pnp_dev_table); + +static struct pnp_driver it87_pnp_driver = { + .name = LIRC_DRIVER_NAME, + .id_table = pnp_dev_table, + .probe = it87_probe, +}; + +module_init(lirc_it87_init); +module_exit(lirc_it87_exit); + +MODULE_DESCRIPTION("LIRC driver for ITE IT8704/05/12/18/20 CIR port"); +MODULE_AUTHOR("Hans-Gunter Lutke Uphues"); +MODULE_LICENSE("GPL"); + +module_param(io, int, S_IRUGO); +MODULE_PARM_DESC(io, "I/O base address (default: 0x310)"); + +module_param(irq, int, S_IRUGO); +#ifdef LIRC_IT87_DIGIMATRIX +MODULE_PARM_DESC(irq, "Interrupt (1,3-12) (default: 9)"); +#else +MODULE_PARM_DESC(irq, "Interrupt (1,3-12) (default: 7)"); +#endif + +module_param(it87_enable_demodulator, bool, S_IRUGO); +MODULE_PARM_DESC(it87_enable_demodulator, + "Receiver demodulator enable/disable (1/0), default: 0"); + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); + +module_param(digimatrix, bool, S_IRUGO | S_IWUSR); +#ifdef LIRC_IT87_DIGIMATRIX +MODULE_PARM_DESC(digimatrix, + "Asus Digimatrix it87 compat. enable/disable (1/0), default: 1"); +#else +MODULE_PARM_DESC(digimatrix, + "Asus Digimatrix it87 compat. enable/disable (1/0), default: 0"); +#endif + + +module_param(it87_freq, int, S_IRUGO); +#ifdef LIRC_IT87_DIGIMATRIX +MODULE_PARM_DESC(it87_freq, + "Carrier demodulator frequency (kHz), (default: 36)"); +#else +MODULE_PARM_DESC(it87_freq, + "Carrier demodulator frequency (kHz), (default: 38)"); +#endif --- linux-2.6.35.orig/drivers/staging/lirc/lirc_ene0100.c +++ linux-2.6.35/drivers/staging/lirc/lirc_ene0100.c @@ -0,0 +1,646 @@ +/* + * driver for ENE KB3926 B/C/D CIR (also known as ENE0100) + * + * Copyright (C) 2009 Maxim Levitsky + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You 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 +#include +#include +#include +#include +#include +#include "lirc_ene0100.h" + +static int sample_period = 75; +static int enable_idle = 1; +static int enable_learning; + +static void ene_set_idle(struct ene_device *dev, int idle); +static void ene_set_inputs(struct ene_device *dev, int enable); + +/* read a hardware register */ +static u8 ene_hw_read_reg(struct ene_device *dev, u16 reg) +{ + outb(reg >> 8, dev->hw_io + ENE_ADDR_HI); + outb(reg & 0xFF, dev->hw_io + ENE_ADDR_LO); + return inb(dev->hw_io + ENE_IO); +} + +/* write a hardware register */ +static void ene_hw_write_reg(struct ene_device *dev, u16 reg, u8 value) +{ + outb(reg >> 8, dev->hw_io + ENE_ADDR_HI); + outb(reg & 0xFF, dev->hw_io + ENE_ADDR_LO); + outb(value, dev->hw_io + ENE_IO); +} + +/* change specific bits in hardware register */ +static void ene_hw_write_reg_mask(struct ene_device *dev, + u16 reg, u8 value, u8 mask) +{ + u8 regvalue; + + outb(reg >> 8, dev->hw_io + ENE_ADDR_HI); + outb(reg & 0xFF, dev->hw_io + ENE_ADDR_LO); + + regvalue = inb(dev->hw_io + ENE_IO) & ~mask; + regvalue |= (value & mask); + outb(regvalue, dev->hw_io + ENE_IO); +} + +/* read irq status and ack it */ +static int ene_hw_irq_status(struct ene_device *dev, int *buffer_pointer) +{ + u8 irq_status; + u8 fw_flags1, fw_flags2; + + fw_flags2 = ene_hw_read_reg(dev, ENE_FW2); + + if (buffer_pointer) + *buffer_pointer = 4 * (fw_flags2 & ENE_FW2_BUF_HIGH); + + if (dev->hw_revision < ENE_HW_C) { + irq_status = ene_hw_read_reg(dev, ENEB_IRQ_STATUS); + + if (!(irq_status & ENEB_IRQ_STATUS_IR)) + return 0; + ene_hw_write_reg(dev, ENEB_IRQ_STATUS, + irq_status & ~ENEB_IRQ_STATUS_IR); + + /* rev B support only recieving */ + return ENE_IRQ_RX; + } + + irq_status = ene_hw_read_reg(dev, ENEC_IRQ); + + if (!(irq_status & ENEC_IRQ_STATUS)) + return 0; + + /* original driver does that twice - a workaround ? */ + ene_hw_write_reg(dev, ENEC_IRQ, irq_status & ~ENEC_IRQ_STATUS); + ene_hw_write_reg(dev, ENEC_IRQ, irq_status & ~ENEC_IRQ_STATUS); + + /* clear unknown flag in F8F9 */ + if (fw_flags2 & ENE_FW2_IRQ_CLR) + ene_hw_write_reg(dev, ENE_FW2, fw_flags2 & ~ENE_FW2_IRQ_CLR); + + /* check if this is a TX interrupt */ + fw_flags1 = ene_hw_read_reg(dev, ENE_FW1); + + if (fw_flags1 & ENE_FW1_TXIRQ) { + ene_hw_write_reg(dev, ENE_FW1, fw_flags1 & ~ENE_FW1_TXIRQ); + return ENE_IRQ_TX; + } else + return ENE_IRQ_RX; +} + +static int ene_hw_detect(struct ene_device *dev) +{ + u8 chip_major, chip_minor; + u8 hw_revision, old_ver; + u8 tmp; + u8 fw_capabilities; + + tmp = ene_hw_read_reg(dev, ENE_HW_UNK); + ene_hw_write_reg(dev, ENE_HW_UNK, tmp & ~ENE_HW_UNK_CLR); + + chip_major = ene_hw_read_reg(dev, ENE_HW_VER_MAJOR); + chip_minor = ene_hw_read_reg(dev, ENE_HW_VER_MINOR); + + ene_hw_write_reg(dev, ENE_HW_UNK, tmp); + hw_revision = ene_hw_read_reg(dev, ENE_HW_VERSION); + old_ver = ene_hw_read_reg(dev, ENE_HW_VER_OLD); + + if (hw_revision == 0xFF) { + + ene_printk(KERN_WARNING, "device seems to be disabled\n"); + ene_printk(KERN_WARNING, + "send a mail to lirc-list@lists.sourceforge.net\n"); + ene_printk(KERN_WARNING, "please attach output of acpidump\n"); + + return -ENODEV; + } + + if (chip_major == 0x33) { + ene_printk(KERN_WARNING, "chips 0x33xx aren't supported yet\n"); + return -ENODEV; + } + + if (chip_major == 0x39 && chip_minor == 0x26 && hw_revision == 0xC0) { + dev->hw_revision = ENE_HW_C; + ene_printk(KERN_WARNING, + "KB3926C detected, driver support is not complete!\n"); + + } else if (old_ver == 0x24 && hw_revision == 0xC0) { + dev->hw_revision = ENE_HW_B; + ene_printk(KERN_NOTICE, "KB3926B detected\n"); + } else { + dev->hw_revision = ENE_HW_D; + ene_printk(KERN_WARNING, + "unknown ENE chip detected, assuming KB3926D\n"); + ene_printk(KERN_WARNING, "driver support incomplete"); + + } + + ene_printk(KERN_DEBUG, "chip is 0x%02x%02x - 0x%02x, 0x%02x\n", + chip_major, chip_minor, old_ver, hw_revision); + + + /* detect features hardware supports */ + + if (dev->hw_revision < ENE_HW_C) + return 0; + + fw_capabilities = ene_hw_read_reg(dev, ENE_FW2); + + dev->hw_gpio40_learning = fw_capabilities & ENE_FW2_GP40_AS_LEARN; + dev->hw_learning_and_tx_capable = fw_capabilities & ENE_FW2_LEARNING; + + dev->hw_fan_as_normal_input = dev->hw_learning_and_tx_capable && + fw_capabilities & ENE_FW2_FAN_AS_NRML_IN; + + ene_printk(KERN_NOTICE, "hardware features:\n"); + ene_printk(KERN_NOTICE, + "learning and tx %s, gpio40_learn %s, fan_in %s\n", + dev->hw_learning_and_tx_capable ? "on" : "off", + dev->hw_gpio40_learning ? "on" : "off", + dev->hw_fan_as_normal_input ? "on" : "off"); + + if (!dev->hw_learning_and_tx_capable && enable_learning) + enable_learning = 0; + + if (dev->hw_learning_and_tx_capable) { + ene_printk(KERN_WARNING, + "Device supports transmitting, but the driver doesn't\n"); + ene_printk(KERN_WARNING, + "due to lack of hardware to test against.\n"); + ene_printk(KERN_WARNING, + "Send a mail to: lirc-list@lists.sourceforge.net\n"); + } + return 0; +} + +/* hardware initialization */ +static int ene_hw_init(void *data) +{ + u8 reg_value; + struct ene_device *dev = (struct ene_device *)data; + dev->in_use = 1; + + if (dev->hw_revision < ENE_HW_C) { + ene_hw_write_reg(dev, ENEB_IRQ, dev->irq << 1); + ene_hw_write_reg(dev, ENEB_IRQ_UNK1, 0x01); + } else { + reg_value = ene_hw_read_reg(dev, ENEC_IRQ) & 0xF0; + reg_value |= ENEC_IRQ_UNK_EN; + reg_value &= ~ENEC_IRQ_STATUS; + reg_value |= (dev->irq & ENEC_IRQ_MASK); + ene_hw_write_reg(dev, ENEC_IRQ, reg_value); + ene_hw_write_reg(dev, ENE_TX_UNK1, 0x63); + } + + ene_hw_write_reg(dev, ENE_CIR_CONF2, 0x00); + ene_set_inputs(dev, enable_learning); + + /* set sampling period */ + ene_hw_write_reg(dev, ENE_CIR_SAMPLE_PERIOD, sample_period); + + /* ack any pending irqs - just in case */ + ene_hw_irq_status(dev, NULL); + + /* enter idle mode */ + ene_set_idle(dev, 1); + + /* enable firmware bits */ + ene_hw_write_reg_mask(dev, ENE_FW1, + ENE_FW1_ENABLE | ENE_FW1_IRQ, + ENE_FW1_ENABLE | ENE_FW1_IRQ); + /* clear stats */ + dev->sample = 0; + return 0; +} + +/* this enables gpio40 signal, used if connected to wide band input*/ +static void ene_enable_gpio40(struct ene_device *dev, int enable) +{ + ene_hw_write_reg_mask(dev, ENE_CIR_CONF1, enable ? + 0 : ENE_CIR_CONF2_GPIO40DIS, + ENE_CIR_CONF2_GPIO40DIS); +} + +/* this enables the classic sampler */ +static void ene_enable_normal_recieve(struct ene_device *dev, int enable) +{ + ene_hw_write_reg(dev, ENE_CIR_CONF1, enable ? ENE_CIR_CONF1_ADC_ON : 0); +} + +/* this enables recieve via fan input */ +static void ene_enable_fan_recieve(struct ene_device *dev, int enable) +{ + if (!enable) + ene_hw_write_reg(dev, ENE_FAN_AS_IN1, 0); + else { + ene_hw_write_reg(dev, ENE_FAN_AS_IN1, ENE_FAN_AS_IN1_EN); + ene_hw_write_reg(dev, ENE_FAN_AS_IN2, ENE_FAN_AS_IN2_EN); + } + dev->fan_input_inuse = enable; +} + +/* determine which input to use*/ +static void ene_set_inputs(struct ene_device *dev, int learning_enable) +{ + ene_enable_normal_recieve(dev, 1); + + /* old hardware doesn't support learning mode for sure */ + if (dev->hw_revision <= ENE_HW_B) + return; + + /* reciever not learning capable, still set gpio40 correctly */ + if (!dev->hw_learning_and_tx_capable) { + ene_enable_gpio40(dev, !dev->hw_gpio40_learning); + return; + } + + /* enable learning mode */ + if (learning_enable) { + ene_enable_gpio40(dev, dev->hw_gpio40_learning); + + /* fan input is not used for learning */ + if (dev->hw_fan_as_normal_input) + ene_enable_fan_recieve(dev, 0); + + /* disable learning mode */ + } else { + if (dev->hw_fan_as_normal_input) { + ene_enable_fan_recieve(dev, 1); + ene_enable_normal_recieve(dev, 0); + } else + ene_enable_gpio40(dev, !dev->hw_gpio40_learning); + } + + /* set few additional settings for this mode */ + ene_hw_write_reg_mask(dev, ENE_CIR_CONF1, learning_enable ? + ENE_CIR_CONF1_LEARN1 : 0, ENE_CIR_CONF1_LEARN1); + + ene_hw_write_reg_mask(dev, ENE_CIR_CONF2, learning_enable ? + ENE_CIR_CONF2_LEARN2 : 0, ENE_CIR_CONF2_LEARN2); +} + +/* deinitialization */ +static void ene_hw_deinit(void *data) +{ + struct ene_device *dev = (struct ene_device *)data; + + /* disable samplers */ + ene_enable_normal_recieve(dev, 0); + + if (dev->hw_fan_as_normal_input) + ene_enable_fan_recieve(dev, 0); + + /* disable hardware IRQ and firmware flag */ + ene_hw_write_reg_mask(dev, ENE_FW1, 0, ENE_FW1_ENABLE | ENE_FW1_IRQ); + + ene_set_idle(dev, 1); + dev->in_use = 0; +} + +/* sends current sample to userspace */ +static void send_sample(struct ene_device *dev) +{ + int value = abs(dev->sample) & PULSE_MASK; + + if (dev->sample > 0) + value |= PULSE_BIT; + + if (!lirc_buffer_full(dev->lirc_driver->rbuf)) { + lirc_buffer_write(dev->lirc_driver->rbuf, (void *)&value); + wake_up(&dev->lirc_driver->rbuf->wait_poll); + } + dev->sample = 0; +} + +/* this updates current sample */ +static void update_sample(struct ene_device *dev, int sample) +{ + if (!dev->sample) + dev->sample = sample; + else if (same_sign(dev->sample, sample)) + dev->sample += sample; + else { + send_sample(dev); + dev->sample = sample; + } +} + +/* enable or disable idle mode */ +static void ene_set_idle(struct ene_device *dev, int idle) +{ + struct timeval now; + int disable = idle && enable_idle && (dev->hw_revision < ENE_HW_C); + + ene_hw_write_reg_mask(dev, ENE_CIR_SAMPLE_PERIOD, + disable ? 0 : ENE_CIR_SAMPLE_OVERFLOW, + ENE_CIR_SAMPLE_OVERFLOW); + dev->idle = idle; + + /* remember when we have entered the idle mode */ + if (idle) { + do_gettimeofday(&dev->gap_start); + return; + } + + /* send the gap between keypresses now */ + do_gettimeofday(&now); + + if (now.tv_sec - dev->gap_start.tv_sec > 16) + dev->sample = space(PULSE_MASK); + else + dev->sample = dev->sample + + space(1000000ull * (now.tv_sec - dev->gap_start.tv_sec)) + + space(now.tv_usec - dev->gap_start.tv_usec); + + if (abs(dev->sample) > PULSE_MASK) + dev->sample = space(PULSE_MASK); + send_sample(dev); +} + +/* interrupt handler */ +static irqreturn_t ene_hw_irq(int irq, void *data) +{ + u16 hw_value; + int i, hw_sample; + int space; + int buffer_pointer; + int irq_status; + + struct ene_device *dev = (struct ene_device *)data; + irq_status = ene_hw_irq_status(dev, &buffer_pointer); + + if (!irq_status) + return IRQ_NONE; + + /* TODO: only RX for now */ + if (irq_status == ENE_IRQ_TX) + return IRQ_HANDLED; + + for (i = 0; i < ENE_SAMPLES_SIZE; i++) { + + hw_value = ene_hw_read_reg(dev, + ENE_SAMPLE_BUFFER + buffer_pointer + i); + + if (dev->fan_input_inuse) { + /* read high part of the sample */ + hw_value |= ene_hw_read_reg(dev, + ENE_SAMPLE_BUFFER_FAN + buffer_pointer + i) << 8; + + /* test for _space_ bit */ + space = !(hw_value & ENE_FAN_SMPL_PULS_MSK); + + /* clear space bit, and other unused bits */ + hw_value &= ENE_FAN_VALUE_MASK; + hw_sample = hw_value * ENE_SAMPLE_PERIOD_FAN; + + } else { + space = hw_value & ENE_SAMPLE_SPC_MASK; + hw_value &= ENE_SAMPLE_VALUE_MASK; + hw_sample = hw_value * sample_period; + } + + /* no more data */ + if (!(hw_value)) + break; + + if (space) + hw_sample *= -1; + + /* overflow sample recieved, handle it */ + + if (!dev->fan_input_inuse && hw_value == ENE_SAMPLE_OVERFLOW) { + + if (dev->idle) + continue; + + if (dev->sample > 0 || abs(dev->sample) <= ENE_MAXGAP) + update_sample(dev, hw_sample); + else + ene_set_idle(dev, 1); + + continue; + } + + /* normal first sample recieved */ + if (!dev->fan_input_inuse && dev->idle) { + ene_set_idle(dev, 0); + + /* discard first recieved value, its random + since its the time signal was off before + first pulse if idle mode is enabled, HW + does that for us */ + + if (!enable_idle) + continue; + } + update_sample(dev, hw_sample); + send_sample(dev); + } + return IRQ_HANDLED; +} + +static int ene_probe(struct pnp_dev *pnp_dev, + const struct pnp_device_id *dev_id) +{ + struct ene_device *dev; + struct lirc_driver *lirc_driver; + int error = -ENOMEM; + + dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL); + + if (!dev) + goto err1; + + dev->pnp_dev = pnp_dev; + pnp_set_drvdata(pnp_dev, dev); + + + /* prepare lirc interface */ + error = -ENOMEM; + lirc_driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL); + + if (!lirc_driver) + goto err2; + + dev->lirc_driver = lirc_driver; + + strcpy(lirc_driver->name, ENE_DRIVER_NAME); + lirc_driver->minor = -1; + lirc_driver->code_length = sizeof(int) * 8; + lirc_driver->features = LIRC_CAN_REC_MODE2; + lirc_driver->data = dev; + lirc_driver->set_use_inc = ene_hw_init; + lirc_driver->set_use_dec = ene_hw_deinit; + lirc_driver->dev = &pnp_dev->dev; + lirc_driver->owner = THIS_MODULE; + + lirc_driver->rbuf = kzalloc(sizeof(struct lirc_buffer), GFP_KERNEL); + + if (!lirc_driver->rbuf) + goto err3; + + if (lirc_buffer_init(lirc_driver->rbuf, sizeof(int), sizeof(int) * 256)) + goto err4; + + error = -ENODEV; + if (lirc_register_driver(lirc_driver)) + goto err5; + + /* validate resources */ + if (!pnp_port_valid(pnp_dev, 0) || + pnp_port_len(pnp_dev, 0) < ENE_MAX_IO) + goto err6; + + if (!pnp_irq_valid(pnp_dev, 0)) + goto err6; + + dev->hw_io = pnp_port_start(pnp_dev, 0); + dev->irq = pnp_irq(pnp_dev, 0); + + /* claim the resources */ + error = -EBUSY; + if (!request_region(dev->hw_io, ENE_MAX_IO, ENE_DRIVER_NAME)) + goto err6; + + if (request_irq(dev->irq, ene_hw_irq, + IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) + goto err7; + + /* detect hardware version and features */ + error = ene_hw_detect(dev); + if (error) + goto err8; + + ene_printk(KERN_NOTICE, "driver has been succesfully loaded\n"); + return 0; + +err8: + free_irq(dev->irq, dev); +err7: + release_region(dev->hw_io, ENE_MAX_IO); +err6: + lirc_unregister_driver(lirc_driver->minor); +err5: + lirc_buffer_free(lirc_driver->rbuf); +err4: + kfree(lirc_driver->rbuf); +err3: + kfree(lirc_driver); +err2: + kfree(dev); +err1: + return error; +} + +static void ene_remove(struct pnp_dev *pnp_dev) +{ + struct ene_device *dev = pnp_get_drvdata(pnp_dev); + ene_hw_deinit(dev); + free_irq(dev->irq, dev); + release_region(dev->hw_io, ENE_MAX_IO); + lirc_unregister_driver(dev->lirc_driver->minor); + lirc_buffer_free(dev->lirc_driver->rbuf); + kfree(dev->lirc_driver); + kfree(dev); +} + +#ifdef CONFIG_PM + +/* TODO: make 'wake on IR' configurable and add .shutdown */ +/* currently impossible due to lack of kernel support */ + +static int ene_suspend(struct pnp_dev *pnp_dev, pm_message_t state) +{ + struct ene_device *dev = pnp_get_drvdata(pnp_dev); + ene_hw_write_reg_mask(dev, ENE_FW1, ENE_FW1_WAKE, ENE_FW1_WAKE); + return 0; +} + +static int ene_resume(struct pnp_dev *pnp_dev) +{ + struct ene_device *dev = pnp_get_drvdata(pnp_dev); + if (dev->in_use) + ene_hw_init(dev); + + ene_hw_write_reg_mask(dev, ENE_FW1, 0, ENE_FW1_WAKE); + return 0; +} + +#endif + +static const struct pnp_device_id ene_ids[] = { + {.id = "ENE0100",}, + {}, +}; + +static struct pnp_driver ene_driver = { + .name = ENE_DRIVER_NAME, + .id_table = ene_ids, + .flags = PNP_DRIVER_RES_DO_NOT_CHANGE, + + .probe = ene_probe, + .remove = __devexit_p(ene_remove), + +#ifdef CONFIG_PM + .suspend = ene_suspend, + .resume = ene_resume, +#endif +}; + +static int __init ene_init(void) +{ + if (sample_period < 5) { + ene_printk(KERN_ERR, "sample period must be at\n"); + ene_printk(KERN_ERR, "least 5 us, (at least 30 recommended)\n"); + return -EINVAL; + } + return pnp_register_driver(&ene_driver); +} + +static void ene_exit(void) +{ + pnp_unregister_driver(&ene_driver); +} + +module_param(sample_period, int, S_IRUGO); +MODULE_PARM_DESC(sample_period, "Hardware sample period (75 us default)"); + +module_param(enable_idle, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(enable_idle, + "Enables turning off signal sampling after long inactivity time; " + "if disabled might help detecting input signal (default: enabled)"); + +module_param(enable_learning, bool, S_IRUGO); +MODULE_PARM_DESC(enable_learning, "Use wide band (learning) reciever"); + +MODULE_DEVICE_TABLE(pnp, ene_ids); +MODULE_DESCRIPTION + ("LIRC driver for KB3926B/KB3926C/KB3926D (aka ENE0100) CIR port"); +MODULE_AUTHOR("Maxim Levitsky"); +MODULE_LICENSE("GPL"); + +module_init(ene_init); +module_exit(ene_exit); --- linux-2.6.35.orig/drivers/staging/lirc/Kconfig +++ linux-2.6.35/drivers/staging/lirc/Kconfig @@ -0,0 +1,105 @@ +# +# LIRC driver(s) configuration +# +menuconfig LIRC_STAGING + bool "Linux Infrared Remote Control IR receiver/transmitter drivers" + depends on LIRC + help + Say Y here, and all supported Linux Infrared Remote Control IR and + RF receiver and transmitter drivers will be displayed. When paired + with a remote control and the lirc daemon, the receiver drivers + allow control of your Linux system via remote control. + +if LIRC_STAGING + +config LIRC_BT829 + tristate "BT829 based hardware" + depends on LIRC_STAGING && PCI + help + Driver for the IR interface on BT829-based hardware + +config LIRC_ENE0100 + tristate "ENE KB3924/ENE0100 CIR Port Reciever" + depends on LIRC_STAGING && PNP + help + This is a driver for CIR port handled by ENE KB3924 embedded + controller found on some notebooks. + It appears on PNP list as ENE0100. + +config LIRC_I2C + tristate "I2C Based IR Receivers" + depends on LIRC_STAGING && I2C + help + Driver for I2C-based IR receivers, such as those commonly + found onboard Hauppauge PVR-150/250/350 video capture cards + +config LIRC_IGORPLUGUSB + tristate "Igor Cesko's USB IR Receiver" + depends on LIRC_STAGING && USB + help + Driver for Igor Cesko's USB IR Receiver + +config LIRC_IMON + tristate "Legacy SoundGraph iMON Receiver and Display" + depends on LIRC_STAGING && USB + help + Driver for the original SoundGraph iMON IR Receiver and Display + + Current generation iMON devices use the input layer imon driver. + +config LIRC_IT87 + tristate "ITE IT87XX CIR Port Receiver" + depends on LIRC_STAGING && PNP + help + Driver for the ITE IT87xx IR Receiver + +config LIRC_ITE8709 + tristate "ITE8709 CIR Port Receiver" + depends on LIRC_STAGING && PNP + help + Driver for the ITE8709 IR Receiver + +config LIRC_PARALLEL + tristate "Homebrew Parallel Port Receiver" + depends on LIRC_STAGING && PARPORT && !SMP + help + Driver for Homebrew Parallel Port Receivers + +config LIRC_SASEM + tristate "Sasem USB IR Remote" + depends on LIRC_STAGING && USB + help + Driver for the Sasem OnAir Remocon-V or Dign HV5 HTPC IR/VFD Module + +config LIRC_SERIAL + tristate "Homebrew Serial Port Receiver" + depends on LIRC_STAGING + help + Driver for Homebrew Serial Port Receivers + +config LIRC_SERIAL_TRANSMITTER + bool "Serial Port Transmitter" + default y + depends on LIRC_SERIAL + help + Serial Port Transmitter support + +config LIRC_SIR + tristate "Built-in SIR IrDA port" + depends on LIRC_STAGING + help + Driver for the SIR IrDA port + +config LIRC_TTUSBIR + tristate "Technotrend USB IR Receiver" + depends on LIRC_STAGING && USB + help + Driver for the Technotrend USB IR Receiver + +config LIRC_ZILOG + tristate "Zilog/Hauppauge IR Transmitter" + depends on LIRC_STAGING && I2C + help + Driver for the Zilog/Hauppauge IR Transmitter, found on + PVR-150/500, HVR-1200/1250/1700/1800, HD-PVR and other cards +endif --- linux-2.6.35.orig/drivers/staging/lirc/Makefile +++ linux-2.6.35/drivers/staging/lirc/Makefile @@ -0,0 +1,18 @@ +# Makefile for the lirc drivers. +# + +# Each configuration option enables a list of files. + +obj-$(CONFIG_LIRC_BT829) += lirc_bt829.o +obj-$(CONFIG_LIRC_ENE0100) += lirc_ene0100.o +obj-$(CONFIG_LIRC_I2C) += lirc_i2c.o +obj-$(CONFIG_LIRC_IGORPLUGUSB) += lirc_igorplugusb.o +obj-$(CONFIG_LIRC_IMON) += lirc_imon.o +obj-$(CONFIG_LIRC_IT87) += lirc_it87.o +obj-$(CONFIG_LIRC_ITE8709) += lirc_ite8709.o +obj-$(CONFIG_LIRC_PARALLEL) += lirc_parallel.o +obj-$(CONFIG_LIRC_SASEM) += lirc_sasem.o +obj-$(CONFIG_LIRC_SERIAL) += lirc_serial.o +obj-$(CONFIG_LIRC_SIR) += lirc_sir.o +obj-$(CONFIG_LIRC_TTUSBIR) += lirc_ttusbir.o +obj-$(CONFIG_LIRC_ZILOG) += lirc_zilog.o --- linux-2.6.35.orig/drivers/staging/lirc/lirc_it87.h +++ linux-2.6.35/drivers/staging/lirc/lirc_it87.h @@ -0,0 +1,116 @@ +/* lirc_it87.h */ +/* SECTION: Definitions */ + +/********************************* ITE IT87xx ************************/ + +/* based on the following documentation from ITE: + a) IT8712F Preliminary CIR Programming Guide V0.1 + b) IT8705F Simple LPC I/O Preliminary Specification V0.3 + c) IT8712F EC-LPC I/O Preliminary Specification V0.5 +*/ + +/* IT8712/05 Ports: */ +#define IT87_ADRPORT 0x2e +#define IT87_DATAPORT 0x2f +#define IT87_INIT {0x87, 0x01, 0x55, 0x55} + +/* alternate Ports: */ +/* +#define IT87_ADRPORT 0x4e +#define IT87_DATAPORT 0x4f +#define IT87_INIT {0x87, 0x01, 0x55, 0xaa} + */ + +/* IT8712/05 Registers */ +#define IT87_CFGCTRL 0x2 +#define IT87_LDN 0x7 +#define IT87_CHIP_ID1 0x20 +#define IT87_CHIP_ID2 0x21 +#define IT87_CFG_VERSION 0x22 +#define IT87_SWSUSPEND 0x23 + +#define IT8712_CIR_LDN 0xa +#define IT8705_CIR_LDN 0x7 + +/* CIR Configuration Registers: */ +#define IT87_CIR_ACT 0x30 +#define IT87_CIR_BASE_MSB 0x60 +#define IT87_CIR_BASE_LSB 0x61 +#define IT87_CIR_IRQ 0x70 +#define IT87_CIR_CONFIG 0xf0 + +/* List of IT87_CIR registers: offset to BaseAddr */ +#define IT87_CIR_DR 0 +#define IT87_CIR_IER 1 +#define IT87_CIR_RCR 2 +#define IT87_CIR_TCR1 3 +#define IT87_CIR_TCR2 4 +#define IT87_CIR_TSR 5 +#define IT87_CIR_RSR 6 +#define IT87_CIR_BDLR 5 +#define IT87_CIR_BDHR 6 +#define IT87_CIR_IIR 7 + +/* Bit Definition */ +/* IER: */ +#define IT87_CIR_IER_TM_EN 0x80 +#define IT87_CIR_IER_RESEVED 0x40 +#define IT87_CIR_IER_RESET 0x20 +#define IT87_CIR_IER_BR 0x10 +#define IT87_CIR_IER_IEC 0x8 +#define IT87_CIR_IER_RFOIE 0x4 +#define IT87_CIR_IER_RDAIE 0x2 +#define IT87_CIR_IER_TLDLIE 0x1 + +/* RCR: */ +#define IT87_CIR_RCR_RDWOS 0x80 +#define IT87_CIR_RCR_HCFS 0x40 +#define IT87_CIR_RCR_RXEN 0x20 +#define IT87_CIR_RCR_RXEND 0x10 +#define IT87_CIR_RCR_RXACT 0x8 +#define IT87_CIR_RCR_RXDCR 0x7 + +/* TCR1: */ +#define IT87_CIR_TCR1_FIFOCLR 0x80 +#define IT87_CIR_TCR1_ILE 0x40 +#define IT87_CIR_TCR1_FIFOTL 0x30 +#define IT87_CIR_TCR1_TXRLE 0x8 +#define IT87_CIR_TCR1_TXENDF 0x4 +#define IT87_CIR_TCR1_TXMPM 0x3 + +/* TCR2: */ +#define IT87_CIR_TCR2_CFQ 0xf8 +#define IT87_CIR_TCR2_TXMPW 0x7 + +/* TSR: */ +#define IT87_CIR_TSR_RESERVED 0xc0 +#define IT87_CIR_TSR_TXFBC 0x3f + +/* RSR: */ +#define IT87_CIR_RSR_RXFTO 0x80 +#define IT87_CIR_RSR_RESERVED 0x40 +#define IT87_CIR_RSR_RXFBC 0x3f + +/* IIR: */ +#define IT87_CIR_IIR_RESERVED 0xf8 +#define IT87_CIR_IIR_IID 0x6 +#define IT87_CIR_IIR_IIP 0x1 + +/* TM: */ +#define IT87_CIR_TM_IL_SEL 0x80 +#define IT87_CIR_TM_RESERVED 0x40 +#define IT87_CIR_TM_TM_REG 0x3f + +#define IT87_CIR_FIFO_SIZE 32 + +/* Baudratedivisor for IT87: power of 2: only 1,2,4 or 8) */ +#define IT87_CIR_BAUDRATE_DIVISOR 0x1 +#define IT87_CIR_DEFAULT_IOBASE 0x310 +#define IT87_CIR_DEFAULT_IRQ 0x7 +#define IT87_CIR_SPACE 0x00 +#define IT87_CIR_PULSE 0xff +#define IT87_CIR_FREQ_MIN 27 +#define IT87_CIR_FREQ_MAX 58 +#define TIME_CONST (IT87_CIR_BAUDRATE_DIVISOR * 8000000ul / 115200ul) + +/********************************* ITE IT87xx ************************/ --- linux-2.6.35.orig/drivers/staging/batman-adv/originator.c +++ linux-2.6.35/drivers/staging/batman-adv/originator.c @@ -401,11 +401,12 @@ int orig_hash_add_if(struct batman_if *batman_if, int max_if_num) { struct orig_node *orig_node; + unsigned long flags; HASHIT(hashit); /* resize all orig nodes because orig_node->bcast_own(_sum) depend on * if_num */ - spin_lock(&orig_hash_lock); + spin_lock_irqsave(&orig_hash_lock, flags); while (hash_iterate(orig_hash, &hashit)) { orig_node = hashit.bucket->data; @@ -414,11 +415,11 @@ goto err; } - spin_unlock(&orig_hash_lock); + spin_unlock_irqrestore(&orig_hash_lock, flags); return 0; err: - spin_unlock(&orig_hash_lock); + spin_unlock_irqrestore(&orig_hash_lock, flags); return -ENOMEM; } @@ -480,12 +481,13 @@ { struct batman_if *batman_if_tmp; struct orig_node *orig_node; + unsigned long flags; HASHIT(hashit); int ret; /* resize all orig nodes because orig_node->bcast_own(_sum) depend on * if_num */ - spin_lock(&orig_hash_lock); + spin_lock_irqsave(&orig_hash_lock, flags); while (hash_iterate(orig_hash, &hashit)) { orig_node = hashit.bucket->data; @@ -512,10 +514,10 @@ rcu_read_unlock(); batman_if->if_num = -1; - spin_unlock(&orig_hash_lock); + spin_unlock_irqrestore(&orig_hash_lock, flags); return 0; err: - spin_unlock(&orig_hash_lock); + spin_unlock_irqrestore(&orig_hash_lock, flags); return -ENOMEM; } --- linux-2.6.35.orig/drivers/staging/batman-adv/hard-interface.c +++ linux-2.6.35/drivers/staging/batman-adv/hard-interface.c @@ -128,6 +128,9 @@ static void update_mac_addresses(struct batman_if *batman_if) { + if (!batman_if || !batman_if->packet_buff) + return; + addr_to_string(batman_if->addr_str, batman_if->net_dev->dev_addr); memcpy(((struct batman_packet *)(batman_if->packet_buff))->orig, @@ -194,8 +197,6 @@ if (batman_if->if_status != IF_INACTIVE) return; - dev_hold(batman_if->net_dev); - update_mac_addresses(batman_if); batman_if->if_status = IF_TO_BE_ACTIVATED; @@ -222,8 +223,6 @@ (batman_if->if_status != IF_TO_BE_ACTIVATED)) return; - dev_put(batman_if->net_dev); - batman_if->if_status = IF_INACTIVE; printk(KERN_INFO "batman-adv:Interface deactivated: %s\n", @@ -321,12 +320,14 @@ if (ret != 1) goto out; + dev_hold(net_dev); + batman_if = kmalloc(sizeof(struct batman_if), GFP_ATOMIC); if (!batman_if) { printk(KERN_ERR "batman-adv:" "Can't add interface (%s): out of memory\n", net_dev->name); - goto out; + goto release_dev; } batman_if->dev = kstrdup(net_dev->name, GFP_ATOMIC); @@ -340,6 +341,7 @@ batman_if->if_num = -1; batman_if->net_dev = net_dev; batman_if->if_status = IF_NOT_IN_USE; + batman_if->packet_buff = NULL; INIT_LIST_HEAD(&batman_if->list); check_known_mac_addr(batman_if->net_dev->dev_addr); @@ -350,6 +352,8 @@ kfree(batman_if->dev); free_if: kfree(batman_if); +release_dev: + dev_put(net_dev); out: return NULL; } @@ -378,6 +382,7 @@ batman_if->if_status = IF_TO_BE_REMOVED; list_del_rcu(&batman_if->list); sysfs_del_hardif(&batman_if->hardif_obj); + dev_put(batman_if->net_dev); call_rcu(&batman_if->rcu, hardif_free_interface); } @@ -397,15 +402,13 @@ /* FIXME: each batman_if will be attached to a softif */ struct bat_priv *bat_priv = netdev_priv(soft_device); - if (!batman_if) - batman_if = hardif_add_interface(net_dev); + if (!batman_if && event == NETDEV_REGISTER) + batman_if = hardif_add_interface(net_dev); if (!batman_if) goto out; switch (event) { - case NETDEV_REGISTER: - break; case NETDEV_UP: hardif_activate_interface(bat_priv, batman_if); break; --- linux-2.6.35.orig/drivers/staging/line6/Kconfig +++ linux-2.6.35/drivers/staging/line6/Kconfig @@ -2,6 +2,7 @@ tristate "Line6 USB support" depends on USB && SND select SND_RAWMIDI + select SND_PCM help This is a driver for the guitar amp, cab, and effects modeller PODxt Pro by Line6 (and similar devices), supporting the --- linux-2.6.35.orig/drivers/idle/Kconfig +++ linux-2.6.35/drivers/idle/Kconfig @@ -1,5 +1,5 @@ config INTEL_IDLE - tristate "Cpuidle Driver for Intel Processors" + bool "Cpuidle Driver for Intel Processors" depends on CPU_IDLE depends on X86 depends on CPU_SUP_INTEL --- linux-2.6.35.orig/drivers/hid/hid-ntrig.c +++ linux-2.6.35/drivers/hid/hid-ntrig.c @@ -3,6 +3,7 @@ * * Copyright (c) 2008-2010 Rafi Rubin * Copyright (c) 2009-2010 Stephane Chatty + * Copyright (c) 2010 Canonical, Ltd. * */ @@ -24,352 +25,83 @@ #define NTRIG_DUPLICATE_USAGES 0x001 -static unsigned int min_width; -module_param(min_width, uint, 0644); -MODULE_PARM_DESC(min_width, "Minimum touch contact width to accept."); - -static unsigned int min_height; -module_param(min_height, uint, 0644); -MODULE_PARM_DESC(min_height, "Minimum touch contact height to accept."); - -static unsigned int activate_slack = 1; -module_param(activate_slack, uint, 0644); -MODULE_PARM_DESC(activate_slack, "Number of touch frames to ignore at " - "the start of touch input."); - -static unsigned int deactivate_slack = 4; -module_param(deactivate_slack, uint, 0644); -MODULE_PARM_DESC(deactivate_slack, "Number of empty frames to ignore before " - "deactivating touch."); - -static unsigned int activation_width = 64; -module_param(activation_width, uint, 0644); -MODULE_PARM_DESC(activation_width, "Width threshold to immediately start " - "processing touch events."); - -static unsigned int activation_height = 32; -module_param(activation_height, uint, 0644); -MODULE_PARM_DESC(activation_height, "Height threshold to immediately start " - "processing touch events."); +#define MAX_SLOTS 20 +#define MAX_EVENTS 120 -struct ntrig_data { - /* Incoming raw values for a single contact */ - __u16 x, y, w, h; - __u16 id; - - bool tipswitch; - bool confidence; - bool first_contact_touch; - - bool reading_mt; - - __u8 mt_footer[4]; - __u8 mt_foot_count; - - /* The current activation state. */ - __s8 act_state; - - /* Empty frames to ignore before recognizing the end of activity */ - __s8 deactivate_slack; +#define SN_MOVE_X 128 +#define SN_MOVE_Y 92 +#define SN_MAJOR 48 + +#define HOLD_MIN 3 +#define HOLD_MED 7 +#define HOLD_MAX 10 + +#define DIV_MIN 8 +#define DIV_MED 40 +#define DIV_MAX 100 - /* Frames to ignore before acknowledging the start of activity */ - __s8 activate_slack; - - /* Minimum size contact to accept */ - __u16 min_width; - __u16 min_height; - - /* Threshold to override activation slack */ - __u16 activation_width; - __u16 activation_height; - - __u16 sensor_logical_width; - __u16 sensor_logical_height; - __u16 sensor_physical_width; - __u16 sensor_physical_height; +struct ntrig_contact { + int x, y, w, h; }; +struct ntrig_data { + struct ntrig_contact row[MAX_SLOTS], col[MAX_SLOTS]; + int dmin, dmed, dmax; + int nrow, ncol; + int index, nindex; + int nhold; +}; -static ssize_t show_phys_width(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - return sprintf(buf, "%d\n", nd->sensor_physical_width); -} - -static DEVICE_ATTR(sensor_physical_width, S_IRUGO, show_phys_width, NULL); - -static ssize_t show_phys_height(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - return sprintf(buf, "%d\n", nd->sensor_physical_height); -} - -static DEVICE_ATTR(sensor_physical_height, S_IRUGO, show_phys_height, NULL); - -static ssize_t show_log_width(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - return sprintf(buf, "%d\n", nd->sensor_logical_width); -} - -static DEVICE_ATTR(sensor_logical_width, S_IRUGO, show_log_width, NULL); - -static ssize_t show_log_height(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - return sprintf(buf, "%d\n", nd->sensor_logical_height); -} - -static DEVICE_ATTR(sensor_logical_height, S_IRUGO, show_log_height, NULL); - -static ssize_t show_min_width(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - return sprintf(buf, "%d\n", nd->min_width * - nd->sensor_physical_width / - nd->sensor_logical_width); -} - -static ssize_t set_min_width(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - unsigned long val; - - if (strict_strtoul(buf, 0, &val)) - return -EINVAL; - - if (val > nd->sensor_physical_width) - return -EINVAL; - - nd->min_width = val * nd->sensor_logical_width / - nd->sensor_physical_width; - - return count; -} - -static DEVICE_ATTR(min_width, S_IWUSR | S_IRUGO, show_min_width, set_min_width); - -static ssize_t show_min_height(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - return sprintf(buf, "%d\n", nd->min_height * - nd->sensor_physical_height / - nd->sensor_logical_height); -} - -static ssize_t set_min_height(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - unsigned long val; - - if (strict_strtoul(buf, 0, &val)) - return -EINVAL; - - if (val > nd->sensor_physical_height) - return -EINVAL; - - nd->min_height = val * nd->sensor_logical_height / - nd->sensor_physical_height; - - return count; -} - -static DEVICE_ATTR(min_height, S_IWUSR | S_IRUGO, show_min_height, - set_min_height); - -static ssize_t show_activate_slack(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - return sprintf(buf, "%d\n", nd->activate_slack); -} - -static ssize_t set_activate_slack(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - unsigned long val; - - if (strict_strtoul(buf, 0, &val)) - return -EINVAL; - - if (val > 0x7f) - return -EINVAL; - - nd->activate_slack = val; - - return count; -} - -static DEVICE_ATTR(activate_slack, S_IWUSR | S_IRUGO, show_activate_slack, - set_activate_slack); - -static ssize_t show_activation_width(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - return sprintf(buf, "%d\n", nd->activation_width * - nd->sensor_physical_width / - nd->sensor_logical_width); -} - -static ssize_t set_activation_width(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - unsigned long val; - - if (strict_strtoul(buf, 0, &val)) - return -EINVAL; - - if (val > nd->sensor_physical_width) - return -EINVAL; - - nd->activation_width = val * nd->sensor_logical_width / - nd->sensor_physical_width; - - return count; -} - -static DEVICE_ATTR(activation_width, S_IWUSR | S_IRUGO, show_activation_width, - set_activation_width); - -static ssize_t show_activation_height(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - return sprintf(buf, "%d\n", nd->activation_height * - nd->sensor_physical_height / - nd->sensor_logical_height); -} -static ssize_t set_activation_height(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) +/* + * This function converts the 4 byte raw firmware code into + * a string containing 5 comma separated numbers. + */ +static int ntrig_version_string(unsigned char *raw, char *buf) { - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - unsigned long val; - - if (strict_strtoul(buf, 0, &val)) - return -EINVAL; - - if (val > nd->sensor_physical_height) - return -EINVAL; - - nd->activation_height = val * nd->sensor_logical_height / - nd->sensor_physical_height; - - return count; -} + __u8 a = (raw[1] & 0x0e) >> 1; + __u8 b = (raw[0] & 0x3c) >> 2; + __u8 c = ((raw[0] & 0x03) << 3) | ((raw[3] & 0xe0) >> 5); + __u8 d = ((raw[3] & 0x07) << 3) | ((raw[2] & 0xe0) >> 5); + __u8 e = raw[2] & 0x07; -static DEVICE_ATTR(activation_height, S_IWUSR | S_IRUGO, - show_activation_height, set_activation_height); - -static ssize_t show_deactivate_slack(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); + /* + * As yet unmapped bits: + * 0b11000000 0b11110001 0b00011000 0b00011000 + */ - return sprintf(buf, "%d\n", -nd->deactivate_slack); + return sprintf(buf, "%u.%u.%u.%u.%u", a, b, c, d, e); } -static ssize_t set_deactivate_slack(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) +static void ntrig_report_version(struct hid_device *hdev) { - struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct ntrig_data *nd = hid_get_drvdata(hdev); - - unsigned long val; - - if (strict_strtoul(buf, 0, &val)) - return -EINVAL; + int ret; + char buf[20]; + struct usb_device *usb_dev = hid_to_usb_dev(hdev); + unsigned char *data = kmalloc(8, GFP_KERNEL); - /* - * No more than 8 terminal frames have been observed so far - * and higher slack is highly likely to leave the single - * touch emulation stuck down. - */ - if (val > 7) - return -EINVAL; + if (!data) + goto err_free; - nd->deactivate_slack = -val; + ret = usb_control_msg(usb_dev, usb_rcvctrlpipe(usb_dev, 0), + USB_REQ_CLEAR_FEATURE, + USB_TYPE_CLASS | USB_RECIP_INTERFACE | + USB_DIR_IN, + 0x30c, 1, data, 8, + USB_CTRL_SET_TIMEOUT); + + if (ret == 8) { + ret = ntrig_version_string(&data[2], buf); + + dev_info(&hdev->dev, + "Firmware version: %s (%02x%02x %02x%02x)\n", + buf, data[2], data[3], data[4], data[5]); + } - return count; +err_free: + kfree(data); } -static DEVICE_ATTR(deactivate_slack, S_IWUSR | S_IRUGO, show_deactivate_slack, - set_deactivate_slack); - -static struct attribute *sysfs_attrs[] = { - &dev_attr_sensor_physical_width.attr, - &dev_attr_sensor_physical_height.attr, - &dev_attr_sensor_logical_width.attr, - &dev_attr_sensor_logical_height.attr, - &dev_attr_min_height.attr, - &dev_attr_min_width.attr, - &dev_attr_activate_slack.attr, - &dev_attr_activation_width.attr, - &dev_attr_activation_height.attr, - &dev_attr_deactivate_slack.attr, - NULL -}; - -static struct attribute_group ntrig_attribute_group = { - .attrs = sysfs_attrs -}; - /* * this driver is aimed at two firmware versions in circulation: * - dual pen/finger single touch @@ -381,6 +113,10 @@ unsigned long **bit, int *max) { struct ntrig_data *nd = hid_get_drvdata(hdev); + struct input_dev *input = hi->input; + int f1 = field->logical_minimum; + int f2 = field->logical_maximum; + int df = f2 - f1; /* No special mappings needed for the pen and single touch */ if (field->physical) @@ -390,48 +126,21 @@ case HID_UP_GENDESK: switch (usage->hid) { case HID_GD_X: - hid_map_usage(hi, usage, bit, max, - EV_ABS, ABS_MT_POSITION_X); - input_set_abs_params(hi->input, ABS_X, - field->logical_minimum, - field->logical_maximum, 0, 0); - - if (!nd->sensor_logical_width) { - nd->sensor_logical_width = - field->logical_maximum - - field->logical_minimum; - nd->sensor_physical_width = - field->physical_maximum - - field->physical_minimum; - nd->activation_width = activation_width * - nd->sensor_logical_width / - nd->sensor_physical_width; - nd->min_width = min_width * - nd->sensor_logical_width / - nd->sensor_physical_width; - } + hid_map_usage(hi, usage, bit, max, EV_ABS, ABS_X); + input_set_abs_params(input, ABS_X, + f1, f2, df / SN_MOVE_X, 0); + input_set_abs_params(input, ABS_MT_POSITION_X, + f1, f2, df / SN_MOVE_X, 0); + nd->dmin = df / DIV_MIN; + nd->dmed = df / DIV_MED; + nd->dmax = df / DIV_MAX; return 1; case HID_GD_Y: - hid_map_usage(hi, usage, bit, max, - EV_ABS, ABS_MT_POSITION_Y); - input_set_abs_params(hi->input, ABS_Y, - field->logical_minimum, - field->logical_maximum, 0, 0); - - if (!nd->sensor_logical_height) { - nd->sensor_logical_height = - field->logical_maximum - - field->logical_minimum; - nd->sensor_physical_height = - field->physical_maximum - - field->physical_minimum; - nd->activation_height = activation_height * - nd->sensor_logical_height / - nd->sensor_physical_height; - nd->min_height = min_height * - nd->sensor_logical_height / - nd->sensor_physical_height; - } + hid_map_usage(hi, usage, bit, max, EV_ABS, ABS_Y); + input_set_abs_params(input, ABS_Y, + f1, f2, df / SN_MOVE_Y, 0); + input_set_abs_params(input, ABS_MT_POSITION_Y, + f1, f2, df / SN_MOVE_Y, 0); return 1; } return 0; @@ -443,18 +152,31 @@ case HID_DG_INPUTMODE: case HID_DG_DEVICEINDEX: case HID_DG_CONTACTMAX: + case HID_DG_CONTACTCOUNT: + case HID_DG_INRANGE: + case HID_DG_CONFIDENCE: return -1; + case HID_DG_TIPSWITCH: + hid_map_usage(hi, usage, bit, max, EV_KEY, BTN_TOUCH); + input_set_capability(input, EV_KEY, BTN_TOUCH); + return 1; + /* width/height mapped on TouchMajor/TouchMinor/Orientation */ case HID_DG_WIDTH: hid_map_usage(hi, usage, bit, max, EV_ABS, ABS_MT_TOUCH_MAJOR); + input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, + f1, f2, df / SN_MAJOR, 0); return 1; case HID_DG_HEIGHT: hid_map_usage(hi, usage, bit, max, EV_ABS, ABS_MT_TOUCH_MINOR); - input_set_abs_params(hi->input, ABS_MT_ORIENTATION, - 0, 1, 0, 0); + input_set_abs_params(input, ABS_MT_TOUCH_MINOR, + f1, f2, df / SN_MAJOR, 0); + input_set_abs_params(input, ABS_MT_ORIENTATION, + 0, 1, 0, 0); + input_set_events_per_packet(input, MAX_EVENTS); return 1; } return 0; @@ -475,11 +197,123 @@ if (field->physical) return 0; - if (usage->type == EV_KEY || usage->type == EV_REL - || usage->type == EV_ABS) - clear_bit(usage->code, *bit); + /* tell hid-input to skip setup of these event types */ + if (usage->type == EV_KEY || usage->type == EV_ABS) + set_bit(usage->type, hi->input->evbit); + return -1; +} - return 0; +static bool copy_best_column(struct ntrig_data *nd, unsigned *used, int i) +{ + int j, jbest = -1, d, dbest; + for (j = 0; j < nd->ncol; ++j) { + if (*used & (1 << j)) + continue; + d = abs(nd->row[i].x - nd->col[j].x) + + abs(nd->row[i].y - nd->col[j].y); + if (jbest < 0 || d < dbest) { + jbest = j; + dbest = d; + } + } + if (jbest < 0) + return false; + *used |= (1 << jbest); + if (nd->nrow > 2) + nd->col[jbest].y = (nd->row[i].y + nd->col[jbest].y) >> 1; + nd->row[i] = nd->col[jbest]; + return true; +} + +static bool copy_next_column(struct ntrig_data *nd, unsigned *used, int i) +{ + int j; + for (j = 0; j < nd->ncol; ++j) { + if (*used & (1 << j)) + continue; + *used |= (1 << j); + nd->row[i] = nd->col[j]; + return true; + } + return false; +} + +static int ghost_distance(const struct ntrig_data *nd, int j) +{ + int i, d, dbest = INT_MAX; + for (i = 0; i < nd->nrow; ++i) { + d = abs(nd->row[i].x - nd->col[j].x); + dbest = min(dbest, d); + d = abs(nd->row[i].y - nd->col[j].y); + dbest = min(dbest, d); + } + return dbest; +} + +static void discard_ghosts(struct ntrig_data *nd, unsigned *used) +{ + int j, d; + for (j = 0; j < nd->ncol; ++j) { + if (*used & (1 << j)) + continue; + d = ghost_distance(nd, j); + if ((nd->nhold < HOLD_MIN && d < nd->dmin) || + (nd->nhold < HOLD_MED && d < nd->dmed) || + (nd->nhold < HOLD_MAX && d < nd->dmax)) + *used |= (1 << j); + } +} + +static void report_frame(struct input_dev *input, struct ntrig_data *nd) +{ + struct ntrig_contact *oldest = 0; + unsigned used = 0; + int i; + + if (nd->nrow < nd->ncol) { + for (i = 0; i < nd->nrow; ++i) + copy_best_column(nd, &used, i); + if (nd->ncol > 2) + discard_ghosts(nd, &used); + while (copy_next_column(nd, &used, i)) + i++; + nd->nrow = i; + nd->nhold++; + } else if (nd->nrow > nd->ncol) { + for (i = 0; i < nd->ncol; ++i) + nd->row[i] = nd->col[i]; + nd->nrow = nd->ncol; + nd->nhold = 0; + } else { + unsigned used = 0; + for (i = 0; i < nd->nrow; ++i) + copy_best_column(nd, &used, i); + nd->nhold = 0; + } + + for (i = 0; i < nd->nrow; ++i) { + struct ntrig_contact *f = &nd->row[i]; + int wide = (f->w > f->h); + int major = max(f->w, f->h); + int minor = min(f->w, f->h); + if (!oldest) + oldest = f; + input_event(input, EV_ABS, ABS_MT_POSITION_X, f->x); + input_event(input, EV_ABS, ABS_MT_POSITION_Y, f->y); + input_event(input, EV_ABS, ABS_MT_ORIENTATION, wide); + input_event(input, EV_ABS, ABS_MT_TOUCH_MAJOR, major); + input_event(input, EV_ABS, ABS_MT_TOUCH_MINOR, minor); + input_mt_sync(input); + } + + /* touchscreen emulation */ + if (oldest) { + input_event(input, EV_KEY, BTN_TOUCH, 1); + input_event(input, EV_ABS, ABS_X, oldest->x); + input_event(input, EV_ABS, ABS_Y, oldest->y); + } else { + input_event(input, EV_KEY, BTN_TOUCH, 0); + } } /* @@ -500,265 +334,26 @@ if (hid->claimed & HID_CLAIMED_INPUT) { switch (usage->hid) { - case 0xff000001: - /* Tag indicating the start of a multitouch group */ - nd->reading_mt = 1; - nd->first_contact_touch = 0; - break; case HID_DG_TIPSWITCH: - nd->tipswitch = value; - /* Prevent emission of touch until validated */ - return 1; - case HID_DG_CONFIDENCE: - nd->confidence = value; + nd->index = nd->nindex++; break; case HID_GD_X: - nd->x = value; - /* Clear the contact footer */ - nd->mt_foot_count = 0; + nd->col[nd->index].x = value; break; case HID_GD_Y: - nd->y = value; - break; - case HID_DG_CONTACTID: - nd->id = value; + nd->col[nd->index].y = value; break; case HID_DG_WIDTH: - nd->w = value; + nd->col[nd->index].w = value; break; case HID_DG_HEIGHT: - nd->h = value; - /* - * when in single touch mode, this is the last - * report received in a finger event. We want - * to emit a normal (X, Y) position - */ - if (!nd->reading_mt) { - /* - * TipSwitch indicates the presence of a - * finger in single touch mode. - */ - input_report_key(input, BTN_TOUCH, - nd->tipswitch); - input_report_key(input, BTN_TOOL_DOUBLETAP, - nd->tipswitch); - input_event(input, EV_ABS, ABS_X, nd->x); - input_event(input, EV_ABS, ABS_Y, nd->y); - } - break; - case 0xff000002: - /* - * we receive this when the device is in multitouch - * mode. The first of the three values tagged with - * this usage tells if the contact point is real - * or a placeholder - */ - - /* Shouldn't get more than 4 footer packets, so skip */ - if (nd->mt_foot_count >= 4) - break; - - nd->mt_footer[nd->mt_foot_count++] = value; - - /* if the footer isn't complete break */ - if (nd->mt_foot_count != 4) - break; - - /* Pen activity signal. */ - if (nd->mt_footer[2]) { - /* - * When the pen deactivates touch, we see a - * bogus frame with ContactCount > 0. - * We can - * save a bit of work by ensuring act_state < 0 - * even if deactivation slack is turned off. - */ - nd->act_state = deactivate_slack - 1; - nd->confidence = 0; - break; - } - - /* - * The first footer value indicates the presence of a - * finger. - */ - if (nd->mt_footer[0]) { - /* - * We do not want to process contacts under - * the size threshold, but do not want to - * ignore them for activation state - */ - if (nd->w < nd->min_width || - nd->h < nd->min_height) - nd->confidence = 0; - } else - break; - - if (nd->act_state > 0) { - /* - * Contact meets the activation size threshold - */ - if (nd->w >= nd->activation_width && - nd->h >= nd->activation_height) { - if (nd->id) - /* - * first contact, activate now - */ - nd->act_state = 0; - else { - /* - * avoid corrupting this frame - * but ensure next frame will - * be active - */ - nd->act_state = 1; - break; - } - } else - /* - * Defer adjusting the activation state - * until the end of the frame. - */ - break; - } - - /* Discarding this contact */ - if (!nd->confidence) - break; - - /* emit a normal (X, Y) for the first point only */ - if (nd->id == 0) { - /* - * TipSwitch is superfluous in multitouch - * mode. The footer events tell us - * if there is a finger on the screen or - * not. - */ - nd->first_contact_touch = nd->confidence; - input_event(input, EV_ABS, ABS_X, nd->x); - input_event(input, EV_ABS, ABS_Y, nd->y); - } - - /* Emit MT events */ - input_event(input, EV_ABS, ABS_MT_POSITION_X, nd->x); - input_event(input, EV_ABS, ABS_MT_POSITION_Y, nd->y); - - /* - * Translate from height and width to size - * and orientation. - */ - if (nd->w > nd->h) { - input_event(input, EV_ABS, - ABS_MT_ORIENTATION, 1); - input_event(input, EV_ABS, - ABS_MT_TOUCH_MAJOR, nd->w); - input_event(input, EV_ABS, - ABS_MT_TOUCH_MINOR, nd->h); - } else { - input_event(input, EV_ABS, - ABS_MT_ORIENTATION, 0); - input_event(input, EV_ABS, - ABS_MT_TOUCH_MAJOR, nd->h); - input_event(input, EV_ABS, - ABS_MT_TOUCH_MINOR, nd->w); - } - input_mt_sync(field->hidinput->input); + nd->col[nd->index].h = value; break; - case HID_DG_CONTACTCOUNT: /* End of a multitouch group */ - if (!nd->reading_mt) /* Just to be sure */ - break; - - nd->reading_mt = 0; - - - /* - * Activation state machine logic: - * - * Fundamental states: - * state > 0: Inactive - * state <= 0: Active - * state < -deactivate_slack: - * Pen termination of touch - * - * Specific values of interest - * state == activate_slack - * no valid input since the last reset - * - * state == 0 - * general operational state - * - * state == -deactivate_slack - * read sufficient empty frames to accept - * the end of input and reset - */ - - if (nd->act_state > 0) { /* Currently inactive */ - if (value) - /* - * Consider each live contact as - * evidence of intentional activity. - */ - nd->act_state = (nd->act_state > value) - ? nd->act_state - value - : 0; - else - /* - * Empty frame before we hit the - * activity threshold, reset. - */ - nd->act_state = nd->activate_slack; - - /* - * Entered this block inactive and no - * coordinates sent this frame, so hold off - * on button state. - */ - break; - } else { /* Currently active */ - if (value && nd->act_state >= - nd->deactivate_slack) - /* - * Live point: clear accumulated - * deactivation count. - */ - nd->act_state = 0; - else if (nd->act_state <= nd->deactivate_slack) - /* - * We've consumed the deactivation - * slack, time to deactivate and reset. - */ - nd->act_state = - nd->activate_slack; - else { /* Move towards deactivation */ - nd->act_state--; - break; - } - } - - if (nd->first_contact_touch && nd->act_state <= 0) { - /* - * Check to see if we're ready to start - * emitting touch events. - * - * Note: activation slack will decrease over - * the course of the frame, and it will be - * inconsistent from the start to the end of - * the frame. However if the frame starts - * with slack, first_contact_touch will still - * be 0 and we will not get to this point. - */ - input_report_key(input, BTN_TOOL_DOUBLETAP, 1); - input_report_key(input, BTN_TOUCH, 1); - } else { - input_report_key(input, BTN_TOOL_DOUBLETAP, 0); - input_report_key(input, BTN_TOUCH, 0); - } + nd->nindex = 0; + nd->ncol = value; + report_frame(input, nd); break; - - default: - /* fall-back to the generic hidinput handling */ - return 0; } } @@ -777,26 +372,15 @@ struct input_dev *input; struct hid_report *report; - if (id->driver_data) + if (id->driver_data & NTRIG_DUPLICATE_USAGES) hdev->quirks |= HID_QUIRK_MULTI_INPUT; - nd = kmalloc(sizeof(struct ntrig_data), GFP_KERNEL); + nd = kzalloc(sizeof(struct ntrig_data), GFP_KERNEL); if (!nd) { dev_err(&hdev->dev, "cannot allocate N-Trig data\n"); return -ENOMEM; } - nd->reading_mt = 0; - nd->min_width = 0; - nd->min_height = 0; - nd->activate_slack = activate_slack; - nd->act_state = activate_slack; - nd->deactivate_slack = -deactivate_slack; - nd->sensor_logical_width = 0; - nd->sensor_logical_height = 0; - nd->sensor_physical_width = 0; - nd->sensor_physical_height = 0; - hid_set_drvdata(hdev, nd); ret = hid_parse(hdev); @@ -822,18 +406,6 @@ input->name = "N-Trig Pen"; break; case HID_DG_TOUCHSCREEN: - /* These keys are redundant for fingers, clear them - * to prevent incorrect identification */ - __clear_bit(BTN_TOOL_PEN, input->keybit); - __clear_bit(BTN_TOOL_FINGER, input->keybit); - __clear_bit(BTN_0, input->keybit); - __set_bit(BTN_TOOL_DOUBLETAP, input->keybit); - /* - * The physical touchscreen (single touch) - * input has a value for physical, whereas - * the multitouch only has logical input - * fields. - */ input->name = (hidinput->report->field[0] ->physical) ? @@ -848,8 +420,8 @@ if (report) usbhid_submit_report(hdev, report, USB_DIR_OUT); - ret = sysfs_create_group(&hdev->dev.kobj, - &ntrig_attribute_group); + ntrig_report_version(hdev); + return 0; err_free: @@ -859,51 +431,16 @@ static void ntrig_remove(struct hid_device *hdev) { - sysfs_remove_group(&hdev->dev.kobj, - &ntrig_attribute_group); hid_hw_stop(hdev); kfree(hid_get_drvdata(hdev)); } +#define NTRIG_DEVICE(id) \ + { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, id), \ + .driver_data = NTRIG_DUPLICATE_USAGES } + static const struct hid_device_id ntrig_devices[] = { - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_1), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_2), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_3), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_4), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_5), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_6), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_7), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_8), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_9), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_10), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_11), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_12), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_13), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_14), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_15), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_16), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_17), - .driver_data = NTRIG_DUPLICATE_USAGES }, - { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18), - .driver_data = NTRIG_DUPLICATE_USAGES }, + NTRIG_DEVICE(0x0001), { } }; MODULE_DEVICE_TABLE(hid, ntrig_devices); --- linux-2.6.35.orig/drivers/hid/hid-core.c +++ linux-2.6.35/drivers/hid/hid-core.c @@ -1243,6 +1243,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICMOUSE) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICTRACKPAD) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_ANSI) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_ISO) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER_ANSI) }, --- linux-2.6.35.orig/drivers/hid/hid-3m-pct.c +++ linux-2.6.35/drivers/hid/hid-3m-pct.c @@ -24,15 +24,24 @@ #include "hid-ids.h" +#define MAX_SLOTS 60 +#define MAX_TRKID USHRT_MAX +#define MAX_EVENTS 360 +#define SN_MOVE 2048 +#define SN_WIDTH 128 + struct mmm_finger { __s32 x, y, w, h; - __u8 rank; + __u16 id; + bool prev_touch; bool touch, valid; }; struct mmm_data { - struct mmm_finger f[10]; - __u8 curid, num; + struct mmm_finger f[MAX_SLOTS]; + __u16 id; + __u8 curid; + __u8 nexp, nreal; bool touch, valid; }; @@ -40,6 +49,10 @@ struct hid_field *field, struct hid_usage *usage, unsigned long **bit, int *max) { + int f1 = field->logical_minimum; + int f2 = field->logical_maximum; + int df = f2 - f1; + switch (usage->hid & HID_USAGE_PAGE) { case HID_UP_BUTTON: @@ -50,18 +63,20 @@ case HID_GD_X: hid_map_usage(hi, usage, bit, max, EV_ABS, ABS_MT_POSITION_X); + input_set_abs_params(hi->input, ABS_MT_POSITION_X, + f1, f2, df / SN_MOVE, 0); /* touchscreen emulation */ input_set_abs_params(hi->input, ABS_X, - field->logical_minimum, - field->logical_maximum, 0, 0); + f1, f2, df / SN_MOVE, 0); return 1; case HID_GD_Y: hid_map_usage(hi, usage, bit, max, EV_ABS, ABS_MT_POSITION_Y); + input_set_abs_params(hi->input, ABS_MT_POSITION_Y, + f1, f2, df / SN_MOVE, 0); /* touchscreen emulation */ input_set_abs_params(hi->input, ABS_Y, - field->logical_minimum, - field->logical_maximum, 0, 0); + f1, f2, df / SN_MOVE, 0); return 1; } return 0; @@ -81,21 +96,31 @@ case HID_DG_TIPSWITCH: /* touchscreen emulation */ hid_map_usage(hi, usage, bit, max, EV_KEY, BTN_TOUCH); + input_set_capability(hi->input, EV_KEY, BTN_TOUCH); return 1; case HID_DG_WIDTH: hid_map_usage(hi, usage, bit, max, EV_ABS, ABS_MT_TOUCH_MAJOR); + input_set_abs_params(hi->input, ABS_MT_TOUCH_MAJOR, + f1, f2, df / SN_WIDTH, 0); return 1; case HID_DG_HEIGHT: hid_map_usage(hi, usage, bit, max, EV_ABS, ABS_MT_TOUCH_MINOR); + input_set_abs_params(hi->input, ABS_MT_TOUCH_MINOR, + f1, f2, df / SN_WIDTH, 0); input_set_abs_params(hi->input, ABS_MT_ORIENTATION, 1, 1, 0, 0); return 1; case HID_DG_CONTACTID: - field->logical_maximum = 59; + field->logical_maximum = MAX_TRKID; hid_map_usage(hi, usage, bit, max, EV_ABS, ABS_MT_TRACKING_ID); + input_set_abs_params(hi->input, ABS_MT_TRACKING_ID, + 0, MAX_TRKID, 0, 0); + if (!hi->input->mt) + input_mt_create_slots(hi->input, MAX_SLOTS); + input_set_events_per_packet(hi->input, MAX_EVENTS); return 1; } /* let hid-input decide for the others */ @@ -113,10 +138,10 @@ struct hid_field *field, struct hid_usage *usage, unsigned long **bit, int *max) { + /* tell hid-input to skip setup of these event types */ if (usage->type == EV_KEY || usage->type == EV_ABS) - clear_bit(usage->code, *bit); - - return 0; + set_bit(usage->type, hi->input->evbit); + return -1; } /* @@ -126,70 +151,49 @@ static void mmm_filter_event(struct mmm_data *md, struct input_dev *input) { struct mmm_finger *oldest = 0; - bool pressed = false, released = false; int i; - - /* - * we need to iterate on all fingers to decide if we have a press - * or a release event in our touchscreen emulation. - */ - for (i = 0; i < 10; ++i) { + for (i = 0; i < MAX_SLOTS; ++i) { struct mmm_finger *f = &md->f[i]; if (!f->valid) { /* this finger is just placeholder data, ignore */ - } else if (f->touch) { + continue; + } + input_mt_slot(input, i); + if (f->touch) { /* this finger is on the screen */ int wide = (f->w > f->h); - input_event(input, EV_ABS, ABS_MT_TRACKING_ID, i); + /* divided by two to match visual scale of touch */ + int major = max(f->w, f->h) >> 1; + int minor = min(f->w, f->h) >> 1; + + if (!f->prev_touch) + f->id = md->id++; + input_event(input, EV_ABS, ABS_MT_TRACKING_ID, f->id); input_event(input, EV_ABS, ABS_MT_POSITION_X, f->x); input_event(input, EV_ABS, ABS_MT_POSITION_Y, f->y); input_event(input, EV_ABS, ABS_MT_ORIENTATION, wide); - input_event(input, EV_ABS, ABS_MT_TOUCH_MAJOR, - wide ? f->w : f->h); - input_event(input, EV_ABS, ABS_MT_TOUCH_MINOR, - wide ? f->h : f->w); - input_mt_sync(input); - /* - * touchscreen emulation: maintain the age rank - * of this finger, decide if we have a press - */ - if (f->rank == 0) { - f->rank = ++(md->num); - if (f->rank == 1) - pressed = true; - } - if (f->rank == 1) + input_event(input, EV_ABS, ABS_MT_TOUCH_MAJOR, major); + input_event(input, EV_ABS, ABS_MT_TOUCH_MINOR, minor); + /* touchscreen emulation: pick the oldest contact */ + if (!oldest || ((f->id - oldest->id) & (SHRT_MAX + 1))) oldest = f; } else { /* this finger took off the screen */ - /* touchscreen emulation: maintain age rank of others */ - int j; - - for (j = 0; j < 10; ++j) { - struct mmm_finger *g = &md->f[j]; - if (g->rank > f->rank) { - g->rank--; - if (g->rank == 1) - oldest = g; - } - } - f->rank = 0; - --(md->num); - if (md->num == 0) - released = true; + input_event(input, EV_ABS, ABS_MT_TRACKING_ID, -1); } + f->prev_touch = f->touch; f->valid = 0; } /* touchscreen emulation */ if (oldest) { - if (pressed) - input_event(input, EV_KEY, BTN_TOUCH, 1); + input_event(input, EV_KEY, BTN_TOUCH, 1); input_event(input, EV_ABS, ABS_X, oldest->x); input_event(input, EV_ABS, ABS_Y, oldest->y); - } else if (released) { + } else { input_event(input, EV_KEY, BTN_TOUCH, 0); } + input_sync(input); } /* @@ -223,10 +227,12 @@ md->f[md->curid].h = value; break; case HID_DG_CONTACTID: + value = clamp_val(value, 0, MAX_SLOTS - 1); if (md->valid) { md->curid = value; md->f[value].touch = md->touch; md->f[value].valid = 1; + md->nreal++; } break; case HID_GD_X: @@ -238,7 +244,12 @@ md->f[md->curid].y = value; break; case HID_DG_CONTACTCOUNT: - mmm_filter_event(md, input); + if (value) + md->nexp = value; + if (md->nreal >= md->nexp) { + mmm_filter_event(md, input); + md->nreal = 0; + } break; } } @@ -255,6 +266,8 @@ int ret; struct mmm_data *md; + hdev->quirks |= HID_QUIRK_NO_INPUT_SYNC; + md = kzalloc(sizeof(struct mmm_data), GFP_KERNEL); if (!md) { dev_err(&hdev->dev, "cannot allocate 3M data\n"); --- linux-2.6.35.orig/drivers/hid/hid-input.c +++ linux-2.6.35/drivers/hid/hid-input.c @@ -534,6 +534,9 @@ input_set_abs_params(input, usage->code, a, b, (b - a) >> 8, (b - a) >> 4); else input_set_abs_params(input, usage->code, a, b, 0, 0); + /* use a larger default input buffer for MT devices */ + if (usage->code == ABS_MT_POSITION_X && input->hint_events_per_packet == 0) + input_set_events_per_packet(input, 60); } if (usage->type == EV_ABS && @@ -653,6 +656,9 @@ { struct hid_input *hidinput; + if (hid->quirks & HID_QUIRK_NO_INPUT_SYNC) + return; + list_for_each_entry(hidinput, &hid->inputs, list) input_sync(hidinput->input); } --- linux-2.6.35.orig/drivers/hid/hid-magicmouse.c +++ linux-2.6.35/drivers/hid/hid-magicmouse.c @@ -2,6 +2,7 @@ * Apple "Magic" Wireless Mouse driver * * Copyright (c) 2010 Michael Poole + * Copyright (c) 2010 Chase Douglas */ /* @@ -30,6 +31,21 @@ module_param(emulate_scroll_wheel, bool, 0644); MODULE_PARM_DESC(emulate_scroll_wheel, "Emulate a scroll wheel"); +static unsigned int scroll_speed = 32; +static int param_set_scroll_speed(const char *val, struct kernel_param *kp) { + unsigned long speed; + if (!val || strict_strtoul(val, 0, &speed) || speed > 63) + return -EINVAL; + scroll_speed = speed; + return 0; +} +module_param_call(scroll_speed, param_set_scroll_speed, param_get_uint, &scroll_speed, 0644); +MODULE_PARM_DESC(scroll_speed, "Scroll speed, value from 0 (slow) to 63 (fast)"); + +static bool scroll_acceleration = false; +module_param(scroll_acceleration, bool, 0644); +MODULE_PARM_DESC(scroll_acceleration, "Accelerate sequential scroll events"); + static bool report_touches = true; module_param(report_touches, bool, 0644); MODULE_PARM_DESC(report_touches, "Emit touch records (otherwise, only use them for emulation)"); @@ -38,7 +54,9 @@ module_param(report_undeciphered, bool, 0644); MODULE_PARM_DESC(report_undeciphered, "Report undeciphered multi-touch state field using a MSC_RAW event"); -#define TOUCH_REPORT_ID 0x29 +#define TRACKPAD_REPORT_ID 0x28 +#define MOUSE_REPORT_ID 0x29 +#define DOUBLE_REPORT_ID 0xf7 /* These definitions are not precise, but they're close enough. (Bits * 0x03 seem to indicate the aspect ratio of the touch, bits 0x70 seem * to be some kind of bit mask -- 0x20 may be a near-field reading, @@ -50,15 +68,21 @@ #define TOUCH_STATE_START 0x30 #define TOUCH_STATE_DRAG 0x40 +#define SCROLL_ACCEL_DEFAULT 7 + +/* Single touch emulation should only begin when no touches are currently down. + * This is true when single_touch_id is equal to NO_TOUCHES. If multiple touches + * are down and the touch providing for single touch emulation is lifted, + * single_touch_id is equal to SINGLE_TOUCH_UP. While single touch emulation is + * occuring, single_touch_id corresponds with the tracking id of the touch used. + */ +#define NO_TOUCHES -1 +#define SINGLE_TOUCH_UP -2 + /** * struct magicmouse_sc - Tracks Magic Mouse-specific data. * @input: Input device through which we report events. * @quirks: Currently unused. - * @last_timestamp: Timestamp from most recent (18-bit) touch report - * (units of milliseconds over short windows, but seems to - * increase faster when there are no touches). - * @delta_time: 18-bit difference between the two most recent touch - * reports from the mouse. * @ntouches: Number of touches in most recent touch report. * @scroll_accel: Number of consecutive scroll motions. * @scroll_jiffies: Time of last scroll motion. @@ -69,8 +93,6 @@ struct input_dev *input; unsigned long quirks; - int last_timestamp; - int delta_time; int ntouches; int scroll_accel; unsigned long scroll_jiffies; @@ -78,10 +100,12 @@ struct { short x; short y; + short scroll_x; short scroll_y; u8 size; } touches[16]; int tracking_ids[16]; + int single_touch_id; }; static int magicmouse_firm_touch(struct magicmouse_sc *msc) @@ -141,70 +165,107 @@ input_report_key(msc->input, BTN_RIGHT, state & 2); if (state != last_state) - msc->scroll_accel = 0; + msc->scroll_accel = SCROLL_ACCEL_DEFAULT; } static void magicmouse_emit_touch(struct magicmouse_sc *msc, int raw_id, u8 *tdata) { struct input_dev *input = msc->input; - __s32 x_y = tdata[0] << 8 | tdata[1] << 16 | tdata[2] << 24; - int misc = tdata[5] | tdata[6] << 8; - int id = (misc >> 6) & 15; - int x = x_y << 12 >> 20; - int y = -(x_y >> 20); + int id, x, y, size, orientation, touch_major, touch_minor, state, down; + + if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE) { + id = (tdata[6] << 2 | tdata[5] >> 6) & 0xf; + x = (tdata[1] << 28 | tdata[0] << 20) >> 20; + y = -((tdata[2] << 24 | tdata[1] << 16) >> 20); + size = tdata[5] & 0x3f; + orientation = (tdata[6] >> 2) - 32; + touch_major = tdata[3]; + touch_minor = tdata[4]; + state = tdata[7] & TOUCH_STATE_MASK; + down = state != TOUCH_STATE_NONE; + } else { /* USB_DEVICE_ID_APPLE_MAGICTRACKPAD */ + id = (tdata[7] << 2 | tdata[6] >> 6) & 0xf; + x = (tdata[1] << 27 | tdata[0] << 19) >> 19; + y = -((tdata[3] << 30 | tdata[2] << 22 | tdata[1] << 14) >> 19); + size = tdata[6] & 0x3f; + orientation = (tdata[7] >> 2) - 32; + touch_major = tdata[4]; + touch_minor = tdata[5]; + state = tdata[8] & TOUCH_STATE_MASK; + down = state != TOUCH_STATE_NONE; + } /* Store tracking ID and other fields. */ msc->tracking_ids[raw_id] = id; msc->touches[id].x = x; msc->touches[id].y = y; - msc->touches[id].size = misc & 63; + msc->touches[id].size = size; /* If requested, emulate a scroll wheel by detecting small - * vertical touch motions along the middle of the mouse. + * vertical touch motions. */ - if (emulate_scroll_wheel && - middle_button_start < x && x < middle_button_stop) { - static const int accel_profile[] = { - 256, 228, 192, 160, 128, 96, 64, 32, - }; + if (emulate_scroll_wheel) { unsigned long now = jiffies; - int step = msc->touches[id].scroll_y - y; - - /* Reset acceleration after half a second. */ - if (time_after(now, msc->scroll_jiffies + HZ / 2)) - msc->scroll_accel = 0; + int step_x = msc->touches[id].scroll_x - x; + int step_y = msc->touches[id].scroll_y - y; /* Calculate and apply the scroll motion. */ - switch (tdata[7] & TOUCH_STATE_MASK) { + switch (state) { case TOUCH_STATE_START: + msc->touches[id].scroll_x = x; msc->touches[id].scroll_y = y; - msc->scroll_accel = min_t(int, msc->scroll_accel + 1, - ARRAY_SIZE(accel_profile) - 1); + + /* Reset acceleration after half a second. */ + if (scroll_acceleration && time_before(now, + msc->scroll_jiffies + HZ / 2)) + msc->scroll_accel = max_t(int, + msc->scroll_accel - 1, 1); + else + msc->scroll_accel = SCROLL_ACCEL_DEFAULT; + break; case TOUCH_STATE_DRAG: - step = step / accel_profile[msc->scroll_accel]; - if (step != 0) { - msc->touches[id].scroll_y = y; + step_x /= (64 - (int)scroll_speed) * msc->scroll_accel; + if (step_x != 0) { + msc->touches[id].scroll_x -= step_x * + (64 - scroll_speed) * msc->scroll_accel; msc->scroll_jiffies = now; - input_report_rel(input, REL_WHEEL, step); + input_report_rel(input, REL_HWHEEL, -step_x); + } + + step_y /= (64 - (int)scroll_speed) * msc->scroll_accel; + if (step_y != 0) { + msc->touches[id].scroll_y -= step_y * + (64 - scroll_speed) * msc->scroll_accel; + msc->scroll_jiffies = now; + input_report_rel(input, REL_WHEEL, step_y); } break; } } - /* Generate the input events for this touch. */ - if (report_touches) { - int orientation = (misc >> 10) - 32; + if (down) { + msc->ntouches++; + if (msc->single_touch_id == NO_TOUCHES) + msc->single_touch_id = id; + } else if (msc->single_touch_id == id) + msc->single_touch_id = SINGLE_TOUCH_UP; + /* Generate the input events for this touch. */ + if (report_touches && down) { input_report_abs(input, ABS_MT_TRACKING_ID, id); - input_report_abs(input, ABS_MT_TOUCH_MAJOR, tdata[3]); - input_report_abs(input, ABS_MT_TOUCH_MINOR, tdata[4]); + input_report_abs(input, ABS_MT_TOUCH_MAJOR, touch_major << 2); + input_report_abs(input, ABS_MT_TOUCH_MINOR, touch_minor << 2); input_report_abs(input, ABS_MT_ORIENTATION, orientation); input_report_abs(input, ABS_MT_POSITION_X, x); input_report_abs(input, ABS_MT_POSITION_Y, y); - if (report_undeciphered) - input_event(input, EV_MSC, MSC_RAW, tdata[7]); + if (report_undeciphered) { + if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE) + input_event(input, EV_MSC, MSC_RAW, tdata[7]); + else /* USB_DEVICE_ID_APPLE_MAGICTRACKPAD */ + input_event(input, EV_MSC, MSC_RAW, tdata[8]); + } input_mt_sync(input); } @@ -215,7 +276,7 @@ { struct magicmouse_sc *msc = hid_get_drvdata(hdev); struct input_dev *input = msc->input; - int x, y, ts, ii, clicks; + int x = 0, y = 0, ii, clicks = 0, npoints; switch (data[0]) { case 0x10: @@ -225,16 +286,41 @@ y = (__s16)(data[4] | data[5] << 8); clicks = data[1]; break; - case TOUCH_REPORT_ID: + case TRACKPAD_REPORT_ID: + /* Expect four bytes of prefix, and N*9 bytes of touch data. */ + if (size < 4 || ((size - 4) % 9) != 0) + return 0; + npoints = (size - 4) / 9; + msc->ntouches = 0; + for (ii = 0; ii < npoints; ii++) + magicmouse_emit_touch(msc, ii, data + ii * 9 + 4); + + /* We don't need an MT sync here because trackpad emits a + * BTN_TOUCH event in a new frame when all touches are released. + */ + if (msc->ntouches == 0) + msc->single_touch_id = NO_TOUCHES; + + clicks = data[1]; + + /* The following bits provide a device specific timestamp. They + * are unused here. + * + * ts = data[1] >> 6 | data[2] << 2 | data[3] << 10; + */ + break; + case MOUSE_REPORT_ID: /* Expect six bytes of prefix, and N*8 bytes of touch data. */ if (size < 6 || ((size - 6) % 8) != 0) return 0; - ts = data[3] >> 6 | data[4] << 2 | data[5] << 10; - msc->delta_time = (ts - msc->last_timestamp) & 0x3ffff; - msc->last_timestamp = ts; - msc->ntouches = (size - 6) / 8; - for (ii = 0; ii < msc->ntouches; ii++) + npoints = (size - 6) / 8; + msc->ntouches = 0; + for (ii = 0; ii < npoints; ii++) magicmouse_emit_touch(msc, ii, data + ii * 8 + 6); + + if (report_touches && msc->ntouches == 0) + input_mt_sync(input); + /* When emulating three-button mode, it is important * to have the current touch information before * generating a click event. @@ -242,6 +328,20 @@ x = (signed char)data[1]; y = (signed char)data[2]; clicks = data[3]; + + /* The following bits provide a device specific timestamp. They + * are unused here. + * + * ts = data[3] >> 6 | data[4] << 2 | data[5] << 10; + */ + break; + case DOUBLE_REPORT_ID: + /* Sometimes the trackpad sends two touch reports in one + * packet. + */ + magicmouse_raw_event(hdev, report, data + 2, data[1]); + magicmouse_raw_event(hdev, report, data + 2 + data[1], + size - 2 - data[1]); break; case 0x20: /* Theoretically battery status (0-100), but I have * never seen it -- maybe it is only upon request. @@ -254,9 +354,25 @@ return 0; } - magicmouse_emit_buttons(msc, clicks & 3); - input_report_rel(input, REL_X, x); - input_report_rel(input, REL_Y, y); + if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE) { + magicmouse_emit_buttons(msc, clicks & 3); + input_report_rel(input, REL_X, x); + input_report_rel(input, REL_Y, y); + } else { /* USB_DEVICE_ID_APPLE_MAGICTRACKPAD */ + input_report_key(input, BTN_MOUSE, clicks & 1); + input_report_key(input, BTN_TOUCH, msc->ntouches > 0); + input_report_key(input, BTN_TOOL_FINGER, msc->ntouches == 1); + input_report_key(input, BTN_TOOL_DOUBLETAP, msc->ntouches == 2); + input_report_key(input, BTN_TOOL_TRIPLETAP, msc->ntouches == 3); + input_report_key(input, BTN_TOOL_QUADTAP, msc->ntouches == 4); + if (msc->single_touch_id >= 0) { + input_report_abs(input, ABS_X, + msc->touches[msc->single_touch_id].x); + input_report_abs(input, ABS_Y, + msc->touches[msc->single_touch_id].y); + } + } + input_sync(input); return 1; } @@ -292,17 +408,28 @@ input->dev.parent = hdev->dev.parent; __set_bit(EV_KEY, input->evbit); - __set_bit(BTN_LEFT, input->keybit); - __set_bit(BTN_RIGHT, input->keybit); - if (emulate_3button) - __set_bit(BTN_MIDDLE, input->keybit); - __set_bit(BTN_TOOL_FINGER, input->keybit); - - __set_bit(EV_REL, input->evbit); - __set_bit(REL_X, input->relbit); - __set_bit(REL_Y, input->relbit); - if (emulate_scroll_wheel) - __set_bit(REL_WHEEL, input->relbit); + + if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE) { + __set_bit(BTN_LEFT, input->keybit); + __set_bit(BTN_RIGHT, input->keybit); + if (emulate_3button) + __set_bit(BTN_MIDDLE, input->keybit); + + __set_bit(EV_REL, input->evbit); + __set_bit(REL_X, input->relbit); + __set_bit(REL_Y, input->relbit); + if (emulate_scroll_wheel) { + __set_bit(REL_WHEEL, input->relbit); + __set_bit(REL_HWHEEL, input->relbit); + } + } else { /* USB_DEVICE_ID_APPLE_MAGICTRACKPAD */ + __set_bit(BTN_MOUSE, input->keybit); + __set_bit(BTN_TOOL_FINGER, input->keybit); + __set_bit(BTN_TOOL_DOUBLETAP, input->keybit); + __set_bit(BTN_TOOL_TRIPLETAP, input->keybit); + __set_bit(BTN_TOOL_QUADTAP, input->keybit); + __set_bit(BTN_TOUCH, input->keybit); + } if (report_touches) { __set_bit(EV_ABS, input->evbit); @@ -311,16 +438,26 @@ input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255, 4, 0); input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255, 4, 0); input_set_abs_params(input, ABS_MT_ORIENTATION, -32, 31, 1, 0); - input_set_abs_params(input, ABS_MT_POSITION_X, -1100, 1358, - 4, 0); + /* Note: Touch Y position from the device is inverted relative * to how pointer motion is reported (and relative to how USB * HID recommends the coordinates work). This driver keeps * the origin at the same position, and just uses the additive * inverse of the reported Y. */ - input_set_abs_params(input, ABS_MT_POSITION_Y, -1589, 2047, - 4, 0); + if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE) { + input_set_abs_params(input, ABS_MT_POSITION_X, -1100, + 1358, 4, 0); + input_set_abs_params(input, ABS_MT_POSITION_Y, -1589, + 2047, 4, 0); + } else { /* USB_DEVICE_ID_APPLE_MAGICTRACKPAD */ + input_set_abs_params(input, ABS_X, -2909, 3167, 4, 0); + input_set_abs_params(input, ABS_Y, -2456, 2565, 4, 0); + input_set_abs_params(input, ABS_MT_POSITION_X, -2909, + 3167, 4, 0); + input_set_abs_params(input, ABS_MT_POSITION_Y, -2456, + 2565, 4, 0); + } } if (report_undeciphered) { @@ -332,8 +469,7 @@ static int magicmouse_probe(struct hid_device *hdev, const struct hid_device_id *id) { - __u8 feature_1[] = { 0xd7, 0x01 }; - __u8 feature_2[] = { 0xf8, 0x01, 0x32 }; + __u8 feature[] = { 0xd7, 0x01 }; struct input_dev *input; struct magicmouse_sc *msc; struct hid_report *report; @@ -345,25 +481,43 @@ return -ENOMEM; } + msc->scroll_accel = SCROLL_ACCEL_DEFAULT; + msc->quirks = id->driver_data; hid_set_drvdata(hdev, msc); + msc->single_touch_id = NO_TOUCHES; + ret = hid_parse(hdev); if (ret) { dev_err(&hdev->dev, "magicmouse hid parse failed\n"); goto err_free; } - ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT); + /* When registering a hid device, one of hidinput, hidraw, or hiddev + * subsystems must claim the device. We are bypassing hidinput due to + * our raw event processing, and hidraw and hiddev may not claim the + * device. We get around this by telling hid_hw_start that input has + * claimed the device already, and then flipping the bit back. + */ + hdev->claimed = HID_CLAIMED_INPUT; + ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT & ~HID_CONNECT_HIDINPUT); + hdev->claimed &= ~HID_CLAIMED_INPUT; if (ret) { dev_err(&hdev->dev, "magicmouse hw start failed\n"); goto err_free; } - /* we are handling the input ourselves */ - hidinput_disconnect(hdev); + if (id->product == USB_DEVICE_ID_APPLE_MAGICMOUSE) + report = hid_register_report(hdev, HID_INPUT_REPORT, + MOUSE_REPORT_ID); + else { /* USB_DEVICE_ID_APPLE_MAGICTRACKPAD */ + report = hid_register_report(hdev, HID_INPUT_REPORT, + TRACKPAD_REPORT_ID); + report = hid_register_report(hdev, HID_INPUT_REPORT, + DOUBLE_REPORT_ID); + } - report = hid_register_report(hdev, HID_INPUT_REPORT, TOUCH_REPORT_ID); if (!report) { dev_err(&hdev->dev, "unable to register touch report\n"); ret = -ENOMEM; @@ -371,17 +525,10 @@ } report->size = 6; - ret = hdev->hid_output_raw_report(hdev, feature_1, sizeof(feature_1), + ret = hdev->hid_output_raw_report(hdev, feature, sizeof(feature), HID_FEATURE_REPORT); - if (ret != sizeof(feature_1)) { - dev_err(&hdev->dev, "unable to request touch data (1:%d)\n", - ret); - goto err_stop_hw; - } - ret = hdev->hid_output_raw_report(hdev, feature_2, - sizeof(feature_2), HID_FEATURE_REPORT); - if (ret != sizeof(feature_2)) { - dev_err(&hdev->dev, "unable to request touch data (2:%d)\n", + if (ret != sizeof(feature)) { + dev_err(&hdev->dev, "unable to request touch data (%d)\n", ret); goto err_stop_hw; } @@ -421,8 +568,10 @@ } static const struct hid_device_id magic_mice[] = { - { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICMOUSE), - .driver_data = 0 }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, + USB_DEVICE_ID_APPLE_MAGICMOUSE), .driver_data = 0 }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, + USB_DEVICE_ID_APPLE_MAGICTRACKPAD), .driver_data = 0 }, { } }; MODULE_DEVICE_TABLE(hid, magic_mice); --- linux-2.6.35.orig/drivers/hid/hid-ids.h +++ linux-2.6.35/drivers/hid/hid-ids.h @@ -61,6 +61,7 @@ #define USB_VENDOR_ID_APPLE 0x05ac #define USB_DEVICE_ID_APPLE_MIGHTYMOUSE 0x0304 #define USB_DEVICE_ID_APPLE_MAGICMOUSE 0x030d +#define USB_DEVICE_ID_APPLE_MAGICTRACKPAD 0x030e #define USB_DEVICE_ID_APPLE_FOUNTAIN_ANSI 0x020e #define USB_DEVICE_ID_APPLE_FOUNTAIN_ISO 0x020f #define USB_DEVICE_ID_APPLE_GEYSER_ANSI 0x0214 --- linux-2.6.35.orig/drivers/hid/usbhid/hid-core.c +++ linux-2.6.35/drivers/hid/usbhid/hid-core.c @@ -828,6 +828,7 @@ } } else { int skipped_report_id = 0; + int report_id = buf[0]; if (buf[0] == 0x0) { /* Don't send the Report ID */ buf++; @@ -837,7 +838,7 @@ ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), HID_REQ_SET_REPORT, USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, - ((report_type + 1) << 8) | *buf, + ((report_type + 1) << 8) | report_id, interface->desc.bInterfaceNumber, buf, count, USB_CTRL_SET_TIMEOUT); /* count also the report id, if this was a numbered report. */ --- linux-2.6.35.orig/drivers/parport/Kconfig +++ linux-2.6.35/drivers/parport/Kconfig @@ -36,7 +36,7 @@ config PARPORT_PC tristate "PC-style hardware" depends on (!SPARC64 || PCI) && !SPARC32 && !M32R && !FRV && \ - (!M68K || ISA) && !MN10300 && !AVR32 && !BLACKFIN + (!M68K || ISA) && !MN10300 && !AVR32 && !BLACKFIN && !ARCH_OMAP ---help--- You should say Y here if you have a PC-style parallel port. All IBM PC compatible computers and some Alphas have PC-style --- linux-2.6.35.orig/drivers/pnp/isapnp/core.c +++ linux-2.6.35/drivers/pnp/isapnp/core.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include "../base.h" @@ -1001,7 +1002,7 @@ .disable = isapnp_disable_resources, }; -static int __init isapnp_init(void) +static int __init real_isapnp_init(void) { int cards; struct pnp_card *card; @@ -1095,6 +1096,15 @@ return 0; } +static void __init async_isapnp_init(void *unused, async_cookie_t cookie) +{ + (void)real_isapnp_init(); +} + +static int __init isapnp_init(void) +{ + async_schedule(async_isapnp_init, NULL); +} device_initcall(isapnp_init); /* format is: noisapnp */ --- linux-2.6.35.orig/drivers/parisc/led.c +++ linux-2.6.35/drivers/parisc/led.c @@ -176,16 +176,18 @@ size_t count, loff_t *pos) { void *data = PDE(file->f_path.dentry->d_inode)->data; - char *cur, lbuf[count + 1]; + char *cur, lbuf[32]; int d; if (!capable(CAP_SYS_ADMIN)) return -EACCES; - memset(lbuf, 0, count + 1); + if (count >= sizeof(lbuf)) + count = sizeof(lbuf)-1; if (copy_from_user(lbuf, buf, count)) return -EFAULT; + lbuf[count] = 0; cur = lbuf; --- linux-2.6.35.orig/drivers/acpi/battery.c +++ linux-2.6.35/drivers/acpi/battery.c @@ -890,6 +890,18 @@ #endif } +static LIST_HEAD(acpi_battery_domain); + +static void acpi_battery_update_async(struct acpi_device *device, async_cookie_t cookie) +{ + struct acpi_battery *battery = acpi_driver_data(device); + + acpi_battery_update(battery); + printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n", + ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device), + device->status.battery_present ? "present" : "absent"); +} + static int acpi_battery_add(struct acpi_device *device) { int result = 0; @@ -908,14 +920,14 @@ if (ACPI_SUCCESS(acpi_get_handle(battery->device->handle, "_BIX", &handle))) set_bit(ACPI_BATTERY_XINFO_PRESENT, &battery->flags); - acpi_battery_update(battery); + /* Mark the battery for update at first access. */ + battery->update_time = 0; #ifdef CONFIG_ACPI_PROCFS_POWER result = acpi_battery_add_fs(device); #endif if (!result) { - printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n", - ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device), - device->status.battery_present ? "present" : "absent"); + async_schedule_domain(acpi_battery_update_async, device, &acpi_battery_domain); + } else { #ifdef CONFIG_ACPI_PROCFS_POWER acpi_battery_remove_fs(device); @@ -931,6 +943,10 @@ if (!device || !acpi_driver_data(device)) return -EINVAL; + + /* Ensure all async updates are complete before freeing the battery. */ + async_synchronize_full_domain(&acpi_battery_domain); + battery = acpi_driver_data(device); #ifdef CONFIG_ACPI_PROCFS_POWER acpi_battery_remove_fs(device); @@ -968,27 +984,21 @@ }, }; -static void __init acpi_battery_init_async(void *unused, async_cookie_t cookie) +static int __init acpi_battery_init(void) { if (acpi_disabled) return; #ifdef CONFIG_ACPI_PROCFS_POWER acpi_battery_dir = acpi_lock_battery_dir(); if (!acpi_battery_dir) - return; + return -1; #endif if (acpi_bus_register_driver(&acpi_battery_driver) < 0) { #ifdef CONFIG_ACPI_PROCFS_POWER acpi_unlock_battery_dir(acpi_battery_dir); #endif - return; + return -1; } - return; -} - -static int __init acpi_battery_init(void) -{ - async_schedule(acpi_battery_init_async, NULL); return 0; } --- linux-2.6.35.orig/drivers/acpi/video.c +++ linux-2.6.35/drivers/acpi/video.c @@ -2212,7 +2212,7 @@ static int acpi_video_bus_start_devices(struct acpi_video_bus *video) { - return acpi_video_bus_DOS(video, 0, 0); + return acpi_video_bus_DOS(video, 0, 1); } static int acpi_video_bus_stop_devices(struct acpi_video_bus *video) --- linux-2.6.35.orig/drivers/acpi/acpica/aclocal.h +++ linux-2.6.35/drivers/acpi/acpica/aclocal.h @@ -853,6 +853,7 @@ ACPI_BITMASK_POWER_BUTTON_STATUS | \ ACPI_BITMASK_SLEEP_BUTTON_STATUS | \ ACPI_BITMASK_RT_CLOCK_STATUS | \ + ACPI_BITMASK_PCIEXP_WAKE_DISABLE | \ ACPI_BITMASK_WAKE_STATUS) #define ACPI_BITMASK_TIMER_ENABLE 0x0001 --- linux-2.6.35.orig/drivers/acpi/apei/erst.c +++ linux-2.6.35/drivers/acpi/apei/erst.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include "apei-internal.h" --- linux-2.6.35.orig/drivers/gpu/drm/drm_drv.c +++ linux-2.6.35/drivers/gpu/drm/drm_drv.c @@ -502,7 +502,9 @@ retcode = -EFAULT; goto err_i1; } - } + } else + memset(kdata, 0, _IOC_SIZE(cmd)); + if (ioctl->flags & DRM_UNLOCKED) retcode = func(dev, kdata, file_priv); else { --- linux-2.6.35.orig/drivers/gpu/drm/drm_crtc_helper.c +++ linux-2.6.35/drivers/gpu/drm/drm_crtc_helper.c @@ -610,13 +610,13 @@ mode_changed = true; if (mode_changed) { - old_fb = set->crtc->fb; - set->crtc->fb = set->fb; set->crtc->enabled = (set->mode != NULL); if (set->mode != NULL) { DRM_DEBUG_KMS("attempting to set mode from" " userspace\n"); drm_mode_debug_printmodeline(set->mode); + old_fb = set->crtc->fb; + set->crtc->fb = set->fb; if (!drm_crtc_helper_set_mode(set->crtc, set->mode, set->x, set->y, old_fb)) { --- linux-2.6.35.orig/drivers/gpu/drm/drm_fops.c +++ linux-2.6.35/drivers/gpu/drm/drm_fops.c @@ -125,7 +125,8 @@ minor = idr_find(&drm_minors_idr, minor_id); if (!minor) return -ENODEV; - + if (IS_ERR(minor)) + return PTR_ERR(minor); if (!(dev = minor->dev)) return -ENODEV; @@ -180,7 +181,10 @@ minor = idr_find(&drm_minors_idr, minor_id); if (!minor) goto out; - + if (IS_ERR(minor)) { + err = PTR_ERR(minor); + goto out; + } if (!(dev = minor->dev)) goto out; --- linux-2.6.35.orig/drivers/gpu/drm/drm_stub.c +++ linux-2.6.35/drivers/gpu/drm/drm_stub.c @@ -345,7 +345,7 @@ new_minor->index = minor_id; INIT_LIST_HEAD(&new_minor->master_list); - idr_replace(&drm_minors_idr, new_minor, minor_id); + idr_replace(&drm_minors_idr, ERR_PTR(-EAGAIN), minor_id); if (type == DRM_MINOR_LEGACY) { ret = drm_proc_init(new_minor, minor_id, drm_proc_root); @@ -445,6 +445,10 @@ list_add_tail(&dev->driver_item, &driver->device_list); + if (drm_core_check_feature(dev, DRIVER_MODESET)) + idr_replace(&drm_minors_idr, dev->control, dev->control->index); + idr_replace(&drm_minors_idr, dev->primary, dev->primary->index); + DRM_INFO("Initialized %s %d.%d.%d %s for %s on minor %d\n", driver->name, driver->major, driver->minor, driver->patchlevel, driver->date, pci_name(pdev), dev->primary->index); --- linux-2.6.35.orig/drivers/gpu/drm/i915/intel_display.c +++ linux-2.6.35/drivers/gpu/drm/i915/intel_display.c @@ -29,6 +29,7 @@ #include #include #include +#include #include "drmP.h" #include "intel_drv.h" #include "i915_drm.h" @@ -42,6 +43,7 @@ bool intel_pipe_has_type (struct drm_crtc *crtc, int type); static void intel_update_watermarks(struct drm_device *dev); static void intel_increase_pllclock(struct drm_crtc *crtc, bool schedule); +static void intel_crtc_update_cursor(struct drm_crtc *crtc); typedef struct { /* given values */ @@ -1279,7 +1281,12 @@ switch (obj_priv->tiling_mode) { case I915_TILING_NONE: - alignment = 64 * 1024; + if (IS_BROADWATER(dev) || IS_CRESTLINE(dev)) + alignment = 128 * 1024; + else if (IS_I965G(dev)) + alignment = 4 * 1024; + else + alignment = 64 * 1024; break; case I915_TILING_X: /* pin() will align the object as required by fence */ @@ -1457,29 +1464,6 @@ return 0; } -/* Disable the VGA plane that we never use */ -static void i915_disable_vga (struct drm_device *dev) -{ - struct drm_i915_private *dev_priv = dev->dev_private; - u8 sr1; - u32 vga_reg; - - if (HAS_PCH_SPLIT(dev)) - vga_reg = CPU_VGACNTRL; - else - vga_reg = VGACNTRL; - - if (I915_READ(vga_reg) & VGA_DISP_DISABLE) - return; - - I915_WRITE8(VGA_SR_INDEX, 1); - sr1 = I915_READ8(VGA_SR_DATA); - I915_WRITE8(VGA_SR_DATA, sr1 | (1 << 5)); - udelay(100); - - I915_WRITE(vga_reg, VGA_DISP_DISABLE); -} - static void ironlake_disable_pll_edp (struct drm_crtc *crtc) { struct drm_device *dev = crtc->dev; @@ -1501,6 +1485,7 @@ dpa_ctl = I915_READ(DP_A); dpa_ctl |= DP_PLL_ENABLE; I915_WRITE(DP_A, dpa_ctl); + POSTING_READ(DP_A); udelay(200); } @@ -1994,8 +1979,6 @@ I915_READ(dspbase_reg); } - i915_disable_vga(dev); - /* disable cpu pipe, disable after all planes disabled */ temp = I915_READ(pipeconf_reg); if ((temp & PIPEACONF_ENABLE) != 0) { @@ -2253,9 +2236,6 @@ dev_priv->display.disable_fbc) dev_priv->display.disable_fbc(dev); - /* Disable the VGA plane that we never use */ - i915_disable_vga(dev); - /* Disable display plane */ temp = I915_READ(dspcntr_reg); if ((temp & DISPLAY_PLANE_ENABLE) != 0) { @@ -2312,6 +2292,9 @@ int pipe = intel_crtc->pipe; bool enabled; + if (intel_crtc->dpms_mode == mode) + return; + dev_priv->display.dpms(crtc, mode); intel_crtc->dpms_mode = mode; @@ -2371,11 +2354,19 @@ struct drm_display_mode *adjusted_mode) { struct drm_device *dev = crtc->dev; + if (HAS_PCH_SPLIT(dev)) { /* FDI link clock is fixed at 2.7G */ if (mode->clock * 3 > 27000 * 4) return MODE_CLOCK_HIGH; } + + /* XXX some encoders set the crtcinfo, others don't. + * Obviously we need some form of conflict resolution here... + */ + if (adjusted_mode->crtc_htotal == 0) + drm_mode_set_crtcinfo(adjusted_mode, 0); + return true; } @@ -3201,8 +3192,7 @@ reg_value = I915_READ(WM1_LP_ILK); reg_value &= ~(WM1_LP_LATENCY_MASK | WM1_LP_SR_MASK | WM1_LP_CURSOR_MASK); - reg_value |= WM1_LP_SR_EN | - (ilk_sr_latency << WM1_LP_LATENCY_SHIFT) | + reg_value |= (ilk_sr_latency << WM1_LP_LATENCY_SHIFT) | (sr_wm << WM1_LP_SR_SHIFT) | cursor_wm; I915_WRITE(WM1_LP_ILK, reg_value); @@ -3403,6 +3393,9 @@ return -EINVAL; } + /* Ensure that the cursor is valid for the new mode before changing... */ + intel_crtc_update_cursor(crtc); + if (is_lvds && dev_priv->lvds_downclock_avail) { has_reduced_clock = limit->find_pll(limit, crtc, dev_priv->lvds_downclock, @@ -3939,6 +3932,85 @@ } } +/* If no-part of the cursor is visible on the framebuffer, then the GPU may hang... */ +static void intel_crtc_update_cursor(struct drm_crtc *crtc) +{ + struct drm_device *dev = crtc->dev; + struct drm_i915_private *dev_priv = dev->dev_private; + struct intel_crtc *intel_crtc = to_intel_crtc(crtc); + int pipe = intel_crtc->pipe; + int x = intel_crtc->cursor_x; + int y = intel_crtc->cursor_y; + uint32_t base, pos; + bool visible; + + pos = 0; + + if (crtc->fb) { + base = intel_crtc->cursor_addr; + if (x > (int) crtc->fb->width) + base = 0; + + if (y > (int) crtc->fb->height) + base = 0; + } else + base = 0; + + if (x < 0) { + if (x + intel_crtc->cursor_width < 0) + base = 0; + + pos |= CURSOR_POS_SIGN << CURSOR_X_SHIFT; + x = -x; + } + pos |= x << CURSOR_X_SHIFT; + + if (y < 0) { + if (y + intel_crtc->cursor_height < 0) + base = 0; + + pos |= CURSOR_POS_SIGN << CURSOR_Y_SHIFT; + y = -y; + } + pos |= y << CURSOR_Y_SHIFT; + + visible = base != 0; + if (!visible && !intel_crtc->cursor_visble) + return; + + I915_WRITE(pipe == 0 ? CURAPOS : CURBPOS, pos); + if (intel_crtc->cursor_visble != visible) { + uint32_t cntl = I915_READ(pipe == 0 ? CURACNTR : CURBCNTR); + if (base) { + /* Hooray for CUR*CNTR differences */ + if (IS_MOBILE(dev) || IS_I9XX(dev)) { + cntl &= ~(CURSOR_MODE | MCURSOR_PIPE_SELECT); + cntl |= CURSOR_MODE_64_ARGB_AX | MCURSOR_GAMMA_ENABLE; + cntl |= pipe << 28; /* Connect to correct pipe */ + } else { + cntl &= ~(CURSOR_FORMAT_MASK); + cntl |= CURSOR_ENABLE; + cntl |= CURSOR_FORMAT_ARGB | CURSOR_GAMMA_ENABLE; + } + } else { + if (IS_MOBILE(dev) || IS_I9XX(dev)) { + cntl &= ~(CURSOR_MODE | MCURSOR_GAMMA_ENABLE); + cntl |= CURSOR_MODE_DISABLE; + } else { + cntl &= ~(CURSOR_ENABLE | CURSOR_GAMMA_ENABLE); + } + } + I915_WRITE(pipe == 0 ? CURACNTR : CURBCNTR, cntl); + + intel_crtc->cursor_visble = visible; + } + /* and commit changes on next vblank */ + I915_WRITE(pipe == 0 ? CURABASE : CURBBASE, base); + + if (visible) + intel_mark_busy(dev, to_intel_framebuffer(crtc->fb)->obj); +} + static int intel_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv, uint32_t handle, @@ -3949,11 +4021,7 @@ struct intel_crtc *intel_crtc = to_intel_crtc(crtc); struct drm_gem_object *bo; struct drm_i915_gem_object *obj_priv; - int pipe = intel_crtc->pipe; - uint32_t control = (pipe == 0) ? CURACNTR : CURBCNTR; - uint32_t base = (pipe == 0) ? CURABASE : CURBBASE; - uint32_t temp = I915_READ(control); - size_t addr; + uint32_t addr; int ret; DRM_DEBUG_KMS("\n"); @@ -3961,12 +4029,6 @@ /* if we want to turn off the cursor ignore width and height */ if (!handle) { DRM_DEBUG_KMS("cursor off\n"); - if (IS_MOBILE(dev) || IS_I9XX(dev)) { - temp &= ~(CURSOR_MODE | MCURSOR_GAMMA_ENABLE); - temp |= CURSOR_MODE_DISABLE; - } else { - temp &= ~(CURSOR_ENABLE | CURSOR_GAMMA_ENABLE); - } addr = 0; bo = NULL; mutex_lock(&dev->struct_mutex); @@ -4008,7 +4070,8 @@ addr = obj_priv->gtt_offset; } else { - ret = i915_gem_attach_phys_object(dev, bo, (pipe == 0) ? I915_GEM_PHYS_CURSOR_0 : I915_GEM_PHYS_CURSOR_1); + ret = i915_gem_attach_phys_object(dev, bo, + (intel_crtc->pipe == 0) ? I915_GEM_PHYS_CURSOR_0 : I915_GEM_PHYS_CURSOR_1); if (ret) { DRM_ERROR("failed to attach phys object\n"); goto fail_locked; @@ -4019,21 +4082,7 @@ if (!IS_I9XX(dev)) I915_WRITE(CURSIZE, (height << 12) | width); - /* Hooray for CUR*CNTR differences */ - if (IS_MOBILE(dev) || IS_I9XX(dev)) { - temp &= ~(CURSOR_MODE | MCURSOR_PIPE_SELECT); - temp |= CURSOR_MODE_64_ARGB_AX | MCURSOR_GAMMA_ENABLE; - temp |= (pipe << 28); /* Connect to correct pipe */ - } else { - temp &= ~(CURSOR_FORMAT_MASK); - temp |= CURSOR_ENABLE; - temp |= CURSOR_FORMAT_ARGB | CURSOR_GAMMA_ENABLE; - } - finish: - I915_WRITE(control, temp); - I915_WRITE(base, addr); - if (intel_crtc->cursor_bo) { if (dev_priv->info->cursor_needs_physical) { if (intel_crtc->cursor_bo != bo) @@ -4047,6 +4096,10 @@ intel_crtc->cursor_addr = addr; intel_crtc->cursor_bo = bo; + intel_crtc->cursor_width = width; + intel_crtc->cursor_height = height; + + intel_crtc_update_cursor(crtc); return 0; fail_unpin: @@ -4060,34 +4113,12 @@ static int intel_crtc_cursor_move(struct drm_crtc *crtc, int x, int y) { - struct drm_device *dev = crtc->dev; - struct drm_i915_private *dev_priv = dev->dev_private; struct intel_crtc *intel_crtc = to_intel_crtc(crtc); - struct intel_framebuffer *intel_fb; - int pipe = intel_crtc->pipe; - uint32_t temp = 0; - uint32_t adder; - - if (crtc->fb) { - intel_fb = to_intel_framebuffer(crtc->fb); - intel_mark_busy(dev, intel_fb->obj); - } - - if (x < 0) { - temp |= CURSOR_POS_SIGN << CURSOR_X_SHIFT; - x = -x; - } - if (y < 0) { - temp |= CURSOR_POS_SIGN << CURSOR_Y_SHIFT; - y = -y; - } - temp |= x << CURSOR_X_SHIFT; - temp |= y << CURSOR_Y_SHIFT; + intel_crtc->cursor_x = x; + intel_crtc->cursor_y = y; - adder = intel_crtc->cursor_addr; - I915_WRITE((pipe == 0) ? CURAPOS : CURBPOS, temp); - I915_WRITE((pipe == 0) ? CURABASE : CURBBASE, adder); + intel_crtc_update_cursor(crtc); return 0; } @@ -4774,14 +4805,16 @@ work->pending_flip_obj = obj; if (intel_crtc->plane) - flip_mask = I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT; + flip_mask = MI_WAIT_FOR_PLANE_B_FLIP; else - flip_mask = I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT; + flip_mask = MI_WAIT_FOR_PLANE_A_FLIP; - /* Wait for any previous flip to finish */ - if (IS_GEN3(dev)) - while (I915_READ(ISR) & flip_mask) - ; + if (IS_GEN3(dev) || IS_GEN2(dev)) { + BEGIN_LP_RING(2); + OUT_RING(MI_WAIT_FOR_EVENT | flip_mask); + OUT_RING(0); + ADVANCE_LP_RING(); + } /* Offset into the new buffer for cases of shared fbs between CRTCs */ offset = obj_priv->gtt_offset; @@ -4795,12 +4828,18 @@ OUT_RING(offset | obj_priv->tiling_mode); pipesrc = I915_READ(pipesrc_reg); OUT_RING(pipesrc & 0x0fff0fff); - } else { + } else if (IS_GEN3(dev)) { OUT_RING(MI_DISPLAY_FLIP_I915 | MI_DISPLAY_FLIP_PLANE(intel_crtc->plane)); OUT_RING(fb->pitch); OUT_RING(offset); OUT_RING(MI_NOOP); + } else { + OUT_RING(MI_DISPLAY_FLIP | + MI_DISPLAY_FLIP_PLANE(intel_crtc->plane)); + OUT_RING(fb->pitch); + OUT_RING(offset); + OUT_RING(MI_NOOP); } ADVANCE_LP_RING(); @@ -4864,7 +4903,7 @@ dev_priv->pipe_to_crtc_mapping[intel_crtc->pipe] = &intel_crtc->base; intel_crtc->cursor_addr = 0; - intel_crtc->dpms_mode = DRM_MODE_DPMS_OFF; + intel_crtc->dpms_mode = -1; drm_crtc_helper_add(&intel_crtc->base, &intel_helper_funcs); intel_crtc->busy = false; @@ -5371,6 +5410,9 @@ I915_WRITE(DISP_ARB_CTL, (I915_READ(DISP_ARB_CTL) | DISP_FBC_WM_DIS)); + I915_WRITE(WM3_LP_ILK, 0); + I915_WRITE(WM2_LP_ILK, 0); + I915_WRITE(WM1_LP_ILK, 0); } return; } else if (IS_G4X(dev)) { @@ -5591,6 +5633,29 @@ } } +/* Disable the VGA plane that we never use */ +static void i915_disable_vga(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + u8 sr1; + u32 vga_reg; + + if (HAS_PCH_SPLIT(dev)) + vga_reg = CPU_VGACNTRL; + else + vga_reg = VGACNTRL; + + vga_get_uninterruptible(dev->pdev, VGA_RSRC_LEGACY_IO); + outb(1, VGA_SR_INDEX); + sr1 = inb(VGA_SR_DATA); + outb(sr1 | 1<<5, VGA_SR_DATA); + vga_put(dev->pdev, VGA_RSRC_LEGACY_IO); + udelay(300); + + I915_WRITE(vga_reg, VGA_DISP_DISABLE); + POSTING_READ(vga_reg); +} + void intel_modeset_init(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -5639,6 +5704,9 @@ intel_init_clock_gating(dev); + /* Just disable it once at startup */ + i915_disable_vga(dev); + if (IS_IRONLAKE_M(dev)) { ironlake_enable_drps(dev); intel_init_emon(dev); --- linux-2.6.35.orig/drivers/gpu/drm/i915/i915_drv.c +++ linux-2.6.35/drivers/gpu/drm/i915/i915_drv.c @@ -42,7 +42,7 @@ unsigned int i915_fbpercrtc = 0; module_param_named(fbpercrtc, i915_fbpercrtc, int, 0400); -unsigned int i915_powersave = 1; +unsigned int i915_powersave = 0; module_param_named(powersave, i915_powersave, int, 0400); unsigned int i915_lvds_downclock = 0; @@ -61,91 +61,86 @@ .driver_data = (unsigned long) info } static const struct intel_device_info intel_i830_info = { - .is_i8xx = 1, .is_mobile = 1, .cursor_needs_physical = 1, + .gen = 2, .is_i8xx = 1, .is_mobile = 1, .cursor_needs_physical = 1, }; static const struct intel_device_info intel_845g_info = { - .is_i8xx = 1, + .gen = 2, .is_i8xx = 1, }; static const struct intel_device_info intel_i85x_info = { - .is_i8xx = 1, .is_i85x = 1, .is_mobile = 1, + .gen = 2, .is_i8xx = 1, .is_i85x = 1, .is_mobile = 1, .cursor_needs_physical = 1, }; static const struct intel_device_info intel_i865g_info = { - .is_i8xx = 1, + .gen = 2, .is_i8xx = 1, }; static const struct intel_device_info intel_i915g_info = { - .is_i915g = 1, .is_i9xx = 1, .cursor_needs_physical = 1, + .gen = 3, .is_i915g = 1, .is_i9xx = 1, .cursor_needs_physical = 1, }; static const struct intel_device_info intel_i915gm_info = { - .is_i9xx = 1, .is_mobile = 1, + .gen = 3, .is_i9xx = 1, .is_mobile = 1, .cursor_needs_physical = 1, }; static const struct intel_device_info intel_i945g_info = { - .is_i9xx = 1, .has_hotplug = 1, .cursor_needs_physical = 1, + .gen = 3, .is_i9xx = 1, .has_hotplug = 1, .cursor_needs_physical = 1, }; static const struct intel_device_info intel_i945gm_info = { - .is_i945gm = 1, .is_i9xx = 1, .is_mobile = 1, + .gen = 3, .is_i945gm = 1, .is_i9xx = 1, .is_mobile = 1, .has_hotplug = 1, .cursor_needs_physical = 1, }; static const struct intel_device_info intel_i965g_info = { - .is_i965g = 1, .is_i9xx = 1, .has_hotplug = 1, + .gen = 4, .is_broadwater = 1, .is_i965g = 1, .is_i9xx = 1, + .has_hotplug = 1, }; static const struct intel_device_info intel_i965gm_info = { - .is_i965g = 1, .is_mobile = 1, .is_i965gm = 1, .is_i9xx = 1, - .is_mobile = 1, .has_fbc = 1, .has_rc6 = 1, - .has_hotplug = 1, + .gen = 4, .is_crestline = 1, .is_i965g = 1, .is_i965gm = 1, .is_i9xx = 1, + .is_mobile = 1, .has_fbc = 1, .has_rc6 = 1, .has_hotplug = 1, }; static const struct intel_device_info intel_g33_info = { - .is_g33 = 1, .is_i9xx = 1, .need_gfx_hws = 1, - .has_hotplug = 1, + .gen = 3, .is_g33 = 1, .is_i9xx = 1, + .need_gfx_hws = 1, .has_hotplug = 1, }; static const struct intel_device_info intel_g45_info = { - .is_i965g = 1, .is_g4x = 1, .is_i9xx = 1, .need_gfx_hws = 1, - .has_pipe_cxsr = 1, - .has_hotplug = 1, + .gen = 4, .is_i965g = 1, .is_g4x = 1, .is_i9xx = 1, .need_gfx_hws = 1, + .has_pipe_cxsr = 1, .has_hotplug = 1, }; static const struct intel_device_info intel_gm45_info = { - .is_i965g = 1, .is_mobile = 1, .is_g4x = 1, .is_i9xx = 1, + .gen = 4, .is_i965g = 1, .is_g4x = 1, .is_i9xx = 1, .is_mobile = 1, .need_gfx_hws = 1, .has_fbc = 1, .has_rc6 = 1, - .has_pipe_cxsr = 1, - .has_hotplug = 1, + .has_pipe_cxsr = 1, .has_hotplug = 1, }; static const struct intel_device_info intel_pineview_info = { - .is_g33 = 1, .is_pineview = 1, .is_mobile = 1, .is_i9xx = 1, - .need_gfx_hws = 1, - .has_hotplug = 1, + .gen = 3, .is_g33 = 1, .is_pineview = 1, .is_mobile = 1, .is_i9xx = 1, + .need_gfx_hws = 1, .has_hotplug = 1, }; static const struct intel_device_info intel_ironlake_d_info = { - .is_ironlake = 1, .is_i965g = 1, .is_i9xx = 1, .need_gfx_hws = 1, - .has_pipe_cxsr = 1, - .has_hotplug = 1, + .gen = 5, .is_ironlake = 1, .is_i965g = 1, .is_i9xx = 1, + .need_gfx_hws = 1, .has_pipe_cxsr = 1, .has_hotplug = 1, }; static const struct intel_device_info intel_ironlake_m_info = { - .is_ironlake = 1, .is_mobile = 1, .is_i965g = 1, .is_i9xx = 1, - .need_gfx_hws = 1, .has_rc6 = 1, - .has_hotplug = 1, + .gen = 5, .is_ironlake = 1, .is_mobile = 1, .is_i965g = 1, .is_i9xx = 1, + .need_gfx_hws = 1, .has_fbc = 1, .has_rc6 = 1, .has_hotplug = 1, }; static const struct intel_device_info intel_sandybridge_d_info = { - .is_i965g = 1, .is_i9xx = 1, .need_gfx_hws = 1, - .has_hotplug = 1, .is_gen6 = 1, + .gen = 6, .is_i965g = 1, .is_i9xx = 1, + .need_gfx_hws = 1, .has_hotplug = 1, }; static const struct intel_device_info intel_sandybridge_m_info = { - .is_i965g = 1, .is_mobile = 1, .is_i9xx = 1, .need_gfx_hws = 1, - .has_hotplug = 1, .is_gen6 = 1, + .gen = 6, .is_i965g = 1, .is_mobile = 1, .is_i9xx = 1, + .need_gfx_hws = 1, .has_hotplug = 1, }; static const struct pci_device_id pciidlist[] = { @@ -175,12 +170,18 @@ INTEL_VGA_DEVICE(0x2e22, &intel_g45_info), INTEL_VGA_DEVICE(0x2e32, &intel_g45_info), INTEL_VGA_DEVICE(0x2e42, &intel_g45_info), + INTEL_VGA_DEVICE(0x2e92, &intel_g45_info), /* B43_G.1 */ INTEL_VGA_DEVICE(0xa001, &intel_pineview_info), INTEL_VGA_DEVICE(0xa011, &intel_pineview_info), INTEL_VGA_DEVICE(0x0042, &intel_ironlake_d_info), INTEL_VGA_DEVICE(0x0046, &intel_ironlake_m_info), INTEL_VGA_DEVICE(0x0102, &intel_sandybridge_d_info), + INTEL_VGA_DEVICE(0x0112, &intel_sandybridge_d_info), + INTEL_VGA_DEVICE(0x0122, &intel_sandybridge_d_info), INTEL_VGA_DEVICE(0x0106, &intel_sandybridge_m_info), + INTEL_VGA_DEVICE(0x0116, &intel_sandybridge_m_info), + INTEL_VGA_DEVICE(0x0126, &intel_sandybridge_m_info), + INTEL_VGA_DEVICE(0x010A, &intel_sandybridge_d_info), {0, 0, 0} }; --- linux-2.6.35.orig/drivers/gpu/drm/i915/i915_dma.c +++ linux-2.6.35/drivers/gpu/drm/i915/i915_dma.c @@ -40,6 +40,8 @@ #include #include +extern int intel_max_stolen; /* from AGP driver */ + /** * Sets up the hardware status page for devices that need a physical address * in the register. @@ -610,8 +612,10 @@ ret = copy_from_user(cliprects, batch->cliprects, batch->num_cliprects * sizeof(struct drm_clip_rect)); - if (ret != 0) + if (ret != 0) { + ret = -EFAULT; goto fail_free; + } } mutex_lock(&dev->struct_mutex); @@ -652,8 +656,10 @@ return -ENOMEM; ret = copy_from_user(batch_data, cmdbuf->buf, cmdbuf->sz); - if (ret != 0) + if (ret != 0) { + ret = -EFAULT; goto fail_batch_free; + } if (cmdbuf->num_cliprects) { cliprects = kcalloc(cmdbuf->num_cliprects, @@ -666,8 +672,10 @@ ret = copy_from_user(cliprects, cmdbuf->cliprects, cmdbuf->num_cliprects * sizeof(struct drm_clip_rect)); - if (ret != 0) + if (ret != 0) { + ret = -EFAULT; goto fail_clip_free; + } } mutex_lock(&dev->struct_mutex); @@ -875,7 +883,7 @@ int reg = IS_I965G(dev) ? MCHBAR_I965 : MCHBAR_I915; u32 temp_lo, temp_hi = 0; u64 mchbar_addr; - int ret = 0; + int ret; if (IS_I965G(dev)) pci_read_config_dword(dev_priv->bridge_dev, reg + 4, &temp_hi); @@ -885,22 +893,23 @@ /* If ACPI doesn't have it, assume we need to allocate it ourselves */ #ifdef CONFIG_PNP if (mchbar_addr && - pnp_range_reserved(mchbar_addr, mchbar_addr + MCHBAR_SIZE)) { - ret = 0; - goto out; - } + pnp_range_reserved(mchbar_addr, mchbar_addr + MCHBAR_SIZE)) + return 0; #endif /* Get some space for it */ - ret = pci_bus_alloc_resource(dev_priv->bridge_dev->bus, &dev_priv->mch_res, + dev_priv->mch_res.name = "i915 MCHBAR"; + dev_priv->mch_res.flags = IORESOURCE_MEM; + ret = pci_bus_alloc_resource(dev_priv->bridge_dev->bus, + &dev_priv->mch_res, MCHBAR_SIZE, MCHBAR_SIZE, PCIBIOS_MIN_MEM, - 0, pcibios_align_resource, + 0, pcibios_align_resource, dev_priv->bridge_dev); if (ret) { DRM_DEBUG_DRIVER("failed bus alloc: %d\n", ret); dev_priv->mch_res.start = 0; - goto out; + return ret; } if (IS_I965G(dev)) @@ -909,8 +918,7 @@ pci_write_config_dword(dev_priv->bridge_dev, reg, lower_32_bits(dev_priv->mch_res.start)); -out: - return ret; + return 0; } /* Setup MCHBAR if possible, return true if we should disable it again */ @@ -2071,6 +2079,10 @@ goto free_priv; } + /* overlay on gen2 is broken and can't address above 1G */ + if (IS_GEN2(dev)) + dma_set_coherent_mask(&dev->pdev->dev, DMA_BIT_MASK(30)); + dev_priv->regs = ioremap(base, size); if (!dev_priv->regs) { DRM_ERROR("failed to map registers\n"); @@ -2104,6 +2116,12 @@ if (ret) goto out_iomapfree; + if (prealloc_size > intel_max_stolen) { + DRM_INFO("detected %dM stolen memory, trimming to %dM\n", + prealloc_size >> 20, intel_max_stolen >> 20); + prealloc_size = intel_max_stolen; + } + dev_priv->wq = create_singlethread_workqueue("i915"); if (dev_priv->wq == NULL) { DRM_ERROR("Failed to create our workqueue.\n"); --- linux-2.6.35.orig/drivers/gpu/drm/i915/intel_drv.h +++ linux-2.6.35/drivers/gpu/drm/i915/intel_drv.h @@ -100,6 +100,7 @@ int type; struct i2c_adapter *i2c_bus; struct i2c_adapter *ddc_bus; + struct edid *edid; bool load_detect_temp; bool needs_tv_clock; void *dev_priv; @@ -143,8 +144,6 @@ struct drm_crtc base; enum pipe pipe; enum plane plane; - struct drm_gem_object *cursor_bo; - uint32_t cursor_addr; u8 lut_r[256], lut_g[256], lut_b[256]; int dpms_mode; bool busy; /* is scanout buffer being updated frequently? */ @@ -153,6 +152,12 @@ struct intel_overlay *overlay; struct intel_unpin_work *unpin_work; int fdi_lanes; + + struct drm_gem_object *cursor_bo; + uint32_t cursor_addr; + int16_t cursor_x, cursor_y; + int16_t cursor_width, cursor_height; + bool cursor_visble; }; #define to_intel_crtc(x) container_of(x, struct intel_crtc, base) --- linux-2.6.35.orig/drivers/gpu/drm/i915/intel_dp.c +++ linux-2.6.35/drivers/gpu/drm/i915/intel_dp.c @@ -229,7 +229,6 @@ uint32_t ch_data = ch_ctl + 4; int i; int recv_bytes; - uint32_t ctl; uint32_t status; uint32_t aux_clock_divider; int try, precharge; @@ -253,41 +252,43 @@ else precharge = 5; + if (I915_READ(ch_ctl) & DP_AUX_CH_CTL_SEND_BUSY) { + DRM_ERROR("dp_aux_ch not started status 0x%08x\n", + I915_READ(ch_ctl)); + return -EBUSY; + } + /* Must try at least 3 times according to DP spec */ for (try = 0; try < 5; try++) { /* Load the send data into the aux channel data registers */ - for (i = 0; i < send_bytes; i += 4) { - uint32_t d = pack_aux(send + i, send_bytes - i); - - I915_WRITE(ch_data + i, d); - } - - ctl = (DP_AUX_CH_CTL_SEND_BUSY | - DP_AUX_CH_CTL_TIME_OUT_400us | - (send_bytes << DP_AUX_CH_CTL_MESSAGE_SIZE_SHIFT) | - (precharge << DP_AUX_CH_CTL_PRECHARGE_2US_SHIFT) | - (aux_clock_divider << DP_AUX_CH_CTL_BIT_CLOCK_2X_SHIFT) | - DP_AUX_CH_CTL_DONE | - DP_AUX_CH_CTL_TIME_OUT_ERROR | - DP_AUX_CH_CTL_RECEIVE_ERROR); + for (i = 0; i < send_bytes; i += 4) + I915_WRITE(ch_data + i, + pack_aux(send + i, send_bytes - i)); /* Send the command and wait for it to complete */ - I915_WRITE(ch_ctl, ctl); - (void) I915_READ(ch_ctl); + I915_WRITE(ch_ctl, + DP_AUX_CH_CTL_SEND_BUSY | + DP_AUX_CH_CTL_TIME_OUT_400us | + (send_bytes << DP_AUX_CH_CTL_MESSAGE_SIZE_SHIFT) | + (precharge << DP_AUX_CH_CTL_PRECHARGE_2US_SHIFT) | + (aux_clock_divider << DP_AUX_CH_CTL_BIT_CLOCK_2X_SHIFT) | + DP_AUX_CH_CTL_DONE | + DP_AUX_CH_CTL_TIME_OUT_ERROR | + DP_AUX_CH_CTL_RECEIVE_ERROR); for (;;) { - udelay(100); status = I915_READ(ch_ctl); if ((status & DP_AUX_CH_CTL_SEND_BUSY) == 0) break; + udelay(100); } /* Clear done status and any errors */ - I915_WRITE(ch_ctl, (status | - DP_AUX_CH_CTL_DONE | - DP_AUX_CH_CTL_TIME_OUT_ERROR | - DP_AUX_CH_CTL_RECEIVE_ERROR)); - (void) I915_READ(ch_ctl); - if ((status & DP_AUX_CH_CTL_TIME_OUT_ERROR) == 0) + I915_WRITE(ch_ctl, + status | + DP_AUX_CH_CTL_DONE | + DP_AUX_CH_CTL_TIME_OUT_ERROR | + DP_AUX_CH_CTL_RECEIVE_ERROR); + if (status & DP_AUX_CH_CTL_DONE) break; } @@ -314,15 +315,12 @@ /* Unload any bytes sent back from the other side */ recv_bytes = ((status & DP_AUX_CH_CTL_MESSAGE_SIZE_MASK) >> DP_AUX_CH_CTL_MESSAGE_SIZE_SHIFT); - if (recv_bytes > recv_size) recv_bytes = recv_size; - for (i = 0; i < recv_bytes; i += 4) { - uint32_t d = I915_READ(ch_data + i); - - unpack_aux(d, recv + i, recv_bytes - i); - } + for (i = 0; i < recv_bytes; i += 4) + unpack_aux(I915_READ(ch_data + i), + recv + i, recv_bytes - i); return recv_bytes; } --- linux-2.6.35.orig/drivers/gpu/drm/i915/intel_ringbuffer.c +++ linux-2.6.35/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -203,9 +203,13 @@ { drm_i915_private_t *dev_priv = dev->dev_private; int ret = init_ring_common(dev, ring); + int mode; + if (IS_I9XX(dev) && !IS_GEN3(dev)) { - I915_WRITE(MI_MODE, - (VS_TIMER_DISPATCH) << 16 | VS_TIMER_DISPATCH); + mode = VS_TIMER_DISPATCH << 16 | VS_TIMER_DISPATCH; + if (IS_GEN6(dev)) + mode |= MI_FLUSH_ENABLE << 16 | MI_FLUSH_ENABLE; + I915_WRITE(MI_MODE, mode); } return ret; } --- linux-2.6.35.orig/drivers/gpu/drm/i915/i915_drv.h +++ linux-2.6.35/drivers/gpu/drm/i915/i915_drv.h @@ -188,6 +188,7 @@ struct intel_overlay; struct intel_device_info { + u8 gen; u8 is_mobile : 1; u8 is_i8xx : 1; u8 is_i85x : 1; @@ -200,8 +201,9 @@ u8 need_gfx_hws : 1; u8 is_g4x : 1; u8 is_pineview : 1; + u8 is_broadwater : 1; + u8 is_crestline : 1; u8 is_ironlake : 1; - u8 is_gen6 : 1; u8 has_fbc : 1; u8 has_rc6 : 1; u8 has_pipe_cxsr : 1; @@ -1128,13 +1130,14 @@ #define IS_845G(dev) ((dev)->pci_device == 0x2562) #define IS_I85X(dev) (INTEL_INFO(dev)->is_i85x) #define IS_I865G(dev) ((dev)->pci_device == 0x2572) -#define IS_GEN2(dev) (INTEL_INFO(dev)->is_i8xx) #define IS_I915G(dev) (INTEL_INFO(dev)->is_i915g) #define IS_I915GM(dev) ((dev)->pci_device == 0x2592) #define IS_I945G(dev) ((dev)->pci_device == 0x2772) #define IS_I945GM(dev) (INTEL_INFO(dev)->is_i945gm) #define IS_I965G(dev) (INTEL_INFO(dev)->is_i965g) #define IS_I965GM(dev) (INTEL_INFO(dev)->is_i965gm) +#define IS_BROADWATER(dev) (INTEL_INFO(dev)->is_broadwater) +#define IS_CRESTLINE(dev) (INTEL_INFO(dev)->is_crestline) #define IS_GM45(dev) ((dev)->pci_device == 0x2A42) #define IS_G4X(dev) (INTEL_INFO(dev)->is_g4x) #define IS_PINEVIEW_G(dev) ((dev)->pci_device == 0xa001) @@ -1145,27 +1148,13 @@ #define IS_IRONLAKE_M(dev) ((dev)->pci_device == 0x0046) #define IS_IRONLAKE(dev) (INTEL_INFO(dev)->is_ironlake) #define IS_I9XX(dev) (INTEL_INFO(dev)->is_i9xx) -#define IS_GEN6(dev) (INTEL_INFO(dev)->is_gen6) #define IS_MOBILE(dev) (INTEL_INFO(dev)->is_mobile) -#define IS_GEN3(dev) (IS_I915G(dev) || \ - IS_I915GM(dev) || \ - IS_I945G(dev) || \ - IS_I945GM(dev) || \ - IS_G33(dev) || \ - IS_PINEVIEW(dev)) -#define IS_GEN4(dev) ((dev)->pci_device == 0x2972 || \ - (dev)->pci_device == 0x2982 || \ - (dev)->pci_device == 0x2992 || \ - (dev)->pci_device == 0x29A2 || \ - (dev)->pci_device == 0x2A02 || \ - (dev)->pci_device == 0x2A12 || \ - (dev)->pci_device == 0x2E02 || \ - (dev)->pci_device == 0x2E12 || \ - (dev)->pci_device == 0x2E22 || \ - (dev)->pci_device == 0x2E32 || \ - (dev)->pci_device == 0x2A42 || \ - (dev)->pci_device == 0x2E42) +#define IS_GEN2(dev) (INTEL_INFO(dev)->gen == 2) +#define IS_GEN3(dev) (INTEL_INFO(dev)->gen == 3) +#define IS_GEN4(dev) (INTEL_INFO(dev)->gen == 4) +#define IS_GEN5(dev) (INTEL_INFO(dev)->gen == 5) +#define IS_GEN6(dev) (INTEL_INFO(dev)->gen == 6) #define HAS_BSD(dev) (IS_IRONLAKE(dev) || IS_G4X(dev)) #define I915_NEED_GFX_HWS(dev) (INTEL_INFO(dev)->need_gfx_hws) --- linux-2.6.35.orig/drivers/gpu/drm/i915/i915_reg.h +++ linux-2.6.35/drivers/gpu/drm/i915/i915_reg.h @@ -312,6 +312,7 @@ #define MI_MODE 0x0209c # define VS_TIMER_DISPATCH (1 << 6) +# define MI_FLUSH_ENABLE (1 << 11) #define SCPD0 0x0209c /* 915+ only */ #define IER 0x020a0 @@ -2199,9 +2200,17 @@ #define WM1_LP_SR_EN (1<<31) #define WM1_LP_LATENCY_SHIFT 24 #define WM1_LP_LATENCY_MASK (0x7f<<24) +#define WM1_LP_FBC_LP1_MASK (0xf<<20) +#define WM1_LP_FBC_LP1_SHIFT 20 #define WM1_LP_SR_MASK (0x1ff<<8) #define WM1_LP_SR_SHIFT 8 #define WM1_LP_CURSOR_MASK (0x3f) +#define WM2_LP_ILK 0x4510c +#define WM2_LP_EN (1<<31) +#define WM3_LP_ILK 0x45110 +#define WM3_LP_EN (1<<31) +#define WM1S_LP_ILK 0x45120 +#define WM1S_LP_EN (1<<31) /* Memory latency timer register */ #define MLTR_ILK 0x11222 --- linux-2.6.35.orig/drivers/gpu/drm/i915/intel_modes.c +++ linux-2.6.35/drivers/gpu/drm/i915/intel_modes.c @@ -74,16 +74,25 @@ struct i2c_adapter *adapter) { struct edid *edid; + struct drm_encoder *encoder = intel_attached_encoder(connector); + struct intel_encoder *intel_encoder = enc_to_intel_encoder(encoder); int ret = 0; intel_i2c_quirk_set(connector->dev, true); + if (intel_encoder->edid && intel_encoder->type == INTEL_OUTPUT_LVDS) { + printk(KERN_INFO "Skipping EDID probe due to cached edid\n"); + return ret; + } edid = drm_get_edid(connector, adapter); intel_i2c_quirk_set(connector->dev, false); if (edid) { drm_mode_connector_update_edid_property(connector, edid); ret = drm_add_edid_modes(connector, edid); connector->display_info.raw_edid = NULL; - kfree(edid); + if (intel_encoder->type == INTEL_OUTPUT_LVDS) + intel_encoder->edid = edid; + else + kfree(edid); } return ret; --- linux-2.6.35.orig/drivers/gpu/drm/i915/i915_gem.c +++ linux-2.6.35/drivers/gpu/drm/i915/i915_gem.c @@ -459,16 +459,24 @@ return -EBADF; obj_priv = to_intel_bo(obj); - /* Bounds check source. - * - * XXX: This could use review for overflow issues... - */ - if (args->offset > obj->size || args->size > obj->size || - args->offset + args->size > obj->size) { + /* Bounds check source. */ + if (args->offset > obj->size || args->size > obj->size - args->offset) { drm_gem_object_unreference_unlocked(obj); return -EINVAL; } + if (!access_ok(VERIFY_WRITE, + (char __user *)(uintptr_t)args->data_ptr, + args->size)) { + drm_gem_object_unreference_unlocked(obj); + return -EFAULT; + } + + if (args->size == 0) { + drm_gem_object_unreference_unlocked(obj); + return 0; + } + if (i915_gem_object_needs_bit17_swizzle(obj)) { ret = i915_gem_shmem_pread_slow(dev, obj, args, file_priv); } else { @@ -479,7 +487,6 @@ } drm_gem_object_unreference_unlocked(obj); - return ret; } @@ -568,8 +575,6 @@ user_data = (char __user *) (uintptr_t) args->data_ptr; remain = args->size; - if (!access_ok(VERIFY_READ, user_data, remain)) - return -EFAULT; mutex_lock(&dev->struct_mutex); @@ -915,23 +920,31 @@ struct drm_i915_gem_pwrite *args = data; struct drm_gem_object *obj; struct drm_i915_gem_object *obj_priv; - int ret = 0; + int ret; obj = drm_gem_object_lookup(dev, file_priv, args->handle); if (obj == NULL) return -EBADF; obj_priv = to_intel_bo(obj); - /* Bounds check destination. - * - * XXX: This could use review for overflow issues... - */ - if (args->offset > obj->size || args->size > obj->size || - args->offset + args->size > obj->size) { + /* Bounds check destination. */ + if (args->offset > obj->size || args->size > obj->size - args->offset) { drm_gem_object_unreference_unlocked(obj); return -EINVAL; } + if (args->size == 0) { + drm_gem_object_unreference_unlocked(obj); + return 0; + } + + if (!access_ok(VERIFY_READ, + (char __user *)(uintptr_t)args->data_ptr, + args->size)) { + drm_gem_object_unreference_unlocked(obj); + return -EFAULT; + } + /* We can only do the GTT pwrite on untiled buffers, as otherwise * it would end up going through the fenced access, and we'll get * different detiling behavior between reading and writing. @@ -964,7 +977,6 @@ #endif drm_gem_object_unreference_unlocked(obj); - return ret; } @@ -2500,14 +2512,21 @@ reg->obj = obj; - if (IS_GEN6(dev)) + switch (INTEL_INFO(dev)->gen) { + case 6: sandybridge_write_fence_reg(reg); - else if (IS_I965G(dev)) + break; + case 5: + case 4: i965_write_fence_reg(reg); - else if (IS_I9XX(dev)) + break; + case 3: i915_write_fence_reg(reg); - else + break; + case 2: i830_write_fence_reg(reg); + break; + } trace_i915_gem_object_get_fence(obj, obj_priv->fence_reg, obj_priv->tiling_mode); @@ -2530,22 +2549,26 @@ struct drm_i915_gem_object *obj_priv = to_intel_bo(obj); struct drm_i915_fence_reg *reg = &dev_priv->fence_regs[obj_priv->fence_reg]; + uint32_t fence_reg; - if (IS_GEN6(dev)) { + switch (INTEL_INFO(dev)->gen) { + case 6: I915_WRITE64(FENCE_REG_SANDYBRIDGE_0 + (obj_priv->fence_reg * 8), 0); - } else if (IS_I965G(dev)) { + break; + case 5: + case 4: I915_WRITE64(FENCE_REG_965_0 + (obj_priv->fence_reg * 8), 0); - } else { - uint32_t fence_reg; - - if (obj_priv->fence_reg < 8) - fence_reg = FENCE_REG_830_0 + obj_priv->fence_reg * 4; + break; + case 3: + if (obj_priv->fence_reg >= 8) + fence_reg = FENCE_REG_945_8 + (obj_priv->fence_reg - 8) * 4; else - fence_reg = FENCE_REG_945_8 + (obj_priv->fence_reg - - 8) * 4; + case 2: + fence_reg = FENCE_REG_830_0 + obj_priv->fence_reg * 4; I915_WRITE(fence_reg, 0); + break; } reg->obj = NULL; @@ -3709,6 +3732,7 @@ if (ret != 0) { DRM_ERROR("copy %d cliprects failed: %d\n", args->num_cliprects, ret); + ret = -EFAULT; goto pre_mutex_err; } } --- linux-2.6.35.orig/drivers/gpu/drm/i915/intel_lvds.c +++ linux-2.6.35/drivers/gpu/drm/i915/intel_lvds.c @@ -673,11 +673,15 @@ { struct drm_device *dev = connector->dev; struct drm_i915_private *dev_priv = dev->dev_private; + struct drm_encoder *encoder = intel_attached_encoder(connector); + struct intel_encoder *intel_encoder = enc_to_intel_encoder(encoder); + if (dev_priv->lid_notifier.notifier_call) acpi_lid_notifier_unregister(&dev_priv->lid_notifier); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); + kfree(intel_encoder->edid); kfree(connector); } @@ -988,8 +992,6 @@ intel_encoder->clone_mask = (1 << INTEL_LVDS_CLONE_BIT); intel_encoder->crtc_mask = (1 << 1); - if (IS_I965G(dev)) - intel_encoder->crtc_mask |= (1 << 0); drm_encoder_helper_add(encoder, &intel_lvds_helper_funcs); drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs); connector->display_info.subpixel_order = SubPixelHorizontalRGB; @@ -1115,6 +1117,7 @@ intel_i2c_destroy(intel_encoder->ddc_bus); drm_connector_cleanup(connector); drm_encoder_cleanup(encoder); + kfree(intel_encoder->edid); kfree(intel_encoder); kfree(intel_connector); } --- linux-2.6.35.orig/drivers/gpu/drm/i915/i915_suspend.c +++ linux-2.6.35/drivers/gpu/drm/i915/i915_suspend.c @@ -34,7 +34,7 @@ struct drm_i915_private *dev_priv = dev->dev_private; u32 dpll_reg; - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { dpll_reg = (pipe == PIPE_A) ? PCH_DPLL_A: PCH_DPLL_B; } else { dpll_reg = (pipe == PIPE_A) ? DPLL_A: DPLL_B; @@ -53,7 +53,7 @@ if (!i915_pipe_enabled(dev, pipe)) return; - if (IS_IRONLAKE(dev)) + if (HAS_PCH_SPLIT(dev)) reg = (pipe == PIPE_A) ? LGC_PALETTE_A : LGC_PALETTE_B; if (pipe == PIPE_A) @@ -75,7 +75,7 @@ if (!i915_pipe_enabled(dev, pipe)) return; - if (IS_IRONLAKE(dev)) + if (HAS_PCH_SPLIT(dev)) reg = (pipe == PIPE_A) ? LGC_PALETTE_A : LGC_PALETTE_B; if (pipe == PIPE_A) @@ -239,7 +239,7 @@ if (drm_core_check_feature(dev, DRIVER_MODESET)) return; - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { dev_priv->savePCH_DREF_CONTROL = I915_READ(PCH_DREF_CONTROL); dev_priv->saveDISP_ARB_CTL = I915_READ(DISP_ARB_CTL); } @@ -247,7 +247,7 @@ /* Pipe & plane A info */ dev_priv->savePIPEACONF = I915_READ(PIPEACONF); dev_priv->savePIPEASRC = I915_READ(PIPEASRC); - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { dev_priv->saveFPA0 = I915_READ(PCH_FPA0); dev_priv->saveFPA1 = I915_READ(PCH_FPA1); dev_priv->saveDPLL_A = I915_READ(PCH_DPLL_A); @@ -256,7 +256,7 @@ dev_priv->saveFPA1 = I915_READ(FPA1); dev_priv->saveDPLL_A = I915_READ(DPLL_A); } - if (IS_I965G(dev) && !IS_IRONLAKE(dev)) + if (IS_I965G(dev) && !HAS_PCH_SPLIT(dev)) dev_priv->saveDPLL_A_MD = I915_READ(DPLL_A_MD); dev_priv->saveHTOTAL_A = I915_READ(HTOTAL_A); dev_priv->saveHBLANK_A = I915_READ(HBLANK_A); @@ -264,10 +264,10 @@ dev_priv->saveVTOTAL_A = I915_READ(VTOTAL_A); dev_priv->saveVBLANK_A = I915_READ(VBLANK_A); dev_priv->saveVSYNC_A = I915_READ(VSYNC_A); - if (!IS_IRONLAKE(dev)) + if (!HAS_PCH_SPLIT(dev)) dev_priv->saveBCLRPAT_A = I915_READ(BCLRPAT_A); - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { dev_priv->savePIPEA_DATA_M1 = I915_READ(PIPEA_DATA_M1); dev_priv->savePIPEA_DATA_N1 = I915_READ(PIPEA_DATA_N1); dev_priv->savePIPEA_LINK_M1 = I915_READ(PIPEA_LINK_M1); @@ -304,7 +304,7 @@ /* Pipe & plane B info */ dev_priv->savePIPEBCONF = I915_READ(PIPEBCONF); dev_priv->savePIPEBSRC = I915_READ(PIPEBSRC); - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { dev_priv->saveFPB0 = I915_READ(PCH_FPB0); dev_priv->saveFPB1 = I915_READ(PCH_FPB1); dev_priv->saveDPLL_B = I915_READ(PCH_DPLL_B); @@ -313,7 +313,7 @@ dev_priv->saveFPB1 = I915_READ(FPB1); dev_priv->saveDPLL_B = I915_READ(DPLL_B); } - if (IS_I965G(dev) && !IS_IRONLAKE(dev)) + if (IS_I965G(dev) && !HAS_PCH_SPLIT(dev)) dev_priv->saveDPLL_B_MD = I915_READ(DPLL_B_MD); dev_priv->saveHTOTAL_B = I915_READ(HTOTAL_B); dev_priv->saveHBLANK_B = I915_READ(HBLANK_B); @@ -321,10 +321,10 @@ dev_priv->saveVTOTAL_B = I915_READ(VTOTAL_B); dev_priv->saveVBLANK_B = I915_READ(VBLANK_B); dev_priv->saveVSYNC_B = I915_READ(VSYNC_B); - if (!IS_IRONLAKE(dev)) + if (!HAS_PCH_SPLIT(dev)) dev_priv->saveBCLRPAT_B = I915_READ(BCLRPAT_B); - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { dev_priv->savePIPEB_DATA_M1 = I915_READ(PIPEB_DATA_M1); dev_priv->savePIPEB_DATA_N1 = I915_READ(PIPEB_DATA_N1); dev_priv->savePIPEB_LINK_M1 = I915_READ(PIPEB_LINK_M1); @@ -369,7 +369,7 @@ if (drm_core_check_feature(dev, DRIVER_MODESET)) return; - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { dpll_a_reg = PCH_DPLL_A; dpll_b_reg = PCH_DPLL_B; fpa0_reg = PCH_FPA0; @@ -385,7 +385,7 @@ fpb1_reg = FPB1; } - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { I915_WRITE(PCH_DREF_CONTROL, dev_priv->savePCH_DREF_CONTROL); I915_WRITE(DISP_ARB_CTL, dev_priv->saveDISP_ARB_CTL); } @@ -402,7 +402,7 @@ /* Actually enable it */ I915_WRITE(dpll_a_reg, dev_priv->saveDPLL_A); DRM_UDELAY(150); - if (IS_I965G(dev) && !IS_IRONLAKE(dev)) + if (IS_I965G(dev) && !HAS_PCH_SPLIT(dev)) I915_WRITE(DPLL_A_MD, dev_priv->saveDPLL_A_MD); DRM_UDELAY(150); @@ -413,10 +413,10 @@ I915_WRITE(VTOTAL_A, dev_priv->saveVTOTAL_A); I915_WRITE(VBLANK_A, dev_priv->saveVBLANK_A); I915_WRITE(VSYNC_A, dev_priv->saveVSYNC_A); - if (!IS_IRONLAKE(dev)) + if (!HAS_PCH_SPLIT(dev)) I915_WRITE(BCLRPAT_A, dev_priv->saveBCLRPAT_A); - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { I915_WRITE(PIPEA_DATA_M1, dev_priv->savePIPEA_DATA_M1); I915_WRITE(PIPEA_DATA_N1, dev_priv->savePIPEA_DATA_N1); I915_WRITE(PIPEA_LINK_M1, dev_priv->savePIPEA_LINK_M1); @@ -467,7 +467,7 @@ /* Actually enable it */ I915_WRITE(dpll_b_reg, dev_priv->saveDPLL_B); DRM_UDELAY(150); - if (IS_I965G(dev) && !IS_IRONLAKE(dev)) + if (IS_I965G(dev) && !HAS_PCH_SPLIT(dev)) I915_WRITE(DPLL_B_MD, dev_priv->saveDPLL_B_MD); DRM_UDELAY(150); @@ -478,10 +478,10 @@ I915_WRITE(VTOTAL_B, dev_priv->saveVTOTAL_B); I915_WRITE(VBLANK_B, dev_priv->saveVBLANK_B); I915_WRITE(VSYNC_B, dev_priv->saveVSYNC_B); - if (!IS_IRONLAKE(dev)) + if (!HAS_PCH_SPLIT(dev)) I915_WRITE(BCLRPAT_B, dev_priv->saveBCLRPAT_B); - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { I915_WRITE(PIPEB_DATA_M1, dev_priv->savePIPEB_DATA_M1); I915_WRITE(PIPEB_DATA_N1, dev_priv->savePIPEB_DATA_N1); I915_WRITE(PIPEB_LINK_M1, dev_priv->savePIPEB_LINK_M1); @@ -546,14 +546,14 @@ dev_priv->saveCURSIZE = I915_READ(CURSIZE); /* CRT state */ - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { dev_priv->saveADPA = I915_READ(PCH_ADPA); } else { dev_priv->saveADPA = I915_READ(ADPA); } /* LVDS state */ - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { dev_priv->savePP_CONTROL = I915_READ(PCH_PP_CONTROL); dev_priv->saveBLC_PWM_CTL = I915_READ(BLC_PWM_PCH_CTL1); dev_priv->saveBLC_PWM_CTL2 = I915_READ(BLC_PWM_PCH_CTL2); @@ -571,10 +571,10 @@ dev_priv->saveLVDS = I915_READ(LVDS); } - if (!IS_I830(dev) && !IS_845G(dev) && !IS_IRONLAKE(dev)) + if (!IS_I830(dev) && !IS_845G(dev) && !HAS_PCH_SPLIT(dev)) dev_priv->savePFIT_CONTROL = I915_READ(PFIT_CONTROL); - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { dev_priv->savePP_ON_DELAYS = I915_READ(PCH_PP_ON_DELAYS); dev_priv->savePP_OFF_DELAYS = I915_READ(PCH_PP_OFF_DELAYS); dev_priv->savePP_DIVISOR = I915_READ(PCH_PP_DIVISOR); @@ -616,7 +616,7 @@ dev_priv->saveVGA0 = I915_READ(VGA0); dev_priv->saveVGA1 = I915_READ(VGA1); dev_priv->saveVGA_PD = I915_READ(VGA_PD); - if (IS_IRONLAKE(dev)) + if (HAS_PCH_SPLIT(dev)) dev_priv->saveVGACNTRL = I915_READ(CPU_VGACNTRL); else dev_priv->saveVGACNTRL = I915_READ(VGACNTRL); @@ -658,24 +658,24 @@ I915_WRITE(CURSIZE, dev_priv->saveCURSIZE); /* CRT state */ - if (IS_IRONLAKE(dev)) + if (HAS_PCH_SPLIT(dev)) I915_WRITE(PCH_ADPA, dev_priv->saveADPA); else I915_WRITE(ADPA, dev_priv->saveADPA); /* LVDS state */ - if (IS_I965G(dev) && !IS_IRONLAKE(dev)) + if (IS_I965G(dev) && !HAS_PCH_SPLIT(dev)) I915_WRITE(BLC_PWM_CTL2, dev_priv->saveBLC_PWM_CTL2); - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { I915_WRITE(PCH_LVDS, dev_priv->saveLVDS); } else if (IS_MOBILE(dev) && !IS_I830(dev)) I915_WRITE(LVDS, dev_priv->saveLVDS); - if (!IS_I830(dev) && !IS_845G(dev) && !IS_IRONLAKE(dev)) + if (!IS_I830(dev) && !IS_845G(dev) && !HAS_PCH_SPLIT(dev)) I915_WRITE(PFIT_CONTROL, dev_priv->savePFIT_CONTROL); - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { I915_WRITE(BLC_PWM_PCH_CTL1, dev_priv->saveBLC_PWM_CTL); I915_WRITE(BLC_PWM_PCH_CTL2, dev_priv->saveBLC_PWM_CTL2); I915_WRITE(BLC_PWM_CPU_CTL, dev_priv->saveBLC_CPU_PWM_CTL); @@ -718,7 +718,7 @@ } } /* VGA state */ - if (IS_IRONLAKE(dev)) + if (HAS_PCH_SPLIT(dev)) I915_WRITE(CPU_VGACNTRL, dev_priv->saveVGACNTRL); else I915_WRITE(VGACNTRL, dev_priv->saveVGACNTRL); @@ -743,7 +743,7 @@ i915_save_display(dev); /* Interrupt state */ - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { dev_priv->saveDEIER = I915_READ(DEIER); dev_priv->saveDEIMR = I915_READ(DEIMR); dev_priv->saveGTIER = I915_READ(GTIER); @@ -757,7 +757,7 @@ dev_priv->saveIMR = I915_READ(IMR); } - if (IS_IRONLAKE_M(dev)) + if (HAS_PCH_SPLIT(dev)) ironlake_disable_drps(dev); /* Cache mode state */ @@ -775,16 +775,25 @@ dev_priv->saveSWF2[i] = I915_READ(SWF30 + (i << 2)); /* Fences */ - if (IS_I965G(dev)) { + switch (INTEL_INFO(dev)->gen) { + case 6: + for (i = 0; i < 16; i++) + dev_priv->saveFENCE[i] = I915_READ64(FENCE_REG_SANDYBRIDGE_0 + (i * 8)); + break; + case 5: + case 4: for (i = 0; i < 16; i++) dev_priv->saveFENCE[i] = I915_READ64(FENCE_REG_965_0 + (i * 8)); - } else { - for (i = 0; i < 8; i++) - dev_priv->saveFENCE[i] = I915_READ(FENCE_REG_830_0 + (i * 4)); - + break; + case 3: if (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev)) for (i = 0; i < 8; i++) dev_priv->saveFENCE[i+8] = I915_READ(FENCE_REG_945_8 + (i * 4)); + case 2: + for (i = 0; i < 8; i++) + dev_priv->saveFENCE[i] = I915_READ(FENCE_REG_830_0 + (i * 4)); + break; + } return 0; @@ -801,21 +810,30 @@ I915_WRITE(HWS_PGA, dev_priv->saveHWS); /* Fences */ - if (IS_I965G(dev)) { + switch (INTEL_INFO(dev)->gen) { + case 6: + for (i = 0; i < 16; i++) + I915_WRITE64(FENCE_REG_SANDYBRIDGE_0 + (i * 8), dev_priv->saveFENCE[i]); + break; + case 5: + case 4: for (i = 0; i < 16; i++) I915_WRITE64(FENCE_REG_965_0 + (i * 8), dev_priv->saveFENCE[i]); - } else { - for (i = 0; i < 8; i++) - I915_WRITE(FENCE_REG_830_0 + (i * 4), dev_priv->saveFENCE[i]); + break; + case 3: + case 2: if (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev)) for (i = 0; i < 8; i++) I915_WRITE(FENCE_REG_945_8 + (i * 4), dev_priv->saveFENCE[i+8]); + for (i = 0; i < 8; i++) + I915_WRITE(FENCE_REG_830_0 + (i * 4), dev_priv->saveFENCE[i]); + break; } i915_restore_display(dev); /* Interrupt state */ - if (IS_IRONLAKE(dev)) { + if (HAS_PCH_SPLIT(dev)) { I915_WRITE(DEIER, dev_priv->saveDEIER); I915_WRITE(DEIMR, dev_priv->saveDEIMR); I915_WRITE(GTIER, dev_priv->saveGTIER); @@ -830,7 +848,7 @@ /* Clock gating state */ intel_init_clock_gating(dev); - if (IS_IRONLAKE_M(dev)) + if (HAS_PCH_SPLIT(dev)) ironlake_enable_drps(dev); /* Cache mode state */ --- linux-2.6.35.orig/drivers/gpu/drm/i915/intel_overlay.c +++ linux-2.6.35/drivers/gpu/drm/i915/intel_overlay.c @@ -958,7 +958,7 @@ || rec->src_width < N_HORIZ_Y_TAPS*4) return -EINVAL; - /* check alingment constrains */ + /* check alignment constraints */ switch (rec->flags & I915_OVERLAY_TYPE_MASK) { case I915_OVERLAY_RGB: /* not implemented */ @@ -990,7 +990,10 @@ return -EINVAL; /* stride checking */ - stride_mask = 63; + if (IS_I830(dev) || IS_845G(dev)) + stride_mask = 255; + else + stride_mask = 63; if (rec->stride_Y & stride_mask || rec->stride_UV & stride_mask) return -EINVAL; --- linux-2.6.35.orig/drivers/gpu/drm/radeon/r600.c +++ linux-2.6.35/drivers/gpu/drm/radeon/r600.c @@ -869,7 +869,17 @@ u32 tmp; /* flush hdp cache so updates hit vram */ - WREG32(R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL, 0x1); + if ((rdev->family >= CHIP_RV770) && (rdev->family <= CHIP_RV740)) { + void __iomem *ptr = (void *)rdev->gart.table.vram.ptr; + u32 tmp; + + /* r7xx hw bug. write to HDP_DEBUG1 followed by fb read + * rather than write to HDP_REG_COHERENCY_FLUSH_CNTL + */ + WREG32(HDP_DEBUG1, 0); + tmp = readl((void __iomem *)ptr); + } else + WREG32(R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL, 0x1); WREG32(VM_CONTEXT0_INVALIDATION_LOW_ADDR, rdev->mc.gtt_start >> 12); WREG32(VM_CONTEXT0_INVALIDATION_HIGH_ADDR, (rdev->mc.gtt_end - 1) >> 12); @@ -2094,10 +2104,7 @@ } radeon_ring_write(rdev, PACKET3(PACKET3_ME_INITIALIZE, 5)); radeon_ring_write(rdev, 0x1); - if (rdev->family >= CHIP_CEDAR) { - radeon_ring_write(rdev, 0x0); - radeon_ring_write(rdev, rdev->config.evergreen.max_hw_contexts - 1); - } else if (rdev->family >= CHIP_RV770) { + if (rdev->family >= CHIP_RV770) { radeon_ring_write(rdev, 0x0); radeon_ring_write(rdev, rdev->config.rv770.max_hw_contexts - 1); } else { @@ -3512,5 +3519,15 @@ */ void r600_ioctl_wait_idle(struct radeon_device *rdev, struct radeon_bo *bo) { - WREG32(R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL, 0x1); + /* r7xx hw bug. write to HDP_DEBUG1 followed by fb read + * rather than write to HDP_REG_COHERENCY_FLUSH_CNTL + */ + if ((rdev->family >= CHIP_RV770) && (rdev->family <= CHIP_RV740)) { + void __iomem *ptr = (void *)rdev->vram_scratch.ptr; + u32 tmp; + + WREG32(HDP_DEBUG1, 0); + tmp = readl((void __iomem *)ptr); + } else + WREG32(R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL, 0x1); } --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_object.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_object.c @@ -66,15 +66,19 @@ void radeon_ttm_placement_from_domain(struct radeon_bo *rbo, u32 domain) { - u32 c = 0; + u32 c = 0, b = 0; rbo->placement.fpfn = 0; rbo->placement.lpfn = 0; rbo->placement.placement = rbo->placements; - rbo->placement.busy_placement = rbo->placements; + rbo->placement.busy_placement = rbo->busy_placements; if (domain & RADEON_GEM_DOMAIN_VRAM) rbo->placements[c++] = TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_VRAM; + /* add busy placement to TTM if VRAM is only option */ + if (domain == RADEON_GEM_DOMAIN_VRAM) { + rbo->busy_placements[b++] = TTM_PL_MASK_CACHING | TTM_PL_FLAG_TT; + } if (domain & RADEON_GEM_DOMAIN_GTT) rbo->placements[c++] = TTM_PL_MASK_CACHING | TTM_PL_FLAG_TT; if (domain & RADEON_GEM_DOMAIN_CPU) @@ -82,7 +86,7 @@ if (!c) rbo->placements[c++] = TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM; rbo->placement.num_placement = c; - rbo->placement.num_busy_placement = c; + rbo->placement.num_busy_placement = b; } int radeon_bo_create(struct radeon_device *rdev, struct drm_gem_object *gobj, @@ -110,6 +114,7 @@ bo->surface_reg = -1; INIT_LIST_HEAD(&bo->list); +retry: radeon_ttm_placement_from_domain(bo, domain); /* Kernel allocation are uninterruptible */ mutex_lock(&rdev->vram_mutex); @@ -118,10 +123,15 @@ &radeon_ttm_bo_destroy); mutex_unlock(&rdev->vram_mutex); if (unlikely(r != 0)) { - if (r != -ERESTARTSYS) + if (r != -ERESTARTSYS) { + if (domain == RADEON_GEM_DOMAIN_VRAM) { + domain |= RADEON_GEM_DOMAIN_GTT; + goto retry; + } dev_err(rdev->dev, "object_init failed for (%lu, 0x%08X)\n", size, domain); + } return r; } *bo_ptr = bo; @@ -321,6 +331,7 @@ { struct radeon_bo_list *lobj; struct radeon_bo *bo; + u32 domain; int r; list_for_each_entry(lobj, head, list) { @@ -333,17 +344,19 @@ list_for_each_entry(lobj, head, list) { bo = lobj->bo; if (!bo->pin_count) { - if (lobj->wdomain) { - radeon_ttm_placement_from_domain(bo, - lobj->wdomain); - } else { - radeon_ttm_placement_from_domain(bo, - lobj->rdomain); - } + domain = lobj->wdomain ? lobj->wdomain : lobj->rdomain; + + retry: + radeon_ttm_placement_from_domain(bo, domain); r = ttm_bo_validate(&bo->tbo, &bo->placement, true, false, false); - if (unlikely(r)) + if (unlikely(r)) { + if (r != -ERESTARTSYS && domain == RADEON_GEM_DOMAIN_VRAM) { + domain |= RADEON_GEM_DOMAIN_GTT; + goto retry; + } return r; + } } lobj->gpu_offset = radeon_bo_gpu_offset(bo); lobj->tiling_flags = bo->tiling_flags; --- linux-2.6.35.orig/drivers/gpu/drm/radeon/rs690.c +++ linux-2.6.35/drivers/gpu/drm/radeon/rs690.c @@ -398,7 +398,9 @@ struct drm_display_mode *mode1 = NULL; struct rs690_watermark wm0; struct rs690_watermark wm1; - u32 tmp, d1mode_priority_a_cnt, d2mode_priority_a_cnt; + u32 tmp; + u32 d1mode_priority_a_cnt = S_006548_D1MODE_PRIORITY_A_OFF(1); + u32 d2mode_priority_a_cnt = S_006548_D1MODE_PRIORITY_A_OFF(1); fixed20_12 priority_mark02, priority_mark12, fill_rate; fixed20_12 a, b; @@ -495,10 +497,6 @@ d1mode_priority_a_cnt |= S_006548_D1MODE_PRIORITY_A_ALWAYS_ON(1); d2mode_priority_a_cnt |= S_006D48_D2MODE_PRIORITY_A_ALWAYS_ON(1); } - WREG32(R_006548_D1MODE_PRIORITY_A_CNT, d1mode_priority_a_cnt); - WREG32(R_00654C_D1MODE_PRIORITY_B_CNT, d1mode_priority_a_cnt); - WREG32(R_006D48_D2MODE_PRIORITY_A_CNT, d2mode_priority_a_cnt); - WREG32(R_006D4C_D2MODE_PRIORITY_B_CNT, d2mode_priority_a_cnt); } else if (mode0) { if (dfixed_trunc(wm0.dbpp) > 64) a.full = dfixed_mul(wm0.dbpp, wm0.num_line_pair); @@ -528,13 +526,7 @@ d1mode_priority_a_cnt = dfixed_trunc(priority_mark02); if (rdev->disp_priority == 2) d1mode_priority_a_cnt |= S_006548_D1MODE_PRIORITY_A_ALWAYS_ON(1); - WREG32(R_006548_D1MODE_PRIORITY_A_CNT, d1mode_priority_a_cnt); - WREG32(R_00654C_D1MODE_PRIORITY_B_CNT, d1mode_priority_a_cnt); - WREG32(R_006D48_D2MODE_PRIORITY_A_CNT, - S_006D48_D2MODE_PRIORITY_A_OFF(1)); - WREG32(R_006D4C_D2MODE_PRIORITY_B_CNT, - S_006D4C_D2MODE_PRIORITY_B_OFF(1)); - } else { + } else if (mode1) { if (dfixed_trunc(wm1.dbpp) > 64) a.full = dfixed_mul(wm1.dbpp, wm1.num_line_pair); else @@ -563,13 +555,12 @@ d2mode_priority_a_cnt = dfixed_trunc(priority_mark12); if (rdev->disp_priority == 2) d2mode_priority_a_cnt |= S_006D48_D2MODE_PRIORITY_A_ALWAYS_ON(1); - WREG32(R_006548_D1MODE_PRIORITY_A_CNT, - S_006548_D1MODE_PRIORITY_A_OFF(1)); - WREG32(R_00654C_D1MODE_PRIORITY_B_CNT, - S_00654C_D1MODE_PRIORITY_B_OFF(1)); - WREG32(R_006D48_D2MODE_PRIORITY_A_CNT, d2mode_priority_a_cnt); - WREG32(R_006D4C_D2MODE_PRIORITY_B_CNT, d2mode_priority_a_cnt); } + + WREG32(R_006548_D1MODE_PRIORITY_A_CNT, d1mode_priority_a_cnt); + WREG32(R_00654C_D1MODE_PRIORITY_B_CNT, d1mode_priority_a_cnt); + WREG32(R_006D48_D2MODE_PRIORITY_A_CNT, d2mode_priority_a_cnt); + WREG32(R_006D4C_D2MODE_PRIORITY_B_CNT, d2mode_priority_a_cnt); } uint32_t rs690_mc_rreg(struct radeon_device *rdev, uint32_t reg) --- linux-2.6.35.orig/drivers/gpu/drm/radeon/rv770.c +++ linux-2.6.35/drivers/gpu/drm/radeon/rv770.c @@ -189,7 +189,10 @@ WREG32((0x2c20 + j), 0x00000000); WREG32((0x2c24 + j), 0x00000000); } - WREG32(HDP_REG_COHERENCY_FLUSH_CNTL, 0); + /* r7xx hw bug. Read from HDP_DEBUG1 rather + * than writing to HDP_REG_COHERENCY_FLUSH_CNTL + */ + tmp = RREG32(HDP_DEBUG1); rv515_mc_stop(rdev, &save); if (r600_mc_wait_for_idle(rdev)) { @@ -886,6 +889,54 @@ } +static int rv770_vram_scratch_init(struct radeon_device *rdev) +{ + int r; + u64 gpu_addr; + + if (rdev->vram_scratch.robj == NULL) { + r = radeon_bo_create(rdev, NULL, RADEON_GPU_PAGE_SIZE, + true, RADEON_GEM_DOMAIN_VRAM, + &rdev->vram_scratch.robj); + if (r) { + return r; + } + } + + r = radeon_bo_reserve(rdev->vram_scratch.robj, false); + if (unlikely(r != 0)) + return r; + r = radeon_bo_pin(rdev->vram_scratch.robj, + RADEON_GEM_DOMAIN_VRAM, &gpu_addr); + if (r) { + radeon_bo_unreserve(rdev->vram_scratch.robj); + return r; + } + r = radeon_bo_kmap(rdev->vram_scratch.robj, + (void **)&rdev->vram_scratch.ptr); + if (r) + radeon_bo_unpin(rdev->vram_scratch.robj); + radeon_bo_unreserve(rdev->vram_scratch.robj); + + return r; +} + +static void rv770_vram_scratch_fini(struct radeon_device *rdev) +{ + int r; + + if (rdev->vram_scratch.robj == NULL) { + return; + } + r = radeon_bo_reserve(rdev->vram_scratch.robj, false); + if (likely(r == 0)) { + radeon_bo_kunmap(rdev->vram_scratch.robj); + radeon_bo_unpin(rdev->vram_scratch.robj); + radeon_bo_unreserve(rdev->vram_scratch.robj); + } + radeon_bo_unref(&rdev->vram_scratch.robj); +} + int rv770_mc_init(struct radeon_device *rdev) { u32 tmp; @@ -951,6 +1002,9 @@ if (r) return r; } + r = rv770_vram_scratch_init(rdev); + if (r) + return r; rv770_gpu_init(rdev); r = r600_blit_init(rdev); if (r) { @@ -1176,6 +1230,7 @@ r600_irq_fini(rdev); radeon_irq_kms_fini(rdev); rv770_pcie_gart_fini(rdev); + rv770_vram_scratch_fini(rdev); radeon_gem_fini(rdev); radeon_fence_driver_fini(rdev); radeon_clocks_fini(rdev); --- linux-2.6.35.orig/drivers/gpu/drm/radeon/atombios_crtc.c +++ linux-2.6.35/drivers/gpu/drm/radeon/atombios_crtc.c @@ -527,6 +527,21 @@ pll->algo = PLL_ALGO_LEGACY; pll->flags |= RADEON_PLL_PREFER_CLOSEST_LOWER; } + /* There is some evidence (often anecdotal) that RV515/RV620 LVDS + * (on some boards at least) prefers the legacy algo. I'm not + * sure whether this should handled generically or on a + * case-by-case quirk basis. Both algos should work fine in the + * majority of cases. + */ + if ((radeon_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT)) && + ((rdev->family == CHIP_RV515) || + (rdev->family == CHIP_RV620))) { + /* allow the user to overrride just in case */ + if (radeon_new_pll == 1) + pll->algo = PLL_ALGO_NEW; + else + pll->algo = PLL_ALGO_LEGACY; + } } else { if (encoder->encoder_type != DRM_MODE_ENCODER_DAC) pll->flags |= RADEON_PLL_NO_ODD_POST_DIV; @@ -992,11 +1007,11 @@ if (rdev->family >= CHIP_RV770) { if (radeon_crtc->crtc_id) { - WREG32(R700_D2GRPH_PRIMARY_SURFACE_ADDRESS_HIGH, 0); - WREG32(R700_D2GRPH_SECONDARY_SURFACE_ADDRESS_HIGH, 0); + WREG32(R700_D2GRPH_PRIMARY_SURFACE_ADDRESS_HIGH, upper_32_bits(fb_location)); + WREG32(R700_D2GRPH_SECONDARY_SURFACE_ADDRESS_HIGH, upper_32_bits(fb_location)); } else { - WREG32(R700_D1GRPH_PRIMARY_SURFACE_ADDRESS_HIGH, 0); - WREG32(R700_D1GRPH_SECONDARY_SURFACE_ADDRESS_HIGH, 0); + WREG32(R700_D1GRPH_PRIMARY_SURFACE_ADDRESS_HIGH, upper_32_bits(fb_location)); + WREG32(R700_D1GRPH_SECONDARY_SURFACE_ADDRESS_HIGH, upper_32_bits(fb_location)); } } WREG32(AVIVO_D1GRPH_PRIMARY_SURFACE_ADDRESS + radeon_crtc->crtc_offset, --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_pm.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_pm.c @@ -224,6 +224,11 @@ { int i; + /* no need to take locks, etc. if nothing's going to change */ + if ((rdev->pm.requested_clock_mode_index == rdev->pm.current_clock_mode_index) && + (rdev->pm.requested_power_state_index == rdev->pm.current_power_state_index)) + return; + mutex_lock(&rdev->ddev->struct_mutex); mutex_lock(&rdev->vram_mutex); mutex_lock(&rdev->cp.mutex); --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon.h +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon.h @@ -243,7 +243,9 @@ struct list_head list; /* Protected by tbo.reserved */ u32 placements[3]; + u32 busy_placements[3]; struct ttm_placement placement; + struct ttm_placement busy_placement; struct ttm_buffer_object tbo; struct ttm_bo_kmap_obj kmap; unsigned pin_count; @@ -997,6 +999,11 @@ int radeon_gem_get_tiling_ioctl(struct drm_device *dev, void *data, struct drm_file *filp); +/* VRAM scratch page for HDP bug */ +struct r700_vram_scratch { + struct radeon_bo *robj; + volatile uint32_t *ptr; +}; /* * Core structure, functions and helpers. @@ -1033,6 +1040,9 @@ uint32_t pcie_reg_mask; radeon_rreg_t pciep_rreg; radeon_wreg_t pciep_wreg; + /* io port */ + void __iomem *rio_mem; + resource_size_t rio_mem_size; struct radeon_clock clock; struct radeon_mc mc; struct radeon_gart gart; @@ -1060,6 +1070,7 @@ const struct firmware *pfp_fw; /* r6/700 PFP firmware */ const struct firmware *rlc_fw; /* r6/700 RLC firmware */ struct r600_blit r600_blit; + struct r700_vram_scratch vram_scratch; int msi_enabled; /* msi enabled */ struct r600_ih ih; /* r6/700 interrupt ring */ struct workqueue_struct *wq; @@ -1114,6 +1125,26 @@ } } +static inline u32 r100_io_rreg(struct radeon_device *rdev, u32 reg) +{ + if (reg < rdev->rio_mem_size) + return ioread32(rdev->rio_mem + reg); + else { + iowrite32(reg, rdev->rio_mem + RADEON_MM_INDEX); + return ioread32(rdev->rio_mem + RADEON_MM_DATA); + } +} + +static inline void r100_io_wreg(struct radeon_device *rdev, u32 reg, u32 v) +{ + if (reg < rdev->rio_mem_size) + iowrite32(v, rdev->rio_mem + reg); + else { + iowrite32(reg, rdev->rio_mem + RADEON_MM_INDEX); + iowrite32(v, rdev->rio_mem + RADEON_MM_DATA); + } +} + /* * Cast helper */ @@ -1152,6 +1183,8 @@ WREG32_PLL(reg, tmp_); \ } while (0) #define DREG32_SYS(sqf, rdev, reg) seq_printf((sqf), #reg " : 0x%08X\n", r100_mm_rreg((rdev), (reg))) +#define RREG32_IO(reg) r100_io_rreg(rdev, (reg)) +#define WREG32_IO(reg, v) r100_io_wreg(rdev, (reg), (v)) /* * Indirect registers accessor @@ -1415,6 +1448,13 @@ extern void evergreen_disable_interrupt_state(struct radeon_device *rdev); extern int evergreen_irq_set(struct radeon_device *rdev); +/* radeon_acpi.c */ +#if defined(CONFIG_ACPI) +extern int radeon_acpi_init(struct radeon_device *rdev); +#else +static inline int radeon_acpi_init(struct radeon_device *rdev) { return 0; } +#endif + /* evergreen */ struct evergreen_mc_save { u32 vga_control[6]; --- linux-2.6.35.orig/drivers/gpu/drm/radeon/atom.h +++ linux-2.6.35/drivers/gpu/drm/radeon/atom.h @@ -113,6 +113,8 @@ struct drm_device *dev; void (* reg_write)(struct card_info *, uint32_t, uint32_t); /* filled by driver */ uint32_t (* reg_read)(struct card_info *, uint32_t); /* filled by driver */ + void (* ioreg_write)(struct card_info *, uint32_t, uint32_t); /* filled by driver */ + uint32_t (* ioreg_read)(struct card_info *, uint32_t); /* filled by driver */ void (* mc_write)(struct card_info *, uint32_t, uint32_t); /* filled by driver */ uint32_t (* mc_read)(struct card_info *, uint32_t); /* filled by driver */ void (* pll_write)(struct card_info *, uint32_t, uint32_t); /* filled by driver */ --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_device.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_device.c @@ -199,7 +199,7 @@ mc->mc_vram_size = mc->aper_size; } mc->vram_end = mc->vram_start + mc->mc_vram_size - 1; - if (rdev->flags & RADEON_IS_AGP && mc->vram_end > mc->gtt_start && mc->vram_end <= mc->gtt_end) { + if (rdev->flags & RADEON_IS_AGP && mc->vram_end > mc->gtt_start && mc->vram_start <= mc->gtt_end) { dev_warn(rdev->dev, "limiting VRAM to PCI aperture size\n"); mc->real_vram_size = mc->aper_size; mc->mc_vram_size = mc->aper_size; @@ -415,6 +415,22 @@ return r; } +static void cail_ioreg_write(struct card_info *info, uint32_t reg, uint32_t val) +{ + struct radeon_device *rdev = info->dev->dev_private; + + WREG32_IO(reg*4, val); +} + +static uint32_t cail_ioreg_read(struct card_info *info, uint32_t reg) +{ + struct radeon_device *rdev = info->dev->dev_private; + uint32_t r; + + r = RREG32_IO(reg*4); + return r; +} + int radeon_atombios_init(struct radeon_device *rdev) { struct card_info *atom_card_info = @@ -427,6 +443,15 @@ atom_card_info->dev = rdev->ddev; atom_card_info->reg_read = cail_reg_read; atom_card_info->reg_write = cail_reg_write; + /* needed for iio ops */ + if (rdev->rio_mem) { + atom_card_info->ioreg_read = cail_ioreg_read; + atom_card_info->ioreg_write = cail_ioreg_write; + } else { + DRM_ERROR("Unable to find PCI I/O BAR; using MMIO for ATOM IIO\n"); + atom_card_info->ioreg_read = cail_reg_read; + atom_card_info->ioreg_write = cail_reg_write; + } atom_card_info->mc_read = cail_mc_read; atom_card_info->mc_write = cail_mc_write; atom_card_info->pll_read = cail_pll_read; @@ -573,7 +598,7 @@ struct pci_dev *pdev, uint32_t flags) { - int r; + int r, i; int dma_bits; rdev->shutdown = false; @@ -659,6 +684,17 @@ DRM_INFO("register mmio base: 0x%08X\n", (uint32_t)rdev->rmmio_base); DRM_INFO("register mmio size: %u\n", (unsigned)rdev->rmmio_size); + /* io port mapping */ + for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { + if (pci_resource_flags(rdev->pdev, i) & IORESOURCE_IO) { + rdev->rio_mem_size = pci_resource_len(rdev->pdev, i); + rdev->rio_mem = pci_iomap(rdev->pdev, i, rdev->rio_mem_size); + break; + } + } + if (rdev->rio_mem == NULL) + DRM_ERROR("Unable to find PCI I/O BAR\n"); + /* if we have > 1 VGA cards, then disable the radeon VGA resources */ /* this will fail for cards that aren't VGA class devices, just * ignore it */ @@ -701,6 +737,9 @@ destroy_workqueue(rdev->wq); vga_switcheroo_unregister_client(rdev->pdev); vga_client_register(rdev->pdev, NULL, NULL, NULL); + if (rdev->rio_mem) + pci_iounmap(rdev->pdev, rdev->rio_mem); + rdev->rio_mem = NULL; iounmap(rdev->rmmio); rdev->rmmio = NULL; } --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_i2c.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_i2c.c @@ -95,6 +95,13 @@ } } + /* switch the pads to ddc mode */ + if (ASIC_IS_DCE3(rdev) && rec->hw_capable) { + temp = RREG32(rec->mask_clk_reg); + temp &= ~(1 << 16); + WREG32(rec->mask_clk_reg, temp); + } + /* clear the output pin values */ temp = RREG32(rec->a_clk_reg) & ~rec->a_clk_mask; WREG32(rec->a_clk_reg, temp); --- linux-2.6.35.orig/drivers/gpu/drm/radeon/evergreen.c +++ linux-2.6.35/drivers/gpu/drm/radeon/evergreen.c @@ -658,6 +658,43 @@ return 0; } +static int evergreen_cp_start(struct radeon_device *rdev) +{ + int r; + uint32_t cp_me; + + r = radeon_ring_lock(rdev, 7); + if (r) { + DRM_ERROR("radeon: cp failed to lock ring (%d).\n", r); + return r; + } + radeon_ring_write(rdev, PACKET3(PACKET3_ME_INITIALIZE, 5)); + radeon_ring_write(rdev, 0x1); + radeon_ring_write(rdev, 0x0); + radeon_ring_write(rdev, rdev->config.evergreen.max_hw_contexts - 1); + radeon_ring_write(rdev, PACKET3_ME_INITIALIZE_DEVICE_ID(1)); + radeon_ring_write(rdev, 0); + radeon_ring_write(rdev, 0); + radeon_ring_unlock_commit(rdev); + + cp_me = 0xff; + WREG32(CP_ME_CNTL, cp_me); + + r = radeon_ring_lock(rdev, 4); + if (r) { + DRM_ERROR("radeon: cp failed to lock ring (%d).\n", r); + return r; + } + /* init some VGT regs */ + radeon_ring_write(rdev, PACKET3(PACKET3_SET_CONTEXT_REG, 2)); + radeon_ring_write(rdev, (VGT_VERTEX_REUSE_BLOCK_CNTL - PACKET3_SET_CONTEXT_REG_START) >> 2); + radeon_ring_write(rdev, 0xe); + radeon_ring_write(rdev, 0x10); + radeon_ring_unlock_commit(rdev); + + return 0; +} + int evergreen_cp_resume(struct radeon_device *rdev) { u32 tmp; @@ -702,7 +739,7 @@ rdev->cp.rptr = RREG32(CP_RB_RPTR); rdev->cp.wptr = RREG32(CP_RB_WPTR); - r600_cp_start(rdev); + evergreen_cp_start(rdev); rdev->cp.ready = true; r = radeon_ring_test(rdev); if (r) { @@ -1106,14 +1143,25 @@ EVERGREEN_MAX_BACKENDS_MASK)); break; } - } else - gb_backend_map = - evergreen_get_tile_pipe_to_backend_map(rdev, - rdev->config.evergreen.max_tile_pipes, - rdev->config.evergreen.max_backends, - ((EVERGREEN_MAX_BACKENDS_MASK << - rdev->config.evergreen.max_backends) & - EVERGREEN_MAX_BACKENDS_MASK)); + } else { + switch (rdev->family) { + case CHIP_CYPRESS: + case CHIP_HEMLOCK: + gb_backend_map = 0x66442200; + break; + case CHIP_JUNIPER: + gb_backend_map = 0x00006420; + break; + default: + gb_backend_map = + evergreen_get_tile_pipe_to_backend_map(rdev, + rdev->config.evergreen.max_tile_pipes, + rdev->config.evergreen.max_backends, + ((EVERGREEN_MAX_BACKENDS_MASK << + rdev->config.evergreen.max_backends) & + EVERGREEN_MAX_BACKENDS_MASK)); + } + } WREG32(GB_BACKEND_MAP, gb_backend_map); WREG32(GB_ADDR_CONFIG, gb_addr_config); --- linux-2.6.35.orig/drivers/gpu/drm/radeon/atom.c +++ linux-2.6.35/drivers/gpu/drm/radeon/atom.c @@ -108,12 +108,11 @@ base++; break; case ATOM_IIO_READ: - temp = ctx->card->reg_read(ctx->card, CU16(base + 1)); + temp = ctx->card->ioreg_read(ctx->card, CU16(base + 1)); base += 3; break; case ATOM_IIO_WRITE: - (void)ctx->card->reg_read(ctx->card, CU16(base + 1)); - ctx->card->reg_write(ctx->card, CU16(base + 1), temp); + ctx->card->ioreg_write(ctx->card, CU16(base + 1), temp); base += 3; break; case ATOM_IIO_CLEAR: --- linux-2.6.35.orig/drivers/gpu/drm/radeon/r600d.h +++ linux-2.6.35/drivers/gpu/drm/radeon/r600d.h @@ -245,6 +245,7 @@ #define HDP_NONSURFACE_SIZE 0x2C0C #define HDP_REG_COHERENCY_FLUSH_CNTL 0x54A0 #define HDP_TILING_CONFIG 0x2F3C +#define HDP_DEBUG1 0x2F34 #define MC_VM_AGP_TOP 0x2184 #define MC_VM_AGP_BOT 0x2188 --- linux-2.6.35.orig/drivers/gpu/drm/radeon/rv515.c +++ linux-2.6.35/drivers/gpu/drm/radeon/rv515.c @@ -925,7 +925,9 @@ struct drm_display_mode *mode1 = NULL; struct rv515_watermark wm0; struct rv515_watermark wm1; - u32 tmp, d1mode_priority_a_cnt, d2mode_priority_a_cnt; + u32 tmp; + u32 d1mode_priority_a_cnt = MODE_PRIORITY_OFF; + u32 d2mode_priority_a_cnt = MODE_PRIORITY_OFF; fixed20_12 priority_mark02, priority_mark12, fill_rate; fixed20_12 a, b; @@ -999,10 +1001,6 @@ d1mode_priority_a_cnt |= MODE_PRIORITY_ALWAYS_ON; d2mode_priority_a_cnt |= MODE_PRIORITY_ALWAYS_ON; } - WREG32(D1MODE_PRIORITY_A_CNT, d1mode_priority_a_cnt); - WREG32(D1MODE_PRIORITY_B_CNT, d1mode_priority_a_cnt); - WREG32(D2MODE_PRIORITY_A_CNT, d2mode_priority_a_cnt); - WREG32(D2MODE_PRIORITY_B_CNT, d2mode_priority_a_cnt); } else if (mode0) { if (dfixed_trunc(wm0.dbpp) > 64) a.full = dfixed_div(wm0.dbpp, wm0.num_line_pair); @@ -1032,11 +1030,7 @@ d1mode_priority_a_cnt = dfixed_trunc(priority_mark02); if (rdev->disp_priority == 2) d1mode_priority_a_cnt |= MODE_PRIORITY_ALWAYS_ON; - WREG32(D1MODE_PRIORITY_A_CNT, d1mode_priority_a_cnt); - WREG32(D1MODE_PRIORITY_B_CNT, d1mode_priority_a_cnt); - WREG32(D2MODE_PRIORITY_A_CNT, MODE_PRIORITY_OFF); - WREG32(D2MODE_PRIORITY_B_CNT, MODE_PRIORITY_OFF); - } else { + } else if (mode1) { if (dfixed_trunc(wm1.dbpp) > 64) a.full = dfixed_div(wm1.dbpp, wm1.num_line_pair); else @@ -1065,11 +1059,12 @@ d2mode_priority_a_cnt = dfixed_trunc(priority_mark12); if (rdev->disp_priority == 2) d2mode_priority_a_cnt |= MODE_PRIORITY_ALWAYS_ON; - WREG32(D1MODE_PRIORITY_A_CNT, MODE_PRIORITY_OFF); - WREG32(D1MODE_PRIORITY_B_CNT, MODE_PRIORITY_OFF); - WREG32(D2MODE_PRIORITY_A_CNT, d2mode_priority_a_cnt); - WREG32(D2MODE_PRIORITY_B_CNT, d2mode_priority_a_cnt); } + + WREG32(D1MODE_PRIORITY_A_CNT, d1mode_priority_a_cnt); + WREG32(D1MODE_PRIORITY_B_CNT, d1mode_priority_a_cnt); + WREG32(D2MODE_PRIORITY_A_CNT, d2mode_priority_a_cnt); + WREG32(D2MODE_PRIORITY_B_CNT, d2mode_priority_a_cnt); } void rv515_bandwidth_update(struct radeon_device *rdev) --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_legacy_crtc.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_legacy_crtc.c @@ -272,7 +272,7 @@ if (!ref_div) return 1; - vcoFreq = ((unsigned)ref_freq & fb_div) / ref_div; + vcoFreq = ((unsigned)ref_freq * fb_div) / ref_div; /* * This is horribly crude: the VCO frequency range is divided into --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_irq_kms.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_irq_kms.c @@ -121,11 +121,12 @@ * chips. Disable MSI on them for now. */ if ((rdev->family >= CHIP_RV380) && - (!(rdev->flags & RADEON_IS_IGP))) { + (!(rdev->flags & RADEON_IS_IGP)) && + (!(rdev->flags & RADEON_IS_AGP))) { int ret = pci_enable_msi(rdev->pdev); if (!ret) { rdev->msi_enabled = 1; - DRM_INFO("radeon: using MSI.\n"); + dev_info(rdev->dev, "radeon: using MSI.\n"); } } rdev->irq.installed = true; --- linux-2.6.35.orig/drivers/gpu/drm/radeon/rv770d.h +++ linux-2.6.35/drivers/gpu/drm/radeon/rv770d.h @@ -128,6 +128,7 @@ #define HDP_NONSURFACE_SIZE 0x2C0C #define HDP_REG_COHERENCY_FLUSH_CNTL 0x54A0 #define HDP_TILING_CONFIG 0x2F3C +#define HDP_DEBUG1 0x2F34 #define MC_SHARED_CHMAP 0x2004 #define NOOFCHAN_SHIFT 12 --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_kms.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_kms.c @@ -49,7 +49,7 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags) { struct radeon_device *rdev; - int r; + int r, acpi_status; rdev = kzalloc(sizeof(struct radeon_device), GFP_KERNEL); if (rdev == NULL) { @@ -77,6 +77,12 @@ dev_err(&dev->pdev->dev, "Fatal error during GPU init\n"); goto out; } + + /* Call ACPI methods */ + acpi_status = radeon_acpi_init(rdev); + if (acpi_status) + dev_err(&dev->pdev->dev, "Error during ACPI methods call\n"); + /* Again modeset_init should fail only on fatal error * otherwise it should provide enough functionalities * for shadowfb to run @@ -106,7 +112,9 @@ info = data; value_ptr = (uint32_t *)((unsigned long)info->value); - value = *value_ptr; + if (DRM_COPY_FROM_USER(&value, value_ptr, sizeof(value))) + return -EFAULT; + switch (info->request) { case RADEON_INFO_DEVICE_ID: value = dev->pci_device; --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_atombios.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_atombios.c @@ -206,6 +206,7 @@ uint16_t *line_mux, struct radeon_hpd *hpd) { + struct radeon_device *rdev = dev->dev_private; /* Asus M2A-VM HDMI board lists the DVI port as HDMI */ if ((dev->pdev->device == 0x791e) && @@ -308,13 +309,22 @@ } } - /* Acer laptop reports DVI-D as DVI-I */ + /* Acer laptop reports DVI-D as DVI-I and hpd pins reversed */ if ((dev->pdev->device == 0x95c4) && (dev->pdev->subsystem_vendor == 0x1025) && (dev->pdev->subsystem_device == 0x013c)) { + struct radeon_gpio_rec gpio; + if ((*connector_type == DRM_MODE_CONNECTOR_DVII) && - (supported_device == ATOM_DEVICE_DFP1_SUPPORT)) + (supported_device == ATOM_DEVICE_DFP1_SUPPORT)) { + gpio = radeon_lookup_gpio(rdev, 6); + *hpd = radeon_atom_get_hpd_info_from_gpio(rdev, &gpio); *connector_type = DRM_MODE_CONNECTOR_DVID; + } else if ((*connector_type == DRM_MODE_CONNECTOR_HDMIA) && + (supported_device == ATOM_DEVICE_DFP1_SUPPORT)) { + gpio = radeon_lookup_gpio(rdev, 7); + *hpd = radeon_atom_get_hpd_info_from_gpio(rdev, &gpio); + } } /* XFX Pine Group device rv730 reports no VGA DDC lines @@ -1049,7 +1059,7 @@ } break; case 2: - if (igp_info->info_2.ucMemoryType & 0x0f) + if (igp_info->info_2.ulBootUpSidePortClock) return true; break; default: --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_acpi.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_acpi.c @@ -0,0 +1,67 @@ +#include +#include +#include +#include +#include + +#include "drmP.h" +#include "drm.h" +#include "drm_sarea.h" +#include "drm_crtc_helper.h" +#include "radeon.h" + +#include + +/* Call the ATIF method + * + * Note: currently we discard the output + */ +static int radeon_atif_call(acpi_handle handle) +{ + acpi_status status; + union acpi_object atif_arg_elements[2]; + struct acpi_object_list atif_arg; + struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL}; + + atif_arg.count = 2; + atif_arg.pointer = &atif_arg_elements[0]; + + atif_arg_elements[0].type = ACPI_TYPE_INTEGER; + atif_arg_elements[0].integer.value = 0; + atif_arg_elements[1].type = ACPI_TYPE_INTEGER; + atif_arg_elements[1].integer.value = NULL; + + status = acpi_evaluate_object(handle, "ATIF", &atif_arg, &buffer); + + /* Fail only if calling the method fails and ATIF is supported */ + if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { + printk(KERN_INFO "failed to evaluate ATIF got %s\n", acpi_format_exception(status)); + kfree(buffer.pointer); + return 1; + } + + kfree(buffer.pointer); + return 0; +} + +/* Call all ACPI methods here */ +int radeon_acpi_init(struct radeon_device *rdev) +{ + acpi_handle handle; + int ret; + + /* No need to proceed if we're sure that ATIF is not supported */ + if (!ASIC_IS_AVIVO(rdev) || !rdev->bios) + return 0; + + /* Get the device handle */ + handle = DEVICE_ACPI_HANDLE(&rdev->pdev->dev); + + /* Call the ATIF method */ + ret = radeon_atif_call(handle); + if (ret) + return ret; + + return 0; +} + --- linux-2.6.35.orig/drivers/gpu/drm/radeon/Makefile +++ linux-2.6.35/drivers/gpu/drm/radeon/Makefile @@ -69,5 +69,6 @@ radeon-$(CONFIG_COMPAT) += radeon_ioc32.o radeon-$(CONFIG_VGA_SWITCHEROO) += radeon_atpx_handler.o +radeon-$(CONFIG_ACPI) += radeon_acpi.o obj-$(CONFIG_DRM_RADEON)+= radeon.o --- linux-2.6.35.orig/drivers/gpu/drm/nouveau/nouveau_state.c +++ linux-2.6.35/drivers/gpu/drm/nouveau/nouveau_state.c @@ -686,6 +686,24 @@ return 0; } +static void nouveau_apply_noaccel_quirks (struct drm_device *dev) +{ + struct drm_nouveau_private *dev_priv = dev->dev_private; + if (nouveau_noaccel == -1) { + /* If not specified, noaccel should default off */ + nouveau_noaccel = 0; + + /* MacBook Pro laptops with 9600GT cards hang with acceleration */ + /* See https://bugs.launchpad.net/bugs/546393 */ + if ((dev->pdev->device == 0x0647) && + (dev->pdev->subsystem_vendor == 0x106b)) { + nouveau_noaccel = 1; + NV_INFO(dev, "Detected MacBook Pro 9600GT chip. " + "Disabling acceleration\n"); + } + } +} + int nouveau_load(struct drm_device *dev, unsigned long flags) { struct drm_nouveau_private *dev_priv; @@ -811,6 +829,9 @@ else if (dev->pci_device == 0x01f0) dev_priv->flags |= NV_NFORCE2; + /* Apply noaccel quirks */ + nouveau_apply_noaccel_quirks(dev); + /* For kernel modesetting, init card now and bring up fbcon */ if (drm_core_check_feature(dev, DRIVER_MODESET)) { int ret = nouveau_card_init(dev); --- linux-2.6.35.orig/drivers/gpu/drm/nouveau/nouveau_drv.c +++ linux-2.6.35/drivers/gpu/drm/nouveau/nouveau_drv.c @@ -76,7 +76,7 @@ module_param_named(ignorelid, nouveau_ignorelid, int, 0400); MODULE_PARM_DESC(noaccel, "Disable all acceleration"); -int nouveau_noaccel = 0; +int nouveau_noaccel = -1; module_param_named(noaccel, nouveau_noaccel, int, 0400); MODULE_PARM_DESC(nofbaccel, "Disable fbcon acceleration"); --- linux-2.6.35.orig/drivers/gpu/drm/nouveau/nv50_instmem.c +++ linux-2.6.35/drivers/gpu/drm/nouveau/nv50_instmem.c @@ -141,6 +141,8 @@ chan->file_priv = (struct drm_file *)-2; dev_priv->fifos[0] = dev_priv->fifos[127] = chan; + INIT_LIST_HEAD(&chan->ramht_refs); + /* Channel's PRAMIN object + heap */ ret = nouveau_gpuobj_new_fake(dev, 0, c_offset, c_size, 0, NULL, &chan->ramin); --- linux-2.6.35.orig/drivers/pcmcia/pcmcia_resource.c +++ linux-2.6.35/drivers/pcmcia/pcmcia_resource.c @@ -651,7 +651,7 @@ #ifdef CONFIG_PCMCIA_PROBE /* mask of IRQs already reserved by other cards, we should avoid using them */ -static u8 pcmcia_used_irq[NR_IRQS]; +static u8 pcmcia_used_irq[32]; static irqreturn_t test_action(int cpl, void *dev_id) { @@ -674,6 +674,9 @@ for (try = 0; try < 64; try++) { irq = try % 32; + if (irq > NR_IRQS) + continue; + /* marked as available by driver, not blocked by userspace? */ if (!((mask >> irq) & 1)) continue; --- linux-2.6.35.orig/drivers/mtd/nand/nand_base.c +++ linux-2.6.35/drivers/mtd/nand/nand_base.c @@ -2852,6 +2852,7 @@ */ if (id_data[0] == id_data[6] && id_data[1] == id_data[7] && id_data[0] == NAND_MFR_SAMSUNG && + (chip->cellinfo & NAND_CI_CELLTYPE_MSK) && id_data[5] != 0x00) { /* Calc pagesize */ mtd->writesize = 2048 << (extid & 0x03); --- linux-2.6.35.orig/drivers/mtd/nand/plat_nand.c +++ linux-2.6.35/drivers/mtd/nand/plat_nand.c @@ -37,6 +37,11 @@ struct resource *res; int err = 0; + if (pdata->chip.nr_chips < 1) { + dev_err(&pdev->dev, "invalid number of chips specified\n"); + return -EINVAL; + } + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) return -ENXIO; @@ -91,7 +96,7 @@ } /* Scan to find existance of the device */ - if (nand_scan(&data->mtd, 1)) { + if (nand_scan(&data->mtd, pdata->chip.nr_chips)) { err = -ENXIO; goto out; } --- linux-2.6.35.orig/drivers/mtd/nand/pxa3xx_nand.c +++ linux-2.6.35/drivers/mtd/nand/pxa3xx_nand.c @@ -363,7 +363,7 @@ #define tAR_NDTR1(r) (((r) >> 0) & 0xf) /* convert nano-seconds to nand flash controller clock cycles */ -#define ns2cycle(ns, clk) (int)(((ns) * (clk / 1000000) / 1000) - 1) +#define ns2cycle(ns, clk) (int)((ns) * (clk / 1000000) / 1000) /* convert nand flash controller clock cycles to nano-seconds */ #define cycle2ns(c, clk) ((((c) + 1) * 1000000 + clk / 500) / (clk / 1000)) --- linux-2.6.35.orig/drivers/mtd/nand/mxc_nand.c +++ linux-2.6.35/drivers/mtd/nand/mxc_nand.c @@ -604,8 +604,8 @@ /* Command pre-processing step */ switch (command) { case NAND_CMD_RESET: - send_cmd(host, command, false); preset(mtd); + send_cmd(host, command, false); break; case NAND_CMD_STATUS: --- linux-2.6.35.orig/drivers/mtd/lpddr/lpddr_cmds.c +++ linux-2.6.35/drivers/mtd/lpddr/lpddr_cmds.c @@ -98,7 +98,7 @@ numchips = lpddr->numchips / lpddr->qinfo->HWPartsNum; for (i = 0; i < numchips; i++) { shared[i].writing = shared[i].erasing = NULL; - spin_lock_init(&shared[i].lock); + mutex_init(&shared[i].lock); for (j = 0; j < lpddr->qinfo->HWPartsNum; j++) { *chip = lpddr->chips[i]; chip->start += j << lpddr->chipshift; @@ -217,7 +217,7 @@ */ struct flchip_shared *shared = chip->priv; struct flchip *contender; - spin_lock(&shared->lock); + mutex_lock(&shared->lock); contender = shared->writing; if (contender && contender != chip) { /* @@ -230,7 +230,7 @@ * get_chip returns success we're clear to go ahead. */ ret = mutex_trylock(&contender->mutex); - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); if (!ret) goto retry; mutex_unlock(&chip->mutex); @@ -245,7 +245,7 @@ mutex_unlock(&contender->mutex); return ret; } - spin_lock(&shared->lock); + mutex_lock(&shared->lock); /* We should not own chip if it is already in FL_SYNCING * state. Put contender and retry. */ @@ -261,7 +261,7 @@ Must sleep in such a case. */ if (mode == FL_ERASING && shared->erasing && shared->erasing->oldstate == FL_ERASING) { - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); set_current_state(TASK_UNINTERRUPTIBLE); add_wait_queue(&chip->wq, &wait); mutex_unlock(&chip->mutex); @@ -275,7 +275,7 @@ shared->writing = chip; if (mode == FL_ERASING) shared->erasing = chip; - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); } ret = chip_ready(map, chip, mode); @@ -348,7 +348,7 @@ { if (chip->priv) { struct flchip_shared *shared = chip->priv; - spin_lock(&shared->lock); + mutex_lock(&shared->lock); if (shared->writing == chip && chip->oldstate == FL_READY) { /* We own the ability to write, but we're done */ shared->writing = shared->erasing; @@ -356,7 +356,7 @@ /* give back the ownership */ struct flchip *loaner = shared->writing; mutex_lock(&loaner->mutex); - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); mutex_unlock(&chip->mutex); put_chip(map, loaner); mutex_lock(&chip->mutex); @@ -374,11 +374,11 @@ * Don't let the switch below mess things up since * we don't have ownership to resume anything. */ - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); wake_up(&chip->wq); return; } - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); } switch (chip->oldstate) { --- linux-2.6.35.orig/drivers/mtd/chips/cfi_cmdset_0001.c +++ linux-2.6.35/drivers/mtd/chips/cfi_cmdset_0001.c @@ -717,7 +717,7 @@ chip = &newcfi->chips[0]; for (i = 0; i < cfi->numchips; i++) { shared[i].writing = shared[i].erasing = NULL; - spin_lock_init(&shared[i].lock); + mutex_init(&shared[i].lock); for (j = 0; j < numparts; j++) { *chip = cfi->chips[i]; chip->start += j << partshift; @@ -886,7 +886,7 @@ */ struct flchip_shared *shared = chip->priv; struct flchip *contender; - spin_lock(&shared->lock); + mutex_lock(&shared->lock); contender = shared->writing; if (contender && contender != chip) { /* @@ -899,7 +899,7 @@ * get_chip returns success we're clear to go ahead. */ ret = mutex_trylock(&contender->mutex); - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); if (!ret) goto retry; mutex_unlock(&chip->mutex); @@ -914,7 +914,7 @@ mutex_unlock(&contender->mutex); return ret; } - spin_lock(&shared->lock); + mutex_lock(&shared->lock); /* We should not own chip if it is already * in FL_SYNCING state. Put contender and retry. */ @@ -930,7 +930,7 @@ * on this chip. Sleep. */ if (mode == FL_ERASING && shared->erasing && shared->erasing->oldstate == FL_ERASING) { - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); set_current_state(TASK_UNINTERRUPTIBLE); add_wait_queue(&chip->wq, &wait); mutex_unlock(&chip->mutex); @@ -944,7 +944,7 @@ shared->writing = chip; if (mode == FL_ERASING) shared->erasing = chip; - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); } ret = chip_ready(map, chip, adr, mode); if (ret == -EAGAIN) @@ -959,7 +959,7 @@ if (chip->priv) { struct flchip_shared *shared = chip->priv; - spin_lock(&shared->lock); + mutex_lock(&shared->lock); if (shared->writing == chip && chip->oldstate == FL_READY) { /* We own the ability to write, but we're done */ shared->writing = shared->erasing; @@ -967,7 +967,7 @@ /* give back ownership to who we loaned it from */ struct flchip *loaner = shared->writing; mutex_lock(&loaner->mutex); - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); mutex_unlock(&chip->mutex); put_chip(map, loaner, loaner->start); mutex_lock(&chip->mutex); @@ -985,11 +985,11 @@ * Don't let the switch below mess things up since * we don't have ownership to resume anything. */ - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); wake_up(&chip->wq); return; } - spin_unlock(&shared->lock); + mutex_unlock(&shared->lock); } switch(chip->oldstate) { --- linux-2.6.35.orig/drivers/infiniband/hw/cxgb3/cxio_hal.h +++ linux-2.6.35/drivers/infiniband/hw/cxgb3/cxio_hal.h @@ -53,7 +53,7 @@ #define T3_MAX_PBL_SIZE 256 #define T3_MAX_RQ_SIZE 1024 #define T3_MAX_QP_DEPTH (T3_MAX_RQ_SIZE-1) -#define T3_MAX_CQ_DEPTH 262144 +#define T3_MAX_CQ_DEPTH 65536 #define T3_MAX_NUM_STAG (1<<15) #define T3_MAX_MR_SIZE 0x100000000ULL #define T3_PAGESIZE_MASK 0xffff000 /* 4KB-128MB */ --- linux-2.6.35.orig/drivers/net/e100.c +++ linux-2.6.35/drivers/net/e100.c @@ -1779,6 +1779,7 @@ for (cb = nic->cb_to_clean; cb->status & cpu_to_le16(cb_complete); cb = nic->cb_to_clean = cb->next) { + rmb(); /* read skb after status */ netif_printk(nic, tx_done, KERN_DEBUG, nic->netdev, "cb[%d]->status = 0x%04X\n", (int)(((void*)cb - (void*)nic->cbs)/sizeof(struct cb)), @@ -1927,6 +1928,7 @@ netif_printk(nic, rx_status, KERN_DEBUG, nic->netdev, "status=0x%04X\n", rfd_status); + rmb(); /* read size after status bit */ /* If data isn't ready, nothing to indicate */ if (unlikely(!(rfd_status & cb_complete))) { --- linux-2.6.35.orig/drivers/net/smsc911x.c +++ linux-2.6.35/drivers/net/smsc911x.c @@ -84,8 +84,7 @@ */ spinlock_t mac_lock; - /* spinlock to ensure 16-bit accesses are serialised. - * unused with a 32-bit bus */ + /* spinlock to ensure register accesses are serialised */ spinlock_t dev_lock; struct phy_device *phy_dev; @@ -118,37 +117,33 @@ unsigned int hashlo; }; -/* The 16-bit access functions are significantly slower, due to the locking - * necessary. If your bus hardware can be configured to do this for you - * (in response to a single 32-bit operation from software), you should use - * the 32-bit access functions instead. */ - -static inline u32 smsc911x_reg_read(struct smsc911x_data *pdata, u32 reg) +static inline u32 __smsc911x_reg_read(struct smsc911x_data *pdata, u32 reg) { if (pdata->config.flags & SMSC911X_USE_32BIT) return readl(pdata->ioaddr + reg); - if (pdata->config.flags & SMSC911X_USE_16BIT) { - u32 data; - unsigned long flags; - - /* these two 16-bit reads must be performed consecutively, so - * must not be interrupted by our own ISR (which would start - * another read operation) */ - spin_lock_irqsave(&pdata->dev_lock, flags); - data = ((readw(pdata->ioaddr + reg) & 0xFFFF) | + if (pdata->config.flags & SMSC911X_USE_16BIT) + return ((readw(pdata->ioaddr + reg) & 0xFFFF) | ((readw(pdata->ioaddr + reg + 2) & 0xFFFF) << 16)); - spin_unlock_irqrestore(&pdata->dev_lock, flags); - - return data; - } BUG(); return 0; } -static inline void smsc911x_reg_write(struct smsc911x_data *pdata, u32 reg, - u32 val) +static inline u32 smsc911x_reg_read(struct smsc911x_data *pdata, u32 reg) +{ + u32 data; + unsigned long flags; + + spin_lock_irqsave(&pdata->dev_lock, flags); + data = __smsc911x_reg_read(pdata, reg); + spin_unlock_irqrestore(&pdata->dev_lock, flags); + + return data; +} + +static inline void __smsc911x_reg_write(struct smsc911x_data *pdata, u32 reg, + u32 val) { if (pdata->config.flags & SMSC911X_USE_32BIT) { writel(val, pdata->ioaddr + reg); @@ -156,44 +151,54 @@ } if (pdata->config.flags & SMSC911X_USE_16BIT) { - unsigned long flags; - - /* these two 16-bit writes must be performed consecutively, so - * must not be interrupted by our own ISR (which would start - * another read operation) */ - spin_lock_irqsave(&pdata->dev_lock, flags); writew(val & 0xFFFF, pdata->ioaddr + reg); writew((val >> 16) & 0xFFFF, pdata->ioaddr + reg + 2); - spin_unlock_irqrestore(&pdata->dev_lock, flags); return; } BUG(); } +static inline void smsc911x_reg_write(struct smsc911x_data *pdata, u32 reg, + u32 val) +{ + unsigned long flags; + + spin_lock_irqsave(&pdata->dev_lock, flags); + __smsc911x_reg_write(pdata, reg, val); + spin_unlock_irqrestore(&pdata->dev_lock, flags); +} + /* Writes a packet to the TX_DATA_FIFO */ static inline void smsc911x_tx_writefifo(struct smsc911x_data *pdata, unsigned int *buf, unsigned int wordcount) { + unsigned long flags; + + spin_lock_irqsave(&pdata->dev_lock, flags); + if (pdata->config.flags & SMSC911X_SWAP_FIFO) { while (wordcount--) - smsc911x_reg_write(pdata, TX_DATA_FIFO, swab32(*buf++)); - return; + __smsc911x_reg_write(pdata, TX_DATA_FIFO, + swab32(*buf++)); + goto out; } if (pdata->config.flags & SMSC911X_USE_32BIT) { writesl(pdata->ioaddr + TX_DATA_FIFO, buf, wordcount); - return; + goto out; } if (pdata->config.flags & SMSC911X_USE_16BIT) { while (wordcount--) - smsc911x_reg_write(pdata, TX_DATA_FIFO, *buf++); - return; + __smsc911x_reg_write(pdata, TX_DATA_FIFO, *buf++); + goto out; } BUG(); +out: + spin_unlock_irqrestore(&pdata->dev_lock, flags); } /* Reads a packet out of the RX_DATA_FIFO */ @@ -201,24 +206,31 @@ smsc911x_rx_readfifo(struct smsc911x_data *pdata, unsigned int *buf, unsigned int wordcount) { + unsigned long flags; + + spin_lock_irqsave(&pdata->dev_lock, flags); + if (pdata->config.flags & SMSC911X_SWAP_FIFO) { while (wordcount--) - *buf++ = swab32(smsc911x_reg_read(pdata, RX_DATA_FIFO)); - return; + *buf++ = swab32(__smsc911x_reg_read(pdata, + RX_DATA_FIFO)); + goto out; } if (pdata->config.flags & SMSC911X_USE_32BIT) { readsl(pdata->ioaddr + RX_DATA_FIFO, buf, wordcount); - return; + goto out; } if (pdata->config.flags & SMSC911X_USE_16BIT) { while (wordcount--) - *buf++ = smsc911x_reg_read(pdata, RX_DATA_FIFO); - return; + *buf++ = __smsc911x_reg_read(pdata, RX_DATA_FIFO); + goto out; } BUG(); +out: + spin_unlock_irqrestore(&pdata->dev_lock, flags); } /* waits for MAC not busy, with timeout. Only called by smsc911x_mac_read --- linux-2.6.35.orig/drivers/net/xen-netfront.c +++ linux-2.6.35/drivers/net/xen-netfront.c @@ -1621,6 +1621,7 @@ if (xennet_connect(netdev) != 0) break; xenbus_switch_state(dev, XenbusStateConnected); + netif_notify_peers(netdev); break; case XenbusStateClosing: --- linux-2.6.35.orig/drivers/net/eql.c +++ linux-2.6.35/drivers/net/eql.c @@ -555,6 +555,8 @@ equalizer_t *eql; master_config_t mc; + memset(&mc, 0, sizeof(master_config_t)); + if (eql_is_master(dev)) { eql = netdev_priv(dev); mc.max_slaves = eql->max_slaves; --- linux-2.6.35.orig/drivers/net/ixgbe/ixgbe_main.c +++ linux-2.6.35/drivers/net/ixgbe/ixgbe_main.c @@ -748,6 +748,7 @@ while ((eop_desc->wb.status & cpu_to_le32(IXGBE_TXD_STAT_DD)) && (count < tx_ring->work_limit)) { bool cleaned = false; + rmb(); /* read buffer_info after eop_desc */ for ( ; !cleaned; count++) { struct sk_buff *skb; tx_desc = IXGBE_TX_DESC_ADV(*tx_ring, i); --- linux-2.6.35.orig/drivers/net/cxgb3/cxgb3_main.c +++ linux-2.6.35/drivers/net/cxgb3/cxgb3_main.c @@ -2296,6 +2296,8 @@ case CHELSIO_GET_QSET_NUM:{ struct ch_reg edata; + memset(&edata, 0, sizeof(struct ch_reg)); + edata.cmd = CHELSIO_GET_QSET_NUM; edata.val = pi->nqsets; if (copy_to_user(useraddr, &edata, sizeof(edata))) --- linux-2.6.35.orig/drivers/net/ixgbevf/ixgbevf_main.c +++ linux-2.6.35/drivers/net/ixgbevf/ixgbevf_main.c @@ -231,6 +231,7 @@ while ((eop_desc->wb.status & cpu_to_le32(IXGBE_TXD_STAT_DD)) && (count < tx_ring->work_limit)) { bool cleaned = false; + rmb(); /* read buffer_info after eop_desc */ for ( ; !cleaned; count++) { struct sk_buff *skb; tx_desc = IXGBE_TX_DESC_ADV(*tx_ring, i); @@ -518,6 +519,7 @@ break; (*work_done)++; + rmb(); /* read descriptor and rx_buffer_info after status DD */ if (adapter->flags & IXGBE_FLAG_RX_PS_ENABLED) { hdr_info = le16_to_cpu(ixgbevf_get_hdr_info(rx_desc)); len = (hdr_info & IXGBE_RXDADV_HDRBUFLEN_MASK) >> --- linux-2.6.35.orig/drivers/net/e1000/e1000_main.c +++ linux-2.6.35/drivers/net/e1000/e1000_main.c @@ -3448,6 +3448,7 @@ while ((eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) && (count < tx_ring->count)) { bool cleaned = false; + rmb(); /* read buffer_info after eop_desc */ for ( ; !cleaned; count++) { tx_desc = E1000_TX_DESC(*tx_ring, i); buffer_info = &tx_ring->buffer_info[i]; @@ -3637,6 +3638,7 @@ if (*work_done >= work_to_do) break; (*work_done)++; + rmb(); /* read descriptor and rx_buffer_info after status DD */ status = rx_desc->status; skb = buffer_info->skb; @@ -3843,6 +3845,7 @@ if (*work_done >= work_to_do) break; (*work_done)++; + rmb(); /* read descriptor and rx_buffer_info after status DD */ status = rx_desc->status; skb = buffer_info->skb; --- linux-2.6.35.orig/drivers/net/wireless/ath/regd.h +++ linux-2.6.35/drivers/net/wireless/ath/regd.h @@ -31,7 +31,6 @@ #define NO_CTL 0xff #define SD_NO_CTL 0xE0 #define NO_CTL 0xff -#define CTL_MODE_M 7 #define CTL_11A 0 #define CTL_11B 1 #define CTL_11G 2 --- linux-2.6.35.orig/drivers/net/wireless/ath/ath9k/xmit.c +++ linux-2.6.35/drivers/net/wireless/ath/ath9k/xmit.c @@ -328,6 +328,7 @@ u32 ba[WME_BA_BMP_SIZE >> 5]; int isaggr, txfail, txpending, sendbar = 0, needreset = 0, nbad = 0; bool rc_update = true; + struct ieee80211_tx_rate rates[4]; skb = bf->bf_mpdu; hdr = (struct ieee80211_hdr *)skb->data; @@ -335,12 +336,30 @@ tx_info = IEEE80211_SKB_CB(skb); hw = bf->aphy->hw; + memcpy(rates, tx_info->control.rates, sizeof(rates)); + rcu_read_lock(); /* XXX: use ieee80211_find_sta! */ sta = ieee80211_find_sta_by_hw(hw, hdr->addr1); if (!sta) { rcu_read_unlock(); + + INIT_LIST_HEAD(&bf_head); + while (bf) { + bf_next = bf->bf_next; + + bf->bf_state.bf_type |= BUF_XRETRY; + if ((sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) || + !bf->bf_stale || bf_next != NULL) + list_move_tail(&bf->list, &bf_head); + + ath_tx_rc_status(bf, ts, 0, 0, false); + ath_tx_complete_buf(sc, bf, txq, &bf_head, ts, + 0, 0); + + bf = bf_next; + } return; } @@ -375,6 +394,9 @@ txfail = txpending = 0; bf_next = bf->bf_next; + skb = bf->bf_mpdu; + tx_info = IEEE80211_SKB_CB(skb); + if (ATH_BA_ISSET(ba, ATH_BA_INDEX(seq_st, bf->bf_seqno))) { /* transmit completion, subframe is * acked by block ack */ @@ -428,6 +450,7 @@ spin_unlock_bh(&txq->axq_lock); if (rc_update && (acked_cnt == 1 || txfail_cnt == 1)) { + memcpy(tx_info->control.rates, rates, sizeof(rates)); ath_tx_rc_status(bf, ts, nbad, txok, true); rc_update = false; } else { @@ -487,6 +510,14 @@ bf = bf_next; } + /* prepend un-acked frames to the beginning of the pending frame queue */ + if (!list_empty(&bf_pending)) { + spin_lock_bh(&txq->axq_lock); + list_splice(&bf_pending, &tid->buf_q); + ath_tx_queue_tid(txq, tid); + spin_unlock_bh(&txq->axq_lock); + } + if (tid->state & AGGR_CLEANUP) { if (tid->baw_head == tid->baw_tail) { tid->state &= ~AGGR_ADDBA_COMPLETE; @@ -499,14 +530,6 @@ return; } - /* prepend un-acked frames to the beginning of the pending frame queue */ - if (!list_empty(&bf_pending)) { - spin_lock_bh(&txq->axq_lock); - list_splice(&bf_pending, &tid->buf_q); - ath_tx_queue_tid(txq, tid); - spin_unlock_bh(&txq->axq_lock); - } - rcu_read_unlock(); if (needreset) @@ -2050,7 +2073,7 @@ tx_info->status.rates[i].idx = -1; } - tx_info->status.rates[tx_rateindex].count = bf->bf_retries + 1; + tx_info->status.rates[tx_rateindex].count = ts->ts_longretry + 1; } static void ath_wake_mac80211_queue(struct ath_softc *sc, struct ath_txq *txq) @@ -2161,7 +2184,6 @@ * This frame is sent out as a single frame. * Use hardware retry status for this frame. */ - bf->bf_retries = ts.ts_longretry; if (ts.ts_status & ATH9K_TXERR_XRETRY) bf->bf_state.bf_type |= BUF_XRETRY; ath_tx_rc_status(bf, &ts, 0, txok, true); @@ -2280,7 +2302,6 @@ txok = !(txs.ts_status & ATH9K_TXERR_MASK); if (!bf_isampdu(bf)) { - bf->bf_retries = txs.ts_longretry; if (txs.ts_status & ATH9K_TXERR_XRETRY) bf->bf_state.bf_type |= BUF_XRETRY; ath_tx_rc_status(bf, &txs, 0, txok, true); @@ -2449,37 +2470,37 @@ void ath_tx_node_cleanup(struct ath_softc *sc, struct ath_node *an) { - int i; - struct ath_atx_ac *ac, *ac_tmp; - struct ath_atx_tid *tid, *tid_tmp; + struct ath_atx_ac *ac; + struct ath_atx_tid *tid; struct ath_txq *txq; + int i, tidno; - for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) { - if (ATH_TXQ_SETUP(sc, i)) { - txq = &sc->tx.txq[i]; + for (tidno = 0, tid = &an->tid[tidno]; + tidno < WME_NUM_TID; tidno++, tid++) { + i = tid->ac->qnum; - spin_lock_bh(&txq->axq_lock); + if (!ATH_TXQ_SETUP(sc, i)) + continue; - list_for_each_entry_safe(ac, - ac_tmp, &txq->axq_acq, list) { - tid = list_first_entry(&ac->tid_q, - struct ath_atx_tid, list); - if (tid && tid->an != an) - continue; - list_del(&ac->list); - ac->sched = false; - - list_for_each_entry_safe(tid, - tid_tmp, &ac->tid_q, list) { - list_del(&tid->list); - tid->sched = false; - ath_tid_drain(sc, txq, tid); - tid->state &= ~AGGR_ADDBA_COMPLETE; - tid->state &= ~AGGR_CLEANUP; - } - } + txq = &sc->tx.txq[i]; + ac = tid->ac; - spin_unlock_bh(&txq->axq_lock); + spin_lock_bh(&txq->axq_lock); + + if (tid->sched) { + list_del(&tid->list); + tid->sched = false; + } + + if (ac->sched) { + list_del(&ac->list); + tid->ac->sched = false; } + + ath_tid_drain(sc, txq, tid); + tid->state &= ~AGGR_ADDBA_COMPLETE; + tid->state &= ~AGGR_CLEANUP; + + spin_unlock_bh(&txq->axq_lock); } } --- linux-2.6.35.orig/drivers/net/wireless/ath/ath9k/hw.c +++ linux-2.6.35/drivers/net/wireless/ath/ath9k/hw.c @@ -537,7 +537,8 @@ if (ah->config.serialize_regmode == SER_REG_MODE_AUTO) { if (ah->hw_version.macVersion == AR_SREV_VERSION_5416_PCI || - (AR_SREV_9280(ah) && !ah->is_pciexpress)) { + ((AR_SREV_9160(ah) || AR_SREV_9280(ah)) && + !ah->is_pciexpress)) { ah->config.serialize_regmode = SER_REG_MODE_ON; } else { @@ -1232,9 +1233,11 @@ if (!ah->chip_fullsleep) { ath9k_hw_abortpcurecv(ah); - if (!ath9k_hw_stopdmarecv(ah)) + if (!ath9k_hw_stopdmarecv(ah)) { ath_print(common, ATH_DBG_XMIT, "Failed to stop receive dma\n"); + bChannelChange = false; + } } if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE)) @@ -1265,7 +1268,8 @@ macStaId1 = REG_READ(ah, AR_STA_ID1) & AR_STA_ID1_BASE_RATE_11B; /* For chips on which RTC reset is done, save TSF before it gets cleared */ - if (AR_SREV_9280(ah) && ah->eep_ops->get_eeprom(ah, EEP_OL_PWRCTRL)) + if (AR_SREV_9100(ah) || + (AR_SREV_9280(ah) && ah->eep_ops->get_eeprom(ah, EEP_OL_PWRCTRL))) tsf = ath9k_hw_gettsf64(ah); saveLedState = REG_READ(ah, AR_CFG_LED) & @@ -1297,7 +1301,7 @@ } /* Restore TSF */ - if (tsf && AR_SREV_9280(ah) && ah->eep_ops->get_eeprom(ah, EEP_OL_PWRCTRL)) + if (tsf) ath9k_hw_settsf64(ah, tsf); if (AR_SREV_9280_10_OR_LATER(ah)) @@ -1307,6 +1311,17 @@ if (r) return r; + /* + * Some AR91xx SoC devices frequently fail to accept TSF writes + * right after the chip reset. When that happens, write a new + * value after the initvals have been applied, with an offset + * based on measured time difference + */ + if (AR_SREV_9100(ah) && (ath9k_hw_gettsf64(ah) < tsf)) { + tsf += 1500; + ath9k_hw_settsf64(ah, tsf); + } + /* Setup MFP options for CCMP */ if (AR_SREV_9280_20_OR_LATER(ah)) { /* Mask Retry(b11), PwrMgt(b12), MoreData(b13) to 0 in mgmt --- linux-2.6.35.orig/drivers/net/wireless/ath/ath9k/eeprom_4k.c +++ linux-2.6.35/drivers/net/wireless/ath/ath9k/eeprom_4k.c @@ -1149,13 +1149,13 @@ } } -static u16 ath9k_hw_4k_get_eeprom_antenna_cfg(struct ath_hw *ah, +static u32 ath9k_hw_4k_get_eeprom_antenna_cfg(struct ath_hw *ah, struct ath9k_channel *chan) { struct ar5416_eeprom_4k *eep = &ah->eeprom.map4k; struct modal_eep_4k_header *pModal = &eep->modalHeader; - return pModal->antCtrlCommon & 0xFFFF; + return pModal->antCtrlCommon; } static u8 ath9k_hw_4k_get_num_ant_config(struct ath_hw *ah, --- linux-2.6.35.orig/drivers/net/wireless/ath/ath9k/eeprom_def.c +++ linux-2.6.35/drivers/net/wireless/ath/ath9k/eeprom_def.c @@ -729,7 +729,7 @@ vpdTableI[i][sizeCurrVpdTable - 2]); vpdStep = (int16_t)((vpdStep < 1) ? 1 : vpdStep); - if (tgtIndex > maxIndex) { + if (tgtIndex >= maxIndex) { while ((ss <= tgtIndex) && (k < (AR5416_NUM_PDADC_VALUES - 1))) { tmpVal = (int16_t)((vpdTableI[i][sizeCurrVpdTable - 1] + @@ -1437,14 +1437,14 @@ return num_ant_config; } -static u16 ath9k_hw_def_get_eeprom_antenna_cfg(struct ath_hw *ah, +static u32 ath9k_hw_def_get_eeprom_antenna_cfg(struct ath_hw *ah, struct ath9k_channel *chan) { struct ar5416_eeprom_def *eep = &ah->eeprom.def; struct modal_eep_header *pModal = &(eep->modalHeader[IS_CHAN_2GHZ(chan)]); - return pModal->antCtrlCommon & 0xFFFF; + return pModal->antCtrlCommon; } static u16 ath9k_hw_def_get_spur_channel(struct ath_hw *ah, u16 i, bool is2GHz) --- linux-2.6.35.orig/drivers/net/wireless/ath/ath9k/eeprom.h +++ linux-2.6.35/drivers/net/wireless/ath/ath9k/eeprom.h @@ -62,7 +62,7 @@ #define SD_NO_CTL 0xE0 #define NO_CTL 0xff -#define CTL_MODE_M 7 +#define CTL_MODE_M 0xf #define CTL_11A 0 #define CTL_11B 1 #define CTL_11G 2 @@ -669,7 +669,7 @@ int (*get_eeprom_ver)(struct ath_hw *hw); int (*get_eeprom_rev)(struct ath_hw *hw); u8 (*get_num_ant_config)(struct ath_hw *hw, enum ieee80211_band band); - u16 (*get_eeprom_antenna_cfg)(struct ath_hw *hw, + u32 (*get_eeprom_antenna_cfg)(struct ath_hw *hw, struct ath9k_channel *chan); void (*set_board_values)(struct ath_hw *hw, struct ath9k_channel *chan); void (*set_addac)(struct ath_hw *hw, struct ath9k_channel *chan); --- linux-2.6.35.orig/drivers/net/wireless/ath/ath9k/ar9002_calib.c +++ linux-2.6.35/drivers/net/wireless/ath/ath9k/ar9002_calib.c @@ -239,7 +239,7 @@ if (qCoff > 15) qCoff = 15; else if (qCoff <= -16) - qCoff = 16; + qCoff = -16; ath_print(common, ATH_DBG_CALIBRATE, "Chn %d : iCoff = 0x%x qCoff = 0x%x\n", --- linux-2.6.35.orig/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +++ linux-2.6.35/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c @@ -768,7 +768,7 @@ length = block[it+1]; length &= 0xff; - if (length > 0 && spot >= 0 && spot+length < mdataSize) { + if (length > 0 && spot >= 0 && spot+length <= mdataSize) { ath_print(common, ATH_DBG_EEPROM, "Restore at %d: spot=%d " "offset=%d length=%d\n", @@ -944,7 +944,7 @@ return 1; } -static u16 ath9k_hw_ar9300_get_eeprom_antenna_cfg(struct ath_hw *ah, +static u32 ath9k_hw_ar9300_get_eeprom_antenna_cfg(struct ath_hw *ah, struct ath9k_channel *chan) { return -EINVAL; --- linux-2.6.35.orig/drivers/net/wireless/ath/ath9k/eeprom_9287.c +++ linux-2.6.35/drivers/net/wireless/ath/ath9k/eeprom_9287.c @@ -1131,13 +1131,13 @@ return 1; } -static u16 ath9k_hw_AR9287_get_eeprom_antenna_cfg(struct ath_hw *ah, +static u32 ath9k_hw_AR9287_get_eeprom_antenna_cfg(struct ath_hw *ah, struct ath9k_channel *chan) { struct ar9287_eeprom *eep = &ah->eeprom.map9287; struct modal_eep_ar9287_header *pModal = &eep->modalHeader; - return pModal->antCtrlCommon & 0xFFFF; + return pModal->antCtrlCommon; } static u16 ath9k_hw_AR9287_get_spur_channel(struct ath_hw *ah, --- linux-2.6.35.orig/drivers/net/wireless/ath/ath9k/htc_drv_main.c +++ linux-2.6.35/drivers/net/wireless/ath/ath9k/htc_drv_main.c @@ -370,7 +370,8 @@ priv->tgt_rate.rates.ht_rates.rs_nrates = j; caps = WLAN_RC_HT_FLAG; - if (sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) + if ((sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) && + (conf_is_ht40(&priv->hw->conf))) caps |= WLAN_RC_40_FLAG; if (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40) caps |= WLAN_RC_SGI_FLAG; --- linux-2.6.35.orig/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +++ linux-2.6.35/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c @@ -68,18 +68,23 @@ struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); struct ieee80211_sta *sta = tx_info->control.sta; struct ath9k_htc_sta *ista; - struct ath9k_htc_vif *avp; struct ath9k_htc_tx_ctl tx_ctl; enum htc_endpoint_id epid; u16 qnum, hw_qnum; __le16 fc; u8 *tx_fhdr; - u8 sta_idx; + u8 sta_idx, vif_idx; hdr = (struct ieee80211_hdr *) skb->data; fc = hdr->frame_control; - avp = (struct ath9k_htc_vif *) tx_info->control.vif->drv_priv; + if (tx_info->control.vif && + (struct ath9k_htc_vif *) tx_info->control.vif->drv_priv) + vif_idx = ((struct ath9k_htc_vif *) + tx_info->control.vif->drv_priv)->index; + else + vif_idx = priv->nvifs; + if (sta) { ista = (struct ath9k_htc_sta *) sta->drv_priv; sta_idx = ista->index; @@ -96,7 +101,7 @@ memset(&tx_hdr, 0, sizeof(struct tx_frame_hdr)); tx_hdr.node_idx = sta_idx; - tx_hdr.vif_idx = avp->index; + tx_hdr.vif_idx = vif_idx; if (tx_info->flags & IEEE80211_TX_CTL_AMPDU) { tx_ctl.type = ATH9K_HTC_AMPDU; @@ -156,7 +161,7 @@ tx_ctl.type = ATH9K_HTC_NORMAL; mgmt_hdr.node_idx = sta_idx; - mgmt_hdr.vif_idx = avp->index; + mgmt_hdr.vif_idx = vif_idx; mgmt_hdr.tidno = 0; mgmt_hdr.flags = 0; --- linux-2.6.35.orig/drivers/net/wireless/ath/ath5k/base.c +++ linux-2.6.35/drivers/net/wireless/ath/ath5k/base.c @@ -48,6 +48,7 @@ #include #include #include +#include #include #include #include @@ -472,6 +473,26 @@ int ret; u8 csz; + /* + * L0s needs to be disabled on all ath5k cards. + * + * For distributions shipping with CONFIG_PCIEASPM (this will be enabled + * by default in the future in 2.6.36) this will also mean both L1 and + * L0s will be disabled when a pre 1.1 PCIe device is detected. We do + * know L1 works correctly even for all ath5k pre 1.1 PCIe devices + * though but cannot currently undue the effect of a blacklist, for + * details you can read pcie_aspm_sanity_check() and see how it adjusts + * the device link capability. + * + * It may be possible in the future to implement some PCI API to allow + * drivers to override blacklists for pre 1.1 PCIe but for now it is + * best to accept that both L0s and L1 will be disabled completely for + * distributions shipping with CONFIG_PCIEASPM rather than having this + * issue present. Motivation for adding this new API will be to help + * with power consumption for some of these devices. + */ + pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S); + ret = pci_enable_device(pdev); if (ret) { dev_err(&pdev->dev, "can't enable device\n"); @@ -1297,6 +1318,10 @@ PCI_DMA_TODEVICE); rate = ieee80211_get_tx_rate(sc->hw, info); + if (!rate) { + ret = -EINVAL; + goto err_unmap; + } if (info->flags & IEEE80211_TX_CTL_NO_ACK) flags |= AR5K_TXDESC_NOACK; --- linux-2.6.35.orig/drivers/net/wireless/ipw2x00/ipw2200.c +++ linux-2.6.35/drivers/net/wireless/ipw2x00/ipw2200.c @@ -96,7 +96,7 @@ static u32 ipw_debug_level; static int associate; static int auto_create = 1; -static int led_support = 0; +static int led_support = 1; static int disable = 0; static int bt_coexist = 0; static int hwcrypto = 0; @@ -12083,7 +12083,7 @@ MODULE_PARM_DESC(auto_create, "auto create adhoc network (default on)"); module_param_named(led, led_support, int, 0444); -MODULE_PARM_DESC(led, "enable led control on some systems (default 0 off)"); +MODULE_PARM_DESC(led, "enable led control on some systems (default 1 on)"); module_param(debug, int, 0444); MODULE_PARM_DESC(debug, "debug output mask"); --- linux-2.6.35.orig/drivers/net/wireless/rtl818x/rtl8180_dev.c +++ linux-2.6.35/drivers/net/wireless/rtl818x/rtl8180_dev.c @@ -688,6 +688,8 @@ /* grab a fresh beacon */ skb = ieee80211_beacon_get(dev, vif); + if (!skb) + goto resched; /* * update beacon timestamp w/ TSF value --- linux-2.6.35.orig/drivers/net/wireless/iwlwifi/iwl-agn-tx.c +++ linux-2.6.35/drivers/net/wireless/iwlwifi/iwl-agn-tx.c @@ -376,10 +376,7 @@ tx_flags |= TX_CMD_FLG_SEQ_CTL_MSK; } - priv->cfg->ops->utils->rts_tx_cmd_flag(info, &tx_flags); - - if ((tx_flags & TX_CMD_FLG_RTS_MSK) || (tx_flags & TX_CMD_FLG_CTS_MSK)) - tx_flags |= TX_CMD_FLG_FULL_TXOP_PROT_MSK; + priv->cfg->ops->utils->rts_tx_cmd_flag(priv, info, fc, &tx_flags); tx_flags &= ~(TX_CMD_FLG_ANT_SEL_MSK); if (ieee80211_is_mgmt(fc)) { @@ -453,21 +450,6 @@ if ((rate_idx >= IWL_FIRST_CCK_RATE) && (rate_idx <= IWL_LAST_CCK_RATE)) rate_flags |= RATE_MCS_CCK_MSK; - /* Set up RTS and CTS flags for certain packets */ - switch (fc & cpu_to_le16(IEEE80211_FCTL_STYPE)) { - case cpu_to_le16(IEEE80211_STYPE_AUTH): - case cpu_to_le16(IEEE80211_STYPE_DEAUTH): - case cpu_to_le16(IEEE80211_STYPE_ASSOC_REQ): - case cpu_to_le16(IEEE80211_STYPE_REASSOC_REQ): - if (tx_cmd->tx_flags & TX_CMD_FLG_RTS_MSK) { - tx_cmd->tx_flags &= ~TX_CMD_FLG_RTS_MSK; - tx_cmd->tx_flags |= TX_CMD_FLG_CTS_MSK; - } - break; - default: - break; - } - /* Set up antennas */ priv->mgmt_tx_ant = iwl_toggle_tx_ant(priv, priv->mgmt_tx_ant); rate_flags |= iwl_ant_idx_to_flags(priv->mgmt_tx_ant); --- linux-2.6.35.orig/drivers/net/wireless/iwlwifi/iwl-devtrace.h +++ linux-2.6.35/drivers/net/wireless/iwlwifi/iwl-devtrace.h @@ -193,7 +193,7 @@ __entry->framelen = buf0_len + buf1_len; memcpy(__get_dynamic_array(tfd), tfd, tfdlen); memcpy(__get_dynamic_array(buf0), buf0, buf0_len); - memcpy(__get_dynamic_array(buf1), buf1, buf0_len); + memcpy(__get_dynamic_array(buf1), buf1, buf1_len); ), TP_printk("[%p] TX %.2x (%zu bytes)", __entry->priv, --- linux-2.6.35.orig/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ linux-2.6.35/drivers/net/wireless/iwlwifi/iwl3945-base.c @@ -434,10 +434,7 @@ tx_flags |= TX_CMD_FLG_SEQ_CTL_MSK; } - priv->cfg->ops->utils->rts_tx_cmd_flag(info, &tx_flags); - - if ((tx_flags & TX_CMD_FLG_RTS_MSK) || (tx_flags & TX_CMD_FLG_CTS_MSK)) - tx_flags |= TX_CMD_FLG_FULL_TXOP_PROT_MSK; + priv->cfg->ops->utils->rts_tx_cmd_flag(priv, info, fc, &tx_flags); tx_flags &= ~(TX_CMD_FLG_ANT_SEL_MSK); if (ieee80211_is_mgmt(fc)) { @@ -3465,6 +3462,55 @@ return 0; } + +static void iwl3945_configure_filter(struct ieee80211_hw *hw, + unsigned int changed_flags, + unsigned int *total_flags, + u64 multicast) +{ + struct iwl_priv *priv = hw->priv; + __le32 filter_or = 0, filter_nand = 0; + +#define CHK(test, flag) do { \ + if (*total_flags & (test)) \ + filter_or |= (flag); \ + else \ + filter_nand |= (flag); \ + } while (0) + + IWL_DEBUG_MAC80211(priv, "Enter: changed: 0x%x, total: 0x%x\n", + changed_flags, *total_flags); + + CHK(FIF_OTHER_BSS | FIF_PROMISC_IN_BSS, RXON_FILTER_PROMISC_MSK); + CHK(FIF_CONTROL, RXON_FILTER_CTL2HOST_MSK); + CHK(FIF_BCN_PRBRESP_PROMISC, RXON_FILTER_BCON_AWARE_MSK); + +#undef CHK + + mutex_lock(&priv->mutex); + + priv->staging_rxon.filter_flags &= ~filter_nand; + priv->staging_rxon.filter_flags |= filter_or; + + /* + * Committing directly here breaks for some reason, + * but we'll eventually commit the filter flags + * change anyway. + */ + + mutex_unlock(&priv->mutex); + + /* + * Receiving all multicast frames is always enabled by the + * default flags setup in iwl_connection_init_rx_config() + * since we currently do not support programming multicast + * filters into the device. + */ + *total_flags &= FIF_OTHER_BSS | FIF_ALLMULTI | FIF_PROMISC_IN_BSS | + FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL; +} + + /***************************************************************************** * * sysfs attributes @@ -3870,7 +3916,7 @@ .add_interface = iwl_mac_add_interface, .remove_interface = iwl_mac_remove_interface, .config = iwl_mac_config, - .configure_filter = iwl_configure_filter, + .configure_filter = iwl3945_configure_filter, .set_key = iwl3945_mac_set_key, .conf_tx = iwl_mac_conf_tx, .reset_tsf = iwl_mac_reset_tsf, --- linux-2.6.35.orig/drivers/net/wireless/iwlwifi/iwl-core.c +++ linux-2.6.35/drivers/net/wireless/iwlwifi/iwl-core.c @@ -403,19 +403,36 @@ * iwlcore_rts_tx_cmd_flag: Set rts/cts. 3945 and 4965 only share this * function. */ -void iwlcore_rts_tx_cmd_flag(struct ieee80211_tx_info *info, - __le32 *tx_flags) +void iwlcore_rts_tx_cmd_flag(struct iwl_priv *priv, + struct ieee80211_tx_info *info, + __le16 fc, __le32 *tx_flags) { if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS) { *tx_flags |= TX_CMD_FLG_RTS_MSK; *tx_flags &= ~TX_CMD_FLG_CTS_MSK; + *tx_flags |= TX_CMD_FLG_FULL_TXOP_PROT_MSK; + + if (!ieee80211_is_mgmt(fc)) + return; + + switch (fc & cpu_to_le16(IEEE80211_FCTL_STYPE)) { + case cpu_to_le16(IEEE80211_STYPE_AUTH): + case cpu_to_le16(IEEE80211_STYPE_DEAUTH): + case cpu_to_le16(IEEE80211_STYPE_ASSOC_REQ): + case cpu_to_le16(IEEE80211_STYPE_REASSOC_REQ): + *tx_flags &= ~TX_CMD_FLG_RTS_MSK; + *tx_flags |= TX_CMD_FLG_CTS_MSK; + break; + } } else if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) { *tx_flags &= ~TX_CMD_FLG_RTS_MSK; *tx_flags |= TX_CMD_FLG_CTS_MSK; + *tx_flags |= TX_CMD_FLG_FULL_TXOP_PROT_MSK; } } EXPORT_SYMBOL(iwlcore_rts_tx_cmd_flag); + static bool is_single_rx_stream(struct iwl_priv *priv) { return priv->current_ht_config.smps == IEEE80211_SMPS_STATIC || @@ -1294,51 +1311,6 @@ EXPORT_SYMBOL(iwl_apm_init); - -void iwl_configure_filter(struct ieee80211_hw *hw, - unsigned int changed_flags, - unsigned int *total_flags, - u64 multicast) -{ - struct iwl_priv *priv = hw->priv; - __le32 filter_or = 0, filter_nand = 0; - -#define CHK(test, flag) do { \ - if (*total_flags & (test)) \ - filter_or |= (flag); \ - else \ - filter_nand |= (flag); \ - } while (0) - - IWL_DEBUG_MAC80211(priv, "Enter: changed: 0x%x, total: 0x%x\n", - changed_flags, *total_flags); - - CHK(FIF_OTHER_BSS | FIF_PROMISC_IN_BSS, RXON_FILTER_PROMISC_MSK); - CHK(FIF_CONTROL, RXON_FILTER_CTL2HOST_MSK); - CHK(FIF_BCN_PRBRESP_PROMISC, RXON_FILTER_BCON_AWARE_MSK); - -#undef CHK - - mutex_lock(&priv->mutex); - - priv->staging_rxon.filter_flags &= ~filter_nand; - priv->staging_rxon.filter_flags |= filter_or; - - iwlcore_commit_rxon(priv); - - mutex_unlock(&priv->mutex); - - /* - * Receiving all multicast frames is always enabled by the - * default flags setup in iwl_connection_init_rx_config() - * since we currently do not support programming multicast - * filters into the device. - */ - *total_flags &= FIF_OTHER_BSS | FIF_ALLMULTI | FIF_PROMISC_IN_BSS | - FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL; -} -EXPORT_SYMBOL(iwl_configure_filter); - int iwl_set_hw_params(struct iwl_priv *priv) { priv->hw_params.max_rxq_size = RX_QUEUE_SIZE; @@ -1936,6 +1908,10 @@ priv->staging_rxon.flags |= RXON_FLG_TGG_PROTECT_MSK; else priv->staging_rxon.flags &= ~RXON_FLG_TGG_PROTECT_MSK; + if (bss_conf->use_cts_prot) + priv->staging_rxon.flags |= RXON_FLG_SELF_CTS_EN; + else + priv->staging_rxon.flags &= ~RXON_FLG_SELF_CTS_EN; } if (changes & BSS_CHANGED_BASIC_RATES) { --- linux-2.6.35.orig/drivers/net/wireless/iwlwifi/iwl-core.h +++ linux-2.6.35/drivers/net/wireless/iwlwifi/iwl-core.h @@ -102,8 +102,9 @@ u32 min_average_noise, u8 default_chain); void (*chain_noise_reset)(struct iwl_priv *priv); - void (*rts_tx_cmd_flag)(struct ieee80211_tx_info *info, - __le32 *tx_flags); + void (*rts_tx_cmd_flag)(struct iwl_priv *priv, + struct ieee80211_tx_info *info, + __le16 fc, __le32 *tx_flags); int (*calc_rssi)(struct iwl_priv *priv, struct iwl_rx_phy_res *rx_resp); void (*request_scan)(struct iwl_priv *priv, struct ieee80211_vif *vif); @@ -355,9 +356,6 @@ u32 decrypt_res, struct ieee80211_rx_status *stats); void iwl_irq_handle_error(struct iwl_priv *priv); -void iwl_configure_filter(struct ieee80211_hw *hw, - unsigned int changed_flags, - unsigned int *total_flags, u64 multicast); int iwl_set_hw_params(struct iwl_priv *priv); void iwl_post_associate(struct iwl_priv *priv, struct ieee80211_vif *vif); void iwl_bss_info_changed(struct ieee80211_hw *hw, @@ -375,8 +373,9 @@ void iwl_mac_reset_tsf(struct ieee80211_hw *hw); int iwl_alloc_txq_mem(struct iwl_priv *priv); void iwl_free_txq_mem(struct iwl_priv *priv); -void iwlcore_rts_tx_cmd_flag(struct ieee80211_tx_info *info, - __le32 *tx_flags); +void iwlcore_rts_tx_cmd_flag(struct iwl_priv *priv, + struct ieee80211_tx_info *info, + __le16 fc, __le32 *tx_flags); #ifdef CONFIG_IWLWIFI_DEBUGFS int iwl_alloc_traffic_mem(struct iwl_priv *priv); void iwl_free_traffic_mem(struct iwl_priv *priv); --- linux-2.6.35.orig/drivers/net/wireless/iwlwifi/iwl-agn.c +++ linux-2.6.35/drivers/net/wireless/iwlwifi/iwl-agn.c @@ -200,13 +200,6 @@ priv->start_calib = 0; if (new_assoc) { - /* - * allow CTS-to-self if possible for new association. - * this is relevant only for 5000 series and up, - * but will not damage 4965 - */ - priv->staging_rxon.flags |= RXON_FLG_SELF_CTS_EN; - /* Apply the new configuration * RXON assoc doesn't clear the station table in uCode, */ @@ -3336,13 +3329,40 @@ IWL_DEBUG_HT(priv, "priv->_agn.agg_tids_count = %u\n", priv->_agn.agg_tids_count); } + if (priv->cfg->use_rts_for_ht) { + struct iwl_station_priv *sta_priv = + (void *) sta->drv_priv; + /* + * switch off RTS/CTS if it was previously enabled + */ + + sta_priv->lq_sta.lq.general_params.flags &= + ~LINK_QUAL_FLAGS_SET_STA_TLC_RTS_MSK; + iwl_send_lq_cmd(priv, &sta_priv->lq_sta.lq, + CMD_ASYNC, false); + } + break; if (test_bit(STATUS_EXIT_PENDING, &priv->status)) return 0; else return ret; case IEEE80211_AMPDU_TX_OPERATIONAL: - /* do nothing */ - return -EOPNOTSUPP; + if (priv->cfg->use_rts_for_ht) { + struct iwl_station_priv *sta_priv = + (void *) sta->drv_priv; + + /* + * switch to RTS/CTS if it is the prefer protection + * method for HT traffic + */ + + sta_priv->lq_sta.lq.general_params.flags |= + LINK_QUAL_FLAGS_SET_STA_TLC_RTS_MSK; + iwl_send_lq_cmd(priv, &sta_priv->lq_sta.lq, + CMD_ASYNC, false); + } + ret = 0; + break; default: IWL_DEBUG_HT(priv, "unknown\n"); return -EINVAL; @@ -3423,6 +3443,49 @@ return 0; } +static void iwlagn_configure_filter(struct ieee80211_hw *hw, + unsigned int changed_flags, + unsigned int *total_flags, + u64 multicast) +{ + struct iwl_priv *priv = hw->priv; + __le32 filter_or = 0, filter_nand = 0; + +#define CHK(test, flag) do { \ + if (*total_flags & (test)) \ + filter_or |= (flag); \ + else \ + filter_nand |= (flag); \ + } while (0) + + IWL_DEBUG_MAC80211(priv, "Enter: changed: 0x%x, total: 0x%x\n", + changed_flags, *total_flags); + + CHK(FIF_OTHER_BSS | FIF_PROMISC_IN_BSS, RXON_FILTER_PROMISC_MSK); + CHK(FIF_CONTROL, RXON_FILTER_CTL2HOST_MSK); + CHK(FIF_BCN_PRBRESP_PROMISC, RXON_FILTER_BCON_AWARE_MSK); + +#undef CHK + + mutex_lock(&priv->mutex); + + priv->staging_rxon.filter_flags &= ~filter_nand; + priv->staging_rxon.filter_flags |= filter_or; + + iwlcore_commit_rxon(priv); + + mutex_unlock(&priv->mutex); + + /* + * Receiving all multicast frames is always enabled by the + * default flags setup in iwl_connection_init_rx_config() + * since we currently do not support programming multicast + * filters into the device. + */ + *total_flags &= FIF_OTHER_BSS | FIF_ALLMULTI | FIF_PROMISC_IN_BSS | + FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL; +} + /***************************************************************************** * * driver setup and teardown @@ -3583,7 +3646,7 @@ .add_interface = iwl_mac_add_interface, .remove_interface = iwl_mac_remove_interface, .config = iwl_mac_config, - .configure_filter = iwl_configure_filter, + .configure_filter = iwlagn_configure_filter, .set_key = iwl_mac_set_key, .update_tkip_key = iwl_mac_update_tkip_key, .conf_tx = iwl_mac_conf_tx, --- linux-2.6.35.orig/drivers/net/wireless/iwlwifi/iwl-scan.c +++ linux-2.6.35/drivers/net/wireless/iwlwifi/iwl-scan.c @@ -420,11 +420,10 @@ return; mutex_lock(&priv->mutex); - if (test_bit(STATUS_SCANNING, &priv->status) || - test_bit(STATUS_SCAN_ABORTING, &priv->status)) { - IWL_DEBUG_SCAN(priv, "Scan completion watchdog resetting " - "adapter (%dms)\n", - jiffies_to_msecs(IWL_SCAN_CHECK_WATCHDOG)); + if (test_bit(STATUS_SCANNING, &priv->status) && + !test_bit(STATUS_SCAN_ABORTING, &priv->status)) { + IWL_DEBUG_SCAN(priv, "Scan completion watchdog (%dms)\n", + jiffies_to_msecs(IWL_SCAN_CHECK_WATCHDOG)); if (!test_bit(STATUS_EXIT_PENDING, &priv->status)) iwl_send_scan_abort(priv); @@ -489,12 +488,11 @@ !test_bit(STATUS_GEO_CONFIGURED, &priv->status)) return; - mutex_lock(&priv->mutex); - - cancel_delayed_work_sync(&priv->scan_check); - set_bit(STATUS_SCAN_ABORTING, &priv->status); - iwl_send_scan_abort(priv); + cancel_delayed_work(&priv->scan_check); + mutex_lock(&priv->mutex); + if (test_bit(STATUS_SCAN_ABORTING, &priv->status)) + iwl_send_scan_abort(priv); mutex_unlock(&priv->mutex); } EXPORT_SYMBOL(iwl_bg_abort_scan); --- linux-2.6.35.orig/drivers/net/wireless/iwlwifi/iwl-agn-rs.c +++ linux-2.6.35/drivers/net/wireless/iwlwifi/iwl-agn-rs.c @@ -325,18 +325,11 @@ struct iwl_lq_sta *lq_data, struct ieee80211_sta *sta) { - if ((tid < TID_MAX_LOAD_COUNT) && - !rs_tl_turn_on_agg_for_tid(priv, lq_data, tid, sta)) { - if (priv->cfg->use_rts_for_ht) { - /* - * switch to RTS/CTS if it is the prefer protection - * method for HT traffic - */ - IWL_DEBUG_HT(priv, "use RTS/CTS protection for HT\n"); - priv->staging_rxon.flags &= ~RXON_FLG_SELF_CTS_EN; - iwlcore_commit_rxon(priv); - } - } + if (tid < TID_MAX_LOAD_COUNT) + rs_tl_turn_on_agg_for_tid(priv, lq_data, tid, sta); + else + IWL_ERR(priv, "tid exceeds max load count: %d/%d\n", + tid, TID_MAX_LOAD_COUNT); } static inline int get_num_of_ant_from_rate(u32 rate_n_flags) --- linux-2.6.35.orig/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c +++ linux-2.6.35/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c @@ -209,10 +209,21 @@ } } -static void iwlagn_rts_tx_cmd_flag(struct ieee80211_tx_info *info, - __le32 *tx_flags) +static void iwlagn_rts_tx_cmd_flag(struct iwl_priv *priv, + struct ieee80211_tx_info *info, + __le16 fc, __le32 *tx_flags) { - *tx_flags |= TX_CMD_FLG_RTS_CTS_MSK; + if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS || + info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) { + *tx_flags |= TX_CMD_FLG_RTS_CTS_MSK; + return; + } + + if (priv->cfg->use_rts_for_ht && + info->flags & IEEE80211_TX_CTL_AMPDU) { + *tx_flags |= TX_CMD_FLG_RTS_CTS_MSK; + return; + } } /* Calc max signal level (dBm) among 3 possible receivers */ --- linux-2.6.35.orig/drivers/net/wireless/iwlwifi/iwl-3945.c +++ linux-2.6.35/drivers/net/wireless/iwlwifi/iwl-3945.c @@ -915,22 +915,6 @@ rts_retry_limit = data_retry_limit; tx_cmd->rts_retry_limit = rts_retry_limit; - if (ieee80211_is_mgmt(fc)) { - switch (fc & cpu_to_le16(IEEE80211_FCTL_STYPE)) { - case cpu_to_le16(IEEE80211_STYPE_AUTH): - case cpu_to_le16(IEEE80211_STYPE_DEAUTH): - case cpu_to_le16(IEEE80211_STYPE_ASSOC_REQ): - case cpu_to_le16(IEEE80211_STYPE_REASSOC_REQ): - if (tx_flags & TX_CMD_FLG_RTS_MSK) { - tx_flags &= ~TX_CMD_FLG_RTS_MSK; - tx_flags |= TX_CMD_FLG_CTS_MSK; - } - break; - default: - break; - } - } - tx_cmd->rate = rate; tx_cmd->tx_flags = tx_flags; --- linux-2.6.35.orig/drivers/net/wireless/hostap/hostap_hw.c +++ linux-2.6.35/drivers/net/wireless/hostap/hostap_hw.c @@ -68,7 +68,7 @@ module_param_string(essid, essid, sizeof(essid), 0444); MODULE_PARM_DESC(essid, "Host AP's ESSID"); -static int iw_mode[MAX_PARM_DEVICES] = { IW_MODE_MASTER, DEF_INTS }; +static int iw_mode[MAX_PARM_DEVICES] = { IW_MODE_INFRA, DEF_INTS }; module_param_array(iw_mode, int, NULL, 0444); MODULE_PARM_DESC(iw_mode, "Initial operation mode"); --- linux-2.6.35.orig/drivers/net/wireless/p54/p54usb.c +++ linux-2.6.35/drivers/net/wireless/p54/p54usb.c @@ -69,7 +69,8 @@ {USB_DEVICE(0x0915, 0x2002)}, /* Cohiba Proto board */ {USB_DEVICE(0x0baf, 0x0118)}, /* U.S. Robotics U5 802.11g Adapter*/ {USB_DEVICE(0x0bf8, 0x1009)}, /* FUJITSU E-5400 USB D1700*/ - {USB_DEVICE(0x0cde, 0x0006)}, /* Medion MD40900 */ + /* {USB_DEVICE(0x0cde, 0x0006)}, * Medion MD40900 already listed above, + * just noting it here for clarity */ {USB_DEVICE(0x0cde, 0x0008)}, /* Sagem XG703A */ {USB_DEVICE(0x0cde, 0x0015)}, /* Zcomax XG-705A */ {USB_DEVICE(0x0d8e, 0x3762)}, /* DLink DWL-G120 Cohiba */ --- linux-2.6.35.orig/drivers/net/wireless/p54/txrx.c +++ linux-2.6.35/drivers/net/wireless/p54/txrx.c @@ -444,7 +444,7 @@ } if (!(info->flags & IEEE80211_TX_CTL_NO_ACK) && - (!payload->status)) + !(payload->status & P54_TX_FAILED)) info->flags |= IEEE80211_TX_STAT_ACK; if (payload->status & P54_TX_PSM_CANCELLED) info->flags |= IEEE80211_TX_STAT_TX_FILTERED; --- linux-2.6.35.orig/drivers/net/wireless/wl12xx/wl1251_cmd.c +++ linux-2.6.35/drivers/net/wireless/wl12xx/wl1251_cmd.c @@ -484,7 +484,7 @@ cmd->timeout = timeout; - ret = wl1251_cmd_send(wl, CMD_SCAN, cmd, sizeof(*cmd)); + ret = wl1251_cmd_send(wl, CMD_TRIGGER_SCAN_TO, cmd, sizeof(*cmd)); if (ret < 0) { wl1251_error("cmd trigger scan to failed: %d", ret); goto out; --- linux-2.6.35.orig/drivers/net/igbvf/netdev.c +++ linux-2.6.35/drivers/net/igbvf/netdev.c @@ -248,6 +248,7 @@ if (*work_done >= work_to_do) break; (*work_done)++; + rmb(); /* read descriptor and rx_buffer_info after status DD */ buffer_info = &rx_ring->buffer_info[i]; @@ -780,6 +781,7 @@ while ((eop_desc->wb.status & cpu_to_le32(E1000_TXD_STAT_DD)) && (count < tx_ring->count)) { + rmb(); /* read buffer_info after eop_desc status */ for (cleaned = false; !cleaned; count++) { tx_desc = IGBVF_TX_DESC_ADV(*tx_ring, i); buffer_info = &tx_ring->buffer_info[i]; --- linux-2.6.35.orig/drivers/net/usb/hso.c +++ linux-2.6.35/drivers/net/usb/hso.c @@ -1653,6 +1653,8 @@ struct uart_icount cnow; struct hso_tiocmget *tiocmget = serial->tiocmget; + memset(&icount, 0, sizeof(struct serial_icounter_struct)); + if (!tiocmget) return -ENOENT; spin_lock_irq(&serial->serial_lock); --- linux-2.6.35.orig/drivers/net/e1000e/ethtool.c +++ linux-2.6.35/drivers/net/e1000e/ethtool.c @@ -880,6 +880,7 @@ switch (mac->type) { case e1000_ich10lan: case e1000_pchlan: + case e1000_pch2lan: mask |= (1 << 18); break; default: @@ -1312,7 +1313,18 @@ /* Set Early Link Enable */ e1e_rphy(hw, PHY_REG(769, 20), &phy_reg); e1e_wphy(hw, PHY_REG(769, 20), phy_reg | 0x0400); - /* fall through */ + break; + case e1000_phy_82579: + /* Disable PHY energy detect power down */ + e1e_rphy(hw, PHY_REG(0, 21), &phy_reg); + e1e_wphy(hw, PHY_REG(0, 21), phy_reg & ~(1 << 3)); + /* Disable full chip energy detect */ + e1e_rphy(hw, PHY_REG(776, 18), &phy_reg); + e1e_wphy(hw, PHY_REG(776, 18), phy_reg | 1); + /* Enable loopback on the PHY */ +#define I82577_PHY_LBK_CTRL 19 + e1e_wphy(hw, I82577_PHY_LBK_CTRL, 0x8001); + break; default: /* force 1000, set loopback */ e1e_wphy(hw, PHY_CONTROL, 0x4140); @@ -1868,6 +1880,7 @@ if ((hw->phy.type == e1000_phy_ife) || (hw->mac.type == e1000_pchlan) || + (hw->mac.type == e1000_pch2lan) || (hw->mac.type == e1000_82583) || (hw->mac.type == e1000_82574)) { INIT_WORK(&adapter->led_blink_task, e1000e_led_blink_task); --- linux-2.6.35.orig/drivers/net/e1000e/defines.h +++ linux-2.6.35/drivers/net/e1000e/defines.h @@ -359,6 +359,7 @@ #define E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE 0x00000001 #define E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE 0x00000008 #define E1000_EXTCNF_CTRL_SWFLAG 0x00000020 +#define E1000_EXTCNF_CTRL_GATE_PHY_CFG 0x00000080 #define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK 0x00FF0000 #define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_SHIFT 16 #define E1000_EXTCNF_CTRL_EXT_CNF_POINTER_MASK 0x0FFF0000 @@ -620,6 +621,7 @@ #define E1000_FLASH_UPDATES 2000 /* NVM Word Offsets */ +#define NVM_COMPAT 0x0003 #define NVM_ID_LED_SETTINGS 0x0004 #define NVM_INIT_CONTROL2_REG 0x000F #define NVM_INIT_CONTROL3_PORT_B 0x0014 @@ -642,6 +644,9 @@ /* Mask bits for fields in Word 0x1a of the NVM */ #define NVM_WORD1A_ASPM_MASK 0x000C +/* Mask bits for fields in Word 0x03 of the EEPROM */ +#define NVM_COMPAT_LOM 0x0800 + /* For checksumming, the sum of all words in the NVM should equal 0xBABA. */ #define NVM_SUM 0xBABA @@ -714,6 +719,7 @@ #define BME1000_E_PHY_ID_R2 0x01410CB1 #define I82577_E_PHY_ID 0x01540050 #define I82578_E_PHY_ID 0x004DD040 +#define I82579_E_PHY_ID 0x01540090 /* M88E1000 Specific Registers */ #define M88E1000_PHY_SPEC_CTRL 0x10 /* PHY Specific Control Register */ --- linux-2.6.35.orig/drivers/net/e1000e/e1000.h +++ linux-2.6.35/drivers/net/e1000e/e1000.h @@ -164,6 +164,7 @@ board_ich9lan, board_ich10lan, board_pchlan, + board_pch2lan, }; struct e1000_queue_stats { @@ -476,6 +477,7 @@ extern struct e1000_info e1000_ich9_info; extern struct e1000_info e1000_ich10_info; extern struct e1000_info e1000_pch_info; +extern struct e1000_info e1000_pch2_info; extern struct e1000_info e1000_es2_info; extern s32 e1000e_read_pba_num(struct e1000_hw *hw, u32 *pba_num); @@ -494,6 +496,8 @@ extern void e1000e_gig_downshift_workaround_ich8lan(struct e1000_hw *hw); extern void e1000e_disable_gig_wol_ich8lan(struct e1000_hw *hw); extern s32 e1000_configure_k1_ich8lan(struct e1000_hw *hw, bool k1_enable); +extern s32 e1000_lv_jumbo_workaround_ich8lan(struct e1000_hw *hw, bool enable); +extern void e1000_copy_rx_addrs_to_phy_ich8lan(struct e1000_hw *hw); extern s32 e1000e_check_for_copper_link(struct e1000_hw *hw); extern s32 e1000e_check_for_fiber_link(struct e1000_hw *hw); --- linux-2.6.35.orig/drivers/net/e1000e/ich8lan.c +++ linux-2.6.35/drivers/net/e1000e/ich8lan.c @@ -52,6 +52,8 @@ * 82577LC Gigabit Network Connection * 82578DM Gigabit Network Connection * 82578DC Gigabit Network Connection + * 82579LM Gigabit Network Connection + * 82579V Gigabit Network Connection */ #include "e1000.h" @@ -126,6 +128,9 @@ #define HV_SMB_ADDR_PEC_EN 0x0200 #define HV_SMB_ADDR_VALID 0x0080 +/* PHY Power Management Control */ +#define HV_PM_CTRL PHY_REG(770, 17) + /* Strapping Option Register - RO */ #define E1000_STRAP 0x0000C #define E1000_STRAP_SMBUS_ADDRESS_MASK 0x00FE0000 @@ -277,13 +282,13 @@ phy->ops.power_down = e1000_power_down_phy_copper_ich8lan; phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; + /* + * The MAC-PHY interconnect may still be in SMBus mode + * after Sx->S0. If the manageability engine (ME) is + * disabled, then toggle the LANPHYPC Value bit to force + * the interconnect to PCIe mode. + */ if (!(er32(FWSM) & E1000_ICH_FWSM_FW_VALID)) { - /* - * The MAC-PHY interconnect may still be in SMBus mode - * after Sx->S0. Toggle the LANPHYPC Value bit to force - * the interconnect to PCIe mode, but only if there is no - * firmware present otherwise firmware will have done it. - */ ctrl = er32(CTRL); ctrl |= E1000_CTRL_LANPHYPC_OVERRIDE; ctrl &= ~E1000_CTRL_LANPHYPC_VALUE; @@ -324,6 +329,7 @@ switch (phy->type) { case e1000_phy_82577: + case e1000_phy_82579: phy->ops.check_polarity = e1000_check_polarity_82577; phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_82577; @@ -526,6 +532,7 @@ mac->ops.led_off = e1000_led_off_ich8lan; break; case e1000_pchlan: + case e1000_pch2lan: /* ID LED init */ mac->ops.id_led_init = e1000_id_led_init_pchlan; /* setup LED */ @@ -544,6 +551,14 @@ if (mac->type == e1000_ich8lan) e1000e_set_kmrn_lock_loss_workaround_ich8lan(hw, true); + /* Disable PHY configuration by hardware, config by software */ + if (mac->type == e1000_pch2lan) { + u32 extcnf_ctrl = er32(EXTCNF_CTRL); + + extcnf_ctrl |= E1000_EXTCNF_CTRL_GATE_PHY_CFG; + ew32(EXTCNF_CTRL, extcnf_ctrl); + } + return 0; } @@ -647,10 +662,19 @@ if (rc) return rc; - if (hw->mac.type == e1000_pchlan) - rc = e1000_init_phy_params_pchlan(hw); - else + switch (hw->mac.type) { + case e1000_ich8lan: + case e1000_ich9lan: + case e1000_ich10lan: rc = e1000_init_phy_params_ich8lan(hw); + break; + case e1000_pchlan: + case e1000_pch2lan: + rc = e1000_init_phy_params_pchlan(hw); + break; + default: + break; + } if (rc) return rc; @@ -851,8 +875,10 @@ * extended configuration before SW configuration */ data = er32(EXTCNF_CTRL); - if (data & E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE) - goto out; + if (!(hw->mac.type == e1000_pch2lan)) { + if (data & E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE) + goto out; + } cnf_size = er32(EXTCNF_SIZE); cnf_size &= E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK; @@ -864,7 +890,8 @@ cnf_base_addr >>= E1000_EXTCNF_CTRL_EXT_CNF_POINTER_SHIFT; if (!(data & E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE) && - (hw->mac.type == e1000_pchlan)) { + ((hw->mac.type == e1000_pchlan) || + (hw->mac.type == e1000_pch2lan))) { /* * HW configures the SMBus address and LEDs when the * OEM and LCD Write Enable bits are set in the NVM. @@ -1071,16 +1098,18 @@ u32 mac_reg; u16 oem_reg; - if (hw->mac.type != e1000_pchlan) + if ((hw->mac.type != e1000_pch2lan) && (hw->mac.type != e1000_pchlan)) return ret_val; ret_val = hw->phy.ops.acquire(hw); if (ret_val) return ret_val; - mac_reg = er32(EXTCNF_CTRL); - if (mac_reg & E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE) - goto out; + if (!(hw->mac.type == e1000_pch2lan)) { + mac_reg = er32(EXTCNF_CTRL); + if (mac_reg & E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE) + goto out; + } mac_reg = er32(FEXTNVM); if (!(mac_reg & E1000_FEXTNVM_SW_CONFIG_ICH8M)) @@ -1221,6 +1250,243 @@ } /** + * e1000_copy_rx_addrs_to_phy_ich8lan - Copy Rx addresses from MAC to PHY + * @hw: pointer to the HW structure + **/ +void e1000_copy_rx_addrs_to_phy_ich8lan(struct e1000_hw *hw) +{ + u32 mac_reg; + u16 i; + + /* Copy both RAL/H (rar_entry_count) and SHRAL/H (+4) to PHY */ + for (i = 0; i < (hw->mac.rar_entry_count + 4); i++) { + mac_reg = er32(RAL(i)); + e1e_wphy(hw, BM_RAR_L(i), (u16)(mac_reg & 0xFFFF)); + e1e_wphy(hw, BM_RAR_M(i), (u16)((mac_reg >> 16) & 0xFFFF)); + mac_reg = er32(RAH(i)); + e1e_wphy(hw, BM_RAR_H(i), (u16)(mac_reg & 0xFFFF)); + e1e_wphy(hw, BM_RAR_CTRL(i), (u16)((mac_reg >> 16) & 0x8000)); + } +} + +static u32 e1000_calc_rx_da_crc(u8 mac[]) +{ + u32 poly = 0xEDB88320; /* Polynomial for 802.3 CRC calculation */ + u32 i, j, mask, crc; + + crc = 0xffffffff; + for (i = 0; i < 6; i++) { + crc = crc ^ mac[i]; + for (j = 8; j > 0; j--) { + mask = (crc & 1) * (-1); + crc = (crc >> 1) ^ (poly & mask); + } + } + return ~crc; +} + +/** + * e1000_lv_jumbo_workaround_ich8lan - required for jumbo frame operation + * with 82579 PHY + * @hw: pointer to the HW structure + * @enable: flag to enable/disable workaround when enabling/disabling jumbos + **/ +s32 e1000_lv_jumbo_workaround_ich8lan(struct e1000_hw *hw, bool enable) +{ + s32 ret_val = 0; + u16 phy_reg, data; + u32 mac_reg; + u16 i; + + if (hw->mac.type != e1000_pch2lan) + goto out; + + /* disable Rx path while enabling/disabling workaround */ + e1e_rphy(hw, PHY_REG(769, 20), &phy_reg); + ret_val = e1e_wphy(hw, PHY_REG(769, 20), phy_reg | (1 << 14)); + if (ret_val) + goto out; + + if (enable) { + /* + * Write Rx addresses (rar_entry_count for RAL/H, +4 for + * SHRAL/H) and initial CRC values to the MAC + */ + for (i = 0; i < (hw->mac.rar_entry_count + 4); i++) { + u8 mac_addr[ETH_ALEN] = {0}; + u32 addr_high, addr_low; + + addr_high = er32(RAH(i)); + if (!(addr_high & E1000_RAH_AV)) + continue; + addr_low = er32(RAL(i)); + mac_addr[0] = (addr_low & 0xFF); + mac_addr[1] = ((addr_low >> 8) & 0xFF); + mac_addr[2] = ((addr_low >> 16) & 0xFF); + mac_addr[3] = ((addr_low >> 24) & 0xFF); + mac_addr[4] = (addr_high & 0xFF); + mac_addr[5] = ((addr_high >> 8) & 0xFF); + + ew32(PCH_RAICC(i), + e1000_calc_rx_da_crc(mac_addr)); + } + + /* Write Rx addresses to the PHY */ + e1000_copy_rx_addrs_to_phy_ich8lan(hw); + + /* Enable jumbo frame workaround in the MAC */ + mac_reg = er32(FFLT_DBG); + mac_reg &= ~(1 << 14); + mac_reg |= (7 << 15); + ew32(FFLT_DBG, mac_reg); + + mac_reg = er32(RCTL); + mac_reg |= E1000_RCTL_SECRC; + ew32(RCTL, mac_reg); + + ret_val = e1000e_read_kmrn_reg(hw, + E1000_KMRNCTRLSTA_CTRL_OFFSET, + &data); + if (ret_val) + goto out; + ret_val = e1000e_write_kmrn_reg(hw, + E1000_KMRNCTRLSTA_CTRL_OFFSET, + data | (1 << 0)); + if (ret_val) + goto out; + ret_val = e1000e_read_kmrn_reg(hw, + E1000_KMRNCTRLSTA_HD_CTRL, + &data); + if (ret_val) + goto out; + data &= ~(0xF << 8); + data |= (0xB << 8); + ret_val = e1000e_write_kmrn_reg(hw, + E1000_KMRNCTRLSTA_HD_CTRL, + data); + if (ret_val) + goto out; + + /* Enable jumbo frame workaround in the PHY */ + e1e_rphy(hw, PHY_REG(769, 20), &data); + ret_val = e1e_wphy(hw, PHY_REG(769, 20), data & ~(1 << 14)); + if (ret_val) + goto out; + e1e_rphy(hw, PHY_REG(769, 23), &data); + data &= ~(0x7F << 5); + data |= (0x37 << 5); + ret_val = e1e_wphy(hw, PHY_REG(769, 23), data); + if (ret_val) + goto out; + e1e_rphy(hw, PHY_REG(769, 16), &data); + data &= ~(1 << 13); + data |= (1 << 12); + ret_val = e1e_wphy(hw, PHY_REG(769, 16), data); + if (ret_val) + goto out; + e1e_rphy(hw, PHY_REG(776, 20), &data); + data &= ~(0x3FF << 2); + data |= (0x1A << 2); + ret_val = e1e_wphy(hw, PHY_REG(776, 20), data); + if (ret_val) + goto out; + ret_val = e1e_wphy(hw, PHY_REG(776, 23), 0xFE00); + if (ret_val) + goto out; + e1e_rphy(hw, HV_PM_CTRL, &data); + ret_val = e1e_wphy(hw, HV_PM_CTRL, data | (1 << 10)); + if (ret_val) + goto out; + } else { + /* Write MAC register values back to h/w defaults */ + mac_reg = er32(FFLT_DBG); + mac_reg &= ~(0xF << 14); + ew32(FFLT_DBG, mac_reg); + + mac_reg = er32(RCTL); + mac_reg &= ~E1000_RCTL_SECRC; + ew32(FFLT_DBG, mac_reg); + + ret_val = e1000e_read_kmrn_reg(hw, + E1000_KMRNCTRLSTA_CTRL_OFFSET, + &data); + if (ret_val) + goto out; + ret_val = e1000e_write_kmrn_reg(hw, + E1000_KMRNCTRLSTA_CTRL_OFFSET, + data & ~(1 << 0)); + if (ret_val) + goto out; + ret_val = e1000e_read_kmrn_reg(hw, + E1000_KMRNCTRLSTA_HD_CTRL, + &data); + if (ret_val) + goto out; + data &= ~(0xF << 8); + data |= (0xB << 8); + ret_val = e1000e_write_kmrn_reg(hw, + E1000_KMRNCTRLSTA_HD_CTRL, + data); + if (ret_val) + goto out; + + /* Write PHY register values back to h/w defaults */ + e1e_rphy(hw, PHY_REG(769, 20), &data); + ret_val = e1e_wphy(hw, PHY_REG(769, 20), data & ~(1 << 14)); + if (ret_val) + goto out; + e1e_rphy(hw, PHY_REG(769, 23), &data); + data &= ~(0x7F << 5); + ret_val = e1e_wphy(hw, PHY_REG(769, 23), data); + if (ret_val) + goto out; + e1e_rphy(hw, PHY_REG(769, 16), &data); + data &= ~(1 << 12); + data |= (1 << 13); + ret_val = e1e_wphy(hw, PHY_REG(769, 16), data); + if (ret_val) + goto out; + e1e_rphy(hw, PHY_REG(776, 20), &data); + data &= ~(0x3FF << 2); + data |= (0x8 << 2); + ret_val = e1e_wphy(hw, PHY_REG(776, 20), data); + if (ret_val) + goto out; + ret_val = e1e_wphy(hw, PHY_REG(776, 23), 0x7E00); + if (ret_val) + goto out; + e1e_rphy(hw, HV_PM_CTRL, &data); + ret_val = e1e_wphy(hw, HV_PM_CTRL, data & ~(1 << 10)); + if (ret_val) + goto out; + } + + /* re-enable Rx path after enabling/disabling workaround */ + ret_val = e1e_wphy(hw, PHY_REG(769, 20), phy_reg & ~(1 << 14)); + +out: + return ret_val; +} + +/** + * e1000_lv_phy_workarounds_ich8lan - A series of Phy workarounds to be + * done after every PHY reset. + **/ +static s32 e1000_lv_phy_workarounds_ich8lan(struct e1000_hw *hw) +{ + s32 ret_val = 0; + + if (hw->mac.type != e1000_pch2lan) + goto out; + + /* Set MDIO slow mode before any other MDIO access */ + ret_val = e1000_set_mdio_slow_mode_hv(hw); + +out: + return ret_val; +} + +/** * e1000_lan_init_done_ich8lan - Check for PHY config completion * @hw: pointer to the HW structure * @@ -1271,12 +1537,17 @@ if (ret_val) goto out; break; + case e1000_pch2lan: + ret_val = e1000_lv_phy_workarounds_ich8lan(hw); + if (ret_val) + goto out; + break; default: break; } /* Dummy read to clear the phy wakeup bit after lcd reset */ - if (hw->mac.type == e1000_pchlan) + if (hw->mac.type >= e1000_pchlan) e1e_rphy(hw, BM_WUC, ®); /* Configure the LCD with the extended configuration region in NVM */ @@ -2800,6 +3071,7 @@ ew32(FCTTV, hw->fc.pause_time); if ((hw->phy.type == e1000_phy_82578) || + (hw->phy.type == e1000_phy_82579) || (hw->phy.type == e1000_phy_82577)) { ew32(FCRTV_PCH, hw->fc.refresh_time); @@ -2863,6 +3135,7 @@ return ret_val; break; case e1000_phy_82577: + case e1000_phy_82579: ret_val = e1000_copper_link_setup_82577(hw); if (ret_val) return ret_val; @@ -3370,6 +3643,7 @@ /* Clear PHY statistics registers */ if ((hw->phy.type == e1000_phy_82578) || + (hw->phy.type == e1000_phy_82579) || (hw->phy.type == e1000_phy_82577)) { hw->phy.ops.read_reg(hw, HV_SCC_UPPER, &phy_data); hw->phy.ops.read_reg(hw, HV_SCC_LOWER, &phy_data); @@ -3504,3 +3778,21 @@ .phy_ops = &ich8_phy_ops, .nvm_ops = &ich8_nvm_ops, }; + +struct e1000_info e1000_pch2_info = { + .mac = e1000_pch2lan, + .flags = FLAG_IS_ICH + | FLAG_HAS_WOL + | FLAG_RX_CSUM_ENABLED + | FLAG_HAS_CTRLEXT_ON_LOAD + | FLAG_HAS_AMT + | FLAG_HAS_FLASH + | FLAG_HAS_JUMBO_FRAMES + | FLAG_APME_IN_WUC, + .pba = 18, + .max_hw_frame_size = DEFAULT_JUMBO, + .get_variants = e1000_get_variants_ich8lan, + .mac_ops = &ich8_mac_ops, + .phy_ops = &ich8_phy_ops, + .nvm_ops = &ich8_nvm_ops, +}; --- linux-2.6.35.orig/drivers/net/e1000e/netdev.c +++ linux-2.6.35/drivers/net/e1000e/netdev.c @@ -67,6 +67,7 @@ [board_ich9lan] = &e1000_ich9_info, [board_ich10lan] = &e1000_ich10_info, [board_pchlan] = &e1000_pch_info, + [board_pch2lan] = &e1000_pch2_info, }; struct e1000_reg_info { @@ -774,6 +775,7 @@ if (*work_done >= work_to_do) break; (*work_done)++; + rmb(); /* read descriptor and rx_buffer_info after status DD */ status = rx_desc->status; skb = buffer_info->skb; @@ -984,6 +986,7 @@ while ((eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) && (count < tx_ring->count)) { bool cleaned = false; + rmb(); /* read buffer_info after eop_desc */ for (; !cleaned; count++) { tx_desc = E1000_TX_DESC(*tx_ring, i); buffer_info = &tx_ring->buffer_info[i]; @@ -1080,6 +1083,7 @@ break; (*work_done)++; skb = buffer_info->skb; + rmb(); /* read descriptor and rx_buffer_info after status DD */ /* in the packet split case this is header only */ prefetch(skb->data - NET_IP_ALIGN); @@ -1279,6 +1283,7 @@ if (*work_done >= work_to_do) break; (*work_done)++; + rmb(); /* read descriptor and rx_buffer_info after status DD */ status = rx_desc->status; skb = buffer_info->skb; @@ -2723,6 +2728,16 @@ e1e_wphy(hw, 22, phy_data); } + /* Workaround Si errata on 82579 - configure jumbo frame flow */ + if (hw->mac.type == e1000_pch2lan) { + s32 ret_val; + + if (rctl & E1000_RCTL_LPE) + ret_val = e1000_lv_jumbo_workaround_ich8lan(hw, true); + else + ret_val = e1000_lv_jumbo_workaround_ich8lan(hw, false); + } + /* Setup buffer sizes */ rctl &= ~E1000_RCTL_SZ_4096; rctl |= E1000_RCTL_BSEX; @@ -3118,7 +3133,27 @@ * with ERT support assuming ERT set to E1000_ERT_2048), or * - the full Rx FIFO size minus one full frame */ - if (hw->mac.type == e1000_pchlan) { + if (adapter->flags & FLAG_DISABLE_FC_PAUSE_TIME) + fc->pause_time = 0xFFFF; + else + fc->pause_time = E1000_FC_PAUSE_TIME; + fc->send_xon = 1; + fc->current_mode = fc->requested_mode; + + switch (hw->mac.type) { + default: + if ((adapter->flags & FLAG_HAS_ERT) && + (adapter->netdev->mtu > ETH_DATA_LEN)) + hwm = min(((pba << 10) * 9 / 10), + ((pba << 10) - (E1000_ERT_2048 << 3))); + else + hwm = min(((pba << 10) * 9 / 10), + ((pba << 10) - adapter->max_frame_size)); + + fc->high_water = hwm & E1000_FCRTH_RTH; /* 8-byte granularity */ + fc->low_water = fc->high_water - 8; + break; + case e1000_pchlan: /* * Workaround PCH LOM adapter hangs with certain network * loads. If hangs persist, try disabling Tx flow control. @@ -3131,26 +3166,15 @@ fc->low_water = 0x3000; } fc->refresh_time = 0x1000; - } else { - if ((adapter->flags & FLAG_HAS_ERT) && - (adapter->netdev->mtu > ETH_DATA_LEN)) - hwm = min(((pba << 10) * 9 / 10), - ((pba << 10) - (E1000_ERT_2048 << 3))); - else - hwm = min(((pba << 10) * 9 / 10), - ((pba << 10) - adapter->max_frame_size)); - - fc->high_water = hwm & E1000_FCRTH_RTH; /* 8-byte granularity */ - fc->low_water = fc->high_water - 8; + break; + case e1000_pch2lan: + fc->high_water = 0x05C20; + fc->low_water = 0x05048; + fc->pause_time = 0x0650; + fc->refresh_time = 0x0400; + break; } - if (adapter->flags & FLAG_DISABLE_FC_PAUSE_TIME) - fc->pause_time = 0xFFFF; - else - fc->pause_time = E1000_FC_PAUSE_TIME; - fc->send_xon = 1; - fc->current_mode = fc->requested_mode; - /* Allow time for pending master requests to run */ mac->ops.reset_hw(hw); @@ -3419,13 +3443,18 @@ /* disable SERR in case the MSI write causes a master abort */ pci_read_config_word(adapter->pdev, PCI_COMMAND, &pci_cmd); - pci_write_config_word(adapter->pdev, PCI_COMMAND, - pci_cmd & ~PCI_COMMAND_SERR); + if (pci_cmd & PCI_COMMAND_SERR) + pci_write_config_word(adapter->pdev, PCI_COMMAND, + pci_cmd & ~PCI_COMMAND_SERR); err = e1000_test_msi_interrupt(adapter); - /* restore previous setting of command word */ - pci_write_config_word(adapter->pdev, PCI_COMMAND, pci_cmd); + /* re-enable SERR */ + if (pci_cmd & PCI_COMMAND_SERR) { + pci_read_config_word(adapter->pdev, PCI_COMMAND, &pci_cmd); + pci_cmd |= PCI_COMMAND_SERR; + pci_write_config_word(adapter->pdev, PCI_COMMAND, pci_cmd); + } /* success ! */ if (!err) @@ -4841,14 +4870,7 @@ int retval = 0; /* copy MAC RARs to PHY RARs */ - for (i = 0; i < adapter->hw.mac.rar_entry_count; i++) { - mac_reg = er32(RAL(i)); - e1e_wphy(hw, BM_RAR_L(i), (u16)(mac_reg & 0xFFFF)); - e1e_wphy(hw, BM_RAR_M(i), (u16)((mac_reg >> 16) & 0xFFFF)); - mac_reg = er32(RAH(i)); - e1e_wphy(hw, BM_RAR_H(i), (u16)(mac_reg & 0xFFFF)); - e1e_wphy(hw, BM_RAR_CTRL(i), (u16)((mac_reg >> 16) & 0xFFFF)); - } + e1000_copy_rx_addrs_to_phy_ich8lan(hw); /* copy MAC MTA to PHY MTA */ for (i = 0; i < adapter->hw.mac.mta_reg_count; i++) { @@ -5899,6 +5921,9 @@ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_D_HV_DM), board_pchlan }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_D_HV_DC), board_pchlan }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH2_LV_LM), board_pch2lan }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH2_LV_V), board_pch2lan }, + { } /* terminate list */ }; MODULE_DEVICE_TABLE(pci, e1000_pci_tbl); --- linux-2.6.35.orig/drivers/net/e1000e/82571.c +++ linux-2.6.35/drivers/net/e1000e/82571.c @@ -936,12 +936,14 @@ ew32(IMC, 0xffffffff); icr = er32(ICR); - /* Install any alternate MAC address into RAR0 */ - ret_val = e1000_check_alt_mac_addr_generic(hw); - if (ret_val) - return ret_val; + if (hw->mac.type == e1000_82571) { + /* Install any alternate MAC address into RAR0 */ + ret_val = e1000_check_alt_mac_addr_generic(hw); + if (ret_val) + return ret_val; - e1000e_set_laa_state_82571(hw, true); + e1000e_set_laa_state_82571(hw, true); + } /* Reinitialize the 82571 serdes link state machine */ if (hw->phy.media_type == e1000_media_type_internal_serdes) @@ -1618,14 +1620,16 @@ { s32 ret_val = 0; - /* - * If there's an alternate MAC address place it in RAR0 - * so that it will override the Si installed default perm - * address. - */ - ret_val = e1000_check_alt_mac_addr_generic(hw); - if (ret_val) - goto out; + if (hw->mac.type == e1000_82571) { + /* + * If there's an alternate MAC address place it in RAR0 + * so that it will override the Si installed default perm + * address. + */ + ret_val = e1000_check_alt_mac_addr_generic(hw); + if (ret_val) + goto out; + } ret_val = e1000_read_mac_addr_generic(hw); @@ -1833,6 +1837,7 @@ | FLAG_HAS_SMART_POWER_DOWN | FLAG_HAS_AMT | FLAG_HAS_SWSM_ON_LOAD, + .flags2 = FLAG2_DISABLE_ASPM_L1, .pba = 20, .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN, .get_variants = e1000_get_variants_82571, --- linux-2.6.35.orig/drivers/net/e1000e/lib.c +++ linux-2.6.35/drivers/net/e1000e/lib.c @@ -183,6 +183,16 @@ u16 offset, nvm_alt_mac_addr_offset, nvm_data; u8 alt_mac_addr[ETH_ALEN]; + ret_val = e1000_read_nvm(hw, NVM_COMPAT, 1, &nvm_data); + if (ret_val) + goto out; + + /* Check for LOM (vs. NIC) or one of two valid mezzanine cards */ + if (!((nvm_data & NVM_COMPAT_LOM) || + (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_DUAL) || + (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD))) + goto out; + ret_val = e1000_read_nvm(hw, NVM_ALT_MAC_ADDR_PTR, 1, &nvm_alt_mac_addr_offset); if (ret_val) { --- linux-2.6.35.orig/drivers/net/e1000e/phy.c +++ linux-2.6.35/drivers/net/e1000e/phy.c @@ -2319,6 +2319,9 @@ case I82577_E_PHY_ID: phy_type = e1000_phy_82577; break; + case I82579_E_PHY_ID: + phy_type = e1000_phy_82579; + break; default: phy_type = e1000_phy_unknown; break; --- linux-2.6.35.orig/drivers/net/e1000e/hw.h +++ linux-2.6.35/drivers/net/e1000e/hw.h @@ -217,7 +217,10 @@ E1000_SWSM = 0x05B50, /* SW Semaphore */ E1000_FWSM = 0x05B54, /* FW Semaphore */ E1000_SWSM2 = 0x05B58, /* Driver-only SW semaphore */ - E1000_CRC_OFFSET = 0x05F50, /* CRC Offset register */ + E1000_FFLT_DBG = 0x05F04, /* Debug Register */ + E1000_PCH_RAICC_BASE = 0x05F50, /* Receive Address Initial CRC */ +#define E1000_PCH_RAICC(_n) (E1000_PCH_RAICC_BASE + ((_n) * 4)) +#define E1000_CRC_OFFSET E1000_PCH_RAICC_BASE E1000_HICR = 0x08F00, /* Host Interface Control */ }; @@ -303,13 +306,14 @@ #define E1000_KMRNCTRLSTA_OFFSET 0x001F0000 #define E1000_KMRNCTRLSTA_OFFSET_SHIFT 16 #define E1000_KMRNCTRLSTA_REN 0x00200000 +#define E1000_KMRNCTRLSTA_CTRL_OFFSET 0x1 /* Kumeran Control */ #define E1000_KMRNCTRLSTA_DIAG_OFFSET 0x3 /* Kumeran Diagnostic */ #define E1000_KMRNCTRLSTA_TIMEOUTS 0x4 /* Kumeran Timeouts */ #define E1000_KMRNCTRLSTA_INBAND_PARAM 0x9 /* Kumeran InBand Parameters */ #define E1000_KMRNCTRLSTA_DIAG_NELPBK 0x1000 /* Nearend Loopback mode */ #define E1000_KMRNCTRLSTA_K1_CONFIG 0x7 -#define E1000_KMRNCTRLSTA_K1_ENABLE 0x140E -#define E1000_KMRNCTRLSTA_K1_DISABLE 0x1400 +#define E1000_KMRNCTRLSTA_K1_ENABLE 0x0002 +#define E1000_KMRNCTRLSTA_HD_CTRL 0x10 /* Kumeran HD Control */ #define IFE_PHY_EXTENDED_STATUS_CONTROL 0x10 #define IFE_PHY_SPECIAL_CONTROL 0x11 /* 100BaseTx PHY Special Control */ @@ -387,6 +391,8 @@ #define E1000_DEV_ID_PCH_M_HV_LC 0x10EB #define E1000_DEV_ID_PCH_D_HV_DM 0x10EF #define E1000_DEV_ID_PCH_D_HV_DC 0x10F0 +#define E1000_DEV_ID_PCH2_LV_LM 0x1502 +#define E1000_DEV_ID_PCH2_LV_V 0x1503 #define E1000_REVISION_4 4 @@ -406,6 +412,7 @@ e1000_ich9lan, e1000_ich10lan, e1000_pchlan, + e1000_pch2lan, }; enum e1000_media_type { @@ -442,6 +449,7 @@ e1000_phy_bm, e1000_phy_82578, e1000_phy_82577, + e1000_phy_82579, }; enum e1000_bus_width { --- linux-2.6.35.orig/drivers/net/ixgb/ixgb_main.c +++ linux-2.6.35/drivers/net/ixgb/ixgb_main.c @@ -1816,6 +1816,7 @@ while (eop_desc->status & IXGB_TX_DESC_STATUS_DD) { + rmb(); /* read buffer_info after eop_desc */ for (cleaned = false; !cleaned; ) { tx_desc = IXGB_TX_DESC(*tx_ring, i); buffer_info = &tx_ring->buffer_info[i]; @@ -1976,6 +1977,7 @@ break; (*work_done)++; + rmb(); /* read descriptor and rx_buffer_info after status DD */ status = rx_desc->status; skb = buffer_info->skb; buffer_info->skb = NULL; --- linux-2.6.35.orig/drivers/net/bonding/bond_alb.c +++ linux-2.6.35/drivers/net/bonding/bond_alb.c @@ -369,6 +369,9 @@ goto out; } + if (!pskb_may_pull(skb, arp_hdr_len(bond_dev))) + goto out; + if (skb->len < sizeof(struct arp_pkt)) { pr_debug("Packet is too small to be an ARP\n"); goto out; --- linux-2.6.35.orig/drivers/net/bonding/bond_3ad.c +++ linux-2.6.35/drivers/net/bonding/bond_3ad.c @@ -2466,6 +2466,9 @@ if (!(dev->flags & IFF_MASTER)) goto out; + if (!pskb_may_pull(skb, sizeof(struct lacpdu))) + goto out; + read_lock(&bond->lock); slave = bond_get_slave_by_dev((struct bonding *)netdev_priv(dev), orig_dev); --- linux-2.6.35.orig/drivers/net/igb/igb_main.c +++ linux-2.6.35/drivers/net/igb/igb_main.c @@ -630,9 +630,6 @@ for (; i < adapter->rss_queues; i++) adapter->rx_ring[i]->reg_idx = rbase_offset + Q_IDX_82576(i); - for (; j < adapter->rss_queues; j++) - adapter->tx_ring[j]->reg_idx = rbase_offset + - Q_IDX_82576(j); } case e1000_82575: case e1000_82580: @@ -996,7 +993,10 @@ /* Number of supported queues. */ adapter->num_rx_queues = adapter->rss_queues; - adapter->num_tx_queues = adapter->rss_queues; + if (adapter->vfs_allocated_count) + adapter->num_tx_queues = 1; + else + adapter->num_tx_queues = adapter->rss_queues; /* start with one vector for every rx queue */ numvecs = adapter->num_rx_queues; @@ -5344,6 +5344,7 @@ while ((eop_desc->wb.status & cpu_to_le32(E1000_TXD_STAT_DD)) && (count < tx_ring->count)) { + rmb(); /* read buffer_info after eop_desc status */ for (cleaned = false; !cleaned; count++) { tx_desc = E1000_TX_DESC_ADV(*tx_ring, i); buffer_info = &tx_ring->buffer_info[i]; @@ -5549,6 +5550,7 @@ if (*work_done >= budget) break; (*work_done)++; + rmb(); /* read descriptor and rx_buffer_info after status DD */ skb = buffer_info->skb; prefetch(skb->data - NET_IP_ALIGN); --- linux-2.6.35.orig/drivers/video/vesafb.c +++ linux-2.6.35/drivers/video/vesafb.c @@ -27,6 +27,12 @@ #define dac_reg (0x3c8) #define dac_val (0x3c9) +struct vesafb_info +{ + u32 pseudo_palette[256]; + int mtrr_hdl; +}; + /* --------------------------------------------------------------------- */ static struct fb_var_screeninfo vesafb_defined __initdata = { @@ -46,16 +52,37 @@ .accel = FB_ACCEL_NONE, }; +#ifndef MODULE static int inverse __read_mostly; +#endif static int mtrr __read_mostly; /* disable mtrr */ static int vram_remap __initdata; /* Set amount of memory to be used */ static int vram_total __initdata; /* Set total amount of memory */ static int pmi_setpal __read_mostly = 1; /* pmi for palette changes ??? */ +static int redraw __read_mostly; static int ypan __read_mostly; /* 0..nothing, 1..ypan, 2..ywrap */ +static int ywrap __read_mostly; static void (*pmi_start)(void) __read_mostly; static void (*pmi_pal) (void) __read_mostly; static int depth __read_mostly; static int vga_compat __read_mostly; + +module_param(redraw, bool, 0); +module_param(ypan, bool, 0); +module_param(ywrap, bool, 0); +module_param_named(vgapal, pmi_setpal, invbool, 0); +MODULE_PARM_DESC(vgapal, "Use VGA for setting palette (default)"); +module_param_named(pmipal, pmi_setpal, bool, 0); +MODULE_PARM_DESC(pmipal, "Use PMI for setting palette"); +module_param(mtrr, bool, 0); +MODULE_PARM_DESC(mtrr, "Enable MTRR support (default)"); +module_param_named(nomtrr, mtrr, invbool, 0); +MODULE_PARM_DESC(nomtrr, "Disable MTRR support"); +module_param(vram_remap, int, 0); +MODULE_PARM_DESC(vram_remap, "Set total amount of memory to be used"); +module_param(vram_total, int, 0); +MODULE_PARM_DESC(vram_total, "Total amount of memory"); + /* --------------------------------------------------------------------- */ static int vesafb_pan_display(struct fb_var_screeninfo *var, @@ -191,6 +218,7 @@ .fb_imageblit = cfb_imageblit, }; +#ifndef MODULE static int __init vesafb_setup(char *options) { char *this_opt; @@ -224,10 +252,12 @@ } return 0; } +#endif static int __init vesafb_probe(struct platform_device *dev) { struct fb_info *info; + struct vesafb_info *vfb_info; int i, err; unsigned int size_vmode; unsigned int size_remap; @@ -286,13 +316,14 @@ spaces our resource handlers simply don't know about */ } - info = framebuffer_alloc(sizeof(u32) * 256, &dev->dev); + info = framebuffer_alloc(sizeof(struct vesafb_info), &dev->dev); if (!info) { release_mem_region(vesafb_fix.smem_start, size_total); return -ENOMEM; } - info->pseudo_palette = info->par; - info->par = NULL; + vfb_info = (struct vesafb_info *) info->par; + vfb_info->mtrr_hdl = -1; + info->pseudo_palette = vfb_info->pseudo_palette; /* set vesafb aperture size for generic probing */ info->apertures = alloc_apertures(1); @@ -435,18 +466,16 @@ } if (type) { - int rc; - /* Find the largest power-of-two */ while (temp_size & (temp_size - 1)) temp_size &= (temp_size - 1); /* Try and find a power of two to add */ do { - rc = mtrr_add(vesafb_fix.smem_start, temp_size, + vfb_info->mtrr_hdl = mtrr_add(vesafb_fix.smem_start, temp_size, type, 1); temp_size >>= 1; - } while (temp_size >= PAGE_SIZE && rc == -EINVAL); + } while (temp_size >= PAGE_SIZE && vfb_info->mtrr_hdl == -EINVAL); } } #endif @@ -480,7 +509,27 @@ return err; } +static int __exit vesafb_remove(struct platform_device *device) +{ + struct fb_info *info = dev_get_drvdata(&device->dev); + + unregister_framebuffer(info); +#ifdef CONFIG_MTRR + { + struct vesafb_info *vfb_info = (struct vesafb_info *) info->par; + if (vfb_info->mtrr_hdl >= 0) + mtrr_del(vfb_info->mtrr_hdl, 0, 0); + } +#endif + iounmap(info->screen_base); + framebuffer_release(info); + release_mem_region(vesafb_fix.smem_start, vesafb_fix.smem_len); + + return 0; +} + static struct platform_driver vesafb_driver = { + .remove = vesafb_remove, .driver = { .name = "vesafb", }, @@ -491,11 +540,18 @@ static int __init vesafb_init(void) { int ret; +#ifndef MODULE char *option = NULL; /* ignore error return of fb_get_options */ fb_get_options("vesafb", &option); vesafb_setup(option); +#else + if (redraw) + ypan = 0; + if (ywrap) + ypan = 2; +#endif vesafb_device = platform_device_alloc("vesafb", 0); if (!vesafb_device) @@ -515,6 +571,14 @@ return ret; } + +static void __exit vesafb_exit(void) +{ + platform_device_unregister(vesafb_device); + platform_driver_unregister(&vesafb_driver); +} + module_init(vesafb_init); +module_exit(vesafb_exit); MODULE_LICENSE("GPL"); --- linux-2.6.35.orig/drivers/video/fbmem.c +++ linux-2.6.35/drivers/video/fbmem.c @@ -42,6 +42,8 @@ #define FBPIXMAPSIZE (1024 * 8) +/* Protects the registered framebuffer list and count. */ +static DEFINE_SPINLOCK(registered_lock); struct fb_info *registered_fb[FB_MAX] __read_mostly; int num_registered_fb __read_mostly; @@ -694,9 +696,7 @@ fb_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) { unsigned long p = *ppos; - struct inode *inode = file->f_path.dentry->d_inode; - int fbidx = iminor(inode); - struct fb_info *info = registered_fb[fbidx]; + struct fb_info * const info = file->private_data; u32 *buffer, *dst; u32 __iomem *src; int c, i, cnt = 0, err = 0; @@ -705,19 +705,28 @@ if (!info || ! info->screen_base) return -ENODEV; - if (info->state != FBINFO_STATE_RUNNING) - return -EPERM; + if (!lock_fb_info(info)) + return -ENODEV; - if (info->fbops->fb_read) - return info->fbops->fb_read(info, buf, count, ppos); + if (info->state != FBINFO_STATE_RUNNING) { + err = -EPERM; + goto out_fb_info; + } + + if (info->fbops->fb_read) { + err = info->fbops->fb_read(info, buf, count, ppos); + goto out_fb_info; + } total_size = info->screen_size; if (total_size == 0) total_size = info->fix.smem_len; - if (p >= total_size) - return 0; + if (p >= total_size) { + err = 0; + goto out_fb_info; + } if (count >= total_size) count = total_size; @@ -727,8 +736,10 @@ buffer = kmalloc((count > PAGE_SIZE) ? PAGE_SIZE : count, GFP_KERNEL); - if (!buffer) - return -ENOMEM; + if (!buffer) { + err = -ENOMEM; + goto out_fb_info; + } src = (u32 __iomem *) (info->screen_base + p); @@ -759,19 +770,21 @@ cnt += c; count -= c; } + if (!err) + err = cnt; kfree(buffer); +out_fb_info: + unlock_fb_info(info); - return (err) ? err : cnt; + return err; } static ssize_t fb_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) { unsigned long p = *ppos; - struct inode *inode = file->f_path.dentry->d_inode; - int fbidx = iminor(inode); - struct fb_info *info = registered_fb[fbidx]; + struct fb_info * const info = file->private_data; u32 *buffer, *src; u32 __iomem *dst; int c, i, cnt = 0, err = 0; @@ -780,8 +793,13 @@ if (!info || !info->screen_base) return -ENODEV; - if (info->state != FBINFO_STATE_RUNNING) - return -EPERM; + if (!lock_fb_info(info)) + return -ENODEV; + + if (info->state != FBINFO_STATE_RUNNING) { + err = -EPERM; + goto out_fb_info; + } if (info->fbops->fb_write) return info->fbops->fb_write(info, buf, count, ppos); @@ -791,8 +809,10 @@ if (total_size == 0) total_size = info->fix.smem_len; - if (p > total_size) - return -EFBIG; + if (p > total_size) { + err = -EFBIG; + goto out_fb_info; + } if (count > total_size) { err = -EFBIG; @@ -808,8 +828,10 @@ buffer = kmalloc((count > PAGE_SIZE) ? PAGE_SIZE : count, GFP_KERNEL); - if (!buffer) - return -ENOMEM; + if (!buffer) { + err = -ENOMEM; + goto out_fb_info; + } dst = (u32 __iomem *) (info->screen_base + p); @@ -843,10 +865,14 @@ cnt += c; count -= c; } + if (cnt) + err = cnt; kfree(buffer); +out_fb_info: + unlock_fb_info(info); - return (cnt) ? cnt : err; + return err; } int @@ -1321,8 +1347,7 @@ static int fb_mmap(struct file *file, struct vm_area_struct * vma) { - int fbidx = iminor(file->f_path.dentry->d_inode); - struct fb_info *info = registered_fb[fbidx]; + struct fb_info * const info = file->private_data; struct fb_ops *fb = info->fbops; unsigned long off; unsigned long start; @@ -1334,6 +1359,11 @@ if (!fb) return -ENODEV; mutex_lock(&info->mm_lock); + if (info->state == FBINFO_STATE_REMOVED) { + mutex_unlock(&info->mm_lock); + return -ENODEV; + } + if (fb->fb_mmap) { int res; res = fb->fb_mmap(info, vma); @@ -1369,6 +1399,35 @@ return 0; } +static struct fb_info *get_framebuffer_info(int idx) +__acquires(®istered_lock) +__releases(®istered_lock) +{ + struct fb_info *fb_info; + + spin_lock(®istered_lock); + fb_info = registered_fb[idx]; + if (fb_info) + fb_info->ref_count++; + spin_unlock(®istered_lock); + + return fb_info; +} + +static void put_framebuffer_info(struct fb_info *fb_info) +__acquires(®istered_lock) +__releases(®istered_lock) +{ + int keep; + + spin_lock(®istered_lock); + keep = --fb_info->ref_count; + spin_unlock(®istered_lock); + + if (!keep && fb_info->fbops->fb_destroy) + fb_info->fbops->fb_destroy(fb_info); +} + static int fb_open(struct inode *inode, struct file *file) __acquires(&info->lock) @@ -1380,13 +1439,17 @@ if (fbidx >= FB_MAX) return -ENODEV; - info = registered_fb[fbidx]; + info = get_framebuffer_info(fbidx); if (!info) request_module("fb%d", fbidx); - info = registered_fb[fbidx]; + info = get_framebuffer_info(fbidx); if (!info) return -ENODEV; mutex_lock(&info->lock); + if (info->state == FBINFO_STATE_REMOVED) { + res = -ENODEV; + goto out; + } if (!try_module_get(info->fbops->owner)) { res = -ENODEV; goto out; @@ -1403,6 +1466,8 @@ #endif out: mutex_unlock(&info->lock); + if (res) + put_framebuffer_info(info); return res; } @@ -1418,6 +1483,7 @@ info->fbops->fb_release(info,1); module_put(info->fbops->owner); mutex_unlock(&info->lock); + put_framebuffer_info(info); return 0; } @@ -1565,6 +1631,7 @@ fb_info->node = i; mutex_init(&fb_info->lock); mutex_init(&fb_info->mm_lock); + fb_info->ref_count = 1; fb_info->dev = device_create(fb_class, fb_info->device, MKDEV(FB_MAJOR, i), NULL, "fb%d", i); @@ -1608,7 +1675,6 @@ return 0; } - /** * unregister_framebuffer - releases a frame buffer device * @fb_info: frame buffer info structure @@ -1643,6 +1709,16 @@ return -ENODEV; event.info = fb_info; ret = fb_notifier_call_chain(FB_EVENT_FB_UNBIND, &event); + if (!ret) { + mutex_lock(&fb_info->mm_lock); + /* + * We must prevent any operations for this transition, we + * already have info->lock so grab the info->mm_lock to hold + * the remainder. + */ + fb_info->state = FBINFO_STATE_REMOVED; + mutex_unlock(&fb_info->mm_lock); + } unlock_fb_info(fb_info); if (ret) { @@ -1662,8 +1738,7 @@ fb_notifier_call_chain(FB_EVENT_FB_UNREGISTERED, &event); /* this may free fb info */ - if (fb_info->fbops->fb_destroy) - fb_info->fbops->fb_destroy(fb_info); + put_framebuffer_info(fb_info); done: return ret; } --- linux-2.6.35.orig/drivers/video/w100fb.c +++ linux-2.6.35/drivers/video/w100fb.c @@ -858,9 +858,9 @@ void w100fb_gpio_write(int port, unsigned long value) { if (port==W100_GPIO_PORT_A) - value = writel(value, remapped_regs + mmGPIO_DATA); + writel(value, remapped_regs + mmGPIO_DATA); else - value = writel(value, remapped_regs + mmGPIO_DATA2); + writel(value, remapped_regs + mmGPIO_DATA2); } EXPORT_SYMBOL(w100fb_gpio_read); EXPORT_SYMBOL(w100fb_gpio_write); --- linux-2.6.35.orig/drivers/video/Kconfig +++ linux-2.6.35/drivers/video/Kconfig @@ -709,8 +709,8 @@ If unsure, say N. config FB_VESA - bool "VESA VGA graphics support" - depends on (FB = y) && X86 + tristate "VESA VGA graphics support" + depends on FB && X86 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT --- linux-2.6.35.orig/drivers/video/omap2/displays/panel-generic.c +++ linux-2.6.35/drivers/video/omap2/displays/panel-generic.c @@ -39,6 +39,9 @@ { int r; + if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) + return 0; + r = omapdss_dpi_display_enable(dssdev); if (r) goto err0; @@ -58,6 +61,9 @@ static void generic_panel_power_off(struct omap_dss_device *dssdev) { + if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) + return; + if (dssdev->platform_disable) dssdev->platform_disable(dssdev); --- linux-2.6.35.orig/drivers/video/omap2/displays/panel-tpo-td043mtea1.c +++ linux-2.6.35/drivers/video/omap2/displays/panel-tpo-td043mtea1.c @@ -269,6 +269,9 @@ int nreset_gpio = dssdev->reset_gpio; int r; + if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) + return 0; + r = omapdss_dpi_display_enable(dssdev); if (r) goto err0; @@ -308,6 +311,9 @@ struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev); int nreset_gpio = dssdev->reset_gpio; + if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) + return; + tpo_td043_write(tpo_td043->spi, 3, TPO_R03_VAL_STANDBY | TPO_R03_EN_PWM); --- linux-2.6.35.orig/drivers/video/omap2/displays/panel-acx565akm.c +++ linux-2.6.35/drivers/video/omap2/displays/panel-acx565akm.c @@ -587,6 +587,9 @@ dev_dbg(&dssdev->dev, "%s\n", __func__); + if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) + return 0; + mutex_lock(&md->mutex); r = omapdss_sdi_display_enable(dssdev); @@ -642,6 +645,9 @@ dev_dbg(&dssdev->dev, "%s\n", __func__); + if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) + return; + mutex_lock(&md->mutex); if (!md->enabled) { --- linux-2.6.35.orig/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c +++ linux-2.6.35/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c @@ -135,6 +135,9 @@ { int r = 0; + if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) + return 0; + r = omapdss_dpi_display_enable(dssdev); if (r) goto err0; @@ -157,6 +160,9 @@ static void sharp_ls_power_off(struct omap_dss_device *dssdev) { + if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) + return; + if (dssdev->platform_disable) dssdev->platform_disable(dssdev); --- linux-2.6.35.orig/drivers/video/omap2/displays/panel-toppoly-tdo35s.c +++ linux-2.6.35/drivers/video/omap2/displays/panel-toppoly-tdo35s.c @@ -46,6 +46,9 @@ { int r; + if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) + return 0; + r = omapdss_dpi_display_enable(dssdev); if (r) goto err0; @@ -65,6 +68,9 @@ static void toppoly_tdo_panel_power_off(struct omap_dss_device *dssdev) { + if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) + return; + if (dssdev->platform_disable) dssdev->platform_disable(dssdev); --- linux-2.6.35.orig/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c +++ linux-2.6.35/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c @@ -43,6 +43,9 @@ { int r; + if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) + return 0; + r = omapdss_dpi_display_enable(dssdev); if (r) goto err0; @@ -65,6 +68,9 @@ static void sharp_lq_panel_power_off(struct omap_dss_device *dssdev) { + if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) + return; + if (dssdev->platform_disable) dssdev->platform_disable(dssdev); --- linux-2.6.35.orig/drivers/video/omap2/dss/dpi.c +++ linux-2.6.35/drivers/video/omap2/dss/dpi.c @@ -177,7 +177,12 @@ #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL dss_clk_enable(DSS_CLK_FCK2); - r = dsi_pll_init(dssdev, 0, 1); + + if (cpu_is_omap3630()) + r = dsi_pll_init(dssdev, 1, 1); + else + r = dsi_pll_init(dssdev, 0, 1); + if (r) goto err3; #endif --- linux-2.6.35.orig/drivers/video/omap2/dss/dispc.c +++ linux-2.6.35/drivers/video/omap2/dss/dispc.c @@ -2111,7 +2111,7 @@ static bool _dispc_lcd_timings_ok(int hsw, int hfp, int hbp, int vsw, int vfp, int vbp) { - if (cpu_is_omap24xx() || omap_rev() < OMAP3430_REV_ES3_0) { + if (cpu_is_omap24xx() || (cpu_is_omap34xx() && omap_rev_lt_3_0())) { if (hsw < 1 || hsw > 64 || hfp < 1 || hfp > 256 || hbp < 1 || hbp > 256 || @@ -2144,7 +2144,7 @@ { u32 timing_h, timing_v; - if (cpu_is_omap24xx() || omap_rev() < OMAP3430_REV_ES3_0) { + if (cpu_is_omap24xx() || (cpu_is_omap34xx() && omap_rev_lt_3_0())) { timing_h = FLD_VAL(hsw-1, 5, 0) | FLD_VAL(hfp-1, 15, 8) | FLD_VAL(hbp-1, 27, 20); --- linux-2.6.35.orig/drivers/video/via/ioctl.c +++ linux-2.6.35/drivers/video/via/ioctl.c @@ -25,6 +25,8 @@ { struct viafb_ioctl_info viainfo; + memset(&viainfo, 0, sizeof(struct viafb_ioctl_info)); + viainfo.viafb_id = VIAID; viainfo.vendor_id = PCI_VIA_VENDOR_ID; --- linux-2.6.35.orig/drivers/video/sis/sis_main.c +++ linux-2.6.35/drivers/video/sis/sis_main.c @@ -1701,6 +1701,9 @@ break; case FBIOGET_VBLANK: + + memset(&sisvbblank, 0, sizeof(struct fb_vblank)); + sisvbblank.count = 0; sisvbblank.flags = sisfb_setupvbblankflags(ivideo, &sisvbblank.vcount, &sisvbblank.hcount); --- linux-2.6.35.orig/drivers/video/matrox/matroxfb_base.h +++ linux-2.6.35/drivers/video/matrox/matroxfb_base.h @@ -151,13 +151,13 @@ static inline void mga_memcpy_toio(vaddr_t va, const void* src, int len) { #if defined(__alpha__) || defined(__i386__) || defined(__x86_64__) /* - * memcpy_toio works for us if: + * iowrite32_rep works for us if: * (1) Copies data as 32bit quantities, not byte after byte, * (2) Performs LE ordered stores, and * (3) It copes with unaligned source (destination is guaranteed to be page * aligned and length is guaranteed to be multiple of 4). */ - memcpy_toio(va.vaddr, src, len); + iowrite32_rep(va.vaddr, src, len >> 2); #else u_int32_t __iomem* addr = va.vaddr; --- linux-2.6.35.orig/drivers/regulator/wm8994-regulator.c +++ linux-2.6.35/drivers/regulator/wm8994-regulator.c @@ -219,8 +219,6 @@ ldo->wm8994 = wm8994; - ldo->is_enabled = true; - if (pdata->ldo[id].enable && gpio_is_valid(pdata->ldo[id].enable)) { ldo->enable = pdata->ldo[id].enable; @@ -237,7 +235,8 @@ ret); goto err_gpio; } - } + } else + ldo->is_enabled = true; ldo->regulator = regulator_register(&wm8994_ldo_desc[id], &pdev->dev, pdata->ldo[id].init_data, ldo); --- linux-2.6.35.orig/drivers/misc/enclosure.c +++ linux-2.6.35/drivers/misc/enclosure.c @@ -285,8 +285,11 @@ cdev->groups = enclosure_groups; err = device_register(cdev); - if (err) - ERR_PTR(err); + if (err) { + ecomp->number = -1; + put_device(cdev); + return ERR_PTR(err); + } return ecomp; } --- linux-2.6.35.orig/drivers/isdn/gigaset/capi.c +++ linux-2.6.35/drivers/isdn/gigaset/capi.c @@ -378,13 +378,13 @@ ++bcs->trans_up; if (!ap) { - dev_err(cs->dev, "%s: no application\n", __func__); + gig_dbg(DEBUG_MCMD, "%s: application gone", __func__); return; } /* don't send further B3 messages if disconnected */ if (bcs->apconnstate < APCONN_ACTIVE) { - gig_dbg(DEBUG_LLDATA, "disconnected, discarding ack"); + gig_dbg(DEBUG_MCMD, "%s: disconnected", __func__); return; } @@ -422,13 +422,14 @@ bcs->trans_down++; if (!ap) { - dev_err(cs->dev, "%s: no application\n", __func__); + gig_dbg(DEBUG_MCMD, "%s: application gone", __func__); + dev_kfree_skb_any(skb); return; } /* don't send further B3 messages if disconnected */ if (bcs->apconnstate < APCONN_ACTIVE) { - gig_dbg(DEBUG_LLDATA, "disconnected, discarding data"); + gig_dbg(DEBUG_MCMD, "%s: disconnected", __func__); dev_kfree_skb_any(skb); return; } @@ -747,7 +748,7 @@ ap = bcs->ap; if (!ap) { spin_unlock_irqrestore(&bcs->aplock, flags); - dev_err(cs->dev, "%s: no application\n", __func__); + gig_dbg(DEBUG_CMD, "%s: application gone", __func__); return; } if (bcs->apconnstate == APCONN_NONE) { @@ -843,7 +844,7 @@ ap = bcs->ap; if (!ap) { spin_unlock_irqrestore(&bcs->aplock, flags); - dev_err(cs->dev, "%s: no application\n", __func__); + gig_dbg(DEBUG_CMD, "%s: application gone", __func__); return; } if (!bcs->apconnstate) { @@ -901,13 +902,12 @@ */ void gigaset_isdn_hupB(struct bc_state *bcs) { - struct cardstate *cs = bcs->cs; struct gigaset_capi_appl *ap = bcs->ap; /* ToDo: assure order of DISCONNECT_B3_IND and DISCONNECT_IND ? */ if (!ap) { - dev_err(cs->dev, "%s: no application\n", __func__); + gig_dbg(DEBUG_CMD, "%s: application gone", __func__); return; } @@ -1044,6 +1044,7 @@ do { if (bcap->bcnext == ap) { bcap->bcnext = bcap->bcnext->bcnext; + spin_unlock_irqrestore(&bcs->aplock, flags); return; } bcap = bcap->bcnext; --- linux-2.6.35.orig/drivers/isdn/sc/ioctl.c +++ linux-2.6.35/drivers/isdn/sc/ioctl.c @@ -174,7 +174,7 @@ pr_debug("%s: SCIOGETSPID: ioctl received\n", sc_adapter[card]->devicename); - spid = kmalloc(SCIOC_SPIDSIZE, GFP_KERNEL); + spid = kzalloc(SCIOC_SPIDSIZE, GFP_KERNEL); if (!spid) { kfree(rcvmsg); return -ENOMEM; @@ -194,7 +194,7 @@ kfree(rcvmsg); return status; } - strcpy(spid, rcvmsg->msg_data.byte_array); + strlcpy(spid, rcvmsg->msg_data.byte_array, SCIOC_SPIDSIZE); /* * Package the switch type and send to user space @@ -272,12 +272,12 @@ return status; } - dn = kmalloc(SCIOC_DNSIZE, GFP_KERNEL); + dn = kzalloc(SCIOC_DNSIZE, GFP_KERNEL); if (!dn) { kfree(rcvmsg); return -ENOMEM; } - strcpy(dn, rcvmsg->msg_data.byte_array); + strlcpy(dn, rcvmsg->msg_data.byte_array, SCIOC_DNSIZE); kfree(rcvmsg); /* @@ -348,7 +348,7 @@ pr_debug("%s: SCIOSTAT: ioctl received\n", sc_adapter[card]->devicename); - bi = kmalloc (sizeof(boardInfo), GFP_KERNEL); + bi = kzalloc(sizeof(boardInfo), GFP_KERNEL); if (!bi) { kfree(rcvmsg); return -ENOMEM; --- linux-2.6.35.orig/drivers/serial/suncore.c +++ linux-2.6.35/drivers/serial/suncore.c @@ -55,7 +55,12 @@ int sunserial_console_match(struct console *con, struct device_node *dp, struct uart_driver *drv, int line, bool ignore_line) { - if (!con || of_console_device != dp) + if (!con) + return 0; + + drv->cons = con; + + if (of_console_device != dp) return 0; if (!ignore_line) { @@ -69,12 +74,10 @@ return 0; } - con->index = line; - drv->cons = con; - - if (!console_set_on_cmdline) + if (!console_set_on_cmdline) { + con->index = line; add_preferred_console(con->name, line, NULL); - + } return 1; } EXPORT_SYMBOL(sunserial_console_match); --- linux-2.6.35.orig/drivers/serial/bfin_sport_uart.c +++ linux-2.6.35/drivers/serial/bfin_sport_uart.c @@ -121,7 +121,7 @@ unsigned int sclk = get_sclk(); /* Set TCR1 and TCR2, TFSR is not enabled for uart */ - SPORT_PUT_TCR1(up, (ITFS | TLSBIT | ITCLK)); + SPORT_PUT_TCR1(up, (LATFS | ITFS | TFSR | TLSBIT | ITCLK)); SPORT_PUT_TCR2(up, size + 1); pr_debug("%s TCR1:%x, TCR2:%x\n", __func__, SPORT_GET_TCR1(up), SPORT_GET_TCR2(up)); --- linux-2.6.35.orig/drivers/serial/8250_pci.c +++ linux-2.6.35/drivers/serial/8250_pci.c @@ -994,6 +994,7 @@ #define PCI_DEVICE_ID_TITAN_800E 0xA014 #define PCI_DEVICE_ID_TITAN_200EI 0xA016 #define PCI_DEVICE_ID_TITAN_200EISI 0xA017 +#define PCI_DEVICE_ID_OXSEMI_16PCI958 0x9538 /* Unknown vendors/cards - this should not be in linux/pci_ids.h */ #define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584 @@ -1542,6 +1543,8 @@ pbn_b2_4_921600, pbn_b2_8_921600, + pbn_b2_8_1152000, + pbn_b2_bt_1_115200, pbn_b2_bt_2_115200, pbn_b2_bt_4_115200, @@ -1960,6 +1963,13 @@ .uart_offset = 8, }, + [pbn_b2_8_1152000] = { + .flags = FL_BASE2, + .num_ports = 8, + .base_baud = 1152000, + .uart_offset = 8, + }, + [pbn_b2_bt_1_115200] = { .flags = FL_BASE2|FL_BASE_BARS, .num_ports = 1, @@ -2875,6 +2885,9 @@ { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI952, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b0_bt_2_921600 }, + { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI958, + PCI_ANY_ID , PCI_ANY_ID, 0, 0, + pbn_b2_8_1152000 }, /* * Oxford Semiconductor Inc. Tornado PCI express device range. --- linux-2.6.35.orig/drivers/md/raid10.c +++ linux-2.6.35/drivers/md/raid10.c @@ -825,11 +825,29 @@ */ bp = bio_split(bio, chunk_sects - (bio->bi_sector & (chunk_sects - 1)) ); + + /* Each of these 'make_request' calls will call 'wait_barrier'. + * If the first succeeds but the second blocks due to the resync + * thread raising the barrier, we will deadlock because the + * IO to the underlying device will be queued in generic_make_request + * and will never complete, so will never reduce nr_pending. + * So increment nr_waiting here so no new raise_barriers will + * succeed, and so the second wait_barrier cannot block. + */ + spin_lock_irq(&conf->resync_lock); + conf->nr_waiting++; + spin_unlock_irq(&conf->resync_lock); + if (make_request(mddev, &bp->bio1)) generic_make_request(&bp->bio1); if (make_request(mddev, &bp->bio2)) generic_make_request(&bp->bio2); + spin_lock_irq(&conf->resync_lock); + conf->nr_waiting--; + wake_up(&conf->wait_barrier); + spin_unlock_irq(&conf->resync_lock); + bio_pair_release(bp); return 0; bad_map: --- linux-2.6.35.orig/drivers/md/md.h +++ linux-2.6.35/drivers/md/md.h @@ -125,6 +125,10 @@ int suspended; atomic_t active_io; int ro; + int sysfs_active; /* set when sysfs deletes + * are happening, so run/ + * takeover/stop are not safe + */ struct gendisk *gendisk; --- linux-2.6.35.orig/drivers/md/dm.h +++ linux-2.6.35/drivers/md/dm.h @@ -122,6 +122,11 @@ int dm_stripe_init(void); void dm_stripe_exit(void); +/* + * mapped_device operations + */ +void dm_destroy(struct mapped_device *md); +void dm_destroy_immediate(struct mapped_device *md); int dm_open_count(struct mapped_device *md); int dm_lock_for_deletion(struct mapped_device *md); --- linux-2.6.35.orig/drivers/md/dm-exception-store.c +++ linux-2.6.35/drivers/md/dm-exception-store.c @@ -173,7 +173,9 @@ /* Validate the chunk size against the device block size */ if (chunk_size % - (bdev_logical_block_size(dm_snap_cow(store->snap)->bdev) >> 9)) { + (bdev_logical_block_size(dm_snap_cow(store->snap)->bdev) >> 9) || + chunk_size % + (bdev_logical_block_size(dm_snap_origin(store->snap)->bdev) >> 9)) { *error = "Chunk size is not a multiple of device blocksize"; return -EINVAL; } --- linux-2.6.35.orig/drivers/md/dm-ioctl.c +++ linux-2.6.35/drivers/md/dm-ioctl.c @@ -249,40 +249,50 @@ static void dm_hash_remove_all(int keep_open_devices) { - int i, dev_skipped, dev_removed; + int i, dev_skipped; struct hash_cell *hc; - struct list_head *tmp, *n; + struct mapped_device *md; + +retry: + dev_skipped = 0; down_write(&_hash_lock); -retry: - dev_skipped = dev_removed = 0; for (i = 0; i < NUM_BUCKETS; i++) { - list_for_each_safe (tmp, n, _name_buckets + i) { - hc = list_entry(tmp, struct hash_cell, name_list); + list_for_each_entry(hc, _name_buckets + i, name_list) { + md = hc->md; + dm_get(md); - if (keep_open_devices && - dm_lock_for_deletion(hc->md)) { + if (keep_open_devices && dm_lock_for_deletion(md)) { + dm_put(md); dev_skipped++; continue; } + __hash_remove(hc); - dev_removed = 1; - } - } - /* - * Some mapped devices may be using other mapped devices, so if any - * still exist, repeat until we make no further progress. - */ - if (dev_skipped) { - if (dev_removed) - goto retry; + up_write(&_hash_lock); - DMWARN("remove_all left %d open device(s)", dev_skipped); + dm_put(md); + if (likely(keep_open_devices)) + dm_destroy(md); + else + dm_destroy_immediate(md); + + /* + * Some mapped devices may be using other mapped + * devices, so repeat until we make no further + * progress. If a new mapped device is created + * here it will also get removed. + */ + goto retry; + } } up_write(&_hash_lock); + + if (dev_skipped) + DMWARN("remove_all left %d open device(s)", dev_skipped); } static int dm_hash_rename(uint32_t cookie, uint32_t *flags, const char *old, @@ -640,6 +650,7 @@ r = dm_hash_insert(param->name, *param->uuid ? param->uuid : NULL, md); if (r) { dm_put(md); + dm_destroy(md); return r; } @@ -742,6 +753,7 @@ param->flags |= DM_UEVENT_GENERATED_FLAG; dm_put(md); + dm_destroy(md); return 0; } --- linux-2.6.35.orig/drivers/md/dm.c +++ linux-2.6.35/drivers/md/dm.c @@ -19,6 +19,7 @@ #include #include #include +#include #include @@ -2141,6 +2142,7 @@ md = idr_find(&_minor_idr, minor); if (md && (md == MINOR_ALLOCED || (MINOR(disk_devt(dm_disk(md))) != minor) || + dm_deleting_md(md) || test_bit(DMF_FREEING, &md->flags))) { md = NULL; goto out; @@ -2175,6 +2177,7 @@ void dm_get(struct mapped_device *md) { atomic_inc(&md->holders); + BUG_ON(test_bit(DMF_FREEING, &md->flags)); } const char *dm_device_name(struct mapped_device *md) @@ -2183,27 +2186,55 @@ } EXPORT_SYMBOL_GPL(dm_device_name); -void dm_put(struct mapped_device *md) +static void __dm_destroy(struct mapped_device *md, bool wait) { struct dm_table *map; - BUG_ON(test_bit(DMF_FREEING, &md->flags)); + might_sleep(); - if (atomic_dec_and_lock(&md->holders, &_minor_lock)) { - map = dm_get_live_table(md); - idr_replace(&_minor_idr, MINOR_ALLOCED, - MINOR(disk_devt(dm_disk(md)))); - set_bit(DMF_FREEING, &md->flags); - spin_unlock(&_minor_lock); - if (!dm_suspended_md(md)) { - dm_table_presuspend_targets(map); - dm_table_postsuspend_targets(map); - } - dm_sysfs_exit(md); - dm_table_put(map); - dm_table_destroy(__unbind(md)); - free_dev(md); + spin_lock(&_minor_lock); + map = dm_get_live_table(md); + idr_replace(&_minor_idr, MINOR_ALLOCED, MINOR(disk_devt(dm_disk(md)))); + set_bit(DMF_FREEING, &md->flags); + spin_unlock(&_minor_lock); + + if (!dm_suspended_md(md)) { + dm_table_presuspend_targets(map); + dm_table_postsuspend_targets(map); } + + /* + * Rare, but there may be I/O requests still going to complete, + * for example. Wait for all references to disappear. + * No one should increment the reference count of the mapped_device, + * after the mapped_device state becomes DMF_FREEING. + */ + if (wait) + while (atomic_read(&md->holders)) + msleep(1); + else if (atomic_read(&md->holders)) + DMWARN("%s: Forcibly removing mapped_device still in use! (%d users)", + dm_device_name(md), atomic_read(&md->holders)); + + dm_sysfs_exit(md); + dm_table_put(map); + dm_table_destroy(__unbind(md)); + free_dev(md); +} + +void dm_destroy(struct mapped_device *md) +{ + __dm_destroy(md, true); +} + +void dm_destroy_immediate(struct mapped_device *md) +{ + __dm_destroy(md, false); +} + +void dm_put(struct mapped_device *md) +{ + atomic_dec(&md->holders); } EXPORT_SYMBOL_GPL(dm_put); @@ -2667,6 +2698,7 @@ { return md->disk; } +EXPORT_SYMBOL_GPL(dm_disk); struct kobject *dm_kobject(struct mapped_device *md) { --- linux-2.6.35.orig/drivers/md/dm-exception-store.h +++ linux-2.6.35/drivers/md/dm-exception-store.h @@ -126,8 +126,9 @@ }; /* - * Obtain the cow device used by a given snapshot. + * Obtain the origin or cow device used by a given snapshot. */ +struct dm_dev *dm_snap_origin(struct dm_snapshot *snap); struct dm_dev *dm_snap_cow(struct dm_snapshot *snap); /* --- linux-2.6.35.orig/drivers/md/md.c +++ linux-2.6.35/drivers/md/md.c @@ -532,13 +532,17 @@ * an access to the files will try to take reconfig_mutex * while holding the file unremovable, which leads to * a deadlock. - * So hold open_mutex instead - we are allowed to take - * it while holding reconfig_mutex, and md_run can - * use it to wait for the remove to complete. + * So hold set sysfs_active while the remove in happeing, + * and anything else which might set ->to_remove or my + * otherwise change the sysfs namespace will fail with + * -EBUSY if sysfs_active is still set. + * We set sysfs_active under reconfig_mutex and elsewhere + * test it under the same mutex to ensure its correct value + * is seen. */ struct attribute_group *to_remove = mddev->to_remove; mddev->to_remove = NULL; - mutex_lock(&mddev->open_mutex); + mddev->sysfs_active = 1; mutex_unlock(&mddev->reconfig_mutex); if (to_remove != &md_redundancy_group) @@ -550,7 +554,7 @@ sysfs_put(mddev->sysfs_action); mddev->sysfs_action = NULL; } - mutex_unlock(&mddev->open_mutex); + mddev->sysfs_active = 0; } else mutex_unlock(&mddev->reconfig_mutex); @@ -2960,7 +2964,9 @@ * - new personality will access other array. */ - if (mddev->sync_thread || mddev->reshape_position != MaxSector) + if (mddev->sync_thread || + mddev->reshape_position != MaxSector || + mddev->sysfs_active) return -EBUSY; if (!mddev->pers->quiesce) { @@ -4344,13 +4350,9 @@ if (mddev->pers) return -EBUSY; - - /* These two calls synchronise us with the - * sysfs_remove_group calls in mddev_unlock, - * so they must have completed. - */ - mutex_lock(&mddev->open_mutex); - mutex_unlock(&mddev->open_mutex); + /* Cannot run until previous stop completes properly */ + if (mddev->sysfs_active) + return -EBUSY; /* * Analyze all RAID superblock(s) @@ -4711,12 +4713,13 @@ */ static int do_md_stop(mddev_t * mddev, int mode, int is_open) { - int err = 0; + int err = 0, revalidate = 0; struct gendisk *disk = mddev->gendisk; mdk_rdev_t *rdev; mutex_lock(&mddev->open_mutex); - if (atomic_read(&mddev->openers) > is_open) { + if (atomic_read(&mddev->openers) > is_open || + mddev->sysfs_active) { printk("md: %s still in use.\n",mdname(mddev)); err = -EBUSY; } else if (mddev->pers) { @@ -4740,7 +4743,7 @@ } set_capacity(disk, 0); - revalidate_disk(disk); + revalidate = 1; if (mddev->ro) mddev->ro = 0; @@ -4748,6 +4751,8 @@ err = 0; } mutex_unlock(&mddev->open_mutex); + if (revalidate) + revalidate_disk(disk); if (err) return err; /* --- linux-2.6.35.orig/drivers/md/dm-snap.c +++ linux-2.6.35/drivers/md/dm-snap.c @@ -148,6 +148,12 @@ #define RUNNING_MERGE 0 #define SHUTDOWN_MERGE 1 +struct dm_dev *dm_snap_origin(struct dm_snapshot *s) +{ + return s->origin; +} +EXPORT_SYMBOL(dm_snap_origin); + struct dm_dev *dm_snap_cow(struct dm_snapshot *s) { return s->cow; @@ -1065,10 +1071,6 @@ origin_mode = FMODE_WRITE; } - origin_path = argv[0]; - argv++; - argc--; - s = kmalloc(sizeof(*s), GFP_KERNEL); if (!s) { ti->error = "Cannot allocate snapshot context private " @@ -1077,6 +1079,16 @@ goto bad; } + origin_path = argv[0]; + argv++; + argc--; + + r = dm_get_device(ti, origin_path, origin_mode, &s->origin); + if (r) { + ti->error = "Cannot get origin device"; + goto bad_origin; + } + cow_path = argv[0]; argv++; argc--; @@ -1097,12 +1109,6 @@ argv += args_used; argc -= args_used; - r = dm_get_device(ti, origin_path, origin_mode, &s->origin); - if (r) { - ti->error = "Cannot get origin device"; - goto bad_origin; - } - s->ti = ti; s->valid = 1; s->active = 0; @@ -1212,15 +1218,15 @@ dm_exception_table_exit(&s->complete, exception_cache); bad_hash_tables: - dm_put_device(ti, s->origin); - -bad_origin: dm_exception_store_destroy(s->store); bad_store: dm_put_device(ti, s->cow); bad_cow: + dm_put_device(ti, s->origin); + +bad_origin: kfree(s); bad: @@ -1314,12 +1320,12 @@ mempool_destroy(s->pending_pool); - dm_put_device(ti, s->origin); - dm_exception_store_destroy(s->store); dm_put_device(ti, s->cow); + dm_put_device(ti, s->origin); + kfree(s); } @@ -1899,8 +1905,14 @@ iterate_devices_callout_fn fn, void *data) { struct dm_snapshot *snap = ti->private; + int r; + + r = fn(ti, snap->origin, 0, ti->len, data); - return fn(ti, snap->origin, 0, ti->len, data); + if (!r) + r = fn(ti, snap->cow, 0, get_dev_size(snap->cow->bdev), data); + + return r; } --- linux-2.6.35.orig/drivers/oprofile/buffer_sync.c +++ linux-2.6.35/drivers/oprofile/buffer_sync.c @@ -141,16 +141,6 @@ .notifier_call = module_load_notify, }; - -static void end_sync(void) -{ - end_cpu_work(); - /* make sure we don't leak task structs */ - process_task_mortuary(); - process_task_mortuary(); -} - - int sync_start(void) { int err; @@ -158,7 +148,7 @@ if (!zalloc_cpumask_var(&marked_cpus, GFP_KERNEL)) return -ENOMEM; - start_cpu_work(); + mutex_lock(&buffer_mutex); err = task_handoff_register(&task_free_nb); if (err) @@ -173,7 +163,10 @@ if (err) goto out4; + start_cpu_work(); + out: + mutex_unlock(&buffer_mutex); return err; out4: profile_event_unregister(PROFILE_MUNMAP, &munmap_nb); @@ -182,7 +175,6 @@ out2: task_handoff_unregister(&task_free_nb); out1: - end_sync(); free_cpumask_var(marked_cpus); goto out; } @@ -190,11 +182,20 @@ void sync_stop(void) { + /* flush buffers */ + mutex_lock(&buffer_mutex); + end_cpu_work(); unregister_module_notifier(&module_load_nb); profile_event_unregister(PROFILE_MUNMAP, &munmap_nb); profile_event_unregister(PROFILE_TASK_EXIT, &task_exit_nb); task_handoff_unregister(&task_free_nb); - end_sync(); + mutex_unlock(&buffer_mutex); + flush_scheduled_work(); + + /* make sure we don't leak task structs */ + process_task_mortuary(); + process_task_mortuary(); + free_cpumask_var(marked_cpus); } --- linux-2.6.35.orig/drivers/oprofile/cpu_buffer.c +++ linux-2.6.35/drivers/oprofile/cpu_buffer.c @@ -120,8 +120,6 @@ cancel_delayed_work(&b->work); } - - flush_scheduled_work(); } /* --- linux-2.6.35.orig/drivers/usb/musb/musb_debugfs.c +++ linux-2.6.35/drivers/usb/musb/musb_debugfs.c @@ -92,29 +92,29 @@ { "LS_EOF1", 0x7E, 8 }, { "SOFT_RST", 0x7F, 8 }, { "DMA_CNTLch0", 0x204, 16 }, - { "DMA_ADDRch0", 0x208, 16 }, - { "DMA_COUNTch0", 0x20C, 16 }, + { "DMA_ADDRch0", 0x208, 32 }, + { "DMA_COUNTch0", 0x20C, 32 }, { "DMA_CNTLch1", 0x214, 16 }, - { "DMA_ADDRch1", 0x218, 16 }, - { "DMA_COUNTch1", 0x21C, 16 }, + { "DMA_ADDRch1", 0x218, 32 }, + { "DMA_COUNTch1", 0x21C, 32 }, { "DMA_CNTLch2", 0x224, 16 }, - { "DMA_ADDRch2", 0x228, 16 }, - { "DMA_COUNTch2", 0x22C, 16 }, + { "DMA_ADDRch2", 0x228, 32 }, + { "DMA_COUNTch2", 0x22C, 32 }, { "DMA_CNTLch3", 0x234, 16 }, - { "DMA_ADDRch3", 0x238, 16 }, - { "DMA_COUNTch3", 0x23C, 16 }, + { "DMA_ADDRch3", 0x238, 32 }, + { "DMA_COUNTch3", 0x23C, 32 }, { "DMA_CNTLch4", 0x244, 16 }, - { "DMA_ADDRch4", 0x248, 16 }, - { "DMA_COUNTch4", 0x24C, 16 }, + { "DMA_ADDRch4", 0x248, 32 }, + { "DMA_COUNTch4", 0x24C, 32 }, { "DMA_CNTLch5", 0x254, 16 }, - { "DMA_ADDRch5", 0x258, 16 }, - { "DMA_COUNTch5", 0x25C, 16 }, + { "DMA_ADDRch5", 0x258, 32 }, + { "DMA_COUNTch5", 0x25C, 32 }, { "DMA_CNTLch6", 0x264, 16 }, - { "DMA_ADDRch6", 0x268, 16 }, - { "DMA_COUNTch6", 0x26C, 16 }, + { "DMA_ADDRch6", 0x268, 32 }, + { "DMA_COUNTch6", 0x26C, 32 }, { "DMA_CNTLch7", 0x274, 16 }, - { "DMA_ADDRch7", 0x278, 16 }, - { "DMA_COUNTch7", 0x27C, 16 }, + { "DMA_ADDRch7", 0x278, 32 }, + { "DMA_COUNTch7", 0x27C, 32 }, { } /* Terminating Entry */ }; @@ -195,15 +195,14 @@ static int musb_test_mode_open(struct inode *inode, struct file *file) { - file->private_data = inode->i_private; - return single_open(file, musb_test_mode_show, inode->i_private); } static ssize_t musb_test_mode_write(struct file *file, const char __user *ubuf, size_t count, loff_t *ppos) { - struct musb *musb = file->private_data; + struct seq_file *s = file->private_data; + struct musb *musb = s->private; u8 test = 0; char buf[18]; --- linux-2.6.35.orig/drivers/usb/storage/unusual_devs.h +++ linux-2.6.35/drivers/usb/storage/unusual_devs.h @@ -1136,6 +1136,13 @@ US_SC_DEVICE, US_PR_DEVICE, option_ms_init, 0), +/* Reported by Timo Aaltonen */ +UNUSUAL_DEV( 0x0af0, 0x7011, 0x0000, 0x9999, + "Option", + "Mass Storage", + US_SC_DEVICE, US_PR_DEVICE, option_ms_init, + 0 ), + /* Reported by F. Aben * This device (wrongly) has a vendor-specific device descriptor. * The entry is needed so usb-storage can bind to it's mass-storage --- linux-2.6.35.orig/drivers/usb/mon/mon_bin.c +++ linux-2.6.35/drivers/usb/mon/mon_bin.c @@ -1009,7 +1009,7 @@ mutex_lock(&rp->fetch_lock); spin_lock_irqsave(&rp->b_lock, flags); - mon_free_buff(rp->b_vec, size/CHUNK_SIZE); + mon_free_buff(rp->b_vec, rp->b_size/CHUNK_SIZE); kfree(rp->b_vec); rp->b_vec = vec; rp->b_size = size; --- linux-2.6.35.orig/drivers/usb/class/cdc-acm.c +++ linux-2.6.35/drivers/usb/class/cdc-acm.c @@ -971,7 +971,8 @@ } if (!buflen) { - if (intf->cur_altsetting->endpoint->extralen && + if (intf->cur_altsetting->endpoint && + intf->cur_altsetting->endpoint->extralen && intf->cur_altsetting->endpoint->extra) { dev_dbg(&intf->dev, "Seeking extra descriptors on endpoint\n"); @@ -1487,6 +1488,11 @@ USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, \ USB_CDC_ACM_PROTO_VENDOR) +#define SAMSUNG_PCSUITE_ACM_INFO(x) \ + USB_DEVICE_AND_INTERFACE_INFO(0x04e7, x, \ + USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, \ + USB_CDC_ACM_PROTO_VENDOR) + /* * USB driver structure. */ @@ -1597,6 +1603,17 @@ { NOKIA_PCSUITE_ACM_INFO(0x0108), }, /* Nokia 5320 XpressMusic 2G */ { NOKIA_PCSUITE_ACM_INFO(0x01f5), }, /* Nokia N97, RM-505 */ { NOKIA_PCSUITE_ACM_INFO(0x02e3), }, /* Nokia 5230, RM-588 */ + { NOKIA_PCSUITE_ACM_INFO(0x0178), }, /* Nokia E63 */ + { NOKIA_PCSUITE_ACM_INFO(0x010e), }, /* Nokia E75 */ + { NOKIA_PCSUITE_ACM_INFO(0x02d9), }, /* Nokia 6760 Slide */ + { NOKIA_PCSUITE_ACM_INFO(0x01d0), }, /* Nokia E52 */ + { NOKIA_PCSUITE_ACM_INFO(0x0223), }, /* Nokia E72 */ + { NOKIA_PCSUITE_ACM_INFO(0x0275), }, /* Nokia X6 */ + { NOKIA_PCSUITE_ACM_INFO(0x026c), }, /* Nokia N97 Mini */ + { NOKIA_PCSUITE_ACM_INFO(0x0154), }, /* Nokia 5800 XpressMusic */ + { NOKIA_PCSUITE_ACM_INFO(0x04ce), }, /* Nokia E90 */ + { NOKIA_PCSUITE_ACM_INFO(0x01d4), }, /* Nokia E55 */ + { SAMSUNG_PCSUITE_ACM_INFO(0x6651), }, /* Samsung GTi8510 (INNOV8) */ /* NOTE: non-Nokia COMM/ACM/0xff is likely MSFT RNDIS... NOT a modem! */ @@ -1605,6 +1622,10 @@ .driver_info = NOT_A_MODEM, }, + /* control interfaces without any protocol set */ + { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, + USB_CDC_PROTO_NONE) }, + /* control interfaces with various AT-command sets */ { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, USB_CDC_ACM_PROTO_AT_V25TER) }, --- linux-2.6.35.orig/drivers/usb/misc/usbtest.c +++ linux-2.6.35/drivers/usb/misc/usbtest.c @@ -1378,7 +1378,6 @@ break; } } - simple_free_urb (urb); ctx->pending--; if (ctx->pending == 0) { @@ -1495,6 +1494,7 @@ } simple_free_urb (urbs [i]); + urbs[i] = NULL; context.pending--; context.submit_error = 1; break; @@ -1504,6 +1504,10 @@ wait_for_completion (&context.done); + for (i = 0; i < param->sglen; i++) { + if (urbs[i]) + simple_free_urb(urbs[i]); + } /* * Isochronous transfers are expected to fail sometimes. As an * arbitrary limit, we will report an error if any submissions --- linux-2.6.35.orig/drivers/usb/serial/io_ti.c +++ linux-2.6.35/drivers/usb/serial/io_ti.c @@ -1151,7 +1151,7 @@ /* Check if we have an old version in the I2C and update if necessary */ - if (download_cur_ver != download_new_ver) { + if (download_cur_ver < download_new_ver) { dbg("%s - Update I2C dld from %d.%d to %d.%d", __func__, firmware_version->Ver_Major, --- linux-2.6.35.orig/drivers/usb/serial/pl2303.h +++ linux-2.6.35/drivers/usb/serial/pl2303.h @@ -128,6 +128,10 @@ #define CRESSI_VENDOR_ID 0x04b8 #define CRESSI_EDY_PRODUCT_ID 0x0521 +/* Zeagle dive computer interface */ +#define ZEAGLE_VENDOR_ID 0x04b8 +#define ZEAGLE_N2ITION3_PRODUCT_ID 0x0522 + /* Sony, USB data cable for CMD-Jxx mobile phones */ #define SONY_VENDOR_ID 0x054c #define SONY_QN3USB_PRODUCT_ID 0x0437 --- linux-2.6.35.orig/drivers/usb/serial/navman.c +++ linux-2.6.35/drivers/usb/serial/navman.c @@ -25,6 +25,7 @@ static const struct usb_device_id id_table[] = { { USB_DEVICE(0x0a99, 0x0001) }, /* Talon Technology device */ + { USB_DEVICE(0x0df7, 0x0900) }, /* Mobile Action i-gotU */ { }, }; MODULE_DEVICE_TABLE(usb, id_table); --- linux-2.6.35.orig/drivers/usb/serial/mos7720.c +++ linux-2.6.35/drivers/usb/serial/mos7720.c @@ -2024,6 +2024,9 @@ case TIOCGICOUNT: cnow = mos7720_port->icount; + + memset(&icount, 0, sizeof(struct serial_icounter_struct)); + icount.cts = cnow.cts; icount.dsr = cnow.dsr; icount.rng = cnow.rng; --- linux-2.6.35.orig/drivers/usb/serial/generic.c +++ linux-2.6.35/drivers/usb/serial/generic.c @@ -208,18 +208,23 @@ urb->transfer_buffer_length = count; usb_serial_debug_data(debug, &port->dev, __func__, count, urb->transfer_buffer); + spin_lock_irqsave(&port->lock, flags); + port->tx_bytes += count; + spin_unlock_irqrestore(&port->lock, flags); + + clear_bit(i, &port->write_urbs_free); result = usb_submit_urb(urb, GFP_ATOMIC); if (result) { dev_err(&port->dev, "%s - error submitting urb: %d\n", __func__, result); + set_bit(i, &port->write_urbs_free); + spin_lock_irqsave(&port->lock, flags); + port->tx_bytes -= count; + spin_unlock_irqrestore(&port->lock, flags); + clear_bit_unlock(USB_SERIAL_WRITE_BUSY, &port->flags); return result; } - clear_bit(i, &port->write_urbs_free); - - spin_lock_irqsave(&port->lock, flags); - port->tx_bytes += count; - spin_unlock_irqrestore(&port->lock, flags); /* Try sending off another urb, unless in irq context (in which case * there will be no free urb). */ --- linux-2.6.35.orig/drivers/usb/serial/mos7840.c +++ linux-2.6.35/drivers/usb/serial/mos7840.c @@ -119,16 +119,20 @@ * by making a change here, in moschip_port_id_table, and in * moschip_id_table_combined */ -#define USB_VENDOR_ID_BANDB 0x0856 -#define BANDB_DEVICE_ID_USO9ML2_2 0xAC22 -#define BANDB_DEVICE_ID_USO9ML2_4 0xAC24 -#define BANDB_DEVICE_ID_US9ML2_2 0xAC29 -#define BANDB_DEVICE_ID_US9ML2_4 0xAC30 -#define BANDB_DEVICE_ID_USPTL4_2 0xAC31 -#define BANDB_DEVICE_ID_USPTL4_4 0xAC32 -#define BANDB_DEVICE_ID_USOPTL4_2 0xAC42 -#define BANDB_DEVICE_ID_USOPTL4_4 0xAC44 -#define BANDB_DEVICE_ID_USOPTL2_4 0xAC24 +#define USB_VENDOR_ID_BANDB 0x0856 +#define BANDB_DEVICE_ID_USO9ML2_2 0xAC22 +#define BANDB_DEVICE_ID_USO9ML2_2P 0xBC00 +#define BANDB_DEVICE_ID_USO9ML2_4 0xAC24 +#define BANDB_DEVICE_ID_USO9ML2_4P 0xBC01 +#define BANDB_DEVICE_ID_US9ML2_2 0xAC29 +#define BANDB_DEVICE_ID_US9ML2_4 0xAC30 +#define BANDB_DEVICE_ID_USPTL4_2 0xAC31 +#define BANDB_DEVICE_ID_USPTL4_4 0xAC32 +#define BANDB_DEVICE_ID_USOPTL4_2 0xAC42 +#define BANDB_DEVICE_ID_USOPTL4_2P 0xBC02 +#define BANDB_DEVICE_ID_USOPTL4_4 0xAC44 +#define BANDB_DEVICE_ID_USOPTL4_4P 0xBC03 +#define BANDB_DEVICE_ID_USOPTL2_4 0xAC24 /* This driver also supports * ATEN UC2324 device using Moschip MCS7840 @@ -184,13 +188,17 @@ {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7840)}, {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_2)}, + {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_2P)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_4)}, + {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_4P)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_US9ML2_2)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_US9ML2_4)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_2)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_4)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)}, + {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2P)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)}, + {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4P)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL2_4)}, {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)}, {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2322)}, @@ -201,13 +209,17 @@ {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7840)}, {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_2)}, + {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_2P)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_4)}, + {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_4P)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_US9ML2_2)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_US9ML2_4)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_2)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_4)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)}, + {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2P)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)}, + {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4P)}, {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL2_4)}, {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)}, {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2322)}, @@ -2273,6 +2285,9 @@ case TIOCGICOUNT: cnow = mos7840_port->icount; smp_rmb(); + + memset(&icount, 0, sizeof(struct serial_icounter_struct)); + icount.cts = cnow.cts; icount.dsr = cnow.dsr; icount.rng = cnow.rng; --- linux-2.6.35.orig/drivers/usb/serial/cp210x.c +++ linux-2.6.35/drivers/usb/serial/cp210x.c @@ -88,6 +88,7 @@ { USB_DEVICE(0x10C4, 0x8149) }, /* West Mountain Radio Computerized Battery Analyzer */ { USB_DEVICE(0x10C4, 0x814A) }, /* West Mountain Radio RIGblaster P&P */ { USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */ + { USB_DEVICE(0x10C4, 0x8156) }, /* B&G H3000 link cable */ { USB_DEVICE(0x10C4, 0x815E) }, /* Helicomm IP-Link 1220-DVM */ { USB_DEVICE(0x10C4, 0x818B) }, /* AVIT Research USB to TTL */ { USB_DEVICE(0x10C4, 0x819F) }, /* MJS USB Toslink Switcher */ @@ -109,6 +110,7 @@ { USB_DEVICE(0x10C4, 0x83A8) }, /* Amber Wireless AMB2560 */ { USB_DEVICE(0x10C4, 0x8411) }, /* Kyocera GPS Module */ { USB_DEVICE(0x10C4, 0x846E) }, /* BEI USB Sensor Interface (VCP) */ + { USB_DEVICE(0x10C4, 0x8477) }, /* Balluff RFID */ { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */ { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */ { USB_DEVICE(0x10C4, 0xEA71) }, /* Infinity GPS-MIC-1 Radio Monophone */ @@ -122,6 +124,10 @@ { USB_DEVICE(0x1555, 0x0004) }, /* Owen AC4 USB-RS485 Converter */ { USB_DEVICE(0x166A, 0x0303) }, /* Clipsal 5500PCU C-Bus USB interface */ { USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */ + { USB_DEVICE(0x16DC, 0x0010) }, /* W-IE-NE-R Plein & Baus GmbH PL512 Power Supply */ + { USB_DEVICE(0x16DC, 0x0011) }, /* W-IE-NE-R Plein & Baus GmbH RCM Remote Control for MARATON Power Supply */ + { USB_DEVICE(0x16DC, 0x0012) }, /* W-IE-NE-R Plein & Baus GmbH MPOD Multi Channel Power Supply */ + { USB_DEVICE(0x16DC, 0x0015) }, /* W-IE-NE-R Plein & Baus GmbH CML Control, Monitoring and Data Logger */ { USB_DEVICE(0x17F4, 0xAAAA) }, /* Wavesense Jazz blood glucose meter */ { USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */ { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */ @@ -218,8 +224,8 @@ #define BITS_STOP_2 0x0002 /* CP210X_SET_BREAK */ -#define BREAK_ON 0x0000 -#define BREAK_OFF 0x0001 +#define BREAK_ON 0x0001 +#define BREAK_OFF 0x0000 /* CP210X_(SET_MHS|GET_MDMSTS) */ #define CONTROL_DTR 0x0001 --- linux-2.6.35.orig/drivers/usb/serial/ipaq.c +++ linux-2.6.35/drivers/usb/serial/ipaq.c @@ -534,7 +534,6 @@ { USB_DEVICE(0x413C, 0x4009) }, /* Dell Axim USB Sync */ { USB_DEVICE(0x4505, 0x0010) }, /* Smartphone */ { USB_DEVICE(0x5E04, 0xCE00) }, /* SAGEM Wireless Assistant */ - { USB_DEVICE(0x0BB4, 0x00CF) }, /* HTC smartphone modems */ { } /* Terminating entry */ }; --- linux-2.6.35.orig/drivers/usb/serial/ftdi_sio_ids.h +++ linux-2.6.35/drivers/usb/serial/ftdi_sio_ids.h @@ -40,6 +40,11 @@ #define FTDI_NXTCAM_PID 0xABB8 /* NXTCam for Mindstorms NXT */ +/* US Interface Navigator (http://www.usinterface.com/) */ +#define FTDI_USINT_CAT_PID 0xb810 /* Navigator CAT and 2nd PTT lines */ +#define FTDI_USINT_WKEY_PID 0xb811 /* Navigator WKEY and FSK lines */ +#define FTDI_USINT_RS232_PID 0xb812 /* Navigator RS232 and CONFIG lines */ + /* OOCDlink by Joern Kaipf * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */ #define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */ @@ -105,6 +110,9 @@ /* Propox devices */ #define FTDI_PROPOX_JTAGCABLEII_PID 0xD738 +/* Lenz LI-USB Computer Interface. */ +#define FTDI_LENZ_LIUSB_PID 0xD780 + /* * Xsens Technologies BV products (http://www.xsens.com). */ @@ -127,6 +135,18 @@ #define FTDI_NDI_AURORA_SCU_PID 0xDA74 /* NDI Aurora SCU */ /* + * ChamSys Limited (www.chamsys.co.uk) USB wing/interface product IDs + */ +#define FTDI_CHAMSYS_24_MASTER_WING_PID 0xDAF8 +#define FTDI_CHAMSYS_PC_WING_PID 0xDAF9 +#define FTDI_CHAMSYS_USB_DMX_PID 0xDAFA +#define FTDI_CHAMSYS_MIDI_TIMECODE_PID 0xDAFB +#define FTDI_CHAMSYS_MINI_WING_PID 0xDAFC +#define FTDI_CHAMSYS_MAXI_WING_PID 0xDAFD +#define FTDI_CHAMSYS_MEDIA_WING_PID 0xDAFE +#define FTDI_CHAMSYS_WING_PID 0xDAFF + +/* * Westrex International devices submitted by Cory Lee */ #define FTDI_WESTREX_MODEL_777_PID 0xDC00 /* Model 777 */ @@ -984,6 +1004,12 @@ #define ALTI2_N3_PID 0x6001 /* Neptune 3 */ /* + * Ionics PlugComputer + */ +#define IONICS_VID 0x1c0c +#define IONICS_PLUGCOMPUTER_PID 0x0102 + +/* * Dresden Elektronik Sensor Terminal Board */ #define DE_VID 0x1cf1 /* Vendor ID */ @@ -1032,3 +1058,8 @@ #define XVERVE_SIGNALYZER_SH2_PID 0xBCA2 #define XVERVE_SIGNALYZER_SH4_PID 0xBCA4 +/* + * Segway Robotic Mobility Platform USB interface (using VID 0x0403) + * Submitted by John G. Rogers + */ +#define SEGWAY_RMP200_PID 0xe729 --- linux-2.6.35.orig/drivers/usb/serial/option.c +++ linux-2.6.35/drivers/usb/serial/option.c @@ -145,7 +145,10 @@ #define HUAWEI_PRODUCT_E143D 0x143D #define HUAWEI_PRODUCT_E143E 0x143E #define HUAWEI_PRODUCT_E143F 0x143F +#define HUAWEI_PRODUCT_K4505 0x1464 +#define HUAWEI_PRODUCT_K3765 0x1465 #define HUAWEI_PRODUCT_E14AC 0x14AC +#define HUAWEI_PRODUCT_ETS1220 0x1803 #define QUANTA_VENDOR_ID 0x0408 #define QUANTA_PRODUCT_Q101 0xEA02 @@ -207,6 +210,7 @@ #define AMOI_PRODUCT_H01A 0x7002 #define AMOI_PRODUCT_H02 0x0802 #define AMOI_PRODUCT_SKYPEPHONE_S2 0x0407 +#define AMOI_PRODUCT_9508 0x0800 #define DELL_VENDOR_ID 0x413C @@ -264,9 +268,6 @@ #define BANDRICH_PRODUCT_1011 0x1011 #define BANDRICH_PRODUCT_1012 0x1012 -#define AMOI_VENDOR_ID 0x1614 -#define AMOI_PRODUCT_9508 0x0800 - #define QUALCOMM_VENDOR_ID 0x05C6 #define CMOTECH_VENDOR_ID 0x16d8 @@ -365,6 +366,10 @@ #define OLIVETTI_VENDOR_ID 0x0b3c #define OLIVETTI_PRODUCT_OLICARD100 0xc000 +/* Celot products */ +#define CELOT_VENDOR_ID 0x211f +#define CELOT_PRODUCT_CT680M 0x6801 + /* some devices interfaces need special handling due to a number of reasons */ enum option_blacklist_reason { OPTION_BLACKLIST_NONE = 0, @@ -482,6 +487,9 @@ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4505, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3765, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_ETS1220, 0xff, 0xff, 0xff) }, { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC) }, { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */ @@ -885,10 +893,9 @@ { USB_DEVICE(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100F) }, { USB_DEVICE(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1011)}, { USB_DEVICE(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1012)}, - { USB_DEVICE(CINTERION_VENDOR_ID, 0x0047) }, - { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100) }, + { USB_DEVICE(CELOT_VENDOR_ID, CELOT_PRODUCT_CT680M) }, /* CT-650 CDMA 450 1xEVDO modem */ { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, option_ids); @@ -1017,6 +1024,13 @@ serial->interface->cur_altsetting->desc.bInterfaceClass != 0xff) return -ENODEV; + /* Don't bind network interfaces on Huawei K3765 & K4505 */ + if (serial->dev->descriptor.idVendor == HUAWEI_VENDOR_ID && + (serial->dev->descriptor.idProduct == HUAWEI_PRODUCT_K3765 || + serial->dev->descriptor.idProduct == HUAWEI_PRODUCT_K4505) && + serial->interface->cur_altsetting->desc.bInterfaceNumber == 1) + return -ENODEV; + data = serial->private = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL); if (!data) --- linux-2.6.35.orig/drivers/usb/serial/ftdi_sio.c +++ linux-2.6.35/drivers/usb/serial/ftdi_sio.c @@ -157,6 +157,9 @@ { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_5_PID) }, { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_6_PID) }, { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_7_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_USINT_CAT_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_USINT_WKEY_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_USINT_RS232_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ACTZWAVE_PID) }, { USB_DEVICE(FTDI_VID, FTDI_IRTRANS_PID) }, { USB_DEVICE(FTDI_VID, FTDI_IPLUS_PID) }, @@ -177,6 +180,7 @@ { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_IOBOARD_PID) }, { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_MINI_IOBOARD_PID) }, { USB_DEVICE(FTDI_VID, FTDI_SPROG_II) }, + { USB_DEVICE(FTDI_VID, FTDI_LENZ_LIUSB_PID) }, { USB_DEVICE(FTDI_VID, FTDI_XF_632_PID) }, { USB_DEVICE(FTDI_VID, FTDI_XF_634_PID) }, { USB_DEVICE(FTDI_VID, FTDI_XF_547_PID) }, @@ -746,6 +750,17 @@ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, { USB_DEVICE(FTDI_VID, XVERVE_SIGNALYZER_SH4_PID), .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, + { USB_DEVICE(FTDI_VID, SEGWAY_RMP200_PID) }, + { USB_DEVICE(IONICS_VID, IONICS_PLUGCOMPUTER_PID), + .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, + { USB_DEVICE(FTDI_VID, FTDI_CHAMSYS_24_MASTER_WING_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_CHAMSYS_PC_WING_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_CHAMSYS_USB_DMX_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_CHAMSYS_MIDI_TIMECODE_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_CHAMSYS_MINI_WING_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_CHAMSYS_MAXI_WING_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_CHAMSYS_MEDIA_WING_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_CHAMSYS_WING_PID) }, { }, /* Optional parameter entry */ { } /* Terminating entry */ }; @@ -1372,7 +1387,7 @@ } /* set max packet size based on descriptor */ - priv->max_packet_size = ep_desc->wMaxPacketSize; + priv->max_packet_size = le16_to_cpu(ep_desc->wMaxPacketSize); dev_info(&udev->dev, "Setting MaxPacketSize %d\n", priv->max_packet_size); } --- linux-2.6.35.orig/drivers/usb/serial/pl2303.c +++ linux-2.6.35/drivers/usb/serial/pl2303.c @@ -86,6 +86,7 @@ { USB_DEVICE(SUPERIAL_VENDOR_ID, SUPERIAL_PRODUCT_ID) }, { USB_DEVICE(HP_VENDOR_ID, HP_LD220_PRODUCT_ID) }, { USB_DEVICE(CRESSI_VENDOR_ID, CRESSI_EDY_PRODUCT_ID) }, + { USB_DEVICE(ZEAGLE_VENDOR_ID, ZEAGLE_N2ITION3_PRODUCT_ID) }, { USB_DEVICE(SONY_VENDOR_ID, SONY_QN3USB_PRODUCT_ID) }, { USB_DEVICE(SANWA_VENDOR_ID, SANWA_PRODUCT_ID) }, { USB_DEVICE(ADLINK_VENDOR_ID, ADLINK_ND6530_PRODUCT_ID) }, --- linux-2.6.35.orig/drivers/usb/gadget/rndis.c +++ linux-2.6.35/drivers/usb/gadget/rndis.c @@ -292,9 +292,13 @@ /* mandatory */ case OID_GEN_VENDOR_DESCRIPTION: pr_debug("%s: OID_GEN_VENDOR_DESCRIPTION\n", __func__); - length = strlen (rndis_per_dev_params [configNr].vendorDescr); - memcpy (outbuf, - rndis_per_dev_params [configNr].vendorDescr, length); + if ( rndis_per_dev_params [configNr].vendorDescr ) { + length = strlen (rndis_per_dev_params [configNr].vendorDescr); + memcpy (outbuf, + rndis_per_dev_params [configNr].vendorDescr, length); + } else { + outbuf[0] = 0; + } retval = 0; break; --- linux-2.6.35.orig/drivers/usb/atm/cxacru.c +++ linux-2.6.35/drivers/usb/atm/cxacru.c @@ -1128,6 +1128,7 @@ { struct cxacru_data *instance; struct usb_device *usb_dev = interface_to_usbdev(intf); + struct usb_host_endpoint *cmd_ep = usb_dev->ep_in[CXACRU_EP_CMD]; int ret; /* instance init */ @@ -1172,15 +1173,34 @@ goto fail; } - usb_fill_int_urb(instance->rcv_urb, + if (!cmd_ep) { + dbg("cxacru_bind: no command endpoint"); + ret = -ENODEV; + goto fail; + } + + if ((cmd_ep->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) + == USB_ENDPOINT_XFER_INT) { + usb_fill_int_urb(instance->rcv_urb, usb_dev, usb_rcvintpipe(usb_dev, CXACRU_EP_CMD), instance->rcv_buf, PAGE_SIZE, cxacru_blocking_completion, &instance->rcv_done, 1); - usb_fill_int_urb(instance->snd_urb, + usb_fill_int_urb(instance->snd_urb, usb_dev, usb_sndintpipe(usb_dev, CXACRU_EP_CMD), instance->snd_buf, PAGE_SIZE, cxacru_blocking_completion, &instance->snd_done, 4); + } else { + usb_fill_bulk_urb(instance->rcv_urb, + usb_dev, usb_rcvbulkpipe(usb_dev, CXACRU_EP_CMD), + instance->rcv_buf, PAGE_SIZE, + cxacru_blocking_completion, &instance->rcv_done); + + usb_fill_bulk_urb(instance->snd_urb, + usb_dev, usb_sndbulkpipe(usb_dev, CXACRU_EP_CMD), + instance->snd_buf, PAGE_SIZE, + cxacru_blocking_completion, &instance->snd_done); + } mutex_init(&instance->cm_serialize); --- linux-2.6.35.orig/drivers/usb/core/sysfs.c +++ linux-2.6.35/drivers/usb/core/sysfs.c @@ -85,9 +85,9 @@ int retval; \ \ udev = to_usb_device(dev); \ - usb_lock_device(udev); \ - retval = sprintf(buf, "%s\n", udev->name); \ - usb_unlock_device(udev); \ + rcu_read_lock(); \ + retval = sprintf(buf, "%s\n", rcu_dereference(udev->name)); \ + rcu_read_unlock(); \ return retval; \ } \ static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL); --- linux-2.6.35.orig/drivers/usb/core/quirks.c +++ linux-2.6.35/drivers/usb/core/quirks.c @@ -38,6 +38,9 @@ /* Creative SB Audigy 2 NX */ { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Logitech Harmony 700-series */ + { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT }, + /* Philips PSC805 audio device */ { USB_DEVICE(0x0471, 0x0155), .driver_info = USB_QUIRK_RESET_RESUME }, --- linux-2.6.35.orig/drivers/usb/core/message.c +++ linux-2.6.35/drivers/usb/core/message.c @@ -1724,6 +1724,15 @@ if (ret) goto free_interfaces; + /* if it's already configured, clear out old state first. + * getting rid of old interfaces means unbinding their drivers. + */ + if (dev->state != USB_STATE_ADDRESS) + usb_disable_device(dev, 1); /* Skip ep0 */ + + /* Get rid of pending async Set-Config requests for this device */ + cancel_async_set_config(dev); + /* Make sure we have bandwidth (and available HCD resources) for this * configuration. Remove endpoints from the schedule if we're dropping * this configuration to set configuration 0. After this point, the @@ -1733,20 +1742,11 @@ mutex_lock(&hcd->bandwidth_mutex); ret = usb_hcd_alloc_bandwidth(dev, cp, NULL, NULL); if (ret < 0) { - usb_autosuspend_device(dev); mutex_unlock(&hcd->bandwidth_mutex); + usb_autosuspend_device(dev); goto free_interfaces; } - /* if it's already configured, clear out old state first. - * getting rid of old interfaces means unbinding their drivers. - */ - if (dev->state != USB_STATE_ADDRESS) - usb_disable_device(dev, 1); /* Skip ep0 */ - - /* Get rid of pending async Set-Config requests for this device */ - cancel_async_set_config(dev); - ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), USB_REQ_SET_CONFIGURATION, 0, configuration, 0, NULL, 0, USB_CTRL_SET_TIMEOUT); @@ -1761,8 +1761,8 @@ if (!cp) { usb_set_device_state(dev, USB_STATE_ADDRESS); usb_hcd_alloc_bandwidth(dev, NULL, NULL, NULL); - usb_autosuspend_device(dev); mutex_unlock(&hcd->bandwidth_mutex); + usb_autosuspend_device(dev); goto free_interfaces; } mutex_unlock(&hcd->bandwidth_mutex); --- linux-2.6.35.orig/drivers/usb/core/urb.c +++ linux-2.6.35/drivers/usb/core/urb.c @@ -137,6 +137,16 @@ } EXPORT_SYMBOL_GPL(usb_anchor_urb); +/* Callers must hold anchor->lock */ +static void __usb_unanchor_urb(struct urb *urb, struct usb_anchor *anchor) +{ + urb->anchor = NULL; + list_del(&urb->anchor_list); + usb_put_urb(urb); + if (list_empty(&anchor->urb_list)) + wake_up(&anchor->wait); +} + /** * usb_unanchor_urb - unanchors an URB * @urb: pointer to the urb to anchor @@ -156,17 +166,14 @@ return; spin_lock_irqsave(&anchor->lock, flags); - if (unlikely(anchor != urb->anchor)) { - /* we've lost the race to another thread */ - spin_unlock_irqrestore(&anchor->lock, flags); - return; - } - urb->anchor = NULL; - list_del(&urb->anchor_list); + /* + * At this point, we could be competing with another thread which + * has the same intention. To protect the urb from being unanchored + * twice, only the winner of the race gets the job. + */ + if (likely(anchor == urb->anchor)) + __usb_unanchor_urb(urb, anchor); spin_unlock_irqrestore(&anchor->lock, flags); - usb_put_urb(urb); - if (list_empty(&anchor->urb_list)) - wake_up(&anchor->wait); } EXPORT_SYMBOL_GPL(usb_unanchor_urb); @@ -749,20 +756,11 @@ void usb_unlink_anchored_urbs(struct usb_anchor *anchor) { struct urb *victim; - unsigned long flags; - spin_lock_irqsave(&anchor->lock, flags); - while (!list_empty(&anchor->urb_list)) { - victim = list_entry(anchor->urb_list.prev, struct urb, - anchor_list); - usb_get_urb(victim); - spin_unlock_irqrestore(&anchor->lock, flags); - /* this will unanchor the URB */ + while ((victim = usb_get_from_anchor(anchor)) != NULL) { usb_unlink_urb(victim); usb_put_urb(victim); - spin_lock_irqsave(&anchor->lock, flags); } - spin_unlock_irqrestore(&anchor->lock, flags); } EXPORT_SYMBOL_GPL(usb_unlink_anchored_urbs); @@ -799,12 +797,11 @@ victim = list_entry(anchor->urb_list.next, struct urb, anchor_list); usb_get_urb(victim); - spin_unlock_irqrestore(&anchor->lock, flags); - usb_unanchor_urb(victim); + __usb_unanchor_urb(victim, anchor); } else { - spin_unlock_irqrestore(&anchor->lock, flags); victim = NULL; } + spin_unlock_irqrestore(&anchor->lock, flags); return victim; } @@ -826,12 +823,7 @@ while (!list_empty(&anchor->urb_list)) { victim = list_entry(anchor->urb_list.prev, struct urb, anchor_list); - usb_get_urb(victim); - spin_unlock_irqrestore(&anchor->lock, flags); - /* this may free the URB */ - usb_unanchor_urb(victim); - usb_put_urb(victim); - spin_lock_irqsave(&anchor->lock, flags); + __usb_unanchor_urb(victim, anchor); } spin_unlock_irqrestore(&anchor->lock, flags); } --- linux-2.6.35.orig/drivers/usb/core/hub.c +++ linux-2.6.35/drivers/usb/core/hub.c @@ -20,10 +20,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include @@ -1801,7 +1803,6 @@ pm_runtime_set_active(&udev->dev); pm_runtime_enable(&udev->dev); - usb_detect_quirks(udev); err = usb_enumerate_device(udev); /* Read descriptors */ if (err < 0) goto fail; @@ -1849,6 +1850,10 @@ */ int usb_deauthorize_device(struct usb_device *usb_dev) { + char *product = NULL; + char *manufacturer = NULL; + char *serial = NULL; + usb_lock_device(usb_dev); if (usb_dev->authorized == 0) goto out_unauthorized; @@ -1856,11 +1861,12 @@ usb_dev->authorized = 0; usb_set_configuration(usb_dev, -1); - kfree(usb_dev->product); + product = usb_dev->product; + manufacturer = usb_dev->manufacturer; + serial = usb_dev->serial; + usb_dev->product = kstrdup("n/a (unauthorized)", GFP_KERNEL); - kfree(usb_dev->manufacturer); usb_dev->manufacturer = kstrdup("n/a (unauthorized)", GFP_KERNEL); - kfree(usb_dev->serial); usb_dev->serial = kstrdup("n/a (unauthorized)", GFP_KERNEL); usb_destroy_configuration(usb_dev); @@ -1868,6 +1874,12 @@ out_unauthorized: usb_unlock_device(usb_dev); + if (product || manufacturer || serial) { + synchronize_rcu(); + kfree(product); + kfree(manufacturer); + kfree(serial); + } return 0; } @@ -1875,6 +1887,9 @@ int usb_authorize_device(struct usb_device *usb_dev) { int result = 0, c; + char *product = NULL; + char *manufacturer = NULL; + char *serial = NULL; usb_lock_device(usb_dev); if (usb_dev->authorized == 1) @@ -1893,11 +1908,12 @@ goto error_device_descriptor; } - kfree(usb_dev->product); + product = usb_dev->product; + manufacturer = usb_dev->manufacturer; + serial = usb_dev->serial; + usb_dev->product = NULL; - kfree(usb_dev->manufacturer); usb_dev->manufacturer = NULL; - kfree(usb_dev->serial); usb_dev->serial = NULL; usb_dev->authorized = 1; @@ -1925,6 +1941,12 @@ error_autoresume: out_authorized: usb_unlock_device(usb_dev); // complements locktree + if (product || manufacturer || serial) { + synchronize_rcu(); + kfree(product); + kfree(manufacturer); + kfree(serial); + } return result; } @@ -3111,6 +3133,10 @@ if (status < 0) goto loop; + usb_detect_quirks(udev); + if (udev->quirks & USB_QUIRK_DELAY_INIT) + msleep(1000); + /* consecutive bus-powered hubs aren't reliable; they can * violate the voltage drop budget. if the new child has * a "powered" LED, users should notice we didn't enable it --- linux-2.6.35.orig/drivers/usb/host/ehci-ppc-of.c +++ linux-2.6.35/drivers/usb/host/ehci-ppc-of.c @@ -192,17 +192,19 @@ } rv = usb_add_hcd(hcd, irq, 0); - if (rv == 0) - return 0; + if (rv) + goto err_ehci; + return 0; + +err_ehci: + if (ehci->has_amcc_usb23) + iounmap(ehci->ohci_hcctrl_reg); iounmap(hcd->regs); err_ioremap: irq_dispose_mapping(irq); err_irq: release_mem_region(hcd->rsrc_start, hcd->rsrc_len); - - if (ehci->has_amcc_usb23) - iounmap(ehci->ohci_hcctrl_reg); err_rmr: usb_put_hcd(hcd); --- linux-2.6.35.orig/drivers/usb/host/ehci-sched.c +++ linux-2.6.35/drivers/usb/host/ehci-sched.c @@ -1400,7 +1400,6 @@ int status; unsigned mod = ehci->periodic_size << 3; struct ehci_iso_sched *sched = urb->hcpriv; - struct pci_dev *pdev; if (sched->span > (mod - SCHEDULE_SLOP)) { ehci_dbg (ehci, "iso request %p too long\n", urb); @@ -1427,15 +1426,14 @@ * slot in the schedule, implicitly assuming URB_ISO_ASAP. */ if (likely (!list_empty (&stream->td_list))) { - pdev = to_pci_dev(ehci_to_hcd(ehci)->self.controller); start = stream->next_uframe; /* For high speed devices, allow scheduling within the - * isochronous scheduling threshold. For full speed devices, - * don't. (Work around for Intel ICH9 bug.) + * isochronous scheduling threshold. For full speed devices + * and Intel PCI-based controllers, don't (work around for + * Intel ICH9 bug). */ - if (!stream->highspeed && - pdev->vendor == PCI_VENDOR_ID_INTEL) + if (!stream->highspeed && ehci->fs_i_thresh) next = now + ehci->i_thresh; else next = now; --- linux-2.6.35.orig/drivers/usb/host/ehci.h +++ linux-2.6.35/drivers/usb/host/ehci.h @@ -130,6 +130,7 @@ unsigned has_amcc_usb23:1; unsigned need_io_watchdog:1; unsigned broken_periodic:1; + unsigned fs_i_thresh:1; /* Intel iso scheduling */ /* required for usb32 quirk */ #define OHCI_CTRL_HCFS (3 << 6) --- linux-2.6.35.orig/drivers/usb/host/xhci-ring.c +++ linux-2.6.35/drivers/usb/host/xhci-ring.c @@ -131,7 +131,7 @@ *seg = (*seg)->next; *trb = ((*seg)->trbs); } else { - *trb = (*trb)++; + (*trb)++; } } --- linux-2.6.35.orig/drivers/usb/host/ehci-pci.c +++ linux-2.6.35/drivers/usb/host/ehci-pci.c @@ -114,6 +114,7 @@ break; case PCI_VENDOR_ID_INTEL: ehci->need_io_watchdog = 0; + ehci->fs_i_thresh = 1; if (pdev->device == 0x27cc) { ehci->broken_periodic = 1; ehci_info(ehci, "using broken periodic workaround\n"); --- linux-2.6.35.orig/drivers/atm/solos-pci.c +++ linux-2.6.35/drivers/atm/solos-pci.c @@ -781,7 +781,8 @@ sk_for_each(s, node, head) { vcc = atm_sk(s); if (vcc->dev == dev && vcc->vci == vci && - vcc->vpi == vpi && vcc->qos.rxtp.traffic_class != ATM_NONE) + vcc->vpi == vpi && vcc->qos.rxtp.traffic_class != ATM_NONE && + test_bit(ATM_VF_READY, &vcc->flags)) goto out; } vcc = NULL; @@ -907,6 +908,10 @@ clear_bit(ATM_VF_ADDR, &vcc->flags); clear_bit(ATM_VF_READY, &vcc->flags); + /* Hold up vcc_destroy_socket() (our caller) until solos_bh() in the + tasklet has finished processing any incoming packets (and, more to + the point, using the vcc pointer). */ + tasklet_unlock_wait(&card->tlet); return; } --- linux-2.6.35.orig/drivers/block/pktcdvd.c +++ linux-2.6.35/drivers/block/pktcdvd.c @@ -2368,7 +2368,7 @@ pkt_shrink_pktlist(pd); } -static struct pktcdvd_device *pkt_find_dev_from_minor(int dev_minor) +static struct pktcdvd_device *pkt_find_dev_from_minor(unsigned int dev_minor) { if (dev_minor >= MAX_WRITERS) return NULL; --- linux-2.6.35.orig/drivers/block/xen-blkfront.c +++ linux-2.6.35/drivers/block/xen-blkfront.c @@ -69,7 +69,8 @@ static const struct block_device_operations xlvbd_block_fops; -#define BLK_RING_SIZE __RING_SIZE((struct blkif_sring *)0, PAGE_SIZE) +#define BLK_MAX_RING_AREA_SIZE (BLKIF_MAX_NUM_RING_PAGES * PAGE_SIZE) +#define BLK_MAX_RING_SIZE __RING_SIZE((struct blkif_sring *)0, BLK_MAX_RING_AREA_SIZE) /* * We have one of these per vbd, whether ide, scsi or 'other'. They @@ -83,14 +84,15 @@ int vdevice; blkif_vdev_t handle; enum blkif_state connected; - int ring_ref; + int num_ring_pages; + int ring_ref[BLKIF_MAX_NUM_RING_PAGES]; struct blkif_front_ring ring; struct scatterlist sg[BLKIF_MAX_SEGMENTS_PER_REQUEST]; unsigned int evtchn, irq; struct request_queue *rq; struct work_struct work; struct gnttab_free_callback callback; - struct blk_shadow shadow[BLK_RING_SIZE]; + struct blk_shadow shadow[BLK_MAX_RING_SIZE]; unsigned long shadow_free; int feature_barrier; int is_ready; @@ -104,8 +106,6 @@ static DEFINE_SPINLOCK(blkif_io_lock); -#define MAXIMUM_OUTSTANDING_BLOCK_REQS \ - (BLKIF_MAX_SEGMENTS_PER_REQUEST * BLK_RING_SIZE) #define GRANT_INVALID_REF 0 #define PARTS_PER_DISK 16 @@ -119,12 +119,13 @@ #define VDEV_IS_EXTENDED(dev) ((dev)&(EXTENDED)) #define BLKIF_MINOR_EXT(dev) ((dev)&(~EXTENDED)) -#define DEV_NAME "xvd" /* name in /dev */ +#define DEV_NAME "sd" /* name in /dev */ static int get_id_from_freelist(struct blkfront_info *info) { unsigned long free = info->shadow_free; - BUG_ON(free >= BLK_RING_SIZE); + int ring_size = __RING_SIZE((struct blkif_sring *)0, info->num_ring_pages * PAGE_SIZE); + BUG_ON(free >= ring_size); info->shadow_free = info->shadow[free].req.id; info->shadow[free].req.id = 0x0fffffee; /* debug */ return free; @@ -496,6 +497,8 @@ static void blkif_free(struct blkfront_info *info, int suspend) { + int i; + /* Prevent new requests being issued until we fix things up. */ spin_lock_irq(&blkif_io_lock); info->connected = suspend ? @@ -511,10 +514,17 @@ flush_scheduled_work(); /* Free resources associated with old device channel. */ - if (info->ring_ref != GRANT_INVALID_REF) { - gnttab_end_foreign_access(info->ring_ref, 0, - (unsigned long)info->ring.sring); - info->ring_ref = GRANT_INVALID_REF; + for (i = 0; i < info->num_ring_pages; i++) { + /* Free resources associated with old device channel. */ + if (info->ring_ref[i] != GRANT_INVALID_REF) { + gnttab_end_foreign_access(info->ring_ref[i], 0, 0L); + info->ring_ref[i] = GRANT_INVALID_REF; + } + } + if (info->ring.sring) { + int ring_area_size = info->num_ring_pages * PAGE_SIZE; + free_pages((unsigned long)info->ring.sring, + get_order(ring_area_size)); info->ring.sring = NULL; } if (info->irq) @@ -607,27 +617,32 @@ struct blkfront_info *info) { struct blkif_sring *sring; - int err; + int i, order, err; + int ring_area_size = info->num_ring_pages * PAGE_SIZE; - info->ring_ref = GRANT_INVALID_REF; + for (i = 0; i < info->num_ring_pages; i++) { + info->ring_ref[i] = GRANT_INVALID_REF; + } - sring = (struct blkif_sring *)__get_free_page(GFP_NOIO | __GFP_HIGH); + order = get_order(ring_area_size); + sring = (struct blkif_sring *)__get_free_pages(GFP_KERNEL, order); if (!sring) { xenbus_dev_fatal(dev, -ENOMEM, "allocating shared ring"); return -ENOMEM; } SHARED_RING_INIT(sring); - FRONT_RING_INIT(&info->ring, sring, PAGE_SIZE); + FRONT_RING_INIT(&info->ring, sring, ring_area_size); - sg_init_table(info->sg, BLKIF_MAX_SEGMENTS_PER_REQUEST); - - err = xenbus_grant_ring(dev, virt_to_mfn(info->ring.sring)); - if (err < 0) { - free_page((unsigned long)sring); - info->ring.sring = NULL; - goto fail; + for (i = 0; i < info->num_ring_pages; i++) { + unsigned long addr = (unsigned long)info->ring.sring + i * PAGE_SIZE; + err = xenbus_grant_ring(dev, virt_to_mfn(addr)); + if (err < 0) { + free_pages((unsigned long)sring, order); + info->ring.sring = NULL; + goto fail; + } + info->ring_ref[i] = err; } - info->ring_ref = err; err = xenbus_alloc_evtchn(dev, &info->evtchn); if (err) @@ -656,7 +671,13 @@ { const char *message = NULL; struct xenbus_transaction xbt; - int err; + int err, i; + + BUILD_BUG_ON(BLKIF_MAX_NUM_RING_PAGES != 1 && + BLKIF_MAX_NUM_RING_PAGES != 2 && + BLKIF_MAX_NUM_RING_PAGES != 4 && + BLKIF_MAX_NUM_RING_PAGES != 8 && + BLKIF_MAX_NUM_RING_PAGES != 16); /* Create shared ring, alloc event channel. */ err = setup_blkring(dev, info); @@ -670,11 +691,30 @@ goto destroy_blkring; } - err = xenbus_printf(xbt, dev->nodename, - "ring-ref", "%u", info->ring_ref); - if (err) { - message = "writing ring-ref"; - goto abort_transaction; + if (info->num_ring_pages == 1) { + err = xenbus_printf(xbt, dev->nodename, + "ring-ref", "%u", info->ring_ref[0]); + if (err) { + message = "writing ring-ref"; + goto abort_transaction; + } + } else { + err = xenbus_printf(xbt, dev->nodename, "num-ring-pages", "%u", + info->num_ring_pages); + if (err) { + message = "writing num-ring-pages"; + goto abort_transaction; + } + for (i = 0; i < info->num_ring_pages; i++) { + char buf[16]; + snprintf(buf, sizeof(buf), "ring-ref%d", i); + err = xenbus_printf(xbt, dev->nodename, buf, "%u", + info->ring_ref[i]); + if (err) { + message = "writing ring-refs"; + goto abort_transaction; + } + } } err = xenbus_printf(xbt, dev->nodename, "event-channel", "%u", info->evtchn); @@ -723,6 +763,7 @@ { int err, vdevice, i; struct blkfront_info *info; + int ring_size, max_ring_pages; /* FIXME: Use dynamic device id if this is not set. */ err = xenbus_scanf(XBT_NIL, dev->nodename, @@ -736,6 +777,10 @@ return err; } } + err = xenbus_scanf(XBT_NIL, dev->otherend, + "max-ring-pages", "%u", &max_ring_pages); + if (err != 1) + max_ring_pages = 1; info = kzalloc(sizeof(*info), GFP_KERNEL); if (!info) { @@ -748,9 +793,13 @@ info->connected = BLKIF_STATE_DISCONNECTED; INIT_WORK(&info->work, blkif_restart_queue); - for (i = 0; i < BLK_RING_SIZE; i++) + info->num_ring_pages = min(max_ring_pages, BLKIF_MAX_NUM_RING_PAGES); + + ring_size = __RING_SIZE((struct blkif_sring *)0, + info->num_ring_pages * PAGE_SIZE); + for (i = 0; i < ring_size; i++) info->shadow[i].req.id = i+1; - info->shadow[BLK_RING_SIZE-1].req.id = 0x0fffffff; + info->shadow[ring_size-1].req.id = 0x0fffffff; /* Front end dir is a number, which is used as the id. */ info->handle = simple_strtoul(strrchr(dev->nodename, '/')+1, NULL, 0); @@ -763,6 +812,9 @@ return err; } + printk(KERN_INFO "blkfront %s num-ring-pages %d nr_ents %d.\n", + dev->nodename, info->num_ring_pages, ring_size); + return 0; } @@ -773,6 +825,7 @@ struct blkif_request *req; struct blk_shadow *copy; int j; + int ring_size = __RING_SIZE((struct blkif_sring *)0, info->num_ring_pages * PAGE_SIZE); /* Stage 1: Make a safe copy of the shadow state. */ copy = kmalloc(sizeof(info->shadow), @@ -783,13 +836,13 @@ /* Stage 2: Set up free list. */ memset(&info->shadow, 0, sizeof(info->shadow)); - for (i = 0; i < BLK_RING_SIZE; i++) + for (i = 0; i < ring_size; i++) info->shadow[i].req.id = i+1; info->shadow_free = info->ring.req_prod_pvt; - info->shadow[BLK_RING_SIZE-1].req.id = 0x0fffffff; + info->shadow[ring_size-1].req.id = 0x0fffffff; /* Stage 3: Find pending requests and requeue them. */ - for (i = 0; i < BLK_RING_SIZE; i++) { + for (i = 0; i < ring_size; i++) { /* Not in use? */ if (copy[i].request == 0) continue; --- linux-2.6.35.orig/drivers/block/nbd.c +++ linux-2.6.35/drivers/block/nbd.c @@ -57,7 +57,7 @@ static unsigned int nbds_max = 16; static struct nbd_device *nbd_dev; -static int max_part; +static int max_part = 15; /* * Use just one lock (or at most 1 per NIC). Two arguments for this: --- linux-2.6.35.orig/drivers/block/drbd/drbd_main.c +++ linux-2.6.35/drivers/block/drbd/drbd_main.c @@ -2371,11 +2371,7 @@ static void consider_delay_probes(struct drbd_conf *mdev) { - if (mdev->state.conn != C_SYNC_SOURCE || mdev->agreed_pro_version < 93) - return; - - if (mdev->dp_volume_last + mdev->sync_conf.dp_volume * 2 < mdev->send_cnt) - drbd_send_delay_probes(mdev); + return; } static int w_delay_probes(struct drbd_conf *mdev, struct drbd_work *w, int cancel) @@ -2660,9 +2656,24 @@ static void drbd_set_defaults(struct drbd_conf *mdev) { - mdev->sync_conf.after = DRBD_AFTER_DEF; - mdev->sync_conf.rate = DRBD_RATE_DEF; - mdev->sync_conf.al_extents = DRBD_AL_EXTENTS_DEF; + /* This way we get a compile error when sync_conf grows, + and we forgot to initialize it here */ + mdev->sync_conf = (struct syncer_conf) { + /* .rate = */ DRBD_RATE_DEF, + /* .after = */ DRBD_AFTER_DEF, + /* .al_extents = */ DRBD_AL_EXTENTS_DEF, + /* .dp_volume = */ DRBD_DP_VOLUME_DEF, + /* .dp_interval = */ DRBD_DP_INTERVAL_DEF, + /* .throttle_th = */ DRBD_RS_THROTTLE_TH_DEF, + /* .hold_off_th = */ DRBD_RS_HOLD_OFF_TH_DEF, + /* .verify_alg = */ {}, 0, + /* .cpu_mask = */ {}, 0, + /* .csums_alg = */ {}, 0, + /* .use_rle = */ 0 + }; + + /* Have to use that way, because the layout differs between + big endian and little endian */ mdev->state = (union drbd_state) { { .role = R_SECONDARY, .peer = R_UNKNOWN, --- linux-2.6.35.orig/drivers/ata/ata_piix.c +++ linux-2.6.35/drivers/ata/ata_piix.c @@ -158,6 +158,7 @@ struct piix_host_priv { const int *map; u32 saved_iocfg; + spinlock_t sidpr_lock; /* FIXME: remove once locking in EH is fixed */ void __iomem *sidpr; }; @@ -951,12 +952,15 @@ unsigned int reg, u32 *val) { struct piix_host_priv *hpriv = link->ap->host->private_data; + unsigned long flags; if (reg >= ARRAY_SIZE(piix_sidx_map)) return -EINVAL; + spin_lock_irqsave(&hpriv->sidpr_lock, flags); piix_sidpr_sel(link, reg); *val = ioread32(hpriv->sidpr + PIIX_SIDPR_DATA); + spin_unlock_irqrestore(&hpriv->sidpr_lock, flags); return 0; } @@ -964,12 +968,15 @@ unsigned int reg, u32 val) { struct piix_host_priv *hpriv = link->ap->host->private_data; + unsigned long flags; if (reg >= ARRAY_SIZE(piix_sidx_map)) return -EINVAL; + spin_lock_irqsave(&hpriv->sidpr_lock, flags); piix_sidpr_sel(link, reg); iowrite32(val, hpriv->sidpr + PIIX_SIDPR_DATA); + spin_unlock_irqrestore(&hpriv->sidpr_lock, flags); return 0; } @@ -1566,6 +1573,7 @@ hpriv = devm_kzalloc(dev, sizeof(*hpriv), GFP_KERNEL); if (!hpriv) return -ENOMEM; + spin_lock_init(&hpriv->sidpr_lock); /* Save IOCFG, this will be used for cable detection, quirk * detection and restoration on detach. This is necessary --- linux-2.6.35.orig/drivers/ata/ahci.h +++ linux-2.6.35/drivers/ata/ahci.h @@ -261,6 +261,13 @@ unsigned long led_state; }; +enum ahci_port_states { + AHCI_PORT_NOLINK = 0, + AHCI_PORT_ACTIVE = 1, + AHCI_PORT_PARTIAL = 2, + AHCI_PORT_SLUMBER = 3 +}; + struct ahci_port_priv { struct ata_link *active_link; struct ahci_cmd_hdr *cmd_slot; @@ -279,6 +286,14 @@ int fbs_last_dev; /* save FBS.DEV of last FIS */ /* enclosure management info per PM slot */ struct ahci_em_priv em_priv[EM_MAX_SLOTS]; + + /* ALPM accounting state and stats */ + unsigned int accounting_active:1; + u64 active_jiffies; + u64 partial_jiffies; + u64 slumber_jiffies; + int previous_state; + int previous_jiffies; }; struct ahci_host_priv { --- linux-2.6.35.orig/drivers/ata/libata-sff.c +++ linux-2.6.35/drivers/ata/libata-sff.c @@ -418,6 +418,7 @@ if (ioaddr->ctl_addr) iowrite8(tf->ctl, ioaddr->ctl_addr); ap->last_ctl = tf->ctl; + ata_wait_idle(ap); } if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) { @@ -453,6 +454,8 @@ iowrite8(tf->device, ioaddr->device_addr); VPRINTK("device 0x%X\n", tf->device); } + + ata_wait_idle(ap); } EXPORT_SYMBOL_GPL(ata_sff_tf_load); @@ -2735,10 +2738,6 @@ { struct ata_port *ap = qc->ap; - /* see ata_dma_blacklisted() */ - BUG_ON((ap->flags & ATA_FLAG_PIO_POLLING) && - qc->tf.protocol == ATAPI_PROT_DMA); - /* defer PIO handling to sff_qc_issue */ if (!ata_is_dma(qc->tf.protocol)) return ata_sff_qc_issue(qc); --- linux-2.6.35.orig/drivers/ata/libahci.c +++ linux-2.6.35/drivers/ata/libahci.c @@ -59,6 +59,20 @@ static int ahci_enable_alpm(struct ata_port *ap, enum link_pm policy); static void ahci_disable_alpm(struct ata_port *ap); +static ssize_t ahci_alpm_show_active(struct device *dev, + struct device_attribute *attr, char *buf); +static ssize_t ahci_alpm_show_slumber(struct device *dev, + struct device_attribute *attr, char *buf); +static ssize_t ahci_alpm_show_partial(struct device *dev, + struct device_attribute *attr, char *buf); + +static ssize_t ahci_alpm_show_accounting(struct device *dev, + struct device_attribute *attr, char *buf); + +static ssize_t ahci_alpm_set_accounting(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count); + static ssize_t ahci_led_show(struct ata_port *ap, char *buf); static ssize_t ahci_led_store(struct ata_port *ap, const char *buf, size_t size); @@ -118,6 +132,12 @@ static DEVICE_ATTR(ahci_host_cap2, S_IRUGO, ahci_show_host_cap2, NULL); static DEVICE_ATTR(ahci_host_version, S_IRUGO, ahci_show_host_version, NULL); static DEVICE_ATTR(ahci_port_cmd, S_IRUGO, ahci_show_port_cmd, NULL); +static DEVICE_ATTR(ahci_alpm_active, S_IRUGO, ahci_alpm_show_active, NULL); +static DEVICE_ATTR(ahci_alpm_partial, S_IRUGO, ahci_alpm_show_partial, NULL); +static DEVICE_ATTR(ahci_alpm_slumber, S_IRUGO, ahci_alpm_show_slumber, NULL); +static DEVICE_ATTR(ahci_alpm_accounting, S_IRUGO | S_IWUSR, + ahci_alpm_show_accounting, ahci_alpm_set_accounting); + static DEVICE_ATTR(em_buffer, S_IWUSR | S_IRUGO, ahci_read_em_buffer, ahci_store_em_buffer); @@ -129,6 +149,10 @@ &dev_attr_ahci_host_cap2, &dev_attr_ahci_host_version, &dev_attr_ahci_port_cmd, + &dev_attr_ahci_alpm_active, + &dev_attr_ahci_alpm_partial, + &dev_attr_ahci_alpm_slumber, + &dev_attr_ahci_alpm_accounting, &dev_attr_em_buffer, NULL }; @@ -734,9 +758,14 @@ * getting woken up due to spurious phy ready interrupts * TBD - Hot plug should be done via polling now, is * that even supported? + * + * However, when accounting_active is set, we do want + * the interrupts for accounting purposes. */ - pp->intr_mask &= ~PORT_IRQ_PHYRDY; - writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); + if (!pp->accounting_active) { + pp->intr_mask &= ~PORT_IRQ_PHYRDY; + writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); + } /* * Set a flag to indicate that we should ignore all PhyRdy @@ -1320,7 +1349,7 @@ /* issue the first D2H Register FIS */ msecs = 0; now = jiffies; - if (time_after(now, deadline)) + if (time_after(deadline, now)) msecs = jiffies_to_msecs(deadline - now); tf.ctl |= ATA_SRST; @@ -1645,6 +1674,162 @@ ata_port_abort(ap); } +static int get_current_alpm_state(struct ata_port *ap) +{ + u32 status = 0; + + ahci_scr_read(&ap->link, SCR_STATUS, &status); + + /* link status is in bits 11-8 */ + status = status >> 8; + status = status & 0x7; + + if (status == 6) + return AHCI_PORT_SLUMBER; + if (status == 2) + return AHCI_PORT_PARTIAL; + if (status == 1) + return AHCI_PORT_ACTIVE; + return AHCI_PORT_NOLINK; +} + +static void account_alpm_stats(struct ata_port *ap) +{ + struct ahci_port_priv *pp; + + int new_state; + u64 new_jiffies, jiffies_delta; + + if (ap == NULL) + return; + pp = ap->private_data; + + if (!pp) return; + + new_state = get_current_alpm_state(ap); + new_jiffies = jiffies; + + jiffies_delta = new_jiffies - pp->previous_jiffies; + + switch (pp->previous_state) { + case AHCI_PORT_NOLINK: + pp->active_jiffies = 0; + pp->partial_jiffies = 0; + pp->slumber_jiffies = 0; + break; + case AHCI_PORT_ACTIVE: + pp->active_jiffies += jiffies_delta; + break; + case AHCI_PORT_PARTIAL: + pp->partial_jiffies += jiffies_delta; + break; + case AHCI_PORT_SLUMBER: + pp->slumber_jiffies += jiffies_delta; + break; + default: + break; + } + pp->previous_state = new_state; + pp->previous_jiffies = new_jiffies; +} + +static ssize_t ahci_alpm_show_active(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct Scsi_Host *shost = class_to_shost(dev); + struct ata_port *ap = ata_shost_to_port(shost); + struct ahci_port_priv *pp; + + if (!ap || ata_port_is_dummy(ap)) + return -EINVAL; + pp = ap->private_data; + account_alpm_stats(ap); + + return sprintf(buf, "%u\n", jiffies_to_msecs(pp->active_jiffies)); +} + +static ssize_t ahci_alpm_show_partial(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct Scsi_Host *shost = class_to_shost(dev); + struct ata_port *ap = ata_shost_to_port(shost); + struct ahci_port_priv *pp; + + if (!ap || ata_port_is_dummy(ap)) + return -EINVAL; + + pp = ap->private_data; + account_alpm_stats(ap); + + return sprintf(buf, "%u\n", jiffies_to_msecs(pp->partial_jiffies)); +} + +static ssize_t ahci_alpm_show_slumber(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct Scsi_Host *shost = class_to_shost(dev); + struct ata_port *ap = ata_shost_to_port(shost); + struct ahci_port_priv *pp; + + if (!ap || ata_port_is_dummy(ap)) + return -EINVAL; + + pp = ap->private_data; + + account_alpm_stats(ap); + + return sprintf(buf, "%u\n", jiffies_to_msecs(pp->slumber_jiffies)); +} + +static ssize_t ahci_alpm_show_accounting(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct Scsi_Host *shost = class_to_shost(dev); + struct ata_port *ap = ata_shost_to_port(shost); + struct ahci_port_priv *pp; + + if (!ap || ata_port_is_dummy(ap)) + return -EINVAL; + + pp = ap->private_data; + + return sprintf(buf, "%u\n", pp->accounting_active); +} + +static ssize_t ahci_alpm_set_accounting(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + unsigned long flags; + struct Scsi_Host *shost = class_to_shost(dev); + struct ata_port *ap = ata_shost_to_port(shost); + struct ahci_port_priv *pp; + void __iomem *port_mmio; + + if (!ap || ata_port_is_dummy(ap)) + return 1; + + pp = ap->private_data; + port_mmio = ahci_port_base(ap); + + if (!pp) + return 1; + if (buf[0] == '0') + pp->accounting_active = 0; + if (buf[0] == '1') + pp->accounting_active = 1; + + /* we need to enable the PHYRDY interrupt when we want accounting */ + if (pp->accounting_active) { + spin_lock_irqsave(ap->lock, flags); + pp->intr_mask |= PORT_IRQ_PHYRDY; + writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); + spin_unlock_irqrestore(ap->lock, flags); + } + return count; +} + + static void ahci_port_intr(struct ata_port *ap) { void __iomem *port_mmio = ahci_port_base(ap); @@ -1670,6 +1855,7 @@ if ((hpriv->flags & AHCI_HFLAG_NO_HOTPLUG) && (status & PORT_IRQ_PHYRDY)) { status &= ~PORT_IRQ_PHYRDY; + account_alpm_stats(ap); ahci_scr_write(&ap->link, SCR_ERROR, ((1 << 16) | (1 << 18))); } --- linux-2.6.35.orig/drivers/ata/pata_cmd64x.c +++ linux-2.6.35/drivers/ata/pata_cmd64x.c @@ -121,14 +121,8 @@ if (pair) { struct ata_timing tp; - ata_timing_compute(pair, pair->pio_mode, &tp, T, 0); ata_timing_merge(&t, &tp, &t, ATA_TIMING_SETUP); - if (pair->dma_mode) { - ata_timing_compute(pair, pair->dma_mode, - &tp, T, 0); - ata_timing_merge(&tp, &t, &t, ATA_TIMING_SETUP); - } } } --- linux-2.6.35.orig/drivers/ata/sata_mv.c +++ linux-2.6.35/drivers/ata/sata_mv.c @@ -1898,19 +1898,25 @@ * LOCKING: * Inherited from caller. */ -static void mv_bmdma_stop(struct ata_queued_cmd *qc) +static void mv_bmdma_stop_ap(struct ata_port *ap) { - struct ata_port *ap = qc->ap; void __iomem *port_mmio = mv_ap_base(ap); u32 cmd; /* clear start/stop bit */ cmd = readl(port_mmio + BMDMA_CMD); - cmd &= ~ATA_DMA_START; - writelfl(cmd, port_mmio + BMDMA_CMD); + if (cmd & ATA_DMA_START) { + cmd &= ~ATA_DMA_START; + writelfl(cmd, port_mmio + BMDMA_CMD); - /* one-PIO-cycle guaranteed wait, per spec, for HDMA1:0 transition */ - ata_sff_dma_pause(ap); + /* one-PIO-cycle guaranteed wait, per spec, for HDMA1:0 transition */ + ata_sff_dma_pause(ap); + } +} + +static void mv_bmdma_stop(struct ata_queued_cmd *qc) +{ + mv_bmdma_stop_ap(qc->ap); } /** @@ -1934,8 +1940,21 @@ reg = readl(port_mmio + BMDMA_STATUS); if (reg & ATA_DMA_ACTIVE) status = ATA_DMA_ACTIVE; - else + else if (reg & ATA_DMA_ERR) status = (reg & ATA_DMA_ERR) | ATA_DMA_INTR; + else { + /* + * Just because DMA_ACTIVE is 0 (DMA completed), + * this does _not_ mean the device is "done". + * So we should not yet be signalling ATA_DMA_INTR + * in some cases. Eg. DSM/TRIM, and perhaps others. + */ + mv_bmdma_stop_ap(ap); + if (ioread8(ap->ioaddr.altstatus_addr) & ATA_BUSY) + status = 0; + else + status = ATA_DMA_INTR; + } return status; } @@ -1995,6 +2014,9 @@ switch (tf->protocol) { case ATA_PROT_DMA: + if (tf->command == ATA_CMD_DSM) + return; + /* fall-thru */ case ATA_PROT_NCQ: break; /* continue below */ case ATA_PROT_PIO: @@ -2094,6 +2116,8 @@ if ((tf->protocol != ATA_PROT_DMA) && (tf->protocol != ATA_PROT_NCQ)) return; + if (tf->command == ATA_CMD_DSM) + return; /* use bmdma for this */ /* Fill in Gen IIE command request block */ if (!(tf->flags & ATA_TFLAG_WRITE)) @@ -2289,6 +2313,12 @@ switch (qc->tf.protocol) { case ATA_PROT_DMA: + if (qc->tf.command == ATA_CMD_DSM) { + if (!ap->ops->bmdma_setup) /* no bmdma on GEN_I */ + return AC_ERR_OTHER; + break; /* use bmdma for this */ + } + /* fall thru */ case ATA_PROT_NCQ: mv_start_edma(ap, port_mmio, pp, qc->tf.protocol); pp->req_idx = (pp->req_idx + 1) & MV_MAX_Q_DEPTH_MASK; --- linux-2.6.35.orig/drivers/ata/libata-eh.c +++ linux-2.6.35/drivers/ata/libata-eh.c @@ -3234,6 +3234,10 @@ if (link->flags & ATA_LFLAG_DISABLED) return 1; + /* skip if explicitly requested */ + if (ehc->i.flags & ATA_EHI_NO_RECOVERY) + return 1; + /* thaw frozen port and recover failed devices */ if ((ap->pflags & ATA_PFLAG_FROZEN) || ata_link_nr_enabled(link)) return 0; --- linux-2.6.35.orig/drivers/ata/pata_via.c +++ linux-2.6.35/drivers/ata/pata_via.c @@ -417,6 +417,8 @@ tf->lbam, tf->lbah); } + + ata_wait_idle(ap); } static int via_port_start(struct ata_port *ap) --- linux-2.6.35.orig/drivers/ata/libata-core.c +++ linux-2.6.35/drivers/ata/libata-core.c @@ -140,7 +140,7 @@ module_param_named(fua, libata_fua, int, 0444); MODULE_PARM_DESC(fua, "FUA support (0=off [default], 1=on)"); -static int ata_ignore_hpa; +static int ata_ignore_hpa = 1; module_param_named(ignore_hpa, ata_ignore_hpa, int, 0644); MODULE_PARM_DESC(ignore_hpa, "Ignore HPA limit (0=keep BIOS limits, 1=ignore limits, using full disk)"); @@ -5434,6 +5434,7 @@ */ int ata_host_suspend(struct ata_host *host, pm_message_t mesg) { + unsigned int ehi_flags = ATA_EHI_QUIET; int rc; /* @@ -5442,7 +5443,18 @@ */ ata_lpm_enable(host); - rc = ata_host_request_pm(host, mesg, 0, ATA_EHI_QUIET, 1); + /* + * On some hardware, device fails to respond after spun down + * for suspend. As the device won't be used before being + * resumed, we don't need to touch the device. Ask EH to skip + * the usual stuff and proceed directly to suspend. + * + * http://thread.gmane.org/gmane.linux.ide/46764 + */ + if (mesg.event == PM_EVENT_SUSPEND) + ehi_flags |= ATA_EHI_NO_AUTOPSY | ATA_EHI_NO_RECOVERY; + + rc = ata_host_request_pm(host, mesg, 0, ehi_flags, 1); if (rc == 0) host->dev->power.power_state = mesg; return rc; --- linux-2.6.35.orig/drivers/media/IR/ir-nec-decoder.c +++ linux-2.6.35/drivers/media/IR/ir-nec-decoder.c @@ -27,10 +27,6 @@ #define NEC_TRAILER_PULSE (1 * NEC_UNIT) #define NEC_TRAILER_SPACE (10 * NEC_UNIT) /* even longer in reality */ -/* Used to register nec_decoder clients */ -static LIST_HEAD(decoder_list); -static DEFINE_SPINLOCK(decoder_lock); - enum nec_state { STATE_INACTIVE, STATE_HEADER_SPACE, @@ -40,84 +36,6 @@ STATE_TRAILER_SPACE, }; -struct decoder_data { - struct list_head list; - struct ir_input_dev *ir_dev; - int enabled:1; - - /* State machine control */ - enum nec_state state; - u32 nec_bits; - unsigned count; -}; - - -/** - * get_decoder_data() - gets decoder data - * @input_dev: input device - * - * Returns the struct decoder_data that corresponds to a device - */ -static struct decoder_data *get_decoder_data(struct ir_input_dev *ir_dev) -{ - struct decoder_data *data = NULL; - - spin_lock(&decoder_lock); - list_for_each_entry(data, &decoder_list, list) { - if (data->ir_dev == ir_dev) - break; - } - spin_unlock(&decoder_lock); - return data; -} - -static ssize_t store_enabled(struct device *d, - struct device_attribute *mattr, - const char *buf, - size_t len) -{ - unsigned long value; - struct ir_input_dev *ir_dev = dev_get_drvdata(d); - struct decoder_data *data = get_decoder_data(ir_dev); - - if (!data) - return -EINVAL; - - if (strict_strtoul(buf, 10, &value) || value > 1) - return -EINVAL; - - data->enabled = value; - - return len; -} - -static ssize_t show_enabled(struct device *d, - struct device_attribute *mattr, char *buf) -{ - struct ir_input_dev *ir_dev = dev_get_drvdata(d); - struct decoder_data *data = get_decoder_data(ir_dev); - - if (!data) - return -EINVAL; - - if (data->enabled) - return sprintf(buf, "1\n"); - else - return sprintf(buf, "0\n"); -} - -static DEVICE_ATTR(enabled, S_IRUGO | S_IWUSR, show_enabled, store_enabled); - -static struct attribute *decoder_attributes[] = { - &dev_attr_enabled.attr, - NULL -}; - -static struct attribute_group decoder_attribute_group = { - .name = "nec_decoder", - .attrs = decoder_attributes, -}; - /** * ir_nec_decode() - Decode one NEC pulse or space * @input_dev: the struct input_dev descriptor of the device @@ -127,16 +45,12 @@ */ static int ir_nec_decode(struct input_dev *input_dev, struct ir_raw_event ev) { - struct decoder_data *data; struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); + struct nec_dec *data = &ir_dev->raw->nec; u32 scancode; u8 address, not_address, command, not_command; - data = get_decoder_data(ir_dev); - if (!data) - return -EINVAL; - - if (!data->enabled) + if (!(ir_dev->raw->enabled_protocols & IR_TYPE_NEC)) return 0; if (IS_RESET(ev)) { @@ -191,9 +105,9 @@ if (ev.pulse) break; - data->nec_bits <<= 1; + data->bits <<= 1; if (eq_margin(ev.duration, NEC_BIT_1_SPACE, NEC_UNIT / 2)) - data->nec_bits |= 1; + data->bits |= 1; else if (!eq_margin(ev.duration, NEC_BIT_0_SPACE, NEC_UNIT / 2)) break; data->count++; @@ -222,14 +136,14 @@ if (!geq_margin(ev.duration, NEC_TRAILER_SPACE, NEC_UNIT / 2)) break; - address = bitrev8((data->nec_bits >> 24) & 0xff); - not_address = bitrev8((data->nec_bits >> 16) & 0xff); - command = bitrev8((data->nec_bits >> 8) & 0xff); - not_command = bitrev8((data->nec_bits >> 0) & 0xff); + address = bitrev8((data->bits >> 24) & 0xff); + not_address = bitrev8((data->bits >> 16) & 0xff); + command = bitrev8((data->bits >> 8) & 0xff); + not_command = bitrev8((data->bits >> 0) & 0xff); if ((command ^ not_command) != 0xff) { IR_dprintk(1, "NEC checksum error: received 0x%08x\n", - data->nec_bits); + data->bits); break; } @@ -256,54 +170,9 @@ return -EINVAL; } -static int ir_nec_register(struct input_dev *input_dev) -{ - struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); - struct decoder_data *data; - int rc; - - rc = sysfs_create_group(&ir_dev->dev.kobj, &decoder_attribute_group); - if (rc < 0) - return rc; - - data = kzalloc(sizeof(*data), GFP_KERNEL); - if (!data) { - sysfs_remove_group(&ir_dev->dev.kobj, &decoder_attribute_group); - return -ENOMEM; - } - - data->ir_dev = ir_dev; - data->enabled = 1; - - spin_lock(&decoder_lock); - list_add_tail(&data->list, &decoder_list); - spin_unlock(&decoder_lock); - - return 0; -} - -static int ir_nec_unregister(struct input_dev *input_dev) -{ - struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); - static struct decoder_data *data; - - data = get_decoder_data(ir_dev); - if (!data) - return 0; - - sysfs_remove_group(&ir_dev->dev.kobj, &decoder_attribute_group); - - spin_lock(&decoder_lock); - list_del(&data->list); - spin_unlock(&decoder_lock); - - return 0; -} - static struct ir_raw_handler nec_handler = { + .protocols = IR_TYPE_NEC, .decode = ir_nec_decode, - .raw_register = ir_nec_register, - .raw_unregister = ir_nec_unregister, }; static int __init ir_nec_decode_init(void) --- linux-2.6.35.orig/drivers/media/IR/lirc_dev.c +++ linux-2.6.35/drivers/media/IR/lirc_dev.c @@ -0,0 +1,764 @@ +/* + * LIRC base driver + * + * by Artur Lipowski + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +static int debug; + +#define IRCTL_DEV_NAME "BaseRemoteCtl" +#define NOPLUG -1 +#define LOGHEAD "lirc_dev (%s[%d]): " + +static dev_t lirc_base_dev; + +struct irctl { + struct lirc_driver d; + int attached; + int open; + + struct mutex irctl_lock; + struct lirc_buffer *buf; + unsigned int chunk_size; + + struct task_struct *task; + long jiffies_to_wait; + + struct cdev cdev; +}; + +static DEFINE_MUTEX(lirc_dev_lock); + +static struct irctl *irctls[MAX_IRCTL_DEVICES]; + +/* Only used for sysfs but defined to void otherwise */ +static struct class *lirc_class; + +/* helper function + * initializes the irctl structure + */ +static void init_irctl(struct irctl *ir) +{ + dev_dbg(ir->d.dev, LOGHEAD "initializing irctl\n", + ir->d.name, ir->d.minor); + mutex_init(&ir->irctl_lock); + ir->d.minor = NOPLUG; +} + +static void cleanup(struct irctl *ir) +{ + dev_dbg(ir->d.dev, LOGHEAD "cleaning up\n", ir->d.name, ir->d.minor); + + device_destroy(lirc_class, MKDEV(MAJOR(lirc_base_dev), ir->d.minor)); + + if (ir->buf != ir->d.rbuf) { + lirc_buffer_free(ir->buf); + kfree(ir->buf); + } + ir->buf = NULL; +} + +/* helper function + * reads key codes from driver and puts them into buffer + * returns 0 on success + */ +static int add_to_buf(struct irctl *ir) +{ + if (ir->d.add_to_buf) { + int res = -ENODATA; + int got_data = 0; + + /* + * service the device as long as it is returning + * data and we have space + */ +get_data: + res = ir->d.add_to_buf(ir->d.data, ir->buf); + if (res == 0) { + got_data++; + goto get_data; + } + + if (res == -ENODEV) + kthread_stop(ir->task); + + return got_data ? 0 : res; + } + + return 0; +} + +/* main function of the polling thread + */ +static int lirc_thread(void *irctl) +{ + struct irctl *ir = irctl; + + dev_dbg(ir->d.dev, LOGHEAD "poll thread started\n", + ir->d.name, ir->d.minor); + + do { + if (ir->open) { + if (ir->jiffies_to_wait) { + set_current_state(TASK_INTERRUPTIBLE); + schedule_timeout(ir->jiffies_to_wait); + } + if (kthread_should_stop()) + break; + if (!add_to_buf(ir)) + wake_up_interruptible(&ir->buf->wait_poll); + } else { + set_current_state(TASK_INTERRUPTIBLE); + schedule(); + } + } while (!kthread_should_stop()); + + dev_dbg(ir->d.dev, LOGHEAD "poll thread ended\n", + ir->d.name, ir->d.minor); + + return 0; +} + + +static struct file_operations fops = { + .owner = THIS_MODULE, + .read = lirc_dev_fop_read, + .write = lirc_dev_fop_write, + .poll = lirc_dev_fop_poll, + .unlocked_ioctl = lirc_dev_fop_ioctl, + .open = lirc_dev_fop_open, + .release = lirc_dev_fop_close, +}; + +static int lirc_cdev_add(struct irctl *ir) +{ + int retval; + struct lirc_driver *d = &ir->d; + + if (d->fops) { + cdev_init(&ir->cdev, d->fops); + ir->cdev.owner = d->owner; + } else { + cdev_init(&ir->cdev, &fops); + ir->cdev.owner = THIS_MODULE; + } + kobject_set_name(&ir->cdev.kobj, "lirc%d", d->minor); + + retval = cdev_add(&ir->cdev, MKDEV(MAJOR(lirc_base_dev), d->minor), 1); + if (retval) + kobject_put(&ir->cdev.kobj); + + return retval; +} + +int lirc_register_driver(struct lirc_driver *d) +{ + struct irctl *ir; + int minor; + int bytes_in_key; + unsigned int chunk_size; + unsigned int buffer_size; + int err; + + if (!d) { + printk(KERN_ERR "lirc_dev: lirc_register_driver: " + "driver pointer must be not NULL!\n"); + err = -EBADRQC; + goto out; + } + + if (MAX_IRCTL_DEVICES <= d->minor) { + dev_err(d->dev, "lirc_dev: lirc_register_driver: " + "\"minor\" must be between 0 and %d (%d)!\n", + MAX_IRCTL_DEVICES-1, d->minor); + err = -EBADRQC; + goto out; + } + + if (1 > d->code_length || (BUFLEN * 8) < d->code_length) { + dev_err(d->dev, "lirc_dev: lirc_register_driver: " + "code length in bits for minor (%d) " + "must be less than %d!\n", + d->minor, BUFLEN * 8); + err = -EBADRQC; + goto out; + } + + dev_dbg(d->dev, "lirc_dev: lirc_register_driver: sample_rate: %d\n", + d->sample_rate); + if (d->sample_rate) { + if (2 > d->sample_rate || HZ < d->sample_rate) { + dev_err(d->dev, "lirc_dev: lirc_register_driver: " + "sample_rate must be between 2 and %d!\n", HZ); + err = -EBADRQC; + goto out; + } + if (!d->add_to_buf) { + dev_err(d->dev, "lirc_dev: lirc_register_driver: " + "add_to_buf cannot be NULL when " + "sample_rate is set\n"); + err = -EBADRQC; + goto out; + } + } else if (!(d->fops && d->fops->read) && !d->rbuf) { + dev_err(d->dev, "lirc_dev: lirc_register_driver: " + "fops->read and rbuf cannot all be NULL!\n"); + err = -EBADRQC; + goto out; + } else if (!d->rbuf) { + if (!(d->fops && d->fops->read && d->fops->poll && + d->fops->unlocked_ioctl)) { + dev_err(d->dev, "lirc_dev: lirc_register_driver: " + "neither read, poll nor unlocked_ioctl can be NULL!\n"); + err = -EBADRQC; + goto out; + } + } + + mutex_lock(&lirc_dev_lock); + + minor = d->minor; + + if (minor < 0) { + /* find first free slot for driver */ + for (minor = 0; minor < MAX_IRCTL_DEVICES; minor++) + if (!irctls[minor]) + break; + if (MAX_IRCTL_DEVICES == minor) { + dev_err(d->dev, "lirc_dev: lirc_register_driver: " + "no free slots for drivers!\n"); + err = -ENOMEM; + goto out_lock; + } + } else if (irctls[minor]) { + dev_err(d->dev, "lirc_dev: lirc_register_driver: " + "minor (%d) just registered!\n", minor); + err = -EBUSY; + goto out_lock; + } + + ir = kzalloc(sizeof(struct irctl), GFP_KERNEL); + if (!ir) { + err = -ENOMEM; + goto out_lock; + } + init_irctl(ir); + irctls[minor] = ir; + d->minor = minor; + + if (d->sample_rate) { + ir->jiffies_to_wait = HZ / d->sample_rate; + } else { + /* it means - wait for external event in task queue */ + ir->jiffies_to_wait = 0; + } + + /* some safety check 8-) */ + d->name[sizeof(d->name)-1] = '\0'; + + bytes_in_key = BITS_TO_LONGS(d->code_length) + + (d->code_length % 8 ? 1 : 0); + buffer_size = d->buffer_size ? d->buffer_size : BUFLEN / bytes_in_key; + chunk_size = d->chunk_size ? d->chunk_size : bytes_in_key; + + if (d->rbuf) { + ir->buf = d->rbuf; + } else { + ir->buf = kmalloc(sizeof(struct lirc_buffer), GFP_KERNEL); + if (!ir->buf) { + err = -ENOMEM; + goto out_lock; + } + err = lirc_buffer_init(ir->buf, chunk_size, buffer_size); + if (err) { + kfree(ir->buf); + goto out_lock; + } + } + ir->chunk_size = ir->buf->chunk_size; + + if (d->features == 0) + d->features = LIRC_CAN_REC_LIRCCODE; + + ir->d = *d; + ir->d.minor = minor; + + device_create(lirc_class, ir->d.dev, + MKDEV(MAJOR(lirc_base_dev), ir->d.minor), NULL, + "lirc%u", ir->d.minor); + + if (d->sample_rate) { + /* try to fire up polling thread */ + ir->task = kthread_run(lirc_thread, (void *)ir, "lirc_dev"); + if (IS_ERR(ir->task)) { + dev_err(d->dev, "lirc_dev: lirc_register_driver: " + "cannot run poll thread for minor = %d\n", + d->minor); + err = -ECHILD; + goto out_sysfs; + } + } + + err = lirc_cdev_add(ir); + if (err) + goto out_sysfs; + + ir->attached = 1; + mutex_unlock(&lirc_dev_lock); + + dev_info(ir->d.dev, "lirc_dev: driver %s registered at minor = %d\n", + ir->d.name, ir->d.minor); + return minor; + +out_sysfs: + device_destroy(lirc_class, MKDEV(MAJOR(lirc_base_dev), ir->d.minor)); +out_lock: + mutex_unlock(&lirc_dev_lock); +out: + return err; +} +EXPORT_SYMBOL(lirc_register_driver); + +int lirc_unregister_driver(int minor) +{ + struct irctl *ir; + + if (minor < 0 || minor >= MAX_IRCTL_DEVICES) { + printk(KERN_ERR "lirc_dev: lirc_unregister_driver: " + "\"minor (%d)\" must be between 0 and %d!\n", + minor, MAX_IRCTL_DEVICES-1); + return -EBADRQC; + } + + ir = irctls[minor]; + + mutex_lock(&lirc_dev_lock); + + if (ir->d.minor != minor) { + printk(KERN_ERR "lirc_dev: lirc_unregister_driver: " + "minor (%d) device not registered!", minor); + mutex_unlock(&lirc_dev_lock); + return -ENOENT; + } + + /* end up polling thread */ + if (ir->task) + kthread_stop(ir->task); + + dev_dbg(ir->d.dev, "lirc_dev: driver %s unregistered from minor = %d\n", + ir->d.name, ir->d.minor); + + ir->attached = 0; + if (ir->open) { + dev_dbg(ir->d.dev, LOGHEAD "releasing opened driver\n", + ir->d.name, ir->d.minor); + wake_up_interruptible(&ir->buf->wait_poll); + mutex_lock(&ir->irctl_lock); + ir->d.set_use_dec(ir->d.data); + module_put(ir->d.owner); + mutex_unlock(&ir->irctl_lock); + cdev_del(&ir->cdev); + } else { + cleanup(ir); + cdev_del(&ir->cdev); + kfree(ir); + irctls[minor] = NULL; + } + + mutex_unlock(&lirc_dev_lock); + + return 0; +} +EXPORT_SYMBOL(lirc_unregister_driver); + +int lirc_dev_fop_open(struct inode *inode, struct file *file) +{ + struct irctl *ir; + int retval = 0; + + if (iminor(inode) >= MAX_IRCTL_DEVICES) { + printk(KERN_WARNING "lirc_dev [%d]: open result = -ENODEV\n", + iminor(inode)); + return -ENODEV; + } + + if (mutex_lock_interruptible(&lirc_dev_lock)) + return -ERESTARTSYS; + + ir = irctls[iminor(inode)]; + if (!ir) { + retval = -ENODEV; + goto error; + } + file->private_data = ir; + + dev_dbg(ir->d.dev, LOGHEAD "open called\n", ir->d.name, ir->d.minor); + + if (ir->d.minor == NOPLUG) { + retval = -ENODEV; + goto error; + } + + if (ir->open) { + retval = -EBUSY; + goto error; + } + + if (try_module_get(ir->d.owner)) { + ++ir->open; + retval = ir->d.set_use_inc(ir->d.data); + + if (retval) { + module_put(ir->d.owner); + --ir->open; + } else { + lirc_buffer_clear(ir->buf); + } + if (ir->task) + wake_up_process(ir->task); + } + +error: + if (ir) + dev_dbg(ir->d.dev, LOGHEAD "open result = %d\n", + ir->d.name, ir->d.minor, retval); + + mutex_unlock(&lirc_dev_lock); + + return retval; +} +EXPORT_SYMBOL(lirc_dev_fop_open); + +int lirc_dev_fop_close(struct inode *inode, struct file *file) +{ + struct irctl *ir = irctls[iminor(inode)]; + + dev_dbg(ir->d.dev, LOGHEAD "close called\n", ir->d.name, ir->d.minor); + + WARN_ON(mutex_lock_killable(&lirc_dev_lock)); + + --ir->open; + if (ir->attached) { + ir->d.set_use_dec(ir->d.data); + module_put(ir->d.owner); + } else { + cleanup(ir); + irctls[ir->d.minor] = NULL; + kfree(ir); + } + + mutex_unlock(&lirc_dev_lock); + + return 0; +} +EXPORT_SYMBOL(lirc_dev_fop_close); + +unsigned int lirc_dev_fop_poll(struct file *file, poll_table *wait) +{ + struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)]; + unsigned int ret; + + dev_dbg(ir->d.dev, LOGHEAD "poll called\n", ir->d.name, ir->d.minor); + + if (!ir->attached) { + mutex_unlock(&ir->irctl_lock); + return POLLERR; + } + + poll_wait(file, &ir->buf->wait_poll, wait); + + if (ir->buf) + if (lirc_buffer_empty(ir->buf)) + ret = 0; + else + ret = POLLIN | POLLRDNORM; + else + ret = POLLERR; + + dev_dbg(ir->d.dev, LOGHEAD "poll result = %d\n", + ir->d.name, ir->d.minor, ret); + + return ret; +} +EXPORT_SYMBOL(lirc_dev_fop_poll); + +long lirc_dev_fop_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + unsigned long mode; + int result = 0; + struct irctl *ir = file->private_data; + + dev_dbg(ir->d.dev, LOGHEAD "ioctl called (0x%x)\n", + ir->d.name, ir->d.minor, cmd); + + if (ir->d.minor == NOPLUG || !ir->attached) { + dev_dbg(ir->d.dev, LOGHEAD "ioctl result = -ENODEV\n", + ir->d.name, ir->d.minor); + return -ENODEV; + } + + mutex_lock(&ir->irctl_lock); + + switch (cmd) { + case LIRC_GET_FEATURES: + result = put_user(ir->d.features, (unsigned long *)arg); + break; + case LIRC_GET_REC_MODE: + if (!(ir->d.features & LIRC_CAN_REC_MASK)) { + result = -ENOSYS; + break; + } + + result = put_user(LIRC_REC2MODE + (ir->d.features & LIRC_CAN_REC_MASK), + (unsigned long *)arg); + break; + case LIRC_SET_REC_MODE: + if (!(ir->d.features & LIRC_CAN_REC_MASK)) { + result = -ENOSYS; + break; + } + + result = get_user(mode, (unsigned long *)arg); + if (!result && !(LIRC_MODE2REC(mode) & ir->d.features)) + result = -EINVAL; + /* + * FIXME: We should actually set the mode somehow but + * for now, lirc_serial doesn't support mode changing either + */ + break; + case LIRC_GET_LENGTH: + result = put_user(ir->d.code_length, (unsigned long *)arg); + break; + case LIRC_GET_MIN_TIMEOUT: + if (!(ir->d.features & LIRC_CAN_SET_REC_TIMEOUT) || + ir->d.min_timeout == 0) { + result = -ENOSYS; + break; + } + + result = put_user(ir->d.min_timeout, (unsigned long *)arg); + break; + case LIRC_GET_MAX_TIMEOUT: + if (!(ir->d.features & LIRC_CAN_SET_REC_TIMEOUT) || + ir->d.max_timeout == 0) { + result = -ENOSYS; + break; + } + + result = put_user(ir->d.max_timeout, (unsigned long *)arg); + break; + default: + result = -EINVAL; + } + + dev_dbg(ir->d.dev, LOGHEAD "ioctl result = %d\n", + ir->d.name, ir->d.minor, result); + + mutex_unlock(&ir->irctl_lock); + + return result; +} +EXPORT_SYMBOL(lirc_dev_fop_ioctl); + +ssize_t lirc_dev_fop_read(struct file *file, + char *buffer, + size_t length, + loff_t *ppos) +{ + struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)]; + unsigned char buf[ir->chunk_size]; + int ret = 0, written = 0; + DECLARE_WAITQUEUE(wait, current); + + dev_dbg(ir->d.dev, LOGHEAD "read called\n", ir->d.name, ir->d.minor); + + if (mutex_lock_interruptible(&ir->irctl_lock)) + return -ERESTARTSYS; + if (!ir->attached) { + mutex_unlock(&ir->irctl_lock); + return -ENODEV; + } + + if (length % ir->chunk_size) { + dev_dbg(ir->d.dev, LOGHEAD "read result = -EINVAL\n", + ir->d.name, ir->d.minor); + mutex_unlock(&ir->irctl_lock); + return -EINVAL; + } + + /* + * we add ourselves to the task queue before buffer check + * to avoid losing scan code (in case when queue is awaken somewhere + * between while condition checking and scheduling) + */ + add_wait_queue(&ir->buf->wait_poll, &wait); + set_current_state(TASK_INTERRUPTIBLE); + + /* + * while we didn't provide 'length' bytes, device is opened in blocking + * mode and 'copy_to_user' is happy, wait for data. + */ + while (written < length && ret == 0) { + if (lirc_buffer_empty(ir->buf)) { + /* According to the read(2) man page, 'written' can be + * returned as less than 'length', instead of blocking + * again, returning -EWOULDBLOCK, or returning + * -ERESTARTSYS */ + if (written) + break; + if (file->f_flags & O_NONBLOCK) { + ret = -EWOULDBLOCK; + break; + } + if (signal_pending(current)) { + ret = -ERESTARTSYS; + break; + } + + mutex_unlock(&ir->irctl_lock); + schedule(); + set_current_state(TASK_INTERRUPTIBLE); + + if (mutex_lock_interruptible(&ir->irctl_lock)) { + ret = -ERESTARTSYS; + remove_wait_queue(&ir->buf->wait_poll, &wait); + set_current_state(TASK_RUNNING); + goto out_unlocked; + } + + if (!ir->attached) { + ret = -ENODEV; + break; + } + } else { + lirc_buffer_read(ir->buf, buf); + ret = copy_to_user((void *)buffer+written, buf, + ir->buf->chunk_size); + written += ir->buf->chunk_size; + } + } + + remove_wait_queue(&ir->buf->wait_poll, &wait); + set_current_state(TASK_RUNNING); + mutex_unlock(&ir->irctl_lock); + +out_unlocked: + dev_dbg(ir->d.dev, LOGHEAD "read result = %s (%d)\n", + ir->d.name, ir->d.minor, ret ? "-EFAULT" : "OK", ret); + + return ret ? ret : written; +} +EXPORT_SYMBOL(lirc_dev_fop_read); + +void *lirc_get_pdata(struct file *file) +{ + void *data = NULL; + + if (file && file->f_dentry && file->f_dentry->d_inode && + file->f_dentry->d_inode->i_rdev) { + struct irctl *ir; + ir = irctls[iminor(file->f_dentry->d_inode)]; + data = ir->d.data; + } + + return data; +} +EXPORT_SYMBOL(lirc_get_pdata); + + +ssize_t lirc_dev_fop_write(struct file *file, const char *buffer, + size_t length, loff_t *ppos) +{ + struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)]; + + dev_dbg(ir->d.dev, LOGHEAD "write called\n", ir->d.name, ir->d.minor); + + if (!ir->attached) + return -ENODEV; + + return -EINVAL; +} +EXPORT_SYMBOL(lirc_dev_fop_write); + + +static int __init lirc_dev_init(void) +{ + int retval; + + lirc_class = class_create(THIS_MODULE, "lirc"); + if (IS_ERR(lirc_class)) { + retval = PTR_ERR(lirc_class); + printk(KERN_ERR "lirc_dev: class_create failed\n"); + goto error; + } + + retval = alloc_chrdev_region(&lirc_base_dev, 0, MAX_IRCTL_DEVICES, + IRCTL_DEV_NAME); + if (retval) { + class_destroy(lirc_class); + printk(KERN_ERR "lirc_dev: alloc_chrdev_region failed\n"); + goto error; + } + + + printk(KERN_INFO "lirc_dev: IR Remote Control driver registered, " + "major %d \n", MAJOR(lirc_base_dev)); + +error: + return retval; +} + + + +static void __exit lirc_dev_exit(void) +{ + class_destroy(lirc_class); + unregister_chrdev_region(lirc_base_dev, MAX_IRCTL_DEVICES); + printk(KERN_INFO "lirc_dev: module unloaded\n"); +} + +module_init(lirc_dev_init); +module_exit(lirc_dev_exit); + +MODULE_DESCRIPTION("LIRC base driver module"); +MODULE_AUTHOR("Artur Lipowski"); +MODULE_LICENSE("GPL"); + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); --- linux-2.6.35.orig/drivers/media/IR/ir-lirc-codec.c +++ linux-2.6.35/drivers/media/IR/ir-lirc-codec.c @@ -0,0 +1,283 @@ +/* ir-lirc-codec.c - ir-core to classic lirc interface bridge + * + * Copyright (C) 2010 by Jarod Wilson + * + * This program is free software; 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. + */ + +#include +#include +#include +#include +#include +#include "ir-core-priv.h" + +#define LIRCBUF_SIZE 256 + +/** + * ir_lirc_decode() - Send raw IR data to lirc_dev to be relayed to the + * lircd userspace daemon for decoding. + * @input_dev: the struct input_dev descriptor of the device + * @duration: the struct ir_raw_event descriptor of the pulse/space + * + * This function returns -EINVAL if the lirc interfaces aren't wired up. + */ +static int ir_lirc_decode(struct input_dev *input_dev, struct ir_raw_event ev) +{ + struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); + + if (!(ir_dev->raw->enabled_protocols & IR_TYPE_LIRC)) + return 0; + + if (!ir_dev->raw->lirc.drv || !ir_dev->raw->lirc.drv->rbuf) + return -EINVAL; + + IR_dprintk(2, "LIRC data transfer started (%uus %s)\n", + TO_US(ev.duration), TO_STR(ev.pulse)); + + ir_dev->raw->lirc.lircdata += ev.duration / 1000; + if (ev.pulse) + ir_dev->raw->lirc.lircdata |= PULSE_BIT; + + lirc_buffer_write(ir_dev->raw->lirc.drv->rbuf, + (unsigned char *) &ir_dev->raw->lirc.lircdata); + wake_up(&ir_dev->raw->lirc.drv->rbuf->wait_poll); + + ir_dev->raw->lirc.lircdata = 0; + + return 0; +} + +static ssize_t ir_lirc_transmit_ir(struct file *file, const char *buf, + size_t n, loff_t *ppos) +{ + struct lirc_codec *lirc; + struct ir_input_dev *ir_dev; + int *txbuf; /* buffer with values to transmit */ + int ret = 0, count; + + lirc = lirc_get_pdata(file); + if (!lirc) + return -EFAULT; + + if (n % sizeof(int)) + return -EINVAL; + + count = n / sizeof(int); + if (count > LIRCBUF_SIZE || count % 2 == 0) + return -EINVAL; + + txbuf = kzalloc(sizeof(int) * LIRCBUF_SIZE, GFP_KERNEL); + if (!txbuf) + return -ENOMEM; + + if (copy_from_user(txbuf, buf, n)) { + ret = -EFAULT; + goto out; + } + + ir_dev = lirc->ir_dev; + if (!ir_dev) { + ret = -EFAULT; + goto out; + } + + if (ir_dev->props && ir_dev->props->tx_ir) + ret = ir_dev->props->tx_ir(ir_dev->props->priv, txbuf, (u32)n); + +out: + kfree(txbuf); + return ret; +} + +static long ir_lirc_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) +{ + struct lirc_codec *lirc; + struct ir_input_dev *ir_dev; + int ret = 0; + void *drv_data; + unsigned long val; + + lirc = lirc_get_pdata(filep); + if (!lirc) + return -EFAULT; + + ir_dev = lirc->ir_dev; + if (!ir_dev || !ir_dev->props || !ir_dev->props->priv) + return -EFAULT; + + drv_data = ir_dev->props->priv; + + switch (cmd) { + case LIRC_SET_TRANSMITTER_MASK: + ret = get_user(val, (unsigned long *)arg); + if (ret) + return ret; + + if (ir_dev->props && ir_dev->props->s_tx_mask) + ret = ir_dev->props->s_tx_mask(drv_data, (u32)val); + else + return -EINVAL; + break; + + case LIRC_SET_SEND_CARRIER: + ret = get_user(val, (unsigned long *)arg); + if (ret) + return ret; + + if (ir_dev->props && ir_dev->props->s_tx_carrier) + ir_dev->props->s_tx_carrier(drv_data, (u32)val); + else + return -EINVAL; + break; + + case LIRC_GET_SEND_MODE: + val = LIRC_CAN_SEND_PULSE & LIRC_CAN_SEND_MASK; + ret = put_user(val, (unsigned long *)arg); + break; + + case LIRC_SET_SEND_MODE: + ret = get_user(val, (unsigned long *)arg); + if (ret) + return ret; + + if (val != (LIRC_MODE_PULSE & LIRC_CAN_SEND_MASK)) + return -EINVAL; + break; + + default: + return lirc_dev_fop_ioctl(filep, cmd, arg); + } + + return ret; +} + +static int ir_lirc_open(void *data) +{ + return 0; +} + +static void ir_lirc_close(void *data) +{ + return; +} + +static struct file_operations lirc_fops = { + .owner = THIS_MODULE, + .write = ir_lirc_transmit_ir, + .unlocked_ioctl = ir_lirc_ioctl, + .read = lirc_dev_fop_read, + .poll = lirc_dev_fop_poll, + .open = lirc_dev_fop_open, + .release = lirc_dev_fop_close, +}; + +static int ir_lirc_register(struct input_dev *input_dev) +{ + struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); + struct lirc_driver *drv; + struct lirc_buffer *rbuf; + int rc = -ENOMEM; + unsigned long features; + + drv = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL); + if (!drv) + return rc; + + rbuf = kzalloc(sizeof(struct lirc_buffer), GFP_KERNEL); + if (!drv) + goto rbuf_alloc_failed; + + rc = lirc_buffer_init(rbuf, sizeof(int), LIRCBUF_SIZE); + if (rc) + goto rbuf_init_failed; + + features = LIRC_CAN_REC_MODE2; + if (ir_dev->props->tx_ir) { + features |= LIRC_CAN_SEND_PULSE; + if (ir_dev->props->s_tx_mask) + features |= LIRC_CAN_SET_TRANSMITTER_MASK; + if (ir_dev->props->s_tx_carrier) + features |= LIRC_CAN_SET_SEND_CARRIER; + } + + snprintf(drv->name, sizeof(drv->name), "ir-lirc-codec (%s)", + ir_dev->driver_name); + drv->minor = -1; + drv->features = features; + drv->data = &ir_dev->raw->lirc; + drv->rbuf = rbuf; + drv->set_use_inc = &ir_lirc_open; + drv->set_use_dec = &ir_lirc_close; + drv->code_length = sizeof(struct ir_raw_event) * 8; + drv->fops = &lirc_fops; + drv->dev = &ir_dev->dev; + drv->owner = THIS_MODULE; + + drv->minor = lirc_register_driver(drv); + if (drv->minor < 0) { + rc = -ENODEV; + goto lirc_register_failed; + } + + ir_dev->raw->lirc.drv = drv; + ir_dev->raw->lirc.ir_dev = ir_dev; + ir_dev->raw->lirc.lircdata = PULSE_MASK; + + return 0; + +lirc_register_failed: +rbuf_init_failed: + kfree(rbuf); +rbuf_alloc_failed: + kfree(drv); + + return rc; +} + +static int ir_lirc_unregister(struct input_dev *input_dev) +{ + struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); + struct lirc_codec *lirc = &ir_dev->raw->lirc; + + lirc_unregister_driver(lirc->drv->minor); + lirc_buffer_free(lirc->drv->rbuf); + kfree(lirc->drv); + + return 0; +} + +static struct ir_raw_handler lirc_handler = { + .protocols = IR_TYPE_LIRC, + .decode = ir_lirc_decode, + .raw_register = ir_lirc_register, + .raw_unregister = ir_lirc_unregister, +}; + +static int __init ir_lirc_codec_init(void) +{ + ir_raw_handler_register(&lirc_handler); + + printk(KERN_INFO "IR LIRC bridge handler initialized\n"); + return 0; +} + +static void __exit ir_lirc_codec_exit(void) +{ + ir_raw_handler_unregister(&lirc_handler); +} + +module_init(ir_lirc_codec_init); +module_exit(ir_lirc_codec_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Jarod Wilson "); +MODULE_AUTHOR("Red Hat Inc. (http://www.redhat.com)"); +MODULE_DESCRIPTION("LIRC IR handler bridge"); --- linux-2.6.35.orig/drivers/media/IR/ir-rc6-decoder.c +++ linux-2.6.35/drivers/media/IR/ir-rc6-decoder.c @@ -36,10 +36,6 @@ #define RC6_STARTBIT_MASK 0x08 /* for the header bits */ #define RC6_6A_MCE_TOGGLE_MASK 0x8000 /* for the body bits */ -/* Used to register rc6_decoder clients */ -static LIST_HEAD(decoder_list); -static DEFINE_SPINLOCK(decoder_lock); - enum rc6_mode { RC6_MODE_0, RC6_MODE_6A, @@ -58,89 +54,8 @@ STATE_FINISHED, }; -struct decoder_data { - struct list_head list; - struct ir_input_dev *ir_dev; - int enabled:1; - - /* State machine control */ - enum rc6_state state; - u8 header; - u32 body; - struct ir_raw_event prev_ev; - bool toggle; - unsigned count; - unsigned wanted_bits; -}; - - -/** - * get_decoder_data() - gets decoder data - * @input_dev: input device - * - * Returns the struct decoder_data that corresponds to a device - */ -static struct decoder_data *get_decoder_data(struct ir_input_dev *ir_dev) -{ - struct decoder_data *data = NULL; - - spin_lock(&decoder_lock); - list_for_each_entry(data, &decoder_list, list) { - if (data->ir_dev == ir_dev) - break; - } - spin_unlock(&decoder_lock); - return data; -} - -static ssize_t store_enabled(struct device *d, - struct device_attribute *mattr, - const char *buf, - size_t len) +static enum rc6_mode rc6_mode(struct rc6_dec *data) { - unsigned long value; - struct ir_input_dev *ir_dev = dev_get_drvdata(d); - struct decoder_data *data = get_decoder_data(ir_dev); - - if (!data) - return -EINVAL; - - if (strict_strtoul(buf, 10, &value) || value > 1) - return -EINVAL; - - data->enabled = value; - - return len; -} - -static ssize_t show_enabled(struct device *d, - struct device_attribute *mattr, char *buf) -{ - struct ir_input_dev *ir_dev = dev_get_drvdata(d); - struct decoder_data *data = get_decoder_data(ir_dev); - - if (!data) - return -EINVAL; - - if (data->enabled) - return sprintf(buf, "1\n"); - else - return sprintf(buf, "0\n"); -} - -static DEVICE_ATTR(enabled, S_IRUGO | S_IWUSR, show_enabled, store_enabled); - -static struct attribute *decoder_attributes[] = { - &dev_attr_enabled.attr, - NULL -}; - -static struct attribute_group decoder_attribute_group = { - .name = "rc6_decoder", - .attrs = decoder_attributes, -}; - -static enum rc6_mode rc6_mode(struct decoder_data *data) { switch (data->header & RC6_MODE_MASK) { case 0: return RC6_MODE_0; @@ -162,16 +77,12 @@ */ static int ir_rc6_decode(struct input_dev *input_dev, struct ir_raw_event ev) { - struct decoder_data *data; struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); + struct rc6_dec *data = &ir_dev->raw->rc6; u32 scancode; u8 toggle; - data = get_decoder_data(ir_dev); - if (!data) - return -EINVAL; - - if (!data->enabled) + if (!(ir_dev->raw->enabled_protocols & IR_TYPE_RC6)) return 0; if (IS_RESET(ev)) { @@ -223,12 +134,11 @@ if (ev.pulse) data->header |= 1; data->count++; - data->prev_ev = ev; data->state = STATE_HEADER_BIT_END; return 0; case STATE_HEADER_BIT_END: - if (!is_transition(&ev, &data->prev_ev)) + if (!is_transition(&ev, &ir_dev->raw->prev_ev)) break; if (data->count == RC6_HEADER_NBITS) @@ -244,12 +154,11 @@ break; data->toggle = ev.pulse; - data->prev_ev = ev; data->state = STATE_TOGGLE_END; return 0; case STATE_TOGGLE_END: - if (!is_transition(&ev, &data->prev_ev) || + if (!is_transition(&ev, &ir_dev->raw->prev_ev) || !geq_margin(ev.duration, RC6_TOGGLE_END, RC6_UNIT / 2)) break; @@ -259,7 +168,6 @@ } data->state = STATE_BODY_BIT_START; - data->prev_ev = ev; decrease_duration(&ev, RC6_TOGGLE_END); data->count = 0; @@ -291,13 +199,11 @@ if (ev.pulse) data->body |= 1; data->count++; - data->prev_ev = ev; - data->state = STATE_BODY_BIT_END; return 0; case STATE_BODY_BIT_END: - if (!is_transition(&ev, &data->prev_ev)) + if (!is_transition(&ev, &ir_dev->raw->prev_ev)) break; if (data->count == data->wanted_bits) @@ -348,54 +254,9 @@ return -EINVAL; } -static int ir_rc6_register(struct input_dev *input_dev) -{ - struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); - struct decoder_data *data; - int rc; - - rc = sysfs_create_group(&ir_dev->dev.kobj, &decoder_attribute_group); - if (rc < 0) - return rc; - - data = kzalloc(sizeof(*data), GFP_KERNEL); - if (!data) { - sysfs_remove_group(&ir_dev->dev.kobj, &decoder_attribute_group); - return -ENOMEM; - } - - data->ir_dev = ir_dev; - data->enabled = 1; - - spin_lock(&decoder_lock); - list_add_tail(&data->list, &decoder_list); - spin_unlock(&decoder_lock); - - return 0; -} - -static int ir_rc6_unregister(struct input_dev *input_dev) -{ - struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); - static struct decoder_data *data; - - data = get_decoder_data(ir_dev); - if (!data) - return 0; - - sysfs_remove_group(&ir_dev->dev.kobj, &decoder_attribute_group); - - spin_lock(&decoder_lock); - list_del(&data->list); - spin_unlock(&decoder_lock); - - return 0; -} - static struct ir_raw_handler rc6_handler = { + .protocols = IR_TYPE_RC6, .decode = ir_rc6_decode, - .raw_register = ir_rc6_register, - .raw_unregister = ir_rc6_unregister, }; static int __init ir_rc6_decode_init(void) --- linux-2.6.35.orig/drivers/media/IR/mceusb.c +++ linux-2.6.35/drivers/media/IR/mceusb.c @@ -0,0 +1,1130 @@ +/* + * Driver for USB Windows Media Center Ed. eHome Infrared Transceivers + * + * Copyright (c) 2010 by Jarod Wilson + * + * Based on the original lirc_mceusb and lirc_mceusb2 drivers, by Dan + * Conti, Martin Blatter and Daniel Melander, the latter of which was + * in turn also based on the lirc_atiusb driver by Paul Miller. The + * two mce drivers were merged into one by Jarod Wilson, with transmit + * support for the 1st-gen device added primarily by Patrick Calhoun, + * with a bit of tweaks by Jarod. Debugging improvements and proper + * support for what appears to be 3rd-gen hardware added by Jarod. + * Initial port from lirc driver to ir-core drivery by Jarod, based + * partially on a port to an earlier proposed IR infrastructure by + * Jon Smirl, which included enhancements and simplifications to the + * incoming IR buffer parsing routines. + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You 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 +#include +#include +#include +#include +#include +#include + +#define DRIVER_VERSION "1.91" +#define DRIVER_AUTHOR "Jarod Wilson " +#define DRIVER_DESC "Windows Media Center Ed. eHome Infrared Transceiver " \ + "device driver" +#define DRIVER_NAME "mceusb" + +#define USB_BUFLEN 32 /* USB reception buffer length */ +#define USB_CTRL_MSG_SZ 2 /* Size of usb ctrl msg on gen1 hw */ +#define MCE_G1_INIT_MSGS 40 /* Init messages on gen1 hw to throw out */ + +/* MCE constants */ +#define MCE_CMDBUF_SIZE 384 /* MCE Command buffer length */ +#define MCE_TIME_UNIT 50 /* Approx 50us resolution */ +#define MCE_CODE_LENGTH 5 /* Normal length of packet (with header) */ +#define MCE_PACKET_SIZE 4 /* Normal length of packet (without header) */ +#define MCE_PACKET_HEADER 0x84 /* Actual header format is 0x80 + num_bytes */ +#define MCE_CONTROL_HEADER 0x9F /* MCE status header */ +#define MCE_TX_HEADER_LENGTH 3 /* # of bytes in the initializing tx header */ +#define MCE_MAX_CHANNELS 2 /* Two transmitters, hardware dependent? */ +#define MCE_DEFAULT_TX_MASK 0x03 /* Val opts: TX1=0x01, TX2=0x02, ALL=0x03 */ +#define MCE_PULSE_BIT 0x80 /* Pulse bit, MSB set == PULSE else SPACE */ +#define MCE_PULSE_MASK 0x7F /* Pulse mask */ +#define MCE_MAX_PULSE_LENGTH 0x7F /* Longest transmittable pulse symbol */ +#define MCE_PACKET_LENGTH_MASK 0x1F /* Packet length mask */ + + +/* module parameters */ +#ifdef CONFIG_USB_DEBUG +static int debug = 1; +#else +static int debug; +#endif + +/* general constants */ +#define SEND_FLAG_IN_PROGRESS 1 +#define SEND_FLAG_COMPLETE 2 +#define RECV_FLAG_IN_PROGRESS 3 +#define RECV_FLAG_COMPLETE 4 + +#define MCEUSB_RX 1 +#define MCEUSB_TX 2 + +#define VENDOR_PHILIPS 0x0471 +#define VENDOR_SMK 0x0609 +#define VENDOR_TATUNG 0x1460 +#define VENDOR_GATEWAY 0x107b +#define VENDOR_SHUTTLE 0x1308 +#define VENDOR_SHUTTLE2 0x051c +#define VENDOR_MITSUMI 0x03ee +#define VENDOR_TOPSEED 0x1784 +#define VENDOR_RICAVISION 0x179d +#define VENDOR_ITRON 0x195d +#define VENDOR_FIC 0x1509 +#define VENDOR_LG 0x043e +#define VENDOR_MICROSOFT 0x045e +#define VENDOR_FORMOSA 0x147a +#define VENDOR_FINTEK 0x1934 +#define VENDOR_PINNACLE 0x2304 +#define VENDOR_ECS 0x1019 +#define VENDOR_WISTRON 0x0fb8 +#define VENDOR_COMPRO 0x185b +#define VENDOR_NORTHSTAR 0x04eb +#define VENDOR_REALTEK 0x0bda +#define VENDOR_TIVO 0x105a + +static struct usb_device_id mceusb_dev_table[] = { + /* Original Microsoft MCE IR Transceiver (often HP-branded) */ + { USB_DEVICE(VENDOR_MICROSOFT, 0x006d) }, + /* Philips Infrared Transceiver - Sahara branded */ + { USB_DEVICE(VENDOR_PHILIPS, 0x0608) }, + /* Philips Infrared Transceiver - HP branded */ + { USB_DEVICE(VENDOR_PHILIPS, 0x060c) }, + /* Philips SRM5100 */ + { USB_DEVICE(VENDOR_PHILIPS, 0x060d) }, + /* Philips Infrared Transceiver - Omaura */ + { USB_DEVICE(VENDOR_PHILIPS, 0x060f) }, + /* Philips Infrared Transceiver - Spinel plus */ + { USB_DEVICE(VENDOR_PHILIPS, 0x0613) }, + /* Philips eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_PHILIPS, 0x0815) }, + /* Realtek MCE IR Receiver */ + { USB_DEVICE(VENDOR_REALTEK, 0x0161) }, + /* SMK/Toshiba G83C0004D410 */ + { USB_DEVICE(VENDOR_SMK, 0x031d) }, + /* SMK eHome Infrared Transceiver (Sony VAIO) */ + { USB_DEVICE(VENDOR_SMK, 0x0322) }, + /* bundled with Hauppauge PVR-150 */ + { USB_DEVICE(VENDOR_SMK, 0x0334) }, + /* SMK eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_SMK, 0x0338) }, + /* Tatung eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_TATUNG, 0x9150) }, + /* Shuttle eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_SHUTTLE, 0xc001) }, + /* Shuttle eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_SHUTTLE2, 0xc001) }, + /* Gateway eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_GATEWAY, 0x3009) }, + /* Mitsumi */ + { USB_DEVICE(VENDOR_MITSUMI, 0x2501) }, + /* Topseed eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_TOPSEED, 0x0001) }, + /* Topseed HP eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_TOPSEED, 0x0006) }, + /* Topseed eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_TOPSEED, 0x0007) }, + /* Topseed eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_TOPSEED, 0x0008) }, + /* Topseed eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_TOPSEED, 0x000a) }, + /* Topseed eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_TOPSEED, 0x0011) }, + /* Ricavision internal Infrared Transceiver */ + { USB_DEVICE(VENDOR_RICAVISION, 0x0010) }, + /* Itron ione Libra Q-11 */ + { USB_DEVICE(VENDOR_ITRON, 0x7002) }, + /* FIC eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_FIC, 0x9242) }, + /* LG eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_LG, 0x9803) }, + /* Microsoft MCE Infrared Transceiver */ + { USB_DEVICE(VENDOR_MICROSOFT, 0x00a0) }, + /* Formosa eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_FORMOSA, 0xe015) }, + /* Formosa21 / eHome Infrared Receiver */ + { USB_DEVICE(VENDOR_FORMOSA, 0xe016) }, + /* Formosa aim / Trust MCE Infrared Receiver */ + { USB_DEVICE(VENDOR_FORMOSA, 0xe017) }, + /* Formosa Industrial Computing / Beanbag Emulation Device */ + { USB_DEVICE(VENDOR_FORMOSA, 0xe018) }, + /* Formosa21 / eHome Infrared Receiver */ + { USB_DEVICE(VENDOR_FORMOSA, 0xe03a) }, + /* Formosa Industrial Computing AIM IR605/A */ + { USB_DEVICE(VENDOR_FORMOSA, 0xe03c) }, + /* Formosa Industrial Computing */ + { USB_DEVICE(VENDOR_FORMOSA, 0xe03e) }, + /* Fintek eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_FINTEK, 0x0602) }, + /* Fintek eHome Infrared Transceiver (in the AOpen MP45) */ + { USB_DEVICE(VENDOR_FINTEK, 0x0702) }, + /* Pinnacle Remote Kit */ + { USB_DEVICE(VENDOR_PINNACLE, 0x0225) }, + /* Elitegroup Computer Systems IR */ + { USB_DEVICE(VENDOR_ECS, 0x0f38) }, + /* Wistron Corp. eHome Infrared Receiver */ + { USB_DEVICE(VENDOR_WISTRON, 0x0002) }, + /* Compro K100 */ + { USB_DEVICE(VENDOR_COMPRO, 0x3020) }, + /* Compro K100 v2 */ + { USB_DEVICE(VENDOR_COMPRO, 0x3082) }, + /* Northstar Systems, Inc. eHome Infrared Transceiver */ + { USB_DEVICE(VENDOR_NORTHSTAR, 0xe004) }, + /* TiVo PC IR Receiver */ + { USB_DEVICE(VENDOR_TIVO, 0x2000) }, + /* Terminating entry */ + { } +}; + +static struct usb_device_id gen3_list[] = { + { USB_DEVICE(VENDOR_PINNACLE, 0x0225) }, + { USB_DEVICE(VENDOR_TOPSEED, 0x0008) }, + {} +}; + +static struct usb_device_id microsoft_gen1_list[] = { + { USB_DEVICE(VENDOR_MICROSOFT, 0x006d) }, + {} +}; + +static struct usb_device_id std_tx_mask_list[] = { + { USB_DEVICE(VENDOR_MICROSOFT, 0x006d) }, + { USB_DEVICE(VENDOR_PHILIPS, 0x060c) }, + { USB_DEVICE(VENDOR_SMK, 0x031d) }, + { USB_DEVICE(VENDOR_SMK, 0x0322) }, + { USB_DEVICE(VENDOR_SMK, 0x0334) }, + { USB_DEVICE(VENDOR_TOPSEED, 0x0001) }, + { USB_DEVICE(VENDOR_TOPSEED, 0x0006) }, + { USB_DEVICE(VENDOR_TOPSEED, 0x0007) }, + { USB_DEVICE(VENDOR_TOPSEED, 0x0008) }, + { USB_DEVICE(VENDOR_TOPSEED, 0x000a) }, + { USB_DEVICE(VENDOR_TOPSEED, 0x0011) }, + { USB_DEVICE(VENDOR_PINNACLE, 0x0225) }, + {} +}; + +/* data structure for each usb transceiver */ +struct mceusb_dev { + /* ir-core bits */ + struct ir_dev_props *props; + struct ir_raw_event rawir; + + /* core device bits */ + struct device *dev; + struct input_dev *idev; + + /* usb */ + struct usb_device *usbdev; + struct urb *urb_in; + struct usb_endpoint_descriptor *usb_ep_in; + struct usb_endpoint_descriptor *usb_ep_out; + + /* buffers and dma */ + unsigned char *buf_in; + unsigned int len_in; + u8 cmd; /* MCE command type */ + u8 rem; /* Remaining IR data bytes in packet */ + dma_addr_t dma_in; + dma_addr_t dma_out; + + struct { + u32 connected:1; + u32 tx_mask_inverted:1; + u32 microsoft_gen1:1; + u32 reserved:29; + } flags; + + /* transmit support */ + int send_flags; + u32 carrier; + unsigned char tx_mask; + + char name[128]; + char phys[64]; +}; + +/* + * MCE Device Command Strings + * Device command responses vary from device to device... + * - DEVICE_RESET resets the hardware to its default state + * - GET_REVISION fetches the hardware/software revision, common + * replies are ff 0b 45 ff 1b 08 and ff 0b 50 ff 1b 42 + * - GET_CARRIER_FREQ gets the carrier mode and frequency of the + * device, with replies in the form of 9f 06 MM FF, where MM is 0-3, + * meaning clk of 10000000, 2500000, 625000 or 156250, and FF is + * ((clk / frequency) - 1) + * - GET_RX_TIMEOUT fetches the receiver timeout in units of 50us, + * response in the form of 9f 0c msb lsb + * - GET_TX_BITMASK fetches the transmitter bitmask, replies in + * the form of 9f 08 bm, where bm is the bitmask + * - GET_RX_SENSOR fetches the RX sensor setting -- long-range + * general use one or short-range learning one, in the form of + * 9f 14 ss, where ss is either 01 for long-range or 02 for short + * - SET_CARRIER_FREQ sets a new carrier mode and frequency + * - SET_TX_BITMASK sets the transmitter bitmask + * - SET_RX_TIMEOUT sets the receiver timeout + * - SET_RX_SENSOR sets which receiver sensor to use + */ +static char DEVICE_RESET[] = {0x00, 0xff, 0xaa}; +static char GET_REVISION[] = {0xff, 0x0b}; +static char GET_UNKNOWN[] = {0xff, 0x18}; +static char GET_UNKNOWN2[] = {0x9f, 0x05}; +static char GET_CARRIER_FREQ[] = {0x9f, 0x07}; +static char GET_RX_TIMEOUT[] = {0x9f, 0x0d}; +static char GET_TX_BITMASK[] = {0x9f, 0x13}; +static char GET_RX_SENSOR[] = {0x9f, 0x15}; +/* sub in desired values in lower byte or bytes for full command */ +/* FIXME: make use of these for transmit. +static char SET_CARRIER_FREQ[] = {0x9f, 0x06, 0x00, 0x00}; +static char SET_TX_BITMASK[] = {0x9f, 0x08, 0x00}; +static char SET_RX_TIMEOUT[] = {0x9f, 0x0c, 0x00, 0x00}; +static char SET_RX_SENSOR[] = {0x9f, 0x14, 0x00}; +*/ + +static void mceusb_dev_printdata(struct mceusb_dev *ir, char *buf, + int len, bool out) +{ + char codes[USB_BUFLEN * 3 + 1]; + char inout[9]; + int i; + u8 cmd, subcmd, data1, data2; + struct device *dev = ir->dev; + int idx = 0; + + /* skip meaningless 0xb1 0x60 header bytes on orig receiver */ + if (ir->flags.microsoft_gen1 && !out) + idx = 2; + + if (len <= idx) + return; + + for (i = 0; i < len && i < USB_BUFLEN; i++) + snprintf(codes + i * 3, 4, "%02x ", buf[i] & 0xFF); + + dev_info(dev, "%sx data: %s (length=%d)\n", + (out ? "t" : "r"), codes, len); + + if (out) + strcpy(inout, "Request\0"); + else + strcpy(inout, "Got\0"); + + cmd = buf[idx] & 0xff; + subcmd = buf[idx + 1] & 0xff; + data1 = buf[idx + 2] & 0xff; + data2 = buf[idx + 3] & 0xff; + + switch (cmd) { + case 0x00: + if (subcmd == 0xff && data1 == 0xaa) + dev_info(dev, "Device reset requested\n"); + else + dev_info(dev, "Unknown command 0x%02x 0x%02x\n", + cmd, subcmd); + break; + case 0xff: + switch (subcmd) { + case 0x0b: + if (len == 2) + dev_info(dev, "Get hw/sw rev?\n"); + else + dev_info(dev, "hw/sw rev 0x%02x 0x%02x " + "0x%02x 0x%02x\n", data1, data2, + buf[idx + 4], buf[idx + 5]); + break; + case 0xaa: + dev_info(dev, "Device reset requested\n"); + break; + case 0xfe: + dev_info(dev, "Previous command not supported\n"); + break; + case 0x18: + case 0x1b: + default: + dev_info(dev, "Unknown command 0x%02x 0x%02x\n", + cmd, subcmd); + break; + } + break; + case 0x9f: + switch (subcmd) { + case 0x03: + dev_info(dev, "Ping\n"); + break; + case 0x04: + dev_info(dev, "Resp to 9f 05 of 0x%02x 0x%02x\n", + data1, data2); + break; + case 0x06: + dev_info(dev, "%s carrier mode and freq of " + "0x%02x 0x%02x\n", inout, data1, data2); + break; + case 0x07: + dev_info(dev, "Get carrier mode and freq\n"); + break; + case 0x08: + dev_info(dev, "%s transmit blaster mask of 0x%02x\n", + inout, data1); + break; + case 0x0c: + /* value is in units of 50us, so x*50/100 or x/2 ms */ + dev_info(dev, "%s receive timeout of %d ms\n", + inout, ((data1 << 8) | data2) / 2); + break; + case 0x0d: + dev_info(dev, "Get receive timeout\n"); + break; + case 0x13: + dev_info(dev, "Get transmit blaster mask\n"); + break; + case 0x14: + dev_info(dev, "%s %s-range receive sensor in use\n", + inout, data1 == 0x02 ? "short" : "long"); + break; + case 0x15: + if (len == 2) + dev_info(dev, "Get receive sensor\n"); + else + dev_info(dev, "Received pulse count is %d\n", + ((data1 << 8) | data2)); + break; + case 0xfe: + dev_info(dev, "Error! Hardware is likely wedged...\n"); + break; + case 0x05: + case 0x09: + case 0x0f: + default: + dev_info(dev, "Unknown command 0x%02x 0x%02x\n", + cmd, subcmd); + break; + } + break; + default: + break; + } +} + +static void usb_async_callback(struct urb *urb, struct pt_regs *regs) +{ + struct mceusb_dev *ir; + int len; + + if (!urb) + return; + + ir = urb->context; + if (ir) { + len = urb->actual_length; + + dev_dbg(ir->dev, "callback called (status=%d len=%d)\n", + urb->status, len); + + if (debug) + mceusb_dev_printdata(ir, urb->transfer_buffer, + len, true); + } + +} + +/* request incoming or send outgoing usb packet - used to initialize remote */ +static void mce_request_packet(struct mceusb_dev *ir, + struct usb_endpoint_descriptor *ep, + unsigned char *data, int size, int urb_type) +{ + int res; + struct urb *async_urb; + struct device *dev = ir->dev; + unsigned char *async_buf; + + if (urb_type == MCEUSB_TX) { + async_urb = usb_alloc_urb(0, GFP_KERNEL); + if (unlikely(!async_urb)) { + dev_err(dev, "Error, couldn't allocate urb!\n"); + return; + } + + async_buf = kzalloc(size, GFP_KERNEL); + if (!async_buf) { + dev_err(dev, "Error, couldn't allocate buf!\n"); + usb_free_urb(async_urb); + return; + } + + /* outbound data */ + usb_fill_int_urb(async_urb, ir->usbdev, + usb_sndintpipe(ir->usbdev, ep->bEndpointAddress), + async_buf, size, (usb_complete_t) usb_async_callback, + ir, ep->bInterval); + memcpy(async_buf, data, size); + + } else if (urb_type == MCEUSB_RX) { + /* standard request */ + async_urb = ir->urb_in; + ir->send_flags = RECV_FLAG_IN_PROGRESS; + + } else { + dev_err(dev, "Error! Unknown urb type %d\n", urb_type); + return; + } + + dev_dbg(dev, "receive request called (size=%#x)\n", size); + + async_urb->transfer_buffer_length = size; + async_urb->dev = ir->usbdev; + + res = usb_submit_urb(async_urb, GFP_ATOMIC); + if (res) { + dev_dbg(dev, "receive request FAILED! (res=%d)\n", res); + return; + } + dev_dbg(dev, "receive request complete (res=%d)\n", res); +} + +static void mce_async_out(struct mceusb_dev *ir, unsigned char *data, int size) +{ + mce_request_packet(ir, ir->usb_ep_out, data, size, MCEUSB_TX); +} + +static void mce_sync_in(struct mceusb_dev *ir, unsigned char *data, int size) +{ + mce_request_packet(ir, ir->usb_ep_in, data, size, MCEUSB_RX); +} + +/* Send data out the IR blaster port(s) */ +static int mceusb_tx_ir(void *priv, int *txbuf, u32 n) +{ + struct mceusb_dev *ir = priv; + int i, ret = 0; + int count, cmdcount = 0; + unsigned char *cmdbuf; /* MCE command buffer */ + long signal_duration = 0; /* Singnal length in us */ + struct timeval start_time, end_time; + + do_gettimeofday(&start_time); + + count = n / sizeof(int); + + cmdbuf = kzalloc(sizeof(int) * MCE_CMDBUF_SIZE, GFP_KERNEL); + if (!cmdbuf) + return -ENOMEM; + + /* MCE tx init header */ + cmdbuf[cmdcount++] = MCE_CONTROL_HEADER; + cmdbuf[cmdcount++] = 0x08; + cmdbuf[cmdcount++] = ir->tx_mask; + + /* Generate mce packet data */ + for (i = 0; (i < count) && (cmdcount < MCE_CMDBUF_SIZE); i++) { + signal_duration += txbuf[i]; + txbuf[i] = txbuf[i] / MCE_TIME_UNIT; + + do { /* loop to support long pulses/spaces > 127*50us=6.35ms */ + + /* Insert mce packet header every 4th entry */ + if ((cmdcount < MCE_CMDBUF_SIZE) && + (cmdcount - MCE_TX_HEADER_LENGTH) % + MCE_CODE_LENGTH == 0) + cmdbuf[cmdcount++] = MCE_PACKET_HEADER; + + /* Insert mce packet data */ + if (cmdcount < MCE_CMDBUF_SIZE) + cmdbuf[cmdcount++] = + (txbuf[i] < MCE_PULSE_BIT ? + txbuf[i] : MCE_MAX_PULSE_LENGTH) | + (i & 1 ? 0x00 : MCE_PULSE_BIT); + else { + ret = -EINVAL; + goto out; + } + + } while ((txbuf[i] > MCE_MAX_PULSE_LENGTH) && + (txbuf[i] -= MCE_MAX_PULSE_LENGTH)); + } + + /* Fix packet length in last header */ + cmdbuf[cmdcount - (cmdcount - MCE_TX_HEADER_LENGTH) % MCE_CODE_LENGTH] = + 0x80 + (cmdcount - MCE_TX_HEADER_LENGTH) % MCE_CODE_LENGTH - 1; + + /* Check if we have room for the empty packet at the end */ + if (cmdcount >= MCE_CMDBUF_SIZE) { + ret = -EINVAL; + goto out; + } + + /* All mce commands end with an empty packet (0x80) */ + cmdbuf[cmdcount++] = 0x80; + + /* Transmit the command to the mce device */ + mce_async_out(ir, cmdbuf, cmdcount); + + /* + * The lircd gap calculation expects the write function to + * wait the time it takes for the ircommand to be sent before + * it returns. + */ + do_gettimeofday(&end_time); + signal_duration -= (end_time.tv_usec - start_time.tv_usec) + + (end_time.tv_sec - start_time.tv_sec) * 1000000; + + /* delay with the closest number of ticks */ + set_current_state(TASK_INTERRUPTIBLE); + schedule_timeout(usecs_to_jiffies(signal_duration)); + +out: + kfree(cmdbuf); + return ret ? ret : n; +} + +/* Sets active IR outputs -- mce devices typically (all?) have two */ +static int mceusb_set_tx_mask(void *priv, u32 mask) +{ + struct mceusb_dev *ir = priv; + + if (ir->flags.tx_mask_inverted) + ir->tx_mask = (mask != 0x03 ? mask ^ 0x03 : mask) << 1; + else + ir->tx_mask = mask; + + return 0; +} + +/* Sets the send carrier frequency and mode */ +static int mceusb_set_tx_carrier(void *priv, u32 carrier) +{ + struct mceusb_dev *ir = priv; + int clk = 10000000; + int prescaler = 0, divisor = 0; + unsigned char cmdbuf[4] = { 0x9f, 0x06, 0x00, 0x00 }; + + /* Carrier has changed */ + if (ir->carrier != carrier) { + + if (carrier == 0) { + ir->carrier = carrier; + cmdbuf[2] = 0x01; + cmdbuf[3] = 0x80; + dev_dbg(ir->dev, "%s: disabling carrier " + "modulation\n", __func__); + mce_async_out(ir, cmdbuf, sizeof(cmdbuf)); + return carrier; + } + + for (prescaler = 0; prescaler < 4; ++prescaler) { + divisor = (clk >> (2 * prescaler)) / carrier; + if (divisor <= 0xFF) { + ir->carrier = carrier; + cmdbuf[2] = prescaler; + cmdbuf[3] = divisor; + dev_dbg(ir->dev, "%s: requesting %u HZ " + "carrier\n", __func__, carrier); + + /* Transmit new carrier to mce device */ + mce_async_out(ir, cmdbuf, sizeof(cmdbuf)); + return carrier; + } + } + + return -EINVAL; + + } + + return carrier; +} + +static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len) +{ + struct ir_raw_event rawir = { .pulse = false, .duration = 0 }; + int i, start_index = 0; + u8 hdr = MCE_CONTROL_HEADER; + + /* skip meaningless 0xb1 0x60 header bytes on orig receiver */ + if (ir->flags.microsoft_gen1) + start_index = 2; + + for (i = start_index; i < buf_len;) { + if (ir->rem == 0) { + /* decode mce packets of the form (84),AA,BB,CC,DD */ + /* IR data packets can span USB messages - rem */ + hdr = ir->buf_in[i]; + ir->rem = (hdr & MCE_PACKET_LENGTH_MASK); + ir->cmd = (hdr & ~MCE_PACKET_LENGTH_MASK); + dev_dbg(ir->dev, "New data. rem: 0x%02x, cmd: 0x%02x\n", + ir->rem, ir->cmd); + i++; + } + + /* don't process MCE commands */ + if (hdr == MCE_CONTROL_HEADER || hdr == 0xff) { + ir->rem = 0; + return; + } + + for (; (ir->rem > 0) && (i < buf_len); i++) { + ir->rem--; + + rawir.pulse = ((ir->buf_in[i] & MCE_PULSE_BIT) != 0); + rawir.duration = (ir->buf_in[i] & MCE_PULSE_MASK) + * MCE_TIME_UNIT * 1000; + + if ((ir->buf_in[i] & MCE_PULSE_MASK) == 0x7f) { + if (ir->rawir.pulse == rawir.pulse) + ir->rawir.duration += rawir.duration; + else { + ir->rawir.duration = rawir.duration; + ir->rawir.pulse = rawir.pulse; + } + continue; + } + rawir.duration += ir->rawir.duration; + ir->rawir.duration = 0; + ir->rawir.pulse = rawir.pulse; + + dev_dbg(ir->dev, "Storing %s with duration %d\n", + rawir.pulse ? "pulse" : "space", + rawir.duration); + + ir_raw_event_store(ir->idev, &rawir); + } + + if (ir->buf_in[i] == 0x80 || ir->buf_in[i] == 0x9f) + ir->rem = 0; + + dev_dbg(ir->dev, "calling ir_raw_event_handle\n"); + ir_raw_event_handle(ir->idev); + } +} + +static void mceusb_dev_recv(struct urb *urb, struct pt_regs *regs) +{ + struct mceusb_dev *ir; + int buf_len; + + if (!urb) + return; + + ir = urb->context; + if (!ir) { + usb_unlink_urb(urb); + return; + } + + buf_len = urb->actual_length; + + if (debug) + mceusb_dev_printdata(ir, urb->transfer_buffer, buf_len, false); + + if (ir->send_flags == RECV_FLAG_IN_PROGRESS) { + ir->send_flags = SEND_FLAG_COMPLETE; + dev_dbg(ir->dev, "setup answer received %d bytes\n", + buf_len); + } + + switch (urb->status) { + /* success */ + case 0: + mceusb_process_ir_data(ir, buf_len); + break; + + case -ECONNRESET: + case -ENOENT: + case -ESHUTDOWN: + usb_unlink_urb(urb); + return; + + case -EPIPE: + default: + break; + } + + usb_submit_urb(urb, GFP_ATOMIC); +} + +static void mceusb_gen1_init(struct mceusb_dev *ir) +{ + int ret; + int maxp = ir->len_in; + struct device *dev = ir->dev; + char *data; + + data = kzalloc(USB_CTRL_MSG_SZ, GFP_KERNEL); + if (!data) { + dev_err(dev, "%s: memory allocation failed!\n", __func__); + return; + } + + /* + * This is a strange one. Windows issues a set address to the device + * on the receive control pipe and expect a certain value pair back + */ + ret = usb_control_msg(ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0), + USB_REQ_SET_ADDRESS, USB_TYPE_VENDOR, 0, 0, + data, USB_CTRL_MSG_SZ, HZ * 3); + dev_dbg(dev, "%s - ret = %d\n", __func__, ret); + dev_dbg(dev, "%s - data[0] = %d, data[1] = %d\n", + __func__, data[0], data[1]); + + /* set feature: bit rate 38400 bps */ + ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0), + USB_REQ_SET_FEATURE, USB_TYPE_VENDOR, + 0xc04e, 0x0000, NULL, 0, HZ * 3); + + dev_dbg(dev, "%s - ret = %d\n", __func__, ret); + + /* bRequest 4: set char length to 8 bits */ + ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0), + 4, USB_TYPE_VENDOR, + 0x0808, 0x0000, NULL, 0, HZ * 3); + dev_dbg(dev, "%s - retB = %d\n", __func__, ret); + + /* bRequest 2: set handshaking to use DTR/DSR */ + ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0), + 2, USB_TYPE_VENDOR, + 0x0000, 0x0100, NULL, 0, HZ * 3); + dev_dbg(dev, "%s - retC = %d\n", __func__, ret); + + /* device reset */ + mce_async_out(ir, DEVICE_RESET, sizeof(DEVICE_RESET)); + mce_sync_in(ir, NULL, maxp); + + /* get hw/sw revision? */ + mce_async_out(ir, GET_REVISION, sizeof(GET_REVISION)); + mce_sync_in(ir, NULL, maxp); + + kfree(data); +}; + +static void mceusb_gen2_init(struct mceusb_dev *ir) +{ + int maxp = ir->len_in; + + /* device reset */ + mce_async_out(ir, DEVICE_RESET, sizeof(DEVICE_RESET)); + mce_sync_in(ir, NULL, maxp); + + /* get hw/sw revision? */ + mce_async_out(ir, GET_REVISION, sizeof(GET_REVISION)); + mce_sync_in(ir, NULL, maxp); + + /* unknown what the next two actually return... */ + mce_async_out(ir, GET_UNKNOWN, sizeof(GET_UNKNOWN)); + mce_sync_in(ir, NULL, maxp); + mce_async_out(ir, GET_UNKNOWN2, sizeof(GET_UNKNOWN2)); + mce_sync_in(ir, NULL, maxp); +} + +static void mceusb_get_parameters(struct mceusb_dev *ir) +{ + int maxp = ir->len_in; + + /* get the carrier and frequency */ + mce_async_out(ir, GET_CARRIER_FREQ, sizeof(GET_CARRIER_FREQ)); + mce_sync_in(ir, NULL, maxp); + + /* get the transmitter bitmask */ + mce_async_out(ir, GET_TX_BITMASK, sizeof(GET_TX_BITMASK)); + mce_sync_in(ir, NULL, maxp); + + /* get receiver timeout value */ + mce_async_out(ir, GET_RX_TIMEOUT, sizeof(GET_RX_TIMEOUT)); + mce_sync_in(ir, NULL, maxp); + + /* get receiver sensor setting */ + mce_async_out(ir, GET_RX_SENSOR, sizeof(GET_RX_SENSOR)); + mce_sync_in(ir, NULL, maxp); +} + +static struct input_dev *mceusb_init_input_dev(struct mceusb_dev *ir) +{ + struct input_dev *idev; + struct ir_dev_props *props; + struct device *dev = ir->dev; + int ret = -ENODEV; + + idev = input_allocate_device(); + if (!idev) { + dev_err(dev, "remote input dev allocation failed\n"); + goto idev_alloc_failed; + } + + ret = -ENOMEM; + props = kzalloc(sizeof(struct ir_dev_props), GFP_KERNEL); + if (!props) { + dev_err(dev, "remote ir dev props allocation failed\n"); + goto props_alloc_failed; + } + + snprintf(ir->name, sizeof(ir->name), "Media Center Ed. eHome " + "Infrared Remote Transceiver (%04x:%04x)", + le16_to_cpu(ir->usbdev->descriptor.idVendor), + le16_to_cpu(ir->usbdev->descriptor.idProduct)); + + idev->name = ir->name; + usb_make_path(ir->usbdev, ir->phys, sizeof(ir->phys)); + strlcat(ir->phys, "/input0", sizeof(ir->phys)); + idev->phys = ir->phys; + + props->priv = ir; + props->driver_type = RC_DRIVER_IR_RAW; + props->allowed_protos = IR_TYPE_ALL; + props->s_tx_mask = mceusb_set_tx_mask; + props->s_tx_carrier = mceusb_set_tx_carrier; + props->tx_ir = mceusb_tx_ir; + + ir->props = props; + + ret = ir_input_register(idev, RC_MAP_RC6_MCE, props, DRIVER_NAME); + if (ret < 0) { + dev_err(dev, "remote input device register failed\n"); + goto irdev_failed; + } + + return idev; + +irdev_failed: + kfree(props); +props_alloc_failed: + input_free_device(idev); +idev_alloc_failed: + return NULL; +} + +static int __devinit mceusb_dev_probe(struct usb_interface *intf, + const struct usb_device_id *id) +{ + struct usb_device *dev = interface_to_usbdev(intf); + struct usb_host_interface *idesc; + struct usb_endpoint_descriptor *ep = NULL; + struct usb_endpoint_descriptor *ep_in = NULL; + struct usb_endpoint_descriptor *ep_out = NULL; + struct usb_host_config *config; + struct mceusb_dev *ir = NULL; + int pipe, maxp, i; + char buf[63], name[128] = ""; + bool is_gen3; + bool is_microsoft_gen1; + bool tx_mask_inverted; + + dev_dbg(&intf->dev, ": %s called\n", __func__); + + config = dev->actconfig; + idesc = intf->cur_altsetting; + + is_gen3 = usb_match_id(intf, gen3_list) ? 1 : 0; + is_microsoft_gen1 = usb_match_id(intf, microsoft_gen1_list) ? 1 : 0; + tx_mask_inverted = usb_match_id(intf, std_tx_mask_list) ? 0 : 1; + + /* step through the endpoints to find first bulk in and out endpoint */ + for (i = 0; i < idesc->desc.bNumEndpoints; ++i) { + ep = &idesc->endpoint[i].desc; + + if ((ep_in == NULL) + && ((ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK) + == USB_DIR_IN) + && (((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) + == USB_ENDPOINT_XFER_BULK) + || ((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) + == USB_ENDPOINT_XFER_INT))) { + + ep_in = ep; + ep_in->bmAttributes = USB_ENDPOINT_XFER_INT; + ep_in->bInterval = 1; + dev_dbg(&intf->dev, ": acceptable inbound endpoint " + "found\n"); + } + + if ((ep_out == NULL) + && ((ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK) + == USB_DIR_OUT) + && (((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) + == USB_ENDPOINT_XFER_BULK) + || ((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) + == USB_ENDPOINT_XFER_INT))) { + + ep_out = ep; + ep_out->bmAttributes = USB_ENDPOINT_XFER_INT; + ep_out->bInterval = 1; + dev_dbg(&intf->dev, ": acceptable outbound endpoint " + "found\n"); + } + } + if (ep_in == NULL) { + dev_dbg(&intf->dev, ": inbound and/or endpoint not found\n"); + return -ENODEV; + } + + pipe = usb_rcvintpipe(dev, ep_in->bEndpointAddress); + maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe)); + + ir = kzalloc(sizeof(struct mceusb_dev), GFP_KERNEL); + if (!ir) + goto mem_alloc_fail; + + ir->buf_in = usb_alloc_coherent(dev, maxp, GFP_ATOMIC, &ir->dma_in); + if (!ir->buf_in) + goto buf_in_alloc_fail; + + ir->urb_in = usb_alloc_urb(0, GFP_KERNEL); + if (!ir->urb_in) + goto urb_in_alloc_fail; + + ir->usbdev = dev; + ir->dev = &intf->dev; + ir->len_in = maxp; + ir->flags.microsoft_gen1 = is_microsoft_gen1; + ir->flags.tx_mask_inverted = tx_mask_inverted; + + /* Saving usb interface data for use by the transmitter routine */ + ir->usb_ep_in = ep_in; + ir->usb_ep_out = ep_out; + + if (dev->descriptor.iManufacturer + && usb_string(dev, dev->descriptor.iManufacturer, + buf, sizeof(buf)) > 0) + strlcpy(name, buf, sizeof(name)); + if (dev->descriptor.iProduct + && usb_string(dev, dev->descriptor.iProduct, + buf, sizeof(buf)) > 0) + snprintf(name + strlen(name), sizeof(name) - strlen(name), + " %s", buf); + + ir->idev = mceusb_init_input_dev(ir); + if (!ir->idev) + goto input_dev_fail; + + /* flush buffers on the device */ + mce_sync_in(ir, NULL, maxp); + mce_sync_in(ir, NULL, maxp); + + /* wire up inbound data handler */ + usb_fill_int_urb(ir->urb_in, dev, pipe, ir->buf_in, + maxp, (usb_complete_t) mceusb_dev_recv, ir, ep_in->bInterval); + ir->urb_in->transfer_dma = ir->dma_in; + ir->urb_in->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; + + /* initialize device */ + if (ir->flags.microsoft_gen1) + mceusb_gen1_init(ir); + else if (!is_gen3) + mceusb_gen2_init(ir); + + mceusb_get_parameters(ir); + + mceusb_set_tx_mask(ir, MCE_DEFAULT_TX_MASK); + + usb_set_intfdata(intf, ir); + + dev_info(&intf->dev, "Registered %s on usb%d:%d\n", name, + dev->bus->busnum, dev->devnum); + + return 0; + + /* Error-handling path */ +input_dev_fail: + usb_free_urb(ir->urb_in); +urb_in_alloc_fail: + usb_free_coherent(dev, maxp, ir->buf_in, ir->dma_in); +buf_in_alloc_fail: + kfree(ir); +mem_alloc_fail: + dev_err(&intf->dev, "%s: device setup failed!\n", __func__); + + return -ENOMEM; +} + + +static void __devexit mceusb_dev_disconnect(struct usb_interface *intf) +{ + struct usb_device *dev = interface_to_usbdev(intf); + struct mceusb_dev *ir = usb_get_intfdata(intf); + + usb_set_intfdata(intf, NULL); + + if (!ir) + return; + + ir->usbdev = NULL; + ir_input_unregister(ir->idev); + usb_kill_urb(ir->urb_in); + usb_free_urb(ir->urb_in); + usb_free_coherent(dev, ir->len_in, ir->buf_in, ir->dma_in); + + kfree(ir); +} + +static int mceusb_dev_suspend(struct usb_interface *intf, pm_message_t message) +{ + struct mceusb_dev *ir = usb_get_intfdata(intf); + dev_info(ir->dev, "suspend\n"); + usb_kill_urb(ir->urb_in); + return 0; +} + +static int mceusb_dev_resume(struct usb_interface *intf) +{ + struct mceusb_dev *ir = usb_get_intfdata(intf); + dev_info(ir->dev, "resume\n"); + if (usb_submit_urb(ir->urb_in, GFP_ATOMIC)) + return -EIO; + return 0; +} + +static struct usb_driver mceusb_dev_driver = { + .name = DRIVER_NAME, + .probe = mceusb_dev_probe, + .disconnect = mceusb_dev_disconnect, + .suspend = mceusb_dev_suspend, + .resume = mceusb_dev_resume, + .reset_resume = mceusb_dev_resume, + .id_table = mceusb_dev_table +}; + +static int __init mceusb_dev_init(void) +{ + int ret; + + ret = usb_register(&mceusb_dev_driver); + if (ret < 0) + printk(KERN_ERR DRIVER_NAME + ": usb register failed, result = %d\n", ret); + + return ret; +} + +static void __exit mceusb_dev_exit(void) +{ + usb_deregister(&mceusb_dev_driver); +} + +module_init(mceusb_dev_init); +module_exit(mceusb_dev_exit); + +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_AUTHOR(DRIVER_AUTHOR); +MODULE_LICENSE("GPL"); +MODULE_DEVICE_TABLE(usb, mceusb_dev_table); + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Debug enabled or not"); --- linux-2.6.35.orig/drivers/media/IR/ir-jvc-decoder.c +++ linux-2.6.35/drivers/media/IR/ir-jvc-decoder.c @@ -25,10 +25,6 @@ #define JVC_TRAILER_PULSE (1 * JVC_UNIT) #define JVC_TRAILER_SPACE (35 * JVC_UNIT) -/* Used to register jvc_decoder clients */ -static LIST_HEAD(decoder_list); -DEFINE_SPINLOCK(decoder_lock); - enum jvc_state { STATE_INACTIVE, STATE_HEADER_SPACE, @@ -38,87 +34,6 @@ STATE_TRAILER_SPACE, }; -struct decoder_data { - struct list_head list; - struct ir_input_dev *ir_dev; - int enabled:1; - - /* State machine control */ - enum jvc_state state; - u16 jvc_bits; - u16 jvc_old_bits; - unsigned count; - bool first; - bool toggle; -}; - - -/** - * get_decoder_data() - gets decoder data - * @input_dev: input device - * - * Returns the struct decoder_data that corresponds to a device - */ -static struct decoder_data *get_decoder_data(struct ir_input_dev *ir_dev) -{ - struct decoder_data *data = NULL; - - spin_lock(&decoder_lock); - list_for_each_entry(data, &decoder_list, list) { - if (data->ir_dev == ir_dev) - break; - } - spin_unlock(&decoder_lock); - return data; -} - -static ssize_t store_enabled(struct device *d, - struct device_attribute *mattr, - const char *buf, - size_t len) -{ - unsigned long value; - struct ir_input_dev *ir_dev = dev_get_drvdata(d); - struct decoder_data *data = get_decoder_data(ir_dev); - - if (!data) - return -EINVAL; - - if (strict_strtoul(buf, 10, &value) || value > 1) - return -EINVAL; - - data->enabled = value; - - return len; -} - -static ssize_t show_enabled(struct device *d, - struct device_attribute *mattr, char *buf) -{ - struct ir_input_dev *ir_dev = dev_get_drvdata(d); - struct decoder_data *data = get_decoder_data(ir_dev); - - if (!data) - return -EINVAL; - - if (data->enabled) - return sprintf(buf, "1\n"); - else - return sprintf(buf, "0\n"); -} - -static DEVICE_ATTR(enabled, S_IRUGO | S_IWUSR, show_enabled, store_enabled); - -static struct attribute *decoder_attributes[] = { - &dev_attr_enabled.attr, - NULL -}; - -static struct attribute_group decoder_attribute_group = { - .name = "jvc_decoder", - .attrs = decoder_attributes, -}; - /** * ir_jvc_decode() - Decode one JVC pulse or space * @input_dev: the struct input_dev descriptor of the device @@ -128,14 +43,10 @@ */ static int ir_jvc_decode(struct input_dev *input_dev, struct ir_raw_event ev) { - struct decoder_data *data; struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); + struct jvc_dec *data = &ir_dev->raw->jvc; - data = get_decoder_data(ir_dev); - if (!data) - return -EINVAL; - - if (!data->enabled) + if (!(ir_dev->raw->enabled_protocols & IR_TYPE_JVC)) return 0; if (IS_RESET(ev)) { @@ -188,9 +99,9 @@ if (ev.pulse) break; - data->jvc_bits <<= 1; + data->bits <<= 1; if (eq_margin(ev.duration, JVC_BIT_1_SPACE, JVC_UNIT / 2)) { - data->jvc_bits |= 1; + data->bits |= 1; decrease_duration(&ev, JVC_BIT_1_SPACE); } else if (eq_margin(ev.duration, JVC_BIT_0_SPACE, JVC_UNIT / 2)) decrease_duration(&ev, JVC_BIT_0_SPACE); @@ -223,13 +134,13 @@ if (data->first) { u32 scancode; - scancode = (bitrev8((data->jvc_bits >> 8) & 0xff) << 8) | - (bitrev8((data->jvc_bits >> 0) & 0xff) << 0); + scancode = (bitrev8((data->bits >> 8) & 0xff) << 8) | + (bitrev8((data->bits >> 0) & 0xff) << 0); IR_dprintk(1, "JVC scancode 0x%04x\n", scancode); ir_keydown(input_dev, scancode, data->toggle); data->first = false; - data->jvc_old_bits = data->jvc_bits; - } else if (data->jvc_bits == data->jvc_old_bits) { + data->old_bits = data->bits; + } else if (data->bits == data->old_bits) { IR_dprintk(1, "JVC repeat\n"); ir_repeat(input_dev); } else { @@ -249,54 +160,9 @@ return -EINVAL; } -static int ir_jvc_register(struct input_dev *input_dev) -{ - struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); - struct decoder_data *data; - int rc; - - rc = sysfs_create_group(&ir_dev->dev.kobj, &decoder_attribute_group); - if (rc < 0) - return rc; - - data = kzalloc(sizeof(*data), GFP_KERNEL); - if (!data) { - sysfs_remove_group(&ir_dev->dev.kobj, &decoder_attribute_group); - return -ENOMEM; - } - - data->ir_dev = ir_dev; - data->enabled = 1; - - spin_lock(&decoder_lock); - list_add_tail(&data->list, &decoder_list); - spin_unlock(&decoder_lock); - - return 0; -} - -static int ir_jvc_unregister(struct input_dev *input_dev) -{ - struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); - static struct decoder_data *data; - - data = get_decoder_data(ir_dev); - if (!data) - return 0; - - sysfs_remove_group(&ir_dev->dev.kobj, &decoder_attribute_group); - - spin_lock(&decoder_lock); - list_del(&data->list); - spin_unlock(&decoder_lock); - - return 0; -} - static struct ir_raw_handler jvc_handler = { + .protocols = IR_TYPE_JVC, .decode = ir_jvc_decode, - .raw_register = ir_jvc_register, - .raw_unregister = ir_jvc_unregister, }; static int __init ir_jvc_decode_init(void) --- linux-2.6.35.orig/drivers/media/IR/ir-rc5-sz-decoder.c +++ linux-2.6.35/drivers/media/IR/ir-rc5-sz-decoder.c @@ -0,0 +1,153 @@ +/* ir-rc5-sz-decoder.c - handle RC5 Streamzap IR Pulse/Space protocol + * + * Copyright (C) 2010 by Mauro Carvalho Chehab + * Copyright (C) 2010 by Jarod Wilson + * + * This program is free software; 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. + */ + +/* + * This code handles the 15 bit RC5-ish protocol used by the Streamzap + * PC Remote. + * It considers a carrier of 36 kHz, with a total of 15 bits, where + * the first two bits are start bits, and a third one is a filing bit + */ + +#include "ir-core-priv.h" + +#define RC5_SZ_NBITS 15 +#define RC5_UNIT 888888 /* ns */ +#define RC5_BIT_START (1 * RC5_UNIT) +#define RC5_BIT_END (1 * RC5_UNIT) + +enum rc5_sz_state { + STATE_INACTIVE, + STATE_BIT_START, + STATE_BIT_END, + STATE_FINISHED, +}; + +/** + * ir_rc5_sz_decode() - Decode one RC-5 Streamzap pulse or space + * @input_dev: the struct input_dev descriptor of the device + * @ev: the struct ir_raw_event descriptor of the pulse/space + * + * This function returns -EINVAL if the pulse violates the state machine + */ +static int ir_rc5_sz_decode(struct input_dev *input_dev, struct ir_raw_event ev) +{ + struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); + struct rc5_sz_dec *data = &ir_dev->raw->rc5_sz; + u8 toggle, command, system; + u32 scancode; + + if (!(ir_dev->raw->enabled_protocols & IR_TYPE_RC5_SZ)) + return 0; + + if (IS_RESET(ev)) { + data->state = STATE_INACTIVE; + return 0; + } + + if (!geq_margin(ev.duration, RC5_UNIT, RC5_UNIT / 2)) + goto out; + +again: + IR_dprintk(2, "RC5-sz decode started at state %i (%uus %s)\n", + data->state, TO_US(ev.duration), TO_STR(ev.pulse)); + + if (!geq_margin(ev.duration, RC5_UNIT, RC5_UNIT / 2)) + return 0; + + switch (data->state) { + + case STATE_INACTIVE: + if (!ev.pulse) + break; + + data->state = STATE_BIT_START; + data->count = 1; + data->wanted_bits = RC5_SZ_NBITS; + decrease_duration(&ev, RC5_BIT_START); + goto again; + + case STATE_BIT_START: + if (!eq_margin(ev.duration, RC5_BIT_START, RC5_UNIT / 2)) + break; + + data->bits <<= 1; + if (!ev.pulse) + data->bits |= 1; + data->count++; + data->state = STATE_BIT_END; + return 0; + + case STATE_BIT_END: + if (!is_transition(&ev, &ir_dev->raw->prev_ev)) + break; + + if (data->count == data->wanted_bits) + data->state = STATE_FINISHED; + else + data->state = STATE_BIT_START; + + decrease_duration(&ev, RC5_BIT_END); + goto again; + + case STATE_FINISHED: + if (ev.pulse) + break; + + /* RC5-sz */ + command = (data->bits & 0x0003F) >> 0; + system = (data->bits & 0x02FC0) >> 6; + toggle = (data->bits & 0x01000) ? 1 : 0; + scancode = system << 6 | command; + + IR_dprintk(1, "RC5-sz scancode 0x%04x (toggle: %u)\n", + scancode, toggle); + + ir_keydown(input_dev, scancode, toggle); + data->state = STATE_INACTIVE; + return 0; + } + +out: + IR_dprintk(1, "RC5-sz decode failed at state %i (%uus %s)\n", + data->state, TO_US(ev.duration), TO_STR(ev.pulse)); + data->state = STATE_INACTIVE; + return -EINVAL; +} + +static struct ir_raw_handler rc5_sz_handler = { + .protocols = IR_TYPE_RC5_SZ, + .decode = ir_rc5_sz_decode, +}; + +static int __init ir_rc5_sz_decode_init(void) +{ + ir_raw_handler_register(&rc5_sz_handler); + + printk(KERN_INFO "IR RC5 (streamzap) protocol handler initialized\n"); + return 0; +} + +static void __exit ir_rc5_sz_decode_exit(void) +{ + ir_raw_handler_unregister(&rc5_sz_handler); +} + +module_init(ir_rc5_sz_decode_init); +module_exit(ir_rc5_sz_decode_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Jarod Wilson "); +MODULE_AUTHOR("Red Hat Inc. (http://www.redhat.com)"); +MODULE_DESCRIPTION("RC5 (streamzap) IR protocol decoder"); --- linux-2.6.35.orig/drivers/media/IR/ir-rc5-decoder.c +++ linux-2.6.35/drivers/media/IR/ir-rc5-decoder.c @@ -30,10 +30,6 @@ #define RC5_BIT_END (1 * RC5_UNIT) #define RC5X_SPACE (4 * RC5_UNIT) -/* Used to register rc5_decoder clients */ -static LIST_HEAD(decoder_list); -static DEFINE_SPINLOCK(decoder_lock); - enum rc5_state { STATE_INACTIVE, STATE_BIT_START, @@ -42,87 +38,6 @@ STATE_FINISHED, }; -struct decoder_data { - struct list_head list; - struct ir_input_dev *ir_dev; - int enabled:1; - - /* State machine control */ - enum rc5_state state; - u32 rc5_bits; - struct ir_raw_event prev_ev; - unsigned count; - unsigned wanted_bits; -}; - - -/** - * get_decoder_data() - gets decoder data - * @input_dev: input device - * - * Returns the struct decoder_data that corresponds to a device - */ - -static struct decoder_data *get_decoder_data(struct ir_input_dev *ir_dev) -{ - struct decoder_data *data = NULL; - - spin_lock(&decoder_lock); - list_for_each_entry(data, &decoder_list, list) { - if (data->ir_dev == ir_dev) - break; - } - spin_unlock(&decoder_lock); - return data; -} - -static ssize_t store_enabled(struct device *d, - struct device_attribute *mattr, - const char *buf, - size_t len) -{ - unsigned long value; - struct ir_input_dev *ir_dev = dev_get_drvdata(d); - struct decoder_data *data = get_decoder_data(ir_dev); - - if (!data) - return -EINVAL; - - if (strict_strtoul(buf, 10, &value) || value > 1) - return -EINVAL; - - data->enabled = value; - - return len; -} - -static ssize_t show_enabled(struct device *d, - struct device_attribute *mattr, char *buf) -{ - struct ir_input_dev *ir_dev = dev_get_drvdata(d); - struct decoder_data *data = get_decoder_data(ir_dev); - - if (!data) - return -EINVAL; - - if (data->enabled) - return sprintf(buf, "1\n"); - else - return sprintf(buf, "0\n"); -} - -static DEVICE_ATTR(enabled, S_IRUGO | S_IWUSR, show_enabled, store_enabled); - -static struct attribute *decoder_attributes[] = { - &dev_attr_enabled.attr, - NULL -}; - -static struct attribute_group decoder_attribute_group = { - .name = "rc5_decoder", - .attrs = decoder_attributes, -}; - /** * ir_rc5_decode() - Decode one RC-5 pulse or space * @input_dev: the struct input_dev descriptor of the device @@ -132,17 +47,13 @@ */ static int ir_rc5_decode(struct input_dev *input_dev, struct ir_raw_event ev) { - struct decoder_data *data; struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); + struct rc5_dec *data = &ir_dev->raw->rc5; u8 toggle; u32 scancode; - data = get_decoder_data(ir_dev); - if (!data) - return -EINVAL; - - if (!data->enabled) - return 0; + if (!(ir_dev->raw->enabled_protocols & IR_TYPE_RC5)) + return 0; if (IS_RESET(ev)) { data->state = STATE_INACTIVE; @@ -176,16 +87,15 @@ if (!eq_margin(ev.duration, RC5_BIT_START, RC5_UNIT / 2)) break; - data->rc5_bits <<= 1; + data->bits <<= 1; if (!ev.pulse) - data->rc5_bits |= 1; + data->bits |= 1; data->count++; - data->prev_ev = ev; data->state = STATE_BIT_END; return 0; case STATE_BIT_END: - if (!is_transition(&ev, &data->prev_ev)) + if (!is_transition(&ev, &ir_dev->raw->prev_ev)) break; if (data->count == data->wanted_bits) @@ -217,11 +127,11 @@ if (data->wanted_bits == RC5X_NBITS) { /* RC5X */ u8 xdata, command, system; - xdata = (data->rc5_bits & 0x0003F) >> 0; - command = (data->rc5_bits & 0x00FC0) >> 6; - system = (data->rc5_bits & 0x1F000) >> 12; - toggle = (data->rc5_bits & 0x20000) ? 1 : 0; - command += (data->rc5_bits & 0x01000) ? 0 : 0x40; + xdata = (data->bits & 0x0003F) >> 0; + command = (data->bits & 0x00FC0) >> 6; + system = (data->bits & 0x1F000) >> 12; + toggle = (data->bits & 0x20000) ? 1 : 0; + command += (data->bits & 0x01000) ? 0 : 0x40; scancode = system << 16 | command << 8 | xdata; IR_dprintk(1, "RC5X scancode 0x%06x (toggle: %u)\n", @@ -230,10 +140,10 @@ } else { /* RC5 */ u8 command, system; - command = (data->rc5_bits & 0x0003F) >> 0; - system = (data->rc5_bits & 0x007C0) >> 6; - toggle = (data->rc5_bits & 0x00800) ? 1 : 0; - command += (data->rc5_bits & 0x01000) ? 0 : 0x40; + command = (data->bits & 0x0003F) >> 0; + system = (data->bits & 0x007C0) >> 6; + toggle = (data->bits & 0x00800) ? 1 : 0; + command += (data->bits & 0x01000) ? 0 : 0x40; scancode = system << 8 | command; IR_dprintk(1, "RC5 scancode 0x%04x (toggle: %u)\n", @@ -252,54 +162,9 @@ return -EINVAL; } -static int ir_rc5_register(struct input_dev *input_dev) -{ - struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); - struct decoder_data *data; - int rc; - - rc = sysfs_create_group(&ir_dev->dev.kobj, &decoder_attribute_group); - if (rc < 0) - return rc; - - data = kzalloc(sizeof(*data), GFP_KERNEL); - if (!data) { - sysfs_remove_group(&ir_dev->dev.kobj, &decoder_attribute_group); - return -ENOMEM; - } - - data->ir_dev = ir_dev; - data->enabled = 1; - - spin_lock(&decoder_lock); - list_add_tail(&data->list, &decoder_list); - spin_unlock(&decoder_lock); - - return 0; -} - -static int ir_rc5_unregister(struct input_dev *input_dev) -{ - struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); - static struct decoder_data *data; - - data = get_decoder_data(ir_dev); - if (!data) - return 0; - - sysfs_remove_group(&ir_dev->dev.kobj, &decoder_attribute_group); - - spin_lock(&decoder_lock); - list_del(&data->list); - spin_unlock(&decoder_lock); - - return 0; -} - static struct ir_raw_handler rc5_handler = { + .protocols = IR_TYPE_RC5, .decode = ir_rc5_decode, - .raw_register = ir_rc5_register, - .raw_unregister = ir_rc5_unregister, }; static int __init ir_rc5_decode_init(void) --- linux-2.6.35.orig/drivers/media/IR/imon.c +++ linux-2.6.35/drivers/media/IR/imon.c @@ -87,7 +87,6 @@ struct imon_context { struct device *dev; struct ir_dev_props *props; - struct ir_input_dev *ir; /* Newer devices have two interfaces */ struct usb_device *usbdev_intf0; struct usb_device *usbdev_intf1; @@ -1656,7 +1655,6 @@ { struct input_dev *idev; struct ir_dev_props *props; - struct ir_input_dev *ir; int ret, i; idev = input_allocate_device(); @@ -1671,12 +1669,6 @@ goto props_alloc_failed; } - ir = kzalloc(sizeof(struct ir_input_dev), GFP_KERNEL); - if (!ir) { - dev_err(ictx->dev, "remote ir input dev allocation failed\n"); - goto ir_dev_alloc_failed; - } - snprintf(ictx->name_idev, sizeof(ictx->name_idev), "iMON Remote (%04x:%04x)", ictx->vendor, ictx->product); idev->name = ictx->name_idev; @@ -1706,14 +1698,9 @@ props->change_protocol = imon_ir_change_protocol; ictx->props = props; - ictx->ir = ir; - memcpy(&ir->dev, ictx->dev, sizeof(struct device)); - usb_to_input_id(ictx->usbdev_intf0, &idev->id); idev->dev.parent = ictx->dev; - input_set_drvdata(idev, ir); - ret = ir_input_register(idev, RC_MAP_IMON_PAD, props, MOD_NAME); if (ret < 0) { dev_err(ictx->dev, "remote input dev register failed\n"); @@ -1723,8 +1710,6 @@ return idev; idev_register_failed: - kfree(ir); -ir_dev_alloc_failed: kfree(props); props_alloc_failed: input_free_device(idev); @@ -1943,8 +1928,7 @@ return ictx; urb_submit_failed: - input_unregister_device(ictx->idev); - input_free_device(ictx->idev); + ir_input_unregister(ictx->idev); idev_setup_failed: find_endpoint_failed: mutex_unlock(&ictx->lock); @@ -2014,10 +1998,8 @@ return ictx; urb_submit_failed: - if (ictx->touch) { + if (ictx->touch) input_unregister_device(ictx->touch); - input_free_device(ictx->touch); - } touch_setup_failed: find_endpoint_failed: mutex_unlock(&ictx->lock); @@ -2067,6 +2049,7 @@ detected_display_type = IMON_DISPLAY_TYPE_VFD; break; /* iMON LCD, MCE IR */ + case 0x9e: case 0x9f: dev_info(ictx->dev, "0xffdc iMON LCD, MCE IR"); detected_display_type = IMON_DISPLAY_TYPE_LCD; @@ -2306,7 +2289,7 @@ if (ifnum == 0) { ictx->dev_present_intf0 = false; usb_kill_urb(ictx->rx_urb_intf0); - input_unregister_device(ictx->idev); + ir_input_unregister(ictx->idev); if (ictx->display_supported) { if (ictx->display_type == IMON_DISPLAY_TYPE_LCD) usb_deregister_dev(interface, &imon_lcd_class); --- linux-2.6.35.orig/drivers/media/IR/ir-sysfs.c +++ linux-2.6.35/drivers/media/IR/ir-sysfs.c @@ -34,122 +34,198 @@ }; /** - * show_protocol() - shows the current IR protocol + * show_protocols() - shows the current IR protocol(s) * @d: the device descriptor * @mattr: the device attribute struct (unused) * @buf: a pointer to the output buffer * - * This routine is a callback routine for input read the IR protocol type. - * it is trigged by reading /sys/class/rc/rc?/current_protocol. - * It returns the protocol name, as understood by the driver. + * This routine is a callback routine for input read the IR protocol type(s). + * it is trigged by reading /sys/class/rc/rc?/protocols. + * It returns the protocol names of supported protocols. + * Enabled protocols are printed in brackets. */ -static ssize_t show_protocol(struct device *d, - struct device_attribute *mattr, char *buf) +static ssize_t show_protocols(struct device *d, + struct device_attribute *mattr, char *buf) { - char *s; struct ir_input_dev *ir_dev = dev_get_drvdata(d); - u64 ir_type = ir_dev->rc_tab.ir_type; + u64 allowed, enabled; + char *tmp = buf; - IR_dprintk(1, "Current protocol is %lld\n", (long long)ir_type); - - /* FIXME: doesn't support multiple protocols at the same time */ - if (ir_type == IR_TYPE_UNKNOWN) - s = "Unknown"; - else if (ir_type == IR_TYPE_RC5) - s = "rc-5"; - else if (ir_type == IR_TYPE_NEC) - s = "nec"; - else if (ir_type == IR_TYPE_RC6) - s = "rc6"; - else if (ir_type == IR_TYPE_JVC) - s = "jvc"; - else if (ir_type == IR_TYPE_SONY) - s = "sony"; - else - s = "other"; + if (ir_dev->props && ir_dev->props->driver_type == RC_DRIVER_SCANCODE) { + enabled = ir_dev->rc_tab.ir_type; + allowed = ir_dev->props->allowed_protos; + } else if (ir_dev->raw) { + enabled = ir_dev->raw->enabled_protocols; + allowed = ir_raw_get_allowed_protocols(); + } else + return sprintf(tmp, "[builtin]\n"); - return sprintf(buf, "%s\n", s); + IR_dprintk(1, "allowed - 0x%llx, enabled - 0x%llx\n", + (long long)allowed, + (long long)enabled); + + if (allowed & enabled & IR_TYPE_UNKNOWN) + tmp += sprintf(tmp, "[unknown] "); + else if (allowed & IR_TYPE_UNKNOWN) + tmp += sprintf(tmp, "unknown "); + + if (allowed & enabled & IR_TYPE_RC5) + tmp += sprintf(tmp, "[rc5] "); + else if (allowed & IR_TYPE_RC5) + tmp += sprintf(tmp, "rc5 "); + + if (allowed & enabled & IR_TYPE_NEC) + tmp += sprintf(tmp, "[nec] "); + else if (allowed & IR_TYPE_NEC) + tmp += sprintf(tmp, "nec "); + + if (allowed & enabled & IR_TYPE_RC6) + tmp += sprintf(tmp, "[rc6] "); + else if (allowed & IR_TYPE_RC6) + tmp += sprintf(tmp, "rc6 "); + + if (allowed & enabled & IR_TYPE_JVC) + tmp += sprintf(tmp, "[jvc] "); + else if (allowed & IR_TYPE_JVC) + tmp += sprintf(tmp, "jvc "); + + if (allowed & enabled & IR_TYPE_SONY) + tmp += sprintf(tmp, "[sony] "); + else if (allowed & IR_TYPE_SONY) + tmp += sprintf(tmp, "sony "); + + if (allowed & enabled & IR_TYPE_RC5_SZ) + tmp += sprintf(tmp, "[rc5sz] "); + else if (allowed & IR_TYPE_RC5_SZ) + tmp += sprintf(tmp, "rc5sz "); + + if (allowed & enabled & IR_TYPE_LIRC) + tmp += sprintf(tmp, "[lirc] "); + else if (allowed & IR_TYPE_LIRC) + tmp += sprintf(tmp, "lirc "); + + if (tmp != buf) + tmp--; + *tmp = '\n'; + return tmp + 1 - buf; } /** - * store_protocol() - shows the current IR protocol + * store_protocols() - changes the current IR protocol(s) * @d: the device descriptor * @mattr: the device attribute struct (unused) * @buf: a pointer to the input buffer * @len: length of the input buffer * * This routine is a callback routine for changing the IR protocol type. - * it is trigged by reading /sys/class/rc/rc?/current_protocol. - * It changes the IR the protocol name, if the IR type is recognized - * by the driver. - * If an unknown protocol name is used, returns -EINVAL. + * It is trigged by writing to /sys/class/rc/rc?/protocols. + * Writing "+proto" will add a protocol to the list of enabled protocols. + * Writing "-proto" will remove a protocol from the list of enabled protocols. + * Writing "proto" will enable only "proto". + * Returns -EINVAL if an invalid protocol combination or unknown protocol name + * is used, otherwise @len. */ -static ssize_t store_protocol(struct device *d, - struct device_attribute *mattr, - const char *data, - size_t len) +static ssize_t store_protocols(struct device *d, + struct device_attribute *mattr, + const char *data, + size_t len) { struct ir_input_dev *ir_dev = dev_get_drvdata(d); - u64 ir_type = 0; - int rc = -EINVAL; + bool enable, disable; + const char *tmp; + u64 type; + u64 mask; + int rc; unsigned long flags; - char *buf; - while ((buf = strsep((char **) &data, " \n")) != NULL) { - if (!strcasecmp(buf, "rc-5") || !strcasecmp(buf, "rc5")) - ir_type |= IR_TYPE_RC5; - if (!strcasecmp(buf, "nec")) - ir_type |= IR_TYPE_NEC; - if (!strcasecmp(buf, "jvc")) - ir_type |= IR_TYPE_JVC; - if (!strcasecmp(buf, "sony")) - ir_type |= IR_TYPE_SONY; + if (!ir_dev->props && !ir_dev->raw) + return -EINVAL; + + tmp = skip_spaces(data); + + if (*tmp == '+') { + enable = true; + disable = false; + tmp++; + } else if (*tmp == '-') { + enable = false; + disable = true; + tmp++; + } else { + enable = false; + disable = false; } - if (!ir_type) { + if (!strncasecmp(tmp, "unknown", 7)) { + tmp += 7; + mask = IR_TYPE_UNKNOWN; + } else if (!strncasecmp(tmp, "rc5", 3)) { + tmp += 3; + mask = IR_TYPE_RC5; + } else if (!strncasecmp(tmp, "nec", 3)) { + tmp += 3; + mask = IR_TYPE_NEC; + } else if (!strncasecmp(tmp, "rc6", 3)) { + tmp += 3; + mask = IR_TYPE_RC6; + } else if (!strncasecmp(tmp, "jvc", 3)) { + tmp += 3; + mask = IR_TYPE_JVC; + } else if (!strncasecmp(tmp, "sony", 4)) { + tmp += 4; + mask = IR_TYPE_SONY; + } else if (!strncasecmp(tmp, "rc5sz", 5)) { + tmp += 5; + mask = IR_TYPE_RC5_SZ; + } else if (!strncasecmp(tmp, "lirc", 4)) { + tmp += 4; + mask = IR_TYPE_LIRC; + } else { IR_dprintk(1, "Unknown protocol\n"); return -EINVAL; } - if (ir_dev->props && ir_dev->props->change_protocol) - rc = ir_dev->props->change_protocol(ir_dev->props->priv, - ir_type); - - if (rc < 0) { - IR_dprintk(1, "Error setting protocol to %lld\n", - (long long)ir_type); + tmp = skip_spaces(tmp); + if (*tmp != '\0') { + IR_dprintk(1, "Invalid trailing characters\n"); return -EINVAL; } - spin_lock_irqsave(&ir_dev->rc_tab.lock, flags); - ir_dev->rc_tab.ir_type = ir_type; - spin_unlock_irqrestore(&ir_dev->rc_tab.lock, flags); + if (ir_dev->props->driver_type == RC_DRIVER_SCANCODE) + type = ir_dev->rc_tab.ir_type; + else + type = ir_dev->raw->enabled_protocols; - IR_dprintk(1, "Current protocol(s) is(are) %lld\n", - (long long)ir_type); + if (enable) + type |= mask; + else if (disable) + type &= ~mask; + else + type = mask; - return len; -} + if (ir_dev->props && ir_dev->props->change_protocol) { + rc = ir_dev->props->change_protocol(ir_dev->props->priv, + type); + if (rc < 0) { + IR_dprintk(1, "Error setting protocols to 0x%llx\n", + (long long)type); + return -EINVAL; + } + } -static ssize_t show_supported_protocols(struct device *d, - struct device_attribute *mattr, char *buf) -{ - char *orgbuf = buf; - struct ir_input_dev *ir_dev = dev_get_drvdata(d); + if (ir_dev->props && ir_dev->props->driver_type == RC_DRIVER_SCANCODE) { + spin_lock_irqsave(&ir_dev->rc_tab.lock, flags); + ir_dev->rc_tab.ir_type = type; + spin_unlock_irqrestore(&ir_dev->rc_tab.lock, flags); + } else { + ir_dev->raw->enabled_protocols = type; + } - /* FIXME: doesn't support multiple protocols at the same time */ - if (ir_dev->props->allowed_protos == IR_TYPE_UNKNOWN) - buf += sprintf(buf, "unknown "); - if (ir_dev->props->allowed_protos & IR_TYPE_RC5) - buf += sprintf(buf, "rc-5 "); - if (ir_dev->props->allowed_protos & IR_TYPE_NEC) - buf += sprintf(buf, "nec "); - if (buf == orgbuf) - buf += sprintf(buf, "other "); - buf += sprintf(buf - 1, "\n"); + IR_dprintk(1, "Current protocol(s): 0x%llx\n", + (long long)type); - return buf - orgbuf; + return len; } #define ADD_HOTPLUG_VAR(fmt, val...) \ @@ -159,7 +235,7 @@ return err; \ } while (0) -static int ir_dev_uevent(struct device *device, struct kobj_uevent_env *env) +static int rc_dev_uevent(struct device *device, struct kobj_uevent_env *env) { struct ir_input_dev *ir_dev = dev_get_drvdata(device); @@ -174,34 +250,26 @@ /* * Static device attribute struct with the sysfs attributes for IR's */ -static DEVICE_ATTR(protocol, S_IRUGO | S_IWUSR, - show_protocol, store_protocol); - -static DEVICE_ATTR(supported_protocols, S_IRUGO | S_IWUSR, - show_supported_protocols, NULL); +static DEVICE_ATTR(protocols, S_IRUGO | S_IWUSR, + show_protocols, store_protocols); -static struct attribute *ir_hw_dev_attrs[] = { - &dev_attr_protocol.attr, - &dev_attr_supported_protocols.attr, +static struct attribute *rc_dev_attrs[] = { + &dev_attr_protocols.attr, NULL, }; -static struct attribute_group ir_hw_dev_attr_grp = { - .attrs = ir_hw_dev_attrs, +static struct attribute_group rc_dev_attr_grp = { + .attrs = rc_dev_attrs, }; -static const struct attribute_group *ir_hw_dev_attr_groups[] = { - &ir_hw_dev_attr_grp, +static const struct attribute_group *rc_dev_attr_groups[] = { + &rc_dev_attr_grp, NULL }; static struct device_type rc_dev_type = { - .groups = ir_hw_dev_attr_groups, - .uevent = ir_dev_uevent, -}; - -static struct device_type ir_raw_dev_type = { - .uevent = ir_dev_uevent, + .groups = rc_dev_attr_groups, + .uevent = rc_dev_uevent, }; /** @@ -221,12 +289,7 @@ if (unlikely(devno < 0)) return devno; - if (ir_dev->props) { - if (ir_dev->props->driver_type == RC_DRIVER_SCANCODE) - ir_dev->dev.type = &rc_dev_type; - } else - ir_dev->dev.type = &ir_raw_dev_type; - + ir_dev->dev.type = &rc_dev_type; ir_dev->dev.class = &ir_input_class; ir_dev->dev.parent = input_dev->dev.parent; dev_set_name(&ir_dev->dev, "rc%d", devno); --- linux-2.6.35.orig/drivers/media/IR/ir-core-priv.h +++ linux-2.6.35/drivers/media/IR/ir-core-priv.h @@ -22,17 +22,68 @@ struct ir_raw_handler { struct list_head list; + u64 protocols; /* which are handled by this handler */ int (*decode)(struct input_dev *input_dev, struct ir_raw_event event); + + /* These two should only be used by the lirc decoder */ int (*raw_register)(struct input_dev *input_dev); int (*raw_unregister)(struct input_dev *input_dev); }; struct ir_raw_event_ctrl { + struct list_head list; /* to keep track of raw clients */ struct work_struct rx_work; /* for the rx decoding workqueue */ struct kfifo kfifo; /* fifo for the pulse/space durations */ ktime_t last_event; /* when last event occurred */ enum raw_event_type last_type; /* last event type */ struct input_dev *input_dev; /* pointer to the parent input_dev */ + u64 enabled_protocols; /* enabled raw protocol decoders */ + + /* raw decoder state follows */ + struct ir_raw_event prev_ev; + struct nec_dec { + int state; + unsigned count; + u32 bits; + } nec; + struct rc5_dec { + int state; + u32 bits; + unsigned count; + unsigned wanted_bits; + } rc5; + struct rc6_dec { + int state; + u8 header; + u32 body; + bool toggle; + unsigned count; + unsigned wanted_bits; + } rc6; + struct sony_dec { + int state; + u32 bits; + unsigned count; + } sony; + struct jvc_dec { + int state; + u16 bits; + u16 old_bits; + unsigned count; + bool first; + bool toggle; + } jvc; + struct rc5_sz_dec { + int state; + u32 bits; + unsigned count; + unsigned wanted_bits; + } rc5_sz; + struct lirc_codec { + struct ir_input_dev *ir_dev; + struct lirc_driver *drv; + int lircdata; + } lirc; }; /* macros for IR decoders */ @@ -74,6 +125,7 @@ /* * Routines from ir-raw-event.c to be used internally and by decoders */ +u64 ir_raw_get_allowed_protocols(void); int ir_raw_event_register(struct input_dev *input_dev); void ir_raw_event_unregister(struct input_dev *input_dev); int ir_raw_handler_register(struct ir_raw_handler *ir_raw_handler); @@ -123,4 +175,12 @@ #define load_sony_decode() 0 #endif +/* from ir-lirc-codec.c */ +#ifdef CONFIG_IR_LIRC_CODEC_MODULE +#define load_lirc_codec() request_module("ir-lirc-codec") +#else +#define load_lirc_codec() 0 +#endif + + #endif /* _IR_RAW_EVENT */ --- linux-2.6.35.orig/drivers/media/IR/ir-raw-event.c +++ linux-2.6.35/drivers/media/IR/ir-raw-event.c @@ -20,35 +20,13 @@ /* Define the max number of pulse/space transitions to buffer */ #define MAX_IR_EVENT_SIZE 512 +/* Used to keep track of IR raw clients, protected by ir_raw_handler_lock */ +static LIST_HEAD(ir_raw_client_list); + /* Used to handle IR raw handler extensions */ -static LIST_HEAD(ir_raw_handler_list); static DEFINE_SPINLOCK(ir_raw_handler_lock); - -/** - * RUN_DECODER() - runs an operation on all IR decoders - * @ops: IR raw handler operation to be called - * @arg: arguments to be passed to the callback - * - * Calls ir_raw_handler::ops for all registered IR handlers. It prevents - * new decode addition/removal while running, by locking ir_raw_handler_lock - * mutex. If an error occurs, it stops the ops. Otherwise, it returns a sum - * of the return codes. - */ -#define RUN_DECODER(ops, ...) ({ \ - struct ir_raw_handler *_ir_raw_handler; \ - int _sumrc = 0, _rc; \ - spin_lock(&ir_raw_handler_lock); \ - list_for_each_entry(_ir_raw_handler, &ir_raw_handler_list, list) { \ - if (_ir_raw_handler->ops) { \ - _rc = _ir_raw_handler->ops(__VA_ARGS__); \ - if (_rc < 0) \ - break; \ - _sumrc += _rc; \ - } \ - } \ - spin_unlock(&ir_raw_handler_lock); \ - _sumrc; \ -}) +static LIST_HEAD(ir_raw_handler_list); +static u64 available_protocols; #ifdef MODULE /* Used to load the decoders */ @@ -58,57 +36,17 @@ static void ir_raw_event_work(struct work_struct *work) { struct ir_raw_event ev; + struct ir_raw_handler *handler; struct ir_raw_event_ctrl *raw = container_of(work, struct ir_raw_event_ctrl, rx_work); - while (kfifo_out(&raw->kfifo, &ev, sizeof(ev)) == sizeof(ev)) - RUN_DECODER(decode, raw->input_dev, ev); -} - -int ir_raw_event_register(struct input_dev *input_dev) -{ - struct ir_input_dev *ir = input_get_drvdata(input_dev); - int rc; - - ir->raw = kzalloc(sizeof(*ir->raw), GFP_KERNEL); - if (!ir->raw) - return -ENOMEM; - - ir->raw->input_dev = input_dev; - INIT_WORK(&ir->raw->rx_work, ir_raw_event_work); - - rc = kfifo_alloc(&ir->raw->kfifo, sizeof(s64) * MAX_IR_EVENT_SIZE, - GFP_KERNEL); - if (rc < 0) { - kfree(ir->raw); - ir->raw = NULL; - return rc; - } - - rc = RUN_DECODER(raw_register, input_dev); - if (rc < 0) { - kfifo_free(&ir->raw->kfifo); - kfree(ir->raw); - ir->raw = NULL; - return rc; + while (kfifo_out(&raw->kfifo, &ev, sizeof(ev)) == sizeof(ev)) { + spin_lock(&ir_raw_handler_lock); + list_for_each_entry(handler, &ir_raw_handler_list, list) + handler->decode(raw->input_dev, ev); + spin_unlock(&ir_raw_handler_lock); + raw->prev_ev = ev; } - - return rc; -} - -void ir_raw_event_unregister(struct input_dev *input_dev) -{ - struct ir_input_dev *ir = input_get_drvdata(input_dev); - - if (!ir->raw) - return; - - cancel_work_sync(&ir->raw->rx_work); - RUN_DECODER(raw_unregister, input_dev); - - kfifo_free(&ir->raw->kfifo); - kfree(ir->raw); - ir->raw = NULL; } /** @@ -204,23 +142,103 @@ } EXPORT_SYMBOL_GPL(ir_raw_event_handle); +/* used internally by the sysfs interface */ +u64 +ir_raw_get_allowed_protocols() +{ + u64 protocols; + spin_lock(&ir_raw_handler_lock); + protocols = available_protocols; + spin_unlock(&ir_raw_handler_lock); + return protocols; +} + +/* + * Used to (un)register raw event clients + */ +int ir_raw_event_register(struct input_dev *input_dev) +{ + struct ir_input_dev *ir = input_get_drvdata(input_dev); + int rc; + struct ir_raw_handler *handler; + + ir->raw = kzalloc(sizeof(*ir->raw), GFP_KERNEL); + if (!ir->raw) + return -ENOMEM; + + ir->raw->input_dev = input_dev; + INIT_WORK(&ir->raw->rx_work, ir_raw_event_work); + ir->raw->enabled_protocols = ~0; + rc = kfifo_alloc(&ir->raw->kfifo, sizeof(s64) * MAX_IR_EVENT_SIZE, + GFP_KERNEL); + if (rc < 0) { + kfree(ir->raw); + ir->raw = NULL; + return rc; + } + + spin_lock(&ir_raw_handler_lock); + list_add_tail(&ir->raw->list, &ir_raw_client_list); + list_for_each_entry(handler, &ir_raw_handler_list, list) + if (handler->raw_register) + handler->raw_register(ir->raw->input_dev); + spin_unlock(&ir_raw_handler_lock); + + return 0; +} + +void ir_raw_event_unregister(struct input_dev *input_dev) +{ + struct ir_input_dev *ir = input_get_drvdata(input_dev); + struct ir_raw_handler *handler; + + if (!ir->raw) + return; + + cancel_work_sync(&ir->raw->rx_work); + + spin_lock(&ir_raw_handler_lock); + list_del(&ir->raw->list); + list_for_each_entry(handler, &ir_raw_handler_list, list) + if (handler->raw_unregister) + handler->raw_unregister(ir->raw->input_dev); + spin_unlock(&ir_raw_handler_lock); + + kfifo_free(&ir->raw->kfifo); + kfree(ir->raw); + ir->raw = NULL; +} + /* * Extension interface - used to register the IR decoders */ int ir_raw_handler_register(struct ir_raw_handler *ir_raw_handler) { + struct ir_raw_event_ctrl *raw; + spin_lock(&ir_raw_handler_lock); list_add_tail(&ir_raw_handler->list, &ir_raw_handler_list); + if (ir_raw_handler->raw_register) + list_for_each_entry(raw, &ir_raw_client_list, list) + ir_raw_handler->raw_register(raw->input_dev); + available_protocols |= ir_raw_handler->protocols; spin_unlock(&ir_raw_handler_lock); + return 0; } EXPORT_SYMBOL(ir_raw_handler_register); void ir_raw_handler_unregister(struct ir_raw_handler *ir_raw_handler) { + struct ir_raw_event_ctrl *raw; + spin_lock(&ir_raw_handler_lock); list_del(&ir_raw_handler->list); + if (ir_raw_handler->raw_unregister) + list_for_each_entry(raw, &ir_raw_client_list, list) + ir_raw_handler->raw_unregister(raw->input_dev); + available_protocols &= ~ir_raw_handler->protocols; spin_unlock(&ir_raw_handler_lock); } EXPORT_SYMBOL(ir_raw_handler_unregister); @@ -235,6 +253,7 @@ load_rc6_decode(); load_jvc_decode(); load_sony_decode(); + load_lirc_codec(); /* If needed, we may later add some init code. In this case, it is needed to change the CONFIG_MODULE test at ir-core.h --- linux-2.6.35.orig/drivers/media/IR/ir-sony-decoder.c +++ linux-2.6.35/drivers/media/IR/ir-sony-decoder.c @@ -23,10 +23,6 @@ #define SONY_BIT_SPACE (1 * SONY_UNIT) #define SONY_TRAILER_SPACE (10 * SONY_UNIT) /* minimum */ -/* Used to register sony_decoder clients */ -static LIST_HEAD(decoder_list); -static DEFINE_SPINLOCK(decoder_lock); - enum sony_state { STATE_INACTIVE, STATE_HEADER_SPACE, @@ -35,84 +31,6 @@ STATE_FINISHED, }; -struct decoder_data { - struct list_head list; - struct ir_input_dev *ir_dev; - int enabled:1; - - /* State machine control */ - enum sony_state state; - u32 sony_bits; - unsigned count; -}; - - -/** - * get_decoder_data() - gets decoder data - * @input_dev: input device - * - * Returns the struct decoder_data that corresponds to a device - */ -static struct decoder_data *get_decoder_data(struct ir_input_dev *ir_dev) -{ - struct decoder_data *data = NULL; - - spin_lock(&decoder_lock); - list_for_each_entry(data, &decoder_list, list) { - if (data->ir_dev == ir_dev) - break; - } - spin_unlock(&decoder_lock); - return data; -} - -static ssize_t store_enabled(struct device *d, - struct device_attribute *mattr, - const char *buf, - size_t len) -{ - unsigned long value; - struct ir_input_dev *ir_dev = dev_get_drvdata(d); - struct decoder_data *data = get_decoder_data(ir_dev); - - if (!data) - return -EINVAL; - - if (strict_strtoul(buf, 10, &value) || value > 1) - return -EINVAL; - - data->enabled = value; - - return len; -} - -static ssize_t show_enabled(struct device *d, - struct device_attribute *mattr, char *buf) -{ - struct ir_input_dev *ir_dev = dev_get_drvdata(d); - struct decoder_data *data = get_decoder_data(ir_dev); - - if (!data) - return -EINVAL; - - if (data->enabled) - return sprintf(buf, "1\n"); - else - return sprintf(buf, "0\n"); -} - -static DEVICE_ATTR(enabled, S_IRUGO | S_IWUSR, show_enabled, store_enabled); - -static struct attribute *decoder_attributes[] = { - &dev_attr_enabled.attr, - NULL -}; - -static struct attribute_group decoder_attribute_group = { - .name = "sony_decoder", - .attrs = decoder_attributes, -}; - /** * ir_sony_decode() - Decode one Sony pulse or space * @input_dev: the struct input_dev descriptor of the device @@ -122,16 +40,12 @@ */ static int ir_sony_decode(struct input_dev *input_dev, struct ir_raw_event ev) { - struct decoder_data *data; struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); + struct sony_dec *data = &ir_dev->raw->sony; u32 scancode; u8 device, subdevice, function; - data = get_decoder_data(ir_dev); - if (!data) - return -EINVAL; - - if (!data->enabled) + if (!(ir_dev->raw->enabled_protocols & IR_TYPE_SONY)) return 0; if (IS_RESET(ev)) { @@ -172,9 +86,9 @@ if (!ev.pulse) break; - data->sony_bits <<= 1; + data->bits <<= 1; if (eq_margin(ev.duration, SONY_BIT_1_PULSE, SONY_UNIT / 2)) - data->sony_bits |= 1; + data->bits |= 1; else if (!eq_margin(ev.duration, SONY_BIT_0_PULSE, SONY_UNIT / 2)) break; @@ -208,19 +122,19 @@ switch (data->count) { case 12: - device = bitrev8((data->sony_bits << 3) & 0xF8); + device = bitrev8((data->bits << 3) & 0xF8); subdevice = 0; - function = bitrev8((data->sony_bits >> 4) & 0xFE); + function = bitrev8((data->bits >> 4) & 0xFE); break; case 15: - device = bitrev8((data->sony_bits >> 0) & 0xFF); + device = bitrev8((data->bits >> 0) & 0xFF); subdevice = 0; - function = bitrev8((data->sony_bits >> 7) & 0xFD); + function = bitrev8((data->bits >> 7) & 0xFD); break; case 20: - device = bitrev8((data->sony_bits >> 5) & 0xF8); - subdevice = bitrev8((data->sony_bits >> 0) & 0xFF); - function = bitrev8((data->sony_bits >> 12) & 0xFE); + device = bitrev8((data->bits >> 5) & 0xF8); + subdevice = bitrev8((data->bits >> 0) & 0xFF); + function = bitrev8((data->bits >> 12) & 0xFE); break; default: IR_dprintk(1, "Sony invalid bitcount %u\n", data->count); @@ -241,54 +155,9 @@ return -EINVAL; } -static int ir_sony_register(struct input_dev *input_dev) -{ - struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); - struct decoder_data *data; - int rc; - - rc = sysfs_create_group(&ir_dev->dev.kobj, &decoder_attribute_group); - if (rc < 0) - return rc; - - data = kzalloc(sizeof(*data), GFP_KERNEL); - if (!data) { - sysfs_remove_group(&ir_dev->dev.kobj, &decoder_attribute_group); - return -ENOMEM; - } - - data->ir_dev = ir_dev; - data->enabled = 1; - - spin_lock(&decoder_lock); - list_add_tail(&data->list, &decoder_list); - spin_unlock(&decoder_lock); - - return 0; -} - -static int ir_sony_unregister(struct input_dev *input_dev) -{ - struct ir_input_dev *ir_dev = input_get_drvdata(input_dev); - static struct decoder_data *data; - - data = get_decoder_data(ir_dev); - if (!data) - return 0; - - sysfs_remove_group(&ir_dev->dev.kobj, &decoder_attribute_group); - - spin_lock(&decoder_lock); - list_del(&data->list); - spin_unlock(&decoder_lock); - - return 0; -} - static struct ir_raw_handler sony_handler = { + .protocols = IR_TYPE_SONY, .decode = ir_sony_decode, - .raw_register = ir_sony_register, - .raw_unregister = ir_sony_unregister, }; static int __init ir_sony_decode_init(void) --- linux-2.6.35.orig/drivers/media/IR/streamzap.c +++ linux-2.6.35/drivers/media/IR/streamzap.c @@ -0,0 +1,569 @@ +/* + * Streamzap Remote Control driver + * + * Copyright (c) 2005 Christoph Bartelmus + * Copyright (c) 2010 Jarod Wilson + * + * This driver was based on the work of Greg Wickham and Adrian + * Dewhurst. It was substantially rewritten to support correct signal + * gaps and now maintains a delay buffer, which is used to present + * consistent timing behaviour to user space applications. Without the + * delay buffer an ugly hack would be required in lircd, which can + * cause sluggish signal decoding in certain situations. + * + * Ported to in-kernel ir-core interface by Jarod Wilson + * + * This driver is based on the USB skeleton driver packaged with the + * kernel; copyright (C) 2001-2003 Greg Kroah-Hartman (greg@kroah.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include + +#define DRIVER_VERSION "1.61" +#define DRIVER_NAME "streamzap" +#define DRIVER_DESC "Streamzap Remote Control driver" + +#ifdef CONFIG_USB_DEBUG +static int debug = 1; +#else +static int debug; +#endif + +#define USB_STREAMZAP_VENDOR_ID 0x0e9c +#define USB_STREAMZAP_PRODUCT_ID 0x0000 + +/* table of devices that work with this driver */ +static struct usb_device_id streamzap_table[] = { + /* Streamzap Remote Control */ + { USB_DEVICE(USB_STREAMZAP_VENDOR_ID, USB_STREAMZAP_PRODUCT_ID) }, + /* Terminating entry */ + { } +}; + +MODULE_DEVICE_TABLE(usb, streamzap_table); + +#define STREAMZAP_PULSE_MASK 0xf0 +#define STREAMZAP_SPACE_MASK 0x0f +#define STREAMZAP_TIMEOUT 0xff +#define STREAMZAP_RESOLUTION 256 + +/* number of samples buffered */ +#define SZ_BUF_LEN 128 + +/* from ir-rc5-sz-decoder.c */ +#ifdef CONFIG_IR_RC5_SZ_DECODER_MODULE +#define load_rc5_sz_decode() request_module("ir-rc5-sz-decoder") +#else +#define load_rc5_sz_decode() 0 +#endif + +enum StreamzapDecoderState { + PulseSpace, + FullPulse, + FullSpace, + IgnorePulse +}; + +/* structure to hold our device specific stuff */ +struct streamzap_ir { + + /* ir-core */ + struct ir_dev_props *props; + + /* core device info */ + struct device *dev; + struct input_dev *idev; + + /* usb */ + struct usb_device *usbdev; + struct usb_interface *interface; + struct usb_endpoint_descriptor *endpoint; + struct urb *urb_in; + + /* buffer & dma */ + unsigned char *buf_in; + dma_addr_t dma_in; + unsigned int buf_in_len; + + /* track what state we're in */ + enum StreamzapDecoderState decoder_state; + /* tracks whether we are currently receiving some signal */ + bool idle; + /* sum of signal lengths received since signal start */ + unsigned long sum; + /* start time of signal; necessary for gap tracking */ + struct timeval signal_last; + struct timeval signal_start; + bool timeout_enabled; + + char name[128]; + char phys[64]; +}; + + +/* local function prototypes */ +static int streamzap_probe(struct usb_interface *interface, + const struct usb_device_id *id); +static void streamzap_disconnect(struct usb_interface *interface); +static void streamzap_callback(struct urb *urb); +static int streamzap_suspend(struct usb_interface *intf, pm_message_t message); +static int streamzap_resume(struct usb_interface *intf); + +/* usb specific object needed to register this driver with the usb subsystem */ +static struct usb_driver streamzap_driver = { + .name = DRIVER_NAME, + .probe = streamzap_probe, + .disconnect = streamzap_disconnect, + .suspend = streamzap_suspend, + .resume = streamzap_resume, + .id_table = streamzap_table, +}; + +static void sz_push(struct streamzap_ir *sz, struct ir_raw_event rawir) +{ + ir_raw_event_store(sz->idev, &rawir); +} + +static void sz_push_full_pulse(struct streamzap_ir *sz, + unsigned char value) +{ + struct ir_raw_event rawir; + + if (sz->idle) { + long deltv; + + sz->signal_last = sz->signal_start; + do_gettimeofday(&sz->signal_start); + + deltv = sz->signal_start.tv_sec - sz->signal_last.tv_sec; + rawir.pulse = false; + if (deltv > 15) { + /* really long time */ + rawir.duration = IR_MAX_DURATION; + } else { + rawir.duration = (int)(deltv * 1000000 + + sz->signal_start.tv_usec - + sz->signal_last.tv_usec); + rawir.duration -= sz->sum; + rawir.duration *= 1000; + rawir.duration &= IR_MAX_DURATION; + } + dev_dbg(sz->dev, "ls %u\n", rawir.duration); + sz_push(sz, rawir); + + sz->idle = false; + sz->sum = 0; + } + + rawir.pulse = true; + rawir.duration = ((int) value) * STREAMZAP_RESOLUTION; + rawir.duration += STREAMZAP_RESOLUTION / 2; + sz->sum += rawir.duration; + rawir.duration *= 1000; + rawir.duration &= IR_MAX_DURATION; + dev_dbg(sz->dev, "p %u\n", rawir.duration); + sz_push(sz, rawir); +} + +static void sz_push_half_pulse(struct streamzap_ir *sz, + unsigned char value) +{ + sz_push_full_pulse(sz, (value & STREAMZAP_PULSE_MASK) >> 4); +} + +static void sz_push_full_space(struct streamzap_ir *sz, + unsigned char value) +{ + struct ir_raw_event rawir; + + rawir.pulse = false; + rawir.duration = ((int) value) * STREAMZAP_RESOLUTION; + rawir.duration += STREAMZAP_RESOLUTION / 2; + sz->sum += rawir.duration; + rawir.duration *= 1000; + dev_dbg(sz->dev, "s %u\n", rawir.duration); + sz_push(sz, rawir); +} + +static void sz_push_half_space(struct streamzap_ir *sz, + unsigned long value) +{ + sz_push_full_space(sz, value & STREAMZAP_SPACE_MASK); +} + +/** + * streamzap_callback - usb IRQ handler callback + * + * This procedure is invoked on reception of data from + * the usb remote. + */ +static void streamzap_callback(struct urb *urb) +{ + struct streamzap_ir *sz; + unsigned int i; + int len; + static int timeout = (((STREAMZAP_TIMEOUT * STREAMZAP_RESOLUTION) & + IR_MAX_DURATION) | 0x03000000); + + if (!urb) + return; + + sz = urb->context; + len = urb->actual_length; + + switch (urb->status) { + case -ECONNRESET: + case -ENOENT: + case -ESHUTDOWN: + /* + * this urb is terminated, clean up. + * sz might already be invalid at this point + */ + dev_err(sz->dev, "urb terminated, status: %d\n", urb->status); + return; + default: + break; + } + + dev_info(sz->dev, "%s: received urb, len %d\n", __func__, len); + for (i = 0; i < len; i++) { + dev_info(sz->dev, "sz idx %d: %x\n", + i, (unsigned char)sz->buf_in[i]); + switch (sz->decoder_state) { + case PulseSpace: + if ((sz->buf_in[i] & STREAMZAP_PULSE_MASK) == + STREAMZAP_PULSE_MASK) { + sz->decoder_state = FullPulse; + continue; + } else if ((sz->buf_in[i] & STREAMZAP_SPACE_MASK) + == STREAMZAP_SPACE_MASK) { + sz_push_half_pulse(sz, sz->buf_in[i]); + sz->decoder_state = FullSpace; + continue; + } else { + sz_push_half_pulse(sz, sz->buf_in[i]); + sz_push_half_space(sz, sz->buf_in[i]); + } + break; + case FullPulse: + sz_push_full_pulse(sz, sz->buf_in[i]); + sz->decoder_state = IgnorePulse; + break; + case FullSpace: + if (sz->buf_in[i] == STREAMZAP_TIMEOUT) { + struct ir_raw_event rawir; + + rawir.pulse = false; + rawir.duration = timeout * 1000; + sz->idle = true; + if (sz->timeout_enabled) + sz_push(sz, rawir); + ir_raw_event_handle(sz->idev); + } else { + sz_push_full_space(sz, sz->buf_in[i]); + } + sz->decoder_state = PulseSpace; + break; + case IgnorePulse: + if ((sz->buf_in[i] & STREAMZAP_SPACE_MASK) == + STREAMZAP_SPACE_MASK) { + sz->decoder_state = FullSpace; + continue; + } + sz_push_half_space(sz, sz->buf_in[i]); + sz->decoder_state = PulseSpace; + break; + } + } + + usb_submit_urb(urb, GFP_ATOMIC); + + return; +} + +static struct input_dev *streamzap_init_input_dev(struct streamzap_ir *sz) +{ + struct input_dev *idev; + struct ir_dev_props *props; + struct device *dev = sz->dev; + int ret; + + idev = input_allocate_device(); + if (!idev) { + dev_err(dev, "remote input dev allocation failed\n"); + goto idev_alloc_failed; + } + + props = kzalloc(sizeof(struct ir_dev_props), GFP_KERNEL); + if (!props) { + dev_err(dev, "remote ir dev props allocation failed\n"); + goto props_alloc_failed; + } + + snprintf(sz->name, sizeof(sz->name), "Streamzap PC Remote Infrared " + "Receiver (%04x:%04x)", + le16_to_cpu(sz->usbdev->descriptor.idVendor), + le16_to_cpu(sz->usbdev->descriptor.idProduct)); + + idev->name = sz->name; + usb_make_path(sz->usbdev, sz->phys, sizeof(sz->phys)); + strlcat(sz->phys, "/input0", sizeof(sz->phys)); + idev->phys = sz->phys; + + props->priv = sz; + props->driver_type = RC_DRIVER_IR_RAW; + props->allowed_protos = IR_TYPE_ALL; + + sz->props = props; + + ret = ir_input_register(idev, RC_MAP_STREAMZAP, props, DRIVER_NAME); + if (ret < 0) { + dev_err(dev, "remote input device register failed\n"); + goto irdev_failed; + } + + return idev; + +irdev_failed: + kfree(props); +props_alloc_failed: + input_free_device(idev); +idev_alloc_failed: + return NULL; +} + +/** + * streamzap_probe + * + * Called by usb-core to associated with a candidate device + * On any failure the return value is the ERROR + * On success return 0 + */ +static int __devinit streamzap_probe(struct usb_interface *intf, + const struct usb_device_id *id) +{ + struct usb_device *usbdev = interface_to_usbdev(intf); + struct usb_host_interface *iface_host; + struct streamzap_ir *sz = NULL; + char buf[63], name[128] = ""; + int retval = -ENOMEM; + int pipe, maxp; + + /* Allocate space for device driver specific data */ + sz = kzalloc(sizeof(struct streamzap_ir), GFP_KERNEL); + if (!sz) + return -ENOMEM; + + sz->usbdev = usbdev; + sz->interface = intf; + + /* Check to ensure endpoint information matches requirements */ + iface_host = intf->cur_altsetting; + + if (iface_host->desc.bNumEndpoints != 1) { + dev_err(&intf->dev, "%s: Unexpected desc.bNumEndpoints (%d)\n", + __func__, iface_host->desc.bNumEndpoints); + retval = -ENODEV; + goto free_sz; + } + + sz->endpoint = &(iface_host->endpoint[0].desc); + if ((sz->endpoint->bEndpointAddress & USB_ENDPOINT_DIR_MASK) + != USB_DIR_IN) { + dev_err(&intf->dev, "%s: endpoint doesn't match input device " + "02%02x\n", __func__, sz->endpoint->bEndpointAddress); + retval = -ENODEV; + goto free_sz; + } + + if ((sz->endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) + != USB_ENDPOINT_XFER_INT) { + dev_err(&intf->dev, "%s: endpoint attributes don't match xfer " + "02%02x\n", __func__, sz->endpoint->bmAttributes); + retval = -ENODEV; + goto free_sz; + } + + pipe = usb_rcvintpipe(usbdev, sz->endpoint->bEndpointAddress); + maxp = usb_maxpacket(usbdev, pipe, usb_pipeout(pipe)); + + if (maxp == 0) { + dev_err(&intf->dev, "%s: endpoint Max Packet Size is 0!?!\n", + __func__); + retval = -ENODEV; + goto free_sz; + } + + /* Allocate the USB buffer and IRQ URB */ + sz->buf_in = usb_alloc_coherent(usbdev, maxp, GFP_ATOMIC, &sz->dma_in); + if (!sz->buf_in) + goto free_sz; + + sz->urb_in = usb_alloc_urb(0, GFP_KERNEL); + if (!sz->urb_in) + goto free_buf_in; + + sz->dev = &intf->dev; + sz->buf_in_len = maxp; + + if (usbdev->descriptor.iManufacturer + && usb_string(usbdev, usbdev->descriptor.iManufacturer, + buf, sizeof(buf)) > 0) + strlcpy(name, buf, sizeof(name)); + + if (usbdev->descriptor.iProduct + && usb_string(usbdev, usbdev->descriptor.iProduct, + buf, sizeof(buf)) > 0) + snprintf(name + strlen(name), sizeof(name) - strlen(name), + " %s", buf); + + sz->idev = streamzap_init_input_dev(sz); + if (!sz->idev) + goto input_dev_fail; + + sz->idle = true; + sz->decoder_state = PulseSpace; + /* FIXME: don't yet have a way to set this */ + sz->timeout_enabled = true; + #if 0 + /* not yet supported, depends on patches from maxim */ + /* see also: LIRC_GET_REC_RESOLUTION and LIRC_SET_REC_TIMEOUT */ + sz->min_timeout = STREAMZAP_TIMEOUT * STREAMZAP_RESOLUTION * 1000; + sz->max_timeout = STREAMZAP_TIMEOUT * STREAMZAP_RESOLUTION * 1000; + #endif + + do_gettimeofday(&sz->signal_start); + + /* Complete final initialisations */ + usb_fill_int_urb(sz->urb_in, usbdev, pipe, sz->buf_in, + maxp, (usb_complete_t)streamzap_callback, + sz, sz->endpoint->bInterval); + sz->urb_in->transfer_dma = sz->dma_in; + sz->urb_in->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; + + usb_set_intfdata(intf, sz); + + if (usb_submit_urb(sz->urb_in, GFP_ATOMIC)) + dev_err(sz->dev, "urb submit failed\n"); + + dev_info(sz->dev, "Registered %s on usb%d:%d\n", name, + usbdev->bus->busnum, usbdev->devnum); + + /* Load the streamzap not-quite-rc5 decoder too */ + load_rc5_sz_decode(); + + return 0; + +input_dev_fail: + usb_free_urb(sz->urb_in); +free_buf_in: + usb_free_coherent(usbdev, maxp, sz->buf_in, sz->dma_in); +free_sz: + kfree(sz); + + return retval; +} + +/** + * streamzap_disconnect + * + * Called by the usb core when the device is removed from the system. + * + * This routine guarantees that the driver will not submit any more urbs + * by clearing dev->usbdev. It is also supposed to terminate any currently + * active urbs. Unfortunately, usb_bulk_msg(), used in streamzap_read(), + * does not provide any way to do this. + */ +static void streamzap_disconnect(struct usb_interface *interface) +{ + struct streamzap_ir *sz = usb_get_intfdata(interface); + struct usb_device *usbdev = interface_to_usbdev(interface); + + usb_set_intfdata(interface, NULL); + + if (!sz) + return; + + sz->usbdev = NULL; + ir_input_unregister(sz->idev); + usb_kill_urb(sz->urb_in); + usb_free_urb(sz->urb_in); + usb_free_coherent(usbdev, sz->buf_in_len, sz->buf_in, sz->dma_in); + + kfree(sz); +} + +static int streamzap_suspend(struct usb_interface *intf, pm_message_t message) +{ + struct streamzap_ir *sz = usb_get_intfdata(intf); + + usb_kill_urb(sz->urb_in); + + return 0; +} + +static int streamzap_resume(struct usb_interface *intf) +{ + struct streamzap_ir *sz = usb_get_intfdata(intf); + + if (usb_submit_urb(sz->urb_in, GFP_ATOMIC)) { + dev_err(sz->dev, "Error sumbiting urb\n"); + return -EIO; + } + + return 0; +} + +/** + * streamzap_init + */ +static int __init streamzap_init(void) +{ + int ret; + + /* register this driver with the USB subsystem */ + ret = usb_register(&streamzap_driver); + if (ret < 0) + printk(KERN_ERR DRIVER_NAME ": usb register failed, " + "result = %d\n", ret); + + return ret; +} + +/** + * streamzap_exit + */ +static void __exit streamzap_exit(void) +{ + usb_deregister(&streamzap_driver); +} + + +module_init(streamzap_init); +module_exit(streamzap_exit); + +MODULE_AUTHOR("Jarod Wilson "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); --- linux-2.6.35.orig/drivers/media/IR/Kconfig +++ linux-2.6.35/drivers/media/IR/Kconfig @@ -8,6 +8,17 @@ depends on IR_CORE default IR_CORE +config LIRC + tristate + default y + + ---help--- + Enable this option to build the Linux Infrared Remote + Control (LIRC) core device interface driver. The LIRC + interface passes raw IR to and from userspace, where the + LIRC daemon handles protocol decoding for IR reception ann + encoding for IR transmitting (aka "blasting"). + source "drivers/media/IR/keymaps/Kconfig" config IR_NEC_DECODER @@ -42,6 +53,7 @@ config IR_JVC_DECODER tristate "Enable IR raw decoder for the JVC protocol" depends on IR_CORE + select BITREVERSE default y ---help--- @@ -57,6 +69,26 @@ Enable this option if you have an infrared remote control which uses the Sony protocol, and you need software decoding support. +config IR_RC5_SZ_DECODER + tristate "Enable IR raw decoder for the RC-5 (streamzap) protocol" + depends on IR_CORE + select BITREVERSE + default y + + ---help--- + Enable this option if you have IR with RC-5 (streamzap) protocol, + and if the IR is decoded in software. + +config IR_LIRC_CODEC + tristate "Enable IR to LIRC bridge" + depends on IR_CORE + depends on LIRC + default y + + ---help--- + Enable this option to pass raw IR to and from userspace via + the LIRC interface. + config IR_IMON tristate "SoundGraph iMON Receiver and Display" depends on USB_ARCH_HAS_HCD @@ -68,3 +100,27 @@ To compile this driver as a module, choose M here: the module will be called imon. + +config IR_MCEUSB + tristate "Windows Media Center Ed. eHome Infrared Transceiver" + depends on USB_ARCH_HAS_HCD + depends on IR_CORE + select USB + ---help--- + Say Y here if you want to use a Windows Media Center Edition + eHome Infrared Transceiver. + + To compile this driver as a module, choose M here: the + module will be called mceusb. + +config IR_STREAMZAP + tristate "Streamzap PC Remote IR Receiver" + depends on USB_ARCH_HAS_HCD + depends on IR_CORE + select USB + ---help--- + Say Y here if you want to use a Streamzap PC Remote + Infrared Receiver. + + To compile this driver as a module, choose M here: the + module will be called streamzap. --- linux-2.6.35.orig/drivers/media/IR/Makefile +++ linux-2.6.35/drivers/media/IR/Makefile @@ -5,11 +5,16 @@ obj-$(CONFIG_IR_CORE) += ir-core.o obj-$(CONFIG_VIDEO_IR) += ir-common.o +obj-$(CONFIG_LIRC) += lirc_dev.o obj-$(CONFIG_IR_NEC_DECODER) += ir-nec-decoder.o obj-$(CONFIG_IR_RC5_DECODER) += ir-rc5-decoder.o obj-$(CONFIG_IR_RC6_DECODER) += ir-rc6-decoder.o obj-$(CONFIG_IR_JVC_DECODER) += ir-jvc-decoder.o obj-$(CONFIG_IR_SONY_DECODER) += ir-sony-decoder.o +obj-$(CONFIG_IR_RC5_SZ_DECODER) += ir-rc5-sz-decoder.o +obj-$(CONFIG_IR_LIRC_CODEC) += ir-lirc-codec.o # stand-alone IR receivers/transmitters obj-$(CONFIG_IR_IMON) += imon.o +obj-$(CONFIG_IR_MCEUSB) += mceusb.o +obj-$(CONFIG_IR_STREAMZAP) += streamzap.o --- linux-2.6.35.orig/drivers/media/IR/keymaps/rc-streamzap.c +++ linux-2.6.35/drivers/media/IR/keymaps/rc-streamzap.c @@ -0,0 +1,82 @@ +/* rc-streamzap.c - Keytable for Streamzap PC Remote, for use + * with the Streamzap PC Remote IR Receiver. + * + * Copyright (c) 2010 by Jarod Wilson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the 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 + +static struct ir_scancode streamzap[] = { +/* + * The Streamzap remote is almost, but not quite, RC-5, as it has an extra + * bit in it, which throws the in-kernel RC-5 decoder for a loop. Currently, + * an additional RC-5-sz decoder is being deployed to support it, but it + * may be possible to merge it back with the standard RC-5 decoder. + */ + { 0x28c0, KEY_NUMERIC_0 }, + { 0x28c1, KEY_NUMERIC_1 }, + { 0x28c2, KEY_NUMERIC_2 }, + { 0x28c3, KEY_NUMERIC_3 }, + { 0x28c4, KEY_NUMERIC_4 }, + { 0x28c5, KEY_NUMERIC_5 }, + { 0x28c6, KEY_NUMERIC_6 }, + { 0x28c7, KEY_NUMERIC_7 }, + { 0x28c8, KEY_NUMERIC_8 }, + { 0x28c9, KEY_NUMERIC_9 }, + { 0x28ca, KEY_POWER }, + { 0x28cb, KEY_MUTE }, + { 0x28cc, KEY_CHANNELUP }, + { 0x28cd, KEY_VOLUMEUP }, + { 0x28ce, KEY_CHANNELDOWN }, + { 0x28cf, KEY_VOLUMEDOWN }, + { 0x28d0, KEY_UP }, + { 0x28d1, KEY_LEFT }, + { 0x28d2, KEY_OK }, + { 0x28d3, KEY_RIGHT }, + { 0x28d4, KEY_DOWN }, + { 0x28d5, KEY_MENU }, + { 0x28d6, KEY_EXIT }, + { 0x28d7, KEY_PLAY }, + { 0x28d8, KEY_PAUSE }, + { 0x28d9, KEY_STOP }, + { 0x28da, KEY_BACK }, + { 0x28db, KEY_FORWARD }, + { 0x28dc, KEY_RECORD }, + { 0x28dd, KEY_REWIND }, + { 0x28de, KEY_FASTFORWARD }, + { 0x28e0, KEY_RED }, + { 0x28e1, KEY_GREEN }, + { 0x28e2, KEY_YELLOW }, + { 0x28e3, KEY_BLUE }, + +}; + +static struct rc_keymap streamzap_map = { + .map = { + .scan = streamzap, + .size = ARRAY_SIZE(streamzap), + .ir_type = IR_TYPE_RC5, + .name = RC_MAP_STREAMZAP, + } +}; + +static int __init init_rc_map_streamzap(void) +{ + return ir_register_map(&streamzap_map); +} + +static void __exit exit_rc_map_streamzap(void) +{ + ir_unregister_map(&streamzap_map); +} + +module_init(init_rc_map_streamzap) +module_exit(exit_rc_map_streamzap) + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Jarod Wilson "); --- linux-2.6.35.orig/drivers/media/IR/keymaps/rc-rc6-mce.c +++ linux-2.6.35/drivers/media/IR/keymaps/rc-rc6-mce.c @@ -0,0 +1,105 @@ +/* rc-rc6-mce.c - Keytable for Windows Media Center RC-6 remotes for use + * with the Media Center Edition eHome Infrared Transceiver. + * + * Copyright (c) 2010 by Jarod Wilson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the 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 + +static struct ir_scancode rc6_mce[] = { + { 0x800f0415, KEY_REWIND }, + { 0x800f0414, KEY_FASTFORWARD }, + { 0x800f041b, KEY_PREVIOUS }, + { 0x800f041a, KEY_NEXT }, + + { 0x800f0416, KEY_PLAY }, + { 0x800f0418, KEY_PAUSE }, + { 0x800f0419, KEY_STOP }, + { 0x800f0417, KEY_RECORD }, + + { 0x800f041e, KEY_UP }, + { 0x800f041f, KEY_DOWN }, + { 0x800f0420, KEY_LEFT }, + { 0x800f0421, KEY_RIGHT }, + + { 0x800f040b, KEY_ENTER }, + { 0x800f0422, KEY_OK }, + { 0x800f0423, KEY_EXIT }, + { 0x800f040a, KEY_DELETE }, + + { 0x800f040e, KEY_MUTE }, + { 0x800f0410, KEY_VOLUMEUP }, + { 0x800f0411, KEY_VOLUMEDOWN }, + { 0x800f0412, KEY_CHANNELUP }, + { 0x800f0413, KEY_CHANNELDOWN }, + + { 0x800f0401, KEY_NUMERIC_1 }, + { 0x800f0402, KEY_NUMERIC_2 }, + { 0x800f0403, KEY_NUMERIC_3 }, + { 0x800f0404, KEY_NUMERIC_4 }, + { 0x800f0405, KEY_NUMERIC_5 }, + { 0x800f0406, KEY_NUMERIC_6 }, + { 0x800f0407, KEY_NUMERIC_7 }, + { 0x800f0408, KEY_NUMERIC_8 }, + { 0x800f0409, KEY_NUMERIC_9 }, + { 0x800f0400, KEY_NUMERIC_0 }, + + { 0x800f041d, KEY_NUMERIC_STAR }, + { 0x800f041c, KEY_NUMERIC_POUND }, + + { 0x800f0446, KEY_TV }, + { 0x800f0447, KEY_AUDIO }, /* My Music */ + { 0x800f0448, KEY_PVR }, /* RecordedTV */ + { 0x800f0449, KEY_CAMERA }, + { 0x800f044a, KEY_VIDEO }, + { 0x800f0424, KEY_DVD }, + { 0x800f0425, KEY_TUNER }, /* LiveTV */ + { 0x800f0450, KEY_RADIO }, + + { 0x800f044c, KEY_LANGUAGE }, + { 0x800f0427, KEY_ZOOM }, /* Aspect */ + + { 0x800f045b, KEY_RED }, + { 0x800f045c, KEY_GREEN }, + { 0x800f045d, KEY_YELLOW }, + { 0x800f045e, KEY_BLUE }, + + { 0x800f040f, KEY_INFO }, + { 0x800f0426, KEY_EPG }, /* Guide */ + { 0x800f045a, KEY_SUBTITLE }, /* Caption/Teletext */ + { 0x800f044d, KEY_TITLE }, + + { 0x800f040c, KEY_POWER }, + { 0x800f040d, KEY_PROG1 }, /* Windows MCE button */ + +}; + +static struct rc_keymap rc6_mce_map = { + .map = { + .scan = rc6_mce, + .size = ARRAY_SIZE(rc6_mce), + .ir_type = IR_TYPE_RC6, + .name = RC_MAP_RC6_MCE, + } +}; + +static int __init init_rc_map_rc6_mce(void) +{ + return ir_register_map(&rc6_mce_map); +} + +static void __exit exit_rc_map_rc6_mce(void) +{ + ir_unregister_map(&rc6_mce_map); +} + +module_init(init_rc_map_rc6_mce) +module_exit(exit_rc_map_rc6_mce) + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Jarod Wilson "); --- linux-2.6.35.orig/drivers/media/IR/keymaps/rc-lirc.c +++ linux-2.6.35/drivers/media/IR/keymaps/rc-lirc.c @@ -0,0 +1,41 @@ +/* rc-lirc.c - Empty dummy keytable, for use when its preferred to pass + * all raw IR data to the lirc userspace decoder. + * + * Copyright (c) 2010 by Jarod Wilson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the 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 + +static struct ir_scancode lirc[] = { + { }, +}; + +static struct rc_keymap lirc_map = { + .map = { + .scan = lirc, + .size = ARRAY_SIZE(lirc), + .ir_type = IR_TYPE_LIRC, + .name = RC_MAP_LIRC, + } +}; + +static int __init init_rc_map_lirc(void) +{ + return ir_register_map(&lirc_map); +} + +static void __exit exit_rc_map_lirc(void) +{ + ir_unregister_map(&lirc_map); +} + +module_init(init_rc_map_lirc) +module_exit(exit_rc_map_lirc) + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Jarod Wilson "); --- linux-2.6.35.orig/drivers/media/IR/keymaps/Makefile +++ linux-2.6.35/drivers/media/IR/keymaps/Makefile @@ -37,6 +37,7 @@ rc-kaiomy.o \ rc-kworld-315u.o \ rc-kworld-plus-tv-analog.o \ + rc-lirc.o \ rc-manli.o \ rc-msi-tvanywhere.o \ rc-msi-tvanywhere-plus.o \ @@ -57,7 +58,9 @@ rc-pv951.o \ rc-rc5-hauppauge-new.o \ rc-rc5-tv.o \ + rc-rc6-mce.o \ rc-real-audio-220-32-keys.o \ + rc-streamzap.o \ rc-tbs-nec.o \ rc-terratec-cinergy-xs.o \ rc-tevii-nec.o \ --- linux-2.6.35.orig/drivers/media/common/tuners/tda18271-fe.c +++ linux-2.6.35/drivers/media/common/tuners/tda18271-fe.c @@ -1249,7 +1249,7 @@ struct tda18271_config *cfg) { struct tda18271_priv *priv = NULL; - int instance; + int instance, ret; mutex_lock(&tda18271_list_mutex); @@ -1268,10 +1268,12 @@ priv->cal_initialized = false; mutex_init(&priv->lock); - if (tda_fail(tda18271_get_id(fe))) + ret = tda18271_get_id(fe); + if (tda_fail(ret)) goto fail; - if (tda_fail(tda18271_assign_map_layout(fe))) + ret = tda18271_assign_map_layout(fe); + if (tda_fail(ret)) goto fail; mutex_lock(&priv->lock); --- linux-2.6.35.orig/drivers/media/video/ir-kbd-i2c.c +++ linux-2.6.35/drivers/media/video/ir-kbd-i2c.c @@ -47,7 +47,7 @@ #include #include -#include +#include #include /* ----------------------------------------------------------------------- */ @@ -272,11 +272,8 @@ return; } - if (0 == rc) { - ir_input_nokey(ir->input, &ir->ir); - } else { - ir_input_keydown(ir->input, &ir->ir, ir_key); - } + if (rc) + ir_keydown(ir->input, ir_key, 0); } static void ir_work(struct work_struct *work) @@ -439,10 +436,7 @@ dev_name(&client->dev)); /* init + register input device */ - err = ir_input_init(input_dev, &ir->ir, ir_type); - if (err < 0) - goto err_out_free; - + ir->ir_type = ir_type; input_dev->id.bustype = BUS_I2C; input_dev->name = ir->name; input_dev->phys = ir->phys; --- linux-2.6.35.orig/drivers/media/video/v4l2-compat-ioctl32.c +++ linux-2.6.35/drivers/media/video/v4l2-compat-ioctl32.c @@ -198,6 +198,7 @@ static int get_microcode32(struct video_code *kp, struct video_code32 __user *up) { + return -EFAULT; if (!access_ok(VERIFY_READ, up, sizeof(struct video_code32)) || copy_from_user(kp->loadwhat, up->loadwhat, sizeof(up->loadwhat)) || get_user(kp->datasize, &up->datasize) || --- linux-2.6.35.orig/drivers/media/video/em28xx/em28xx-input.c +++ linux-2.6.35/drivers/media/video/em28xx/em28xx-input.c @@ -65,17 +65,14 @@ struct em28xx_IR { struct em28xx *dev; struct input_dev *input; - struct ir_input_state ir; char name[32]; char phys[32]; /* poll external decoder */ int polling; struct delayed_work work; - unsigned int last_toggle:1; unsigned int full_code:1; unsigned int last_readcount; - unsigned int repeat_interval; int (*get_key)(struct em28xx_IR *, struct em28xx_ir_poll_result *); @@ -291,67 +288,39 @@ static void em28xx_ir_handle_key(struct em28xx_IR *ir) { int result; - int do_sendkey = 0; struct em28xx_ir_poll_result poll_result; /* read the registers containing the IR status */ result = ir->get_key(ir, &poll_result); - if (result < 0) { + if (unlikely(result < 0)) { dprintk("ir->get_key() failed %d\n", result); return; } - dprintk("ir->get_key result tb=%02x rc=%02x lr=%02x data=%02x%02x\n", - poll_result.toggle_bit, poll_result.read_count, - ir->last_readcount, poll_result.rc_address, - poll_result.rc_data[0]); - - if (ir->dev->chip_id == CHIP_ID_EM2874) { - /* The em2874 clears the readcount field every time the - register is read. The em2860/2880 datasheet says that it - is supposed to clear the readcount, but it doesn't. So with - the em2874, we are looking for a non-zero read count as - opposed to a readcount that is incrementing */ - ir->last_readcount = 0; - } - - if (poll_result.read_count == 0) { - /* The button has not been pressed since the last read */ - } else if (ir->last_toggle != poll_result.toggle_bit) { - /* A button has been pressed */ - dprintk("button has been pressed\n"); - ir->last_toggle = poll_result.toggle_bit; - ir->repeat_interval = 0; - do_sendkey = 1; - } else if (poll_result.toggle_bit == ir->last_toggle && - poll_result.read_count > 0 && - poll_result.read_count != ir->last_readcount) { - /* The button is still being held down */ - dprintk("button being held down\n"); - - /* Debouncer for first keypress */ - if (ir->repeat_interval++ > 9) { - /* Start repeating after 1 second */ - do_sendkey = 1; - } - } - - if (do_sendkey) { - dprintk("sending keypress\n"); - + if (unlikely(poll_result.read_count != ir->last_readcount)) { + dprintk("%s: toggle: %d, count: %d, key 0x%02x%02x\n", __func__, + poll_result.toggle_bit, poll_result.read_count, + poll_result.rc_address, poll_result.rc_data[0]); if (ir->full_code) - ir_input_keydown(ir->input, &ir->ir, - poll_result.rc_address << 8 | - poll_result.rc_data[0]); + ir_keydown(ir->input, + poll_result.rc_address << 8 | + poll_result.rc_data[0], + poll_result.toggle_bit); else - ir_input_keydown(ir->input, &ir->ir, - poll_result.rc_data[0]); - - ir_input_nokey(ir->input, &ir->ir); + ir_keydown(ir->input, + poll_result.rc_data[0], + poll_result.toggle_bit); + + if (ir->dev->chip_id == CHIP_ID_EM2874) + /* The em2874 clears the readcount field every time the + register is read. The em2860/2880 datasheet says that it + is supposed to clear the readcount, but it doesn't. So with + the em2874, we are looking for a non-zero read count as + opposed to a readcount that is incrementing */ + ir->last_readcount = 0; + else + ir->last_readcount = poll_result.read_count; } - - ir->last_readcount = poll_result.read_count; - return; } static void em28xx_ir_work(struct work_struct *work) @@ -466,11 +435,6 @@ usb_make_path(dev->udev, ir->phys, sizeof(ir->phys)); strlcat(ir->phys, "/input0", sizeof(ir->phys)); - /* Set IR protocol */ - err = ir_input_init(input_dev, &ir->ir, IR_TYPE_OTHER); - if (err < 0) - goto err_out_free; - input_dev->name = ir->name; input_dev->phys = ir->phys; input_dev->id.bustype = BUS_USB; --- linux-2.6.35.orig/drivers/media/video/em28xx/em28xx-video.c +++ linux-2.6.35/drivers/media/video/em28xx/em28xx-video.c @@ -654,12 +654,12 @@ } if (buf != NULL && dev->capture_type == 2) { - if (len > 4 && p[0] == 0x88 && p[1] == 0x88 && + if (len >= 4 && p[0] == 0x88 && p[1] == 0x88 && p[2] == 0x88 && p[3] == 0x88) { p += 4; len -= 4; } - if (len > 4 && p[0] == 0x22 && p[1] == 0x5a) { + if (len >= 4 && p[0] == 0x22 && p[1] == 0x5a) { em28xx_isocdbg("Video frame %d, len=%i, %s\n", p[2], len, (p[2] & 1) ? "odd" : "even"); --- linux-2.6.35.orig/drivers/media/video/em28xx/em28xx.h +++ linux-2.6.35/drivers/media/video/em28xx/em28xx.h @@ -32,6 +32,7 @@ #include #include #include +#include #if defined(CONFIG_VIDEO_EM28XX_DVB) || defined(CONFIG_VIDEO_EM28XX_DVB_MODULE) #include #endif --- linux-2.6.35.orig/drivers/media/video/hdpvr/hdpvr-core.c +++ linux-2.6.35/drivers/media/video/hdpvr/hdpvr-core.c @@ -286,6 +286,8 @@ goto error; } + dev->workqueue = 0; + /* register v4l2_device early so it can be used for printks */ if (v4l2_device_register(&interface->dev, &dev->v4l2_dev)) { err("v4l2_device_register failed"); @@ -380,6 +382,9 @@ error: if (dev) { + /* Destroy single thread */ + if (dev->workqueue) + destroy_workqueue(dev->workqueue); /* this frees allocated memory */ hdpvr_delete(dev); } --- linux-2.6.35.orig/drivers/media/video/pvrusb2/pvrusb2-ioread.c +++ linux-2.6.35/drivers/media/video/pvrusb2/pvrusb2-ioread.c @@ -223,7 +223,10 @@ " pvr2_ioread_setup (setup) id=%p",cp); pvr2_stream_kill(sp); ret = pvr2_stream_set_buffer_count(sp,BUFFER_COUNT); - if (ret < 0) return ret; + if (ret < 0) { + mutex_unlock(&cp->mutex); + return ret; + } for (idx = 0; idx < BUFFER_COUNT; idx++) { bp = pvr2_stream_get_buffer(sp,idx); pvr2_buffer_set_buffer(bp, --- linux-2.6.35.orig/drivers/media/video/cx23885/cx23885-input.c +++ linux-2.6.35/drivers/media/video/cx23885/cx23885-input.c @@ -37,161 +37,55 @@ #include #include -#include +#include #include #include "cx23885.h" -#define RC5_BITS 14 -#define RC5_HALF_BITS (2*RC5_BITS) -#define RC5_HALF_BITS_MASK ((1 << RC5_HALF_BITS) - 1) - -#define RC5_START_BITS_NORMAL 0x3 /* Command range 0 - 63 */ -#define RC5_START_BITS_EXTENDED 0x2 /* Command range 64 - 127 */ - -#define RC5_EXTENDED_COMMAND_OFFSET 64 - #define MODULE_NAME "cx23885" -static inline unsigned int rc5_command(u32 rc5_baseband) -{ - return RC5_INSTR(rc5_baseband) + - ((RC5_START(rc5_baseband) == RC5_START_BITS_EXTENDED) - ? RC5_EXTENDED_COMMAND_OFFSET : 0); -} - -static void cx23885_input_process_raw_rc5(struct cx23885_dev *dev) -{ - struct card_ir *ir_input = dev->ir_input; - unsigned int code, command; - u32 rc5; - - /* Ignore codes that are too short to be valid RC-5 */ - if (ir_input->last_bit < (RC5_HALF_BITS - 1)) - return; - - /* The library has the manchester coding backwards; XOR to adapt. */ - code = (ir_input->code & RC5_HALF_BITS_MASK) ^ RC5_HALF_BITS_MASK; - rc5 = ir_rc5_decode(code); - - switch (RC5_START(rc5)) { - case RC5_START_BITS_NORMAL: - break; - case RC5_START_BITS_EXTENDED: - /* Don't allow if the remote only emits standard commands */ - if (ir_input->start == RC5_START_BITS_NORMAL) - return; - break; - default: - return; - } - - if (ir_input->addr != RC5_ADDR(rc5)) - return; - - /* Don't generate a keypress for RC-5 auto-repeated keypresses */ - command = rc5_command(rc5); - if (RC5_TOGGLE(rc5) != RC5_TOGGLE(ir_input->last_rc5) || - command != rc5_command(ir_input->last_rc5) || - /* Catch T == 0, CMD == 0 (e.g. '0') as first keypress after init */ - RC5_START(ir_input->last_rc5) == 0) { - /* This keypress is differnet: not an auto repeat */ - ir_input_nokey(ir_input->dev, &ir_input->ir); - ir_input_keydown(ir_input->dev, &ir_input->ir, command); - } - ir_input->last_rc5 = rc5; - - /* Schedule when we should do the key up event: ir_input_nokey() */ - mod_timer(&ir_input->timer_keyup, - jiffies + msecs_to_jiffies(ir_input->rc5_key_timeout)); -} - -static void cx23885_input_next_pulse_width_rc5(struct cx23885_dev *dev, - u32 ns_pulse) +static void convert_measurement(u32 x, struct ir_raw_event *y) { - const int rc5_quarterbit_ns = 444444; /* 32 cycles/36 kHz/2 = 444 us */ - struct card_ir *ir_input = dev->ir_input; - int i, level, quarterbits, halfbits; - - if (!ir_input->active) { - ir_input->active = 1; - /* assume an initial space that we may not detect or measure */ - ir_input->code = 0; - ir_input->last_bit = 0; - } - - if (ns_pulse == V4L2_SUBDEV_IR_PULSE_RX_SEQ_END) { - ir_input->last_bit++; /* Account for the final space */ - ir_input->active = 0; - cx23885_input_process_raw_rc5(dev); + if (x == V4L2_SUBDEV_IR_PULSE_RX_SEQ_END) { + y->pulse = false; + y->duration = V4L2_SUBDEV_IR_PULSE_MAX_WIDTH_NS; return; } - level = (ns_pulse & V4L2_SUBDEV_IR_PULSE_LEVEL_MASK) ? 1 : 0; - - /* Skip any leading space to sync to the start bit */ - if (ir_input->last_bit == 0 && level == 0) - return; - - /* - * With valid RC-5 we can get up to two consecutive half-bits in a - * single pulse measurment. Experiments have shown that the duration - * of a half-bit can vary. Make sure we always end up with an even - * number of quarter bits at the same level (mark or space). - */ - ns_pulse &= V4L2_SUBDEV_IR_PULSE_MAX_WIDTH_NS; - quarterbits = ns_pulse / rc5_quarterbit_ns; - if (quarterbits & 1) - quarterbits++; - halfbits = quarterbits / 2; - - for (i = 0; i < halfbits; i++) { - ir_input->last_bit++; - ir_input->code |= (level << ir_input->last_bit); - - if (ir_input->last_bit >= RC5_HALF_BITS-1) { - ir_input->active = 0; - cx23885_input_process_raw_rc5(dev); - /* - * If level is 1, a leading mark is invalid for RC5. - * If level is 0, we scan past extra intial space. - * Either way we don't want to reactivate collecting - * marks or spaces here with any left over half-bits. - */ - break; - } - } + y->pulse = (x & V4L2_SUBDEV_IR_PULSE_LEVEL_MASK) ? true : false; + y->duration = x & V4L2_SUBDEV_IR_PULSE_MAX_WIDTH_NS; } -static void cx23885_input_process_pulse_widths_rc5(struct cx23885_dev *dev, - bool add_eom) +static void cx23885_input_process_measurements(struct cx23885_dev *dev, + bool overrun) { - struct card_ir *ir_input = dev->ir_input; - struct ir_input_state *ir_input_state = &ir_input->ir; + struct cx23885_kernel_ir *kernel_ir = dev->kernel_ir; + struct ir_raw_event kernel_ir_event; - u32 ns_pulse[RC5_HALF_BITS+1]; - ssize_t num = 0; + u32 sd_ir_data[64]; + ssize_t num; int count, i; + bool handle = false; do { - v4l2_subdev_call(dev->sd_ir, ir, rx_read, (u8 *) ns_pulse, - sizeof(ns_pulse), &num); + num = 0; + v4l2_subdev_call(dev->sd_ir, ir, rx_read, (u8 *) sd_ir_data, + sizeof(sd_ir_data), &num); count = num / sizeof(u32); - /* Append an end of Rx seq, if the caller requested */ - if (add_eom && count < ARRAY_SIZE(ns_pulse)) { - ns_pulse[count] = V4L2_SUBDEV_IR_PULSE_RX_SEQ_END; - count++; + for (i = 0; i < count; i++) { + convert_measurement(sd_ir_data[i], &kernel_ir_event); + ir_raw_event_store(kernel_ir->inp_dev, + &kernel_ir_event); + handle = true; } - - /* Just drain the Rx FIFO, if we're called, but not RC-5 */ - if (ir_input_state->ir_type != IR_TYPE_RC5) - continue; - - for (i = 0; i < count; i++) - cx23885_input_next_pulse_width_rc5(dev, ns_pulse[i]); } while (num != 0); + + if (overrun) + ir_raw_event_reset(kernel_ir->inp_dev); + else if (handle) + ir_raw_event_handle(kernel_ir->inp_dev); } void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events) @@ -230,7 +124,7 @@ } if (data_available) - cx23885_input_process_pulse_widths_rc5(dev, overrun); + cx23885_input_process_measurements(dev, overrun); if (overrun) { /* If there was a FIFO overrun, clear & restart the device */ @@ -241,34 +135,15 @@ } } -static void cx23885_input_ir_start(struct cx23885_dev *dev) +static int cx23885_input_ir_start(struct cx23885_dev *dev) { - struct card_ir *ir_input = dev->ir_input; - struct ir_input_state *ir_input_state = &ir_input->ir; struct v4l2_subdev_ir_parameters params; if (dev->sd_ir == NULL) - return; + return -ENODEV; atomic_set(&dev->ir_input_stopping, 0); - /* keyup timer set up, if needed */ - switch (dev->board) { - case CX23885_BOARD_HAUPPAUGE_HVR1850: - case CX23885_BOARD_HAUPPAUGE_HVR1290: - setup_timer(&ir_input->timer_keyup, - ir_rc5_timer_keyup, /* Not actually RC-5 specific */ - (unsigned long) ir_input); - if (ir_input_state->ir_type == IR_TYPE_RC5) { - /* - * RC-5 repeats a held key every - * 64 bits * (2 * 32/36000) sec/bit = 113.778 ms - */ - ir_input->rc5_key_timeout = 115; - } - break; - } - v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, ¶ms); switch (dev->board) { case CX23885_BOARD_HAUPPAUGE_HVR1850: @@ -299,11 +174,21 @@ break; } v4l2_subdev_call(dev->sd_ir, ir, rx_s_parameters, ¶ms); + return 0; +} + +static int cx23885_input_ir_open(void *priv) +{ + struct cx23885_kernel_ir *kernel_ir = priv; + + if (kernel_ir->cx == NULL) + return -ENODEV; + + return cx23885_input_ir_start(kernel_ir->cx); } static void cx23885_input_ir_stop(struct cx23885_dev *dev) { - struct card_ir *ir_input = dev->ir_input; struct v4l2_subdev_ir_parameters params; if (dev->sd_ir == NULL) @@ -327,21 +212,26 @@ } flush_scheduled_work(); +} - switch (dev->board) { - case CX23885_BOARD_HAUPPAUGE_HVR1850: - case CX23885_BOARD_HAUPPAUGE_HVR1290: - del_timer_sync(&ir_input->timer_keyup); - break; - } +static void cx23885_input_ir_close(void *priv) +{ + struct cx23885_kernel_ir *kernel_ir = priv; + + if (kernel_ir->cx != NULL) + cx23885_input_ir_stop(kernel_ir->cx); } int cx23885_input_init(struct cx23885_dev *dev) { - struct card_ir *ir; - struct input_dev *input_dev; - char *ir_codes = NULL; - int ir_type, ir_addr, ir_start; + struct cx23885_kernel_ir *kernel_ir; + struct input_dev *inp_dev; + struct ir_dev_props *props; + + char *rc_map; + enum rc_driver_type driver_type; + unsigned long allowed_protos; + int ret; /* @@ -354,53 +244,59 @@ switch (dev->board) { case CX23885_BOARD_HAUPPAUGE_HVR1850: case CX23885_BOARD_HAUPPAUGE_HVR1290: - /* Parameters for the grey Hauppauge remote for the HVR-1850 */ - ir_codes = RC_MAP_HAUPPAUGE_NEW; - ir_type = IR_TYPE_RC5; - ir_addr = 0x1e; /* RC-5 system bits emitted by the remote */ - ir_start = RC5_START_BITS_NORMAL; /* A basic RC-5 remote */ + /* Integrated CX23888 IR controller */ + driver_type = RC_DRIVER_IR_RAW; + allowed_protos = IR_TYPE_ALL; + /* The grey Hauppauge RC-5 remote */ + rc_map = RC_MAP_RC5_HAUPPAUGE_NEW; break; - } - if (ir_codes == NULL) + default: return -ENODEV; + } - ir = kzalloc(sizeof(*ir), GFP_KERNEL); - input_dev = input_allocate_device(); - if (!ir || !input_dev) { + /* cx23885 board instance kernel IR state */ + kernel_ir = kzalloc(sizeof(struct cx23885_kernel_ir), GFP_KERNEL); + if (kernel_ir == NULL) + return -ENOMEM; + + kernel_ir->cx = dev; + kernel_ir->name = kasprintf(GFP_KERNEL, "cx23885 IR (%s)", + cx23885_boards[dev->board].name); + kernel_ir->phys = kasprintf(GFP_KERNEL, "pci-%s/ir0", + pci_name(dev->pci)); + + /* input device */ + inp_dev = input_allocate_device(); + if (inp_dev == NULL) { ret = -ENOMEM; goto err_out_free; } - ir->dev = input_dev; - ir->addr = ir_addr; - ir->start = ir_start; - - /* init input device */ - snprintf(ir->name, sizeof(ir->name), "cx23885 IR (%s)", - cx23885_boards[dev->board].name); - snprintf(ir->phys, sizeof(ir->phys), "pci-%s/ir0", pci_name(dev->pci)); - - ret = ir_input_init(input_dev, &ir->ir, ir_type); - if (ret < 0) - goto err_out_free; - - input_dev->name = ir->name; - input_dev->phys = ir->phys; - input_dev->id.bustype = BUS_PCI; - input_dev->id.version = 1; + kernel_ir->inp_dev = inp_dev; + inp_dev->name = kernel_ir->name; + inp_dev->phys = kernel_ir->phys; + inp_dev->id.bustype = BUS_PCI; + inp_dev->id.version = 1; if (dev->pci->subsystem_vendor) { - input_dev->id.vendor = dev->pci->subsystem_vendor; - input_dev->id.product = dev->pci->subsystem_device; + inp_dev->id.vendor = dev->pci->subsystem_vendor; + inp_dev->id.product = dev->pci->subsystem_device; } else { - input_dev->id.vendor = dev->pci->vendor; - input_dev->id.product = dev->pci->device; + inp_dev->id.vendor = dev->pci->vendor; + inp_dev->id.product = dev->pci->device; } - input_dev->dev.parent = &dev->pci->dev; - - dev->ir_input = ir; - cx23885_input_ir_start(dev); + inp_dev->dev.parent = &dev->pci->dev; - ret = ir_input_register(ir->dev, ir_codes, NULL, MODULE_NAME); + /* kernel ir device properties */ + props = &kernel_ir->props; + props->driver_type = driver_type; + props->allowed_protos = allowed_protos; + props->priv = kernel_ir; + props->open = cx23885_input_ir_open; + props->close = cx23885_input_ir_close; + + /* Go */ + dev->kernel_ir = kernel_ir; + ret = ir_input_register(inp_dev, rc_map, props, MODULE_NAME); if (ret) goto err_out_stop; @@ -408,9 +304,12 @@ err_out_stop: cx23885_input_ir_stop(dev); - dev->ir_input = NULL; + dev->kernel_ir = NULL; + /* TODO: double check clean-up of kernel_ir->inp_dev */ err_out_free: - kfree(ir); + kfree(kernel_ir->phys); + kfree(kernel_ir->name); + kfree(kernel_ir); return ret; } @@ -419,9 +318,11 @@ /* Always stop the IR hardware from generating interrupts */ cx23885_input_ir_stop(dev); - if (dev->ir_input == NULL) + if (dev->kernel_ir == NULL) return; - ir_input_unregister(dev->ir_input->dev); - kfree(dev->ir_input); - dev->ir_input = NULL; + ir_input_unregister(dev->kernel_ir->inp_dev); + kfree(dev->kernel_ir->phys); + kfree(dev->kernel_ir->name); + kfree(dev->kernel_ir); + dev->kernel_ir = NULL; } --- linux-2.6.35.orig/drivers/media/video/cx23885/cx23885-dvb.c +++ linux-2.6.35/drivers/media/video/cx23885/cx23885-dvb.c @@ -991,7 +991,7 @@ ret = videobuf_dvb_register_bus(&port->frontends, THIS_MODULE, port, &dev->pci->dev, adapter_nr, 0, cx23885_dvb_fe_ioctl_override); - if (!ret) + if (ret) return ret; /* init CI & MAC */ --- linux-2.6.35.orig/drivers/media/video/cx23885/cx23885.h +++ linux-2.6.35/drivers/media/video/cx23885/cx23885.h @@ -30,6 +30,7 @@ #include #include #include +#include #include "btcx-risc.h" #include "cx23885-reg.h" @@ -304,6 +305,15 @@ void *port_priv; }; +struct cx23885_kernel_ir { + struct cx23885_dev *cx; + char *name; + char *phys; + + struct input_dev *inp_dev; + struct ir_dev_props props; +}; + struct cx23885_dev { atomic_t refcount; struct v4l2_device v4l2_dev; @@ -363,7 +373,7 @@ struct work_struct ir_tx_work; unsigned long ir_tx_notifications; - struct card_ir *ir_input; + struct cx23885_kernel_ir *kernel_ir; atomic_t ir_input_stopping; /* V4l */ --- linux-2.6.35.orig/drivers/media/video/cx23885/cx23885-ir.c +++ linux-2.6.35/drivers/media/video/cx23885/cx23885-ir.c @@ -53,7 +53,7 @@ if (events == 0) return; - if (dev->ir_input) + if (dev->kernel_ir) cx23885_input_rx_work_handler(dev, events); } --- linux-2.6.35.orig/drivers/media/video/cx23885/cx23885-cards.c +++ linux-2.6.35/drivers/media/video/cx23885/cx23885-cards.c @@ -408,10 +408,18 @@ .card = CX23885_BOARD_HAUPPAUGE_HVR1275, }, { .subvendor = 0x0070, + .subdevice = 0x221d, + .card = CX23885_BOARD_HAUPPAUGE_HVR1275, + }, { + .subvendor = 0x0070, .subdevice = 0x2251, .card = CX23885_BOARD_HAUPPAUGE_HVR1255, }, { .subvendor = 0x0070, + .subdevice = 0x2259, + .card = CX23885_BOARD_HAUPPAUGE_HVR1255, + }, { + .subvendor = 0x0070, .subdevice = 0x2291, .card = CX23885_BOARD_HAUPPAUGE_HVR1210, }, { @@ -419,6 +427,38 @@ .subdevice = 0x2295, .card = CX23885_BOARD_HAUPPAUGE_HVR1210, }, { + .subvendor = 0x0070, + .subdevice = 0x2299, + .card = CX23885_BOARD_HAUPPAUGE_HVR1210, + }, { + .subvendor = 0x0070, + .subdevice = 0x229d, + .card = CX23885_BOARD_HAUPPAUGE_HVR1210, /* HVR1215 */ + }, { + .subvendor = 0x0070, + .subdevice = 0x22f0, + .card = CX23885_BOARD_HAUPPAUGE_HVR1210, + }, { + .subvendor = 0x0070, + .subdevice = 0x22f1, + .card = CX23885_BOARD_HAUPPAUGE_HVR1255, + }, { + .subvendor = 0x0070, + .subdevice = 0x22f2, + .card = CX23885_BOARD_HAUPPAUGE_HVR1275, + }, { + .subvendor = 0x0070, + .subdevice = 0x22f3, + .card = CX23885_BOARD_HAUPPAUGE_HVR1210, /* HVR1215 */ + }, { + .subvendor = 0x0070, + .subdevice = 0x22f4, + .card = CX23885_BOARD_HAUPPAUGE_HVR1210, + }, { + .subvendor = 0x0070, + .subdevice = 0x22f5, + .card = CX23885_BOARD_HAUPPAUGE_HVR1210, /* HVR1215 */ + }, { .subvendor = 0x14f1, .subdevice = 0x8651, .card = CX23885_BOARD_MYGICA_X8506, --- linux-2.6.35.orig/drivers/media/video/cx23885/cx23885-core.c +++ linux-2.6.35/drivers/media/video/cx23885/cx23885-core.c @@ -1142,7 +1142,7 @@ BUG_ON(in_interrupt()); videobuf_waiton(&buf->vb, 0, 0); - videobuf_dma_unmap(q, dma); + videobuf_dma_unmap(q->dev, dma); videobuf_dma_free(dma); btcx_riscmem_free(to_pci_dev(q->dev), &buf->risc); buf->vb.state = VIDEOBUF_NEEDS_INIT; @@ -1953,8 +1953,12 @@ goto fail_irq; } - err = request_irq(pci_dev->irq, cx23885_irq, - IRQF_SHARED | IRQF_DISABLED, dev->name, dev); + if (!pci_enable_msi(pci_dev)) + err = request_irq(pci_dev->irq, cx23885_irq, + IRQF_DISABLED, dev->name, dev); + else + err = request_irq(pci_dev->irq, cx23885_irq, + IRQF_SHARED | IRQF_DISABLED, dev->name, dev); if (err < 0) { printk(KERN_ERR "%s: can't get IRQ %d\n", dev->name, pci_dev->irq); @@ -2000,6 +2004,7 @@ /* unregister stuff */ free_irq(pci_dev->irq, dev); + pci_disable_msi(pci_dev); cx23885_dev_unregister(dev); v4l2_device_unregister(v4l2_dev); --- linux-2.6.35.orig/drivers/media/video/cx88/cx88-i2c.c +++ linux-2.6.35/drivers/media/video/cx88/cx88-i2c.c @@ -181,6 +181,11 @@ } else printk("%s: i2c register FAILED\n", core->name); + return core->i2c_rc; +} + +void cx88_i2c_init_ir(struct cx88_core *core) +{ /* Instantiate the IR receiver device, if present */ if (0 == core->i2c_rc) { struct i2c_board_info info; @@ -207,7 +212,6 @@ } } } - return core->i2c_rc; } /* ----------------------------------------------------------------------- */ --- linux-2.6.35.orig/drivers/media/video/cx88/cx88-cards.c +++ linux-2.6.35/drivers/media/video/cx88/cx88-cards.c @@ -45,6 +45,10 @@ module_param(latency,int,0444); MODULE_PARM_DESC(latency,"pci latency timer"); +static int disable_ir; +module_param(disable_ir, int, 0444); +MODULE_PARM_DESC(latency, "Disable IR support"); + #define info_printk(core, fmt, arg...) \ printk(KERN_INFO "%s: " fmt, core->name , ## arg) @@ -3498,7 +3502,10 @@ } cx88_card_setup(core); - cx88_ir_init(core, pci); + if (!disable_ir) { + cx88_i2c_init_ir(core); + cx88_ir_init(core, pci); + } return core; } --- linux-2.6.35.orig/drivers/media/video/cx88/cx88-input.c +++ linux-2.6.35/drivers/media/video/cx88/cx88-input.c @@ -30,6 +30,7 @@ #include #include "cx88.h" +#include #include #define MODULE_NAME "cx88xx" @@ -39,8 +40,8 @@ struct cx88_IR { struct cx88_core *core; struct input_dev *input; - struct ir_input_state ir; struct ir_dev_props props; + u64 ir_type; int users; @@ -51,7 +52,6 @@ u32 sampling; u32 samples[16]; int scount; - unsigned long release; /* poll external decoder */ int polling; @@ -125,29 +125,21 @@ data = (data << 4) | ((gpio_key & 0xf0) >> 4); - ir_input_keydown(ir->input, &ir->ir, data); - ir_input_nokey(ir->input, &ir->ir); + ir_keydown(ir->input, data, 0); } else if (ir->mask_keydown) { /* bit set on keydown */ - if (gpio & ir->mask_keydown) { - ir_input_keydown(ir->input, &ir->ir, data); - } else { - ir_input_nokey(ir->input, &ir->ir); - } + if (gpio & ir->mask_keydown) + ir_keydown(ir->input, data, 0); } else if (ir->mask_keyup) { /* bit cleared on keydown */ - if (0 == (gpio & ir->mask_keyup)) { - ir_input_keydown(ir->input, &ir->ir, data); - } else { - ir_input_nokey(ir->input, &ir->ir); - } + if (0 == (gpio & ir->mask_keyup)) + ir_keydown(ir->input, data, 0); } else { /* can't distinguish keydown/up :-/ */ - ir_input_keydown(ir->input, &ir->ir, data); - ir_input_nokey(ir->input, &ir->ir); + ir_keydown(ir->input, data, 0); } } @@ -439,9 +431,7 @@ snprintf(ir->name, sizeof(ir->name), "cx88 IR (%s)", core->board.name); snprintf(ir->phys, sizeof(ir->phys), "pci-%s/ir0", pci_name(pci)); - err = ir_input_init(input_dev, &ir->ir, ir_type); - if (err < 0) - goto err_out_free; + ir->ir_type = ir_type; input_dev->name = ir->name; input_dev->phys = ir->phys; @@ -516,8 +506,6 @@ } if (!ir->scount) { /* nothing to sample */ - if (ir->ir.keypressed && time_after(jiffies, ir->release)) - ir_input_nokey(ir->input, &ir->ir); return; } @@ -553,7 +541,7 @@ if (ircode == 0) { /* key still pressed */ ir_dprintk("pulse distance decoded repeat code\n"); - ir->release = jiffies + msecs_to_jiffies(120); + ir_repeat(ir->input); break; } @@ -567,10 +555,8 @@ break; } - ir_dprintk("Key Code: %x\n", (ircode >> 16) & 0x7f); - - ir_input_keydown(ir->input, &ir->ir, (ircode >> 16) & 0x7f); - ir->release = jiffies + msecs_to_jiffies(120); + ir_dprintk("Key Code: %x\n", (ircode >> 16) & 0xff); + ir_keydown(ir->input, (ircode >> 16) & 0xff, 0); break; case CX88_BOARD_HAUPPAUGE: case CX88_BOARD_HAUPPAUGE_DVB_T1: @@ -606,16 +592,16 @@ if ( dev != 0x1e && dev != 0x1f ) /* not a hauppauge remote */ break; - ir_input_keydown(ir->input, &ir->ir, code); - ir->release = jiffies + msecs_to_jiffies(120); + ir_keydown(ir->input, code, toggle); break; case CX88_BOARD_PINNACLE_PCTV_HD_800i: ircode = ir_decode_biphase(ir->samples, ir->scount, 5, 7); ir_dprintk("biphase decoded: %x\n", ircode); if ((ircode & 0xfffff000) != 0x3000) break; - ir_input_keydown(ir->input, &ir->ir, ircode & 0x3f); - ir->release = jiffies + msecs_to_jiffies(120); + /* Note: bit 0x800 being the toggle is assumed, not checked + with real hardware */ + ir_keydown(ir->input, ircode & 0x3f, ircode & 0x0800 ? 1 : 0); break; } --- linux-2.6.35.orig/drivers/media/video/cx88/cx88.h +++ linux-2.6.35/drivers/media/video/cx88/cx88.h @@ -636,6 +636,7 @@ /* cx88-i2c.c */ extern int cx88_i2c_init(struct cx88_core *core, struct pci_dev *pci); +extern void cx88_i2c_init_ir(struct cx88_core *core); /* ----------------------------------------------------------- */ --- linux-2.6.35.orig/drivers/media/dvb/mantis/mantis_input.c +++ linux-2.6.35/drivers/media/dvb/mantis/mantis_input.c @@ -19,7 +19,7 @@ */ #include -#include +#include #include #include "dmxdev.h" @@ -104,7 +104,6 @@ int mantis_input_init(struct mantis_pci *mantis) { struct input_dev *rc; - struct ir_input_state rc_state; char name[80], dev[80]; int err; @@ -120,8 +119,6 @@ rc->name = name; rc->phys = dev; - ir_input_init(rc, &rc_state, IR_TYPE_OTHER); - rc->id.bustype = BUS_PCI; rc->id.vendor = mantis->vendor_id; rc->id.product = mantis->device_id; --- linux-2.6.35.orig/drivers/media/dvb/mantis/Kconfig +++ linux-2.6.35/drivers/media/dvb/mantis/Kconfig @@ -10,9 +10,15 @@ config DVB_MANTIS tristate "MANTIS based cards" depends on MANTIS_CORE && DVB_CORE && PCI && I2C - select DVB_MB86A16 - select DVB_ZL10353 - select DVB_STV0299 + select DVB_MB86A16 if !DVB_FE_CUSTOMISE + select DVB_ZL10353 if !DVB_FE_CUSTOMISE + select DVB_STV0299 if !DVB_FE_CUSTOMISE + select DVB_LNBP21 if !DVB_FE_CUSTOMISE + select DVB_STB0899 if !DVB_FE_CUSTOMISE + select DVB_STB6100 if !DVB_FE_CUSTOMISE + select DVB_TDA665x if !DVB_FE_CUSTOMISE + select DVB_TDA10021 if !DVB_FE_CUSTOMISE + select DVB_TDA10023 if !DVB_FE_CUSTOMISE select DVB_PLL help Support for PCI cards based on the Mantis PCI bridge. @@ -23,7 +29,7 @@ config DVB_HOPPER tristate "HOPPER based cards" depends on MANTIS_CORE && DVB_CORE && PCI && I2C - select DVB_ZL10353 + select DVB_ZL10353 if !DVB_FE_CUSTOMISE select DVB_PLL help Support for PCI cards based on the Hopper PCI bridge. --- linux-2.6.35.orig/drivers/memstick/core/mspro_block.c +++ linux-2.6.35/drivers/memstick/core/mspro_block.c @@ -1040,6 +1040,7 @@ snprintf(s_attr->name, sizeof(s_attr->name), "attr_x%02x", attr->entries[cnt].id); + sysfs_attr_init(&s_attr->dev_attr.attr); s_attr->dev_attr.attr.name = s_attr->name; s_attr->dev_attr.attr.mode = S_IRUGO; s_attr->dev_attr.show = mspro_block_attr_show(s_attr->id); @@ -1330,13 +1331,14 @@ struct mspro_block_data *msb = memstick_get_drvdata(card); unsigned long flags; - del_gendisk(msb->disk); - dev_dbg(&card->dev, "mspro block remove\n"); spin_lock_irqsave(&msb->q_lock, flags); msb->eject = 1; blk_start_queue(msb->queue); spin_unlock_irqrestore(&msb->q_lock, flags); + del_gendisk(msb->disk); + dev_dbg(&card->dev, "mspro block remove\n"); + blk_cleanup_queue(msb->queue); msb->queue = NULL; --- linux-2.6.35.orig/drivers/mmc/core/host.c +++ linux-2.6.35/drivers/mmc/core/host.c @@ -17,6 +17,7 @@ #include #include #include +#include #include @@ -85,6 +86,9 @@ init_waitqueue_head(&host->wq); INIT_DELAYED_WORK(&host->detect, mmc_rescan); INIT_DELAYED_WORK_DEFERRABLE(&host->disable, mmc_host_deeper_disable); +#ifdef CONFIG_PM + host->pm_notify.notifier_call = mmc_pm_notify; +#endif /* * By default, hosts do not support SGIO or large requests. @@ -133,6 +137,7 @@ #endif mmc_start_host(host); + register_pm_notifier(&host->pm_notify); return 0; } @@ -149,6 +154,7 @@ */ void mmc_remove_host(struct mmc_host *host) { + unregister_pm_notifier(&host->pm_notify); mmc_stop_host(host); #ifdef CONFIG_DEBUG_FS --- linux-2.6.35.orig/drivers/mmc/core/core.c +++ linux-2.6.35/drivers/mmc/core/core.c @@ -1057,6 +1057,17 @@ container_of(work, struct mmc_host, detect.work); u32 ocr; int err; + unsigned long flags; + + spin_lock_irqsave(&host->lock, flags); + + if (host->rescan_disable) { + spin_unlock_irqrestore(&host->lock, flags); + return; + } + + spin_unlock_irqrestore(&host->lock, flags); + mmc_bus_get(host); @@ -1266,19 +1277,6 @@ if (host->bus_ops && !host->bus_dead) { if (host->bus_ops->suspend) err = host->bus_ops->suspend(host); - if (err == -ENOSYS || !host->bus_ops->resume) { - /* - * We simply "remove" the card in this case. - * It will be redetected on resume. - */ - if (host->bus_ops->remove) - host->bus_ops->remove(host); - mmc_claim_host(host); - mmc_detach_bus(host); - mmc_release_host(host); - host->pm_flags = 0; - err = 0; - } } mmc_bus_put(host); @@ -1310,28 +1308,61 @@ printk(KERN_WARNING "%s: error %d during resume " "(card was removed?)\n", mmc_hostname(host), err); - if (host->bus_ops->remove) - host->bus_ops->remove(host); - mmc_claim_host(host); - mmc_detach_bus(host); - mmc_release_host(host); - /* no need to bother upper layers */ err = 0; } } mmc_bus_put(host); - /* - * We add a slight delay here so that resume can progress - * in parallel. - */ - mmc_detect_change(host, 1); - return err; } - EXPORT_SYMBOL(mmc_resume_host); +/* Do the card removal on suspend if card is assumed removeable + * Do that in pm notifier while userspace isn't yet frozen, so we will be able + to sync the card. +*/ +int mmc_pm_notify(struct notifier_block *notify_block, + unsigned long mode, void *unused) +{ + struct mmc_host *host = container_of( + notify_block, struct mmc_host, pm_notify); + unsigned long flags; + + + switch (mode) { + case PM_HIBERNATION_PREPARE: + case PM_SUSPEND_PREPARE: + + spin_lock_irqsave(&host->lock, flags); + host->rescan_disable = 1; + spin_unlock_irqrestore(&host->lock, flags); + cancel_delayed_work_sync(&host->detect); + + if (!host->bus_ops || host->bus_ops->suspend) + break; + + mmc_claim_host(host); + + if (host->bus_ops->remove) + host->bus_ops->remove(host); + + mmc_detach_bus(host); + mmc_release_host(host); + host->pm_flags = 0; + break; + + case PM_POST_SUSPEND: + case PM_POST_HIBERNATION: + + spin_lock_irqsave(&host->lock, flags); + host->rescan_disable = 0; + spin_unlock_irqrestore(&host->lock, flags); + mmc_detect_change(host, 0); + + } + + return 0; +} #endif static int __init mmc_init(void) --- linux-2.6.35.orig/drivers/mmc/host/tmio_mmc.h +++ linux-2.6.35/drivers/mmc/host/tmio_mmc.h @@ -82,10 +82,7 @@ #define ack_mmc_irqs(host, i) \ do { \ - u32 mask;\ - mask = sd_ctrl_read32((host), CTL_STATUS); \ - mask &= ~((i) & TMIO_MASK_IRQ); \ - sd_ctrl_write32((host), CTL_STATUS, mask); \ + sd_ctrl_write32((host), CTL_STATUS, ~(i)); \ } while (0) @@ -177,19 +174,17 @@ return --host->sg_len; } -static inline char *tmio_mmc_kmap_atomic(struct tmio_mmc_host *host, +static inline char *tmio_mmc_kmap_atomic(struct scatterlist *sg, unsigned long *flags) { - struct scatterlist *sg = host->sg_ptr; - local_irq_save(*flags); return kmap_atomic(sg_page(sg), KM_BIO_SRC_IRQ) + sg->offset; } -static inline void tmio_mmc_kunmap_atomic(struct tmio_mmc_host *host, +static inline void tmio_mmc_kunmap_atomic(void *virt, unsigned long *flags) { - kunmap_atomic(sg_page(host->sg_ptr), KM_BIO_SRC_IRQ); + kunmap_atomic(virt, KM_BIO_SRC_IRQ); local_irq_restore(*flags); } --- linux-2.6.35.orig/drivers/mmc/host/omap_hsmmc.c +++ linux-2.6.35/drivers/mmc/host/omap_hsmmc.c @@ -2010,7 +2010,7 @@ host->slot_id = 0; host->mapbase = res->start; host->base = ioremap(host->mapbase, SZ_4K); - host->power_mode = MMC_POWER_OFF; + host->power_mode = -1; platform_set_drvdata(pdev, host); INIT_WORK(&host->mmc_carddetect_work, omap_hsmmc_detect); @@ -2096,10 +2096,23 @@ mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED | MMC_CAP_WAIT_WHILE_BUSY; - if (mmc_slot(host).wires >= 8) + switch (mmc_slot(host).wires) { + case 8: mmc->caps |= MMC_CAP_8_BIT_DATA; - else if (mmc_slot(host).wires >= 4) + /* Fall through */ + case 4: mmc->caps |= MMC_CAP_4_BIT_DATA; + break; + case 1: + /* Nothing to crib here */ + case 0: + /* Assuming nothing was given by board, Core use's 1-Bit */ + break; + default: + /* Completely unexpected.. Core goes with 1-Bit Width */ + dev_crit(mmc_dev(host->mmc), "Invalid width %d\n used!" + "using 1 instead\n", mmc_slot(host).wires); + } if (mmc_slot(host).nonremovable) mmc->caps |= MMC_CAP_NONREMOVABLE; --- linux-2.6.35.orig/drivers/mmc/host/tmio_mmc.c +++ linux-2.6.35/drivers/mmc/host/tmio_mmc.c @@ -164,6 +164,7 @@ static void tmio_mmc_pio_irq(struct tmio_mmc_host *host) { struct mmc_data *data = host->data; + void *sg_virt; unsigned short *buf; unsigned int count; unsigned long flags; @@ -173,8 +174,8 @@ return; } - buf = (unsigned short *)(tmio_mmc_kmap_atomic(host, &flags) + - host->sg_off); + sg_virt = tmio_mmc_kmap_atomic(host->sg_ptr, &flags); + buf = (unsigned short *)(sg_virt + host->sg_off); count = host->sg_ptr->length - host->sg_off; if (count > data->blksz) @@ -191,7 +192,7 @@ host->sg_off += count; - tmio_mmc_kunmap_atomic(host, &flags); + tmio_mmc_kunmap_atomic(sg_virt, &flags); if (host->sg_off == host->sg_ptr->length) tmio_mmc_next_sg(host); --- linux-2.6.35.orig/drivers/ide/ide-cd.c +++ linux-2.6.35/drivers/ide/ide-cd.c @@ -506,15 +506,22 @@ return (flags & REQ_FAILED) ? -EIO : 0; } -static void ide_cd_error_cmd(ide_drive_t *drive, struct ide_cmd *cmd) +/* + * returns true if rq has been completed + */ +static bool ide_cd_error_cmd(ide_drive_t *drive, struct ide_cmd *cmd) { unsigned int nr_bytes = cmd->nbytes - cmd->nleft; if (cmd->tf_flags & IDE_TFLAG_WRITE) nr_bytes -= cmd->last_xfer_len; - if (nr_bytes > 0) + if (nr_bytes > 0) { ide_complete_rq(drive, 0, nr_bytes); + return true; + } + + return false; } static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive) @@ -679,7 +686,8 @@ } if (uptodate == 0 && rq->bio) - ide_cd_error_cmd(drive, cmd); + if (ide_cd_error_cmd(drive, cmd)) + return ide_stopped; /* make sure it's fully ended */ if (blk_fs_request(rq) == 0) { --- linux-2.6.35.orig/drivers/pci/msi.c +++ linux-2.6.35/drivers/pci/msi.c @@ -196,6 +196,9 @@ void read_msi_msg_desc(struct irq_desc *desc, struct msi_msg *msg) { struct msi_desc *entry = get_irq_desc_msi(desc); + + BUG_ON(entry->dev->current_state != PCI_D0); + if (entry->msi_attrib.is_msix) { void __iomem *base = entry->mask_base + entry->msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE; @@ -229,10 +232,32 @@ read_msi_msg_desc(desc, msg); } +void get_cached_msi_msg_desc(struct irq_desc *desc, struct msi_msg *msg) +{ + struct msi_desc *entry = get_irq_desc_msi(desc); + + /* Assert that the cache is valid, assuming that + * valid messages are not all-zeroes. */ + BUG_ON(!(entry->msg.address_hi | entry->msg.address_lo | + entry->msg.data)); + + *msg = entry->msg; +} + +void get_cached_msi_msg(unsigned int irq, struct msi_msg *msg) +{ + struct irq_desc *desc = irq_to_desc(irq); + + get_cached_msi_msg_desc(desc, msg); +} + void write_msi_msg_desc(struct irq_desc *desc, struct msi_msg *msg) { struct msi_desc *entry = get_irq_desc_msi(desc); - if (entry->msi_attrib.is_msix) { + + if (entry->dev->current_state != PCI_D0) { + /* Don't touch the hardware now */ + } else if (entry->msi_attrib.is_msix) { void __iomem *base; base = entry->mask_base + entry->msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE; --- linux-2.6.35.orig/drivers/pci/quirks.c +++ linux-2.6.35/drivers/pci/quirks.c @@ -150,6 +150,26 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_3, quirk_isa_dma_hangs); /* + * Intel NM10 "TigerPoint" LPC PM1a_STS.BM_STS must be clear + * for some HT machines to use C4 w/o hanging. + */ +static void __devinit quirk_tigerpoint_bm_sts(struct pci_dev *dev) +{ + u32 pmbase; + u16 pm1a; + + pci_read_config_dword(dev, 0x40, &pmbase); + pmbase = pmbase & 0xff80; + pm1a = inw(pmbase); + + if (pm1a & 0x10) { + dev_info(&dev->dev, FW_BUG "TigerPoint LPC.BM_STS cleared\n"); + outw(0x10, pmbase); + } +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TGP_LPC, quirk_tigerpoint_bm_sts); + +/* * Chipsets where PCI->PCI transfers vanish or hang */ static void __devinit quirk_nopcipci(struct pci_dev *dev) @@ -2115,6 +2135,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3336, quirk_disable_all_msi); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3364, quirk_disable_all_msi); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8380_0, quirk_disable_all_msi); /* Disable MSI on chipsets that are known to not support it */ static void __devinit quirk_disable_msi(struct pci_dev *dev) @@ -2390,6 +2411,9 @@ int pos; int found; + if (!pci_msi_enabled()) + return; + /* check if there is HT MSI cap or enabled on this device */ found = ht_check_msi_mapping(dev); --- linux-2.6.35.orig/drivers/pci/intel-iommu.c +++ linux-2.6.35/drivers/pci/intel-iommu.c @@ -71,6 +71,49 @@ #define DMA_32BIT_PFN IOVA_PFN(DMA_BIT_MASK(32)) #define DMA_64BIT_PFN IOVA_PFN(DMA_BIT_MASK(64)) +/* page table handling */ +#define LEVEL_STRIDE (9) +#define LEVEL_MASK (((u64)1 << LEVEL_STRIDE) - 1) + +static inline int agaw_to_level(int agaw) +{ + return agaw + 2; +} + +static inline int agaw_to_width(int agaw) +{ + return 30 + agaw * LEVEL_STRIDE; +} + +static inline int width_to_agaw(int width) +{ + return (width - 30) / LEVEL_STRIDE; +} + +static inline unsigned int level_to_offset_bits(int level) +{ + return (level - 1) * LEVEL_STRIDE; +} + +static inline int pfn_level_offset(unsigned long pfn, int level) +{ + return (pfn >> level_to_offset_bits(level)) & LEVEL_MASK; +} + +static inline unsigned long level_mask(int level) +{ + return -1UL << level_to_offset_bits(level); +} + +static inline unsigned long level_size(int level) +{ + return 1UL << level_to_offset_bits(level); +} + +static inline unsigned long align_to_level(unsigned long pfn, int level) +{ + return (pfn + level_size(level) - 1) & level_mask(level); +} /* VT-d pages must always be _smaller_ than MM pages. Otherwise things are never going to work. */ @@ -434,8 +477,6 @@ } -static inline int width_to_agaw(int width); - static int __iommu_calculate_agaw(struct intel_iommu *iommu, int max_gaw) { unsigned long sagaw; @@ -646,51 +687,6 @@ spin_unlock_irqrestore(&iommu->lock, flags); } -/* page table handling */ -#define LEVEL_STRIDE (9) -#define LEVEL_MASK (((u64)1 << LEVEL_STRIDE) - 1) - -static inline int agaw_to_level(int agaw) -{ - return agaw + 2; -} - -static inline int agaw_to_width(int agaw) -{ - return 30 + agaw * LEVEL_STRIDE; - -} - -static inline int width_to_agaw(int width) -{ - return (width - 30) / LEVEL_STRIDE; -} - -static inline unsigned int level_to_offset_bits(int level) -{ - return (level - 1) * LEVEL_STRIDE; -} - -static inline int pfn_level_offset(unsigned long pfn, int level) -{ - return (pfn >> level_to_offset_bits(level)) & LEVEL_MASK; -} - -static inline unsigned long level_mask(int level) -{ - return -1UL << level_to_offset_bits(level); -} - -static inline unsigned long level_size(int level) -{ - return 1UL << level_to_offset_bits(level); -} - -static inline unsigned long align_to_level(unsigned long pfn, int level) -{ - return (pfn + level_size(level) - 1) & level_mask(level); -} - static struct dma_pte *pfn_to_dma_pte(struct dmar_domain *domain, unsigned long pfn) { @@ -3030,6 +3026,34 @@ } +static void quirk_ioat_snb_local_iommu(struct pci_dev *pdev) +{ + struct dmar_drhd_unit *drhd; + u32 vtbar; + int rc; + + /* We know that this device on this chipset has its own IOMMU. + * If we find it under a different IOMMU, then the BIOS is lying + * to us. Hope that the IOMMU for this device is actually + * disabled, and it needs no translation... + */ + rc = pci_bus_read_config_dword(pdev->bus, PCI_DEVFN(0, 0), 0xb0, &vtbar); + if (rc) { + /* "can't" happen */ + dev_info(&pdev->dev, "failed to run vt-d quirk\n"); + return; + } + vtbar &= 0xffff0000; + + /* we know that the this iommu should be at offset 0xa000 from vtbar */ + drhd = dmar_find_matched_drhd_unit(pdev); + if (WARN_TAINT_ONCE(!drhd || drhd->reg_base_addr - vtbar != 0xa000, + TAINT_FIRMWARE_WORKAROUND, + "BIOS assigned incorrect VT-d unit for Intel(R) QuickData Technology device\n")) + pdev->dev.archdata.iommu = DUMMY_DEVICE_DOMAIN_INFO; +} +DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_SNB, quirk_ioat_snb_local_iommu); + static void __init init_no_remapping_devices(void) { struct dmar_drhd_unit *drhd; --- linux-2.6.35.orig/drivers/edac/amd64_edac.c +++ linux-2.6.35/drivers/edac/amd64_edac.c @@ -178,7 +178,7 @@ default: amd64_printk(KERN_ERR, "Unsupported family!\n"); - break; + return -EINVAL; } return amd64_search_set_scrub_rate(pvt->misc_f3_ctl, *bandwidth, min_scrubrate); @@ -1430,7 +1430,7 @@ u64 chan_off; if (hi_range_sel) { - if (!(dct_sel_base_addr & 0xFFFFF800) && + if (!(dct_sel_base_addr & 0xFFFF0000) && hole_valid && (sys_addr >= 0x100000000ULL)) chan_off = hole_off << 16; else @@ -1679,7 +1679,7 @@ * ganged. Otherwise @chan should already contain the channel at * this point. */ - if (dct_ganging_enabled(pvt) && pvt->nbcfg & K8_NBCFG_CHIPKILL) + if (dct_ganging_enabled(pvt) && (pvt->nbcfg & K8_NBCFG_CHIPKILL)) chan = get_channel_from_ecc_syndrome(mci, syndrome); if (chan >= 0) --- linux-2.6.35.orig/drivers/input/evdev.c +++ linux-2.6.35/drivers/input/evdev.c @@ -10,7 +10,8 @@ #define EVDEV_MINOR_BASE 64 #define EVDEV_MINORS 32 -#define EVDEV_BUFFER_SIZE 64 +#define EVDEV_MIN_BUFFER_SIZE 64U +#define EVDEV_BUF_PACKETS 8 #include #include @@ -36,13 +37,14 @@ }; struct evdev_client { - struct input_event buffer[EVDEV_BUFFER_SIZE]; int head; int tail; spinlock_t buffer_lock; /* protects access to buffer, head and tail */ struct fasync_struct *fasync; struct evdev *evdev; struct list_head node; + int bufsize; + struct input_event buffer[]; }; static struct evdev *evdev_table[EVDEV_MINORS]; @@ -52,11 +54,15 @@ struct input_event *event) { /* - * Interrupts are disabled, just acquire the lock + * Interrupts are disabled, just acquire the lock. + * Make sure we don't leave with the client buffer + * "empty" by having client->head == client->tail. */ spin_lock(&client->buffer_lock); - client->buffer[client->head++] = *event; - client->head &= EVDEV_BUFFER_SIZE - 1; + do { + client->buffer[client->head++] = *event; + client->head &= client->bufsize - 1; + } while (client->head == client->tail); spin_unlock(&client->buffer_lock); if (event->type == EV_SYN) @@ -242,11 +248,21 @@ return 0; } +static unsigned int evdev_compute_buffer_size(struct input_dev *dev) +{ + unsigned int n_events = + max(dev->hint_events_per_packet * EVDEV_BUF_PACKETS, + EVDEV_MIN_BUFFER_SIZE); + + return roundup_pow_of_two(n_events); +} + static int evdev_open(struct inode *inode, struct file *file) { struct evdev *evdev; struct evdev_client *client; int i = iminor(inode) - EVDEV_MINOR_BASE; + unsigned int bufsize; int error; if (i >= EVDEV_MINORS) @@ -263,12 +279,17 @@ if (!evdev) return -ENODEV; - client = kzalloc(sizeof(struct evdev_client), GFP_KERNEL); + bufsize = evdev_compute_buffer_size(evdev->handle.dev); + + client = kzalloc(sizeof(struct evdev_client) + + bufsize * sizeof(struct input_event), + GFP_KERNEL); if (!client) { error = -ENOMEM; goto err_put_evdev; } + client->bufsize = bufsize; spin_lock_init(&client->buffer_lock); client->evdev = evdev; evdev_attach_client(evdev, client); @@ -334,7 +355,7 @@ have_event = client->head != client->tail; if (have_event) { *event = client->buffer[client->tail++]; - client->tail &= EVDEV_BUFFER_SIZE - 1; + client->tail &= client->bufsize - 1; } spin_unlock_irq(&client->buffer_lock); @@ -515,6 +536,8 @@ struct input_absinfo abs; struct ff_effect effect; int __user *ip = (int __user *)p; + struct keycode_table_entry kt, *kt_p = p; + char scancode[16]; unsigned int i, t, u, v; int error; @@ -569,6 +592,43 @@ return input_set_keycode(dev, t, v); + case EVIOCGKEYCODEBIG: + if (copy_from_user(&kt, kt_p, sizeof(kt))) + return -EFAULT; + + if (kt.len > sizeof(scancode)) + return -EINVAL; + + kt.scancode = scancode; + + error = input_get_keycode_big(dev, &kt); + if (error) + return error; + + if (copy_to_user(kt_p, &kt, sizeof(kt))) + return -EFAULT; + + /* FIXME: probably need some compat32 code */ + if (copy_to_user(kt_p->scancode, kt.scancode, kt.len)) + return -EFAULT; + + return 0; + + case EVIOCSKEYCODEBIG: + if (copy_from_user(&kt, kt_p, sizeof(kt))) + return -EFAULT; + + if (kt.len > sizeof(scancode)) + return -EINVAL; + + kt.scancode = scancode; + + /* FIXME: probably need some compat32 code */ + if (copy_from_user(kt.scancode, kt_p->scancode, kt.len)) + return -EFAULT; + + return input_set_keycode_big(dev, &kt); + case EVIOCRMFF: return input_ff_erase(dev, (int)(unsigned long) p, file); @@ -665,6 +725,10 @@ sizeof(struct input_absinfo)))) return -EFAULT; + /* We can't change number of reserved MT slots */ + if (t == ABS_MT_SLOT) + return -EINVAL; + /* * Take event lock to ensure that we are not * changing device parameters in the middle --- linux-2.6.35.orig/drivers/input/input.c +++ linux-2.6.35/drivers/input/input.c @@ -33,25 +33,6 @@ #define INPUT_DEVICES 256 -/* - * EV_ABS events which should not be cached are listed here. - */ -static unsigned int input_abs_bypass_init_data[] __initdata = { - ABS_MT_TOUCH_MAJOR, - ABS_MT_TOUCH_MINOR, - ABS_MT_WIDTH_MAJOR, - ABS_MT_WIDTH_MINOR, - ABS_MT_ORIENTATION, - ABS_MT_POSITION_X, - ABS_MT_POSITION_Y, - ABS_MT_TOOL_TYPE, - ABS_MT_BLOB_ID, - ABS_MT_TRACKING_ID, - ABS_MT_PRESSURE, - 0 -}; -static unsigned long input_abs_bypass[BITS_TO_LONGS(ABS_CNT)]; - static LIST_HEAD(input_dev_list); static LIST_HEAD(input_handler_list); @@ -181,6 +162,56 @@ #define INPUT_PASS_TO_DEVICE 2 #define INPUT_PASS_TO_ALL (INPUT_PASS_TO_HANDLERS | INPUT_PASS_TO_DEVICE) +static int input_handle_abs_event(struct input_dev *dev, + unsigned int code, int *pval) +{ + bool is_mt_event; + int *pold; + + if (code == ABS_MT_SLOT) { + /* + * "Stage" the event; we'll flush it later, when we + * get actiual touch data. + */ + if (*pval >= 0 && *pval < dev->mtsize) + dev->slot = *pval; + + return INPUT_IGNORE_EVENT; + } + + is_mt_event = code >= ABS_MT_FIRST && code <= ABS_MT_LAST; + + if (!is_mt_event) { + pold = &dev->abs[code]; + } else if (dev->mt) { + struct input_mt_slot *mtslot = &dev->mt[dev->slot]; + pold = &mtslot->abs[code - ABS_MT_FIRST]; + } else { + /* + * Bypass filtering for multitouch events when + * not employing slots. + */ + pold = NULL; + } + + if (pold) { + *pval = input_defuzz_abs_event(*pval, *pold, + dev->absfuzz[code]); + if (*pold == *pval) + return INPUT_IGNORE_EVENT; + + *pold = *pval; + } + + /* Flush pending "slot" event */ + if (is_mt_event && dev->slot != dev->abs[ABS_MT_SLOT]) { + dev->abs[ABS_MT_SLOT] = dev->slot; + input_pass_event(dev, EV_ABS, ABS_MT_SLOT, dev->slot); + } + + return INPUT_PASS_TO_HANDLERS; +} + static void input_handle_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) { @@ -233,21 +264,9 @@ break; case EV_ABS: - if (is_event_supported(code, dev->absbit, ABS_MAX)) { - - if (test_bit(code, input_abs_bypass)) { - disposition = INPUT_PASS_TO_HANDLERS; - break; - } - - value = input_defuzz_abs_event(value, - dev->abs[code], dev->absfuzz[code]); + if (is_event_supported(code, dev->absbit, ABS_MAX)) + disposition = input_handle_abs_event(dev, code, &value); - if (dev->abs[code] != value) { - dev->abs[code] = value; - disposition = INPUT_PASS_TO_HANDLERS; - } - } break; case EV_REL: @@ -568,6 +587,11 @@ spin_unlock_irq(&dev->event_lock); } +/* + * Those routines handle the default case where no [gs]etkeycode() is + * defined. In this case, an array indexed by the scancode is used. + */ + static int input_fetch_keycode(struct input_dev *dev, int scancode) { switch (dev->keycodesize) { @@ -582,27 +606,74 @@ } } -static int input_default_getkeycode(struct input_dev *dev, - unsigned int scancode, - unsigned int *keycode) +/* + * Supports only 8, 16 and 32 bit scancodes. It wouldn't be that + * hard to write some machine-endian logic to support 24 bit scancodes, + * but it seemed overkill. It should also be noticed that, since there + * are, in general, less than 256 scancodes sparsed into the scancode + * space, even with 16 bits, the codespace is sparsed, with leads into + * memory and code ineficiency, when retrieving the entire scancode + * space. + * So, it is highly recommended to implement getkeycodebig/setkeycodebig + * instead of using a normal table approach, when more than 8 bits is + * needed for the scancode. + */ +static int input_fetch_scancode(struct keycode_table_entry *kt_entry, + u32 *scancode) +{ + switch (kt_entry->len) { + case 1: + *scancode = *((u8 *)kt_entry->scancode); + break; + case 2: + *scancode = *((u16 *)kt_entry->scancode); + break; + case 4: + *scancode = *((u32 *)kt_entry->scancode); + break; + default: + return -EINVAL; + } + return 0; +} + + +static int input_default_getkeycode_from_index(struct input_dev *dev, + struct keycode_table_entry *kt_entry) { + u32 scancode = kt_entry->index; + if (!dev->keycodesize) return -EINVAL; if (scancode >= dev->keycodemax) return -EINVAL; - *keycode = input_fetch_keycode(dev, scancode); + kt_entry->keycode = input_fetch_keycode(dev, scancode); + memcpy(kt_entry->scancode, &scancode, 4); return 0; } +static int input_default_getkeycode_from_scancode(struct input_dev *dev, + struct keycode_table_entry *kt_entry) +{ + if (input_fetch_scancode(kt_entry, &kt_entry->index)) + return -EINVAL; + + return input_default_getkeycode_from_index(dev, kt_entry); +} + + static int input_default_setkeycode(struct input_dev *dev, - unsigned int scancode, - unsigned int keycode) + struct keycode_table_entry *kt_entry) { - int old_keycode; + u32 old_keycode; int i; + u32 scancode; + + if (input_fetch_scancode(kt_entry, &scancode)) + return -EINVAL; if (scancode >= dev->keycodemax) return -EINVAL; @@ -610,32 +681,33 @@ if (!dev->keycodesize) return -EINVAL; - if (dev->keycodesize < sizeof(keycode) && (keycode >> (dev->keycodesize * 8))) + if (dev->keycodesize < sizeof(dev->keycode) && + (kt_entry->keycode >> (dev->keycodesize * 8))) return -EINVAL; switch (dev->keycodesize) { case 1: { u8 *k = (u8 *)dev->keycode; old_keycode = k[scancode]; - k[scancode] = keycode; + k[scancode] = kt_entry->keycode; break; } case 2: { u16 *k = (u16 *)dev->keycode; old_keycode = k[scancode]; - k[scancode] = keycode; + k[scancode] = kt_entry->keycode; break; } default: { u32 *k = (u32 *)dev->keycode; old_keycode = k[scancode]; - k[scancode] = keycode; + k[scancode] = kt_entry->keycode; break; } } __clear_bit(old_keycode, dev->keybit); - __set_bit(keycode, dev->keybit); + __set_bit(kt_entry->keycode, dev->keybit); for (i = 0; i < dev->keycodemax; i++) { if (input_fetch_keycode(dev, i) == old_keycode) { @@ -648,6 +720,110 @@ } /** + * input_get_keycode_big - retrieve keycode currently mapped to a given scancode + * @dev: input device which keymap is being queried + * @kt_entry: keytable entry + * + * This function should be called by anyone interested in retrieving current + * keymap. Presently evdev handlers use it. + */ +int input_get_keycode_big(struct input_dev *dev, + struct keycode_table_entry *kt_entry) +{ + if (dev->getkeycode) { + u32 scancode = kt_entry->index; + + /* + * Support for legacy drivers, that don't implement the new + * ioctls + */ + memcpy(kt_entry->scancode, &scancode, 4); + return dev->getkeycode(dev, scancode, + &kt_entry->keycode); + } else + return dev->getkeycodebig_from_index(dev, kt_entry); +} +EXPORT_SYMBOL(input_get_keycode_big); + +/** + * input_set_keycode_big - attribute a keycode to a given scancode + * @dev: input device which keymap is being queried + * @kt_entry: keytable entry + * + * This function should be called by anyone needing to update current + * keymap. Presently keyboard and evdev handlers use it. + */ +int input_set_keycode_big(struct input_dev *dev, + struct keycode_table_entry *kt_entry) +{ + unsigned long flags; + int old_keycode; + int retval = -EINVAL; + u32 uninitialized_var(scancode); + + if (kt_entry->keycode < 0 || kt_entry->keycode > KEY_MAX) + return -EINVAL; + + spin_lock_irqsave(&dev->event_lock, flags); + + /* + * We need to know the old scancode, in order to generate a + * keyup effect, if the set operation happens successfully + */ + if (dev->getkeycode) { + /* + * Support for legacy drivers, that don't implement the new + * ioctls + */ + if (!dev->setkeycode) + goto out; + + retval = input_fetch_scancode(kt_entry, &scancode); + if (retval) + goto out; + + retval = dev->getkeycode(dev, scancode, + &old_keycode); + } else { + int new_keycode = kt_entry->keycode; + + retval = dev->getkeycodebig_from_scancode(dev, kt_entry); + old_keycode = kt_entry->keycode; + kt_entry->keycode = new_keycode; + } + + if (retval) + goto out; + + if (dev->getkeycode) + retval = dev->setkeycode(dev, scancode, + kt_entry->keycode); + else + retval = dev->setkeycodebig(dev, kt_entry); + if (retval) + goto out; + + /* + * Simulate keyup event if keycode is not present + * in the keymap anymore + */ + if (test_bit(EV_KEY, dev->evbit) && + !is_event_supported(old_keycode, dev->keybit, KEY_MAX) && + __test_and_clear_bit(old_keycode, dev->key)) { + + input_pass_event(dev, EV_KEY, old_keycode, 0); + if (dev->sync) + input_pass_event(dev, EV_SYN, SYN_REPORT, 1); + } + + out: + spin_unlock_irqrestore(&dev->event_lock, flags); + + return retval; +} +EXPORT_SYMBOL(input_set_keycode_big); + +/** * input_get_keycode - retrieve keycode currently mapped to a given scancode * @dev: input device which keymap is being queried * @scancode: scancode (or its equivalent for device in question) for which @@ -661,13 +837,35 @@ unsigned int scancode, unsigned int *keycode) { unsigned long flags; - int retval; - spin_lock_irqsave(&dev->event_lock, flags); - retval = dev->getkeycode(dev, scancode, keycode); - spin_unlock_irqrestore(&dev->event_lock, flags); + if (dev->getkeycode) { + /* + * Use the legacy calls + */ + return dev->getkeycode(dev, scancode, keycode); + } else { + int retval; + struct keycode_table_entry kt_entry; - return retval; + /* + * Userspace is using a legacy call with a driver ported + * to the new way. This is a bad idea with long sparsed + * tables, since lots of the retrieved values will be in + * blank. Also, it makes sense only if the table size is + * lower than 2^32. + */ + memset(&kt_entry, 0, sizeof(kt_entry)); + kt_entry.len = 4; + kt_entry.index = scancode; + kt_entry.scancode = (char *)&scancode; + + spin_lock_irqsave(&dev->event_lock, flags); + retval = dev->getkeycodebig_from_index(dev, &kt_entry); + spin_unlock_irqrestore(&dev->event_lock, flags); + + *keycode = kt_entry.keycode; + return retval; + } } EXPORT_SYMBOL(input_get_keycode); @@ -692,13 +890,42 @@ spin_lock_irqsave(&dev->event_lock, flags); - retval = dev->getkeycode(dev, scancode, &old_keycode); - if (retval) - goto out; + if (dev->getkeycode) { + /* + * Use the legacy calls + */ + retval = dev->getkeycode(dev, scancode, &old_keycode); + if (retval) + goto out; - retval = dev->setkeycode(dev, scancode, keycode); - if (retval) - goto out; + retval = dev->setkeycode(dev, scancode, keycode); + if (retval) + goto out; + } else { + struct keycode_table_entry kt_entry; + + /* + * Userspace is using a legacy call with a driver ported + * to the new way. This is a bad idea with long sparsed + * tables, since lots of the retrieved values will be in + * blank. Also, it makes sense only if the table size is + * lower than 2^32. + */ + memset(&kt_entry, 0, sizeof(kt_entry)); + kt_entry.len = 4; + kt_entry.scancode = (char *)&scancode; + + retval = dev->getkeycodebig_from_scancode(dev, &kt_entry); + if (retval) + goto out; + + old_keycode = kt_entry.keycode; + kt_entry.keycode = keycode; + + retval = dev->setkeycodebig(dev, &kt_entry); + if (retval) + goto out; + } /* Make sure KEY_RESERVED did not get enabled. */ __clear_bit(KEY_RESERVED, dev->keybit); @@ -1278,6 +1505,7 @@ struct input_dev *dev = to_input_dev(device); input_ff_destroy(dev); + input_mt_destroy_slots(dev); kfree(dev); module_put(THIS_MODULE); @@ -1518,6 +1746,49 @@ EXPORT_SYMBOL(input_free_device); /** + * input_mt_create_slots() - create MT input slots + * @dev: input device supporting MT events and finger tracking + * @num_slots: number of slots used by the device + * + * This function allocates all necessary memory for MT slot handling in the + * input device, and adds ABS_MT_SLOT to the device capabilities. All slots + * are initially unused with ABS_MT_TRACKING_ID == -1. + */ +int input_mt_create_slots(struct input_dev *dev, unsigned int num_slots) +{ + if (!num_slots) + return 0; + + dev->mt = kcalloc(num_slots, sizeof(struct input_mt_slot), GFP_KERNEL); + if (!dev->mt) + return -ENOMEM; + + dev->mtsize = num_slots; + input_set_abs_params(dev, ABS_MT_SLOT, 0, num_slots - 1, 0, 0); + /* the slot abs array starts at ABS_MT_FIRST to save memory */ + while (num_slots--) + dev->mt[num_slots].abs[ABS_MT_TRACKING_ID - ABS_MT_FIRST] = -1; + + return 0; +} +EXPORT_SYMBOL(input_mt_create_slots); + +/** + * input_mt_destroy_slots() - frees the MT slots of the input device + * @dev: input device with allocated MT slots + * + * This function is only needed in error path as the input core will + * automatically free the MT slots when the device is destroyed. + */ +void input_mt_destroy_slots(struct input_dev *dev) +{ + kfree(dev->mt); + dev->mt = NULL; + dev->mtsize = 0; +} +EXPORT_SYMBOL(input_mt_destroy_slots); + +/** * input_set_capability - mark device as capable of a certain event * @dev: device that is capable of emitting or accepting event * @type: type of the event (EV_KEY, EV_REL, etc...) @@ -1636,11 +1907,17 @@ dev->rep[REP_PERIOD] = 33; } - if (!dev->getkeycode) - dev->getkeycode = input_default_getkeycode; + if (!dev->getkeycode) { + if (!dev->getkeycodebig_from_index) + dev->getkeycodebig_from_index = input_default_getkeycode_from_index; + if (!dev->getkeycodebig_from_scancode) + dev->getkeycodebig_from_scancode = input_default_getkeycode_from_scancode; + } - if (!dev->setkeycode) - dev->setkeycode = input_default_setkeycode; + if (!dev->setkeycode) { + if (!dev->setkeycodebig) + dev->setkeycodebig = input_default_setkeycode; + } dev_set_name(&dev->dev, "input%ld", (unsigned long) atomic_inc_return(&input_no) - 1); @@ -1926,20 +2203,10 @@ .open = input_open_file, }; -static void __init input_init_abs_bypass(void) -{ - const unsigned int *p; - - for (p = input_abs_bypass_init_data; *p; p++) - input_abs_bypass[BIT_WORD(*p)] |= BIT_MASK(*p); -} - static int __init input_init(void) { int err; - input_init_abs_bypass(); - err = class_register(&input_class); if (err) { printk(KERN_ERR "input: unable to register input_dev class\n"); --- linux-2.6.35.orig/drivers/input/serio/i8042.c +++ linux-2.6.35/drivers/input/serio/i8042.c @@ -861,9 +861,6 @@ unsigned char param; int i = 0; - if (!i8042_reset) - return 0; - /* * We try this 5 times; on some really fragile systems this does not * take the first time... @@ -1020,7 +1017,8 @@ * Reset the controller if requested. */ - i8042_controller_selftest(); + if (i8042_reset) + i8042_controller_selftest(); /* * Restore the original control register setting. @@ -1094,23 +1092,11 @@ #ifdef CONFIG_PM /* - * Here we try to restore the original BIOS settings to avoid - * upsetting it. - */ - -static int i8042_pm_reset(struct device *dev) -{ - i8042_controller_reset(); - - return 0; -} - -/* * Here we try to reset everything back to a state we had * before suspending. */ -static int i8042_pm_restore(struct device *dev) +static int i8042_controller_resume(bool force_reset) { int error; @@ -1118,9 +1104,11 @@ if (error) return error; - error = i8042_controller_selftest(); - if (error) - return error; + if (i8042_reset || force_reset) { + error = i8042_controller_selftest(); + if (error) + return error; + } /* * Restore original CTR value and disable all ports @@ -1162,6 +1150,28 @@ return 0; } +/* + * Here we try to restore the original BIOS settings to avoid + * upsetting it. + */ + +static int i8042_pm_reset(struct device *dev) +{ + i8042_controller_reset(); + + return 0; +} + +static int i8042_pm_resume(struct device *dev) +{ + /* + * On resume from S2R we always try to reset the controller + * to bring it in a sane state. (In case of S2D we expect + * BIOS to reset the controller for us.) + */ + return i8042_controller_resume(true); +} + static int i8042_pm_thaw(struct device *dev) { i8042_interrupt(0, NULL); @@ -1169,9 +1179,14 @@ return 0; } +static int i8042_pm_restore(struct device *dev) +{ + return i8042_controller_resume(false); +} + static const struct dev_pm_ops i8042_pm_ops = { .suspend = i8042_pm_reset, - .resume = i8042_pm_restore, + .resume = i8042_pm_resume, .thaw = i8042_pm_thaw, .poweroff = i8042_pm_reset, .restore = i8042_pm_restore, @@ -1389,9 +1404,11 @@ i8042_platform_device = dev; - error = i8042_controller_selftest(); - if (error) - return error; + if (i8042_reset) { + error = i8042_controller_selftest(); + if (error) + return error; + } error = i8042_controller_init(); if (error) @@ -1483,8 +1500,8 @@ static void __exit i8042_exit(void) { - platform_driver_unregister(&i8042_driver); platform_device_unregister(i8042_platform_device); + platform_driver_unregister(&i8042_driver); i8042_platform_exit(); panic_blink = NULL; --- linux-2.6.35.orig/drivers/input/tablet/wacom_sys.c +++ linux-2.6.35/drivers/input/tablet/wacom_sys.c @@ -195,17 +195,30 @@ features->pktlen = WACOM_PKGLEN_TPC2FG; features->device_type = BTN_TOOL_TRIPLETAP; } - features->x_max = - get_unaligned_le16(&report[i + 3]); - features->x_phy = - get_unaligned_le16(&report[i + 6]); - features->unit = report[i + 9]; - features->unitExpo = report[i + 11]; - i += 12; + if (features->type == BAMBOO_PT) { + /* need to reset back */ + features->pktlen = WACOM_PKGLEN_BBTOUCH; + features->device_type = BTN_TOOL_TRIPLETAP; + features->x_phy = + get_unaligned_le16(&report[i + 5]); + features->x_max = + get_unaligned_le16(&report[i + 8]); + i += 15; + } else { + features->x_max = + get_unaligned_le16(&report[i + 3]); + features->x_phy = + get_unaligned_le16(&report[i + 6]); + features->unit = report[i + 9]; + features->unitExpo = report[i + 11]; + i += 12; + } } else if (pen) { /* penabled only accepts exact bytes of data */ if (features->type == TABLETPC2FG) features->pktlen = WACOM_PKGLEN_GRAPHIRE; + if (features->type == BAMBOO_PT) + features->pktlen = WACOM_PKGLEN_BBFUN; features->device_type = BTN_TOOL_PEN; features->x_max = get_unaligned_le16(&report[i + 3]); @@ -234,6 +247,15 @@ features->y_phy = get_unaligned_le16(&report[i + 6]); i += 7; + } else if (features->type == BAMBOO_PT) { + /* need to reset back */ + features->pktlen = WACOM_PKGLEN_BBTOUCH; + features->device_type = BTN_TOOL_TRIPLETAP; + features->y_phy = + get_unaligned_le16(&report[i + 3]); + features->y_max = + get_unaligned_le16(&report[i + 6]); + i += 12; } else { features->y_max = features->x_max; @@ -245,6 +267,8 @@ /* penabled only accepts exact bytes of data */ if (features->type == TABLETPC2FG) features->pktlen = WACOM_PKGLEN_GRAPHIRE; + if (features->type == BAMBOO_PT) + features->pktlen = WACOM_PKGLEN_BBFUN; features->device_type = BTN_TOOL_PEN; features->y_max = get_unaligned_le16(&report[i + 3]); @@ -333,11 +357,16 @@ struct usb_host_interface *interface = intf->cur_altsetting; struct hid_descriptor *hid_desc; - /* default device to penabled */ + /* default features */ features->device_type = BTN_TOOL_PEN; + features->x_fuzz = 4; + features->y_fuzz = 4; + features->pressure_fuzz = 0; + features->distance_fuzz = 0; /* only Tablet PCs need to retrieve the info */ - if ((features->type != TABLETPC) && (features->type != TABLETPC2FG)) + if ((features->type != TABLETPC) && (features->type != TABLETPC2FG) && + (features->type != BAMBOO_PT)) goto out; if (usb_get_extra_descriptor(interface, HID_DEVICET_HID, &hid_desc)) { @@ -352,12 +381,6 @@ if (error) goto out; - /* touch device found but size is not defined. use default */ - if (features->device_type == BTN_TOOL_DOUBLETAP && !features->x_max) { - features->x_max = 1023; - features->y_max = 1023; - } - out: return error; } @@ -493,9 +516,11 @@ if (error) goto fail2; + wacom_setup_device_quirks(features); + strlcpy(wacom_wac->name, features->name, sizeof(wacom_wac->name)); - if (features->type == TABLETPC || features->type == TABLETPC2FG) { + if (features->quirks & WACOM_QUIRK_MULTI_INPUT) { /* Append the device type to the name */ strlcat(wacom_wac->name, features->device_type == BTN_TOOL_PEN ? --- linux-2.6.35.orig/drivers/input/tablet/wacom_wac.c +++ linux-2.6.35/drivers/input/tablet/wacom_wac.c @@ -822,6 +822,58 @@ return retval; } +static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len) +{ + struct wacom_features *features = &wacom->features; + struct input_dev *input = wacom->input; + unsigned char *data = wacom->data; + int sp = 0, sx = 0, sy = 0, count = 0; + int i; + + if (len != WACOM_PKGLEN_BBTOUCH) + return 0; + + for (i = 0; i < 2; i++) { + int p = data[9 * i + 2]; + input_mt_slot(input, i); + if (p) { + int x = get_unaligned_be16(&data[9 * i + 3]) & 0x7ff; + int y = get_unaligned_be16(&data[9 * i + 5]) & 0x7ff; + if (features->quirks & WACOM_QUIRK_BBTOUCH_LOWRES) { + x <<= 5; + y <<= 5; + } + input_report_abs(input, ABS_MT_PRESSURE, p); + input_report_abs(input, ABS_MT_POSITION_X, x); + input_report_abs(input, ABS_MT_POSITION_Y, y); + if (wacom->id[i] < 0) + wacom->id[i] = wacom->trk_id++ & MAX_TRACKING_ID; + if (!count++) + sp = p, sx = x, sy = y; + } else { + wacom->id[i] = -1; + } + input_report_abs(input, ABS_MT_TRACKING_ID, wacom->id[i]); + } + + input_report_key(input, BTN_TOUCH, count > 0); + input_report_key(input, BTN_TOOL_FINGER, count == 1); + input_report_key(input, BTN_TOOL_DOUBLETAP, count == 2); + + input_report_abs(input, ABS_PRESSURE, sp); + input_report_abs(input, ABS_X, sx); + input_report_abs(input, ABS_Y, sy); + + input_report_key(input, BTN_LEFT, (data[1] & 0x08) != 0); + input_report_key(input, BTN_FORWARD, (data[1] & 0x04) != 0); + input_report_key(input, BTN_BACK, (data[1] & 0x02) != 0); + input_report_key(input, BTN_RIGHT, (data[1] & 0x01) != 0); + + input_sync(input); + + return 0; +} + void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len) { bool sync; @@ -863,6 +915,10 @@ sync = wacom_tpc_irq(wacom_wac, len); break; + case BAMBOO_PT: + sync = wacom_bpt_irq(wacom_wac, len); + break; + default: sync = false; break; @@ -904,6 +960,34 @@ input_set_abs_params(input_dev, ABS_THROTTLE, -1023, 1023, 0, 0); } + +void wacom_setup_device_quirks(struct wacom_features *features) +{ + + /* touch device found but size is not defined. use default */ + if (features->device_type == BTN_TOOL_DOUBLETAP && !features->x_max) { + features->x_max = 1023; + features->y_max = 1023; + } + + /* these device have multiple inputs */ + if (features->type == TABLETPC || features->type == TABLETPC2FG || + features->type == BAMBOO_PT) + features->quirks |= WACOM_QUIRK_MULTI_INPUT; + + /* quirks for bamboo touch */ + if (features->type == BAMBOO_PT && + features->device_type == BTN_TOOL_TRIPLETAP) { + features->x_max <<= 5; + features->y_max <<= 5; + features->x_fuzz <<= 5; + features->y_fuzz <<= 5; + features->pressure_max = 256; + features->pressure_fuzz = 16; + features->quirks |= WACOM_QUIRK_BBTOUCH_LOWRES; + } +} + void wacom_setup_input_capabilities(struct input_dev *input_dev, struct wacom_wac *wacom_wac) { @@ -914,9 +998,12 @@ __set_bit(BTN_TOUCH, input_dev->keybit); - input_set_abs_params(input_dev, ABS_X, 0, features->x_max, 4, 0); - input_set_abs_params(input_dev, ABS_Y, 0, features->y_max, 4, 0); - input_set_abs_params(input_dev, ABS_PRESSURE, 0, features->pressure_max, 0, 0); + input_set_abs_params(input_dev, ABS_X, 0, features->x_max, + features->x_fuzz, 0); + input_set_abs_params(input_dev, ABS_Y, 0, features->y_max, + features->y_fuzz, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, 0, features->pressure_max, + features->pressure_fuzz, 0); __set_bit(ABS_MISC, input_dev->absbit); @@ -1038,6 +1125,33 @@ case PENPARTNER: __set_bit(BTN_TOOL_RUBBER, input_dev->keybit); break; + + case BAMBOO_PT: + __clear_bit(ABS_MISC, input_dev->absbit); + + if (features->device_type == BTN_TOOL_TRIPLETAP) { + __set_bit(BTN_LEFT, input_dev->keybit); + __set_bit(BTN_FORWARD, input_dev->keybit); + __set_bit(BTN_BACK, input_dev->keybit); + __set_bit(BTN_RIGHT, input_dev->keybit); + + __set_bit(BTN_TOOL_FINGER, input_dev->keybit); + __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); + + input_mt_create_slots(input_dev, 2); + input_set_abs_params(input_dev, ABS_MT_POSITION_X, + 0, features->x_max, + features->x_fuzz, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, + 0, features->y_max, + features->y_fuzz, 0); + input_set_abs_params(input_dev, ABS_MT_PRESSURE, + 0, features->pressure_max, + features->pressure_fuzz, 0); + input_set_abs_params(input_dev, ABS_MT_TRACKING_ID, 0, + MAX_TRACKING_ID, 0, 0); + } + break; } } @@ -1171,6 +1285,8 @@ { "Wacom ISDv4 E3", WACOM_PKGLEN_TPC2FG, 26202, 16325, 255, 0, TABLETPC2FG }; static const struct wacom_features wacom_features_0x47 = { "Wacom Intuos2 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023, 31, INTUOS }; +static struct wacom_features wacom_features_0xD0 = + { "Wacom Bamboo 2FG", WACOM_PKGLEN_BBFUN, 14720, 9200, 1023, 63, BAMBOO_PT }; #define USB_DEVICE_WACOM(prod) \ USB_DEVICE(USB_VENDOR_ID_WACOM, prod), \ @@ -1234,6 +1350,7 @@ { USB_DEVICE_WACOM(0xC5) }, { USB_DEVICE_WACOM(0xC6) }, { USB_DEVICE_WACOM(0xC7) }, + { USB_DEVICE_WACOM(0xD0) }, { USB_DEVICE_WACOM(0xCC) }, { USB_DEVICE_WACOM(0x90) }, { USB_DEVICE_WACOM(0x93) }, --- linux-2.6.35.orig/drivers/input/tablet/wacom_wac.h +++ linux-2.6.35/drivers/input/tablet/wacom_wac.h @@ -21,6 +21,7 @@ #define WACOM_PKGLEN_INTUOS 10 #define WACOM_PKGLEN_TPC1FG 5 #define WACOM_PKGLEN_TPC2FG 14 +#define WACOM_PKGLEN_BBTOUCH 20 /* device IDs */ #define STYLUS_DEVICE_ID 0x02 @@ -37,12 +38,20 @@ #define WACOM_REPORT_TPC1FG 6 #define WACOM_REPORT_TPC2FG 13 +/* device quirks */ +#define WACOM_QUIRK_MULTI_INPUT 0x0001 +#define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002 + +/* largest reported tracking id */ +#define MAX_TRACKING_ID 0xfff + enum { PENPARTNER = 0, GRAPHIRE, WACOM_G4, PTU, PL, + BAMBOO_PT, INTUOS, INTUOS3S, INTUOS3, @@ -72,6 +81,11 @@ int y_phy; unsigned char unit; unsigned char unitExpo; + int x_fuzz; + int y_fuzz; + int pressure_fuzz; + int distance_fuzz; + unsigned quirks; }; struct wacom_shared { @@ -85,6 +99,7 @@ int id[3]; __u32 serial[2]; int last_finger; + int trk_id; struct wacom_features features; struct wacom_shared *shared; struct input_dev *input; --- linux-2.6.35.orig/drivers/input/tablet/wacom.h +++ linux-2.6.35/drivers/input/tablet/wacom.h @@ -118,6 +118,7 @@ extern const struct usb_device_id wacom_ids[]; void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len); +void wacom_setup_device_quirks(struct wacom_features *features); void wacom_setup_input_capabilities(struct input_dev *input_dev, struct wacom_wac *wacom_wac); #endif --- linux-2.6.35.orig/drivers/input/mouse/bcm5974.c +++ linux-2.6.35/drivers/input/mouse/bcm5974.c @@ -312,6 +312,8 @@ __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit); __set_bit(BTN_TOOL_QUADTAP, input_dev->keybit); __set_bit(BTN_LEFT, input_dev->keybit); + + input_set_events_per_packet(input_dev, 60); } /* report button data as logical button state */ @@ -335,10 +337,14 @@ const struct bcm5974_config *cfg, const struct tp_finger *f) { - input_report_abs(input, ABS_MT_TOUCH_MAJOR, raw2int(f->force_major)); - input_report_abs(input, ABS_MT_TOUCH_MINOR, raw2int(f->force_minor)); - input_report_abs(input, ABS_MT_WIDTH_MAJOR, raw2int(f->size_major)); - input_report_abs(input, ABS_MT_WIDTH_MINOR, raw2int(f->size_minor)); + input_report_abs(input, ABS_MT_TOUCH_MAJOR, + raw2int(f->force_major) << 1); + input_report_abs(input, ABS_MT_TOUCH_MINOR, + raw2int(f->force_minor) << 1); + input_report_abs(input, ABS_MT_WIDTH_MAJOR, + raw2int(f->size_major) << 1); + input_report_abs(input, ABS_MT_WIDTH_MINOR, + raw2int(f->size_minor) << 1); input_report_abs(input, ABS_MT_ORIENTATION, MAX_FINGER_ORIENTATION - raw2int(f->orientation)); input_report_abs(input, ABS_MT_POSITION_X, raw2int(f->abs_x)); --- linux-2.6.35.orig/drivers/input/mouse/appletouch.c +++ linux-2.6.35/drivers/input/mouse/appletouch.c @@ -205,8 +205,8 @@ bool overflow_warned; int x_old; /* last reported x/y, */ int y_old; /* used for smoothing */ - u8 xy_cur[ATP_XSENSORS + ATP_YSENSORS]; - u8 xy_old[ATP_XSENSORS + ATP_YSENSORS]; + signed char xy_cur[ATP_XSENSORS + ATP_YSENSORS]; + signed char xy_old[ATP_XSENSORS + ATP_YSENSORS]; int xy_acc[ATP_XSENSORS + ATP_YSENSORS]; int idlecount; /* number of empty packets */ struct work_struct work; @@ -531,7 +531,7 @@ for (i = 0; i < ATP_XSENSORS + ATP_YSENSORS; i++) { /* accumulate the change */ - int change = dev->xy_old[i] - dev->xy_cur[i]; + signed char change = dev->xy_old[i] - dev->xy_cur[i]; dev->xy_acc[i] -= change; /* prevent down drifting */ --- linux-2.6.35.orig/drivers/input/mouse/synaptics.h +++ linux-2.6.35/drivers/input/mouse/synaptics.h @@ -110,6 +110,7 @@ unsigned char pkt_type; /* packet type - old, new, etc */ unsigned char mode; /* current mode byte */ int scroll; + struct synaptics_hw_state prev_hw; }; void synaptics_module_init(void); --- linux-2.6.35.orig/drivers/input/mouse/synaptics.c +++ linux-2.6.35/drivers/input/mouse/synaptics.c @@ -357,6 +357,45 @@ * Functions to interpret the absolute mode packets ****************************************************************************/ +/* left and right clickpad button ranges; + * the gap between them is interpreted as a middle-button click + */ +#define CLICKPAD_LEFT_BTN_X \ + ((XMAX_NOMINAL - XMIN_NOMINAL) * 2 / 5 + XMIN_NOMINAL) +#define CLICKPAD_RIGHT_BTN_X \ + ((XMAX_NOMINAL - XMIN_NOMINAL) * 3 / 5 + XMIN_NOMINAL) + +/* handle clickpad events */ +static void clickpad_process_packet(struct synaptics_data *priv, + struct synaptics_hw_state *hw) +{ + /* clickpad mode reports Y range from 0 to YMAX_NOMINAL, + * where the area Y < YMIN_NOMINAL is used as click buttons + */ + if (hw->y < YMIN_NOMINAL) { + /* button area */ + hw->z = 0; /* don't move pointer */ + /* clickpad reports only the middle button, and we need + * to fake left/right buttons depending on the touch position + */ + if (hw->middle) { /* clicked? */ + hw->middle = 0; + if (hw->x < CLICKPAD_LEFT_BTN_X) + hw->left = 1; + else if (hw->x > CLICKPAD_RIGHT_BTN_X) + hw->right = 1; + else + hw->middle = 1; + } + } else if (hw->middle) { + /* dragging */ + hw->left = priv->prev_hw.left; + hw->right = priv->prev_hw.right; + hw->middle = priv->prev_hw.middle; + } + priv->prev_hw = *hw; +} + static void synaptics_parse_hw_state(unsigned char buf[], struct synaptics_data *priv, struct synaptics_hw_state *hw) { memset(hw, 0, sizeof(struct synaptics_hw_state)); @@ -445,6 +484,9 @@ synaptics_parse_hw_state(psmouse->packet, priv, &hw); + if (SYN_CAP_CLICKPAD(priv->ext_cap)) + clickpad_process_packet(priv, &hw); + if (hw.scroll) { priv->scroll += hw.scroll; @@ -748,6 +790,12 @@ SYN_ID_MAJOR(priv->identity), SYN_ID_MINOR(priv->identity), priv->model_id, priv->capabilities, priv->ext_cap, priv->ext_cap_0c); + if (SYN_CAP_CLICKPAD(priv->ext_cap)) { + printk(KERN_INFO "Synaptics: Clickpad mode enabled\n"); + /* force to enable the middle button */ + priv->capabilities |= (1 << 18); + } + set_input_params(psmouse->dev, priv); /* --- linux-2.6.35.orig/drivers/input/keyboard/atkbd.c +++ linux-2.6.35/drivers/input/keyboard/atkbd.c @@ -926,6 +926,14 @@ }; /* + * Fujitsu Siemens system with broken key release on volume keys and mute key + */ + +static unsigned int atkbd_amilo_xi_2428_forced_release_keys[] = { + 0xa0, 0xae, 0xb0, -1U +}; + +/* * Soltech TA12 system with broken key release on volume keys and mute key */ static unsigned int atkdb_soltech_ta12_forced_release_keys[] = { @@ -1699,6 +1707,35 @@ .driver_data = atkbd_amilo_xi3650_forced_release_keys, }, { + .ident = "Znote 6615WD", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Zepto"), + DMI_MATCH(DMI_PRODUCT_NAME, "Znote 6615WD"), + }, + .callback = atkbd_setup_forced_release, + .driver_data = atkbd_volume_forced_release_keys, + }, + { + .ident = "Znote 6625WD", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Zepto"), + DMI_MATCH(DMI_PRODUCT_NAME, "Znote"), + DMI_MATCH(DMI_PRODUCT_VERSION, "6625WD"), + }, + .callback = atkbd_setup_forced_release, + .driver_data = atkbd_volume_forced_release_keys, + }, + { + .ident = "AMILO Xi 2428", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), + DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xi 2428"), + }, + .callback = atkbd_setup_forced_release, + .driver_data = atkbd_amilo_xi_2428_forced_release_keys, + }, + { + .ident = "Soltech Corporation TA12", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Soltech Corporation"), DMI_MATCH(DMI_PRODUCT_NAME, "TA12"), --- linux-2.6.35.orig/include/Kbuild +++ linux-2.6.35/include/Kbuild @@ -9,4 +9,3 @@ header-y += video/ header-y += drm/ header-y += xen/ -header-y += scsi/ --- linux-2.6.35.orig/include/xen/interface/io/blkif.h +++ linux-2.6.35/include/xen/interface/io/blkif.h @@ -87,6 +87,18 @@ DEFINE_RING_TYPES(blkif, struct blkif_request, struct blkif_response); +/* + * Maximum number of pages used for a blkif ring + * max-ring-pages advertised by blkback to blkfront may be lowered at blkback + * mod load time. Load time param set to default. + */ +#define BLKIF_MAX_NUM_RING_PAGES 16 +#define BLKIF_MAX_NUM_RING_PAGES_DFLT 4 +#if BLKIF_MAX_NUM_RING_PAGES < BLKIF_MAX_NUM_RING_PAGES_DFLT +#undef BLKIF_MAX_NUM_RING_PAGES_DFLT +#define BLKIF_MAX_NUM_RING_PAGES_DFLT BLKIF_MAX_NUM_RING_PAGES +#endif + #define VDISK_CDROM 0x1 #define VDISK_REMOVABLE 0x2 #define VDISK_READONLY 0x4 --- linux-2.6.35.orig/include/trace/events/timer.h +++ linux-2.6.35/include/trace/events/timer.h @@ -74,14 +74,16 @@ 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 now=%lu", __entry->timer, __entry->now) + TP_printk("timer=%p function=%pf now=%lu", __entry->timer, __entry->function,__entry->now) ); /** @@ -213,14 +215,16 @@ 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 now=%llu", __entry->hrtimer, + TP_printk("hrtimer=%p function=%pf now=%llu", __entry->hrtimer, __entry->function, (unsigned long long)ktime_to_ns((ktime_t) { .tv64 = __entry->now })) ); --- linux-2.6.35.orig/include/trace/events/vfs.h +++ linux-2.6.35/include/trace/events/vfs.h @@ -0,0 +1,53 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM vfs + +#if !defined(_TRACE_VFS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_VFS_H + +/* + * Tracepoint for dirtying an inode: + */ +TRACE_EVENT(dirty_inode, + + TP_PROTO(struct inode *inode, struct task_struct *task), + + TP_ARGS(inode, task), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __array( char, dev, 16 ) + __array( char, file, 32 ) + ), + + TP_fast_assign( + if (inode->i_ino || strcmp(inode->i_sb->s_id, "bdev")) { + struct dentry *dentry; + const char *name = "?"; + + dentry = d_find_alias(inode); + if (dentry) { + spin_lock(&dentry->d_lock); + name = (const char *) dentry->d_name.name; + } + + memcpy(__entry->comm, task->comm, TASK_COMM_LEN); + __entry->pid = task->pid; + strlcpy(__entry->file, name, 32); + strlcpy(__entry->dev, inode->i_sb->s_id, 16); + + if (dentry) { + spin_unlock(&dentry->d_lock); + dput(dentry); + } + } + ), + + TP_printk("task=%i (%s) file=%s dev=%s", + __entry->pid, __entry->comm, __entry->file, __entry->dev) +); + +#endif /* _TRACE_VFS_H */ + +/* This part must be outside protection */ +#include --- linux-2.6.35.orig/include/trace/events/fs.h +++ linux-2.6.35/include/trace/events/fs.h @@ -0,0 +1,53 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM fs + +#if !defined(_TRACE_FS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_FS_H + +#include +#include + +TRACE_EVENT(do_sys_open, + + TP_PROTO(char *filename, int flags, int mode), + + TP_ARGS(filename, flags, mode), + + TP_STRUCT__entry( + __string( filename, filename ) + __field( int, flags ) + __field( int, mode ) + ), + + TP_fast_assign( + __assign_str(filename, filename); + __entry->flags = flags; + __entry->mode = mode; + ), + + TP_printk("\"%s\" %x %o", + __get_str(filename), __entry->flags, __entry->mode) +); + +TRACE_EVENT(open_exec, + + TP_PROTO(char *filename), + + TP_ARGS(filename), + + TP_STRUCT__entry( + __string( filename, filename ) + ), + + TP_fast_assign( + __assign_str(filename, filename); + ), + + TP_printk("\"%s\"", + __get_str(filename)) +); + +#endif /* _TRACE_FS_H */ + +/* This part must be outside protection */ +#include --- linux-2.6.35.orig/include/acpi/platform/aclinux.h +++ linux-2.6.35/include/acpi/platform/aclinux.h @@ -148,13 +148,17 @@ #define ACPI_ALLOCATE_ZEROED(a) acpi_os_allocate_zeroed(a) #define ACPI_FREE(a) kfree(a) -/* Used within ACPICA to show where it is safe to preempt execution */ -#include +#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 (!in_atomic_preempt_off() && !irqs_disabled()) \ + if (!irqs_disabled()) \ cond_resched(); \ } while (0) +#endif #endif /* __KERNEL__ */ --- linux-2.6.35.orig/include/linux/mm_types.h +++ linux-2.6.35/include/linux/mm_types.h @@ -134,7 +134,7 @@ within vm_mm. */ /* linked list of VM areas per task, sorted by address */ - struct vm_area_struct *vm_next; + 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. */ @@ -227,6 +227,9 @@ unsigned long (*get_unmapped_area) (struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags); + unsigned long (*get_unmapped_exec_area) (struct file *filp, + unsigned long addr, unsigned long len, + unsigned long pgoff, unsigned long flags); void (*unmap_area) (struct mm_struct *mm, unsigned long addr); #endif unsigned long mmap_base; /* base of mmap area */ --- linux-2.6.35.orig/include/linux/sched.h +++ linux-2.6.35/include/linux/sched.h @@ -101,6 +101,11 @@ struct fs_struct; struct perf_event_context; +#ifdef CONFIG_X86_32 +extern int exec_shield; +#endif +extern int print_fatal_signals; + /* * List of flags we want to share for kernel threads, * if only because they are not used by them anyway. @@ -274,17 +279,11 @@ #if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ) extern int select_nohz_load_balancer(int cpu); extern int get_nohz_load_balancer(void); -extern int nohz_ratelimit(int cpu); #else static inline int select_nohz_load_balancer(int cpu) { return 0; } - -static inline int nohz_ratelimit(int cpu) -{ - return 0; -} #endif /* @@ -395,6 +394,10 @@ extern unsigned long arch_get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); + +extern unsigned long +arch_get_unmapped_exec_area(struct file *, unsigned long, unsigned long, + unsigned long, unsigned long); extern unsigned long arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, --- linux-2.6.35.orig/include/linux/splice.h +++ linux-2.6.35/include/linux/splice.h @@ -82,6 +82,12 @@ extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *, splice_direct_actor *); +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags); +extern long do_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags); + /* * for dynamic pipe sizing */ --- linux-2.6.35.orig/include/linux/page-flags.h +++ linux-2.6.35/include/linux/page-flags.h @@ -108,6 +108,7 @@ #ifdef CONFIG_MEMORY_FAILURE PG_hwpoison, /* hardware poisoned page. Don't touch */ #endif + PG_readaheadunused, /* user oriented readahead as yet unused*/ __NR_PAGEFLAGS, /* Filesystems */ @@ -239,6 +240,8 @@ PAGEFLAG(Reclaim, reclaim) TESTCLEARFLAG(Reclaim, reclaim) PAGEFLAG(Readahead, reclaim) /* Reminder to do async read-ahead */ +PAGEFLAG(ReadaheadUnused, readaheadunused) + #ifdef CONFIG_HIGHMEM /* * Must use a macro here due to header dependency issues. page_zone() is not --- linux-2.6.35.orig/include/linux/hid.h +++ linux-2.6.35/include/linux/hid.h @@ -315,6 +315,7 @@ #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 --- linux-2.6.35.orig/include/linux/moduleparam.h +++ linux-2.6.35/include/linux/moduleparam.h @@ -144,7 +144,7 @@ char *args, struct kernel_param *params, unsigned num, - int (*unknown)(char *param, char *val)); + int (*handle)(char *param, char *val, int known)); /* Called by module remove. */ #ifdef CONFIG_SYSFS --- linux-2.6.35.orig/include/linux/timer.h +++ linux-2.6.35/include/linux/timer.h @@ -100,6 +100,13 @@ 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) @@ -111,6 +118,8 @@ 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 @@ -150,6 +159,12 @@ 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 --- linux-2.6.35.orig/include/linux/vmstat.h +++ linux-2.6.35/include/linux/vmstat.h @@ -170,6 +170,28 @@ 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); --- linux-2.6.35.orig/include/linux/mmzone.h +++ linux-2.6.35/include/linux/mmzone.h @@ -284,6 +284,13 @@ 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 @@ -456,6 +463,12 @@ return test_bit(ZONE_OOM_LOCKED, &zone->flags); } +#ifdef CONFIG_SMP +unsigned long zone_nr_free_pages(struct zone *zone); +#else +#define zone_nr_free_pages(zone) zone_page_state(zone, NR_FREE_PAGES) +#endif /* CONFIG_SMP */ + /* * 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 --- linux-2.6.35.orig/include/linux/notifier.h +++ linux-2.6.35/include/linux/notifier.h @@ -210,6 +210,7 @@ #define NETDEV_POST_INIT 0x0010 #define NETDEV_UNREGISTER_BATCH 0x0011 #define NETDEV_BONDING_DESLAVE 0x0012 +#define NETDEV_NOTIFY_PEERS 0x0013 #define SYS_DOWN 0x0001 /* Notify of system down */ #define SYS_RESTART SYS_DOWN --- linux-2.6.35.orig/include/linux/vt_kern.h +++ linux-2.6.35/include/linux/vt_kern.h @@ -95,7 +95,7 @@ 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); +void reset_vc(struct vc_data *vc, int mode); extern int unbind_con_driver(const struct consw *csw, int first, int last, int deflt); int vty_init(const struct file_operations *console_fops); --- linux-2.6.35.orig/include/linux/skbuff.h +++ linux-2.6.35/include/linux/skbuff.h @@ -169,6 +169,7 @@ * @software: generate software time stamp * @in_progress: device driver is going to provide * hardware time stamp + * @prevent_sk_orphan: make sk reference available on driver level * @flags: all shared_tx flags * * These flags are attached to packets as part of the @@ -178,7 +179,8 @@ struct { __u8 hardware:1, software:1, - in_progress:1; + in_progress:1, + prevent_sk_orphan:1; }; __u8 flags; }; --- linux-2.6.35.orig/include/linux/lsm_audit.h +++ linux-2.6.35/include/linux/lsm_audit.h @@ -94,6 +94,37 @@ int result; } selinux_audit_data; #endif +#ifdef CONFIG_SECURITY_APPARMOR + struct { + int error; + int op; + int type; + void *profile; + const char *name; + const char *info; + union { + void *target; + struct { + long pos; + void *target; + } iface; + struct { + int rlim; + unsigned long max; + } rlim; + struct { + const char *target; + u32 request; + u32 denied; + uid_t ouid; + } fs; + struct { + int type, protocol; + struct sock *sk; + } net; + }; + } apparmor_audit_data; +#endif }; /* these callback will be implemented by a specific LSM */ void (*lsm_pre_audit)(struct audit_buffer *, void *); --- linux-2.6.35.orig/include/linux/compat.h +++ linux-2.6.35/include/linux/compat.h @@ -360,5 +360,8 @@ const struct compat_iovec __user *uvector, unsigned long nr_segs, unsigned long fast_segs, struct iovec *fast_pointer, struct iovec **ret_pointer); + +extern void __user *compat_alloc_user_space(unsigned long len); + #endif /* CONFIG_COMPAT */ #endif /* _LINUX_COMPAT_H */ --- linux-2.6.35.orig/include/linux/msi.h +++ linux-2.6.35/include/linux/msi.h @@ -14,8 +14,10 @@ extern void mask_msi_irq(unsigned int irq); extern void unmask_msi_irq(unsigned int irq); extern void read_msi_msg_desc(struct irq_desc *desc, struct msi_msg *msg); +extern void get_cached_msi_msg_desc(struct irq_desc *desc, struct msi_msg *msg); extern void write_msi_msg_desc(struct irq_desc *desc, 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 { --- linux-2.6.35.orig/include/linux/kd.h +++ linux-2.6.35/include/linux/kd.h @@ -45,6 +45,7 @@ #define KD_GRAPHICS 0x01 #define KD_TEXT0 0x02 /* obsolete */ #define KD_TEXT1 0x03 /* obsolete */ +#define KD_TRANSPARENT 0x04 #define KDGETMODE 0x4B3B /* get current mode */ #define KDMAPDISP 0x4B3C /* map display into address space */ --- linux-2.6.35.orig/include/linux/netdevice.h +++ linux-2.6.35/include/linux/netdevice.h @@ -1775,6 +1775,8 @@ 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 --- linux-2.6.35.orig/include/linux/screen_info.h +++ linux-2.6.35/include/linux/screen_info.h @@ -67,6 +67,7 @@ #define VIDEO_TYPE_EFI 0x70 /* EFI graphic mode */ #define VIDEO_FLAGS_NOCURSOR (1 << 0) /* The video mode has no cursor set */ +#define VIDEO_FLAGS_HANDOFF (1 << 1) /* Video buffer is alredy painted */ #ifdef __KERNEL__ extern struct screen_info screen_info; --- linux-2.6.35.orig/include/linux/mm.h +++ linux-2.6.35/include/linux/mm.h @@ -78,7 +78,11 @@ #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 +#endif #define VM_PFNMAP 0x00000400 /* Page-ranges managed without "struct page", just pure PFN */ #define VM_DENYWRITE 0x00000800 /* ETXTBSY on write attempts.. */ @@ -859,6 +863,12 @@ 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_stack_continue(struct vm_area_struct *vma, unsigned long addr) +{ + return vma && (vma->vm_end == addr) && (vma->vm_flags & VM_GROWSDOWN); +} + 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); @@ -1263,7 +1273,13 @@ unsigned long addr, unsigned long len, unsigned long flags, struct page **pages); -extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); +extern unsigned long get_unmapped_area_prot(struct file *, unsigned long, unsigned long, unsigned long, unsigned long, int); + +static inline unsigned long get_unmapped_area(struct file *file, unsigned long addr, + unsigned long len, unsigned long pgoff, unsigned long flags) +{ + return get_unmapped_area_prot(file, addr, len, pgoff, flags, 0); +} extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, unsigned long len, unsigned long prot, @@ -1329,8 +1345,10 @@ /* Do stack extension */ extern int expand_stack(struct vm_area_struct *vma, unsigned long address); -#ifdef CONFIG_IA64 +#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 extern int expand_stack_downwards(struct vm_area_struct *vma, unsigned long address); --- linux-2.6.35.orig/include/linux/resource.h +++ linux-2.6.35/include/linux/resource.h @@ -53,8 +53,11 @@ /* * Limit the stack by to some sane default: root can always * increase this limit if needed.. 8MB seems reasonable. + * + * (2MB more to cover randomization effects.) */ -#define _STK_LIM (8*1024*1024) +#define _STK_LIM (10*1024*1024) +#define EXEC_STACK_BIAS (2*1024*1024) /* * GPG2 wants 64kB of mlocked memory, to make sure pass phrases --- linux-2.6.35.orig/include/linux/namei.h +++ linux-2.6.35/include/linux/namei.h @@ -73,6 +73,9 @@ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry, int (*open)(struct inode *, struct file *)); +extern struct dentry *lookup_hash(struct nameidata *nd); +extern int __lookup_one_len(const char *name, struct qstr *this, + struct dentry *base, int len); extern struct dentry *lookup_one_len(const char *, struct dentry *, int); extern int follow_down(struct path *); --- linux-2.6.35.orig/include/linux/security.h +++ linux-2.6.35/include/linux/security.h @@ -639,6 +639,9 @@ * 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. * @cred_alloc_blank: * @cred points to the credentials. * @gfp indicates the atomicity of any memory allocations. @@ -1484,6 +1487,7 @@ 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, @@ -1735,6 +1739,7 @@ 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); @@ -2235,6 +2240,9 @@ 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; --- linux-2.6.35.orig/include/linux/ksm.h +++ linux-2.6.35/include/linux/ksm.h @@ -16,6 +16,9 @@ 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); @@ -70,19 +73,14 @@ * 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? */ -struct page *ksm_does_need_to_copy(struct page *page, - struct vm_area_struct *vma, unsigned long address); -static inline struct page *ksm_might_need_to_copy(struct page *page, +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); - if (!anon_vma || - (anon_vma == vma->anon_vma && - page->index == linear_page_index(vma, address))) - return page; - - return ksm_does_need_to_copy(page, vma, address); + return anon_vma && + (anon_vma != vma->anon_vma || + page->index != linear_page_index(vma, address)); } int page_referenced_ksm(struct page *page, @@ -115,10 +113,10 @@ return 0; } -static inline struct page *ksm_might_need_to_copy(struct page *page, +static inline int ksm_might_need_to_copy(struct page *page, struct vm_area_struct *vma, unsigned long address) { - return page; + return 0; } static inline int page_referenced_ksm(struct page *page, --- linux-2.6.35.orig/include/linux/tty.h +++ linux-2.6.35/include/linux/tty.h @@ -552,6 +552,9 @@ } #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); --- linux-2.6.35.orig/include/linux/pm.h +++ linux-2.6.35/include/linux/pm.h @@ -476,9 +476,15 @@ enum rpm_request request; enum rpm_status runtime_status; int runtime_error; + unsigned long active_jiffies; + unsigned long suspended_jiffies; + unsigned long accounting_timestamp; #endif }; +extern void update_pm_runtime_accounting(struct device *dev); + + /* * The PM_EVENT_ messages are also used by drivers implementing the legacy * suspend framework, based on the ->suspend() and ->resume() callbacks common --- linux-2.6.35.orig/include/linux/Kbuild +++ linux-2.6.35/include/linux/Kbuild @@ -276,6 +276,7 @@ $(srctree)/include/asm-$(SRCARCH)/kvm_para.h),) unifdef-y += kvm_para.h endif +unifdef-y += l2tp.h unifdef-y += llc.h unifdef-y += loop.h unifdef-y += lp.h --- linux-2.6.35.orig/include/linux/prctl.h +++ linux-2.6.35/include/linux/prctl.h @@ -102,4 +102,10 @@ #define PR_MCE_KILL_GET 34 +/* + * Set specific pid that is allowed to PTRACE the current task. + * A value of 0 mean "no process". + */ +#define PR_SET_PTRACER 0x59616d61 + #endif /* _LINUX_PRCTL_H */ --- linux-2.6.35.orig/include/linux/kvm_host.h +++ linux-2.6.35/include/linux/kvm_host.h @@ -123,6 +123,7 @@ } *lpage_info[KVM_NR_PAGE_SIZES - 1]; unsigned long userspace_addr; int user_alloc; + int id; }; static inline unsigned long kvm_dirty_bitmap_bytes(struct kvm_memory_slot *memslot) --- linux-2.6.35.orig/include/linux/swap.h +++ linux-2.6.35/include/linux/swap.h @@ -19,6 +19,7 @@ #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 */ static inline int current_is_kswapd(void) { @@ -142,7 +143,7 @@ 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), /* blkdev supports discard */ + 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 */ @@ -184,6 +185,7 @@ struct block_device *bdev; /* swap device or bdev of swap file */ struct file *swap_file; /* seldom referenced */ unsigned int old_block_size; /* seldom referenced */ + void (*notify_swap_entry_free_fn) (unsigned long); }; struct swap_list_t { @@ -332,6 +334,7 @@ extern int reuse_swap_page(struct page *); extern int try_to_free_swap(struct page *); struct backing_dev_info; +extern void set_notify_swap_entry_free(unsigned, void (*) (unsigned long)); /* linux/mm/thrash.c */ extern struct mm_struct *swap_token_mm; --- linux-2.6.35.orig/include/linux/init.h +++ linux-2.6.35/include/linux/init.h @@ -188,6 +188,7 @@ #define core_initcall(fn) __define_initcall("1",fn,1) #define core_initcall_sync(fn) __define_initcall("1s",fn,1s) +#define earlyrootfs_initcall(fn) __define_initcall("earlyrootfs",fn,rootfs) #define postcore_initcall(fn) __define_initcall("2",fn,2) #define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s) #define arch_initcall(fn) __define_initcall("3",fn,3) @@ -215,6 +216,8 @@ static initcall_t __initcall_##fn \ __used __section(.security_initcall.init) = fn +extern struct list_head populate_rootfs_domain; + struct obs_kernel_param { const char *str; int (*setup_func)(char *); --- linux-2.6.35.orig/include/linux/fb.h +++ linux-2.6.35/include/linux/fb.h @@ -815,6 +815,7 @@ struct fb_info { int node; int flags; + int ref_count; 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 */ @@ -854,6 +855,7 @@ void *pseudo_palette; /* Fake palette of 16 colors */ #define FBINFO_STATE_RUNNING 0 #define FBINFO_STATE_SUSPENDED 1 +#define FBINFO_STATE_REMOVED 2 u32 state; /* Hardware state i.e suspend */ void *fbcon_par; /* fbcon use-only private area */ /* From here on everything is device dependent */ --- linux-2.6.35.orig/include/linux/input.h +++ linux-2.6.35/include/linux/input.h @@ -34,7 +34,7 @@ * Protocol version. */ -#define EV_VERSION 0x010000 +#define EV_VERSION 0x010001 /* * IOCTLs (0x00 - 0x7f) @@ -56,12 +56,22 @@ __s32 resolution; }; +struct keycode_table_entry { + __u32 keycode; /* e.g. KEY_A */ + __u32 index; /* Index for the given scan/key table, on EVIOCGKEYCODEBIG */ + __u32 len; /* Length of the scancode */ + __u32 reserved[2]; /* Reserved for future usage */ + char *scancode; /* scancode, in machine-endian */ +}; + #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 EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2]) /* set keycode */ +#define EVIOCGKEYCODEBIG _IOR('E', 0x04, struct keycode_table_entry) /* get keycode */ +#define EVIOCSKEYCODEBIG _IOW('E', 0x04, struct keycode_table_entry) /* set keycode */ #define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len) /* get device name */ #define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len) /* get physical location */ @@ -691,9 +701,12 @@ #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 */ @@ -706,6 +719,12 @@ #define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ #define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ +#ifdef __KERNEL__ +/* Implementation details, userspace should not care about these */ +#define ABS_MT_FIRST ABS_MT_TOUCH_MAJOR +#define ABS_MT_LAST ABS_MT_PRESSURE +#endif + #define ABS_MAX 0x3f #define ABS_CNT (ABS_MAX+1) @@ -1048,6 +1067,14 @@ #include /** + * 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]; +}; + +/** * struct input_dev - represents an input device * @name: name of the device * @phys: physical path to the device in the system hierarchy @@ -1063,16 +1090,29 @@ * @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 - * @setkeycode: optional method to alter current keymap, used to implement + * @setkeycode: optional legacy method to alter current keymap, used to + * implement sparse keymaps. Shouldn't be used on new drivers + * @getkeycode: optional legacy method to retrieve current keymap. + * Shouldn't be used on new drivers. + * @setkeycodebig: 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 - * @getkeycode: optional method to retrieve current keymap. If not supplied - * default mechanism will be used. The method is being called while - * holding event_lock and thus must not sleep + * @getkeycodebig_from_index: optional method to retrieve current keymap from + * an array index. If not supplied default mechanism will be used. + * The method is being called while holding event_lock and thus must + * not sleep + * @getkeycodebig_from_scancode: optional method to retrieve current keymap + * from an scancode. 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 @@ -1081,6 +1121,10 @@ * @sync: set to 1 when there were no new events since last EV_SYNC * @abs: current values for reports from absolute axes * @rep: current values for autorepeat parameters (delay, rate) + * @mt: 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 * @key: reflects current state of device's keys/buttons * @led: reflects current state of device's LEDs * @snd: reflects current state of sound effects @@ -1140,6 +1184,8 @@ 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; @@ -1147,6 +1193,12 @@ unsigned int scancode, unsigned int keycode); int (*getkeycode)(struct input_dev *dev, unsigned int scancode, unsigned int *keycode); + int (*setkeycodebig)(struct input_dev *dev, + struct keycode_table_entry *kt_entry); + int (*getkeycodebig_from_index)(struct input_dev *dev, + struct keycode_table_entry *kt_entry); + int (*getkeycodebig_from_scancode)(struct input_dev *dev, + struct keycode_table_entry *kt_entry); struct ff_device *ff; @@ -1158,6 +1210,10 @@ int abs[ABS_CNT]; int rep[REP_MAX + 1]; + struct input_mt_slot *mt; + int mtsize; + int slot; + unsigned long key[BITS_TO_LONGS(KEY_CNT)]; unsigned long led[BITS_TO_LONGS(LED_CNT)]; unsigned long snd[BITS_TO_LONGS(SND_CNT)]; @@ -1406,8 +1462,28 @@ input_event(dev, EV_SYN, SYN_MT_REPORT, 0); } +static inline void input_mt_slot(struct input_dev *dev, int slot) +{ + input_event(dev, EV_ABS, ABS_MT_SLOT, slot); +} + void input_set_capability(struct input_dev *dev, unsigned int type, unsigned int code); +/** + * input_set_events_per_packet - tell handlers about the driver event rate + * @dev: the input device used by the driver + * @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; +} + static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat) { dev->absmin[axis] = min; @@ -1422,6 +1498,10 @@ unsigned int scancode, unsigned int *keycode); int input_set_keycode(struct input_dev *dev, unsigned int scancode, unsigned int keycode); +int input_get_keycode_big(struct input_dev *dev, + struct keycode_table_entry *kt_entry); +int input_set_keycode_big(struct input_dev *dev, + struct keycode_table_entry *kt_entry); extern struct class input_class; @@ -1485,5 +1565,8 @@ int input_ff_create_memless(struct input_dev *dev, void *data, int (*play_effect)(struct input_dev *, void *, struct ff_effect *)); +int input_mt_create_slots(struct input_dev *dev, unsigned int num_slots); +void input_mt_destroy_slots(struct input_dev *dev); + #endif #endif --- linux-2.6.35.orig/include/linux/libata.h +++ linux-2.6.35/include/linux/libata.h @@ -335,6 +335,7 @@ 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 */ --- linux-2.6.35.orig/include/linux/fs.h +++ linux-2.6.35/include/linux/fs.h @@ -145,11 +145,11 @@ * */ #define RW_MASK 1 -#define RWA_MASK 2 +#define RWA_MASK 16 #define READ 0 #define WRITE 1 -#define READA 2 /* read-ahead - don't block if no resources */ -#define SWRITE 3 /* for ll_rw_block() - wait for buffer lock */ +#define READA 16 /* readahead - don't block if no resources */ +#define SWRITE 17 /* for ll_rw_block(), wait for buffer lock */ #define READ_SYNC (READ | (1 << BIO_RW_SYNCIO) | (1 << BIO_RW_UNPLUG)) #define READ_META (READ | (1 << BIO_RW_META)) #define WRITE_SYNC_PLUG (WRITE | (1 << BIO_RW_SYNCIO) | (1 << BIO_RW_NOIDLE)) @@ -209,6 +209,7 @@ #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_BORN (1<<29) #define MS_ACTIVE (1<<30) #define MS_NOUSER (1<<31) @@ -415,7 +416,8 @@ 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); + ssize_t bytes, void *private, int ret, + bool is_async); /* * Attribute flags. These should be or-ed together to figure out what --- linux-2.6.35.orig/include/linux/interrupt.h +++ linux-2.6.35/include/linux/interrupt.h @@ -53,16 +53,21 @@ * 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 + * */ #define IRQF_DISABLED 0x00000020 #define IRQF_SAMPLE_RANDOM 0x00000040 #define IRQF_SHARED 0x00000080 #define IRQF_PROBE_SHARED 0x00000100 -#define IRQF_TIMER 0x00000200 +#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_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND) /* * Bits used by threaded handlers: --- linux-2.6.35.orig/include/linux/netfilter/Kbuild +++ linux-2.6.35/include/linux/netfilter/Kbuild @@ -40,6 +40,8 @@ header-y += xt_pkttype.h header-y += xt_quota.h header-y += xt_rateest.h +header-y += xt_policy.h +header-y += xt_quota.h header-y += xt_realm.h header-y += xt_recent.h header-y += xt_sctp.h --- linux-2.6.35.orig/include/linux/mtd/flashchip.h +++ linux-2.6.35/include/linux/mtd/flashchip.h @@ -92,7 +92,7 @@ /* This is used to handle contention on write/erase operations between partitions of the same physical chip. */ struct flchip_shared { - spinlock_t lock; + struct mutex lock; struct flchip *writing; struct flchip *erasing; }; --- linux-2.6.35.orig/include/linux/usb/quirks.h +++ linux-2.6.35/include/linux/usb/quirks.h @@ -26,4 +26,8 @@ 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 */ --- linux-2.6.35.orig/include/linux/mmc/host.h +++ linux-2.6.35/include/linux/mmc/host.h @@ -124,6 +124,7 @@ unsigned int f_min; unsigned int f_max; u32 ocr_avail; + 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 */ @@ -183,6 +184,7 @@ /* Only used with MMC_CAP_DISABLE */ int enabled; /* host is enabled */ + int rescan_disable; /* disable card detection */ int nesting_cnt; /* "enable" nesting count */ int en_dis_recurs; /* detect recursion */ unsigned int disable_delay; /* disable delay in msecs */ @@ -257,6 +259,7 @@ int mmc_host_enable(struct mmc_host *host); int mmc_host_disable(struct mmc_host *host); int mmc_host_lazy_disable(struct mmc_host *host); +int mmc_pm_notify(struct notifier_block *notify_block, unsigned long, void *); static inline void mmc_set_disable_delay(struct mmc_host *host, unsigned int disable_delay) --- linux-2.6.35.orig/include/net/sock.h +++ linux-2.6.35/include/net/sock.h @@ -749,6 +749,7 @@ /* 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); /* Keeping track of sockets in use */ --- linux-2.6.35.orig/include/net/tcp.h +++ linux-2.6.35/include/net/tcp.h @@ -268,11 +268,21 @@ return seq3 - seq2 >= seq1 - seq2; } -static inline int tcp_too_many_orphans(struct sock *sk, int num) +static inline bool tcp_too_many_orphans(struct sock *sk, int shift) { - return (num > sysctl_tcp_max_orphans) || - (sk->sk_wmem_queued > SOCK_MIN_SNDBUF && - atomic_read(&tcp_memory_allocated) > sysctl_tcp_mem[2]); + 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; + } + + if (sk->sk_wmem_queued > SOCK_MIN_SNDBUF && + atomic_read(&tcp_memory_allocated) > sysctl_tcp_mem[2]) + return true; + return false; } /* syncookies: remember time of last synqueue overflow */ @@ -509,8 +519,22 @@ /* 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) { - if (tp->max_window && pktsize > (tp->max_window >> 1)) - return max(tp->max_window >> 1, 68U - tp->tcp_header_len); + 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; } --- linux-2.6.35.orig/include/net/udp.h +++ linux-2.6.35/include/net/udp.h @@ -151,6 +151,7 @@ } 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) { --- linux-2.6.35.orig/include/drm/drm_pciids.h +++ linux-2.6.35/include/drm/drm_pciids.h @@ -146,6 +146,8 @@ {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, 0x689c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HEMLOCK|RADEON_NEW_MEMMAP}, \ @@ -161,6 +163,7 @@ {0x1002, 0x68be, 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}, \ @@ -174,6 +177,7 @@ {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, 0x68fe, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \ @@ -314,6 +318,7 @@ {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}, \ @@ -324,6 +329,7 @@ {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}, \ @@ -366,6 +372,7 @@ {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}, \ --- linux-2.6.35.orig/include/drm/i915_drm.h +++ linux-2.6.35/include/drm/i915_drm.h @@ -33,6 +33,15 @@ * 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 --- linux-2.6.35.orig/include/asm-generic/vmlinux.lds.h +++ linux-2.6.35/include/asm-generic/vmlinux.lds.h @@ -599,6 +599,7 @@ *(.initcall0s.init) \ *(.initcall1.init) \ *(.initcall1s.init) \ + *(.initcallearlyrootfs.init) \ *(.initcall2.init) \ *(.initcall2s.init) \ *(.initcall3.init) \ --- linux-2.6.35.orig/include/media/lirc.h +++ linux-2.6.35/include/media/lirc.h @@ -0,0 +1,165 @@ +/* + * 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 +#include + +#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_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 independantly 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) + +#endif --- linux-2.6.35.orig/include/media/ir-kbd-i2c.h +++ linux-2.6.35/include/media/ir-kbd-i2c.h @@ -11,7 +11,7 @@ struct i2c_client *c; struct input_dev *input; struct ir_input_state ir; - + u64 ir_type; /* Used to avoid fast repeating */ unsigned char old; --- linux-2.6.35.orig/include/media/rc-map.h +++ linux-2.6.35/include/media/rc-map.h @@ -17,8 +17,14 @@ #define IR_TYPE_RC6 (1 << 2) /* Philips RC6 protocol */ #define IR_TYPE_JVC (1 << 3) /* JVC protocol */ #define IR_TYPE_SONY (1 << 4) /* Sony12/15/20 protocol */ +#define IR_TYPE_RC5_SZ (1 << 5) /* RC5 variant used by Streamzap */ +#define IR_TYPE_LIRC (1 << 30) /* Pass raw IR to lirc userspace */ #define IR_TYPE_OTHER (1u << 31) +#define IR_TYPE_ALL (IR_TYPE_RC5 | IR_TYPE_NEC | IR_TYPE_RC6 | \ + IR_TYPE_JVC | IR_TYPE_SONY | IR_TYPE_LIRC | \ + IR_TYPE_RC5_SZ | IR_TYPE_OTHER) + struct ir_scancode { u32 scancode; u32 keycode; @@ -87,6 +93,7 @@ #define RC_MAP_KAIOMY "rc-kaiomy" #define RC_MAP_KWORLD_315U "rc-kworld-315u" #define RC_MAP_KWORLD_PLUS_TV_ANALOG "rc-kworld-plus-tv-analog" +#define RC_MAP_LIRC "rc-lirc" #define RC_MAP_MANLI "rc-manli" #define RC_MAP_MSI_TVANYWHERE_PLUS "rc-msi-tvanywhere-plus" #define RC_MAP_MSI_TVANYWHERE "rc-msi-tvanywhere" @@ -107,7 +114,9 @@ #define RC_MAP_PV951 "rc-pv951" #define RC_MAP_RC5_HAUPPAUGE_NEW "rc-rc5-hauppauge-new" #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_STREAMZAP "rc-streamzap" #define RC_MAP_TBS_NEC "rc-tbs-nec" #define RC_MAP_TERRATEC_CINERGY_XS "rc-terratec-cinergy-xs" #define RC_MAP_TEVII_NEC "rc-tevii-nec" --- linux-2.6.35.orig/include/media/lirc_dev.h +++ linux-2.6.35/include/media/lirc_dev.h @@ -0,0 +1,225 @@ +/* + * LIRC base driver + * + * by Artur Lipowski + * This code is licensed under GNU GPL + * + */ + +#ifndef _LINUX_LIRC_DEV_H +#define _LINUX_LIRC_DEV_H + +#define MAX_IRCTL_DEVICES 4 +#define BUFLEN 16 + +#define mod(n, div) ((n) % (div)) + +#include +#include +#include +#include +#include +#include + +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; + unsigned long code_length; + unsigned int buffer_size; /* in chunks holding one code each */ + int sample_rate; + unsigned long 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); + 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 *buffer, size_t length, + loff_t *ppos); +ssize_t lirc_dev_fop_write(struct file *file, const char *buffer, size_t length, + loff_t *ppos); + +#endif --- linux-2.6.35.orig/include/media/ir-core.h +++ linux-2.6.35/include/media/ir-core.h @@ -47,15 +47,21 @@ * 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 + * @tx_ir: transmit IR */ struct ir_dev_props { enum rc_driver_type driver_type; unsigned long allowed_protos; u32 scanmask; - void *priv; + void *priv; int (*change_protocol)(void *priv, u64 ir_type); int (*open)(void *priv); void (*close)(void *priv); + int (*s_tx_mask)(void *priv, u32 mask); + int (*s_tx_carrier)(void *priv, u32 carrier); + int (*tx_ir)(void *priv, int *txbuf, u32 n); }; struct ir_input_dev { --- linux-2.6.35.orig/include/sound/emu10k1.h +++ linux-2.6.35/include/sound/emu10k1.h @@ -1707,6 +1707,7 @@ 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 */ --- linux-2.6.35.orig/sound/soc/soc-cache.c +++ linux-2.6.35/sound/soc/soc-cache.c @@ -340,7 +340,7 @@ static unsigned int snd_soc_16_8_read(struct snd_soc_codec *codec, unsigned int reg) { - u16 *cache = codec->reg_cache; + u8 *cache = codec->reg_cache; reg &= 0xff; if (reg >= codec->reg_cache_size) @@ -351,7 +351,7 @@ static int snd_soc_16_8_write(struct snd_soc_codec *codec, unsigned int reg, unsigned int value) { - u16 *cache = codec->reg_cache; + u8 *cache = codec->reg_cache; u8 data[3]; int ret; --- linux-2.6.35.orig/sound/soc/codecs/wm8580.c +++ linux-2.6.35/sound/soc/codecs/wm8580.c @@ -269,9 +269,9 @@ SOC_DOUBLE("DAC3 Invert Switch", WM8580_DAC_CONTROL4, 4, 5, 1, 0), SOC_SINGLE("DAC ZC Switch", WM8580_DAC_CONTROL5, 5, 1, 0), -SOC_SINGLE("DAC1 Switch", WM8580_DAC_CONTROL5, 0, 1, 0), -SOC_SINGLE("DAC2 Switch", WM8580_DAC_CONTROL5, 1, 1, 0), -SOC_SINGLE("DAC3 Switch", WM8580_DAC_CONTROL5, 2, 1, 0), +SOC_SINGLE("DAC1 Switch", WM8580_DAC_CONTROL5, 0, 1, 1), +SOC_SINGLE("DAC2 Switch", WM8580_DAC_CONTROL5, 1, 1, 1), +SOC_SINGLE("DAC3 Switch", WM8580_DAC_CONTROL5, 2, 1, 1), SOC_DOUBLE("ADC Mute Switch", WM8580_ADC_CONTROL1, 0, 1, 1, 0), SOC_SINGLE("ADC High-Pass Filter Switch", WM8580_ADC_CONTROL1, 4, 1, 0), --- linux-2.6.35.orig/sound/soc/codecs/wm8776.c +++ linux-2.6.35/sound/soc/codecs/wm8776.c @@ -178,13 +178,6 @@ case SND_SOC_DAIFMT_LEFT_J: iface |= 0x0001; break; - /* FIXME: CHECK A/B */ - case SND_SOC_DAIFMT_DSP_A: - iface |= 0x0003; - break; - case SND_SOC_DAIFMT_DSP_B: - iface |= 0x0007; - break; default: return -EINVAL; } --- linux-2.6.35.orig/sound/usb/card.c +++ linux-2.6.35/sound/usb/card.c @@ -126,7 +126,7 @@ for (idx = 0; idx < 2; idx++) { subs = &as->substream[idx]; if (!subs->num_formats) - return; + continue; snd_usb_release_substream_urbs(subs, 1); subs->interface = -1; } @@ -216,6 +216,11 @@ } switch (protocol) { + default: + snd_printdd(KERN_WARNING "unknown interface protocol %#02x, assuming v1\n", + protocol); + /* fall through */ + case UAC_VERSION_1: { struct uac_ac_header_descriptor_v1 *h1 = control_header; @@ -253,10 +258,6 @@ break; } - - default: - snd_printk(KERN_ERR "unknown protocol version 0x%02x\n", protocol); - return -EINVAL; } return 0; @@ -465,7 +466,13 @@ goto __error; } - chip->ctrl_intf = alts; + /* + * For devices with more than one control interface, we assume the + * first contains the audio controls. We might need a more specific + * check here in the future. + */ + if (!chip->ctrl_intf) + chip->ctrl_intf = alts; if (err > 0) { /* create normal USB audio interfaces */ --- linux-2.6.35.orig/sound/usb/mixer.c +++ linux-2.6.35/sound/usb/mixer.c @@ -2168,7 +2168,15 @@ } host_iface = &usb_ifnum_to_if(chip->dev, ctrlif)->altsetting[0]; - mixer->protocol = get_iface_desc(host_iface)->bInterfaceProtocol; + switch (get_iface_desc(host_iface)->bInterfaceProtocol) { + case UAC_VERSION_1: + default: + mixer->protocol = UAC_VERSION_1; + break; + case UAC_VERSION_2: + mixer->protocol = UAC_VERSION_2; + break; + } if ((err = snd_usb_mixer_controls(mixer)) < 0 || (err = snd_usb_mixer_status_create(mixer)) < 0) --- linux-2.6.35.orig/sound/usb/pcm.c +++ linux-2.6.35/sound/usb/pcm.c @@ -173,13 +173,12 @@ switch (altsd->bInterfaceProtocol) { case UAC_VERSION_1: + default: return init_pitch_v1(chip, iface, alts, fmt); case UAC_VERSION_2: return init_pitch_v2(chip, iface, alts, fmt); } - - return -EINVAL; } /* --- linux-2.6.35.orig/sound/usb/endpoint.c +++ linux-2.6.35/sound/usb/endpoint.c @@ -274,6 +274,12 @@ /* get audio formats */ switch (protocol) { + default: + snd_printdd(KERN_WARNING "%d:%u:%d: unknown interface protocol %#02x, assuming v1\n", + dev->devnum, iface_no, altno, protocol); + protocol = UAC_VERSION_1; + /* fall through */ + case UAC_VERSION_1: { struct uac_as_header_descriptor_v1 *as = snd_usb_find_csint_desc(alts->extra, alts->extralen, NULL, UAC_AS_GENERAL); @@ -335,11 +341,6 @@ dev->devnum, iface_no, altno, as->bTerminalLink); continue; } - - default: - snd_printk(KERN_ERR "%d:%u:%d : unknown interface protocol %04x\n", - dev->devnum, iface_no, altno, protocol); - continue; } /* get format type */ --- linux-2.6.35.orig/sound/usb/format.c +++ linux-2.6.35/sound/usb/format.c @@ -49,7 +49,8 @@ u64 pcm_formats; switch (protocol) { - case UAC_VERSION_1: { + case UAC_VERSION_1: + default: { struct uac_format_type_i_discrete_descriptor *fmt = _fmt; sample_width = fmt->bBitResolution; sample_bytes = fmt->bSubframeSize; @@ -64,9 +65,6 @@ format <<= 1; break; } - - default: - return -EINVAL; } pcm_formats = 0; @@ -385,6 +383,10 @@ * audio class v2 uses class specific EP0 range requests for that. */ switch (protocol) { + default: + snd_printdd(KERN_WARNING "%d:%u:%d : invalid protocol version %d, assuming v1\n", + chip->dev->devnum, fp->iface, fp->altsetting, protocol); + /* fall through */ case UAC_VERSION_1: fp->channels = fmt->bNrChannels; ret = parse_audio_format_rates_v1(chip, fp, (unsigned char *) fmt, 7); @@ -435,6 +437,10 @@ fp->channels = 1; switch (protocol) { + default: + snd_printdd(KERN_WARNING "%d:%u:%d : invalid protocol version %d, assuming v1\n", + chip->dev->devnum, fp->iface, fp->altsetting, protocol); + /* fall through */ case UAC_VERSION_1: { struct uac_format_type_ii_discrete_descriptor *fmt = _fmt; brate = le16_to_cpu(fmt->wMaxBitRate); --- linux-2.6.35.orig/sound/usb/clock.c +++ linux-2.6.35/sound/usb/clock.c @@ -304,12 +304,11 @@ switch (altsd->bInterfaceProtocol) { case UAC_VERSION_1: + default: return set_sample_rate_v1(chip, iface, alts, fmt, rate); case UAC_VERSION_2: return set_sample_rate_v2(chip, iface, alts, fmt, rate); } - - return -EINVAL; } --- linux-2.6.35.orig/sound/oss/ad1848.c +++ linux-2.6.35/sound/oss/ad1848.c @@ -458,7 +458,7 @@ return mask; } -static void change_bits(ad1848_info * devc, unsigned char *regval, +static void __change_bits(ad1848_info * devc, unsigned char *regval, unsigned char *muteval, int dev, int chn, int newval) { unsigned char mask; @@ -516,10 +516,10 @@ if (muteregoffs != regoffs) { muteval = ad_read(devc, muteregoffs); - change_bits(devc, &val, &muteval, dev, channel, value); + __change_bits(devc, &val, &muteval, dev, channel, value); } else - change_bits(devc, &val, &val, dev, channel, value); + __change_bits(devc, &val, &val, dev, channel, value); spin_lock_irqsave(&devc->lock,flags); ad_write(devc, regoffs, val); --- linux-2.6.35.orig/sound/oss/sb_mixer.c +++ linux-2.6.35/sound/oss/sb_mixer.c @@ -232,7 +232,7 @@ return 1; } -static void change_bits(sb_devc * devc, unsigned char *regval, int dev, int chn, int newval) +static void __change_bits(sb_devc * devc, unsigned char *regval, int dev, int chn, int newval) { unsigned char mask; int shift; @@ -284,7 +284,7 @@ return -EINVAL; val = sb_getmixer(devc, regoffs); - change_bits(devc, &val, dev, LEFT_CHN, left); + __change_bits(devc, &val, dev, LEFT_CHN, left); if ((*devc->iomap)[dev][RIGHT_CHN].regno != regoffs) /* * Change register @@ -304,7 +304,7 @@ * Read the new one */ } - change_bits(devc, &val, dev, RIGHT_CHN, right); + __change_bits(devc, &val, dev, RIGHT_CHN, right); sb_setmixer(devc, regoffs, val); --- linux-2.6.35.orig/sound/core/pcm_native.c +++ linux-2.6.35/sound/core/pcm_native.c @@ -981,6 +981,10 @@ { if (substream->runtime->trigger_master != substream) return 0; + /* some drivers might use hw_ptr to recover from the pause - + update the hw_ptr now */ + if (push) + snd_pcm_update_hw_ptr(substream); /* The jiffies check in snd_pcm_update_hw_ptr*() is done by * a delta betwen the current jiffies, this gives a large enough * delta, effectively to skip the check once. --- linux-2.6.35.orig/sound/core/seq/oss/seq_oss_init.c +++ linux-2.6.35/sound/core/seq/oss/seq_oss_init.c @@ -281,13 +281,10 @@ return 0; _error: - snd_seq_oss_writeq_delete(dp->writeq); - snd_seq_oss_readq_delete(dp->readq); snd_seq_oss_synth_cleanup(dp); snd_seq_oss_midi_cleanup(dp); - delete_port(dp); delete_seq_queue(dp->queue); - kfree(dp); + delete_port(dp); return rc; } @@ -350,8 +347,10 @@ static int delete_port(struct seq_oss_devinfo *dp) { - if (dp->port < 0) + if (dp->port < 0) { + kfree(dp); return 0; + } debug_printk(("delete_port %i\n", dp->port)); return snd_seq_event_port_detach(dp->cseq, dp->port); --- linux-2.6.35.orig/sound/pci/intel8x0.c +++ linux-2.6.35/sound/pci/intel8x0.c @@ -1776,6 +1776,12 @@ }, { .subvendor = 0x1014, + .subdevice = 0x0534, + .name = "ThinkPad X31", + .type = AC97_TUNE_INV_EAPD + }, + { + .subvendor = 0x1014, .subdevice = 0x1f00, .name = "MS-9128", .type = AC97_TUNE_ALC_JACK --- linux-2.6.35.orig/sound/pci/riptide/riptide.c +++ linux-2.6.35/sound/pci/riptide/riptide.c @@ -1224,15 +1224,14 @@ firmware.firmware.ASIC, firmware.firmware.CODEC, firmware.firmware.AUXDSP, firmware.firmware.PROG); + if (!chip) + return 1; + for (i = 0; i < FIRMWARE_VERSIONS; i++) { if (!memcmp(&firmware_versions[i], &firmware, sizeof(firmware))) - break; - } - if (i >= FIRMWARE_VERSIONS) - return 0; /* no match */ + return 1; /* OK */ - if (!chip) - return 1; /* OK */ + } snd_printdd("Writing Firmware\n"); if (!chip->fw_entry) { --- linux-2.6.35.orig/sound/pci/hda/patch_conexant.c +++ linux-2.6.35/sound/pci/hda/patch_conexant.c @@ -116,6 +116,7 @@ unsigned int dell_vostro:1; unsigned int ideapad:1; unsigned int thinkpad:1; + unsigned int hp_laptop:1; unsigned int ext_mic_present; unsigned int recording; @@ -1632,6 +1633,11 @@ pinctl = (!spec->hp_present && spec->cur_eapd) ? PIN_OUT : 0; snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, pinctl); + /* on ideapad there is an aditional speaker (subwoofer) to mute */ + if (spec->ideapad) + snd_hda_codec_write(codec, 0x1b, 0, + AC_VERB_SET_PIN_WIDGET_CONTROL, + pinctl); } /* turn on/off EAPD (+ mute HP) as a master switch */ @@ -1888,6 +1894,13 @@ #endif } +static struct hda_verb cxt5051_ideapad_init_verbs[] = { + /* Subwoofer */ + {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + {0x1b, AC_VERB_SET_CONNECT_SEL, 0x00}, + { } /* end */ +}; + /* initialize jack-sensing, too */ static int cxt5051_init(struct hda_codec *codec) { @@ -1917,6 +1930,7 @@ CXT5051_LENOVO_X200, /* Lenovo X200 laptop, also used for Advanced Mini Dock 250410 */ CXT5051_F700, /* HP Compaq Presario F700 */ CXT5051_TOSHIBA, /* Toshiba M300 & co */ + CXT5051_IDEAPAD, /* Lenovo IdeaPad Y430 */ CXT5051_MODELS }; @@ -1927,6 +1941,7 @@ [CXT5051_LENOVO_X200] = "lenovo-x200", [CXT5051_F700] = "hp-700", [CXT5051_TOSHIBA] = "toshiba", + [CXT5051_IDEAPAD] = "ideapad", }; static struct snd_pci_quirk cxt5051_cfg_tbl[] = { @@ -1938,6 +1953,7 @@ CXT5051_LAPTOP), SND_PCI_QUIRK(0x14f1, 0x5051, "HP Spartan 1.1", CXT5051_HP), SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo X200", CXT5051_LENOVO_X200), + SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo IdeaPad", CXT5051_IDEAPAD), {} }; @@ -1999,6 +2015,11 @@ spec->mixers[0] = cxt5051_toshiba_mixers; spec->auto_mic = AUTO_MIC_PORTB; break; + case CXT5051_IDEAPAD: + spec->init_verbs[spec->num_init_verbs++] = + cxt5051_ideapad_init_verbs; + spec->ideapad = 1; + break; } return 0; @@ -2219,6 +2240,18 @@ } } +/* toggle input of built-in digital mic and mic jack appropriately */ +static void cxt5066_hp_laptop_automic(struct hda_codec *codec) +{ + unsigned int present; + + present = snd_hda_jack_detect(codec, 0x1b); + snd_printdd("CXT5066: external microphone present=%d\n", present); + snd_hda_codec_write(codec, 0x17, 0, AC_VERB_SET_CONNECT_SEL, + present ? 1 : 3); +} + + /* toggle input of built-in digital mic and mic jack appropriately order is: external mic -> dock mic -> interal mic */ static void cxt5066_thinkpad_automic(struct hda_codec *codec) @@ -2328,6 +2361,20 @@ } /* unsolicited event for jack sensing */ +static void cxt5066_hp_laptop_event(struct hda_codec *codec, unsigned int res) +{ + snd_printdd("CXT5066_hp_laptop: unsol event %x (%x)\n", res, res >> 26); + switch (res >> 26) { + case CONEXANT_HP_EVENT: + cxt5066_hp_automute(codec); + break; + case CONEXANT_MIC_EVENT: + cxt5066_hp_laptop_automic(codec); + break; + } +} + +/* unsolicited event for jack sensing */ static void cxt5066_thinkpad_event(struct hda_codec *codec, unsigned int res) { snd_printdd("CXT5066_thinkpad: unsol event %x (%x)\n", res, res >> 26); @@ -2910,6 +2957,14 @@ { } /* end */ }; + +static struct hda_verb cxt5066_init_verbs_hp_laptop[] = { + {0x14, AC_VERB_SET_CONNECT_SEL, 0x0}, + {0x19, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_HP_EVENT}, + {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_MIC_EVENT}, + { } /* end */ +}; + /* initialize jack-sensing, too */ static int cxt5066_init(struct hda_codec *codec) { @@ -2925,6 +2980,8 @@ cxt5066_ideapad_automic(codec); else if (spec->thinkpad) cxt5066_thinkpad_automic(codec); + else if (spec->hp_laptop) + cxt5066_hp_laptop_automic(codec); } cxt5066_set_mic_boost(codec); return 0; @@ -2952,6 +3009,7 @@ CXT5066_DELL_VOSTO, /* Dell Vostro 1015i */ CXT5066_IDEAPAD, /* Lenovo IdeaPad U150 */ CXT5066_THINKPAD, /* Lenovo ThinkPad T410s, others? */ + CXT5066_HP_LAPTOP, /* HP Laptop */ CXT5066_MODELS }; @@ -2962,6 +3020,7 @@ [CXT5066_DELL_VOSTO] = "dell-vostro", [CXT5066_IDEAPAD] = "ideapad", [CXT5066_THINKPAD] = "thinkpad", + [CXT5066_HP_LAPTOP] = "hp-laptop", }; static struct snd_pci_quirk cxt5066_cfg_tbl[] = { @@ -2970,10 +3029,13 @@ SND_PCI_QUIRK(0x1028, 0x02f5, "Dell", CXT5066_DELL_LAPTOP), SND_PCI_QUIRK(0x152d, 0x0833, "OLPC XO-1.5", CXT5066_OLPC_XO_1_5), + SND_PCI_QUIRK(0x1028, 0x02d8, "Dell Vostro", CXT5066_DELL_VOSTO), SND_PCI_QUIRK(0x1028, 0x0402, "Dell Vostro", CXT5066_DELL_VOSTO), SND_PCI_QUIRK(0x1028, 0x0408, "Dell Inspiron One 19T", CXT5066_IDEAPAD), + SND_PCI_QUIRK(0x103c, 0x360b, "HP G60", CXT5066_HP_LAPTOP), SND_PCI_QUIRK(0x1179, 0xff50, "Toshiba Satellite P500-PSPGSC-01800T", CXT5066_OLPC_XO_1_5), SND_PCI_QUIRK(0x1179, 0xffe0, "Toshiba Satellite Pro T130-15F", CXT5066_OLPC_XO_1_5), + SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400s", CXT5066_THINKPAD), SND_PCI_QUIRK(0x17aa, 0x21b2, "Thinkpad X100e", CXT5066_IDEAPAD), SND_PCI_QUIRK(0x17aa, 0x21b3, "Thinkpad Edge 13 (197)", CXT5066_IDEAPAD), SND_PCI_QUIRK(0x17aa, 0x21b4, "Thinkpad Edge", CXT5066_IDEAPAD), @@ -3031,6 +3093,23 @@ spec->num_init_verbs++; spec->dell_automute = 1; break; + case CXT5066_HP_LAPTOP: + codec->patch_ops.init = cxt5066_init; + codec->patch_ops.unsol_event = cxt5066_hp_laptop_event; + spec->init_verbs[spec->num_init_verbs] = + cxt5066_init_verbs_hp_laptop; + spec->num_init_verbs++; + spec->hp_laptop = 1; + spec->mixers[spec->num_mixers++] = cxt5066_mixer_master; + spec->mixers[spec->num_mixers++] = cxt5066_mixers; + /* no S/PDIF out */ + spec->multiout.dig_out_nid = 0; + /* input source automatically selected */ + spec->input_mux = NULL; + spec->port_d_mode = 0; + spec->mic_boost = 3; /* default 30dB gain */ + break; + case CXT5066_OLPC_XO_1_5: codec->patch_ops.init = cxt5066_olpc_init; codec->patch_ops.unsol_event = cxt5066_olpc_unsol_event; --- linux-2.6.35.orig/sound/pci/hda/hda_hwdep.c +++ linux-2.6.35/sound/pci/hda/hda_hwdep.c @@ -649,7 +649,9 @@ *codecp = NULL; if (sscanf(buf, "%i %i %i", &vendorid, &subid, &caddr) == 3) { list_for_each_entry(codec, &bus->codec_list, list) { - if (codec->addr == caddr) { + if (codec->vendor_id == vendorid && + codec->subsystem_id == subid && + codec->addr == caddr) { *codecp = codec; break; } --- linux-2.6.35.orig/sound/pci/hda/patch_nvhdmi.c +++ linux-2.6.35/sound/pci/hda/patch_nvhdmi.c @@ -541,26 +541,32 @@ * patch entries */ static struct hda_codec_preset snd_hda_preset_nvhdmi[] = { - { .id = 0x10de0002, .name = "MCP77/78 HDMI", - .patch = patch_nvhdmi_8ch_7x }, - { .id = 0x10de0003, .name = "MCP77/78 HDMI", - .patch = patch_nvhdmi_8ch_7x }, - { .id = 0x10de0005, .name = "MCP77/78 HDMI", - .patch = patch_nvhdmi_8ch_7x }, - { .id = 0x10de0006, .name = "MCP77/78 HDMI", - .patch = patch_nvhdmi_8ch_7x }, - { .id = 0x10de0007, .name = "MCP79/7A HDMI", - .patch = patch_nvhdmi_8ch_7x }, - { .id = 0x10de000a, .name = "GT220 HDMI", - .patch = patch_nvhdmi_8ch_89 }, - { .id = 0x10de000b, .name = "GT21x HDMI", - .patch = patch_nvhdmi_8ch_89 }, - { .id = 0x10de000c, .name = "MCP89 HDMI", - .patch = patch_nvhdmi_8ch_89 }, - { .id = 0x10de000d, .name = "GT240 HDMI", - .patch = patch_nvhdmi_8ch_89 }, - { .id = 0x10de0067, .name = "MCP67 HDMI", .patch = patch_nvhdmi_2ch }, - { .id = 0x10de8001, .name = "MCP73 HDMI", .patch = patch_nvhdmi_2ch }, + { .id = 0x10de0002, .name = "MCP77/78 HDMI", .patch = patch_nvhdmi_8ch_7x }, + { .id = 0x10de0003, .name = "MCP77/78 HDMI", .patch = patch_nvhdmi_8ch_7x }, + { .id = 0x10de0005, .name = "MCP77/78 HDMI", .patch = patch_nvhdmi_8ch_7x }, + { .id = 0x10de0006, .name = "MCP77/78 HDMI", .patch = patch_nvhdmi_8ch_7x }, + { .id = 0x10de0007, .name = "MCP79/7A HDMI", .patch = patch_nvhdmi_8ch_7x }, + { .id = 0x10de000a, .name = "GPU 0a HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de000b, .name = "GPU 0b HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de000c, .name = "MCP89 HDMI", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de000d, .name = "GPU 0d HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0010, .name = "GPU 10 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0011, .name = "GPU 11 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0012, .name = "GPU 12 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0013, .name = "GPU 13 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0014, .name = "GPU 14 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0018, .name = "GPU 18 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0019, .name = "GPU 19 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de001a, .name = "GPU 1a HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de001b, .name = "GPU 1b HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de001c, .name = "GPU 1c HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0040, .name = "GPU 40 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0041, .name = "GPU 41 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0042, .name = "GPU 42 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0043, .name = "GPU 43 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0044, .name = "GPU 44 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, + { .id = 0x10de0067, .name = "MCP67 HDMI", .patch = patch_nvhdmi_2ch }, + { .id = 0x10de8001, .name = "MCP73 HDMI", .patch = patch_nvhdmi_2ch }, {} /* terminator */ }; @@ -573,6 +579,21 @@ MODULE_ALIAS("snd-hda-codec-id:10de000b"); MODULE_ALIAS("snd-hda-codec-id:10de000c"); MODULE_ALIAS("snd-hda-codec-id:10de000d"); +MODULE_ALIAS("snd-hda-codec-id:10de0010"); +MODULE_ALIAS("snd-hda-codec-id:10de0011"); +MODULE_ALIAS("snd-hda-codec-id:10de0012"); +MODULE_ALIAS("snd-hda-codec-id:10de0013"); +MODULE_ALIAS("snd-hda-codec-id:10de0014"); +MODULE_ALIAS("snd-hda-codec-id:10de0018"); +MODULE_ALIAS("snd-hda-codec-id:10de0019"); +MODULE_ALIAS("snd-hda-codec-id:10de001a"); +MODULE_ALIAS("snd-hda-codec-id:10de001b"); +MODULE_ALIAS("snd-hda-codec-id:10de001c"); +MODULE_ALIAS("snd-hda-codec-id:10de0040"); +MODULE_ALIAS("snd-hda-codec-id:10de0041"); +MODULE_ALIAS("snd-hda-codec-id:10de0042"); +MODULE_ALIAS("snd-hda-codec-id:10de0043"); +MODULE_ALIAS("snd-hda-codec-id:10de0044"); MODULE_ALIAS("snd-hda-codec-id:10de0067"); MODULE_ALIAS("snd-hda-codec-id:10de8001"); --- linux-2.6.35.orig/sound/pci/hda/patch_realtek.c +++ linux-2.6.35/sound/pci/hda/patch_realtek.c @@ -5183,6 +5183,7 @@ static struct snd_pci_quirk beep_white_list[] = { SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1), + SND_PCI_QUIRK(0x8086, 0xd613, "Intel", 1), {} }; @@ -6863,6 +6864,7 @@ spec->stream_analog_playback = &alc260_pcm_analog_playback; spec->stream_analog_capture = &alc260_pcm_analog_capture; + spec->stream_analog_alt_capture = &alc260_pcm_analog_capture; spec->stream_digital_playback = &alc260_pcm_digital_playback; spec->stream_digital_capture = &alc260_pcm_digital_capture; @@ -7003,7 +7005,7 @@ .num_items = 4, .items = { { "Mic", 0x0 }, - { "iMic", 0x1 }, + { "Int Mic", 0x1 }, { "Line", 0x2 }, { "CD", 0x4 }, }, @@ -8573,8 +8575,8 @@ HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT), HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), - HDA_CODEC_VOLUME("iMic Playback Volume", 0x0b, 0x1, HDA_INPUT), - HDA_CODEC_MUTE("iMic Playback Switch", 0x0b, 0x1, HDA_INPUT), + HDA_CODEC_VOLUME("Int Mic Playback Volume", 0x0b, 0x1, HDA_INPUT), + HDA_CODEC_MUTE("Int Mic Playback Switch", 0x0b, 0x1, HDA_INPUT), { } /* end */ }; @@ -13024,6 +13026,8 @@ dac = 0x02; break; case 0x15: + case 0x1a: /* ALC259/269 only */ + case 0x1b: /* ALC259/269 only */ case 0x21: /* ALC269vb has this pin, too */ dac = 0x03; break; @@ -13303,7 +13307,6 @@ SND_PCI_QUIRK(0x14c0, 0x0025, "COMPAL IFL90/JFL-92", ALC268_TOSHIBA), SND_PCI_QUIRK(0x152d, 0x0763, "Diverse (CPR2000)", ALC268_ACER), SND_PCI_QUIRK(0x152d, 0x0771, "Quanta IL1", ALC267_QUANTA_IL1), - SND_PCI_QUIRK(0x1854, 0x1775, "LG R510", ALC268_DELL), {} }; @@ -14227,6 +14230,7 @@ enum { ALC269_FIXUP_SONY_VAIO, + ALC269_FIXUP_DELL_M101Z, }; static const struct hda_verb alc269_sony_vaio_fixup_verbs[] = { @@ -14238,10 +14242,20 @@ [ALC269_FIXUP_SONY_VAIO] = { .verbs = alc269_sony_vaio_fixup_verbs }, + [ALC269_FIXUP_DELL_M101Z] = { + .verbs = (const struct hda_verb[]) { + /* Enables internal speaker */ + {0x20, AC_VERB_SET_COEF_INDEX, 13}, + {0x20, AC_VERB_SET_PROC_COEF, 0x4040}, + {} + } + }, }; static struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x104d, 0x9071, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), + SND_PCI_QUIRK(0x104d, 0x9077, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), + SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), {} }; --- linux-2.6.35.orig/sound/pci/hda/hda_intel.c +++ linux-2.6.35/sound/pci/hda/hda_intel.c @@ -2005,6 +2005,7 @@ struct azx_pcm *apcm; int pcm_dev = cpcm->device; int s, err; + size_t prealloc_min = 64*1024; /* 64KB */ if (pcm_dev >= HDA_MAX_PCMS) { snd_printk(KERN_ERR SFX "Invalid PCM device number %d\n", @@ -2038,10 +2039,21 @@ if (cpcm->stream[s].substreams) snd_pcm_set_ops(pcm, s, &azx_pcm_ops); } + /* buffer pre-allocation */ + + /* subtle, don't allocate a big buffer for modems... + * also, don't just test 32BIT_MASK, since azx supports + * 64-bit DMA in some cases. + */ + /* lennart wants a 2.2MB buffer for 2sec of 48khz */ + if (pcm->dev_class == SNDRV_PCM_CLASS_GENERIC && + chip->pci->dma_mask >= DMA_32BIT_MASK) + prealloc_min = 4 * 1024 * 1024; /* 4MB */ + snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG, snd_dma_pci_data(chip->pci), - 1024 * 64, 32 * 1024 * 1024); + prealloc_min, 32 * 1024 * 1024); return 0; } --- linux-2.6.35.orig/sound/pci/hda/patch_cirrus.c +++ linux-2.6.35/sound/pci/hda/patch_cirrus.c @@ -972,6 +972,53 @@ {} /* terminator */ }; +/* Errata: CS4207 rev C0/C1/C2 Silicon + * + * http://www.cirrus.com/en/pubs/errata/ER880C3.pdf + * + * 6. At high temperature (TA > +85°C), the digital supply current (IVD) + * may be excessive (up to an additional 200 μA), which is most easily + * observed while the part is being held in reset (RESET# active low). + * + * Root Cause: At initial powerup of the device, the logic that drives + * the clock and write enable to the S/PDIF SRC RAMs is not properly + * initialized. + * Certain random patterns will cause a steady leakage current in those + * RAM cells. The issue will resolve once the SRCs are used (turned on). + * + * Workaround: The following verb sequence briefly turns on the S/PDIF SRC + * blocks, which will alleviate the issue. + */ + +static struct hda_verb cs_errata_init_verbs[] = { + {0x01, AC_VERB_SET_POWER_STATE, 0x00}, /* AFG: D0 */ + {0x11, AC_VERB_SET_PROC_STATE, 0x01}, /* VPW: processing on */ + + {0x11, AC_VERB_SET_COEF_INDEX, 0x0008}, + {0x11, AC_VERB_SET_PROC_COEF, 0x9999}, + {0x11, AC_VERB_SET_COEF_INDEX, 0x0017}, + {0x11, AC_VERB_SET_PROC_COEF, 0xa412}, + {0x11, AC_VERB_SET_COEF_INDEX, 0x0001}, + {0x11, AC_VERB_SET_PROC_COEF, 0x0009}, + + {0x07, AC_VERB_SET_POWER_STATE, 0x00}, /* S/PDIF Rx: D0 */ + {0x08, AC_VERB_SET_POWER_STATE, 0x00}, /* S/PDIF Tx: D0 */ + + {0x11, AC_VERB_SET_COEF_INDEX, 0x0017}, + {0x11, AC_VERB_SET_PROC_COEF, 0x2412}, + {0x11, AC_VERB_SET_COEF_INDEX, 0x0008}, + {0x11, AC_VERB_SET_PROC_COEF, 0x0000}, + {0x11, AC_VERB_SET_COEF_INDEX, 0x0001}, + {0x11, AC_VERB_SET_PROC_COEF, 0x0008}, + {0x11, AC_VERB_SET_PROC_STATE, 0x00}, + + {0x07, AC_VERB_SET_POWER_STATE, 0x03}, /* S/PDIF Rx: D3 */ + {0x08, AC_VERB_SET_POWER_STATE, 0x03}, /* S/PDIF Tx: D3 */ + /*{0x01, AC_VERB_SET_POWER_STATE, 0x03},*/ /* AFG: D3 This is already handled */ + + {} /* terminator */ +}; + /* SPDIF setup */ static void init_digital(struct hda_codec *codec) { @@ -991,6 +1038,9 @@ { struct cs_spec *spec = codec->spec; + /* init_verb sequence for C0/C1/C2 errata*/ + snd_hda_sequence_write(codec, cs_errata_init_verbs); + snd_hda_sequence_write(codec, cs_coef_init_verbs); if (spec->gpio_mask) { --- linux-2.6.35.orig/sound/pci/hda/hda_codec.c +++ linux-2.6.35/sound/pci/hda/hda_codec.c @@ -4360,7 +4360,7 @@ cfg->hp_outs--; memmove(cfg->hp_pins + i, cfg->hp_pins + i + 1, sizeof(cfg->hp_pins[0]) * (cfg->hp_outs - i)); - memmove(sequences_hp + i - 1, sequences_hp + i, + memmove(sequences_hp + i, sequences_hp + i + 1, sizeof(sequences_hp[0]) * (cfg->hp_outs - i)); } } --- linux-2.6.35.orig/sound/pci/hda/patch_sigmatel.c +++ linux-2.6.35/sound/pci/hda/patch_sigmatel.c @@ -93,7 +93,9 @@ STAC_92HD83XXX_REF, STAC_92HD83XXX_PWR_REF, STAC_DELL_S14, + STAC_DELL_E6410, STAC_92HD83XXX_HP, + STAC_DELL_M6500, STAC_92HD83XXX_MODELS }; @@ -202,6 +204,7 @@ unsigned int spdif_mute: 1; unsigned int check_volume_offset:1; unsigned int auto_mic:1; + unsigned int linear_tone_beep:1; /* gpio lines */ unsigned int eapd_mask; @@ -1631,10 +1634,26 @@ 0x40f000f0, 0x40f000f0, }; +/* Deliberately turn off 0x0f (Dock Mic) to make it choose Int Mic instead */ +static unsigned int dell_e6410_pin_configs[10] = { + 0x04a11020, 0x0421101f, 0x400000f0, 0x90170110, + 0x23011050, 0x40f000f0, 0x400000f0, 0x90a60130, + 0x40f000f0, 0x40f000f0, +}; + +/* Dell Precision M6500, make sure 0x0e is silenced */ +static unsigned int dell_m6500_pin_configs[10] = { + 0x03a11030, 0x0321101f, 0x400000f0, 0x90170110, + 0x400000f0, 0x23011050, 0x400000f0, 0x90a10120, + 0x014613b0, 0x400000f0, +}; + static unsigned int *stac92hd83xxx_brd_tbl[STAC_92HD83XXX_MODELS] = { [STAC_92HD83XXX_REF] = ref92hd83xxx_pin_configs, [STAC_92HD83XXX_PWR_REF] = ref92hd83xxx_pin_configs, [STAC_DELL_S14] = dell_s14_pin_configs, + [STAC_DELL_E6410] = dell_e6410_pin_configs, + [STAC_DELL_M6500] = dell_m6500_pin_configs, }; static const char *stac92hd83xxx_models[STAC_92HD83XXX_MODELS] = { @@ -1642,6 +1661,8 @@ [STAC_92HD83XXX_REF] = "ref", [STAC_92HD83XXX_PWR_REF] = "mic-ref", [STAC_DELL_S14] = "dell-s14", + [STAC_DELL_E6410] = "dell-e6410", + [STAC_DELL_M6500] = "dell-m6500", [STAC_92HD83XXX_HP] = "hp", }; @@ -1653,6 +1674,12 @@ "DFI LanParty", STAC_92HD83XXX_REF), SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02ba, "unknown Dell", STAC_DELL_S14), + SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x040a, + "Dell E6410", STAC_DELL_E6410), + SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x040b, + "Dell E6510", STAC_DELL_E6410), + SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02ef, + "Dell M6500", STAC_DELL_M6500), SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xff00, 0x3600, "HP", STAC_92HD83XXX_HP), {} /* terminator */ @@ -3802,7 +3829,7 @@ return err; if (codec->beep) { /* IDT/STAC codecs have linear beep tone parameter */ - codec->beep->linear_tone = 1; + codec->beep->linear_tone = spec->linear_tone_beep; /* if no beep switch is available, make its own one */ caps = query_amp_caps(codec, nid, HDA_OUTPUT); if (!(caps & AC_AMPCAP_MUTE)) { @@ -5005,6 +5032,7 @@ codec->no_trigger_sense = 1; codec->spec = spec; + spec->linear_tone_beep = 1; spec->num_pins = ARRAY_SIZE(stac9200_pin_nids); spec->pin_nids = stac9200_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_9200_MODELS, @@ -5068,6 +5096,7 @@ codec->no_trigger_sense = 1; codec->spec = spec; + spec->linear_tone_beep = 1; spec->num_pins = ARRAY_SIZE(stac925x_pin_nids); spec->pin_nids = stac925x_pin_nids; @@ -5153,6 +5182,7 @@ codec->no_trigger_sense = 1; codec->spec = spec; + spec->linear_tone_beep = 0; codec->slave_dig_outs = stac92hd73xx_slave_dig_outs; spec->num_pins = ARRAY_SIZE(stac92hd73xx_pin_nids); spec->pin_nids = stac92hd73xx_pin_nids; @@ -5300,6 +5330,7 @@ codec->no_trigger_sense = 1; codec->spec = spec; + spec->linear_tone_beep = 1; codec->slave_dig_outs = stac92hd83xxx_slave_dig_outs; spec->digbeep_nid = 0x21; spec->mux_nids = stac92hd83xxx_mux_nids; @@ -5522,6 +5553,7 @@ codec->no_trigger_sense = 1; codec->spec = spec; + spec->linear_tone_beep = 0; codec->patch_ops = stac92xx_patch_ops; spec->num_pins = STAC92HD71BXX_NUM_PINS; switch (codec->vendor_id) { @@ -5779,6 +5811,7 @@ codec->no_trigger_sense = 1; codec->spec = spec; + spec->linear_tone_beep = 1; spec->num_pins = ARRAY_SIZE(stac922x_pin_nids); spec->pin_nids = stac922x_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_922X_MODELS, @@ -5883,6 +5916,7 @@ codec->no_trigger_sense = 1; codec->spec = spec; + spec->linear_tone_beep = 1; codec->slave_dig_outs = stac927x_slave_dig_outs; spec->num_pins = ARRAY_SIZE(stac927x_pin_nids); spec->pin_nids = stac927x_pin_nids; @@ -6018,6 +6052,7 @@ codec->no_trigger_sense = 1; codec->spec = spec; + spec->linear_tone_beep = 1; spec->num_pins = ARRAY_SIZE(stac9205_pin_nids); spec->pin_nids = stac9205_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_9205_MODELS, @@ -6174,6 +6209,7 @@ return -ENOMEM; codec->no_trigger_sense = 1; codec->spec = spec; + spec->linear_tone_beep = 1; spec->num_pins = ARRAY_SIZE(stac9872_pin_nids); spec->pin_nids = stac9872_pin_nids; --- linux-2.6.35.orig/sound/pci/oxygen/virtuoso.c +++ linux-2.6.35/sound/pci/oxygen/virtuoso.c @@ -95,6 +95,7 @@ .suspend = oxygen_pci_suspend, .resume = oxygen_pci_resume, #endif + .shutdown = oxygen_pci_shutdown, }; static int __init alsa_card_xonar_init(void) --- linux-2.6.35.orig/sound/pci/oxygen/xonar_wm87x6.c +++ linux-2.6.35/sound/pci/oxygen/xonar_wm87x6.c @@ -53,6 +53,8 @@ struct xonar_generic generic; u16 wm8776_regs[0x17]; u16 wm8766_regs[0x10]; + struct snd_kcontrol *line_adcmux_control; + struct snd_kcontrol *mic_adcmux_control; struct snd_kcontrol *lc_controls[13]; }; @@ -193,6 +195,7 @@ static void xonar_ds_cleanup(struct oxygen *chip) { xonar_disable_output(chip); + wm8776_write(chip, WM8776_RESET, 0); } static void xonar_ds_suspend(struct oxygen *chip) @@ -603,6 +606,7 @@ { struct oxygen *chip = ctl->private_data; struct xonar_wm87x6 *data = chip->model_data; + struct snd_kcontrol *other_ctl; unsigned int mux_bit = ctl->private_value; u16 reg; int changed; @@ -610,8 +614,18 @@ mutex_lock(&chip->mutex); reg = data->wm8776_regs[WM8776_ADCMUX]; if (value->value.integer.value[0]) { - reg &= ~0x003; reg |= mux_bit; + /* line-in and mic-in are exclusive */ + mux_bit ^= 3; + if (reg & mux_bit) { + reg &= ~mux_bit; + if (mux_bit == 1) + other_ctl = data->line_adcmux_control; + else + other_ctl = data->mic_adcmux_control; + snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE, + &other_ctl->id); + } } else reg &= ~mux_bit; changed = reg != data->wm8776_regs[WM8776_ADCMUX]; @@ -963,7 +977,13 @@ err = snd_ctl_add(chip->card, ctl); if (err < 0) return err; + if (!strcmp(ctl->id.name, "Line Capture Switch")) + data->line_adcmux_control = ctl; + else if (!strcmp(ctl->id.name, "Mic Capture Switch")) + data->mic_adcmux_control = ctl; } + if (!data->line_adcmux_control || !data->mic_adcmux_control) + return -ENXIO; BUILD_BUG_ON(ARRAY_SIZE(lc_controls) != ARRAY_SIZE(data->lc_controls)); for (i = 0; i < ARRAY_SIZE(lc_controls); ++i) { ctl = snd_ctl_new1(&lc_controls[i], chip); --- linux-2.6.35.orig/sound/pci/oxygen/oxygen_lib.c +++ linux-2.6.35/sound/pci/oxygen/oxygen_lib.c @@ -519,16 +519,21 @@ } } -static void oxygen_card_free(struct snd_card *card) +static void oxygen_shutdown(struct oxygen *chip) { - struct oxygen *chip = card->private_data; - spin_lock_irq(&chip->reg_lock); chip->interrupt_mask = 0; chip->pcm_running = 0; oxygen_write16(chip, OXYGEN_DMA_STATUS, 0); oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, 0); spin_unlock_irq(&chip->reg_lock); +} + +static void oxygen_card_free(struct snd_card *card) +{ + struct oxygen *chip = card->private_data; + + oxygen_shutdown(chip); if (chip->irq >= 0) free_irq(chip->irq, chip); flush_scheduled_work(); @@ -778,3 +783,13 @@ } EXPORT_SYMBOL(oxygen_pci_resume); #endif /* CONFIG_PM */ + +void oxygen_pci_shutdown(struct pci_dev *pci) +{ + struct snd_card *card = pci_get_drvdata(pci); + struct oxygen *chip = card->private_data; + + oxygen_shutdown(chip); + chip->model.cleanup(chip); +} +EXPORT_SYMBOL(oxygen_pci_shutdown); --- linux-2.6.35.orig/sound/pci/oxygen/oxygen.h +++ linux-2.6.35/sound/pci/oxygen/oxygen.h @@ -155,6 +155,7 @@ int oxygen_pci_suspend(struct pci_dev *pci, pm_message_t state); int oxygen_pci_resume(struct pci_dev *pci); #endif +void oxygen_pci_shutdown(struct pci_dev *pci); /* oxygen_mixer.c */ --- linux-2.6.35.orig/sound/pci/emu10k1/emu10k1.c +++ linux-2.6.35/sound/pci/emu10k1/emu10k1.c @@ -52,6 +52,7 @@ static int max_buffer_size[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 128}; static int enable_ir[SNDRV_CARDS]; static uint subsystem[SNDRV_CARDS]; /* Force card subsystem model */ +static uint delay_pcm_irq[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 2}; module_param_array(index, int, NULL, 0444); MODULE_PARM_DESC(index, "Index value for the EMU10K1 soundcard."); @@ -73,6 +74,8 @@ MODULE_PARM_DESC(enable_ir, "Enable IR."); module_param_array(subsystem, uint, NULL, 0444); MODULE_PARM_DESC(subsystem, "Force card subsystem model."); +module_param_array(delay_pcm_irq, uint, NULL, 0444); +MODULE_PARM_DESC(delay_pcm_irq, "Delay PCM interrupt by specified number of samples (default 0)."); /* * Class 0401: 1102:0008 (rev 00) Subsystem: 1102:1001 -> Audigy2 Value Model:SB0400 */ @@ -127,6 +130,7 @@ &emu)) < 0) goto error; card->private_data = emu; + emu->delay_pcm_irq = delay_pcm_irq[dev] & 0x1f; if ((err = snd_emu10k1_pcm(emu, 0, NULL)) < 0) goto error; if ((err = snd_emu10k1_pcm_mic(emu, 1, NULL)) < 0) --- linux-2.6.35.orig/sound/pci/emu10k1/emupcm.c +++ linux-2.6.35/sound/pci/emu10k1/emupcm.c @@ -332,7 +332,7 @@ evoice->epcm->ccca_start_addr = start_addr + ccis; if (extra) { start_addr += ccis; - end_addr += ccis; + end_addr += ccis + emu->delay_pcm_irq; } if (stereo && !extra) { snd_emu10k1_ptr_write(emu, CPF, voice, CPF_STEREO_MASK); @@ -360,7 +360,9 @@ /* Assumption that PT is already 0 so no harm overwriting */ snd_emu10k1_ptr_write(emu, PTRX, voice, (send_amount[0] << 8) | send_amount[1]); snd_emu10k1_ptr_write(emu, DSL, voice, end_addr | (send_amount[3] << 24)); - snd_emu10k1_ptr_write(emu, PSST, voice, start_addr | (send_amount[2] << 24)); + snd_emu10k1_ptr_write(emu, PSST, voice, + (start_addr + (extra ? emu->delay_pcm_irq : 0)) | + (send_amount[2] << 24)); if (emu->card_capabilities->emu_model) pitch_target = PITCH_48000; /* Disable interpolators on emu1010 card */ else @@ -732,6 +734,23 @@ snd_emu10k1_ptr_write(emu, IP, voice, 0); } +static inline void snd_emu10k1_playback_mangle_extra(struct snd_emu10k1 *emu, + struct snd_emu10k1_pcm *epcm, + struct snd_pcm_substream *substream, + struct snd_pcm_runtime *runtime) +{ + unsigned int ptr, period_pos; + + /* try to sychronize the current position for the interrupt + source voice */ + period_pos = runtime->status->hw_ptr - runtime->hw_ptr_interrupt; + period_pos %= runtime->period_size; + ptr = snd_emu10k1_ptr_read(emu, CCCA, epcm->extra->number); + ptr &= ~0x00ffffff; + ptr |= epcm->ccca_start_addr + period_pos; + snd_emu10k1_ptr_write(emu, CCCA, epcm->extra->number, ptr); +} + static int snd_emu10k1_playback_trigger(struct snd_pcm_substream *substream, int cmd) { @@ -753,6 +772,8 @@ /* follow thru */ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: case SNDRV_PCM_TRIGGER_RESUME: + if (cmd == SNDRV_PCM_TRIGGER_PAUSE_RELEASE) + snd_emu10k1_playback_mangle_extra(emu, epcm, substream, runtime); mix = &emu->pcm_mixer[substream->number]; snd_emu10k1_playback_prepare_voice(emu, epcm->voices[0], 1, 0, mix); snd_emu10k1_playback_prepare_voice(emu, epcm->voices[1], 0, 0, mix); @@ -869,8 +890,9 @@ #endif /* printk(KERN_DEBUG - "ptr = 0x%x, buffer_size = 0x%x, period_size = 0x%x\n", - ptr, runtime->buffer_size, runtime->period_size); + "ptr = 0x%lx, buffer_size = 0x%lx, period_size = 0x%lx\n", + (long)ptr, (long)runtime->buffer_size, + (long)runtime->period_size); */ return ptr; } --- linux-2.6.35.orig/sound/pci/emu10k1/memory.c +++ linux-2.6.35/sound/pci/emu10k1/memory.c @@ -310,8 +310,10 @@ if (snd_BUG_ON(!hdr)) return NULL; + idx = runtime->period_size >= runtime->buffer_size ? + (emu->delay_pcm_irq * 2) : 0; mutex_lock(&hdr->block_mutex); - blk = search_empty(emu, runtime->dma_bytes); + blk = search_empty(emu, runtime->dma_bytes + idx); if (blk == NULL) { mutex_unlock(&hdr->block_mutex); return NULL;